pax_global_header00006660000000000000000000000064141213200050014476gustar00rootroot0000000000000052 comment=acaed6bb98dcf126c3eb5d9fb71bc789622d57d0 codec2-1.0.1/000077500000000000000000000000001412132000500126345ustar00rootroot00000000000000codec2-1.0.1/.github/000077500000000000000000000000001412132000500141745ustar00rootroot00000000000000codec2-1.0.1/.github/workflows/000077500000000000000000000000001412132000500162315ustar00rootroot00000000000000codec2-1.0.1/.github/workflows/cmake.yml000066400000000000000000000043451412132000500200420ustar00rootroot00000000000000name: CMake on: [push] env: # Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.) BUILD_TYPE: Debug jobs: build: # The CMake configure and build commands are platform agnostic and should work equally # well on Windows or Mac. You can convert this to a matrix build if you need # cross-platform coverage. # See: https://docs.github.com/en/free-pro-team@latest/actions/learn-github-actions/managing-complex-workflows#using-a-build-matrix runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - name: Install packages shell: bash run: | sudo apt-get update sudo apt-get install octave octave-common octave-signal liboctave-dev gnuplot sox p7zip-full python3-numpy valgrind - name: Create Build Directory shell: bash run: mkdir $GITHUB_WORKSPACE/build_linux - name: Configure codec2 CMake shell: bash working-directory: ${{github.workspace}}/build_linux run: cmake $GITHUB_WORKSPACE - name: Setup CML Support shell: bash run: cd $HOME && $GITHUB_WORKSPACE/script/build_cml.sh - name: Build codec2 working-directory: ${{github.workspace}}/build_linux shell: bash # First pass build of codec2 without LPCNet run: make -j4 - name: Build LPCNet shell: bash run: | cd $HOME git clone https://github.com/drowe67/LPCNet.git cd LPCNet && mkdir -p build_linux && cd build_linux cmake -DCODEC2_BUILD_DIR=$GITHUB_WORKSPACE/build_linux .. make cd src && sox ../../wav/wia.wav -t raw -r 16000 - | ./lpcnet_enc -s | ./lpcnet_dec -s > /dev/null - name: Rebuild codec2 with LPCNet working-directory: ${{github.workspace}}/build_linux shell: bash # Second pass build of codec2 with LPCNet run: | cmake -DLPCNET_BUILD_DIR=$HOME/LPCNet/build_linux $GITHUB_WORKSPACE make -j4 - name: Run ctests working-directory: ${{github.workspace}}/build_linux shell: bash # Execute tests defined by the CMake configuration. # See https://cmake.org/cmake/help/latest/manual/ctest.1.html for more detail run: ctest --output-on-failure codec2-1.0.1/.gitignore000066400000000000000000000002601412132000500146220ustar00rootroot00000000000000build_linux stm32/build_stm32 stm32/libstm32f4.a stm32/unittest/lib/python/__pycache__/ stm32/unittest/src/libstm32f4.a stm32/unittest/src/*.map stm32/unittest/test_run/ *.pyc codec2-1.0.1/.travis.yml000066400000000000000000000066201412132000500147510ustar00rootroot00000000000000env: global: - GCC_BASE=gcc-arm-none-eabi-8-2018-q4-major - GCC_SHORT=8-2018q4 sudo: required language: generic dist: xenial addons: apt: packages: libc6-i386 octave octave-common octave-signal liboctave-dev gnuplot sox p7zip-full python3-numpy valgrind fonts-freefont-otf libspeexdsp-dev libsamplerate0-dev libwxgtk3.0-dev portaudio19-dev libhamlib-dev libasound2-dev libao-dev libgsm1-dev libsndfile-dev cache: directories: - "$HOME/$GCC_BASE" install: - export GCC_DIR=$HOME/$GCC_BASE - export GCC_ARCHIVE=$HOME/$GCC_BASE-linux.tar.bz2 - export GCC_URL=https://armkeil.blob.core.windows.net/developer/Files/downloads/gnu-rm/$GCC_SHORT/$GCC_BASE-linux.tar.bz2 - if [ ! -e $GCC_DIR/bin/arm-none-eabi-g++ ]; then wget -q $GCC_URL -O $GCC_ARCHIVE; tar xfj $GCC_ARCHIVE -C $HOME; fi - export CODEC2DIR=${PWD} - export LPCNETDIR=${HOME}/LPCNet - export FREEDVGUIDIR=${HOME}/freedv-gui - export MAKEFLAGS=-j2 - export STDLIBDIR=$HOME/STM32F4xx_DSP_StdPeriph_Lib_V1.8.0 - if [ ! "$STDLIBURL" == "" ]; then pwd; wget -q $STDLIBURL; 7z x -p$STDLIBKEY -o$HOME stdperiph_lib.zip; fi - unset STDLIBURL STDLIBKEY # DO NOT TOUCH script: # CML library for Octave LDPC support ---------------------------- - cd ${HOME} - wget http://www.iterativesolutions.com/user/image/cml.1.10.zip - unzip cml.1.10.zip - ls ${CODEC2DIR}/octave/cml.patch - patch -p0 < ${CODEC2DIR}/octave/cml.patch - cd cml/source - octave --no-gui -qf --eval "make" # build codec2 (initially without LPCNet) ------------------------- - cd ${CODEC2DIR} && mkdir -p build_linux && cd build_linux - cmake $CODEC2DIR && make -j4 # build and test LPCNet ------------------------------------------- - cd $HOME - git clone https://github.com/drowe67/LPCNet.git - cd $LPCNETDIR && git checkout master && git pull - mkdir -p build_linux && cd build_linux && rm -Rf * - cmake -DCODEC2_BUILD_DIR=$CODEC2DIR/build_linux .. && make # sanity check test - cd src && sox ../../wav/wia.wav -t raw -r 16000 - | ./lpcnet_enc -s | ./lpcnet_dec -s > /dev/null # Re-build codec2 with LPCNet for FreeDV 2020 support ------------- - cd $CODEC2DIR/build_linux && rm -Rf * - cmake -DLPCNET_BUILD_DIR=$LPCNETDIR/build_linux .. && make -j4 # Now run all the ctests - ctest --output-on-failure # test build of freedv-gui to trap any API changes ----------------- - cd $HOME - git clone https://github.com/drowe67/freedv-gui.git - cd $FREEDVGUIDIR - mkdir -p build_linux && cd build_linux - cmake -DCMAKE_BUILD_TYPE=Debug -DCODEC2_BUILD_DIR=$CODEC2DIR/build_linux -DLPCNET_BUILD_DIR=$LPCNETDIR/build_linux .. - make # stm32 support -------------------------------------- - mkdir -p build_stm32 - cd build_stm32 - if [ -e $STDLIBDIR ]; then (ln -s $STDLIBDIR . && cmake $CODEC2DIR/stm32 -DPERIPHLIBDIR="$STDLIBDIR" -DCMAKE_TOOLCHAIN_FILE="$CODEC2DIR/stm32/cmake/STM32_Toolchain.cmake" -DARM_GCC_BIN:STRING="$GCC_DIR/bin/" -DUT_PARAMS="--openocd" && make -j4 && ctest -V -E check_ram_limit) ; fi - if [ -n "$UT_SSH_PARAMS" ]; then PATH="$GCC_DIR/bin/":${PATH} ctest -V -E ofdm_demod_ldpc_fade; fi before_install: # DO NOT TOUCH START - if [ -n "$UT_SSH_PARAMS" ]; then openssl aes-256-cbc -K $KEY_K -iv $KEY_IV -in stm32/unittest/lib/ut_travis.enc -out /tmp/ut_travis -d && eval "$(ssh-agent -s)" && chmod 600 /tmp/ut_travis && ssh-add /tmp/ut_travis >/dev/null 2>&1 && rm -f /tmp/ut_travis; fi - unset KEY_K KEY_IV # DO NOT TOUCH END codec2-1.0.1/CMakeLists.txt000066400000000000000000002000541412132000500153750ustar00rootroot00000000000000# # Codec2 - Next-Generation Digital Voice for Two-Way Radio # # CMake configuration contributed by Richard Shaw (KF5OIM) # Please report questions, comments, problems, or patches to the freetel # mailing list: https://lists.sourceforge.net/lists/listinfo/freetel-codec2 # set(CMAKE_OSX_DEPLOYMENT_TARGET "10.9" CACHE STRING "Minimum OS X deployment version") project(codec2 C) cmake_minimum_required(VERSION 3.0) # Set policies here, probably should move to cmake dir. if(POLICY CMP0075) cmake_policy(SET CMP0075 NEW) endif() if(POLICY CMP0079) cmake_policy(SET CMP0079 NEW) endif() include(GNUInstallDirs) mark_as_advanced(CLEAR CMAKE_INSTALL_BINDIR CMAKE_INSTALL_INCLUDEDIR CMAKE_INSTALL_LIBDIR ) # # Prevent in-source builds # If an in-source build is attempted, you will still need to clean up a few # files manually. # set(CMAKE_DISABLE_SOURCE_CHANGES ON) set(CMAKE_DISABLE_IN_SOURCE_BUILD ON) if("${CMAKE_SOURCE_DIR}" STREQUAL "${CMAKE_BINARY_DIR}") message(FATAL_ERROR "In-source builds in ${CMAKE_BINARY_DIR} are not " "allowed, please remove ./CMakeCache.txt and ./CMakeFiles/, create a " "separate build directory and run cmake from there.") endif("${CMAKE_SOURCE_DIR}" STREQUAL "${CMAKE_BINARY_DIR}") # # Set project version information. This should probably be done via external # file at some point. # set(CODEC2_VERSION_MAJOR 1) set(CODEC2_VERSION_MINOR 0) # Set to patch level if needed, otherwise leave FALSE. # Must be positive (non-zero) if set, since 0 == FALSE in CMake. set(CODEC2_VERSION_PATCH 0) set(CODEC2_VERSION "${CODEC2_VERSION_MAJOR}.${CODEC2_VERSION_MINOR}") # Patch level version bumps should not change API/ABI. set(SOVERSION "${CODEC2_VERSION_MAJOR}.${CODEC2_VERSION_MINOR}") if(CODEC2_VERSION_PATCH) set(CODEC2_VERSION "${CODEC2_VERSION}.${CODEC2_VERSION_PATCH}") endif() message(STATUS "codec2 version: ${CODEC2_VERSION}") # Set default build type if(NOT CMAKE_BUILD_TYPE) set(CMAKE_BUILD_TYPE "Debug") endif() # Build universal ARM64 and x86_64 binaries on Mac. if(BUILD_OSX_UNIVERSAL) set(CMAKE_OSX_ARCHITECTURES "x86_64;arm64") endif(BUILD_OSX_UNIVERSAL) # # Find the git hash if this is a working copy. # if(EXISTS ${CMAKE_SOURCE_DIR}/.git) find_package(Git QUIET) if(Git_FOUND) execute_process( COMMAND "${GIT_EXECUTABLE}" describe --always HEAD WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}" RESULT_VARIABLE res OUTPUT_VARIABLE FREEDV_HASH ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE) message(STATUS "freedv-gui current git hash: ${FREEDV_HASH}") add_definitions(-DGIT_HASH="${FREEDV_HASH}") else() message(WARNING "Git not found. Can not determine current commit hash.") add_definitions(-DGIT_HASH="Unknown") endif() else() add_definitions(-DGIT_HASH="None") endif() set(ARCHIVE_NAME "codec2-${CODEC2_VERSION_MAJOR}.${CODEC2_VERSION_MINOR}.${CODEC2_VERSION_PATCH}") add_custom_target(dist COMMAND git archive --prefix=${ARCHIVE_NAME}/ HEAD | bzip2 > ${CMAKE_BINARY_DIR}/${ARCHIVE_NAME}.tar.bz2 WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}) # Set default C flags. set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wno-strict-overflow") # Check for what C standard is supported. include(CheckCCompilerFlag) CHECK_C_COMPILER_FLAG("-std=gnu11" COMPILER_SUPPORTS_GNU11) CHECK_C_COMPILER_FLAG("-std=gnu99" COMPILER_SUPPORTS_GNU99) if(COMPILER_SUPPORTS_GNU11) set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=gnu11") elseif(COMPILER_SUPPORTS_GNU99) set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=gnu99") else() message(SEND_ERROR "Compiler doesn't seem to support at least gnu99, might cause problems" ) endif() # -fPIC is implied on MinGW... if(NOT WIN32) set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC") endif() set(CMAKE_C_FLAGS_DEBUG "-g -O2 -DDUMP") set(CMAKE_C_FLAGS_RELEASE "-O3") # # Setup Windows/MinGW specifics here. # if(MINGW) message(STATUS "System is MinGW.") endif(MINGW) # # Find the git hash if this is a working copy. # if(EXISTS ${CMAKE_SOURCE_DIR}/.git) find_package(Git) if(Git_FOUND) execute_process( COMMAND "${GIT_EXECUTABLE}" describe --always HEAD WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}" RESULT_VARIABLE res OUTPUT_VARIABLE CODEC2_HASH ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE) message(STATUS "Codec2 current git hash: ${CODEC2_HASH}") else() message(WARNING "Git not found. Can not determine current commit hash.") endif() endif() # # Default options # option(BUILD_SHARED_LIBS "Build shared library. Set to OFF for static library." ON) # Unittest should be on for dev builds and off for releases. if(CMAKE_BUILD_TYPE MATCHES "Release") option(UNITTEST "Build unittest binaries." OFF) else() option(UNITTEST "Build unittest binaries." ON) endif() option(INSTALL_EXAMPLES "Install example code." OFF) if(INSTALL_EXAMPLES) install(DIRECTORY octave raw script wav USE_SOURCE_PERMISSIONS DESTINATION ${CMAKE_INSTALL_DATADIR}/codec2) endif() # LPCNet needs to be bootstraped because codec2 and freedvlpcnet are # cross dependent. option(LPCNET "Build codec2 with LPCNet support." OFF) set(LPCNET_BUILD_DIR FALSE CACHE PATH "Location of lpcnet build tree.") # Setting LPCNET_BUILD_DIR implies LPCNET=ON if(LPCNET_BUILD_DIR) set(LPCNET ON) endif() include(CheckIncludeFiles) check_include_files("stdlib.h" HAVE_STDLIB_H) check_include_files("string.h" HAVE_STRING_H) include(CheckSymbolExists) # Check if _GNU_SOURCE is available. if (NOT DEFINED _GNU_SOURCE) check_symbol_exists(__GNU_LIBRARY__ "features.h" _GNU_SOURCE) if (NOT _GNU_SOURCE) unset(_GNU_SOURCE CACHE) check_symbol_exists(_GNU_SOURCE "features.h" _GNU_SOURCE) endif() endif() if (_GNU_SOURCE) add_definitions(-D_GNU_SOURCE=1) endif() if(UNIX) set(CMAKE_REQUIRED_LIBRARIES m) endif() check_symbol_exists(floor math.h HAVE_FLOOR) check_symbol_exists(ceil math.h HAVE_CEIL) check_symbol_exists(pow math.h HAVE_POW) check_symbol_exists(sqrt math.h HAVE_SQRT) check_symbol_exists(sin math.h HAVE_SIN) check_symbol_exists(cos math.h HAVE_COS) check_symbol_exists(atan2 math.h HAVE_ATAN2) check_symbol_exists(log10 math.h HAVE_LOG10) check_symbol_exists(round math.h HAVE_ROUND) check_symbol_exists(getopt getopt.h HAVE_GETOPT) configure_file ("${PROJECT_SOURCE_DIR}/cmake/config.h.in" "${PROJECT_BINARY_DIR}/config.h" ) # Output path is such that #include in codec2.h works set(CODEC2_VERSION_PATH "${PROJECT_BINARY_DIR}/codec2") configure_file ("${PROJECT_SOURCE_DIR}/cmake/version.h.in" "${CODEC2_VERSION_PATH}/version.h" ) include_directories(${PROJECT_BINARY_DIR}) # CMake Package setup #include(CMakePackageConfigHelpers) #configure_package_config_file(cmake/codec2-config.cmake.in # ${CMAKE_CURRENT_BINARY_DIR}/codec2-config.cmake # INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/codec2 # PATH_VARS CMAKE_INSTALL_INCLUDEDIR #) # # Find lpcnet library # if(LPCNET) if(LPCNET_BUILD_DIR) find_package(lpcnetfreedv REQUIRED PATHS ${LPCNET_BUILD_DIR} NO_DEFAULT_PATH CONFIGS lpcnetfreedv.cmake ) if(lpcnetfreedv_FOUND) message(STATUS "liblpcnetfreedv found in build tree.") add_definitions("-D__LPCNET__") else() message(FATAL_ERROR "LPCNet include/library not found in build tree.") endif() else() find_package(lpcnetfreedv REQUIRED) if(lpcnetfreedv_FOUND) add_definitions("-D__LPCNET__") message(STATUS "liblpcnetfreedv found.") else() message(FATAL_ERROR "lpcnetfreedv library not found.") endif() endif() endif() # # codec2 library and demo apps # add_subdirectory(src) add_subdirectory(demo) if(UNITTEST) # Pthread Library find_package(Threads REQUIRED) message(STATUS "Threads library flags: ${CMAKE_THREAD_LIBS_INIT}") add_subdirectory(unittest) add_subdirectory(misc) endif(UNITTEST) message(STATUS "Build type is: " ${CMAKE_BUILD_TYPE}) string(TOUPPER ${CMAKE_BUILD_TYPE} _FLAGS) if(_FLAGS STREQUAL "NONE") message(STATUS "Compiler Flags: " ${CMAKE_C_FLAGS}) else() message(STATUS "Compiler Flags: " ${CMAKE_C_FLAGS} ${CMAKE_C_FLAGS_${_FLAGS}}) endif() message(STATUS "Libraries linked: " ${CMAKE_REQUIRED_LIBRARIES}) set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Next-Generation Digital Voice for Two-Way Radio") set(CPACK_PACKAGE_VENDOR "CMake") set(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_CURRENT_SOURCE_DIR}/README.md") set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/COPYING") set(CPACK_PACKAGE_VERSION_MAJOR ${CODEC2_VERSION_MAJOR}) set(CPACK_PACKAGE_VERSION_MINOR ${CODEC2_VERSION_MINOR}) if(CODEC2_VERSION_PATCH) set(CPACK_PACKAGE_VERSION_PATCH ${CODEC2_VERSION_PATCH}) else() set(CPACK_PACKAGE_VERSION_PATCH 0) endif() # Return the date (yyyy-mm-dd) macro(DATE RESULT) execute_process(COMMAND "date" "+%Y%m%d" OUTPUT_VARIABLE ${RESULT}) endmacro() DATE(DATE_RESULT) string(REGEX REPLACE "\n$" "" DATE_RESULT "${DATE_RESULT}") message(STATUS "Compilation date = XX${DATE_RESULT}XX") set(CPACK_PACKAGE_VERSION_PATCH "${CPACK_PACKAGE_VERSION_PATCH}-${DATE_RESULT}-${FREEDV_HASH}") if(WIN32) # # Cpack NSIS installer configuration for Windows. # See: http://nsis.sourceforge.net/Download # # Detect if we're doing a 32-bit or 64-bit windows build. if(${CMAKE_SIZEOF_VOID_P} EQUAL 8) set(CMAKE_CL_64 TRUE) endif() configure_file(cmake/GetDependencies.cmake.in cmake/GetDependencies.cmake @ONLY ) install(SCRIPT ${CMAKE_BINARY_DIR}/cmake/GetDependencies.cmake) set(CPACK_PACKAGE_INSTALL_DIRECTORY "Codec2") set(CPACK_CREATE_DESKTOP_LINKS "") set(CPACK_NSIS_DISPLAY_NAME "${CPACK_PACKAGE_INSTALL_DIRECTORY}") set(CPACK_NSIS_URL_INFO_ABOUT "http://rowetel.com/codec2.html") set(CPACK_NSIS_MODIFY_PATH ON) include(CPack) elseif(UNIX AND NOT APPLE) # Linux packaging SET(CPACK_GENERATOR "DEB") SET(CPACK_DEBIAN_PACKAGE_MAINTAINER "Mooneer Salem ") #required SET(CPACK_DEB_COMPONENT_INSTALL ON) SET(CPACK_DEBIAN_FILE_NAME DEB-DEFAULT) SET(CPACK_DEBIAN_ENABLE_COMPONENT_DEPENDS ON) SET(CPACK_DEBIAN_LIB_PACKAGE_NAME "codec2") SET(CPACK_DEBIAN_PACKAGE_DEPENDS "lpcnet (>= 0.2.0)") include(CPack) cpack_add_component(lib REQUIRED) cpack_add_component(dev DEPENDS lib) endif(WIN32) ######################################################################## # Create Pkg Config File ######################################################################## configure_file( ${CMAKE_CURRENT_SOURCE_DIR}/codec2.pc.in ${CMAKE_CURRENT_BINARY_DIR}/codec2.pc @ONLY ) install( FILES ${CMAKE_CURRENT_BINARY_DIR}/codec2.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig COMPONENT "codec2_devel" ) ################################################################## # Tests ################################################################## if(UNITTEST) include(CTest) enable_testing() add_test(NAME test_freedv_get_hash COMMAND sh -c "${CMAKE_CURRENT_BINARY_DIR}/unittest/thash") # 16<->8 kHz float resamplers add_test(NAME test_fdmdv_16to8 COMMAND sh -c "cd ${CMAKE_CURRENT_SOURCE_DIR}/octave; ${CMAKE_CURRENT_BINARY_DIR}/unittest/t16_8; DISPLAY=\"\" echo \"diff_fft_mag('in8.raw','out8.raw'); quit;\" | octave-cli -qf ") set_tests_properties(test_fdmdv_16to8 PROPERTIES PASS_REGULAR_EXPRESSION "PASS") # 16<->8 kHz short (int16) resamplers add_test(NAME test_fdmdv_16to8_short COMMAND sh -c "cd ${CMAKE_CURRENT_SOURCE_DIR}/octave; ${CMAKE_CURRENT_BINARY_DIR}/unittest/t16_8_short; DISPLAY=\"\" echo \"diff_fft_mag('in8_short.raw','out8_short.raw'); quit;\" | octave-cli -qf ") set_tests_properties(test_fdmdv_16to8_short PROPERTIES PASS_REGULAR_EXPRESSION "PASS") add_test(NAME test_CML_ldpcut COMMAND sh -c "cd ${CMAKE_CURRENT_SOURCE_DIR}/octave; SHORT_VERSION_FOR_CTEST=1 octave-cli -qf ldpcut.m") set_tests_properties(test_CML_ldpcut PROPERTIES PASS_REGULAR_EXPRESSION "Nerr: 0") # check channel simulator measures correct Peak to Average Power Ratio (about 0dB) with a sine wave input signal add_test(NAME test_cohpsk_ch_papr COMMAND sh -c "cd ${CMAKE_CURRENT_BINARY_DIR}; ./misc/mksine - 1000 10 | ./src/cohpsk_ch - /dev/null -100 --Fs 8000 --ctest") add_test(NAME test_codec2_700c_octave_port COMMAND sh -c " cd ${CMAKE_CURRENT_BINARY_DIR}/src; ./c2sim ${CMAKE_CURRENT_SOURCE_DIR}/raw/cq_ref.raw --phase0 --postfilter --dump cq_ref --lpc 10 --dump_pitch_e cq_ref_pitche.txt; cd ${CMAKE_CURRENT_BINARY_DIR}/unittest; ./tnewamp1 ${CMAKE_CURRENT_SOURCE_DIR}/raw/cq_ref.raw; cd ${CMAKE_CURRENT_SOURCE_DIR}/octave; DISPLAY=\"\" octave-cli -qf --eval 'tnewamp1(\"${CMAKE_CURRENT_BINARY_DIR}/src/cq_ref\", \"${CMAKE_CURRENT_BINARY_DIR}/unittest\")'") set_tests_properties(test_codec2_700c_octave_port PROPERTIES PASS_REGULAR_EXPRESSION "fails: 0") add_test(NAME test_FDMDV_modem_octave_port COMMAND sh -c "$ && DISPLAY=\"\" octave-cli --no-gui -qf ${CMAKE_CURRENT_SOURCE_DIR}/octave/tfdmdv.m" WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/octave) set_tests_properties(test_FDMDV_modem_octave_port PROPERTIES PASS_REGULAR_EXPRESSION "fails: 0") add_test(NAME test_COHPSK_modem_octave_port COMMAND sh -c "$ && DISPLAY=\"\" octave-cli --no-gui -qf ${CMAKE_CURRENT_SOURCE_DIR}/octave/tcohpsk.m" WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/octave) set_tests_properties(test_COHPSK_modem_octave_port PROPERTIES PASS_REGULAR_EXPRESSION "fails: 0") add_test(NAME test_COHPSK_modem_AWGN_BER COMMAND sh -c "$ - 5600 | $ - - | $ - - -30 | $ - - | $ -" ) add_test(NAME test_COHPSK_modem_freq_offset COMMAND sh -c "set -x; $ - 5600 | $ - - | $ - - -40 -f -30 | $ -v - - 2>log.txt | $ - ; ! grep 'lost sync' log.txt" ) # ------------------------------------------------------------------------- # OFDM Modem # ------------------------------------------------------------------------- add_test(NAME test_OFDM_qam16 COMMAND sh -c "${CMAKE_CURRENT_BINARY_DIR}/unittest/tqam16") add_test(NAME test_OFDM_modem_octave_port COMMAND sh -c "PATH_TO_TOFDM=${CMAKE_CURRENT_BINARY_DIR}/unittest/tofdm DISPLAY=\"\" octave-cli --no-gui -qf ${CMAKE_CURRENT_SOURCE_DIR}/octave/tofdm.m" WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/octave) set_tests_properties(test_OFDM_modem_octave_port PROPERTIES PASS_REGULAR_EXPRESSION "fails: 0") add_test(NAME test_OFDM_modem_octave_port_Nc_31 COMMAND sh -c "NC=31 PATH_TO_TOFDM=${CMAKE_CURRENT_BINARY_DIR}/unittest/tofdm DISPLAY=\"\" octave-cli --no-gui -qf ${CMAKE_CURRENT_SOURCE_DIR}/octave/tofdm.m" WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/octave) set_tests_properties(test_OFDM_modem_octave_port_Nc_31 PROPERTIES PASS_REGULAR_EXPRESSION "fails: 0") add_test(NAME test_OFDM_modem_octave_qam16_uncoded COMMAND sh -c "cd ${CMAKE_CURRENT_SOURCE_DIR}/octave; echo \"ofdm_tx('test_qam16.raw','qam16c1',3,12,'awgn','bursts',3); ofdm_rx('test_qam16.raw','qam16c1', 'passber', 0.05, 'packetsperburst', 1); quit\" | DISPLAY=\"\" octave-cli") set_tests_properties(test_OFDM_modem_octave_qam16_uncoded PROPERTIES PASS_REGULAR_EXPRESSION "Pass") add_test(NAME test_OFDM_modem_esno_est_octave COMMAND sh -c "cd ${CMAKE_CURRENT_SOURCE_DIR}/octave; echo 'pkg load signal; esno_est; esno_est_tests_octave' | PATH_TO_UNITEST=${CMAKE_CURRENT_BINARY_DIR}/unittest/ DISPLAY=\"\" octave-cli") set_tests_properties(test_OFDM_modem_esno_est_octave PROPERTIES PASS_REGULAR_EXPRESSION "AWGN Pass.*MPP Pass") add_test(NAME test_OFDM_modem_esno_est_c COMMAND sh -c "cd ${CMAKE_CURRENT_SOURCE_DIR}/octave; echo 'pkg load signal; esno_est; esno_est_tests_c' | PATH_TO_UNITEST=${CMAKE_CURRENT_BINARY_DIR}/unittest/ DISPLAY=\"\" octave-cli") set_tests_properties(test_OFDM_modem_esno_est_c PROPERTIES PASS_REGULAR_EXPRESSION "AWGN Pass.*MPP Pass") # ---------------------------------- Data Mode burst acquisition tests ---------------------------------- add_test(NAME test_OFDM_modem_octave_burst_acq COMMAND sh -c "cd ${CMAKE_CURRENT_SOURCE_DIR}/octave; echo \"ofdm_acquisition; quit\" | DISPLAY=\"\" octave-cli") set_tests_properties(test_OFDM_modem_octave_burst_acq PROPERTIES PASS_REGULAR_EXPRESSION "P.acq. = 1.00") add_test(NAME test_OFDM_modem_octave_datac0_postamble COMMAND sh -c "cd ${CMAKE_CURRENT_SOURCE_DIR}/octave; echo \"ofdm_tx('test_datac0.raw','datac0',1,100,'awgn','bursts',3); ofdm_rx('test_datac0.raw','datac0','packetsperburst',1,'postambletest','passber', 1E-6); quit\" | DISPLAY=\"\" octave-cli") set_tests_properties(test_OFDM_modem_octave_datac0_postamble PROPERTIES PASS_REGULAR_EXPRESSION "Pass") # Check C port of burst acquisition add_test(NAME test_OFDM_modem_burst_acq_port COMMAND sh -c "cd ${CMAKE_CURRENT_SOURCE_DIR}/octave; echo \"tofdm_acq; quit\" | PATH_TO_UNITTEST=${CMAKE_CURRENT_BINARY_DIR}/unittest DISPLAY=\"\" octave-cli") set_tests_properties(test_OFDM_modem_burst_acq_port PROPERTIES PASS_REGULAR_EXPRESSION "PASS") # Give uncoded Octave burst data modem a workout on a poor channel (0dB SNR MPP) add_test(NAME test_OFDM_modem_octave_datac0_mpp COMMAND sh -c "cd ${CMAKE_CURRENT_SOURCE_DIR}/octave; echo \"ofdm_tx('test_datac0.raw','datac0',1,0,'mpp','bursts',10); \ ofdm_rx('test_datac0.raw','datac0','packetsperburst',1,'passpacketcount',9);\ quit\" | DISPLAY=\"\" octave-cli") set_tests_properties(test_OFDM_modem_octave_datac0_mpp PROPERTIES PASS_REGULAR_EXPRESSION "Pass") # Same for coded Octave burst data modem - look out for bit rot as simulations evolve .... add_test(NAME test_OFDM_modem_octave_datac0_mpp_coded COMMAND sh -c "cd ${CMAKE_CURRENT_SOURCE_DIR}/octave; echo \"ofdm_ldpc_tx('test_datac0.raw','datac0',1,0,'mpp','bursts',10); \ ofdm_ldpc_rx('test_datac0.raw','datac0','packetsperburst',1,'passpacketcount',9);\ quit\" | DISPLAY=\"\" octave-cli") set_tests_properties(test_OFDM_modem_octave_datac0_mpp_coded PROPERTIES PASS_REGULAR_EXPRESSION "Pass") # ---------------------------------- ofdm_mod/demod level C modem tests ---------------------------------- # noise free uncoded 700D test, including reading and writing payload bits add_test(NAME test_OFDM_modem_700D COMMAND sh -c "cd ${CMAKE_CURRENT_BINARY_DIR}/src; ./ofdm_get_test_bits - | ./ofdm_mod | ./ofdm_demod --testframes > /dev/null") # noise free coded 700D test, including reading and writing payload bits add_test(NAME test_OFDM_modem_700D_ldpc COMMAND sh -c "cd ${CMAKE_CURRENT_BINARY_DIR}/src; ./ofdm_get_test_bits - --length 112 | ./ofdm_mod --ldpc | ./ofdm_demod --ldpc --testframes > /dev/null") # noise free 2020 test, including reading and writing payload bits. fsk_*_test_bits used as it does it's own frame sync add_test(NAME test_OFDM_modem_2020_ldpc COMMAND sh -c "cd ${CMAKE_CURRENT_BINARY_DIR}/src; ./fsk_get_test_bits - 5000 | ./ofdm_mod --ldpc --mode 2020 -p 312 | ./ofdm_demod --ldpc --mode 2020 -p 312 | ./fsk_put_test_bits - -q") add_test(NAME test_OFDM_modem_AWGN_BER COMMAND sh -c "$ --in /dev/zero --ldpc --testframes 60 --txbpf | $ - - -20 --Fs 8000 -f -50 | $ --out /dev/null --testframes --ldpc --verbose 1" ) add_test(NAME test_OFDM_modem_fading_BER COMMAND sh -c "cd ${CMAKE_CURRENT_SOURCE_DIR}/unittest; PATH=$PATH:${CMAKE_CURRENT_BINARY_DIR}/src ./ofdm_fade.sh") add_test(NAME test_OFDM_modem_phase_est_bw COMMAND sh -c "cd ${CMAKE_CURRENT_SOURCE_DIR}/unittest; PATH=$PATH:${CMAKE_CURRENT_BINARY_DIR}/src ./ofdm_phase_est_bw.sh") add_test(NAME test_OFDM_modem_fading_DPSK_BER COMMAND sh -c "cd ${CMAKE_CURRENT_SOURCE_DIR}/unittest; PATH=$PATH:${CMAKE_CURRENT_BINARY_DIR}/src ./ofdm_fade_dpsk.sh") add_test(NAME test_OFDM_modem_time_sync_700D COMMAND sh -c "cd ${CMAKE_CURRENT_SOURCE_DIR}/unittest; PATH=$PATH:${CMAKE_CURRENT_BINARY_DIR}/src ./ofdm_time_sync.sh 700D") if(LPCNET) add_test(NAME test_OFDM_modem_time_sync_2020 COMMAND sh -c "cd ${CMAKE_CURRENT_SOURCE_DIR}/unittest; PATH=$PATH:${CMAKE_CURRENT_BINARY_DIR}/src ./ofdm_time_sync.sh 2020") endif() # 700E at a little above AWGN operating point add_test(NAME test_OFDM_modem_700E_AWGN COMMAND sh -c "cd ${CMAKE_CURRENT_BINARY_DIR}/src; ./ofdm_mod --in /dev/zero --testframes 10 --ldpc --mode 700E | ./cohpsk_ch - - -22 --Fs 8000 | ./ofdm_demod --mode 700E --ldpc --testframes -v 2 > /dev/null") # ------------------------------------------------------------------------- # OFDM Data modes # ------------------------------------------------------------------------- # To integrate a new mode/waveform we prototype in Octave, get the core OFDM modem # running in C, then the FreeDV API. Here we test Octave and the C versions of the # OFDM modem working together, to help prevent any bit rot between them # DATAC0 burst mode Octave Tx, C Rx add_test(NAME test_OFDM_modem_datac0_octave_burst COMMAND sh -c "cd ${CMAKE_CURRENT_SOURCE_DIR}/octave; DISPLAY=\"\" octave-cli -qf --eval \"ofdm_ldpc_tx('${CMAKE_CURRENT_BINARY_DIR}/test.raw','datac0',1,100,'awgn','bursts',3)\"; cd ${CMAKE_CURRENT_BINARY_DIR}; cat test.raw | ./src/ofdm_demod --mode datac0 --out /dev/null --testframes --ldpc --verbose 1 --packetsperburst 1") set_tests_properties(test_OFDM_modem_datac0_octave_burst PROPERTIES PASS_REGULAR_EXPRESSION "Coded PER: 0.0000 Tpkts: 3") # DATAC1 C Tx, Octave Rx add_test(NAME test_OFDM_modem_datac1_octave COMMAND sh -c "cd ${CMAKE_CURRENT_BINARY_DIR}; ./src/ofdm_mod --mode datac1 --in /dev/zero --testframes 20 --verbose 1 --ldpc > test.raw; cd ${CMAKE_CURRENT_SOURCE_DIR}/octave; DISPLAY=\"\" octave-cli -qf --eval 'ofdm_ldpc_rx(\"${CMAKE_CURRENT_BINARY_DIR}/test.raw\",\"datac1\")'") set_tests_properties(test_OFDM_modem_datac1_octave PROPERTIES PASS_REGULAR_EXPRESSION "Coded PER: 0.0000 Pckts: 4") # DATAC3 C Tx, Octave Rx add_test(NAME test_OFDM_modem_datac3_octave COMMAND sh -c "cd ${CMAKE_CURRENT_BINARY_DIR}; ./src/ofdm_mod --mode datac3 --in /dev/zero --testframes 20 --verbose 1 --ldpc > test.raw; cd ${CMAKE_CURRENT_SOURCE_DIR}/octave; DISPLAY=\"\" octave-cli -qf --eval 'ofdm_ldpc_rx(\"${CMAKE_CURRENT_BINARY_DIR}/test.raw\",\"datac3\")'") set_tests_properties(test_OFDM_modem_datac3_octave PROPERTIES PASS_REGULAR_EXPRESSION "Coded PER: 0.0000 Pckts: 5") # DATAC1 C Tx, C Rx, uncoded add_test(NAME test_OFDM_modem_datac1 COMMAND sh -c "cd ${CMAKE_CURRENT_BINARY_DIR}/src; ./ofdm_mod --mode datac1 --in /dev/zero --testframes 10 --verbose 1 | ./ofdm_demod --mode datac1 --out /dev/null --testframes --verbose 1") # DATAC1 C Tx, C Rx, coded add_test(NAME test_OFDM_modem_datac1_ldpc COMMAND sh -c "cd ${CMAKE_CURRENT_BINARY_DIR}/src; ./ofdm_mod --mode datac1 --in /dev/zero --testframes 10 --ldpc --verbose 1 | ./ofdm_demod --mode datac1 --out /dev/null --testframes --ldpc --verbose 1") # DATAC0 C Tx, C Rx, coded, burst mode add_test(NAME test_OFDM_modem_datac0_ldpc_burst COMMAND sh -c "cd ${CMAKE_CURRENT_BINARY_DIR}/src; ./ofdm_mod --mode datac0 --in /dev/zero --testframes 1 --verbose 1 --ldpc --bursts 3 | ./cohpsk_ch - - -17 --Fs 8000 | ./ofdm_demod --mode datac0 --out /dev/null --testframes --ldpc --verbose 2 --packetsperburst 1") # ------------------------------------------------------------------------- # LDPC # ------------------------------------------------------------------------- # tests ldpc_enc/ldpc_noise/ldpc_dec add_test(NAME test_ldpc_enc_dec COMMAND sh -c "cd ${CMAKE_CURRENT_BINARY_DIR}/src; ./ldpc_enc /dev/zero - --sd --code HRA_112_112 --testframes 200 | ./ldpc_noise - - 0.5 | ./ldpc_dec - /dev/null --code HRA_112_112 --sd --testframes" ) add_test(NAME test_ldpc_enc_dec_HRA_56_56 COMMAND sh -c "cd ${CMAKE_CURRENT_BINARY_DIR}/src; ./ldpc_enc /dev/zero - --sd --code HRA_56_56 --testframes 200 | ./ldpc_noise - - 0.5 | ./ldpc_dec - /dev/null --code HRA_56_56 --sd --testframes" ) add_test(NAME test_ldpc_enc_dec_HRAb_396_504 COMMAND sh -c "cd ${CMAKE_CURRENT_BINARY_DIR}/src; ./ldpc_enc /dev/zero - --sd --code HRAb_396_504 --testframes 200 | ./ldpc_noise - - -2.0 | ./ldpc_dec - /dev/null --code HRAb_396_504 --sd --testframes" ) add_test(NAME test_ldpc_enc_dec_H_256_768_22 COMMAND sh -c "cd ${CMAKE_CURRENT_BINARY_DIR}/src; ./ldpc_enc /dev/zero - --sd --code H_256_768_22 --testframes 200 | ./ldpc_noise - - 3.0 | ./ldpc_dec - /dev/null --code H_256_768_22 --sd --testframes" ) add_test(NAME test_ldpc_enc_dec_H_256_512_4 COMMAND sh -c "cd ${CMAKE_CURRENT_BINARY_DIR}/src; ./ldpc_enc /dev/zero - --sd --code H_256_512_4 --testframes 200 | ./ldpc_noise - - 0.5 | ./ldpc_dec - /dev/null --code H_256_512_4 --sd --testframes" ) add_test(NAME test_ldpc_enc_dec_HRAa_1536_512 COMMAND sh -c "cd ${CMAKE_CURRENT_BINARY_DIR}/src; ./ldpc_enc /dev/zero - --sd --code HRAa_1536_512 --testframes 200 | ./ldpc_noise - - -2 | ./ldpc_dec - /dev/null --code HRAa_1536_512 --sd --testframes" ) add_test(NAME test_ldpc_enc_dec_H_128_256_5 COMMAND sh -c "cd ${CMAKE_CURRENT_BINARY_DIR}/src; ./ldpc_enc /dev/zero - --sd --code H_128_256_5 --testframes 200 | ./ldpc_noise - - 0.5 | ./ldpc_dec - /dev/null --code H_128_256_5 --sd --testframes" ) add_test(NAME test_ldpc_enc_dec_H_4096_8192_3d COMMAND sh -c "cd ${CMAKE_CURRENT_BINARY_DIR}/src; ./ldpc_enc /dev/zero - --sd --code H_4096_8192_3d --testframes 100 | ./ldpc_noise - - 0.0 | ./ldpc_dec - /dev/null --code H_4096_8192_3d --sd --testframes" ) add_test(NAME test_ldpc_enc_dec_H_16200_9720 COMMAND sh -c "cd ${CMAKE_CURRENT_BINARY_DIR}/src; ./ldpc_enc /dev/zero - --sd --code H_16200_9720 --testframes 10 | ./ldpc_noise - - 0.5 | ./ldpc_dec - /dev/null --code H_16200_9720 --sd --testframes" ) add_test(NAME test_ldpc_enc_dec_H_1024_2048_4f COMMAND sh -c "cd ${CMAKE_CURRENT_BINARY_DIR}/src; ./ldpc_enc /dev/zero - --sd --code H_1024_2048_4f --testframes 100 | ./ldpc_noise - - 0.0 | ./ldpc_dec - /dev/null --code H_1024_2048_4f --sd --testframes" ) add_test(NAME test_ldpc_enc_dec_H_2064_516_sparse COMMAND sh -c "cd ${CMAKE_CURRENT_BINARY_DIR}/src; ./ldpc_enc /dev/zero - --sd --code H_2064_516_sparse --testframes 100 | ./ldpc_noise - - -2.0 | ./ldpc_dec - /dev/null --code H_2064_516_sparse --sd --testframes" ) # ------------------------------------------------------------------------- # FreeDV API # ------------------------------------------------------------------------- # Test 1600 using number of frames decoded and correct rx txt channel output add_test(NAME test_freedv_api_1600 COMMAND sh -c "cd ${CMAKE_CURRENT_BINARY_DIR}/src; ./freedv_tx 1600 ../../raw/ve9qrp_10s.raw - | ./freedv_rx 1600 - /dev/null --txtrx 1600.txt; cat 1600.txt") set_tests_properties(test_freedv_api_1600 PROPERTIES PASS_REGULAR_EXPRESSION "frames decoded: 503 .*cq cq hello") add_test(NAME test_freedv_api_700C COMMAND sh -c "cd ${CMAKE_CURRENT_BINARY_DIR}/src; ./freedv_tx 700C ../../raw/ve9qrp_10s.raw - | ./freedv_rx 700C - /dev/null") set_tests_properties(test_freedv_api_700C PROPERTIES PASS_REGULAR_EXPRESSION "frames decoded: 125") add_test(NAME test_freedv_api_700D_backwards_compatability COMMAND sh -c "$ 700D ${CMAKE_CURRENT_SOURCE_DIR}/raw/testframes_700d.raw /dev/null --testframes --discard" ) # speech output on valid signal (at least 70000 samples), to exercise freedv_bits_to_speech() speech output logic add_test(NAME test_freedv_api_700D_speech COMMAND sh -c "cd ${CMAKE_CURRENT_BINARY_DIR}/src; ./freedv_tx 700D ../../raw/ve9qrp_10s.raw - | ./cohpsk_ch - - -20 --Fs 8000 | ./freedv_rx 700D - /dev/null --squelch -2 -vv") set_tests_properties(test_freedv_api_700D_speech PROPERTIES PASS_REGULAR_EXPRESSION "frames decoded: 62 output speech samples: 7") # no random speech output due to trial sync when listening to noise add_test(NAME test_freedv_api_700D_burble COMMAND sh -c "cd ${CMAKE_CURRENT_BINARY_DIR}/src; ./freedv_tx 700D ../../raw/ve9qrp.raw - | ./cohpsk_ch - - -8 --Fs 8000 | ./freedv_rx 700D - /dev/null --squelch -2 -vv") set_tests_properties(test_freedv_api_700D_burble PROPERTIES PASS_REGULAR_EXPRESSION "output speech samples: 0") add_test(NAME test_freedv_api_700D_AWGN_BER COMMAND sh -c "dd bs=2560 count=120 if=/dev/zero | $ 700D - - --testframes | $ - - -20 --Fs 8000 -f -10 | $ 700D - /dev/null --testframes --discard" ) add_test(NAME test_freedv_api_700D_AWGN_BER_USECOMPLEX COMMAND sh -c "dd bs=2560 count=120 if=/dev/zero | $ 700D - - --testframes | $ - - -20 --Fs 8000 -f -10 | $ 700D - /dev/null --testframes --discard --usecomplex" ) if(LPCNET) add_test(NAME test_freedv_api_2020_to_ofdm_demod COMMAND sh -c "cd ${CMAKE_CURRENT_BINARY_DIR}/src; ./freedv_tx 2020 ../../wav/wia_16kHz.wav - --testframes | ./ofdm_demod --mode 2020 --verbose 1 --ldpc -p 312 --testframes > /dev/null" ) add_test(NAME test_freedv_api_2020_from_ofdm_mod COMMAND sh -c "cd ${CMAKE_CURRENT_BINARY_DIR}/src; ./ofdm_mod --in /dev/zero --mode 2020 --verbose 1 --ldpc -p 312 --testframes 10 | ./freedv_rx 2020 - /dev/null --testframes" ) add_test(NAME test_freedv_api_2020_awgn COMMAND sh -c "cd ${CMAKE_CURRENT_BINARY_DIR}/src; dd bs=32000 count=10 if=/dev/zero | ./freedv_tx 2020 - - --testframes | ./cohpsk_ch - - -24 --Fs 8000 | ./freedv_rx 2020 - /dev/null --testframes" ) endif() add_test(NAME test_freedv_api_2400A COMMAND sh -c "cd ${CMAKE_CURRENT_BINARY_DIR}/src; ./freedv_tx 2400A ../../raw/ve9qrp_10s.raw - | ./freedv_rx 2400A - /dev/null") set_tests_properties(test_freedv_api_2400A PROPERTIES PASS_REGULAR_EXPRESSION "frames decoded: 250") add_test(NAME test_freedv_api_2400B COMMAND sh -c "cd ${CMAKE_CURRENT_BINARY_DIR}/src; ./freedv_tx 2400B ../../raw/ve9qrp_10s.raw - | ./freedv_rx 2400B - /dev/null") set_tests_properties(test_freedv_api_2400B PROPERTIES PASS_REGULAR_EXPRESSION "frames decoded: 250") add_test(NAME test_freedv_api_800XA COMMAND sh -c "cd ${CMAKE_CURRENT_BINARY_DIR}/src; ./freedv_tx 800XA ../../raw/ve9qrp_10s.raw - | ./freedv_rx 800XA - /dev/null") set_tests_properties(test_freedv_api_800XA PROPERTIES PASS_REGULAR_EXPRESSION "frames decoded: 125") add_test(NAME test_freedv_api_rawdata_800XA COMMAND sh -c "./tfreedv_800XA_rawdata" WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/unittest ) add_test(NAME test_freedv_api_rawdata_2400A COMMAND sh -c "./tfreedv_2400A_rawdata" WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/unittest ) add_test(NAME test_freedv_api_rawdata_2400B COMMAND sh -c "./tfreedv_2400B_rawdata" WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/unittest ) if(UNIX) # Uses pthreads add_test(NAME test_fifo COMMAND $ ) endif() # ------------------------------------------------------------------------- # Reliable Text # ------------------------------------------------------------------------- add_test(NAME test_freedv_reliable_text_truncate_string COMMAND sh -c "cd ${CMAKE_CURRENT_BINARY_DIR}/src; ./freedv_tx 1600 ../../raw/ve9qrp.raw - --reliabletext AB1CDEFGH > 1600_reliable.raw 2>/dev/null; ./freedv_rx 1600 1600_reliable.raw /dev/null --txtrx 1600_reliable.txt --reliabletext 2>/dev/null; grep 'AB1CDEFG' 1600_reliable.txt | wc -l") set_tests_properties(test_freedv_reliable_text_truncate_string PROPERTIES PASS_REGULAR_EXPRESSION "20") add_test(NAME test_freedv_reliable_text_ideal_1600 COMMAND sh -c "cd ${CMAKE_CURRENT_BINARY_DIR}/src; ./freedv_tx 1600 ../../raw/ve9qrp.raw - --reliabletext AB1CDEF > 1600_reliable.raw 2>/dev/null; ./freedv_rx 1600 1600_reliable.raw /dev/null --txtrx 1600_reliable.txt --reliabletext 2>/dev/null; cat 1600_reliable.txt | wc -l") set_tests_properties(test_freedv_reliable_text_ideal_1600 PROPERTIES PASS_REGULAR_EXPRESSION "20") add_test(NAME test_freedv_reliable_text_ideal_700D COMMAND sh -c "cd ${CMAKE_CURRENT_BINARY_DIR}/src; ./freedv_tx 700D ../../raw/ve9qrp.raw - --reliabletext AB1CDEF --txbpf 1 --clip 1 > 700D_reliable.raw 2>/dev/null; ./freedv_rx 700D 700D_reliable.raw /dev/null --txtrx 700D_reliable.txt --reliabletext 2>/dev/null; cat 700D_reliable.txt | wc -l") set_tests_properties(test_freedv_reliable_text_ideal_700D PROPERTIES PASS_REGULAR_EXPRESSION "21") add_test(NAME test_freedv_reliable_text_ideal_700E COMMAND sh -c "cd ${CMAKE_CURRENT_BINARY_DIR}/src; ./freedv_tx 700E ../../raw/ve9qrp.raw - --reliabletext AB1CDEF --txbpf 1 --clip 1 > 700E_reliable.raw 2>/dev/null; ./freedv_rx 700E 700E_reliable.raw /dev/null --txtrx 700E_reliable.txt --reliabletext 2>/dev/null; cat 700E_reliable.txt | wc -l") set_tests_properties(test_freedv_reliable_text_ideal_700E PROPERTIES PASS_REGULAR_EXPRESSION "21") add_test(NAME test_freedv_reliable_text_awgn_1600 COMMAND sh -c "cd ${CMAKE_CURRENT_BINARY_DIR}/src; ./freedv_tx 1600 ../../raw/ve9qrp.raw - --reliabletext AB1CDEF | ./cohpsk_ch - - -25 --Fs 8000 -f -5 > 1600_reliable.raw 2>/dev/null; ./freedv_rx 1600 1600_reliable.raw /dev/null --txtrx 1600_reliable.txt --reliabletext 2>/dev/null; if [ `cat 1600_reliable.txt | wc -l` -ge 10 ]; then echo 1; fi") set_tests_properties(test_freedv_reliable_text_awgn_1600 PROPERTIES PASS_REGULAR_EXPRESSION "1") add_test(NAME test_freedv_reliable_text_awgn_700D COMMAND sh -c "cd ${CMAKE_CURRENT_BINARY_DIR}/src; ./freedv_tx 700D ../../raw/ve9qrp.raw - --reliabletext AB1CDEF --txbpf 1 --clip 1 | ./cohpsk_ch - - -12 --Fs 8000 -f -5 > 700D_reliable.raw 2>/dev/null; ./freedv_rx 700D 700D_reliable.raw /dev/null --txtrx 700D_reliable.txt --reliabletext 2>/dev/null; if [ `cat 700D_reliable.txt | wc -l` -ge 10 ]; then echo 1; fi") set_tests_properties(test_freedv_reliable_text_awgn_700D PROPERTIES PASS_REGULAR_EXPRESSION "1") add_test(NAME test_freedv_reliable_text_awgn_700E COMMAND sh -c "cd ${CMAKE_CURRENT_BINARY_DIR}/src; ./freedv_tx 700E ../../raw/ve9qrp.raw - --reliabletext AB1CDEF --txbpf 1 --clip 1 | ./cohpsk_ch - - -15 --Fs 8000 -f -5 > 700E_reliable.raw 2>/dev/null; ./freedv_rx 700E 700E_reliable.raw /dev/null --txtrx 700E_reliable.txt --reliabletext 2>/dev/null; if [ `cat 700E_reliable.txt | wc -l` -ge 10 ]; then echo 1; fi") set_tests_properties(test_freedv_reliable_text_awgn_700E PROPERTIES PASS_REGULAR_EXPRESSION "1") add_test(NAME test_freedv_reliable_text_fade_1600 COMMAND sh -c "cd ${CMAKE_CURRENT_SOURCE_DIR}/unittest; ./reliable_text_fade.sh 1600 -28 3 0 '${CMAKE_CURRENT_BINARY_DIR}/src'") add_test(NAME test_freedv_reliable_text_fade_700D COMMAND sh -c "cd ${CMAKE_CURRENT_SOURCE_DIR}/unittest; ./reliable_text_fade.sh 700D -19 8 1 '${CMAKE_CURRENT_BINARY_DIR}/src'") add_test(NAME test_freedv_reliable_text_fade_700E COMMAND sh -c "cd ${CMAKE_CURRENT_SOURCE_DIR}/unittest; ./reliable_text_fade.sh 700E -22 9 1 '${CMAKE_CURRENT_BINARY_DIR}/src'") if(LPCNET) add_test(NAME test_freedv_reliable_text_ideal_2020 COMMAND sh -c "cd ${CMAKE_CURRENT_BINARY_DIR}/src; ./freedv_tx 2020 ../../raw/ve9qrp.raw - --reliabletext AB1CDEF > 2020_reliable.raw 2>/dev/null; ./freedv_rx 2020 2020_reliable.raw /dev/null --txtrx 2020_reliable.txt --reliabletext 2>/dev/null; cat 2020_reliable.txt | wc -l") set_tests_properties(test_freedv_reliable_text_ideal_2020 PROPERTIES PASS_REGULAR_EXPRESSION "9") add_test(NAME test_freedv_reliable_text_awgn_2020 COMMAND sh -c "cd ${CMAKE_CURRENT_BINARY_DIR}/src; ./freedv_tx 2020 ../../raw/ve9qrp.raw - --reliabletext AB1CDEF | ./cohpsk_ch - - -22 --Fs 8000 -f -5 > 2020_reliable.raw 2>/dev/null; ./freedv_rx 2020 2020_reliable.raw /dev/null --txtrx 2020_reliable.txt --reliabletext 2>/dev/null; if [ `cat 2020_reliable.txt | wc -l` -ge 9 ]; then echo 1; fi") set_tests_properties(test_freedv_reliable_text_awgn_1600 PROPERTIES PASS_REGULAR_EXPRESSION "1") add_test(NAME test_freedv_reliable_text_fade_2020 COMMAND sh -c "cd ${CMAKE_CURRENT_SOURCE_DIR}/unittest; ./reliable_text_fade.sh 2020 -26 6 0 '${CMAKE_CURRENT_BINARY_DIR}/src'") endif(LPCNET) # ------------------------------------------------------------------------- # FreeDv API memory leaks # ------------------------------------------------------------------------- if (NOT APPLE) add_test(NAME test_memory_leak_FreeDV_1600_tx COMMAND sh -c " valgrind --leak-check=full --show-leak-kinds=all --track-origins=yes ./freedv_tx 1600 ${CMAKE_CURRENT_SOURCE_DIR}/raw/hts1a.raw /dev/null" WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/src ) set_tests_properties(test_memory_leak_FreeDV_1600_tx PROPERTIES PASS_REGULAR_EXPRESSION "ERROR SUMMARY: 0 errors") add_test(NAME test_memory_leak_FreeDV_1600_rx COMMAND sh -c "./freedv_tx 1600 ${CMAKE_CURRENT_SOURCE_DIR}/raw/hts1a.raw t.raw; \ valgrind --leak-check=full --show-leak-kinds=all --track-origins=yes ./freedv_rx 1600 t.raw /dev/null" WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/src ) set_tests_properties(test_memory_leak_FreeDV_1600_rx PROPERTIES PASS_REGULAR_EXPRESSION "ERROR SUMMARY: 0 errors") add_test(NAME test_memory_leak_FreeDV_700D_tx COMMAND sh -c " valgrind --leak-check=full --show-leak-kinds=all --track-origins=yes ./freedv_tx 700D ${CMAKE_CURRENT_SOURCE_DIR}/raw/hts1a.raw /dev/null" WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/src ) set_tests_properties(test_memory_leak_FreeDV_700D_tx PROPERTIES PASS_REGULAR_EXPRESSION "ERROR SUMMARY: 0 errors") add_test(NAME test_memory_leak_FreeDV_700D_rx COMMAND sh -c "./freedv_tx 700D ${CMAKE_CURRENT_SOURCE_DIR}/raw/hts1a.raw t.raw; \ valgrind --leak-check=full --show-leak-kinds=all --track-origins=yes ./freedv_rx 700D t.raw /dev/null" WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/src ) set_tests_properties(test_memory_leak_FreeDV_700D_rx PROPERTIES PASS_REGULAR_EXPRESSION "ERROR SUMMARY: 0 errors") add_test(NAME test_memory_leak_FreeDV_700C_tx COMMAND sh -c " valgrind --leak-check=full --show-leak-kinds=all --track-origins=yes ./freedv_tx 700C ${CMAKE_CURRENT_SOURCE_DIR}/raw/hts1a.raw /dev/null" WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/src ) set_tests_properties(test_memory_leak_FreeDV_700C_tx PROPERTIES PASS_REGULAR_EXPRESSION "ERROR SUMMARY: 0 errors") add_test(NAME test_memory_leak_FreeDV_700C_rx COMMAND sh -c "cd ${CMAKE_CURRENT_BINARY_DIR}/src; ./freedv_tx 700C ${CMAKE_CURRENT_SOURCE_DIR}/raw/hts1a.raw t.raw; \ valgrind --leak-check=full --show-leak-kinds=all --track-origins=yes ./freedv_rx 700C t.raw /dev/null" ) set_tests_properties(test_memory_leak_FreeDV_700C_rx PROPERTIES PASS_REGULAR_EXPRESSION "ERROR SUMMARY: 0 errors") add_test(NAME test_memory_leak_FreeDV_FSK_LDPC_tx COMMAND sh -c "cd ${CMAKE_CURRENT_BINARY_DIR}/src; valgrind --leak-check=full --show-leak-kinds=all --track-origins=yes \ ./freedv_data_raw_tx --testframes 10 FSK_LDPC /dev/zero /dev/null") set_tests_properties(test_memory_leak_FreeDV_FSK_LDPC_tx PROPERTIES PASS_REGULAR_EXPRESSION "ERROR SUMMARY: 0 errors") add_test(NAME test_memory_leak_FreeDV_DATAC0_tx COMMAND sh -c "cd ${CMAKE_CURRENT_BINARY_DIR}/src; valgrind --leak-check=full --show-leak-kinds=all --track-origins=yes \ ./freedv_data_raw_tx --testframes 10 DATAC0 /dev/zero /dev/null") set_tests_properties(test_memory_leak_FreeDV_DATAC0_tx PROPERTIES PASS_REGULAR_EXPRESSION "ERROR SUMMARY: 0 errors") add_test(NAME test_memory_leak_FreeDV_DATAC1_tx COMMAND sh -c "cd ${CMAKE_CURRENT_BINARY_DIR}/src; valgrind --leak-check=full --show-leak-kinds=all --track-origins=yes \ ./freedv_data_raw_tx --testframes 10 DATAC1 /dev/zero /dev/null") set_tests_properties(test_memory_leak_FreeDV_DATAC1_tx PROPERTIES PASS_REGULAR_EXPRESSION "ERROR SUMMARY: 0 errors") add_test(NAME test_memory_leak_FreeDV_700E_tx COMMAND sh -c "cd ${CMAKE_CURRENT_BINARY_DIR}/src; valgrind --leak-check=full --show-leak-kinds=all --track-origins=yes \ ./freedv_tx --testframes 10 700E /dev/zero /dev/null") set_tests_properties(test_memory_leak_FreeDV_700E_tx PROPERTIES PASS_REGULAR_EXPRESSION "ERROR SUMMARY: 0 errors") if(LPCNET) add_test(NAME test_memory_leak_FreeDV_2020_tx COMMAND sh -c "cd ${CMAKE_CURRENT_BINARY_DIR}/src; valgrind --leak-check=full --show-leak-kinds=all --track-origins=yes ./freedv_tx 2020 ../../wav/wia_16kHz.wav /dev/null" ) set_tests_properties(test_memory_leak_FreeDV_2020_tx PROPERTIES PASS_REGULAR_EXPRESSION "ERROR SUMMARY: 0 errors") add_test(NAME test_memory_leak_FreeDV_2020_rx COMMAND sh -c "cd ${CMAKE_CURRENT_BINARY_DIR}/src; ./freedv_tx 2020 ../../wav/wia_16kHz.wav t.raw; \ valgrind --leak-check=full --show-leak-kinds=all --track-origins=yes ./freedv_rx 2020 t.raw /dev/null" ) set_tests_properties(test_memory_leak_FreeDV_2020_rx PROPERTIES PASS_REGULAR_EXPRESSION "ERROR SUMMARY: 0 errors") endif(LPCNET) endif(NOT APPLE) # ------------------------------------------------------------------------- # Codec 2 modes # ------------------------------------------------------------------------- add_test(NAME test_codec2_mode_dot_c2 COMMAND sh -c "./c2enc 700C ${CMAKE_CURRENT_SOURCE_DIR}/raw/hts1a.raw hts1a.c2 && ./c2dec 1600 hts1a.c2 /dev/null" WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/src ) set_tests_properties(test_codec2_mode_dot_c2 PROPERTIES PASS_REGULAR_EXPRESSION "mode 8") add_test(NAME test_codec2_mode_3200 COMMAND sh -c "./c2enc 3200 ${CMAKE_CURRENT_SOURCE_DIR}/raw/hts1a.raw - | ./c2dec 3200 - - | sox -t .s16 -r 8000 - hts1a_3200.wav" WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/src ) add_test(NAME test_codec2_mode_2400 COMMAND sh -c "./c2enc 2400 ${CMAKE_CURRENT_SOURCE_DIR}/raw/hts1a.raw - | ./c2dec 2400 - - | sox -t .s16 -r 8000 - hts1a_2400.wav" WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/src ) add_test(NAME test_codec2_mode_1400 COMMAND sh -c "./c2enc 1400 ${CMAKE_CURRENT_SOURCE_DIR}/raw/hts1a.raw - | ./c2dec 1400 - - | sox -t .s16 -r 8000 - hts1a_1400.wav" WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/src ) add_test(NAME test_codec2_mode_1300 COMMAND sh -c "./c2enc 1300 ${CMAKE_CURRENT_SOURCE_DIR}/raw/hts1a.raw - | ./c2dec 1300 - - | sox -t .s16 -r 8000 - hts1a_1300.wav" WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/src ) add_test(NAME test_codec2_mode_1200 COMMAND sh -c "./c2enc 1200 ${CMAKE_CURRENT_SOURCE_DIR}/raw/hts1a.raw - | ./c2dec 1200 - - | sox -t .s16 -r 8000 - hts1a_1200.wav" WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/src ) add_test(NAME test_codec2_mode_700C COMMAND sh -c "./c2enc 700C ${CMAKE_CURRENT_SOURCE_DIR}/raw/hts1a.raw - | ./c2dec 700C - - | sox -t .s16 -r 8000 - hts1a_700C.wav" WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/src ) add_test(NAME test_codec2_mode_450 COMMAND sh -c "./c2enc 450 ${CMAKE_CURRENT_SOURCE_DIR}/raw/hts1a.raw - | ./c2dec 450 - - | sox -t .s16 -r 8000 - hts1a_450.wav" WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/src ) add_test(NAME test_codec2_mode_450PWB COMMAND sh -c "./c2enc 450PWB ${CMAKE_CURRENT_SOURCE_DIR}/raw/hts1a.raw - | ./c2dec 450PWB - - | sox -t .s16 -r 16000 - hts1a_450PWB.wav" WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/src ) add_test(NAME test_vq_mbest COMMAND sh -c "./tvq_mbest; \ cat target.f32 | ../misc/vq_mbest -k 2 -q vq1.f32,vq2.f32 --mbest 2 -v > out.f32; \ diff target.f32 out.f32" WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/unittest ) add_test(NAME test_700c_eq COMMAND sh -c "cd ${CMAKE_CURRENT_SOURCE_DIR}/unittest; PATH=$PATH:${CMAKE_CURRENT_BINARY_DIR}/src ./test_700c_eq.sh") # ------------------------------------------------------------------------- # FSK Modem # ------------------------------------------------------------------------- # Octave FSK Modem, to make sure we don't break reference simulation add_test(NAME test_fsk_lib COMMAND sh -c "cd ${CMAKE_CURRENT_SOURCE_DIR}/octave; DISPLAY=\"\" octave-cli -qf fsk_lib_demo.m") set_tests_properties(test_fsk_lib PROPERTIES PASS_REGULAR_EXPRESSION "PASS") add_test(NAME test_fsk_modem_octave_port COMMAND sh -c "cd ${CMAKE_CURRENT_SOURCE_DIR}/octave; PATH_TO_TFSK=${CMAKE_CURRENT_BINARY_DIR}/unittest/tfsk octave-cli -qf tfsk.m") set_tests_properties(test_fsk_modem_octave_port PROPERTIES PASS_REGULAR_EXPRESSION "PASS") add_test(NAME test_fsk_modem_mod_demod COMMAND sh -c "$ - 10000 | $ 2 8000 100 1200 100 - - | $ -l 2 8000 100 - - | $ -p 99 -q -" ) # 2FSK modem at Eb/No = 9dB, SNR = Eb/No+10log10(Rb/B) = 9 + 10*log10(100/3000) = -5.7dB # Ideal BER = 0.0094, set thresh 50% higher add_test(NAME test_fsk_2fsk_ber COMMAND sh -c "cd ${CMAKE_CURRENT_BINARY_DIR}/src; ./fsk_get_test_bits - 10000 | ./fsk_mod 2 8000 100 1000 100 - - | ./cohpsk_ch - - -26 --Fs 8000 | ./fsk_demod 2 8000 100 - - | ./fsk_put_test_bits -b 0.015 -q - ") # 4FSK modem at Eb/No = 6dB, SNR = Eb/No+10log10(Rb/B) = 6 + 10*log10(2*100/3000) = -5.7dB # Ideal BER = 0.016, set thresh 50% higher add_test(NAME test_fsk_4fsk_ber COMMAND sh -c "cd ${CMAKE_CURRENT_BINARY_DIR}/src; ./fsk_get_test_bits - 10000 | ./fsk_mod 4 8000 100 1000 100 - - | ./cohpsk_ch - - -26 --Fs 8000 | ./fsk_demod 4 8000 100 - - | ./fsk_put_test_bits -b 0.025 - ") # shift FSK signal to -ve frequencies add_test(NAME test_fsk_4fsk_ber_negative_freq COMMAND sh -c "cd ${CMAKE_CURRENT_BINARY_DIR}/src; ./fsk_get_test_bits - 10000 | ./fsk_mod 4 8000 100 1000 200 - - | ./cohpsk_ch - - -26 --Fs 8000 --ssbfilt 0 --complexout -f -3000 | ./fsk_demod -c -p 8 4 8000 100 - - | ./fsk_put_test_bits -b 0.025 -q - ") # Low SNR 4FSK uncoded PER/BER test: # 4FSK modem at Eb/No = 2dB, SNR = Eb/No+10log10(Rb/B) = 6 + 10*log10(2*100/3000) = -15.7dB # Theoretical BER is 0.14. # Pass condition is 10% PER add_test(NAME test_fsk_4fsk_lockdown COMMAND sh -c "cd ${CMAKE_CURRENT_BINARY_DIR}/src; bits=512; tx_packets=20; rx_packets=18; tx_tone_sep=50; Rs=25; ./fsk_get_test_bits - $(($bits*$tx_packets)) $bits | ./fsk_mod 4 8000 $Rs 1000 $tx_tone_sep - - | ./cohpsk_ch - - -16 --Fs 8000 --ssbfilt 0 -f -3000 --complexout | ./fsk_demod -c -p 8 --mask $tx_tone_sep -t1 --nsym 100 4 8000 $Rs - - 2>stats.txt | ./fsk_put_test_bits -t 0.25 -b 0.20 -p $rx_packets -f $bits -q -") # Octave 4FSK LLR reference simulation - make sure this keeps working add_test(NAME test_fsk_lib_4fsk_ldpc COMMAND sh -c "cd ${CMAKE_CURRENT_SOURCE_DIR}/octave; DISPLAY=\"\" octave-cli -qf fsk_lib_ldpc_demo.m") set_tests_properties(test_fsk_lib_4fsk_ldpc PROPERTIES PASS_REGULAR_EXPRESSION "PASS") # Command line Unique Word (UW) framer in hard decision mode add_test(NAME test_fsk_framer COMMAND sh -c "cd ${CMAKE_CURRENT_BINARY_DIR}/src; ./fsk_get_test_bits - 300 | ./framer - - 100 51 | ./deframer - - 100 51 --hard | ./fsk_put_test_bits -") set_tests_properties(test_fsk_framer PROPERTIES PASS_REGULAR_EXPRESSION "PASS") # Command line Unique Word (UW) framer with LLRs and LDPC (no noise) add_test(NAME test_fsk_framer_ldpc COMMAND sh -c "cd ${CMAKE_CURRENT_BINARY_DIR}/src; ./ldpc_enc /dev/zero - --code HRA_112_112 --testframes 10 | ./framer - - 224 51 | ./tollr | ./deframer - - 224 51 | ./ldpc_dec - /dev/null --code HRA_112_112 --testframes") # mFSK soft decision rx_filter to LLR mapping add_test(NAME test_fsk_llr COMMAND sh -c "${CMAKE_CURRENT_BINARY_DIR}/unittest/tfsk_llr") # 4FSK LDPC modem with framer at Rs=100 (uncoded Rb=200), rate 0.8 code # SNR = Eb/No + 10*log10(Rb/B) = 5 + 10*log10(200/3000) = -6.7dB # Coded Ebc/No = Eb/No - 10*log1010(0.8) = 5 - 10*log10(0.8) = 6.0dB # (calculation ignores small UW overhead). See also test_freedv_fsk_ldpc below # which is the same thing bundled up into a FreeDV "mode" add_test(NAME test_fsk_4fsk_ldpc COMMAND sh -c "cd ${CMAKE_CURRENT_BINARY_DIR}/src; ./ldpc_enc /dev/zero - --code HRAb_396_504 --testframes 200 | ./framer - - 504 5186 | ./fsk_mod 4 8000 100 1000 100 - - | ./cohpsk_ch - - -25 --Fs 8000 | ./fsk_demod -s 4 8000 100 - - | ./deframer - - 504 5186 | ./ldpc_dec - /dev/null --code HRAb_396_504 --testframes") # 800XA framer test add_test(NAME test_fsk_vhf_framer COMMAND sh -c "cd ${CMAKE_CURRENT_BINARY_DIR}/src; ./c2enc 700C ../../raw/ve9qrp_10s.raw - | ./vhf_frame_c2 B - - | ./fsk_mod -p 10 4 8000 400 400 400 - - | ./fsk_demod -p 10 4 8000 400 - - | ./vhf_deframe_c2 B - /dev/null") set_tests_properties(test_fsk_vhf_framer PROPERTIES PASS_REGULAR_EXPRESSION "total_uw_err: 0") # VHF Ethernet-style packet system add_test(NAME test_freedv_data_channel COMMAND sh -c "./tfreedv_data_channel" WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/unittest ) # --------------------------------------------------------- # FreeDV API raw data # --------------------------------------------------------- # Burst mode with test frames: 3 bursts, each burst is two frames long add_test(NAME test_freedv_data_raw_ofdm_datac0_burst COMMAND sh -c "cd ${CMAKE_CURRENT_BINARY_DIR}/src; ./freedv_data_raw_tx --framesperburst 2 --bursts 3 --testframes 6 DATAC0 /dev/zero - | ./freedv_data_raw_rx --framesperburst 2 --testframes DATAC0 - /dev/null --vv") set_tests_properties(test_freedv_data_raw_ofdm_datac0_burst PROPERTIES PASS_REGULAR_EXPRESSION "Coded FER: 0.0000 Tfrms: 6 Tfers: 0") # Burst mode with data file I/O: add_test(NAME test_freedv_data_raw_ofdm_datac0_burst_file COMMAND sh -c "cd ${CMAKE_CURRENT_BINARY_DIR}/src; head -c $((14*10)) binaryIn.bin; ./freedv_data_raw_tx DATAC0 binaryIn.bin - --bursts 10 | ./freedv_data_raw_rx DATAC0 - binaryOut.bin --framesperburst 1 --vv; diff binaryIn.bin binaryOut.bin") add_test(NAME test_freedv_data_raw_ofdm_datac1_burst_file COMMAND sh -c "cd ${CMAKE_CURRENT_BINARY_DIR}/src; head -c $((510*10)) binaryIn.bin; ./freedv_data_raw_tx DATAC1 binaryIn.bin - --framesperburst 2 --bursts 5 | ./freedv_data_raw_rx DATAC1 - binaryOut.bin --framesperburst 2 --vv; diff binaryIn.bin binaryOut.bin") # Streaming mode tests, with data file I/O add_test(NAME test_freedv_data_raw_ofdm_datac0 COMMAND sh -c "cd ${CMAKE_CURRENT_BINARY_DIR}/src; head -c $((14*10)) binaryIn.bin; ./freedv_data_raw_tx DATAC0 binaryIn.bin - | ./freedv_data_raw_rx DATAC0 - binaryOut.bin -v; diff binaryIn.bin binaryOut.bin") add_test(NAME test_freedv_data_raw_ofdm_datac1 COMMAND sh -c "cd ${CMAKE_CURRENT_BINARY_DIR}/src; head -c $((510*10)) binaryIn.bin; ./freedv_data_raw_tx DATAC1 binaryIn.bin - | ./freedv_data_raw_rx DATAC1 - binaryOut.bin -v; diff binaryIn.bin binaryOut.bin") add_test(NAME test_freedv_data_raw_ofdm_datac3 COMMAND sh -c "cd ${CMAKE_CURRENT_BINARY_DIR}/src; head -c $((126*10)) binaryIn.bin; ./freedv_data_raw_tx DATAC3 binaryIn.bin - | ./freedv_data_raw_rx DATAC3 - binaryOut.bin -v; diff binaryIn.bin binaryOut.bin") # FSK LDPC default 100 bit/s 2FSK, enough noise for several % raw BER to give # FEC/acquisition a work out, bursts of 1 frame as that stresses acquisition add_test(NAME test_freedv_data_raw_fsk_ldpc_100 COMMAND sh -c "cd ${CMAKE_CURRENT_BINARY_DIR}/src; ./freedv_data_raw_tx --testframes 10 --bursts 10 FSK_LDPC /dev/zero - | ./cohpsk_ch - - -5 --Fs 8000 --ssbfilt 0 | ./freedv_data_raw_rx --testframes -v FSK_LDPC - /dev/null") set_tests_properties(test_freedv_data_raw_fsk_ldpc_100 PROPERTIES PASS_REGULAR_EXPRESSION "Frms.: 10") # FSK LDPC 1000 bit/s 2FSK, Fs=40kHz, as different configs can upset acquisition add_test(NAME test_freedv_data_raw_fsk_ldpc_1k COMMAND sh -c "cd ${CMAKE_CURRENT_BINARY_DIR}/src; ./freedv_data_raw_tx --Fs 40000 --Rs 1000 --tone1 1000 --shift 1000 --testframes 10 --bursts 10 FSK_LDPC /dev/zero - | ./cohpsk_ch - - -10 --Fs 8000 --ssbfilt 0 | ./freedv_data_raw_rx --testframes -v --Fs 40000 --Rs 1000 FSK_LDPC - /dev/null") set_tests_properties(test_freedv_data_raw_fsk_ldpc_1k PROPERTIES PASS_REGULAR_EXPRESSION "Frms.: 10") # FSK LDPC 10000 bit/s 2FSK, Fs=100kHz, each of the 10 bursts has 100 frames add_test(NAME test_freedv_data_raw_fsk_ldpc_10k COMMAND sh -c "cd ${CMAKE_CURRENT_BINARY_DIR}/src; ./freedv_data_raw_tx --Fs 100000 --Rs 10000 --tone1 10000 --shift 10000 --framesperburst 100 --bursts 10 --testframes 1000 FSK_LDPC /dev/zero - | ./cohpsk_ch - - -15 --Fs 8000 --ssbfilt 0 | ./freedv_data_raw_rx --testframes -v --Fs 100000 --Rs 10000 FSK_LDPC - /dev/null") set_tests_properties(test_freedv_data_raw_fsk_ldpc_10k PROPERTIES PASS_REGULAR_EXPRESSION "Frms.: 1000") # FSK LDPC Rs=1000 bit/s (Rb=2000) 4FSK, Fs=40kHz, this needs --mask and 2Rs shift to work reliably add_test(NAME test_freedv_data_raw_fsk_ldpc_2k COMMAND sh -c "cd ${CMAKE_CURRENT_BINARY_DIR}/src; ./freedv_data_raw_tx -a 8192 -m 4 --Fs 40000 --Rs 1000 --tone1 10000 --shift 2000 --testframes 10 --bursts 10 FSK_LDPC /dev/zero - | ./cohpsk_ch - - -22 --Fs 8000 --ssbfilt 0 | ./freedv_data_raw_rx -m 4 --testframes -v --Fs 40000 --Rs 1000 FSK_LDPC --mask 2000 - /dev/null") set_tests_properties(test_freedv_data_raw_fsk_ldpc_2k PROPERTIES PASS_REGULAR_EXPRESSION "Frms.: 10") # --------------------------------------------------------- # tests for demos # --------------------------------------------------------- add_test(NAME test_demo_c2demo COMMAND sh -c "cd ${CMAKE_CURRENT_BINARY_DIR}; ./demo/c2demo ../raw/hts1a.raw hts1a_out.raw; ls -l hts1a_out.raw") set_tests_properties(test_demo_c2demo PROPERTIES PASS_REGULAR_EXPRESSION "48000") add_test(NAME test_demo_700d COMMAND sh -c "cd ${CMAKE_CURRENT_BINARY_DIR}; cat ../raw/ve9qrp_10s.raw | ./demo/freedv_700d_tx | ./demo/freedv_700d_rx > ve9qrp_10s_700d.raw; ls -l ve9qrp_10s_700d.raw") set_tests_properties(test_demo_700d PROPERTIES PASS_REGULAR_EXPRESSION "158720") add_test(NAME test_demo_700d_python COMMAND sh -c "cd ${CMAKE_CURRENT_BINARY_DIR}; cat ../raw/ve9qrp_10s.raw | ./demo/freedv_700d_tx | ../demo/freedv_700d_rx.py > ve9qrp_10s_700d.raw; ls -l ve9qrp_10s_700d.raw") set_tests_properties(test_demo_700d_python PROPERTIES PASS_REGULAR_EXPRESSION "161280") add_test(NAME test_demo_datac1 COMMAND sh -c "cd ${CMAKE_CURRENT_BINARY_DIR}; head -c $((510*10)) binaryIn.bin; cat binaryIn.bin | ./demo/freedv_datac1_tx | ./demo/freedv_datac1_rx > binaryOut.bin; diff binaryIn.bin binaryOut.bin") endif(UNITTEST) codec2-1.0.1/COPYING000066400000000000000000000635361412132000500137040ustar00rootroot00000000000000 GNU LESSER GENERAL PUBLIC LICENSE Version 2.1, February 1999 Copyright (C) 1991, 1999 Free Software Foundation, Inc. 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. [This is the first released version of the Lesser GPL. It also counts as the successor of the GNU Library Public License, version 2, hence the version number 2.1.] Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public Licenses are intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This license, the Lesser General Public License, applies to some specially designated software packages--typically libraries--of the Free Software Foundation and other authors who decide to use it. You can use it too, but we suggest you first think carefully about whether this license or the ordinary General Public License is the better strategy to use in any particular case, based on the explanations below. When we speak of free software, we are referring to freedom of use, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish); that you receive source code or can get it if you want it; that you can change the software and use pieces of it in new free programs; and that you are informed that you can do these things. To protect your rights, we need to make restrictions that forbid distributors to deny you these rights or to ask you to surrender these rights. These restrictions translate to certain responsibilities for you if you distribute copies of the library or if you modify it. For example, if you distribute copies of the library, whether gratis or for a fee, you must give the recipients all the rights that we gave you. You must make sure that they, too, receive or can get the source code. If you link other code with the library, you must provide complete object files to the recipients, so that they can relink them with the library after making changes to the library and recompiling it. And you must show them these terms so they know their rights. We protect your rights with a two-step method: (1) we copyright the library, and (2) we offer you this license, which gives you legal permission to copy, distribute and/or modify the library. To protect each distributor, we want to make it very clear that there is no warranty for the free library. Also, if the library is modified by someone else and passed on, the recipients should know that what they have is not the original version, so that the original author's reputation will not be affected by problems that might be introduced by others. Finally, software patents pose a constant threat to the existence of any free program. We wish to make sure that a company cannot effectively restrict the users of a free program by obtaining a restrictive license from a patent holder. Therefore, we insist that any patent license obtained for a version of the library must be consistent with the full freedom of use specified in this license. Most GNU software, including some libraries, is covered by the ordinary GNU General Public License. This license, the GNU Lesser General Public License, applies to certain designated libraries, and is quite different from the ordinary General Public License. We use this license for certain libraries in order to permit linking those libraries into non-free programs. When a program is linked with a library, whether statically or using a shared library, the combination of the two is legally speaking a combined work, a derivative of the original library. The ordinary General Public License therefore permits such linking only if the entire combination fits its criteria of freedom. The Lesser General Public License permits more lax criteria for linking other code with the library. We call this license the "Lesser" General Public License because it does Less to protect the user's freedom than the ordinary General Public License. It also provides other free software developers Less of an advantage over competing non-free programs. These disadvantages are the reason we use the ordinary General Public License for many libraries. However, the Lesser license provides advantages in certain special circumstances. For example, on rare occasions, there may be a special need to encourage the widest possible use of a certain library, so that it becomes a de-facto standard. To achieve this, non-free programs must be allowed to use the library. A more frequent case is that a free library does the same job as widely used non-free libraries. In this case, there is little to gain by limiting the free library to free software only, so we use the Lesser General Public License. In other cases, permission to use a particular library in non-free programs enables a greater number of people to use a large body of free software. For example, permission to use the GNU C Library in non-free programs enables many more people to use the whole GNU operating system, as well as its variant, the GNU/Linux operating system. Although the Lesser General Public License is Less protective of the users' freedom, it does ensure that the user of a program that is linked with the Library has the freedom and the wherewithal to run that program using a modified version of the Library. The precise terms and conditions for copying, distribution and modification follow. Pay close attention to the difference between a "work based on the library" and a "work that uses the library". The former contains code derived from the library, whereas the latter must be combined with the library in order to run. GNU LESSER GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License Agreement applies to any software library or other program which contains a notice placed by the copyright holder or other authorized party saying it may be distributed under the terms of this Lesser General Public License (also called "this License"). Each licensee is addressed as "you". A "library" means a collection of software functions and/or data prepared so as to be conveniently linked with application programs (which use some of those functions and data) to form executables. The "Library", below, refers to any such software library or work which has been distributed under these terms. A "work based on the Library" means either the Library or any derivative work under copyright law: that is to say, a work containing the Library or a portion of it, either verbatim or with modifications and/or translated straightforwardly into another language. (Hereinafter, translation is included without limitation in the term "modification".) "Source code" for a work means the preferred form of the work for making modifications to it. For a library, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the library. Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running a program using the Library is not restricted, and output from such a program is covered only if its contents constitute a work based on the Library (independent of the use of the Library in a tool for writing it). Whether that is true depends on what the Library does and what the program that uses the Library does. 1. You may copy and distribute verbatim copies of the Library's complete source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and distribute a copy of this License along with the Library. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Library or any portion of it, thus forming a work based on the Library, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) The modified work must itself be a software library. b) You must cause the files modified to carry prominent notices stating that you changed the files and the date of any change. c) You must cause the whole of the work to be licensed at no charge to all third parties under the terms of this License. d) If a facility in the modified Library refers to a function or a table of data to be supplied by an application program that uses the facility, other than as an argument passed when the facility is invoked, then you must make a good faith effort to ensure that, in the event an application does not supply such function or table, the facility still operates, and performs whatever part of its purpose remains meaningful. (For example, a function in a library to compute square roots has a purpose that is entirely well-defined independent of the application. Therefore, Subsection 2d requires that any application-supplied function or table used by this function must be optional: if the application does not supply it, the square root function must still compute square roots.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Library, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Library, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Library. In addition, mere aggregation of another work not based on the Library with the Library (or with a work based on the Library) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may opt to apply the terms of the ordinary GNU General Public License instead of this License to a given copy of the Library. To do this, you must alter all the notices that refer to this License, so that they refer to the ordinary GNU General Public License, version 2, instead of to this License. (If a newer version than version 2 of the ordinary GNU General Public License has appeared, then you can specify that version instead if you wish.) Do not make any other change in these notices. Once this change is made in a given copy, it is irreversible for that copy, so the ordinary GNU General Public License applies to all subsequent copies and derivative works made from that copy. This option is useful when you wish to copy part of the code of the Library into a program that is not a library. 4. You may copy and distribute the Library (or a portion or derivative of it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange. If distribution of object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place satisfies the requirement to distribute the source code, even though third parties are not compelled to copy the source along with the object code. 5. A program that contains no derivative of any portion of the Library, but is designed to work with the Library by being compiled or linked with it, is called a "work that uses the Library". Such a work, in isolation, is not a derivative work of the Library, and therefore falls outside the scope of this License. However, linking a "work that uses the Library" with the Library creates an executable that is a derivative of the Library (because it contains portions of the Library), rather than a "work that uses the library". The executable is therefore covered by this License. Section 6 states terms for distribution of such executables. When a "work that uses the Library" uses material from a header file that is part of the Library, the object code for the work may be a derivative work of the Library even though the source code is not. Whether this is true is especially significant if the work can be linked without the Library, or if the work is itself a library. The threshold for this to be true is not precisely defined by law. If such an object file uses only numerical parameters, data structure layouts and accessors, and small macros and small inline functions (ten lines or less in length), then the use of the object file is unrestricted, regardless of whether it is legally a derivative work. (Executables containing this object code plus portions of the Library will still fall under Section 6.) Otherwise, if the work is a derivative of the Library, you may distribute the object code for the work under the terms of Section 6. Any executables containing that work also fall under Section 6, whether or not they are linked directly with the Library itself. 6. As an exception to the Sections above, you may also combine or link a "work that uses the Library" with the Library to produce a work containing portions of the Library, and distribute that work under terms of your choice, provided that the terms permit modification of the work for the customer's own use and reverse engineering for debugging such modifications. You must give prominent notice with each copy of the work that the Library is used in it and that the Library and its use are covered by this License. You must supply a copy of this License. If the work during execution displays copyright notices, you must include the copyright notice for the Library among them, as well as a reference directing the user to the copy of this License. Also, you must do one of these things: a) Accompany the work with the complete corresponding machine-readable source code for the Library including whatever changes were used in the work (which must be distributed under Sections 1 and 2 above); and, if the work is an executable linked with the Library, with the complete machine-readable "work that uses the Library", as object code and/or source code, so that the user can modify the Library and then relink to produce a modified executable containing the modified Library. (It is understood that the user who changes the contents of definitions files in the Library will not necessarily be able to recompile the application to use the modified definitions.) b) Use a suitable shared library mechanism for linking with the Library. A suitable mechanism is one that (1) uses at run time a copy of the library already present on the user's computer system, rather than copying library functions into the executable, and (2) will operate properly with a modified version of the library, if the user installs one, as long as the modified version is interface-compatible with the version that the work was made with. c) Accompany the work with a written offer, valid for at least three years, to give the same user the materials specified in Subsection 6a, above, for a charge no more than the cost of performing this distribution. d) If distribution of the work is made by offering access to copy from a designated place, offer equivalent access to copy the above specified materials from the same place. e) Verify that the user has already received a copy of these materials or that you have already sent this user a copy. For an executable, the required form of the "work that uses the Library" must include any data and utility programs needed for reproducing the executable from it. However, as a special exception, the materials to be distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. It may happen that this requirement contradicts the license restrictions of other proprietary libraries that do not normally accompany the operating system. Such a contradiction means you cannot use both them and the Library together in an executable that you distribute. 7. You may place library facilities that are a work based on the Library side-by-side in a single library together with other library facilities not covered by this License, and distribute such a combined library, provided that the separate distribution of the work based on the Library and of the other library facilities is otherwise permitted, and provided that you do these two things: a) Accompany the combined library with a copy of the same work based on the Library, uncombined with any other library facilities. This must be distributed under the terms of the Sections above. b) Give prominent notice with the combined library of the fact that part of it is a work based on the Library, and explaining where to find the accompanying uncombined form of the same work. 8. You may not copy, modify, sublicense, link with, or distribute the Library except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense, link with, or distribute the Library is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 9. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Library or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Library (or any work based on the Library), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Library or works based on it. 10. Each time you redistribute the Library (or any work based on the Library), the recipient automatically receives a license from the original licensor to copy, distribute, link with or modify the Library subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties with this License. 11. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Library at all. For example, if a patent license would not permit royalty-free redistribution of the Library by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Library. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply, and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 12. If the distribution and/or use of the Library is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Library under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 13. The Free Software Foundation may publish revised and/or new versions of the Lesser General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Library specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Library does not specify a license version number, you may choose any version ever published by the Free Software Foundation. 14. If you wish to incorporate parts of the Library into other free programs whose distribution conditions are incompatible with these, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Libraries If you develop a new library, and you want it to be of the greatest possible use to the public, we recommend making it free software that everyone can redistribute and change. You can do so by permitting redistribution under these terms (or, alternatively, under the terms of the ordinary General Public License). To apply these terms, attach the following notices to the library. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) This 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. This 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 this library; if not, see . Also add information on how to contact you by electronic and paper mail. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the library, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the library `Frob' (a library for tweaking knobs) written by James Random Hacker. , 1 April 1990 Ty Coon, President of Vice That's all there is to it! codec2-1.0.1/README.md000066400000000000000000000173221412132000500141200ustar00rootroot00000000000000# Codec 2 README Codec 2 is an open source (LGPL 2.1) low bit rate speech codec: http://rowetel.com/codec2.html Also included: + The FreeDV API for digital voice over radio. FreeDV is an open source digital voice protocol that integrates modems, codecs, and FEC [README_freedv](README_freedv.md) + APIs for raw and Ethernet packet data over radio [README_data](README_data.md) + High performance coherent OFDM modem for HF channels [README_ofdm](README_ofdm.md) + High performance non-coherent FSK modem [README_fsk](README_fsk.md) + An STM32 embedded version of FreeDV 1600/700D/700E for the [SM1000](stm32/README.md) + Coherent PSK modem [README_cohpsk](README_cohpsk.md) for HF channels + FDMDV DPSK modem [README_fdmdv](README_fdmdv.md) for HF channels ## Quickstart 1. Install packages (Debian/Ubuntu): ``` sudo apt install git build-essential cmake ``` Fedora/RH distros: ``` sudo dnf groupinstall "Development Tools" "C Development Tools and Libraries" sudo dnf install cmake ``` 1. Build Codec 2: ``` git clone https://github.com/drowe67/codec2.git cd codec2 mkdir build_linux cd build_linux cmake .. make ``` 1. Listen to Codec 2: ``` cd codec2/build_linux ./demo/c2demo ../raw/hts1a.raw hts1a_c2.raw aplay -f S16_LE ../raw/hts1a.raw aplay -f S16_LE hts1a_c2.raw ``` 1. Compress, decompress and then play a file using Codec 2 at 2400 bit/s: ``` ./src/c2enc 2400 ../raw/hts1a.raw hts1a_c2.bit ./src/c2dec 2400 hts1a_c2.bit hts1a_c2_2400.raw ``` which can be played with: ``` aplay -f S16_LE hts1a_c2_2400.raw ``` Or using Codec 2 using 700C (700 bits/s): ``` ./src/c2enc 700C ../raw/hts1a.raw hts1a_c2.bit ./src/c2dec 700C hts1a_c2.bit hts1a_c2_700.raw aplay -f S16_LE hts1a_c2_700.raw ``` 1. If you prefer a one-liner without saving to files: ``` ./src/c2enc 1300 ../raw/hts1a.raw - | ./src/c2dec 1300 - - | aplay -f S16_LE ``` 1. Or you can use your microphone and headphones to encode and listen to the result on the fly: ``` br=1300; arecord -f S16_LE -c 1 -r 8000 | ./src/c2enc $br - - | ./src/c2dec $br - - | aplay -f S16_LE - ``` ## FreeDV 2020 support (building with LPCNet) 1. Build codec2 initially without LPCNet ``` cd ~ git clone https://github.com/drowe67/codec2.git cd codec2 && mkdir build_linux && cd build_linux cmake ../ make ``` 1. Build LPCNet: ``` cd ~ git clone https://github.com/drowe67/LPCNet cd LPCNet && mkdir build_linux && cd build_linux cmake -DCODEC2_BUILD_DIR=~/codec2/build_linux ../ make ``` 1. (Re)build Codec 2 with LPCNet support: ``` cd ~/codec2/build_linux && rm -Rf * cmake -DLPCNET_BUILD_DIR=~/LPCNet/build_linux .. make ``` ## Programs + See `demo` directory for simple examples of using Codec and the FreeDV API. + `c2demo` encodes a file of speech samples, then decodes them and saves the result. + `c2enc` encodes a file of speech samples to a compressed file of encoded bits. `c2dec` decodes a compressed file of bits to a file of speech samples. + `c2sim` is a simulation/development version of Codec 2. It allows selective use of the various Codec 2 algorithms. For example switching phase modelling or quantisation on and off. + `freedv_tx` & `freedv_rx` are command line implementations of the FreeDV protocol, which combines Codec 2, modems, and Forward Error Correction (FEC). + `cohpsk_*` are coherent PSK (COHPSK) HF modem command line programs. + `fdmdv_*` are differential PSK HF modem command line programs (README_fdmdv). + `fsk_*` are command line programs for a non-coherent FSK modem (README_fsk). + `ldpc_*` are LDPC encoder/decoder command line programs, based on the CML library. + `ofdm_*` are OFDM PSK HF modem command line programs (README_ofdm). ## Building and Running Unit Tests CTest is used as a test framework, with support from [GNU Octave](https://www.gnu.org/software/octave/) scripts. 1. Install GNU Octave and libraries on Ubuntu with: ``` sudo apt install octave octave-common octave-signal liboctave-dev gnuplot python3-numpy sox valgrind ``` 1. Install CML library with instructions at the top of [```octave/ldpc.m```](octave/ldpc.m) 1. To build and run the tests: ``` cd ~/codec2 rm -Rf build_linux && mkdir build_linux cd build_linux cmake -DCMAKE_BUILD_TYPE=Debug .. make all test ``` 1. To just run tests without rebuilding: ``` ctest ``` 1. To get a verbose run (e.g. for test debugging): ``` ctest -V ``` 1. To just run a single test: ``` ctest -R test_OFDM_modem_octave_port ``` 1. To list the available tests: ``` ctest -N ``` ## Directories ``` cmake - cmake support files demo - Simple Codec 2 and FreeDv API demo applications misc - misc C programs that have been useful in development, not reqd for Codec 2 release. Part of Debug build. octave - Octave scripts used to support development script - shell scripts for playing and converting raw files src - C source code for Codec 2, FDMDV modem, COHPSK modem, FreeDV API raw - speech files in raw format (16 bits signed linear 8 kHz) stm32 - STM32F4 microcontroller and SM1000 FreeDV Adaptor support unittest - Code to perform and support testing. Part of Debug build. wav - speech files in wave file format ``` ## GDB and Dump Files 1. To compile with debug symbols for using gdb: ``` cd ~/codec2 rm -Rf build_linux && mkdir build_linux cd build_linux CFLAGS=-g cmake .. make ``` 1. For dump file support (dump data from c2sim for input to Octave development scripts): ``` cd ~/codec2 rm -Rf build_linux && mkdir build_linux cd build_linux CFLAGS=-DDUMP cmake .. make ``` ## Building for Windows on a Linux machine On Ubuntu 17 and above: ``` sudo apt-get install mingw-w64 mkdir build_windows && cd build_windows cmake .. -DCMAKE_TOOLCHAIN_FILE=/home/david/freedv-dev/cmake/Toolchain-Ubuntu-mingw32.cmake -DUNITTEST=FALSE -DGENERATE_CODEBOOK=/home/david/codec2/build_linux/src/generate_codebook make ``` ## Building for Windows on a Windows machine ``` mkdir build_windows (Or what ever you want to call your build dir) cmake -G "MinGW Makefiles" -D CMAKE_MAKE_PROGRAM=mingw32-make.exe Or if you use ninja for building cmake -G "Ninja" .. mingw32-make or ninja depends on what you used in the last command wait for it to build. ``` ## Including Codec 2 in an Android project In an Android Studio 'NDK' project (a project that uses 'native' code) Codec 2 can be added to the project in the following way. 1. Add the Codec 2 source tree to your app (e.g. in app/src/main/codec2) (e.g. as a git sub-module). 1. Add Codec 2 to the CMakeList.txt (app/src/main/cpp/CMakeLists.txt): ``` # Sets lib_src_DIR to the path of the target CMake project. set( codec2_src_DIR ../codec2/ ) # Sets lib_build_DIR to the path of the desired output directory. set( codec2_build_DIR ../codec2/ ) file(MAKE_DIRECTORY ${codec2_build_DIR}) add_subdirectory( ${codec2_src_DIR} ${codec2_build_DIR} ) include_directories( ${codec2_src_DIR}/src ${CMAKE_CURRENT_BINARY_DIR}/../codec2 ) ``` 1. Add Codec 2 to the target_link_libraries in the same file. ## Building Debian packages To build Debian packages, simply run the "cpack" command after running "make". This will generate the following packages: + codec2: Contains the .so and .a files for linking/executing applications dependent on Codec2. * codec2-dev: Contains the header files for development using Codec2. Once generated, they can be installed with "dpkg -i" (once LPCNet is installed). If LPCNet is not desired, CMakeLists.txt can be modified to remove that dependency. codec2-1.0.1/README_cohpsk.md000066400000000000000000000016731412132000500154710ustar00rootroot00000000000000# README_cohpsk.md ## Introduction ## Quickstart 1. BER test in AWGN channel with just less that 2% average bit error rate: ``` $ ./cohpsk_get_test_bits - 5600 | ./cohpsk_mod - - | ./cohpsk_ch - - -30 | ./cohpsk_demod - - | ./cohpsk_put_test_bits - SNR3k(dB): 3.41 C/No: 38.2 PAPR: 8.1 BER: 0.017 Nbits: 5264 Nerrors: 92 ``` 2. Plot some of the demod internal states, used to chase down freq offset problemL ``` $ cd build_linux/src $ ./cohpsk_get_test_bits - 5600 | ./cohpsk_mod - - | ./cohpsk_ch - - -40 -f -20 | ./cohpsk_demod -o cohpsk_demod.txt - - | ./cohpsk_put_test_bits - $ cd ../../octave $ octave --no-gui $ cohpsk_demod_plot("../build_linux/src/cohpsk_demod.txt") ``` 3. Run Octave<-> tests ``` $ cd ~/codec2/build_linux/unittest $ ./tochpsk $ cd ~/codec2/octave $ octave --no-gui octave> tcohpsk ``` ## References ## C Code ## Octave Scripts codec2-1.0.1/README_data.md000066400000000000000000000540151412132000500151110ustar00rootroot00000000000000# README_data.md # Introduction FreeDV can be used to send data over radio channels. Two APis are supported: + VHF packet data channel which uses Ethernet style framing. + Raw frames of modem data over VHF and HF channels. ## Credits The VHF data channel was developed by Jeroen Vreeken. ## Quickstart VHF packet data API: 1. Simple test using mode 2400A and VHF packet data ```sh $ cd ~/codec2/build_linux $ ./src/freedv_data_tx 2400A - --frames 15 | ./src/freedv_data_rx 2400A - ``` You can listen to the modem signal using: ```sh $ ./src/freedv_data_tx 2400A - --frames 15 | aplay -f S16_LE -r 48000 ``` 2. Same for 2400B and 800XA ```sh $ ./src/freedv_data_tx 2400B - --frames 15 | ./src/freedv_data_rx 2400B - $ ./src/freedv_data_tx 800XA - --frames 15 | ./src/freedv_data_rx 800XA - ``` 3. Using a different callsign and secondary station id ```sh $ ./src/freedv_data_tx 2400A - --callsign T3ST --ssid 15 --frames 15 | src/freedv_data_rx 2400A - ``` Raw modem frame API: 1. Let's send a 128 byte frame containing some text over the modem: ```sh padding=$(head -c 115 < /dev/zero | tr '\0' '-'); echo "Hello World" $padding > in.txt ./src/freedv_data_raw_tx --bursts 1 datac3 in.txt - | ./src/freedv_data_raw_rx --framesperburst 1 datac3 - - Hello World -------- ``` Note we've padded the input frame to 126 bytes, the DATAC3 framesize (less CRC). # VHF Packet Data Channel The FreeDV VHF data channel operates on a packet level. The FreeDV modems however typically operate on a fixed frame base. This means that data packets have to be sent in multiple frames. The packet format is modeled after Ethernet. As a result, any protocol that is compatible with Ethernet can potentially be used over a FreeDV data link. (There are of course practical limits. Browsing the world wide web with just a few hundred bits per second will not be a pleasant experience.) ## Header optimization When there are no packets available for transmission a small 'filler' packet with just the sender's address will be sent. When there is a packet available not all of the header needs to be sent. The sender's address can often be left out if it was already sent in a previous frame. Likewise when the packet has no specific destination but is targeted at a multicast address, this can also be transmitted in a single bit as opposed to a 6 byte broadcast address. ## Addressing Since the format is based on Ethernet, a 6 byte sender and destination address is used. It is possible to encode an ITU compatible callsign in these bytes. See http://dmlinking.net/eth_ar.html for more info. Or have a look at freedv_data_tx.c and freedv_data_rx.c for an actual implementation. ## Packet types The 2 byte EtherType field is used to distinguish between various protocols. ## Checks Not all channels are perfect, and especially since a packet is split up over multiple frames, bits might get lost. Each packet therefore has a CRC which is checked before it is accepted. Note there is No FEC on 2400A/2400B/800XA. ## Available modes The data channel is available for modes 2400A, 2400B and 800XA. ## API The data channel is part of the regular FreeDV API. ### Initialization After creating a new freedv instance with freedv_open(), a few more calls need to be done before the data channel is usable. ``` void freedv_set_data_header (struct freedv *freedv, unsigned char *header); ``` The address that will be used for 'filler' packets must be set. The freedv_set_data_header() function must be called with a 6 byte header. ``` typedef void (*freedv_callback_datarx)(void *, unsigned char *packet, size_t size); typedef void (*freedv_callback_datatx)(void *, unsigned char *packet, size_t *size); void freedv_set_callback_data (struct freedv *freedv, freedv_callback_datarx datarx, freedv_callback_datatx datatx, void *callback_state); ``` Using freedv_set_callback_data() two callback functions can be provided. The datarx callback will be used whenever a new data packet has been successfully received. The datatx callback will be used when a new data packet is required for transmission. ### Operation ``` void freedv_datatx (struct freedv *f, short mod_out[]); ``` During normal operation the freedv_datatx() function can be used whenever a data frame has to be sent. If no data is available it will request new data using the datatx callback. The callback function is allowed to set 'size' to zero if no data is available or if it wishes to send an address frame. For reception the regular freedv_rx() functions can be used as received data will automatically be reported using the datarx callback. Be aware that these functions return the actual number of received speech samples. When a data frame is received the return value will be zero. This may lead to 'gaps' in the audio stream which will have to be filled with silence. ### Examples The freedv_data_tx and freedv_data_rx test programs implement the minimum needed to send and receive data packets. ## Mixing voice and data Encoding only voice data is easy with the FreeDV API. Simply use the freedv_tx() function and provide it with speech samples. Likewise encoding only data is also easy. Make sure to provide a source of data frames using the freedv_set_callback_data() function, and use the freedv_datatx() function to generate frames. However there are many use cases where one would like to transmit a mix of voice and data. For example one might want to transmit their callsign in a machine readable format, or a short position report. There are a few ways to do this: ### Data bursts at start and/or end of transmission This method simply transmits voice frames during the transmission, except for a few moments. For example when the user keys the radio the software uses the freedv_datatx() function for a number of frames before switching to regular voice frames. Likewise when the user releases the key the software may hold it for a number of frames to transmit data before it releases the actual radio. Be careful though: depending on your setup (radio, PC, soundcard, etc) the generated frames and the keying of your radio might not be perfectly in sync and the first or last frames might be lost in the actual transmission. Make sure to take this into account when using this method. ### Data and voice interleaved Another method is to generate a mixed stream of frames. Compared to a small burst at the beginning or end a lot more data can be sent. We only need a way to choose between voice or data such that the recovered speech at the other side is not impacted. #### Detect voice activity When it is possible to determine activity in the voice signal (and it almost always is) this presence can be used to insert a data frame by calling freedv_datatx() instead of freedv_tx()/freedv_codectx(). This method is used in the freedv_mixed_tx demo program. When the option --codectx is given the codec2 library is used to determine the activity. ``` $ ./src/freedv_mixed_tx 2400A ../raw/hts1a.raw - --codectx | src/freedv_data_rx 2400A - $ ./src/freedv_mixed_tx 2400A ../raw/hts1a.raw - | src/freedv_data_rx 2400A - ``` The advantage of this method is that the audio is not distorted, there was nothing (or near nothing) to distort. A drawback is that constant voice activity may mean there are insufficient frames for data. ### Receiving mixed voice and data Receiving and decoding a mixed voice and data stream is (almost) as easy as receiving a regular voice-only transmission. One simply uses the regular API calls for reception of speech samples. In addition, the callback functions are used for data. There is one caveat though: when a data frame is received the API functions (like freedv_rx) will return zero as this is the amount of codec/voice data received. For proper playback silence (or comfort noise) should be inserted for the duration of a frame to restore the timing of the original source speech samples. An example of how this is done is provided in freedv_mixed_rx ``` $ ./src/freedv_mixed_tx 2400A ../raw/hts1a.raw - | src/freedv_mixed_rx 2400A - ./hts1a_out.raw ``` ### Insert a data frame periodically This is a very simple method, simply insert a data frame every n frames, (e.g. once every 10 seconds). Since single FreeDV frames are relatively short (tens of milliseconds) the effect on received audio will be minor. The advantage of this method is that one can create a guaranteed amount of data bandwidth. A drawback is some interruption in the audio that may be noticed. ### Combination of the above. A combination of the two methods may also be used. Send data when no voice is active and insert a frame when this does not occur for a long time. # Raw Data using the FreeDV API The raw data API can be used to send frames of bytes over radio channels. The frames are protected with FEC and have a 16-bit checksum to verify correct transmission. However the raw data API may lose frames due to channel impairments, loss of sync, or acquisition delays. The caller must handle these situations. The caller is also responsible for segmentation/re-assembly of the modem frames into larger blocks of data. Several modes are available which support FSK and OFDM modulation. FSK is aimed at VHF And UHF applications, and the OFDM modes have been optimised for multipath HF radio channels. For simple examples of how use the FreeDV API with raw data frames, see the demo programs [freedv_data1_tx.c](demo/freedv_data1_tx.c) and [freedv_data1_rx.c](src/freedv_data1_rx.c) The full featured sample programs [freedv_data_raw_tx.c](src/freedv_data_raw_tx.c) and [freedv_data_raw_rx.c](src/freedv_data_raw_rx.c) can be used to experiment with the raw data API. ## FSK LDPC Raw Data Mode The FSK_LDPC mode uses 2 or 4 FSK in combination with powerful LDPC codes, and was designed for VHF or UHF AWGN channels. Parameters such as the number of FSK tones, sample rate, symbol rate, and LDPC code can be selected at initialisation time. The frame format is: ``` | Preamble | UW | payload data | CRC | parity | UW | payload data | CRC | parity | ........... | | frame 1 -------------------------| frame 2 -------------------------| ... frame n | ``` Only one preamble is transmitted for each data burst, which can contain as many frames as you like. Each frame starts with a 32 bit Unique Word (UW), then the FEC codeword consisting of the data and parity bits. At the end of the data bits, we reserve 16 bits for a CRC. Here is an example of sending some text: ``` $ cd codec2/build_linux/src $ echo 'Hello World ' | ./freedv_data_raw_tx FSK_LDPC - - 2>/dev/null | ./freedv_data_raw_rx FSK_LDPC - - 2>/dev/null | hexdump -C 00000000 48 65 6c 6c 6f 20 57 6f 72 6c 64 20 20 20 20 20 |Hello World | 00000010 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ..| 00000020 ``` Notes: 1. The input data is padded to 30 bytes. The (512,256) code sends 256 data bits every frame, we reserve 16 for a CRC, so there are 240 bits, or 30 bytes of payload data required for one frame. 1. The '2>/dev/null' command redirects stderr to nowhere, removing some of the debug information the test programs usually display to make this example easier to read. When testing, it's convenient to use an internal source of test data. Here is an example where we send a single burst of 10 test frames: ``` $ cd codec2/build_linux/src $ ./freedv_data_raw_tx --testframes 10 FSK_LDPC /dev/zero - | ./freedv_data_raw_rx --testframes FSK_LDPC - /dev/null Nbits: 50 N: 4000 Ndft: 1024 bits_per_modem_frame: 256 bytes_per_modem_frame: 32 bytes_per_modem_frame: 32 Frequency: Fs: 8.0 kHz Rs: 0.1 kHz Tone1: 1.0 kHz Shift: 0.2 kHz M: 2 frames processed: 131 output bytes: 320 output_packets: 10 BER......: 0.0000 Tbits: 5440 Terrs: 0 Coded BER: 0.0000 Tbits: 2560 Terrs: 0 ``` The default is 100 bits/s 2FSK. The (512,256) code sends 256 data bits (32 bytes) with every codeword, the remaining 256 bits reserved for parity. The `--testframes` mode reports `320 output bytes` (10 frames where sent), and `Tbits: 2560`, so all of our data made it through. In real world operation, 16 of the data bits are reserved for a CRC, leaving 240 payload data bits per frame. Taking into account the overhead of the UW, CRC, and parity bits, we send 240 payload data bits for every out of 544, so the payload data rate in this example is (240/512)*(100 bits/s) = 44.1 bits/s. We can add some channel noise using the `cohpsk_ch` tool and see how it performs: ``` $ ./freedv_data_raw_tx --testframes 1 --bursts 10 FSK_LDPC /dev/zero - | ./cohpsk_ch - - -5 --Fs 8000 --ssbfilt 0 | ./freedv_data_raw_rx --testframes -v FSK_LDPC - /dev/null frames processed: 336 output bytes: 320 output_packets: 10 BER......: 0.0778 Tbits: 5440 Terrs: 423 SNR3k(dB): -13.00 C/No: 21.8 PAPR: 7.5 Coded BER: 0.0000 Tbits: 2560 Terrs: 0 ``` The `cohpsk_ch` stderr reporting is mixed up with the testframes results but we can see that over a channel with a -13dB SNR, we obtained a raw bit error rate of 0.0778 (nearly 8%). However the LDPC code cleaned that up nicely and still received all 10 packets with no errors. Here is an example running 4FSK at 20000 bits/s (10000 symbols/s), at a sample rate of 200 kHz: ``` $./freedv_data_raw_tx -m 4 --Fs 200000 --Rs 10000 --tone1 10000 --shift 10000 --testframes 100 --bursts 10 FSK_LDPC /dev/zero - | ./cohpsk_ch - - -12 --Fs 8000 --ssbfilt 0 | ./freedv_data_raw_rx -m 4 --testframes -v --Fs 200000 --Rs 10000 FSK_LDPC --mask 10000 - /dev/null frames processed: 5568 output bytes: 30144 output_packets: 942 BER......: 0.0691 Tbits: 528224 Terrs: 36505 Coded BER: 0.0022 Tbits: 248576 Terrs: 535 ``` Some notes on this example: 1. We transmit 10 bursts, each of 100 frames in length, 1000 packets total. There are a couple of frames silence between each burst. This gives the acquisition algorithms a good work out. 1. Only 942 packets make it though this rather noisy channel, a 6% Packet Error Rate (PER). In a real world application, a higher protocol layer would need to detect this, and arrange for re-transmission of missing packets. If the SNR was a few dB better, all 1000 packets would likely make it through. If it was 1dB worse, nothing would get through; LDPC codes have a very sharp "knee" in the PER versus SNR curve. 1. Our first tone `--tone` is at 10kHz, and each tone is spaced `--shift` by 10kHz, so we have FSK tones at 10,20,30, and 40 kHz. For good performance, FSK tones must be spaced by at least the symbol rate Rs. 1. Although the `cohpsk_ch` utility is designed for 8kHz sample rate operation, it just operates on sampled signals, so it's OK to use at higher sample rates. It does have some internal filtering so best to keep your signal well away from 0 and (sample rate)/2. The SNR measurement is calibrated to a 3000 Hz noise bandwidth, so won't make much sense at other sample rates. The third argument `-12` sets the noise level of the channel. 1. The `--mask` frequency offset algorithm is used, which gives better results on noisy channels, especially for 4FSK. ### Reading Further 1. Examples in the [ctests](CMakeLists.txt). 1. [FSK_LDPC blog post](http://www.rowetel.com/?p=7467) ## OFDM Raw Data modes for HF Radio These modes use an OFDM modem with powerful LDPC codes and are designed for sending data over HF radio channels with multipath fading. At the time of writing (April 2021) they are a work in progress, but usable as is. The current modes supported are: | FreeDV Mode | RF bandwidth (Hz) | Payload data rate bits/s | Payload bytes/frame | FEC | Duration (sec) | MPP test | Use case | | :-: | :-: | :-: | :-: | :-: | :-: | :-: | :-: | | DATAC0 | 500 | 291 | 14 | (256,128) | 0.44 | 70/100 at 0dB | Reverse link ACK packets (all SNRs) | | DATAC1 | 1700 | 980 | 510 | (8192,4096) | 4.18 | 92/100 at 5dB | Forward link data (medium SNR) | | DATAC3 | 500 | 321 | 126 | (2048,1024) | 3.19 | 74/100 at 0dB | Forward link data (low SNR) | Notes: 1. 16 bits (2 bytes) per frame are reserved for a 16 bit CRC, e.g. for `datac3` we have 128 byte frames, and 128-2=126 bytes/frame of payload data. 1. SNR is the target operating point SNR for each mode. 1. "MPP test" is the number of packets received/transmitted on a simulated MultiPath Poor channel (1Hz Doppler spread, 2ms delay) at the operating point SNR. From the callers point of view, the frame format of each burst is: ``` | Preamble | payload data | CRC | payload data | CRC | ........... | Postamble | | frame 1 -----------| frame 2 -----------| ... frame N | ``` In the next layer down, each frame is comprised of several OFDM "modem frames", that contain pilot, unique word, and FEC symbols to handle syncronisation and error correction over the challenging HF channel. The preamble and postamble are used to locate the burst and estimate it's frequency offset. Having both a pre and postamble increases the probability of successful detection of the burst in a fading channel. Here are some single frame bursts a MPP channel at 5dB SNR: ![](doc/pre_post_amble_mpp.png) You can see what a mess the MPP channel makes. Sometimes we find the pre-amble, other times the post-amble. Using both increases the probability of detecting the burst, it's a form of time diversity. If the probability of missing the pre-amble is P(fail)=0.1, then the probability of missing the pre and post-amble is P(fail)*P(fail)=0.01. If we find either we can work out where the burst starts and start demodulating. Here is an example of sending 3 bursts of 2 frames/burst, a total of 6 frames: ``` ./src/freedv_data_raw_tx --framesperburst 2 --bursts 3 --testframes 6 DATAC0 /dev/zero - | ./src/freedv_data_raw_rx --framesperburst 2 --testframes DATAC0 - /dev/null --vv BER......: 0.0000 Tbits: 1536 Terrs: 0 Coded BER: 0.0000 Tbits: 768 Terrs: 0 Coded PER: 0.0000 Tpkts: 6 Tpers: 0 ``` Lets add some noise and a 20 Hz frequency offset: ``` ./src/freedv_data_raw_tx --framesperburst 2 --bursts 3 --testframes 6 DATAC0 /dev/zero - | ./src/cohpsk_ch - - -20 --Fs 8000 -f 20 | ./src/freedv_data_raw_rx --framesperburst 2 --testframes DATAC0 - /dev/null --vv marks:space: 0.83 SNR offset: -0.79 cohpsk_ch: SNR3k(dB): -0.36 C/No....: 34.42 BER......: 0.0195 Tbits: 1536 Terrs: 30 Coded BER: 0.0000 Tbits: 768 Terrs: 0 Coded PER: 0.0000 Tpkts: 6 Tpers: 0 ``` We still received 6 frames OK (Tpkts field), but in this case there was a raw BER of about 2% which the FEC cleaned up nicely (Coded BER 0.0). Just above that we can see the "SNR offset" and "cohpsk_ch: SNR3k" fields. In the silence between bursts the modem signal has zero power, which biases the SNR measured by the `conhpsk_ch` channels simulation tool. This bias is the "SNR offset". So the true SNR for this test is actually: ``` SNR = -0.36 - (-0.79) = 0.43 dB ``` In the `raw` directory is a real world off-air sample of a signal sent between Adelaide and Melbourne (800km) using about 20W on 40m. This can be decoded with: ``` ./src/freedv_data_raw_rx datac1 --framesperburst 1 --testframes ../raw/test_datac1_006.raw /dev/null --vv BER......: 0.0134 Tbits: 73728 Terrs: 986 Coded BER: 0.0000 Tbits: 36864 Terrs: 0 Coded PER: 0.0000 Tpkts: 9 Tpers: 0 ``` It's also useful to listen to the file, you can hear co-channel SSB, the bursts starting and stopping, and some fading: ``` aplay -f S16_LE ../raw/test_datac1_006.raw ``` Here is a spectrogram (waterfall on it's side - time flows from left to right, frequency on the Y axis): ![](doc/test_datac1_006_spectrogram.png) The multipath channel carves notches out of the signal, and the level rises and falls. The 27 carriers of the `datac1` channel can also be observed. The SSB is the fuzz along the top. The SNR varied between 8 and 16dB. The fading is even more obvious on the scatter diagram: ![](doc/test_datac1_006_scatter.png) The X shape is due to the level of each carrier changing with the fading. In some cases a carrier is faded down to zero. The FEC helps clean up any errors due to faded carriers. ## SNR estimation and clipping The modem estimates the SNR of every received packet, which can be useful for selecting the best mode to maximise bit rate while minimising the packet error rate. Clipping (compression) is enabled by default on each modem waveform to maximise the Peak to Average Power Ratio (PAPR). Power amplifiers are usually rated in terms of peak power (PEP). For a given peak power, clipping increases SNR over the channel by 3-4dB. Clipping works by introducing controlled distortion, which affects the SNR estimator in the modem. When clipping is enabled, the SNR reported by the datac0 and datac3 modes will start to roll off and reach a plateau at about 8dB with no channel noise. For the same channel SNR, datac1 will return a higher (and more accurate) SNR estimate. If clipping is disabled, the datac0 and datac3 modes will report a more accurate SNR. This command line demonstrates the effect: ``` /src/freedv_data_raw_tx datac3 /dev/zero - --testframes 10 --bursts 10 --clip 1 | ./src/cohpsk_ch - - -100 --raw_dir ../raw --Fs 8000 | ./src/freedv_data_raw_rx datac3 - /dev/null --testframes --framesperburst 1 -v ``` Try adjusting `--clip` and third argument of `cohpsk_ch` (noise level) for different modes. Note the SNR estimates returned from `freedv_data_raw_rx` compared to the SNR from the channel simulator `cohpsh_ch`. You will notice clipping also increases the RMS power and reduces the PER for a given noise level. ## Reading Further Resources: 1. See the raw data example in Quickstart section above. 1. For simple examples of how use the FreeDV API, see the demo programs [freedv_datac1_tx.c](demo/freedv_datac1_tx.c) and [freedv_datac1_rx.c](demo/freedv_datac1_rx.c) 1. [freedv_data_raw_tx.c](src/freedv_data_raw_tx.c) and [freedv_data_raw_rx.c](src/freedv_data_raw_rx.c) are more full deatured example programs. 1. The modem waveforms designs are described in this [spreadsheet](doc/modem_codec_frame_design.ods). 1. Examples in the [ctests](CMakeLists.txt) (look for "FreeDV API raw data") 1. [Codec 2 HF Data Modes Part 1 blog post](http://www.rowetel.com/?p=7167) 1. [HF Data Acquisition](https://github.com/drowe67/codec2/pull/171) GitHub Pull Request codec2-1.0.1/README_fdmdv.md000066400000000000000000000146351412132000500153040ustar00rootroot00000000000000# README_fdmdv ## Introduction A 1400 bit/s (nominal) Frequency Division Multiplexed Digital Voice (FDMDV) modem based on [FreeDV 1600 Specification](https://freedv.org/freedv-specification). Used for FreeDV 1600. The FDMDV modem was first implemented in GNU Octave, then ported to C. Algorithm development is generally easier in Octave, but for real-time work we need the C version. Automated units tests ensure the operation of the Octave and C versions are identical. ## Quickstart Built as part of codec2, see [README](README.md) for build instructions. 1. Generate some test bits and modulate them: ``` $ ./fdmdv_get_test_bits test.c2 1400 $ ./fdmdv_mod test.c2 test.raw $ play -r 8000 -s -2 test.raw ``` 1. Two seconds of test frame data modulated and sent out of sound device: ``` $ ./fdmdv_get_test_bits - 2800 | ./fdmdv_mod - - | play -t raw -r 8000 -s -2 - ``` 1. Send 14000 modulated bits (10 seconds) to the demod and count errors: ``` $ ./fdmdv_get_test_bits - 14000 | ./fdmdv_mod - - | ./fdmdv_demod - - 14 demod_dump.txt | ./fdmdv_put_test_bits - ``` Use Octave to look at plots of 1 second (1400 bits) of modem operation: ``` $ cd ../octave $ octave --no-gui octave:1> fdmdv_demod_c("../src/demod_dump.txt",14000) ``` 1. Run Octave simulation of entire modem and AWGN channel: ``` $ cd ../octave $ octave octave:1> fdmdv_ut ``` 1. NOTE: If you would like to play modem samples over the air please convert the 8 kHz samples to 48 kHz. Many PC sound cards have wildly inaccurate sample clock rates when set to 8 kHz, but seem to perform OK when set for 48 kHz. If playing and recording files you can use the sox utility: ``` $ sox -r 8000 -s -2 modem_sample_8kHz.raw -r 48000 modem_sample_48kHz.wav ``` For real-time applications, the fdmdv.[ch] library includes functions to convert between 48 and 8 kHz sample rates. 1. Send 20 seconds at 2000 bit/s (20 carriers) to demod and count errors: ``` $ ./fdmdv_get_test_bits - 20000 20 | ./fdmdv_mod - - 20 | ./fdmdv_demod - - 20 | ./fdmdv_put_test_bits - 20 ``` 1. Test with timing slips due to sample clock offset of 1000ppm: ``` $ ./fdmdv_get_test_bits - 30000 | ./fdmdv_mod - - | sox -t raw -r 8000 -s -2 - -t raw -r 7990 - | ./fdmdv_demod - - 14 demod_dump.txt | ./fdmdv_put_test_bits - octave:98> fdmdv_demod_c("../build_linux/src/demod_dump.txt",28000) 27552 bits 0 errors BER: 0.0000 ``` ## References 1. [FreeDV 1600 Specification](https://freedv.org/freedv-specification) 3. [Testing a FDMDV Modem](http://www.rowetel.com/blog/?p=2433) 4. [FDMDV Modem Page](http://www.rowetel.com/blog/?p=2458) ## C Code | File | Description | | --- | --- | | src/fdmdv_mod.c | C version of modulator that takes a file of bits and converts it to a raw file of modulated samples | | src/fdmdv_demod.c | C version of demodulator that takes a raw file of modulated samples and outputs a file of bits. Optionally dumps demod states to a text file which can be plotted using the Octave script fdmdv_demod_c.m | | src/codec2_fdmdv.h | Header file that exposes FDMDV C API functions. Include this file in your application program | | src/fdmdv.c | C functions that implement the FDMDV modem | | src/fdmdv-internal.h | internal states and constants for FDMDV modem, shouldn't be exposed to application program | | unittest/tfdmdv.c | Used to conjunction with unittest/tfdmdv.m to automatically test C FDMDV functions against Octave versions | ## Octave Scripts Note these require some Octave packages to be installed, see [README](README.md) | File | Description | | --- | --- | | fdmdv.m | Functions and variables that implement the Octave version of the FDMDV modem | | fdmdv_ut.m | Unit test for fdmdv Octave code, useful while developing algorithm. Includes tx/rx plus basic channel simulation | | fdmdv_mod.m | Octave version of modulator that outputs a raw file. The modulator is driven by a test frame of bits. This can then be played over a real channel or through a channel simulator like PathSim. The sample rate can be changed using "sox" to simulate differences in tx/rx sample clocks | | fdmdv_demod.m | Demodulator program that takes a raw file as input, and works out the bit error rate using the known test frame. Can be used to test the demod performs with off-air signals, or signals that have been passed through a channel simulator | | fdmdv_demod_c.m | Takes an output text file from the C demod fdmdv_demod.c and produces plots and measures BER. Useful for evaluating fdmdv_demod.c performance. The plots produced are identical to the Octave version fdmdv_demod.m, allowing direct comparison of the C and Octave versions | | tfdmdv.m | Automatic tests that compare the Octave and C versions of the FDMDV modem functions. First run unittest/tfdmdv, this will generate a text file with test vectors from the C version. Then run the Octave script tfdmdv and it will generate Octave versions of the test vectors and compare each vector with the C equivalent. It plots the vectors and errors (green). It also produces an automatic checklist based on test results. If the Octave or C modem code is changed, this script should be used to ensure the C and Octave versions remain identical | 1. Typical fdmdv_ut run: ``` octave:6> fdmdv_ut Eb/No (meas): 7.30 (8.29) dB bits........: 2464 errors......: 20 BER.........: 0.0081 PAPR........: 13.54 dB SNR.........: 4.0 dB ``` It also outputs lots of nice plots that show the operation of the modem. For a 1400 bit/s DQPSK modem we expect about 1% BER for Eb/No = 7.3dB, which corresponds to SNR = 4dB (3kHz noise BW). The extra dB of measured power is due to the DBPSK pilot. Currently the noise generation code doesn't take the pilot power into account, so in this example the real SNR is actually 5dB. 1. To generate 10 seconds of modulated signal: ``` octave:8> fdmdv_mod("test.raw",1400*10); ``` To demodulate 2 seconds of the test.raw file generated above: ``` octave:9> fdmdv_demod("test.raw",1400*2); 2464 bits 0 errors BER: 0.0000 ``` It also produces several plots showing the internal states of the demod. Useful for debugging and observing what happens with various channels. ## Modelling sample clock errors using sox This introduces a simulated 1000ppm error: ``` sox -r 8000 -s -2 mod_dqpsk.raw -s -2 mod_dqpsk_8008hz.raw rate -h 8008 ``` codec2-1.0.1/README_freedv.md000066400000000000000000000256761412132000500154660ustar00rootroot00000000000000# FreeDV Technology FreeDV is an open source digital voice protocol that integrates modems, speech codecs, and FEC. On transmit, FreeDV converts speech to a modem signal you can send over a radio channel. On receive, FreeDV takes off air modem signals and converts them to speech samples. FreeDV is available as a GUI application, an open source library (FreeDV API), and in hardware (the SM1000 FreeDV adaptor). FreeDV is part of the Codec 2 project. This document gives an overview of the technology inside FreeDV, and some additional notes on building/using the FreeDV 2020 and 2400A/2400B modes. ![FreeDV mode knob](http://www.rowetel.com/images/codec2/mode_dv.jpg) ## Reading Further 1. [FreeDV web site](http://freedv.org) 1. [FreeDV GUI User Manual](https://github.com/drowe67/freedv-gui/blob/master/USER_MANUAL.md) 1. [Codec 2](http://rowetel.com/codec2.html) 1. FreeDV can also be used for data [README_data](https://github.com/drowe67/codec2/blob/master/README_data.md) 1. [FreeDV 1600 specification](https://freedv.org/freedv-specification) 1. [FreeDV 700C blog post](http://www.rowetel.com/wordpress/?p=5456) 1. [FreeDV 700D Released blog post](http://www.rowetel.com/wordpress/?p=6103) 1. [FreeDV 2020 blog post](http://www.rowetel.com/wordpress/?p=6747) 1. [FreeDV 2400A blog post](http://www.rowetel.com/?p=5119) 1. [FreeDV 2400A & 2400B](http://www.rowetel.com/?p=5219) 1. Technical information on various modem waveforms in the [modem codec frame design spreadsheet](https://github.com/drowe67/codec2/blob/master/doc/modem_codec_frame_design.ods) 1. [Modems for HF Digital Voice Part 1](http://www.rowetel.com/wordpress/?p=5420) 1. [Modems for HF Digital Voice Part 2](http://www.rowetel.com/wordpress/?p=5448) 1. [FDMDV modem README](README_fdmdv.md) 1. [OFDM modem README](README_ofdm.md) 1. Many blog posts in the [rowetel.com blog archives](http://www.rowetel.com/?page_id=6172) ## FreeDV HF Modes These are designed for use with a HF SSB radio. | Mode | Date | Codec | Modem | RF BW | Raw bits/s | FEC | Text bits/s | SNR min | Multipath | | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | | 1600 | 2012 | Codec2 1300 | 14 DQPSK + 1 DBPSK pilot carrier | 1125 | 1600 | Golay (23,12) | 25 | 4 | poor | | 700C | 2017 | Codec2 700C | 14 carrier coherent QPSK + diversity | 1500 | 1400 | - | - | 2 | good | | 700D | 2018 | Codec2 700C | 17 carrier coherent OFDM/QPSK | 1000 | 1900 | LDPC (224,112) | 25 | -2 | fair | | 700E | 2020 | Codec2 700C | 21 carrier coherent OFDM/QPSK | 1500 | 3000 | LDPC (112,56) | 25 | 1 | good | | 2020 | 2019 | LPCNet 1733 | 31 carrier coherent OFDM/QPSK | 1600 | 3000 | LDPC (504,396) | 22.2 | 2 | poor | Notes: 1. *Raw bits/s* is the number of payload bits/s carried over the channel by the modem. This consists of codec frames, FEC parity bits, unprotected text, and synchronisation information such as pilot and unique word bits. The estimates are open to interpretation for the OFDM waveforms due to pilot symbol and cyclic prefix considerations (see spreadsheet). 1. *RF BW* is the bandwidth of the RF signal over the air. FreeDV is more bandwidth efficient than SSB. 1. *Multipath* is the relative resilience of the mode to multipath fading, the biggest problem digital voice faces on HF radio channels. Analog SSB would be rated as "good". 1. *Text* is a side channel for low bit rate text such as your location and call sign. It is generally unprotected by FEC, and encoded with varicode. 1. *SNR Min* is for an AWGN channel (no multipath/fading). 1. All of the modems use multiple parallel carriers running at a low symbol rate of around 50 Hz. This helps combat the effects of multipath channels. 1. Some of the Codec 2 modes (2400/1300/700C etc) happen to match the name of a FreeDV mode. For example FreeDV 700C uses Codec 2 700C for voice compression. However FreeDV 700D *also* uses Codec 2 700C for voice compression, but has a very different modem waveform to FreeDV 700C. Sorry for the confusing nomenclature. 1. Coherent demodulation gives much better performance than differential, at the cost of some additional complexity. Pilot symbols are transmitted regularly to allow the demod to estimate the reference phase of each carrier. 1. The 1600 and 700C waveforms use parallel tone modems, later modes use OFDM. OFDM gives tighter carrier packing which allows higher bit rates, but tends to suffer more from frequency offsets and delay spread. 1. At medium to high SNRs, FreeDV 700C performs well (better than 700D) on fast fading multipath channels with large delay spread due its parallel tone design and high pilot symbol rate. It employs transmit diversity which delivers BER performance similar to modes using FEC. FreeDV 700C also has a short frame (40ms), so syncs fast with low latency. Fast sync is useful on marginal channels that move between unusable and barely usable. 1. FreeDV 700D uses an OFDM modem and was optimised for low SNR channels, with strong FEC but a low pilot symbol rate and modest (2ms) cyclic prefix which means its performance degrades on multipath channels with fast (> 1Hz) fading. The use of strong FEC makes this mode quite robust to other channel impairments, such as static crashes, urban HF noise, and in-band interference. 1. FEC was added fairly recently to FreeDV modes. The voice codecs we use work OK at bit error rates of a few %, and packet error rates of 10%. Raw bit error rates on multipath channels often exceed 10%. For reasonable latency (say 40ms) we need small codewords. Thus to be useful we require a FEC code that works at over 10% raw BER, has 1% output (coded) bit error rate, and a codeword of around 100 bits. Digital voice has unusual requirements, most FEC codes are designed for data which is intolerant of any bit errors, and few operate over 10% raw BER. Powerful FEC codes have long block lengths (1000's of bits) which leads to long latency. However LDPC codes come close, and can also "clean up" other channel errors caused by static and interference. The use of OFDM means we now have "room" for the extra bits required for FEC, so there is little cost in adding it, apart from latency. ## FreeDV VHF Modes These modes use constant amplitude modulation like FSK or FM, and are designed for VHF and above. However 800XA can be run over HF or VHF on a SSB radio. | Mode | Date | Codec2 | Modem | RF BW | Raw bits/s | FEC | Text bits/s | | --- | --- | --- | --- | --- | --- | --- | --- | | 2400A | 2016 | 1300 | 4FSK | 5kHz | 2400 | Golay (23,12) | 50 | | 2400B | 2016 | 1300 | baseband/analog FM | analog FM | 2400 | Golay (23,12) | 50 | | 800XA | 2017 | 700C | 4FSK | 2000 | 800 | - | N | | FSK_LDPC | 2020 | - | 2 or 4 FSK | user defined | user defined | LDPC | - | - | The FSK_LDPC mode is used for data, and has user defined bit rate and a variety of LDPC codes available. It is discussed in [README_data](README_data.md) ## FreeDV API The `codec2/demo` directory provides simple FreeDV API demo programs written in C and Python to help you get started, for example: ``` cd codec2/build_linux cat ../raw/ve9qrp_10s.raw | ./demo/freedv_700d_tx | ./demo/freedv_700d_rx | aplay -f S16_LE ``` See also [freedv_api.h](src/freedv_api.h) and [freedv_api.c](src/freedv_api.c), and the full featured command line demo programs [freedv_tx.c](src/freedv_tx.c) & [freedv_rx.c](src/freedv_rx.c): ``` $ ./freedv_tx 1600 ../../raw/hts1.raw - | ./freedv_rx 1600 - - | aplay -f S16_LE $ cat freedv_rx_log.txt ``` ## FreeDV 2400A and 2400B modes FreeDV 2400A and FreeDV 2400B are modes designed for VHF radio. FreeDV 2400A is designed for SDR radios (it has a 5 kHz RF bandwidth), however FreeDV 2400B is designed to pass through commodity FM radios. Demos of FreeDV 2400A and 2400B: ``` $ ./freedv_tx 2400A ../../raw/ve9qrp_10s.raw - | ./freedv_rx 2400A - - | play -t .s16 -r 8000 - $ ./freedv_tx 2400B ../../raw/ve9qrp_10s.raw - | ./freedv_rx 2400B - - | play -t .s16 -r 8000 - ``` Note for FreeDV 2400A/2400B the modem signal sample rate is 48kHz. To listen to the modem tones from FreeDV 2400B, or play them into a FM HT mic input: ``` $ ./freedv_tx 2400B ../../raw/ve9qrp_10s.raw - | play -t .s16 -r 48000 - ``` Simulate FreeDV 2400B passing through a 300 to 3000 Hz audio path using sox to filter: ``` $ ./freedv_tx 2400B ../../raw/ve9qrp_10s.raw - | sox -t .s16 -r 48000 - -t .s16 - sinc 300-3000 | ./freedv_rx 2400B - - | play -t .s16 -r 8000 - ``` ## FreeDV 2020 support (building with LPCNet) 1. Build codec2 initially without LPCNet ``` $ cd ~ $ git clone https://github.com/drowe67/codec2.git $ cd codec2 && mkdir build_linux && cd build_linux $ cmake ../ $ make ``` 1. Build LPCNet: ``` $ cd ~ $ git clone https://github.com/drowe67/LPCNet $ cd LPCNet && mkdir build_linux && cd build_linux $ cmake -DCODEC2_BUILD_DIR=~/codec2/build_linux ../ $ make ``` 1. (Re)build Codec 2 with LPCNet support: ``` $ cd ~/codec2/build_linux && rm -Rf * $ cmake -DLPCNET_BUILD_DIR=~/LPCNet/build_linux .. $ make ``` ## FreeDV 2020 tests with FreeDV API ``` $ cat ~/LPCNet/wav/wia.wav | ~/LPCNet/build_linux/src/lpcnet_enc -s | ./ofdm_mod --mode 2020 --ldpc --verbose 1 -p 312 | ./ofdm_demod --mode 2020 --verbose 1 --ldpc -p 312 | ~/LPCNet/build_linux/src/lpcnet_dec -s | aplay -f S16_LE -r 16000 ``` Listen the reference tx: ``` $ cat ~/LPCNet/wav/wia.wav | ~/LPCNet/build_linux/src/lpcnet_enc -s | ./ofdm_mod --mode 2020 --ldpc --verbose 1 -p 312 | aplay -f S16_LE ``` Listen the freedv_tx: ``` $ ./freedv_tx 2020 ~/LPCNet/wav/wia.wav - | aplay -f S16_LE ``` FreeDV API tx, with reference rx from above: ``` $ ./freedv_tx 2020 ~/LPCNet/wav/wia.wav - | ./ofdm_demod --mode 2020 --verbose 1 --ldpc -p 312 | ~/LPCNet/build_linux/src/lpcnet_dec -s | aplay -f S16_LE -r 16000 ``` FreeDV API tx and rx: ``` $ ./freedv_tx 2020 ~/LPCNet/wav/all.wav - | ./freedv_rx 2020 - - | aplay -f S16_LE -r 16000 $ ./freedv_tx 2020 ~/LPCNet/wav/all.wav - --testframes | ./freedv_rx 2020 - /dev/null --testframes -vv ``` Simulated HF slow fading channel, 10.8dB SNR: ``` $ ./freedv_tx 2020 ~/LPCNet/wav/all.wav - | ./cohpsk_ch - - -30 --Fs 8000 --slow | ./freedv_rx 2020 - - | aplay -f S16_LE -r 16000 ``` It falls down quite a bit with fast fading (--fast): AWGN (noise but no fading) channel, 2.8dB SNR: ``` $ ./freedv_tx 2020 ~/LPCNet/wav/all.wav - | ./cohpsk_ch - - -22 --Fs 8000 | ./freedv_rx 2020 - - | aplay -f S16_LE -r 16000 ``` ## Command lines for PER testing 700D/700E PER with clipper AWGN: ``` $ ./src/freedv_tx 700D ../raw/ve9qrp.raw - --clip 0 --testframes | ./src/cohpsk_ch - - -16 --raw_dir ../raw/ --Fs 8000 | ./src/freedv_rx 700D - /dev/null --testframes ``` MultiPath Poor (MPP): ``` $ ./src/freedv_tx 700D ../raw/ve9qrp.raw - --clip 0 --testframes | ./src/cohpsk_ch - - -24 --fast --raw_dir ../raw/ --Fs 8000 | ./src/freedv_rx 700D - /dev/null --testframes ``` Adjust `--clip [0|1]` and 3rd argument of `cohpsk_ch` to obtain a PER of just less than 0.1, and note the SNR and PAPR reported by `cohpsk_ch`. The use of the `ve9qrp` samples makes the test run for a few minutes, in order to get reasonable multipath channel results. codec2-1.0.1/README_fsk.md000066400000000000000000000217101412132000500147570ustar00rootroot00000000000000# README_fsk A FSK modem with a non-coherent demodulator. Performance is within a fraction of a dB of ideal. The demodulator automagically estimates the tone frequencies and tracks frequency drift. Here is a typical Bit Error Rate (BER) versus Eb/No curve: ![BER versus Eb/No curve](doc/fsk_modem_ber_8000_100.png) Note how close the theory line is to measured performance. This modem can demodulate FSK signals that sound like [this sample](doc/lockdown_3s.wav); and is used to receive images from the [edge of space](https://github.com/projecthorus/wenet): ![HAB image from edge of space](doc/wenet_image.jpg) ## Credits The Octave version of the modem was developed by David Rowe. Brady O'Brien ported the modem to C, and wrote the C/Octave tests. The modem is being maintained by David Rowe. Mark Jessop has helped improve the modem operation by testing against various balloon telemtry waveforms. Bill Cowley has developed the Log Likelihood Ratio (LLR) algorithms for 4FSK. ## Quickstart 1. Build codec2: ``` $ cd codec2 && mkdir build_linux && cmake .. && make ``` 1. Generate 1000 test bits, modulate them using 2FSK using a 8000 Hz sample rate, 100 bits/s, play on your sound card: ``` $ cd ~/codec2/build_linux/src $ ./fsk_get_test_bits - 1000 | ./fsk_mod 2 8000 100 1200 1200 - - | aplay -f S16_LE ``` The low tone frequency is 1200Hz, and the upper tone 1200 + 1200 = 2400Hz. 1. Add the demodulator and measure the bit error rate over 10,000 bits of 100 bit/s 2FSK: ``` $ ./fsk_get_test_bits - 10000 | ./fsk_mod 2 8000 100 1200 100 - - | ./fsk_demod 2 8000 100 - - | ./fsk_put_test_bits - [0099] BER 0.000, bits tested 9900, bit errors 0 PASS ``` We get a Bit Error Rate (BER) of 0, as there is no channel noise to induce bit errors. 1. Same thing but this time with 4FSK, and less verbose output: ``` $ ./fsk_get_test_bits - 10000 | ./fsk_mod 4 8000 100 1200 100 - - | ./fsk_demod 4 8000 100 - - | ./fsk_put_test_bits -q - [0099] BER 0.000, bits tested 9900, bit errors 0 PASS ``` 1. Lets add some channel noise: ``` $ ./fsk_get_test_bits - 10000 | ./fsk_mod 2 8000 100 1200 100 - - | ./cohpsk_ch - - -26 --Fs 8000 | ./fsk_demod 2 8000 100 - - | ./fsk_put_test_bits -b 0.015 - SNR3k(dB): -5.76 C/No: 29.0 PAPR: 3.0 [0099] BER 0.010, bits tested 9900, bit errors 103 PASS ``` The cohpsk_ch utility takes the FSK modulator signal, and adds calibrated noise to it (the -26 value specifies the noise). Try changing the noise level, and note how the Bit Error Rate (BER) changes. The BER is 0.01, which is right on theory for this sort of FSK demodulator at this SNR (2FSK non-coherent demodulator Eb/No=9dB). The SNR is calculated using the signal power divided by the noise power in 3000 Hz. The C/No value is the same thing, but uses a noise bandwidth of 1 Hz. There is less noise power when you look at just 1Hz, so C/No is higher. Peak to Average Power ratio (PAPR) is 3dB as a FSK signal is just a single sine wave, and a sine wave peak is 3dB higher than it's average. 1. You can visualise the C modem operation with a companion python script, for example: ``` $ ./fsk_get_test_bits - 10000 | ./fsk_mod -p 10 4 8000 400 400 400 - - | ./fsk_demod -p 10 -t1 4 8000 400 - /dev/null 2>stats.txt $ python ../../octave/plot_fsk_demod_stats.py stats.txt ``` 1. Send some digital voice using FSK at 800 bits/s, and try the two 2400 bits/s FSK modes: ``` $ ./freedv_tx 800XA ../../raw/ve9qrp.raw - | ./freedv_rx 800XA - - -vv | aplay -f S16_LE $ ./freedv_tx 2400A ../../raw/ve9qrp.raw - | ./freedv_rx 2400A - - -vv | aplay -f S16_LE $ ./freedv_tx 2400B ../../raw/ve9qrp.raw - | ./freedv_rx 2400B - - -vv | aplay -f S16_LE ``` 1. LDPC encoded 4FSK, with framing: ``` $ cd ~/codec2/build_linux/src $ ./ldpc_enc /dev/zero - --code H_256_512_4 --testframes 200 | ./framer - - 512 5186 | ./fsk_mod 4 8000 100 1000 100 - - | ./cohpsk_ch - - -24 --Fs 8000 | ./fsk_demod -s 4 8000 100 - - | ./deframer - - 512 5186 | ./ldpc_dec - /dev/null --code H_256_512_4 --testframes SNR3k(dB): -7.74 C/No: 27.0 PAPR: 3.0 Raw Tbits: 100352 Terr: 6701 BER: 0.067 Coded Tbits: 50176 Terr: 139 BER: 0.003 Tpkts: 196 Tper: 4 PER: 0.020 ``` In this example the unique word is the 16 bit sequence `5186`. See also several ctests using these application. Other codes are also available: ``` $ ./ldpc_enc --listcodes H2064_516_sparse rate 0.80 (2580,2064) HRA_112_112 rate 0.50 (224,112) HRAb_396_504 rate 0.79 (504,396) H_256_768 rate 0.33 (768,256) H_256_512_4 rate 0.50 (512,256) HRAa_1536_512 rate 0.75 (2048,1536) H_128_256_5 rate 0.50 (256,128) ``` If you change the code you also need to change the `frameSizeBits` argument in `framer/deframer` (`512` in the example above). 1. The FSK/LDPC/framer steps above have been combined in a FreeDV API mode. See "FSK LDPC Raw Data Mode" in [README_data.md](README_data.md). 1. FSK modem C files in ```codec2/src```: | File | Description | | --- | --- | | fsk.c/fsk.h | core FSK modem library | | fsk_mod.c | command line modulator | | fsk_demod.c | command line demodulator | | fsk_get_test_bits.c | source of test bits | | fsk_put_test_bits.c | test bit sync, counts bit errors and packet errors | | fsk_mod_ext_vco.c | modulator that uses an external FSK oscillator | | framer.c | adds a unique word to a frame of bits to implement frame sync for LDPC codewords | | deframer.c | locates and strips a unique word to implement frame sync for LDPC codewords | | tollr.c | converts bits to LLRs for testing LDPC framing | 1. GNU Octave files in ```codec2/octave```: | File | Description | | --- | --- | | fsk_lib.m | Core FSK modem library | | fsk_lib_demo.m | A demonstration of fsk_lib, runs a single point BER test | | fsk_demod_file.m | Demodulates FSK signals from a file, useful for debugging FSK waveforms | | fsk_lock_down.m | simulations to support the "lock down" low SNR waveform | | tfsk.m | automated test that compares the C and Octave versions of the modem | | fsk_cml.m | Symbol rate experiments with FSK modem LLR estimation and LDPC | | fsk_cml_sam.m | Sample rate experiments with FSK modem LLR estimation and LDPC | | fsk_llr_plot.m | Plots curves from fsk_cml.m & fsk_cml_sam.m | | fsk_lib_ldpc_demo.m | CML library LLR routines and LDPC codes with fsk_lib.m | You can run many of them from the Octave command line: ``` $ octave --no-gui octave:1> fsk_lib_demo ``` 1. A suite of automated ctests that exercise the C and Octave code: ``` $ cd ~/codec2/build_linux $ ctest -R test_fsk 1/9 Test #39: test_fsk_lib ...................... Passed 3.37 sec 3/9 Test #41: test_fsk_modem_octave_port ........ Passed 4.17 sec 4/9 Test #42: test_fsk_modem_mod_demod .......... Passed 0.06 sec 5/9 Test #43: test_fsk_2fsk_ber ................. Passed 0.24 sec 6/9 Test #44: test_fsk_4fsk_ber ................. Passed 0.12 sec 7/9 Test #45: test_fsk_4fsk_ber_negative_freq ... Passed 0.07 sec 8/9 Test #46: test_fsk_4fsk_lockdown ............ Passed 2.84 sec 9/9 Test #47: test_fsk_vhf_framer ............... Passed 0.06 sec ``` These are written in ```codec2/CmakeLists.txt```, inspect them to find out how we test the modem. 1. ```fsk_demod_file.m``` is useful for peering inside the modem, for example when debugging. ``` $ cd ~/codec2/build_linux/src $ ./fsk_get_test_bits - 1000 | ./fsk_mod 2 8000 100 1000 1000 - ../../octave/fsk.s16 $ octave --no-gui octave:1> fsk_demod_file("fsk.s16",format="s16",8000,100,2) ``` ## Further Reading Here are some links to projects and blog posts that use this modem: 1. [Horus Binary](https://github.com/projecthorus/horusbinary) High Altitude Balloon (HAB) telemetry protocol, 3 second updates, works at 7dB lower SNR that RTTY. 1. [Testing HAB Telemetry, Horus binary waveform](http://www.rowetel.com/?p=5906) 1. A really useful reference on a variety of modulation techniques from [Atlanta DSP](http://www.atlantarf.com/FSK_Modulation.php). I keep this handy when experimenting with modems. 1. The [RTTY modem project](http://www.rowetel.com/?p=4629) that kicked off the FSK modem work. 1. [Wenet](https://github.com/projecthorus/wenet) - high speed SSTV images from balloons at the edge of space 1. [Wenet High speed SSTV images](http://www.rowetel.com/?p=5344) 1. [FreeDV 2400A and 2400B](http://www.rowetel.com/?p=5219), digital speech for VHF/UHF radios. 1. [HF FSK with Rpitx](http://www.rowetel.com/?p=6317), a zero hardware FSK transmitter using a Pi 1. [Eb/No and SNR worked Example](http://www.rowetel.com/wordpress/?p=4621) 1. [FSK LLR LDPC Code Experiments](https://github.com/drowe67/codec2/pull/129) 1. [FreeDV API FSK LDPC Raw Data Mode](README_data.md) codec2-1.0.1/README_ofdm.md000066400000000000000000000246341412132000500151310ustar00rootroot00000000000000# README_ofdm An Orthogonal Frequency Division Multiplexed (OFDM) modem designed for digital voice over HF SSB. Typical configuration for FreeDV 700D is 700 bit/s voice, a rate 0.5 LDPC code, and 1400 bit/s raw data rate over the channel. The OFDM modem was first implemented in GNU Octave, then ported to C. Algorithm development is generally easier in Octave, but for real time work we need the C version. Automated units tests ensure the operation of the Octave and C versions are identical. ## Credits Steve, David, Don, Richard ## References 1. Spreadsheet describing the [waveform design](doc/modem_codec_frame_design.ods) The OFDM tab descrives the baseline 700D OFDM waveform. 1. This modem can be used for sending [raw data frames](README_data.md) over HF channels. 1. [Towards FreeDV 700D](https://www.rowetel.com/?p=5573) 1. [FreeDV 700D - First Over The Air Tests](https://www.rowetel.com/?p=5630) 1. [Steve Ports an OFDM modem from Octave to C](https://www.rowetel.com/?p=5824) 1. [Modems for HF Digital Voice Part 1](http://www.rowetel.com/wordpress/?p=5420) 1. [Modems for HF Digital Voice Part 2](http://www.rowetel.com/wordpress/?p=5448) # Examples Built as part of codec2-dev, see [README](README.md) for build instructions. 1. Generate 10 seconds of test frame bits, modulate, and play audio out of sound device (SoX v14.4.2): ``` $ build_linux/src$ ./ofdm_mod --in /dev/zero --testframes 10 | play --type s16 --rate 8000 --channels 2 - ``` 1. Generate 10 seconds of uncoded test frame bits, modulate, demodulate, count errors: ``` $ build_linux/src$ ./ofdm_mod --in /dev/zero --testframes 10 | ./ofdm_demod --out /dev/null --testframes --verbose 1 --log demod_dump.txt ``` Use Octave to look at plots of C modem operation: ``` $ cd ../../octave $ octave --no-gui octave:1> ofdm_demod_c("../build_linux/src/demod_dump.txt") ``` 1. Run Octave versions of mod and demod (called tx and rx to avoid namespace clashes in Octave): ``` $ cd ~/octave $ octave --no-gui octave:1> ofdm_tx("ofdm_test.raw","700D",10) octave:1> ofdm_rx("ofdm_test.raw") ``` The Octave modulator ofdm_tx can simulate channel impairments, for example AWGN noise at 4dB SNR: ``` octave:1> ofdm_tx("ofdm_test.raw", "700D", 10, 4) ``` The Octave versions use the same test frames as C so can interoperate. ``` build_linux/src$ ./ofdm_demod --in ../../octave/ofdm_test.raw --out /dev/null --testframes --verbose 1 ``` 1. Run mod/demod with LDPC FEC; 60 seconds, 3dB SNR: ``` octave:6> ofdm_ldpc_tx('ofdm_test.raw',"700D",60,3) octave:7> ofdm_ldpc_rx('ofdm_test.raw',"700D") ``` C demodulator/LDPC decoder: ``` build_linux/src$ ./ofdm_demod --in ../../octave/ofdm_test.raw --out /dev/null --verbose 1 --testframes --ldpc ``` 1. Pass Codec 2 700C compressed speech through OFDM modem: ``` build_linux/src$ ./c2enc 700C ../../raw/ve9qrp_10s.raw - --bitperchar | ./ofdm_mod --ldpc | ./ofdm_demod --ldpc | ./c2dec 700C - - --bitperchar | play --type s16 --rate 8000 --channels 1 - ``` 1. Listen to signal through simulated fading channel in C: ``` build_linux/src$ ./c2enc 700C ../../raw/ve9qrp_10s.raw - --bitperchar | ./ofdm_mod --ldpc | ./cohpsk_ch - - -20 --Fs 8000 --slow -f -5 | aplay -f S16 ``` 1. Run test frames through simulated channel in C: ``` build_linux/src$ ./ofdm_mod --in /dev/zero --ldpc --testframes 20 | ./cohpsk_ch - - -24 --Fs 8000 -f -10 --fast | ./ofdm_demod --out /dev/null --testframes --verbose 1 --ldpc ``` 1. Run codec voice through simulated fast fading channel, just where it starts to fall over: ``` build_linux/src$ ./c2enc 700C ../../raw/ve9qrp.raw - --bitperchar | ./ofdm_mod --ldpc | ./cohpsk_ch - - -24 --Fs 8000 -f -10 --fast | ./ofdm_demod --ldpc --verbose 1 | ./c2dec 700C - - --bitperchar | aplay -f S16 ``` 1. FreeDV 1600 on the same channel conditions, roughly same quality at 8dB higher SNR: ``` build_linux/src$ ./freedv_tx 1600 ../../raw/ve9qrp_10s.raw - | ./cohpsk_ch - - -30 --Fs 8000 -f -10 --fast | ./freedv_rx 1600 - - | aplay -f S16 ``` 1. Using FreeDV API test programs: ``` build_linux/src$ ./freedv_tx 700D ../../raw/hts1a.raw - --testframes | ./freedv_rx 700D - /dev/null --testframes build_linux/src$ ./freedv_tx 700D ../../raw/hts1a.raw - | ./freedv_rx 700D - - | aplay -f S16 build_linux/src$ ./freedv_tx 700D ../../raw/ve9qrp.raw - | ./cohpsk_ch - - -26 --Fs 8000 -f -10 --fast | ./freedv_rx 700D - - | aplay -f S16 ``` ## FreeDV 2020 extensions 1. 20.5ms symbol period, 31 carrier waveform, (504,396) code, but only 312 data bits used, so we don't send unused data bits. This means we need less carriers (so more power per carrier), and code rate is increased slightly: ``` build_linux/src$ ./ofdm_mod --in /dev/zero --testframes 300 --mode 2020 --ldpc 1 --verbose 1 -p 312 | ./cohpsk_ch - - -22 --Fs 8000 -f 10 --ssbfilt 1 | ./ofdm_demod --out /dev/null --testframes --mode 2020 --verbose 1 --ldpc -p 312 SNR3k(dB): 2.21 C/No: 37.0 PAPR: 9.6 BER......: 0.0505 Tbits: 874020 Terrs: 44148 Coded BER: 0.0096 Tbits: 649272 Terrs: 6230 ``` ## Acquisition tests 1. Acquisition (getting sync) can be problematic in fading channels. Some special tests have been developed, that measure acquisition time on off air 700D samples at different time offsets: ``` octave:61> ofdm_ldpc_rx("../wav/vk2tpm_004.wav", "700D", "", 5, 4) build_linux/src$ ./ofdm_demod --in ../../wav/vk2tpm_004.wav --out /dev/null --verbose 2 --ldpc --start_secs 5 --len_secs 4 ``` 1. Different time offsets effectively tests the ability to sync on fading channel in different states. Stats for a series of these tests can be obtained with: ``` octave:61> ofdm_time_sync("../wav/vk2tpm_004.wav", 30) pass: 30 fails: 0 mean: 1.35 var 0.51 ``` ## Octave Acceptance Tests Here are some useful tests for the Octave, uncoded modem. The rate 1/2 LDPC code can correct up to about 10% raw BER, so a good test is to run the modem at Eb/No operating points that produce just less that BER=0.1. The BER2 measure truncates the effect of any start up transients, e.g. as the frequency offset is tracked out. 1. HF Multipath: ``` octave:580> ofdm_tx("ofdm_test.raw","700D",60,2,'mpm',20) octave:581> ofdm_rx("ofdm_test.raw") BER2.: 0.0803 Tbits: 84728 Terrs: 6803 ``` 1. AWGN: ``` octave:582> ofdm_tx("ofdm_test.raw","700D",60,-2,'awgn') octave:583> ofdm_rx("ofdm_test.raw") BER2.: 0.0885 Tbits: 84252 Terrs: 7459 ``` ## C Acceptance Tests Here are some useful tests for the LDPC coded C version of the modem, useful to verify any changes. 1. AWGN channel, -2dB: ``` ./ofdm_mod --in /dev/zero --ldpc --testframes 60 --txbpf | ./cohpsk_ch - - -20 --Fs 8000 -f -10 | ./ofdm_demod --out /dev/null --testframes --verbose 1 --ldpc SNR3k(dB): -1.85 C/No: 32.9 PAPR: 9.8 BER......: 0.0815 Tbits: 98532 Terrs: 8031 Coded BER: 0.0034 Tbits: 46368 Terrs: 157 ``` 1. Fading HF channel: ``` ./ofdm_mod --in /dev/zero --ldpc --testframes 60 --txbpf | ./cohpsk_ch - - -24 --Fs 8000 -f -10 --fast | ./ofdm_demod --out /dev/null --testframes --verbose 1 --ldpc SNR3k(dB): 2.15 C/No: 36.9 PAPR: 9.8 BER......: 0.1015 Tbits: 88774 Terrs: 9012 Coded BER: 0.0445 Tbits: 41776 Terrs: 1860 ``` Note: 10% Raw BER operating point on both channels, as per design. # Data Modes The OFDM modem can also support datac1/datac2/datac3 modes for packet data. The OFDM modem was originally designed for very short (28 bit) voice codec packets. For data, packets of hundreds to thousands of bits a desirable so we can use long, powerful FEC codewords, and reduce overhead. The datac1/datac2/datac3 QPSK modes are currently under development. Here is an example of running the datac3 mode in a low SNR AWGN channel: ``` ./src/ofdm_mod --mode datac3 --ldpc --in /dev/zero --testframes 60 --verbose 1 | ./src/cohpsk_ch - - -20 --Fs 8000 | ./src/ofdm_demod --mode datac3 --ldpc --out /dev/null --testframes -v 1 SNR3k(dB): -3.54 C/No: 31.2 PAPR: 10.4 BER......: 0.1082 Tbits: 36096 Terrs: 3905 Tpackets: 47 Coded BER: 0.0000 Tbits: 12032 Terrs: 0 ``` Note despite the raw BER of 10%, 47/50 packets are received error free. # C Code | File | Description | | :-- | :-- | | ofdm.c | OFDM library | | codec2_ofdm.h | API header file for OFDM library | | ofdm_get_test_bits | Generate OFDM test frames | | ofdm_mod | OFDM modulator command line program | | ofdm_demod | OFDM demodulator command line program, supports uncoded (raw) and LDPC coded test frames, LDPC decoding of codec data, and can output LLRs to external LDPC decoder | | ofdm_put_test_bits | Measure BER in OFDM test frames | | unittest/tofdm | Run C port of modem to compare with octave version (see octave/tofdm) | | cohpsk_ch | From COHPSK modem development, useful C channel simulator | # Octave Scripts | File | Description | | :-- | :-- | | ofdm_lib | OFDM library | | ofdm_dev | Used for modem development, run various simulations | | ofdm_tx | Modulate test frames to a file of sample, cam add channel impairments | | ofdm_rx | Demod from a sample file and count errors | | tofdm | Compares Octave and C ports of modem | | ofdm_ldpc_tx | OFDM modulator with LDPC FEC | | ofdm_ldpc_rx | OFDM demodulator with LDPC FEC | ## Specifications Nominal FreeDV 700D configuration: | Parameter | Value | | :-- | :-- | | Modem | OFDM, pilot assisted coherent QPSK | | Payload bits/s | 700 | | Text bits/s | 25 (note 4) | | Unique Word | 10 bits | | Carriers | 17 | | RF bandwidth | 944 Hz | | Symbol period | 18ms | Cyclic Prefix | 2ms (note 1) | Pilot rate | 1 in every 8 symbols | | Frame Period | 160ms | | FEC | rate 1/2 (224,112) LDPC | | Operating point | | | AWGN | Eb/No -0.5dB SNR(3000Hz): -2.5dB (note 2) | | HF Multipath | Eb/No 4.0dB SNR(3000Hz): 2.0dB (note 3) | | Freq offset | +/- 60 Hz (sync range) | | Freq drift | +/- 0.2 Hz/s (for 0.5 dB loss) | | Sample clock error | 1000 ppm | Notes: 1. Modem can cope with up to 2ms of multipath 1. ``` Ideal SNR(3000) = Eb/No + 10*log10(Rb/B) = -1 + 10*log10(1400/3000) = -4.3 dB ``` So we have about 1.8dB overhead for synchronisation, implementation loss, and the text channel. 1. "CCIR Poor" HF Multipath channel used for testing is two path, 1Hz Doppler, 1ms delay. 1. The text channel is an auxillary channel, unprotected by FEC, that typically carries callsign/location information for Ham stations. codec2-1.0.1/cmake/000077500000000000000000000000001412132000500137145ustar00rootroot00000000000000codec2-1.0.1/cmake/GetDependencies.cmake.in000066400000000000000000000020221412132000500203450ustar00rootroot00000000000000# As this script is run in a new cmake instance, it does not have access to # the existing cache variables. Pass them in via the configure_file command. set(CMAKE_BINARY_DIR @CMAKE_BINARY_DIR@) set(CMAKE_SOURCE_DIR @CMAKE_SOURCE_DIR@) set(UNIX @UNIX@) set(WIN32 @WIN32@) set(CMAKE_CROSSCOMPILING @CMAKE_CROSSCOMPILING@) set(CMAKE_FIND_LIBRARY_SUFFIXES @CMAKE_FIND_LIBRARY_SUFFIXES@) set(CMAKE_FIND_LIBRARY_PREFIXES @CMAKE_FIND_LIBRARY_PREFIXES@) set(CMAKE_SYSTEM_LIBRARY_PATH @CMAKE_SYSTEM_LIBRARY_PATH@) set(CMAKE_FIND_ROOT_PATH @CMAKE_FIND_ROOT_PATH@) set(CODEC2_DLL ${CMAKE_BINARY_DIR}/src/libcodec2.dll) include(${CMAKE_SOURCE_DIR}/cmake/GetPrerequisites.cmake) get_prerequisites(${CODEC2_DLL} _deps 1 0 "" "") foreach(_runtime ${_deps}) message("Looking for ${_runtime}") find_library(RUNTIME_${_runtime} ${_runtime}) message("${RUNTIME_${_runtime}}") if(RUNTIME_${_runtime}) file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/bin" TYPE EXECUTABLE FILES "${RUNTIME_${_runtime}}") endif() endforeach() codec2-1.0.1/cmake/config.h.in000066400000000000000000000017071412132000500157440ustar00rootroot00000000000000/*-------------------------------------------------------------------------- ** This file is autogenerated from config.h.in ** during the cmake configuration of your project. If you need to make changes ** edit the original file NOT THIS FILE. ** --------------------------------------------------------------------------*/ #ifndef _CONFIGURATION_HEADER_GUARD_H_ #define _CONFIGURATION_HEADER_GUARD_H_ #define SIZEOF_INT @SIZEOF_INT@ #cmakedefine HAVE_STDLIB_H @HAVE_STDLIB_H@ #cmakedefine HAVE_STRING_H @HAVE_STRING_H@ #cmakedefine HAVE_FLOOR @HAVE_FLOOR@ #cmakedefine HAVE_CEIL @HAVE_CEIL@ #cmakedefine HAVE_MEMSET @HAVE_MEMSET@ #cmakedefine HAVE_POW @HAVE_POW@ #cmakedefine HAVE_SQRT @HAVE_SQRT@ #cmakedefine HAVE_SIN @HAVE_SIN@ #cmakedefine HAVE_COS @HAVE_COS@ #cmakedefine HAVE_ATAN2 @HAVE_ATAN2@ #cmakedefine HAVE_LOG10 @HAVE_LOG10@ #cmakedefine HAVE_ROUND @HAVE_ROUND@ #cmakedefine HAVE_GETOPT @HAVE_GETOPT@ #endif codec2-1.0.1/cmake/version.h.in000066400000000000000000000024121412132000500161560ustar00rootroot00000000000000/*---------------------------------------------------------------------------*\ FILE........: version.h AUTHOR......: Tomas Härdin DATE CREATED: 03 November 2017 Codec 2 VERSION #defines \*---------------------------------------------------------------------------*/ /* Copyright (C) 2017 Tomas Härdin All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 2.1, as published by the Free Software Foundation. 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 Lesser General Public License along with this program; if not, see . */ //this functions both as an include guard and your typical HAVE macro #ifndef CODEC2_HAVE_VERSION #define CODEC2_HAVE_VERSION #define CODEC2_VERSION_MAJOR @CODEC2_VERSION_MAJOR@ #define CODEC2_VERSION_MINOR @CODEC2_VERSION_MINOR@ #cmakedefine CODEC2_VERSION_PATCH @CODEC2_VERSION_PATCH@ #define CODEC2_VERSION "@CODEC2_VERSION@" #endif //CODEC2_HAVE_VERSIONcodec2-1.0.1/codec2.pc.in000066400000000000000000000004631412132000500147270ustar00rootroot00000000000000prefix=@CMAKE_INSTALL_PREFIX@ libdir=@CMAKE_INSTALL_PREFIX@/@CMAKE_INSTALL_LIBDIR@ includedir=@CMAKE_INSTALL_PREFIX@/@CMAKE_INSTALL_INCLUDEDIR@/codec2 Name: codec2 Description: A speech codec for 2400 bit/s and below Requires: Version: @CODEC2_VERSION@ Libs: -L${libdir} -lcodec2 Cflags: -I${includedir} codec2-1.0.1/demo/000077500000000000000000000000001412132000500135605ustar00rootroot00000000000000codec2-1.0.1/demo/CMakeLists.txt000066400000000000000000000010211412132000500163120ustar00rootroot00000000000000add_definitions(-DFLOATING_POINT -DVAR_ARRAYS) include_directories(../src) add_executable(c2demo c2demo.c) target_link_libraries(c2demo codec2) add_executable(freedv_700d_tx freedv_700d_tx.c) target_link_libraries(freedv_700d_tx codec2) add_executable(freedv_700d_rx freedv_700d_rx.c) target_link_libraries(freedv_700d_rx codec2) add_executable(freedv_datac1_tx freedv_datac1_tx.c) target_link_libraries(freedv_datac1_tx codec2) add_executable(freedv_datac1_rx freedv_datac1_rx.c) target_link_libraries(freedv_datac1_rx codec2) codec2-1.0.1/demo/c2demo.c000066400000000000000000000045401412132000500151000ustar00rootroot00000000000000/*---------------------------------------------------------------------------*\ FILE........: c2demo.c AUTHOR......: David Rowe DATE CREATED: 15/11/2010 Encodes and decodes a file of raw speech samples using Codec 2. Demonstrates use of Codec 2 function API. cd codec2/build_linux ./demo/c2demo ../raw/hts1a.raw his1a_out.raw aplay -f S16_LE hts1a_out.raw \*---------------------------------------------------------------------------*/ /* Copyright (C) 2010 David Rowe All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 2.1, as published by the Free Software Foundation. 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 Lesser General Public License along with this program; if not, see . */ #include #include #include "codec2.h" int main(int argc, char *argv[]) { struct CODEC2 *codec2; FILE *fin; FILE *fout; if (argc != 3) { printf("usage: %s InputRawSpeechFile OutputRawSpeechFile\n", argv[0]); exit(1); } if ( (fin = fopen(argv[1],"rb")) == NULL ) { fprintf(stderr, "Error opening input speech file: %s\n", argv[1]); exit(1); } if ( (fout = fopen(argv[2],"wb")) == NULL ) { fprintf(stderr, "Error opening output speech file: %s\n", argv[2]); exit(1); } /* Note only one set of Codec 2 states is required for an encoder and decoder pair. */ codec2 = codec2_create(CODEC2_MODE_1300); size_t nsam = codec2_samples_per_frame(codec2); short speech_samples[nsam]; /* Bits from the encoder are packed into bytes */ unsigned char compressed_bytes[codec2_bytes_per_frame(codec2)]; while(fread(speech_samples, sizeof(short), nsam, fin) == nsam) { codec2_encode(codec2, compressed_bytes, speech_samples); codec2_decode(codec2, speech_samples, compressed_bytes); fwrite(speech_samples, sizeof(short), nsam, fout); } codec2_destroy(codec2); fclose(fin); fclose(fout); return 0; } codec2-1.0.1/demo/freedv_700d_rx.c000066400000000000000000000033211412132000500164410ustar00rootroot00000000000000/*---------------------------------------------------------------------------*\ FILE........: freedv_700d_rx.c AUTHOR......: David Rowe DATE CREATED: April 2021 Demo receive program for FreeDV API 700D mode, see freedv_700d_tx.c for instructions. \*---------------------------------------------------------------------------*/ /* Copyright (C) 2021 David Rowe All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 2.1, as published by the Free Software Foundation. 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 Lesser General Public License along with this program; if not, see . */ #include #include #include #include "freedv_api.h" int main(int argc, char *argv[]) { struct freedv *freedv; freedv = freedv_open(FREEDV_MODE_700D); assert(freedv != NULL); /* note API functions to tell us how big our buffers need to be */ short speech_out[freedv_get_n_max_speech_samples(freedv)]; short demod_in[freedv_get_n_max_modem_samples(freedv)]; size_t nin,nout; nin = freedv_nin(freedv); while(fread(demod_in, sizeof(short), nin, stdin) == nin) { nout = freedv_rx(freedv, speech_out, demod_in); nin = freedv_nin(freedv); /* call me on every loop! */ fwrite(speech_out, sizeof(short), nout, stdout); } freedv_close(freedv); return 0; } codec2-1.0.1/demo/freedv_700d_rx.py000077500000000000000000000025711412132000500166600ustar00rootroot00000000000000#!/usr/bin/env python3 ''' Demo receive program for FreeDV API 700D mode. cd ~/codec2/build_linux cat ../raw/ve9qrp_10s.raw | ./demo/freedv_700d_tx | ../demo/freedv_700d_rx.py | aplay -f S16_LE Credits: Thanks DJ2LS, xssfox, VK5QI ''' import ctypes from ctypes import * import sys import pathlib import platform if platform.system() == 'Darwin': libname = pathlib.Path().absolute() / "src/libcodec2.dylib" else: libname = pathlib.Path().absolute() / "src/libcodec2.so" # See: https://docs.python.org/3/library/ctypes.html c_lib = ctypes.CDLL(libname) c_lib.freedv_open.argype = [c_int] c_lib.freedv_open.restype = c_void_p c_lib.freedv_get_n_max_speech_samples.argtype = [c_void_p] c_lib.freedv_get_n_max_speech_samples.restype = c_int c_lib.freedv_nin.argtype = [c_void_p] c_lib.freedv_nin.restype = c_int c_lib.freedv_rx.argtype = [c_void_p, c_char_p, c_char_p] c_lib.freedv_rx.restype = c_int FREEDV_MODE_700D = 7 # from freedv_api.h freedv = cast(c_lib.freedv_open(FREEDV_MODE_700D), c_void_p) n_max_speech_samples = c_lib.freedv_get_n_max_speech_samples(freedv) speech_out = create_string_buffer(2*n_max_speech_samples) while True: nin = c_lib.freedv_nin(freedv) demod_in = sys.stdin.buffer.read(nin*2) if len(demod_in) == 0: quit() nout = c_lib.freedv_rx(freedv, speech_out, demod_in) sys.stdout.buffer.write(speech_out[:nout*2]) codec2-1.0.1/demo/freedv_700d_tx.c000066400000000000000000000037621412132000500164540ustar00rootroot00000000000000/*---------------------------------------------------------------------------*\ FILE........: freedv_700d_tx.c AUTHOR......: David Rowe DATE CREATED: April 2021 Demo transmit program for FreeDV API 700D functions. usage: cd ~/codec2/build_linux cat ../raw/ve9qrp_10s.raw | ./demo/freedv_700d_tx | ./demo/freedv_700d_rx | aplay -f S16_LE Listen to the modulated Tx signal: cat ../raw/ve9qrp_10s.raw | ./demo/freedv_700d_tx | aplay -f S16_LE \*---------------------------------------------------------------------------*/ /* Copyright (C) 2021 David Rowe All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 2.1, as published by the Free Software Foundation. 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 Lesser General Public License along with this program; if not, see . */ #include #include #include #include #include "freedv_api.h" int main(int argc, char *argv[]) { struct freedv *freedv; freedv = freedv_open(FREEDV_MODE_700D); assert(freedv != NULL); /* handy functions to set buffer sizes */ int n_speech_samples = freedv_get_n_speech_samples(freedv); short speech_in[n_speech_samples]; int n_nom_modem_samples = freedv_get_n_nom_modem_samples(freedv); short mod_out[n_nom_modem_samples]; /* OK main loop --------------------------------------- */ while(fread(speech_in, sizeof(short), n_speech_samples, stdin) == n_speech_samples) { freedv_tx(freedv, mod_out, speech_in); fwrite(mod_out, sizeof(short), n_nom_modem_samples, stdout); } freedv_close(freedv); return 0; } codec2-1.0.1/demo/freedv_datac1_rx.c000066400000000000000000000037071412132000500171340ustar00rootroot00000000000000/*---------------------------------------------------------------------------*\ FILE........: freedv_datac1_rx.c AUTHOR......: David Rowe DATE CREATED: April 2021 Demonstrates receiving frames of raw data bytes using the FreeDV API. See freedv_datac1_tx.c for instructions. \*---------------------------------------------------------------------------*/ /* Copyright (C) 2021 David Rowe All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 2.1, as published by the Free Software Foundation. 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 Lesser General Public License along with this program; if not, see . */ #include #include #include #include #include "freedv_api.h" int main(int argc, char *argv[]) { struct freedv *freedv; freedv = freedv_open(FREEDV_MODE_DATAC1); assert(freedv != NULL); freedv_set_frames_per_burst(freedv, 1); freedv_set_verbose(freedv, 2); int bytes_per_modem_frame = freedv_get_bits_per_modem_frame(freedv)/8; uint8_t bytes_out[bytes_per_modem_frame]; short demod_in[freedv_get_n_max_modem_samples(freedv)]; size_t nin, nbytes_out; nin = freedv_nin(freedv); while(fread(demod_in, sizeof(short), nin, stdin) == nin) { nbytes_out = freedv_rawdatarx(freedv, bytes_out, demod_in); nin = freedv_nin(freedv); /* must call this every loop */ if (nbytes_out) { /* don't output CRC */ fwrite(bytes_out, sizeof(uint8_t), nbytes_out-2, stdout); } } freedv_close(freedv); return 0; } codec2-1.0.1/demo/freedv_datac1_tx.c000066400000000000000000000066651412132000500171440ustar00rootroot00000000000000/*---------------------------------------------------------------------------*\ FILE........: freedv_datac1_tx.c AUTHOR......: David Rowe DATE CREATED: April 2021 Demonstrates transmitting frames of raw data bytes using the FreeDV API datac1 mode. The data on stdin is transmitted as a sequence of modulated bursts. Format of each burst: ...|preamble|data frame|postamble|silence|.... There is just one data frame per burst in this demo. usage: cd codec2/build_linux head -c $((510*10)) binaryIn.bin cat binaryIn.bin | ./demo/freedv_datac1_tx | ./demo/freedv_datac1_rx > binaryOut.bin diff binaryIn.bin binaryOut.bin Listen to the modulated Tx signal: cat binaryIn.bin | ./demo/freedv_datac1_tx | aplay -f S16_LE \*---------------------------------------------------------------------------*/ /* Copyright (C) 2021 David Rowe All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 2.1, as published by the Free Software Foundation. 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 Lesser General Public License along with this program; if not, see . */ #include #include #include #include #include "freedv_api.h" int main(int argc, char *argv[]) { struct freedv *freedv; freedv = freedv_open(FREEDV_MODE_DATAC1); assert(freedv != NULL); size_t bytes_per_modem_frame = freedv_get_bits_per_modem_frame(freedv)/8; size_t payload_bytes_per_modem_frame = bytes_per_modem_frame - 2; /* 16 bits used for the CRC */ size_t n_mod_out = freedv_get_n_tx_modem_samples(freedv); uint8_t bytes_in[bytes_per_modem_frame]; short mod_out_short[n_mod_out]; for(int b=0; b<10; b++) { /* send preamble */ int n_preamble = freedv_rawdatapreambletx(freedv, mod_out_short); fwrite(mod_out_short, sizeof(short), n_preamble, stdout); /* read our input data frame from stdin */ size_t nread = fread(bytes_in, sizeof(uint8_t), payload_bytes_per_modem_frame, stdin); if (nread != payload_bytes_per_modem_frame) break; /* The raw data modes require a CRC in the last two bytes */ uint16_t crc16 = freedv_gen_crc16(bytes_in, payload_bytes_per_modem_frame); bytes_in[bytes_per_modem_frame-2] = crc16 >> 8; bytes_in[bytes_per_modem_frame-1] = crc16 & 0xff; /* modulate and send a data frame */ freedv_rawdatatx(freedv, mod_out_short, bytes_in); fwrite(mod_out_short, sizeof(short), n_mod_out, stdout); /* send postamble */ int n_postamble = freedv_rawdatapostambletx(freedv, mod_out_short); fwrite(mod_out_short, sizeof(short), n_postamble, stdout); /* create some silence between bursts */ int inter_burst_delay_ms = 200; int samples_delay = FREEDV_FS_8000*inter_burst_delay_ms/1000; short sil_short[samples_delay]; for(int i=0; idooOU.X仇R,++x~hظ؎,5nST* O"KӋ/۷o7y*-Z)LvqJ5rH&daa`?F֭[[o$xӦ,5'N`0oϚ5pBX`!dNzzڵkL&sĈwܡ#C ѷw9r$y.]dmmm{5 / &O|%Dg'azIII?\dŋnjӾ+d2D"EQh4={tpp3f={6<<߿ , BBB>|͸JR`2~jQ+,,,Eg>}d6KC aX СCflh4J\vrJ9BaPPXa :uTQQŋΝ6$$~{WX_ZZ}vPxa{{+WFGGoݺO?5lߚ:u*˽z?t:2W ]ϩTO?t鯿:Y&,,ڵk+aeea]]ɓ' _ 1cD"4i۷KJJ~'HRIkbؖP( 99>qf_Ҥ;BݸqcYYO>DV{zz6sݹs. lB7d Ó Bs֬Ygc?d-XmRsHIIu:]MM =ݻw`?`uX3f'Nx`„ )!!!\.w֭/?VZmUUL&fnnn'Or劗$I|tuk׮}Ə&=zRM޽{bqhhZ6j*++k#G3]*:88 :nt1m„ FA}3ބ N>x͛7xju``W_}A?ne_ݽ{Qqʔ)Fqd֮] qqq1An2jEa>{%]|7gw޽jժ}յpĉvvvӧO_l~3gпimݺuaaa:EQׯ߼yg}m6{{o֨UaǎFZvrr2t]4eʔqƥIttts+&qC 0Lyg'Mt][[;w4. իW_e˖3f 45Y9ooo,Xl4B+#K4??k׮O7JիW?S \bT#BqFVVݏJ>W~`cƌ6%_V'tm6ZMQ˶m۞bѥek=JII1_TrP^z)Km뭷x<^\\ܜ9s|+B(k.~YYY7|CQcl2fΜ?~t R46++('֤I7{zzR5i$H$F+#s7onN2&Qٙ_FFJ2355F(z)JHH?_"ߵk>.[*** W(ԣG$%%O%%%K,gJEQ噍5rpvdP}@.FEeDF.Fuο=FW^Gw4.**z O\tIPg ;k$o޼gϞϯۿrÇ&OlѣG ٳ>o}}hXt7vi &R ښV~(P`B!db!B ,B!,B!B!BX`!BaB!V+,,;w?#V!BX`S}ي+n߾]QQAߧ!B ہ˖-u6b!B Ç666}$'p B 3lp8*JVA!XOS~~;ShѢ7o777Bh@(ZXXA!XMP(۷otjҤIR}ժUW^ckk[^^gΜ8p`v!B:tk֬;a„۷!C}݄ؼyshhOjjٳgq BLEuҋHܹsglly<PZZ:v+W@]]]yyW ɩ#7^!Saj,<Y2S@S...{D_6664xCHru+V yu߀H# JOOOOO7X TTmE" `*>ex*ᑅBy*/ B IB!j?WUUEOt:B[!PYOiΜ9C7n ž={@!t-^Ν;&,T:_~3ީ}'FR(Ò۷_vm.\h&N{ݽ{ydFp×t\$<<\&uB$%%%::(\;QQQ|6afO>ѽ3l^ ݋JLL4z|/wpp0/`^(۫T*Ä{ݻwz8E|~xmTz]vM< r\̃Ypvv$y83xI%88ڵkz ,GY<<ڴGB!dZX`!BaB!ipc!8f3l3]`b77$ 5牑E$K:."H:!:x`H[s K$;pu wN>pϯ{gD"ѬYx;-˰?pFdddN>+BBBLXcUƍ~zShTؚ< ouaxEfk* w='002ܙ;O;2,H233 ,«zZ:ۡM鄷 353’[ 3ſZ-ς,JMx`'wB! !@rȑ>$cB=+0YR9vcǎFS*j,Bg4)x*]_UU\fLtMM ngbX ݓdj8#r<&&(aDDDNEښvg8""˥fs\;';fd2qj(Ýe866(pM6?~b1;88sۿGGG&V~ƌA~Rzꨨ(D2bĈ]v{BT*Upp;Y#;B!I݉o_ٽkSL!I EEE+V^xa„ wܙ6mYF*N2e2ƌe˖+W 6oׯ__d ܄eܸq2qqqqqq<Yfݽߌ`׹eϞ=Ep~{E%$$0LrR?BT*[t:EQeee<~3֮]K/ѣEڵkƌΆ6!jYddd;:Ttqz(kkkzZQQQZё. 5Fr<> fiiikk4|p׊QFر_޸qѣGqX! :ݯ5o5n`srrrrr /wÝ296H4k,.Ng2O˓H$F;?>}:]Wlqfoиq_i-.&t[tqqq?L.@ppkZ'fE6]K;siG%Iff3^`GN8ٹ~Fooo˰𪫫3:NvCㅛ< oѕ7fkf%06=g'~nҒՍ$d\*rB!.,B!B! !B ,B!B!XB6(#Fp$wFp$pGr{,n Hɽi8{#O 8YdGr| HψZp$G w dɽ;8{##B%,B!B! !B ,B!B!X!BX`!B!,B!jOㅛ< oѕ7fkf%06=g'0n鞑vcXMƭLx#pз2hE͞_͞M=7jOf;ff]?Ývg?++˴?Xr6"Cw! `AXg}SV"ԩSOm޼pl۶Фeff6y砠 cҼQLa¸q0 "...66`r]`tAu޳gKCCRtqqټyVmku:EQ'Od2۶mkr1cddd\|b?֭[=== #%%%</55*:))ɄY,kꂷEƒ0, e3E&%%%>>~Ĉ A 4Z7<{X,''>xAA;w߿/H$ɓ?_|x?BZZ,Abʆ &322RRR{9S6,55 ;#BfCL>?gΜ_s8uLv~iRwMZvɓ'-SN7o޼y/_.H?NdzF-JG=}˗/O874-!jYThsaZDfETm :jUO^p!%%ח$I j˿%K7N)J(`XXX@j===ꚋ[ZZVWEEEf"IR_*Jz:;;=z/=f͚̬,z撒ݻwcBu76Kv_$oA[O5M>sСZj h4E'WXܸqĉ C$k^heekj.nX|'+Wsĉm۶K[nmٲ%++KR\rڵeee`Bre ޢLnߛ6YDg|||"##nnn[ne2, O=zb}5_TTٳV~~~ǎ~77߬\ ,B[iR/nu s~ ƕMYYٖ-[ G{"IrÆ ~~~_XlzPWWdK3fΝ; ~w۶m?]^^2~xww &nB!1s)7y= ^/$I_~9r899kÆ PWWwȑ7r9s,ZV**~8 IDAT#G  ]\\x>0xd!<>/TDQQǎkt'va8=|piᴬ,[[[}իcƌ۷oO6i,lB!:PG kh~K,irmZ8(2~Ƿu9]B! !B ,B!,x&t[t卅na-L`n} BݒaLx_%=<<<<<ܒ 44444p'FlH$:(BD"IKKqEښvgX"ѽfs\M=7jO?????aNDf2D]?Ývg?++ gAfffFF"((Ai7nq0 qqqAfi0#Eb*LSb ndFc,3ej>Xe>̮vCӷ6+DpvЭ\ҿ!BXķufN֓?'F0xS=܍FvZ?\?MrDބV.6c VIOQxBU}LVЫRZ k+'?EiʊRK_ʢ4ɲ~--UEGaG (U+.>ڬoj$`+B!̸rz'lw{duRJ`H$bpY#&Ɗ7(ɲ ^|h++A-0O1ie FBaI8.^i vf.\.H3Ҧ^`bx' lrX5?55 tp>J^\`xV>"u.K=̗Ba0ߓ"6%[JLLzaƢvv@Q*ۚ ؖ*MV'KNZ]a²imukVZŦG(d8 ZEB #* AKg j!88`Xg;ݽ/Փ /VE3'{Jϒۧwe($ 1bYUjnD.tuUljD.6#jʒ!###ʗWUUYXXxyyXMJ277WRqIIIr<- {x<,ロ$kea H?P$ZEk[l<"݋ (j-6$K*'+B1Ayhl6dR!CS-[6w]v) ggM6mܸpGr ]hQDDD q=ьX,had2YUUjL& Cj~}\R[[~RHf b|VLFځ&T*Ti^«>2]C=,>']˰@?q ^q ܿ(Pku]HQ86W|nf&YUN0yYYٲe˒ 4j(p8v޵kcPP_TTwW 6&᫯ڱc=aDRWW'r|}eoon:}UV@CC… ++:S ,X斔Dϡ<16x`È`ꋓ*-Χb /tG*ތK>HΞ̊d3F.J'\i*+ * + <\+M#kÑkz3(899Ue2 !_& 9yr$--Hhh"mU3,H 7:bAdTNgs6U ߨq>w't=V$͚5˨͠gs gee`M#X[[+HJKK7nhccn:鼽y|ط?o!njjjjQ]sEAO\ƍWRRϟ?޼y&.ӧO늠 co1nܸׯwꄄ"b\,0X{FYKXVCȴLג4Q3(R ,r=*SNUE}ʌޗT* | t>@Liyzzfgg7TޚQ a[S5>ρN۶6nO8q_/++;011`xyy?Yt)ݰ(ݰxLL+nݚdggϙ3~jԩk׮9s9s_AZј]XxDK.[AD}mp("ug@+5~c)"՚ ߊ)Rːe mNֵWFD} GJ/Hsk(il!Pi=eԜݾ8g57ZȀZ^?TBP FdH߿帡ZUUܩS޺u@ǎ۰a=FEE;vl/_>|3X`@[%…x;|9X, #ӭ\,{x]w .NA~L)5 2"' (`y KȢl L7ױL{7 @۷bOV BPZɗ9k֬۷޼yӰ:o<î$I9rWg0p޽{ B$j57k̘1QQQtWYYYCCðaZRCCСCw /~]v@uu|Cnٲ%44t۶mX`=e2$%%=.˘ oǼ{3/!8P՜Rw5ޖNr X߭k.=@Q OH ʭGOkpY;+KąZ%I֢( ! -[lk׮8v]!rww?`pWWaÆK񑑑N׮][]] 7n?~|@@/_ªx+D"?@ d }f͚5aaaUUUgϞݴi9n),:=axSRi]J+`Z/~9XUs{PU[5IC@)gjt:}_.@x0DBt/&cA[B~bAcIu ҒBBQ5".\t~… _5]Kߟ>%񼽽K.M<~i̘1rƌ[o?^ь5>k9dٳ'I={T*۷oW^*>}Z?͛7-Ze '.Y,\*nsFy{*ŇnHBqq1=C_@~ynE  .rr{oVC6%= k,wV 1!>s>c||<Uxd!<̂aNRSyA&_UZ]YYimmM'=zdaaaee 555Zήv(++3Bj6i,lzjl~]U.L=ǽPE/÷# _7SZQW[K!HUYqTkLþ\rP@Q a+@QK!X[i.R{e;Vs z*lg UFrj*#E ~CAGӈ'FQBaִo=<3`jkkztK34!{JGل:}ELQ*BSxVU=V (5EP,jxb$PmB!,PwBEQA+3-M `)Ql&-O~yE$0+IgOԔUGrXKL+)zZ6aY0!BW[]\n)eg@ <$5sl4G繁J(b p dَdZy[|!XY]ܼ}ew߾Ep EF̶/u@;26A,rX5,kY@_[8|08L!X虓EO4پpӑ Qa-oN$/L>™.u`rE+teu7&ӂe՗i%6-BX`gT[gڞݯ`{`'Ur9>mrPcy`dWH` D.۴Ba"##L&XrYG3b°p7`@%/X{ߗ1|7½XR{^45ĶVcM !XСCӅ*SoD**=>_R]K 9 tx]QZMئB ,vLv \OGp8!!!{_ɏj}V>;.ط2]\6/*ޝ@,i! =tՠQ#o///;;K| 崮ZhPfmYgN͹Tev,4۴BaEg0-C_b–0 B6êJJP2{˝`{*6-BX`gˀZ9aՈato-<@5Lx7ҝp ޸R7 W$BYZEZ4G2g۴Ba1TK($+8 wq}@8*]z{bB!,j=VQ#DY4=Xޘ"ELɀ}7PWe~>>PE+<2yPynvxv!__m]5Yc;g݇3*MH [9Sw2;A{=|c7FaBOD<8HiL744|GMfgg{{{z{{KNj9T*㍊GݻB%D"9x X}ZpB)NM%?zmIÆN=x"Ie=C@0\ߑ5X E07o5zL5BuJL#e?zgϞXEQjgΜigg%̙3篿jrof֬YǎѣG/X?( 66f}4[jkk駟9<;#pC8(1"kBg?̪Fs7o|+M۴ֽ-|򼨞o -SDy 偪TeK`L/Bi9y򤅅kϞ=cbb 裏=z'?~#""-Zh_}QF)FLf/\000000pРA&Lۺv9|Akj7SG`ie˖޽7nصkW^6l`mmJ0ݵ{ ߹1pG:G+$PS[.,Nh`ؐ5< >MV?+q|"Yfm߾}ܹ/JZz޽{_{֟"ӧJT*aL&"<<ݽ>}g٥t_(JR#MW?~y&ioobŊAaP(~駼XYYY^^NWW0eʔÇT*}mիW,VBB\.7 |XcE:,JʒdlbԦ+wZ=9nn+o dCBA4bٳ EvTWȔZV.O:S':}tMM tҜ9sU (ڵkΝ[`\._t uCCCrrJRT񬬬B)X...  [ }feeU_____oT`FO ARj*48x&= p ʳj/#&"jl5&"ME1贘RC^F2hZ/\|mq.C%Fip $ID  ? bVXIoS =-czuin`?s1f1\nsj#<]%\\\֮]][[KwFC&&&WUVٳ~zz܇M6>00pl$IN|MP'|oI`0BBBϟ_QQ޼y߿qpN*(2mKwosP%Ւd8KJj!{{㒍ρ@S/G-mH_wfY0$_czFQZJm666w9vعs炃x<r劓S[~+WKѣG-#nnnyyy}ݟyܹ1cƴ7NۺuP($ BƐfٳg…9###8pOO؁*?~ m9rȊ _~];|5NUTS: cZIXV}EGY#''#,jQnBmhYԂeggr-.>{l`` s+d}sn %䴌 ^a#:yumQ6XE/Sؐ ~_`p1x=kgQQ#kZÑamllΝzwn߾=''>hgIb%$$߻w)55555p'FryLLQ$""%0 "111F0######>i{y}'0̤$.Ng2kAݕL&31111<<<<<<11фu^G`-_|ܹøAAAtww?|oPס/l''2VcT* Pf3]ôWl")ɶYzY0Bu69i=E nJPk~݁wZyhKL ujp^`p: DX=# 2_jgzFDuEcAJtW6,8o8S}ڥ ʇi zk!2' LBmX/+[>/=UePĆ,.SãSF :u#dm[ !Y,:d[6~LQwM7Lҙ&]t@SPP#88GG9mōYHvҽNҙZe[.˓>s;'3ǒ3?a] G=CۼvOuA(N;qB<LU<)jY_p R6mu}G7J#)$> n(,]*Xٯtb1_t|#P$w{0^ !0e~ 0Rd2l}RTT$JH$DRTT4 -2L*iXt% _SI9Vx8{oJZ_R[Ew<;+_|Rp[.@U,?>Uˊӫzs'T4IG"f'x{Hhx\'NDEEEII?WZe+VX19"\parr}({(Φ(j D VSۊ kQg:KII (@+g2`ُZ4xC"<636''鰰0h<7aDRZZc` NJ+릙.ao0僅_ob޼ƞNC޼;D:>`XWW,4 7ci=zMumPW3xLÎqa6]֋_bq8b_ OǠjNu}m^%ȍ W %Daܚ={0RUQQ^AٳGFOWR$*ci.Ųb;&io_Z7(+ ŋga^YX p-MpqXOHJ~{[ʖq.̥4U7Of:z#P,Um3]E:E>1\b 00sB `0^h{-^ 7ugۆZo)_eoV:yv^<$4WbXyyy)))===fuȸU;Ď7RXX1FcuNKKc2c>£[&92[K% bC:b'Mdש1Zfz0\U*. pbf{ =u~/. z}wqa~kb !֡o,uS&/:Ҡj6>}CGӤ5"lFj*c^bŊa̱o &'`[:-#;;k ¦yBj_0omT=nTn-i*!O@՛3G'fJŲQ;csrrh 3i"}ˆg3vJrȕ5*X#˟|[F%L`!¦ zB&;o6l8縳8tq /˕ M-X},X fb%rX}>hѢ:#3,vCae?kі wn;(n]D: Gls뿏c%Q X݌z]`a%o1f7jpNmSSx˙5Sbz=æLKMj^NOzzQm1.JcOJftb%w0OA,6G8!4͞/|R9v&E!{׷P$) 7K0Fs4c5^ӏ2 KZ|sO{(&OuG/ T*X0֠jV4ğoQ>evskGMz^+ ;' #f'/~u  ,Y֢ ~8)O;&vv+u¯un5]i{54[*X#6r1x"#ܢm1 ^ꛫz~{}4q$Ʋv_0}ھUG5g[ظY@i9dG,A14-l靹=޷|L OKiEx ocggTG2l|E" >#BQԐ+G7{{=W4n:*fH$RX͢°֓_l>uRnB[a:a,gȦFdGkt ~|ãƗ ,Ƙ.Q sj47{^`t=|g0YC6{6rUiVkE MzCw{T|,lܭ'u}y =bwj/cu͞Yhz2 5q`}Ygp ֛[9CyF0X |5RE _NM+J&zݹjK_K!,NY{_f}wf}.\\#Fa! BT;֝^UoyoT&-`;ELShH0MqG'~b F,0\1ٺf֎us[ʠZ<fN9 7J?0p !DUI|Z,54O_!,^,/uz¾rnt)G8Ҏ#N4Z:nJWĒf/hz.5eJ ,AS3j8["A/ȏNR$Nl!~NVtŠYU 3e}X F Bf܅ =v0r*KOJ3ЄeC!]B>tNj'WƦr& ոc]HSUdP维S8<&.Kտ2K=k7'/ 1$XW;N}YޮM-\U W";#jQ19Vqx1X0L =5Dz1ssx ьu/>>>>>>ϟ'd2L6>l)**JCZ$mG(DRTT4pkdRtHˍ#,Hx<ޘ"<\B388888#̰J¯xm{%1ԂןV:SH5}yHPE+֝,)^5r豄CgMxw}QLOxQQQc)f'\eժUƼbg6! .LNNF,dggSPE%%%?\TK$ٽ3_r5ti;2m|;O>+`p-sRwɡi:,, -޳`hz2 p"MrAg8oVŔ[.Bsz)YݸGjjlX HD̬+WNXlCZ6\=yR}:.?M̈ IDATw2#E4'\f\ HZ ?mw~*0Xƥw$ɠNuz,W =z!s\-UF _Tv? mڗ'"h0*XC'Kf>YhiZDkDw9gi!n0,+h4sItm/=mH^lIVU5*&XtS7 `\80.n/rG_%lsBk4*D@JQ_V:-0p5CN6;y +19ij) }=CR9^C`\9meC+e4n?U~kP9w<) tߟݪcT<4rCPP+`܀Ks _ں ZSaX{1ļr˜|~o^o7AaZŦ0,!`,q,30K\ѤSRg3tMҳ;c9[ 3;LEc"9ZU0 JJJBg<|@~NJEdgqD^mmynaef q!M9Y];n(H"1"J6ՕÆjr+_ex.0`,,g766vÆ wy 0hRtu{ZKX֡olhֈ6h\_,& \xiŬՁ4!nS[zNɋ_8B2q:uMaHsrc9?(g6)C `84mo/(-=~mWKumߜka&dGKz;awLv #6: .̥4UCFhQ\&" `P555UUUaA3~<ɢ;!'J,^ԸsHup_4>8KP*j* AX0"lì49up+G]WIA[ú":fզ_G=z,!pnM)ȷrCb(&@0 1?>2U=Ou^io. Qz;K=IXBw } K[]GSPic/Vm5[ij$XKMMMII!5[z{{322 ~ȵBKaaaFFƐMG8--dN<,£$|y§:#A ~`E _Nl,J/ndw(dd]!4mP*K(6\"$l?<!ZԸsQ,XFp0@ *OԔ;> 5m5dVO%av!,^E 7H&~G5=Y{s__X|f b\{tttVVwvoNT1!"%6ל]XLQ@0%%%1zXBOXϺuzAR5꥙W]Ht8^$XV;tTtt4M..."{',1e\ Hל]w*[]>@DFB#k=1hdHBgBcs-$!$'X}}}ŝƖζԺ:d4G"fEb!Z wl:Ef sT*׮]t ,_i׮]Kwd]`8 . ~e+ng.ޱ9Zߴk#fܜ+l_5k֡C֭[WVVqFOOO:qDEGGGGGD"w,=B|{׶q m8 /\wf'o'/{) E~$wΈ'_J~'|rڵȑ#,s$i>ݑNo*{B\6 ipPlNWPV[[[p8>>>jjjHLU~9` F)i߾n ֟uzAJم`Qkģ:77` †[I_&wװ ;yT F!(F(J?+**jH*֭[׬YgEQH$̌}>h)Tm [YYٳ(jjj;cYK=ztҤI߿?==vժUvۃ>p]tttZZ/S㎴E[v-/bZ F*/ItM"hm۶YZZB,--1 `DB;9:Pp2e_zfH5ӟjoLի ![n]~=W#jkmwKo.JV(]J*1o%yix.oޢ5Cx[IcsM0kϞ=]z}UUUOOyy5Wd2F3ԩSwߖ-[r9!F*Κ5k;+<Ȗ-[6n܈c0 JJJ6u謩 .o),,4޾lٲqDJu'ߵkWuu`hܵk׆ JܹsrWAAAVV͛ ![n%/ӦMÁ5...MMMAZ{hu<1B(0ބمÖ`1́e 5;5ڴiӼy>}َ;om۶jmm=zh``P^XƚǦUvHֵ׏ oz}ցkIwc(HZͭŠ1Q̀+U ӹ\/\'MApOQi 4ouetDF=%ޱ9<•eFw(!Jz^PBzzz 5`]ML&sULq8LSks]QI{c\u4fKiB*69dh~z.W"n|qdޛ>}̙3WX!_~刈3gN8Dbr+ibٓ% wV)w-Q )#cBql/f8tܯ MӾ72nnnO;w.!䧟~ !&x?[uV,;oaJF4ukDO'II{O^Vf5-SOX|gBaH W`Ms&M){z~~;W~Ϟ=k׮7Xyyy)))y w]7##cHKZZ\KZZڐY#RXX1FcuNKKX"<:LOOOOO6>d?~H8BfP^IZY۠ }5ʓ#4~Sw!!opľvWۯz\߄:exLfmm-SSSSSSSp"Ww^3$?`v룏> OMM/W_꫑lnnF'&\e;O1O5WfJ ~DlURRd~PeD2x giKnT>{Ҁ]BƝу. ԕ 0f,0x*XԌ`ዋ*igb_WdB\m9. ;U3xvqvg.XLQ8R0ʆw(|>8KY&dfKQQT*"H?dZ$IQQ(d2T:FcuH$<oGxtgx]!(G:M.Y8]:>[x$驱Of-cH"vc]Xv+Wc}NjB`}ªUyŊ+1Ǻ,%K̟?ժUz^.?֭[t`\nj {(Φ(j D4Xr\CtXXD7g3J;mezv ^PF]Vf7sbX:_8SEhϰ4>aD߳n; R9k޼yl6[]&O|;Ly5#X•'"T-:~z!g:U.z<4B8vNKZ}_7dr%ḲL+l駟^|b,;HnP*O(wOx8Gz\%ޞr8jr턏x2K/&+$X s}w9)_;}?֫]H(C_2:;.@`Xst ^">En, m8 /BZ%p[ [ Y윗}ӱsjRY .4]hQ`rYm[NJ 5,+///555%%ju<##c! ^vFxtgx]d2Ԙl+[%:*j,;;k `\J*k#S>)UBr;]Ν3>d֢O0>!???555555??'-#bp'=pe?+FwNۛwlM`H0]'6gnYLy5#XW"澨jҋ L"\aBŠU:5Bΐr;XD;X((7ՂY&+R11L^΂YB j* 6n' Y<'bb [~]g3;[1o?.` o~Bh"Wql_J3c`4X/<)v({? S1?>2K@ˆwO~ٵlA  (s֎ܢ---nԳvM5wkXEk<2 D`\9Ŷh~|sVB[NXq;Q$X#ƺs8X2.v^w2 m-&pXDza\gO&dfKQQT*"H?dZ$IQQ(d2T:FcuH$<oGxtgx]!ݣGx_]\9wk4@]K("崼6wHK'.yOcx񢢢'rj*c^bŊa̱o &''G!{(Φ(j"iz.'"l:glNNMaaaf!tʒxw;k~ubTj֔4ag_SUF~Ns'~0Y{}BEERre4[aDc}{(),D4#|gٝ [ >MNa'ѶSh^sc59XYY+b-CC0YHְi7NjvBLj뭛>2m}0XNJ/CHf$ߘ؁X;PmFH,u66u4T 67t:ɝ覓 $XWBYx^GUdݖ IDAT]E1q,NR)$XC6y&WcQĘciuVU= Mê8X0/. Ww3Nd!u,-񃅝}:Br6;]t6)iX+_o Vrc%angl(LJ:>vnsU~~~>qS*ׇEEX}`%rX}>c%w0Vr+tmoQŎba=!@ r}lsު`0 Nt:`%>cX`a%o1fX},uw;T~ } (BHӫB;N}gkg !D4jNJF<Xscۡ <7ṉBx?BkT%+]0 ȱzi'_w;wEY2yv-1[4@p hG^ܾGʤ/4@piv:hs\hԱ uX4݅}:9cP$Xבc->+Xrӡu, >: {i_Yjs:,pG*6@pu$Xvju),wlKѸcBH=8PJHH(..cvwE'o\?5{\2 /a 6_噯"lvg-!䰪^)տXdq۬u,ɾ%y )3v vvvRD"FP5dʑk1͞^of/ty<]pfϦ_.#>"SE Ա{WжWFPC"3v7{3v =/X W͞a]3!=)f`PurBW{mъ,^Y0.>qxς! Zpgag50Նۭ]TSlloz5RhnT\_;-՛"q`V;'$ c#dpK*ꏽ)Uoiy7Xڶzw8`N?Bc]b^*j!9Æ_rNن,k\'“̉}W|:W2r}(X 0m|,<_*u,oc,fֱ䪲Nh'L;AetX zYx?PǪTrJKR^QZ*YB0`\:VwӈҸ-Svyb7g$XXǚEnPE m9ǎucC硏I_ V zYi8(TWcnk: sCWc^c;e>Ա  JK/XRᓨc,{K: _OX\Kѽ| WER%?KBM3Wy{#l"}UțweZ8MU$FXn wiR{g/>>>>>>ϟ'd2L6>l)**JCZ$mG(DRTT4pkdRtHˍ#,Hx<ޘ"<\B388888xlGwwL?£0!& SbAQ~I#..6LWsъ#wO5"s+?WU(,vykopbfo[#> XTT'Sݬ +Z+C"@p3 ?zz7so wV ` "3,7ֱ6Lw}pnx?KX !%h8W|^y~̽oF[#plE9`XԔBHaaaaa\7##cHKZZ\KZZZoo(fdd iXtҘL昏"<:LOOOOO6>d?~HhxZ h$+昚D],hHLˁVVo4ˊ"& '秦S÷$"I}sNA$Wm5m:E+!`VͿB!i-Z#grrr!,5 /ߧyl}ކ;~l[gO o%x0 /}gߥrUm+;~K8QY|/{KIXFcɼ~^v]/gf\E_"+ XWpN)Pk(UeNQp݌լ9̄hY{V$ \Flw1B;@5ުܣvgc5+vm00Hw  b2e<ҶOioS$NCeW~豄>D`;h:a2i~ (#KmNֈ־eTL[514#`@{ʠUl%J])UfTF Gk}j[s #!XR5+%Y,,lPyݠjGYHwoҦvf q~w/xњvI_yzK3ҷҤd4(Ո', p9e4ja;K]saR~Vt l^m/ne0 `Tqľgw_]m,(:yuțp~5z_o ~M,^ h}h-Oq95߫Ys=n/oOH/m.<:MŦFc 0Vb !Z7 `SwQ<8oQ+_ ߜka&ZgP `+^wcJE_Zʸa 3|WLy,$Xbs%}gTO<]nm]4}+_־c5Kj,@}q~,p]mKDAF_͇DvGį &NAie0p``if)p]=Wx,t받8M}^{---oۯccE-f4XG" kV=_fu+_Sֈgo y78Jbcccbb<;wıb\IX߅TUe>!MtBp獮~MY{{ 5rY"RTG"yxxx0x$!9v68/W5꥙DB]p%X4MT*Jj\n@@@CC˿-[@Ӓo*fcN)ޯpbg+Ь,^/4SNw}[l儐T:k֬ݻw_}`@/^7~]x5^֔w]֪U?_]]ݻw_~eéSfgg_Zn̙3 zĉOc.r,xf8 .kC!䭥^y3#w͜C1Km6C C lPߟP($|JSV*JR ]cdd̙35e뷳oh4_GKhkh UUUG<#qٔYr.E!Eꁒ. q!<>u-#[/;=j߫5O|_p466㨲 SR>}փ7EbXT-jjj*..Ak !Ν;pd=V{ڮ\ԡJsuu||rj%!+ɧt/f(D[8ۻ=7C VUuܭ/ݡ$Rl)BaBBw}lo2ޮz=={!Č"$6w^=uTlZ֫VJ@ \tҊ߽5.B#B4衃 !ꖢf6iJIqp%z0BMQ%_Xrd?D8Y(%myF_}C֬#++"H$2m "_s-b8//-$88Cfb17 gg &πN |>?"" ,OV|~ttceestKs_F7;6XeC/*;(蔘eCS -X3ט 3fSLa5 _x`W\o1`t YB&Lp….Dc322h 4 d(c/Do,:\}F#2pRo Y{.G`3b_捅ٙpk$lt{SOpsv2icua# gsTFy!<:KqϥiL}k4Aig3om Șʺ Ee.S#n<uƦdHl#S+p 6 [J󪲪 jkk \{bA0;zX[p]0"4="oz2k֬}B;aڱbA8'Em[:EhǸ(]˓m',*[9 y h4/%9mFp&|N]Q[X0;b͸ДXEh<0ss7U233͂HZ3V,O;'.BO*'k.kʆtCvXFy6Uccy]/vZxy DӾNj !.QuM? '%C(wb^0>~_zO%PVBX޼y3)))11C[d2Yjjjd\KrrL&3@Knnnjjjͪ '''s8O0yvaLIIIII1턍pQ˓Us'L Hqͫ.1; Get=fX8] 뀑ixE#-׫ ,;;;oooooo8{D" m "_s-b8//-$88Cfb17 gg &πN |>?"" ,OV|~tt4y>,L{mXITԣR9Cˌ3uŔ)So_x>jtŕ HOO(JL$=7Zy"a4M]†yX79 MN; X9=ywN(..w^#]Ѭ_9-lXH w.~@F>{92w]}̢zr77-STcZo1U@e5zИ4Z|ė4]UUUO?ҡ2ơ0>ji,WY[NFxG+QT8Ǜ<ηZtEey`wXKqQXX(Sn><BQY(D;* DDёQ_9-lXH w.~@F>{9 8o;>?WT ukwlmm*X?XPakaT9ӝ*yj0턍pT9O0ySth\ f5q|hNFG rƍgnnTr?UVr8UY1!J ѣ;E7tұnlR,LX8hUn{/Ɏh`hbk+1{O@`{ۣNի0; , Pݢ@N_Z{ĊxaIDAT%] YZ3l/x<(0; , %wb%OYbwX@M(R5Tw{3r#"s#(n5pĝب'\KP`˳$u'VdO-QFx/0᣷pc!av&Ś1)y8slU Eniߟ:p26ʮZu,Eh"|Eh1!\sv"?PQQxY$ Y)B0c^M\s0\FsVK2˖Z{l=uNtӮsmo6퍅16.\Rd?\TЪ'Prl0;">ؖ-'O=EQ];wMg g g{&.5-]՘Q{X/8{36ͬ=(^$ ױd0 {b?1G(z#zb<)ų%Ϡ?VG\D`΄HR7ݐ] ߊWU7!?[Q`nھzr%۞d=9I̥("g>hkC!Ml$ װYU?z vGe0MY퉀߯4:@,est**Z2C9 @"yUYU^ )sQQ݄Ulo+-E(z5KqϥiL#kV\'R5iC 6o,$΄Xs? acz½`;{n><H>y%%%X[[[XvvvYYYD"HyhK^^^pppXMZ(yyyDܡqvb|†ɳJOݟg@@@@@i'lt> O0y󣣣ِhUbbg^59egg+Jg, 8ݏg'Q* z QEem9cb ,^,AY3R X %TM! X=Q,jF( st8Nl@ X\85'$if8/٦'+A(!4->Y"/FO,XRK, 07j_# X 5f%F,8[T0ˋ`jKX_p}.G(^F*%@p]}-7YY[X(\糅 0=P`,Y^X(1ji,O^(zoro޼B_-2,55CKrrKz%99Y&%77755Cf턓9'l<;K0yvFwNp8YYYN,O`ypn߾=w%vNLJJJJJ̤눆+X@Ulõ@hc-s„ .\3 !C Y# G)*VN9E;zr͇ TU(* ,`hUeUY{A@B(1 KҘD ac=P`s5UX(1K+C(!4{jF( st8Nl@ X\85'$if8/٦'+A(!4{X~+ =P`C 0_bqyזw =P`cJ\B ͅbyY.@q]}W](P`3,Yl/HUJ `[n4@ -<-M( ifX(1艅 X(a\3!pzb渽2JÑCQDRsGk4Hk͇ 4# +j[aXH󪺹s}E?l۶6,(ڱG{کD&hZWQ캂U[[a[[[lp[GQ[x H Ţ+Xr|ܹ֭[aL\.GƢ!Y1z=4x eiEӴ4px<މ'-ZA.69G,C1WjZ"( K.͞={ʕQF޽ǏJJJjkkj56ֶo߾RY;vؽ{Z]] Ϟ;w阘JU[[oݻW ` 89vZ]]СC/2!dڴiׯߵkn0BHCCCLLÇmX\'9< e|V:~xDDw|uuuwVWSfggwʹH$beL;bYqd16ߟP($|JSV*JR /}Q(*<<=BKK !O>(jii# pdf[`ux|d|Ohhs,11qĉBp'Oĉ(ϟ?(DZ˗/7nٳgqdYCC믿x1l,vRՃ.((еϙ3G$keeeZx͛7/\ye˖]r{;͟?JIIYn{wX_oذQٌ3wd ,@&$Jg͚r常-[#~bٵkW}}nNM6cƌDooy555xUUUu-[DQF޽;;}^^^ӧO cǎ]ti\\baUVM>fŮo ;566;ӧOo M )4H$=ӧT*x lK/;VsRRѣG-ZXXիWϟ/ˑمΚ5c֭(Y_~V?~\.O YZZZXXw}}b߬`]]Սb lsܹ+Wp\Z[n |FIII?rK/dkkpX!oذaDr &  !xV$,gff_lZ[[wsU7VVV ~ao`~iٲe}ٞ={P]ɓnjR lvMn-BPT {/x[*>}:"";2ã7ƌ#HFk;+999r\*?~|֬Y&LPPPGEDDB KKKؽUkks9w\CCСCx ,$GmQSNݷoaVLXkذa .5kSuuɓuwۈD"' Bќ:uɰFijjRڇ/D?\\\f㛋ԩSC na\hM Rnݺ?{{{# dgϞutt3f 0cǎuttJ03p ,X( ,X ‰'M3n8dJw }vg/_v7G\.O-7o޼̙3͓r|&Mҽs={V;FiivT."C999n& 3*BR677߸qcś7o0`@HHn%eee>>>~rssʞ{2훼}BX`Z(<&&f̙gϞ XtW^yE$=Y333h<螪:tg WWM6}F'RTJẋ~vZBVFQytI˗/988YfӦM!!!z3|EO3f9sFמ0}_?r{-,,|o;<.=?lذ˗x}鮍BT*Ucc |WFrpp>zl\C "Zp~L&;{'!DTFEEX2{;v8p ++QW Bjuxx-Zt1_~ܹ7n>,--ݻwɓmllKHH}f͚>3!d̙aaa 燆jc)JwwuMJJH$ؾ \[oGעT*?+SꞚ3gʕ+ !'Nx;l۶mҤI/_?~=##C{[ִiӮ^*J z]eeeɓ'>>>{QT'333..^|"VHHH"P`Z~׫B 7\tI-H tXIKKK{{ QY[['( ujU?DiӦʕ+23C N.ӯ~g??QFu֬YCӴFJ  ,\}8xf]{y{{; ,@O M}Y++]vn߾}޼y cƌ%}ݾ}˵+7?-p1@baa䔞}( r3g/w(vءT*t5܀q<" i;?iX`A\\\``Mtt {4P(M4hPLLL[[n 6GFF~W?0M4);;[O>ȑ#?|)Sbqkk)Ju5@{ß~iDDX,./badVTT?B/ 6m4?pݺukHrOT{{{QQQ~\\\!555su'BBBΟ?m!//ȑ#wޝ={vHHHii***R(h~gϝ;M ([bEXXXסCv6)]JKK/^?^jmm o;ތavCggA$ <a`0yIENDB`codec2-1.0.1/doc/lockdown_3s.wav000066400000000000000000001356541412132000500163630ustar00rootroot00000000000000RIFFWAVEfmt @>data>:Lk[i6`% +ػ2(+3f.w\.~ -N  #* E;xK0*I mҤo#8@, " ^(b_"rkI_( qs!@&oGJt @:E "z'wm Rf<H+G'f֊1MO-0cg1D .'*e n@< _͠-q ?H B2M#E ['Ltn:!wxrd$:0UF(4T@ teF*&ZI ( 4{% p9i!ԈS N5 s5o(<#);\1 @ 0 L-I جX3g=*Gy"$4= 6laޫ "X K^ I ZM {.[$ %D$pghݰc8+ufЅ 2Jm61gi,J630 !A#ӁnH2`U#Y< (%T &- e!^)4Vau"ovsg!7D`9;Kݐ+a`8G&,' ?f9S&Py.Lz'2{1]}Mh:B__r$=VgF7>>20 yxSe@ y-) HEKIH'#d `D)d?V,[vY!mWgC0/  31 5XX 2 F)K]NH:I1 &!u = n+ +"Df>E*Kٶ#! ).g(w &w%%lbT #]"Oܻ2SЎ( + !N& rR2Ҋ*+ I{c ;^8V#Kyy?[23Za}ݙf  DMl)(Nf&2 @ .C!5%D8*F6 ! (4r$ ?dpH,[ $Mj5&Ql?%n)O3*h|;i޶ )tQ  R;o.r . 3<0H7/Q#׼2$v!.R-t; >E)q-Y?;,v4&o:u1V5MߌEGE :[d&տx>'?׭`ڄ,*]xwB${-{>o=ٻ׬D&%K#>zn]7p Y. 2 M wa z ^"AhG%/[%2) -!! /QqajݐY:e  $ x* M T(y @ U +s . ̼%(uiy fll-Z?G7H ;0O}ɚ3 <:- F98,erz#% cB.#5=6n1 J%̈~[/O#*yK! b: K+HV< c2r" Z Sj0 _ ,>Ai+ z D vuņ+ 3: "  ]kNBK.\ [ l?=)Ƚ$ INM{!9j qR A "۠K_YmH1eܷOZ S  Daɞ&G~$ |^Mߑs*&8G GBH l3 !Q`)] |Pr78{3; K4C MNs762YW!Y},%|_p ,S/_OA|Q_ ![)5> 0>k%# !Agv0(;s i ( q Z (3#K ݐGH ]jG98 #)6 R ,C!sǟ,#Vl* u' ! {x< X<\_$"=D)39۸; 5JP=0Dk 86gO\. 4tM)N_? ^z{ "F!IM97,B Kkr Q6e! 81 Ca  vP:-64Jf (hD;`g"8p wr"|'"tJ:3+ XD*  bi T!1A5'Դm(%_d  ' a7g._Lj y " $2aM/ ( `. R</&0<* U6sߌב ;֧̏'n>/a"kg7#S p ,3/wiKn$b/]sD)Yl]a 'Q+ Y0Ex4>8f>MzL5?[e~U w K~r!D qݟE9=|,`u?pF  s+ QؽH#*]!\S5? 0("+Q- w<HkPQNIs1*f#rGbK=EBE 6ITfq s 3ߌB/e%ݡ1H:Dt=i\ W,a: 4 `&Sj-   i%#f#6, l,' 'I"1 -es<N2G5 S>"/?C@ $ u' %J d=y'?ד}w}  r ٬C>( 'R>۬ }@,Va` `\ )& <*?dZ~&]ז#t] x+=;>/XV r -!8`LX *B*=% rԭ Wh#Z#+ :Kۘ, 9 "?C%eaNf,3! Uo'82+ QfֈG.; X BB|~;u ܁ A 'Pfi)  VECJ#εyP"kEi  wnJ/ ί*_#LU%ԅ$ <5 TK5$ %j2 #h" 1y S d`el%}JVc# #6bN0\ $$+mbϼ'T*y*KM& su&=!+ӘR !4׀N  Q,[%1&YtL ϮnF)3Օac32Z< &Aa]_#'#RyFS .C ,o 02f$=6*{2ud _ I?2 Y1 N * 35  -6~d5> +9hU$969Y' & 5 J" g A A7xu m @+)D4MQS Z ]TZ ڎ7NT_m0O] yy po [#WO # ڎWU%^ 2*f9 w c.J { Jɼ2%Y) $ ja llka #_8ϩ3GAG&; ?NXa|(5!"Y`g2ڧ&O7-KI/O7,xMIr+!9 cLP uj )p  %p7o zzؾp$#(Yh';0T!NahQ*S# Ψ'26'oQ a +{f" (>+^.f n3[T%IJDf.)uJ )rv[4;jp:B пv zY l!o7XeS pQf @+;ק#0un,^>BQ n y $ 8{ `e =BU?BGڵP>~#UC l-\.5); U [.-O T!,UW%h~+c<"m:ۓޕ7%rsi&{Wԭ|!? S( f9+:h x(~90@'/]dW%735 ? S/#!K1Rf dϟZ*"64Զ/b_Eg0:2ѝK+Gw%) J+J(˃? =S3 q2- yrn -~"2Mq nh2II?zn_܁ o3yym|\v&Zl-{Y 6ZEL$  䂾iQ/ 7 > %y  6v\iE  S ^ v·ׄ P4`k>C R !#ϼw" .ahygC n24ga^B۽Xrv }Z @~5).SA + )մv=?"@i$s6^#Aߗ">"k*d9(=Gs'B!d1z  K36f7)hk #$CeNKN ƞ4K)aVj$ &ǹW$#U Lѿ l!'}!TU#/m$o<=c&$r@ߢ361@L @C ˎ_z )j,R)^. :r1]؉ b"G?п=$> B tph ]E=L۴",'> 3[0+mLYv  +R]=4+4>;c52# !H *B RM8eYt0> O/ >-&8ք(T"#ظ~U$ #e% +CK0]y!SO^ Hg1ް#=Q19gL V!ElfKQH x$[ED")cj"(fl Mi"g3-j'[34܍uM40",3 Q"8ިǐW @6u!M'OZ 5/  z9 f( ~ -Pѿh)HB/$ ,& /۷?{اm),!WD< N+ ¿+B$-9 <*~ܿkH-2 $ r.5}%fX }4H79*rG&iI  U 1TH( e -5*, `l-5"yH 'V~#pX&Q=i Xݴ%  H.[6ux; 2cM$ c E3>+"Y%j@%3܂c"A!%%  V' $)(ZnQ~vp# ݞ^ o!X$,4 HVt<53,qګu%" Z?-y-LА7kC'`r=^>]W 0Ҋ 3%j'ܧ%5{F g_z=ޏӵҍ|C5* 77O $G/Rc<ݭX k#8#i_d:(x\M6$RuI@G#R"%/z^LkZ0/(RW)O'ͪ'!夽jJ& H+H,, 5Fh ܝa?V$bT_=g%B=YfL ~)%N(P 6J%B  g O6cR'l&nI*UC | D@ O; $;9;9 F?;&X E6HeUqb Vh,t0U&5ic.N8 d?u )w&(3 5 mx ځڱ /mѶ=zI#hS&$Be\(HYsxeh*"Z`/ @˙  7r ݧ$LM* { - &1%&$%~!Ws<I$4i?ނ"L#@غ-|*}8ؚ' h'ndZ*,9 #ؼHDQ a(Daю$6#b{TvVv2.D>/ @ x2 ,35-29**" Hs՚x+7 bqy <$IQj!#*$X3K{# SL"!x rUD*,C/ ;Np4#\3#@+f9˦ 8w? ׾9 &;^Z[E'&U˳ +J?usW >hk'Xp }&1Q4-`K80,J|!MH !) =S݋c B&ݝ 6y! L 77w!G5:> f].զ R+?"y.dF2K$5?Zs-& 4q#x1 R!m&2i/CFY 5D"[ h) R+ 3N 1~Bl!I?@n*B%hӠ-\q8&0 u6ּtp8I/ "~91PrBNE *5H/ O.3"?eɡ%"1m&7*B>=R D=8 &SL c j\Bq:*2_Eu8d=^ Rܹ / iB "mC6V,|m7*&X j[] {is5.G6D92%wm-iS ,aR% , 6+p ~7g ,+B-w t 8%#r&,@r} 2 &J@: hh3 ap,1 ]eC0??>ZH0(~bz&$~l{K%$Nli<5%?A AZтK:~qJ[s_1f 4 W #@; 7*lcS]s/#?(&uۉ2pV ~"? %' Jl$i" FB؞, .-w2Y0Q*0!9v32S %ڕ]+AJ K3 _ڇC7 > T3% 4)xG]^7+C .[ Dx3q  +'Ԋh$:x} OS/8Foьm=$! ?6N^tv! P)p$揺.!(6uӘ/;h GG evn m ! B y;Gm?31KP " 7r nݛ i=.Vŧ. H~ nЍ3W\$άH[F FD/RPC5 Kޙ'l  ;2b;l'XvG&=r;8V~ 5 ɝ1 Z=  h'/8[zBJz 8B,'-Ο3W$I bLֆ+z`*"Hl C:Mwy. N< ܐ (Z 6] | H:$+9iCuQ(~-2 j) $(W~ a" 9+d I6'nbb< ;&pW)f T93j"^טׄY>q)I0=e1/- ~ofI  iHF"P$ ] ݮ݉L'bw"#- m9!`Z; %)+"9"z5} VatК2O Wa1 @wQC< to 7O^N" La6{ %A ?vۮs l͗0/@"#% b#u2Q*VZ= w)-4ڱ)Y;91ykoPږ/n8)?BARl t՚O # 4 y3Z6jnEkx B"D),&;P  |CAt<u\ # !Vg _D,R"Kݼh %"r-' ~9A5vf (9g !rh Ү8 n P8@ YҔ+&O  nW)f J\|!$$$>tqY;H#B.0*X_!-(4!,Z) \ .c,7Kf$bi<@XC//>KzˤP((BM*$'` Dg+%:7L*1+| )/"*1Ū,XHa jJ,!R e!_(DP/OE{4,;@ z$-=Toʋ>-=%ZXkY8 3 >a F n& A2 Cv 6%\Q נ 4 d'Uɻ )-usi67ʄ1 h[:*4 #&)ac|HU10$8n5&n*-/r$3"dRJHo*׼. ՞?Wj`Um6,D -V995xR1$_0GUW&H @*(6A!yOR08'<ABUjo a1 #,*#J-9 r,ܚ~ &%m_RژA}2 ` %o%43<C Fq-:B&$#r$D =W7ws߁`)f00R^У N!-ߞ&I' Д[`$Tc(đGJn<7tAx;ώU'?ڛ]7Y&SNFk*+ N2._.v' !p Jt! 03b/.pK3 xw0B sD8T0R|DejN#T) aKf;F~Pm1zg( c$6 zЉ`7 7jn neiYJ5XD~4٢&EIg[`:@9 iRȢ> a751 "% z,%* ~ @ dP }Uh"S"# z xb!C +E r/YyOT)Th9!N FQRDv =Z e V t) T sp&VHR 5t8t Y5Q u$7D /&)eJ$ _.80@J-C)#\W Qy y@$sC') zA\l"|0-ܫ!5%L P3|_ 12"$GD)Pv!0$_z9# bQt/?7 IR]߽=F%ftSX 80= "N@# ކ/W_1v@F + /׏V"" %0Ciڴ2o16+6&fq:$8Kn.(;k r2:;.^)- kQ8 2 *JsA0Ӵ. XOdaR T ԮD]&kK CW Z1 n' Bt"JUAw$ v*נ)% @mU3!uQ @e 7&a!lI+*E$ lnM2 { |EpP6Op]H( )Ȗ"V56aBEe, gyKo'4"(H 553 xӝ4 8 P )ȯWa/k-@'C֔+RD.e&>6[O_ M~&i%J !H{fb()I.43?cx+ٔ2 -!~#FƢv+\ ` XQ N<~I+ѶF". 3 `̷#c$x| ]܁E@M xpv/;EJڹ %^bޥ8$ Pq: Wd1k"*4`/䣺 ߆I&U1'W!׸! s#+;\!-_ "GS /ڤ  =nLd l_ {PwK :ҹM*?#- J'  v0G EI3]%%9'![V+٘׏#6[ "4x7bWj0 1# R=WAg Vg20 3 $_q6D:*=+? V$ cbK"υ3)\g)֐qe An0pk "& "H^\%L}& h1ܚ  b#μt +)yK S_q 7#6"3oY@O(%'& APG gEDH5&`?pܨ*U_R*sPξ17fӶO0;&P< *8,lxo*] >&j.O # ]A܉Wa5I(- d' r@Э$! 1Fr 2 # u3<Kp; `~H} j&r   _%d9 ')SK]#pV)3ip:  e dvc\2;~0#  4`! Hޅ m&ݘ+ Qt}~(nSOY=ڿ" 6sP j8J+<w! 2  -(je2H1FN0#-h $'ov4MrG 'R*#ޅp: E '-ia&BD%0-n'* |m nVH$̸EIG?"=Y$+ߧɳ2jr 668!lRXIL;$%I[  p-"&]  ]& R *5˂d/,:$s#(#=B#!}p)8TL +\X(+[q_UA !iu `3 b_ô{8A%-P ( q-ڐ|ې*t D CjVaw: QBu #)V4 Ki>g]֫'"s$%u .? pͲ3 !hO'^iG>$ 3,3.ِߓ? !2%B9?'J"p5#Obݖ#3 <+o"Z :\>G @޺[ TP̨9D 8 !Sj`[ @ =@rGLb.T EVM6r_W  #j}5` 'hHN36` ֝ d'<D?$a1SW&  $I"_~l)D[._ n 2W#" R ++  "z'1G-# eWd8vBQ0zx"t lk NZ!:0b# )$ zan M'i y:I7%N !~KH4c"C(lN ,%JϢU @tEڸDwz(  WNP+Lͬ2;C,ӿy]4e^`"3:<Ķ=' M!`1E "ԙ-+%l8|  ڽ;%XPD VK|(ZTܷ:q'52 /8 9=.Vծo1!Jg21 9݁"NRI LE76#(6 ̲pe% k hs~p%:#fy l#j&N lk7ou4)Pz<  S/TR^*CI2` ƧuI5 :dزuj('f2F/G:Qq6#" W^7 ? A+Yq<[>}n25 ;qκ!n#^N/{34 < I : o[;"Ԣ=f/h@\""ۧ "Wy4q@_,fG5b Etyӥ Me);ѩ!D9R˿ A`)Dі."Umb # mJBK S'eZLl /1"9/!ЕPu.Yn*yդ'Od5j2(JLv/0W9E E A {=! p6%Q](P?4L .f iQ\(g  =Vx*ԋ&s.4Q[ FQ'lZ0OZv3Wl8}s 9dT3xlKC1?LQ?[*$Vtܯ\!F^)SQs cL'V)9,c؄Cx #n& "k (" Nh4 u Jc 848*E $t, +]-*;xՅ߄' OC>Rc9XFlO+J %,һ .[4a2+܏d4f$&86֮*' B\RD  s ##M7 }M,'5YRKGB iψбK J  OS5(b Yu&e|k7 o4Io) 60mn/N! > r]cv_ 22cߓsY)NN  (72{ y I YLC-%ӭ9+ &Df%hL : PZ^" ԈE+&?mMJ cS>ɰ .ެ@>  X dA *'^Qry#5UEٕ!6" d ?u  $J(; bqD ,'&МZ&ir {hCS ggN,m,r { ߴk pz !:z ] R  'G 1 c_ ')T#Rd:rK1]L*!.O,u}+ 0h% C#%qn'0a [5+#^ %8,O(o&Y$/ ag2ߞ i Gp;(&E)^4q8 y f _* {u ,&G ;4CKO=  [? ٖߊ-6d׻%b+1*y|\%%a:oC ;f,K ` +kY :|L>zqۨ *3+z Du!^Uړ!3#O .TA|Ӭd-)IxmZ; 43!_D* ~#@- YSAD;E~1) ` xi s0!5eC?K]p$(## 0т.8 .&$k]$l58/ߧ O9*s!׀ 9kw,6r:%C2I!!t9GZjń"(^ NDҾyB lD g|<9> 8: PӼ߂3 E } Ne!ulf@$"`'U.9 !; XԷfA b M+ W" $BK/N1 V <&4D7*]]\, SQ,+<Yݟ72*N) ݏ@ x=__߾ < u[-oޤ-r'KJT< \dLF99,U,Xż ,a {~ ۔%( M7D'[>Y02]i[]^:z6 [ Tf v3.nFyPbo*! YGU#4$٪vAz U|YtD"t} g(A0cT(#p)| lh(2heGdC T ho&+ 2$*-7pK kx&x U A #Ae|M<;&+ZD5! "=|1sWUA/8 /? GD -<ޓT t BҸOL"ꜳ8C,Oަa(sz pܽAb+%rղ8w"ZҏnU.8tݞ<+ lX{u !t4%C (\a)*öt(>l G2*W4Vh&suΐ4(}uQ݁ f1Bm$(UB& ktX_.N<  *͸{$[TBQj!D_cs> /'q"beZ M@ۏ._ED 5/q oqM4a)#J #&N𯸞NJ e:#N3T75ַԤC6(3ܟ _@ Sݔ$>vopfٸ/S  b !'a;ۡgf~LF0 w / ȁ)B $5+ NIM!HB'W) 8RVѡ |RE:9O#$rz*;y(% әJ ߂5 3 "n,REy8g?P P[1p ($* ٔ6AB~ e)MSլ>5 $~֖$wU K| 6.##an*eݕ߱A" )И " eX+7 '#pׯRc! 1Nj$ 4KB1a&&!W {OOƐp_- q"pM ( Տ%[" s 2*D, ' UZ&0$lW&G3$,:O< ;v -&S>_6'H ZI e $`v #: WZ!c&0G+"+;N;ht֞"$K:dJ ey]|b`&) Zt9$=$Aݡg) }DZow2&}(?## z?  % : 8Y("<`mi0鉿}(xY7G5~Xڏ" $d ~,:G Y8r*ƿS,2@o$ގ&-#B}~ >jؚ5nH'۞ 1 !>}b6N>hvb ;&  Eی$m7"s4+~52#8 AV<@ *z ,* l4 1?*h( "  mk)h#  /"3WAr*q$޲V |@ 'Wu21 )X=#2F " :9Evz> ܝ.Df@ $ /u6,%;,96. idfp$1>N;bvs0*BI ޮ-?%Mx \ u]6 ~ !v9;`prU0 3 # ~5'|Ud O2Z x"(/Bu'i { f~&2~eMe *`Jn$<v# .wؐ3<g~/R!mܨsL | lfB Pkr K D1&  Uc!JX !% ;h2W;p݌a>\-/-o px2v!$K-M4 LR};^38a*'&6$V$s !Y# K*JxEߞ^)K'  ]Ø=Wt{ ڿ%* ;7Jkv΃rB*8"%O;c܏*I fٝ-F3 TǎO]Vzk+l*Ai WbyA" 'qCt/" l )/t/;Ki-b"@k<[$grJ- `&6Od wpR ?# DR~[] (P: _ /*pC  |p$U?#"  -W҈ w#2g2陻~t'?"Xהe"3"˳}EB{,I mjn B\ fzDa|%f  {K/? <p,)/,a@!D w޾ӥ;|JkFVsCh &8Fx. lf`!#"A  9#j4Hc.}u̜`#&q:+|- ) -!VQu;91%#rHG vpeܫ#Je' 9?  '7? Gp q562ٰ z" ُ*!.QT<+8hF ")R;*,/o mX;` ض 5 yxR͎"xd #9!#j b(Y&| +W[:A,p4"k j߆-,s +sc5I$:qk1 s@J% T~4<](f-rU̷y#%,\ R2޻V&.!^VaXՆY vQ>ۨg.& kM0*0 Hн:%'7hR׈?"L*/oa  ~ j"_}Zi 9r% \!bt\  OԔ!,a z  7=غ04G *Dlbx / `~ &f#=l N)2(f_#t-< " 9n-k&  X;Wx@A 4$I4xO\X BXx!(3=^Z 5`0Z+ۊ-:9 Q((*0(= 3H F >k"%a$Ki%P> ܤC0 +<YW<y!  6:qc&  eI! a<VQ O N2xڵvl){+*{.^:C'\ 0߳ -1HjZ0/$cEx@"GL "~6%Y4^ .fd @V /)d\B0e"K$q1 D`у%"$4ZO  o"v- Z'&^y2W`#f:qon%8 4ݘogα|^JFcϨM/gT ~ u \[ * !~U  nS2 /H#C rf,Z zs  c t 3$4 ` m{12pǎs\[[*S ӝT(]-iXc!K '!/xQ h 3%_MS~# *> C $+ 1d.{0'!GДB (C%ew-(2D(c p* [5N Z!+q >>f!!+1')o!^H,ޡ0 Xz7Z Nn!Z$ G:)i>my P4.\v !x#k*8<ΈH3Oe #% 0! :a ޫ~ (Z3Zȟ)N+mؗU'l] kـ=T! ?"<.SӚg&l(zځ$I{JB^*%rc& VH Ltڷy4!C !"9 t:: To$- %-렼{ 48)Kٶ"SCcK8"s&8#Qi+3d'?' (ǁW/@2b3 ^ӻ9l$#9No ކ'z*8_ܸy xv'넻!*( ,4&Gǫ49Y- O l&'ڨLw1JQ9^~3**Q{7T COLM0.H$#ͪ;C#6["w/0nf &Z%,(눤ùx*d~8b:1ݵ[03cVhg FWJZNP ]#v$!#R\;#' s ,1, S Hi$SUrX NA'u6q\N7  ~<{@K Ʀ3aiMe $c V G#$=2س9~]]ֆ"]ۗ?0DUz Kzy8VA} ' ߍ[:Q_Rn^.CD^ d`J ^r?U;(Q(d",-ND ʓ[ !Y : OCg eܚu WgG! :%2 ܱgk#!3P65p d,kbY! R _40ݗ1 |tsd**!,#_q0]3.\ w"r/+p B \$G2P؋ lEV?!_Jx.<wND+@#w * h", qM ^ `Qb'DbW^") %)W#+L 2'F ]zFO-x ʿ,B(c @h E| H >8*)n-5G[ 8X%5./ %m$,Iz<)?C pZ{t'&]ڑ#rdP ws+79 M2  M#;7<3,jyt/ [.(*!p` Bj %'۠z8{>#T_>X8C "s4 /B&1}-s%! 7ش(: 3rɻR OT&֙Y٣U!!I1 v,+1-8<'8=9 &Y J*L ;!*K FM!۹/`~.4(g l"r R}թ5?{ 9"n*eq2R %,~ +-q$ !X:T S D(O-yߏ WߣckԻ ݅>x  \Ԣ %m^4Q K pR2*\/?;#.30 >3!DŽ.#K;M :b8,F_"p5*?a8[!o%]p~y `Y,O%YA  U?ia(A՗ v%gٔ >O)o rM@#B EP F**ʉ l.3+B!o V y'6ABH&"Y eRx $Q%wY ]Q / :+F dg uj=f3Z1Y n eг0s 9 o*< @:-~[ ht(g-6'?- ` `ۗ h g d I'{+X [X(.8Jf3í(YcdL4<3׾"sؓ/"(*D*' 0Q.tg}P#ZpR6N9f>2(+se  }/LgR^\0|? I $XR3`: *K8 oڗ# Z/ >_֦k!S-n G ( p: ?3U $0&,n ?A+OL [ 9M&1Fjq9 RD+ 9F#-+;"#mXsjKrD Oi !i tv rS9]N R0 7d [5=Ggޟv$ &)T! ܚ7;}#:$UONPh(b5 H3c Uh b0j5v))\r ilwx!c e L-:G(  fC(,+D?cg+S &-Qcpl,Kn%:L6iH$ּ $5g : D +O$/ג *9&% "P@@k HP8AݼOk+Kd A * =_^UR^ .f2KyABs3c*vDŞBD ( V n\7tzMB9Φ& ,q5l rL%''c.-{ k.  jdU `z = S 7j36@MѶ]}2ݽi*5 Ym {9m`ajw Cz( Ne*݊ .keRCvB(#+]jE1*V۹!{2,WZ,vv3: l!:&y|ao#EJp-=a3TP/'iԂjT$?TK,( ^3w ,N TF1@n  J(| ԡ()%V!c Q$<40=BC؄7 T:`q 04! tީe%oޥ&&~ }> <I$ d؅`\or nCۻ M277h78Ґg+?$~ & *,))ߩ 235ZhQ#0= $P %K8cT: =ĕkI< M d1})c:_D;o W8: 3r g΋"CV'S'p{?&:ٓ$ ,QWg A=0Q 2 <{A " 1P;"R #B <7*9YH$= @2Aؗ:(\> L! zbܲ9 NNIBpY6k!O ! NTe1"ށ ,G٧[7 Hx5M  5{2'wK `+!K:ѱh' ;h$0dg\Y  W/ / ;ٲAr AJt5^> y @  $fl)1a VOCsRh."$L֟D7;zf) M G{DP h=^;(9r c |g- 3j Tȯ40 ץ"?g!vِ/ )Ђ2,w9~JݑM 17.}И0 I+ !e2! sZ#O&TXx Ԟ"9IO}=1c`" ] g6M jڳS/O]W}-䍸Sn.Oa-(g(C}1B"$:(--6,Qq~/ փ'xU R yُ{"*kL%&Dh:%_ }- ޿, iT+Ck 4,z B*v':41%&N@l@r q0{ A$o={Έ;&u!g C!H6$*' UBj#")7q!SG#981n 7$]ܻͧ CT.+! ަ B( F+̓$D E U,& q4F?  (&}**NQ ^z zctGayx" cM& ߝ|;c6yWBkFM> VT} t ~X ۡ s& Yf*m[jߠw' (4&jCz N#40z8 Eյ-  r [ݢ7 g i &Q_J$&P!= Ea bۜeu L@P!<:> L0 mr' lkga!N_F#Ws9! N T.@'8ֽD*fK&?L4 "foٻϥ$-96*5ȴ PḒ{)!1:6p1K9 z)hZ bUQ-)S yUG%X 6XJU[!*R1M;Ī{ *I0; c52|c%mr /|**n~  #8 S:R ,'[d {ŪfX p(n-; c  55~@$[/ & *ʀm {-A2dK(+* b!r'2'.¿1#".I N"@J)B#$ c a. _E ڻJ1Tb[9'ӡ5l$>)$_74 0 ڛUD 0u M03ߘh *jɳ.H'2mX) EMA*(B>2 .zK ,dB7 T=aFt՞51.$u{b:i!1|] +DKo ~m*B K%y/^>2F `N ~W @#ْ e4e V Ztrj {9 fa$LlH/nV! g"fWs40DEھ;//ߟ "jLGiy5bɟT [aHЪ 6lȒק 0e(e.2E  u@` @%U8@}Ggf[NQmq0 ^ /yg /8#&zVH&G,V2H,)/i :2&#  !L;c < o2&8haIu _+ (S3'fۦL0 $V= q*Dj9 '8- u  &<2+0c /*۪2##):L F <jڷ&DKK-nA½I%D ;/!7 ~l \ &ϝ2<- C ,T : !#*هG/rn٫z(F7qn@{^ 쿯5Fv 3}%  !j}A7I4A<K"&G3R 2~%;d =i (Z0Nq1q Pu2)k)!G*ltSo M I״s bx N, Fye:V"WW w(0GY 1EPd>  ]CHJ% Ja7 qQe R a N# 3# ?s:,f ( 8 )N1Y3 iΝ/'3 kI?i;  q U'wP167[(,5(ɩqʹILa -"Dۅh&.] Gugh )?-&.,V()rU 3% Agm}lZpREpa S-q \ %9hkvKuHDK4;dI*1{" ?$Hq]I@ :2L G?8 e  BbJEԒ? % <PiBAES J*:Aahϵֹ2 Z1! v9Ke(G1hPsl1: 'E[܏8fټpFD-ߴuܠ !]`  Oߗ %I(!Bqډ .bͩ0M|[j6r _"S  U(*/ ӣs(j ʯ9/ d4N6Ϻ~3?] ]t e)Y=.+fy 'M2mW"H%DCe3:&)́|=z&*TЗ : hzZېc|w&{΅U yNf. L{1+Num0ps  7{^Wٖ) J7izA//@gM- H>3%)t A@@߮b#'T=4uXpZn *ky <)eǖ+C XbtH1Oii`B^ GI% `r)!)-ݻ!V(9!g)2˩;(&"L 7W27V6B=zzxT t"6ܬV  #i#Xz j^% @ܘͲ! f//G/d Ӿ:nl++S%үDmC4n6[ GE  YUyi}Y 4 $sޟrE  G/ ]ۮA1!b. Qe/ڻ1 6 7K )8)|ZQ:ӪŖ n[z -!\<[O 'Ҕ .  `-m0"VQeݧ;.>[%, NOY)|  (Έ$>'1%\ 8*w84=;h¯+<( CebMy m--")6RX)aUB kؠuZڙ2.e [ήgE+3#۴ P*A ')rUq , P9$%P8Z5_<31%*Dr&j /D5)$?|" FNW 5Iyݶm91 >/ "*.5D -q!B{s _ow 8 * ބb)f B4t 8*V  8=7!=1\Ae o Q֧a.El\*i(@.d<'m8L-]u W7L=J.* ]@$T[(vL~}U:d NE7ja+*%[%e6F%;ӹЃ /  |" _ D=y% }! I ן+0 ;*/ܺ)0H rc{~5m"v =k2wv"cER'8xeaP+$.`zR Ho; (86)8c,Hy-=jb t,ܟ,-#ၹF2Q/zj+110 |U)Y#ge/lR %mN- vKCIQ?H+^8o4qڗ_codec2-1.0.1/doc/modem_codec_frame_design.ods000066400000000000000000000654471412132000500210710ustar00rootroot00000000000000PK@Rl9..mimetypeapplication/vnd.oasis.opendocument.spreadsheetPK@Rzl++Thumbnails/thumbnail.pngPNG  IHDRʼn7PLTE     %'!*'8 ( %"" 0.%9'&&(&+4,196*":3,88:-A%-@&6H*>P7@CRgB,G2K7%C<:Q<'B=BIA8|W 4μl7Eh ^xQmDo^ɖA(/_[$=x"y> }O#QN.drQHW_>-v1ӿ$V^Qz xՇqɇ|zo2*z/c?N%/xMtHTf͜_@"6Bߥ*++懚Gs7ҭQú[Ts=QޝQ T<$FlBy:g=\Y>ҧJr'՘ ;KTLuI"z+|bR(& OGQBV:Q,XIfQlq+$/$f죌K Z+26 DD<,|jGC6FMu>xA7(uھT;$!N@ ZL<.Xba# -26C -Ej|XIOq$3!5h鸑Ȍ(*qΝC3-`oͭ} ]#fn[Τ(|i9pBNqq=Nt"iD5yFxk6N#B3Z/xggY fÂ1 b,a9?jO"?7Q#Oio )͒,oUՃf᝷q?"سK|ٓa(wg PolBpl}=~V.9 b~M]:ڢKl)rUVuc]5x9S2"rOq<_:t(#E)6)䎋LXs-k.LkYD L%lUICX0"AL`;]{B7-vJ[O5B%k[T& w( ~8=Ć.3֭g2 б@ lj=^~L!r췒oDkBjO!cZ-IyS2)iD`A$аHii:%䘋q[rIrPɄfIqKD/6A0\y?_CJ|ZU^f6ڝɊldkʫ,ՐkJڷ]\14:) oO罨.j+)o c1 l I#Dvf(-C| GƅRHEx&e"I .Fofzu<05&5 .9ےDbV| oj@(d?J| 0.y26A*?UBeZ!|ޔM)5k&{bs}]j[Nv7LW^}xk%[[;5_>!=N{==eϱQ#O4  >2]  7`I` DSeı"MW~$>&BSD%|#"q@A DXm'>$FL򒝜C0qt}m4H#B}pDI,,%rɽݙ܎;*\) Χ%><(HFMơPã?X $ %kQt/`W1ul5 ;_-#YrE.pT7PHw(V22{Ϻj)7è¶4AI58ud̃G_rSK5PSIE ,)ÇնWN;>{琵'eLS;FڪmZ%d4ED5ɑVuIWzDx kVfMlĂˆ+=]v k*i+Jq)M{Fȟ*R\0.y0/ƒȑnX$G@!N!8 beҤ ;Cdr02W9Hu5]qlbIڀ6 [e뼋j\2Ƈ JѓC}cdSa1*uqJOol`5Yk}Cѫi ]Uy#5Ńbg.R@8{zzX_?>+ {0}ipqT-s/}kϏʽ<)Wn;EH l/e.A ;:RAw 3xO%W·fƳ;-oHuH2؞ED54'Sߒ};sfY|j-lwx IQTc Kݛb?:r)S`*Xdgor92Té. q`R%jj~' ŰÌ($ɇ[V$I$&c,ttk,wjN" >ȭ"`ՠB1H 3"9sFQ IFы.& FPd-fBrf Hui /PۇETn{WrYǂgtm}/~='Zf D\ Oq *Ç0 {9t8= É,6n{ !n( D|2ғ{SyTM4^xy)MB=f$@$a)v-}K"+o-a3?+6Zijj/B$#)Ytaɨ*p.oWTQ[n06.EDKwD=f??AY7 ]atg&[mk^Yzٻ|n}`s+!ɵθs߿ Z @ P@meF9!67LfD~hf(LipB.\[$I%#E9DEcZp-mFTlk_`d`N_cnuvΠ?1x ~xꔍb P~ӨK`k{=L&L6%¦HʟA[6R :aA+㭚Q!(9G&a:B@8zke#c{蝉F >Pg\s%|)PPKӾr\;00`q9qj,8b|=f-;tk<~ xY{t]Tw1ul3$'@LqF17X^7U`mn"Dz>tH:ť%9{dhEB,֑‘۲V؏Rګ14<k;|iY{J 5Xy> fqmC]2W]{ |rv(By]U' t}tJ[aM@u#^ҒXk[^MXCC9Q灵;" c ux:.ezXT-Tޡ3]F\xnϞ"]~|y׏K~q Kԛ-SӶ)lOۊo{ Q*Vn*alaBHm7Cb>E+ل2QWMv",EdiĀp]bgS¥L9&aLG6*MfB~ {V޳ؙdžsK۱Q9!@Z$_'>퐮%c[]cǹZH *"Flm6_*B<71wbµR򊬕v#U}bxTQy7x8D95Uo-{gjQ8ۧ^GIe͜]V*gT, gn@Sm]+{@ϝdz[#?h4qKN>Tq鵲L:bk61 BcV7OwM4C$| ![JM8x1"d;g s^dіF*6[0Kt7!rL*N>p$k aRK `Mkٺԙ/b+miؓPС/Dr)^LvSS ,;_Zjscv'֟]rJ=RiE@P>".o8x5 oQ~S8BacSkaQG4AFfyza;Kv fÂ1 b, rKh"\O}T%u 0yxszv"õUV3h> y.'yog;/o~N[*V.}Ǐr(Q?_??6~h?/?}y س?~xȂYsN,7x!Fͬ?sPϟ^`hĦ5-]'QYeJbrw7N>\ϟDlE~vQ᪱ y ǛX̨Q@PWzlԮ!e+FYqo@[@?Ұ-\w4 =B׌0k&.aێSN084c>z/_nL=es4$PLe >jҙ8.'e;zˋUܮF؝YלkrdLkr5I=l"f`fT{' G.G.֌mAr%kˉ<]_Rـ kie<˛ z۽T[LHҹR+\1]ZF85a?َOjmTSH $ψ$yV,ۆ^^M>G&p'dP^.62YVldpєg'KQ7pU.VM~د؅EU/IЙf D;2\g~oo)vc[| Eq&k:[1-!aGCgf*(7 % 5 3S>͆&EI$Ucb)+ r2tm|J $/Y5vlhT2]p!(SRxeSJޝڶMcIhtQn)9j} v8/v_>(G\vJS~i4GfN-Mȇ7 cŎdb`YrYʺǒb {*.[`t)?]„5J- ݱ!:DL,:ƨdS%`Yx PqrlU[Ek2jϤe>N ]:B2tQW&J }UQUyL]+ˑIeϜ]2*< =kR o۾漓޼ߴx|ӄmA|';[\EX๾j1vQ94tэKBQB;8)]IbybW=PI>!p\&1FORP/Zxf%_ CO!|HɤmqpFeo۩chs8QYrP >8Н,_ސ]YI(SӱڗJ~ELHj۝f-'J$W#v^!]M &9E ū ! >˶1  y@֡Uz{!"7g400ZÕx]!o?ؘ`8-y;Av' ;ōO vd{ Qb.1=  "[`?'Q!vo3dPԞ!vU ԐRi?BoΈID$r|P覺x!\8!6bH=%f_\^uɊx#Ĩ|ӁQ!QPu7!q[lI2@iҸҮtd@O`5RNݙ82SZ] X1V_")6'XkZ|)NsrjkXBJAN"Z%SWjˮa B) >SiX^Vj0iaAIe 0Džo 1bJIޮB r ظ#]L&2a>+2 Y$q#^*6b4 6j _gS/9LT[lAְN֋_H-DYt]|9 +wIENDB`PK@RConfigurations2/statusbar/PK@RConfigurations2/popupmenu/PK@R'Configurations2/accelerator/current.xmlPKPK@RConfigurations2/progressbar/PK@RConfigurations2/menubar/PK@RConfigurations2/toolpanel/PK@RConfigurations2/toolbar/PK@RConfigurations2/images/Bitmaps/PK@RConfigurations2/floater/PK@Rmeta.xmlKo ~َTUUZ)Sn60~N',;sv1"0Rc> W piD߂vW{Uw|Y*Qo57u::7'Л_|Zst B#ayyuCp63%0^W2\&|)=Fd裕5ȆdlX?+#oTm;ըPlGS<}II\B Ziic5J(, Tnx,{;U} ?X90^z@W/4ncuu$>S?{P?d>+`G(m݇^5k̿KزsJxCX^eh4ͦ%i0m:E*ȋ"/PK{SPK@R styles.xmlZmo6_a(C%InEMQtD\)Q(;ߑ[MhsGH6=a 3Y"%Ws1 :baLqVu)yf :C)."\gh]GPE9jukoTcmآ#+p:0XbAӺy̦ԍ4GXR}8;!a9g"TTc O8Of8*b*>l#r|C9j>]n/u/P>=.tJ c0T~[WcGI CɂIYD\Q pb;d'6Tїx:MaO2CoczNRBL+<88H [BňҰt ;8!75gJ%<ʜ fh IM8HʙvW~ʚ=[}üv0VqU߹m,7J7ߟ?[=8Q7~`.GR \axVy8= FsS宸9 ji%|Cx+T+ tPCljaBf{ |s]M2^G q[0q7Gt\;dvQ1j@xȼ6NB_P-%"i~9}u<HQa]QzM+gc[a۫KX-ZaA4;/XK ib|jm UCQ ^GcҾqQvQT|eJB_*nOZA#6BjrP!Z`O]l}S_3C8=Zzy立`X/kk'ݗi" ԍvGe_PKBeR w#PK@R manifest.rdf͓n0 ˾GE.4y|9 M .K.&6(Y`a>5?ENF$!J ptII /O yN 8)!'B5cH_ӵ9-pZi8+|L@A-$AYgOd痯$u3'N H83b|R̐^ sbAb߈W > G.Ly8+ 6u9ے8ٱC%3211#$]1M :=h{I.tӿ_k ViT ttgRrR@%>-+gm҅D7Xa UFH:aݒ.U@($l=m&A9Wt!1>2T?6E.ހV>lE+xYO^{'<Ho>=zGN3#S'N!cf6}dȴe h`QT1I#ܒ;!X=Ƞ>8P&!<0(c o+Pq]{#Ы9Y8xy^V" jWhМhQe mtu|wzOnpd@Qn=h=UmWyh_QZԪ̺~uR5aUeTZ0\mr['Ze.REw|qÁꎥsWWf9Pןj73&:iqpDL|wE#QSHe3'ߜ%TU[qCZڦ6ΨΨK߶eǏܡԓ[UX cVe:vi6t \a^ ]I˅YqK@](UU4KV6MTۏ^*5륖Ϙ_Us =s/GԤsٛa:V^ʕ.P2Mhꃷ@3a?bb~Eͽ?grl*29T*7m6T?{\aGwZSeq7yѠ㦳i7~z=.'ѕS,Rku=Q4ng: Uw&ݒ)H۵3YQC%BM7;A+; hmp;-z5a\D$`'^O?u0Ip931!B؟EqO̐_bj|lt:)V(MpP,ĽnMOӝ'mr^*xۧa4=d3?-wB=a'l}OҟDQo`fLWzۍxz87|hc Cw<_L$;{?$ϟ2_VdN`U>!4MɟYyx=OVM$k-fA: ڍ}C{}{X+mxt1Q)o|+Mr-`Уِ\ ˲qR|,z^ͰTq2ίbֻW/5 sL.OxmGi̹lُg⹧(SϮf昢ӡ]a&"szjE.׎{fx0ɔJ)HNO1^W}Kk j]9r{K IMo 1DwCgewr7ݼ "{ QSXG-z C5l1=s=K܍WQLm^A^>vpb/?ouzk^O|nƿ?iV ~c2stN$Ml hgnf}W:x w4Jfm")hݰ ZfA&n8?;!n6C7W|ENusonX YnZRkI%|?&W/_ s ޲Wwٜd};SqIf,X$'[k -Mi]?,fs?VLxfIǚ&=O=W[ i<%U<ʗT ό-$f9¦29۝̞&ie~3{~Ue*_Ne_yϚ>oplcfn0neLp!#ڡp&)-t%O6*H7Dl `3]'˳,ۇZ#%x"}-4@u3o&!aH`nS]d Q*$J)cBkYMyg«}v ϟM}i\[9D1Q(-IEFt>}Kاaf 6c؋ьa{roԮ[cg >hp](KWd5ֶh˹;t(:fj\7Qn,eſ[$XnvrԽ?-b= u|(&"C3? \Cfc~+8fȷTe8EcEp$^1fTlm_ǬI^MUt|" ߓMRm)լ -b7L> S"1VP3* /g0a/cF|Ui0'z2Np b2U4;D՜8[)B;@Xk(;3Gu* bb'J>T,o  Ҹ":JSRl̈ϸ*)U;1|2h`K %Ϸa5wOMbO'T~1S JVp̐s]YEp̈,*_DgQfW1|"W)lɠ!&*\(UaM7?g;6gɑt:PᲳd Q> *1\̮Q`]!LD2C*L#IdIITnj.|Nc/ͤa\G6Rl h{DjbVYey.&᤿Pԝ&2?GfJw\LJ8)v54 iMjTQҊ7!C/0Ovlkum NBR\dJY^227hN/ƙCv +7(k[H(Ұkdx}QG{Qd u+~!h\ũ$J x?}i("i?w 4jklbs]3mMבA3Dz5ODہWe(B_3ͫ#RJQ4+nUc%($ Re$lXe׈*gw5!)ئxa-HQGd!lp&jSޔG:46 (Ӗ46+-N @3_ X'J-9@ۛW1j_B퀨}IaZ-rIWH}\EPަVf7c A^"[7(>j Q%N !j\rڸAp WSHp 0E tw:=hy]q&.H$w|MpAH},KM{ʋr`셼ؖY^ӯ.v_ HHS͙ьyvbBY&j*'0i('M.4.NNź*\ܸd:W=_aQRUOU ٩*㞅 NqNE16n75)\:ON̏;LXUqCOIoS%?&R")ap'BAD`17նnk(]W?\B;Kєk}p0{$3&4K_t_4lm+\n0 E[e#b *g [0g3l&z=%x 7YVYG#m,阄eZ冡+8@q'1,PR%C%e(%q |KYHbBDSut) "Y̰T6sڏݑ[%礪VUJdIn+~Ss,.bؼU `ƒh ƶx!I\uг:lSF$jlV T> :4RLIAXKƱNΔ@U^EdOk+8`{=fg@ 20UH؅Q,ⷙO2Q&SEqt)"0=t[YqKL*S3?װG0c[M d0!b;3nk23a$m!A')CHESH.)Sw7Ah`Yy|wMpہRY );|gT 9򞬥szB#5:\2,Nֺ,j$ʰ͚@ j'H%)DH7Hdzz5 JlbW0/0"SJFJ⇞⻃1x19d9h;:xbP)(rnwl^OqϔyB]l%I%3bFtdx6涏?e'Z[݄ mPƴ;S(m{YA:cSCee%<8t1xY?"^oܴ;:f)!(JX;6,j[\:;(e/_e"c۴ɗHPraE u.(Ydħnf`u Xu݂eݏ;^EFcqmn.6 &IbHbUGf86'b͋$|jhr'f{ ̘ T 7Q]_ǍګEj ,mĝc9+O мbzoG@~d8[|^Y{};h*~H*e2 Snk(ESJ͇_ϔ$R)Iҟo~z ͙6 XTU-JgT)/euP4\TY (Fb2vM0O!PLKs+_ }N|}W죲兏$|R6Tg%U 5SHnDӂ38i+Bk/ĝV ^:;{47"Gf'6 TGN]K_]4:S"56Pm#յ$eəP!*?0(JPuco^M&rN~ĺ,OffIfIYb))(-EBHl]].aTa.a%JG@|"UԀ2(xBÙHٰkJ*8qgX]31V(|3q?Elr% 97ficyZˋC)ZIu͔P(*^_]'&Z92!Ba ImASܣ4T_&|JgB<߃(L$M"$U\Nfk< ?F1ֺ5sDVzV]35!g ޽`ٗNJ4xŌ`F(pmb##Wt0MpQNMve* $ f;kMp=*ja.@_PVaCrx1%;Lܚ~e_@ic:@vl0y蜣C?ؽ$3Z{Xܐ5Mn,%![w %qr[m<\fo*MlEMrRҩy03^]S% 'wXSD>A Ryx>jE[ąˎ@9şz!ʍ?kajh|01WwBt)+ipoKf-h Pt%#\uGxg ZZK RuJnxl` %0a` :8a&pÎ >h?7nh*DD;Y&o><+1 娎#̈́P NecA,;*!tLxKX/Iv 6@6 >#j^Fe D"4dO, 3 bGxP M) R%.H!A$.#" !g" %.HLK\ ’$,yDfu ,#/P &Fb%BX(Ga/V,"DȄ|sN$ C ^jX)b+ `*b|a|mG1Fzq Vbr=:.r 8)68}v,0o! Vw䂥BH.З GCw*(Kz|5t_=FČPZO3{@i?ڐA+>,hgxP`8p+QIK<}bWJ֯x=\p+,Y;YC͙/ h8ϯfo媸`1}Z.⎗ n'Ft+Ax#iI2Tn% *݊%AM<7nn3.%ķV[HE©Pyu`E\&\ep0BGi:wͿ*$"2ϹEf^%_qSՃ"ys4&:MEcBdC]7x hpVP,j%%=đv4-ŲDAYAN}yHDʛ:J>DdNSL C:IJ>XM Cmd[cZ_r:c:Mͺ>LaRbQ)<^ݖ#}a53>cLe !>D>qE|&sPdAJ#~Cn CPb[b~kq:o[~Kԏ#Q?ʣ[[n07QoQGaenT U*qPsk2$])¶ )1K" %HLb~HLHU+#{(3gUc7"e`"@Dp h9|kQک.O%HY¼_%Dz-HKT.y* ؛ #,[!AFpl!:ԋ2.ƽ)B>K^+EwC}8y^aij_3RYftce\! 6b[I~⨅5~5Ћ݅_qupx!B>!}L,Gq )f4oOU G {d%&@*'N=aNK@0a V\g7t@G7C ny9ᇏM^mfC}D8?2 ^.9!ѵaG2d[px@>;_)O=aQDГ-}v"hW` OpM 9To 4<^B6|ſuNiBE]2oqB)BͻgCv.;fR~gf)nEcX)oqGxd,}FiPJ00OVIZv, i ubi@NX@9N pѫd$ c+T%!ipC,6,[eN]6Q`D5~<Q=Chܸ,Z<"~;K:?$ZVKat$^{A,qOY%A"h4$DX"hT=pUk& ZP1L9N#k׷IXe52$T;ȶij6_8w9:I>b<^ 1;p DZ Ke/5{q(=O"쪴K߮A۳U{9^Rxה_{5S~Lތep`7J:']d+3ƙ}J)uAP@XVa@Xx! p{,}m8+O8%aa%UW)Եzh~əRJxSX~=7MvgAf)`:N]%ae)L\a@XVV + Q=ν.t{i4}a @oV @XѨONX@XGaE++TTa/,@X 5FaWOFX! xEq@X,;Jy#T8Mh`.!Xj?sEX1Q)㍰R͂ 8f܍Vr;qvn+`c'TV(yk'+ Za%d3Ҝpa%4܆o _ ciXLh4=ŠEׄ+dHxWg|g L}*&s?^>hq>6k|%='}VXj‚sȱ6+6U+g7+#ʹ5AXFJ,h0=_ aa4Q3F<+Phy6bNaECqhyy%Ra8炭74Va=grysҤ ,\C(&dXkA#q 0='M뺻8ؘP_Mae i( y{NzʊUl^ +QJ4?p~{Oi(WTRJMڨ+ۏsɻ> 舛j̈́M%yR<ޯ7>~B1h<\ljү/hdSaYXz0W_H^˷ۇ6#6bv+05ii4J5<=gu@X7X]W^ :52.+z +x揰Y m#4yXXG`"pbC0;V7VW@XhU V;Z6'VLϳ|zi|Š qL+Qε,0! V]m5+BQt͗)I%%5E3wSUmI/F-IaE7fj 'XŸ9Ha;}vV o bÊ͋žq3녲B5M"3EX1X1Š q\XVa@Xa@X$ p^ 5+E4PM n(գ*Y 3 X9659 ;Zz1~ hOcf0+Ԩ:zNX+6bTX)|1ku!TPZ]j|Vla>ߘSͅl+TsT&V4+`܅j!JKL-JH]0V,@ 06 0a4)Psυ$} aMVVfŠK`"f9+  `B@V^+& `3@X(+ ðXhx+/_A#q@XLFuwA#q pZX O<G &hWU_ZJɨzzh~əRJxSX~=7MvgAf)`:N%ۧTXY k#q@X\I@XaCvVa@XVa@Xa@XaV}~ + gq B -+ +p  + + + + + + [j2 ?8 < *8P1}1h:+x0cSu=+@h/h̯<;+/^ꨎjcya2mO#WV2u7՞uO)-{VF. +g=VYk꩖yַ:MTzߖ]:p꘯jw~کc=+h--5d]-AE-{1yŠ:]GQȗU A45D{,lDZ~\Á&+:5yԳ]Y^NOs;}b|6}(RHy|rwf|T~!{Va@Xa@Xaל PYIENDB`codec2-1.0.1/doc/test_datac1_006_scatter.png000066400000000000000000001167361412132000500204330ustar00rootroot00000000000000PNG  IHDR^ bKGD pHYs  tIME   IDATxodU?~:l,D{5DI2MWoi4W!/ .(I +l5tw2f]0a] f 0/νuGGu'LLZ LI^q=St q ?=??;;?g޽K>(=DD//O=WBN׋7үگ211dq''sۿ=C?Cϔ9O='" >99qrzի!,+}~__W~G~~:/2򕯤{?ߥp^1""z饗_%{ky&&&&&s+??JyӯO??OW\ۿ%" .SO=Ekkkw)h-z{CI{cU)oo~Kadʲb&&&&&&湚eiuX?gy._lwĤޱc2}yG \SOoM#|٘YFÇ*T'J,,lbbbbbҲ.vLLLL^r{>&K+9w/Ӆ 'K-?]9dֺI{>&l={B &jbbbbr bdU1[dZr4p011Hy׾>j`:_f^ɤre'k}&&&&&&s*ɞ>y&o??GyLhow̋511YMLLLB[g4#71111p5i(40F+BΗ25i*u# &&&K',Sj}4嗽"T&i+111p51d U8enFZq<ϩ119Kr4ۅ.%jRX̏Xd#y ̭cƾ\ MNjzkU[&1k>.X:ֶLa9jqνD3gb~KUX,ay=yc5p5Xk톜RBX!6YE"|ZM&i4Rw]1k'"IGkZFK+mlAF{!9uZE|lF6 T"|%zu :hX"P \C-#0X7>{})zj{8ƽx{Zh5~zk]̋5p=ӂRDw&b\bYxн]ؤFi=Zvh5y=L'kyZ \V4Ot!I NQ66 mYk1NƜ" |/[>cgv{K{4jS wۅ2g:Rl" yvAꆪqsO3̠ aZgE0Lw}hjH3 wVicqyҋ504p]zISF(SbHL Img膯C#O3*c4r}˿~.kbjPbXoܸmr28RsSmhu7:kFKv5mgk( gk\w}wQ֧ys/Mr%ZRCX_`rO1g58F۬o#F ۹R.5POIb3tB'6lE;GR{caԽJifG? P(]F/iifhCacOiA=i:ֽ1X,KܿYls?2LGd`H=! E>I7myRfq ;w5VUYA/80bC{Byevn8cSfFu/S)wVigkթŪd<%Zv}\CtGp$d`H=36g빍GzrPd*y-'įA:JRV#?GdKQ-\7^2GB=H+O%?_xt76;K΄l *낙km72OtHʐr4⦲}$ǬA0Z] ޓT2˒h{;/0O"9Z*iO&rZF, _.{`-r$;F**F $0Uweo),uLꆧm|I]8BSr*${Xb*c<'o8\NN c$lKDi.Xg͋51p"p~lQEʵ'~]*/οpWCGEJ~R )>G! :*!P@cCϣFhx)soII={P],PbZ^SobƲ8xvksG T*BS\IvQ_vN{ZlQSt}9tq9aV\.ш,#F]^qSUY_Q^)"FgO6;t}Q0qjrR\ ;Q*7vOD9w[05ZK7bϽpFպEՊ0\J+׮!WՂ$mcEl֌ xIOKA Ef^{8rn f2U3s~/Fи,G[ULaHϷId$YrD{٥բNi+EK8A˟2"@K&zkwM AS=~/΅Ey1 ]Yڳ N"2G_-bg{Lb0FڸXbJǷs'uEK&SS)|!2AFt@E(s (0EOaaYzdkfA)ᰰsTX).SEQ63mǨl*Gh4⿖%Oˑߥyow868H#>K=zRHaޣhj@W՘R;? 2ڽ6t,eR%iՅx1O+YvB.H) A5ؚa;v+|pQj3 &Dzkݢ:.[n^iF#{cP)EĈV}9yՐ:a 5q'<蒉kcEl>goL[Ah*sCd>/7Sbk`Ht@jO,9 /l0w׳=Vq-YrHfZض :Iw"51kQEm4f%|`V;8GHuY JlJFmIg )nts̓^WYFP#4F 'JWFcXwR=Pud W~껟:~G f]$L^2ET 9'WY`U2h=0.*eڼ!Sis FV[]'l92o:S-N(HJn% QIqt>Km<ĺH4.pܟzΣї*?U @Uz5RSz؟}* \Ue+C!=PxTcHݐ[yeNV~6xjlUؽ6,@Y+=:3\gŐ#&Q. /u!3N{ _~OzSI?\ʉ컕Zu|Ui+ucki&~~Xut|M6 5pm{Ѭ]MW$Z*6ՇUnU0$?Q[x%?qR (gG[!y*A $c@,>bw)5b|EeUɆ_GX_wnY:&&XlԧrXʽt-бl31pM0STĨx3Uǁ䥄oC}GjcJ~+ R,3ィxӻn19|Jʨ3"t^&xM>#{9M0Y 'Ӡ1Dq*ݟj!lUPP;@G81訃ԛLo*i#ҼDYY̹Ī8UJEjظn*qGrSW̒-P4{"%}]isCsX*)WL Vz)џ6U~Ŕ-yYҝa$H7t4j -XrCB)ĩTйm:*ThlQpfe7]> "5י-/M/1Na<R"p:3ǽ$͐lSSDvCXXxXFt'l+J~SuIAjT+A3TM-ŋEY´kb $ iI@jY()BijxAF)$YɹZ8}_ OhM"|8܂"~^7*j)eN&Īk|N˓I%{46s)a&Ezu<gӢms+0Әtd4x\Ӽ++|b')B(gkV]:[*~ !8d@k{Cx-Ek \>3tF:SSb)ߧ1qu<א/A'Vl$O$#7w1 Nb d_v_vt~QZ3+pCm̱P4=y[~¤&]=V.NjDVzki.y#}"_<M^}i_4guDYuswps 4u/=|VRɉ-x g6 [n yW:.?ޓ[9X{TmB,mh{ck,![RC &˜R1pM b+tV7gΰt ysj uk*R I+U[H>u\h|#}r*ǯҪ3Nq o|ìbaiTƘ8Q?i 6Dx*n۹ߓP$_5n:% њUj`hrfErL)LR; [F}OEWLHdž EreT E~V9qˇFh*v6CW)aʼ jgܓ8d#dЕѐjDc*|Ճ<Ѐ֝_Qop:253ߡ2F-CtIck7I R=[_^u IDAT5jjRtсp1VE͡*rvFoilJr ۼ[H5k=_M /YiUyNEY^tE xL E jní2R \`(8lqAUNMǕ*Mh)-z6Rβ0z$j,b:2 A7*y5L[U }Z%(W{cGI{g{Y Ў)mҐ6is 7nЧ>)?qZYYqx =w}XP/_Vp#iB jaAz@YX.+LLE=+~fLEa 1-VNPIria]8ba R:\ 3CyqDhHF\qq Og?Yp}/oַew,TB!˅߉V%Ck4hSpc;4.p*r̹9`H-{i᧐ R9?>% K#qVis# W7XCA}8ܾ脆j/s!I*Z/  ==?|A""zO7n?moW#G>򑥼!U!X [x?C=MAF^v=D`Fށ|?+ce$6j[ްZkatUu;5:&UϒȘU4Ǩac쐰+M*52zk^S;wxo|䄞yަt}<˗.D\emFōy)zdpgرd8Ocy2tBpԟEpd:*dei Thc 1h?$*4mUaR^g@c!3O(p7 ǵcltwu""$osms$uX#LotTG5!;S2DJG&?m/6t1A"!7*xؓFXuJ-w]tpp(k y^ַKW繦*iR$XispqP$Cuh@U^腅%Ь iZgʨ RժS=!)oeMo{Ȉv>pn̠j| 2 Zb#\!Й?UW0n :ނw2oPh0RN#<\E2$MncdW l@j\Wg wcVRybw9!VxIm3*ra1)ܾHDQ0#߇l\⿪ }бϟX)(= fK͗NMZ]Up/4( t|C4{:R لk"ð/*8B!F[x[BV@nҘDvUe0BֆFo,W9!U[@zsHSAN+/$Ms{1h0}X,/6uυ1P`k쌽U$"N{y#c2sh*s2u#d{Y1a܇\x»k:ȺxlV.ӪƾX̝g{)QpA[L7E ƹU4dE2gq%3d:p:%&TU%*g{`K1A!LԞ0 yaOIE N+mDW]&:.M@PuFw‹zyRN,<(s'H/48WhB l$=T.DTx;'xhyeh,ULga%#yt5N1$׌Qunpg]vc$+%W0FMsBmbd͓qZ8*E>=:ښTnd@iX䬃kNRtJDD !dzSc uҼZ*#2̋`Ċi朰 =kHVEphzNA3-ɲ4]I =݃-Y6q7چ8M $u&9ry̍ȱZ@A_'G%dE笔\aki;ykƌlS>M+n3E wPBJR\ZqW*6,mw[ˬ8%mpl=ɡhPAp -cJ?$l\HQ o-N<-.Ow:` iXhUmd`FAd]B8 !蚘݊Q \OM/ ezVtwGɹ:ǿwV9^]#x}Qk? ϾDs-³/G.?@/) Y blwhVFiefVhX'Gy񜉈het/~%gݥܥYoߤA>~ONǃ\7;w:ˁsŚ} Ͼ)|Nq/s5Ϲj=֕yXU~!;29}ٗ}2:~X7~~Vhex^ZbgQGϼny9kN޳u7nں-pK }8y 1SCϡ :w }ߺ['ߪTj^H7xNfSg*!`w~[t8;U+ҊZJTl4F& ΓW ъ)km]s,7g*,f 'J`,,|F͉"RrnD9$)lO){{.Kui1bY6B|)*DH2EE}+׮r]/C?Si;"m aPa!/EF6 1wQM3ޓvS.io$c^Oa j)?KOUc~q)//ۗS$xiݫ96G>wVlwx]wDP!2T EaY4R{E)H<2XY$\GT8JI)_ItB{E*AORIl :jꢱx7~}Q$M B6tA>k97f7 k5϶nY5pm SXTd/}xLтv?W?īU?VγԌIrݒߡ3\8,8y`Li4qO. }z`/{xȝS{:1z/QgdCtr34ʰCU@")fQ'xm֩!L \g1ٱPI.*C{y!wi*ܜBNsqu@3^Heț7uh8swKyD{aR`p?==C`yN>iG9af.[NaJ C \PygbKKs1p]Pib9 +#-O֟ϻ(ضk9|~Lb&Ue%#8߷LZ<ѵkC[o0u34:M 8 S]Zp0G0;=˹TΡ$i7xnXv #olpuoE"Ѓ)F\C#ae Pg!gIUm>jk!T@$.hJpd+׮{3nJybSϥMn9R9ćb6 S:N30G/ e6Zx`H7 Rݩq^(gP{c,s!~s9 >c-˛BZ_9ϟ뙲ӦUI-pj z|ji)iO[r )ۨX)hDLY*+=3T䤵-is;'7dy:_/\#IuLhJc31p=s ,É?ޓ  V6b /JRCg~NZ ,ϡhxZ߸:hQo+#ImEv'7`5p5Bmʞ2s'#+Y*=M|很51Mf+^ /t{Nۡ-VLc!2ܿ[u\ U1#iBm8lэn`(֧ gʬf!Ci5yJ)$(?V*z!ϛn*/iSK#/_V;4x틵( iM4*Pl`ȅIOptEN_!$nRGpWIBĩ7K?QfQnHS YBqiyR_{Ix$ >4XcS)INzeoH7ſA x:ي\&% Q +^I&VNiB1p;Ϸ)=qqs 4E-x.sgZd[Ҍ0^oᨈ;֏Bob]$L \MH . 4bLI0K:n_r(,X#|[,ܴ`:ՃeV%{qȃɬq=CR3g8s|j 2g dWm(C?P*$Z2fɇ~ !-e*Bohҫv&Tr|٪諸+mV.#$3Cڅ_{(F¼6:Q.$dZ{0$:& /R*OVowZT^phڀ31߯zm+yuۺO)s>tCSdT#HcI0ZǫX$Z 8}i2 \ϨT MU eLNܿH<6s)ǖU̟Q{I>+-%\ 2_hL W?Ի;x^l34֪uP =X뜊 "gS&=w#58?9qp4oz  aq y[UQAI+wtƦpo% 3U{P@C 2ԞxZ\(9v iV eB+} }w/ ;Py}U"?{QgQ:<>9:߽t<\wdůDǃK}'PsUYsmo٥-3d0_79D9-t:VSM/2b/bH|sCrs?W$R84h3m{Qc?{0t|K{uaڄXI՗be2])JUie[,PAHlJn)|Caq,Z9JO٪/:NsGR$[֙%[>-YGibp{q%I g>>Uy怑m@w{ͅolOt=-׆ޣT'HoybڃJc"T;r-5 ad{m8<#\#E+* `}V텣AN; b:W3`L GI Ђg!0]U{T"'„7Nx]BՙdDB-s)]Ud/Mo \MX'1XH@Enn?tB}#˫U!k9Tz7*qSU,)lI(N#冑Q#wBW]Oai6OvVRAk!Z /c&4oa X֝yS Њ/ ˢUii"<^#Z6DeئjMmǶ<W)YMVȊ {?=܏[-T铛f'Fi7gߵ)@R*zc!xPg |6;KV~ )Z us 8Vl CS?T'gAuN#lƅAFk6uJq08bsBOԔ8'vCK͓J ytaf25'iaёAtK=/F`<_ZEQ ym\$s ߸q>?NYʊ-[:_o x@s(ǃ//޹K;[_lo}5ůT;wcxn9h;[t<,fZl m3C qKšk?#groK_Ӈ@)Ľ,ք^3x~ų$"~FOx+g<{! w=/❻❻ů; }^43~z^iw?<5:4-K\޽K'賟,]p>яҗezB;ۤ2R;,{:rzGuU'6T6ޜv!pbAFzIiQ)Bh8yr6eBBƘ Xn_C2p ^ ͣyZչv ÏuBgYu( \{9:<=DDnܸaj=K!Υ"Mo3`G/8 -F![\B'Ci ]2$3vZfD!]lP3?4EOˢC52zk^S~ӝ;w>W\˗/^9N ߙ=6)L{OA[Ro[xj2(* yu(?16'Mbh;e=T׃ Ozƞy4ڞV 9ݝ y&<3}}fv;N/LݮP}Q{ZjAT8j akK+3g\BH-@X-FdR8\ 뽺y%A뚷LZ\@*䱇 cI#أaQ %&0#%*M˗/;t oy[h8O?M.\'x>Si ̡.*IX%y@nՏ)wVicR+kxS) e^5Pd׫,+ExY-Pwhՙ9#gܿ]Հ34 @dΝ|3O~0wƔLFeycMCP!0lR'YӪ#_$8:/KϷz0\ 1{][{PVs^eYw \M# OUV wIʺ 3)TzUYC^is >3 T`HdlU~ 5~2W$nhB%'vSomB>2cS&&S )& ڈ9#Dep|ϿlV#0)rr(rǧׄ~yZ;rIdn:3psbtP!X СgԀS!w=^iLɟy\XN~;cL \ X!\z ^%+*i("컖;=4/:2< SĪPe]+B筽I9.OzUC#{ƆsMg{Sl`lnc⪎k \M& !>y4u)6w:+(|wR :x9XnզZ_bm5ۺa]u;R029n<-rc:%D?,zz3#“fE61f皂O]/.""&^\BM7|ۗаna/aδd9v _4J~N$ ې1'e^zF[:@]cj~ȊΘTbȳkII҈Yj+\gN,FkpF|#|+)c4ﺷ)ccU4D6_PU>w %|slL<^dO6dd.E6k jHB q4ȋǸǒ)RbL&F%xYxmv?oBE9+}Jrdy"01D,,L=fRXZ6"K-ya]B !!^j!I>,ÕU!CUؕSWV7l]op':#-=9mR_~k7-41դEiJ!:tU XTz8x8ՁS˳Je^VMR-t$R) ;L}Ph*ytuü/kXύp2QDi=1`MF5k#y5|}Ĺx2àz}qN=ӣAN;DgJ2F79@⛶3-g x ;q蜕1WY̞~}a8`݋?G '`2k:*†ɦmYɛ9GVARt  UKXx0J"+BeXN|늅%"=Z_lv PMB]6H6pm $f!3v:gIDE4ϒ~͎!FCj (1JT*EB{4n+•) PE;nwǬ IZ0VwH p+@[JvlNy Ӵ3CϘeJʊ:˲{9{/Z^T_;] t~g/< )lJ2}Tq\kQw,!$VLv\C$yg\).steuϪB2$ {|ʜDY-zj{X [޸-HFTjz8@ Ζ^<42}ǔ`FU %FzbE>,jHՑBP"EL֒s zLƇ6E)spC8!}WcNK\[ީhSFw7M 6t )HO9y11(4^Р{HE'B"*I{ ugu%kz TgELQ/`jXD)I|._41ģUrq n_,(k+CCT i8uFB$AӂJsC湨 )FpVUfdk=D (hǓg"S+ k%tAD?s?~kq^6u(NK0+s$ؕB%z6< wyTs]b̥IX}l!i p8Q Y2-=ƠS䔱}GC0/-=V-.nUS1Cޚ(gvfYΑh袄\W酼P>'rs8ų$$(`܄ Nm gTR nw)G*^ͳ-PX6o8$A%0^G3Kswwvk  Ɣ L&t*0-Ǟ+)ֺNGZ0.gJek^`6+,Ibdևޡ]*s@SfHWw096QxXDȘpu6҆y3b瓲ٸ֚}xۗhsJ[{7֤&\N!kl <Yk Eƃ- c;Q~Wg専T%ƯA(稅"*U䦡̚hy~>GI'OanF#F]Rdi|!7{a*sV9܎45z)`F@q±VҫZ4D˵*~Q֧50R٭mymc{RB&$g+3zglMМf+:qeZ*lzk]gcMAZZ٢xPŸ)=%=dkj""!&o-r;%F/4 nk%?_cP4 *U!`[ΌkpG8lSղ-tG}VK#y L'qb{45og;92^(iddCҲbY񗂋pGh.iMhK\^Ŷ^KY C#ݚXh&7+( /V(:J+})>OT <8Mt lM} {U}cP `́wqh!O.B`u\?(x#'80؊j[[ׅQ]DX_/-nթ Q!b{C52tlr $l_9^iz\"-_6VӨS/X|ilFi0N 9: 4P^dGʂ'ĘjR,T pNT),B*Yd?N{Vi-!TzNk?fC7IvcC*;p[ ieS.)D(GHZELDt1=U9* H-Ƹ^NjpE#ߌf}ʵ6k}Vj2AcAf{vc0V4r>jkEqo!k l?7RxD /8XTV7  Jx&}ذÍup /OƍO}<}VVV7^r|ϝ;G7"=e[W1&!Ҽ m :Nh C.sR_0UV_c9]zCCg'%y>AڌyǞUNJ;6 /AtYٓ*qDXoO Tڔ~iqd9XċI5O6i \޽K'賟,]p>яҗez7s}[Zȋj:uQL3C!;ЛaY5+ȱjxZBݶB$&Y-% %0??s #XB"7@=eS+E?C=6nr{l1\HO.ȵ1Fe]V!iDT3./Yͩ+WZą{Ο?O> 7nx+_JzG#܄ blaEECONX51geF2_ ǩ]ϹJ3gjPX6/>XMglqFnE1߁_ [۸UTDTC;}#/)^Sat52zk^S;wxo|䄞yަt}?>:`Y)y -0y6e(;meϴANjQ.(V" 3Kyo2шa 3h^sN4Bhȿqŭ*^ &9,܈^% X:us֨ygy9nx嗩o Mo~o:`SxXhSoy1!*x!O/䍔VyhDShE8/LR6Dy66Xռ1nM͝\ <2x{Ґ[ꪐlFgQc9O˯M1Uַ h&1:=D-t[ORwvzꩧ_~BoxCP][՚"LaT(pb3`b`Uv&qz׵pcOLl &>%Uf Rua6z]Ck7d<\vg3)v.s(?~&rN9թʦy^ yzN0d1s{k]- ^o"w]tpp(ž=zM,v Ercw_z,م:Q/oڛ%9U% "|ބ&LDL%PLJJUN*(xGT3[ QGdP⳺CE{]`(y}r \Dy:&IDR dpՌ2PړaD|XYȴ׏T\\fJo*ժe׹p h"C4J0=naZmo-҆*@Cq<8: m?I8G*{Oy1ر Rz]F+HT/6f":дߎ2x3pPfYp;IDAT ۡZP&}hesE%YTqׯx=i). b^xI][YtZ߇^ՔbSaŒNVz42CӔY&UNM0MtB&|whDX^7Fv+ +1OxRcVrN!*-e5mxkB &XTwNJ/Fg_m0UٛM al٬İsڈ+9qDZ咏xl@(VT)S#*pdP 0ܡUb/?cj,A3!Fx~5Jr7@zB(Ϥk&J+PMfD8@Z"N8yL:2U"+/jѥ!Ԍ2CN K![9^.$-bY5ηJ)SgĆI a71p\yRDm)26ay q9w~bPe yzԦڈQ! cX>ש-ڪP^mu}G+o27j( BZ8 mkvs\2R)cX{6;*F^5ƙToګp}ץdCGİ+c)V Q9-E*͝uyhzB#0pU hrn+SUeUz!J*,[" Wy"eؓV^Xp3SwԹ4_z +Pm[5h5CET2kIKp!Me' .SUZ=D_z=s~! \[AVL`uWP]1*Q }"Ra>f- Oica=%04[*,CH4ߧ55OCxw9F'_"d5I؟R=yG6[uax#= 5LXNI!MvoZ  ^)Ë" q L2ENjjYHέ_]>0UU;Z4vg缯AeZWe:7{>7{f,8Vf/НK'8|_hs ==:!";˗hykheA af_I&Ez?!?7`4[lӣ|~^OσO'}uiuyZYlӣӿgwϓw'5Ig{LÇ НK47^[\G57͞!),{,,_Ρ)3i2%ZrYl)ޕYYl_]Nýnp?PC)Ks [-XbykՕ9xc(r-v$تfYʱlf?qϵXt9hǧt1|)[wf,TC{, @VaND}vo$XHMN$jtnUt|c۫;=ʵ_7z+i&7γPz*@!y̕E;X}b USYv/nBFP#dYmUzii3M3Y_xR^mĖ`2.XKiy) W[o!R={ip/~0 vq%k!_U1C1p~"`W.XH''[cRFF K&q ;6< uTIҐ{Y7YƪZ{]:EL<H`d6dl"` ԐH:k](XP96,YW>*'-`bĭu'CB-9}nS#V~$Z8ysp=d+?1p,j*dAx'PX$#%BX~tP Е0rcC۾Bg E+#[| e)8Y Srd3(qo\(=ZPX#bb-L@e Qt~2Qzx2:L)>)Yh%*OJܣ U-k+kȒH O*@5{̪尰lKN3K,YӕyU,BN؆ ʙ[䗢zиNB=/DbwJk^J&%-,+v=Z)jCzynRnܥmux4|!^zm2^sM '9Cr9l_cqGgZ#W rVWDZZ./dgZ6˞L{BrVfz:yN[+Ұ:vK*hZ7Zr$#BƔ*,H2ӕlkIV2cyt@7Ҽ(u-d19Gr=V[a4aX,i~M62B'Țޡ$K?D^کKd,S2lAAr|1 0i3)̳,h _'Ҁ{LK^"=fZ`mf*0t#^3ti/>XPsrANEP/6*Z(=!TPЪ싓Mk6 IX2 NRz\W5'$IE zVgh+n7skYe: 8Y}[#IYd kyS*0\\+ja8b8ij`GP:JHȖ60]$eIk[CXy+Y7#t T 񰟳8-jEXE)J߶=*Fw6=&9L=(e\K)T#4J/bPRXP)49{47cTVAHd!:uv!*@"^ɿ <ĬH2O7Mxa+)?ז.Ku"GbkWbC6t.lr] rZJ}^Z2`tNR,.YscʁEbuBV>/n '$K5..!+ &iާ|2H\zi.vzvy頜4i a}E9k-7 o+Ag8u `Y! 266-Yz PM4Muv2#+c0adŚ f0,C874!J *J&=Qhd"rm/ ""( *'Ogn#u$-P BNFBXiJN 1w}BcDʼn(߬ٲ?龠u,ho%-,*pf YVyFi3 ӦE0a(lY[XBC͇tv-`Ȝe]D6^Y P] 0S0jTxXP  ` ?TU1Uɐ,ZAԢ\(629 ʹm_+SP h`xȞ3 sP@eQBA.+%TAkF>!SP@ 0+000g 4+ƃ-`(:I \R |o7!cIby7 2 t@i`<# (>+0%kX`(W(yΨE\L+P͵H$8 (V+p^@H+ )UPN+HN*aa 5T7nܠVEn] sQ F~tpbs=88~_^^]}lJ5}n>|Ϊr g2|(eOlMz]Oo˗/P-[uss677q'b@>.4ik}罟 nNE$;Ӫ`T%36_/ݹsI{< ϧF`< "|M^@J:\"Bo`$?S;(2,aTWx>{6S/..G$vBvR}R;yqPk@Uo}wѳgϢ> ꫯb{7qj P }㧟~9zŋtmza}/^WoMÍs 3@5)Gߧ/_~e:::ѣGE=y666W_ׯV98ݻ.믿⮏Y4Mz{ٳgltr333D.ϸ< γ@n˗q,^yz#z9}[oe+믿Vy< c\۷oGKKKg}{ѵkע>(zEEQt~~hii)jZJt=ܴ ='2TO߀(W\\r(WrFyf!Έ IENDB`codec2-1.0.1/doc/test_datac1_006_spectrogram.png000066400000000000000000032362631412132000500213150ustar00rootroot00000000000000PNG  IHDR ?bKGD pHYs  tIME "q IDATxyp]}}DzkUCW4Aq *9 ̾.\@&WU_>lmm777o=z7F3Ƌ $o fR;^ >zV;Q,aY,BZž}pU__G4^AAQrK={>qHO}S_u~|_WUr9Ʊ<jEAAA񽎥ixlAAdA됓  c    nzAAAql+4AAAĽm,0AAAqoAAAA1AAAAqLAAAdAAAAAAA1AAAA|c9{DHJ3az~Ї|`{ AAF:}n84zqRH  ~ލc٣ E!&Þhpt?v-}8ÃOq4 $={l }H3(<{N)d?_P!ZAlK8J<ackF}Ki#=mF dR0A=gaaHQlNB陇?gJJ>qHK(<{ [_>{f=vtNy| -" t<ȈCЇ,drjƨHmk,[ݱ} )2>g=/# 97̣:&a)Be\uØ([ފY*H!OM2yfZԂҠ'+O?#`i&( EÚ q hcjPC3\PI]wGP&  Goo&o{ՂqK7<@v"w4PvayEDu:sCfߎiHnʥrW\ y0:nR:!ʀ >vQhA7Ҽ:jXO8з_E,ILq {}sqi}fv<5 "- ,&?qKOEcXyN?{XZ 0}w~S{l?*O?mdH~錢ad~_?yjJ=6 ,vI~"7 d!EL4#׷~XB[WD"~ R[=~g w9UiC1RAwɸ^!,t m"CcDY* zlX#K,uK9OQA 8EvZBeԀ5ps'ɊX~='~ 1a3KT鳝C@?5v7!#EDЈͻ9 A] Mx VR| ?oF 6c)G6a@u}bT-߹I 7m;&ˣ4 7)aFfP]*/Q#N+B{_!&><6 B0H8dB ,YŤok,+2Jw(Rd,XQof]+y 7<25{A(w⻅¾e)ˑKnGp?NF0{JQ!FnߨsUV2~%HwBPTvw2_kʁWgk2 tw˴ſ0ϋq|H_r=uŭӸ 1lty+"CL86#VƩl_m뛰//@&!tfO2 ys +>("d>K!B x4n 3?ܿ4BuԣwFԒj 59 j䑶5H8r$K2];EtѰxv#Z݄ՔOPq~xQre߫E$ARvB;nDLe,a\=ǹ1ڲ4 ז!j@<樂iνwG-g h9Q|)n$Q_n~$Y๭gdȹS k7zqi{}/ɂy/{jln< doYn853<<#f& T>}ߜfD*[!L٣XړG`8o'OQ %AN`囔#(҃!V01ahOhUK/fQU`,@)v=JM^G@ɷndJE.A`B :'m&btd0SgRU0.\.qji:ijvfѵ&n97T$ jANH0~DÆPQ 왠혎3:P{lcl>RUC%H3Ӱ// ?'Xtө _x:s&lqwDr_dG~'bq0DTMDv/}j6|Gev$FdɆ@ ) >[7 Dx[4>gf<ZQxQ-" *PQQBe~ U"DCaڮÃz2r|&*2~fnڀdv'?yxdGYQaI4 bEu\YMs!&~~^S}iL CԹ1(Z @0ʀj͝Ns(PBo&,EDf3H„UԶ9|Q`>6cd%c|`H4vg<>yjzT因![dvT**Us~X~ v%DGaF9sMRnЍb}[u%ۼz!Ģ\&0N5Cbr+n'NC`OZ˸41B^zO8dթSO EfđJg#ٿ;Zzifӕ˲tf4(ɲg/4Ue>(2Go:o3S %q'"4DYGr;e4z7MCu;>|~.;Hy|%We~D3g<[ J Wu$7"4mf A_!?0 J #}yh {W~z2«YɟMA Пc_1+n,Jo@,qe4X 7ӱ N9;צ,['.\Uyh]|cB!.A =rE`air#WA ڀKh zy;\ f8 @PUhFa8T'9 ןg"nMHʩ<'xDt.Eٜ9@alp6/}黄|qd~);v6#g3:AJ;s71j mlvt) 0TI@ZJkc,Rf#fČZos<f6;ل3݂)JvA~MՖS)4i)=8M6]WM1.;*_F: q~٣, qhgEu< DH5֔J(=0V;9HT>~A/ˌi㎟< }24h)Mp+Z$iꦵʃ6g^U>f5ܕǘh:b cCmi9DG[2wH"qƷBny=c%Vꑊ':AU\,ER|-4m{7NR"2YKZeF@>$1ލ=>O.`d{ IpCMefA/Gr~ R8̢='w|&pTYL{^o|OQ3Dnob?)D陇Yv;PDBxǔ,@U AUQoi߄NC){Ƽ٣YR)֗᥷} :kJ^age4 \mcyZdjv9k]t65fmuv6[O;)<ɘ's;ʯܤ\qm#0Yz[a hs*yᾖNtcJ65坎|٦ i _ʴֆqjq7~zO[;ŎscErvcLUÃ(dmroṷze#=xF]׽#{S~(`4Z:ͭ/1ՎVE~wP5ۙNɭ kvLKWI6&R"Ν 9嶲7yWuVid7 7!Z`qhďGkJ_׾vƧOO JQ@f!vE9 BHWaE< #eD$D7Co 1DG%Ա~XRo|tsv}5\ч?(0Ձ>H "AĪqXW^rb8Qj{mVcrPk=P Ì`KkYY.5 kX( R @Ğ{>j _MQY aysZ+pV9{Eh wafX$ΛDfC-XKe("(HX"rn4X2$Ez06'Z+176 d0X,VGP !7o@-Xt " ȗ6- H}ˏP%DByOc?=y +1KÀ."m #"t}V aT /ְׇ`"Lۆ<5ئ d' !UXyP`GCjPyafk{R5l9p?Z?%)"^ Y:m5hOt]"?`_> YBB"y;P0L?{ܳ}HdRTaU<{l!0밫L76w+mQ ()ޥ/E c0/^iy0JƠw)5e}ioqv4 [_>#t0SQkl31Tߺě& A^Ce, Z5'67aoB%!19YT`n2[ + LO"7"I{f~5O@JvC TOGa7LTDDϤ¯|eH*Rg}?Ұc>GzDo|V P!X*A/@/!@R nPl[" fAK*B\XeC0S:zސ^}|-B[.9;MƲTb@tel!`oe HӰ]d={iBL||/UC0 @]C"(E76(H Ё,Qt1S?44+w 0@eCʖ V갲9v5QH1 j#t5ciCN$!eh3P^烕PׁrX[U"n=1Zi@a| ihk`dP#>@jnzKZхGF:9E|m[d*TX} 2up9\d\.yەk&_^}%VD] Zx)1AJgھu H8>Xrc9g^I됒IoyxCSPV CdO8-kYrKk/yj?)`Z]םm ԎN@Q'Of/Ra34Vseْ>uR@$k++ڞ~e}f|~!ð셰|[}I^@6b=QHwqdԆ kyV!z`fsݰCJ[QU!~2]w ͯ5B&vþ9zu66-2U}]Lv22tp ]ry' &! mkJ077R8 eTJ;:T;jfYUP7'ӄ`\_99pQfACAHo\}cONa X2'Gf&3,>\H(&NYEq nH3GwVPCXN=(%J8:6q[#yy9o"v=@Shb ~z7 ]qX'HB ,/  ްq4L+ļ 9|xwg/r<fuܔR=qv! ȗuǎ_DvZVUvu@XFm΍a 0,E@5؂/g#(f=Uk5_7X3}6LgϾ,{ ų Ha⨀'i"vHxt5F"0UW{$і&RȁŢKcNSg'(ۨ wMy;]Ym^5Ҍ<DmD|a6W\<E/.yyX#Z[3O{+Ul`"uՄ/kMo Re 9?㵼"`:Y .׊5eUL23a}AWxZXREcWjq ,CdDzy|)IONIΞN'c+胘i4FsɵF3eTog_aJ ` Z lГa UWmGujxP 2vi!aH5@XZ9;nEP-hwx95wtXQ8IJ*ԢţoNC ŽlF 3@m>vT ֝DM^ҚE$TXυ5q-ZlNj(op)}6qXT=6lPMm, &ڢ~GPTmҫFp\#<>֦tOV[EYd ڱ]L0u7'4:<1Zm<+(,Y].8ue8UokGxx%1;# ޥ0Y! ZC)谂*=+Y ozRryB#u<RйAhDL9MŜ@k#4'eCQFgws˔dJm5f@1UڷiW4 \ZYU^&d]VoJ KaA_Fp3.[ƙ^o#*BkM@a kcyjv.JCcГA2-?Gp?yJ`(4K,kp}`XF@C(KqHuXd?}X͗Ȟ.BTM/ LSSra&0NşCpK_Sg+2+j%n ןeu:I# ٽ6S0Ri &{Fif&̇M݆G;ϫ0Ckd, mB_o|G)ɩFCDRtי`+"ăGT?=5,AIxv.xf| (W #f"tE3eq(k\!^ywEŠ#!vg+&¡u@NB/ǩ:KnwJ |~g>w뼦KҀ¯]_U9V~{8g>KP_y4Jgt¾:>3ȕA_e VPcm~3sy~^SLhx9hΞoۡQנ>:uwoΎD`<. ? ?Ef&B?@8iRMzjGJp]c\ePYVSn GmG=qT~m~/} xV}'4;&̹" Ѩwt}*1?5l(nO/.!Oa:y7$}(r֞eNғ{ r7^y}u91™OλQ3D hxJ"; nnf)f7TA¸4Ӟ杭nT1^:O~MV/gO)T+hj[b1CmGm!{}'>{w3Vc:{0&Km(.V?tQ"üW$7t$w#Bg(MwFE(* k"xNQsѿ>'N AkʲY*q43 3}/05a-"TEc!m~lQUaFО/"KƵًzJb㎂-u/cijakU((jذO!Wm(o^u52]Yf&Frmj^%ߎFo)#16T``v7Z a{tmm,@8ĺsIC0YdzMfPz2q^ITz@nǐnY{w}e5hK8M}B9Չ֖a|ӝ#cO PLb^W X*qi*K G؆Uaݾ啎gtiNMQcY͛l;yC-4 1݀2{}+oCOa%c,5(JC0NFΣA΂WMrpE-̃}a)fYC:swU}yeFJOD<)~F3S4@QXlCr[bQ(>ɱC>,5^OAh&i 9a ^EtE-m<`HS>O"}@I_(a!H9[<l{Y,PrdV,?uborD`n+B^$~R\JA`)eK]s.&Ҍ /G_^?q#e&59YX{w_,⧼ꗮOi`WLe6~tOVx {z[u_$j xNfX:EU vp$55!'}q?G:Cspq49? ҩÎ1x"#6X}xYe#x52C)~7-q-@HdիixF~ ?WDAj/z C}X8^He߽ΨGQ¯_vaܺLMݻKP@YރZ}6}22P>)Y'X`kŸuˡ>J/aLqlǧܥfu>S;L1ۣV̫ZGG\<*WOʫk\Nɐ拧z\փǴC)vpm[9U*1;C^,i|3d[W vݢ/en?%Ɛ9w^c$l<~nmm2wTI1PF6KqHSXuPeVF0?[CZ,~qb&?\ce ,v23ejHyvnqrQ>(EK:uW+mrbw|k(ll]727>DQ9Uc_Gg{znetsfZGuSitXpA,f5k &1 Z!x~wD_T|5ϟ\zޒa~&s|Wъ 4xcFAܩIS:Klj@}?cc7kg%@+N Xk0 O\+v^ /_C/[26N8`b":+:>d6&-#wڻ,!''zebu3/G~\@׼3#$Ģ$Hg:3Écξ6>5%JY:|dԄ|r͂%0R[kf-"ab)nvf0Dց{O%ze~ MK3vNaEȚd]7hZ_ 3NR^*ufo?Du:>bJW’xJ)_0C`n,1>ޖ{ӯXۀOhE`l7)cI-,w@2lZ}Цy߃}w 1;w;K H^M5b x~|?g*2*?=OvR`*oXHoyoٲ4F!R[PR%o7GmBA&E |J?9(Evo]Ebcmtr]nK2:g*+\ց>-#vDirc~}c}KdMO߁%r*~Wm#Y^@lsbNs?aĕmzn2H6ˍ1ޥafW<Raty#ȻiNŬзXA Ln^rc#=֟GI*amPӻXl"u sciSq=YIO672Ȯˌ`. 8˧ ?>EedJFT Y,ӃwӉ$#LEݜ Y;,3VCm7n]F}&Y+EJ%;A-]lqlC` x|Įf;&NSzc\מ13F:+d–n^ O͑TÖDZ<_9MV:{{)?{ BBΑwp)Y 'e"gVz`r:$Q,CD6'I,L>,SaPuS{iz1[idXۀ:bbtVeP2TIs]zr䣩;2N`3NSgV`yG3ၘH@Y#*-8~ t^Y u /)h&QэW!k4$1p nZЂBa=ӭ6CK gZ=18F|zH߀?UiA|A9MN7!5PIhYJ磌Mfq0f*cdI6Lx>|֡>IulsH+>`$H6l $zá}x(vT-,9CEɾB3a2g("7VL}TbH6\߯@ʰ:2sJ?⬈˳8A3( Wxd ɺZGU۵DKȆSR_g_i066%ҽoŖ`ڄ"1)Π2dxVjd 6=D u* ^ ;6rqiZQPgq0񾍯m^ZX{=ѧ4P8arξr(_\ 3.wJ=BYF6 EHy74CȎizALu4NH0f{MpN]h&<Ђk.;E}N.Nk=ICxY`1`^:M@/[2ЯQ88FAYCB#6{Blu˞ 1I<}MtNR tt-!5V@+*qjEAAÓax)T=dkAIP8vzP#leO4;۝ex .WbeݳX'uŊ}nY5l9:t"BarE%zWe4"p-@+B]'[)ma<%Z-g& -`c{o0v3!ȥ6EVi%_8-3(aFҏl^A, 6%W3XY ?G a :<&Y`LAC=@~ T9xf0Ρ!fyaܺ / (O!o߇F\d6N4!d 'BV2V2>څy}>a7Ӏ$,{k|Ȑ ;`t0-V[p s9؅n5rh@\ނ9E$~ X+8n P +mF=Z@P#' "RG0*m@aJJ~>kOF!9_ƈ|[wMx_>@꿞:v~!  s>:kD ;iH}Cye"%~ =NJ{[a ? nxcЧm*5pH@2/9d! gxR ;{>9| A;J*e`I&о@pXC"}pmF  nԹ> w<Ax <PeL*^4B(>S Z2N\ '"Z^#5ɢ~} ꐀ7ousK#q9 U"+= A4D[DTNAc?C|9R#Oz*xkaGuM )HGxS 4!EЇ5(8hPƲ|&n>aWQBexp%/!DW79fLT-/"N!f/ő-EAc5|eG#  '9O"~X(=>p`},P\ކ^kY}rgyH|"WSL9 CkiTo|3X'!<<ª5OD~H!@@, (zk<$/g IDATqr#,$%(!9|f\8{!Y~ (] Ehh^LBZ꥛r*8 co| ${4&.Er! , g`.QC"s)xwQ'PBxîOHDűj4t$lrb|_ݑ\8a:iAGtلJ5>NS k<ٱ b컹uX#DQd!p' 5-7ٜA{k-蟘Nz.4!{'ѦOA9hS ȒBO{L;RlFqZ/A :{?D$&G͵~/: 0KeffO'M=M^yF߿>,uQ c;ɵ Ldo;Beich?QqΞOQ V[t4 CZu#Ylx &.FfWz-ZgvM뜗eÃgO1,.}pn=~tꐡp?P?XRYقq~e3c(xW1e(e~n "{31}k ,Yob<"J(_FiC`BdV `XDzR@G pu'VNv,]o#wC #Aj~υqx%3Ө4ql!|T&-imtf xu}$_$zsO?zl+ y5[؋L [a'Ȅ]eʨ3%cPm ͳ9fދl8PNp%Cph0 iQEvN{T@nCzc6:>#RIYX;huJ'R'RsQ_H𧪰0T^;BI0tn:(TǟiVLq[4dݕ/]{9NFX 11J/Zl^!&Q7R%HeW3<r&vCFc66TM`vCJs-x #^F_H|gz:DgfHp֊h^i}8:mY&);sFb"FDę)K|vUݘ"ڼC+&,#߫B>]D]jy 6-R3NVC0C-T c6CDt CJCGp. 3"+:Z֪,a/0Cd8%*IPOZ( qv{z6M(w͑y3Hex^P-~n 2)-8?A@KJh 9 Cէۜ@;I*ʡ`i+Hz Z@u@ׯChPnobT*LEp,\5\zFB Z؂ݙ=8wexaT ^9 ՔYEw|tcQdAL$dx() bɓK i ^؜0i^}E;64Fq]5HZJpIu138t?Z d_alb" 9ρs+Fo["FڸFSA 1+K|si=({=QRV )DwhgP3glX$C{QfW!ztF6 kI:FQ fgFK̬ǥ>pY3Lb,vGaK8Y&LXX$H]TX~t!ֹ1mzشKv#n1nJ{z~OIFj!Qʔ]fPwֵ{F0^WLA-E&hk{AՑkWP:>5=L{٘''Hl֍rpx]Aw"Э:ڂ==`7c4 WT I{cAH[={[՚ aK< su2mp~? @a5߭ OW_@u:v#P㡇M9_r{c.E]kנSu"5ݏ ]=H8;rJgbx'@!5#pʭx*&_S{x02`o߇4/Πz |z !_^BS7XVEa;IH}2xۇ| W)U!2vd!EXNGw(ϳA{(e*>nMpx@2v#AL80C' H5}{4x͋IȺnhd>5C (·=MC\#$+BPFQzmjB!pgIk iIi BJe?^Yex,:z&yC @!b݅}rzKJIFQת0מA GJ OR\Jv9'`h3M>[֪ D~o  5ݘE-)Aِ~iHM@\ނm.NRdO0Ial*0&a5$xJu*Fc:ž/Ƚ#"T*Q|4 (6=A3cG`2hnf܄yu>ĵ  |cr< G G9DךЇ(`DL};:T!"Þ?y>53P$Fa]?9.PCX qv(B0![9OhbI{Ox? {bP?7 BW1QF?E.=HOwv+PR%O`mJwXwBsr2] p4ZҌs9D8*>qcׇStww8H[|72e8 aŠ 6 4FVL$ ! ~B}BHۿB& _6퇨rަNdah_HB0lS6Pm ;/f |jK>7-*@rդc$zRAmJA HmӞl4Bxu쫢ݞah%|}"`smhܗ -mž}qh%x_E /o0j4P0G v]P\/gP1ʌ>ZAST9=kda]EsvRv$7("_C2<cX'D } ߃41'xDtSQH$ |m W @c$J15|y!&qgJ"tw~CbpB('5askksǨ/Y`nl҈Kq "d3MM4l$T{~fnᆵTAjZ99U>3EH!6zj_ }ٓh9hSc.[+3Ģzuabmi. Ӱ%$Ð;P_<V !CPoL 5X$KLnC0!H?6$PT`=x SBk" >}6\xb \^DٓТRd>G`*x{'svB4ڃw3,s'sⴷ-ƻ-p,Re "l!KP$v }p>VAWV;03Sh)2)>p[P#zj aNE~Liʇi 5TR 0<RTy!nyÏܮϞK\¥6|^w1fbx[`I*NK~L5E2ƖxR kĚ6)wqa $jl6$櫤y8q):&Jj.NA^kc h/_!m/z/'@.+C(j~4F8mi]0uRꘟu['huC\\ 0p{4?h\^ufWiehq9jAZ4+}=.)hl=LZ [4tqܖ,bC^\˫<G,@6!`68-^Ohh[, [%N|OPaxƏ̇tͭ&z Ւ0kcڄ6olwff+B-M<&6Gr0=@pɄg>@i}wE<v1Buf)+:.b"׬Osyҽe'!$N a'(aG(eo!@ʹwiY;;g]WpD< h;DFAasbӂ3 h[z~a4Z}y@pmܵU:AIivl U%/Fۺ . [w{@Cpoy%i?&o^8ڥ5mZcbG+XQudd/bһ'NYl L_gHAl 5\@+.nª[s, "{wxHedf G'ËG]sLz/4CزzcJ/0 р\% Z$iB(xB@Mߩ#N㟤(KsFFjc! XP2,j"G+IbLqr83 ctigd-E%+gW0}2׆1x* f2y:"F"3ewl8I&dJ_Xi݂av@p[a]9Uo0[K$Ɓatҽuعc S g^G[_?ԑN33T]! ~i~4[Mԓ% t?nIOz_8GGرc4+q}~ {wgeFk3iƧ2y"?M>6{=E,2)iJB܄TB}XBA c#''CY|K^L0] n[ъy/2_|=vQR$S[PPVF0-E^|e۵( -79-ȣ}mi/JٺU~֊;Vޯ +tB)& `=,S kZ+,S*c gzelul1(BG$Rs2_W2Db{AxKϐb&" u@| ~ޥ4~- ͋ A-T,gy=qeh@Dc*KƸszsѳ8~u!5ޅΠk쎖m ŏh fO=Et]_fDyVT$X+ShèKmO3z0?ؽ>,k7h!W~$AYkbQ4&C).&LtwG2 Zo6ܤˬיrx?Uwj/8* L}g/3 "oovigBsOMX!j2?أY.dVt׆yڣ1Gnq$ĢYOusamZl'$(]?^Ƚ=>O1@$:)U|t{w||lku/ KvAnJ0? X*N~3X|^s6%O${L]r[ؘیf[HY q0.g]SN9䮉np.WrIc'z."nH3}.rcH[w)tMxiܺL݂k%ϑ򿓣F#^RGlxވkjݼ+iDўe}cw۵bU{:Y7kY73xuUx˭XFc3O͋W@)K}) -`u,M%cqlb ;@/!wP2 =DinǙZ6Ng3FceR4 UFI4^Tc@h: "@$H[ԱbuBy(\4Q{UTp^6;%}cW[>!KMÞ&pSIv>%o,ǍuA=,]{9HT^S!felq2u=Ah=O PwHHDaXlŋb_н94ǂ,!+ IDAT: p}@xIY3GQbhwtGӠKSЂ"8OmQf͂%`W)Z^%QMg^2Yj<9^.zzFnr_8-cK3lsW>Ouq/ҵ|bf4ZQwNMW-֠e'^do 9H=Պkp/O֍lC)BشPj(N' _NCP 1 B94NJdfmО!:S( b"_% T'm$h/_z|P_d}chX8}ezX=R#1qr>ha~7-–DGٰzwO !.Rmw|ƃ)x z#K32{!:A91IV6<`b%~lfa{y{ya3EHͭ˰*Bm򸞌S޽%?OͱڻsȞ]B1}edHBi)>Tq!c fewt(|f%\;h!N8^{ GP TԀu)Qp-5=lvP41*'Ğd\^]˫9Dlxh/V `9f ZY.=\RW y{Ymy>û;l&->e1MFY.l {Ɵl~vl)5a3?awzb]J ~gbT\O9ޱ|^0q꣢=Q${u癏zwۛͲ3Z칈k4;e~\ĊdX{ jr;@OYR^%˷[ypѮ7H}ap sט5 gfo?$}'Ģdf*{^55p_ݖh^ tփþ^xd߼'=\tt}mRY.4ɗ"7I4? qrPKHL0wuxGg$s?u 1 h5%fO<Ѧk-]rF,~2_X؛Uv8܃X# /!*Ħgb<߃ycfbދ2C;EP#"1 _kAǺ-^LbKLJm `-RUgFU>hYP8lX/Cې BN`,-ĥ~ƿƅ_E ~u tL yq]H iv}}%f<Ɛ@~wѓ`G4AvS/m !c6LyXzg -~#d%zHB+ fNmNPN7)܄|ޒIX<@s( ҆%'BlYp&~HGE_9|{K;JkS`d6KHzgN7Y))w.0Z]1Y2ԍu PWǷh[^S:ˬ+?1@c Iok̩"\^%. O+RUNa E,Y\VEETYC^r+*&=]UHG c9clI@yA܃v* iu4eѾFZǼvdV6A B;1 Ρ>|CgY|))zl)ڂ\顫eНX-u|E툂GJu@DOMȓ*B;N3SO`P~sgb\;$]Hż MHd SwN]qNc%ir>['ûcmq`=oǵ N`=6lŋ(6 5^% 7Eˍ/)bYxga#E|IÁDpKFkjOl3KaxZPϰd^O_'u؊YoG_: !|ء=vhmHPƢn"7A76rFғ>u"KiXshx~6 >^ q#hL`bjP>g1G&c|是K_vȵq+"İ-(B N7iYC\sѦtgfq2D~OY2^Cq&[2rdnk亴_[zQ!Md6V =s[?$s ˫hBcb"A3N#l\P)zČ+"p}{b"=gsҽ"EPe @Gb)\^e׮xۈ> VZhDT=>vMy[},Cݬ=y>sA5{S;9} B\^Byn̈́}AoP#/xwy~R&(qpM7/6ӣALA1 ^0%yդ9򴈀Sp|7ZP@g/CT~ oo.!wk}6ٳq*'d@!nYFmPKhB(,}$ p:wHQZDEs )Bl8#֠>_rC;=T!6u#G'O@G-)^;@[\$')I"TQ8YFkPA򏷉:3C6N`K"'Qt'*>W`ܺfǣdU"Ơa޻ǕaϹ  HCrx!BkIDKQ*GJ"۩+vʕTbIE?d{eIGpvNbAwݧ5?sڪ~llwy֩wzGh-6x/wޥ.m(HMHkscT*!LlN*U6D{M[,ޅhM b1>A5c}D|{388Ere[ ~tw~> s{8/rᎏUEt},m: ㋄$I.rb} àsHssCd6L=Qh\EM*eH6\х`Aݦ w߾eM c iy*]İ^S1(S`"nV:rMkRȂ!/˄H8 >4uǣ%gs<Xҡn7|pHϡvpQ]%b#<\m8` 3{gVLIb0e4GMᗴv11?\HN;(JE0SSC([}$+dC5x!)OυCKNq:"$%?7".d(7 @}6 :)'},2tі#zO0ނ8=b#h00?CTfd(b 0;ާl&ed,c!xK/T{Ը~5|&1~TC~fJ}w{:ߏu~2d%kZ߳n>"mootb>RLK5/!kL棾$Plkz<]*#&ʸOV ~tU.Wl|<;5wδGXh ބ6?H¡6ڹFWF[ؙ& W!5A^=!P.rjA v G} #gبK-T΄`yIwlk 4GkDo'j氀&^8T?jMQ#Ş9Ϲ)->/]Ys4h{%4NǘrۙW@}bRGƼ /eҗ[@P^F̅Љs(3 &e&TPIyBʝD'%8az[CǨSnEv:X9ZbWM59m:fVAiVnO=Zfh_Rnt+@*j;vd.`f/B~H{,/&؂hF`͵t8Σ5(2uhl݋R64\w/–+#u톇 [ZXgyQU0߁5=o&EP%Xq-;;Yt:NRF2k|*bP&C:+k] Pu6x ψ]jщsns*+kc*EvѢ&)&=!ʤQe6)yu!˒h MtĶƘJ(Jf}"D>KM1on7Z(D#F?:Bؔm[`i{ݼw#*3P AVtr!* hE~ef-:Z WAQQ:P_ cO^){h%M<.5F ?^Uej-V3Qc=M+;a>z~s4w!I9lUd!z }t&'u̵8,ge?1{j}h=>O\lC1ZdRz# ԕקjkfW*9oRӥ37eyy#QH>dךC1ˀ$ѿC,!d#1a0CkI.hfɌ-P[/e8aVb#kQ-a$n1ڏBۅ\K{8`᛿aZ#ȷˆ'hYud>macO)e6U‡P[V?9?j B {g>+`Eq{sg?D /B9Z< )~trNi"혊4ȍU cQ4} Y]~f//Xa)8AiWD)/BCu;$ !P2$m6umLWį8#z/>%^ CnLmDxXAJߍsܵ_bpQ7<7@49;{.[t֨WRCbwњLAHLsOMź" I*usυ(Q|67ke B˂dN,bԢÕPCZpmD:Xwm("Z >4a4M ߎg~Ԃ] 6]pkwEМ7f!o_JfVL4?$k^˰KM&(ТMV+uzϞ3#rx*H-a|p9h?wz0~ fr4y(e VJBIo>"@׮ %:Ķ {5 w [$!҆TP}+G(Yb\LzֻɉY-}W`p_:,5w.v* |/bϲUHrk5 RM,!xLvn>m2bSEaf2, #CYgS9*n>~ .CZ^sa(8?aDw'%(܁ZGau$fnhN h~*e^Z2 Et"W<e3< @}6Iσ{om([UVΏǘNۗpVj)thWϲi\H,bFHny|p0`ɭާE&]}jlG:!ߥDFPCZHYڿ*nD?'GtGV8gN󮪐_C28Yƚ,M/'˄ !NJˠ6"bk]:_+SۚF6v"Ҍ嵾[ݴgv9 o꨾f(ˋscȳ»[ޫ$yDL=O!:PW l8E/-ك^ar:V?o(Gy5pYH67E{՘$1^6v\guN׶TԏXIy?}s5]W5Ϭקо<[S0aj:H>i!틈l,jNCH"BbAco-b!5L".bOHK'I>Q2C:/.\ؿ<2#0UT /Sџ8[(,{m;1 ;h2tKWpg@lr6Uv=݇L:O@/x\b&-OE! IDATȢG{ 5r$M@fD S~X742&JyVY\Q#='XGu3ÐȐ 1p!4ւT7Y(+2Clޏ[A`W(j G /!VgbkZ⹻o>b9g*NJ#wa؁~NIi yt6X0P 1(1\hHQ>{@&L{kgښi[?1Рb}^֏R6)_۽u 0"<'{$GekmXfTBa: ZCMoǰr%G:S w ݽCj_7Oi9"^^4HZÚYqwuS zn=`+'c'A\8Vcw = D_쏭ilL,&m^iٲ8ךlRs[C=_jdr]H P TbtxG3^bPY a GSȩT<d`9*^.8'[gYS8f8j2E&%ǥDAf8!}̘^Z{\7Ʋ cq2;z?Uc o!cM[œI&*xͶ_ )ws)oSʅR"`k(G>[_ SN"Ya4+cOBjpTl29 @Ooo_;wP:g]C4gP4څa`@ :PSzvqسv (9ˆs>2d&5NR@lE0<{|<%"vz6 tN-@ϰN0&LEmJL7Ѽ4H2*Cx Qa 1/) 4%+8,SYpw6sF9; voZmpa1ԝ&EyWQ9#"/qvx,\fNQP K$vmm>B I| Sb܃Z? =Î%<8}y{IFx2׉n-&8pHTp"d3 S-N Y/ÃLNIƘ g^8g|m*,רK.A^ځsr!?+ppy!Dw,fW<#SYFs'ka)Rº 6w| w#O{6quڐlz.a:Ϩh]n(0G(U N Yߍ<8+-TDqeb8INs?pNfJP+p b8m4dC(h@|N@6s J"1RעL4T T밋%V|9c k/E @TD8Ȏ!!!P0;;h !s[v>gna^aO]\&}iks; |kϏe{'!t! 1pp9r NHZt8 m6 sF@e͑ #.B99y ^QIX*uH=#l\ nhPcI82ܶNhnAN (_= Gޝ<."uq(5}~ 1& n@, /Ta>`lBb%"p|P\5 7]ԦT7qקY_J(v5]\Sš͑Yd5Z- Ӣb?{H &4NVvaO`+@ޅkzF# |.{E M STįy*NOCtҟ܃89|SAği0ό"ȅu *w* [ (!!T9K; |m@g(˂Ep3'_m)?a~e߾C!T!6Jk0 pM|=(mz ;ȞSol W:&"T<./ӽmw*t \ǀ]Z}]w'G!$p_nuw7_<9iԮtm~ym v\ND6xˆG[+$Z|u1gmB:\02s4Ga ~>݋֦ \CppAH$u ϞC 6{yH|v,n5iT+z-E(B@͆>'p&]!5$}g: HΩQp'(yϾt k'4gCAp||8 # 5MTxhש)x"5vϜbsoφN Slx'>&/o #;1aUSw bճ N by0fY Rq[{ǚ8b,A zؗ(401~7_\\1 W:-;@svK@?;'Q;CsY |o XʇB)@Z|WΣFڸPCdAċ<=@VVA ( aaXnה,xc'^5\:[P(xHJc=oCj 22GtӡGGښ=)RmtxVy i ukmy tJw[9}~fW{gA ttX:I V*6 H,.ˆ9 < ]E;&FI9nx.REjmiųDu59Ҙ Exz`ûbg1Hta)<YH{:u΃:UEϙ]'flݧl{f59vH,/,DQ-PFŌLX+k}]ʣEOӳ ]  sjв?7a{&XC{gxDs\ NO_"\b&N27.I=x$ iU[JH=3͑|U2P=:ό."C2MRpEQHMNA=X 'bXĜ#rh(E6 1b-(t_{ך 16:)'Ї(/kg3t+54&Y2:pG< $=ALЇT4&T^-Xsl%w5 A)I?pBDk6".Z GPK9t}%vD)1S" W"Ӧ?*1Ѵ,B|hlx ,!&G"͏ei3"B_tB3?\M#*@a;qz ꡁ@e0gLʙ6%_oVEmopx,,Qw* M2z*ԧ s({ҏ\^P]ʖPM'}V;zݤ#fGK/3W: 0_ό&LGjgyE(WkR8cR*=^89ƧuvqQ➈=_KoTe$V%@&X"sQOdLEwxc׍w-qBבU+4_Cj۴IWkagDz! xyHp̠J_ȱ}n "`fW̴# &3ci69ZǞy|$_ޯ{sb$ 'H}nALĸ,rj!R #9tM@Xc(Sou `pmpdNպ$% Aao,ÆP'sLnD{MNsH-hoMyi E82{zzƝ1tĽz8i 9?|Dh_E@juB:eEh gCO> :bdxϏG(ZݬEUX/ .r|27o 2͠M*|: !#*tvD&t!^R(B0] CD3e1<A@ؕ .{n {%W=b/4l|>L#h:3ԈX`g/#>œ(ܶs`P;>[zgF.a鿛-LP~]&T\8Է[dð!3@l!à=77? !k36B&XSo lp XOB k X!A{ǀof!ElվјTQ[Rp`&h ːts\>}BSBaB|f1gm8s¿nT}J2z/g ly;@k22RB"IHv(kmNAcC1rYԢ {?>]`]vBhW #5}ߛȋcQXy6*p4zƧkTS$02!8t9g3l PZiՌ(\5!w1-EBM]Tϙ0bV 3kzLdmK%= 'y*>(GdӳZYԝC| ЂmԯNp_k+7P${KAvS_zh n>B(cKOaGCӈ8HK CDuX6<9hɴ EX+k:Ĉ9g'ЩY1b"Pq{-NAyGyAu0_ۆ{ЧdV=`nƔ:8f`]Ծ<U/B@^9(rzڧ>h1|1 1eMǺێnISˢV<#rL7 !>^p`(;ښ@6߼sx_\TFE~׶I+NO2WDCNU(z{Sp8fڷ;dpQ´e^v%ɲ ubvuK%G+ $/ oSi8ww UC'2чQre\;Q,R>~HZzh1?3Pu1zzٽd 6zMEs#ko>- \XzΞ:]%͍9B)?3s;5=@V u D 92t\ V!UJo_y4G0hLYo3|K 庅 >Qwg' mwחu;qgp!`]ga bxLB?3N"xY&Q${gε8FL;+'K b#GY@G|t|||]e@scC3a, !1> 6O'2쩛K0,ҟ\vku|,NN8ضa}{YwK[8γ4w.!I{oo߂toGLt=]dH;֋`_o2?!0/"@9,DZN&L߾ߣUq{Woh_Bӌ)IP=s;k%2 rg!ᇻ̵ى3VxYfeB3shGE},=\ R][j_g^$>͕un7+oo,#zs߾k,)ϥ׌}bg?׃ "2Izmjˢ9.+'# #ӞEOW@ t(d[h84QtQ;aqXn aN ]~[axI9$i}OE zi klL|}f P?ȂGh D*NN4xyE#AB)-º~ DVHou ճcN2Fѱmleg8L{`X,΂3m̅q*GݽwT.5Mwsm7m p$|V'NGk@ޫ+  >?.(_rhh61=zc'$GK]Jwc`r١>%oy8Às r03eM2G_ yvB.=70nqz HE.omj 0) = sn{Vc&'"̊(VLÉG{4\х]A&* Y{6XkM&(2"x5`;L~oL]xYFcHvgrlK=@Z+dnj/X1T3pAK/AԁN-;a"0=2 V_i9c0Nf )Nĕxf"%[۔ Ko<[᠍PC ۈ:+͘d pH,c!ʈ90*r)I D/>`z LLt=5Q v=řتδX_ ~oDIxE!ֈ^,WƁy 4Rdv5[ `g2O8]Gı]DEK 00I ir=fsĵ("pkrko {}&~L[Tlǣ 2$SD>oQxݛA({ qz 6%*K hMqrp[h_'VJꏵ]ZG2}3DAfG=TQ0Z|"ֲEp@gB/UU@zqzXo6ݭXi- 2˚nǨG XphM2-&#NO3Oyar?F?Y/ܽXKc tޏ?/{!`I%!?g`F!4=t(FHa*)0`wI$*np,zQ|)O'>CMhYdSYۻǚ]>Zx{HA6!;2%>愾Ѩxo#jv>c,=ݾ;LTyEJl{'p XY'}Yo^~2 zPcn5⑾ecu$kz=?㌐<n3b.lBG $U9&e4ô*cpD 䙍1 %wxt`\Ql03_jjexn_6baz 0pE' mF2vY|rsOZwTt%͚_ '%XAyb&t i]_;p-\dѢ\ZȍsP߿ 3&0u€XPP"(OfS\D;(1ο jSATNl:xg-eTNˈllO RX6_ -o:.Szņ6?ֻqjRYb#wa}朚i#.3u3&15B"xr_K)i4exn ^E: "9ԽX@d]]'ZZvy6 PR\|Il+߹.ek't#0F܁vA&A_M'amjXN 鿴$sl ;P^<\BcB={ #FcB)!Nf!#bG G #q:@z & 2CzKڲآo9tTʹv$i%Z A;Bb"gHԕCGrt}Q!8S9Y4e_ s:u֙qr~#H,Zf"t8˲ؤD*ÌUF鯿3Bxmn zB̗kydwtÚh:5_BkW`UD[7}~k8Db BMz2w.1EUC.X11v|2f]VT΄Px ]@ދ^PTl'Vt~8)m0ӰM:x v~Q옊ʙP2`<%o2 */="<ЩKJH~dGȨZ[ xw|U0G[E~ 7ayI(l}E?y Vdr*9OQKue\Ve G>YFZߺPd7wWkڙQc, ۰{1l&k.uRpx<ڙ#h{r?C0O>!a#PIQm"Lp@ֻ /"P"޸"?QKw.Q=Y,B3+$2\nٛ&vy6^Uգ7%&HBf}G3= h8ӢoQO/ oEz.ճd؃$+GGg!YFQƄ *z+T@l#ߠE^2CDɘVo|!2b,E-=lĕn.` S4Xg'E6&-d.>sYŅ!#2"D1l G\;Oga~w^= RuYd=J{Όb.H_(UHV;`c{ *^& 2QO^ipԛ{l X#~y0å+!)Z{毙fQTՆwcokڱq&KIC.DkPF:a0NscL\ԿlMw٤@Յ8AuJڙ2~=!@Oqx NʥAm!\rKw9vcI؊fI 69M /T i" X) bc2|&E`_c8&ۍ~Q}OǟpFD8F]fssH0,zBζd/3ydZ^+Rְ wjDP\2İNSvXGr#F2 a*" eо @-XE[-B)ƥ4a+0޾HA見ʌ@d{o#}}98ΌJ$%-KXxw/r-A8A6Aw-YkkYDG)579̋=Ouqh_9{9R-Q).xb1＀ZTHf׉{4F %(-/+Mi)O%py 4vCsTEi^ix:vӋϲpR&VB )vAc\Yk@˚ eAy4&l*as!y*0Z[!g 0ڈ x  on\ϝH;/3IIJQ[:~fN :MWҴ8#j6V#6SvOO"m"bbPaՉ(!U,o珅[=t8JŎ( z(լn4Y\NwcfmS,U Xϴ9@''|Caɰ5xʤBh0v.S m;D{ijmQb),ri8yq/ DURM%`_ӢMPlP2 #3UI`=d@`)⮴B @(:{5  o %w5|!] `(b["һu)â'uI+ҿ(FSr8$P RWˈIm2s?{oۨuQCR*;BЉs:Bw^ҀN^QB2qˌTҏ[a0z|+uP55uVVE#:2*vLd`Z}FvT)`oIi@=M&or:NeZCâz@m{G(ڧ:UI hdVH`(yRDGP;gMc&CmV/}ӌIjk͵2B##ƍa~ eY)7z 4>Z Aa|Mu>Ÿ+?iT,n|"ׁQxZ['F{^_,weGj]t )El6!=:cɑn&c=C8|G<@ ሡ@89V`hS,Vҳq|xRXk\X,݃6N ݡq|P0:n#xң5ԖZnk$/k0,; cZ-l !#v2m'C9zB&ҰV`0aOXk*aLOY4!((B:ʦrk5rsp]i%kmų$VDzgh6'T1Of@2}L^dW. I=0 )Q_Tt:%ᨘep%k!eHl{7_`zܒocU62s⭦ƶ.&)Qx~nhaU@elb\ '<ȣ#ò(H_>s`Qr0ZTf;QJ=TKIH^OV*a!ٓWK(8/yL )~8N}M>ZBh"ͬ!W?!#٤էb*?|}2MLڊ*R~_Pw,#7,ׯqx~ꄆZpĤ@HO+{l~ckS6A7Sd)i윀^RNERYJA.!./QD[Q=x/k>u-!h;S@4ЦxGM9׀NA9̂DGĴ Ͼŏx'^>Gü(t=/DJ*%,@R:?A/ML3$mI\ç/ jz[+&%0Z K1[m{0jD,ZQ g3J[L7S &,3_CuA=S¸ʤAjxԊw8\PX Ɨ)>5FWއy%2ˋX]@+4p<{*MEm 6NAs|jx7_ Q>$'M[BAz4 i{ +#~;l^ [7)h'N:p(]8S.QA_<s}S[7+â zQ&{Ov,bt!yħ ZNCa uO F7_ʩm}"{IKu߻u42-1ICeZ @ce7#Լ!#Y݂7_iAQx~G/:OCV5LG>z,EyA87 d̔pa?615 `=,頞ѕ"Gub+bO'@2dSGQk>g^^ 9Ky&x-t$Hj@wz3Bd9"=ș^̡uwk,9Ke]8z.6ANu 4G@a\8 \ksBy:Z*e>-ҹp2~P>Z N͋a%s6K>3NJ2ں0"lKrz9#"ׯunP{ˉsp<1vDud/檐n*nT{zt9jEe23|.kD4pj:ݩ1e|TlT{mN稿8{>wx̜-qt{a'%quW a1CqDw;.ND&}}'m2 ]DG8H~}߻ Oom\S茷<Sr[=\8C),W˫6=B b<TI=qP[݌NX v *% bbGGY(|:hU}&R3+GDݺKb34P|n%#Ssqb1t)%nl~AFN= ^ܥ6CLpEĥq|XDPd+ ܨJ|k2TYr\הhf *G}d]GvrNKB۹'\&VX.5YfNEQۨK;0 +kȪGs%)î,6CΥ2>g#mZ>zYX{v"]#>Խt:cY!ҭ: 8\s0^!8"aRan诛;v0a IDATU^ܤ2iwƶ<+h*ARſh -N P*S)Lhtևф[38h* ڍ:w RO;Z>kb C),G@p1G)(d1N3S!#Bi8UVGm^u&)@]S\N{]Tu.QxY?TYwxdW~ysN݁$03P$YtFÊ ~^u~ J[:!;BOfw5qYaj w|X(ɶ׽HMaP^O M3=brbIC[PyUa P:|¡Y©B%91Iy>&MӠx1$3rǶZ-߶tHc=怄 5ʧtGA>jwEOsPFQ/%_wۧt\b$Pc2)Ec {w(6Bc0f(&IɁz ."w)4T;%G$'Syv.lVFAʤha謬[gcY4鸠^@Yc6Dc8$ҕUh^pge5,q{` m%R5T. &ӑA5O Gُ|o%鬬B4"EJ>FKWI3rk5a̧fulpkXNL4߉攉1vjOɩXzA ȶH>%hͦ5=ٍz@πE |M0T!P:Y)}PG0TFDBLwp̈́v ";4>^6Ogi]hQC1)KZƎ^է᜘$~-w%bmSE_~`%hxwz&S5)7)2 |@rX[mcM [.<3cxLn;mҼ CW71B7Qʯc'Y?NaAmPZ>sl{)%b~?P|93-K/-SVjq".٥L(/$>)Q8^1׊hSS?!!v)2y}3];@oٯ.ۤtĺG}Dڈ㏶xǡ)*sdzi ^gdTIԟ긦Dc(|TCU7(\J5axĪLo;Jܡm7tǑr(&".:3A;'roGXbyO#UkyRnlډ~4q*Z#q_:*KHm:?[ڗN*zK]zH `2*1;I}-E#gP2i܅ "|cs33@2դc6wsY*SKcT'&&/36@f3C(2ΦpevPހaYRtfi aeo c"m / ?C#g}ctʫ ` 5@kM19L+!SO0?:=qhD.$Ux/ Sܠ0BF[/@>`sII-y&О6%^UQ; *4d_mFw"-g|z,7?>("gz"Ka?m ܾ8 { fq^=Wth_Q_ܡӉn+";ս&^T:9(!e{#_D%&;-*ǢU0>d듘u `vg AJ!j}"ZE0BB_ ,=qq? T!W[/{vBK}p['LjlЩHh71j͢31޺GIx;N3& 4Lr;(>Kh{X\@uUAVTaF)x[^@5"8k]Sҗi1DDBti7ՏfGiˆͿB5"ȪpN Q-@@]FREd—c"f|ib4jD5ɺ[-ɫT=nkuf I>u(ʺ> )w>V22 hDyJˋȿ?=BS XSF(谈DB5M lQςg1xMYjEx/J& H^@v\4FDp{(c~Ϟ™ɢqC͎`~[訥eZH(֑SIJ_=?=|!J&-U% 'qЋy}q;Ews)7\#N" D:57;H"KO8PifWfP%X, 禑ƆњgHWA$0* 4SfL@yDɗp{h͠ySg6E?7?#dzsYLCĈ^@n;lP$J %Զt\cf }_F3d={:37B8_$uzN!jQ֨|AyR&Yh4FgF6Ǐn6P~~ mQ0BjIiA#Ƿ0>iF'.eЋmZ_F)ܾ}{gI>N$ ߾B0x(Y+%YڂCadpH=lb@7KlkvؓwPl΍[yjTO `'qb2AlCs@Cn) X>C$]p1Ԉl}"7_%A O̳y/2ZE `l(IxkWtݡyoh ;$*h mi ~Qg2!=Z?Cܪ.?SDK}$"l\8N>Xlj} !8hI8-xgjTDI Ծ<'HT_Wx R)όV2DAk(Ğ}8:X1R ey_hGƇh כ8C"S{ivJ!w1 I"Dwui"$KD {@t6D\6&yd=Ae|&6e"D|\C9,Uj"B0Nw]É _W Djo^DPkhMk MS V'S#Qj2$-mZAF C$Q) c7)N(\XfVx*gwX6J>P2} c%vjic &v/g:'& TtE߼|o%?bT\.&:O^ ~7,|E—%Zʕ%lVFc&=ßAYfwH ڽ 0FzQBTQ}bilw3w}yXai)ؓ$q&n"mnf(Pe}$IauusIT݃)bO*(T}nLRӐf>Cj`K68<AAlA/T4r_[!sBABFmѤ,JX_iJ5ᯌ 2(:rxBQ Pqr!3MS~TEVT$]G>_ Z֒@SAVdǐѕ6#MB|w/Cx;B*+:z[2|Q2ȝ fYשyԟ*7^fGmڹfPG+ShJ͕2hbYTye>ka8{ ;BUn9ܽަV9fm'7:20M&%he]- g16JO5۾"y~OSy]䳧P49ǦP1d s012ЏJ!֩GyܱAL2=Z7{}ܑ~$EA:,#) Cr\UOp*(ș4 Sb_L!:5|zNTAeEC<%qF2ȑ(hp׺4{\k#&s("7xbTT9:7H{{Nk '!ζ@scUWų(Y|_/LZpXFv<=~Z}(VEsXsYG(: ң A gmClozdOfuy%xPDǐZ6k~D8HhL wR9ԟǿq'd#(mO$tޛjDϡYYft*J͢cCkX? Mx7*4F"xL _\>9Fq|A;CyNAA[f?wO)I^IFbW2$}qOsPFW9??ƅg.)[ #gSWP'ȍ0w=פmضVVBQyl$JEIGкGCQzAA^`<;~QS1axT4%t* pU^Aع)Kw}]jGiKPB/KD,ں-\ S1E$SUz$ c!O CA!GiA},I!̟$Qmre*='_41lO:}WG; -yhЗ˱>w{W}*Bom j橙-&My *NDk{ N,Pd*hZnπJ4|s0KPzv"JQ1TG߻B{WOm` $&gOj1Cl_SŇL|:.M/Uqp%4\?8Dؔgt$w?JAm\9 74C6NÉH8mÓGU{{b?NDDzUWPÎdEWPFOׅTF:#40H7F=>mY"[UPR1r?XS;qK锠G9S1o AQr_-b>эz bY/>JK7HfDq!zǤIm yA+3f秫vGNVV`)AtEctnğ74S qU,\@U=mܼIU^ˋ h5Һ P}~9NߣA+R!`݃Pj<xt ~)EA&|Ҙ'4:ը6o Xq kW;K56ݐrݺn%R¬Z gc 1Z}S0lf=8l;] Qkm!jȶ'$(QSHN6g ҏ[Do#!G8mƶfBJsP}dG/,ok*1 c[te8γs8q:k6w9[숼a̍sݏ,ӎtd2|eS]WOqVV{܈ClJg4wLWPE6 /9 ;m3SN%6z\͡be h_!bpW.uޭ;0I{Q=4>Jut8Р;u_Y;?U,7LZآ5:'Say'ek*eϿ6ױcE (01KQ]#;leKPrYamn#i GCVhiSTuAgi⹎dNG}?g1@' %ma 5Z`uJUV zJj2ǶZ;{BsO@Zm O DMO5qh֡b~lPMry 函Gtϡ1w*B^dă@ݨد#YYuJ 6(: Ppo%Q2fd!gk8)I6uƗ}('S{*Ѩ]jۊ<k~iof8:A,Fgf_LciRMrCL%$\J.)OИLA b(m8P|!'߻`<'F<^6hWLF 5-1]&( 'F]>^na}8{ea|),l Jn"!/`=G{8}OIR: Hc9j/Lצ,S|?hص t[šDY?^ƭT=YI|&b|?D2tJ%F!'A[Dn;bZbBjL#Tw/̑شn(in (?A,KSs@P:\H}2Lsɔ{EhE63x^W⹡ ~Y=/ΊfHE=rYǹp٣ufDZ v$ IDATID Eh1EY;(pUn~H^JMf'&[s}A|$W|0 jɩEWz,Me$d889ACʤ96!!:嶠-G.jx\ o! QcD&{ѧKQTI}+$7f"X:7Ckqr5m H 'I\ipT ~mԟA)B ]Szu\8q&zJ)T}j>Bp(hy *Gs*MmLԣ?1[69?;r9b6Mbu~?^GkzOD27_^$:c,:2 (5ԧ62MO#a.lS$V'.DNtmnwwP{at:#%H%_UsV`N$30mdeoD޼7B kM9Z*Nd'_H-A;8d]BW$ҿP,>W' M4AWkMh2D{9͕7nPid_>b^86璼pv2Q) Dvd-jO{x TFhī4C%n?~&|povQS<04~[dL&dJ'bƗMs%1gsMɗ0x MbM8 ~DImԵ=zҫDa߹ᗦo'J16ύ3HY*5M1'qF/d'enBj[]\@fj@`!0;{A@HuZ7zn^)4T1 C-^›C `@kV7 OПHΫ;ɟd]DIA!ط,x%aZTvFǡFN%iE fkkq1P㘑,D6KTfuO߿uz,o@+(4iFmײx&$=2OHfD{H@,Ff'KxsV'|F>{Jlzv2Bv/4L0ClE%{G[FCZBmz?.Ыw?j:6tat1.vSQ\Ep3r)l갈8/^k&%LQ:Q(ss=.xb:wlf#jxHػ)"vT*CߺMSrYLƁQvPM9\PZ4{ VBQ+Pq>4qFYh?D7Q7Vϲ9~_{(XmVh2&&)+>z1Ԏx渇E>"7,a4 $H:G6 ̌FBdT+ԺXC4½sdSsROWj5--DթMH+0HDch5'X9(㛞Sc!_<5/{.2.S1nB&FcPʼn:Ϸt\! DŽ ~_FzgO!ڇ(űa 9׵}}\x[,P(_U1bb5;.NrML$j"ݐ`@.D,⅓( ;Db|̃8٤?Z'y^5RLqyZ_HbiD91WGu;X]Te<-[e_3y)^/?K3]cTvX.rg!:/Cm4ubMA]E"5XmfED+̻YB"k41iYn61@N>_,' >BlT{ 8.=E,M-0dY:6#B4.CCx n?/GQ&<Exrui-9j¿|n(pvk5=hFIky֝':~ķ4C:ƆB A'B$gԧ!;~% )Ɩ0+7s?19 s ֬ȳbQmwPhh~f)#OqԜ6xaYR2p @IXh `O]ܨ6ngM>/g 1ϝB]Tgmk"E"(>ZqޛHzw~{gg83 !)Q%Rb8& lYd_$l`0uݵ" q^EK6eQ$E =GOtUuϕ{H 7@?}/iO=^YBmgs[-WnIyK墂 Gm=:/Na\ZU%ЛBmA~9j_/?DɔIчh DtV$츋cB6M9'mn-X!sqT"#2Z,vknl;&t8۸.-:r2r2N*œoi2HZggJ: Hք\ 6vY\]1+hqv^Q(YBw{G͛FA{tw~$P. 1'i/ p @ {=FutM̖7=TP38r֤VJM`W3e*!¼yceD9by=YsElןǝ.)J*Dʌ/{~W"BQ?ŠHD;8K+Ζ1ܵ ܙ8n2҇[wchK3e.ݬD.c, U H0 =BjָL4ѵ@7Қs=tӟ*>7d/ବ|]^1Lh{  Zly), .V>A(ڧ'N) S,/x_B#`ZIr.+BO *))ra??CѴs֢H$b4t {kx=xo1o_1XC1+*~Œ`3u$UKҜܹ]b6,J`d CMn$N@Fߨcon <-itVI116=r\耗V1o ŶGGLyŎh"StweaքQn6)#!tE! evUFoJh8Aȶtr ſ[VbMβƉIGSRI`+%\:KXA椆\,@*Mjv$ś/F h`Ir #}inݙ"ݬvc%-k R51!pe᠁By kB*Ux3%p0R v~_*VN 3+P<>P1О1&aHo,Aux!G_9thy)PqDFA+s)Ň1Ra5$B+>۵;b\& YH^)^?4q.-LaVN㬬 D|8FR:fV7|d|X$3fX))4ﺎ|iY '.9?tRN5t~E\?>/xCY:>q@);̣hBmtǓh( ^<˛(SX(/Nd% P-n&ImڗQQKh]90srȊ8p(UIQ.rƎhL2.3¼Ԭ8ؿcyA?PlZW-P>_,c |ԶD>d'PjM=WGr(r95':1A`ᄹI@Ex ĉ&x@¦"U>cGdS7pKȶw]J_tCwo}?>Ct NGQ[|^(t΋Ed.N,HxwŜj (;wuqݢ-ѽ=?#wQ:ޕ[t!vpCНN7iOƫ~ysMB~>|h t%g dx,-ݕüC6쐰|(^&;Uћ.o^$5㳘;}C!;wU4ن8^,BgZ <䖂$X>6$nMDwC#" P@"jfQ|H󫖊?"oN7mtR~VGaDQ'd:O{qxW =U(s JnE,)~DMϷ'|qQ, ;}z"(fc.0?+-:sS-%5KBGtfM]Zŀ7#ꁂrg6-8~pM^c` yLIead n":"#d]}Hd] #od좵r ұI,**v}iE{¹C]ג[(|ډߩ7P'd bvCXȉ`;(xTې1;h-o&*mGlv!P#[aC4as|=~/"$GU6AL%h-H]((}q7K 枃#?dKœZC :jdNu Uuk?![II&( Tx6HeGU-56J&%X ٫{BTkئ.}7BחLण4~e:Ya38Qщ'Y8ߢO\LVRz{YtvU%Jqk~> 콘$ Zg/`K"#?r ^S*\ϠdhŘئ:*#HU27,+>h^^v^j="K.{ޕ[]~yZ(~f[6z֎h\?6[7Fxn.@Φ?=}2)b,׏juJ_dgH@ȏ2frs &J_&mUh:d9>3FkX.N+ťS52T ܓϠ(O搏(saGw83 5PJh7@'%T`8R+?7(#TpnbT-52{eb:q%^%j-jGpH #VP&eymBNzŸuh@w%˨UtQߩK0?Wr)#S6c΄Ő17TYtNFށ]Cn= ?`wd쵥-ψVˏՊV9# `MAYͣ8%W;7=%k xA!#Mju?[ )=bw4Oܭ; MuB:o1jЋ!Nb2_,%Z %jrvHDZY˯wB{bN(2l>(_(澍| {B3g΍->=_;~nZUTi]*]pNNR[D/S1];{G uV'"$>4Z62d/l? Uw8mv(~:@ G2 v^ SQf8P,ؙe IDATM&P)3DWmB;6nUeI OxA'[8#:% H{Iz>jEP0j$U|Z*,q5[SxD8%LgL~@v$=qvrEwEIgP\Jݗ ./nsI%ZF{y$~2IdzO~LG}hXt*$-/#|~Jc_^'U,ƅv"W\?7I&ބ MLz΄њ|>JHD*KX[ 6J4FL'Op dΡkHǚL{5Z"Pw C-F$C^Ok m"<,:pF&4t;!~ b2vP!"r-b` z4MN"$~K3 I -c_A^DxEq,!="(ǰCxc e0߼* Ҙo^EvQ1D56^<:/Q)\xubcrY=־2N&re gg9hxĞ-Q|EuzgKD:d GHtr(DOH,v*SK-I=t%K PD| aO8DT7/ő=~\tC B 0x8ZkkxJl84Fxf " +t(q}Rnбlu ~_ȡZJ%@ګEnRǛƲқCtqV9Z;)W RHt9 &P﬉mqYZM]1SΡ4%gg_RgPd9݌3(@ K99 "sx t`:'"zHDU|%M m¼?IH[}fK̍}<ǡ}inNA6%s9s,4`',jA8(k,}~п ?Rx/֫ Hg3z}tJ&,0[St'hkBs FqYcڃ D}xO}Iatww+U4,Ҟ#zsiH/Ӝ ,${u_ѕTP<7!E.#g5Ma(ۭL;[ h(~yUq."/oOCmV.M!=ZGr=8;w@Pk-cӂ㨁 V>?!;O|gi`IO pCDP"EF{[$_/3f҄d{"2pUW%%N8PDQ4g dKFls8/;g41w}fЖ҃G@᭧CͰpJ{2!Itw:WZ6h=8* \G=]IKwmSKO7.e m;6e'~ \؂߅ ۞2 #4b6Ewؙ \wqiSt ѥ6H?T=83f30O6NP=n7/bz]򑷣H!=ZMB=>+"R$hϭt,gȴʮpi},#ќ}TB] Z Ъ#83nMXZ#,riE0wՆPJ_0wzd#A>Z}kpRPah-tf(} r}ͥ<^`UO~6|[$nG8r^'F&bІ@ThM fHZ?S8{gAfBP3Q;첺:dUԞXFU0tBFJܹv6wph\Gfy]G::+,KԧTܺ+v=Hjz6^&!``Ze% 8O3 OS=rg륄gSBհ^tzYmcڒ@:6n؇ Ǟi#wB\ḌdrŞY}S݌C>{*xDǧ }<]n- *bizp&ܟͩDmD0ʖhF .%h7Q~?DY1w.M0//w}ҩ  wgOhC!?TeD>UMZB\7>ˮ<9MTJPڋctJ!Z Yr2h.>FѯJ cLo9QmB:@-1{8(  /=JnP`D&0o-EBO{t |J̽a]4JQ'b=vr)2d^Wub+6ߘE/ )nVX$$6kYi 9d<.O{=9~Vl iaݖ"2m^mài/*.y;z+I~1oЛJҞI%>ۜJlWQ,kn67vqQîZ*.Ǝp*DŽV6A`B@ "D\oNw.R>w㞟'etcQO'Elm а{ 4P6c"u"O(ZkbQA.͑ܣ}& "lg x&qtCx_@"c,+ƅY' F'^y@ 򲌗 9`aL#.4>F{WHDE_?!14[xcch~zo2wƸ="ux& & h~0$5߬Ź@ 7|`].찻kX9+?0d[Fۮzn XMiH ë#r"u<̊VՈ.n?x/;Y ym7dOH|EbSae#~0x7Q$}MӹX&ƛGZ^0vcJ΄Thh90kH!Y#͒|)@< .:__nL㧷Co@ܤk̿Ntb?^/b1›*|;kb"70|" 0}$d$D5Tmn(˛ȱ(J~ v "&bM/{琖duziI H>P]|cW O)9(= YI!7ӥTR/yz9BDMz) r"A/kO2{Cg8B|R$ ͇T>7U@UDf7}a~B"UQ]0 !q'wтav_ހFqq qi^ GhS)z)tNP`uSc$bD1޾3HWZ4cPΣ`)"91I9{Huz#=&z t'ePN"_OҌ؜,#~DwU.ܙ%u Y#Ncҷ-]Ey'Z~zBV;@ޫa}jk0'wn^8U&vN^'ﮈlfR'fN*d{@( B?V2 #H6ݴY#6d g!W'H~ɼK=>Rp6Yzeܗi~n OMKcH>q'h28'rk^! 2ݧ!OVQgo0JverΗNa/q抄;;= &RJ:+u#wn, q=WB{g~V.9ȣJ:E`[84{{PcS7-ח vXEoZ#Aگ q'Ƅx^K?&w8;Hy영SJM/OR?RD٬ r#x{yYVAD=>Vg( x$xk0m=?M6MgE>}F'tu U p[d[M"ȱ7vp823?o;U`JwM=|hTct ) ";EJ"J" !cA5Pd+[H-ś+S9cV~A.nӾ4Ca] 8{]5B6tP,+~%=ZŚC٩ñIXC1C}si'kHÞ_#WgQ! $%S [tNdP{.'ɸկL`UJs2ӥS umQ~bCI$Rś)! ַ_B~1<9^y@VƆB^G cQsQ %זI,viͧ?uO C4!"ߊTE׷y3WĸxK'0pmqo2O` j_%Wi)ňdh|q>;uiIb(ȠiT_Ә".ygSN9DFSURtR YfhwsHcd:0J.&mtcOD ǐ8ƺ@er|W ERO0v/hm(d<(j'̊v}lH4 a D2]v5ܠNG8oÂ4RQd<ȵ QsD"qp:7Uqg1xhA bK"C%rW{tq:U SU&iR")/by8F0޻eP=ͧM\F؊El,CF @iVi}u;+{,p\a}d4z|TMF韛<4Er!d?Ө5$I2\)$v(Hב}zsV.*E)mr,fGxStKB[%\STq] !o#]<*#R%2ʚOQ"h]q d))HAEq<((%AFznڏѵೱHBu7v(xpNjaާ-;j<cylFIEGK(68۟m*cL9vi~FX#I J8Emh&l>[zCkXH)R'*USsHO1($ЂsE-ӂ~="}pqr Xa}e{ QjAA}$ܚ[=z3!1FdhX<ɂ0OIŜ-EE7Dg?GHo?H1QܸK.JdvH 2wئs!B]ln.'#*vik¼O7md1=!eZ~ɧT%B8hOG1jO-@,bZ-JouPcxH{Wnc;6#88Gt8lFFK}$\iY~S&0_Ĺp7Bo1![NPQTJ>Z*O8NLA:t[ XЉ A>J=8=btd>麠 "ڱ0nIH#Y6f/?A:5f$']~ eq;`9D{ hPQGDȺkz= #!F¨h-;b]5'DFDwD܄aGڤ AMZ4"`" :OjEƲS{ GXv›РΦS 'J2!CC?%Fo:M#8AMP(T]?6FPA?|G6c8=)VXJg ŒS!IcZOT{1@8C=a3,Ѫ@F ɧ P;~$naTBH+Nz\G'"QQpZ[y0*TƂ5Sd#]~QX;Kjxulb:Z۔) Z|Z5!XQzbNYiF+h-2k-!Ǟd,QM~B~n.0t"nuf g9ӵ4Gm$AkK*갱O]'l: z߼H?.v]z UllF> )Z} rg8~_;7?_JƤw-N&i ?]Ɔn:l-@e@2ᓜTY+ O~:DW1 1"2(]4;\B$Hgh0s%^is\DևъأmA=GB-ћe/}AD9MC[ih+Q*)}xI/?4ڞ5:GTTQ#Fֺ`ψi32W`%(CzQc,P%㈜7ɉpWHNuH;~th~$Ss8՚o,$:r"*3Rކ@GϠúǯay Kk;C 9:Zߣٛ( ^}ft*r\Nh'ΔrgK(a=4KIKua` eu^R^#*tp$+>- m;ahU%S ꟡Y>k{ t(+Ty:97Bb2Y|ާ+[PsRv7?gKudC9e]g}P*>^иnTvzkU+GjHo&-΋F:M9)јH~:ޞhU_nvhg#z_DJVk[6g䃕Ow.L""Afda:sx*8ϬݿG iHr +HDإSЉ-~)ڕ>oqzE0b}v[_xb%i _Q>,{&2mO^+i.63Mz_8'iM` 4|ܷP~1]tQ sLcRUM*R8$3E$E!p F38SF]S{!"F,4yB~1J2!hm5z:Q*k *MNֱ4B#G{*&*Rmeǧސ:R$  ͳctNt#ٖPH}1ws%Þ-?W&0P 'DX>6;GWtiszSh7+7 pb&@e[=n`tz1Ct\ mzr2c)GMFCpWT__pe|.O*ңUD(}~ $IB&(W]rd?$uFo@&$ݔ:M6+d& a,B}>FutiD_^4&w:$ndS5et ;cJa""6ebM7HKD$g{ImD?}i.Rv+OW܈a4_}~Ճ؍ŽM$?+5Bs2UOR?Z>CXVQZ@ᄄ9)L[.M&uU7ghO&-5P݀v@s`_ޤqOEK;MMHwq3x%XZ`ڼY: bOl?=tЖ7?p1H&)yڤ|:XP5I>*Ѻ0E7|V(u1b51 Z^,IDO )|Kam%ـZ̚bYh -EQkucě1C{$rId4|o0ԟ7eڥuq#L+ tgƔR'_, ÃZzq^lޙYNQG_;Qw,dPP}~^`WDN`wH=oZoj?0g5GŗQL4{9-Vz֡ XH;6KM`n Q=^`r ,#; q5z '+}f^CK$}mքBm"mkLvIP ԕ ̭:0?a]zA9Of342o/{..qR[(9DsB LEQ"˦z8RYoB,jҋE<3|̬Ym9oncm]Q\+UA9)/6%B>ui*JܒȗR>>?ƛ3QMA4M71# A)__{e(ٕwf7ǯqNN*0~cg'1Z^FQ55XK$%zUԏ:T78PpNNH-P#l)}}⒨6@^bz{qNLZudky؋Zj^ I \|"@mW9QQq*g 8yBA=v+g鞛\.=Onb֖7U8:0^0YDU4Լq{+(/6 ƩK JjFl/a^w==yR9b_\%fv4.TMG_kw=gkv>;>Q8R92l]8u8ړ5J̌ZBǑgPHv=f,z-W]qD/M:iaJoQhZ&{#Gѽ.|!`ƒ(b #-10JlF31!W>ݼJ~`iצiY(#l^1ķ:ŁYotoiyY*ݨܔ&l J>U'6v %$֥.$T 6\1}5d$lRKm#U%4t"ʑYvwd(J[ړI쩜93#}U/.1k/' C@/)x N*(nK%8|pشD8e ~z*-KM[D4f(j,ëJfPCУs -rwKxFb]lLENDJqIb+t୼w^=W_> *WbGz[6j-G[fՃGcRq$+@*}Aq,J*ZF0xBz'Dd|guK-* rZTY*>zSE*XUXH{H'*-n(J7ij?وPf# wSte13Xe7u&n?o6IA%&HD}X}omTnN3balVIr5b{]W0ԃQwɅAmYC: RKꅨ#CRWjNbNj]6z4'IP) qF35*ןic2f_!w}xYbǣ1r$Ԩݏ%;T?;?–Xms__P>YR9 Jk˻\z~օ6~B'{!zH|7 pN.oxW]QN2\dFz@$n B?|Df!=3}rlz+NZۥ3a:J\Y%(N8sE9g(no | CC:}B&)Q{MֳD)~gye2A'{Hpl ahh7_< 1htWaRUOoEjlYN`?oIt!+-̆/H"DO.Z>ߣ`{WbuʯP7Ju{eӛT$ލCyG}$"{쌸 2j*=gxF;2U-whםA6cRd\J=B"= `&hg4C}K{HT*P:jw~ aJo-iF1q`trE]mKZF:x+/0X{$(5uYq}\VoKJ^}kv뎦~wX )9N {״q~ __HE\*&zs_f6,ƭDzrSˌll?jm9#azL\9Fo|?Edߋ6ǿq-6OedlĵJIbN,=}UPbԟsR;[Z*^V:6PYЈB3`-OĴ,nEU 58\H?kF07qNOnEzjOSB- SC~VE89GIl^a#}samp`%ffݥ$9܃F'ůam P T'\$ ?zN$C?߂V;Jj-ĺ 3368vc (ʃ':{]<ϗ6/ M Hi1T 췕hYt'gw0ֱNFZj>zA;gsS68t~ )qܳCQV2>7;{reb`yNu\@tt0VkM|vG>oPm( >BpϠ~zK=X|-ڗz6'E@{'S9QZm8CS8j#^Dp9Ԍha'+_zX B@ޫ<^Ƌk(w >~BNF*6P7JRMގ*~r_%CEukqst¨8sfR Օ"b21Jo/U9{z{WHT[6[v$Hs̠=l&_bj|O:iDly3R=RcyҷT6ߜgZV8wBz]F~>7&'.jĴ>_CUӱnc}t=JQ\O6HtdՑ{ʾ>|MkTyE=_&%:qHwIlEZ]!\&0 {T 8I,N1Fx&rQylϡQqgHtrg@x}1kT&L.@-U%dW̿H[m]weqCKPxMEQX%}NNG HگVTriJa߂(=l~3U'%M ĮE.~x{tGS(~(NOnS^9K刉U1>ycNH/jHfU}%(~F1!] %PWd~)y&[4%X1qH07E(_~ByߞQIR]R.j+=DGmGzVꯍEa$4DqnwОc6M<"xvZq`䳑Җ7k+}PyXE!yUJEzeo]}_?ABܿVoE2z]Q֏bms@\f8{}TB1rͩt&WYjh~}Jԅ|t\:OKXnƢyߧ߿_#g8L &fUmo]{϶w}}73\ $&GڏamKtgw=6 B@,}Qv9#h6ИG1F90v9/W @_vr!7p{$rR J>=v wϋ9 w$Ʊ4y2pHEegvI;d@^iiaztO_wD8lSDiƋ˾ߏ 4v^gTl?ex ]ܡ'Hnh]ع@ N{\!A=FfaK $~,-1ҹCꪼd֚u khG:LF;W$?y)W t2JU'On7>')a=@/GM%ݣ7#%J (Cz_@K(ƬmfiD,Fg_[ir`G䦨^ӳ }3>㥾MbyW@ɯt>VITh,+ٙ{o_fP<'+ (H}M{@LԠͦS)~zKٙ $Bbc YAt`j/ J7f.c&ݜlDժll߿*w"4T)'+>J06Hr=Dq}Zg+xYb>%AGtR31F7xq 8J￁?;tbmݞC;"`]fJCjU%Hմ&n RXS?fwM|s`^S YJu^è$nJiOnFyvA;p\[qSfMwNS=&Չ mÓxY=OFdײhn^S,d__7i~-'v,{wMNkTGe MGhW]p=O\B}jgw@:;ŲoUx^G2#R'"`ovפtV;b)_g׆ټla_da??Y[U$'_dQitQuDjU h,ĿK4s;46O&Հie^7n"t*yƠ`ig^tַ~(ff5l#<<{xC .v TK*N$V%=ư¡Kie5~oOc#ȥŞ2:LX)R"hw[GEbG"VĞRygĎZ/l&${3~{ 8&e-"z'1h`SK41C<;]*b,p3#eM*w|.WY5f5 RB,[(~R"܁kwQuA jU7I8?ܤ;MكJGr yhIaviO& f$&cAhhIw8A|[r T+#dxEr$YgU_;-J9NxhxG:PƋVmlDY.Gy̏ot,6rYwjmoN3o_}~QM]s&Lv(yMOW+bOdS/f|7r{g{%V7mԧd>]Pc>Ec*М Ly7=D)>+/Mb$7}IzH^&^0*!nW9B w@X:;o(/W~cĿAl83D~ԟݦ,ݩ3 Sh?@@okNyJ s4N ᜘I읶UCbFCHzw^z>ZȄbn5/И1IAq׷S.ߝ#XOлS ܩ5n;C B==U1)ƨ;Q9̍\xC# atLW'x˴d|n{l0C 4qܼGW./ЇFb -A(d^ɪ8h]HecX(и8Nbۑ< b_-)$&#fIiV8HJ dЛaT+-j[6#8:Ѧ'J1iI+>kCW1bo/L`T;(ߝy8ȧ;4fSgU( {24oRzQH-K6Oht F˧!6dOPDPHfIGhan ncK;.вY:)oMa(J6CsBz*MwH?ecޜ&#T^KCX 6%&\K#|(_`ҥrOU7Ж7HYq?y@8`0"\|efѲY|Л߉@ a+`(W⿒{mIjG"H[:9,BYPkMb=CyRږߵ(/6iMeѹtXG HzGf%&7ؖBmtDL"m:{^]q2:u* G{~'F5qiC)*3[QRmL94)EC#N~2X8{43E/u mLr--^x8YJ%k05yZ'Cjo!kÃ0̌LAYS"*T&1?rh`Sl&);6ᕳ ` -;GQq Z߷_:-mEh |]ۑٹygqjgQLebD"*-i?#,P4L9!^\E0n}cX!eܦ7pONʼ1*㰟^9 S#O6J{y%}t?'3X+eG [k6;8cR YL✜v'ף}(K8Ŋ'euh -TB <1'`n\Z# ytO2-:U]tUzUǞ*QЖ7;{xM8N^19iwп$wAk BU#a: cOf b E8>rqngVῖ.}vꅑHy)jm*M"Ke$XzA^T Tq9e:g@k".geV^nGH1͚Qu1S2 0 gbNJ!1*FKaʧ38i:E{d;(q[ȲhBcr?pSM_N.ȢzdlGZ f 8#]9óD<ؓU LP/ZèVhbE4XYSCy~&ϴEQKTghӳ-[]hzvxuEͼQwɬ:oY3>N{͚ķl 8BC%4tw+ c]|KAI&i |EE9!<<+gg [:G xI41q~t=~g֯pg :?yI wȾʋ|c,@{|K>\ZM ,9TJkT,~}{ls̐+֝wϣ\:M MQb4[͆Odt. (3h[Cy̆OA}w=*moEnR۷%L.dTh uC!q烋ubԮWɬV>)Ď]ߒ5暑igU|iX['c-T bKWi8Yh:F $FEym)Q/KNϕyGzjSYPiNXejdƾ96NP*r6(/70 Dg SJ`] W–$翾k (bƑ,{0bO}-)kxHlO!; =R@hjI Kl~w9YY_e/[y1eU<[D6v}vRh"% 2Kv +5s'pR򳉨=1%d\)bF3dM\n^}-LGk"Rqh4C0Yk{oQvK}NcZѩe1WdI+`~|D2J|قC`wD' zNg0NQjNjzao sSJL|}. [mY_ȚD.>Guwh;%Heޒ:w̺ĕ9bzΰvJd݉GP-G#k?E4GqWuK̡6S^(5uI-Q_VfF]G97Ջ[y!c 1=^=KN{؈QZ*%m!=XX{%s]=AqXr|pL*ʪѿbW\6_ξ"KJ~9 }B}X{ ?: moKyJmֈ"9ݑfK=c,oFVk"7kE>@+C$)zWV^DmsO&,kYX~z*fo0aRpr=;X\Y~"g){2j(uĠ&qkUD|S.NVZCwmO\̪sʋB*_ì:oj[ oV9UAkԤ|./0>DI&$,Gh7Xv#I .N*f-d0rwf)m(<EOGS ,BWlk(y SXž\G]0V2[b[TcQ[$6m&0!C7$B7QSR!zNQ6޵(ܳASa}\΃ % >R$&ϐыXV`9`,'%oEykpaXTOfQm aJGFH͕Du{t $ܫ drw+Q@4֧'C&`(QSxIɝ&^B!M}!V IDATEs'zPp!!*ſتǤV;3qҏk{{$|"3TQF;f#{CH=.E*Fo V?Zqe54&֏o  J,A@!ئ07`V]6Qw+tt*r_{?ַ F Gҷa6C2jQ:c`t%&F<_ml[WQؼ`v3ICOϯcu=!V@['xE$4.OS;Ic$Ba${kRH,iC9m, +UTҜ6+QOw4I4OzQr~WM(R\&b;yLX ts|OTb'q>H|Oltz㭼_x\`q?:Oj!Ç#9LeQڠ3&Ƴۨ }zJ!wuk'Qߤ{oȼp/-N'(~ڢrDsX$o d}7b}*3X (j!GPoQ 9a﷦qS`5SS}uڗ&Il6]+h<[$?XD=2Kx;:[8o |6u׈/hY3 c>xE8sc}xr1+.<`7hU -ֈA겼c$\oMӝ/F871~~-T1ܦ/ F@[ޠuyV#O.JO6kC`Yѓ u$m>1FiaXz>;C-? N:z>Lqc69~O-AH8!W{%]߁͠ wvaFl}]ouk}X)ls+ |y-Ag/Vj?N~y_}N V]@X=_˞& 2jo<)J[8OhØwQG4Ҙmls$~ͷ t&Yƪz|؊jfV ,L'PCP3MMCE E9R\:DwPSInz*Uq0~~$셷vHs ܤ}f$kO % Wfi_L,źkiu _U}-<\qׇ5|:3C|7w&h6, ¡@n?{xk^3w|Rx4I .j* !^{eRJg SY[y)bPwl-PhAr+j2zޛugzݷFoh4@).HZ(ȋF+*ǕI;q$R䚸jq̔'qmY+#Y($X@ciz޳ @wf}Yϋqz1nEUd[6=gL"zߥSqTGB++{_^YN.r,w>$ri@qsHl BŞٗ~v7ܩ zM^ ~_1J jK@P,?5Jݤ֒pS$|Ex H(,u<Ev|J"f;= &̊ߟk$NIYΑn U! $>̺,fH?eP24(>]П[q&Z-[S Pp[ZOLM(J`Bk)v|<(bZU5E&޲Q|CԒT9K/7/x(҅nBJ-q]>u`v:(T<"q% O1C@㚉"vT> ԑ!q&||vLQ,8熊sLO}$/"yfKތKvL3f"ٞP:>S9y]d08I~{?boz>?yAdBu 9(="ݤ:s'P3̊Kbͦ;\Om.@=:4rs㠩h-1y1ք?7Hé$O7\QND];-؝86{dEp^ )}ZY\s ʢ ~#xQbME sDMOV 6OA#***Eܠsȫ?1moD) ?"(0ZSvGRYШN ^SL{ Y8kranWp]|q88/h;n޲}Lv m/'vZ|J" ݤQhMb!QPPՖΧoZY/~=7.F?w b_s_Kx j2RcS3>f(M(4UQ;P%DvI%MY"K֯yQW}N[SFܰb]<GCQrxU.C8J#뺠6٦=2zIdX3+QB?.@){Q}xkBqTNz㚳~]@c: 35LΣ5hV5Qz`Ԅ, oqO,Q86t( %׉_ݴGfIt7D}^?]w{c:kPN駔LO~%.>'CO1~ߩ >;^ !d;ȉpmַ\ωz$R(aou${Ͷ 3ftP儨5K~X:r;VWEQg6~݁x) T#pdu@aT|A ܹukYY^tNi2R<6\~UQnFQ((.rzq iuEŞ; qvN ~Z372)j%*VWD=xBՎ8į&3cXn7x;lҋK8UI1!LO wۆh21JZ'n%&Ghvݟ,kl}ڀ["iz%_q$+yapH!z puq R-őmGM!r:ѿHk&Yu/!m`G$0zQIܰ>F|l[.~,AgT"H- Gh76i=?KxA%(cG]B9 R*=j2Mł;A^Bw֑lJ5 Q1dì*įh }GL {"N)cUxJ"޺tWV/G5`mSroq:# Zۧc ζ=΋Vr$ NՏ|^YPx=.'ѿ'0iNk!I~D>p >0IȵP޹,$x ' u}Xq!iOZ.Jr! OO ʇ .bΨDCESX1+Q "mq qѵWT̲hI!#'G[x(=x8a ;y7Q,-]24ĩIa(7o_%nDQ6WzQ7t̟@ +e,,'^ 9w#AytFUOAw1/n>cy]U#m:DU(\@xS$T?jw>O}(&k(0>2$S%z$O3-4gBpeX{1J'TB h ˳C9:߻(}FGYtFt%EʄENb0y-5IȻe@ufjvYvh,@o6fX rk,Nx(\5*yIH7.ieMd0ݴU;JZԺH+J}&@b\aTmAgb>G%o/X߽29YlD7릯,H9} 8Gg>rgα<$*"_FNƅ0 ͼJl9ٸ_|&P3:I5QKq,i2JFc)>p|}Yy o)Jp>PFh76;Bm.@b\$e.3Eg>Q\=3}n;o8zG8oi]{87;tǂ(jsbh="xcΉvQ޻jYGvS Z-Q۔L{:qpDN<Y$/z)g@ttqsK6t''<Ǒ]L/)zwwiW&HzWiϋᾣKI&DuK2Aq אz+9%J+2 gȺNg"Dߣ˧qR'fx>OmNAo@23a'34 ؘPF(L/c|gXQ>ߞ%,HnRb)̪'lҥQ]͠=qf& J )\[3a*z| pPJ ZPWw Buօ۳'AwI&(j'rCi"g*b=W6'{. m ^uU:)ur,J}umݽa")CvX͔AʏY*$jr:(S9={(Ϣ^N#wzRJVT?:)Iׇ>9dUf*#58'_[-˝Z-W郔WN(~q rڹ,Y4s'C!Mkw>RT gҨ?x<,?VՙiPx+n3UG\:V5޾##ɸzq~<"`6/um%H=]/S7@>z2zOt"bAm7nR|y/d} )9"!2;XTlm&a΋gÛ%[t 1xw 0R6Iq .P4MՒB8nKX1 lET43|k-Fաkb+|繪,/QFCu)Dvm]k2C_%L 4޴h̄r㘛M̿L}YriZD=SAF-q_uOf]&^?y#CDu _Ud[PJ&#*A._z/"|΁)" ;$>̧7VD([JN, z$(mg8N5EOV^D?Bru9aКybt+*ʞYqUK6]{+*<}}dW;6̀8-wvwE?n?@߮}㡴,*|`jkEP?GmF#}9F Ԏ+􅪹Z ĽzSPGiO\>vXdg;#m.+mJK:jUl՚< nBu&寞&XphNh,v~@ErDnSEMoxBg!V+622" 5[9cOu9@z049ȷqB/=K`)%A߮QBT'HP`_b 0KBS"8K$nu o٘%AwGIp}ʠuF\t ^BƎjə<$a\.kA϶I~_X;Ϳ:G/#%b5Q5bE6ZYtx.iq~n{uJd0+~pkdA|P"KXCpc!;3ixp'oϲylz(]P"[:fjWX j%w%{z} =T,H4rn]t~fKY^DۮWbۚˣԧ Lա|WRvQn,ւ=A'ٴ:d&PG<]Q70w'>6"AElk_ە&uS%j:5 .{&ǏH)ao_KDMLvuMnI^}*w.RAԟT;=M0=b?Τ wD^C>zze;`9Gi %q WqdgWlP̎ěkgYI8dJ_SfwCgܐ(B]S~*:$G?Q ,/"%bZa&pt)ؾIu(i5\/ˋO= qz%⩌`N<9SNE0d?3 sd[(9IzP?194'=vT5O}=I o;k~OA^txߗ'|9AM< { 9 \\:3`9BuQ,qȸxY<̪j+XoT}1puml W4~giC^2(x]Z'M( CS4s3fb9_>Eψ\yA7p x=F霜 h Ok߭(t@xZ IDAT&2ijs:4N`͌vHKm5% *J ^JYcQ<|O%q&,ɕ0@>!|bpTTLM _Z _?z%Up33`_|I-'?KoW7&ϩwikbZeK(/+ȶDs)(n!I ab%gjiUvt 9ʄpgQl)znQ< bb,M<5%H̺ aa`"U4]2ID -LLFq },+cy*;PD^%m#30եW]$4>$;~xnfV{$'TQAjU. yPBC.VK :I o67;AF\蟼OS b$E9L4{OݱLM6qJ5 l[߽Dc /dcʫ. a}'TB̊GgQomRSvPE=χ7|(cc<>A{5%76y`GD$d ^9(LM)l~1Gn',:8X@`U9|Ԧz:^OG#Doi`eB}{#Pq*QiTA!臑%}_Z_֚2R>a-j>r@kB#|Rl_{HSӄvm:)!ǢȒg7=*$w=IG†V荇s$vDKvPj5Gb4쐂8Q )X+y:!̍OLўP|tGl|vo Odg$>Ӥ|9a=.nP%hН 0S#w%_'` tsSGL* gs|J45K^L S~jS]2IP1rBx69N+Pf0Kqsi7'olٲ1QGTb;8c)L=6t+  0VL=ohNh-#i?T۝/M {fNH!yMsR=??\%gi_k=,>8F<;MA=CGB?Io:)(N &TA={,Byzr+S:&y3Tj/vBF %Cڗ#5@>04QlB$PWjI,4.L:s)esa;NBI+ŋV,EY_45]W(v3{ŧ3BzIz1@ͣ~ш`Uk'PJUpΡ,N@$w 6[p+O+ˋȎ;$^&*HDAu H}evJqlp_-K'Σ2 .՟"\9@ǃVerY7Pz.#G8Silw@I/xtډqzD}quk_ &bhd:P{5CjGKg(0gDĕR f@OǏq#rja>t>Yz/(!.m!'4QHL&#-xdSU=^ʠDN{fFQ zB5V+mZ"g)Dg8 S{P ~ZɟßQ>ɫ>vT#zڴuzEp?Gyh7(@xXP&Xi_aT kU;xI$iN{]8IΦ`aܰ]Z]g%9\H:*](/Tbdt]n)ڂ_m~YZfjaPŎjȢ3_OBwB zWgNFdD.8ssHczR÷{C͹ucI#/hͣYG茙3PZV=v<ܠQ?!nD漅Ҳ+>fg{P}}fVғH*"9FRP4zbR}}Mi| 寞|Pl8-ڣgB5ȎO{L(S97/P?ISxDhyݺ7r{;,̫̉kX/зg ʃ]A^Ld+"S}qgGhL|wU>QJ fGQ6?{Bc7Do/.Q<7bȺN++ x ~UT sA[6,RzSf *K.)ys} ,M'}QLVcobhz+ qn3 >"vS">I|JNYn+"΁ #ZJNXVWcolR )qiM8SXa+XжG?;cl|*q 4 BZ l,ŏ c1Q]R/Q)RBX?WVWu YڂGe#hTC%o&5)q>~4[h}|FNG"zϥ:$5K!;F7 k@샡 ;&߲]b,/t0zCpEu)qG%nBg߼wHõV;,MKXAv g.L]x4qUOa5Fx7rxUЀx*ֽʁAWhL{ ߩEchgZ'>3" k6??Ay9JAa5F}F\ M_Ұɯ/)C&Yľ?#:dΩ0$TH%&{`)#xL;3Q_z  EdNx˦srklf_b-lN5x,&(5P\iLO\OᨆE͡*买}y*2C{Uj/r.uTpz@};mGlStFd_+ v%3fIK 8Āj<FYN$c€ObnBw|J8ҪB̶@o Pgև|'?P8=xnf3o; W zI.1p aV mvEs@&3T|\a/lbz;m$:\/e]WK+T'"Oڇְ`Ps!I!0,:\Nt3ޖd{C;>?( V4 ' S^T鍋tpzuG—'h~(#ȶ'h/ ˋOv({ǔ4f UvdڰC> cwyMjԖ| ~*=yr^Bpoz8M)U1+.m* pMDv@vqӚc<9A3H}a*Aj3ց 8PNx `_~B. ;sX%(ˋb0$lzq 5nf &@n::.gD~A֊mLhI'W.kid̲M附jݗNJ(Cv^ j.>]kuSNjΘb>-!{MeZ>FIFkAh!,S=$o`HY itH.!Q(%Wkhiv ח-v,x8 _x+7$B } Hڑ$|b^BWd M$IVzӧ3"Ӝ(WiMJww%P06> D/0*Pa.>c#D=Neif$;L4A2yN@[(??"H%-*2kМЩ5C/K eҳOS>$јHD 2~s]hzq#-%ZS.g<]}#,{P>!IiTxh5^gwyu#(egq& (Ր|iڸH>e׎K@6=E!4>ԖB";7.9fN[;BĠS{?ǎȘ%"yݔ P^)|"^ {Ir5>t>pyNɓU\p}KOVM[tt.FcQЖ4L4bw6CL_n8'^L*<--A{a6 lLfe >F3(w(3IQW$>hӚ P8azsiϥ\q!2?lϥ,Gs &6dĨHt?Wg{1: /7)1N_;GT8Ԣ1>_3O+XG:iJ.3w,TDۯDʌWoSx9)ZY*()c!63qo.?_C}dGd[Y3)(4 Op:E+`/@#mjs";KZtS Qfz*:X']ڥFH{D,JX1P[Y+ {_9&I y>ݴNk6BM^DrϐXZnGgYH),WI^w&e96v js 'YҘhV#ꢇғqMh<:cA| Z_wG sKr¦󈯩80QIEEozxLiE!ӞЩ,HS32rvF^5njQ7w\JsJ"vסurdͣ%&P?'7x GHr4ft"5WiNQ8n#4|(1' N:F达J/P>=BdCkȏv)6C#"g'Sy@${ 3FlS]aq:.}aF($К4i/,x"ǿxJYVZͣv jE*TQ+m;ĐϭJ wV$+TQsѿs4ybm{#TyݴB#`t0F9C66{'X1!M{Z'?3;#pyα<+ڳKۛX+yc 1:qRhGDFP4;Ez1Dh9Lo!!p7Nb:pa4M4$huWidI؝GM'Ӥ|Q5!E߼&( *gd{#w{xaP< yM;M؎i4hq BqHMPY (g%JB.58GXAJ>$c(momS;A@"M3`>_yS>qqMɁ^RzihHY )phLgP f.8#:ȏq %xaV8 񌛉#~??I$tWr=Op-M: ֤F|,ZZ90p<߿.^J{~v dL{N~uOB ӭةuFq2 ~f䬄49Nm^AOyhj %ќ!S ҞKMK4{t2S^6|@@ΨO'#z"sov(V]H'ujip~#uIfELWR r"S[/4L݇cF“|qf%t n ugDR7$g+hAAbEdJx${l?4OG7Q؍' %,IQ(T&Q~@ #ZꡕUڹ.v%:S&" ; L7hCK4ˈxvD0}$uϩdPx%uVM$zE! YA}&Xkq=Xj`gm#4E1*B }%˘M챾6AGlM. %MZ/zD5-xK[&ZEGelv׈aSl unc|[Pj ']ܔ-+4|ƿ|'(3␺$>GDtJ+:NGkI4eU3=Fa]'o.s)"\>s_!*h8A.țNxt;'jӰ LC|k#DfݛY̲ҝwh&5#>$Ԉ`$>_ ؍1ZLItHOW0#S[ Ҝwd=Ԧ36\f=USÏa›.VLFmJ>p :țQ!*<[>tݒ]19;f!Se-y$x$ wγh\F{֠6+a)t$JL茈uĦ5anlԎ8A4a631G BpcƮڑ ?IX7=),9?}f,W܀ހf;ܤ<) LiF,\Wu ($ ^tנvB :gG IDAT<ĩk4f f}Y 5ָB2;'\,RZ:^M]엢L`qAHD{a}U!%oU))(-Ed ptPfL~_X‘c 8x!cLct,$|[&3VE{+U _ȣLmf(Cpg{wݏSG;g#2ӏce\r9~ LzDrJ3$mGM|EN~|hNx"wfK#NTyp2 ĺD~$ޡ"P'۴N`}Fg'Do¥*-/IHMB[׷JN#D7%Qw8Vʒoc-l`˄7$ܕ6^@iF32uWTnZ?M|YY]]}TVKݲ,2elca= ;<ޅ}Xaw ,ð c{1Ȗ,[-uKjwW]YyqR '~F~޲L<dQᬇd{F8Qa) yoF4nL {dWH{P""D54M0N8YqͬLQlׄEubVlI:ʁ95*O%EjQvi[.%!a0.܉ZO&9{쨂C9B$ds%b!Oqr!:)5QZT)>_gQ}u<Զ1Ri '!õD<6 DLDK.0F r2~e籾s:r_^@yuq2 ]V4#{n1TOd|>Y:Rє 'HT8L|M3/Q}H!%}&yIk4ύ~HQy =ujH IѨ/KL -s OEI4?bc}fX2]kijCoFb<0LkM?B.CD@b%$2zVGȮYA)-z 3:gġx[w) MZsD;4b:ߺ-n?xDnLIiBYy$d~I#8O`W'iH;-z!cTO2ZGFn8;;Ń'g[wo؈;E՟=/UX%uߒ8\t+׵H&}wlG +F lK$t("xȮY|A_Bnamh{}̇2q _耉Ͻ)4錿S%(+$ĄOƋn lyȦ/,g'e["Gݙs%QWH|dӧn'Xf\P;.|Ϝ7p:c CE_o<5_̐x060XthK&z[m Uʟ=/*Pq$>{);3eDZlQe j@()`^e\m Q _tqp_ՐdY m[/{eU z[FlOn']e,E?`B8mԬpQe7xq&^D_yd5ث% `fS*Ԑop _C%- qmm ɓC5[־ 6>bs&\i.#_a_E$LCo sY}Fes=/ iL=p_WlE@nQVsacdIΜBx.eDrE溋a p!;)Vڏ{8Y+a#M ŀ蚺_9zt Sm< pr*q.jI={}^KF#:&n3|p(:2,oF5iӿx>;# #!~Iogi P +iS{ 0,2c2Bk+{p=c[Cw}oJQPnGit,!j_b?7ۏj%ے7\Bb/h]$jbb{Sk }3 ؊$Ԙ״|D4R[fQ>9KxU{׀c758e 7g RMx']ï>Eݚ8 ϞǞleրt3+Depl\T,xCqݲ<gFHaEё:dmIWylqf}_15䞂-* +>i ]|ԞoMw'p1,Bܰ9fA6 p.;,^W|̐q.zWd܋AGH;AKu}Ed:?z^͡ SsCgXնMk;{"aOu .uKo .Κ'Ͼ@bURuyf AZ, z4RީmGn|7hoDhWAAq&p>]"=!/ h橣½gV6W/_kxLm~2@ O.a/~VWR̂VW"2ҝ5$WTYBYH 2W/};$"bnOwFΈHwFAvDsI!0T?rQQ&ڲ qDŋ, .қ uaK [$_IGme{fQ6_%1̿SX4O;#$cX5 Ն+: &|d/da C5(>_]kM!Z aRӢn;#gPrsQõ`>0u&"!zx^ҟSkLbgű=b0Z Ժb9ɓzhװvc{9vSŽ֗P[菇u~T9HD ̺X+6D߿WU@87vOugG^1@~Wh&ׅftt#!T4"sӣ 7b"g(aFn") ;`](\j~'" g]ԎF $&?O9ݢ~ͧU["s'TdMA?o@.'#|CЅ48 U# 2Ʀ۽ dPwuF%aeү X`GX2֕D%Z4" J_Mz^*1vX~> 4XeR2.v J./ư(9$Q27B֯MJz%&C8NÉO)|^c5uVk9h{;*WtDn;_A# wi$?"]ȠTƏUǑd<Xo]uGV5IT8NDE9<)FrS%vMc#|Eb7u9:[$Re![rF=?R&?&H8I^MP!'fU#PdԁBD4`H3C˛;8c3}.V+jQ,%Q'nZH (?-̆$"+*MjhH}#_hĈߗh梔gtE'ʔh+$ezI•(C ZjQ2ĬKo9Y%,1>d80;25'[h_%Q\C釮ֹIXrptئbK=a1b]/YtOF&⬹_TObeע~\ږ|zSG'ܰhSHJ(C1"ZMcWdܷIKӛS7ٕYcCeC:gM.SdKL}C SHևh5dP 4M dyBşzc0?Ua b]y~HQx21R(zcuk<]@>(ƖzM=sM]/N"P6 c0{^c";')?#\* A _j+Th)|vib5CF_,2Ԣ\`F\Jg=I71WU#(kOui28.e_EJ%6iicȵrx:j։_68m_ƈ(6J.I&*yDڈ-ڏ͊^ 36mx}ֹR"ϾƵIj'4P8WDpEsI݂QJ"u+;'ʺElUF$X7v3c$; bK:W$%Ց8GMj̐ޝ48ż7%Fie}b2屮klq!8j 8:,rhM+yl?&o1ZxHLtaHr?+eRm2 zR8#M g#}Ez6@f25l#)AIboY@BO,⛐"lN!1?Ah_A OE%²4TPAȾc\ %D/*$?5ɰݑĵ63,8F6i<6N0u):p:vO-Yb)!ccD^O"1{2[ߟh{AW_K$W|&1!:)_P??aC277mz*]IEbRPU_9hYI*z7qD#{c!d;o*{"ԶH9=Ó%U HZ LLz@oTe*`-2wb8XV=ҿ O)7dH~HXo*]n"M1JNˋomPy8IBMR$. $1GڋJ<ևޒG!Ցhk(ۡqDz k{]0O;=N#SGVQ\,Y޸*ϿNhL-tUD{ '!ɕ:@/$Tr@ϫ9C"0}l_%~[e  _NyXU_P#Z$T5ĸx H%oB.!Ud5dɀ_8/&yLYUvڋG5BI} Ȁ-d|#di=ͣX8Cg>$b 6}\m7$f8ۚ Ff@tq=) +;L3ObE"5ݦ9"2f˫Shmg*b*Ga2m\G#TB:0dq27+t}#х AƒʫSDžq!}]ЯGU.ž2\k DbXf7Nfdt!cUֺ{)/L%ZNwLmxIp85A"9\ Gy'$;F;OB9YO![$B T ƧceFMD{v>rOçrFHj@L^uQ\N)T<֚=iGRkĉ6(! j7r.e,Sprم^LD67~`,!eؔqd5IAFhxF%T5Jk눪l>!BKejoHFn1ڶH[gGˉ]S>]O8yj5qhuHeWB9kK2oP&mn|PFGs.c*S)KDE7JAuENx&mT0 Rm N%JA6} erJdCmY#|FKg'q[߱m&Pnjj 82âfwAm)Ӡ;85hJ^|-%qڬgMWII{@TqJk3j'4߷DdWT 3:?j53&8'vAl#U4'P&0/۵O]O(t'0,l?& |3y"_6+QM@j~[/BQ\.GM]?ha>(%/;jۆh懖IYIIdt0[ :I ZE?П yP{8O>7 }3@ /\ .ݺKhDdB|-|ZԲpc۟8LƓXȸpk=j$G8YMKjGL| vQ(?D-v6O7%ZM*#QFFɀaQ8-~gd6wU_= IDATKµǣqwg:>Vv@o;h:/Xl0 ~M_B:(vHgZgsq:-ћJ0;Id3>m'\&\;`*eAuoeğ\.̱(N/]dGVVqcՇ2Q+j8R=]&c O'Й ^c{`%eW~ڢ74PĤЋH0wTEoXANw%_ƒbbW7{)|b=1I8Q@B#!Bn?9E["0#6O%jR(|Ѥ]^~*l{C/q_؞`5Aa aqb;44s s} zF$c-"g+}ڥ(Cub_ȼP?OKUKBg G35Y'YK = zoh8Fו>7ȍu%798psaeD)8˭c+W9>ExC Ngh$1ýV[YrozY}uso2e6ykP4W:H:[8 I% {)2fMfe=S>PWܧ? V"w ޯ>a̿@h@(Ir] E; ?D凧IJ?Aq)р%{瓋/~1ԁ~/?O_FI;EI!#+*FY{a?ɴTsWf|uv^#jm:ԡi٢}w! iKEK>Z98QanfcZ%vbLIȨoKqicע(zHݎҭĘ~xk Gec]tG-RZCm ~e\ofDN32em+LJ0"IApD$>` j!EcH^$80 ~oè#AKk,d,ա3SS~$%Q[ ®hYD^pg\CcUC=#x+AhDO=z2~9B>D7I zlDUH' e(G# L|Acu'*VFE+ BP)d&^l00,X;>F'^(2ι߾%dD_m_.y L ²,3̪hBdПr ?#{J`Ęr؝&8SryT1ĊPʏ'q!ZWs#F)ah/h]]j|s,gQ'\=2qUqmF%Prj2Mc9N0C)i-j$_F6SNhDw.&32m9ߕd_>># .!3%{%qL&z 1cuТ_H%$f'ǯe xx.č ^d_MH :SLwΤ7#9BClC댐\?k^ _z 2^LL{_LiQavxl6Ȑ0 ÁG60IݔȽ\%7}iƉ~Q0AjuDf~uM"V'%(KW`ҥ(IB2Ql֙ݳs6IC IaH BCgHv3*ý8G'ԍg =GD_{ N$b6=!=,|D_y܄F+$)?sw`yhCƿN}r'!<[*m€ѢM3mMA5)j-d6Av/tsnQ\*GĔL)CR/ߟn1(7˝ ]\11*5$ Y _Ͱ8| }~=J̲Z¿W6>J H~;l)']Q!mAy_=غ}o: EpZPyyY@xbR^Z1D-T* Fxpw *N6$"*CH|ύ!T`+:MeiG9rb-0[ɣyZuŀCԞÌ}@r1DŞNcP|H뙣sJB]qu77'ҙ$xWJjW79lo)HZs4WfgVH#OTvTO*' S ׶Y62'q#֖Q4^y2Zn`6<&]C)tJbxr ;$=#l_g&EfTɃz3" VYrZ7SDelm0`3,Mb8MBڛlǤI۴&lEʪ=#i}*+$ hƏ<>kXCaA #Sb]f7콷C_*:]$*L'E/:s3xm3cFV+is4%/ʃpimThڌ#sS[ BM+(6LUa1cŬo@p&E.t!>r/"JbK*٫=UTpnݥ{"h@ /Yoj$L<e7}d[(j]d}#pou(ruOߗ~i_Iρ);Kޮw̆vƾ1O%ƀIQ u܂9Ct( .xFwFdQ-F0 q:.4/g_aمQ\F큼e7ljȸF6-*TCXSb~o9d7$ZI{6@'.j@o\m"*;G%.3=7(X;^,f@1qgꖂuܫbs]- {;=Vsn! yKқyLVXR1 {ͣ@ȮxMC"BS:{VT(u4Ծ]2 ^\߿rn'M7lK׆oѝ0["Hiqj_'+DoUP86¨Iw6* Y,q:;NZưFu UTV\R/G`"=ǁNߣH5haU?4+~|?[#uď(߹|}ђ#ҀJ`Ң ^/G$'%$ZQ u5&lFР%-4Cc"s4fB1Զ >wtf8.Ya.Jfɱ6L/9yx~Q}Y;v dyKGoSٲSE*r{oNOH4*m;&1y&$èDDHn@̧y+e#Z3$δN Ye$)mW\a(ctUM7'T$FEFG;l43:^P "L5vfNvohu'IL?&/…/Z*})CpKzqVC?Öي{  Nx 7XemJ5C} &a̻k0g7)"-j1TMi 0T1htZIMg=,g|ϹVխtsDH$1)DI yIǶ̏](,x~Ϭ5:Թ{硡vڥ)/e-A&)` UY=a^Z8s=NCpt']W9ـcp֭s\_6biLixTl)`%g,`߁5!~e-U{BzI%82"eD _*p/-:6P_)=0ُh>ia_^Β$ 86\@emtWrX-|CVzrǢuIVNՈi)o=?,v2O!u΋[$#Gi{WJ G =*/3(yM'}[;"{CB;!6b=a;bw1fܞ6ٌK1ܲ[PM\FR e/'qFj | ޲SOE !DG:sY6vB),8k]ø"YJk Al3ğ`dw~,Y:ZjEKY13-qb:T伛 F8ݿz/5RLMp$u{TJ-w ;F?&Q~|DkcDR@2SvQ納Hcf - EYeQ A: @Ar9VYbM 3 ᠘Fb4ql<[O,j0mᤠ_T_-c~;Mg0g"v Hl0-kq,xhs? ]+9Zϔ8U!Eo`zQc:{"/q;"T!1;d*3\+"H\fz?p5x Wh)=:!a"naZa{3GtFTe+(@t ԁBsR|Y0*0W50I6-dV4jL}rHM/dqIWR`%c^}ɝ'i 7!~: g6SUbҷDS2ZS|c8e!ZW^E!֥+lGvμEv]B8eڂtew %7yH%Q31}7KS$B'eosz:X IH43x1ٌsnɦD$qW]i4ضQ$ Q1??_=yBb+Y 1٣Dz#Xj@W:<0_3d^4ߌhR{G  Ɲr9(>^Ax)YT`tQ9ą39G'_4MӾ߃ `io}"9";!uGt9ba1)R[ ߎK3Sְ?{WB2#^b8!K*?)*yYR^S~j'Du"͜<9w1 /H!?Lb[HH?_H)UOFA ċCw.4OVċW}&xDJ ?]E tQ!5tPon4Zc8W4"]%UI1" =wҷ &?~ UQkf)?ÌK)!#Eg_ 4O$k*'XϦQ,RU2QOtBt^dj^K}1r#(,~:B tR%~ij4lw IDAT7]^:P!jG#L'$YVH=Q:-LIGPH$dn :sT#F*ݣyr=Ri8l ܂FZB!!C:8$GxsWE(x\XAYP{Fba|?9P8^$Cb^Ti {uXK:%^yy/ DJ _YU}OIyxT<5J~ĥZ;CAz * FK%?Yck;"sMcSVJnƾJq>hSJC͠4tFO1XV~Lg깐+Y^q G&& =VzgmZsky.q x3 >6KZQCly}q!6@CTfV~v TK UP؅cAw Gcoh JBe1O+k{t*rp hMzZ_!1/1K [?@RUtŹ$Q ԪF-JcVc4Ysy#)`T/VU%1N$8+*[ EìFX~XߋhErw"sT]`W-L?7 *l}`( / UWF{°atԁJ#;vSN y =-MZiw.@-bsOSl F<')_6[mc J0p8aj3Kz[y,p fL6qPAoD`%Awb-a#CO|'#i*lC>0zCo^к 4FUpeA5Z4)!Pغ] M0VI 3(0>Gbr@.TL42xsE+Ad RD㨍21V;50I8VYܺ*OiҿЙKB"M!EeT(nCA`௤.tSם 6S(_*5"ķ/F`W ^cWI$[GF`=h)2۴i25>35AO+D7 HU E>O9 %T}٫io%ܟ_16sXB!O|ᅝ r:qy[ 8 ɺLQMn!8ЙgyD,UVfKБr2wPfMEhb^IuƁ,?]er=+\R3(c%ⴃ'X_=Oth ?UsўH 2EjAww :1 w& č&wP_Q|uHl鄎UI=x9 }coxY(\ UVL{1DgϡY XI=rdE73woKoVryׯo.j*M@f82u#EypTaTt3q.A RH_)\]K1̐/b P?a:(w,@`geDSiΓK*BSacg2uUG0:_+ Oeƒ}b@K(KgfN1AyܬLM8ϼL:xz"*WWm,Af5*x{A@4z[L|BeuE)J;61a:z%EAvY// OLnĖJэ"ƖTEd-חz<]}0r]`ϯsbSh<+JE+ AFe Ѫ_Ҟ "A`RhPv};$q0٫ģzvwMTG 2d^ޠ $QR6'2,+L}4ўY5H׈?DdX5M޼6\`x4P3 P fyKe]\6))?}08 C֥bDua/.`b .88/ t9f{.O-HhKo]d3~Vܺ@j[r7m@LhI*5Q] 쭄Gte a`BH[̒4CNtO\#hL0R;*{>o≪6nP &}h˟82w4<2K”=uE$VXHLT%$ˬxhf%@9SJ>ތT+k_&prƚԥp7E5-3Sl20_t,%KFR ; u}WV$`By܄waqѻ#}泷׈R_h*ۈfՔKz͸z3֒T;3CXDg`a:>]}F FcՓfE,~qWH>AH&R-DLRu,2+!ޖW{UA ΚĹ JP# ]if~4ӿe:2d)`9-'Ku *HvDaǠ ͝mkyz_~=uJ* fCuOd%Ti6y:6, 6 嫤Ŏf QdzG=(RQUW!c!fx%Փ z>hBFS'f"p0*L}Qǝ L)nKX _>sWFu nQ={CE|^ֱX(!%UWZLv5!UȠ $L~_dJfja6B"I^%uB* hS@) 1vL2FⴌbCP7}d.4Q}|} ߒ;mH]F$[!lkTn?m2uƧ;g0,MokR$(%eA{XG'{3K+iݵmZPU;#NuxG MV50s}[1HNĭ %L='΅;~Eab]E%Ŋ( Ŭ?f**Ǽ3TmO!bo}#ԏTԑ-?֠E4wh+2:΢ */c6䆩]͠w'ڍbgMY-m Bi#iwg[ŘZ'M0(iqGJ̳/d[T-ƟUB4KP|-ڙPIADKp`}QAZF6w^ j}~BRkHхf[œEo%ī\rOFTCK flĘ <`6wJG0$FO'O QpjqInw̦(^"^w ] uVH77/_[XCܢNFOVR59R@ ݇v`ohW;"omD!2!ʽ%5c*bdb(Al!z@J }hyB  W# [RNU\0hAdtwTp0 ̎$I\r. JnbHԼ;K] 3{|(]KxTX ? fCg\_Bh?ݢِ-Eʳ/7)ׇ;u -r /uՈ}$ *aWNҐ` -yΧzhU0{;BŘg'Խ9!t!<(lP9VV-mՕ!们Wod%+ ^)f3Kth\~"'.8u+I=廁Qxzw>z-ᵛrOsN •5Rh2|^EhOݏՊ'`Ju"Fe K4y]Vp6b!=Jwfx\@zmRCk+d6H7}d>{Ϟ$MXޠ S@`5G5p`.$GIdv0)rS-UbEwC"[#2imbUSRbR*NПOJ u[ O$;{h>:K|O &w,fKp=$w{I_A~C3:%j6TW5=?KYzb0J/SzФUUh1 O'L|7d8 ??K]p1Bk*+hBy wL~اb'2S!/(vB1>"e=$(-Kf^`M` !av",rK1G*߈ 2*]1Ya2zhhR  7W1urC{EB[NhׯdNh&q#`n  w&˦[_\+$`*$4O((]+V;68ѧV:0 *b# إ6eR,Ѣb FO{I?#),~GcW½u+!+9nٟ {?Aw 6P!FCtYg})D$}ř;d)jVȒܱ}> EKӦVF* e0Smk; =[[2TʈsX[k?"~OB0%x1a]&jC}kRajܳIuCR^`^I3rmM9HV8ŲWHHeHgfC{"* [\iMYlTr]""LRkQ1:ZGs&^N}@}a=.dZWs0b'kWd֮ ZTRԨQ?k+ݡH uդ礼_x{g m!@K(``f csmW?g'i3P*m/E00HPh3}D4Pa4!=]Hz9El3ȘܜN~tCnL~Sw4Z6huDlxDV)\j8n0J2`V`.V\W4$H``Z|M}'=M턆./NV5jcFKe4ai fH8KVLp`_d]95D qs],|,=wXl3RI4bʭ_?ȨLQ"3 +9@oMqTz{@Y 07owt%˰[7(!pÂ< ȘwRp7_JOu@dIGVq.wy$ƣirEfhB92xF!J(ݺ!a20R`RC / t'OBa8ZW]kz*!F?M9`Oc嗧)Q5 e?gtbg3&y*tLpp/ u0~!aRD .Dص?<":'%_Q1[*?Dj<|Pi`Φ%eu Q TwVѮ>y/lIfTZ  ^J MIlJecOa8͆OaKb^i>2ox$Uĩ{rk$*Oj-R.镘Ub'\ ?!E{*ľ/+ɮlԷxn* ;C"[g8-L&._%sUUuďqZ%`0-j)%’><%K%ohvNCe5$#Ѥ֧q"X{Փ 1AWuOL\hR%823BɰX'd+d:̌H;.)8@=**#Ȓ#|$~V#Gzh޼:~{8;crG,)t 6w-ޖFv0ӟ)^,ܢKՒK Zt"[c8a54ɀ F VC2ASPF$v%+r>%U#3!)-G4CLy Iƶ^V!—:&I9PBZkYYXW7Pr -(8COo^VrD@<]5̀"ؕWJ@UĎ&{G*<H=R|A={.=9M[CVyJ3*oʏOjvFWY(FdHC)!;ȔcKOa6`1{'/90{:_%,"ң ݣvT &q.u@٩`:{lY{m,Mu&3[z^Vϻ?v(R+ЬhkWK%aC Dr|Rae6`{JF/bc)loLq[C"pҀ>r,ɅThTUo?)?}Z: }i(!u!Fꎾy"ɹ4hw.yXV"SnĭK+ |wTSo# @VjJZo@l n~!%P*xa ZCyDkbCTb}g'b"%\_%Nњw)KdbDw2?`Կ)a"-&L]1:/#cA`WN\LKl3ڹbrC e۞W%hbMVݒwrWĶ m3bڍo@E7B.;͏b&y$ph"oDb|Ӳڔ<|p w4RV9r IDAT}c0#Axz?1gT:Ad9yɶ*F]PHՓ:H k (?#QҝEOdAЛ$fC"N##+ 0Dy%}wȴ*v&@MNʗ7h]PrN;zI(A d5wz_ɓ(CӟKpK4% i GkQ%ۥ4M_^Cf 0/H0^_-jEބng+Haz%!e+ϾD); &wL9"]J/JWofxdzGD"d2[0!fC*(t?t|J(}N=sgDl\spZE1 *jhnB R.Kĺ|6ÜLp  ֎L=r#% 4#9Qצּ|'sr<{]޿1H)I6зJ Xȱ?~<~LGZ͐JiJs A)܁_ ΛL) T\}w&@[u8}ҐЉC$rl4z+8# 'U_o#}_df׺_=~:#?+9.ZfKjƞܒ FSrދ+UƱ l L $5V$<@]}"iZDdO~^% c9 "=dtzD F]SY#;l.WQBQ9!wSύۈPxp_VxL WR zs Z_AjurLfI4Κ uqd8x*RoHHR(m^ppVY 'Fg87u@84itG'dV^[FEu T=!P}{uüc08z>1G1=mџ0]].YLsr&]GN|wU'"x=@(`8YeVl,]Ft L~E {FɢHa "`4TFs.zO/ ɯ*lOE?0 4<#E |g A2}0kOw#}rv;WbvNV&ܐ33$J{A%xIVÝLs*mb *bxȆ c}튍r_a%&)>P|҈l o _sgfwy5sU6REӶ -LDcZ.nTV' AذXvr'E >ZzDmiL0">yHߡK!cTrHZ"]35ʿA[=& q ::A)ҫ w4hN$#Cf?34>KgTNf !o`௦nZL=8űTE޵ 2 {&z>PkHBшs!^O5H6:!q#*ZGeTNIx@뀂#*Pp-KQ},yئsfiMXgi=YK byH:<8NwDB z{#%WLfѱ~9J(҃]1'+F-Uy3l"Ce]) EƢ^rѾPdsj + g$073]z-c`J8!u╈(`~NAx bECrS0棂 S:(4^f1NFC zcg/zBX wR^hReViQ%$w rFo'IFbfIC7Q I # Dy=WU"6;: +RsK{aG d*!uB(g29r=A& b +&Mj7{7!S`[?>35@fdO(t dRJ$0z`+`HWY.0T?8P8 ϽN2 o#߈KyfU'P#>:;>Mg  #ez{a S 0.y@1 zr$QV!7;F㨆mQ! l=#H F'+%7"bp6TB[#-S{TM\Y ,ezxytǮ{HA l>&. = 4hMRWY1hQT uvq9YA?e_<1߱@ R5  V+Bv3VdS?мOac+do>{TbTTN% f >|_ip@7O{Az]޷@iPPx62Q qcx ]zs:4i g)i<:64+c 4yd@f%l% mo"&6#Bl@cSqg"|[293X`2R&wCUrTh2 (Bg R!T?Ϫ4NČ&fuqXBwN-tG6Oz&Th>=ie];Y=wyͼg^]U]Ԣ`03ہby`2b ȃ m!j޻=۹g>3oyp-?~J~AP-%(:&޾OΒa~5) Gy&"CċӰsy,l&A͍7HybME:gTerQSU2Y`߼D1XU gyleG]oc5,G`P%qMb]8Yj }ųݘ8m" V%G8XxE nȌ[z{Gf+܅̘[ ͋:߸L~_bAh K| ;aWJzGauJB}@vaFW?:6}x~;ij~>=)Qad]R<5tu;AZ ][n"U U:"}*-enߚun;ocQ`ٚkq .XL+z .dv+mLi}pkRm^=GaϤX1u5Y25wAN47-f#im^ #LU*Dh^5i1C'b y[|#>Hgޟ<(F!1lN TW` 'MYY&rg"¶Ir˜tM`e7+Y#U&O Y*v@TBWevnsSh@gPݞ:?: exHi>0ޜbbuXy`".JEyuyKXvGL\K't6/ާ=2Wa.hy|>/h<"\P.r}yÏT>!$VncNpD,4kHUO7'ϳZsnN B-#-T=oW]^3Fd&Gy=D_\$`Y3zԥgwQ]/5פZ1]ӹ4 W"J9̦3DtO:+}2+l|ש.*9 Py*T;ԫ]RǍ_Y^Z`"LzUb+&c޿}CPB鈉5.?Eo3WP\$Eh'=y\[@RC..ma>dudsj(c4f@;&9wՍ~(ToF9{v`e"?kfS^XH.Kumf@@!.Į켟w>c]tOrў--p}FbD"9y̬ǎFEKZ=cڏT_n=Ih>^"czi e8hB s̈;gpQBTBK0k?|Tj:P-σk4Kh"omU`ijC֝/T%!2|CԚx6=An]ުdTZ&$4k "I1[Hz}NrHN| NՃE֎d̾gZ44QT w'9+^Q{2QZ.-wCI>6qf- P+ֲe>:ph*'sΘKymjƨBA[>T$ܨ78^Yr&j'.91J7V6cR=AfSa;{pOpcR;d\t -#G֯b dqG`=8b6 BGm Kߥt[ Ό @-洉d/q5[ e p+E\ /L]ę^MUSjc$}a k'D7n3~da[6#>c@/b7c{('<31J5& c *`]f3:CD.N;K?\f!g)F#D>_IV"kf?0/0Q$) 9K,ȝV3lPKiL\+'9E V=~Uru~1͙ QZ >kS3Q'#1|2<>"ecOr@mi\.>rBdI|̣4L:?U&wQo،4\~b3=ߩUv"#p R,ZzEʯtg0RA#CijiX!\3Ѐv"P>e{KY(P |( l ZBRpg#j1SZQhqG{Y&]{yܯWĘRLʣ󸕄QOb7[57Jg-P``52o,̢h?"3yy+a+T.^ǾyІBJffDIs?8bŤ+c@7]Fɛ3ġ@K' -1)A:P}씃&b٥]sCA#O(K($ D|,fV[Dl2vx Llڍ%!>T:bLuten3e9VhUWBFx G7tWY1+:DghXz;V )HøecU6?+Y_Hxzق x-v&矠X@bx3-]^۟eGibm?ƂfM*SNSplB Ր/9+6e:ת\zMͤg. bޡqXa21?f*`#ݭ2sgX-Pvd4(}@DA z,A5y-A9kD|'Sqib"AZ%BD"*>SzMF =vZ }xc8-m9 r,>U/Xx6o韈loLc YMIMg2L=?3]5IMH\(7$̣VP@ibW1Nyz+]B3#h`5N b399r֋ 3I>AP3HjrV PicoOC-S tΚxE  ϔ %MÀтt~=!݌.h=g#fjG'_\k H7:>A‹ǖR(Ÿ.iWduS8Tkh+K^_$Bd*/ݏO Ī8BݯP2x;q8+TBܯI!26Fxt).ē >F>RPCSU%Y*/I8egй: 7] };gc”J!~E4J$$^;oO室MȮ|DYCDDo$ՌH^pOȼI>"5i2٭IE%ph|5fPi l Ԛ\~KyvV IDAT nw,-9Πk nM]v_#͠ƏTZ,F,J9V'K~(7ؿnĚ6qa[$h7y`ؿ38 #*ѓ4Ka.!2u()$VVɚ..HgB^#zB"JC`[l}vݤq0 k|6MvCG&vIozK2f䙜KJ%=T5"8D:-W=ccX$LEf $U$uJ 8&s -Zp%gG=s>x8 ;N5C`=Ϣ0ɚ./t")+To-k# 7U޼3LJ]#oHy:7/3&sm0ZBU]6yNI,M/x3_58f7JÊpCk!#RDhR;]bG#ex+#< F_;+Zm)gxΣAjuW.ec]<ÁLl߮2w—HRGc~eci! W^Mc}١j% H6}^.\oq5(N?I%/o!y"]'jl dbEL }]`w;} IFwE";yi؄#]: kPE0}y:PP3A>b}MU٘d x|@ 5pkѬBvK*^HfNXqRD&LhҕU?mS^#đ_B (T^bb{W]0o+ց8=D7"3-9lTG}p^3!n)#_l\g"Ѽ@h1K;E=zH}qsτ8*Iͧ\Ђnl$XKH^Rd7'F ZgȰ :K謘xyTs$df*B a!"GCt|>4ΏC=QkҸ;EzS'K:C&veԲ R 'gth$8J je5rHOb,K1;4 &Er.a|trϊ Va͓OeS/_@|>/L79̾2p=5B/4}CcteLVW81AZt6EMQVE.Ch\8`&AIP#APTJq'DDQ:T|}7>^1M,:q^ >S?-7';)7D?88ViaLs֟[dvEt ]?z'pdPu5MPH0+Z`A0P TG* xLgT ^ʁTBvV,o NP:$xwA&Qܳ[ E&v_/Ypآ(6/|'B4ގs[ PfݣhI5Bq=we2{A8Q,Lu cAqR73("68tfȋϝdC\F٘* l;1.w*k;E Q^ϒ}Mgt*-!? G2tȢ kI܋!cF+DC'q8,HV{Esx+'x41^#K LL ܜ?s7Wgr&@kdװu7E 'to^ViY,OyW"C.s,Wan&6̮6^@YK3^5JDs/1h4ߛ!4U ^5ѷucE($7li6w+1kdoHUzur]'.j&Kh_|gIzGv/\DXWlF/iYe-_J 1tRY[2w͇yo N'$mi8MwjW̗z6GXC]h0*.k6"R+!.\/id"# ^;EzO`}1MnvHcD$ f\ⱆv}A Nt`;kmu ?/p1 ރ.* ^ Oͱ*3;գsD@`JZyVu"PWM&6 &K&I #b ĕ \H氷,J@_qЎLת;N8:d#̓4m?a0YB&I,( oD#Ed@u`(#GhHNZt. b g,{Y!'ީ o+@pzqM3Cjx u .DŽ70\Ihl3[c%g0zhNetAJoLTu:)B8WFo !/^`1A^Gu;ʛ <6(J7=m21[ Иzy& _ibEbd?1^ ,~<$B6{=Eyb_eRB&սGA/X1)T3d7\F+dI*G013*۽}T[e4Z6O p&iRM9\?.# :w(Ge[s>Ư@BM-jq@鷯{z`FuJpg >tϚT$ :KvOC^}pv3ᕠ̂bC`%5ީ jd6`te}ls}ZO O/~F+)%i >FeRlޅQ#c9EtA0niҧ" YFv3&R/҂,||Gǝ8ý+*>3fo1:c64v/7'm=6jԉB'v%| W>Jڭ3[Cv-Xh>"T. ]dz zH(܉lS$*+l'wvs'x9oo2XIzuKwPRi3&aĺ|>9Zc5]>4M+!fjL\G VdDP^[%Zg9&/%`:4TGEr|Mf%HT=l@ ԬCm u.m_PCӴP dE,/>w"b;W&rxi U2z wPNLk?R"X:fZ29 KF_5%Buq'-+ҤZm=Ĩ$`3 g5^%b5=" b#6w'%tGtbj BY^>u, ܰ* Y)opu'0PLF u"Wٷ3cĢ5Ȣ}vJ g/| 9DW)‰r[sY*_5]kYt@GPj(vLVݑ56 :9@yr$%u>M"Q2[eDW"S~Wp=-D$]E4NșCϢ[ A='oru;e&yZBw"4W[/ '1id_7x}K9 ե.V폦PKh%+ttnmiD*g`azu Sd\G3<$wDT=B+A3v&Mh?V2cdDFR ( DCEq` {9dԾo5&9A XEfå>fMtrB)\Si=S9f &UM+>~Ni JHA?g+-fi;mI )_eci+#ďr$Bq=OKhi2w4BT!?,`|#uub|?G('yŊkDg\S#tjT}X޶IPBz_!S0xGL2k KJ?2bK65PV>W_]\|Qе -7džrP'FL2:p<6%5%LM( hibMs5D俕&&HTѣ.ƮNMP !n z߻@hho*ѯI4 -ybޡ3L9:p.[q(٣#LX@p6{eb D@bt%0LbuqKq ?Vde 'D$56~)CEܗy"UahD'-k`ƏUPBpk1 THcF ݳ 3 A6ϾB;ooO,j$ah!N-&D܄xeNLɴPڳ |(lCU;c0G7h1@nN ١7;*ZF %XjM ;7ak2Js:V;!d*Μ7**l,F zS+D6G5PV}%aWH;?On#*X: 7^Tm?"=1H^~e2Y*ȮgSArWQncGRy9)s:ڡCCf'B_g@?hW},n%f#`-BfKas6Qp*=?; IYLEL"Ҍ'ȁ;%_>\U00zƸ.f?5me&wn2~d&Zhz}m4bLAxFL `LTVx2;lu,H7%Ba;%;)eB"@i$1xy#A:;?"0uJ/tϪHh~xrDdv :^Q$n9߹HAzbC/& q `GS}g} jdx$O4tC&Kh1[_mpnx0:^DPuGMT/|絣w20c;!1Q1{  „ FOcuADt=F+UR:!+Lc91#VX _BgBĤZ۷zA=a!$а}q~H`hh+K.QH7B@qQDzbc-FXBI@<]Bd=fg( *;JȮ zBsd(XBݴдo Ft`,ဥ]fO-;mQB9'$u mΕc{#h^ձwdӷ"i l Q{Ro6Q"Y 4IvFTTj%#&@N7$0zWzYi3,%8)IqoB}hy_B/I,ak*ڐH!f Uz9?us$Z? M,iskRX1j4r^Տ`+3T8gHY&eH?!ϋ"-Ź~B*"FZU >"Y $vO`] -ċ4J2vMcJ۫0//KN+%83kO4GP]i*?ki!msf@岊I-8R8S/3Ӽ]o=tz8KX?2a]E%?SQk.,ۻ%TWָ!淳Š ष%8}I_I{ Jlw ,GTA ̶`=FIWvs6&Ofe>m8SاK؞!sx8O=Ip>+HT¢R#x#EmuzYJ,£ɇ^^k5ɤ_SڲzJ^2]yVK[V'{d,N7i%chmiݘ¿h/a! ^9¹J-$C^fE(IVƌ<ti lr1KvF#GvMq4Yb8]5ye 'Q}At3$)04;x/^a G:uqMV9WQ݄'P=0$ 97d< }0A32{51nQ#5o-nIQGy_(]G)IJ+1ccVDl>S(: w!.G{$?wa J{J_ԲO|KmިMɠxŴ*䢴ۅv}Ad417c/[1o{8eMs_=KH>[gڛ6=IwVd]ݵ[2(/+K;,D1oZcہ-Z23H-ydE ?V)w>{ea3[8(; [ȥ'amQ 0if]R, {Lb'gF *phcu|Jtu]/?dpW7Y/ AUfRNg\%{?bϷqNZvjsCZPyv7Ķ!,9K#P3K=J[gb "-פ nu&Pk~2cI%Ch`DgBc @.@yDje;42[:3>$;NA4*X_Q~\4 JH-;EJh nROКT^V+T?Yc_k([&/@Z4s;"Jz'Mq$PW,:qc0푽)P6ƍbfZ{t&u,AQ 7N118Xon""ү$~'yܠ1aq!v Z4"#LChN(y3.9:|Ayw FhlLzTjot&Aew.a524j,K7`" ^R'{ѠrƵL[H4-TWP>4E\t.'d>Xc6dH誄B0&ݩo=ļB:b=*^b; VZ1߆;LXPE̛1- hτLUH(tTW*(6^>FJR݈1K&N]tH JQp҂8O3X!DO#3'&Qđ&T7*Glc6ʆ{d %r@t[Q8]4;Ruu_~}OP>+XUp&CR~Lbʟ+*P(XF4Ĩhq&M@O#Bb*5͢U QZg,He&9"5/פ}c3w)2&\P!D:Z_PW( PBU #cg]6Bops!^ŗM*gѺġD:df~.` a {cFyNi_|i9/a 0>?/Vj'2{+#n*D7Rץ|ŧ%;{#D4:!SQ]!j!++CuV_H/h>7BbH`p 71!*c8uz$/.9<$`=ZQR`cuJEvՍ}"jfUI%~# Ac_^J 1;!(ajm$~LjDUn }?TbP|>p JXqĦ9+nuj@{ 3Cu)\#;ZlzroX>[2$NcP6hOؖtffu*pei"Fj.Or.q̚CM"Z=0pKVAD''H **`& #T:'*()RJn::NV(8YIE8Ő-Z AyoBZ)tU+'䁻[,D#1?G45Jmcԏĉ_}͠ oԊG(}?@9gKT8(p2=jȬ}uk{PcV݈[fwP,RK?쐦 7?VOoDo>5m'tJNG$gO#gi`(\YzO~] H|32'acaW: -5o 6{  _'w[n^13DEYC$s0Fu⫲#ٯȎerIJ͈ҫ>1ҏ&1Ws h]t?>&&lh=G?MjXk&l`ᯬI4Z'QaO;3 <;/]¬`;|A=wun dR7{ 4YJ^q'&@~ kI֟F7A%g\$-S(jP?"EvQ[(VMF{Aj }"{[eM)z- /枳3U-žh5 7OO጑fMX-pFbnj2M!g ):RޓRJE,i騸tkSKN3yuf{ZX8e>NlKO">Ě't{m49Rz՗ ^1Ib][&UH.(D}k:fMaL^W;1Z^HNB|;G=1Z aK' W} jKa&nJ{@)$NC*e+tvUԈH> &*%pP pԼJgeHr9$vstTO7<:P|5dP1.oR%59A>ɛ[*-McjMU eE?rr9ےs./D/tT5`QL}ё dn~!,j#K.f Oh&t\2Qkhf$A1w?ƶU7d]6>vNDF{ {D5D%*CTtCpS Y$Xj֒pD.FHn 5v"N@g2s*W$z=awwbY70: {U-ܔJ@ Pyi toXח1:P|1vh*!%rxuzÂ`KMmR#qzW^C7 1|cܲPI#Q^KQ̃6먶|MvN# `d]~[LH^\ܫ ^{6 +k&5E:6e8])bonJD]Mr20+zaq fM'FK!%!zGg6C{RZcAQa'aT5ԾD9/af{a&:fø R G;'`8HEZr{rOYΦP9U/3)Hw+PMNy_VHfw )G'~#E3yc HM KQ7Am vZGpf+V<켆5t7"D 1OCto^xu'HP XD͕h(n xfms`Ce"UA(DB1'oI2(i_|o"ƭ UTj!PP6 Bc4"1:[iGij*gΆgq4_U╈ge*ţe篐 PO[*͈L%N?k*?77 8~LePTK;oZ qs %L3&ڇCߌX7.|u_BM&Ԏ+K9Xh$WBPlǢ;*yCC}X0 0$CdEQKUTږjA\n+W,wC{WOؔ^S.! P.yR&uS*  \ުѯFҒ:EgjCk.Eo"8cKBG<?6LB |]Eə3]ݦ&w[@|c<Mg&XA#\PΝ_yPquHUpz^*"m 7~2Y .fOF^E*c_wYRėTMdf4#o.vm#Fz^{SKBa]J77lZhE]Mjdd=N !_zE?R *kW .PLp8%TG8>֚j|7wIE-0B6xfPiα1 8GIBWՐp̡S2h )]Qh9򑏝gG'>py8o:cb OlSYRCK}N[ը1C3][ =V܀wb@diO> %9 ;h5MuE(1_`Bk6]WZNqb۠zS"rL@w̢y*(Ji.?qiTeP@ u'+h<aTz _`185}0AB-#FbA m(|<~wlDͨTug*MyovN"O(Xk-(U4.Oi(=AI7`iL~*#t-M0dKzUv S@$(}e#kt:f0"sċ+S+! 􏹔80[LGwT# ۧTzSnu*٣'hO !P;ҟHW>p v9nV!cm.ֺp1 ^6ˆ A TW·At C6xܔ|!-\H-Iz^iװK!>צ~$A]0dh1 WHohc%QLx[UTE%_Α{ݣ_VUBy8 G]=ޗuD Ӝhpވ-"Uu"KnXXGuTui՞l ś(MJa_l#W,sI*Lhrͧ-/Ԏ Q 5pWmՉ!/@=*M()Qqr>:%I9ޮS V%x%bZ /"6`_[Aq\FS֛(oS&;i.ѫj m}G 1/IgR{BhSGC⫂Gϳs (޴ OCt?:]Z?"f}04˺Iuh6 C,{'U?&|. O!W?,X_26BH0#q]ىfC!C㐂Y0׸389ps&gcka(|wo!y IDATu`$xF[kE1:>Fǧy MΫ63NF"OGw j #Z88o,Ԧ/u)OѴT23C+op2cWҙ> Q9' T"\R{2,HP]LDoO%E);ҳ 鎇DjD`?;Q3VY}-q.Z&]1C$|ܴS=`.?&Q*钼;2= ŗ8$>5K8f=]x/)}YNJ3o%" Z*#C-=K·2@__9`,E|Q2d8D]ޜTtHULK)W!_:-Μye{ٞHC):!уơJ\MlSއ؛YhکGOУ;!LD#$В?֓ў7I!; d>x u~4ҡǤM>)u)%IL 똻ϜPW$Z'UY?+$ў6=E%teH|LŧO^rM8Y\B⎼cS@[ j #["5?s*>*3ΑI+*/CU(f|"B60W|/a3@$|zR]Я?Bu;3ְ>~Bi 'm4+`PvAYW/d2L}vړiRu3Z*9f|y(t >iv ueoMpuy R-~CM{z-pKڑvA~Eaত%$vDO5t#-9Sm])H{SecpӗHM}KAF'pӧ3+O\OxIYSUGI_!3$xh!\y{({zlC/+K#=x/i˴ :1_NJ #WUhϤPmٜjqvNQM۞t,Kr#Vi?)o6SDBFHW|D:-ûUԡ!s:0> $(FlMImyrL~ߑM{;Ex#U`P(t?a UGʒFpD0ԎEa: Y΁0|"zB|5ďI`Ci*m˙ c 5K4 QМEOS(H@y MbE*#ֶd4c j'cЕCh%a i Jl[-i,՞O*n601rKfN ;ɐʗt:ӂt6&Zaؤ&,c >luT=v#Fvt}d/4뤗|^u8ņP P1 %d  ]{;k[u7kW BXȁO6zNrs}  zs Z^ ӈwS|`?:*zG9JhD /rbnT~%ěq Q04z>BY'u@sSnMl͐~UǛvL,XL:g&Y}oQ r}ތ0B25BN u6lmӲcF/-B5ΨKeZ}.:YE՟c:8'w(A8BVؠv@mfhO{=Ov~Ǥ;Q+0)gl>|_ e: 3 &7>H$Af.c>o\sC0Fs ҀƜB#?S r64Ckuh[:WCn.@H(d&[5 z:K&wEe~}sKtDkN{c0jВH>l`~k * m9oDK#KjB; Rќ9ۧ1/w"O~gf1t;osQ%9+ ~߽ r$Q6:~&8\ ZK Guı 8;?9ڏpH$Y:G@ 0DtGm1Gȹ*[?f?[{ JMΆ;b лb/zpf]ʇ _M@^\pY1ǎLOءVӈj`DxɈpDyA[LM\S9!wgߔש_AI{H@lCea\z5Gn2/䊂׈+oج=ƻM0weCǠ"£6N5`8O]]fVD"͒aߟ>6AGҙ$yP 96M 89m7MzUHD'ʀ5?0tNs.NKwDMj7 {?dPt'"|̥5v)SIÝ<~\uZ'JuxzE381J+{ ƥ{MUEQ5r?cXv™Qt{h ͒yv`[uS TG!qZe/IXP {u<>$8F0oD ?lxʡ|!cGIX6~[oP!Rw(!j#Y3yHG>JM4\eaEQG˸S9qU:%GF4]C U¸I$Ơ"wh(#U?Aa+/ݦ$وHhvĠ,U_TJRw@P}ˠd$c.FTz0C_ZAqZ%qv2TA\a)=7Bwܒ ፈRJhNKhʦ}gw#ݑ$} 71Z ~\qX~2!uAX[l$)2KVQ>I=y8F4l=)+Z *UִFJ+kl]8[O(Lؠ9+ L- p5Aa*AkP;YtkTn϶U <8/~d;Th(es1OKPy`{_Y%!(BbçW/Q;%"vo1bPN_!h\D5Q̯^#(IN~ 0Q֥z<.~R>dZt |dP z}JԦc>SzGz |Q .kɹfWX&EjHwHfvt,P ww5DG#*yфC )\Ph=7S14C+/ؗ<_w1uʿ&sh1@C >rpkOСNz͠%t̓ķ~Oc]!+*>cuCe5,'IgB!ԡw; OWiSkď7:zS)4ߣ.t,&C_q;1:=m;I9E= Gc+M;nZ o``}㇟ҙb&e,$sY! N.\Qo&/iA mEԸb?s};+Bnl6SGhY1cصc1^Dxc=Y[ؚ]YXu[jnvl6I$H@uWf O "Pf}p˵X?j|yddkl6K<|^őE]>ٌΠN'?~ӳt$tߪ =ZOϑYըjMf?):#kg?G˷J5¬DK4$Tl"YBS?S#]{uOdb D(j2b諆~US'<1w՝QrwUy*t3(e_zE\H2߽:U2i`N{<<Ů?q-B_1n@im$-%g<|EsMImj4&yfcB2:қ0Np% ٓɭKxU?bk45$=>Gt fS==̒O;coq&f83PQ[N^e<1w5dGE6H< HJQ:C1rQBo IIPc.n=adgİ^J!A,H黇uŁy8I;&{풊^ś< u^蜏k(-;YX0b4eܙMŗ}!6AuFGu , koWa$2{&%`P™P(݀b_PIdZC{'?sZ'UvVj >Ws.ĚBTI408rbjdaϺ8?Ҫi )A$T|0 UemV4ʱ"+N]B9'c- OsO5|̞$JmS*R~+lJܪ?ا[cc]X(5x*1t bY1aI 1F]̦1D$~6V(.P]aT2Fܽ31) ׳!CDSWwMcol-JJcψ _! )mÞ\ER)N <'SFu9ٓI"N&U%֋TNwi2vťI< %d7/rDW#J%u"tmy!I]9ګ0#Ђ\){e ˜'IApB|GѧQz̞o>CP<-STֶD}HE>a4&(@$𮗯{<[bb6%2fH3 <Ŀ= T˨3ˆ6,/V˵hMR IDATl >ΰ*w%-1'vDuIӗ}: "D-FHknr 2{.K.3/VDP4<=~FI|"!{2ۍ_>ܲhc[wSF+6#`Sxɥzʺ߰| |GwWL xNBW#ܙ$:^Yß)z>@aIaUUas]Uh=$9ž{Z1FQbR2 gͣJq )XS)iSd,wkL'HvLEnyZ=ѹ_ :b Rc1‚NÏrYHYwi #jTOJwU=!DM|a\tX'޼jJF@{I;JV,*=ES3:2su[v]Fj"+'otRz .+1s;?_5FL~#!UE.UE\M*9b6éf;&edaZo5yq)UDN?As 0P0 M7b$=8ٍCȝ#b#WD[,V)oJ(wLjؗ7N w*)}J>>;&U~I})corݟ:Fn#Wi8F7Ay& AcMgljSߔ t!hk14ڽ,F2`V JW"C;J ^5A)G6(2?@zmTaǨ Ve֕s]O Myyxދ#|l"a"%is#nPWdLDٔcOoXd6Urhm9te#j; $m4ZwwF95 *:nneH_z_ щ3Olsrd2N'"r,<:;(\Z}NU#(]0/ਘ-^BgHH/·uڄa%-fa+{>mBo?4d&D4mfD3<AdHǡ)-O{?j ;-䶆nYFWd+&?p$sA gRT->rj3|πۼMN*}fy$AVlc23ڢr;rJc%[uqd8W:nQ].2SgW0\[at}F^WO''a<ȸecX[tu\EEc,;E +d5ΞZc|͞c%*Ss2R@#R0<֔,Ĵඕdǚ\oO,{Р1>!X9 #}ΎmأX83C1[lqYq_Z| {L;ی|LDg9);l]0g7ŃBc4cmJ7Ql]g839$n/(C"<aYn## 6q5TR=E> ,v-"$|t W q&d2V yu#_r_45[q%P(ޒ]VJ&.W)NwQ̘r̎BycfoK~`C숙|fPs,}|\<ߦsLuP eB^Xh˄y1bM1Yd2Pb_4Rah6Z1ef>]D+ ADR=NhMLN7Y*2̲l2Ct'MmSUX UԞLO!)\2bbVhjLQ|B\:K&Ùڅs ڡw*}K-bkP 0sJLع];|lXu\j2Fy# TRH] gR{@XG$#Q ë%frm6zELG+B/4#@GjŘLpfHap3 M_Bu8ÌBBDŽdREfDC.n/ _w;wr+xO,`taٔZd̐Ĩxc1@#Sexqﴇd4ߓARSXAnKe8#OArž. S'U)}6P`o;a`7_dhR(\0i>z®)CMe4.l'c1yCTvE ށ0D.\jBMTrDL#wr )5U.$:tNdw$o_nB#1S]!/a c*J(~AQ4❘x)2PDJDglM2Դh&ȒJ$Devu}pJoAc D]NLΫcL|GeCk &e>0 a9a+RUIwlIT/9ttqDxTQIڟB5(nH|o:}:#c2c2+ IΒB)\Bj&~fcyܺU[{9!4LI{5:'$&;4N82g_G$&/ZO(VD2UdOfࣽukĺDVs q½5f }=c~uݟ:F* NW,;W<=EBq%/( 1V _hKtϖe2z?>ܣpي:&ќOx#iWNBup3RGӛ|e6hCH5g!>I5'٥hL%, F1Op_?HB̞L00qt "U&yf_^~ c;lt} S|)atBlA96G:?9Wfγ:Se!%́O0 W}Ů,Af]1 ~"AqYL";A[5:Ӵ"Y=tGt V})0RWpĴoeHwLBvXnr]&pT|_#*:y|45uJˎ'qTAoePe͑](%L% ,) b!R$!9 o5MN$G눺{M&~"YgԾpY %"3ߣh a-#>#h& c@$1QbUΘP:m#%NL,Srk"{2<֪5D.tM4mZ=na/Lkb3/v1M4vQ=E,r̞L il&Mf쵷gtf'jNԊ"7:cq&A;:R5eXEz_[; +82Bnbm)rfn@k"{nrH4ٗ^>Tl\nW# lDس<~(!Zi;MצzQ9Ʌ蔘_X^व͚_aUX,<{eHf:%Sս)Qs-̄8]lJHL۱"jfH^[fM1WA4l_H)Ʉ뢢hyWT%X)7ב"0o?yћOgj[B{ʢo E_ B}h| {Olp{c4]|wF@Q"qDk4JqI:{9ttQ sO9a6׵/~_WbꟺI)h]+*=Cw^#d1 ]-")k00B5EFbbmB8Y(v%|h́Y_!^g]5$wjۍskaUAMP|"*~A!eg'θVJY"+yJ _csP0|~ w~k 'SR4ޟTq(^S&7=ѿj P$_/s_`{L;jwMMuL-D^S(O]Dw߭dt_8{5WhNk$[䮊kXT U>sD3BL^ ̃:R"kFw1z5 X2Wt&^e+$hFH!n=!/#B u j TGDI׉-W:z]DUދ(^#9[ZW!/ꩀd#xS7gXQa #qF `m @!b4%a=f, l-u rtXQcíd6\;> jH^G@kGkjWo_a0%1*嘉ل?Xk*;O­}2RMezՑ1 *a^GkjZF}뷈dzG/Zʨռr ml R^chʯ_xQԶԿ!Q R=Il[pnyD=yXxC0T_"D6Ιc߾BzǦDv`NԆ} J8fMA 1A'KCN8V=($j-{bGJ}T)^~U ψiYT]x-jݢLhh@ԭ]Vq:g r)ǯ SY68xҢ*ћpcBNdR} 0߸H'6$(2I%0 >zly,Q{'B R o6I&i2/m$NJsDLd5 C1BcgRVuK;(Ԕ4/PPU!Y`;NI^W;ƛ&YL4G03P;*!y71)D쒤2<(!qW F@{P$j'}F!_3ПDa C$Q6AL52 88!&R,ӫJV/Pe#`73(5q'$m ]þ[%f4R@$Q~ŅMPNp_-Sj 2/O Hd,@+ѡ_2tFM";J`lnT/F6e&^N |$hahI]{Wn)"(>0'iJW&bZ?4}GCJd7%)P( 55z"$_A$I.f)YVf/ Q̘c9 pfmoPд-RnHW։]|!]t3tqoS6hN*mZunqZO%L~U,.{8Y}:d1"ZdkS!,òP/o{d?3B+}!GTHˌUEco^í +o.AtU qedȯ?CgkīYfY[:߾T3xאUP }#C_5+>e3=z& { 8o\5Jx`~բ}LyN&4eNQHVYӢ')?} ɞ#dMɯuBp`ޓu~J*KL~n%ʷ"⬎-RĝaQЛ3ɯGfudF s2AAfmKTȑPzQnE Pjv%$.xeUc3%Kɯn&diru‚F3 :`}2玑,L]nd* /]?3;>҅IR/OWh}h Nti>VƭKnX󢮭V( CV*Z 0Adz1xQV2ER")*iu~VN([g}'Ft M71G IDAT) y yra5"Fz_ew^IK\s_?URe&Tb}2bC 2br 1TUM%*%'$WoȄ)AGgP3(1; $ _Xc8S$4)Hg] c"KwhkI܅ NQF̗g<*-YTAo%d7uZ!Qd&t("RTb}RR涁HԮx +*c/99RA)"Q~Yb01||Z611'!`v/p c_e+Cz :s!7T:n䒄ר}U?#L#WGܤ[إK#8"yR+ui>1::t ϟ!? Uj_Kt8ÊJ/"6%F_h>SNnċxT. NmĤ)t_bDcϞrY1%b kb |<;C7BwEwP*F6HrB z?Advh3ZCl8Pi<&&jGAȜbB5 zŔ*k{Pxw>$+ƶF]A7`lk3+6* zGL +7<RRj4->2d  ZYݞPB5Luuv[/]ML~n؄N&[lEo^T>)*Z,B[pn;Gy9Lb*V"*՘P%wG@ >|6Hcu*rV_9%Y]1 'j kP}=h*L~mEи"TsCO#{M\n|pV}gfSD^D{EngR|Ѥ?B$6u6~ 3CHu'BzSm1%)<7R.x`tR|Mb@A ֭'Ga|⃊%xGHGWE!51ȩ\j[O0ɯuQ!N/RËW$-}7EQd kE(&Kjs]>Z'Ӱ|H"!* ˻5JӰsB~Ki(df%}/Y_ޏA$+jsI$AjG8 jog=Q\ѩ6!A+ӰI" ׸D7Hdf"ZW/ 7YGU+<9sk#u5fXM5Gde$Q!wHի! c¾( IǯtRbr>_ vșw#ϋ>5"6<w&ʮڤٿj:BxTS[_38&S_ܛbXOhH-Q'9 302GUHX$fB댜<jWRVMxXQ|02K_{d+C=S@~b8΋{ .Ԏ:2ăI6F}JR TMM`phF0 rY5aa)]ІqbVȝV>q @dEڪn@o>#gxT,̞7Zd/ WI :"y2k?VXճ}"Ri kBu}5&c7J"A@I*rpV9T%Au}q";I(#Y0=kKT k:eV+䁂?~d/B󴎽%ٓ,Կ-*27AVMP5>48*ἇ1/o"oG"֖AdDSgQe3OQ`?7Ƭ*GλhCXnMc[W+z`m8GK҅׏~/@{I#߾Bd E; ٍ^OTU )y=MxCp&5CT]E{*^!c󆸎ځKK |TO>vzPE1FP_9Z3WB=~ { ՈM?#p&g,xw^CRjhoOuW*`jF9!E;jz9Rߑu(#Urd|0B=~VWɭ(d$A?t-+oevQhgB0&Arꥄ#Y5-_==&VEӰ&4 {z#]x*K#Püp/;4c&2P̓T֞γ zWT)lLfO\H UAVt6~bnR,N|)ʵDnU%\LCSB ANa'>y {scx #ĭ6Q)N]8ZgbgijK瘨)V$s{0BDJlJtu=O #W[bOKtU3zypXPX ё]H@~}}X&#RYa|߾f )(pyFK8bgn G!#^5uF/B] +D=?BoޤCPq'2SC"I&sG/$,|6`"`jhąWQ{ =РpMh4few׻/{o%y޻׾W/UhbHI,ZFeyy3}";9O8f87yv]lɒ,iLI4 HKoms}]n}%Q4TZU{&9iMBY倭zoԻqziGid>@zIoDnC"*9%?#-ĉC.݇ʌ}y|n / Twf6'?셷C\{n`6)ACx7 *\pc07JavH>Vh*FqF1tR2UzКj -!vNNԵ '+-C."{ԾBk.ay 5@J[-TN%5bmteײ(tOL AƈF1fS ҂3OOFbl<ҝsH7f]TP=[aȝ7=bm !$U }D[\\U[؂FO*$T*(u?*P|.ȩk$ { lN EOp,9۴Ʀ=+eSN#;~ߐ Lk֧~:$igL(Q(.B Zw2fu j4^L\PIҩ(F`B$[gqNoՂlL]G|%ΞX& d ײ`;?ɌլMB}=B"7nǨi& 5?[d(>*iJJVI-h=/.{XWi#] H]oҞКhX5AޔoXY}|֋l !N\EG_--,Ч8BdMhCt]?8M$8IV 2+2R$z9f]JBp?.8ƬC|-DcuE7.P(j[wFf7RMs^:%C___tN 9h(`吰eF =-췄hMyyFkcyJ/zJ+k4%=SU;h?R='}oBnAMqh}?d`*,L*h7C'6[tOV|5~x/1wr=YՍ¹vVm]7vN%}CU wU~k1 I4[aS YQJiGk/ө名wlPw|j*쿻F=G2/2d6$D/->aW;u  JE7/٧{fk$ Q62)*hz|S!ҘUAF>[.k͐*ިB9'A2ou6G'1.-`5<Jt&b!m95ˋȥR&z]xYl't xIR iNnYY/H@ b;qM::jh67\7.3| {8BoxGt[;j:}5ÈО*㄃͏LieB8F86ГEvz:_W6Ԯ`/]V(F[ "C-њY ^,eevH"+*B&Ic΢pEϼDe&@*Շ ԎIUwv0t&Atǧ8'ʔݟ{MAJ!R oȶaW\YaPAsl}l=)!vK]QE3st2~ @*;~eD U`OLhvH^ ĪKd[d225bsXp-:zWyV>]OF)XXP9]wp:kk޽PRI`c>B檊u6Z7? 1uЛɢ:!g d5x8n Izͥ=rܛU5zS.C6T0]UIqF]OZ js^䤩6/iV# Kh'gd5gxhH*\]pS>_R"r&y!Ȏ$&̪̘Ġx1+@Jh%c_Ë}lGkReP%uKa}8 1Ъ^*uK ܔ|bKh7QKKKtQ΅]%zPC(XU!)|1͐msS**-3}x Pf,Ceћ<%^NY!vWc>|~x[Y4X%J66qY-?uR%Rta Zj@AJǾF&֣ӵ&'ZG>T4GtЫCiABe2WvڻߐĂB+R=X` bZ~!.e~1<]*6Jì*F;,(c4Bm1TQVrn;]3 %XYjФSC |(IUʩYq%&hM* .*n]ܯv]S5 [mev:'K֓ydI=L+^UfU -5SN3- hn@o/({jgKl%)K{vSpέEٽ^ƾ鋨;-ZAgԥD7B6/" S$aܔ*wTTK)T[f ٰet -]ڿ:הd&!^Σ>Y9-V(\$Nȼ%Mz3 &pGeCOAu{F^j|dK&{~=gbVU^{ C]XEf|'+tGD{:O#Hy=ۡ?$;}M֪\'oJ 5ZӂȖ| *ήj ]gZ*&v+ՐZ`6B oyƧ0zWw3}vAJkT}2g% BqCt=WI?o#NWW>o&uB;Fs5nQMMBe7 Є$+EV75s0 t5nAos/x!'d9x{_KK{Ts&P@!߾}Hڃɽ!x*ڷ_÷zPkW^$;Ц&MI3TC";!W%Oǒya*ס9?ڔr}C+;Q} z?taV "\7E]Ŀv#<DS󒺽5lUs#QFݒ]2wM;/W{__R>vNYzò@ijw,?%3ֈ:t5/U^&[U냡$vV#ЪhTe}KOd-֤JMܷW`bloO7x)O|E%*p2>Ԑ7nҜ/x=<9`/_.\"{%c1ζ*>w^?d;)鍆lYAX5>Ut=F_rYWgwt!{Yxd>U-}ﬤ&1ھgh<6 `<}Qvkuq@t67r, rp2 &٫-~tZ? [Ɵ]!n[8(C(>$m.Do'$Q_'П77p=W~@kJV$KpSKo c-[QedKDֻOu(FasGI Imğ1n⿔!eݣv*1֥WNvU:>Cw#fc R c6^DZ\K/4 G SnW9ViޖHHm/m;M@p|Rrgcdl}d7BC^t*Z[% Q HvKcFnlޟddkoFct'LXe)k>> 0ptBXqZ4(D3}\Wc'.g* ]07X7u}u7C&CR'Ɖ.ԩ>BZ72B; 5!\:W|p#R]d+xBe̺OYN bpbBf'0zN|I^_jSD4Zc=gߝG6) ˈ "5yͬpc*EtwK\9 =VDQF^Iv 2f$+iB2R;gj3Mx F{XL#Qs4YFo+:&"h}ܵސJt3S^A{(Z i `@eR&Tq*.+ #ѿu|OL;eQߠy<@\טؚB2eZHX >=_Gt5E؛&JICujg&\W>Y$(7L0T9sY IDATUH`](f+P:[CXliT<݃= qٓ;n  .b 'R=*rQ'\S]韽@$Uyr.JWC21?^8:3: BHEB0VQ)Il{t&\Clݨ'yoX 5}r/oZ3v~0pT П. :fvQ9qc!JdBkњb &3s>a$WZx)5_ޘRztBU0M|@'̸|n 73vX0q,Mt$(@~{,rGSA\0w*Z_@ P O$ch"Z㿿@L^s | 706cbjRr Uokf}#m̋FH暂YWu|xk[n1)]6Qqz_ MuTy4$ A T3:Xyd]X{.îIYCsEgLΜIt]%qV6tėA< E0\/nzƣ_\>nB!yG5rW:VX{mМI, h=00>(a4I䳈Nj8F#EtT/#!ڧ3%'G*$5R/38X&zi`ja!k(CZx kUC 5u>_ ZDӟNa$j7 Fo_ߐ. AطQ1E}. a-g%iV!/=W tԝ!M}_~eb]GT+(}[Q_Vƍ&T܂O1>I{B:qHRܶ 5t:#Ei$]4J/X}F"!FSНNӘP]8G G5J-0)y>1! wį.bBo$_YdC}NF%)Wf]hIBu6ȤP4MK"ȫӣ^]a^Q!u2\S;[`mv#wE`2J?C+EvI68,ET$ϷA??'f˜<>p|D&|5{Oáeb6h| (z~ސ yrKxsF' ,'g$3r}Q)!ΪyA,P=EaI_}j)m^WI[qvmd+OT)Wi wҨ6 wS-zq^[P۞ It|7"(} 15Ak5E5B.фͦ.p*cpWLo(4^ ĕvTV[rk<-A! 5y} k M'lvN$ ID{?֡QiPɟHlXn3k[!CLj{W3w;L9 A=my "o^cyJdM1 unQ{TgjzZ u 4 r)]oἑɄޔAN`(uNav3ô*v.QIݶQ}K$?8R3DvM9l U]ξnP*qƧ 3*UFDFb,F+h(}Dã7#Sm&Gvo0W̄is]wHU`5[hK&>XOfR / HNk_?O]?:*7%&>܄C9挂'ѷt3P=S(z*oCI&pSqܦEl`%N2t+LEwČ!@ƙ.[^ I(ۄmAš̀ސ6b3T":vAJ_MėOL+*^kQ=n_t?Y8VǿBqTfX3-Xj& ab,868F⾠5{3ipqcOŊU kGx>^Ġ{@5g#l9[- M5>_}(KO"uh ̕6it*:ސ vQ_ye:a] |S 0 E*^yld6x$Tp?$54m貤|CKدf)?(c]*[D,c+ \|MqGɸ+:N.9 c ı;'(MJz\0-+|47F4V,Kf_Puܦv4fz^\EkF,uAlKlKIdUpl@w6K第\+'8v]}AJ7Dzaڄ%걀}bK]xkc0.N|bF5u E`I\{U;|gƜBs䘴`dѻBƆ!ڼFM}UP0(JX*`kCs7a[ᓸA|1R=DƁ8NJ߸nhbmXO_X}0K2jD|_"~,"ۻ i9quk+W7i=^!NFb EC , ;?w{&3kXVeam/:nl+s{VyCDQ(-"_@22?&գ!Q?жbH:Qԙa$.rxn2HЯ9Rv|Ω/t>i(빲JL:P?c x]K{=j(RwCAHO_!pѥ6fҞI]A1"Q-<"t2p=?|PsLsu&c 0`iBg"7ut|P`:AX{Ԏ+>orG7h.Лqet)#1Gʴt0fWH-ZHYj. ]Ϫ2&k>[S%D\M#Q<'m65AdLcJ!MyhΑ4ͳcW=VE"w"Bhƈ-_>^fn1ܘ*c_^f0=RstΔn!_1r׾kqO"^}:=7Bk" mn RϾMK ļ\B=8ǠWyd1H(D6lUi|[uՖe_oJɁSڞ% ;"TCC;0U5%)|),}vWm!U%n"^ hWtr}ƼOPrLaBטEܢhp̣p>Q'&x%J/`6dOt`D,2X/ hrIJO0 AS݂q5AƮMIBj}27fH6lo> _rQmAZbƿ9k"44l܃pMkjoZ)sScq8:;c<4] Y[]|5PC&25Ʋ f<38Y8Sƿ-H+d |AnHP_v*{ʯ_e-ܢʻ?s}}'y֣;N;=Ǜ{YU \Q)O}|WիE,&G|G|R{V3͖`)pl(E/gw5z_EʒLI~`$R'9[a8Ʒl>5>_LϬrXPj/S9boXXK:.OD1ݒV.ޠgpjץݪI ]cJ}?u'`ܲX@wTޓ; 4ɾ6lvzW5h?sV /2^RIkubO2tIo)^4h sEuA3[e"S2U^Ux`bMޓmC24]r}7=G߳k 9Y<=IV0}@VNע$ ooYgAu9ڵT [ȳeGޏ8jq)hyOZUiCִUѫQmPz߃,ebO˪dCm:?Fu$o8$)\ ~ǝgz/HݑX}ߒ) m27J_Kdn h)xrj}+n=G ҡ_9Ǎ}{/\_: R!ΨKs&BnfuQOiWK PK [fbiY>CzE D^) z*CQ{_~6zbO;D512OO6!Cr`9gK,z}o׺ɜ`Y(^(c PN%P@bu"qKg̦IK|JϑKfUƿ%-,N_ r̕:є@3dUenIu*gKW,ti ]tI_ّPM,e>Қi R!q! ?3MA{*@@&QKO?%ԮGx* Wɼmu’.yn +U'5 w ƺC+R;Y@k:6ƌJs&UsbHu Sg `:lˋ(h}YAqgozx2I j:bƍK({OHiN\_>˘&+Xt~!)c,j<67nJ{$ u7ny7;0x0SckG r"2V=ќmnR;P=92 M mj쓵r \j|/DCRR/ Q=GMYuv~*~0K8C(Xj!jgyr$﩯g(ZHcFZǏZp&uÍCo薬kf32v 莨R0ۮ+?47IcV8*n\[#^$ꊴh] ]Ohj PCr=>bI-@ -*Ft΅h3(Or9ܣ,&?Ot ghq+6Y՟:Lsp.ϝ#u'>kYO!d7}~W]F_ўh7.=״쐑b} r  tCy-~0KB瘴 O޿ߍZ5G89HV_So]}"Flmz,(^>Az}sKf4Zf#28hDw:vk XD)9B]!bG5cW{D/- "UXGk&hlEim4'uh@C!풁(lK{olЮe'?Boa: _xG{T 7Y`]гTƞ hHjX$TM$`Ul_F#)9[I}ئN* 8mx&/e:u;"[nG 8Cۂ<mA a'y ?esC͓̚Kعc dJ'Qzxk 4pvJw 5D]=NOv8>•7aa]рCxtO)dzzlH=o-KشȎSQZ<[h?GX&p=\* L(U { Ҝ,Iއ = j}14ۧ g 4XWVϠ&#Ij}f:;x{5 G7>;NF9DcQF_Y2CHXQs zQ!ZQ0>%!wc*i3|&N}IM'&<tkefRžԏ(#$oSqm_N QH-"&[ [|̾&!vv#1Ӥ${EcJNF~v"VC)C'79[Eykg7+S7єcˈS"g> :*"]gIN$`xK}{N m@Q;-IXTVQm(B +![!E#10u:~)d:%*WTA,`^9`'h3=%-P.tCdwo#u'bh]f xPn'pMwGIz'Ztm Eg"ΘBNc+aI>k;?dt|e[3Y9 u|d' n"$0q >Z&( Vϥ IDATޛHwz߹{č=2"2r_jڗޛ܆4IQ93I4F21<1hlBKmh!(qHiM4쵪%+++_?ͻ|)2U=sņB{x5;kJ]}lH(Mr/7 0{ɿFh2uGV u 06-Պ~e8=]މbm:K!a"$&_u:Lj DDd!($1v{hhGb~`@"Yu@l }Ř`pzb3c :@acdZ*Pg7shOGG}БJ6:TqN͒ys颽q8fjެ_џwqϑZq{sg=}8fEu:SS&&8~FO\Ո|Q5DKբve΢ \BכDgƿxӳI#'R a$5;ΩYF%?vR Jrse2$bJo+J-Gr~O{G]ʐˤ[4)^~ϖq*X*4"OˎДWQkSۯf=Ky@e0!]%܈։=$f^IHm U` {e4[:u}7-rū(NxYs; X o`Uv@4Ijt /'0"7by. ٕ}nENΣ: ? Sw}:6$9v|lh@Nw*HS<㕿oqۋx F9si*f1D} з?AF']G0U7e`B K=?P"(R/9ҽg6jƧӵI_6d1Q>ErKE,Aꎆ:/}BO%Us] OScj@TDc6;=9 )36ͤGM&Y :yV IǍ2ke|HI3j4 %EDZRzB\k)̾8þCSd CI5#B0|2//~6#Ѧ UIY tHD*W&:)e|AAՉ )=Ex>3gBώ;f.,6 5JJMF'g0>N`T!gcO ]V+iʼnM@4s7_!4.FephaEJ!]؈L¡e[?2lQiӚf:LHyTTPckLmֱ`JpcII⿓T+# Vi59 =]ƾ>A'ZW%ih3Hx5!ޕS!fs5hhFH,fx\ -nDe,^'Ċ*UPɈ \ ԎTdHuHk<H51fDz5EnM$hlgѬ~ػ c J138lN7 \0H6E40:/%X١y/Oh }bx[KGNd>;gK$ѭSiV{y"]p+VߦuH2PMDr)'[ll?',Y7ɚ1̑:&sc^LoF'{B`%%Nq&ZWĊB0\p}DCW X]#p y!Px\y}$@9N{ N1&wKhD=pu@ep'V,AWc@_XMrd; t }IgBhAc %\)w;@E(cFgA"BbbG{ϝOe84VKfMW]>`=I-l?n" h6 M4Np }w]j*T$h<$Gf?'щA)*Īh {'D BSPyNq[#E$w"„ V̌~BW T{\@YydĈѶEJ*E4GxY?3=IԺ\cdfx &^BU-ĩ&]N(1F)wn< X@E{@s uZd ,C4)jlc[Sշf-MY!extb\i-z)dg?uTzr )=}wbGz4 7'zܾ= ZG_gom&os=2 [I1=b+N3yh#3Ld}LT"ٝN)*u*vI/JuԊ=NXu'< <4[!U TAht<찺R:'\Mu48:A83ED1x>xZ#$f0'CZ8rx\4eؖ_ ϧP|?Q|x˰c{G+L~CgӨ= <Gvi3-n(|hrJDpș䈾oҷUR: *1z}İa4R6(7`0e1K&uh >nQ5b&.F-U;S& ;$E?7{惬zθdQ=Iꢉt0VPhP{H!: -\XL4hlpz&-|;Ow!N8b06ޑP±Q}変술tRM&; ht*g2$L5;IFI/\YӤH;G}Wgt |]0pMgk|L=ўWȿjį&0hp>F,6: D[oFIu"1jDzIc1I΢`﷨?&ԑ%|2?a4NF=4FK•TWɰ!7p>$0Z#Wq<6FK}u ]ۓ`ۻ$w}:Ka"s`Qo, Z}*c S*}F]ÝszI^oRdƴ'+ͺk"aU!4Tk.te ʜpL */x}5PkqThXK7Px&yaU%tU e" l#¹qZGd_ jOK#z4'цrIĪ2rm:-2T|UFܼ4?4}bOF)f`o8(a6IwN:CKnFBİ B>iӟi4Yh|z-~_P—jhOxIĮf8D*}Ϭr"ڵXxޡyTPO S]%̛&MNl~rw<|.y7Pz#HT_ngT RbJ7x`>Mv)b5X=Re'A"C\XnѰm}63K z}guuJ􈁮24m;Imh*Ĭk$S)^P.xi͇]ȜJajRvc]ETVZC:b̢C|'EZv AJ@lJWn<ГkjR&+m'MPɐ~Z"Τ{CS1~I]ނё3}laEv잲H]9:CBf8uUN"pjއ87#K[m4h#)v2 F( wAVjHaڄ "`HjǸ5X,ȜA G1e> dhyIcՊR*]$P]!5d%UtԐ#n1ª ::Y}qePRQc;i 4nr z3`ʌL0Xm&7k?qU PLC&rו.Z$; GʸAמXX&+9:IK)%T5d? r]0 xNqs ]+}LgEPr1!6Rkqbn c1{2rtD sߘP}yX}L3(d2M|k%uR,|s  Noh8Eq-&}OnJǰ$}Jxз4tbU@B6" Ooop`gB]ͮM{S*¶i[*eEVN1Qna!w1.%vPм]|{f1I2%t/39g&=DcR>Nq{+ aiA.$ rXjÕ5C]o7s:~oK\I5v7sL_M1*V~JM/I@!n֥ahl>#vqd٦kbTЈSQo;h}9GEᄌ(kN 'Oy@U%K$IJu4측Fy5PVC;߼v3q?,59 5$UmypmJ [>Q0:{+CY46ZC#4eNb9AuL'X ڣz wIRK{5~-2}LjYO_l3dg@W`!Ԗ6*/8m: wxg -Ej<øeW bіyFL S*JGcpRmNc>  4v$ߖHĈ@fεQD6[+4?@\LਤVeu)X;g9Wj?+8C 0Ew*.?<$0 74R>VC`^Hz={+肬I]brOhN :J_>8=ܢKjLn)$2Z+BBJX e&Gr'fkwPAxHWڑ| 1_m "R1PU ӑms%Pp'NJMc~JJzYKD~5'Q̆K 6~@#3V+ ޭֈ߾DuiAU2;P*kx /}4nQνFOz+{xla 9OoD&btnѐZ%Sj2{x9cj,{TTW2 SɫO1 }h"X^Aۗ6eWT(^ZXIlltg!]ЂU{~'|E(#]lk!1I0g} z>B*bMfՂ'={Xe5o-91;]n1F7}p*.o^Vr_>˨bP2̎9[Rv,\W@ү1i sa׎+Z.ߟ{: ?5~H5= .|AyʉC K3 V{-,ϷczLKF6Ѧ'Ol?b2YP߽g۪_mZshNc P`K۟J ŏQug*;w[m(T'MpM'e=Q]mnÇgKy-N.hh ⱚ1OnиQd-lF{[ Ԟ IDATI2ЙK>n3vSqZZ1a2LkGe b{ŗ2v9$N8Py'@u4n%#'!FONh<i0Z*3 M`ƣp BIi2sa ΥeiF*{=K_Y6S/$6ǧLh@-dDbhTn;ҘN(槦VcmH=S|x_7w |J.#j#n,^]NXKMj~Rs.'0'Q*~ao 4%Q9&2b~,zq'OŌ/T0,hmsNǒtUU}yn8bEVыh'ٟU*R&Oi,~5 aTf6C-.쐎`i^ש.O'#\IJA~l ?!0r2_#5W 4YMZ؃!e$H0M>}}{Mz"$jg D75"#$eRѸ`8"vLD,XOt<Ӫwx)PBO먈Oݱ,X/$2W%wtRg׈(~GQ#:dbZB?lr*T(o=搶.L⽟#ꚨatEdNTdr-[B :͢WK)hɊ'~\VXg9"$ggwt6>nVC\E_J3lQ\*bR_鴊tT?I߳v,Yn^eG!m3 T_Zdo I7!M᫘5>&EV|"C| t  Etĺ LEF%YJl),s>c3.7vw_GT]'[?_F#;Ug븍 Uw!`X+NW.|fG\&IoARq窨[&Y;~:y&_ 몄Oa6T_IFs!Bl(b_TbnQntuaXX2b0RL6$(TFo.fb }n$f+->6jTH^Eyh/MIkdp% $f|ϕsYٹ[$QJ՘ړ(|o { A\ 06 zbW ܥp.!>P.R<'[?'׳N0;p\pE0f0i UI[_eyd+WJi45ɨ2$U͘ Y,|'-'^%:${z13l]Q{* 9H.{ x%F{( f FDjӣMr[鯮S*̾B`5=.N~-ްl_{ :Ռȿp̭>E)XKr(I7]XBLJJ^dX͠&tŔnRAO޽Gob72cD`rSR;83Kt-h|x42˂6Z]'ٿ|/=NId=eFFuڊQ%H9@3pRg'iܒҙO;Qt tƾOafL/)QrDyAF}3(㈫h]aI ,SUT$;^"ՋD SP =:ϟC I!eXE'b6r$6=V6K?FnѠGeP g2O$MqH&)o>} E]zsw3p ]X;h51Eh $w&^l1w2`8!+SvqCy͑Up!"L M ԑBzE)@T3*Īté~_i`cKDhBj3$s&Ԥ{ܣ&DR1z/ i oub@r]xFI ^:'JQ& i-I6:~ V/K& _m<+2âp`_7>1[  zLI:YI.M tL<4^NtN(%K:g|:&2. ,#I AwQVB] bkۏB2%+95zcO!˓g g}̴%=6DG {SA9ՁCR41y$4^H{loNLֈÐӌt p@;cL]3LzѦK! ]BW9^Da2")2WuUe,NlȾxO1;N %nTVPBSd#O uSY ?%VcO8xp"IYNGQDokuMHSld6R$wvvcDFZ~}s &3\ 4 V)| Y:.a~=Fn)7 @gm`g@qR nRZMIhɗnU?#c t8 s1nA^Oi!ߏp*^pJ1?pzR-\NR}0H"oZ.rzrSbv~&Fokr-+*I@-q :_i&uSH_ey7RK*t>+eև]"X i P:0/rrr0hk[h2б*#OI[)^ q*V&|E4H=t(Q[ј 0cSP9=3u1k*.W-G}BU#qB ( zSeBn%ec<9 e$У~`IJ8ABzzOnt45)uUnDg#B7 4 zZ8&othBU%鈅ՎAJHM<은N gt0$eC;c$%$ߟi|,5DQ(EBQk o5k$^Va;n"gIn9xZKD:b!Ota@,zbDEjMIT@q4BgggͨĪt( 0JE%W*4OhVu_^Q~=> B+Jq-H}x'2T+'+tjmHqJ1+DE?#H9~\a4W#/-H \(6 (jDh}ZLX7]l8kJeI݀Q^HZ#Z$:{ϚG+HSD>/F'4Au"/#TwQ*%FSiD ^Z!շ~hwo( a)E<Zvj \vlԨ?ZpTyRrvLPZ`J!R| [C=+5NwdXӌ-Tx=~B4rb̦p*XQ}sHM/=ݯx~n?oDwW'/O ZuJDgnL1{\v)P2:9٨M7m+~+"5tM٤3C>.(FFƮ$z?z~ÀQ%nʤ.ۡuuHpQ RRuFt\t7lĥ~FЖ&_2W UAᐛ:bxn * Q3.~6@L܌n%bIH J0{y5p&Ve$_"JxC| Pٻh^n% 3סadL:@%_mw Uh/ꂚ\ۋЬg NqٻV#Z >c {B?h٢nD gm 9%F91TC$K7e;S (M `C.E=vD􃈉lˀ1]P45/<*;>)#2 \hnHF0HUH-CFDDʨ1aܔԵPVX,OF#l[hK&fZ]dŒلԮb# `L2:3D(Z?b)%)(K.MSЙ匇]3>޸RK.-L((0)%ޜ@ծ#_ =].=HlC] 6é(0OhL< ~AE]J /M)LmKY^5 2C!NV%IJBc]{/Pjp,f1 DFwVݣ &7FZH䳗 m u |Ti~>dm!D$a%p*Eo5Zp5ԁC_i LrEKTKy`uMC6Eq?}b 9!! r7gѻb?nQ;8ܣTSAΒ-)L~7NP7YBFk #"#R2Iݫ=+ӯj{ew֤7dK'!zn$]{*bU2K.柿%0&ܑ>c ݧ"ׯA&\D {qux˴HD0c{\"sX|G(>Do]%=$8U k!]Iv`^q"Do|ᄠ9#'uTKBB'O(G?M1xyQ7ɺb@L,9d/ܣ9u`Pi .P7a8:]$wFY}~:T^$ַjPoY):]D(B|zD!ƣ1 }䓇>.p{m[ 8 M |9]fvٿ9*#Rg3MDQ~3IL\,bQM-$bu21])Z2_gDswwmsu.G#`<Xsi /@Da{"R0&^AlO.3 WTˠ"D>R_PznN|+?uS<ץ̨$귝Snj$#[n 9YO`WYqZ*.uwb-ĸb+DmRwdpktLP6R.Ctw;$= o<8Ci;ؖщȿoJϜ_]Z{w/bt=!"/E.bSҟ3? -r|olW\B"M` K+"`n;$FFג2KJhkD4JRo<,~L߾*(]وa9(FFkĨ>JԦwuyWKBoSCx@H "z*̀J-UPS 2*ET!tIYdEe2pB#R$삂gXu(o>ėT@zr~A"$!uMK# e2у$s/aMGȮUV b2b>k*^G=6NJЌPZ2g(LUYm$Rpy:+ 87+WyK1Ho~rOы#/lH.Kp2b?EiN@=봏(F7n=3tPG?k_Gdޕـc*=1cbeڇ$k2>Ũku 9|xuG!2yG,N4|U R<3]aI":g4BW%|SlZGt|GEmPt t(oQӘBc&8RCb gf|Lkl}8 12IOH~.ɎI̞X}@0f,Q7R?C,W/`6S|~DgD16i$&+?kޖ4U 1rJ۬M;ø¨P|SwLUxCIKG(EFO^6ɩDiz'\҈c$Y5ELߠL k#38%0FDB,5Mc=Ze(R-zc Bo0>d'ߢLJUʿj]P%D ].X&ɼtVAeYkmv:tC7 b _PςT?'1i!"0K fDewlH,g Y/NgɽV- 2^6xQAID YA>b7Du%"#Nn}.Npp(.C2~٣Rs1dF vRȜj20WtP!2  6K%EƮda]#FGN*w>vuT* +}?btuK58d~ gXS ~M%VHb`tG6.2=L>FWsttr$,'RM(BN2jSk*nZ%0d#/->)% 0pic@kbB=pTͫ$`Me1yRjqB>|ދY{$!LST]}&EIlqbPW9yLd֡KI Wps:$r/G$b;WPO+0^62Ua|2N7Ir} &_G0*PhI`)SL7mxDwG ih)qmM0[,aqJ28XNE": տhaX*f%KE&C@(\m( ܔԯ\lL)J^esjH?em8sqZG47CZ#zOWɌ]q321$hI$gLnf/YP:6KjźD="Tҏ9X7i?gw,P FzS!a}A1yD2NN"(d02q5W.xّy[`q" oH $8;އjD>Gr? mc<:ߠ;/n u'}ؚ;JwH o_"k"0mܔޕH_p,+^D !TpzIƿazv*^F }$kv%$glf">jGaX1 a<DPw#A G8yMFsQu3Ӓ8-x^'8٧qZeC.1D*8S=- ꚌJi0\IQoXDq$ w[0ߊ%^cXb8%:7ԦJh_8@)'+6;U 3}>.Œwy` ҙ!Kߧ p%}H,FS\ѐF"%u>Ò0('}I;& da$\sJ G4+_.ɄMB눌]LpmԎ­9M>m1 a6j^ HU"||>[O `D]q/~QzE?4dTm>֔|A13̈́fwVėj.2MjB;K2) kbHa)c: ]7 ` @Pd7&?0!;t?}Բqj ᝘@f3!٫*-Kgdݰ iԮ^B NNf@|빾@7N I.71* Sgѻb{ի=S;9 aURwսu=0v%d8;*K8hj=9!C DCsC&_3C 5io)cwfzhM k#pQRÇWXK8zMZ`/__4&xb>9 aYN1UDSIJBAPlk]̌ꮑzLB_F) P:SgLEP bgd9)pr񿜧7}I E/g! 3>~ɅfwRziQI^& hI,x V_XL ?&cM1a/)KJ8Y5‡+:ЧRAU|HMs =[;&ك{}d/D* ?8M w^""S 5bn,ҕ۴uo_u@%2y 6Y-a&4a_qOz>ʑv'K!_+u /d>'$E-L&Et4v( vN`t" !㦄p?HDJw/ծR)Л(^cl1op3N!q:Nx&Ѿ'$7<:&֤+ fK~L !ꉹRI廆P-݅EkRe4&1{PNb]@V;`$]T0T;"$¬Ou0m?-Ű3}ReDVqJ? ֋MvZ*ow۸ϓ|8Yd_1/#Uu%&~3%X"wUK`D+*c>'gp -M ;'pKgD輻Z 7îѫzWMBh>Aj'|"KI.lD{)jA#FFU;z!nJA>0[ ZmiFxot=XrA ӣ\bP֐}IԮvĨ(Ɛ@4H 5|? -Ch~&+]CU*1jdhC0t(~sT$od~uMCѭR ["KlTUu]"ƈ>DcAv|Z.윔X|܏YneqwZi-|buz?RbjL֚W0F*h67PImdEh0NocC ͏D&cbU$C\ޢP)0 W0%{tO.+Ja f d5əs3un02HP<}F3!?̐x{epzodz:nN(!B}lGRpK_hـzDy@72qN9#(ċCn%0Lh=M5('{ٚpxan Ƽܹ5=b͇f:t CCڿH2}d (4xhb I6k^_=\ErTIht|Y^K2LpRIp,z(٢<yw/|.u:E=QtTcGR_.P8 M6h x҈Hʕ&F|g/XS!Dy}7xFLJ=GdiddgLkй4ğȴ)=j#$ܔ!)X8R':^/ xye٣ !N Y >ozҟO1#]ggFb'Y2.A/aJ8c><@!_b GJ8\ݠp{D)fNor6yk_QM[Ok.+? ]KԙH9=.]Z@V+ֱDMM*I鐙|Y̅e"2Dj.OOI?bp]ɀ(HЉ2d^= 7|~ 5MLLC^h~&P, h&8$zxozG;`&D#lTI{K1y*y) p"vEoRTI\fr~݈%y2vq7אr%D˄2$.p Pdb>s7QM P_qZ1P8{(|Cg8.c$l۠(] i+0I.vQLjn磋w|J4fTJ- WHϵ8Z]gjv;^c6>TPqOE**JlO;e)<Qߤ&M|_r~(T0+JϿA ^& N2]m2hDC@ÕM_QP\pKװbu2: :)o)l:#EFHJmxI"I|:kHEOVȞ!Jإ ~gFJŏC7bD^ ?>F)ha9DT2q*8B`F8e@QމH? R2ߺ\*Zuw2Oџ\ SvG"ym w:SП㨍v9I\єqr2Y }:sM F:m:d~ j*8mݧ0~sm0YDdBH#BCz҂kMG ]'A'H.D8VHc! ͓1B&<,&3qǒI# "[f'ӛH^x;;}9”V'3D[t?:K瀌?B:۟(3 2^ :OI?l / -mzېLv5% C*O7zt3&"֚iڮgBtBx܌k  V\FSqWCݿUKbbv#\{ N).8tT@ϋ,u(^0 (g0".2xB7oL?!rgID6B0n|t7,)s~%"\5e"؎ =`=VF4jPQ2}x)ނGL#gTp=">2d9"~`XtG^M%vD|qt™1S.і)-ؿ͠3Evpx\1޸CgϗH%U<%? ^\B $R%r/b)bvhAIp'uGc$kTTF~wd)BM$UEu"C3t0cydGw|VM'~"97bXR|ol7#Hx-4__B YbzsBBxEUN@<.P  |+`5FOdpr }BU>V!z>~iEtLi% ]<h`Y]}D|CT}⊃h̥vݏ0COe&q/E֦1z8GCh-V+CbueӵL<_A0Ta 7E"FVɵZ&Kק0ds}:'~HhMV B7Pv3T ]ߔy ]kXCq({?@ Xg8Pl|ǰFSVp&[ rek #wUh:@l2Gh+ +&4AXa*>V!jf[-<ƽ/>U gXI-ɰOiYhd6`Pоc=ڥ)vCmiQb*NFKCOIx :#nF؁T/tuB"fzp}ܝ~5C9dx(dK}Jh/皬m lIR1V :zј[{UgsfC q 2lφ,}60Szw73]LW@D7wI}!r O8"2{c1q}U =7Ros|ztf_I{Q{1/c3%f@{Ewl;Z^åxEv!Hl 6+:+K'qEO?!7=x^A!WfA.*jFx[ĐaA5dme t"'&ua,ߧs*ЯI4?{= 7bw G.^Aہlmcrn~Wm*=v݀}]/Є! =g0 }vw{]ZO0: QLKB2K*ps1ז-am$QlYWpO?ؐP/ٟ͛ id'b4X22mו64+E OmKl>)JLda> 1{~ u:'=zGE-Eڋ ~D|B~qbugиs9ϗPP-!1Em"Gn^Za"s B-Hh/rJq-K䊄W/˺--X=Fh457Ti_%=b` t]#31@/2vc~P?]a\- D]Ǯ /\ #)Բ'npܳBw|XTjY=Ϙ($vNE"Sg4Y«\W6pF CVLgDs`M,wh z_XL&Juy|_آwCS) nYdhW}QPnm&UXx_0}މ0 5EDߕd)xFxO4pګq]\W{ IDAT!.IB˷bʔ`Z;D=e;_" pb.v%DŏI)g'0D`G<PXfy72*!zJur_Co{p6t'ps.]"r|,W;(6QQ!]քsNUf&P޹uJH2~R%C"B:v#hSQ6ne++7yxODC|=tYAW˸Gi&_I,+,:AobJ٧l-uH&tu(\ #(I oܧD %3J'P(AUu|QB]fa22 ߎng͓qBBOAu~clhc{N|OV'ACD}4$&íj(]#O="B'<һi†IJ/3,u[#pT2?|~mcܣa'9rbǙqQn%P,z7:3ŷdi b5NHAuޥ@@A TP(l_%h A2$%98}=v˓4Uv~v;!!q+j2y?1ocqOT|6=,Rãj|/q= #JJQ}"RMzLej jWPB2"邅T^ z*u;Cm(4u{*O$Z8xdj]7!\B 1ֺ}Ed-w'2Ԥf+Mw˴0!ӽU HdsCD^dU#1PmEd,?jNq0)匃,G8s l^D[ͫ;qDc FE<-?(*)!=L wUZYhwX(.n&CY VHӏ*5WP La#ol2 wau@&yn۟ؒƠN}m3|gm$\4~٢_3+6l XS +M46[d}Z͒Q*mlH]$W$He8lW,yK QQ O L/tAsSaH 52$šOZ9~J#I<&E]QR8)i{ !.!}[I.Og0 K!=t s>қ_@%켁}?VZ'YXc2w߻EpI 'AbRƛpqB=BNl>(EFxJ(H pq(LZB-/ٶmy]V&htV?sxϑ*Bv"̔CiBWaKHrGVQ 4Kf8硘b۽$NK%-z] 1Gqy(rw:QoRrLFXWȽddc=zWݔ ={ 2m0h02xLzV] o^P.$FJZ^Jɴ] ľ!?q.0:U!yq2E1ĖG)fhVHf`45%XS)+9AS-OR/%dj cJج?C@(I-o_9^)dn#e  faK0BT4OyD'v}ң~"AǠ"2µLwNa44)r>Xv)Dq4FG\P!ReTQA$ʯ1z2ݘI>QyaA2zO7}Eu;E.soo?cp3I4 YRB9+lwtShCA'O9-b=cl0X4+&pF#܌߱]r|{ۤ7hC!UQ9+ ᤇ5Ok]pEBsG#P`F&auxfݾ{1Ua0iF6 #n^Yt52MU& eg>4=X%"O% 0~ٯ4T7ɣ?Qvi2@M&p;@k)跾 iqFopnN(^Zզy42G8M5m͕#ML C[Q> ZDTf#C|&Ć͓.)Ip%BuYxkIt-$izṷ.՘wN^+%x;6\m^̱. ˗IYM-][)ɯ?LNmT[I,dБ1O}-x*ɘA%Du`#cLcc%+]e/N @#x#KGzDzQ/ UB3FuWe>އc K2(uyh˞T̎qFjs M Xit}US z:Z;"+TJ$TR] r!%A>ڣu/v!ZaIo*{l\g sL$MrhXY5zwx% u\ӹx*iT8>/s>In~VVuUQ A*Bx# :,bpLYJ`ewlER%#:w_E)ƠЗjOoHS~%,%h Jq2$d1]zpbz C1yMM9g5"G+KڕVqoSHEj•=xutό1q^Uiܹ]tڎ&e܍M!ծȈaIuAMڣ2Ih1`[^Z P} uoH/LA?R7@Tki#X_y[H/J--'."q2d]}M(}XH=mOFbUn^FO:Ka5CJg#K^ټG_3%W m G=+/nttV,9}WVbJgcWd^#zO̝jL{ɋJ֧_m Wd?jH1) 9*>j./Q6`ygQ1b*O)t W\'v/t0}^Soj8Q 0*1~!\La$76J~ՔsF'_#$"pT %;rTbK~J{SRR!qVY%m.^.qWjϝ&{'kU?bܴz &+ͭ9=ܧKrM!jL&<%ʑz A23/0&S.SۨjH(۶JJG\RY4ٻr1ڂ P1WI/Ō\vBfھ Vc̀ D?r&ګqD?9Ep6;L~)ْVrY[X >.5OJQ)l]3~HS~ÇnҏUZO$AUlzO I /$yVMHP: +/\!`biHX_?Gnֿ{|w.VBDTKk_}|?w8"i#*!FW6h>}zbvj ܧOK(Ҹ3`nވ}4UdɅty }dQ yjY:S))uT"+mE;5~w_ݹ~љT?9E2;׬`/i)F#C|279SoC ̺'{R p)qf&1[1_յKW/zfT"rЛQP+nV3PV924aߤKmN\"zRru&gTBɵdo2 N.O]x`L!l.cLV -c=+dpO!w+MHJv_;E`)|tZOvI= K:O;Tҥ?Cߏz1ĩu@& N6b/+(7?<`GRe}НǤ_NQ<-K!ths3Xw]F+P Q~@<~jpwhH*Zfd0[1RqRg}=}~3&c] 7/~>gd(,z8H={|"ڕe>8ىL=CUMaM8ϟJP_ }b]%0%T2{B}ͦ=G\SG,A.&D)`n`kgIӉ@~'Ab]!wn$(4if%i[}LZS3̙de?~4"r 3+- 9)o}*f([(|kimmQ_'3٥hװ$@ ddP|/f8ZAY^p-ĉ&7ҝяtQ7uFs@I8{f10(i236Fפ{ b Y}ʠJ]'!"HE(Px{/āM&ߠ!ZL~z~ZbP-=c-d_OMfC_N 26/4SIr_ 9G[s ϱutg}G$ \5O p 4!#Jg#bѐ" W'agr!}ׄPwu,Wa&T Ԧ^8Fmҟ x̔I>oR+s٫_Ufl uOa=wq,?=o/uu;$7L- ){B;;G Skojd_ϧ m;(ۺTpfIG*C0\&?Bv8Aϰ34Rin)2"E+ ݙ^PnS$ښAz%_QhŧƑ2J^VX%$c}R?6B\ä2l`dhktH2f= rl?%`P|M?2{CC}5VQtD!QxӡYT Q2:4A% 0yKN 1 AJ~D&ڶ,ݧm؎2XfJfP][%HO2Oc "S 6C3c|ɦ7wtNxMh p&Doh}(a3I<ݦmi} }[s^S8"b2T+F/u%cP͢>J{Cy:KНc1OHnJ0PlJ_g`Pi5W$hC4P=μEo{ě9A0a5r8ǧTq}[L;ӝj[cw<곲`1):"PRNY}7ߜArOY?Zh>`pLB)L54aone;߷γicUP/Aj`oF4k9AMƂ\faܑ3 [xZ""(| "3m\Q=3AO /;6CThgdc/`*8\=jŀƂ`GRV*+1׶?=Tlg¸E4WAC3Q5ya5Ɛ`z%LPF:.H3 KOFg$fGfU͈-&pIaD=y@㨜Cs#ӓz =`Ztd֗Fw.4ZY"-FfRgl=2AvŤ~\@okπ #C„  =>%|4_C5"?VpF ꏆ}9 0Gxc!:Ef:΁ IDATqPH-8#^&7"ܼFs3 vaL{UG TjMIZ_aɉF4Bz)&u_D )(h Qg.)Rkg]! RxZS1J_%ex*I{Iƴ !@!w3_Vc B;Y"w"`X4T>/ۤVW _cmpv"F#8>uŒi,DLފK*CKFhdo*4K?7$h֬@ % At+M*y3S$uL[c]&(#jMH|x(Qh .ֱ z#27bo)u 'w*HBtN ]~ KfQP, k0~6 VUo !FKeOZ y1TLJS|oaZ'hDMS(PH!OF-_sp-H r߹;&|4]ܶEMj5/$qAbC.kΰIZTGeda(e FGRV!&'tSHًS 7UfcKX͈oZHc1UwI9½> JI_;GB/7o}ݣyPE9!WgX]Ww 0cT]gvaHlά`!w_gp|A"Thy/<w WtgO?9 ݐ~ 96K2{G,at|֟L0Nj?DOg=;Nq('U* * 6JwZ0OWz{D#@5+*OEd 'мI+ zUyȷ4BT̎S+$2Ԟaxb ^F1 BF7&*f*4pT%L^0,ět&64thm;F_z{ N!ޠrmt \FL1!O6|'NU+l>#{I; П$(4I44jد[hT+!P]?3h Y;)D,dL=1vzS KwX7pd,?BoJʀQ*/u:6.T1: YV S cga i .hۚWU:{ "9wxYWtb0.;=Ol ɛ9oltUE w(24 gj T~IuEPQ~޴Q*%T2f]Flx B'6T,_GXk Ui~a'O1b ^0IʱX{:ٖQ]` s6J7`ji.I57_~b}iMrKChՊvp mg D # >y?j*Ï0U.Ire&f/k8yḅ7O0޴-E~A \_U*rj'( mp߮L8Җ1UjOI(К Ŀw3Q#W2wbV0֯F>ݩ?8x#fܕ֭͑,BKꇭGEĺVЪ\Plruf`-$67tD Q`LL諸60\W;ڣ:ҞeOq fo[[ҖS{vb2̺Rws+NAcP?;֗ {SHhsv$#z/^U)Y_N^TXfl%%W4 X&MK(I+a0,Ōg:ٶ|0CeYJYWَ<ߊ@di}AAdE@ - ~J06/ͺ, _ HF2MpD6etڣ6}+gq3沬hk쁣}LeP$WZ@=ޓ`MR Uvr5y av;/kU4h'kY'OzQeL H]\Z7\Ll ϑ ކd?qJZ}8:)㺖Tjo@E"*= R2^h^;`cY9Akw1L!GD((\V(aRO(\Vb44w[11C1cck)r7bWLJ꼅l1kM%:2[@'d'$߻ h߷WU`y_8y͇l&F"ލ-$BM~Yr\(\I԰WfJ<%魨Ƒ m!"eiTaV]i _]f1+\1um߃=5o訴1=uW9oם$0uѿ8YWƝ2'Ff"~Hh AĬkdUn}.%θ8g5"#{Č\hCh ?ƾ&C G" aP"[ڳI6r-r|2jIUc'j ;nc'qOtwY A}p&;: URw{=O"vzZ:zJpe@!eA~Uic[Mlќ\ɿܽOo}=#ͩ B[f'j F(#XGVTVp*0ًM*z Y{Óٟ@g^,D!鐭=Hr=$sUkrНIma)~N^eX ۀ\P1E,/8X56ɛ :=(n|Hm㈌@՜7 /\a䲇|$sM=|lCY k1\gTB~H0W=%ZMHp] J[7Lj5p?Sm{?qj71|HWKd=ޝŪ1x;mľgONa$w"#Hl}W.iKٛF=rHg좿6EVL8[h[>$cZmZѷ{c'I9~s1›%|m9c۾i=?oS_P VH$G "Cjl>DĐkD9gΔ!CuAn khWN\S!Z`z'yScO12բ۠*`dLdji4*T>Pqߗw(|i#%$T욬`ۛ1âBbQgODĂμ-GcBG%f)T?NQ@9x$&wMĞ06?H{L࿿W)?˪{N>alk1fMCX2\]=J_c2 ,/^ -3LRZX{|xS )E$Gl^>blAkB0Ρ/P]19 R 7MOWL2&f`O6ETmqHϰ"YYW@> J*nр줈LBdE)eRXYR$qib ZL*F PY@-H&7FTRr)";>e%ޙauCәP1 J(cM1_ݤP]/7YBuw JƠ -c)|ϹO-xl))Ʊ?c$<,3H195f TbG 8=#@ܢiE5AwZS@Vi}K!>CY3|"N5 ZݠI,IF&ڸi*L{T^!޸/.P:kJ:H=%ܲGBb#Fc]J}͏%#Pa0@HE-(Q]AB`4Il,Io,)G Fa/>1!-*FGgteqTq`5b-({ڻL[UOG*Y ~YC>%T^lI jihh},VBW;CJo_Md)L`\?) CQ:$sK{t 7=3]YF=r/c~V9ܜ̯5=DD=KIa1 SiD۟zL$qIT6J 7AB1+Ro )5(|.S>ګw,w8 ::g>_ʠesۏ}"2ќC4԰ҙ] mvĠ,ׅo/&޾s!#mD;"3-RO$TF/+x(m Pw2wd|K h|Cԡ`PsV:Rp7])Ts}CP8 Xj_7P*O]4pFT޿٢;-t⨸S_`o=:>&c6D 'b~<8#W9:s"*^^;-Qy?hd?{QM7-Wh=^&1v[鿞1k*ŕ|aq/)_bX0Z1}:I%&DўI0tJN޶7!sŭF̠lчUyVF7Q Ct?4IjDQK?n,Jfs^Nb'qc8p nѫ=͕p^x 飤? ?@]^{$_J؛ FDS0u^lUڇr7njehuR1z"{a" HhHd%xFuǏ<ABО["lB9/{r>[D;g}z)@)Yu~"Qs؋: Y d\@|4n[eђ/xrBaત]$+~1`J]û݅n)2o,-Y!9BKd\fo`&=zSo1 Cfo9| vK^źj19@`coz:0Z[ ʧ=HG~Lrez9t"$e.7 G3t8>*h;IC=r!%zRA&MyKP (!TKJH Jg$n[`UAzQ Uƀ Jp71ڂ~(R}!@rHs?7vm kڒp&M|p,&e,Q:逭C>DjDL'ZL/cc[3|R˂BDtgh헛 '^[0Csl`& Iu0 CĢ-t) J\u bB+&N)ec&/pr!r8ymU ySLz>RTO>)}N1f6nV-ُ-!V1Z͠;QI9Q޼Ű_F8:bW fݓn G9W8ѡ9}>xԽia䝕u8  @K2MQHlkȱ=cﮭ zw+1Xٲ5ڱf=c[9% HUwVU޹?F *˯}MoGU_&aDww !6Bu8Rugl;\j٥(M1M?s),mG靖;k|Y\ տGTFc*/l cmm6E S&~6$Ve]y.;+Hs3(b-^mcO `@hiېրN0h,8PeHHSQut Xk1d b>~oC8McbU(z/"DY"5Bx:xi߆Ζ@}q3|&>[J#([]V}dAE#Iq~/ #/;TJLcCY^1֝8.7lr.xp[u梷`Y*ωLqUۀNzg{}׊v/Qcّ̝Qq΀|Wcb?*]B=+!Dő; R`JYn\rWRJ=u؝P͉&iNί[#B)YG$֐m6uYI I,k*)Q)GE-Z{aDb'vL.I4豣;'RE-f;s?h8 C>|sqI^x~ߧjqi$I/nQ34|&qc>}"^#4+> QNoj/8O'"!]ŸV $tf4W|y~.į X|"xYd1dPab-btZ[.B0К[$TGtҤt>`9g"; јĊM 0Fy-Γh=Eyr6XUo)o>kh~֦46e>-ާ#!2 H\6Ik\N*+iѳƃjҧW ȼ`.v=hvcs7WZ*mj=6OHR_:x JWk8Ȋ^Iak/bXHc䎸t|GC6܌;G2[t&Y|1^>FITR6 FڥULxyCޤΌ`U{ >\IA#1jp-A`ё@jhۓmJKl#)F| sM4 kzn_N0Ee0?zdXr.Ғ9eӯC3Z[MŀnQpvk>Z#.Dגdٗ:fқ *eeT=BO_NG4O s MI% #{$BY5sz/8]RU< tNnꨯDB[K("*15I2j$BLB֏43,Kĩ<*귔]6qh@#F җ4:b dbEaXP$Nxˢw$C;oDAlZ}fNc}-'xbb+E?;dwx'"Hbo]֞Q7hq)zS5 K" Kxu7Q4-4Gư,@F1 Ib]Z (xfC[aahgsAg9{4-$'yΦ9,ImnQ 2 A(R*E:n(>)NIxg ]-\9ɐ(Vq1FKb/6NeuQaGTRwz3!nZ ^ l6[lx @tEy%g$TFL,$FdC]]X5bm@vdW&WG2Si[ n䈞i LZG|MPq'h2:%- LQwq b5f\UC c &g2wU#i%1U2*oicMÞO0EGbԤOd FKqcG] >葜.(/cPPH1EnF[yP1(//:{ht Չ5{\d)R°c]XD+U5:ޓ#w+$b]4NpYBU]!^Z&87m/&{kHwV_O7 ҔDpԒD{3ĺHI.}'"%zf y=氾tNᘅ[4Jb $MjD֗O,?=L(}%KK$*:I>{d _EawfkxiPF)r& qjG (h>ͧ'B+b8V&%Lz@ͽh g+ Gfі$iAk?k](qC |hIct`xh>=A ?r9:`gMt@&|Z<{?[yD"d_?of߼AX>0e[`#I?Qz#P P*^>c!${Sf#s]!َ=O0-&)y$2A$)h 䯇8% Xn^ р^ )#b c℅u F+$aC7XPg,Ddw~ԡxdpGBe3C\'IA2M#Cv]aIg0[bT~BYҙ&[',gX,ZE`,rIc*c#޸MW^CraTBt m.dUԈJfCÁZަjˬ\TORyYB4Yl+kU%P!,9 1P%,bDsPrG QCGB1ڮ̈켇ȔGjP(yqbW޶[w5W6٬i]5#S|VHB3hjS`B2'CL-2w#1b$R8JŤ_tG q!?S_iUI-FYpp;&悶jF]‰ MsQWvvto'WDNRVc1 Tb&?w[8'\vT/S|Y% 9DoQ'Z9֙*7DOFLn2wEjL Pm1dF$k dq@VHdLJ ͽ)m7i8RZSIOl6<^* x=ç?+?،ĸ\S|YlV|Sr3О5wС)fC*6hH1o'w4E ɖE]}]Cb VbPE5ҡ1]CGN 폪Ȼ{i @\n3Snq݋\_/8y!*a:[F,sD]V2*P͐J+lu$A傃JT^ 0eF^UqQw՗J6[" ͥX̓鑿*Q=/Os_1*zgʣEu`*qbonz.r`YD m@a8c+QC7'xKِ/n$)z6 Ed;g#pHB)Aە ak{^ُ6Dከ9YXԷ+DqǾt)j_̒09$f A: Yg{#֡FA:mnjeƦK;+ 䶻XsxrHgVBŵ?rx'ӗL2FCĆwR*eX;o}>y&Ə%Vg7Z&WIܸE"oV|Jg7Tۢ3X_'lv,z Ȱ> i쏜)C&64rʽu"e2`Iƶp47JL2?bNӝ)]7w$o8ĪP쏜dXV|Wl&b܎]!*T<ϱ jMluV)BH)5ufC:z/D W^@Elk©* [D?YqRnlR{.@aɸՀϼSC&NA%sAhPbj"nPeԝ57Deg_9 { # M*%D횧 QPn%4[|)ޔ9 ,д jDg>G,(UHOmVLJHXHh  |gp?%̸l{?U#g/YbmvLPȶ օN Pnp;5s ?V׬ qs USIX/tQ7}[F@jQTҵ` A uKѺh?O8m3׊:y-z 6{۲bܻE3p=خXq2~y{ k|u6 ~NzqRɓXE._:< \v__,$I… r{W9} ƥ%YM(o 9@FXko.ۓˊ f+$=#ND GpP>J* P%\Y#LCkYgMՐXFoxʤy*wMr?1eO3HI/qS Pcl( Z"6#fgغ]ܔ HRS"$cyr߱t:-&R`s3F Ŏ2P'$hL[n*O\LD,hq`pAꩨCPQ>Lru!8.r2]&Ɖ&GV՘~TCгd̫ 2~}Cd%F}dwY38\un9HXE(d _XxU~q٧E噾úc ڭ$ )RM#I`|~d~H ,5K$~ͧQ %~%Q47Ov)ư"cHf٠#xp[{WMZ8itM VnVHt&Q,?=%r_X/[5viM˶(d|G?0XXk[,oj #H$}UK%S>՗1XvDy)P?& I*dgLا&čz<5dsʰ깘!ѓt bڀeGeu+V~wQ,wJ)cuN9f2lۋ)@ԠSzQ%wgu}VC]-vAY.k'm3H1G4 :ֲ Ν4}r"csòFjDwF"{;fxУ*$p:Q!),ݭy}ePAYDVԂ@O\3Q{H]BO*'(QZwezOˌc%x{w5n7M"__ƮKd"YfQQP86THT%6PKykF߈> [!vE|LKX0;芷lї+tgdrSlߠw'Gg$4 DC"2cT٭o)$W> LCcU%a=dMZdg;+Ic>3H_/L$ 5g,=(3@œQCN89ilSk4Kř64hĪ-.yBhJe=إ} AR托 a_dxlxODLf+l#1$c(G(=̮6-XQ1Z#MFdH hu(!ŢNF~r$wG%p IbhZx8F#ћiYWI/+:&l=KIJ,DS >^J"t2wCdWf[OxLKER {*Jߺ@H$6BC EX"5dPObO(s &Ӡ8yE@#/tX}Ԡ WQ|<龳`TB+AJeGL*/\(Q!-s~ zCqOaxtB@Jbpy@|6 !7qIjiz E GK !jOaXe ""SGo^X;%cy.2~Ibр9n1͐Pa8"C$D}bٞfـތoU^ YFXc`:`PRJ`)d#V~zޔLzvm6t Ry!xֻ&OOb2f3FFOMLv@`h+2~Z)i2tq*rK 6Ib]&;#lhq>+ .Dq|D%ߺ$d~IpY&zj8 wd ,Dz'Ak 1+!Yٗ 0âs1(ۢDq"GS"2qQz1!Oo%pX{0`P [*qQנݷ(U֞ BMb8b $o%{I&4dG " !ar}7i|`yڟ^tpjs3DŴl+T;gI`:G"Jߝ(VsΡH [pN\Ȟ[BMWwc(B.$T]KػӤ 0 {Byx1o)˼ʕ+,..GlsEO??ͪ;˸:^1bkGV!QRG]Ni.P[(*WWPW>>$wMlo܄(/ci6O$H+KDM8a-A˃^en=? %Q]C(C #v]j{6Y:(v ` ~ʰg n(j -j/W;Z22eE,hAc%z_p#In_ <  X!b4?_s2%9i] 5Pg#Pc߼J7<:9ǣ䖕!dfR8ؤ/yN!-J\Kx1KVk)~gJx%CP3> ^Ekw.|X )6 ,7pLGx$ i9" *&#|H?Qܼ쟻SQrzrmdEx'%z^U ;[ IDATIzQ̆a88? ylt2>kIr_Jh00; af*vRFJ7 &w$W)DWa).D(iW0-Zc.G ,8t)RB6%;)H#eX{IzoLaܨdz +$WR Gyi@GCB$&KAygn"I5 i!A?0 CAOhx]ܾNQYVAYX1m1ǷPo3벻I-ӥ$XL|BM'H3 ;Vk#F{NO&R$!vyϛ]&&v삺jQjn4DdƸ:-1&맒(++地U@u75|Kz MP{ \`{"&>.gg`1Szl.QDŽ%BEѹyzBtt^T]6҆10ug[>o G-1S7]$~!ڵEPf/Գt*+)cS8mL.P%B3CdĒBOx+IrDbIwc () ':dԮ=wi$xE"XH,l , 5Ac>$LtT:D*~_k&J+ɿ:/P|Uf{\! Xu{B!{{cHJh2cnү[좹Nv>$sȱщNlvBAE+G.X_:G99Go\GsU:L"E54c*DzR3<>Sqsc!N b32Q,6!Tua~v~b{:"b/*! AK3%dH`t.ۗ#}o"k֍-TY2{G{_kI&)T Az&#=2g&=2E\ǛܯMPޣW8Ř'u5o||g,E - S}aR\q%6W_`1{hP{`\flA(1gcΦEJW@ѯ,hesa(55aT*?6 ~=Cr!.7e3 =vBy'k9q͈L0RI鵈@Ә`DKGud*/<& T-ߝFeYfڀ++9f4b姧)6F- #ɓ!Ruze[]azH=p*2cuweϭ?V'U*2R GlO"E2ַuwBJ-vM&ώ:Q>GUo_Bwbր!LpymNj%_&hcXϣ_I<\qO~p?qni4;"Џ~a2H߱"1y e1kXH68+T^rp/[RbXv8|< =-[`ϷsMo4Ic!g8f'6|KVD L%`KM@|GTV [Nwu!vMŶB xJU#Łer(gm~=Oq1}WgZ7W,1f?:XǦoX//)qTI a1Yp=շXi4;F߲>QGCSCBS@}(۶5%DݣR|*=] :g N"( a_/dxY(|tK/12'wYK*Jq3ʮ5LoBnZ%v gEYY?w:47dmށC c ;H4IQ1 wrJc]zZt!`(~IfEh j-cO1'TY ?Iͣ -c&V;PM l(ۢ3ڊA Ca5"dJ/dqB19ɝz0RGb#]J3%M +Rb7G CM3]JOh}sLxM0Ӥ ?) @fCWuIf45ěsdžS;cX^6)9>K(hέLp#8uُ(}g(W(Uc0R Wf} ܾ3•[$3bc쏜Dq@5v|S&fC7)NynldQ 4w[7L5[JDu,`cCj0XHTL3^7T$:B)w1OY?7 F04 Sc1k ҨfH9+j 6,*#Va(S)FhX[wkFLeWPxe~Q4hYTM:S?xMO充>Φu}pR(h݉]VLeLݳ u.~R}팯 bi(zfDŽٝDwz7FܫQҹHZsVyk4˿x>S$HO~;vz|vv>2 3y4;DRUZOKd ʙ+Я,=R7 U̵>#zO MxmhFZ[a|ՁZBHr`T!{S*Up%2б-Vެzpxd"Xswu$:]IP_p٣,6wF bY"xK`w4&&ˍ<]}M|>Ѯ&$Pk,އtGT$?cf.*;%zLDw-Vڂ ڿ7O*iZwt:=2WDqʭJU4k?aϧlϐ}]#V%LL-0!%|Tw8kB1ineHIa(k}$ev oNQu%ځu6 ,\먲PFsY]HKZLsZcM}J?8߷R'+,s_a>@{3ȁMѸT&{|K&XWDZH)id[=6>P&$|В>џPs@ŞP]ht4K*,4 :RV`#%ch(.K,+i$…$=5Dl1V@ԏXOoenH&W bEXWt0 VA2;mkylRz@wVW<=![x2 ;# $Zy8Q~?EFZýũ _ɜ3NBOs$c, THX=fi2zO*8 /3<=%p1e]gxOP>n2WޤQ|YA8GpҨ=x>IQNI{ >9YowFwc!6$HQ$/D;*'5vR<8'3xR3v؎f*/Z,bIFg>fAx9C}tI=*)o'>!-Pd`Vr!ۗFykFrT:^zO0yfh%=cO2\gK K =15fq* M :G4R~Ay`#Ub+1ۏE^4t- q,Q 7t xQ[q]g^A&ϼB&RQ޾Tg|D %PîƽJZ a,66 bgΑ2?=KGX, S&Y2qRuiiN":3*#!w2KF(#x#Ӕ~,?}HQN&j\s!mBϡkQTMom4N$ I*(ا&`| Bw6ؓ)EX + êJE9wCPԠx7#td KljA%w]Ehɓ\"~Zb5B#t?xhvg,[t+3rEZk*㟽BMt5KI3X0 җMzk &"1Ny!?\ҭtp}irDjAQ' /KItP olF I_|=Wk'}^Wшs>FXhpVxݢ?܄΁-A},W1s.#cl=ւN0zJG[3s1h$oBe!FGs4?2Jqp"T [;=a(te #計Dȶ1^[:1#U[g j1b th-J/9u$Cx疱<\Nw`xzNVЯm}URYrfG ,i{I_$z사nOl8WݽzHW<}yq΢0UP"|0܈&LcQVW?ȱ۝@ՕehB$tDC}љ*$$FJJQ0 ּ6%PQG4G(,~Z!a|[ na5Bu$l #'w{Rw4Zʆt[NIƀ gIªKbH;ZIPuT5ĝt~fz7+{&Q v6|G58%عOؔ&VC,n{9*v_x*MYf5tujw 6D{-M1/(oߌe1^ sqV~@PD ;/S(lwd0Ȃ@ G%mO=LEYmAYf Uk IDAT!dkܨΨTIGuZNiY>Fg5%j$bkSpU%fKײ{X5r 1nYy݌ M^ JG-EReܗj'Q}E74Y>EDt[>SInwtR MyB[5,c6&4L,I/B)kn 2*5Y&=q?9m"]aDՅѳ}FIn4ᅲw⽂#ct`=sAzF/E\{%Udz_EVGe_93e{e6 Y֑p0!Nh؊+>ooIΒO^G8B| FG?C |^wf]u[ΐ*ŌWRSRn,c*bJTӧj{N ?-Z_`o)H_Enk!چ]y 1F Qw=S=; iS!q*WE)y(=UDoh~[ !P=Q(W<,IGI&H_BzZuHl=꼜&6Y:25kYx+Bȍ 7:ab5 T!yDa-_`6>n+*n3*{Vߖge_;eb+S~$??7 <&;>s AҿtBڞY0@h)4uY4)JC216[t?F7 X^Xb"DY8fO(z//?)~~O~<{X'\wuc)q~]|4Jvu:nA%uqCg S d $ﶱ› ƅw'0Z$v|GxC$:)A쒇id zGΈwHf1fbeB!w$]%*JXHXZDU]^,a$!T !&ÝA9 h*iu$TXa/^dxtL~}4SNv@܆X(`eam1+pKI2d$)Sv!T5jwf@q$KCkY"+f%Eh=TxI?I^N`d Q BI P؄ xd]'uCϷ,t&T/tOY󂷵"q"$d 22fPп=.')-,|<ɝ(\R9/n|Bg">:[ĵ`st2̼AF+ JЀH&JOc98Qj x bji V6iRc2ߌ/dp'R=N^; Y^`̛*/8|b<;}HL(+<`QR64;)O` hK&ڒPVe2+ۧooݡ2ֲZ޴ZoHlhTq0*)2wbR5^NEk{Lʢ1߁M%S}ƠuϮf 4 ~F$IAjd9ɷP~¤~{Ǜȣb;> !}C 5T2߂ĖT7ܒ ]O5_9K~]`ŐـIE ݘp'01Af14ޢWIwG%"$?O;4zD\O*{KrMz\SH4d"OoRG*_\ <ѝC 4 ̟]}H~"?Rgs2E,tgP]}ՠTt'r)L<%y 1gY0ΓJ'u _(aq PIԳ)•>ݹ$ ~+ bg@ߐ D*ۂO%|t9W0Wh8$7B=;W|r:gUOM "ՐƸ`*B)7s=H+ć\uDr+"aju { EV2 yOB"jG^x{\qA4]gP[HD[ ZwCtueTǠxͧqVbk(=I!΁ѓmO7'TWD (YuS!A1-D$jzu7^%}~CuY>AI[íX Src· z31&ūY|&B#+8ʡ,YĆ]V;λ4MHD愼 W{BFbJ]P]Y&>փn^eX *ldkD&0M{k DZ}ZM8vV7yL+I(AUGUo4mp*' AJOQDzϜExsڇ`37hx2W9/),)}xzrrZӬ9IJP }S2?PCbbBYm?-khd1ޅXK3Ġ@2n_qMf[jZDb'Ʃ?%U33,*]VH 6?2w ZMAE0F_nb"F'czSR$UfaH;׆Sץ(R-]T*kr]WX MHS01*$n3'X -1ZFGzn@㧎I&jfI*{x5F \v)&w *2_yUa`^ k1E=kG,40@"dU;Cj5ƫeHUk73cD?Y긼WT1;*]Ngub 1A_8Kcn)b=)R5a4tt規f *.iػ72+S){j]U}CR:UX]eh7g*uH";JB*IH*.:Ě|8'QGsdOy^<`9s_c(1n`[̢M5֤쨈^CM"]`ttTHЊq;{켲7\OT4Fm1駡?8Ƽtmz~ OSTG:IU#4gteyTP}E:1͇j{x`~䖏3'z~r@ppK1kOXi`nj-v 6/J޼㼑Ο}W[Z7$xw敏Kz%/e5kR0UHn$[v=;˻}0fy9n~… ֌I~We DɕuTJz O+\uQ ENT HJiJB@P+J084Bk+X͈ .{t~+$VUْs2:NyD〃J~QJӸJOhdnk4QG)a5F _D8=JLZbH%6U! ~1VIJ͋`z?+ ABoFZbaǤu$&"Fpx{ԥ}ckݺ:J Lا$/\apN|e,[菴WSCWȾ=՛ eN@:b1(k?#Z!AREF&Unan*)21Ր! >dP":݇"7۸e$)Ή.Q jOeccUeΜ3M6ޓܼBH@rU:,zBe/Zh)%V[ FSŌ:ZEQH R/->taRhFt =>sLw}vNXz 0z>) vr jUF(8YUE}:oG$bZg<)V F~,dUvNxdHMԁG:E7_E9S$);ݺ`&``XQH|mk Q*_A"ʰuRe]69`] ݂Q4d}(5@"_.]E*(3 AG*M^͋اUin|p . *#Ǧ>L"}Eqo6 Cga9?ꋗp>| /J<ͼMg.7~jHs'RqObd{R1AC w"G4;Haui%Y28U\FDߜǩ>DT6)"tfU_ExFƕ?Nr{I:Idi$;4OI8AUs:^"e6e0SPt*ʔ@Esc :ƤvMbpefg9 "Pb_qu1v]Aԉ 95Qْ{ zeS tŢϢf凗OOې] OEG]ZtNrz5dnuP>M@G^Vu(&Jc~Z% ˨ |A~, FχXUU:c0$6NI ^!j4eg}{'%QXc>+* #W#Ol>Ud) %S%11DՋa $Hذ=J/>g컱}s_g4N x7p bM}X@3bl<&#xnADqm6N>P$H)T9$~QѾ*:.^_ ýaf&$͎ίnm1Ȳ2͗ j&]'Le?oe8?<=!`X$ KZ?2)2J;Ux~D95KOc1O(~@JdWJ^1;2Fás$Kb;D Zwz-= p2UܧxԦ}bД6Qde gl!ڛ ?; IDATaB1ȸ)&ƚ2( ެ$;] GHo%7 K&ε:c+D6 T/YE%_oa8XӤZ` 4 A6PBF́γsL?4qT ]6X?+/Ha5LgQ›(f$n$P{*cXY1#]Zi:+s9 [jD斆TV>!LH(<6w* AUƇImܡeXx2 t5{#M7I@/;tZXH*Q(HLPdّ˘iB4\w t#ڇuS1?3vfUŰC"f1ڨWxڶ[ʹ n:2.n3Ap6D]S!rN3dCޑ88XMc}ZH_DLB6Ҟ,czO@'Y"Cr2n ki]$T#ܣS g|F^ qգ^6Hx?"ـ_wRĎ]?0F)b%.t^cl@;xo/ .F/H1-?u/A,>N: !BA T2zOL3ƃ#/ߟdXUSށtVp1JO>nJ#=06ɭ|*/+DJ BdL$\!0Ayɠ$:a2x#"2UH"|PPPx^z{ Sl>eʒ¤|1s1zOkuE:?0NzM*B˯OUI]fc8#aU`kc}[ h/'LM PyT> 4,26 k:HLhx.ֆ(D5Y^ Ԡ]aAghxňI܂`\ͫI~* |G(=#/]C`)z2o\FP Vc:s>Sgxz@\We.ea-FdbWm;I=X!c:N-EA Fm̐:&Jho`NιxJtoҋ:iy͘ї]N%dq}.k4up ]iC(zca5O7oI2հf'W)^ѝ\;b))p3u2ErN3*_}tTOw^2YY R %55B]kߟ&37}_}LwVvVv3H3k " &k]Lau5f哇7` :XUX{Od̎G nl> ϲyƢ7әo=!c>Ռq .{N9)^ ~@C?%c9^!@ }_p==F$@;8ug/#]˨XM_<yKM~sr`mOKM4'BHIzĦX S!cԀn'Ix n4 O5e>HttNV.D`0._Ԫ=~kI::פab66l;s bp]a}sUխZݒd ^0cL<8! $$$ 8&30@ 8`0-[ZRKE]{ݪrs[*g>GRis1hTpf5b{v+k!0[vp ^-$a)pP򜊮Ddta*V`bKzzslXzYQP-Ċ<Vo%v5}U1<#ǩNt,(?3+v l45%פDn+l]UD=*(:x) /JlGL}%4.թ6EvZ9k>=ʲUTCfzHJVb4#\0K, ,6kCTOOfTHP诎r(dg-jnxr, JBa}K!Ѵ>qg#]'Ř|KQD(MHME9p\eThѷ8g )JȮLz\G(k&>{g5,'v "݀jB0Z؈]%1ff 袈{ Qa?V>^ũKC}juMX݇D#TsE _* `k_M3q4v-[o~/O)xH $mф?wnJi1U/KJHc8.ٓCKT':3U0H̘| Qq 1[:ݙ K>Fω_ -E}ÙanH{ϜB*bl({,JyӠ `7?}H7ʾ+@@K*>1Zd\Z{^2|Nw^# S]$T X8׽o՝&;H#m+QK( ri:QS̥&up+x2TZ';g$Q,1H.W}Q@%No dQ"23YujMMZ홗1\ΒJ+d9Y }Kc~:j8Ǫ ,TgO]$k#4{ox"?wNX53$кTùCp&c*W%?TL^/ 9S<=uIˋ-PљnZbH&~Ңu"Q%i/A)@W}n}zP*S9b "#M8cʌ| F_ܓ[8Hjec*ܽes2yPNGfw28e(,BvBJ`^$ R"clD% ~;U~z$'`.-Дߐ<B:bw4P&EGBq.j0$t'Ju߻J +"bap3 A:*H% 3|yġG([OG->RzU+Jj AYr)$pE+T[H_+`Kh}` l %Nm\NhDu:EG씇tR&>Pr-*?(gn -RrΘDh W C6&!;+BILO<"=tLQ4iNTRBU ^ZOIvPC jDf5 ڋNc?xEco;bU+/zhAf6x*1 !VU7SRxĪ_+N ‰<a /胂+2z_ I+MI[ A"R(yeGtGl8Y7wje\,NsW1q#B\DExA<.Neffת vlb"$z (2nG|j,wWkıD0%3Jp wq%3(;4X@l$(vHw7Ce@gP|"WFS&rOLyAipfqJ_WY,P_X? *iF'O'qbzFqY0>dXFm(ıLl(xcM)r18JC|s2 #WI+#LD<`,w*]C6#¦uC'Lak>~XO!Ԉrv@p\ʌxeNGK82M?|Yf#2FHIkPy 3Q( YPmA ?Po ECu;9p zL)?`9Lʢl$HbA&S) wM! /T߽:*[dg#kzy&gJTLCl@yJDnI4D5j HR_d kHhk'6a=NZR):-=-treۜ,)*őV.~JzDK(y|/ Ǡokit Id}-$ܨ#)"^D"0-ҌƅB̓є\ }3^VuhUCmDVȿ֥}:S jާٱH̘?L7_8{: _qI"sSRrvI&oH er:ڊȰM6ϐڕ:^` CoboH1IM06 IDAT4xAK-k!f}қ2"IƥBf]zK S_Wœ( )_y|*qv ȔSnle7E֙ "zDp0J3 *U|2Z&#SC|{Dl:`A#fC*Jciey.LБL[&O(O9X9g}d :ȖP*)F2z[`%<ijE<8 bRM űD odtI:4[Kly4-fCHF_G©bnDr?Ɲ SK>sR>HF$Qq;k!jOIIM )0"H AV$q9Hh,i6꾆uGòNY]H7b34mTD4-bo?+N#T[I0wT7܂Bn٣sB#Di Tu= +a%!ՈΒLA?Y3h.g;okɄXsա?wԅnD}%_L@ tFR"N$UCq"2|hmo<8Ws̆[VqNAKvdĦWz r$a^#& x,]I8c aYZ3 zO"h2'zG2Dz/]lQ·7 ?8I헟GL`5BQBrW e u(M}U(O :ڛ)´8M lymbns aF"!2^Z"%]n<{,MmwaXW(,:"-1/ddlmbq$㴏(M0Rp2$S>'ĩDDB\a2#*m o!$T\B'M} "FG"VGJDi76{)S &,SyѡsL+JB)eEwSn 0UFc6)N<1Nd( m(޽D`d|\[0+^B<8?ݢs*WE)-vweVTnҐR4 ɬ#C"hDcElS10tt}"FUb &e#:DLH/ެ?R&rSi?:K4)*P#,E|)ڀL($Z@/0 Мp=eKtLbқGBlxQbwѐ =_z3s©~&#Y!A|LTX#JHjYf!Mq&Mkt5M/ HY!|(j{Dl'!!I" !gdRNwQE/]&c~4]NJd6B܂BSd&_e [Ci8wto1Z/Di *YW[-?49N`)-V'7;l=ڒȭD:IDP,g$jW]R(ݺCʪGtkf5r '|l@fcݐ84MR_%ipbid{p{mpdv²=#fJx6eh부FLY'/ Km/$Q_[-+)uGi[HA!u-}p6n>'ws>N.=mMP,S{$қCǥ)E^NX3p"l/E~Gnm"裙IP0T(#:28|rܗth7S5mҕì'*1Wxh NaC,@>5zs|ף/$K9~&Ͽ9Oy]V7+<_ лNr5@ը+ߏd<e!Ͼ}Tɡ'OQ^/ͽ~+P{ ?&;} B*l(HA[ڒ<c74"_D!{Z,ewY;j쥙8٠sHƕq5t=MjKep4\1byhҀ4sMM: HC1F{Q::Bh9sr9|y/hC #=2}-XOtG*w &wkߚiۤC;t+ ,&KgP >2zYR))ugQUMHD]-$uO6b~"?p* 3_T1 $^m=1TykMDx+%Yg{X y2jQ,Q`ҵ *CRS A`dia8=z-kN|6}v5{ FS&{KfON[Q2- A&A h/Q (I+ASA$WF QLFq'#u]#Ϩ8秈R[N&݄*k-b%})D}Sd:ds_J?͍Gέt  3 }3 [?4Eki[)s;=ڃ4q(]FL;< tD\Y]!sLl>2 GD52^9mٔ"h *'za: vu|DK_ؿSQ> y%ĹJzDŽL| CϮHzaWgg/͍8i7?wŕWA-y` k}uW#]_&n$tKBԿ*@ FSa_`*+HъMwE&ʣh\įJ%/.j Oxw44[`[.6&B7#%A0䦎fʱ/sEh]':.G,]M=qP/ ֻX0Vȝe7Y(4O͚p/  ǎ`4=QA aI(X#CϬPJ1JBҺ^Rf ?t{ : ŗTjLɣ70PybGypN2| (X͟ޣ2 ɬGCm(1|X Bz/N+GDD\Fr0Nũ4 zDƐj :+U҃CBg1Z}o(ۊa D f 4'B 7#"C3!nY\9&z?{~Bko] YڸLc{oC(؆B{oڎ,S2! ws&кW4]*ѩ k3r+Ӿ-K]ԃ{Q$sUֈD7.(֏a UK!4~NsB6**^IFU=q}:!0U(d]a6/rH8y-wzo>a=hk`MLJXoi!t`B;/|Cl6"f % J"LX#SSzgG#0T DH(6 A+P%  ?΢BNB`~7Ž=Ԕ*ا/IhLDz=[D)b]J==u(%!ۻpg{$s$ 1 i"{!Gfqfr݈Ȑ2cvMM뫬wNk'جfirđ=CO\cp?XHhxL/#K*߻bWQ= yqHQj.Pm3 Q=ސ0w}5P2JC# uW]G*8c .I_J}}M͏dB՗-A&A1qsT#5),1a<EtWCi8jp%GO)*kn-!v Wя}*GyCKZReޜ(#!kf;K$su"GgوGcBIft&=EHdk $w`vY…cQa蜜bY&j^?h#,Dk!Q{UX(h9Eb`꤯81hdV_7!tr8GCCz[`zmtUߌyD%0(J8 C81q|aE~ޘ!r2iGUHP,߈p8]$jB6A T 􄉏]{wq_a]1pN >V&XI ;x%ѕz2h|,9$JdC%7Q@ rW^ދII6;4Q|aІկnhJ3OH@p5R=- {~j% n WQ%DFUsJQ ? ^O0 1 #Fe{=AdZBlxBT)P:|OdDw_rwl.qe[ƞh{d3NsILr&Dŋ43ǖeKHvJ"%J $޻k_~lZq/Ѝ[yKf[" [od`D+!E>s1q썉wT^1ˠ82*u^h! OĽ/(B $=a_mE1Z!?} g/5 zfUH~a(AluԕGGP=kHG q6z=u oY• ʴC2O gHĊQE>Z(@*Ifyj*; ~4I(XKK>MIdnGaz{-؂J§! 18:Ngʠ_ȖPkg+8#i{RE IDATVWI]l:fLNH 4(Q߄⼋ʛ?uFG)]Px~SC*8ʌ}eƑ4S_nR-f>V>z@.Zрol=?oacj7celS"\27`*Y25+̈=7aY-,z{eb0b͇1?ŅI,{XY7!Ѡ@Ƌ4d27}c!c/7siY~;ڨJ+o \F^ڊ^pȘ!qѩu$EB+ {*uBHLD5/*Y ,@ʺ BwG1ڢ5dBHq Wp_6F+Oup)sJH= 8jEx[9M"ucn :AfXWR xH 8ɷP'tYic2@%.=xcm~zq$}%܌7p==.ZMQD$W{7$ ??"1(ň_(o\_biOXDi>T`33{!F§'E)THtؑ)P9N({fE&v1:3"x>46~{EvHyLf2EdA4ڦC*t2#:ѯNZ'K2'#ڂI{ sUFY2/%c8JglH'1kp-J$촄I!{!C:'( ][(b%!eR6}5R$u5 qM#;oՏ\KA}ƨ)Xs)zb4]H:r=MEcN`K/1jNޒEsOelWKz!yPx= v`-:fMlL򎰁i,~{,wxBl,(C\1­^D!>a#ko۴PQ}Fi-Uu,^Wc.ЗًmU)rTȿ9M{p=F# HŶI>CoJĿ|fZ|-hdGiJt9Mْ]V\ ^, )oB5Q5WU䚾Ctc¡2|Oed_Z`P05EP`U %ޏ:)Eevp(H[ |ClD6!wvOdlvĮG wޠ3!Q|- {I,iD$MǯlԠ_+ {үwJrEyen:8 QlA6kBp~X{_gCIHe#&gB K i۩$`DRO*!Ʀ~Ӥg1 F+< fXNBM,1ϱyRfde}L.HNcoYwwz~ ޟV$W$6?U"|kʱ(NBjxK8heִڕ ]#쬽?S_?/Fk}i@$EM|J=\"}‡u0׮ fT(^\%RP(Ax@{_T4 -ܧ~Pazl<)MX`=b}$5C帄wDQP5?9=!cI$n+5g#9zM0[$XJj!PȺLAQ0K"RH'_D(a2N a#iEut7ccj J(#tbFC~$BƠԟ- ާ [=<[ԷTS"}]&ZغOG0 ?`@XhdWba4iD1T\D$KFd*NNdxn^L!=Y|S¬X>@@ޘh0 nQO-㌤g}؂NDnt 4֡ b#T|I{6F܍ےX{DGdv 'B;(G'ϐ[V0Oߤ߭Й| z}2#y|B+.R(?ނ‹K(Z 7.XADJc~JxGg9*5 C&Fɿi=  . A鎋!~ޠy2 aK8>|ly*dSCdVhϊ ZO"L$=5IK eG$jG"HD*r<r,Y앐HEemb2k ER bxbdR$6~q+'2@4*cb*9:@oGz`NT\HsS3,ʢjMcd'Gs￝Ibd>; iJU͏&AȊڭɻ.$T k3T*ެ։ sYxá1'#Z z:F{<6@l@L& >57:"!z.Cw\TZfbOz2mO;5Ikg|I\T~`(>.e}ܢ+'|aK. xD|6V4iLLKN"${Mk7^h@J01LP l% &ElզNL:JHcYH. p2:C?Yg* s*}ܣvřvpKɛ"֞6 tKu 3DGPo;P~Ǔ%œiXe;yrk~[xR+M8_&V.$}EaiQA1TF/љ3}E8꟥BK NĐ|AN<RQ_\ߑuVN!(iHܕp 2&\ $iIŜ8Y 9,]&i{2#!Z]W :ޡ'D7$HD6a芃g(w u$!FCw_5VHJKȮLb4B{%aQzHo*`0"*#oȤv_H2^C$V*/L] ]x_S,šاΣ\]b?&CYh <2ѿ=K 1d=Id?rVB->C|,h=^udQmDP6hgra4 t_u>KS<FH.^HQ; d#`Xҫ.qغr{M"wV ZOI|r@7Wp *Fc;o+g K"{ +:A`H̓)"|S{qhV|Ywbg%6_Y"mQhI.@I>AxBzc""hG04d!!n: w+C쮊b^"Bʜ@SA7瓸R9i0|;?e Ԏ(m[K hِIڏNu<"bBhė%:3fM&%ߛ&aKwh΂, fCb΁1ܸh )D=eCʀ2x~ Ÿ Ҋ ` *\G#=QyD&CҷBbQ2AW%%qy TVBr ?DܘAzGYqq=D ܥbքDihnQq_ 9*R(ӚVh?P7@!;Y =V;Ygp_ هԥ8;l=5hVQˣf0*ўQOy Q}Yթ2wk43_iEƨ9\Bx6mocD$#&*L ;A 9+Kv5I%wN (wC,BԤ}$L?|²iwNbqG9t<%y..N2O2Uȥ|KCYTtpFӤ.TV&J]"јy^QqL_Й 1DzR4NRl"(*њΤ2V>d'.cd.6|cb=˲Pz/ᔅ 草\|~P3t\M0gKT`DQ/8 c>ڹ8j-9I,>K(KG$d2\B m'Ris?*B dp8IF%CSnHi+(qB*N!8ਲh [cQj%Sd)VER;dfKl~H_7gȮ(`Mp J_!/G4$z P&H7n "_G0[!^Bc0 ZO.7\$n&ߐhOi4iudK=)dnc|#e/|F7C6[Q߯7 % &?:g ms4@x`s oyk2)]ܱiiJ< 1ޒlb:, J7C)a)ssCO k X ɼ9omc*]`f֙KpxbÌ K[mzOID6eV&1R5m cbD%;zX!nwRiX%_][׉.gcFB޶nkJ7Cb/eP?p#Y)tH>{e(ɫ*!Col>pw[8v%{Ʀ/ Jy5g3{4Ħ;d=:w>nFHn ]n^65x@ !_]z5y"$aS3Bjz>mΉy/F[51aKY\as { 8Pz z'53@ǐu/Ҟg{WU)tlu-F-se/硩Э =/a]#5]w(PWQw(ӎ8EOkw@sUq1wμ qQˣ(b=b9h]Sl1[-FVg;EԮ[bU)}j`䬅Ոl (o! +/x4ZnĜV8" NA[i;X i*}44.ܞvɥE bN~aPX|w}x!ًx9J%I`OY DUԔC .^co0LPC>+KXr\}t ;'7os+^M-C-{;ߓGr}̯eu<5Nϐp=>{'- -,ֲ'**`zKboa sA-̷WV2;spB[QW6)vPٗ:JKVGFźZ XxALßDtjuj-y` 2?3W&{C(Gr_܅貂U{Op/===K@ q|cHuO,nwvdl_eq$ F@x+NM/agn yCeGBYLSy' MIdd=z d46 B935&f~)ľجĬ}U\̐¹]a6Fb}JES>=KM@ۍP`H!$hعX}&k!vJY|xy! LoT9եTſyˤKmI+.?ߢ1$STJG&[a2Rƅ؉u8: "H⃕8z[&}N[mK62n6 hh*jKA;"Я{:$;!+ӓ QP*:01 m6&jc:V`ZUnuTG|֡{#uZEQG.,|M3rwonDa¢ T|FYy΅"8CqX"E3˨oƀ+kXѩE*13BCɿ]9 9J%_0`XI8#>~e#㌼f-vXy|C_ tiۆE%z+WpGdT[|[ep>e37n](Jb)ʋzBHw:$0Cb+ [G'\<$s='`e]B! =:,6#Q]*ACaWF˸ :ӤD 7Ha\ZFtD#yiI̍>0yԖ ˁBgRvD ;7&lF3Έ*apt_C}s2NJ#$LV>Dv%%1#U _S!v[cSP"$L}iHw{'zM[!|IOI^Wq2FE\K2%DG(iGg)OË fwy|R;#y2FrQ[Dj%: Ust‹IP=Rwh?|>^#oM>2JO I?3𯿍+9ZD!,:ئ7B$"UNj4NӹC[A[0q"f;.Qx#W Կ_fiLwB!O!%uִJU@9/} ىCX9'`5ܘ a%^Dv?[flHM#R q2b *z7N y{.?KP!ft' tCl )@F92et"j m{6Rih+D>} 8ъtoU;Ct" VN@f8YHt^:OzSaize(}ra DtαWp9_'Rf$t?^"WLY'2?s K{&wiM:Y@P|4Ѻ2gMf%џJ3UK',Yq <<YGfC/&?H%s2DCX` uVn{ic>7&7ȭ.P``u%GG"IlTGiɘlNFA:%* [U{)Ԁ/k~{ ݲDpzZ3$Ⱥ*Q#U{5<[eV H`W;R=L2$| KP@m dR|"\MОH}MLsMўR䒾Fڔ4CI?AP}.H6l N`uѤ36g]y!BdM!v}"GPmH8>!"¹;=ۦH]OS L:"! b aږ~Мe DFޒqMHBEzgėe g<`#-dPnD|6dPoHh;ndu@!6DzJιrG|)H-zȨAJVwaڤXX$.-iȲ46Bk.솨?i`Ѭ?y@љiQ=X#ќnz rbrgQN_kB.Qq' ?Ei -Xj򈯹w>'vu{D6mqf 8YQśP:e "B˧MNIGco덖sIReKT|r}#V;)6.06EQ-µ*P=ȑ"yH1]]T b m4wDe1.5 z-"[2**QnqaRq{,zKfpr/" /&hxx/rA_oӞ0DO&Rq±u 1ԝu~ E'ܹ]$v\%r :** ڻQ͐mOZ"M& fS߁F. !T5&X.^WË 7'f8T3-x,K"b* nQL('ൄ2-* ELDU3s ]RLYa3ui9&X+H$fs1̫&]AbAa?p铧LȖv;"eϔ-Gz"z/%IiOF7ӝP>9'h^rA,g=ԾdnbaoNmkE(MBɖ]QG!mL$ Y6B3$Ry£  ;PQOUּ: ']Փ6Abp4o֬?#4OxdGG3~hrh䮄(&vp-Ftֺ$NKOޝ;-}g}ȁ\;_EGGGmퟛ.3+ ,>@Wיi쐽ala˚ĵEbB#V u?(|"3dTA:=k쀁K7&^BQa"d꧊U`i7kwUhyd hB>zD8^@7/N;unDJ:f8 W_ÛBT~iH|ۥ#*ߗI$W!k.љ _#V@>m 6T-e3hHJĞHw;b4$V!mO(:b?gXGRB%gJ`/ PrYsqaq|-y+" eN"2êb{zkP[&#@!PԩIMJk`D ĪoJ,}ho%O<=`$rHU6T!~eH͓&z'9lrbzcU4qgU~8v { d^w :]D*p vf 1rkd{+Pc3F ^GoCwaJlRH(%27"ĽV?" WT̆x6?}P>fA$d bkl[ /QyQ81"$ !%oi_ꖎOUj'[{q}|*:ܽ>?~Fbb]ȞH$K@m^H@ĚjGh]Ohg7wßMrt`/5|\@z_,4TNޠ7]dI&p-QY)Zp(C$ڏ fj@^)|C̒x[ {âs!yCKj`kԿ1pNLμ04FN)?w)OS,HMuٖ,r R/Ԟi<11:9d|I?6#^$ EzxĨ<'*c>d27~$ɈPPn8 O=qZQtԚԿ/ZN7*u m Lh sBhnt}7PٓkO{GrK]=TZTR=߹M'",P2S[lΨlU H# B`^W|T[YD;t8o=T:Am*CUqf'j 3*$0wL5N@i!T7bvIxCq)!o&ߕvF^NScw(H6>:4alNsT"GJ>x{H CIlK@c˼mMHcvz>:d[&~Kl \_%5סS]`0Ϗ}ՠxGIA S70?oQJ힆Bl[&0$\T<>tRÓUrg[9^br]ɘV">ꄍ1m*ߠxaŤpY[hI$;  ֟VG|&4{$_?S}C ''L;h PtEom=V\d쒀 'hAusOٽ&#s;.B'OhP}>3zr@/POʷTǫDBQ+l|EA`FT!8#S[4t(PLQH$d_T앐=+Hd3l-)ΕhEP.%#>N:d{"I\4Lg^񴏶c^ٓ%#VH c4ؕ@#D_btJw"wcPQ蟰ѶU_(2\:OIAue'#٣7qPODĎXf~1eƿۡސ}MX=V}QeVD~p+HSqiO!!1 /a "|C6P tILLhءmJ~Dr$03^gt{Rkᄋ#i?2_ 1:=֢PR@JyhvՎ5uU 0 uĚO+ﯢ -zHL4IBDsGq2v^fXVMdZGT~m)F{r$}ܬNHO|0xa7Cgk&- k=1o˺9/haZFGl=,3ww}ǐԝ#uOQ TD~E'~[ btg%Bj?Wbpjʋ!C=: "0 %%7nk$>N]%GM=}Y3N(Ecm-!N?汋2!+3~hB ~4J=rc=f&jlhmmY0.:NV$MpT\=M3a0$ w5?zTHByI4߽~/`GpL"Vŷ4 k k@-'b3t9:U",ZGZ^wÇ~69^JgV.!nϽL{D|3'!;cGvOUCxNvҮ:\DN_njg=F=>=MQ{§.ut'P5Qo&||0)NeAbC,~zz33i06/e*bo*FEU i폈aZt'%>USPԄGЉ/B3=brqqs9 7#N6^%CIv;3=G*Yk:mB迻Gx+\>Ф%Ґڭ<ݛYT5d<֦HtO/i~I H/\ʃ/N*Qh -q!R1 iwO1S Lүkjȃk vki܈ oJgE$,bOh+Ln_- ?dl[dC8>y5*sύؾʋ>7]N ryLaQFi(K5P`p"ɋE²ql8cԀPh67gw4YEO*!#[ӧGDQygMURI(Jl޴ :x#QՐ7, _ZC45`a7--L|["sI%(hGX;Cڃ$.K;m<5bC󀄢4&<:2ò: {i|HrK$Ve1x Ofͩ+l>&-#~w)ZH/U7DSo)ԪcՠqԄGo7'1B"R!@{ .$qGQ9 [>`aͳB ŴGopie+N٧a{Lv0F}^U7E3puWQY jCd\WibXȖ>i>{d 23,Rŵ}27"_~u _.Xiyo:D!~W/-#]f".92 yrxprx T=%Q~6Wq* ΕI &D{I1!OETP*uxs$/Mlė5u+"stcVbzo(vyH w~D0tL;eS<'HH?ݎ(0D##UMA38! m.ƪAEEew&BI ڼBc͈!c=Ni8Q$Z٨A#[k6\%$}bpPi2?&otCtyڱ uR%M*8)xnDGh  w JgA3 ر3_U(*@r *cWlBOxVD*ܙ4G8&xD*)+ULģخbXTZ]FG4q-Y>b:lYX89X-DY"|0 -N=#7/}r}&2C@d_x/!_iBSbZaIG[xR{LJ4~4@W}B_I8G$A\# J }|.;ٛg~=;]سN 4if۹b[B) 4B%ޥ30Eh]PƖJJW3mB%boOVC)gE Yq{BS*ߗI6c.GVHX`NeK@хz逕ILjM5{^}ҎPpK<-`DoT2Hc:09i(FK7jdoZ)岸F N> &*X}>TEzeXRv?69]UHhRw$D!:w! WJl=j"CKzv/-bݷ_Aj2B d"Wо}J)+?Hg':~Ht^)e"z ٓ\g>[';&E 1n wG2'|P#J,rg3-49bH `Rtzr@{:H1}Ĩ!{2o`;&AenH7މ#( č"*nBLf2'5eG>' \͢-;>)Q;`dُH]XsS 0ڎsr4] J#p]9?S]&fkl ܼ\E;D&FG'+bb;Tn6Jt/h4N&G\Y朁|Faֽ nJX8R~.pCc r8Հn/NlINݦcg-$|i_YęR"IjIB~+ύ^Qpc6=/|W7 Q#l4h|Bp'Ȃ& ee$(fl ѳ75o\lAR"u]2h,HI߿e&c6{\ !T1L8̝di|B6WVI`\(^ t~*=8ty8)ٗbc>Өy}W'Di}Y]T63 N{A&4A @B=ydmp|lox=V ml  QMrBbgb"LT2,.ش KᎶ- .Si??N$Csw0|mC2oXeʧ;D5FG.AoF;<$Jwo |&\SB{/xu/geԡD. R*iƦ'7#k3&E|U#{3@OؙQQK u'l4TdŀyOdzDOXW Ծ DSX{( ~"ҷ Q| #B ׺XϽo=M\WLz j G}~"q>2bDrUUMƾlu 'tL &chn@&7af80QnҪ'-6Ǧ?#6$3=!c6k8%AUDBp4BI$ HdW_5X-Kh7LbD4P1 ҉.bQ,w|H 9|3G} yYg8xۖΕ[SԶ2͗Q#ABsAPi5U}ȤEy)IbCtP$1L0~Ig_b.}f@Ih|Qp ҌMsA&J3FGHߔ LwQH/AOR [I@% 5n*ȕ a=#"{wG .ƣ*qԎM pJ.(n$Xcj=IF!n>P?#}E$WJc:G43ٌh-tELZTI佈?>և t]@NXD#^H*,EhLJF @rFqw @S :mF&r]jBg{`(}i S*d6&&B¬BG2FBh0n0̛w5*/$4+YX^"U,Ԓ"b/<+z߆JvDh0m3P_Ⱦ2x?0d,$d)3V\jň>{F c2+XʇňH%Wko\jLT=Mʤ+;/bt!H17O*,Nm2ciqn\DK=ӟI܃INἇdu}Ad7_&/ z^[ېbf%Β.uܱ k!9G-|v0BILfBKG)gvg)DDh<cT($7M:$ƚyj #F9ȞS쀾J#o5=B6)>r S!92,SLy^Z)D{_66p4fcЌ'C$$POH++ܹ_Ƹn+$=@#0Пt?abQw(I|75 QeRڥw:y= /TpF®[nXkU2>׳r =:.ӞH t܊rgbT ?P hΤH_WӑB62,xn! -]$hS#Gt<S;tMxڭ)hvL%i<5W-e^M J|#ZK2-3<NfǶ8Yuc^aXN(b8Y]K g$Q"65CaȽpcOeF.F#S?<bx6ݓ!3DHLjU<&W<:f+"0%᜕KAN$%zr 4r;ZÊBϨ@ܜI*=e3LT~,S0DHȽSCP'3xU' vFFq%䬋,G$n!Ddi1JIddΨ  ZpiB̕2ju>u^P9*os'uB \jH57eY9-ڱ{mR{,A`pXMBBoԮp:IH f,Fe;ue+ПS!aGg;گm=r!GzDfD*fuE ](t?"ҏT8EVQfff d2ew}TZOYkD2PM]Ǯ=kYi_9|  jLw\M\؋ tG085MˋQ^X=[aMĕ>)<&1*F=D@&9WO y2vud|]"{Vg ?bia ]S&R`3ciu"{YThDhx@O(H(KFb}N^&`+N3F񜀗B,3]1z _ qGq %PU(OΔ~R@P™%7]"Y΋.'gRbDB 8zDSb}nZF sFD/γ[=ZDIFHPVJyWMXd/up &q7"mX$~$q=A_ߍ[ qfI,|ri1|dY((o40 ђ1:Bac&m%u |gupONaݗqdERaW?V󎪨bCM5(\U"6uGKď+ATDKx nL~+Hr/ӛq!sR|nC%:}~x ]\80:ZE3LiGCq!!J*{`$j^dyVjEWp6qU%h 1Z wIiJC3 b4HFB,J@d{G@^/M*Q{%12SUb5jbqNİI; M!#No. fCx>`FhlW@#Wi vFa9mZ1RzYc2N:)OR+`l8-G&HD2- )0Zw-FKJtG+$_aOnӛNvTFU" |p !pĉ"+wK..27$x頙>)Z䧒h(20:acG8a+FD͜A+C)q0#L8* u(fo8 %Nwi~삎~>dz0Ed/D$_z pV)̗n?2&b%LML":_ZN<3 ?,2(g]oʸIu/"Bf@Fj'xDԮ5k.ܿF)1) L ]aQ}H:y IDATM;R2F;B[7~grCGc8P1tXy{%~va͡w( Etz; CG=ضk*!#[DT5Dn$).i)\Z] Ҟm5D't3t;qT3Q5ىmEI<4P<µ~"DJsM~acTG""B HB(ޑs3LXtlN"7 LTR5MP4 {] ջpʋƪA欁Q}w Cu蘊8_ˢ]u]O{=o: uR -*iu6^}LtlE* D `d[F3|D{=UHRwVAk &vDݍ{?xoωk`U#}SBm+"w!n3_d˰5TT0ݛY?y+?=CX * P.FSV( ;/\%^ORwx~ɇ$Ve T27"AK4H$ߍm3I^6`2WB'bkv_wolҁ)O3[dOD7^ؙ>NznqigGWװ@8i܈HDp'+ J(?lqzZh/QЗb X.''ȼVtּC#/>ᐻ(v"5ЗwN#QW;F|SM /ՄN㓇j ^@g>FzHj߼D|S|+$GEl/޼&^z&F[i>RAq)W UQ ^vZ_l$vDG&,s} (YAdzK$7&MxURKPy l %˄23tB},|oG~׃bW:Xk6^B"E(CBVH|3Ch}-qv>B?vMɯoC8 {Mƞ zg;o Րـo:bDxYx^Wd2g bTPCzsB5tO1[D8,"eomh-*_ 뽐l<7ذqƛ59o1,yp)E7Ebf+VDvO/#alˤ.k]ĸ}_] HҮr"# DwQ숭|]}i5? VH"'/0ڶF:q%ڳ?xVf@ZWgLAd@ʻk145 JZPO6oo(+[{؏Z.y.zaBC$/qF'`=;m**u%qq}jHPhώ,69&ǷϏ__C.QxLkdx9nat5=ȨH]$8(Ũ 15Mg1IwF&=C贎T9 wPcx U1u!17!"Wutlt 1zs 01n&SIeTd쿙x<4~>Ag|WEq%tD0Hޖՠx.$TURzǏ } &WU6c ٛ>^KX(گ0Y=TxFy? Ho$2#bQTeHa1½#/ʌh * ÓUfR?"2ut@JpLtv/% D֓k.ò̗LQQa-7;k߻zFcaHqD%[^L8>3ɱX9sĉȎD^d)ȶX2Q H&F]U]˭o39F{RDsa3l:d%#B/'3.2tqo) d&!VQnأ进FHl I"cg&&l2xFg.sL?QG.io'I03gPD"i9ӚU ,l œ4UՑe.+Q ^c27 #v=zѧu@A[gBw7ST~Ve)I&odkQG"\Mh)Cm c_ ƨ4@̖ A*j ϐ>c754WFrH4UX^.&"|i--I UA܀/f<wZ*.o zlHFoLzcĪddWؗ<'SpȽMg!Cb{"EBMoFG{ ??FRg.|qj/][k?3-; eA-$7B:OM X X7,r$kSjc|6锳Gġ5eEBrKj0l Q%II\4.h?n%-О6)[,m54k}?_npٚa^YR/I85Xv!;` 4_Q|Hn8%]*)5#XJe94W@wK?i%~K0t!{gIcl>4ae\֒Fx%Cj: ߓ\& ŝa5Z:r /?bΔ\?vTW^p;1V' }v9 rܝu2K0gh=$2E %h$xQOs l-p0 5F=/hbdM/L3VG?$A<U~ko8OO`=6?(4w%Ev-R  s1:Հ> Ƶ{~ԃ> dNO{VRh䮷I~zA*8Tv𖌟Sp˄5ҟ$*~5 (Ku1O[B*R8B`۠jķam je |io]B1 iRUs' u:L$J$H_ۤh'?P%#^я/ݥ<˯Gsba2&}Q 5KKWb^yQAucRk92=P}:%2 /J區iNzDF@+,bTL%yW UiaHŔ^y@z=bX:{,eOFp)% vfu2NCH`K:=OT(.E*o8ieuV -(]pW-E&JuP|ϭ}"ԯN+|4[31]n17\5R9S5Yzlkt'SPcm _H5bl@KKk(f(R47OOD-y 9s̆ZIr/u3q0p8L4f7I Td0.h$7#`PAvSQup&5Fw/o{IP!NnX:Q-Nz)8w>MBH)~E=d~RxPK9E9Y`"a\[,"6uqPx:$Eɛ:d?y??:5Nh"N," %T7^!JVF p:aRźIEl#lwP%z Df'=#H J>3UtO!wGd0B#3 "P\Zs_z7V66gLaEtuHWPxy$կ!ș2ćTMz:=nHn{8{3nOyH^Dp{d;!e "@Vv*)oObo96Ljf_DB ٹi0- NYv)/IiOixn'ռԪsF^Dr/'f>|?I?P(ܰ%SgIn(6]Б%?Ol_~/] eg!ݫ̪=K'wSN5a'./+v"" 3"TDz՗q ݖx]7*yJv" V]$nrha^ʠ/Yߊr\h.Gc>|b7X}b hJv^tPQ>Y͞ O5q dr{WE4[aO"޺1 d-B= /VbUʩ=B֞4Hwgb6K;O#R-ߖԊ"MNJAvGԽ30 ܒ)A;J?-#ܼ{8 4{yF7¸A^m,kBD8aV(~TX2@.n^ ^}C$Zfa$6$ȫA7tٖݑ <˨"IbCpF&6$8&P/7!dNz%r$׶=F[HW.=nw[?RBҲ[C {V+{Q jȎT餮5nGΥ1Ca#rNl=^dg>fqwEikzOF.p w&(w7)bd=@ehC8QCd̋w;īo^eEgj hmXWՕRjK)~Q]vLhÓ2*;1&XyHpe"M{ى 7/[-= 9.s):ʑ)9F߉RT_N$f={Tɯ_'ا{xE?ڋsڋeTkdn1tG+{1vaMr3@9rcCQ^Z!>Ѝ]٣c-'$jl?="@NLԈk?w iJ~V^,7LٻRq$ gI?ߓc5} ċlͱy܂BO`]$_A^xHX΢bA'K \n\`]^fƎT5w=ppF'N,9o @"NX$ T3-t/#zO@^ؑ{Sr=&<~$N :&^;w0+`?S|3_G`蓗dhi !.q t\r3l VCN,c06L&ܰ ߉L6|֏.hXXsQ1 z̽ZFx&.zۃko!(A,V[>xwT x9Zh:ROa()ח޾"tD >LXs|/ˁNMq& ĊO RX@Dp*F2 t3Eh ?6!-Ľ5t3E7~qɾJvk*(7i?;ApNৠ?,h 4O,C'|jvjl?*ي0 l /QoRxSQM-+Y>?M`S54tK_Q -Gt *-b?0U֟6l:`4/L`5~>x?#$\׺l/Н .)G O >:͍܊WLC* KJIb:FCv "Gdg*aRv*%BSSFJ)6$iOOd!λ$JzI X0w,: _colH,H02Iϩ-1#I7.#ST ZBGNA'{/1 ACPiBӈNRcjĊ@#=2Ni]~75oR4!q`Ln+r&\O1UbA!%摧R9b@&3vM~_ck |M|~4€7uZ/SY?3LK~l)ꨄI P)!"9 Q$)o~iaR7ZAJΏXqUqͧwNf9@dg!FI'$؃YS4`n @B{c>^J%T4h 'lzα>Ugfjv^%`>Z.c "y1xaҼPa|"b;4$VcK~$AK%d#z *:9٠&CoRpt (84(b!< IDAT9v#ʐuˤ7^ޢ?"="#:3$Gb/?{8AM4jgƻ**N-IjV6d4Ւ׽ H?_J y1RzO]S39t;&O庳;^AY1Ä c )l*gaPU)]О7dž-9vK1kЛLd-7"L߾EJ);#q+s$?}Ώ?񭝻f&X:ɋ˄ DzP.}#Csb^HhYĆ "E#qifԒt)Q)Nk1S11 0(ktfOèwVY3.0^{ ΔNj=ϣV(nH4ZF!ߛ$VeSɋ4^˨a(-^]0ld@$T:鿸@qԆF*`hI`[l x &kY ;4[1^V`Iv07g&U [~ Rn6Op d{(4jH뀌 뒨؃ Le510>Gy2'z;&Q@Pyff]4>9^%"PD ZLP Q nY0rPk[/OCc$e]g6gip cÌ|*`$df~ ?#Y%t7R>C/&b]Oi<: @ TFNP P(܉N%P2A{F{sl1!{Ox뮌jzMu{(<C 硖KLЙ)4FpA"N,4{}E\m ?&bӻY12/q۠YuuDH1 s!€"f|J֡$)Ajo;Ys0;B$J_hTLÂ~[T_sLid746N b{L'L[l 2G#=b% hEu@.:^8ЍE /+KB"KB|>ڧudk&q6P|:M4S)dxlOW#JHFvm fLjԿ~@DgCFv3Zsܿ\cHFB+d;D@+(`lj5N"B Tz&h0T1j.N w8dhM7vP*D't'R1NIH𸇯)(IA\I^1y D3T&=t-8Hw/}뉭%2uW &Ckt%F~*&VnA杧6bB4'}H]{Cr͗F鎫&bdL4Mo_@02Bo.Hvjٓߧu;hӓ#y…1Dݙ~ZHo[PldL ޡ:uz'WBB~IZA^ XYg))yTA桏B T=e%H eE|~O!P=hϙ2%xE)yξ|p*2*}:3KSꦌzR{՝TB}M= c̜N9=raE $/P$|ީ:Ծ7G A +]t楚*L:"Φ)^Tŗ{?%Ves0+B/$VUQM#~)$hEA*(](6?+/Zm[}%Htc"+&LF٘Ȉ-œEwB Ʉ2t%Og$p(z$4Vђ4)2!ԡo4r<tcmf,T@XMav:^?v̖`" +Y6'`63)8Y%d?g]@b, ]fFi=1:× K8ݠaY 9LL51} >*m]cOp-K{p6Ld`5AbK54R.o'UQ.+TwXk鐁c;mU߹"<?X%\_2T{݃UtNwp 5{XQ*1i)tx);-rKdk, oI 9S@p@f/Ƿ9BxswNj˓U,Ϗ:6= Z/c5bZǩZx4Ϟ'0r4$ٷoIY ֺMt隔\yZ%KfvMa-)4z6 k4} 7ֈ2!ot*o>VaPE|b27_ neMٷF (VH]3P'(v$u*~\~=\C&#I6lJ Júmr&72oHևwשEadRJ{74. б32…1gu3x]dSdHjC6§lnW|]/׺8}\fC^C@ Llѡ(1Xa*fh}H{]# &os,C?ѭ(D]`ym黹1nUUs]C= [?&XI;Sak~Gܣ:O:lSTS(:Gˤ#IJ:# B] &p%N U8$Ⰽ?n`O)4]iK*H`p IuaM3A0GQ'[,f}cX \M oetJaUj!Q.) Ʀov ?kf&i7(e"5g R Ķp;@eZ-W:(~ )}Ԋ;!ͅxC!nV8"B*o.Uyi IbCÌmTBS4&zCchKz\!}Olz8YC0>Sc_Q/,{>!aRGuc­AT[Cg`0P=oә0~5F ,Tc[e~Fed:uiϓ\ChU?J |A5sć݋~* w`./-үE%TsI_11wb-7};G4A.N^djޖUgh.J& vֲ>5QYɣlTIm 5˨W-l:;uW;S:xwh+#gu U6/0MXND2:VإCS I*T-+X1)vA-y~%Tv;*F??8T~ MGsbr891ٍ*P3l`&Hn26f\a=i>1uJ1~1Ak^gߞ?0dAXatc9L@1A%y!硚&ڙZߗKS0T Pc]4aҞPd~R1{&C*IA@;l|Oœ*6?-h/$ؙ2k#7X2s} 'П 0AL: 6{BU)UI<"&N ik 2|eT$7b,^1GMڴa! @#'  N-dw(+c8\b=Zr?^ְ]RDPxd!Ȉo(l}GIYC~6ACl ꚉ?㒞x::J4j~Dob%fϓqLj vvHwĸ,ƅNBF%Td2˛(Bh. eyw~C2 oFl>)XSvpihmu;tf4O.v-r_LTH]],/zWPb-3^m`tV"]z2tlG=:tFdnkL}b73C ݆oQ;Ha`bxGk-ra\r)葷yxaX\U(܌X*d>ʼnr&C2w5Γ'o頤6W $_43*Ewʯ{4or(M"FxM{VƦidGϢ;Rp` VF?E)0X^AQ@Cb]iՈSc8w?-g`Og=Jހ`cħ]\&gAJWz2|B)5nHa X}6UISiz?NYv?wI$AbTl73" UKg- s럏̟uHQ"+a3]TKER~Й~eե70˜LG䨤rA ʒ̚ W4s6<|i [ޯ$s[#۝L}ek Ki(ALtF'*pzbJzxlȮ$ UcnIʃ}-7x%/!.h<}p(<ֿi:34>9*}ȫ}U'r)GnzfQícMOEDl8*^.P*~*{FgJz#>u?S}eo&zr{0$P"h_F8%޸=릏p]X.8_ /+Ϧeh_ďt]kEc=w 19.*m(">uXgG*ny.NA)jg R+`6T#ڟtb? -!+LKތ}{s \Gs)ܺCd(ZLjyb/-UR!sh,GcO2hVy?8 \e{ְTmI[ZOAY17SlfWN,ܺKq!fq iӭ?-@tDKlE#*&Y[X{-s;UѬvBO(]OJC*A:|"d$TJ%KẆv!`H\O|92$+kЙTw~4EhG9Mۿ$߻Lǵ ?=OC[7 OиtNZv_aRsjWo[ۇ~dӒpi=Z猴cↁaTJ}sA#}KqE/H(`P">GrCnPyOsjH2mU#,ܔn#gij{t`?-EץzL ~j-yNp뎌PrkR--}:_z[[PhD_]4yP`5wBEI~4Gcƍ_9pTf~"6{ϴ#yt΁P_}ȒԊTðwת-imV%Ԑ)yOvkҟPVLF^ IYyYYY[VUW>=3M` H )ZaY*Br#, 2RHd[6)lA$ I$p FwR[fe/N!9xo_o.*:9}|Jb]o:ü,^CqklK0?  ۊM+ ψߢCL>rT%h?h D"V􌝏/|=Άd/F_x vS0kn(^5mDP}Z%drDЌ&>wgkp_Pu|* `]&*(^ƼlSz&A [co )tMy?eJC̶,Qd'7+ fݗcxJ&3k889=k3X8cܢѬVSdAc'-R@q7Da }"t.ޠm6/L ٩>b\ߢ"i%ݧK ?H+ dMԤaꒅoq.3Z1t^i0\͈ yΘ̪ɗՃ_S css-Nj4t^q=`_kf$oH?^cgAM/w=!FC,0{&wBb4M 翢U *7$+ϮqW uNnqT(҉>еM=f>rس.N3X=IAI{}=B9Bϫ m;O&9QjLZΡC@nX̽1u>T#,)Kgr:`2%1hۑ8gSԗh2e+ *I(섇Vђ܇yX'IFI+C;894٤&#IZHd%mwFrA7=~e N}Зt?5EjBn7&i9ft|-k0p$C 4EPh'Nuh(il}H2ٟ "PG}䩅oyFU>Uἲ4ޟP9,M$_h*It)Jx5km>R2]Pćq$cN-9zJ>_2h~k v2}r>g )Q* 3k{5/$X݅S u{Q%Q!vI=J~rlgyFj^>3!q,Škk}t39`+{0߸'Z WXxt>2ߞh/f _ `UIr&r Htل׉&9pɃO*SMn#m$ <] 'ԪcJō=11nxڦ1$ƻ$ |f;x 0lEzi@BcOoJCsbTP-.O]vv F46ŕ!}0z)!, xCg;&FD6ĩ]*'Εq}?z9Y krc_&v@v l5E~+{t{6}.$5^{F`u%qB$NH2>6u]$Osw]#7 d'>4P7rL9 }.nC%Rt x cA21 1shNҌqn cJL}pHٯjl~C#)ݥe&:q&8=8<Th3b;o4{B#0B)/ߣ9eR^o;kqoUɿt8"KIPHDxQ7N9ɜNXLÌAVlDƋ%gK%oxxO/:$!]n-Ϫ:}G43YP1'oqyR[uH.l?>U@LflBf 9FEZ&&ڙm~sv,L4F6b] !dKh- +gy1m6ИE"`YdX޶W%V ƒ] *ުDjy^vA#xQMGF3^/S1: D1cb I1J[$^`f-7R'C IX=[ZDNgNθnC'аxa~9I6o- B$[*#i❯طGwX JuJB7 {t߮#pR?c[H3eͣ gн] j_tԠa "C"S#3Oߴw!ߠޘ&tGLۈٙGV%Y4O?7}|>VQDDog5 :o8yWj订[j) /0]dKKx3PwNX4"P~EaXʐg?Aኤ EQ3f[?{;uvx][&W Me{% c߂T0Lb}w{$1 W` 9dd1wƧElx ?cu$~4>3}v(y> ~b/ O=KIX?0)czz8/:R .*B6bUXϫ-YĤpkfPHUL[&q&%$m`v}露 e![(dVtީwJQ[%l@z:ZkS<;mZԯFS&Z:OrVLvlbv=Y3(A3$?軣DZXZŸ|n/5pg-r"7U6Mb> McC /yhԖ~]qW*_X{zAEe+:[~,ŬĒ- 9ԑhKy:"6vO1ĎNj!Tyć =Ī4R Dd*ٹK?D1.Oۘ] Q]K:aDy&Ch&D)ka73*֦O FAI@;Q: Lrc 얘Miښfs5dkU fJh!"%2Ƌqz-ÝiW5eHF&:0CF{$?|hwBI2ƭWW kh*E)Ƞ晛顋sJq{;%Jhtȁr^K*-*Y 0Xy 0p耕0}F 03*)PEIWRqb.`xa z^ 0fY#"Ae )"Y&`ڬU Nw5 c`L6v{W[Ck ,{6;UO {9 _8"nhwlՈ*Iq ߷;[SJg&K8#FKC\•q-Srd~Cw{4fV .Q.ytW@SR٨"K1Q$v`dS^ j1>QXSm}6ox D6D "苮:pG9@P*{Nh8W,tOyJjYoR(8g4/J($w>Y3 vN*wXR(QIYS3#$^+E YlNrRcGrT<$1p6$P7%NJFvaHT2 N,wUrAb Š1DHʷ!TtOXhNɤ{UHt`wyJu4na1ݑxo;OVLXVL|;O$5fN<3|:Wdzf@n[IxlL~XŠsiE C1.|cH࠺Ѕew71Aݠr'd︢Bn5Ml'"ؔoit>zY&I':iBD v74lTѮqY },)ldӒŹ nI%Ě1ANjg=DFdĶ j$O#1YKʙua\DjHE2wgGA'[77Tt- =IT3og[R˘]e(T{. ,ԍR!?;#yr/;{WAt?cZ"$s=&+%NL&8%*J*bjG7'<7-܎Q5|pgʪ{o}ǀP=ğOF:ÖAhLLυγ6; AEy%yM< Hiʡ{y\GE.w1gcWc FK:Z 5@Py (2n)Pcjdh`t2"IdP'Tc1tC1b.'&㞃s˄H#7C0e 31K j%VA6qMjVVZLyU|9cOp3&s- Q@0$:vNg0KC™ |JAuC{yv\#I4"0,qOŷyRRS b!}[rTge+uq6%˟Z#4%q#Hm$ .,(5 LJj]Tft70!gks o6ރslr ddJF:QQ@<1Db03{`ݰ0GJ2$ C"zr"J5jW5F PD I'z /ؙ=pm{B@Y(35o*HT l2AZ8IEUIUQQD$ZtRDu 0i4'*T^wA2SWJyW1:DPTvAP K  *7&7㳄')J a'>4 o1/,/ouxCZ "ʣUkUC<ئ! yOWi SIf^+&6%[ј}3aOh/CTHu@j>6P-GvY )Wџ&1?˰j܁T]kX D2!rZƝ5ٸ8z1O IW٨;oTG-ĹLA 1Y//L8t|K#z:VG'g|w ĥ`SzJDפpޢ8j I$Q|H5$6MAEQ. @]ϱѦ\{"#!xحӾWWIPJmD/1mjm$!V>[_,bWթ^%"ty}IVJX ijo}4P~|#q8NNݍ*8 #<kw Z0&zj IDAT3u4MSN=A-ޓfB<0Kq_'Z))Hs<4L](DXI'w ,*NbdHc%S ZD?$LH/ju7\-R&9&IfM=eUHNX@PjH7#$,r{-OPOQEHUCJJ:99QԐl~@Gb]J~p" `! R@ P-ԔuVKieH¹* CMaBbidR0ui)kZc^~"JUޏ͛ecJVZkDGފB`cK5ZoJd5`VtG7k)t{z+ '&&o~<-AAfDlKG&*IInI H/б;h2+s"_52M0XX& ` |F㢚x=ڇn^1Elœg}rpGY0/tW}BM^V^mAbA~C ;:Nccq^4R,аD6ȱzFVuTY =YPs)~C2x$AB񢉵dd!523#',|3$4tC8/_MϦC7.c"V?F _#>"(`Rt_p3wo=H#ߺ̽_Xa ?Q9Ȋy2M5?z>QooJ+1ZD0\"Qfd~9T]s?i?c!t: iYVoFrJb[-T#׉':cHhXT|꿠Wnd˳Lt&ljZAR+1![\PyRP19/XsI54_,$T$5RJ Ud0yd(1LZ m1<sl5"܂wb97;.+<;M jdT|R`mm i6$樜7ʙMdBFGO V cxb3kq` g7"IaQ2~ETRitTؽhwDgr kZ.ұQ ߿dHy)@TWhB.T?xg85Q$ʳ&wO:w{/VQSplat b_"rh4O[+U.Ć Q"~a)^3%(/`kX]`Mz}_j,oDwDĺoA>&9b 1 zG(X M)ߐ<$%F kvB<0) 3hMCܵH':YDL4o·U^P^hx'ڽ.oyd<%^(XCDL<:CcSOl, d`CZ4cziPO2>cչk 4⮅>V~(1XP}K*)QSd~Z ?;!tDƼDWyE킆> ʦ&oݷ6D |#c;[Gg(P0*'?sF`$;q%k.H+?Z͗G"kӠvE ²ZrRaCWРRe 7qw4o'lʰc1}V@M+NKn?t [Gq| 0h񚮝%[qcw{9 dg{X"F#zIׁXR9ouнZx dO"B 2 Zߌ;&hہMћM47˜ȱ*hAT bAKfBjDsz־D d@C&: j3QH$1C5afh#s vt{ ~UcvWAE=݄#5kuDGcan qFS۽ճJFKCz2k ԾxwF^T ,́@]wXE~`;m`{_{! Չֱs"݀ |p6U1VSAUm (?,5S:Ov3jLN)dGp9 5J j-PpGp^}\Gt}eL+RZHhOЌ)cُi]+d&K)%'9IzV_A*rm/DbgT6_{1Ȭt7A$ΐ 2R f̫Cba8tfBqSvW+&AQӏ|y.֐vB5i3W!t_{)2~t̯C kAT2(T@cQFdg/ g{d=j<ܧx3V_D YHXٯo*´N سT}Q>n|IR%eu72*_XC `1a~;(#)W ~>]C]/ŏ.1"D)_JbCZCҝuG'*C|~7O+${=F5Kh~FWQeb#?RUTp[ڂޏ ١rkBJ|mS5[#o ڻhzd >O GP[bJ1{v@RU̜.(ld &k}48*x1cogXVw-z V7UoR,}=P̄~V~##'pԙ J?#pt^O}l$\%+#jr&[nGK;E$2RJVWlDcUĈ_InGez_☠~q7H;!RU 6ؠ|CχS/j1+wE [t ZmV`uh{՞W|2xVqv2er; &k ;ہ=Hw-Rt=eOR1WqZ>cXOl@ngNfA>/@u=vt464|sG{dv_t;_|%5VbF-qxbcްvN{nO$A])D%}"h)HrmO]PE|Lj+p% #+p n;񖊤(]4 ( eFvߡtw\RA|xDw3:܆FxEdBV3rMQ~.pA 8lƟYĖd)Ci?$0F{odyw~~=w_h4 Hq)J%ŖD#ۊIdfǮLj8R7ɮȖ%YXe-."@l ڍFo'Vz9]<{iܫ"F|rinYpʓ&_ؤ?nў0:n\&p_GD5lXk`bg#KʯtL 2uR;,Zcqe w{+o Ѓ' Ip#$FBh@y^bLdLaU~,"2šc~L|Hႍ[PPxe͢C_Gٴr#t4 ?$9樾BPE܉YTWbSHm(l>^`pLhn?VAueY8l'wN 'meb;: NL/{|S":z/~$%kȲN2j9:M(6=;J <6$!=֊Kc+b.6i}g@ 0X-5 Ͼ/15 d6FWevnF#ȑDLiKH0n(N kȖ]x PV01 SeroH$ucb.K5+߳IE+ I=AAaCv@{RNj ȋ"?CGԿ=6SY2W4{|f?‹G eO/(/ؠqz Q{$Fҫ u#*(2JH䕛H4AxufAA`0?*"s"[y)-+)Rwt't6|g"G.28Z!QcBoL#|I0ܭy{@P|Pr9xY#8K#DzF(cCJdKpSNSy(|,wL9"xQكŲ.N%BSs d#<]rP=QEfhwD/SD3n 1;UE^IU['HD7$rov:['#$l}BQ^slq@M@lGW%$^CU.k=@;>zla>DoTjn 7. {z[_䯄^ ضuiR<"|G17d~`S?,FMCӚh !ʂMԞL`N :(YڏW{/Y~F#!bMp38>q6*^ Ӟp#U n?IxKCq 1$r?;@>T&vi in r2IsA3K.4iېpэJAHxc# &}=kOh-Ѻ]T{LAL|ΥԐ]?:ͧ$ D 2aM@/|cRKxɘo{Ds{g}F2BUQ(WLEc:/8B3P*ĽUÿv /#/o1ܓPܧΒZ 31]TBuW1/-Nz{;--vJTB6EJ߫bBhк"&ɼmY}(ÐKUDCdCT$CtnGfbbn(D75UiDP՘ޒ݀. V"nuH4'bD6 u+Ί8Wd'0''LQQfN/4*L.{BkOgFH!{pg& t4[wa ̐R3QLEޒ9e諁Wc9H! 7M')MroXsq^҄K.ɃU0hېQn FMa ӊPkf5G%HXg'QV} TP'u$PDY3\jD%r)Mĉv$,|4>*vpKz%֪Pڵ.L9Nb VrH($>oZ&'ܘD}k47l*vvTj|lQbs3AܷQ2ה-ńO& *vJ(P /kgיk}2#jFUI^$pPEk(}o;'I$x4Jo;=-#J?JbPO4@:/Dob8m3| 27= *T覇w7XN&l~v6$p^?2$wAoA ϐ= ryF~,vz[uH.kwPβ2/.?Ce7}J88)ascDHoD{h]X1q'>'%EWl'Hvnw|+ UX{GQ/ҳ{TԽ1vAjS!Hz8ɐOcp焷hMf =!]*)+,<R_ m A7焳gPͨYX|wn%yF# 1DG폜³B"yt{uaHꎇ\Ӊ}5"6(va)jnގHm8c$L̹5\i8 ̆K{%sQJ8ɖV螜@EggU6N' ,?vDzXkp%|<*!Z7d)zu3!".KB1jVH=KIpTDE%:QJQE̺3n9w8mRd/ٳدW NQY씘'.6[B W7E=F*QoC󣧶#/Rv"[WZO"D9ܤ.TA+z4q1Xz&JwLC;X~^Tt&ljlH/.I5%|ȅ!Շ%تK IDATu3_#TRU+EkL$O"P5Y1g*D7QT%@N ܪ+Ñ(vJd*QZmմ?JdZ lso, ƺcث{tuآLp'ȖhIՄ̰ _#ťz$}g0vToluHb}̟ e{;S=cI6)H1kYLNbVv"Tx)NaJcL тP#'dnyCBǞ{zbNU >#i P= J6'8ILW䚾=Uٵ\uļDᒇt&Z^hN|jY~~,?DÂu,FM¯ Iu0KVX fQf^#F <0<4;듫M WƏ"*ye2 Q*O$Xcb.c/I.nB J&Mg2;"?*#/,2~ y nlzv'4!9=%Q'uUЙ/2(і.9$;d`qqynIA#4fDfDơ!iSNJB:t2*CY !**`0!.G&V% K* TxvJGNRepF  04gd%왢J8Ɇa=?yYB*4ILeʓ!JBq^ Ij2L1̨u3z#D/P92r}<[;/@3wM=1d_urbD/'*)iD4*.mx'Z{#>y2ÛGZKf JK)uXgHޖ ׳ŠE@픇^W 6y.X#DVe27=BQ{li;{iSlLBM u#H?w# tJ!Mҿ]g$ Kϊ^#<- bNvI}DuP U ioX34 ouSEuw֥~H%D[lIlIUj' ,cAX.fL6 +[*\4qz&̐]M?=l!*x3ebKQ I I*Cm*:f6DD'-і$ Q^,$q xe^wtI ه՟MړsLqd_buo]a}^Y_]:OwhmcEXIDޘLpk8)O݉)ė]6Vi>6JB&DiLr:Kt/h gjpoHfHy(de(G*|,wA.SySp#4#@o UNͽK=T!RXb^DˍЙPH]vFP;,S?$=$`M@Z Y2^Ƨ;S}zSo]ܾ'uT@ 0pER={ݥ_4gр,!GHe}r8K݇}_Djԏ#}e .' dO?۟;‹@*3/4k}j,M7chvZD.gtJo`Ls] 0Q}n),1hC"S;"3ZO%P)m;&Sw":#JhA!p .dSц2̷hWi4zk%FI$Q(vh1ѷ뛐}Cg&Ec)@>BHf6=©/P=`-C^HTOh1 e:2üLs>BI=$]/aAdxLkFJP7/Tr79?GAj>seyqh""1.dLkО rea6Jr'MNEf_BXHمGx'4R_ Wk@{EmT7 eOi1fu @grxbtUʀ*+8zK=ا2ƦBAaN{%FXKT1KACXkf3`Wr݊Dc0K:S=#9/8ݸs1E<8̜ǕJN5RkWd.kmxfGZ [ Y D}fY`.oFGR4o=>S1h9+1ɳ\'IC@cنqЙQTOƈlIt?wɾ(q趏/.R8=]a`u "Ӟ|(PU.E%Y @v5ؗW:E>jnEUң=Z'B2,hP$ O~ŋiKX~*FoT4SPO D5"*yڨItQ>ڍs(۔X1 <]C7 ty@ ='}QƉB5Oq3ȒNən1flj,w@juvO}Ҏe;IsI/c?8PvRaԜAeQ := H}z/iOG[mx̃x8 2qL /\BVTӚ%b߼IQ5|C7Ͻ)s164g#S%]oWk[ =v(@^#n[+%tvNKQZ `EtI韹Bf![j~[y*~GPLu7ŮndKkߜ'9B}3Jlg :24 g\NJ Ê˞Ot-; __ dK ~Taϟt|BZTw8[OgPS.ƂNk{12E愅sHP5PK=hf͢Տ"!lo8G :֙9%5!ù8͍$7,-ktqICzqGy&a -p걛Dt~ &2\Q1]ld:eľɄJ'r27G[dc!KLO9um6 z+q&^PьH(]rP8'EpFڝ:z[" r9@,o-Ad% @­}d[}!{QwtHQZS !!|C`N:X*vB&?Ao`O:*UO eeOSp$cK&&1"Ua34jUH*xDO{tIx@rIta~)e`dvpX-/=EnJ%8DdE1 DQOV$쨈_ i( M ihx1u<<97;/1W5XH%' 7CS|LAe*|q4B@BD"/gEn٤_Mdv`z…6z;$0ʐ>~WBzeAg@!hĜD{BdRQl$"B2|:Q1n2DI( 'l"KHRzq7@Fh⟾_A*IUZH (ˇ8QJh5bz&w1r`$'IB"ttNPJ-0 BYE /4荇4 t dn?匍cJL}2otSyVQ7*"rBU톊wFYda]ٕsCn>7?; 7XDzQ5װƦBD'%NB}p d]BQ :)9iWV}eER?/R!fVGD)4O! YTr vB{bPg:{=$GfEF*MdM&g,_-][HKѐ {<yAHzG?݈?Q;뒽"R?d jHlH]}ܤaf&h .paT&?]g ~#u9z&~.Ӟ^D"Kcµ$b(=cMeXwP螰0O)߻I#0y.L~adv̮һ^d>lV&Q[Hrȩw5M{ExLAx⃛ JcgT'HN)ƃ>/I,>kFNa>@TzY`!Pc;>Z[Fsئ_PQ VHJNQitΔ=];* 5ǨZa0$7wCDٿ{{^ R ,dO4?2-Jh)b@$pXf9a9׈[+z9#5482z4`E#6 嚊 je}^C+5}Z3wxB#ˇAʑu6q쁎(m'd`J#*QRsϾ%`rUdsvPp Sc}: -c0&ycNHzæ7aIr/3SqiUD$‰ 7!Q?hR<`` 9{G[?|yK+Ho!hMa/l{~${IkDoKWQI`u*?rdVD(d.mve<+jv^ )g $LGd ;Md{M6QϲCKJLrnn4Hi-aݩ \thH#G-No,DjiL}q/&ln_ [*I {3w1dSja$ԮY Q L|H =Ia?jݒ~ۤM_Di[{GeGM=홨:#!A(.0iZ@s&1udY@݁=d=#&m1V Z\[oOv}m{3JDqXjP2hY Xԏz1gbp%Cg㤄] =_<~fNa]1kdxxh7},eUʉ&rWa<4@)ޢi(u'_~-1}`ť=OƳR nRp1fTo䐿!dd5dԐM_Xm}J$%X[ ~:'c$NW^` >*\h- `@dɺW>'*uCac&9 J6ƪkj*I~'JF=z&˧I΅t+!YҫEVHo$z(!lgyJDLV${} v,g[4zK7nKDWdy;A.ݒĠ !R 16Tv9o`gvTS}b2ž!k~k+Ƅ?z[䈚+*kM%̯]@E܅ )bn&ZݻR)lo"<7%\u`+K*&*4%RWU( jJGb<̳1i #alLxEtGnYnܷHDUrCi ?2N+cUX,8I{lH/lm%xMۺ IDATy?aMCf1 *6Ih0vWt oza@؂!4H,~('X7C?2O|HsFEJeP~J&r8{P5MS l@mZL~Uw׹gQ8,k4៍RZaޤw!jwaV!:pR]OU3׋ >ZK G1D?bp9ֆqO&1kOF^70fۜϽv^%e/Gwrbùi*t)z ?kFHM'Qit-ܦI85$qEO%r!Vw*5UDR:re¥!Y 0>j|'/Bm7 #g[fD_(}ñ.GTԞ۠jNDtd}=dӱx,oEY8_/pz.مlbrKe;P{0ط< irJՌJlNeޣ?|zF?wKlʤPb9ܘooFmUOĿTV$߸oNE7n4gKD,qW&$=Ġ [\y&ڥDA*e^a^f/=BY?$C <'Fw"K؍Wujh"f(1`uhޒH{xh= iq&7.Q;#mr{l#v("BΔ/ J~5@,-ɝV$S Z#2f#D4UMl}B&h2. ),'SG'y7$Jk)h]\WP̪<5GTN* KuIz^#ȏR{jI_trMa2 :F &>33FqE=83C U/-`E\b YMSxQ<gዻb@P2,Q@웁pA=Ԁ攌 *ye7]vE!j~HEĞa6"5vQ[+K0>Nn@&"-}OuTr9 U݊VSQIC_b8@k*ֲ̰#m[Avd="w5zQ`#>Re.rzBSg)3T&ˤoB\2h(z,JwHh W.҇K(f7.ۧK/Nd ֢gg FDY@lO\ȱqFD~G$_X0cEB$!!]hπz]Zk?k8LtUۊk}\e6Wy+ 94Z Q;l2(dBn%Ky 0$vH\쎣w@ s.-S{o`Bq%z NJ/zCd c;LXQ0bmpl{RIHmޔKuS%u(a'*YSްͳ4.sCC6- 7#[25p5~AVٺe nm/n1<9޼]Ȟ8>4̿M (ìD8+i`2C=v) Y6-}쌆C`B}T?dRSqM!ΈHI"c/ 菛tvG<f@U]yjώ.p<1epv; :,o`gCOv=K}@AHmfK5تNŞqRvL2xqRecYeKfSiQN&z}'?(N/d]}==?r{?`7-&ɉXv$3ȇAS0. BSDp~ 1P:ӈW; #`D^i{OKKbaܵg^Kuu% ΅{5Qek=G!O`A$$CxJ@(ts;s̐` Q w lTF1A.ķ%p/Erb(ĚZPV3 f#:Y8af-:.NK*<.'=!aȉ{쀉KR ѽ, ?S]H.M /x.89A;S}-">44㲬Ot)_K g-5<gCwMܼB0iC e;(kT5YwΠ:2Ӥ `2c3ZZHz%)B@ȵ*W7W,z;7] hcN^,[?{(Ũ!faW9TPF BN$GbEI}U sZr-\IKRκ2?bn3SpuE} 镐b+R#VԟTdN+RӄfL˳&kLl J@gEd 7e0#P;"h筍24%B3ƜOY~Šn2R8D;, ~z(A ԊC~Lo!&{oLhXkYB*&ṾiY"#!i澸[ٌKR-,}Ȥny~+&">)D])J(m*<T6@0;]-9fX16z SM&YWЇJfXzHX@D'*כٕ!k*A4]_W8O:'%*We]N6iH JфDl=#4VHEcT|fAu% UFR-@R{R٭+i%S9$ezݧ4M.+$ 5Ɲk Qݝ}NRG規=1$#2%Litp 8Gu %+)xߔ\u*Nn,HEB#(\ZsX.LdG x7eG!}KUGSTrCkfh ~Y<3R%ԪKYaR#ڻuNbd@mvK_@.ՔUNeȡV߱۟t)ݡF4?uAU9`v%TT Z˽)&# @4ݝڡ&ԑOw1oZ<I #^?9Gj3°*( ,ɬtq2Ѥl7P̘B#H(pzԲvJ9Wd~.{\<ѕ7#磧Y)rɻ&|g\ś?Ir]o:^2 0uDk@&-EKY++T?6Aϵ*sD]*}n/ \Eb5G i b-Bƻ:pAgvbE]З*75)&5r7Uj+GL`O?ZsnL)YVwh&Achin0It+1A 5<-=G߹E/`Gw 58/DdnjAp]c>b V[92묾UESL$??R=HzzB~^SFh(QyTxy61}|n4CYK)$/|'(Lfz.=Y> jĽW԰S1^=V%y1Io!d퐵0CKۭeVժ(A].o8~^o-DuZXM״k2rq6,>kt\ X}>KA8}v?CuDS߃&H9Q=F 7Q VIjMvىL.t[,B+ I) "PQ*Gj/\$zI&s1Udy Ƕq5ՙ\L_d*ګ1Z!{e&q0<3#W~v9A˛2XԊBx>Cne5pO)M7lҫ1 S8odѶ5M Mم|@FA?K17׉+u:3?uS5Dkx1J;LwxFW}@`t)$7>AG9:$u}At&hRa|zHv-~w,{# }{bvLo5} 00 ro>?· rA(Jn[VU`}$XQ/acE X:Ga<rTC2iU*W&f:_ʰQ~JC wΠ[ĪΠUXWa{dC'WsF:SH95p}kH@7l"L0K4Ee _vP =w}<J [P}pHU ~ o,{$mxZ/9yw- C  8Gf$'"T.:4NJH8 %߉W_^9dbd[!3(K*3ƨ 'AngB!kUGRI+: 3BiO [I=y9=X6|'=2qYB5%Sş-'<KuIc #܉HKYڇdv/$"Ro/Pʠ*t2X(]A-ʦ `fv(+6PI- k>mɽ(|)uXȡS|çnI,WǂX~FB砊(d@pH4v4"ڧE mCt#`TH׉597|Ǹh{t;\}@_X{#U/Sd$~DA}*8I,x:C±6Zq%ȼPG/_gK:4_el}jl,)$VýiW[dqa = o+ &N%"$ƭUA]nslW+ ꓿5&_EWLRm.F)QEax7.1ѓ|[~EN5(AyzI1}=RVjkS,Ws1~."Fvy ZWcpbD J)s~6fX d2 CJ k4s++t&᧑`/'?GGőB,N9& TEplNR#{?4I"?[E0-oOR9zLƓܛ1)sjms2?\_\U1q'J :>&޴n%B1"UJ_%?W.H'\$$^?Ȱ)r>W'D HN,lSo0d?*Fn'#"Hnnjs*{П3,3P|AF=/Z!O!1Kb_Li*}F}[e-F(JټŨZDčTԬǡM,̘X ݂^a'ArY)woVC9q e…)ڇMJB룼1b]%uDĕyf7"24鳤 )GN)2{RfG@umdܭ>I 9u|[a ^}N?Rޏ?~M!OI=UbPSvU?%!ue Օn$Lj+kDwa4ƘvYj!Ϡj$gg(y IdLIe`Y8C0!J5$m(d-@*P#Dٛ>qm3F)hN֑Ӫwtgtڂ̲GД5HFWNT5$*ʪ)?%#Mf"+!Vx}04hTwG5)Dr+ ',eiNWJH~m] C U#DW'rT*D`Bx63l&L*k[dABfQrz rwby î]qYVb/W4X{W.حZcn6xӣtuDX\"3 ː)U+îf/h9[(2]m٧OH'EhDCYqP4Hy(7>:ҽ 9uN9䚺[7d9r7ݼoh'䆲yT%ԏ '+?'p1&3RnHϤwUB%?s/F?"R+gvq̮T֊7eGNnw]Aマ~9&sY^Z5R_:ϸb2Hԥҧ X.P/ q>z$Vhx0_M~ Rk.F?A[бceZj%x|ߎ&1FGV unH窱/[#O\A;v!F??ɫ*{Q#TGzW/:ChB7'7n ՑYicnj7̺t(۵P#ϾQyuIѭ7x+:ۣ2RQp''8/S[  -k`4;tRUՇU()녤*vهL2~Jf;bTh߾HٔJ+-9Db)^jKVWߩtRoQ~mWa_ IDATNnl{o^;ɽ)DTȥkT< ͑ΚĦܰEG{\d]a&+J}1 KA]]uiR(iH5ySXK|Ց1.ᇨn]γ˒@dQ)ul@8yyކtXƛ̮>il1vFd\LBZ/I_|aDz?%A[m;bNi{cʎ'f7P}Y:67AДDo{Mֶ)\ɿV!AhHWK#yPy9=ED`KxX>U(] e妵hVFJv  -J(>ug΢8 auw(۽FvWL~wF?dƭ5Fn+.QwҕQU2K|[BY{]  ,%v/޺M޴b5aڹnjro\!̮;F# 䃱 N'<r֖]'Q{LpF?Dyc`$#zфdeK^żtrRyG$,}/^A-07(n&-y؛>1nNTh6! 3 mKr#^=^CzRDi wR=y$.X;KyZ?6CwPR&E3iY @,J@n75&:tMz~Lf9 dp\ j/'':fDmA`kX_zmfe#&`e᏿ 'ݶ}lq"0G + g r7T?݂ Ghҫ)P &urwFl9c2[k \1I3Mi{-g16ef3ф@Wܗ?z nFZ,ۂ}]܊D3@o0F9#g<M*;ڝ5 _ctg1]\:V0<d# &_"I`_)_ P&ýi 7ciU0*']CN?E3<}j88hy[C\r.ƅ;?4[+|ŧuDgΒɿp[Ho'`\1I4DϾJ;)f똗x~ gLoL+`,g_;R#;-Ԉ秠Z!t̃d`1=F IT5VduDK KD}ta/^O X6S J[hf>)WHB3 3/$1u^Z!w/GEAky[!F=bEAw?^ gdMS嵀KdC&e_ab@SNjUVbBsÐh4i'@5\˪(՝d\VQ|<P4u 裈݈QE%Sst=O8cX-yLNU1Q&.28S>8 wՎIؠ}@@m&l3}&7dT6Ba0ZK OP<Ŀ;*V!wgLoEI^HrE`8i}c9UY72s8 ,pH2r蟪:x%Q铲 "j%2wGh*)Bp 2cF: C)|T12%4GTܣ5gv)_\`pMOn-3'PG>#eR7Pt VPR6T/Y^:ꌪ1"I\^F)]uI/).olL!L$ט봞u"=:V)92Aoz>y%w޺fMfZT_r_c楀/o't*'󣾥 =rz1U|7jl+j_PHP6"H4_Ekfe#Dॵ]XI [dh]퍘 9(\|<*+(] )^wQ} ?O+LofeUP}gq5Kl W2Tz5HU0EY K6ŔS4=,bHN㉈upB )u|E0dH:ʗ{fa.K z :"P1HۈM:Cwq'(S*q~9>{\CEd"{rLs6I$V4F:$%6c>`oAs,2{2t=`SYo(~gÚgU@etiFiAr;dr$7{7y~s!#b-CUfw/ʈnQèdJۯ\IJh_6 `-A@)\WW#XF<(c%$|k g0jaeYQZ}T7$Nd~"ML}y>h ]mOZq *bf {Ձ:h*buZF-1+@(rUƭ]U͖T;*q4YCk1+vz-eUt/s?[OȜ55ܢ$w?|)UJ,/N6.ef֦xI*pPN@F`]_!H;*(;)-"]Ao WL"MC;yʘ2Fc̨fumB뺴ƞk6de-cܒ*%ԑOh6~ {#;j=k1֩??˦U^4>yT{ՕJW>1ƘXW7~ʇhq5rr >/՝i;;l ŏ0 c"~cՈGcsJ¼㰀b[F!<`7D җVCם͎TJב|5+>)OjϜ`\s|cՑT̢`bH>އu.ViI/ICbAo 3: uqVPG> u2HFw/#(t0j6ٛz@ߟOJJKJ! {TRRn.=*פ@}YI"k@6f?s%Yo1Q"Φ3w]vki !yn ш/\'ܷ{-WL^4+W#=!j0a6]Ho UNW}5m)/.tguyLVЇ)]$(nN Y)xt4:6V0!ZZ BK;Jh`t~iq0]RCK+%d~I{$뤻(W&7JKiO@,凞`8\!PH]YÝJZsI/Eפ?'~c&r/ԶlQZ[̦9?4:Zx.d^[l~-dˀ&^rLguJN\( c"+GVtT\Z$[b($/b^1:ҕUxC^Ӓ%faiZ@*꥗Qф\V;d8;LCtuP89v%N0c7\% d(j'ˠ*0` VNi,ɧM&%)Y.Mp"RtpU&^i<)h SI0h J h1haXDD/GOA}*P.2zjL404nҢ}"MdR[ {u[4x)OM Yrb&"֓ k:HMRD&fOЛW zGO96~z:+8cnjĊ#avAD2u緦B9PBƻU"M|͗H kKlC]Tl6I,kΌ A1Ǫ˂p,ARN">fC%`If ?5os !2$%O:5Ta04>f fǴgU}x6`OHbV/70\;*cG$%qU ﭑ؎i>.,twD **j_('j fcpʗ"H=l?@90 Ry.XG*)Xwf (F l ,DH@=K^Xl'RћP^1DYPը~~`:OU엟{*@'YIl| &T63$)osĊxgI= LYZj |[aTQ PF F6tq&cE_B5U(My /=dzF*K C{R O/3{MŨjEY)IAGX8ӄw!&DL9SYML21;`l fon31xwF|S̳rw!VzquI|5:u:Պ|ebI?9Bb\!$ Mq>1Mn3EOH7NhR}"{ġy𿭳2e5k`|ܥ;e0>5Kg=SOK6M*oo5Pכ̒[."":T5h@0{gG}34F5Ot' GlOɌOh/]&j0xj/gMGd>Kxd_eNX:R "R eQ '"J?s<vxQ/')K'6@T+$$܍sN23H= 'VUCͧu"ºylPo#OP_EOykGjX/FGD![)f^آ1^Ml5[OΒXgTYND;7sg S` UL`@V _SP,l~bAMD4Z*K3tӨ=V#ԡ K3h??OPMGfEQ u>Vu" ! 8'jl"-&Id`TQߕC(?z|K7ۙw?;K눂STk˂mXX$/ LMY/YGQ FL-L6&ao6FDٷb yW澰;StNDK fd|1PiTY'4X(tŸ3ퟬNY#59 WT:tD`^Z"Е9͉gT1beo=)b;A5rϟa7GJ`0 X9r>N^cd*i 7$C t ġlO40rx~b]Pʵ4~(/^s`^NC* 3iD3D"*x~\KgN2΅1.AN`Fraݟ}߾===3= $ڒlYzJrRnJ6rR6qeKD[Z^ˉزVzF(|pWOp8ɟ TP`o{9~!ۣUyx ȼGW%R[ g]W8, NL"V>ŝM`U+J\ ŋѺGKf`ķQVH jɽgp^c?כ)_EOh<^`eމ"yK) IDAT?<,iEW)KaLGܕHub=,8TAM}HF2W>qq^Ԙ5o4J:K~Jz̘x$190eR8V))<`3E*cY\yŨ.cKȜk1}TbR-aw*ɬOILi2\N!>SvuN[;lIB  H>I 3錧eBL"-y̌yDѩ}_yȥtAs2&dmdDU~)cB:HQ(?`(i&1h n^"%z@AR:ٵܓ.O(LOSp'4QT*ՈDHd KKXu#Cl2KdT/ !4$&_p}`!Ok#& q$*S) ׅ4s\2a:a#s7aw_bED,,3i$v:#*F[Jdw'Te+.͐t O SbU3 ƨC# x%3}Ix%SO$߹D#m(ތh!Dt:s$%Q]*Wth\⛤Cpll߂U D!$Dt&,Ov-X"2\UXRR<=!h!R/ϝGb}v> J@R pEYqj?Y LYCM iBLJ٢ޡ% 3&:O@f\Q115Fm y QvBK'%yslKe7`tef"n5pQ& bbWk]5,\h=bb"E"{]}&d#0"]n$L*ȗIm0@ؗM'qm3@ڿzݏP˳GՇ̟"`I%H8f7}Bfx0b;2f'/fY[\{YܭIq KDVE BKvMX3;O/VbU%}w08>WX]?8M`+oc~ /rOGeD魈Ȑ7J a bF2@"FP77$1ꈍ( >nfQ yrjpNdRႂ$? ,)t#1:U诨ĪGwNVz3!Έt=3Q=g2}1"eB(2-ac4'fo-(0m2>{<#F6aJ#5q<ƕ} z_DxN$RM 02 ydB\PfSH8ԩ|k W?Y$:H6a Z#efp-Ch+ ȸ)& !WdĽ7YKCd6鯊j;ymy`lJvɌ 2 -ȎL #w5ĸLH#bEDfaxb|j[]-Z`32&{2Ay "bѼ̨ hӱ}Ծ(,^yTC %_K)=,aYXXFpv'זIjR[#` -A`Cw\/!nJXѬh !M =EF'Of H܈ȔWcR}m\1!Q;;r9AքM8k}qvl(LOؽ_@\? l$JX ]Q52}pjFDkc⪇kfۿ緐J>+1Zᇎ"aW9d: ;`Q7Eǻ6qBގ!Ocd/D FTw =[H:vYX aoHxk7D-y*tNviQs>FCe L QRsr_%1cwE$fퟙ4c (NV}H8:Bkܒ> &V#!c=lΉ2XRQYz @AsB`DׇxA钂Ȑ#`JL㬌\cvYigvsWT7Co*k]4J3vڔ/byUX5;`*!_{+<27T̶9!VaqF&;(/ƨj䄻o] {=־Q=!+c5{Hؤ}(ccu wCM{/JhSw`v 'O ) {udJN'x=v`*MHߓ."O[-n@`뻵 ֖D~hA(9pqψ\S11ۏD&8Y-bj [VCؓ !zweJR|I_"֤}kv4<),ÚB~L} qaM ^z( }"@o-aRÄުz.w>c2cB,f0d`ٌ3 -lJsw! erRkINԴ#Q=!N_{JWo}*%Qgm}7ſ %a=xM(C%\UIT#xLbUңr[݇Tj_X 7 *sSXZ'Ra7޵*{X F[{QB gIcOqKbLfqf1|838YAIG"9^ >dZ*/āDIsTp=&Հʗޡ j Ua#*LI>Ps谮Xg} 5D.F_4:*1; NE\ `2׏#Joő0RΉ,#񤎟:2e$@e"{`tc3U!T>j2㊄|(w\o7_B?Z[0 ]1vC]觬x2b,sKP W1|/lު+ƖHԞ8$/Xў: ޮ̅*1 K!ܘ 'j|T|H#ԆNщ! *ūcnL# +/ V[Fg%*"VA|ӄvL4H}Ԯ+< n)8au^Tb>|stx!DQ"RBp52k8q(Qa9Dq楐ޑ ]QڱcI1MNQ}W}+"lV@)ԮDsb<$s`,}'3Lnjڧ#!r9p-d8D!|l␩KCjH~ݨ69ԞB1 @ԣsviTźr. {[ÕD5Ia6N:}G Iq(3q51u ]^ 9{ v$z'doǑ=7ιJDix-gğQr쐀c'N/2ȷ5- aU,%+軎:]nXG9ڃNbi~W;jq ~-D͑H-=MOW%4+:z0oϣ]0a<U|i!jF^BM̥5z]"-Gwߡ &)*?9<yRgbL4; #]#ض3Nxj4A)b|d!$^v|JPS I$›̭!Rdٍ?YÛN1soړIWTr߻/Ȯ HU*K>SeԲXLOfD4!<2X׉,/ʫIEG#lBkx>i#+X;ń;{VْpAg:aQ f2>O45ՑbH?pM"%HFij=A3=Q7 $އN>`<䗳d_9-v9&6R~FlrC[Wwi6/sݠMZ?6C 1sߝ_5P\"CِќLd%tNG2)%O^|BޚBfB"(:R g f^ Q >G(\O Ga"ˤs:$R5d_4}QUD\f|{ȄVF ޡhIEFHCQ+jL Τ=:ηl}ٖ.KOBE#@6>{*$3o^!-ݜTM-$ 2Zq suFJKDI7}6&I=Hbw_=V%Q):HRɌDQ-a1E1(SmpxȎٔvcy)! ȸS]FurRJLV#ni9P?T'G󂒢NJdnCw/XBǠVEQ_Q[ݥX94+OYlD%(J_%P%$_YQ0ELV"FSi*y x麨-7 !"Oӳe$-W=9aUQ8Wo3pLL!}Yp}L~dwU#{7AIToDs5vϨ/+$B\"UKI1%4tהݤE.r >ag\ˮb3BB{VCCOtS՛xg|O5^0{##6T^ƜЙ=ТfXO0J.JiΑQԘ &\gnLfk`2u4J`$X'H쓬)b0lG?4ii ZO]F&˸#]oq_$2&hiV'M ׅĨnL*E--#H#1Hl 9; B=2Pyyp9 R'1/]HT7rDݽ~|n>)sCCr['emQOxĨcac\ԆC|e`Q&l>+M{Pr>ڀksst6_**8ks1/7iu2"D/ IDAT<0I 3) FC%G5>kCp$ľS5,!iK8 w^ )M<3*5u i@"f$rr)jϡ ?z7ׯxbZ6R}_|n1:6MhJJ^y'AE"v(} sg)~<ӯ 57y$h 39\J91W%-қ^AtFa)ۿ T+>PQ"d5WrݒppSVygM'} %6H EIJT鯈گ$`WFu"QSgUv-"#abCH3֐z^kSpj T;/q #0"OTp7dscB;ك%>^)a $M*JH8(fpT3u}e.+]])ќ3Ik]cз2B+445BW"n쀒Dx!Sb-I%J1(⚇n]PZ憸,L8ߥB3-F_-w)>jog.!.J${UnWNXvNdJBwo(P{qcFDoU3}% 5çW.qs D"f)iϴV',3֐v`SǼ֨Fkv,g1b'@^u kS&nG36M5a]Q#u+#;-ohmL-cзxWpd9_021XNȮu)fH'&y)3 &)% ?7#fu<@4cPo;D1ƚL)}Ge&SױCFgngR1s3+" ۏ>)KR#}_{z'e܂twzYa]FgϣJGj蚅O¾Yʢ am2-Q.brpTf"/\SsZ21}43ٱq%)o4Ya}k839ȄT}4?h%;c`_qv΅734D;a\,~5r9i,!uZl2uhBH<3lS|+Ůƾl[[6^.ƛL=g} Ʌ >!ix#OtV>fR^ZLe_X/\xx*2.6&!%~%d"ˠ ڽ,yffpc̻$ J |$'Z_0>tuLqKxx΍<%-(艵6 0~;OCI"cf*|9|r84;(Gb⎍:Qo "Gzx75FJ5$++.X $W#.A8*qXVg]pd'6Ӧ$\SwH*>a%X|V2)K,I-dy1>~%BfHyE%wKolBLiRAȢG9R.Qӟ9O'k9v10 ~^bg AM}C?R!#1gI$h9McAkoo>E]}V㥛xWJQ Z#`/`92[2?ȿ S<BjD[1N}؊:HEuJ# !Z_'] ߉6 ~V"%j:PJ1ɶI HTH:*]#Ku$R4G)j_) a'oΏ9~Ao=*a9zhcKPc]1 lԶPRC;RIh;<ԙ:SVLY ;b{e J bzgof/Y 7 DyeB a`[w'Q~5zk ^9D,-Rwi)QUth^f?la$̯ڧX}( Ucpixmӯ5 %z*K~,o#jUǙ}q_DzDbXFi 3+-;Rw4"W<4GN$5 {Kb+)͏H,ՙ{)AdŢ/*ZmYaI"P ݘù5W-2 o0\]f*|*dJA?3Z$Ǥ<)FW "T JvH[3퀫79^1ڍv? tb= 0g^9S'+c$ ,AƵcͦYK7ن."kY5%QZ=XWC: (Ǔ7XY"SpqRJm߬q}RfypV%62<~7Pv4FGh#NRn%Ps?̣wK 2 )-$nlޟ":-Л*U 3 6MpCB}~!E*rfq7и-y:s3]Z .շQ+b!|!4+K"y$ūL9 f1PF; ױ&*3ڦsH%%Yb< ɉ-~š񘂗 nufs^s'7t)؀_-MW(F9SL?q)OkD9KdFǦQ'1Pޭ`vnd[obv#F^*} I]VT\-Gea?T G;ގ>{} ȿr#bXT~9NS]HdY(R{OU~-lW)x1՘mui 1"G1S -Ƨ8>,`T^ hT'w' SO@/"9:qK.(RH:8qT Mz&!Ԭ3&QFUK)ux/:~.biOCk8oNUyk~TPsD]D.dR"ӸAgaO/lQt .H>+2@ڷs4"_D>ڔJ~z$W&ו!a)Boչ]ƛ PU8!Y T "6<%XwUf^}Sf=0"\Wc&Ff]b+a Lds[:#1X+i"'\_FShxHTaQ 2ά_v{HREVh%:}WԾenUP(i7lh~0Zk)VOKn$pLi *}J @=`FO?W'{-:ųfx8 c\іDTNa>BU1,HW`o8Q{ _x?;GhJw0I(.2t/AqX_vOBQ<׮{ϣ/]"L؛ :^HaMz[Ϝ}=h=>K£yQ3: j8UzNwMcW ԝ5STW/cqiwb 7> ZbD{-2nP]YoV*aŗ<: s6!JV;cXEUm>2άJ~D.Pˤ#K^mgғss4l=&"UvɄv5k˯qG)k”Qz^w>oVTʒ,ɲlɱ18$!9ffpfz9C7iΡifi8C N=-$kd{ۻ\V*>χ_<>[tYSܖʩtD\ӄVD`I͍C|PYct&s$"\E//~5ֲ U3q2bzT[VBjC >fVdײ헕ta`ɀ_jWd =RtK ^HbO;$ꓹ0 I˃D/Y-0#|[b^c۔p_nX+T)'],8~~+.K['VPj? 8%bx7p 2I136c_cq }> *'AQef䘫Cr\'=`wN4.Qunđ(BuBmN@a"{eԏa.X5F8[{>x#߄AkeIJL.nz l|m'eHURLT5Lsz1Z@Ѻײд?EGw[mddKd4D_^^dIQ7/#Lpƒ[<U8%d!DiМQFtzKZ__5#מeU|T9*ǧSC lwh?<?y}Š$w2B"v!e܎$fίMHAՉMtńsWQFAxDD}"3dMV$B E7/'܈S?@un&>q?'rwb_ul\m ܟ%aG!w:[xQEs_'l4}?YD;u 3I_o1=)ZD V I "v^.DPTJ+ J?hlyLIdoߥy8OjFߨqqUD7ٗǬ)Xk ʦf ѻmtϭQC kMkD0O.ŗ Gjw[?ѧi _РCv.o&qp(x y'B pr)A4^R`#W= t %.X- qi WRq HZ \mޏBNUq L=C[H})Q~`P܎%5KkF_ )}$G&Ix NYI2G*ݕN T] 53J93AW:7`Y7T"yA(dϮ=z:师Dcul3Mg1,N>0Q6 t(%\8 Wzt&JN1PVBKtGdί~f7:x1|&W%ҧO"&F_FGP; p\6{e5ڢ_N0Z䋷6j>G`l6 ~$N0&c}\  }zKnpa|,+yl+SH`5rW1Lg:NAo 6>9Ct i쒭v^[QŗqhcC#,&jƥWK fx mn\ ^Phr&v2ceL|GkAhgAN uH$ų=H&[ %S!4 ו;|0ZPx\5^=NF'4 TTG8@7l:Lw"VBr x ъEGhu IO_ ]֏!hNf?e}g'9Xԏ:dl< {q; Ƌ;LÎHN+dC+}|ĢB椎tb(:,|L+h/f"mJdV@⪎]z^R0;'8:ZAN'{^Wuiϡf=nc1|C:H3j&zGE!s[ SkA`3=֪f++jLcC IDATƧa3-r=d(ץ{~&n:={P/%&k}*Xª /"HY(w14C۰. i;P9u˘@x?<,ՃA8Yl<?Osj"eZ@ W'ɇ8?msCogX@ǟ-ZuMќ1H_%VQM"VM[Z2TH"RI>A9EBmG}"ڮ8}2^'5@Eј@*7"ļU^{*C'ftTTO.>R#MiPz=d>q//ّ"4Vؙoyf E*)L|~y1tŬj:W2fC TH(^tiohOFGϬxotwB懰$˄1TB.F$onK" tڳh"pc3I̶`OsŽw {c#"Z;YkQ'}dG}DKx^0(h F5Jm`6"ҷ:,}HzF~x+Lv7=Z&0u{{ɝ-2ߊ3Mmj43h#|M`硻"5/H3Tp !)w5bdR\Nqآ;.GZwr~\N\q2K89D $#2t1$}/`Lq;K'ݓ]comT-Rk'4:*,ZAD(.޺Hp͍s>7ɬdvLR/ȜYCVAɤMpQ(}U3aij2,zpe U7R ֏&qS*A$9? vc !S[suqͨ-()domgF9璹퐼V%sNM&O_N2! '+!NVdekK,< %忿0\?=8uޠ$nl Mb]Nh8nVWFp$lwqmgcqbsm˰o'cdi3(wӓ4~y̍.ѹ.,?RLb%UPO*x97 AJQ "3_ƏM EkO_$*PM ge_RA*)C߽;T$wNa1_Й.c[7,}t.ALΩt'%ȯ7WɃԗ6 F+4wjO.ʡ7l[[U!ٓl|"S9A"CgYkE#0 ^A@g:""FT&ᨸ9DMe]d0zܦD):Z_ʒ٦m0V}%.| u]AJE %N J7{d ]3(1%^a"M*̺e9[]ú[#aiڄcT&^ Yy?TНИ 2?Wf'F.$Q?@{+ 7;=>}uNYjZ":C|?Eu$#eM/N—j4G<9 \RzӣNI`gac-~b)#Ő[EĈ};A 4 Қ{#bMOH4}N䣸<݃%fL͖M腫c*5N_ڊk _"ZY썈; 5 '*(!㎿xLjkg;2J/7N>e]0JObtBw$Oͱq@`PT #{˧i9&ȨβT. orI>ʶf@Fwo!Coˈ;K[jhQCKzd/VYy,NgZwL7߿ 1K`57K m͆PBt&7J,!6#'5$b62Bd3yFF2\.= [%b2_~9Eo_&0#b!3QoJ$~: waB]jIˊgacK) wƞĖew.Q5̚T:4K ._L"IMO1K( 7IIOklY(I٣weD$"}aAgQ PWNKФI9|&G5CbUe]%+lFE9M*EeT/yy3/'d`(nm8Y!0[ 85ه¹Wܿ>XHa}n@,FhS y_=Eh঵@x~Lv 5!ǻm_s5b5X?݈3]O۠fbT4[ "2U0Ke" z% Nx~zM脈o#斥ºS%=l)1w=h4[u:r]5²L}f œ(Z} WlC"XF5Cp 6>]5d #Xuyӗl9w#6tˊ\gmA5'œt*V4,ЛIݯ-"kwP='\C@=|֧NC)6 G+`|dKk:I M.E>oQ]3h-ؚC`5GtQG0V ~Y5ȗz$Ձ썈 iHmP%m,uo+-ffb,?=4vh/EʔBm\Z5b[mb9 TTMJr~QTFOz VBlM0rƥxv;kN_ҮF1w#lgtS Jfh'w2xdfk$h/Ŭt*:vnD/#}GDZN_ƹ7[ȗnZ*@_Ru'د?QN)[.Pof[pq?)s&[k%m0Uw ,Aۊ/;S_ 9N|o\z&B%߂;A\T{w˂Pjg7[# S*_c6#ޖmh-kJcX`祺`>m1λa+s,7/Sc$=jѷR(cÈ0BCR#@7X{DPc:,Ia"\7[[0YDv=\S)'ͣ4rl-yF^q؅M{ |C&fԛHuirbLbhAp%>NAG*^Z%#4"k;Ʊ>[&sU\ ALKEDޏ@4InV*׺.uIԏq9 UM"06\;RXU(Cspm<Rx |? CgԎHW1 Y3 C9Z!.38Tf0$]UA_hPߟpեDGT zGAue$vQVC#b>Tf:kio?B(P&pGm >J|=dhYu3\U;B ^ vC㯴 '[μ~9;a:an0Nޢ=qu;@1F)ꇷ:АUF{:ňY^ //Й-?`:v V]x,bɞU7P<ۢW:6k8"7-OA=ZM+1LJ(+WH?E(v^=0c$;U^ԝ.~dA|-bPUgh?Q!9UGޡ 1E f\U7*"Kkf*r`O!"lӚ1}u'XƬ>^RG^^?BuA6A\#)X'nafdG~4?[q$Ob9.*t+Cؕ,}^B&Yd ZMgL̅&V_X= Wn,.U;xߏ3hd&p1;V!%QBYDnDdpgp{ 5P-[pWw {:44>ةDK^xédѪ]ud{>h3$}w@x{&.̎`4Q$`l@KG)z%nEP+_xH_FDrs"7|3i*Wq=GG#BmD96InD}F-U} ZaI.IOe#2#R_z什MA`UQg_8Y %f!Hh6&% aC'lwv_" _C1Y͸|(%+rz=d.B_!]?Ka?$| ͌{11F*ww0kхt?HW)XCDǓ2aGRs"VQFEcH m2b?Dw{ a7喅{Bb5DyUL(PxH#t'4MqQUKeRCEE[;Jh"Zϑ꽻IlMEw hjсA@t4jju$6lZ$6"LNN%M:?#4@@ qHx)EVs HߚFw{>z_!Rbb /Xn-nZ; `'uuqQL0 qimӱ(  :ӐX+O:Kt+?626ğ(BhMkĿu2Q̒ք I%-JvlM0|+RU/]nĊl췉 vq`S$>&U~)$w#ɩ4fCx6``>: kbĪ!9Ȩ;Jh˫h##!9n&A l[J.ä}MS} Y Δ@ "Hz ò{[Է'0UjHR+rn+>CU>&{'[n֮ZCYP?L4p%,דl6qJ9XM;PP>œEԜ|{gT;2RDI&aD'":b 6j<4"TCeL|Z;qAgJg\{V0{e$Gm7Qng*|;'xd?Uϓ&Ja {4e)rtZ]+]GP.с ])UX ;!tsWJCKz><`X#[ؼC[8eJûjHoXV3:kBw~sOr{U(0p{S0M"U h5g=HpI%Ln,> DUU>5NӚf" ]7tvf /$= H=GQB+dIK fKDKɬt d ,YARi#wK.aɑ @FK ?zOCQk7LĦ4gDDoL1%[ _y<5#33|\NPɀa/Y0o:}/Ob "5h="lJ%ȈCXy~nYAFDtױs*1gK> i lU7=+6a]Bh=풄R/IфR$<&!c;J A!θG`F4$. HlywnhM,?nHEO s̢3ڂD(LhuA/#x: -/!!IA} g7arpvՃM^R0zB@`AkD@tD)7J~Koibmִ/}`MOy~ IDATٙΩG7(As($K7S*Ǧ77˒R͌;iJmzi/4L]`t> zpfU!5 "-ûzڇwT K]̚C"xwz Kڂ\S(5/򐕹u;#BRS7(*YYђy}"]ꪇd%`XHsg$Q%>0C͇yR/` KDrL󓔾'R!/ qq$4fA6hW :2udتw?(c$n\.O 6ђЅKX's%y7%,=ܲ4g,sGf%Q5ϡ dwC(^$@eRrM%pS*G3&КJ`o-X̦h-<?liGp ?5ZmNTđX}:S$ǏD[e5; 7\!|K*sŋ1%8+}_ׄ$Q $hOI=pS*NNk݈To(NhYC)Վhж`Y߾69xS(?D tNJХbKas6Te67alH1unMBlq$ Sx~)jv5ilii?BbIAAɪ^ޫ Ia1Z vANYSW&L(O}֞ >vV9t]ӗ)g+8;Xu_J^RprKe>0^RSvAz;o”TLOȃ>BM0r⟟}-bNYs^jPNڂꡈH >1{wP-LW}8tC>[V6箐G5:֞X~*ғIQh<:(2~DS Iz=g=c:fMGT Km̆g&KǨ] *6F'iq+ǫ\'$JʲLJUEm 7?@57)\eؗcz1pDb Y{/3T& miO]5OeP|P>a]Vcl :GbG|×or@}BM9/pr v^aë峛`wO QŬ9Rng t2RTo)A ŗI$Ƙc~݈֎zMCIDOr|u(1*O?"NIxJiN4Ճ)OdnDNkF#]Ɵ-%ĸ^Tщ,! QbXSHϻ,[! {w/K_,-0S7,'6h|l) Dq3 E4n"GCz oħ| =_ʇB􎂛Q #/ @eSDLT^3=RDcpʟ*2J55N{J=$0D'"TEtv4wsoRVA NhJXcZYV>`PFjNDtF{ǠF g47-MtR>ۨWu#m(x$`PhV(H"SWd;"@'`W~O޻hlҭ($kz72zs#Dc&OgNA(~FG2Dm|Ϣ7!{TFhcbL<<% T"WD?-{Ee?\άGAz $(9"4O$l=k4g=Q}fXVRȞ\%~uuܝ3[4wD6Ӳl6ɁBze#YU>mQ'XYy}Kr*%IogcoxFG`5&bFI3.g n._hmiH̶`}Gc V#dC1vKg1AThIzeƳ&/gx|VJqXc0V@)VO18қ؎}*CT )CdqXS_ls'M܂M{tӒiKǸ# s_f~ G3M/iJ_u$$?m[7q3p}ě %(tBR=B`hċCbG}6q?`8QN }ZW%QTpGa/:^eE l@H3٣]H$&IT h|bwz3=`  stV~j{Ci|jf=қ"?4Ipgo ֨||/Q|]YPz)FFkM[|z;c]u} m |[ؒ SU4SI +Jz rd3t$$MJ޴Fz%e eT}F'[/qRZj0|;#vpi &f'j >z'u"=2?YNO#VԞ7i"V 1}AjfY% 5FAiQ5>;OO0Mw3R ;UCD)zT\og"JUi7Rp$ =A:%ALUQGJ#9άn@]`zT="S?"ʤ0ʓG$Q|/wzNLCD~6Cc$Wi?Iw4D$h7Z!:ˉ'8~㿃b<eb,7d4% p!-FJgD+1G+5xwKOq]bPQvGU/S˴gS!uHc)Äbbw,tS#|&_Ȕ^~Q-P!hWfD N$ĮF o we{(lDly31-uLgu Ҳaׯ3n5tMκfDXQBՔO‹YZKY3?"t"Ka=[9WPsb7٭JT#mʗOerFJE ' Y%>Q(y)(щn-ʁGjCؓ#b&_i/O>#jCWgP03dG hfHt;g+溎3'4ºIdڋrb~bꓯt T}֑SG!őV­- dx:q_~?!B5Jj,i 7%;Vlcn4Wb$mbWtM~7/} 9"8A)G~HwJ^j2RzYWYK#)8Šca癐;bbtɾ+t}[~|*b&q_aIrR1 Al}v=7n37wK=߶M'zf$D[q.q&') BYe3[y#I߻*$w: D WQB't~FOc;G z9Fs)As̺|nl3Ƚz %L"${zl%l,hn +&ZB䳑0,kҳ{@jxǤ*QI{ֵG@/8f0-Y2yc]wgd]d&G>r +{DfΠr,=*?>|@^KKn=,S l܊ܓBTh.]5%?WUHm"3A+dU:-}}Ό0/'L|KJU$l0#W^\J o׷1,K+ͽ y$s^}.E~i-\ɄOL~eBUV5\ř]S GҒP%IB ⶎ."&'8^n|&l=T `4`?>%bwTCv3FK2{sk>K:ۇ/gsGYirδPfɗt=9_ N s!)`e鱇=AMLWh=)>>Cj'lG^lǤ!LQghKW:i#h^c~"j!tMz*J@._-V0mQMћwD?E#t:6/zqrEΨaYؒ~NǦ5uJL2,$W ] ҂RLate][A 4>~ Jb SWev2;FswRys9z' Q>G 1u gc4=Jcm3h>wdΉq:fY/-#'2d\zY1KgVgP$3v˵Y i}'8ҩJB  1T'mO?[ coz4fP!u?%eGgXyFqK&bP H0EoDpjzi.#R2|NopMiFD[[ۂVF>Ko""uOi$$jސa3:C:QB h|zX@ph(w{4X ??:!{nBGU3QA !{I _6 y6ܗ(fK#pT~D*2o gi{BR+~.!q_EnB)D@R;3_ưGχ{S44OMџ PZѨOx]ޣu%t@;::t$Ͼkl\߰:j;2Ht q̰oОӨ`qIZ#*ʭ4~!fze? IDATANXGd%$wgZ/}-̃Y>] Md@ f9v>?*C._;?r)\K~v'C5wUJuMVWD A$VHf')9GbB+8ap+73>;,*;,oi@l#E;D70nK1{ha2ob6iDCDl-Fş=Oo+:Yt~{fE@w*&-tKA|ܩ,n.,(@AMDcr-?w(O<%߰3`eP4x F@ 5|[ЙK  -z:~׷yC?yyk$6 jvbF^[&hC7~LTs2P#>BGlG 2i$뛋/]ߤ|8}VAۨ߳hp=A .N5HXY ʂ/E9%B0|:Gԧ̀|HxӞj jy7.E4˻aF%e}[ %la[?Im)X:z[úg}& JO)dJf4d.+@7Oc<;";׷| ?( Y-4OqK C&$[$8%k Zu8${Wʗg2MwOvEhM/yGd+߫aiU3N,M=4s[| 1:/$>kMpDY mLtBtU+oSL(e]VY'$pؕLh5$'unߑ A!hOl;@5tҎKqYx{MwvFݗ Vl2\ڲ%CI\ v ;ao&!ً0TLM}$ϦY})>bKo|6푿&Ǥ%sQkAG</b>c埝@2ٽp'˻Li6K\ |@RB7DUvzђ̫H7TewQ9/"{;eu՟#8W 17zQ&~Lz&dlQ&vhP&J&@zރ]Ô}Si=6B(pumX(XdVQBg>ѝ%{0*R\Hr['%^K)j {$}g-u)JʿvN&KϧђKiʔV~&^X$ZB'8mѝE>m ʔ5b֕PHZ Y{ŖD.ՌT5Ai)J_<#**|O"q"i: e2 Z"ֵ2=CK!P4 ʿve .sY ) n:ľĬKdf$ȡTY'/[hDz=@oho`,fg=}Ķ$aYc:џ.Yh}V,rO{9<SM'f`!ӫLMsa a֕ݽ;YWiX:e f]x}x-EsI j݀HAרa R îC?arfH샘dցػ7v< ~C47p˕^GlQB K.SG^@Lz-- $mDHHg2Hՙ<͟;M" & Q3244vψr={m WeHi-6}[';mu};8 D+Le[U4 o-l~0caf%d~ȕ0 [Gmh/atZϸ/yu]M7rt6Em pBiz1ލ[cT+Bsa{;m,l<j4Imm$ I P}b[ƗT{5H_:Af9lRm(o]!5!7.C#ק&-cWX1+)}  N9uQØ`A K7BoF/FDŽj`vT'ssCb{tPNbtCfUߒ!5%Τt{~%HOp}VذSL#i5,EԲx,%8p[NPhĆIhD(C azt ?ih*uFk I .Ls!F"`=?w+(p.h m+?3 L-:/{CFzgNfGh넶|1j$;i gfz*50'p4 '*Co >e"f{tb֊T+ A d`ID`;En#|6ZNjLYX( \ֽ rH#:֍~~<ΑmIk'a>0r_>Vf8PԤ3>F@%jH /;ĥymM}&4K*ӌS?!YaE#6j/0$Qط@zK6mLЙUQ}mZNU 0CjQg{ (s?C3?l=%nu&0bZ=hC1qWD  P`/",V~8 k?5C n2ϒ ^b(`2mA2cyR-:2zk>aa<; K}HgXSlHTk蕮 жDFBG .yg-f~Ȱ$8tg5!,FtmN@vC-k54_qʧX$Q.:A)b0wůk:F]sC}/M@ٓPS[/ b٫;.  !7'ٮWH.'S{{.(c r]Kf8NPԔ MEl>.l")LR;^ϧ0bIīMv7u4*é`EgdDKc74߮am9l;M΃X6ɜ51wi16-'ĦWVh.%eٿ 6umLBB {2$_0P}3!*@'N"uR]]'{SAgffv-X)B[/2-?0IU}O7 iZqڡB4l$;AT0F)= t>6$5K+;ˤ[4? {å;g47Ux~;k SxQ5tf5"QJYJBjK-dVB9K+!9G~5g',05Mo@tBKrebWh/¾ i^UL`y/N1[3\'Hk4?9؛ ;ejo@N&-}3SIm+؟ءXlQ{HTjR5g6 ~5٨y|CnMg %OJ|el`hȡ9P˰! c]' :cGZMэ٢z?aeZvd)wW/xo ),dn agU::FM)xLJ &}`_cx| we[3=O||fr bzd!PY֢ͧ͘+2J0cyJexbY٪Lh ΚG10UBj"Hکu I5Qe5%3C)Ԯ NGM_Yŋ*tl@ c eJ BG؄ig]4y%_h Z-0Vu1ћ| S{^kP{fG,Bϖ /ط_'e^Ȑ@Dpd@ČћOѯBoRŝ`0=wͲAOѱv$'k~-#F<9̕*k<̐tϢV< FyHUȫo1tg@fN&YlB*Qf*>%,)u+_L@/0I_ ;}ߐj$VH7? InC4T )CSد*Q%^@AL;bX^2 A%G8?( F}H8 ɆzBwZeBHz=SLK-6i8Wv/&;<͓r__0[_2ր:I)TLmVXA/l#2@p_U2 ?Q;2I[0 ѭ;(! @zb&J+@Q>ԅ>T|zK?ec̏\=:7T}GQ=CxH.e ܉C,"6 -ؗ,OZDx5gQ}>|[ON~C"(GJ=V7iy"X!wG7{R4沁6TmJIϫK)bh@ᚆѕ}R jG rwT+Xo$:}(B,6LU*x x!qHH =1ѷ;D&[tY"s[_5`eI%)X$u}ė bDHLi8| O5ƏS1zEw&S+dV}PThccl=&QڲK)jL9ҁ h+lGXuKHM钪G i>YCQFND*+7oˡ>%*G.| iIw=G ̦HtOzDsi{'b0*\ zD}vSĺBW_MpNN-VɿߥbI黂L¾_ۤs vC^ * oQi)tgUܣS*?:_]¥+ ~Vgi8nl4CK7$91TOh~r;cӝ4;R|/$Uꄶ`:i@AU%bW`8Zo'8*Z 1QUD[N*D'cFgLITٿj3L0k)zFiDJ@e3xWrZ e/=XDV(3Cʯ jG5bcwwDckm:ӎ$,Ƚ-H퀷`M1nX d쟸<3;ԞA0!5~Ƽ(dFE(G, qOsK"f7b1b@|bt agOZ G *_@Ӱ&ݧg ÊNbBzKE D2lG$x Zm8}Yχ-*o= j4eԃQDx߱!C(O!ľOwS,N&╷%%FHt&Pƥ~MّuSxF+ڬf$gW#XNhs6אݰms]g)]D$dJYHNP:RݝMnBKgPzGR)t G)Uz>fgM[߾}q H\@QdQr\+q<Ό**Wbx'uPcH06,;mA斊-R܍- "qW{g}Ժh#na Y]xs(%2K#ۈQ,J{JU\`Ilj' V+ڕcՊ PQ|h {x,jc飓0 >էZ"{xu,*/q6U=qضZM[ IDAT4{J/)Du`m]ceMZuٯ9̽좭Lޣ,y$64W$s7t⤿pAJtU\Pۺ+@9@+`עu'"eycLbTa)dXSQ2j[u@m?L @7?DJ 8*?Ml[:k-L*bUu_rtRĪPz}b6]bUX&/М-1~$s'p]s+$6Ϫ?H0ƪnnP#9H4G)C_'?$LPD>o"@o c;>6#C0z1F#s:l6ч2J/'jڐĦOĨnC"]d~Lx!&Rq eqMlLq̵>W6 -RVDkѦq,Mj'`PΘ=e4_Pi,9 o4Kc*J J-k8 }W?pKd9^Obٕ.iUSgm]_IwNcU2rv=Wٛ%_^jP"c7:-k0^g\HvhR&yQC6Qzm '{::\K+-V{, UV݀܍3_jj-o>P&+(ʍLl'byZDjYdzndP}O={t AlK*FI &Do;(^Ht]Rv][h91P҆Lb~"ߠ%2Z 0:)(y6{QFLk#*m?9QJEwj3=篣5s͈`Aidi4޵Ī*o z]ė _{ k ֊|k;tXc=&fC;˯ qoXIAavC̖ナ4U :fْ4Kf?E3ggV.'sKEo _ϞKD2"eku^됻 /mȝR(ɐĆB኏ oEXu^$+Q_b5gw?-ص p G89^̝=^-4GЕP?1ʈěR8~`f ݷw)(^9m2IP\Ԫ$]s"욌u4S埘g"=Tҟ9C*b5r<7= H[׉/p=EpHWOTm̎/_n k^sWdd606,Zˆ߼$qt[xA&pgQ}9/ưiW]'5'uvρăQ܍t7|A|$t%&js nA B]sRQ7j226{`oZ|N8TY^3D/ ox/ *0zLCgb4NIJ 6=sa:=WoX&v;;nFo `}u"/ȥ8JD"ҵ.nSdYxsa#A?n 0Q+Ip{CUa1Jr$6BK˸J_钸)y{@lMcY-L{mUFG+?uD_x]ԡQr>L/+Jl ڷ.Rȴ@ٻ*GJjɍޔNlGa:?yS{7)Up(sk<G?B)&_L=MX J ݷUS|5B5&p:#b*t/㐽ܢ~1۸%D{}joKe#B+AzmDXBk \%X OFv#$^1*%5OUPPJ-)\c&H0Y@h3 І2 Jl%Pѝ[SIb-{|X?}'Y𢡄UG FQjS6;}no-i:ݺG3TO))tr\ Rw{dN<^fH ݉l0:a,IhȰda T߾MmSBr= yFak)T???K^>jO^0!4luif,Ɖ}{NѮt7yuh4BBa@wq=O@JN#DnQGZ_4h=vP:FJ WqDQdPtUkpQTW~b0 FG+_:'34XZw2.ǭ;%̗KhIb۲&k͖o-X/exSS{!WHF rׇ߹hi.^$VQ/EK&Q:O%ܷ=Md^2|t~Y$eXÏ( *[63[;h_I\ mG/3iqJIfrͣz i3)&~5,W#RL\yȰAB)#;0|W<0b= lAf~MҟQojT|4%s!4ih ̫kUyjClaY?79 ޒ疻XǾY(O Hllmr0o*E)S*;:wB&~<3SEO$齃FM:ܔAÍ*P'ЫhL&?GMP$.1:\!w#;Rv1-$ZAu+ OHw52}O;8i cc|['uW!BMJ0qeD)9zyom;iҟ9#8}r~$ֆ <Sr#T/Bi JZե[.(#hݯ_>4"cv(qZb7觯߼7!&6tpA5\[LшD?\Gmi3v6{c6maf7 ro j$ 3'shA:pgx&0iw5WZ8 S=cڲ7'1Ag &%oAFwkw|1d.=x$~ַh/?u;xQZ',O?b ye{5>K$6/cR=Rlo'V*cHyoݩﶵh 6OcRDǞ$32ƔM{-P(8YjO(łt} EcİDCjYw`-2J'dFh4+;>1Ʀm!4Q'؝%e} ʁmv &J+6 f<`0`nCstma)d?B _|?gFXľgM2w#sߘm=Ū*6vQF[Ò`$8ekCW'|;?8.0KG%r%t>qUsE 6~,ĉ]B5Mn'.?F [.Vc$&yX}2`aP[u),DI'/][]W#qW-ۥVr.^"$q)I`+4erԏ%'/+n"k_i P^L;ae)q\w'{Y叟d4JayKT{~<{A顛/F})T ´m0Ǽ@%u?K] ]-`A*x_<5+TZ݂\*S߃^E:\\yMpZf>"3ۈsԏʿuV#?7GL/ď4 %9|?N}H Sh>`穐_G=hua7|V cP6`g ?~OKJf }ZdBX7 $|R/CM &^a K']g=amAw>F렂CCprԆDp&m܃0"?'KcIb}BqZZ]V/g 15W+ej%3h$=Jrݥy&~ZQό $J#hyÒ<˽qj .LXU$&՟XC'Ev8 4@P{Q?8Os!էT ;RNi%I^U?bYʯfN*?|+1B=9?"lͅϏ0WtJwu)֎trld?Q:+sL2k?١8 g9OCOݥu8> IzXw"K^\Oyүa08XĪg n(nƥXLx4A.FC8yw?{'n5WԞ&_J)34I%?[D v޻T(I] ?s_꒺lX]oH&Os^1te4fڭ IDAT]EReXSīPzu[8gKR/ėu7|&^0O^|Y?!]7V- v]a0烯ZFЃ:ZA`GD+1s R&fXn&Q` '$T|)\p П!R_}2)e)8yHٝ_7f{rꌇ> էY$e3r+~a3NU ~}Y( l!)e mt'9?u Տ4a#{4{g9Yc.:qDaObvCR~ϐxJP7Uds!}ќߖ* =avC$dT¿yeyCyoWT6&BQ=VU~Yqɐw%xdόTѭq0#ɄO<ri |";Cd4~kW}QBY2܊]XΣy`Pi =@qTpJ2;XJNڇ8e{]'Q$PkbCG12^ VHgOQ?&D&%AIc>ė1e:.*:~Qx𦖤ٛ la q7f飓$6+;u8,~&1 v}+L\Pʷʷ.r?\_krg4!Lzqp 3l~pn!]Ȇ6K`6z8KgF;I;N^n7`Œ/'ω'L`L ΂aƧKDm΂-(/A)͆zҫUnyc&|U(vD// J܍Ϝ"A̠АqXUż[_?2w]fђ}I|++}8KПV]KqC18:C. }tZ8( BZC1LT?}[94M1N)H :h.IQJc4{ pFmLd>wd>mc4H3WDq71֎Bw ݗ`Ҥ?_\IgB#vʈc4oa@l;radt_<_bvzyfUܬS d+IC:S$v]?WWq>X%ћNFtRLYe%$L-nҭߡ9٫14+eKNDdhbc>x0`M2[?(̋aK3>w R#>0I@D,q`#1ٗ#ϳ}@~ 4&d ![ ZI<K9Vw|g$N"Œt}w2!v'LE:.-#3^';'Y#ό1Vʛqe/F`}19vΣFIQՎkcuIqLZlz i2{fDi5, F$t ZuA8zu7)cw! qv !jݎ3k\?uyXu~D~w_aǓDyz\I'9, !f'8yAIڏ//%!>kr >{(Hh,̀qc (fz85ry⺮F!zAU=$DHmT/b|xl)^ g|zDv-&v ^ceJd&AG Cq\wV̕xFde $WC{udH?sfǧZ'DZWNmr@*jçb28Sq|qq2ߨT-rk $H\b^]Ee ;hx Yf8؎F G3wi=[BM"RCl,pQgT-j9~ikWYjN`t "Cv95`w~5f1Hn^N2F(u{g#N'`_pUyFfG:٢;6PW~P!Mdi(-N)\)oe ({TwHfi<L(B \U#Z Fs#?BcSyDM *RӶk =ԫIh+b# C]z!g)H<'v"YsK7Uw3=$Eʠ VU?u-C9TJ>_ vN8)BDy}$gPfhOL q22u֣LD8=<+ UdUI.RP׈ReˢT I Hq=)]f?9{S {@i|_wT'JΞo$B(R}gӸ}*NA%TUEs]JP1`5[#?4Mjgyۊ>bAI'8NsBRE8Q^䶆yķ nZSuP\ضS ]O&HWI(B5@غFbMKFϖ(ix)Q>N\6}I`)_BbMa0g4Ϣ&ҸwhV)"%+Ϟ%h3)O-cL:tS '@1/28Q-}fuI18dԜ'q6F.7+q$v ]{Į[$6C솼b,XhġγOK7* *b A̮;+T T]IJ`ܯ>L[41GbUC?d2PNv^q&mBUXO^Cv|_{NyB7O/c]]#j:]l[XrJ#:&plmj'A /xM37́i, 7 qh/7b j RZ c=ZD3. !vO'b؍6=gڨ7"_0LB" 3[r潵1{-rBC%|MFG`7FD#@?A&)NH^#$.Ę:6i:D9D$#?%gCPCډ4QKD$$3u!YbDPg1D.ANYo%6jbPZ PIz`ݍ/]'8u[ڇ΋)"3zkY GK?c}u~s1>5mm9d-?^Jag7_Л0al̔J{ 6ptL;*xİވCJh^E*(cSgl;wtfjD Il]Sg GM< 5>vO< af$@J23Ji8׺̷AHԀXbDLլM%{ ?180"d/n tdf;t6꒍]S9=V'Ws#:)|SeOcO $4j'C̦J:x=Ȍ!nJ>Gjj'BM 6٦]F]T5bp:* q#uX K H (k[`vĔ)4TGU2o>Tp&Š˞/. Pw'h)RBAR#%an>g, DpR%=xRTFC7Xu{&8ԪOgAE@7@84:h"5lRQ}7WЊ.`oϫkD}(P}0%'vbtG \7Efͷۤ6f }(XPW|Ei€z Cc>Oa\Þߨb6+}͠l5?" W.$G,Y085  rfx ABO/ZzAvie q:H{?4Ȳ3/g73o\jRT*-u7ju7CC Dxp301{zDӋPJ%զڗ3o};7dD}= XKP|2#7K9ܢYc3XI¹2ir#⇫XFmD'[F:pwP EIKEYv_$+_38F?bsH5cZ'mv~θ&XF!(g={^[Aͧ&8zyE/3΀:eFJtM `XS1ې{{Z///c SAi #H!BL@Ez"Xݢ:.d{${fϺtߋ -AP ~Wgw`4t GvV+Fs|yȠnPzs "ny`5*c.oL:.VU̡M|DoD26QU #N!=B2|bH]3tNL#[)Y7ǟ-shX_j,+0!x4c;fT^B7dHph&n /Oz"pпy㳄; >~(%`n2=!|[:|NP=DB_:~GA춤6%+$?/vΪ{Yܗ6X b+!<8'mEvL)k;JR R1} 3*P ׸ ]:p')uKv_ƈpM; 9_:>?/k?56Xa9 d\Z2(ę?zq5x ='B1UAh"NPG>qE|pJ&|cH5#?uUҫ:OX[*NQhRP'\r{M>/;NjEı\T~C%= ٛ:Q N$FkIJ^c, O'a:a1RdoQ N[5ÐBAFD)vRbQc5V~0O%)]^e!Ӣ* rū k?(zD\ƚJ} aZN50m[1XfuslDwA+fQ OfiCT+4?/YcP/+?c"'Ic1XGokyy P&b̦B$Sňp̀opb}bEH;($6d(A9O fuDMuY}Q;$ Ө^#;>'R=Q(wY>շ*gygxDd"}4\o_$(Ay2ƾ$HC[ ѧOK$x_bleGlQ 3IMDM/IzĞ$FvsH9u \Ү{?]`"~.f⚏h<KM$L'cpIIY@ܟ{LU{&!yx J>s_Aq$D LLH -iYbM)pBp}9E>'IZ5GϞg4fmt$Mr+YCKYC )%=3:8P?LLJ[X tIh{{fˮV{y{{O3&tU^:%>)Hül>􀙿a:t灌)NH5gr&=Hڞ/o~#GN"V֩Mn-RH`%I|e +͑xU5:)՘^WFcmX?;}cG=P "ȟ_e49A(З,-JKߌJDʇ *&W>30/d̦?P,P lMieݔrDKrqOH䑽b*ϕ?tT>n`Р?'c4DD|bMȃGD$X@E\ ?<s&F$%J 1 IDATYK;a-qJfv u]*9:TU½Yg.$(1?###zȷqUJERPԖRhM0>Nq{X`"-`&%^eҞ s4FMÄxwtTwHmKKrx0`5eSAu%L%+J&T._eI] s[E5wJP@Ѭ scf^|9®Ylq YB2&Ĩ.82,tg2W1lSJLP$$y$O x{Z <$V,>9Sڡ\Æ8&&>T'NGfRjr^Zɩ<7yb)ͨnuHN#8{`,㛎B86ɞ&{ʛOwy%ط7 $\x~ޜɰf=B*GR¸ .ZsH_t k$COv`$QG-L0:S:2Iat%" 9E*eOiO+'%FGvO<A XB&K;JFCP $j(y+V rdJN+f$#ws~N;)%Dkڠף^:n)uRuL=#3gF$+ĮΓ_$jB{h]siq)8g9[JXs }L!\<̒ĕ;gU9/ngЛv- u" a لʻR:=(q ymԶ%h{֩ş "}$ HC4DY7%\̊G>❑V(R)ft =}٪N3<]y81"sOcT~̣Б`L$gT$~Uȿ't`ރ%$Fh4+giz{aX?#ၩ! Ơ澆W~]z^Z &JW?"\ umnK|23=;i-EaJ!>q@+Äu람=h?Z xͯl~,KT` Q߼Nm<sP @5:? &*r):Glo]C;' ㊁yk*%uwL' )N?[d٦#,W?ڢyRgiHTd/OnJzlBBݳAbNPQ*Zs.; _!Q`p)Q ľ[M@#9HA";A}%!1]`L)#C 2vaLZ ½ѤJ6dR~#vaRKD*l|>M0IL2bD0K?Q+ ߏ>eO,4R(ODiZ'.J()")ȶYQ5F?= 1c‰M_1j`l8bae|G㐊;61Fòxhـhl}:dΓ&&eqd܏_U)rIS3o$/t 1Ɗ_ ,#Or3M(%l*KCE/a=/D' aoqK*͏ 1e(x(YԤ8#8ę1s|܃1 P}0% j[jr fL;ޥ9-}ZW#L%$Hh %{NHb$߶л )H8Ǽi".a&AF![>SG*mL5[C_B-2w?Y&)jTM ߑFa64k1I) b(Q& oh U5xe^#cGL  -xM5 _BF #c3~źcc}HE( Cs$_q&BɆh::S1I"/ چIlKs$UE F%OLi PLlL[ Zh1<9W>A6!LF+4D"})$(cܜuWl 2ڈ 9ԑ 2>(&#]}B*P bCވ@(8C Up=s&&A!EFS ^dI_~̭>A1E+>:GX[}XAx>A5CfLΧѯ,2<]%p{pZDhwB ixee$]7i[݄mp}V>}gG0>ZF| NQ2yZ't_] 3y($CV@z=$*3E_O0rz~|Hk ^X+ʮed99wPC[67 ՌQ=FHm'J_jBl&tIM\tL\ (\IT!gĀX$iz5$QQDŽ[64~-ļBYp e^gkF/F8NqxH3 ynZzScGkP6 *W]ܢN[-CA]rNF߽?8CzyD`ԍ 2P#oP^:PXr;Rg[M00fOak#Π( b$*+=&}L;Ehyû/8vb_-^RbYPDMBC Y 0 t5S*2 ΚBebv!dsBX&ȂqB"T-WZyb]I!_fI5YF0bn}-[.x>HbDOX8A{7Cs/y*n1u Y20즈ŗT#pu%&Ɇ e 1A0es,!j&%E7mCL*MG퓔 (6C(KF\XDD@A TϯM3*"R䚤>6GJ18*"jHel$B7Di^ɑވWyɿ0y]E-du!"[G8MvCŚ(fV9:3˸g5kXacaa=`O"L) M'WԀDKeoء5&M1$j9ǥ<sc\[ 2 {] Ph?#\ZFuVpR 5;~V15M7kbm[$ZB!H83V}Ixx( FGBfL w/iba PU$ {O׵P.Q@ 1j%z:ُ (fUh (eP2|C|Z"'zO\%e,xHp%VuL`oKskV/[(M) 2qv-M 1#v^SI;.ӿ|ݖNkSl;:^+%9Ήig*1VZ t$V2 wBWYĉX\'anQ%FM灧T$Uq*!̘q%aX&&؏4j_ f>Kc&NLdhM{S=ٔxq4ꆌ$'m:*SzWC0+ n-l 9#j9W9.ZD%Ss ̦j 瞎6P02r'>w'ZBh8m,ab;g5Rg';o\=YO|p:!Ȣ'ddCl;>LPjb%x T*C_~{C{oG|J7"ҏu*Kj7ُ81[U^4 ) 6nIoM 1VZ[00- ;rg5Z%2U?&ϜڏW3r=H޽FO#p` DFh}b0quJ޽Fs6ZD@:?Il:VS΁w-m6.!)A)t^GY7>؋S%DE }# +BLQ,veyr75b_fP'%T%+iF*h?͝ P19.FX g \0/)>S}K)ATD|roͰ& ~F%FI4Z}AxwkugS6(wtפ IKm"[CćX!uo_EWx}@DU4~>)э;X S)[ՓI*~:֖{JZr d\ل,{H]42hRH^0+"ɻװNJ;pJ*O!I;={C ҕۇs&= k[OpPr<CԶT+J7ϡ_{ȸj}h$'ܧ{DP,C )ވ`_1ѬK ͍e.h逌2xڥS\Y*4dSkh`?V,M<p*/^+ =ePo59$2msM)ж H 52Rwufb&Lrn@ܻGvW4ϟl뷫JPzW~Q98h,V]Z"̮k.nʱ5g?n v^(+r-g K=V"p$A<{ C -σ[{!C Jsn+6Rz5(C .T}1 UV{ymL^b!Qdv <͏!E^콫^bشʧw.0cGG f\2--6_P0OE Ox{># a^*Y8TdW1lB':"c@Q#ĒgGM ֊T&: a>¼l3^ʢ`ؕX@'dV#ҫ1֮|'qBw)Z$J NqQ؏WU c c=Nx ɱ)_hN烵c>Wk\ P`tVVRM6Q/Ȫvݛ>7.~4 ^|D B]Ol|>LHo&5_H^jĸ!b mpV2餾{fл>Mz l26Zlvwav oLk9*eSeTniaPF-DFj+>ZjʥD,P=_}f)]ک7{X&cxYJn(~<$>S0- .;| y'xB#X\ R=weж1*7 h#F.Bzi=Hⶉ6(y:J$=>~-M1gKam6~XùBojՐmC44 8kZLdtn-"uˤyJ:^}vhn).CjM {UcOCAv%sP#Nd(p {_̚ q-_w5Hv>[08GCL!њCSEZ/(.=sK1ֆA瘂ah5CS3UR5wMB`vប0FA5ľls6}BijpZweqE0=YVɬ& yڢqO@,Nkqa]FLޣg%o\g|v/\=+iJh |W;tNؒ; &ĕ!O긦[ z$qsœ=^, "A>i*W]"Cv_0j9j`J]wPiܩ +8NjK!31llU3L?-[ 5'gL{ås+L}¿y'k11Icubw|߾O8W؛YqvB\ g%J~j'hŨoO$}q#IGi2?{kChU~zh 7SM$ TWˡd~0:6}Ar6$ڷ/ʃtݳYjm2HSLR?oc7B:G-1V gfɮ{DoPX[*N*,URۂ<"54_D9{1AFz>18+*c-2{^aqVgJ}#Uk{-h̾bXOy{!j a>"-ViγDވ'% ~@tІXS))~Vc0Sc>j5u&yZ+ n~NnQ!.U(`aA0 X̱gWSih/ocE2[tOɮ$-/L3Y1[ aoO#ZK~:TM6}[mU֨>?o7R$u]ܵ4֕`X\JX'P K*OJ]nN#dQ?0%1z¨9rwI\%Hvsu"J7<k2q+ 2}hRw̦bޚC=-T:4dVl HtG-H*n5"ww$X6ц :3E&pK:v6NȬyX a͠|yُQvq xeԶhڠxkhZP2(DJ7чb8;Ps_g;+dowb-PvHz'd#L)XffȬPJݮa+ʹV9uFSyIWg4JZ(J6OQ$zc4w""C^M:DQz-dn#XMP*(!+P];UǼo\~cP$j$goXT+h;]->$6+e:GoB%C놆k+P S %AYs <⏏r+k GPDsJ[XoA ^ZQNQsGb}$h+4~*P%drՀ /5~.DB'-&yڟ\@ ko}NIT_FǗtx8D;0hawpvbԫ[áLq:`(6:&f/sFQmy/(B\ȓxr<]+q'r7/gH-:fcL3Q߸LJˑ:;NQ{EhơsxOΓ=v4镱f-0oKSCLF QG!i;E:%pOձ0:b\@ş(3/qa̸Q,}"RcJP|Ѥ 2%SH%8do't8N*uFU>WԮ ´NEY 2 {*<~P#֐_:s|\{4f7$ T/dw[2HoDX+$f\5x))APf&,~Uޏ+ nEvcC'f\g#Љ/#ְZ0{o$}y;22j%l5Ɯ  6`bXXְY53f1!2Bݒ[}OUwe}>RɞO #*|f쀣z"vb[>BG8UM4Y'ڤy4rꑺca87/&83%Ȅs_ m)TmgR?sr R 3-`MD g'}O%ݷZVID o$ld*_pN'B1N_m2N$4)c!D2zwh>S&Q:Z_((F%?.'Mzf]bs OTȿ- vw5QcH{L5 I`(oD7<@lQ$e5QyCJgPJ%c:e蝪` ׄk5w݅|Bϓ]_E!v^Ĉ. Rc18e4џU}k 0_BMhB`tuJE㘐Vݥ$7'iLٗHO͐ cs77p?(B0@i-gM)/%S +,;c-Rp}o9x$ceR-1b ]1{[0]%&N Z\ P9 XFLCO_|&zhp&Qiۛ(l߾|`SϷb: T^!i%}YC"ƮYBjQYwpsO+Heư*n2ob8?=Noi}${72wl"0~$B&!"1L8&6~jD9}BnԎB8IZl=g2`>!&-Cˣ"CBMoM%::0ymQ'T\ª&Hr Y4kTBN&&s$έ"l.w6kˡzőnGe!&XY'XNt? CeBh5U̠t^C Ñ8бl9&ry5y;,ָJo{@['Ug5"YbA T%.Q^(fh23 in/o1:8SM!5TOn MLӟUYhrE2zd'/;r )YRa0n>N`H>nosX`a /Q3 UAh>YwDZJ~$cW-v.SLs8EwI!Ht_?OO%KqnDĿ&CNDoDE~n)g+ U쉸Myq(^GIZ4}SAA/C+`lu0tpn} L~<$͇FzCiD#l= ymԦṿ$ [e$pq_{GfPe1)Wb׈3zNj]@T opt3.3-URʖ_x$e8n|kSIcTze ~ )%fؤ`)6NS*b\CLT/l<,ą=Pљզ -Ao_@mg &^8"kiQ:]sMU ,*fTxSUT+pqщ8Qy%s'`~-K(qV92,*Xw WvXSNT4i?sX ND/`P54kD{$&-k5G-yb#[|P~L ? F^R)ȧP| )a~4#R+8 rƣy?xP#\&sKbW[.ߍՄ1%vv>žct!q`7O pϷuRG>ΏH*%_aIAW>;'F_^!SٯDa(iNfe:?~"40xX#ӏ1#Ϗ^u qGɂҝe?B-Ul>D#k!g&zBQQb@"I=7!N^GwiYA2j&sŏɤ͒jGqc;9Y׉m DMVMv`$/HѾw54=ٌvIz?`X5qSj,~^zDŽ_\{jofYJk{ߓQ`G q=R^LsP|7Y:& 2:Q+ шXgwwVK>?&㔓3E6 ^!ΰjdQ-AIw3"JBlou6"jyבP߽?U!3HE5"Bߝ'`G8ۀ&a=M.A\ۨVǍb*m@tx̔k5VKrZ Vk[=ߛ5"z>nJ(bgIl_X`ql)nM6QoSD JO , .Q|ʡ(|/ $u/Vo$w# 0"JFHFHS'Qbk?xU y!% jN +ꠓMeRC"@l|l !jS 3I6)vM8Q 6Bj%bUv}֢WLn/أFD^-} ..H~0I@o |0I}X^Hnf'1:c9B%VQVjWo_ r-^}ǰx8GOl@bE!wM u5ԡĝXh3xÊ8_l>FDfNui/˴Pr9jȽkRH{hnJ!7|:NJЉІBEP;6*z27K#kA0'wU b*[25X _o\ -b8(֛ޕ7Gęvک aWGL} '/z*  #ͩ< 5:SI*qnWFGp̔zT}ND@Gv{};R" P-܈>wŎppD&K'|(ߝ}<9G'ٓѵ8[%HWF!ɯ]ru!蝘| e1{)s&Q&+Hn9|61T&4v ~?kSkЉ C?&}Cdڕ7)aU}foRYhO>~ `lk32$up!Y U,#ֱ,"NL|P$MK|b鯶i3 |D] &P)ԡDyaz/^h? C.Ù+#$P/QvS>;nT~"@Y!J}dwһ|HoX4ń nOK/:xI{Q<(mgbx6J1e#̆:i~x· IJSP3qqUќOg /eȿa$A:`5u)=ԟQi?R"y[.FL}c0\2 0+eFsf|L d7d&~4?=T7۔+(-1LD|vlBִ4F0U*ц'OF17=܌B?=Nj=CQ,`XfRù}C>|OVL 'Zd.yvaU´ ""G vV4>O5HlK4DP N_e'߉%e]D IDAT3bTxF.qY?|߿{ )ڝ:W%:dq InlL3t_KU1럚GRM켌{hm1VDVg }:Y)SsezHJh*h?&M̾BYw}8VQ& rBtTp ltO"KbY/M1xbZdX?uHƏi4+ҟXW]ZgxURv^2Lل#sjһ_fDsXY} Erjft|hBw| iS5 ("lTD#t"zrEX̊, =2 - Ťx  u1^aܜ 3߭1f}d &Pl:dOpN1~v@NbS1A_,\Y&\VCLU2`M/-j XI!}CG֧\Fn5!a s $7="%f%&޲7 8c0vg0%hՀ^ID>u:dA!B'>kIȿ-s%gĪBl.ň2qL.1, :}lo7uba;!aY^(2zl kO63؟%/%bkV xi=Ọ Wp-$fE2MBSeq͍K8хkB{yjl=3^wpRb-v-)dNهXLQ16MLLhV]D9nP/ ! 7iKSa x΁VA.B$MU6i8I1a}dnYdv5|U;3~>$;鑻"ә+M,ьCX~' V?=!y7'6nJ%&t6aْ~k2B?^4RSzzAι8[J.t :]xCYxIlc 9E~@$Fs>D@lS%vs(PDw$Ixso;4^rj :X%Ķ3- oIYY$ЌdYA.Fxh#yfH! Ϡo8|t9F6tۗQbܩOޢs E~HW*+;./R OH# .D>`6y>,B};pʔE(H* YSl࿕.`_$fDͩ zzfdߐDŽQ?T%^DC>IEa2pr %~1pq !4}C7]D`T,L~ۡvJl(dȘ `4ҳ=̳1OHDwx Q>qJ./j]!2-!O}OJ$MYx@((x1 jD;ŷV?"{2rhK)A>F`FX[l`y-:miycD(C|KCCʱɐģ=Y7?cc!hBzp.MHe7 Y.XxSs8c"dW},~G|3NbCBÞcvv+Ɓmڋc؇d)ߌhM$}f4å,Р!kq ׸oIQ3m!!  .c?2"]:9Ґ%0o] $ 1ɚ, -J $n5YXƣ&U?!:(.cXV_3y2`TpéA [g 57ԯ!&&B>غs+lXHZa*@}ȌJ}]dEE>e*`#Z R¯M*lpM}iK/D޲I]m=hyH FzSvRQi)$cl?n0Zi/E:7U/-e]+1vFʀKaz0&FCix7-jS͐rY64"K&^[)m  >^ /"|r2kp}rIrMuHF87 r; Qp|1|Y"*cj#bqV / ށi3FSƚJ[t*~'؏d*}6f)aXU(qiQiW]!,w%yUy\a=.1VOx$J `#v['^5[qV?CpcR (Nt1eUѼGZbXQ0I<ԡ^0Lyz*Yp>jOxH$>;Lbg1::Å,C NNɛ$";+#-,I}ȤQd0dXihsy/.!Wmo:,ƻNlY)7L̯%h?+' > Mw>J!l?`+p+KDbbH?T$[)`43!δKQA5Yo8x #vJS_ N>I1 Qoptu)0M[ 2^_g[V^EH]o1= jrb56$ >2?Y6} u^=zmP}?8Xҿ[BUBUL'^Q(,茟]jPݍ1>ɵ :2~Ge_8W[hMD Yu13 [14+#kgL*mvvdt]Y{A)ZFSދꪏt6ܮ vaybhC RR_e$˜U[QfM40} V)zsi,]SJo Կv$lΙvHT?ac ~p=EHJ]V|gDa7O5Uʇ ]ELΙ5bdbB*\? 2/_ "O|ɖ;TVHMA oX#{Bq_CObCd/"X5D&]J((YS rWE%Bauz@j ɗQ̦h4aL3dEM!֒+O~ /lEv%x] Be|Rk"KkJZ$qzW&0!WgN8Vb 6xN5Uø'}: TuOp0hC}ꤐ ) G6ȼ;$w}:U_ 6dr{CC"H^@躄VVMgO^ ~O>!?GԮBޝSQ"(%ߓʹ)gNJGw%vHH͈,@hwް֑oPM"›M8#c Ϯ%u7bKbՁLrUVVj-4C܅u]<.#ȶLHHҟ04@/+#Q_h*8F*~ްл7|g!YDY|Bw5`4"{i𙣤8kwQ5dE*dκ']ɩ"gQH#Vm_x/\Eu$MG975˸WHZV%ņڋ2O8Ŏvke1Rw6 9Jj-`/%ykqJΰRS%aCL7!UĚEBFHIh;=6Hܕ%_B@bæ"I_SE)&=őEdʆIb qz}]Hw%}+܊8#*m>cY{e e،%?1H,|:FY=&ƺ/$.l\Jy>7>l|d&4C_w(uϟFWQ*~eZR VfSԃѸUѸNXo5Ej)iN+F7/h 'GI;0Ib;IKY"EBm}:w#(.) [H>v ֺNѐ b1F:mk.}TB$L!^ 88KA1۪"6HfCLC&$DwɏT^?Gt2 ]me !hB's[b=TdC1Hޕ0U}84_L3H[Kuv@ar]G46/'JA."S?`zwnT7Jp)ɗ#F ;£$Cʧ]K*;Stufq*eCT)x 2N.pNfŰ!4̅*H`f蘔_ѝ7ԯ2M[|S!v_%0a8c 2%/d\΋ScR[c:⍅4OO ?PzyDAONG`w,ΠcϠ*F/aƫ#''!zԞ-R0x A `N)@?[%-o8Yop XJwBԛbrA{f[}L\&_Qui);ȹɋ[R)܌ {Rwu폎# ?~c9*+4ثm݀Y9&^axa4:2'w,'5"wBܤ̨SeBzGS`JI}MɲpLb-V%nok38մxu؛,gżۀz CtOMB"j$,Hƨ W\S-( ijwjGI./RzE|˦PQ|,-INA4w ouP8)1M4^R\>Q0F5CƮz4:_&唈<ޖI~ SYԡh줚[K[?'qK~* 2XW0C1p*bVΡ*hLJJފQ:c$~2FMi$5 i[b͈CBӟR1{ 5o~˨>ZA2k+H MȺ!'Hb"Z \`$EC:H|fӋ CVU9ب&up0$m%?sA)QBu0M PutނB^D#%Udŵw)RvON$$MrrȌ؊0ApcT1{͇eEAmJw-Y"sE߼AhЈ(\'#a#6OI[bk6rǤ'^fiiQJ' eBpgĽPJy hxB#HDD;&H[]s]!1 &ёdxGl RڧC7x2,18cLqr ^o2}޹ >O4Hx?lZ?TFB?.\IݓPW 䆆HQ^RA+.}*{ʷ385M`Ȯ ?Tz @lHX3>jGA {D}Uy) ?6Ơo2tgf*c>bRR } IDATDH 韚PUYҨ~IǰcN7~`PQdq}X0!ucpj,ΡqH'T$b!;m c(m 2ՈޔoFm"%w#d0=栶Ugqvy<xbHNw {;Km=6M.F En`|_%$UܭᄂѓM=T/ U1.]=B$ϿI)TD"?bTG7}s469oqmr:y) }z:C$b?Fy7 !/0mxFxz]$ZO4-"\JJ]n7FxFc_¬AӲPI4BSV;!Fo4DV֔suoO ku s:JXІĿ>ԫ-B3˄f,+lZ1fv@Ko&)ȪOk_,3lwҧvPCܡH?c\VTUz*lY0>n +u@R!fUYY:ڻI7"lWe𙓒௤&۷20ݎȿ+A.D1B([wg`uh<<J*ܼTYл]:$1NLfIټ,ȨTdt/+?[!~1 -Hp5R>e*9r _!yiВJ&fFv~8;GT 6ҋ>c2nC!5Tv0:.h+f$3;3#Nh R0vQ*[2jh4Mn\퀻bpܗ~d\VUq],k] e:-= eKuӕIrLZ*kW`TNwJliBKz.)ey 0vx㔡3Ȯ*_[?ܯ1X76ezŠ) GBMKTR+Qh)4Io@>^8@dGv[)ʏU 95kY$tD u3D g nZ2Z}w;=Jg伛|]D ayւzp%E%*R!4U!ZW#sm?9kvф췯2-]hZHF]Fdl vlNn*c-6>O%9VǸTE:>-*5%V^ZBɘ~>h4QJ?{Y%>(Pt Ms{+F{|GV9UUlʹYjTQHbD&,B>n4 c\&\{^ Ƣ*$A̪ 9$Q6q 3 g&;\DYxԚ*j*%=A7$ݘB% )Y1 rOcWC@wd=&Iԋ71jvR l`;O-4uEAz &Iz7&saA9B*UL}0v¬]ЛJi: …2mqIn0nmrH4iW}6o0}f{C>Ȓ9g Q1 8uA.& 4Z_pZ3:5KmOr# dl-{ -%vzn+=3љ`4ci dM bk56~1ž?]!e>y$q$%;8 A>-O$̹)\ Qm"Fe F;&o(tOx5Ď`#>g*?1nZgoz^oқ+t SiKڦy0Ewvև*5)fl sl-? TݰȊqKr14(\1't;O&]t a2f ~-DPcwdG\%+H^YR& 4wiךPHl B;(%7 t@gN.a_Pb"&/MBStv@s\wjFY V#N=?#,/~2}*ABB26WЕu`亃g^95] z?|@d3)?C(""?1((Ԏ(?Z&֙O ܼ@3MvNTbU!ZLfp* &yiM .?6EvLWPi7jᕲ!%> *4Ev$wW0_{ڧ+}^EzǧY)XOSqIU%݉iΫNDRQ!`B|^iN҉Ů|y~NLr,i[dcbixvk h}6+蝬ފhE?D<9A -Aa5B6?" :Jh`W:0Z0EAxz/&w']vXC̆Bdst  F/ <$,h[{TeBCzؒ(侹4dt~B_!Wnh}A?#vd4 JGøgRnDkA%5%,}vU4TˊI7TF/FOX+DĚJ4"S_S\h.*h]B =ox̒B{^ u h`}m9ɠ(|qg*2Nv ʯ@PĞ/ >ifۚMĞ]9r >}[&^cTf,nрELi06l$P*۟Dwb0f,o)7s1J$Ppžrl@_fg`c4؝=z)Az5v@$QMLH T B{j Fy&^!"}b.CyK2耵-$3(IK?EKJ*i-oKfdA<@)t$~0aPӴ>8zeRW6L0:~: ։AB!LHZ D/P;ߓ㳜2X9yxL먪Z:ZW`dIgn7*VDU +gyEE[4 D+ NY~֕#s0FfIa`7?&)\ܐԙ%ҫk^Vv@Xзt֕s&Z0TTT@uGvPdm26!E؛V#;Nv#<ܜ衼qrwBF{ E>v?ӽ38\U/Lٵ gdGB~vn^ ?ܐꇟW$ k@Ή^X YIT]~Hfœ~ؾ<dBzvgD9yרUveOnOE h-=1ڐp͇]o#FS>_z EAKUw\rz݋S] !oÖ<]í_˓\1ZIV7 #<.$X~feߜ/R|NofM!@D( Z T4UFp2F\ZJCC֕v2Er,#dIO@*/GƉ?d$|fkw8zǦL$m7=}O2:!7=q(7~h%͡GN.nǺ"VQ.b\_;GjR2aFҔ5IHVEy2o*"v}FKF9X dWDu%v ez"4cK LSi-n.֏dc 'H7u>ލ /J|X9-ZL{"Usx葨RwH{{h-7uAh*#̚TdVҌ_jAJZsPoTOhV_ 0ZP]PPA9zBzK/m bMz5K$cђ6-UB(+2[6I.k$=|[FH&ǎ㔴>ѝe4SF*|KT*j 15uRߎGGm3o8)7k6S;(YS ?PqZJ!"ט ]9Rj3Z1 1ABaF}r-$T􋷈5IC~ђU.)~]_Gv3蒔\21H},Oub5ƘtpoemA1; G]v+I |\W'h>F |[% 0k'5{YPԢ}dv0+~&ZM# rHTXLC̣3`<w{* 1e!Pþc庳`^e1=J/_OTb cQXr^TG9%r,+- pE*^2#Rq!C$Vi>1(m$AkRsRvJ4'n',73rv$QI&.I%Rؕ&Ju[= 3)EK/]!Om9PMZO57Z_zpB%܋gH[lZMl U Z/y[_vEAJɣ:S!z#]rnQӵk&(-n'r#I籀m_M t&%8M*O+&Dd|`J }Ѡ$?\QOee\]ΌF3 rK.Wo͌2 `Byhn %xӯ  `PJYiS*fC!0Hvۀ!/~Jvfgrgc{%$+zD et&&z^v&&$Swpa%7e?9^b5:* FoLK.`$ ~L9@|[N^ɤ?&I=5ւInPa|2Aϱ [ 0A鍐 VA78+ujO&'C|ꩽ2Gw E)7xy7/ēp~Fv bY`hLz Ww!bq7g0 镈޸JjHT)^Qhј?O*g+6$!i՘뫴Y)=3ҟeoƘ%I^OYm c~KBϜĮWQg*(TI4V=&sĪBbњ&KH8eYSPzMwF^wFxL3$jbi`E2xw3t?4c_~FG)^x5A!.j!Oe2gVDXJ1^yStf+3δ s?DB8%I IDAT|'f/+\ wЯcwT|[%LHiiz̼69 v5~܍>8Oi Ji ]/_Z>yعn:7{D `7RE[CFW "y4F Rz eQAgZGxۂĹ%:=FΐJKd|ԁguAe>Zq &2-e4Ҵģ>{$ ;6*?z9" I^(TsL~.[)h5eHI!ϗlU]ϡ~qLbO%sK,ԎLџP`r@?!= bIJ}ՍTКܼ;c!ͫd+b/g2 L+ZOctXK7/]'Q"!nF!ʆdo*dnw\NIlx Ȁu*%(Eu$hdݑ՝ Xqj(u˂NDDП{s}6> wSM0xȊbTW#2ͪTR/_E5QG%S~\´9S6xuZ`̍% mOZWhw6#4>:>2A "*g*LӤ<ɯ_ks;~қɓ͓O>{9{K{z'+|A-?D&eG*n FPMjП;}RkaRCߑ0VD~>M٥UH}&IʿiF/Ȝ^A$ԞyOL}QeV?WџўITehLNўB!{G!⣽zp~ւIhMA@oB} Z}S ZO*Z ;*JyB>F`+'bK#xFuc]`ZH`p08Hɪ n v50./25-ё5HP;fw@݉hS)Н1hL\DR^?( "y"sW*.t勘V{jemAR}vIGklqy:!}f}#)+=M{|71 nzyt$N$'24 g6sjM;!TA:dы-g?ID! ~u5a?&\(3DNY,(_^{|  0qKi7&~ S3N2({*Bt>0Mo.R0? M>$%?Sej *=6{ML·oa+U0F?OphM@m&,Bzm`g3PaY7{x57Dv? eQCٹׅI|̖E%}T݋{bσڽ*ƃHtcsUٳqq{+:٤%CglMIn=!Ast+/j$rQ%a $RZL;RbllZBOtˡ `0*HƘ;hvbCE T͠y(MsE~lXU0[=DlDDP Nڦ3bPTB &ŘM(mTbS_,{Wi_! c5bꇓi[ĶdHh(IĎِFbt 3^fiUj !$Z?0*bn}pQ &VGv#dqb:g]F:ֈ58XR c[%sZBDB@3eR|g@kAF?0 2LhE {H^J`@tNT0O0M=Fh*Pӛt%s/fߟ!X!w+7;l%Kvs5~(ƪY p-PC]ҧ4ݘ4>Q=_B{.&wKavHm$['Ryic HSIBg!KlԎI* Aj?#uO ٷurb9͠ sGv>MhhTt5 ;RWP/#菨u ulzւ"i9FT2+osS #Y"4>zGEKlɿ?]J?j[A)g {Tр5rb16O:$%ÃQ&uՀܭ$ l8V̘/nR?1AR!{CP>A<`0IxA?D8%FxHW0:!{KH6 P~iK LUP}Haqz =wz7 -6:(N@O߼w 7  V{.;y;t%"a 3h(/}cIJ7Vw!!X*'D#9̚jp ua6Z!HKRYъlCVgo bĠ 4GF !Jud\j`oFfe SR:ӕ 7 ,}0e׎˨'?B?Ol*J24Uw"D;DzК]{{?#?=6I҇etB |&6͘I~n/nȌӫ7]: KØȌGk_L6$dhBٕ+$b阮XR/?I0Vc{=E2+lԊB<¾vcĬ ܜ"R AJ9/М=coC>c6~JJk i]7+vĪ)U%<ܒȎ{@prn?U^2E )G ݊97`ƈPZINe|;A4;G:) ̚ڒ*\uvS$y_6KVG{_c/Xƭ|^y-ɲt,Z_UcMn٤L ɭ/=وi*yHI̚sQ1y/Kcݕ0IPTNJٴJ y1( D>OXo!n ]BW/R?[D 3v kULj̽L'*.Щi-R}tx|7 gJ-˨Z?&yuϐ](\P|e%)?Uul卷$-j}emnVu&Uxn?7-? t"3x(==W3s-1_ C)D;](iȮˌt/0`Nɨ_}5|[iy8>D~'fXV_!HDo>+^ހ2mP&T G<ʾC+/Y-ˮU$b0(xNg#u%J}4%T^q@ Dpn\7ԏ9cG&0MF KEK yNk $| }ZK [-z 'VI~휌XhCL)\̒C` m~on2xz !Hcv~ވEbۣ73"#~&;r{AwJVKG4)FzΣb-ni~0 Ԡu s N\mpOu uD_JR1"|3Aϻ)mS3KwJﱀ&hQ4?'  Q `h<hԹUD= Ll>#"mz OiՈ.L4}M{.WR 9ҚJk0fgGi%4q:''U['rEfi39I&s3I&>؞x-21%k7-)b#A 襺Uum6ű?0A.yb$h}- %Iϊʣ4 ALo&bTi~&dFeѷ;l~QTŁw*7JȰ%$(ѝHWdHuZ,:# 8W+K qwLo~%UCIA\,r(Y6B~J$#VySk.S;p !c9T7kқ}})Q^II/4ytތ:ub bqaUBLJک8F]ktO 2F ic Iو\7G{K$X(m8c&?8CX1|͟%ػsOViaDN`bieΜF{6Ddn4?6`\#*-zWU^BVk"㠬66괞%R9 IU:J~V[Qᔰ>}с UoJ$`  aP}hJxWjª=_&A>spgyVy(q,NUpr"T>b8nA!C0v`~ZJB]b̈*t\?dj%$)O($>^ŏCTaQ7%;>VeXɰy22ݣq&_cP?fR{DrUdd:؊F"r߾I@' J@XU nB(W>Y!D^.򔂳oQMG"0%/.h:EOTt*.!}yau`" ;<ܧ1Q.ju@U%=3=K+?NFeݠy("3c gfKTr ZSeM4Of0#(tvG5N6PBpp"Mܿ|_~B:GoRΰ]8Ĺ$rD` gR~,"% +`?^aw >g I)8ޥYHZ&b$1BHmќK5P36F~hە̫:h/&yKaxiu(|B`BxPg?G|q]UD9dzU{J}0 󖰦'}tGo>$~6NZr5؛A=o֯ IDATJ.ƺK{:O;pO8 C[5$ %; 0utLpIXLnؕ"F]&s[|&߁ H-,?+CNy8$!y[!\F* ؘ6D éʠXHqz ̣MQDe:'JH'R7#g0 /_ ㌊oh68*NCm$VTܽ%Ϊ>ٷ$÷fA|w^I FJp*82\őGN9<:+vY(kݹZU-!OW.uz]L:vVqS -!{5dG JikDND{)??K`DFDzM苍jjȝ>\?G%2jx;<7`jDbI"u)mF9z/\-19:B&lT m3ܖP+ ?`PքZ|pTzo ON+ HFh,/aimj]><{xyԈTz 41 ef_&~/tgd#7; 8@3<֚PV©C Y-[uAِS  l>قDhWp&=udlGG3_YzB} (@-? A4iք~j1U17E5͠'BڇyŽc|dXG.esW| ~Lrm+[.'iH'!gqq ߼/|Ke$Rϩ5WdKomb޵|^(HZ?"qS\bkϛx(qd+SQm(}{ԟ%0#rW$@[G!WD@~"!~F PrY{6ѳM:>OąHPDZ;&"Pؠj~\ܛى:_ O|um2 mRwM䯻|e{:hG`Jvl,GT[FUC[Gs>,4$a߾&Y@U jƒfVP" o_6 Yܞ Q$IUX`#=-R PԀg&LL>/#/rKw:>$قgOڧu] @]堨љ}H(̰-vCLG.`@902Uʿ:H&6CC0SHFÎޒ/1\ghR~y=X 5@G:X ]zk:>安IU>zυʸ15M+jb?Í_mЈfeB]8G$T[F`H2 zأ$BeE kl7iHWu4LI' oZ;q@仝yɚ%~B|M6VSp>V"qv1H2{g`M)do MXA*M֟chiBSп7;Q]ZwB 2R(S;ed}vfcI>|GEPNA1On=x=O(WQwpmzwM+7vIaIvcևmatzUٗߨ>["/,KIBZ7dBCؼ ]ך3 -(}d=cdwV o/{'>fP2p w!k//)%,Nj֑Ͻ%5[s(mV[,  Jyeml eUp2:>{L3|) yىMZ} am="dU-D@}@&a,bȱ82E$Kx7#MM&Z{TwCb(AvG QAIhTCj'tܔ4TQlAQD;;KKi_0q3 5b}CwZ%+D̰ c$BKHpқIDoF]ebf) S̀' E3_ QmuLI7 uWEdogEikXDh*͈y#CIX#Qa@gQ)Xg3r) ]^Lawϱi9܇ CbG ,{fC .H%'Hm@efav`{~M6D*~\RbQʧ5=, mV?Q $a-HF]ft_3py~n㄂~m֕'xyvg>:*@_f%Z7TYߚ`oqo EI ch*"zG}ԺJ[D{=֓pӛR(δD*|2"qSc h t 4[x1|< 2hiSgV! e/)܍y%Lp7؎&tf@?ɇHLi> $C'Gt#LE{#Hoũ@^2~@|$V'FqԇlM!5;Cҫ靚AE\+ȶQIPdfuj{H`6fP{!h5tX= }]M0̙xP:9}$ʱ?6ϣ9$iCؘ_!_^KHHq} ۹+7b[5btu;Jĩ2Z_LԎC|fWO kDt_=5djɁԴA Yoɼf57wty& Kvlj[L\Pm< K!N߮s? U(+r(JuLDL*u|v鬝cnF Ut#wST~ /r_8A|Ea;I`DF^)*E- Hޕ; Odu !uz@||A<bM+lF]ە&t}%=+]߾F(#1׺]>~l;Bp2k7u/<1 ZI$CcFDI$bN{XҟMl{{VdYDdG?&ELk!Hەf(_9oE|$'{t\&B6V3$KoS~X"2@ӈFzDag I 7PZybU(zY&Omh[}PC)]gkۙ&פ(Cŭ!-;wY(PCO#~`ttbt?(n^Mb6DȖϠb䆴WS(K&5D:kGS6L[no|j sfY2;Qg?!zNdv~6}W8ҝ[‘d6@Ӡ01A$6UaAz c8ױVj1!sK8Gs)ڿpeN9[w~&ĸM\"-#U&b/C)-jbĞUq2*ƹzniF*q ]yoHcy#H^Fv}6#@na$R$5X6^z7(P#h #8CGVhu=Q'^4@,',".h:HKAJâzmoV"wu;Ǯ3G+^^!ؓ²-%bT/8x wIԟ2qnDK%w urU1d7DF,h&K{쁛)|/O$P2FoiYٟ}`bְ/RVQ>F Z+#(;\@LGP{,`XքR&2'M:05bP ]X<:É÷p;,T*7b {MDxK Թ>_ik}h7Mzy /P*%EXG"(y#EM@u`V<6n!:u9vj2NN"^CU溂И=Sl YΧHVB3"(ӭHx1ٕ1[`ru0TZG3ˢ~(%VMHL^D{zhAk2rD_[8;}y[ U(}w, u>d/f_eC-pMgj'KBg_{އPbl-6_1_ Mh$V|Nuh/HFÅO!_5/^[¸`g79 F j5A3ܼ fK,?tj'$̦x'uW3kODTGyF# ɽ٦N~A]mz4d/4HNC{kTE8"_#5EݛE"5z80^we>(fpKSfD @qTB IDAT M5mQCehc}4wλCKv.J:4pjdhJ7/+fu Z4t0Q!V>,jqVש?KbϿ[!fi/L46N}ij>QɨK4?m0A="ip<›H'$ԾD0f`% {lk1q6%FG 7O{(=FBB*6QW .ӿѫTvn࿞ʲ줸T;ܫX4~2O/pc8~u(7cjW1$r@o֠mJėT#B}%KLkcD1rH^Qz&#GǟpIUqUlHk$lB3BVH,[EXiꒉ݌ GF>S3-AFl&!RnQ?C^LQ <"FAOCȾ>ROԘǫlLLOK*K1令5T=_#4a3MWxH!c] 9o"-A #~vSj$E!l^yui?U!4b )LAIlZ$tT[;%#E^#qF8?s*jOa8aY Q;nbd2BeeprSP3dt;lչ1&NnwJH)s4~rU+:GluY1[ak*| 5(^p4/vDDf\ͣ Hȴw @$/Q +2B]kcqǫPS`'IU0E.1U-ZZآF`pLΓ;1GGd1m 3CϕupNY KIw]RP?ǮH*j_Yy&ރ?5%܌DbM :;M{OXƮl>S?pS:"/>3Ml|r{g2Q ) 2ߟCgX}*Kʠ%]V_Q3ݱe \UV7B'h<[&ySc\4I_qPg:pf@혺9U,KLk16ߒɽ)xKŞQ\]r !E% L  NU.dt>73SĹpb ;y ]ڵ$n.Bo)wML3pXɄ,<t0*>Q$#M:q]dV{Eg"v]X՘u2:|ԣ}jKxXKjm7S^U1/?@$~LɃ7bX.Q+LM5X }+%fʹSIU,'b&0.356K85,4с~OdHH2Gep$Lj+xx$dw71.-dTqdEz&F &^EZ٢{'-oߐ֟_ub mW}ZG`ib-+7}z'dxdMpfhk-4Y{#%;]F);#/|"rX$ycsԓ?U_g`SBy!*`% V & ~QWɽfOد=-eҠ?6Cc"]8Bl6 MX-Pض¯l^ҬdH^R,NEzÑbIl74@ctCXB [z@ RT38Kj@I0/y/t}dMaoBD+MK |G.As6)k`9!Ěܨ;f+¹AԖtgc3ץ0Hw&nDꀯX$6B[qҷ x~&W2"K}|[,6NY-wN؞[PLBW'rZ UFk4 6o]kC_C+u ]=KĶ5P;^RhAq)k b%$O&1gHECh67QU)M0bMo Jr+"eW%-! 73m `,lؕ>9/o*!G =WĶ`.ڵ.{wy0~Aa5_ gX;9m]|Pr%!/B{qi)4XݐSbt bg"u϶mķ}p%,ɵɕCjڢ?CxK uiWCMaR~$V`хknϛ$=~?&}ukv#.H|z2Il7B{2v5dӤrŋ؈NGw=mD)|bkp)<_߹D' %6>#lXQ,r?y^z@8}d5 Nemh/q ţYDZ|b=(pQ-LH w.|Y^/yM՚hKsw`H>p©FMPc [ {]/mޜ~kOFx_ >Q#q퐿%LY-mPzf^R]9@T߹ѕL\gh_zw88%%kY[c{{qh˽?D BC1>{}g7bRܛmc+kv#]"s+gXISQ.I҃Gdo$YN+FeYDȰ62uO^cI`1yn Q^H0QIcP:XӇoJP3.)3vE? [Ϙ讔F$׽aΓzO1v)`RÕSQbAKaقC(p--_}^c]!f]=#b81ڂ(Vt~/%a2(h?p¯&S_܏]W-ODdoI9W>(rzuԒ:'.Ř pn%0 ߌcs/,JtuMK&ΚA(zu eX #v2Q' # "tuZDp )JfY9 Zcuyw=F^݀j$׽V̗^h=v3.A۠62ܿ7t1|D\4zqsӮ(Fq!m"~Bָ3$Ҙ^Gûbn]A:e/mkXc9hM9ٙ_c a侗aTk\J]pdI]IiGF'{WτWƨ^=9`dթ'E q x_ۉ'C:r}Wnb^+ʚf|-9 !Ӈp*>(_S!J:Pzs kT0nўwd2 _xϣ]DvpMseک ގN-F7aio")Or|w/Zݤ-=2==^;2E v$A}bcͰvhuzI]Y]2Ia#SDJ#G>H tXg-*t0[Mr<[Pi8 Ra>䡷ue1='?0r %io)4&,jbݗʨZ3y`$S%4x$CGZ=2lR7va4'mV]z.*C (3Yٴ(=aV#{WQ)$6o]wLh)R+}An9j4-Dט RVgԒN9X皳-\%yv\qBPgrĶ4Oko TN16[&Uҙ}t'Mm<}Jov+=@K_Jt8sPoJB I6vl }y/FFvMlG&vo" iNYhVH=@Ͻf v+a¦*["sӤ^~ -7Q$QZ.KXt?qA6*o sZ2A-KHRv]nľ0ܨcUqnmПwh`jFI'Gg}pV/_&qq'9NwgwM[/)mhv#yjb 'H9ku _u?pDs`X mizƝw@ '|I+/B!HY2"~&[OJqb? Aֱ)*MwcK=1(T=/xn1OFuIo4gt9Lҷ-TO~>#θ"D5~'K ht%B5p D??Ѻ::^&}!yW1KgKD\ :lZTO⥑ǪAN?nl3:JH#w[h4eS&"DNBy^1=L/V&FO0cIMO*bL]aoa0~>.U$B[wtF_êkLZf|@f)թ4㲏Wg)F7~$Kr5-htoGh쪢ӜSSĦ6t/ )K22P_ Kc]ܞFW(C-c}?M%i3YUGs IDATj&ڠTtʓ1Gxm ©)է"Rޢjc⫊欢4bLs >q#[(%\a0Wv T^F(\2KI3vVI5`n1i`(W'&ƼPl !Y/ pQzt*+3eoKw2Rbk`2fvƼM^)-37-N0l/eY"N|Gx)#S"fdH|21zyԚGsZz,BK3'Zh_]a3xi! p`]pOld?]z% B`d&G$7NK[JiGOd &2\0M#cd?ؖ owu*Gef|=sƬLWˊL~^&[<5)p?~W.N;hsӸYQҜ Q*KiNP^+wlNp:iqR!Snwp&ҳʯ<N^k'S,$2.*P  /fl Khu=Ͳ.~%"Hj :A<&EQ?u _<ޱ4;f>p]T'/)X}U Y(j[`DeEdz>̤ [>Z.7,l2#_ܨ`ŨR`{J6>h9oE$zlˑ'%2Y Ngqbئ|&Q&Sz}'vGTJox0g!bnҕh7.\C_Y#(Paܜ]鋢hY1wbqJŦ`5鑹ץ3jZCz_;ް(ʤȽ!ΛmisZC(\ ˟a?=#2DPWڨlfH6Q ^k4{R1MjԾqsm&:} ˧~,lNVa"/dؕ6/j$X`GnibuQ6NYT5q9%?P(`x A5f7Js'xDps#&Ic5oy)+s!Cd h/_=9ץCL{qdR눪c5|T.AFEzkK8xOBS c͏΂N9AhjK8:ϓ7(1[R"f!vM~? b{}ww ˉ Cp#roTI~ķ"b[="Oɵ^,牗s%.JSL]RCI|3?aϓ~)A]W}> &{K7bzm >s)Rʵ󁸺eOȸNDuY&`$-PKc䪨{M|+=!jt;|o_OT$ dS3"C^VQGuXK=y(r lLPcNdќ.wgntfeBCΨDhw]̬b+-d P?$kJjOyE<|) jG Wׇ׷rɪ?v?IqdV3-Q?~0nKFh_+nz>{[WI*WU[Y#H(ߩ__ЮǸKb.v#$BeQ>% (]OZ,KcU~&F(f;3ac#)y~Mw̟E-qЙ8|ENYi·}t !ho`A^*ъ0")1ɑh f3=%dh(z#?~[НIKoʡ5v`-r}&[N2w ?ab__%qqi)c$w2J$4wc"z)SxJx4{m%PQ"{L߿/Lb6i,f6 y2(|y>0K䘠kDFs$|t:?7T| 7olНZoaW'rR1B{T=İ15qo]B&Y6JEץg_"*ڦd)UZ#02Yn6򠩔i*'n]t?.2Hnhdo71|ѧ8vcT7 }x-P-$?nnTO1s`q.\gS$tzx3z 0. @oh0-7Pc,hÎIe 61 k[:A!qKx>Qlʽ (B) GDMM`J:Fq Uq^Ra;4jo=8J2Ch$7R6fdؕz݇l8݀)9SQGDF 2U'd~ 'I~+]Bȟb})v2ЈKtb^*"8ܥug_g$Cˀ N?/5Rtq]Uw-EmauS1jGķ"B[rkvDuCMZ.9thuh28Kl=-B3LoMCtg|KgN'͟K_Qķ lfߟCd1:A}A#$(^rɼ٠y 4Wf) 4Q\wON/>6/lj(ze01v17?K/i5"0ko 4vS}t6^5lj ;/xA툽!;C5^F1v% K>`64z#0|hÍ0/ci^V]hCT0jN2cR |$җ "d=?S?1JDwL#y3PdC1Г>{e_g`7'q 3|OLRyRQ(ۢ080ih,̋KQni3׈NǹfQN`:ZKB~ݴmҟ=1-b=/S|أdU=p*!I:'e]r6>6Z/9#Y"@`b5|J2=s jJ~Hh%QWo,v q͋Jي{mO 2wԊ/#zm:MRgWuw~k80׳t![>c^^é@xfUvQbX5;NZDr'JaN;d!R@#؁~N5fgt wv$і|SO?m C[{t=_4#WZ2dLk+`k˾%Eo8RGwaUCE19h'tP?R9&E&@?"tBF+bۊޢ>DD@n!BkKلEF4 ro`$==L0T⛂6R>$x 3cjإvA$q]NHȱ2w;$6|k8ύ{ (:EjPwg81MiOfeAuQ%vC[oaWCBCO$VVZ-IT 6/f?me, O*K4gcCtLBCuMw)rmՐϜ[ shji`hF0׏.>B %bD}0= 5s| |[m>4/*e qu-32~Ip6Fm?N:_ Wo ͗??yemXP= +Z$\]w44_hmsH|6}v.QJ&'mVqܜN7E$eUQ$Oi{Ϣ>>\#׽cLI/>gFLT? iu:; |s>$rBF/9x'6B#'^6]s[4hOJ6XHH8VlfD qxxїB_m4#dW4g;C3UeYs"=. s/$#aqp}7Z־OďiiCvN9.!{A޾ 3aCmA͛ *3uqW {r1P?mT9寮o3izbkK|@ *RhB"N'|#fbS Vjg-S'qvtp<?ǸF*t'ch}A񸅈`4/ L~FK68݉8䯵hb4~2"H-˔+ـz r{1ZFE=ҷuv_&"V]c>%v,XB~žk]* :Ħ{LgR# p+|Do4x80My^Dl˥5m1u$vIgH qD3T(B.B>5-Xzķ5j rBK#dҝL4g`Q]˜]vkl}`ˤzt# YM1. ʛ>$1cUq,>BrnP&աhK}xT$+Č EF2LIS k=)37<3CL7]$0:1Zp zIn\zG(Q8Ԟ/8$֥T+S0q0I) Fl ?3۟.0oVktOL rҝ~vƌ,<_oƅ|/p!ݲL{tdstb'׮}!nSTvasd#4("x(;D[F?~,\nE[,Ddw|boWqΈSHAE82~#1#{6cG= H4ȹ`74:;/)g- o41A<ܮ;'tۊdg2vMQɍIhDjbMZO ")nQ'؀f`ą=f|vmbJh/dA))̝&v[솠k VW~{M 9&fzx*F2EIpdOϑ{ӥ9̳k6 &#Wt`=% IDATݓsV' tG \~ sGf [Ī! 3hE$tH-uXOҿ>CxD~@NmG(f:l}0 Ө|ԙ^{IP^ִ ?9GiF.l[ĵJ`:Sg]h j~\:=d3}zzOd -45P)^Xy *s`#I" Ʀjtv!}S'zE4p6 ^̟[ P}ߺN+orE*O(q{1"c2+jw< ZPќVհΤidm;TGY?UĮ]VSSF?N:GbuhLkĦ[U))wpQr+;E&%LhL6 M`(BGmv"W$hTP<Npfc6J'(з-B3B-;nZϥ3(^#xxs=I]ڏO qmޅVP w1[ORzاxde]Ls~vNbUc ϝ)bDa`ڙ\4rtT;qJwH{C1 cE=o+guߓutC#c4)n)cO$s+Ft-P8 uiSo3]$򄉛׈?;4jD-;XfIL7qʸŐ<ƿMC0I5,bbJw"0B&~2f"1"Ps"9?Dޕu֎_(,)3(FMa}uLƟB΄7" EzX߸Dϡ1_,ƥ->wIl;V&+'do'seI;[4'T9ɬZ!:}|fKAMtwHh=ù_ggg0=d #i%gޠ; sc[=kWqs:c}hߌv(zDȍϜݳPKqEXRu*Z#bC2FkKj8Q+:3~AwiΌ(f;(Bih-t`c-d֚K8=K;^N$ ԒVdNlZ+;Ip\1W+v_#d g .9 > .CLCSZRjczobА6gNa%_ȵt';&Q-.}EN{& kxV꒾.tGC>Y TNWH>f7 ]H&dŌ@P=C:ɇ>qxؖ&85N͏tIDt/K.QP%i&MX$[ϘxI]i _#ψN{4%klt$F>LY+' 7|5Xem8yvPw4(/f"hp\1SH-XU8-Ӹ?I(9q٠_G=jVoH;s3h|nNxc~v8]koK~L$5(GyYGN';tG540[z>7ĝ"C#1 ?4H{2ͣ2뮮{sgc8 b)hAB0(AAʲlf8laA, E)E$@ s؝kgggvg;m2#2=uf{zr 262]#2eurLN vb˪pgQV:,?\-tg$83v;'Dn6 pcCV '>9@V#SZ{OZ1\f-[b$u/L{#>Bw(GD'a빴okR"KpXc s bz?r<<~b$d/&ݣ! ;Br;TUb=œ%i{!X!.J(scͧpZ:߫d4{E :>Kw|I>a>xS? ~@\G+jw&_'{Ktٿa_337 먡f63*ͥl!i3ŽJ)+F? _ّ][O=GkI39U~B30${JQUc5$IdO /_+tYO<#JɱUd耽!|?'39U&CURj;nAcWHD[>Y*IbKV:EUs9}ZxOa}% o`쯷K?&;zn(ф|Ӳ؛@$32\v 2lL.NW j. {Cps{& dHT1qN[R ۽ Bl4O2U%2U^+(f*g@AoQZbBA!?>Md/^:?,[mY$Uo? .jT,5#ϸ^͑x{ԓ-N0v5"C!cNp `_#D6 }MtMBf`E1E ]b>Q&(b}߼HXtu@AbXa-6>zѧy\e/J*I]c(tm'5]͟6<ܔRi2MT  Ѽx(;dzB<푽*hUȖkR3<>h\! rE!Š[X3(z?WCP|M 8n%~3&/!V;.=1$GJqm4# =BH(@i$BHUbER[yZAUJ}Dhi4Fe! J7UZDΑU*b44]?`?ITER'xy? r?4ެg4NZTY$:XYMlUHa60辊,b{(o\!^S잖U?Ryk`J'2ؗ>1[RQc0;1 YMWzԟ(yZY`EFOMb  T35M`fBPt=a{CQTw㞚ϩ8WJ48Z-<5:KPw[=]}^Y_@ptq,#4_z^JWϨoĨ΋96Dk wp:"*N2Rᬩ\gP6_i2ڈ4s5ސƙ*1Ḡ=G : =6@"uRd$5~oLP%4>:Kz=!aY(h4?2KވØY.k(vNi/E8E Kw6 o5L:OO<1 %^2<1g͓Ԫ$᝘[t?0[ps j*ϼß9W. L\AZ0i3*h Ad)BxyX\ܢ̠4bR |A( ^plg`#3>iH-]u_ IngPb3QOI{^%:9Į .}"TJg5tkQz[e}:-uȦ{ƃUu2FIP,)@?ϥ&ft4`ԥaE v%Ȝl^Gl-mjGW#/; \OAݬd>?# j[gZGcuU_a$Q|.Ec(\@Њ-̂˓rG3b!?P6Ls.N3tƊ=iZ5P( rmZ}ݥq*ˣW :'B]djN/ppi 'J{@0Ջ)[/6VBE.:` w$[2jًQ.` h=c:>3߼0StxѽLzSV9gP yzs8 mܽ!RtuvCHcfRf&t@!wCt.Z%b*ΝIDHzapwFMo8P)$cWd"Մ"ELLip{&#ӫylszlܩ};"wU;1^ kBj2]2F"RxrϬx4$*П6L'-Ä=7cDh ro<`RMP#fyB#P?w~Bhju׽_?g P+s\1c=%9>îitmrOg 4ّ'nIbV#F )B:lX5N- #+xm~Ocq@U!QmTי,vh>*`@_tNfjq~ :X{v̪BR8'?4:BFe__=^C{ -&aP7w&?X!wGa!z̃{ gb>#6cWkDug 8~JC+}qDlts1wwSb a>f0fc&9v ) m;uFO{ QFQdNsPNH!NL:[#t2kIA"F?Fd\%.Rd|fU.MSRԥw ESzEvȣ#[L{̐b}-.YJ۟T'gQ _8DO.ra"{ƨj"KY 7G>鐻,gq Ip`L0W۳Kt=f4ce ~#RwZtfOCN2*nY2jBva k(WG[y$wX۷F1 =l!}N7q”' r!T?ӟhΓsr=Ȩjbklj?xD2? nE\* !}u<3tsl}(S>ʣ-^A|ŧ?z+, =W5X'YbȨVfO4O(#mS_v(_qi,fU wbbCC5D,*C!"S DS( w#은mZrdGYAóT~M/e{6g42UIȮt5LB_B>G xy$kZ!jA[ػ y-}m.M4EP#ez:OW2ZXĺNv5ĹKr< Xe4AVοg(*0mOT(Lr ɴO<24[ Wߢ+(x%%-~!a8څD(NBDo:$0S)\4HLhjxdaD0Hai4J$"[fY4֮.FPc6#yiEnMݣ&zC꡿fMx/ Ӡ_ӳUmCso;?>AGt aPPxΝ&ztI?==Hu S7S(En97'Ī3TZτΨL|QϋwݫN 5W ,-駮[CA~GICF?1BðB`a&|t_3Ovʚ(wxu*ƃtgUjO?gI\a FEQ~yX&q~tFb{^R~0?ɓO8Pz[s( YKZG16 fbC'4Iԫk BT%U2uNUyG!Xq x= 5I81pazO+!A_,PtigSAic1<ߟNG<~>z;دC"Ŋ 3~'/so3 IDAT~'JMMӬ=`hߚ U҈T$Jr̴IdH]?2Ik>?m + ~N!wnc_èZws!cYҁN-dAʜit,)[6O O\_%G 'T4O!eb?jD$]2J` qKU( nQc8+ cBX23Z) FxMVcS%\E 3WDx0C fR:9Nl&(Ĺ-eo5Y{2#i*FJ5H3v575b'bQtBSC/L3OoF#/B z{Dtr=(RQJúEPgeujr OEЛщ SeZG&Q!h tBȬƘQYJ:S=3;`&MoNy-8 t/)Fa$wG\}]56ZmR" cey ki2P*Uvd6Z+$Zzrx$ ne"$*Ĩ=0%AV>v~9dB+t1Fԟ%7[ P=IM6URV@3oP|GltT4O:R~o"4'U3I!7؎6[r3H oAj(}Rv"aĮqwtfٛ4?9̻ %<'{b).QJⳗOsjvr}ݹ(fE1R 2AŴO&tH&3"neP5jNyF頊R;}eY1`ҤlUPGG%ݧ=H-M QmRCiq>&3_}FcfE<X2Gj5F Xk*DFB1Pb s,<+z^rtb /tGk<+LO6FS, W\ ɬE+o$fV*`00IFQ9s.^%fAJSm:^ 0:@pkQ闦HqyMfnʗ50i*cԁ@)҅m)jH Zttf6+,|MEo`f}qzK;YQv%NhHgj9!46Y_q2oqgk$4@10DD3dvN BfEds#]EXf뚼 1qcJԈO7hlڄ4C*>L4-;\ˆQlk(K4O*L;<,NC:Efb\cNFrh3zOr, Ф{&w?$LiX} =@rlᄁ$S kW/K+PZ6;O9}6 OLHңG0{T!ʙG!f7yTw{Gv8E>N]9+7ilӈrp%Ñ>D :#D{7w^rE)byÛ*$jml 'to|wН9BjCp'`'*8+:nq3:_ok';w4 VBk%3}HGt $:*(\hߥx^UV=rJJj6R^2 AM:- ||ڿ|}ެeWC(fn3)^D8Y+茟(|ETީ|(Th28Gܖi:J@0g1Fj I-+q*ا>'yL!L[hC{GELSY  # q:M?Dq %VLHOu{`'vpV= 47Fhk$'W;1*I&Bnra_7`8S~] -8Tux0?>[j.j$[mVS)can=B0Y0!•5 gmhC ?'$> QGu{,r&tJޑ*PXd,A֢&[/Z^-CΓ>4&1se߾+)BǮ( Xfth.럘֬BW$ithM#.X_wr%ybKHgUzOU;'7%^FЯ?$ yɐh a6eUܤ&Xu%9_ vUMD;1suQ#T -0|ڧ5w] .}XCuwmr88(+`3i|мБ`A.ћ5iXfR^ϓ7duy*~ɦ|!!0 -_i>+ic,[4MrpL, +a.0z!|@Evф'䯵1$c3{{ ?b|f7yJ,ԪqIj̯\4Uur]lM`EjE__^&ϒ^Ry`:EA#\^}ijě}y垚MލTf[e$#pi[^^ z/HL8w+UtJc}: 34H; RC27V4aJ`l HW/mNe\y) cW#j_<윱H˹ եXD1۵LZH"1j m {SX"SEI &RHNSwdAisM'?@&GG߰H&[1C RXe7fl#AR-'tfcئwXtysMG Zecas qgH4zOaT6 ~!"NtoC31٢a-pz4-V ֻ)=htG)6DNzhj2Q=!5gfʹz!KlqϤyL'N*c4n1Ko2xz__qp=䦃XjF:͗|#=.3BTEMȃ4kAg,:kb8[T/,m5i~̍ qV#y!a<2K17㥨4X[Cb"<: .'0V O 7ݘ39#ZFsxe$+;>]xdwP Iכ聄 :+&a.&.mr w|XJ'jpUJ6Å+K㵫)&uOBQr%IQ  BO} R} ReP?`.#`mk%V$e)G=hQj[#*}ϔ;;Yt!eg30!i4OƈmOd+-Ic>cZş)5Ð*Y1ꆄ;} {ĭjsDʻ?fCĤW.dPS9ԖN#kdg9_XW1W}0Zc / O {:n3ROnET.Ra 1 T! jv jDj[ékȬ$Hm+)83$d?sYs%Ṛ>BKOAsF[Lgu/6)ܒZ5HȬ8 n0=BB]WNc# } Jq gE#,@z@J]j.B+.aD'$w1w2~Vca<3T]N`JB|')q )^R0Z&žk2-UÏgG4O^k)ن'[] ޣuHُ߳rDL$Y`HVlP!0@׉}eE j0h[CpxR`Ubnڒ+KX-?^#2%ClĺBhǗ<})['=?K ZQErj܃Pi܍`eTDGRגvD[,w1^Jr,i{ժZ"iuPm8f[ÔB<' 1V})ԡrwc\o։/_G,a_ U/' +r\4z1^Ae;>͠f̎׉mRu&2 UaPϑ}vFGa8)}PJ]߃=Xtg!?}`lHՙِUÑ]Fa=1ty= p8TÐd׮>Z'올bo'尷o^ax|RF1Ê@5?XE5 fȰ"ױwB >B;ogT:JXCug +;>~FVpLx2 *C&%ڍ8)F1.V=كŤvcZK6lRusҩ FM qT2!IAǒU Qtz }dX%lF(_P ᙢ!P#;Fjx jIH;e!$Бws &:BH(Ub@󨾿)+W4߬i7%|-oʱ9PP7h l b/L~sWH]}dp#XM*1T"Pa0fH?TZ6L&RkXi "! UwL\@|7C2{<$q3{3M1Q3ShhIщL"ICsŠHбzNp⒜gvȮx R_Hm&HR.45H01{G|_O 0Dna5ߢ;^$i?6'' RR7},;4s7ww=r+32JEhP3kl{l0czh Ԁ BRRkUV*+̈}pߗw'*J`(EgFؽsy)^1!vh70ȄQ Vj4X7dS~QliA5V>}/tߪנW!|^2B:y{eyosD*4ֹ' ɞ%ސB./\AO_VK.s?b] jG%б#4J^A mFHE 2mRtMp7"1C*(Ǜ <5  Gc 7q>pH%qf5$5 +ޖydG,jNZ;w6W7Ppro}Z.Z&QpWVARAd(=e"^>byٍe ޽(kX^r9bm#^*ǪW (%sK(N17&U0A2JDEt]{0@Xas7gwZ{F|6戮*dnv$t5APRFh}UBP1Z^H]m椆#_^d'm7;@x:%;ΡLF/[qPqUⷶѱPm.}͕?~C\xV716l8yqt0RD 5p{8yDVDW\[.A!X@wl]7= 6;vAfs~=dᕷx~F(:2r{A5EMDIDZ>cIcDKE#1prQhv"MkB# *q =&%72&kφUA.͎(݋#o)>+_D(ZZzDFԝ5b =N"@ƾ6 R w*%aou /'sV~oB,;r|(Ŏ|@KmJ󠇓?Tpo˸PU%u@%Vc3P@lE:&F˥Dő@2 \Ӛނ}֘Ba1?LFK0srtWb@|`9($TD.Q~1R Z4t >cWL~9Cgש] vF QZ(^ʣsu5T[! ȕ>_/N>jGZCTExrO3t#Pd+P{ܔO!3Y/TQAmP8"Maz'3Mz4ihVTZByf?ޏЬFy ֆ%*̇Q[tG X*yA;AfUPKߪi&֊B⡜UG& Axgֆ|Tlȣo8(俩Ҟjf7`nD63Q&q4t"exppTRFh&^XatJDt] ߽H#{0;!=Fޡv(DRDcIOjK'h)ɇN@k:ZK!`g=]Xw-LtY)tFʂI6YȒF6N(3z@1GSH8#G?q>}ku:0E+ Ц&ک \OJ4+^OQ.ݠCȾNp_$$/sQm! n?svAS H>iO!\ER)Ik6>PB@l3I{b'^7ɑ ПG e[/3 tŜ0) qpd\ \SF\C^Cuhw#+TBvƠ bkHv0'\9-"F]bOg/Ӊ-JIzل~eB'[į`4I<^12)DB7x kÝ_U+7tQpnnҙH0c ܄ kl'xP] 2gN2Z>F{,` v_V7ukoP?SڍB|di3~ŏDq̎] J@V,8l/uT*v(WX.ov<:+C}ڔ1>.F˧P35[mtI GQ\Y1kCsYޤWe$U\A˫8V1 qLWU҈$nש,3ɹ>~ĠdlP7A'ΐN#tcW鯼z A⨬ĵ98?ݘ7߫rFXo9@t 2_É넪6>ZWP&,W[u|=w܅z; P)*C4 ppVVw]bv)R7wwyI{27V}$$j/CwXǽALE9~۫>tuYhoǘ۔Qr~_ r}n\N'g.CC_㨇Ɋwu-Y_@Feڽ;]y,zH\?mz[Fmn f%p벝@>&5J_ZD KdYV#81k<\~D˜]Jk]g9(SCv##]A<\Fq}ϥvgqwpƲp4oD˝]1. 7\Sƿ)^ZxgP`woU! WOh$IP\I(^Cq]s(?9nBo:sI Ed;?sϔ/32-zoׂƤ%o\7}VhNzNT`vܥ.+m( EEnRШuWf;|<:MRрgdȿϟ%TU,ʗ&?{A&g$cbU2a昁G2II8*KD9}ܰ$uœoۂX_/#7e_k\]7nEr}. i*G ܰ"_Β'vA: o:H%#.aԥ1Pf#Kta-s}67Dy3|P.  +#}PUF]վ5 LSY?+\!TU_l/E}a:|S q*ݙ=*P_okòܐ1y.){@WVw>;)TzOt Z:[!A8=1~\w?ZFG,S8*~O%P;#QT֘jCwD!Pc iߋi#:#:ɬ!1|?X =^[ ΁" E/Ոe~D&И2(Rq 4z תDK2 }}\Tf;l?-Bo&>bGdU xSY$O)qb K+hVqk^V6PQRQ?alRhHM#2>VB Ӝ։B!6[b3l="yWМѕA$DsҠ7m6~,!zE u2tP|e!}>2щrKV TgK,i>k=0"Qo27Wg!&twc x1Cc:Θĺ!܇j:޴)X*Cpamo_mȤhMTߐ=^X7[~%-9WLnE~jqceQ4I ]OSWWQփmBtsہBPP}"lll?W:7A$-L/) atV_hE͏P~zRA1IoH''H'=d)Z .޳{-ߕ# i8d/n!ø i8 !М*DzGJZUȦi.hXo;cIM߼r ^IV<#Ch w6{}| 7~e[rFwb)JYN`|OOMcV349s>vB8@d Pv֣;7T2@ ^̭>ަaS׶5y'PPa/r8'fЕbDOyXE&jGiMH~m@̺KPlldK=bQ9 $ БoDs^5C,oD#H%%30>>{ $Q씂R o{ sIW>SԱ:ኋy{ @(,n*}nox˞ָ &f4'TN{6>Svƌh:qATARvFZ[N|]|R)daK) ?A̚M~GV*s_Y_JXpVv' JFo>CFi*!>oԞ3,P?K=vI5.\KO1gCdG^t9`Ύ 2 B&Տ_X`]A Km ( zePMPog8 9qA<Sm* M԰ix EgL8z4 :?muCr )F"x<Q@_R;7$ؑi4gy-Z&vJ0HtFuG_C,!TʩsKMOS1+A&ugkw(A;AR=iat4߬\?4TNItwTl𚊲MЉ-&' #`T1'=]""5ڋ_q_?1tUИj$6Փu b*݂O&t&}Jw'dn=j3 Že:+1R4$}=ZiDMP|YVQ{=asX>qY@WC.Iu>;rqc#[%4E_?$(|mqɧ@ra@wiMOftQo??u-ct<3)/w`j*EPğ_B1 đ}&"T ;f ИUk6Qtihy#1Ⱦ֠=C?'m֤bQh/ ugLrAqo>0Don>c7/o/FMnٳddhNtSL;?q0Bx(AGohؒxsAqȅH>am;}]>=Gu`.R8%ђ(O0I2pҷltMr LVI~2Mt9=.'ct͏&:D^J[XZOq,hdn) /[T@uX` p{&VQl<-%hHߵEq,) t;ɢrRڂΉ>R~ȤI|{o4!7.Dj,|9= !X\۰0|`r߀?H')]oh+zM.j8+wdѯnw!;J QyH 6~tP3uW"cbΨN(>j&47B7`ae~ 0!ja!ϜU.j*..{ G%o#p&ڽUnL5?V"No"8? Ve`5aR3BE7}5)*?f LUv4 ZdzliMdn#8iНU*O>]pΑݢEkG%R1 "?&!kWXs $}\MGJ,og[R byMnǬ[ O!\q CZ"@{`btUmԻc OtIQuFH\mOBtyhpbguԾ<e%'F#y8/3%;Q% ݍC~̤_(D//X(%4%F!5MBã$%i v=-U 8V7-i&Xk2OSM(^5b)2x7Q =*ֆQ顴{8Y7ϖ.7zj_d>s>c]$ Nh揕Y6~q5ÙGdmn}-e3:B@xIUpK&ljS IOtA {c1a%{ (ͳ6Տ=7z>b+DsGz }SC`w9K a)ܺ50蜱f`.>0C TϻKYXwbb_Kx|\+/R?¸C IDATt'̲Nj10Lm|oˊx˨D-@|k*SNPM>*ɷt.lP?Pg*= m1L|-[FFhqtNH) vTP@xM2QR6.tHztaNF%9-AlAf{}~0IxCW7,霜JH< JbN7`,2`ur/=@O-cs|fx[{Ate9v>HL4hOa=q L!O5አ53M=D_-J EL5FP?+1{e(kGd"$/0`'5~ r}=dޛzs ?Cle4OcFÉAx+̚O }Oe4js~|'''Lza.vOPܔo.XM:oߒtA]E//KuÓ'8w 0h=τTOkhI>0; ˿|Ox{cg&~ȓ̀δ+M0Rhl GkD.|*'(m T}rP;"7,Xp.V%P'D%}F4 ="1<M"5Ok0Q$; /8q}" /z{D\hpiO  ? W%b^Qi b*jK*/ ^i/G>dZ%yOI^ a{۲l  q g3h(,|,IqB8ȉkA(#I]R8r,3K/?f"޸=R6`P\)V}} RBG=>}"\{}q[}?9cXƝUZw f"sg%I@xZAO`LV4Mx)˪XRlۂƔ.Ż+yג3NOo 4"Iن)1tƙU񃨍."j*1߇:.>^1XoP];(A7-YSQj{ lk4tⷪ&T?u# Jפ$#8dA& _x/%^ל ޻?&nXaSt '*M^JIrao4\ھ%qv Ņô Oi ^&8wN1p!^[S;(rزGS 6_13:DVcVMo8 cہ|=z$"킬J(|qp3.I͓[2"l3Kˋ2cX>NGB4f-6Inht_["{yBT>+3h}]L "&; z}s0FtR OfiBa}1e{t*?-* j?' ;w1Hɿ[ų25~f !UTiHrL~F6eS'6%*.xc}?1I&.(t+Rm)Z~)P~eqkђH zE^_'Xů5MivpOH6lh$C}'5ޞ.!K Z@ز96hNrc l$s-B{'nMI5!KeRV^?ᡪE~Suy[OXj/eWN'lRwh6sq%Y$?h5}j7=nRLljD;=:kQr Z}\)ٍuɵ?ЩFxuOl1zx]^hl1]g(" Vh3j%-^U8J'X|Ota("d NE(cm#a}>\a{;r3IXu w)$j)wwH,;%9*[1ƾ'yO ҷIPU@t$>[ ZO52r^ oyIhm`6qۺjѵ7$}.#]ry'e0H"ǖ5@x]h'sˌڠ{VmjsN[{G6I;[~*ãu>ű #&l+G<8k }S\+3ŕ/Ɓ.x $v%u19+_q)lhwL'9 X.~_%u[!1U'; 2bç3S#[̵Oل%8DKe2|F.VClPD,^H%-oW21iBhnKJa&֓spkx܃} '۔ޕ}ܷ5O 8fSG^cÕw tq[+CiBsDkı锝zO|RUL.nR#X]lhbxܵ>NDS06 @5)q.z7 v7[r\!)e01Vq,(qFab@ @=Ћ=Sۯ[;5O@@gD#7LI-UTFDg@в}ԕچNdӧ;*3 NҗULie5Dt l!J"GcVxDl1!Z!wBWV0=}5B Hwq- @C1<j/]M/ϣ9m/BN:LhAQ wz""c)Ew|}̊Z p,nN*O$ Ju.^HAbޣ7@!rנt@"ӟhr\I7Ѓ,?="( &GrAG,oe$&SY ݜF{%1OgeB-ց4I}›p1닸ϟĜ ybAL%Cn됒I.>>&%y 5<x.!\S0Hj$&{pUڪKtl U6b@izY^} )d~wD)OKS5`PFARL e HEܽcI=~۾?ƹ0_nu&BwŨ )BFEDV]\SL%Gaqo-V>1Y֌'# l.ӣߤy^ɥWiL]{ 7[ Gv+5=S:Lu-l2!梶dwP5N9JcO s?n6Ƌ gg:a."jG0r=b+[!|/l 1l2B_nH=Mz4DK2kQ(")俩`q{n#z Sޱ{2ZW3dn-Tr!|ڏ4&P =i7 ~}ލ J"%YRر+)bO͌S*8ĎJM{FȒ[dCK,$Kh4z~Ͻg?6.9Odhgy{cSĿ]eE- |,5#\_djktM]n^7C}JѶu(l[$Uf7M?F7/gq3 A`Á`go)M«Rɤ y dˠMaQF"Ki ܡdC>ke\ž-Y4I(Q`bVȧ]j_`*+ oOHpԥgiTCT-fg%LUKpV(i1jG)EEL}VLV@㈀TD*j[qĖI0Q(`,iC#(Ltd\"=fyq [?9X8-vA_t;u(4t3d'&mC '1m0/椛!">_Jh r # ΄b9G<ɐv$?Qd44B3c;4Y̼p_Uf,!j,K ]p H]Y!fKuM>3JgzD2k60fM!GyC2fIVJufp&l 1c\!|LgΒ%=cl|Dl/!V`ЙI׮(gg[E `~Ntqee`:7!OLr?(_p6b{C22_8edzΚHPg\:9(_^֑F'FJL{V+i !Ak_ 6K8webKpN;Ě L)W(!Yb/44vʥ:>VMfT\ &s1JO9+0!K~{A~ƏT69/u5'2N̋uJwCD(f2$ <#(H3{ ʚTN=CR)J7ӔA『Pz>k곫@!nBg&Ej L3ŚJwz%+PVX:61^#K=QD٧5kuT a!"7gRo1M )ՈZc1oEuP$Z:p ?c$ZȐ0P?~?#®19ܜе TIޅ#Kyl1=i% Auf7IP9~"x*zK~t,cR)wMͭ{t=b,RwuNaɽH靄mب}}ZF">Q6,Wꓴ| T<~v˦PvRK}/˭_ |[:^$)υ*,e2 7(fp<bޘAy#O{< J9Δ"ocRC,dyg~ ̀`)YT5bR#U4>|ʛdM5y'K>mxNtzjL^4$4ث*&IkwLˊ$ke>BK+{(]_TkR:au*\eIԾLF;!)WDٽ &!jbHA(ߊ T2)\w#vU/E 3OV0~ڔpmf nfY0K} +a`!s֩]P]f??Y oe2_UYTQ7ҹ$:bW! [ѭ ѭ؛ ˲6EV ߸k'z0o6;CRH.؅Z'ĒpX?1zܛh;BŻ_.~.t͇IP?;Fv#Zg")Oy7$-%$WoώSwVeouЄQUa4Ǔ} k~5&?JoLhJSg[dLfE RL9PZՉ>境S*Z_vLcߟi刊]^!#ɕgzh*L~NK(~gG#2IG,MĆWCr<ϓFh=?#if d(ߐB;7']&)}S\&ukC+Ec_*)Н4!bq''P3T̀Qv1'=nS*֒U(Ć #L= ї4Z AN@O.Q L +!y|n goR-[`(=^K1*^Z z"-'qKn%A:!Y#J߷Nctm=H*MʂD&Hu 6)-BAjDd&MlVz-_$s'LAX `U +XESV%]8klj-}{]!##J"pWNtFe+(㣄 'AF;c3lTPdV,Lҙ6.ijc1ЖV鉯,%淮ZwH. z*霘f̊ՀnIh R ?3EXJЮgh&fх׊eH$-<+*Ĉ! ]vPbnQn7Z3ii7x|Jh(h oYHȠ$kR*D]3!:'bĽ ̓HWbh^ d' sd-:+9:WuZl&a6I1,Kh;:{?m$ܰ"(@mRҬ)eq i ,Mj4q 9"+!zwЌ\ͣuR79r"$RB$R@Er20t#$Q>c 6FퟪJш$:47Xw-XO% "+ov0ie-*-`DL4iʯXI lދ42:Bz&jz""=%.4oTOvpZ)Dէa5@x&oDFo6A(D`)mFtF,NtB$4fKUDC'QSy4{d"u{|5c&!ݝ4ǃ!ҶbsG#);;6C#mIXX45Ag+g$:Y?Jp4xbJ84'K'^V;0?_$L42: Z_JbL m=^ZKvޥuQ\Hkȵyޞy]&MXH"]a&Ak+d6V?a6Tp~'c{ FaR}Na6 9;Ɇ93iJ­.Bhϐg ! ml41c}cd$BXT-?4x#y~&x?(=;ʦ[X@;`"G br>h;}K-RaMT9^^N"[#gw̄Gd&*g\* ߏo& -VN-Tw{Pze.uʷB'BW%b!.lsLbJH>KdIĠ3-}p\ޓyQoE#hItpssPy#)b|h*;89XIdIN!YEfXNV5u#66hWgJuYeXfα[q&O!Uzߪ?f]VeeMk}Pgα}&ѝJhyI{*[> V#B I7oAZfD3->=!՜JnARh%'uT*7Oډ 0m_:j9k,ϳ0ce_ŰeV} JLk-AkFw€2z0ͳz s>g3G,R1&$"?8ALn'_av7+ϽCb[*TxLi /?<%J{TVJi} F"<BKR3ljl0Я̣@f1Wֈ-!Z2/%)_\+2wګXSX/]^v#Y@'F]] ͖/;X^gH@Fғww2c,Rq!\ҙT5^E.$c'ʷW6 C{@ժU”TMoAy$~WGL:L.xeԦۭqޗC=+ZݨnB@^Q=0nLUO*ƪİ5̫ qylm/R2Z2޵Xi9s5G0t-/fhWqȼxȖΩ0orZ sɧ0k>F;+eg+77r2g ?&e=)-kc>]Olַ{>G'Lxexrlʼ]:Kz]Z:Uǚ&b[\A qd8Z?!ʮ-X{9)"OO:,U?SanٴOzKid]b** uN%he4e#Zb6fpKʻ,+]OUq Z&`_EhZȅ.;TݒՈyN*YZMypጪr 1HY$ ]i齇u- #?5K 17#nK}HGhMZ! jDv+=աO!Ȉ]><,[3ڱna%E5>1. S < T1bݞ/FF[:ɜMfoFdMlga"+Ts]9ncW!;tM$}0c+Zjmo ®VSЬf3/+L#h.OHv/CX9$4O{U.-_nMX]LrɵC>,FRBޠFH"EPIYߔ]o7JT|+-A8*DO5ͫ5Z5O7cTIWݛ!wuHÏ;S Ti-ksudLM?ә xggtR8tM2,j/\2:!*YOAcC*/\!;/Uq\ϭ:,/XZHjsNkdۏ,o]bg,zUlIV7sgdw*~2~hG%wyVeZ$VAE:=`:J>"zS lX$C1̚Oj;&(te~R-!#**G Q?Ӈ9`/lA A9;{)T}zL=ř4Q=Ȇ9HfFIl~WMLOou, g)I.)T/&4YbY^_Gy%-0[1AVL(x`R@{VA oIegF}, cLƿVƘHt!J)  DpGUGA 2kʡEJ$`媘[};/s8,/0)/"miʢ)֏HHks8؋($ {*qbd E0[56-Il@on@hΡN8+̈b|"ڳ7:}h8j(,h`S)bC6ĠPNDMA(X5N/!4UD mf#R42"Og[-_Hc$Lmshը=cdU jg+Xk1t#ڑ xh}Hi,] $]owbFLSwI1ChV7v:ha)7~h]>p}-aPHcNsxK\4A1޸%ձ1ZGҌ\tz#:͐D~B2Ui0=!x2 =":1Fȗ(z7hD;5jE@_ѧQt(8&+ѫhd\FCLJ1.`yXs5;$誂O0U{GMh=7(1 ߾iRXfĺT^PEF^ݓG)-."SOH6΂T3iNLNL+{H $OE.m==FtOO.@{m$  &P}c OJUc]Zb|*)IUPamRNyѺ>dhIMtB,c>9C>=Uܣūx' *H8G=+_y禈SaJEa~ X db( f'"yj/An1vD)]( P\evL”J#ݍQ%D ڥwh;man@i5$u,zO&Dё) +Wdw E0+Anllz2\!|,UlwHPGiJ;G48* "pfR()+.z_V4&a\?1:L^"L\ aJި/FbEbwUYĎ8+<[@rm:BoH'a{1NP"[eG}DDLvQPq$UɿU2>͑hAJْzӂ>o21ӂJ+%0K GCyX6`ĪWcYwLb!&lXpR "E :Zø­:>˟/~C@'+Tl俓&<t T iY"Ke;\l &=Zq"8vrGwav &S/,TJXv;+-ћ $pKЙQ;iv;h~#n'hJ1ɬ(=.^ƅ:cE(DJ Yd_\Ta/^bęSQ: k/`,k)u%35Z@Q!?r9 V*ޱaǤwسXꖘO?gܥ'yfo#o ֣Q9:͇EP#^Q*o}%bU!(x+KNJgC'bQ|D[C8lНM!bWX 7P#zUzCzWZ$Ӡtm*Į4wl t&Ods.f[ɢ{C.# N q@_VU6 _OEd/H·\b_0y|GdCFbgQ?)?A j# kP)#-E$ "AGI(wzf%ױ Z1RۨEkVØ쇼SwvDYBF.xEƷ/s'r{kwڒTQ!و/is`6bw{%]˫>UB'T< L۲Z}M0:1_~(})k,]X7,ֆ,ft%]fvw(5c̢%DJwRH.!/# 6M%ei1oޢ_m|Ђq2q[)UCb5ARyb_$>yI붵lTyf!(斶0^~*#3K,.ݓAʜo%ZKKٍZJToI%R!Pn4N%5 <} DKG6J?Oe.D$5QEt yj69.U YrnzUzƦ|GY)\X-o>i(X7ѻ>(lIEgo^Jr2'2dyL?-HpjSRӵݒ{vJ8dMr632Z3}2y=Oz%uqQK)W打{aU{oWДYz#5{Qz(e.MvsɧPN:ΧVY-\;(NDj'![׳BT"ěWM|F[$5v_; 6V%DݺKfn]`Lty?+AJ㓇gL<3ljWd35+]=`5"Gz%34 7؛ j/[0b$nЏ&epJXw:ly%ٮɬ{^H'_ʞ;AoXR譗.KPzw{{9RT݄wUx7ݲ.a!U>/=]CՏ*U|zGwL%vzAqx9}n2 0'oPCOK{Orc?qt(A,{G ĺϪҊ]T?F%(^otuо;8{oP㠹ɮB_5/{oѭxٙdXl׈nݥu@R~d "/ՁcBuAoR3*3sAF`.X &hp X:.`=C<#q!w[#= h1 ZRףea yeд=um" \rM(Bѻ [Tuݘї [Ϩ(ߐ2"h'CW<υf8[irYbWϳ <k$v49hJ%=_D]evD!jYLy|@FmٓoEe|!;'lf} LM9k;2'.I>Zz[8FbLmBO֮ƒ$-  W{[$L}umNp h*Ed;TxB9+0c!2%̻cnq&-"0-pCl_;.s \(^}*X)#C̼b$I-ԯ'GtzHAUR<~~P# &C6UOZm_{y-pMH4ȉ59RBIoCAjŬɈ;b>m_foInҨ90RolMlS[4_KgMˀH#PL 9; (!ѯ>DŽ5}‹4TOƘdlҏU 1,X*!( IDAT*f s2]xcS=1T҅W-)D3x>SD&M#1z^L7_8E45|fѪUԣH/ImJևǰCEj;"XP3 K9~p!hJfE,o}z\ Kްu4ɞ1EٲZSvF鍥0ie!?[)q[;XNh;z$8Ǫ2g,AfOޟ"㓘 2y4mr,~^fՄ Wc{4!?P( hPkp0-Rd_ -EpIVfuaZ FbtY~ h! wYTJ/q8ZUaBf@-P7\ x}Zf DC4눉 Hp!u _1T?aS3TLӠ?:A~يUOJܣ(8*V vNj+`PN'!5@G/Ć*H[:Y{jFnӄiڇ*ije>*dD"L8c:vCPӣ7,2.C>{]ZOWX&u\a om@bL~@{ D6ndkLMzHq*z/!ȥ?nz γd=Pl'fU 1~Nd2GIiiQ^{Vs}*3|OM T2kv<cSD7d~w|hZ??&QBUMJduto q߿)Yj&C[mGd JPA21B@lǰvƫ`IUY%@"H} 31G)N ϏCGPFߡ7l4[ m/."ƫ4WT쿺2 QDx0*?;C^ ڡ}sT_]ˠ ΨJ~'LjdWBDգ7b6=i _@gJӉuxlDԭu,(Mj~Tމ`__˄lfƈMbB[eV ܊!qo5PMGTNHAHΌLcƘ̈́Aó 'cHmt;G})sK#!{50[1__j]`8 9Ed0!Bh T@Iلz1bqooJEEtWEy}#+X+maDWOfEt&P;nވ^<z^QH/+eOZ΄A`4@htAݒû7hwVލ0EjCfՓ~mT"z'fH{MA #g"A1,)neorS6i\I~EwUOaMwR[ +=Ē%JJF^AJ !n5!A` h?FĒE4Duu3og7f8_geG{>Ig~sM+*+L{3=mb,0$. 6DI mHZ.%mH+)bW`pTD H0@LLLjW>é PݕYyϽ}<'P_1h=Udǰzİ4bx(ϸ5]!^ Lvhtiz-Ϣ .xoJPjϿM<`)Itllb 1tAbL|U<Ƅ2 ùsnɦb\ v|Rzǎb8'4f~n$Z;$Y6~@#ь  5, =m6TH/_`'q."C%53A4? uËs3>ER}5y ifLB6 l@S8G;5܂$ՈC9&%o] xd qw iO3 C,;W2*>}'@H&īwkS$F13vkmf!Z̮VG^x };7 cp,l@h:)%3To3|YYj9g<*rZy>E6(1do|;.~ E4Wc8/(z2K`c$cJќX/: ۄ ޟ77-o:4hIEMc4x*{:jn$9D7Nhl93WM12s$E>:X$%.^'^%J㈨Ab}OpOA-DoH\fCY4_)6U9q#'TԜ?/ @2XdE:A`n?]$˪m✪ /یk*+2-H8봏iny{Ӫyg/~H E?Q*Nȼ|ɝ"_#0#S%<6fR̈bAhb,;db1>H]";"W3 [ꞎUT?wh4BKo(uhLY, چ $^ú>qji0?C[pI\y_g1[1.v8dVuiDIs*]f39\WkkgL`&ob4lV1DDzW22 B`PoRqQA"$Ӛ lW W'i"CMj_9**'s bipt@뱀qU|T"]pկb UEf,O=ITHW O>^u:J ::/A܀L_?w;CPD9w_~CrvmPX)Ř=X]cR9 idRAQgZQ2k}Ǥu '}RCFQ3B'SxrxyMjxDO+ٜ>R|6S2/.@hHl=lX 6~d̚FF 0j97Ppj, g#So\@ssDcR ΉG̪]GOLGZsRV@#Afg&s/f<=8Z)wFA6b[[D[C2}ӧU>0HFcF[{h4O?!| ^:? '%7v}݁IzynRCM9Z~VKce]*>|F95ȥpKێlr{ϧh1\L+@$6w? Hl>dTݧʯ>`R}MAXv@c=bVf4>0epN^yFk qJ*Od^Z'J()uٷv=v1dRE B$l䲒W $v)*jU]+7NAgP׈uJ"g-H?xϞG *6c6h{hzE,>yYZVU`+sC$t(~e @u}<;[oaRĬRtY!)cTCJ69"s %I `[cqJZ;ьC}I4R8սe$#Zn_3MQ=Tg?o"TNtU&~*&rr  R4*4Ty64Sm8Z?2}-ft_j)tUIzޠŸeeW>z_Go)^T\i0wpwoJ Q kIL] =d3}J3+]Uֽhc)U(EOl>cbb:}O^#%-؃|ቩhw g$Top017TWV>»-HQESctvВ$w2_[eABb7}粪PdGq9W|oAhM2N3Kb\@VjEUl'UprKR;1C&uݟfy_#2$E -p j -&Y") 1Z@x*%wb/NK?It=ɿN#1'= *19W'$xx+Sx9-%IɶmXYI# zfwQ77в9dBr*: 3G`~㽻8Hߤd@z`u+ 5WtcRYߖH=O^u 6 f -AoE1!8̼>!8 l(`u/_94E?5C瓸yU=$ħ~F9: y+Y!c!}_# h> Q` 3fGa4/ý?vSCJN -V PSN)kOZ4J8t x#GR eSg)1|7KH4cnՏ|5RFLV=/A$Xf2"& .[Ҙy>!Eq&wץd9@J 4 !r-ףT^vR o!6a~^'}zU$.m;g=-Xy 119PʅOU/Ap:7 h?GKnGrQö IDATWtQ4c=".]ØD˫4eĞN sd#wP0>tCؠi:S-H*AK_Sޙy "TFKȬy CxSV'ϽPW28gp9/.eupReW3Td;&1'ѩ*] h~"bXS`-n.5קbb2撒$l6en݊}"7܂ N z*]&s$>w:fO{4W5úF5H4JiqK1.h<1ԿE:{ɮI>Qgb_%Ct΋ ?ZL "PC!ȯ5$yJΏ37 Z$2$)L&m3b&ۍ{JP݉"d"[b|smi[&ΆvpF9y";&CM#3Ftu#&R~H_^gyx9h AFWB̞`[M]͢vK+Qbyeyzl}Hcfey˗W8z[w˄3#z048|QǘL)Hxաy<_cj< X "ڭMCuD Å={U'БɐcJAUKv_汗S)=,d|"G6`|?^u"H~)'79;sj/IiBLK YN5Iz9I/DטU:2o 3,жu(do N)b۴OS&A耨gVBFsڗe5H8i+~ɒCzUFD[;8gd5Jr.wKnpQ"ʄ0N2&tx v XGTpd/YtLHQ6"?ޤ) C}d#1!f.z90YRhv_DHgʘɠ a|, vých:?2dhnQCkÒd?8?=m$*\SǂʅhO/[ԙ=Tm&NJ㘝Si:VH"Joz~NLAᯯ-L#4UݼKge6 ܢntֹ ]Aw_YsO}OVݲ=?߁N|o` 5Ə̒rl0T6Z q0J"S'2kc%sL$$^F_@KĻ}IVN%n7p?DK OV`@x93ZyK#=`Ss }s-]`=Zn jPKќ NF-"Fu )n1omtW B"KcFu>A`4S|H2#c`:G|WS2nQ.jV`TԽ&iķb t2oz_vR&~Frg^]%h`28jztO!RTO r%zL٢&#>RpQܴAH3|j NJ$v`"_ Dz:~JQDr\0ӠIbCG!G:.ZU${BVd7QV.h ,[ hGI9v0eH3nק";ƅw❘c1R>~KUdn п.ME#~-%2zn)o'U:%Mnk^?Rς\OKf/8Uk8Y8ՈдTDT3fWMWi|h nH1a, w,&5MIh0Ҥ'IH&1Uz *O8Eu:㢍ı uK8fMMtZ/T:0NQa'|R0yͭ5UcbmHh z'c&^ZBktd>K/Ŗ9݊Nl܍r.Kd [{@[{[ ^p]B8:@Lf#p5 n )~h[UM]/A2=@#Ԫm+y*o8N]+0p=\ϡ.I3ɩ)zL`6u:8ip.Eߥ0I}F̜ͨO6 {ň5r  ̔0al0{߼+Ѯ5q2A7'+!3.} )yNx8 =Q'S.VI.!;@> l@>+?QhџXfHߵ1쀞LgC±N"㒾hwuE11^X%K%;7܋N 4J_&25 :S Y  _JSG)/ilbdiBԡ1Lch7 >4a⛌vӜ>hSC  0>fܶ0z5%оv 9`0c)6G2AX t 0m[kCKtO( !ۈZ9v1 oޯ”Efc(:98k9~kBAӋ!fH!1!~sg3\LUӋؙ + 3!70]F[謹j & #@z4S9BK`]\d??x6& ^Z BLQQ]]j̨xj! #V86Hm)Tg6d\!NV#I爆+)Ry]z+ɴ zY<a XsX6^}_}xF-d$B{mA=\~30]X&]}\xHRG҈Xh $+ZL;s_ޢD=!{?9ш@ *>C枃ݍ lEmМ ߋ]LK @`YCa_7^6_oo]ĴQ3EOaݐY kW' 90 :Y O*/ *w4$b*$@z;kneВO sc"+*38ȎIߕ$$*N/;މuss"Xe4|MrWވSpRwHUXD$1ZGM#M*x#fX)A50qZ&߸~ϻ[x'Hoz D}ԭ4qUKX-r װe z̝!rONDRyAhHR;1Q$T:5TLќNU 4@핷4Yim'sEiՠkJٰr 3'kD,yI\4uTS-~Fy@bs \no*hVZPNc C )Hm蓘VS`ĎGJhXC0h=v FO VOFh#WGs(-r`;dyx0T4^F#9G岠w*PXUB)kLN{Cl"'w1>c$ 4& W :G"`VK 9vhA .'ƍ5d2$hd0|ew4:a욠51%ӈ,07bi2S#U ,K:fGr\[|+8h&N>&mG k[_'MпC/ Qx3iܢMbS MfHp=K =?3lNԁc3ۛYf`\7j؏p5ɋGnW=:G5B)Shed&Ds%&_mI&~V5EEp֦A\_P$I 42o!çT_HRn$96)wp7#묟8VʍEEvQ;IfjDt=g +\ڿB#5(|b1Uiq[ fpuAdLu@D+1~M!!O#N ')|>v__{N7'4=P\{M4.h;9Cd{ts.p'6 w42ݏ=^gU~2A<_P&BP-7V]0 T͗ =^#{E @$ ;?>ϸ1WHAJRX k'eߺMta<4g:=wɻ^Jpډ#z?sTM7ZHD>zo&dMI$z ^C7eܵsY^aTtAzGkPT1U< )K: $ҏq+/Ya)_0kG5H!> rn<=S2DNI!76HHW~Pb\uBv ؐܐ,OrCPHWO54. iP$Y?d\ʯle7o'%Y& Xo&swhY]y`mOa=/yb]ɨ;jMfNHdF蓈ьy|KIq@dH{5fs߇khA4Im`k"b*C )0? ݉ܝx=/ TUdw_]rϕI{+ۣ\Ϣ{XZ1욢 U"]jfq,H_T^RLdG]5$o6PG|-қ~C{`d Lj-pXP S~7z*c`8k` Qkv;{% ~ jU(ݞ:,gϱ!3 s}q8OiK~b'U5kwT) h/˼ʱfj2hTkfk4(}ƞخw-9U/٨/c;p@Ez[#9pYȨV:rcb!f*g oe/&p]fk-FAMd_d%n=ݲi6lKc4l+T oxޡ^lSnE8sh` WМQg%:&EA&?4=<_E4v"43I9TDn4T+nZDlP&'B_eMYЯH.˽P|CADH^%f˽< IDATS4}81XQ6޾=+WA*UڮX ,.'7h.b\%bݴKovbyT鈁\1' >>a6 Ef?qkw,ڮ1|U{-'02fNb5PT{MnRm)UG{Ȣiz HߋIHXc6,FcSx wUL[ [N1MOFu@ߒP !ONyN?Vh*S_{Rΰ"{;;-ȝ5e `61Ԁ*s2zz8?7i^JU%<.7P5c7 [Wn |v׀ߧTpr:A&P^[#yUF_'v-{9~;$Ot68y|2aC0WBy2[?1ЗbIEnȦ 6}.>s ]1镒( viPx![ Ia'D*9Y >[$df4d7/?P"}*'&DBW1=I!5^H I1H` G$vT?O7oۆ3o|oC v>+hF +2gW6x6Iht'™+`. s)!  vh%Lh]G٤SkRVn!Tagu 6U2tcľy%'K#G31A=yTI:4'%9"8xJd,N,D&Z(Мԙ%{rX[*zE#IPBEj KBҷ$0TZ ^$yJ{oMiؚJ`* },k_AI膌.~Yc@z1$gE:EC.~ ZS{I4IDfKGF `TkDV ?&H"Y^1&3)nQdᦤjW:sDM$Z:OH;S# UT^S]Y+\PjHfWHlxY;B{w\W#IwNR~s"WCxY2"fVQGQn:QBp.'^ q*O I[ ʮ)|!{~ BD$''ȼzKT%1:xt]%ġ9#q"!UEfP Et$q>+hBo@GD zGmĉCy[ROIߚdm4?2Ξ?M2~j`O F_m4OO9Z@j9޲!AI/5ܽ `.UxpvU |nAh\p]l#OkB-$z(ͨh.ķCܬx*ݣEkM{rUC%Ts $!؛r꾎x],Ox:Oh3߼M#39jGw")EK`6$ɯC-b=/-P?R ZߦVac1I\^Vآ 6>dYnN#wd!^wQ1)5{&QjTl J{xY(k2zl8 SW.b(/S&a$?rط,J3-y=+3\+xGH@~w,@O9R":%0nzS߫XS_:K'U"֞k qḯķu6A?u{hc,mf&!uKl# %Xj_[$ fJkJ w)(ZW1j)*#:~"uޢ3& QaIH k^Bke"|(Y?S~uGx)q8CY08deD+$hG4ҧY1_IQLN/|`V1Wu794q c]F`09XsyF6kOugF9pKxIٞ K۞Jc`QKvt)gu:b.3Lf~.?[d)uflH뱀zNe)K*{csK>sqP0^6=V ʐ쿼KarTO7ilشk&I|'5j@19;l~_H_SnT(S"?PTc-ʷ:i;cXMSyC*aE% |O>f<9#$"~ &nv+FCuEAT~@d~ڂI@- Yx8gл!C:tX/\3m7䚦b wm>`m$T|[*o{eV|  @؉?H5\x :CC% =΢ԞߋxL>PFag8 aD}2QϑQEQypi cT֟6>ҜRѓ F{+DAk*a"4W3:wdLr VUл!AtE'Mʉ/wۧp {#biw~΀5eў0(8W,95M8aDh*;\Y26ΉDjU5=i$8?arpߤŪTwQYv4"]b3'ڿrnAe>"7"ќ6}2K{"1+^peG #p&C_>ak{WQ Ҟ U5:ũ<AO 'Mש1ZИӞ]ް\dĊ`/! ( ѳED$P|AecX'PaҢ6F ?%&o$-j%2V%$HΌJ(磎1nנ)Ǔwxŋ(RDOTci)ou\ s!~IJ?#e?@sPuE5:aޣ3_ $Vz=6[r\O8&&P 1TAͭ]yg1l&@훈{28A U⎦1߹23+e bZ =cox4-y[{q"]=:{DN|THod sFV~Pp ZSؖ,XEZ.{dZ{J0>GeԆBb[rmodzHo:G?bq3:c ^o) M~uM4a fEc$WO%Y݆Ρ,Ό- @w "kf|fZWHWTz$Q R&,ҨضB50(p$ 5e {&NdL|&ޯ4iL'Hݓ!I~BBZ3BrWxD /]`|VeVD` FzCa8?7B`*$o4g",'&h+TnA+?qzv+FzAJXyV8 WUF?>YT87S(P)`ߨ$8vOi!| ThnLW#?)$a+lQ_%~#Ō-c wt Ls>4Aw$bB? P5z?_h-0TYqf|6+ u[M v^ʰ B`޶h5_s߬Z4$YSmRbٍQd] ll4j'zÖu%D䮬@1 [W@4ގv%z"ϥ1;:/ Nz[>Z >7#|)K/N#ς^)I4E+ؗ'U+>Փ#1٧TI]|UC/$|>NQ}ixNcJCbեq #7FȤ?}Ƌc 3JI)kU"]re<v0ۏȼ[ޕ;Јt7ހ!jߍ:^a4^3MN::ocBV ?KREoG$V]K=7H/]ڦWSFpCnYH/D|愄}Ey2>slj&RYىFrBBҋRZ% {;PWH.*;gN7344_?'7|;2zDu`+4'Dc 5I|{ (^U ]+Gc(ڣ&a&$y0OgD%M=㈷ވ蕒tWߒW!^0(eWW0^Hꁋ6=IlSJyVEǏ)G&\XU'/|P+MŏP޸LaK7dwF4ܼ6P/Fhѝ\Ma5E{G,ߒ6uixo$Gn䱷ޕrw?$e/I&ԿxPDjkQ*;*5IE ^-AN#l)e\L O8pVpV/ZuFe!3QM/.!2iI˂yG-z2,נ;uFޒD1vƌYQQ Jb:ѩظEϜ"s N$J |wBeZp0+bdž:WQ*!melZl)=tԾp0BlS!eޑhH潈iN* ]lb.8נa18) NVGD6EAi䢲|I}$a"uut-wq ~GW>2K(B϶yI-zXc&=JƯ+q;mƉ,zctF~P)bRޟH68##UC ,::ގyMvHau\۱$;~&`%r#cϬU ߑְf Kah^!^ՑlHM^D)ZsZ1/33_w>d[GbM4!ֲfD x DZ7e!]ԉϊ_71ސ@sEWn`E'K;᢯ed-cϗ>#ݽkiMڸyiT I=m:IAh3D˪?; HХ.K\1֛k\on:[#HO)`zZ'1Z'vi 5IBv \@$:&&$@zjgР\ IڇGm8go>9KjeeX|7A_I3d}sk+uw|" F D 0%h@j| ua qz'XeS 2iTOp:ϽwxRV:so\wlC B3cjIzWwq/QK"UO|z%blsK4d%K7Yӌxr׻4ȸ [OByP9l_zC:doֈbsqoܥ?/AIOў(HM,[aĽ&'0[Fg3,YF[w/Q'(V/N&\G\cڀ+Ia %yKes(!X4z(ƾu^ċ+ mZGU>;AQ}ʮ6r 6b(x+*zcwϑ]Y4/*+ IDAT'2 dPW&s%z u!'Q]Xq7P$/3I{&20nN><IN$ &nN'sB 'I},S{Irp(PU ImX}}Hl=n H_8ÿu]1A狈P!sM1W}|FFrξ<}|Jo+u̪Mtq!Z>tFMNAKgOպU)G-ƈthLè&m! 3H8x+U9Mlʐ\+. $U"/\G%ݗh#i &զ & _'mbrт䒴}YA`@1.024fu]24Sib"O$yI?$~>PШ}a*W|O@oљJ"/( 9 "UP>R\*uis>"!VYҟ,েKKb j?&(%F[}SK2Z(ds}xF J%쭈 }L#wU&sCfU@D'tJv/̐ZP(~.S"E (\v5,gxܜc CKkʠpA{¢{D=dS!emQq1 Ή.:8>zK댦Ba"F{o_9HsS÷3jQ;YY?%Ʃ`XH-B Hݏp\6񍀁mAi/4 f  ={Sg&M~=P菤<߾D^iΨ(k&:NOdkTwhABc]4Ami+KF<"Z !-"jH?+D,1*G$>X]2)Z#1dELBwXߐ_>?[~hrn 5|2Jg䮇ĶcqmW=^BvZaUŢ7b/A3O˽V(`85 MzK^-v-7HKȮA:5NtwQB[cy UIZ"jz1@PcdJrwDJ/pbbjBkҖUV Gl/,х,' 4z;v8Kl1;qkUVZdrlKх`h  /CjBYU}]ް2V1m k0$fRۖ^ OOQ4= Hy3?GBcJR~jڬAm@ɮU (鏤hu9*%UGG1֛6^Z}h.& G0X gfs^yzNN a iIEv6zO?ИO.У~R?ӐX }]`dxzʼJ'$u?=?DcRjHR'I/7 ,D89HO.m>&w5\{PtJRoŏ)c]œU^ڕ U 7#N^߽>7o({Ge:Cܓ<54Nkt*n;@(Z[COڜQNbV\Z ?AEx՜RH>gfiLx#YI [Qh~$NVݭXʄ/hw!ATB 6w Ƭ6=I+h]K 8Z ߐ4v5 :21=I`돮{ LI ڷG(\{D۵97o s>](ؖp+ܓ(|^5G4{c-roW)-ӆmn>[Tk4&i} ^Bw폣#*&/y0z&Btxz.l0(~=%̊Kt% m{2%@ɕ@r.:VFIr=$$J9z!k Jz-NN}]Hsp|7?Jו`Ðue@{Q ? ܹGA2rCYD1Ym8Қs*˗h7 P\\m6ZŪzD@>Z7ťj`ќ Bň6J6^!VpRQvz;1`BIJ3"C~^ , &89pe3 =8l>#!ܢ'a@7=DG%0#R0LuB QHFiޗì%LpgqOE=wFxCUd *G#]=Y0BZ=Z= f #WiMm9&kj둺dUܼs _:q_ t{h;՞+U"O F堅Yv!ΰ~Ρ! hGm)w;Vnjd0 kR;9"FG/-MXuj܍.V-º@%hOjqܼg4?4A"єi#ʧtNeBk2$ qjST)lLu>Ή*ޕ9_~&O̢!P9l/ Vͧ3n#Azɣ>kS2762l=S^b@sB#0n<7WI !StG, ۇ fC}jQY"EȜZqp/XM$$c>n0tt qA.Og/nZ*N^!}H%=AD-ѷ1IKҢvzfR!Z"7`Sc|ا佪 Ԟ̝Aw;eV>)s>/"S>*%.d2 ug@C@5.|C+lJC? -DTOPml3hl-h3w:FKn6xnP \9X\S!Ƥ;&qz9*BU8@h/k_=5ޓ]Z,M!?r ~:qZ*'cRԎ ͨ ϗP]A GT5LJiS="F&}cl>@Q߻K fv}e@}V. y Zilyw%zœ̝֤'#E%yMP.Og=~bT$Qe,TW^3nco'uV3j2pXfT?O}=s{;MɁ`0($A(TIrWڵrٵrP-땸iY$03``0'u}s8ܓٔVTMt|/VvJmIbU;[W ;EbE)h:8c4*b%4J#>Bd Gmڇ¹tmNz΅)z :lLMRE)YQ ~"Bj"WǬC(VwqdmS[t6,|G*.vK(D0V7x)QňT/6u /P&Y|1k $%42Fy}r%-4zsT1^5YwcZMK> i[{~B(4bZt:Tdg3wt橈ŏb p6ezx0*$ZT7i$JGzLG]IKTԿm4IFI6O=b*eg%4S]9 _#T\Ui3%O|,0vNzuL-hMD.Y_%ai^{W!}{$(}3Kj* 6Tp_HNh1J0F1"FRi/) fCνx:r CAԁq%O 1J`c8>=ށt^3dpSR2; 3F'*1a. >#|)H`T~"[?RCmhĺB,y洘Cg=8gי-*tN!s~D z*mǠ?""ANhd?yyή&$$TQ\"t ab]7>s@r> 㴊]D{MyW-XW4>+uyd|l! #TДKAz'W9&F'Up6EjAF ehR.Ii*ΘެlM%ۏ5+"TH+MŒM(*T]A|ziX[I@ 1K[ ͕Q6bН3 ݉P U1H-(d@"(+2:Y 4$~& r$WqQBM ^%?) ̺#$|J!^F!*"㬎j(, %¬ʦ0cdCN3xjQQb$~BaEjlA #rS&َqv<$CFc[ GĮ&Q sH H(${ٮ'kH 4+(!7P=p,0[1/ΫVf\QRHEd}Pa )cF) Y8#'RD̽w# ;q> 6 [RH?)>p!K`x~1ޜ$#*GX0Qwcz*n)VR2MZ.HY:f(eN )k}*6dNW|IC!b RڊR^h|0cIsm=T%ElrBJ]ca/ ݌.QLwNGwFD1/#8AT u \QT!//$`$DQH8DOK_X&qxgha ;"Wo}yWx~V01 r뒐'շ+ĸI6ޫȌp;`ܗJ"ah@c0Pi%Pa3L$p 4rok0 D‘˅RqV22tl [zDNOkĆ>|LY:U@Qv4Ji| ㌄̧JPٍ7=c3mhAX9`쑵f_;Y "+y} ]:s *clʟ_+a5GɄ3:1EoY2{Ga0#K:~JabxDBG_B,hD@Z`ֻi]xQ!755 |THjK*.:$vNIs2YFrS7LW7J.Kj-j(@B9 cb=$-잶_H҂o|&?U"w;?s.B(4N%ЇRUy&[^dX0F*'r!NVs~~0rh876{8~"VeA/Pyl>!R)bUz5C{U*+k({)k7O1M\qo(+L,)[+r$GkD.}ϜF>; -M>kt>0*cn?=[lP6wX- ENK)3胈k}g ;K]!+^Dr%U#ZK&FG"ʣZ߷(6"OhXcDewI ?}֋SZ[2+>lCi9k~E*κŀl TKqÑ؊P'D ~'L}V;DɈC(cA`+h- LZ {jĊKӋ */6mR$@0X &Zib2Aђ>o.bnqbfCs\ߚX?>IjE;SxE|5dxT,"Mj?jM^sn@+c ZDQ(]{ 31ٛrzbD $yqmYn8dw"HRڤCf5@KO]'Deg'zlo+bT >~݀; 섊BDd. /%iHn#RsUb'P!Qǻ~b,::iБ8W8?\;4Oⶎ4WT ĦT6]hp*OBlĔۏdMЯi';8{Tf<^/2i .aChF?xo$,t%vg<_[$LFNjok3~My&!tbD0kxs?4onc|Gʔ+? 6;1C*PQ7LRKmTHXvn_d3['tkXg4fC6V]` \ UKNFA)dx։C)eC,Q"yVe,F_A.+귮( Nxi\eǫD1%Rn2T>oџχՂaFT r3`Lh]7~@~ы:#v-lْ>Q,xoʉOԒВ>`{[![,~,1HaI#:%)/s'iQ*c"Oh!x&sO}:|8[12 Ѿ)}hjt$MOȇ(Sbweü7|܊ e_R>F]wW'&T1DI)DV0.]&В~Sf+rsosF RzFwi/Z ) lTJϜ9bJOܭ$LIr_-=$=]w`}!}XeqmZ8Lb Ho2yaaXIlZ!ʷ1,i_.e΍}?:)~^AzqĹ {L#U^ыH_Yَ%$ fCNc5fna"ڇbZGccZ-mqFy 1Q}Jo8BJ45PB)7p܁b%NVQF +5x57FHi}Rt($֥~.6L\@LH&h-x3Ba?O`ƻ mɾEbE!FW[27ެ`EgAAI/`"m!st+&Y60˺, W<1͑>75`6Bu6a7g2qc򟸈|"أNJ|A>IހFNtt(@댈uEoΖ޲.HUҞG~.[}=D.CYR\JٽZ!~hnH ~>MJC3{>hmaYgIqV6_e)ˋf'5wKfyH1#|$s:THcL k#v)iff+}DaW6HdF6R6/DL1st&\5GO(}}; Ƈ)iz*xM\~rh1~Y̻:IuNߏ9Wvoe0ZLEswZ} M ɧ+I; "+}g'{X)NZ~j74-4+>LM\/bh.uVu'Gb!w^,<&X5Nu>GT(@0A07OXE~)5<ߤ<$>#}Sz| 1ͳL3Ca"Ti2E#@e㢽hQ|s\I^gtAáu3?+s^&b<NthYngV1.& cl2U2amO g+l (Z`R0SzLNk{;8xM|i|<ЌA21VY)K'o?]3 7Z~ߌ>ޖ=Xޫt]ִ=FbvTaODޜCFtgM $1Y0DP5hLZa#2wcPWiu%WOxw~ 33+^J!=G>#)k:dSY@c[a+D4;>7Bu Q^PH-A.nQ!B{@{)L-,ߠ͟+=x31U4G|(7`Ēʨ$7~:˨d%TbJH' !){֩}6O1#3@ L&Ja 4OPxۧdxg mO^?ZEl^RKk7ɼ׹*߹OhZHi.}>1HUבּ$ǚ`j<鼜Z7j_ n%&$@Λ {>d1-_h1Y"{ (_kUJJ>ݘA{epBt; vd'/J*sUz kvї=_8,}CR<#xY6;ϗч1~BJT otNZkAJq֢=;0P3MJD&cL gB oHryeC4*T9c /(E)S:$/ܗI|5Quy 1MJE6!qVl 6P)ПV:U?z*qF\ ?1M* V#x{5z>RPPYw:F&rM"'R '4"ƅ{[As%U1͓u}J!fNG8  e5^!&+@]ސ w~F* 7d* ,PuFsF <dwDph ){%7ug=FiDDt n5+"[%ލhqZP')42 ~"rpͭsXY<*Tn,.TBI5 sL۸A{3M Y iPSeҚPb$uC !a$e9db6~⋏)f~Ór9A|+xaEYXIe2;&S.i@gcK#܁bE6JG*t{M1Yi3*EL^DoA|kD叶_UO0E̖`>g 1$FwǬ L"i{(FtIx,vyIҙ!A: )791qP6BJG}U/ cV3ctwO FF:L ~wCFU""W#ęk9hɀ%}ǢuT0kWh锋)7=S= ~=WYߋWZVZ1<4"RX-DDg:(vR3Pdg1'ȇOrKTpJM]ɧ[_+38Q)tܐV;Ip%޲(>T=`=\;Yb+g9&?Z)?iȡv{32)]ʱ~Z0,zgJ,/0Dd 'P-W0\sǏUso|1bR'X;$J$gTO,:d0*EEz'"shרd wDgAzg'{-BߺJ\uTW@85ԍRֻI%rL]vҾ4Eak? zvgĕUܳUDus9`ӯ ܃%2Bʯ m/}W)R1ɯߤQ1,tOij\H^VNT IBfcN%$ٵX͐q*+" BG߇o*Z IDAT+gk#GD=M|E.d2C/&>Q6R.tcvϠ`+)"{91ӿ}): E)tc6~<'S_ĪD܅z疱 PKdF~LJTM-Z%1Vtb![dhb _B4Cj-DJDgj8ܛmG;:$#SX#*+l)<-H?)Ej9rI=TX`dV&̖H(Xyɢs4EFQsk잘}bp:r\}ݘ΢E(6e*Pvۨ.:j>-61,Io^(ӝ@)^%xmaC";]e88_I>tv")cQYX] 7oIiёIKxx~\UlM4LV>Os&JP⢏"x2+NWB΂ύWr T//p'#߱dz*DLmt^ke2oㄎhDPw'b,&fBԾUgΣ룅{!!\Hlg 7CC>f#T9+X@uKxgjh#3$6?HBꑔse/΂ PaIp ۙ`4^VaTTQпP;]E%^IDgA!|NxDdT奈&NV [gtM oHUWVQ.PzXGDJfHer__S &T' D$6dcH}m*!ɇg; V3F08WcT{-`cpXCQL5v /KO- j6WI9{ۤ.@@|HjJ*HLWC+z\jG~2plB[`wT  Zw|Аu *~QYòLz'" ʰkr7vQ -[4j_S NT/ vl̆R=064W䦧yBC]̲ՈM?B*h2UZO1>[Ϛ }⦉?o"1 _US{"#&JF?\_a4QcUhqwc:K)Y$ x)TD:2=e&!<ʣs AdQZID(y~KXo#>rAV0kM /6j.G,gXPx3ʂLZQ)p'F>+%>7%ӝ:O$6#K&DGB6^IW0g+Tħ9a_3ȔBҐAюE߷ Cu[x3zb'4ܹ΋%#OlH$)Otؾ:ګROD-U !E6nL.b!M Ո$L{jH7=iJ&C~"bD-Sn T?Mbmt3r+ %dWU>:<)=Eo'I /x-kb5]A_ xr%pNPS>vS<8_}B ZAk }ܞ%3}M}D+ " .P_N$bMoL]4@?3X_&rfcsuD5Л:G{GdQp-o/겍"3f녈:$}Y5{C ]2|O7 s4Pv 8~LèM*eޛɑwzOYuWWWwWW_h !!GDR;VH yWpk9ۻ+]Kk"%%p$3 0`p7 ;m~??gSUYo4qo

ڷ}o0lORT8NsǶmco_)Ÿ1S_cu#`߽D?~r]~\<#8SQ%UQ.z}@uϽS}}'ϡ0__^/0k O3u0ߥx4u޷.ޢ aĚ\Ls|aq.1gS`Fzz '}xzu^^`Q_tbo@R Dɦ󔹝^Li1_ I]Komxsee14:qxDǗe4ۧ*ߝ~5YJbr+O 䍫ߛ6=_3>=VGTMAYL둩40 >7x$QzzH Omu!'cVQӆbXQNq=-O<=oCeܗ==}>|~ps1?>=x5{r`!†_y2ߌ8q]Ns*|>Mo7\|/8<]z1bL"}~+?ׯ]p^8޹ójb!x^\n緺zsny8o9<W~RyΌ%O>j>>:>Jўg\bm~:n#^o76=wvB}xA.s-5huYW@ mL~9ֹ>^J :q~b=疦/؟m|X3q3w3š1p]<;1|\?H\_IUs +}:YYm1\ٞ-og9D0ry&|nqHyI&Smsq~cLv:]wp]>/* 6G?]y4*&;ˬi֬8j1Vx?37<OpI &xNeh; g}#mx+'t>J2|/낛^=C[Kh{Z ;;194~z#x|FM;X8O'嫅xMuaQA}'5E6>9S_pg/1UGfڊ#{|eBWx|/-8Ų{9wDŽjTzT?cZgn|S:'굉ޝ6W͏Bu}qGM_TY8f~Oqf=4?v**)^K{Dmљ>#(n "ǃh`GW^irM-}?Lm Ko<_!w;{)_XˏOp %}j}+ Ϭ98 ?/S>'=>0^;!_،TwvFbt?;gmMyEN|+ORqYTֹ=:0i:9c!`g>20>xLỷA14\8yt\.]dqw2ꉂ}g5# 6nO1\vi^ŋqgo|x!Dq}R'(r[}zd7пכ˜)^|'3H{sy2HxUs .c]3s1`;CrVQk_ٻh\<;?s9f+$oMqnͧMZ =E8*LyKQ&zCBdβ]Z!:t\NzeWĸ~U8]:ɦ wH֢x}j9:$JTLiK/f!&27*}a[;"70Lް _& #uo/#8<7Vto/ U>~oWIW9*U(NczW#SZ?hS-އrXuȒCαaJn<_F_c/aσz(ҹLDjg=p:: bU~L ^:L?kĈ`g>yb5Q~a3ϯX4ė5 K#uM'(ᴄ| 1xꨱQeG5=?+$D!,2S*0 Rls@z`{,?[߮H.GqW yzƍ_yGT3#|Uw(P^Z1( 0 #Apk{bըS^wUvGID4F>AЉ%9qP) u]_;xKQݧR1Y1膟ƋƏx.yx h> ;YlT0{hL߅h{W7_$X}4wW{0A`h\D~f: }%Ϣym auE0,ݝ#]4^QW߃6 [F̹ U3fg89zu ]z;`h~rm"VrѵƷmxAywKzӟq|CŸ=u^ʑ:u qiu\80Tj7  ͧ</-x=qⷃuӑ+z\:qt#j}oj]ǻ7_ۏt=9p;0Z}<ofs맮߾TyǶd/?w=DlOﻦ Z9"{4OymvB! 9tLbXfu'>Otw4iFo@ w5Q9,y*ww^zI 9uvOO|OHZz _kM-㘜t]ifGr&/"Yt|j أJ.㵞5TDT-!6 ua`kz1gЛ7 E1q낮 }S vA* (cx͉bx/=>{|z_5Ƕ=ygy`>dǨsr=YS:]øZ8q=#|Mxb5?&?I2s&_\F,KØlIr"k֣4@>\Y. =~==G3||z&w(w8 1e1槇z%,ȅ:$㺜xsUw52xsw MqL^ <+zM'bxqnHu꿾+lL119ߡ<înOX|Ց~uٴ\L;9jSMxosKQ&Qϟ 5c/`i#oCnzMPxQV()'`rqPnzP"x~'K@<xpo Ԏ9GdqF E`=k9Nv.)^. 5t+Bw@&TI~ >S쎽0J'ЍiWg=Vqr߱$,>S9T_' Dy{끽h$gKTMjQ:XY'w~0y` bSl;x!:M%oL@`IlNѷXuBDڱ31AR=&;ؕ< %:::ټF=śΫ^{똳D%-Gw^1ԥ'ۿD6xן7VوiݿCmAKssjDfG0h G^/, "tm ũmm s:pAKB$&x˃8*N }YtjDޟ~"A"Gɝ@kLy ?,,Y5 o|iѓ$/_0;L]w&<s,qZN} w:,=$KΞ}s}0&zyx=lߏ8!ks=')gzWs`O!!/=ar #G%"T=Lb{]ge%gu$L(e` DJKh@dU^u9đ)<3;rJ "`d -]cCQxx`r<:%G55- ;QTn[HmʂZř t[8!" NuD'ZԿQUQ\u[L4 ֥Ͳ{9'6\;N-I4yz @6n*z" a k {G52*7rD_4Q8;*[{ѱFrZ53Yֿ8yM,o!VP]YfjV@!}/k&3m]F)z%[tdva#\zop$O 0#Z6Q͹%Ӑq_923k*d#"VsN;d-%vp]%oA]ЈDvDXM&͚ƈp(Fy ̿'Pq˯רRxqͽ8Եz toLŹ42uLCO'Ql5'j0{z9(׀yc4m_|y7ql-L l_|}8Xp*~3ɗ2l鮱hN]@ƔІ;kI=H|+c'[:k9^M#f(]G-cXHĬJ%W:qayFLeS XrԾ6LɖXƉ,zf]rkZLj9pneˉ(K㶲&) 'e0'1HI4XY-M OQ1d!P1x.Ɣ"OD=fj̾5xVBմ-Lɽz9PVYYL{Ҫ2 gWNDhp_1EHaJzD1%¢x%LLTh8Gaٳe37֏+fp!C "\pCOeæwńe?H=]H=p.9V>{V@9~]="p M?y>3FR:VDcr|kӧLçlXFC+I܃\W|yĺN‹x?hnRdF 33E+l"NƘ FɃG࢕6({2_J(*/x3PS8 K[&w~AaH}($:qt|h_bȵ)(!mrq 2%U[?ȣJ:xj5˼f" M$wn$YY"U~0iPp4J^n#-2UI0$_G35]JCFgIUSf\}W#Ѫg^d?pOGۯSp} ޝ}A "ϯ}^R$G{yr"V8|x*~lAdo 7q1G4=֦:j9KKW)MObbv׶!(;fg~S:&PDざ^[箞9_Q1D֠LP{Hf4Llޘ'Qϓ̳nH-;[{9`-qc v76vD*:A8(?lMoצ9^IC(ja Sx˻gd([Hu%+S+/'KIɰaQ6XMfoO[AuC­3{&ܙ;'(#TzD++ɵ(l=)n$w5iլ(|XCZNeY+zOUnpf,&[)~1Z4&Ʒ6ʬiMgǼ䁸%aRqnyyZhߨA ;sLCM^*N6r+ƬF>&֊iG|Rޭ g$+Cx2jfto [Ȏ9jZ~JW1gWō|DyNc9 #RR(t~DRe5CbMD֞pM1'#ħ)wOYbdiؼazSUF%@(S6Y%Z@ AM(etiBX\3 yB9 8w ORWL)ܘpmæ2PwQкK7X&CnY)ʻэDIzDyYKbJ۝yH%k.yMjN-Vf+ EXIa/4{SiG~š'E&L(X/ogG93 -5NŞK5OscR<=,(_%`ac6|}{8[0Vք_hV쇯3:֤^'ke[gu{I}ǣ|uJ1'\*OMb\HF"bJcђdly?O*\^Y;[UcS_WF=;V7 70yO0^`7JdJxT]cK?1ak'Sq[*T/.o~2_%ц[s=,8P RZSqf飹I-2s0ԹnP!?-*BU(i!lHw&#$'Gxmd4*.M  X9 E VW!go 1SR"ɔZ˫-+[E[O":O\`k|-,|$j?f╿hh $:T$~yS?r\8:\%7DYHS%'ZO (=<lRw8q$% >DԠT;u`3N:ɡ&Őo]v)&|K>hv }bi|W?9P?G~P2Ix])=x<' vȔ"ŴioNLȚkdjt]ZeF+F-,E(쬇T (S*).o"1;ɝ t0yRz/~]Fb[w޶kqɕ3{3Bcpy:2fkw+s.:+b"5(x5PM1~Of}6@,`5!Dn|K_bg~b ]᨝qh=oBFJfxQ1+HA!cjb7k.6sۅ MOhWRo$>Zqd9OӾ/\ 䕍Y_c5!c1"62qJ Jp珎4Xܟ\a&_yE[Y>]l #:gvזf5va&Oio@)椋NKZP-vy^/]b%/1wg(ko}p `,X q-񈴢y *({5 V9!ft6{9};_w (35C80N*(sV9V?&`U`P]8\n:/X@}'HL;ZHՄ&S'w4'pL:iE'}\nbTk{yeN*RO͂Ld"VtYYR:7ףS!#-+׃`N =zqʤ>mT1)T%޲9:'s0;0>'.fBO3cV̇X"fuK$Lő(qs)!pYƔxM1gki(u`(T䇩:b)S3omr6jCv9Y( ],K,dt)&Y|`Ѫ`ArBݣ9BnC;>v 6H26Ap) I _$,|舍3VM+$ݥo^c0d )93C0 ~?965s>J^x@Ҋ$;/nzwqR9ԫ) #WDr!0RH^hRgFh vdt5YHu'4~-<}xcn $UAc\@kmLͣsH"1?х*<oƽ-ztڷў.FQqቍkxǜ*:޽>q3 Gxf'u7_2A&,CCrl Αyo~,Z@F/MM͡MuLqz~3~1_Ɇ#se,Ĉ wv5'x;EL[ֲi_n D[4@{>""MEŬ9"6DWι^Qi[1}T"Vnr y88M-LR|tA)2D2 ;H ,75M_: ԒPhDH<<5%+#!m.zm%ZO%mr#B* {dM#' c:0K ;3Ìpk M.ɏXNN'7x)Nupvb Y, ]}!eY$IJw4i+-BQrPւl!gPkZ9Bfz@[|)O`-Q/r*i@+s$9EvN1WV[G5Y>ۘ=$<;dcX(a8[كŝ'ީb«HG:z`y C"^D#IUz{PkIg1-nϩdx7AAW>x;v18`&M{>YdbwߤcaXLC- f1@S %kf^bAeYdn;T5t.( kHp J\\XuO$`F) /7DkAZ%>1'= G ѣ%ƩfNxZ宸qH1fFjM,M&Qa뇎*64b~8.=+f~x4~c9%~bb*No〘"6DجH؎:N,"L$5;{|nV:{y4~Y_ޱmqHj#b 1לADH<9Y@~dעojN v=K ;תPxǟINkzTgZ9߶<433a^m>ʍJJ_qxZ:Hue o;m)%OW VWlJG"=C1 AZzv_UJIAG\Ę87D^SW0E.ΰ uK ' wl#jmFsBɽY[9q"(Jagl.Փw񠭉U1UO<"Hy!(dyfHE 3υّ,q ,d_$c&Ui-.{x޲ Oe`T))tLБ6IDM F3(|B\`( ߜ/%Fϔ3A:%;WNrg(ܒXl7B֛?6Vd$_wߺ6~c^3@.g+,?`.{IoHxs%֠eE3hedOa <GW##\1,:Uj{ӬUKnKb.B>u8ڳ(ڍ9;י]1Ƈmç飌E|LXkPAs>I?齞Ց;vpϣϤ|geS=Ͼ\y &QH|u&Zx=5|"Ky_ő87'FO.i|ќaMd켶N=*: jGCΨ" nGom%Rn NiTbi5 V E?8 T9`7G8Ȣ@ ]k@ZD\{4e g$ϙdC+%$1CxdK+ *S *cH&z `} %A O=Ui{3k"2pO4WQ送[>Q-`e 8b< >p(@qg;€PHE>&:ZIpu\b$zy-Y!js!v<9:Vv֘Q !#CJ,"lEx(ߡ S(<<~ u]Dj>66 J {3O*Z5W7Jv{Q|A!ݧ 6s;FƧc,@&G kO OfU"<ZrLG|z ;@s0~8,%yS`{J&%RS!zɬjhԉa5DpF(N:9/ykN$w:tC@]:сq"D&HH/ Rr]cߘli{#8~4,*Nabc10G>''U{Q%[n v\\ }~Ö ,Y!No22毯%"R0ٳq5'wN hF LzrXRPE=)8IY'DoC϶ȘxQ2P$9ǙnaHipr J3=`}dhErCK2c X?6zG0F8N 3~ D#F 9#|?S0 H?׮yFSЕ> ō x9u<+)ըyţK29=y!g~p2^?A\h#5CO T䪽M.νmd(fX=L& d{ GM"K=5"9Lpzcl,Ai#TՉn\"'8$RN:A A#_rzē%j-P=^At:Qcw\aݑ6I.u:uO(Fɽg֝T(9&['C1Q2bL_2H}Dxd2n 'Q|0F kg>2g϶E)I;l-vKo;ݷo'>Or +H]~iwv-v58d eJVkf>,Dz'7F *a=xt.eߌ+pܸV% '3k) [|d E1lʌ z2OvJ̛  qf* (*5%֘X$!gR9ՠ%37̛ˀybʁ d 1ƻE8VR}qiH˄ZX笏)nIEAl;h9Fט(# ?0 )x 1ۍ$RpʅË"ߩ;޻m 8iy͈X cI8TQFL ';;` XLS"uCF6bڴe (' W$|.,H0 .Ba5Mv-scVr, Dq%DBhKd+QA&|`n.@[ӌ&8Ƽ`ı ȅ 50=*(i_Bqu LӾ׼Bt4A?O)> U԰ćW-LVK@f&y2AYIx#.t5'U=Oy5 z,De2{NyCHtm) UkIۏ)HcL_]G3.\ v$#IhUAɖFg1hQͦ@ch Bo%)g|T!we2 ̳a'+, (YN4BީעF`WEwuE+P P9Yx6@CS D  ^'pѻ*ZW. n++L0*|+|aAHi^s0c+$\Aխ^lDAu$#^phAADlj$<`릍%hx3t֞IZ.4UnK&cђZ!!1{  EJ'ԍ9ut!JONCGbb_j C%ň07i1E9L&Q ճOI<ڴ#9|o")U:EWYl'Č]Q4z^sX,JR}5)(ZšcBow=GtyJUoQ2nK sF^!Ci/L# "I|wB@&JJTyjd#8JˤiC><%|Q3s:9C^?tdt x|\䥂Ys(zȋ;|OJ mnw~<8f7QDŽ.+qдljTb Zd ֈ`g&lj&Q uVxߙj!r_ q#A=}1GRBMJktĊiY%jЄVPwʱizj㾧7B9<&t &**ƶB<ٍ"D|+#xi01rfO(6#Y, !hBmەmN+cPHA3\OpIgΧx^O)D %݉ΠTn \*HI1qrt *_S:XVQ5}Sj|g(A$>e4Mh/`X tJBILG5Vx_+Pfa#A/(m>H,|2reLshZ" kJWvbdEpm/DO!eKY&Q)Ƭ$qP 4G 0_TILw+#*lXAC$A9mh|d5#}Oq0׶(Cg !} ?s Mgj>_zl!@MAlcì8mXzBZRP3Vt\_WVnG1k43 F/ZϏ%A-&L "{@!_0b#P! RYieĀt8H'_ 9hb rtlV0?ͯǧPl#|)`z+ T'X4+M!~.5= ű֧2`5džp+="]^rs?ߦ RIcsXU0_Q,+&`K8#eя"YO'YP/4FBHOw'<:#KD5U/gvo#%`u>18 3ڃ߀A(u?F#Dz(o. "2[~w9-)]Iy -D̫oy :K8Ε7<߶pauu:2 B|-EDrq,Dz~pQ&jy=1+5)j&Js&,}8lIm꽆8yA<~1\+9q> ϩITS</^)b9kBcr1Ņ+}? l0X4#Gf& ј2+ÖEJoLI&x &dl*#K,\VJSU"5O\KǺOzCto #aq]S/͘BTt}2L2d-? WM7^O98.c~#a#l0 w &.9X^$[6KT"M'*zXzVeo,zc=q".Izt[1眕M_ޫ06m@F\ڧ{gWǩG"G*{&}.4'߷a&tOYk1'pE_ċDs~{+v(~w$mkeMy h?xM4`%G+dÎETGlB (CH@k hS.4D #K#][|[cstFCauRh$Hak3lPɳN&Ϧ$֣Rʃi&B{k8[iL6|?8ZY?ìx#ԗE}lׇz=|O;=ʉzjYDM<[w#?AXfkWqjy~H=댁ߡ9u!VS?)/8?97 OY k~+X ؏wxSձGG9Gu-'˯߹E^xd=mw~<ّ~rHf%u_bMv:y,MKܿ#jSܟagQ|~2#ͯ?97y6܊37^1/RxLW̚q H)G k5%zb&vAs3BmYS& C\Ϲ_L U`j=2cKFd$0eٶQ 0C/QQbO .RdCG_u-`I#Ğg8z0EoȻ!P{,J4k lm˽`rJ=Vc1RR u)T"ѡ@HxcUw1sB|U2ڠiT~UdY Fҗ!_qYf5wvP:Io&ȑ#ԌN[Ud~2n: no=\Wo_L!Sy4DD;暸؜ZX=~WjI$2@1 ׶(A[RyNJ^ϦU/|:8nצG A\}s>9WqPs~[<|Wy}G4hP[0RׯՎ+pUМ=-ON=aqP{cxˑS1o49>'.Gcq@bʢO-=2+Ћ7ĭ$I8$]5MVakwu=tOAF('CEIu.,&Զdy)f3T-)J'zetuAZa{HH0a#U-/ʁI \T( RFHfԛHY$, -tv좖y&{B$鄬`Γ\wIJɻ O_XB7Qr%ʀ׹QfBڏyc"NT:g)0; {ML_rLh1QzB-ܠSY"dvB98)v,xS^niX_hȘDҕ@X'G(&K/)xsuZIpU"벍TaA'{\sRҌnuI 1Szew=㉌M?<钻R `+D4h V#N9K== "jNdyPˈm{X<^F^y%^X۬![#_Fܽ^~w4Md?7U6~9h:="Oޞ3Z>uw83t:O&wOqNjcQ߫\bc Փ# l}K=J"s?{by.=q9w=߃X H\xw[s%km]YJZӣ-aP (ʢb)sG'ujMd5g0AnCC<,i:[4sRn=-2lƩ썴lϡje5pGgpۘ6Vz!!Ũ'$i)>f_'x[@noq= 6.ft E'7G)B 'dK*+7 ŎXןx*Bk~8ȄY'~='C/aѥK@0,1$6L㇌qeQ5"FvW'Xxȶl8HHH -D'{y~S[ Qb'>Ye 1'o4uMX)pL3/䋩1"?zgƨDŽ;on:'C^Y.Yc>~~#:~qR&f$gGÙPxͩK '=&|mu EֶD-f*Iߥ% 4H*kG&c %B8j,l3$e-ԡX LF:dQF~<bQ,rǞ E<4!*kUQ"f05 5)&!fJ*$ө&+\BXT^9X!gk༠ - h" .x4+Sf\r%IzE>$(j<5@'D5;z\,~qs%Gk(XEo#f WF] xY-mҟ;!NB'fqR36-YǯѬTlcwC H= ~r:g<_DQZ%1ǦAB˼]Ktw,WYrƦ:c5ϖ-(ex^}v|~؎j&y:MWڳq<|qzzQuNGٲjCd{[xʘn=fbCg"k"#k%Sϙ~H*G7脫ci]`s|nGq0C]L>O$"o/ G}KGq0Ӝ{_ A;kXxM7!Kԭ =j*kϝzQǡrGŜg-sRo_?UϤj'1sxuF*{սqZxJrFOq_|SUvO4LEyy+?K4ɢG7>/5S"Qu߰9fMmk`ݾdCмzA s]^V;;W~Ɍz>$3;,1dzgy7!utP5B*PI&a}hPK\bMh7PkXrNfC`7/)Z|Wd1-qxD<_ihCѱ3i7ğ>Z7|eܭG{Hך#O_YYo7['p *|qßZS~.=vGRqs9ozzAI3Se~9>?>ze:pGSAJɰsϜ2°Z8! PNc`9X;rHGިm 8 \J*f ! 83  X+7[}'H DɼJcBGHxkD&u>yiŕ(%%LxʈQ~juQ:MY đܠ"9;Orʮ矗 Wq G9'Q8^ްVL^#󒼞!UjE ΋?_Lw3&.z}U->{#^I( g%j!S ;{QT^ᓥ\A^pGiDFEdáS>7^1r*Gz"#[g@#@&XK,J7GNpFq9"S cI}߳n Yib[.:)65ӪqUHUhQP֤)S˜sB4 {1Fȑ\_KwNvHQkC+%: \M~B[IBɸf'Qw(Ӊc 51TYW iT4lTNQ&Ŕ,$"| M91=,'Fk0 C(gϫKli=q!eJaa ?\DŭMܖI_;s-ANɯSi#Ic&D#5 ƠMHqq= l 9E,KQD "ISq V$ +I s,1v?"_M=f!+~ޗ~o^hx|&zuE/RUJk_LuEXzK,>+7Ϋw<~t?,~u6A^G0*]H }ԗ1jIQO+Q=q&a(n/k |%GoJpϾF(wӭ 2-q$q&ϵ⺜MK(f27AS2q໣"״Y8Ԫ Ry &ߥb Š9+T?̲CRs8Bu>&1u},1LLHWak^MC <\x׶-1^6B;pUb=RFhrtȽz}7 NrY?O|Q2ju=H}d Zm~&"3T|3}׊8q޲v1wv.p9V#ؿLeT^ìr 4Iܟ.Mo:_O췪L5|LNPl|!r44T%LpoJeٯ{p"6='rd@_|WuU"Zb5)QR'D rM0#dYu Kuʕ*0s0=yeN('f9`^D֍!Fn)(y' PHm~9Kl:\xvKW#SUxH΍D5 BBqdKNoxA@D}"t #dFN0Y*'|'!?dKf RTZ| 97= AJ|z{50f}"KgLQJxJPw=`; byqY 0B9LW%齐MQwQ|^cl=m _EL~s+'|kZo9'KΫqX$-ƺx!N]s\[>! g ~dAD‹sV}uM|!lTTu'.͚ :-~A(xXgA2ͺ;d'k4K +Z7t m I>-10 T}x|G|a/i~cS͹Jb?o&#Vi'q㘥Iy.m ΰCws-;3x/k }8W'`ڼwzq,ڿ1w޽'y]x'=ku&mזc6uMCd} 5Ȓ=Bq}TXi:wxw}ry]A"1\1_BI!F:p 2C {6)2_o'=<כkLS=?~*{g9h4M%8o]߶_eG[gޡ7ٯ=c_:.]Eּtp޹ sLCW1>,h0h Hj}Yr2o}][-05THB8:+Nv˼)H}~rP2{Ś.,Oؐz$0ozgg!b~y~|`g!Uz,S_wO_2)`zߧ!SɆd 1_ɈD o?7y}tcT H׆}-,wsǯpOR=r={?t5 pB}U,|D]Y)¢O F?xt'-o8*)7e=`h)zuVLn)%D`tA&REKI@/Z)!>@&I]Α*jaui(% ]tKBYk=3}SD:#y8=kC[z{f7דӳ%<~?pϬxWd%{x"khgIp?u`&{qŹl r1>KT{^ͷuR'.#<"\w';wq*quv w }0<0GA_oOWY,#?&nY|w=XrsP_wb;_㟾t71<:soDD]j ?1N<{upu:珿1oZL XLAz?~z=o^ϯ?^2=c^~%%ιNy'0uǷ+ #Dw]q)= Nؚ`߯NGfgC%EԒF]r$)=OD'Qk%/5G欟`6lMeZo2Ae#sߧI vD|8C=Xt'1AeRy"/AGg8\G% Jw5%ZY[rr8KF|8 `|DC: #X8EKMEhDžU!OqLzOy TiI68MTܾGgX(1gB4g$:T! ;] SE7dz2:4α2<:.{uSixL֡L)7%PeS*0EȠ DSiH#`:jā2,CcOwu0/'w=g0so2u__;ݚw里91kwX":pNoUxzwqFOw_Gxx7+tLw~>ב[8yRoN>1 G3}'͆/_)Z`bd|>FCmvt&/'i,̵z'ecnQj}aHH/?od7gۋw]3e#{ϯ3u|4vr%?Q>AQw(||dr0:b+_7!#3F'<6I5؃[0n \ȂT/>5/]:L%xt <y;x}yȓoX2U^ӼfkpD'Zbt/.}sd;h׮}}}8%W?;2Gq1|u8-{tzuVYBDh73d/ MJ+vɢ;1GȑWo2Z~yjgPUߟ70d׾y}_><^Լ8׿z|0}|xȜ+@]9\@Ga qG!dC.gι8S#(\‘=`$jc lP,p1*BѵF2 dB֠S m+Ԋ'&Na_1 ;!/2M27ҝ0O{M|` ,:@lB8fpV+53To L QIWD'd*eW* h9ʑ!?,T4[!)y:#-Eَ}h5 !"NEPAܴ`AIDNv_nJMM2^)i@!k8hme_Xxc.;9c(3x=IFh`(8< a׺,{NyYeAI,p民/o]$EAT,jǏ#ET7>׎#ohU>s={yn]\qB9񓹯Ng{ ΣMy2!ޫqrS 8_czX{8#8t}~17;$;IS3xޏY7NG^rIS|{s׿xi}Kc߯f~'Ͽ }׷g{l5}x2[l (1ϯѱfbjݥ>dlO},;?=b?QK#>>9??yq??,^VK^sz>^_y:jk\J.<<{\k Mk!DGڎ10{t.̗"CZZt5T7 @od'֎) |l;RRA z4&5OGZ\GŋN͊Z`RW R\Y#,O-޲ rPD^*Е/;ŰLl!8lXQ[PxT pAXʔOOIvEU42 j^N uR@DlɥAmӡ{B`*qN@Q* RG# UD# [].8fYHfəBN$:USY, J!{D[G%I[‚9!xε$JD뉋h< qS6 H8 #`T.Af:Mszܽ dD|bH8ZBʘYCp@JNoh_&{jצ;3W|3s>E?]c'ǫo}x[ G񆛉~r30Mvss:xrX ZzUn /? Mϯp:#7ׯ&Bc5*79뿳981A=v޳b;kk^+O-+&JDvp<_8#">3SXG,xp᏿_8/g G^ɹ[ɶ=ɛ@\dIoKf:$"3GpĩvU؇T$PiDD2 A@N'8D9Dy!'mKPNe)kE&2((c<̇'.-aG$&2$vw.bJ;ԖXmLfV*EAĚ'!DzJwh2/fMƱqab%J xD(x), XLPhN8J!t/UI ͵H6xS"M6A(OꊒOM EͨO÷ D3% *S0YLenK3{XD@1%S6{s8:%- 73jx׃Q2@fa53IPka1Z[#dVREm6xh~G\΍ t{6%נk!+ާc\ƿ\:>_8~q~߆gz^⽮Wmy?#Gǯۼm遛֡猌Hy'"chE08a)S d@ɖ*FZy>m'aoK\NȺ(3oF Lc4VҦyȀD}\")NӯE3<Ltr%]r`2BQ,8ZLDjKTb}yo'Dĩb%^'A5%Z - PCM=Q|M=rǛ2azyxnk'U3OCM|~x>ϧs`''` wl=[lyoqѐ "(q6K .0Xj KUs hѸ Z:^QrrhM&LI|ZBvࣴ %7!."ÛIAn>ɷ!2ȚP¬e_eR1e *TMQS(bزTQLHʌ]*>G#jc&' Hq%!gTԑe!xPdK 8BJ+ b#r'rz8< M(fP*KAi13 D(+}IMj=`OPr2chVD\Y T"|Ҡ~.LL KLwHzfX:j "c1aP*8uB*GckY(m*D C 6k{uMP.AT9x`Ī-eu;*ef۩8J FԋV%pnHvBFC{<<R%?NEdϾ#YOKg˫ uCsUk; <]3Qyn}<>RyޜFHj'Knci 9!QU1$權ɚ%{]ry.7|νF-5μ|)]j.]:MS2x<?> :|߿֒epe;o&a?7S5~p[ό̙oO׮V}$;֞tI|yMߝǾg/Klo'uA=}OkͿqj_QL$JO{!LPDp+BPwҎ41`ȋDZbPD5:=]C;M$ ]tK)IŕT ]M;RXL0  !4K0?q1&G$R/-En!p027*)\Tn0d XAW(Sx!Rc Ij`^jpE_/Y9 E\'^'߿\_\LcVz ;ih:/*kqizHB˝F9\H؈ے[QcqRD0pDSr#|C=S YCe %ut1 _ӣhLKhJnui0޺O$TcB', Q.3B]Zަl"b𑓨T+o.f-3ĺ)Po X$L2+0*Y:|;naԢ6$K4t8d('lK +V=O>adT8FI Eߦ2lJ| 溦.5ԓ5N11 oS봣a,S\jkUW O1}xOu⭜Ks+>o|-޲?~J\zo&\'kI<ӼWDץُ&POUߊƜZ#a\m?=tW}½~qKy?'><Ǧ= .>ϧ=g߾=}c׽2ᇻoul9Ԟu"_1CHɑ:c5$X UrEhmG j^YO&v BA<`ʒHAHH H^K5iusم5lLr9&#j@6D=KA%6dKekD 1F$de+@ ^hB*BIVp `ZAJDo9|AxU]KPKvv9r~Zn' F!1D仒D T8P gmK AA!$" T`BىQBh&S=#"%D`UI$T4U'-8@Ĥ c&!:Ȩ䪉"!AЍ{gA<ƝEJI"APEi q|fN@Sݝugs~cn @Ew_NLHkS*3ubڅY/o8 J.Xߍ%laSyOF3:k/~~1@S>]WGi5?_=f=7W%=m}#Ke_y2׭ b{H\Lڗ?Cޯק&]W#f}UjxTI8OaͱTfYB7~NzbTMk9ߏ4q>| ,j+ǟLg{YuOmŸs;S9[V>1g c9㊵ϖ9W͟[wWu1oo8!z|dsqY&ω&y￿YgF]vޞ2 YFo\tAr"k>2NjrEZ.g'ѽ a\TIK nL$] "YJ`QA!NIcP@P `è <9.W$Dط(2$J JD@)"v_Wؽ.q/Dx$R.Agxt?><+m]|{bq~S{Ŕt\|?VOo_3]j}\&eP1sUS=H`L~~Sj%"HL܀2+6y="V!M4XIoy(N*x-R($P3DU)u0 &$bܒ l45lJ.)& I-Bh8eb@ʖ P|Mvvfe,H17R.#0&gE(yb ]f4lH%y'd4sY]O,pDyZE ||.OhaM';;-H%Q9 abHXaiHA"MM/"@,T <VD n! 9ĉމÁUMcx2t'E }{6DP!ƉAnT 2ش"pO`bDT^$T -U"<̴ "F+0_DZ 1KQQ!"rMEՕX]~<{y߁G\5Re+8 lln0&'dŰAIݣ',yEySAI&ֳ :ቮLǤ`R)bT^&}y y&n=$ml@r\s1npv~^f+ oXMD\>=>'?|}b!|~֪o>=_F/73S~|y3._dצ?־#X](n?'+-gMnݟц qC$y | Ё5C, o ` ;YJvd gű(P dά)& 5*"I,pH"q%;KɕbJ);liu ?jtC8$lI9'\3?N|3cw3 Vi+Pf6 Dj6HI"C'֩ h ʖh! d!U,p5v )U@$$ 0 "5NP A<kI@Y #$4CAeH36 *&חeNh!"ATDr]RRcBStDDn4Cd?PEL9S$D EX2&ځIbtQRPR L"Jh4" !&Nj` R{df@pIVPVbh  :XI$)V/(kVŮD5+q3GP{ E![Anv􃭆  d{X N4ioD'# + HCbPZE ز7-,ifmjU;J(k>t:C"M~Y!*4%傛"Lx"AlNY1剚TDr _qzlqJ1Ζ aFRp))y#cWe2 X4ZvT6o =(Q+:)d-JVZ&/8&<}_UUWiq>4ΟNW͞=Xqv]_Kr#@f4;95R$e#~wK9-s4sq7w5UO3X!'p~~y/}<X3ܣKOB(rkE}:^. }1ϣ^8O?.ׯ:z_OL2%G^nwyꄥ %^!CRP& AT$ߠIS"{ VRl ^y5a M(D2&mQ_9d4,$Ġ26:1 9"h Ai"bDKȒ,`! l$r zm@"[F s!؃"P#s 2PRad0ō QA}S LMJ²M J@LSPBȼ +ZGE"fghBJǂ6*A u/a jas **1A`$ H[m+q رdԕAtf0K$5e}*LQ2$D4}Tb1FJ ʄ$(^ ] ``QiZ[{q!<14ѢB;o9 TƀĊ\0VrtceWMud6Ǚ DA3Xv]P.Iim՗ XXRQ8H0&W6N&kN2R!(X <2"w^T0B1Di-A+hA3cDEY"-$2 EV Z=mNT%%<ћ%L ,JYzM!Lf@ $, -b!XaA'!@$@#DN""MmK@vlɠKmJM$b$lCQ$gIQȍ+HV!3vuw udYXT‰:5*A Di`oS_aHJKq7 @VDHIdxsr rkDnwv06BO ےN%TG=0'f=HG<|XMsLZ 8+/ٰf M#A:noL *[d>SP df.sYX^zj"XBӅm:6 fU[w]8y$x88EG:2سII!1hP'iLѦnf, Ӈ.Z 4C($`8rNZbP;AJ;@p" ac{G@(S*H:y^(ސP7K( !ɷi*Ř61`! sZEpCAQb! Un!H( A4k$5N5%N43U0,Nz! <y`t91xʯF׫us2ɷ7\s&(zqN $bP{6C)n /= CmR/Nt%7pWD2LQ X0\5%\ίĢSz1]nUģiJr "4m3PfaȂ0((&"GniCdr*a8T6OH-rAp`R $%eU&[3 A-vR'Ț :D, ]Z&R!h(,dP/ݙx1R#DBڣdNǀF5(6t.6ir/2f5*D 0 F7H+ Z/IB E  M $؞BD2*R/Q%jHdp-C hL&", YYd?=%-x%KbHB'#pHg-i!Ewb*6T`͐ʩN|isАXIN2.Lm"rP`799=Edǰ%D3rLŲ̐#FapMʤ@e1CM"Q)"0W^d l6-- BY1s W MlY3LpJI#8>^+(Ptc[& N %Rl"%h :EC^j@3`L{ D2$Cg #Tqs&™Ƞ+̢ Fp3i"B`%$i( R&`R.D ;;8=G\ZB{֪u>w'8q N)9b2%R8B.Ҁ@EyΩl&=?@<"# l@3FXPg6_ec9$5R zd / ckH $S=NÓ"=BP`Geȳ{ZNT%[@0LG YQ 8&Dj@LS Ԉ\dkOS.b؂2 Q܄on(<@Q <4ΛD #s$.w@4jְoI7l!GCF $'D48,Sҁ $bfnh&d U3Lħ dSZix&L@chd%+$*  d !F]<}NNkpȠ; IMKR&[U1-%<&N]Lå(;d86n #u 7{G[[I7]roҌHz[XfS$:]JR]JLFoф`b8K@A#!6j%``B'0*ra¢c %6jfւ"Q ' ERimNugDA%Atw*(0q-$]SGlL6C6\p"hJOj+ޏo3@0L8%[`ؑh4Cl Dl;{(E#Br^FuYXy#$$F<`M Pb$P4QZ* J Ğrcy6ɁtFFKn0T=p!4SJ*֬LA+|8ji xg""MM ˔2s@O*lvYợ$`V!ȋV^T#5mqa( 1%e8= cbBs6! >¹_̂+yhkX-R?5)lyX $m+"6-$D"djS7K Rӱe&n$0.q"1 HD@H8H16tY`)+?>[V{܃.i`8%W5'f SE (K\9@99$&#0 >(R B"E0 */[ dD!Nh %>1sAJ !]h*F&`֋C@.j@ԖҭA٦YA霚*L PZAQ.n˔@G!#T6Hhb2݋g HDBZ'@M ,   GZ%FSވ"+5%G,p@ y۪ !PDHGXP4*\l e B&n-$8m@|<8. p.͒vÙuE<:8UԹ 2@D3Ch N 樄dh$ N;H68L L-+D#VB72E  L1(!ߒDkWSd9la) LJMsh׫)FR1fM*DNz$|+[ ÕD#2X`%b"14IVIvM@".bbH)tdHAƓ˘8B8< y {FD[wCW%\GdŽ`ȘH `:XTYia #r)s΢{5 j6XD';* t0DB<&xm,ݰ;zZr=# '0ır'f*&[YS b|A!aP..4j$1Z BEul mà#%5D,0.].E`C ;a$mhӆQ#;hжA9WHq, zKZ7]) PC`vj|,NQ&<+[K撮KI8ş"!9o, A&b! -vMI "dvkqx܎;g lLx[iD Gg3ΰx@&^Ȉc#V& DyNB ڼ5=&/\FT50v0  Tdi&ĐWe@[N i" 9K)-%i@4FqTd֭/8S.ZLujk9WHK nD:yFL˳x Kkgahʑp uPfʠy51PdE"GDQvXWH) !B,K<GfIcC,F!ؙE- Y2\T2()PJj#f'(@Z݇^Txz2Py †/R%ĉ4QC(%ol]0n%iJ(1eIiN $JX(@M.%Wk@10$ƒA (r;q@EL;_&ZXX4 B[nP" 1"h z0-#ɜQfYTQI/ qI0xDHsk)2w4) bn<љTB%ɑ*cT: 1`Nhf-a&F魢̝6ˎ!7jy+)"@Yz" -:SQVȀA dT86^ ex Ye'jIei(NƐ։˙WbE̷rGd1g;BBܒVF(UW аYG=wz= }qe&ΗЉSlرE LIDvf@C!=7xBɖ KoSJVcz7 e̙9q ix]᛺LCi Nqxȓ6 D +"4 X[h"#vld^U:fbI0WH*: 9&ف[fXF!6@(K0k,1ֲ{kWzbb'iMLV5ZHp}%\*8gM|N)*\8Vl$܇狣J_rpߜ:WIMErA8ec6@H~B=TIPrHfXAyq A^FTa`Æj]L-oѺoQiJdH`It(Rìk "8#q =7 Pn@B}I9p'ĶeD`2Q\x}HzzG^heKfy"4LMw.Yܬ$?Hf#4fбdU DTLHt.t%ڪĹCf@2 @c)@mA&PZ\T@$D vBj: b*< 7痉pD~p`׹u $T9]2&@) ,t3m0V]4Ҷ#D`D%1bK5Q *\3=ڸ-jx""6o*SM7Ђ% $D~L aln44DЄF[6JFM'LUw߂~]`zC{%NőxPmZ1s6pu_w[e!#_IbPMcL&6`جU2[JeMA/v%@8%Zo17+ dNVYldBn U`@bRXjPZ C+.,^8 <" &/D+Kh1/$(ނ;Q)@0 JT(vӇ%Y A7׌QY*kѡ".*)d$ǜe4LX "6b ʥSD$i*w+D@j\2d &e(b*s*Df-bhUR\^7pcT,r/QkT..$-4O( TXBP"  D>tYaI(EU‰Bn"Li;;\d( p)5&Xgy;@')ha󼁕P7?QiHI $ꓚ6]l o%~"pL‡Q3pH̉R:Y( qJ*df%-fDoQ j 0)0E )6$ZàRfY)dD4uy:];G!b`a\5Qr\9!d+~EQa4lG1RH᠀zjD*l2! yH=%YkDKHAHt`i#-T(F1U%ZA~  ;cFmĭɗ-wīǗ`Bd)1$BP$d*Mj1){;=LT,Q1I,a b0R.!#=5F'`xf G~4r,4KA'gH=|qY^VKǜ&}$VcEocx:%i y(zQ cp2Q1 KI pb!RpIp !0N4kɄtuSX p]w O5$d#U1l( MR6B#ZĖ i$e Ѝ;VBL`<_"8 QQ _]&(T`8"#@7SbjgO`( m*.dU@\jmƞ3a\ۊ5 M BTֳ%XtE >"y- +@>8Q+4aǷ )[ * jK+rIAB싴c)]$?;Aϧy9TdL@B*HCIf`aσf vDdeZY5Lҷv`iy8;qRU;-TX_"BX(d_=l,:GPm8Xs6HpL&9F;mEN4pXXm)/qɧ{eҤ쫊t͝@nfoCa|BhCBKsD­tK3lj87PSsl{5͐a C]Q)eJZl4< q QXB-wFܠhU'3"scfJ GDyH4Sv[MY$'a['ק 4쵕 ==2`u; Oubt XSa'YM"#5VD ''B$4;J8M4g.Uq$.Ο:; X& , yıQpV^L8ץJ`I. !Bët8!sY'VcI`2kU2%W-,@`@d }QVa:)MdNfДb!03rq84&i-Eڷ[tQ8V}q!BwAEfdGKมs;FI`Bn1LUʲm&&`+1%Yaݐ1= :GDK Oj{hr>aƈ g,s# ҽٚOxA ==jӫ7(\ÈB.q(84 0D;)tBeЯ.DCi1"ԝ1G^ dЙTw1*eE xh)GD,B,+Xα E@C%0H@hd%yXSQPl(^Vqq"z)`"I53IRD a\h "G5dcrRYoqRFDF|x-;& X2j*2^()yp-ܢi,y" * *d ,E;ǴBCiJs2gHd^fCq7aedP"Cm B{XDQEH_q̊a9@դ &L@a6$VVQ `Rc-n$6D>j Y%ߥopI!etEEE1 CCRN&a`"cͰ  f*$̊@c\ B4X */TB;BSq$!0 .C6.; !pW4Yl@*^ɦ"DVY5ۏD@,gU)M,YU9)5#$QI3F W į84rqlQ!E w[vB"'fv3.- 4 U AfH" jy/Bo\QƧ,"K$بsixLuGa!H`*z ӌ%YF%vlPFA>N8:;1!M,-5Zx[ T `Ncteg$- 6' l_ MZI61LYbj] m"KNQ=0#ld)LHrH|I%ؿ `}%\1B7E (Z!ᅫ)5!)%JEdN@!73u<x$dJCdU 9 $hijTCkFE24;ahS hB}μ&LIsF%@Y;`2HKҥ2 MdBȟwD5M"!FӨmLw n\OJ0ȲhDu1Ae$rsn 4- =}z2eLv:@ouexk%^HJ,xب̥8,\[A$-JKs4$(5{wL骛%X=0D$;efu]:BiOM]&0+n L5RW}!E2*'e vfQirlԆU%o$Q ݞ -|SP1dpn&0.2 mAR\ @{DD!\{b&eR`H 8DH} R M(4X;z"1JH!D(%( ӓ}"Ѥ/>0cPPCږ`6罩LP4)L7nC͌ I?!yBe7'l:'B|؃6Da (=EWBBDR$&%dt IiQ)jP)<: !d"6% M ۊv,U1QT $zi@L0A; Dbiݪ#\b `D8ʂI F f @Z$!(PK  L2lG+c-!!$Dj2d)v:;(.lݍV7\02o<1&7M#@B"$nV}`S}0CV!J-P6O/rC-ErAPzLT7W,E:LY @-/ -2eF \WƎ_QF|^@+2_Q+TOv&$\WA E1 @$ ɆP 2#@9;n"8dѝ`b4+\r5h*.\3q,lݜW{#%AS"ӌiFٿZ-0L\oգ HbEG#=8CBЦI "[;@]rYML~W eK2Lv.nnDl CdvP' s0zN ҁ>-Vt ִҴږXDYS:)Crw쓠cDַ|À\H!]Hx1iXDv5ĸͲCyyhpSEP;M2SLr0 ֙T 6 dw>\*+UhS&vrN٪S,D! _&<2d@ʩ a :ՉG!ڮ $TD, F4Be!=a 2BZ̢2 TK Eb31КbͧSVQDZ)}{X!1%+d=2T7M[q2IH#dC43*E25eRgBŠ 0aR+H3b"-eӈak IJ8c!(&xDB`cma ϔRU~}פ%m5NͶ" 8aVFkߐ Wd묠 + Zٶ$-1As`rwF]w;H'<?#PG-?hJdޗ+Xx,Rb^&n Jtzze+r+fH$Jl/lu`ILOVQX PO{Nhə(FS3z6GDSE0H*1Tg- @7Qd)ߠ7qB4x@`Sf0GEIx9û%/ zL Ḧ́ ~X!h  iQb)DR6d\&|l5 " 2Ƽdq̉ɍDˠO$07`+7 !(4lHp3ξ{+B[kP !@@RNɢbI/`6(ѰHȯ[3<=Pʊ@ROi:0r_$RVQyQnn [z#ONĄ&qLjq"\t 0uF Ry!87lXriD}x)$'$|tY DY!(%`Q1pbPbk V!Y6 1 XYr48PAt(DHsDNu @)AsT* DcF &1&޲Wmm(E؉_6zkMM 'UyrjϫEkH1]ְ3@a2/3'@HKFo]+3%woghVk cҽdΗ4'fMˑfECD煶0`\yb,#$&6Fb$e[F8r-AXቔ)xpOXdA r C<*w`g`\U ]& %jF+Ws%Et@X"lr`4EY%ɩ CPXb.~|xp`@ߒR^fMblZ{mIji(PyЃ\ቶ@@#n 53YPcdK(х$4Kl_VM! ]arC9^Szf'|y=gEU$®HR3Q R10ONòIxVN͞wSĐ,:6v+b]K&0ҐffRĤH2Hp,8%'ؐT7Ip(tFFY#@BV@,-HLNAm}ae h !am$"8ed7E9\h9!LdVě@, 0 Y F:#(H׵ ,(KE8$yL[B_> Ed a*ċBsXB=J2"e0/5(DE %+9DG;!A ,THW&*dTH2Zz\1IKindSZ;V HXt',E%,5sH\CN0dÖAD d" x5qʎȖK-ZKÂGA黬Z n F Ug@He\`Vقr5WnòXO :QOȢ9iȪO*M62t *6|ݹ< !a(CRK"NHHБ,(-bKΉ9I@1"RL TQ܄pM\x1dʲЙbn8&F"VNmBŐyT'SI +Ǣ]&f%%E2jj s?f6T)W6 C2VH"IO:)}L0SIEy$MA*׿EDUΛ),pD B@6sǠWO*'E ĥԄd$'+ޮ,ԔTCJ8m.j$, n&r"ɑu/\8%q" '{$ 'ɐ*t ;{j]1 ̞hpyAȌMuGD*"жMT8l |:Tʖ<.j ',A0IKAQsqBxuF;HELEEºtYHLV1*&M&$BXYY'HH`jd+`,R)XC-˄YFe%紴ag D|QjX*:[kS$K MB!&T)Xd9FR6h$cTbI9&llap1#h-HBaw/D}9w%"[n,0V 4zDsgEvVbRF;!!"ARy<#1KeD% 2d$K)I^肴jyRO%IdA#p%}ܳj@RԺEͣꔆckYS͔Q˔"zwDX#>yprIؕ3hey[*J 0qk776XE,@T0@ōp)"-"(0e? .$A3aĒiKEXh$rQw |dTL X\ `"Aә^aˁɋ}+Z z2^S-z֊:̒Z`N$P'=0Dz$BeHfcˮA iŹmHt^`7@hs K4X' `Bd\d$@I-2['؟_s"W C"Q8 [T/@ (*\]5sY KfGmG&P ~B  Y :Y=) ]kڽ\W's:&;aM\!%YP6RHLsc@>uO'P#Ը Dib}=5i"E.=G>?*ts'ae1^Ebi(}cVm"3A}V^q.t,S@l&oy XC! HĴ/.$cE?P+H(32qcA*Cc[u+ۉ=H65h敁R2">imw3el=bmHw'XE#Ŕ}vN-1I3.=i x]$l| rɰܩ ̈́z!4Psl#]%SxFORy\n'^qhw(;.C%=.u;'ӫhzɲ/3;8!Ͳ7#wK\%g kn$S)3 ↛1rwUcłt'uD(VSWQR[mI?B:= 8N%HZc\\N',\7mq]׍5Gu:fjzGow8gεړXA[3OŒH͏pHĂ*C)Z1nʍřÚS]9d:jg«haEH'_ҤB#]Y@]^ڢRJ`+34:s DŽNb Ƴ.j,pwSMd!j{ k -\~P2_fV+]$=(te;9KS$Qsο%+\5z(J&LÄ{ pqE6NLIkgw)n&aA|W~-,lgpayVz ~Eg7Zs+#ϚHpŐ&JG3 =XxY~#.X7Bv~#m@g4Sğ/}񽓚1r0m w|~ /<h/g$DfR5ajhs†71<2Tj7>>s0=exhޭ@g$uꬬ>߷{9ѧy+륑- T&BcF-$XanlMCA^D\ fIH+RO ^>+͡jIH+)P7C~z‚@D>%E QAֿg"-$xN tV:İCH栤v`xuA缎<_;\6ѱ㌽ݹ q(H#< ",o}쮰!R 5Z?=8} 8 V%匠@t'YS4wހlG _K4J K^gZpfoOVF0ˆ,qT-65b w,N`+NHa^zoZ A?ez߭V:{ ??,H)_OȅKu;idk<˶4̯I! 4Czk(U!*m2.CZ$Va Lp?™|T }y=9T kg9Pgߝ>n=,8]D_)QßkKNfkGDrϒD7/&H3[~yKA^yAb!3L{$djW+PLޏ:x旔Z(V~:"prwqLge :x2iWSX Ӧey8])̴IɯCČf9- SXuG6E4wv07&U!R|{n7QG9t'.toR]s:ĀޣNyξ,TRCݿh s|tb6}ny P~Xk:]BȐ_ң$`[sܞ1d:n؃}O~>.2.~H֔#h;z ^H/[^Ѓ§ᾆ]ǔ~@;j>ρQ_~%6K wfS[:e 9X3dh;g?{UzP?=Cz2"Ѻ, #0WgeL_e]WqOƐ&=Y=x}<8醝+DYNɉ~q?F\|랕pC}@>:{0Dޮf}ml=-&K$tD'# -HCB`<&Sx`VX~vE.?O$]z&>.![dzaؗ'9h BUm=;N*5B3DY \1u5 KWh"{ٙ[l<~~$>=z. K}~|^$'ݙ%ݿx3ow1$ Xnmc&*c0 Mt;ݩM!䥡8;%{.E%iCg0H_ gSOc* S^\7泥zxl}͈3R >WkW_%B U}_&z8{5Ͼ[$U7¦u!pqA | a:8QYR⼤z;4s[{)䰺bPߎyJĮ8 6ko)ᰞ)H'm/S.0.c_ !F LhFJ}=I%tcUzm)L{$ ;yZmzp0[YD Ft4c51ͽ E4SqO~#yOw]<5XM]!8G~YijG'sC#z㬓rI<; kt/ JJo?F;ǻeCzx9cu?޾19d>$š{Ol8yn?- .\b~\n5[e};UZ$*;=5RྴU9'<J:z{P0 "wTCtp^ӳ5jd@TKKDE>h8[}9g 3?b[<"ɋqCNrD>1 ;z=1A&xh<=͉:3YKܵ}0`*?B5. Lݒβ576J9݇8[O8Lf;rSa劤2̗gsOm%I#|-3ܟgpg4]efhl=tL~6>5 Dgs~wg_ _Iǟj1|M *;Tꇵ M2"﯄յ9=AkGA6 K#f<=Uy&)=V^4u )s׿3AuǗgH_c w'iZY1&a+겣:3e3D!J.U} hk[,]weP@Ypws3~ʼnbg\)5Wt+8i4KO{ +a\F`xWb0*k݄U9ty/OQy 2{?rk@O#k; =uxLAY~J;xv.ǮVk9l^GDܸ) i`:NT}{yҤ ?КDkS֮zR;dXU $/Kk@ a.P,3.d!=sybS?x@f9%'cl-˴>ʸRw(b?;s)JCSOcPL8Nj  d#vxk!D"JZם]w5ⴝĜ8}|5Aᦊȍ]Gڽ%dgYT9D3އS:m>l96vV9f~DEcY8T{&BJ`8q+} }_ӌ~RoP2esD6xa>4GNu!J6FpWKs$y;-8 t]!Y bZ'mXezzM>ų Eq>3<VZ=tF#:}`hb2780J-WC2)JOXE8ѵ&|;3]UOԟֳK0ɜ<4a~sž`U(mhqkxRc Q^ 5iUDR>M'R5Q ACf>ZQZXKo>5@0ܻ;J;P@5oט#t"Y^C ys_ջT $eaxe }C|0"=T) qztq3P'74xs={+ר{܌T=4E`b>kbwgB[)AP6bkJ@chw"6| Q h3O֙jqJ#?C~VIk>L̉7lsT.LTԜ"lĵOW]A}er-ckr;w@(?Oi:N9?{-'}[I~9lBF>Gtow0|S@A?3>p,^I|QN,R>QUqp?no9ye[Y{B/75|EB=Iǣ^#QC.CM sg=/Wݾp; ă^q|w}}@0ྡྷkҁH,  F,zz?ҥ47&_&)CIBҞE}Kvi_3˨kDmɜ߫a42Qpf0DGsqYY+9 ᜟF?[-7&w'ZqlBHBG A=xb&dJس]b;8S}c.A?< \]> MEr{|mŽ9*u;xxvot.{ߠz )A;|86%dD[6I2x-158{d)z^Gz|i}[9ijt}{P. o9>0-|IOUTcw½FCbi K*iېn?((%'氏&HYH~kRqCy_k}֓U%N-u i H %@B(N{D%RH٭OAУotQOE(W)ߥ'v!Op @}fb`Tx=?i$PG.D! `)3 HB?ӟgl/MΎq2/6ns`2ZT" BDj)(,i#׀E(r@Ѻ5&_@}g{e%ȢYMס[> .,vW鬲>:iiO I qU=mk %aNEBa}g«p1mX$1 wQ )gC`.~xخR(|wE>ؘ&%P^ 9 O y"naQF3 U—1Q\ X=?3OY,_Y-܋M DuD|=zL"NUM7)?FLGܻU"Cµis S?ו1ezt} y/O iAmiey>?/ }q@Gupn7 8pO\MH~hCPUP|鵥BAy ^JZq5O@S^őgG@zwwu"w^#d߯Jxx_-Y*AW m2+Mw@i"kAM`Y"fS8sBgBWt]cʪNoES}oR#B\*켝(繱`ΓW~NjxC%Iu+Pi*('EJ1'aUAB9b> QҚC%WɢaAb/ק&: >wѿ]Q)SX?ЕkW=;\!o}ܖP@IRC6yp>ʤICp{M}L5.t/uENm ^ +AO8STYXyEB;~[:\ E?ӹ}ķ7\F^[4eq'2ͻNR~8\y[ev" W7} @R˰OᆊpQi`5eǞ:Z-6ᧁC_Zٲt"*lN~FEç7ŞZ0y40mCq=p+3jk^H3q^|P 毾 +U놷'; B?@ qus :GM98BpO}H6]B|z,Qe DV6RH=bB1]w}Mi1{CGFPunIe`ã,~~Ѥ͙}=m2z޾2}# ûm|Ҥ:6~o9 *+YL:P(:? >Bj㲷\6=q0 _xra43ߥ8-O`WM S|U af@dC cѶ}XVL^_=䊮XOT`ࢠ!=ebWHuOdξ!riߨ'fXz5f`?ݎGtqoF'=\kAХ7M=2tA(G߾$F D{@ >.Z0xE$EA3>5&]BKEU39QIPV$H*V|_Cx/6{|s3ݾ|+%u'O]6Bs愲G>"ou%h4%J% *?&ii^XpcR|8vx#L@}.`YaowiY\_+S'q0h6K|Q@DIf&Q-aLeij#-|PKpGOaC>[%fOx缴#D;?V7l-lro&g'u߽ x|JЬ0>zRAC]~uPA? .DF}/ÐM,gfCE jb/L ;;rx`Ԓ ǽ|US.{(ι!BC qo1>cIITV$XMdjK<}JA߹,VATkb31 փM({Zut&DZ^9ؕ, *6s"S{)V'o$ջ{ZS$F![q/þQ\%Y?.N"5Txjvq0VX@iWT:!NƐi~m1Np.*?hv>mE O. lDuqkC")5+ V ,(Q†a?ePZh٢( R^h)⊏g'ȺKZ%=hЖ|&˼X9MN' _#o SC wŵ'!F-Eo9aW]hWd{"ģa 7I3DC=Ď+_MRB2EZWǫI:enѾ *^" .g=6Av~yT@-U' \? o 5D1^F^K7Tvbc޲y>ļVD WʀhzhAS.?|*V= z̕?NJVAF%<4JakkYȴT5mSFUſ# pܕIm6vWr}=1dnx1#ӊˌz-3 ]/.T9 E3>*W OdŠeAOy,cݻ҈xHLL'rhIfЋ!٣ŕlO49Į~d=߾6!pJ?JjՉ䂨(*;-tف+X]BP$RN]sHz$薠|c7y p!9#H2ӫbxJ_@h90}Y\?rќ\9w0`6*[b}}vBXRE#֏Nބj6 K^y 9-.ʠTiO|94өxGwc̴"`OJ}~,PFFa?O (Px,Z]m %:xEf8gG"z GI S8-: +IIE;xbZ$㫙 r6z}>bb2l6w=Ayl+ZI I0FGݢ@.ߧ5 3#訿rW Ή5wU0^<o hzMqKc.7/^)&Z~<%K>= mo Xh%G#gtw(e?|t$swxN )9.3Pm=Zg[6}I|"BUf7`5`0h&gF@P?D} { }1iJG}/\!:)aW48tƨIuB1-Y2S p"1ȍSoHP柯IL95#0O20ZmKFn F(mUj 1W%4{nk:I_\z~ŵ4b@#އ&j윶{|&ug2QYP/\1JȨdwz@Kܼg ׾ vfN?QQ1%}Y{06eO׾*:E2S?TӕrHA:?eb*/$c(Cst6h.=;Iv+9]_gThȎNk6qʖI]~^_u H x[3{9cױ%u5XfdbY*v{cCosɁ &S<^͞=->x4V} c< ,ۓR({ D/$}k7 kߚ^ &DKorUsS К[]rqZ_7 @agϿIsxb(YÒ ?H1==z{دjelC՗]Br=o4fz|:k6dbS\,\(zF% o ӤZ|ⶢW(o%($Srg~ (*IkPXVf!\}n{5H ]Z(?7J YyzfT~I <U>~}z@ꞋC />sM<8*Dꮇn=r5{ϧtÈ}Ò.*~-C9b(U{4Q\=TܻpZ z4uƧKؿ>|o 7MӍdS "x5щjpgG0l|,_kO( S賁uw X--/b u[ t-× Ө| FJ$ ҁkڣU%U=8޽i)uazc ukeCxʕܿs^ ^&z9-b ٜ!}hCY?ILlaCiHQD"}%[Y #'uG"0ЋY%=`Wm,g.xBv ='E~ġ @6nm R5Ҵ9)b?T/ ` jGð]|+@D8.80IguU$S0~*=@:ړsπ`D}VOO oߡA*B(dKBq5Z}su V{p5jT A.)HHf{s|\`P^t[s>_Cz@(h aebh@|LVpl{-T~Y_e`yLDKr -9Gr'|:=aBa qa<2(,I/o !o-وsk]V/o4FbGg+l|gGFV-NLϠu}K:B1I?2_4Gvu=#|.*Yk!ͼMJHg֚Oć`#(u.@B_~"SMsk@q\y-/^iqn5d*b[[&XpB F=\{|B*㧋GoӬW$-[cSsؠQ2;aF`qOKY  <3ٻ[s 7?kky]3@{)õC۵=g Re轶+Fw]C?kܞ?oGz 1[hX(Yl(=HGfd!PB!mοTIzt+G2a1SvڐE0ټ{28L3*82S?ӎٻ*ޏ\7=jXۿ}t.P .  aZ'`|\i}";?Nb?[j$==$c-A2?h97w&1L7 4]SzNNb|[ӹr$j4eԎ3hSטb9޴>T?)0. vN]Wuh HD{8 c^i~nQ3H^4}{p-=]1>@rOn ee|YխNj!tb"<}sڥ̌Oό5AD|#4)>%ՠ19gMIg,$ =Iaߞ=<F؆JBn4_}a|$m]?;s.{m?N #F錅xLYn|EWw?=HcOM잗D I?woOm3ꏠ% M}*>}JMf[S>ZUq}(n6no)PaYOoozӘ~95Nk.$D>eSmf11awp#(ޅ"?<@?!=NVuT2JĨIdl4skf牒Tߑӹo(?>F1nIf*Xg]lZ( a=o8`F }zn2"}w;< ,/#)O!5d_MGz~^xqŋ@|aDO-8Sڸaۤ]WӗgkJ.Lt_edjsz䇈~ !b<g .^ҏx 1cze0^\fwc#E[`S O \sDer&:#p%[_aGn|$fgNuw ̖ EH\Ok\fכh~X,j?t,I!ڍ ~w۷?ׄ5V469j)*$A46[R=jz?G&oٲ$ѺެIlR{~yD_reg鋃^*5?=x#}Zŝ͢hP?ċYx }>#Ih&cj=0Zdsb )7zw""7eYQr"Sѻ8@ת~pkko#s~xڟt7eID>rc-B#/3B[<3EO7]|a|ܟ\GYe9u}8c=Oq.zz>x}G}7֨ *rA8<0̛+ 8k+t4oпQC 5|>8ܚ>KsF `<P ݨ;!0$u[ {?K>WqZ0P}auD B/r9.d0=YMxqw[пGpNb|/^0DŽ_C'M~Cg ҍqTTR07(gRx)}*}X~H SB`GqpoH JǬg*  A޼}咨5y~7=}YNGS5m~ş}1CAA,t&r|%v$z.z~]ЁOy# t:v&4}t/'`ZNxCXW>y?$-_],#2gMscSW78Ux"'Ru3o=~rĵ$L:?G` , Qzyw:=>m>0c&سp=x"Y[/#mʵMy=SBzd^x)GKg-ZkE|@npkd V+f@RHz@pzaaՐαGbc[4a՛'4zy>f} -+ߟi.aXz;ϗe,Jk(ph6C+2;]RޞP3gx$ΛFNW|QQ7A? qPE;:\/m6XY‡$:߿9@m^գc Q]bڕ@"4-n3~z*6tW]?PfAMd\Ĕ+|(0~eX y}xTj og^2}Vuw>02tO2WQ SIi:q:$u}> 7;ؒLj%?>@&+5-wQpQ?4Ev_p%Hzۤ/.ɀgb힀ux3k;KؘAXy:Oʒރ6c<}Y cbDC @=/L:h|uJb{ #ox\v M=OV0Wzf61ND2iLpo [{۞ORP8͹suK 'cjQ?KsBw`&-pUGy^! Z$Hs=?u!K|8*ȝ[ _0g(,^`{ ka4a'bnxHtg*<[jܯ&,=#CૠgySL&o;܄i"}j犋U.tbk\wxf'My(" IU[〻 EųTtۺH5(Q6ђ`EUf@^}}sZKz!=>辱 Nr|KM˟E(A>. ~,:xĒֹ9{ $ts$/kTp<*|dA΁~E)xS6XIzCo0K7ɕ.E6 aYÔ=3)b#k=I3JM^iҍݯl)7|u>Sw|j.1/gAxd*tL|C[]}̌cҷ]35j,';v_Իu0'N=ۣm>Iӳowʸ&S}Oa<^&d<BݯkxA9G᱑C{(b'wCWx pCW} ~>OGok7yh~kOJ8O`[FALҐvI!ftm76[.2MRR6kև]8x >QNG]~Q}[fpAa(_:Xar98K1=ځ)HA e)%NjGF1#1{l7U)oA+%BP͚Iۭ[:":Rz$GA,KFN]ˊ]+`S͔EFYVYhC`*[&'roVWbX/nPz0_EWl܄n1j$\FE>T9i!>g82:O0zO D^Dza:8gNNS{t'밖)U2~M_H2=}?rTBo-;窉T9 L1HO^4"L@${4{1wA$G}]r㧸mM =ħ|!Dـ5 ? Z(;'7^~xL5+>v3?`qֆ:W5~pύdHw*)OYh#a>JʟM|#`\UMf-q*[=z|nl}gpdC~}5V/w׹[CI;Xt=@p63#}YN>CmhTz~qA?2r%מ0uKܖ,. '"Rj!'b%>r|m}a #Y__ o0m@S :}lI/" r9Sݸ[6o:*?A@UbB:jK*g*CS|JVP"0ZAbJqk* pa=ex⒪6#^M~a#\Wb8Bpqh`8&lGP׊d{nn 7ֆ2qkC37KqxxRēwQ(餭lS פ6t0 +I/$^d!.)AP W}&%Qk=B}^Qi+[g:}#֤LN+>|*/Pe֡ׯq v?=OhEHR p|cXJ ؓ( 8%cYpPr[X-G\@="")cLU5R: ۧ=XٱZ kGX{̻.I=qe[;<%$oxa!BrhU_OӐ>! ^9(1o,-f wP4Ϲlwi~CfXf>#Bφ=P|峘.@Yf=;Ne,m7`2K7Ί L!A{}_ {,E߁KD$l,J\}ܵ:W 5/|{ȌK'CnYo?K:/=l)WU/? ']r(#9'<x"P9'fŴF. Cb 5%,!Ti6gS'e`b}!Gy*yʞ'* U$r$- nhۖ }S<,"Zڐ6uImq$`jPUTQ瑾twܧ FBj ^jb P )48R  3'AwǼK vfM 8W?}B N{5/-7_:Q]jn‘jU#eᲢ&_~R[OhfM\}!tz7,hz }:4q`"Yo|Lr\ˌ |ul C'o{ɭAL$ys\K?qi%֦Bp0 z7kp%\a`U>i'^щr7my(tϳ.q(jov +745SA?gL<Ǩ=zoنL #b}RRL܇7^s5>PE8_ 0$g>x{j:cy/Gul@*)_==}83we"ɵJo[rO1tp_|+C]%CP78%O0Ʊ{Du&Ձ܀_) 'B&j6|t/&=Y&J}A>  l|{p Ab5$ZwN-*:G 6 J;J0D$jTZHЕ`7l̵n`D!.I, A4<Ƣɸ|XiJH@BʭȌGGmXaBpʼn $2Ŗ1@RcTQ&`žehLa2\~rF0ʽqBw|ʖ{ #SAP|:g|}CM[|F/3JZ.36Ł|<#W$^zΧ tLI|'IF'+Jw݂]K::˧-٥d^3{m ƆZf& FD7Gx k1Pґ+˝4AxbDP uV=&p=~y2Rj'ݞF]: <qs`E4{^xH`4c\҆W_=r\T$ܼY?䫱_}Vc69/j%Hji2/aJܸ)"=}x* Zlg1ӞKYą\;(f+\y=O*4g 1.e}榑ʼ,|JOnshⱐߕ}2Iw?a yMF ﲟ^?$|ik?7.x5=O\ *g'9a`=3}#z ѧYF?s͊;?ν#xz #0ι =ۊ?g}E~g!>.%'0Kb:u:]+' ;q}þ1﫝zxMrMٔXA7f@*78@C-zQABCcR'&@N[ަ41D\UWTUKnf0RB ` IHR}{r➴|x7N/Hbkz Az+1A3R$R ~UyԨ7im $75OĞ~\:PiS2oz+(\gJ (D=WraKUB-HlKgjJoƭx%b 4hZdPGUG>7KqW y}ełH=4&'eQ/?Km*Al#=yvNi-;`'j )(girǙbNy("yKJ0S@r`z+(ri&vaw{/U}0y?BN+eTx+ttH{Y'U䧘)=fZeů@ S @KL㏇+:e Dܻ}*k.h~ {:0\?=/PU]xfc;~ "a{2rs^\F~wƒm }=0 njA(2w" h'f88? 2(\%m /UV{=,O~Nt~ѿ ʶS1'?2c`AğGj{Bz8WeCZa[aq\2'אZ^z^i޶|^LeUN; F'1م79R hJϻy7Y]V0-.' ɧOe>H_{>'ޡoޥ/djLjLA[2y<&2'S, 7u/xgӆÂIaDމvꉥМxxҝHA@VW0IG<tZi}z,]@~F +X<]v ,)t"i?XgVoйݨE-K%"xZҎ~g|(K$ j%b~dt L DDNq]XlߍUE0ezm ..sMQ:oG}xO@ T UMQxҿ?16 cS{aHzE3|HQZhE͌Cw` Īghu[P} g}.b%OiZ?|h^n^T*@1I;F=ڥ(K|~5bǢX !qY}}HzJ 1ulh"aCvmVxJl_s)&s,H7:g[<Ȇc*a^&I?:l?}>&4'||$r|oY= xTQ½}`J 6mlLcEK Q,y#oxon>^b |F3Mg]#c3aS롯[)k|Q9^ gmFga- HV4Uܜy/¬'/;\{X`; z}qj .n53>C¶Pg×HjPk\{[mU0}6A[sDґށD1w+7s.>`uo_v0MnԻZAj} ;H]NMO[MToǿ>֫ye.wz{!((+)UttRT W=gͰ1pŜHδ ! 4tߙq/؁Yp,b-ϞV#Bh [|&hH'$'Cw׭^Z}+]vBE>rۄQ0*C_j{ã4}|ZUHmbݼ@HK3{ǽ|Ţ+¸)ҼtO~@S`L} O†E^8T CX}!EropZ3h;HոV9A@t5*Eg9|z iKp1;W5}x} ] /K|=vH&'L 6_[}_w[` }+r}Nnuo̼VJ`"n/ЍF XGiq =8l.$%s }h|~9UxwĝI׬BۋZ'zqKE}x`lQ2;>* =Bg4X0Cb{_:U=Bzu xS_&@-[7I? &l;6c6)~R}w.7ѭ#/3:-'zxLhۯ$g3H&-*nosU;MۂlGe" oOYE"mwo7ӐjB҉!wU$rF 0"q't" n7Z\#'+nb賤bf~cA;ta/b=ߛp_GJ4õ??+!=Q95ES?h@s].@ ^B:UhVwW*\f< hD"=P4}+ >B,;ލz$M{߃5m+ =g^Vbߺfձ#v VVv UQ?MDQWS'n,}oI3 8snBtq]Ǻ]g* ؐ2𨮀1~|n rOLimxAdX^<8-THH)E_*Lw )/`)FXj9J 6t Jf?-O\_2ML{%^~LYg]dwaʷBaaFC@ScbC8s関B/rB`@yޜXxض]~Xh~̓}4_/➋>0}HCV~m>maxr:swbEg>} a6uv}i;o1yG׫P,~<| GWK{҆dW9"_7 jGiWx~6i0P?f.PTQȁwJFרO2J`l&7~Bm< ,ϥGV;㥋n?vyKHCG!8Iş7mu y DF?;slפW+m;lM b w8 Pj fl>"*)XsƊJ4C6W wsg^6?+( Y{T[|D) ,^T*>U? /#:W 58B i@#%ya;T㍟fU@ʷaq2ri糕ȹ)lsD[1'8|>U#uOJ5ht?^|ONpgwM[s?bw=7QEMBF? QcC*t! 7<p!*0@8lD Fk^F,.VeX +%lqG9R(W\ _~1}<^!-(Ao$2cM$䁶Z׉AD4\/|gΞVAo1Y|aOB3fi"=bw(w|Q~43Bo1!(,6קN)A½_qMgv s鴮b|Sj ~sYR\?|l٤ rJ<+ ,foʬ eWͪc/Qċ4k Ak^Ew=/w8g쓉[O 6MaV*A^T#ޝI'肓8RTJdS:4BƑU^'gPoz#zb<@]eGf>oeMwTqP` NSTmiGAG{ɽb >hlEJT8zy#aEߦN杄Q0їۯsk>⡁%rDN 'IV9zK}iPi$ էPv:ԅCeD Zӥ_|NM4 QJv_,kgZM WjւhmCJIH{"S iExNaqK;۷y31Ȧ"hT'x<*#O}1#^ϟT\}Y"^|S, F} ۇNYQz*=?"3o R:쟳`TY]#8eA05zA -?$UD%Pߡ}ׄm%<7ᵈ%-7]av;c3v}<)pt>B8k#GCPD')?}|>=v잲Tui+NYQ/(\z 9kB0(+o bdA{:QOEG(ʊ;9|#= *AiftTH |rP;g1%Drz]YHdgVQ߄aX!!1nL L{?$F͉ANaoxSeM\[`G7(E7z7A3[:'Nw 8eAOF]yF+Bu%.-N퓣r%°̝Ҭŏ w-_~:Yk 3 ] GE'>YQd%*,x2UAﲞ- kSdMvX\h. F{1Z&̳>x<2,gI luŮj1] Y2V<ܵO>kHHcc#jh6o|8?>B4)B&{n"]i˾ܱ< "cӅȠH. I&F;^?GӞ >V٪( TAPP׀}'EfV֋YRg(Zgˇze.jbKҐ`7]%+D*\W4H0kǼ@SUS z_vx!.рE-U7gD5ϮWwoBH/!ī?kR*\ۧ 0zzObC )'q ur7@|A`r~E $rt+uRC_`|аU(̮ ȓ黌Vsr=,JwLG̦?xS"ޗ^ ļ5F*Dؐ_.CemP1&qSqIB /\5Cn+T5Nx$=R.!͒1$8Zl Ӵ sf_իJ7T$A%Rׁ?wëk&9N KD~8.!{W ug #@DH_JcHP`TIm!u'|.b줌Wiլp=rZc ,O2IT#&8XV?<6ـp==F UFW523XY3o@ɼtb+d^zv)K'Ku' əoR^FTsSfu }iBlr̞U 9xVWD6$RkO_|>~_Y4dh_E"u Tg:~o\M O~n='L ҽά\Tz y HESfW)i.t\HEb`mQ+l_"" k JV a> |NꇕT5֥+ !@_@[5/ 3m0e0Sg r="f 쎣MVѯAjNry%P]@aMW,:U63} NLBy!J;a@F r}"'5N[P{[)0_P|1_}38z7z,)J!Eؠz` ЍЦq_Ym!'}T:g{TFXn4sGD,5C\JX)5uJ5s2@_A0窾.#̶SA" 546O<eJm(c'33Ri&5zxuցçҡ)M~ NmX&Z{c5>ةIu`}a3dm3=h &,F80KNi| /eFKoOrODq"p OGNCz6"ĈvDf%+<%z{b<悀H߂*(xlVYU@޿~! EJxXUm}bkȀe+#ӒA:’8"uDbտO;57/zɋ 㾦x)`8|ӑH$f0sX?Pφ,HKy,N*OrD!zO~i3r`BygY+ 5%n_ * KCqEZN$ÕABLZ, 1M`ܝ*_FI%hRRN̲J]73>zKg3$5TLS;}bNT%׎atz'vC{PJ*;_]B#NDJnx,U&'XS؞ 0GE4,#e/zwA^l '/Q"_\SPhS|hpP釖BrΕ EY{Ǟx|ôRN\w}/@h-4Hi*sAb3sL\&<\Nե{P V%< _KF4U"CVk_ 1L@N3|eL/U#hOV 6.OH!, !h{B(04ܬ@ZЖ%lj'Dmg ,5:}O) UZ~rceWTIgdX5c 5޴ X-B^ڝ] 47XCZ'.MXRo.&!cI^V-y @/":nc{[}_%&wXZURaYVui}2&򳖰Qqdx^\(,:0 ):!Z,QT%rd~8ؠOVIՏ#FzM=o5k?2!ˉeoC|]hє՟GTKbLE䄘wn#!Sxo~['bNCF5OO?aӶQ{^)#«/]jx 4hz ߯.t\DADYv->ׂso*",`Nz?ܑ$z=CkDzL}z,nBGݺxq5tRnHdIo@Qt%)Ba_Gw+ڋN_**+R /0a:z)2Y' J?xO~: |[W`ɯ1= em@隃,V+(fvyh0 ߬|J]4CqHzgԓ:5D )= #!܎mZE.3Yfv<7e4} "Ȓ wKѢ*qhޘ NwքA=m9,r\k q.F\S =6Obm7 XAʚzySZab/s _OO!1}GPeՉxv@KxHƚ:Po_ tw۾ eN_"12fD*ߎ1 dzƘ9:dD<4,13 #LédÏ_C+I\|[\O5In ! 4N=Ml  Piw狍%,^}@,(H>XEV0}jJxb$M w ooeFjLoN? F =^g"$K:+Pwipfr+inv>x+bAq Q}iF݂4z |Rw"ܝ{]TPDIqzIdHƸ|p `zoSy!ׁC15j;߶n#gn($!E۟>Υ}"?T=pX9&Eށ*S|xfo3 $Xfyan۳?IU|u$ďx*4.}V]=n[ M_Zx%jUB1[/Ԋk#OeEe=^ۡ'f_ѽ~ pGߖ]  %x߸_#YkĪ㫦6lۛKک Qb*CmEr#?cdȾ{{ Ny*ލ#My*HP=c>:iMQA k+,6}zU;eI5nyE$'e'g>jpCN1~M6M=@ɪpYH3]irx.]ZN['O_ܱ6>gH8 _Th Zap4"Ә"*f_g'=R}&p=~-v)}G?c0RӿES`\ #0$xV)Y$TOЛa@ً -b xe"*ȼoyY-$,[)@&[>.TU#. 2~" lYSfTE@D CҾ2 sA(@X2Ǔf`&cj=#hC@3h%eTDZ?77JӬ|ԉ=|( \]0RߞdV/ ֩< ժ2։=O%4f& wCJ1~\}lCU2ތt1b {I!iaE}GEҙ1熰;%WzQ=tQM\d-ְzd #,&C߀ao~-9ayssB%MH4zs[s0 `" XyE&DMMOB R=AGh2/ryå8çڨ'º AAwJAhgƪE ?^ I"PÍ-)w<Y"_Kg==F8web²H8wy} 09SOF,%MT@:줥B IC8Pe f2O# !۰|z c\{zCȳץ|'pEnz={DGIOrh::S]Aq,'8CHS {@PkԒV7 :HEoېXJO"p)HiG"zECC5m#m]ԫAH'}{{hgƌ~`TSa(OC<==1tv@.2AtxE5$ qyg}'s qZA9ߵ<`XFf3ׯmiLC`"F(US=??9*.)Oi\FU t0?OmCu}s8KSoEx_P^vyZz! 0 +p1y#xaƧ_s! 1BgO~v~'mWǧ(/,g{u y^ P-lP?9>6LF W7{)s>\Oa9op@T}|i߿>?3Kx܅'@H~",ZiU|6\nI"R{c!nl_ki&(z'Ow_?<дXXx58|= 񡋣SnS‡?o}G<&mb6'HN"ׁ 5U_V{}&!1AQaq?\6l|2w&=_8]X{i82pɸ 'o1&oO A_Im;|m},?Q~&Ng姜0DO9<:x_O 3>'Sϱx1 7-K)Jo{;?kuyx}VQ >Ú3LB%v?Dw@!@@ QbH0*t G*V4Y ] %AF՚_1Fbn=G (ZU7gPP]qUDPb nU$j A5W҈ͽ1>.)YND Um %S*D@G>B.(T@ C2$ .j5R,hwՠPJTwE@!i7T|D@ZU")**u" VrHGĕ)2& W h1@j A]#&Q*! 5"U3ǹ"($H<[^u!0A )|c#e9F¥C͊%j 4 R!hl(0G)răp)(v@jt"IA>,$5=gH,$0M45 ֪҂6'd1,dIM쐡JAB6(0 AG |a ȉ"Ty=7 ZX8 VHJ6^@QPǒF}l 11T F-<PD!BLAWJQ͢@GBHhTfW HX5MGACd :pWzkҲR`yRwe+?YN0qədZ~b} TF^Mcm=Ɲ<ă'~&34yqľ\*ڤ}_tӾ! jܞwgY\ Ki/&OIP_|Gb$v|4''&Fۛ<2 ' Aj]{p|R? {ӟ;g i}pKιn؞WlmZqgZYSٕ/aw*lܫxxz|,'ҦsI4ܳ~e!~9ɿX9΃k{9Urz^&wtv=MAJ,L;Έ3Oy2V|^|W7Drai7mڠ73fe:e曮q>Oo߄T5(sR}pnW&L't=n`_-5PڿA ֈ4/] ڡ2wZ{ř% 1J`^Ng{C*a`l,^@JfNgx"ep~jlQR觳Ux5%I*ísݪz?ٯn[oA ~UmiW%c2˭f>kLiǹd7=P)p8hٛbbnuNU9P?}"O#ϔyJqGbmn{a"9 8 m#1wh6=L>i~em>o߻?g} &)=\cAEZg-2U{0]֗T@''BOU9<KKux^ ,YuW-):9Żnf(gJNk/ef9<)(9Nޙds_[|8$^;<9}+CSĨIGqq#ec"zt,9{uu2.n袧Y"-XmzΔhU=qX0m- q>1#24qW=0=I S`50Fķ7)cdQ,1ީ~~At9A7XM?g iSb0ŀ w^^xp{LF|I;W3ِӯJ86oY|Ukvm=Et<?rp< Yk;fN&zs} 9'.Ge4V/=G9ĻoEfZI^}sx|J߿[) àHatnGYFk$B&]wc ~=aC}WsHNU&k\8Y2xuJzBW=^b{߯v0ZM1U'_2CYTۖ3ryDMt}~U;'ΉR'-:ݭki_92FMdŁ>XK^l2tM*BIq 5;ecq_UkZQp9OWK8Eorz~6,iʇ/ƮJ4N6m>Xؿ2u㎐SWr҇ɓnsQ+Ez^'l? gYz€'Z G3=\ aivfqb$AY=~ |Y}\7~!ok+mɶ{$$՗6uf͔M3Aێ}+.{,JT9~{ ]"I_ǞYDﱿ$ycst&MS}P(C{Jt@cCXOaͳ_i{Wq&_Z|cE})~|5?8λ`Twu{&g=z^qgLUw`EF&sY$_s|H8BRBGz~qRrOjKn/$g-={ߛ:tzk~]<&YӰT9fO{2 #DH$pz?Xa76x"~yoO =s~S?K?zwTK9 SMlxz{  ,5%+hT [=V'p~s8;FOly>-8DV9[iv( >,DYà9ZAGlQ |TdOĞLb"Y08s>RZ:1{ 8Y/.O~0a %OUAdo9׃{{svSA;=E! Fv4w=Yzr:@G]O@5^P%E̾[ Um~_%R"{{iZ~ou*K\@;zbVe"#(4sGt.fL9Ls(G++_kwL}ۘh*RY-s=(dP?#i2PHP75x}}x<7TfS* Xv_0}4r\I%~ubھ, O"tt)=]#¾fQ_(4$.]fJk-@{xAafZ\| wl<5)I1xNt30f٬gO A-Mk?k|?B X5/!&r` ?gCO{̈IqCob:$=Ohwމ_Z^',DP{{(csvx q ) yin|hPiV>agl):=e6'_A.~e&؆X|9 |_@>*}3O:#[I~9Nr(cw?u]m} Vhyxz=a~t쯀8C.upSԝg η:Ffr|bi ?L ,'g#\m]ҏ9} KFA~p}}0OOg=N-hDi?4kϙBwQccҠORi9&U̻ãI.-2\vӲis> puצmCӏ,qekCiePM4ɾx@B_F82Y"剸5Idz,5[==fd|4O-ȯJ.NٹGѨp6P w8q ɘsC\&k*Çӹ%V>656%vnmR®um?g^\pEc5V9X%-i C$-鷟܄#gG BXcg| cId$B 4'qv`l*M 67GVd |?/8ԒO B%廴~w1Io~^Iѱ G1^D/W'oSѤCP:t9X5 ~GWnMhs[c1!?8 ?Ns>ork*jrM_LGa 9:!x}?W4절qs& '(/K9I=/!~-PAN`i fw_rqs=+xl}ϭ]\R/c[=bw}Vר}M%E_(#Bsdc(p<Qgd_OD:7/ߎ뛟}*a-o7\?tڛ{3KO ^0!/c;Ӹ>mǥs/r3Y5dm#|n5ێiཆzu"niP8O-xZ MsdT y}ǰž޶wwj Ҟd ;}g IN7^Pw4Q~f8MrnYD9*g|wduk'}_d=ןIxTQb>hx;ӝϑB<,}ʋEaiXz!0,9f!ax@ъLQUeuGhe OQ(yt(rEߞEӪf"(|!3V)ʏ6M㒲^COд]_R E߸|֜kg R9o D_ @3*bêGf(|O Q? zzՉ۾ȇq}:b)ko<A3OӘ,y}d#ƅGx7x⌑Ȟ16ǿ(7H+ޑp8qDOa[}s<,*GbN@ODr d3~y@h9TSEL=qms0TȱĻ46EtZs~'9SʆЈ PUs)i{NrDN'ΰ=^}۫)OeWo >aʏ_4h9iDCB2ېnD-&) ^vd(QZ^2L@,S-!(Wz^va+% j [r?Bd-tLYoB955Oc(;Q>_ "* olcM_BzXw 0c/OV4v gx@%A(t0@=bl8<0rI$E]/wث S'F"R>՚ze+U0݂_i]#{o^^S.S taui+gГ)J6,I+xƎQ(zͰVH.h/M9*}X47/iGM=>Ӆ<&(R[Ξ2B3)0A5ˇr=* Fg8!2?ŷC֪ ]F.z)-@MC'B׭M8bQ^".:_g_> -a|R>X14OGjrG!iUu=/}1l:l[?O|8: ~vue;߃vh?IU"-])/=Q_," ;=7w%'GnN:g=Ҧ< !gpiV<{[OBB;8zH!>oDt }/HQ~?K,wó/P[~=ZozJA/0>946qB&LqKƽ|z :Ps+`&@f3ܿU (m"QK TN?K0D#$4I>!;ԝ?-soF}hx?..~}Z&>jSD=GxVTc꾱^FSQK3*G]Jݶ^NfرSqa6wݺ| `!?X E~ S f^߾IipK[ޟ!,n")[6RU#=0T_HLtG,G, 'Ch ߮=Jq x3dz2Aq8G@/Q!ˍZ{'^Kx0W}|ky1 _/i;|~NԖ(l?dAFI&R}﷦D>s+F !M0LC}v:?wqP1gɏ]%`{_O[/m)2QnbO@ɏ;̮C ,)C!E~{&O@rsi |:co#Ԓn!0Eޞ&IYP1xj a֞2.ĨhiQX#>6 f=={fd|6آ<̓M9k|bnþR1hF5Ej A#u?ݨ•=+j}Q?@k~~0]~Z'13НDTA$pǐ z3OHxBglH G Eex"̖j¶|@sA\Lۀ+ bhGWeOQJq&ߞC'PS6WAtЇ&=^ .+$!xJO?!.-}zj&1JQ{:uMs3{ԇp@'̐gAsSPb9jUJ'}A־j͛yGc3ՆRdĚDfzۙ2??‹/7╁;}!Ie3Z׊ރYv6RD6q.,n{8ح˧]c|Dt^ #s[< Te&/'NY-[J`| 6e‚VY)* ⿀&o^8ߎ#q>{.U^'l"/@uF­TJo"_@i3 8MmbIտo}:GǍKZʂWO)E\9M'uU?ͭXBծЏxJ" o*³QMhxvR)צ n&?',<נH\= [3Z EF^m|H!L}(X}[np{WFaps<(ږ]~UL)"D9Qa~9IԚ #$(Gt诠9 6.GTk&=X!,ha5߿G8R cXyy;VQeOAIzGxVS }f{1E2hUK]:^;?<+R} Y~ZˎL?n,[q͸u iz p>O"iLm"ѡ/AB44aAMZ9J%_<+~N8mchOqEW>ee_ѻۀx<# !Q㕿uE~}Tri?eތ,>Wxj rGbP㬱iZA&!wzs$S>mSm8TqD&LW4+1STH~dq4X`tN=X!s4(V HFW@_sb{(b+}B_@Wx`\x8~W3+xWyZ"Wm θTE@<*„'`\rWJ%z5f, b҅ 0D\tT@h=BTz W\!$(fH8&p}*:S U=="i]@Ψ}Pi}o4Wf*@NdC4n?5m'x0:O#b?.Xw〖.EwU:)=L MeTҗḊD֓݅KrKb@ƽyIXpbX>ŗ7{X*R|iC`No(y*.%!?&#D]Z\?B==$)sAƻ7nx*{j rk9ẙ=?@C}S?"ŭtc'߰Az'^ϵ"u"Gi>qY(B&c CkUdHrlƈ5uSݓU 먇K>f'cD\ D7/0Cx_`dHsͦ}ab,#︚y/}5I=+9U\Iq0\;^ oHY"iUJ?>;b@T:@d3AV dOhleIv̘"c&9*9!Ǭ@8dxG/}>7W';ƒ*طΩ.[o-WI0[~KLAZ WoMb+\s+Q٩W><2)m-N )|J>)OW(L.o_پJ8Y@`̻̯:hɃ f_4~ꌫ|Z;ZJMk9c|/ $@5_GT'WvbK>Q{#ɍhԲ_E+J Tr 礰&,F>zzUqO߱"’T§x+f:X E8zX/h]絓G2VsXRȋ\*ȷrFۧ/ď y}dOqXv+YOMJA/?G.J:MsݾH:SW@JC?'X,qffA~"|K=ƝCac٥O/*{\);}YM:rWpn*^7hǼ'ܳĝ #M7^h7 c<=`GNN5|xTt]0C}x[e?LkU'M{UDlm&Fz#]hkt5 sF^%{I@q /ZoA}h(sy"w2Wf1[g EQy _{%}!N?gIO:ȴ:v̒ Ү Zܚ+R+qird `Ei|,?TV4g4=RbB62jG< X_n!d GOfUV97kC_&tvkg:jv"r{炦LNVCx k"zZK3*l^qXbQooXq:M1?PWQ{ꦆa&:=G& (C:xb^P꜂(\rS|X&CPTw@}t6,F%'OX9Ix:`HYYZōe&)Uf=< s[1mYnhPc={} OE;2*PsU74O\p0;"cQbPR3 x™=O+z܃4l5S.%/45v-PH?iu*Du7,3zP_x-gfO3"2$ 뱀"NB#m& w7০]vl-)cߞ0KZ|Uq0dW|X@rڽ%)A`oz)0 !g K D`4~) HmֻjJ_iZ#]5´un;OC:ƗgIXܿ֨dw>azN+(iM0?F ceOQ Re_&4 LT8_pʥ4"k-0[Гu)['E6՛zA.hEx4zk=yY*z}ɅiFqܹe|k5x,X ޲HOT_2KǥBP<j˞>rhVK뗧7T)ߞr`K8h"2 2Zhuɾ -P%{/D{ CSN8guhM3@޵x#uZ6F(W*ݧa?{7Q!#PK_7Wvj?Occ 2)zƹ;-ZtiMlhwX9Ό*Tgu=o\w_]^?)(Ґ=ެ9IaS9<΂%Ͽy#{+턏@o9g:M  u|zmfXa( n+g$G0Bч.Z rc2{S^`Dc}F=?6yI9YPczDU VCe@BU61D蛞&C, Ru|CPK$3de1]GPxM㑟Q{X7}fx02{_53Oeh'yIH 6͡4Sf^BCr**]8"J7 |c*=LOOB\$ϨS'^Bq6| cy#_ i)VS}8y0SmNJR%ɉ 7bz層)ҜSh-)AuMp 3bupL{z Oxf,/~tq z!YQ%iۀi{L*+4ď)U, ā|킏9 1$~än|g^j;X=mf{u֤'v@!7PaFKð.7oJQ xDStό'su$wĒ\woE}8?򆌑reg?F^߁0kh_#LGHa )pJZ[_ Rdl*KS45t/MwMhs'St%=K4`%_iUu/vhGE'!|WL%e  M.AګhqBVQ, Kv>R[ZäʹWr| 4J [y m>exՂ#B"-@}kW# h5^% "e^omrnX晸ք+GiyOW j̶l2*%>=\3q,Jv Q "Rt=OB~!B=hb7H.E.6Zל8t_+,SObO5qc4Q3&8Lnd4G[<L,B ~qkGg0\(_ p-1bsRݷ}Xin7~[>~U=!f&37k/PӣC?O bԇ_]3$VGܱU#}d:+]~"4zGblN_}G| A+vOp\'-}z&I9A6gtz'<{'dҾ`^" 5/f[ 8Lx%aHȬvy>_:P`aԠ"_'҅u: Al ӓn& k0g&*3*+toj-LI1lWm]Ft?_;:zb{Wm{21_85Z1?}zٞlo@:\Y,yoszUx}M!b',<_?۽gOgO y{⚃z6>ݏx(M`_gPzw猺Qs3 PO|ލ#l \<4Oy3eNo{33-}$R:pJ'<ҽ;'{ ACxOG3J\Re%ARTD Y֞Ё.3yoK>/l Qׅ9SV{7JuU*(@O"j?bҞ"* -sw;t*/}O~& ˫9G.``vR b3?y'uS!sDw{X+) $@Kznw}*x.Gμ=*p $Rj)+25pB B|Cf:;g~ygߘ5höWoǞ)sf/8b"I&x=iMU["UC~{?'?M%kIT诬}Bsg ejdL͵5~tͿ^ܭ."e_xfPg<l &!,V:~k!>dr(wSOlgs [@&p& nᧉnq$y@&̇159d_D#ϝه"* ـBQk? A*=Hrt\3=|O;uwG /?uaR]NLD!DZߣĹ?~z-(*PN;Q;Hm<4quw!o l輟_;o"^U3Nw={N4=nwxFuEU|$7g_Dq?<`!0"T}؄L?8[f g$& Bs?<(響uDPTpIVs4$?+4V=)T F+Ydp)&T}%UUR~e'romG\g⟟2{>'wSfWgTz3y7>'Q_P8&N__]z}`[8pWjv?'o?9?w&&ɮxvƮa>Lհ59e}K1/)0A7}Kf\1{F<w?e?ɩi~JݞOqIE?uO+}ϻ}>=x'_2FUo4/lՇ+7^J+ror?>#TRsN\3K| y^9 *iXq{kVAmb?SXwD D_ntJ]oy%}mJR xgm}w24"A Pp[:ʒ'`}bxJN7TH~,Peۭ^?ҾLvvڱOz磆+O)rt^>"h"9^) բ}TDJDI?| KK=_G[2B;ߒii).:qU= \x&Uҍt4.evct$]m#Y2;t9})ak ġ)I}α‘X.}> {wW{;WTQj1׿G\=,yE}\wLx{Ϣ@B4߶L|h]ӶC+uU~g[9Won ;J~.^.w=&2ߏ`'ګHG+7Ծdzؐ;'2*}}:3oRu& Oo sB$}8͛y虱NԙbraʡJ~w)~/Dzvv5ʢ|RĂpm2*w$_OʜO}.~I$uc9^ =]?/,W_/GWC>x|PVbq #$$U'Z7-`z\Ԗ>Tr'JGRp}LOL pon28o .cN"<%*0-ǠkYS5/aޛO,UWzy dD>2sPA",!^pg!glz&Jxd)4R5dOSw:~^oY#pͧJ1g>_A~4 u34ix^ckJh7,:[ԄG|v([>ts)ޜ9zsm/Ffb߈rꕟ=xBƝ1 p5 3 L? oZ&9,_|}jC}c&>G Ϙ_Ʋw1J~w/ֳ!ЄšSHI쩇W_:z_/9?|_|?%_McX=?U8 ?u@p0^}mw|D? ;zhbHLs?c'S9,6m/Sq7{<]Se-̥Cs {}&1(P>X<-';M#JKWhYj翀V6АK󇢐d(0w_.%[Vv(UzY?-MQ:- /ٳz23t>u!_z'>m /6:2e#{VI7z<-Y/$:~ /oOΘĭD{ZB #PG v;u;?=N8̊DZ@"bҨeJH'Ǐ%I.?D mAJζ?cȠS9$lRd~YYڴ j` #;If.+}*- 㟫$D$LWׯ+\Cg?^4)(/+ :NT+XIo[-Proş<ce.5)eXLҪ)x2#L_]NFr|C]A= :o?7/~x$=wP, [V{k*N9?[7-&L=@AasbsK}/ΕP $b 2i_keynHF{iQls|exs ĭoל1 9>-ߘza.HgW/os?$~贻bX9}}f{ݾTQ.\U̷_H{{Sײ>P랉>Zw϶!IeDΗCm×{ӮsS>i?Sl#1'm<7T?&z?LUɰ|%NT"o#/,OuC~爴CT(`:oڦ1uI*މ熤i#¹9 b!D¢dԭ*&[$Wî߷} dp>}f lmȁ\8xSJVv(w=̔)!բvJּm3eNpX)%R{EpS:&bU,!rӡ_Т7LB`j[wh@jRm3Ѐ|rTsp@3~'@ YQtsDX45j9e(H'5N6tQ ÿYE=!\(,(F3_$Ӧ_~-PWA=w'@4H*G{RIOFvȋgzxEeȪ,|u`$3$@`tꎤl~' õ2pL7u#S<~-P00;.86wΠtF.=>\ ԙ,1B#Hi=ࡱ;qx>v[!ؾW/{[ڧNpcmxpMdWXOeAlx\_; Q`NyhK]#Ew{H޾9"}k.oiقCjg@w|+C6{o~O_#w ˭=)|V#<^?;?)?}#ʎCȩ{!&c>q/<~?<)~iJu~N?H#i/}?Ճ=A{y~K+}oϩ1zsĻ }W4H+ PwҍwgCoFwtᒎ0D# hvq~ZGeO{0P >}mW3/iǶB9 - dU.ckSX$VO**B@8a7<-PhuU|h&(Kqyz->{QC705 X<8kُ$paH}x/}$yC<]!Ք)UQ; V?ۍ積LvB{s9 1LLuvVVzșլ$|FKBo~J{ QД8՚vX.]wDlE[<įk,0UI;qo..A\D(w氨ЕpƬ<4/5R^ D1ҏ ƜA;jH4GΤE15xZ5QJPs˪n Čc樋h^$coB0 ]e4/ EowSwT%~yILOd;;-Mܷ!}m|[ a`p+0ml_*MFսPaiI!' X_2pT]Byg[=*AT0zO4Ѧ[Ifh^ROnT nN^zC?O~aQMӤ=@Sc] xR rٻtr7 ͯ &6oO1Q契"7\|>w܇vh%i`busg ":%iq]\=Z4KѸ|*\?}9z=VvL}_F߿I#JR9"-?aG˼y_/SgyS[_r*ߡto<\*sB%1њ|$#2 __UN\GĮ1I˲oh(1~(>,({k<@}~W,շ l{$?zwC|=~!èuF# K^~R/ő3fϝJ(U@'}-4 qtY慟+oGGگAgHxFoũMfFû')OVs(,o a}6܇'Xm*񀟀X/&g(n~)ٟO4?;3-+g4,bb- YrڅZ3LRp -dJQuXVj ] DɶA#U߹_4A}Үcu>xDt_ )R(~?<+x9LMń֬{m:-ͼ_ HA(Fk㤪hZs^爠MC҅L_1DhګH7r`M=L^ٿJq3R[`P`CsEoqth{QΔ 6\}OzɅ B}(>'Շ]~xjպqi;;6uRꟇ@wgSRAۮ__ʑ83/3(/w 1ceH8|S*kuC/yjc+]Έ/0l`.{#aQmotDjJΌp/x"?S4DXz{=*l.?8zf-7 {W|QS2HQ)Gx>MȵT=&з $pz{ج_Z:cTNfsC0[x2~dAүy&o"{yM2/N3=]ەM;ץ?5NWXDaY;_S缾^V;ʃ>QO }}AW e30V⨬[fx$aLv -=*!\άX'6ޅݷ`'k 4j@0+՚̩.x{-$5<xy=bLOիjN|i_gin{_jPM?j.?O\RZfDhhTx;i̝gg)fYy5,NVj{]ZK?=yaJ2B  g&6H~g^cbs(5Qȁ0"m:qJ{J h) ʭ)Y<(ZlFA9spD4;BMWAQ*D$EOd@:Ib|n0zJ_bVY oG1oҌLz }[JY6_ ꈪ[PzB6+,, p< g^N5+C #!rʍYP ep"G>^#s{} $ Qrm90; *=!Ǵ˹)|z]jJS?k_>.(|D`N7T8$۟ւ|TB@|Z:}DOlTȒw=2|?@hj!uCH)K J=H7})w߀:BЧWᗊ5L~ 3 _ 'YӴЊq~ԛUl`|'O' }`@0Xztu'^&e:\:,``@-߻ݞZ))ʏ~ICS2~f+E|"qNOر; v."NO sh$*Ѹ@H{w ?wݳQU5un9$<[mSh8ge);,57. 3 m~/(#. ]0<@,6+HkA䵈!ghBWGV7ν2Ֆw9:Y }(UvBzHQ q `QF?*ie*-Ck/iC(䚚JNx$%L jz.2E݊ /S:T]Bbj9ǤVJ +pRD)n2DK>UjF~gOo)/ Q' izzq5& m| 5To@őB| < d7x/rnq}t9WuVIfEU!Xsq 7BLjn}5xU6PЌx &x['BccoG!t1jdxqXt{OgSX5&SډH}Ou[^qu^? 8afd9i;s#_X$[ْ\b'>37b_L{/bMx}sjHbErP4 XlͻI"յE ӞbA}{n=!Pk7@;EϞI7CBu3X9n\8UB'h&-^lF&r3m(YaL4I$iߣWₜ2YFNsdz-%9xSRodowd^ 1jgr ܯx T)7DǍ3؏ my(*EAJ*(N 3t %EX]G`׍ SoTS/85jZM{KD{˂,9Z!H*=Z\iد6&IFyJ1Z3ÿx b$ [A<e1' l,`AqpsRމD WwI,{^ O}ǛF`v=O8,4#vm^ܚr%"$* 9|eLFHnho =̟-' /xB(ڡ.id<6JօId/9{X R .W3xv[1c)"R>M+~SU /gY7Ll=K o!V; W2HM7*q6炯(aeZ>3 CRUg)jsښ}$eظG߶~cِ& V!׈17lFU)U+)z&oڋ5]_ W :وQ2H-V(dƣqD&xYXoq=Tby4MHƲ*FJMM*ʆuW܀M2?qXPxU.TX+pSj"$$ X\:N!}֡-,_S $ {H3!V|BÂa o*ƳwhzkH<}u''"CCFxPPqMT8ZA4ͦSmsE/駁s8T=u4$3)"@T||`.5QhK90 uI;_II!ȷ`o?/-aȒ|J`7s.Ih9}'-=, ?MsT>c%3CKae0_@CbuPd 8"al ,<}H,xc 0,0ApEh?q􇬜R=vvP4 PlsR yk̅$B)m!|eW@˅q f-_yDÉat0ܿyAm]8N}K(T#@@Tbոz}A{Ϟ!LL3GɐƒL/頎ߗp+/*`>A8DtެYixB̢04R 8 &hy" |d}x/a =s'|EM7'{OܬM-7LC*&M$񀮅:FtII .f!0@AA`ɴAҸڹ!>$3Hmf_xeCdw:J<( '13s0@m[s@a`;?k bq u;C*OJ˭4= u?3Ag Xʃ}8w}+LzZD+ |kJSXv$Ad*i/=hDt>{1B/aF5h Q·fZHBhOk]/ Q-U+,-Q;5\e8% :l& eidܑeԐ=-E )0R VWI `|dÚTW8q~,2 MEF :n辆 U~=@6"HTq9:!m"_Ѩry*36߃m~b0/1ߜI D'y pY/@`n6j(*}=7hc >-naT`) YϰQt!6++}10ܭF< Q8Ov5 F(4y`_+!|X|<Dz<|1 "~ l9 EJZxCDAikM&QqOMvX=;fNk,\'ʓF> 7TOπpa(յ 훼me<F}Wߐs)yhEIDT w Jt|8yt;1b*5P!oIRQX~ly|=e=x<` nPAlSbNЯXmW 1`+YMtQ{Z]{=A?k62|4t0k}+@I\v0LZū?jŠ$M}qCA(1IQY+g|w7PY@*'ٮ}O# ].~"ƀ" wܺe$pC Fz57!F+(GI:̈{ϼm٘_@Aapx.K̉_`0I0|NDoe;|xz.L~XbDe(\IkQEYZSA80GMnk<.&GK`p{@amMLjrȏqJ A@9v~:b+ :;C,\+6|NEz9bLW5I!HVY;Uij0H!Xd7t)]raIsԉ+RsZdD؀U~Sp~(P":t 9ɅZi0;bRcAar]a:O kN@Cir4H.b4Z.rTWzp.R;P ZSa!{ a4 G>Oi_'e6 F=}>GCPY_ LqCZ=5CEy8dIO.i ċaQM  -&8[+B% XP$SJ `doOB1F?ZRBqAĚ+ PP,OۃrQT5z =T-j{A Vl=?Z h=%h ֚hDbK ώuȈoh0Dk?xM D_ 9'R]*?U!2v JGqqܚFRp;D$:Z?s#} #)|Zc}eڟF26 M}^$.@a9S,#^J=9އD"5KcB\Ԏ<$&1`9<A ݰ< FOoPV(w3& uiFe V|fԒѕE T+p|0PaD@a}'Bq6@ٲj7qԵz fInqk< ~g=S@&XT-KXz;NlJBWq'f%(Sl͂Sx)QE-Jrs cR OJd 9'/4.ݕC#(OFRPM<٧uuo舘c SՁT6 ^'̛4Ҹ7u)S{|AH+!=T,gJ<N1ilJPIiӓo5V?ig1k]ԕz_u$"i߹t&*W F@ ZFh`̉yQVsC0'<BP^/3̢"Q"!s06#ĚIGqnͿlk0[ZP ڭxF)q_NqK~h1ȷ/¯G!&*B׳0A_55OxFgPf}ZIGYt:C|ޏE3!$u7}t<(lm)JĒSHUBm![@ CߣhCOJ(+zs J&v.1ݯĵ / 'a]d1P0\L.~{Ǧ\.}t}8y+Y4ѥM/byO7n*zfN%3Ԣ/<^=^؇E m?XaN$ L ԯguZ'/}l-sTQCϘxf EyDl_~>`#z+uP$!XxL<@UDPfq1o 15Љ Of:\FdnxDԠ0Jz@u5:6o1N[G"N0g'煉T@}_TQzN#4;-cl:$3EGE}DE'?:hč}οS2TP3=w \m ~`FfF%% ߮kQB T|lbSm֧O6}:≉\: r3x?0>?Teʏ "xhD*;10^]Z6h@$ ~3/} 0kyu_a)fG`R9"4x: #m<"=!5XlhҜW3\Ij,ئ.>QJAO0CA=/[3:%>ʔ< @ v-7`jt`id H[@RQcEO|a+ dcE' e{ᬡ&ktx{*@pA |5e}@f@*#{ мz~zH,IĠ j0\"LE<U. Ek!4K=8z_^D CmYP#Kv7(` ji~ ́J_|<#H@KBSFԵ:'愞m؋A_{hh ٞ()gSŖH]?))l n%m(\zu΅0D]A=χBa[Ѧ׌uaz>" !q~*-`!R.=x1zbjIWZsּ#,( oݳ<(6 m^@pX쎎:] 0e_'qjW)_ ' 5@xsC oah H$/@" f`p̆S %xb"!n(j> F-x-аЪhI+M5E}`9 z]y/U2 [@Z$@d~J7TRh8L߾ }8yRѓ=c:EL){qb7gP닊]?T4^1bWُV1V/YQ<ݐ{sBcpQБyR#VQ-FuaD.Y.[;I_ ,0lDr'Sx*-4` ZFzQ!·xI(?2gʧ0?L+6"Fhe㏊OkDԗ{7씉 Bd0bo@H~6H ztAU,+ )"YIS+ gJZ i_H]zHPa`vyr NXO,U}_og}P8,}ǏXCE:jo|j;gi[c  Jj Fn|V#c1 HEJOεf/zHl\2:CiR6`x4;%2Wig PhD\|T$ ӭI(j= ЧbEDڧ4.ƀ$}fP-V015짐qPHOv"w󔣤:KxPvėA_OKdFy ЩS"IJ۰ ;ٺFnvۿQ7סIhtpE# dPbȹcƠ}W+8[,x"]dTMQ^yyc>||`c*H2B5^]l V2<8OB[UP`qVPnU;h" dx GH#Ě") p 955-AaF|G6xu $$5ۃ jIC4Nxp^LT%` za[eQVưϹq$ @8AVve{:ԀM&֝{Cf9߲(YʨC0c"$#]}~OoVd3> =9xN$ayբ,F_<9oYqk|i1uZ0*%3CD"P5׿R*S&N_.V@fm`h^Mȏ<ZMr4|&EX.ŎU ʜ:GBd,7վQ'؏{X[/9(g'|@R bxNT4|, h\R"$&Wھeel/ {>&N $ Y_VbZ|DIkjHHXT,<\(0YU(֊=a^قW1ՉI:@7KBIy}5T1f| A ST/D%H*?<h}"@[k{!=ChDLa}g=Mq =c 1T_LX;, !b@< }u26߃\j{6jd4}𕢰csO qlb(%S',f~RTNH8 V`[3P" x`摒u'c %9֚mA<Πhh.=Y'/hO)4;#}"26;B E-&i % *D3o,Yׯ(z,b/I Sß/~߿ tYS:۞7[|%WevՀv3Ű]m8w{(V~6xLV[uD]:tOE hGEKA8G9mz'ñL[MombTDYtٮ>T)kAv 3}p> o=|c|6}y^@l{ȉ[Jy;Ix<"ۣ~2)=!ᬭ˳Pd>__P)lhy*Lj-vLy$E ya_A 7{?%!1AQaq ?~_o}?w'\UFU?%g'x?ߔ@\);WP?j`ohHj#>쥁quῃp?=%2|> [^l@'έec_ һ/2׍N;%{XSGBOԳ}ex(Z)*yntJRo-4;L K5f(zxǁ= "V#6E$t]czThhκO{P82^OcU_ܲ8%]:V G| "!#&<58"⟂qA(yhյ=c Q.Ͳ$t(.k§GDtP/OB)t@fϜz9[!s4rF3PTQ"%mh%Y ~+FTKҌ ,o27$!CAmڔ ECD,Uu7[-?P+O*9ZX HjXç٢,:R/Dgc"Q^ 8U?X0h,A)A(Ljқgu@Ҭj6/eEa0'LPJ¥@Zpm2)cBT/>]w?wPH0$8"VW!)d|\ONeK/~&&-cd"CJ1~ }"(.$`:PM.yR p :ęxkO5(hߤ^]bh8`Veau$F;.uIh0dW!D | z6v}tZԃ1O`{\wH y!{O\(h(L Fs mm(jR-u֔}M$XzT`zP#O[B~h;95m_ۨBVe)R].&H|(%t45OC(:?.?&u$^;gJ$|wLN<`aת0?[u "q1B>!2FfY NAk*5)q>J&`<:!cl$EEb7`SA@`a*B T 0(J񂇫EӶb>4 *  VRE8%A/WM:yFNP];E Ҹ"pA*q!#%Uc@ASa*? %`1bJn-J""-R0 hCU!Nk@,hK:7H?I5;J49+!wZiGSG\ jbCEpWiFאh> 6:?A>m˜@><5  biZHU5$R D;_~{Yژ(7$92 Gv$ 2q*szutP9 ieaJY Vu>ޟdP_$NrQ( [+jze+4-T L+$ F-5M=5VVQ:"k%Y} R'FDUUө KâpM p9O d8f ˼Z֜]Tl &:$N'B,\-+8Yj|YJA)F _i `2Z }L( $ihcRࣔ~n5dW:4[.?AIO'3Ohqeu@"ft/Uh D Aol>jF7tT^~Ah#FK cۍY(ЬsL uCVFѪƃ‘\oC>/#AWtB3b!=Pg\t"&'TQR:'R__3 } d޷hQt!%5kHoY( \XFTTlCsI4$_(.E#?"dyEҨ7kAX5𒀞*u2,)ʢj'Wmq<`Mő5I 0PEin|X߇bP, NQڕ!PvB7 bN )UlI@BE​/2qp:*vZ(iEEވZSɵӖ^0U +P]$t8GƀX.D҈Vr^H{(BQUIʌ_pegeBAU9hÏvq+_%OtN1Eia-9Vz p{sW58F alFrpz^© ҺA[G-2 FMtWuK&@>qtUp'buӢxG@kc _aÀM80W@'?X KOkE\LYDї"4C2v6"樼WcagrOZ1]c_Q9`rSn 1, 4'\j>\t"`-RLWIpM.^u "@=CD.w*qUЉ2YY<,4YVb hxB(A!oC J &$%BMeE 0Aߊ'a~&u1C.|S`Xn`J:,H_j-&`lA%1l8 n&HP~Z D)GDQ+84:/s Zr#4 O> % m<6SkD;`Y >2)Y^@h#><XӨWj$tLS8SIWXRJ1o4-pdw!DB} PL} B4lXXq:1 6VM5DK kȊn:I!J@T* ES1T4c, HD#1HJū~O.J!ͱ|/%g0ii S!&%4` u#p},XBR?XhkibJ؟4H2VV\O4AMgk6Qp`R>5Pà.ѽ)ƘWP&#i騨T͚óp̭\}:205R PZGOA~620ǀLXI)5E"VĀR?TU 87 mm[âa/|\iL Zlc$j&1Db>H'Ѭ`,EeTқ`YaAHLuQ"L|8a HeGv~@tAj /骎 Q J,?k57? ?|lm%{P]%Tzj+Xҙ"h3F AJaޓ_B}i<4Ϭ͖*7hX2Z[`Y@COGՒ4e(-zHH+b7:0ڣeqK ud @aD8(L|_EIK 4J(a@?L&~hVD N=PC-cFM*2C)cL!H@XcT$>Qa.@"b>ZT !X*e"BPެ:Q_-(`LG^jLPMjEr.l"$*Lh R!CD`IlR6Bîu:+$nLGjU-2S&ufQUy|L@J-/Š 0D$2: PSdPѪ^=HI?#!U $UmB %/ DH+A@j"$ Ba 'T9E(S(DQ NnqeUhF 4ЊBJ@ ash<&R4ƪ"01T "Q@!@+F LT'A!b5@$RE/9 @R6 !Q$6@~بZ%"BS8v"B<.Џx&'ꑣ@5'uyuNҋ,"bBȒ2$b5 FPS 10'2 5(Fcnѱ6P@R` 84Q4J15S 3IUƌ\5'6A4UCZf#z \t6jY֫ %lhWJ' |3TĹN?\G({ fOĭO IAN A$#PK!"֫MFȪ郕@ ^C(bX+5WJa^ðhv.H%Yk05^{ClߡGLAE *z@ԃ@%:^H]T"F#̎@HjZ_;&%@%^9 (jKr]"?UP(.* Z?LpC J]>XX?$&Eca<=h.))zTjb'3[P |o H8"f1*`~@v0 ȃKQ+wOE­2>.N-uz*WB".ZT[Uc0bt|#Ai"A@h(-[DžZ6Y 8`$jJ*XFgs& EB{S/Z^( LS:::4ʘ@A{Wh4* BpӮ>?I!"DlJ@2wJf@dQœD"3>>(Ap&|Z^b`ѻAyA3bC53σ&"Z*872]O(ѐ B@?}e$*?j"*Jjvj(X0 _ *hx(DQXH@Ɩ| 0zh)~#* @̥Ph~}DDEU|1?5lV=8EDB%ҐR*j1bz@%QSE, `@;@+PjPTH#tBeOP!mH`Q.J 1}7TB1tU5D@Ap F>h ꁉ&QX)9`BE U`.lkV 5F34#HD'R\Az(!74VM i@ "/2b-aCnEjv`(YW45|!쪊 (A`HMC%!G0E!\ XDmP@@҉0^$m @ (j QcQ?S4l0%dGj@[+Aŀ@@2!G2xˡi("DӲ&!BQòP׆وY*'6>%qH`J Zt@`נ $i!K1uͲ'E0  2SÈ(-+%(2RjЂX/SP F@XEC]*1POw6Qu(g F" F-_(CNu\BWSAZMGeiDH0rjZ^H!@B.9:566p+@"+9M*ˊѫq5 bM8wd*H~fZ QUgvP @0>1*^9 )C!0hR%% E`ED+˥+.|ChF68Ҵ!pQ %Yl['9Tˆ_ fa#"a8F@nWC": GMF2UAT4s`+'yh) AKA( 2# \4b}xj =AZuj$hkq*< 諛P pu|ʣh z0nkDqа@MiX@P%5?R lC* "ǘ5P ;U8tX(V@>NC UT$JS0]ѡSr !ptV*`M 5 RÒ( Q8h>j8QQJ.%WX*"kFM p|$Ҩ*~cAAXWD=؉Uh uu :hAoJ A1S ,R~J (<d)J| @ъUuD A)};L +A"`eTA4`!T#= $WZ QRS| S"Q*iSS 6! I2( 4}_Q[R2VHJb?]/3?x(Xt0 PE_SQUr+lŠ HAk*Z%(/ @$j:Q\  5AP}1.gR =aATbCDdd}Anh?S JtP'TpAJړTI4R+*z$jR -VOPU*F!0Dc8^ Fmi BphuK曙B iNP",L*/)D-c,%<FV5yEUbr&X6$5>wb0bCNP: 'P%/$߱bĨALlw]*cҚ ("Έ K@~ 5H$vJr I< IlG {'Ӹ"@pvÈ$F#h+^PVШ:2T \HB@Ufi3i!tU s @YC VS?7ѐ$e,U %!vڐ.0TQzUQxAD# "PxHN D-ryjDT l-pBȈ`@A+B -/'cXT‡J1[1):fPNI"H$ p Q Wmg(px- \@$F?A*԰F#򡁾`im; b7-GU& e*He0.jZ$DB (Djh|Jߴw TE .\'L%~ˌ4 GB(;& bR0" X*Zc.G@ "Fh3P~%k&CjԵ2(0 l q)QTŠiᆳ,1O:H%& 4,LD0 0 R |paX:CVH*5 #@<6)fC * lP~WmM%МP$/Ƞ՚ A-LO*t]0< R>1US#!pBa+b.jQ1p+\ [dB (1HR@܌(0Ȋh%)(<2 ahȉ_,"@<.W@ԭ 2`z[B"1pc x#'ę@N_J@QPgrh d X0XweR"e(d*B+LN?[I' -R $BWD\ -āHޗB8RL`a0@$Vh,%|;"iU 1F*! @@"MB &2h]Ș]Q(jl5d9OMR$42Ph@EVc` LRRAX A aH4BqgF<E 0.HLE*o+X> Ig?ӺXPʊ.C/Pv#iT(" n"Z#ldM E`~x_v(*e Ee uvk Š$ԃJ`ie1l`"}*)4P"! +< @e0^0p)pދnj_b,wxj8*LD.{*iE:ttxZ+SQ (Վ ]! K^ `ZeT iRC DJN! z uuf}]Ro* TH :\0$k"pfZ!RDLi >(+Q&R 64\H*&t^@t "EN`◀<*i BRDumA4!g-5NrH!, %/ (E/%Ce*ycCALUM8Pw X%SHأ"Sbp)5@!b[11(QO5,X&<$}H( tt6Nf.=@p +(DB&#Pp@KAt@A":ī8OfiDBKRj!Z\9d(GJ0쵚JLkȽ!%5@ *Ł A!B`k]$$S)Œ ;A} (tGu0 8$SpSFmCy4?=רZD!(L'? 8–qRH"4BGyd` !IF`Tt!J Ay¢ )6CXH֍t+@ pCR iL`(9*`R%`ץLZ2&dP,V&A=H.LCZiAU SjbP# P,%hPC@ PX X 3FQ@8r,fmv!!@cV|Qb",۽ EPIxDfR2J⊞kz怖Y*TH|aLlبF(%AAC>Bh_4 -XR JA)۰֮(ZĎ B@ X!'Wf&} Ug1E&c!Z P)~ FP?"€u 5ZJ .]*E 2V, `FٲSNTd.-"fgT 5 })YԐA|2Mw4nх.$[rk:.p" L:B- r@$'6 `!HGbQ7d0uF:aQѥBr߀ 5瞪}T"bBiDqh!ŋb 2Le Ul Qt k MyLL r;(O0b" ꠤO/vR$ƨO"Oa@Q$LR 'T*P !VB , )(\M:`a%l./BM)‚!Z4t!G H4Ҙ > g`ob Y%%VAY`(L,FŽ'(~X4"34 B/7@ c EZ(Eb*pF8ЈmD0UX, Р!FeR!l$SSius(}b zڱa *88HDҍHJ+Efl@ZBQ k~.0mB +uG$rT0Mc(@0ޠ1VARP"9(JVRu |V"Gpv (HCJ% pHYDÕCA8Xc*P n C*1[%PDeV"GQbD#j$]%vV(O) nL1hC @]o&`A,% #S@:,C'0ф BZ@#QuYXPQ;cD x`hOANM(Mh/8"&eF(šLIbOT:$2}F*XQE]ђXCϔD+rbi@x J)~DP05aHx\ 'AP pC怴E%l kɭE< 80RP"H .R4Ē>Y2sl PTOʀE+ǎU&@[F91YX*S€nPV imQ@cK hʈ`a07*@+J04vUлPxa apcY,cօ0ݠB*(-&Tbihp( 1,F;ZT5 @ƄXMk̩RTF F1+)&E; RVUg`Hj6' (X ]R+e(Ykq)?Ep @{t}U @ Gi PT6*bD{-3P$Mɤׂ PQ`TTV& PՑV1HOZMH򡘒K9:7Ph @H<]% R"Q@l!dh *! :mJ)P.0pPx*H$y]2)1hH%P_KHIq@$XD*t̋S V`w "G֧Bd"DKWbD^PX J] TbǒR3 8D D(2>YP.E32N_CLCmB6@؀$T!Iw8& - BсAj\=0cD&j@Xp8J|"` ґiu%p( b!X ZA*0~ N@C8WXhAK@EY_IC5Eؐ PЁm;~'QD9DnPX0 H **!޼?Z? `lpD(R'S "_Aq,I k$/1ȅk Vi~-,"G0A`}PKG9 14SU@h$· $WL% uZ4 ouWQ>pf =T3PQB $FD2H !Cmkˀ_ Y2գHnDd!v+ 0=pXx*m Rbx . I #~f UC`H ['B4`triHC(ZveF(zMEM(F0F<#EtA$5lH(h hl];E:0*Df mLpu*o- {H T)9< BU @ȷ",յLe!4  0k"¦RZO#^ }t=GC $j B4%`5ô"Q+xũ5%PqI54lk= #J ~*(!j!TGPvA(KPߋ> @EP+OW&#{+Ơc% ˆ-#?<4 4j5j qK@p9N@N/Jip1Po`(HN@W A|R0zEQb6h͈<& x՘2p)T ,#m\4| (g4MQA5-#hIGSf$p [60@8~+-xiE(`:vʃ\48ue\B 2V( hj+0STZ׍P$$|A:ؐ!\xXH*BT.Z04]oai R@A>ҶZCo*DQak@.Tp ͔lxX:XZB'g#(yt%F<)/4Ѷ4 7Ѐ@Xԍ3B@p'Pt8Z p#E RS€"!@~<8T $!<AE}N,X ) \0sw )c9AIN~>C&˰  %5hڪN ( "BDzX;G 5h,ZAA@eYRT%|AA `( l|@bٱbC a'B@tRm!G%e 'E&Q!%`7ˊs:YQtJR*L=~d 4"$5@>/m YQTdchW kkHctV#)C@RZ{dR< p`b0"@Pބ ٨'FD*) [ D<#!f'W:6= 9QHd& IITP̍d @BXm[@6 ]֔fZ]N%UL>1}5ӡ%-VEA"`R):w]DŽ S"؁H6Cp52hJR冸/MtS*՘+Һ9~eP85KVy20(-43w&tqj\LI`TbZPbH2,;!W *xU4< 6+@A!U#PzrTos~A0e PNHD^CQbk R!\T.\8tڧL( (DZAT '%RL2:K`0Win4 CNB@ U `Ȟ5Q >AS, IDEAVN%UQW@@PP xsKJ( 3QD0bEM}puW^))K-d)$7B,;k@>kAr|OpJ"†+c@9` nڀ8'/8:g@ OPk85C(2[AODkG" uu %@eJ"Px]V T; k6$lJT"-`祤 s J,p:AB&#DA%ij5'TJD)AVWsbࠤPb{4BULE4շURWTHX*0{ ^(ԛ |l` +UGH;@=~ F+"`K|("Jx~BAF@2Q( !QA;TO:')eXZ膔XP CO 9h,M p ( A4V:HbQ4(FZrE 4>2d;ڀVB%(X@ʷGhJ/0 b2Uxec]g'a=-X CchR6@@SYfQHLT[bcUDB]@ U+juC`r< S!Bh@d Zj < ,T"Qs0EP 6XSPbZ[z&B x&S\*B@B]ab ЈJj)AAE+6fT J("&#N-B-һE I1\r<QVaeXڀ(Ǵ+ ! Vx\Q#P@>d\ L(r,)t&(TdC jQ:@SQAE:F@< jH@#EAS2j %Y÷g‚[EP-ɟ jSF7$964ʩr _D?Q| Tx)j.xE@XiSaиH@jUj $ΉAV~ O R U$)+E.Q(8oT hJ @EaV@yUSD!4c0)؂x̐~MVlBDH"Eѐ~`T‹2( DEdT)TBW$2~qyτ@D OTUJ& P$yS Dqfڀ+g"|:8T @Vف`>"$@(OOXH03$f.6K[l h&lFj05i+eDl| H5U*?D"<> `R[jT訔vFIJT*hRrDi*j TQ!274G’ 5BB@W$?R90j؅MH#-"P`Fam(XҘ,O<ՠ+@R)"+XE%S(@: ЀP($C0$t>!9I]J=x4OP1Z$@@nrXBD N-D "&-h ZPD(Bv%T8@D '*]+ڃ؄ vrt**ۓ$MUR I瘑"RnZ4 ]ROTMPAP*ĝ-"`S͓h0G kx Kip2 l3pF(f!(߁ C؟p0b[X4tY( jBԪ HF1,!)FpLpT|V ,"I\ +' ²a E ڞEJ]@@M 4 cP faQT,b)ٕ CQ".;_HZM"@UD]QP>`m@J)4Ff|vN2>x쪛x!PAT qu!Ty` 0`sp 5* "U)Âbeɀ/ㇱIJi1D'ouPD(-$O!A|QP'ak*<6qC)`DŹ@,C\0A&Y&Jԧ8I4TSx2ը$0"FdyNz*J#6]l-EB}- P bB|"*f*M\BH!A*`:`5"!Y hUj5m]B@0N$\H]> P4_UZ\ PH4]*aRHTD2@ S^Z, kKjHB &C 4b%F1>VX RThӗ(~ U<c07<CV2*!<߀ pp>QVij $Ebl.= D<~*Tj}d@HH+!,\f^.2.M9 ̂'tF gi0AIqJeVHb= ,Е2x UI Q A Z!)۪9oN F"Ūm @C( (U $%!coTRDF ^DRV4Մ[<E ?{dPs/03 AM(4 `+.щYD% 4c_ Epx2vpա9<̲& mA*1! 8$-DA@iX&p^ELx- =rFZ%TF8KRAD K`J1^.*\V$P;yPPU_EDiZJ *LQ2ĥ`PI&PV q_<ΈRgcU- ФHꀦQRщ'Q!тf&hz4 SŀxC,ȤԐ 8!cHEPO M1TK45(4krTJv`mhK\ZdmH1?h| p@@x1X/CdE*p`%"*@%%HRC P )pyAuW)H@ QD"UjL"۠UMdL@X@ 0LjR&hf,W $R z.5A , ?9|?t d{!0bZcYw>|TrL !FGM*2myd-Pb)f / 1~lhlM/]QTip%La VPOwH C$8ݨ @`PB:JքР#jπ#b!BT k $˳ѓ>, Py$E KH_"vH!"*47@מ$CDA-afE! \VK/% bK:.o3N_S4TeIe 2:q8Envt&JqRt5 ~ aH]6/@ЩTe[+ciA`5. xb%FDIA_KAA0) ArJYD p,um AE"PCLU4ЀE) EH%6D <b5T"ePrIb8Q:HrX2MjweBQD',LD*3Vp>ɾ4*PVfA ѐko04l(ⶀOh)Jx rаv0)%S>u*\Ä %-:RȑQPb*&i&v(aMR*v"t]ADҀ!|kdCBNٮT +&s5U -HZUu ( ӥHq $(H5c]D/YBk Ŭ)ph  Q9)^@ESPTD̺P(RPp Air0Mw' _;R P+6)D~3Db*F@ɳ#&9 >I5]8B8ť!*_$^)*P =Pq.`7@*:H)ȥN@EVxQYHS¤x_V6%-k_L;т V*TPC9}Ӥw@4E(@N. Aʂ eJ QogJDª,%0 ASH9&oaK0Q!i((@mme "+֗q~xRaP6L/ԃ' Am d 顚E4JYQ,4ÉX\M n  u;YbVI<@|#)I"Ń@`rf5$D`>, '-$N#SpРDDv Q`W@jиRpA Xf6P(4XF[􆢭Tzi *.E)AClHP &QHAhsI@ ,GHT򪩂8"&˓ f@{mm`PT^(Q#@,0(8Mb-PK\Hm (g: fg[I"i`b(! <_+ 1>z@ "0EhSRSPB 8⼦hFnJ*&/AB a)C#^ըjj&A8)5u*"jBUyL|d@BelD>JK`; ,GùP BPf7աz ] B`$)@2UvUo NhDRB|tgp:{ COY)%ńgW I@:1mM(Љ H Ph@1U=ljLF7B](l^RQL@@Т=Ct$LP%R|gTH:h ZULTP$_a;)QKA $(i5ZY#@G`ԗb h>& E蠮,mM“%h}jA, ]"EbT[Dg$P$hB6hREDƤZD+"h%UIhLk T C_>P"`I(CBAQiKMv@ S* bhSr`y´hh@Y GSj,B Az)0OTI.%dGU24HE@m'ۖ3&F1x F}!t7{xR0@5A< F*cD퀭ic @R{HIZOXX 6b !B3͑6\(X AHEB*Aܓ*brt Aia( EbBp!}E AElU=l1,cJvCȞ 7h at\Uɝ*)5~  lI5B'KD P=uEZ%*gvmPP 1D>B*XT@R [ ^),^}(\©lXbS $?a EBtug@`OH#nBꐼf!&X;NKSYyKZ)"؅ARC4E B|}eZ\N(AVtu0#J]z8n\O r M0OXT8Y5I”@-94)L UΣA $7B񜙞c)%Jubi@2i!ug4ZZYj.hHA UD#("UfIipAT p}Ũ G*@; UE@q2&D&,s:EUh&Y5x8(5iqH(Y@4hQK ҆&V@*TZ-AOvK|q HғtQtWF PSٖȳFBHDBq8zJyׄ H|( "{*¨U7=X]1JòTM9ɭPw AQJ hhE\~T#cCVZĬ(EPw Q#A BfcbT)4hc9\QĘ&@ QR }S-@xxh'*Ǒ{rNPFMAZ2%Dh i׆!DgᐩsTj0ԸD(,Dqh0"ڻKnЅ hW`OQPBxANw֮TaA|C(p=Dj£C "_8F` %r/@TS!2.()D؆^*1%`)Sj;LiDbDּ T|fk@6,_15\g4wa#N"j K >+ *PMEFӢLXh렀pFX^O  JWOȢʀLR5Ia ,z G/%[8%R4‡B:Hzbjnr@Z$|lPP%uME& P|r%Z%$ѯD8.Ÿ5K8EhRb@ 1 F$E*J*#G\Y RQh"@ ȒZ0)RhC LA! @U>0c#n 8XdUO"\0:P|0Gt#B,b=(9ABp`y6ZA簡[2=v}-!W @oj f!@ƎKy(OX ~"!(;P5 jtiKHT0B9,CN-sTc@gu8LZ,j J谪^ lH*PH舃D>`B. Cy"x wW:"QYw$0TГG`L<ZH0*q/X23YOQhUf+&Z^.]PJ pgr $J"EP5˿Tow2 "ЬB@6$`:.3 NTDE6X1!^ 4$ېS!@ %Bjу<"ɝZ K :A TCQT:\}yZ1"RThPR#E " a+[  kEr,5]GBѠS,74 x ! lVTv`DŽVlBȀKX& ,VP 6BØ"UHjyFM [h,D>Bڕ `Fq83:9H(oӖ1$+4"@qR :3 x0cUI'?EV 8+pߥhJ ~V @lT@ EpU4.Z%D !Cgm3жI}Y g7O[uQ"/xAX*P01sڌG&:`=9X(,OCC0*AA1TM HWf  XX  ˅c"Ѕ#)̆60TB<2ۆ$NK!i!XRs E6PP#E̤Fzۅ>xfDY PdG" ׄUB9P+z"@>x %V$ ۋ!e0W7G$AZ h))j0%a@* VU:VXQF "A@BEh*< @)@@ U**`!QT?Q9l7@|J |y#SXPX y,B,"CQHI#۹(Ӌd]"}Rr!*4AJO)?Ԇi)@*ѰH'ZWF`cPd>#)VAF .i`JPz6(JԂbdBE RKJDPp$ԪXO(bVD]]iC`MS@RMpd**tPxi5$XA kD]M#4j5ȐYHQ6 %Cj?Q;'KR cmj&Pj4*, 6@׭~=T3xk]hy" `@ՈN# ѩO-t ()UYeJ@ ! Xg-PD;{RtF" QQ& y=J@ p& %(0ܢhဇ0AQZ᳚VkR67, Ez,jbjDtL.sُ?AGȆ9tR04"-;MG8|(@ It+? C" JES3+DT`I@ X#/`D cG9b Fs CkIZ5PPp7%8J/jånLLwwfs@2ʌ`],QB΃ưK=-!5pSjxAҮlE ]$P5Zu#ɻ !M`RBLEAM'^. (9hh 0rdPYE@giQC("@ nU!dR0X4DEׁ`bQhOq6fVҌq(1,}#%"EDz*hTUXA(0LbSSV܉@-GȲeMOxH6/ndNLi rd b'U6YVnvP AcYPAnjV"-Ao%M*-!# @QeAM+caA3 p##8l,H0Z[BF@B8 E#eD k "Íe)@*"d) }ViWH=-Zh(@CP4؀e%=$%A =LHI$HFPՃ%hs a\J[4p-Fe^!AP-UHq'[:V41@腴~60TlpAF@?@ WT-V*ŀ)@%0[2.Lʆ"2"0ՄDH~ODM2 SC_" h'UWtQᴉA~_])BC#z DiR5mNHD蠹 z@ SᏁih2-x ,"SB, )pS#n `!@d#Hz jfA_XA*:(Ӑ),CAC]CQq4HZ<2Ԝ rU:tIE,8(JOF  `S̈X* (%x ^(ɗ0j0Դn'f|"kDRdP~"oDєL261l EBX(f"b8J!|#.9nmR9ٿ fA8EJX/pf (V1Ec "-3:R,J@n'AJW! .iPӦA@8PCFN栁D<(v8!vԬJ4W&i"kDl񑄤ÁrP CPX.+(b x[ )S @@$CI)M W e'؄T=\ *,YQi [Њ'ttTꀠ:I-4ZGL'ά1R tE3Hڈ_R,:Q!4`r!jɁ@E`: $JWDt"GEmNpZ\Zed"X CεKeC?C@Jd-: ǏRPDA1(*bLA l!tt85 1D*!EÈ)*` ,P GOp`75Pi^!*Yu怉DTfGDѿ[@%4#  >w|"H?E2ZΥ0!+IK@51ywċ$Ih"+N-Ui@^AV/>}"ү3D*EKbjs( PǷۊl -Q~9S(|ܔ +Qz(@Y *GPU`΃Ud&-yBЦ"P6+)3>QS.!V?BJڠ t5t[p b^,>NjU2Ab;X߰XQgA0@0JB dG(A0V %#ATiL|ʒZ+~H )(Df:= J38~ 5) ZA|DMP01jzB( IUb$Z[ th`/J#Yg@M 8?( il0 H:xlI- q$J\M i9!2A4df?t7T4<=:)xG)ǨJ</`4,F@JyxR #P?B(pk+15lMM8gt&(dS"`ڥfw<(Q 2JQD!ba+ l@D,sSF)PPᯣ}n(|>1j-E(2T K1R #DBJEꖐ>xijZTp?@""MBlP, AO  PڴH 0KIIU!1%,Pb?i")PVH(Hlr,, @~BNo$H xi__J 0iB\ uP)BщAB ,PSilx۰!ݠ4 x iV>` Rh*6} tj*zQuB)j5JU QZmP#'Jt6 rh% c0Pk !II ^X2b B%Th+Ju ;*62#5@uʖ֋QD@0󪐩PXѤF@Q+h UBCDXE]9[!F8>@HVh*t@~ nT`Ci%R-n0xQJ-11u qc6D B.=A)p9gOT@!UjB@yU!% S ׀gA%P$-#( *] J㽱D? цJ H8@ѣqB%0Z`$Z(ETYZ}@lk0 Ss:h ?0l^#KPZ]>UX@6(QlB L]B4obP/LF"Y%$j}@}7!R0WZ4qeCĥ B ׅth۱""FԲ4*;,E\3NqENA^V2DӔJ-$4(aF=0#  PP**PQj P)EQ:1*P6f']ru+b"(0!j)G@"k9CN|Pk4 5&` (J$ ~-Z0l>`B'~T#ZX ac0PBt_H="a&v0`i5QytBƢ UȟH ab &%V&ܾ C8"7Q*S˶*(*smCKi!^ A, E&YXRv NS(*D(/nR  BW$@3&',ЪF95 G|"~6P ҾUd&h|E)":`s'- 1 5ɅJB6n=]d*$W}RaJ Ko^!R(bUjBCTEnX o}ށX<P^ cp< VU!P@v (*jc,Vx+TmH$5JK'Oh1T l\l8' `7`LKq^Z)hQ<2||7I Zª!dPExN<d ,@ ȅb'A(EӨ}<0- gt n-h!*D3 4!XRh-68n v h#N%IPRNhR*y:BWPR., ҬEBhh(:P gzÍ^Pb*M$v"ŨG!X`+(o R$Pn Ȣ]QJBH4w&zp *LY_YDF,-*u@0|2*H! 5lENE(GAPUƏPQP@]+8$5BZ$/7F  (P$i#|2BeD`8Jt0B+X`F14W9VRl.mA,($ਭ jZ@l1x0nL`̢KARXJfӔ%E 5ؙUt! hQm)qV!TYFh*.D$xuju _GpUh2BaMDhPq*,WÄ(\gDh,05L•ER't"-9 6JDʚŵm?B< 逨 >/cR+`dTPWU ~&"* -U&%$3Y3X$kJ+ ɘh4|xLPuS|)CQrKu )uQ E`\B!m 4qQ#dS*-=8ԒNa!qQb{hPd^nj@4U]?2,Ch0F"FH@Zc)#>F#pm*l!9CrjP,` 8J!2 4͐.@ 'g@) zX"BL@X! h+{CY |h_5Rp44 XEj.T ( @@ Oůh@㑕)P@h2KGDat)W1K UZ ?j(&4jye:22 A7LjT3V QDH^Q1nu=B Er{DH%jzA Pݛ܋t Y1p""$-O0.$(i@"jR|+(VtDhǫE!P%x#-Kvud#@NL%~A`àb@~O @:&- .D|ӡ$ g- Jo@HNm T WE h3j5P1 ,B:JքHe- ,LOmih !?B‹z`D*?I!U ʚG pGSUJPN*,r ]Rn.  X-^b/(0(* h[T4?E`!,Qw*jBѨ5ɮ*qN#(b:!c-6|R@?HԾ~HCHf˄UާN F?VаRES* $ TkCX5QRqnh - %&1 4Hs@b,ZA w_@-;Ȥ@PmAB0 (PI#s.zH0&ka- H( D2f*25&%R@3EHR0`b+ƤR* a Hy5!F"u_M330MuzlT,nRZ᭣ֹz*AEhJy+IB *)ZXv^T2!zGu}@m.cSPaKz4Vņn֥ :P 0B%~֘&R aG :H.рMBp]+,D\Q5F*@$X!E8@X6NQ)b*MHu& 2PNh \Q#[(g$$ d 82$j/=4B1ʘH(Оj".!>(Ra(2)aPHb 0 F*"*8!_Imb A I#G@QH4 hT("?_x,XV<+i؊I A<y:0nilPG+Ȏԍ= 0-+P^~`8E P`%LKe `bߐ&bABGI_yf%w1@(DE(|CΡa OeXDGY2(HWi @̻'x6"U i¥.(Qn@Z誋B 5xB!ԊEUjaVn#)] [#DƋaZ4a((Tux 3aU.THD#F|ܭEL* *RVCFSd@ i-]S\K* 8MTπb C表F(Ab.EDh"q jC "*'n#H#;3 R_. o@pPc ]ȷ,@FaJ$b؊%@$"# կP@9|FI[o_e`(,hQAE `<@DI%Tc)1Wf/©F!C!,J$x~H_-nh@))"D󞕄=&AȂ-b%5Wlc STvU̇ ܈/5`A8@**4hIu OF<)7AkQʢ"MI r[ ĊJOzBϐ8|Ir Ȋc8NOn'2wƘ|4E偓BCEP?jzL6@uja4@!BPD^tс&c0?H0T NU쟞&z@'-YxL$- bt(ڎ!0AIaAr f5Z$n"=c<Zb @}L@X*#l@ P^%A&#wB@L4@ v4 k d@n?\kp#hk3BCI6 ċ )Wۉ PylA 3 7AGѡ}@# %(-%{B!M L]_[o+H(AP`%e*"RJQzrKSځ (KTE. )rpSOC`&CFl: |%) AS~ҭx M<:V j4"ŀ hF Hj_=#|lԌ6HpbAeEJ> @!tW"B)JiDmhBHUT|UU))(Q<ɝ# @P#(bA:ƩD[( RDBh4\DDP)r`J^ Q ɪZWMA"/E"!HժRB /_/J b(5 Xtu%yFROUa(-@h6 h1k)n*R.(o@ *UF^ix ]b8tGX4 @9D0W )PSUI)GF Li (|aehwoXJ,oDZcbDJy!Z@(@ Fa҂E%E௧B.zPF]M `*!Pp$f+HRz@kjI*,Rʲ) $}CU&KV ] X]%b.AYQz$ K% rXz%Q 6% Lr@K43 [`'Bւ"bkE D$KDK6BEdAW",S`(Bx(obΑP=t@wJlc0܀]32TH28!5X.O%p?t\*4j Y ,s0BhVIX*l<Sl$XHrH`ZBg0T~h*PXb(|eC26E A-=  B]@O HǙ"èDA<4,N N'@|Ƃ[G Wl5aVRCPJLTѾp*4CPj%@5+° ,jĮ`14AtaXWZ:PP 0l 귐bG\I-@ģJ!i(DQQ0eQ~'Z 4")Bh( '0RJFIP@@0B/Z8H# Zl/ SQH+j@!4=tc .U8%1U{)ZދVjTPS֦҇Eģj k 4 Vt*á"0D3(>UA"#d 7"NDRt|@U[PM 4[)@MS^d.0P+]<?DZD1u4̂a ?*[H B4URD݂Q>LuW@~5е^Abt*@{={T:UAX !*449`?*0EpJʁ܅t*8U}Q ZC " vHq Q>P[Sw׿ڈr n& AdnXX QpC> (WhDiāD4 *g+ ڠ"ը%pn}4-VR*Xu( 1CM}@'H>y#ha(;YάlZzZnL`+ؓ!=v$۱7r|g"0AJ%jP81>B :*O)R`"2;nuB 1HXM~JU ! !<33 `U 9R՗Tr"R 9c9&GάC=qh^: $t9:_tt)7C5CQP 6xxS/+S* >KT/|f S b+ 0 )J`CÔhxP>9JXWUDQ_`0_@T^A| Rak3)3KE ˡ|%j\IXE\b$ƺ@lH0eMXN!M*j IL6 h Q & mZjJ q\cr$q" +Px2mH)YgQ8d}:RaBIZlf20`rx,BJHT<|SfE6lx]f#c'2RDFtZ8~. /( mRqiho]BD ` oLþRM'PC\H!@^r"fQqSw,Q'ׂ#hZ$h r"wL@4%7ym /$Ұ2rck1Tʃ 1c=H0 bcN2GKmKyKԚ 6HamH(0f'VGm 2خG@dCj@B X`K,-6mZ-61-4]@A tVK15()*.A—F" %8& ; B`8I)"TEY#lFa,$QrI@@ CUS8O,S|A P )L\"4@ aBDT(`-F(JGp B4f8@.+>RX . *bFPNQDA*= XQ*Ɉ<4juԊ#(X^YQdB)bF<E &$HFLQ(Ki,P SjWQHK5ںE # -QTkz CߔW'ݟŷLx1c@lQUx: ؠ.!(+p _O⳿q+O@oix<^ ޓH:_o`4@E| ,4eǡ=$%W0Y"0u@2gֿ,F"`^C6JJ/RG4,ۘb4KB*4CUFlc%ԔFN$!( X@\fLtFF_B%8߃@  vDbRj 0?4xǠP0akB'E1])!T6r0+#SK#$0z!ZG 4 uJz5)ab)XIH à`Oq4&%@.,wCa:PH[`]HOo:$P$aqIE@!_GC6PJ,)*5dߤX(T#6U~aԁV3LPt~ M05+TVZS& XQLЁPKt 6R,c^9EԻ NeEX@2HZx)Ϣ&kGU~. ֢70vB#(D5kWD^ƅ,ҿ())$)T@}"A+,s`F`PϥPC ErtQB4 B JU};%#1 DfCo8e*,0fS&- B5)P@*((L@g0] qP8i2&$(H ŀz/F<[ #+!K8*q"ej(-E* pe~.f$`-+ 7g`'=$l|!d|v(!,2!QJs9} Zpߜ.o~LވʼnP@;SP B|<ҹA5 4+[E! MG t0@ 7 HA1j 2^+ ZHpCP2$miR(&9eA&TXrLlU$^ʖKr1h-`WR = 6 DZ*6j`CXUB T@=@4*GDGMZ$N Px JET)C@c=oIG(o[v MQSh[Qh U-ģ,,Z VcLAx b¥*(ª҂Q`(P2#Bx, HpR S`1:F+Cz)"PR* lبxbQdp3(W. *>IBZմb`+IiCB$Aq` FWV‚tSUbqIXRSG6y.\@EhRJk&j:~ h2ߔ8%GRn $Vju#0%mKLfG )&J2F7CNkQj|a7BG@$+}`F /+UI~|*ND/h2^(HT : 3Ƞe ^/DPYd ,@Bc Er`,J<,YC WB)0Q=R0AKrB9akE6@ A`D`H`At$ "#I`ZT|I.#wJ| ġMD p@م0u0)<u DoP`@)]ς  gv C(1 1Z)rP$Ih’H]ۀ EPih ` cCJBReBq7tBv5E:L2VՇѣK@ ZR.R@B P*rE#p0YhHlQM:tJTVSH )`D5@JUWd'@FtT/JBn=+Q+%RߪHo*UoT)*P@2U"D-EԪmİs9L눣w ]4J'N [ -jhKaf(c,Mĸ-5"U0%5 )MyJCS3/'u/+4B#I4iz+}]Ng6i(=&ϡgYm*r+!(C#5"F/L-mֺ Zz/$QiTm1!R25jd#p"#i ʫb8, XBRtH=IhND+z гF Dѵi@GJ d%Jd`\0=# `Aنْ &I*`…Pډ\a9On X+ %EQ 0/T%dvqՆ$QLJiCQN^%q4 *0{i EI*M6>>1F _D|qE$@ s `A !HPTՎJ,eg@D)_W*~K7M%O xCnH  :ZK`FAL KAv0S= P.%UQWR(:`],p14 "C2 ATvk-K4 4TH 4RDH~ "E3B (ǡQhb4Qa3_ d+B~W1,|.@ AYxR)ʅRXD;4!/Z( 5xJl D @ t@A)Nf1VqOłP3R(B($ )BA( C ВĈy6ơ!X|&t.sam  '1P@%~Qyq޼ i6>yvw@QOeyU&%sSrqPDDH⪋|b# ;âT<,n:ZU'hF,R@ְR^EGhih" (" j!zc@BHTq@bb4( 4(@NME* tYxf;)`!(J* >z"CD R įU D )`X$(+5B!| \.A. C`) xH0&^)0Q)@.&>#Hq B(PQ CDnH骰!z!Z%S 0bN1+4;:d S)jօ5,6"D^ P#_!!;H MىVy$=zv{H@!'CT"1o0gsS'Sx ILÆ  @Z([VdK~W[CX9J֠lM*'߈L*ͻj" rr=#ck=C6F5s,*RH( v1~&gdI "Y! $K%$'Jݖ.pKWHOv˒qccXF/+a 0\ 䫕ͧʼnwh%|$Ŵj@)y]gN&j 4;4Rvp%ze5gEˮ4QN13$ݧA("Ėɹ:HRItx5BPf ja!U@(嶼R!W$ `y!PLiրxRT40H@Y8"+X f_=pԎwULA .Hr* XJYQ48 (E><hV(<Φ.EFA3qB$K(),/C# $xâ@,_B4@*J *pc/p!`( =M\yTG9,,c'@6m;>CL _ hN(aH 4DA:"THVR1FpEFR'Q;nһQ:S4,Rǧ a?8 )4(DU1QAQHaUK@u~ Ģ)DKIX>*>Q4R@IT% )(~ QG4סp)XwR1Uj%-/D(ݡGB ҈   Q -;*8&҈ $BҡV#xHU(^٪,EV( B3Y#$1# p+T:ڕ)R bi:5D@SL ](T<}*qzAVJ5W;%ZۼN U/ڄpYlDUI'jPM-X4l8]"̘X@AKu.5 ~ hWצS&:o)Zh`0f4koy1h|ĩpJR_I_|*#IBI9X)7BJQ<5_Nkw!W-wqھ 7U@BG&LF%@WDGݷ l屁"46P%;F΄$$e,n4< Gp\䈀PB% [ v ҄⩼;e+cjZC ) BnmmPTCRqXH\($}!L# D #VVt>Y@8ʈ,TQha<|SȈt z @ *# @jZÁ ꄞ h@+!PZU iR#CrP4@,e~fDZfC,U,"lF*S&.l'7tMHK(Eyb (c]i(2 "Rxp/N2emLK=(pE+d6k .J(ƛ(Eq-H D@crjC1@. o$ДP@1)jAL|HFJ V~TW\.>{Ktj *%%%S4X=Ƒ/ > `}zjB T WOJd㥷Տ[_pY𕦥 ' H%A^C bA!Z?`zKRc[P/BZ(@l)m>C{ N\4_`U}_TnS Df`f-E=cN![蜞 2fk`} Q/`!I l @&hCI.k,NhLmF aNΞT P9r6:ԝ7= ]b/3*P fCborrj}#s7QA7JDx!JTCMA@%>%<8)UX=4KD7E }.Jz0hfIDş KG~e,E&|ɔ죶ഊiW "XL2hal9&%Q /EEsP.Q)xzfM-dAb$c,3C@HR.`gxOP>JL#TI@gBˬ`h6 G4 ,(}09P" u1Yr<ALѡEKPbLM.xYt%hlAHj&rj( 2t>eoTؖ&d-`լ.x _РvV=P4EZ!I/!yЁq KlE^@h)Rn'I0DVDhʤ+R+ERH*ҥ\)E1YU&P"QD@Z[uD* }Pa%P*Ji%蛒V)&v((@|IjV+V"S=aUܬڀoPap8dEkABRױGYL E2iJHHW+ -\ʥ8]. 54cXJ}|Jɚ@j{}%Hx&,-;kD:!E&B"ArfѬhsmւrX GIT0hݮ!K=߸~QJn>[Dp؊˕tQ B UA4 W q*D&80U ~ J 9Iae-=0Pi ݻ%`- QiЃ5]נG]!9:Zc%bg f H7)tB2& :)ky)>: P|5,…  /TKA*MDHʷp2<@z$TBEĚay q!PV%ZADV8,`-PnWڨ$C JUIjwh Y+/H!tH1cX̄7E8p@b3ys$+: :j̐M t^m}II'>)& ʅ ({]9zPDuk0Hw"G="1/(` IŹ G'r" L(۲TP`KYKW%pTȳ (!%E`SԱW A 32Jfc^Q~)\5R%TVe(bI#@!lN,N8Q2!JAh?F̈́(.F>H+ i2HR$T@hE.#Z2@VP@ l*c6`۪ꖟ.$f6p&RV@i[j!Z)>8WO"Rtw6*"BiN ٔ tK6[2A.Z#a%T'Jq*[I%39`]@e BĤT \#^xUb d]H6$Ul-tᭅnew2 S4PW[QB,WTbx{5Ũ\p'JΊfO9*bE#Ϙ $2۳@/Qx96ڲ6R90itQV6  #="L,qkd*7T!<Cןh4f@y;"Z7"S [9WN)&@L %*A$#.j$r" dIS%$HcؕG, ZXx͗衱Ǒ 3rp 3GB 8,&ü}oɒh ֩q!oIAt}]0ƍ9X:VLL5i[C[+HdETҟ 4/rR)pˎJGIȖ,ոձBTل*]& %.KT ȸE -m$-h6 TU!C - Cq#RD=ylW肘-}wV[<*XM/ӣ%Lzz +ƺZ(Δ2lPuq$R]#ES<9 eR,[/9u_2bb+ .yҺF.bQ$7)'#$mI~HZ4Q!B\h JjYZ`["'| D%0;QBM!f(q=U KvWm]A8Oƙ%Nbf-,*Z"O K' !x\dY-h&ċhxSqR:̏0AoH"yԓWr u4%\1P#Ł[dڦwHAp(˜1+pfPT9 \xJG*Z칎QT"lH9 4@HP|fIQT@pcu9Q.}kJ jCu aR6d%xLy;u$W !G#gS kTlZ j|)%Aǹb"z|;"_MϊZn+2dSЇ r@%< C +ҲkQW&P/IPj!q4o!Jz!gR6'U#v-'nQ<ݮÍUĥ"i*X8ErI. *u20z^vG"&U''IIeDwx 3EQ[0>m-%#f kd ^A;p< fKewhA">hY 1 A*T,G4 }"iBS ]EeZ"3@EA+ӈ}ә ,Q^.Ъ`5``1~P:o&z L#L2@^Q*DʘșC-.&AdTA(NVF>/qdP 8&şLJ f`A'$0 J X#@@mj,L̥ 2fC~@w#-Oe }@* H y(\jk4̐XHj>`qb:,cNމQba\4N6N߈$\ϗI@<.V}mNk&њ9Zt|>zPdX{e *hviIX5 'c Q'eŘxۺ4t4H;+dLH;mv"^̊Moj5)IۃT9mS2{6E@缩h MdU i- BLp e 7Lh`P/<v0T`ZD@$'^*aH1 [ QX; Pp~+-Yp8jˣ!f2F0y$  @D@)S #,]j-Z*fwNSQuCzͺ(TiQEt_:tMpOtJ<\{CBtrB@m e ekBrYEb#,Lh! =SIE'RQK+X$ԃ / [4Y}R{aԭz*?#ىA @1@,xC;j`iTU))PDȕ)PY"pE}Q*,}l<*[ZZUyj)ʹA}ܖP4!GWfI eڴaaD+bDm 1 S V-4a>8(O`-X pn0<< "L$^/e|$.2*<]6mKN@D: XR ЊUZZ_: ֌"5qQh%H" D4PjtD5VuRJ%qe*!hAQhviۖ .8(5;8G8$vB-@.cyJ! N&dymP+Hb]q*_4D6%wBP!jX+h<@@(+IipB`aݮ  V]@b[ځN캎z3)$Uf6=FD! ZkңFWZASGVD0;5Hbr ez&ěhD5,>\HzD%B$B*ȢiU@)L J-B܅y`0\DJ2Hp 8 fb,JCt}2%/PGð dI*Jpu˱MGa*HXC L-հ (`+z1 p"9B cQH`x# "+TI> $K,LRY Zh&ӡ$ZM1W7 miej@$ j? APK 84$'PF U=_!(@:(#h]u",a ,$uZ(ZDś"OqCfj ab 7 t3C7P} &LJ"ڊbS3$P!@EDy MkUx%۴KxWp>€ԼJ-\=5Be/ O5lHI6"G}RGԕjP.#,#4Iط61 HRh^ i"C| =qEGOv )joDtȀ1l# "ZʐXD *< gLKEuWOoxն筻8(E+>{K4@ogDְ5?"؈aXƏR SHΤJ!"t ńj2 5 <&ڨT0hQ;D!g{B(PM Ղ$ z*>B X_"H9XߑkGdr`ȓGHVVI11(BI[Y\!j1%A j %l]R3V`"XTF>w)lEkb@0Zm6H%8 g@1Tg 1ltB]Aщ7?R pd!  쫤"­ KR -4mLC0!1|P+Z,h4~- D7;lS➈X6K^F]@Ȥ*d6CnbU^8̢@'v)/3 AX6"SH#ƩuCHc@bhzoC2cO7F3& S!Ӌ$!L5,$ o @}JqkwK|$Z@+Fs)= ;rQP k&Bt:( a (Kc\BHՈܜXvf cXcզK$ X"Q/c>&/iT&k1ii O"atUp( L`I0 <ѝ?.Ր" * Ao3عb#3гvX&+љH[Ba# +艪7H\q^c`yょ֔DsjLke A=FA0x "Q+d Yz )Ɠ Yf=yHMvA&'BR(mIDpZQlؕHN]X@d֊\z6 *(B xw*4 ֳ49@ Hhp;́rS/l <` I*xT[5aᔂ,Tn欒V# JhKIB恖"<(mzn8 c IiQ`"7 [:(v(")[zR y Aъ%PcaGpn9B7:0|T l|3|B ӿhAn ln*QrJ{H0x((2EJOcp4 $da,Dx$h#( Ht C\\=jwT,"GĘ阇LD(;Ѯ,F'< gJ<D 6[̍0 rQl`œm e aQFF &[K@ITF7[0-h#bd"-(6q]#<m  ȤY3/.ekW<¨!c9 At-醼rBfiRPZ¾&FGgԒFE&C*C*!B4L Pyʈ(8-,%>_P 6WܐJHL)_+0Y`^/@5 9 Tޞq@8X%D! KJ\1Ft_ -o0;5(HX KQ\gu5 f\|@hI(O H \ˤ3}"#xhUq=S頨,E)-?nJ`JŸ=Uah*h7N*!KQE|GX;B[سIHQ!@ AWҨC %NkW@ Yg!IЂ}L&">B %5)Q)2L M#˙РͣT#ė<.mJ'L>ɝ-1D1F$!H%񨯄A(sB /5G "0TO?ТP @$$}I>@M h[1".A0(Չ`|S 'zX0e P$VW+D yME;J eHi@twT0!.vPK`ь\Fh*[Ӳ@2 PMC*R4+J}Xt_Ur@1֬P|((2_+DOH@кjV`ć "nf;mxZ .5H΢6j"BIЊb*p"iA҇ "*, {d˅Ja -e@ 0#KO= j܄I d (앓bh7VP6Z9ULS4mFt4>%DxC|  CѴڀMq$<.24 IhV@@DH* nIPJ#e`ּ$(Bm%'2GV[Sep "KD誄aSl/HASTȴnRb*xG0aZ0WOZZCm*:VBGLɅՂ$3@3ipKuSr42.$Bv4'ĢuUEL0*-ʛիU#L%H-dڑ2ih`eGwWZJSC[8!cՂ cF@-#$l.$UX#[AjUXM-Z ={bšp /` p+ 7(F-% ό`H.D>,BrP =^PPЕl-*X 8 .Ѱ=|o(EPD#{$)a v'([U3!MU X"$Lu\> ҀK"4g28|A&;\8 ˛h *)QX))!O]8.vbP´0;[Eok aH V@L*s鷻#Fp#e4ڊg I嘫о{JAh} [ȘU_nme\x&5[MĉNIA*і-Vql2i)%O%!JQ@BD@ 4x,z @`Հs)(jB !2)@c,4EU5EbBIoѱ(5Cl -;uvQ"ТJ!~"P[A)\AT* Jbf\;&Te%>A ,P(W!ZB,qa-fxRPQPo5[%RasЊD(GCJ>ǕkI#R2@"}-{b*^NTRy* ZO L}~XRV! O`P4 Y !D h"bXMh0!4"d~8=#Guw\$ D F] J!&ZcB<0($1D XSB0ЯX ,Pи E݌#Z-xK{ |~ OTc 4rIי',BT^WPpԽM9k+l'հW(&^ O) ؉I44\{YLR-&0e#g"3BFQ1JH^ІA߱!b^ b|} V,$PJNζ!i 2O>ɻ{<9P~I$Z1& *G&VR.-5lD*jUcVeB] %#llX˲n34ڿ)Y,܈%pLДDғy?M3SA(>Yկ@:5r 8c K%g Dӂ88 L¢=kAD7ĂM؉TʞfY7"pV2P*x(,!J Hdr-C!a)d,) a.d31|DU=)ı4BTSiH;)A&]^sC znFܵ'Tg hryD"Z4PT!P$&5`T B+ i @G*) nV V@5! 5@XM@D]؆&vB})J> cа$_P ߁@a= OtRIC@ &2."]p|`WD$AS"i>)j_ `I-ҡ(QZ RPp ( cۉ!& BR{44xE@T:Fw$IFWr%TUJg%RU"!H[O =.CZjc@`o`D@ :eP*!qZ+P0|5$*1"pq &|qpXTšqDZ@A&@@~rіWSR+Ty0ZGZ$h5 rX@0Z*l`;(2C_t{q-".`>Ac@56( 4 DDOT">V(e$Ӏ$IBAT2aum|{F)B-FU 70/tEA_<# lJb(dCtBLc*/Vln0Ֆ#D4j q,BcUi a'B_;liP10 RXF J-JjZL:%ηB4O<FN<$'! HA?W{yTꐡs@QדQʷUZ{-_Ouή# mT; =XIKxIP4[[#zTRƾŘ@%"!`!K ;vU*@<?зR'Pu/EZ+D ,P>D 3YEqhi2tWLU`/)ʖdymGvt9(|jBASgH_J@H^>ͮTLU PDvd rh h:nb K|o]UOx`|F KQ0j?E~nLL_lc1)_Ov`D$ 2oTAf7@XJ" tNX HA"aF@vFA(ƧPe:0Z-BU!Q ѡaOJ | G6A V{"DZ%H/;9FA nJ}!ea T \ TC& Y)nnZHYD4x8Py9M':J(!X&ʬ G H=&_k!j/jPYj( jqE<=2Q[Mqiкe01L"T Mulo047M Dèt"l! ,^$P@HUXUI0$$^fIHfI^ yK!5 D&nY󝊛 a( /&텒A9EaYDڤ>ҁ` -'h)'JGJ>.4 !I3 "{ ^'סG@F:h,0T.Ҭ>DJ  3 1Z eO&!<"нH*$^Fh t %^hG+6AP03ZS) `6euRz$#aIE !46>%AۍǃJR  5#@ GEc^ L#[#["Zj%N*z4n#5c$Qx}QN F(rżFvy$\ꙴ.,0F_$ET$Zo$== [F-LWf菉XlbĔ|0jYzf r]:Dy):lMEPORC0٨3JrpHSLR[>K0\"s'024A0"E#[ BzPAVaBjt! KDB֡@{XY"2vy2NB&IB )A_7CPB<)? XO(JeQ5߉BS@l@1Ɋe (/D)7ZKFzd<>C^Yoxk]k ިGp&>"cTC9T@h|¸17kiWa s z@t'CHuC7QEhcP0X UX<2hQ4Je3PjffHi`JP7 DOH#H"RiV x@ Mҩ( ڹ41&h'DTe([VٗG\BH N\dYʭ"ǜ;gc]EpaPB+ KJSn gfKTZ"l i Bh"(d =jTxP c R2AD5U>)//!)8Q[p-*;<0^f(Fh|(4$)t e0FgUVX JPf<!* cz㽳I tjOdG 9 ^jMGaΠƆ*3Fx Ry`b\DtP/(ZP\}vE w4.#6ETTPM^C%C~b) 0( UQ2A%((VΟ- $F1E˳)ȓT~T`4i@A~ZIE;IмL3v O&8 ~ Ld:Xhʥ̈(:L.L[QWGE$3D{?lIg;X#Gh ɬO)כ=Fn *ihpwJ0A(< :j\RJyI T Caق'P5%RKѰ!g-cm9  H=> F[P6(KaMbQE<2xþ=( ):FR2k T A''!" EAjUR'B@6!ܱR$ iVJJRX. Geqǎ^Ğxd~"$8 P"!RS, 3 YTi,Z#ƷvprG #0zHϩq,cS]GP="qiR]Ma W#@# ";40A" zRp,-Zf'Ljc@ xCThEZyN &$H4*}v5Rt}! pϠ…s@K=lv |8C?PXOhJvc^x/m-U9!O1}~_o. ֲh%X FT7wPGD_/: Z"yUN PoQx)_ "e>hqn-Hh/7e0 moA>@MzIB,:8+-!t I$0-ʼӼP:!oIXE0b¼ (hlV[C!?UIprꦑ_)BBDP҉*aE HDd ƶ8lj& 44x@b:*!Ltx, 5\Q+ |!38,T)- T^P^ aFƹ} 0d/#7 hAdz\H! %Lt´~s҃#U1x@")Ik襛@XT0?dJ+@>NPqbuF $Em([T`|dsW@v| +) +M %W@ `ty? KDYj}p c%&Ԃxȋ(B!^q%0Aא`/\XƖHvPְƂOQ;SK4"h Q-Hm B,Ť!T&ߡ& 9$I08H' @a!gH'uU(Lģ J2edr6fQ5 )?r|A@!+R,^t- Cm%sM!I DВ@T D^j"H@(>!6UU`,BHz)4dE6EBeK&/jA@ЕGAj,Ȑ ?֬?4s=-B|f (vL2XZ4W`u}",hDԨݹ "[|#"Z !!=JR#b;(m(X*  ᫒&ծn$F^I3$0^ThrtTAL!k_zhz8N(,[7BU$ mͅa_Q"QgD1>PQ(Š} M8!PTJ#.ץ(Q\F.#R57 (5~ Hd0ꪒ];5HV&UWFJ*n!`*}ԏB47B"J=2bDB ԒYA=&0&6FDhAA6%=T# < )yHAtCX8T:b@T@RbpCV邴f($/#W'HrfƮsvv6nԂSs$@jxK(!KTYJ)2x)$ҐJ*-*G\4j$;bD\DiHy%Jz@kvu3@ ɩĀ6P@ƭp*FG,THVTT^" B@TmYEy SX "@Pg8Li:3{eE,ܺȵv8$B|9҄೻Mᚓ+Ȅ; 4fG79BYx pec Aa_*%f#8ѓ 6hUJl JTL5A[G@7JY`yŀ#z„x7EQ:8r%J,z\EBz) CaPSW .ƪ7.ꆃ\d >VOdI1!΋!4QŠR" T{%*2' ;xBA @x "5 BL@M i1NUaE sFeT 8 1A>5:<`J@zdPY څ:@,, H(Z CƈJaZL/@',ml(R]Hd %@ISZ84,HNb$K&:<=&VAl"aQj}ѡp<\9_$gYHq"@W8@h<˓j)DsIUCCQ]) :::(c护" HSSp LiH0# 0(o@D.M@X[!T!14#3a-R)'1@Aml i! hR =\) Ԁctܜ"h׆/!XI%7:TMdV8 Ss PtFm8! . d _ 2iCCPdefault_rgb.iccHgPY<@BPC*%Z(ҫ@PEl+4EE\"kE t,ʺqQAYp?{ossp e{bRɎ(tջ{i常r)teJOYLgWX\2XyKο,]~ )sT8بlOrTzV $G&D~SGfDnr&AltL:5204_gK!FgE_zs zt@WOm|:3z @(U t08|A $`(E`8@-hM<.L@ށA2@F 7 Bh( ʀrPT UAuP t݄84 }aXև0v}p4 ^O6< "@]p$BV)GVC!Bd h(&JerFTVT1 uՁECDh2Z@Ёht]nDѓw aa0Θ Lf3sӆL`X VkaӱJI%vG)p`\.Wk] p xq:o—;IA"X| q B+aH$͉^XvbqD%iRi/82! L ے&US{1O,BlXXؐ+ NP6Pr(3;Yq8WJ)Hq"HJ IKIJGJJIKa8y"Ֆ͒="{MvV.g)Ǘ+;-Hז,L_~NAQI!ER¬"CV1NLMZ)VL $L`V0{"eyeg :JJU*[5JLGU殖֢HVQ?ާ>حѩ1͒fX9֘&YF3U^FuX6m]}G1Չ93 |UҪU$]nnCM/OS~~>&   .y݆i񍪍&v\mu:ƑGLMv|253Θ՘lOv19|y-Եl^Zä́UUКij}ZhlfSoV6¶vʼn伲3صs-[{'BCSGhGfhgWΣ<lqu%V>svu.֪MZ26,b&*4r**4j:*@LMLyl,7*us\m|GD\bh$jR|Robrv`NJA0"`H*hL֧uӗ? ͌]֙ՙdKd'eo޴gTcOQ{rswol m ڳMu[NO [A^i۝;OrR V (m? Yrˆ[EEE[?Xި%%Ga%oDDiNe̲²7Yn\^{p(㐰­Rr_bULp]u[|͞iU-x4:zccǞ77Q'z̚KZ!'lsWnk]8q/v=s}ٚvZ{aԱC) _}ABEKr.]N<{%DƞWzuW8}nX8[[Mowf[@;]wv8d3tyoy02*|`a׏2-<>+|"ߵ~o /ۏ?yx??'󟓟O)M5MMqb݋ɗ)/f 櫳/ M^̛oy=}na>|ZZ.V|R?B, pHYsgRtEXtSoftwareGPL Ghostscript 9.26Xn IDATxl\}GPmo/Rth+nK&M['Gz{;\- F1$^I):?R;&kU%箄1FHwY F6ϴFqm .8Y?hfΙ3gHɘ<|s\~]s[( tX(5ۋ>0e %|A) ^shN߸%aF끔"B2²}Q^ cZ|×P@LJƂ !6 @y%`/B Bv2%GJMBCe++a"@CA/h%a* GC6(0 !xd"*JX.H)Xp!`X՗0h3rCt5P)V8)E 49L[W Xsš!`o *JB^r]XsE!`!r& m<@Qh3rCm%!o= H H! 3r%7 n]($B8#7YT=[Rm偔"7B9x!oWXpy!1ȭ*JBz()Esy! T  Gy%9䁆@za`C) y"5 Bn K Bp$ / yja,8hDx9J  5BC B[IH6R0Ph(9փ?(BC3rhB5ZIKa` B;@/9(qB^AB$%x@@/BYCHJ -^4k8#ǰmխ%!o= a,8pg[0FC؊hUn$)E  Q^ /b D5"Xs+4x(^!Ba#QB)E 8(!}K{0@rWXpy4@aR_CQ(a,8$B@e (hqFyC#6 cp !~YBo=gW‚EfY2yɍ*JB"5ECy@ n]( ![4"cC +aW^pccf\.WՅ^YY*˕Jeaaa||<5v끓KKKFo3z]WJB_r_}J)b!bQ/r@\JNVk6gϞʄsQZnrʄa,8|o \__WJgDF^ R)HJF|j)&''sc]zL칤0fa,0&a.] eT{@[Vݞ>r%>oSQ׏9rL3r#Ct W=*ΘQ^EovKKKKKKf.\ПZ\\٩T*cccNt:fscc#x ٳ'ׯ_O$=#AaKW%g%ΘXp8@xk׮%JRTvvvFvj6'Q1/>+#"c㙰'>3H)Xp8@X*Fv=>>uއ&>彣 0"NײWz!̑ ӌ՘iGJƂjB}Nx:"`ݞ{B}N>55;*^@@1Gӌ' p,F%K׃t=$t+Aj7%6.2ZT*U*lll[yh Co?93> cQ:Cj{ϷZ'N(JP<66677Wfggu;|٬VQ_ӵ) w+-Ea\ }}) RQ^E[RgΜ9rʊɓ' B{---mɓ'_jᯉ4C CBͽL8cGy%9̷{lllZ;SR$):/$_Ξ=O8k %°{˙<հ|v_F&L\ gXsa,8D (Mw ԲB#Bͽ0ZH)XpQ^@9GL@פ]iUg BJƂ +y4=|v﹬hTd¾]H)(" F <{Ӡ6J&,ʃD}LX؅3faWx@!WuQd7Ӆ3fy0Bi++6Mƒp 2aCLbQ)E *!:缫s^uNAJBåDB¾8iƂ wB^o_ R\ʄ"EJƂ w 92f0փiɒP ~3}RXs=cadCzpi  ~3}q,FyȭF D6 ?#u}kC[^rNf}Z*2ᐘ 0fȖ""=[a3,yɹ  FG14~(tglE&Lw]04yU6݄0''#c0!1 K ܇F*KQ2ṯ?S2?$8"4! DsE fcOX8JH) qfY.XCWVV677rRYXX9o=[co2|ͫ[S>oxZ]*2!G,6?0rV+J;;;Zl={6&noo?;;;;;;zh={vjjJPBXKg<ǕeTN0<\ۙܧ*ރo3%a By9266VTFՊ`P:#l+ }EE`dfa,8G nrrY)ts>jt>!EpU(i[((v0+a,8F 5h՚KRzT*-..f~x2!E{0}UH&L %f"9$pzҥZ<777m'Y~ A/9 LP*L8b c Ba\ +677766*.\ׯ_Ԟ={IXTX0(o4|ωoJI9b<n ڵkC}}RT*;;;Fcccc)P B`< <) U0(ƭ)L !к(Dž]p,J/r@X7qm6 d噟{[;$5Q?>T,pk +ya,8 A F{r#NTj7 Sf~e{aa-((R(0!yea$|)O2[;5Y .G) +*oGis,Ƥ4 A D3.) 6>$[|ו IDATSH)XpaLJC(oA $g|aA,TIJ)E<^A P" 㣁\GOW E'_Y<^! y JB+WZP$ p,5Ƃ#?B {L .) c|jok|O?/yU&*f@JƂ#B C'^zCEq$} K?H GL0uII0\8B _ͷѨPc|=a"F%D(!̷$P1>ja3a&%a"ǚ#5!2b|4 5Θ1(9R3ryW㣆x?' p,"[@Xh]&$D﨎vR01~n?R}O},>k 꿖嵵VU*jR#B:?{afp xʁ7&RD Qz{ħOpO>r=Ubǖ%Ȅ)RA $P]t&TJ7?o_y\v'?koyx12ȄRF B u;Օ{ +GxfjBal0t-Mo) @I8"+yDqd@d2E&'TdB GGy%X @2?)7B{r#K& )E L0$*DJB )E ((SD;3!{ 0sa,8R#BSxXۑ @J6?H@܂@yڽ/0m , 0'Bal@8Cݢ0< sWH@; 0p]3':O?dH7PJn+Q!w}P"㣅xݏ41UW\xGBPj66.) P^ cы@g1 8 )RcdNa"pUS|AuC/91(,ହha=&BO{; Jz(0b"P~b4JK ÃG B,ǚ{@PP'P qByBa~bE& FyB 0=_9Y*| cawg |! vƂ{a"!ꆻB'͊_^"(#xLHLbG,uW'Xpa\0!A +dBJ;5)E .9D B Rw?K}裀k^Oxωxܥ3ħO^~)E .5w cK_{`LK ) 0f"w P=]l&TL茨vK1 cQ/r%ޖP8 ?*jWR\Jy%" `'%a%>ķ5>'> ]0Q^#cmD D@ә[fGa%>dB\~Dh!bB Yɫ{(X] Pӫ誠$LX"cn+`˻>(HDg¨^9+?rѓF0>gNgޏ0_lGXp !`"@:6I>%t. Cy%m~7cLK!lwo&ϣPq቉yyy{{;ɣwi#Glll}1 aw>U% P$35`>!\JNVk6gϞyԻvj4Fckkk~e`"W+uiIP^ɣ:NV+.\ z}uuuii)QkkkvZpqqT*G]tIe𨩩 1 a}_r`=3>*68B|;dȷ3L0!l6Rj5XRi4Vkjj*Q]MdGe ]bGG̸%גR^bav]..,JNϞ=[*>ký{s7pe v{/@RX aܣn#ƉjTRz^*sLoscϞ=1{u$6 B <7J}Qo2TyֆۄK›ߗFqB8@8k׮ U}ù{TD~zԧ xL#s(}[×0?b)FyB8@T*-C{߿?恳]" G6;WV+?RQPTIx1Rd0D o-#bm$O4FfBCJ^y$Cb Y^R0"Fҁp}}=t:v{zz: m.h4Jib"aQ&FOok|O? bJR0ҡC{oZ'NPJ-,,_ngggNgkkT*>| gff:$t@e 7uH)!9s̑#GVVVVVVGN<_hQJ0f!^ٷ|u~'ԱPЄAͨjj+?wxvTBYl+LMM]xqccjy睕JVJ%v_y dBG*+ Gy%()(H@N,* ~K›Cy%X3[. Ȅ]կ~׼h0W/=!C2FJƂ4}0ryW8.Pg¢'/8w{ %I-},^`aBtLsfv˕1>NU(00Qt&MLظalb12 ē7-.4Q0M(dc/.{3dLXQdCg¾ҙ05>'D֖/{lxSg T׮-\x!9z# ;<5J^ɫ{Zž3Q!_ ~Xc| * 1t$ )İBC= PgBOBI]] \&G@w0vL&DNbrۻD!ce R#Q ]I?3"c=G }P8*!rLI80AD"`" r !`Z&̩ty$EJbQ=B!H76eќį?;`cLaBP,./DL bBJ 0W4Bd΍L<qofp4#@"a>b!@&$!H)XpWq ! {Y ?V`8-¸0]C$¥nXpBe @[L8P ƠƂ@$bi-__*(} 38u6bvDal!X9p# s2{0 b0٠ 1 d„(kjۅ@F,Djd(#b3Ay%Ebh NHјGZq4"@ p[~dD qh2HG?׼i^඄P抶#D!ޯcdB$a{&dpTpDB@#BH23!d6ʄ^nll?lj066䁝N8{lRrҒqMf/f@ƋǔRoZ:DquQK'(ϼ˵ZT*MOOjfy$p}}=SFckk+#@X%{p(1΄ܖ0i1ܣ~7v:ZV./\j|yҥZ[[[ΝS#B^YyੂTp;flF u]\\l4z=&/oZJ4=& ,wxs=*{D*D<]_WFǒ%2aNȄ9!fVG*JhZSSS}uY R;;;J{fPBo=@Ux:+28-E!yv]..,JN-dJR/t~VU*j½jR,zfjw~cZ FI7b!o TJx՚噏=Y_x̙Egp/>^N8Ɔ@!&v])cA,n&Lo{3âLH ^}W(ݐig~Hł.6Z]]j{oZ'NPJ-,,/h۳j7xjϟo6sssQwrEh;B% ú6&X IDATcyWJWxW?\ŢC+a,8lo TJ9sȑ#++++++#'O 6MgiiI)U·"dUK n,׿Bnf _:x3~`LD+ NJ=*`>ŋ766Z֝wYT%^RܹsQZZZz{޳/>-~߸8)c)ܙPR}ꉅ¸GLu fff2C}N/@Pbw~c %;R+M;3*Q"!zJ)sv]aw2r#p%& Q^#(B@LUNJ8(H*vՃ]HוP ӗ?:]%a)E CQ"QU!A:ͯ,EFHI}bʄ"GqH B9~<%3G3$P)I)Xp@PfTUaѮf>L>9ތ5>J&4 )E B"Q"+AUT@\ńA>g. ® 31)EBmEࣉ]C>(ctLਙP)W?;A8,ވK֖}rv`8{]|ekg@kB(!G+{Q v Rg3xI̍PJ -F rDDQt Bޅ"L#Mn\U{%"pk}qVsByB@dNa RzB8n`xu~)Ʉ"c! @,\: UԐwPsQ;͠H)Xpd@G]SOc7μ$ v?M)( Gh/R0Y!Cc"VBv#%˅B2H)#P1\^3v0t#\ *|j P`B oy̑ {#1,?}eiUcR')dr>{j <8R (!bt&C2%a3Ʉj*|΄Yݕ~W P(?6fB\Lcgrh@JƂ#ۊ>H.}P@v7;CcKŮWWb@g,+ G +޴ī]9Z˷ h@ !H`3 {BԾ?\.Ƃ#^ son(vJ3Lfz cm7"m~.G./tpI΄jwbajuBal.B2w/i*t=aU!RWpB9aԄef&TJe_./**$55څJBX2zǻ?"w̑\$̹[}X*)4*m ӦF{R>#2@4A,|WOD$ȄJ*TY}kW}'~)E '!D(`/|G}"ZP4mH)Xppczk"Vh_ ΄1_ |@VP/.+.' [ n.,ହha&BXj* -\Xh;+al!D(!EjgB~z8*?&Hn4Pk0! C8/dB[|2aba ǭ  5{Y ?P R.,4'oB'\&w +L8b0΄N)E FF&By<3al6ae2;|xbb_^^NN311ፂP&cpdQWnt "Y^^>zhݞj3ze \>؇@K$>J&1~Y p b!<5:NV+.\SJ?~^.--?vssҥKZMH`P}սg+,'t?{=*a$-,,4Z\\l4z=>? 6)p%WЦdM=* afVG*JhZSSSQ<{J88#Ffp0R.A=eTӉ JET*z!xա@L X#]OhH5S1p0xߏZB-a@}( epTt=uLXpb 퉦vldP$0N{oy-%XqgB-ž;blF gkkK\~=S{ty E^x[93t3') Mn!εk׊> }Qɯ7XAgB¼]}?lTO8(%!R  aR7~r"s1;<,ؑ !U!vv]Lȕ a$Yh PGb B22¢ew$|`O$29r7zB=5ZQ؊ aHm;NݞE4j0;A&*,NVoWO$"4:T.kښRj9rD)|Mݞ-(X *_|P)e2)P"[0Ι3gă>nOvZ.CMfŁLh0#q.^jJuJs}ܹDh/69%_|lǜg`jT C0pr}Otl[xːDP޴kQ!@a"㣙Kx%s(ՖQ]~pB(\!%'D,n]CsY=:sQ)6{E 7/!CJBHbbd03wn|6{3?EpfJ>5XBU Ԩ$6#EQ\aN_7{B쪚'ߘ ՕLR !Q0VOEOį3> C0>0GQWZ!~jFa,8$2sѮz0LRuVn) խSWXpȠ!$3wUJEOzwԑoHUӰ舆- `Gn-Cy%,5G@^Ɣun~ԧcaga +<%Fτ q @d3ʹ* } aRQ̼MK_\H#$zjz Ȁܘ*MzBXHUgv7e|T]p f !!!װU-_V|CBBtzK\F τoRLOEJH@2p枥+˙*XpmdәPcq%25#ca+Qq+\F]7hsTC_ڌ(T(>TC%=5{q1QDK,6?>#&(A¾I)0xZ᧊y0> Q,G$|VNvG7A|;W*Ul6* ?s'#wU}㛿 Q8G6bI(W``&,$yW∅^!P"ڳj0>7v}e t%a )E ! Bۣ͠P GO$&TXB㣁KBeń$/ %F )E <!Dh}ݲ Uaoz]C*-Gw-3K~ Q{0#10"wŠ 2SpˆkU.jP*9:(%]O2Ti Qpd$H)IB$K;*IJ7s`a/aa ID,TH2G3! Sޓ0LhF ͏cȝco# 6{7rt;L4K 2u5}DMv""%bG3aEOJ¡P^#@\]Ƥ tp/zD7d{ \X*gAGԱP 3GGgTIhT&,IP^#ڎ@,9\8 K] w'uV0yUxsa̮g"hwxRBE2D%iJ߸٨^a,e`&-麵0T&îX0;WplI"PǣFdO}G> v|4P2R:"Eix uݍt]PĕXfbߋ_ͤ}0wTV%Cљ{~GОb!b!@!89Tv*⚺_9 C%c2Is1L{LT1L cr]d: y8>ѕoԙPXNOS]@_B vؕaOݚ+? C^* cn38wh'I6A:*́l%!B,ч!PddM Udn*e=]?A]L$AM~a c"bfXe.wk9q}eXP CRGIG<0<< Ri,TWPok1G3afO}|ǻ?@_:> >bhn](f\V ccc#>dyynw=jrrri1|(â6T0(%lXר0*n X8J ) Ru, ;޵ɟQ$ǭ 9rV+J;;;Zl={6&&yHa7v=/I,JQ&H]V>G:0`)v|T g~?,]d·LDŶUyJfؒk/s𓿁jr|?^WWWښ>wȿc攁3wUwܡڸ2ܵ)R斨(} k|a"a|;p3_P_T,L<&HUiȄ?UaV W E,wꩧz߸|ڵk{;C^|7O=TN=do RyްX}bGaC|=}?>S { {KdpcsI2ŚwRl̷^9 u^k1LCgHrNPb |4c]NHI nAq! 3p *MY I(&Plҭ'$-b.K  I ]K'!=yu \ynX<ٽf28$ KgCޒ4BBG) p4H}duQ':Kc6ZјS.^(^Mׯ_7Hԗ*ؗ }VJOy鯯abHIС8Z z}Ƣf>n=z{;=zY(qb$x :-d#B9I8E%Ӭ%˾Q%P|~bb_Ng}?06ZW}B# d(-L%n0?i\zmyƘP YiV `WBiV j՟/ZH0$D*2k=~x ";E* 6gy* #Bz ǚ#Hm|3{1Bnǿ2zL&?6I"[Rwh!нg ㏧:20ZtL 1xZ,[-桽]H N(\ L,@˕!3*GJ2ݕ_#/}l/DBz… Fc}}]ny!<'}N\gX'06ty5x'aYEBqc_ZpE"a%= r|SN~6D=oӔ%t>V&gU.Eۿ]yN-H.$ue$M h4[[[S,k4 әdjMw_Tfj>Z$c<+s6-t'[xN2m֐%!, ¬pN!ᄜ7E0˲oia0˓ !gB D 5B>}zf IDATf͛>sZ֕+WcϟǙ$;Oa={͛Ν㑢+++gϞx ~f}ϗY_g(G REi4?WEcAp)?)*A+BFo6}s@Yc7ogz%@xX`0őPhQw߿1X :lFZ&VWWeF;dQ12Y?lyjO)!Gi Ra}ο[E6SK;f $0TA!(L'O!r TUH(+2xK<|N"!R!H$4CBѽ !cرc/b:rА, ?p\t_;wm}j %MQ1S$2E`pZ(.928#*j*Н2" r:6e\~l^Onpi&t6H'&`3JlFJC R|4+*螤KvFD [5EJe]^M-4mͼs[ClPP D aaBQNB },ɇ~Oh DBg>NH a*ZHz2{;BS-mZ:ImFl iy׷Q:SGՇvN2KfY~({Mf zzj_bPq]$ؗM1؈thf9{WO~fG?JR 7o׍ V$4*c9͏sZ>|w?{OCJaw |"2)uU0ZH:dLqPF[4iL ҟ]KuFHdkN1Z%[CGgv^zfmIE n4}bj gt';GzgEG+ "%TeK?u;8OLqrWqe: NM H&`j*wMA "5U|5whZt[hY=dT*1H5 I1?eBF9*8pu)QԨ(P.H!$TpyF08Ϯ1jMG`T ׾/R^e$fT a?1$B8rT|zZ_hi4W"JT]'9?e鄫~FrAiɬ hD2υ^;e[ - bG%d<3n}#ice-OFf-])®B}9OQ9n??0$$dHqA tATWxf٧cނ,S%Xsߠ64 `¦"!|+I( u{S]Kk0F5drBBN/',ՙWg LJL?,ށ Bx !RlY!v{FwIIL `GlZȴ!D =Y̢F* 3$fh57®Buh ˚rER8C?iQ?u;E ZH( D aRlv?n@*m_Z<$<-4:et;ڦB' k>t tő:B" )iN ZH(D mS?պ3Tg^*Ya I şNZ(e.5f'H>AYg`Ø\fΣ#Yv zByCK(QBV8i!|B@"!Op[ On?,vhh!!W!$BYz:10$R2K=B&KNL?d [IHa!sl};l]wmUsG?:hUGN*c@/Z#-t灑p~tVDBʑS<rn, p!t JGm ; G=<߉1 ķKwSRʸY1CbN8>;{Jȳwe}}' 3KM޳]Fh4PWB-PO]^ HXʄR:D5x*̲m)y]\7cQ=C}߫ě5BY+LrƘHS oބ1v @Y0()[&@'AFZPYŒz @p/q_YIܮ;'}.L#,T!,y0#0RX]yP N(&ʩfYۿ]B5]|ѓeYٜ-xTn4;(Ed֙]S\RC;sa)P.G:#+U8'd&A Y~)*bSR eO҅n#H,(i'Yn3Do,g~ïDCYoW_+~\ǿyoi$L OZ&rk\ϕ-˨޾!g 395G%0ZH@ٌ)rvTn_;(Hf\ ZQKf8 !5üCX tl,2UM 7 wp y])1׍x#@ +^!̲_r=<ȁ {'MU '`@fm3=*d9~Ak0 Gt20ZI3 L5̘!2:b, GLK |.ͅC >[զaaH9|iO)0'Y N':LBXJ ' BX3 !FCh!ZlfH 1Cgw@͇lpZk^ Zlmz1Cc|ha 0=e_$LBhNEOr~ ٌR;,(2pz:S7(&#" +YK۽yK>`S{;zy;rKb9?}1{vEmf/cc!!u1SX`%fhϽnH!V0s9)HW!psϼ2O|h60{D^WŃ@fia2wksӝ-mi'!&|-6n0XG2vrH f#G'N:BP! )~_ s%,~o\'r !̲lS;O|ĻDFxМw6(d+0T),arρ^ȷ`|*`{qyv1K61؎1:BL N.lw0b|Zд03q?nvQ,6A=PAB8a109a$!,_@l^0˲:C $dYVHI@OO[f#tOf'#O4CdѤ#@PAgSICIC@p) O>7)?q'{\*F&{?F)%1v|[/׊16o?{>(ԏ~Eo??瓾֔Y-+G]֏FFʠƂA!(-T %g"ByDs*J [g %MGB%]-  C혣.ة<4 avH!,T3M$,L!0 af KT9lpUN0˲'>GfkŒīA^wBX3UeoB`Pd AB٦lveiMpbqϡ^7r vYP m"لjRĉ㭃(™E!dVϽŴr(:㟟gnA1k Uc'>CNQ!kBFU4?5FٌoZxm_MXnC{ի&ͤb 9zԵ'P{JFq,WP.}TS ,`x!Hp=k)ßyZ V9d˃w<:a M]gֲ 3Mx@f(iaXbҘ9?<閲hg=H fmЃ]=XAj7vvO z?3V$-$BX$I?bfJ! L"Z'*b fI#H=ZHD@0aP1;*L UxZ@:;ϭپQԋrF ѝ}ۛ棓aWa~!,b^2'f3'Z'ٞ aZ* ZH =5C~{mHԆT-TJCǸ[9(w2v=䳙xԙvwwshX|lш]6 ucLP׮]b72\-"!*~x6Q3M1oӻ{ C(7)F<7zϯWv S'_$J ?vc!m/$d! &b0cI+cc.CmvETP6n3d-OC+3&1Oev\l~X;d-9s6\ hna B^p"'!61$!|q⁧-$rE%ܲKX^&\uR:oWR m suN^Uߺ&F#FI{ D["D< "dTCSg~jO ~-z &}_z_;<4 RB0-gEjN ¶5& C lQJkia!Jz1B%e-6͍T0CFڋC  }W *ЈgI'?#Z- U bh!04 'B+,͌2 m0ۣ ,=&UloFKP_ -tSqm꜖:*S*>1Zgmm\K3[SjsL ?0ʝ Du='Bhl/x`B 3 ehaEŒh!CA01ؘ am2!& ԁ^ հuYl!Hb\'-9`rZZ/oc( f30X*[dZ账T-v;"ݴGwRB"I3QA&gޜPO`NɃY(-*o//!L #!\XXHHkAH+btYk9%z ^Vذ*63qa)x`72-n pJ=dB"F:-xB6uB NrFBIGB/j#t!),ZdB( 4g}iP*ZsL4Lp?!*U-l;Pߒ Z0 Pn:*ܰJ.˴ìEs k=%+6 AІfF&H%w!4j'4>7a@5-$P;h6 IDAT=qw#ZH B j$r5F188UP&Ѻaha91 m¼ʏ IMh!d$z!;rTBH0Z   a/? <--$BhCaV'fGC(]@-i^5 TSɞ<ҷ07z@ȈcyyS>r1PF(zF%/;8F #߹LyW+sMZD49a0k{\0*'fR!@3KPQBT!B; 90#t' FkQ|NUO `lA Ô@Li8L-L.%`d0` ENzR(i! Ш""i@ 椅v׽Պ39'ɧHl//8[!L('j0!qjtBKʶ@]bG:`aFd&gΜYYYǏ{W[֕+Wfggo޼sύѣG'+g-6:1/3Ώ\/=c#~P,P#G}D4fwigD[y}ϗ#3C^פbGi-ٽ2loFNZùmҼ|VOEƛ2LJ_}-`H|ŏ;owO;Eԏ~͵u;F?`"OP |66:sawiglG}K۳[\\xٳg/] 3 𻔐?F$^ʀM7;R'F2 d4X-d1ؗMR Ѝ5:*nj?X0)2)tH?o*7[RH5QBf2L!TBx1l uTK;lgG3̂s׎7| k Pw>  3BgalW#T*>}Kd/- `NZs(mS\ j hf[2o,wгz⵿N:eܮ,;7WZH3!H YI?A/ hR<2pB[ABxW'L'falWX__y ^ttOZmiTĸTMZ5b3AG]h!{&WZh"9&]q0glp&'ZH'Y:NoI28`h!l 3K 3{%fvX@bX "QB^P υIK @d:a;|=r7$Hy?ԅ`=p.x),81BGƑڈnr 3;7 -$BI˛f8a#B%H#ƻxǗ0N CA;`aF#FF,n4333Y%쫃Ȇ=NʈSyQш8F\gv ->cN0⩗1 3ZFN`Pم0 r[0K`B=q۲s*'-BW*Tw.w]TUv BrN(VuJH uT A ~сn-0CB ] 3ooh![o͊s#ԥ =E wqB`\6N#ʜ0T0|0}UFDX\\lZr55*4rvo_uP.8+521)82?N),Xf\ꤥlA|k69f5]Gez;xե` m'[eU;DYe'jNBLؾ'=I #bN??XDWth3ƀLJR`P(dR #zBf)8!zQ TP̨;-d_BZ(XnvqQ >=lYfgqNNX=",dD u hdP^LɋPN12CsWW"- oCndSgQwBB9Nʗ'}1RAY-wpPVSU7pi{V)?Ct(8%IxtŒPY!$@O$Q0+sBc5yXw}V2ҳ} !lIVJɴ)OLy{` Ϻ}aȉ"B6O|i-cPF+  '{/!Lo9a B2 V^wT 3BQr*(v "f7qoE[I¶<iQ;g#;*Ss~geGݘI@+9[F}ƀ̥oQ B1 |aɄ{"`D)[ Gcy 693 S-eǶPUg-0#T 7E&2 c6y&`|f&Rts sF0KL RY22M3Hmd#GڞO8R%$ o(^*oFx(s];Q@ig(:!Wk>b.UD';cmUY|?!K0+Th a T@06P JA,UAٌP3tj f >[ HkbNy2ah{ B"z7  9Enz= _a+y)poVvyX4J\Yja(H(g '-F'tJJ2"hPNe,BK 垰Z Ց 3R )@ !!u]ʩ0&gQE(`Ȇ e;ӵ{Ν[awb)MpQg>$ Y#wP~ޜ!LBYg$yB7ݽrtB 賿?Y>qb-ilQΖlFO lR'I- +r}UF(D QP-LL&/QYӱT"i!> (JCaZ'(һaYg򣅀$xy_ڞs$*HN ;2NBf ,C`<1?3m|Gw_)` E&Nlt>A5*([$t"Rm0=8R,8Ot?2LN+b#`|vfVq̖%7rH&PXv>p%`TAp<-F;RfD N Ď*U9Ď6l<$BF ovO3?EȔ]Yw׾ 1w~Vg }aF(D PO'-@́6BrYBoIrHE m,)[ୀl-9ٯTAo- qc{W{?5+]/> &BL"[[B n77U{JKPLo d 'ײ/Y!Rh@<1>YЖ4x=zT,;lgYw^9Vww7 ʃV-ӌ:.!!Gbs3भ"+"h!l6"-9Лk|c|YLo@/Cr*=!-4>-^Pcd)_"B ˩BJ}9qB>n91ߌM!J }"̇ayB}o4&Љ7>ӌܳfd-$QDI T-\!7V3&|4LGjՑ ^Dt`~8Fmoa7n"F2n+* "3AI"H}]ԐQ p2!vGrFm m!ȱF/ |),/P[ ]U[J)PRʏl{R؀#cob$`h#5Gi cP(F2U\TVB)4"8RL  %$ wBN(N*NhS?wfZ1]b@)BpDžդ .2Ik6f&U4@4 TV' )PR^J xQ.R*L?.B jӔѲOi1\i3[Q* A&1j";NB^S({d3fuk'vBEBBe` uB! /_@""B J |H6qO yPTF$B@Pr P d[GƑ?G}b8cHs Ӳ{GUi>ȩ\1ҍ^D Χy-]qcT`f򣅾6t2CóFnO=H84RJT)(T)$HD Y?m{ W ئ%BXBfۈ[Ma)ft#Jw `V2}G2\i4b?U%싡a0̓$2!4Vȏ*LHB!{ϟk9a!dc&UwX^a7*mhal!:yd|z)p%Pvmf`H!,^UpC@1; >ΠJe{JhwfoAAξ[Pp5 "\VXb7f e'kQ%HUu!g6=&vTEDD8SYqk?0!$$ccc-?Rtҧ|۪Og;0hiu^8vfҵn(;PL6?l=1s[T$Dn/nJ_Zt.E=NPv"Ns,BH3L-fjrځ@Fq277h4ƐJu}l0):@^d%ʂD v$O:OQ:εѿ:dMa*ȟ 2˴uZ{&VfpB7FbᮑW!2/j!(X >hz;١!xԩi oɥ\Ә+-,2)-ڎH@%? u~U輕C@[k!$b~~ʕ+fΝ;ッnuèGEJ*+cZ/bE/\R!XAfR(%a#3DB_)\fYj*Jo3&eaiTRy̨jZЍczz\BhcB @?mZy ޒ+hzk "v͛7777_~b d%B1` H-PFR!a~owvoG EJE T3 F7fφ}֭1=#-TTX/BrㄅBxϗ7ް=zf:w|2IG c0tY1kbD^ 8b 8ʜPg ,]2DwR:,5',  GґȕCsFw30005S IDAT5ZXXͦD PޢSSSFcnn,:]N ߆0Zh[#݀nf5'kgDBL mC]0@*LB 3$SŲ QFDy$q<@ecAnHt؇nLZhab?aSp\rW<`D$F|_´z#BBLh梎0,B$4NX!]{O!L[9D"^2gt0!}E#|r֖ "(Bu޴NN %xr/k tAhp^ʃiݗ1 ]6>9 ;|z} aE c :lݕv*_FF=lkkG{E!!7 \ph,,,啎O@^A&Y{~ti0!Fh!~a٩ nqeXX*LAEl,x"9_miTqD€τZ,',Bx]g:{u,z ɓ'aeD%@//WWW=$ BHO!3<<<77ZVR':H }1~?^Ȇh tX&vOv`joCF€O`Vs?{)Ge1߹0K U-kxIxVar†tqB6%2I2-DΘ~"@rZ #BfIBIkxPo/ZIqBX*\t7:՜С+W={-kkkO>h__23k׮ݼyar!$Pw_9E1TtD錰cuSiBz{\HYxrZZH,i,N} -ƁşUf|/a澄RpVYTaz+鄐:[A{mZHB<-d>AY8ڶVurx0@k>t^)gG+""]9)F,OK]IFZ'@[@N)ԣxBH u3#r:~l]o4 T ә-f&Ԗ#31i<#HsnQ̒o)dIѭP43ơEJ+} a@',ɧ1cR777'''ϝ;j\Fy!Ei!sL( k[fO Fa'm!d(,VF[DelYgZ Bd)&-3vK85 Jzȴ%,5'wGݿ*C[hzӧst[A@Cݿ;ېÙ#1}^RՁi&4` ϼi!k3Ȕ3Ɲ)Bg*@ `Ka=QW !K ;`U^ ?Cxaqqj9rdhhHOHH"BzA܇!68yB"D -2xZLsF d/ܶKBhhވᄶFLHN(i1\FY:NaQ^"rA@Gݿ;}Bj5Cs?b=E έz NqyyގȶI(GT{EA 1I+͡Bsk"v*VqۅZ4 BH ĢߝŐmFYTMb%@>^Q#6aBC BFXh8݌z`ȭq^ Bf!s Jc QǯZ@BA@H| VɻkvQ"yEn7w5OZ(Xhud6O/C 8O$-D#wge;;=:A7:p52l[OᄘYΣ~pG.fo O(E  Z EBOOcA@H}}♪uP 'l1CBN Y"fB8z0 -g{*J`;lg1/Ua9pzvаҦOQI@  !<-"d4!'$6hCվזڵk+++kkkfl6GGG+++j6ϟ_!$rA_1)@h!K %M.-}BF?Rh -yPv2`FR!_ۄA`9 D\~^!+m(!iQ2%HQ~ L{ڵ7onnnʲԩSkkk}}}';loo'$x!#i%+ʘ2j~03Tk0E k`Z wGm?,l `M a#03 oK~˷MNTo 4oHTר/H0Ɩܹ|MƘ޸qczzl^zV5>>}Çoll:t_y^/G BH \;sTn̏,6i^u߰@!N张0-c zӽKl/+Y%.lXپVoËَaZJ2ʨjia0'$Bʧ3!%9%rAVݻwGFFc?nB $,2Gaac)2aċl:I #9atPvE:coقHsNSB~ƣHZdƖ0Ж J˦pBb16ZΝ;ښNs{ΝqNy@+"NLL,-- ǎq]Bh4F#c;;d;zN͇n>h\t3v{Zl:\qqT}2`B/'u*lvTo4w3=6񧴝vĻ[7/Ҹb?#zg3^n6%~]GQna20h 7Ib?S=ʉ*qThDjBG%k3M7JgT0_j2*!dݾ}Gu܇Ǒ6BfBWcCB)^(Q-4Y@g.) 1 e=Y3lk7)f %6GzM*CT t?0ħ_Bf-^m'OF'$y09*D߿6P@ј-FcllL鶰h4pЩ BH F;vxB$-b ; @s:6(N$p\eLzsB)2*ј:-T5:!8BcZd1d|A)rc]>rkz}$<@Tf$333D QVk~~~iii{{l>}aCOOxh4X݂m܃0JНWL&P+IUsLQ[cMEO9|N_ɤ鄵/^f;Ji *8 dXLւC12H43{wNouvd!wޝ|I% BF P6#%je166 ؽ kS-=d<#0jW)>w3^!2p0rnOPLCp_0C8p#WD@K%‡ž_PNQca?{kLoK@!8Zm4C m0N&tB 3LWzaNd#H`B(Fɯ^ !˶/\h4F!@!= \|9_* 'Z쟅B?a b> m0,8\޴ Ng(09aRaLHBI3cpF(fz+Nepܜ]p}}ݸ@A{ @۷o>|A5*Bg1n獙b872\BAy 0r"rݹNڦra࿽0rSѠAqX{` EcYycuև*1֘Bx[ F':9Mo1{766FFFSFGGO>;~sZ֕+W5 D i xV^H2I#!s/9hj&&&677šWrH A@5:::== UI@-{W0>Y -N:wyC=S`ySl<:4Bf> /;vm,̋ل$iH^Q-TPTD$Rap(reĘ :R!AB[ϴ0?볷vPH ;JMiC <_YOUWe p1g!SY[GwGsmdLye"sf .w+ s]y>e#=:A6%=Sz}uJ th4'OT%-Tp$„w O<~#mdI/=i! uJ}Lى?u| :Ït!goš׊ @(#<)+24+s֯nW튤NYצ}cx)b4I䝅oFdgl.h!܂ uC|i!Ɣ|H9[)` -$r sZW:i,11aډh!\hI j:V#8"G}pT#h(qXvNM%X* GGqF Zՙr胷tx}Oz|;paaOMM):0.%! '&e |Ӑ{{ yg1AaEL31lN@[Ⱦc)][p^Q20 a]vMcu~p^[[%)VWW .ThAD_&9!K0U"zqJQ-sn<#@nA`BgB 7W,//OMMӗ\9—/_7q8;BF 0,,,LMMT*RF&0ۓOl>1NP,\R}+hL3D1HA2@YѰ]p.'5M@/#FBȹܜh@v BPqI᱕|CNsTY.(ԜPwƨ$Ó5< H2R*, ]B7B}# 'O !oWt.\ 6;;!НҤ`Z䄰h ,CTh֓hRaf"[KW*D[* Uzbtg/1)atBAF .,,`:!ͨF ' -F;:V #HSIQ E1#NNF R!_h&]l}ڐ\ ±1=Kف@ dD B_ЗID|V pb7^|#1 N%;-1-QŲv-@$P!\XX ܁@ dD @]V' vTRvω: mC aPi ` O@`i`PzICB#\<"b0@!#BH ŏD޴кιAPORpiNRo- r\L;NZpr3uK* H¨gob2J "`i!D_Z(`B ' SJl$jr ]Q+B)}GyM*1sBnؠ ~Vʰ[xggeYOe'ѣGc?Ovā<{?6cK۳1=y=LK͸-?t1f)֚}Ύ|C,7:v'x6'}7`<t >Q0nƣo0|/(t B|,~ڟ9sfeeevvvhhHnXZZ}ÇES^y啃:;w BA@ 8ʹP]Z{OGA_3Ɛu]m"<]!q`k0^0;.3A ℀Ka£8ItEx$N(^:|8}ւʰ+W={ҥKecccdddpp֭[1F!jP| IDAT)-z|Sp,L3EF&U d Iy"sH &Q&fa*4+Y"V6" [heÍFcff&˲U@ @ x@\em/ʝlgǩgRѠ NG⧢:18)t¥YY>!6' * Ѻ[;1BkZիOw D Bbh!v hAm'ܽ(Ndk#2 ug8n\)oT_8ͻWXOZ9Aj9244$ow D B83.XvT>W*tn}9idžII4Kx&u(:iab/jDռ2'@x*(.5mzi BXK 봐3C@qQBdnOfJ6?m>PɃ L( Ot&B@0N(7i2͌џ}}HOrE~30ȟ~@ !@HW~al`N J(ی mR!> [/Z,})^ŀhar===1Z`!$)/"LlqɥBo`RΈ`ziR}tx=I8!Сl.W -H@ !@H+66Ya/-Aa霣8+2-`Rl$E K:'dЗ2G JDzW0A ]l6ϟ?dRY\\_YY9t@U Bb\aYlxi-^Rؽ,<qKJ^999cDpqqŋD B@>788r+xP>hx%#B`}zz|֪w@z X !N{/h^M֙*Q: qtٜ<|ݻw_|Y!?!Х(5`@ T[[['OPK^V w'z*O7\r[o;zbv$`X(m%"gl ዕw+; mdݳ90dG()eY&'T:P ;A !@3 ~\YM T\^[O)|-LplMzn1R! G6"BgYgSN] BH  (=j $RUAA1@g CʉCŒ- UJn0T9QV0xMo@w]ZZZ__?-..Z#G @@ !TD!Q_#B#qFf"Bn9'Ph}@ < uRk$َ\Lo@@BB{Tgm,"k'ℬzR!>|Txyȕ TG@SM 6!$(TrTJ,0s "BTxIFg â@ @uN,?@ A@ P}BQTpP*d<@H -`g`"OoD0hC  DEOx-DJ2'dB^!m3z@[٠@Ez*haӧ +++j6ϟY: @@ t,6JL+4x.(eNR!2|&:I*<GLz;wLLLloo2VVVcn;3-ooo'$"Q5b/-TOD*+,Uxz+$9B޽;22 [>CˌC⋜>3?|c !D BW'x흝z{9q+hSB$'ԯB8=5}޸qczzzrrܹsS١!.ʵ|W J!@.yɤN;¥R!2} FqM9W0̙3+++o߶Uc?u+"NLL,-- UJ  A@ t#J\[ Z66b_&a+|TL#6(P֝7 {i}waѣ"|Tˆ>C@ !$݋ri!R* 1R^jQV@9;; B(Ia~bmm(nݺ% !m#$"QK*HB aN=HLN?RCK`ԗLx~fټ~:ŋ/!$"XP Y:Z+rVTvFhaB^2{"h$< Byl֜0}9tȉӍT8um~qǂk e=H(8x}ӧO_reqqі3fkk(P!$} kVtPG%G1bcaz^!r劼]pcccddDXH "BJZ@1zgYF>PE;ɧv$PݻwO:yY:??$2Ǝ?IcպrPBz!$L BJ PqL a'aH0WOo-"B1hZl^zUl,;\zE;J !@ x0b F0) BI0WNo@V4&9244$'$NB@DE^ybhM*k)0 H^>-1@ 0B*<^*dd P'zзwvk(@BD s2,"1r ~)`zO:x"*b-D A@ RI]WIB&wNNjBPcB_€@  D !=l0I G 4 $3g< .B@ #!4 ӓ0?S8aX$bE666N:OB+++j6ϟP _P\vmeeemm1l6h5h4XVY h1p_o/ -4"^/\v͛}}}7o\YY%NH 5)cNZ[[g0&''ϝ;7"H "-R! !V\@>ٳgepcccddСC/"g'8*|F ga` '''@yc iB(Rx9A:N$c˱;oaSٛWznh4*<4ue/Y YZɲ&IRק}id`T585^8a(666~jQ #Ɲ330n F[CsQ!?_SHaOp&Q=C c_UEQ!rs`pyy$c( Be{M[}s…?vPv>} !$Ir/o!;ܽ2?NJ.VU׷/UՋ(F)qz+0q 4D]p^E +C$IGA7l#OYeYvttBxp{ bWEOÇ?3z,|y_trrrppjZVyxK1Kwwwy}s_` pd^ejZ}lz xdT@A©U퐅5ցKKK!7xK![&a,-olEl^]]yBjZm{{{^竫4MkmXy{IBFcoo>./˲`wE4M|Rpxxvy/bۼoY^[[cmw/߾} !4ḯRχ}Fh$Iv_xi 0;eE2-^c[ώPՆGEeJe?KDmgYt:I,dž+++!<4{]0MBQE "5ᕗ\6VcG,vIp̱H`.!@Ԇs'32`BBx=ϑ.Hizrrrr8!Yhrgn&qss3g[,\a#h4$v FcofgoۻB*PՆG`0ȲlKǗ' q L c{OcB8fIiPTfs'1gv9'1pss3ǫl> qI|LiI` KZ ^+q}}}.4$Lĥ rRQm}O@!@\vvv4mggg!,B3' f :'''iZ?#2զmI`ݼ9zYVǶ~h4,;::̦HQ*R]Yxggg(A)DJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJDJD\wIENDB`codec2-1.0.1/misc/000077500000000000000000000000001412132000500135675ustar00rootroot00000000000000codec2-1.0.1/misc/16_8_short.c000066400000000000000000000020351412132000500156270ustar00rootroot00000000000000/* 16_8_short.c David Rowe October 2018 Utilty for resampling raw files from 16 to 8 kHz. */ #include #include #include #include #include "codec2_fdmdv.h" #define N8 160 /* procssing buffer size at 8 kHz */ #define N16 (N8*FDMDV_OS) int main(int argc, char *argv[]) { short in16k_short[FDMDV_OS_TAPS_16K + N16]; FILE *f16; short out8k_short[N16]; FILE *f8; int i; if (argc != 3) { fprintf(stderr, "usage: %s 16kHz.raw 8kHz.raw\n", argv[0]); exit(1); } f16 = fopen(argv[1], "rb"); assert(f16 != NULL); f8 = fopen(argv[2], "wb"); assert(f8 != NULL); /* clear filter memories */ for(i=0; i #include #include #include #include #include #include "lpc.h" #define N 80 int main(int argc, char *argv[]) { FILE *fin, *fout; short buf[N]; float Sn[N], Sn_de[N]; float de_mem = 0.0; int i; if (argc != 3) { printf("usage: de InputRawSpeechFile OutputRawSpeechFile\n"); printf("e.g de input.raw output.raw"); exit(1); } if (strcmp(argv[1], "-") == 0) fin = stdin; else if ( (fin = fopen(argv[1],"rb")) == NULL ) { fprintf(stderr, "Error opening input speech file: %s: %s.\n", argv[1], strerror(errno)); exit(1); } if (strcmp(argv[2], "-") == 0) fout = stdout; else if ( (fout = fopen(argv[2],"wb")) == NULL ) { fprintf(stderr, "Error opening output speech file: %s: %s.\n", argv[2], strerror(errno)); exit(1); } while(fread(buf, sizeof(short), N, fin) == N) { for(i=0; i #include #include #include #define NB_FEATURES 55 /* number of cols per row */ int main(int argc, char *argv[]) { FILE *fin, *fout; int st = 0; int en = 17; int stride = NB_FEATURES; float gain = 1.0; int frame_delay = 1; float pred = 0.0; int removemean = 0; float lower = -1E32; static struct option long_options[] = { {"startcol", required_argument, 0, 's'}, {"endcol", required_argument, 0, 'e'}, {"stride", required_argument, 0, 't'}, {"gain", required_argument, 0, 'g'}, {"pred", required_argument, 0, 'p'}, {"delay", required_argument, 0, 'd'}, {"removemean", no_argument, 0, 'm'}, {"lower", required_argument, 0, 'l'}, {0, 0, 0, 0} }; int opt_index = 0; int c; while ((c = getopt_long (argc, argv, "s:e:t:g:p:d:ml:", long_options, &opt_index)) != -1) { switch (c) { case 's': st = atoi(optarg); break; case 'e': en = atoi(optarg); break; case 't': stride = atoi(optarg); break; case 'g': gain = atof(optarg); break; case 'p': pred = atof(optarg); break; case 'd': frame_delay = atoi(optarg); break; case 'm': removemean = 1; break; case 'l': lower = atof(optarg); break; default: helpmsg: fprintf(stderr, "usage: %s -s startCol -e endCol [-t strideCol -g gain -p predCoeff -d framesDelay --removemean --lower] input.f32 output.f32\n", argv[0]); exit(1); } } if ( (argc - optind) < 2) { fprintf(stderr, "Too few arguments\n"); goto helpmsg; } fin = fopen(argv[optind],"rb"); assert(fin != NULL); fout = fopen(argv[optind+1],"wb"); assert(fout != NULL); printf("extracting from %d to %d inclusive (stride %d) ... gain = %f pred = %f frame_delay = %d\n", st, en, stride, gain, pred, frame_delay); float features[stride], features_prev[frame_delay][stride], delta[stride]; int i,f,wr=0; for (f=0; f lower) { fwrite(&delta[st], sizeof(float), en-st+1, fout); wr++; } for (f=frame_delay-1; f>0; f--) for(i=0; i quantized The first column is the log2 of the pitch compared to the lowest freq, so log2(wo/pi*4000/50) where wo is the frequency your patch outputs. The second column is the energy in dB, so 10*log10(1e-4+E) */ /* Copyright (C) 2012 Jean-Marc Valin All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 2.1, as published by the Free Software Foundation. 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 Lesser General Public License along with this program; if not, see . */ #include #include #include #include #define MIN(a,b) ((a)<(b)?(a):(b)) //#define COEF 0.0 static float COEF[2] = {0.8, 0.9}; //static float COEF[2] = {0.0, 0.}; #define MAX_ENTRIES 16384 void compute_weights2(const float *x, const float *xp, float *w, int ndim) { w[0] = 30; w[1] = 1; if (x[1]<0) { w[0] *= .6; w[1] *= .3; } if (x[1]<-10) { w[0] *= .3; w[1] *= .3; } /* Higher weight if pitch is stable */ if (fabs(x[0]-xp[0])<.2) { w[0] *= 2; w[1] *= 1.5; } else if (fabs(x[0]-xp[0])>.5) /* Lower if not stable */ { w[0] *= .5; } /* Lower weight for low energy */ if (x[1] < xp[1]-10) { w[1] *= .5; } if (x[1] < xp[1]-20) { w[1] *= .5; } //w[0] = 30; //w[1] = 1; /* Square the weights because it's applied on the squared error */ w[0] *= w[0]; w[1] *= w[1]; } int find_nearest_weighted(const float *codebook, int nb_entries, float *x, const float *w, int ndim) { int i, j; float min_dist = 1e15; int nearest = 0; for (i=0;i. */ #define P 12 /* LP order */ #define LSP_DELTA1 0.01 /* grid spacing for LSP root searches */ #define NW 279 /* frame size in samples */ #define N 80 /* frame to frame shift */ #define THRESH 40.0 /* threshold energy/sample for frame inclusion */ #define PI 3.141592654 /* mathematical constant */ #include #include #include #include #include "lpc.h" /* LPC analysis functions */ #include "lsp.h" /* LSP encode/decode functions */ int switch_present(sw,argc,argv) char sw[]; /* switch in string form */ int argc; /* number of command line arguments */ char *argv[]; /* array of command line arguments in string form */ { int i; /* loop variable */ for(i=1; i THRESH) { af++; printf("Active Frame: %ld unstables: %d\n",af, unstables); find_aks(Sn, ak, NW, P, &Eres); roots = lpc_to_lsp(ak, P , lsp, 5, LSP_DELTA1); if (roots == P) { if (lspd) { if (log) { fprintf(flsp,"%f ",log10(lsp[0])); for(i=1; i #include #include #include #include #include #define TWO_PI 6.283185307 #define FS 8000.0 int main(int argc, char *argv[]) { FILE *f; int i,n; float freq, length; short *buf; float amp = 1E4; if (argc < 4) { printf("usage: %s outputFile frequencyHz lengthSecs [PeakAmp]\n", argv[0]); exit(1); } if (strcmp(argv[1], "-") == 0) { f = stdout; } else if ( (f = fopen(argv[1],"wb")) == NULL ) { fprintf(stderr, "Error opening output file: %s: %s.\n", argv[3], strerror(errno)); exit(1); } freq = atof(argv[2]); length = atof(argv[3]); if (argc == 5) amp = atof(argv[4]); n = length*FS; buf = (short*)malloc(sizeof(short)*n); assert(buf != NULL); for(i=0; i #include #include #include #include #include #include "lpc.h" #define N 80 int main(int argc, char*argv[]) { FILE *fin, *fout; short buf[N]; float Sn[N], Sn_pre[N]; float pre_mem = 0.0; int i; if (argc != 3) { printf("usage: pre InputRawSpeechFile OutputRawSpeechFile\n"); printf("e.g pre input.raw output.raw\n"); exit(1); } if (strcmp(argv[1], "-") == 0) fin = stdin; else if ( (fin = fopen(argv[1],"rb")) == NULL ) { fprintf(stderr, "Error opening input speech file: %s: %s.\n", argv[1], strerror(errno)); exit(1); } if (strcmp(argv[2], "-") == 0) fout = stdout; else if ( (fout = fopen(argv[2],"wb")) == NULL ) { fprintf(stderr, "Error opening output speech file: %s: %s.\n", argv[2], strerror(errno)); exit(1); } while(fread(buf, sizeof(short), N, fin) == N) { for(i=0; i #include #include #include int main(int argc, char *argv[]) { FILE *fraw, *fheader; int i, samples, ret; short sam; if (argc != 5) { printf("usage: %s inputRawFile outputHeaderFile arrayName samples\n", argv[0]); exit(1); } fraw = fopen(argv[1] ,"rb"); assert(fraw != NULL); fheader = fopen(argv[2],"wt"); assert(fheader != NULL); samples = atoi(argv[4]); fprintf(fheader, "short %s[] = {\n", argv[3]); for(i=0; i #include #include #include #include #include #define N 80 #define FS 8000 int main(int argc, char *argv[]) { FILE *fin, *fout; short buf[N]; SpeexPreprocessState *st; if (argc < 2) { printf("usage: %s InFile OutFile\n", argv[0]); exit(0); } if (strcmp(argv[1], "-") == 0) fin = stdin; else if ( (fin = fopen(argv[1],"rb")) == NULL ) { fprintf(stderr, "Error opening %s\n", argv[1]); exit(1); } if (strcmp(argv[2], "-") == 0) fout = stdout; else if ((fout = fopen(argv[2],"wb")) == NULL) { fprintf(stderr, "Error opening %s\n", argv[2]); exit(1); } st = speex_preprocess_state_init(N, FS); while(fread(buf, sizeof(short), N, fin) == N) { speex_preprocess_run(st, buf); fwrite(buf, sizeof(short), N, fout); if (fout == stdout) fflush(stdout); } speex_preprocess_state_destroy(st); fclose(fin); fclose(fout); return 0; } codec2-1.0.1/misc/t48_8.c000066400000000000000000000044071412132000500146060ustar00rootroot00000000000000/* t48_8.c David Rowe May 10 2012 Unit test for 48 to 8 kHz sample rate conversion functions. I evaluated output by plotting using Octave and looking for jaggies: pl("../unittest/out48.raw",1,3000) pl("../unittest/out8.raw",1,3000) Listening to it also shows up anything nasty: $ play -s -2 -r 48000 out48.raw $ play -s -2 -r 8000 out8.raw */ #include #include #include #include #include "codec2_fdmdv.h" #define N8 160 /* procssing buffer size at 8 kHz */ #define N48 (N8*FDMDV_OS) #define MEM8 (FDMDV_OS_TAPS/FDMDV_OS) #define FRAMES 50 #define TWO_PI 6.283185307 #define FS 8000 #define SINE int main() { float in8k[MEM8 + N8]; float out48k[N48]; short out48k_short[N48]; FILE *f48; float in48k[FDMDV_OS_TAPS + N48]; float out8k[N48]; short out8k_short[N8]; FILE *f8; int i,f,t,t1; float freq = 800.0; f48 = fopen("out48.raw", "wb"); assert(f48 != NULL); f8 = fopen("out8.raw", "wb"); assert(f8 != NULL); /* clear filter memories */ for(i=0; i. */ #include #include #include #include #include #include "defines.h" #include "comp.h" #include "codec2.h" #include "quantise.h" #include "interp.h" /* CODEC2 struct copies from codec2.c to help with testing */ struct CODEC2 { int mode; float w[M]; /* time domain hamming window */ COMP W[FFT_ENC]; /* DFT of w[] */ float Pn[2*N]; /* trapezoidal synthesis window */ float Sn[M]; /* input speech */ float hpf_states[2]; /* high pass filter states */ void *nlp; /* pitch predictor states */ float Sn_[2*N]; /* synthesised output speech */ float ex_phase; /* excitation model phase track */ float bg_est; /* background noise estimate for post filter */ float prev_Wo; /* previous frame's pitch estimate */ MODEL prev_model; /* previous frame's model parameters */ float prev_lsps_[LPC_ORD]; /* previous frame's LSPs */ float prev_energy; /* previous frame's LPC energy */ }; void analyse_one_frame(struct CODEC2 *c2, MODEL *model, short speech[]); void synthesise_one_frame(struct CODEC2 *c2, short speech[], MODEL *model, float ak[]); int test1() { FILE *fin, *fout; short buf[N]; struct CODEC2 *c2; MODEL model; float ak[LPC_ORD+1]; float lsps[LPC_ORD]; c2 = codec2_create(CODEC2_MODE_2400); fin = fopen("../raw/hts1a.raw", "rb"); assert(fin != NULL); fout = fopen("hts1a_test.raw", "wb"); assert(fout != NULL); while(fread(buf, sizeof(short), N, fin) == N) { analyse_one_frame(c2, &model, buf); speech_to_uq_lsps(lsps, ak, c2->Sn, c2->w, LPC_ORD); synthesise_one_frame(c2, buf, &model, ak); fwrite(buf, sizeof(short), N, fout); } codec2_destroy(c2); fclose(fin); fclose(fout); return 0; } int test2() { FILE *fin, *fout; short buf[2*N]; struct CODEC2 *c2; MODEL model, model_interp; float ak[LPC_ORD+1]; int voiced1, voiced2; int lsp_indexes[LPC_ORD]; int energy_index; int Wo_index; char *bits; int nbit; int i; float lsps[LPC_ORD]; float e; c2 = codec2_create(CODEC2_MODE_2400); bits = (char*)malloc(codec2_bits_per_frame(c2)); assert(bits != NULL); fin = fopen("../raw/hts1a.raw", "rb"); assert(fin != NULL); fout = fopen("hts1a_test.raw", "wb"); assert(fout != NULL); while(fread(buf, sizeof(short), 2*N, fin) == 2*N) { /* first 10ms analysis frame - we just want voicing */ analyse_one_frame(c2, &model, buf); voiced1 = model.voiced; /* second 10ms analysis frame */ analyse_one_frame(c2, &model, &buf[N]); voiced2 = model.voiced; Wo_index = encode_Wo(model.Wo); e = speech_to_uq_lsps(lsps, ak, c2->Sn, c2->w, LPC_ORD); encode_lsps_scalar(lsp_indexes, lsps, LPC_ORD); energy_index = encode_energy(e); nbit = 0; pack((unsigned char*)bits, (unsigned *)&nbit, Wo_index, WO_BITS); for(i=0; iprev_model, &model); synthesise_one_frame(c2, buf, &model_interp, ak); synthesise_one_frame(c2, &buf[N], &model, ak); memcpy(&c2->prev_model, &model, sizeof(MODEL)); fwrite(buf, sizeof(short), 2*N, fout); } free(bits); codec2_destroy(c2); fclose(fin); fclose(fout); return 0; } int test3() { FILE *fin, *fout, *fbits; short buf1[2*N]; short buf2[2*N]; char *bits; struct CODEC2 *c2; c2 = codec2_create(CODEC2_MODE_2400); int numBits = codec2_bits_per_frame(c2); int numBytes = (numBits+7)>>3; bits = (char*)malloc(numBytes); fin = fopen("../raw/hts1a.raw", "rb"); assert(fin != NULL); fout = fopen("hts1a_test.raw", "wb"); assert(fout != NULL); fbits = fopen("hts1a_test3.bit", "wb"); assert(fout != NULL); while(fread(buf1, sizeof(short), 2*N, fin) == 2*N) { codec2_encode(c2, (void*)bits, buf1); fwrite(bits, sizeof(char), numBytes, fbits); codec2_decode(c2, buf2, (void*)bits); fwrite(buf2, sizeof(short), numBytes, fout); } free(bits); codec2_destroy(c2); fclose(fin); fclose(fout); fclose(fbits); return 0; } int main() { test3(); return 0; } codec2-1.0.1/misc/tdec.c000066400000000000000000000072231412132000500146560ustar00rootroot00000000000000/* tdec.c David Rowe Jan 2017 Trivial non filtered decimator for high ration sample rate conversion. build: gcc tdec.c -o tdec -Wall -O2 */ #include #include #include #include #include #include #define SIGNED_16BIT 0 #define SIGNED_8BIT 1 #define UNSIGNED_8BIT 2 void freq_shift_complex_buf(short buf[], int n, int lo_i[], int lo_q[]); void display_help(void) { fprintf(stderr, "\nusage: tdec inputRawFile OutputRawFile DecimationRatio [-c]\n"); fprintf(stderr, "\nUse - for stdin/stdout\n\n"); fprintf(stderr, "-c complex signed 16 bit input and output\n"); fprintf(stderr, "-d complex signed 8 bit input (e.g. HackRF), complex signed 16 bit output\n"); fprintf(stderr, "-e complex unsigned 8 bit input (e.g. RTL-SDR), complex signed 16 bit output\n"); fprintf(stderr, "-f -Fs/4 freq shift\n\n"); } int main(int argc, char *argv[]) { FILE *fin, *fout; short dec; int lo_i[3], lo_q[3]; if (argc < 3) { display_help(); exit(1); } if (strcmp(argv[1], "-") == 0) fin = stdin; else fin = fopen(argv[1], "rb"); assert(fin != NULL); if (strcmp(argv[2], "-") == 0) fout = stdout; else fout = fopen(argv[2], "wb"); assert(fout != NULL); dec = atoi(argv[3]); int channels = 1; int freq_shift = 0; lo_i[0] = -1; lo_i[1] = 0; lo_q[0] = 0; lo_q[1] = -1; int opt; int format = SIGNED_16BIT; while ((opt = getopt(argc, argv, "cdef")) != -1) { switch (opt) { case 'c': channels = 2; break; case 'd': channels = 2; format = SIGNED_8BIT; break; case 'e': channels = 2; format = UNSIGNED_8BIT; break; case 'f': freq_shift = 1; break; default: display_help(); exit(1); } } if (format == SIGNED_16BIT) { short buf[dec*channels]; while(fread(buf, sizeof(short)*channels, dec, fin) == dec) { if (freq_shift) freq_shift_complex_buf(buf, dec*channels, lo_i, lo_q); fwrite(buf, sizeof(short), channels, fout); } } else { uint8_t inbuf[dec*channels]; short outbuf[dec*channels]; short sam, i; while(fread(inbuf, sizeof(uint8_t)*channels, dec, fin) == dec) { for (i=0; i #include #include #include #include #define FS 8000 int main(int argc, char *argv[]) { short buf[FS] = {0}; float f0 = 60.0; float n0 = 0.0; int Nsecs = 1; int randf0 = 0; int filter = 0; int rande = 0; int o = 0; int opt_idx = 0; while( o != -1 ) { static struct option long_opts[] = { {"help", no_argument, 0, 'h'}, {"n0", required_argument, 0, 'n'}, {"f0", required_argument, 0, 'f'}, {"secs", required_argument, 0, 's'}, {"randf0", no_argument, 0, 'r'}, {"rande", required_argument, 0, 'e'}, {"filter", no_argument, 0, 'i'}, {0, 0, 0, 0} }; o = getopt_long(argc,argv,"hn:f:s:r",long_opts,&opt_idx); switch(o) { case 'n': n0 = atof(optarg); break; case 'f': f0 = atof(optarg); break; case 's': Nsecs = atoi(optarg); break; case 'r': randf0 = 1; break; case 'i': filter = 1; break; case 'e': rande = atoi(optarg); break; case '?': case 'h': fprintf(stderr, "usage: %s\n" "[--f0 f0Hz] fixed F0\n" "[--n0 samples] time offset\n" "[--secs Nsecs] number of seconds to generate\n" "[--randf0] choose a random F0 every second\n" "[--rande Ndiscrete] choose a random frame energy every second, Ndiscrete values\n" "\n", argv[0]); exit(1); break; } } int t = 0; float A = 100.0; /* optionally filter with 2nd order system */ float alpha = 0.25*M_PI, gamma=0.99; float a[2] = {-2.0*gamma*cos(alpha), gamma*gamma}; float mem[2] = {0}; for (int j=0; j. */ #include #include #include #include #include #include #include #include #include #include "defines.h" #include "sine.h" #include "interp.h" void make_amp(MODEL *model, float f0, float cdB, float mdBHz) { int i; float mdBrad = mdBHz*FS/TWO_PI; model->Wo = f0*TWO_PI/FS; model->L = PI/model->Wo; for(i=0; i<=model->L; i++) model->A[i] = pow(10.0,(cdB + (float)i*model->Wo*mdBrad)/20.0); model->voiced = 1; } void write_amp(char file[], MODEL *model) { FILE *f; int i; f = fopen(file,"wt"); for(i=1; i<=model->L; i++) fprintf(f, "%f\t%f\n", model->Wo*i, model->A[i]); fclose(f); } const char *get_next_float(const char *s, float *num) { const char *p = s; char tmp[MAX_STR]; while(*p && !isspace(*p)) p++; assert((p-s) < (int)(sizeof(tmp)-1)); memcpy(tmp, s, p-s); tmp[p-s] = 0; *num = atof(tmp); return p+1; } const char *get_next_int(const char *s, int *num) { const char *p = s; char tmp[MAX_STR]; while(*p && !isspace(*p)) p++; assert((p-s) < (int)(sizeof(tmp)-1)); memcpy(tmp, s, p-s); tmp[p-s] = 0; *num = atoi(tmp); return p+1; } void load_amp(MODEL *model, const char * file, int frame) { FILE *f; int i; char s[1024]; const char *ps; f = fopen(file,"rt"); assert(f); for(i=0; iWo); ps = get_next_int(ps, &model->L); for(i=1; i<=model->L; i++) ps = get_next_float(ps, &model->A[i]); fclose(f); } void load_or_make_amp(MODEL *model, const char * filename, int frame, float f0, float cdB, float mdBHz) { struct stat buf; int rc = stat(filename, &buf); if (rc || !S_ISREG(buf.st_mode) || ((buf.st_mode & S_IRUSR) != S_IRUSR)) { make_amp(model, f0, cdB, mdBHz); } else { load_amp(model, filename, frame); } } int main() { MODEL prev, next, interp; load_or_make_amp(&prev, "../src/hts1a_model.txt", 32, 50.0, 60.0, 6E-3); load_or_make_amp(&next, "../src/hts1a_model.txt", 34, 50.0, 40.0, 6E-3); interp.voiced = 1; interpolate(&interp, &prev, &next); write_amp("tinterp_prev.txt", &prev); write_amp("tinterp_interp.txt", &interp); write_amp("tinterp_next.txt", &next); return 0; } codec2-1.0.1/misc/tlininterp.c000066400000000000000000000074601412132000500161320ustar00rootroot00000000000000/* tlininterp.c David Rowe Jan 2017 Fast linear interpolator for high oversampling rates. Upsample with a decent filter first such that the signal is "low pass" wrt to the input sample rate. build: gcc tlininterp.c -o tlininterp -Wall -O2 */ #include #include #include #include #include #include #define NBUF 1000 #define SIGNED_16BIT 0 #define SIGNED_8BIT 1 void display_help(void) { fprintf(stderr, "\nusage: tlininterp inputRawFile OutputRawFile OverSampleRatio [-c]\n"); fprintf(stderr, "\nUse - for stdin/stdout\n\n"); fprintf(stderr, "-c complex signed 16 bit input and output\n"); fprintf(stderr, "-d complex signed 16 bit input, complex signed 8 bit output\n"); fprintf(stderr, "-f +Fs/4 freq shift\n\n"); } int main(int argc, char *argv[]) { FILE *fin, *fout; short left[2], right[2], out[2*NBUF], i; float oversample, t; int8_t out_s8[2*NBUF]; int lo_i[3], lo_q[3]; if (argc < 3) { display_help(); exit(1); } if (strcmp(argv[1], "-") == 0) fin = stdin; else fin = fopen(argv[1], "rb"); assert(fin != NULL); if (strcmp(argv[2], "-") == 0) fout = stdout; else fout = fopen(argv[2], "wb"); assert(fout != NULL); oversample = atof(argv[3]); if (oversample <= 1) { display_help(); exit(1); } int channels = 1; int freq_shift = 0; lo_i[0] = -1; lo_i[1] = 0; lo_q[0] = 0; lo_q[1] = -1; int format = SIGNED_16BIT; int opt; while ((opt = getopt(argc, argv, "cdf")) != -1) { switch (opt) { case 'c': channels = 2; break; case 'd': channels = 2; format = SIGNED_8BIT; break; case 'f': freq_shift = 1; break; default: display_help(); exit(1); } } for (i=0; i> 8; } fwrite(&out_s8, sizeof(int8_t)*channels, NBUF, fout); } j = 0; } t += 1.0/oversample; } t -= 1.0; for (i=0; i> 8; } fwrite(&out_s8, sizeof(int8_t)*channels, j, fout); } fclose(fout); fclose(fin); return 0; } codec2-1.0.1/misc/tnlp.c000066400000000000000000000102231412132000500147060ustar00rootroot00000000000000/*---------------------------------------------------------------------------*\ FILE........: tnlp.c AUTHOR......: David Rowe DATE CREATED: 23/3/93 Test program for non linear pitch estimation functions. \*---------------------------------------------------------------------------*/ /* Copyright (C) 2009 David Rowe All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 2.1, as published by the Free Software Foundation. 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 Lesser General Public License along with this program; if not, see . */ #include #include #include #include #include "defines.h" #include "dump.h" #include "sine.h" #include "nlp.h" #include "kiss_fft.h" int frames; /*---------------------------------------------------------------------------*\ switch_present() Searches the command line arguments for a "switch". If the switch is found, returns the command line argument where it ws found, else returns NULL. \*---------------------------------------------------------------------------*/ int switch_present(sw,argc,argv) char sw[]; /* switch in string form */ int argc; /* number of command line arguments */ char *argv[]; /* array of command line arguments in string form */ { int i; /* loop variable */ for(i=1; i #include #include #include #include "lpc.h" #define N 10 #define F 10 int main() { FILE *fprede; float Sn[N], Sn_pre[N], Sn_de[N]; float pre_mem = 0.0, de_mem = 0.0; int i, f; fprede = fopen("prede.txt", "wt"); assert(fprede != NULL); for(i=0; i. */ #include #include #include #include #include #include "defines.h" #include "dump.h" #include "quantise.h" int test_Wo_quant(); int test_lsp_quant(); int test_lsp(int lsp_number, int levels, float max_error_hz); int test_energy_quant(int levels, float max_error_dB); int main() { quantise_init(); test_Wo_quant(); test_lsp_quant(); test_energy_quant(E_LEVELS, 0.5*(E_MAX_DB - E_MIN_DB)/E_LEVELS); return 0; } int test_lsp_quant() { test_lsp( 1, 16, 12.5); test_lsp( 2, 16, 12.5); test_lsp( 3, 16, 25); test_lsp( 4, 16, 50); test_lsp( 5, 16, 50); test_lsp( 6, 16, 50); test_lsp( 7, 16, 50); test_lsp( 8, 8, 50); test_lsp( 9, 8, 50); test_lsp(10, 4, 100); return 0; } int test_energy_quant(int levels, float max_error_dB) { FILE *fe; float e,e_dec, error, low_e, high_e; int index, index_in, index_out, i; /* check 1:1 match between input and output levels */ for(i=0; i max_error_dB) { printf("error: %f %f\n", error, max_error_dB); exit(0); } } fclose(fe); return 0; } int test_lsp(int lsp_number, int levels, float max_error_hz) { float lsp[LPC_ORD]; int indexes_in[LPC_ORD]; int indexes_out[LPC_ORD]; int indexes[LPC_ORD]; int i; float lowf, highf, f, error; char s[MAX_STR]; FILE *flsp; float max_error_rads; lsp_number--; max_error_rads = max_error_hz*TWO_PI/FS; for(i=0; i max_error_rads) { printf("%d error: %f %f\n", lsp_number+1, error, max_error_rads); exit(0); } } fclose(flsp); printf("OK\n"); return 0; } int test_Wo_quant() { int c; FILE *f; float Wo,Wo_dec, error, step_size; int index, index_in, index_out; /* output Wo quant curve for plotting */ f = fopen("quant_pitch.txt","wt"); for(Wo=0.9*(TWO_PI/P_MAX); Wo<=1.1*(TWO_PI/P_MIN); Wo += 0.001) { index = encode_Wo(Wo, WO_BITS); fprintf(f, "%f %d\n", Wo, index); } fclose(f); /* check for all Wo codes we get 1:1 match between encoder and decoder Wo levels */ for(c=0; c (step_size/2.0)) { printf("error: %f step_size/2: %f\n", error, step_size/2.0); exit(0); } fprintf(f,"%f\n",error); } printf("OK\n"); fclose(f); return 0; } codec2-1.0.1/misc/tsrc.c000066400000000000000000000054161412132000500147140ustar00rootroot00000000000000/* tsrc.c David Rowe Sat Nov 3 2012 Unit test for libresample code. build: gcc tsrc.c -o tsrc -lm -lsamplerate */ #include #include #include #include #include #include #include #define N 10000 /* processing buffer size */ void display_help(void) { fprintf(stderr, "\nusage: tsrc inputRawFile OutputRawFile OutSampleRatio [-l] [-c]\n"); fprintf(stderr, "\nUse - for stdin/stdout\n\n"); fprintf(stderr, "-l fast linear resampler\n"); fprintf(stderr, "-c complex (two channel) resampling\n\n"); } int main(int argc, char *argv[]) { FILE *fin, *fout; short in_short[N], out_short[N]; float in[N], out[N]; SRC_STATE *src; SRC_DATA data; int error, nin, nremaining, i; if (argc < 3) { display_help(); exit(1); } if (strcmp(argv[1], "-") == 0) fin = stdin; else fin = fopen(argv[1], "rb"); assert(fin != NULL); if (strcmp(argv[2], "-") == 0) fout = stdout; else fout = fopen(argv[2], "wb"); assert(fout != NULL); data.data_in = in; data.data_out = out; data.end_of_input = 0; data.src_ratio = atof(argv[3]); int channels = 1; int resampler = SRC_SINC_FASTEST; int opt; while ((opt = getopt(argc, argv, "lc")) != -1) { switch (opt) { case 'l': resampler = SRC_LINEAR; break; case 'c': channels = 2; break; default: display_help(); exit(1); } } data.input_frames = N/channels; data.output_frames = N/channels; src = src_new(resampler, channels, &error); assert(src != NULL); int total_in = 0; int total_out = 0; nin = data.input_frames; nremaining = 0; while(fread(&in_short[nremaining*channels], sizeof(short)*channels, nin, fin) == nin) { src_short_to_float_array(in_short, in, N); error = src_process(src, &data); assert(error == 0); src_float_to_short_array(out, out_short, data.output_frames_gen*channels); fwrite(out_short, sizeof(short), data.output_frames_gen*channels, fout); if (fout == stdout) fflush(stdout); nremaining = data.input_frames - data.input_frames_used; nin = data.input_frames_used; //fprintf(stderr, "input frames: %d output_frames %d nremaining: %d\n", // (int)data.input_frames_used, (int)data.output_frames_gen, nremaining); for(i=0; i #include #include #include #include #include #include #include "mbest.h" #define MAX_DIM 20 #define MAX_ENTRIES 4096 // equation (33) of [1], total cost of all hamming distance 1 vectors of vq index k float cost_of_distance_one(float *vq, int n, int dim, float *prob, int k, int st, int en, int verbose) { int log2N = log2(n); float c = 0.0; for (int b=0; b best_delta) { best_delta = fabs(delta); best_j = j; } } // unswitch swap(vq, dim, prob, A[i], j); } } //next j // printf("best_delta: %f best_j: %d\n", best_delta, best_j); if (best_delta == 0.0) { // Hmm, no improvement, lets try the next vector in the sorted cost list if (i == n-1) finished = 1; else i++; } else { // OK keep the switch that minimised the distortion swap(vq, dim, prob, A[i], best_j); switches++; // save results FILE *fq=fopen(argv[dx+1], "wb"); if (fq == NULL) { fprintf(stderr, "Couldn't open: %s\n", argv[dx+1]); exit(1); } int nwr = fwrite(vq, sizeof(float), n*dim, fq); assert(nwr == n*dim); fclose(fq); // set up for next iteration iteration++; float distortion = distortion_of_current_mapping(vq, n, dim, prob, st, en); fprintf(stderr, "it: %3d dist: %f %3.2f i: %3d sw: %3d\n", iteration, distortion, distortion/distortion0, i, switches); if (iteration >= max_iter) finished = 1; i = 0; } } return 0; } codec2-1.0.1/misc/vq_mbest.c000066400000000000000000000222431412132000500155560ustar00rootroot00000000000000/* vq_mbest.c David Rowe Dec 2019 Utility to perform a mbest VQ search on vectors from stdin, sending quantised vectors to stdout. */ #include #include #include #include #include #include #include #include "mbest.h" #define MAX_K 20 #define MAX_ENTRIES 4096 #define MAX_STAGES 5 void quant_pred_mbest(float vec_out[], int indexes[], float vec_in[], int num_stages, float vq[], int m[], int k, int mbest_survivors, int st, int en); int verbose = 0; int main(int argc, char *argv[]) { float vq[MAX_STAGES*MAX_K*MAX_ENTRIES]; int m[MAX_STAGES]; int k=0, mbest_survivors=1, num_stages=0; char fnames[256], fn[256], *comma, *p; FILE *fq; float lower = -1E32; int st = -1; int en = -1; int num = INT_MAX; int output_vec_usage = 0; int o = 0; int opt_idx = 0; while (o != -1) { static struct option long_opts[] = { {"k", required_argument, 0, 'k'}, {"quant", required_argument, 0, 'q'}, {"mbest", required_argument, 0, 'm'}, {"lower", required_argument, 0, 'l'}, {"verbose", required_argument, 0, 'v'}, {"st", required_argument, 0, 't'}, {"en", required_argument, 0, 'e'}, {"num", required_argument, 0, 'n'}, {"vec_usage", no_argument, 0, 'u'}, {0, 0, 0, 0} }; o = getopt_long(argc,argv,"hk:q:m:vt:e:n:u",long_opts,&opt_idx); switch (o) { case 'k': k = atoi(optarg); assert(k <= MAX_K); break; case 'q': /* load up list of comma delimited file names */ strcpy(fnames, optarg); p = fnames; num_stages = 0; do { assert(num_stages < MAX_STAGES); strcpy(fn, p); comma = strchr(fn, ','); if (comma) { *comma = 0; p = comma+1; } /* load quantiser file */ fprintf(stderr, "stage: %d loading %s ... ", num_stages, fn); fq=fopen(fn, "rb"); if (fq == NULL) { fprintf(stderr, "Couldn't open: %s\n", fn); exit(1); } /* count how many entries m of dimension k are in this VQ file */ m[num_stages] = 0; float dummy[k]; while (fread(dummy, sizeof(float), k, fq) == (size_t)k) m[num_stages]++; assert(m[num_stages] <= MAX_ENTRIES); fprintf(stderr, "%d entries of vectors width %d\n", m[num_stages], k); /* now load VQ into memory */ rewind(fq); int rd = fread(&vq[num_stages*k*MAX_ENTRIES], sizeof(float), m[num_stages]*k, fq); assert(rd == m[num_stages]*k); num_stages++; fclose(fq); } while(comma); break; case 'm': mbest_survivors = atoi(optarg); fprintf(stderr, "mbest_survivors = %d\n", mbest_survivors); break; case 'n': num = atoi(optarg); break; case 'l': lower = atof(optarg); break; case 't': st = atoi(optarg); break; case 'e': en = atoi(optarg); break; case 'u': output_vec_usage = 1; break; case 'v': verbose = 1; break; help: fprintf(stderr, "\n"); fprintf(stderr, "usage: %s -k dimension -q vq1.f32,vq2.f32,.... [Options]\n", argv[0]); fprintf(stderr, "\n"); fprintf(stderr, "input vectors on stdin, output quantised vectors on stdout\n"); fprintf(stderr, "\n"); fprintf(stderr, "--lower lowermeanLimit Only count vectors with average above this level in distortion calculations\n"); fprintf(stderr, "--mbest N number of survivors at each stage, set to 0 for standard VQ search\n"); fprintf(stderr, "--st Kst start vector element for error calculation (default 0)\n"); fprintf(stderr, "--en Ken end vector element for error calculation (default K-1)\n"); fprintf(stderr, "--num numToProcess number of vectors to quantise (default to EOF)\n"); fprintf(stderr, "--vec_usage Output a record of how many times each vector is used\n"); fprintf(stderr, "-v Verbose\n"); exit(1); } } if ((num_stages == 0) || (k == 0)) goto help; /* default to measuring error on entire vector */ if (st == -1) st = 0; if (en == -1) en = k-1; int indexes[num_stages], nvecs = 0; int vec_usage[m[0]]; for(int i=0; ilist[j].index[s1]; } /* target is residual err[] vector given path to this candidate */ for(i=0; ilist[0].index[num_stages-1-s]; } /* OK put it all back together using best survivor */ for(i=0; i. */ /*-----------------------------------------------------------------------*\ INCLUDES \*-----------------------------------------------------------------------*/ #include #include #include #include #include #include #include #include /*-----------------------------------------------------------------------*\ DEFINES \*-----------------------------------------------------------------------*/ #define DELTAQ 0.005 /* quiting distortion */ #define MAX_STR 80 /* maximum string length */ /*-----------------------------------------------------------------------*\ FUNCTION PROTOTYPES \*-----------------------------------------------------------------------*/ void zero(float v[], int k); void acc(float v1[], float v2[], int k); void norm(float v[], int k, long n); long quantise(float cb[], float vec[], int k, int m, int st, int en, float *beste, float *se); /*-----------------------------------------------------------------------* \ MAIN \*-----------------------------------------------------------------------*/ int main(int argc, char *argv[]) { long k,m; /* dimension and codebook size */ float *vec; /* current vector */ float *cb; /* vector codebook */ float *cent; /* centroids for each codebook entry */ long *n; /* number of vectors in this interval */ long J; /* number of vectors in training set */ long i,j; long ind; /* index of current vector */ float e; /* squared error for current vector */ float se; /* squared error for this iteration */ float var,var_1; /* current and previous iterations distortion */ float delta; /* improvement in distortion */ long noutliers[3];/* number of vectors quantisers with > 3*sd */ FILE *ftrain; /* file containing training set */ FILE *fvq; /* file containing vector quantiser */ int ret; float deltaq_stop = DELTAQ; FILE *fres = NULL; int st = -1; int en = -1; int init_rand = 0; int o = 0; int opt_idx = 0; while( o != -1 ) { static struct option long_opts[] = { {"help", no_argument, 0, 'h'}, {"residual", required_argument, 0, 'r'}, {"stop", required_argument, 0, 's'}, {"st", required_argument, 0, 't'}, {"en", required_argument, 0, 'e'}, {"rand", no_argument, 0, 'i'}, {0, 0, 0, 0} }; o = getopt_long(argc,argv,"hr:s:t:e:",long_opts,&opt_idx); switch(o) { case 'r': fres = fopen(optarg,"wb"); assert(fres != NULL); //fprintf(stderr, "writing res to : %s \n", optarg); break; case 's': deltaq_stop = atof(optarg); //fprintf(stderr, "deltaq_stop :%f\n", deltaq_stop); break; case 't': st = atoi(optarg); break; case 'e': en = atoi(optarg); break; case 'i': init_rand = 1; break; case 'h': case '?': goto helpmsg; break; } } int dx = optind; if ((argc - dx) < 4) { fprintf(stderr, "Too few arguments\n"); helpmsg: fprintf(stderr, "usage: %s [Options] TrainFile.f32 K(dimension) M(codebook size) VQFile.f32\n", argv[0]); fprintf(stderr, " -r --residual VQResidualErrorFile.f32\n"); fprintf(stderr, " -s --stop StopDelta\n"); fprintf(stderr, " --st Kst start vector element for error calculation (default 0)\n"); fprintf(stderr, " --en Ken end vector element for error calculation (default K-1)\n"); fprintf(stderr, " --rand use random sampling for initial VQ population\n"); exit(1); } /* Open training file */ ftrain = fopen(argv[dx],"rb"); if (ftrain == NULL) { printf("Error opening training database file: %s\n",argv[dx]); exit(1); } /* determine k and m, and allocate arrays */ k = atol(argv[dx+1]); m = atol(argv[dx+2]); /* default to measuring error on entire vector */ if (st == -1) st = 0; if (en == -1) en = k-1; printf("vector dimension K=%ld codebook size M=%ld ", k, m); vec = (float*)malloc(sizeof(float)*k); cb = (float*)malloc(sizeof(float)*k*m); cent = (float*)malloc(sizeof(float)*k*m); n = (long*)malloc(sizeof(long)*m); if (vec == NULL || cb == NULL || cent == NULL || n == NULL) { printf("Error in malloc.\n"); exit(1); } /* determine size of training set */ J = 0; zero(cent, k); while(fread(vec, sizeof(float), k, ftrain) == (size_t)k) { J++; acc(cent, vec, k); } printf("J=%ld vectors in training set\n", J); /* Lets measure 0 bit VQ (i.e. mean of training set) as starting point */ norm(cent, k, J); memcpy(cb, cent, k*sizeof(float)); se = 0.0; rewind(ftrain); for(i=0; i 1.0) noutliers[0]++; if (sqrt(e/(en-st+1)) > 2.0) noutliers[1]++; if (sqrt(e/(en-st+1)) > 3.0) noutliers[2]++; } var = se/(J*(en-st+1)); delta = (var_1-var)/var; int n_min = J; int n_max = 0; for(i=0; i n_max) n_max = n[i]; } printf("\r It: %2ld, var: %5f sd: %f outliers > 1/2/3 dB = %3.2f/%3.2f/%3.2f Delta = %5.4f %d %d\n", j, var, sqrt(var), (float)noutliers[0]/J, (float)noutliers[1]/J, (float)noutliers[2]/J, delta, n_min, n_max); j++; /* determine new codebook from centroids */ if (delta > deltaq_stop) for(i=0; i deltaq_stop); /* save VQ to disk */ fvq = fopen(argv[dx+3],"wt"); if (fvq == NULL) { printf("Error opening VQ file: %s\n",argv[dx+3]); exit(1); } fwrite(cb, sizeof(float), m*k, fvq); /* optionally output residual error for next stage VQ */ if (fres != NULL) { float res[k]; rewind(ftrain); for(j=0; jX,+o$K;JMFXV]EKKTQZJgLpWhVtXd_qcldyq} LI,JX&VL#XX;AI;CX6Q\&Zd-e[,opA1'E;7G>@B:FB>UH#EKMh{wgy}zCUǷRQ]Zfa`be}mYr_xj|w}kxw{{ĢƨѶžѱЍͬ׷ʴԾҹñɸýѼºîɸнҽ.qIDATx] \S罦ۺnvsulezGίU-kl|(R[ V9IH%$[E1WmePkx4AXeNIs~𝄄|8C9{K4iOFwzkm~{r(OK;78z3lf&"|Y>OK;b5ݶ旰ywoyF,iiiG=-xwZPxEK;!ۛSQ8BQ}?F`N/) _-V̊ )ZSV$P?=ΨȲREV]Я%m3DlTDDEf}k2wF>(ѳʣ{#hxSuSs-4}:USEŊm;2 Ìw]iIT:EYarLk,z :}EDED)'^+[s~Ŏ̢ek3n) Xur}ehZ(y5Ě""c;TQ kNyϺqͬ jk@e(Y7~Ŷ?牧NЂ-+J"!ŁBp WEj}ݱ{^;"T{6^ۙn+J,+]lG̀Hu߂P{֣k Ϡ-{yp1?Td Eҭ[+;^ 洘ǢwoVEɼ' Woخ,pMOuրQN87rZА{`KD҈W+E[" sXzkp͎/zըŅ 'Q♳?*"uT`EE*v,Z9p{@O 4'v,XQ eTFqId+2L;l4 ڊu!?\u(g'Ǩ|L ʨ$pĠ$8#HPhh:[th%8CazD{=K R9Qz i2:mJ*KpӕhN[θD-:zle GE#O1B+$6!k>R;K#֓A{~*uorWhJWKI,RKD+gzϺddJLiiFQs D*VЁ'h̙vVaV 9{V@F1(LPOtw?~(I39U}пGoO) ~0R$SJ3d`419OYȆ`m]3 E| MH/0L@!SO QdT8ڪ/g9+kbꐏ)US|i@1Z^C&=U7Ƿ1C>-yRT3R>%bzUL*C/x?JTN?cR = }EC0%uF#_r#ƒJ1+c(A-Ѿ4n[:azrz_Ndf^/{=bz?T;~Zbmar|[Cq uCv18Sl:{oSC| 0 _C#W='$L_g@ʹcz Tru@򪛏{^`T*@mMF*!y^[H)LAu;kG5` _]ɗ4zB'Cs/[wF'#֩(@1J1oF$lMiwXUBmet0p 2=v#1L|LʐU52FJbj?xd? H1 8iH\Bգ_0{VwR1>yF*BNiJ` +#H91zbwC>&WFf> Y}S78| 0"J>땂X9zg iiŜFRu4esvOX 41cbNX9c0XM+Z⸤WFRFKRcR T-u3'†9) DAE =1i{(P x[&%he4|JŇ"*q=&}ՙ|DiXo:ЇA0P-,LMoAXv^te>2ցtYDWI:1Y,^nտ1*~%1eh<nj2|ROEC #r?Zz׾~g/_IRmLEHZHudV(v-T'ZId쵕+3,:cԛ)!,#'⽏i"uiѣ °r1`c^)V7Rz~}H{ou1hꂡ.R4p0~lU~1c ̀|L>Bw,sLu8DEA"HzBM}WU`rT1W~1{94PvIe,쌊ꦑBMOT988… !Pƪ8Aj{roxUcl&eeխ%-EZFrV/x?.t{ZO z z]6+Ia bI~*)FJEphuڌ4QNAaiR95Wrq=;>Jt_ztgv4zM,I1F@rKO.zݙ2 ce3n/{NE^֜u8krg\+EO%JRi^yjs>c\eP3'BUIއG[CA1/M4 gk>r<* ֑>)=-Gc2~sqN2]d*$44 V?!I>?UƍvR+15 CaN+q{\GG~C2vaCZ@cJhpɔ1Ley"uƮɩ9|̹XV#x<ôR#Wb+(W.b͹ߝ?WϿ\,zg(%-L)zhٔW+^K ~`oMՋ+4JrVI~9 ~Dvʍ1ߏ7fb3)$9bIh$g4szhiyIk?<*$;@Lޣv *{^/]"j$;U@Q`e`"~Bk/6()) "-5 ?A{2ɣ.GL2QLeԾ%2~z9~cw4y&97qȑ\sR2ZndϙIDq>WH{ IOb$Ks;e,u\d9gI9bz?jĄ)X՜\vQ0}=`lG0=(7B=yX@47Mwxܖa[F'$|fgqzi0MfIXlr`-~u;SNn@|o$9/h`vN8/(gm{\ϡN0' qv9X/z`xC qzZl>(L}hQ 8U넞NCeGe6bGU#¯'f$_͓f#wX&%>Z ,l(U'/xÆ^Ol5 <Rc1O 8qwa 䥝9R̂WO8?(>r349qׁ9,|I#Y`NҽD-he9s0'Ʌv")LvySv ~q}zzIW<^z0xo慱g' ---% 8jϧ??NE_czL{9XCvoT}Zp$?;]1%9)ܐu~$9"$'}UZ[$Ֆgcļˢ`Lj.2Kq7;F~Lفo5%<{U^, 1rƒR[} ]'''JD yd]NXQ^Pg(S\3xNqx<_ӼycC0ҞuS!=F0ÿ?F8kA"g6^9YbIgMEeNFϘ\z* ׋M߻Itm>q=2[ KINC 'S)>[RavX$?  >&Y"{e3+<(U9Y/߹戧:q|vL~&>{)G?9ޛ] BqIάA7%> Ij.7ǜ~> }o]!s\f9hhM>nen1y9_`0dļwz1>?%9 H,;=ύ왳MGa#3/YznYj{ԂI} G7TkJW(JeWy>1&4Zy_ sဏ/NFd=l5'#S Cr;|=l[b2D7mVcN϶N7.ǜ^"A^P+ⓓ&'x W b|EߪB4箫{]?S|KB}_bn˧Jr!Y9<{oCx+*{11s/gᗰEz~ۻP2GcMF7E)a(sfkLS{s]h4+ov_WH@/M9rN&/?y8ah0,+Ne'"B\ _a> "[=y\.-Xׯԣs {h i;G2m\0IQcF~Z@FO'Ȉ 8"14"fmL6qZUS򏚔q]vaJdnY wotI SE:#dp@։5vv_Z}t⦉j$WSO0d 'L3N#d˿qGJCpXoQ*EZoRr¾jOZbiaБa 9լoOG}S uT7`TRN֪yͦ4+>S7Lևm=.4מՈ~ěZo2ZN]MF~)"YonWqUuu1l.=97506Dmf}E/e WSͶݕjYFcQ[j߷͹ٴVÞBl Fôusmk%Zp'f!guM#y] 凫'/n^jPKVNrgi+PKVJmeta.xml͎0} lC `#EUTS]D;ԭ#cۗ4i߹@xn FyR|Ɂ ûp7XuuV3Seje3sZ5ͦY9+s'qA֘fY:&Jp ƄӀod\z yҵB;FxhXпGr QX̧2RK'+s 3Jy;+A.20R M|C†Dl(JH̹u䂳պ!ӌ$YG6+6f_&~]bAn+hK/ נN}G ӵ88ORw49$ 8 !N*%9nh:ɽIwQM]"4Z$MǰU'9yTPKb_PKVJ styles.xmlY[6~e+R3Ifv ;E!.}&Nʼn#Ǚ؎=oX\9etq$,:w8XLt|}~fIB",2 w Pon!C%)e EF(lCu^Q+pSZ+,-Yt;dnJ K,pO\SI݄ $HNJ%筳=x<.%l6OZ#+*N*Nh!YY6D.>Ȑ7h./=`\XCYT݋5Д Y{4EMY&ߓ@ԶUyNODn!–fPuihhV6{A5YaCeCޓ{*P7stLLtE؍qDݵxvy[5.rR(Kzu/:8,Z%Mq),[qbÛ6%QM18&8#:n Qz8#5o,u=KcÜ\ aJ/G)G- [0&@h 7&@O q&EH_L9 ) sAQp cȗ٩_iӴb ړj[wz`禖?4;o}ZOUJA.&)%uЀN#81n|[Y ; [F5mlka#%nA!nKu؜즜UzQj&f._X F$<);מTz5;*lr1ѣ ?~(/6PQКlҒ}ԩ_)R ^o;FX7׮3 dLQ,՗{\N;jaᶝ2]sUWy|Vw:6B|HwPvʣ`ySR`ZPSl%|qM#ӃXݐyajLOy|qy:(gع\kƬlYrvU/a.ԯ` PKK!EPKVJ content.xml]r}WɲĻ33[qM*;[̌3o)lf)Q!)_>udKV }- 9<dy?=4w{?{_>C:!p9#ߠgяe6J<ίWEx.|snZ_9^6= Odv`rx( 'tPwOГ?MA)~j0x||x4/n0}Pn-YRIX>^ 3RPX]لd ]FLXG̮#ge}*f{,( ҃?_U6^0\=?Mӭ섕./֏6d;wAnG<4n8-Q~Dl #'yt_ޓY8>ݸ"L@8z #4+3_hk}1Kvt.M9怆]\휽fOhWNYX=6a}¨i37Xł|aJi~D$a?{Q-SOxt'{ iWV?YӁ"|".BP,.7xߴkvY;m &= ٔqT^$$//p:XܮFǙNl<봑Yc8^9>z}6>/ B$ݼˌi9]T`+nCALs鵃,XܿN?肻׳ Li?\7 úE=ewFW(>7<(;3R1r0v .&iN,* )>}XLLJ-MH6>1hI0!IsKV3VOg'vǙͯ[OL4-ס `=k\[EMIwzD2e$`ӁsxdV % 2/2==c#8F;bGdscMqCV񍞠e̦k12;TQr6Y_f3.XР?҂kD8nؒL4x5ivVm7t) u՟q%KދMT c4y2b:Mb,cEW(Z!h0lFL(%%dHeKVn^@%%gG}0&hMe\Ӓ L3ea8j-8Maތ/)9MiM>jǒy%1,j mj|HIg iK*8!0Tp[D&?hj ]p_MCEdzSStR/D_^k"}ZU+][x,zPEIS]; AD֡l A-0Mu) @|Y|##<ĕ6+6>_oŗ7zqJoh?Hp1}^s00p$.aY鵋uh00nļŝwsa[BvSpIJXղ `d,V `#lL‹&L2jwO LlQK‹ݷ ajnK>mO]&Ż=]0Ėw0yĖx تx=&i1 0ؐwt(Lc$nmV9I)ςݬ%!=Hڔj)~,\늗-00iђ+nmV5+9JȽ.S4- 2־$o Lߴ$NxR[0!ՒP"QT9r 0ՒP7QT'VN,:2X(.:wvA%H6"Jq]:utSyYh߅ srjۆ|߸ pv9o93wiQ/;E=9klt!t0[C.gmOc<[B{ `aI؅i.[B{ `!P`46[cVl] 7Lcs56rJ٘4[LV)B)aVjP |&X" wO \lR`607о{ nb+[S1e˃)[7{a+[Ja/[𪖕=" `:&+j< ɞ݌1W)WZP lL)1ajW| { s|z.6ҾR3♔x:cjk? yW$6`ЗPO/j*uN4[Ywk]P\W庯馿rD_ոM-_2KvF(6=Dd,nf5Od!8;mcH\m;92ʢi%q\7iq:MZl&y NfL9/~3k% ZΦD MޮL96ܘ((XQD\IF>]&1!<5fiFÑ-Y7={BՂdq-atKӌVv|< MiYZ|PNN]V5?LHb&CI7,Ǧ0KB7g. ]tUsH6®"%L+MƲtF0MMBz4m.ۘ$4 IϜj&IH8[eb#lYSpƻM LlvSpD-[V LT-jتJ( iزw=&wrt!d0[Cﶧ1[מ.jfbf{tfc4L46[cCWӡ`Z0͒h Տ믨Rtݬ%!R:) L$$k@\\xԅ 00iђV*nSe7`$@\\3F LѴ$$ʠ[M_9 Lߴ$TGx?w 00!ՒPMjJ̡!) S[- dAd[͸#BkI]'bȆR̛Q; VEA : l7؊(˼H]X6"L`;m+Dh)% Ej 50)چI6+:SaΔ&L_)q Smgu?l`gо 6t3ԑYtwa򡃝[B. nL`#Pw6%LssyYK99,b ^, 9:r9n{:Ls1rӅXShL.LLs4rӅX\l ڞ[rg`aP |&bZJwO S\lՌRR`60yŖǪaо{ nb`E1߅ ^.USpÔ-[/)[Lп٫-L-[MW c<&xy؂W|YʦIAQ8&tEK(y&.+9Gi K7nj؇IKiI{^S| C馿r_ո"{Ƹp4[D9NyCSWuk +_Vt|=ț11{o7c8oƸ݌quA=`G կCߧA;@Ytn}5._u݀st2Z3kЇH9r\{x))_ކeޛhm!5P=ɇ/M@F}H # name: HRA # type: sparse matrix # nnz: 7223 # rows: 516 # columns: 2580 208 1 1 296 1 1 368 1 1 242 2 1 323 2 1 362 2 1 84 3 1 150 3 1 437 3 1 114 4 1 211 4 1 409 4 1 314 5 1 361 5 1 372 5 1 135 6 1 261 6 1 270 6 1 349 7 1 422 7 1 481 7 1 90 8 1 167 8 1 300 8 1 64 9 1 212 9 1 407 9 1 57 10 1 195 10 1 253 10 1 26 11 1 50 11 1 55 11 1 52 12 1 317 12 1 488 12 1 16 13 1 406 13 1 487 13 1 142 14 1 372 14 1 470 14 1 120 15 1 360 15 1 429 15 1 244 16 1 314 16 1 431 16 1 167 17 1 399 17 1 402 17 1 164 18 1 203 18 1 259 18 1 133 19 1 136 19 1 404 19 1 179 20 1 211 20 1 257 20 1 22 21 1 56 21 1 101 21 1 180 22 1 195 22 1 243 22 1 413 23 1 436 23 1 463 23 1 161 24 1 229 24 1 487 24 1 224 25 1 489 25 1 514 25 1 121 26 1 295 26 1 496 26 1 57 27 1 101 27 1 150 27 1 22 28 1 109 28 1 358 28 1 394 29 1 487 29 1 504 29 1 17 30 1 184 30 1 234 30 1 9 31 1 87 31 1 490 31 1 54 32 1 279 32 1 511 32 1 84 33 1 233 33 1 240 33 1 20 34 1 399 34 1 415 34 1 98 35 1 176 35 1 412 35 1 311 36 1 470 36 1 484 36 1 322 37 1 433 37 1 490 37 1 308 38 1 364 38 1 416 38 1 86 39 1 197 39 1 252 39 1 91 40 1 115 40 1 472 40 1 77 41 1 194 41 1 489 41 1 41 42 1 314 42 1 478 42 1 110 43 1 423 43 1 493 43 1 192 44 1 246 44 1 381 44 1 18 45 1 98 45 1 139 45 1 11 46 1 401 46 1 480 46 1 210 47 1 291 47 1 511 47 1 133 48 1 268 48 1 362 48 1 248 49 1 272 49 1 293 49 1 276 50 1 357 50 1 466 50 1 389 51 1 458 51 1 503 51 1 100 52 1 298 52 1 359 52 1 37 53 1 327 53 1 342 53 1 4 54 1 21 54 1 142 54 1 239 55 1 298 55 1 326 55 1 15 56 1 299 56 1 369 56 1 32 57 1 225 57 1 304 57 1 15 58 1 220 58 1 320 58 1 7 59 1 272 59 1 364 59 1 10 60 1 51 60 1 486 60 1 109 61 1 177 61 1 261 61 1 82 62 1 93 62 1 105 62 1 19 63 1 84 63 1 316 63 1 50 64 1 403 64 1 471 64 1 137 65 1 150 65 1 476 65 1 278 66 1 336 66 1 430 66 1 43 67 1 275 67 1 460 67 1 181 68 1 236 68 1 379 68 1 89 69 1 476 69 1 484 69 1 206 70 1 243 70 1 253 70 1 113 71 1 261 71 1 446 71 1 285 72 1 373 72 1 400 72 1 10 73 1 330 73 1 447 73 1 95 74 1 248 74 1 373 74 1 12 75 1 310 75 1 472 75 1 180 76 1 365 76 1 490 76 1 23 77 1 155 77 1 272 77 1 93 78 1 240 78 1 401 78 1 100 79 1 144 79 1 158 79 1 124 80 1 276 80 1 471 80 1 200 81 1 229 81 1 328 81 1 130 82 1 292 82 1 417 82 1 81 83 1 99 83 1 312 83 1 149 84 1 175 84 1 344 84 1 6 85 1 101 85 1 331 85 1 251 86 1 317 86 1 429 86 1 181 87 1 365 87 1 383 87 1 227 88 1 297 88 1 341 88 1 156 89 1 404 89 1 501 89 1 215 90 1 260 90 1 361 90 1 194 91 1 333 91 1 410 91 1 284 92 1 417 92 1 480 92 1 206 93 1 462 93 1 477 93 1 177 94 1 434 94 1 492 94 1 171 95 1 474 95 1 508 95 1 174 96 1 444 96 1 482 96 1 40 97 1 119 97 1 332 97 1 136 98 1 309 98 1 336 98 1 187 99 1 261 99 1 429 99 1 89 100 1 260 100 1 310 100 1 98 101 1 344 101 1 369 101 1 156 102 1 435 102 1 460 102 1 44 103 1 80 103 1 291 103 1 30 104 1 123 104 1 346 104 1 48 105 1 257 105 1 365 105 1 78 106 1 183 106 1 392 106 1 349 107 1 358 107 1 402 107 1 126 108 1 197 108 1 452 108 1 56 109 1 78 109 1 120 109 1 3 110 1 16 110 1 430 110 1 212 111 1 264 111 1 301 111 1 43 112 1 260 112 1 419 112 1 111 113 1 459 113 1 462 113 1 183 114 1 195 114 1 406 114 1 63 115 1 390 115 1 410 115 1 54 116 1 147 116 1 342 116 1 35 117 1 217 117 1 493 117 1 63 118 1 467 118 1 500 118 1 333 119 1 353 119 1 390 119 1 158 120 1 165 120 1 498 120 1 96 121 1 120 121 1 378 121 1 100 122 1 151 122 1 230 122 1 270 123 1 335 123 1 403 123 1 38 124 1 83 124 1 188 124 1 97 125 1 106 125 1 443 125 1 4 126 1 28 126 1 258 126 1 139 127 1 326 127 1 505 127 1 163 128 1 252 128 1 499 128 1 67 129 1 70 129 1 148 129 1 251 130 1 298 130 1 508 130 1 139 131 1 182 131 1 485 131 1 42 132 1 153 132 1 241 132 1 214 133 1 300 133 1 382 133 1 117 134 1 260 134 1 289 134 1 26 135 1 122 135 1 264 135 1 98 136 1 111 136 1 182 136 1 132 137 1 143 137 1 455 137 1 105 138 1 302 138 1 481 138 1 13 139 1 135 139 1 264 139 1 61 140 1 235 140 1 451 140 1 330 141 1 362 141 1 489 141 1 223 142 1 236 142 1 483 142 1 183 143 1 232 143 1 485 143 1 95 144 1 287 144 1 365 144 1 295 145 1 371 145 1 376 145 1 95 146 1 309 146 1 447 146 1 55 147 1 248 147 1 301 147 1 29 148 1 248 148 1 382 148 1 65 149 1 176 149 1 278 149 1 35 150 1 215 150 1 237 150 1 75 151 1 169 151 1 409 151 1 130 152 1 183 152 1 285 152 1 8 153 1 155 153 1 168 153 1 98 154 1 140 154 1 292 154 1 344 155 1 446 155 1 463 155 1 46 156 1 91 156 1 290 156 1 239 157 1 277 157 1 482 157 1 155 158 1 263 158 1 339 158 1 131 159 1 234 159 1 323 159 1 75 160 1 126 160 1 376 160 1 246 161 1 376 161 1 386 161 1 3 162 1 335 162 1 495 162 1 44 163 1 162 163 1 286 163 1 260 164 1 490 164 1 502 164 1 199 165 1 398 165 1 450 165 1 21 166 1 182 166 1 322 166 1 99 167 1 105 167 1 115 167 1 118 168 1 378 168 1 390 168 1 76 169 1 469 169 1 483 169 1 8 170 1 159 170 1 370 170 1 87 171 1 119 171 1 426 171 1 271 172 1 457 172 1 461 172 1 257 173 1 292 173 1 441 173 1 171 174 1 249 174 1 406 174 1 98 175 1 108 175 1 162 175 1 44 176 1 59 176 1 73 176 1 255 177 1 451 177 1 506 177 1 17 178 1 20 178 1 256 178 1 276 179 1 362 179 1 511 179 1 91 180 1 228 180 1 507 180 1 50 181 1 57 181 1 107 181 1 21 182 1 306 182 1 498 182 1 90 183 1 459 183 1 491 183 1 262 184 1 301 184 1 323 184 1 118 185 1 208 185 1 274 185 1 208 186 1 329 186 1 478 186 1 214 187 1 357 187 1 516 187 1 35 188 1 82 188 1 337 188 1 140 189 1 396 189 1 450 189 1 159 190 1 279 190 1 304 190 1 58 191 1 137 191 1 183 191 1 277 192 1 396 192 1 502 192 1 158 193 1 272 193 1 285 193 1 180 194 1 202 194 1 249 194 1 53 195 1 396 195 1 420 195 1 93 196 1 282 196 1 427 196 1 58 197 1 120 197 1 349 197 1 264 198 1 308 198 1 386 198 1 40 199 1 389 199 1 508 199 1 98 200 1 287 200 1 353 200 1 4 201 1 43 201 1 413 201 1 284 202 1 311 202 1 500 202 1 183 203 1 371 203 1 375 203 1 24 204 1 59 204 1 304 204 1 7 205 1 326 205 1 485 205 1 123 206 1 125 206 1 410 206 1 133 207 1 223 207 1 484 207 1 57 208 1 190 208 1 306 208 1 223 209 1 285 209 1 353 209 1 124 210 1 134 210 1 431 210 1 156 211 1 348 211 1 377 211 1 202 212 1 219 212 1 239 212 1 34 213 1 74 213 1 156 213 1 324 214 1 343 214 1 438 214 1 67 215 1 72 215 1 402 215 1 452 216 1 455 216 1 499 216 1 63 217 1 367 217 1 503 217 1 123 218 1 179 218 1 200 218 1 303 219 1 368 219 1 458 219 1 303 220 1 395 220 1 419 220 1 169 221 1 267 221 1 490 221 1 40 222 1 227 222 1 230 222 1 32 223 1 59 223 1 203 223 1 24 224 1 225 224 1 397 224 1 32 225 1 65 225 1 73 225 1 5 226 1 21 226 1 436 226 1 220 227 1 300 227 1 398 227 1 218 228 1 310 228 1 326 228 1 103 229 1 266 229 1 293 229 1 222 230 1 259 230 1 363 230 1 113 231 1 362 231 1 416 231 1 111 232 1 168 232 1 497 232 1 100 233 1 104 233 1 458 233 1 30 234 1 69 234 1 250 234 1 146 235 1 344 235 1 443 235 1 266 236 1 417 236 1 460 236 1 4 237 1 47 237 1 60 237 1 195 238 1 335 238 1 476 238 1 14 239 1 103 239 1 227 239 1 55 240 1 126 240 1 392 240 1 145 241 1 394 241 1 494 241 1 37 242 1 41 242 1 352 242 1 40 243 1 122 243 1 422 243 1 18 244 1 166 244 1 383 244 1 184 245 1 313 245 1 468 245 1 188 246 1 265 246 1 344 246 1 267 247 1 438 247 1 443 247 1 38 248 1 118 248 1 199 248 1 116 249 1 265 249 1 425 249 1 35 250 1 204 250 1 417 250 1 60 251 1 316 251 1 496 251 1 53 252 1 439 252 1 452 252 1 133 253 1 142 253 1 472 253 1 58 254 1 90 254 1 396 254 1 9 255 1 180 255 1 246 255 1 296 256 1 440 256 1 449 256 1 63 257 1 281 257 1 458 257 1 57 258 1 392 258 1 395 258 1 30 259 1 312 259 1 398 259 1 17 260 1 210 260 1 283 260 1 86 261 1 137 261 1 253 261 1 157 262 1 189 262 1 391 262 1 105 263 1 240 263 1 307 263 1 29 264 1 247 264 1 268 264 1 73 265 1 240 265 1 337 265 1 285 266 1 320 266 1 501 266 1 122 267 1 251 267 1 269 267 1 9 268 1 157 268 1 499 268 1 31 269 1 324 269 1 409 269 1 199 270 1 208 270 1 408 270 1 347 271 1 415 271 1 434 271 1 73 272 1 245 272 1 365 272 1 55 273 1 180 273 1 264 273 1 135 274 1 262 274 1 407 274 1 86 275 1 94 275 1 267 275 1 2 276 1 141 276 1 150 276 1 42 277 1 191 277 1 253 277 1 67 278 1 110 278 1 254 278 1 119 279 1 165 279 1 269 279 1 21 280 1 165 280 1 185 280 1 351 281 1 361 281 1 434 281 1 35 282 1 61 282 1 306 282 1 213 283 1 488 283 1 508 283 1 173 284 1 378 284 1 510 284 1 61 285 1 138 285 1 287 285 1 176 286 1 178 286 1 347 286 1 194 287 1 229 287 1 318 287 1 109 288 1 396 288 1 439 288 1 72 289 1 157 289 1 235 289 1 77 290 1 168 290 1 307 290 1 273 291 1 397 291 1 503 291 1 133 292 1 266 292 1 281 292 1 244 293 1 289 293 1 303 293 1 90 294 1 240 294 1 468 294 1 313 295 1 347 295 1 366 295 1 220 296 1 299 296 1 415 296 1 27 297 1 84 297 1 434 297 1 192 298 1 451 298 1 480 298 1 63 299 1 133 299 1 368 299 1 299 300 1 391 300 1 497 300 1 208 301 1 469 301 1 500 301 1 202 302 1 324 302 1 504 302 1 3 303 1 137 303 1 195 303 1 66 304 1 116 304 1 188 304 1 14 305 1 60 305 1 125 305 1 19 306 1 365 306 1 502 306 1 127 307 1 207 307 1 496 307 1 68 308 1 200 308 1 475 308 1 348 309 1 472 309 1 492 309 1 246 310 1 450 310 1 481 310 1 26 311 1 428 311 1 501 311 1 87 312 1 330 312 1 407 312 1 75 313 1 139 313 1 309 313 1 20 314 1 159 314 1 302 314 1 215 315 1 223 315 1 372 315 1 93 316 1 217 316 1 442 316 1 212 317 1 330 317 1 357 317 1 180 318 1 245 318 1 464 318 1 149 319 1 234 319 1 436 319 1 114 320 1 238 320 1 249 320 1 133 321 1 418 321 1 429 321 1 48 322 1 391 322 1 493 322 1 235 323 1 367 323 1 412 323 1 17 324 1 308 324 1 340 324 1 247 325 1 291 325 1 385 325 1 257 326 1 304 326 1 489 326 1 42 327 1 67 327 1 172 327 1 149 328 1 244 328 1 353 328 1 57 329 1 288 329 1 322 329 1 363 330 1 382 330 1 477 330 1 75 331 1 130 331 1 439 331 1 334 332 1 461 332 1 509 332 1 67 333 1 335 333 1 490 333 1 97 334 1 118 334 1 311 334 1 29 335 1 187 335 1 478 335 1 109 336 1 334 336 1 364 336 1 241 337 1 324 337 1 450 337 1 59 338 1 441 338 1 448 338 1 332 339 1 462 339 1 479 339 1 15 340 1 112 340 1 372 340 1 228 341 1 445 341 1 463 341 1 6 342 1 59 342 1 495 342 1 186 343 1 214 343 1 312 343 1 81 344 1 230 344 1 269 344 1 271 345 1 372 345 1 425 345 1 31 346 1 44 346 1 341 346 1 103 347 1 106 347 1 501 347 1 122 348 1 167 348 1 415 348 1 150 349 1 181 349 1 193 349 1 105 350 1 211 350 1 225 350 1 110 351 1 193 351 1 481 351 1 92 352 1 148 352 1 437 352 1 277 353 1 409 353 1 433 353 1 213 354 1 264 354 1 281 354 1 358 355 1 364 355 1 509 355 1 37 356 1 353 356 1 428 356 1 100 357 1 174 357 1 278 357 1 129 358 1 263 358 1 509 358 1 46 359 1 283 359 1 458 359 1 367 360 1 406 360 1 506 360 1 118 361 1 312 361 1 481 361 1 26 362 1 349 362 1 509 362 1 115 363 1 118 363 1 463 363 1 211 364 1 455 364 1 504 364 1 3 365 1 181 365 1 209 365 1 77 366 1 259 366 1 415 366 1 217 367 1 323 367 1 510 367 1 23 368 1 175 368 1 347 368 1 24 369 1 33 369 1 246 369 1 145 370 1 152 370 1 388 370 1 70 371 1 299 371 1 307 371 1 48 372 1 141 372 1 237 372 1 68 373 1 320 373 1 472 373 1 179 374 1 314 374 1 407 374 1 112 375 1 131 375 1 318 375 1 30 376 1 62 376 1 228 376 1 110 377 1 235 377 1 441 377 1 177 378 1 335 378 1 417 378 1 14 379 1 231 379 1 467 379 1 97 380 1 340 380 1 469 380 1 68 381 1 244 381 1 457 381 1 66 382 1 425 382 1 515 382 1 103 383 1 169 383 1 324 383 1 105 384 1 311 384 1 402 384 1 83 385 1 497 385 1 510 385 1 231 386 1 241 386 1 254 386 1 29 387 1 37 387 1 112 387 1 383 388 1 436 388 1 470 388 1 45 389 1 117 389 1 345 389 1 64 390 1 184 390 1 463 390 1 42 391 1 294 391 1 302 391 1 32 392 1 157 392 1 378 392 1 201 393 1 350 393 1 416 393 1 269 394 1 301 394 1 312 394 1 67 395 1 94 395 1 241 395 1 9 396 1 162 396 1 381 396 1 149 397 1 273 397 1 327 397 1 3 398 1 13 398 1 94 398 1 34 399 1 182 399 1 207 399 1 86 400 1 101 400 1 335 400 1 373 401 1 486 401 1 498 401 1 51 402 1 341 402 1 343 402 1 409 403 1 434 403 1 476 403 1 130 404 1 322 404 1 427 404 1 39 405 1 74 405 1 444 405 1 80 406 1 144 406 1 351 406 1 177 407 1 284 407 1 414 407 1 118 408 1 139 408 1 186 408 1 34 409 1 111 409 1 178 409 1 248 410 1 403 410 1 457 410 1 175 411 1 214 411 1 459 411 1 50 412 1 52 412 1 460 412 1 37 413 1 323 413 1 333 413 1 76 414 1 327 414 1 471 414 1 14 415 1 172 415 1 334 415 1 7 416 1 227 416 1 389 416 1 122 417 1 230 417 1 398 417 1 49 418 1 208 418 1 327 418 1 262 419 1 277 419 1 315 419 1 27 420 1 221 420 1 504 420 1 79 421 1 120 421 1 481 421 1 102 422 1 409 422 1 437 422 1 295 423 1 339 423 1 386 423 1 113 424 1 123 424 1 431 424 1 26 425 1 223 425 1 488 425 1 111 426 1 252 426 1 442 426 1 135 427 1 209 427 1 241 427 1 10 428 1 237 428 1 356 428 1 356 429 1 429 429 1 471 429 1 97 430 1 295 430 1 402 430 1 21 431 1 253 431 1 424 431 1 2 432 1 35 432 1 433 432 1 129 433 1 162 433 1 287 433 1 451 434 1 454 434 1 459 434 1 140 435 1 243 435 1 298 435 1 60 436 1 199 436 1 463 436 1 42 437 1 295 437 1 322 437 1 191 438 1 385 438 1 458 438 1 33 439 1 360 439 1 386 439 1 152 440 1 241 440 1 464 440 1 25 441 1 170 441 1 232 441 1 279 442 1 390 442 1 492 442 1 99 443 1 175 443 1 285 443 1 22 444 1 402 444 1 441 444 1 124 445 1 198 445 1 227 445 1 168 446 1 288 446 1 292 446 1 305 447 1 397 447 1 405 447 1 34 448 1 275 448 1 377 448 1 104 449 1 330 449 1 336 449 1 224 450 1 267 450 1 466 450 1 154 451 1 161 451 1 441 451 1 50 452 1 341 452 1 513 452 1 71 453 1 283 453 1 350 453 1 97 454 1 193 454 1 276 454 1 60 455 1 62 455 1 142 455 1 209 456 1 258 456 1 492 456 1 73 457 1 162 457 1 176 457 1 57 458 1 254 458 1 404 458 1 10 459 1 259 459 1 286 459 1 322 460 1 374 460 1 437 460 1 159 461 1 408 461 1 483 461 1 375 462 1 415 462 1 474 462 1 104 463 1 268 463 1 446 463 1 17 464 1 54 464 1 291 464 1 273 465 1 312 465 1 323 465 1 374 466 1 424 466 1 474 466 1 81 467 1 302 467 1 463 467 1 121 468 1 342 468 1 414 468 1 160 469 1 376 469 1 496 469 1 157 470 1 172 470 1 231 470 1 411 471 1 453 471 1 493 471 1 88 472 1 214 472 1 491 472 1 236 473 1 281 473 1 464 473 1 166 474 1 379 474 1 484 474 1 88 475 1 447 475 1 448 475 1 53 476 1 170 476 1 191 476 1 164 477 1 434 477 1 441 477 1 135 478 1 230 478 1 258 478 1 36 479 1 121 479 1 296 479 1 375 480 1 423 480 1 497 480 1 291 481 1 305 481 1 381 481 1 211 482 1 441 482 1 484 482 1 4 483 1 276 483 1 419 483 1 233 484 1 244 484 1 318 484 1 84 485 1 121 485 1 125 485 1 94 486 1 110 486 1 222 486 1 47 487 1 461 487 1 487 487 1 29 488 1 323 488 1 516 488 1 10 489 1 151 489 1 285 489 1 306 490 1 309 490 1 502 490 1 54 491 1 431 491 1 449 491 1 183 492 1 202 492 1 294 492 1 16 493 1 200 493 1 211 493 1 128 494 1 329 494 1 384 494 1 42 495 1 210 495 1 358 495 1 86 496 1 352 496 1 451 496 1 96 497 1 164 497 1 414 497 1 488 498 1 503 498 1 509 498 1 31 499 1 113 499 1 135 499 1 109 500 1 126 500 1 241 500 1 150 501 1 231 501 1 444 501 1 42 502 1 152 502 1 392 502 1 332 503 1 454 503 1 474 503 1 110 504 1 311 504 1 469 504 1 315 505 1 433 505 1 444 505 1 44 506 1 86 506 1 203 506 1 321 507 1 449 507 1 500 507 1 82 508 1 130 508 1 282 508 1 109 509 1 231 509 1 350 509 1 235 510 1 262 510 1 286 510 1 80 511 1 189 511 1 231 511 1 212 512 1 290 512 1 478 512 1 35 513 1 288 513 1 365 513 1 128 514 1 429 514 1 465 514 1 80 515 1 143 515 1 467 515 1 215 516 1 311 516 1 472 516 1 7 517 1 70 517 1 497 517 1 115 518 1 226 518 1 484 518 1 44 519 1 451 519 1 513 519 1 102 520 1 277 520 1 513 520 1 281 521 1 362 521 1 455 521 1 86 522 1 134 522 1 242 522 1 27 523 1 51 523 1 502 523 1 79 524 1 81 524 1 385 524 1 280 525 1 343 525 1 504 525 1 33 526 1 171 526 1 358 526 1 227 527 1 466 527 1 479 527 1 142 528 1 149 528 1 390 528 1 113 529 1 194 529 1 407 529 1 104 530 1 310 530 1 416 530 1 102 531 1 119 531 1 266 531 1 281 532 1 315 532 1 330 532 1 161 533 1 186 533 1 206 533 1 238 534 1 300 534 1 412 534 1 197 535 1 469 535 1 471 535 1 106 536 1 349 536 1 496 536 1 111 537 1 427 537 1 498 537 1 72 538 1 123 538 1 380 538 1 163 539 1 168 539 1 325 539 1 76 540 1 117 540 1 159 540 1 41 541 1 174 541 1 219 541 1 58 542 1 144 542 1 504 542 1 4 543 1 224 543 1 447 543 1 46 544 1 116 544 1 340 544 1 45 545 1 173 545 1 383 545 1 122 546 1 198 546 1 416 546 1 281 547 1 457 547 1 475 547 1 219 548 1 287 548 1 373 548 1 52 549 1 147 549 1 410 549 1 53 550 1 65 550 1 486 550 1 45 551 1 258 551 1 368 551 1 66 552 1 272 552 1 501 552 1 264 553 1 499 553 1 511 553 1 69 554 1 315 554 1 413 554 1 37 555 1 81 555 1 91 555 1 16 556 1 186 556 1 278 556 1 138 557 1 168 557 1 257 557 1 221 558 1 341 558 1 486 558 1 176 559 1 316 559 1 369 559 1 176 560 1 190 560 1 506 560 1 98 561 1 178 561 1 214 561 1 42 562 1 291 562 1 402 562 1 75 563 1 232 563 1 430 563 1 92 564 1 280 564 1 348 564 1 80 565 1 174 565 1 476 565 1 158 566 1 260 566 1 333 566 1 163 567 1 242 567 1 331 567 1 71 568 1 226 568 1 441 568 1 26 569 1 181 569 1 204 569 1 49 570 1 120 570 1 187 570 1 109 571 1 113 571 1 450 571 1 108 572 1 138 572 1 194 572 1 70 573 1 294 573 1 382 573 1 85 574 1 106 574 1 224 574 1 378 575 1 481 575 1 497 575 1 186 576 1 287 576 1 411 576 1 178 577 1 377 577 1 462 577 1 9 578 1 104 578 1 252 578 1 12 579 1 125 579 1 275 579 1 4 580 1 383 580 1 457 580 1 74 581 1 234 581 1 446 581 1 25 582 1 369 582 1 415 582 1 65 583 1 289 583 1 502 583 1 207 584 1 348 584 1 413 584 1 8 585 1 52 585 1 121 585 1 339 586 1 389 586 1 515 586 1 5 587 1 239 587 1 485 587 1 45 588 1 219 588 1 476 588 1 205 589 1 344 589 1 353 589 1 163 590 1 378 590 1 381 590 1 234 591 1 338 591 1 488 591 1 14 592 1 418 592 1 480 592 1 56 593 1 137 593 1 385 593 1 77 594 1 363 594 1 425 594 1 62 595 1 116 595 1 314 595 1 185 596 1 207 596 1 224 596 1 55 597 1 335 597 1 383 597 1 89 598 1 449 598 1 506 598 1 19 599 1 202 599 1 280 599 1 228 600 1 358 600 1 515 600 1 117 601 1 216 601 1 388 601 1 113 602 1 134 602 1 422 602 1 80 603 1 319 603 1 386 603 1 9 604 1 100 604 1 396 604 1 8 605 1 11 605 1 408 605 1 38 606 1 265 606 1 329 606 1 74 607 1 233 607 1 340 607 1 10 608 1 172 608 1 371 608 1 112 609 1 267 609 1 359 609 1 32 610 1 45 610 1 138 610 1 205 611 1 256 611 1 431 611 1 8 612 1 23 612 1 200 612 1 242 613 1 318 613 1 361 613 1 142 614 1 221 614 1 393 614 1 119 615 1 169 615 1 189 615 1 26 616 1 245 616 1 436 616 1 158 617 1 306 617 1 411 617 1 28 618 1 281 618 1 319 618 1 148 619 1 181 619 1 316 619 1 54 620 1 289 620 1 478 620 1 69 621 1 116 621 1 293 621 1 28 622 1 173 622 1 390 622 1 81 623 1 346 623 1 422 623 1 91 624 1 327 624 1 414 624 1 142 625 1 194 625 1 445 625 1 78 626 1 205 626 1 232 626 1 158 627 1 326 627 1 503 627 1 49 628 1 345 628 1 397 628 1 66 629 1 201 629 1 443 629 1 45 630 1 111 630 1 296 630 1 179 631 1 448 631 1 493 631 1 249 632 1 366 632 1 374 632 1 91 633 1 399 633 1 432 633 1 90 634 1 293 634 1 430 634 1 219 635 1 222 635 1 493 635 1 153 636 1 170 636 1 206 636 1 339 637 1 358 637 1 437 637 1 90 638 1 442 638 1 477 638 1 14 639 1 19 639 1 295 639 1 56 640 1 187 640 1 352 640 1 60 641 1 159 641 1 492 641 1 392 642 1 456 642 1 509 642 1 9 643 1 299 643 1 375 643 1 162 644 1 206 644 1 214 644 1 274 645 1 290 645 1 314 645 1 102 646 1 169 646 1 430 646 1 79 647 1 253 647 1 283 647 1 89 648 1 412 648 1 467 648 1 206 649 1 252 649 1 491 649 1 114 650 1 202 650 1 350 650 1 365 651 1 377 651 1 421 651 1 2 652 1 331 652 1 499 652 1 232 653 1 497 653 1 499 653 1 172 654 1 203 654 1 511 654 1 36 655 1 313 655 1 367 655 1 8 656 1 115 656 1 125 656 1 14 657 1 255 657 1 379 657 1 317 658 1 373 658 1 482 658 1 173 659 1 364 659 1 476 659 1 65 660 1 237 660 1 505 660 1 2 661 1 245 661 1 411 661 1 37 662 1 291 662 1 446 662 1 112 663 1 269 663 1 507 663 1 273 664 1 342 664 1 390 664 1 38 665 1 54 665 1 264 665 1 179 666 1 218 666 1 290 666 1 107 667 1 269 667 1 419 667 1 244 668 1 373 668 1 460 668 1 9 669 1 170 669 1 474 669 1 173 670 1 256 670 1 414 670 1 67 671 1 270 671 1 422 671 1 141 672 1 213 672 1 317 672 1 265 673 1 305 673 1 327 673 1 156 674 1 288 674 1 437 674 1 96 675 1 203 675 1 422 675 1 102 676 1 315 676 1 404 676 1 158 677 1 238 677 1 320 677 1 77 678 1 87 678 1 416 678 1 96 679 1 192 679 1 242 679 1 331 680 1 334 680 1 362 680 1 2 681 1 26 681 1 429 681 1 102 682 1 127 682 1 366 682 1 302 683 1 352 683 1 399 683 1 94 684 1 240 684 1 438 684 1 23 685 1 277 685 1 293 685 1 93 686 1 114 686 1 245 686 1 92 687 1 102 687 1 448 687 1 408 688 1 432 688 1 461 688 1 95 689 1 139 689 1 390 689 1 229 690 1 332 690 1 415 690 1 2 691 1 278 691 1 356 691 1 25 692 1 128 692 1 482 692 1 326 693 1 411 693 1 504 693 1 62 694 1 91 694 1 284 694 1 82 695 1 317 695 1 428 695 1 166 696 1 296 696 1 378 696 1 185 697 1 265 697 1 268 697 1 7 698 1 343 698 1 400 698 1 170 699 1 291 699 1 308 699 1 15 700 1 217 700 1 468 700 1 30 701 1 124 701 1 416 701 1 216 702 1 350 702 1 393 702 1 93 703 1 220 703 1 394 703 1 94 704 1 242 704 1 405 704 1 186 705 1 220 705 1 355 705 1 24 706 1 62 706 1 408 706 1 124 707 1 233 707 1 438 707 1 268 708 1 300 708 1 323 708 1 36 709 1 190 709 1 424 709 1 108 710 1 393 710 1 401 710 1 156 711 1 445 711 1 483 711 1 448 712 1 513 712 1 516 712 1 65 713 1 478 713 1 493 713 1 134 714 1 346 714 1 362 714 1 356 715 1 375 715 1 424 715 1 79 716 1 131 716 1 372 716 1 91 717 1 99 717 1 234 717 1 165 718 1 272 718 1 515 718 1 63 719 1 160 719 1 386 719 1 30 720 1 355 720 1 382 720 1 123 721 1 279 721 1 500 721 1 56 722 1 112 722 1 314 722 1 164 723 1 305 723 1 402 723 1 97 724 1 107 724 1 425 724 1 348 725 1 403 725 1 460 725 1 262 726 1 336 726 1 456 726 1 72 727 1 109 727 1 172 727 1 294 728 1 322 728 1 501 728 1 3 729 1 143 729 1 247 729 1 33 730 1 371 730 1 495 730 1 36 731 1 147 731 1 173 731 1 143 732 1 204 732 1 492 732 1 79 733 1 192 733 1 226 733 1 31 734 1 308 734 1 476 734 1 158 735 1 180 735 1 439 735 1 124 736 1 279 736 1 346 736 1 46 737 1 127 737 1 293 737 1 131 738 1 194 738 1 353 738 1 115 739 1 145 739 1 317 739 1 103 740 1 239 740 1 435 740 1 33 741 1 124 741 1 152 741 1 280 742 1 288 742 1 487 742 1 22 743 1 24 743 1 119 743 1 69 744 1 177 744 1 348 744 1 80 745 1 191 745 1 424 745 1 343 746 1 433 746 1 499 746 1 386 747 1 429 747 1 494 747 1 295 748 1 308 748 1 495 748 1 107 749 1 270 749 1 469 749 1 39 750 1 136 750 1 251 750 1 122 751 1 330 751 1 501 751 1 18 752 1 73 752 1 401 752 1 215 753 1 469 753 1 516 753 1 78 754 1 302 754 1 308 754 1 166 755 1 274 755 1 457 755 1 136 756 1 221 756 1 280 756 1 163 757 1 246 757 1 454 757 1 222 758 1 393 758 1 440 758 1 5 759 1 328 759 1 432 759 1 405 760 1 431 760 1 470 760 1 196 761 1 454 761 1 497 761 1 253 762 1 391 762 1 399 762 1 401 763 1 426 763 1 451 763 1 78 764 1 269 764 1 344 764 1 138 765 1 434 765 1 487 765 1 184 766 1 329 766 1 432 766 1 190 767 1 245 767 1 439 767 1 131 768 1 149 768 1 516 768 1 5 769 1 151 769 1 278 769 1 141 770 1 338 770 1 461 770 1 91 771 1 328 771 1 462 771 1 84 772 1 299 772 1 313 772 1 10 773 1 433 773 1 475 773 1 210 774 1 374 774 1 386 774 1 184 775 1 230 775 1 233 775 1 171 776 1 202 776 1 396 776 1 39 777 1 472 777 1 475 777 1 20 778 1 177 778 1 439 778 1 283 779 1 360 779 1 424 779 1 92 780 1 402 780 1 495 780 1 337 781 1 387 781 1 431 781 1 257 782 1 316 782 1 434 782 1 172 783 1 181 783 1 433 783 1 160 784 1 418 784 1 436 784 1 28 785 1 52 785 1 456 785 1 134 786 1 198 786 1 403 786 1 170 787 1 174 787 1 341 787 1 18 788 1 20 788 1 423 788 1 110 789 1 197 789 1 359 789 1 108 790 1 110 790 1 296 790 1 85 791 1 294 791 1 324 791 1 21 792 1 268 792 1 309 792 1 62 793 1 123 793 1 480 793 1 122 794 1 151 794 1 508 794 1 23 795 1 43 795 1 435 795 1 10 796 1 87 796 1 144 796 1 128 797 1 250 797 1 478 797 1 161 798 1 237 798 1 401 798 1 152 799 1 247 799 1 358 799 1 156 800 1 233 800 1 287 800 1 65 801 1 143 801 1 484 801 1 249 802 1 367 802 1 512 802 1 124 803 1 231 803 1 443 803 1 191 804 1 339 804 1 367 804 1 282 805 1 381 805 1 459 805 1 139 806 1 141 806 1 452 806 1 220 807 1 233 807 1 445 807 1 238 808 1 355 808 1 468 808 1 24 809 1 204 809 1 316 809 1 60 810 1 225 810 1 271 810 1 66 811 1 382 811 1 514 811 1 41 812 1 208 812 1 388 812 1 196 813 1 224 813 1 448 813 1 185 814 1 206 814 1 474 814 1 68 815 1 159 815 1 413 815 1 72 816 1 87 816 1 307 816 1 51 817 1 80 817 1 86 817 1 121 818 1 275 818 1 293 818 1 12 819 1 103 819 1 320 819 1 218 820 1 365 820 1 433 820 1 13 821 1 33 821 1 302 821 1 101 822 1 374 822 1 394 822 1 89 823 1 117 823 1 222 823 1 93 824 1 145 824 1 414 824 1 298 825 1 332 825 1 344 825 1 293 826 1 368 826 1 456 826 1 197 827 1 309 827 1 356 827 1 201 828 1 297 828 1 475 828 1 332 829 1 421 829 1 468 829 1 36 830 1 63 830 1 456 830 1 128 831 1 212 831 1 426 831 1 160 832 1 213 832 1 494 832 1 182 833 1 373 833 1 428 833 1 42 834 1 107 834 1 339 834 1 19 835 1 249 835 1 288 835 1 53 836 1 247 836 1 494 836 1 259 837 1 318 837 1 448 837 1 116 838 1 242 838 1 270 838 1 331 839 1 464 839 1 504 839 1 131 840 1 312 840 1 507 840 1 84 841 1 164 841 1 381 841 1 125 842 1 240 842 1 405 842 1 43 843 1 103 843 1 379 843 1 285 844 1 328 844 1 498 844 1 79 845 1 345 845 1 469 845 1 112 846 1 262 846 1 489 846 1 66 847 1 160 847 1 247 847 1 66 848 1 209 848 1 354 848 1 288 849 1 401 849 1 445 849 1 93 850 1 325 850 1 500 850 1 93 851 1 249 851 1 467 851 1 158 852 1 186 852 1 217 852 1 87 853 1 201 853 1 277 853 1 104 854 1 112 854 1 385 854 1 134 855 1 250 855 1 318 855 1 131 856 1 262 856 1 513 856 1 156 857 1 215 857 1 218 857 1 58 858 1 70 858 1 253 858 1 33 859 1 473 859 1 483 859 1 6 860 1 170 860 1 249 860 1 42 861 1 126 861 1 325 861 1 16 862 1 143 862 1 161 862 1 130 863 1 211 863 1 351 863 1 182 864 1 313 864 1 505 864 1 354 865 1 370 865 1 475 865 1 141 866 1 183 866 1 440 866 1 12 867 1 220 867 1 229 867 1 65 868 1 174 868 1 412 868 1 60 869 1 388 869 1 461 869 1 1 870 1 346 870 1 371 870 1 169 871 1 351 871 1 427 871 1 175 872 1 182 872 1 377 872 1 82 873 1 173 873 1 439 873 1 44 874 1 48 874 1 338 874 1 82 875 1 214 875 1 473 875 1 108 876 1 370 876 1 500 876 1 17 877 1 163 877 1 292 877 1 69 878 1 92 878 1 167 878 1 28 879 1 95 879 1 315 879 1 29 880 1 228 880 1 230 880 1 80 881 1 134 881 1 261 881 1 145 882 1 461 882 1 464 882 1 25 883 1 251 883 1 294 883 1 66 884 1 398 884 1 407 884 1 88 885 1 205 885 1 226 885 1 14 886 1 282 886 1 406 886 1 64 887 1 372 887 1 488 887 1 290 888 1 363 888 1 426 888 1 160 889 1 348 889 1 432 889 1 46 890 1 83 890 1 515 890 1 113 891 1 321 891 1 511 891 1 1 892 1 175 892 1 421 892 1 251 893 1 265 893 1 489 893 1 55 894 1 160 894 1 439 894 1 61 895 1 252 895 1 282 895 1 185 896 1 479 896 1 515 896 1 199 897 1 340 897 1 483 897 1 153 898 1 257 898 1 325 898 1 13 899 1 64 899 1 323 899 1 237 900 1 285 900 1 462 900 1 150 901 1 419 901 1 443 901 1 269 902 1 369 902 1 491 902 1 5 903 1 23 903 1 377 903 1 100 904 1 196 904 1 384 904 1 126 905 1 283 905 1 349 905 1 243 906 1 286 906 1 491 906 1 312 907 1 327 907 1 353 907 1 56 908 1 97 908 1 226 908 1 219 909 1 411 909 1 420 909 1 203 910 1 331 910 1 495 910 1 156 911 1 184 911 1 428 911 1 144 912 1 297 912 1 409 912 1 164 913 1 325 913 1 473 913 1 161 914 1 284 914 1 461 914 1 87 915 1 341 915 1 357 915 1 236 916 1 245 916 1 473 916 1 203 917 1 302 917 1 371 917 1 10 918 1 294 918 1 343 918 1 216 919 1 231 919 1 360 919 1 13 920 1 247 920 1 398 920 1 166 921 1 319 921 1 500 921 1 239 922 1 404 922 1 465 922 1 19 923 1 190 923 1 401 923 1 141 924 1 180 924 1 319 924 1 51 925 1 491 925 1 513 925 1 284 926 1 441 926 1 483 926 1 61 927 1 147 927 1 216 927 1 11 928 1 303 928 1 405 928 1 75 929 1 148 929 1 424 929 1 205 930 1 291 930 1 473 930 1 31 931 1 350 931 1 455 931 1 128 932 1 471 932 1 516 932 1 49 933 1 197 933 1 235 933 1 2 934 1 396 934 1 476 934 1 33 935 1 187 935 1 308 935 1 5 936 1 92 936 1 248 936 1 135 937 1 201 937 1 281 937 1 100 938 1 269 938 1 482 938 1 194 939 1 200 939 1 244 939 1 78 940 1 264 940 1 481 940 1 154 941 1 250 941 1 407 941 1 245 942 1 338 942 1 345 942 1 51 943 1 104 943 1 309 943 1 321 944 1 470 944 1 506 944 1 121 945 1 379 945 1 417 945 1 160 946 1 248 946 1 485 946 1 114 947 1 168 947 1 363 947 1 74 948 1 271 948 1 320 948 1 44 949 1 113 949 1 192 949 1 113 950 1 146 950 1 470 950 1 59 951 1 205 951 1 231 951 1 259 952 1 267 952 1 513 952 1 6 953 1 71 953 1 246 953 1 49 954 1 296 954 1 299 954 1 144 955 1 221 955 1 447 955 1 6 956 1 385 956 1 467 956 1 22 957 1 153 957 1 163 957 1 214 958 1 347 958 1 510 958 1 171 959 1 482 959 1 498 959 1 98 960 1 252 960 1 337 960 1 181 961 1 339 961 1 417 961 1 225 962 1 453 962 1 491 962 1 368 963 1 390 963 1 457 963 1 8 964 1 289 964 1 422 964 1 274 965 1 284 965 1 340 965 1 154 966 1 229 966 1 422 966 1 262 967 1 269 967 1 298 967 1 234 968 1 263 968 1 273 968 1 21 969 1 167 969 1 301 969 1 19 970 1 27 970 1 447 970 1 352 971 1 369 971 1 449 971 1 9 972 1 80 972 1 356 972 1 165 973 1 243 973 1 374 973 1 20 974 1 432 974 1 436 974 1 90 975 1 230 975 1 299 975 1 85 976 1 153 976 1 225 976 1 255 977 1 280 977 1 452 977 1 367 978 1 397 978 1 468 978 1 174 979 1 239 979 1 490 979 1 29 980 1 380 980 1 403 980 1 145 981 1 208 981 1 432 981 1 43 982 1 244 982 1 387 982 1 1 983 1 8 983 1 38 983 1 3 984 1 72 984 1 277 984 1 153 985 1 271 985 1 340 985 1 10 986 1 354 986 1 514 986 1 280 987 1 328 987 1 485 987 1 77 988 1 233 988 1 355 988 1 221 989 1 224 989 1 253 989 1 12 990 1 297 990 1 400 990 1 11 991 1 297 991 1 389 991 1 142 992 1 204 992 1 460 992 1 370 993 1 461 993 1 492 993 1 143 994 1 190 994 1 356 994 1 116 995 1 259 995 1 300 995 1 145 996 1 151 996 1 400 996 1 223 997 1 306 997 1 404 997 1 330 998 1 375 998 1 404 998 1 36 999 1 195 999 1 498 999 1 9 1000 1 189 1000 1 369 1000 1 157 1001 1 304 1001 1 330 1001 1 99 1002 1 155 1002 1 273 1002 1 271 1003 1 279 1003 1 311 1003 1 88 1004 1 232 1004 1 248 1004 1 291 1005 1 352 1005 1 491 1005 1 49 1006 1 123 1006 1 126 1006 1 89 1007 1 177 1007 1 216 1007 1 47 1008 1 339 1008 1 495 1008 1 94 1009 1 401 1009 1 449 1009 1 394 1010 1 493 1010 1 505 1010 1 344 1011 1 384 1011 1 407 1011 1 305 1012 1 376 1012 1 380 1012 1 38 1013 1 340 1013 1 425 1013 1 30 1014 1 38 1014 1 246 1014 1 39 1015 1 171 1015 1 437 1015 1 6 1016 1 79 1016 1 153 1016 1 129 1017 1 161 1017 1 211 1017 1 1 1018 1 78 1018 1 256 1018 1 242 1019 1 340 1019 1 387 1019 1 268 1020 1 293 1020 1 515 1020 1 200 1021 1 238 1021 1 297 1021 1 298 1022 1 465 1022 1 507 1022 1 182 1023 1 191 1023 1 440 1023 1 297 1024 1 435 1024 1 480 1024 1 175 1025 1 179 1025 1 361 1025 1 27 1026 1 244 1026 1 412 1026 1 117 1027 1 387 1027 1 395 1027 1 135 1028 1 184 1028 1 431 1028 1 108 1029 1 211 1029 1 412 1029 1 246 1030 1 307 1030 1 371 1030 1 60 1031 1 352 1031 1 506 1031 1 38 1032 1 342 1032 1 435 1032 1 225 1033 1 316 1033 1 421 1033 1 48 1034 1 196 1034 1 462 1034 1 12 1035 1 351 1035 1 504 1035 1 124 1036 1 353 1036 1 483 1036 1 229 1037 1 445 1037 1 472 1037 1 55 1038 1 69 1038 1 436 1038 1 50 1039 1 97 1039 1 507 1039 1 311 1040 1 368 1040 1 370 1040 1 70 1041 1 180 1041 1 183 1041 1 133 1042 1 274 1042 1 485 1042 1 119 1043 1 136 1043 1 330 1043 1 151 1044 1 275 1044 1 389 1044 1 199 1045 1 342 1045 1 381 1045 1 73 1046 1 189 1046 1 473 1046 1 70 1047 1 75 1047 1 272 1047 1 98 1048 1 395 1048 1 449 1048 1 26 1049 1 145 1049 1 364 1049 1 76 1050 1 147 1050 1 192 1050 1 99 1051 1 205 1051 1 345 1051 1 154 1052 1 185 1052 1 312 1052 1 112 1053 1 222 1053 1 252 1053 1 76 1054 1 218 1054 1 333 1054 1 236 1055 1 413 1055 1 501 1055 1 273 1056 1 297 1056 1 388 1056 1 22 1057 1 374 1057 1 491 1057 1 109 1058 1 144 1058 1 246 1058 1 206 1059 1 453 1059 1 507 1059 1 61 1060 1 372 1060 1 393 1060 1 34 1061 1 138 1061 1 355 1061 1 146 1062 1 302 1062 1 358 1062 1 292 1063 1 316 1063 1 367 1063 1 132 1064 1 237 1064 1 417 1064 1 254 1065 1 356 1065 1 499 1065 1 42 1066 1 46 1066 1 81 1066 1 1 1067 1 40 1067 1 516 1067 1 121 1068 1 339 1068 1 494 1068 1 310 1069 1 343 1069 1 490 1069 1 33 1070 1 184 1070 1 228 1070 1 41 1071 1 242 1071 1 480 1071 1 49 1072 1 125 1072 1 367 1072 1 168 1073 1 216 1073 1 427 1073 1 226 1074 1 345 1074 1 387 1074 1 247 1075 1 305 1075 1 349 1075 1 459 1076 1 477 1076 1 510 1076 1 47 1077 1 148 1077 1 349 1077 1 211 1078 1 214 1078 1 411 1078 1 187 1079 1 199 1079 1 321 1079 1 41 1080 1 303 1080 1 449 1080 1 58 1081 1 306 1081 1 315 1081 1 8 1082 1 123 1082 1 307 1082 1 388 1083 1 440 1083 1 458 1083 1 359 1084 1 404 1084 1 490 1084 1 129 1085 1 292 1085 1 462 1085 1 83 1086 1 210 1086 1 323 1086 1 129 1087 1 328 1087 1 406 1087 1 190 1088 1 350 1088 1 452 1088 1 55 1089 1 210 1089 1 456 1089 1 189 1090 1 337 1090 1 357 1090 1 48 1091 1 94 1091 1 153 1091 1 258 1092 1 309 1092 1 359 1092 1 60 1093 1 408 1093 1 503 1093 1 58 1094 1 151 1094 1 375 1094 1 13 1095 1 76 1095 1 352 1095 1 205 1096 1 276 1096 1 385 1096 1 263 1097 1 266 1097 1 392 1097 1 232 1098 1 325 1098 1 442 1098 1 151 1099 1 482 1099 1 485 1099 1 96 1100 1 155 1100 1 260 1100 1 77 1101 1 332 1101 1 445 1101 1 31 1102 1 254 1102 1 423 1102 1 53 1103 1 209 1103 1 512 1103 1 64 1104 1 321 1104 1 410 1104 1 174 1105 1 297 1105 1 361 1105 1 197 1106 1 243 1106 1 396 1106 1 200 1107 1 355 1107 1 421 1107 1 25 1108 1 259 1108 1 514 1108 1 93 1109 1 164 1109 1 300 1109 1 191 1110 1 221 1110 1 412 1110 1 139 1111 1 453 1111 1 487 1111 1 217 1112 1 361 1112 1 489 1112 1 5 1113 1 15 1113 1 19 1113 1 117 1114 1 338 1114 1 352 1114 1 51 1115 1 357 1115 1 447 1115 1 212 1116 1 289 1116 1 347 1116 1 72 1117 1 240 1117 1 321 1117 1 28 1118 1 149 1118 1 400 1118 1 2 1119 1 249 1119 1 394 1119 1 236 1120 1 263 1120 1 284 1120 1 114 1121 1 219 1121 1 510 1121 1 320 1122 1 447 1122 1 508 1122 1 35 1123 1 434 1123 1 502 1123 1 106 1124 1 261 1124 1 281 1124 1 74 1125 1 300 1125 1 459 1125 1 28 1126 1 159 1126 1 177 1126 1 425 1127 1 479 1127 1 483 1127 1 282 1128 1 342 1128 1 388 1128 1 49 1129 1 93 1129 1 399 1129 1 132 1130 1 213 1130 1 379 1130 1 2 1131 1 57 1131 1 180 1131 1 82 1132 1 141 1132 1 186 1132 1 47 1133 1 177 1133 1 209 1133 1 143 1134 1 335 1134 1 502 1134 1 142 1135 1 410 1135 1 418 1135 1 100 1136 1 315 1136 1 326 1136 1 25 1137 1 188 1137 1 214 1137 1 79 1138 1 166 1138 1 432 1138 1 43 1139 1 223 1139 1 274 1139 1 24 1140 1 307 1140 1 401 1140 1 23 1141 1 354 1141 1 413 1141 1 399 1142 1 492 1142 1 512 1142 1 92 1143 1 170 1143 1 322 1143 1 97 1144 1 187 1144 1 264 1144 1 290 1145 1 453 1145 1 513 1145 1 31 1146 1 195 1146 1 239 1146 1 69 1147 1 127 1147 1 501 1147 1 109 1148 1 349 1148 1 464 1148 1 165 1149 1 410 1149 1 419 1149 1 83 1150 1 151 1150 1 259 1150 1 41 1151 1 207 1151 1 418 1151 1 98 1152 1 130 1152 1 306 1152 1 84 1153 1 147 1153 1 307 1153 1 195 1154 1 216 1154 1 319 1154 1 319 1155 1 417 1155 1 484 1155 1 347 1156 1 439 1156 1 512 1156 1 222 1157 1 369 1157 1 453 1157 1 37 1158 1 83 1158 1 363 1158 1 39 1159 1 461 1159 1 508 1159 1 104 1160 1 326 1160 1 454 1160 1 5 1161 1 406 1161 1 424 1161 1 196 1162 1 381 1162 1 450 1162 1 207 1163 1 227 1163 1 275 1163 1 47 1164 1 126 1164 1 270 1164 1 4 1165 1 270 1165 1 301 1165 1 223 1166 1 258 1166 1 260 1166 1 141 1167 1 394 1167 1 512 1167 1 32 1168 1 108 1168 1 161 1168 1 47 1169 1 331 1169 1 494 1169 1 81 1170 1 228 1170 1 323 1170 1 96 1171 1 333 1171 1 346 1171 1 31 1172 1 72 1172 1 189 1172 1 68 1173 1 95 1173 1 348 1173 1 101 1174 1 209 1174 1 376 1174 1 145 1175 1 319 1175 1 345 1175 1 177 1176 1 351 1176 1 464 1176 1 85 1177 1 346 1177 1 421 1177 1 129 1178 1 379 1178 1 381 1178 1 271 1179 1 284 1179 1 342 1179 1 334 1180 1 392 1180 1 464 1180 1 224 1181 1 315 1181 1 359 1181 1 36 1182 1 191 1182 1 455 1182 1 117 1183 1 147 1183 1 492 1183 1 56 1184 1 463 1184 1 470 1184 1 70 1185 1 95 1185 1 359 1185 1 410 1186 1 486 1186 1 505 1186 1 212 1187 1 415 1187 1 465 1187 1 87 1188 1 167 1188 1 343 1188 1 298 1189 1 324 1189 1 420 1189 1 361 1190 1 377 1190 1 435 1190 1 160 1191 1 390 1191 1 428 1191 1 164 1192 1 375 1192 1 510 1192 1 34 1193 1 410 1193 1 478 1193 1 19 1194 1 92 1194 1 193 1194 1 52 1195 1 354 1195 1 419 1195 1 66 1196 1 106 1196 1 380 1196 1 310 1197 1 364 1197 1 414 1197 1 4 1198 1 106 1198 1 181 1198 1 105 1199 1 370 1199 1 394 1199 1 40 1200 1 132 1200 1 266 1200 1 180 1201 1 193 1201 1 396 1201 1 137 1202 1 396 1202 1 491 1202 1 263 1203 1 321 1203 1 395 1203 1 37 1204 1 134 1204 1 192 1204 1 73 1205 1 119 1205 1 421 1205 1 237 1206 1 393 1206 1 404 1206 1 29 1207 1 327 1207 1 507 1207 1 135 1208 1 195 1208 1 456 1208 1 20 1209 1 506 1209 1 512 1209 1 7 1210 1 30 1210 1 251 1210 1 336 1211 1 341 1211 1 384 1211 1 197 1212 1 253 1212 1 442 1212 1 68 1213 1 233 1213 1 421 1213 1 2 1214 1 82 1214 1 334 1214 1 131 1215 1 283 1215 1 384 1215 1 28 1216 1 55 1216 1 317 1216 1 60 1217 1 207 1217 1 320 1217 1 88 1218 1 301 1218 1 391 1218 1 94 1219 1 430 1219 1 477 1219 1 58 1220 1 167 1220 1 171 1220 1 83 1221 1 248 1221 1 336 1221 1 38 1222 1 163 1222 1 273 1222 1 218 1223 1 475 1223 1 500 1223 1 7 1224 1 77 1224 1 446 1224 1 1 1225 1 218 1225 1 414 1225 1 71 1226 1 124 1226 1 340 1226 1 296 1227 1 367 1227 1 484 1227 1 149 1228 1 176 1228 1 306 1228 1 355 1229 1 415 1229 1 453 1229 1 146 1230 1 426 1230 1 445 1230 1 179 1231 1 188 1231 1 327 1231 1 64 1232 1 380 1232 1 405 1232 1 2 1233 1 58 1233 1 406 1233 1 418 1234 1 488 1234 1 506 1234 1 155 1235 1 209 1235 1 236 1235 1 127 1236 1 170 1236 1 491 1236 1 76 1237 1 164 1237 1 371 1237 1 348 1238 1 354 1238 1 508 1238 1 54 1239 1 134 1239 1 471 1239 1 83 1240 1 212 1240 1 446 1240 1 251 1241 1 334 1241 1 501 1241 1 48 1242 1 255 1242 1 290 1242 1 27 1243 1 220 1243 1 366 1243 1 185 1244 1 349 1244 1 507 1244 1 32 1245 1 110 1245 1 250 1245 1 84 1246 1 288 1246 1 394 1246 1 4 1247 1 227 1247 1 403 1247 1 89 1248 1 350 1248 1 458 1248 1 107 1249 1 201 1249 1 266 1249 1 360 1250 1 406 1250 1 509 1250 1 257 1251 1 319 1251 1 351 1251 1 29 1252 1 442 1252 1 493 1252 1 54 1253 1 117 1253 1 252 1253 1 318 1254 1 330 1254 1 510 1254 1 56 1255 1 228 1255 1 456 1255 1 95 1256 1 148 1256 1 176 1256 1 295 1257 1 424 1257 1 440 1257 1 51 1258 1 267 1258 1 419 1258 1 45 1259 1 155 1259 1 378 1259 1 47 1260 1 452 1260 1 506 1260 1 24 1261 1 161 1261 1 399 1261 1 256 1262 1 345 1262 1 442 1262 1 173 1263 1 217 1263 1 319 1263 1 92 1264 1 474 1264 1 514 1264 1 154 1265 1 179 1265 1 462 1265 1 63 1266 1 208 1266 1 275 1266 1 255 1267 1 328 1267 1 459 1267 1 321 1268 1 367 1268 1 378 1268 1 132 1269 1 254 1269 1 350 1269 1 76 1270 1 173 1270 1 226 1270 1 116 1271 1 210 1271 1 494 1271 1 92 1272 1 259 1272 1 430 1272 1 308 1273 1 458 1273 1 494 1273 1 20 1274 1 296 1274 1 394 1274 1 52 1275 1 277 1275 1 486 1275 1 178 1276 1 206 1276 1 442 1276 1 292 1277 1 296 1277 1 381 1277 1 87 1278 1 162 1278 1 233 1278 1 216 1279 1 480 1279 1 500 1279 1 275 1280 1 430 1280 1 504 1280 1 16 1281 1 183 1281 1 504 1281 1 152 1282 1 202 1282 1 308 1282 1 151 1283 1 268 1283 1 494 1283 1 165 1284 1 263 1284 1 366 1284 1 226 1285 1 274 1285 1 353 1285 1 276 1286 1 312 1286 1 469 1286 1 36 1287 1 374 1287 1 439 1287 1 1 1288 1 96 1288 1 463 1288 1 333 1289 1 445 1289 1 516 1289 1 30 1290 1 66 1290 1 109 1290 1 428 1291 1 463 1291 1 473 1291 1 17 1292 1 321 1292 1 473 1292 1 136 1293 1 250 1293 1 343 1293 1 11 1294 1 204 1294 1 383 1294 1 192 1295 1 194 1295 1 435 1295 1 45 1296 1 129 1296 1 282 1296 1 40 1297 1 78 1297 1 509 1297 1 34 1298 1 342 1298 1 420 1298 1 268 1299 1 485 1299 1 514 1299 1 68 1300 1 289 1300 1 333 1300 1 292 1301 1 387 1301 1 450 1301 1 54 1302 1 67 1302 1 307 1302 1 85 1303 1 119 1303 1 477 1303 1 120 1304 1 256 1304 1 375 1304 1 116 1305 1 241 1305 1 398 1305 1 206 1306 1 341 1306 1 466 1306 1 92 1307 1 110 1307 1 382 1307 1 99 1308 1 215 1308 1 479 1308 1 213 1309 1 276 1309 1 452 1309 1 91 1310 1 226 1310 1 283 1310 1 15 1311 1 186 1311 1 285 1311 1 14 1312 1 276 1312 1 495 1312 1 43 1313 1 266 1313 1 482 1313 1 112 1314 1 198 1314 1 425 1314 1 305 1315 1 331 1315 1 430 1315 1 319 1316 1 455 1316 1 505 1316 1 157 1317 1 167 1317 1 322 1317 1 136 1318 1 232 1318 1 444 1318 1 76 1319 1 89 1319 1 503 1319 1 25 1320 1 355 1320 1 497 1320 1 141 1321 1 166 1321 1 449 1321 1 95 1322 1 336 1322 1 486 1322 1 82 1323 1 147 1323 1 338 1323 1 11 1324 1 397 1324 1 440 1324 1 32 1325 1 167 1325 1 355 1325 1 41 1326 1 260 1326 1 488 1326 1 74 1327 1 175 1327 1 413 1327 1 49 1328 1 282 1328 1 352 1328 1 301 1329 1 465 1329 1 513 1329 1 122 1330 1 265 1330 1 331 1330 1 128 1331 1 178 1331 1 333 1331 1 338 1332 1 453 1332 1 506 1332 1 94 1333 1 189 1333 1 423 1333 1 129 1334 1 132 1334 1 183 1334 1 265 1335 1 273 1335 1 361 1335 1 71 1336 1 202 1336 1 474 1336 1 11 1337 1 132 1337 1 461 1337 1 109 1338 1 209 1338 1 409 1338 1 22 1339 1 62 1339 1 425 1339 1 328 1340 1 400 1340 1 411 1340 1 13 1341 1 397 1341 1 481 1341 1 105 1342 1 114 1342 1 397 1342 1 22 1343 1 225 1343 1 470 1343 1 196 1344 1 299 1344 1 332 1344 1 240 1345 1 288 1345 1 395 1345 1 198 1346 1 259 1346 1 343 1346 1 7 1347 1 228 1347 1 298 1347 1 146 1348 1 149 1348 1 159 1348 1 181 1349 1 319 1349 1 476 1349 1 115 1350 1 160 1350 1 512 1350 1 62 1351 1 327 1351 1 398 1351 1 61 1352 1 406 1352 1 444 1352 1 218 1353 1 411 1353 1 516 1353 1 64 1354 1 217 1354 1 505 1354 1 170 1355 1 374 1355 1 499 1355 1 222 1356 1 286 1356 1 397 1356 1 15 1357 1 229 1357 1 421 1357 1 99 1358 1 236 1358 1 271 1358 1 36 1359 1 129 1359 1 130 1359 1 31 1360 1 232 1360 1 424 1360 1 258 1361 1 403 1361 1 456 1361 1 69 1362 1 266 1362 1 270 1362 1 41 1363 1 432 1363 1 463 1363 1 56 1364 1 189 1364 1 431 1364 1 60 1365 1 115 1365 1 334 1365 1 129 1366 1 338 1366 1 397 1366 1 33 1367 1 120 1367 1 399 1367 1 103 1368 1 342 1368 1 509 1368 1 57 1369 1 197 1369 1 335 1369 1 21 1370 1 248 1370 1 341 1370 1 103 1371 1 310 1371 1 443 1371 1 127 1372 1 269 1372 1 392 1372 1 165 1373 1 298 1373 1 509 1373 1 13 1374 1 79 1374 1 338 1374 1 39 1375 1 156 1375 1 284 1375 1 328 1376 1 453 1376 1 468 1376 1 105 1377 1 325 1377 1 382 1377 1 228 1378 1 468 1378 1 477 1378 1 107 1379 1 116 1379 1 443 1379 1 120 1380 1 246 1380 1 331 1380 1 86 1381 1 210 1381 1 455 1381 1 98 1382 1 438 1382 1 445 1382 1 27 1383 1 43 1383 1 169 1383 1 54 1384 1 256 1384 1 296 1384 1 205 1385 1 378 1385 1 511 1385 1 167 1386 1 294 1386 1 491 1386 1 244 1387 1 398 1387 1 408 1387 1 74 1388 1 84 1388 1 427 1388 1 238 1389 1 366 1389 1 408 1389 1 38 1390 1 122 1390 1 318 1390 1 89 1391 1 311 1391 1 405 1391 1 5 1392 1 174 1392 1 182 1392 1 120 1393 1 346 1393 1 392 1393 1 329 1394 1 377 1394 1 390 1394 1 37 1395 1 320 1395 1 488 1395 1 37 1396 1 111 1396 1 219 1396 1 278 1397 1 309 1397 1 368 1397 1 24 1398 1 243 1398 1 369 1398 1 140 1399 1 162 1399 1 384 1399 1 118 1400 1 329 1400 1 372 1400 1 127 1401 1 165 1401 1 336 1401 1 203 1402 1 307 1402 1 399 1402 1 23 1403 1 229 1403 1 502 1403 1 106 1404 1 266 1404 1 515 1404 1 286 1405 1 305 1405 1 356 1405 1 243 1406 1 267 1406 1 486 1406 1 72 1407 1 94 1407 1 325 1407 1 152 1408 1 230 1408 1 293 1408 1 86 1409 1 454 1409 1 504 1409 1 61 1410 1 131 1410 1 162 1410 1 22 1411 1 72 1411 1 451 1411 1 11 1412 1 50 1412 1 295 1412 1 6 1413 1 209 1413 1 339 1413 1 34 1414 1 199 1414 1 220 1414 1 256 1415 1 283 1415 1 471 1415 1 269 1416 1 329 1416 1 421 1416 1 158 1417 1 178 1417 1 351 1417 1 175 1418 1 400 1418 1 433 1418 1 211 1419 1 236 1419 1 334 1419 1 317 1420 1 388 1420 1 392 1420 1 253 1421 1 423 1421 1 465 1421 1 50 1422 1 127 1422 1 303 1422 1 50 1423 1 190 1423 1 418 1423 1 27 1424 1 287 1424 1 306 1424 1 130 1425 1 175 1425 1 316 1425 1 454 1426 1 477 1426 1 515 1426 1 41 1427 1 274 1427 1 317 1427 1 250 1428 1 314 1428 1 438 1428 1 267 1429 1 465 1429 1 482 1429 1 144 1430 1 389 1430 1 454 1430 1 303 1431 1 410 1431 1 475 1431 1 11 1432 1 350 1432 1 370 1432 1 104 1433 1 131 1433 1 459 1433 1 63 1434 1 263 1434 1 496 1434 1 18 1435 1 108 1435 1 505 1435 1 124 1436 1 201 1436 1 384 1436 1 104 1437 1 127 1437 1 185 1437 1 58 1438 1 130 1438 1 172 1438 1 140 1439 1 468 1439 1 497 1439 1 25 1440 1 59 1440 1 171 1440 1 151 1441 1 223 1441 1 281 1441 1 58 1442 1 148 1442 1 400 1442 1 239 1443 1 341 1443 1 418 1443 1 286 1444 1 336 1444 1 499 1444 1 155 1445 1 414 1445 1 436 1445 1 217 1446 1 235 1446 1 391 1446 1 27 1447 1 36 1447 1 108 1447 1 182 1448 1 288 1448 1 468 1448 1 10 1449 1 171 1449 1 280 1449 1 398 1450 1 405 1450 1 422 1450 1 65 1451 1 111 1451 1 313 1451 1 190 1452 1 395 1452 1 467 1452 1 81 1453 1 271 1453 1 398 1453 1 69 1454 1 122 1454 1 464 1454 1 119 1455 1 154 1455 1 167 1455 1 78 1456 1 150 1456 1 254 1456 1 20 1457 1 164 1457 1 168 1457 1 136 1458 1 403 1458 1 448 1458 1 106 1459 1 460 1459 1 465 1459 1 51 1460 1 374 1460 1 505 1460 1 188 1461 1 213 1461 1 471 1461 1 200 1462 1 208 1462 1 312 1462 1 350 1463 1 464 1463 1 467 1463 1 303 1464 1 310 1464 1 418 1464 1 133 1465 1 143 1465 1 403 1465 1 53 1466 1 356 1466 1 374 1466 1 73 1467 1 204 1467 1 470 1467 1 15 1468 1 81 1468 1 459 1468 1 158 1469 1 273 1469 1 347 1469 1 262 1470 1 314 1470 1 468 1470 1 150 1471 1 287 1471 1 395 1471 1 192 1472 1 380 1472 1 425 1472 1 10 1473 1 16 1473 1 19 1473 1 289 1474 1 410 1474 1 472 1474 1 162 1475 1 313 1475 1 510 1475 1 362 1476 1 385 1476 1 456 1476 1 234 1477 1 410 1477 1 428 1477 1 232 1478 1 406 1478 1 495 1478 1 16 1479 1 23 1479 1 75 1479 1 225 1480 1 240 1480 1 255 1480 1 334 1481 1 370 1481 1 467 1481 1 294 1482 1 373 1482 1 465 1482 1 6 1483 1 416 1483 1 425 1483 1 105 1484 1 355 1484 1 512 1484 1 125 1485 1 204 1485 1 387 1485 1 68 1486 1 176 1486 1 426 1486 1 72 1487 1 187 1487 1 335 1487 1 176 1488 1 329 1488 1 453 1488 1 239 1489 1 357 1489 1 474 1489 1 20 1490 1 292 1490 1 487 1490 1 163 1491 1 282 1491 1 480 1491 1 353 1492 1 384 1492 1 462 1492 1 118 1493 1 212 1493 1 344 1493 1 117 1494 1 273 1494 1 511 1494 1 170 1495 1 202 1495 1 207 1495 1 90 1496 1 262 1496 1 309 1496 1 258 1497 1 385 1497 1 419 1497 1 50 1498 1 198 1498 1 419 1498 1 45 1499 1 191 1499 1 395 1499 1 88 1500 1 402 1500 1 424 1500 1 87 1501 1 230 1501 1 272 1501 1 128 1502 1 266 1502 1 346 1502 1 85 1503 1 179 1503 1 382 1503 1 4 1504 1 389 1504 1 460 1504 1 62 1505 1 210 1505 1 352 1505 1 34 1506 1 165 1506 1 169 1506 1 268 1507 1 375 1507 1 442 1507 1 258 1508 1 261 1508 1 476 1508 1 183 1509 1 287 1509 1 404 1509 1 25 1510 1 302 1510 1 473 1510 1 146 1511 1 471 1511 1 511 1511 1 85 1512 1 250 1512 1 330 1512 1 44 1513 1 144 1513 1 196 1513 1 133 1514 1 284 1514 1 334 1514 1 107 1515 1 279 1515 1 329 1515 1 140 1516 1 277 1516 1 438 1516 1 87 1517 1 382 1517 1 438 1517 1 64 1518 1 118 1518 1 503 1518 1 18 1519 1 65 1519 1 255 1519 1 70 1520 1 126 1520 1 481 1520 1 76 1521 1 235 1521 1 500 1521 1 95 1522 1 158 1522 1 420 1522 1 309 1523 1 354 1523 1 472 1523 1 147 1524 1 150 1524 1 509 1524 1 34 1525 1 53 1525 1 394 1525 1 308 1526 1 331 1526 1 450 1526 1 19 1527 1 68 1527 1 255 1527 1 237 1528 1 280 1528 1 472 1528 1 21 1529 1 51 1529 1 373 1529 1 217 1530 1 219 1530 1 365 1530 1 115 1531 1 432 1531 1 488 1531 1 49 1532 1 90 1532 1 305 1532 1 177 1533 1 236 1533 1 496 1533 1 201 1534 1 213 1534 1 418 1534 1 88 1535 1 137 1535 1 193 1535 1 149 1536 1 289 1536 1 368 1536 1 163 1537 1 256 1537 1 305 1537 1 5 1538 1 366 1538 1 508 1538 1 325 1539 1 469 1539 1 495 1539 1 455 1540 1 484 1540 1 494 1540 1 96 1541 1 125 1541 1 199 1541 1 52 1542 1 289 1542 1 420 1542 1 77 1543 1 454 1543 1 514 1543 1 24 1544 1 49 1544 1 450 1544 1 152 1545 1 155 1545 1 201 1545 1 130 1546 1 392 1546 1 496 1546 1 207 1547 1 221 1547 1 238 1547 1 67 1548 1 181 1548 1 264 1548 1 220 1549 1 238 1549 1 411 1549 1 36 1550 1 137 1550 1 358 1550 1 18 1551 1 85 1551 1 229 1551 1 48 1552 1 222 1552 1 287 1552 1 88 1553 1 105 1553 1 493 1553 1 40 1554 1 228 1554 1 346 1554 1 148 1555 1 351 1555 1 409 1555 1 179 1556 1 380 1556 1 489 1556 1 6 1557 1 22 1557 1 102 1557 1 155 1558 1 379 1558 1 480 1558 1 19 1559 1 322 1559 1 413 1559 1 138 1560 1 409 1560 1 435 1560 1 74 1561 1 215 1561 1 290 1561 1 39 1562 1 234 1562 1 317 1562 1 51 1563 1 174 1563 1 303 1563 1 198 1564 1 275 1564 1 348 1564 1 141 1565 1 356 1565 1 376 1565 1 142 1566 1 182 1566 1 314 1566 1 106 1567 1 212 1567 1 422 1567 1 103 1568 1 272 1568 1 297 1568 1 67 1569 1 203 1569 1 343 1569 1 111 1570 1 194 1570 1 250 1570 1 107 1571 1 426 1571 1 513 1571 1 186 1572 1 215 1572 1 466 1572 1 68 1573 1 279 1573 1 290 1573 1 37 1574 1 234 1574 1 289 1574 1 166 1575 1 279 1575 1 431 1575 1 28 1576 1 388 1576 1 503 1576 1 94 1577 1 164 1577 1 451 1577 1 289 1578 1 318 1578 1 516 1578 1 15 1579 1 219 1579 1 328 1579 1 126 1580 1 205 1580 1 305 1580 1 121 1581 1 152 1581 1 427 1581 1 43 1582 1 74 1582 1 361 1582 1 108 1583 1 304 1583 1 307 1583 1 117 1584 1 242 1584 1 469 1584 1 128 1585 1 136 1585 1 341 1585 1 406 1586 1 440 1586 1 476 1586 1 71 1587 1 304 1587 1 371 1587 1 333 1588 1 466 1588 1 489 1588 1 39 1589 1 238 1589 1 328 1589 1 38 1590 1 347 1590 1 355 1590 1 69 1591 1 201 1591 1 310 1591 1 313 1592 1 373 1592 1 437 1592 1 267 1593 1 275 1593 1 515 1593 1 17 1594 1 325 1594 1 402 1594 1 249 1595 1 364 1595 1 386 1595 1 40 1596 1 362 1596 1 403 1596 1 351 1597 1 393 1597 1 412 1597 1 40 1598 1 103 1598 1 357 1598 1 202 1599 1 394 1599 1 440 1599 1 138 1600 1 365 1600 1 486 1600 1 262 1601 1 359 1601 1 448 1601 1 105 1602 1 338 1602 1 399 1602 1 324 1603 1 332 1603 1 337 1603 1 75 1604 1 322 1604 1 514 1604 1 267 1605 1 369 1605 1 426 1605 1 123 1606 1 270 1606 1 478 1606 1 141 1607 1 216 1607 1 506 1607 1 156 1608 1 363 1608 1 462 1608 1 78 1609 1 135 1609 1 360 1609 1 112 1610 1 353 1610 1 466 1610 1 408 1611 1 460 1611 1 496 1611 1 97 1612 1 157 1612 1 279 1612 1 173 1613 1 282 1613 1 397 1613 1 91 1614 1 402 1614 1 479 1614 1 99 1615 1 414 1615 1 428 1615 1 239 1616 1 393 1616 1 505 1616 1 25 1617 1 196 1617 1 421 1617 1 376 1618 1 403 1618 1 461 1618 1 25 1619 1 178 1619 1 257 1619 1 254 1620 1 294 1620 1 437 1620 1 185 1621 1 276 1621 1 418 1621 1 157 1622 1 193 1622 1 315 1622 1 15 1623 1 282 1623 1 440 1623 1 61 1624 1 217 1624 1 498 1624 1 71 1625 1 86 1625 1 337 1625 1 113 1626 1 234 1626 1 387 1626 1 237 1627 1 351 1627 1 490 1627 1 237 1628 1 433 1628 1 437 1628 1 48 1629 1 337 1629 1 466 1629 1 29 1630 1 64 1630 1 220 1630 1 89 1631 1 236 1631 1 500 1631 1 1 1632 1 184 1632 1 479 1632 1 79 1633 1 423 1633 1 470 1633 1 41 1634 1 64 1634 1 218 1634 1 3 1635 1 362 1635 1 380 1635 1 24 1636 1 241 1636 1 431 1636 1 13 1637 1 210 1637 1 243 1637 1 187 1638 1 247 1638 1 396 1638 1 96 1639 1 483 1639 1 492 1639 1 52 1640 1 298 1640 1 443 1640 1 30 1641 1 122 1641 1 507 1641 1 137 1642 1 191 1642 1 373 1642 1 70 1643 1 243 1643 1 477 1643 1 82 1644 1 245 1644 1 395 1644 1 1 1645 1 46 1645 1 188 1645 1 47 1646 1 458 1646 1 496 1646 1 34 1647 1 278 1647 1 366 1647 1 444 1648 1 447 1648 1 457 1648 1 146 1649 1 311 1649 1 422 1649 1 63 1650 1 326 1650 1 336 1650 1 47 1651 1 360 1651 1 376 1651 1 59 1652 1 71 1652 1 450 1652 1 154 1653 1 224 1653 1 391 1653 1 115 1654 1 354 1654 1 494 1654 1 129 1655 1 148 1655 1 245 1655 1 298 1656 1 360 1656 1 384 1656 1 61 1657 1 74 1657 1 77 1657 1 3 1658 1 6 1658 1 44 1658 1 64 1659 1 215 1659 1 478 1659 1 85 1660 1 290 1660 1 438 1660 1 75 1661 1 374 1661 1 454 1661 1 244 1662 1 313 1662 1 407 1662 1 12 1663 1 200 1663 1 285 1663 1 47 1664 1 185 1664 1 508 1664 1 101 1665 1 116 1665 1 198 1665 1 103 1666 1 133 1666 1 457 1666 1 7 1667 1 28 1667 1 261 1667 1 169 1668 1 224 1668 1 322 1668 1 125 1669 1 467 1669 1 492 1669 1 213 1670 1 357 1670 1 482 1670 1 271 1671 1 291 1671 1 338 1671 1 378 1672 1 473 1672 1 512 1672 1 271 1673 1 379 1673 1 405 1673 1 100 1674 1 388 1674 1 420 1674 1 126 1675 1 188 1675 1 312 1675 1 134 1676 1 246 1676 1 464 1676 1 131 1677 1 340 1677 1 416 1677 1 31 1678 1 67 1678 1 80 1678 1 32 1679 1 240 1679 1 412 1679 1 16 1680 1 144 1680 1 249 1680 1 310 1681 1 475 1681 1 501 1681 1 222 1682 1 314 1682 1 412 1682 1 95 1683 1 193 1683 1 452 1683 1 12 1684 1 179 1684 1 505 1684 1 154 1685 1 215 1685 1 426 1685 1 89 1686 1 150 1686 1 379 1686 1 391 1687 1 423 1687 1 451 1687 1 205 1688 1 360 1688 1 479 1688 1 8 1689 1 192 1689 1 387 1689 1 27 1690 1 102 1690 1 137 1690 1 1 1691 1 159 1691 1 340 1691 1 85 1692 1 127 1692 1 507 1692 1 192 1693 1 204 1693 1 483 1693 1 85 1694 1 154 1694 1 459 1694 1 117 1695 1 168 1695 1 203 1695 1 140 1696 1 423 1696 1 453 1696 1 127 1697 1 373 1697 1 420 1697 1 132 1698 1 172 1698 1 358 1698 1 35 1699 1 48 1699 1 84 1699 1 31 1700 1 140 1700 1 499 1700 1 12 1701 1 327 1701 1 503 1701 1 263 1702 1 292 1702 1 408 1702 1 121 1703 1 358 1703 1 443 1703 1 6 1704 1 221 1704 1 350 1704 1 81 1705 1 426 1705 1 515 1705 1 65 1706 1 154 1706 1 200 1706 1 71 1707 1 101 1707 1 295 1707 1 78 1708 1 331 1708 1 376 1708 1 88 1709 1 337 1709 1 442 1709 1 140 1710 1 235 1710 1 369 1710 1 85 1711 1 102 1711 1 423 1711 1 227 1712 1 251 1712 1 346 1712 1 347 1713 1 409 1713 1 420 1713 1 68 1714 1 238 1714 1 445 1714 1 50 1715 1 283 1715 1 456 1715 1 7 1716 1 151 1716 1 465 1716 1 44 1717 1 307 1717 1 337 1717 1 215 1718 1 278 1718 1 475 1718 1 128 1719 1 357 1719 1 438 1719 1 26 1720 1 247 1720 1 258 1720 1 2 1721 1 484 1721 1 506 1721 1 96 1722 1 229 1722 1 377 1722 1 55 1723 1 152 1723 1 364 1723 1 66 1724 1 69 1724 1 185 1724 1 54 1725 1 311 1725 1 321 1725 1 22 1726 1 241 1726 1 305 1726 1 161 1727 1 225 1727 1 282 1727 1 258 1728 1 388 1728 1 509 1728 1 7 1729 1 230 1729 1 301 1729 1 13 1730 1 140 1730 1 321 1730 1 124 1731 1 146 1731 1 398 1731 1 101 1732 1 370 1732 1 456 1732 1 265 1733 1 429 1733 1 511 1733 1 21 1734 1 26 1734 1 465 1734 1 83 1735 1 134 1735 1 281 1735 1 233 1736 1 466 1736 1 516 1736 1 203 1737 1 240 1737 1 450 1737 1 274 1738 1 372 1738 1 435 1738 1 59 1739 1 197 1739 1 286 1739 1 354 1740 1 389 1740 1 416 1740 1 99 1741 1 145 1741 1 475 1741 1 59 1742 1 136 1742 1 254 1742 1 139 1743 1 176 1743 1 393 1743 1 13 1744 1 187 1744 1 469 1744 1 377 1745 1 400 1745 1 414 1745 1 107 1746 1 264 1746 1 429 1746 1 102 1747 1 221 1747 1 460 1747 1 23 1748 1 366 1748 1 389 1748 1 184 1749 1 446 1749 1 478 1749 1 32 1750 1 311 1750 1 492 1750 1 115 1751 1 364 1751 1 503 1751 1 61 1752 1 186 1752 1 453 1752 1 169 1753 1 404 1753 1 444 1753 1 320 1754 1 363 1754 1 393 1754 1 27 1755 1 101 1755 1 467 1755 1 171 1756 1 243 1756 1 294 1756 1 293 1757 1 400 1757 1 420 1757 1 57 1758 1 120 1758 1 157 1758 1 62 1759 1 146 1759 1 279 1759 1 46 1760 1 389 1760 1 513 1760 1 58 1761 1 203 1761 1 497 1761 1 147 1762 1 190 1762 1 204 1762 1 139 1763 1 278 1763 1 444 1763 1 235 1764 1 300 1764 1 514 1764 1 52 1765 1 260 1765 1 348 1765 1 46 1766 1 196 1766 1 459 1766 1 375 1767 1 430 1767 1 454 1767 1 46 1768 1 106 1768 1 270 1768 1 218 1769 1 260 1769 1 413 1769 1 319 1770 1 367 1770 1 440 1770 1 368 1771 1 436 1771 1 494 1771 1 61 1772 1 222 1772 1 434 1772 1 29 1773 1 359 1773 1 465 1773 1 174 1774 1 433 1774 1 505 1774 1 172 1775 1 417 1775 1 429 1775 1 83 1776 1 184 1776 1 384 1776 1 325 1777 1 371 1777 1 514 1777 1 29 1778 1 301 1778 1 466 1778 1 200 1779 1 275 1779 1 486 1779 1 198 1780 1 336 1780 1 475 1780 1 18 1781 1 111 1781 1 510 1781 1 303 1782 1 428 1782 1 436 1782 1 114 1783 1 129 1783 1 437 1783 1 173 1784 1 304 1784 1 434 1784 1 213 1785 1 303 1785 1 457 1785 1 35 1786 1 73 1786 1 516 1786 1 102 1787 1 224 1787 1 454 1787 1 20 1788 1 449 1788 1 473 1788 1 35 1789 1 175 1789 1 332 1789 1 211 1790 1 255 1790 1 433 1790 1 46 1791 1 446 1791 1 479 1791 1 180 1792 1 326 1792 1 499 1792 1 99 1793 1 123 1793 1 405 1793 1 301 1794 1 315 1794 1 482 1794 1 250 1795 1 315 1795 1 497 1795 1 208 1796 1 223 1796 1 503 1796 1 178 1797 1 327 1797 1 411 1797 1 93 1798 1 161 1798 1 351 1798 1 30 1799 1 194 1799 1 199 1799 1 76 1800 1 97 1800 1 380 1800 1 52 1801 1 201 1801 1 216 1801 1 165 1802 1 309 1802 1 420 1802 1 159 1803 1 383 1803 1 387 1803 1 372 1804 1 407 1804 1 426 1804 1 225 1805 1 302 1805 1 450 1805 1 278 1806 1 326 1806 1 404 1806 1 138 1807 1 209 1807 1 370 1807 1 136 1808 1 324 1808 1 447 1808 1 145 1809 1 198 1809 1 386 1809 1 231 1810 1 356 1810 1 452 1810 1 79 1811 1 107 1811 1 135 1811 1 44 1812 1 88 1812 1 253 1812 1 137 1813 1 189 1813 1 482 1813 1 50 1814 1 276 1814 1 416 1814 1 55 1815 1 247 1815 1 276 1815 1 119 1816 1 144 1816 1 171 1816 1 125 1817 1 339 1817 1 419 1817 1 39 1818 1 320 1818 1 420 1818 1 138 1819 1 221 1819 1 288 1819 1 101 1820 1 169 1820 1 241 1820 1 25 1821 1 140 1821 1 474 1821 1 166 1822 1 226 1822 1 391 1822 1 23 1823 1 118 1823 1 368 1823 1 192 1824 1 379 1824 1 488 1824 1 18 1825 1 333 1825 1 365 1825 1 39 1826 1 69 1826 1 400 1826 1 178 1827 1 300 1827 1 363 1827 1 116 1828 1 262 1828 1 354 1828 1 28 1829 1 218 1829 1 274 1829 1 178 1830 1 265 1830 1 415 1830 1 59 1831 1 257 1831 1 345 1831 1 188 1832 1 251 1832 1 376 1832 1 198 1833 1 310 1833 1 467 1833 1 16 1834 1 27 1834 1 138 1834 1 96 1835 1 265 1835 1 479 1835 1 46 1836 1 227 1836 1 295 1836 1 186 1837 1 369 1837 1 391 1837 1 108 1838 1 220 1838 1 382 1838 1 59 1839 1 146 1839 1 483 1839 1 255 1840 1 412 1840 1 444 1840 1 199 1841 1 265 1841 1 446 1841 1 258 1842 1 272 1842 1 390 1842 1 252 1843 1 286 1843 1 304 1843 1 88 1844 1 286 1844 1 510 1844 1 118 1845 1 229 1845 1 507 1845 1 134 1846 1 283 1846 1 385 1846 1 383 1847 1 395 1847 1 452 1847 1 150 1848 1 209 1848 1 216 1848 1 5 1849 1 372 1849 1 457 1849 1 139 1850 1 290 1850 1 472 1850 1 239 1851 1 488 1851 1 498 1851 1 228 1852 1 293 1852 1 438 1852 1 38 1853 1 184 1853 1 408 1853 1 227 1854 1 360 1854 1 388 1854 1 263 1855 1 342 1855 1 368 1855 1 43 1856 1 194 1856 1 498 1856 1 67 1857 1 132 1857 1 464 1857 1 175 1858 1 313 1858 1 462 1858 1 97 1859 1 290 1859 1 466 1859 1 188 1860 1 448 1860 1 508 1860 1 63 1861 1 385 1861 1 515 1861 1 147 1862 1 162 1862 1 321 1862 1 189 1863 1 232 1863 1 375 1863 1 17 1864 1 31 1864 1 337 1864 1 154 1865 1 270 1865 1 448 1865 1 62 1866 1 271 1866 1 273 1866 1 370 1867 1 383 1867 1 455 1867 1 219 1868 1 318 1868 1 435 1868 1 1 1869 1 242 1869 1 380 1869 1 198 1870 1 251 1870 1 354 1870 1 22 1871 1 157 1871 1 254 1871 1 56 1872 1 79 1872 1 242 1872 1 90 1873 1 119 1873 1 324 1873 1 318 1874 1 421 1874 1 489 1874 1 15 1875 1 401 1875 1 477 1875 1 20 1876 1 178 1876 1 245 1876 1 171 1877 1 231 1877 1 427 1877 1 45 1878 1 152 1878 1 195 1878 1 100 1879 1 207 1879 1 508 1879 1 30 1880 1 55 1880 1 187 1880 1 126 1881 1 163 1881 1 210 1881 1 131 1882 1 274 1882 1 328 1882 1 234 1883 1 313 1883 1 498 1883 1 11 1884 1 125 1884 1 145 1884 1 207 1885 1 251 1885 1 485 1885 1 254 1886 1 256 1886 1 304 1886 1 299 1887 1 468 1887 1 493 1887 1 349 1888 1 385 1888 1 392 1888 1 120 1889 1 329 1889 1 507 1889 1 196 1890 1 227 1890 1 324 1890 1 21 1891 1 272 1891 1 400 1891 1 26 1892 1 317 1892 1 419 1892 1 170 1893 1 196 1893 1 430 1893 1 114 1894 1 427 1894 1 439 1894 1 77 1895 1 466 1895 1 513 1895 1 8 1896 1 96 1896 1 432 1896 1 57 1897 1 216 1897 1 417 1897 1 190 1898 1 449 1898 1 496 1898 1 11 1899 1 14 1899 1 364 1899 1 214 1900 1 441 1900 1 474 1900 1 212 1901 1 333 1901 1 511 1901 1 345 1902 1 484 1902 1 493 1902 1 179 1903 1 363 1903 1 435 1903 1 225 1904 1 383 1904 1 487 1904 1 64 1905 1 303 1905 1 366 1905 1 114 1906 1 155 1906 1 364 1906 1 80 1907 1 172 1907 1 455 1907 1 185 1908 1 188 1908 1 384 1908 1 66 1909 1 348 1909 1 359 1909 1 138 1910 1 169 1910 1 195 1910 1 149 1911 1 256 1911 1 329 1911 1 43 1912 1 199 1912 1 263 1912 1 190 1913 1 193 1913 1 349 1913 1 127 1914 1 188 1914 1 248 1914 1 3 1915 1 455 1915 1 486 1915 1 3 1916 1 86 1916 1 371 1916 1 153 1917 1 161 1917 1 166 1917 1 222 1918 1 235 1918 1 257 1918 1 210 1919 1 247 1919 1 471 1919 1 11 1920 1 288 1920 1 339 1920 1 56 1921 1 135 1921 1 380 1921 1 104 1922 1 344 1922 1 357 1922 1 53 1923 1 427 1923 1 437 1923 1 153 1924 1 381 1924 1 441 1924 1 130 1925 1 148 1925 1 191 1925 1 56 1926 1 261 1926 1 443 1926 1 83 1927 1 128 1927 1 268 1927 1 71 1928 1 193 1928 1 197 1928 1 274 1929 1 287 1929 1 444 1929 1 95 1930 1 221 1930 1 306 1930 1 74 1931 1 347 1931 1 363 1931 1 121 1932 1 155 1932 1 160 1932 1 106 1933 1 172 1933 1 346 1933 1 173 1934 1 204 1934 1 345 1934 1 16 1935 1 334 1935 1 376 1935 1 114 1936 1 255 1936 1 401 1936 1 270 1937 1 380 1937 1 479 1937 1 33 1938 1 189 1938 1 195 1938 1 53 1939 1 241 1939 1 243 1939 1 267 1940 1 277 1940 1 514 1940 1 49 1941 1 226 1941 1 481 1941 1 332 1942 1 448 1942 1 489 1942 1 306 1943 1 413 1943 1 445 1943 1 68 1944 1 81 1944 1 432 1944 1 35 1945 1 441 1945 1 451 1945 1 28 1946 1 223 1946 1 460 1946 1 32 1947 1 162 1947 1 252 1947 1 213 1948 1 429 1948 1 443 1948 1 24 1949 1 292 1949 1 332 1949 1 113 1950 1 205 1950 1 283 1950 1 40 1951 1 146 1951 1 416 1951 1 18 1952 1 439 1952 1 502 1952 1 9 1953 1 110 1953 1 140 1953 1 89 1954 1 114 1954 1 164 1954 1 294 1955 1 304 1955 1 415 1955 1 250 1956 1 261 1956 1 359 1956 1 256 1957 1 378 1957 1 470 1957 1 70 1958 1 88 1958 1 90 1958 1 208 1959 1 278 1959 1 411 1959 1 291 1960 1 386 1960 1 425 1960 1 91 1961 1 123 1961 1 422 1961 1 82 1962 1 226 1962 1 352 1962 1 314 1963 1 329 1963 1 344 1963 1 39 1964 1 165 1964 1 501 1964 1 7 1965 1 83 1965 1 386 1965 1 181 1966 1 295 1966 1 335 1966 1 78 1967 1 213 1967 1 458 1967 1 13 1968 1 408 1968 1 449 1968 1 301 1969 1 355 1969 1 478 1969 1 405 1970 1 414 1970 1 480 1970 1 112 1971 1 336 1971 1 477 1971 1 316 1972 1 440 1972 1 487 1972 1 156 1973 1 366 1973 1 413 1973 1 393 1974 1 409 1974 1 444 1974 1 12 1975 1 142 1975 1 244 1975 1 110 1976 1 153 1976 1 157 1976 1 48 1977 1 168 1977 1 451 1977 1 73 1978 1 128 1978 1 423 1978 1 166 1979 1 470 1979 1 480 1979 1 39 1980 1 266 1980 1 297 1980 1 17 1981 1 82 1981 1 284 1981 1 132 1982 1 280 1982 1 495 1982 1 204 1983 1 428 1983 1 431 1983 1 104 1984 1 250 1984 1 384 1984 1 63 1985 1 360 1985 1 418 1985 1 62 1986 1 238 1986 1 363 1986 1 1 1987 1 99 1987 1 325 1987 1 45 1988 1 53 1988 1 245 1988 1 393 1989 1 424 1989 1 447 1989 1 5 1990 1 176 1990 1 313 1990 1 115 1991 1 285 1991 1 485 1991 1 47 1992 1 263 1992 1 436 1992 1 18 1993 1 212 1993 1 391 1993 1 248 1994 1 268 1994 1 357 1994 1 16 1995 1 316 1995 1 512 1995 1 272 1996 1 377 1996 1 490 1996 1 75 1997 1 335 1997 1 487 1997 1 317 1998 1 387 1998 1 417 1998 1 84 1999 1 168 1999 1 512 1999 1 70 2000 1 144 2000 1 324 2000 1 342 2001 1 428 2001 1 496 2001 1 207 2002 1 326 2002 1 366 2002 1 14 2003 1 132 2003 1 152 2003 1 191 2004 1 232 2004 1 452 2004 1 77 2005 1 252 2005 1 343 2005 1 154 2006 1 300 2006 1 361 2006 1 12 2007 1 51 2007 1 389 2007 1 107 2008 1 146 2008 1 254 2008 1 230 2009 1 308 2009 1 446 2009 1 132 2010 1 371 2010 1 471 2010 1 280 2011 1 486 2011 1 502 2011 1 42 2012 1 279 2012 1 399 2012 1 23 2013 1 275 2013 1 485 2013 1 147 2014 1 370 2014 1 395 2014 1 149 2015 1 223 2015 1 345 2015 1 17 2016 1 33 2016 1 474 2016 1 18 2017 1 304 2017 1 337 2017 1 8 2018 1 296 2018 1 481 2018 1 174 2019 1 217 2019 1 249 2019 1 73 2020 1 442 2020 1 510 2020 1 261 2021 1 360 2021 1 458 2021 1 197 2022 1 280 2022 1 514 2022 1 72 2023 1 75 2023 1 90 2023 1 4 2024 1 354 2024 1 362 2024 1 15 2025 1 182 2025 1 463 2025 1 34 2026 1 139 2026 1 347 2026 1 163 2027 1 397 2027 1 477 2027 1 159 2028 1 236 2028 1 257 2028 1 136 2029 1 442 2029 1 489 2029 1 12 2030 1 361 2030 1 405 2030 1 36 2031 1 45 2031 1 143 2031 1 196 2032 1 233 2032 1 259 2032 1 3 2033 1 193 2033 1 286 2033 1 40 2034 1 479 2034 1 495 2034 1 167 2035 1 206 2035 1 382 2035 1 71 2036 1 153 2036 1 224 2036 1 101 2037 1 121 2037 1 177 2037 1 111 2038 1 299 2038 1 446 2038 1 100 2039 1 201 2039 1 260 2039 1 237 2040 1 255 2040 1 427 2040 1 300 2041 1 426 2041 1 438 2041 1 32 2042 1 318 2042 1 434 2042 1 76 2043 1 286 2043 1 511 2043 1 9 2044 1 54 2044 1 187 2044 1 14 2045 1 143 2045 1 383 2045 1 137 2046 1 302 2046 1 423 2046 1 6 2047 1 57 2047 1 193 2047 1 53 2048 1 148 2048 1 430 2048 1 202 2049 1 320 2049 1 427 2049 1 71 2050 1 231 2050 1 447 2050 1 52 2051 1 218 2051 1 435 2051 1 148 2052 1 377 2052 1 487 2052 1 219 2053 1 498 2053 1 502 2053 1 17 2054 1 206 2054 1 338 2054 1 299 2055 1 359 2055 1 407 2055 1 41 2056 1 238 2056 1 323 2056 1 108 2057 1 235 2057 1 407 2057 1 48 2058 1 379 2058 1 387 2058 1 143 2059 1 160 2059 1 166 2059 1 65 2060 1 391 2060 1 512 2060 1 316 2061 1 381 2061 1 473 2061 1 133 2062 1 261 2062 1 310 2062 1 142 2063 1 297 2063 1 457 2063 1 92 2064 1 277 2064 1 490 2064 1 1 2065 1 2 2065 1 2 2066 1 3 2066 1 3 2067 1 4 2067 1 4 2068 1 5 2068 1 5 2069 1 6 2069 1 6 2070 1 7 2070 1 7 2071 1 8 2071 1 8 2072 1 9 2072 1 9 2073 1 10 2073 1 10 2074 1 11 2074 1 11 2075 1 12 2075 1 12 2076 1 13 2076 1 13 2077 1 14 2077 1 14 2078 1 15 2078 1 15 2079 1 16 2079 1 16 2080 1 17 2080 1 17 2081 1 18 2081 1 18 2082 1 19 2082 1 19 2083 1 20 2083 1 20 2084 1 21 2084 1 21 2085 1 22 2085 1 22 2086 1 23 2086 1 23 2087 1 24 2087 1 24 2088 1 25 2088 1 25 2089 1 26 2089 1 26 2090 1 27 2090 1 27 2091 1 28 2091 1 28 2092 1 29 2092 1 29 2093 1 30 2093 1 30 2094 1 31 2094 1 31 2095 1 32 2095 1 32 2096 1 33 2096 1 33 2097 1 34 2097 1 34 2098 1 35 2098 1 35 2099 1 36 2099 1 36 2100 1 37 2100 1 37 2101 1 38 2101 1 38 2102 1 39 2102 1 39 2103 1 40 2103 1 40 2104 1 41 2104 1 41 2105 1 42 2105 1 42 2106 1 43 2106 1 43 2107 1 44 2107 1 44 2108 1 45 2108 1 45 2109 1 46 2109 1 46 2110 1 47 2110 1 47 2111 1 48 2111 1 48 2112 1 49 2112 1 49 2113 1 50 2113 1 50 2114 1 51 2114 1 51 2115 1 52 2115 1 52 2116 1 53 2116 1 53 2117 1 54 2117 1 54 2118 1 55 2118 1 55 2119 1 56 2119 1 56 2120 1 57 2120 1 57 2121 1 58 2121 1 58 2122 1 59 2122 1 59 2123 1 60 2123 1 60 2124 1 61 2124 1 61 2125 1 62 2125 1 62 2126 1 63 2126 1 63 2127 1 64 2127 1 64 2128 1 65 2128 1 65 2129 1 66 2129 1 66 2130 1 67 2130 1 67 2131 1 68 2131 1 68 2132 1 69 2132 1 69 2133 1 70 2133 1 70 2134 1 71 2134 1 71 2135 1 72 2135 1 72 2136 1 73 2136 1 73 2137 1 74 2137 1 74 2138 1 75 2138 1 75 2139 1 76 2139 1 76 2140 1 77 2140 1 77 2141 1 78 2141 1 78 2142 1 79 2142 1 79 2143 1 80 2143 1 80 2144 1 81 2144 1 81 2145 1 82 2145 1 82 2146 1 83 2146 1 83 2147 1 84 2147 1 84 2148 1 85 2148 1 85 2149 1 86 2149 1 86 2150 1 87 2150 1 87 2151 1 88 2151 1 88 2152 1 89 2152 1 89 2153 1 90 2153 1 90 2154 1 91 2154 1 91 2155 1 92 2155 1 92 2156 1 93 2156 1 93 2157 1 94 2157 1 94 2158 1 95 2158 1 95 2159 1 96 2159 1 96 2160 1 97 2160 1 97 2161 1 98 2161 1 98 2162 1 99 2162 1 99 2163 1 100 2163 1 100 2164 1 101 2164 1 101 2165 1 102 2165 1 102 2166 1 103 2166 1 103 2167 1 104 2167 1 104 2168 1 105 2168 1 105 2169 1 106 2169 1 106 2170 1 107 2170 1 107 2171 1 108 2171 1 108 2172 1 109 2172 1 109 2173 1 110 2173 1 110 2174 1 111 2174 1 111 2175 1 112 2175 1 112 2176 1 113 2176 1 113 2177 1 114 2177 1 114 2178 1 115 2178 1 115 2179 1 116 2179 1 116 2180 1 117 2180 1 117 2181 1 118 2181 1 118 2182 1 119 2182 1 119 2183 1 120 2183 1 120 2184 1 121 2184 1 121 2185 1 122 2185 1 122 2186 1 123 2186 1 123 2187 1 124 2187 1 124 2188 1 125 2188 1 125 2189 1 126 2189 1 126 2190 1 127 2190 1 127 2191 1 128 2191 1 128 2192 1 129 2192 1 129 2193 1 130 2193 1 130 2194 1 131 2194 1 131 2195 1 132 2195 1 132 2196 1 133 2196 1 133 2197 1 134 2197 1 134 2198 1 135 2198 1 135 2199 1 136 2199 1 136 2200 1 137 2200 1 137 2201 1 138 2201 1 138 2202 1 139 2202 1 139 2203 1 140 2203 1 140 2204 1 141 2204 1 141 2205 1 142 2205 1 142 2206 1 143 2206 1 143 2207 1 144 2207 1 144 2208 1 145 2208 1 145 2209 1 146 2209 1 146 2210 1 147 2210 1 147 2211 1 148 2211 1 148 2212 1 149 2212 1 149 2213 1 150 2213 1 150 2214 1 151 2214 1 151 2215 1 152 2215 1 152 2216 1 153 2216 1 153 2217 1 154 2217 1 154 2218 1 155 2218 1 155 2219 1 156 2219 1 156 2220 1 157 2220 1 157 2221 1 158 2221 1 158 2222 1 159 2222 1 159 2223 1 160 2223 1 160 2224 1 161 2224 1 161 2225 1 162 2225 1 162 2226 1 163 2226 1 163 2227 1 164 2227 1 164 2228 1 165 2228 1 165 2229 1 166 2229 1 166 2230 1 167 2230 1 167 2231 1 168 2231 1 168 2232 1 169 2232 1 169 2233 1 170 2233 1 170 2234 1 171 2234 1 171 2235 1 172 2235 1 172 2236 1 173 2236 1 173 2237 1 174 2237 1 174 2238 1 175 2238 1 175 2239 1 176 2239 1 176 2240 1 177 2240 1 177 2241 1 178 2241 1 178 2242 1 179 2242 1 179 2243 1 180 2243 1 180 2244 1 181 2244 1 181 2245 1 182 2245 1 182 2246 1 183 2246 1 183 2247 1 184 2247 1 184 2248 1 185 2248 1 185 2249 1 186 2249 1 186 2250 1 187 2250 1 187 2251 1 188 2251 1 188 2252 1 189 2252 1 189 2253 1 190 2253 1 190 2254 1 191 2254 1 191 2255 1 192 2255 1 192 2256 1 193 2256 1 193 2257 1 194 2257 1 194 2258 1 195 2258 1 195 2259 1 196 2259 1 196 2260 1 197 2260 1 197 2261 1 198 2261 1 198 2262 1 199 2262 1 199 2263 1 200 2263 1 200 2264 1 201 2264 1 201 2265 1 202 2265 1 202 2266 1 203 2266 1 203 2267 1 204 2267 1 204 2268 1 205 2268 1 205 2269 1 206 2269 1 206 2270 1 207 2270 1 207 2271 1 208 2271 1 208 2272 1 209 2272 1 209 2273 1 210 2273 1 210 2274 1 211 2274 1 211 2275 1 212 2275 1 212 2276 1 213 2276 1 213 2277 1 214 2277 1 214 2278 1 215 2278 1 215 2279 1 216 2279 1 216 2280 1 217 2280 1 217 2281 1 218 2281 1 218 2282 1 219 2282 1 219 2283 1 220 2283 1 220 2284 1 221 2284 1 221 2285 1 222 2285 1 222 2286 1 223 2286 1 223 2287 1 224 2287 1 224 2288 1 225 2288 1 225 2289 1 226 2289 1 226 2290 1 227 2290 1 227 2291 1 228 2291 1 228 2292 1 229 2292 1 229 2293 1 230 2293 1 230 2294 1 231 2294 1 231 2295 1 232 2295 1 232 2296 1 233 2296 1 233 2297 1 234 2297 1 234 2298 1 235 2298 1 235 2299 1 236 2299 1 236 2300 1 237 2300 1 237 2301 1 238 2301 1 238 2302 1 239 2302 1 239 2303 1 240 2303 1 240 2304 1 241 2304 1 241 2305 1 242 2305 1 242 2306 1 243 2306 1 243 2307 1 244 2307 1 244 2308 1 245 2308 1 245 2309 1 246 2309 1 246 2310 1 247 2310 1 247 2311 1 248 2311 1 248 2312 1 249 2312 1 249 2313 1 250 2313 1 250 2314 1 251 2314 1 251 2315 1 252 2315 1 252 2316 1 253 2316 1 253 2317 1 254 2317 1 254 2318 1 255 2318 1 255 2319 1 256 2319 1 256 2320 1 257 2320 1 257 2321 1 258 2321 1 258 2322 1 259 2322 1 259 2323 1 260 2323 1 260 2324 1 261 2324 1 261 2325 1 262 2325 1 262 2326 1 263 2326 1 263 2327 1 264 2327 1 264 2328 1 265 2328 1 265 2329 1 266 2329 1 266 2330 1 267 2330 1 267 2331 1 268 2331 1 268 2332 1 269 2332 1 269 2333 1 270 2333 1 270 2334 1 271 2334 1 271 2335 1 272 2335 1 272 2336 1 273 2336 1 273 2337 1 274 2337 1 274 2338 1 275 2338 1 275 2339 1 276 2339 1 276 2340 1 277 2340 1 277 2341 1 278 2341 1 278 2342 1 279 2342 1 279 2343 1 280 2343 1 280 2344 1 281 2344 1 281 2345 1 282 2345 1 282 2346 1 283 2346 1 283 2347 1 284 2347 1 284 2348 1 285 2348 1 285 2349 1 286 2349 1 286 2350 1 287 2350 1 287 2351 1 288 2351 1 288 2352 1 289 2352 1 289 2353 1 290 2353 1 290 2354 1 291 2354 1 291 2355 1 292 2355 1 292 2356 1 293 2356 1 293 2357 1 294 2357 1 294 2358 1 295 2358 1 295 2359 1 296 2359 1 296 2360 1 297 2360 1 297 2361 1 298 2361 1 298 2362 1 299 2362 1 299 2363 1 300 2363 1 300 2364 1 301 2364 1 301 2365 1 302 2365 1 302 2366 1 303 2366 1 303 2367 1 304 2367 1 304 2368 1 305 2368 1 305 2369 1 306 2369 1 306 2370 1 307 2370 1 307 2371 1 308 2371 1 308 2372 1 309 2372 1 309 2373 1 310 2373 1 310 2374 1 311 2374 1 311 2375 1 312 2375 1 312 2376 1 313 2376 1 313 2377 1 314 2377 1 314 2378 1 315 2378 1 315 2379 1 316 2379 1 316 2380 1 317 2380 1 317 2381 1 318 2381 1 318 2382 1 319 2382 1 319 2383 1 320 2383 1 320 2384 1 321 2384 1 321 2385 1 322 2385 1 322 2386 1 323 2386 1 323 2387 1 324 2387 1 324 2388 1 325 2388 1 325 2389 1 326 2389 1 326 2390 1 327 2390 1 327 2391 1 328 2391 1 328 2392 1 329 2392 1 329 2393 1 330 2393 1 330 2394 1 331 2394 1 331 2395 1 332 2395 1 332 2396 1 333 2396 1 333 2397 1 334 2397 1 334 2398 1 335 2398 1 335 2399 1 336 2399 1 336 2400 1 337 2400 1 337 2401 1 338 2401 1 338 2402 1 339 2402 1 339 2403 1 340 2403 1 340 2404 1 341 2404 1 341 2405 1 342 2405 1 342 2406 1 343 2406 1 343 2407 1 344 2407 1 344 2408 1 345 2408 1 345 2409 1 346 2409 1 346 2410 1 347 2410 1 347 2411 1 348 2411 1 348 2412 1 349 2412 1 349 2413 1 350 2413 1 350 2414 1 351 2414 1 351 2415 1 352 2415 1 352 2416 1 353 2416 1 353 2417 1 354 2417 1 354 2418 1 355 2418 1 355 2419 1 356 2419 1 356 2420 1 357 2420 1 357 2421 1 358 2421 1 358 2422 1 359 2422 1 359 2423 1 360 2423 1 360 2424 1 361 2424 1 361 2425 1 362 2425 1 362 2426 1 363 2426 1 363 2427 1 364 2427 1 364 2428 1 365 2428 1 365 2429 1 366 2429 1 366 2430 1 367 2430 1 367 2431 1 368 2431 1 368 2432 1 369 2432 1 369 2433 1 370 2433 1 370 2434 1 371 2434 1 371 2435 1 372 2435 1 372 2436 1 373 2436 1 373 2437 1 374 2437 1 374 2438 1 375 2438 1 375 2439 1 376 2439 1 376 2440 1 377 2440 1 377 2441 1 378 2441 1 378 2442 1 379 2442 1 379 2443 1 380 2443 1 380 2444 1 381 2444 1 381 2445 1 382 2445 1 382 2446 1 383 2446 1 383 2447 1 384 2447 1 384 2448 1 385 2448 1 385 2449 1 386 2449 1 386 2450 1 387 2450 1 387 2451 1 388 2451 1 388 2452 1 389 2452 1 389 2453 1 390 2453 1 390 2454 1 391 2454 1 391 2455 1 392 2455 1 392 2456 1 393 2456 1 393 2457 1 394 2457 1 394 2458 1 395 2458 1 395 2459 1 396 2459 1 396 2460 1 397 2460 1 397 2461 1 398 2461 1 398 2462 1 399 2462 1 399 2463 1 400 2463 1 400 2464 1 401 2464 1 401 2465 1 402 2465 1 402 2466 1 403 2466 1 403 2467 1 404 2467 1 404 2468 1 405 2468 1 405 2469 1 406 2469 1 406 2470 1 407 2470 1 407 2471 1 408 2471 1 408 2472 1 409 2472 1 409 2473 1 410 2473 1 410 2474 1 411 2474 1 411 2475 1 412 2475 1 412 2476 1 413 2476 1 413 2477 1 414 2477 1 414 2478 1 415 2478 1 415 2479 1 416 2479 1 416 2480 1 417 2480 1 417 2481 1 418 2481 1 418 2482 1 419 2482 1 419 2483 1 420 2483 1 420 2484 1 421 2484 1 421 2485 1 422 2485 1 422 2486 1 423 2486 1 423 2487 1 424 2487 1 424 2488 1 425 2488 1 425 2489 1 426 2489 1 426 2490 1 427 2490 1 427 2491 1 428 2491 1 428 2492 1 429 2492 1 429 2493 1 430 2493 1 430 2494 1 431 2494 1 431 2495 1 432 2495 1 432 2496 1 433 2496 1 433 2497 1 434 2497 1 434 2498 1 435 2498 1 435 2499 1 436 2499 1 436 2500 1 437 2500 1 437 2501 1 438 2501 1 438 2502 1 439 2502 1 439 2503 1 440 2503 1 440 2504 1 441 2504 1 441 2505 1 442 2505 1 442 2506 1 443 2506 1 443 2507 1 444 2507 1 444 2508 1 445 2508 1 445 2509 1 446 2509 1 446 2510 1 447 2510 1 447 2511 1 448 2511 1 448 2512 1 449 2512 1 449 2513 1 450 2513 1 450 2514 1 451 2514 1 451 2515 1 452 2515 1 452 2516 1 453 2516 1 453 2517 1 454 2517 1 454 2518 1 455 2518 1 455 2519 1 456 2519 1 456 2520 1 457 2520 1 457 2521 1 458 2521 1 458 2522 1 459 2522 1 459 2523 1 460 2523 1 460 2524 1 461 2524 1 461 2525 1 462 2525 1 462 2526 1 463 2526 1 463 2527 1 464 2527 1 464 2528 1 465 2528 1 465 2529 1 466 2529 1 466 2530 1 467 2530 1 467 2531 1 468 2531 1 468 2532 1 469 2532 1 469 2533 1 470 2533 1 470 2534 1 471 2534 1 471 2535 1 472 2535 1 472 2536 1 473 2536 1 473 2537 1 474 2537 1 474 2538 1 475 2538 1 475 2539 1 476 2539 1 476 2540 1 477 2540 1 477 2541 1 478 2541 1 478 2542 1 479 2542 1 479 2543 1 480 2543 1 480 2544 1 481 2544 1 481 2545 1 482 2545 1 482 2546 1 483 2546 1 483 2547 1 484 2547 1 484 2548 1 485 2548 1 485 2549 1 486 2549 1 486 2550 1 487 2550 1 487 2551 1 488 2551 1 488 2552 1 489 2552 1 489 2553 1 490 2553 1 490 2554 1 491 2554 1 491 2555 1 492 2555 1 492 2556 1 493 2556 1 493 2557 1 494 2557 1 494 2558 1 495 2558 1 495 2559 1 496 2559 1 496 2560 1 497 2560 1 497 2561 1 498 2561 1 498 2562 1 499 2562 1 499 2563 1 500 2563 1 500 2564 1 501 2564 1 501 2565 1 502 2565 1 502 2566 1 503 2566 1 503 2567 1 504 2567 1 504 2568 1 505 2568 1 505 2569 1 506 2569 1 506 2570 1 507 2570 1 507 2571 1 508 2571 1 508 2572 1 509 2572 1 509 2573 1 510 2573 1 510 2574 1 511 2574 1 511 2575 1 512 2575 1 512 2576 1 513 2576 1 513 2577 1 514 2577 1 514 2578 1 515 2578 1 515 2579 1 516 2579 1 516 2580 1 codec2-1.0.1/octave/HRA_112_112.txt000066400000000000000000001423741412132000500162510ustar00rootroot00000000000000# Created by Octave 3.8.1, Wed Mar 15 17:24:05 2017 ACDT # name: HRA_112_112 # type: matrix # rows: 112 # columns: 224 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 codec2-1.0.1/octave/HRA_112_56.txt000066400000000000000000000451021412132000500161670ustar00rootroot00000000000000# Created by Octave 3.8.1, Wed Mar 15 17:59:13 2017 ACDT # name: HRA_112_56 # type: matrix # rows: 56 # columns: 168 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 codec2-1.0.1/octave/HRA_504_396.txt000066400000000000000000030727141412132000500162770ustar00rootroot00000000000000 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 codec2-1.0.1/octave/HRA_56_28.txt000066400000000000000000000114041412132000500161130ustar00rootroot00000000000000# Created by Octave 3.8.1, Wed Mar 15 18:20:20 2017 ACDT # name: HRA_56_28 # type: matrix # rows: 28 # columns: 84 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 codec2-1.0.1/octave/HRA_56_56.txt000066400000000000000000000307011412132000500161150ustar00rootroot00000000000000# Created by Octave 3.8.1, Wed Mar 15 18:12:09 2017 ACDT # name: HRA_56_56 # type: matrix # rows: 56 # columns: 112 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 codec2-1.0.1/octave/HRAa_1536_512.mat000066400000000000000000000460321412132000500164450ustar00rootroot00000000000000MATLAB 5.0 MAT-file, Platform: MACI64, Created on: Fri Mar 15 09:02:45 2019 IMKxI@Ɠ)~g@fꉕ$!9YDrcٟ6Gӱ?q{J9ߗz׎Lg^Y6lf`" &*jVXryjG^UQAX VM'k2ȇtʊ%CInŏC2uh#~aj PE0ڂ"<ޱV)"B7cfmvtLyPG_Ff"kH!y=zAXm FLyj t% a2`((qLUjJ ;XD;Q C2ܺxBR.I/IJUmEJp }RՈ>=4k72K#:fӋOeė܀\ я?+BuYnT(d[D~HoD<ܕ4yd0qeXVXNA 0 ?-zҢ44;݀PlJWV<֊3$WYwu`)1rӄ,$*ޣ9Zղ"W!HIڪhMԵ: d߃EGtVV$Ke Zϕ,"h.RMFbNrt+?z;wI0 ?́(m4TqRlJۑN8b9)OtիػphJê$: (*TX66w(!>5E0ݽ '_-@zǬmM|cPz`K 6qJǾV+)M{6Ùqֺ] 1|~x8k߁>"Kc6Ǐu\+{~Nԁ7&&]@22" =/۬AaV{dO_ ]`5WX>6ڬ1ZKχ뫶y3]K0/4I`.b?sg$:!Ckne VVPYRQx~eZ՗ф|9ԪF-q$yng0^|Ul2!x_ <.E@Z9tD Ux8j 7Ο;+is9X.m5N@&8,H?yl3LqzlA0 ? P75m3ZpH?K@BőS 7.{w5ϧEܓ}M"O(j) Mxp=Kߛm?N8o2I5X$e0,^Nh[xRt.kdVN90?MCQ"r1LȎA)=x]y -*]qbƭ{w6~2H7OXb:)XM\ޒ%PT&#L]ԓPs`ͧId0xZlW^?y+ŧbh c(: ƈL o 0 BMe&p,-R_"N:cPdDf5^_ۄ儋njT)m-dnqǿed6_e 0Z~ 䨂60X;(iEࢣ-B1 iMY,kamht'&FA . ZfSn@ȃ͢]-UKgrҔǤhgy2h3 *VC:ŗ]q#VVbO` UZ( d1ÜV=!"n"HzD`{քYe[9g#nyεFS96EAǀG` >B GYޠc?^oo[3? )߈7x +lojڅ ;f.jzפ k&}h<]ˈgs,Ҵ!EU/KVmU]HnpE<=2T:*μ0t`v\3PɁcn|&=k&U,궐҇Em:x)#+O̮pC,G6T2WMMXV lJk>&UCur90 Ĝ:MJ"ihe#XlkBύ=F?Tȝ5JL07_JKt-`cn#;$+pSW'De/u\b0T A\ e`ګ:0. #r_A`ǨBw0;+ܗA j Z9 nu-:\(4vuG̑D[ DW9l'`X5UPpŌ,S>dQ4 1@g`¾83ĊjhVH_(c`̰f` CY>B'Q"L?DO/h>}Q M0L`oe XC>&PYA#8\4?:ÈL3ߠ[̰6P.Q;>޵8tɞJOW#r3#I|NCB^17)#ƟӵC/HC,b7 !C%I\ p6CRZ K 0 Œ_& %g[i0` )UWƾȲh)&R&RVO(do0oh'Hw`;yPb0͘V7~q~%{^K(-7BI 0/-؍ vȃf/M^7R8>" QrVUGXA 2Hx7Kf#Q%b*1[.`*0,+q*|CXෙ4Qr<(3:rbl.J ƧK\ #X0[Hg <$K'10 ?`* 9HήÖ4WKe]I9B* 3L({w?!6&VWc.E:eR\K5ߞ9ݨ$-ʸ%>xwwTZg8[|],Jb#:@[;%K|Lg10 ?XB6u͈:aZaBzg71s<#~KL.1%U$$U@&hk"eF۳`A%*is IM]T<{uԪ QMEjhvB#oYXZa>zEhT 0vo!J4Ho+ FZ7PQ2Cpm$ &đ'ws| P"['o`w#Rx<Q $Z1uw^rDT C$W FQр6`:7vc1v%<X!x1͖>'79Βt$eLE\fü_ c€/EPIA 1l?ZqE[ 0 /-~U4I@+֎A_i'oun )~/R֫ACd?rDI Nx~˄GO,EۢF+WD& 5+6 ʓ=-G$^ܔZhGC1z=GK1 A ?@m.,X՛C8 aNWKl!Lzt6M.ANubMGV`Νmܽ* !.+5cUⓧJT?a=ibknQJTl)>RUW\TF-`߂e|Zhv;A F4 P.;7/n BC)k`يLhXY `:vRHUuy͖OOmx!S=.'innj#2 ÜCX=p%=}b,fRN]z>Nǔ @ FBĞ.8|5i6m]?!W. /pӤKRm k\sxlj$uYY{b6G~T=ZXX{W;#3;&4ٝÒEX}D!( PwI0 ?5`K7֍)8,F=l,6v6ACRJY u1 ܅L[NcNHGEjYO&x޽JVckjZn$F/K8vrXp.P_< 3X6z)€ItF</:A  Jyich1s+_I4a5,PԖl#5j1EXkB Œ`px3qR1;Kr HrHNT$vag>qL_&PrLs)C'~U0FW]{Rܘ xDɋ(%5 ptRT!tLyT^ mH˃6i= #',cϏt.nNURt>_4uϠ8: 6`5D"X ?RC$KՆc.(W{rH@ GA 6Hbv87O;SPWb Ts NB֕}'Ё} 0CHκ; $k8Vk voಯZG] &uЂto&lցSq.lBނ37A!Ff\s; iM5 >_Z '&A؉0btLoD/ Jf,MvN_xDqu=KNO ZBQ2gC_тFy9.Xj\C˰5U gۍ}#j,ٱ3dWhLixI.:5e-zj)78PPq=xbV/?p35r̤ !4`_lW_2oʇ]7T'L媒p=rg#E+?ܙK 0ED:б?R{Ms$ *= 8|@JF 88h!A`{zfVI`OTm^c.4VJ C `?$)]1q!s -\(Q&VX1 /qOIC7G u90Ē_( OJKzBkA(mD/}#5`̃Oly:ͫKrfkO[4&.,! %s8 N%zoaBG?fqLF+"/hq"X۟X';W/!'A @%)Ҿ ܖ9 Ĝ:M*rʨΌM(,܎V2\4D޼Dr95b?z9Urx^<i(()m:~jJg9f@ D_ѩd"m{#&8,٫Rz|G}C kIK]sBNIgNA0 Fm $N=Z͑p+(H-bq+ɝSjLȡCʽ Ox^XPx6@ d~ee6f1N>匰3Fx$Pv4\lD@ b)pBh"tq9SqA j6ۺ08Z.vK{ 1Τ0ܮ7Dt,1އ{<:5Ծ:0:D⁈ :fλrP'R&Y8_,B+34u{2 0 K#TinJي Ji]1L:z@KI Em-snMs:nz,Rit 0-lO7_+ e)Lo.EhdfXB8]b5,#E?!S9Ld5@t2w[ 0/-">jMf9d?,ea*'&8㓝Z5!`1猿yek\֥晣C#Έ&cb8w$Qjks9ǽ1C6*VƵE%8Y7uKCW(AKΛװ7 $cOkcڍ)?~"w|R''^䮠ԘA0v=xQi K6I ӥɲsstx:ң'' $9ƇNB DB_hC^}n@!H)a1HL2-("2a3,.J]BA 0?-VuUd,0Ģܿ$-<Yc⏮-SgpB/ U< iPM.vU9FJX `7"1t(IEa6@TxFVI(mϖ`D-m62!X xagLodR9A v8R[&IKrE tњEE[ &jF7YtckO_<ҍ.7`HGUEc)Ўغ7Uut `ϢsOco9 do[Ly:_D-BB!aCXaV[̊L3+&rg qN't10 ?TjA OlA|_}m>YJaMGM2fP6a] .m}G-4<UG Xk*Tx ؅س<,6d6O;Gޗaj+M/g2GawAr,XA*RTA ?{cZwef94c ?! :.Q)_] P{Y9w__6nT|1@ 1 X3Qo%uV7<~J|cj`)Mѐ9%5oFE^fAFcJ)}~M}ՑbͱR`.gڪDn8G'Ka`ePyv需ۻ)Alb:uAczIA7d^Ll7EB_%158kQ$LDcp20rQ C//a SmҨ{[_013!8Aꂘrb ȡH O~b+v4mX~ No'@)rhv%$Ǐ<0\8sDG|_JMKtbm{ ſTҧųzA 0 Z<mВd'vNdvzQښzM) $E^^H.0SK1QUo)Y!!>p+NPĨ8fJ|^ ^hk* @!\Hl*PicFlKݓX_~ !PdT.w < w9s9;0/MDϻaJ1xT)v*3{3c -s=E2فLF CVmW7$.*5El>Kf94xu{ޙqu:A, [EAx]&n LtTM~2Z ,A A0 FA>S-0On@o(pXÕ}g9(Qd(51DtH4фyjmg #,J!C)+Rc+HdwY[,+>I#~ݣ>Ih^6||f{,U L!Ƿf/.Dv g#+,Z SN[t$l; HZUcv5lTm ~g aݙkUXj a2,ZX 1Z2VE_Lתo`_ˊ,~!Qu0MFR/$u0S-!F52f2DcŒ`:v C?{ 0 Qi$8"z|˶#˥b҆0GRoTfA^?>pVX+#x mnIF]Jj E!NMpGn*5hLtFX}6e~u4?ٮ&6(Zn%O%!C}|5۱|A ?])Pd':b& *q~M% l4 7T{gQNhFtJ8E4=$Em^7>4|Ӟ˃*cF6E@*3:R7%:A(e (9~fZ^v?Un 0xK "_&S# bJ%1` y龇DdeO6F+es:NL5ժai6y|B3/w9. 1}2Ƚ9O#qO3  y'zqk@p7Q_< {A pKGH@l<&̮E8d%Sk6s(訮\ rS)}~l܀k벭Pp6ԢbN/6sBɕˌ/?6¤cDj&YdaDɶ;Au%6Ⱦ<)_@5+Ci2}=LeK 67PBS+;IKOc,d,]-D@ DE_ƧH:֌ۋM #Mtz\c-JL#1'-7AZ)h ]}LNlF05r;Qr"C\@Y AఈGW7KH]\PؠmSp)'ŚQ_@4p{y:(&j˲b3)C+7I ꁲpz `Is%#H$:_qF![f!^ R 장dOm W݂2Ѷ|9|Q&wʝ}FHդ۰zh/\􊪼do4QAIry\Bo䙱 spJ m*ٜ<,B=萭VPcv%7;-~xpNM&䪍H-ދZI> M4rUfԊi/&^j_cw{rz%&R+Cg N1: yK&87'dOo[ ܗ 0 K#<@TjI.qZH(p be"d,wE %y.ѓ0 UuX#CGۓW՚m 7[ a©΄fClX 8ՔGLp@Rymwd,RjQ6x npܔA 0 zK!l,GS= 1&QHMd6CP. f-Ί$Dr E۴$_iyQCZ+D{Ƃ~hex-:R8$L=B}uZ$EV)UWvjȓj1 'xIլ9 NA5l*Z)P}NH3"/! /ኙ?D |o5 yK4ϟCcY kf;1_탹U+Ke3eM\_ycn쀞~q3kAtBXh}6{xRAFA 6 ΕCgt쎓\(}L9֙DK2@*K!5*ϐ aD)Lbar_1eï'NOBӀ:=H&uq!@ FbШy$tkN3hGL^K`.K 0~! K!f;9K Cv᎘00Є޲io^P o5y^Ali&<wJPcN#j:-|:Labpo8Ro .h W;m8ɴLA 04.wMsv g8 q3@ g8 q{6A @4*HzÏf Xe8 q3@ g8 q3@ܳ.A @4&H;}~0]* q3@ g8 q3@ p1 0 ?qSM9hfU3@ g8 q3@ g8=p1 0 ?QWi9`fU3@ g8 q3@ g8=p1 0 ?!]i9hfU3@ g8 q3@ g8=10 ֿ}ЃD3^pq3@ g8 q3@ g?10_l 8hW3@ g8 q3@ g8T 0KfCw + + + +10 ֿ̜vN g8 q3@ g8 qҡ0{M]VfvG q3@ g8 q3@ g+>c` 0jcodec2-1.0.1/octave/H_1024_2048_4f.mat000066400000000000000000000635461412132000500165410ustar00rootroot00000000000000MATLAB 5.0 MAT-file, Platform: MACI64, Created on: Mon Jan 11 21:14:11 2021 IMfxYQ0 m<GD%&FKY73maDc,G\k:*~T=[j ݠh DS"YME>8c_,Vi PBsW} u`7ڧePsG#n58}zGF>ՙ`ىxXz<0!ԶF 5{3  ̋Ë~ڻр{P>@ʍ54[ 4x۫d,^r_Mx ǬEr`fp@x]3xYz(X寇a|oXayaO=e8?a`i<@A&&>~k LÇP$waD@h8v8LVpѰR"y[vt渃 Wo1TwLH̚]g,ݳ=|lt`0}K\w8/_ XKMdnMܪOjY^A E/ӎP,l|@mjzJ.O$l?Z+NbpVѨn@d.Dԗ qhҨjN 7P{aݵRٱdZ:uf|)Ƕqqi>gc3OG[͈˪eA0D 0LAFSCėxQ+"'_W:pXrdۈr<@!&F"BL (b6"1cWohd'zgiL2tZkϛ[`+[NypWZ'Uȡ ɀ&W;L!n+K%m5oR+VŚ$_,ĸ?h'T /3֤l ۆM>rO\RMf 0aX t{MP@p>l;d/򏀭hjFh^*Y2\auZi^^[k<3"g&._85?'>OHX A#0 i%߾D\ǽxV߆$R!f'̭FF'>J?]pJGv:Θ?dLx7Փx+C =Ż})E}Y0 #Ӵ ı[PsFD(&/g$Y7hN'8Fxsyk62r;a7t|hMܤ`x,$]o.3%wh5~~iHh.j8ҧK5"M:$pc|CWi`8DŽޞ/6Q(FXOT{K:Jc[QػBA +;RRQyY[0_< +0G[`LbQΆQop,/)A1l*.8Z_ 5Ma:^o;u'㳸d<;IԠ%m{Xf7"[uܐSp;8Wvyb0HY%ĵ!: 2Y"9"==9&W>π28"~I,;AmΏaZt渤KSmi9LSY c73f9}PbXD1AT _(_xmO zr5Xik; ۣ0z~Sz*Gg$3elvQ " w^B15f‚<戏U>.赥գ9QOB 8/_NL^06 q|6SuEQ$HWZ-PkqN.w< Df2Iv7lFՆNoEQՊMɴޘZ)gvjgߪ30h?HO]x9 W%P/˥eF7I|.LObb'n1 %'Ϯ~ʬ4sk!Z> ȎY hqhdBׇvpr;;Y -/cO6l "L#^wy>-&/;%U.XS0EnN~QÛVQjBیVJ0ǖ=[:t@Se}AF/!!-#<%gkъ[B*u}3l1z΀@zڈ =L \tJϮ | E=L{2D9dY{V :_T*O ;ւv? DthD@ɻtl ,;6J2>@0_Ŋ>,6 Y+ͫK@(yfdXҰD]nS!#kK'oA JMB vh*ӤP iLMh/:)6jzx \Ȕ/",zڔ\^yuN| M$ | T@T{Լ~N`(퐜vG\{Mb2i'? z3W/ DirɽzElH t|N(NVP7y*ðGNue&|ؾs֏%M܁[bVEx ~ SF,%S  @"eP*.\p=39m.g"&i޲`auzpwqe W}qVfK;x'R#M7GPe<)7^hKW+YI03to, Ei2^~H K _v p-s2S{ J0F: 7BǪmro4~5M('k5>j)\q^9^=1Zְ;S/SZf;V]m<Ή|(\f2=ŠpR1 7nYtwAI=G-'fq־mJ喲1w-c@\Yilhc C Զ | _z+vu  CSWFy㊜;$ vdču`]kla(t8Ɉ"[oüPbC[^twDgb0˲%J,e!=%|؟p>YDE7m#2뭖Z*?:'FV`A!y `'ҁZdq11PSYVǂ_D) 8ܙ D},Saj0 Kܽ԰1h/K<UB1D'd|iҀ:87Ml]fn4 'N t,e?@Kx;ͳ_|L8K.Q.PDTWŭ_;thP4t6m/WN,"uDRU~}%tw$)_F0mM?slM(? _zoi'`&pDGCl *[F1fYqn}b;ЖO?0+iOzρJKh|a拝 ;,<U$ݤ<-niC7mhz&h)SEM4J$?̋f`"1&H`Er=@.:@;JUM"KV{Rw%%X ꩭ9[jqRq 嵸AXyxtjǙ-*#~Ie<{,vr,ou{7Ax-ʒdhnٌ): zv +r֬t'A]bbzdc0q7H#(ӈ}ّE.[./ .9bc^r:mF)3߄9ó3,J9]>b?{ƣ5;Y ^w@sY7MEC :8l j'Jn6܁ 1NqUtw,D9u'Rfpg]WPd|X! JkfNk:*ɶ7FVr@?|9I| C- Av9 BQv? l J*G)gx @u|Cƽlt5۞y\vC-Y] dRCwMmc^?43EbPO[CL @hsF%Qu)>O U}l2nFKggY2*7݉bav_P5"bo1׺5$V>%m@A^%cwNV I443jUuf酏22ɯ평1΋&H49 $ܷCkr X3;Mm:2 ~X0 ;L,՗*jI#hkAL~I*}=vVﵩ) (DE/*:֋P bugtvH,_I Ɍ5J]/Uhgb; }! ~ ~hB@< ;/$2~#Jl3'gTh"hD4ێ F6ZwPrwÁp8?6p0v' (/s^ F"o~X|mJL_ O; rf:}X²XĠqaB7 CL,30FIXs'}v tnW(?gm\ؒEl/gWY{י \^~X ,eKwaBz@d4kVZS*[c+Q7_t=6o#wici;<|.!x,XvLY6&!VL 2Y<_nMGTGR<)G+ܼC؂BPjV7d"$ibCP/36C)>Y2c/=>,ߝ^^em=+J$Ԫa_L"aH7 Z:jEꑬ H|UdSuYa% xKN{#Sc}F&WE2v]P$Zkb*-q3sI=ƅƆ)eRniX0+ӓbIM+GJ9s+aoHXklYDg.i!cO!&JTJуaqMLWb{bM QaC,s< ϰ>jD X2W)XhN/n1P'dXఛ>}L,!I<ѫ&/Xؓ]CF_&ϋP{Ê ̏܁]nJ̬ k!r{.I4zk` .ה$x jC_tO ͸w|c"3{oZ&O` K XkHȆ}XQ +~: }/؃A5ͽb>d?:!dU ^X݅}Fj撗]z4ϦsZ,1oc@ɜU`d#ѽx^hK L(IR>$TU*B7Zcg3d?1X^*ؗ UK|]_bTX[ܚYt1KLa, կ%yOsUz^M{es$滁\U67ݍE}VwC3dEH{ev^ї>XK0_Zf$֐ ነ NpTΦ b6[c: 4mR<#ku;eadI)ʀv,ʘ{LeSەq[PѻSnϏePAshOjҶU{ʽV6j_f_VY('EGBlaX$t-ZA*8*9\&(# z )10 O#QBAeovD~*҄ΥU`ӡs-wQ qKj1*n+Z"#n7#;.yM+0|Tx:4y|a椄齤?x {*>#ړN/mA!HHd)mlNkeLJ@*A/CQ:"}ӗש <# TRPPWu.*d4YK̢䃶Aq&c =0D?W1δ,Tp &6~]K7wi#&*!@wUt+Jbr8="(0xrSz#0bf +hU#m~> DQctŒ` k񟸅PԓWc7psʮc`C()y$t#B?ȊSLrD792:仂^Yf<Q aEMh]ZCYuiTBcbJ k55$7'JƸzÎw #?4Un֫ӾHxgAt+d~ͭkA0DvB,S cXQXs p8$J\2'Y!?6_~W߉$1Bϩ*^/9: O؋ /A 0 Dv[b&v.$8F،ɂzG?lT&Ral>,*|-B]Aa%n+"@mFg$:-ܤDX(b,:=A0CAݸ-*-95qeXKi<͉?jJa }00+bq0BwuΨdK}vc~ A 0 D\!q7i2 7Qhȉ8><7"UރaPB!mϦ3Z:/IE%ަ*eȔA DQ ;MP:eڴ8.*A@Dgt* C/% 0'si>tdʃa:ԩz[bِl<* S&I.X7A 0D.tY@D۵ǰxȋ @VHBdӕ~pH쇬QCH _G x#fwlݞ(ٖUUq-y8ӡ0 CnKw0N/mx__˺K5S݋szV)K7(4dnl Ò x=H:7pb>I< EQXLFRو׊m[ԕ;THz= ǎ 5nD:?%V%`6!P{md9A0DQzKHRF\Ho D; ,n23X.y'l[ma4ԛlޯ"YU9aa} ,@OԌ#V"AnA0DQqgL!J[6j0.o?2Q={uNך7~*f$v5&(0F(697Ӹu9VbM.mhI#6 !LXS? VV,JFU'V{!~ڬ6MK10 CpK# Q%$;5e9Np<ݩZ;(̈%ǻ2ϙ#^37V?jU'X>Q^|kޤz~$}P(dd<A DQ;MZ H-NdT`Dah%҃aiv\Cnc@×p+o. تfܚwlV +DWb؎ Ӂ!Ai{x?(X5DoND_eUeO}zX^M-aąv+`# dp6a#wup[Ŀ`R:! BQiؙ Z,{:"c2N6ၢF2AԱbX3Fy;`:a&[_ x&Zi L*0uKvs^ a/]tS9 0 DZ|lAѴv$x,fTjbڄ3:| W z}(N R& qtСvLo 0CtY)U*Dqx~,e=fΝxɽBGC%Vf {"ڱRd3\ ,&81/t<Ң9!V؜ 0 CѰQ#oT9W4%{xFeFa8US,jQvGgeWP,6g6PZ~F2q٠f=nmG@ SA 0 Dv%bU㐤oS74"cz7q;$j"vy!:vs" n1(8rbGiy9J[mZ?26]c`YOױ5m˱10 CrKWB")qȀ,#@CU4*.QFŒ+8P*zjvvV(?lq_(Z͵d˥"n2o2oӁ ARh_۷v0tPml-> enC+L;!f(K%S$]Nm^| ۴~~10 Cfa7qhxT_uUlH$i6@1aǻu'|F J>&-yҺ0q3YyޡC9s{xn%Q!(1ҋ At@5A}b(3#1( H[Y T2WdE>U)t"-hE1ҕ`@tD/>Hv^# ,,$h DQ?mtMT<'.$&R Q#MJ8jUng?XZcQOh0IBԾùUH;lZb܈rE[Ծ@o9\*D/e.I DQs+D"|QbHΟ;" ٸpm&T#\}({UEL6]k R2fUJl|s:K PzK{:KXA@uf$~¼ 5טe-olޱ\Y}],h+Vɩae-dgɹ|TF-ȍ~eCn}=A DQm!io Q2M f9=p` 2(9͚S. O?Rmk͙ F8StoOa2A 0DQsKwWh oMQ% W]by?oq5D쑰WZ IC0:-~ |5 Nh#W9 QL)]P? ĞEZ vN=^ڪq> hAQo\بdI$iRUHX\xjQ8{:;]vtRrV DQ?UBQA'zBNr"@6gˠl)Jd cTWL|NFF8-L3VQ*9Z|3fYu&6xϱaB=}A DQ BMņ3EwB2!7d*T!A1nb}%Nv?G./RfyA⑮/N6Q5>y/okлA CQBMJ۹PۤXe/!~<Ŷ9bc{5¹fwa嗺R˾G<3"!Sl  . F\4_־4wA0CzKtSG p _})TzLke׬' pԴ9vyoWjN&H+*?mkE_>nBwzL\j^ ~oA EQ5 *軳~ C@avPlBG *U" @jkѼb~o2ѣ ARm(z y:Q0yK{M`mi߷1Вu 0M";* +]5,K3utϦ#9͗DsrO1EK7%2FgH7UAǿ21 AS ةQt>;hy:n1t8ꮳ$N;8+/relmG[JZ TB3,yH0kËXxA DQzKp݈Logbgf @U_@}p:kl-Qz1+ mfGP"*g/`W>A tv!-)hK'sr=; EQ-2! xIe W6/I I >눳;r4o "bff99tG%tt榖-}_cdNCckꔋ=1@C_KE B ٵ_Q9 ݟڜi7 gf雭&\*u /K$]&7#Nmyk1SfDh:"SL a10DpKYDGĕ3ZKk?HrpaoȀNT,a#eЂ# e$>KQIvGe7a$d z7^UIcqlӋ CQ.О @\y%Y޺hwf7vN O>";v[gkX<::tEϞ՛#2!sJvR#v;0 fE]+Ms'`de߯#KH)Dx}Tn۳B"+T)ibzu [ޔZmA0DrK7.4cld+M^8;>fݱ WMHUN=UFo{xw'{?-Yeq%7E}x_PaAfc mA DQݸ0$Bj̤\msX}:"+&0Y}B bM8D.lnu֮2]E٦]?w"l|5ˁȾd4 9 A,K=+s䡡5zP+e_ 9JvqHlCkŏgnѫTR@TƇLXpOuBc ~n$0P*eA CQ{Kv1b7f8Ȗ0hQli 6A&-Sʄ~xVשp1 CQzKwFjD!6n-kpY Ur+"X߿_ `mhC_sّBɧw xڳϦS-obuꝴNvG%7A DQ]3+bbh5>x ߊda=fp8 `-W,e!3]bEl6,;%v ?9)^0?gjKDI 90 DQsKSсh8z,RDR/X+Mexm0JNnUV5/Cm%qCɲͲ,([;Hs.yu+4&nPp޿ CQ6qḅ\N[Խ``.]'ݲٰ(; 7]Tʪ*9uz1 0 C([Cڒ0#?Sޙ{1m]V(ЧtKJZk]sֵxVDjfgcӓv&3p90DpKKY`•xbz(秼d'wq7}0G $`YËU>kZ2K!.yErXgÏ'+1 CQQ Ph78 & ?6m8_N8T#fXõzWdK[q8ٚO@VTs\J`3|:iHV 10 CfaCBhC!1>K $u.к$KvR)V7b ?bн`!1tc h䗼V{O`$^9؂ A ! CQg; 2Ԛ4֎WհA.5LU+Z^#իW%Glkv?_jAzEZi{p.y60{Nʳ+gVͱ90 DQFB4(qxl3#;@3njv(4H|!o-STzl񍆄a0%y~X׬ I CpKWݰ+L;@k]jdrâ(1"?BIDH+Yd3J7o,|p??iJB緋`) U OQ2<A@@lbT\@A DQzK5& -  vJj )_Ca`~d4i};wv $wj-3WZgLj-h_҂65|pKaF{R=Q 0.=@ T8￰:FfW}~EzY:7sOCkmB`a"'ͬ&蘂X++Iê@jĮG{A DQn)B "@ZC"l $"Ş(.aI&Ud/oel}&/YԳC'?-g۲VE}U D" 1 CQ2Ij LH;c`k^=1[!qըħ2Gv‚v7D:>r,r?R)4EMW".f C2VL&6?* )0 !IoűBl͸%c* A DQzK#Q㢤ȴoa"!q .ێƂ"T=(w#MKٔ\(FMXRΫq{p kȨ{o?qۿٽ%(H]bw+mX]1 CfPTi`uYϭD')>X2tW ˢe4;6)ٱ,J9ȉw'OxH To%#A@CQvąFv&F\P8İڎkZWLh]k @v3wD+2  ٧/N-ҽhgj!%(1!Aͭ D9e:1Dh.V3AA, 3g \sYogwbp3/1+"pPlP2pbk%o}Ա01ieTsUkG` &Lc1 0 ?U3,]aaaaaa}1 0 ?S3Y 1 0 ?S3YwA 0 տ(r' ϼcf) gffffffpA 0 տ(rg kf9effffffp1 0 ?鱨*&/Y 1 0 ?鱨*&/Yw10ӕq6۸=00000010ӕq&ۺ;aaaaaaA 04.wMs0]1333333xA 04.wMs2]1333333xA @4*Hz`@@@@@@CA @4*Hz`@@@@@@A @4&H;}?lk A @4&H;}lk 1 0 ?QM9.<1 0 ?qSM9.<1 0 ?aUi9.<1 0 ?QWi9.<1 0 ?1[i9.<\1 0 ?_i9.<\10 ֿsЃD3 00000010 ֿE\̴^g 10_l i.i10_l i.I1 0 ?i(zF+3|000000 10 ֿsЃD3v 3aaaaaa@1 0 ?_i9lk ]1 0 ?1[i9lk /]1 0 ?QWi9._1 0 ?aUi9._1 0 ?qSM9._1 0 ?QM9._A @4&H;}^._A @4&H;}^._A @4*Hz 3000000kA @4*HzK3000000KA 04.wMsxafXcffffff|A 04.wMsxifXcffffff|10ӕq&cn]S10ӕq&cn]A 04.wMsv xA 04.wMsv xA @4*HzÏf 5aaaaaaSA @4*Hzf 5aaaaaaA @4&H;}~0]1333333A @4&H;}~2]13333331 0 ?QM9hfXcffffff<1 0 ?qSM9lfXcffffff<1 0 ?aUi9`fXcffffff<1 0 ?QWi9dfXcffffff<1 0 ?1[i9hfXcffffff<]1 0 ?_i9lfXcffffff<]10 ֿSЃD3^g 1 0 ?I##6\d8cffffff|10_l hxcffffffq10_l lxcffffffQ10ӕ&6޻.@10 ֿ靓ЃD3^g A 04;(kfXcffffff1 0 ?!]i96]1333333O]1 0 ?AYi96]1333333\1 0 ?QWi9nfXcffffff1 0 ?aUM9nfXcffffff1 0 ?qSM9nfXcffffff1 0 ?QM9nfXcffffffA @4&H;}xgfXcffffffA @4&HF;}xofXcffffffA @4*Hzlk SA @4*Hzlk 3A 04.wMs`@@@@@@|10 ֿX\000000810ӕq&ރu0cffffff#10 ֿX\@@@@@@|A 04.wMs3000000xA @4*Hz.cA @4*Hz.#A @4&HF;}v A @4&H;}v 1 0 ?QM9`@@@@@@<1 0 ?qSM9`@@@@@@<1 0 ?aUM9`@@@@@@<1 0 ?QWi9`@@@@@@<1 0 ?AYi9`@@@@@@<\1 0 ?!]i9`@@@@@@<\1 0 ?#Pi9`@@@@@@<.10 ֿ=ЃD3б{]133333310_l @@@@@@X~10_l @@@@@@Xv10_l v 7aaaaaa10 ֿ]ЃD3{]133333 1 0 ?#Pi9kfXcfffff.1 0 ?!]i9v \1 0 ?AYi9v \1 0 ?QWi9`@@@@@@71 0 ?aUM9`@@@@@@1 0 ?qSM9`@@@@@@ط1 0 ?QM9`@@@@@@wA @4&H;}`@@@@@@7A @4&HF;}൙`@@@@@@A @4*Hz2]133333vA @4*Hz6]133333nA 04.wMsWf 5aaaaaa 10 ֿX\^g 10ӕq&V@@@@@@l10 ֿX\v 3aaaaaaA 04.wMs_lk ž A @4*HzffXcfffff|A @4*HzjfXcffffflA @4&HF;}w300000A @4&H;}300000g1 0 ?QM9of 5aaaaaa1 0 ?qSM9f 5aaaaaa1 0 ?aUM9f 5aaaaaa1 0 ?QWi9/f 5aaaaaa1 0 ?AYi9of 5aaaaaa\1 0 ?!]i9f 5aaaaaa\A 04;(.=10 ֿ}ЃD3@up 10_l jv 7aaaaaa{10ӕ&8cfffffP 0Kf@w7J& a0@10ӝ@n@ L& a10 ֿ`{w g10 տ9;p@@@@@@Eԡ0{M]Vfvp@@@@@@%ԡ0ӻK]Vfv=p@@@@@@c` 0>#codec2-1.0.1/octave/H_128_256_5.mat000066400000000000000000000027701412132000500162270ustar00rootroot00000000000000MATLAB 5.0 MAT-file, Platform: MACI64, Created on: Thu Jul 2 18:03:50 2020 IMFxX[n0 lβcX=AzPcR3u~hwx%#3&Ň9<'kyIg^] ,⳸cjŦ{Ɩ%<*ˊXeP5Dn'mqb&WZG^4JY ‡h` Aޑj.gpD$ %U! .P֋hmȮA0ْ0ڥ=\ff |c3r8NǘH dXDφ`2E5`lԑ'I~vCY](iI!B|=+ ۭ8ag:*jGN]VGqE1VAEScDS9G_j~3_W@á#sg( U5^1FuJnB3v!)X P,ˠtEC" W&39RNs(*tGWK _z6fUT$kc/b5L݁P`B٢tD軳y|n%C/Bh; 3s9)|<m޻av$JN_ЀU|LH؆9⯊_.3x!CN0x >GGpJ#'Wץl%hcJDjF |]8?/&Z8:O^]"AD=bsC~b@t3{[j 1-# !óXsuUe{:hv#T{YG{vN` hS8uٚQ9HP*ΕROqj&ƞSBefDgOVăB]zBSWF T` ' 'LE4p}α ð81:{$'4 0o2HljGcc` 0S$xc``0b6 31#7f @2$xc``0b6 31#Cf @7'xc``b6 3"aXxr~nf3~$xc``0b6 #3Cb^1 @xc``b6 b`XJ3TH׫4G@Ǎf'xc``b6 31 CQbI*'T9kKcodec2-1.0.1/octave/H_256_512_4.mat000066400000000000000000000062511412132000500162210ustar00rootroot00000000000000MATLAB 5.0 MAT-file, Platform: MACI64, Created on: Sat Apr 11 09:23:05 2020 IM$xc``0b6 31#7fa` $xc``0b6 31#Cfa` 1(xc``b6 3"aXxr~nfi3}'xc``b6 31 CQbI*'T9kK" xXQ0%<'rčv-%+W!z'Mt,gMa7pJ #iO3]D j1^ E0"V ~1Y&؁zBCތ;7:V&6 ]]S'7=},/YQ0_}i^t0J0S-dDc .TJj'FM)ІmF22&ET^<.'|5PBY|wV&{@,A_P `;6nɡX=ׇl1bKmQĪ噰 t{l?(y}bӢlcCYuLACnk]+]Q%'uzuP8𴊞6i?#Tާ4z *<s)ױŃe?I}Y kw٤*,ZېG yuEJш=.S|F̌śM 2"!B'Q ׸P?v*( c6F laP*1eǕdzUchBȄTY] +O/Z&MI*/aW6 Bڣ$Uo!+3u/ Ҭ&Ufw;A@)3 1 q +M96mzkJ6?Kb9b$i풢`݂mR-Rɶy đg?wOЭ2'0|j?Xw-˫EeGri(,9ScņcXYjҧ`CcԟXA0ڛ3ZB sq$؅<}bA,x5(|r@@4Z<4 [뚨(R4OJ^ / MQٴ)VySDbI9aG4zP]^?=#ĠtCױ W~&`sZE@ft $gYmNWٷy7RGCBROOZ݉ Q˶,.^P)q\җ(M/Ap/w1vOY] 顩T\on_BٕГ:hhvCUH4lbcfP0%zyU=6yQ0JIvVYD:ڨh~8r@%iMI.A+ .mM%N01,0^@{D2gX]fttcerVW;EW_HQ26h3mxhF2GWW9۩RCݠ~~/pYQ Ǥ6i>! P@uFXmsC=P>s1%/<⚤4F3Tt~Xֱ$et@NcKkBhZR;$n@k/u?O"r}쵂6rպȽ(Mf}>> `"wekǀ9(yۤIgUYJO-6 28r/De"G̵,fb?H̄ 0 fC>o0:grK@?~ @.\p@?=pЁ 0 ðwE!蜝f)\p@?~ @.\g.A0 ð?鱨 $.p@?~ @.\p1 0 ?鑨 3pppppppppppgA 0 ֿY$ ٮ>>>>>>>>>>>A 0 ֿj`$ ٮ>>>>>>>>>>>A00oz.c^flW@@@@@@@@@@\б 0 ð@v4z2x̾Sp@?~ @.\p\c` 0%@xc``b6 b`XJ3TPױH@ƪWcodec2-1.0.1/octave/H_256_768_22.txt000066400000000000000000030012351412132000500163540ustar00rootroot00000000000000# Created by Octave 5.2.0, Sun May 03 15:23:46 2020 ACST # name: H_256_768_22 # type: matrix # rows: 512 # columns: 768 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 codec2-1.0.1/octave/H_4096_8192_3d.mat000066400000000000000000006144471412132000500165620ustar00rootroot00000000000000MATLAB 5.0 MAT-file, Platform: MACI64, Created on: Tue Dec 22 11:27:54 2020 IMxM@0!V vmt-40vfJ`hV5H:Ǧz4&}EV\@b6wo3QY$RO Ҏ1!jӼ_ ӱ CA, [FRĒ~5WSxٟa9\DF 5=Xȴ Q 5|(5Z`m< t. A @gT0s5&r%ԭ:ǯA>< hF B?iNA0Ulv1㤿 1!DQp#A5 03F߿AV(Ere'?ڇ(,awr='DM&jP CQiD,:lMzTPo5UA|ݧSBx=DNWѩ ̟&oT%IiEY/3F[[ ! DQio" q1&`)&TJExhRӟ # 6̆qwbfo\kث@7 ]|WiA DQi+KL뿭֔RTM7f1v˃=K(vU0`\BXĨ|/BN#v+b"X:|\J AiȃANȋ5.?񏳓Nn3F7g4BmDnh<A5NV,@[=[ DQ'(dܳ'/[@(6=t)tI ˃ jWoW%s*ëf3MN>t\ V}K DAi)TȐ;+4d F=n= 8,:%% `fr)+qo|ஈ-cU$~zW9 CQiY$[ib535Luoå_Gm}0>aZ+*A~<}*ķ(:JO#%\=Wx DQ4c0`ΐGY1.ۍٔ)$5RaFdM{xϪ9QB7^ hrpcKYe_ReԻDQ5"QYDfd)fǣ*?aHX  2 Y(AKHN0r9 CQBKؓԗ2gVᶜFE]ͥ xg!_>`]lӂ`{fJ ADQ}KKlHVlvM*0J#`-[?|𙹚)mo~dv;N㘍ՋW{뙨65e,9ZA EQkiRGݑȭIX?HuXx'ס4Qi[Ȉ3  V㌥52>r¸sj/JS+A DQ,-L1 mk|y8Ԙ"Y0E'vm[Y,nAsqt&S@#O<k#0b9 CQN41fBb * J'Y;`Mps#u.DP ;^Ĵy$,%}&T1Y A DxKw/D.4#TC8⥢eQdDxQ⦢Sظl7h4|z0Um8Tרpyvq DQJ<eZERB_ 8@Iś7nL )#E)`^eyHUw-,/<8&47}M @i qP@IqqX{絧ԫH w5uWmN3\&Yw3٢'[&DAg+NA zK#B@a`. Xԣ_}mmsjX^9=tD(؉(&9/vPM 9W^A DѺłTU{I3=PFuEu$-K3^^ߗgKC(+#`@WSI`D(ADQ鉝L$] hUZ)W;*RHZ:d/~ ^ "bXaH yX,G}0_`YkZ 0 Dڅ tayLud:E/ ,'e(}R]Qȧ$ pD֎#s|FeTIi{ CQ_Q mJkXd*=0տs rB?!p/`ysX,ڠ sv7!ر ! CQiR6_u)]ZZ(f_@tpĎvNy?K$cyÄ>vz9dU_45 \B1 Amm1n9Lm5BJ:*xbW:Yt'n7{ST<5dӶ [  #A DQ]X]Uې!)bušV^$7 b_`-:c߲xa|4-ΪeOa&aDcK @? f"fv/|8<@'DoN S7MmQ%L:9{pux w%Ct ŚrkNI!DQ;&.z( Zs[0ypZ_ Vf?ًaՀ>2 `ɒhJ.O˼4  [zqD}a.xLEV\4,L] k2']Ў om*y62U1S,D8RU=g=o`ȫX-$4:QQiPi 5\Pa*x5|?m_%ESR)2'Ti\Ɣ )ɡ:GOC 縉8A CѺm,2zd"!4e*,8tcXh$|~/D~g9_/Wnךr@1 @m"T oPX!Rc*4YDOt =PҌ: _1^.mt&R=ر @קmл%H @9rl‚[HSA&x:[?:]>ps?!w]\.=%EvA DQi B1k;%Q `pܤ/>j ' DC lj^K-u_-%zCN ?Za5)~ ; DQM[Yh̻ 2!"kR- ) ;?ͪ[c߼8Y K qԹvzHk?hNHU{4C,c A<$ki R waJނ 5f2G!,^\E(F%@*%Ȅa |A0QzKP[t &pn '/a;MiOsuͳ.Zў.+aI;Qq2QFòo/ ?j";!EQ'6d S 5Tխ P"|`.tGMH@UJ5(묜aIderKƺpHv4ԋ DAoZ18(jv 9?8\uϟέ4vpXK<[NmR<$܈\H<=V ձ EQ"P,C#or{ul+ S #6rrYrh#nb+5'6ҭ-,84b7 !EQi+0&{Ef-_;W>k ĨkjIF+]'4)b$|L!>`8l 1UED WE!3 CQ^Z)B4` IkO[ RVdK{gm? cB) MxX)z'a[BTC#sA6 Aiè m`jC>?9eMCIQ#XPb0ooP SX#)#\Gf*&l1 CQFfῡi-la/`p}ߑ Z X(edO=h%m}/( JLQuT׋ CAiWSʻ 05 C]_uc.r{~w :m 3bTyP ʋ< $1 CQQ+B7AК~Bҟ l\4""Zc׉Udؽ+$6V*//x̨Y\˹# H#A0DrKqabZ ߎt31`.AD4U#-Ds "N-N e_PR]QA0wŹg+Oa˚VnA DQi["$m-j~Eز){>]9 H'~(ǧmt Vq=Xy+ɺ=^uA DQsKwR[dF"N8FJ mXz%,F :pOu/cx2!r9b}(nm 3P1 BQݍ67hkkK;R`JT!#:!V>٥"G7DC8pv =D~o`_&`}eԱ CQfua(ZCwFlCcb(eUbV>Kt,4r1j 5:8ߙh*Z|pɪSm^ᇉj\:3;.O10 Cf AT\7Zjw}eAt +9r7uYz9KooO74Luy\u Qi+ QBnYt0o/.:hw$yTLa1:#foN*F*V+IU&͊lA DQi+;J濝o^#O->C.FW'`BK={J#/+|tDrNKKkmy;U71 0 CdYPUPm8nKe5Y]#~N񈮸7na6B޲_"!jNcRk b8:)~sKvA EQiǔIMj)Wx ;*X@jb2qskO)C^dTp/Gfuw5A DQi [ADM3[ \U`:)F3^u:7$P[ҷȃm˴wr2e9XTט"5A 0DxKgEDS BukEXV% 0';²#z9 #QC zv!6B ] #*%}\AZu̽6-g CQ=r ZSd$S>`fN9X(_GY: 4S;jBkx԰K )(4p4Fp\ۢI('+w?-/0a+0bȣg 10 CBTHNbZ[|:<٫+rEMN,\$%Mc"QBBdLȆ~{!} !? CQiDplT{^- yK7Qx:9&7Ce2A9XрBVx<2A^{~i>`زad'~<  DQd#JM랅؈ҡg!l4^IWd-sq%>|ꡃ$u2c?`sRLV͉ A CQ.i[qht$J,<)"3bl(}  `A/ "ki5u*@0~3vv+3xB 0CtsΡ h0ˌSaXB1G&ŸPZ\,oSn 8kV>ϳuv U" ԅtS P4Jx2`DT<2ˡ%TnI/42Q:Ԟ A DQi;h)]J)$>hvNQpՐS |~j\\H< ٍc>cwgK?|3kӁ !CQi'xZ@aCWCW]a( Uѝ+f4{H:o1#C^j4sK\3ozpI>A*>Q a%A]@Zp 3Ue}3+eG3{Jֱ(ZEѱBgı:|M]`pNi:/}3 X w; Q ~fjt[b})jQ*pf)9VPSsEzm_p.P޸?2'i^^F Ӂ!AiKQO-?`jK»g W2Ok*J9g9]@EUCL DQ3d6_Zwh+)i{fUM(2tGCg>Tvؗrb@,YgA @Oړ&Zę"1p5(ϘG;د0/@`dҞͰBR'!H;?1o\d>m`cl"KL7ҁ Ai' D V"iHNd;,6%\#^+8!J/4vȻl@G9); A|K#Kce h ';|3#]@2*KeW] %p =5rHm'f,$o|j%nEg}sBDv-^3;},MhUxO-B" lkG/1 CQ\,mmN65,'GtQE,< NkLݱ[9IJ}\羯X* upԛ((ÂxK@DQicgb!]Z=<վ Go{ T4P]pFM)pWg "6ʚ& }I)^FG4_a=J )aə9 CQi0Ĉ濓7cTW.S*.xw1z?P]=P9:NqrnsuUoGɁtX1 Aml1`׀aoxhnn# bpWmIuN)_q+QW:->vҮ)~ 1 CpKulq+5v'hQȭly"J@ki`E >fٓ0aeZy/Pq} DQnҵX=4FڐYpv7QmYL" bK>~4 #>W`_Եo`s.# `/+sA DQiڴ3 ҅wfD =LLPm5~|!YaqDqNCS衮%h1 CQzK3GJP!vȂI'?~ UCb9f)siieAQ)@N>8b((6>6b|Bԉ!CQi+PJVG}̰l2W3xh Hxy%!zPe-vkGv<9ܬDվvf抜<A CQݺjdCJ:stOX$owX95gkk\xQF)gZ,Z](k䙤8"p Rz 9 CQ|KSH/r_.HZêZ;[8`N]VlLuTs Xe8. WI1k;mQʘ816A DQi[ !j)Jq)f 0ƣ@=ԗjgINHāN/!p.7SiN\B7d0- BQɉc*@P03 +^t\\o#sSCK l%Ci+. $tA мh88-jeAI&7RXҟ5>&]e=䘇 )TW:, YK5 q_ƙ@ amET ;'9M6RͶ5SOw ;J:\c1S6pBwuvc)AhGX$qA @(A:s, A2ȿG `ȋO䡙Au'ʿjs;" tR^If1!DQ[7!U,LF̦a[~n]"lb BXh+cJ%$hAӤMU|bF$JKy{Q@{KUv"R lM)Sw1]*d!c# e g&-%ӳt%NRXQ @!DQ}AqT;oLP4.T?&{G j:{΁  - 4v6g/U:#ۢufLp܆!ӫǮr,A QiK4_杠(%z{`waZ%"_ҏ'U|.Ypg oVk#U&_2p@`sEn2oA @=/V2sai)kaW 3PZyE|Fk'S#;*yäNzrY*]MZ) CQiML|[ 3@Z=O}>*MD-y-#\hĈ1rNjI fW&"'I!CQvYC["[~l20#-&ㅃSf=֏?ZX9ZHxW֔Fh7ub$'Yj9F)J@ EQo"FnH<{ 4 hp'y,N[ZU.G1-{۸zoEk*$_I ߈, ^RNa:jG<Q{#Fz O8|(wd1 CQT*TĀZ7@VYia,1Œ/bC7"~¿8t 1 CQsU!DS翉1vBk"" ՞0i&LQ^$1`!f)@CyxH*Q?A DQi[ IBbEOc VjIVƗA-&7D"M,VSFwp/Ϗ"O%A DQi`*V2ѝ/`+"Tol[&¿=ޝrg/I_+_LRz[VDШ T큈qfbGq1 CQi-gIL-JY%7lC'@r. ` ~vv|@ ՛+ S {PԊ$@뽪A @)1hљ&r`1VH_PIQ2`c׍S @ұDG#=Lh[1Ns; @! DQM L 4Zd ฯ-ƻ)'kA~yS\g@X($ ĀѨ!^d{m* CQiR@[oZũ$qץ80};#%ׂ֫=n~? )}YCţc ;0>1 CQrK3€HqSU\;|.ZHͦYzPG轔RTO,O.ViM$0hc:K DQ8>] T-11(zHA>4Œo&"~ob&%ZSieU!-X+R@c sEnZT9#O"Us^)kuh[48=7/E&0^evH{?(OF ]b"ך}\Jj,}EK EQM#E6-p(1B4E@rb*NTd_P?JY$2 Bgp!pF%i@|61:a; CQ霸 "!_5]KG%PkO]sO!b&&ZEq1 ]\JҀ`g}= x"8"1 AS w6ZLO4b˜^ڙ7X |G1h"yh%əHP>R\g.!CMGtYǣ嗸 CQ+!(H[ZoXQR LW%'ߩ|@3>)߰1U;ҹ`;xrXc2GG,k 1 CQ@qαq[}X kgv}|b8h;E`4V!II*JX^'J>I rgK EQm=HxDJp5FOq19D:zei"mQK»=w<[Ǐ'K CA{K{]7+ET[8<+ƨ:rt"-d}x09\RGBW K? HZerv1 CQ;UbRR(unȴIT/ϑ!j&LPk +R`$NPSOu5DT{| Wa!k#3 1 CpKw`CA@m8:|\Wh1 CQY!i[4Zg6SzILjXɲOfݴ+χ"^/m$`(kA3b CAi;Dy{$~f!GEeT#-kP˃lc"IysK|k/Ml1 @:m,!1 UI#3ԣĘK2OzTKs}-ж،O8p i\1 DQ "6$ueE=F֬'뫒l(̇h*  +(|" $~"fP,X|^xMlöTEֻ DQ֪0tHRpLdzbso>'OA`%:'<xjoZr6+8N۳gc|oU1 DpK;6vLAd((K8H6^LhPZ[hp⸭MH?dʫJ` uZNY.C]w;&gQ1!DQ-,D# faE g@pXGVD%ʈhh=YԱ/彺KZD;D|"cϰlC|̻UK@ DQi O!1y#yQ1x ^m:&?n=߄~NԹw|mF] gGȾ"kzE|VxyOHQ @!D g{6~T}GHve=j\>?^k7>+<`1GBjv-cAR+I CQ@[u*+-EJ5](i5ݙq&DtCd:FY&U6^>ue#`%Q aveUf2*Җ*ݏ0H=i|sA9'MqhݷUnBh N_<~(k 0CQ=Ujoo*0aHc~GtZ+=3C兟(|=Mp0*U oScy_Q7&2` !Cѱm@a4&]0`/iԦaR!3$#3,麱_}hV {5+-.ʾwZ BAi !Pգyvz?cEY®ͨ k%JVd2[ K@zn>osΔ(\ndӁ !CQi70&ozLܒxf4[c7H*ԣ~\Q{T;:$x}rp1 @-qD[ )1Z.hqm>%2C iP5m*3^c0^FOd_.`[ۆ{ۇHq:sZ*S>; Q-td(2F6Z/g+8m;9ι Unn tzӲ/%Q ;IQ[0Q!:4I @s DKU7!`g-,wAQ*:tSwy'a0B 30 KLk A`$l72p˙1 DQZ c6$T]`I'>+uVtxSoc_r7 . 1AbnL&ƦC.M^ B})@ DQ ,*F! m;S0&c6Ӹk~*N7Aq5(scC}`w] AoZ6SOk2KR^xH.՝++͞J(Og 2YRe-[:hø43}cI DQ];MIچ{|݉x>9OFlx:xPþ|Q8F*B7_C)w|HtkQA CQi[3lШNHS>t ǭ4:FqB@'Gr(k][4gEp}>qߥ!#bOtCa Qi@0a[_UKEkgl$[=aI"yʢseEo.^boXt*ZNGm? !?=|mniA O^JQH*3fvs08̸SWBMItcE)Mcj:nbekWB}2rbW=7qc9 DQm+1K)AGpőR [Gه.M$L&)Kx;,ґ/f +D!FWNv f?bA DQ&- ҙtDЈ %Zi<59㧫޶M;SleұC&eδcce 3_嚄V)KDd ر CQ.61Cl|:gQ̄zs0mOR%= ٯKѾ,o: @/LN"  ^mK 2 CAi ">lHѝۍS/$ghn)G;vE\ӜY 캡T D3 -A0DQzKp1)Q;0К!ޡc[5,Qm̧><|xHY8c3j`0EBu}F5!d?bhꓻF;Q DBGa'Zt|}ZٺyVgbaE}2rwLVZ7'F"k"Z#,$7lSe&q1!DQ-lM4с62@:`pppU2S)[(x0Yo _:"(cuńFMji 0 Ѳ|!&Hp 8cD;׸zКejoG=iڣҁ},*J8s/aW8zNA @H"hgNܠRl D, nrwr>iPUݾj<ă 4BJEP?31 CpKWb`E b7bhbŞXh ]}vН9FqNe],B pgZMӚ nt;X1!DQm)F8gsL"C="7MB-0qh.ojߙN=gP D'w; DQ-׻UJ2oIctG6VG H#/سձ j{k ># bA A{GE%ٹp5K  np?>)"rznoZk3IQ µÂ0:܆]<\ DQ?-tՅH$=kD2. ̑U@48՝y?|)Hvًe/n#`I,ѭA @7E ̉ ]`LMYGΘ .n49+e;D~A>@q]ZԠ2"&2eA0DQzKpEӢ|À#2iRKz/fb!{ZG*++| T؟ ;%SWZylw)gTӁ CQiy)bCk?|oWc*,}.y3 K͊/{G&BHhUKB!doJ.w# bZI Qp!! TwMI-zCL]>"^W4 .ڍ6Ml  E9$Hʢs'֭ A @A[*̼.1mԕ>kB}QEI9U(fƼB|,6 vKi,'*v1 @P-Y2S(RG]:[44D}פ9%mhy Vf`N[2zZqR7^ A @=1A(e‘6-%:z8BF..D,zy5Έ{,VL2#=IYs T,d^u6:6A DQtaka[[lrrF!$,[W KҜinCq_=& , *}VlJO(a=1 Q%3+Rf(3l'TCH/A ;:鴉2 v,Ӣp>`p%yMJ4U+:6 DQvkM ,n| Yg8SZ@^}r/$@Zup7TBsڡr; IDQiac) %RJVu{NBo 8"Em ?S`P⏱Xnb'yk5ު^M=N1!DQ-Mpkh b,mT5z;'0A<7&V) XpJ1Z#WV!wOQK EIP˼gO(A-aNx,I!X9 K2JƸX})e`GSlBiʙ&W`Q.un:(EfX)XDDgGQ @!D#4=_AQZn_9PgSVG[=PD 郥u@"WaΉ^ (+b7Q@ DQih{ɛQOkw[\[HOXa9'p͍% JEoS'1fV_F@A Q/(y;VM[]~j^x7JV,=c8+sе㌒*IMڧ,~(e% )Oc1 DNM0p$)TA ( tIjJ|OzuGV`ưa'930/?u?A DQi+Dk*eKu\:Qxn҅tY`lc0fDhW\BZL}|PnJF䥏rzn 0 Cf"PT[8kt";ѩ"4B[^^IX=0 &WK,GFKHQeZF\A DfB!DL W)FRis]+Nr^fƛؼ-4:66TzQZ5?fpfCd-R6l&z5A @={imv eo慿`!l򘵕BG7c'aެڹW@-qNKd|Obj=(ⱋ' A DQm$6$21VŒ R+]!2A݋m{~)O%䥇v˳bh7hW DQ(E/< ξzW<Ɖ߬ߌ]`lUsIXA p:N&1t&B;.VR_!5  DQicFJ)1꘢~/9R/qK|%ф[@~ڹP1ACs&Z)AY<ƷǦ׷u&A DQsKw! `eH[nL[ رH %6!5 Q..h:>/=XSu{$ߒL< 'dBMkDGPp CAio޼(81-OeV$Gvoʇa?ԊK} Z+g'rUKBi*E_(~? DAi Qqysқ,`)Pe SSҚC4^AN/v]"v`VOծT5j2=1 P4RBh`'Qh : L|ͽ̟=V$J~ ;+Ա E?䀉hRj= 1qkUnD\t^1n3xeLl3= տeDMx*t5 j~:l5R @@io:Qf^%ZktCj;[ 1/pAQ`'<%h%ց 00ݰ!BrAB2z:2 % 0@ ZMDȝcM%֮u@_ֱ 00>ЁD ew ~A2+gց 0@_Sһ >$^]v*Έfpx'M1 0@O; zCs4ņJ+.RXձ 00i> $༜`}v?(M^U^ա0@hЊ rIt^=non3ϲTv$ֱ 0 0gRe_D', 5@Pd }ad >cd5G 0@RyHbsz:\ _' |Tõiֱ 00ӬX*@] Q"(Wn 1}:.&j ֱ 01)"ߠe<9a g "jTI@1o>Lutwtx` i p/~ֱ 00>€*}A@"qzfF  0@рwc VT\fbSEl 0@,Q&H@!4wTY[ 3~硵!| 1id>䰊G=7[J @*0\@&?2ֱ @@_FM$!q`yx0¤|֡@izTp U|e6 @A?isXXG3F@>|Ɠc$Fdׁ 0d &oz;ׅH8/&. ֱ 00ؘ* H;l2px6 xᗀ?t jՁ 00ioLTH.(-r:{xe3p C 00Ҿ,TDI&8D⹃۬ 1H`ֱ @1i/ i8QG=`3 A4t H5ֱ 0iw/=fJlLXX̚ĵu!0@Psr*I /c`2rֱ @A̅70X.vd H1MsQ4 0 0@iX&HV)֤<p:C<6 !0@_Ԓ45Dp0\x) D @i hwT}lœa)^ z6A 0@L@6NA>&8|SB,g rGׁ 00^0@1`)Nw "X&0,cy& % @EAoZt& \{"qz5+00irM&Tu`3.r 0@~ I0D%D1Y4Ձ 001d E5G'Њ͒U9ױ 00̬,־ "CDv7uϪ " e7 ֱ Ӝs(KSAEfc%8G=0ESt 0@b&M/N:si>OE` a ֡0A82 pCo: \ؤsPױ 00ӼPh1k$8tb[ m A 0@4 $۝> |P1p x$A 0@$c $L~M>ap"E.ױ 00^d_D"%_(ܭV}A 0@4x24Iҹhe7p%> AjX {%ر 0iO,y  T! 0@nÏ%M@ U4Lv { AoZ!xEa֒ ձ 00i^*n99KA`-#<:. ֱ 1ҌKA 03 !DK

,ձ 00^DD< 4p㰙17b< @iGƤMPȗ1+Ն8aց 00Ӄ=[ `;Ϳ-"@ @@oZ f*pXv`,->`U ON`ձ 0AgA (Xr~(8:%E^" 0 0]"n4@7k֩ ֱ 00}U@dJ"`,@b'r 0 dB #M` nXOtx810@o: 2#pBn5C|>Cc Ѡ 0Ӏ#f*8\0F@Ct$9ױ 00\j D|LxVP0mܥ;zbױ @@_R'wUZn#_l'/z1 0@O 7{A0^g:@[w9a-ձ 0 0ӹSb_ 6Ju+A0ȓ 0@Ҏ BQh&#DvsaY4 ȺF ر 00ӼRb?ej[M#m`(rh 0i Џpp|p8@x) 0@@| *MO"NwHіϳ<Z|1I0 ο>&W0˫^-"p˃] 7N/ա@AiG1 v+DgH2@K* A @_]!c}36@ ;+ ! "'NT7k|' 9OV 1@@i}@LdEtd+ å,!lrAR9o;c|6|AQƎձ 00i^(B$'C\ 5Ϭ4 0@NCЖ M3Bmd3җױ 00ӼZ D0l"Pc/ A 0 οw  C-,6@* {~bfԱ 00i 2D $8$1 Z{ɂ 0@Gr7A:v1`'KqyCց 001D&TkD+% p+ c, I0@4*kWA>$C:ee>`tPvk* ֡0Aظ 0G\t~ֱ 0 Gݣt !2(էݿձ 00i~0`_*0G ;tg{ 0tr?Aq-:Iց w 1&xD|,-HݼfpDe2ױ 00R "!TJIΌȌՁ 00i0 JQˆU^dxdBƨ 0@ҎgP&BN{DqCv#X0oֱ1_Za_H&ʩNX)/ֱ @@_B׻:`|.hױ 00鎽@YR:yM`SK6"ֱ 00P(/HPV L#p^p00NՓd>U04J nC&@4CxA 0@nK b V:@B >=9e\A 0@4ٝ>F@ $X*ֱ 00i~hY"5bEgp0$qm @@ojح nc/g\UG @AiKǁTB"`/y R7rOց 00^!C\PPULx@ 7Xh&2u ؠց 00~$,*dsASoDZ{Ψuױ 0ipM.P M<,>Xֱ 0iOp!-F<!-| k 10P n|DD]6j&` 8}@1 0 ?d*!r_|pda? 0 @ҝ A: 4S;-'A @{CQ]V֍^üp4A 0@4"w >Th^pT 0@NP裢yHb:+ wlGꂋձ 00鎝*/"A"<= `> v 0@nO Hal%gH/@AORs`}Dx=`>"Ihw,DΥA @_K eY j ց @_Dn/|"`S^xB>e*aScر 00̨~ ""r 61}J)|A @_"p` K^h5 <%L/+ 01ҬBkO)E|6|ZX ձ 00i֎ d#g*9FJx/撥 ֱ 0022S,J[@E6= @_ D"wؓ5-cbF@_ @1i[NI>h0Hr" ֱ 00|"}ADJ |L6*b 0@ T!p@`չwc` \Eeֱ 00Ȟ3e@![:r3~zՁ @V,A}#t.3a~) sx*!0@P NTc}|a`0*+y @A+ω0SA^w# uZ4<1@@ihfZJD4p3d ۃ4 0@NgS BLo@f4 (uA @_2KCƬ>p ` [LGc4 0@ig((V DpKn^-|H1Ӝ`i5ֱ 00.ݙ*@Ȁ$K `.:Ix,@ 00>@(ڒLpzFpߙ7 Xyhln04$ձ 00iN`־ CD0qDW7xKeQֱ @@ioA B@LI.q 2-ݢyx 0@i@M0\^c;~_re`X `@13'$q;`+z|iP̴A 1o/ V>Eq=GTrCױ @1_ =)I|`B490%ae 0 t-@BrAJ9$Z0@,Mzձ 01̐"=z Jz#:,pױ @Ai HD` d{C8!lq47 @@oZ@L+CN@sz@k=yyRՁ 00i 3T0(6[ 00gLluX@Y,MiVֱ @@ion!$I#4 &Sx10@o2P_@ T%t$_`$0 \ױ 00o&`mA0_z%#Xkri@uI 0@iWQAHP6-^hhPyn\ 0@ҮEw NwH,&k9- @@i,-dwe{3n`ߘ/8ױ 0i0$,,h!kyBK G<*: 01l~Ȟ Ktڥ3P}2EUFI00Nѫd( ] !;(5@7 0@.a,M& Xз !"x 00o.Z BЯ0v^r#@ֱ 0ӽJ0d Ss=p&#y 0@iw(R&<f961F(Gy䬼8ڛ1 O;kܽ C /c lfG6 @A! *ZNpx $Ȧrձ @@i7U)@߱Q xB#9ֱ 0At)#XBwEtz@о/<)4pׁ 00ޠ t# lpw-7_,bP;Rֱ 00^"! t#10R@=Wֱ 0 g ]`0Wlt~I]n0$Z ! Fa2NUV4i]2IF`īm 1 @et` :O-: DsUQ~ 0@J?wL0dX \n @@o[AfUt"P 0_= Ai< %FEVׁ @_/ } @52t.pwOc 01^)TM{R>6&IpL" 0@Үڻ Dvph j[bq- 0@iPл +0Ϊz:ֱ 00i>V¾ R2$;>2 w8qoױ 00Jݻ)aIDX" P;z6ע8ձ 01̐"A=Nvph(;w}Ucxց 00;Bn$T *8~H&iop ٱ 00^Х GSz{y =s8A @_Z0_ `] O04S8ֱ 00ӈ 2eg;,5 P|E\q0MK10@4K- d#T{ #QA S akֱ 00>}@i=σ9qrXqLsT 0@Ҿm n $3`/,# :ֱ 0\бB!!j:iH0A 0@4-@ȝ> `|vi+4d%t@Bہ9> 0A;(8S=6p+JzBo.ֱ 00.)R""h|+XN R~J9:00>zh2j;-?.0ꫲձ 00\Th ":oL̢ b@% 0@QPMX,sg I/$Kt1 0@;usRm096L;*kձ 0 0=k}Nw331^pױ 00iR/D"ֺlٳ60~ ֱ @@i{KҤH"z"3x4% 0@}uFĻ LsԶ#` 2>VR;0@i2Vpf;`@Pq=}T11o( o[@ֱ 00}EYPBU^~40>JND Fױ 00i^V $TwݮZ_ L 1#Ձ 0 DK.Aַì> 8ԁ @~!n +v`D2|ɏK|kձ d]&? P@ s)L4-ױ 00RdD?;;A1A8],1 0@O;t*8!.MA 0 ο w H m\>x$p(yt[ׁ @@&lF;@!ց 00+\P*B;-H`Qt 00Ү a3t92Hkhֹ00iVH:i>`l1X+ֱ 00iNh7`_!TGvxSSb)7 PV Z֡1i4G2@MGfhT)fծa 0@iW諊M#v\g800: 0@:T!@dwWVNu:>qՁ 00iA7 Kp5J7ﱅ@@oZwa.tRrb+-e+2S m h36 lPMxֱ 00ӽ![왉`&bXjP89I  0@҂H!B2ҵp 0@~*ػBF4@n;6 O;6rֱ 00P%/D`@:{#4l 0A~  @c#x͙>DաjnL@֡0ҵU5¿%$tՕso$1q*`ױ dEw|MZe]p !̰ 0@ҎP&'I9s̍~~5 @_|In'♼R؏ 07 0@>*r7A1|IJ]x*i BGJyVEVZ pwY5̶!0@If `TeM| ( 0i@H&CZ#^01ϕ<s57V 0 @!n_AP< =F/mֱ 00 ݻ/$kYK=.7/L @_B}4]] tsW`w@ 0@]!=e+ 00n=L&}Qp^o Jֱ 0iOppl*^2gCpaG87@ 0@iw!tEy~:_U Ձ 0 wD#@D N:3Y 16g 0@nTM0L ϙD[wu* 0@iw(TE&$E<Z]׊X+ 0@i(EԻ $@Sp&`5CdzA 1o Kk`}DA'X~ձ 0Aҩ@ ".xW{ȍ]\<<3hGo 0@nೢM!#/wF BVHց 0@.AM$"GfۼLg-x$@ɤY 0@҂R&#l9P\d%ֱ 0+* )!NC`,U< pkvl0ֱ 00 N@e_!R1p%U'v N*$ 0 tC$w N2'::YG.F<\1 0o<$*Xc\\E"l!01OOb0(J4r Ɏ0_7CH!>210@o8I"_YF`!g.ֱ @@i۟5ᮠ!=]~ . bAHױ 0 {A. }LT;K$s 0@ighc *zPl0# ձ01,@oIsp\k<|F0 rֱ dᠻ \ үNW| xGD- FG5M $ɚ[V[Xfq 0 @ҝ ߴ$GsF tZ\1 0@:JUB F̔J#K<``f 0@iw(E&C#X/ _C SC1 0@O;w Z{A0;>^*% <סG% 0@K*MJMĸtp | 1I `zA004&GB#`S>G,?۹6 @DAoZw`?/> V0#_ L`5d 0 @ݠ~D.;+5_ֱ 0igAֱ?T &֡ 0EAغ@M'/^!iU3V %A @_L >VY:@q<.-7ro 0@NˊMPmg; ͕a|# 0@NPS{7A!$7 Dh 0@i#wDUp [ `<` 0 d;ADuU<5,)* 00ҾB2Q<E't 0@Q& U ?;äց 00]1lrAB{uƸ#.xOg 0A#Lp`>wKFy#& ց 00=!IrA "Goxr8wRFױ @@i'F ER$&16m Ԙ_ZA 0@o24)<9e|Um: 0@P}r7AD@D2kTMA @_ >E XЖ' ) >k/ 00}@ALpF@:,2|䕢hDi 0@.Я n'*{a|hbF=Aa}@ձ @@F^W6mM NEֱ 0 ;g0 AyȜm 0@Џn1]vg `9ֱ 00<E2D!X,ʒ{% 00iVC'Gr:gݙ1 0@ ]CKSi^)p9xչ 0 1{B Trz >8I1+VL1 O; V{@Ԓ|N!t47A 1ovpP` pZ 0@._-M B"(qpv->0Oe @A+Ι C+}xD%54@AOZ 9|fE@>Pp n: W 0@nP_" IHz5 | 0i㓖wױ 0ipǘ&Ut:\f(.sр/ֱ 0@  A\^W$p@AOZ RkVpIvl#+_--CTց 00>1lrA "b':M |~rOpFձ 01,D (x]"'?Tpkֱ 00T/KBqu)y"oi`a~6;1 0@O;Dg;2u0Py_yu3 v]P)ڻ #%[i`/},c. 0@Pw $#dc# y@ 01,QEU1#A u˯Ok@TA @_!UpRokdiv>5 @@oZ` ;dx,co3Kׁ 00=!JrAX@@O/u#wձ ,@E\.UtIo6@A 1o $ x>*dX l 0@nPZD h"w@'` VPu O ց 00io"NH.(E#\$k 2kOyj`X 01ifÞ )7CM@ E n/r, 0t;һ &`0yʴW.t%` k` ձ 1i7lD$-O>b"G@ìFl Ko&p+A 0@4"dw (387P`LQEV$!00eHL-w ~}y=3>2|Q[ 01."*\UTgA8O kRcd @@o2S -ER\0@AOZ >`Fz  W+ 0@i Ăw v897Te 0@/ w *wwr)ͳ@4}] (0{b xLN y @1i!T D0~.xtr+ 0!M$*N0ԑP  pFHi1 @4MI4J|K)0r8` 0 t;C_s7T;d'vjw ]ց 00]\PAUu:qq$< 01iF@dOO.U9 Ο 0@i' b Xtg|nqo4@ց 00! b;pWVֱ 00Y+d U9NI4OPs 0@9@(r7At(B(`8  ֱ 0AtiDw\?` ozA{ա0i7h-H0i1 0@OtB^2Ld/Eb=j_D 0@ nyplOf- 00Ү~J2\;h fR1'䉃[ @EAoZ E0Sp@v^<8̢ /c 0@D t8*7ƨ i11o lD*Xi$;>xL xi 0@nЇ!Cv$p ֡ @@i6!ܹ\S:R'_.@ 00nPJL&zF@̉. ¦d)|HA 0@L,);}*>p1i\5h%@9s 0@ҾM#vy* @1ik$N8_G ~bL @1i;88P|T 0+r ++l 0@N  "$^w]@Rmr[A 0@4&NAm`(cϼsEƁ#ֱ 00ӜBh 2 g:0-F+ר 0 d;B-iUAs&

7#`}-5]\eT>1 0@vs 1+_hÁLZ@k[ 0i 1 \8QRPc8ho6ׁ 00i+hrA-X X:y>L`#100ҝZdQL\4- q@4cxsA 0@oz*HSGNKE;I[s֡0@8 1D@wp7<=xY+Pa 01<;DDhV 0@P*r7AX<пA4pI}n90q1 0@O;;I0ʙ5n gxKֱ 01t$'@< uX@c` |U 1 0o k-TqAS^ \:3[| 01 Q!dOLo9| nQA 0@o <,SІg6=E]Gx̰yn A @_DnjNn`7 |S(չ KS*$H3ܓl*pj wt;O!X 0@P_h w v9 ZawPW 0@ݢz7<4a%!HRjkHv 0@ҝ&*:&m4px@fA 0@oz&FNA%T/OGCj -8Kֱ 0 BHT* 묊TyzRCP;+p݋,Ա01 AiP `%yױ 0K ׌ "V1C#c?hk[ 0@i (walhb4krNV6) .C*Ew䓐 mf*(WЛ ]pfױ 00<@"*MlT`87K @i'aB"%mz Q[<-Zף @@oZ 3}+9_~ @}ҝ 00nЗ`2x`ϛ+`95\W>sK֡ 0 $R [o.{d<~/+I&v 0@iw(B-G:<]aԼ| mر 00~a_2d |dvͷyo]KA 0@oy)臖xr;}KMOQ 0iWB2A5n240@L%iV61 0o@h,ٱEg>2 7f, 0 d;C)ńHuN LR* ;ֱ @_ZJ#N~`ap Nf ,1 0oZ{-5oT(1 0@OwP(u܍cUa>p y8 A 0@oK;} /*35S 0@.gK&U<()C\ױ 00B "*.ֱ 0 0}id_ Ýv ˩8 r 0@NЇPA1(:Oe
ױ 00ӝP }ADJ@rDx`ڸdAq n @馈|M %4pvձ 0 {Z"{eINLxcۡD&A 1o ™9F@.0ֱ 00|c`)9@@O6:cW)||fa2,qkp+ 0@iC|YnGv4 4 mpRn}`S 0 1g;BR#i\ CQ`3?=|ׁ 00=1i*G->>!1sn8 @1-!jR2>8O( p̱ ^Q@AOZ PkVrDQ j@+;[ 0@NW `Ud0_sH擳"hYi` 0@`*n@I2g:k@3=+T{Ձ @_Dn/eyX?c<`)UqCL* ~ J2Pp—C Y\8' Ձ 00{BnJ8g:@!.~2ZA @_ >DĻ,M3,3ԁ 01ZI&y.`}y=@9.-`1 0@RB 2-Km ֱ 00龀`> [D'I fM5p < 0@. p7AH>tLt+q 0@]!PZ޽ bUlpБgt>A/ԠU_ֱ @@@/Dҥ .È-jgcֱ 00n}Jj_(D,I|C(/ֱ 0 0K-^lC7 3+4>C. AoZ >d=l':pDCVֱ (-4t/q0Ӫxi|X7 0iNA2AAZ%0,)Ա 0@ iԻވ"ZKoٺЌ,O ױ @@iG "X\=-IS 2AA׉ 00 E#tƂ x{'֡ @@ >q*% ,~`; 0@Ҿ;AMQ3@KO͇Z3(PBX6 0@w1^85}%Ƣ۳b.ӱ @@iGcn N+ej.J 0A a{FgzS@WƩ"/%ֱ 00ӝY4 EU4wGSsI`*ֱ @@inb* , )]ֱ 00B#$ A  .2ȸGk1 @uܽP@z i԰g]_ 1i}ܣUvxc%iCp. 0@N`n |t`wq&w ֱ 0ip :xm?j Kq>:_-R 0@i['0S`Wtca=g x=6zJ1 AoBrCؓ`/s @XV1 0@O"Xݘ,3TL` 1@i .4W s#N9(s @@3!FppsOu\ a&tw 0iwGM&&upƄ|`SsFMP @@i Xد36841=0C( v@z7A>I"f#*l<XI\ 00i7G r;pw,.ЦPtIn oՁ 00A\P*X}ܳaiA 0@Ll;Ӕ*`>o3car`r?Hֱ @@i,,G HFq;5"u`ց @_ Kx+cY}n] 0@B~ M`A`Lb  0@ihj0wbz;\HGo$6 cձ 01,t bO:"9(y4`? 0@ҮP IPr|Vr>7R0! 0@nOJnHM;r=W$ r @i0ħw4i &@>29)Ա01l@9il`//*p% 0@P &(`@=a=%~8֡ 0i<$]'vl sxԱ 01TL"HdO@qOL2}GIHI h~@*V;Vq$rwձ @@]A&ID+_@ó1gi^S> |Iԁ 0 `b Rg`;o9(ĦA,Ŷ.ձ 00=Jd_!J"?Ywrཾ7PpA 0@o$,;M*x><X 0@NПT-w #ϝl*e`<Pʨp 00=A"^ud>S #y]6q#}ֱ01,@sHP8}v *p"Jp'ձ 00^@Vao2%]~rt< `)seֱ 00P1}AD%;Uap/xjS EQ/Ι@Ǎ`>;>%`#pr [ 0@~\C0Hw;VNvr7{ ց 00iM.(XgewhX{#5[B 0@i'h_w'#,n  tEoH4;Q D1gY]ֱ @@/+Nk2)[zFm5烢yԁ EAvR /voWׁ, [ֱ 00n*}AewRLtA 0@B.PM#*3yp5=;ձ01 @O &pỏX{(7)L;'ֱ 00(Ⱦ C%9AS2|  @~ř܀S;cV,p& ֱ 00^`"E8*[c|CM`ENA 1oVvUlDd: /xe.O 0@.G)>&AIL;HQpIJֱ 00\X@¾ Jy)> N pΪhU ց 00`*K.(ԝ[lu=j> ֱ01Ҍ@K\}U{mvR1ޔE@ @DAoZ'\TD,l#I!4ֱ 0A#b j{ϿL9aQD X 0@.gI&VP$yfpYrױ @@nBI|o;@eyMS4 z@Ϳ 0A>}' B@`>+_.>AKׁ 00~щ&TUbbY)h5;i7j 1ij T`}0\&|+ u1 0oKUcU)%'S._A @_Z3ûc.XEr0&* 0@PPC0& []60)W8 0@iOA*wIr; e I0ձ @@-P `m>2 e ֱ 0b)!WN`;@0s] ADY 2'!L ,w7MԱ 00i`!ɐD:\|ay1 0@O ]nu@Q[͍l0aGlf7,ױ @@iRn@@I~x\G)` cm%NA 2q-y 6Q!  0 @"6n`|^}*&e28jzձ 00}$ Q$Nwl'pfZ 0@ZnO&g\pűֱ 0A,"R Kp7[T@N4/l\Ihɓrց 00iC\PUe;n8tlvdlkA 0@4XdSG!t>U@(>`;W S3 0@~Pw1;w+}|0`V$ֱ d) % \o9W2?y>7P""`[ @_~w YܑR8؃ ֱ 00i B!CD+l0~M byg! 0@҅NW >5B`;* t 0@O-!L Zmyk<ց @_ n>r;<dp}Is 0@ҎJn|"Eo3j!V `@ I[ @A^A U@KDcx+9+%_8ֱ 01l  tW ('tVI! ƂA;֬ x.g'q 0 d@br7>^$EIK ` @A2SA^K`K. %EΧ~0h 00i诨 g0%?k @/Mp?2]P @1i[8I `R9=`|ȓ<8N !0 i,PwwL{ Dpj`W@ױ 0 0;eTtbng:1x\ֱ0@wvAD39|ϐ_0 eYA 0@ҝ)n $`C'4}<3 _@@oZw Ȑ>dw*34 x\]ױ 0i.br@)Ūr <; 8Nr{ձ01iHΜ4wUi'<  0@GR&AU$|>8,p#Sֱ 0EA4)%M@C@/{9}y:%@ձ 00H\ d pQz#NS`H j 0@ҝBn0~@ ܬ"Ձ 00{Bi`I ` @_6ر 00]Y+}ANw*kߔM Pֱ 00i>ɾ 2$xC\fY ; @A-AfGv=D~&fnB9]Vց 000ʒ b .N9gx!nu 0@Ү`_U{7A AcuA ɬZn$ 0iWP>" \B@7)?]O ց 000#P -OZ]ۆ+&E 0@W&BU8¸'#+c& `)u @inF+PƦؤ9Fձ 00Щb@ 9Jf.F {}4\S @DAoZ.TC/k Sk[q?ֱ @@@^K'a|@Btp 0 tB"M`@ JˠI"X-X6!ց 00=QgrA("xh/ kֱ 0i jL PEHDsu2Ggiֱ 0iW]D6h% 'إs0?ձ01iHsH}G a`?5`^ 0 ds7X-g 0@_K n$:u?`۬c*ZXՁ 0 CL!@tFwTbO (  ] @@oZdEl:Fu& E]hr,/T1 0@O;Hһd ![Z+p^"1ߪ @1ikCP0'x]D . 00,grDy w *)ewԱ01iVH*̝4wyz{R Ar2 0@P* r7AXŝ^D;i79O1 0o|Z{vl@"8V9hݎ 0@G) 4˝lcRnA0_r':OIhu-ֱ @@ioǻ `̄f=~1ݢׁ @_^J* pXg~Aw{w2(A 0@oz"hV[\84nCLB 0@NƐMXlLv~mlp 0 @f w1N4fdNxF=1d]ֱ 00nQ/Ȓ(ew^gj@ ׀: 0iW5840M|kk+ױ @@iGBM F@#[Tp^Lg 0A&\.ֹ @ijK+y&HK 5h7FX>x m@L$[OTY5SpaڡHs @igAs7AMnP2"=Wֱ 0@ A- dfN]Zf'< 0@Ї4& tdW ^lI@_^ x 'X̀a"EA 0@ozgSPBBѯ0eu^)^콓_@ա0i : q:a;##չ 0@i)x ,Y8*AkGylֹS6q 0B-Mz*Q%0ҲgeeA 0A rF$jn(ÿ ر 00 t D/3\P0Z#Ա AigH1]Ա 00>Ѕ@e_EQ"6Sx#!ձ 00iv (Cs]J8 "(AShe@#CB{ɶ_U 0@ЇQ T^:e!fL vBM`~nI-wj.dw9@ 0@iWKM$#ps-.ON: `P 0@NWx7A' Kxv 0@~*T&Lj P7[2n 0@}onDzO1'PX @i bn>ڤP/l_ܣm01e 0 dA? >D`V 39{=@sUQ 0_v  9qy`?== Ai+1Ke2DN:`8O;?Yױ 00Й}A G;{xL@3ձ 00E猉i@}ގi?05#A 0@ozc4iZ(o`< Kق阦 0@Ү_P&VN/onp)k&~334A 0@oz*1zYnBC \ 0ҝbѻ "h0٭pGqSN 3 ߽1 0@wq)(h`4K G(7, ֱ @i[;* r$&~"'X 0@GB&Uֿ0WġUsֱ 00i.P1}AXH+x#`2 @igDAs7A Mgfb7DOZ@@oZfp[A!G&wr~ =~( 90 ?ҩy$|v6wzS bH/Hױ 0 ;w+Kt'qURG`HN0}t=oա0@itE5OHdwƸ2b4U 0@i0Jһ E_Xy)+ABX+ 0iWЏ#|Zxnp*&(А37' eց 0 PskL)] 0 @")@|N;>7L>hu Aik0h@3S"\v9'7ם=ֱ 00ihjoX>,=9)A @_Z uݑAwe8J=>X7MbAֱ 00x DI n;@ar64Q>S 0@BGhAQ&&/#w;\Xʹ|7S=& 0@Nо  HA:TR o<.ֱ 0 {B)1hg;j/:xJzT 0@ T XYu&6,S2n`s 0@B7(D $<;6)] ~; 0_*piaG)k4qR,|W @i1*l  ջ 1 0AOئ `f^pձ|L`ּԪ#wKر 0EA.DU~0:iV$an 0@ү"nP  ۩>' @EAoZ {f*p"`>N,pu+<ܝA 1o8)^yi:'Cֱ @@iۯVn@ E"90iIU`VA 0@<@S-tr~ʋXYXY,Ё ֱ 00鮝*}A(Jzn'Pp^;ց 00 8e##~spGvib% @Ai۸cgB޲XR ?Pټ¡A 0οyC)h $8J xJe571 @܉{A.w'l?-ձ 00\ P 2DIPtإl6/q~p%J5y& 0@.a05w :pF Pֱ͇ @1i5=A]'Z_*ֱ 0@ҙ@Qkyȝb hvVQ⣡0@o: !Lv8D _+G,s/)`׉ 0@i(>n !`<pgu̺@ )ֱ 00P}AD`:4> pa6H1 0@O ;E{Ap, % 6^ ֱ 00~޲$"{pLa%@0 1i"}ȁUM@:iTR 0Aӂ QLʙ>S> F@i0@`nWwJ \r/ֱ 00zA*}Aw~e9@r@nK < 0@ig裨x7A VpClc|6bp 0iv=48|FO֍] 0 t;APC cpNlla)` w<ձ 0i/p5UksXb Hdֱ 0 A{Ӈp7*TCiFM.KE8ֱ 00,LT(JS,`t 0@NMJ"xҙ5su-_2rFW ðҌILy u\<`5~eQtױ @@@, Wd`4101o e(>tuF ڬ1Rױ 00ӽ !Dtr~`Q5#Ѕ.ձ 0 @FE} PE;$P [V:A 0@ozFȖNAy@bSɑՃ{a6Fk 0@B M ֛JO`!0N&U @@iLC.ܦ/ֱ 00iNd 8q<^J[ 0@Џs7UzQ> xd4!0@f դD0&-/aE 0@& !Jv=@o  0@i7hĻ x@N` U`)2lK ֱ 0@v)Ҋ ^A˚P 9U4O8 EQhЂs&7>Q|B<*87w.ֱ 00] /ȐHKN3tnU^4404` 0 d;B nU  āS` 00Ҏj g\ja7<.<6 0@~F&*d3>NpǼ,, @k<A 0@$- ՜tdɂSWձ 0A҈R@HnG3=`/^Pux\NaXA0_%RpG@6 g Pe@@j =^w8G9>\~ 0@n!B `@ Y~O(=0@ix%n35ts2|{ֿ@@j9 Ⓢ, P9J&ֵ#$։ 0@P `T{SI,/勳l@@oZ Ü ztqm?/G @@oZ>LYew&lvv2? ױ 0@),h A#hie 3?ֱ01Ҵ·4wvCv3_\0fH_Y֡ 0EAD {@Eq!@\C-toՁ @_nWߋ#r;w_- @# 00B%LpxUNKNEձ 00i SHSr7Xˈ?4p't)A@1o\vP" ''=4ֻ 0@@kȝnDuoil. 0_ ^vMN1e Xˁr+ 0@nG)*r7A@H0Xt"ϛg,fm+ֱ@@_Zk wX[RtZiN! A @_r` .bK%sL1gL8 0iHl'C Pv9a`pMֱ 00.,"쑍[?f0_)` iᑜm@Xձ01Y) |jtH4[1&|ց 00iэ"-vxԬCS 0t]A'`§w b`:.zh 0@NW V|reMhVZP1 0o$@k`ϒ-N9oc\ vllA @_.`(,^t2 ֱ 00i^R$ @J%A'* >11oPDׯN| A1 0o$ v*FdY*Rkb1 @ݝ{A(!`.`UUi ˼',ֱ0@iH^) hyZoȾݑx*ر @@,,lRFPrI pG};pMֱ 00@A}A(J4:Ji;A^vxU1 0@;tuhAл_t4[.N֩0 t {y4ώ`3r`' KS׉ 0@]ǻX"Q b/FZ>` ֱ 00i^T"a_%T@.3I <4yiױ @iQ dp%qzYRǚR}iֱ @@ADxM"$e+lf*ax 0@Ҏ -M0#(4rM&|Jw@AOZ޸N`_JĤ]\ DMGֱ 00 K"%="9B4Mֱ 0EAҒ*M n9?q>n6p%ց 0{BBrAA&t 7,ͳYNny @@oZ 8$2SFȊgiYh^ٕ_Lց @iwD ^(T:>yr;Teױ 00Ӽ@U 2DvY0iZ@ې @oZL+%oy" 0@O&*&x\zX©K 0@ U !FϜvq@hLP凄 71 0@;w T "Jw Wn)SpTL @iWn>h",Gt)69g-ء 0i@nl`-pFl 0 @gr7$kvjfV>5lA` 0@Ҏ BR&#g;p2Ů@' Zֱ 0Ai袈ܭH&߸!k۬/A @_ ~D0nSd|DO(ǝס0@Zh{h""蓷^%ց 0016E b\:C9, { Cֱ 00n;Ed *sQy*'l10@i=xn78v ORp:$SEvI 0@n`MHLqpQ4<=l9?wfL 0@>A&UPC' *iֱ d&% \|{lڔ3P:𶣷*-1 OVsJIlaIKi:": @2 `:A/9 E @q^ֱ 0 {Aׂ$ad9eq_ZBTaׁ @(n#v(0 k&,c @@ik}xLAB`ZN}7u: 4S~ױ @i à *oF>Wh3Aԁ 00ip.f9]%ǹ96[-/ 0@>ܡp7Uv(AӾT 0i@ΚLP8v`z_`ҿ/s 0A@ aF\z PHx f@ 0@}AVn@ $jH}O2xL.2 0@ҝ ?UNKJŧ6d`0 0@o<۝ ]8ΐ,AL]ց 00iRt }oqfֱ 00"T $"hf&Ep Yױ @@-$6g^4 ʵ g@G8B]P 0@ig(J `0X": `>pkֱ 0 0 [(`CJhabaZLsA 0@4 pi TXH|/;bfXw 0@ҎૈnJv;we $p]Mf@Ձ 00ӻ¹brAAZyfhj'`/_ֱ 00i^*H[tV쥝pqNgР 0@P(%wDUpV0owV4Fױ 00^ TP”HD4~a_w x 00i(Lp(_n\fü KMCd6 F%d]~g\1- 0@ &ݙu | Dq ױ @@i7P IcNeM1(ց 00}&,*vil _2p6ױ 0 0}]JDWQwp0@oZ1LVphOV @?K; =}S @iG0MG~^'+eύEB 0A (IX^#SlϮn"w 0 d%4"VA]KZR 0@ҝ@(0q̕jO 3@ׁ Ӿ0JaU@:@OHK<5 0i :@IQYZnǾء 0i<Փ"r8pHxzر TXh#$Q$IV(&29; #|{@[ 0Av <0SF%9XADGZ̧ X4. 0@N௠ b*ࢷF?i@h v@GM@RdDjl- 0iwv>"~_||ָYDձ01i,|HsH".w, ! ֱ 0 {B4* Q@~Hfzd5Ds@@oZ>ۭ 0kr:+Vp)0=Z ;ց 00i 3HF\8G^qI Yz&@10 ?b4x} '=hO|}Q/1"\֓] @@i[zL!1]YN3d@36.1 0@Owr-*{A@iUHmWMY bֱ01l@] &p#DZ lW* *"nh[K&.iIG 0@i3Z $r:pN~2/=t) 0@'PPnG ^:]dU-. 0@i'("w+48Ĥp?`y) 00NЗ`& xF|=`7)#4<ֱ 0ipBrAZ Dq5@(o }n ]%ֱ00@klf5G<(yձ 0i>`4KYv:7|H=-2%A 0@4x dSFPv?x[vÆ]f%ֱ 0AҩQHw|ک! e5 0@iWOb&U@O; O 2 ֱ 0]+QQdB|l F-C 0@BYi BU|-O`(cZ98˾9B0ֱ 00< HP{φ"jN1,I;]`$ŝ 0@C<m80&rQױ 0 0}"iA"A`#0 L 1Xױ 00}UX TAr-~R^72\ @1ik)bR ZN[ T4 0@ig( V ($it{kX?(ױ 0ipVtn#x,G E,MWz 0@i(E??jo7$p' 01ng)=AAlH$;e^ ~rֱ 0i0:^@U;{-`_x#4 0@ih H$ l]o"%`1 9 @AA@VR/}Qz_6  v Rd.'7Fψ 0 t;CHu*=Kp̀4ϻ$t\ 0@N hM$u@HlaAP/ m54Qxn37b}DZ ձ 00Y*C BaI BGX;\W͠k. 1i `WZ2x}XXֱ @@mАM@h]1-@,Wc 0@.oĻ " HH }@n|_Mױ  RP~h+u1y6ֱ 01l@P ("`3}&xHjPbױ 0EA4),m&x1+KNV(y 9 0@NЇһ ;P^\`Ld>tձ 0EAti,F$n/xEN:qL8ъ+ Y 0@AKMH";ۅ|H͙ց 00ibrA)(@pK˟X 0@҂.PDw">uZG@1o| 0@i'諈w00#|0%p 8֡0@鎀 qBBOg8vբA 0@oz+w ڄVmׯ \0> )?< 0@]_ T%89J3$q ױ 00ӜPTPe_Dv;;@IEIձ 00R$b_2*v LȞ \;< `): ց 00iVdE( V:`x|8OR!9n4ױ 0 {AHxU\X0ey2a 0@.`&H>T]2Xy ;3? ׁ 000Ú\PA Vo0QYp+NMloֱ 0i F۝E`8Gx\`+^ @i'1Z";Pga, r떁O,! F%ɝh#3S N|-ױ 00J@!TG 3= uֱ 0igwN6<l3*^R|8XU 0@Ҿܠ B!U _ pH Mֱ 00= D@ջ798 Sױ 00 Re_!!g;\i8(f/wH00ݡ& N:@)3tDq` v+(r7A Ir:}K~‡8Ձ 01PP%@"]-Ф71)1 0@O]K^$LGz6ց @~[G AI/%. ֱ @@io-|nyȣV`ʵ( 0@.DwPtHb0-  6;_ױ 0@imBA7-7j\>@α v]GE#wB UpBqh\``yú00оzb2>*])\@,jȽ ׁ 0 wŘ tVx¸,KRF@ @_ $wSx/.~|^Puí-0W @_~%2@e&~V7_A@1oWD~Ruq-g]/N'!Dֱ 00<С0dIv`)G =zXR &ֱ 00\@* Ϛ}IޓHֹ 00LDC8)+`ױ 0Av!@+[{@Хw%1 0AO[ RIf꫏y2I `OQC`#ֱ 00=}A"4r~bљU aLe?&.ر @@FmLaFpX6oN2`Oױ 00ӼP (K"`Sz/HTuq^3`ֱ 01& @\H h/4ט^_. 0@Cn@ *( 8ͩHaE 8ց 000d";l`0_qI4jm91 0@vR-B0lޱ 0Kcױ @@_A/RR$5 Pj&rֹ 0 @g\M B:ei0a}𷔥ر 0i?pRI.(T2 |K%Jء @@\5D9};8҃_e^Ձ ΰb@, tjl8Y7gց 0@_K4M "ew>ax638A0_;>0? @̶(fƨq1 0@Ow!w/Vr,O@gɚ4Pk/10@ou_A@8C# ̬< 0@.QL2 d1* @ @)/ 4 1i|LP(\=@D hH*?6 ֱ @@iE &`͖:mJ<<ʤsֱ0 1g3KÝ4u&>nKHa@AOǖiJ%_%  0id>D#r&v+]o~{6^` @ 0@ FewA ~{*#l ء0@hW ;r8\@: !1!!Uy},&|T 0@GH BPR@R=`I#6`!0@'c;SI^6"(@3< 0 BH\?Xjk"<ر 00} T*!C>]l0ױ @@iB|n(10`^8O} 01PH $k亃L2.+ֱׄ @Ai@|d66 iMF&ֱ 0 K `U. # KN9 0@>:һ kewv.|o:i L: @i7Gz7A Ut)e66(x!0@O,rANUS"~q2B]S.v 0@ҮPhE &K;0{oekH,A 0 ?鑨fDy\lr??/dASW 1iw#drU`MB!O6ֱ 0iY<$;*r@zg)n 0@ПjAK`ǀc ?fA 0@o 靂>h"vOǼ 4 00>'"g o:Ml~ (:t2'n ձ 00iNQHWL`(x)`]ׁ .!>BBgϬ:@J pQy_} 0@Ҏ`)}M$1촋K >TO! 1 0@Owu*8E^!DO;y!Q(~a~ױ 0i"šP"U"0-p"Ŏ8T ֱ 0 BD/`@;^OczH2:A 0@oz; * K#AI < 01<: ynzZ |p@ 0@ҝA*4U9R 3%j00iK&!U|_zp$p&3ֱ 00iΝdfhD v+ 0@iWwBB#ḛ< Ա @AiA haBnJ#fp>p [| xYԱ d&  \lv n56˃G8, 0@nPnS;o 8d+ }w 0@Naln8 QԚxJsױ EAiKbbl!x7+iU\+8hx2mֱ 0i0^ UDL\B&ܲ9v ԁ 001: Z(o- qjN+h,1 0@wphA[{A($^9e'C8Q6 0A_ 3±UY.oM4G 0@]GwDԛN `#Ё5= ձ @@i +&DL{w8c[UWֱ 0@i,nG18`!w0 Knf{WA @_.V}셝  ֱ 00 $ }l`b?*{H AoZ ~ <]N2b&; @ϑ= ց 00 \Pxտ\ޮ`1:@ֱ 0+,)!)'d"C^!1q1hT 0@.K r7A<cpRQ5ֱ 00,}!!1o;MI@ MOi> A @_M0`+z;9,= 0]۴Oֱ 00~P $ Vu";{!$#Ş 01W" B@k!Nh L/ @_Z h$1"gb _i0yp AoZDL>r2"ӄuNֱ 0 {A2!b H8筧0 ƱeWձ 0iF6VA ::*xj@Qz ԁ 00ӂGLEU,z Wi'» ֱ@_Zi REOt`/>p*"ΑO ֱ 0i_tH.PJ#`&!>=7 lD?4ž}_y%,J1 0o`jLHR-K 4sb/ֱ @@M@hp`3K|  F1 ֱ 00i^J "*7`u83ֱ g N@ںg8@v達 A 0@o { w )v1) 9|dp9\Ա 0 @6"/ " Y6pA01oD"S=`a4yB'B! `ձ 0ݻtAEHHHR(5VFx2.ց 00=!8jrAR|"yleUpׁ @_ >__"V4(.d1РA 0@oz&H`pє=;i0Zȥa KM`>fJ8Ȓ@D .Zxց 00i0` F59&MCn! t} R IHu`` {p.fm3 Ձ 00io EL.(Bk@ߙV|XIuo+ 00NO*Lp1b>qDu2-7 0@i?!Z&U,EQDq!0@qS܉6`E.p@ep}̧ 0@PЖp7Aa_k6 ׆+ʼn8e 0@Џ&U@7}$o Y`Ձ EA_ _/erAWU{,l ؠA @_]+)* X'G& 0@NG'LpJ `doց 00{AaC䂊Nw l4+- ׁ 01ҮPhAd`S=`=% /<^ 0@Jr7U^pC<5ao 0@i((U\5G(#&I x< 0_[08Nn^x{wA=P 0@.PweFtɶ$F3^i0@ց 0@_mBCEdwW~J~ѪY ֱ 00inh "C !o|3>ر 00i>T/LNoZY[Z֡ 0@]Aw 7S`W%@ɢ\4*@H\ױ 0 :(HPW@-HOΊVQd 0@.o)ѻ `@ F1ji4<Ѹr 0@iݠM0"AoqrX%ouJ $ 01iJ$ Tق1!"uP@Z'K3ֱ 0i${)*L =Y[弄QIxgձ 00i^Q$zw8xQuv`E @@o`ElD@l^|C7e` >AAp7ARhz2y->GjÜ Kס009$ "`|} {|- A @_ ûc0X-y^Acٔ`QA 0 tA9 ~#yFklWTa@A @_Z0Q `"<@S9{ 0@i&!Uwt1#QLpg4 0A餇`[տ sђG<;1 0@;us J{Asy/,'|A @_ w cv8e0+kձ 00iZ! KE;L4;w g;q&* 01,BD Ife(+6 @_> w a lP->~fw(ֱ 00]x $(C;2{uhiM 0@iwhMB"8-{?~3xTֱ 00i.hY`/$~P L Kn__ձ 00^ Ⱦ ʐDt*VV25%x 01G )`zȐ__Ue1 0@OwprkAAH0g:@Zcw rB,s 0@iS T7  7i.+ֱ 00}/H4 `/W3@} 0@n B y%Uy 9u!58U{+k 0AӶA%3~qN}q' Sm} ׁ @_ }uVX43 E&ձ 00nX+/Ȑ(\~Z_q0}* 0@in` F\>ت Bvd 0@.iw$*Y_tnsE."$ױ 00 } 2dvUԾD Q\4x`ĔRLg A @_"]=؈;^8G/XF(ֱ 00̌,pP,;J 01iQdOpy0)wCbPij&at00qױ 00i^`~ Bĝ,88 0b 0@ЇB ao;6`/@̢˜ A 0@o{w er:?2])7 0@i'w$#ht8oA pV 0iw&OK:-cR,,@'7| ֱ 00iNh7"d_!TwSr@j q%`ձ 00i抑d/ 3i0fH`+ֱ d)I R.\|[N?N\@! 8<4J 0@҂#H&C#9ht` 0@ >n !VpO@M`He`'R٧!r=A 0@D5)*w} {9Cyd 0@Ph !J30[9 MsG;A 0@oz")(<(U7z:G=>ey@o vֱ QF}A!iCe [.Fc 0@]AA&GV8DrZSaLDձ 0 {B.)}*nz:?sFoLP` 0@>:BA-MG@Kz>K֡0@Z\ "`/ 3ތ!@i]vE7s"ؐK+ 0@CnH/C.$AtV 0A6`Q36vFn<$@;| "ֱ 01Ҵ"*@'wNbiĴm @@oZ`EvЀ?iA^l(ֱ Ai 0pF >hj,0+可61 0@O8:DZ^0YzyR 0@ҎP E 1n4 # oeY@ɶHA @_81tU0n:7| `U: 0@Pn<& Nw';hjZ @iw0m*J`QG<1sw 0@AA B>IG%7S- g-(X1 0@A&H@Lq"v x5lKաֱ 00\"}A{{JlVoXƃ̖1 0@vRx@DRŭXaa<ձ 0 0{@ MHgcpL_,lA 0@oz,NA?Tz:W> *xyO 0@@(r7A>Q^g:<(N"5ew1ֱ 0ip00U߄7 9@:MF0@` E:,fD<0Ck* ; @@_3$xĩ=U41P 0@nG w|)pX *&l~\ 0@i_]br7B`Won1 1!Tx))|1ױ 00ӼD/$|H`! 0 `ʔ{ !0@gP$TT5fG;lj+K6ױ @@iByH-1<qΏ`pց 000 $**y) u; kԱ 0ATMUFQUެ M_&69 @_"h#FHn3 -.`ԡ@i"R 85Qnxlkց @_ J&"/0g'@#- (1 0@O.!($pGM \·Rr ֱ 00^޲,!,[*leՁ 00i JAp.?axxZ ֱ 0iO' :hv,7_>r,1 @]]\ J4D@Yڸ + lױ 0@i-DnWX%a7e . 0@i'(~M|B"&(d-~ͧ[ ֱ 0ݺ3UE$W56\'`1 :I) !$$L9(- @Ai;Ip`U\&A @ 0]9%#LMaUCG1f= 0@P @Hwt豥@73w$ A(- q(̴#Ig(a._ 4a̜:ձ 00 TB|+Prt/Y]FQH1 0@O;uoA&sp n;[l 0@i/Mx8Ǯ|q.vL!"o!00Qi/Y*{a>t ֱ 00~PukYH;1A!+ƿQ[@ 00i&B0#hF9 ~5t61 0@;w&T " XS8 0@i&x7U@¯C? Ա01 qD]xع篷W΁2!X, 0_%86# Ov:A 0@$a;mFlq~( O X,R 0@@At䙲0چG=ㆣPֱ ӌ}ADcli1o'$( Pց 00{B;p 6:ֿabzD ֡ @Ac10.lx$J-7 4.Pn 0@NЏ-(!$S)Tu*} 0@im 4r;lx8GA1 0@OwtB-ܽ CT-t^\.6!1y34m>vױ 0 0@PBɓ % 0j.ء0@i&zǿ$&0)Sn 0@Ҿ Jn !PsL- `~^O@@oح 㑌;TG( ֱ@_)_*:ГpA 0@oK蝂ƒR,ӿ?ڙl %hՁ 00>ѡ`rA MRy= Sy1a 0@.PP!$`+fPR&ֱ 0iw"ҹСUz%M_M1 0@Or7\B#1DmifJ 0@n ؏MC"g:PWrݍAG_Iׁ 00{a  *2Nw~R^jE\ֱ 00>*}A$pYpixTwձ 00Ё. s$ک"P21p XI1 @}A]4[Hhh^!M|ܨH  0@r7A =g;! c@A 0@oz*rg}Ъu >V98f0\+=VO:Ա 00P! {ʘ% ej/`,2zN 0@.Ѡ&w JAo:,`r@¢[ 0@i R &vCST5W 01Q DЕc:8CXױ 00ӜЂP읁 DW6d "g}Ì Ai_`B"Lkz= G3B>jS @iG FMhn |Elޢ\ ,A 0@Dw Jr2{R^.ձ 00龀`)^%C"K9H,ayֱ 01," P|Éu\+7D[Tz 0@N }UM$<1l7vcq> @igZ&( Taz{N ؔr6R,ց 00i$PFpYNN(CxGV2R:) 0@Ҏ -}MH"0  83 ֱ 0EA- f8üK0P @^I@o>gYֱ 00Ӽ$ ( 9<p'0pJ 0@P@k*Teٌ+{o @ig01Z *_`!IE&c&_- @_ |Mx"7D]mx3y 0@>@i&A$U@^,c^1,k\''ֱ 00;#¾ YDNw6{*Ɯ`@HsԱ dY9r~}@dI"O8Aeo!@@ α[*  S`]iJ @Ai{8 F?`m`5||Uձ 0i_EP:J#\0g0:§m9tֱ 00\[DQ"`*`sCOCBj6$A 0@4* SPmSv`~c q2+[Kر 00Ƅ)Y? .0udֱ 00>бR /ئ/g<cnA00oz% A?v8o"9^7udTױ 00d_%RAއ EN5]ha @ȿ &x>0n36PUPq[ @@oD2S&XP,!J8?h_<00i;C_r& U vWq!ׁ 00}t&TPUz;; t^84ة 0@| !r:%?MbH>rԱ 0in1 dx#!1@r<"+ ա0@8<5D{@\Qx6 `ց 0 wE `y`EU|Ɯ3vtx\ 0@iL+(6;@{}ş)Nhֱ 00Ӭ:*A`ΩRek5pK 01NPԞ S"7= ~AyGg Aik($:S}6u9=8LspYKdJ-xՁ 00{bV:\{7 +h` ձ 00ind !X<s b4j ֱ 00]Y* C`3S+b'| 0@#R HHkp KQZX 0@i( H&&#QN^iO|Q;&pQ 01ҝS \"H01:ݳ'WP؁ 00Ӿ!"t;*Vng<9Vױ @AO,@1҃;&/uO+l1 1tM00Ц+@1 00O.mEӈU[2-DjÙlwֱ @@m/-p7A Cs7 zl$Pd5ֱ 0i/pc4/&0B4{x 0@i(Tw<"Toȡ*x`kH?X[ 0 @ҝ ~D7x"PPhK` ֱ @@iAĻ 1>3<#; 0t/iA& m32 }zh@@oZ  Ȑw95^~/}6)v1 0@Owvuiջ}q, PŖq ԁ @@_BM447vh'h'Vx7,Wֱ 00iƞP" 2*ֿ@ _lՋ00ihdpT~)@Wq A@!q$ 0HRKs0AIcM? 0 t;C M!*$d2_ 0@-۟!Zh g\>;Fy8һlw}ױ 0iPP$ٻق-ًoX8&'&OO?*1 0ohٲ&$vN@g\[ 00nAMU1xw!52 000K,`$}΁*p_M 0t(h0X83 }%^YPH . 0@NO)*r7A!$qNwB6DzrDqN00Nd|Pt&Ϫ}YFԄԁ 00ia? JR_241.f;.* 0@]A B>! ;E-Fb#ک @AkpAV:}`d ] 0@AF `@:3G9  0@i'}MD Vrd(w 01N/*jO>'xHoBN! $i 2!ֱ @_[XI0,p+uN9[ 0@:AQ&Uտזq`S @ 0 t;CAHC&V$-X,#E @ձ 0@)mRFDU#OȓfPēH @ig0Ѵ1w ^ʽ-;gzT_10@O;wAs7@UL qjdYk @EAozKp+1S"F;@ 0@ J[ y#_@KT( 0i@H&裔F<NX?: R/5#`] @@oZ?L+ O+ձ01Ҭ@iWt@ZxGs(sܖֱ 00"a_D,Uip 2TxI 1o9*1ENj a,%M 00Ҽ:=A@ ýpK6}&VBձ DU/%ܑgv, p`!0A %x&GDO6*_8OY ,29ׁ @_$>C5þUy 0 dB?M `w"0e)I{;Q8ֱ @@i;1vNf@z@=ց 00]!ҙ\PDUgvb nlnx\ԁ 00iD7 JFc yL>㤁֧Em@S 0@iWC":gL^a\1 0@;tvR^m9hp}^[-ر 0 @E}Bb 7P/x~0a @iwA"%.Y dg\}lױ @@mn!7Rj<0o3Y 0@]A(X BIt~x1:<r`%)L5.֡ @AiW$L'Ȇ`]nh.$&p.? ձ 0EA!" ,8nSS=_H 0@麃H&<Р׸8,fpX= ӎ-pvkGU03PBExpb։ 0@i(>n !9h0@>O 1 0o;Ih}Sư"#HU 0@n >r7Aw= `ƒ1.R7 ֱ 00Ε 2>X:i.ռ8!00OOV1H|*v(D, ^tF p 0@iG%r7A($ޖ 4 6h 3A 1o Etr{I<$}3NrmaA 0@o|NACҔt\XͳWh+o-=Eֱ 00}c/`FR\ױ 00i]Bd!@N`0B >~ @iG wi(̙95Aױ 00^P@&rYaǧ.( A @_~U. ,wp~::(ر 0 sF!/`@ @;Ԃ6: pVaM-ױ @@BĻ.E>c5FxF6] 0@.P_! &gdw>7cxC)։ 0@.Q? DD?P]9iB$ձ 00NG*H @BT@$9PϿEk;h*- A 0@4&Fp!}E_`bFL 0@>)  Ft~sJOZױ ҶiE?U?[ *&( @sz+^9 0@iWw@@KN`y.( X o ر01i6HH| `Momñ\޲=u|&A @_"q``Vq@5fXLr6ձ 0 {AB(ыqG}@U1@1 0@;uu+{A $g;*$%ÑvF 0@ЏM!*JDƕ̠waƥIFױ 00ӼС 2D0ɩdg=GОW| 0@ihŻ!aj'.}pA @igwyZv:9zSqUN]zE(UZՊ ס0@iL]; "N@JYH,fՁ 00i_ Q0<O< ؠ.#ب1 0@O;8u+:!D|l8d[57A Yֱ 0 B*E/@*Xg:KYlJ3@]ձ 00. $"@m;0Up9E 0 d;Ai>% wUIz;@<3p)F3vձ 00>k#% F>2@Aی!ׁ 0w*5 `3ruֱ @@oEn&T;>iq@!γ0G`ױ 00}* "(D@Sޛ,3[5`. 01QJDTbIyOdPY5-tց 00{bUX8_9KuHkL 0_ވvK.@~~a8`-%5 @Ai{@U<)@p ֱ 00ݻ4) UwXj@Dpj-G 00>A gSw_|XJر 00^RDX$SP @{R9LՁ 00 C ZԼ|z"1 lRH 2󂭎u6La  0@ҎPC-M<\5uxaOWVl} 01P䗋`=h~m],0Fsձ 00|TA+ D*g:lU,(3u$ֱ 00й YKCi7Wձ 0Al@HtWK(Q* k1 0@O;:t{A0d0`!7I^&Q9' v!J=Iy "=YMveK @AҥP`u_ !007DV+U~` ^@>{(,p1 0o ,UlTs#C V@eֱ @@i/ Er:@3 *m< vTܭL1L %A?{ױ @_* >ŋgr;7(x:7.iv @i7a0D`U ϡL=g?/'L.mՁ 0i`Kn8!$\[@3_ 01iFx!=A'%sOd`9gpO) 0@PQ&#Do:p:1@- i@ց 00Ӿ \: t T71J 0@n in` `Lz/^AqԱ 00iN脠ž3dI"5bi1 0@Ou"(AH0Nw'oVFֱ @@i%n K+$f9gر @@io2!Eaz(HwO @ieH$%ix@vp.R7) lk1 0@;w .x UduCHmLlط 0i@{Ē D>1<|e, 0@:`E `1`@nm3'Ź00_&*F eVfr 0@WA&  ƙ\DIJ@@[ 0 @} C~tj6QC ձ @@,|D EH":8zZY2_) @AiZGgŪDHPpXlց @h0 &xA#xUvnPΛ iC7  0@݂6x7p:`J4~7rݳ 0AyXTp‚= 7+0DR 0@A x7A|$`g:+1|æ2M[. 0@iWABf `6vpEՁ @1L R* dollujp @1iwT#` &.@8cMsױ 00ҡ*SFD".KŻ{3CFԡ @@ix!NUִU: @D? 0@~w!Nu) `i Pd\1 0@-L0hQnu 9 @@oZw_&4U`n,aq# xtց 00A\PEUpAt^޴y޹ 00i*{|_^='`[* @A{؂\@f*>`CܢP8ƃG @@3$ &A/gʌ@AOZCcJpYN8BoI/_&0 0}tV|x7A"ItxfrF,1Cs1 0@ҢM@0% ~XWA 0@o  w &_NXM;<1}09/ձ0@i v8<"4P$8A`;fH 0@Gw!LJ 1 0*8Z{@cu"5|j0'Y tA 0@oz&0;%TmWx5L xֱ YXˈ_$*0qxOu @_4MEJ u 4ر 1]FDH&~J u5ر 1]FDH&J u 5ر 1]FDH&J u4ر 1]FDH&>K u 4ر 1JDH&~K uر 1JDH&K u ر 1NDH&K uر 1NI&>H u ر 1RI&~H uر 1RI&H u ر 1]VI&H uر 1]VI&>I u ر 1ZI&~I u ر 1EdXgر 1@I&I u ر 1m]@I&>J u ر 1@I&~J uر 1m\AI&J u 0owA n_uA 0οi0AHH`U}\  vBI&%:2A 0οiTh콪`{ A 0οiTh콪`s 1ֿiTp $ ~Xg1ֿiTp $ ~Xg1ֿiTp $ ~Xg1ֿiTp $ ~Xg1ֿiTp $ ~Xg1ֿiTp $ ~Xg1ֿiTp $ ~Xg1ֿiTp $ ~Xg1ֿiTp $ ~Xg1ֿiTp $ ~Xg1ֿiTp $ ~Xg1ֿiTp $ ~Xg1ֿiTp $ ~Xg1ֿiTp $ ~XgA 0οiTh콪`y vBI&%: vBI&%$u 0o!Dd[H u5ر 1-AI&uر 1AI&uر 1-@I&uر 1m]@I&`C ر 1@I&`; ر 1Ed).<ر 1ZI&`+ ر 1]VI&$:Gر 1]VI&%:7ر 1RI&$:'ر 1RI&%:ر 1NI&$:ر 1NDH&%:ر 1JDH&$:ر 1JDH&%:ر 1]FDH&H u5ر 1]FDH&I uo5ر 1]FDH&J uO5ر 1]FDH&K u/5ر 1BDH&H u5ر 1BDH&I u4ر 1BDH&J u4ر 1BDH&K u4 0oA nu 0oA n3u 0oA nSu 0oA nsu 0oBDd[Dr]3x1 1޿iDCb&.1 1޿iDCb*.<1 1޿iDCb..10޿iL(*&$:10޿iL(*f$:10޿iL(*$:10޿iL(*$:10޿iL(*&%:10޿iL(*f%:w10޿iL(*%:g10޿iL(*%:W114*z0$ ~114*z0$ ~:114*z0$ ~Z114*z0$ ~z114*z0$ ~1 ð?顨r玮d]=1 ð?顨r玶d]=1 ð?顨r玾d]L=1ðͿiTOw.:G1ðͿiTOwn:71ðͿiTOw:'1ðͿiTOw:1ðͿiTOw.:104*OwgJ su 104*OwghK se 104*OwgK sU 1ðͿiTOw>:C1ðͿiTOw~:31ðͿiTOw:#1ðͿiTOw:1ðͿiTOw>:1 ð?顨r玭d]=1 ð?顨r玵d]=1 ð?顨r玽d]T=114*z0$ ~>H :114*z0$ ~~H :114*z0$ ~H :114*z0$ ~H :114*z0$ ~>I :10޿iL(*~I u10޿iL(*I u10޿iL(*I u10޿iL(*>J u10޿iL(*~J uc10޿iL(*J uC10޿iL(*J u#10޿iL(*>K u1 1޿iDCXg01 1޿iDCXg01 1޿iDCXg0 0oBDd[u` 0oA n?$: 0oA n_$: 0oA n$: 0oA n$:ر 1BDH&%.5ر 1BDH&&. 5ر 1BDH&'.4ر 1BDH&(. 4ر 1]FDH&).5ر 1]FDH&*. 5ر 1]FDH&+.4ر 1]FDH&,. 4ر 1JDH&-.ر 1JDH&.. ر 1NDH&/.ر 1NI& . ر 1RI&!.ر 1RI&". ر 1]VI&#.ر 1]VI&$. ر 1ZI&%. ر 1Edo`ر 1@I&'. ر 1m]@I&(. ر 1@I&).ر 1m\AI&*. 0owA n%:A 0οi0AHH`UYr]3 vBI&%^ 2A 0οiTh*K q{ A 0οiTh*K qs 1ֿiTp $ ~`1ֿiTp $ ~`1ֿiTp $ ~/`1ֿiTp $ ~?`1ֿiTp $ ~O`1ֿiTp $ ~_`1ֿiTp $ ~o`1ֿiTp $ ~`1ֿiTp $ ~`1ֿiTp $ ~`1ֿiTp $ ~`1ֿiTp $ ~`1ֿiTp $ ~`1ֿiTp $ ~`A 0οiTh*K qy vBI&%^  vBI&%: 0o!Dd[#.5ر 1-AI&`$:ر 1AI&`$:ر 1-@I&`$:ر 1m]@I&`J uC ر 1@I&`J u; ر 1Ed Xg<ر 1ZI&`J u+ ر 1]VI&`\ Gر 1]VI&`\ 7ر 1RI&`\ 'ر 1RI&`\ ر 1NI&`\ ر 1NDH&`\ ر 1JDH&`\ ر 1JDH&`\ ر 1]FDH&`".5ر 1]FDH&`&.o5ر 1]FDH&`*.O5ر 1]FDH&`../5ر 1BDH&`".5ر 1BDH&`&.4ر 1BDH&`*.4ر 1BDH&`..4 0oA nL$: 0oA n$: 0oA nL%: 0oA n%: 0oBDd[ux1 1޿iDC櫂Xg1 1޿iDC櫂Xg<1 1޿iDC櫂Xg10޿iL(*\ 10޿iL(*\ 10޿iL(*\ 10޿iL(*\ 10޿iL(*\ 10޿iL(*\ w10޿iL(*\ g10޿iL(*\ W114*z0$ ~hH :114*z0$ ~H :114*z0$ ~hI :114*z0$ ~I :114*z0$ ~hJ :1 ð?顨ruPg=1 ð?顨rڒuPg=1 ð?顨ruPgL=1ðͿiTOw~ G1ðͿiTOw~ 71ðͿiTOw~ '1ðͿiTOw~ 1ðͿiTOw~ 104*Owg+.u 104*Owg-.e 104*Owg/.U 1ðͿiTOw~ C1ðͿiTOw~ 31ðͿiTOw~ #1ðͿiTOw~ 1ðͿiTOw~ 1 ð?顨ruPg=1 ð?顨r֒uPg=1 ð?顨ruPgT=114*z0$ ~ . 114*z0$ ~!. 114*z0$ ~". 114*z0$ ~#. 114*z0$ ~$. 10޿iL(*%.10޿iL(*&.10޿iL(*'.10޿iL(*(.10޿iL(*).c10޿iL(**.C10޿iL(*+.#10޿iL(*,.1 1޿iDC櫂ߒ`01 1޿iDC櫂`01 1޿iDC櫂`0 0oBDd[$:` 0oA n\  0oA n|\  0oA n\  0oA n|\ ر 1BDH&Xg5ر 1BDH&Xg 5ر 1BDH&Xg4ر 1BDH&Xg 4ر 1]FDH&Xg5ر 1]FDH&Xg 5ر 1]FDH&Xg4ر 1]FDH&Xg 4ر 1JDH&Xgر 1JDH&Xg ر 1NDH&Xgر 1NI&Xg ر 1RI&Xgر 1RI&Xg ر 1]VI&Xgر 1]VI&Xg ر 1ZI&Xg ر 1Ed I uر 1@I&Xg ر 1m]@I&Xg ر 1@I&Xgر 1m\AI&Xg 0owA n\ A 0οi0AHH`Ugu vBI&%[{]32A 0οiTh*..{ A 0οiTh*/.s 1ֿiTp $ ~>h u1ֿiTp $ ~~h u1ֿiTp $ ~h u1ֿiTp $ ~h u1ֿiTp $ ~>i u1ֿiTp $ ~~i u1ֿiTp $ ~i u1ֿiTp $ ~i u1ֿiTp $ ~>j u1ֿiTp $ ~~j u1ֿiTp $ ~j u1ֿiTp $ ~j u1ֿiTp $ ~>k u1ֿiTp $ ~~k uA 0οiTh*..y vBI&%@{]3 vBI&%@^  0o!Dd[Xg5ر 1-AI&\ ر 1AI&\ ر 1-@I&\ ر 1m]@I&).C ر 1@I&).; ر 1Ed `<ر 1ZI&).+ ر 1]VI&Ir]3Gر 1]VI&Yr]37ر 1RI&Ir]3'ر 1RI&Yr]3ر 1NI&Ir]3ر 1NDH&Yr]3ر 1JDH&Ir]3ر 1JDH&Yr]3ر 1]FDH&Xg5ر 1]FDH&Xgo5ر 1]FDH&XgO5ر 1]FDH&Xg/5ر 1BDH&Xg5ر 1BDH&Xg4ر 1BDH&Xg4ر 1BDH&Xg4 0oA n0\  0oA n0\  0oA n0\  0oA n0\  0oBDd[L$:x1 1޿iDCf`1 1޿iDC`<1 1޿iDC`10޿iL(*`Br]310޿iL(*`Fr]310޿iL(*`Jr]310޿iL(*`Nr]310޿iL(*`Rr]310޿iL(*`Vr]3w10޿iL(*`Zr]3g10޿iL(*`^r]3W114*z0$ ~!. 114*z0$ ~#. 114*z0$ ~%. 114*z0$ ~'. 114*z0$ ~). 1 ð?顨rJ@=1 ð?顨rhK@=1 ð?顨rK@L=1ðͿiTOwB]3G1ðͿiTOwF]371ðͿiTOwJ]3'1ðͿiTOwN]31ðͿiTOwR]3104*Owg8gu 104*Owg8ge 104*Owg8gU 1ðͿiTOwC]3C1ðͿiTOwG]331ðͿiTOwK]3#1ðͿiTOwO]31ðͿiTOwS]31 ð?顨rJ@=1 ð?顨rXK@=1 ð?顨rK@T=114*z0$ ~3114*z0$ ~3114*z0$ ~3114*z0$ ~3114*z0$ ~310޿iL(*Xg10޿iL(*Xg10޿iL(*Xg10޿iL(*Xg10޿iL(*Xgc10޿iL(*XgC10޿iL(*Xg#10޿iL(*Xg1 1޿iDC~K u01 1޿iDCK u01 1޿iDCK u0 0oBDd[|\ ` 0oA nCr]3 0oA nEr]3 0oA nGr]3 0oA nIr]3ر 1BDH&_`5ر 1BDH&o` 5ر 1BDH&`4ر 1BDH&` 4ر 1]FDH&`5ر 1]FDH&` 5ر 1]FDH&`4ر 1]FDH&ϒ` 4ر 1JDH&ߒ`ر 1JDH&` ر 1NDH&`ر 1NI&` ر 1RI&`ر 1RI&/` ر 1]VI&?`ر 1]VI&O` ر 1ZI&_` ر 1Ed &.ر 1@I&` ر 1m]@I&` ر 1@I&`ر 1m\AI&` 0owA nWr]3A 0οi0AHH`U%: vBI&%ou2A 0οiTh*dg{ A 0οiTh*dgs 1ֿiTp $ ~.1ֿiTp $ ~.1ֿiTp $ ~.1ֿiTp $ ~.1ֿiTp $ ~.1ֿiTp $ ~.1ֿiTp $ ~.1ֿiTp $ ~.1ֿiTp $ ~.1ֿiTp $ ~.1ֿiTp $ ~.1ֿiTp $ ~.1ֿiTp $ ~.1ֿiTp $ ~.A 0οiTh*dgy vBI&%u vBI&%I{]3 0o!Dd[0`5ر 1-AI&Fr]3ر 1AI&Fr]3ر 1-@I&Fr]3ر 1m]@I&XgC ر 1@I&Xg; ر 1Ed `J u<ر 1ZI&Xg+ ر 1]VI&&uGر 1]VI&fu7ر 1RI&&u'ر 1RI&fuر 1NI&&uر 1NDH&fuر 1JDH&&uر 1JDH&fuر 1]FDH&&`5ر 1]FDH&f`o5ر 1]FDH&`O5ر 1]FDH&`/5ر 1BDH&&`5ر 1BDH&f`4ر 1BDH&`4ر 1BDH&`4 0oA nDr]3 0oA nLr]3 0oA nTr]3 0oA n\r]3 0oBDd[0\ x1 1޿iDCI u1 1޿iDCJ u<1 1޿iDCK u10޿iL(* u10޿iL(*u10޿iL(*)u10޿iL(*9u10޿iL(*Iu10޿iL(*Yuw10޿iL(*iug10޿iL(*yuW114*z0$ ~3114*z0$ ~3114*z0$ ~3114*z0$ ~3114*z0$ ~31 ð?顨r+Yu=1 ð?顨r-Yu=1 ð?顨r/YuL=1ðͿiTOw wG1ðͿiTOww71ðͿiTOw+w'1ðͿiTOw;w1ðͿiTOwKw104*Owgu 104*Owgڒe 104*OwgU 1ðͿiTOwwC1ðͿiTOww31ðͿiTOw/w#1ðͿiTOw?w1ðͿiTOwOw1 ð?顨r`+Yu=1 ð?顨r`-Yu=1 ð?顨r`/YuT=114*z0$ ~114*z0$ ~114*z0$ ~/114*z0$ ~?114*z0$ ~O10޿iL(*_`10޿iL(*o`10޿iL(*`10޿iL(*`10޿iL(*`c10޿iL(*`C10޿iL(*`#10޿iL(*ϒ`1 1޿iDC-.01 1޿iDC..01 1޿iDC/.0 0oBDd[Ar]3` 0oA nu 0oA nu 0oA nu 0oA n'uر 1BDH&~I u5ر 1BDH&I u 5ر 1BDH&I u4ر 1BDH&>J u 4ر 1]FDH&~J u5ر 1]FDH&J u 5ر 1]FDH&J u4ر 1]FDH&>K u 4ر 1JDH&~K uر 1JDH&K u ر 1NDH&K uر 1NI&>H u ر 1RI&~H uر 1RI&H u ر 1]VI&H uر 1]VI&>I u ر 1ZI&~I u ر 1Ed Xgر 1@I&I u ر 1m]@I&>J u ر 1@I&~J uر 1m\AI&J u 0owA n_uA 0οi0AHH`U|\  vBI&%:2A 0οiTh*`{ A 0οiTh*`s 1ֿiTp $ ~Xg1ֿiTp $ ~Xg1ֿiTp $ ~Xg1ֿiTp $ ~Xg1ֿiTp $ ~Xg1ֿiTp $ ~Xg1ֿiTp $ ~Xg1ֿiTp $ ~Xg1ֿiTp $ ~Xg1ֿiTp $ ~Xg1ֿiTp $ ~Xg1ֿiTp $ ~Xg1ֿiTp $ ~Xg1ֿiTp $ ~XgA 0οiTh*`y vBI&%: vBI&%$u 0o!Dd[H u5ر 1-AI&uر 1AI&uر 1-@I&uر 1m]@I&`C ر 1@I&`; ر 1Ed ).<ر 1ZI&`+ ر 1]VI&$:Gر 1]VI&%:7ر 1RI&$:'ر 1RI&%:ر 1NI&$:ر 1NDH&%:ر 1JDH&$:ر 1JDH&%:ر 1]FDH&H u5ر 1]FDH&I uo5ر 1]FDH&J uO5ر 1]FDH&K u/5ر 1BDH&H u5ر 1BDH&I u4ر 1BDH&J u4ر 1BDH&K u4 0oA nu 0oA n3u 0oA nSu 0oA nsu 0oBDd[Dr]3x1 1޿iDC`&.1 1޿iDC`*.<1 1޿iDC`..10޿iL(*&$:10޿iL(*f$:10޿iL(*$:10޿iL(*$:10޿iL(*&%:10޿iL(*f%:w10޿iL(*%:g10޿iL(*%:W114*z0$ ~114*z0$ ~:114*z0$ ~Z114*z0$ ~z114*z0$ ~1 ð?顨rd]=1 ð?顨rd]=1 ð?顨rd]L=1ðͿiTOw.:G1ðͿiTOwn:71ðͿiTOw:'1ðͿiTOw:1ðͿiTOw.:104*OwgJ su 104*OwghK se 104*OwgK sU 1ðͿiTOw>:C1ðͿiTOw~:31ðͿiTOw:#1ðͿiTOw:1ðͿiTOw>:1 ð?顨rd]=1 ð?顨rd]=1 ð?顨rd]T=114*z0$ ~>H :114*z0$ ~~H :114*z0$ ~H :114*z0$ ~H :114*z0$ ~>I :10޿iL(*~I u10޿iL(*I u10޿iL(*I u10޿iL(*>J u10޿iL(*~J uc10޿iL(*J uC10޿iL(*J u#10޿iL(*>K u1 1޿iDCXg01 1޿iDCXg01 1޿iDCXg0 0oBDd[u` 0oA n?$: 0oA n_$: 0oA n$: 0oA n$:ر 1BDH&%.5ر 1BDH&&. 5ر 1BDH&'.4ر 1BDH&(. 4ر 1]FDH&).5ر 1]FDH&*. 5ر 1]FDH&+.4ر 1]FDH&,. 4ر 1JDH&-.ر 1JDH&.. ر 1NDH&/.ر 1NI& . ر 1RI&!.ر 1RI&". ر 1]VI&#.ر 1]VI&$. ر 1ZI&%. ر 1Ed o`ر 1@I&'. ر 1m]@I&(. ر 1@I&).ر 1m\AI&*. 0owA n%:A 0οi0AHH`UYr]3 vBI&%^ 2A 0οiTh*K q{ A 0οiTh*K qs 1ֿiTp $ ~`1ֿiTp $ ~`1ֿiTp $ ~/`1ֿiTp $ ~?`1ֿiTp $ ~O`1ֿiTp $ ~_`1ֿiTp $ ~o`1ֿiTp $ ~`1ֿiTp $ ~`1ֿiTp $ ~`1ֿiTp $ ~`1ֿiTp $ ~`1ֿiTp $ ~`1ֿiTp $ ~`A 0οiTh*K qy vBI&%^  vBI&%: 0o!Dd[#.5ر 1-AI&`$:ر 1AI&`$:ر 1-@I&`$:ر 1m]@I&`J uC ر 1@I&`J u; ر 1Ed Xg<ر 1ZI&`J u+ ر 1]VI&`\ Gر 1]VI&`\ 7ر 1RI&`\ 'ر 1RI&`\ ر 1NI&`\ ر 1NDH&`\ ر 1JDH&`\ ر 1JDH&`\ ر 1]FDH&`".5ر 1]FDH&`&.o5ر 1]FDH&`*.O5ر 1]FDH&`../5ر 1BDH&`".5ر 1BDH&`&.4ر 1BDH&`*.4ر 1BDH&`..4 0oA nL$: 0oA n$: 0oA nL%: 0oA n%: 0oBDd[ux1 1޿iDCXg1 1޿iDCXg<1 1޿iDCXg10޿iL(*\ 10޿iL(*\ 10޿iL(*\ 10޿iL(*\ 10޿iL(*\ 10޿iL(*\ w10޿iL(*\ g10޿iL(*\ W114*z0$ ~hH :114*z0$ ~H :114*z0$ ~hI :114*z0$ ~I :114*z0$ ~hJ :1 ð?顨ruPg=1 ð?顨rڒuPg=1 ð?顨ruPgL=1ðͿiTOw~ G1ðͿiTOw~ 71ðͿiTOw~ '1ðͿiTOw~ 1ðͿiTOw~ 104*Owg+.u 104*Owg-.e 104*Owg/.U 1ðͿiTOw~ C1ðͿiTOw~ 31ðͿiTOw~ #1ðͿiTOw~ 1ðͿiTOw~ 1 ð?顨ruPg=1 ð?顨r֒uPg=1 ð?顨ruPgT=114*z0$ ~ . 114*z0$ ~!. 114*z0$ ~". 114*z0$ ~#. 114*z0$ ~$. 10޿iL(*%.10޿iL(*&.10޿iL(*'.10޿iL(*(.10޿iL(*).c10޿iL(**.C10޿iL(*+.#10޿iL(*,.1 1޿iDCߒ`01 1޿iDC`01 1޿iDC`0 0oBDd[$:` 0oA n\  0oA n|\  0oA n\  0oA n|\ ر 1BDH&Xg5ر 1BDH&Xg 5ر 1BDH&Xg4ر 1BDH&Xg 4ر 1]FDH&Xg5ر 1]FDH&Xg 5ر 1]FDH&Xg4ر 1]FDH&Xg 4ر 1JDH&Xgر 1JDH&Xg ر 1NDH&Xgر 1NI&Xg ر 1RI&Xgر 1RI&Xg ر 1]VI&Xgر 1]VI&Xg ر 1ZI&Xg ر 1Ed I uر 1@I&Xg ر 1m]@I&Xg ر 1@I&Xgر 1m\AI&Xg 0owA n\ A 0οi0AHH`Ugu vBI&%[{]32A 0οiTh*..{ A 0οiTh*/.s 1ֿiTp $ ~>h u1ֿiTp $ ~~h u1ֿiTp $ ~h u1ֿiTp $ ~h u1ֿiTp $ ~>i u1ֿiTp $ ~~i u1ֿiTp $ ~i u1ֿiTp $ ~i u1ֿiTp $ ~>j u1ֿiTp $ ~~j u1ֿiTp $ ~j u1ֿiTp $ ~j u1ֿiTp $ ~>k u1ֿiTp $ ~~k uA 0οiTh*..y vBI&%@{]3 vBI&%@^  0o!Dd[Xg5ر 1-AI&\ ر 1AI&\ ر 1-@I&\ ر 1m]@I&).C ر 1@I&).; ر 1Ed `<ر 1ZI&).+ ر 1]VI&Ir]3Gر 1]VI&Yr]37ر 1RI&Ir]3'ر 1RI&Yr]3ر 1NI&Ir]3ر 1NDH&Yr]3ر 1JDH&Ir]3ر 1JDH&Yr]3ر 1]FDH&Xg5ر 1]FDH&Xgo5ر 1]FDH&XgO5ر 1]FDH&Xg/5ر 1BDH&Xg5ر 1BDH&Xg4ر 1BDH&Xg4ر 1BDH&Xg4 0oA n0\  0oA n0\  0oA n0\  0oA n0\  0oBDd[L$:x1 1޿iDCf`1 1޿iDC`<1 1޿iDC`10޿iL(*`Br]310޿iL(*`Fr]310޿iL(*`Jr]310޿iL(*`Nr]310޿iL(*`Rr]310޿iL(*`Vr]3w10޿iL(*`Zr]3g10޿iL(*`^r]3W114*z0$ ~!. 114*z0$ ~#. 114*z0$ ~%. 114*z0$ ~'. 114*z0$ ~). 1 ð?顨rJ@=1 ð?顨rhK@=1 ð?顨rK@L=1ðͿiTOwB]3G1ðͿiTOwF]371ðͿiTOwJ]3'1ðͿiTOwN]31ðͿiTOwR]3104*Owg8gu 104*Owg8ge 104*Owg8gU 1ðͿiTOwC]3C1ðͿiTOwG]331ðͿiTOwK]3#1ðͿiTOwO]31ðͿiTOwS]31 ð?顨rJ@=1 ð?顨rXK@=1 ð?顨rK@T=114*z0$ ~3114*z0$ ~3114*z0$ ~3114*z0$ ~3114*z0$ ~310޿iL(*Xg10޿iL(*Xg10޿iL(*Xg10޿iL(*Xg10޿iL(*Xgc10޿iL(*XgC10޿iL(*Xg#10޿iL(*Xg1 1޿iDC~K u01 1޿iDCK u01 1޿iDCK u0 0oBDd[|\ ` 0oA nCr]3 0oA nEr]3 0oA nGr]3 0oA nIr]3ر 1BDH&_`5ر 1BDH&o` 5ر 1BDH&`4ر 1BDH&` 4ر 1]FDH&`5ر 1]FDH&` 5ر 1]FDH&`4ر 1]FDH&ϒ` 4ر 1JDH&ߒ`ر 1JDH&` ر 1NDH&`ر 1NI&` ر 1RI&`ر 1RI&/` ر 1]VI&?`ر 1]VI&O` ر 1ZI&_` ر 1Ed &.ر 1@I&` ر 1m]@I&` ر 1@I&`ر 1m\AI&` 0owA nWr]3A 0οi0AHH`U%: vBI&%ou2A 0οiTh*dg{ A 0οiTh*dgs 1ֿiTp $ ~.1ֿiTp $ ~.1ֿiTp $ ~.1ֿiTp $ ~.1ֿiTp $ ~.1ֿiTp $ ~.1ֿiTp $ ~.1ֿiTp $ ~.1ֿiTp $ ~.1ֿiTp $ ~.1ֿiTp $ ~.1ֿiTp $ ~.1ֿiTp $ ~.1ֿiTp $ ~.A 0οiTh*dgy vBI&%u vBI&%I{]3 0o!Dd[0`5ر 1-AI&Fr]3ر 1AI&Fr]3ر 1-@I&Fr]3ر 1m]@I&XgC ر 1@I&Xg; ر 1Ed `J u<ر 1ZI&Xg+ ر 1]VI&&uGر 1]VI&fu7ر 1RI&&u'ر 1RI&fuر 1NI&&uر 1NDH&fuر 1JDH&&uر 1JDH&fuر 1]FDH&&`5ر 1]FDH&f`o5ر 1]FDH&`O5ر 1]FDH&`/5ر 1BDH&&`5ر 1BDH&f`4ر 1BDH&`4ر 1BDH&`4 0oA nDr]3 0oA nLr]3 0oA nTr]3 0oA n\r]3 0oBDd[0\ x1 1޿iDCI u1 1޿iDCJ u<1 1޿iDCK u10޿iL(* u10޿iL(*u10޿iL(*)u10޿iL(*9u10޿iL(*Iu10޿iL(*Yuw10޿iL(*iug10޿iL(*yuW114*z0$ ~3114*z0$ ~3114*z0$ ~3114*z0$ ~3114*z0$ ~31 ð?顨r+Yu=1 ð?顨r-Yu=1 ð?顨r/YuL=1ðͿiTOw wG1ðͿiTOww71ðͿiTOw+w'1ðͿiTOw;w1ðͿiTOwKw104*Owgu 104*Owgڒe 104*OwgU 1ðͿiTOwwC1ðͿiTOww31ðͿiTOw/w#1ðͿiTOw?w1ðͿiTOwOw1 ð?顨r`+Yu=1 ð?顨r`-Yu=1 ð?顨r`/YuT=114*z0$ ~114*z0$ ~114*z0$ ~/114*z0$ ~?114*z0$ ~O10޿iL(*_`10޿iL(*o`10޿iL(*`10޿iL(*`10޿iL(*`c10޿iL(*`C10޿iL(*`#10޿iL(*ϒ`1 1޿iDC-.01 1޿iDC..01 1޿iDC/.0 0oBDd[Ar]3` 0oA nu 0oA nu 0oA nu 0oA n'uر 1BDH&~I u5ر 1BDH&I u 5ر 1BDH&I u4ر 1BDH&>J u 4ر 1]FDH&~J u5ر 1]FDH&J u 5ر 1]FDH&J u4ر 1]FDH&>K u 4ر 1JDH&~K uر 1JDH&K u ر 1NDH&K uر 1NI&>H u ر 1RI&~H uر 1RI&H u ر 1]VI&H uر 1]VI&>I u ر 1ZI&~I u ر 1Ed Xgر 1@I&I u ر 1m]@I&>J u ر 1@I&~J uر 1m\AI&J u 0owA n_uA 0οi0AHH`U|\  vBI&%:2A 0οiTh*`{ A 0οiTh*`s 1ֿiTp $ ~Xg1ֿiTp $ ~Xg1ֿiTp $ ~Xg1ֿiTp $ ~Xg1ֿiTp $ ~Xg1ֿiTp $ ~Xg1ֿiTp $ ~Xg1ֿiTp $ ~Xg1ֿiTp $ ~Xg1ֿiTp $ ~Xg1ֿiTp $ ~Xg1ֿiTp $ ~Xg1ֿiTp $ ~Xg1ֿiTp $ ~XgA 0οiTh*`y vBI&%: vBI&%$u 0o!Dd[H u5ر 1-AI&uر 1AI&uر 1-@I&uر 1m]@I&`C ر 1@I&`; ر 1Ed ).<ر 1ZI&`+ ر 1]VI&$:Gر 1]VI&%:7ر 1RI&$:'ر 1RI&%:ر 1NI&$:ر 1NDH&%:ر 1JDH&$:ر 1JDH&%:ر 1]FDH&H u5ر 1]FDH&I uo5ر 1]FDH&J uO5ر 1]FDH&K u/5ر 1BDH&H u5ر 1BDH&I u4ر 1BDH&J u4ر 1BDH&K u4 0oA nu 0oA n3u 0oA nSu 0oA nsu 0oBDd[Dr]3x1 1޿iDC`&.1 1޿iDC`*.<1 1޿iDC`..10޿iL(*&$:10޿iL(*f$:10޿iL(*$:10޿iL(*$:10޿iL(*&%:10޿iL(*f%:w10޿iL(*%:g10޿iL(*%:W114*z0$ ~114*z0$ ~:114*z0$ ~Z114*z0$ ~z114*z0$ ~1 ð?顨rd]=1 ð?顨rd]=1 ð?顨rd]L=1ðͿiTOw.:G1ðͿiTOwn:71ðͿiTOw:'1ðͿiTOw:1ðͿiTOw.:104*OwgJ su 104*OwghK se 104*OwgK sU 1ðͿiTOw>:C1ðͿiTOw~:31ðͿiTOw:#1ðͿiTOw:1ðͿiTOw>:1 ð?顨rd]=1 ð?顨rd]=1 ð?顨rd]T=114*z0$ ~>H :114*z0$ ~~H :114*z0$ ~H :114*z0$ ~H :114*z0$ ~>I :10޿iL(*~I u10޿iL(*I u10޿iL(*I u10޿iL(*>J u10޿iL(*~J uc10޿iL(*J uC10޿iL(*J u#10޿iL(*>K u1 1޿iDCXg01 1޿iDCXg01 1޿iDCXg0 0oBDd[u` 0oA n?$: 0oA n_$: 0oA n$: 0oA n$:ر 1BDH&%.5ر 1BDH&&. 5ر 1BDH&'.4ر 1BDH&(. 4ر 1]FDH&).5ر 1]FDH&*. 5ر 1]FDH&+.4ر 1]FDH&,. 4ر 1JDH&-.ر 1JDH&.. ر 1NDH&/.ر 1NI& . ر 1RI&!.ر 1RI&". ر 1]VI&#.ر 1]VI&$. ر 1ZI&%. ر 1Ed o`ر 1@I&'. ر 1m]@I&(. ر 1@I&).ر 1m\AI&*. 0owA n%:A 0οi0AHH`UYr]3 vBI&%^ 2A 0οiTh*K q{ A 0οiTh*K qs 1ֿiTp $ ~`1ֿiTp $ ~`1ֿiTp $ ~/`1ֿiTp $ ~?`1ֿiTp $ ~O`1ֿiTp $ ~_`1ֿiTp $ ~o`1ֿiTp $ ~`1ֿiTp $ ~`1ֿiTp $ ~`1ֿiTp $ ~`1ֿiTp $ ~`1ֿiTp $ ~`1ֿiTp $ ~`A 0οiTh*K qy vBI&%^  vBI&%: 0o!Dd[#.5ر 1-AI&`$:ر 1AI&`$:ر 1-@I&`$:ر 1m]@I&`J uC ر 1@I&`J u; ر 1Ed Xg<ر 1ZI&`J u+ ر 1]VI&`\ Gر 1]VI&`\ 7ر 1RI&`\ 'ر 1RI&`\ ر 1NI&`\ ر 1NDH&`\ ر 1JDH&`\ ر 1JDH&`\ ر 1]FDH&`".5ر 1]FDH&`&.o5ر 1]FDH&`*.O5ر 1]FDH&`../5ر 1BDH&`".5ر 1BDH&`&.4ر 1BDH&`*.4ر 1BDH&`..4 0oA nL$: 0oA n$: 0oA nL%: 0oA n%: 0oBDd[ux1 1޿iDCXg1 1޿iDCXg<1 1޿iDCXg10޿iL(*\ 10޿iL(*\ 10޿iL(*\ 10޿iL(*\ 10޿iL(*\ 10޿iL(*\ w10޿iL(*\ g10޿iL(*\ W114*z0$ ~hH :114*z0$ ~H :114*z0$ ~hI :114*z0$ ~I :114*z0$ ~hJ :1 ð?顨ruPg=1 ð?顨rڒuPg=1 ð?顨ruPgL=1ðͿiTOw~ G1ðͿiTOw~ 71ðͿiTOw~ '1ðͿiTOw~ 1ðͿiTOw~ 104*Owg+.u 104*Owg-.e 104*Owg/.U 1ðͿiTOw~ C1ðͿiTOw~ 31ðͿiTOw~ #1ðͿiTOw~ 1ðͿiTOw~ 1 ð?顨ruPg=1 ð?顨r֒uPg=1 ð?顨ruPgT=114*z0$ ~ . 114*z0$ ~!. 114*z0$ ~". 114*z0$ ~#. 114*z0$ ~$. 10޿iL(*%.10޿iL(*&.10޿iL(*'.10޿iL(*(.10޿iL(*).c10޿iL(**.C10޿iL(*+.#10޿iL(*,.1 1޿iDCߒ`01 1޿iDC`01 1޿iDC`0 0oBDd[$:` 0oA n\  0oA n|\  0oA n\  0oA n|\ ر 1BDH&Xg5ر 1BDH&Xg 5ر 1BDH&Xg4ر 1BDH&Xg 4ر 1]FDH&Xg5ر 1]FDH&Xg 5ر 1]FDH&Xg4ر 1]FDH&Xg 4ر 1JDH&Xgر 1JDH&Xg ر 1NDH&Xgر 1NI&Xg ر 1RI&Xgر 1RI&Xg ر 1]VI&Xgر 1]VI&Xg ر 1ZI&Xg ر 1Ed I uر 1@I&Xg ر 1m]@I&Xg ر 1@I&Xgر 1m\AI&Xg 0owA n\ A 0οi0AHH`Ugu vBI&%[{]32A 0οiTh*..{ A 0οiTh*/.s 1ֿiTp $ ~>h u1ֿiTp $ ~~h u1ֿiTp $ ~h u1ֿiTp $ ~h u1ֿiTp $ ~>i u1ֿiTp $ ~~i u1ֿiTp $ ~i u1ֿiTp $ ~i u1ֿiTp $ ~>j u1ֿiTp $ ~~j u1ֿiTp $ ~j u1ֿiTp $ ~j u1ֿiTp $ ~>k u1ֿiTp $ ~~k uA 0οiTh*..y vBI&%@{]3 vBI&%@^  0o!Dd[Xg5ر 1-AI&\ ر 1AI&\ ر 1-@I&\ ر 1m]@I&).C ر 1@I&).; ر 1Ed `<ر 1ZI&).+ ر 1]VI&Ir]3Gر 1]VI&Yr]37ر 1RI&Ir]3'ر 1RI&Yr]3ر 1NI&Ir]3ر 1NDH&Yr]3ر 1JDH&Ir]3ر 1JDH&Yr]3ر 1]FDH&Xg5ر 1]FDH&Xgo5ر 1]FDH&XgO5ر 1]FDH&Xg/5ر 1BDH&Xg5ر 1BDH&Xg4ر 1BDH&Xg4ر 1BDH&Xg4 0oA n0\  0oA n0\  0oA n0\  0oA n0\  0oBDd[L$:x1 1޿iDCf`1 1޿iDC`<1 1޿iDC`10޿iL(*`Br]310޿iL(*`Fr]310޿iL(*`Jr]310޿iL(*`Nr]310޿iL(*`Rr]310޿iL(*`Vr]3w10޿iL(*`Zr]3g10޿iL(*`^r]3W114*z0$ ~!. 114*z0$ ~#. 114*z0$ ~%. 114*z0$ ~'. 114*z0$ ~). 1 ð?顨rJ@=1 ð?顨rhK@=1 ð?顨rK@L=1ðͿiTOwB]3G1ðͿiTOwF]371ðͿiTOwJ]3'1ðͿiTOwN]31ðͿiTOwR]3104*Owg8gu 104*Owg8ge 104*Owg8gU 1ðͿiTOwC]3C1ðͿiTOwG]331ðͿiTOwK]3#1ðͿiTOwO]31ðͿiTOwS]31 ð?顨rJ@=1 ð?顨rXK@=1 ð?顨rK@T=114*z0$ ~3114*z0$ ~3114*z0$ ~3114*z0$ ~3114*z0$ ~310޿iL(*Xg10޿iL(*Xg10޿iL(*Xg10޿iL(*Xg10޿iL(*Xgc10޿iL(*XgC10޿iL(*Xg#10޿iL(*Xg1 1޿iDC~K u01 1޿iDCK u01 1޿iDCK u0 0oBDd[|\ ` 0oA nCr]3 0oA nEr]3 0oA nGr]3 0oA nIr]3ر 1BDH&_`5ر 1BDH&o` 5ر 1BDH&`4ر 1BDH&` 4ر 1]FDH&`5ر 1]FDH&` 5ر 1]FDH&`4ر 1]FDH&ϒ` 4ر 1JDH&ߒ`ر 1JDH&` ر 1NDH&`ر 1NI&` ر 1RI&`ر 1RI&/` ر 1]VI&?`ر 1]VI&O` ر 1ZI&_` ر 1Ed &.ر 1@I&` ر 1m]@I&` ر 1@I&`ر 1m\AI&` 0owA nWr]3A 0οi0AHH`U%: vBI&%ou2A 0οiTh*dg{ A 0οiTh*dgs 1ֿiTp $ ~.1ֿiTp $ ~.1ֿiTp $ ~.1ֿiTp $ ~.1ֿiTp $ ~.1ֿiTp $ ~.1ֿiTp $ ~.1ֿiTp $ ~.1ֿiTp $ ~.1ֿiTp $ ~.1ֿiTp $ ~.1ֿiTp $ ~.1ֿiTp $ ~.1ֿiTp $ ~.A 0οiTh*dgy vBI&%u vBI&%I{]3 0o!Dd[0`5ر 1-AI&Fr]3ر 1AI&Fr]3ر 1-@I&Fr]3ر 1m]@I&XgC ر 1@I&Xg; ر 1Ed `J u<ر 1ZI&Xg+ ر 1]VI&&uGر 1]VI&fu7ر 1RI&&u'ر 1RI&fuر 1NI&&uر 1NDH&fuر 1JDH&&uر 1JDH&fuر 1]FDH&&`5ر 1]FDH&f`o5ر 1]FDH&`O5ر 1]FDH&`/5ر 1BDH&&`5ر 1BDH&f`4ر 1BDH&`4ر 1BDH&`4 0oA nDr]3 0oA nLr]3 0oA nTr]3 0oA n\r]3 0oBDd[0\ x1 1޿iDCI u1 1޿iDCJ u<1 1޿iDCK u10޿iL(* u10޿iL(*u10޿iL(*)u10޿iL(*9u10޿iL(*Iu10޿iL(*Yuw10޿iL(*iug10޿iL(*yuW114*z0$ ~3114*z0$ ~3114*z0$ ~3114*z0$ ~3114*z0$ ~31 ð?顨r+Yu=1 ð?顨r-Yu=1 ð?顨r/YuL=1ðͿiTOw wG1ðͿiTOww71ðͿiTOw+w'1ðͿiTOw;w1ðͿiTOwKw104*Owgu 104*Owgڒe 104*OwgU 1ðͿiTOwwC1ðͿiTOww31ðͿiTOw/w#1ðͿiTOw?w1ðͿiTOwOw1 ð?顨r`+Yu=1 ð?顨r`-Yu=1 ð?顨r`/YuT=114*z0$ ~114*z0$ ~114*z0$ ~/114*z0$ ~?114*z0$ ~O10޿iL(*_`10޿iL(*o`10޿iL(*`10޿iL(*`10޿iL(*`c10޿iL(*`C10޿iL(*`#10޿iL(*ϒ`1 1޿iDC-.01 1޿iDC..01 1޿iDC/.0 0oBDd[Ar]3` 0oA nu 0oA nu 0oA nu 0oA n'uر 1BDH&~I u5ر 1BDH&I u 5ر 1BDH&I u4ر 1BDH&>J u 4ر 1]FDH&~J u5ر 1]FDH&J u 5ر 1]FDH&J u4ر 1]FDH&>K u 4ر 1JDH&~K uر 1JDH&K u ر 1NDH&K uر 1NI&>H u ر 1RI&~H uر 1RI&H u ر 1]VI&H uر 1]VI&>I u ر 1ZI&~I u ر 1Ed Xgر 1@I&I u ر 1m]@I&>J u ر 1@I&~J uر 1m\AI&J u 0owA n_uA 0οi0AHH`U|\  vBI&%:2A 0οiTh*`{ A 0οiTh*`s 1ֿiTp $ ~Xg1ֿiTp $ ~Xg1ֿiTp $ ~Xg1ֿiTp $ ~Xg1ֿiTp $ ~Xg1ֿiTp $ ~Xg1ֿiTp $ ~Xg1ֿiTp $ ~Xg1ֿiTp $ ~Xg1ֿiTp $ ~Xg1ֿiTp $ ~Xg1ֿiTp $ ~Xg1ֿiTp $ ~Xg1ֿiTp $ ~XgA 0οiTh*`y vBI&%: vBI&%$u 0o!Dd[H u5ر 1-AI&uر 1AI&uر 1-@I&uر 1m]@I&`C ر 1@I&`; ر 1Ed ).<ر 1ZI&`+ ر 1]VI&$:Gر 1]VI&%:7ر 1RI&$:'ر 1RI&%:ر 1NI&$:ر 1NDH&%:ر 1JDH&$:ر 1JDH&%:ر 1]FDH&H u5ر 1]FDH&I uo5ر 1]FDH&J uO5ر 1]FDH&K u/5ر 1BDH&H u5ر 1BDH&I u4ر 1BDH&J u4ر 1BDH&K u4 0oA nu 0oA n3u 0oA nSu 0oA nsu 0oBDd[Dr]3x1 1޿iDC`&.1 1޿iDC`*.<1 1޿iDC`..10޿iL(*&$:10޿iL(*f$:10޿iL(*$:10޿iL(*$:10޿iL(*&%:10޿iL(*f%:w10޿iL(*%:g10޿iL(*%:W114*z0$ ~114*z0$ ~:114*z0$ ~Z114*z0$ ~z114*z0$ ~1 ð?顨rd]=1 ð?顨rd]=1 ð?顨rd]L=1ðͿiTOw.:G1ðͿiTOwn:71ðͿiTOw:'1ðͿiTOw:1ðͿiTOw.:104*OwgJ su 104*OwghK se 104*OwgK sU 1ðͿiTOw>:C1ðͿiTOw~:31ðͿiTOw:#1ðͿiTOw:1ðͿiTOw>:1 ð?顨rd]=1 ð?顨rd]=1 ð?顨rd]T=114*z0$ ~>H :114*z0$ ~~H :114*z0$ ~H :114*z0$ ~H :114*z0$ ~>I :10޿iL(*~I u10޿iL(*I u10޿iL(*I u10޿iL(*>J u10޿iL(*~J uc10޿iL(*J uC10޿iL(*J u#10޿iL(*>K u1 1޿iDCXg01 1޿iDCXg01 1޿iDCXg0 0oBDd[u` 0oA n?$: 0oA n_$: 0oA n$: 0oA n$:ر 1BDH&%.5ر 1BDH&&. 5ر 1BDH&'.4ر 1BDH&(. 4ر 1]FDH&).5ر 1]FDH&*. 5ر 1]FDH&+.4ر 1]FDH&,. 4ر 1JDH&-.ر 1JDH&.. ر 1NDH&/.ر 1NI& . ر 1RI&!.ر 1RI&". ر 1]VI&#.ر 1]VI&$. ر 1ZI&%. ر 1Ed o`ر 1@I&'. ر 1m]@I&(. ر 1@I&).ر 1m\AI&*. 0owA n%:A 0οi0AHH`UYr]3 vBI&%^ 2A 0οiTh*K q{ A 0οiTh*K qs 1ֿiTp $ ~`1ֿiTp $ ~`1ֿiTp $ ~/`1ֿiTp $ ~?`1ֿiTp $ ~O`1ֿiTp $ ~_`1ֿiTp $ ~o`1ֿiTp $ ~`1ֿiTp $ ~`1ֿiTp $ ~`1ֿiTp $ ~`1ֿiTp $ ~`1ֿiTp $ ~`1ֿiTp $ ~`A 0οiTh*K qy vBI&%^  vBI&%: 0o!Dd[#.5ر 1-AI&`$:ر 1AI&`$:ر 1-@I&`$:ر 1m]@I&`J uC ر 1@I&`J u; ر 1Ed Xg<ر 1ZI&`J u+ ر 1]VI&`\ Gر 1]VI&`\ 7ر 1RI&`\ 'ر 1RI&`\ ر 1NI&`\ ر 1NDH&`\ ر 1JDH&`\ ر 1JDH&`\ ر 1]FDH&`".5ر 1]FDH&`&.o5ر 1]FDH&`*.O5ر 1]FDH&`../5ر 1BDH&`".5ر 1BDH&`&.4ر 1BDH&`*.4ر 1BDH&`..4 0oA nL$: 0oA n$: 0oA nL%: 0oA n%: 0oBDd[ux1 1޿iDCXg1 1޿iDCXg<1 1޿iDCXg10޿iL(*\ 10޿iL(*\ 10޿iL(*\ 10޿iL(*\ 10޿iL(*\ 10޿iL(*\ w10޿iL(*\ g10޿iL(*\ W114*z0$ ~hH :114*z0$ ~H :114*z0$ ~hI :114*z0$ ~I :114*z0$ ~hJ :1 ð?顨ruPg=1 ð?顨rڒuPg=1 ð?顨ruPgL=1ðͿiTOw~ G1ðͿiTOw~ 71ðͿiTOw~ '1ðͿiTOw~ 1ðͿiTOw~ 104*Owg+.u 104*Owg-.e 104*Owg/.U 1ðͿiTOw~ C1ðͿiTOw~ 31ðͿiTOw~ #1ðͿiTOw~ 1ðͿiTOw~ 1 ð?顨ruPg=1 ð?顨r֒uPg=1 ð?顨ruPgT=114*z0$ ~ . 114*z0$ ~!. 114*z0$ ~". 114*z0$ ~#. 114*z0$ ~$. 10޿iL(*%.10޿iL(*&.10޿iL(*'.10޿iL(*(.10޿iL(*).c10޿iL(**.C10޿iL(*+.#10޿iL(*,.1 1޿iDCߒ`01 1޿iDC`01 1޿iDC`0 0oBDd[$:` 0oA n\  0oA n|\  0oA n\  0oA n|\ ر 1BDH&Xg5ر 1BDH&Xg 5ر 1BDH&Xg4ر 1BDH&Xg 4ر 1]FDH&Xg5ر 1]FDH&Xg 5ر 1]FDH&Xg4ر 1]FDH&Xg 4ر 1JDH&Xgر 1JDH&Xg ر 1NDH&Xgر 1NI&Xg ر 1RI&Xgر 1RI&Xg ر 1]VI&Xgر 1]VI&Xg ر 1ZI&Xg ر 1Ed I uر 1@I&Xg ر 1m]@I&Xg ر 1@I&Xgر 1m\AI&Xg 0owA n\ A 0οi0AHH`Ugu vBI&%[{]32A 0οiTh*..ƽ A 0οiTh*/.= 1ֿiTp $ ~>h u1ֿiTp $ ~~h u1ֿiTp $ ~h uo1ֿiTp $ ~h uO1ֿiTp $ ~>i u/1ֿiTp $ ~~i u1ֿiTp $ ~i u1ֿiTp $ ~i u1ֿiTp $ ~>j u1ֿiTp $ ~~j u1ֿiTp $ ~j uo1ֿiTp $ ~j uO1ֿiTp $ ~>k u/1ֿiTp $ ~~k uA 0οiTh*..Ɲ vBI&%@{]{> vBI&%@^^ 0o!Dd[Xx4ر 1-AI&\ر 1AI&\ر 1-@I&\^ر 1m]@I&).= ر 1@I&).ֽ ر 1Ed `ݳر 1ZI&).ֽ ر 1]VI&Ir]{4ر 1]VI&Yr]{3ر 1RI&Ir]{2ر 1RI&Yr]{1ر 1NI&Ir]{0ر 1NDH&Yr]{?ر 1JDH&Ir]{>ر 1JDH&Yr]{=ر 1]FDH&Xx4ر 1]FDH&Xv4ر 1]FDH&Xt4ر 1]FDH&Xr4ر 1BDH&Xp4ر 1BDH&Xn4ر 1BDH&Xl4ر 1BDH&Xj4 0oA n0\  0oA n0\  0oA n0\  0oA n0\^  0oBDd[L$1 1޿iDCf`1 1޿iDC`1 1޿iDC`10޿iL(*`Br]{<10޿iL(*`Fr]{;10޿iL(*`Jr]{:10޿iL(*`Nr]{910޿iL(*`Rr]{810޿iL(*`Vr]{710޿iL(*`Zr]{610޿iL(*`^r]{5114*z0$ ~!. 114*z0$ ~#. 114*z0$ ~%. 114*z0$ ~'.^ 114*z0$ ~). 1 ð?顨rJ@|<1 ð?顨rhK@x<1 ð?顨rK@t<1ðͿiTOwB]{1ðͿiTOwF]{1ðͿiTOwJ]{1ðͿiTOwN]{1ðͿiTOwR]{104*Owg8W 104*Owg8W 104*Owg8W 1ðͿiTOwC];1ðͿiTOwG];1ðͿiTOwK];1ðͿiTOwO];1ðͿiTOwS];1 ð?顨rJ@]}<1 ð?顨rXK@]y<1 ð?顨rK@]u<114*z0$ ~+114*z0$ ~ 114*z0$ ~+ 114*z0$ ~ 114*z0$ ~+ 10޿iL(*X7>10޿iL(*X7<10޿iL(*X7:10޿iL(*X7810޿iL(*X7610޿iL(*X7410޿iL(*X7210޿iL(*X701 1޿iDC~K u1 1޿iDCK u1 1޿iDCK u 0oBDd[|\ 0oA nCr] 0oA nEr] 0oA nGr]  0oA nIr] ر 1BDH&_`x4ر 1BDH&o`p4ر 1BDH&`h4ر 1BDH&``4ر 1]FDH&`x4ر 1]FDH&`p4ر 1]FDH&`h4ر 1]FDH&ϒ``4ر 1JDH&ߒ`8ر 1JDH&`0ر 1NDH&`8ر 1NI&`0ر 1RI&`8ر 1RI&/`0ر 1]VI&?`8ر 1]VI&O`0ر 1ZI&_` ر 1Ed &.֍ر 1@I&` ر 1m]@I&` ر 1@I&` ر 1m\AI&`  0owA nWr] iS [%gXf iS [%oX 0߿) [eж 3Lw à޿X@]:  _ k c a:A  _z kA  _z kA  _ze X'`A  _zU X'`1 ð?Pg $]9yA °KлtA ° Kл"ibA ° Kл*bA °`Kuл"iaA °`Kuл* aA ° Kuл"i`114%;*x1 ð?A]ɾ wE `1 ð?A]ɾ wU`1 ð?Q[ɾ wi,{1 ð?Q[ɾ waz1 ð?Q[ɾ w-Yz1 ð?Q[ɾ woQlz1 ð?aYɾ wI,z1 ð?aYɾ wAy1 ð?aYC w-9y1 ð?aYC wo1ly1 ð?qWC w),yc` 0L$d'xc``0b6 31#7fa`b```"'xc``0b6 31#Cfa`b```^$xc``0b6 #3Cb^1 @xc``b6 b`XJ3T@%5Y@ Ĥ:'xc``b6 31 CQbI*'T9kKcodec2-1.0.1/octave/Mat2Hrows.m000066400000000000000000000007151412132000500161240ustar00rootroot00000000000000function [Hrows Hcols] = Mat2Hrows(HRA, RAmode); H = full(HRA); [Nr Nc] = size(H); if nargin==1, RAmode = 1; end; if RAmode==1 H= H(:,1:Nc-Nr); [Nr Nc] = size(H); end Max_colwt = max(sum(H)); Max_rowwt = max(sum(H')); Hcols = zeros(Nc, Max_colwt); Hrows = zeros(Nr, Max_rowwt); for i = 1:Nr nz = find(H(i,:)); Hrows(i,1:length(nz)) = nz; end H = H'; for i = 1:Nc nz = find(H(i,:)); Hcols(i,1:length(nz)) = nz; end codec2-1.0.1/octave/apsk_ser.m000066400000000000000000000034211412132000500161020ustar00rootroot00000000000000function [svec] = apsk_ser(Esvec, M) % Return approx (uncoded) SER for 16 or 32 APSK, or plot SERs if no args % USAGE apsk_ser(); OR SERvec = apsk_ser(Esvec_dBs, M) % VK5DSP, July 2020 % Fit 3rd order polys to data in Figure 3 of % "Perf anal of APSK mod for DVB-S2 trans over nonlinear channels" % by Wonjin Sung et al; % Published in Int. J. Satellite Communications Networking, 2009 % (see Fig 1 for constellation diagrams and bit mappings) % from the Figure data, we get 2 polynomials ... %{ Fig3_Es = [10 12.5 15 17.5 20 21]; Fig3_16_SER = [2e-1 8e-2 2.5e-2 3e-3 1e-4 2e-5]; Fig3_32_SER = [4e-1 2.8e-1 1.5e-1 4e-2 1e-2 4e-3 1.05e-5]; p16 = polyfit(Fig3_Es, log10(Fig3_16_SER), 3) p32 = polyfit([Fig3_Es 25], log10(Fig3_32_SER), 3) %} p16 = [-0.001816729857582 0.053322736530042 -0.653699203208837 2.315143765468362]; p32 = [-0.001418894437779 0.049903575028137 -0.669130206501662 2.743251206655785]; if nargin==0 EStest = 10:21; EStest2 = 10:25; SER16 = polyval(p16, EStest); SER32 = polyval(p32, EStest2); figure(55); semilogy(EStest, 10.^SER16, 'b', EStest2, 10.^SER32, 'g') title('Approx Symb Error Rates for APSK') xlabel('Es/N0 (dB)') ylabel('SER'); grid on; legend('16APSK','32APSK'); legend('boxoff') elseif nargin~=2, error('usage is apsk_ser(Esvec, M)'); else if (M~=16)&&(M~=32) error('M must be 16 or 32') end if min(Esvec)<8, error('Es/No values should be > 8 dB'); end if (M==16) && (max(Esvec)>23), error('Es/No values should be < 23 dB'); end if (M==32) && (max(Esvec)>27), error('Es/No values should be < 27 dB'); end if M==16, svec = 10.^polyval(p16, Esvec); end if M==32, svec = 10.^polyval(p32, Esvec); end end codec2-1.0.1/octave/autotest.m000066400000000000000000000036721412132000500161530ustar00rootroot00000000000000% autotest.m % David Rowe Mar 2015 % % Helper functions to plot output of C verson and difference between Octave and C versions 1; function stem_sig_and_error(plotnum, subplotnum, sig, error, titlestr, axisvec) global no_plot_list; if find(no_plot_list == plotnum) return; end figure(plotnum) subplot(subplotnum) stem(sig,'g;Octave version;'); hold on; stem(error,'r;Octave - C version (hopefully 0);'); hold off; if nargin == 6 axis(axisvec); end title(titlestr); endfunction function plot_sig_and_error(plotnum, subplotnum, sig, error, titlestr, axisvec) global no_plot_list; if find(no_plot_list == plotnum) return; end figure(plotnum) subplot(subplotnum) plot(sig,'g;Octave version;'); hold on; plot(error,'r;Octave - C version (hopefully 0);'); hold off; if nargin == 6 axis(axisvec); end title(titlestr); endfunction function pass = check(a, b, test_name, tol, its_an_angle = 0) global passes; global fails; if nargin == 3 tol = 1E-3; end [m n] = size(a); if m > n ll = m; else ll = n; end printf("%s", test_name); for i=1:(25-length(test_name)) printf("."); end printf(": "); if its_an_angle % take into account pi is close to -pi for angles in rads e = sum(sum(abs(exp(j*a) - exp(j*b)))/ll); else e = sum(sum(abs(a - b))/ll); end if e < tol printf("OK\n"); pass = true; passes++; else printf("FAIL (%f)\n",e); pass = false; fails++; end endfunction function pass = check_no_abs(a, b, test_name) global passes; global fails; tol = 1E-3; [m n] = size(a); if m > n ll = m; else ll = n; end printf("%s", test_name); for i=1:(25-length(test_name)) printf("."); end printf(": "); e = sum(sum(a - b)/ll); if e < tol pass = true; printf("OK\n"); passes++; else pass = false; printf("FAIL (%f)\n",e); fails++; end endfunction codec2-1.0.1/octave/c2wideband_map000066400000000000000000000070301412132000500166770ustar00rootroot00000000000000 1.00000000e+00 3.00000000e+00 7.00000000e+00 8.00000000e+00 1.10000000e+01 1.50000000e+01 1.90000000e+01 2.60000000e+01 2.10000000e+01 2.40000000e+01 2.00000000e+01 3.00000000e+01 3.80000000e+01 4.80000000e+01 2.90000000e+01 3.20000000e+01 4.20000000e+01 6.40000000e+01 6.30000000e+01 5.40000000e+01 5.60000000e+01 5.00000000e+01 7.20000000e+01 9.10000000e+01 7.80000000e+01 6.70000000e+01 5.70000000e+01 7.00000000e+01 7.60000000e+01 1.04000000e+02 2.00000000e+00 5.00000000e+00 1.20000000e+01 2.20000000e+01 2.30000000e+01 3.30000000e+01 3.10000000e+01 4.30000000e+01 3.40000000e+01 3.90000000e+01 4.40000000e+01 4.10000000e+01 4.90000000e+01 6.00000000e+01 5.10000000e+01 7.70000000e+01 9.70000000e+01 9.00000000e+01 1.14000000e+02 8.10000000e+01 1.21000000e+02 1.13000000e+02 8.00000000e+01 9.90000000e+01 1.18000000e+02 1.09000000e+02 8.90000000e+01 1.02000000e+02 1.07000000e+02 1.19000000e+02 4.00000000e+00 9.00000000e+00 1.60000000e+01 2.70000000e+01 4.00000000e+01 4.50000000e+01 4.70000000e+01 5.50000000e+01 4.60000000e+01 6.10000000e+01 6.50000000e+01 6.60000000e+01 7.50000000e+01 8.30000000e+01 6.80000000e+01 1.06000000e+02 9.40000000e+01 1.27000000e+02 1.36000000e+02 1.38000000e+02 1.37000000e+02 1.41000000e+02 8.80000000e+01 1.50000000e+02 1.59000000e+02 1.47000000e+02 1.33000000e+02 1.28000000e+02 1.90000000e+02 1.31000000e+02 6.00000000e+00 1.80000000e+01 2.80000000e+01 5.20000000e+01 8.40000000e+01 6.20000000e+01 7.30000000e+01 7.90000000e+01 7.10000000e+01 9.80000000e+01 8.50000000e+01 9.30000000e+01 8.70000000e+01 1.12000000e+02 1.15000000e+02 1.10000000e+02 1.29000000e+02 1.99000000e+02 1.42000000e+02 1.70000000e+02 2.18000000e+02 1.62000000e+02 1.74000000e+02 2.05000000e+02 1.43000000e+02 1.64000000e+02 1.72000000e+02 1.75000000e+02 2.02000000e+02 2.16000000e+02 1.00000000e+01 2.50000000e+01 3.50000000e+01 6.90000000e+01 7.40000000e+01 9.20000000e+01 9.60000000e+01 1.35000000e+02 1.11000000e+02 1.56000000e+02 9.50000000e+01 1.05000000e+02 1.26000000e+02 1.34000000e+02 1.63000000e+02 2.15000000e+02 1.49000000e+02 1.48000000e+02 1.53000000e+02 2.28000000e+02 1.80000000e+02 2.30000000e+02 2.11000000e+02 2.13000000e+02 2.40000000e+02 2.24000000e+02 2.09000000e+02 2.22000000e+02 2.26000000e+02 1.73000000e+02 1.30000000e+01 3.70000000e+01 5.30000000e+01 1.08000000e+02 8.60000000e+01 1.17000000e+02 1.03000000e+02 1.00000000e+02 1.24000000e+02 1.22000000e+02 2.01000000e+02 1.92000000e+02 2.03000000e+02 2.19000000e+02 1.91000000e+02 1.69000000e+02 2.20000000e+02 2.14000000e+02 1.39000000e+02 2.04000000e+02 2.36000000e+02 1.79000000e+02 1.81000000e+02 2.00000000e+02 1.93000000e+02 2.21000000e+02 2.35000000e+02 1.87000000e+02 2.08000000e+02 2.17000000e+02 1.40000000e+01 3.60000000e+01 5.90000000e+01 1.16000000e+02 1.30000000e+02 1.78000000e+02 1.40000000e+02 1.32000000e+02 1.57000000e+02 1.52000000e+02 1.68000000e+02 1.60000000e+02 1.23000000e+02 1.97000000e+02 1.83000000e+02 2.34000000e+02 1.44000000e+02 2.23000000e+02 1.65000000e+02 1.67000000e+02 2.31000000e+02 1.96000000e+02 1.71000000e+02 2.33000000e+02 1.82000000e+02 2.25000000e+02 1.88000000e+02 2.37000000e+02 2.27000000e+02 2.10000000e+02 1.70000000e+01 5.80000000e+01 8.20000000e+01 1.01000000e+02 1.20000000e+02 1.86000000e+02 1.46000000e+02 1.25000000e+02 1.51000000e+02 1.94000000e+02 1.61000000e+02 1.84000000e+02 1.58000000e+02 1.89000000e+02 1.77000000e+02 1.95000000e+02 1.45000000e+02 1.66000000e+02 2.06000000e+02 1.54000000e+02 1.98000000e+02 2.12000000e+02 2.38000000e+02 2.29000000e+02 1.85000000e+02 1.76000000e+02 2.39000000e+02 1.55000000e+02 2.07000000e+02 2.32000000e+02 codec2-1.0.1/octave/channel_lib.m000066400000000000000000000056711412132000500165420ustar00rootroot00000000000000% channel.m % % Commonly used channel simulation functions 1; function [spread1 spread2 path_delay_samples] = channel_multipath(channel, Fs, Nsam) % Winlink multipath definitions if strcmp(channel, 'mpg') dopplerSpreadHz = 0.1; path_delay_ms = 0.5; elseif strcmp(channel, 'mpm') dopplerSpreadHz = 0.5; path_delay_ms = 1.0; elseif strcmp(channel, 'mpp') dopplerSpreadHz = 1.0; path_delay_ms = 2.0; elseif strcmp(channel, 'mpd') dopplerSpreadHz = 2.0; path_delay_ms = 4.0; elseif strcmp(channel, 'mpf') dopplerSpreadHz = 4.0; path_delay_ms = 4.0; elseif strcmp(channel, 'notch') dopplerSpreadHz = 0.0; path_delay_ms = 2.0; elseif printf("Unknown multipath channel\n"); assert(0); end path_delay_samples = path_delay_ms*Fs/1000; %printf(" Doppler Spread: %3.2f Hz Path Delay: %3.2f ms %d samples\n", dopplerSpreadHz, path_delay_ms, path_delay_samples); if strcmp(channel, "notch") % simple notch filter (not time varying), hand tweaked to be 10dB down at about 1300 Hz (Fc-200Hz) spread1 = 0.5*ones(1,Nsam); spread2 = j*0.2*ones(1,Nsam); else % generate same fading pattern for every run spread1 = doppler_spread(dopplerSpreadHz, Fs, Nsam); spread2 = doppler_spread(dopplerSpreadHz, Fs, Nsam); end % sometimes doppler_spread() doesn't return exactly the number of samples we need if length(spread1) < Nsam printf("not enough doppler spreading samples %d %d\n", length(spread1), Nsam); assert(0); end if length(spread2) < Nsam printf("not enough doppler spreading samples %d %d\n", length(spread2), Nsam); assert(0); end endfunction % returns real rx signal with noise added, input is complex tx signal function [rx_real rx sigma] = channel_simulate(Fs, SNR3kdB, freq_offset_Hz, channel, tx, verbose=0) Nsam = length(tx); rx = tx; if strcmp(channel, 'awgn') == 0 [spread1 spread2 path_delay_samples] = channel_multipath(channel, Fs, Nsam); rx = tx(1:Nsam) .* spread1(1:Nsam); rx += [zeros(1,path_delay_samples) tx(1:Nsam-path_delay_samples)] .* spread2(1:Nsam); end woffset = 2*pi*freq_offset_Hz/Fs; rx = rx .* exp(j*woffset*(1:Nsam)); rx_real = real(rx); S = rx_real*rx_real'; rpapr = 10*log10(max(abs(rx_real).^2)/mean(abs(rx_real).^2)); % SNR in a 4k bandwidth will be lower than 3k as total noise power N is higher SNR4kdB = SNR3kdB - 10*log10(Fs/2) + 10*log10(3000); SNR = 10^(SNR4kdB/10); N = S/SNR; sigma = sqrt(N/Nsam); n = sigma*randn(1,Nsam); % printf("SNR3kdB: %f SNR4kdB: %f N: %f %f\n", SNR3kdB, SNR4kdB, N, n*n'); rx_real += n; % check our sums are OK to within 0.25 dB SNR4kdB_measured = 10*log10(S/(n*n')); assert (abs(SNR4kdB - SNR4kdB_measured) < 0.5); if verbose printf("foff: %3.1f Hz SNR(3k): %3.1f dB ", freq_offset_Hz, SNR3kdB); printf("measSNR3k: %3.2f dB N: %3.2f dB\n", 10*log10(S/(n*n')) + 10*log10(4000) - 10*log10(3000), 10*log10(n*n')); end endfunction codec2-1.0.1/octave/closed_quant_slope.m000066400000000000000000000001001412132000500201450ustar00rootroot00000000000000function b = closed_quant_slope(b) b(1) = max(0.5, b(1)); end codec2-1.0.1/octave/cma.m000066400000000000000000000055561412132000500150460ustar00rootroot00000000000000% cma.m % % Constant modulus equaliser example from: % % http://dsp.stackexchange.com/questions/23540/matlab-proper-estimation-of-weights-and-how-to-calculate-mse-for-qpsk-signal-f % % Adapted to run bpsk and fsk signals rand('seed',1); randn('seed',1); N = 5000; % # symbols h = [1 0 0 0 0 0 0.0 0.5]; % simulation of HF multipath channel impulse response h = h/norm(h); Le = 20; % equalizer length mu = 1E-3; % step size snr = 30; % snr in dB M = 10; % oversample rate, e.g. Rs=400Hz at Fs=8000Hz tx_type = "fsk"; % select modulation type here "bpsk" or "fsk" if strcmp(tx_type, "bpsk") s0 = round( rand(N,1) )*2 - 1; % BPSK signal s0M = zeros(N*M,1); % oversampled BPSK signal k = 1; for i=1:M:N*M s0M(i:i+M-1) = s0(k); k ++; end end if strcmp(tx_type, "fsk") tx_bits = round(rand(1,N)); % continuous phase FSK modulator w1 = pi/4; w2 = pi/2; tx_phase = 0; tx = zeros(M*N,1); for i=1:N for k=1:M if tx_bits(i) tx_phase += w2; else tx_phase += w1; end tx((i-1)*M+k) = exp(j*tx_phase); end end s0M = tx; end s = filter(h,1,s0M); % filtered signal % add Gaussian noise at desired snr n = randn(N*M,1); vs = var(s); vn = vs*10^(-snr/10); n = sqrt(vn)*n; r = s + n; % received signal e = zeros(N*M,1); % error w = zeros(Le,1); % equalizer coefficients w(Le)=1; % actual filter taps are flipud(w)! yd = zeros(N*M,1); for i = 1:N*M-Le, x = r(i:Le+i-1); y = w'*x; yd(i)=y; e(i) = abs(y).^2 - 1; w = w - mu * e(i) * real(conj(y) * x); end np = 100; % # sybmols to plot (last np will be plotted); np < N! figure(1); clf; %subplot(211), plot( 1:np, e(N-np+1-Le+1:N-Le+1).*e(N-np+1-Le+1:N-Le+1)), title('error') subplot(211), plot(e.*e), title('error'); subplot(212), stem(conv(flipud(w),h)), title('equalized channel impulse response') figure(2); clf; subplot(311) plot(1:np, s0M(N-np+1:N)) title('transmitted, received, and equalized signal') subplot(312) plot(1:np, r(N-np+1:N)) subplot(313) plot(1:np, yd(N-np+1-Le+1:N-Le+1)) figure(3); clf; h1 = freqz(h); h2 = freqz(flipud(w)); h3 = freqz(conv(flipud(w),h)); subplot(311); plot(20*log10(abs(h1))); title('channel, equaliser, combined freq resp') subplot(312); plot(20*log10(abs(h2))); subplot(313); plot(20*log10(abs(h3))); figure(4); subplot(211) plot(20*log10(abs(fft(s0M)))) axis([1 length(s0M) 0 80]); grid; subplot(212) plot(20*log10(abs(fft(s)))) axis([1 length(s0M) 0 80]); grid; codec2-1.0.1/octave/cml.patch000066400000000000000000000110011412132000500157020ustar00rootroot00000000000000diff -ruN -x '*~' -x -q cml-orig/CmlStartup.m cml/CmlStartup.m --- cml-orig/CmlStartup.m 2007-09-08 23:12:26.000000000 +0930 +++ cml/CmlStartup.m 2018-04-12 16:38:31.966825321 +0930 @@ -20,7 +20,7 @@ addpath( strcat( cml_home, '\mex'), ... strcat( cml_home, '\mat'), ... strcat( cml_home, '\matalt' ), ... - strcat( cml_home, '\mexhelp'), ... + %strcat( cml_home, '\mexhelp'), ... strcat( cml_home, '\demos' ), ... strcat( cml_home, '\scenarios'), ... strcat( cml_home, '\localscenarios'),... @@ -41,7 +41,7 @@ addpath( strcat( cml_home, '/mex'), ... strcat( cml_home, '/mat'), ... strcat( cml_home, '/matalt' ), ... - strcat( cml_home, '/mexhelp'), ... + %strcat( cml_home, '/mexhelp'), ... strcat( cml_home, '/demos' ), ... strcat( cml_home, '/scenarios'), ... strcat( cml_home, '/localscenarios'),... @@ -59,4 +59,4 @@ save_directory = strcat( cml_home, '/scenarios/CmlHome.mat' ); end -save( save_directory, save_flag, 'cml_home' ); \ No newline at end of file +save( save_directory, save_flag, 'cml_home' ); diff -ruN -x '*~' -x -q cml-orig/mat/CreateConstellation.m cml/mat/CreateConstellation.m --- cml-orig/mat/CreateConstellation.m 2007-12-27 21:36:24.000000000 +1030 +++ cml/mat/CreateConstellation.m 2018-04-15 10:21:35.325168186 +0930 @@ -58,7 +58,7 @@ % Optional argument: Label Type if (length(varargin)>=2) label_type = varargin{2}; - if ~isstr( label_type ) + if ~ischar( label_type ) if (length( label_type ) ~= M ) error( 'Length of label_type must be M' ); elseif (sum( sort( label_type ) ~= [0:M-1] ) > 0) diff -ruN -x '*~' -x -q cml-orig/mat/InitializeWiMaxLDPC.m cml/mat/InitializeWiMaxLDPC.m --- cml-orig/mat/InitializeWiMaxLDPC.m 2007-07-21 08:18:04.000000000 +0930 +++ cml/mat/InitializeWiMaxLDPC.m 2018-04-15 10:19:59.487185664 +0930 @@ -134,7 +134,7 @@ H(cnt1:cnt1+z-1, cnt2:cnt2+z-1)= eye(z); end if (Hbm(i, j) >0) - if ((rate ==2/3)&(ind ==0)) + if ((rate ==2/3)&&(ind ==0)) H(cnt1:cnt1+z-1, cnt2:cnt2+z-1)=circshift( eye(z),[0,mod(Hbm(i,j),z)]); else H(cnt1:cnt1+z-1, cnt2:cnt2+z-1)= circshift( eye(z),[0,floor(Hbm(i,j)*z/z0)]); @@ -146,7 +146,7 @@ end P =eye(z); -if ((rate ==3/4) & (ind ==1)) +if ((rate ==3/4) && (ind ==1)) P=inv(circshift( eye(z),[0,floor(80*z/z0)])); end diff -ruN -x '*~' -x -q cml-orig/source/matrix.h cml/source/matrix.h --- cml-orig/source/matrix.h 1970-01-01 09:30:00.000000000 +0930 +++ cml/source/matrix.h 2018-04-12 16:38:31.966825321 +0930 @@ -0,0 +1,1 @@ +#include diff -ruN -x '*~' -x -q cml-orig/source/MpDecode.c cml/source/MpDecode.c --- cml-orig/source/MpDecode.c 2007-08-06 14:44:24.000000000 +0930 +++ cml/source/MpDecode.c 2018-04-15 07:28:51.092724038 +0930 @@ -53,6 +53,7 @@ #include #include #include +#include /* Input Arguments */ #define INPUT prhs[0] @@ -332,8 +333,10 @@ int sign; float temp_sum; float Qi; - + int ssum; + for (iter=0;iter plamp("../src/hts2a",40) % % Then press: % c - to cycle through the wavform being displayed on the figure % n - next frame % b - back one frame % % tip: hold down n or b to animate the display % % The text files used as input are generated using c2sim: % % /codec2-dev/src$ c2sim ../raw/hts2a.raw --dump hts2a % % The Codec 2 README explains how to build c2sim with dump files % enabled. function codec2_demo(samname, f) sn_name = strcat(samname,"_sn.txt"); Sn = load(sn_name); sw_name = strcat(samname,"_sw.txt"); Sw = load(sw_name); model_name = strcat(samname,"_model.txt"); model = load(model_name); figure(1); k = ' '; wf = "Sn"; do if strcmp(wf,"Sn") clf; s = [ Sn(2*f-1,:) Sn(2*f,:) ]; plot(s); axis([1 length(s) -20000 20000]); end if (strcmp(wf,"Sw")) clf; plot((0:255)*4000/256, Sw(f,:),";Sw;"); end if strcmp(wf,"SwAm") Wo = model(f,1); L = model(f,2); Am = model(f,3:(L+2)); plot((0:255)*4000/256, Sw(f,:),";Sw;"); hold on; plot((1:L)*Wo*4000/pi, 20*log10(Am),"+;Am;r"); axis([1 4000 -10 80]); hold off; end if strcmp(wf,"Am") Wo = model(f,1); L = model(f,2); Am = model(f,3:(L+2)); plot((1:L)*Wo*4000/pi, 20*log10(Am),"+;Am;r"); axis([1 4000 -10 80]); end % interactive menu printf("\rframe: %d menu: n-next b-back w-cycle window q-quit", f); fflush(stdout); k = kbhit(); if (k == 'n') f = f + 1; end if (k == 'b') f = f - 1; end if (k == 'w') if strcmp(wf,"Sn") next_wf = "Sw"; end if strcmp(wf,"Sw") next_wf = "SwAm"; end if strcmp(wf,"SwAm") next_wf = "Am"; end if strcmp(wf,"Am") next_wf = "Sn"; end wf = next_wf; end until (k == 'q') printf("\n"); endfunction codec2-1.0.1/octave/cohpsk_ch_fading.m000066400000000000000000000014171412132000500175470ustar00rootroot00000000000000% cohpsk_ch_fading.m % David Rowe % April 2018 % function to write float fading samples for use by C programs function cohpsk_ch_fading(raw_file_name, Fs, dopplerSpreadHz, len_samples) randn('seed',1); spread = doppler_spread(dopplerSpreadHz, Fs, len_samples); spread_2ms = doppler_spread(dopplerSpreadHz, Fs, len_samples); hf_gain = 1.0/sqrt(var(spread)+var(spread_2ms)); printf("hf_gain: %f\n", hf_gain); % interleave real imag samples inter = zeros(1,len_samples*4); inter(1:4) = hf_gain; for i=1:len_samples inter(i*4+1) = real(spread(i)); inter(i*4+2) = imag(spread(i)); inter(i*4+3) = real(spread_2ms(i)); inter(i*4+4) = imag(spread_2ms(i)); end f = fopen(raw_file_name,"wb"); fwrite(f, inter, "float32"); fclose(f); endfunction codec2-1.0.1/octave/cohpsk_demod_plot.m000066400000000000000000000026741412132000500200010ustar00rootroot00000000000000% cohpsk_demod_plot.m % David Rowe May 2015 % % Plot Octave outputs from cohpsk_demod, c2dec, to visualise whats going on % when errors hit the system #{ $ ./cohpsk_get_test_bits - 5600 | ./cohpsk_mod - - | ./cohpsk_ch - - -40 | ./cohpsk_demod - - -o cohpsk_demod.txt | ./cohpsk_put_test_bits - octave> cohpsk_demod_plot("../build_linux/src/cohpsk_demod.txt") #} function cohpsk_demod_plot(fn) Nc=7; Nd=2; Ns=6; load(fn); Ncf = 100; % number of codec frames to plot Nmf = Ncf/2; % number of modem frames to plot Nms = Nmf*Ns; % number of modem symbols to plot figure(1) clf; % plot combined signals to show diversity gains combined = rx_symb_log_c(:,1:Nc); for d=2:Nd combined += rx_symb_log_c(:, (d-1)*Nc+1:d*Nc); end plot(combined*exp(j*pi/4)/sqrt(Nd),'+') title('Scatter'); axis([-2 2 -2 2]) figure(2) clf; subplot(211) plot(rx_phi_log_c(1:Nms,:)) title('phase') axis([1 Nms -pi pi]) subplot(212) plot(rx_amp_log_c(1:Nms,:)) title('amplitude') axis([1 Nms 0 1]) figure(3) subplot(211) plot(rx_timing_log_c) title('rx timing'); subplot(212) stem(ratio_log_c) title('Sync ratio'); figure(4) plot(f_est_log_c - 1500) title('freq offset est'); axis([1 Nmf -50 50]) figure(5) y = 1:Nms; x = 1:Nc*Nd; z = 20*log10(rx_amp_log_c(1:Nms,:)); mesh(x,y,z); grid title('Channel Amplitude dB'); a = min(min(z)); b = max(max(z)); axis([1 Nc*Nd 1 Nms a b]) end codec2-1.0.1/octave/cohpsk_dev.m000066400000000000000000000346061412132000500164310ustar00rootroot00000000000000% cohpsk_dev.m % David Rowe Mar 2015 % % Coherent PSK modem development and testing functions % cohpsk_lib; % Init HF channel model from stored sample files of spreading signal ---------------------------------- function [spread spread_2ms hf_gain] = init_hf_model(Fs, nsam) % convert "spreading" samples from 1kHz carrier at Fss to complex % baseband, generated by passing a 1kHz sine wave through PathSim % with the ccir-poor model, enabling one path at a time. Fc = 1000; Fss = 8000; fspread = fopen("../raw/sine1k_2Hz_spread.raw","rb"); spread1k = fread(fspread, "int16")/10000; fclose(fspread); fspread = fopen("../raw/sine1k_2ms_delay_2Hz_spread.raw","rb"); spread1k_2ms = fread(fspread, "int16")/10000; fclose(fspread); % down convert to complex baseband spreadbb = spread1k.*exp(-j*(2*pi*Fc/Fss)*(1:length(spread1k))'); spreadbb_2ms = spread1k_2ms.*exp(-j*(2*pi*Fc/Fss)*(1:length(spread1k_2ms))'); % remove -2000 Hz image b = fir1(50, 5/Fss); spread = filter(b,1,spreadbb); spread_2ms = filter(b,1,spreadbb_2ms); % discard first 1000 samples as these were near 0, probably as % PathSim states were ramping up spread = spread(1000:length(spread)); spread_2ms = spread_2ms(1000:length(spread_2ms)); % change output samples so they are at rate Fs reqd by caller spread = resample(spread, Fs, Fss); spread_2ms = resample(spread_2ms, Fs, Fss); % Determine "gain" of HF channel model, so we can normalise % carrier power during HF channel sim to calibrate SNR. I imagine % different implementations of ccir-poor would do this in % different ways, leading to different BER results. Oh Well! hf_gain = 1.0/sqrt(var(spread(1:nsam))+var(spread_2ms(1:nsam))); endfunction function write_pilot_file(pilot, Nsymbrowpilot, Ns, Nsymrow, Npilotsframe, Nc); filename = sprintf("../src/cohpsk_defs.h", Npilotsframe, Nc); f=fopen(filename,"wt"); fprintf(f,"/* Generated by write_pilot_file() Octave function */\n\n"); fprintf(f,"#define NSYMROW %d /* number of data symbols on each row (i.e. each carrier) */\n", Nsymrow); fprintf(f,"#define NS %d /* number of data symbols between pilots */\n", Ns); fprintf(f,"#define NPILOTSFRAME %d /* number of pilot symbols on each row */\n", Npilotsframe); fprintf(f,"#define PILOTS_NC %d /* number of carriers */\n\n", Nc); fprintf(f,"#define NSYMROWPILOT %d /* length of row after pilots inserted */\n\n", Nsymbrowpilot); fclose(f); filename = sprintf("../src/pilots_coh.h", Npilotsframe, Nc); f=fopen(filename,"wt"); fprintf(f,"/* Generated by write_pilot_file() Octave function */\n\n"); fprintf(f,"float pilots_coh[][PILOTS_NC]={\n"); for r=1:Npilotsframe fprintf(f, " {"); for c=1:Nc-1 fprintf(f, " %f,", pilot(r, c)); end if r < Npilotsframe fprintf(f, " %f},\n", pilot(r, Nc)); else fprintf(f, " %f}\n};", pilot(r, Nc)); end end fclose(f); endfunction % Save test bits frame to a text file in the form of a C array function test_bits_coh_file(test_bits_coh) f=fopen("../src/test_bits_coh.h","wt"); fprintf(f,"/* Generated by test_bits_coh_file() Octave function */\n\n"); fprintf(f,"const int test_bits_coh[]={\n"); for m=1:length(test_bits_coh)-1 fprintf(f," %d,\n",test_bits_coh(m)); endfor fprintf(f," %d\n};\n",test_bits_coh(length(test_bits_coh))); fclose(f); endfunction % Rate Rs BER tests ------------------------------------------------------------------------------ function sim_out = ber_test(sim_in) sim_in = symbol_rate_init(sim_in); Fs = sim_in.Fs; Rs = sim_in.Rs; Ntrials = sim_in.Ntrials; verbose = sim_in.verbose; plot_scatter = sim_in.plot_scatter; framesize = sim_in.framesize; bps = sim_in.bps; Esvec = sim_in.Esvec; ldpc_code = sim_in.ldpc_code; rate = sim_in.ldpc_code_rate; code_param = sim_in.code_param; tx_bits_buf = sim_in.tx_bits_buf; Nsymb = sim_in.Nsymb; Nsymbrow = sim_in.Nsymbrow; Nsymbrowpilot = sim_in.Nsymbrowpilot; Nc = sim_in.Nc; Npilotsframe = sim_in.Npilotsframe; Ns = sim_in.Ns; Np = sim_in.Np; Nd = sim_in.Nd; modulation = sim_in.modulation; pilot = sim_in.pilot; prev_sym_tx = sim_in.prev_sym_tx; prev_sym_rx = sim_in.prev_sym_rx; rx_symb_buf = sim_in.rx_symb_buf; tx_pilot_buf = sim_in.tx_pilot_buf; rx_pilot_buf = sim_in.rx_pilot_buf; hf_sim = sim_in.hf_sim; nhfdelay = sim_in.hf_delay_ms*Rs/1000; hf_mag_only = sim_in.hf_mag_only; f_off = sim_in.f_off; div_time_shift = sim_in.div_timeshift; [spread spread_2ms hf_gain] = init_hf_model(Rs, Nsymbrowpilot*(Ntrials+2)); if strcmp(modulation,'dqpsk') Nsymbrowpilot = Nsymbrow; end % Start Simulation ---------------------------------------------------------------- for ne = 1:length(Esvec) EsNodB = Esvec(ne); EsNo = 10^(EsNodB/10); variance = 1/EsNo; if verbose > 1 printf("EsNo (dB): %f EsNo: %f variance: %f\n", EsNodB, EsNo, variance); end Terrs = 0; Tbits = 0; s_ch_tx_log = []; rx_symb_log = []; noise_log = []; errors_log = []; Nerrs_log = []; phi_log = []; amp_log = []; EsNo__log = []; ldpc_errors_log = []; ldpc_Nerrs_log = []; Terrsldpc = Tbitsldpc = Ferrsldpc = 0; % init HF channel hf_n = 1; phase_offset_rect = 1; w_offset = 2*pi*f_off/Rs; w_offset_rect = exp(j*w_offset); ct_symb_buf = zeros(2*Nsymbrowpilot, Nc*Nd); prev_tx_symb = prev_rx_symb = ones(1, Nc*Nd); % simulation starts here----------------------------------- for nn = 1:Ntrials+2 if ldpc_code tx_bits = round(rand(1,framesize*rate)); else tx_bits = round(rand(1,framesize)); end if strcmp(modulation,'qpsk') [tx_symb tx_bits] = bits_to_qpsk_symbols(sim_in, tx_bits, code_param); % one frame delay on bits for qpsk tx_bits_buf(1:framesize) = tx_bits_buf(framesize+1:2*framesize); tx_bits_buf(framesize+1:2*framesize) = tx_bits; end if strcmp(modulation, 'dqpsk') [tx_symb prev_tx_symb] = bits_to_dqpsk_symbols(sim_in, tx_bits, prev_tx_symb); tx_bits_buf(1:framesize) = tx_bits; end s_ch = tx_symb; % HF channel simulation ------------------------------------ hf_fading = ones(1,Nsymb); if hf_sim % separation between carriers. Note this effectively % under samples at Rs, I dont think this matters. % Equivalent to doing freq shift at Fs, then % decimating to Rs. wsep = 2*pi*(1+0.5); % e.g. 75Hz spacing at Rs=50Hz, alpha=0.5 filters hf_model(hf_n, :) = zeros(1,Nc*Nd); for r=1:Nsymbrowpilot for c=1:Nd*Nc if c > Nc time_shift = sim_in.div_timeshift; else time_shift = 1; end ahf_model = hf_gain*(spread(hf_n+time_shift) + exp(-j*c*wsep*nhfdelay)*spread_2ms(hf_n+time_shift)); if hf_mag_only s_ch(r,c) *= abs(ahf_model); else s_ch(r,c) *= ahf_model; end hf_model(hf_n, c) = ahf_model; end hf_n++; end end % keep a record of each tx symbol so we can check average power for r=1:Nsymbrow for c=1:Nd*Nc s_ch_tx_log = [s_ch_tx_log s_ch(r,c)]; end end % AWGN noise and phase/freq offset channel simulation % 0.5 factor ensures var(noise) == variance , i.e. splits power between Re & Im noise = sqrt(variance*0.5)*(randn(Nsymbrowpilot,Nc*Nd) + j*randn(Nsymbrowpilot,Nc*Nd)); noise_log = [noise_log noise]; for r=1:Nsymbrowpilot s_ch(r,:) *= phase_offset_rect; phase_offset_rect *= w_offset_rect; end s_ch += noise; ct_symb_buf(1:Nsymbrowpilot,:) = ct_symb_buf(Nsymbrowpilot+1:2*Nsymbrowpilot,:); ct_symb_buf(Nsymbrowpilot+1:2*Nsymbrowpilot,:) = s_ch; if strcmp(modulation,'qpsk') [rx_symb rx_bits rx_symb_linear amp_ phi_ sig_rms noise_rms sim_in] = qpsk_symbols_to_bits(sim_in, ct_symb_buf(1:Nsymbrowpilot+Npilotsframe,:)); phi_log = [phi_log; phi_]; amp_log = [amp_log; amp_]; end if strcmp(modulation,'dqpsk') [rx_symb rx_bits rx_symb_linear prev_rx_symb] = dqpsk_symbols_to_bits(sim_in, s_ch, prev_rx_symb); end % Wait until we have enough frames to do pilot assisted phase estimation if nn > 1 rx_symb_log = [rx_symb_log rx_symb_linear]; %EsNo__log = [EsNo__log EsNo_]; % Measure BER error_positions = xor(rx_bits, tx_bits_buf(1:framesize)); Nerrs = sum(error_positions); Terrs += Nerrs; Tbits += length(tx_bits); errors_log = [errors_log error_positions]; Nerrs_log = [Nerrs_log Nerrs]; % Optionally LDPC decode if ldpc_code detected_data = ldpc_dec(code_param, sim_in.max_iterations, sim_in.demod_type, sim_in.decoder_type, ... rx_symb_linear, min(100,EsNo_), amp_linear); error_positions = xor( detected_data(1:framesize*rate), tx_bits_buf(1:framesize*rate) ); Nerrs = sum(error_positions); ldpc_Nerrs_log = [ldpc_Nerrs_log Nerrs]; ldpc_errors_log = [ldpc_errors_log error_positions]; if Nerrs Ferrsldpc++; end Terrsldpc += Nerrs; Tbitsldpc += framesize*rate; end end end TERvec(ne) = Terrs; BERvec(ne) = Terrs/Tbits; if verbose av_tx_pwr = (s_ch_tx_log * s_ch_tx_log')/length(s_ch_tx_log); printf("EsNo (dB): %3.1f Terrs: %d Tbits: %d BER %5.3f QPSK BER theory %5.3f av_tx_pwr: %3.2f", EsNodB, Terrs, Tbits, Terrs/Tbits, 0.5*erfc(sqrt(EsNo/2)), av_tx_pwr); if ldpc_code printf("\n LDPC: Terrs: %d BER: %4.2f Ferrs: %d FER: %4.2f", Terrsldpc, Terrsldpc/Tbitsldpc, Ferrsldpc, Ferrsldpc/Ntrials); end printf("\n"); end end Ebvec = Esvec - 10*log10(bps); sim_out.BERvec = BERvec; sim_out.Ebvec = Ebvec; sim_out.TERvec = TERvec; sim_out.errors_log = errors_log; sim_out.ldpc_errors_log = ldpc_errors_log; if plot_scatter figure(2); clf; scat = rx_symb_log .* exp(j*pi/4); plot(real(scat), imag(scat),'+'); title('Scatter plot'); a = 1.5*max(real(scat)); b = 1.5*max(imag(scat)); axis([-a a -b b]); if hf_sim figure(3); clf; y = 1:(hf_n-1); x = 1:Nc*Nd; EsNodBSurface = 20*log10(abs(hf_model(y,:))) - 10*log10(variance); EsNodBSurface(find(EsNodBSurface < -5)) = -5; EsNodBSurface(find(EsNodBSurface > 25)) = 25; mesh(x,y,EsNodBSurface); grid axis([1 Nc*Nd 1 Rs*5 -5 25]) title('HF Channel Es/No'); if verbose [m n] = size(hf_model); av_hf_pwr = sum(sum(abs(hf_model(:,:)).^2))/(m*n); printf("average HF power: %3.2f over %d symbols\n", av_hf_pwr, m*n); end end if strcmp(modulation,'qpsk') % set up time axis to include gaps for pilots [m1 n1] = size(phi_log); phi_x = []; phi_x_counter = 1; p = Ns; for r=1:m1 if p == Ns phi_x_counter += Npilotsframe; p = 0; end p++; phi_x = [phi_x phi_x_counter++]; end phi_x -= Nsymbrowpilot; % account for delay in pilot buffer figure(5); clf subplot(211) [m n] = size(phi_log); plot(phi_x, phi_log(:,2),'r+;Estimated HF channel phase;') if hf_sim hold on; [m n] = size(hf_model); plot(angle(hf_model(1:m,2)),'g;HF channel phase;') hold off; end ylabel('Phase (rads)'); legend('boxoff'); axis([1 m -1.1*pi 1.1*pi]) subplot(212) plot(phi_x, amp_log(:,2),'r+;Estimated HF channel amp;') if hf_sim hold on; plot(abs(hf_model(1:m,2))) hold off; end ylabel('Amplitude'); xlabel('Time (symbols)'); legend('boxoff'); axis([1 m 0 3]) end figure(4) clf stem(Nerrs_log) axis([1 length(Nerrs_log) 0 max(Nerrs_log)+1]) end endfunction function sim_in = standard_init sim_in.verbose = 1; sim_in.do_write_pilot_file = 0; sim_in.plot_scatter = 0; sim_in.Esvec = 50; sim_in.Ntrials = 30; sim_in.framesize = 2; sim_in.Rs = 50; sim_in.phase_offset = 0; sim_in.w_offset = 0; sim_in.phase_noise_amp = 0; sim_in.hf_delay_ms = 2; sim_in.hf_sim = 0; sim_in.hf_mag_only = 0; sim_in.Nd = 1; endfunction codec2-1.0.1/octave/cohpsk_lib.m000066400000000000000000000364611412132000500164220ustar00rootroot00000000000000% cohpsk_lib.m % David Rowe Mar 2015 % % Coherent PSK modem functions % 1; % Gray coded QPSK modulation function function symbol = qpsk_mod(two_bits) two_bits_decimal = sum(two_bits .* [2 1]); switch(two_bits_decimal) case (0) symbol = 1; case (1) symbol = j; case (2) symbol = -j; case (3) symbol = -1; endswitch endfunction % Gray coded QPSK demodulation function function two_bits = qpsk_demod(symbol) if isscalar(symbol) == 0 printf("only works with scalars\n"); return; end bit0 = real(symbol*exp(j*pi/4)) < 0; bit1 = imag(symbol*exp(j*pi/4)) < 0; two_bits = [bit1 bit0]; endfunction % init function for symbol rate processing -------------------------------------------------------- function sim_in = symbol_rate_init(sim_in) sim_in.Fs = Fs = 8000; modulation = sim_in.modulation; verbose = sim_in.verbose; framesize = sim_in.framesize; Ntrials = sim_in.Ntrials; Esvec = sim_in.Esvec; phase_offset = sim_in.phase_offset; w_offset = sim_in.w_offset; plot_scatter = sim_in.plot_scatter; Rs = sim_in.Rs; Nc = sim_in.Nc; hf_sim = sim_in.hf_sim; nhfdelay = sim_in.hf_delay_ms*Rs/1000; hf_mag_only = sim_in.hf_mag_only; Nd = sim_in.Nd; % diveristy Ns = sim_in.Ns; % step size between pilots ldpc_code = sim_in.ldpc_code; rate = sim_in.ldpc_code_rate; sim_in.bps = bps = 2; sim_in.Nsymb = Nsymb = framesize/bps; sim_in.Nsymbrow = Nsymbrow = Nsymb/Nc; sim_in.Npilotsframe = Npilotsframe = 2; sim_in.Nsymbrowpilot = Nsymbrowpilot = Nsymbrow + Npilotsframe; if verbose == 2 printf("Each frame contains %d data bits or %d data symbols, transmitted as %d symbols by %d carriers.", framesize, Nsymb, Nsymbrow, Nc); printf(" There are %d pilot symbols in each carrier together at the start of each frame, then %d data symbols.", Npilotsframe, Ns); printf(" Including pilots, the frame is %d symbols long by %d carriers.\n\n", Nsymbrowpilot, Nc); end sim_in.prev_sym_tx = qpsk_mod([0 0])*ones(1,Nc*Nd); sim_in.prev_sym_rx = qpsk_mod([0 0])*ones(1,Nc*Nd); sim_in.rx_symb_buf = zeros(3*Nsymbrow, Nc*Nd); sim_in.rx_pilot_buf = zeros(3*Npilotsframe,Nc*Nd); sim_in.tx_bits_buf = zeros(1,2*framesize); % pilot sequence is used for phase and amplitude estimation, and frame sync pilot = 1 - 2*(rand(Npilotsframe,Nc) > 0.5); sim_in.pilot = pilot; sim_in.tx_pilot_buf = [pilot; pilot; pilot]; if sim_in.do_write_pilot_file write_pilot_file(pilot, Nsymbrowpilot, Ns, Nsymbrow, Npilotsframe, Nc); end % we use first 2 pilots of next frame to help with frame sync and fine freq sim_in.Nct_sym_buf = 2*Nsymbrowpilot + 2; sim_in.ct_symb_buf = zeros(sim_in.Nct_sym_buf, Nc*Nd); sim_in.ff_phase = 1; sim_in.ct_symb_ff_buf = zeros(Nsymbrowpilot + 2, Nc*Nd); % Init LDPC -------------------------------------------------------------------- if ldpc_code % Start CML library currentdir = pwd; addpath '~/cml/mat' % assume the source files stored here cd ~/cml CmlStartup % note that this is not in the cml path! cd(currentdir) % Our LDPC library ldpc; mod_order = 4; modulation2 = 'QPSK'; mapping = 'gray'; sim_in.demod_type = 0; sim_in.decoder_type = 0; sim_in.max_iterations = 100; code_param = ldpc_init(rate, framesize, modulation2, mod_order, mapping); code_param.code_bits_per_frame = framesize; code_param.symbols_per_frame = framesize/bps; sim_in.code_param = code_param; else sim_in.rate = 1; sim_in.code_param = []; end endfunction % Symbol rate processing for tx side (modulator) ------------------------------------------------------- % legacy DQPSK mod for comparative testing function [tx_symb prev_tx_symb] = bits_to_dqpsk_symbols(sim_in, tx_bits, prev_tx_symb) Nc = sim_in.Nc; Nsymbrow = sim_in.Nsymbrow; tx_symb = zeros(Nsymbrow,Nc); for c=1:Nc for r=1:Nsymbrow i = (c-1)*Nsymbrow + r; tx_symb(r,c) = qpsk_mod(tx_bits(2*(i-1)+1:2*i)); tx_symb(r,c) *= prev_tx_symb(c); prev_tx_symb(c) = tx_symb(r,c); end end endfunction % legacy DQPSK demod for comparative testing function [rx_symb rx_bits rx_symb_linear prev_rx_symb] = dqpsk_symbols_to_bits(sim_in, rx_symb, prev_rx_symb) Nc = sim_in.Nc; Nsymbrow = sim_in.Nsymbrow; tx_symb = zeros(Nsymbrow,Nc); for c=1:Nc for r=1:Nsymbrow tmp = rx_symb(r,c); rx_symb(r,c) *= conj(prev_rx_symb(c))/abs(prev_rx_symb(c)); prev_rx_symb(c) = tmp; i = (c-1)*Nsymbrow + r; rx_symb_linear(i) = rx_symb(r,c); rx_bits((2*(i-1)+1):(2*i)) = qpsk_demod(rx_symb(r,c)); end end endfunction function [tx_symb tx_bits] = bits_to_qpsk_symbols(sim_in, tx_bits, code_param) ldpc_code = sim_in.ldpc_code; rate = sim_in.ldpc_code_rate; framesize = sim_in.framesize; Nsymbrow = sim_in.Nsymbrow; Nsymbrowpilot = sim_in.Nsymbrowpilot; Nc = sim_in.Nc; Npilotsframe = sim_in.Npilotsframe; Ns = sim_in.Ns; modulation = sim_in.modulation; pilot = sim_in.pilot; Nd = sim_in.Nd; if ldpc_code [tx_bits, tmp] = ldpc_enc(tx_bits, code_param); end % modulate -------------------------------------------- % organise symbols into a Nsymbrow rows by Nc cols % data and parity bits are on separate carriers tx_symb = zeros(Nsymbrow,Nc); for c=1:Nc for r=1:Nsymbrow i = (c-1)*Nsymbrow + r; tx_symb(r,c) = qpsk_mod(tx_bits(2*(i-1)+1:2*i)); end end % insert pilots at start of frame tx_symb = [pilot(1,:); pilot(2,:); tx_symb;]; % copy to other carriers (diversity) tmp = tx_symb; for d=1:Nd-1 tmp = [tmp tx_symb]; end tx_symb = tmp; % ensures energy/symbol is normalised with diversity tx_symb = tx_symb/sqrt(Nd); endfunction % Symbol rate processing for rx side (demodulator) ------------------------------------------------------- function [rx_symb rx_bits rx_symb_linear amp_ phi_ sig_rms noise_rms cohpsk] = qpsk_symbols_to_bits(cohpsk, ct_symb_buf) framesize = cohpsk.framesize; Nsymb = cohpsk.Nsymb; Nsymbrow = cohpsk.Nsymbrow; Nsymbrowpilot = cohpsk.Nsymbrowpilot; Nc = cohpsk.Nc; Nd = cohpsk.Nd; Npilotsframe = cohpsk.Npilotsframe; pilot = cohpsk.pilot; verbose = cohpsk.verbose; coh_en = cohpsk.coh_en; % Use pilots to get phase and amplitude estimates We assume there % are two samples at the start of each frame and two at the end % Note: correlation (averging) method was used initially, but was % poor at tracking fast phase changes that we experience on fading % channels. Linear regression (fitting a straight line) works % better on fading channels, but increases BER slightly for AWGN % channels. sampling_points = [1 2 cohpsk.Nsymbrow+3 cohpsk.Nsymbrow+4]; pilot2 = [cohpsk.pilot(1,:); cohpsk.pilot(2,:); cohpsk.pilot(1,:); cohpsk.pilot(2,:);]; phi_ = zeros(Nsymbrow, Nc*Nd); amp_ = zeros(Nsymbrow, Nc*Nd); for c=1:Nc*Nd y = ct_symb_buf(sampling_points,c) .* pilot2(:,c-Nc*floor((c-1)/Nc)); [m b] = linreg(sampling_points, y, length(sampling_points)); yfit = m*[3 4 5 6] + b; phi_(:, c) = angle(yfit); mag = sum(abs(ct_symb_buf(sampling_points,c))); amp_(:, c) = mag/length(sampling_points); end % now correct phase of data symbols rx_symb = zeros(Nsymbrow, Nc); rx_symb_linear = zeros(1, Nsymbrow*Nc*Nd); rx_bits = zeros(1, framesize); for c=1:Nc*Nd for r=1:Nsymbrow if coh_en == 1 rx_symb(r,c) = ct_symb_buf(2+r,c)*exp(-j*phi_(r,c)); else rx_symb(r,c) = ct_symb_buf(2+r,c); end i = (c-1)*Nsymbrow + r; rx_symb_linear(i) = rx_symb(r,c); end end % and finally optional diversity combination and make decn on bits for c=1:Nc for r=1:Nsymbrow i = (c-1)*Nsymbrow + r; div_symb = rx_symb(r,c); for d=1:Nd-1 div_symb += rx_symb(r,c + Nc*d); end rx_bits((2*(i-1)+1):(2*i)) = qpsk_demod(div_symb); end end % Estimate noise power from demodulated symbols. One method is to % calculate the distance of each symbol from the average symbol % position. However this is complicated by fading, which means the % amplitude of the symbols is constantly changing. % Now the scatter diagram in a fading channel is a X or cross % shape. The noise can be resolved into two components at right % angles to each other. The component along the the "thickness" % of the arms is proportional to the noise power and not affected % by fading. We only use points further along the real axis than % the mean amplitude so we keep out of the central nosiey blob sig_rms = mean(abs(rx_symb_linear)); sum_x = 0; sum_xx = 0; n = 0; for i=1:Nsymb*Nd s = rx_symb_linear(i); if abs(real(s)) > sig_rms sum_x += imag(s); sum_xx += imag(s)*imag(s); n++; end end noise_var = 0; if n > 1 noise_var = (n*sum_xx - sum_x*sum_x)/(n*(n-1)); end noise_rms = sqrt(noise_var); endfunction function [ch_symb rx_timing rx_filt rx_baseband afdmdv f_est] = rate_Fs_rx_processing(afdmdv, ch_fdm_frame, f_est, nsymb, nin, freq_track) M = afdmdv.M; rx_baseband = []; rx_filt = []; rx_timing = []; ch_fdm_frame_index = 1; for r=1:nsymb % shift signal to nominal baseband, this will put Nc/2 carriers either side of 0 Hz [rx_fdm_frame_bb afdmdv.fbb_phase_rx] = freq_shift(ch_fdm_frame(ch_fdm_frame_index:ch_fdm_frame_index + nin - 1), -f_est, afdmdv.Fs, afdmdv.fbb_phase_rx); ch_fdm_frame_index += nin; % downconvert each FDM carrier to Nc separate baseband signals [arx_baseband afdmdv] = fdm_downconvert(afdmdv, rx_fdm_frame_bb, nin); [arx_filt afdmdv] = rx_filter(afdmdv, arx_baseband, nin); [rx_onesym arx_timing env afdmdv] = rx_est_timing(afdmdv, arx_filt, nin); rx_baseband = [rx_baseband arx_baseband]; rx_filt = [rx_filt arx_filt]; rx_timing = [rx_timing arx_timing]; ch_symb(r,:) = rx_onesym; % we only allow a timing shift on one symbol per frame if nin != M nin = M; end % freq tracking, see test_ftrack.m for unit test. Placed in % this function as it needs to work on a symbol by symbol basis % rather than frame by frame. This means the control loop % operates at a sample rate of Rs = 50Hz for say 1 Hz/s drift. if freq_track beta = 0.005; g = 0.2; % combine difference on phase from last symbol over Nc carriers mod_strip = 0; for c=1:afdmdv.Nc+1 adiff = rx_onesym(c) .* conj(afdmdv.prev_rx_symb(c)); afdmdv.prev_rx_symb(c) = rx_onesym(c); % 4th power strips QPSK modulation, by multiplying phase by 4 % Using the abs value of the real coord was found to help % non-linear issues when noise power was large amod_strip = adiff.^4; amod_strip = abs(real(amod_strip)) + j*imag(amod_strip); mod_strip += amod_strip; end % loop filter made up of 1st order IIR plus integrator. Integerator % was found to be reqd afdmdv.filt = (1-beta)*afdmdv.filt + beta*angle(mod_strip); f_est += g*afdmdv.filt; end end endfunction function ct_symb_buf = update_ct_symb_buf(ct_symb_buf, ch_symb, Nct_sym_buf, Nsymbrowpilot) % update memory in symbol buffer for r=1:Nct_sym_buf-Nsymbrowpilot ct_symb_buf(r,:) = ct_symb_buf(r+Nsymbrowpilot,:); end i = 1; for r=Nct_sym_buf-Nsymbrowpilot+1:Nct_sym_buf ct_symb_buf(r,:) = ch_symb(i,:); i++; end endfunction % returns index of start of frame and fine freq offset function [next_sync cohpsk] = frame_sync_fine_freq_est(cohpsk, ch_symb, sync, next_sync) ct_symb_buf = cohpsk.ct_symb_buf; Nct_sym_buf = cohpsk.Nct_sym_buf; Rs = cohpsk.Rs; Nsymbrowpilot = cohpsk.Nsymbrowpilot; Nc = cohpsk.Nc; Nd = cohpsk.Nd; ct_symb_buf = update_ct_symb_buf(ct_symb_buf, ch_symb, Nct_sym_buf, Nsymbrowpilot); cohpsk.ct_symb_buf = ct_symb_buf; % sample pilots at start of this frame and start of next frame sampling_points = [1 2 cohpsk.Nsymbrow+3 cohpsk.Nsymbrow+4]; pilot2 = [ cohpsk.pilot(1,:); cohpsk.pilot(2,:); cohpsk.pilot(1,:); cohpsk.pilot(2,:);]; if sync == 0 % sample correlation over 2D grid of time and fine freq points max_corr = 0; for f_fine=-20:0.25:20 f_fine_rect = exp(-j*f_fine*2*pi*sampling_points/Rs)'; % note: this could be pre-computed at init or compile time for t=0:cohpsk.Nsymbrowpilot-1 corr = 0; mag = 0; for c=1:Nc*Nd f_corr_vec = f_fine_rect .* ct_symb_buf(t+sampling_points,c); % note: this could be pre-computed at init or compile time acorr = 0.0; for p=1:length(sampling_points) acorr += pilot2(p,c-Nc*floor((c-1)/Nc)) * f_corr_vec(p); mag += abs(f_corr_vec(p)); end corr += abs(acorr); end if corr >= max_corr max_corr = corr; max_mag = mag; cohpsk.ct = t; cohpsk.f_fine_est = f_fine; cohpsk.ff_rect = exp(-j*f_fine*2*pi/Rs); end end end printf(" [%d] fine freq f: %f max_ratio: %f ct: %d\n", cohpsk.frame, cohpsk.f_fine_est, abs(max_corr)/max_mag, cohpsk.ct); if abs(max_corr/max_mag) > 0.9 printf(" [%d] encouraging sync word! ratio: %f\n", cohpsk.frame, abs(max_corr/max_mag)); cohpsk.sync_timer = 0; next_sync = 1; else next_sync = 0; end cohpsk.ratio = abs(max_corr/max_mag); end % single point correlation just to see if we are still in sync if sync == 1 corr = 0; mag = 0; f_fine_rect = exp(-j*cohpsk.f_fine_est*2*pi*sampling_points/Rs)'; for c=1:Nc*Nd f_corr_vec = f_fine_rect .* ct_symb_buf(cohpsk.ct+sampling_points,c); acorr = 0; for p=1:length(sampling_points) acorr += pilot2(p, c-Nc*floor((c-1)/Nc)) * f_corr_vec(p); mag += abs(f_corr_vec(p)); end corr += abs(acorr); end cohpsk.ratio = abs(corr)/mag; end endfunction % misc sync state machine code, just wanted it in a function function [sync cohpsk] = sync_state_machine(cohpsk, sync, next_sync) if sync == 1 % check that sync is still good, fall out of sync on consecutive bad frames */ if cohpsk.ratio < 0.8 cohpsk.sync_timer++; else cohpsk.sync_timer = 0; end if cohpsk.sync_timer == 10 printf(" [%d] lost sync ....\n", cohpsk.frame); next_sync = 0; end end sync = next_sync; endfunction codec2-1.0.1/octave/cohpsk_plots.m000066400000000000000000000054441412132000500170120ustar00rootroot00000000000000% cohpsk_plots.m % David Rowe Feb 2017 % % Generate some plots for chps modem blog post rand("seed",1); % Multipath with simple unfiltered BPSK signal N = 100; % number of symbols M = 4; % oversample rate tx_bits = rand(1,N) > 0.5; tx_symbols = 2*tx_bits - 1; tx = zeros(1,N*M); for i=1:N tx((i-1)*M+1:i*M) = tx_symbols(i); end h = [0 0 0 0 0.5]; % model of second path rx1 = tx; rx2 = filter(h,1,tx); rx = rx1 + rx2; % Multipath in time domain figure(1); clf; subplot(311) plot(rx1, "linewidth", 4) axis([0 10*M+1 -2 2]); subplot(312) plot(rx2, "linewidth", 4) axis([0 10*M+1 -2 2]); subplot(313) plot(rx, "linewidth", 4) axis([0 10*M+1 -2 2]); xlabel('Time'); print("cohpsk_multipath_time.png", "-dpng", "-S600,440", "-F:8") % Multipath channel magnitude and phase response against frequency h = [1 0 0 0 0.5]; % model of two path multipath channel H = freqz(h,1,100); figure(2); clf; subplot(211) plot(20*log10(abs(H)), "linewidth", 4) title('Amplitude (dB)'); subplot(212) plot(angle(H), "linewidth", 4) title('Phase (rads)'); %axis([0 500 -2 2]); xlabel('Frequency'); print("cohpsk_multipath_channel.png", "-dpng", "-S600,440", "-F:8") % Effective of 1 sample multipath for different symbols lengths h = [1 0 0 0 0.5]; % model of two path multipath channel M1 = 2; M2 = 20; tx1 = zeros(1,N*M1); tx2 = zeros(1,N*M2); for i=1:N tx1((i-1)*M1+1:i*M1) = tx_symbols(i); tx2((i-1)*M2+1:i*M2) = tx_symbols(i); end rx1 = filter(h,1,tx1); rx2 = filter(h,1,tx2); figure(3); clf; subplot(211) plot(rx1, "linewidth", 4) axis([0 10*M1+1 -2 2]); title('1ms multipath with 2ms symbols') subplot(212) plot(rx2, "linewidth", 4) axis([0 10*M2+1 -2 2]); title('1ms multipath with 20ms symbols') xlabel('Time'); print("cohpsk_multipath_symbol_length.png", "-dpng", "-S600,440", "-F:8") % DBPSK -------------------------------------------------- N = 10; tx_bits = rand(1,N) > 0.5; bpsk = 2*tx_bits - 1; prev_bpsk = 1; for i=1:N % BPSK -> DBPSK dbpsk(i) = bpsk(i) * (-prev_bpsk); prev_bpsk = bpsk(i); % oversampling tx_bpsk((i-1)*M+1:i*M) = bpsk(i); tx_dbpsk((i-1)*M+1:i*M) = dbpsk(i); end figure(4); clf; subplot(211); plot(tx_bpsk, "linewidth", 4) axis([0 10*M+1 -2 2]); title('Tx BPSK'); subplot(212); plot(tx_dbpsk, "linewidth", 4) axis([0 10*M+1 -2 2]); title('Tx DBPSK'); print("cohpsk_dbpsk1.png", "-dpng", "-S600,440", "-F:8") dbpsk *= -1; prev_rx = 1; for i=1:N % rx DBPSK -> PSK bpsk(i) = dbpsk(i) * (prev_rx); prev_rx = bpsk(i); % oversampling rx_bpsk((i-1)*M+1:i*M) = bpsk(i); rx_dbpsk((i-1)*M+1:i*M) = dbpsk(i); end figure(5); clf; subplot(211); plot(rx_dbpsk, "linewidth", 4) axis([0 10*M+1 -2 2]); title('Rx DBPSK with 180 deg phase shift'); subplot(212); plot(rx_bpsk, "linewidth", 4) axis([0 10*M+1 -2 2]); title('Rx BPSK'); print("cohpsk_dbpsk2.png", "-dpng", "-S600,440", "-F:8") codec2-1.0.1/octave/crc16.m000066400000000000000000000044761412132000500152240ustar00rootroot00000000000000% crc16.m % %The CRC calculation is based on following generator polynomial: %G(x) = x16 + x12 + x5 + 1 % %The register initial value of the implementation is: 0xFFFF % %used data = string -> 1 2 3 4 5 6 7 8 9 % % Online calculator to check the script: %http://www.lammertbies.nl/comm/info/crc-calculation.html % % function crc = crc16(data) % crc look up table Crc_ui16LookupTable=[0,4129,8258,12387,16516,20645,24774,28903,33032,37161,41290,45419,49548,... 53677,57806,61935,4657,528,12915,8786,21173,17044,29431,25302,37689,33560,45947,41818,54205,... 50076,62463,58334,9314,13379,1056,5121,25830,29895,17572,21637,42346,46411,34088,38153,58862,... 62927,50604,54669,13907,9842,5649,1584,30423,26358,22165,18100,46939,42874,38681,34616,63455,... 59390,55197,51132,18628,22757,26758,30887,2112,6241,10242,14371,51660,55789,59790,63919,35144,... 39273,43274,47403,23285,19156,31415,27286,6769,2640,14899,10770,56317,52188,64447,60318,39801,... 35672,47931,43802,27814,31879,19684,23749,11298,15363,3168,7233,60846,64911,52716,56781,44330,... 48395,36200,40265,32407,28342,24277,20212,15891,11826,7761,3696,65439,61374,57309,53244,48923,... 44858,40793,36728,37256,33193,45514,41451,53516,49453,61774,57711,4224,161,12482,8419,20484,... 16421,28742,24679,33721,37784,41979,46042,49981,54044,58239,62302,689,4752,8947,13010,16949,... 21012,25207,29270,46570,42443,38312,34185,62830,58703,54572,50445,13538,9411,5280,1153,29798,... 25671,21540,17413,42971,47098,34713,38840,59231,63358,50973,55100,9939,14066,1681,5808,26199,... 30326,17941,22068,55628,51565,63758,59695,39368,35305,47498,43435,22596,18533,30726,26663,6336,... 2273,14466,10403,52093,56156,60223,64286,35833,39896,43963,48026,19061,23124,27191,31254,2801,6864,... 10931,14994,64814,60687,56684,52557,48554,44427,40424,36297,31782,27655,23652,19525,15522,11395,... 7392,3265,61215,65342,53085,57212,44955,49082,36825,40952,28183,32310,20053,24180,11923,16050,3793,7920]; ui16RetCRC16 = hex2dec('FFFF'); for I=1:length(data) ui8LookupTableIndex = bitxor(data(I),uint8(bitshift(ui16RetCRC16,-8))); ui16RetCRC16 = bitxor(Crc_ui16LookupTable(double(ui8LookupTableIndex)+1),mod(bitshift(ui16RetCRC16,8),65536)); end crc=dec2hex(ui16RetCRC16); endfunction codec2-1.0.1/octave/diff_fft_mag.m000066400000000000000000000013421412132000500166660ustar00rootroot00000000000000% Compare the magnitude spectrum of two int16 raw files function diff_fft_mag(filename1, filename2, threshdB = -40, ignore=1000) % load samples and ignore any start up transients s1 = load_raw(filename1)'; s1 = s1(ignore:end); s2 = load_raw(filename2)'; s2 = s2(ignore:end); S1 = abs(fft(s1.*hanning(length(s1))')); S2 = abs(fft(s2.*hanning(length(s2))')); figure(1): clf; plot(20*log10(S1)); hold on; plot(20*log10(S2)); plot(20*log10(abs(S1-S2)),'r'); hold off; error = S1 - S2; error_energy = error*error'; ratio = error_energy/(S1*S1'); ratio_dB = 10*log10(ratio); printf("ratio_dB: %4.2f\n", ratio_dB); if ratio_dB < threshdB printf('PASS\n'); else printf('FAIL\n'); end endfunction codec2-1.0.1/octave/doppler_spread.m000066400000000000000000000020431412132000500172750ustar00rootroot00000000000000% doppler_spread.m % David Rowe Jan 2016 % % Returns gausssian filtered doppler spreading function samples for HF channel % modelling. Used PathSim technical guide as a reference - thanks Moe! function [spread_FsHz states] = doppler_spread(dopplerSpreadHz, FsHz, Nsam) % start with low Fs so we can work with a reasonable filter length sigma = dopplerSpreadHz/2; lowFs = ceil(10*dopplerSpreadHz); Ntaps = 100; Nsam_low = ceil(Nsam*lowFs/FsHz + Ntaps); % fill filter memory % generate gaussian freq response and design filter x = 0:lowFs/100:lowFs/2; y = (1/(sigma*sqrt(2*pi)))*exp(-(x.^2)/(2*sigma*sigma)); b = fir2(Ntaps-1, x/(lowFs/2), y); % generate the spreading samples spread_lowFs = filter(b,1,randn(1,Nsam_low) + j*randn(1,Nsam_low)); % resample to FsHz, scaling for desired spreadFreqHz spread_FsHz = resample(spread_lowFs(Ntaps+1:Nsam_low), FsHz, lowFs); assert(length(spread_FsHz) >= Nsam); % return some states for optional unit testing states.x = x; states.y = y; states.b = b; endfunction codec2-1.0.1/octave/doppler_spread_ut.m000066400000000000000000000017031412132000500200070ustar00rootroot00000000000000% doppler_spread_ut.m % David Rowe Jan 2016 % % Unit test script for doppler_spread f = 1; Fs = 8000; N = Fs*10; [spread states] = doppler_spread(f, Fs, N); % use spreading samples to modulate 1000Hz sine wave % You can listen to this with: sine1k_1Hz.raw % $ play -t raw -r 8000 -s -2 s = cos(2*pi*(1:N)*1000/Fs); s = s .* spread; s = real(s)*5000; fs = fopen("sine1k_1Hz.raw","wb"); fwrite(fs,s,"short"); fclose(fs); % Some plots x = states.x; y = states.y; b = states.b; H = freqz(b,1,x); figure(1) clf subplot(211) plot(x,y,';target;') title('Gaussian Filter Freq Resp Lin'); legend('boxoff'); subplot(212) plot(x,20*log10(y),';target;') hold on; plot(x,20*log10(y),'g+;actual;') hold off; axis([0 f*10/2 -60 0]) title('Gaussian Filter Freq Resp dB'); xlabel('Freq (Hz)'); legend('boxoff'); figure(2); subplot(211) plot(abs(spread)) title('Spreading Function Magnitude'); subplot(212) plot(s) title('1000Hz Sine Wave'); xlabel('Time (samples)') codec2-1.0.1/octave/esno_est.m000066400000000000000000000113741412132000500161200ustar00rootroot00000000000000% esno_est.m % David Rowe Mar 2017 % % Functions for esimating Es/No from QPSK symbols, an dsupporting tests 1; #{ ---------------------------------------------------------------------------- Estimate the energy and noise of received symbols. Signal power is distance from axis on complex plane. Noise power is the distance orthogonal to each symbol, to provide an estimate that is insensitive to fading that moves symbol towards he origin. For QAM we need to use pilots as they don't have modulation that affects estimate, for QPSK Modes we can use all rx symbols. ---------------------------------------------------------------------------- #} function EsNodB = esno_est_calc(rx_syms) sig_var = sum(abs(rx_syms) .^ 2)/length(rx_syms); sig_rms = sqrt(sig_var); sum_x = 0; sum_xx = 0; n = 0; for i=1:length(rx_syms) s = rx_syms(i); % only consider symbols a reasonable distance from the origin, as these are % more likely to be valid and not errors that will mess up the estimate if abs(s) > sig_rms % rough demodulation, determine if symbol is on real or imag axis if abs(real(s)) > abs(imag(s)) % assume noise is orthogonal to real axis sum_x += imag(s); sum_xx += imag(s)*imag(s); else % assume noise is orthogonal to imag axis sum_x += real(s); sum_xx += real(s)*real(s); end n++; end end % trap corner case if n > 1 noise_var = (n*sum_xx - sum_x*sum_x)/(n*(n-1)); else noise_var = sig_var; end % Total noise power is twice estimate of single-axis noise. noise_var = 2*noise_var; EsNodB = 10*log10(sig_var/noise_var); endfunction #{ Plot curves of Es/No estimator in action. Plots indicate it works OK down to Es/No=3dB, where it is 1dB high. That's acceptable as Es/No=3dB is the lower limit of our operation (ie Eb/No=0dB, 10% raw BER). #} function [EsNo_est rx_symbols] = esno_est_curves(EsNodB=0:20, channel="awgn", plot_en=1) Nsym=1000; rand('seed',1); randn('seed',1); tx_symbols = 2*(rand(1,Nsym) > 0.5) -1 + j*(2*(rand(1,Nsym) > 0.5) - 1); tx_symbols *= exp(-j*pi/4)/sqrt(2); if strcmp(channel,"mpp") % for fading we assume perfect phase recovery, so just multiply by mag spread = doppler_spread(2.0, 50, length(tx_symbols)); tx_symbols = tx_symbols .* abs(spread); % normalise power over the multipath channel run S = tx_symbols*tx_symbols'; tx_symbols *= sqrt(Nsym/S); end for i = 1:length(EsNodB) aEsNodB = EsNodB(i); EsNo = 10 .^ (aEsNodB/10); N = 1/EsNo; noise = sqrt(N/2)*randn(1,Nsym) + sqrt(N/2)*j*randn(1,Nsym); S = tx_symbols*tx_symbols'; N = noise*noise'; EsNo_meas(i) = 10*log10(S/N); rx_symbols = tx_symbols + noise; EsNo_est(i) = esno_est_calc(rx_symbols); printf("EsNo: %5.2f EsNo_meas: %5.2f EsNo_est: %5.2f\n", aEsNodB, EsNo_meas(i), EsNo_est(i)); end if plot_en figure(1); plot(EsNodB, EsNo_meas, '+-;EsNo meas;'); hold on; plot(EsNodB, EsNo_est, 'o-;EsNo est;'); hold off; axis([0 max(EsNodB) 0 max(EsNodB)]); grid; figure(2); plot(tx_symbols,'+'); end endfunction function esno_est_test(channel="awgn") test_point_dB = 5; [EsNo_est_awgn rx_syms] = esno_est_curves(test_point_dB, channel, plot_en=0); if abs(EsNo_est_awgn - test_point_dB) < 1.0 printf("%s Pass\n",toupper(channel)); else printf("%s Fail\n",toupper(channel)); end endfunction function esno_est_tests_octave esno_est_test("awgn"); esno_est_test("mpp"); endfunction function esno_est_test_c(channel="awgn") test_point_dB = 5; [EsNo_est rx_syms] = esno_est_curves(test_point_dB, channel, plot_en=0); rx_syms_float = zeros(1,2*length(rx_syms)); rx_syms_float(1:2:end) = real(rx_syms); rx_syms_float(2:2:end) = imag(rx_syms); f = fopen("esno_est.iqfloat","wb"); fwrite(f, rx_syms_float, "float"); fclose(f); printf("\nRunning C version....\n"); path_to_unittest = "../build_linux/unittest" if getenv("PATH_TO_UNITEST") path_to_unittest = getenv("PATH_TO_UNITEST") printf("setting path from env var to %s\n", path_to_unittest); end system(sprintf("%s/tesno_est %s %d > tesno_est_out.txt", path_to_unittest, "esno_est.iqfloat", length(rx_syms))); load tesno_est_out.txt; printf("test_point: %5.2f Octave: %5.2f C: %5.2f\n", test_point_dB, EsNo_est, tesno_est_out); if abs(EsNo_est - tesno_est_out) < 0.5 printf("%s Pass\n",toupper(channel)); else printf("%s Fail\n",toupper(channel)); end endfunction function esno_est_tests_c esno_est_test_c("awgn"); esno_est_test_c("mpp"); endfunction codec2-1.0.1/octave/estsnr.m000066400000000000000000000026521412132000500156160ustar00rootroot00000000000000% estsnr.m % David Rowe May 2017 % % estimate SNR of a sinewave in noise function snr_dB = estsnr(x, Fs=8000, Nbw = 3000) [nr nc] = size(x); if nr == 1 x = x'; end % find peak in +ve side of spectrum, ignoring DC L = length(x); X = abs(fft(x)); st = floor(0.05*L); en = floor(0.45*L); [A mx_ind]= max(X(st:en)); mx_ind += st; % signal energy might be spread by doppler, so sum energy % in frequencies +/- 1% s_st = floor(mx_ind*0.99); s_en = floor(mx_ind*1.01); S = sum(X(s_st:s_en).^2); % real signal, so -ve power is the same S = 2*S; SdB = 10*log10(S); printf("Signal Power S: %3.2f dB\n", SdB); % locate a band of noise next to it and find power in band st = floor(mx_ind+0.05*(L/2)); en = st + floor(0.1*(L/2)); N = sum(X(st:en).^2); % scale this to obtain total noise power across total bandwidth N *= L/(en-st); NdB = 10*log10(N); printf("Noise Power N: %3.2f dB\n", NdB); % scale noise to designed noise bandwidth /2 fudge factor as its a % real signal, wish I had a better way to explain that! NodB = NdB - 10*log10(Fs/2); NscaleddB = NodB + 10*log10(Nbw); snr_dB = SdB - NscaleddB; figure(1); clf; plot(20*log10(X(1:L/2)),'b'); hold on; plot([s_st s_en], [NdB NdB]- 10*log10(L), 'r'); plot([st en], [NdB NdB]- 10*log10(L), 'r'); hold off; top = 10*ceil(SdB/10); bot = NodB - 20; axis([1 L/2 bot top]); grid grid("minor") endfunction codec2-1.0.1/octave/fdmdv.m000066400000000000000000000660631412132000500154060ustar00rootroot00000000000000% fdmdv.m % % Functions that implement a Frequency Divison Multiplexed Modem for % Digital Voice (FDMDV) over HF channels. % % Copyright David Rowe 2012 % This program is distributed under the terms of the GNU General Public License % Version 2 % % TODO: % [X] refactor with states % [X] remove commented out globals % [X] tfdmdv works % [X] fdmdv_demod works % [ ] fdmdv_ut works % reqd to make sure we get same random bits at mod and demod fdmdv_common; rand('state',1); randn('state',1); % Functions ---------------------------------------------------- function f = fdmdv_init(Nc=14) Fs = f.Fs = 8000; % sample rate in Hz T = f.T = 1/Fs; % sample period in seconds Rs = f.Rs = 50; % symbol rate in Hz f.Nc = Nc; Nb = f.Nb = 2; % Bits/symbol for PSK modulation Rb = f.Rb = Nc*Rs*Nb; % bit rate M = f.M = Fs/Rs; % oversampling factor Nsym = f.Nsym = 6; % number of symbols to filter over Fsep = f.Fsep = 75; % Separation between carriers (Hz) Fcenter = f.Fcentre = 1500; % Centre frequency, Nc/2 carriers below this, % Nc/2 carriers above (Hz) Nt = f.Nt = 5; % number of symbols we estimate timing over P = f.P = 4; % oversample factor used for rx symbol filtering Nfilter = f.Nfilter = Nsym*M; Nfiltertiming = f.Nfiltertiming = M+Nfilter+M; Nsync_mem = f.Nsync_mem = 6; f.sync_uw = [1 -1 1 -1 1 -1]; alpha = 0.5; f.gt_alpha5_root = gen_rn_coeffs(alpha, T, Rs, Nsym, M); f.pilot_bit = 0; % current value of pilot bit f.tx_filter_memory = zeros(Nc+1, Nfilter); f.rx_filter_memory = zeros(Nc+1, Nfilter); f.Nrx_fdm_mem = Nfilter+M+M/P; f.rx_fdm_mem = zeros(1,f.Nrx_fdm_mem); f.snr_coeff = 0.9; % SNR est averaging filter coeff % phasors used for up and down converters f.freq = zeros(Nc+1,1); f.freq_pol = zeros(Nc+1,1); for c=1:Nc/2 carrier_freq = (-Nc/2 - 1 + c)*Fsep; f.freq_pol(c) = 2*pi*carrier_freq/Fs; f.freq(c) = exp(j*f.freq_pol(c)); end for c=floor(Nc/2)+1:Nc carrier_freq = (-Nc/2 + c)*Fsep; f.freq_pol(c) = 2*pi*carrier_freq/Fs; f.freq(c) = exp(j*f.freq_pol(c)); end f.freq_pol(Nc+1) = 2*pi*0/Fs; f.freq(Nc+1) = exp(j*f.freq_pol(Nc+1)); f.fbb_rect = exp(j*2*pi*f.Fcentre/Fs); f.fbb_phase_tx = 1; f.fbb_phase_rx = 1; % Spread initial FDM carrier phase out as far as possible. This % helped PAPR for a few dB. We don't need to adjust rx phase as DQPSK % takes care of that. f.phase_tx = ones(Nc+1,1); f.phase_tx = exp(j*2*pi*(0:Nc)/(Nc+1)); f.phase_rx = ones(Nc+1,1); % decimation filter f.Nrxdec = 31; % fir1() output appears to have changed from when coeffs used in C port were used %f.rxdec_coeff = fir1(f.Nrxdec-1, 0.25); f.rxdec_coeff = [-0.00125472 -0.00204605 -0.0019897 0.000163906 0.00490937 0.00986375 ... 0.0096718 -0.000480351 -0.019311 -0.0361822 -0.0341251 0.000827866 ... 0.0690577 0.152812 0.222115 0.249004 0.222115 0.152812 ... 0.0690577 0.000827866 -0.0341251 -0.0361822 -0.019311 -0.000480351 ... 0.0096718 0.00986375 0.00490937 0.000163906 -0.0019897 -0.00204605 ... -0.00125472]; % we need room for Nrdec + the max nin, as we may need to filter max_min samples f.Nrxdecmem = f.Nrxdec+M+M/P; f.rxdec_lpf_mem = zeros(1,f.Nrxdecmem); f.Q=M/4; % freq offset estimation f.Mpilotfft = 256; f.Npilotcoeff = 30; % here's how to make this filter from scratch, however it appeared to change over different % octave versions so have hard coded to version used for C port %f.pilot_coeff = fir1(f.Npilotcoeff-1, 200/(Fs/2))'; % 200Hz LPF f.pilot_coeff = [0.00223001 0.00301037 0.00471258 0.0075934 0.0118145 0.0174153 ... 0.0242969 0.0322204 0.0408199 0.0496286 0.0581172 0.0657392 ... 0.0719806 0.0764066 0.0787022 0.0787022 0.0764066 0.0719806 ... 0.0657392 0.0581172 0.0496286 0.0408199 0.0322204 0.0242969 ... 0.0174153 0.0118145 0.0075934 0.00471258 0.00301037 0.00223001]; f.Npilotbaseband = f.Npilotcoeff + M + M/P; % number of pilot baseband samples f.Npilotlpf = 4*M; % reqd for pilot LPF % number of symbols we DFT pilot over % pilot est window % pilot LUT, used for copy of pilot at rx f.pilot_lut = generate_pilot_lut(f); f.pilot_lut_index = 1; f.prev_pilot_lut_index = 3*M+1; % Freq offset estimator states f.pilot_baseband1 = zeros(1, f.Npilotbaseband); % pilot baseband samples f.pilot_baseband2 = zeros(1, f.Npilotbaseband); % pilot baseband samples f.pilot_lpf1 = zeros(1, f.Npilotlpf); % LPF pilot samples f.pilot_lpf2 = zeros(1, f.Npilotlpf); % LPF pilot samples % Timing estimator states f.rx_filter_mem_timing = zeros(Nc+1, Nt*P); f.rx_baseband_mem_timing = zeros(Nc+1, f.Nfiltertiming); % Test bit stream state variables f = init_test_bits(f); endfunction % generate Nc+1 PSK symbols from vector of (1,Nc*Nb) input bits. The % Nc+1 symbol is the +1 -1 +1 .... BPSK sync carrier function [tx_symbols f] = bits_to_psk(f, prev_tx_symbols, tx_bits) Nc = f.Nc; Nb = f.Nb; m4_gray_to_binary = [ bin2dec("00") bin2dec("01") bin2dec("11") bin2dec("10") ]; m8_gray_to_binary = [ bin2dec("000") bin2dec("001") bin2dec("011") bin2dec("010") bin2dec("111") bin2dec("110") bin2dec("100") bin2dec("101") ]; assert(length(tx_bits) == Nc*Nb, "Incorrect number of bits"); m = 2 .^ Nb; assert((m == 4) || (m == 8)); for c=1:Nc % extract bits for this symbol bits_binary = tx_bits((c-1)*Nb+1:c*Nb); bits_decimal = sum(bits_binary .* 2.^(Nb-1:-1:0)); % determine phase shift using gray code mapping if m == 4 phase_shift = (2*pi/m)*m4_gray_to_binary(bits_decimal+1); else phase_shift = (2*pi/m)*m8_gray_to_binary(bits_decimal+1); end % apply phase shift from previous symbol tx_symbols(c) = exp(j*phase_shift) * prev_tx_symbols(c); end % +1 -1 +1 -1 BPSK sync carrier, once filtered becomes two spectral % lines at +/- Rs/2 if f.pilot_bit tx_symbols(Nc+1) = -prev_tx_symbols(Nc+1); else tx_symbols(Nc+1) = prev_tx_symbols(Nc+1); end if f.pilot_bit f.pilot_bit = 0; else f.pilot_bit = 1; end endfunction % LP filter +/- 1000 Hz, allows us to perform rx filtering at a lower rate saving CPU function [rx_fdm_filter fdmdv] = rxdec_filter(fdmdv, rx_fdm, nin) M = fdmdv.M; Nrxdecmem = fdmdv.Nrxdecmem; Nrxdec = fdmdv.Nrxdec; rxdec_coeff = fdmdv.rxdec_coeff; rxdec_lpf_mem = fdmdv.rxdec_lpf_mem; % place latest nin samples at end of buffer rxdec_lpf_mem(1:Nrxdecmem-nin) = rxdec_lpf_mem(nin+1:Nrxdecmem); rxdec_lpf_mem(Nrxdecmem-nin+1:Nrxdecmem) = rx_fdm(1:nin); % init room for nin output samples rx_fdm_filter = zeros(1,nin); % Move starting point for filter dot product to filter newest samples % in buffer. This stuff makes my head hurt. st = Nrxdecmem - nin - Nrxdec + 1; for i=1:nin a = st+1; b = st+i+Nrxdec-1; %printf("nin: %d i: %d a: %d b: %d\n", nin, i, a, b); rx_fdm_filter(i) = rxdec_lpf_mem(st+i:st+i+Nrxdec-1) * rxdec_coeff'; end fdmdv.rxdec_lpf_mem = rxdec_lpf_mem; end % Combined down convert and rx filter, more memory efficient but less intuitive design % TODO: Decimate mem update and downconversion, this will save some more CPU and memory % note phase would have to advance 4 times as fast function [rx_filt fdmdv] = down_convert_and_rx_filter(fdmdv, rx_fdm, nin, dec_rate) Nc = fdmdv.Nc; M = fdmdv.M; P = fdmdv.P; rx_fdm_mem = fdmdv.rx_fdm_mem; Nrx_fdm_mem = fdmdv.Nrx_fdm_mem; phase_rx = fdmdv.phase_rx; freq = fdmdv.freq; freq_pol = fdmdv.freq_pol; Nfilter = fdmdv.Nfilter; gt_alpha5_root = fdmdv.gt_alpha5_root; Q = fdmdv.Q; % update memory of rx_fdm_mem, newest nin sample ast end of buffer rx_fdm_mem(1:Nrx_fdm_mem-nin) = rx_fdm_mem(nin+1:Nrx_fdm_mem); rx_fdm_mem(Nrx_fdm_mem-nin+1:Nrx_fdm_mem) = rx_fdm(1:nin); for c=1:Nc+1 #{ So we have rx_fdm_mem, a baseband array of samples at rate Fs Hz, including the last nin samples at the end. To filter each symbol we require the baseband samples for all Nsym symbols that we filter over. So we need to downconvert the entire rx_fdm_mem array. To downconvert these we need the LO phase referenced to the start of the rx_fdm_mem array. <--------------- Nrx_filt_mem -------> nin |--------------------------|---------| 1 | phase_rx(c) This means winding phase(c) back from this point to ensure phase continuity. #} wind_back_phase = -freq_pol(c)*(Nfilter); phase_rx(c) = phase_rx(c)*exp(j*wind_back_phase); % down convert all samples in buffer rx_baseband = zeros(1,Nrx_fdm_mem); st = Nrx_fdm_mem; % end of buffer st -= nin-1; % first new sample st -= Nfilter; % first sample used in filtering %printf("Nfilter: %d Nrx_fdm_mem: %d dec_rate: %d nin: %d st: %d\n", % Nfilter, Nrx_fdm_mem, dec_rate, nin, st); f_rect = freq(c) .^ dec_rate; for i=st:dec_rate:Nrx_fdm_mem phase_rx(c) = phase_rx(c) * f_rect; rx_baseband(i) = rx_fdm_mem(i)*phase_rx(c)'; end % now we can filter this carrier's P (+/-1) symbols. Due to % filtering of rx_fdm we can filter at rate at rate M/Q N=M/P; k = 1; for i=1:N:nin rx_filt(c,k) = (M/Q)*rx_baseband(st+i-1:dec_rate:st+i-1+Nfilter-1) * gt_alpha5_root(1:dec_rate:length(gt_alpha5_root))'; k+=1; end end fdmdv.phase_rx = phase_rx; fdmdv.rx_fdm_mem = rx_fdm_mem; endfunction % LPF and peak pick part of freq est, put in a function as we call it twice function [foff imax pilot_lpf_out S] = lpf_peak_pick(f, pilot_baseband, pilot_lpf, nin, do_fft) M = f.M; Npilotlpf = f.Npilotlpf; Npilotbaseband = f.Npilotbaseband; Npilotcoeff = f.Npilotcoeff; Fs = f.Fs; Mpilotfft = f.Mpilotfft; pilot_coeff = f.pilot_coeff; % LPF cutoff 200Hz, so we can handle max +/- 200 Hz freq offset pilot_lpf(1:Npilotlpf-nin) = pilot_lpf(nin+1:Npilotlpf); k = Npilotbaseband-nin+1;; for i = Npilotlpf-nin+1:Npilotlpf pilot_lpf(i) = pilot_baseband(k-Npilotcoeff+1:k) * pilot_coeff'; k++; end imax = 0; foff = 0; S = zeros(1, Mpilotfft); if do_fft % decimate to improve DFT resolution, window and DFT Mpilot = Fs/(2*200); % calc decimation rate given new sample rate is twice LPF freq h = hanning(Npilotlpf); s = pilot_lpf(1:Mpilot:Npilotlpf) .* h(1:Mpilot:Npilotlpf)'; s = [s zeros(1,Mpilotfft-Npilotlpf/Mpilot)]; S = fft(s, Mpilotfft); % peak pick and convert to Hz [imax ix] = max(abs(S)); r = 2*200/Mpilotfft; % maps FFT bin to frequency in Hz if ix > Mpilotfft/2 foff = (ix - Mpilotfft - 1)*r; else foff = (ix - 1)*r; endif end pilot_lpf_out = pilot_lpf; endfunction % Estimate frequency offset of FDM signal using BPSK pilot. This is quite % sensitive to pilot tone level wrt other carriers function [foff S1 S2 f] = rx_est_freq_offset(f, rx_fdm, pilot, pilot_prev, nin, do_fft) M = f.M; Npilotbaseband = f.Npilotbaseband; pilot_baseband1 = f.pilot_baseband1; pilot_baseband2 = f.pilot_baseband2; pilot_lpf1 = f.pilot_lpf1; pilot_lpf2 = f.pilot_lpf2; % down convert latest nin samples of pilot by multiplying by ideal % BPSK pilot signal we have generated locally. The peak of the DFT % of the resulting signal is sensitive to the time shift between the % received and local version of the pilot, so we do it twice at % different time shifts and choose the maximum. pilot_baseband1(1:Npilotbaseband-nin) = pilot_baseband1(nin+1:Npilotbaseband); pilot_baseband2(1:Npilotbaseband-nin) = pilot_baseband2(nin+1:Npilotbaseband); for i=1:nin pilot_baseband1(Npilotbaseband-nin+i) = rx_fdm(i) * conj(pilot(i)); pilot_baseband2(Npilotbaseband-nin+i) = rx_fdm(i) * conj(pilot_prev(i)); end [foff1 max1 pilot_lpf1 S1] = lpf_peak_pick(f, pilot_baseband1, pilot_lpf1, nin, do_fft); [foff2 max2 pilot_lpf2 S2] = lpf_peak_pick(f, pilot_baseband2, pilot_lpf2, nin, do_fft); if max1 > max2 foff = foff1; else foff = foff2; end f.pilot_baseband1 = pilot_baseband1; f.pilot_baseband2 = pilot_baseband2; f.pilot_lpf1 = pilot_lpf1; f.pilot_lpf2 = pilot_lpf2; endfunction % Experimental "feed forward" phase estimation function - estimates % phase over a windows of Nph (e.g. Nph = 9) symbols. May not work % well on HF channels but lets see. Has a phase ambiguity of m(pi/4) % where m=0,1,2 which needs to be corrected outside of this function function [phase_offsets ferr f] = rx_est_phase(f, rx_symbols) global rx_symbols_mem; global prev_phase_offsets; global phase_amb; Nph = f.Nph; Nc = f.Nc; % keep record of Nph symbols rx_symbols_mem(:,1:Nph-1) = rx_symbols_mem(:,2:Nph); rx_symbols_mem(:,Nph) = rx_symbols; % estimate and correct phase offset based of modulation stripped samples phase_offsets = zeros(Nc+1,1); for c=1:Nc+1 % rotate QPSK constellation to a single point mod_stripped = abs(rx_symbols_mem(c,:)) .* exp(j*4*angle(rx_symbols_mem(c,:))); % find average phase offset, which will be on -pi/4 .. pi/4 sum_real = sum(real(mod_stripped)); sum_imag = sum(imag(mod_stripped)); phase_offsets(c) = atan2(sum_imag, sum_real)/4; % determine if phase has jumped from - -> + if (prev_phase_offsets(c) < -pi/8) && (phase_offsets(c) > pi/8) phase_amb(c) -= pi/2; if (phase_amb(c) < -pi) phase_amb(c) += 2*pi; end end % determine if phase has jumped from + -> - if (prev_phase_offsets(c) > pi/8) && (phase_offsets(c) < -pi/8) phase_amb(c) += pi/2; if (phase_amb(c) > pi) phase_amb(c) -= 2*pi; end end end ferr = mean(phase_offsets - prev_phase_offsets); prev_phase_offsets = phase_offsets; endfunction % convert symbols back to an array of bits function [rx_bits sync_bit f_err phase_difference] = psk_to_bits(f, prev_rx_symbols, rx_symbols, modulation) Nc = f.Nc; Nb = f.Nb; m4_binary_to_gray = [ bin2dec("00") bin2dec("01") bin2dec("11") bin2dec("10") ]; m8_binary_to_gray = [ bin2dec("000") bin2dec("001") bin2dec("011") bin2dec("010") bin2dec("110") bin2dec("111") bin2dec("101") bin2dec("100") ]; m = 2 .^ Nb; assert((m == 4) || (m == 8)); phase_difference = zeros(Nc+1,1); for c=1:Nc norm = 1/(1E-6+abs(prev_rx_symbols(c))); phase_difference(c) = rx_symbols(c) .* conj(prev_rx_symbols(c)) * norm; end for c=1:Nc phase_difference(c) *= exp(j*pi/4); if m == 4 % to get a good match between C and Octave during start up use same as C code d = phase_difference(c); if (real(d) >= 0) && (imag(d) >= 0) msb = 0; lsb = 0; end if (real(d) < 0) && (imag(d) >= 0) msb = 0; lsb = 1; end if (real(d) < 0) && (imag(d) < 0) msb = 1; lsb = 1; end if (real(d) >= 0) && (imag(d) < 0) msb = 1; lsb = 0; end rx_bits(2*(c-1)+1) = msb; rx_bits(2*c) = lsb; else % determine index of constellation point received 0,1,...,m-1 index = floor(angle(phase_difference(c))*m/(2*pi) + 0.5); if index < 0 index += m; end % map to decimal version of bits encoded in symbol if m == 4 bits_decimal = m4_binary_to_gray(index+1); else bits_decimal = m8_binary_to_gray(index+1); end % convert back to an array of received bits for i=1:Nb if bitand(bits_decimal, 2.^(Nb-i)) rx_bits((c-1)*Nb+i) = 1; else rx_bits((c-1)*Nb+i) = 0; end end end end assert(length(rx_bits) == Nc*Nb); % Extract DBPSK encoded Sync bit norm = 1/(1E-6+abs(prev_rx_symbols(Nc+1))); phase_difference(Nc+1) = rx_symbols(Nc+1) * conj(prev_rx_symbols(Nc+1)) * norm; if (real(phase_difference(Nc+1)) < 0) sync_bit = 1; f_err = imag(phase_difference(Nc+1))*norm; % make f_err magnitude insensitive else sync_bit = 0; f_err = -imag(phase_difference(Nc+1))*norm; end % extra pi/4 rotation as we need for snr_update and scatter diagram phase_difference(Nc+1) *= exp(j*pi/4); endfunction % given phase differences update estimates of signal and noise levels function [sig_est noise_est] = snr_update(f, sig_est, noise_est, phase_difference) snr_coeff = f.snr_coeff; Nc = f.Nc; % mag of each symbol is distance from origin, this gives us a % vector of mags, one for each carrier. s = abs(phase_difference); % signal mag estimate for each carrier is a smoothed version % of instantaneous magntitude, this gives us a vector of smoothed % mag estimates, one for each carrier. sig_est = snr_coeff*sig_est + (1 - snr_coeff)*s; %printf("s: %f sig_est: %f snr_coeff: %f\n", s(1), sig_est(1), snr_coeff); % noise mag estimate is distance of current symbol from average % location of that symbol. We reflect all symbols into the first % quadrant for convenience. refl_symbols = abs(real(phase_difference)) + j*abs(imag(phase_difference)); n = abs(exp(j*pi/4)*sig_est - refl_symbols); % noise mag estimate for each carrier is a smoothed version of % instantaneous noise mag, this gives us a vector of smoothed % noise power estimates, one for each carrier. noise_est = snr_coeff*noise_est + (1 - snr_coeff)*n; endfunction % calculate current sig estimate for eeach carrier function snr_dB = calc_snr(f, sig_est, noise_est) Rs = f.Rs; % find total signal power by summing power in all carriers S = sum(sig_est .^2); SdB = 10*log10(S); % Average noise mag across all carriers and square to get an average % noise power. This is an estimate of the noise power in Rs = 50Hz of % BW (note for raised root cosine filters Rs is the noise BW of the % filter) N50 = mean(noise_est).^2; N50dB = 10*log10(N50); % Now multiply by (3000 Hz)/(50 Hz) to find the total noise power in % 3000 Hz N3000dB = N50dB + 10*log10(3000/Rs); snr_dB = SdB - N3000dB; endfunction % sets up test bits system. make sure rand('state', 1) has just beed called % so we generate the right test_bits pattern! function f = init_test_bits(f) f.Ntest_bits = f.Nc*f.Nb*4; % length of test sequence f.test_bits = rand(1,f.Ntest_bits) > 0.5; % test pattern of bits f.current_test_bit = 1; f.rx_test_bits_mem = zeros(1,f.Ntest_bits); endfunction % returns nbits from a repeating sequence of random data function [bits f] = get_test_bits(f, nbits) for i=1:nbits bits(i) = f.test_bits(f.current_test_bit++); if (f.current_test_bit > f.Ntest_bits) f.current_test_bit = 1; endif end endfunction % Accepts nbits from rx and attempts to sync with test_bits sequence. % if sync OK measures bit errors function [sync bit_errors error_pattern f] = put_test_bits(f, test_bits, rx_bits) Ntest_bits = f.Ntest_bits; rx_test_bits_mem = f.rx_test_bits_mem; % Append to our memory [m n] = size(rx_bits); f.rx_test_bits_mem(1:f.Ntest_bits-n) = f.rx_test_bits_mem(n+1:f.Ntest_bits); f.rx_test_bits_mem(f.Ntest_bits-n+1:f.Ntest_bits) = rx_bits; % see how many bit errors we get when checked against test sequence error_pattern = xor(test_bits, f.rx_test_bits_mem); bit_errors = sum(error_pattern); % if less than a thresh we are aligned and in sync with test sequence ber = bit_errors/f.Ntest_bits; sync = 0; if (ber < 0.2) sync = 1; endif endfunction % Generate M samples of DBPSK pilot signal for Freq offset estimation function [pilot_fdm bit symbol filter_mem phase] = generate_pilot_fdm(f, bit, symbol, filter_mem, phase, freq) M = f.M; Nfilter = f.Nfilter; gt_alpha5_root = f.gt_alpha5_root; % +1 -1 +1 -1 DBPSK sync carrier, once filtered becomes two spectral % lines at +/- Rs/2 if bit symbol = -symbol; else symbol = symbol; end if bit bit = 0; else bit = 1; end % filter DPSK symbol to create M baseband samples filter_mem(Nfilter) = (sqrt(2)/2)*symbol; for i=1:M tx_baseband(i) = M*filter_mem(M:M:Nfilter) * gt_alpha5_root(M-i+1:M:Nfilter)'; end filter_mem(1:Nfilter-M) = filter_mem(M+1:Nfilter); filter_mem(Nfilter-M+1:Nfilter) = zeros(1,M); % upconvert for i=1:M phase = phase * freq; pilot_fdm(i) = sqrt(2)*2*tx_baseband(i)*phase; end endfunction % Generate a 4M sample vector of DBPSK pilot signal. As the pilot signal % is periodic in 4M samples we can then use this vector as a look up table % for pilot signal generation in the demod. function pilot_lut = generate_pilot_lut(f) Nc = f.Nc; Nfilter = f.Nfilter; M = f.M; freq = f.freq; % pilot states pilot_rx_bit = 0; pilot_symbol = sqrt(2); pilot_freq = freq(Nc+1); pilot_phase = 1; pilot_filter_mem = zeros(1, Nfilter); %prev_pilot = zeros(M,1); pilot_lut = []; F=8; for fr=1:F [pilot pilot_rx_bit pilot_symbol pilot_filter_mem pilot_phase] = generate_pilot_fdm(f, pilot_rx_bit, pilot_symbol, pilot_filter_mem, pilot_phase, pilot_freq); %prev_pilot = pilot; pilot_lut = [pilot_lut pilot]; end % discard first 4 symbols as filter memory is filling, just keep last % four symbols pilot_lut = pilot_lut(4*M+1:M*F); endfunction % grab next pilot samples for freq offset estimation at demod function [pilot prev_pilot pilot_lut_index prev_pilot_lut_index] = get_pilot(f, pilot_lut_index, prev_pilot_lut_index, nin) M = f.M; pilot_lut = f.pilot_lut; for i=1:nin pilot(i) = pilot_lut(pilot_lut_index); pilot_lut_index++; if pilot_lut_index > 4*M pilot_lut_index = 1; end prev_pilot(i) = pilot_lut(prev_pilot_lut_index); prev_pilot_lut_index++; if prev_pilot_lut_index > 4*M prev_pilot_lut_index = 1; end end endfunction % freq offset state machine. Moves between acquire and track states based % on BPSK pilot sequence. Freq offset estimator occasionally makes mistakes % when used continuously. So we use it until we have acquired the BPSK pilot, % then switch to a more robust tracking algorithm. If we lose sync we switch % back to acquire mode for fast-requisition. function [sync reliable_sync_bit state timer sync_mem] = freq_state(f, sync_bit, state, timer, sync_mem) Nsync_mem = f.Nsync_mem; sync_uw = f.sync_uw; % look for 6 symbol (120ms) 010101 of sync sequence unique_word = 0; for i=1:Nsync_mem-1 sync_mem(i) = sync_mem(i+1); end sync_mem(Nsync_mem) = 1 - 2*sync_bit; corr = 0; for i=1:Nsync_mem corr += sync_mem(i)*sync_uw(i); end if abs(corr) == Nsync_mem unique_word = 1; end reliable_sync_bit = (corr == Nsync_mem); % iterate state machine next_state = state; if state == 0 if unique_word next_state = 1; timer = 0; end end if state == 1 if unique_word timer++; if timer == 25 % sync has been good for 500ms next_state = 2; end else next_state = 0; end end if state == 2 % good sync state if unique_word == 0 timer = 0; next_state = 3; end end if state == 3 % tenative bad state, but could be a fade if unique_word next_state = 2; else timer++; if timer == 50 % wait for 1000ms in case sync comes back next_state = 0; end end end %printf("corr: % -d state: %d next_state: %d uw: %d timer: %d\n", corr, state, next_state, unique_word, timer); state = next_state; if state sync = 1; else sync = 0; end endfunction % Save test bits to a text file in the form of a C array function test_bits_file(filename) global test_bits; global Ntest_bits; f=fopen(filename,"wt"); fprintf(f,"/* Generated by test_bits_file() Octave function */\n\n"); fprintf(f,"const int test_bits[]={\n"); for m=1:Ntest_bits-1 fprintf(f," %d,\n",test_bits(m)); endfor fprintf(f," %d\n};\n",test_bits(Ntest_bits)); fclose(f); endfunction % Saves RN filter coeffs to a text file in the form of a C array function rn_file(gt_alpha5_root, filename) Nfilter = length(gt_alpha5_root); f=fopen(filename,"wt"); fprintf(f,"/* Generated by rn_file() Octave function */\n\n"); fprintf(f,"const float gt_alpha5_root[]={\n"); for m=1:Nfilter-1 fprintf(f," %g,\n",gt_alpha5_root(m)); endfor fprintf(f," %g\n};\n",gt_alpha5_root(Nfilter)); fclose(f); endfunction % Saves rx decimation filter coeffs to a text file in the form of a C array function rxdec_file(fdmdv, filename) rxdec_coeff = fdmdv.rxdec_coeff; Nrxdec = fdmdv.Nrxdec; f=fopen(filename,"wt"); fprintf(f,"/* Generated by rxdec_file() Octave function */\n\n"); fprintf(f,"const float rxdec_coeff[]={\n"); for m=1:Nrxdec-1 fprintf(f," %g,\n",rxdec_coeff(m)); endfor fprintf(f," %g\n};\n",rxdec_coeff(Nrxdec)); fclose(f); endfunction function pilot_coeff_file(fdmdv, filename) pilot_coeff = fdmdv.pilot_coeff; Npilotcoeff = fdmdv.Npilotcoeff; f=fopen(filename,"wt"); fprintf(f,"/* Generated by pilot_coeff_file() Octave function */\n\n"); fprintf(f,"const float pilot_coeff[]={\n"); for m=1:Npilotcoeff-1 fprintf(f," %g,\n",pilot_coeff(m)); endfor fprintf(f," %g\n};\n",pilot_coeff(Npilotcoeff)); fclose(f); endfunction % Saves hanning window coeffs to a text file in the form of a C array function hanning_file(fdmdv, filename) Npilotlpf = fdmdv.Npilotlpf; h = hanning(Npilotlpf); f=fopen(filename,"wt"); fprintf(f,"/* Generated by hanning_file() Octave function */\n\n"); fprintf(f,"const float hanning[]={\n"); for m=1:Npilotlpf-1 fprintf(f," %g,\n", h(m)); endfor fprintf(f," %g\n};\n", h(Npilotlpf)); fclose(f); endfunction function png_file(fig, pngfilename) figure(fig); pngname = sprintf("%s.png",pngfilename); print(pngname, '-dpng', "-S500,500") pngname = sprintf("%s_large.png",pngfilename); print(pngname, '-dpng', "-S800,600") endfunction % dump rx_bits in hex function dump_bits(rx_bits) % pack into bytes, MSB first packed = zeros(1,floor(length(rx_bits)+7)/8); bit = 7; byte = 1; for i=1:length(rx_bits) packed(byte) = bitor(packed(byte), bitshift(rx_bits(i),bit)); bit--; if (bit < 0) bit = 7; byte++; end end for i=1:length(packed) printf("0x%02x ", packed(i)); end printf("\n"); endfunction codec2-1.0.1/octave/fdmdv_common.m000066400000000000000000000133631412132000500167510ustar00rootroot00000000000000% fdmdv_common.m % % Functions that implement a Frequency Divison Multiplexed Modem functions % 1; % Given Nc symbols construct M samples (1 symbol) of Nc filtered % symbols streams function [tx_baseband fdmdv] = tx_filter(fdmdv, tx_symbols) Nc = fdmdv.Nc; M = fdmdv.M; tx_filter_memory = fdmdv.tx_filter_memory; Nfilter = fdmdv.Nfilter; gt_alpha5_root = fdmdv.gt_alpha5_root; tx_baseband = zeros(Nc+1,M); % tx filter each symbol, generate M filtered output samples for each symbol. % Efficient polyphase filter techniques used as tx_filter_memory is sparse tx_filter_memory(:,Nfilter) = sqrt(2)/2*tx_symbols; for i=1:M tx_baseband(:,i) = M*tx_filter_memory(:,M:M:Nfilter) * gt_alpha5_root(M-i+1:M:Nfilter)'; end tx_filter_memory(:,1:Nfilter-M) = tx_filter_memory(:,M+1:Nfilter); tx_filter_memory(:,Nfilter-M+1:Nfilter) = zeros(Nc+1,M); fdmdv.tx_filter_memory = tx_filter_memory; endfunction % Construct FDM signal by frequency shifting each filtered symbol % stream. Returns complex signal so we can apply frequency offsets % easily. function [tx_fdm fdmdv] = fdm_upconvert(fdmdv, tx_filt) Fs = fdmdv.Fs; M = fdmdv.M; Nc = fdmdv.Nc; Fsep = fdmdv.Fsep; phase_tx = fdmdv.phase_tx; freq = fdmdv.freq; fbb_rect = fdmdv.fbb_rect; fbb_phase_tx = fdmdv.fbb_phase_tx; tx_fdm = zeros(1,M); % Nc+1 tones for c=1:Nc+1 for i=1:M phase_tx(c) = phase_tx(c) * freq(c); tx_fdm(i) = tx_fdm(i) + tx_filt(c,i)*phase_tx(c); end end % shift up to carrier freq for i=1:M fbb_phase_tx *= fbb_rect; tx_fdm(i) = tx_fdm(i) * fbb_phase_tx; end % Scale such that total Carrier power C of real(tx_fdm) = Nc. This % excludes the power of the pilot tone. % We return the complex (single sided) signal to make frequency % shifting for the purpose of testing easier tx_fdm = 2*tx_fdm; % normalise digital oscillators as the magnitude can drift over time for c=1:Nc+1 mag = abs(phase_tx(c)); phase_tx(c) /= mag; end mag = abs(fbb_phase_tx); fbb_phase_tx /= mag; fdmdv.fbb_phase_tx = fbb_phase_tx; fdmdv.phase_tx = phase_tx; endfunction % complex freq shifting helper function function [out phase] = freq_shift(in, freqHz, Fs, phase) freq_rect = exp(j*2*pi*freqHz/Fs); out = zeros(1, length(in)); for r=1:length(in) phase *= freq_rect; out(r) = in(r)*phase; end mag = abs(phase); phase /= mag; endfunction % Frequency shift each modem carrier down to Nc+1 baseband signals function [rx_baseband fdmdv] = fdm_downconvert(fdmdv, rx_fdm, nin) Fs = fdmdv.Fs; M = fdmdv.M; Nc = fdmdv.Nc; phase_rx = fdmdv.phase_rx; freq = fdmdv.freq; rx_baseband = zeros(Nc+1,nin); for c=1:Nc+1 for i=1:nin phase_rx(c) = phase_rx(c) * freq(c); rx_baseband(c,i) = rx_fdm(i)*phase_rx(c)'; end end for c=1:Nc+1 mag = abs(phase_rx(c)); phase_rx(c) /= mag; end fdmdv.phase_rx = phase_rx; endfunction % Receive filter each baseband signal at oversample rate P function [rx_filt fdmdv] = rx_filter(fdmdv, rx_baseband, nin) Nc = fdmdv.Nc; M = fdmdv.M; P = fdmdv.P; rx_filter_memory = fdmdv.rx_filter_memory; Nfilter = fdmdv.Nfilter; gt_alpha5_root = fdmdv.gt_alpha5_root; rx_filt = zeros(Nc+1,nin*P/M); % rx filter each symbol, generate P filtered output samples for each symbol. % Note we keep memory at rate M, it's just the filter output at rate P assert(mod(M,P)==0); N=M/P; j=1; for i=1:N:nin rx_filter_memory(:,Nfilter-N+1:Nfilter) = rx_baseband(:,i:i-1+N); rx_filt(:,j) = rx_filter_memory * gt_alpha5_root'; rx_filter_memory(:,1:Nfilter-N) = rx_filter_memory(:,1+N:Nfilter); j+=1; end fdmdv.rx_filter_memory = rx_filter_memory; endfunction % Estimate optimum timing offset, re-filter receive symbols function [rx_symbols rx_timing_M env fdmdv] = rx_est_timing(fdmdv, rx_filt, nin) M = fdmdv.M; Nt = fdmdv.Nt; Nc = fdmdv.Nc; rx_filter_mem_timing = fdmdv.rx_filter_mem_timing; P = fdmdv.P; Nfilter = fdmdv.Nfilter; Nfiltertiming = fdmdv.Nfiltertiming; % nin adjust % -------------------------------- % 120 -1 (one less rate P sample) % 160 0 (nominal) % 200 1 (one more rate P sample) adjust = P - nin*P/M; % update buffer of Nt rate P filtered symbols rx_filter_mem_timing(:,1:(Nt-1)*P+adjust) = rx_filter_mem_timing(:,P+1-adjust:Nt*P); rx_filter_mem_timing(:,(Nt-1)*P+1+adjust:Nt*P) = rx_filt(:,:); % sum envelopes of all carriers env = sum(abs(rx_filter_mem_timing(:,:))); % use all Nc+1 carriers for timing %env = abs(rx_filter_mem_timing(Nc+1,:)); % just use BPSK pilot [n m] = size(env); % The envelope has a frequency component at the symbol rate. The % phase of this frequency component indicates the timing. So work out % single DFT at frequency 2*pi/P x = env * exp(-j*2*pi*(0:m-1)/P)'; norm_rx_timing = angle(x)/(2*pi); rx_timing = norm_rx_timing*P + P/4; if (rx_timing > P) rx_timing -= P; end if (rx_timing < -P) rx_timing += P; end % rx_filter_mem_timing contains Nt*P samples (Nt symbols at rate P), % where Nt is odd. Lets use linear interpolation to resample in the % centre of the timing estimation window rx_timing += floor(Nt/2)*P; low_sample = floor(rx_timing); fract = rx_timing - low_sample; high_sample = ceil(rx_timing); %printf("rx_timing: %f low_sample: %f high_sample: %f fract: %f\n", rx_timing, low_sample, high_sample, fract); rx_symbols = rx_filter_mem_timing(:,low_sample)*(1-fract) + rx_filter_mem_timing(:,high_sample)*fract; % rx_symbols = rx_filter_mem_timing(:,high_sample+1); % This value will be +/- half a symbol so will wrap around at +/- % M/2 or +/- 80 samples with M=160 rx_timing_M = norm_rx_timing*M; fdmdv.rx_filter_mem_timing = rx_filter_mem_timing; endfunction codec2-1.0.1/octave/fdmdv_demod.m000066400000000000000000000227531412132000500165540ustar00rootroot00000000000000% fdmdv_demod.m % % Demodulator function for FDMDV modem (Octave version). Requires % 8kHz sample rate raw files as input % % Copyright David Rowe 2012 % This program is distributed under the terms of the GNU General Public License % Version 2 % function fdmdv_demod(rawfilename, nbits, NumCarriers=14, errorpatternfilename, symbolfilename) fdmdv; % include modem code f = fdmdv_init(NumCarriers); Nc = f.Nc; Nb = f.Nb; Rs = f.Rs; M = f.M; Fs = f.Fs; Nsync_mem = f.Nsync_mem; test_bits = f.test_bits; Q = f.Q; P = f.P; modulation = 'dqpsk'; fin = fopen(rawfilename, "rb"); gain = 1000; frames = nbits/(Nc*Nb); prev_rx_symbols = ones(Nc+1,1); foff_phase_rect = 1; % BER stats total_bit_errors = 0; total_bits = 0; bit_errors_log = []; sync_log = []; test_frame_sync_log = []; test_frame_sync_state = 0; error_pattern_log = []; % SNR states sig_est = zeros(Nc+1,1); noise_est = zeros(Nc+1,1); % logs of various states for plotting rx_symbols_log = []; rx_timing_log = []; foff_coarse_log = []; foff_log = []; rx_fdm_log = []; snr_est_log = []; % misc states nin = M; % timing correction for sample rate differences foff = 0; fest_state = 0; fest_timer = 0; sync_mem = zeros(1,Nsync_mem); sync = 0; sync_log = []; % spectrum states Nspec=1024; spec_mem=zeros(1,Nspec); SdB = zeros(1,Nspec); % optionally save output symbols if nargin == 5 fm = fopen(symbolfilename,"wb"); dual_rx_symbols = zeros(1, 2*Nc); dual_rx_bits = zeros(1,2*Nc*Nb); end atimer = 0; % Main loop ---------------------------------------------------- for fr=1:frames % obtain nin samples of the test input signal for i=1:nin rx_fdm(i) = fread(fin, 1, "short")/gain; end rx_fdm_log = [rx_fdm_log rx_fdm(1:nin)]; % update spectrum l=length(rx_fdm); spec_mem(1:Nspec-l) = spec_mem(l+1:Nspec); spec_mem(Nspec-l+1:Nspec) = rx_fdm; S=fft(spec_mem.*hanning(Nspec)',Nspec); SdB = 0.9*SdB + 0.1*20*log10(abs(S)); % shift down to complex baseband for i=1:nin f.fbb_phase_rx = f.fbb_phase_rx*f.fbb_rect'; rx_fdm(i) = rx_fdm(i)*f.fbb_phase_rx; end mag = abs(f.fbb_phase_rx); f.fbb_phase_rx /= mag; % frequency offset estimation and correction [pilot prev_pilot f.pilot_lut_index f.prev_pilot_lut_index] = get_pilot(f, f.pilot_lut_index, f.prev_pilot_lut_index, nin); [foff_coarse S1 S2 f] = rx_est_freq_offset(f, rx_fdm, pilot, prev_pilot, nin, !sync ); if sync == 0 foff = foff_coarse; end foff_coarse_log = [foff_coarse_log foff_coarse]; foff_rect = exp(j*2*pi*foff/Fs); for i=1:nin foff_phase_rect *= foff_rect'; rx_fdm_fcorr(i) = rx_fdm(i)*foff_phase_rect; end % baseband processing if 0 % easier to understand, but more memory and CPU hungry filtering and down conversion [rx_baseband f] = fdm_downconvert(f, rx_fdm_fcorr, nin); [rx_filt f] = rx_filter(f, rx_baseband, nin); else % more efficient filtering and down conversion [rx_fdm_filter f] = rxdec_filter(f, rx_fdm_fcorr, nin); [rx_filt f] = down_convert_and_rx_filter(f, rx_fdm_filter, nin, M/Q); end [rx_symbols rx_timing env f] = rx_est_timing(f, rx_filt, nin); rx_timing_log = [rx_timing_log rx_timing]; nin = M; if rx_timing > M/P nin += M/P; end if rx_timing < -M/P; nin -= M/P; end %printf("fr: %d rx_timing: %d nin = %d\n", fr, rx_timing, nin); rx_symbols_log = [rx_symbols_log rx_symbols.*conj(prev_rx_symbols./abs(prev_rx_symbols))*exp(j*pi/4)]; [rx_bits sync_bit f_err pd] = psk_to_bits(f, prev_rx_symbols, rx_symbols, modulation); % optionally save output symbols if (nargin == 5) % this free runs, and is reset by an "entered sync" state if (sync_track == 0) sync_track = 1; else sync_track = 0; end if (track == 1) && (sync_track == 1) dual_rx_symbols(Nc+1:2*Nc) = rx_symbols(1:Nc).*conj(prev_rx_symbols(1:Nc)./abs(prev_rx_symbols(1:Nc))); dual_rx_symbols_float32 = []; k = 1; for i=1:2*Nc dual_rx_symbols_float32(k++) = real(dual_rx_symbols(i)); dual_rx_symbols_float32(k++) = imag(dual_rx_symbols(i)); end fwrite(fm, dual_rx_symbols_float32, "float32"); dual_rx_bits(Nc*Nb+1:2*Nc*Nb) = rx_bits; %dump_bits(dual_rx_bits); else dual_rx_symbols(1:Nc) = rx_symbols(1:Nc).*conj(prev_rx_symbols(1:Nc)./abs(prev_rx_symbols(1:Nc))); dual_rx_bits(1:Nc*Nb) = rx_bits; end end % update some states prev_rx_symbols = rx_symbols; [sig_est noise_est] = snr_update(f, sig_est, noise_est, pd); snr_est = calc_snr(f, sig_est, noise_est); snr_est_log = [snr_est_log snr_est]; foff -= 0.5*f_err; foff_log = [foff_log foff]; % freq est state machine [sync reliable_sync_bit fest_state fest_timer sync_mem] = freq_state(f, sync_bit, fest_state, fest_timer, sync_mem); sync_log = [sync_log sync]; % count bit errors if we find a test frame [test_frame_sync bit_errors error_pattern f] = put_test_bits(f, test_bits, rx_bits); if (test_frame_sync == 1) if (bit_errors) printf("fr: %d bit_errors: %d\n", fr, bit_errors); end total_bit_errors = total_bit_errors + bit_errors; total_bits = total_bits + f.Ntest_bits; bit_errors_log = [bit_errors_log bit_errors/f.Ntest_bits]; else bit_errors_log = [bit_errors_log 0]; end % test frame sync state machine, just for more informative plots next_test_frame_sync_state = test_frame_sync_state; if (test_frame_sync_state == 0) if (test_frame_sync == 1) next_test_frame_sync_state = 1; test_frame_count = 0; end end if (test_frame_sync_state == 1) % we only expect another test_frame_sync pulse every 4 symbols test_frame_count++; if (test_frame_count == 4) test_frame_count = 0; if ((test_frame_sync == 0)) next_test_frame_sync_state = 0; else error_pattern_log = [error_pattern_log error_pattern]; end end end test_frame_sync_state = next_test_frame_sync_state; test_frame_sync_log = [test_frame_sync_log test_frame_sync_state]; end if nargin == 5 fclose(fm); etfilename = strcat(strtok(symbolfilename,"."),"_et.bin"); fet = fopen(etfilename, "wb"); fwrite(fet, entered_track_log, "short"); fclose(fet); end % --------------------------------------------------------------------- % Print Stats % --------------------------------------------------------------------- % Peak to Average Power Ratio calcs from http://www.dsplog.com papr = max(rx_fdm_log.*conj(rx_fdm_log)) / mean(rx_fdm_log.*conj(rx_fdm_log)); papr_dB = 10*log10(papr); ber = total_bit_errors / total_bits; printf("%d bits %d errors BER: %1.4f PAPR(rx): %1.2f dB\n",total_bits, total_bit_errors, ber, papr_dB); % --------------------------------------------------------------------- % Plots % --------------------------------------------------------------------- xt = (1:frames)/Rs; secs = frames/Rs; figure(1); clf; [n m] = size(rx_symbols_log); plot(real(rx_symbols_log(1:Nc+1,15:m)),imag(rx_symbols_log(1:Nc+1,15:m)),'+') axis([-2 2 -2 2]); title('Scatter Diagram'); figure(2); clf; plot(xt, rx_timing_log) title('timing offset (samples)'); figure(3); plot(xt, foff_log, '-;freq offset;') %hold on; %plot(xt, sync_log*75, 'r;course-fine;'); %hold off; title('Freq offset (Hz)'); grid; figure(4); clf; plot_specgram(rx_fdm_log, Fs); figure(5); clf; subplot(311) stem(xt, sync_log) axis([0 secs 0 1.5]); title('BPSK Sync') subplot(312) stem(xt, bit_errors_log); title('Bit Errors for test frames') subplot(313) plot(xt, test_frame_sync_log); axis([0 secs 0 1.5]); title('Test Frame Sync') figure(6); clf; subplot(211); plot(xt, snr_est_log); title('SNR Estimates') subplot(212) snrdB_pc = 20*log10(sig_est(1:Nc+1)) - 20*log10(noise_est(1:Nc+1)); bar(snrdB_pc(1:Nc) - mean(snrdB_pc(1:Nc))) axis([0 Nc+1 -3 3]); figure(7); clf; hold on; lep = length(error_pattern_log); if lep != 0 for p=1:Nc plot(p + 0.25*error_pattern_log((p-1)*2+1:Nc*Nb:lep)); plot(0.30 + p + 0.25*error_pattern_log(p*2:Nc*Nb:lep),'r') end hold off; axis([1 lep/(Nc*Nb) 0 Nc]) end figure(8); clf; subplot(211) [a b] = size(rx_fdm_log); xt1 = (1:b)/Fs; plot(xt1, rx_fdm_log); title('Rx FDM Signal'); subplot(212) plot((0:Nspec/2-1)*Fs/Nspec, SdB(1:Nspec/2) - 20*log10(Nspec/2)) axis([0 Fs/2 -40 0]) grid title('FDM Rx Spectrum'); if 0 % interleaving tests load ../unittest/inter560.txt lep = length(error_pattern_log); lep = floor(lep/560)*560; error_pattern_log_inter = zeros(1,lep); for i=1:560:lep for j=1:560 %printf("i: %4d j: %4d inter560(j): %4d\n", i,j,inter560(j)); index = inter560(j); error_pattern_log_inter(i-1+index+1) = error_pattern_log(i-1+j); end end figure(8) clf; hold on; for p=1:Nc plot(p + 0.25*error_pattern_log_inter((p-1)*2+1:Nc*Nb:lep)); plot(0.30 + p + 0.25*error_pattern_log_inter(p*2:Nc*Nb:lep),'r') end hold off; axis([1 lep/(Nc*Nb) 0 Nc]) end % optionally save error pattern file if nargin == 4 fout = fopen(errorpatternfilename, "wb"); fwrite(fout, error_pattern_log, "short"); fclose(fout); end endfunction codec2-1.0.1/octave/fdmdv_demod_c.m000066400000000000000000000066171412132000500170570ustar00rootroot00000000000000% fdmdv_demod_c.m % % Plots Octave dump file information from C FDMDV demodulator program, % to give a similar set of plots to fdmdv_demod.m. Useful for off % line analysis of demod performance. % % Copyright David Rowe 2012 % This program is distributed under the terms of the GNU General Public License % Version 2 % function fdmdv_demod_c(dumpfilename, bits) fdmdv; % include modem code f = fdmdv_init; Nc = f.Nc; Nb = f.Nb; Rs = f.Rs; M = f.M; Fs = f.Fs; test_bits = f.test_bits; frames = bits/(Nc*Nb); load(dumpfilename); % BER stats total_bit_errors = 0; total_bits = 0; bit_errors_log = []; sync_log = []; test_frame_sync_log = []; test_frame_sync_state = 0; % Run thru received bits to look for test pattern bits_per_frame = Nc*Nb; for fr=1:frames rx_bits = rx_bits_log_c((fr-1)*bits_per_frame+1:fr*bits_per_frame); % count bit errors if we find a test frame [test_frame_sync bit_errors error_pattern f] = put_test_bits(f, test_bits, rx_bits); if (test_frame_sync == 1) total_bit_errors = total_bit_errors + bit_errors; total_bits = total_bits + f.Ntest_bits; bit_errors_log = [bit_errors_log bit_errors/f.Ntest_bits]; else bit_errors_log = [bit_errors_log 0]; end % test frame sync state machine, just for more informative plots next_test_frame_sync_state = test_frame_sync_state; if (test_frame_sync_state == 0) if (test_frame_sync == 1) next_test_frame_sync_state = 1; test_frame_count = 0; end end if (test_frame_sync_state == 1) % we only expect another test_frame_sync pulse every 4 symbols test_frame_count++; if (test_frame_count == 4) test_frame_count = 0; if ((test_frame_sync == 0)) next_test_frame_sync_state = 0; end end end test_frame_sync_state = next_test_frame_sync_state; test_frame_sync_log = [test_frame_sync_log test_frame_sync_state]; end ber = total_bit_errors / total_bits; printf("%d bits %d errors BER: %1.4f\n",total_bits, total_bit_errors, ber); % --------------------------------------------------------------------- % Plots % --------------------------------------------------------------------- xt = (1:frames)/Rs; secs = frames/Rs; figure(1) clf; plot(real(rx_symbols_log_c(1:Nc+1,15:frames)),imag(rx_symbols_log_c(1:Nc+1,15:frames)),'+') %plot(real(rx_symbols_log_c(Nc+1,15:frames)),imag(rx_symbols_log_c(Nc+1,15:frames)),'+') axis([-2 2 -2 2]); title('Scatter Diagram'); figure(2) clf; subplot(211) plot(xt, rx_timing_log_c(1:frames)) title('timing offset (samples)'); subplot(212) plot(xt, foff_log_c(1:frames), '-;freq offset;') hold on; plot(xt, sync_log_c(1:frames)*75, 'r;course-fine;'); hold off; title('Freq offset (Hz)'); grid figure(3) clf; subplot(211) b = M*frames; xt1 = (1:b)/Fs; plot(xt1, rx_fdm_log_c(1:b)); title('Rx FDM Signal'); subplot(212); plot_specgram(rx_fdm_log_c(1:b), 8000); title('FDM Rx Spectrogram'); figure(4) clf; subplot(311) stem(xt, sync_bit_log_c(1:frames)) axis([0 secs 0 1.5]); title('BPSK Sync') subplot(312) stem(xt, bit_errors_log); title('Bit Errors for test frames') subplot(313) plot(xt, test_frame_sync_log); axis([0 secs 0 1.5]); title('Test Frame Sync') figure(5) clf; plot(xt, snr_est_log_c(1:frames)); title('SNR Estimates') endfunction codec2-1.0.1/octave/fdmdv_demod_coh.m000066400000000000000000000151221412132000500173750ustar00rootroot00000000000000% fdmdv_demod_coh.m % % Demodulator function for FDMDV modem (Octave version). Requires % 8kHz sample rate raw files as input. This version uses experimental % psuedo coherent demodulation. % % Copyright David Rowe 2013 % This program is distributed under the terms of the GNU General Public License % Version 2 % function fdmdv_demod_coh(rawfilename, nbits, pngname) fdmdv; % include modem code modulation = 'dqpsk'; fin = fopen(rawfilename, "rb"); gain = 1000; frames = nbits/(Nc*Nb); prev_rx_symbols = ones(Nc+1,1); foff_phase = 1; % BER stats total_bit_errors = 0; total_bits = 0; bit_errors_log = []; sync_log = []; test_frame_sync_log = []; test_frame_sync_state = 0; % SNR states sig_est = zeros(Nc+1,1); noise_est = zeros(Nc+1,1); % logs of various states for plotting rx_symbols_log = []; rx_timing_log = []; foff_log = []; rx_fdm_log = []; snr_est_log = []; % misc states nin = M; % timing correction for sample rate differences foff = 0; track_log = []; track = 0; fest_state = 0; % psuedo coherent demod states rx_symbols_ph_log = []; prev_rx_symbols_ph = ones(Nc+1,1); rx_phase_offsets_log = []; phase_amb_log = []; % Main loop ---------------------------------------------------- for f=1:frames % obtain nin samples of the test input signal for i=1:nin rx_fdm(i) = fread(fin, 1, "short")/gain; end rx_fdm_log = [rx_fdm_log rx_fdm(1:nin)]; % frequency offset estimation and correction [pilot prev_pilot pilot_lut_index prev_pilot_lut_index] = get_pilot(pilot_lut_index, prev_pilot_lut_index, nin); [foff_coarse S1 S2] = rx_est_freq_offset(rx_fdm, pilot, prev_pilot, nin); if track == 0 foff = foff_coarse; end foff_log = [ foff_log foff ]; foff_rect = exp(j*2*pi*foff/Fs); for i=1:nin foff_phase *= foff_rect'; rx_fdm(i) = rx_fdm(i)*foff_phase; end % baseband processing rx_baseband = fdm_downconvert(rx_fdm, nin); rx_filt = rx_filter(rx_baseband, nin); [rx_symbols rx_timing] = rx_est_timing(rx_filt, rx_baseband, nin); rx_timing_log = [rx_timing_log rx_timing]; nin = M; if rx_timing > 2*M/P nin += M/P; end if rx_timing < 0; nin -= M/P; end rx_symbols_log = [rx_symbols_log rx_symbols.*(conj(prev_rx_symbols)./abs(prev_rx_symbols))*exp(j*pi/4)]; % coherent phase offset estimation ------------------------------------ [rx_phase_offsets ferr] = rx_est_phase(rx_symbols); rx_phase_offsets_log = [rx_phase_offsets_log rx_phase_offsets]; phase_amb_log = [phase_amb_log phase_amb]; rx_symbols_ph = rx_symbols_mem(:,floor(Nph/2)+1) .* exp(-j*(rx_phase_offsets + phase_amb)); rx_symbols_ph_log = [rx_symbols_ph_log rx_symbols_ph .* exp(j*pi/4)]; rx_symbols_ph = -1 + 2*(real(rx_symbols_ph .* exp(j*pi/4)) > 0) + j*(-1 + 2*(imag(rx_symbols_ph .* exp(j*pi/4)) > 0)); % Std differential (used for freq offset est and BPSK sync) and psuedo coherent detection ----------------------- [rx_bits_unused sync f_err pd ] = qpsk_to_bits(prev_rx_symbols, rx_symbols, modulation); [rx_bits sync_unused ferr_unused pd_unused] = qpsk_to_bits(prev_rx_symbols_ph, rx_symbols_ph, 'dqpsk'); foff -= 0.5*f_err; prev_rx_symbols = rx_symbols; prev_rx_symbols_ph = rx_symbols_ph; sync_log = [sync_log sync]; [sig_est noise_est] = snr_update(sig_est, noise_est, pd); snr_est = calc_snr(sig_est, noise_est); snr_est_log = [snr_est_log snr_est]; % freq est state machine [track fest_state] = freq_state(sync, fest_state); track_log = [track_log track]; % count bit errors if we find a test frame [test_frame_sync bit_errors] = put_test_bits(test_bits, rx_bits); if (test_frame_sync == 1) total_bit_errors = total_bit_errors + bit_errors; total_bits = total_bits + Ntest_bits; bit_errors_log = [bit_errors_log bit_errors/Ntest_bits]; else bit_errors_log = [bit_errors_log 0]; end % test frame sync state machine, just for more informative plots next_test_frame_sync_state = test_frame_sync_state; if (test_frame_sync_state == 0) if (test_frame_sync == 1) next_test_frame_sync_state = 1; test_frame_count = 0; end end if (test_frame_sync_state == 1) % we only expect another test_frame_sync pulse every 4 symbols test_frame_count++; if (test_frame_count == 4) test_frame_count = 0; if ((test_frame_sync == 0)) next_test_frame_sync_state = 0; end end end test_frame_sync_state = next_test_frame_sync_state; test_frame_sync_log = [test_frame_sync_log test_frame_sync_state]; end % --------------------------------------------------------------------- % Print Stats % --------------------------------------------------------------------- ber = total_bit_errors / total_bits; printf("%d bits %d errors BER: %1.4f\n",total_bits, total_bit_errors, ber); % --------------------------------------------------------------------- % Plots % --------------------------------------------------------------------- xt = (1:frames)/Rs; secs = frames/Rs; figure(1) clf; [n m] = size(rx_symbols_log); plot(real(rx_symbols_log(1:Nc+1,15:m)),imag(rx_symbols_log(1:Nc+1,15:m)),'+') axis([-2 2 -2 2]); title('Scatter Diagram'); figure(2) clf; subplot(211) plot(xt, rx_timing_log) title('timing offset (samples)'); subplot(212) plot(xt, foff_log, '-;freq offset;') hold on; plot(xt, track_log*75, 'r;course-fine;'); hold off; title('Freq offset (Hz)'); grid figure(3) clf; subplot(211) [a b] = size(rx_fdm_log); xt1 = (1:b)/Fs; plot(xt1, rx_fdm_log); title('Rx FDM Signal'); subplot(212) spec(rx_fdm_log,8000); title('FDM Rx Spectrogram'); figure(4) clf; subplot(311) stem(xt, sync_log) axis([0 secs 0 1.5]); title('BPSK Sync') subplot(312) stem(xt, bit_errors_log); title('Bit Errors for test frames') subplot(313) plot(xt, test_frame_sync_log); axis([0 secs 0 1.5]); title('Test Frame Sync') figure(5) clf; plot(xt, snr_est_log); title('SNR Estimates') figure(6) clf; [n m] = size(rx_symbols_ph_log); plot(real(rx_symbols_ph_log(1:Nc+1,15:m)),imag(rx_symbols_ph_log(1:Nc+1,15:m)),'+') %plot(real(rx_symbols_ph_log(2,15:m)),imag(rx_symbols_ph_log(2,15:m)),'+') axis([-2 2 -2 2]); title('Scatter Diagram - after phase correction'); figure(7) clf; subplot(211) plot(rx_phase_offsets_log(1,:)) subplot(212) plot(phase_amb_log(1,:)) title('Rx Phase Offset Est') endfunction codec2-1.0.1/octave/fdmdv_mod.m000066400000000000000000000015541412132000500162370ustar00rootroot00000000000000% fdmdv_mod.m % % Modulator function for FDMDV modem, uses test frames as input and % outputs a raw file of 16 bit shorts at a sample rate of 8 kHz. % % Copyright David Rowe 2012 % This program is distributed under the terms of the GNU General Public License % Version 2 % function tx_fdm = fdmdv_mod(rawfilename, nbits) fdmdv; % include modem code frames = floor(nbits/(Nc*Nb)) tx_fdm = []; gain = 1000; % Scale up to 16 bit shorts prev_tx_symbols = ones(Nc+1,1); prev_tx_symbols(Nc+1) = 2; for i=1:frames tx_bits = get_test_bits(Nc*Nb); tx_symbols = bits_to_qpsk(prev_tx_symbols, tx_bits,'dqpsk'); prev_tx_symbols = tx_symbols; tx_baseband = tx_filter(tx_symbols); tx_fdm = [tx_fdm real(fdm_upconvert(tx_baseband))]; end tx_fdm *= gain; fout = fopen(rawfilename,"wb"); fwrite(fout, tx_fdm, "short"); fclose(fout); endfunction codec2-1.0.1/octave/fdmdv_ut.m000066400000000000000000000221321412132000500161030ustar00rootroot00000000000000% fdmdv_ut.m % % Unit Test program for FDMDV modem. Useful for general development as it has % both tx and rx sides, and basic AWGN channel simulation. % % Copyright David Rowe 2012 % This program is distributed under the terms of the GNU General Public License % Version 2 % fdmdv; % load modem code % Simulation Parameters -------------------------------------- frames = 100; EbNo_dB = 6.3; Foff_hz = -100; modulation = 'dqpsk'; hpa_clip = 150; % ------------------------------------------------------------ more off; tx_filt = zeros(Nc,M); rx_symbols_log = []; rx_phase_log = 0; rx_timing_log = 0; tx_pwr = 0; noise_pwr = 0; rx_fdm_log = []; rx_baseband_log = []; rx_bits_offset = zeros(Nc*Nb*2); prev_tx_symbols = ones(Nc+1,1); prev_tx_symbols(Nc+1) = 2; prev_rx_symbols = ones(Nc+1,1); ferr = 0; foff = 0; foff_log = []; tx_baseband_log = []; tx_fdm_log = []; % BER stats total_bit_errors = 0; total_bits = 0; bit_errors_log = []; sync_bit_log = []; test_frame_sync_log = []; test_frame_sync_state = 0; % SNR estimation states sig_est = zeros(Nc+1,1); noise_est = zeros(Nc+1,1); % fixed delay simuation Ndelay = M+20; rx_fdm_delay = zeros(Ndelay,1); % --------------------------------------------------------------------- % Eb/No calculations. We need to work out Eb/No for each FDM carrier. % Total power is sum of power in all FDM carriers % --------------------------------------------------------------------- C = 1; % power of each FDM carrier (energy/sample). Total Carrier power should = Nc*C = Nc N = 1; % total noise power (energy/sample) of noise source across entire bandwidth % Eb = Carrier power * symbol time / (bits/symbol) % = C *(1/Rs) / Nb Eb_dB = 10*log10(C) - 10*log10(Rs) - 10*log10(Nb); No_dBHz = Eb_dB - EbNo_dB; % Noise power = Noise spectral density * bandwidth % Noise power = Noise spectral density * Fs/2 for real signals N_dB = No_dBHz + 10*log10(Fs/2); Ngain_dB = N_dB - 10*log10(N); Ngain = 10^(Ngain_dB/20); % C/No = Carrier Power/noise spectral density % = power per carrier*number of carriers / noise spectral density CNo_dB = 10*log10(C) + 10*log10(Nc) - No_dBHz; % SNR in equivalent 3000 Hz SSB channel B = 3000; SNR = CNo_dB - 10*log10(B); % freq offset simulation states phase_offset = 1; freq_offset = exp(j*2*pi*Foff_hz/Fs); foff_phase = 1; t = 0; foff = 0; fest_state = 0; fest_timer = 0; sync_mem = zeros(1,Nsync_mem); sync = 0; sync_log = []; snr_log = []; Nspec=1024; spec_mem=zeros(1,Nspec); SdB = zeros(1,Nspec); % --------------------------------------------------------------------- % Main loop % --------------------------------------------------------------------- for f=1:frames % ------------------- % Modulator % ------------------- tx_bits = get_test_bits(Nc*Nb); tx_symbols = bits_to_psk(prev_tx_symbols, tx_bits, modulation); prev_tx_symbols = tx_symbols; tx_baseband = tx_filter(tx_symbols); tx_baseband_log = [tx_baseband_log tx_baseband]; tx_fdm = fdm_upconvert(tx_baseband); tx_pwr = 0.9*tx_pwr + 0.1*real(tx_fdm)*real(tx_fdm)'/(M); % ------------------- % Channel simulation % ------------------- % frequency offset %Foff_hz += 1/Rs; Foff = Foff_hz; for i=1:M % Time varying freq offset %Foff = Foff_hz + 100*sin(t*2*pi/(300*Fs)); %t++; freq_offset = exp(j*2*pi*Foff/Fs); phase_offset *= freq_offset; tx_fdm(i) = phase_offset*tx_fdm(i); end tx_fdm = real(tx_fdm); % HPA non-linearity tx_fdm(find(abs(tx_fdm) > hpa_clip)) = hpa_clip; tx_fdm_log = [tx_fdm_log tx_fdm]; rx_fdm = tx_fdm; % AWGN noise noise = Ngain*randn(1,M); noise_pwr = 0.9*noise_pwr + 0.1*noise*noise'/M; rx_fdm += noise; rx_fdm_log = [rx_fdm_log rx_fdm]; % update spectrum l=length(rx_fdm); spec_mem(1:Nspec-l) = spec_mem(l+1:Nspec); spec_mem(Nspec-l+1:Nspec) = rx_fdm; S=fft(spec_mem.*hanning(Nspec)',Nspec); SdB = 0.9*SdB + 0.1*20*log10(abs(S)); % ------------------- % Demodulator % ------------------- % shift down to complex baseband for i=1:M fbb_phase_rx = fbb_phase_rx*fbb_rect'; rx_fdm(i) = rx_fdm(i)*fbb_phase_rx; end mag = abs(fbb_phase_rx); fbb_phase_rx /= mag; % frequency offset estimation and correction, need to call rx_est_freq_offset even in sync % mode to keep states updated [pilot prev_pilot pilot_lut_index prev_pilot_lut_index] = get_pilot(pilot_lut_index, prev_pilot_lut_index, M); [foff_coarse S1 S2] = rx_est_freq_offset(rx_fdm, pilot, prev_pilot, M, !sync); if sync == 0 foff = foff_coarse; end foff_log = [ foff_log foff ]; foff_rect = exp(j*2*pi*foff/Fs); for i=1:M foff_phase *= foff_rect'; rx_fdm(i) = rx_fdm(i)*foff_phase; end rx_fdm_filter = rxdec_filter(rx_fdm, M); rx_filt = down_convert_and_rx_filter(rx_fdm_filter, M, M/Q); [rx_symbols rx_timing] = rx_est_timing(rx_filt, M); rx_timing_log = [rx_timing_log rx_timing]; %rx_phase = rx_est_phase(rx_symbols); %rx_phase_log = [rx_phase_log rx_phase]; %rx_symbols = rx_symbols*exp(j*rx_phase); [rx_bits sync_bit foff_fine pd] = psk_to_bits(prev_rx_symbols, rx_symbols, modulation); if strcmp(modulation,'dqpsk') rx_symbols_log = [rx_symbols_log pd]; else rx_symbols_log = [rx_symbols_log rx_symbols]; endif foff -= 0.5*foff_fine; prev_rx_symbols = rx_symbols; sync_bit_log = [sync_bit_log sync_bit]; % freq est state machine [sync reliable_sync_bit fest_state fest_timer sync_mem] = freq_state(sync_bit, fest_state, fest_timer, sync_mem); sync_log = [sync_log sync]; % Update SNR est [sig_est noise_est] = snr_update(sig_est, noise_est, pd); snr_log = [snr_log calc_snr(sig_est, noise_est)]; % count bit errors if we find a test frame % Allow 15 frames for filter memories to fill and time est to settle [test_frame_sync bit_errors] = put_test_bits(test_bits, rx_bits); if test_frame_sync == 1 total_bit_errors = total_bit_errors + bit_errors; total_bits = total_bits + Ntest_bits; bit_errors_log = [bit_errors_log bit_errors]; else bit_errors_log = [bit_errors_log 0]; end % test frame sync state machine, just for more informative plots next_test_frame_sync_state = test_frame_sync_state; if (test_frame_sync_state == 0) if (test_frame_sync == 1) next_test_frame_sync_state = 1; test_frame_count = 0; end end if (test_frame_sync_state == 1) % we only expect another test_frame_sync pulse every 4 symbols test_frame_count++; if (test_frame_count == 4) test_frame_count = 0; if ((test_frame_sync == 0)) next_test_frame_sync_state = 0; end end end test_frame_sync_state = next_test_frame_sync_state; test_frame_sync_log = [test_frame_sync_log test_frame_sync_state]; end % --------------------------------------------------------------------- % Print Stats % --------------------------------------------------------------------- ber = total_bit_errors / total_bits; % Peak to Average Power Ratio calcs from http://www.dsplog.com papr = max(tx_fdm_log.*conj(tx_fdm_log)) / mean(tx_fdm_log.*conj(tx_fdm_log)); papr_dB = 10*log10(papr); % Note Eb/No set point is for Nc data carriers only, excluding pilot. % This is convenient for testing BER versus Eb/No. Measured SNR & % Eb/No includes power of pilot. Similar for SNR, first number is SNR % excluding pilot pwr for Eb/No set point, 2nd value is measured SNR % which will be a little higher as pilot power is included. Note current SNR % est algorithm only works for QPSK, gives silly values for 8PSK. printf("Bits/symbol.: %d\n", Nb); printf("Num carriers: %d\n", Nc); printf("Bit Rate....: %d bits/s\n", Rb); printf("Eb/No (meas): %2.2f (%2.2f) dB\n", EbNo_dB, 10*log10(0.25*tx_pwr*Fs/(Rs*Nc*noise_pwr))); printf("bits........: %d\n", total_bits); printf("errors......: %d\n", total_bit_errors); printf("BER.........: %1.4f\n", ber); printf("PAPR........: %1.2f dB\n", papr_dB); printf("SNR...(meas): %2.2f (%2.2f) dB\n", SNR, calc_snr(sig_est, noise_est)); % --------------------------------------------------------------------- % Plots % --------------------------------------------------------------------- figure(1) clf; [n m] = size(rx_symbols_log); plot(real(rx_symbols_log(1:Nc+1,15:m)),imag(rx_symbols_log(1:Nc+1,15:m)),'+') axis([-3 3 -3 3]); title('Scatter Diagram'); figure(2) clf; subplot(211) plot(rx_timing_log) title('timing offset'); subplot(212) plot(foff_log, '-;freq offset;') hold on; plot(sync_log*75, 'r;Sync State & course(0) fine(1) freq tracking;'); hold off; title('Freq offset (Hz)'); figure(3) clf; subplot(211) plot(real(tx_fdm_log)); title('FDM Tx Signal'); subplot(212) plot((0:Nspec/2-1)*Fs/Nspec, SdB(1:Nspec/2) - 20*log10(Nspec/2)) axis([0 Fs/2 -40 0]) grid title('FDM Rx Spectrum'); figure(4) clf; subplot(311) stem(sync_bit_log) axis([0 frames 0 1.5]); title('BPSK Sync') subplot(312) stem(bit_errors_log); title('Bit Errors for test frames') subplot(313) plot(test_frame_sync_log); axis([0 frames 0 1.5]); title('Test Frame Sync') figure(5) clf subplot(211) plot(snr_log) subplot(212) %plot(20*log10(sig_est(1:Nc))-20*log10(sig_est(Nc+1))+6) %axis([1 Nc -6 6]); sdB_pc = 20*log10(sig_est(1:Nc+1)); bar(sdB_pc(1:Nc) - mean(sdB_pc(1:Nc))) axis([0 Nc+1 -3 3]); codec2-1.0.1/octave/fdmdv_ut_freq_off.m000066400000000000000000000320071412132000500177540ustar00rootroot00000000000000% fdmdv_ut_freq_off.m % David Rowe 17 June 2014 % % Unit Test program for freq offset estimation in FDMDV modem. % % Copyright David Rowe 2012 This program is % distributed under the terms of the GNU General Public License % Version 2 % [ ] sweep of different delays % [ ] sweep of Eb/No % [ ] sweep of freq offsets % [ ] step change in foff % + time to respond % [ ] plot/print pass fail/relevant stats % + variance % + histogram of freq ests? fdmdv; % load modem code hf_sim; % load hf sim code % --------------------------------------------------------------------- % Eb/No calculations. We need to work out Eb/No for each FDM carrier. % Total power is sum of power in all FDM carriers. These calcs set the % Eb/No of the data carriers, Eb/No of pilot will be higher. % --------------------------------------------------------------------- function [Nsd SNR] = calc_Nsd_from_EbNo(EbNo_dB) global Rs; global Nb; global Nc; global Fs; C = 1; % power of each FDM carrier (energy/sample). Total Carrier power should = Nc*C = Nc N = 1; % total noise power (energy/sample) of noise source across entire bandwidth % Eb = Carrier power * symbol time / (bits/symbol) % = C *(1/Rs) / Nb Eb_dB = 10*log10(C) - 10*log10(Rs) - 10*log10(Nb); No_dBHz = Eb_dB - EbNo_dB; % Noise power = Noise spectral density * bandwidth % Noise power = Noise spectral density * Fs/2 for real signals N_dB = No_dBHz + 10*log10(Fs/2); Ngain_dB = N_dB - 10*log10(N); Nsd = 10^(Ngain_dB/20); % C/No = Carrier Power/noise spectral density % = power per carrier*number of carriers / noise spectral density CNo_dB = 10*log10(C) + 10*log10(Nc) - No_dBHz; % SNR in equivalent 3000 Hz SSB channel, adding extra power for pilot to get % true SNR. B = 3000; SNR = CNo_dB - 10*log10(B) + 10*log10((Nc+4)/Nc); end % we keep a m sample buffer in sample_memory % update sample_memory with n samples each time this function is called % outputs one nfft2 slice of spectrogram in dB. Good idea to make nfft2 a power of 2 function [S, states_out] = spectrogram_update(samples, n, states_in) sample_memory = states_in.sample_memory; m = states_in.m; nfft2 = states_in.nfft2; lower_clip_dB = states_in.lower_clip_dB; dec = states_in.dec; sample_memory(1:m-n) = sample_memory(n+1:m); sample_memory(m-n+1:m) = samples; F = fft(sample_memory .* hanning(m)', 2*nfft2); S = 20*log10(abs(F(1:dec:nfft2))/(nfft2)); S(find(S < lower_clip_dB)) = lower_clip_dB; % clip lower limit states_out = states_in; states_out.sample_memory = sample_memory; end % ------------------------------------------------------------ function sim_out = freq_off_est_test(sim_in) global Nc; global Nb; global M; global Fs; global pilot_lut_index; global prev_pilot_lut_index; global pilot_lpf1; global Npilotlpf; global spread; global spread_2ms; global hf_gain; EbNovec = sim_in.EbNovec; Ndelay = sim_in.delay; frames = sim_in.frames; startup_delay = sim_in.startup_delay; allowable_error = sim_in.allowable_error; foff_hz = sim_in.foff_hz; hf_sim = sim_in.hf_sim; hf_delay = floor(sim_in.hf_delay_ms*Fs/1000); plot_type = sim_in.plot_type; % work out gain for HF model % e = sum((g*s)^2) = g*g*sum(s^2) = N, g = sqrt(N/sum(s^2)) % compute so e=N s1 = spread(1:frames*M); s2 = [zeros(hf_delay,1); spread_2ms(1:frames*M)]; s2 = s2(1:frames*M); p = (s1+s2)'*(s1+s2); hf_gain = sqrt(frames*M/p); p2 = (hf_gain*(s1+s2))'*(hf_gain*(s1+s2)); if hf_sim channel_model = "HF"; else channel_model = "AWGN"; end % spectrogram states spec_states.m = 8*M; spec_states.nfft2 = 2 ^ ceil(log2(spec_states.m/2)); spec_states.dec = 4; spec_states.sample_memory = zeros(1, spec_states.m); spec_states.lower_clip_dB = -30; printf("\n%s\n", sim_in.test_name); printf(" Channel EbNo SNR(calc) SNR(meas) SD(Hz) Hits Hits(%%) Result\n"); % --------------------------------------------------------------------- % Main loop % --------------------------------------------------------------------- for ne = 1:length(EbNovec) EbNo_dB = EbNovec(ne); [Nsd SNR] = calc_Nsd_from_EbNo(EbNo_dB); hits = 0; tx_filt = zeros(Nc,M); prev_tx_symbols = ones(Nc+1,1); tx_fdm_log = []; rx_fdm_log = []; pilot_lpf1_log = []; S1_log = []; rx_fdm_delay = zeros(M+Ndelay,1); % freq offset simulation states phase_offset = 1; Nmedian = 20; foff_median=zeros(1,Nmedian); % hf sim states path2 = zeros(1,hf_delay+M); sum_sig = 0; sum_noise = 0; % state machine state = 0; fest_current = 0; fdelta = 5; candidate_thresh = 10; foff_est_thresh_prev = 0; for f=1:frames % ------------------- Modulator ------------------- tx_bits = get_test_bits(Nc*Nb); tx_symbols = bits_to_psk(prev_tx_symbols, tx_bits, 'dqpsk'); % simulate BPF filtering of +/- 200 Hz % tx_symbols(1:6) = 0; tx_symbols(9:Nc) = 0; prev_tx_symbols = tx_symbols; tx_baseband = tx_filter(tx_symbols); tx_fdm = fdm_upconvert(tx_baseband); tx_fdm_log = [tx_fdm_log real(tx_fdm)]; % ------------------- Channel simulation ------------------- % frequency offset for i=1:M freq_offset = exp(j*2*pi*foff_hz(f)/Fs); phase_offset *= freq_offset; tx_fdm(i) = phase_offset*tx_fdm(i); end % optional HF channel sim if hf_sim path1 = tx_fdm .* conj(spread(f*M+1:f*M+M)'); path2(1:hf_delay) = path2(M+1:hf_delay+M); path2(hf_delay+1:hf_delay+M) = tx_fdm .* conj(spread_2ms(f*M+1:f*M+M)'); tx_fdm = hf_gain*(path1 + path2(1:M)); end sum_sig += tx_fdm * tx_fdm'; rx_fdm = real(tx_fdm); % AWGN noise noise = Nsd*randn(1,M); sum_noise += noise * noise'; rx_fdm += noise; rx_fdm_log = [rx_fdm_log rx_fdm]; % Fixed Delay rx_fdm_delay(1:Ndelay) = rx_fdm_delay(M+1:M+Ndelay); rx_fdm_delay(Ndelay+1:M+Ndelay) = rx_fdm; % ------------------- Freq Offset Est ------------------- % frequency offset estimation and correction, need to call % rx_est_freq_offset even in track mode to keep states updated [pilot prev_pilot pilot_lut_index prev_pilot_lut_index] = ... get_pilot(pilot_lut_index, prev_pilot_lut_index, M); [foff_est S1 S2] = rx_est_freq_offset(rx_fdm_delay, pilot, prev_pilot, M); pilot_lpf1_log = [pilot_lpf1_log pilot_lpf1(Npilotlpf-M+1:Npilotlpf)]; S1_log(f,:) = fftshift(S1); S2_log(f,:) = fftshift(S2); % raw estimate foff_log(ne,f) = foff_est; maxS1_log(ne,f) = max(S1.*conj(S1)/(S1*S1')); maxS2_log(ne,f) = max(S2.*conj(S2)/(S2*S2')); % median filter post-processed foff_median(1:Nmedian-1) = foff_median(2:Nmedian); foff_median(Nmedian) = foff_est; foff_median_log(ne,f) = foff_coarse = median(foff_median); % state machine post-processed next_state = state; if state == 0 if abs(foff_est - fest_current) > fdelta fest_candidate = foff_est; candidate_count = 0; next_state = 1; end end if state == 1 if abs(foff_est - fest_candidate) > fdelta next_state = 0; end candidate_count++; if candidate_count > candidate_thresh fest_current = fest_candidate; next_state = 0; end end state = next_state; foff_statemach_log(ne,f) = fest_current; % threshold post processed if (maxS1_log(ne,f) > 0.06) || (maxS2_log(ne,f) > 0.06) %if (maxS1_log(ne,f) > 0.08) foff_thresh_log(ne,f) = foff_est; else foff_thresh_log(ne,f) = foff_est_thresh_prev; end foff_est_thresh_prev = foff_thresh_log(ne,f); % hit/miss stats fest_current = foff_statemach_log(ne,f); if (f > startup_delay) && (abs(fest_current - foff_hz(f)) < allowable_error) hits++; end if length(EbNovec) == 1 [spectrogram(f,:) spec_states] = spectrogram_update(rx_fdm, M, spec_states); end end % results for this EbNo value sim_out.foff_sd(ne) = std(foff_log(ne,startup_delay:frames)); sim_out.hits = hits; sim_out.hits_percent = 100*sim_out.hits/(frames-startup_delay); sim_out.SNRvec(ne) = SNR; sim_out.tx_fdm_log = tx_fdm_log; sim_out.rx_fdm_log = rx_fdm_log; % noise we have measures is 4000 Hz wide, we want noise in 3000 Hz BW snr_meas = 10*log10(sum_sig/(sum_noise*4000/3000)); printf(" %6s %5.2f % -5.2f % -5.2f %3.2f %d %3.2f ", ... channel_model, EbNo_dB, SNR, snr_meas, sim_out.foff_sd(ne), sim_out.hits, sim_out.hits_percent); if sim_out.hits_percent == 100 printf("PASS\n"); else printf("FAIL\n"); figure(5) clf plot(abs(foff_statemach_log(ne,:) - foff_hz < allowable_error)); end % plots if single dimension vector if length(EbNovec) == 1 fmin = -200; fmax = 200; figure(1) clf; subplot(411) plot(foff_log(ne,:)) axis([1 frames fmin fmax]); ylabel("Foff raw") subplot(412) plot(foff_median_log(ne,:)) axis([1 frames fmin fmax]); ylabel("Foff median") subplot(413) plot(foff_statemach_log(ne,:),'g') ylabel("Foff state") axis([1 frames fmin fmax]); subplot(414) plot(foff_thresh_log(ne,:)) ylabel("Foff thresh") axis([1 frames fmin fmax]); xlabel("Frames") grid; figure(2) clf; plot(maxS1_log(ne,:)); axis([1 frames 0 0.2]); xlabel("Frames") ylabel("max(abs(S1/S2))") grid; hold on; plot(maxS2_log(ne,:),'g'); hold off; figure(3) [n m] = size(S1_log); if strcmp(plot_type,"mesh") mesh(-200+400*(0:m-1)/256,1:n,abs(S1_log(:,:))); xlabel('Freq (Hz)'); ylabel('Frame num'); zlabel("max(abs(S1))") else imagesc(1:n,-200+400*(0:(m-1))/m,abs(S1_log(:,:))'); set(gca,'YDir','normal') ylabel('Freq (Hz)'); xlabel('Frame num'); axis([1 n -200 200]) end figure(4) clf [n m] = size(spectrogram); if strcmp(plot_type,"mesh") mesh((4000/m)*(1:m),1:n,spectrogram); xlabel('Freq (Hz)'); ylabel('Frame num'); zlabel('Amplitude (dB)'); else imagesc(1:n,(4000/m)*(1:m),spectrogram') set(gca,'YDir','normal') ylabel('Freq (Hz)'); xlabel('Frame num'); axis([1 n 500 2500]) end sim_out.spec = spectrogram; sim_out.tx_fdm_log = spectrogram; end end end % --------------------------------------------------------------------- % Run Automated Tests % --------------------------------------------------------------------- more off; function test1 global M; global Rs; sim_in.test_name = "Test 1: range of Eb/No (SNRs) in AWGN channel"; sim_in.EbNovec = [3:10 99]; sim_in.delay = M/2; sim_in.frames = Rs*3; sim_in.foff_hz(1:sim_in.frames) = 50; sim_in.startup_delay = 0.5*Rs; sim_in.allowable_error = 5; sim_in.hf_sim = 0; sim_in.hf_delay_ms = 2; sim_in.delay = M/2; sim_in.plot_type = "waterfall"; sim_out = freq_off_est_test(sim_in); figure(5) clf subplot(211) plot(sim_in.EbNovec, sim_out.foff_sd) hold on; plot(sim_in.EbNovec, sim_out.foff_sd,'+') hold off; xlabel("Eb/No (dB)") ylabel("Std Dev (Hz)") axis([(min(sim_in.EbNovec)-1) (max(sim_in.EbNovec)+1) -1 10]); subplot(212) plot(sim_out.SNRvec,sim_out.foff_sd) hold on; plot(sim_out.SNRvec,sim_out.foff_sd,'+') hold off; xlabel("SNR (dB)") ylabel("Std Dev (Hz)") axis([(min(sim_out.SNRvec)-1) (max(sim_out.SNRvec)+1) -1 10]); end function test2 sim_in.test_name = "Test 2: range of Eb/No (SNRs) in HF multipath channel" sim_in.EbNovec = 0:10; sim_in.delay = 2; sim_in.hf_sim = 1; sim_in.hf_delay_ms = 2; sim_in.frames = Rs*2; sim_in.foff_hz = 0; sim_in.startup_delay = Rs/2; sim_in.allowable_error = 5; sim_out = freq_off_est_test(sim_in); figure(5) clf subplot(211) plot(sim_in.EbNovec,sim_out.foff_sd) hold on; plot(sim_in.EbNovec,sim_out.foff_sd,'+') hold off; xlabel("Eb/No (dB)") ylabel("Std Dev") axis([(min(sim_in.EbNovec)-1) (max(sim_in.EbNovec)+1) -1 10]); end function test3 global M; global Rs; sim_in.test_name = "Test 3: 30 Seconds in HF multipath channel at 0dB-ish SNR"; sim_in.EbNovec = 13; sim_in.hf_sim = 0; sim_in.hf_delay_ms = 2; sim_in.delay = M/2; sim_in.frames = Rs; sim_in.foff_hz(1:sim_in.frames) = -50; sim_in.startup_delay = Rs; % allow 1 second in heavily faded channels sim_in.allowable_error = 5; sim_in.plot_type = "mesh"; sim_out = freq_off_est_test(sim_in); endfunction function animated_gif figure(4) for i=5:5:360 view(i,45) filename=sprintf('fdmdv_fig%05d.png',i); print(filename); end if 0 for i=90:-5:-270 view(45,i) filename=sprintf('fdmdv_fig%05d.png',i); print(filename); end end endfunction test3; codec2-1.0.1/octave/fm.m000066400000000000000000000305461412132000500147050ustar00rootroot00000000000000% fm.m % David Rowe Dec 2014 % % Analog FM Octave simulation functions. 1; graphics_toolkit ("gnuplot"); function fm_states = analog_fm_init(fm_states) % FM modulator constants Fs = fm_states.Fs; FsOn2 = Fs/2; fm_max = fm_states.fm_max; % max modulation freq fd = fm_states.fd; % (max) deviation fm_states.m = fd/fm_max; % modulation index fm_states.Bfm = Bfm = 2*(fd+fm_max); % Carson's rule for FM signal bandwidth fm_states.tc = tc = 50E-6; fm_states.prede = [1 -(1 - 1/(tc*Fs))]; % pre/de emp filter coeffs fm_states.ph_dont_limit = 0; % Limit rx delta-phase % Select length of filter to be an integer number of symbols to % assist with "fine" timing offset estimation. Set Ts to 1 for % analog modulation. Ts = fm_states.Ts; desired_ncoeffs = 200; ncoeffs = floor(desired_ncoeffs/Ts+1)*Ts; % "coarse" timing offset is half filter length, we have two filters. % This is the delay the two filters introduce, so we need to adjust % for this when comparing tx to trx bits for BER calcs. fm_states.nsym_delay = ncoeffs/Ts; % input filter gets rid of excess noise before demodulator, as too much % noise causes atan2() to jump around, e.g. -pi to pi. However this % filter can cause harmonic distortion at very high SNRs, as it knocks out % some of the FM signal spectra. This filter isn't really required for high % SNRs > 20dB. fc = (Bfm/2)/(FsOn2); fm_states.bin = firls(ncoeffs,[0 fc*(1-0.05) fc*(1+0.05) 1],[1 1 0.01 0.01]); % demoduator output filter to limit us to fm_max (e.g. 3kHz) fc = fm_max/(FsOn2); fm_states.bout = firls(ncoeffs,[0 0.95*fc 1.05*fc 1], [1 1 0.01 0.01]); endfunction function fm_fir_coeff_file(fm_states, filename) global gt_alpha5_root; global Nfilter; f=fopen(filename,"wt"); fprintf(f,"/* Generated by fm_fir_coeff_file() Octave function in fm.m */\n\n"); fprintf(f,"const float bin[]={\n"); for m=1:length(fm_states.bin)-1 fprintf(f," %g,\n", fm_states.bin(m)); endfor fprintf(f," %g\n};\n\n", fm_states.bin(length(fm_states.bin))); fprintf(f,"const float bout[]={\n"); for m=1:length(fm_states.bout)-1 fprintf(f," %g,\n", fm_states.bout(m)); endfor fprintf(f," %g\n};\n", fm_states.bout(length(fm_states.bout))); fclose(f); endfunction function tx = analog_fm_mod(fm_states, mod) Fs = fm_states.Fs; fc = fm_states.fc; wc = 2*pi*fc/Fs; fd = fm_states.fd; wd = 2*pi*fd/Fs; nsam = length(mod); if fm_states.pre_emp mod = filter(fm_states.prede,1,mod); mod = mod/max(mod); % AGC to set deviation end tx_phase = 0; tx = zeros(1,nsam); for i=0:nsam-1 w = wc + wd*mod(i+1); tx_phase = tx_phase + w; tx_phase = tx_phase - floor(tx_phase/(2*pi))*2*pi; tx(i+1) = exp(j*tx_phase); end endfunction function [rx_out rx_bb] = analog_fm_demod(fm_states, rx) Fs = fm_states.Fs; fc = fm_states.fc; wc = 2*pi*fc/Fs; fd = fm_states.fd; wd = 2*pi*fd/Fs; nsam = length(rx); t = 0:(nsam-1); rx_bb = rx .* exp(-j*wc*t); % down to complex baseband rx_bb = filter(fm_states.bin,1,rx_bb); % differentiate first, in rect domain, then find angle, this puts % signal on the positive side of the real axis rx_bb_diff = [ 1 rx_bb(2:nsam) .* conj(rx_bb(1:nsam-1))]; rx_out = atan2(imag(rx_bb_diff),real(rx_bb_diff)); % limit maximum phase jumps, to remove static type noise at low SNRs if !fm_states.ph_dont_limit rx_out(find(rx_out > wd)) = wd; rx_out(find(rx_out < -wd)) = -wd; end rx_out *= (1/wd); if fm_states.output_filter rx_out = filter(fm_states.bout,1,rx_out); end if fm_states.de_emp rx_out = filter(1,fm_states.prede,rx_out); end endfunction function sim_out = analog_fm_test(sim_in) nsam = sim_in.nsam; CNdB = sim_in.CNdB; verbose = sim_in.verbose; Fs = fm_states.Fs = 96000; fm_max = fm_states.fm_max = 3E3; fd = fm_states.fd = 5E3; fm_states.fc = 24E3; fm_states.pre_emp = pre_emp = sim_in.pre_emp; fm_states.de_emp = de_emp = sim_in.de_emp; fm_states.Ts = 1; fm_states.output_filter = 1; fm_states = analog_fm_init(fm_states); sim_out.Bfm = fm_states.Bfm; Bfm = fm_states.Bfm; m = fm_states.m; tc = fm_states.tc; t = 0:(nsam-1); fm = 1000; wm = 2*pi*fm/fm_states.Fs; % start simulation for ne = 1:length(CNdB) % work out the variance we need to obtain our C/N in the bandwidth % of the FM demod. The gaussian generator randn() generates noise % with a bandwidth of Fs aCNdB = CNdB(ne); CN = 10^(aCNdB/10); variance = Fs/(CN*Bfm); % FM Modulator ------------------------------- mod = sin(wm*t); tx = analog_fm_mod(fm_states, mod); % Channel --------------------------------- noise = sqrt(variance/2)*(randn(1,nsam) + j*randn(1,nsam)); rx = tx + noise; % FM Demodulator [rx_out rx_bb] = analog_fm_demod(fm_states, rx); % notch out test tone w = 2*pi*fm/Fs; beta = 0.99; rx_notch = filter([1 -2*cos(w) 1],[1 -2*beta*cos(w) beta*beta], rx_out); % measure power with and without test tone to determine S+N and N settle = 1000; % filter settling time, to avoid transients nsettle = nsam - settle; sinad = (rx_out(settle:nsam) * rx_out(settle:nsam)')/nsettle; nad = (rx_notch(settle:nsam) * rx_notch(settle:nsam)')/nsettle; snr = (sinad-nad)/nad; sim_out.snrdB(ne) = 10*log10(snr); % Theory from FMTutorial.pdf, Lawrence Der, Silicon labs paper snr_theory_dB = aCNdB + 10*log10(3*m*m*(m+1)); fx = 1/(2*pi*tc); W = fm_max; I = (W/fx)^3/(3*((W/fx) - atan(W/fx))); I_dB = 10*log10(I); sim_out.snr_theorydB(ne) = snr_theory_dB; sim_out.snr_theory_pre_dedB(ne) = snr_theory_dB + I_dB; if verbose > 1 printf("modn index: %2.1f Bfm: %.0f Hz\n", m, Bfm); end if verbose > 0 printf("C/N: %4.1f SNR: %4.1f dB THEORY: %4.1f dB or with pre/de: %4.1f dB\n", aCNdB, 10*log10(snr), snr_theory_dB, snr_theory_dB+I_dB); end if verbose > 1 figure(1) subplot(211) plot(20*log10(abs(fft(rx)))) title('FM Modulator Output Spectrum'); axis([1 length(tx) 0 100]); subplot(212) Rx_bb = 20*log10(abs(fft(rx_bb))); plot(Rx_bb) axis([1 length(tx) 0 100]); title('FM Demodulator (baseband) Input Spectrum'); figure(2) subplot(211) plot(rx_out(settle:nsam)) axis([1 4000 -1 1]) subplot(212) Rx = 20*log10(abs(fft(rx_out(settle:nsam)))); plot(Rx(1:10000)) axis([1 10000 0 100]); end end endfunction function run_fm_curves sim_in.nsam = 96000; sim_in.verbose = 1; sim_in.pre_emp = 0; sim_in.de_emp = 0; sim_in.CNdB = -4:2:20; sim_out = analog_fm_test(sim_in); figure(1) clf plot(sim_in.CNdB, sim_out.snrdB,"r;FM Simulated;"); hold on; plot(sim_in.CNdB, sim_out.snr_theorydB,"g;FM Theory;"); plot(sim_in.CNdB, sim_in.CNdB,"b; SSB Theory;"); hold off; grid("minor"); xlabel("FM demod input C/N (dB)"); ylabel("FM demod output S/N (dB)"); legend("boxoff"); % C/No curves Bfm_dB = 10*log10(sim_out.Bfm); Bssb_dB = 10*log10(3000); figure(2) clf plot(sim_in.CNdB + Bfm_dB, sim_out.snrdB,"r;FM Simulated;"); hold on; plot(sim_in.CNdB + Bfm_dB, sim_out.snr_theorydB,"g;FM Theory;"); plot(sim_in.CNdB + Bssb_dB, sim_in.CNdB,"b; SSB Theory;"); hold off; grid("minor"); xlabel("FM demod input C/No (dB)"); ylabel("FM demod output S/N (dB)"); legend("boxoff"); endfunction function run_fm_single sim_in.nsam = 96000; sim_in.verbose = 2; sim_in.pre_emp = 0; sim_in.de_emp = 0; sim_in.CNdB = 20; sim_out = analog_fm_test(sim_in); end function fm_mod_file(file_name_out, file_name_in, CNdB) fm_states.Fs = 48000; fm_states.fm_max = 3E3; fm_states.fd = 5E3; fm_states.fc = fm_states.Fs/4; fm_states.pre_emp = 0; fm_states.de_emp = 0; fm_states.Ts = 1; fm_states.output_filter = 1; fm_states = analog_fm_init(fm_states); if nargin == 1 nsam = fm_states.Fs * 10; t = 0:(nsam-1); fm = 1000; wm = 2*pi*fm/fm_states.Fs; mod = sin(wm*t); else fin = fopen(file_name_in,"rb"); mod = fread(fin,"short")'; mod /= 32767; fclose(fin); end tx = analog_fm_mod(fm_states, mod); if (nargin == 3) % Optionally add some noise CN = 10^(CNdB/10); variance = fm_states.Fs/(CN*fm_states.Bfm); tx += sqrt(variance)*randn(1,length(tx)); end tx_out = tx*16384; fout = fopen(file_name_out,"wb"); fwrite(fout, tx_out, "short"); fclose(fout); endfunction function fm_demod_file(file_name_out, file_name_in) fin = fopen(file_name_in,"rb"); rx = fread(fin,"short")'; rx = rx(100000:length(rx)); % strip of wave header fclose(fin); Fs = fm_states.Fs = 48000; fm_max = fm_states.fm_max = 3E3; fd = fm_states.fd = 5E3; fm_states.fc = 12E3; fm_states.pre_emp = 0; fm_states.de_emp = 1; fm_states.Ts = 1; fm_states.output_filter = 1; fm_states = analog_fm_init(fm_states); [rx_out rx_bb] = analog_fm_demod(fm_states, rx); rx_out *= 20000; fout = fopen(file_name_out,"wb"); fwrite(fout, rx_out, "short"); fclose(fout); figure(1) subplot(211) plot(rx) subplot(212) plot(20*log10(abs(fft(rx)))) title('FM Dmodulator Intput Spectrum'); figure(2) subplot(211) Rx_bb = 20*log10(abs(fft(rx_bb))); plot(Rx_bb) title('FM Demodulator (baseband) Input Spectrum'); subplot(212) plot(20*log10(abs(fft(rx_out)))) title('FM Dmodulator Output Spectrum'); figure(3) plot(rx_out) title('FM Dmodulator Output'); % estimate SNR, C/No etc npower_window = 1024; rx_power = conv(rx.^2,ones(1,npower_window))/(npower_window); rx_power_dB = 10*log10(rx_power); figure; subplot(211) plot(rx); subplot(212) plot(rx_power_dB); axis([1 length(rx_power) max(rx_power_dB)-9 max(rx_power_dB)+1]) grid("minor") % estimate FM demod output SNR if a 1000 Hz tone is present w = 2*pi*1000/Fs; beta = 0.99; rx_notch = filter([1 -2*cos(w) 1],[1 -2*beta*cos(w) beta*beta], rx_out); rx_out_power = conv(rx_out.^2,ones(1,npower_window))/(npower_window); rx_out_power_dB = 10*log10(rx_out_power); rx_notch_power = conv(rx_notch.^2,ones(1,npower_window))/(npower_window); rx_notch_power_dB = 10*log10(rx_notch_power); figure; plot(rx_out_power_dB,'r;FM demod output power;'); hold on; plot(rx_notch_power_dB,'b;1000 Hz notch filter output power;'); plot(rx_out_power_dB-rx_notch_power_dB,'g;1000 Hz tone SNR;'); hold off; legend("boxoff"); ylabel('dB'); xlabel('Time (samples)'); grid("minor") endfunction % generate filter coeffs for C implementation of FM demod function make_coeff_file fm_states.Fs = 44400; fm_states.fm_max = 3E3; fm_states.fd = 5E3; fm_states.fc = fm_states.Fs/4; fm_states.pre_emp = 0; fm_states.de_emp = 0; fm_states.Ts = 1; fm_states.output_filter = 1; fm_states = analog_fm_init(fm_states); fm_fir_coeff_file(fm_states, "fm_fir_coeff.h") endfunction function test_fm_modulator fm_states.Fs = 48000; fm_states.fm_max = 3E3; fm_states.fd = 5E3; %fm_states.fc = fm_states.Fs/4; fm_states.fc = 0; fm_states.pre_emp = 0; fm_states.de_emp = 0; fm_states.Ts = 1; fm_states.output_filter = 1; fm_states = analog_fm_init(fm_states); test_t = [1:(fm_states.Fs*10)]; test_freq1 = 2*pi*3000/fm_states.Fs; test_freq2 = 2*pi*1000/fm_states.Fs; test_sig = .5*sin(test_t*test_freq1) + .5*sin(test_t*test_freq2); %test_sig = zeros(1,length(test_t)); %test_sig = ones(1,length(test_t)); ftsig = fopen("fm_test_sig.raw","wb"); fwrite(ftsig,test_sig*16384,"short"); fclose(ftsig); system("../fm_test fm_test_sig.raw fm_test_out.raw"); ftmod = fopen("fm_test_out.raw","r"); test_mod_p = rot90(fread(ftmod,"short"))/16384; test_mod_r = test_mod_p(1:2:length(test_mod_p)); test_mod_i = test_mod_p(2:2:length(test_mod_p)); test_mod = test_mod_r .+ i*test_mod_i; fclose(ftmod); comp_mod = analog_fm_mod(fm_states,test_sig); figure(1) comp_mod_real = real(comp_mod); size(comp_mod_real) size(test_mod) mod_diff = zeros(1,length(test_mod)); mod_diff = test_mod .- comp_mod; plot(test_t,real(test_mod .- comp_mod),test_t,imag(test_mod .- comp_mod)); endfunction more off; %run_fm_curves %fm_demod_file("ssb_fm_out.raw","~/Desktop/ssb_fm.wav") %fm_demod_file("ssb25_fm_de.raw", "~/Desktop/ssb25db.wav") %run_fm_single %make_coeff_file %fm_mod_file("fm_1000.raw"); %test_fm_modulator codec2-1.0.1/octave/fm_radio_filt_model.txt000066400000000000000000000527751412132000500206540ustar00rootroot00000000000000# Created by Octave 4.0.0, Wed Feb 10 20:14:16 2016 CST # name: filt # type: matrix # rows: 1 # columns: 1001 4.111934884608988e-05 4.529266752036107e-05 5.012294778018435e-05 5.387673663540811e-05 5.656595617636202e-05 5.754247327156636e-05 5.745029328387444e-05 5.810382275274602e-05 6.038440324493526e-05 6.151519405194188e-05 5.995001465356246e-05 5.965124091807071e-05 5.894036887788694e-05 5.282714911187688e-05 4.16286613756742e-05 2.733281113424976e-05 1.151301392357209e-05 -5.011952829637155e-06 -2.038060526743049e-05 -2.88950898384027e-05 -3.140205230802841e-05 -2.680377848432233e-05 -1.425766597021347e-05 2.754137907668088e-06 2.533067638032289e-05 5.098405707491412e-05 7.524935743597888e-05 9.490108720790089e-05 0.0001114408649087926 0.0001232907290105822 0.0001298558067129026 0.0001314146843973354 0.000126874153326206 0.0001211256678148737 0.0001128586850331393 0.0001021842594143064 9.340521285980458e-05 8.465588232787989e-05 7.602754602719386e-05 7.476083494605245e-05 7.795597606716329e-05 8.085052742218461e-05 8.855370570715267e-05 9.993747197784049e-05 0.0001100627878797455 0.0001157727179778551 0.0001211159686312227 0.0001276193402990368 0.0001274951568358215 0.0001237937282219144 0.0001199864757482567 0.0001145773485240607 0.0001078643622955885 9.949247921871633e-05 9.282321723585223e-05 8.670764514445847e-05 8.236867203976522e-05 8.178131856442866e-05 8.653490906422325e-05 9.474089964535933e-05 0.0001046664881685255 0.0001171407871684955 0.0001284375906324497 0.0001435371988464706 0.0001538019728144609 0.000157821986861445 0.0001617032194688335 0.000161139381508245 0.0001573044997290387 0.0001505912434581831 0.0001444545226667355 0.0001371895926370354 0.0001282916901414378 0.0001164777490003531 0.0001017868860228118 8.38857960955751e-05 6.397168698635467e-05 4.505424718694719e-05 2.609404178225459e-05 9.390120446350423e-06 -6.139147851498066e-06 -1.74535589572342e-05 -2.432568386408825e-05 -2.719609151945925e-05 -2.559556014458576e-05 -1.629614429158625e-05 -1.3631941893713e-06 1.383091083546116e-05 3.467670361993851e-05 6.180780852724694e-05 8.838658249276322e-05 0.0001119097915371812 0.0001372537482217498 0.0001573246833069575 0.0001685794934648446 0.0001736521706833196 0.0001743894362264053 0.000170440134727034 0.0001570034141396783 0.0001415291461137907 0.0001293030383250257 0.0001170129681552746 0.0001056747747162765 9.587608125739278e-05 8.209630166614193e-05 6.930393501059805e-05 6.085367944553192e-05 5.275816447026444e-05 4.194241650880381e-05 3.420239452264183e-05 3.304591574725996e-05 3.024288241806293e-05 3.012154305643325e-05 3.738917134601837e-05 4.770388200482866e-05 5.781977436721907e-05 7.420695272211161e-05 8.723833080263831e-05 9.505250826889752e-05 0.0001065158066456628 0.0001104312822684124 0.0001098275912662366 0.000107206024810334 0.0001025516069602837 9.894340278646091e-05 9.407503918864603e-05 8.7319365554045e-05 8.141197975598374e-05 8.422482885728253e-05 9.626406072217444e-05 0.0001047837385634293 0.0001197702730190546 0.0001441800101209614 0.000160456934552367 0.0001774138786603596 0.0001926926553236415 0.0001984206468214209 0.0001945597427125206 0.0001836754090288533 0.0001644147124457892 0.0001450923278130216 0.000131637876080013 0.0001194268883117051 0.0001142849115928036 0.0001090067194513346 0.0001167532618894625 0.0001293962113881341 0.0001304604164937581 0.0001310955784948294 0.0001353721674033472 0.0001341681487126995 0.0001198264422032539 0.0001012747411089002 7.153140827090248e-05 4.191084339680094e-05 2.303431628630918e-05 1.138159045954137e-05 1.214910078795732e-05 2.029103100753587e-05 3.914274819454478e-05 7.436668389413293e-05 0.0001131985409445768 0.0001541458098186209 0.0001981874567952984 0.0002293068332902554 0.0002574810386944711 0.0002797524248574673 0.000280098997160137 0.0002691199306180641 0.0002483396512410882 0.0002130987320308693 0.0001696438030090705 0.0001233684249499195 8.43926061428125e-05 5.198681974621152e-05 3.567320177887548e-05 4.949705291163776e-05 7.787515033943651e-05 0.0001300149878038 0.0002020713027294515 0.0002783857988869775 0.0003565185832637648 0.0004241895316775589 0.000479626912439881 0.0005159892932585141 0.0005326203262494115 0.0005366426137323655 0.0005240387399286967 0.0005041051313799223 0.0004864550530904512 0.0004727638664349475 0.0004645950604270155 0.0004548102499574072 0.000455527247961606 0.0004612992161328969 0.0004674556394527062 0.0004716258022734013 0.0004668087315020519 0.0004622641649603435 0.0004465585690774155 0.000425258701401412 0.00039751658715728 0.0003635800988525798 0.0003328960310700836 0.0003048849901663823 0.0002810007495450609 0.0002673721567286335 0.0002702604512501591 0.0002862572870604029 0.0003084406671027542 0.0003355248671444351 0.0003761847353904122 0.0004148377173810094 0.0004485558688712593 0.0004800892227209435 0.0005013700140284393 0.0005138034260364562 0.000523675449512398 0.0005317635475002124 0.0005322207128124348 0.0005292033760978139 0.0005269773541343302 0.0005175977188382754 0.0004993895797658196 0.0004858979454010794 0.0004684001252653537 0.0004587034220581103 0.0004638037190751786 0.0004761823498486873 0.0004885372867673723 0.0005043751480265481 0.0005446800229664075 0.0005890158012063288 0.0006231865628459465 0.0006616542116343469 0.0006972231165628774 0.0007040149509799145 0.000712178888077443 0.0007101214361108593 0.0006931453291674526 0.0006924927262763824 0.0006853703272953059 0.0007004172297637321 0.0007466476213180197 0.00080183074513318 0.0008653125079193471 0.000932413333045206 0.0009780458869915588 0.001000137248327646 0.0009991649016365171 0.0009565650123854935 0.0008785166874477056 0.0007712153995398795 0.0006440612144425213 0.0005014886072902373 0.0003647207877911045 0.0002314452035966864 0.0001215619643926978 5.102070582077005e-05 3.53881850929961e-06 5.024961716295417e-06 4.952203678213442e-05 0.0001260092656341149 0.0002274300947131321 0.0003513571295408856 0.0004918678731923972 0.0006212972022330388 0.0007279470267812717 0.0008134213275591345 0.000856084224659261 0.0008367582390177951 0.0007963231371937705 0.0007308920792511363 0.0006278320617335954 0.0005155411192978977 0.0004049366284488046 0.0003146483534597321 0.000232809201512697 0.0001611481391302676 0.0001276356087955276 0.0001258477694353633 0.000148410784426943 0.0001791264427517458 0.0002152831436118296 0.0002722059220446592 0.0003148588847685937 0.0003235563379009122 0.0003234961169067191 0.0003141523386480817 0.0002970986813756301 0.0002753731712067278 0.0002391073092942144 0.0002217724458095815 0.0002500563490184254 0.0002860821491880679 0.0003319979542964821 0.0004127132318400748 0.0005101781526047186 0.0006116301200159012 0.0007154307983328388 0.0008127224793692451 0.0008838704404048489 0.0009291650300966136 0.0009480193252716987 0.0009397344198433433 0.0009095689814133252 0.0008547924134192681 0.0007841007737282723 0.0007018037456432335 0.0006005948006725787 0.0005078784471340359 0.0004406418213749735 0.0003714124757418396 0.0003264057688551507 0.0003047322000871897 0.0002906911596356952 0.0002861738822980829 0.0002743316277907311 0.0002636405310368626 0.0002526665586205466 0.000226716276058895 0.0001875320324724495 0.0001636750239487869 0.0001372388125105794 0.0001222573562860838 0.0001269254248804013 0.0001139495649892648 0.0001106414381361491 0.0001196292706110303 0.0001189746129582091 0.0001112327955701268 0.0001296685790607515 0.0001643819608291414 0.0001878863422254414 0.0002344588678557017 0.0003203860709214426 0.0004064572654023451 0.0004940737860301076 0.000596014360602431 0.0006749848938371238 0.0007389096824511 0.0007792584703839535 0.0007965798134060041 0.0008056540909816971 0.0007849711152884964 0.000736062831596933 0.0006709962921592219 0.000603317655045247 0.0005383093164802969 0.0004900142937176716 0.0004551531490340078 0.000449534106387221 0.0004708650906301616 0.0004934795110626268 0.0005345974954791178 0.0006078660984573032 0.000702762715896311 0.0007775394691744047 0.0008818221619807017 0.001000679407785467 0.001092707546060794 0.001210613677564552 0.001312089019158298 0.001405270807169912 0.001490114661507714 0.001531394363834887 0.001555410794560944 0.001543704930528568 0.001470479573974331 0.001389350245308104 0.00128125012918577 0.001130987351527693 0.001007863016474597 0.0008564828937716682 0.0007074501288004987 0.0006213523466697201 0.0005713540643662852 0.0005583807693821872 0.0006196820100433617 0.0007361817663542591 0.0008554464717298295 0.0009758354537658702 0.001030406744297961 0.001035680319931336 0.001012121155964727 0.0009548313236383478 0.0008790095856581987 0.0008222269458738788 0.0007806888647762658 0.00070288663268893 0.0006454619358970265 0.0006054134743706602 0.000585536509799107 0.0005761856239940797 0.0005868746914752406 0.0006209602772533917 0.0006504193524742758 0.0006871616100603014 0.0007025287393104163 0.0007171995117985032 0.0007172937860848917 0.0006961439382863224 0.0006718024855287201 0.0006254758975065462 0.0005416137326971845 0.0004555547815183704 0.0003867779579310328 0.0003290178707355808 0.0002953031361596086 0.000255119760230264 0.0002488539502124204 0.0002677640501578254 0.0002652005008809371 0.0002906090024497945 0.0003166398471483209 0.0003089920401697223 0.0003114866028324989 0.0003133184110010134 0.0002840418132516435 0.0002386702280686958 0.0001892280180500572 0.0001115506030916713 1.983929251944428e-07 -0.0001282921891725907 -0.0002827272707108253 -0.0004368740799478221 -0.0005848618113809967 -0.0007194441046966012 -0.0008196524633909468 -0.0009048202133206396 -0.0009695404302984057 -0.00101680303425177 -0.00104331484535875 -0.001044670960196941 -0.001096308220052877 -0.001198928001528127 -0.001307622162194671 -0.001475710104821832 -0.001686034525628763 -0.001932017480014 -0.002224364121912755 -0.002509340882950428 -0.002795659773184621 -0.00309134921771924 -0.003339621248074061 -0.003527096039668997 -0.003713374797631359 -0.003865457109591278 -0.003984544055673171 -0.004135912398823348 -0.004315826807472575 -0.004496951439455919 -0.004688515788482826 -0.004898735004401356 -0.005110796780538788 -0.005339127441411028 -0.00553035210769078 -0.005705695069882694 -0.005870819376498557 -0.006004875496650137 -0.006110777442311181 -0.006164210930893388 -0.00618756905448379 -0.006096936349455484 -0.005939592020122337 -0.005693193052915928 -0.005354094079859258 -0.005027974684133828 -0.004692376525298168 -0.004435709093992968 -0.004274376328604747 -0.004208157300760209 -0.004223103959974963 -0.004327093561393999 -0.004497183833286816 -0.004613763151773346 -0.004718655531703288 -0.00476162995946275 -0.004733215833039038 -0.004717818557505252 -0.004685430263054647 -0.004754957289104762 -0.004977412914427918 -0.005345713165123564 -0.005956911360135976 -0.006682313612074329 -0.007507498625754038 -0.008207774465767762 -0.008390747806307929 -0.007774338884105022 -0.005813672313667084 -0.002020675163340676 0.003934699513891164 0.01218867179800687 0.0227189593674642 0.03474656425430857 0.0474559430852135 0.05969919927081149 0.06940044807963783 0.07690251527634465 0.08229165974889782 0.07690251527634465 0.06940044807963783 0.05969919927081149 0.04745594308521349 0.03474656425430857 0.02271895936746419 0.01218867179800687 0.003934699513891165 -0.002020675163340676 -0.005813672313667083 -0.007774338884105022 -0.008390747806307929 -0.008207774465767762 -0.007507498625754038 -0.006682313612074331 -0.005956911360135976 -0.005345713165123564 -0.004977412914427918 -0.004754957289104762 -0.004685430263054647 -0.004717818557505251 -0.004733215833039039 -0.00476162995946275 -0.004718655531703288 -0.004613763151773345 -0.004497183833286817 -0.004327093561393998 -0.004223103959974966 -0.004208157300760209 -0.004274376328604745 -0.00443570909399297 -0.004692376525298168 -0.005027974684133829 -0.00535409407985926 -0.005693193052915932 -0.005939592020122337 -0.006096936349455483 -0.006187569054483791 -0.006164210930893387 -0.006110777442311182 -0.006004875496650137 -0.005870819376498557 -0.005705695069882694 -0.00553035210769078 -0.005339127441411028 -0.005110796780538787 -0.004898735004401356 -0.004688515788482826 -0.004496951439455919 -0.004315826807472577 -0.004135912398823348 -0.003984544055673172 -0.003865457109591278 -0.00371337479763136 -0.003527096039668997 -0.003339621248074061 -0.00309134921771924 -0.00279565977318462 -0.002509340882950424 -0.002224364121912757 -0.001932017480014 -0.001686034525628767 -0.001475710104821831 -0.001307622162194672 -0.001198928001528127 -0.001096308220052873 -0.001044670960196942 -0.00104331484535875 -0.001016803034251772 -0.0009695404302984054 -0.00090482021332064 -0.0008196524633909476 -0.0007194441046966014 -0.0005848618113809963 -0.000436874079947822 -0.0002827272707108247 -0.0001282921891725906 1.9839292519393e-07 0.0001115506030916713 0.0001892280180500569 0.0002386702280686963 0.0002840418132516444 0.0003133184110010132 0.0003114866028324986 0.0003089920401697223 0.0003166398471483207 0.0002906090024497948 0.0002652005008809363 0.000267764050157825 0.0002488539502124205 0.0002551197602302644 0.000295303136159608 0.0003290178707355802 0.0003867779579310346 0.0004555547815183697 0.0005416137326971845 0.000625475897506546 0.0006718024855287199 0.0006961439382863226 0.0007172937860848909 0.0007171995117985036 0.0007025287393104162 0.0006871616100603015 0.000650419352474276 0.0006209602772533919 0.0005868746914752408 0.0005761856239940797 0.0005855365097991073 0.0006054134743706607 0.0006454619358970264 0.0007028866326889299 0.0007806888647762659 0.000822226945873879 0.0008790095856581987 0.0009548313236383482 0.001012121155964728 0.001035680319931336 0.001030406744297961 0.0009758354537658703 0.0008554464717298296 0.0007361817663542591 0.0006196820100433625 0.0005583807693821864 0.000571354064366285 0.0006213523466697193 0.0007074501288005006 0.0008564828937716656 0.001007863016474597 0.001130987351527696 0.001281250129185769 0.001389350245308103 0.001470479573974332 0.001543704930528569 0.001555410794560944 0.001531394363834887 0.001490114661507714 0.001405270807169912 0.001312089019158298 0.001210613677564552 0.001092707546060794 0.001000679407785467 0.0008818221619807018 0.0007775394691744045 0.0007027627158963109 0.0006078660984573031 0.000534597495479118 0.0004934795110626265 0.0004708650906301616 0.0004495341063872209 0.0004551531490340077 0.0004900142937176715 0.0005383093164802969 0.000603317655045247 0.0006709962921592213 0.0007360628315969327 0.0007849711152884964 0.0008056540909816968 0.0007965798134060039 0.000779258470383954 0.0007389096824511003 0.0006749848938371232 0.0005960143606024314 0.00049407378603011 0.0004064572654023451 0.000320386070921443 0.0002344588678557023 0.0001878863422254417 0.0001643819608291412 0.0001296685790607518 0.0001112327955701267 0.0001189746129582092 0.0001196292706110302 0.0001106414381361493 0.000113949564989265 0.0001269254248804011 0.000122257356286084 0.0001372388125105794 0.0001636750239487874 0.0001875320324724492 0.0002267162760588951 0.0002526665586205469 0.0002636405310368628 0.000274331627790731 0.0002861738822980834 0.0002906911596356955 0.0003047322000871902 0.0003264057688551512 0.0003714124757418389 0.0004406418213749726 0.0005078784471340354 0.000600594800672577 0.0007018037456432339 0.0007841007737282728 0.0008547924134192688 0.0009095689814133239 0.0009397344198433432 0.0009480193252716988 0.0009291650300966141 0.0008838704404048497 0.0008127224793692449 0.0007154307983328389 0.0006116301200159011 0.0005101781526047185 0.0004127132318400751 0.0003319979542964823 0.0002860821491880682 0.0002500563490184256 0.0002217724458095814 0.0002391073092942146 0.0002753731712067281 0.0002970986813756304 0.0003141523386480819 0.0003234961169067191 0.0003235563379009124 0.0003148588847685941 0.0002722059220446591 0.0002152831436118294 0.0001791264427517463 0.0001484107844269434 0.0001258477694353638 0.0001276356087955284 0.0001611481391302664 0.0002328092015126938 0.0003146483534597321 0.0004049366284488059 0.000515541119297898 0.0006278320617335942 0.0007308920792511362 0.0007963231371937704 0.0008367582390177949 0.000856084224659261 0.0008134213275591343 0.0007279470267812722 0.0006212972022330388 0.0004918678731923973 0.0003513571295408855 0.0002274300947131321 0.000126009265634115 4.952203678213429e-05 5.024961716295127e-06 3.538818509299518e-06 5.102070582076996e-05 0.0001215619643926977 0.0002314452035966865 0.0003647207877911044 0.0005014886072902379 0.0006440612144425216 0.0007712153995398789 0.0008785166874477058 0.0009565650123854939 0.0009991649016365179 0.001000137248327646 0.0009780458869915582 0.0009324133330452072 0.0008653125079193493 0.0008018307451331798 0.000746647621318018 0.0007004172297637317 0.0006853703272953076 0.0006924927262763831 0.0006931453291674521 0.0007101214361108594 0.0007121788880774427 0.000704014950979915 0.0006972231165628779 0.000661654211634347 0.0006231865628459464 0.0005890158012063288 0.0005446800229664074 0.0005043751480265481 0.0004885372867673724 0.0004761823498486873 0.0004638037190751788 0.0004587034220581102 0.0004684001252653539 0.0004858979454010797 0.0004993895797658201 0.0005175977188382752 0.0005269773541343305 0.0005292033760978143 0.0005322207128124349 0.0005317635475002128 0.000523675449512398 0.000513803426036456 0.0005013700140284385 0.0004800892227209432 0.0004485558688712597 0.0004148377173810098 0.0003761847353904126 0.0003355248671444355 0.0003084406671027549 0.0002862572870604022 0.000270260451250159 0.0002673721567286339 0.0002810007495450609 0.000304884990166382 0.0003328960310700833 0.00036358009885258 0.0003975165871572802 0.000425258701401412 0.0004465585690774157 0.0004622641649603433 0.0004668087315020517 0.0004716258022734012 0.0004674556394527063 0.0004612992161328973 0.0004555272479616062 0.000454810249957407 0.0004645950604270157 0.0004727638664349478 0.000486455053090451 0.0005041051313799224 0.0005240387399286972 0.0005366426137323651 0.0005326203262494113 0.0005159892932585147 0.0004796269124398812 0.0004241895316775592 0.0003565185832637645 0.0002783857988869775 0.0002020713027294521 0.0001300149878038001 7.787515033943645e-05 4.94970529116387e-05 3.567320177887565e-05 5.198681974621122e-05 8.439260614281255e-05 0.0001233684249499196 0.0001696438030090706 0.0002130987320308694 0.0002483396512410884 0.000269119930618064 0.0002800989971601369 0.0002797524248574673 0.0002574810386944714 0.0002293068332902553 0.0001981874567952985 0.0001541458098186209 0.0001131985409445768 7.436668389413293e-05 3.914274819454482e-05 2.02910310075359e-05 1.214910078795737e-05 1.138159045954142e-05 2.303431628630914e-05 4.191084339680085e-05 7.153140827090229e-05 0.0001012747411089004 0.0001198264422032543 0.0001341681487126989 0.0001353721674033473 0.0001310955784948295 0.0001304604164937583 0.0001293962113881343 0.0001167532618894624 0.0001090067194513343 0.0001142849115928038 0.0001194268883117053 0.0001316378760800131 0.0001450923278130218 0.0001644147124457893 0.0001836754090288532 0.0001945597427125205 0.000198420646821421 0.0001926926553236415 0.0001774138786603597 0.0001604569345523672 0.0001441800101209615 0.0001197702730190544 0.0001047837385634294 9.626406072217448e-05 8.422482885728265e-05 8.141197975598381e-05 8.7319365554045e-05 9.4075039188646e-05 9.894340278646086e-05 0.0001025516069602838 0.0001072060248103339 0.0001098275912662369 0.0001104312822684126 0.000106515806645663 9.505250826889828e-05 8.723833080263867e-05 7.420695272211161e-05 5.781977436721884e-05 4.770388200482809e-05 3.7389171346018e-05 3.012154305643296e-05 3.024288241806269e-05 3.30459157472601e-05 3.42023945226418e-05 4.194241650880383e-05 5.275816447026444e-05 6.085367944553199e-05 6.930393501059805e-05 8.209630166614197e-05 9.587608125739296e-05 0.0001056747747162764 0.0001170129681552745 0.0001293030383250257 0.0001415291461137908 0.0001570034141396783 0.0001704401347270341 0.0001743894362264053 0.0001736521706833197 0.0001685794934648447 0.0001573246833069577 0.00013725374822175 0.0001119097915371812 8.838658249276298e-05 6.180780852724682e-05 3.467670361993845e-05 1.383091083546099e-05 -1.363194189371131e-06 -1.629614429158657e-05 -2.559556014458577e-05 -2.719609151945906e-05 -2.432568386408844e-05 -1.745355895723421e-05 -6.139147851498011e-06 9.390120446350515e-06 2.609404178225465e-05 4.505424718694725e-05 6.397168698635465e-05 8.388579609557507e-05 0.0001017868860228118 0.0001164777490003533 0.0001282916901414377 0.0001371895926370353 0.0001444545226667357 0.0001505912434581831 0.0001573044997290388 0.0001611393815082451 0.0001617032194688336 0.0001578219868614449 0.000153801972814461 0.0001435371988464706 0.0001284375906324499 0.0001171407871684956 0.0001046664881685255 9.474089964535937e-05 8.653490906422336e-05 8.178131856442878e-05 8.236867203976517e-05 8.670764514445867e-05 9.282321723585233e-05 9.949247921871623e-05 0.0001078643622955885 0.0001145773485240607 0.0001199864757482572 0.0001237937282219144 0.0001274951568358209 0.0001276193402990368 0.0001211159686312227 0.0001157727179778552 0.0001100627878797457 9.993747197784049e-05 8.855370570715271e-05 8.085052742218457e-05 7.795597606716331e-05 7.47608349460523e-05 7.602754602719387e-05 8.465588232787989e-05 9.340521285980456e-05 0.0001021842594143064 0.0001128586850331394 0.0001211256678148737 0.0001268741533262061 0.0001314146843973354 0.0001298558067129026 0.0001232907290105823 0.0001114408649087925 9.490108720790098e-05 7.524935743597891e-05 5.098405707491407e-05 2.533067638032283e-05 2.754137907668097e-06 -1.425766597021359e-05 -2.680377848432208e-05 -3.140205230802843e-05 -2.889508983840295e-05 -2.038060526743043e-05 -5.011952829637147e-06 1.151301392357218e-05 2.733281113424968e-05 4.16286613756742e-05 5.28271491118769e-05 5.894036887788697e-05 5.965124091807064e-05 5.995001465356243e-05 6.151519405194192e-05 6.038440324493523e-05 5.810382275274606e-05 5.745029328387439e-05 5.754247327156637e-05 5.656595617636194e-05 5.387673663540817e-05 5.012294778018432e-05 4.529266752036116e-05 4.11193488460899e-05 codec2-1.0.1/octave/fmfsk.m000066400000000000000000000225271412132000500154110ustar00rootroot00000000000000% % fmfsk.m % Author: Brady O'Brien 3 Feb 2016 % Copyright 2016 David Rowe % % All rights reserved. % % This program is free software; you can redistribute it and/or modify % it under the terms of the GNU Lesser General Public License veRbion 2, as % published by the Free Software Foundation. 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 Lesser General Public License % along with this program; if not, see . % mancyfsk.m modem, extracted and made suitable for C implementation fm; pkg load signal; pkg load parallel; 1; % Init fmfsk modem %Fs is sample frequency %Rb is pre-manchester bit rate function states = fmfsk_init(Fs,Rb) assert(mod(Fs,Rb*2)==0); %Current fixed processing buffer size, in non-ME bits nbit = 96; states.Rb = Rb; states.Rs = Rb*2; % Manchester-encoded bitrate states.Fs = Fs; states.Ts = Fs/states.Rs; states.N = nbit*2*states.Ts; states.nin = states.N; % Samples in the next demod cycle states.nstash = states.Ts*2; % How many samples to stash away between proc cycles for timing adjust states.nmem = states.N+(4*states.Ts); states.nsym = nbit*2; states.nbit = nbit; %tates.nsym = floor(states.Rs*.080); %states.nbit = floor(states.Rb*.080) %Old sample memory states.oldsamps = zeros(1,states.nmem); %Last sampled-stream output, for odd bitstream generation states.lastint = 0; %Some stats states.norm_rx_timing = 0; endfunction %Generate a stream of manchester-coded bits to be sent % to any ordinary FM modulator or VCO or something function tx = fmfsk_mod(states,inbits) Ts = states.Ts; tx = zeros(1,length(inbits)*2); for ii = 1:length(inbits) st = 1 + (ii-1)*Ts*2; md = st+Ts-1; en = md+Ts; if inbits(ii)==0 tx(st:md) = -ones(1,Ts); tx(md+1:en) = ones(1,Ts); else tx(st:md) = ones(1,Ts); tx(md+1:en) = -ones(1,Ts); end end endfunction %Demodulate a bag of bits from the output of an FM demodulator % This function produces nbits output bits and takes states.nin samples function [rx_bits states] = fmfsk_demod(states,rx) Ts = states.Ts; Fs = states.Fs; Rs = states.Rs; nin = states.nin; N = states.N; nsym = states.nsym; nbits = states.nsym/2; nmem = states.nmem; nstash = states.nstash; nold = nmem-nin; ssamps = states.oldsamps; %Shift in nin samples ssamps(1:nold) = ssamps(nmem-nold+1:nmem); ssamps(nold+1:nmem) = rx; states.oldsamps = ssamps; rx_filt = zeros(1,(nsym+1)*Ts); %Integrate Ts input samples at every offset %This is the same thing as filtering with a filter of all ones % out to Ts. % It's implemented like this for ease of C-porting for ii=(1:(nsym+1)*Ts) st = ii; en = st+Ts-1; rx_filt(ii) = sum(ssamps(st:en)); end states.rx_filt = rx_filt; % Fine timing estimation ------------------------------------------------------ % Estimate fine timing using line at Rs/2 that Manchester encoding provides % We need this to sync up to Manchester codewords. Np = length(rx_filt); w = 2*pi*(Rs)/Fs; x = (rx_filt .^ 2) * exp(-j*w*(0:Np-1))'; norm_rx_timing = angle(x)/(2*pi)-.42; rx_timing = round(norm_rx_timing*Ts); %If rx timing is too far out, ask for more or less sample the next time % around to even it all out next_nin = N; if norm_rx_timing > -.2; next_nin += Ts/2; end if norm_rx_timing < -.65; next_nin -= Ts/2; end states.nin = next_nin; states.norm_rx_timing = norm_rx_timing; %'Even' and 'Odd' manchester bitstream. % We'll figure out which to produce later rx_even = zeros(1,nbits); rx_odd = zeros(1,nbits); apeven = 0; apodd = 0; sample_offset = (Ts/2)+Ts+rx_timing-1; symsamp = zeros(1,nsym); % Figure out the bits of the 'even' and 'odd' ME streams % Also sample rx_filt offset by what fine timing determined along the way % Note: ii is a zero-indexed array pointer, for less mind-breaking c portage lastv = states.lastint; for ii = (0:nsym-1) currv = rx_filt(sample_offset+(ii*Ts)+1); mdiff = lastv-currv; lastv = currv; mbit = mdiff>0; symsamp(ii+1) = currv; if mod(ii,2)==1 apeven += abs(mdiff); rx_even( floor(ii/2)+1 ) = mbit; else apodd += abs(mdiff); rx_odd( floor(ii/2)+1 ) = mbit; end end states.symsamp = symsamp; % Decide on the correct ME alignment if(apeven>apodd) rx_bits = rx_even; else rx_bits = rx_odd; end states.lastint = lastv; endfunction % run_sim copypasted from fsk_horus.m % simulation of tx and rx side, add noise, channel impairments ---------------------- function fmfsk_run_sim(EbNodB,timing_offset=0,de=0,of=0,hpf=0) test_frame_mode = 2; frames = 70; %EbNodB = 3; %timing_offset = 0.0; % see resample() for clock offset below %fading = 0; % modulates tx power at 2Hz with 20dB fade depth, % to simulate balloon rotating at end of mission df = 0; % tx tone freq drift in Hz/s dA = 1; % amplitude imbalance of tones (note this affects Eb so not a gd idea) more off rand('state',1); randn('state',1); Fs = 48000; Rbit = 2400; % ---------------------------------------------------------------------- fm_states.pre_emp = 0; fm_states.de_emp = de; fm_states.Ts = Fs/(Rbit*2); fm_states.Fs = Fs; fm_states.fc = Fs/4; fm_states.fm_max = 3E3; fm_states.fd = 5E3; fm_states.output_filter = of; fm_states = analog_fm_init(fm_states); % ---------------------------------------------------------------------- states = fmfsk_init(Fs,Rbit); states.verbose = 0x1; Rs = states.Rs; nsym = states.nsym; Fs = states.Fs; nbit = states.nbit; EbNo = 10^(EbNodB/10); variance = states.Fs/(states.Rb*EbNo); % set up tx signal with payload bits based on test mode if test_frame_mode == 1 % test frame of bits, which we repeat for convenience when BER testing test_frame = round(rand(1, states.nbit)); tx_bits = []; for i=1:frames+1 tx_bits = [tx_bits test_frame]; end end if test_frame_mode == 2 % random bits, just to make sure sync algs work on random data tx_bits = round(rand(1, states.nbit*(frames+1))); end if test_frame_mode == 3 % repeating sequence of all symbols % great for initial test of demod if nothing else works, % look for this pattern in rx_bits % ...10101... tx_bits = zeros(1, states.nbit*(frames+1)); tx_bits(1:2:length(tx_bits)) = 1; end load fm_radio_filt_model.txt [b, a] = cheby1(4, 1, 300/Fs, 'high'); % 300Hz HPF to simulate FM radios tx_pmod = fmfsk_mod(states, tx_bits); tx = analog_fm_mod(fm_states, tx_pmod); tx = tx(10:length(tx)); if(timing_offset>0) tx = resample(tx, 1000,1001); % simulated 1000ppm sample clock offset end noise = sqrt(variance)*randn(length(tx),1); rx = tx + noise'; %Demod by analog fm rx = analog_fm_demod(fm_states, rx); %High-pass filter to simulate the FM radios if hpf>0 printf("high-pass filtering!\n") rx = filter(b,a,rx); end rx = filter(filt,1,rx); figure(4) title("Spectrum of rx-ed signal after FM demod and FM radio channel"); plot(20*log10(abs(fft(rx)))) figure(5) title("Time domain of rx-ed signal after FM demod and FM radio channel"); plot(rx) %rx = real(rx); %b1 = fir2(100, [0 4000 5200 48000]/48000, [1 1 0.5 0.5]); %rx = filter(b1,1,rx); %[b a] = cheby2(6,40,[3000 6000]/(Fs/2)); %rx = filter(b,a,rx); %rx = sign(rx); %rx(find (rx > 1)) = 1; %rx(find (rx < -1)) = -1; % dump simulated rx file timing_offset_samples = round(timing_offset*states.Ts); st = 1 + timing_offset_samples; rx_bits_buf = zeros(1,2*nbit); x_log = []; timing_nl_log = []; norm_rx_timing_log = []; f_int_resample_log = []; f_log = []; EbNodB_log = []; rx_bits_log = []; rx_bits_sd_log = []; for f=1:frames % extract nin samples from input stream nin = states.nin; en = st + states.nin - 1; sf = rx(st:en); st += nin; % demodulate to stream of bits [rx_bits states] = fmfsk_demod(states, sf); rx_bits_buf(1:nbit) = rx_bits_buf(nbit+1:2*nbit); rx_bits_buf(nbit+1:2*nbit) = rx_bits; rx_bits_log = [rx_bits_log rx_bits]; end ber = 1; ox = 1; rx_bits = rx_bits_log; bitcnt = length(tx_bits); for offset = (1:100) nerr = sum(xor(rx_bits(offset:length(rx_bits)),tx_bits(1:length(rx_bits)+1-offset))); bern = nerr/(bitcnt-offset); if(bern < ber) ox = offset; best_nerr = nerr; end ber = min([ber bern]); end offset = ox; figure(3); plot(xor(rx_bits(ox:length(rx_bits)),tx_bits(1:length(rx_bits)+1-ox))) printf("BER: %f Errors: %d Bits:%d\n",ber,best_nerr,bitcnt-offset); endfunction % demodulate a file of 8kHz 16bit short samples -------------------------------- codec2-1.0.1/octave/fsk4_dmr.m000066400000000000000000000361551412132000500160160ustar00rootroot00000000000000% fsk4.m % % Brady O'Brien October 2015 % % 4FSK modem attempt from the DMR spec graphics_toolkit("gnuplot"); fm; % analog FM modulator functions pkg load signal; % Init function for modem ------------------------------------------------------------ function fsk4_states = fsk4_init(fsk4_states,fsk4_info) Fs = fsk4_states.Fs = 48000; %Sample rate Rs = fsk4_states.Rs = fsk4_info.rs; %Symbol rate M = fsk4_states.M = fsk4_states.Fs/fsk4_states.Rs; %Samples per symbol % Set up 4FSK raised cosine filter. This probably screws up perf if we were using % optimal mod and dmeods but helps performance when using nasty old analog FM mods % and demods empty_filter = [zeros(1,99) 1]; rf = (0:(Fs/2)); %If there's no filter with this modem configuration, don't bother generating one if fsk4_info.no_filter fsk4_states.tx_filter = empty_filter; fsk4_states.rx_filter = empty_filter; else fsk4_states.tx_filter = fir2(400 ,rf/(Fs/2),fsk4_info.tx_filt_resp(rf)); fsk4_states.rx_filter = fir2(400 ,rf/(Fs/2),fsk4_info.rx_filt_resp(rf)); endif %fsk4_states.tx_filter = fsk4_states.rx_filter = [zeros(1,99) 1]; %Set up the 4FSK symbols fsk4_states.symmap = fsk4_info.syms / fsk4_info.max_dev; fm_states.Ts = M; fm_states.Fs = Fs; fm_states.fc = 0; fm_states.fm_max = fsk4_info.max_dev*2; fm_states.fd = fsk4_info.max_dev; fm_states.pre_emp = fm_states.de_emp = 0; fm_states.output_filter = 0; fm_states.ph_dont_limit = 1; fsk4_states.fm_states = analog_fm_init(fm_states); fsk4_states.modinfo = fsk4_info; fsk4_states.verbose = 0; endfunction %Integrate over data and dump every M samples function d = idmp(data, M) d = zeros(1,length(data)/M); for i = 1:length(d) d(i) = sum(data(1+(i-1)*M:i*M)); end endfunction % DMR modulator ---------------------------------------------------------- function [tx, tx_filt, tx_stream] = fsk4_mod(fsk4_states, tx_bits) verbose = fsk4_states.verbose hbits = tx_bits(1:2:length(tx_bits)); lbits = tx_bits(2:2:length(tx_bits)); %Pad odd bit lengths if(length(hbits)!=length(lbits)) lbits = [lbits 0]; end tx_symbols = lbits + hbits*2 + 1; M = fsk4_states.M; nsym = length(tx_symbols); nsam = nsym*M; tx_stream = zeros(1,nsam); for i=1:nsym tx_stream(1+(i-1)*M:i*M) = fsk4_states.symmap(tx_symbols(i)); end tx_filt = filter(fsk4_states.tx_filter, 1, tx_stream); tx = analog_fm_mod(fsk4_states.fm_states, tx_filt); if verbose figure(10); plot(20*log10(abs(fft(tx)))) title("Spectrum of modulated 4FSK") endif endfunction % Integrate and Dump 4FSK demod ---------------------------------------------------- function bits = fsk4_demod_thing(fsk4_states, rx) M = fsk4_states.M; Fs = fsk4_states.Fs; verbose = fsk4_states.verbose; t = (0:length(rx)-1); symup = fsk4_states.modinfo.syms; % Integrator is like an FIR filter with rectangular window coeffs. % This has some nasty side lobes so lets limit the overall amount % of noise getting in. tx filter just happens to work, but I imagine % other LPF would as well. Fs = fsk4_states.Fs; rf = (0:(Fs/2)); rx_filter_a = fir1(100 ,.2); rx_filter_b = fsk4_states.rx_filter; rx_filter_n = [zeros(1,99) 1]; rx = filter(rx_filter_b, 1, rx); sym1m = exp(-j*2*pi*(symup(1)/Fs)*t).*rx; sym2m = exp(-j*2*pi*(symup(2)/Fs)*t).*rx; sym3m = exp(-j*2*pi*(symup(3)/Fs)*t).*rx; sym4m = exp(-j*2*pi*(symup(4)/Fs)*t).*rx; % this puppy found by experiment between 1 and M. Will vary with different % filter impulse responses, as delay will vary. f you add M to it coarse % timing will adjust by 1. fine_timing = 54; sym1m = idmp(sym1m(fine_timing:length(sym1m)),M); sym1m = (real(sym1m).^2+imag(sym1m).^2); sym2m = idmp(sym2m(fine_timing:length(sym2m)),M); sym2m = (real(sym2m).^2+imag(sym2m).^2); sym3m = idmp(sym3m(fine_timing:length(sym3m)),M); sym3m = (real(sym3m).^2+imag(sym3m).^2); sym4m = idmp(sym4m(fine_timing:length(sym4m)),M); sym4m = (real(sym4m).^2+imag(sym4m).^2); figure(2); nsym = 500; %subplot(411); plot(sym1m(1:nsym)) %subplot(412); plot(sym2m(1:nsym)) %subplot(413); plot(sym3m(1:nsym)) %subplot(414); plot(sym4m(1:nsym)) plot((1:nsym),sym1m(1:nsym),(1:nsym),sym2m(1:nsym),(1:nsym),sym3m(1:nsym),(1:nsym),sym4m(1:nsym)) [x iv] = max([sym1m; sym2m; sym3m; sym4m;]); bits = zeros(1,length(iv*2)); figure(3); hist(iv); for i=1:length(iv) bits(1+(i-1)*2:i*2) = [[0 0];[0 1];[1 0];[1 1]](iv(i),(1:2)); end endfunction function dat = bitreps(in,M) dat = zeros(1,length(in)*M); for i=1:length(in) dat(1+(i-1)*M:i*M) = in(i); end endfunction % Minimal Running Disparity, 4 symbol encoder % This is a simple 1 bit to 1 symbol encoding for 4fsk modems built % on old fashoned FM radios. function syms = mrd4(bits) syms = zeros(1,length(bits)); rd=0; lastsym=0; for n = (1:length(bits)) bit = bits(n); sp = [1 3](bit+1); %Map a bit to a +1 or +3 [x,v] = min(abs([rd+sp rd-sp])); %Select +n or -n, whichever minimizes disparity ssel = [sp -sp](v); if(ssel == lastsym)ssel = -ssel;endif %never run 2 of the same syms in a row syms(n) = ssel; %emit the symbol rd = rd + ssel; %update running disparity lastsym = ssel; %remember this symbol for next time end endfunction % Minimal Running Disparity, 8 symbol encoder % This is a simple 2 bit to 1 symbol encoding for 8fsk modems built % on old fashoned FM radios. function syms = mrd8(bits) bitlen = length(bits); if mod(bitlen,2) == 1 bits = [bits 0] endif syms = zeros(1,length(bits)*.5); rd=0; lastsym=0; for n = (1:2:length(bits)) bit = (bits(n)*2)+bits(n+1); sp = [1 3 7 5](bit+1); %Map a bit to a +1 or +3 [x,v] = min(abs([rd+sp rd-sp])); %Select +n or -n, whichever minimizes disparity ssel = [sp -sp](v); if(ssel == lastsym)ssel = -ssel;endif %never run 2 of the same syms in a row syms((n+1)/2) = ssel; %emit the symbol rd = rd + ssel; %update running disparity lastsym = ssel; %remember this symbol for next time end endfunction % "Manchester 4" encoding function syms = mane4(bits) syms = zeros(1,floor(bits/2)*2); for n = (1:2:length(bits)) bit0 = bits(n); bit1 = bits(n+1); sel = 2*bit0+bit1+1; syms(n:n+1) = [[3 -3];[-3 3];[1 -1];[-1 1]]( sel,(1:2) ); end endfunction function out = fold_sum(in,l) sublen = floor(length(in)/l); out = zeros(1,l); for i=(1:sublen) v = in(1+(i-1)*l:i*l); out = out + v; end endfunction function [bits err rxphi] = fsk4_demod_fmrid(fsk4_states, rx, enable_fine_timing = 0) %Demodulate fsk signal with an analog fm demod rxd = analog_fm_demod(fsk4_states.fm_states,rx); M = fsk4_states.M; verbose = fsk4_states.verbose; %This is the ideal fine timing, assuming the same offset in nfbert fine_timing = 61; %This is meant to be adjusted by the fine timing estimator. comment out for %ideal timing %fine_timing = 59; %RRC filter to get rid of some of the noise rxd = filter(fsk4_states.rx_filter, 1, rxd); %Try and figure out where sampling should happen over 30 symbol periods diffsel = fold_sum(abs(diff( rxd(3001:3001+(M*30)) )),10); if verbose figure(11); plot(diffsel); title("Fine timing estimation"); endif %adjust fine timing [v iv] = min(diffsel); if enable_fine_timing fine_timing = 59 + iv; endif rxphi = iv; %sample symbols sym = rxd(fine_timing:M:length(rxd)); if verbose figure(4) plot(sym(1:1000)); title("Sampled symbols") endif %eyediagram(afsym,2); % Demod symbol map. I should probably figure a better way to do this. % After sampling, the furthest symbols tend to be distributed about .80 % A little cheating to demap the symbols % Take a histogram of the sampled symbols, find the center of the largest distribution, % and correct the symbol map to match it [a b] = hist(abs(sym),50); [a ii] = max(a); %grmax = abs(b(ii)); %grmax = (grmax<.65)*.65 + (grmax>=.65)*grmax; grmax = .84; dmsyms = rot90(fsk4_states.symmap*grmax) (dmsyms(2)+dmsyms(1))/2 if verbose figure(2) hist(abs(sym),200); title("Sampled symbol histogram") endif %demap the symbols [err, symout] = min(abs(sym-dmsyms)); if verbose figure(3) hist(symout); title("De-mapped symbols") endif bits = zeros(1,length(symout)*2); %Translate symbols back into bits for i=1:length(symout) bits(1+(i-1)*2:i*2) = [[1 1];[1 0];[0 1];[0 0]](symout(i),(1:2)); end endfunction % Frequency response of the DMR raised cosine filter % from ETSI TS 102 361-1 V2.2.1 page 111 dmr.tx_filt_resp = @(f) sqrt(1.0*(f<=1920) - cos((pi*f)/1920).*1.0.*(f>1920 & f<=2880)); dmr.rx_filt_resp = dmr.tx_filt_resp; dmr.max_dev = 1944; dmr.syms = [-1944 -648 1944 648]; dmr.rs = 4800; dmr.no_filter = 0; dmr.demod_fx = @fsk4_demod_fmrid; global dmr_info = dmr; % No-filter 4FSK 'ideal' parameters nfl.tx_filt_resp = @(f) 1; nfl.rx_filt_resp = nfl.tx_filt_resp; nfl.max_dev = 7200; %nfl.syms = [-3600 -1200 1200 3600]; nfl.syms = [-7200,-2400,2400,7200]; nfl.rs = 4800; nfl.no_filter = 1; nfl.demod_fx = @fsk4_demod_thing; global nflt_info = nfl; %Some parameters for the NXDN filters nxdn_al = .2; nxdn_T = 416.7e-6; nxdn_fl = ((1-nxdn_al)/(2*nxdn_T)); nxdn_fh = ((1+nxdn_al)/(2*nxdn_T)); %Frequency response of the NXDN filters % from NXDN TS 1-A V1.3 page 13 % Please note : NXDN not fully implemented or tested nxdn_H = @(f) 1.0*(fnxdn_fl); nxdn_P = @(f) (f<=nxdn_fh & f>0).*((sin(pi*f*nxdn_T))./(.00001+(pi*f*nxdn_T))) + 1.0*(f==0); nxdn_D = @(f) (f<=nxdn_fh & f>0).*((pi*f*nxdn_T)./(.00001+sin(pi*f*nxdn_T))) + 1.0*(f==0); nxdn.tx_filt_resp = @(f) nxdn_H(f).*nxdn_P(f); nxdn.rx_filt_resp = @(f) nxdn_H(f).*nxdn_D(f); nxdn.rs = 4800; nxdn.max_dev = 1050; nxdn.no_filter = 0; nxdn.syms = [-1050,-350,350,1050]; nxdn.demod_fx = @fsk4_demod_fmrid; global nxdn_info = nxdn; % Bit error rate test ---------------------------------------------------------- % Params - aEsNodB - EbNo in decibels % - timing_offset - how far the fine timing is offset % - bitcnt - how many bits to check % - demod_fx - demodulator function % Returns - ber - teh measured BER % - thrcoh - theory BER of a coherent demod % - thrncoh - theory BER of non-coherent demod function [ber thrcoh thrncoh] = nfbert(aEsNodB,modem_config, bitcnt=100000, timing_offset = 10) rand('state',1); randn('state',1); %How many bits should this test run? bitcnt = 120000; test_bits = [zeros(1,100) rand(1,bitcnt)>.5]; %Random bits. Pad with zeros to prime the filters fsk4_states.M = 1; fsk4_states = fsk4_init(fsk4_states,modem_config); %Set this to 0 to cut down on the plotting fsk4_states.verbose = 1; Fs = fsk4_states.Fs; Rb = fsk4_states.Rs * 2; % Multiply symbol rate by 2, since we have 2 bits per symbol tx = fsk4_mod(fsk4_states,test_bits); %add noise here %shamelessly copied from gmsk.m EsNo = 10^(aEsNodB/10); EbNo = EsNo variance = Fs/(Rb*EbNo); nsam = length(tx); noise = sqrt(variance/2)*(randn(1,nsam) + j*randn(1,nsam)); rx = tx*exp(j*pi/2) + noise; rx = rx(timing_offset:length(rx)); rx_bits = modem_config.demod_fx(fsk4_states,rx); ber = 1; %thing to account for offset from input data to output data %No preamble detection yet ox = 1; for offset = (1:100) nerr = sum(xor(rx_bits(offset:length(rx_bits)),test_bits(1:length(rx_bits)+1-offset))); bern = nerr/(bitcnt-offset); if(bern < ber) ox = offset; best_nerr = nerr; end ber = min([ber bern]); end offset = ox; printf("\ncoarse timing: %d nerr: %d\n", offset, best_nerr); % Coherent BER theory thrcoh = erfc(sqrt(EbNo)); % non-coherent BER theory calculation % It was complicated, so I broke it up ms = 4; ns = (1:ms-1); as = (-1).^(ns+1); bs = (as./(ns+1)); cs = ((ms-1)./ns); ds = ns.*log2(ms); es = ns+1; fs = exp( -(ds./es)*EbNo ); thrncoh = ((ms/2)/(ms-1)) * sum(bs.*((ms-1)./ns).*exp( -(ds./es)*EbNo )); endfunction % RX fine timing estimation playground function rxphi = fine_ex(timing_offset = 1) global dmr_info; global nxdn_info; global nflt_info; rand('state',1); randn('state',1); bitcnt = 12051; test_bits = [zeros(1,100) rand(1,bitcnt)>.5]; %Random bits. Pad with zeros to prime the filters t_vec = [0 0 1 1]; %test_bits = repmat(t_vec,1,ceil(24000/length(t_vec))); fsk4_states.M = 1; fsk4_states = fsk4_init(fsk4_states,dmr_info); Fs = fsk4_states.Fs; Rb = fsk4_states.Rs * 2; %Multiply symbol rate by 2, since we have 2 bits per symbol tx = fsk4_mod(fsk4_states,test_bits); %add noise here %shamelessly copied from gmsk.m %EsNo = 10^(aEsNodB/10); %EbNo = EsNo %variance = Fs/(Rb*EbNo); %nsam = length(tx); %noise = sqrt(variance/2)*(randn(1,nsam) + j*randn(1,nsam)); %rx = tx*exp(j*pi/2) + noise; rx = tx; rx = rx(timing_offset:length(rx)); [rx_bits biterr rxphi] = fsk4_demod_fmrid(fsk4_states,rx); ber = 1; %thing to account for offset from input data to output data %No preamble detection yet ox = 1; for offset = (1:100) nerr = sum(xor(rx_bits(offset:length(rx_bits)),test_bits(1:length(rx_bits)+1-offset))); bern = nerr/(bitcnt-offset); if(bern < ber) ox = offset; best_nerr = nerr; end ber = min([ber bern]); end offset = ox; printf("\ncoarse timing: %d nerr: %d\n", offset, best_nerr); endfunction %Run over a wide range of offsets and make sure fine timing makes sense function fsk4_rx_phi(socket) %pkg load parallel offrange = [100:200]; [a b c phi] = pararrayfun(1.25*nproc(),@nfbert,10*length(offrange),offrange); close all; figure(1); clf; plot(offrange,phi); endfunction % Run this function to compare the theoretical 4FSK modem performance % with our DMR modem simulation function fsk4_ber_curves global dmr_info; global nxdn_info; global nflt_info; EbNodB = 1:20; bers_tco = bers_real = bers_tnco = bers_idealsim = ones(1,length(EbNodB)); %vectors of the same param to pass into pararrayfun dmr_infos = repmat(dmr_info,1,length(EbNodB)); nflt_infos = repmat(nflt_info,1,length(EbNodB)); thing = @fsk4_demod_thing; % Lovely innovation by Brady to use all cores and really speed up the simulation %try pkg load parallel bers_idealsim = pararrayfun(floor(1.25*nproc()),@nfbert,EbNodB,nflt_infos); [bers_real,bers_tco,bers_tnco] = pararrayfun(floor(1.25*nproc()),@nfbert,EbNodB,dmr_infos); %catch % printf("You should install package parallel. It'll make this run way faster\n"); % for ii=(1:length(EbNodB)); %[bers_real(ii),bers,tco(ii),bers_tnco(ii)] = nfbert(EbNodB(ii)); % end %end_try_catch close all figure(1); clf; semilogy(EbNodB, bers_tnco,'r;4FSK non-coherent theory;') hold on; semilogy(EbNodB, bers_tco,'b;4FSK coherent theory;') semilogy(EbNodB, bers_real ,'g;4FSK DMR simulation;') semilogy(EbNodB, bers_idealsim, 'v;FSK4 Ideal Non-coherent simulation;') hold off; grid("minor"); axis([min(EbNodB) max(EbNodB) 1E-5 1]) legend("boxoff"); xlabel("Eb/No (dB)"); ylabel("Bit Error Rate (BER)") endfunction codec2-1.0.1/octave/fsk_basic.m000066400000000000000000000021771412132000500162260ustar00rootroot00000000000000% fsk_basic.m % David Rowe 30 sep 2016 % % Basic non-coherent FSK modem simulation to illustrate principles % and compare to ideal rand('seed',1); randn('seed',1); Fs = 9600; % sample rate f1 = 1200; f2 = 2400; Rs = 1200; % symbol rate Ts = Fs/Rs; % length of each symbol in samples Nbits = 10000; EbNodB = 9; tx_bits = round(rand(1,Nbits)); % continuous phase FSK modulator w1 = 2*pi*f1/Fs; w2 = 2*pi*f2/Fs; tx_phase = 0; tx = zeros(1,Ts*Nbits); for i=1:Nbits for k=1:Ts if tx_bits(i) tx_phase += w2; else tx_phase += w1; end tx((i-1)*Ts+k) = exp(j*tx_phase); end end % AWGN channel noise EbNo = 10^(EbNodB/10); variance = Fs/(Rs*EbNo); noise = sqrt(variance/2)*(randn(1,Nbits*Ts) + j*randn(1,Nbits*Ts)); rx = tx + noise; % integrate and dump demodulator rx_bits = zeros(1,Nbits); for i=1:Nbits arx_symb = rx((i-1)*Ts + (1:Ts)); filt1 = sum(exp(-j*w1*(1:Ts)) .* arx_symb); filt2 = sum(exp(-j*w2*(1:Ts)) .* arx_symb); rx_bits(i) = filt2 > filt1; end Nerrors = sum(xor(tx_bits, rx_bits)); ber = Nerrors/Nbits; printf("EbNodB: %4.1f Nerrors: %d BER: %1.3f\n", EbNodB, Nerrors, ber); codec2-1.0.1/octave/fsk_cml.m000066400000000000000000000076041412132000500157200ustar00rootroot00000000000000% Test MFSK at symbol level in CML using RA LDPC codes, Bill, June 2020 % Simulate in AWGM and plot BERs. Assumes that CML is installed! % % If required setup numb of codewords (Ncw) and channel bits/sym (bps, 1 to 4) % may also select FEC code with Ctype (1 to 3); use plt to for debug plots of LLR values % July 1 version allows M=8 and pads required vectors if required to makeup 3rd bit ldpc; %rand('seed',1); %randn('seed',1); format short g more off init_cml('~/cml/'); if exist('Ncw')==0, Ncw=100, end %setup defaults if exist('plt')==0, plt=0; end if exist('bps')==0, bps=4; end if exist('Ctype')==0, Ctype=1, end if Ctype==1 load H_256_768_22.txt; HRA = H_256_768_22; % rate 1/3 elseif Ctype==2 load H_256_512_4.mat; HRA=H; % K=256, rate 1/2 code % above code might be improved -- but still works better than rate 1/3 elseif Ctype==3 load HRAa_1536_512.mat; % rate 3/4, N=2k code else error('bad Ctype'); end M=2^bps; nos =0; clear res modulation = 'FSK'; mod_order=M; mapping = 'gray'; code_param = ldpc_init_user(HRA, modulation, mod_order, mapping); [Nr Nc] = size(HRA); Nbits = Nc - Nr; Krate = (Nc-Nr)/Nc framesize = Nc; %{ [H_rows, H_cols] = Mat2Hrows(HRA); code_param.H_rows = H_rows; code_param.H_cols = H_cols; code_param.P_matrix = []; %} S =CreateConstellation('FSK', M); if M==2, Ebvec=[7:0.2: 8.7], end if M==4, Ebvec=[4:0.25: 7], end if M==8, Ebvec =[3.5: 0.25: 5.5]; end if M==16, Ebvec=[2.5:0.25:4.8]; end disp(['Symbol-based ' num2str(M) 'FSK sim with K=' ... num2str(Nbits) ', code rate=' num2str(Krate) ', #CWs=' num2str(Ncw)]) % if M=8, for 3 bits/symbol, may need to pad codeword with bits ... if floor(Nc/bps)*bps ~= Nc Npad = ceil(Nc/bps) *bps-Nc disp('padding codeword') else Npad=0; end for Eb = Ebvec Ec = Eb + 10*log10(Krate); Es = Ec + 10*log10(bps); Eslin = 10^(Es/10); %Es/N0 = 1/2k_n^2 Terrs =0; for nn = 1:Ncw txbits = randi(2,1,Nbits) -1; codeword = LdpcEncode( txbits, code_param.H_rows, code_param.P_matrix ); code_param.code_bits_per_frame = length( codeword ); code_param.data_bits_per_frame = length(txbits); Nsymb = (code_param.code_bits_per_frame+Npad)/bps; if Npad; codeword = [codeword zeros(1,Npad)]; end Tx = Modulate(codeword, S); kn = sqrt(1/(2*Eslin)); Rx = Tx + kn * (randn(size(Tx)) + j*randn(size(Tx))); SNRlin = Eslin; % Valenti calls this SNR, but seems to be Es/N0 symL = DemodFSK(Rx, SNRlin, 2); %demod type is nonCOH, without estimate amplitudes bitL = Somap(symL); if Npad, bitL(end-Npad+1:end)=[]; end if plt>0, figure(110); hist(bitL); title('bit LLRs') figure(111); hist(bitL); title('Sym Ls'), pause, end max_it =100; decoder_type =0; [x_hat, PCcnt] = MpDecode( -bitL, code_param.H_rows, code_param.H_cols, ... max_it, decoder_type, 1, 1); Niters = sum(PCcnt~=0); detected_data = x_hat(Niters,:); error_positions = xor( detected_data(1:code_param.data_bits_per_frame), txbits ); Nerrs = sum( error_positions); if plt>1, figure(121); plot(error_positions); Nerrs, end Terrs = Terrs + Nerrs; end BER = Terrs/ (Ncw*Nbits); %HDs = (sign(bitL)+1)/2; %NerrsHD = sum(codeword~=HDs); %BER_HD = Nerrs/Nbits; nos = nos+1; disp('Eb Nerrs BER') res(nos, :) = [Eb, Terrs, BER] end figure(91) semilogy(res(:,1), res(:,3), '-x'); grid on; hold on; %semilogy(res(:,1), berawgn(res(:,1), 'fsk', M, 'noncoherent'), 'g'); title([num2str(M) 'FSK BER with LDPC FEC']) xlabel('Eb/N0'); ylabel('BER') codec2-1.0.1/octave/fsk_cml_sam.m000066400000000000000000000274731412132000500165660ustar00rootroot00000000000000%fsk_llr_sam Test MFSK using David's sample-based mod/demod with CML LLR routines % using 2k rate 3/4 RA LDPC code. Bill, July 2020 % %LLR conversion options: (Ltype) % 1 David's original M=2 SD to LLR routine % 2 Bill's pdf-based M=2 or 4 SD to LLR % 3 Some simple HD conversions % 4 CML approach using symbol likelihoods, then converted to bit LLRs % % Results from this sim are stored in "res" -- use fsk_llr_plot to see BER figs % Use "plt" to see some useful plots (for selected Ltypes) : % eg 1 is SD pdf histograms; 2 is Rx PSD; 3 is bit LLR histograms % % Adjust Evec and Nbits as required before running. #{ Example 1 2FSK: octave:4> fsk_cml_sam octave:5> fsk_llr_plot Example 2 4FSK: octave:4> M=4; fsk_cml_sam octave:4> fsk_llr_plot #} ldpc; % define Rician pdf % note that Valenti uses an approximation that avoids Bessel evaluation function y = rice(x,v,s) s2 = s*s; y = (x / s2) .* exp(-0.5 * (x.^2 + v.^2)/s2) .* besseli(0, x*v/s2); endfunction function plot_pdf(v,s) x=(0:0.1:2*v); y= rice(x, v, s); figure(201); hold on plot(x,y,'g'); %title('Rician pdf: signal carrier') y= rice(x, 0, s); plot(x,y,'b'); title('Rician pdf: signal and noise-only carriers') pause(0.01); endfunction % single Eb/No point simulation --------------- function [raw_ber rx_filt rx_bits tx_symbols demapper sig_est SNRest v_est] = ... run_single(tx_bits, M, EcNodB, plt) % Ec/N0 is per channel bit bps = log2(M); % bits per symbol Ts = 16; % length of each symbol in samples if length(tx_bits)==1 Nbits = tx_bits; tx_bits = randi(2,1,Nbits)-1; % make random bits end Nbits = length(tx_bits); Nsymbols = Nbits/log2(M); tx_symbols = zeros(1,Nsymbols); mapper = bps:-1:1; % look up table demapper from symbols to bits (hard decision) demapper=zeros(M,bps); for m=1:M for b=1:bps if bitand(m-1,b) demapper(m,bps-b+1) = 1; end end end % continuous phase mFSK modulator w(1:M) = 2*pi*(1:M)/Ts; tx_phase = 0; tx = zeros(1,Ts*Nsymbols); for s=1:Nsymbols bits_for_this_symbol = tx_bits(bps*(s-1)+1:bps*s); symbol_index = bits_for_this_symbol * mapper' + 1; tx_symbols(s) = symbol_index; assert(demapper(symbol_index,:) == bits_for_this_symbol); for k=1:Ts tx_phase = tx_phase + w(symbol_index); tx((s-1)*Ts+k) = exp(j*tx_phase); end end % AWGN channel noise EsNodB = EcNodB + 10*log10(bps); EsNo = 10^(EsNodB/10); variance = Ts/EsNo; noise = sqrt(variance/2)*(randn(1,Nsymbols*Ts) + j*randn(1,Nsymbols*Ts)); rx = tx + noise; if plt==2, % check the Spectrum [psd,Fpsd] =pwelch(rx,128,0.5,128,Ts); figure(110); plot(Fpsd,10*log10(psd)); title('Rx Signal: PSD '); xlabel('Freq/Rs'); %figure(111);plot(unwrap(arg(tx))); pause(0.01); end % integrate and dump demodulator rx_bits = zeros(1,Nbits); rx_filt = zeros(Nsymbols,M); rx_pows = zeros(1,M); rx_nse_pow = 0.0; rx_sig_pow =0.0; for s=1:Nsymbols arx_symb = rx((s-1)*Ts + (1:Ts)); for m=1:M r= sum(exp(-j*w(m)*(1:Ts)) .* arx_symb); rx_pows(m)= r * conj(r); rx_filt(s,m) = abs(r); end [tmp symbol_index] = max(rx_filt(s,:)); rx_sig_pow = rx_sig_pow + rx_pows(symbol_index); rx_pows(symbol_index)=[]; rx_nse_pow = rx_nse_pow + sum(rx_pows)/(M-1); rx_bits(bps*(s-1)+1:bps*s) = demapper(symbol_index,:); end % using Rxpower = v^2 + sigmal^2 rx_sig_pow = rx_sig_pow/Nsymbols; rx_nse_pow = rx_nse_pow/Nsymbols; v_est = sqrt(rx_sig_pow-rx_nse_pow); SNRest = rx_sig_pow/rx_nse_pow; sig_est = sqrt(rx_nse_pow/2); % for Rayleigh: 2nd raw moment = 2 .sigma^2 Kest = rx_sig_pow/(2.0*sig_est^2) -1.0; Nerrors = sum(xor(tx_bits, rx_bits)); raw_ber = Nerrors/Nbits; printf('Ec (dB): %4.1f M: %2d Total bits: %5d HD Errs: %6d (Raw) BER: %1.3f\n', ... EcNodB, M, Nbits, Nerrors, raw_ber); if plt==1, plot_hist(rx_filt,tx_symbols, M); end endfunction % simulate one codeword of 2 or 4 FSK -------------------------- function [Nerrors raw_ber EcNodB] = run_single_ldpc(M, Ltype, Nbits,EbNodB, plt, HRA) disp([num2str(M) 'FSK coded test ... ']) if M==2 bps = 1; modulation = 'FSK'; mod_order=2; mapping = 'gray'; elseif M==4 bps = 2; modulation = 'FSK'; mod_order=4; mapping = 'gray'; else error('sorry - bad value of M!'); end decoder_type = 0; max_iterations = 100; Hsize=size(HRA); Krate = (Hsize(2)-Hsize(1))/Hsize(2); % EcNodB = EbNodB + 10*log10(Krate); code_param = ldpc_init_user(HRA, modulation, mod_order, mapping); Nframes = floor(Nbits/code_param.data_bits_per_frame); Nbits = Nframes*code_param.data_bits_per_frame; % Encoder data_bits = round(rand(1,code_param.data_bits_per_frame)); tx_bits = []; for f=1:Nframes; codeword_bits = LdpcEncode(data_bits, code_param.H_rows, code_param.P_matrix); tx_bits = [tx_bits codeword_bits]; end % modem/channel simulation [raw_ber rx_filt rx_bits tx_symbols demapper sig_est SNRlin v_est] = ... run_single(tx_bits,M,EcNodB, plt ); % Decoder Nerrors = 0; for f=1:Nframes st = (f-1)*code_param.coded_bits_per_frame/bps + 1; en = st + code_param.coded_bits_per_frame/bps - 1; if or(Ltype==1, Ltype==3) if bps==1, sd = rx_filt(st:en,1) - rx_filt(st:en,2); % OR ind = rx_filt(st:en,1) > rx_filt(st:en,2); % llr = ind'*2 -1; % this works but use SNR scaling if Ltype==3, HD=1; else, HD = 0; end llr = sd_to_llr(sd, HD)'; % David's orig 2FSK routine end if bps==2, if Ltype==3, llr = mfsk_hd_to_llrs(rx_filt(st:en,:), demapper); else error('Ltype =1 not provided for coded 4FSK'); end end end if Ltype==2, % SDs are converted to LLRs % use the SD amp estimates, try Bill's new LLR routine if plt==1, plot_pdf(v_est, sig_est); end llr = mfsk_sd_to_llrs(rx_filt(st:en,:), demapper, v_est, sig_est); end if Ltype==4, % use CML demod: non-coherent; still seems to need amplitude estimate symL = DemodFSK(1/v_est*rx_filt(st:en,:)', SNRlin, 1); llr = -Somap(symL); % now convert to bit LLRs end if plt==3, figure(204); hist(llr); title('Histogram LLR for decoder inputs'); pause(0.01); end [x_hat, PCcnt] = MpDecode(llr, code_param.H_rows, code_param.H_cols, ... max_iterations, decoder_type, 1, 1); Niters = sum(PCcnt~=0); detected_data = x_hat(Niters,:); Nerrors = Nerrors + sum(xor(data_bits, detected_data(1:code_param.data_bits_per_frame))); end ber = Nerrors/Nbits; printf('Eb (dB): %4.1f Data Bits: %4d Num CWs: %5d Tot Errs: %5d (Cod) BER: %1.3f\n', ... EbNodB,Nbits , Nframes, Nerrors, ber); endfunction function plot_hist(rx_filt,tx_symbols, M) % more general version of previous fn; - plots histograms for any Tx patterns Smax = 36; X = 0:Smax-1; H = zeros(1,Smax); H2 = zeros(1,Smax); s2=0.0; for m = 1:M ind = tx_symbols==m; ind2 = tx_symbols~=m; H= H+ hist(rx_filt(ind,m),X); H2= H2+ hist(rx_filt(ind2,m),X); x=rx_filt(ind2,m); s2 =s2 + sum(x(:).^2)/length(x); end disp('noise RMS is '); sqrt(s2/4) figure(207); clf, plot(X,H); title([num2str(M) 'FSK pdf for rx=tx symbol']) hold on, plot(X,H2,'g'); title([num2str(M) 'FSK pdf for rx!=tx symbol']) pause(0.1); endfunction % 2FSK SD -> LLR mapping that we used for Wenet SSTV system function llr = sd_to_llr(sd, HD=0) % original 2FSK + HD option sd = sd / mean(abs(sd)); x = sd - sign(sd); sumsq = sum(x.^2); summ = sum(x); mn = summ/length(sd); estvar = sumsq/length(sd) - mn*mn; estEsN0 = 1/(2* estvar + 1E-3); if HD==0, llr = 4 * estEsN0 * sd; else llr = 8 * estEsN0 * sign(sd); %%%% *4 >> *8 endif endfunction function llrs = mfsk_sd_to_llrs(SD, map, v, sig) % Array of MFSK SD is converted to bit LLR vector according to mapping 'map' % SD is M elements wide; map is M by log2(M); v and sig are params of Rician pdf % Bill (VK5DSP) for Codec2, version 24/6/20 Llim = 1e-7; XX =1.0; % check LLR scaling? Smap = size(map); Ssd = size(SD); if Smap(1) == 2 llrs = zeros(1, Ssd(1)); bps = 1; assert(2^bps == Ssd(2), 'wrong SD length?') % note that when v=0, the pdf reverts to Rayleigh for kk = 1: Ssd(1) Prx_1 = rice(SD(kk,2), v, sig) * rice(SD(kk,1),0,sig); Prx_0 = rice(SD(kk,2), 0, sig) * rice(SD(kk,1),v,sig); if or(isnan(Prx_1), Prx_1> LLRs in 4FSK') else [Nerr raw_ber Ec] = run_single_ldpc(M, Ltype, Nbits, Eb, plt, HRA); nrun = nrun+1; res(nrun,:) = [Eb Ec M Ltype Nbits Nerr raw_ber]; endif end end disp('results stored in array "res" - plot with fsk_cml_plot') disp(' Eb Ec M Ltype #Bits #Errs Raw-BER') for n = 1: nrun printf(' %5.1f %5.1f %3d %3d %6d %6d %5.4f \n', res(n,:)) end codec2-1.0.1/octave/fsk_demod_BER_test.py000066400000000000000000000406021412132000500201530ustar00rootroot00000000000000#!/usr/bin/env python # # Perform automated Eb/N0 testing of the C-implementation of fsk_mod / fsk_demod # # Based on the analysis performed here: https://github.com/projecthorus/radiosonde_auto_rx/blob/master/auto_rx/test/notes/2019-03-03_generate_lowsnr_validation.md # # Copyright (C) 2020 Mark Jessop # Released under GNU GPL v3 or later # # Requirements: # - csdr must be installed and available on the path. https://github.com/ha7ilm/csdr # - The following utilities from codec2 need to be built: # - fsk_get_test_bits, fsk_put_test_bits # - fsk_mod, fsk_demod # - Create the directories: 'samples' and 'generated' in this directory (octave) # import json import logging import os import time import traceback import subprocess import sys import argparse import numpy as np import matplotlib.pyplot as plt import scipy.signal import scipy.interpolate # Variables you will want to adjust: # Eb/N0 Range to test: # Default: 0 through 5 dB in 0.5 db steps, then up to 20 db in 1db steps. EBNO_RANGE = np.append(np.arange(0, 5, 0.5), np.arange(5, 20.5, 1)) # Baud rates to test: BAUD_RATES = [100, 50, 25] # Order of the FSK signal (2 or 4) FSK_ORDER = 4 # Test Length (bits) TEST_LENGTH = 2e4 # Pseudorandom sequence length to generate test frames. # NOTE: BER results are quite dependent on the frame length and threshold parameters. FRAME_LENGTH = 2000 # Frame threshold detection. This has the effect of setting an upper bound on the BER. FRAME_THRESHOLD = 0.4 # Allow a reduction in 'expected' bits of this value, as we expect the modem to need # some time to 'spin up' the estimators. FRAME_IGNORE = FRAME_LENGTH # IF sample rate SAMPLE_RATE = 48000 # Frequency estimator limits ESTIMATOR_LOWER_LIMIT = 100 ESTIMATOR_UPPER_LIMIT = int(SAMPLE_RATE/2 - 1000) # Frequency of the low tone (Hz) LOW_TONE = 2000 # Tone spacing (Hz) TONE_SPACING = 270 # Mask Estimator MASK_ESTIMATOR = True # Switch to 'Low Bit-Rate' mode below this baud rate. #LBR_BREAK_POINT = 600 # No more LBR mode # Halt simulation for a particular baud rate when the BER drops below this level. BER_BREAK_POINT = 1e-4 # If enabled, calculate Frequency Estimator error FEST_ERROR = True # Frequency estimator error calculation threshold (*Rs) FEST_THRESHOLD = 0.2 # Enable doppler shift. # NOTE: This will apply up to +/- 6kHz of doppler shift to the test signal, # emulating transmission through a LEO linear transponder. # You will need to set the modem centre frequency and parameters such that # the modem signal will be contained within a 1-22 kHz modem RX passband. # For 100 baud Horus Binary testing, I use: # LOW_TONE = 10000 # TONE_SPACING = 250 # The TEST_LENGTH setting must also be long enough so that the test modem file # is at least 780 seconds long. For 100 baud 4FSK, a TEST_LENGTH of 2e6 is enough. DOPPLER_ENABLED = False DOPPLER_FILE = "doppler.npz" # generate using sat_doppler.py STATS_OUTPUT = True # Where to place the initial test samples. SAMPLE_DIR = "./samples" # Where to place the generated low-SNR samples. GENERATED_DIR = "./generated" # Location of the codec2 utils CODEC2_UTILS = "../build/src" THEORY_EBNO = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10] THEORY_BER_4 = [ 0.22934, 0.18475, 0.13987, 0.09772, 0.06156, 0.03395, 0.01579, 0.00591, 0.00168, 3.39e-4, 4.44e-5, # 3.38e-6, # 1.30e-7, # 2.16e-9, # 1.23e-11, # 1.85e-14, # 5.13e-18, # 1.71e-22 ] THEORY_BER_2 = [ 0.30327, 0.26644, 0.22637, 0.18438, 0.14240, 0.10287, 0.06831, 0.04080, 0.02132, 0.00942, 0.00337, ] # # Functions to read files and add noise. # def load_sample(filename, loadreal=True): # If loading real samples (which is what fsk_mod outputs), apply a hilbert transform to get an analytic signal. if loadreal: return scipy.signal.hilbert(np.fromfile(filename, dtype="f4")) else: return np.fromfile(filename, dtype="c8") def save_sample(data, filename): # We have to make sure to convert to complex64.. data.astype(dtype="c8").tofile(filename) # TODO: Allow saving as complex s16 - see view solution here: https://stackoverflow.com/questions/47086134/how-to-convert-a-numpy-complex-array-to-a-two-element-float-array def apply_doppler(data, dopplerfile, fs=48000): """ Apply a doppler curve to an input data stream """ npzfile = np.load(dopplerfile) _time = npzfile["arr_0"] _doppler = npzfile["arr_1"] if len(data) < _time[-1] * fs: print("Input data length too short - use more bits!") # Clip data length if its too long for the input doppler data if len(data) > _time[-1] * fs: data = data[: int(_time[-1] * fs)] # Interpolate the doppler data _interp = scipy.interpolate.interp1d(_time, _doppler, kind="cubic") _timesteps = np.arange(0, len(data)) / fs _interp_doppler = _interp(_timesteps) # This isn't working properly. phase = np.cumsum(_interp_doppler / fs) mixed = data * np.exp(1.0j * 2.0 * np.pi * phase) return mixed def calculate_variance(data, threshold=-100.0): # Calculate the variance of a set of radiosonde samples. # Optionally use a threshold to limit the sample the variance # is calculated over to ones that actually have sonde packets in them. _data_log = 20 * np.log10(np.abs(data)) # MSE is better than variance as a power estimate, as it counts DC data_thresh = data[_data_log > threshold] return np.mean(data_thresh * np.conj(data_thresh)) def add_noise( data, variance, baud_rate, ebno, fs=96000, bitspersymbol=1.0, normalise=True, real=False, ): # Add calibrated noise to a sample. # Calculate Eb/No in linear units. _ebno = 10.0 ** ((ebno) / 10.0) # Calculate the noise variance we need to add _noise_variance = variance * fs / (baud_rate * _ebno * bitspersymbol) # If we are working with real samples, we need to halve the noise contribution. if real: _noise_variance = _noise_variance * 0.5 # Generate complex random samples _rand_i = np.sqrt(_noise_variance / 2.0) * np.random.randn(len(data)) _rand_q = np.sqrt(_noise_variance / 2.0) * np.random.randn(len(data)) _noisy = data + (_rand_i + 1j * _rand_q) if normalise: # print("Normalised to 1.0") return _noisy / np.max(np.abs(_noisy)) else: return _noisy def generate_lowsnr(sample, outfile, fs, baud, ebno, order): """ Generate a low SNR test file """ if order == 2: _bits_per_symbol = 1 else: _bits_per_symbol = 2 _var = calculate_variance(sample) _noisy = add_noise(sample, _var, baud, ebno, fs, _bits_per_symbol) save_sample(_noisy, outfile) return outfile # # Functions to deal with codec2 utils # def generate_fsk(baud): """ Generate a set of FSK data """ # Calculate the number of bits we need to generate to get out desired test length. if FSK_ORDER == 2: _num_bits = TEST_LENGTH * baud else: _num_bits = TEST_LENGTH * baud * 2 _num_bits = TEST_LENGTH _filename = "%s/fsk_%d_%d_%d_f.bin" % (SAMPLE_DIR, FSK_ORDER, SAMPLE_RATE, baud) # Generate the command we need to make: _cmd = ( "%s/fsk_get_test_bits - %d %d | %s/fsk_mod %d %d %d %d %d - - | csdr convert_s16_f > %s" % ( CODEC2_UTILS, _num_bits, FRAME_LENGTH, CODEC2_UTILS, FSK_ORDER, SAMPLE_RATE, baud, LOW_TONE, TONE_SPACING, _filename, ) ) print(_cmd) print("Generating test signal: %d-FSK, %d baud" % (FSK_ORDER, baud)) # Run the command. try: _start = time.time() _output = subprocess.check_output(_cmd, shell=True, stderr=None) _output = _output.decode() except: # traceback.print_exc() _output = "error" _runtime = time.time() - _start print("Finished generating test signal.") return _filename def process_fsk( filename, baud, complex_samples=True, override_bits=None, stats=False, statsfile="" ): """ Run a fsk file through fsk_demod """ _estim_limits = "-b %d -u %d " % (ESTIMATOR_LOWER_LIMIT, ESTIMATOR_UPPER_LIMIT) if MASK_ESTIMATOR: _mask = "--mask %d " % TONE_SPACING else: _mask = "" if complex_samples: _cpx = "--cs16 " else: _cpx = "" if stats: _stats_file = GENERATED_DIR + "/" + statsfile + ".stats" _stats = "--stats=50 " else: _stats = "" _stats_file = None _cmd = "cat %s | csdr convert_f_s16 | %s/fsk_demod %s%s%s%s%d %d %d - - " % ( filename, CODEC2_UTILS, _mask, _estim_limits, _cpx, _stats, FSK_ORDER, SAMPLE_RATE, baud, ) if stats: _cmd += "2> %s" % _stats_file _cmd += "| %s/fsk_put_test_bits -f %d -t %.2f - 2>&1" % ( CODEC2_UTILS, FRAME_LENGTH, FRAME_THRESHOLD, ) # print("Processing %s" % filename) print(_cmd) # Run the command. try: _start = time.time() _output = subprocess.check_output(_cmd, shell=True) _output = _output.decode() except subprocess.CalledProcessError as e: _output = e.output.decode() except: traceback.print_exc() _output = "error" print("Run failed!") return (-1, _stats_file) _runtime = time.time() - _start # Try to grab last line of the stderr outout try: _last_line = _output.split("\n")[-3] except: # Lack of a line indicates that we have decoded no data. return a BER of 1. print("No bits decoded.") return (1.0, _stats_file) # Detect no decoded bits when feeding in custom put_bits parameters. if "Using" in _last_line: print("No bits decoded.") return (1.0, _stats_file) # Example line: # [0009] BER 0.000, bits tested 18000, bit errors 0 errs: 0 # [0009] BER 0.000, bits tested 18000, bit errors 0 # PASS # # split into fields _fields = _last_line.split() # Extract number of bits and errors _bits = float(_fields[5][:-1]) # remove the trailing comma _errors = float(_fields[8]) print("Bits: %d, Errors: %d, Raw BER: %.8f" % (_bits, _errors, _errors / _bits)) if override_bits != None: if _bits < override_bits: print("Demod got %d bits, but we sent %d bits." % (_bits, override_bits)) _errors += override_bits - _bits # Calculate and return BER _ber = _errors / _bits if _ber > 1.0: _ber = 1.0 return (_ber, _stats_file) def read_stats(filename, sps = 50): """ Read in a statistics file, and re-organise it for easier calculations """ _output = { 'ebno': [], 'f1_est': [], 'f2_est': [], 'f3_est': [], 'f4_est': [], 'ppm': [], 'time': [] } with open(filename, 'r') as _f: for _line in _f: if _line[0] != '{': continue try: _data = json.loads(_line) except Exception as e: #print("Line parsing error: %s" % str(e)) continue _output['ebno'].append(_data['EbNodB']) _output['f1_est'].append(_data['f1_est']) _output['f2_est'].append(_data['f2_est']) if 'f3_est' in _data: _output['f3_est'].append(_data['f3_est']) _output['f4_est'].append(_data['f4_est']) _output['ppm'].append(_data['ppm']) if _output['time'] == []: _output['time'] = [0] else: _output['time'].append(_output['time'][-1]+1.0/sps) return _output def freq_est_error(data, Rs): """ Calculate the frequency estimator error """ _threshold = FEST_THRESHOLD*Rs _total_points = len(data['f1_est'])*FSK_ORDER _errors = 0 _errors += np.sum(np.abs(np.array(data['f1_est'])-LOW_TONE) > _threshold) _errors += np.sum(np.abs(np.array(data['f2_est'])-LOW_TONE-TONE_SPACING) > _threshold) if FSK_ORDER == 4: _errors += np.sum(np.abs(np.array(data['f3_est'])-LOW_TONE-TONE_SPACING*2) > _threshold) _errors += np.sum(np.abs(np.array(data['f4_est'])-LOW_TONE-TONE_SPACING*3) > _threshold) return _errors/_total_points if __name__ == "__main__": parser = argparse.ArgumentParser(description="FSK modem BER simulations") parser.add_argument("--test", action="store_true", help="run automated test") args = parser.parse_args() if args.test: # test the AWGN channel simulation. We use BPSK that's phase shifted to exercise the # complex maths a bit nb_bits = 100000 EbNo = 4 tx_bits = np.random.randint(2, size=nb_bits) tx_bpsk_symbols = (2 * tx_bits - 1) * np.exp(1j * np.pi / 3) tx_power = calculate_variance(tx_bpsk_symbols) # check calculate_variance() assert tx_power < 1.1 and tx_power > 0.9 # BPSK modem simulation rx_bpsk_symbols = add_noise(tx_bpsk_symbols, tx_power, 1, EbNo, 1, 1) rx_bpsk_symbols = rx_bpsk_symbols * np.exp(-1j * np.pi / 3) rx_bits = np.array([1 if np.real(s) > 0 else 0 for s in rx_bpsk_symbols]) nb_errors = np.sum(np.bitwise_xor(tx_bits, rx_bits)) ber = nb_errors / nb_bits # set limit of +/- 0.25dB on BER EbNo_lin_upper = 10 ** ((EbNo - 0.25) / 10) bpsk_ber_theory_upper = 0.5 * scipy.special.erfc(np.sqrt(EbNo_lin_upper)) EbNo_lin_lower = 10 ** ((EbNo + 0.25) / 10) bpsk_ber_theory_lower = 0.5 * scipy.special.erfc(np.sqrt(EbNo_lin_lower)) print( "nb_errors: %d ber: %4.3f ber_lower_limit: %4.3f ber_upper_limit: %4.3f" % (nb_errors, ber, bpsk_ber_theory_lower, bpsk_ber_theory_upper) ) assert ber < bpsk_ber_theory_upper and ber > bpsk_ber_theory_lower print("AWGN channel simulation test PASSED!") exit() plot_data = {} for _baud in BAUD_RATES: _file = generate_fsk(_baud) print("Loading file and converting to complex.") _sample = load_sample(_file) if DOPPLER_ENABLED: print("Applying Doppler.") _sample = apply_doppler(_sample, DOPPLER_FILE) print("Done.") _override_bits = _baud * (len(_sample) / SAMPLE_RATE) - FRAME_IGNORE else: _override_bits = TEST_LENGTH - FRAME_IGNORE _temp_file = "%s/temp.bin" % GENERATED_DIR _ebnos = [] _bers = [] _fest_err = [] for _ebno in EBNO_RANGE: generate_lowsnr(_sample, _temp_file, SAMPLE_RATE, _baud, _ebno, FSK_ORDER) _ber, _stats_file = process_fsk( _temp_file, _baud, override_bits=_override_bits, stats=STATS_OUTPUT, statsfile="fsk_%d_%.1f" % (_baud, _ebno), ) print("%.1f, %.8f" % (_ebno, _ber)) _ebnos.append(_ebno) _bers.append(_ber) if FEST_ERROR: _stats = read_stats(_stats_file) _fest_err.append(freq_est_error(_stats, _baud)) # Halt the simulation if the BER drops below our break point. if _ber < BER_BREAK_POINT: break plot_data[_baud] = {"baud": _baud, "ebno": _ebnos, "ber": _bers, "fest_err":_fest_err} print(plot_data[_baud]) # plt.semilogy(plot_data[_baud]['ebno'], plot_data[_baud]['ber'], label="Simulated - %d bd" % _baud) plt.figure() print(plot_data) for _b in plot_data: plt.semilogy( plot_data[_b]["ebno"], plot_data[_b]["ber"], label="Simulated - %d bd" % _b ) if FSK_ORDER == 2: plt.semilogy(THEORY_EBNO, THEORY_BER_2, label="Theory") else: plt.semilogy(THEORY_EBNO, THEORY_BER_4, label="Theory") plt.xlabel("Eb/N0 (dB)") plt.ylabel("BER") # Crop plot to reasonable limits plt.ylim(1e-3, 1) plt.xlim(0, 10) plt.title("fsk_demod %d-FSK BER performance" % FSK_ORDER) plt.grid() plt.legend() if FEST_ERROR: plt.figure() for _b in plot_data: plt.plot( plot_data[_b]["ebno"], plot_data[_b]["fest_err"], label="Simulated - %d bd" % _b ) plt.title("Frequency Estimator Error") plt.grid() plt.legend() plt.show() codec2-1.0.1/octave/fsk_demod_file.m000066400000000000000000000105551412132000500172330ustar00rootroot00000000000000% fsk_demod_file.m % David Rowe May 2020 % % Demodulate a file of off air samples and plot a bunch of internal % states. Useful for debugging the FSK demod configuration #{ Sample usage to explore demodulator operation with a 100 bits/s 2FSK signal: $ cd ~/codec2/build_linux/src $ ./fsk_get_test_bits - 1000 | ./fsk_mod 2 8000 100 1000 1000 - ../../octave/fsk.s16 $ octave --no-gui octave:1> fsk_demod_file("fsk.s16",format="s16",8000,100,2) Same thing but complex (single sided): $ ./fsk_get_test_bits - 1000 | ./fsk_mod 2 8000 100 1000 1000 - - | ./cohpsk_ch - fsk.cs16 -100 --Fs 8000 --complexout octave:2> fsk_demod_file("fsk.cs16",format="cs16",8000,100,2) #} function fsk_demod_file(filename, format="s16", Fs=8000, Rs=50, M=2, P=8, avoid_dc = 1, max_secs=1E32) more off; fsk_lib; plot_en = 1; states = fsk_init(Fs, Rs, M, P); if strcmp(format,"s16") read_complex = 0; sample_size = 'int16'; shift_fs_on_4=0; elseif strcmp(format,"cs16") || strcmp(format,"iq16") read_complex = 1; sample_size = 'int16'; shift_fs_on_4=0; if avoid_dc states.fest_fmin = states.Rs*0.5; else states.fest_fmin = -Fs/2; end; states.fest_fmax = Fs/2; elseif strcmp(format,"iqfloat") read_complex = 1; sample_size = 'float32'; shift_fs_on_4=0; if avoid_dc states.fest_fmin = states.Rs*0.5; else states.fest_fmin = -Fs/2; end; states.fest_fmax = Fs/2; else printf("Error in format: %s\n", format); return; end fin = fopen(filename,"rb"); if fin == -1 printf("Error opening file: %s\n",filename); return; end nbit = states.nbit; frames = 0; rx = []; rx_bits_log = []; norm_rx_timing_log = []; f_int_resample_log = []; EbNodB_log = []; ppm_log = []; f_log = []; Sf_log = []; % Extract raw bits from samples ------------------------------------------------------ printf("demod of raw bits....\n"); finished = 0; ph = 1; secs = 0; while (finished == 0) % read nin samples from input file nin = states.nin; if read_complex [sf count] = fread(fin, 2*nin, sample_size); if strcmp(sample_size, "uint8") sf = (sf - 127)/128; end sf = sf(1:2:end) + j*sf(2:2:end); count /= 2; if shift_fs_on_4 % optional shift up in freq by Fs/4 to get into freq est range for i=1:count ph = ph*exp(j*pi/4); sf(i) *= ph; end end else [sf count] = fread(fin, nin, sample_size); end rx = [rx; sf]; if count == nin frames++; % demodulate to stream of bits states = est_freq(states, sf, states.M); if states.freq_est_type == 'mask' states.f = states.f2; end [rx_bits states] = fsk_demod(states, sf); rx_bits_log = [rx_bits_log rx_bits]; norm_rx_timing_log = [norm_rx_timing_log states.norm_rx_timing]; f_int_resample_log = [f_int_resample_log abs(states.f_int_resample)]; EbNodB_log = [EbNodB_log states.EbNodB]; ppm_log = [ppm_log states.ppm]; f_log = [f_log; states.f]; Sf_log = [Sf_log; states.Sf']; else finished = 1; end secs += nin/Fs; if secs > max_secs finished=1; end end printf("frames: %d\n", frames); fclose(fin); if plot_en printf("plotting...\n"); figure(1); clf; rx_nowave = rx(1000:length(rx)); % skip past wav header if it's a wave file subplot(211) plot(real(rx_nowave)); title('input signal to demod (1 sec)') xlabel('Time (samples)'); subplot(212); last = min(length(rx_nowave),Fs); Nfft = 2^(ceil(log2(last))); Rx = fft(rx_nowave(1:last).*hanning(last),Nfft); RxdB = 20*log10(abs(fftshift(Rx))); mx = 10*ceil(max(RxdB/10)); f = -Nfft/2:Nfft/2-1; plot(f*Fs/Nfft, RxdB); axis([-Fs/2 Fs/2 mx-80 mx]) xlabel('Frequency (Hz)'); if length(rx) > Fs figure(2); Ndft=2^ceil(log2(Fs/10)); specgram(rx,Ndft,Fs); end figure(3); clf; plot(f_log,'+-'); axis([1 length(f_log) -Fs/2 Fs/2]); title('Tone Freq Estimates'); figure(4); clf; mesh(Sf_log(1:end,:)); title('Freq Est Sf over time'); figure(5); clf; plot(f_int_resample_log','+'); title('Integrator outputs for each tone'); figure(6); clf; plot(norm_rx_timing_log); axis([1 frames -0.5 0.5]); title('norm fine timing') figure(7); clf; plot(EbNodB_log); title('Eb/No estimate') figure(8); clf; plot(ppm_log); title('Sample clock (baud rate) offset in PPM'); end endfunction codec2-1.0.1/octave/fsk_horus.m000066400000000000000000000636771412132000500163210ustar00rootroot00000000000000% fsk_horus.m % David Rowe 10 Oct 2015 % % Project Horus High Altitude Balloon (HAB) FSK demodulator % See blog write up "All your modems are belong to us" % http://www.rowetel.com/?p=4629 fsk_lib; % Basic modem set up for Horus function states = fsk_horus_init(Fs,Rs,M=2) states = fsk_init(Fs,Rs,M); % Freq. estimator limits - keep these narrow to stop errors with low SNR 4FSK states.fest_fmin = 300; states.fest_fmax = 2800; endfunction % init rtty protocol specific states function rtty = fsk_horus_init_rtty % Generate unque word that correlates against the ASCII "$$$$$" that % is at the start of each frame. % $ -> 36 decimal -> 0 1 0 0 1 0 0 binary dollar_bits = fliplr([0 1 0 0 1 0 0]); mapped_db = 2*dollar_bits - 1; sync_bits = [1 1 0]; mapped_sb = 2*sync_bits - 1; mapped = [mapped_db mapped_sb]; npad = rtty.npad = 3; % one start and two stop bits between 7 bit ascii chars nfield = rtty.nfield = 7; % length of ascii character field rtty.uw = [mapped mapped mapped mapped mapped]; rtty.uw_thresh = length(rtty.uw) - 2; % allow a few bit errors when looking for UW rtty.max_packet_len = 1000; endfunction % I think this is the binary protocol work from Jan 2016 function binary = fsk_horus_init_binary % Generate 16 bit "$$" unique word that is at the front of every horus binary % packet dollar_bits = [0 0 1 0 0 1 0 0]; mapped_db = 2*dollar_bits - 1; binary.uw = [mapped_db mapped_db]; binary.uw_thresh = length(binary.uw)-2; % no bit errors when looking for UW binary.max_packet_len = 360; endfunction % Look for unique word and return index of first UW bit, or -1 if no % UW found Sometimes there may be several matches, returns the % position of the best match to UW. function [uw_start best_corr corr] = find_uw(states, start_bit, rx_bits) uw = states.uw; mapped_rx_bits = 2*rx_bits - 1; best_corr = 0; uw_start = -1; found_uw = 0; % first first UW in buffer that exceeds threshold for i=start_bit:length(rx_bits) - length(uw) corr(i) = mapped_rx_bits(i:i+length(uw)-1) * uw'; if (found_uw == 0) && (corr(i) >= states.uw_thresh) uw_start = i; best_corr = corr; found_uw = 1; end end endfunction % Extract ASCII string from a Horus frame of bits function [str crc_ok] = extract_ascii(states, rx_bits_buf, uw_loc) nfield = states.nfield; npad = states.npad; str = ""; str_dec = []; nstr = 0; ptx_crc = 1; rx_crc = ""; endpacket = 0; st = uw_loc + length(states.uw); % first bit of first char en = uw_loc + states.max_packet_len - nfield; %printf("\nst: %d en: %d len: %d\n", st, en, length(rx_bits_buf)); for i=st:nfield+npad:en field = rx_bits_buf(i:i+nfield-1); ch_dec = field * (2.^(0:nfield-1))'; % filter out unlikely characters that bit errors may introduce, and ignore \n if (ch_dec > 31) && (ch_dec < 91) str = [str char(ch_dec)]; else str = [str char(32)]; % space is "not sure" end nstr++; % build up array for CRC16 check if !endpacket && (ch_dec == 42) endpacket = 1; rx_crc = crc16(str_dec); % found a '*' so that's the end of the string for CRC calculations ptx_crc = nstr+1; % this is where the transmit CRC starts end if !endpacket str_dec = [str_dec ch_dec]; end end if (ptx_crc+3) <= length(str) tx_crc = str(ptx_crc:ptx_crc+3); crc_ok = strcmp(tx_crc, rx_crc); else crc_ok = 0; end str = str(1:ptx_crc-2); endfunction % Use soft decision information to find bits most likely in error. I think % this is some form of maximum likelihood decoding. function [str crc_ok rx_bits_log_flipped] = sd_bit_flipping(states, rx_bits_log, rx_bits_sd_log, st, en); % force algorithm to ignore rs232 sync bits by marking them as "very likely", they have % no input to crc algorithm nfield = states.nfield; npad = states.npad; for i=st:nfield+npad:en rx_bits_sd_log(i+nfield:i+nfield+npad-1) = 1E6; end % make a list of bits with smallest soft decn values [dodgy_bits_mag dodgy_bits_index] = sort(abs(rx_bits_sd_log(st+length(states.uw):en))); dodgy_bits_index += length(states.uw) + st - 1; nbits = 6; ntries = 2^nbits; str = ""; crc_ok = 0; % try various combinations of these bits for i=1:ntries-1 error_mask = zeros(1, length(rx_bits_log)); for b=1:nbits x = bitget(i,b); bit_to_flip = dodgy_bits_index(b); error_mask(bit_to_flip) = x; %printf("st: %d i: %d b: %d x: %d index: %d\n", st, i,b,x,bit_to_flip); end rx_bits_log_flipped = xor(rx_bits_log, error_mask); [str_flipped crc_ok_flipped] = extract_ascii(states, rx_bits_log_flipped, st); if crc_ok_flipped %printf("Yayy we fixed a packet by flipping with pattern %d\n", i); str = str_flipped; crc_ok = crc_ok_flipped; end end endfunction % Extract as many ASCII packets as we can from a great big buffer of bits function npackets = extract_and_print_rtty_packets(states, rtty, rx_bits_log, rx_bits_sd_log) % use UWs to delimit start and end of data packets bit = 1; nbits = length(rx_bits_log); nfield = rtty.nfield; npad = rtty.npad; npackets = 0; uw_loc = find_uw(rtty, bit, rx_bits_log, states.verbose); while (uw_loc != -1) if bitand(states.verbose,0x8) printf("nbits: %d max_packet_len: %d uw_loc: %d\n", nbits, rtty.max_packet_len, uw_loc); end if (uw_loc + rtty.max_packet_len) < nbits % Now start picking out 7 bit ascii chars from frame. It has some % structure so we can guess where fields are. I hope we don't get % RS232 idle bits stuck into it anywhere, ie "bit fields" don't % change dynamically. % dump msg bits so we can use them as a test signal %msg = rx_bits_log(st:uw_loc-1); %save -ascii horus_msg.txt msg % simulate bit error for testing %rx_bits_log(st+200) = xor(rx_bits_log(st+100),1); %rx_bits_sd_log(st+100) = 0; [str crc_ok] = extract_ascii(rtty, rx_bits_log, uw_loc); if crc_ok == 0 [str_flipped crc_flipped_ok rx_bits_log] = sd_bit_flipping(rtty, rx_bits_log, rx_bits_sd_log, uw_loc, uw_loc+rtty.max_packet_len); end % update memory of previous packet, we use this to guess where errors may be if crc_ok || crc_flipped_ok states.prev_pkt = rx_bits_log(uw_loc+length(rtty.uw):uw_loc+rtty.max_packet_len); end if crc_ok str = sprintf("%s CRC OK", str); npackets++; else if crc_flipped_ok str = sprintf("%s fixed", str_flipped); else str = sprintf("%s CRC BAD", str); end end printf("%s\n", str); end % look for next packet bit = uw_loc + length(rtty.uw); uw_loc = find_uw(rtty, bit, rx_bits_log, states.verbose); endwhile endfunction % Extract as many binary packets as we can from a great big buffer of bits, % and send them to the C decoder for FEC decoding. % horus_l2 can be compiled a bunch of different ways. You need to % compile with: % codec2-dev/src$ gcc horus_l2.c -o horus_l2 -Wall -DDEC_RX_BITS -DHORUS_L2_RX function corr_log = extract_and_decode_binary_packets(states, binary, rx_bits_log) corr_log = []; % use UWs to delimit start and end of data packets bit = 1; nbits = length(rx_bits_log); [uw_loc best_corr corr] = find_uw(binary, bit, rx_bits_log, states.verbose); corr_log = [corr_log corr]; while (uw_loc != -1) if (uw_loc+binary.max_packet_len) < nbits % printf("uw_loc: %d best_corr: %d\n", uw_loc, best_corr); % OK we have a packet delimited by two UWs. Lets convert the bit % stream into bytes and save for decoding pin = uw_loc; for i=1:45 rx_bytes(i) = rx_bits_log(pin:pin+7) * (2.^(7:-1:0))'; pin += 8; %printf("%d 0x%02x\n", i, rx_bytes(i)); end f=fopen("horus_rx_bits_binary.bin","wb"); fwrite(f, rx_bytes, "uchar"); fclose(f); % optionally write packet to disk to use as horus_tx_bits_binary.txt f=fopen("horus_rx_bits_binary.txt","wt"); for i=uw_loc:uw_loc+45*8-1 fprintf(f, "%d ", rx_bits_log(i)); end fclose(f); system("../src/horus_l2"); % compile instructions above end bit = uw_loc + length(binary.uw); [uw_loc best_corr corr] = find_uw(binary, bit, rx_bits_log, states.verbose); corr_log = [corr_log corr]; endwhile endfunction % simulation of tx and rx side, add noise, channel impairments ---------------------- % % test_frame_mode Description % 1 BER testing using known test frames % 2 random bits % 3 repeating sequence of all symbols % 4 Horus RTTY % 5 Horus Binary % 6 Horus High Speed: A 8x oversampled modem, e.g. Fs=9600, Rs=1200 % which is the same as Fs=921600 Rs=115200 % Uses packet based BER counter function run_sim(test_frame_mode, M=2, frames = 10, EbNodB = 100, filename="fsk_horus.raw") timing_offset = 0.0; % see resample() for clock offset below fading = 0; % modulates tx power at 2Hz with 20dB fade depth, % to simulate balloon rotating at end of mission df = 0; % tx tone freq drift in Hz/s dA = 1; % amplitude imbalance of tones (note this affects Eb so not a gd idea) more off rand('state',1); randn('state',1); % ---------------------------------------------------------------------- % sm2000 config ------------------------ %states = fsk_horus_init(96000, 1200); %states.f1_tx = 4000; %states.f2_tx = 5200; if test_frame_mode < 4 % horus rtty config --------------------- states = fsk_horus_init(8000, 50, M); end if test_frame_mode == 4 % horus rtty config --------------------- states = fsk_horus_init(8000, 100, 2); states.tx_bits_file = "horus_payload_rtty.txt"; % Octave file of bits we FSK modulate rtty = fsk_horus_init_rtty; states.ntestframebits = rtty.max_packet_len; end if test_frame_mode == 5 % horus binary config --------------------- states = fsk_horus_init(8000, 100, 4); binary = fsk_horus_init_binary; states.tx_bits_file = "horus_tx_bits_binary.txt"; % Octave file of bits we FSK modulate states.ntestframebits = binary.max_packet_len; end if test_frame_mode == 6 % horus high speed --------------------- states = fsk_horus_init(Fs=9600, Rs=1200, M=2, P=8, nsym=16); states.tx_bits_file = "horus_high_speed.bin"; end % Tones must be at least Rs apart for ideal non-coherent FSK states.ftx = 900 + 2*states.Rs*(1:states.M); states.tx_tone_separation = states.ftx(2) - states.ftx(1); % ---------------------------------------------------------------------- states.verbose = 0x1; M = states.M; N = states.N; P = states.P; Rs = states.Rs; nsym = states.nsym; nbit = states.nbit; Fs = states.Fs; states.df(1:M) = df; states.dA(1:M) = dA; % optional noise. Useful for testing performance of waveforms from real world modulators EbNo = 10^(EbNodB/10); variance = states.Fs/(states.Rs*EbNo*states.bitspersymbol); % set up tx signal with payload bits based on test mode if (test_frame_mode == 1) % test frame of bits, which we repeat for convenience when BER testing states.ntestframebits = states.nbit; test_frame = round(rand(1, states.ntestframebits)); tx_bits = []; for i=1:frames+1 tx_bits = [tx_bits test_frame]; end end if test_frame_mode == 2 % random bits, just to make sure sync algs work on random data tx_bits = round(rand(1, states.nbit*(frames+1))); end if test_frame_mode == 3 % repeating sequence of all symbols % great for initial test of demod if nothing else works, % look for this pattern in rx_bits if M == 2 % ...10101... tx_bits = zeros(1, states.nbit*(frames+1)); tx_bits(1:2:length(tx_bits)) = 1; else % repeat each possible 4fsk symbol pattern = [0 0 0 1 1 0 1 1]; %pattern = [0 0 0 1 1 1 1 0]; nrepeats = states.nbit*(frames+1)/length(pattern); tx_bits = []; for b=1:nrepeats tx_bits = [tx_bits pattern]; end %tx_bits = zeros(1, states.nbit*(frames+1)); end end if (test_frame_mode == 4) || (test_frame_mode == 5) % load up a horus msg from disk and modulate that test_frame = load(states.tx_bits_file); ltf = length(test_frame); ntest_frames = ceil((frames+1)*nbit/ltf); printf("Generating %d test packets\n", ntest_frames); % 1 second of random bits to let estimators lock on preamble = round(rand(1,states.Rs)); tx_bits = preamble; for i=1:ntest_frames tx_bits = [tx_bits test_frame]; end % a packet len of random bits at end fill buffers to deocode final packet if test_frame_mode == 4 postamble = round(rand(1,rtty.max_packet_len)); else postamble = round(rand(1,binary.max_packet_len)); end tx_bits = [tx_bits postamble]; end if test_frame_mode == 6 states.verbose += 0x4; ftmp = fopen(states.tx_bits_file, "rb"); test_frame = fread(ftmp,Inf,"char")'; fclose(ftmp); states.ntestframebits = length(test_frame); printf("length test frame: %d\n", states.ntestframebits); %test_frame = rand(1,states.ntestframebits) > 0.5; tx_bits = []; for i=1:frames+1 tx_bits = [tx_bits test_frame]; end end tx = fsk_mod(states, tx_bits); %tx = resample(tx, 1000, 1001); % simulated 1000ppm sample clock offset if fading ltx = length(tx); tx = tx .* (1.1 + cos(2*pi*2*(0:ltx-1)/Fs))'; % min amplitude 0.1, -20dB fade, max 3dB end noise = sqrt(variance)*randn(length(tx),1); rx = tx + noise; printf("SNRdB meas: %4.1f\n", 10*log10(var(tx)/var(noise))); % dump simulated rx file ftx=fopen(filename,"wb"); rxg = rx*1000; fwrite(ftx, rxg, "short"); fclose(ftx); timing_offset_samples = round(timing_offset*states.Ts); st = 1 + timing_offset_samples; rx_bits_buf = zeros(1,nbit+states.ntestframebits); x_log = []; timing_nl_log = []; norm_rx_timing_log = []; f_int_resample_log = []; f_log = []; EbNodB_log = []; rx_bits_log = []; rx_bits_sd_log = []; % main loop --------------------------------------------------------------- run_frames = floor(length(rx)/N)-1; for f=1:run_frames % extract nin samples from input stream nin = states.nin; en = st + states.nin - 1; if en < length(rx) % due to nin variations its possible to overrun buffer sf = rx(st:en); st += nin; % demodulate to stream of bits states = est_freq(states, sf, states.M); %states.f = 900 + 2*states.Rs*(1:states.M); %states.f = [1200 1400 1600 1800]; [rx_bits states] = fsk_demod(states, sf); rx_bits_buf(1:states.ntestframebits) = rx_bits_buf(nbit+1:states.ntestframebits+nbit); rx_bits_buf(states.ntestframebits+1:states.ntestframebits+nbit) = rx_bits; %rx_bits_buf(1:nbit) = rx_bits_buf(nbit+1:2*nbit); %rx_bits_buf(nbit+1:2*nbit) = rx_bits; rx_bits_log = [rx_bits_log rx_bits]; rx_bits_sd_log = [rx_bits_sd_log states.rx_bits_sd]; norm_rx_timing_log = [norm_rx_timing_log states.norm_rx_timing]; x_log = [x_log states.x]; timing_nl_log = [timing_nl_log states.timing_nl]; f_int_resample_log = [f_int_resample_log abs(states.f_int_resample(:,:))]; f_log = [f_log; states.f]; EbNodB_log = [EbNodB_log states.EbNodB]; if test_frame_mode == 1 states = ber_counter(states, test_frame, rx_bits_buf); end if test_frame_mode == 6 states = ber_counter_packet(states, test_frame, rx_bits_buf); end end end % print stats, count errors, decode packets ------------------------------------------ if (test_frame_mode == 1) || (test_frame_mode == 6) printf("frames: %d EbNo: %3.2f Tbits: %d Terrs: %d BER %4.3f\n", frames, EbNodB, states.Tbits,states. Terrs, states.Terrs/states.Tbits); end if test_frame_mode == 4 npackets = extract_and_print_rtty_packets(states, rtty, rx_bits_log, rx_bits_sd_log); printf("Received %d packets\n", npackets); end if test_frame_mode == 5 extract_and_decode_binary_packets(states, binary, rx_bits_log); end figure(1); plot(f_int_resample_log','+') hold off; figure(2) clf m = max(abs(x_log)); plot(x_log,'+') axis([-m m -m m]) title('fine timing metric') figure(3) clf subplot(211) plot(norm_rx_timing_log); axis([1 run_frames -1 1]) title('norm fine timing') subplot(212) plot(states.nerr_log) title('num bit errors each frame') figure(4) clf subplot(211) one_sec_rx = rx(1:min(Fs,length(rx))); plot(one_sec_rx) title('rx signal at demod input') subplot(212) plot(abs(fft(one_sec_rx))) figure(5) clf plot(f_log,'+') title('tone frequencies') axis([1 run_frames 0 Fs/2]) figure(6) clf plot(EbNodB_log); title('Eb/No estimate') figure(7) clf subplot(211) X = abs(fft(timing_nl_log)); plot(X(1:length(X)/2)) subplot(212) plot(abs(timing_nl_log(1:100))) endfunction % --------------------------------------------------------------------- % demodulate from a user-supplied file % --------------------------------------------------------------------- function rx_bits_log = demod_file(filename, test_frame_mode=4, noplot=0, EbNodB=100, max_frames=1E32) fin = fopen(filename,"rb"); more off; read_complex = 0; sample_size = 'int16'; shift_fs_on_4 = 0; max_frames if test_frame_mode == 4 % horus rtty config --------------------- states = fsk_horus_init(8000, 100, 2); rtty = fsk_horus_init_rtty; states.ntestframebits = rtty.max_packet_len; end if test_frame_mode == 5 % horus binary config --------------------- states = fsk_horus_init(8000, 100, 4); binary = fsk_horus_init_binary; states.ntestframebits = binary.max_packet_len; end states.verbose = 0x1 + 0x8; if test_frame_mode == 6 % Horus high speed config -------------- states = fsk_horus_init(Fs=9600, Rs=1200, M=2, P=8, nsym=16); states.tx_bits_file = "horus_high_speed.bin"; states.verbose += 0x4; ftmp = fopen(states.tx_bits_file, "rb"); test_frame = fread(ftmp,Inf,"char")'; fclose(ftmp); states.ntestframebits = length(test_frame); printf("length test frame: %d\n", states.ntestframebits); end if test_frame_mode == 7 % 800XA 4FSK modem -------------- states = fsk_init(Fs=8000, Rs=400, M=4, P=10, nsym=256); states.tx_bits_file = "horus_high_speed.bin"; states.verbose += 0x4; ftmp = fopen(states.tx_bits_file, "rb"); test_frame = fread(ftmp,Inf,"char")'; fclose(ftmp); states.ntestframebits = length(test_frame); printf("length test frame: %d\n", states.ntestframebits); end if test_frame_mode == 8 % test RS41 type balllon telemetry -------------- states = fsk_init(96000, 4800, 2, 10, 16); states.fest_fmin = 1000; states.fest_fmax = 40000; states.fest_min_spacing = 1000; states.tx_bits_file = "../build_linux/src/tx_bit.bin"; states.verbose += 0x4; #ftmp = fopen(states.tx_bits_file, "rb"); test_frame = fread(ftmp,Inf,"char")'; fclose(ftmp); #states.ntestframebits = length(test_frame); #printf("length test frame: %d\n", states.ntestframebits); states.ntestframebits = 1000; read_complex = 1; shift_fs_on_4 = 1; % get samples into range of current freq estimator end if test_frame_mode == 9 % Wenet high speed SSTV, we can just check raw demo here --------------------- % despite the high sample rate the modem sees this as a 8:1 Fs/Rs configuration states = fsk_init(8000, 1000, 2); states.tx_tone_separation = 1000; states.ntestframebits = (256+2+65)*8+40; % from src/drs232_lpc.c states.freq_est_type = 'mask'; read_complex=1; sample_size = 'uint8'; printf("Wenet mode: ntestframebits: %d freq_est_type: %s\n", states.ntestframebits, states.freq_est_type); %states.verbose = 0x8; end N = states.N; P = states.P; Rs = states.Rs; nsym = states.nsym; nbit = states.nbit; frames = 0; rx = []; rx_bits_log = []; rx_bits_sd_log = []; norm_rx_timing_log = []; f_int_resample_log = []; EbNodB_log = []; ppm_log = []; f_log = []; Sf_log = []; rx_bits_buf = zeros(1,nbit + states.ntestframebits); % optional noise. Useful for testing performance of waveforms from real world modulators % we need to pre-read the file to estimate the signal power ftmp = fopen(filename,"rb"); s = fread(ftmp,Inf,sample_size); fclose(ftmp); if sample_size == "uint8" s = (s - 127)/128; end if read_complex s = s(1:2:end) + j*s(2:2:end); end tx_pwr = var(s); EbNo = 10^(EbNodB/10); variance = (tx_pwr/2)*states.Fs/(states.Rs*EbNo*states.bitspersymbol); % First extract raw bits from samples ------------------------------------------------------ printf("demod of raw bits....\n"); finished = 0; ph = 1; while (finished == 0) % extract nin samples from input stream nin = states.nin; if read_complex [sf count] = fread(fin, 2*nin, sample_size); if sample_size == "uint8" sf = (sf - 127)/128; end sf = sf(1:2:end) + j*sf(2:2:end); count /= 2; if shift_fs_on_4 % optional shift up in freq by Fs/4 to get into freq est range for i=1:count ph = ph*exp(j*pi/4); sf(i) *= ph; end end else [sf count] = fread(fin, nin, "short"); end rx = [rx; sf]; % add optional noise if count noise = sqrt(variance)*randn(count,1); sf += noise; end if count == nin frames++; % demodulate to stream of bits states = est_freq(states, sf, states.M); if states.freq_est_type == 'mask' states.f = states.f2; end [rx_bits states] = fsk_demod(states, sf); rx_bits_buf(1:states.ntestframebits) = rx_bits_buf(nbit+1:states.ntestframebits+nbit); rx_bits_buf(states.ntestframebits+1:states.ntestframebits+nbit) = rx_bits; rx_bits_log = [rx_bits_log rx_bits]; rx_bits_sd_log = [rx_bits_sd_log states.rx_bits_sd]; norm_rx_timing_log = [norm_rx_timing_log states.norm_rx_timing]; f_int_resample_log = [f_int_resample_log abs(states.f_int_resample)]; EbNodB_log = [EbNodB_log states.EbNodB]; ppm_log = [ppm_log states.ppm]; f_log = [f_log; states.f]; Sf_log = [Sf_log; states.Sf']; if (test_frame_mode == 1) states = ber_counter(states, test_frame, rx_bits_buf); if states.ber_state == 1 states.verbose = 0; end end if (test_frame_mode == 6) % || (test_frame_mode == 8) states = ber_counter_packet(states, test_frame, rx_bits_buf); end else finished = 1; end if frames > max_frames finished=1; end end printf("frames: %d\n", frames); fclose(fin); if noplot == 0 printf("plotting...\n"); figure(1); clf; plot(f_log); title('Tone Freq Estimates'); figure(2); plot(f_int_resample_log','+') title('Integrator outputs for each tone'); figure(3); clf subplot(211) plot(norm_rx_timing_log) axis([1 frames -0.5 0.5]) title('norm fine timing') subplot(212) plot(states.nerr_log) title('num bit errors each frame') figure(4); clf plot(EbNodB_log); title('Eb/No estimate') figure(5); clf rx_nowave = rx(1000:length(rx)); % skip past wav header if it's a wave file subplot(211) plot(real(rx_nowave)); title('input signal to demod (1 sec)') xlabel('Time (samples)'); %axis([1 states.Fs -35000 35000]) % normalise spectrum to 0dB full scale with sine wave input subplot(212); if sample_size == "int16" max_value = 32767; end if sample_size == "uint8" max_value = 127; end RxdBFS = 20*log10(abs(fft(rx_nowave(1:states.Fs)))) - 20*log10((states.Fs/2)*max_value); plot(RxdBFS) axis([1 states.Fs/2 -80 0]) xlabel('Frequency (Hz)'); figure(6); clf plot(ppm_log) title('Sample clock (baud rate) offset in PPM'); figure(7); clf; mesh(Sf_log(1:10,:)); end if (test_frame_mode == 1) || (test_frame_mode == 6) printf("frames: %d Tbits: %d Terrs: %d BER %4.3f EbNo: %3.2f\n", frames, states.Tbits,states. Terrs, states.Terrs/states.Tbits, mean(EbNodB_log)); end % we can decode both protocols at the same time if (test_frame_mode == 4) npackets = extract_and_print_rtty_packets(states, rtty, rx_bits_log, rx_bits_sd_log) printf("Received %d packets\n", npackets); end if (test_frame_mode == 5) corr_log = extract_and_decode_binary_packets(states, binary, rx_bits_log); figure(8); clf plot(corr_log); hold on; plot([1 length(corr_log)],[binary.uw_thresh binary.uw_thresh],'g'); hold off; title('UW correlation'); end endfunction % Over the years this modem has been used for many different FSK signals ... if exist("fsk_horus_as_a_lib") == 0 run_sim(test_frame_mode=4, M=2, frames=30, EbNodB = 20); %run_sim(5, 4, 30, 100); %rx_bits = demod_file("~/Desktop/115.wav",6,0,90); %rx_bits = demod_file("~/Desktop/fsk_800xa_rx_hackrf.wav",7); %rx_bits = demod_file("~/Desktop/2fsk_100_rx_rpi_rtlsdr_002_ledger.wav",4); %rx_bits = demod_file("~/Desktop/phorus_binary_ascii.wav",4); %rx_bits = demod_file("~/Desktop/binary/horus_160102_binary_rtty_2.wav",4); %rx_bits = demod_file("~/Desktop/horus_160102_vk5ei_capture2.wav",4); %rx_bits = demod_file("~/Desktop/horus_rtty_binary.wav",4); %rx_bits = demod_file("~/Desktop/FSK_4FSK.wav",4); %rx_bits = demod_file("t.raw",5); %rx_bits = demod_file("~/Desktop/fsk_horus_10dB_1000ppm.wav",4); %rx_bits = demod_file("~/Desktop/fsk_horus_6dB_0ppm.wav",4); %rx_bits = demod_file("test.raw",1,1); %rx_bits = .rawdemod_file("/dev/ttyACM0",1); %rx_bits = demod_file("fsk_horus_rx_1200_96k.raw",1); %rx_bits = demod_file("mp.raw",4); %rx_bits = demod_file("~/Desktop/launchbox_v2_landing_8KHz_final.wav",4); %rx_bits = demod_file("~/Desktop/fsk_800xa.wav",7); %rx_bits = demod_file("~/Desktop/rs41_96k_10s.iq16",8); end codec2-1.0.1/octave/fsk_lib.m000066400000000000000000000355701412132000500157160ustar00rootroot00000000000000% fsk_lib.m % David Rowe Oct 2015 - present % % mFSK modem, started out life as RTTY demodulator for Project % Horus High Altitude Ballon (HAB) telemetry, also used for: % % FreeDV 2400A: 4FSK UHF/UHF digital voice % Wenet.......: 100 kbit/s HAB High Def image telemetry % % Handles frequency offsets, performance right on ideal, C implementation % in codec2/src 1; function states = fsk_init(Fs, Rs, M=2, P=8, nsym=50) states.M = M; states.bitspersymbol = log2(M); states.Fs = Fs; states.Rs = Rs; states.nsym = nsym; % Number of symbols processed by demodulator in each call, also % the timing estimator window Ts = states.Ts = Fs/Rs; % number of samples per symbol assert(Ts == floor(Ts), "Fs/Rs must be an integer"); N = states.N = Ts*states.nsym; % processing buffer size, nice big window for timing est bin_width_Hz = 0.1*Rs; % we want enough DFT bins to get within 10% of the tones centre Ndft = Fs/bin_width_Hz; states.Ndft = 2.^ceil(log2(Ndft)); % round to nearest power of 2 for efficent FFT states.Sf = zeros(states.Ndft,1); % current memory of dft mag samples states.tc = 0.1; % average DFT over longtime window, accurate at low Eb/No, but slow states.nbit = states.nsym*states.bitspersymbol; % number of bits per processing frame Nmem = states.Nmem = N+2*Ts; % two symbol memory in down converted signals to allow for timing adj states.f_dc = zeros(M,Nmem); states.P = P; % oversample rate out of filter assert(Ts/states.P == floor(Ts/states.P), "Ts/P must be an integer"); states.tx_tone_separation = 2*Rs; states.nin = N; % can be N +/- Ts/P samples to adjust for sample clock offsets states.verbose = 0; states.phi = zeros(1, M); % keep down converter osc phase continuous % BER stats states.ber_state = 0; states.ber_valid_thresh = 0.05; states.ber_invalid_thresh = 0.1; states.Tbits = 0; states.Terrs = 0; states.nerr_log = 0; % extra simulation parameters states.tx_real = 1; states.dA(1:M) = 1; states.df(1:M) = 0; states.f(1:M) = 0; states.norm_rx_timing = 0; states.ppm = 0; states.prev_pkt = []; % Freq. estimator limits states.fest_fmax = Fs; states.fest_fmin = 0; states.fest_min_spacing = 0.75*Rs; states.freq_est_type = 'peak'; %printf("Octave: M: %d Fs: %d Rs: %d Ts: %d nsym: %d nbit: %d N: %d Ndft: %d fmin: %d fmax: %d\n", % states.M, states.Fs, states.Rs, states.Ts, states.nsym, states.nbit, states.N, states.Ndft, states.fest_fmin, states.fest_fmax); endfunction % modulator function function tx = fsk_mod(states, tx_bits) M = states.M; Ts = states.Ts; Fs = states.Fs; ftx = states.ftx; df = states.df; % tone freq change in Hz/s dA = states.dA; % amplitude of each tone num_bits = length(tx_bits); num_symbols = num_bits/states.bitspersymbol; tx = zeros(states.Ts*num_symbols,1); tx_phase = 0; s = 1; for i=1:states.bitspersymbol:num_bits % map bits to FSK symbol (tone number) K = states.bitspersymbol; tone = tx_bits(i:i+(K-1)) * (2.^(K-1:-1:0))' + 1; tx_phase_vec = tx_phase + (1:Ts)*2*pi*ftx(tone)/Fs; tx_phase = tx_phase_vec(Ts) - floor(tx_phase_vec(Ts)/(2*pi))*2*pi; if states.tx_real tx((s-1)*Ts+1:s*Ts) = dA(tone)*2.0*cos(tx_phase_vec); else tx((s-1)*Ts+1:s*Ts) = dA(tone)*exp(j*tx_phase_vec); end s++; % freq drift ftx += df*Ts/Fs; end states.ftx = ftx; endfunction % Estimate the frequency of the FSK tones. In some applications (such % as balloon telemetry) these may not be well controlled by the % transmitter, so we have to try to estimate them. function states = est_freq(states, sf, ntones) N = states.N; Ndft = states.Ndft; Fs = states.Fs; % This assumption is OK for balloon telemetry but may not be true in % general min_tone_spacing = states.fest_min_spacing; % set some limits to search range, which will mean some manual re-tuning fmin = states.fest_fmin; fmax = states.fest_fmax; % note 0 Hz is mapped to Ndft/2+1 via fftshift st = floor(fmin*Ndft/Fs) + Ndft/2; st = max(1,st); en = floor(fmax*Ndft/Fs) + Ndft/2; en = min(Ndft,en); #printf("Fs: %f Ndft: %d fmin: %f fmax: %f st: %d en: %d\n",Fs, Ndft, fmin, fmax, st, en) % Update mag DFT --------------------------------------------- % we break up input buffer to a series of overlapping Ndft sequences numffts = floor(length(sf)/(Ndft/2)) - 1; h = hanning(Ndft); for i=1:numffts a = (i-1)*Ndft/2+1; b = a + Ndft - 1; Sf = abs(fftshift(fft(sf(a:b) .* h, Ndft))); % Smooth DFT mag spectrum, slower to respond to changes but more % accurate. Single order IIR filter is an exponentially weighted % moving average. This means the freq est window is wider than % timing est window tc = states.tc; states.Sf = (1-tc)*states.Sf + tc*Sf; end % Search for each tone method 1 - peak pick each tone location ---------------------------------- f = []; a = []; Sf = states.Sf; for m=1:ntones [tone_amp tone_index] = max(Sf(st:en)); tone_index += st - 1; f = [f (tone_index-1-Ndft/2)*Fs/Ndft]; a = [a tone_amp]; % zero out region min_tone_spacing either side of max so we can find next highest peak % closest spacing for non-coh mFSK is Rs stz = tone_index - floor((min_tone_spacing)*Ndft/Fs); stz = max(1,stz); enz = tone_index + floor((min_tone_spacing)*Ndft/Fs); enz = min(Ndft,enz); Sf(stz:enz) = 0; end states.f = sort(f); % Search for each tone method 2 - correlate with mask with non-zero entries at tone spacings ----- % Create a mask with non-zero entries at tone spacing. Might be % smarter to use the DFT of a hanning window as mask mask = zeros(1,Ndft); mask(1:3) = 1; for m=1:ntones-1 bin = round(m*states.tx_tone_separation*Ndft/Fs); mask(bin:bin+2) = 1; end mask = mask(1:bin+2); states.mask = mask; % drag mask over Sf, looking for peak in correlation b_max = st; corr_max = 0; Sf = states.Sf; corr_log = []; for b=st:en-length(mask) corr = mask * Sf(b:b+length(mask)-1); corr_log = [corr_log corr]; if corr > corr_max corr_max = corr; b_max = b; end end foff = ((b_max-1)-Ndft/2)*Fs/Ndft; if bitand(states.verbose, 0x8) % enable this to single step through frames figure(1); clf; subplot(211); plot(Sf,'b;sf;'); hold on; plot(max(Sf)*[zeros(1,b_max) mask],'g;mask;'); hold off; subplot(212); plot(corr_log); ylabel('corr against f'); printf("foff: %4.0f\n", foff); kbhit; end states.f2 = foff + (0:ntones-1)*states.tx_tone_separation; end % ------------------------------------------------------------------------------------ % Given a buffer of nin input Rs baud FSK samples, returns nsym bits. % % nin is the number of input samples required by demodulator. This is % time varying. It will nominally be N (8000), and occasionally N +/- % Ts/2 (e.g. 8080 or 7920). This is how we compensate for differences between the % remote tx sample clock and our sample clock. This function always returns % N/Ts (e.g. 50) demodulated bits. Variable number of input samples, constant number % of output bits. function [rx_bits states] = fsk_demod(states, sf) M = states.M; N = states.N; Ndft = states.Ndft; Fs = states.Fs; Rs = states.Rs; Ts = states.Ts; nsym = states.nsym; P = states.P; nin = states.nin; verbose = states.verbose; Nmem = states.Nmem; f = states.f; assert(length(sf) == nin); % down convert and filter at rate P ------------------------------ % update filter (integrator) memory by shifting in nin samples nold = Nmem-nin; % number of old samples we retain f_dc = states.f_dc; f_dc(:,1:nold) = f_dc(:,Nmem-nold+1:Nmem); % freq shift down to around DC, ensuring continuous phase from last frame, as nin may vary for m=1:M phi_vec = states.phi(m) + (1:nin)*2*pi*f(m)/Fs; f_dc(m,nold+1:Nmem) = sf .* exp(j*phi_vec)'; states.phi(m) = phi_vec(nin); states.phi(m) -= 2*pi*floor(states.phi(m)/(2*pi)); end % save filter (integrator) memory for next time states.f_dc = f_dc; % integrate over symbol period, which is effectively a LPF, removing % the -2Fc frequency image. Can also be interpreted as an ideal % integrate and dump, non-coherent demod. We run the integrator at % rate P*Rs (1/P symbol offsets) to get outputs at a range of % different fine timing offsets. We calculate integrator output % over nsym+1 symbols so we have extra samples for the fine timing % re-sampler at either end of the array. f_int = zeros(M,(nsym+1)*P); for i=1:(nsym+1)*P st = 1 + (i-1)*Ts/P; en = st+Ts-1; for m=1:M f_int(m,i) = sum(f_dc(m,st:en)); end end states.f_int = f_int; % fine timing estimation ----------------------------------------------- % Non linearity has a spectral line at Rs, with a phase % related to the fine timing offset. See: % http://www.rowetel.com/blog/?p=3573 % We have sampled the integrator output at Fs=P samples/symbol, so % lets do a single point DFT at w = 2*pi*f/Fs = 2*pi*Rs/(P*Rs) % % Note timing non-linearity derived by experiment. Not quite sure what I'm doing here..... % but it gives 0dB impl loss for 2FSK Eb/No=9dB, testmode 1: % Fs: 8000 Rs: 50 Ts: 160 nsym: 50 % frames: 200 Tbits: 9700 Terrs: 93 BER 0.010 Np = length(f_int(1,:)); w = 2*pi*(Rs)/(P*Rs); timing_nl = sum(abs(f_int(:,:)).^2); x = timing_nl * exp(-j*w*(0:Np-1))'; norm_rx_timing = angle(x)/(2*pi); rx_timing = norm_rx_timing*P; states.x = x; states.timing_nl = timing_nl; states.rx_timing = rx_timing; prev_norm_rx_timing = states.norm_rx_timing; states.norm_rx_timing = norm_rx_timing; % estimate sample clock offset in ppm % d_norm_timing is fraction of symbol period shift over nsym symbols d_norm_rx_timing = norm_rx_timing - prev_norm_rx_timing; % filter out big jumps due to nin changes if abs(d_norm_rx_timing) < 0.2 appm = 1E6*d_norm_rx_timing/nsym; states.ppm = 0.9*states.ppm + 0.1*appm; end % work out how many input samples we need on the next call. The aim % is to keep angle(x) away from the -pi/pi (+/- 0.5 fine timing % offset) discontinuity. The side effect is to track sample clock % offsets next_nin = N; if norm_rx_timing > 0.25 next_nin += Ts/4; end if norm_rx_timing < -0.25; next_nin -= Ts/4; end states.nin = next_nin; % Now we know the correct fine timing offset, Re-sample integrator % outputs using fine timing estimate and linear interpolation, then % extract the demodulated bits low_sample = floor(rx_timing); fract = rx_timing - low_sample; high_sample = ceil(rx_timing); if bitand(verbose,0x2) printf("rx_timing: %3.2f low_sample: %d high_sample: %d fract: %3.3f nin_next: %d\n", rx_timing, low_sample, high_sample, fract, next_nin); end f_int_resample = zeros(M,nsym); rx_bits = zeros(1,nsym*states.bitspersymbol); tone_max = zeros(1,nsym); rx_nse_pow = 1E-12; rx_sig_pow = 0.0; for i=1:nsym st = i*P+1; f_int_resample(:,i) = f_int(:,st+low_sample)*(1-fract) + f_int(:,st+high_sample)*fract; % Hard decision decoding, Largest amplitude tone is the winner. % Map this FSK "symbol" back to bits, depending on M [tone_max(i) tone_index] = max(f_int_resample(:,i)); st = (i-1)*states.bitspersymbol + 1; en = st + states.bitspersymbol-1; arx_bits = dec2bin(tone_index - 1, states.bitspersymbol) - '0'; rx_bits(st:en) = arx_bits; % each filter is the DFT of a chunk of spectrum. If there is no tone in the % filter it can be considered an estimate of noise in that bandwidth rx_pows = f_int_resample(:,i) .* conj(f_int_resample(:,i)); rx_sig_pow += rx_pows(tone_index); rx_nse_pow += (sum(rx_pows) - rx_pows(tone_index))/(M-1); end states.f_int_resample = f_int_resample; % Eb/No estimation (todo: this needs some work, like calibration, low Eb/No perf, work for all M) tone_max = abs(tone_max); states.EbNodB = -6 + 20*log10(1E-6+mean(tone_max)/(1E-6+std(tone_max))); % Estimators for LDPC decoder, might be a bit rough if nsym is small rx_sig_pow = rx_sig_pow/nsym; rx_nse_pow = rx_nse_pow/nsym; states.v_est = sqrt(rx_sig_pow-rx_nse_pow); states.SNRest = rx_sig_pow/rx_nse_pow; endfunction % BER counter and test frame sync logic ------------------------------------------- % We look for test_frame in rx_bits_buf, rx_bits_buf must be twice as long as test_frame function states = ber_counter(states, test_frame, rx_bits_buf) nbit = length(test_frame); assert (length(rx_bits_buf) == 2*nbit); state = states.ber_state; next_state = state; if state == 0 % try to sync up with test frame nerrs_min = nbit; for i=1:nbit error_positions = xor(rx_bits_buf(i:nbit+i-1), test_frame); nerrs = sum(error_positions); if nerrs < nerrs_min nerrs_min = nerrs; states.coarse_offset = i; end end if nerrs_min/nbit < states.ber_valid_thresh next_state = 1; end if bitand(states.verbose,0x4) printf("coarse offset: %d nerrs_min: %d next_state: %d\n", states.coarse_offset, nerrs_min, next_state); end states.nerr = nerrs_min; end if state == 1 % we're synced up, lets measure bit errors error_positions = xor(rx_bits_buf(states.coarse_offset:states.coarse_offset+nbit-1), test_frame); nerrs = sum(error_positions); if nerrs/nbit > states.ber_invalid_thresh next_state = 0; if bitand(states.verbose,0x4) printf("coarse offset: %d nerrs: %d next_state: %d\n", states.coarse_offset, nerrs, next_state); end else states.Terrs += nerrs; states.Tbits += nbit; states.nerr_log = [states.nerr_log nerrs]; end states.nerr = nerrs; end states.ber_state = next_state; endfunction % Alternative stateless BER counter that works on packets that may have gaps between them function states = ber_counter_packet(states, test_frame, rx_bits_buf) ntestframebits = states.ntestframebits; nbit = states.nbit; % look for offset with min errors nerrs_min = ntestframebits; coarse_offset = 1; for i=1:nbit error_positions = xor(rx_bits_buf(i:ntestframebits+i-1), test_frame); nerrs = sum(error_positions); %printf("i: %d nerrs: %d\n", i, nerrs); if nerrs < nerrs_min nerrs_min = nerrs; coarse_offset = i; end end % if less than threshold count errors if nerrs_min/ntestframebits < 0.05 states.Terrs += nerrs_min; states.Tbits += ntestframebits; states.nerr_log = [states.nerr_log nerrs_min]; if bitand(states.verbose, 0x4) printf("coarse_offset: %d nerrs_min: %d\n", coarse_offset, nerrs_min); end end endfunction codec2-1.0.1/octave/fsk_lib_demo.m000066400000000000000000000062411412132000500167130ustar00rootroot00000000000000% fsk_lib_demo.m % Uncoded FSK modem demo fsk_lib; % set up waveform function [states M bits_per_frame] = modem_init(Rs,Fs,df) M = 4; states = fsk_init(Fs,Rs,M,P=8,nsym=100); bits_per_frame = 512; states.tx_real = 0; % complex signal states.tx_tone_separation = 250; states.ftx = -2.5*states.tx_tone_separation + states.tx_tone_separation*(1:M); states.fest_fmin = -Fs/2; states.fest_fmax = +Fs/2; states.fest_min_spacing = Rs/2; states.df = df; states.ber_valid_thresh = 0.1; states.ber_invalid_thresh = 0.2; end % Run a complete modem (freq and timing estimators running) at a % single Eb/No point. At low Eb/No the estimators occasionally fall % over so we get complete junk, we consider that case a packet error % and exclude it from the BER estimation. function [states ber per] = modem_run_test(EbNodB = 10, num_frames=10, Fs=8000, Rs=100, df=0, plots=0) randn('state',1); rand('state',1); [states M bits_per_frame] = modem_init(Rs, Fs, df); N = states.N; if plots; states.verbose = 0x4; end EbNo = 10^(EbNodB/10); variance = states.Fs/(states.Rs*EbNo*states.bitspersymbol); nbits = bits_per_frame*num_frames; test_frame = round(rand(1,bits_per_frame)); tx_bits = []; for f=1:num_frames tx_bits = [tx_bits test_frame]; end tx = fsk_mod(states, tx_bits); noise = sqrt(variance/2)*randn(length(tx),1) + j*sqrt(variance/2)*randn(length(tx),1); rx = tx + noise; run_frames = floor(length(rx)/N)-1; st = 1; f_log = []; f_log2 = []; rx_bits = []; rx_bits2 = []; for f=1:run_frames % extract nin samples from input stream nin = states.nin; en = st + states.nin - 1; % due to nin variations it's possible to overrun buffer if en < length(rx) sf = rx(st:en); states = est_freq(states, sf, states.M); states.f = states.f2; [arx_bits states] = fsk_demod(states, sf); rx_bits = [rx_bits arx_bits]; f_log = [f_log; states.f]; st += nin; end end num_frames=floor(length(rx_bits)/bits_per_frame); log_nerrs = []; num_frames_rx = 0; for f=1:num_frames-1 st = (f-1)*bits_per_frame + 1; en = (f+1)*bits_per_frame; states = ber_counter(states, test_frame, rx_bits(st:en)); log_nerrs = [log_nerrs states.nerr]; if states.ber_state; num_frames_rx++; end end if states.Terrs printf("Fs: %d Rs: %d df % 3.2f EbNo: %4.2f ftx: %3d frx: %3d nbits: %4d nerrs: %3d ber: %4.3f\n", Fs, Rs, df, EbNodB, num_frames, num_frames_rx, states.Tbits, states.Terrs, states.Terrs/states.Tbits); ber = states.Terrs/states.Tbits; else ber = 0.5; end if plots figure(1); clf; ideal=ones(length(f_log),1)*states.ftx; plot((1:length(f_log)),ideal(:,1),'bk;ideal;') hold on; plot((1:length(f_log)),ideal(:,2:states.M),'bk'); hold off; hold on; plot(f_log(:,1), 'linewidth', 2, 'b;peak;'); plot(f_log(:,2:states.M), 'linewidth', 2, 'b'); hold off; xlabel('Time (frames)'); ylabel('Frequency (Hz)'); figure(2); clf; plot(log_nerrs); title('Errors per frame'); end per = 1 - num_frames_rx/num_frames; end [states ber per] = modem_run_test(EbNodB=6); BER_theory=0.01579; % for Eb/No = 6dB if ber < 1.5*BER_theory printf("PASS\n"); end codec2-1.0.1/octave/fsk_lib_ldpc.m000066400000000000000000000024051412132000500167070ustar00rootroot00000000000000% fsk_lib_ldpc.m % % Library of common functions used for LDPC coded 4FSK modem experiments fsk_lib; ldpc; % set up modem waveform, real signal that an pass through a SSB radio function [states M] = modem_init(Rs,Fs,df) M = 4; if Rs == 100 P=8; end if Rs == 400 P=10; end; states = fsk_init(Fs,Rs,M,P=10,nsym=100); states.tx_real = 1; states.tx_tone_separation = Rs; if Rs == 100 states.ftx = 1500 -2.5*states.tx_tone_separation + states.tx_tone_separation*(1:M); elseif Rs == 400 states.ftx = 600 + states.tx_tone_separation*(0:M-1); else disp("unknown symbol rate"); end states.fest_fmin = 500; states.fest_fmax = 2500; states.fest_min_spacing = Rs/2; states.df = df; states.ber_valid_thresh = 0.1; states.ber_invalid_thresh = 0.2; states.amp_scale = 1000; end % set up modem waveform and LPC code function [states code_param] = fsk_lib_ldpc_init (HRA, Rs, Fs, df=0, plots=0) [states M] = modem_init(Rs, Fs, df); N = states.N; if plots; states.verbose = 0x4; end Hsize=size(HRA); states.rate = (Hsize(2)-Hsize(1))/Hsize(2); code_param = ldpc_init_user(HRA, modulation='FSK', mod_order=states.M, mapping='gray'); states.coden = code_param.coded_bits_per_frame; states.codek = code_param.data_bits_per_frame; end codec2-1.0.1/octave/fsk_lib_ldpc_demo.m000066400000000000000000000144731412132000500177230ustar00rootroot00000000000000% fsk_lib_ldpc_demo.m % % LDPC coded 4FSK modem demo, demonstrating soft dec using CML library functions fsk_lib; ldpc; % set up waveform function [states M] = modem_init(Rs,Fs,df) M = 4; states = fsk_init(Fs,Rs,M,P=8,nsym=100); states.tx_real = 0; states.tx_tone_separation = 250; states.ftx = -2.5*states.tx_tone_separation + states.tx_tone_separation*(1:M); states.fest_fmin = -Fs/2; states.fest_fmax = +Fs/2; states.fest_min_spacing = Rs/2; states.df = df; states.ber_valid_thresh = 0.1; states.ber_invalid_thresh = 0.2; end % Run a complete modem (freq and timing estimators running) at a % single Eb/No point. At low Eb/No the estimators occasionally fall % over so we get complete junk, we consider that case a packet error % and exclude it from the BER estimation. function [states uber cber cper] = modem_run_test(HRA, EbNodB = 10, num_frames=10, Fs=8000, Rs=100, df=0, plots=0) rand('seed',1); randn('seed',1); [states M] = modem_init(Rs, Fs, df); N = states.N; if plots; states.verbose = 0x4; end % set up LDPC code Hsize=size(HRA); Krate = (Hsize(2)-Hsize(1))/Hsize(2); states.rate = Krate; code_param = ldpc_init_user(HRA, modulation='FSK', mod_order=states.M, mapping='gray'); states.coden = code_param.coded_bits_per_frame; states.codek = code_param.data_bits_per_frame; % set up AWGN noise EcNodB = EbNodB + 10*log10(Krate); EcNo = 10^(EcNodB/10); variance = states.Fs/(states.Rs*EcNo*states.bitspersymbol); data_bits = round(rand(1,code_param.data_bits_per_frame)); tx_bits = []; for f=1:num_frames codeword_bits = LdpcEncode(data_bits, code_param.H_rows, code_param.P_matrix); tx_bits = [tx_bits codeword_bits]; end % modulator and AWGN channel tx = fsk_mod(states, tx_bits); noise = sqrt(variance/2)*randn(length(tx),1) + j*sqrt(variance/2)*randn(length(tx),1); rx = tx + noise; % freq estimator and demod run_frames = floor(length(rx)/N)-1; st = 1; f_log = []; rx_bits = []; rx_filt = []; for f=1:run_frames % extract nin samples from input stream nin = states.nin; en = st + states.nin - 1; % due to nin variations it's possible to overrun buffer if en < length(rx) sf = rx(st:en); states = est_freq(states, sf, states.M); states.f = states.f2; [arx_bits states] = fsk_demod(states, sf); rx_bits = [rx_bits arx_bits]; rx_filt = [rx_filt abs(states.f_int_resample)]; f_log = [f_log; states.f]; st += nin; end end % count bit errors in test frames num_frames=floor(length(rx_bits)/code_param.coded_bits_per_frame); log_nerrs = []; num_frames_rx = 0; Tbits = Terrs = Tperr = Tpackets = 0; uber = cber = 0.5; cper = 1; for f=1:num_frames-1 st = (f-1)*code_param.coded_bits_per_frame + 1; en = (f+1)*code_param.coded_bits_per_frame; states = ber_counter(states, codeword_bits, rx_bits(st:en)); log_nerrs = [log_nerrs states.nerr]; if states.ber_state num_frames_rx++; end % Using sync provided by ber_counter() state machine for LDPC frame alignment if states.ber_state st_bit = (f-1)*code_param.coded_bits_per_frame + states.coarse_offset; st_symbol = (st_bit-1)/states.bitspersymbol + 1; en_symbol = st_symbol + code_param.coded_bits_per_frame/states.bitspersymbol - 1; %printf("coded_bits: %d bps: %d st_bit: %d st_symbol: %d en_symbol: %d\n", %code_param.coded_bits_per_frame, states.bitspersymbol, st_bit, st_symbol, en_symbol); % map FSK filter ouputs to LLRs, then LDPC decode (see also fsk_cml_sam.m) symL = DemodFSK(1/states.v_est*rx_filt(:,st_symbol:en_symbol), states.SNRest, 1); llr = -Somap(symL); [x_hat, PCcnt] = MpDecode(llr, code_param.H_rows, code_param.H_cols, max_iterations=100, decoder_type=0, 1, 1); Niters = sum(PCcnt~=0); detected_data = x_hat(Niters,:); Nerrs = sum(xor(data_bits, detected_data(1:code_param.data_bits_per_frame))); Terrs += Nerrs; Tbits += code_param.data_bits_per_frame; if Nerrs Tperr++; end Tpackets++; end end if states.Terrs printf("Fs: %d Rs: %d df % 3.2f EbNo: %4.2f ftx: %3d frx: %3d\n",Fs, Rs, df, EbNodB, num_frames, num_frames_rx); uber = states.Terrs/states.Tbits; cber = Terrs/Tbits; cper = Tperr/Tpackets; printf(" Uncoded: nbits: %6d nerrs: %6d ber: %4.3f\n", states.Tbits, states.Terrs, uber); printf(" Coded..: nbits: %6d nerrs: %6d ber: %4.3f\n", Tbits, Terrs, cber); printf(" Coded..: npckt: %6d perrs: %6d per: %4.3f\n", Tpackets, Tperr, cper); end if plots figure(1); clf; ideal=ones(length(f_log),1)*states.ftx; plot((1:length(f_log)),ideal(:,1),'bk;ideal;') hold on; plot((1:length(f_log)),ideal(:,2:states.M),'bk'); hold off; hold on; plot(f_log(:,1), 'linewidth', 2, 'b;peak;'); plot(f_log(:,2:states.M), 'linewidth', 2, 'b'); hold off; xlabel('Time (frames)'); ylabel('Frequency (Hz)'); figure(2); clf; plot(log_nerrs); title('Errors per frame'); end end function freq_run_curve_peak_mask(HRA, num_frames=100) EbNodB = 4:10; m4fsk_ber_theory = [0.23 0.18 0.14 0.09772 0.06156 0.03395 0.01579 0.00591 0.00168 3.39E-4]; uber_log = []; cber_log = []; cper_log = []; for ne = 1:length(EbNodB) [states uber cber cper] = modem_run_test(HRA, EbNodB(ne), num_frames); uber_log = [uber_log uber]; cber_log = [cber_log cber]; cper_log = [cper_log cper]; end figure(1); clf; EbNodB_raw = EbNodB+10*log10(states.rate) semilogy(EbNodB_raw, m4fsk_ber_theory(round(EbNodB_raw+1)), 'linewidth', 2, 'bk+-;uber theory;'); grid; hold on; semilogy(EbNodB_raw, uber_log+1E-12, 'linewidth', 2, '+-;uber;'); semilogy(EbNodB, cber_log+1E-12, 'linewidth', 2, 'r+-;cber;'); semilogy(EbNodB, cper_log+1E-12, 'linewidth', 2, 'c+-;cper;'); hold off; xlabel('Eb/No (info bits, dB)'); ylabel('BER/PER'); axis([min(EbNodB_raw) max(EbNodB) 1E-4 1]); title(sprintf("%dFSK rate %3.1f (%d,%d) Ncodewords=%d NCodewordBits=%d Fs=%d Rs=%d", states.M, states.rate, states.coden, states.codek, num_frames, states.Tbits, states.Fs, states.Rs)); print("fsk_lib_ldpc.png", "-dpng") end % Choose simulation here --------------------------------------------------- init_cml('~/cml/'); load H_256_512_4.mat; HRA=H; more off; % single point [states uber cber cper] = modem_run_test(HRA, EbNodB=8); if cber == 0 printf("PASS\n"); end % curve %freq_run_curve_peak_mask(HRA, 200) codec2-1.0.1/octave/fsk_lib_ldpc_rx.m000066400000000000000000000100741412132000500174210ustar00rootroot00000000000000% fsk_lib_ldpc_rx.m % % LDPC coded 4FSK modem rx, reads 8 kHz 16 bit short raw file of real samples and demodulates function fsk_lib_ldpc_rx(filename, Rs=100, coderate=0.5) fsk_lib_ldpc; % set up LDPC code init_cml('~/cml/'); if coderate == 0.5 load H_256_512_4.mat; elseif coderate == 0.75 load HRAa_1536_512.mat; H=HRA; else disp("unknown code rate"); end [states code_param] = fsk_lib_ldpc_init (H, Rs, Fs=8000); n = code_param.coded_bits_per_frame; k = code_param.data_bits_per_frame; % known transmitted bits for BER estimation rand('seed',1); data_bits = round(rand(1,code_param.data_bits_per_frame)); codeword_bits = LdpcEncode(data_bits, code_param.H_rows, code_param.P_matrix); frx=fopen(filename,"rb"); rx = fread(frx, Inf, "short"); fclose(frx); % freq estimator and demod run_frames = floor(length(rx)/states.N)-1; st = 1; f_log = []; rx_bits = []; rx_filt = []; SNRest_log = []; rx_timing_log = []; for f=1:run_frames % extract nin samples from input stream nin = states.nin; en = st + states.nin - 1; % due to nin variations it's possible to overrun buffer if en < length(rx) sf = rx(st:en); states = est_freq(states, sf, states.M); states.f = states.f2; [arx_bits states] = fsk_demod(states, sf); rx_bits = [rx_bits arx_bits]; rx_filt = [rx_filt abs(states.f_int_resample)]; f_log = [f_log; states.f]; SNRest_log = [SNRest_log states.SNRest]; rx_timing_log = [rx_timing_log states.norm_rx_timing]; st += nin; end end % count bit errors in test frames num_frames=floor(length(rx_bits)/code_param.coded_bits_per_frame); log_nerrs = []; num_frames_rx = 0; Tbits = Terrs = Tperr = Tpackets = 0; uber = cber = 0.5; cper = 1; for f=1:num_frames-1 st = (f-1)*code_param.coded_bits_per_frame + 1; en = (f+1)*code_param.coded_bits_per_frame; states = ber_counter(states, codeword_bits, rx_bits(st:en)); log_nerrs = [log_nerrs states.nerr]; if states.ber_state num_frames_rx++; end % Using sync provided by ber_counter() state machine for LDPC frame alignment if states.ber_state st_bit = (f-1)*code_param.coded_bits_per_frame + states.coarse_offset; st_symbol = (st_bit-1)/states.bitspersymbol + 1; en_symbol = st_symbol + code_param.coded_bits_per_frame/states.bitspersymbol - 1; % map FSK filter ouputs to LLRs, then LDPC decode (see also fsk_cml_sam.m) symL = DemodFSK(1/states.v_est*rx_filt(:,st_symbol:en_symbol), states.SNRest, 1); llr = -Somap(symL); [x_hat, PCcnt] = MpDecode(llr, code_param.H_rows, code_param.H_cols, max_iterations=100, decoder_type=0, 1, 1); Niters = sum(PCcnt~=0); detected_data = x_hat(Niters,:); Nerrs = sum(xor(data_bits, detected_data(1:code_param.data_bits_per_frame))); Terrs += Nerrs; Tbits += code_param.data_bits_per_frame; if Nerrs Tperr++; end Tpackets++; end end SNRestdB_log = 10*log10(SNRest_log); if states.Tbits printf("Fs: %d Rs: %d rate %4.2f (%d,%d) frames received: %3d SNRav: %4.2f\n", Fs, Rs, coderate, n, k, num_frames_rx, mean(SNRestdB_log)); uber = states.Terrs/states.Tbits; cber = Terrs/Tbits; cper = Tperr/Tpackets; printf(" Uncoded: nbits: %6d nerrs: %6d ber: %4.3f\n", states.Tbits, states.Terrs, uber); printf(" Coded..: nbits: %6d nerrs: %6d ber: %4.3f\n", Tbits, Terrs, cber); printf(" Coded..: npckt: %6d perrs: %6d per: %4.3f\n", Tpackets, Tperr, cper); else printf("No frames detected....\n"); end figure(1); clf; subplot(211); plot(rx); axis([1 length(rx) -32767 32767]); subplot(212); plot_specgram(rx); figure(2); clf; subplot(211); plot(f_log); axis([1 length(f_log) states.fest_fmin states.fest_fmax]); ylabel('Tone Freq (Hz)'); subplot(212); plot(rx_timing_log); axis([1 length(rx_timing_log) -0.5 0.5]); ylabel('Timing'); figure(3); clf; mx_SNRestdB = 5*ceil(max(SNRestdB_log)/5); subplot(211); plot(SNRestdB_log); axis([1 length(SNRestdB_log) 0 mx_SNRestdB]); ylabel('SNRest (dB)'); subplot(212); stem(log_nerrs); ylabel('Uncoded errors'); end codec2-1.0.1/octave/fsk_lib_ldpc_tx.m000066400000000000000000000024471412132000500174300ustar00rootroot00000000000000% fsk_lib_ldpc_tx.m % % LDPC coded 4FSK modem tx, generates a 8 kHz 16 bit short real valued sample file function fsk_lib_ldpc_tx(filename, num_frames=10, Rs=100, coderate=0.5, EbNodB=100) fsk_lib_ldpc; % set up LDPC code init_cml('~/cml/'); if coderate == 0.5 load H_256_512_4.mat; elseif coderate == 0.75 load HRAa_1536_512.mat; H=HRA; else disp("unknown code rate"); end [states code_param] = fsk_lib_ldpc_init (H, Rs, Fs=8000); n = code_param.coded_bits_per_frame; k = code_param.data_bits_per_frame; rand('seed',1); data_bits = round(rand(1,code_param.data_bits_per_frame)); tx_bits = []; for f=1:num_frames codeword_bits = LdpcEncode(data_bits, code_param.H_rows, code_param.P_matrix); tx_bits = [tx_bits codeword_bits]; end tx = fsk_mod(states, tx_bits); % set up (optional) AWGN noise EcNodB = EbNodB + 10*log10(states.rate); EcNo = 10^(EcNodB/10); variance = states.Fs/(states.Rs*EcNo*states.bitspersymbol); % note real noise noise = sqrt(variance/2)*randn(length(tx),1); rx = tx + noise; frx=fopen(filename,"wb"); fwrite(frx, states.amp_scale*rx, "short"); fclose(frx); printf("Fs: %d Rs: %d rate %4.2f (%d,%d) EbNodB: %3.1f EcNodB: %3.1f frames transmitted: %3d\n", Fs, Rs, coderate, n, k, EbNodB, EcNodB, num_frames); end codec2-1.0.1/octave/fsk_llr_plot.m000066400000000000000000000024201412132000500167630ustar00rootroot00000000000000% Plot some results from FSK LLR tests % Assume array "res" contains rows of simulation results::: % Eb Ec M Ltype Nbits Nerr BERraw % (some uncoded rows might contain -1 to indicate val is not applicable) figure(102); clf; hold on; %uncoded results sub = res(res(:,4)==-1 & res(:,3)==2, :) semilogy(sub(:,1), sub(:,7), 'k+--') sub = res(res(:,4)==-1 & res(:,3)==4, :) semilogy(sub(:,1), sub(:,7), 'k--') leg=[]; % coded results for M = [2 4 ] if M==2, lt = '-+'; else lt='-x'; end sub = res(res(:,4)==1 & res(:,3)==M, :) if length(sub)>0, semilogy(sub(:,1), sub(:,6)./sub(:,5), ['k' lt]) leg= [leg; 'Orig LLRs']; end sub = res(res(:,4)==2 & res(:,3)==M, :) if length(sub)>0, semilogy(sub(:,1), sub(:,6)./sub(:,5), ['g' lt]) leg= [leg; ' PDF LLRs']; end sub = res(res(:,4)==3 & res(:,3)==M, :) if length(sub)>0 semilogy(sub(:,1), sub(:,6)./sub(:,5), ['b' lt]) leg= [leg; ' HD LLRs']; end sub = res(res(:,4)==4 & res(:,3)==M, :) semilogy(sub(:,1), sub(:,6)./sub(:,5), ['m' lt]) leg= [leg; ' CML LLRs']; endfor ylabel('BER') xlabel('Eb/N0 (Info Bits; dB)') title('MFSK LLR test (+is 2FSK, xis 4FSK') legend(leg) legend('boxoff'); if exist('plotname'), print -dpng plotname; disp('saved'); end codec2-1.0.1/octave/fsk_llr_test.m000066400000000000000000000203771412132000500167770ustar00rootroot00000000000000% fsk_llr_test.m % % 2/4FSK simulation to develop LLR estimation algorithms for 4FSK/LDPC modems % Modified version of David's fsk_llr.m; Bill #{ TODO The 'v' param of the Ricean pdf is the signal-only amplitude: genie value=16 In practice, given varying input levels, this value needs to be estimated. A small scaling factor seems to improve 2FSK performance -- probably the 'sig' estimate can be improved. Only tested with short code -- try a longer one! Simulation should be updated to exit Eb after given Nerr reached #} ldpc; % define Rician pdf function y = rice(x,v,s) s2 = s*s; y = (x / s2) .* exp(-0.5 * (x.^2 + v.^2)/s2) .* besseli(0, x*v/s2); endfunction function plot_pdf(v,s) x=(0:0.1:2*v); y= rice(x, v, s); figure(201); hold on plot(x,y,'g'); %title('Rician pdf: signal carrier') y= rice(x, 0, s); plot(x,y,'b'); title('Rician pdf: signal and noise-only carriers') pause(0.01); endfunction % single Eb/No point simulation %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function [raw_ber rx_filt rx_bits tx_symbols demapper sig_est ] = run_single(tx_bits, M, EcNodB, plt=0) % Ec/N0 is per channel bit bps = log2(M); % bits per symbol Ts = 16; % length of each symbol in samples if length(tx_bits)==1 Nbits = tx_bits; tx_bits = randi(2,1,Nbits)-1; % make random bits endif Nbits = length(tx_bits); Nsymbols = Nbits/log2(M); tx_symbols = zeros(1,Nsymbols); mapper = bps:-1:1; % look up table demapper from symbols to bits (hard decision) demapper=zeros(M,bps); for m=1:M for b=1:bps if bitand(m-1,b) demapper(m,bps-b+1) = 1; end end end % continuous phase mFSK modulator w(1:M) = 2*pi*(1:M)/Ts; tx_phase = 0; tx = zeros(1,Ts*Nsymbols); for s=1:Nsymbols bits_for_this_symbol = tx_bits(bps*(s-1)+1:bps*s); symbol_index = bits_for_this_symbol * mapper' + 1; tx_symbols(s) = symbol_index; assert(demapper(symbol_index,:) == bits_for_this_symbol); for k=1:Ts tx_phase += w(symbol_index); tx((s-1)*Ts+k) = exp(j*tx_phase); end end % AWGN channel noise EsNodB = EcNodB + 10*log10(bps) EsNo = 10^(EsNodB/10); variance = Ts/EsNo; noise = sqrt(variance/2)*(randn(1,Nsymbols*Ts) + j*randn(1,Nsymbols*Ts)); rx = tx + noise; if plt==2, % check the Spectrum [psd,Fpsd] =pwelch(rx,128,0.5,128,Ts); figure(110); plot(Fpsd,10*log10(psd)); title('Rx Signal: PSD '); xlabel('Freq/Rs'); %figure(111);plot(unwrap(arg(tx))); pause(0.01); endif % integrate and dump demodulator rx_bits = zeros(1,Nbits); rx_filt = zeros(Nsymbols,M); rx_pows = zeros(1,M); rx_nse_pow = 0.0; rx_sig_pow =0.0; for s=1:Nsymbols arx_symb = rx((s-1)*Ts + (1:Ts)); for m=1:M r= sum(exp(-j*w(m)*(1:Ts)) .* arx_symb); rx_pows(m)= r * conj(r); rx_filt(s,m) = abs(r); end [tmp symbol_index] = max(rx_filt(s,:)); rx_sig_pow = rx_sig_pow + rx_pows(symbol_index); rx_pows(symbol_index)=[]; rx_nse_pow = rx_nse_pow + sum(rx_pows)/(M-1); rx_bits(bps*(s-1)+1:bps*s) = demapper(symbol_index,:); end % using Rxpower = v^2 + sigmal^2 rx_sig_pow = rx_sig_pow/Nsymbols; rx_nse_pow = rx_nse_pow/Nsymbols; sig_est = sqrt(rx_nse_pow/2) % for Rayleigh: 2nd raw moment = 2 .sigma^2 Kest = rx_sig_pow/(2.0*sig_est^2) -1.0 Nerrors = sum(xor(tx_bits, rx_bits)); raw_ber = Nerrors/Nbits; printf("EcNodB: %4.1f M: %2d Uncoded Nbits: %5d Nerrors: %4d (Raw) BER: %1.3f\n", ... EcNodB, M, Nbits, Nerrors, raw_ber); if plt==1, plot_hist(rx_filt,tx_symbols, M); end endfunction % Plot histograms of Rx filter outputs function plot_hist(rx_filt,tx_symbols, M) % more general version of previous fn; - plots histograms for any Tx patterns Smax = 36; X = 0:Smax-1; H = zeros(1,Smax); H2 = zeros(1,Smax); s2=0.0; for m = 1:M ind = tx_symbols==m; ind2 = tx_symbols~=m; H= H+ hist(rx_filt(ind,m),X); H2= H2+ hist(rx_filt(ind2,m),X); x=rx_filt(ind2,m); s2 =s2 + sum(x(:).^2)/length(x); end disp('noise RMS is '); sqrt(s2/4) figure(1); clf; plot(X,H); title([num2str(M) 'FSK pdf for rx=tx symbol']) figure(2); clf; plot(X,H2); title([num2str(M) 'FSK pdf for rx!=tx symbol']) pause(0.1); endfunction % 2FSK SD -> LLR mapping that we used for Wenet SSTV system function llr = sd_to_llr(sd, HD=0) % original 2FSK + HD option sd = sd / mean(abs(sd)); x = sd - sign(sd); sumsq = sum(x.^2); summ = sum(x); mn = summ/length(sd); estvar = sumsq/length(sd) - mn*mn; estEsN0 = 1/(2* estvar + 1E-3); if HD==0, llr = 4 * estEsN0 * sd; else llr = 4 * estEsN0 * sign(sd); endif endfunction % single point LDPC encoded frame simulation, usin 2FSK as a tractable starting point % Note: ~/cml/matCreateConstellation.m has some support for FSK - can it do 4FSK? %%%%%%%%%%%%%%%%%%%%%%%%% function [Nerrors raw_ber EcNodB] = run_single_ldpc(M, Ltype, Nbits,EbNodB, plt=0) disp([num2str(M) 'FSK coded test ... ']) if M==2 bps = 1; modulation = 'FSK'; mod_order=2; mapping = 'gray'; elseif M==4 bps = 2; modulation = 'FSK'; mod_order=4; mapping = 'gray'; else error('sorry - bad value of M!'); endif decoder_type = 0; max_iterations = 100; load H_256_768_22.txt Krate = 1/3; EcNodB = EbNodB + 10*log10(Krate); code_param = ldpc_init_user(H_256_768_22, modulation, mod_order, mapping); Nframes = floor(Nbits/code_param.data_bits_per_frame) Nbits = Nframes*code_param.data_bits_per_frame % Encoder data_bits = round(rand(1,code_param.data_bits_per_frame)); tx_bits = []; for f=1:Nframes; codeword_bits = LdpcEncode(data_bits, code_param.H_rows, code_param.P_matrix); tx_bits = [tx_bits codeword_bits]; end %tx_bits = zeros(1,length(tx_bits)); % modem/channel simulation [raw_ber rx_filt rx_bits tx_symbols demapper sig_est ] = run_single(tx_bits,M,EcNodB, 0 ); % Decoder Nerrors = 0; for f=1:Nframes st = (f-1)*code_param.coded_bits_per_frame/bps + 1; en = st + code_param.coded_bits_per_frame/bps - 1; if or(Ltype==1, Ltype==3) if bps==1, sd = rx_filt(st:en,1) - rx_filt(st:en,2); % OR ind = rx_filt(st:en,1) > rx_filt(st:en,2); % llr = ind'*2 -1; % this works but use SNR scaling if Ltype==3, HD=1; else, HD = 0; endif llr = sd_to_llr(sd, HD)'; endif if bps==2, if Ltype==3, llr = mfsk_hd_to_llrs(rx_filt(st:en,:), demapper); else error('Ltype =1 not provided for coded 4FSK'); endif endif endif if Ltype==2, % SDs are converted to LLRs v=16; if plt==1, plot_pdf(v, sig_est); endif llr = mfsk_sd_to_llrs(rx_filt(st:en,:), demapper, v, sig_est); endif [x_hat, PCcnt] = MpDecode(llr, code_param.H_rows, code_param.H_cols, ... max_iterations, decoder_type, 1, 1); Niters = sum(PCcnt!=0); detected_data = x_hat(Niters,:); Nerrors += sum(xor(data_bits, detected_data(1:code_param.data_bits_per_frame))); endfor ber = Nerrors/Nbits; printf("EbNodB: %4.1f Coded Nbits: %5d Nerrors: %4d BER: %1.3f\n", EbNodB, Nbits, Nerrors, ber); endfunction %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %rand('seed',1); %randn('seed',1); format short more off init_cml('~/cml/'); % store results in array "res" and plot afterwards % comment the following line if you want to retain prev sims nrun = 0; clear res; Nbits = 20000; plt=0; #{ disp(' uncoded runs') for M= [2 4] for Eb = [6:10] raw_ber = run_single(Nbits, M, Eb, plt) % 2fsk coded nrun = nrun+1; res(nrun,:) = [Eb Eb M -1 Nbits -1 raw_ber] endfor endfor #} disp(' coded runs '); M=2, for Ltype = [1 2 3] for Eb = [7: 0.5: 9] [Nerr raw_ber Ec] = run_single_ldpc(M, Ltype, Nbits, Eb, plt) nrun = nrun+1; res(nrun,:) = [Eb Ec M Ltype Nbits Nerr raw_ber] endfor endfor M=4, %v=16; for Ltype = [2 3] for Eb = [8.0 8.3 8.6 ] [Nerr raw_ber Ec] = run_single_ldpc(M, Ltype, Nbits, Eb, plt) nrun = nrun+1; res(nrun,:) = [Eb Ec M Ltype Nbits Nerr raw_ber] endfor endfor date = datestr(now) save 'mfsk_test_res.mat' res date codec2-1.0.1/octave/fsk_lock_down.m000066400000000000000000000340711412132000500171220ustar00rootroot00000000000000% fsk_lock_down.m % David Rowe April 2020 % % tests for "Lock down" waveform, low Eb/No 4FSK fsk_lib; % "Genie" (ie perfect) timing estimate, we just want to see impact on BER from frequency est errors function rx_bits = simple_fsk_demod(states, rx, f) M = states.M; Ts = states.Ts; Fs = states.Fs; N = states.nin; nsymb = states.nin/states.Ts; rx_filter = zeros(states.nin,M); rx_symbols = zeros(nsymb,M); % Down convert each tone. We can use any time index for down % conversion as it's non-coherent for m=1:M phase = exp(-j*2*pi*(1:N)'*f(m)/Fs); rx_filter(:,m) = rx .* phase; end % sum energy for each symbol for s=1:nsymb st_sym = (s-1)*Ts+1; en_sym = s*Ts; for m=1:M rx_symbols(s,m) = sum(rx_filter(st_sym:en_sym,m)); end end % map symbols back to bits rx_bits = []; for s=1:nsymb [tone_max tone_index] = max(rx_symbols(s,:)); arx_bits = dec2bin(tone_index - 1, states.bitspersymbol) - '0'; rx_bits = [rx_bits arx_bits]; end end % set up "lock down" waveform function [states M bits_per_frame] = lock_down_init(Rs,Fs,df,tx_tone_separation=250) M = 4; states = fsk_init(Fs,Rs,M,P=8,nsym=100); bits_per_frame = 512; states.tx_real = 0; % complex signal states.tx_tone_separation = tx_tone_separation; states.ftx = -2.5*states.tx_tone_separation + states.tx_tone_separation*(1:M); states.fest_fmin = -Fs/2; states.fest_fmax = +Fs/2; states.df = df; % cumulative PDF, cdf(x) probability of 0....x errors in frame cdf = binocdf(1:bits_per_frame, bits_per_frame, 0.3); % our valid frame threshold is 50% probability, so if we get this many errors % we have a 50% chance it's a valid frame nerrs_valid = find(cdf>=0.5)(1); % our invalid frame threshold is 99% probability, so very unlikley to % get this many errors nerrs_invalid = find(cdf>=0.99)(1); states.ber_valid_thresh = nerrs_valid/bits_per_frame; states.ber_invalid_thresh = nerrs_invalid/bits_per_frame; end % run a test at an Eb/No point, measure how many dud freq estimates using both algorithms function [states f_log f_log2 num_dud1 num_dud2 ber ber2] = freq_run_test(EbNodB = 10, num_frames=10, Fs=8000, Rs=100, df=0) [states M bits_per_frame] = lock_down_init(Rs,Fs,df); N = states.N; EbNo = 10^(EbNodB/10); variance = states.Fs/(states.Rs*EbNo*states.bitspersymbol); nbits = bits_per_frame*num_frames; tx_bits = round(rand(1,nbits)); tx = fsk_mod(states, tx_bits); noise = sqrt(variance/2)*randn(length(tx),1) + j*sqrt(variance/2)*randn(length(tx),1); rx = tx + noise; run_frames = floor(length(rx)/N)-1; st = 1; f_log = []; f_log2 = []; rx_bits = []; rx_bits2 = []; for f=1:run_frames % extract nin samples from input stream nin = states.nin; en = st + states.nin - 1; % due to nin variations it's possible to overrun buffer if en < length(rx) sf = rx(st:en); states = est_freq(states, sf, states.M); arx_bits = simple_fsk_demod(states, sf, states.f); rx_bits = [rx_bits arx_bits]; arx_bits = simple_fsk_demod(states, sf, states.f2); rx_bits2 = [rx_bits2 arx_bits]; f_log = [f_log; states.f]; f_log2 = [f_log2; states.f2]; st += nin; end end % ignore start up transient startup = 1; % TODO make this sensible/proportional so its scales across Rs if num_frames > startup tx_bits = tx_bits(startup*bits_per_frame:end); rx_bits = rx_bits(startup*bits_per_frame:end); rx_bits2 = rx_bits2(startup*bits_per_frame:end); end % measure BER nerrors = sum(xor(tx_bits(1:length(rx_bits)),rx_bits)); ber = nerrors/nbits; nerrors2 = sum(xor(tx_bits(1:length(rx_bits2)),rx_bits2)); ber2 = nerrors2/nbits; % Lets say that for a valid freq estimate, all four tones must be within 0.1*Rs of their tx freqeuncy num_dud1 = 0; num_dud2 = 0; for i=1:length(f_log) if sum(abs(f_log(i,:)-states.ftx) > 0.1*states.Rs) num_dud1++; end if sum(abs(f_log2(i,:)-states.ftx) > 0.1*states.Rs) num_dud2++; end end end function freq_run_single(EbNodB = 3, num_frames = 10) [states f_log f_log2 num_dud1 num_dud2 ber ber2] = freq_run_test(EbNodB, num_frames); percent_dud1 = 100*num_dud1/length(f_log); percent_dud2 = 100*num_dud2/length(f_log); printf("EbNodB: %4.2f dB tests: %3d duds1: %3d %5.2f %% duds2: %3d %5.2f %% ber1: %4.3f ber2: %4.3f\n", EbNodB, length(f_log), num_dud1, percent_dud1, num_dud2, percent_dud2, ber, ber2) figure(1); clf; ideal=ones(length(f_log),1)*states.ftx; plot((1:length(f_log)),ideal(:,1),'bk;ideal;') hold on; plot((1:length(f_log)),ideal(:,2:states.M),'bk'); hold off; hold on; plot(f_log(:,1), 'linewidth', 2, 'b;peak;'); plot(f_log(:,2:states.M), 'linewidth', 2, 'b'); plot(f_log2(:,1),'linewidth', 2, 'r;mask;'); plot(f_log2(:,2:states.M),'linewidth', 2, 'r'); hold off; xlabel('Time (frames)'); ylabel('Frequency (Hz)'); title(sprintf("EbNo = %4.2f dB", EbNodB)); print("fsk_freq_est_single.png", "-dpng") figure(2); clf; errors = (f_log - states.ftx)(:); ind = find(abs(errors) < 100); errors2 = (f_log2 - states.ftx)(:); ind2 = find(abs(errors2) < 100); if length(ind) subplot(211); hist(errors(ind),50) end if length(ind2) subplot(212); hist(errors2(ind2),50) end end % test peak and mask algorthms side by side function freq_run_curve_peak_mask EbNodB = 0:9; m4fsk_ber_theory = [0.23 0.18 0.14 0.09772 0.06156 0.03395 0.01579 0.00591 0.00168 3.39E-4]; percent_log = []; ber_log = []; for ne = 1:length(EbNodB) [states f_log f_log2 num_dud1 num_dud2 ber ber2] = freq_run_test(EbNodB(ne), 10); percent_dud1 = 100*num_dud1/length(f_log); percent_dud2 = 100*num_dud2/length(f_log); percent_log = [percent_log; [percent_dud1 percent_dud2]]; ber_log = [ber_log; [ber ber2]]; printf("EbNodB: %4.2f dB tests: %3d duds1: %3d %5.2f %% duds2: %3d %5.2f %% ber1: %4.3f ber2: %4.3f\n", EbNodB(ne), length(f_log), num_dud1, percent_dud1, num_dud2, percent_dud2, ber, ber2) end figure(1); clf; plot(EbNodB, percent_log(:,1), 'linewidth', 2, '+-;peak;'); grid; hold on; plot(EbNodB, percent_log(:,2), 'linewidth', 2, 'r+-;mask;'); hold off; xlabel('Eb/No (dB)'); ylabel('% Errors'); title(sprintf("Fs = %d Rs = %d df = %3.2f", states.Fs, states.Rs, states.df)); print("fsk_freq_est_errors.png", "-dpng") figure(2); clf; semilogy(EbNodB, m4fsk_ber_theory, 'linewidth', 2, 'bk+-;theory;'); grid; hold on; semilogy(EbNodB, ber_log(:,1), 'linewidth', 2, '+-;peak;'); semilogy(EbNodB, ber_log(:,2), 'linewidth', 2, 'r+-;mask;'); hold off; xlabel('Eb/No (dB)'); ylabel('BER'); title(sprintf("Fs = %d Rs = %d df = %3.2f", states.Fs, states.Rs, states.df)); print("fsk_freq_est_ber.png", "-dpng") end function freq_run_curve_mask(Fs,Rs) EbNodB = 0:9; m4fsk_ber_theory = [0.23 0.18 0.14 0.09772 0.06156 0.03395 0.01579 0.00591 0.00168 3.39E-4]; figure(1); clf; semilogy(EbNodB, m4fsk_ber_theory, 'linewidth', 2, 'bk+-;theory;'); grid; xlabel('Eb/No (dB)'); ylabel('BER'); title(sprintf("Mask: Fs = %d Hz Rs = %d Hz", Fs, Rs)); hold on; for df=-0.01:0.01:0.01 ber_log = []; for ne = 1:length(EbNodB) [states f_log f_log2 num_dud1 num_dud2 ber ber2] = freq_run_test(EbNodB(ne), 100, Fs, Rs, df*Rs); ber_log = [ber_log; [ber ber2]]; printf("Fs: %d Rs: %d df %3.2f EbNodB: %4.2f dB tests: %3d ber: %4.3f\n", Fs, Rs, df, EbNodB(ne), length(f_log), ber2) end semilogy(EbNodB, ber_log(:,2), 'linewidth', 2, sprintf("+-;df=% 3.2f Hz/s;",df*Rs)); end hold off; print(sprintf("fsk_freq_est_ber_%d_%d.png",Fs,Rs), "-dpng") end % Run a complete modem (freq and timing estimators running) at a % single Eb/No point. At low Eb/No the estimators occasionally fall % over so we get complete junk, we consider that case a packet error % and exclude it from the BER estimation. function [states ber per] = modem_run_test(EbNodB = 10, num_frames=10, Fs=8000, Rs=100, df=0, plots=0, spreadHz=0,tx_tone_separation=250) [states M bits_per_frame] = lock_down_init(Rs, Fs, df, tx_tone_separation); N = states.N; if plots; states.verbose = 0x4; end EbNo = 10^(EbNodB/10); variance = states.Fs/(states.Rs*EbNo*states.bitspersymbol); nbits = bits_per_frame*num_frames; test_frame = round(rand(1,bits_per_frame)); tx_bits = []; for f=1:num_frames tx_bits = [tx_bits test_frame]; end tx = fsk_mod(states, tx_bits); noise = sqrt(variance/2)*randn(length(tx),1) + j*sqrt(variance/2)*randn(length(tx),1); if spreadHz % just use phase part of doppler spread, not interested in amplitude fading spread = doppler_spread(spreadHz, Fs, round(1.1*length(tx))); spread = exp(j*arg(spread(1:length(tx)))); rx = tx.*rot90(spread) + noise; else rx = tx + noise; end run_frames = floor(length(rx)/N)-1; st = 1; f_log = []; f_log2 = []; rx_bits = []; rx_bits2 = []; for f=1:run_frames % extract nin samples from input stream nin = states.nin; en = st + states.nin - 1; % due to nin variations it's possible to overrun buffer if en < length(rx) sf = rx(st:en); states = est_freq(states, sf, states.M); states.f = states.f2; [arx_bits states] = fsk_demod(states, sf); rx_bits = [rx_bits arx_bits]; f_log = [f_log; states.f]; st += nin; end end num_frames=floor(length(rx_bits)/bits_per_frame); log_nerrs = []; num_frames_rx = 0; for f=1:num_frames-1 st = (f-1)*bits_per_frame + 1; en = (f+1)*bits_per_frame; states = ber_counter(states, test_frame, rx_bits(st:en)); log_nerrs = [log_nerrs states.nerr]; if states.ber_state; num_frames_rx++; end end if states.Terrs printf("Fs: %d Rs: %d df % 3.2f sp: %2.1f EbNo: %4.2f ftx: %3d frx: %3d nbits: %4d nerrs: %3d ber: %4.3f\n", Fs, Rs, df, spreadHz, EbNodB, num_frames, num_frames_rx, states.Tbits, states.Terrs, states.Terrs/states.Tbits); ber = states.Terrs/states.Tbits; else ber = 0.5; end if plots figure(1); clf; ideal=ones(length(f_log),1)*states.ftx; plot((1:length(f_log)),ideal(:,1),'bk;ideal;') hold on; plot((1:length(f_log)),ideal(:,2:states.M),'bk'); hold off; hold on; plot(f_log(:,1), 'linewidth', 2, 'b;peak;'); plot(f_log(:,2:states.M), 'linewidth', 2, 'b'); hold off; xlabel('Time (frames)'); ylabel('Frequency (Hz)'); figure(2); clf; plot(log_nerrs); title('Errors per frame'); end per = 1 - num_frames_rx/num_frames; end % run BER v Eb/No curves over a range of frequency rate/change function modem_run_curve(Fs, Rs, num_frames=100, dfmax=0.01) EbNodB = 0:9; m4fsk_ber_theory = [0.23 0.18 0.14 0.09772 0.06156 0.03395 0.01579 0.00591 0.00168 3.39E-4]; figure(1); clf; semilogy(EbNodB, m4fsk_ber_theory, 'linewidth', 2, 'bk+-;theory;'); grid; xlabel('Eb/No (dB)'); ylabel('BER'); title(sprintf("Mask: Fs = %d Hz Rs = %d Hz", Fs, Rs)); hold on; figure(2); clf; xlabel('Eb/No (dB)'); ylabel('PER'); title(sprintf("Mask: Fs = %d Hz Rs = %d Hz", Fs, Rs)); grid; axis([min(EbNodB) max(EbNodB) 0 1]); hold on; for df=-dfmax:dfmax:dfmax ber_log = []; per_log = []; for ne = 1:length(EbNodB) [states ber per] = modem_run_test(EbNodB(ne), num_frames, Fs, Rs, df*Rs); ber_log = [ber_log; ber]; per_log = [per_log; per]; end figure(1); semilogy(EbNodB, ber_log, 'linewidth', 2, sprintf("+-;df=% 3.2f Hz/s;",df*Rs)); figure(2); plot(EbNodB, per_log, 'linewidth', 2, sprintf("+-;df=% 3.2f Hz/s;",df*Rs)); end figure(1); hold off; print(sprintf("fsk_modem_ber_%d_%d.png",Fs,Rs), "-dpng") figure(2); hold off; print(sprintf("fsk_modem_per_%d_%d.png",Fs,Rs), "-dpng") end % run BER v Eb/No curve with some phase noise spreading the energy of the tones in frequency function modem_run_curve_spread(Fs, Rs, num_frames=100) EbNodB = 0:9; m4fsk_ber_theory = [0.23 0.18 0.14 0.09772 0.06156 0.03395 0.01579 0.00591 0.00168 3.39E-4]; figure(1); clf; semilogy(EbNodB, m4fsk_ber_theory, 'linewidth', 2, 'bk+-;theory;'); grid; xlabel('Eb/No (dB)'); ylabel('BER'); title(sprintf("Spread: Fs = %d Hz Rs = %d Hz", Fs, Rs)); hold on; figure(2); clf; xlabel('Eb/No (dB)'); ylabel('PER'); title(sprintf("Spread: Fs = %d Hz Rs = %d Hz", Fs, Rs)); grid; axis([min(EbNodB) max(EbNodB) 0 1]); hold on; spreadHz = [0.0 1 2 5]; for ns = 1:length(spreadHz) ber_log = []; per_log = []; for ne = 1:length(EbNodB) [states ber per] = modem_run_test(EbNodB(ne), num_frames, Fs, Rs, 0, 0, spreadHz(ns)); ber_log = [ber_log; ber]; per_log = [per_log; per]; end figure(1); semilogy(EbNodB, ber_log, 'linewidth', 2, sprintf("+-;spread=% 3.2f Hz;",spreadHz(ns))); figure(2); plot(EbNodB, per_log, 'linewidth', 2, sprintf("+-;spread=% 3.2f Hz;",spreadHz(ns))); end figure(1); hold off; print(sprintf("fsk_modem_ber_spread_%d_%d.png",Fs,Rs), "-dpng") figure(2); hold off; print(sprintf("fsk_modem_per_spread_%d_%d.png",Fs,Rs), "-dpng") end % study code rate versus Rs and MDS function code_rate_table packet_duration_sec = 20; k = 256; noise_figure = 1; bits_per_symbol = 2; noise_bandwidth = 3000; code_rate=[1 0.8 0.5 1/3]; raw_ber=[2E-3 0.04 0.08 0.16]; EbNodB_4fsk=[8 4.5 3.5 1.5]; printf("Code Rate | Raw BER | 4FSK Eb/No | n,k | Rs | SNR | MDS |\n"); printf("| --- | --- | --- | --- | --- | --- | --- |\n"); for i=1:length(code_rate) n = k/code_rate(i); Rb = n/packet_duration_sec; Rs = Rb/bits_per_symbol; snr = EbNodB_4fsk(i) + 10*log10(Rb/noise_bandwidth); mds = EbNodB_4fsk(i) + 10*log10(Rb) + noise_figure - 174; printf("%3.2f | %4.3f | %2.1f | %d,%d | %4.1f | %4.1f | %5.1f |\n", code_rate(i), raw_ber(i), EbNodB_4fsk(i), n, k, Rs, snr, mds); end end graphics_toolkit("gnuplot"); more off; % same results every time rand('state',1); randn('state',1); % freq estimator tests (choose one) #freq_run_single(3,10) #freq_run_curve_peak_mask #freq_run_curve_mask(8000,100) #freq_run_curve_mask(24000,25) #freq_run_curve_mask(8000,25) % complete modem tests (choose one) #modem_run_curve(24000,25,100) #modem_run_curve(8000,100,50,0.05) #modem_run_curve_spread(8000,25,50) #modem_run_curve(8000,100,20) modem_run_test(2, 20, 8000, 25, 0, 1, 0, 270); % just print a table of code rates #code_rate_table codec2-1.0.1/octave/fsk_v_afsk.m000066400000000000000000000131301412132000500164050ustar00rootroot00000000000000% fsk.m % David Rowe Nov 2014 % Ideal non-coherent FSK and AFSK-over-analog-FM simulation. Can draw % Eb/No curves or run single point simulations rand('state',1); randn('state',1); graphics_toolkit ("gnuplot"); fm; function sim_out = fsk_ber_test(sim_in) Fs = 96000; fmark = sim_in.fmark; fspace = sim_in.fspace; Rs = sim_in.Rs; Ts = Fs/Rs; emphasis = 50E-6; verbose = sim_in.verbose; nsym = sim_in.nsym; nsam = nsym*Ts; EbNodB = sim_in.EbNodB; fm = sim_in.fm; if fm fm_states.pre_emp = 0; fm_states.de_emp = 0; fm_states.Ts = Ts; fm_states.Fs = Fs; fm_states.fc = Fs/4; fm_states.fm_max = 3E3; fm_states.fd = 5E3; fm_states.output_filter = 1; fm_states = analog_fm_init(fm_states); end % simulate over a range of Eb/No values for ne = 1:length(EbNodB) Nerrs = Terrs = Tbits = 0; % randn() generates noise spread across the entire Fs bandwidth. % The power (aka variance) of this noise is N = NoFs, or No = % N/Fs. The power of each bit is C=1, so the energy of each bit % is Eb=1/Rs. We want to find N as a function of Eb/No, so: % Eb/No = (1/Rs)/(N/Fs) = Fs/(RsN) % N = Fs/(Rs(Eb/No)) aEbNodB = EbNodB(ne); EbNo = 10^(aEbNodB/10); variance = Fs/(Rs*EbNo); % Modulator ------------------------------- tx_bits = round(rand(1, nsym)); tx = zeros(1,nsam); tx_phase = 0; for i=1:nsym for k=1:Ts if tx_bits(i) == 1 tx_phase += 2*pi*fmark/Fs; else tx_phase += 2*pi*fspace/Fs; end tx_phase = tx_phase - floor(tx_phase/(2*pi))*2*pi; tx((i-1)*Ts+k) = exp(j*tx_phase); end end % Optional AFSK over FM modulator if sim_in.fm % FM mod takes real input; +/- 1 for correct deviation tx = analog_fm_mod(fm_states, real(tx)); end % Channel --------------------------------- % We use complex (single sided) channel simulation, as it's convenient % for the FM simulation. noise = sqrt(variance/2)*(randn(1,nsam) + j*randn(1,nsam)); rx = tx + noise; if verbose > 1 printf("EbNo: %f Eb: %f var No: %f EbNo (meas): %f\n", EbNo, var(tx)*Ts/Fs, var(noise)/Fs, (var(tx)*Ts/Fs)/(var(noise)/Fs)); end save fsk tx_bits rx % Optional AFSK over FM demodulator if sim_in.fm % scaling factor for convenience to match pure FSK rx_bb = 2*analog_fm_demod(fm_states, rx); else rx_bb = rx; end % Demodulator ----------------------------- % non-coherent FSK demod mark_dc = rx_bb .* exp(-j*(0:nsam-1)*2*pi*fmark/Fs); space_dc = rx_bb .* exp(-j*(0:nsam-1)*2*pi*fspace/Fs); rx_bits = zeros(1, nsym); for i=1:nsym st = (i-1)*Ts+1; en = st+Ts-1; mark_int(i) = sum(mark_dc(st:en)); space_int(i) = sum(space_dc(st:en)); rx_bits(i) = abs(mark_int(i)) > abs(space_int(i)); end if fm d = fm_states.nsym_delay; error_positions = xor(rx_bits(1+d:nsym), tx_bits(1:(nsym-d))); else error_positions = xor(rx_bits, tx_bits); end Nerrs = sum(error_positions); Terrs += Nerrs; Tbits += length(error_positions); TERvec(ne) = Terrs; BERvec(ne) = Terrs/Tbits; if verbose > 1 figure(2) clf Rx = 10*log10(abs(fft(rx))); plot(Rx(1:Fs/2)); axis([1 Fs/2 0 50]); figure(3) clf; subplot(211) plot(real(rx_bb(1:Ts*20))) subplot(212) Rx_bb = 10*log10(abs(fft(rx_bb))); plot(Rx_bb(1:3000)); axis([1 3000 0 50]); figure(4); subplot(211) stem(abs(mark_int(1:100))); subplot(212) stem(abs(space_int(1:100))); end if verbose printf("EbNo (db): %3.2f Terrs: %d BER: %3.2f \n", aEbNodB, Terrs, Terrs/Tbits); end end sim_out.TERvec = TERvec; sim_out.BERvec = BERvec; endfunction function run_fsk_curves sim_in.fmark = 1200; sim_in.fspace = 2200; sim_in.Rs = 1200; sim_in.nsym = 12000; sim_in.EbNodB = 0:2:20; sim_in.fm = 0; sim_in.verbose = 1; EbNo = 10 .^ (sim_in.EbNodB/10); fsk_theory.BERvec = 0.5*exp(-EbNo/2); % non-coherent BFSK demod fsk_sim = fsk_ber_test(sim_in); sim_in.fm = 1; fsk_fm_sim = fsk_ber_test(sim_in); % BER v Eb/No curves figure(1); clf; semilogy(sim_in.EbNodB, fsk_theory.BERvec,'r;FSK theory;') hold on; semilogy(sim_in.EbNodB, fsk_sim.BERvec,'g;FSK sim;') semilogy(sim_in.EbNodB, fsk_fm_sim.BERvec,'b;FSK over FM sim;') hold off; grid("minor"); axis([min(sim_in.EbNodB) max(sim_in.EbNodB) 1E-4 1]) legend("boxoff"); xlabel("Eb/No (dB)"); ylabel("Bit Error Rate (BER)") % BER v C/No (1 Hz noise BW and Eb=C/Rs=1/Rs) % Eb/No = (C/Rs)/(1/(N/B)) % C/N = (Eb/No)*(Rs/B) RsOnB_dB = 10*log10(sim_in.Rs/1); figure(2); clf; semilogy(sim_in.EbNodB+RsOnB_dB, fsk_theory.BERvec,'r;FSK theory;') hold on; semilogy(sim_in.EbNodB+RsOnB_dB, fsk_sim.BERvec,'g;FSK sim;') semilogy(sim_in.EbNodB+RsOnB_dB, fsk_fm_sim.BERvec,'b;FSK over FM sim;') hold off; grid("minor"); axis([min(sim_in.EbNodB+RsOnB_dB) max(sim_in.EbNodB+RsOnB_dB) 1E-4 1]) legend("boxoff"); xlabel("C/No for Rs=1200 bit/s and 1 Hz noise bandwidth (dB)"); ylabel("Bit Error Rate (BER)") end function run_fsk_single sim_in.fmark = 1000; sim_in.fspace = 2000; sim_in.Rs = 1000; sim_in.nsym = 2000; sim_in.EbNodB = 7; sim_in.fm = 0; sim_in.verbose = 1; fsk_sim = fsk_ber_test(sim_in); endfunction # choose one of these functions below run_fsk_curves #run_fsk_single codec2-1.0.1/octave/fskdemodgui.py000066400000000000000000000146741412132000500170040ustar00rootroot00000000000000#!/usr/bin/env python # # fsk_demod Statistics GUI # Accepts the stats output from fsk_demod on stdin, and plots it. # # Mark Jessop 2016-03-13 # # NOTE: This is intended to be run on a 'live' stream of samples, and hence expects # updates at about 10Hz. Anything faster will fill up the input queue and be discarded. # # Call using: # | ./fsk_demod --cu8 -s --stats=100 2 $SDR_RATE $BAUD_RATE - - 2> >(python fskdemodgui.py --wide) | # # Dependencies: # * Python (written for 2.7, only tested recently on 3+) # * numpy # * pyqtgraph # * PyQt5 (Or some Qt5 backend compatible with pyqtgraph) # # import sys, time, json, argparse from threading import Thread try: from pyqtgraph.Qt import QtGui, QtCore except ImportError: print("Could not import PyQt5 - is it installed?") sys.exit(1) try: import numpy as np except ImportError: print("Could not import numpy - is it installed?") sys.exit(1) try: import pyqtgraph as pg except ImportError: print("Could not import pyqtgraph - is it installed?") sys.exit(1) try: # Python 2 from Queue import Queue except ImportError: # Python 3 from queue import Queue parser = argparse.ArgumentParser() parser.add_argument("--wide", action="store_true", default=False, help="Alternate wide arrangement of widgets, for placement at bottom of 4:3 screen.") args = parser.parse_args() # Some settings... update_rate = 2 # Hz history_size = 100 # 10 seconds at 10Hz... history_scale = np.linspace((-1*history_size+1)/float(update_rate),0,history_size) # Input queue in_queue = Queue(1) # 1-element FIFO... win = pg.GraphicsWindow() win.setWindowTitle('FSK Demodulator Modem Statistics') # Plot objects ebno_plot = win.addPlot(title="Eb/No") ppm_plot = win.addPlot(title="Sample Clock Offset") if args.wide == False: win.nextRow() else: win.resize(1024,200) fest_plot =pg.PlotItem() # win.addPlot(title="Tone Frequency Estimation") eye_plot = win.addPlot(title="Eye Diagram") # Disable auto-ranging on eye plot and fix axes for a big speedup... spec_plot = win.addPlot(title="Spectrum") spec_plot.setYRange(0,40) spec_plot.setLabel('left','SNR (dB)') spec_plot.setLabel('bottom','FFT Bin') # Configure plot labels and scales. ebno_plot.setLabel('left','Eb/No (dB)') ebno_plot.setLabel('bottom','Time (seconds)') ebno_plot.setYRange(0,30) ppm_plot.setLabel('left','Clock Offset (ppm)') ppm_plot.setLabel('bottom','Time (seconds)') fest_plot.setLabel('left','Frequency (Hz)') fest_plot.setLabel('bottom','Time (seconds)') eye_plot.disableAutoRange() eye_plot.setYRange(0,1) eye_plot.setXRange(0,15) eye_xr = 15 # Data arrays... ebno_data = np.zeros(history_size) ppm_data = np.zeros(history_size) fest_data = np.zeros((4,history_size)) # Curve objects, so we can update them... spec_curve = spec_plot.plot([0]) ebno_curve = ebno_plot.plot(x=history_scale,y=ebno_data) ppm_curve = ppm_plot.plot(x=history_scale,y=ppm_data) fest1_curve = fest_plot.plot(x=history_scale,y=fest_data[0,:],pen='r') # f1 = Red fest2_curve = fest_plot.plot(x=history_scale,y=fest_data[1,:],pen='g') # f2 = Blue fest3_curve = fest_plot.plot(x=history_scale,y=fest_data[2,:],pen='b') # f3 = Greem fest4_curve = fest_plot.plot(x=history_scale,y=fest_data[3,:],pen='m') # f4 = Magenta # Plot update function. Reads from queue, processes and updates plots. def update_plots(): global timeout,timeout_counter,eye_plot,ebno_curve, ppm_curve, fest1_curve, fest2_curve, ebno_data, ppm_data, fest_data, in_queue, eye_xr, spec_curve try: if in_queue.empty(): return in_data = in_queue.get_nowait() in_data = json.loads(in_data) except Exception as e: sys.stderr.write(str(e)) return # Roll data arrays ebno_data[:-1] = ebno_data[1:] ppm_data[:-1] = ppm_data[1:] fest_data = np.roll(fest_data,-1,axis=1) # Try reading in the new data points from the dictionary. try: new_ebno = in_data['EbNodB'] new_ppm = in_data['ppm'] new_fest1 = in_data['f1_est'] new_fest2 = in_data['f2_est'] new_spec = in_data['samp_fft'] except Exception as e: print("ERROR reading dict: %s" % e) # Try reading in the other 2 tones. try: new_fest3 = in_data['f3_est'] new_fest4 = in_data['f4_est'] fest_data[2,-1] = new_fest3 fest_data[3,-1] = new_fest4 except: # If we can't read these tones out of the dict, fill with NaN fest_data[2,-1] = np.nan fest_data[3,-1] = np.nan # Add in new data points ebno_data[-1] = new_ebno ppm_data[-1] = new_ppm fest_data[0,-1] = new_fest1 fest_data[1,-1] = new_fest2 # Update plots spec_data_log = 20*np.log10(np.array(new_spec)+0.01) spec_curve.setData(spec_data_log) spec_plot.setYRange(spec_data_log.max()-50,spec_data_log.max()+10) ebno_curve.setData(x=history_scale,y=ebno_data) ppm_curve.setData(x=history_scale,y=ppm_data) fest1_curve.setData(x=history_scale,y=fest_data[0,:],pen='r') # f1 = Red fest2_curve.setData(x=history_scale,y=fest_data[1,:],pen='g') # f2 = Blue fest3_curve.setData(x=history_scale,y=fest_data[2,:],pen='b') # f3 = Green fest4_curve.setData(x=history_scale,y=fest_data[3,:],pen='m') # f4 = Magenta #Now try reading in and plotting the eye diagram try: eye_data = np.array(in_data['eye_diagram']) #eye_plot.disableAutoRange() eye_plot.clear() col_index = 0 for line in eye_data: eye_plot.plot(line,pen=(col_index,eye_data.shape[0])) col_index += 1 #eye_plot.autoRange() #Quick autoranging for x-axis to allow for differing P and Ts values if eye_xr != len(eye_data[0]) - 1: eye_xr = len(eye_data[0]) - 1 eye_plot.setXRange(0,len(eye_data[0])-1) except Exception as e: pass timer = pg.QtCore.QTimer() timer.timeout.connect(update_plots) timer.start(1000/update_rate) # Thread to read from stdin and push into a queue to be processed. def read_input(): global in_queue while True: in_line = sys.stdin.readline() if type(in_line) == bytes: in_line = in_line.decode() # Only push actual data into the queue... # This stops sending heaps of empty strings into the queue when fsk_demod closes. if in_line == "": time.sleep(0.1) continue if not in_queue.full(): in_queue.put_nowait(in_line) read_thread = Thread(target=read_input) read_thread.daemon = True # Set as daemon, so when all other threads die, this one gets killed too. read_thread.start() ## Start Qt event loop unless running in interactive mode or using pyside. if __name__ == '__main__': import sys if (sys.flags.interactive != 1) or not hasattr(QtCore, 'PYQT_VERSION'): try: QtGui.QApplication.instance().exec_() except KeyboardInterrupt: sys.exit(0) codec2-1.0.1/octave/gen_rn_coeffs.m000066400000000000000000000022531412132000500170720ustar00rootroot00000000000000% gen_rn_coeffs.m % David Rowe 13 april 2012 % % Generate root raised cosine (Root Nyquist) filter coefficients % thanks http://www.dsplog.com/db-install/wp-content/uploads/2008/05/raised_cosine_filter.m function coeffs = gen_rn_coeffs(alpha, T, Rs, Nsym, M) Ts = 1/Rs; n = -Nsym*Ts/2:T:Nsym*Ts/2; Nfilter = Nsym*M; Nfiltertiming = M+Nfilter+M; sincNum = sin(pi*n/Ts); % numerator of the sinc function sincDen = (pi*n/Ts); % denominator of the sinc function sincDenZero = find(abs(sincDen) < 10^-10); sincOp = sincNum./sincDen; sincOp(sincDenZero) = 1; % sin(pix/(pix) =1 for x =0 cosNum = cos(alpha*pi*n/Ts); cosDen = (1-(2*alpha*n/Ts).^2); cosDenZero = find(abs(cosDen)<10^-10); cosOp = cosNum./cosDen; cosOp(cosDenZero) = pi/4; gt_alpha5 = sincOp.*cosOp; Nfft = 4096; GF_alpha5 = fft(gt_alpha5,Nfft)/M; % sqrt causes stop band to be amplified, this hack pushes it down again for i=1:Nfft if (abs(GF_alpha5(i)) < 0.02) GF_alpha5(i) *= 0.001; endif end GF_alpha5_root = sqrt(abs(GF_alpha5)) .* exp(j*angle(GF_alpha5)); ifft_GF_alpha5_root = ifft(GF_alpha5_root); coeffs = real((ifft_GF_alpha5_root(1:Nfilter))); endfunction codec2-1.0.1/octave/gmsk.m000066400000000000000000000746611412132000500152520ustar00rootroot00000000000000% gmsk.m % David Rowe Dec 2014 % % GMSK modem implementation and simulations to test % % [X] plot eye diagram % [X] BER curves with reas match to theoretical % [X] fine timing estimator % [X] test with fine timing error by resampling % [X] phase/freq estimator % + need initial acquisition and tracking % [X] test with different freq offsets % [X] coarse timing estimator (sync up to known test frames) % [X] test with different coarse timing offsets % [ ] file read/write interface % [ ] refactor into tx/rx functions % [X] modify for 1200 (or any) bit/s operation % + ie GMSK filter coeff generation % + or just re-sampling? e.g. ratio of Fs to Rs? % [ ] way to measure input SNR to demod % + Maybe based on test tone/carrier from the other side? % + think about process ... total signal plus noise power? Increase power until S+N doubles? % [X] generate curves for baseline modem and with sync algorithms % [X] used coarse sync code to remove need for knowing delays % [X] demod level indep % + scaled OK +/- 20dB same BER % [X] effect of DC signals from SDRs % + simulated effect of general interferer at -1500Hz, at an amplitude of 4 % (12 dB above GMSK signal), it started to affect BER e.g. 0.007 to 0.009 % Line appeared about 30dB above top of GMSK signal. % [ ] effect of quantisation noise % Filter coeffs From: % https://github.com/on1arf/gmsk/blob/master/gmskmodem_codec2/API/a_dspstuff.h, % which is in turn from Jonathan G4KLX. The demod coeffs low pass filter noise global gmsk_mod_coeff = [... 6.455906007234699e-014, 1.037067381285011e-012, 1.444835156335346e-011,... 1.745786683011439e-010, 1.829471305298363e-009, 1.662729407135958e-008,... 1.310626978701910e-007, 8.959797186410516e-007, 5.312253663302771e-006,... 2.731624380156465e-005, 1.218217140199093e-004, 4.711833994209542e-004,... 1.580581180127418e-003, 4.598383433830095e-003, 1.160259430889949e-002,... 2.539022692626253e-002, 4.818807833062393e-002, 7.931844341164322e-002,... 1.132322945270602e-001, 1.401935338024111e-001, 1.505383695578516e-001,... 1.401935338024111e-001, 1.132322945270601e-001, 7.931844341164328e-002,... 4.818807833062393e-002, 2.539022692626253e-002, 1.160259430889949e-002,... 4.598383433830090e-003, 1.580581180127420e-003, 4.711833994209542e-004,... 1.218217140199093e-004, 2.731624380156465e-005, 5.312253663302753e-006,... 8.959797186410563e-007, 1.310626978701910e-007, 1.662729407135958e-008,... 1.829471305298363e-009, 1.745786683011426e-010, 1.444835156335356e-011,... 1.037067381285011e-012, 6.455906007234699e-014]; global gmsk_demod_coeff = [... -0.000153959924563, 0.000000000000000, 0.000167227768379, 0.000341615513437,... 0.000513334449696, 0.000667493753523, 0.000783901543032, 0.000838293462576,... 0.000805143268199, 0.000661865814384, 0.000393913058926, -0.000000000000000,... -0.000503471198655, -0.001079755887508, -0.001671728086040, -0.002205032425392,... -0.002594597675000, -0.002754194565297, -0.002608210441859, -0.002104352817854,... -0.001225654870420, 0.000000000000000, 0.001494548041184, 0.003130012785731,... 0.004735238379172, 0.006109242742194, 0.007040527007323, 0.007330850462455,... 0.006821247169795, 0.005417521811131, 0.003112202160626, -0.000000000000000,... -0.003715739376345, -0.007727358782391, -0.011638713107503, -0.014992029537478,... -0.017304097563429, -0.018108937286588, -0.017003180218569, -0.013689829477969,... -0.008015928769710, 0.000000000000000, 0.010154104792614, 0.022059114281395,... 0.035162729807337, 0.048781621388364, 0.062148583345584, 0.074469032280094,... 0.084982001723750, 0.093020219991183, 0.098063819576269, 0.099782731268437,... 0.098063819576269, 0.093020219991183, 0.084982001723750, 0.074469032280094,... 0.062148583345584, 0.048781621388364, 0.035162729807337, 0.022059114281395,... 0.010154104792614, 0.000000000000000, -0.008015928769710, -0.013689829477969,... -0.017003180218569, -0.018108937286588, -0.017304097563429, -0.014992029537478,... -0.011638713107503, -0.007727358782391, -0.003715739376345, -0.000000000000000,... 0.003112202160626, 0.005417521811131, 0.006821247169795, 0.007330850462455,... 0.007040527007323, 0.006109242742194, 0.004735238379172, 0.003130012785731,... 0.001494548041184, 0.000000000000000, -0.001225654870420, -0.002104352817854,... -0.002608210441859, -0.002754194565297, -0.002594597675000, -0.002205032425392,... -0.001671728086040, -0.001079755887508, -0.000503471198655, -0.000000000000000,... 0.000393913058926, 0.000661865814384, 0.000805143268199, 0.000838293462576,... 0.000783901543032, 0.000667493753523, 0.000513334449696, 0.000341615513437,... 0.000167227768379, 0.000000000000000, -0.000153959924563]; rand('state',1); randn('state',1); graphics_toolkit ("gnuplot"); fm; close all; % % Functions that implement the GMSK modem ------------------------------------------------------ % function gmsk_states = gmsk_init(gmsk_states, Rs) % general verbose = gmsk_states.verbose; gmsk_states.Fs = 48000; gmsk_states.Rs = Rs; M = gmsk_states.M = gmsk_states.Fs/gmsk_states.Rs; global gmsk_mod_coeff; global gmsk_demod_coeff; gmsk_states.mod_coeff = (Rs/4800)*resample(gmsk_mod_coeff, 4800, Rs); if verbose > 1 figure; plot(gmsk_mod_coeff,'r;original 4800;') hold on; plot(gmsk_states.mod_coeff,'g;interpolated;') hold off; title('GMSK pulse shaping filter') end % set up FM modulator fm_states.Fs = gmsk_states.Fs; fm_states.fc = 0; fm_max = fm_states.fm_max = Rs/2; fd = fm_states.fd = Rs/4; fm_states.Ts = gmsk_states.M; fm_states.pre_emp = fm_states.de_emp = 0; fm_states.output_filter = 1; gmsk_states.fm_states = analog_fm_init(fm_states); endfunction function [tx tx_filt tx_symbols] = gmsk_mod(gmsk_states, tx_bits) M = gmsk_states.M; nsym = length(tx_bits); nsam = nsym*M; verbose = gmsk_states.verbose; % NRZ sequence of symbols tx_symbols = zeros(1,nsam); for i=1:nsym tx_symbols(1+(i-1)*M:i*M) = -1 + 2*tx_bits(i); end tx_filt = filter(gmsk_states.mod_coeff, 1, tx_symbols); if verbose > 1 figure; clf plot(tx_filt(1:M*10)) title('tx signal after filtering, before FM mod') end tx = analog_fm_mod(gmsk_states.fm_states, tx_filt); endfunction function [rx_bits rx_int rx_filt] = gmsk_demod(gmsk_states, rx) M = gmsk_states.M; Rs = gmsk_states.Rs; Fs = gmsk_states.Fs; nsam = length(rx); nsym = floor(nsam/M); global gmsk_demod_coeff; wd = 2*pi*gmsk_states.fm_states.fd/gmsk_states.Fs; timing_angle_log = zeros(1,length(rx)); rx_int = zeros(1,length(rx)); if gmsk_states.coherent_demod % See IEEE Trans on Comms, Muroyta et al, 1981, "GSM Modulation % for Digital Radio Telephony" Fig 8: % matched filter rx_filt = filter(gmsk_states.mod_coeff, 1, rx); % Property of MSK that re and im arms are sequences of 2T % long symbols, can be demodulated like QPSK with matched filter % and integrate and dump. % integrate energy in symbols 2T long in re and im arms % note this could be combined with matched filter rx_int = conv(rx_filt,ones(1,2*M)); % phase and fine frequency tracking and correction ------------------------ if gmsk_states.phase_track % DCO design from "Introduction To Phase-Lock Loop System Modeling", Wen Li % http://www.ece.ualberta.ca/~ee401/parts/data/PLLIntro.pdf eta = 0.707; wn = 2*pi*10*(Rs/4800); % (Rs/4800) -> found reducing the BW benifical with falling Rs Ts = 1/Fs; g1 = 1 - exp(-2*eta*wn*Ts); g2 = 1 + exp(-2*eta*wn*Ts) - 2*exp(-eta*wn*Ts)*cos(wn*Ts*sqrt(1-eta*eta)); Gpd = 2/pi; Gvco = 1; G1 = g1/(Gpd*Gvco); G2 = g2/(Gpd*Gvco); %printf("g1: %e g2: %e G1: %e G2: %e\n", g1, g2, G1, G2); filt_prev = dco = lower = ph_err_filt = ph_err = 0; dco_log = filt_log = zeros(1,nsam); % w is the ref sine wave at the timing clock frequency % tw is the length of the window used to estimate timing k = 1; tw = 200*M; xr_log = []; xi_log = []; w_log = []; timing_clock_phase = 0; timing_angle = 0; timing_angle_log = zeros(1,nsam); for i=1:nsam % update sample timing estimate every tw samples if mod(i,tw) == 0 l = i - tw+1; xr = abs(real(rx_int(l:l+tw-1))); xi = abs(imag(rx_int(l:l+tw-1))); w = exp(j*(l:l+tw-1)*2*pi*(Rs/2)/Fs); X = xr * w'; timing_clock_phase = timing_angle = angle(X); k++; xr_log = [xr_log xr]; xi_log = [xi_log xi]; w_log = [w_log w]; else timing_clock_phase += (2*pi)/(2*M); end timing_angle_log(i) = timing_angle; rx_int(i) *= exp(-j*dco); ph_err = sign(real(rx_int(i))*imag(rx_int(i)))*cos(timing_clock_phase); lower = ph_err*G2 + lower; filt = ph_err*G1 + lower; dco = dco + filt; filt_log(i) = filt; dco_log(i) = dco; end figure; clf subplot(211); plot(filt_log); title('PLL filter') subplot(212); plot(dco_log/pi); title('PLL DCO phase'); %axis([1 nsam -0.5 0.5]) end % sample integrator output at correct timing instant timing_adj = timing_angle_log*2*M/(2*pi); timing_adj_uw = unwrap(timing_angle_log)*2*M/(2*pi); % Toff = floor(2*M+timing_adj); Toff = floor(timing_adj_uw+0.5); k = 1; re_syms = im_syms = zeros(1,nsym/2); for i=2*M:2*M:nsam if (i-Toff(i)+M) < nsam re_syms(k) = real(rx_int(i-Toff(i))); im_syms(k) = imag(rx_int(i-Toff(i)+M)); end %re_syms(k) = real(rx_int(i-10)); %im_syms(k) = imag(rx_int(i+M-10)); k++; end figure subplot(211) stem(re_syms) subplot(211) stem(im_syms) figure; clf subplot(211) plot(timing_adj); title('Timing est'); subplot(212) plot(Toff); title('Timing est unwrap'); % XORs/adders on the RHS of Muroyta et al Fig 8 (a) and (b). We % simulate digital logic bit stream at clock rate Rs, even though % we sample integrators at rate Rs/2. I can't explain how and why % this logic works/is required. I think it can be worked out from % comparing to MSK/OQPSK demod designs. l = length(re_syms); l2 = 2*l; re_bits = zeros(1,l2); im_bits = zeros(1,l2); clk_bits = zeros(1,l2); for i=1:l-1 re_bits(2*(i-1)+1) = re_syms(i) > 0; re_bits(2*(i-1)+2) = re_syms(i) > 0; im_bits(2*(i-1)+2) = im_syms(i) > 0; im_bits(2*(i-1)+3) = im_syms(i) > 0; clk_bits(2*(i-1)+1) = 0; clk_bits(2*(i-1)+2) = 1; end rx_bits = bitxor(bitxor(re_bits,im_bits), clk_bits); rx_bits = rx_bits(2:length(rx_bits)-1); else % non-coherent demod % filter to get rid of most of noise before FM demod, but doesnt % introduce any ISI fc = Rs/(Fs/2); bin = firls(200,[0 fc*(1-0.05) fc*(1+0.05) 1],[1 1 0.01 0.01]); rx_filt = filter(bin, 1, rx); % FM demod rx_diff = [ 1 rx_filt(2:nsam) .* conj(rx_filt(1:nsam-1))]; rx_filt = (1/wd)*atan2(imag(rx_diff),real(rx_diff)); % low pass filter, trade off betwen ISI and removing noise rx_filt = filter(gmsk_demod_coeff, 1, rx_filt); Toff = 7; rx_bits = real(rx_filt(1+Toff:M:length(rx_filt)) > 0); end endfunction % Initial frequency offset estimation. Look for line a centre % frequency, which is the strongest component when ...101010... is % used to modulate the GMSK signal. Note just searching for a single % line will get false lock on random sine waves but that's OK for a % PoC. It could be improved by checking for other lines, or % demodulating the preamble and checking for bit errors. function [freq_offset_est ratio] = gmsk_est_freq_offset(gmsk_states, rx, verbose) Fs = gmsk_states.Fs; Rs = gmsk_states.Rs; % Suggest Rs/10 symbols of preamble (100ms), this works OK at % Rs=4800 and Es/No = 6dB. The large, Fs sample FFT size is used % for convenience (the bin resolution is 1 Hz), for real time we % would decimate and use smaller FFT to save CPU and memory. ndft = Fs; f = fft(rx .* hanning(length(rx))', ndft); f = fftshift(f); start_bin = 1 + Fs/2-Rs/4; stop_bin = start_bin + Rs/2; [max_val max_bin] = max(abs(f(start_bin:stop_bin))); max_bin -= Rs/4 + 1; if verbose > 1 printf("ndft: %d start_bin: %d stop_bin: %d max_bin: %d\n", ndft, start_bin, stop_bin, max_bin); end % calc ratio of line energy to total energy. For a valid preamble % this was measured as about 0.20 to 0.25 depending on noise. sum_sq = sum(abs(f(start_bin:stop_bin)) .^ 2); ratio = sqrt(max_val*max_val/sum_sq); % map max_bin to frequency offset freq_offset_est = max_bin; if verbose > 1 printf("freq_offset_est: %f pk/rms ratio: %f \n", freq_offset_est, ratio); figure; clf subplot(211) plot(rx,'+') title('rx signal on complex plane') subplot(212) plot(-Rs/4:Rs/4, 20*log10(abs(f(start_bin:stop_bin)))); axis([-Rs/4 Rs/4 0 80]); title('spectrum of rx signal'); end endfunction % % Functions for Testing the GMSK modem -------------------------------------------------------- % function sim_out = gmsk_test(sim_in) nsym = sim_in.nsym; EbNodB = sim_in.EbNodB; verbose = sim_in.verbose; Rs = 4800; gmsk_states.verbose = verbose; gmsk_states.coherent_demod = sim_in.coherent_demod; gmsk_states.phase_track = 0; gmsk_states = gmsk_init(gmsk_states, Rs); M = gmsk_states.M; Fs = gmsk_states.Fs; Rs = gmsk_states.Rs; Bfm = gmsk_states.fm_states.Bfm; for ne = 1:length(EbNodB) aEbNodB = EbNodB(ne); EbNo = 10^(aEbNodB/10); variance = Fs/(Rs*EbNo); tx_bits = round(rand(1, nsym)); %tx_bits = ones(1, nsym); %tx_bits = zeros(1, nsym); %tx_bits(1:2:nsym) = 0; [tx tx_filt tx_symbols] = gmsk_mod(gmsk_states, tx_bits); nsam = length(tx); noise = sqrt(variance/2)*(randn(1,nsam) + j*randn(1,nsam)); rx = tx*exp(j*pi/2) + noise; [rx_bits rx_out rx_filt] = gmsk_demod(gmsk_states, rx(1:length(rx))); % search for frame location over a range Nerrs_min = nsym; Nbits_min = nsym; l = length(rx_bits); for i=1:100; Nerrs = sum(xor(rx_bits(i:l), tx_bits(1:l-i+1))); if Nerrs < Nerrs_min Nerrs_min = Nerrs; Nbits_min = l; end end TERvec(ne) = Nerrs_min; BERvec(ne) = Nerrs_min/Nbits_min; if verbose > 0 printf("EbNo dB: %3.1f Nerrs: %d BER: %f BER Theory: %f\n", aEbNodB, Nerrs_min, BERvec(ne), 0.5*erfc(sqrt(0.75*EbNo))); end if verbose > 1 if gmsk_states.coherent_demod == 0 Toff = 0; dsam = M*30; figure; clf eyesyms = 2; plot(rx_filt(dsam+1+Toff:dsam+eyesyms*M+Toff)) hold on; for i=1:10 st = dsam+1+Toff+i*eyesyms*M; en = st + eyesyms*M; plot(rx_filt(st:en)) end hold off; %axis([dsam dsam+eyesyms*M -2 2]); title('Eye Diagram'); else figure; nplot = 16; clf; subplot(211) plot(real(rx_filt(1:nplot*M))) axis([1 nplot*M -1 1]) title('Matched Filter'); subplot(212) plot(imag(rx_filt(1:nplot*M))) axis([1 nplot*M -1 1]) figure; nplot = 16; clf; subplot(211) plot(real(rx_out(1:nplot*M))/(2*M)) title('Integrator'); axis([1 nplot*M -1 1]) subplot(212) plot(imag(rx_out(1:nplot*M)/(2*M))) axis([1 nplot*M -1 1]) end figure; clf subplot(211) stem(tx_bits(1:20)) title('Tx Bits') subplot(212) stem(rx_bits(1:20)) title('Rx Bits') figure; clf subplot(211); f = fft(rx); Tx = 20*log10(abs(f)); plot(Tx) grid; title('GMSK Demodulator Input Spectrum'); axis([1 5000 0 80]) subplot(212) f = fft(tx); f = f(1:length(f)/2); cs = cumsum(abs(f).^2); plot(cs) hold on; x = 0.99; tots = x*sum(abs(f).^2); xpercent_pwr = find(cs > tots); bw = 2*xpercent_pwr(1); plot([1 Fs/2],[tots tots],'r') plot([bw/2 bw/2],[0 tots],'r') hold off; title("Cumulative Power"); grid; axis([1 5000 0 max(cs)]) printf("Bfm: %4.0fHz %3.0f%% power bandwidth %4.0fHz = %3.2f*Rb\n", Bfm, x*100, bw, bw/Rs); end end sim_out.TERvec = TERvec; sim_out.BERvec = BERvec; sim_out.Rs = gmsk_states.Rs; endfunction function run_gmsk_single sim_in.coherent_demod = 0; sim_in.nsym = 4800; sim_in.EbNodB = 10; sim_in.verbose = 2; sim_out = gmsk_test(sim_in); endfunction % Generate a bunch of BER versus Eb/No curves for various demods function run_gmsk_curves sim_in.coherent_demod = 1; sim_in.nsym = 48000; sim_in.EbNodB = 2:10; sim_in.verbose = 1; gmsk_coh = gmsk_test(sim_in); sim_in.coherent_demod = 0; gmsk_noncoh = gmsk_test(sim_in); Rs = gmsk_coh.Rs; EbNo = 10 .^ (sim_in.EbNodB/10); alpha = 0.75; % guess for BT=0.5 GMSK gmsk_theory.BERvec = 0.5*erfc(sqrt(alpha*EbNo)); % BER v Eb/No curves figure; clf; semilogy(sim_in.EbNodB, gmsk_theory.BERvec,'r;GMSK theory;') hold on; semilogy(sim_in.EbNodB, gmsk_coh.BERvec,'g;GMSK sim coherent;') semilogy(sim_in.EbNodB, gmsk_noncoh.BERvec,'b;GMSK sim non-coherent;') hold off; grid("minor"); axis([min(sim_in.EbNodB) max(sim_in.EbNodB) 1E-4 1]) legend("boxoff"); xlabel("Eb/No (dB)"); ylabel("Bit Error Rate (BER)") % BER v C/No (1 Hz noise BW and Eb=C/Rs=1/Rs) % Eb/No = (C/Rs)/(1/(N/B)) % C/N = (Eb/No)*(Rs/B) RsOnB_dB = 10*log10(Rs/1); figure; clf; semilogy(sim_in.EbNodB+RsOnB_dB, gmsk_theory.BERvec,'r;GMSK theory;') hold on; semilogy(sim_in.EbNodB+RsOnB_dB, gmsk_coh.BERvec,'g;GMSK sim coherent;') semilogy(sim_in.EbNodB+RsOnB_dB, gmsk_noncoh.BERvec,'b;GMSK sim non-coherent;') hold off; grid("minor"); axis([min(sim_in.EbNodB+RsOnB_dB) max(sim_in.EbNodB+RsOnB_dB) 1E-4 1]) legend("boxoff"); xlabel("C/No for Rs=4800 bit/s and 1 Hz noise bandwidth (dB)"); ylabel("Bit Error Rate (BER)") endfunction function [preamble_location freq_offset_est] = find_preamble(gmsk_states, M, npreamble, rx) verbose = gmsk_states.verbose; % look through rx buffer and determine if there is a valid preamble. Use steps of half the % preamble size in samples to try to bracket the pre-amble. preamble_step = npreamble*M/2; ratio = 0; freq_offset_est = 0; preamble_location = 0; ratio_log = []; for i=1:preamble_step:length(rx)-preamble_step [afreq_offset_est aratio] = gmsk_est_freq_offset(gmsk_states, rx(i:i+preamble_step-1), verbose); ratio_log = [ratio_log aratio]; if aratio > ratio preamble_location = i; ratio = aratio; freq_offset_est = afreq_offset_est; end end if verbose printf("preamble location: %2.1f seconds est f_off: %5.1f Hz ratio: %3.2f\n", preamble_location/gmsk_states.Fs, freq_offset_est, ratio); figure; plot(ratio_log); title('Preamble ratio'); end endfunction % attempt to perform "coarse sync" sync with the received frames, we % check each frame for the best coarse sync position. Brute force % approach, that would be changed for a real demod which has some % sort of unique word. Start looking for valid frames 1 frame % after start of pre-amble to give PLL time to lock function [total_errors total_bits Nerrs_log Nerrs_all_log errors_log] = coarse_sync_ber(nframes_rx, tx_frame, rx_bits) Nerrs_log = zeros(1, nframes_rx); Nerrs_all_log = zeros(1, nframes_rx); total_errors = 0; total_bits = 0; framesize = length(tx_frame); errors_log = []; for f=2:nframes_rx-1 Nerrs_min = framesize; for i=1:framesize; st = (f-1)*framesize+i; en = st+framesize-1; errors = xor(rx_bits(st:en), tx_frame); Nerrs = sum(errors); if Nerrs < Nerrs_min Nerrs_min = Nerrs; errors_min = errors; end end Nerrs_all_log(f) = Nerrs_min; if Nerrs_min/framesize < 0.1 errors_log = [errors_log errors_min]; Nerrs_log(f) = Nerrs_min; total_errors += Nerrs_min; total_bits += framesize; end end endfunction function plot_spectrum(gmsk_states, rx, preamble_location, title_str) Fs = gmsk_states.Fs; st = preamble_location + gmsk_states.npreamble*gmsk_states.M; sig = rx(st:st+Fs*0.5); h = hanning(length(sig))'; Rx=20*log10(abs(fftshift(fft(sig .* h, Fs)))); figure; plot(-Fs/2:Fs/2-1,Rx); grid("minor"); xlabel('Hz'); ylabel('dB'); topy = ceil(max(Rx)/10)*10; axis([-4000 4000 topy-50 topy+10]) title(title_str); endfunction % Give the demod a hard time: frequency, phase, time offsets, sample clock difference function run_test_channel_impairments Rs = 1200; verbose = 1; aEbNodB = 6; phase_offset = pi/2; freq_offset = -104; timing_offset = 100E3; sample_clock_offset_ppm = -500; interferer_freq = -1500; interferer_amp = 0; nsym = 4800*2; npreamble = 480; gmsk_states.npreamble = npreamble; gmsk_states.verbose = verbose; gmsk_states.coherent_demod = 1; gmsk_states.phase_track = 1; gmsk_states = gmsk_init(gmsk_states, Rs); Fs = gmsk_states.Fs; Rs = gmsk_states.Rs; M = gmsk_states.M; % A frame consists of nsym random data bits. Some experimentation % has shown they must be random-ish data (not say 11001100...) for % timing estimator to work. However initial freq offset estimation % is a lot easier with a 01010 type sequence, so we construct a % frame with a pre-amble followed by frames of random data. framesize = 480; nframes = floor(nsym/framesize); tx_frame = round(rand(1, framesize)); tx_bits = zeros(1,npreamble); tx_bits(1:2:npreamble) = 1; for i=1:nframes tx_bits = [tx_bits tx_frame]; end [tx tx_filt tx_symbols] = gmsk_mod(gmsk_states, tx_bits); tx = resample(tx, 1E6, 1E6-sample_clock_offset_ppm); tx = [zeros(1,timing_offset) tx]; nsam = length(tx); if verbose > 1 figure; subplot(211) st = timing_offset; en = st+M*10; plot(real(tx(st:en))) title('Real part of tx'); subplot(212) plot(imag(tx(st:en))) title('Imag part of tx'); end EbNo = 10^(aEbNodB/10); variance = Fs/(Rs*EbNo); noise = sqrt(variance/2)*(randn(1,nsam) + j*randn(1,nsam)); w = (0:nsam-1)*2*pi*freq_offset/Fs + phase_offset; interferer = interferer_amp*exp(j*interferer_freq*(2*pi/Fs)*(0:nsam-1)); rx = sqrt(2)*tx.*exp(j*w) + noise + interferer; % optional dump to file if 1 fc = 1500; gain = 10000; wc = 2*pi*fc/Fs; w1 = exp(j*wc*(1:nsam)); rx1 = gain*real(rx .* w1); fout = fopen("rx_6dB.raw","wb"); fwrite(fout, rx1, "short"); fclose(fout); end rx = rx1 .* conj(w1); [preamble_location freq_offset_est] = find_preamble(gmsk_states, M, npreamble, rx); w_est = (0:nsam-1)*2*pi*freq_offset_est/Fs; rx = rx.*exp(-j*w_est); plot_spectrum(gmsk_states, rx, preamble_location, "GMSK rx just after preamble"); % printf("ntx: %d nrx: %d ntx_bits: %d\n", length(tx), length(rx), length(tx_bits)); [rx_bits rx_out rx_filt] = gmsk_demod(gmsk_states, rx(preamble_location+framesize:nsam)); nframes_rx = length(rx_bits)/framesize; % printf("ntx: %d nrx: %d ntx_bits: %d nrx_bits: %d\n", length(tx), length(rx), length(tx_bits), length(rx_bits)); [total_errors total_bits Nerrs_log Nerrs_all_log] = coarse_sync_ber(nframes_rx, tx_frame, rx_bits); ber = total_errors/total_bits; printf("Eb/No: %3.1f f_off: %4.1f ph_off: %4.3f Nframes: %d Nbits: %d Nerrs: %d BER: %f\n", aEbNodB, freq_offset, phase_offset, nframes_rx, total_bits, total_errors, ber); figure; clf subplot(211) plot(Nerrs_log,'r;errors/frame counted for BER;'); hold on; plot(Nerrs_all_log,'g;all errors/frame;'); hold off; legend("boxoff"); title('Bit Errors') subplot(212) stem(real(cumsum(Nerrs_log))) title('Cumulative Bit Errors') endfunction % Generates a Fs=48kHz raw file of 16 bit samples centred on 1500Hz, % Suitable for transmitting with a SSB tx function gmsk_tx(tx_file_name) rand('state',1); Rs = 1200; nsym = Rs*4; framesize = 480; npreamble = 480; gain = 10000; fc = 1500; gmsk_states.verbose = 0; gmsk_states.coherent_demod = 1; gmsk_states.phase_track = 1; gmsk_states = gmsk_init(gmsk_states, Rs); Fs = gmsk_states.Fs; Rs = gmsk_states.Rs; M = gmsk_states.M; % generate frame with preamble nframes = floor(nsym/framesize) tx_frame = round(rand(1, framesize)); tx_bits = zeros(1,npreamble); tx_bits(1:2:npreamble) = 1; for i=1:nframes tx_bits = [tx_bits tx_frame]; end [tx tx_filt tx_symbols] = gmsk_mod(gmsk_states, tx_bits); nsam = length(tx); wc = 2*pi*fc/Fs; w = exp(j*wc*(1:nsam)); tx = gain*real(tx .* w); figure; plot(tx(1:4000)) fout = fopen(tx_file_name,"wb"); fwrite(fout, tx, "short"); fclose(fout); endfunction % Reads a file of Fs=48kHz 16 bit samples centred on 1500Hz, and % measures the BER. function gmsk_rx(rx_file_name, err_file_name) rand('state',1); Rs = 1200; framesize = 480; npreamble = 480; fc = 1500; gmsk_states.npreamble = npreamble; gmsk_states.verbose = 1; gmsk_states.coherent_demod = 1; gmsk_states.phase_track = 1; gmsk_states = gmsk_init(gmsk_states, Rs); Fs = gmsk_states.Fs; Rs = gmsk_states.Rs; M = gmsk_states.M; tx_frame = round(rand(1, framesize)); % get real signal at fc offset and convert to baseband complex % signal fin = fopen(rx_file_name,"rb"); rx = fread(fin,"short")'; fclose(fin); rx = filter([1 -0.999],[1 -0.99],rx); nsam = length(rx); wc = 2*pi*fc/Fs; w = exp(-j*wc*(1:nsam)); rxbb = rx .* w; figure; plot(rx); % find preamble [preamble_location freq_offset_est] = find_preamble(gmsk_states, M, npreamble, rxbb); % power of signal, averaged over window % TODO: remove wave file header, scale of actual level % filter so we measure only energy in our passband % work out noise BW of filter. Use GMSK filter? [b a] = cheby2(6,40,[200 3000]/(Fs/2)); %bpwr_lp = fir2([200,4000/(Fs/2)); noise_bw = var(filter(b,a,randn(1,1E6))); rx_filt = filter(b, a, rx(1000:length(rx))); npower_window = 200*M; rx_power = conv(rx_filt.^2,ones(1,npower_window))/(npower_window); rx_power_dB = 10*log10(rx_power); figure; subplot(211) plot(rx_filt(1000:length(rx_filt))); title('GMSK Power (narrow filter)'); subplot(212) plot(rx_power_dB); axis([1 length(rx_power) max(rx_power_dB)-29 max(rx_power_dB)+1]) grid("minor") % Work out where to sample N, and S+N noise_end = preamble_location - 2*npreamble*M; noise_start = noise_end - Fs; if noise_start < 1 printf("Hmm, we really need >1 second of noise only before preamble to measure noise!\n"); else noise = mean(rx_power_dB(noise_start:noise_end)); signal_noise_start = preamble_location + 2*npreamble*M; signal_noise_end = signal_noise_start + Fs; signal_noise = mean(rx_power_dB(signal_noise_start:signal_noise_end)); hold on; plot([noise_start noise_end],[noise noise],'color','r','linewidth',5); plot([signal_noise_start signal_noise_end],[signal_noise signal_noise],'color','r','linewidth',5); % determine SNR noise_lin = 10 ^ (noise/10); signal_noise_lin = 10 ^ (signal_noise/10); signal_lin = signal_noise_lin - noise_lin; signal = 10*log10(signal_lin); snr = signal - noise; fudge_factor = 3; % 3dB for single/double sided noise adjustment? Just a guess CNo = snr + 10*log10(Fs*noise_bw) - fudge_factor; EbNo = CNo - 10*log10(Rs); EbNo_lin = 10 .^ (EbNo/10); alpha = 0.75; % guess for BT=0.5 GMSK ber_theory = 0.5*erfc(sqrt(alpha*EbNo_lin)); printf("Estimated S: %3.1f N: %3.1f Nbw: %4.0f Hz SNR: %3.1f CNo: %3.1f EbNo: %3.1f BER theory: %f\n", signal, noise, Fs*noise_bw, snr, CNo, EbNo, ber_theory); % FM signal is centred on 12 kHz and 16 kHz wide so lets also work out noise there [b a] = cheby2(6,40,[12000-8000 12000+8000]/(Fs/2)); noise_bw_fm = var(filter(b,a,randn(1,1E6))); rx_filt_fm = filter(b, a, rx(1000:length(rx))); rx_power_fm = conv(rx_filt_fm.^2,ones(1,npower_window))/(npower_window); rx_power_dB_fm = 10*log10(rx_power_fm); noise = mean(rx_power_dB_fm(noise_start:noise_end))*ones(1, length(rx_power_fm)); noise_lin = 10 .^ (noise/10); signal_lin = rx_power_fm - noise_lin; signal = 10*log10(abs(signal_lin) + 1E-6); snr = signal - noise; CNo = snr + 10*log10(Fs*noise_bw_fm) - fudge_factor; figure plot(rx_power_dB_fm,'r;signal plus noise;'); hold on; plot(CNo,'g;C/No;'); hold off; top_fm = ceil(max(CNo)/10)*10; axis([1 length(rx_power_dB_fm) 20 top_fm]) grid("minor") legend("boxoff"); title('FM C/No'); end % spectrum of a chunk of GMSK signal just after preamble plot_spectrum(gmsk_states, rx, preamble_location, "GMSK rx just after preamble"); % correct freq offset and demodulate w_est = (0:nsam-1)*2*pi*freq_offset_est/Fs; rxbb = rxbb.*exp(-j*w_est); st = preamble_location+npreamble*M; %en = min(nsam,st + 4*framesize*M); en = nsam; gmsk_statres.verbose = 2; [rx_bits rx_out rx_filt] = gmsk_demod(gmsk_states, rxbb(st:en)); nframes_rx = length(rx_bits)/framesize; % count errors [total_errors total_bits Nerrs_log Nerrs_all_log errors_log] = coarse_sync_ber(nframes_rx, tx_frame, rx_bits); ber = total_errors/total_bits; printf("Nframes: %d Nbits: %d Nerrs: %d BER: %f\n", nframes_rx, total_bits, total_errors, ber); % Optionally save a file of bit errors so we can simulate the effect on Codec 2 if nargin == 2 % To simulate effects of these errors on Codec 2: % $ ~/codec2-dev/octave$ ../build_linux/src/c2enc 1300 ../raw/hts1raw - | ../build_linux/src/insert_errors - - ssb7dbSNR.err 52 | ../build_linux/src/c2dec 1300 - - | play -t raw -r 8000 -s -2 - % Note in this example I'm using the 1300 bit/s codec, it's sig more robust that 1200 bit/s, % if we ran the GMSK modem at 1300 bit/s there would be a 10*log10(1300/1200) = 0.35dB SNR penalty fep=fopen(err_file_name,"wb"); fwrite(fep, errors_log, "short"); fclose(fep); end figure; clf subplot(211) plot(Nerrs_log,'r;errors/frame counted for BER;'); hold on; plot(Nerrs_all_log,'g;all errors/frame;'); hold on; title('Bit Errors') legend("boxoff"); subplot(212) stem(real(cumsum(Nerrs_log))) title('Cumulative Bit Errors') endfunction %run_gmsk_single %run_gmsk_curves %run_gmsk_init %run_test_channel_impairments gmsk_tx("test_gmsk.raw") gmsk_rx("test_gmsk.raw") %gmsk_rx("ssb25db.wav") %gmsk_rx("~/Desktop/ssb_fm_gmsk_high.wav") %gmsk_rx("~/Desktop/test_gmsk_28BER.raw") %gmsk_rx("~/Desktop/gmsk_rec_reverse.wav") codec2-1.0.1/octave/gp_interleaver.m000066400000000000000000000020051412132000500172760ustar00rootroot00000000000000% gp_interleaver.m % % David Rowe May 2017 % % Golden Prime Interleaver. My interprestation of "On the Analysis and % Design of Good Algebraic Interleavers", Xie et al,eq (5). 1; % Choose b for Golden Prime Interleaver. b is chosen to be the % closest integer, which is relatively prime to N, to the Golden % section of N. function b = choose_interleaver_b(Nbits) p = primes(Nbits); i = 1; while(p(i) < Nbits/1.62) i++; end b = p(i); assert(gcd(b,Nbits) == 1, "b and Nbits must be co-prime"); end function interleaved_frame = gp_interleave(frame) Nbits = length(frame); b = choose_interleaver_b(Nbits); interleaved_frame = zeros(1,Nbits); for i=1:Nbits j = mod((b*(i-1)), Nbits); interleaved_frame(j+1) = frame(i); end endfunction function frame = gp_deinterleave(interleaved_frame) Nbits = length(interleaved_frame); b = choose_interleaver_b(Nbits); frame = zeros(1,Nbits); for i=1:Nbits j = mod((b*(i-1)), Nbits); frame(i) = interleaved_frame(j+1); end endfunction codec2-1.0.1/octave/h0p25d.mat000066400000000000000000000501511412132000500156240ustar00rootroot00000000000000MATLAB 5.0 MAT-file, Platform: MACI64, Created on: Tue May 16 14:58:04 2017 IMOxK 0 DSSxc{4S\ -vR牴b138z,2:H=oq3vv'O*%ր1BL<|Ec)YQ yMꮫ xX!E&`iuEU_]4 ;NI&Gه>.Kq1 ҩR!nT\Bʷ}mT4YopajZa @EKܥI@#>;t:T<02=Uar7d0Ѥ-@3H5,,V|]K%A6CFfwW^bmG GlGwd3&\D.M&AׂW"Ea&;@) 0 ڃ*U:y"#0b PdbH0([GJim_7x^ 3X=%3H s53t%⨂} 3n`4)2Ox(@1dY^3'Ωgmn A DQ]BmIt |Wq)qQڅ%R~'ºF/:tV :zIV#?ͣԹ:;gl`PB #텱lFI7?wRq¸Ak:hn Czq&:aw21*m`kݬ`V-DA>R\cK!(o̡xe E>""8d"J́&Pަr0*tTTsX ϑۧՕ;Z%D@A DQzK{%;WDEdeS0)I[>bV5gҙgQ[FDĝ2ӧI`ᅉG{W eD61 DQ@ W٨&64.zêF3P n"lnϊUT]o\؈%=#c?ڦuW^'|@ O{BspB#@\q P? y1f 6qħt!D/ Q_8OǜT.*u]fZԍwE{!BYsyCff˷˧R^,;0)4#0oP`Q6QFR`L<9s9~5/e>JM'Q5tBJuitÕcE*↓FxT<^n|ر EQvAkJm$@bk:f]ۇkq(`wb/FbR G?*H;"yS*ȣ I+{ SW. >E4K EQM;5X}=#5J?j?Kth,#LMDk O7gJCnQ!gSt26}S0%Uj\7f⯠{Q^A DQsK ƉBI,Yt,t q%P_Z!v?ٝIkWݟė_*0uN7 E Hr΢%{4=0& QQ B޿Y] e f+7AR*y!yۜti$ ԸwOI-oz}mk#O v?SB,($J?10  6Jnc}*Z9].1:> ԓ7!n^+巚i2UGKXN=_ Oj~ vcjfI6̿Y[; /#^ SbKj¤ʔlO8ѡ J L^k >aPسaeTXɈ);k*m[VQ6_ P?@"c-;ɤ+E,:< pM&W@=0\]D#R!h29h:GNv%꒓%(vL2?8 DQ?C"Tl\JgB|ܾ(&0IƢYgY.&Ή=[0W΄ad+6R>3 L9tla$.10 fb[lcYߵ'//A8#I0L:ܫCߠuΏkfV!ہ-aj,LL}v=4HK CQ91ǧ{fFBJ[J?$amtV[%*jɭzY;ͦO:IPF14 ܇;Mp+N"[l',+A DQ 1j6nLNy߾pPl!^-1YV;TȔ kVoQakT!h`/:l<^bFg)S`X=;A DrK3&4Soa\A-sK1Vuc(MV.X#$$nG@HO|?Jb-Be;Z$ Ȱ 5"OQꭚ_b1 DQS91I`&]\V1kl,_Ѿ_ hR:#<`BX!'Pԭ3ȭaxߏIb2RԘ Tw`qE\xrNi"/E\K0EQklkDgbLÝ_i`/m vmt~L2HBnog2CuG1cA璡%uAHc:e7lWMbY=tUOA0Dvm46Pao禕aL8$C|eNQM=3^L%)8(RF'Df9tԇ#5Md`)LުNvԱ CQvAR;c)x[L9AqGA#vi,N-VIYsC꾩-_n<wqaύ-W[ x36A DQMQd6]0,{E)}K)| FcTUヅ]eCFkQT^u_3X"Znʏ'j2׹1)y`1kA Y7fFL{pz'i/U֢M_eZA_O Z \*cQ*=bI߉ݟD(RP獤Pr`UI3Qr \I {+Pܐ@x Dߕ(c^=,VRvdVh#0>B4& zFhq( $C(E+e+w4 vJ;o^!-2`dc4aFh ɔW^ZP`79<&H@^6#[ D4  &j$!G؉EoHֱU{ DQGgMIfA :e)VnjE18T㼓O@U*=!×1J|֛#zPQ h^yVo5XKJA 7ZD I68cFbRNȆf+n 0;q*$h$ކ*Tı˥WB UY^H/bW6Sx_ qGxv/3W?pP)| .ٱ EQXmƒܳԤ֐E)kc(aF >][9=qN6\3[Q .af>1"ң#]kpeXsJ6aJuG7NA DQkbk4u: C)|Iб]j&jqhmaD!c;:NRI/κ턍FH07^# K!QVuDK /E0!d q\'C:~j!AN<+j/!0 S>AG]%la:Zz>ya^צEŵgfE,΅nA CQݹf EkZvWލ~v|kFŹe e-\tظ[Wf7g)];WԧV@UXPUylel|zA 0 DvFA4b!|R2Bf\[wCT#8^[D_õ&sN*G?`Ǚ-&L1Gf7=JrN(`5 g%'3Pa[ Q C0[B#q-S EPA Ƙ\lkahyaKe5t:d$s_kS>ހZkSwwЊYMF,}F엱 Ki5 !`CSڂOqC_N6\c3;X,5-M7 r.'"Drzm2moIBd/q ^ x  0?[wi$0,F:H$ $7@!tuͱ)$/mCdp:doZEHbڏ|u6p #fA[6L/Cm"-=10DQcDcجYK Ȣ&}}#`ψtUY'ױKdU jkYPџ4[pV No%RH*D:F6hZ/Oݽ0K^ )@Z,[@ViMo aڬ:4/H[hڇA^KEu|3){;-p!V Xuՙ/;QLm(Go 0 RRKH8Z06٤XBG ?w>rFJ6cN xU|EpᜓȖ.C/;EbͤIL55RmCޣ_{V EQvcLLQQY 'K>>BkJLg2'9 4cŝJs~`t_Em i`!{ QQ7d̻˅)JHRVp3.Y=Dֱ EQt&`w`bǠƯ[`-RB|`;>B5 ~6_c)$lӬr E J +^bj\K0D/m\ւjCc`9gL0~JH A !Ch--xyE6 J]5p!j+ P?d1k[+wƏL'ȡJI,PyBoQKL\i#A#V2e`/6(G,% 3RD`K}EzwZr\ΐ쓹1MM_#Fk /V-@ic̖:G?cQ;6"7Y\Di>0~rj1  1 CpKw@7uB1C#ZHk;:߳g`>ESK#86K}!&nh,0͛}"+Jƾ|8o! =j 6(8$I DQO@PCPv2-ȑ[[ U) ڮq/~a|.FT =IξI[+T{3kWgblВ!\1R P^3 FZ;Du ~C8̽0LʓpT8TB06fE-ɢ' pFLx^vμ`S*ĶtA?⇂\3Ļu0PiP" 'C@Dt t8J uaFmk,v/?/qCeZPT용a. jj0BG=עG~O/ Y,d[f0r\9 N&9 Lgc`cf3l,w?=NR 0K0&֤RgvXx\I$$%C_ۍ©I9gSAh8C(bl158 0CCIta$HA`kSTA‚wZBJZǕ 82ScXB%C6nJix妌l#+A?kp,:ˎ c !?Y B/t60m-q 2 ʷʖ' ݊֝mUbpџ6AhgHvR(br;NLݷ> x{tz!tODUj 1 ?ݱCD@u)c4&*qSOrLkn77ư *aQT:*~cbZ&ɒuyhkCF53f OX3E9RJA DQM܊Dj1)3`ӣiL!?浥;0Df|^<$uFq]N%4y;2#c}ts+WNl5I 1d|ǸA DQzK7(@m δ;[sa׵ _r6Lĭ>{=1Ξl>wV4R!mmDvs66mbQlxo1VpA! ޳1nP(sVSl CrFg )4H̀p!(I̱#EQ|( Q;ɰS2 ٓ-ch9ٙ&KC]jҤy++Z^zhyG]_ǑmULlL‹4A5S)(DHS!ְ ɒl"cl.0PԒ#*SQ{]JT;g<H!BJ-RA0yRWZ;pޚ8ţfRѝ1sy=FIEV (D.}3?@ue^MNW. ]4۞~q|6HBd*H(avK0rK{m IͬtÞ t)_O@L|K;u̸[-/;60,m͞jO7p/4 s #ي.jU0kI0 Bؼ: c6$zMiI;XnJ9gֱ,X}y /fLEܡdruVg^pң[+uXx~z DQ?΄IܳPdĞ^ ~gaEƘunڹe4z˰]W`B)G1eGA 0.kAКd+g řс^F14r}k(6jn<;̐SP@}1 1o BHZ7][O(@@B 2P@1 1oBফ{((@@B z; @1a!`^S0((@@B 2uԱ00 G&p*K(@@B 2P @1a!`^SL]p  d!( 1 1oHফ 2P  d! 0iw8 j.x@B 2P V 1 1oHফ  d!(@@ @1a!`^SŖG(@@B 2PC1 1oBফ{((@@B 2P1 ð?q3M ̍(  d%((@)Y1 0 ?qSM u  2P@".1 1oBফ8{((@@B 9 @1a!`^S0((@@B 2]Ա00 G&p*K(@@B 2P^ @1aQ!`^S ]p  d!(1 1oHফ 2P  d! @1aQ!`^Se!(@@B Ա00 G&p*N.X@B 2P ~ @1a!`^SŢG(@@B 2P1 1oBফz{((@@B 2P1 0 ?qSM ̙ݻ6  2P@" y1 _{| ;   (@$P-1 1oBফ{((@@B z8 @1a!`^S0wQ 2P  dԱ00 G&p*'K(@@B 2P @1aQ!`^S]p  d!(1 1oHফ 2P  d! @1aQ!`^Sۺe!(@@B Ա00 G&p*.X@B 2P  @1a!`^SŮG(@@B 2Pc1 1oBফ{((@@B 2P1 0 ?qSM ̥<  2P@"  x10 pK B@"D  1 1oBফ8{((@@B 6 @1a!`^S0wQ 2P  d[1 1oHফ.8@B 2P  0iw8 j)(@@B 2P 1 1oHফ׺ 2P  d! @1a!`^S e!(@@B Ա00 G&p*.X@B 2P  @1a!`^SźG(@@B 2P31 1oBফz{((@@B 2P1 1o BHZ7]ձ  d!(@@1 0 ?Ig 3gw(   (@$PHч@Ա00 G&p*tO,e!(@@B @1a!`^S0wQ 2P  d+1 1oHফ.8@B 2P  0iw8 j)(@@B 2P 1 1oHফﺷ 2P  d! @1a!`^S;e!(@@B cԱ00 G&p*n.X@B 2P >1 1o@HZ7] 2P  d!1 1oBফ{((@@B 2P1 1o BHZ7]ս  d!(@@V10 ֿ]5c`@"D   Ա00 G&p*OtO,e!(@@Bw @1aQ!`^S0wQ 2P  d1 1oHফ^.8@B 2P  0iw8 j)(@@B 2P6 Ա00 G&p*8{`)(@@B 2P @1a!`^Ske!(@@B 31 1oBফ  d!(@@1 0 ?qSM Gv >eD (@d@1 1oBফz{((@@B 2PԱ 01鬀!HW] 2P  d!{ԡ0 g#f(@$PH@"D_}Ա00 G&p*tO,e!(@@BG @1aQ!`^S0wQ 2P  d1 1oHফ.8@B 2P  @1aQ!`^S]p  d!(Ա00 G&p*{`)(@@B 2P> @1a!`^Se!(@@B 1 1oBফ  d!(@@1 0 ?qSM wv >eD (@d@1 ð?q3M uS P2P d3 Ա 01鬀!HW]/ 2P  d!zԡ0 k#f(@$PH@"D}Ա00 G&p*tO,e!(@@B 0iw8 j  d!(@@7 1 1oHফ.8@B 2P  @1aQ!`^S]p  d!(Ա00 G&p*8{`)(@@B 2P~ @1a!`^S˺e!(@@B S1 1oBফ  d!(@@1 1o BHZ7] 2P  d!1 1o4BHZ7])(@@B 2PԱ 01鬀!HW]G 2P  d!x10o,LXZw@B 2P  41 1oHফ{((@@B z? 0iw8 j  d!(@@ 1 1oHফ~.8@B 2P  @1a!`^Sl]p  d!(Ա00 G&p*{`)(@@B 2P @1a!`^Se!(@@B #1 1oBফ  d!(@@1 1o BHZ7]׺ 2P  d!1 1oVMW.x@B 2P xcԱ 01錀 A'ҽ]p  d!(Ա 1i/M(@@B 2P>:1 1oHফx{((@@B = 0iw8 j  d!(@@w 1 1oHফ.8@B 2P  @1a!`^S,]p  d!(S1 1oBফg 2P  d!1 0 ?qSM ؽ.D (@dB1 1oBফ  d!(@@Ա 017ɞફG(@@B 2P1 1o VMW.x@B 2P aԱ 01l@ A'ꪾӽ]p  d!(ԡ 1i& jѽN 2P  d1 1oHফ{((@@B z< 0iw8 j  d!(@@ Ա00 G&p*  d!(@@ @1a!`^S]p  d!(#1 1oBফ 2P  d!1 0 ?qSM \ٽ.D (@dB1 1oBফ  d!(@@Ա 01鬀!HW].8@B 2P {ԡ 1i, !i'8uUlO(@@B 2P Ա 01l@ A'~Խ]p  d!(ԡ 1i& j}Dv 2P  d߁1 1oHফx{((@@B : @1aQ!`^SwQ 2P  dԱ00 G&p*  d!(@@ @1a!`^S]p  d!(s1 1oBফ 2P  d!1 0 ?qSM ڽ.D (@dB1 ð?q3MJ.x@J P2P ~YԱ 01鬀!HW].8@B 2P yԱ 01${{((@@B 2PwԱ 01L@ A'>ս]p  d!(ԡ 1i& }w 2P  dǁ1 1oHফ{((@@B z9 @1aQ!`^SwQ 2P  dԱ00 G&p*  d!(@@? @1a!`^Sl]p  d!(C1 1oBফ 2P  d!1 1o BHZ7].x@B 2P Ա 1iqoDH&`u_}Uݗ @B 2P  21 1oHফ{((@@B z6 @1a!`^SwQ 2P  dC1 1oBফ.8@B 2P 1 0 ?qSM pcS (@dDJ1 1oBফߺ 2P  d!Ա 017ɞફtoe!(@@B ԡ 1i$ !i'8uU 2P  d!Ա 01l@ A'OvQ 2P  dԱ 01L@ A'ꪘtoe!(@@B |Ա 01${wG(@@B 2P !08rAzzU7@B 2P  ?Ա00 G&p* 2P  d @1a!`^SwQ 2P  d1 1oBফ.8@B 2P 1 0 ?qSM pfS (@dDJ1 1oBফ 2P  d!Ա 01鬀!HW]|{((@@B 2PzԱ 01Դ${   d!(@@Ա 01L@ A'RvQ 2P  dԱ 01l@ A'toe!(@@B ԡ 1i, !i'8uUt_b:,(@@B 2P@Ա00 G&p*[ 2P  d1 1o@HZ7]  d!(@@1 1oBফ>.8@B 2P 1 1o BHZ7]p)(@@B 2PV1 1o VMW  d!(@@ybԱ 01錀 A'7G(@@B 2PԱ 01,@ A'`ֽ]p  d!(|Ա 01 @ A'[vQ 2P  dԱ 01鬀!HW]G(@@B 2Py1 1o4BHZ7]'O(@@B 2PԱ 00@޳fn7D(@fD (@g1 1oBফx{((@@B >1 0 ?qSM O(@dD h1 1oBফ.8@B 2P Ա 01鬀!HW]  d!(@@{ԡ 1i, !i'8uU}]  d!( Ա 01l@ A'CG(@@B 2PԱ 01L@ A'`Խ]p  d!(Ա 01Դ${uoe!(@@B LԱ 01鬀!HW]CG(@@B 2Px1 ð?q3M3uS P2P d c` 0codec2-1.0.1/octave/hackrf_dc.m000066400000000000000000000013761412132000500162060ustar00rootroot00000000000000% hackrf_dc.m % % David Rowe Nov 2015 % % Downconverts a HackRF IQ sample file to a lower sample rate % % To sample a -60dB signal: % $ hackrf_transfer -r df1.iq -f 439200000 -n 10000000 -l 20 -g 40play file at 10.7MHz used: % octave:25> d = hackrf_dc("df1.iq") function d = hackrf_dc(infilename) Fs1 = 10E6; % input sample rate to HackRF Fs2 = 96E3; % output sample rate fc = 700E3; % offset to shift input by, HackRF doesn't like signals in the centre s1 = load_hackrf(infilename); ls1 = length(s1); ls1 = 20*Fs1; t = 0:ls1-1; % shift down to baseband from Fc, not sure of rot90 rather than trasnpose operator ' % to avoid unwanted complex conj s2 = rot90(s1(1:ls1)) .* exp(-j*2*pi*t*fc/Fs1); d = resample(s2, Fs2, Fs1); end codec2-1.0.1/octave/hackrf_twotone.m000066400000000000000000000010021412132000500173010ustar00rootroot00000000000000% hackrf_twotone.m % % David Rowe Nov 2015 % % Generates a two tone test signal that can be played out of HackRF % % To play file at 10.7MHz used: % $ hackrf_transfer -t ../octave/twotone.iq -f 10000000 -a 0 -x 47 % % However 2nd harmonic at 21.4 was only -32dBC so not really useful for my application % in testing an ADC Fs = 8E6; fc = 2E6; f1 = fc; f2 = fc+1E3; A = 127; T = 2; N = T*Fs; t = 0:N-1; %s = A*exp(j*2*pi*t*f1/Fs) + A*exp(j*2*pi*t*f2/Fs); s = A*exp(j*2*pi*t*f2/Fs); save_hackrf("twotone.iq",s); codec2-1.0.1/octave/hackrf_uc.m000066400000000000000000000023341412132000500162220ustar00rootroot00000000000000% hackrf_uc.m % % David Rowe Nov 2015 % % Upconverts a real baseband sample file to a file suitable for input into a HackRF % % To play file at 10.7MHz used: % octave:25> hackrf_uc("fsk_10M.iq","fsk_horus_rx_1200_96k.raw") % $ hackrf_transfer -t ../octave/fsk_10M.iq -f 10000000 -a 1 -x 40 function hackrf_uc(outfilename, infilename) pkg load signal; Fs1 = 48E3; % input sample rate Fs2 = 10E6; % output sample rate to HackRF fc = 700E3-24E3; % offset to shift to, HackRF doesn't like signals in the centre A = 100; % amplitude of signal after upc-nversion (max 127) N = Fs1*20; fin = fopen(infilename,"rb"); printf("1\n"); s1 = fread(fin,"short"); printf("1\n"); fclose(fin); printf("1\n"); ls1 = length(s1); printf("1\n"); N = ls1; % single sided freq shifts, we don't want DSB printf("1\n"); s1 = hilbert(s1(1:N)); % upsample to Fs2 M = Fs2/Fs1; s2 = resample(s1(1:N),Fs2,Fs1); ls2 = length(s2); mx = max(abs(s2)); t = 0:ls2-1; printf("2\n"); % shift up to Fc, note use of rot90 rather than trasnpose operator ' % as we don't want complex conj, that would shift down in freq sout = rot90((A/mx)*s2) .* exp(j*2*pi*t*fc/Fs2); save_hackrf(outfilename,sout); end codec2-1.0.1/octave/hf_modem_curves.m000066400000000000000000000177151412132000500174530ustar00rootroot00000000000000% hf_modem_curves % David Rowe Feb 2017 % % Ideal implementations of a bunch of different HF modems, used to % generate plots for a blog post. #{ [X] ideal AWGN/HF curves [X] exp AWGN QPSK curves [X] exp AWGN DQPSK curves [X] exp HF channel model [ ] diversity [ ] COHPSK frames + would require multiple carriers + filtering or OFDM #} 1; % Gray coded QPSK modulation function function symbol = qpsk_mod(two_bits) two_bits_decimal = sum(two_bits .* [2 1]); switch(two_bits_decimal) case (0) symbol = 1; case (1) symbol = j; case (2) symbol = -j; case (3) symbol = -1; endswitch endfunction % Gray coded QPSK demodulation function function two_bits = qpsk_demod(symbol) bit0 = real(symbol*exp(j*pi/4)) < 0; bit1 = imag(symbol*exp(j*pi/4)) < 0; two_bits = [bit1 bit0]; endfunction % Rate Rs modem simulation model ------------------------------------------------------- function sim_out = ber_test(sim_in) bps = 2; % two bits/symbol for QPSK Rs = 50; % symbol rate (needed for HF model) verbose = sim_in.verbose; EbNovec = sim_in.EbNovec; hf_en = sim_in.hf_en; % user can supply number of bits per point to get good results % at high Eb/No if length(sim_in.nbits) > 1 nbitsvec = sim_in.nbits; nbitsvec += 100 - mod(nbitsvec,100); % round up to nearest 100 else nbitsvec(1:length(EbNovec)) = sim_in.nbits; end % init HF model if hf_en % some typical values dopplerSpreadHz = 1.0; path_delay = 1E-3*Rs; nsymb = max(nbitsvec)/2; spread1 = doppler_spread(dopplerSpreadHz, Rs, nsymb); spread2 = doppler_spread(dopplerSpreadHz, Rs, nsymb); hf_gain = 1.0/sqrt(var(spread1)+var(spread2)); % printf("nsymb: %d lspread1: %d\n", nsymb, length(spread1)); end for ne = 1:length(EbNovec) % work out noise power ------------- EbNodB = EbNovec(ne); EsNodB = EbNodB + 10*log10(bps); EsNo = 10^(EsNodB/10); variance = 1/EsNo; nbits = nbitsvec(ne); nsymb = nbits/bps; % modulator ------------------------ tx_bits = rand(1,nbits) > 0.5; tx_symb = []; prev_tx_symb = 1; for s=1:nsymb atx_symb = qpsk_mod(tx_bits(2*s-1:2*s)); if sim_in.dqpsk atx_symb *= prev_tx_symb; prev_tx_symb = atx_symb; end tx_symb = [tx_symb atx_symb]; end % channel --------------------------- rx_symb = tx_symb; if hf_en % simplified rate Rs simulation model that doesn't include % ISI, just freq filtering. We assume perfect phase estimation % so it's just amplitude distortion. hf_model1 = hf_model2 = zeros(1, nsymb); for s=1:nsymb hf_model1(s) = hf_gain*(spread1(s) + exp(-j*path_delay)*spread2(s)); hf_model = abs(hf_model1(s)); if sim_in.diversity % include amplitude information from another frequency in channel model w1 = 7*2*pi; hf_model2(s) = hf_gain*(spread1(s) + exp(-j*w1*path_delay)*spread2(s)); hf_model = 0.5*abs(hf_model1(s)) + 0.5*abs(hf_model2(s)); end rx_symb(s) = rx_symb(s).*hf_model; end end % variance is noise power, which is divided equally between real and % imag components of noise noise = sqrt(variance*0.5)*(randn(1,nsymb) + j*randn(1,nsymb)); rx_symb += noise; % demodulator ------------------------------------------ % demodulate rx symbols to bits rx_bits = []; prev_rx_symb = 1; for s=1:nsymb arx_symb = rx_symb(s); if sim_in.dqpsk tmp = arx_symb; arx_symb *= prev_rx_symb'; prev_rx_symb = tmp; end two_bits = qpsk_demod(arx_symb); rx_bits = [rx_bits two_bits]; end % count errors ----------------------------------------- error_pattern = xor(tx_bits, rx_bits); nerrors = sum(error_pattern); bervec(ne) = nerrors/nbits; if verbose printf("EbNodB: % 3.1f nbits: %5d nerrors: %5d ber: %4.3f\n", EbNodB, nbits, nerrors, bervec(ne)); if verbose == 2 figure(2); clf; plot(rx_symb*exp(j*pi/4),'+','markersize', 10); mx = max(abs(rx_symb)); axis([-mx mx -mx mx]); if sim_in.diversity && sim_in.hf_en figure(3); plot(1:nsymb, abs(hf_model1), 1:nsymb, abs(hf_model2), 'linewidth', 2); end end end end sim_out.bervec = bervec; endfunction % ------------------------------------------------------------- function run_single sim_in.verbose = 2; sim_in.nbits = 1000; sim_in.EbNovec = 4; sim_in.dqpsk = 0; sim_in.hf_en = 0; sim_in.diversity = 0; sim_qpsk = ber_test(sim_in); endfunction function run_curves max_nbits = 1E5; sim_in.verbose = 1; sim_in.EbNovec = 0:10; sim_in.dqpsk = 0; sim_in.hf_en = 0; sim_in.diversity = 0; % AWGN ----------------------------- ber_awgn_theory = 0.5*erfc(sqrt(10.^(sim_in.EbNovec/10))); sim_in.nbits = min(max_nbits, floor(500 ./ ber_awgn_theory)); sim_qpsk = ber_test(sim_in); sim_in.dqpsk = 1; sim_dqpsk = ber_test(sim_in); % HF ----------------------------- hf_sim_in = sim_in; hf_sim_in.dqpsk = 0; hf_sim_in.hf_en = 1; hf_sim_in.EbNovec = 0:16; EbNoLin = 10.^(hf_sim_in.EbNovec/10); ber_hf_theory = 0.5.*(1-sqrt(EbNoLin./(EbNoLin+1))); hf_sim_in.nbits = min(max_nbits, floor(500 ./ ber_hf_theory)); sim_qpsk_hf = ber_test(hf_sim_in); hf_sim_in.dqpsk = 1; sim_dqpsk_hf = ber_test(hf_sim_in); hf_sim_in.dqpsk = 0; hf_sim_in.diversity = 1; sim_qpsk_hf_div = ber_test(hf_sim_in); % Plot results -------------------- close all; figure (1, 'position', [100, 10, 600, 400]); clf; semilogy(sim_in.EbNovec, ber_awgn_theory,'r+-;QPSK AWGN theory;', 'linewidth', 2) xlabel('Eb/No (dB)') ylabel('BER') grid("minor") axis([min(sim_in.EbNovec) max(sim_in.EbNovec) 1E-3 1]) hold on; semilogy([0 4 4], [ber_awgn_theory(5) ber_awgn_theory(5) 1E-3],'k--', 'linewidth', 2); hold off; figure (2, 'position', [300, 10, 600, 400]); clf; semilogy(sim_in.EbNovec, ber_awgn_theory,'r+-;QPSK AWGN theory;','markersize', 10, 'linewidth', 2) hold on; semilogy(sim_in.EbNovec, sim_qpsk.bervec,'g+-;QPSK AWGN simulated;','markersize', 10, 'linewidth', 2) semilogy(sim_in.EbNovec, sim_dqpsk.bervec,'b+-;DQPSK AWGN simulated;','markersize', 10, 'linewidth', 2) xlabel('Eb/No (dB)') ylabel('BER') grid("minor") axis([min(sim_in.EbNovec) max(sim_in.EbNovec) 1E-3 1]) figure (3, 'position', [400, 10, 600, 400]); clf; semilogy(sim_in.EbNovec, ber_awgn_theory,'r+-;QPSK AWGN theory;','markersize', 10, 'linewidth', 2) hold on; semilogy(sim_in.EbNovec, sim_qpsk.bervec,'g+-;QPSK AWGN simulated;','markersize', 10, 'linewidth', 2) semilogy(sim_in.EbNovec, sim_dqpsk.bervec,'b+-;DQPSK AWGN simulated;','markersize', 10, 'linewidth', 2) semilogy(hf_sim_in.EbNovec, ber_hf_theory,'r+-;QPSK HF theory;','markersize', 10, 'linewidth', 2) semilogy(hf_sim_in.EbNovec, sim_dqpsk_hf.bervec,'b+-;DQPSK HF simulated;','markersize', 10, 'linewidth', 2) semilogy(hf_sim_in.EbNovec, sim_qpsk_hf.bervec,'g+-;QPSK HF simulated;','markersize', 10, 'linewidth', 2) semilogy(hf_sim_in.EbNovec, sim_qpsk_hf_div.bervec,'c+-;QPSK Diversity HF simulated;','markersize', 10, 'linewidth', 2) hold off; xlabel('Eb/No (dB)') ylabel('BER') grid("minor") axis([min(hf_sim_in.EbNovec) max(hf_sim_in.EbNovec) 1E-3 1]) endfunction % ------------------------------------------------------------- more off; rand('seed',1); randn('seed', 1); run_curves #run_single codec2-1.0.1/octave/hf_sim.m000066400000000000000000000046361412132000500155510ustar00rootroot00000000000000% hf_sim.m % David Rowe March 2014 % % Two path CCIR poor HF channel simulation, with apaologies to PathSim % Init HF channel model from stored sample files of spreading signal ---------------------------------- global spread; global spread_2ms; global hf_gain; % convert "spreading" samples from 1kHz carrier at Fs to complex % baseband, generated by passing a 1kHz sine wave through PathSim with % the ccir-poor model, enabling one path at a time. Because I'm too % lazy to generate my own spreading signals Fc = 1000; Fs=8000; fspread = fopen("../raw/sine1k_2Hz_spread.raw","rb"); spread1k = fread(fspread, "int16")/10000; fclose(fspread); fspread = fopen("../raw/sine1k_2ms_delay_2Hz_spread.raw","rb"); spread1k_2ms = fread(fspread, "int16")/10000; fclose(fspread); % down convert to complex baseband spreadbb = spread1k.*exp(-j*(2*pi*Fc/Fs)*(1:length(spread1k))'); spreadbb_2ms = spread1k_2ms.*exp(-j*(2*pi*Fc/Fs)*(1:length(spread1k_2ms))'); % remove -2000 Hz image b = fir1(50, 5/Fs); spread = filter(b,1,spreadbb); spread_2ms = filter(b,1,spreadbb_2ms); % discard first 1000 samples as these were near 0, probably as % PathSim states were ramping up spread = spread(1000:length(spread)); spread_2ms = spread_2ms(1000:length(spread_2ms)); hf_gain = 1.0/sqrt(var(spread)+var(spread_2ms)); % This function simulates the HF channel at 8kHz for real signals. A % good use case is passing a vector of speech samples through it to % simulate SSB over HF. There's a really good reason for the 300 - % 3000 Hz filter that escapes me right now :-) function [sim_out snr3kHz_measured ] = hf_sim_real(sim_in, snr3kHz) % 300 - 3000 Hz filter b = fir1(100,[300/4000, 3000/4000], 'pass'); % det power of unit variance noise passed through this filter filter_var = var(filter(b,1,randn(1000,1))); % Start simulation s = hilbert(filter(b,1,sim_in)); n1 = length(s); n2 = length(spread); n = min(n1,n2); path1 = s(1:n) .* spread(1:n); path2 = s(1:n) .* spread_2ms(1:n); delay = floor(0.002*Fs); combined = path1(delay+1:n) + path2(1:n-delay); snr = 10 .^ (snr3kHz/10); variance = (combined'*combined)/(snr*n); noise = sqrt(variance*0.5/filter_var)*(randn(n-delay,1) + j*randn(n-delay,1)); filtered_noise = filter(b,1,noise); sim_out = real(combined+filtered_noise); snr3kHz_measured = 10*log10(var(real(combined))/var(real(filtered_noise))); endfunction codec2-1.0.1/octave/horus_high_speed.bin000066400000000000000000000053101412132000500201250ustar00rootroot00000000000000codec2-1.0.1/octave/horus_msg.txt000066400000000000000000000240061412132000500166660ustar00rootroot00000000000000 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 codec2-1.0.1/octave/horus_payload_rtty.txt000066400000000000000000000240061412132000500206130ustar00rootroot00000000000000 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 codec2-1.0.1/octave/horus_tx_bits_binary.txt000066400000000000000000000013201412132000500211120ustar00rootroot000000000000000 0 1 0 0 1 0 0 0 0 1 0 0 1 0 0 1 1 0 0 0 0 0 0 0 1 1 0 1 1 1 1 0 0 0 1 0 0 0 0 0 0 1 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 1 1 1 0 1 1 1 0 0 0 1 0 1 1 1 0 0 1 0 0 1 1 0 0 1 0 0 1 1 0 0 0 1 0 1 1 0 1 1 1 0 1 1 0 1 1 1 0 0 1 1 1 0 1 1 0 0 1 1 0 1 1 0 0 1 0 1 0 0 0 1 0 1 0 1 0 1 1 0 1 0 1 1 1 1 0 1 1 1 1 1 1 1 0 0 1 1 1 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 1 0 0 0 0 0 1 1 1 1 1 0 1 0 0 1 0 1 1 0 1 0 1 0 0 0 0 1 0 1 1 1 1 1 1 0 1 1 0 0 1 0 0 0 1 1 0 0 0 0 0 0 1 1 0 1 0 1 1 0 0 1 1 1 0 0 0 0 0 1 1 1 1 1 1 0 1 0 1 1 0 1 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 1 1 1 0 0 0 0 1 1 0 0 0 1 1 1 0 0 1 0 0 1 1 1 0 1 0 1 0 0 0 1 0 1 0 1 1 0 1 1 0 1 1 1 1 1 0 1 1 1 1 1 1 0 1 1 0 1 1 0 0 1 0 1 0 1 0 1 1 0 1 0 1 1 1 0 1 1 0 0 1 1 0 0 0 0 codec2-1.0.1/octave/hp_filt.m000066400000000000000000000004301412132000500157150ustar00rootroot00000000000000% hp_filt.m % David Rowe 20 Feb 2012 function hp_filt(in_file, out_file) fin = fopen(in_file,"rb"); s = fread(fin,Inf,"short"); b = fir1(256, 300/4000, "high"); freqz(b); s_hpf = filter(b,1,s); fout = fopen(out_file,"wb"); fwrite(fout, s_hpf, "short"); endfunction codec2-1.0.1/octave/impulse_noise.m000066400000000000000000000056531412132000500171570ustar00rootroot00000000000000% impulse_noise % David Rowe May 2017 % % Experiments with impulsive noise and HF radio format; more off; rand('seed',1) % DFT function ------------------------------------------------ % note k is on 0..K-1 format, unlike Octave fft() which is 1..K function H = calc_H(k, K, a, d) L = length(d); H = 0; for i=1:L H += a(i)*exp(-j*2*pi*k*d(i)/K); end endfunction % ----------------------------------------- % PWM noise simulation % ----------------------------------------- function pwm_noise Fs = 10E6; % sample rate of simulation Fsig = 1E6; % frequency of our wanted signal Fpwm = 255E3; % switcher PWM frequency T = 1; % length of simulations in seconds Nsam = T*Fs; Nsamplot = 200; Apwm = 0.1; Asig = -40; % attenuation of wanted signal in dB % generate an impulse train with jitter to simulate switcher noise pwm = zeros(1,Fs); Tpwm = floor(Fs/Fpwm); pulse_positions_pwm = Tpwm*(1:T*Fpwm) + round(rand(1,T*Fpwm)); h_pwm = zeros(1,Nsam); h_pwm(pulse_positions_pwm) = Apwm; h_pwm = h_pwm(1:Nsam); % add in wanted signal and computer amplitude spectrum s = 10^(Asig/20)*cos(2*pi*Fsig*(1:Nsam)/Fs); h = h_pwm+s; H = fft(h); Hdb = 20*log10(abs(H)) - 20*log10(Nsam/2); figure(1); clf; subplot(211) plot(h(1:Nsamplot)); subplot(212) plot(Hdb(1:Nsam/2)); axis([0 T*2E6 -120 0]); xlabel('Frequency Hz'); ylabel('Amplityude dBV'); grid; printf("pwm rms: %f signal rms: %f noise rms\n", std(h_pwm), std(s)); endfunction % ----------------------------------------- % Single pulse noise simulation % ----------------------------------------- function pulse_noise % set up short pulse in wide window, consisting of two samples next % to each other K = 1024; a(1) = a(2) = 1; d(1) = 10; d(2) = d(1)+1; h = zeros(1,K); h(d(1)) = a(1); h(d(2)) = a(2); % mag and phase spectrum, mag spectrum changes slowly figure(2); clf; Hfft = fft(h); subplot(311) stem(h(1:100)); axis([1 100 -0.2 1.2]); subplot(312) plot(abs(Hfft(1:K/2)),'+'); title('Magnitude'); subplot(313) plot(angle(Hfft(1:K/2)),'+'); title('Phase'); % simple test to estimate H(k+1) from H(k) -------------------- % brute force calculation k = 300; H = zeros(1,K); H(k-1) = calc_H(k-1, K, a, d); H(k) = calc_H(k, K, a, d); H(k+1) = calc_H(k+1, K, a, d); % calculation of k+1 from k using approximation that {d(i)} are % close together compared to M, i.e it's a narrow pulse (assumes we % can estimate d using other means) Hk1_ = exp(-j*2*pi*d(1)/K)*H(k); % plot zoomed in version around k to compare figure(3); clf; plot(H(k-1:k+1),'b+','markersize', 10, 'linewidth', 2); hold on; plot(Hk1_,'g+','markersize', 10, 'linewidth', 2); hold off; title('H(k-1) .... H(k+1)'); printf("H(k+1) match: %f dB\n", 20*log10(abs(H(k+1) - Hk1_))); endfunction % Run various simulations here --------------------------------------------- %pwm_noise pulse_noise codec2-1.0.1/octave/ldpc.m000066400000000000000000000125761412132000500152300ustar00rootroot00000000000000% ldpc.m % % David Rowe 2013 % Octave functions to help us use the CML LDPC code. % % Installing CML library % ---------------------- % % $ sudo apt-get install liboctave-dev % $ wget http://www.iterativesolutions.com/user/image/cml.1.10.zip % $ unzip cml.1.10.zip % $ patch -p0 < ~/codec2/octave/cml.patch % $ cd cml/source % $ octave --no-gui % octave:> make % (you'll see a few warnings but hopefully no errors) 1; function init_cml(path_to_cml) currentdir = pwd; if exist(path_to_cml, 'dir') == 7 cd(path_to_cml) CmlStartup cd(currentdir); else printf("\n---------------------------------------------------\n"); printf("Can't start CML in path: %s\n", path_to_cml); printf("See CML path instructions at top of this script (ldpc.m)\n"); printf("-----------------------------------------------------\n\n"); assert(0); end end % init using built in WiMax or DVSB2 code function code_param = ldpc_init_builtin(code, rate, framesize, modulation, mod_order, mapping, constellation) if strcmp(code,'wimax') [code_param.H_rows, code_param.H_cols, code_param.P_matrix] = InitializeWiMaxLDPC( rate, framesize, 0 ); end if strcmp(code,'dvbs2') [code_param.H_rows, code_param.H_cols, code_param.P_matrix] = InitializeDVBS2( rate, framesize); end if nargin == 7 code_param.S_matrix = constellation; else if length(mapping) == 0 code_param.S_matrix = CreateConstellation( modulation, mod_order); else code_param.S_matrix = CreateConstellation( modulation, mod_order, mapping ); end end code_param.bits_per_symbol = log2(mod_order); code_param.ldpc_data_bits_per_frame = length(code_param.H_cols) - length(code_param.P_matrix); code_param.ldpc_parity_bits_per_frame = framesize - code_param.ldpc_data_bits_per_frame; code_param.ldpc_coded_bits_per_frame = framesize; code_param.data_bits_per_frame = code_param.ldpc_data_bits_per_frame; code_param.coded_bits_per_frame = code_param.ldpc_coded_bits_per_frame; code_param.coded_syms_per_frame = code_param.coded_bits_per_frame/code_param.bits_per_symbol; endfunction % init using user supplied code function [code_param framesize rate] = ldpc_init_user(HRA, modulation, mod_order, mapping, constellation) [Nr Nc] = size(HRA); rate = (Nc-Nr)/Nc; framesize = Nc; [H_rows, H_cols] = Mat2Hrows(HRA); code_param.H_rows = H_rows; code_param.H_cols = H_cols; code_param.P_matrix = []; if nargin == 5 code_param.S_matrix = constellation; else if length(mapping) == 0 code_param.S_matrix = CreateConstellation( modulation, mod_order); else code_param.S_matrix = CreateConstellation( modulation, mod_order, mapping ); end end code_param.bits_per_symbol = log2(mod_order); code_param.ldpc_data_bits_per_frame = length(code_param.H_cols) - length(code_param.P_matrix); code_param.ldpc_parity_bits_per_frame = framesize - code_param.ldpc_data_bits_per_frame; code_param.ldpc_coded_bits_per_frame = framesize; % these variables support underfilling frame code_param.data_bits_per_frame = code_param.ldpc_data_bits_per_frame; code_param.coded_bits_per_frame = code_param.ldpc_coded_bits_per_frame; code_param.coded_syms_per_frame = code_param.coded_bits_per_frame/code_param.bits_per_symbol; endfunction function [codeword s] = ldpc_enc(data, code_param) codeword = LdpcEncode( data, code_param.H_rows, code_param.P_matrix ); s = Modulate( codeword, code_param.S_matrix ); endfunction function [detected_data paritychecks] = ldpc_dec(code_param, max_iterations, demod_type, decoder_type, r, EsNo, fading) symbol_likelihood = Demod2D( r, code_param.S_matrix, EsNo, fading); % initialize the extrinsic decoder input input_somap_c = zeros(1, code_param.ldpc_coded_bits_per_frame ); bit_likelihood = Somap( symbol_likelihood, demod_type, input_somap_c ); input_decoder_c = bit_likelihood(1:code_param.ldpc_coded_bits_per_frame); [x_hat paritychecks] = MpDecode( -input_decoder_c, code_param.H_rows, code_param.H_cols, ... max_iterations, decoder_type, 1, 1); [mx mx_ind] = max(paritychecks); detected_data = x_hat(mx_ind,:); endfunction % Packs a binary array into an array of 8 bit bytes, MSB first function packed = packmsb(unpacked) packed = zeros(1,floor(length(unpacked)+7)/8); bit = 7; byte = 1; for i=1:length(unpacked) packed(byte) = bitor(packed(byte), bitshift(unpacked(i),bit)); bit--; if (bit < 0) bit = 7; byte++; end end endfunction % unpacks an array of 8 bit bytes into a binary array of unpacked bits, MSB first function unpacked = unpackmsb(packed) bit = 7; byte = 1; for i=1:length(packed)*8 unpacked(i) = bitand(bitshift(packed(byte), -bit), 1); bit--; if (bit < 0) bit = 7; byte++; end end endfunction % symbol interleaver that acts on bits 2 at a time function y = interleave_bits(interleaver, x) y = zeros(1,length(x)); for i = 1:length(interleaver) dst = interleaver(i); y(2*(dst-1)+1:2*dst) = x(2*(i-1)+1:2*(i)); end endfunction % symbol de-interleaver function x = deinterleave_symbols(interleaver, y) for i = 1:length(interleaver) x(i) = y(interleaver(i)); end endfunction codec2-1.0.1/octave/ldpc_fsk_lib.m000066400000000000000000000202211412132000500167030ustar00rootroot00000000000000% lpdc_fsk_lib.m % April 2015 % % Library version of ldpc4.m written by vk5dsp. Application is high bit rate % balloon telemtry % % LDPC demo % Call the CML routines and simulate one set of SNRs. % This fucntion is an updated version of ldpc3() which uses less % of the CML functions % % sim_in the input parameter structure % sim_out contains BERs and other stats for each value of SNR % resfile is the result file % 1; function sim_out = ldpc5(sim_in, resfile, testmode, genie_Es, logging=0); if nargin<4, testmode = 0; end estEsN0 = 0; HRA = sim_in.HRA; framesize = sim_in.framesize; rate = sim_in.rate; mod_order = sim_in.mod_order; Lim_Ferrs = sim_in.Lim_Ferrs; Ntrials = sim_in.Ntrials; Esvec = sim_in.Esvec; demod_type = 0; decoder_type = 0; max_iterations = 100; code_param = ldpc_init(HRA, mod_order); bps = code_param.bits_per_symbol; if (logging) fod = fopen('decode.log', 'w'); fwrite(fod, 'Es estEs Its secs \n'); end for ne = 1:length(Esvec) Es = Esvec(ne); EsNo = 10^(Es/10); Terrs = 0; Tbits =0; Ferrs =0; for nn = 1: Ntrials data = round( rand( 1, code_param.data_bits_per_frame ) ); codeword = ldpc_encode(code_param, data); code_param.code_bits_per_frame = length( codeword ); Nsymb = code_param.code_bits_per_frame/bps; if testmode==1 f1 = fopen("dat_in2064.txt", "w"); for k=1:length(data); fprintf(f1, "%u\n", data(k)); end fclose(f1); system("./ra_enc"); load("dat_op2064.txt"); pbits = codeword(length(data)+1:end); % print these to compare with C code dat_op2064(1:16)', pbits(1:16) differences_in_parity = sum(abs(pbits - dat_op2064')) pause; end % modulate % s = Modulate( codeword, code_param.S_matrix ); s= 1 - 2 * codeword; code_param.symbols_per_frame = length( s ); variance = 1/(2*EsNo); noise = sqrt(variance)* randn(1,code_param.symbols_per_frame); % + j*randn(1,code_param.symbols_per_frame) ); r = s + noise; Nr = length(r); [detected_data Niters] = ldpc_decode(r, code_param, max_iterations, decoder_type); error_positions = xor( detected_data(1:code_param.data_bits_per_frame), data ); Nerrs = sum( error_positions); t = clock; t = fix(t(5)*60+t(6)); if (logging) fprintf(fod, ' %3d %4d\n', Niters, t); end if Nerrs>0, fprintf(1,'x'), else fprintf(1,'.'), end if (rem(nn, 50)==0), fprintf(1,'\n'), end if Nerrs>0, Ferrs = Ferrs +1; end Terrs = Terrs + Nerrs; Tbits = Tbits + code_param.data_bits_per_frame; if Ferrs > Lim_Ferrs, disp(['exit loop with #cw errors = ' ... num2str(Ferrs)]); break, end end TERvec(ne) = Terrs; FERvec(ne) = Ferrs; BERvec(ne) = Terrs/ Tbits; Ebvec = Esvec - 10*log10(code_param.bits_per_symbol * rate); cparams= [code_param.data_bits_per_frame code_param.symbols_per_frame ... code_param.code_bits_per_frame]; sim_out.BERvec = BERvec; sim_out.Ebvec = Ebvec; sim_out.FERvec = FERvec; sim_out.TERvec = TERvec; sim_out.cpumins = cputime/60; if nargin > 2 save(resfile, 'sim_in', 'sim_out', 'cparams'); disp(['Saved results to ' resfile ' at Es =' num2str(Es) 'dB']); end end end function code_param = ldpc_init(HRA, mod_order) code_param.bits_per_symbol = log2(mod_order); [H_rows, H_cols] = Mat2Hrows(HRA); code_param.H_rows = H_rows; code_param.H_cols = H_cols; code_param.P_matrix = []; code_param.data_bits_per_frame = length(code_param.H_cols) - length( code_param.P_matrix ); code_param.symbols_per_frame = length(HRA); end function codeword = ldpc_encode(code_param, data) codeword = LdpcEncode( data, code_param.H_rows, code_param.P_matrix ); endfunction % Takes soft decision symbols (e.g. output of 2fsk demod) and converts % them to LLRs. Note we calculate mean and var manually instead of % using internal functions. This was required to get a bit exact % results against the C code. function llr = sd_to_llr(sd) sd = sd / mean(abs(sd)); x = sd - sign(sd); sumsq = sum(x.^2); summ = sum(x); mn = summ/length(sd); estvar = sumsq/length(sd) - mn*mn; estEsN0 = 1/(2* estvar + 1E-3); llr = 4 * estEsN0 * sd; endfunction % LDPC decoder - note it estimates EsNo from received symbols function [detected_data Niters] = ldpc_decode(r, code_param, max_iterations, decoder_type) % in the binary case the LLRs are just a scaled version of the rx samples .. #{ r = r / mean(abs(r)); % scale for signal unity signal estvar = var(r-sign(r)); estEsN0 = 1/(2* estvar + 1E-3); input_decoder_c = 4 * estEsN0 * r; #} llr = sd_to_llr(r); [x_hat, PCcnt] = MpDecode(llr, code_param.H_rows, code_param.H_cols, ... max_iterations, decoder_type, 1, 1); Niters = sum(PCcnt!=0); detected_data = x_hat(Niters,:); if isfield(code_param, "c_include_file") ldpc_gen_h_file(code_param, max_iterations, decoder_type, llr, x_hat, detected_data); end end % One application of FSK LDPC work is SSTV. This function generates a % simulated frame for testing function frame_rs232 = gen_sstv_frame load('H2064_516_sparse.mat'); HRA = full(HRA); mod_order = 2; code_param = ldpc_init(HRA, mod_order); % generate payload data bytes and checksum data = floor(rand(1,256)*256); %data = zeros(1,256); checksum = crc16(data); data = [data hex2dec(checksum(3:4)) hex2dec(checksum(1:2))]; % unpack bytes to bits and LPDC encode mask = 2.^(7:-1:0); % MSB to LSB unpacking to match python tx code. unpacked_data = []; for b=1:length(data) unpacked_data = [unpacked_data bitand(data(b), mask) > 0]; end codeword = [ldpc_encode(code_param, unpacked_data) 0 0 0 0]; % pad with 0s to get integer number of bytes % pack back into bytes to match python code lpacked_codeword = length(codeword)/8; packed_codeword = zeros(1,lpacked_codeword); for b=1:lpacked_codeword st = (b-1)*8 + 1; packed_codeword(b) = sum(codeword(st:st+7) .* mask); end % generate header bits header = [hex2dec('55')*ones(1,16) hex2dec('ab') hex2dec('cd') hex2dec('ef') hex2dec('01')]; % now construct entire unpacked frame packed_frame = [header packed_codeword]; mask = 2.^(0:7); % LSB to MSB packing for header lpacked_frame = length(packed_frame); frame = []; for b=1:lpacked_frame frame = [frame bitand(packed_frame(b), mask) > 0]; end % insert rs232 framing bits frame_rs232 = []; for b=1:8:length(frame) frame_rs232 = [frame_rs232 0 frame(b:b+7) 1]; end %printf("codeword: %d unpacked_header: %d frame: %d frame_rs232: %d \n", length(codeword), length(unpacked_header), length(frame), length(frame_rs232)); endfunction % calculates and compares the checksum of a SSTV frame, that has RS232 % start and stop bits function checksum_ok = sstv_checksum(frame_rs232) l = length(frame_rs232); expected_l = (256+2)*10; assert(l == expected_l); % extract rx bytes rx_data = zeros(1,256); mask = 2.^(0:7); % LSB to MSB k = 1; for i=1:10:expected_l rx_bits = frame_rs232(i+1:i+8); rx_data(k) = sum(rx_bits .* mask); k++; end % calc rx checksum and extract tx checksum rx_checksum = crc16(rx_data(1:256)); tx_checksum = sprintf("%02X%02X", rx_data(258), rx_data(257)); %printf("tx_checksum: %s rx_checksum: %s\n", tx_checksum, rx_checksum); checksum_ok = strcmp(tx_checksum, rx_checksum); endfunction codec2-1.0.1/octave/ldpc_gen_c_h_file.m000066400000000000000000000123011412132000500176530ustar00rootroot00000000000000% ldpc_gen_c_h_file.m % David Rowe Sep 2015, B. Van Slyke 2019 % % Create .c and h files for use in LDPC decoders % % NOTE: You'll need to install the CML library as a number of functions involved % in LDPC use it. See ldpc.m for instructions in installing the CML % library. % % usage examples: % % 1/ Using codes defined in external files: % % octave:1> ldpc_gen_c_h_file("HRA_112_112.txt") % octave:1> ldpc_gen_c_h_file(""H_4096_8192_3d.mat") % % 2/ Using built in CML codes: % % octave:1> ldpc_gen_c_h_file("dvbs2", 0.6, 16200) % % Output: Two files with the same filename as the LDPC input, but with .c and .h % extensions. function ldpc_gen_c_h_file(varargin) ldpc % load ldpc functions ldpc_fsk_lib % for ldpc_encode % Assuming cml has been installed in the users' home folder, which is the % default install location init_cml('~/cml/'); if nargin == 0 printf("Error - you must specify a file containing the LDPC codes (e.g. HRA_112_112.txt).\n"); return; end loadStr = varargin{1}; max_iterations = 100; decoder_type = 0; % the tests are performed using BPSK modulation, but in practice codes can be used % with other modulation, e.g. QPSK mod_order = 2; modulation = 'BPSK'; mapping = 'gray'; if strcmp(loadStr, "dvbs2") rate = varargin{2}; framesize = varargin{3}; code_param = ldpc_init_builtin(loadStr, rate, framesize, modulation, mod_order, mapping); n = code_param.ldpc_coded_bits_per_frame; k = code_param.ldpc_data_bits_per_frame; ldpcArrayName = sprintf("H_%d_%d",n,k); includeFileName = strcat(ldpcArrayName, '.h'); sourceFileName = strcat(ldpcArrayName, '.c'); else % The ldpc variable name may not be what we want for a file/variable names, but % the load filename will be, so use it. [~,ldpcArrayName,ext] = fileparts(loadStr); includeFileName = strcat(ldpcArrayName, '.h'); sourceFileName = strcat(ldpcArrayName, '.c'); % Get the ext of the file first. If it's a txt, then do what we % are doing. If .mat, then just load, knowing the variable is HRA if strcmp(ext, '.mat') == 1 load(loadStr); if exist("H") & !exist("HRA") printf("renaming H to HRA...\n"); HRA=H; end else % When calling 'load' this way, it returns a struct. The code assumes the % struct has one element, and the one/first element is the array % to process tempStruct = load(loadStr); b = fieldnames(tempStruct); ldpcArrayName = b{1,1}; % extract the array from the struct HRA = tempStruct.(ldpcArrayName); endif code_param = ldpc_init_user(HRA, modulation, mod_order, mapping); end code_length = code_param.coded_syms_per_frame; % First, create the H file f = fopen(includeFileName, "wt"); printHeader(f, includeFileName, ldpcArrayName, mfilename()); fprintf(f,"#define %s_NUMBERPARITYBITS %d\n", ldpcArrayName, rows(code_param.H_rows)); fprintf(f,"#define %s_MAX_ROW_WEIGHT %d\n", ldpcArrayName, columns(code_param.H_rows)); fprintf(f,"#define %s_CODELENGTH %d\n", ldpcArrayName, code_param.coded_syms_per_frame); fprintf(f,"#define %s_NUMBERROWSHCOLS %d\n", ldpcArrayName, rows(code_param.H_cols)); fprintf(f,"#define %s_MAX_COL_WEIGHT %d\n", ldpcArrayName, columns(code_param.H_cols)); fprintf(f,"#define %s_DEC_TYPE %d\n", ldpcArrayName, decoder_type); fprintf(f,"#define %s_MAX_ITER %d\n", ldpcArrayName, max_iterations); fprintf(f,"\n"); fprintf(f,"extern const uint16_t %s_H_rows[];\n", ldpcArrayName); fprintf(f,"extern const uint16_t %s_H_cols[];\n", ldpcArrayName); fclose(f); % Then, the C file f = fopen(sourceFileName, "wt"); printHeader(f, sourceFileName, ldpcArrayName, mfilename()); fprintf(f, "#include \n"); fprintf(f, "#include \"%s\"\n", includeFileName); % clock out 2D array to linear C array in row order .... fprintf(f,"\nconst uint16_t %s_H_rows[] = {\n", ldpcArrayName); [r c] = size(code_param.H_rows); for j=1:c for i=1:r fprintf(f, "%d", code_param.H_rows(i,j)); if (i == r) && (j ==c) % weird, this does nothing fprintf(f,"\n};\n"); else fprintf(f,", "); end end end fprintf(f,"\nconst uint16_t %s_H_cols[] = {\n", ldpcArrayName); [r c] = size(code_param.H_cols); for j=1:c for i=1:r fprintf(f, "%d", code_param.H_cols(i,j)); if (i == r) && (j == c) fprintf(f,"\n};\n"); else fprintf(f,", "); end end end fclose(f); endfunction function printHeader(f, includeFileName, ldpcArrayName, mFilename) fprintf(f, "/*\n FILE....: %s\n\n", includeFileName); fprintf(f, " Static arrays for LDPC codec %s, generated by %s.m.\n*/\n\n", ldpcArrayName, mFilename); endfunction codec2-1.0.1/octave/ldpc_gen_h_file.m000066400000000000000000000037201412132000500173560ustar00rootroot00000000000000% ldpc_gen_h_file.m % David Rowe Sep 2015 % % Create a C include file for use in mpdecode.c C cmd line LDPC decoder function ldpc_gen_h_file(code_param, max_iterations, decoder_type, input_decoder_c, x_hat, detected_data) f = fopen(code_param.c_include_file, "wt"); fprintf(f, "/*\n FILE....: %s\n\n Static arrays for LDPC codec, generated", code_param.c_include_file); fprintf(f, "\n ldpc_gen_h_file.m.\n\n*/\n\n"); fprintf(f,"#define NUMBERPARITYBITS %d\n", rows(code_param.H_rows)); fprintf(f,"#define MAX_ROW_WEIGHT %d\n", columns(code_param.H_rows)); fprintf(f,"#define CODELENGTH %d\n", code_param.symbols_per_frame); fprintf(f,"#define NUMBERROWSHCOLS %d\n", rows(code_param.H_cols)); fprintf(f,"#define MAX_COL_WEIGHT %d\n", columns(code_param.H_cols)); fprintf(f,"#define DEC_TYPE %d\n", decoder_type); fprintf(f,"#define MAX_ITER %d\n", max_iterations); fprintf(f,"\ndouble H_rows[] = {\n"); % clock out 2D array to linear C array in row order .... [r c] = size(code_param.H_rows); for j=1:c for i=1:r fprintf(f, "%d", code_param.H_rows(i,j)); if (i == r) && (j ==c) fprintf(f,"\n};\n"); else fprintf(f,", "); end end end fprintf(f,"\ndouble H_cols[] = {\n"); [r c] = size(code_param.H_cols); for j=1:c for i=1:r fprintf(f, "%d", code_param.H_cols(i,j)); if (i == r) && (j == c) fprintf(f,"\n};\n"); else fprintf(f,", "); end end end fprintf(f,"\ndouble input[] = {\n"); for i=1:length(input_decoder_c) fprintf(f, "%.17g", input_decoder_c(i)); if i == length(input_decoder_c) fprintf(f,"\n};\n"); else fprintf(f,", "); end end fprintf(f,"\nchar detected_data[] = {\n"); for i=1:length(detected_data) fprintf(f, "%d", detected_data(i)); if i == length(detected_data) fprintf(f,"\n};\n"); else fprintf(f,", "); end end fclose(f); end codec2-1.0.1/octave/ldpcut.m000066400000000000000000000201471412132000500155720ustar00rootroot00000000000000% ldpcut.m % % David Rowe 18 Dec 2013 % % Octave LDPC unit test script using CML library, based on simulation % by Bill Cowley VK5DSP % Libraries we need ldpc; qpsk; function sim_out = run_simulation(sim_in) % Note this is effective Eb/No of payload data bits, sorta thing we % plot on BER versus Eb/No graphs of decoded data. So if we have a % rate 1/2 code, each codeword bit will have Eb/No - 3dB. EbNodBvec = sim_in.EbNodBvec; Ntrials = sim_in.Ntrials; verbose = sim_in.verbose; % Init LDPC code ------------------------------------ mod_order = 4; bps = 2; modulation = 'QPSK'; mapping = 'gray'; demod_type = 0; decoder_type = 0; max_iterations = 100; if strcmp(sim_in.code,'wimax') rate = 0.5; framesize = 576*4; code_param = ldpc_init_builtin(sim_in.code, rate, framesize, modulation, mod_order, mapping); elseif strcmp(sim_in.code,'dvbs2') framesize = 16200; rate = 0.8; code_param = ldpc_init_builtin(sim_in.code, rate, framesize, modulation, mod_order, mapping); rate = code_param.ldpc_data_bits_per_frame/code_param.ldpc_coded_bits_per_frame; else tempStruct = load(sim_in.code); b = fieldnames(tempStruct); ldpcArrayName = b{1,1}; % extract the array from the struct HRA = tempStruct.(ldpcArrayName); [code_param framesize rate] = ldpc_init_user(HRA, modulation, mod_order, mapping); end % ---------------------------------- % run simulation at each Eb/No point % ---------------------------------- for ne = 1:length(EbNodBvec) randn('seed',1); rand('seed',1); % Given Eb/No of payload data bits, work out Es/No we need to % apply to each channel symbol: % % i) Each codeword bit gets noise: Eb/No - 3 (for a rate 1/2 code) % ii) QPSK means two bits/symbol.: Es/No = Eb/No + 3 % % -> which neatly cancel out ...... (at least for rate 1/2) EsNodB = EbNodBvec(ne) + 10*log10(rate) + 10*log10(bps); EsNo = 10^(EsNodB/10); variance = 1/EsNo; Tbits = Terrs = Ferrs = Terrs_raw = Tbits_raw = 0; tx_bits = []; tx_symbols = []; % Encode a bunch of frames for nn=1:Ntrials atx_bits = round(rand( 1, code_param.data_bits_per_frame)); tx_bits = [tx_bits atx_bits]; [tx_codeword atx_symbols] = ldpc_enc(atx_bits, code_param); tx_symbols = [tx_symbols atx_symbols]; end rx_symbols = tx_symbols; % Add AWGN noise, 0.5 factor splits power evenly between Re & Im noise = sqrt(variance*0.5)*(randn(1,length(tx_symbols)) + j*randn(1,length(tx_symbols))); rx_symbols += noise; % Decode a bunch of frames rx_bits_log = []; for nn = 1: Ntrials st = (nn-1)*code_param.coded_syms_per_frame + 1; en = (nn)*code_param.coded_syms_per_frame; % coded arx_codeword = ldpc_dec(code_param, max_iterations, demod_type, decoder_type, rx_symbols(st:en), EsNo, ones(1,code_param.coded_syms_per_frame)); st = (nn-1)*code_param.data_bits_per_frame + 1; en = (nn)*code_param.data_bits_per_frame; error_positions = xor(arx_codeword(1:code_param.data_bits_per_frame), tx_bits(st:en)); Nerrs = sum(error_positions); rx_bits_log = [rx_bits_log arx_codeword(1:code_param.data_bits_per_frame)]; % uncoded - to est raw BER compare data symbols as code is systematic raw_rx_bits = []; for s=1:code_param.coded_syms_per_frame*rate sym_st = (nn-1)*code_param.coded_syms_per_frame + 1; raw_rx_bits = [raw_rx_bits qpsk_demod(rx_symbols(sym_st+s-1))]; end Nerrs_raw = sum(xor(raw_rx_bits, tx_bits(st:en))); Nbits_raw = code_param.data_bits_per_frame; if verbose == 2 % print "." if frame decoded without errors, 'x' if we can't decode if Nerrs > 0, printf('x'), else printf('.'), end end if Nerrs > 0, Ferrs = Ferrs + 1; end Terrs += Nerrs; Tbits += code_param.ldpc_data_bits_per_frame; Terrs_raw += Nerrs_raw; Tbits_raw += Nbits_raw; end if verbose printf("\nCoded EbNodB: % 5.2f BER: %4.3f Tbits: %6d Terrs: %6d FER: %4.3f Tframes: %d Ferrs: %d\n", EbNodBvec(ne), Terrs/Tbits, Tbits, Terrs, Ferrs/Ntrials, Ntrials, Ferrs); EbNodB_raw = EbNodBvec(ne) + 10*log10(rate); printf("Raw EbNodB..: % 5.2f BER: %4.3f Tbits: %6d Terrs: %6d\n", EbNodB_raw, Terrs_raw/Tbits_raw, Tbits_raw, Terrs_raw); end sim_out.rate = rate; sim_out.BER(ne) = Terrs/Tbits; sim_out.PER(ne) = Ferrs/Ntrials; end endfunction % --------------------------------------------------------------------------------- % 1/ Simplest possible one frame simulation % --------------------------------------------------------------------------------- function test1_single(code="wimax") printf("\nTest 1:Single -----------------------------------\n"); mod_order = 4; modulation = 'QPSK'; mapping = 'gray'; demod_type = 0; decoder_type = 0; max_iterations = 100; % CML library has a bunch of different framesizes available if strcmp(code,'wimax') framesize = 576*2; rate = 0.5; end if strcmp(code,'dvbs2') framesize = 16200; rate = 0.6; end code_param = ldpc_init_builtin(code, rate, framesize, modulation, mod_order, mapping); % find out what rate we actually obtained ... rate = code_param.ldpc_data_bits_per_frame/code_param.ldpc_coded_bits_per_frame; printf("Ndata_bits: %d Nparity_bits: %d Ncodeword_bits: %d rate: %3.2f\n", code_param.ldpc_data_bits_per_frame, code_param.ldpc_parity_bits_per_frame, code_param.ldpc_coded_bits_per_frame, rate); % decoder needs an estimated channel EsNo (linear ratio, not dB) EsNo = 10; tx_bits = round(rand(1, code_param.ldpc_data_bits_per_frame)); [tx_codeword, qpsk_symbols] = ldpc_enc(tx_bits, code_param); rx_codeword = ldpc_dec(code_param, max_iterations, demod_type, decoder_type, qpsk_symbols, EsNo, ones(1,length(qpsk_symbols))); errors_positions = xor(tx_bits, rx_codeword(1:framesize*rate)); Nerr = sum(errors_positions); printf("Nerr: %d\n", Nerr); endfunction % --------------------------------------------------------------------------------- % 2/ Run a bunch of trials at just one EsNo point % --------------------------------------------------------------------------------- function test2_multiple(code, Ntrials=100) printf("\nTest 2: Multiple: %s ----------------------------\n", code); % these are inputs for Wimax mode, e.g. framesize defines code used sim_in.code = code; sim_in.verbose = 2; sim_in.Ntrials = Ntrials; sim_in.EbNodBvec = 3; run_simulation(sim_in); end % --------------------------------------------------------------------------------- % 3/ Lets draw some Eb/No versus BER curves % --------------------------------------------------------------------------------- function test3_curves(code,fg=1,Ntrials=100) printf("\nTest 3: Curves: %s -------------------------------------\n", code); sim_in.code = code; sim_in.verbose = 2; sim_in.Ntrials = Ntrials; sim_in.EbNodBvec = -2:10; sim_out = run_simulation(sim_in); EbNodB = sim_in.EbNodBvec; uncoded_awgn_ber_theory = 0.5*erfc(sqrt(10.^(EbNodB/10))); figure(fg); clf; title(code); semilogy(EbNodB, uncoded_awgn_ber_theory,'r-+;AWGN;') hold on; semilogy(EbNodB, sim_out.BER+1E-10,'g-+;AWGN LDPC;'); hold off; grid('minor') xlabel('Eb/No (dB)') ylabel('BER') axis([min(EbNodB) max(EbNodB) 1E-3 1]) legend('boxoff'); end % -------------------------------------------------------------------------------- % START SIMULATIONS % -------------------------------------------------------------------------------- more off; format; % --------------------------------------------------------------------------------- % Start CML library (see CML set up instructions in ldpc.m) % --------------------------------------------------------------------------------- init_cml('~/cml/'); if getenv("SHORT_VERSION_FOR_CTEST") test1_single return; end %test3_curves("H_1024_2048_4f.mat",1) %test1_single("dvbs2") %test3_curves("dvbs2",1,10) %test2_multiple("wimax") %test2_multiple("H2064_516_sparse.mat") %test3_curves("wimax",1) %test3_curves("H2064_516_sparse.mat",2) %test3_curves("H_256_768_22.txt",2) %test3_curves("H_4096_8192_3d.mat") codec2-1.0.1/octave/linreg.m000066400000000000000000000013671412132000500155620ustar00rootroot00000000000000% linreg.m % David Rowe April 2015 % % Based on: % http://stackoverflow.com/questions/5083465/fast-efficient-least-squares-fit-algorithm-in-c % % finds y = mx + b to best fit n points x and y function [m b] = linreg(x,y,n) sumx = 0.0; % sum of x sumx2 = 0.0; % sum of x^2 sumxy = 0.0; % sum of x * y sumy = 0.0; % sum of y sumy2 = 0.0; % sum of y**2 for i=1:n sumx += x(i); sumx2 += x(i)^2; sumxy += x(i) * y(i); sumy += y(i); sumy2 += y(i)^2; end denom = (n * sumx2 - sumx*sumx); if denom == 0 % singular matrix. can't solve the problem. m = 0; b = 0; else m = (n * sumxy - sumx * sumy) / denom; b = (sumy * sumx2 - sumx * sumxy) / denom; end endfunction codec2-1.0.1/octave/load_comp.m000066400000000000000000000002611412132000500162270ustar00rootroot00000000000000% load_comp.m % David Rowe Sep 2015 function s = load_comp(fn) fs=fopen(fn,"rb"); s = fread(fs,Inf,"float32"); ls = length(s); s = s(1:2:ls) + j*s(2:2:ls); endfunction codec2-1.0.1/octave/load_f32.m000066400000000000000000000004751412132000500156720ustar00rootroot00000000000000% load_f32.m % David Rowe Jan 2019 % % load up .f32 binary files from dump_data function features = load_f32(fn, ncols) f=fopen(fn,"rb"); features_lin=fread(f, 'float32'); fclose(f); nrows = length(features_lin)/ncols; features = reshape(features_lin, ncols, nrows); features = features'; endfunction codec2-1.0.1/octave/load_hackrf.m000066400000000000000000000003071412132000500165300ustar00rootroot00000000000000% load_hackrf.m % % David Rowe Oct 2015 function s = load_hackrf(fn) fs = fopen(fn,"rb"); iq = fread(fs,Inf,"schar"); fclose(fs); l = length(iq); s = iq(1:2:l) + j*iq(2:2:l); endfunction codec2-1.0.1/octave/load_raw.m000066400000000000000000000002251412132000500160620ustar00rootroot00000000000000% load_raw.m % David Rowe 7 Oct 2009 function s = load_raw(fn, len=Inf) fs=fopen(fn,"rb"); s = fread(fs,len,"short"); fclose(fs); endfunction codec2-1.0.1/octave/load_rtlsdr.m000066400000000000000000000003071412132000500166040ustar00rootroot00000000000000% load_rtlsdr.m % % David Rowe Oct 2015 function s = load_rtlsdr(fn) fs = fopen(fn,"rb"); iq = fread(fs,Inf,"uchar"); fclose(fs); l = length(iq); s = iq(1:2:l) + j*iq(2:2:l); endfunction codec2-1.0.1/octave/mag_to_phase.m000066400000000000000000000036641412132000500167320ustar00rootroot00000000000000% mag_to_phase.m % % David Rowe Sep 2015 % % Slighly modified version of http://www.dsprelated.com/showcode/20.php % % Given a magnitude spectrum in dB, returns a minimum-phase phase % spectra. Both must be sampled at a Nfft. My understanding of this % is rather dim, but a working example is good place to start! function [phase s] = mag_to_phase(Gdbfk, Nfft = 512, verbose_en = 0) Ns = length(Gdbfk); if Ns~=Nfft/2+1, error("confusion"); end Sdb = [Gdbfk,Gdbfk(Ns-1:-1:2)]; % install negative-frequencies S = 10 .^ (Sdb/20); % convert to linear magnitude s = ifft(S); % desired impulse response s = real(s); % any imaginary part is quantization noise tlerr = 100*norm(s(round(0.9*Ns:1.1*Ns)))/norm(s); if verbose_en disp(sprintf([' Time-limitedness check: Outer 20%% of impulse ' ... 'response is %0.2f %% of total rms'],tlerr)); end % = 0.02 percent if verbose_en if tlerr>1.0 % arbitrarily set 1% as the upper limit allowed disp(' Increase Nfft and/or smooth Sdb\n'); end end c = ifft(Sdb); % compute real cepstrum from log magnitude spectrum % Check aliasing of cepstrum (in theory there is always some): caliaserr = 100*norm(c(round(Ns*0.9:Ns*1.1)))/norm(c); if verbose_en disp(sprintf([' Cepstral time-aliasing check: Outer 20%% of ' ... 'cepstrum holds %0.2f %% of total rms\n'],caliaserr)); end if verbose_en if caliaserr>1.0 % arbitrary limit disp(' Increase Nfft and/or smooth Sdb to shorten cepstrum\n'); end end % Fold cepstrum to reflect non-min-phase zeros inside unit circle: cf = [c(1), c(2:Ns-1)+c(Nfft:-1:Ns+1), c(Ns), zeros(1,Nfft-Ns)]; Cf = fft(cf); % = dB_magnitude + j * minimum_phase % The maths says we are meant to be using log(x), not 20*log10(x), % so we need to scale the phase to account for this: % log(x) = 20*log10(x)/scale; scale = (20/log(10)); phase = imag(Cf)/scale; endfunction codec2-1.0.1/octave/make_hilb.m000066400000000000000000000036661412132000500162210ustar00rootroot00000000000000% make_hilb.m % David Rowe May 2015 % % creates Hilber Transformer FIR coeffs graphics_toolkit ("gnuplot"); % from https://www.dsprelated.com/freebooks/sasp/Hilbert_Transform_Design_Example.html M = 257; % window length = FIR filter length (Window Method) fs = 8000; % sampling rate assumed (Hz) f1 = 100; % lower pass-band limit = transition bandwidth (Hz) beta = 8; % beta for Kaiser window for decent side-lobe rejection fn = fs/2; % Nyquist limit (Hz) f2 = fn - f1; % upper pass-band limit N = 2^(nextpow2(8*M)); % large FFT for interpolated display k1 = round(N*f1/fs); % lower band edge in bins if k1<2, k1=2; end; % cannot have dc or fn response kn = N/2 + 1; % bin index at Nyquist limit (1-based) k2 = kn-k1+1; % high-frequency band edge f1 = k1*fs/N % quantized band-edge frequencies f2 = k2*fs/N w = kaiser(M,beta)'; % Kaiser window in "linear phase form" H = [ ([0:k1-2]/(k1-1)).^8,ones(1,k2-k1+1),... ([k1-2:-1:0]/(k1-1)).^8, zeros(1,N/2-1)]; h = ifft(H); % desired impulse response hodd = imag(h(1:2:N)); % This should be zero % put window in zero-phase form: wzp = [w((M+1)/2:M), zeros(1,N-M), w(1:(M-1)/2)]; hw = wzp .* h; % single-sideband FIR filter, zero-centered Hw = fft(hw); hh = [hw(N-(M-1)/2+1:N),hw(1:(M+1)/2)]; % causal FIR hh *= 2; figure(1); HH = fft([hh,zeros(1,N-M)]); plot(20*log10(abs(HH))); figure(2); subplot(211); plot(real(hh)); title('real imp resp'); subplot(212); plot(imag(hh)); title('imag imp resp'); % save coeffs to a C header file f=fopen("../src/ht_coeff.h","wt"); fprintf(f,"/* Hilbert Transform FIR filter coeffs */\n"); fprintf(f,"/* Generated by make_hilb Octave script */\n"); fprintf(f,"\n#define HT_N %d\n\n", M); fprintf(f,"COMP ht_coeff[]={\n"); for r=1:M if r < M fprintf(f, " {%f,%f},\n", real(hh(r)), imag(hh(r))); else fprintf(f, " {%f,%f}\n};", real(hh(r)), imag(hh(r))); end end fclose(f); codec2-1.0.1/octave/make_ssbfilt.m000066400000000000000000000015601412132000500167400ustar00rootroot00000000000000% make_ssbfilt.m % David Rowe May 2015 % % Creates low pass filter coeff used to implement a SSB filter in cohpsk_ch graphics_toolkit ("gnuplot"); ssbfilt_n = 100; ssbfilt_bw = 2400; ssbfilt_centre = 1500; Fs = 8000; ssbfilt_coeff = sbfilt_coeff = fir1(ssbfilt_n, ssbfilt_bw/Fs); figure(1) clf; h = freqz(ssbfilt_coeff,1,Fs/2); plot(20*log10(abs(h))) grid minor % save coeffs to a C header file f=fopen("../src/ssbfilt_coeff.h","wt"); fprintf(f,"/* %d Hz LPF FIR filter coeffs */\n", ssbfilt_bw); fprintf(f,"/* Generated by make_ssbfilt Octave script */\n"); fprintf(f,"\n#define SSBFILT_N %d\n\n", ssbfilt_n); fprintf(f,"\n#define SSBFILT_CENTRE %d\n\n", ssbfilt_centre); fprintf(f,"float ssbfilt_coeff[]={\n"); for r=1:ssbfilt_n if r < ssbfilt_n fprintf(f, " %f,\n", ssbfilt_coeff(r)); else fprintf(f, " %f\n};", ssbfilt_coeff(r)); end end fclose(f); codec2-1.0.1/octave/mancyfsk.m000066400000000000000000000326771412132000500161250ustar00rootroot00000000000000% mancyfsk.m % David Rowe October 2015 % % Manchester encoded 2FSK & 4FSK simulation. % % Attempt to design a FSK waveform that can pass through legacy FM % radios but still be optimally demodulated by SDRs. It doesn't have % to be optimally demodulated by legacy radios. Trick is getting it % to pass through 300-3000Hz audio filters in legacy radios. % % [X] code up modulator % [X] manchester two bit symbols % [X] plot spectrum % [X] demodulate using analog FM and ideal demods % [X] measure BER compared to ideal coherent FSK 1; fm; % analog FM library function states = legacyfsk_init(M,Rs) Fs = states.Fs = 96000; states.Rs = Rs; % symbol rate over channel Ts = states.Ts = Fs/Rs; % symbol period in samples states.M = M; % mFSK, either 2 or 4 bpsym = state.Rb = log2(M); % bits per symbol over channel rate = states.rate = 0.5; % Manchester code rate nbits = 100; nbits = states.nbits = 100; % number of payload data symbols/frame nbits2 = states.nbits2 = nbits/rate; % number of symbols/frame over channel after manchester encoding nsym = states.nsym = nbits2/log2(M); % number of symbols per frame nsam = states.nsam = nsym*Ts; %printf(" Rs: %d M: %d bpsym: %d nbits: %d nbits2: %d nsym: %d nsam: %d\n", Rs, M, bpsym, nbits, nbits2, nsym, nsam); states.fc = states.Fs/4; if states.M == 2 states.f(1) = states.fc - Rs/2; states.f(2) = states.fc + Rs/2; else states.f(1) = states.fc - 3*Rs/2; states.f(2) = states.fc - Rs/2; states.f(3) = states.fc + Rs/2; states.f(4) = states.fc + 3*Rs/2; end endfunction % test modulator function function tx = legacyfsk_mod(states, tx_bits) Fs = states.Fs; Ts = states.Ts; Rs = states.Rs; f = states.f; M = states.M; nsym = states.nsym; tx = zeros(Ts*length(tx_bits)/log2(M),1); tx_phase = 0; step = log2(M); k = 1; for i=1:step:length(tx_bits) if M == 2 tone = tx_bits(i) + 1; else tone = (tx_bits(i:i+1) * [2 1]') + 1; end tx_phase_vec = tx_phase + (1:Ts)*2*pi*f(tone)/Fs; tx((k-1)*Ts+1:k*Ts) = 2.0*cos(tx_phase_vec); k++; tx_phase = tx_phase_vec(Ts) - floor(tx_phase_vec(Ts)/(2*pi))*2*pi; end endfunction function run_sim(sim_in) frames = sim_in.frames; test_frame_mode = sim_in.test_frame_mode; M = sim_in.M; Rs = sim_in.Rs; demod = sim_in.demod; EbNodB = sim_in.EbNodB; timing_offset = sim_in.timing_offset; % rx timing has been adjusted experimentally if Rs == 4800 if demod == 1 rx_timing = 4; else rx_timing = 0; end end if Rs == 2400 if demod == 1 rx_timing = 40; else rx_timing = 0; end end % init fsk modem more off rand('state',1); randn('state',1); states = legacyfsk_init(M,Rs); Fs = states.Fs; nbits = states.nbits; nbits2 = states.nbits2; Ts = states.Ts; nsam = states.nsam; rate = states.rate; % init analog FM modem fm_states.Fs = Fs; fm_max = fm_states.fm_max = 3E3; fd = fm_states.fd = 5E3; fm_states.fc = states.fc; fm_states.pre_emp = 0; fm_states.de_emp = 1; fm_states.Ts = 1; fm_states.output_filter = 1; fm_states = analog_fm_init(fm_states); [b, a] = cheby1(4, 1, 300/Fs, 'high'); % 300Hz HPF to simulate FM radios % init sim states rx_bits_buf = zeros(1,2*nbits2); Terrs = Tbits = 0; state = 0; nerr_log = []; % set up the channel noise. We have log(M)*rate payload bits/symbol % we have log2(M) bits/symbol, and rate bits per payload symbol % TODO: explain this better as Im confused! EbNo = 10^(EbNodB/10); EsNo = EbNo*rate*log2(M); variance = states.Fs/((states.Rs)*EsNo); %printf("EbNodB: %3.1f EbNo: %3.2f EsNo: %3.2f\n", EbNodB, EbNo, EsNo); % set up the input bits if test_frame_mode == 1 % test frame of bits, which we repeat for convenience when BER testing test_frame = round(rand(1, nbits)); tx_bits = []; for i=1:frames+1 tx_bits = [tx_bits test_frame]; end end if test_frame_mode == 2 % random bits, just to make sure sync algs work on random data tx_bits = round(rand(1, nbits*(frames+1))); end if test_frame_mode == 3 % ...10101... sequence tx_bits = zeros(1, nbits*(frames+1)); tx_bits(1:2:length(tx_bits)) = 1; end % Manchester Encoding ----------------------------------------------------------- % Manchester encoding, which removes DC term in baseband signal, % making the waveform friendly to old-school legacy FM radios with % voiceband filtering. The "code rate" is 0.5, which means we have % encode one input bit into 2 output bits. The 2FSK encoder takes % one input bit, the 4FSK encoder two input bits. tx_bits_encoded = zeros(1,length(tx_bits)*2); fsk2_enc = [[1 0]; [0 1]]; % -1.5 1.5 1.5 -1.5 -0.5 0.5 0.5 -0.5 % 0 3 3 0 1 2 2 1 fsk4_enc = [[0 0 1 1]; [1 1 0 0]; [0 1 1 0]; [1 0 0 1]]; k=1; if M == 2 for i=1:2:length(tx_bits_encoded) input_bit = tx_bits(k); k++; tx_bits_encoded(i:i+1) = fsk2_enc(input_bit+1,:); end else for i=1:4:length(tx_bits_encoded) input_bits = tx_bits(k:k+1) * [2 1]'; k+=2; tx_bits_encoded(i:i+3) = fsk4_enc(input_bits+1,:); end end % FSK Modulator -------------------------------------------------------------- % use ideal FSK modulator (note: need to try using analog FM modulator) tx = legacyfsk_mod(states, tx_bits_encoded); noise = sqrt(variance)*randn(length(tx),1); rx = tx + noise; timing_offset_samples = round(timing_offset*Ts); rx = [zeros(timing_offset_samples,1); rx]; % Demodulator ---------------------------------------------------------------------------- if demod == 1 % use analog FM demodulator, aka a $40 Baofeng [rx_out rx_bb] = analog_fm_demod(fm_states, rx'); if sim_in.hpf rx_out_hp = filter(b,a,rx_out); else rx_out_hp = rx_out; end rx_filt = filter(ones(1,Ts),1,rx_out_hp); rx_timing_sig = rx_filt; % TODO: for 4FSK determine amplitude/decn boundaries, choose closest to demod each symbol end if demod == 2 % optimal non-coherent demod at Rs rx_timing_sig = zeros(1,length(rx)); for m=1:M phi_vec = (1:length(rx))*2*pi*states.f(m)/Fs; dc = rx' .* exp(-j*phi_vec); rx_filt(m,:) = abs(filter(ones(1,Ts),1,dc)); rx_timing_sig = rx_timing_sig + rx_filt(m,1:length(rx)); end end % Fine timing estimation ------------------------------------------------------ % Estimate fine timing using line at Rs/2 that Manchester encoding provides % We need this to sync up to Manchester codewords. TODO plot signal and % timing "line" we extract Np = length(rx_timing_sig); w = 2*pi*(Rs)/Fs; x = (rx_timing_sig .^ 2) * exp(-j*w*(0:Np-1))'; norm_rx_timing = angle(x)/(2*pi) - 0.42; %rx_timing = round(norm_rx_timing*Ts); %printf("norm_rx_timing: %4.4f rx_timing: %d\n", norm_rx_timing, rx_timing); % Max likelihood decoding of Manchester encoded symbols. Search % through all ML possibilities to extract bits. Use energy (filter % output sq) % Manchester Decoding -------------------------------------------------------- if M == 2 if demod == 1 % sample at optimum instant [tmp l] = size(rx_filt); rx_filt_dec = rx_filt(:, Ts+rx_timing:Ts:l); [tmp l] = size(rx_filt_dec); rx_bits = zeros(1,l); k = 1; for i=1:2:l-1 ml = [rx_filt_dec(i)-rx_filt_dec(i+1) -rx_filt_dec(i)+rx_filt_dec(i+1)]; [mx mx_ind] = max(ml); rx_bits(k) = mx_ind-1; k++; end end if demod == 2 % sample at optimum instant [tmp l] = size(rx_filt); rx_filt_dec = rx_filt(:, Ts+rx_timing:Ts:l); [tmp l] = size(rx_filt_dec); rx_bits = zeros(1,l); k = 1; for i=1:2:l-1 %ml = [rx_filt_dec(2,i)*rx_filt_dec(1,i+1) rx_filt_dec(1,i)*rx_filt_dec(2,i+1)]; ml = [rx_filt_dec(2,i)+rx_filt_dec(1,i+1) rx_filt_dec(1,i)+rx_filt_dec(2,i+1)]; [mx mx_ind] = max(ml); rx_bits(k) = mx_ind-1; k++; end end else % M == 4 if demod == 1 % TODO: 4FSK version of demod rx_bits=tx_bits; end if demod == 2 % sample at optimal instant [tmp l] = size(rx_filt); rx_filt_dec = rx_filt(:, Ts+rx_timing:Ts:l); [tmp l] = size(rx_filt_dec); rx_bits = zeros(1,l); k = 1; fsk4_dec = [[0 0]; [0 1]; [1 0]; [1 1]]; for i=1:2:l-1 %ml = [rx_filt_dec(1,i)*rx_filt_dec(4,i+1) rx_filt_dec(4,i)*rx_filt_dec(1,i+1) rx_filt_dec(2,i)*rx_filt_dec(3,i+1) rx_filt_dec(3,i)*rx_filt_dec(2,i+1)]; ml = [(rx_filt_dec(1,i)+rx_filt_dec(4,i+1)) (rx_filt_dec(4,i)+rx_filt_dec(1,i+1)) (rx_filt_dec(2,i)+rx_filt_dec(3,i+1)) (rx_filt_dec(3,i)+rx_filt_dec(2,i+1))]; [mx mx_ind] = max(ml); rx_bits(k:k+1) = fsk4_dec(mx_ind,:); k+=2; end end end % useful for getting decoding right %tx_bits(1:20) %rx_bits(1:20) % Frame sync and BER logic ------------------------------------------------------------- st = 1; for f=1:frames % extract nin bits nin = nbits; en = st + nin - 1; rx_bits_buf(1:nbits) = rx_bits_buf(nbits+1:2*nbits); rx_bits_buf(nbits+1:2*nbits) = rx_bits(st:en); st += nin; % frame sync based on min BER if test_frame_mode == 1 nerrs_min = nbits; next_state = state; if state == 0 for i=1:nbits error_positions = xor(rx_bits_buf(i:nbits+i-1), test_frame); nerrs = sum(error_positions); %printf("i: %d nerrs: %d nerrs_min: %d \n", i, nerrs, nerrs_min); if nerrs < nerrs_min nerrs_min = nerrs; coarse_offset = i; end end if nerrs_min < 3 next_state = 1; %printf("%d %d\n", coarse_offset, nerrs_min); end end if state == 1 error_positions = xor(rx_bits_buf(coarse_offset:coarse_offset+nbits-1), test_frame); nerrs = sum(error_positions); Terrs += nerrs; Tbits += nbits; nerr_log = [nerr_log nerrs]; end state = next_state; end end if test_frame_mode == 1 if sim_in.verbose printf(" demod: %d frames: %d EbNodB: %3.1f Tbits: %d Terrs: %d BER %4.3f\n", demod, frames, EbNodB, Tbits, Terrs, Terrs/Tbits); else printf(" EbNodB: %3.1f BER %4.3f\n", EbNodB, Terrs/Tbits); end end % Bunch O'plots -------------------------------------------------------------- close all; st = 1; en=20; Tx=fft(tx, Fs); TxdB = 20*log10(abs(Tx(1:Fs/2))); figure(1) clf; plot(TxdB) axis([1 Fs/2 (max(TxdB)-100) max(TxdB)]) title('Tx Spectrum'); figure(2) clf if demod == 1 subplot(211) plot(rx_filt(st*Ts:en*Ts)); title('After integrator'); subplot(212) plot(rx_filt_dec(st:en),'+'); title('Decimated output'); end if demod == 2 subplot(211); plot(rx_filt(1,st*Ts:en*Ts)); hold on; plot(rx_filt(2,st*Ts:en*Ts),'g'); if M == 4 plot(rx_filt(3,st*Ts:en*Ts),'c'); plot(rx_filt(4,st*Ts:en*Ts),'r'); end hold off; title('Output of each filter'); subplot(212); plot(rx_filt_dec(1,st:en),'+'); hold on; plot(rx_filt_dec(2,st:en),'g+'); if M == 4 plot(rx_filt_dec(3,st:en),'c+'); plot(rx_filt_dec(4,st:en),'r+'); end hold off; title('Decimated output of each filter'); end figure(3) clf; subplot(211) plot(rx_timing_sig(st*Ts:en*Ts).^2) title('rx-timing-sig') subplot(212) F = abs(fft(rx_timing_sig(1:Fs))); plot(F(100:8000)) title('FFT of rx-timing-sig') if demod == 1 figure(4); clf; h = fft(rx_out, Fs); hdB = 20*log10(abs(h)); plot(hdB(1:4000)) title('Spectrum of baseband modem signal after analog FM demod'); axis([1 4000 (max(hdB)-40) max(hdB)]) end if demod == 1 figure(5) clf; subplot(211) plot(rx_out(st*Ts:en*Ts)); title('baseband modem signal after analog FM demod'); subplot(212) plot(rx_out_hp(st*Ts:en*Ts)); title('baseband modem signal after 300Hz filter'); end end % Run various permutations of simulation here --------------------------------------- function run_single sim_in.frames = 100; sim_in.test_frame_mode = 1; sim_in.M = 2; sim_in.Rs = 2400; sim_in.demod = 1; sim_in.EbNodB = 15; sim_in.timing_offset = 0.0; sim_in.hpf = 1; sim_in.verbose = 1; run_sim(sim_in); endfunction function run_lots % adjusted a few scenarios for about 2% BER so we can compare sim_in.frames = 100; sim_in.test_frame_mode = 1; sim_in.M = 2; sim_in.Rs = 4800; sim_in.demod = 1; sim_in.EbNodB = 12; sim_in.timing_offset = 0.0; sim_in.hpf = 1; sim_in.verbose = 0; printf("Rs=4800 2FSK ideal demod\n"); sim_in.EbNodB = 8.5; sim_in.demod = 2; run_sim(sim_in); printf("Rs=4800 2FSK analog FM demod, not too shabby and pushes 2400bit/s thru a $40 HT!\n"); sim_in.EbNodB = 12; sim_in.demod = 1; run_sim(sim_in); printf("Rs=2400 2FSK analog FM demod, needs more power for same BER! Che?\n"); sim_in.Rs = 2400; sim_in.EbNodB = 15; run_sim(sim_in); printf("Hmm, doesnt improve with no 300Hz HPF, maybe due to less deviation?\n"); sim_in.hpf = 0; run_sim(sim_in); printf("Rs=2400 4FSK ideal demod, nice low Eb/No!\n"); sim_in.demod = 2; sim_in.M = 4; sim_in.Rs = 2400; sim_in.EbNodB = 6; run_sim(sim_in); endfunction %run_single; run_lots; codec2-1.0.1/octave/melvq.m000066400000000000000000000110611412132000500154160ustar00rootroot00000000000000% melvq.m % David Rowe Aug 2015 % % Experimenting with VQ design for mel LSPs, also handy VQ searching routines 1; % train up multi-stage VQ % ~/codec2-dev/build_linux/src$ sox -r 8000 -s -2 ../../wav/all.wav -t raw -r 8000 -s -2 - sinc 300 sinc -2600 | ./c2sim - --lpc 6 --lpcpf --lspmel --dump all -o - | play -t raw -r 8000 -s -2 - vol 3 % % octave:> load ../build_linux/src/all_mel.txt % octave:> melvq; vq = trainvq(all_mel, 64, 3); % octave:> save vq function vq = trainvq(training_data, Nvec, stages, city_en=0) vq = []; for i=1:stages if city_en [idx centers] = kmeans(training_data, Nvec, 'DISTANCE', 'cityblock'); else [idx centers] = kmeans(training_data, Nvec); end quant_error = centers(idx,:) - training_data; printf("mse stage %d: %f\n", i, mean(std(quant_error))); training_data = quant_error; vq(:,:,i) = centers; end end function [mse_list index_list] = search_vq(vq, target, m) [Nvec order] = size(vq); mse = zeros(1, Nvec); % find mse for each vector for i=1:Nvec mse(i) = sum((target - vq(i,:)) .^2); end % sort and keep top m matches [mse_list index_list ] = sort(mse); mse_list = mse_list(1:m); index_list = index_list(1:m); endfunction % Search multi-stage VQ, retaining m best candidates at each stage function [res output_vecs ind] = mbest(vqset, input_vecs, m) [Nvec order stages] = size(vqset); [Ninput tmp] = size(input_vecs); res = []; % residual error after VQ output_vecs = []; % quantised ouput vectors ind = []; % index of vqs for i=1:Ninput % first stage, find mbest candidates [mse_list index_list] = search_vq(vqset(:,:,1), input_vecs(i,:), m); cand_list = [mse_list' index_list']; cand_list = sortrows(cand_list,1); % subsequent stages ........... for s=2:stages % compute m targets for next stage, and update path prev_indexes = zeros(m,s-1); for t=1:m target(t,:) = input_vecs(i,:); for v=1:s-1 target(t,:) -= vqset(cand_list(t,v+1),:,v); end prev_indexes(t,:) = cand_list(t,2:s); end % search stage s using m targets from stage s-1 % with m targets, we do m searches which return the m best possibilities % so we get a matrix with one row per candidate, m*m rows total % prev_indexes provides us with the path through the VQs for each candidate row avq = vqset(:,:,s); cand_list = []; for t=1:m [mse_list index_list] = search_vq(avq, target(t,:), m); x = ones(m,1)*prev_indexes(t,:); cand_row = [mse_list' x index_list']; cand_list = [cand_list; cand_row]; end % sort into m best rows cand_list = sortrows(cand_list,1); cand_list = cand_list(1:m,:); end % final residual target(1,:) = input_vecs(i,:); out = zeros(1,order); for v=1:stages target(1,:) -= vqset(cand_list(1,v+1),:,v); out += vqset(cand_list(1,v+1),:,v); end res = [res; target(1,:)]; output_vecs = [output_vecs; out]; ind = [ind; cand_list(1,2:1+stages)]; end endfunction % Quantises a set of mel-lsps and saves back to disk so they can be read in by c2sim % assumes we have a vq saved to disk called vq % % ~/codec2-dev/build_linux/src$ sox -r 8000 -s -2 ../../wav/vk5qi.wav -t raw -r 8000 -s -2 - sinc 300 sinc -2600 | ./c2sim - --lpc 6 --lpcpf --lspmel --dump vk5qi -o - | play -t raw -r 8000 -s -2 - vol 3 % % octave:> test_run("vk5qi") % % ~/codec2-dev/build_linux/src$ sox -r 8000 -s -2 ../../wav/vk5qi.wav -t raw -r 8000 -s -2 - sinc 300 sinc -2600 | ./c2sim - --lpc 6 --lpcpf --phase0 --dec 4 --postfilter --lspmel --lspmelread ../../octave/vk5qi_mel_.out -o - | play -t raw -r 8000 -s -2 - vol 3 function ind = test_run(samplename) more off; input_vecs_name = sprintf("../build_linux/src/%s_mel.txt", samplename); input_vecs_name mel = load(input_vecs_name); load vq; [res mel_ ind] = mbest(vq, mel, 5); mean(std(res)) output_vecs_name = sprintf("%s_mel_.out", samplename); fmel_ = fopen(output_vecs_name,"wb"); [r c] = size(mel_); for i=1:r fwrite(fmel_, mel_(i,:), "float32"); end fclose(fmel_); end %ind = test_run("hts1a"); %load "../build_linux/src/all_mel.txt" %vq = trainvq(all_mel, 64, 3); %save vq; % [X] save text file of "vq quantised mels" % [X] load back into c2sim at run time % [X] train on continuous mels % [X] sorting/stability % [X] see how it sounds % [X] Goal is to get VQ sounding OK, similar to UQ at 20 or 40ms dec, % [X] sig better than current 700 % [X] check all indexes used with hist codec2-1.0.1/octave/mfsk.m000066400000000000000000000104011412132000500152270ustar00rootroot00000000000000% mfsk.m % David Rowe Nov 2015 % Simulation to test m=2 and m=4 FSK demod 1; function sim_out = fsk_ber_test(sim_in) Fs = 96000; M = sim_in.M; Rs = sim_in.Rs; Ts = Fs/Rs; verbose = sim_in.verbose; nbits = sim_in.nbits; nsym = sim_in.nbits*2/M; nsam = nsym*Ts; EsNodB = sim_in.EbNodB + 10*log10(M/2); % printf("M: %d nbits: %d nsym: %d\n", M, nbits, nsym); if M == 2 f(1) = -Rs/2; f(2) = Rs/2; end if M == 4 f(1) = -3*Rs/2; f(2) = -Rs/2; f(3) = Rs/2; f(4) = 3*Rs/2; end % simulate over a range of Eb/No values for ne = 1:length(EsNodB) Nerrs = Terrs = Tbits = 0; aEsNodB = EsNodB(ne); EsNo = 10^(aEsNodB/10); variance = Fs/(Rs*EsNo); % Modulator ------------------------------- tx_bits = round(rand(1, nbits)); tx = zeros(1,nsam); tx_phase = 0; for i=1:nsym if M == 2 tone = tx_bits(i) + 1; else tone = (tx_bits(2*(i-1)+1:2*i) * [2 1]') + 1; end tx_phase_vec = tx_phase + (1:Ts)*2*pi*f(tone)/Fs; tx((i-1)*Ts+1:i*Ts) = exp(j*tx_phase_vec); tx_phase = tx_phase_vec(Ts) - floor(tx_phase_vec(Ts)/(2*pi))*2*pi; end % Channel --------------------------------- % We use complex (single sided) channel simulation, as it's convenient % for the FM simulation. noise = sqrt(variance/2)*(randn(1,nsam) + j*randn(1,nsam)); rx = tx + noise; if verbose > 1 printf("EbNo: %f Eb: %f var No: %f EbNo (meas): %f\n", EbNo, var(tx)*Ts/Fs, var(noise)/Fs, (var(tx)*Ts/Fs)/(var(noise)/Fs)); end % Demodulator ----------------------------- % non-coherent FSK demod rx_bb = rx; dc = zeros(M,nsam); for m=1:M dc(m,:) = rx_bb .* exp(-j*(0:nsam-1)*2*pi*f(m)/Fs); end rx_bits = zeros(1, nsym); for i=1:nsym st = (i-1)*Ts+1; en = st+Ts-1; for m=1:M int(m,i) = abs(sum(dc(m,st:en))); end if m == 2 rx_bits(i) = int(1,i) < int(2,i); else [max_amp tone] = max([int(1,i) int(2,i) int(3,i) int(4,i)]); if tone == 1 rx_bits(2*(i-1)+1:2*i) = [0 0]; end if tone == 2 rx_bits(2*(i-1)+1:2*i) = [0 1]; end if tone == 3 rx_bits(2*(i-1)+1:2*i) = [1 0]; end if tone == 4 rx_bits(2*(i-1)+1:2*i) = [1 1]; end end end error_positions = xor(rx_bits, tx_bits); Nerrs = sum(error_positions); Terrs += Nerrs; Tbits += length(error_positions); TERvec(ne) = Terrs; BERvec(ne) = Terrs/Tbits; if verbose > 1 figure(2) clf Rx = 10*log10(abs(fft(rx))); plot(Rx(1:Fs/2)); axis([1 Fs/2 0 50]); figure(3) clf; subplot(211) plot(real(rx_bb(1:Ts*20))) subplot(212) Rx_bb = 10*log10(abs(fft(rx_bb))); plot(Rx_bb(1:3000)); axis([1 3000 0 50]); figure(4); subplot(211) stem(abs(mark_int(1:100))); subplot(212) stem(abs(space_int(1:100))); end if verbose printf("EbNo (db): %3.2f Terrs: %d BER: %4.3f \n", aEsNodB - 10*log10(M/2), Terrs, Terrs/Tbits); end end sim_out.TERvec = TERvec; sim_out.BERvec = BERvec; endfunction function run_fsk_curves sim_in.M = 2; sim_in.Rs = 1200; sim_in.nbits = 12000; sim_in.EbNodB = 0:2:20; sim_in.verbose = 1; EbNo = 10 .^ (sim_in.EbNodB/10); fsk_theory.BERvec = 0.5*exp(-EbNo/2); % non-coherent BFSK demod fsk2_sim = fsk_ber_test(sim_in); sim_in.M = 4; fsk4_sim = fsk_ber_test(sim_in); % BER v Eb/No curves figure(1); clf; semilogy(sim_in.EbNodB, fsk_theory.BERvec,'r;2FSK theory;') hold on; semilogy(sim_in.EbNodB, fsk2_sim.BERvec,'g;2FSK sim;') semilogy(sim_in.EbNodB, fsk4_sim.BERvec,'b;4FSK sim;') hold off; grid("minor"); axis([min(sim_in.EbNodB) max(sim_in.EbNodB) 1E-4 1]) legend("boxoff"); xlabel("Eb/No (dB)"); ylabel("Bit Error Rate (BER)") end function run_fsk_single sim_in.M = 4; sim_in.Rs = 1200; sim_in.nbits = 5000; sim_in.EbNodB = 8; sim_in.verbose = 1; fsk_sim = fsk_ber_test(sim_in); endfunction rand('state',1); randn('state',1); graphics_toolkit ("gnuplot"); run_fsk_curves %run_fsk_single codec2-1.0.1/octave/newamp1_fbf.m000066400000000000000000000100201412132000500164510ustar00rootroot00000000000000% newamp1_fbf.m % % Copyright David Rowe 2016 % This program is distributed under the terms of the GNU General Public License % Version 2 % % Interactive Octave script to explore frame by frame operation of newamp1 % spectral amplitude modelling. % % Usage: % Make sure codec2-dev is compiled with the -DDUMP option - see README for % instructions. % ~/codec2-dev/build_linux/src$ ./c2sim ../../raw/hts1a.raw --dump hts1a % $ cd ~/codec2-dev/octave % octave:14> newamp1_fbf("../build_linux/src/hts1a",50) function newamp1_fbf(samname, f=73, varargin) more off; newamp_700c; melvq; load train_120_1.txt; load train_120_2.txt; train_120_vq(:,:,1)= train_120_1; train_120_vq(:,:,2)= train_120_2; m=5; Fs = 8000; K = 20; vq = 0; eq_en = 0; pf = 0; % load up text files dumped from c2sim --------------------------------------- sn_name = strcat(samname,"_sn.txt"); Sn = load(sn_name); sw_name = strcat(samname,"_sw.txt"); Sw = load(sw_name); model_name = strcat(samname,"_model.txt"); model = load(model_name); [frames tmp] = size(model); % pre-process [rate_K_surface sample_freqs_kHz] = resample_const_rate_f_mel(model(1:frames,:), K); % we need to know eq states on each frame eq = zeros(frames,K); an_eq = zeros(1,K); for ff=1:frames mean_f = mean(rate_K_surface(ff,:)); rate_K_vec_no_mean = rate_K_surface(ff,:) - mean_f; [tmp an_eq] = front_eq(rate_K_vec_no_mean, an_eq); eq(ff,:) = an_eq; end % Keyboard loop -------------------------------------------------------------- k = ' '; do fg = 1; s = [ Sn(2*f-1,:) Sn(2*f,:) ]; figure(fg++); clf; plot(s); axis([1 length(s) -20000 20000]); Wo = model(f,1); L = model(f,2); Am = model(f,3:(L+2)); AmdB = 20*log10(Am); Am_freqs_kHz = (1:L)*Wo*4/pi; % plots ---------------------------------- figure(fg++); clf; l = sprintf(";rate %d AmdB;g+-", L); plot((1:L)*Wo*4000/pi, AmdB, l); axis([1 4000 -20 80]); hold on; stem(sample_freqs_kHz*1000, rate_K_surface(f,:), ";rate K;b+-"); % default rate_K_vec_ = rate_K_surface(f,:); mean_f = mean(rate_K_surface(f,:)); rate_K_vec_no_mean = rate_K_surface(f,:) - mean_f; if eq_en rate_K_vec_no_mean -= eq(f,:); end rate_K_vec_no_mean_ = rate_K_vec_no_mean; if vq [res rate_K_vec_no_mean_ ind] = mbest(train_120_vq, rate_K_vec_no_mean, m); if pf rate_K_vec_no_mean_ = post_filter(rate_K_vec_no_mean_, sample_freqs_kHz, 1.5); end rate_K_vec_ = rate_K_vec_no_mean_ + mean_f; end % back to rate L model_(f,:) = resample_rate_L(model(f,:), rate_K_vec_, sample_freqs_kHz); Am_ = model_(f,3:(L+2)); AmdB_ = 20*log10(Am_); varL = var(AmdB - AmdB_); plot((1:L)*Wo*4000/pi, AmdB_,";AmdB bar;r+-"); l = sprintf(";error var %3.2f dB;bk+-", varL); plot((1:L)*Wo*4000/pi, (AmdB - AmdB_), l); hold off; figure(3); clf; plot(sample_freqs_kHz*1000, 40+ rate_K_vec_no_mean, ";rate K no mean;g+-"); axis([1 4000 -20 80]); hold on; plot(sample_freqs_kHz*1000, 40 + rate_K_vec_no_mean_, ";rate K no mean bar;r+-"); varK = var(rate_K_vec_no_mean - rate_K_vec_no_mean_); l = sprintf(";error var %3.2f dB;bk+-", varK); plot(sample_freqs_kHz*1000, rate_K_vec_no_mean - rate_K_vec_no_mean_, l); plot(sample_freqs_kHz*1000, eq(f,:), ";eq;b+-"); hold off; % interactive menu ------------------------------------------ printf("\rframe: %d menu: n-next b-back q-quit v-vq[%d] p-pf[%d] e-eq[%d]", f, vq, pf, eq_en); fflush(stdout); k = kbhit(); if k == 'v' if vq == 0; vq = 1; else vq = 0; end endif if k == 'p' if pf == 0; pf = 1; else pf = 0; end endif if k == 'e' if eq_en == 0; eq_en = 1; else eq_en = 0; end endif if k == 'n' f = f + 1; endif if k == 'b' f = f - 1; endif until (k == 'q') printf("\n"); endfunction function ind = arg_exists(v, str) ind = 0; for i=1:length(v) if !ind && strcmp(v{i}, str) ind = i; end end endfunction codec2-1.0.1/octave/newamp_700c.m000066400000000000000000000226471412132000500163260ustar00rootroot00000000000000% newamp_700c.m % % Copyright David Rowe 2017 % This program is distributed under the terms of the GNU General Public License % Version 2 % % Library of Octave functions for rate K, mel spaced % vector quantisation of spectral magnitudes used in Codec 2 700C mode. 1; melvq; % mbest VQ functions % -------------------------------------------------------------------------------- % Functions used by rate K mel work % -------------------------------------------------------------------------------- % General 2nd order parabolic interpolator. Used splines orginally, % but this is much simpler and we don't need much accuracy. Given two % vectors of points xp and yp, find interpolated values y at points x function y = interp_para(xp, yp, x) assert( (length(xp) >=3) && (length(yp) >= 3) ); y = zeros(1,length(x)); k = 1; for i=1:length(x) xi = x(i); % k is index into xp of where we start 3 points used to form parabola while ((xp(k+1) < xi) && (k < (length(xp)-2))) k++; end x1 = xp(k); y1 = yp(k); x2 = xp(k+1); y2 = yp(k+1); x3 = xp(k+2); y3 = yp(k+2); %printf("k: %d i: %d xi: %f x1: %f y1: %f\n", k, i, xi, x1, y1); a = ((y3-y2)/(x3-x2)-(y2-y1)/(x2-x1))/(x3-x1); b = ((y3-y2)/(x3-x2)*(x2-x1)+(y2-y1)/(x2-x1)*(x3-x2))/(x3-x1); y(i) = a*(xi-x2)^2 + b*(xi-x2) + y2; end endfunction % simple linear interpolator function y = interp_linear(xp, yp, x) assert( (length(xp) == 2) && (length(yp) == 2) ); m = (yp(2) - yp(1))/(xp(2) - xp(1)); c = yp(1) - m*xp(1); y = zeros(1,length(x)); for i=1:length(x) y(i) = m*x(i) + c; end endfunction % quantise input sample to nearest value in table, optionally return binary code function [quant_out best_i bits] = quantise(levels, quant_in) % find closest quantiser level best_se = 1E32; for i=1:length(levels) se = (levels(i) - quant_in)^2; if se < best_se quant_out = levels(i); best_se = se; best_i = i; end end % convert index to binary bits numbits = ceil(log2(length(levels))); bits = zeros(1, numbits); for b=1:numbits bits(b) = bitand(best_i-1,2^(numbits-b)) != 0; end endfunction % Quantisation functions for Wo in log freq domain function index = encode_log_Wo(Wo, bits) Wo_levels = 2.^bits; Wo_min = 2*pi/160; Wo_max = 2*pi/20; norm = (log10(Wo) - log10(Wo_min))/(log10(Wo_max) - log10(Wo_min)); index = floor(Wo_levels * norm + 0.5); index = max(index, 0); index = min(index, Wo_levels-1); endfunction function Wo = decode_log_Wo(index, bits) Wo_levels = 2.^bits; Wo_min = 2*pi/160; Wo_max = 2*pi/20; step = (log10(Wo_max) - log10(Wo_min))/Wo_levels; Wo = log10(Wo_min) + step*index; Wo = 10 .^ Wo; endfunction % convert index to binary bits function bits = index_to_bits(value, numbits) levels = 2.^numbits; bits = zeros(1, numbits); for b=1:numbits bits(b) = bitand(value,2^(numbits-b)) != 0; end end function value = bits_to_index(bits, numbits) value = 2.^(numbits-1:-1:0) * bits; endfunction % Determine a phase spectra from a magnitude spectra % from http://www.dsprelated.com/showcode/20.php % Haven't _quite_ figured out how this works but have to start somewhere .... % % TODO: we may be able to sample at a lower rate, like mWo % but start with something that works function [phase Gdbfk s Aw] = determine_phase(model, f, Nfft=512, ak) Fs = 8000; max_amp = 80; L = min([model(f,2) max_amp-1]); Wo = model(f,1); sample_freqs_kHz = (Fs/1000)*[0:Nfft/2]/Nfft; % fft frequency grid (nonneg freqs) Am = model(f,3:(L+2)); AmdB = 20*log10(Am); rate_L_sample_freqs_kHz = (1:L)*Wo*4/pi; Gdbfk = interp_para(rate_L_sample_freqs_kHz, AmdB, sample_freqs_kHz); % optional input of aks for testing if nargin == 4 Aw = 1 ./ fft(ak,Nfft); Gdbfk = 20*log10(abs(Aw(1:Nfft/2+1))); end [phase s] = mag_to_phase(Gdbfk, Nfft); endfunction % Non linear sampling of frequency axis, reducing the "rate" is a % first step before VQ function mel = ftomel(fHz) mel = floor(2595*log10(1+fHz/700)+0.5); endfunction function rate_K_sample_freqs_kHz = mel_sample_freqs_kHz(K) mel_start = ftomel(200); mel_end = ftomel(3700); step = (mel_end-mel_start)/(K-1); mel = mel_start:step:mel_end; rate_K_sample_freqs_Hz = 700*((10 .^ (mel/2595)) - 1); rate_K_sample_freqs_kHz = rate_K_sample_freqs_Hz/1000; endfunction function [rate_K_surface rate_K_sample_freqs_kHz] = resample_const_rate_f_mel(model, K) rate_K_sample_freqs_kHz = mel_sample_freqs_kHz(K); rate_K_surface = resample_const_rate_f(model, rate_K_sample_freqs_kHz); endfunction % Resample Am from time-varying rate L=floor(pi/Wo) to fixed rate K. This can be viewed % as a 3D surface with time, freq, and ampitude axis. function [rate_K_surface rate_K_sample_freqs_kHz] = resample_const_rate_f(model, rate_K_sample_freqs_kHz) % convert rate L=pi/Wo amplitude samples to fixed rate K max_amp = 80; [frames col] = size(model); K = length(rate_K_sample_freqs_kHz); rate_K_surface = zeros(frames, K); for f=1:frames Wo = model(f,1); L = min([model(f,2) max_amp-1]); Am = model(f,3:(L+2)); AmdB = 20*log10(Am); %pre = 10*log10((1:L)*Wo*4/(pi*0.3)); %AmdB += pre; % clip between peak and peak -50dB, to reduce dynamic range AmdB_peak = max(AmdB); AmdB(find(AmdB < (AmdB_peak-50))) = AmdB_peak-50; rate_L_sample_freqs_kHz = (1:L)*Wo*4/pi; %rate_K_surface(f,:) = interp1(rate_L_sample_freqs_kHz, AmdB, rate_K_sample_freqs_kHz, "spline", "extrap"); rate_K_surface(f,:) = interp_para(rate_L_sample_freqs_kHz, AmdB, rate_K_sample_freqs_kHz); %printf("\r%d/%d", f, frames); end %printf("\n"); endfunction % Take a rate K surface and convert back to time varying rate L function [model_ AmdB_] = resample_rate_L(model, rate_K_surface, rate_K_sample_freqs_kHz) max_amp = 80; [frames col] = size(model); model_ = zeros(frames, max_amp+2); for f=1:frames Wo = model(f,1); L = model(f,2); rate_L_sample_freqs_kHz = (1:L)*Wo*4/pi; % back down to rate L % AmdB_ = interp1(rate_K_sample_freqs_kHz, rate_K_surface(f,:), rate_L_sample_freqs_kHz, "spline", 0); AmdB_ = interp_para([ 0 rate_K_sample_freqs_kHz 4], [0 rate_K_surface(f,:) 0], rate_L_sample_freqs_kHz); model_(f,1) = Wo; model_(f,2) = L; model_(f,3:(L+2)) = 10 .^ (AmdB_(1:L)/20); end endfunction % Post Filter, has a big impact on speech quality after VQ. When used % on a mean removed rate K vector, it raises formants, and supresses % anti-formants. As it manipulates amplitudes, we normalise energy to % prevent clipping or large level variations. pf_gain of 1.2 to 1.5 % (dB) seems to work OK. Good area for further investigations and % improvements in speech quality. function vec = post_filter(vec, sample_freq_kHz, pf_gain = 1.5, voicing) % vec is rate K vector describing spectrum of current frame % lets pre-emp before applying PF. 20dB/dec over 300Hz pre = 20*log10(sample_freq_kHz/0.3); vec += pre; levels_before_linear = 10 .^ (vec/20); e_before = sum(levels_before_linear .^2); vec *= pf_gain; levels_after_linear = 10 .^ (vec/20); e_after = sum(levels_after_linear .^2); gain = e_after/e_before; gaindB = 10*log10(gain); vec -= gaindB; vec -= pre; endfunction % construct energy quantiser table, and save to text file to include in C function energy_q = create_energy_q energy_q = 10 + 40/16*(0:15); endfunction function save_energy_q(fn) energy_q = create_energy_q; f = fopen(fn, "wt"); fprintf(f, "1 %d\n", length(energy_q)); for n=1:length(energy_q) fprintf(f, "%f\n", energy_q(n)); end fclose(f); endfunction % save's VQ in format that can be compiled by Codec 2 build system function save_vq(vqset, filenameprefix) [Nvec order stages] = size(vqset); for s=1:stages fn = sprintf("%s_%d.txt", filenameprefix, s); f = fopen(fn, "wt"); fprintf(f, "%d %d\n", order, Nvec); for n=1:Nvec for k=1:order fprintf(f, "% 8.4f ", vqset(n,k,s)); end fprintf(f, "\n"); end fclose(f); end endfunction % Decoder side interpolation of Wo and voicing, to go from 25 Hz % sample rate used over channel to 100Hz internal sample rate of Codec % 2. function [Wo_ voicing_] = interp_Wo_v(Wo1, Wo2, voicing1, voicing2) M = 4; max_amp = 80; Wo_ = zeros(1,M); voicing_ = zeros(1,M); if !voicing1 && !voicing2 Wo_(1:M) = 2*pi/100; end if voicing1 && !voicing2 Wo_(1:M/2) = Wo1; Wo_(M/2+1:M) = 2*pi/100; voicing_(1:M/2) = 1; end if !voicing1 && voicing2 Wo_(1:M/2) = 2*pi/100; Wo_(M/2+1:M) = Wo2; voicing_(M/2+1:M) = 1; end if voicing1 && voicing2 Wo_samples = [Wo1 Wo2]; Wo_(1:M) = interp_linear([1 M+1], Wo_samples, 1:M); voicing_(1:M) = 1; end #{ printf("f: %d f+M/2: %d Wo: %f %f (%f %%) v: %d %d \n", f, f+M/2, model(f,1), model(f+M/2,1), 100*abs(model(f,1) - model(f+M/2,1))/model(f,1), voicing(f), voicing(f+M/2)); for i=f:f+M/2-1 printf(" f: %d v: %d v_: %d Wo: %f Wo_: %f\n", i, voicing(i), voicing_(i), model(i,1), model_(i,1)); end #} endfunction % Equaliser in front of EQ, see vq_700c_eq.m for development version function [rate_K_vec eq] = front_eq(rate_K_vec, eq) [tmp K] = size(rate_K_vec); ideal = [ 8 10 12 14 14*ones(1,K-1-4) -20]; gain = 0.02; update = rate_K_vec - ideal; eq = (1-gain)*eq + gain*update; eq(find(eq < 0)) = 0; endfunction codec2-1.0.1/octave/nf_from_gr.m000066400000000000000000000106471412132000500164210ustar00rootroot00000000000000% nf_from_gr.m % David Rowe Mar 2016 #{ Calculate NF from GNU Radio output samples in ...IQIQ... (32 bit float) sample files 1/ Take one sample with a -100dBm input carrier 2/ Take another sample with no signal (just rx noise) 3/ Set Fs, adjust st and en to use a chunk of spectrum without too many birdies. Gotchas: 1/ Inspect Figure(1), the time domain plots. 2/ Make sure plenty of ADC bits are being used with the noise-only sample, we don't want ADC quantisation noise to dominate. Aim for about half full scale. 3/ Also watch out for clipping on either sample. #} 1; function det_nf(p_filename, n_filename, title, Fs, st, en, Pin_dB, real_file=0) if real_file % real samples files of 16 bit shorts fs=fopen(p_filename,"rb"); p = fread(fs,Inf,"short"); fclose(fs); fs=fopen(n_filename,"rb"); pn = fread(fs,Inf,"short"); fclose(fs); else % GNU radio complex file input p = load_comp(p_filename); pn = load_comp(n_filename); end % skip any start up transients tst = floor(0.1*Fs); ten = st + Fs - 1; P = fft(p(tst:ten)); N = fft(pn(tst:ten)); PdB = 20*log10(abs(P)); NdB = 20*log10(abs(N)); figure(1); clf; subplot(211); plot(real(p(tst:tst+floor(Fs*0.1)))); subplot(212); plot(real(pn(tst:tst+floor(Fs*0.1)))); figure(2); clf; subplot(211); plot(st:en, PdB(st:en)); subplot(212); plot(st:en, NdB(st:en)); #{ ------------------------------------------------------------------------ From Wikipedia: The Noise Figure is the difference in decibels (dB) between the noise output of the actual receiver to the noise output of an “ideal” receiver An ideal receiver would have an output noise power of: Nout_dB = 10log10(B) -174 + G_dB The -174 dBm/Hz figure is the thermal noise density at 25C, for every 1Hz of bandwidth your will get -174dBm of noise power. It's the lower limit set by the laws of physics. G_dB is the Rx gain. The 10log10(B) term takes into account the bandwidth of the Rx. A wider bandwidth means more total noise power. So if you have a 1Hz bandwidth, and a gain of 100dB, you would expect Nout_NdB = 0 -174 + 100 = -74dBm at the rx output with no signal. If you have a 1000Hz bandwidth receiver you would have NdB_out = 20 -174 + 100 = -44dBm of noise power at the output. To determine Noise Figure: 1) Sample the Rx output first with a test signal and then with noise only. 2) Find the Rx gain using the test signal. 3) Find the noise output power, then using the gain we can find the noise input power. 4) Normalise the noise input power to 1Hz noise bandwidth and compare to the thermal noise floor. ---------------------------------------------------------------------------- #} % variance is the power of a sampled signal Pout_dB = 10*log10(var(P(st:en))); % Rx output power with test signal G_dB = Pout_dB - Pin_dB; % Gain of Rx Nout_dB = 10*log10(var(N(st:en))); % Rx output power with noise Nin_dB = Nout_dB - G_dB; % Rx input power with noise No_dB = Nin_dB - 10*log10(en-st); % Rx input power with noise in 1Hz bandwidth NF_dB = No_dB + 174; % compare to thermal noise to get NF printf("%10s: Pin: %4.1f Pout: %4.1f G: %4.1f NF: %3.1f dB\n", title, Pin_dB, Pout_dB, G_dB, NF_dB); endfunction % HackRF -------------------------- %p_filename = "~/Desktop/blogs/nf/hackrf_100dbm_4MHz.bin"; %n_filename = "~/Desktop/blogs/nf/hackrf_nosignal_4MHz.bin"; p_filename = "~/codec2-dev/build_linux/unittest/hackrf_100dbm_4MHz.bin"; n_filename = "~/codec2-dev/build_linux/unittest/hackrf_nosignal_4MHz.bin"; det_nf(p_filename, n_filename, "HackRF", 4E6, 180E3, 600E3, -100); #{ % RTL-SDR -------------------------- p_filename = "~/Desktop/nf/neg100dBm_2MHz.bin"; n_filename = "~/Desktop/nf/nosignal_2MHz.bin"; det_nf(p_filename, n_filename, "RTL-SDR", 2E6, 100E3, 300E3, -100); % AirSpy ------------------------- p_filename = "~/Desktop/nf/airspy_100dbm_2.5MSPS.bin"; n_filename = "~/Desktop/nf/airspy_nosig_2.5MSPS.bin"; det_nf(p_filename, n_filename, "AirSpy", 2.5E6, 100E3, 300E3, -100); % Fun Cube Dongle Pro Plus ------------------------- p_filename = "~/Desktop/nf/fcdpp_100dbm_192khz.bin"; n_filename = "~/Desktop/nf/fcdpp_nosig_192khz.bin"; det_nf(p_filename, n_filename, "FunCube PP", 192E3, 25E3, 125E3, -100); #} codec2-1.0.1/octave/nf_from_stdio.m000066400000000000000000000105041412132000500171230ustar00rootroot00000000000000% nf_from_gr.m % David Rowe Mar 2018 #{ Calculate NF in real time from 16 bit real samples from stdin 1/ Using gqrx: gqrx setup: Configure I/O devices: To switch on LNA bias for HackRF, in Configure I/O devices menu set: Device String: hackrf,bias=1 To switch on LNA bias for airspy run for a few seconds this before starting gqrx: $ airspy_rx -r /dev/null -f 435 -b 1 I used a sample rate of 250000 for Airspy R2, 3000000 for Airspy Mini Input options...: start with set all gain sliders set to maximum FFT Setting.....: freq Zoom to max Receiver Options: On spectrum display, drag filter width until it's about 12k Filter Shape Normal Mode USB Tune until tone is between 2 and 4 k Press UDP button Then in a Linux Term: $ nc -ul 7355 | octave --no-gui -qf nf_from_stdio.m 48000 2/ Using command line tools. Compile airspy tools and csdr from source: a) Airspy: $ airspy_rx -a 6000000 -l 14 -m 15 -v 15 -r - -f 434.998 -b 1 | \ csdr convert_s16_f | csdr fir_decimate_cc 50 | csdr convert_f_s16 | \ octave --no-gui -qf ~/codec2-dev/octave/nf_from_stdio.m 120000 complex Note: we tuned a few kHz down to put the test tone in the 2000 to 4000 Hz range. b) HackRF: Term 1: $ ~/codec2-dev/octave$ nc -ul 7355 | octave --no-gui -qf nf_from_stdio.m 80000 complex Term 2: $ hackrf_transfer -r - -f 434995000 -s 4000000 -a 1 -p 1 -l 40 -g 32 | \ csdr convert_s8_f | csdr fir_decimate_cc 50 | csdr convert_f_s16 | \ nc localhost -u 7355 Note: HackRF needed a bit of tuning to get test tone in 2000 to 4000 Hz range. This can be tricky with the command line method, easier with gqrx. c) rtlsdr (assuming sig gen set to 144.5MHz, -100dBm) Term 1: $ ./rtl_sdr -g 50 -s 2400000 -f 144.498E6 - | csdr convert_u8_f | csdr fir_decimate_cc 50 | \ csdr convert_f_s16 | octave --no-gui -qf ~/codec2/octave/nf_from_stdio.m 48000 complex TODO: [ ] work out why noise power st bounces around so much, signal power seems stable [ ] reduce CPU load, in particular of plotting #} graphics_toolkit ("gnuplot") % command line arguments arg_list = argv (); if nargin == 0 printf("\nusage: %s FsHz [real|complex] [testToneLeveldBm]\n\n", program_name()); exit(0); end Fs = str2num(arg_list{1}); shorts_per_sample = 1; if nargin == 2 if strcmp(arg_list{2}, "real") shorts_per_sample = 1; end if strcmp(arg_list{2}, "complex") shorts_per_sample = 2; end end Pin_dB = -100; % level of input test tone if nargin == 3 Pin_dB = str2num(arg_list{3}); end printf("Fs: %d shorts_per_sample: %d Pin_dB: %f\n", Fs, shorts_per_sample, Pin_dB); [s,c] = fread(stdin, shorts_per_sample*Fs, "short"); while c if shorts_per_sample == 2 s = s(1:2:end)+j*s(2:2:end); end S = fft(s.*hanning(Fs)); SdB = 20*log10(abs(S)); figure(1); plot(real(s)); axis([0 Fs -4E4 4E4]); figure(2); plot(SdB); axis([0 12000 40 180]); % assume sine wave is between 2000 and 4000 Hz, and dominates energy in that % region. Noise is between 5000 - 10000 Hz sig_st = 2000; sig_en = 5000; noise_st = 6000; noise_en = 10000; % find peak and sum power a few bins either side, this ensure we don't capture % too much noise as well [pk pk_pos] = max(abs(S)); if pk_pos > 5 Pout_dB1 = 10*log10(sum(abs(S(pk_pos-5:pk_pos+5)).^2)); % Rx output power with test signal else Pout_dB1 = 0; end Pout_dB = 10*log10(sum(abs(S(sig_st:sig_en)).^2)); % Rx output power with test signal G_dB = Pout_dB - Pin_dB; % Gain of Rx Nout_dB = 10*log10(sum(abs(S(noise_st:noise_en)).^2)/(noise_en-noise_st)); % Rx output power with noise Nin_dB = Nout_dB - G_dB; % Rx input power with noise No_dB = Nin_dB; %- 10*log10(noise_en-noise_st); % Rx input power with noise in 1Hz bandwidth NF_dB = No_dB + 174; % compare to thermal noise to get NF printf("Pout: %4.1f %d %4.1f Nout: %4.1f G: %4.1f No: %4.1f NF: %3.1f dB\n", Pout_dB, pk_pos, Pout_dB1, Nout_dB, G_dB, No_dB, NF_dB); pause(2); [s,c] = fread(stdin, shorts_per_sample*Fs, "short"); endwhile codec2-1.0.1/octave/ofdm_acquisition.m000066400000000000000000000204001412132000500176240ustar00rootroot00000000000000% ofdm_acquisition.m % David Rowe Jan 2021 % % Simulations used for development of HF data modem burst mode acquisition % % To run headless on a server: % % DISPLAY=\"\" octave-cli --no-gui -qf ofdm_dev.m > 210218.txt & ofdm_lib; channel_lib; % Build a vector of Tx bursts in noise, one burst occurs every padded_burst_len samples function [rx tx_preamble tx_postamble burst_len padded_burst_len ct_targets states] = generate_bursts(sim_in) config = ofdm_init_mode(sim_in.mode); states = ofdm_init(config); ofdm_load_const; tx_preamble = states.tx_preamble; tx_postamble = states.tx_postamble; Nbursts = sim_in.Nbursts; tx_bits = create_ldpc_test_frame(states, coded_frame=0); tx_burst = [tx_preamble ofdm_mod(states, tx_bits) tx_postamble]; burst_len = length(tx_burst); tx_burst = ofdm_hilbert_clipper(states, tx_burst, tx_clip_en=0); padded_burst_len = Fs+burst_len+Fs; tx = []; ct_targets = []; for f=1:Nbursts % 100ms of jitter in the burst start point jitter = floor(rand(1,1)*0.1*Fs); tx_burst_padded = [zeros(1,Fs+jitter) tx_burst zeros(1,Fs-jitter)]; ct_targets = [ct_targets Fs+jitter]; tx = [tx tx_burst_padded]; end % adjust channel simulator SNR setpoint given (burst on length)/(sample length) ratio mark_space_SNR_offset = 10*log10(burst_len/padded_burst_len); SNRdB_setpoint = sim_in.SNR3kdB + mark_space_SNR_offset; %printf("SNR3kdB: %f Burst offset: %f\n", sim_in.SNR3kdB, mark_space_SNR_offset) rx = channel_simulate(Fs, SNRdB_setpoint, sim_in.foff_Hz, sim_in.channel, tx); endfunction function results = evaluate_candidate(states, det, i, Nsamperburstpadded, ct_target, foff_Hz, ttol_samples, ftol_hz) results.candidate = 0; if det.timing_mx > states.timing_mx_thresh % OK we have located a candidate peak % re-base ct_est to be wrt start of current burst reference frame ct_est = det.ct_est - (i-1)*Nsamperburstpadded; delta_ct = abs(ct_est-ct_target); delta_foff = det.foff_est-foff_Hz; ok = (abs(delta_ct) < ttol_samples) && (abs(delta_foff) < ftol_hz); results.candidate = 1; results.ct_est = ct_est; results.delta_ct = delta_ct; results.delta_foff = delta_foff; results.ok = ok; end endfunction % test frame by frame acquisition algorithm function Pa = frame_by_frame_acquisition_test(mode="datac1", Ntests=10, channel="awgn", SNR3kdB=100, foff_Hz=0, verbose_top=0) sim_in.SNR3kdB = SNR3kdB; sim_in.channel = channel; sim_in.foff_Hz = foff_Hz; sim_in.mode = mode; sim_in.Nbursts = Ntests; [rx tx_preamble tx_postamble Nsamperburst Nsamperburstpadded ct_targets states] = generate_bursts(sim_in); states.verbose = bitand(verbose_top,3); ofdm_load_const; timing_mx_log = []; ct_log = []; delta_ct_log = []; delta_foff_log = []; state_log = []; % allowable tolerance for acquistion ftol_hz = 2; % we can sync up on this (todo: make mode selectable) ttol_samples = 0.006*Fs; % CP length (todo: make mode selectable) target_acq = zeros(1,Ntests); state = 'acquisition'; for n=1:Nsamperframe:length(rx)-2*Nsamperframe pre = burst_acquisition_detector(states, rx, n, tx_preamble); post = burst_acquisition_detector(states, rx, n, tx_postamble); % adjust time reference for this simulation pre.ct_est += n; post.ct_est += n; timing_mx_log = [timing_mx_log [pre.timing_mx; post.timing_mx]]; % state machine to simulate acquisition/demod processing next_state = state; if strcmp(state,'acquisition') state_log = [state_log 0]; % work out what burst we are evaluating i = ceil(n/Nsamperburstpadded); % i-th burst we are evaluating w = (i-1)*Nsamperburstpadded; % offset of burst in s() for plotting purposes ct_target_pre = ct_targets(i); ct_target_post = ct_targets(i) + Nsamperburst - length(tx_preamble); pre_eval = evaluate_candidate(states, pre, i, Nsamperburstpadded, ct_target_pre, foff_Hz, ttol_samples, ftol_hz); post_eval = evaluate_candidate(states, post, i, Nsamperburstpadded, ct_target_post, foff_Hz, ttol_samples, ftol_hz); if pre_eval.candidate if pre_eval.ok == 0 target_acq(i) = -1; % flag bad candidate end if pre_eval.ok && (target_acq(i) == 0) target_acq(i) = 1; % flag a sucessful acquisition next_state = "demod"; modem_frame = 0; end delta_ct_log = [delta_ct_log pre_eval.delta_ct]; delta_foff_log = [delta_foff_log pre_eval.delta_foff]; ct_log = [ct_log w+pre_eval.ct_est]; if states.verbose printf("Pre i: %2d n: %8d ct_est: %6d delta_ct: %6d foff_est: %5.1f timing_mx: %3.2f Acq: %d\n", i, n, pre_eval.ct_est, pre_eval.delta_ct, pre.foff_est, pre.timing_mx, target_acq(i)); end end if post_eval.candidate if post_eval.ok == 0 target_acq(i) = -1; % flag bad candidate end if post_eval.ok && (target_acq(i) == 0) target_acq(i) = 1; % flag a successful acquisition next_state = "demod"; modem_frame = Np-2; end delta_ct_log = [delta_ct_log post_eval.delta_ct]; delta_foff_log = [delta_foff_log post_eval.delta_foff]; ct_log = [ct_log w+post_eval.ct_est]; if states.verbose printf("Post i: %2d n: %8d ct_est: %6d delta_ct: %6d foff_est: %5.1f timing_mx: %3.2f Acq: %d\n", i, n, post_eval.ct_est, post_eval.delta_ct, post.foff_est, post.timing_mx, target_acq(i)); end end end if strcmp(state, "demod") state_log = [state_log 1]; modem_frame++; if modem_frame > states.Np next_state = "acquisition"; end end state = next_state; end if bitand(verbose_top,8) figure(1); clf; plot(timing_mx_log(1,:),'+-;preamble;'); hold on; plot(timing_mx_log(2,:),'o-;postamble;'); plot(0.35+0.1*state_log,'-g;state;'); title('mx log'); axis([0 length(timing_mx_log) 0 0.5]); grid; hold off; figure(4); clf; plot(real(rx)); axis([0 length(rx) -3E4 3E4]); hold on; plot(ct_log,zeros(1,length(ct_log)),'r+','markersize', 25, 'linewidth', 2); hold off; figure(5); clf; plot_specgram(rx, Fs, 500, 2500); end Pa = length(find(target_acq == 1))/Ntests; printf("%s %s SNR: %3.1f foff: %3.1f P(acq) = %3.2f\n", mode, channel, SNR3kdB, foff_Hz, Pa); endfunction % test frame by frame across modes, channels, and SNR (don't worry about sweeping freq) function acquistion_curves_frame_by_frame_modes_channels_snr(Ntests=5, quick_test=0) modes={'datac0', 'datac1', 'datac3'}; if quick_test Ntests = 5; channels={'awgn','mpp'}; SNR = [0 5]; else channels={'awgn', 'mpm', 'mpp', 'notch'}; SNR = [ -10 -5 -3.5 -1.5 0 1.5 3.5 5 7.5 10 15]; end cc = ['b' 'g' 'k' 'c' 'm' 'r']; pt = ['+' '*' 'x' 'o' '+' '*']; for i=1:length(modes) figure(i); clf; hold on; title(sprintf("%s P(acquisition)", modes{i})); end for m=1:length(modes) figure(m); for c=1:length(channels) Pa_log = []; for s=1:length(SNR) Pa = frame_by_frame_acquisition_test(modes{m}, Ntests, channels{c}, SNR(s), foff_hz=0, verbose=1); Pa_log = [Pa_log Pa]; end l = sprintf('%c%c-;%s;', cc(c), pt(c), channels{c}); plot(SNR, Pa_log, l, 'markersize', 10); end end for i=1:length(modes) figure(i); grid; xlabel('SNR3k dB'); legend('location', 'southeast'); xlim([min(SNR)-2 max(SNR)+2]); ylim([0 1.1]); print('-dpng', sprintf("%s_ofdm_dev_acq_curves_fbf_%s.png", datestr(clock(),"yyyy-mm-dd"), modes{i})); end endfunction % main starts here ----------------------------------------- format; more off; pkg load signal; graphics_toolkit ("gnuplot"); randn('seed',1); % --------------------------------------------------------- % choose simulation to run here % --------------------------------------------------------- frame_by_frame_acquisition_test("datac0", Ntests=5, 'mpp', SNR3kdB=5, foff_hz=0, verbose=1+8); %acquistion_curves_frame_by_frame_modes_channels_snr(Ntests=50, quick_test=0) codec2-1.0.1/octave/ofdm_demod_c.m000066400000000000000000000020041412132000500166660ustar00rootroot00000000000000% ofdm_demod_c.m % David Rowe April 2018 % % Plots data from The C OFDM demodulator ofdm_demod, in similar format to % plots from Octave OFDM demodulator ofdm_rx.m % % Useful for of line analysis of a demod run function ofdm_demod_c(filename, mode="700D") ofdm_lib; more off; % init modem config = ofdm_init_mode(mode); states = ofdm_init(config); ofdm_load_const; states.verbose = 0; load(filename); figure(1); clf; plot(rx_np_log_c,'+'); mx = 2*max(abs(rx_np_log_c)); axis([-mx mx -mx mx]); title('Scatter'); figure(2); clf; plot(phase_est_pilot_log_c(:,2:Nc),'g+', 'markersize', 5); title('Phase Est'); axis([1 length(phase_est_pilot_log_c) -pi pi]); figure(3); clf; stem(timing_est_log_c) title('Timing Est'); figure(4); clf; plot(foff_hz_log_c) mx = max(abs(foff_hz_log_c))+1; axis([1 max(length(foff_hz_log_c),2) -mx mx]); title('Fine Freq'); ylabel('Hz') figure(5); clf; plot(snr_est_log_c); ylabel('SNR (dB)') title('SNR Estimates') endfunction codec2-1.0.1/octave/ofdm_ldpc_rx.m000066400000000000000000000224541412132000500167420ustar00rootroot00000000000000% ofdm_ldpc_rx.m % David Rowe April 2017 % % OFDM file based rx, with LDPC and interleaver, Octave version of src/ofdm_demod.c #{ 1. Streaming mode operation: ofdm_ldpc_rx("test_700d.raw","700D") 2. Burst mode, tell state machine there is one packet in each burst: ofdm_ldpc_rx("test_datac0.raw","datac0","packetsperburst",1) #} function ofdm_ldpc_rx(filename, mode="700D", varargin) ofdm_lib; ldpc; gp_interleaver; more off; pkg load signal; % init modem config = ofdm_init_mode(mode); states = ofdm_init(config); ofdm_load_const; states.verbose = 1; pass_packet_count = 0; i=1; while i <= length(varargin) if strcmp(varargin{i},"packetsperburst") states.data_mode = "burst"; % use pre/post amble based sync states.packetsperburst = varargin{i+1}; i++; states.postambledetectoren = 1; elseif strcmp(varargin{i},"passpacketcount") pass_packet_count = varargin{i+1}; i++; else printf("\nERROR unknown argument: [%d] %s \n", i ,varargin{i}); return; end i++; end % some constants used for assembling modem frames [code_param Nbitspercodecframe Ncodecframespermodemframe] = codec_to_frame_packing(states, mode); % load real samples from file Ascale= states.amp_scale/2.0; % /2 as real signal has half amplitude frx=fopen(filename,"rb"); rx = fread(frx, Inf, "short")/Ascale; fclose(frx); Nsam = length(rx); prx = 1; % Generate tx frame for BER calcs payload_bits = round(ofdm_rand(code_param.data_bits_per_frame)/32767); tx_bits = fec_encode(states, code_param, mode, payload_bits, Ncodecframespermodemframe, Nbitspercodecframe); % Some handy constants Nsymsperframe = Nbitsperframe/bps; Nsymsperpacket = Nbitsperpacket/bps; Ncodedbitsperpacket = code_param.coded_bits_per_frame; Ncodedsymsperpacket = code_param.coded_syms_per_frame; % init logs and BER stats rx_bits = []; rx_np_log = []; timing_est_log = []; delta_t_log = []; foff_est_hz_log = []; channel_est_pilot_log = []; snr_log = []; mean_amp_log = []; Terrs = Tbits = Terrs_coded = Tbits_coded = Perrs_coded = 0; Nerrs_coded_log = Nerrs_log = []; error_positions = []; Nerrs_coded = Nerrs_raw = 0; paritychecks = [0]; EsNo = 1; rx_uw = zeros(1,states.Nuwbits); rx_syms = zeros(1,Nsymsperpacket); rx_amps = zeros(1,Nsymsperpacket); packet_count = frame_count = 0; % main loop ---------------------------------------------------------------- f = 1; while(prx < Nsam) % insert samples at end of buffer, set to zero if no samples % available to disable phase estimation on future pilots on last % frame of simulation lnew = min(Nsam-prx,states.nin); rxbuf_in = zeros(1,states.nin); if lnew rxbuf_in(1:lnew) = rx(prx:prx+lnew-1); end prx += states.nin; if states.verbose printf("f: %3d nin: %4d st: %-6s ", f, states.nin, states.sync_state); end if strcmp(states.sync_state,'search') [timing_valid states] = ofdm_sync_search(states, rxbuf_in); else % accumulate a buffer of data symbols for this packet rx_syms(1:end-Nsymsperframe) = rx_syms(Nsymsperframe+1:end); rx_amps(1:end-Nsymsperframe) = rx_amps(Nsymsperframe+1:end); [states rx_bits achannel_est_pilot_log arx_np arx_amp] = ofdm_demod(states, rxbuf_in); rx_syms(end-Nsymsperframe+1:end) = arx_np; rx_amps(end-Nsymsperframe+1:end) = arx_amp; rx_uw = extract_uw(states, rx_syms(end-Nuwframes*Nsymsperframe+1:end), rx_amps(end-Nuwframes*Nsymsperframe+1:end)); % We need the full packet of symbols before disassembling and checking for bit errors if (states.modem_frame == (states.Np-1)) packet_count++; % unpack, de-interleave PSK symbols and symbol amplitudes [rx_uw_unused payload_syms payload_amps txt_bits] = disassemble_modem_packet(states, rx_syms, rx_amps); payload_syms_de = gp_deinterleave(payload_syms); payload_amps_de = gp_deinterleave(payload_amps); % Count uncoded (raw) errors rx_bits = zeros(1,Ncodedbitsperpacket); for s=1:Ncodedsymsperpacket if bps == 2 rx_bits(2*s-1:2*s) = qpsk_demod(payload_syms_de(s)); end if bps == 4 rx_bits(bps*(s-1)+1:bps*s) = qam16_demod(states.qam16,payload_syms_de(s), payload_amps_de(s)); end end errors = xor(tx_bits, rx_bits); Nerrs = sum(errors); Nerrs_log = [Nerrs_log Nerrs]; Nerrs_raw = Nerrs; Terrs += Nerrs; Tbits += Nbitsperpacket; % LDPC decode % keep earlier mean amplitude estimator for compatability with 700D if states.amp_est_mode == 0 mean_amp = states.mean_amp; else mean_amp = mean(payload_amps_de)+1E-12; end mean_amp_log = [mean_amp_log mean_amp]; % used fixed EsNo est, as EsNo estimator for QAM not working very well at this stage EsNo = 10^(states.EsNodB/10); % TODO 2020 support for padding with known data bits [rx_codeword paritychecks] = ldpc_dec(code_param, mx_iter=100, demod=0, dec=0, ... payload_syms_de/mean_amp, EsNo, payload_amps_de/mean_amp); rx_bits = rx_codeword(1:code_param.data_bits_per_frame); errors = xor(payload_bits, rx_bits); Nerrs_coded = sum(errors); if Nerrs_coded Perrs_coded++; end Terrs_coded += Nerrs_coded; Tbits_coded += code_param.data_bits_per_frame; Nerrs_coded_log = [Nerrs_coded_log Nerrs_coded]; % per-packet SNR estimate EsNo_estdB = esno_est_calc(rx_syms); SNR_estdB = snr_from_esno(states, EsNo_estdB); snr_log = [snr_log SNR_estdB]; end % we are in sync so log modem states rx_np_log = [rx_np_log arx_np]; timing_est_log = [timing_est_log states.timing_est]; delta_t_log = [delta_t_log states.delta_t]; foff_est_hz_log = [foff_est_hz_log states.foff_est_hz]; channel_est_pilot_log = [channel_est_pilot_log; achannel_est_pilot_log]; frame_count++; end states = sync_state_machine(states, rx_uw); if states.verbose if strcmp(states.last_sync_state,'search') == 0 pcc = max(paritychecks); iter = 0; for i=1:length(paritychecks) if paritychecks(i) iter=i; end end % complete logging line if (states.modem_frame == 0) && (strcmp(states.last_sync_state, "trial") == 0) printf("euw: %3d %d mf: %2d pbw: %s foff: %4.1f eraw: %3d ecod: %3d iter: %3d pcc: %3d snr: %5.2f", states.uw_errors, states.sync_counter, states.modem_frame, states.phase_est_bandwidth(1), states.foff_est_hz, Nerrs_raw, Nerrs_coded, iter, pcc, SNR_estdB); else printf("euw: %3d %d mf: %2d pbw: %s foff: %4.1f", states.uw_errors, states.sync_counter, states.modem_frame, states.phase_est_bandwidth(1), states.foff_est_hz); end end printf("\n"); end % reset stats if in streaming mode, don't reset if in burst mode if strcmp(states.data_mode, "streaming") && states.sync_start Nerrs_raw = Nerrs_coded = 0; Nerrs_log = []; Terrs = Tbits = 0; Tpacketerrs = Tpackets = 0; Terrs_coded = Tbits_coded = 0; error_positions = Nerrs_coded_log = []; end f++; end Nframes = f; printf("Raw BER..: %5.4f Tbits: %5d Terrs: %5d SNR3k: %5.2f\n", Terrs/(Tbits+1E-12), Tbits, Terrs, mean(snr_log)); printf("Coded BER: %5.4f Tbits: %5d Terrs: %5d\n", Terrs_coded/(Tbits_coded+1E-12), Tbits_coded, Terrs_coded); printf("Coded PER: %5.4f Pckts: %5d Perrs: %5d Npre: %d Npost: %d\n", Perrs_coded/(packet_count+1E-12), packet_count, Perrs_coded, states.npre, states.npost); if length(rx_np_log) figure(1); clf; plot(exp(j*pi/4)*rx_np_log(floor(end/4):floor(end-end/8)),'+'); mx = 2*mean(abs(channel_est_pilot_log(:))); axis([-mx mx -mx mx]); title('Scatter'); figure(2); clf; plot(angle(channel_est_pilot_log),'g+', 'markersize', 5); title('Phase est'); axis([1 length(channel_est_pilot_log) -pi pi]); figure(3); clf; amp_est = abs(channel_est_pilot_log); plot(amp_est,'g+', 'markersize', 5); title('Amp est'); axis([1 length(channel_est_pilot_log) min(amp_est(:)) max(amp_est(:))]); figure(4); clf; subplot(211); plot(snr_log); ylabel('SNR3kdB'); subplot(212); plot(mean_amp_log); ylabel('mean amp'); figure(5); clf; subplot(211) stem(delta_t_log) title('delta t'); subplot(212) plot(timing_est_log); title('timing est'); figure(6); clf; plot(foff_est_hz_log) mx = max(max(abs(foff_est_hz_log)),1); axis([1 max(Nframes,2) -mx mx]); title('Fine Freq'); ylabel('Hz') end if length(Nerrs_log) > 1 figure(7); clf; subplot(211) stem(Nerrs_log); title('Uncoded errrors/modem frame') axis([1 length(Nerrs_log) 0 Nbitsperpacket*0.2]); if length(Nerrs_coded_log) subplot(212) stem(Nerrs_coded_log); title('Coded errors/mode frame') axis([1 length(Nerrs_coded_log) 0 Nbitsperpacket*0.2]); end end figure(9); clf; plot_specgram(rx); if pass_packet_count > 0 if packet_count >= pass_packet_count printf("Pass!\n"); else printf("Fail!\n"); end; end endfunction codec2-1.0.1/octave/ofdm_ldpc_tx.m000066400000000000000000000105171412132000500167410ustar00rootroot00000000000000% ofdm_ldpc_tx.m % David Rowe April 2017 % % File based ofdm tx with LDPC encoding and interleaver. Generates a % file of ofdm samples, including optional channel simulation. #{ 1. 10 seconds, AWGN channel at SNR3k=3dB octave:4> ofdm_ldpc_tx("test_700d.raw", "700D", 10, 3) 2. 10 seconds, multipath poor channel at SNR=6dB octave:5> ofdm_ldpc_tx("test_700d.raw", "700D", 10, 6, "mpp") 3. Data mode example, three bursts of one packet each, SNR=100dB: octave:6> ofdm_ldpc_tx("test_datac0.raw","datac0",1,100,"awgn","bursts",3) #} function ofdm_ldpc_tx(filename, mode="700D", N, SNR3kdB=100, channel='awgn', varargin) ofdm_lib; ldpc; gp_interleaver; channel_lib; pkg load signal; randn('seed',1); more off; tx_clip_en = 0; freq_offset_Hz = 0.0; burst_mode = 0; Nbursts = 1; i = 1; while i<=length(varargin) if strcmp(varargin{i},"txclip") txclip_en = 1; elseif strcmp(varargin{i},"bursts") burst_mode = 1; Nbursts = varargin{i+1}; i++; else printf("\nERROR unknown argument: %s\n", varargin{i}); return; end i++; end % init modem config = ofdm_init_mode(mode); states = ofdm_init(config); print_config(states); ofdm_load_const; if burst_mode % burst mode: treat N as Npackets Npackets = N; else % streaming mode: treat N as Nseconds Npackets = round(N/states.Tpacket); end % some constants used for assembling modem frames [code_param Nbitspercodecframe Ncodecframespermodemframe] = codec_to_frame_packing(states, mode); % OK generate a modem frame using random payload bits if strcmp(mode, "2020") payload_bits = round(ofdm_rand(Ncodecframespermodemframe*Nbitspercodecframe)/32767); else payload_bits = round(ofdm_rand(code_param.data_bits_per_frame)/32767); end [packet_bits bits_per_packet] = fec_encode(states, code_param, mode, payload_bits, Ncodecframespermodemframe, Nbitspercodecframe); % modulate to create symbols and interleave tx_symbols = []; for b=1:bps:bits_per_packet if bps == 2 tx_symbols = [tx_symbols qpsk_mod(packet_bits(b:b+bps-1))]; end if bps == 4 tx_symbols = [tx_symbols qam16_mod(states.qam16, packet_bits(b:b+bps-1))]; end end assert(gp_deinterleave(gp_interleave(tx_symbols)) == tx_symbols); tx_symbols = gp_interleave(tx_symbols); % generate txt (non FEC protected) symbols txt_bits = zeros(1,Ntxtbits); txt_symbols = []; for b=1:bps:length(txt_bits) if bps == 2 txt_symbols = [txt_symbols qpsk_mod(txt_bits(b:b+bps-1))]; end if bps == 4 txt_symbols = [txt_symbols qam16_mod(states.qam16,txt_bits(b:b+bps-1))]; end end % assemble interleaved modem packet that include UW and txt symbols modem_packet = assemble_modem_packet_symbols(states, tx_symbols, txt_symbols); % sanity check [rx_uw rx_codeword_syms payload_amps txt_bits] = disassemble_modem_packet(states, modem_packet, ones(1,length(modem_packet))); assert(rx_uw == states.tx_uw); % create a burst of concatenated packets atx = ofdm_txframe(states, modem_packet); tx = []; for f=1:Npackets tx = [tx atx]; end if length(states.data_mode) % note for burst mode postamble provides a "column" of pilots at the end of the burst tx = [states.tx_preamble tx states.tx_postamble]; end % if burst mode concatenate multiple bursts with spaces if burst_mode atx = tx; tx = []; for b=1:Nbursts tx = [tx atx zeros(1,states.Fs)]; end % adjust channel simulator SNR setpoint given (burst on length)/(total length including silence) ratio burst_len = length(atx); padded_burst_len = burst_len + states.Fs; mark_space_SNR_offset = 10*log10(burst_len/padded_burst_len); SNRdB_setpoint = SNR3kdB + mark_space_SNR_offset; printf("SNR3kdB: %4.2f Burst offset: %4.2f SNRdB_setpoint: %4.2f\n", SNR3kdB, mark_space_SNR_offset, SNRdB_setpoint) else SNRdB_setpoint = SNR3kdB; % no adjustment to SNR in streaming mode end printf("Npackets: %d Nbursts: %d ", Npackets, Nbursts); states.verbose=1; tx = ofdm_hilbert_clipper(states, tx, tx_clip_en); [rx_real rx] = ofdm_channel(states, tx, SNRdB_setpoint, channel, freq_offset_Hz); frx = fopen(filename,"wb"); fwrite(frx, rx_real, "short"); fclose(frx); if length(rx) >= states.Fs figure(1); clf; plot(20*log10(abs(fft(rx(1:states.Fs)/16384)))); axis([1 states.Fs -20 60]) end endfunction codec2-1.0.1/octave/ofdm_lib.m000066400000000000000000002016251412132000500160540ustar00rootroot00000000000000% ofdm_lib.m % David Rowe Mar 2017 #{ Library of functions that implement a PSK OFDM modem. #} 1; qam16; esno_est; %------------------------------------------------------------- % ofdm_init %------------------------------------------------------------- #{ Modem frame has a pilot every Ns symbols. There are Ns-1 data symbols between every pilot. e.g. for Ns=4, Nc=6: |-Nc-| Time DDDDDD | PPPPPPPP --- | DDDDDD | | DDDDDD Ns | DDDDDD | | PPPPPPPP --- \|/ DDDDDD | | Freq------------------> In this figure, time flows down, freq across. #} function states = ofdm_init(config) Rs = config.Rs; Tcp = config.Tcp; Ns = config.Ns; Nc = config.Nc; bps = config.bps; Np = config.Np; Ntxtbits = config.Ntxtbits; Nuwbits = config.Nuwbits; ftwindow_width = config.ftwindow_width; timing_mx_thresh = config.timing_mx_thresh; tx_uw = config.tx_uw; bad_uw_errors = config.bad_uw_errors; amp_scale = config.amp_scale; amp_est_mode = config.amp_est_mode; EsNo_est_all_symbols = config.EsNo_est_all_symbols; EsNodB = config.EsNodB; state_machine = config.state_machine; edge_pilots = config.edge_pilots; clip_gain1 = config.clip_gain1; clip_gain2 = config.clip_gain2; foff_limiter = config.foff_limiter; txbpf_width_Hz = config.txbpf_width_Hz; data_mode = config.data_mode; states.Fs = 8000; states.bps = bps; states.Rs = Rs; states.Tcp = Tcp; states.Ns = Ns; % one pilot every Ns symbols, e.g. Ns=4, ...PDDDPDDDP... states.Nc = Nc; % Number of carriers states.M = states.Fs/Rs; % oversampling rate states.Ncp = Tcp*states.Fs; states.Nbitsperframe = (Ns-1)*Nc*bps; % total bits in all data symbols in modem frame states.Nsampersymbol = states.M+states.Ncp; % number of samples in a single symbol states.Nsamperframe = Ns*states.Nsampersymbol; % number of samples in a modem frame states.qam16 = [ 1 + j, 1 + j*3, 3 + j, 3 + j*3; 1 - j, 1 - j*3, 3 - j, 3 - j*3; -1 + j, -1 + j*3, -3 + j, -3 + j*3; -1 - j, -1 - j*3, -3 - j, -3 - j*3]/3; rms = sqrt(states.qam16(:)'*states.qam16(:)/16);% set average Es to 1 states.qam16 /= rms; states.qam16 *= exp(-j*pi/4); % same rotation as QPSK constellation states.Np = Np; % number of modem frames per packet. In some modes we want % the total packet of data to span multiple modem frames, e.g. HF data % and/or when the FEC codeword is larger than the one % modem frame. In other modes (e.g. 700D/2020) Np=1, ie the modem frame % is the same length as the packet/FEC codeword. states.Nbitsperpacket = Np*states.Nbitsperframe; states.Tpacket = Np*Ns*(Tcp+1/Rs); % time for one packet in ms states.Ntxtbits = Ntxtbits; % reserved bits/frame for auxillary text information. Uncoded/unprotected so may % be of limited use going forward, consider setting to 0 states.Nuwbits = Nuwbits; % some basic sanity checks assert(floor(states.M) == states.M); % UW symbol placement. % Note we need to fill each UW symbols with bits. The LDPC decoder % works on symbols so we can't break up any symbols into UW/FEC % encoded bits. states.uw_ind = states.uw_ind_sym = []; uw_step = Nc+1; % default step for UW sym placement % lets see if all UW syms will fit in frame Nuwsyms = states.Nuwbits/bps; Ndatasymsperframe = (Ns-1)*Nc; last_sym = floor(Nuwsyms*uw_step/bps+1); if last_sym > states.Np*Ndatasymsperframe uw_step = Nc-1; % try a different step end last_sym = floor(Nuwsyms*uw_step/bps+1); assert(last_sym <= states.Np*Ndatasymsperframe); % we still can't fit them all % Place UW symbols in frame for i=1:Nuwsyms ind_sym = floor(i*uw_step/bps+1); % printf("%d sym: %d\n",i, ind_sym); states.uw_ind_sym = [states.uw_ind_sym ind_sym]; % symbol index for b=bps-1:-1:0 states.uw_ind = [states.uw_ind bps*ind_sym-b]; % bit index end end % how many of the first few frames have UW symbols in them Nsymsperframe = states.Nbitsperframe/states.bps; states.Nuwframes = ceil(states.uw_ind_sym(end)/Nsymsperframe); states.tx_uw = tx_uw; assert(length(states.tx_uw) == states.Nuwbits); tx_uw_syms = []; for b=1:bps:states.Nuwbits if bps == 2 tx_uw_syms = [tx_uw_syms qpsk_mod(states.tx_uw(b:b+1))]; end if bps == 4 tx_uw_syms = [tx_uw_syms qam16_mod(states.qam16, states.tx_uw(b:b+bps-1))]; end end states.tx_uw_syms = tx_uw_syms; % if the UW has this many errors it is "bad", the binomal cdf can be used to set this: % Nuw=12; plot(0:Nuw, binocdf(0:Nuw,Nuw,0.05)); hold on; plot(binocdf(0:Nuw,Nuw,0.5)); hold off; states.bad_uw_errors = bad_uw_errors; states.ofdm_peak = 16384; % use this to scale tx output to 16 bit short to a peak value of 16384. Adjusted by experiment states.amp_scale = amp_scale; % when using the clipping, this is the manual gain value. Adjusted by experiment, trade off between % increased average power and BER states.clip_gain1 = clip_gain1; states.clip_gain2 = clip_gain2; states.txbpf_width_Hz = txbpf_width_Hz; % this is used to scale inputs to LDPC decoder to make it amplitude indep states.mean_amp = 0; % use a fixed EsNo for LDPC decoder, this seems to work OK and avoid another estimator states.EsNodB = EsNodB; % generate same BPSK pilots each time rand('seed',1); states.pilots = 1 - 2*(rand(1,Nc+2) > 0.5); %printf("number of pilots total: %d\n", length(states.pilots)); % If set, place pilots at carrier 1 and Nc+2 to support low bandwith phase est over grid % of 12 pilot_samples. Used for 700D and 2020 states.edge_pilots = edge_pilots; if states.edge_pilots == 0 states.pilots(1) = 0; states.pilots(Nc+2) = 0; end % carrier tables for up and down conversion states.fcentre = fcentre = 1500; alower = fcentre - Rs * (Nc/2); % approx frequency of lowest carrier Nlower = round(alower / Rs) - 1; % round this to nearest integer multiple from 0Hz to keep DFT happy %printf(" fcentre: %f alower: %f alower/Rs: %f Nlower: %d\n", fcentre, alower, alower/Rs, Nlower); w = (Nlower:Nlower+Nc+1)*2*pi/(states.Fs/Rs); W = zeros(Nc+2,states.M); for c=1:Nc+2 W(c,:) = exp(j*w(c)*(0:states.M-1)); end states.w = w; states.W = W; % fine timing search +/- window_width/2 from current timing instant, % set this to roughly twice the maximum delay spread states.ftwindow_width = ftwindow_width; % magic number we adjust by experiment (see ofdm_dev.m acquisition tests, blog post on 700D sync) states.timing_mx_thresh = timing_mx_thresh; % Receive buffer: rxbufst + D P DDD P DDD P DDD P D % ^ % nominal start of current modem frame if length(data_mode) Nrxbufhistory = (states.Np+2)*states.Nsamperframe; % extra storage at start of rxbuf to allow us to step back in time else Nrxbufhistory = 0; end states.rxbufst = Nrxbufhistory; % start of rxbuf window used for demod of current rx frame states.Nrxbufhistory = Nrxbufhistory; % D P DDD P DDD P DDD P D states.Nrxbufmin = states.Nsampersymbol + 3*states.Nsamperframe + states.Nsampersymbol + states.Nsampersymbol; states.Nrxbuf = Nrxbufhistory + states.Nrxbufmin; states.rxbuf = zeros(1, states.Nrxbuf); % default settings on a bunch of options and states states.verbose = 0; states.timing_en = 1; states.foff_est_en = 1; states.phase_est_en = 1; states.phase_est_bandwidth = "high"; states.dpsk = 0; states.amp_est_mode = amp_est_mode; states.foff_est_gain = 0.1; states.foff_limiter = foff_limiter; states.foff_est_hz = 0; states.sample_point = states.timing_est = 1; states.nin = states.Nsamperframe; states.timing_valid = 0; states.timing_mx = 0; states.coarse_foff_est_hz = 0; states.foff_metric = 0; % generate OFDM pilot symbol, used for timing and freq offset est rate_fs_pilot_samples = states.pilots * W/states.M; % During tuning it was found that not including the cyc prefix in % rate_fs_pilot_samples produced better fest results %states.rate_fs_pilot_samples = [rate_fs_pilot_samples(states.M-states.Ncp+1:states.M) rate_fs_pilot_samples]; states.rate_fs_pilot_samples = [zeros(1,states.Ncp) rate_fs_pilot_samples]; % pre-compute a constant used to detect valid modem frames Npsam = length(states.rate_fs_pilot_samples); states.timing_norm = Npsam*(states.rate_fs_pilot_samples * states.rate_fs_pilot_samples'); % printf("timing_norm: %f\n", states.timing_norm) % sync state machine states.sync_state = states.last_sync_state = 'search'; states.uw_errors = 0; states.sync_counter = 0; states.frame_count = 0; % number of frames we have been in sync states.sync_start = 0; states.sync_end = 0; states.modem_frame = 0; % keep track of how many frames received in packet states.state_machine = state_machine; % mode specific state machine states.packetsperburst = 0; % for OFDM data modes, how many packets before we reset state machine states.postambledetectoren = strcmp(data_mode,"burst"); states.npre = states.npost = 0; % counters for logging % LDPC code is optionally enabled states.rate = 1.0; states.ldpc_en = 0; % init some output states for logging states.rx_sym = zeros(1+Ns+1+1, Nc+2); % Es/No (SNR) est states states.EsNo_est_all_symbols = EsNo_est_all_symbols; states.clock_offset_est = 0; % pre-amble for data modes states.data_mode = data_mode; if length(states.data_mode) states.tx_preamble = ofdm_generate_preamble(states, 2); states.tx_postamble = ofdm_generate_preamble(states, 3); end % automated tests test_qam16_mod_demod(states.qam16); test_assemble_disassemble(states); endfunction %------------------------------------------------------------------------------ % ofdm_init_mode - Helper function to set up modems for various FreeDV modes, % and parse mode string. %------------------------------------------------------------------------------ function config = ofdm_init_mode(mode="700D") % defaults for 700D Tcp = 0.002; Ns = 8; Ts = 0.018; Nc = 17; config.bps = 2; config.txbpf_width_Hz = 1500; config.Np = 1; config.Ntxtbits = 4; config.Nuwbits = 5*config.bps; config.ftwindow_width = 32; config.timing_mx_thresh = 0.35; config.bad_uw_errors = 3; config.amp_scale = 245E3; config.amp_est_mode = 0; config.EsNo_est_all_symbols = 1; config.EsNodB = 3; config.state_machine = "voice1"; config.edge_pilots = 1; config.clip_gain1 = 2.5; config.clip_gain2 = 0.8; config.foff_limiter = 0; config.txbpf_width_Hz = 2000; config.data_mode = ""; if strcmp(mode,"700D") || strcmp(mode,"700d") % defaults above elseif strcmp(mode,"700E") || strcmp(mode,"700e") Ts = 0.014; Tcp=0.006; Nc = 21; Ns=4; config.edge_pilots = 0; config.state_machine = "voice2"; config.Nuwbits = 12; config.bad_uw_errors = 3; config.Ntxtbits = 2; config.amp_est_mode = 1; config.ftwindow_width = 80; config.amp_scale = 155E3; config.clip_gain1 = 3; config.clip_gain2 = 0.8; config.foff_limiter = 1; elseif strcmp(mode,"2020") Ts = 0.0205; Nc = 31; config.amp_scale = 167E3; elseif strcmp(mode,"qam16c1") Ns=5; config.Np=5; Tcp = 0.004; Ts = 0.016; Nc = 33; config.data_mode = "streaming"; config.bps=4; config.Ntxtbits = 0; config.Nuwbits = 15*4; config.bad_uw_errors = 5; config.state_machine = "data"; config.ftwindow_width = 32; config.amp_scale = 132E3; config.EsNo_est_all_symbols = 0; config.amp_est_mode = 1; config.EsNodB = 10; elseif strcmp(mode,"qam16c2") Ns=5; config.Np=31; Tcp = 0.004; Ts = 0.016; Nc = 33; config.data_mode = "streaming"; config.bps=4; config.Ntxtbits = 0; config.Nuwbits = 42*4; config.bad_uw_errors = 15; config.ftwindow_width = 80; config.amp_scale = 135E3; config.state_machine = "data"; config.EsNo_est_all_symbols = 0; config.amp_est_mode = 1; config.EsNodB = 10; config.tx_uw = zeros(1,config.Nuwbits = 42*4); config.tx_uw(1:24) = [1 1 0 0 1 0 1 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0]; config.tx_uw(end-24+1:end) = [1 1 0 0 1 0 1 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0]; elseif strcmp(mode,"datac0") Ns=5; config.Np=4; Tcp = 0.006; Ts = 0.016; Nc = 9; config.data_mode = "streaming"; config.Ntxtbits = 0; config.Nuwbits = 32; config.bad_uw_errors = 9; config.state_machine = "data"; config.ftwindow_width = 80; config.amp_est_mode = 1; config.EsNodB = 3; config.edge_pilots = 0; config.timing_mx_thresh = 0.08; config.tx_uw = zeros(1,config.Nuwbits); config.tx_uw(1:16) = [1 1 0 0 1 0 1 0 1 1 1 1 0 0 0 0]; config.amp_scale = 300E3; config.clip_gain1 = 2.2; config.clip_gain2 = 0.8; elseif strcmp(mode,"datac1") Ns=5; config.Np=38; Tcp = 0.006; Ts = 0.016; Nc = 27; config.data_mode = "streaming"; config.Ntxtbits = 0; config.Nuwbits = 16; config.bad_uw_errors = 6; config.state_machine = "data"; config.ftwindow_width = 80; config.amp_est_mode = 1; config.EsNodB = 3; % just use default clipper (with no BPF) and let SSB BPF clean it up % config.amp_scale = 125E3; config.clip_gain1 = 2.5; config.clip_gain2 = 0.8; config.edge_pilots = 0; config.timing_mx_thresh = 0.10; config.tx_uw = [1 1 0 0 1 0 1 0 1 1 1 1 0 0 0 0]; elseif strcmp(mode,"datac3") Ns=5; config.Np=29; Tcp = 0.006; Ts = 0.016; Nc = 9; config.data_mode = "streaming"; config.edge_pilots = 0; config.Ntxtbits = 0; config.Nuwbits = 40; config.bad_uw_errors = 10; config.ftwindow_width = 80; config.timing_mx_thresh = 0.10; config.tx_uw = zeros(1,config.Nuwbits); config.tx_uw(1:24) = [1 1 0 0 1 0 1 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0]; config.tx_uw(end-24+1:end) = [1 1 0 0 1 0 1 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0]; config.amp_est_mode = 1; config.EsNodB = 3; config.state_machine = "data"; config.amp_scale = 300E3; config.clip_gain1 = 2.2; config.clip_gain2 = 0.8; elseif strcmp(mode,"1") Ns=5; config.Np=10; Tcp=0; Tframe = 0.1; Ts = Tframe/Ns; Nc = 1; else % try to parse mode string for user defined mode vec = sscanf(mode, "Ts=%f Nc=%d Ncp=%f"); Ts=vec(1); Nc=vec(2); Ncp=vec(3); end Rs=1/Ts; config.Rs = Rs; config.Tcp = Tcp; config.Ns = Ns; config.Nc = Nc; if !isfield(config,"tx_uw") config.tx_uw = zeros(1,config.Nuwbits); end end %------------------------------------------------------------------------------ % print_config - utility function to use ascsii-art to describe the modem frame %------------------------------------------------------------------------------ function print_config(states) ofdm_load_const; % ASCII-art packet visualisation s=1; u=1; Nuwsyms=length(uw_ind_sym); cr = 1:Nc+2; for f=1:Np for r=1:Ns for c=cr if r == 1 sym="P"; elseif c>1 && c <=(Nc+1) sym="."; if (u <= Nuwsyms) && (s == uw_ind_sym(u)) sym="U"; u++; end s++; else sym=" "; end printf("%s",sym); end printf("\n"); end end printf("Nc=%d Ts=%4.3f Tcp=%4.3f Ns: %d Np: %d\n", Nc, 1/Rs, Tcp, Ns, Np); printf("Nsymperframe: %d Nbitsperpacket: %d Nsamperframe: %d Ntxtbits: %d Nuwbits: %d Nuwframes: %d\n", Ns*Nc, Nbitsperpacket, Nsamperframe, Ntxtbits, Nuwbits, Nuwframes); printf("uncoded bits/s: %4.1f\n", Nbitsperpacket*Fs/(Np*Nsamperframe)); end % Gray coded QPSK modulation function function symbol = qpsk_mod(two_bits) two_bits_decimal = sum(two_bits .* [2 1]); switch(two_bits_decimal) case (0) symbol = 1; case (1) symbol = j; case (2) symbol = -j; case (3) symbol = -1; endswitch endfunction % Gray coded QPSK demodulation function function two_bits = qpsk_demod(symbol) bit0 = real(symbol*exp(j*pi/4)) < 0; bit1 = imag(symbol*exp(j*pi/4)) < 0; two_bits = [bit1 bit0]; endfunction function out = freq_shift(in, foff, Fs) foff_rect = exp(j*2*pi*foff/Fs); foff_phase_rect = exp(j*0); for r=1:length(in) foff_phase_rect *= foff_rect; out(r) = in(r)*foff_phase_rect; end endfunction % ----------------------------------------------------------------- % ofdm_mod - modulates a complete packet (one or more modem frames) % ---------------------------------------------------------------- function tx = ofdm_mod(states, tx_bits) ofdm_load_const; assert(length(tx_bits) == Nbitsperpacket); % map to symbols in linear array if bps == 1 tx_sym_lin = 2*tx_bits - 1; end if bps == 2 for s=1:Nbitsperpacket/bps tx_sym_lin(s) = qpsk_mod(tx_bits(2*(s-1)+1:2*s)); end end if bps == 4 for s=1:Nbitsperpacket/bps tx_sym_lin(s) = qam16_mod(states.qam16,tx_bits(4*(s-1)+1:4*s)); end end tx = ofdm_txframe(states, tx_sym_lin); endfunction % ---------------------------------------------- % ofdm_txframe - modulates one packet of symbols % ---------------------------------------------- function tx = ofdm_txframe(states, tx_sym_lin) ofdm_load_const; assert(length(tx_sym_lin) == Nbitsperpacket/bps); % place data symbols in multi-carrier frame with pilots and boundary carriers s = 1; tx_frame = zeros(Np*Ns,Nc+2); for r=1:Np*Ns if mod(r-1,Ns) == 0 % row of pilots tx_frame(r,:) = pilots; else % row of data symbols arowofsymbols = tx_sym_lin(s:s+Nc-1); tx_frame(r,2:Nc+1) = arowofsymbols; s += Nc; if states.dpsk tx_frame(r,2:Nc+1) = tx_frame(r,2:Nc+1) .* tx_frame(r-1,2:Nc+1); end end end % make sure we use all the symbols assert((s-1) == length(tx_sym_lin)); % OFDM upconvert symbol by symbol so we can add CP tx = []; for r=1:Ns*Np asymbol = tx_frame(r,:) * W/M; asymbol_cp = [asymbol(M-Ncp+1:M) asymbol]; tx = [tx asymbol_cp]; end endfunction % ----------------------------------------------------------- % est_timing % ----------------------------------------------------------- #{ Correlates known samples (for example pilots or a preamble) with a window of received samples to determine the most likely timing offset. Optionally combines known samples from two frames (e.g. pilots at start of this and next frame) so we need at least Nsamperframe+M+Ncp samples in rx. Can be used for acquisition (coarse timing), and fine timing. Tends to break down when freq offset approaches +/- symbol rate (e.g +/- 25 Hz for 700D). #} function [t_est timing_valid timing_mx av_level] = est_timing(states, rx, known_samples, step, dual=1) ofdm_load_const; Npsam = length(known_samples); Ncorr = length(rx) - (Nsamperframe+Npsam); corr = zeros(1,Ncorr); %printf("Npsam: %d M+Ncp: %d Ncorr: %d Nsamperframe: %d step: %d\n", Npsam, M+Ncp, Ncorr, Nsamperframe, step); % normalise correlation so we can compare to a threshold across varying input levels av_level = 2*sqrt(states.timing_norm*(rx*rx')/length(rx)) + 1E-12; % correlate with pilots at start and (optionally) end of frame to determine timing offset for i=1:step:Ncorr rx1 = rx(i:i+Npsam-1); corr_st = rx1 * known_samples'; corr_en = 0; if dual % for the streaming voice modes we also correlate with pilot samples at start of next frame rx2 = rx(i+Nsamperframe:i+Nsamperframe+Npsam-1); corr_en = rx2 * known_samples'; end corr(i) = (abs(corr_st) + abs(corr_en))/av_level; end [timing_mx t_est] = max(abs(corr)); % only declare timing valid if there are enough samples in rxbuf to demodulate a frame timing_valid = (abs(rx(t_est)) > 0) && (timing_mx > timing_mx_thresh); if verbose > 1 printf(" av_level: %5.4f mx: %4.3f timing_est: %4d timing_valid: %d\n", av_level, timing_mx, t_est, timing_valid); end if verbose > 2 figure(10); clf; subplot(211); plot(rx) subplot(212); plot(corr) figure(11); clf; plot(real(known_samples)); end endfunction % ----------------------------------------------------------- % est_freq_offset_known_corr % ----------------------------------------------------------- #{ Determines frequency offset at current timing estimate, used for coarse freq offset estimation during streaming mode acquisition. #} function foff_est = est_freq_offset_known_corr(states, rx, known_samples, t_est, dual=1) ofdm_load_const; Npsam = length(known_samples); % extract pilot samples from either end of frame rx1 = rx(t_est:t_est+Npsam-1); rx2 = rx(t_est+Nsamperframe:t_est+Nsamperframe+Npsam-1); % "mix" these down (correlate) with 0 Hz offset pilot samples corr_st = rx1 .* conj(known_samples); if dual corr_en = rx2 .* conj(known_samples); end % sample sum of DFT magnitude of correlated signals at each freq offset and look for peak st = -20; en = 20; foff_est = 0; Cabs_max = 0; for f=st:en w = 2*pi*f/Fs; C_st = corr_st * exp(j*w*(0:Npsam-1))'; C_en = 0; if dual C_en = corr_en * exp(j*w*(0:Npsam-1))'; end Cabs = abs(C_st) + abs(C_en); %printf("f: %4.1f Cabs: %f Cmax: %f\n", f, Cabs, Cabs_max); if Cabs > Cabs_max Cabs_max = Cabs; foff_est = f; end end if states.verbose > 1 printf(" foff_est: %f\n", foff_est); end endfunction % Joint estimation used for data mode burst acquistion function [t_est foff_est timing_mx] = est_timing_and_freq(states, rx, known_samples, tstep, fmin, fmax, fstep) ofdm_load_const; Npsam = length(known_samples); Ncorr = length(rx) - Npsam + 1; corr = zeros(1,Ncorr); % set up matrix of freq shifted known samples for correlation with received signal. Each row % is the known samples shifted by a different freq offset M = []; for afcoarse=fmin:fstep:fmax w = 2*pi*afcoarse/Fs; wvec = exp(j*w*(0:Npsam-1)); M = [M; known_samples .* wvec]; end % At each timing position, correlate with known samples at all possible freq offsets. Result % is a column vector for each timing offset. Each matrix cell is s freq,timing coordinate corr = []; for t=1:tstep:Ncorr rx1 = rx(t:t+Npsam-1); col = M * rx1'; corr = [corr, col]; end % best timing offset is the col with the global max of the corr matrix max_col = max(abs(corr)); [mx mx_col] = max(max_col); t_est = (mx_col-1)*tstep; % obtain normalised real number for timing mx mag1 = known_samples*known_samples'; mag2 = rx(t_est+1:t_est+Npsam)*rx(t_est+1:t_est+Npsam)'; timing_mx = mx*mx'/(mag1*mag2+1E-12); % determine frequency offset for row where max is located [tmp freq_row] = max(corr(:,mx_col)); foff_est = fmin + fstep*(freq_row-1); if verbose > 1 printf(" t_est: %d timing:mx: %f foff_est: %f\n", t_est, timing_mx, foff_est); end if verbose > 2 figure(10); clf; subplot(211); plot(rx) subplot(212); plot(corr) figure(11); clf; plot(real(known_samples)); end endfunction % streaming mode acquistion, used mainly for voice modes function [timing_valid states] = ofdm_sync_search_stream(states) ofdm_load_const; st = rxbufst + M+Ncp + Nsamperframe + 1; en = st + 2*Nsamperframe + M+Ncp - 1; % Attempt coarse timing estimate (i.e. detect start of frame) at a range of frequency offsets timing_mx = 0; fcoarse = 0; timing_valid = 0; ct_est = 1; for afcoarse=-40:40:40 % vector of local oscillator samples to shift input vector % these could be computed on the fly to save memory, or pre-computed in flash at tables as they are static if afcoarse != 0 w = 2*pi*afcoarse/Fs; wvec = exp(-j*w*(0:2*Nsamperframe+M+Ncp-1)); % choose best timing offset metric at this freq offset [act_est atiming_valid atiming_mx] = est_timing(states, wvec .* states.rxbuf(st:en), states.rate_fs_pilot_samples, 2); else % exp(-j*0) is just 1 when afcoarse is 0 [act_est atiming_valid atiming_mx] = est_timing(states, states.rxbuf(st:en), states.rate_fs_pilot_samples, 2); end %printf("afcoarse: %f atiming_mx: %f\n", afcoarse, atiming_mx); if atiming_mx > timing_mx ct_est = act_est; timing_valid = atiming_valid; timing_mx = atiming_mx; fcoarse = afcoarse; end end % refine freq est within -/+ 20 Hz window if fcoarse != 0 w = 2*pi*fcoarse/Fs; wvec = exp(-j*w*(0:2*Nsamperframe+M+Ncp-1)); foff_est = est_freq_offset_known_corr(states, wvec .* states.rxbuf(st:en), states.rate_fs_pilot_samples, ct_est); foff_est += fcoarse; else % exp(-j*0) is just 1 when fcoarse is 0 foff_est = est_freq_offset_known_corr(states, states.rxbuf(st:en), states.rate_fs_pilot_samples, ct_est); end if verbose printf(" ct_est: %4d mx: %3.2f coarse_foff: %5.1f timing_valid: %d", ct_est, timing_mx, foff_est, timing_valid); end if timing_valid states.nin = ct_est - 1; else states.nin = Nsamperframe; end states.timing_valid = timing_valid; states.timing_mx = timing_mx; states.coarse_foff_est_hz = foff_est; states.sample_point = states.timing_est = 1; endfunction % two stage acquisition detector for burst mode function results = burst_acquisition_detector(states, rx, n, known_sequence) ofdm_load_const; % initial search over coarse grid tstep = 4; fstep = 5; [ct_est foff_est timing_mx] = est_timing_and_freq(states, rx(n:n+2*Nsamperframe-1), known_sequence, tstep, fmin = -50, fmax = 50, fstep); % refine estimate over finer grid fmin = foff_est - ceil(fstep/2); fmax = foff_est + ceil(fstep/2); fine_st = max(1, n + ct_est - tstep/2); fine_en = fine_st + Nsamperframe + tstep - 1; [ct_est foff_est timing_mx] = est_timing_and_freq(states, rx(fine_st:fine_en), known_sequence, 1, fmin, fmax, 1); % refer ct_est to nominal start of frame rx_buf(n) ct_est += fine_st - n; results.ct_est = ct_est; results.foff_est = foff_est; results.timing_mx = timing_mx; end % Burst mode acquisition ------------------------------------------ function [timing_valid states] = ofdm_sync_search_burst(states) ofdm_load_const; pre_post = ""; st = rxbufst + M+Ncp + Nsamperframe + 1; en = st + 2*Nsamperframe - 1; pre = burst_acquisition_detector(states, states.rxbuf, st, states.tx_preamble); if states.postambledetectoren post = burst_acquisition_detector(states, states.rxbuf, st, states.tx_postamble); end if isfield(states,"postambletest") pre.timing_mx = 0; end % force ignore preamble to test postamble if (states.postambledetectoren == 0) || (pre.timing_mx > post.timing_mx) timing_mx = pre.timing_mx; ct_est = pre.ct_est; foff_est = pre.foff_est; pre_post = "pre"; else timing_mx = post.timing_mx; ct_est = post.ct_est; foff_est = post.foff_est; pre_post = "post"; end timing_valid = timing_mx > timing_mx_thresh; if timing_valid % potential candidate found .... % calculate number of samples we need on next buffer to get into sync if strcmp(pre_post, "post") states.nin = 0; % printf("\n rxbufst: %d ", states.rxbufst); states.rxbufst -= states.Np*states.Nsamperframe; % backup to first modem frame in packet states.rxbufst += ct_est - 1; states.npost++; % printf("%d\n", states.rxbufst); else % ct_est is start of preamble, so advance past that to start of first modem frame states.nin = Nsamperframe + ct_est - 1; states.npre++; end else states.nin = Nsamperframe; end states.ct_est = ct_est; states.timing_valid = timing_valid; states.timing_mx = timing_mx; states.sample_point = states.timing_est = 1; states.foff_est_hz = foff_est; if verbose printf(" ct_est: %4d nin: %4d mx: %3.2f foff_est: %5.1f timing_valid: %d %4s", ct_est, states.nin, timing_mx, foff_est, timing_valid, pre_post); end endfunction % ---------------------------------------------------------------------------------- % ofdm_sync_search - attempts to find coarse sync parameters for modem initial sync % ---------------------------------------------------------------------------------- function [timing_valid states] = ofdm_sync_search(states, rxbuf_in) ofdm_load_const; % update rxbuf so it is primed for when we have to call ofdm_demod() states.rxbuf(1:Nrxbuf-states.nin) = states.rxbuf(states.nin+1:Nrxbuf); states.rxbuf(Nrxbuf-states.nin+1:Nrxbuf) = rxbuf_in; if strcmp(states.data_mode, "burst") [timing_valid states] = ofdm_sync_search_burst(states); else [timing_valid states] = ofdm_sync_search_stream(states); end endfunction % ------------------------------------------ % ofdm_demod - Demodulates one frame of bits % ------------------------------------------ #{ For phase estimation we need to maintain buffer of 3 frames plus one pilot, so we have 4 pilots total. '^' is the start of current frame that we are demodulating. P DDD P DDD P DDD P ^ Then add one symbol either side to account for movement in sampling instant due to sample clock differences: D P DDD P DDD P DDD P D ^ Returns: rx_bits - (hard decoded/raw/uncoded) demodulated data bits from packet aphase_est - phase est for each data symbol rx_np - output data symbols after phase correction rx_amp - amplitude estimates for each symbol #} function [states rx_bits achannel_est_rect_log rx_np rx_amp] = ofdm_demod(states, rxbuf_in) ofdm_load_const; % insert latest input samples into rxbuf rxbuf(1:Nrxbuf-states.nin) = rxbuf(states.nin+1:Nrxbuf); rxbuf(Nrxbuf-states.nin+1:Nrxbuf) = rxbuf_in; % get latest freq offset estimate woff_est = 2*pi*foff_est_hz/Fs; % update timing estimate -------------------------------------------------- delta_t = coarse_foff_est_hz = timing_valid = timing_mx = 0; if timing_en % update timing at start of every frame % search for timing in a window centered on timing_est, the window will typically be around 2Ncp wide as we could % get a shift of +Ncp or -Ncp if we swing from one delay extreme to another st = rxbufst + M+Ncp + Nsamperframe + 1 - floor(ftwindow_width/2) + (timing_est-1); en = st + Nsamperframe-1 + M+Ncp + ftwindow_width-1; [ft_est timing_valid timing_mx] = est_timing(states, rxbuf(st:en) .* exp(-j*woff_est*(st:en)), rate_fs_pilot_samples, 1); % printf(" timing_est: %d ft_est: %d timing_valid: %d timing_mx: %d\n", timing_est, ft_est, timing_valid, timing_mx); % if we are in a deep fade timing_valid will not be asserted as ft_est will be garbage, so we don't % adjust timing est, just freewheel for now if timing_valid % adjust timing_est based on ft_est timing_est = timing_est + ft_est - ceil(ftwindow_width/2); % Track the ideal sampling point, which is Ncp for a multipath signal whose delay varies between 0 and Ncp. The % timing est will be bouncing back and forth due to multipath so we may need to use the upper or lower limit of % the timing est to track the ideal sample_point. A good way to explore this algorithm is to disable the feedback % loop for nin adjustment below, and look at the plots from ofdm_rx with +ve and -ve sample clock offsets % (sox can be used to resample). The "4" constants are small guard bands so we don't stumble outside of the CP % due to noise. delta_t = ft_est - ceil(ftwindow_width/2); % just used for plotting sample_point = max(timing_est+4, sample_point); % we are at max timing est, so sample point just above sample_point = min(timing_est+Ncp-4, sample_point); % we are at min timing_est, so sample point Ncp above end if verbose > 1 printf(" ft_est: %2d mx: %3.2f coarse_foff: %4.1f foff: %4.1f\n", ft_est, timing_mx, coarse_foff_est_hz, foff_est_hz); end end % down convert at current timing instant---------------------------------- rx_sym = zeros(1+Ns+1+1, Nc+2); % previous pilot st = rxbufst + M+Ncp + Nsamperframe + (-Ns)*(M+Ncp) + 1 + sample_point; en = st + M - 1; for c=1:Nc+2 acarrier = rxbuf(st:en) .* exp(-j*woff_est*(st:en)) .* conj(W(c,:)); rx_sym(1,c) = sum(acarrier); end % pilot - this frame - pilot for rr=1:Ns+1 st = rxbufst + M+Ncp + Nsamperframe + (rr-1)*(M+Ncp) + 1 + sample_point; en = st + M - 1; for c=1:Nc+2 acarrier = rxbuf(st:en) .* exp(-j*woff_est*(st:en)) .* conj(W(c,:)); rx_sym(rr+1,c) = sum(acarrier); end end % next pilot st = rxbufst + M+Ncp + Nsamperframe + (2*Ns)*(M+Ncp) + 1 + sample_point; en = st + M - 1; for c=1:Nc+2 acarrier = rxbuf(st:en) .* exp(-j*woff_est*(st:en)) .* conj(W(c,:)); rx_sym(Ns+3,c) = sum(acarrier); end % est freq err based on all carriers ------------------------------------ if foff_est_en freq_err_rect = sum(rx_sym(2,:))' * sum(rx_sym(2+Ns,:)); % prevent instability in atan(im/re) when real part near 0 freq_err_rect += 1E-6; %printf("freq_err_rect: %f %f angle: %f\n", real(freq_err_rect), imag(freq_err_rect), angle(freq_err_rect)); freq_err_hz = angle(freq_err_rect)*Rs/(2*pi*Ns); if states.foff_limiter freq_err_hz = max(freq_err_hz,-1); freq_err_hz = min(freq_err_hz, 1); end foff_est_hz = foff_est_hz + foff_est_gain*freq_err_hz; end % OK - now channel for each carrier and correct phase ---------------------------------- achannel_est_rect = zeros(1,Nc+2); aamp_est_pilot = zeros(1,Nc+2); for c=2:Nc+1 % estimate channel for this carrier using an average of 12 pilots % in a rect 2D window centred on this carrier % PPP <-- frame-1 % --- % PPP <-- you are here % DDD % DDD % PPP <-- frame+1 % --- % PPP <-- frame+2 if isfield(states, "phase_est_bandwidth") phase_est_bandwidth = states.phase_est_bandwidth; else phase_est_bandwidth = "low"; end if strcmp(phase_est_bandwidth, "high") % Only use pilots at start and end of this frame to track quickly changes in phase % present. Useful for initial sync where freq offset est may be a bit off, and % for high Doppler channels. As less pilots are averaged, low SNR performance % will be poorer. achannel_est_rect(c) = rx_sym(2,c)*pilots(c)'; % frame achannel_est_rect(c) += rx_sym(2+Ns,c)*pilots(c)'; % frame+1 aamp_est_pilot(c) = abs(rx_sym(2,c)) + abs(rx_sym(2+Ns,c)); elseif strcmp(phase_est_bandwidth, "low") % Average over a bunch of pilots in adjacent carriers, and past and future frames, good % low SNR performance, but will fall over with high Doppler or freq offset. cr = c-1:c+1; achannel_est_rect(c) = rx_sym(2,cr)*pilots(cr)'; % frame achannel_est_rect(c) += rx_sym(2+Ns,cr)*pilots(cr)'; % frame+1 aamp_est_pilot(c) = sum(abs(rx_sym(2,cr))); aamp_est_pilot(c) += sum(abs(rx_sym(2+Ns,cr))); % use next step of pilots in past and future achannel_est_rect(c) += rx_sym(1,cr)*pilots(cr)'; % frame-1 achannel_est_rect(c) += rx_sym(2+Ns+1,cr)*pilots(cr)'; % frame+2 aamp_est_pilot(c) += sum(abs(rx_sym(1,cr))); aamp_est_pilot(c) += sum(abs(rx_sym(2+Ns+1,cr))); end end % pilots are estimated over 12 pilot symbols, so find average if strcmp(phase_est_bandwidth, "high") achannel_est_rect /= 2; aamp_est_pilot /= 2; elseif strcmp(phase_est_bandwidth, "low") achannel_est_rect /= 12; aamp_est_pilot /= 12; end aphase_est_pilot = angle(achannel_est_rect); if states.amp_est_mode == 0 % legacy 700D/2020 ampl estimator for compatability with current C code aamp_est_pilot = abs(achannel_est_rect); end achannel_est_rect = aamp_est_pilot.*exp(j*aphase_est_pilot); % correct phase offset using phase estimate, and demodulate % bits, separate loop as it runs across cols (carriers) to get % frame bit ordering correct rx_bits = []; rx_np = []; rx_amp = []; achannel_est_rect_log = []; for rr=1:Ns-1 for c=2:Nc+1 if phase_est_en if states.dpsk rx_corr = rx_sym(rr+2,c) * rx_sym(rr+1,c)'; else rx_corr = rx_sym(rr+2,c) * exp(-j*aphase_est_pilot(c)); end else rx_corr = rx_sym(rr+2,c); end rx_np = [rx_np rx_corr]; rx_amp = [rx_amp aamp_est_pilot(c)]; % hard decision demod if bps == 1 abit = real(rx_corr) > 0; end if bps == 2 abit = qpsk_demod(rx_corr); end if bps == 4 abit = qam16_demod(states.qam16, rx_corr, max(1E-12,aamp_est_pilot(c))); end rx_bits = [rx_bits abit]; end % c=2:Nc+1 achannel_est_rect_log = [achannel_est_rect_log; achannel_est_rect(2:Nc+1)]; end % Adjust nin to take care of sample clock offset. When debugong or exploring how timing loop works % it's a good idea to comment out ths code to "open the loop". nin = Nsamperframe; if timing_en && timing_valid states.clock_offset_est = 0.9*states.clock_offset_est + 0.1*abs(states.timing_est - timing_est)/Nsamperframe; thresh = (M+Ncp)/8; tshift = (M+Ncp)/4; if timing_est > thresh nin = Nsamperframe+tshift; timing_est -= tshift; sample_point -= tshift; end if timing_est < -thresh nin = Nsamperframe-tshift; timing_est += tshift; sample_point += tshift; end end % use internal rxbuf samples if they are available rxbufst_next = rxbufst + nin; %printf("\nrxbufst: %d rxbufst_next: %d nin: %d Nrxbufmin: %d rqd: %d Nrxbuf: %d\n", % rxbufst, rxbufst_next, nin, Nrxbufmin, rxbufst_next + Nrxbufmin, Nrxbuf); if rxbufst_next + Nrxbufmin <= Nrxbuf % printf("Can maybe use rxbufst!\n"); rxbufst = rxbufst_next; nin = 0; end % maintain mean amp estimate for LDPC decoder states.mean_amp = 0.9*states.mean_amp + 0.1*mean(rx_amp); states.rx_sym = rx_sym; states.rxbuf = rxbuf; states.nin = nin; states.rxbufst = rxbufst; states.timing_valid = timing_valid; states.timing_mx = timing_mx; states.timing_est = timing_est; states.sample_point = sample_point; states.delta_t = delta_t; states.foff_est_hz = foff_est_hz; states.coarse_foff_est_hz = coarse_foff_est_hz; % just used for tofdm endfunction function SNR3kdB = snr_from_esno(states, EsNodB) ofdm_load_const; % We integrate over M samples to get the received symbols. Additional signal power % is used for the cyclic prefix samples. cyclic_power = 10*log10((Ncp+M)/M); % Es is the energy for each symbol. To get signal power lets % multiply by symbols/second, and calculate noise power in 3000 Hz. SNR3kdB = EsNodB + 10*log10(Nc*Rs/3000) + cyclic_power; endfunction % ---------------------------------------------------------------------------------- % assemble_modem_packet - assemble modem packet from UW, payload, and txt bits % ---------------------------------------------------------------------------------- function modem_frame = assemble_modem_packet(states, payload_bits, txt_bits) ofdm_load_const; # Due to the operation of the FEC encoder or interleaver, Tx data # usually comes in "packet size" chunks, so assembly operates on an # entire packet (multiple modem frames if Np>1) p = 1; u = 1; modem_frame = zeros(1,Nbitsperpacket); for b=1:Nbitsperpacket-Ntxtbits; if (u <= Nuwbits) && (b == uw_ind(u)) modem_frame(b) = tx_uw(u++); else modem_frame(b) = payload_bits(p++); end end t = 1; for b=Nbitsperpacket-Ntxtbits+1:Nbitsperpacket modem_frame(b) = txt_bits(t++); end assert(u == (Nuwbits+1)); assert(p = (length(payload_bits)+1)); endfunction % ---------------------------------------------------------------------------------- % assemble_modem_packet_symbols - assemble modem packet from UW, payload, and txt bits % ---------------------------------------------------------------------------------- function modem_frame = assemble_modem_packet_symbols(states, payload_syms, txt_syms) ofdm_load_const; Nsymsperpacket = Nbitsperpacket/bps; Nuwsyms = Nuwbits/bps; Ntxtsyms = Ntxtbits/bps; modem_frame = zeros(1,Nsymsperpacket); p = 1; u = 1; for s=1:Nsymsperpacket-Ntxtsyms; if (u <= Nuwsyms) && (s == uw_ind_sym(u)) modem_frame(s) = states.tx_uw_syms(u++); else modem_frame(s) = payload_syms(p++); end end t = 1; for s=Nsymsperpacket-Ntxtsyms+1:Nsymsperpacket modem_frame(s) = txt_syms(t++); end assert(u == (Nuwsyms+1)); assert(p = (length(payload_syms)+1)); endfunction % ------------------------------------------------------------------------------------------------ % extract_uw - extract just the UW from the first few frames of a packet, to check UW % during acquisition % ------------------------------------------------------------------------------------------------- function rx_uw = extract_uw(states, rx_syms, rx_amps) ofdm_load_const; Nsymsperframe = Nbitsperframe/bps; assert(length(rx_syms) == Nuwframes*Nsymsperframe); Nuwsyms = Nuwbits/bps; rx_uw_syms = zeros(1,Nuwsyms); rx_uw_amps = zeros(1,Nuwsyms); u = 1; for s=1:Nuwframes*Nsymsperframe if (u <= Nuwsyms) && (s == uw_ind_sym(u)) rx_uw_syms(u) = rx_syms(s); rx_uw_amps(u) = rx_amps(s); u++; end end assert(u == (Nuwsyms+1)); % now demodulate UW bits rx_uw = zeros(1,Nuwbits); for s=1:Nuwsyms if bps == 2 rx_uw(bps*(s-1)+1:bps*s) = qpsk_demod(rx_uw_syms(s)); elseif bps == 4 rx_uw(bps*(s-1)+1:bps*s) = qam16_demod(states.qam16,rx_uw_syms(s), max(1E-12,rx_amps(s))); end end endfunction % ------------------------------------------------------------------------------------------------ % disassemble_modem_packet - extract UW, txt bits, and payload symbols from a packet of symbols % ------------------------------------------------------------------------------------------------- function [rx_uw payload_syms payload_amps txt_bits] = disassemble_modem_packet(states, modem_frame_syms, modem_frame_amps) ofdm_load_const; Nsymsperpacket = Nbitsperpacket/bps; Nuwsyms = Nuwbits/bps; Ntxtsyms = Ntxtbits/bps; payload_syms = zeros(1,Nsymsperpacket-Nuwsyms-Ntxtsyms); payload_amps = zeros(1,Nsymsperpacket-Nuwsyms-Ntxtsyms); rx_uw_syms = zeros(1,Nuwsyms); rx_uw_amps = zeros(1,Nuwsyms); txt_syms = zeros(1,Ntxtsyms); p = 1; u = 1; for s=1:Nsymsperpacket-Ntxtsyms; if (u <= Nuwsyms) && (s == uw_ind_sym(u)) rx_uw_syms(u) = modem_frame_syms(s); rx_uw_amps(u) = modem_frame_amps(s); u++; else payload_syms(p) = modem_frame_syms(s); payload_amps(p++) = modem_frame_amps(s); end end t = 1; for s=Nsymsperpacket-Ntxtsyms+1:Nsymsperpacket txt_syms(t++) = modem_frame_syms(s); end assert(u == (Nuwsyms+1)); assert(p = (Nsymsperpacket+1)); % now demodulate UW and txt bits rx_uw = zeros(1,Nuwbits); txt_bits = zeros(1,Ntxtbits); for s=1:Nuwsyms if bps == 2 rx_uw(bps*(s-1)+1:bps*s) = qpsk_demod(rx_uw_syms(s)); elseif bps == 4 rx_uw(bps*(s-1)+1:bps*s) = qam16_demod(states.qam16,rx_uw_syms(s),rx_uw_amps(s)); end end for s=1:Ntxtsyms txt_bits(2*s-1:2*s) = qpsk_demod(txt_syms(s)); end endfunction %----------------------------------------------------------------------- % ofdm_rand - a psuedo-random number generator that we can implement % in C with identical results to Octave. Returns an unsigned % int between 0 and 32767 %----------------------------------------------------------------------- function r = ofdm_rand(n, seed=1) r = zeros(1,n); for i=1:n seed = mod(1103515245 * seed + 12345, 32768); r(i) = seed; end endfunction % build a single modem frame preamble vector for reliable single frame acquisition % on data modes function tx_preamble = ofdm_generate_preamble(states, seed=2) tmp_states = states; % tweak local copy of states so we can generate a 1 modem-frame packet tmp_states.Np = 1; tmp_states.Nbitsperpacket = tmp_states.Nbitsperframe; preamble_bits = ofdm_rand(tmp_states.Nbitsperframe, seed) > 16384; tx_preamble = ofdm_mod(tmp_states, preamble_bits); endfunction %----------------------------------------------------------------------- % create_ldpc_test_frame - generate a test frame of bits %----------------------------------------------------------------------- function [tx_bits payload_data_bits codeword] = create_ldpc_test_frame(states, coded_frame=1) ofdm_load_const; ldpc; gp_interleaver; if coded_frame % Set up LDPC code mod_order = 4; bps = 2; modulation = 'QPSK'; mapping = 'gray'; init_cml('~/cml/'); % TODO: make this path sensible and portable load HRA_112_112.txt [code_param framesize rate] = ldpc_init_user(HRA_112_112, modulation, mod_order, mapping); assert(Nbitsperframe == (code_param.coded_bits_per_frame + Nuwbits + Ntxtbits)); payload_data_bits = round(ofdm_rand(code_param.data_bits_per_frame)/32767); codeword = LdpcEncode(payload_data_bits, code_param.H_rows, code_param.P_matrix); Nsymbolsperframe = length(codeword)/bps; % need all these steps to get actual raw codeword bits at demod .. tx_symbols = []; for s=1:Nsymbolsperframe tx_symbols = [tx_symbols qpsk_mod( codeword(2*(s-1)+1:2*s) )]; end tx_symbols = gp_interleave(tx_symbols); codeword_raw = []; for s=1:Nsymbolsperframe codeword_raw = [codeword_raw qpsk_demod(tx_symbols(s))]; end else codeword_raw = round(ofdm_rand(Nbitsperpacket-(Nuwbits+Ntxtbits))/32767); end % insert UW and txt bits tx_bits = assemble_modem_packet(states, codeword_raw, zeros(1,Ntxtbits)); assert(Nbitsperpacket == length(tx_bits)); endfunction % automated test function test_assemble_disassemble(states) ofdm_load_const; Nsymsperpacket = Nbitsperpacket/bps; Ndatabitsperpacket = Nbitsperpacket-(Nuwbits+Ntxtbits); Ndatasymsperpacket = Ndatabitsperpacket/bps; codeword_bits = round(ofdm_rand(Ndatabitsperpacket)/32767); tx_bits = assemble_modem_packet(states, codeword_bits, zeros(1,Ntxtbits)); tx_syms = zeros(1,Nsymsperpacket); for s=1:Nsymsperpacket if bps == 2 tx_syms(s) = qpsk_mod(tx_bits(bps*(s-1)+1:bps*s)); elseif bps == 4 tx_syms(s) = qam16_mod(states.qam16,tx_bits(bps*(s-1)+1:bps*s)); end end codeword_syms = zeros(1,Ndatasymsperpacket); for s=1:Ndatasymsperpacket if bps == 2 codeword_syms(s) = qpsk_mod(codeword_bits(bps*(s-1)+1:bps*s)); elseif bps == 4 codeword_syms(s) = qam16_mod(states.qam16,codeword_bits(bps*(s-1)+1:bps*s)); end end [rx_uw rx_codeword_syms payload_amps txt_bits] = disassemble_modem_packet(states, tx_syms, ones(1,Nsymsperpacket)); assert(rx_uw == states.tx_uw); Ndatasymsperframe = (Nbitsperpacket-(Nuwbits+Ntxtbits))/bps; assert(codeword_syms == rx_codeword_syms); endfunction %------------------------------------------------------------------- % sync_state_machine - calls mode-specific sync state state_machine %------------------------------------------------------------------- function states = sync_state_machine(states, rx_uw) if strcmp(states.state_machine, "voice1") states = sync_state_machine_voice1(states, rx_uw); elseif strcmp(states.state_machine, "data") if strcmp(states.data_mode, "streaming") states = sync_state_machine_data_streaming(states, rx_uw); else states = sync_state_machine_data_burst(states, rx_uw); end elseif strcmp(states.state_machine, "voice2") states = sync_state_machine_voice2(states, rx_uw); else assert(0); endif endfunction %-------------------------------------------------------------------- % Due to the low pilot symbol insertion rate and acquisition issues % the earlier OFDM modem waveforms (700D and 2020) need a complex % state machine to help them avoid false sync. %-------------------------------------------------------------------- function states = sync_state_machine_voice1(states, rx_uw) ofdm_load_const; next_state = states.sync_state; states.sync_start = states.sync_end = 0; if strcmp(states.sync_state,'search') if states.timing_valid states.frame_count = 0; states.sync_counter = 0; states.modem_frame = 0; states.sync_start = 1; next_state = 'trial'; end end if strcmp(states.sync_state,'synced') || strcmp(states.sync_state,'trial') states.frame_count++; % UW occurs at the start of a packet if states.modem_frame == 0 states.uw_errors = sum(xor(tx_uw,rx_uw)); if strcmp(states.sync_state,'trial') if states.uw_errors >= states.bad_uw_errors states.sync_counter++; states.frame_count = 0; end if states.sync_counter == 2 next_state = "search"; states.phase_est_bandwidth = "high"; end if states.frame_count == 4 next_state = "synced"; % change to low bandwidth, but more accurate phase estimation states.phase_est_bandwidth = "low"; end if states.uw_errors < 2 next_state = "synced"; % change to low bandwidth, but more accurate phase estimation states.phase_est_bandwidth = "low"; else next_state = "search"; end end if strcmp(states.sync_state,'synced') if states.uw_errors > 2 states.sync_counter++; else states.sync_counter = 0; end if states.sync_counter == 6 next_state = "search"; states.phase_est_bandwidth = "high"; end end end % if modem_frame == 0 .... % keep track of where we are up to in packet states.modem_frame++; if (states.modem_frame >= states.Np) states.modem_frame = 0; end end states.last_sync_state = states.sync_state; states.sync_state = next_state; endfunction %------------------------------------------------------- % data (streaming mode) state machine %------------------------------------------------------- function states = sync_state_machine_data_streaming(states, rx_uw) ofdm_load_const; next_state = states.sync_state; states.sync_start = states.sync_end = 0; if strcmp(states.sync_state,'search') if states.timing_valid states.sync_start = 1; states.sync_counter = 0; next_state = 'trial'; end end states.uw_errors = sum(xor(tx_uw,rx_uw)); if strcmp(states.sync_state,'trial') if states.uw_errors < states.bad_uw_errors; next_state = "synced"; states.packet_count = 0; states.modem_frame = Nuwframes; else states.sync_counter++; if states.sync_counter > Np next_state = "search"; end end end % Note packetsperburst==0 we don't ever lose sync, which is useful for % stream based testing or external control of state machine if strcmp(states.sync_state,'synced') states.modem_frame++; if (states.modem_frame >= states.Np) states.modem_frame = 0; states.packet_count++; if (states.packetsperburst) if (states.packet_count >= states.packetsperburst) next_state = "search"; end end end end states.last_sync_state = states.sync_state; states.sync_state = next_state; endfunction %------------------------------------------------------- % data (burst mode) state machine %------------------------------------------------------- function states = sync_state_machine_data_burst(states, rx_uw) ofdm_load_const; next_state = states.sync_state; states.sync_start = states.sync_end = 0; if strcmp(states.sync_state,'search') if states.timing_valid states.sync_start = 1; states.sync_counter = 0; next_state = 'trial'; end end states.uw_errors = sum(xor(tx_uw,rx_uw)); % pre or post-amble has told us this is the start of the packet. Confirm we % have a valid frame by checking the UW after the modem frames containing % the UW have been received if strcmp(states.sync_state,'trial') states.sync_counter++; if states.sync_counter == Nuwframes if states.uw_errors < states.bad_uw_errors; next_state = "synced"; states.packet_count = 0; % number of packets in this burst states.modem_frame = Nuwframes; % which modem frame we are up to in packet else next_state = "search"; % reset rxbuf to make sure we only ever do a postamble loop once through same samples states.rxbufst = states.Nrxbufhistory; states.rxbuf = zeros(1, states.Nrxbuf); end end end if strcmp(states.sync_state,'synced') states.modem_frame++; if (states.modem_frame >= states.Np) states.modem_frame = 0; % start of new packet states.packet_count++; if (states.packetsperburst) if (states.packet_count >= states.packetsperburst) next_state = "search"; % we've finished this burst % reset rxbuf to make sure we only ever do a postamble loop once through same samples states.rxbufst = states.Nrxbufhistory; states.rxbuf = zeros(1, states.Nrxbuf); end end end end states.last_sync_state = states.sync_state; states.sync_state = next_state; endfunction %------------------------------------------------------- % fast sync voice state state_machine %------------------------------------------------------- function states = sync_state_machine_voice2(states, rx_uw) ofdm_load_const; next_state = states.sync_state; states.sync_start = states.sync_end = 0; if strcmp(states.sync_state,'search') if states.timing_valid states.frame_count = 0; states.sync_counter = 0; states.modem_frame = 0; states.sync_start = 1; next_state = 'trial'; end end if strcmp(states.sync_state,'synced') || strcmp(states.sync_state,'trial') states.frame_count++; % UW occurs at the start of a packet if states.modem_frame == 0 states.uw_errors = sum(xor(tx_uw,rx_uw)); if strcmp(states.sync_state,'trial') if states.uw_errors <= states.bad_uw_errors next_state = "synced"; else next_state = "search"; end end if strcmp(states.sync_state,'synced') if states.uw_errors > states.bad_uw_errors states.sync_counter++; else states.sync_counter = 0; end if states.sync_counter == 6 next_state = "search"; end end end % keep track of where we are up to in packet states.modem_frame++; if (states.modem_frame >= states.Np) states.modem_frame = 0; end end states.last_sync_state = states.sync_state; states.sync_state = next_state; endfunction % ------------------------------------------------------------------------------ % codec_to_frame_packing - Set up a bunch of constants to support modem frame % construction from LDPC codewords and codec source bits % ------------------------------------------------------------------------------ function [code_param Nbitspercodecframe Ncodecframespermodemframe] = codec_to_frame_packing(states, mode) ofdm_load_const; mod_order = 4; bps = 2; modulation = 'QPSK'; mapping = 'gray'; init_cml('~/cml/'); if strcmp(mode, "700D") load HRA_112_112.txt code_param = ldpc_init_user(HRA_112_112, modulation, mod_order, mapping); assert(Nbitsperframe == (code_param.coded_bits_per_frame + Nuwbits + Ntxtbits)); % unused for this mode Nbitspercodecframe = Ncodecframespermodemframe = 0; end if strcmp(mode, "700E") load HRA_56_56.txt code_param = ldpc_init_user(HRA_56_56, modulation, mod_order, mapping); assert(Nbitsperframe == (code_param.coded_bits_per_frame + Nuwbits + Ntxtbits)); % unused for this mode Nbitspercodecframe = Ncodecframespermodemframe = 0; end if strcmp(mode, "2020") load HRA_504_396.txt code_param = ldpc_init_user(HRA_504_396, modulation, mod_order, mapping); code_param.data_bits_per_frame = 312; code_param.coded_bits_per_frame = code_param.data_bits_per_frame + code_param.ldpc_parity_bits_per_frame; code_param.coded_syms_per_frame = code_param.coded_bits_per_frame/code_param.bits_per_symbol; printf("2020 mode\n"); printf("ldpc_data_bits_per_frame = %d\n", code_param.ldpc_data_bits_per_frame); printf("ldpc_coded_bits_per_frame = %d\n", code_param.ldpc_coded_bits_per_frame); printf("ldpc_parity_bits_per_frame = %d\n", code_param.ldpc_parity_bits_per_frame); printf("data_bits_per_frame = %d\n", code_param.data_bits_per_frame); printf("coded_bits_per_frame = %d\n", code_param.coded_bits_per_frame); printf("coded_syms_per_frame = %d\n", code_param.coded_syms_per_frame); printf("ofdm_bits_per_frame = %d\n", Nbitsperframe); Nbitspercodecframe = 52; Ncodecframespermodemframe = 6; printf(" Nuwbits: %d Ntxtbits: %d\n", Nuwbits, Ntxtbits); Nparity = code_param.ldpc_parity_bits_per_frame; totalbitsperframe = code_param.data_bits_per_frame + Nparity + Nuwbits + Ntxtbits; printf("Total bits per frame: %d\n", totalbitsperframe); assert(totalbitsperframe == Nbitsperframe); end if strcmp(mode, "qam16c1") load H2064_516_sparse.mat code_param = ldpc_init_user(HRA, modulation='QAM', mod_order=16, mapping="", reshape(states.qam16,1,16)); end if strcmp(mode, "qam16c2") framesize = 16200; rate = 0.6; code_param = ldpc_init_builtin("dvbs2", rate, framesize, modulation='QAM', mod_order=16, mapping="", reshape(states.qam16,1,16)); end if strcmp(mode, "datac0") load H_128_256_5.mat code_param = ldpc_init_user(H, modulation, mod_order, mapping); end if strcmp(mode, "datac1") load H_4096_8192_3d.mat code_param = ldpc_init_user(HRA, modulation, mod_order, mapping); end if strcmp(mode, "datac3") load H_1024_2048_4f.mat code_param = ldpc_init_user(H, modulation, mod_order, mapping); end if strcmp(mode, "datac0") || strcmp(mode, "datac1") || strcmp(mode, "datac3") || strcmp(mode, "qam16c1") || strcmp(mode, "qam16c2") printf("ldpc_data_bits_per_frame = %d\n", code_param.ldpc_data_bits_per_frame); printf("ldpc_coded_bits_per_frame = %d\n", code_param.ldpc_coded_bits_per_frame); printf("ldpc_parity_bits_per_frame = %d\n", code_param.ldpc_parity_bits_per_frame); printf("Nbitsperpacket = %d\n", Nbitsperpacket); Nparity = code_param.ldpc_parity_bits_per_frame; totalbitsperframe = code_param.data_bits_per_frame + Nparity + Nuwbits + Ntxtbits; printf("totalbitsperframe = %d\n", totalbitsperframe); assert(totalbitsperframe == Nbitsperpacket); Nbitspercodecframe = Ncodecframespermodemframe = -1; end endfunction % ------------------------------------------------------------------------------ % fec_encode - Handle FEC encoding % ------------------------------------------------------------------------------ function [frame_bits bits_per_frame] = fec_encode(states, code_param, mode, payload_bits, ... Ncodecframespermodemframe, Nbitspercodecframe) ofdm_load_const; if strcmp(mode, "2020") Nunused = code_param.ldpc_data_bits_per_frame - code_param.data_bits_per_frame; frame_bits = LdpcEncode([payload_bits zeros(1,Nunused)], code_param.H_rows, code_param.P_matrix); % remove unused data bits frame_bits = [ frame_bits(1:code_param.data_bits_per_frame) frame_bits(code_param.ldpc_data_bits_per_frame+1:end) ]; else frame_bits = LdpcEncode(payload_bits, code_param.H_rows, code_param.P_matrix); end bits_per_frame = length(frame_bits); endfunction % test function, kind of like a CRC for QPSK symbols, to compare two vectors function acc = test_acc(v) sre = 0; sim = 0; for i=1:length(v) x = v(i); re = round(real(x)); im = round(imag(x)); sre += re; sim += im; %printf("%d %10f %10f %10f %10f\n", i, re, im, sre, sim); end acc = sre + j*sim; end % Save test bits frame to a text file in the form of a C array % % usage: % ofdm_lib; test_bits_ofdm_file % function test_bits_ofdm_file Ts = 0.018; Tcp = 0.002; Rs = 1/Ts; bps = 2; Nc = 17; Ns = 8; states = ofdm_init(bps, Rs, Tcp, Ns, Nc); [test_bits_ofdm payload_data_bits codeword] = create_ldpc_test_frame(states); printf("%d test bits\n", length(test_bits_ofdm)); f=fopen("../src/test_bits_ofdm.h","wt"); fprintf(f,"/* Generated by test_bits_ofdm_file() Octave function */\n\n"); fprintf(f,"const int test_bits_ofdm[]={\n"); for m=1:length(test_bits_ofdm)-1 fprintf(f," %d,\n",test_bits_ofdm(m)); endfor fprintf(f," %d\n};\n",test_bits_ofdm(end)); fprintf(f,"\nconst int payload_data_bits[]={\n"); for m=1:length(payload_data_bits)-1 fprintf(f," %d,\n",payload_data_bits(m)); endfor fprintf(f," %d\n};\n",payload_data_bits(end)); fprintf(f,"\nconst int test_codeword[]={\n"); for m=1:length(codeword)-1 fprintf(f," %d,\n",codeword(m)); endfor fprintf(f," %d\n};\n",codeword(end)); fclose(f); endfunction % Get rid of nasty unfiltered stuff either side of OFDM signal % This may need to be tweaked, or better yet made a function of Nc, if Nc changes % % usage: % ofdm_lib; make_ofdm_bpf(1); function bpf_coeff = make_ofdm_bpf(write_c_header_file) filt_n = 100; Fs = 8000; bpf_coeff = fir2(filt_n,[0 900 1000 2000 2100 4000]/(Fs/2),[0.001 0.001 1 1 0.001 0.001]); if write_c_header_file figure(1) clf; h = freqz(bpf_coeff,1,Fs/2); plot(20*log10(abs(h))) grid minor % save coeffs to a C header file f=fopen("../src/ofdm_bpf_coeff.h","wt"); fprintf(f,"/* 1000 - 2000 Hz FIR filter coeffs */\n"); fprintf(f,"/* Generated by make_ofdm_bpf() in ofdm_lib.m */\n"); fprintf(f,"\n#define OFDM_BPF_N %d\n\n", filt_n); fprintf(f,"float ofdm_bpf_coeff[]={\n"); for r=1:filt_n if r < filt_n fprintf(f, " %f,\n", bpf_coeff(r)); else fprintf(f, " %f\n};", bpf_coeff(r)); end end fclose(f); end endfunction % returns level threshold such that threshold_cdf of the tx magnitudes are beneath that level function threshold_level = ofdm_determine_clip_threshold(tx, threshold_cdf) Nsteps = 25; mx = max(abs(tx)); cdf = empirical_cdf(mx*(1:Nsteps)/Nsteps,abs(tx)); threshold_level = find(cdf >= threshold_cdf)(1)*mx/25; printf("threshold_cdf: %f threshold_level: %f\n", threshold_cdf, threshold_level); figure(1); clf; [hh nn] = hist(abs(tx),Nsteps,1); plotyy(nn,hh,mx*(1:Nsteps)/Nsteps,cdf); title('PDF and CDF Estimates'); grid; end function [tx nclipped] = ofdm_clip(states, tx, threshold_level, plot_en=0) ofdm_load_const; tx_ = tx; ind = find(abs(tx) > threshold_level); nclipped = length(ind); tx(ind) = threshold_level*exp(j*angle(tx(ind))); if plot_en figure(2); clf; plot(abs(tx_(1:5*M))); hold on; plot(abs(tx(1:5*M))); hold off; endif end % two stage Hilbert clipper to improve PAPR function tx = ofdm_hilbert_clipper(states, tx, tx_clip_en) tx *= states.amp_scale; % optional compressor to improve PAPR nclipped = 0; if tx_clip_en if states.verbose printf("%f %f\n", states.clip_gain1, states.clip_gain2); end [tx nclipped] = ofdm_clip(states, tx*states.clip_gain1, states.ofdm_peak); % BPF, we actually shift the signal back down to baseband to filter ssbfilt_n = 100; ssbfilt_coeff = fir1(ssbfilt_n, states.txbpf_width_Hz/states.Fs); lo = exp(j*2*pi*states.fcentre*(1:length(tx))/(states.Fs)); tx = lo.*filter(ssbfilt_coeff,1,tx.*conj(lo)); % filter messs up peak levels use this to get us back to approx 16384 tx *= states.clip_gain2; end % Hilbert Clipper 2 - remove any really low probability outliers after clipping/filtering % even on vanilla Tx [tx tmp] = ofdm_clip(states, tx, states.ofdm_peak); % note this is PAPR of complex signal, PAPR of real signal will be 3dB-ish larger peak = max(abs(tx)); RMS = sqrt(mean(abs(tx).^2)); cpapr = 10*log10((peak.^2)/(RMS.^2)); if states.verbose printf("Peak: %4.2f RMS: %5.2f CPAPR: %4.1f clipped: %5.2f%%\n", peak, RMS, cpapr, nclipped*100/length(tx)); end endfunction % helper function that adds channel simulation and ensures we don't saturate int16 output samples function [rx_real rx] = ofdm_channel(states, tx, SNR3kdB, channel, freq_offset_Hz) [rx_real rx sigma] = channel_simulate(states.Fs, SNR3kdB, freq_offset_Hz, channel, tx, states.verbose); % add a few seconds of no signal either side rx_real = [sigma*randn(1,states.Fs) rx_real sigma*randn(1,states.Fs/2)]; % multipath models can lead to clipping of int16 samples num_clipped = length(find(abs(rx_real>32767))); while num_clipped/length(rx_real) > 0.001 rx_real /= 2; num_clipped = length(find(abs(rx_real>32767))); printf("WARNING: output samples clipped, reducing level\n") end endfunction codec2-1.0.1/octave/ofdm_load_const.m000066400000000000000000000024711412132000500174310ustar00rootroot00000000000000% make like C #define for ofdm modem Fs = states.Fs; bps = states.bps; Rs = states.Rs; Tcp = states.Tcp; Ns = states.Ns; Np = states.Np; Nc = states.Nc; M = states.M; Ncp = states.Ncp; bps = states.bps; Nbitsperframe = states.Nbitsperframe; Nbitsperpacket = states.Nbitsperpacket; Nsampersymbol = states.Nsampersymbol; Nsamperframe = states.Nsamperframe; timing_mx_thresh = states.timing_mx_thresh; Nuwbits = states.Nuwbits; Ntxtbits = states.Ntxtbits; tx_uw = states.tx_uw; uw_ind = states.uw_ind; uw_ind_sym = states.uw_ind_sym; Nuwframes=states.Nuwframes; W = states.W; w = states.w; timing_est = states.timing_est; sample_point = states.sample_point; ftwindow_width = states.ftwindow_width; Nrxbuf = states.Nrxbuf; rxbuf = states.rxbuf; rxbufst = states.rxbufst; Nrxbufmin = states.Nrxbufmin; pilots = states.pilots; rate_fs_pilot_samples = states.rate_fs_pilot_samples; foff_est_gain = states.foff_est_gain; foff_est_hz = states.foff_est_hz; timing_en = states.timing_en; foff_est_en = states.foff_est_en; phase_est_en = states.phase_est_en; rate = states.rate; ldpc_en = states.ldpc_en; if ldpc_en code_param = states.code_param; max_iterations = states.ldpc_max_iterations; demod_type = states.ldpc_demod_type; decoder_type = states.ldpc_decoder_type; end verbose = states.verbose; ofdm_peak = states.ofdm_peak; codec2-1.0.1/octave/ofdm_rx.m000066400000000000000000000173271412132000500157430ustar00rootroot00000000000000% ofdm_rx.m % David Rowe May 2018 % % OFDM file based uncoded rx to unit test core OFDM modem. See also % ofdm_ldpc_rx which includes LDPC and interleaving, and ofdm_demod.c #{ 1. Streaming mode operation: ofdm_rx("test_datac0.raw","datac0") 2. Burst mode, tell state machine there is one packet in each burst: ofdm_rx("test_datac0.raw","datac0","packetsperburst",1) 3. Burst mode, enable only postamble detecion: ofdm_rx("test_datac0.raw","datac0","packetsperburst",1, "postambletest") #} function ofdm_rx(filename, mode="700D", varargin) ofdm_lib; more off; pkg load signal; % init modem config = ofdm_init_mode(mode); states = ofdm_init(config); print_config(states); ofdm_load_const; states.verbose = 0; pass_ber = 0; pass_packet_count = 0; i = 1; while i <= length(varargin) if strcmp(varargin{i},"packetsperburst") states.data_mode = "burst"; % use pre/post amble based sync states.packetsperburst = varargin{i+1}; i++; states.postambledetectoren = 1; elseif strcmp(varargin{i},"passber") pass_ber = varargin{i+1}; i++; elseif strcmp(varargin{i},"passpacketcount") pass_packet_count = varargin{i+1}; i++; elseif strcmp(varargin{i},"postambletest") printf("postamble test!\n"); states.postambletest = 1; % at high SNR avoid firing on data frames just before postamble states.timing_mx_thresh = 0.15; else printf("\nERROR unknown argument: %s\n", varargin{i}); return; end i++; end % load real samples from file Ascale = states.amp_scale/2; % as input is a real valued signal frx=fopen(filename,"rb"); rx = fread(frx, Inf, "short")/Ascale; fclose(frx); Nsam = length(rx); prx = 1; % OK re-generate tx frame for BER calcs tx_bits = create_ldpc_test_frame(states, coded_frame=0); % init logs and BER stats rx_np_log = []; timing_est_log = []; delta_t_log = []; foff_est_hz_log = []; sample_point_log = []; channel_est_pilot_log = []; snr_log = []; Terrs = Tbits = Terrs_coded = Tbits_coded = Tpackets = Tpacketerrs = 0; packet_count = frame_count = 0; Nerrs_coded_log = Nerrs_log = []; error_positions = []; prx = 1; nin = Nsamperframe+2*(M+Ncp); states.verbose = 1; Nsymsperpacket = Nbitsperpacket/bps; Nsymsperframe = Nbitsperframe/bps; rx_syms = zeros(1,Nsymsperpacket); rx_amps = zeros(1,Nsymsperpacket); Nerrs = 0; rx_uw = zeros(1,states.Nuwbits); % main loop ---------------------------------------------------------------- f = 1; while(prx < Nsam) % insert samples at end of buffer, set to zero if no samples % available to disable phase estimation on future pilots on last % frame of simulation lnew = min(Nsam-prx,states.nin); rxbuf_in = zeros(1,states.nin); if lnew rxbuf_in(1:lnew) = rx(prx:prx+lnew-1); end prx += states.nin; if states.verbose printf("f: %3d nin: %4d st: %-6s ", f, states.nin, states.sync_state); end if strcmp(states.sync_state,'search') [timing_valid states] = ofdm_sync_search(states, rxbuf_in); else % accumulate a buffer of data symbols for this packet rx_syms(1:end-Nsymsperframe) = rx_syms(Nsymsperframe+1:end); rx_amps(1:end-Nsymsperframe) = rx_amps(Nsymsperframe+1:end); [states rx_bits achannel_est_pilot_log arx_np arx_amp] = ofdm_demod(states, rxbuf_in); rx_syms(end-Nsymsperframe+1:end) = arx_np; rx_amps(end-Nsymsperframe+1:end) = arx_amp; rx_uw = extract_uw(states, rx_syms(end-Nuwframes*Nsymsperframe+1:end), rx_amps(end-Nuwframes*Nsymsperframe+1:end)); % We need the full packet of symbols before disassembling and checking for bit errors if states.modem_frame == (states.Np-1); rx_bits = zeros(1,Nbitsperpacket); for s=1:Nsymsperpacket if bps == 2 rx_bits(bps*(s-1)+1:bps*s) = qpsk_demod(rx_syms(s)); elseif bps == 4 rx_bits(bps*(s-1)+1:bps*s) = qam16_demod(states.qam16,rx_syms(s), rx_amps(s)); end end errors = xor(tx_bits, rx_bits); Nerrs = sum(errors); Nerrs_log = [Nerrs_log Nerrs]; Terrs += Nerrs; Tbits += Nbitsperpacket; packet_count++; % per-packet SNR estimate EsNo_estdB = esno_est_calc(rx_syms); SNR_estdB = snr_from_esno(states, EsNo_estdB); snr_log = [snr_log SNR_estdB]; end % we are in sync so log states rx_np_log = [rx_np_log arx_np]; timing_est_log = [timing_est_log states.timing_est]; sample_point_log = [sample_point_log states.sample_point]; delta_t_log = [delta_t_log states.delta_t]; foff_est_hz_log = [foff_est_hz_log states.foff_est_hz]; channel_est_pilot_log = [channel_est_pilot_log; achannel_est_pilot_log]; frame_count++; end states = sync_state_machine(states, rx_uw); if states.verbose if strcmp(states.last_sync_state,'search') == 0 if (states.modem_frame == 0) && (strcmp(states.sync_state, "trial") == 0) printf(" euw: %3d %d mf: %2d pbw: %s foff: %4.1f eraw: %3d snr: %5.2f", states.uw_errors, states.sync_counter, states.modem_frame, states.phase_est_bandwidth(1), states.foff_est_hz, Nerrs, SNR_estdB); else printf(" euw: %3d %d mf: %2d pbw: %s foff: %4.1f", states.uw_errors, states.sync_counter, states.modem_frame, states.phase_est_bandwidth(1), states.foff_est_hz); end end printf("\n"); end % reset stats if in streaming mode, don't reset if in burst mode if strcmp(states.data_mode, "streaming") && states.sync_start Nerrs_log = []; Terrs = Tbits = frame_count = 0; rx_np_log = []; sig_var_log = []; noise_var_log = []; end f++; end Nframes = f; ber = Terrs/(Tbits+1E-12); printf("\nBER..: %5.4f Tbits: %5d Terrs: %5d\n", ber, Tbits, Terrs); % If we have enough frames, calc BER discarding first few frames where freq % offset is adjusting Ndiscard = 20; if packet_count > Ndiscard Terrs -= sum(Nerrs_log(1:Ndiscard)); Tbits -= Ndiscard*Nbitsperframe; printf("BER2.: %5.4f Tbits: %5d Terrs: %5d\n", Terrs/Tbits, Tbits, Terrs); end SNR_estdB = mean(snr_log); printf("Packets: %3d Npre: %d Npost: %d SNR3k: %3.2f\n", packet_count, states.npre, states.npost, SNR_estdB); figure(1); clf; tmp = exp(j*pi/4)*rx_np_log(floor(end/4):floor(end-end/8)); plot(tmp,'+'); mx = 2*max(abs(tmp)); axis([-mx mx -mx mx]); title('Scatter'); figure(2); clf; plot(angle(channel_est_pilot_log(:,2:Nc)),'g+', 'markersize', 5); title('Phase est'); axis([1 length(channel_est_pilot_log) -pi pi]); figure(3); clf; plot(abs(channel_est_pilot_log(:,:)),'g+', 'markersize', 5); title('Amp est'); axis([1 length(channel_est_pilot_log) -3 3]); figure(4); clf; subplot(211) stem(delta_t_log) title('delta t'); subplot(212) plot(timing_est_log,';timing est;'); hold on; plot(sample_point_log,';sample point;'); hold off; figure(5); clf; plot(foff_est_hz_log) mx = max(abs(foff_est_hz_log))+1; axis([1 max(Nframes,2) -mx mx]); title('Fine Freq'); ylabel('Hz') figure(6); clf; stem(Nerrs_log); title('Errors/modem frame') if length(Nerrs_log) > 1 axis([1 length(Nerrs_log) 0 Nbitsperframe*rate/2]); endif figure(7); clf; plot(snr_log); title('SNR estimates'); figure(8); clf; plot_specgram(rx, 8000, 500, 2500); % optional pass criteria for ctests if pass_ber > 0 if packet_count && (ber < pass_ber) printf("Pass!\n"); else printf("Fail!\n"); end; end if pass_packet_count > 0 if packet_count >= pass_packet_count printf("Pass!\n"); else printf("Fail!\n"); end; end endfunction codec2-1.0.1/octave/ofdm_time_sync.m000066400000000000000000000011321412132000500172670ustar00rootroot00000000000000% ofdm_time_sync.m % David Rowe June 2019 % % Tests ofdm modem sync time, using real, off air files function ofdm_time_sync(filename, Ntrials=10) time_to_sync = []; passes = fails = 0; for toffset=0:Ntrials-1 atime = ofdm_ldpc_rx(filename, mode="700D", interleave_frames = 1, "", start_secs=toffset, len_secs=5); if atime != -1 passes++; time_to_sync = [time_to_sync atime]; else fails++; end end printf("pass: %d fails: %d mean: %3.2f var %3.2f\n", passes, fails, mean(time_to_sync), var(time_to_sync)); figure(1); clf; plot(time_to_sync); endfunction codec2-1.0.1/octave/ofdm_tx.m000066400000000000000000000053161412132000500157400ustar00rootroot00000000000000% ofdm_tx.m % David Rowe March 2018 % % File based, uncoded OFDM tx. Generates a file of ofdm samples, % including optional channel simulation. See also ofdm_ldpc_tx.m, and % ofdm_mod.c #{ Examples: i) 10 seconds, AWGN channel at SNR3k=3dB octave:4> ofdm_tx("awgn_snr_3dB_700d.raw", "700D", 10, 3) ii) 10 seconds, multipath poor channel at SNR=6dB octave:5> ofdm_tx("hf_snr_6dB_700d.raw", "700D", 10, 6, "mpp") iii) Data mode example, three bursts of one packet each, SNR=100dB: octave:6> ofdm_tx("test_datac0.raw","datac0",1,100,"awgn","bursts",3) #} function ofdm_tx(filename, mode="700D", N, SNR3kdB=100, channel='awgn', varargin) ofdm_lib; channel_lib; randn('seed',1); pkg load signal; tx_clip_en = 0; freq_offset_Hz = 0.0; burst_mode = 0; Nbursts = 1; i = 1; while i<=length(varargin) if strcmp(varargin{i},"txclip") tx_clip_en = 1; elseif strcmp(varargin{i},"bursts") burst_mode = 1; Nbursts = varargin{i+1}; i++; else printf("\nERROR unknown argument: [%d] %s \n", i ,varargin{i}); return; end i++; end % init modem config = ofdm_init_mode(mode); states = ofdm_init(config); print_config(states); ofdm_load_const; if burst_mode % burst mode: treat N as Npackets Npackets = N; else % streaming mode: treat N as Nseconds Npackets = round(N/states.Tpacket); end % Generate fixed test frame of tx bits and concatentate packets tx_bits = create_ldpc_test_frame(states, coded_frame=0); atx = ofdm_mod(states, tx_bits); tx = []; for f=1:Npackets tx = [tx atx]; end if length(states.data_mode) % note postamble provides a "column" of pilots at the end of the burst tx = [states.tx_preamble tx states.tx_postamble]; end % if burst mode concatenate multiple bursts with spaces if burst_mode atx = tx; tx = []; for b=1:Nbursts tx = [tx atx zeros(1,states.Fs)]; end % adjust channel simulator SNR setpoint given (burst on length)/(total length including silence) ratio burst_len = length(atx); padded_burst_len = burst_len + states.Fs; mark_space_SNR_offset = 10*log10(burst_len/padded_burst_len); SNRdB_setpoint = SNR3kdB + mark_space_SNR_offset; printf("SNR3kdB: %4.2f Burst offset: %4.2f SNRdB_setpoint: %4.2f\n", SNR3kdB, mark_space_SNR_offset, SNRdB_setpoint) else SNRdB_setpoint = SNR3kdB; % no adjustment to SNR in streaming mode end printf("Npackets: %d Nbursts: %d ", Npackets, Nbursts); states.verbose=1; tx = ofdm_hilbert_clipper(states, tx, tx_clip_en); rx_real = ofdm_channel(states, tx, SNRdB_setpoint, channel, freq_offset_Hz); frx = fopen(filename,"wb"); fwrite(frx, rx_real, "short"); fclose(frx); endfunction codec2-1.0.1/octave/oqpsk.m000066400000000000000000000351401412132000500154330ustar00rootroot00000000000000% oqpsk.m % David Rowe Jan 2017 % % Unfiltered OQPSK modem implementation and simulations to test, % derived from GMSK modem in gmsk.m % % Usage: see "choose one of these to run" at the end of this file. rand('state',1); randn('state',1); graphics_toolkit ("gnuplot"); format more off; % init modem states function oqpsk_states = oqpsk_init(oqpsk_states, Rs) % general verbose = oqpsk_states.verbose; oqpsk_states.Fs = 4*Rs; oqpsk_states.Rs = Rs; oqpsk_states.bps = 2; % two bit/symbol for QPSK M = oqpsk_states.M = oqpsk_states.Fs/oqpsk_states.Rs; assert(floor(M) == M, "oversampling factor M must be an integer"); assert(floor(M/2) == M/2, "(oversampling factor M)/2 must be an integer to offset QPSK"); endfunction % Gray coded QPSK modulation function function symbol = qpsk_mod(two_bits) two_bits_decimal = sum(two_bits .* [2 1]); switch(two_bits_decimal) case (0) symbol = 1; case (1) symbol = j; case (2) symbol = -j; case (3) symbol = -1; endswitch endfunction % Gray coded QPSK demodulation function function two_bits = qpsk_demod(symbol) if isscalar(symbol) == 0 printf("only works with scalars\n"); return; end bit0 = real(symbol*exp(j*pi/4)) < 0; bit1 = imag(symbol*exp(j*pi/4)) < 0; two_bits = [bit1 bit0]; endfunction % Unfiltered OQPSK modulator function [tx tx_symb] = oqpsk_mod(oqpsk_states, tx_bits) M = oqpsk_states.M; bps = oqpsk_states.bps; nsym = length(tx_bits)/bps; nsam = nsym*M; verbose = oqpsk_states.verbose; % Map bits to Gray coded QPSK symbols tx_symb = zeros(1,nsym); for i=1:nsym tx_symb(i) = qpsk_mod(tx_bits(2*i-1:2*i))*exp(j*pi/4); end % Oversample by M (sample and hold) to create unfiltered QPSK tx = zeros(1, nsam); for i=1:nsym tx((i-1)*M+1:(i*M)) = tx_symb(i); end % delay Q arm by half of a symbol to make OQPSK tx = [real(tx) zeros(1,M/2)] + j*[zeros(1,M/2) imag(tx)]; endfunction #{ Unfiltered OQPSK demodulator function, with (optional) phase and timing estimation. Adapted from Fig 8 of [1]. See also gmsk.m and [2]. Note demodulator returns phase corrected symbols sampled at ideal timing instant. These symbols may have a m*pi/2 phase ambiguity due to properties of phase tracking loop. The caller is responsible for determining this ambiguity and recovering the actual bits. [1] GMSK demodulator in IEEE Trans on Comms, Muroyta et al, 1981, "GSM Modulation for Digital Radio Telephony". [2] GMSK Modem Simulation, http://www.rowetel.com/?p=3824 #} function [rx_symb rx_int filt_log dco_log timing_adj Toff] = oqpsk_demod(oqpsk_states, rx) M = oqpsk_states.M; Rs = oqpsk_states.Rs; Fs = oqpsk_states.Fs; nsam = length(rx); nsym = floor(nsam/M); verbose = oqpsk_states.verbose; timing_angle_log = zeros(1,length(rx)); rx_int = zeros(1,length(rx)); dco_log = filt_log = zeros(1,nsam); % Unfiltered PSK - integrate energy in symbols M long in re and im arms rx_int = conv(rx,ones(1,M))/M; % phase and fine frequency tracking and correction ------------------------ if oqpsk_states.phase_est % DCO design from "Introduction To Phase-Lock Loop System Modeling", Wen Li % http://www.ece.ualberta.ca/~ee401/parts/data/PLLIntro.pdf eta = 0.707; wn = 2*pi*10*(Rs/4800); % (Rs/4800) -> found reducing the BW benefical with falling Rs Ts = 1/Fs; g1 = 1 - exp(-2*eta*wn*Ts); g2 = 1 + exp(-2*eta*wn*Ts) - 2*exp(-eta*wn*Ts)*cos(wn*Ts*sqrt(1-eta*eta)); Gpd = 2/pi; Gvco = 1; G1 = g1/(Gpd*Gvco); G2 = g2/(Gpd*Gvco); %printf("g1: %e g2: %e G1: %e G2: %e\n", g1, g2, G1, G2); filt_prev = dco = lower = ph_err_filt = ph_err = 0; end if oqpsk_states.timing_est % w is the ref sine wave at the timing clock frequency % tw is the length of the window used to estimate timing tw = 200*M; k = 1; xr_log = []; xi_log = []; w_log = []; timing_clock_phase = 0; timing_angle = 0; timing_angle_log = zeros(1,nsam); end % Sample by sample processing loop for timing and phase est. Note % this operates at sample rate Fs, unlike many PSK modems that % operate at the symbol rate Rs for i=1:nsam if oqpsk_states.timing_est % update sample timing estimate every tw samples, free wheel % rest of the time if mod(i,tw) == 0 l = i - tw+1; xr = abs(real(rx_int(l:l+tw-1))); xi = abs(imag(rx_int(l:l+tw-1))); w = exp(j*(l:l+tw-1)*2*pi*Rs/Fs); X = xr * w'; timing_clock_phase = timing_angle = angle(X); k++; xr_log = [xr_log xr]; xi_log = [xi_log xi]; w_log = [w_log w]; else timing_clock_phase += (2*pi)/M; end timing_angle_log(i) = timing_angle; end if oqpsk_states.phase_est % PLL per-sample processing rx_int(i) *= exp(-j*dco); ph_err = sign(real(rx_int(i))*imag(rx_int(i)))*cos(timing_clock_phase); lower = ph_err*G2 + lower; filt = ph_err*G1 + lower; dco_log(i) = dco; dco = dco + filt; filt_log(i) = filt; end end % final adjustment of timing output to take into account slowly % moving estimates due to sample clock offset. Unwrap ensures that % when timing angle jumps from -pi to pi we move to the next symbol % and frame sync isn't broken timing_adj = timing_angle_log*M/(2*pi); timing_adj_uw = unwrap(timing_angle_log)*M/(2*pi); % Toff = floor(2*M+timing_adj); Toff = floor(timing_adj_uw+0.5); % sample integrator output at correct timing instant k = 1; re_syms = im_syms = zeros(1,nsym); rx_symb = []; for i=M:M:nsam if i-Toff(i)+M/2 <= nsam re_syms(k) = real(rx_int(i-Toff(i))); im_syms(k) = imag(rx_int(i-Toff(i)+M/2)); %re_syms(k) = real(rx_int(i)); %im_syms(k) = imag(rx_int(i)); rx_symb = [rx_symb re_syms(k) + j*im_syms(k)]; k++; end end endfunction % Test modem over a range Eb/No points in an AWGN channel. Can % simulate a variety of channel impairments and performs ambiguity % resolution. function sim_out = oqpsk_test(sim_in) bitspertestframe = sim_in.bitspertestframe; nbits = sim_in.nbits; EbNodB = sim_in.EbNodB; verbose = sim_in.verbose; Rs = 4800; oqpsk_states.verbose = verbose; oqpsk_states.coherent_demod = sim_in.coherent_demod; oqpsk_states.phase_est = sim_in.phase_est; oqpsk_states.timing_est = sim_in.timing_est; oqpsk_states = oqpsk_init(oqpsk_states, Rs); M = oqpsk_states.M; Fs = oqpsk_states.Fs; Rs = oqpsk_states.Rs; sample_clock_offset_ppm = sim_in.sample_clock_offset_ppm; tx_testframe = round(rand(1, bitspertestframe)); ntestframes = floor(nbits/bitspertestframe); tx_bits = []; for i=1:ntestframes tx_bits = [tx_bits tx_testframe]; end for ne = 1:length(EbNodB) aEbNodB = EbNodB(ne); EbNo = 10^(aEbNodB/10); variance = Fs/(Rs*EbNo*oqpsk_states.bps); [tx tx_symb] = oqpsk_mod(oqpsk_states, tx_bits); if sample_clock_offset_ppm tx = resample(tx, 1E6, 1E6-sample_clock_offset_ppm); end nsam = length(tx); phi = sim_in.phase_offset + 2*pi*sim_in.freq_offset*(1:nsam)/M; noise = sqrt(variance/2)*(randn(1,nsam) + j*randn(1,nsam)); st = 1+sim_in.timing_offset; en = length(tx); rx = tx(st:en).*exp(j*phi(st:en)) + noise(st:en); [rx_symb rx_int filt_log dco_log timing_adj Toff] = oqpsk_demod(oqpsk_states, rx); % OK so the phase and timing estimators get us close (e.g. a good % scatter diagram), but no banana just yet. One problem is the % PLL can lock up on mulitples of pi/2. Combinations of phase % offsets can confuse the timing estimator. One tricky example is a % phase offset of pi/2 which swaps I & Q, and with OQPSK (unlike % MSK and friends) we can't easily tell which is I and which is Q % after a phase rotation, e.g. could be IQIQIQI or QIQIQIQ % So we need to determine the ambiguities: % a) could be m*pi/2 rotations of phase % b) could be I and Q swapped by timing est % c) time alignment of test frame nsymb = bitspertestframe/oqpsk_states.bps; nrx_symb = length(rx_symb); rx_bits = zeros(1, bitspertestframe); atx_symb = tx_symb(1:nsymb); % Treat I and Q as separate sequences, each with their own unique % word. In our case the UW is the whole test frame. Correlate rx % sequence with tx sequence at each possible offset through the % received symbols to find the test frames. Note we also % correlate I of tx with Q of rx to trap any IQ swaps. % The sign of the I and Q correlation lets us sort out the pi/2 % phase rotation issue. nerrs_tot = 0; nbits_tot = 0; max_corr = real(atx_symb) * real(atx_symb)'; for offset=2:nrx_symb-nsymb+1 corr_ii(offset) = real(atx_symb) * real(rx_symb(offset:offset+nsymb-1))'/max_corr; corr_qq(offset) = imag(atx_symb) * imag(rx_symb(offset:offset+nsymb-1))'/max_corr; corr_iq(offset) = real(atx_symb) * imag(rx_symb(offset:offset+nsymb-1))'/max_corr; corr_qi(offset) = imag(atx_symb) * real(rx_symb(offset:offset+nsymb-1))'/max_corr; %printf("offset: %2d ii: % 5f qq: % 5f iq: % 5f qi: % 5f\n", %offset, corr_ii(offset), corr_qq(offset), corr_iq(offset), corr_qi(offset)); if abs(corr_ii(offset)) > 0.8 % no IQ swap, or time offset i_sign = sign(corr_ii(offset)); q_sign = sign(corr_qq(offset)); arx_symb = i_sign*real(rx_symb(offset:offset+nsymb-1)) + j*q_sign*imag(rx_symb(offset:offset+nsymb-1)); for i=1:nsymb rx_bits(2*i-1:2*i) = qpsk_demod(arx_symb(i)*exp(-j*pi/4)); end nerrs = sum(xor(tx_testframe, rx_bits)); if verbose > 2 printf("offset: %5d swap: %d i_sign: % 2.1f q_sign: % 2.1f nerr: %d\n", offset, 0, i_sign, q_sign, nerrs); end nerrs_tot += nerrs; nbits_tot += bitspertestframe; end if abs(corr_qi(offset)) > 0.8 % IQ swap, I part in Q part of symbol before i_sign = sign(corr_iq(offset-1)); q_sign = sign(corr_qi(offset)); arx_symb = i_sign*imag(rx_symb(offset-1:offset+nsymb-2)) + j*q_sign*real(rx_symb(offset:offset+nsymb-1)); for i=1:nsymb rx_bits(2*i-1:2*i) = qpsk_demod(arx_symb(i)*exp(-j*pi/4)); end nerrs = sum(xor(tx_testframe, rx_bits)); if verbose > 1 printf("offset: %5d swap: %d i_sign: % 2.1f q_sign: % 2.1f nerr: %d\n", offset, 1, i_sign, q_sign, nerrs); end nerrs_tot += nerrs; nbits_tot += bitspertestframe; end end TERvec(ne) = nerrs_tot; BERvec(ne) = nerrs_tot/nbits_tot; if verbose > 0 printf("EbNo dB: %3.1f Nbits: %d Nerrs: %d BER: %4.3f BER Theory: %4.3f\n", aEbNodB, nbits_tot, nerrs_tot, BERvec(ne), 0.5*erfc(sqrt(EbNo))); end if find(sim_in.plots == 1) figure(1); clf; subplot(211) stem(real(tx)) title('Tx samples'); ylabel('Inphase'); subplot(212) stem(imag(tx)) ylabel('Quadrature'); end if find(sim_in.plots == 2) figure(2); clf; f = fftshift(fft(rx)); Tx = 20*log10(abs(f)); plot((1:length(f))*Fs/length(f) - Fs/2, Tx) grid; title('OQPSK Demodulator Input Spectrum'); end if find(sim_in.plots == 3) figure(3); clf; nplot = min(16, nbits/oqpsk_states.bps); title('Rx Integrator'); subplot(211) stem(real(rx_int(1:nplot*M))) axis([1 nplot*M -1 1]) subplot(212) stem(imag(rx_int(1:nplot*M))) axis([1 nplot*M -1 1]) end if find(sim_in.plots == 4) figure(4); clf; subplot(211); plot(filt_log); title('PLL filter') subplot(212); plot(dco_log); title('PLL DCO phase'); end if find(sim_in.plots == 5) figure(5); clf; subplot(211) plot(timing_adj); title('Timing est'); subplot(212) plot(Toff); title('Timing est unwrap'); end if find(sim_in.plots == 6) figure(6); clf; st = floor(0.5*nrx_symb); plot(rx_symb(st:nrx_symb), '+'); title('Scatter Diagram'); axis([-1.5 1.5 -1.5 1.5]) end if find(sim_in.plots == 7) figure(7); clf; subplot(211) plot(corr_ii); axis([1 length(corr_ii) -1.2 1.2]); title('corr ii'); subplot(212) plot(corr_qi); axis([1 length(corr_ii) -1.2 1.2]); title('corr qi'); end if find(sim_in.plots == 8) figure(8); clf; subplot(211); stem(real(arx_symb)); title('Rx symbols') subplot(212); stem(imag(arx_symb)); end if find(sim_in.plots == 9) figure(9); clf; subplot(211) stem(tx_testframe(1:min(20,length(rx_bits)))) title('Tx Bits') subplot(212) stem(rx_bits(1:min(20,length(rx_bits)))) title('Rx Bits') end end sim_out.TERvec = TERvec; sim_out.BERvec = BERvec; sim_out.Rs = oqpsk_states.Rs; endfunction function run_oqpsk_single sim_in.coherent_demod = 1; sim_in.phase_est = 1; sim_in.timing_est = 1; sim_in.bitspertestframe = 100; sim_in.nbits = 10000; sim_in.EbNodB = 4; sim_in.verbose = 1; sim_in.phase_offset = 3*pi/4; % in radians sim_in.timing_offset = 4; % in samples 0..M-1 sim_in.freq_offset = 0.001; % fraction of Symbol Rate sim_in.plots = [1 2 4 5 6 7]; sim_in.sample_clock_offset_ppm = 100; sim_out = oqpsk_test(sim_in); endfunction % Generate a bunch of BER versus Eb/No curves for various demods function run_oqpsk_curves sim_in.coherent_demod = 1; sim_in.EbNodB = 2:8; sim_in.verbose = 1; sim_in.phase_est = 1; sim_in.timing_est = 1; sim_in.bitspertestframe = 100; sim_in.nbits = 50000; sim_in.phase_offset = 3*pi/4; % in radians sim_in.timing_offset = 4; % in samples 0..M-1 sim_in.freq_offset = 0.001; % fraction of Symbol Rate sim_in.plots = []; sim_in.sample_clock_offset_ppm = 0; oqpsk_coh = oqpsk_test(sim_in); Rs = oqpsk_coh.Rs; EbNo = 10 .^ (sim_in.EbNodB/10); oqpsk_theory.BERvec = 0.5*erfc(sqrt(EbNo)); % BER v Eb/No curves figure; clf; semilogy(sim_in.EbNodB, oqpsk_theory.BERvec,'r+-;OQPSK theory;') hold on; semilogy(sim_in.EbNodB, oqpsk_coh.BERvec,'g+-;OQPSK sim;') hold off; grid("minor"); axis([min(sim_in.EbNodB) max(sim_in.EbNodB) 1E-4 1]) legend("boxoff"); xlabel("Eb/No (dB)"); ylabel("Bit Error Rate (BER)") endfunction % Choose one of these to run ------------------------------------------ run_oqpsk_single %run_oqpsk_curves codec2-1.0.1/octave/papr_test.m000066400000000000000000000404701412132000500163010ustar00rootroot00000000000000% papr_test.m % % Experiments with PAPR reduction using clipping/compression % % OFDM Tx -> compress -> filter -> normalise power -> channel -> OFDM Rx #{ TODO: [ ] option for normalised power after clipper [ ] experiment to plot those curves #} 1; function symbol = qpsk_mod(two_bits) two_bits_decimal = sum(two_bits .* [2 1]); switch(two_bits_decimal) case (0) symbol = 1; case (1) symbol = j; case (2) symbol = -j; case (3) symbol = -1; endswitch endfunction function two_bits = qpsk_demod(symbol) bit0 = real(symbol*exp(j*pi/4)) < 0; bit1 = imag(symbol*exp(j*pi/4)) < 0; two_bits = [bit1 bit0]; endfunction function papr = calc_papr(tx) papr = 10*log10(max(abs(tx).^2)/mean(abs(tx).^2)); end % test PAPR calculation with a two tone signal of known PAPR (3dB) function test_papr f1=800; f2=1200; Fs=8000; n=(0:Fs-1); tx=exp(j*2*pi*n*f1/Fs) + exp(j*2*pi*n*f2/Fs); papr = calc_papr(tx); assert(abs(papr-3.0) < 0.05, 'test_papr() failed!') end % "Genie" OFDM modem simulation that assumes ideal sync function [ber papr] = run_sim(Nc, Nsym, EbNodB, channel='awgn', plot_en=0, filt_en=0, method="", threshold=1, norm_ebno=0) rand('seed',1); randn('seed',1); M = 160; % number of samples in each symbol bps = 2; % two bits per symbol for QPSK Ncp = 16; % cyclic prefix samples Fs = 8000; phase_est = 1; % perform phase estimation/correction timing = Ncp; if strcmp(method,"diversity") % total power of tx symbol after combination the same. Scatter plot positions % different but also twice as much noise (bandwidth) Nd = 2; gain = 1/sqrt(2); else Nd = 1; gain = 1.0; end if strcmp(channel,'multipath') dopplerSpreadHz = 1; path_delay = Ncp/2; Nsam = floor(Nsym*(M+Ncp)*1.1); spread1 = doppler_spread(dopplerSpreadHz, Fs, Nsam); spread2 = doppler_spread(dopplerSpreadHz, Fs, Nsam); end papr_log = []; for e=1:length(EbNodB) % generate a 2D array of QPSK symbols Nphases = 2^bps; tx_phases = pi/2*floor((rand(Nsym,Nc)*Nphases)); if strcmp(method,"diversity") % duplicate carriers but with opposite phase tx_phases = [tx_phases (tx_phases-pi/2)]; end tx_sym = gain*exp(j*tx_phases); % carrier frequencies, centre about 0 st = floor(Nc*Nd/2); w = 2*pi/M*(-st:-st+Nc*Nd-1); % generate OFDM signal tx = []; for s=1:Nsym atx = zeros(1,M); for c=1:Nc*Nd atx += exp(j*(0:M-1)*w(c))*tx_sym(s,c); end % insert cyclic prefix and build up stream of time domain symbols % note CP costs us 10*log10((Ncp+M)/M) in Eb, as energy in CP isn't used for demodulation tx = [tx atx(end-Ncp+1:end) atx]; end Nsam = length(tx); if strcmp(channel,'multipath') assert(length(spread1) >= Nsam); assert(length(spread2) >= Nsam); end % bunch of PAPR reduction options tx_ = tx; % determine threshold based on CDF cdf = empirical_cdf((1:Nc),abs(tx)); if strcmp(method, "clip") || strcmp(method, "diversity") || strcmp(method, "compand") if threshold < 1 threshold_level = find(cdf >= threshold)(1); else threshold_level = 10*Nc; end % printf("threshold: %f threshold_level: %f\n", threshold, threshold_level); end if strcmp(method, "clip") || strcmp(method, "diversity") ind = find(abs(tx) > threshold_level); tx_(ind) = threshold_level*exp(j*angle(tx(ind))); end if strcmp(method, "compand") # power law compander x = a*y^power, y = (x/a) ^ (1/power) power=2; a=threshold_level/(threshold_level^power); tx_mag = (abs(tx)/a) .^ (1/power); tx_ = tx_mag.*exp(j*angle(tx)); end if filt_en Nfilt=80; b = fir1(Nfilt,2*Nc*Nd/M); tx_ = filter(b,1,[tx_ zeros(1,Nfilt/2)]); tx_ = [tx_(Nfilt/2+1:end)]; end rx = tx_; % multipath channel if phase_est % estimate phase of each symbol before multipath simulation rx_phase1 = zeros(Nsym,Nc); for s=1:Nsym st = (s-1)*(M+Ncp)+1+timing; en = st+M-1; for c=1:Nc*Nd rx_phase1(s,c) = sum(exp(-j*(0:M-1)*w(c)) .* rx(st:en))/M; end end end if strcmp(channel,'multipath') rx = spread1(1:Nsam).*rx + spread2(1:Nsam).*[zeros(1,path_delay) rx(1:end-path_delay)]; end % normalise power after multipath, so that Eb/No is set up % correctly if norm_ebno == 0 norm = sqrt(mean(abs(tx_).^2)/mean(abs(rx).^2)); else % normalise after clipper, this makes norm_pwr constant for all test % conditions norm = sqrt(mean(abs(tx).^2)/mean(abs(rx).^2)); end rx *= norm; norm_pwr = 10*log10(mean(abs(rx).^2)); if phase_est % auxillary rx to get ideal phase ests on signal after multipath but before AWGN noise is added rx_phase = zeros(Nsym,Nc); for s=1:Nsym st = (s-1)*(M+Ncp)+1+timing; en = st+M-1; for c=1:Nc*Nd arx_sym = sum(exp(-j*(0:M-1)*w(c)) .* rx(st:en))/M; rx_phase(s,c) = arx_sym * conj(rx_phase1(s,c)); end end rx_phase = exp(j*arg(rx_phase)); end % AWGN channel EsNodB = EbNodB(e) + 10*log10(bps); variance = M/(10^(EsNodB/10)); noise = sqrt(variance/2)*randn(1,Nsam) + j*sqrt(variance/2)*randn(1,Nsam); rx += noise; % demodulate rx_sym = zeros(Nsym,Nc); for s=1:Nsym st = (s-1)*(M+Ncp)+1+timing; en = st+M-1; for c=1:Nc*Nd rx_sym(s,c) = sum(exp(-j*(0:M-1)*w(c)) .* rx(st:en))/M; if phase_est rx_sym(s,c) *= conj(rx_phase(s,c)); end end if strcmp(method,"diversity") for c=1:Nc rx_sym(s,c) += rx_sym(s,c+Nc)*exp(j*pi/2); end end end % count bit errors Tbits = Terrs = 0; ErrPerSym = zeros(1,Nsym); for s=1:Nsym Nerrs = 0; for c=1:Nc tx_bits = qpsk_demod(tx_sym(s,c)); rx_bits = qpsk_demod(rx_sym(s,c)); Tbits += bps; Nerrs += sum(xor(tx_bits,rx_bits)); end ErrPerSym(s) = Nerrs; Terrs += Nerrs; end if plot_en figure(1); clf; plot(abs(tx(1:5*M))); hold on; plot(abs(tx_(1:5*M))); hold off; axis([0 5*M 0 max(abs(tx))]); figure(2); clf; [hh nn] = hist(abs(tx),25,1); plotyy(nn,hh,1:Nc,cdf); title('PDF and CDF'); grid; figure(3); clf; plot(real(rx_sym(:,1:Nc)), imag(rx_sym(:,1:Nc)), '+'); axis([-2 2 -2 2]); figure(4); clf; Tx_ = 10*log10(abs(fft(tx_))); plot(fftshift(Tx_)); mx = 10*ceil(max(Tx_)/10); axis([1 length(Tx_) mx-60 mx]); figure(5); plot_specgram(real(rx.*exp(j*2*pi*(0:Nsam-1)/4))); figure(6); clf; stem(ErrPerSym); end papr1 = calc_papr(tx); papr2 = calc_papr(tx_); papr_log = [papr_log papr2]; ber(e) = Terrs/Tbits; printf("EbNodB: %4.1f %3.1f %4.1f PAPR: %5.2f %5.2f Tbits: %6d Terrs: %6d BER: %5.3f\n", EbNodB(e), norm, norm_pwr, papr1, papr2, Tbits, Terrs, ber(e)) end papr = mean(papr_log); end % BER versus Eb/No curves ------------------------------------- % first pass at trying out a few different schemes function curves_experiment1(Nc=8, channel='awgn', Nsym=1000, EbNodB=2:8) [ber1 papr1] = run_sim(Nc, Nsym, EbNodB, channel, 0, filt_en=1); [ber2 papr2] = run_sim(Nc, Nsym, EbNodB, channel, 0, filt_en=1, "clip", threshold=0.8); [ber3 papr3] = run_sim(Nc, Nsym, EbNodB, channel, 0, filt_en=1, "clip", threshold=0.6); [ber4 papr4] = run_sim(Nc, Nsym, EbNodB, channel, 0, filt_en=1, "compand", threshold=0.6); [ber5 papr5] = run_sim(Nc, Nsym, EbNodB, channel, 0, filt_en=1, "diversity", threshold=0.6); figure(7); clf; semilogy(EbNodB, ber1,sprintf('b+-;vanilla OFDM %3.1f;',papr1),'markersize', 10, 'linewidth', 2); hold on; semilogy(EbNodB, ber2,sprintf('r+-;clip 0.8 %3.1f;',papr2),'markersize', 10, 'linewidth', 2); semilogy(EbNodB, ber3,sprintf('g+-;clip 0.6 %3.1f;',papr3),'markersize', 10, 'linewidth', 2); semilogy(EbNodB, ber4,sprintf('c+-;compand 0.6 %3.1f;',papr4),'markersize', 10, 'linewidth', 2); semilogy(EbNodB, ber5,sprintf('bk+-;diversity 0.6 %3.1f;',papr5),'markersize', 10, 'linewidth', 2); hold off; axis([min(EbNodB) max(EbNodB) 1E-3 1E-1]); grid; xlabel('Eb/No'); title(sprintf("%s Nc = %d", channel, Nc)) fn = sprintf("papr_exp1_%s_BER_EbNo.png", channel); print(fn,"-dpng"); figure(8); clf; semilogy(EbNodB+papr1, ber1,sprintf('b+-;vanilla OFDM %3.1f;',papr1),'markersize', 10, 'linewidth', 2); hold on; semilogy(EbNodB+papr2, ber2,sprintf('r+-;clip 0.8 %3.1f;',papr2),'markersize', 10, 'linewidth', 2); semilogy(EbNodB+papr3, ber3,sprintf('g+-;clip 0.6 %3.1f;',papr3),'markersize', 10, 'linewidth', 2); semilogy(EbNodB+papr4, ber4,sprintf('c+-;compand 0.6 %3.1f;',papr4),'markersize', 10, 'linewidth', 2); semilogy(EbNodB+papr5, ber5,sprintf('bk+-;diversity 0.6 %3.1f;',papr5),'markersize', 10, 'linewidth', 2); hold off; xlabel('Peak Eb/No'); axis([min(EbNodB)+papr2 max(EbNodB)+papr1 1E-3 1E-1]); grid; title(sprintf("%s Nc = %d", channel, Nc)) fn = sprintf("papr_exp1_%s_BER_peakEbNo.png", channel); print(fn,"-dpng"); end % vary threshold and plot BER v Eb/No curves function curves_experiment2(Nc=8, channel='awgn', Nsym=1000, EbNodB=2:16) [ber1 papr1] = run_sim(Nc, Nsym, EbNodB, channel, 0, filt_en=1); [ber2 papr2] = run_sim(Nc, Nsym, EbNodB, channel, 0, filt_en=1, "clip", threshold=0.8); [ber3 papr3] = run_sim(Nc, Nsym, EbNodB, channel, 0, filt_en=1, "clip", threshold=0.6); [ber4 papr4] = run_sim(Nc, Nsym, EbNodB, channel, 0, filt_en=1, "clip", threshold=0.4); [ber5 papr5] = run_sim(Nc, Nsym, EbNodB, channel, 0, filt_en=1, "clip", threshold=0.2); [ber6 papr6] = run_sim(Nc, Nsym, EbNodB, channel, 0, filt_en=1, "diversity", threshold=0.8); figure(7); clf; semilogy(EbNodB, ber1,sprintf('b+-;vanilla OFDM %3.1f;',papr1),'markersize', 10, 'linewidth', 2); hold on; semilogy(EbNodB, ber2,sprintf('r+-;clip 0.8 %3.1f;',papr2),'markersize', 10, 'linewidth', 2); semilogy(EbNodB, ber3,sprintf('g+-;clip 0.6 %3.1f;',papr3),'markersize', 10, 'linewidth', 2); semilogy(EbNodB, ber4,sprintf('c+-;clip 0.4 %3.1f;',papr4),'markersize', 10, 'linewidth', 2); semilogy(EbNodB, ber5,sprintf('bk+-;clip 0.2 %3.1f;',papr5),'markersize', 10, 'linewidth', 2); semilogy(EbNodB, ber6,sprintf('m+-;diversity 0.8 %3.1f;', papr6),'markersize', 10, 'linewidth', 2); hold off; axis([min(EbNodB) max(EbNodB) 1E-3 1E-1]); grid; xlabel('Eb/No'); title(sprintf("%s Nc = %d", channel, Nc)) fn = sprintf("papr_exp2_Nc%d_%s_BER_EbNo.png", Nc, channel); print(fn,"-dpng"); figure(8); clf; semilogy(EbNodB+papr1, ber1,sprintf('b+-;vanilla OFDM %3.1f;',papr1),'markersize', 10, 'linewidth', 2); hold on; semilogy(EbNodB+papr2, ber2,sprintf('r+-;clip 0.8 %3.1f;',papr2),'markersize', 10, 'linewidth', 2); semilogy(EbNodB+papr3, ber3,sprintf('g+-;clip 0.6 %3.1f;',papr3),'markersize', 10, 'linewidth', 2); semilogy(EbNodB+papr4, ber4,sprintf('c+-;clip 0.4 %3.1f;',papr4),'markersize', 10, 'linewidth', 2); semilogy(EbNodB+papr5, ber5,sprintf('bk+-;clip 0.2 %3.1f;',papr5),'markersize', 10, 'linewidth', 2); semilogy(EbNodB+papr6, ber6,sprintf('m+-;diversity 0.8 %3.1f;', papr6),'markersize', 10, 'linewidth', 2); hold off; xlabel('Peak Eb/No'); axis([min(EbNodB)+papr2 max(EbNodB)+papr1 1E-3 1E-1]); grid; title(sprintf("%s Nc = %d", channel, Nc)) fn = sprintf("papr_exp2_Nc%d_%s_BER_peakEbNo.png", Nc, channel); print(fn,"-dpng"); end % PAPR against number of carriers Nc function curves_experiment3(Nsym=3000) paper = zeros(1,32); Nc = 2:2:32; for i = 1:length(Nc) aNc = Nc(i); [aber apapr] = run_sim(aNc, Nsym, 100); papr(aNc) = apapr; end figure(9); clf; plot(Nc, papr(Nc)); xlabel('Number of Carriers Nc'); ylabel('PAPR (dB)'); grid; fn = sprintf("papr_exp3_Nc.png"); print(fn,"-dpng"); end % focus on diversity - vary threshold and plot BER v Eb/No curves function curves_experiment4(Nc=8, channel='multipath', Nsym=3000, EbNodB=2:2:16) [ber1 papr1] = run_sim(Nc, Nsym, EbNodB, channel, 0, filt_en=1); [ber2 papr2] = run_sim(Nc, Nsym, EbNodB, channel, 0, filt_en=1, "diversity", threshold=1); [ber3 papr3] = run_sim(Nc, Nsym, EbNodB, channel, 0, filt_en=1, "diversity", threshold=0.8); [ber4 papr4] = run_sim(Nc, Nsym, EbNodB, channel, 0, filt_en=1, "diversity", threshold=0.6); figure(7); clf; semilogy(EbNodB, ber1,sprintf('b+-;vanilla OFDM %3.1f;',papr1),'markersize', 10, 'linewidth', 2); hold on; semilogy(EbNodB, ber2,sprintf('r+-;diversity 1.0 %3.1f;',papr2),'markersize', 10, 'linewidth', 2); semilogy(EbNodB, ber3,sprintf('g+-;diversity 0.8 %3.1f;',papr3),'markersize', 10, 'linewidth', 2); semilogy(EbNodB, ber4,sprintf('c+-;diversity 0.6 %3.1f;',papr4),'markersize', 10, 'linewidth', 2); hold off; axis([min(EbNodB) max(EbNodB) 1E-3 1E-1]); grid; xlabel('Eb/No'); title(sprintf("%s Nc = %d", channel, Nc)) fn = sprintf("papr_exp4_Nc%d_%s_BER_EbNo.png", Nc, channel); print(fn,"-dpng"); figure(8); clf; semilogy(EbNodB+papr1, ber1,sprintf('b+-;vanilla OFDM %3.1f;',papr1),'markersize', 10, 'linewidth', 2); hold on; semilogy(EbNodB+papr2, ber2,sprintf('r+-;diversity 1.0 %3.1f;',papr2),'markersize', 10, 'linewidth', 2); semilogy(EbNodB+papr3, ber3,sprintf('g+-;diversity 0.8 %3.1f;',papr3),'markersize', 10, 'linewidth', 2); semilogy(EbNodB+papr4, ber4,sprintf('c+-;diversity 0.6 %3.1f;',papr4),'markersize', 10, 'linewidth', 2); hold off; xlabel('Peak Eb/No'); axis([min(EbNodB)+papr4 max(EbNodB)+papr1 1E-3 1E-1]); grid; title(sprintf("%s Nc = %d", channel, Nc)) fn = sprintf("papr_exp4_Nc%d_%s_BER_peakEbNo.png", Nc, channel); print(fn,"-dpng"); end % plot BER v Eb/No curves for clipping with normalised Eb/No after clipping function curves_experiment5(Nc=8, channel='awgn', Nsym=1000, EbNodB=2:10) [ber1 papr1] = run_sim(Nc, Nsym, EbNodB, channel, 0, filt_en=1, "", threshold=1, norm=1); [ber2 papr2] = run_sim(Nc, Nsym, EbNodB, channel, 0, filt_en=1, "clip", threshold=0.8, norm=1); [ber3 papr3] = run_sim(Nc, Nsym, EbNodB, channel, 0, filt_en=1, "clip", threshold=0.6, norm=1); [ber4 papr4] = run_sim(Nc, Nsym, EbNodB, channel, 0, filt_en=1, "clip", threshold=0.4, norm=1); [ber5 papr5] = run_sim(Nc, Nsym, EbNodB, channel, 0, filt_en=1, "clip", threshold=0.2, norm=1); figure(7); clf; semilogy(EbNodB, ber1,sprintf('b+-;vanilla OFDM %3.1f;',papr1),'markersize', 10, 'linewidth', 2); hold on; semilogy(EbNodB, ber2,sprintf('r+-;clip 0.8 %3.1f;',papr2),'markersize', 10, 'linewidth', 2); semilogy(EbNodB, ber3,sprintf('g+-;clip 0.6 %3.1f;',papr3),'markersize', 10, 'linewidth', 2); semilogy(EbNodB, ber4,sprintf('c+-;clip 0.4 %3.1f;',papr4),'markersize', 10, 'linewidth', 2); semilogy(EbNodB, ber5,sprintf('bk+-;clip 0.2 %3.1f;',papr5),'markersize', 10, 'linewidth', 2); hold off; axis([min(EbNodB) max(EbNodB) 1E-3 1E-1]); grid; xlabel('Eb/No'); title(sprintf("%s Nc = %d", channel, Nc)) fn = sprintf("papr_exp5_Nc%d_%s_BER_EbNo.png", Nc, channel); print(fn,"-dpng"); end pkg load statistics; more off; test_papr; % single point with lots of plots ----------- %run_sim(8, 1000, EbNo=100, channel='awgn', plot_en=1, filt_en=1); %run_sim(8, 8, EbNo=100, channel='awgn', plot_en=1, filt_en=1, "diversity", threshold=0.8); %run_sim(8, 1000, EbNo=10, channel='multipath', plot_en=1, filt_en=0, "diversity", threshold=5); %curves_experiment2(Nc=16, 'awgn', Nsym=1000); curves_experiment2(Nc=16,'multipath', Nsym=3000, EbNodB=2:2:16); %curves_experiment3() %curves_experiment4() %curves_experiment5(Nc=16) codec2-1.0.1/octave/phase_noise.m000066400000000000000000000040341412132000500165710ustar00rootroot00000000000000% phase_noise.m % David Nov 2019 % Close-in look at phase noise. Feed in a off-air sample file of a % sine wave, extracts the phase noise countour and returns the Doppler % spreading function that can be used to model the channel in % simulations function spread_FsHz = phase_noise(file_name) Fs = 8000; s = load_raw(file_name); % skip past wave header s = [zeros(256,1); s(256:end)]; S = abs(fft(s(1:Fs).*hanning(Fs))); [mx mx_bin] = max(S); ftone = mx_bin-1; figure(1); clf; plot(20*log10(S(1:Fs/2))) title('Input Spectrum'); % downshift to baseband and LPF. We just want the sinusoid with as little % additive AWGN noise as possible sbb = s' .* exp(-j*(1:length(s))*2*pi*ftone/Fs); [b a] = cheby1(4, 1, 20/Fs); sbb_lpf = filter(b,a,sbb); spread_fsHz = sbb_lpf; % estimate and remove fine freq offset, and HF phase noise st = Fs; en = 20*Fs; phase = unwrap(angle(sbb_lpf(st:en))); fine_freq = mean(phase(2:end) - phase(1:end-1)); sbb_lpf_fine = sbb_lpf .* exp(-j*(1:length(sbb_lpf))*fine_freq); phase = unwrap(angle(sbb_lpf_fine(st:en))); printf("length: %3.2fs freq: %5.1f\n", length(s)/Fs, ftone+fine_freq*Fs/(2*pi)); figure(2); clf; plot3((st:en)/Fs, real(sbb_lpf_fine(st:en)),imag(sbb_lpf_fine(st:en))) title('Polar phase trajectory'); figure(3); clf; S2 = fftshift(fft(sbb_lpf_fine(Fs:Fs*11))); [mx mx_bin] = max(abs(S2)); S2dB = 20*log10(abs(S2)); mxdB = 10*ceil(max(S2dB)/10); x = -10:0.1:10; plot(x,S2dB(mx_bin-100:mx_bin+100)); axis([-10 10 mxdB-40 mxdB]) title('Close in Phase Noise Spectrum'); xlabel('Freq (Hz)'); grid; figure(5); clf; t = (st:en)/Fs; plot(t, phase,'b;phase;'); title('Unwrapped Phase'); xlabel('Time (sec)') ylabel('Phase (radians)') figure(6); clf; beta = 0.00001; rate_of_change_Hz = filter(beta, [1 -(1-beta)],phase(2:end) - phase(1:end-1))*Fs/pi; plot(t(2:end), rate_of_change_Hz) title('Rate of change of phase (Hz)'); xlabel('Time (sec)') ylabel('Freq (Hz)') spread_FsHz = sbb_lpf_fine/std(sbb_lpf_fine); end codec2-1.0.1/octave/pitch_test.m000066400000000000000000000010451412132000500164410ustar00rootroot00000000000000% pitch_test.m % David Rowe Sep 2009 % Constructs a sequence to test the pitch estimator function pitch_test(samname) M=320; F=200; fs=fopen(samname,"wb"); f0 = 100; for f=1:200 Wo=2*pi*f0/8000; P=2*pi/Wo; L = floor(pi/Wo); A = 10000/L; phi = zeros(1,L); s = zeros(1,M); for m=1:L s = s + A*cos(m*Wo*(0:(M-1)) + phi(m)); endfor figure(1); clf; plot(s); fwrite(fs,s,"short"); f0 = f0 + 5; if (f0 > 400) f0 = 100; endif endfor fclose(fs); endfunction codec2-1.0.1/octave/pl.m000066400000000000000000000016241412132000500147110ustar00rootroot00000000000000% Copyright David Rowe 2009 % This program is distributed under the terms of the GNU General Public License % Version 2 % % Plots a raw speech sample file, you can optionally specify the start and end % samples and create a large and small PNGs function pl(samname1, start_sam, end_sam, pngname) fs=fopen(samname1,"rb"); s=fread(fs,Inf,"short"); st = 1; en = length(s); if (nargin >= 2) st = start_sam; endif if (nargin >= 3) en = end_sam; endif figure(1); clf; plot(s(st:en)); axis([1 en-st 1.1*min(s) 1.1*max(s)]); if (nargin == 4) % small image __gnuplot_set__ terminal png size 420,300 ss = sprintf("__gnuplot_set__ output \"%s.png\"", pngname); eval(ss) replot; % larger image __gnuplot_set__ terminal png size 800,600 ss = sprintf("__gnuplot_set__ output \"%s_large.png\"", pngname); eval(ss) replot; endif endfunction codec2-1.0.1/octave/pl2.m000066400000000000000000000017111412132000500147700ustar00rootroot00000000000000% Copyright David Rowe 2009 % This program is distributed under the terms of the GNU General Public License % Version 2 function pl2(samname1, samname2, start_sam, end_sam, offset) fs1=fopen(samname1,"rb"); s1=fread(fs1,Inf,"short"); fs2=fopen(samname2,"rb"); s2=fread(fs2,Inf,"short"); st1 = st2 = 1; en1 = en2 = length(s1); if (nargin >= 3) st1 = st2 = start_sam; endif if (nargin >= 4) en1 = en2 = end_sam; endif if (nargin == 5) st2 += offset en2 += offset endif figure(1); clf; subplot(211); l1 = strcat("r;",samname1,";"); plot(s1(st1:en1), l1); grid minor; axis([1 en1-st1 min(s1(st1:en1)) max(s1(st1:en1))]); subplot(212); l2 = strcat("r;",samname2,";"); plot(s2(st2:en2),l2); grid minor; axis([1 en2-st2 min(s1(st2:en2)) max(s1(st2:en2))]); figure(2) plot(s1(st1:en1)-s2(st2:en2)); grid minor; f=fopen("diff.raw","wb"); d = s1(st1:en1)-s2(st2:en2); fwrite(f,d,"short"); endfunction codec2-1.0.1/octave/pl_scatter.m000066400000000000000000000005011412132000500164270ustar00rootroot00000000000000% pl_scatter.m % Render scatter plot from freedv_data_raw_rx --scatter function pl_scatter(filename) s=load(filename); figure(1); clf; for b=1:length(fieldnames(s)) field_name = fieldnames(s){b}; x = s.(field_name); plot(x,'+'); end print("scatter.png", "-dpng"); endfunction codec2-1.0.1/octave/plamp.m000066400000000000000000000061611412132000500154100ustar00rootroot00000000000000% Copyright David Rowe 2009 % This program is distributed under the terms of the GNU General Public License % Version 2 % % Plot ampltiude modelling information from dump files. function plamp(samname, f, samname2) % switch some stuff off to unclutter display plot_sw = 0; sn_name = strcat(samname,"_sn.txt"); Sn = load(sn_name); sw_name = strcat(samname,"_sw.txt"); Sw = load(sw_name); sw__name = strcat(samname,"_sw_.txt"); if (file_in_path(".",sw__name)) Sw_ = load(sw__name); endif ew_name = strcat(samname,"_ew.txt"); if (file_in_path(".",ew_name)) Ew = load(ew_name); endif rk_name = strcat(samname,"_rk.txt"); if (file_in_path(".",rk_name)) Rk = load(rk_name); endif model_name = strcat(samname,"_model.txt"); model = load(model_name); modelq_name = strcat(samname,"_qmodel.txt"); if (file_in_path(".",modelq_name)) modelq = load(modelq_name); endif pw_name = strcat(samname,"_pw.txt"); if (file_in_path(".",pw_name)) Pw = load(pw_name); endif lsp_name = strcat(samname,"_lsp.txt"); if (file_in_path(".",lsp_name)) lsp = load(lsp_name); endif phase_name = strcat(samname,"_phase.txt"); if (file_in_path(".",phase_name)) phase = load(phase_name); endif phase_name_ = strcat(samname,"_phase_.txt"); if (file_in_path(".",phase_name_)) phase_ = load(phase_name_); endif snr_name = strcat(samname,"_snr.txt"); if (file_in_path(".",snr_name)) snr = load(snr_name); endif % optional second file, for exploring post filter if nargin == 3 model2_name = strcat(samname2,"_model.txt"); model2 = load(model2_name); sn2_name = strcat(samname2,"_sn.txt"); Sn2 = load(sn2_name); sw_name2 = strcat(samname2,"_sw.txt"); Sw2 = load(sw_name2); end k = ' '; do figure(1); clf; s = [ Sn(2*f-1,:) Sn(2*f,:) ]; plot(s,'b'); if (file_in_path(".",model2_name)) s2 = [ Sn2(2*f-1,:) Sn2(2*f,:) ]; hold on; plot(s2,'r'); hold off; end axis([1 length(s) -30000 30000]); figure(2); Wo = model(f,1); L = model(f,2); Am = model(f,3:(L+2)); plot((1:L)*Wo*4000/pi, 20*log10(Am),";Am;+-b"); axis([1 4000 -10 80]); hold on; if plot_sw; plot((0:255)*4000/256, Sw(f,:),";Sw;b"); end if (file_in_path(".",model2_name)) Wo2 = model2(f,1); L2 = model2(f,2); Am2 = model2(f,3:(L2+2)); plot((1:L2)*Wo2*4000/pi, 20*log10(Am2),";Am2;+-r" ); if plot_sw; plot((0:255)*4000/256, Sw2(f,:),";Sw2;r"); end endif hold off; grid minor; % interactive menu printf("\rframe: %d menu: n-next b-back p-png s-plot_sw q-quit", f); fflush(stdout); k = kbhit(); if k == 'n'; f = f + 1; endif if k == 'b'; f = f - 1; endif if k == 's' if plot_sw; plot_sw = 0; else; plot_sw = 1; end endif % optional print to PNG if (k == 'p') figure(1); pngname = sprintf("%s_%d_sn.png",samname,f); print(pngname, '-dpng', "-S800,600") figure(2); pngname = sprintf("%s_%d_sw.png",samname,f); print(pngname, '-dpng', "-S800,600") endif until (k == 'q') printf("\n"); endfunction codec2-1.0.1/octave/plinterp.m000066400000000000000000000005421412132000500161310ustar00rootroot00000000000000load ../unittest/tinterp_prev.txt; load ../unittest/tinterp_interp.txt; load ../unittest/tinterp_next.txt; clf; plot(tinterp_prev(:,1), 20.0*log10(tinterp_prev(:,2)),";prev;") hold on; plot(tinterp_interp(:,1), 20.0*log10(tinterp_interp(:,2)),'g+-;interp;') plot(tinterp_next(:,1), 20.0*log10(tinterp_next(:,2)),'ro-;next;') hold off; axis([0 pi 0 80]) codec2-1.0.1/octave/pllpcpf.m000066400000000000000000000064251412132000500157420ustar00rootroot00000000000000% Copyright David Rowe 2012 % This program is distributed under the terms of the GNU General Public License % Version 2 % % Plot amplitude modelling information from dump files to test and develop % LPC post filter. function pllpcpf(samname, f) % switch some stuff off to unclutter display plot_Am = 0; plot_Amq = 0; plot_err = 0; plot_lsp = 0; plot_snr = 0; plot_vsnr = 0; plot_sw = 0; plot_pw = 1; plot_pwb = 1; plot_rw = 1; sn_name = strcat(samname,"_sn.txt"); Sn = load(sn_name); sw_name = strcat(samname,"_sw.txt"); Sw = load(sw_name); sw__name = strcat(samname,"_sw_.txt"); if (file_in_path(".",sw__name)) Sw_ = load(sw__name); endif model_name = strcat(samname,"_model.txt"); model = load(model_name); modelq_name = strcat(samname,"_qmodel.txt"); if (file_in_path(".",modelq_name)) modelq = load(modelq_name); endif % Pw (LPC synth filter spectrum) before post filter pwb_name = strcat(samname,"_pwb.txt"); if (file_in_path(".",pwb_name)) Pwb = load(pwb_name); endif % Rw (Post filter spectrum) rw_name = strcat(samname,"_rw.txt"); if (file_in_path(".",rw_name)) Rw = load(rw_name); endif % Pw (LPC synth filter spectrum) after post filter pw_name = strcat(samname,"_pw.txt"); if (file_in_path(".",pw_name)) Pw = load(pw_name); endif Ew_on = 1; k = ' '; do figure(1); clf; s = [ Sn(2*f-1,:) Sn(2*f,:) ]; size(s); plot(s); axis([1 length(s) -20000 20000]); figure(2); clf; Wo = model(f,1); L = model(f,2); Am = model(f,3:(L+2)); if plot_Am plot((1:L)*Wo*4000/pi, 20*log10(Am),";Am;r"); end axis([1 4000 -10 80]); hold on; if plot_sw plot((0:255)*4000/256, Sw(f,:),";Sw;"); end if (file_in_path(".",modelq_name)) Amq = modelq(f,3:(L+2)); if plot_Amq plot((1:L)*Wo*4000/pi, 20*log10(Amq),";Amq;g" ); end if (file_in_path(".",pwb_name) && plot_pwb) plot((0:255)*4000/256, 10*log10(Pwb(f,:)),";Pwb;r"); endif if (file_in_path(".",rw_name) && plot_rw) plot((0:255)*4000/256, 10*log10(Rw(f,:)),";Rw;b"); endif if (file_in_path(".",pw_name) && plot_pw) plot((0:255)*4000/256, 10*log10(Pw(f,:)),";Pw;g."); endif signal = Am * Am'; noise = (Am-Amq) * (Am-Amq)'; snr1 = 10*log10(signal/noise); Am_err_label = sprintf(";Am error SNR %4.2f dB;m",snr1); if plot_err plot((1:L)*Wo*4000/pi, 20*log10(Amq) - 20*log10(Am), Am_err_label); end endif hold off; % interactive menu printf("\rframe: %d menu: n-next b-back p-png q-quit", f); fflush(stdout); k = kbhit(); if (k == 'n') f = f + 1; endif if (k == 'b') f = f - 1; endif % optional print to PNG if (k == 'p') figure(1); pngname = sprintf("%s_%d_sn.png",samname,f); print(pngname, '-dpng', "-S500,500") pngname = sprintf("%s_%d_sn_large.png",samname,f); print(pngname, '-dpng', "-S800,600") figure(2); pngname = sprintf("%s_%d_sw.png",samname,f); print(pngname, '-dpng', "-S500,500") pngname = sprintf("%s_%d_sw_large.png",samname,f); print(pngname, '-dpng', "-S1200,800") endif until (k == 'q') printf("\n"); endfunction codec2-1.0.1/octave/pllsp.m000066400000000000000000000023471412132000500154330ustar00rootroot00000000000000% Copyright David Rowe 2010 % This program is distributed under the terms of the GNU General Public License % Version 2 % % Plots a bunch of information related to LSP quantisation: % - speech file % - LSPs before and after quantisation % - SNR for each frame % % Note: there is a 160 sample (two frame delay) from the when a sample % enters the input buffer until it is at the centre of the analysis window function pllsp(rawfile, dumpfile_prefix_lpc_only, dumpfile_prefix_lsp, start_f, end_f) fs=fopen(rawfile,"rb"); s=fread(fs,Inf,"short"); lpc_snr_name = strcat(dumpfile_prefix_lpc_only,"_lpc_snr.txt"); lpc10_snr = load(lpc_snr_name); lpc_snr_name = strcat(dumpfile_prefix_lsp,"_lpc_snr.txt"); lsp_snr = load(lpc_snr_name); lsp_name = strcat(dumpfile_prefix_lsp,"_lsp.txt"); lsps = load(lsp_name); [m,n]=size(lsps); lsp = lsps(1:2:m,:); lsp_ = lsps(2:2:m,:); figure(1); clf; subplot(211); sp = s((start_f-2)*80:(end_f-2)*80); plot(sp); subplot(212); plot(lpc10_snr((start_f+1):end_f)-lsp_snr((start_f+1):end_f)); figure(2); plot((4000/pi)*lsp((start_f+1):end_f,:)); hold on; plot((4000/pi)*lsp_((start_f+1):end_f,:),'+-'); hold off; endfunction codec2-1.0.1/octave/pllspdt.m000066400000000000000000000012131412132000500157520ustar00rootroot00000000000000% pllspdt.m % Copyright David Rowe 2010 % This program is distributed under the terms of the GNU General Public License % Version 2 % % Test script to plot differences in LSps between frames function pllspdt(rawfile,dumpfile_prefix_lsp,lspn, start_f, end_f) fs=fopen(rawfile,"rb"); s=fread(fs,Inf,"short"); lsp_name = strcat(dumpfile_prefix_lsp,"_lsp.txt"); lsps = load(lsp_name); [m,n]=size(lsps); lsp = lsps(1:2:m,:); lsp_ = lsps(2:2:m,:); lspdt = lsp(2:m/2,:) - lsp(1:m/2-1,:); figure(1); clf; sp = s((start_f-2)*80:(end_f-2)*80); plot(sp); figure(2); plot((4000/pi)*lspdt((start_f+1):end_f,lspn)); endfunction codec2-1.0.1/octave/plnlp.m000066400000000000000000000054561412132000500154320ustar00rootroot00000000000000% Copyright David Rowe 2009 % This program is distributed under the terms of the GNU General Public License % Version 2 % % Plot NLP states from dump files. function plnlp(samname, f) sn_name = strcat(samname,"_sn.txt"); Sn = load(sn_name); sw_name = strcat(samname,"_sw.txt"); Sw = load(sw_name); fw_name = strcat(samname,"_fw.txt"); if (file_in_path(".",fw_name)) fw = load(fw_name); endif e_name = strcat(samname,"_e.txt"); if (file_in_path(".",e_name)) e = load(e_name); endif p_name = strcat(samname,".p"); if (file_in_path(".",p_name)) p = load(p_name); endif sq_name = strcat(samname,"_sq.txt"); if (file_in_path(".",sq_name)) sq = load(sq_name); endif dec_name = strcat(samname,"_dec.txt"); if (file_in_path(".",dec_name)) dec = load(dec_name); endif do figure(1); clf; s = [ Sn(2*f-1,:) Sn(2*f,:) ]; plot(s, ";Sn;"); grid axis([1 length(s) -20000 20000]); figure(2); plot((0:255)*4000/256, Sw(f,:),";Sw;"); grid axis([1 4000 -10 80]); hold on; f0 = 8000/p(f); Wo = 2*pi/p(f); L = floor(pi/Wo); f0_label = sprintf("b;P=%3.1f F0=%3.0f;",p(f),f0); for m=1:L-1 plot([ m*Wo*4000/pi m*Wo*4000/pi], [10 60], 'b'); endfor plot([ L*Wo*4000/pi L*Wo*4000/pi], [10 60], f0_label); hold off; if (file_in_path(".",fw_name)) figure(3); if (file_in_path(".",e_name)) subplot(211); endif plot((0:255)*800/256, fw(f,:)/max(fw(f,:)), ";Fw;"); axis([1 400 0 1]); if (file_in_path(".",e_name)) subplot(212); e_concat = [ e(2*f-1,:) e(2*f,:) ]; plot(e_concat(1:400)/max(e_concat(1:400)), "+;MBE E(f);"); axis([1 400 0 1]); endif endif if (file_in_path(".",sq_name)) figure(4); sq_concat = [ sq(2*f-1,:) sq(2*f,:) ]; axis plot(sq_concat, ";sq;"); endif if (file_in_path(".",dec_name)) figure(5); plot(dec(f,:), ";dec;"); endif figure(2); % interactive menu printf("\rframe: %d menu: n-next b-back p-png q-quit ", f); fflush(stdout); k = kbhit(); if (k == 'n') f = f + 1; endif if (k == 'b') f = f - 1; endif % optional print to PNG if (k == 'p') pngname = sprintf("%s_%d",samname,f); % small image __gnuplot_set__ terminal png size 420,300 ss = sprintf("__gnuplot_set__ output \"%s.png\"", pngname); eval(ss) replot; % larger image __gnuplot_set__ terminal png size 800,600 ss = sprintf("__gnuplot_set__ output \"%s_large.png\"", pngname); eval(ss) replot; % for some reason I need this to stop large plot getting wiped __gnuplot_set__ output "/dev/null" endif until (k == 'q') printf("\n"); endfunction codec2-1.0.1/octave/plot_fsk_demod_stats.py000066400000000000000000000031001412132000500206700ustar00rootroot00000000000000#!/usr/bin/env python # # Plot fsk_demod statistic outputs. # # Copyright (C) 2018 Mark Jessop # Released under GNU GPL v3 or later # import json import os import sys import time import subprocess import numpy as np import pandas as pd import matplotlib.pyplot as plt _filename = sys.argv[1] if len(sys.argv)>2: _sps = int(sys.argv[2]) _x_label = "Seconds" else: _sps = 1 _x_label = "Sample Number" _ebno = [] _fest1 = [] _fest2 = [] _fest3 = [] _fest4 = [] _ppm = [] _time = [] _f = open(_filename,'r') for _line in _f: if _line[0] != '{': continue try: _data = json.loads(_line) except Exception as e: #print("Line parsing error: %s" % str(e)) continue _ebno.append(_data['EbNodB']) _fest1.append(_data['f1_est']) _fest2.append(_data['f2_est']) if 'f3_est' in _data: _fest3.append(_data['f3_est']) _fest4.append(_data['f4_est']) _ppm.append(_data['ppm']) if _time == []: _time = [0] else: _time.append(_time[-1]+1.0/_sps) _ebno_max = pd.Series(_ebno).rolling(10).max().dropna().tolist() plt.figure() plt.plot(_time[:len(_ebno_max)],_ebno_max) plt.xlabel(_x_label) plt.ylabel("Eb/N0 (dB)") plt.title("Eb/N0") plt.figure() plt.plot(_time,_fest1, label="f1 est") plt.plot(_time,_fest2, label="f2 est") if len(_fest3) > 0: plt.plot(_time,_fest3, label="f3 est") plt.plot(_time,_fest4, label="f4 est") plt.legend() plt.xlabel(_x_label) plt.ylabel("Frequency (Hz)") plt.title("Frequency Estimator Outputs") plt.figure() plt.plot(_time,_ppm) plt.xlabel(_x_label) plt.ylabel("PPM") plt.title("Demod PPM Estimate") plt.show()codec2-1.0.1/octave/plot_specgram.m000066400000000000000000000014771412132000500171430ustar00rootroot00000000000000% plot_specgram.m % David Rowe May 2017 % % As the name suggests..... function S = plot_specgram(x, Fs=8000, fmin, fmax) step = fix(20*Fs/1000); # one spectral slice every 5 ms window = fix(160*Fs/1000); # 40 ms data window fftn = 2^nextpow2(window); # next highest power of 2 [S, f, t] = specgram(x, fftn, Fs, window, window-step); S = abs(S(2:fftn/2,:)); # magnitude in range 0 2 axis([0 max(t) fmin fmax]) end xlabel('Time (s)'); ylabel('Freq (Hz)'); endfunction codec2-1.0.1/octave/plphase.m000066400000000000000000000107321412132000500157320ustar00rootroot00000000000000% Copyright David Rowe 2009 % This program is distributed under the terms of the GNU General Public License % Version 2 % % Plot phase modelling information from dump files. function plphase(samname, f) sn_name = strcat(samname,"_sn.txt"); Sn = load(sn_name); sw_name = strcat(samname,"_sw.txt"); Sw = load(sw_name); model_name = strcat(samname,"_model.txt"); model = load(model_name); sw__name = strcat(samname,"_sw_.txt"); if (file_in_path(".",sw__name)) Sw_ = load(sw__name); endif pw_name = strcat(samname,"_pw.txt"); if (file_in_path(".",pw_name)) Pw = load(pw_name); endif ak_name = strcat(samname,"_ak.txt"); if (file_in_path(".",ak_name)) ak = load(ak_name); endif phase_name = strcat(samname,"_phase.txt"); if (file_in_path(".",phase_name)) phase = load(phase_name); endif phase_name_ = strcat(samname,"_phase_.txt"); if (file_in_path(".",phase_name_)) phase_ = load(phase_name_); endif snr_name = strcat(samname,"_snr.txt"); if (file_in_path(".",snr_name)) snr = load(snr_name); endif sn_name_ = strcat(samname,".raw"); if (file_in_path(".",sn_name_)) fs_ = fopen(sn_name_,"rb"); sn_ = fread(fs_,Inf,"short"); endif k = ' '; do figure(1); clf; s = [ Sn(2*f-1,:) Sn(2*f,:) ]; plot(s); grid; axis([1 length(s) -20000 20000]); if (k == 'p') pngname = sprintf("%s_%d_sn",samname,f); png(pngname); endif figure(2); Wo = model(f,1); L = model(f,2); Am = model(f,3:(L+2)); plot((1:L)*Wo*4000/pi, 20*log10(Am),"r;Am;"); axis([1 4000 -10 80]); hold on; plot((0:255)*4000/256, Sw(f,:),";Sw;"); grid; if (file_in_path(".",sw__name)) plot((0:255)*4000/256, Sw_(f,:),"g;Sw_;"); endif if (file_in_path(".",pw_name)) plot((0:255)*4000/256, 10*log10(Pw(f,:)),";Pw;"); endif if (file_in_path(".",snr_name)) snr_label = sprintf(";phase SNR %4.2f dB;",snr(f)); plot(1,1,snr_label); endif % phase model - determine SNR and error spectrum for phase model 1 if (file_in_path(".",phase_name_)) orig = Am.*exp(j*phase(f,1:L)); synth = Am.*exp(j*phase_(f,1:L)); signal = orig * orig'; noise = (orig-synth) * (orig-synth)'; snr_phase = 10*log10(signal/noise); phase_err_label = sprintf("g;phase_err SNR %4.2f dB;",snr_phase); plot((1:L)*Wo*4000/pi, 20*log10(orig-synth), phase_err_label); endif hold off; if (k == 'p') pngname = sprintf("%s_%d_sw",samname,f); png(pngname); endif if (file_in_path(".",phase_name)) figure(3); plot((1:L)*Wo*4000/pi, phase(f,1:L)*180/pi, "-o;phase;"); axis; if (file_in_path(".", phase_name_)) hold on; plot((1:L)*Wo*4000/pi, phase_(f,1:L)*180/pi, "g;phase after;"); grid hold off; endif if (k == 'p') pngname = sprintf("%s_%d_phase",samname,f); png(pngname); endif endif % synthesised speech if (file_in_path(".",sn_name_)) figure(4); s_ = sn_((f-3)*80+1:(f+1)*80); plot(s_); axis([1 length(s_) -20000 20000]); if (k == 'p') pngname = sprintf("%s_%d_sn_",samname,f) png(pngname); endif endif if (file_in_path(".",ak_name)) figure(5); axis; akw = ak(f,:); weight = 1.0 .^ (0:length(akw)-1); akw = akw .* weight; H = 1./fft(akw,8000); subplot(211); plot(20*log10(abs(H(1:4000))),";LPC mag spec;"); grid; subplot(212); plot(angle(H(1:4000))*180/pi,";LPC phase spec;"); grid; if (k == 'p') % stops multimode errors from gnuplot, I know not why... figure(2); figure(5); pngname = sprintf("%s_%d_lpc",samname,f); png(pngname); endif endif % autocorrelation function to research voicing est %M = length(s); %sw = s .* hanning(M)'; %for k=0:159 % R(k+1) = sw(1:320-k) * sw(1+k:320)'; %endfor %figure(4); %R_label = sprintf(";R(k) %3.2f;",max(R(20:159))/R(1)); %plot(R/R(1),R_label); %grid figure(2); % interactive menu printf("\rframe: %d menu: n-next b-back p-png q-quit ", f); fflush(stdout); k = kbhit(); if (k == 'n') f = f + 1; endif if (k == 'b') f = f - 1; endif % optional print to PNG if (k == 'p') pngname = sprintf("%s_%d",samname,f); png(pngname); endif until (k == 'q') printf("\n"); endfunction codec2-1.0.1/octave/plpitch.m000066400000000000000000000012661412132000500157430ustar00rootroot00000000000000% Copyright David Rowe 2009 % This program is distributed under the terms of the GNU General Public License % Version 2 % % plpitch.m % Plots two pitch tracks on top of each other, used for comparing pitch % estimators function plpitch(pitch1_name, pitch2_name, start_fr, end_fr) pitch1 = load(pitch1_name); pitch2 = load(pitch2_name); st = 1; en = length(pitch1); if (nargin >= 3) st = start_fr; endif if (nargin >= 4) en = end_fr; endif figure(1); clf; l1 = strcat("r;",pitch1_name,";") l1 st en plot(pitch1(st:en), l1); axis([1 en-st 20 160]); l2 = strcat("g;",pitch2_name,";"); hold on; plot(pitch2(st:en),l2); hold off; endfunction codec2-1.0.1/octave/plvoicing.m000066400000000000000000000043021412132000500162640ustar00rootroot00000000000000% Copyright David Rowe 2009 % This program is distributed under the terms of the GNU General Public License % Version 2 % % Plot voicing information from sample and dump files. % % samfilename is the raw source file, e.g. "../raw/hts1a.raw" % samname is the dumpfile prefix, e.g. "../src/hts1a" % % There is a 160 sample (two frame delay) from the when a sample % enters the input buffer until it is at the centre of the analysis window function plvoicing(samfilename, samname, start_f, end_f, pngname) fs=fopen(samfilename,"rb"); s=fread(fs,Inf,"short"); snr_name = strcat(samname,"_snr.txt"); snr = load(snr_name); model_name = strcat(samname,"_model.txt"); model = load(model_name); Wo = model((start_f+1):end_f,1); F0 = Wo*4000/pi; dF0 = F0(1:length(Wo)-1) - F0(2:length(Wo)); % work out LP and HP energy for f=(start_f+1):end_f L = model(f,2); Am = model(f,3:(L+2)); L2 = floor(L/2); elow = Am(1:L2) * Am(1:L2)'; ehigh = Am(L2:L) * Am(L2:L)'; erat(f-(start_f+1)+1) = 10*log10(elow/ehigh); endfor figure(1); clf; sp = s((start_f-2)*80:(end_f-2)*80); plot(sp); hold on; vhigh = snr((start_f+1):end_f) > 7; vlow = snr((start_f+1):end_f) > 4; % test correction based on erat vlowadj = vlow; for f=1:length(erat)-1 if (vlow(f) == 0) if (erat(f) > 10) vlowadj(f) = 1; endif endif if (vlow(f) == 1) if (erat(f) < -10) vlowadj(f) = 0; endif if (abs(dF0(f)) > 15) vlowadj(f) = 0; endif endif endfor x = 1:(end_f-start_f); plot(x*80,snr((start_f+1):end_f)*1000,';SNRdB x 1000;g+'); plot(x*80,-8000 + vhigh*2000,';7dB thresh;g'); plot(x*80,-11000 + vlowadj*2000,';vlow with corr;g'); plot(x*80,erat*1000,';elow/ehigh in dB;r'); plot(x*80,-14000 + vlow*2000,';4dB thresh;r'); hold off; grid if (nargin == 5) print(pngname, "-dpng", "-S500,500") endif figure(2) Wo = model((start_f+1):end_f,1); F0 = Wo*4000/pi; dF0 = F0(1:length(Wo)-1) - F0(2:length(Wo)); %plot(dF0,'+--') %hold on; %plot([ 1 length(dF0) ], [10 10] ,'r') %plot([ 1 length(dF0) ], [-10 -10] ,'r') %axis([1 length(dF0) -50 50]) %hold off; plot(F0,'+--') endfunction codec2-1.0.1/octave/png.m000066400000000000000000000012251412132000500150570ustar00rootroot00000000000000% Copyright David Rowe 2009 % This program is distributed under the terms of the GNU General Public License % Version 2 % % Replot current plot as a png, generates small and large versions function png(pngname) % small image __gnuplot_set__ terminal png size 420,300 ss = sprintf("__gnuplot_set__ output \"%s.png\"", pngname); eval(ss) replot; % larger image __gnuplot_set__ terminal png size 800,600 ss = sprintf("__gnuplot_set__ output \"%s_large.png\"", pngname); eval(ss) replot; % for some reason I need this to stop large plot getting wiped __gnuplot_set__ output "/dev/null" endfunction codec2-1.0.1/octave/power_from_stdio.m000066400000000000000000000012311412132000500176510ustar00rootroot00000000000000% power_from_gr.m % David Rowe June 2018 % % Measure power of signal from stdio, used for SNR tests from analog radios #{ $ rec -t raw -r 8000 -s -2 -c 1 - -q | octave --no-gui -qf power_from_stdio.m #} graphics_toolkit ("gnuplot") Fs = 48000; % sample rate in Hz shorts_per_sample = 1; % real samples [s,c] = fread(stdin, shorts_per_sample*Fs, "short"); while c S = fft(s.*hanning(Fs)); SdB = 20*log10(abs(S)); figure(1); plot(real(s)); axis([0 Fs -3E4 3E4]); figure(2); plot(SdB); axis([0 12000 40 160]); printf("power: %f dB\n", 10*log10(var(s))); %pause(2); [s,c] = fread(stdin, shorts_per_sample*Fs, "short"); endwhile codec2-1.0.1/octave/pulse.m000066400000000000000000000012351412132000500154240ustar00rootroot00000000000000% pulse.m % David Rowe August 2009 % % Experiments with human pulse perception for sinusoidal codecs function pulse(samname) A = 1000; K = 16000; N = 80; frames = K/N; s = zeros(1,K); for f=1:frames % lets try placing np random pulses in every frame P = 20 + (160-20)*rand(1,1); Wo = 2*pi/P; L = floor(pi/Wo); sf = zeros(1,N); for m=1:L/2:L pos = floor(rand(1,1)*N)+1; %pos = 50; for l=m:m+L/2-1 sf = sf + A*cos(l*Wo*((f-1)*N+1:f*N) - pos*l*Wo); endfor endfor s((f-1)*N+1:f*N) = sf; endfor plot(s(1:250)); fs=fopen(samname,"wb"); fwrite(fs,s,"short"); fclose(fs); endfunction codec2-1.0.1/octave/qam16.m000066400000000000000000000015541412132000500152250ustar00rootroot00000000000000% qam16.m % David Rowe May 2020 % % Octave QAM16 functions 1; function symbol = qam16_mod(constellation, four_bits) bits_decimal = sum(four_bits .* [8 4 2 1]); symbol = constellation(bits_decimal+1); endfunction function four_bits = qam16_demod(constellation, symbol, amp_est=1) assert (amp_est != 0); symbol /= amp_est; dist = abs(symbol - constellation(1:16)); [tmp decimal] = min(dist); four_bits = zeros(1,4); for i=1:4 four_bits(1,5-i) = bitand(bitshift(decimal-1,1-i),1); end endfunction function test_qam16_mod_demod(constellation) for decimal=0:15 tx_bits = zeros(1,4); for i=1:4 tx_bits(1,5-i) = bitand(bitshift(decimal-1,1-i),1); end symbol = qam16_mod(constellation, tx_bits); rx_bits = qam16_demod(constellation,symbol); assert(tx_bits == rx_bits); end endfunction codec2-1.0.1/octave/qam16_test.m000066400000000000000000000124771412132000500162720ustar00rootroot00000000000000% qam16_test.m % David Rowe May 2020 % % Octave symbol rate QAM16/LDPC experiments % Libraries we need 1; qam16; ldpc; function test_qam16(fg=2) printf("QAM16 ----------------------------------------\n"); mod_order = 16; bps = log2(mod_order); modulation = 'QAM'; mapping = ""; demod_type = 0; decoder_type = 0; max_iterations = 100; EsNo_dec = 10; qam16_const = [ 1 + j, 1 + j*3, 3 + j, 3 + j*3; 1 - j, 1 - j*3, 3 - j, 3 - j*3; -1 + j, -1 + j*3, -3 + j, -3 + j*3; -1 - j, -1 - j*3, -3 - j, -3 - j*3]; rms = sqrt(qam16_const(:)'*qam16_const(:)/16); qam16_const = qam16_const/rms; constellation_source = 'custom'; test_qam16_mod_demod(qam16_const); load HRA_504_396.txt if strcmp(constellation_source,'cml') code_param = ldpc_init_user(HRA_504_396, modulation, mod_order, mapping); else code_param = ldpc_init_user(HRA_504_396, modulation, mod_order, mapping, reshape(qam16_const,1,16)); end rate = code_param.ldpc_data_bits_per_frame/code_param.ldpc_coded_bits_per_frame; printf("EbNodB Tbits Terrs BER Tcbits Tcerrs Perrs CBER CPER\n"); EbNodBvec = 3:10; Ntrials = 1000; for i=1:length(EbNodBvec) EbNodB = EbNodBvec(i); EsNodB = EbNodB + 10*log10(rate) + 10*log10(bps); EsNodBvec(i) = EsNodB; EsNo = 10^(EsNodB/10); variance = 1/EsNo; Terrs = Tbits = 0; Tcerrs = 0; Tcbits = 0; Perrs = 0; rx_symbols_log = []; for nn = 1:Ntrials tx_bits = round(rand(1, code_param.ldpc_data_bits_per_frame)); [tx_codeword, tx_symbols] = ldpc_enc(tx_bits, code_param); noise = sqrt(variance*0.5)*(randn(1,length(tx_symbols)) + j*randn(1,length(tx_symbols))); rx_symbols = tx_symbols + noise; rx_symbols_log = [rx_symbols_log rx_symbols]; % uncoded decode/demod and count errors rx_codeword = zeros(1,code_param.ldpc_coded_bits_per_frame); for s=1:length(rx_symbols) rx_codeword((s-1)*bps+1:s*bps) = qam16_demod(qam16_const,rx_symbols(s)); end Nerr = sum(xor(tx_codeword,rx_codeword)); Terrs += Nerr; Tbits += code_param.ldpc_coded_bits_per_frame; % LDPC demod/decode and count errors dec_rx_codeword = ldpc_dec(code_param, max_iterations, demod_type, decoder_type, rx_symbols, EsNo_dec, ones(1,length(rx_symbols))); errors_positions = xor(tx_bits, dec_rx_codeword(1:code_param.ldpc_data_bits_per_frame)); Ncerr = sum(errors_positions); Tcbits += code_param.ldpc_data_bits_per_frame; Tcerrs += Ncerr; if Ncerr Perrs++; end end figure(fg); clf; plot(rx_symbols_log,"."); axis([-1.5 1.5 -1.5 1.5]); drawnow; printf("%5.1f %6d %6d %5.2f %6d %6d %6d %5.2f %5.2f\n", EbNodB, Tbits, Terrs, Terrs/Tbits, Tcbits, Tcerrs, Perrs, Tcerrs/Tcbits, Perrs/Ntrials); ber(i) = Terrs/Tbits; cber(i) = Tcerrs/Tcbits; cper(i) = Perrs/Ntrials; end print("qam64_scatter.png","-dpng"); figure(fg+1); clf; title('QAM16 Uncoded'); uncoded_EbNodBvec = EbNodBvec + 10*log10(rate); ber_theory = ber_qam(uncoded_EbNodBvec); semilogy(uncoded_EbNodBvec,ber_theory,'b+-;uncoded QAM16 BER theory;','markersize', 10, 'linewidth', 2); hold on; semilogy(uncoded_EbNodBvec,ber+1E-10,'g+-;uncoded QAM16 BER;','markersize', 10, 'linewidth', 2); hold on; grid; axis([min(uncoded_EbNodBvec) max(uncoded_EbNodBvec) 1E-5 1]); xlabel('Uncoded Eb/No (dB)'); print("qam16_uncoded_ber.png","-dpng"); figure(fg+2); clf; title('QAM16 with LDPC (504,396)'); semilogy(EbNodBvec,cber+1E-10,'b+-;QAM16 coded BER;','markersize', 10, 'linewidth', 2); hold on; semilogy(EbNodBvec,cper+1E-10,'g+-;QAM16 coded PER;','markersize', 10, 'linewidth', 2); hold off; grid; axis([min(EbNodBvec) max(EbNodBvec) 1E-5 1]); xlabel('Eb/No (dB)'); figure(fg+3); clf; title('QAM16 with LDPC (504,396)'); semilogy(EsNodBvec,cber+1E-10,'b+-;QAM16 coded BER;','markersize', 10, 'linewidth', 2); hold on; semilogy(EsNodBvec,cper+1E-10,'g+-;QAM16 coded PER;','markersize', 10, 'linewidth', 2); hold off; grid; axis([min(EsNodBvec) max(EsNodBvec) 1E-5 1]); xlabel('Es/No (dB)'); print("qam16_504_396.png","-dpng"); endfunction % Thanks Bill VK5DSP, for the QAM BER functions function p = ber_qam(ebn0) % Calculate the bit error rate (BER) for square 16QAM in AWGN % given the Eb/N0 in dB, ebn0 can be a scalar or vector % (assuming coherent detection, uncoded) % [section 5.3 Webb and Hanzo text] e = 4*10.^(ebn0/10); % Es/N0 vector in linear b2 = qfn(sqrt(e/5)); b1 = (qfn(sqrt(e/5)) + qfn(3*sqrt(e/5)))/2; p = (b1+b2)/2; endfunction function tail=qfn(a) % Usage: tail=qfn(a) % where: tail=area under the tail of the normal dist. from a to inf. % for zero mean, unit variance distribution % % If no argument is given, plot Q(x) for x = 0 to 5 % use erfc instead of 1-erf to avoid truncation errors! April 2010 fact = 1 / sqrt(2); if exist('a') % tail = 0.5 * ( 1 - erf(a * fact)); tail = 0.5 * erfc(a * fact); else x=(0: 0.1: 6); semilogy(x, 0.5*( erfc(x * fact))); title('Q function plot'); xlabel('x'); ylabel('Q(x)'); end endfunction % -------------------------------------------------------------------------------- % START SIMULATIONS % -------------------------------------------------------------------------------- more off; format; % Start CML library (see CML set up instructions in ldpc.m) init_cml('~/cml/'); test_qam16(1) codec2-1.0.1/octave/qpsk.m000066400000000000000000000067561412132000500152670ustar00rootroot00000000000000% qpsk.m % % David Rowe Sep 2015 % % Octave functions to implement a QPSK modem 1; % Gray coded QPSK modulation function function symbol = qpsk_mod(two_bits) two_bits_decimal = sum(two_bits .* [2 1]); switch(two_bits_decimal) case (0) symbol = 1; case (1) symbol = j; case (2) symbol = -j; case (3) symbol = -1; endswitch endfunction % Gray coded QPSK demodulation function function two_bits = qpsk_demod(symbol) bit0 = real(symbol*exp(j*pi/4)) < 0; bit1 = imag(symbol*exp(j*pi/4)) < 0; two_bits = [bit1 bit0]; endfunction % Inserts pilot symbols a frame of symbols. The pilot symbols are % spread evenly throughout the input frame. function frameout = insert_pilots(framein, pilots, Npilotstep) lpilots = length(pilots); lframein = length(framein); frameout = zeros(1, lframein + lpilots); pin = 1; pout = 1; ppilots = 1; while (lpilots) %printf("pin %d pout %d ppilots %d lpilots %d\n", pin, pout, ppilots, lpilots); frameout(pout:pout+Npilotstep-1) = framein(pin:pin+Npilotstep-1); pin += Npilotstep; pout += Npilotstep; frameout(pout:pout) = pilots(ppilots); ppilots++; pout++; lpilots--; end endfunction % Removes the pilots symbols from a frame of symbols. function frameout = remove_pilots(framein, pilots, Npilotstep) frameout = []; lpilots = length(pilots); pin = 1; pout = 1; while (lpilots) %printf("pin %d pout %d lpilots %d ", pin, pout, lpilots); %printf("pin+spacing-1 %d lvd %d lframein: %d\n", pin+spacing-1, lvd, length(framein)); frameout(pout:pout+Npilotstep-1) = framein(pin:pin+Npilotstep-1); pin += Npilotstep+1; pout += Npilotstep; lpilots--; end endfunction % Estimate and correct phase offset using a window of Np pilots around % current symbol function symbpilot_rx = correct_phase_offset(aqpsk, symbpilot_rx) rx_pilot_buf = aqpsk.rx_pilot_buf; Npilotstep = aqpsk.Npilotstep; Nsymb = aqpsk.Nsymb; for ns=1:Npilotstep+1:Nsymb % update buffer of recent pilots, note we need past ones rx_pilot_buf(1) = rx_pilot_buf(2); next_pilot_index = ceil(ns/(Npilotstep+1))*(Npilotstep+1); rx_pilot_buf(2) = symbpilot_rx(next_pilot_index); % average pilot symbols to get estimate of phase phase_est = angle(sum(rx_pilot_buf)); %printf("next_pilot_index: %d phase_est: %f\n", next_pilot_index, phase_est); % now correct the phase of each symbol for s=ns:ns+Npilotstep symbpilot_rx(s) *= exp(-j*phase_est); end end aqpsk.rx_pilot_buf = rx_pilot_buf; endfunction % builds up a sparse QPSK modulated version version of the UW for use % in UW sync at the rx function mod_uw = build_mod_uw(uw, spacing) luw = length(uw); mod_uw = []; pout = 1; puw = 1; while (luw) %printf("pin %d pout %d puw %d luw %d\n", pin, pout, puw, luw); pout += spacing/2; mod_uw(pout) = qpsk_mod(uw(puw:puw+1)); puw += 2; pout += 1; luw -= 2; end endfunction % Uses the UW to determine when we have a full codeword ready for decoding function [found_uw corr] = look_for_uw(mem_rx_symbols, mod_uw) sparse_mem_rx_symbols = mem_rx_symbols(find(mod_uw)); % correlate with ref UW num = (mem_rx_symbols * mod_uw') .^ 2; den = (sparse_mem_rx_symbols * sparse_mem_rx_symbols') * (mod_uw * mod_uw'); corr = abs(num/(den+1E-6)); found_uw = corr > 0.8; endfunction codec2-1.0.1/octave/rf_bpf.m000066400000000000000000000020011412132000500155220ustar00rootroot00000000000000% rtlsdr_bpf.m % % David Rowe 24 August 2018 % % Calculate component values for cascaded HP-LP 2-8 MHz Chebychev filter % % From "RF Circuit Design", Chris Bowick, Ch 3 1; function C = find_C(Cn, fc, R) C = Cn/(2*pi*fc*R); endfunction function L = find_L(Ln, fc, R) L = R*Ln/(2*pi*fc); endfunction % 3rd order HP filter, 1dB ripple Cheby, 3MHz cut off, >20dB down at % 1MHz to nail stong AM broadcast signals, Table 3-7A. Use a Rs=50, % Rl=50, so Rs/Rl = 1. Note we assume a or phantom load in between % cascaded HP-LP sections of 50 ohms. L1 = find_L(1/2.216, 3E6, 50); C1 = find_C(1/1.088, 3E6, 50); L2 = find_L(1/2.216, 3E6, 50); printf("L1: %f uH C1: %f pF L2: %f uH\n", L1*1E6, C1*1E12, L2*1E6); % 3rd order LPF, 8MHz cut off so >30dB down at 21MHz, which aliases back to 7MHz % with Fs=28MHz on RTLSDR (14 MHz Nyquist freq). Rs=50, Rl=50, Rs/Rl = 1 C2 = find_C(2.216, 9E6, 50); L3 = find_L(1.088, 9E6, 50); C3 = find_C(2.216, 9E6, 50); printf("C2: %f pF L3: %f uH C3: %f pF\n", C2*1E12, L3*1E6, C3*1E12); codec2-1.0.1/octave/rf_design.m000066400000000000000000000032241412132000500162340ustar00rootroot00000000000000% rfdesign.m % % David Rowe Nov 2015 % % Helper functions for RF Design 1; % convert a parallel R/X to a series R/X function Zs = zp_to_zs(Zp) Xp = j*imag(Zp); Rp = real(Zp); Zs = Xp*Rp/(Xp+Rp); endfunction % convert a series R/X to a parallel R/X function Zp = zs_to_zp(Zs) Xs = imag(Zs); Rs = real(Zs); Q = Xs/Rs; Rp = (Q*Q+1)*Rs; Xp = Rp/Q; Zp = Rp + j*Xp; endfunction % Design a Z match network with a parallel and series reactance % to match between a low and high resistance. Note Xp and Xs % must be implemented as opposite sign, ie one a inductor, one % a capacitor (your choice). % % /--Xs--+---\ % | | | % Rlow Xp Rhigh % | | | % \------+---/ % function [Xs Xp] = z_match(Rlow, Rhigh) assert(Rlow < Rhigh, "Rlow must be < Rhigh"); Q = sqrt(Rhigh/Rlow -1); Xs = Q*Rlow; Xp = Rhigh/Q; endfunction % Design an air core inductor, Example 1-5 "RF Circuit Design" function Nturns = design_inductor(L_uH, diameter_mm) Nturns = sqrt(29*L_uH/(0.394*(diameter_mm*0.1/2))); endfunction % Work out series resistance Rl of series resonant inductor. Connect % tracking generator to spec-an input, the series LC to ground. V is % the ref TG level (e.g. with perfect 50 ohm term) in volts, Vmin is the % minumum at series res freq. % % /-50-+---+ % | | | % TG C 50 spec-an % | | | % | L | % | | | % | Rl | % | | | % \----+---/ function Rl = find_rl(V,Vmin) % at series resonance effect of C and L goes away and we are left with % parallel combination of Ls and spec-an 50 ohm input impedance Rp = Vmin*50/(2*V*(1-Vmin/(2*V))); Rl = 1/(1/Rp - 1/50) endfunction codec2-1.0.1/octave/rf_vhf_amp.m000066400000000000000000000153001412132000500164010ustar00rootroot00000000000000% s_param_rf.m % % David Rowe Nov 2015 % % Working for small signal VHF amplifier design using % S-param techniques from "RF Circuit Design" by Chris Bowick rfdesign; % library of helped functions more off; Ic = 0.014; % BRF92 VCE=5V Ic=5mA 100MHz if Ic == 0.005 S11 = 0.727*exp(j*(-43)*pi/180); S12 = 0.028*exp(j*(69.6)*pi/180); S21 = 12.49*exp(j*(147)*pi/180); S22 = 0.891*exp(j*(-16)*pi/180); end % BRF92 VCE=10V Ic=14mA 100MHz if Ic == 0.02 S11 = 0.548*exp(j*(-56.8)*pi/180); S12 = 0.020*exp(j*(67.8)*pi/180); S21 = 20.43*exp(j*(133.7)*pi/180); S22 = 0.796*exp(j*(-18.5)*pi/180); end % Stability Ds = S11*S22-S12*S21; Knum = 1 + abs(Ds)^2 - abs(S11)^2 - abs(S22)^2; Kden = 2*abs(S21)*abs(S12); K = Knum/Kden % If > 1 unconditionally stable % If < 1 panic figure(1); clf scCreate; if K < 1 C1 = S11 - Ds*conj(S22); C2 = S22 - Ds*conj(S11); rs1 = conj(C1)/(abs(S11)^2-abs(Ds)^2); % centre of input stability circle ps1 = abs(S12*S21/(abs(S11)^2-abs(Ds)^2)); % radius of input stability circle rs2 = conj(C2)/(abs(S22)^2-abs(Ds)^2); % centre of input stability circle ps2 = abs(S12*S21/(abs(S22)^2-abs(Ds)^2)); % radius of input stability circle s(1,1)=S11; s(1,2)=S12; s(2,1)=S21; s(2,2)=S22; plotStabilityCircles(s) end % Gain circle D2 = abs(S22)^2-abs(Ds)^2; C2 = S22 - Ds*conj(S11); GdB = 20; Glin = 10^(GdB/10); % lets shoot for 20dB gain G = Glin/(abs(S21)^2); r0 = G*conj(C2)/(1+D2*G); % centre of gain circle p0 = sqrt(1 - 2*K*abs(S12*S21)*G + (abs(S12*S21)^2)*(G^2))/(1+D2*G); % radius of gain circle scAddCircle(abs(r0),angle(r0)*180/pi,p0,'g') printf("Green is the %3.1f dB constant gain circle for gammaL\n",GdB); % Note different design procedures for different operating points if Ic == 0.005 % Choose a gammaL on the gain circle gammaL = 0.8 - 0.4*j; % Caclulate gammaS and make sure it's stable by visual inspection % compared to stability circle. gammaS = conj(S11 + ((S12*S21*gammaL)/(1 - (gammaL*S22)))); end if Ic == 0.014 % lets set zo (normalised Zo) based on Pout and get gammaL from that Pout = 0.01; Irms = 0.002; Zo = Pout/(Irms*Irms); zo = Zo/50; [magL,angleL] = ztog(zo); gammaL = magL*exp(j*angleL*pi/180); % calculate gammaS gammaS = conj(S11 + ((S12*S21*gammaL)/(1 - (gammaL*S22)))); end [zo Zo] = gtoz(abs(gammaL), angle(gammaL)*180/pi,50); [zi Zi] = gtoz(abs(gammaS), angle(gammaS)*180/pi,50); scAddPoint(zi); scAddPoint(zo); % Transducer gain Gt_num = (abs(S21)^2)*(1-abs(gammaS)^2)*(1-abs(gammaL)^2); Gt_den = abs((1-S11*gammaS)*(1-S22*gammaL) - S12*S21*gammaL*gammaS)^2; Gt = Gt_num/Gt_den; if Ic == 0.005 % Lets design the z match for the input ------------------------------ % put input impedance in parallel form Zip = zs_to_zp(Zi); % first match real part of impedance Rs = 50; Rl = real(Zip); [Xs Xp] = z_match(Rs,Rl); % Modify Xp so transistor input sees conjugate match to Zi % Lets make Xp a capacitor, so negative sign Xp_match = -Xp - imag(Zip); % Now convert to real component values w = 2*pi*150E6; Ls = Xs/w; diameter_mm = 6.25; Ls_turns = design_inductor(Ls*1E6, diameter_mm); Cp = 1/(w*(-Xp_match)); printf("Transducer gain: %3.1f dB\n", 10*log10(Gt)); printf("Input: Zi = %3.1f + %3.1fj ohms\n", real(Zi), imag(Zi)); printf(" In parallel form Rp = %3.1f Xp = %3.1fj ohms\n", real(Zip), imag(Zip)); printf(" So for a conjugate match transistor input wants to see:\n Rp = %3.1f Xp = %3.1fj ohms\n", real(Zip), -imag(Zip)); printf(" Rs = %3.1f to Rl = %3.1f ohm matching network Xs = %3.1fj Xp = %3.1fj\n", Rs, Rl, Xs, Xp); printf(" with conj match to Zi Xs = %3.1fj Xp = %3.1fj\n", Xs, Xp_match); printf(" matching components Ls = %5.3f uH Cp = %4.1f pF\n", Ls*1E6, Cp*1E12); printf(" Ls can be made from %3.1f turns on a %4.2f mm diameter air core\n", Ls_turns, diameter_mm); % Now Z match for output ------------------------------------- Lo = -imag(Zo)/w; Lo_turns = design_inductor(Lo*1E6, diameter_mm); printf("Output: Zo = %3.1f + %3.1fj ohms\n", real(Zo), imag(Zo)); printf(" So for a conjugate match transistor output wants to see:\n Rl = %3.1f Xl = %3.1fj ohms\n", real(Zo), -imag(Zo)); printf(" Which is a series inductor Lo = %5.3f uH\n", Lo*1E6); printf(" Lo can be made from %3.1f turns on a %4.2f mm diameter air core\n", Lo_turns, diameter_mm); end if Ic == 0.014 printf("Transducer gain: %3.1f dB\n", 10*log10(Gt)); % Lets design the z match for the input ------------------------------ % put input impedance in parallel form Zip = zs_to_zp(Zi); % first match real part of impedance Rs = 50; Rl = real(Zip); [Xs Xp] = z_match(Rl,Rs); % Lets make Xs a capacitir to block DC, so Xp is an inductor. % Modify Xs so transistor input sees conjugate match to Zi. Xs is a % capacitor, so reactance is negative Xs_match = -Xs - imag(Zip); % Now convert to real component values w = 2*pi*150E6; diameter_mm = 6.25; Li = Xp/w; Li_turns = design_inductor(Li*1E6, diameter_mm); Ci = 1/(w*(-Xs_match)); printf("Input: Zi = %3.1f + %3.1fj ohms\n", real(Zi), imag(Zi)); printf(" In parallel form Rp = %3.1f Xp = %3.1fj ohms\n", real(Zip), imag(Zip)); printf(" So for a conjugate match transistor input wants to see:\n Rp = %3.1f Xp = %3.1fj ohms\n", real(Zip), -imag(Zip)); printf(" Rs = %3.1f to Rl = %3.1f ohm matching network Xs = %3.1fj Xp = %3.1fj\n", Rs, Rl, Xs, Xp); printf(" with Xs a capacitor, and Xp and inductor Xs = %3.1fj Xp = %3.1fj\n", -Xs, Xp); printf(" With a conj match to Zi Xs = %3.1fj Xp = %3.1fj\n", Xs_match, Xp); printf(" matching components Li = %5.3f uH Ci = %4.1f pF\n", Li*1E6, Ci*1E12); printf(" Li can be made from %3.1f turns on a %4.2f mm diameter air core\n", Li_turns, diameter_mm); % Design output Z match ---------------------------------------------- Rs = real(Zo); Rl = 50; [Xs Xp] = z_match(Rl,Rs); % Lets make XP an inductor so it can double as a RF choke, and Xp as % a capacitor will give us a convenient DC block w = 2*pi*150E6; diameter_mm = 6.25; Lo = Xp/w; Lo_turns = design_inductor(Lo*1E6, diameter_mm); Co = 1/(w*Xs); printf("Output: Zo = %3.1f + %3.1fj ohms\n", real(Zo), imag(Zo)); printf(" matching network Xp = %3.1f X = %3.1f ohms\n", Xp, Xs); printf(" which is parallel Lo = %5.3f uH and series Co = %4.1f pF\n", Lo*1E6, Co*1E12); printf(" Lo can be made from %3.1f turns on a %4.2f mm diameter air core\n", Lo_turns, diameter_mm); end codec2-1.0.1/octave/rf_vhf_pa.m000066400000000000000000000047241412132000500162340ustar00rootroot00000000000000% vhf_pa.m % % David Rowe Dec 2015 % % Working for 0.5W VHF PA rfdesign; % BFQ19 Vce=5V Ic=50mA. These are small signal S-params, % which (according to "RF Cicruit Design") are not valid. % However I need to start somewhere. S11 = 0.324*exp(j*(-158.1)*pi/180); S12 = 0.031*exp(j*(75.9)*pi/180); S21 = 19.693*exp(j*(102.7)*pi/180); S22 = 0.274*exp(j*(-74.6)*pi/180); % Lets check stability Ds = S11*S22-S12*S21; Knum = 1 + abs(Ds)^2 - abs(S11)^2 - abs(S22)^2; Kden = 2*abs(S21)*abs(S12); K = Knum/Kden figure(1); clf scCreate; if K < 1 C1 = S11 - Ds*conj(S22); C2 = S22 - Ds*conj(S11); rs1 = conj(C1)/(abs(S11)^2-abs(Ds)^2); % centre of input stability circle ps1 = abs(S12*S21/(abs(S11)^2-abs(Ds)^2)); % radius of input stability circle rs2 = conj(C2)/(abs(S22)^2-abs(Ds)^2); % centre of input stability circle ps2 = abs(S12*S21/(abs(S22)^2-abs(Ds)^2)); % radius of input stability circle s(1,1)=S11; s(1,2)=S12; s(2,1)=S21; s(2,2)=S22; plotStabilityCircles(s) end % determine collector load Rl for our desired power output if 0 P = 0.5; Vcc = 5; w = 2*pi*150E6; Rl = Vcc*Vcc/(2*P); end Rl = 10; % choose gammaL based on Rl zo = Rl/50; [magL,angleL] = ztog(zo); gammaL = magL*exp(j*angleL*pi/180); % calculate gammaS and Zi and plot gammaS = conj(S11 + ((S12*S21*gammaL)/(1 - (gammaL*S22)))); [zi Zi] = gtoz(abs(gammaS), angle(gammaS)*180/pi,50); scAddPoint(zi); scAddPoint(zo); % design Pi network for matching Rl to Ro, where Ro > Rl % % /---+-Xs1-Xs2-+---\ % | | | | % Rl Xp1 Xp2 Ro % | | | | % \---+---------+---/ % % highest impedance used to define Q of pi network and determine R, % the "virtual" impedance at the centre of the network, whuch is smaller % than Rl and Ro Ro = 50; Q = 3; R = Ro/(Q*Q+1); Xp2 = Ro/Q; Xs2 = Q*R; Q1 = sqrt(Rl/R - 1); Xp1 = Rl/Q1; Xs1 = Q1*R; Cp1 = 1/(w*Xp1); Cp2 = 1/(w*Xp2); Ls = (Xs1+Xs2)/w; printf("Output Matching:\n"); printf(" Rl = %3.1f Ro = %3.1f\n", Rl, Ro); printf(" Q = %3.1f virtual R = %3.1f\n", Q, R); printf(" Xp1 = %3.1f Xs1 = %3.1f Xs2 = %3.1f Xp2 = %3.1f\n", Xp1, Xs1, Xs2, Xp2); printf(" Cp1 = %3.1f pF Ls = %3.1f nH Cp2 = %3.1f pF\n", Cp1*1E12, Ls*1E9, Cp2*1E12); % design input matching network between 50 ohms source and 10 ohms at base Rb = 10; Rs = 50; [Xs Xp] = z_match(Rb, Rs); Lp = Xp/w; Cs = 1/(w*Xs); printf("Input Matching:\n"); printf(" Xs = %3.1f Xp = %3.1f\n", Xs, Xp); printf(" Lp = %3.1f nH Cs = %3.1f pF\n", Lp*1E9, Cs*1E12); codec2-1.0.1/octave/sample_clock_offset.m000066400000000000000000000007201412132000500202740ustar00rootroot00000000000000% sample_clock_offset.m % % David Rowe June 2017 % % To simulate a sample clock offset we resample by a small amount % using linear interpolation function rx = sample_clock_offset(tx, sample_clock_offset_ppm) tin=1; tout=1; rx = zeros(1,length(tx)); while tin < length(tx) t1 = floor(tin); t2 = ceil(tin); f = tin - t1; rx(tout) = (1-f)*tx(t1) + f*tx(t2); tout += 1; tin += 1+sample_clock_offset_ppm/1E6; end end codec2-1.0.1/octave/save_array_c_header.m000066400000000000000000000006301412132000500202400ustar00rootroot00000000000000% save_array_c_header.m % % David Rowe Sep 2015 function save_array_c_header(array, array_name, filename) f=fopen(filename,"wt"); fprintf(f,"/* Generated by save_array_c_header.m Octave function */\n\n"); fprintf(f,"const int %s[]={\n", array_name); for m=1:length(array)-1 fprintf(f," % .16f,\n",array(m)); endfor fprintf(f," % .16f\n};\n",array(length(array))); fclose(f); endfunction codec2-1.0.1/octave/save_comp.m000066400000000000000000000003451412132000500162510ustar00rootroot00000000000000% save_comp.m % David Rowe Aug 2020 function save_comp(fn, iq) l = length(iq); s = zeros(1,2*l); s(1:2:2*l) = real(iq); s(2:2:2*l) = imag(iq); fs=fopen(fn,"wb"); s = fwrite(fs,s,"float32"); fclose(fs); endfunction codec2-1.0.1/octave/save_f32.m000066400000000000000000000003711412132000500157040ustar00rootroot00000000000000% save_f32.m % David Rowe Sep 2021 % % save a matrix to .f32 binary files in row-major order function save_f32(fn, m) f=fopen(fn,"wb"); [r c] = size(m); mlinear = reshape(m', 1, r*c); fwrite(f, mlinear, 'float32'); fclose(f); endfunction codec2-1.0.1/octave/save_hackrf.m000066400000000000000000000003461412132000500165520ustar00rootroot00000000000000% save_hackrf.m % % David Rowe Aug 2020 function save_hackrf(fn,iq) l = length(iq); s = zeros(1,2*l); s(1:2:2*l) = real(iq); s(2:2:2*l) = imag(iq); fs = fopen(fn,"wb"); fwrite(fs,s,"schar"); fclose(fs); endfunction codec2-1.0.1/octave/save_raw.m000066400000000000000000000001731412132000500161030ustar00rootroot00000000000000% save_raw.m % David Rowe 9 Feb 2015 function s = save_raw(fn,s) fs=fopen(fn,"wb"); fwrite(fs,s,"short"); endfunction codec2-1.0.1/octave/spec.m000066400000000000000000000050701412132000500152270ustar00rootroot00000000000000% spec.m % Jean Marc Valin % % Spectrogram function for Octave % % Copyright (c) John-Marc Valin 2012 % % Redistribution and use in source and binary forms, with or without % modification, are permitted provided that the following conditions % are met: % % - Redistributions of source code must retain the above copyright % notice, this list of conditions and the following disclaimer. % % - Redistributions in binary form must reproduce the above copyright % notice, this list of conditions and the following disclaimer in the % documentation and/or other materials provided with the distribution. % % - Neither the name of Jean Marc Valin nor the names of its % contributors may be used to endorse or promote products derived from % this software without specific prior written permission. % % 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 FOUNDATION OR % CONTRIBUTORS 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. function X = spec(x, Fs, framesize, start, stop) gr=[zeros(1024,1),[0:1023]'/1023,.68*[0:1023]'/1023]; %gr=[.4*[0:1023]'/1023,[0:1023]'/1023,.68*[0:1023]'/1023]; %t=[0:1023]'/1023; %t=(1+.25*t-cos(pi*t))/2.25; %gr = [zeros(1024,1),t,.68*t]; %colormap(gr); if nargin < 2 || isempty(Fs) Fs = 44100; end if nargin < 3 || isempty(framesize) framesize = 2048; endif offset = framesize/8; X = 20*log10(abs(specgram(x, framesize, 48000, blackmanharris(framesize)', framesize-offset))); XM=max(max(X)); X = max(XM-30,X); %size(X) F = -[framesize/2-1:-1:0]/framesize*Fs; %F = [0:127]/128*24000; T=[1:size(X,2)]/Fs*offset; %imagesc(X(end:-1:1,:)); if nargin < 4 || isempty(start) istart=1; else istart = round(start*Fs/offset); end if nargin < 5 || isempty(stop) istop = size(X,2); else istop = round(stop*Fs/offset); endif istart = max(1,istart); istop = min(istop, size(X,2)); imagesc(T(1+istart:istop), F, X(end:-1:1,1+istart:istop)); X = X(:,1+istart:istop); codec2-1.0.1/octave/tcohpsk.m000066400000000000000000000576561412132000500157710ustar00rootroot00000000000000% tcohpsk.m % David Rowe Oct 2014 % % Octave coherent PSK modem script that hs two modes: % % i) tests the C port of the coherent PSK modem. This script loads % the output of unittest/tcohpsk.c and compares it to the output of % the reference versions of the same modem written in Octave. % % (ii) Runs the Octave version of the cohpsk modem to tune and develop % it, including extensive channel simulations such as AWGN noise, % fading/HF, frequency offset, frequency drift, and tx/rx sample % rate differences. % TODO: % % [X] Test % [X] AWGN channel % [X] freq offset % [X] fading channel % [X] freq drift % [X] timing drift % [X] tune perf/impl loss to get closer to ideal % [X] linear interp of phase for better fading perf % [X] freq offset/drift feedback loop % [X] PAPR measurement and reduction % [X] false sync % [X] doesn't sync up on noise (used EsNo = -12) % [X] similar but invalid signal like huge f off % [X] ability to "unsync" when signal dissapears % [ ] some calibrated tests against FreeDV 1600 % + compare sound quality at various Es/Nos % [ ] sync % + set some req & implement % [ ] way to handle eom w/o nasties % + like mute ouput when signal has gone or v low snr % + instantaneous snr % [X] ssb tx filter with 3dB passband ripple % + diverisity helped for AWGN BER 0.024 down to 0.016 % + Only a small change in fading perf with filter on/off % + however other filters may have other effects, should test this, % e.g. scatter plots, some sort of BER metric? % [X] EsNo estimation % [ ] filter reqd with compression? % + make sure not too much noise passed into noise floor % [X] different diversity combination % + taking largest symbol didn't help % [X] histogram of bit errors % + lot of data % + ssb filter % + compression % + make sure it's flat with many errors pkg load signal; more off; global passes = 0; global fails = 0; cohpsk_dev; fdmdv_common; autotest; rand('state',1); randn('state',1); % select which test ---------------------------------------------------------- test = 'compare to c'; %test = 'awgn'; %test = 'fading'; % some parameters that can be over ridden, e.g. to disable parts of modem initial_sync = 0; % setting this to 1 put us straight into sync w/o freq offset est ftrack_en = 1; % set to 1 to enable freq tracking ssb_tx_filt = 0; % set to 1 to to simulate SSB tx filter with passband ripple Fs = 7500; % predefined tests .... if strcmp(test, 'compare to c') frames = 30; foff = 58.7; dfoff = -0.5/Fs; EsNodB = 8; fading_en = 0; hf_delay_ms = 2; compare_with_c = 1; sample_rate_ppm = -1500; ssb_tx_filt = 0; end % should be BER around 0.015 to 0.02 if strcmp(test, 'awgn') frames = 100; foff = 58.7; dfoff = -0.5/Fs; EsNodB = 8; fading_en = 0; hf_delay_ms = 2; compare_with_c = 0; sample_rate_ppm = 0; end % Similar to AWGN - should be BER around 0.015 to 0.02 if strcmp(test, 'fading'); frames = 100; foff = -25; dfoff = 0.5/Fs; EsNodB = 12; fading_en = 1; hf_delay_ms = 2; compare_with_c = 0; sample_rate_ppm = 0; end EsNo = 10^(EsNodB/10); % modem constants ---------------------------------------------------------- Rs = 75; % symbol rate in Hz Nc = 7; % number of carriers Nd = 2; % diveristy factor framesize = 56; % number of payload data bits in the frame Nsw = 4; % frames we demod for initial sync window afdmdv.Nsym = 6; % size of tx/tx root nyquist filter in symbols afdmdv.Nt = 5; % number of symbols we estimate timing over clip = 6.5; % Clipping of tx signal to reduce PAPR. Adjust by % experiment as Nc and Nd change. Check out no noise % scatter diagram and AWGN/fading BER perf % at operating points % FDMDV init --------------------------------------------------------------- afdmdv.Fs = Fs; afdmdv.Nc = Nd*Nc-1; afdmdv.Rs = Rs; if Fs/afdmdv.Rs != floor(Fs/afdmdv.Rs) printf("\n Oops, Fs/Rs must be an integer!\n\n"); return end M = afdmdv.M = afdmdv.Fs/afdmdv.Rs; afdmdv.Nfilter = afdmdv.Nsym*M; afdmdv.tx_filter_memory = zeros(afdmdv.Nc+1, afdmdv.Nfilter); excess_bw = 0.5; afdmdv.gt_alpha5_root = gen_rn_coeffs(excess_bw, 1/Fs, Rs, afdmdv.Nsym, afdmdv.M); Fcentre = afdmdv.Fcentre = 1500; afdmdv.Fsep = afdmdv.Rs*(1+excess_bw); afdmdv.phase_tx = ones(afdmdv.Nc+1,1); % non linear carrier spacing, combined with clip, helps PAPR a lot! freq_hz = afdmdv.Fsep*( -Nc*Nd/2 - 0.5 + (1:Nc*Nd).^0.98 ); afdmdv.freq_pol = 2*pi*freq_hz/Fs; afdmdv.freq = exp(j*afdmdv.freq_pol); afdmdv.Fcentre = 1500; afdmdv.fbb_rect = exp(j*2*pi*Fcentre/Fs); afdmdv.fbb_phase_tx = 1; afdmdv.fbb_phase_rx = 1; afdmdv.Nrxdec = 31; afdmdv.rxdec_coeff = fir1(afdmdv.Nrxdec-1, 0.25)'; afdmdv.rxdec_lpf_mem = zeros(1,afdmdv.Nrxdec-1+afdmdv.M); P = afdmdv.P = 4; afdmdv.phase_rx = ones(afdmdv.Nc+1,1); afdmdv.Nfilter = afdmdv.Nsym*afdmdv.M; afdmdv.rx_fdm_mem = zeros(1,afdmdv.Nfilter + afdmdv.M); Q = afdmdv.Q = afdmdv.M/4; if Q != floor(Q) printf("\n Yeah .... if (Fs/Rs)/4 = M/4 isn't an integer we will just go and break things.\n\n"); end afdmdv.rx_filter_mem_timing = zeros(afdmdv.Nc+1, afdmdv.Nt*afdmdv.P); afdmdv.Nfiltertiming = afdmdv.M + afdmdv.Nfilter + afdmdv.M; afdmdv.rx_filter_memory = zeros(afdmdv.Nc+1, afdmdv.Nfilter); afdmdv.filt = 0; afdmdv.prev_rx_symb = ones(1,afdmdv.Nc+1); % COHPSK Init -------------------------------------------------------- acohpsk = standard_init(); acohpsk.framesize = framesize; acohpsk.ldpc_code = 0; acohpsk.ldpc_code_rate = 1; acohpsk.Nc = Nc; acohpsk.Rs = Rs; acohpsk.Ns = 4; acohpsk.coh_en = 1; acohpsk.Nd = Nd; acohpsk.modulation = 'qpsk'; acohpsk.do_write_pilot_file = 1; % enable this to dump pilot symbols to C .h file, e.g. if frame params change acohpsk = symbol_rate_init(acohpsk); acohpsk.Ndft = 1024; acohpsk.f_est = afdmdv.Fcentre; ch_fdm_frame_buf = zeros(1, Nsw*acohpsk.Nsymbrowpilot*afdmdv.M); % ----------------------------------------------------------- tx_bits_log = []; tx_symb_log = []; rx_amp_log = []; rx_phi_log = []; ch_symb_log = []; rx_symb_log = []; rx_bits_log = []; tx_bits_prev_log = []; uvnoise_log = []; nerr_log = []; tx_baseband_log = []; tx_fdm_frame_log = []; ch_fdm_frame_log = []; rx_fdm_frame_bb_log = []; rx_filt_log = []; rx_fdm_filter_log = []; rx_baseband_log = []; rx_fdm_frame_log = []; ct_symb_ff_log = []; rx_timing_log = []; ratio_log = []; foff_log = []; f_est_log = []; sig_rms_log = []; noise_rms_log = []; noise_rms_filt_log = []; % Channel modeling and BER measurement ---------------------------------------- rand('state',1); tx_bits_coh = round(rand(1,framesize*10)); ptx_bits_coh = 1; Nerrs = Tbits = 0; prev_tx_bits = prev_tx_bits2 = []; error_positions_hist = zeros(1,framesize); phase_ch = 1; sync = initial_sync; acohpsk.f_est = Fcentre; acohpsk.f_fine_est = 0; acohpsk.ct = 4; acohpsk.ftrack_en = ftrack_en; [spread spread_2ms hf_gain] = init_hf_model(Fs, frames*acohpsk.Nsymbrowpilot*afdmdv.M); hf_n = 1; nhfdelay = floor(hf_delay_ms*Fs/1000); ch_fdm_delay = zeros(1, acohpsk.Nsymbrowpilot*M + nhfdelay); % simulated SSB tx filter [b, a] = cheby1(4, 3, [600, 2600]/(Fs/2)); [y filt_states] = filter(b,a,0); h = freqz(b,a,(600:2600)/(Fs/(2*pi))); filt_gain = (2600-600)/sum(abs(h) .^ 2); % ensures power after filter == before filter noise_rms_filt = 0; % main loop -------------------------------------------------------------------- % run mod and channel as aseparate loop so we can resample to simulate sample rate differences for f=1:frames tx_bits = tx_bits_coh(ptx_bits_coh:ptx_bits_coh+framesize-1); ptx_bits_coh += framesize; if ptx_bits_coh > length(tx_bits_coh) ptx_bits_coh = 1; end tx_bits_log = [tx_bits_log tx_bits]; [tx_symb tx_bits] = bits_to_qpsk_symbols(acohpsk, tx_bits, [], []); tx_symb_log = [tx_symb_log; tx_symb]; tx_fdm_frame = []; for r=1:acohpsk.Nsymbrowpilot tx_onesymb = tx_symb(r,:); [tx_baseband afdmdv] = tx_filter(afdmdv, tx_onesymb); tx_baseband_log = [tx_baseband_log tx_baseband]; [tx_fdm afdmdv] = fdm_upconvert(afdmdv, tx_baseband); tx_fdm_frame = [tx_fdm_frame tx_fdm]; end % clipping, which along with non-linear carrier spacing, improves PAPR % The value of clip is a function of Nc and is adjusted experimentally % such that the BER hit over no clipping at Es/No=8dB is small. ind = find(abs(tx_fdm_frame) > clip); tx_fdm_frame(ind) = clip*exp(j*angle(tx_fdm_frame(ind))); tx_fdm_frame_log = [tx_fdm_frame_log tx_fdm_frame]; % % Channel -------------------------------------------------------------------- % % simulate tx SSB filter with ripple if ssb_tx_filt [tx_fdm_frame filt_states] = filter(b,a,sqrt(filt_gain)*tx_fdm_frame, filt_states); end % frequency offset and frequency drift ch_fdm_frame = zeros(1,acohpsk.Nsymbrowpilot*M); for i=1:acohpsk.Nsymbrowpilot*M foff_rect = exp(j*2*pi*foff/Fs); foff += dfoff; phase_ch *= foff_rect; ch_fdm_frame(i) = tx_fdm_frame(i) * phase_ch; end foff_log = [foff_log foff]; phase_ch /= abs(phase_ch); % optional fading if fading_en ch_fdm_delay(1:nhfdelay) = ch_fdm_delay(acohpsk.Nsymbrowpilot*M+1:nhfdelay+acohpsk.Nsymbrowpilot*M); ch_fdm_delay(nhfdelay+1:nhfdelay+acohpsk.Nsymbrowpilot*M) = ch_fdm_frame; for i=1:acohpsk.Nsymbrowpilot*M ahf_model = hf_gain*(spread(hf_n)*ch_fdm_frame(i) + spread_2ms(hf_n)*ch_fdm_delay(i)); ch_fdm_frame(i) = ahf_model; hf_n++; end end % each carrier has power = 2, total power 2Nc, total symbol rate NcRs, noise BW B=Fs % Es/No = (C/Rs)/(N/B), N = var = 2NcFs/NcRs(Es/No) = 2Fs/Rs(Es/No) variance = 2*Fs/(acohpsk.Rs*EsNo); uvnoise = sqrt(0.5)*(randn(1,acohpsk.Nsymbrowpilot*M) + j*randn(1,acohpsk.Nsymbrowpilot*M)); uvnoise_log = [uvnoise_log uvnoise]; noise = sqrt(variance)*uvnoise; ch_fdm_frame += noise; ch_fdm_frame_log = [ch_fdm_frame_log ch_fdm_frame]; end % simulate difference in sample clocks tin=1; tout=1; ch_fdm_frame_log_out = zeros(1,length(ch_fdm_frame_log)); while tin < length(ch_fdm_frame_log) t1 = floor(tin); t2 = ceil(tin); f = tin - t1; ch_fdm_frame_log_out(tout) = (1-f)*ch_fdm_frame_log(t1) + f*ch_fdm_frame_log(t2); tout += 1; tin += 1+sample_rate_ppm/1E6; end ch_fdm_frame_log = ch_fdm_frame_log_out(1:tout-1); % Now run demod ---------------------------------------------------------------- ch_fdm_frame_log_index = 1; nin = M; f = 0; nin_frame = acohpsk.Nsymbrowpilot*M; %while (ch_fdm_frame_log_index + acohpsk.Nsymbrowpilot*M+M/P) < length(ch_fdm_frame_log) for f=1:frames; acohpsk.frame = f; ch_fdm_frame = ch_fdm_frame_log(ch_fdm_frame_log_index:ch_fdm_frame_log_index + nin_frame - 1); ch_fdm_frame_log_index += nin_frame; % % Demod ---------------------------------------------------------------------- % % store two frames of received samples so we can rewind if we get a good candidate ch_fdm_frame_buf(1:Nsw*acohpsk.Nsymbrowpilot*M-nin_frame) = ch_fdm_frame_buf(nin_frame+1:Nsw*acohpsk.Nsymbrowpilot*M); ch_fdm_frame_buf(Nsw*acohpsk.Nsymbrowpilot*M-nin_frame+1:Nsw*acohpsk.Nsymbrowpilot*M) = ch_fdm_frame; next_sync = sync; % if out of sync do Initial Freq offset estimation over NSW frames to flush out memories if (sync == 0) % we can test +/- 20Hz, so we break this up into 3 tests to cover +/- 60Hz max_ratio = 0; for acohpsk.f_est = Fcentre-40:40:Fcentre+40 printf(" [%d] acohpsk.f_est: %f +/- 20\n", f, acohpsk.f_est); % we are out of sync so reset f_est and process two frames to clean out memories [ch_symb rx_timing rx_filt rx_baseband afdmdv acohpsk.f_est] = rate_Fs_rx_processing(afdmdv, ch_fdm_frame_buf, acohpsk.f_est, Nsw*acohpsk.Nsymbrowpilot, nin, 0); rx_baseband_log = [rx_baseband_log rx_baseband]; rx_filt_log = [rx_filt_log rx_filt]; ch_symb_log = [ch_symb_log; ch_symb]; rx_timing_log = [rx_timing_log rx_timing]; for i=1:Nsw-1 acohpsk.ct_symb_buf = update_ct_symb_buf(acohpsk.ct_symb_buf, ch_symb((i-1)*acohpsk.Nsymbrowpilot+1:i*acohpsk.Nsymbrowpilot,:), acohpsk.Nct_sym_buf, acohpsk.Nsymbrowpilot); end [anext_sync acohpsk] = frame_sync_fine_freq_est(acohpsk, ch_symb((Nsw-1)*acohpsk.Nsymbrowpilot+1:Nsw*acohpsk.Nsymbrowpilot,:), sync, next_sync); if anext_sync == 1 %printf(" [%d] acohpsk.ratio: %f\n", f, acohpsk.ratio); if acohpsk.ratio > max_ratio max_ratio = acohpsk.ratio; f_est = acohpsk.f_est - acohpsk.f_fine_est; next_sync = anext_sync; end end end if next_sync == 1 % we've found a sync candidate! % re-process last two frames with adjusted f_est then check again acohpsk.f_est = f_est; printf(" [%d] trying sync and f_est: %f\n", f, acohpsk.f_est); [ch_symb rx_timing rx_filt rx_baseband afdmdv f_est] = rate_Fs_rx_processing(afdmdv, ch_fdm_frame_buf, acohpsk.f_est, Nsw*acohpsk.Nsymbrowpilot, nin, 0); rx_baseband_log = [rx_baseband_log rx_baseband]; rx_filt_log = [rx_filt_log rx_filt]; ch_symb_log = [ch_symb_log; ch_symb]; rx_timing_log = [rx_timing_log rx_timing]; for i=1:Nsw-1 acohpsk.ct_symb_buf = update_ct_symb_buf(acohpsk.ct_symb_buf, ch_symb((i-1)*acohpsk.Nsymbrowpilot+1:i*acohpsk.Nsymbrowpilot,:), acohpsk.Nct_sym_buf, acohpsk.Nsymbrowpilot); end [next_sync acohpsk] = frame_sync_fine_freq_est(acohpsk, ch_symb((Nsw-1)*acohpsk.Nsymbrowpilot+1:Nsw*acohpsk.Nsymbrowpilot,:), sync, next_sync); if abs(acohpsk.f_fine_est) > 2 printf(" [%d] Hmm %f is a bit big so back to coarse est ...\n", f, acohpsk.f_fine_est); next_sync = 0; end if acohpsk.ratio < 0.9 next_sync = 0; end if next_sync == 1 % OK we are in sync! % demodulate first frame (demod completed below) printf(" [%d] in sync! f_est: %f ratio: %f \n", f, f_est, acohpsk.ratio); acohpsk.ct_symb_ff_buf(1:acohpsk.Nsymbrowpilot+2,:) = acohpsk.ct_symb_buf(acohpsk.ct+1:acohpsk.ct+acohpsk.Nsymbrowpilot+2,:); end end end % If in sync just do sample rate processing on latest frame if sync == 1 [ch_symb rx_timing rx_filt rx_baseband afdmdv acohpsk.f_est] = rate_Fs_rx_processing(afdmdv, ch_fdm_frame, acohpsk.f_est, acohpsk.Nsymbrowpilot, nin, acohpsk.ftrack_en); [next_sync acohpsk] = frame_sync_fine_freq_est(acohpsk, ch_symb, sync, next_sync); acohpsk.ct_symb_ff_buf(1:2,:) = acohpsk.ct_symb_ff_buf(acohpsk.Nsymbrowpilot+1:acohpsk.Nsymbrowpilot+2,:); acohpsk.ct_symb_ff_buf(3:acohpsk.Nsymbrowpilot+2,:) = acohpsk.ct_symb_buf(acohpsk.ct+3:acohpsk.ct+acohpsk.Nsymbrowpilot+2,:); rx_baseband_log = [rx_baseband_log rx_baseband]; rx_filt_log = [rx_filt_log rx_filt]; ch_symb_log = [ch_symb_log; ch_symb]; rx_timing_log = [rx_timing_log rx_timing]; f_est_log = [f_est_log acohpsk.f_est]; end % if we are in sync complete demodulation with symbol rate processing if (next_sync == 1) || (sync == 1) [rx_symb rx_bits rx_symb_linear amp_ phi_ sig_rms noise_rms] = qpsk_symbols_to_bits(acohpsk, acohpsk.ct_symb_ff_buf); rx_symb_log = [rx_symb_log; rx_symb]; rx_amp_log = [rx_amp_log; amp_]; rx_phi_log = [rx_phi_log; phi_]; rx_bits_log = [rx_bits_log rx_bits]; tx_bits_prev_log = [tx_bits_prev_log prev_tx_bits2]; ratio_log = [ratio_log acohpsk.ratio]; ct_symb_ff_log = [ct_symb_ff_log; acohpsk.ct_symb_ff_buf(1:acohpsk.Nsymbrowpilot,:)]; sig_rms_log = [sig_rms_log sig_rms]; noise_rms_log = [noise_rms_log noise_rms]; noise_rms_filt = 0.9*noise_rms_filt + 0.1*noise_rms; noise_rms_filt_log = [noise_rms_filt_log noise_rms_filt]; % BER stats if f > 2 error_positions = xor(tx_bits_log((f-3)*framesize+1:(f-2)*framesize), rx_bits); Nerrs += sum(error_positions); nerr_log = [nerr_log sum(error_positions)]; Tbits += length(error_positions); error_positions_hist += error_positions; end printf("\r [%d]", f); end % reset BER stats if we lose sync if sync == 1 %Nerrs = 0; %Tbits = 0; %nerr_log = []; end [sync acohpsk] = sync_state_machine(acohpsk, sync, next_sync); % work out how many samples we need for next time nin = M; if sync == 1 if rx_timing(length(rx_timing)) > M/P nin = M + M/P; end if rx_timing(length(rx_timing)) < -M/P nin = M - M/P; end end nin_frame = (acohpsk.Nsymbrowpilot-1)*M + nin; prev_tx_bits2 = prev_tx_bits; prev_tx_bits = tx_bits; end ber = Nerrs/Tbits; printf("\nOctave EsNodB: %4.1f ber..: %4.3f Nerrs..: %d Tbits..: %d\n", EsNodB, ber, Nerrs, Tbits); if compare_with_c % Output vectors from C port --------------------------------------------------- load tcohpsk_out.txt % Determine bit error rate sz = length(rx_bits_log_c); Nerrs_c = sum(xor(tx_bits_log(1:sz-framesize), rx_bits_log_c(framesize+1:sz))); Tbits_c = length(tx_bits_prev_log); ber_c = Nerrs_c/Tbits_c; printf("C EsNodB.....: %4.1f ber_c: %4.3f Nerrs_c: %d Tbits_c: %d\n", EsNodB, ber_c, Nerrs_c, Tbits_c); stem_sig_and_error(1, 111, tx_bits_log_c, tx_bits_log - tx_bits_log_c, 'tx bits', [1 length(tx_bits_log) -1.5 1.5]) stem_sig_and_error(2, 211, real(tx_symb_log_c), real(tx_symb_log - tx_symb_log_c), 'tx symb re', [1 length(tx_symb_log_c) -1.5 1.5]) stem_sig_and_error(2, 212, imag(tx_symb_log_c), imag(tx_symb_log - tx_symb_log_c), 'tx symb im', [1 length(tx_symb_log_c) -1.5 1.5]) stem_sig_and_error(3, 211, real(tx_fdm_frame_log_c), real(tx_fdm_frame_log - tx_fdm_frame_log_c), 'tx fdm frame re', [1 length(tx_fdm_frame_log) -10 10]) stem_sig_and_error(3, 212, imag(tx_fdm_frame_log_c), imag(tx_fdm_frame_log - tx_fdm_frame_log_c), 'tx fdm frame im', [1 length(tx_fdm_frame_log) -10 10]) stem_sig_and_error(4, 211, real(ch_fdm_frame_log_c), real(ch_fdm_frame_log - ch_fdm_frame_log_c), 'ch fdm frame re', [1 length(ch_fdm_frame_log) -10 10]) stem_sig_and_error(4, 212, imag(ch_fdm_frame_log_c), imag(ch_fdm_frame_log - ch_fdm_frame_log_c), 'ch fdm frame im', [1 length(ch_fdm_frame_log) -10 10]) c = 1; stem_sig_and_error(5, 211, real(rx_baseband_log_c(c,:)), real(rx_baseband_log(c,:) - rx_baseband_log_c(c,:)), 'rx baseband re', [1 length(rx_baseband_log) -10 10]) stem_sig_and_error(5, 212, imag(rx_baseband_log_c(c,:)), imag(rx_baseband_log(c,:) - rx_baseband_log_c(c,:)), 'rx baseband im', [1 length(rx_baseband_log) -10 10]) stem_sig_and_error(6, 211, real(rx_filt_log_c(c,:)), real(rx_filt_log(c,:) - rx_filt_log_c(c,:)), 'rx filt re', [1 length(rx_filt_log) -1 1]) stem_sig_and_error(6, 212, imag(rx_filt_log_c(c,:)), imag(rx_filt_log(c,:) - rx_filt_log_c(c,:)), 'rx filt im', [1 length(rx_filt_log) -1 1]) [n m] = size(ch_symb_log); stem_sig_and_error(7, 211, real(ch_symb_log_c), real(ch_symb_log - ch_symb_log_c), 'ch symb re', [1 n -1.5 1.5]) stem_sig_and_error(7, 212, imag(ch_symb_log_c), imag(ch_symb_log - ch_symb_log_c), 'ch symb im', [1 n -1.5 1.5]) [n m] = size(rx_symb_log); stem_sig_and_error(8, 211, rx_amp_log_c, rx_amp_log - rx_amp_log_c, 'Amp Est', [1 n -1.5 1.5]) phi_log_diff = rx_phi_log - rx_phi_log_c; phi_log_diff(find(phi_log_diff > pi)) -= 2*pi; phi_log_diff(find(phi_log_diff < -pi)) += 2*pi; stem_sig_and_error(8, 212, rx_phi_log_c, phi_log_diff, 'Phase Est', [1 n -4 4]) stem_sig_and_error(9, 211, real(rx_symb_log_c), real(rx_symb_log - rx_symb_log_c), 'rx symb re', [1 n -1.5 1.5]) stem_sig_and_error(9, 212, imag(rx_symb_log_c), imag(rx_symb_log - rx_symb_log_c), 'rx symb im', [1 n -1.5 1.5]) stem_sig_and_error(10, 111, rx_bits_log_c, rx_bits_log - rx_bits_log_c, 'rx bits', [1 length(rx_bits_log) -1.5 1.5]) stem_sig_and_error(11, 111, f_est_log_c - Fcentre - foff, f_est_log - f_est_log_c, 'f est', [1 length(f_est_log) -5 5]) stem_sig_and_error(12, 111, rx_timing_log_c, rx_timing_log_c - rx_timing_log, 'rx timing', [1 length(rx_timing_log) -M M]) check(tx_bits_log, tx_bits_log_c, 'tx_bits'); check(tx_symb_log, tx_symb_log_c, 'tx_symb'); check(tx_fdm_frame_log, tx_fdm_frame_log_c, 'tx_fdm_frame',0.01); check(ch_fdm_frame_log, ch_fdm_frame_log_c, 'ch_fdm_frame',0.01); check(ch_symb_log, ch_symb_log_c, 'ch_symb',0.05); check(rx_amp_log, rx_amp_log_c, 'rx_amp_log',0.01); check(phi_log_diff, zeros(length(phi_log_diff), Nc*Nd), 'rx_phi_log',0.1); check(rx_symb_log, rx_symb_log_c, 'rx_symb',0.01); check(rx_timing_log, rx_timing_log_c, 'rx_timing',0.005); check(rx_bits_log, rx_bits_log_c, 'rx_bits'); check(f_est_log, f_est_log_c, 'f_est'); check(sig_rms_log, sig_rms_log_c, 'sig_rms'); check(noise_rms_log, noise_rms_log_c, 'noise_rms'); printf("\npasses: %d fails: %d\n", passes, fails); else papr = max(tx_fdm_frame_log.*conj(tx_fdm_frame_log)) / mean(tx_fdm_frame_log.*conj(tx_fdm_frame_log)); papr_dB = 10*log10(papr); printf("av tx pwr: %4.2f PAPR: %4.2f av rx pwr: %4.2f\n", var(tx_fdm_frame_log), papr_dB, var(ch_fdm_frame_log)); % some other useful plots f = figure(1) clf subplot(211) plot(real(tx_fdm_frame_log)) title('tx fdm real'); subplot(212) plot(imag(tx_fdm_frame_log)) title('tx fdm imag'); f = figure(2) clf spec = 20*log10(abs(fft(tx_fdm_frame_log))); l = length(spec); plot((Fs/l)*(1:l), spec) axis([1 Fs/2 0 max(spec)]); title('tx spectrum'); ylabel('Amplitude (dB)') xlabel('Frequency (Hz)') grid; f = figure(3) clf; % plot combined signals to show diversity gains combined = rx_symb_log(:,1:Nc); for d=2:Nd combined += rx_symb_log(:, (d-1)*Nc+1:d*Nc); end plot(combined*exp(j*pi/4)/sqrt(Nd),'+') title('Scatter'); ymax = abs(max(max(combined))); axis([-ymax ymax -ymax ymax]) f = figure(4) clf; subplot(211) plot(rx_phi_log) subplot(212) plot(rx_amp_log) f = figure(5) clf; subplot(211) plot(rx_timing_log) title('rx timing'); subplot(212) stem(ratio_log) title('Sync ratio'); f = figure(6) clf; subplot(211) stem(nerr_log) title('Bit Errors'); subplot(212) plot(noise_rms_filt_log,'r', sig_rms_log,'g'); title('Est rms signal and noise') f = figure(7); clf; subplot(211) plot(foff_log,';freq offset;'); hold on; plot(f_est_log - Fcentre,'g;freq offset est;'); hold off; title('freq offset'); legend("boxoff"); subplot(212) plot(foff_log(1:length(f_est_log)) - f_est_log + Fcentre) title('freq offset estimation error'); f = figure(8) clf h = freqz(b,a,Fs/2); plot(20*log10(abs(h))) axis([1 Fs/2 -20 0]) grid title('SSB tx filter') f = figure(9) clf plot(error_positions_hist) title('histogram of bit errors') end % function to write C header file of noise samples so C version gives % extactly the same results function write_noise_file(uvnoise_log) m = length(uvnoise_log); filename = sprintf("../unittest/noise_samples.h"); f=fopen(filename,"wt"); fprintf(f,"/* unit variance complex noise samples */\n\n"); fprintf(f,"/* Generated by write_noise_file() Octave function */\n\n"); fprintf(f,"COMP noise[]={\n"); for r=1:m if r < m fprintf(f, " {%f,%f},\n", real(uvnoise_log(r)), imag(uvnoise_log(r))); else fprintf(f, " {%f,%f}\n};", real(uvnoise_log(r)), imag(uvnoise_log(r))); end end fclose(f); endfunction % function to write float fading samples for use by C programs %function write_noise_file(raw_file_name, Fs, dopplerSpreadHz, len_samples) % spread = doppler_spread(dopplerSpreadHz, Fs, len_samples); % spread_2ms = doppler_spread(dopplerSpreadHz, Fs, len_samples); % hf_gain = 1.0/sqrt(var(spread)+var(spread_2ms)); % % % interleave real imag samples % % inter = zeros(1,len_samples*4); % inter(1:4) = hf_gain; % for i=1:len_samples % inter(i*4+1) = real(spread(i)); % inter(i*4+2) = imag(spread(i)); % inter(i*4+3) = real(spread_2ms(i)); % inter(i*4+4) = imag(spread_2ms(i)); % end % f = fopen(raw_file_name,"wb"); % fwrite(f, inter, "float32"); % fclose(f); %endfunction codec2-1.0.1/octave/tdetphase.m000066400000000000000000000043261412132000500162610ustar00rootroot00000000000000% tdetphase.m % David Rowe August 2017 % % Testing Hilbert Transform recover of phase from magnitude spectra newamp; Fs = 8000; w = 2*pi*500/Fs; gamma = 0.95 ak = [1 -2*gamma*cos(w) gamma*gamma]; Nfft = 512; % Test 1 - compare phase from freqz for 2nd order system (all pole filter) % - uses internal test of determine_phase() h = freqz(1,ak,Nfft/2); % note dummy_model not used, as determine_phase() is used in test mode L = 20; Wo = pi/(L+1); dummy_model = [Wo L ones(1,L)]; phase = determine_phase(dummy_model, 1, Nfft, ak); fg = 1; figure(fg++); clf; subplot(211); plot(20*log10(abs(h))); title('test 1'); subplot(212); plot(angle(h)); hold on; plot(phase(1:Nfft/2),'g'); hold off; % Test 2 - feed in harmonic magnitudes F0 = 100; Wo = 2*pi*F0/Fs; L = floor(pi/Wo); Am = zeros(1,L); for m=1:L b = round(m*Wo*Nfft/(2*pi)); Am(m) = abs(h(b)); end AmdB = 20*log10(Am); model = [Wo L Am]; [phase Gdbfk s] = determine_phase(model, 1, Nfft); fftx = (1:Nfft/2)*(Fs/Nfft); harmx = (1:L)*Wo*Fs/(2*pi); figure(fg++); clf; subplot(211); plot(fftx, Gdbfk(1:Nfft/2)); subplot(212); plot(s(1:Nfft/2)) figure(fg++); clf; subplot(211); plot(fftx, 20*log10(abs(h))); hold on; plot(harmx, AmdB, 'g+'); plot(fftx, Gdbfk(1:Nfft/2), 'r'); hold off; subplot(212); plot(fftx, angle(h)); hold on; plot(fftx, phase(1:Nfft/2),'g'); hold off; % Test 3 - Use real harmonic amplitudes model = load("../build_linux/src/hts1a_model.txt"); phase_orig = load("../build_linux/src/hts1a_phase.txt"); f = 184; Wo = model(f,1); L = model(f,2); Am = model(f,3:L+2); AmdB = 20*log10(Am); [phase Gdbfk s] = determine_phase(model, f, Nfft); fftx = (1:Nfft/2)*(Fs/Nfft); harmx = (1:L)*Wo*Fs/(2*pi); figure(fg++); clf; subplot(211); plot(fftx, Gdbfk(1:Nfft/2)); subplot(212); plot(s(1:Nfft/2)) figure(fg++); clf; subplot(211); plot(harmx, AmdB, 'g+'); hold on; plot(fftx, Gdbfk(1:Nfft/2), 'r'); hold off; subplot(212); plot(fftx, phase(1:Nfft/2),'g'); % synthesise using phases N = 320; s = s_phase = zeros(1,N); for m=1:L/4 s = s + Am(m)*cos(m*Wo*(1:N) + phase_orig(f,m)); b = round(m*Wo*Nfft/(2*pi)); s_phase = s_phase + Am(m)*cos(m*Wo*(1:N) + phase(b)); end figure(fg++); clf; subplot(211); plot(s); subplot(212); plot(s_phase,'g'); codec2-1.0.1/octave/test_dqpsk2.m000066400000000000000000000350171412132000500165440ustar00rootroot00000000000000% test_dqpsk2.m % David Rowe April 2014 % % DQPSK modem simulation inclduing filtering to test modulating modem % tx power based on speech energy. Unlike test_dpsk runs at sample % rate Fs. 1; % main test function function sim_out = ber_test(sim_in) Fs = 8000; verbose = sim_in.verbose; framesize = sim_in.framesize; Ntrials = sim_in.Ntrials; Esvec = sim_in.Esvec; phase_offset = sim_in.phase_offset; w_offset = sim_in.w_offset; plot_scatter = sim_in.plot_scatter; Rs = sim_in.Rs; hf_sim = sim_in.hf_sim; Nhfdelay = floor(sim_in.hf_delay_ms*Fs/1000); Nc = sim_in.Nc; symbol_amp = sim_in.symbol_amp; bps = 2; Nsymb = framesize/bps; for k=1:Nc prev_sym_tx(k) = qpsk_mod([0 0]); prev_sym_rx(k) = qpsk_mod([0 0]); end % design root nyquist (root raised cosine) filter and init tx and rx filter states alpha = 0.5; T=1/Fs; Nfiltsym=7; M=Fs/Rs; if floor(Fs/Rs) != Fs/Rs printf("oversampling ratio must be an integer\n"); return; end hrn = gen_rn_coeffs(alpha, T, Rs, Nfiltsym, M); Nfilter = length(hrn); % convert "spreading" samples from 1kHz carrier at Fs to complex % baseband, generated by passing a 1kHz sine wave through PathSim % with the ccir-poor model, enabling one path at a time. Fc = 1000; fspread = fopen("../raw/sine1k_2Hz_spread.raw","rb"); spread1k = fread(fspread, "int16")/10000; fclose(fspread); fspread = fopen("../raw/sine1k_2ms_delay_2Hz_spread.raw","rb"); spread1k_2ms = fread(fspread, "int16")/10000; fclose(fspread); % down convert to complex baseband spreadbb = spread1k.*exp(-j*(2*pi*Fc/Fs)*(1:length(spread1k))'); spreadbb_2ms = spread1k_2ms.*exp(-j*(2*pi*Fc/Fs)*(1:length(spread1k_2ms))'); % remove -2000 Hz image b = fir1(50, 5/Fs); spread = filter(b,1,spreadbb); spread_2ms = filter(b,1,spreadbb_2ms); % discard first 1000 samples as these were near 0, probably as % PathSim states were ramping up. Transpose for convenience spread = transpose(spread(1000:length(spread))); spread_2ms = transpose(spread_2ms(1000:length(spread_2ms))); % Determine "gain" of HF channel model, so we can normalise % carrier power during HF channel sim to calibrate SNR. I imagine % different implementations of ccir-poor would do this in % different ways, leading to different BER results. Oh Well! hf_gain = 1.0/sqrt(var(spread)+var(spread_2ms)); % Start Simulation ---------------------------------------------------------------- for ne = 1:length(Esvec) EsNodB = Esvec(ne); EsNo = 10^(EsNodB/10); variance = Fs/(Rs*EsNo); if verbose > 1 printf("EsNo (dB): %f EsNo: %f variance: %f\n", EsNodB, EsNo, variance); end Terrs = 0; Tbits = 0; tx_symb_log = []; rx_symb_log = []; noise_log = []; sim_out.errors_log = []; sim_out.tx_baseband_log = []; sim_out.rx_filt_log = []; symbol_amp_index = 1; % init filter memories and LOs tx_filter_memory = zeros(Nc, Nfilter); rx_filter_memory = zeros(Nc, Nfilter); s_delay_line_filt = zeros(Nc, Nfiltsym); phase_tx = ones(1,Nc); phase_rx = ones(1,Nc); Fcentre = 1500; Fsep = (1+alpha)*Rs; freq = Fcentre + Fsep*((-Nc/2+0.5):(Nc/2-0.5)); freq = exp(j*freq*2*pi/Fs); % init HF channel sc = 1; hf_n = 1; hf_sim_delay_line = zeros(1,M+Nhfdelay); freq_sample_hz = Fcentre + ((Fsep*(-Nc/2)):50:(Fsep*(Nc/2))); freq_sample_rads = (2*pi/Fs)*freq_sample_hz; hf_model = ones(Ntrials*Nsymb/Nc, length(freq_sample_rads)); % defaults for plotting surface % bunch of outputs we log for graphing sim_out.errors_log = []; sim_out.Nerrs = []; sim_out.snr_log = []; sim_out.hf_model_pwr = []; sim_out.tx_fdm_log = []; C_log = []; for nn = 1: Ntrials tx_bits = round( rand( 1, framesize ) ); % modulate -------------------------------------------- s = zeros(1, Nsymb); for i=1:Nc:Nsymb for k=1:Nc tx_symb = qpsk_mod(tx_bits(2*(i-1+k-1)+1:2*(i+k-1))); s_qpsk(i+k-1) = tx_symb; tx_symb *= prev_sym_tx(k); prev_sym_tx(k) = tx_symb; s(i+k-1) = symbol_amp(symbol_amp_index)*tx_symb; end end symbol_amp_index++; s_ch = s; % Now we start processing frame Nc symbols at a time to model parallel carriers tx_fdm_sym_log = []; for i=1:Nc:Nsymb % Delay tx symbols to match delay due to filters. qpsk % (rather than dqpsk) symbols used for convenience as % it's easy to shift symbols than pairs of bits s_delay_line_filt(:,1:Nfiltsym-1) = s_delay_line_filt(:,2:Nfiltsym); s_delay_line_filt(:,Nfiltsym) = s_qpsk(i:i+Nc-1); s_qpsk(i:i+Nc-1) = s_delay_line_filt(:,1); for k=1:Nc tx_bits(2*(i-1+k-1)+1:2*(i+k-1)) = qpsk_demod(s_qpsk(i+k-1)); end % tx filter tx_baseband = zeros(Nc,M); % tx filter each symbol, generate M filtered output samples for each symbol. % Efficient polyphase filter techniques used as tx_filter_memory is sparse tx_filter_memory(:,Nfilter) = s(i:i+Nc-1); for k=1:M tx_baseband(:,k) = M*tx_filter_memory(:,M:M:Nfilter) * hrn(M-k+1:M:Nfilter)'; end tx_filter_memory(:,1:Nfilter-M) = tx_filter_memory(:,M+1:Nfilter); tx_filter_memory(:,Nfilter-M+1:Nfilter) = zeros(Nc,M); sim_out.tx_baseband_log = [sim_out.tx_baseband_log tx_baseband]; % upconvert tx_fdm = zeros(1,M); for c=1:Nc for k=1:M phase_tx(c) = phase_tx(c) * freq(c); tx_fdm(k) = tx_fdm(k) + tx_baseband(c,k)*phase_tx(c); end end sim_out.tx_fdm_log = [sim_out.tx_fdm_log tx_fdm]; % HF channel if hf_sim hf_sim_delay_line(1:Nhfdelay) = hf_sim_delay_line(M+1:M+Nhfdelay); hf_sim_delay_line(Nhfdelay+1:M+Nhfdelay) = tx_fdm; tx_fdm = tx_fdm.*spread(sc:sc+M-1) + hf_sim_delay_line(1:M).*spread_2ms(sc:sc+M-1); tx_fdm *= hf_gain; % sample HF channel spectrum in middle of this symbol for plotting hf_model(hf_n,:) = hf_gain*(spread(sc+M/2) + exp(-j*freq_sample_rads*Nhfdelay)*spread_2ms(sc+M/2)); sc += M; hf_n++; end tx_fdm_sym_log = [tx_fdm_sym_log tx_fdm ]; % AWGN noise and phase/freq offset channel simulation % 0.5 factor ensures var(noise) == variance , i.e. splits power between Re & Im noise = sqrt(variance*0.5)*(randn(1,M) + j*randn(1,M)); noise_log = [noise_log noise]; % apply frequency and phase offset and noise for k=1:M rx_fdm(k) = tx_fdm(k)*exp(j*phase_offset) + noise(k); phase_offset += w_offset; end % downconvert rx_baseband = zeros(Nc,M); for c=1:Nc for k=1:M phase_rx(c) = phase_rx(c) * freq(c); rx_baseband(c,k) = rx_fdm(k)*phase_rx(c)'; end end % rx filter rx_filter_memory(:,Nfilter-M+1:Nfilter) = rx_baseband; rx_filt = rx_filter_memory * hrn'; rx_filter_memory(:,1:Nfilter-M) = rx_filter_memory(:,1+M:Nfilter); sim_out.rx_filt_log = [sim_out.rx_filt_log rx_filt]; s_ch(i:i+Nc-1) = rx_filt; end % est HF model power for entire code frame (which could be several symbols) if hf_sim frame_hf_model = reshape(hf_model(hf_n-Nsymb/Nc:hf_n-1,:),1,(Nsymb/Nc)*length(freq_sample_hz)); sim_out.hf_model_pwr = [sim_out.hf_model_pwr mean(abs(frame_hf_model).^2)]; else sim_out.hf_model_pwr = [sim_out.hf_model_pwr 1]; end % "genie" SNR estimate snr = (tx_fdm_sym_log*tx_fdm_sym_log')/(M*variance); sim_out.snr_log = [sim_out.snr_log snr]; % de-modulate rx_bits = zeros(1, framesize); for i=1:Nc:Nsymb for k=1:Nc rx_symb = s_ch(i+k-1); tmp = rx_symb; rx_symb *= conj(prev_sym_rx(k)/abs(prev_sym_rx(k))); prev_sym_rx(k) = tmp; rx_bits((2*(i-1+k-1)+1):(2*(i+k-1))) = qpsk_demod(rx_symb); rx_symb_log = [rx_symb_log rx_symb]; end end % ignore data until we have enough frames to fill filter memory % then count errors if nn > ceil(Nfiltsym/(Nsymb/Nc)) error_positions = xor(rx_bits, tx_bits); sim_out.errors_log = [sim_out.errors_log error_positions]; Nerrs = sum(error_positions); sim_out.Nerrs = [sim_out.Nerrs Nerrs]; Terrs += Nerrs; Tbits += length(tx_bits); end end TERvec(ne) = Terrs; BERvec(ne) = Terrs/Tbits; if verbose printf("EsNo (dB): %f Terrs: %d BER %f ", EsNodB, Terrs, Terrs/Tbits); printf("\n"); end if verbose > 1 printf("Terrs: %d BER %f C %f N %f Es %f No %f Es/No %f\n\n", Terrs, Terrs/Tbits, var(sim_out.tx_fdm_log), var(noise_log), var(sim_out.tx_fdm_log)/(Nc*Rs), var(noise_log)/Fs, (var(sim_out.tx_fdm_log)/(Nc*Rs))/(var(noise_log)/Fs)); end end Ebvec = Esvec - 10*log10(bps); sim_out.BERvec = BERvec; sim_out.Ebvec = Ebvec; sim_out.TERvec = TERvec; if plot_scatter figure(2); clf; scat = rx_symb_log(Nfiltsym*Nc:length(rx_symb_log)) .* exp(j*pi/4); plot(real(scat), imag(scat),'+'); title('Scatter plot'); figure(3); clf; y = 1:Rs*2; EsNodBSurface = 20*log10(abs(hf_model(y,:))) + EsNodB; mesh(1:length(freq_sample_hz),y,EsNodBSurface); grid title('HF Channel Es/No'); end endfunction % Gray coded QPSK modulation function function symbol = qpsk_mod(two_bits) two_bits_decimal = sum(two_bits .* [2 1]); switch(two_bits_decimal) case (0) symbol = 1; case (1) symbol = j; case (2) symbol = -j; case (3) symbol = -1; endswitch endfunction % Gray coded QPSK demodulation function function two_bits = qpsk_demod(symbol) if isscalar(symbol) == 0 printf("only works with scalars\n"); return; end bit0 = real(symbol*exp(j*pi/4)) < 0; bit1 = imag(symbol*exp(j*pi/4)) < 0; two_bits = [bit1 bit0]; endfunction function sim_in = standard_init sim_in.verbose = 1; sim_in.plot_scatter = 0; sim_in.Esvec = 5:15; sim_in.Ntrials = 100; sim_in.framesize = 64; sim_in.Rs = 100; sim_in.Nc = 8; sim_in.phase_offset = 0; sim_in.w_offset = 0; sim_in.phase_noise_amp = 0; sim_in.hf_delay_ms = 2; sim_in.hf_sim = 0; sim_in.hf_phase_only = 0; sim_in.hf_mag_only = 0; endfunction function awgn_hf_ber_curves() sim_in = standard_init(); Ebvec = sim_in.Esvec - 10*log10(2); BER_theory = 0.5*erfc(sqrt(10.^(Ebvec/10))); dpsk_awgn = ber_test(sim_in); sim_in.hf_sim = 1; dpsk_hf = ber_test(sim_in); figure(1); clf; semilogy(Ebvec, BER_theory,'r;QPSK theory;') hold on; semilogy(dpsk_awgn.Ebvec, dpsk_awgn.BERvec,'g;DQPSK;') semilogy(dpsk_hf.Ebvec, dpsk_hf.BERvec,'g;DQPSK HF;') hold off; xlabel('Eb/N0') ylabel('BER') grid("minor") axis([min(Ebvec) max(Ebvec) 1E-3 1]) end sim_in = standard_init(); % energy file sampled every 10ms load ../src/ve9qrp.txt pdB=10*log10(ve9qrp); for i=1:length(pdB) if pdB(i) < 0 pdB(i) = 0; end end % Down sample to 40ms rate used for 1300 bit/s codec, every 4th sample is transmitted pdB = pdB(4:4:length(pdB)); % Use linear mapping function in dB domain to map to symbol power %power_map_x = [ 0 20 24 40 50 ]; %power_map_y = [--6 -6 0 6 6]; power_map_x = [ 0 50 ]; power_map_y = [ -15 12]; mapped_pdB = interp1(power_map_x, power_map_y, pdB); sim_in.symbol_amp = 10 .^ (mapped_pdB/20); %sim_in.symbol_amp = ones(1,length(pdB)); sim_in.plot_scatter = 1; sim_in.verbose = 2; sim_in.hf_delay_ms = 2; sim_in.hf_sim = 1; sim_in.Esvec = 10; sim_in.Ntrials = 400; dqpsk_pwr_hf = ber_test(sim_in); % note: need way to test that power is aligned with speech figure(4) clf; plot((1:sim_in.Ntrials)*80*4, pdB(1:sim_in.Ntrials)); hold on; plot((1:sim_in.Ntrials)*80*4, mapped_pdB(1:sim_in.Ntrials),'r'); hold off; figure(5) clf; s = load_raw("../raw/ve9qrp.raw"); M=320; M_on_2 = M/2; % processing delay between input speech and centre of analysis window subplot(211) plot(M_on_2:(M_on_2-1+sim_in.Ntrials*M),s(1:sim_in.Ntrials*M)) hold on; plot((1:sim_in.Ntrials)*M, 5000*sim_in.symbol_amp(1:sim_in.Ntrials),'r'); hold off; axis([1 sim_in.Ntrials*M -3E4 3E4]); subplot(212) plot(real(dqpsk_pwr_hf.tx_fdm_log)); figure(6) clf; plot((1:sim_in.Ntrials)*M, 20*log10(sim_in.symbol_amp(1:sim_in.Ntrials)),'b;Es (dB);'); hold on; plot((1:sim_in.Ntrials)*M, 10*log10(dqpsk_pwr_hf.hf_model_pwr),'g;Fading (dB);'); plot((1:sim_in.Ntrials)*M, 10*log10(dqpsk_pwr_hf.snr_log),'r;Es/No (dB);'); ber = dqpsk_pwr_hf.Nerrs/sim_in.framesize; ber_clip = ber; ber_clip(find(ber > 0.2)) = 0.2; plot((1:length(ber_clip))*M, -20+100*ber_clip,'k;BER (0-20%);'); hold off; axis([1 sim_in.Ntrials*M -20 20]) fep=fopen("dqpsk_errors_pwr.bin","wb"); fwrite(fep, dqpsk_pwr_hf.errors_log, "short"); fclose(fep); fber=fopen("ber.bin","wb"); fwrite(fber, ber, "float"); fclose(fber); codec2-1.0.1/octave/test_ldpc_fsk_lib.m000066400000000000000000000643771412132000500177660ustar00rootroot00000000000000% test_ldpc_fsk_lib % David Rowe 16 April 2016 % % A series of tests for ldpc_fsk_lib, and C versions ldpc_enc and ldpc_dec. % Gradually builds up complete C command line for SSTV balloon system, % using Octave versions of LDPC and FSK modem as reference points. 1; % encodes and decodes one frame, also writes codeword.bin for testing % decode_from_file() below, and can optionally generate include file for % C version of decoder. function [data code_param] = simple_ut(c_include_file) load('H2064_516_sparse.mat'); HRA = full(HRA); max_iterations = 100; decoder_type = 0; EsNodB = 3; mod_order = 2; code_param = ldpc_init(HRA, mod_order); data = round( rand( 1, code_param.data_bits_per_frame ) ); codeword = ldpc_encode(code_param, data); f = fopen("codeword.bin","wt"); fwrite(f, codeword, "uint8"); fclose(f); s = 1 - 2 * codeword; code_param.symbols_per_frame = length( s ); EsNo = 10^(EsNodB/10); variance = 1/(2*EsNo); noise = sqrt(variance)* randn(1,code_param.symbols_per_frame); rx = s + noise; if nargin == 1 code_param.c_include_file = c_include_file; end [detected_data Niters] = ldpc_decode(rx, code_param, max_iterations, decoder_type); error_positions = xor(detected_data(1:code_param.data_bits_per_frame), data); Nerrs = sum(error_positions); printf("Nerrs = %d\n", Nerrs); end % This version decodes from a file of bits function detected_data = decode_from_file(filename) max_iterations = 100; decoder_type = 0; load('H2064_516_sparse.mat'); HRA = full(HRA); mod_order = 2; f = fopen(filename,"rb"); codeword = fread(f, "uint8")'; fclose(f); r = 1 - 2 * codeword; code_param = ldpc_init(HRA, mod_order); [detected_data Niters] = ldpc_decode(r, code_param, max_iterations, decoder_type); end % plots a BER curve for the LDPC decoder. Takes a while to run, uses parallel cores function plot_curve num_cores = 4; % set this to the number of cores you have load('H2064_516_sparse.mat'); HRA = full(HRA); [Nr Nc] = size(HRA); sim_in.rate = (Nc-Nr)/Nc; sim_in.HRA = HRA; sim_in.mod_order = 2; sim_in.framesize = Nc; sim_in.mod_order = 2; sim_in.Lim_Ferrs = 100; % note we increase number of trials as BER goes down Esvec = [ 0 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0 ]; Ntrials = [ 1E4 1E4 1E4 1E4 1E5 1E5 1E5 1E5 1E5 ]; num_runs = length(Esvec) sim_in_vec(1:num_runs) = sim_in; for i = 1:num_runs sim_in_vec(i).Esvec = Esvec(i); sim_in_vec(i).Ntrials = Ntrials(i); end %sim_out = ldpc5(sim_in_vec(1)); tstart = time(); sim_out = pararrayfun(num_cores, @ldpc5, sim_in_vec); tend = time(); total_bits = sum(Ntrials)*sim_in.framesize; total_secs = tend - tstart; printf("%d bits in %4.1f secs, or %5f bits/s\n", total_bits, total_secs, total_bits/total_secs); for i=1:num_runs Ebvec(i) = sim_out(i).Ebvec; BERvec(i) = sim_out(i).BERvec; end semilogy(Ebvec, BERvec, '+-') xlabel('Eb/N0') ylabel('BER') title(['H2064 516 sparse.mat' ' ' date]) end % Test C encoder function test_c_encoder load('H2064_516_sparse.mat'); HRA = full(HRA); max_iterations = 100; decoder_type = 0; EsNodB = 3; mod_order = 2; frames = 100; EsNo = 10^(EsNodB/10); variance = 1/(2*EsNo); code_param = ldpc_init(HRA, mod_order); data = round(rand(1,frames*code_param.data_bits_per_frame)); f = fopen("data.bin","wt"); fwrite(f, data, "uint8"); fclose(f); % Outboard C encoder system("../src/ldpc_enc data.bin codewords.bin"); % Test with Octave decoder f = fopen("codewords.bin","rb"); codewords = fread(f, "uint8")'; fclose(f); Nerrs = 0; for i=1:frames st = (i-1)*code_param.symbols_per_frame+1; en = st+code_param.symbols_per_frame-1; tx = 1 - 2 * codewords(st:en); noise = sqrt(variance)*randn(1,code_param.symbols_per_frame); rx = tx + noise; [detected_data Niters] = ldpc_decode(rx, code_param, max_iterations, decoder_type); st = (i-1)*code_param.data_bits_per_frame+1; en = st+code_param.data_bits_per_frame-1; error_positions = xor(detected_data(1:code_param.data_bits_per_frame), data(st:en)); Nerrs += sum(error_positions); end printf("Nerrs = %d\n", Nerrs); end function test_c_decoder load('H2064_516_sparse.mat'); HRA = full(HRA); max_iterations = 100; decoder_type = 0; mod_order = 2; frames = 10; EsNodB = 2; sdinput = 1; EsNo = 10^(EsNodB/10); variance = 1/(2*EsNo); code_param = ldpc_init(HRA, mod_order); data = round(rand(1,code_param.data_bits_per_frame*frames)); f = fopen("data.bin","wt"); fwrite(f, data, "uint8"); fclose(f); system("../src/ldpc_enc data.bin codewords.bin"); f = fopen("codewords.bin","rb"); codewords = fread(f, "uint8")'; fclose(f); s = 1 - 2 * codewords; noise = sqrt(variance)*randn(1,code_param.symbols_per_frame*frames); r = s + noise; % calc LLRs frame by frame for i=1:frames st = (i-1)*code_param.symbols_per_frame+1; en = st + code_param.symbols_per_frame-1; llr(st:en) = sd_to_llr(r(st:en)); end % Outboard C decoder if sdinput f = fopen("sd.bin","wb"); fwrite(f, r, "double"); fclose(f); system("../src/ldpc_dec sd.bin data_out.bin --sd"); else f = fopen("llr.bin","wb"); fwrite(f, llr, "double"); fclose(f); system("../src/ldpc_dec llr.bin data_out.bin"); end f = fopen("data_out.bin","rb"); data_out = fread(f, "uint8")'; fclose(f); Nerrs = Nerrs2 = zeros(1,frames); for i=1:frames % Check C decoder data_st = (i-1)*code_param.data_bits_per_frame+1; data_en = data_st+code_param.data_bits_per_frame-1; st = (i-1)*code_param.symbols_per_frame+1; en = st+code_param.data_bits_per_frame-1; data_out_c = data_out(st:en); error_positions = xor(data_out_c, data(data_st:data_en)); Nerrs(i) = sum(error_positions); % Octave decoder st = (i-1)*code_param.symbols_per_frame+1; en = st+code_param.symbols_per_frame-1; [detected_data Niters] = ldpc_decode(r(st:en), code_param, max_iterations, decoder_type); st = (i-1)*code_param.data_bits_per_frame+1; en = st+code_param.data_bits_per_frame-1; data_out_octave = detected_data(1:code_param.data_bits_per_frame); error_positions = xor(data_out_octave, data(st:en)); Nerrs2(i) = sum(error_positions); %printf("%4d ", Niters); end printf("Errors per frame:\nC.....:"); for i=1:frames printf("%4d ", Nerrs(i)); end printf("\nOctave:"); for i=1:frames printf("%4d ", Nerrs2(i)); end printf("\n"); end % Saves a complex vector s to a file "filename" of IQ unsigned 8 bit % chars, same as RTLSDR format. function save_rtlsdr(filename, s) mx = max(abs(s)); re = real(s); im = imag(s); l = length(s); iq = zeros(1,2*l); %iq(1:2:2*l) = 127 + re*(127/mx); %iq(2:2:2*l) = 127 + im*(127/mx); iq(1:2:2*l) = 127 + 32*re; iq(2:2:2*l) = 127 + 32*im; figure(3); clf; plot(iq); title('simulated IQ signal from RTL SDR'); fs = fopen(filename,"wb"); fwrite(fs,iq,"uchar"); fclose(fs); endfunction % Oversamples by a factor of 2 using Octaves resample() function then % uses linear interpolation to achive fractional sample rate function rx_resample_fract = fractional_resample(rx, resample_rate); assert(resample_rate < 2, "keep resample_rate between 0 and 2"); rx_resample2 = resample(rx, 2, 1); l = length(rx_resample2); rx_resample_fract = zeros(1,l); k = 1; step = 2/resample_rate; for i=1:step:l-1 i_low = floor(i); i_high = ceil(i); f = i - i_low; rx_resample_fract(k) = (1-f)*rx_resample2(i_low) + f*rx_resample2(i_high); %printf("i: %f i_low: %d i_high: %d f: %f\n", i, i_low, i_high, f); k++; end rx_resample_fract = rx_resample_fract(1:k-1); endfunction % Using simulated SSTV packet, generate complex fsk mod signals, 8-bit % unsigned IQ for feeding into C demod chain. Can also be used to % generate BER curves. Found bugs in UW size and our use of csdr % re-sampler using this function, and by gradually and carefully % building up the C command line. #{ todo: [X] uncoded BER [X] octave fsk demod [X] use C demod [X] compare uncoded BER to unsigned 8 bit IQ to regular 16-bit [X] generate complex rx signal with noise [X] used cmd line utils to drive demod [X] test with resampler [X] measure effect on PER with coding #} function [n_uncoded_errs n_uncoded_bits] = run_sstv_sim(sim_in, EbNodB) frames = sim_in.frames; demod_type = sim_in.demod_type; % init LDPC code load('H2064_516_sparse.mat'); HRA = full(HRA); max_iterations = 100; decoder_type = 0; mod_order = 2; code_param = ldpc_init(HRA, mod_order); % note fixed frame of bits used for BER testing tx_codeword = gen_sstv_frame; % init FSK modem fsk_horus_as_a_lib = 1; fsk_horus; states = fsk_horus_init_hbr(9600, 8, 1200, 2, length(tx_codeword)); states.df(1:states.M) = 0; states.dA(1:states.M) = 1; states.tx_real = 0; % Octave fsk_mod generates complex valued output % so we can simulate rtl_sdr complex ouput % Set up simulated tx tones to sit in the middle of cdsr passband filt_low_norm = 0.1; filt_high_norm = 0.4; fc = states.Fs*(filt_low_norm + filt_high_norm)/2; %fc = 1800; f1 = fc - states.Rs/2; f2 = fc + states.Rs/2; states.ftx = [f1 f2]; % set up AWGN channel EbNo = 10^(EbNodB/10); variance = states.Fs/(states.Rs*EbNo*states.bitspersymbol); % start simulation ---------------------------------------- tx_bit_stream = []; for i=1:frames % uncomment for different data on each frame %tx_codeword = gen_sstv_frame; tx_bit_stream = [tx_bit_stream tx_codeword]; end printf("%d bits at %d bit/s is a %3.1f second run\n", length(tx_bit_stream), 115200,length(tx_bit_stream)/115200); % modulate and channel model tx = fsk_horus_mod(states, tx_bit_stream); noise_real = sqrt(variance)*randn(length(tx),1); noise_complex = sqrt(variance/2)*(randn(length(tx),1) + j*randn(length(tx),1)); % demodulate ----------------------------------------------------- if demod_type == 1 % Octave demod if states.tx_real rx = tx + noise_real; else rx = tx + noise_complex; end SNRdB = 10*log10(var(tx)/var(noise_complex)); % demodulate frame by frame using Octave demod st = 1; run_frames = floor(length(rx)/states.N); rx_bit_stream = []; rx_sd_stream = []; for f=1:run_frames % extract nin samples from rx sample stream nin = states.nin; en = st + states.nin - 1; if en <= length(rx) % due to nin variations its possible to overrun buffer sf = rx(st:en); st += nin; % demodulate to stream of bits states.f = [f1 f2]; % note that for Octave demod we cheat and use known tone frequencies % allows us to determine if freq offset estimation in C demod is a problem [rx_bits states] = fsk_horus_demod(states, sf); rx_bit_stream = [rx_bit_stream rx_bits]; rx_sd_stream = [rx_sd_stream states.rx_bits_sd]; end end end if demod_type == 2 % baseline C demod if states.tx_real rx = tx + noise_real; else rx = 2*real(tx) + noise_real; end SNRdB = 10*log10(var(tx)/var(noise_real)); rx_scaled = 1000*real(rx); f = fopen("fsk_demod.raw","wb"); fwrite(f, rx_scaled, "short"); fclose(f); system("../build_linux/src/fsk_demod 2X 8 9600 1200 fsk_demod.raw fsk_demod.bin"); f = fopen("fsk_demod.bin","rb"); rx_bit_stream = fread(f, "uint8")'; fclose(f); end if demod_type == 3 % C demod driven by csdr command line kung fu assert(states.tx_real == 0, "need complex signal for this test"); rx = tx + noise_complex; SNRdB = 10*log10(var(tx)/var(noise_real)); save_rtlsdr("fsk_demod.iq", rx); system("cat fsk_demod.iq | csdr convert_u8_f | csdr bandpass_fir_fft_cc 0.1 0.4 0.05 | csdr realpart_cf | csdr convert_f_s16 | ../build_linux/src/fsk_demod 2X 8 9600 1200 - fsk_demod.bin"); f = fopen("fsk_demod.bin","rb"); rx_bit_stream = fread(f, "uint8")'; fclose(f); end if demod_type == 4 % C demod with resampler ....... getting closer to Mark's real time cmd line assert(states.tx_real == 0, "need complex signal for this test"); rx = tx + noise_complex; SNRdB = 10*log10(var(tx)/var(noise_real)); printf("resampling ...\n"); rx_resample_fract = fractional_resample(rx, 1.08331); %rx_resample_fract = fractional_resample(rx_resample_fract, 1/1.08331); save_rtlsdr("fsk_demod_resample.iq", rx_resample_fract); printf("run C cmd line chain ...\n"); % system("cat fsk_demod_resample.iq | csdr convert_u8_f | csdr bandpass_fir_fft_cc 0.1 0.4 0.05 | csdr realpart_cf | csdr convert_f_s16 | ../build_linux/src/fsk_demod 2X 8 9600 1200 - fsk_demod.bin"); system("cat fsk_demod_resample.iq | csdr convert_u8_f | csdr bandpass_fir_fft_cc 0.1 0.4 0.05 | csdr realpart_cf | csdr convert_f_s16 | ../unittest/tsrc - - 0.9230968 | ../build_linux/src/fsk_demod 2X 8 9600 1200 - fsk_demod.bin"); % system("cat fsk_demod_resample.iq | csdr convert_u8_f | csdr bandpass_fir_fft_cc 0.1 0.4 0.05 | csdr realpart_cf | csdr fractional_decimator_ff 1.08331 | csdr convert_f_s16 | ../build_linux/src/fsk_demod 2X 8 9600 1200 - fsk_demod.bin"); f = fopen("fsk_demod.bin","rb"); rx_bit_stream = fread(f, "uint8")'; fclose(f); end if demod_type == 5 % C demod with resampler and use C code to measure PER, in this % test we don't need to run state machine below as C code gives us % the ouputs we need assert(states.tx_real == 0, "need complex signal for this test"); rx = tx + noise_complex; SNRdB = 10*log10(var(tx)/var(noise_real)); printf("fract resampling ...\n"); rx_resample_fract = fractional_resample(rx, 1.08331); save_rtlsdr("fsk_demod_resample.iq", rx_resample_fract); % useful for HackRF %printf("10X resampling ...\n"); %rx_resample_10M = resample(rx_resample_fract, 10, 1); %save_rtlsdr("fsk_demod_10M.iq", rx_resample_10M); printf("run C cmd line chain - uncoded PER\n"); system("cat fsk_demod_resample.iq | csdr convert_u8_f | csdr bandpass_fir_fft_cc 0.1 0.4 0.05 | csdr realpart_cf | csdr convert_f_s16 | ../unittest/tsrc - - 0.9230968 | ../build_linux/src/fsk_demod 2X 8 9600 1200 - - | ../src/drs232 - /dev/null -v"); printf("run C cmd line chain - LDPC coded PER\n"); system("cat fsk_demod_resample.iq | csdr convert_u8_f | csdr bandpass_fir_fft_cc 0.1 0.4 0.05 | csdr realpart_cf | csdr convert_f_s16 | ../unittest/tsrc - - 0.9230968 | ../build_linux/src/fsk_demod 2XS 8 9600 1200 - - | ../src/drs232_ldpc - /dev/null -v"); end if demod_type == 6 % C demod with complex input driven simplfied csdr command line, just measure BER of demod assert(states.tx_real == 0, "need complex signal for this test"); rx = tx + noise_complex; SNRdB = 10*log10(var(tx)/var(noise_real)); save_rtlsdr("fsk_demod.iq", rx); system("cat fsk_demod.iq | csdr convert_u8_f | csdr convert_f_s16 | ../build_linux/src/fsk_demod 2X 8 9600 1200 - fsk_demod.bin C"); f = fopen("fsk_demod.bin","rb"); rx_bit_stream = fread(f, "uint8")'; fclose(f); end if demod_type == 7 % C demod with complex input, measure uncoded and uncoded PER assert(states.tx_real == 0, "need complex signal for this test"); rx = tx + noise_complex; SNRdB = 10*log10(var(tx)/var(noise_real)); save_rtlsdr("fsk_demod.iq", rx); printf("run C cmd line chain - uncoded PER\n"); system("cat fsk_demod.iq | csdr convert_u8_f | csdr convert_f_s16 | ../build_linux/src/fsk_demod 2X 8 9600 1200 - - C | ../src/drs232 - /dev/null -v"); printf("run C cmd line chain - LDPC coded PER\n"); %system("cat fsk_demod.iq | csdr convert_u8_f | csdr convert_f_s16 | ../build_linux/src/fsk_demod 2XS 8 9600 1200 - - C | ../src/drs232_ldpc - /dev/null -v"); system("cat fsk_demod.iq | ../build_linux/src/fsk_demod 2XS 8 9600 1200 - - CU8 | ../src/drs232_ldpc - /dev/null -v"); end if (demod_type != 5) && (demod_type != 7) % state machine. Look for SSTV UW. When found count bit errors over one frame of bits state = "wait for uw"; start_uw_ind = 16*10+1; end_uw_ind = start_uw_ind + 5*10 - 1; uw_rs232 = tx_codeword(start_uw_ind:end_uw_ind); luw = length(uw_rs232); start_frame_ind = end_uw_ind + 1; nbits = length(rx_bit_stream); uw_thresh = 5; n_uncoded_errs = 0; n_uncoded_bits = 0; n_packets_rx = 0; last_i = 0; % might as well include RS232 framing bits in uncoded error count nbits_frame = code_param.data_bits_per_frame*10/8; uw_errs = zeros(1, nbits); for i=luw:nbits uw_errs(i) = sum(xor(rx_bit_stream(i-luw+1:i), uw_rs232)); end for i=luw:nbits next_state = state; if strcmp(state, 'wait for uw') if uw_errs(i) <= uw_thresh next_state = 'count errors'; tx_frame_ind = start_frame_ind; rx_frame_ind = i + 1; n_uncoded_errs_this_frame = 0; %printf("%d %s %s\n", i, state, next_state); if last_i printf("i: %d i-last_i: %d ", i, i-last_i); end end end if strcmp(state, 'count errors') n_uncoded_errs_this_frame += xor(rx_bit_stream(i), tx_codeword(tx_frame_ind)); n_uncoded_bits++; tx_frame_ind++; if tx_frame_ind == (start_frame_ind+nbits_frame) n_uncoded_errs += n_uncoded_errs_this_frame; printf("n_uncoded_errs_this_frame: %d\n", n_uncoded_errs_this_frame); frame_rx232_rx = rx_bit_stream(rx_frame_ind:rx_frame_ind+nbits_frame-1); %tx_codeword(start_frame_ind+1:start_frame_ind+10) %frame_rx232_rx(1:10) sstv_checksum(frame_rx232_rx); last_i = i; n_packets_rx++; next_state = 'wait for uw'; end end state = next_state; end uncoded_ber = n_uncoded_errs/n_uncoded_bits; printf("EbNodB: %4.1f SNRdB: %4.1f pkts: %d bits: %d errs: %d BER: %4.3f\n", EbNodB, SNRdB, n_packets_rx, n_uncoded_bits, n_uncoded_errs, uncoded_ber); figure(2); plot(uw_errs); title('Unique Word Hamming Distance') end endfunction % Function to test flight mode software. Takes a rx stream of % demodulated bits, and locates frames using UW detection. Extracts % data and parity bits. Uses data bits to generate parity bits here % and compare. function compare_parity_bits(rx_bit_stream) nframes = 500; % init LDPC code load('H2064_516_sparse.mat'); HRA = full(HRA); max_iterations = 100; decoder_type = 0; mod_order = 2; code_param = ldpc_init(HRA, mod_order); % generate frame, this will have random bits not related to % rx_stream, however we just use it for the UW tx_codeword = gen_sstv_frame; l = length(tx_codeword); printf("expected rs232 frames codeword length: %d\n", l); % state machine. Look for SSTV UW. When found count bit errors over one frame of bits state = "wait for uw"; start_uw_ind = 16*10+1; end_uw_ind = start_uw_ind + 4*10 - 1; uw_rs232 = tx_codeword(start_uw_ind:end_uw_ind); luw = length(uw_rs232); start_frame_ind = end_uw_ind + 1; nbits = nframes*l; uw_thresh = 5; n_uncoded_errs = 0; n_uncoded_bits = 0; n_packets_rx = 0; last_i = 0; % might as well include RS232 framing bits in uncoded error count uw_errs = luw*ones(1, nbits); for i=luw:nbits uw_errs(i) = sum(xor(rx_bit_stream(i-luw+1:i), uw_rs232)); end frame_start = find(uw_errs < 2)+1; nframes = length(frame_start) for i=1:nframes % double check UW OK st_uw = frame_start(i) - luw; en_uw = frame_start(i) - 1; uw_err_check = sum(xor(rx_bit_stream(st_uw:en_uw), uw_rs232)); %printf("uw_err_check: %d\n", uw_err_check); % strip off rs232 start/stop bits nbits_rs232 = (256+2+65)*10; nbits = (256+2+65)*8; nbits_byte = 10; rx_codeword = zeros(1,nbits); pdb = 1; for k=1:nbits_byte:nbits_rs232 for l=1:8 rx_codeword(pdb) = rx_bit_stream(frame_start(i)-1+k+l); pdb++; end end assert(pdb == (nbits+1)); data_bits = rx_codeword(1:256*8); checksum_bits = rx_codeword(256*8+1:258*8); parity_bits = rx_codeword(258*8+1:258*8+516); padding_bits = rx_codeword(258*8+516+1:258*8+516+1); % stopped here as we found bug lol! end figure(1); clf; plot(uw_errs); title('Unique Word Hamming Distance') figure(2); clf; lframe_start = length(frame_start); plot(frame_start(2:lframe_start)-frame_start(1:lframe_start-1)); %title('Unique Word Hamming Distance') endfunction % Start simulation -------------------------------------------------------- more off; currentdir = pwd; thiscomp = computer; if strcmpi(thiscomp, 'MACI64')==1 if exist('CMLSimulate')==0 cd '/Users/bill/Current/Projects/DLR_FSO/Visit2013_FSO_GEO/cml' addpath '../' % assume the source files stored here CmlStartup % note that this is not in the cml path! disp('added MACI64 path and run CmlStartup') end end if strfind(thiscomp, 'pc-linux-gnu')==8 if exist('LdpcEncode')==0, cd '~/tmp/cml' CmlStartup disp('CmlStartup has been run') % rmpath '/home/bill/cml/mexhelp' % why is this needed? % maybe different path order in octave cf matlab ? end end cd(currentdir) ldpc_fsk_lib; randn('state',1); rand('state',1); % ------------------ select which demo/test to run here --------------- demo = 12; if demo == 1 printf("simple_ut....\n"); data = simple_ut; end if demo == 2 printf("generate C header file....\n"); data = simple_ut("../src/H2064_516_sparse.h"); end if demo == 3 printf("decode_from_file ......\n"); data = simple_ut; detected_data = decode_from_file("codeword.bin"); error_positions = xor( detected_data(1:length(data)), data ); Nerrs = sum(error_positions); printf(" Nerrs = %d\n", Nerrs); end if demo == 4 printf("plot a curve....\n"); plot_curve; end if demo == 5 % generate test data and save to disk [data code_param] = simple_ut; f = fopen("dat_in2064.bin","wb"); fwrite(f, data, "uint8"); fclose(f); % Outboard C encoder system("../src/ldpc_enc dat_in2064.bin dat_op2064.bin"); % Test with Octave decoder detected_data = decode_from_file("dat_op2064.bin"); error_positions = xor(detected_data(1:length(data)), data); Nerrs = sum(error_positions); printf("Nerrs = %d\n", Nerrs); end if demo == 6 test_c_encoder; end if demo == 7 test_c_decoder; end % generates simulated demod soft decision symbols to drive C ldpc decoder with if demo == 8 frames = 100; EsNodB = 3; EsNo = 10^(EsNodB/10); variance = 1/(2*EsNo); frame_rs232 = []; for i=1:frames frame_rs232 = [frame_rs232 gen_sstv_frame]; end % write hard decn version to disk file, useful for fsk_mod input f = fopen("sstv.bin","wb"); fwrite(f, frame_rs232, "char"); fclose(f); % soft decision version (with noise) s = 1 - 2*frame_rs232; noise = sqrt(variance)*randn(1,length(frame_rs232)); r = s + noise; f = fopen("sstv_sd.bin","wb"); fwrite(f, r, "float32"); fclose(f); end if demo == 9 frames = 100; EbNodB = 11; frame_rs232 = []; for i=1:frames frame_rs232 = [frame_rs232 gen_sstv_frame]; end % Use C FSK modulator to generate modulated signal f = fopen("sstv.bin","wb"); fwrite(f, frame_rs232, "char"); fclose(f); system("../build_linux/src/fsk_mod 2 9600 1200 1200 2400 sstv.bin fsk_mod.raw"); % Add some channel noise here in Octave f = fopen("fsk_mod.raw","rb"); tx = fread(f, "short")'; fclose(f); tx_pwr = var(tx); Fs = 9600; Rs=1200; EbNolin = 10 ^ (EbNodB/10); variance = (tx_pwr/2)*states.Fs/(states.Rs*EbNolin*states.bitspersymbol); noise = sqrt(variance)*randn(1,length(tx)); SNRdB = 10*log10(var(tx)/var(noise)); rx = tx + noise; f = fopen("fsk_demod.raw","wb"); tx = fwrite(f, rx, "short"); fclose(f); % Demodulate using C modem and C de-framer/LDPC decoder system("../build_linux/src/fsk_demod 2XS 8 9600 1200 fsk_demod.raw - | ../src/drs232_ldpc - dummy_out.bin"); end % Plots uncoded BER curves for two different SSTV simulations. Used % to compare results with different processing steps as we build up C % command line. BER curves are powerful ways to confirm system is % operating as expected, several bugs were found using this system. if demo == 10 sim_in.frames = 10; EbNodBvec = 7:10; sim_in.demod_type = 3; ber_test1 = []; for i = 1:length(EbNodBvec) [n_uncoded_errs n_uncoded_bits] = run_sstv_sim(sim_in, EbNodBvec(i)); ber_test1(i) = n_uncoded_errs/n_uncoded_bits; end sim_in.demod_type = 4; ber_c = []; for i = 1:length(EbNodBvec) [n_uncoded_errs n_uncoded_bits] = run_sstv_sim(sim_in, EbNodBvec(i)); ber_test2(i) = n_uncoded_errs/n_uncoded_bits; end figure(1); clf; semilogy(EbNodBvec, ber_test1, '+-;first test;') grid; xlabel('Eb/No (dB)') ylabel('BER') hold on; semilogy(EbNodBvec, ber_test2, 'g+-;second test;') legend("boxoff"); hold off; end % Measure PER of complete coded and uncoded system if demo == 11 sim_in.frames = 10; EbNodB = 9; sim_in.demod_type = 7; run_sstv_sim(sim_in, EbNodB); end % Compare parity bits from an off-air stream of demodulated bits % Use something like: % cat ~/Desktop/923096fs_wenet.iq | ../build_linux/src/fsk_demod 2X 8 9600 1200 - fsk_demod.bin CU8 % (note not soft dec mode) if demo == 12 f = fopen("fsk_demod.bin","rb"); rx_bit_stream = fread(f, "uint8")'; fclose(f); compare_parity_bits(rx_bit_stream); end codec2-1.0.1/octave/tfdmdv.m000066400000000000000000000251461412132000500155670ustar00rootroot00000000000000% tfdmdv.m % % Octave script that tests the C port of the FDMDV modem. This script loads % the output of unittest/tfdmdv.c and compares it to the output of the % reference versions of the same functions written in Octave. % % Usage: % % 1/ In codec2-dev/CMakeLists.txt, ensure set(CMAKE_BUILD_TYPE "Debug"), to % enable building the C unittests. Build codec2-dev as per % codec2-dev/README. % % 2/ Run the C side from the Octave directory: % % codec2-dev/octave$ ../build_linux/unittest/tfdmdv % codec2-dev/octave$ ls -l tfdmdv_out.txt % -rw-rw-r-- 1 david david 3419209 Aug 27 10:05 tfdmdv_out.txt % % 3/ Run the Octave side (this script): % % octave:1> tfdmdv % % % Copyright David Rowe 2012 % This program is distributed under the terms of the GNU General Public License % Version 2 % more off format fdmdv; % load modem code autotest; % automatic testing library % init fdmdv modem states and load up a few constants in this scope for convenience f = fdmdv_init; Nc = f.Nc; Nb = f.Nb; M = f.M; Fs = f.Fs; P = f.P; Q = f.Q; % Generate reference vectors using Octave implementation of FDMDV modem global passes = 0; global fails = 0; frames = 35; prev_tx_symbols = ones(Nc+1,1); prev_tx_symbols(Nc+1) = 2; prev_rx_symbols = ones(Nc+1,1); foff_phase_rect = 1; channel = []; channel_count = 0; next_nin = M; sig_est = zeros(Nc+1,1); noise_est = zeros(Nc+1,1); sync = 0; fest_state = 0; fest_timer = 0; sync_mem = zeros(1,f.Nsync_mem); % Octave outputs we want to collect for comparison to C version tx_bits_log = []; tx_symbols_log = []; tx_baseband_log = []; tx_fdm_log = []; pilot_baseband1_log = []; pilot_baseband2_log = []; pilot_lpf1_log = []; pilot_lpf2_log = []; S1_log = []; S2_log = []; foff_coarse_log = []; foff_fine_log = []; foff_log = []; rx_fdm_filter_log = []; rx_filt_log = []; env_log = []; rx_timing_log = []; phase_difference_log = []; rx_symbols_log = []; rx_bits_log = []; sync_bit_log = []; sync_log = []; nin_log = []; sig_est_log = []; noise_est_log = []; % adjust this if the screen is getting a bit cluttered global no_plot_list = [1 2 3 4 5 6 7 8 12 13 14 15 16]; for fr=1:frames % modulator [tx_bits f] = get_test_bits(f, Nc*Nb); tx_bits_log = [tx_bits_log tx_bits]; [tx_symbols f] = bits_to_psk(f, prev_tx_symbols, tx_bits, 'dqpsk'); prev_tx_symbols = tx_symbols; tx_symbols_log = [tx_symbols_log tx_symbols]; [tx_baseband f] = tx_filter(f, tx_symbols); tx_baseband_log = [tx_baseband_log tx_baseband]; [tx_fdm f] = fdm_upconvert(f, tx_baseband); tx_fdm_log = [tx_fdm_log tx_fdm]; % channel nin = next_nin; % nin = M; % when debugging good idea to uncomment this to "open loop" channel = [channel real(tx_fdm)]; channel_count += M; rx_fdm = channel(1:nin); channel = channel(nin+1:channel_count); channel_count -= nin; % demodulator -------------------------------------------- % shift down to complex baseband for i=1:nin f.fbb_phase_rx = f.fbb_phase_rx*f.fbb_rect'; rx_fdm(i) = rx_fdm(i)*f.fbb_phase_rx; end mag = abs(f.fbb_phase_rx); f.fbb_phase_rx /= mag; % sync = 0; % when debugging good idea to uncomment this to "open loop" [pilot prev_pilot f.pilot_lut_index f.prev_pilot_lut_index] = get_pilot(f, f.pilot_lut_index, f.prev_pilot_lut_index, nin); [foff_coarse S1 S2 f] = rx_est_freq_offset(f, rx_fdm, pilot, prev_pilot, nin, !sync); if sync == 0 foff = foff_coarse; end foff_coarse_log = [foff_coarse_log foff_coarse]; pilot_baseband1_log = [pilot_baseband1_log f.pilot_baseband1]; pilot_baseband2_log = [pilot_baseband2_log f.pilot_baseband2]; pilot_lpf1_log = [pilot_lpf1_log f.pilot_lpf1]; pilot_lpf2_log = [pilot_lpf2_log f.pilot_lpf2]; S1_log = [S1_log S1]; S2_log = [S2_log S2]; foff_rect = exp(j*2*pi*foff/Fs); for i=1:nin foff_phase_rect *= foff_rect'; rx_fdm_fcorr(i) = rx_fdm(i)*foff_phase_rect; end [rx_fdm_filter f] = rxdec_filter(f, rx_fdm_fcorr, nin); [rx_filt f] = down_convert_and_rx_filter(f, rx_fdm_filter, nin, M/Q); #{ for i=1:5 printf("[%d] rx_fdm_fcorr: %f %f rx_fdm_filter: %f %f\n", i, real(rx_fdm_fcorr(i)), imag(rx_fdm_fcorr(i)), real(rx_fdm_filter(i)), imag(rx_fdm_filter(i))); end for i=1:5 printf("[%d] rx_fdm_fcorr: %f %f rxdec_lpf_mem: %f %f\n", i, real(rx_fdm_fcorr(i)), imag(rx_fdm_fcorr(i)), real(f.rxdec_lpf_mem(i)), imag(f.rxdec_lpf_mem(i))); end #} rx_filt_log = [rx_filt_log rx_filt]; rx_fdm_filter_log = [rx_fdm_filter_log rx_fdm_filter]; [rx_symbols rx_timing env f] = rx_est_timing(f, rx_filt, nin); env_log = [env_log env]; rx_timing_log = [rx_timing_log rx_timing]; rx_symbols_log = [rx_symbols_log rx_symbols]; next_nin = M; if rx_timing > 2*M/P next_nin += M/P; end if rx_timing < 0; next_nin -= M/P; end nin_log = [nin_log nin]; [rx_bits sync_bit foff_fine pd] = psk_to_bits(f, prev_rx_symbols, rx_symbols, 'dqpsk'); phase_difference_log = [phase_difference_log pd]; foff_fine_log = [foff_fine_log foff_fine]; foff -= 0.5*foff_fine; foff_log = [foff_log foff]; [sig_est noise_est] = snr_update(f, sig_est, noise_est, pd); sig_est_log = [sig_est_log sig_est]; noise_est_log = [noise_est_log noise_est]; prev_rx_symbols = rx_symbols; rx_bits_log = [rx_bits_log rx_bits]; sync_bit_log = [sync_bit_log sync_bit]; % freq est state machine [sync reliable_sync_bit fest_state fest_timer sync_mem] = freq_state(f, sync_bit, fest_state, fest_timer, sync_mem); sync_log = [sync_log sync]; end % Compare to the output from the C version load tfdmdv_out.txt % --------------------------------------------------------------------------------------- % Plot output and test each C function % --------------------------------------------------------------------------------------- % fdmdv_get_test_bits() & bits_to_dqpsk_symbols() n = 28; stem_sig_and_error(1, 211, tx_bits_log_c(1:n), tx_bits_log(1:n) - tx_bits_log_c(1:n), 'tx bits', [1 n -1.5 1.5]) stem_sig_and_error(1, 212, real(tx_symbols_log_c(1:n/2)), real(tx_symbols_log(1:n/2) - tx_symbols_log_c(1:n/2)), 'tx symbols real', [1 n/2 -1.5 1.5]) % fdm_upconvert() plot_sig_and_error(3, 211, real(tx_fdm_log_c), real(tx_fdm_log - tx_fdm_log_c), 'tx fdm real') plot_sig_and_error(3, 212, imag(tx_fdm_log_c), imag(tx_fdm_log - tx_fdm_log_c), 'tx fdm imag') % generate_pilot_lut() plot_sig_and_error(4, 211, real(pilot_lut_c), real(f.pilot_lut - pilot_lut_c), 'pilot lut real') plot_sig_and_error(4, 212, imag(pilot_lut_c), imag(f.pilot_lut - pilot_lut_c), 'pilot lut imag') % rx_est_freq_offset() st=1; en = 5*f.Npilotbaseband; plot_sig_and_error(5, 211, real(pilot_baseband1_log(st:en)), real(pilot_baseband1_log(st:en) - pilot_baseband1_log_c(st:en)), 'pilot baseband1 real' ) plot_sig_and_error(5, 212, real(pilot_baseband2_log(st:en)), real(pilot_baseband2_log(st:en) - pilot_baseband2_log_c(st:en)), 'pilot baseband2 real' ) st=1; en = 5*f.Npilotlpf; plot_sig_and_error(6, 211, real(pilot_lpf1_log(st:en)), real(pilot_lpf1_log(st:en) - pilot_lpf1_log_c(st:en)), 'pilot lpf1 real' ) plot_sig_and_error(6, 212, real(pilot_lpf2_log(st:en)), real(pilot_lpf2_log(st:en) - pilot_lpf2_log_c(st:en)), 'pilot lpf2 real' ) plot_sig_and_error(7, 211, real(S1_log), real(S1_log - S1_log_c), 'S1 real' ) plot_sig_and_error(7, 212, imag(S1_log), imag(S1_log - S1_log_c), 'S1 imag' ) plot_sig_and_error(8, 211, real(S2_log), real(S2_log - S2_log_c), 'S2 real' ) plot_sig_and_error(8, 212, imag(S2_log), imag(S2_log - S2_log_c), 'S2 imag' ) plot_sig_and_error(9, 211, foff_coarse_log, foff_coarse_log - foff_coarse_log_c, 'Coarse Freq Offset' ) plot_sig_and_error(9, 212, foff_fine_log, foff_fine_log - foff_fine_log_c, 'Fine Freq Offset' ) plot_sig_and_error(10, 211, foff_log, foff_log - foff_log_c, 'Freq Offset' ) plot_sig_and_error(10, 212, sync_log, sync_log - sync_log_c, 'Sync & Freq Est Coarse(0) Fine(1)', [1 frames -1.5 1.5] ) plot_sig_and_error(11, 211, real(rx_fdm_filter_log), real(rx_fdm_filter_log - rx_fdm_filter_log_c), 'Rx dec filter real' ) plot_sig_and_error(11, 212, imag(rx_fdm_filter_log), imag(rx_fdm_filter_log - rx_fdm_filter_log_c), 'Rx dec filter imag' ) c=1; plot_sig_and_error(12, 211, real(rx_filt_log(c,:)), real(rx_filt_log(c,:) - rx_filt_log_c(c,:)), 'Rx filt real' ) plot_sig_and_error(12, 212, imag(rx_filt_log(c,:)), imag(rx_filt_log(c,:) - rx_filt_log_c(c,:)), 'Rx filt imag' ) st=1*28; en = 3*28; plot_sig_and_error(14, 211, rx_timing_log, rx_timing_log - rx_timing_log_c, 'Rx Timing' ) stem_sig_and_error(14, 212, sync_bit_log_c, sync_bit_log - sync_bit_log_c, 'Sync bit', [1 n -1.5 1.5]) stem_sig_and_error(15, 211, rx_bits_log_c(st:en), rx_bits_log(st:en) - rx_bits_log_c(st:en), 'RX bits', [1 en-st -1.5 1.5]) stem_sig_and_error(15, 212, nin_log_c, nin_log - nin_log_c, 'nin') c = 12; plot_sig_and_error(16, 211, sig_est_log(c,:), sig_est_log(c,:) - sig_est_log_c(c,:), 'sig est for SNR' ) plot_sig_and_error(16, 212, noise_est_log(c,:), noise_est_log(c,:) - noise_est_log_c(c,:), 'noise est for SNR' ) fr=12; stem_sig_and_error(13, 211, real(rx_symbols_log(:,fr)), real(rx_symbols_log(:,fr) - rx_symbols_log_c(:,fr)), 'rx symbols real' ) stem_sig_and_error(13, 212, imag(rx_symbols_log(:,fr)), imag(rx_symbols_log(:,fr) - rx_symbols_log_c(:,fr)), 'rx symbols imag' ) stem_sig_and_error(17, 211, real(phase_difference_log(:,fr)), real(phase_difference_log(:,fr) - phase_difference_log_c(:,fr)), 'phase difference real' ) stem_sig_and_error(17, 212, imag(phase_difference_log(:,fr)), imag(phase_difference_log(:,fr) - phase_difference_log_c(:,fr)), 'phase difference imag' ) check(tx_bits_log, tx_bits_log_c, 'tx_bits'); check(tx_symbols_log, tx_symbols_log_c, 'tx_symbols'); check(tx_fdm_log, tx_fdm_log_c, 'tx_fdm'); check(f.pilot_lut, pilot_lut_c, 'pilot_lut'); check(f.pilot_coeff, pilot_coeff_c, 'pilot_coeff'); check(pilot_baseband1_log, pilot_baseband1_log_c, 'pilot lpf1'); check(pilot_baseband2_log, pilot_baseband2_log_c, 'pilot lpf2'); check(S1_log, S1_log_c, 'S1'); check(S2_log, S2_log_c, 'S2'); check(foff_coarse_log, foff_coarse_log_c, 'foff_coarse'); check(foff_fine_log, foff_fine_log_c, 'foff_fine'); check(foff_log, foff_log_c, 'foff'); check(rx_fdm_filter_log, rx_fdm_filter_log_c, 'rxdec filter'); check(rx_filt_log, rx_filt_log_c, 'rx filt', 2E-3); check(env_log, env_log_c, 'env'); check(rx_timing_log, rx_timing_log_c, 'rx_timing'); check(rx_symbols_log, rx_symbols_log_c, 'rx_symbols', 2E-3); check(rx_bits_log, rx_bits_log_c, 'rx bits'); check(sync_bit_log, sync_bit_log_c, 'sync bit'); check(sync_log, sync_log_c, 'sync'); check(nin_log, nin_log_c, 'nin'); check(sig_est_log, sig_est_log_c, 'sig_est'); check(noise_est_log, noise_est_log_c, 'noise_est'); printf("\npasses: %d fails: %d\n", passes, fails); codec2-1.0.1/octave/tfmfsk.m000066400000000000000000000330621412132000500155710ustar00rootroot00000000000000% tfsk.m % Author: Brady O'Brien 8 February 2016 % Copyright 2016 David Rowe % % All rights reserved. % % This program is free software; you can redistribute it and/or modify % it under the terms of the GNU Lesser General Public License version 2.1, as % published by the Free Software Foundation. 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 Lesser General Public License % along with this program; if not, see . % Octave script to check c port of mancyfsk/fmfsk against the fmfsk.m % #{ FMFSK Modem automated test instructions: 1. Use cmake to build in debug mode to ensure unittest/tfsk is built: $ cd ~/codec2 $ rm -Rf build_linux && mkdir build_linux $ cd build_linux $ cmake -DCMAKE_BUILD_TYPE=Debug .. $ make 2 - Change tfsk_location below if required 3 - Ensure Octave packages signal and parallel are installed 4 - Start Octave and run tfsk.m. It will perform all tests automatically #} %tfsk executable path/file global tfsk_location = '../build_linux/unittest/tfmfsk'; %Set to 1 for verbose printouts global print_verbose = 0; fmfsk pkg load signal; pkg load parallel; graphics_toolkit('gnuplot'); global mod_pass_fail_maxdiff = 1e-3/5000; function mod = fmfsk_mod_c(Fs,Rs,bits) global tfsk_location; %command to be run by system to launch the modulator command = sprintf('%s M %d %d fsk_mod_ut_bitvec fsk_mod_ut_modvec fmfsk_mod_ut_log.txt',tfsk_location,Fs,Rs); %save input bits into a file bitvecfile = fopen('fsk_mod_ut_bitvec','wb+'); fwrite(bitvecfile,bits,'uint8'); fclose(bitvecfile); %run the modulator system(command); modvecfile = fopen('fsk_mod_ut_modvec','rb'); mod = fread(modvecfile,'single'); fclose(modvecfile); endfunction %Compare 2 vectors, fail if they are not close enough function pass = vcompare(vc,voct,vname,tname,tol,pnum) global print_verbose; %Get delta of vectors dvec = abs(abs(vc)-abs(voct)); %Normalize difference dvec = dvec ./ abs(max(abs(voct))+1e-8); maxdvec = abs(max(dvec)); pass = maxdvec=states.nin ninold = states.nin; [bitbuf,states] = fmfsk_demod(states, modin(1:states.nin)); modin=modin(ninold+1:length(modin)); obits = [obits bitbuf]; o_norm_rx_timing = [o_norm_rx_timing states.norm_rx_timing]; o_symsamp = [o_symsamp states.symsamp]; o_rx_filt = [o_rx_filt states.rx_filt]; end close all pass = 1; % One part-per-thousand allowed on important parameters pass = vcompare(t_rx_filt,o_rx_filt,'rx filt',tname,.001,8) && pass; pass = vcompare(t_norm_rx_timing,o_norm_rx_timing,'norm rx timing',tname,.001,9) && pass; pass = vcompare(t_symsamp,o_symsamp,'symsamp',tname,.001,10) && pass; assert(pass); diffpass = sum(xor(obits,bits'))<4; diffbits = sum(xor(obits,bits')); if diffpass==0 printf('\n***bitcompare test failed test %s diff %d\n\n',tname,sum(xor(obits,bits'))) figure(15) plot(xor(obits,bits')) title(sprintf('Bitcompare failure test %s',tname)) end pass = pass && diffpass; test_stats.pass = pass; test_stats.diff = sum(xor(obits,bits')); test_stats.cbits = bits'; test_stats.obits = obits; endfunction function [dmod,cmod,omod,pass] = fmfsk_mod_test(Fs,Rs,bits,tname,M=2) global mod_pass_fail_maxdiff; %Run the C modulator cmod = fmfsk_mod_c(Fs,Rs,bits); %Set up and run the octave modulator states.M = M; states = fmfsk_init(Fs,Rs); omod = fmfsk_mod(states,bits)'; dmod = cmod-omod; pass = max(dmod)<(mod_pass_fail_maxdiff*length(dmod)); if !pass printf('Mod failed test %s!\n',tname); end endfunction % Random bit modulator test % Pass random bits through the modulators and compare function pass = test_mod_fdvbcfg_randbits rand('state',1); randn('state',1); bits = rand(1,19200)>.5; [dmod,cmod,omod,pass] = fmfsk_mod_test(48000,2400,bits,"mod fdvbcfg randbits"); if(!pass) figure(1) plot(dmod) title("Difference between octave and C mod impl"); end endfunction % run_sim copypasted from fsk_horus.m % simulation of tx and rx side, add noise, channel impairments ---------------------- function stats = tfmfsk_run_sim(EbNodB,timing_offset=0,de=0,of=0,hpf=0,df=0,M=2) global print_verbose; test_frame_mode = 2; frames = 70; %EbNodB = 3; %timing_offset = 0.0; % see resample() for clock offset below %fading = 0; % modulates tx power at 2Hz with 20dB fade depth, % to simulate balloon rotating at end of mission more off rand('state',1); randn('state',1); Fs = 48000; Rbit = 2400; % ---------------------------------------------------------------------- fm_states.pre_emp = 0; fm_states.de_emp = de; fm_states.Ts = Fs/(Rbit*2); fm_states.Fs = Fs; fm_states.fc = Fs/4; fm_states.fm_max = 3E3; fm_states.fd = 5E3; fm_states.output_filter = of; fm_states = analog_fm_init(fm_states); % ---------------------------------------------------------------------- states = fmfsk_init(Fs,Rbit); states.verbose = 0x1; Rs = states.Rs; nsym = states.nsym; Fs = states.Fs; nbit = states.nbit; EbNo = 10^(EbNodB/10); variance = states.Fs/(states.Rb*EbNo); % set up tx signal with payload bits based on test mode if test_frame_mode == 1 % test frame of bits, which we repeat for convenience when BER testing test_frame = round(rand(1, states.nbit)); tx_bits = []; for i=1:frames+1 tx_bits = [tx_bits test_frame]; end end if test_frame_mode == 2 % random bits, just to make sure sync algs work on random data tx_bits = round(rand(1, states.nbit*(frames+1))); end if test_frame_mode == 3 % repeating sequence of all symbols % great for initial test of demod if nothing else works, % look for this pattern in rx_bits % ...10101... tx_bits = zeros(1, states.nbit*(frames+1)); tx_bits(1:2:length(tx_bits)) = 1; end [b, a] = cheby1(4, 1, 300/Fs, 'high'); % 300Hz HPF to simulate FM radios tx_pmod = fmfsk_mod(states, tx_bits); tx = analog_fm_mod(fm_states, tx_pmod); if(timing_offset>0) tx = resample(tx, 2000, 1999); % simulated 1000ppm sample clock offset end %Add frequency drift fdrift = df/Fs; fshift = 2*pi*fdrift*(1:length(tx)); fshift = exp(j*(fshift.^2)); tx = tx.*fshift; noise = sqrt(variance)*randn(length(tx),1); rx = tx + noise'; %Demod by analog fm rx = analog_fm_demod(fm_states, rx); %High-pass filter to simulate the FM radios if hpf>0 rx = filter(b,a,rx); end timing_offset_samples = round(timing_offset*states.Ts); st = 1 + timing_offset_samples; rx_bits_buf = zeros(1,2*nbit); test_name = sprintf("tfmfsk run sim EbNodB:%d frames:%d timing_offset:%d df:%d",EbNodB,frames,timing_offset,df); tstats = fmfsk_demod_xt(Fs,Rbit,rx',test_name,M); pass = tstats.pass; obits = tstats.obits; cbits = tstats.cbits; % Figure out BER of octave and C modems bitcnt = length(tx_bits); rx_bits = obits; ber = 1; ox = 1; for offset = (1:400) nerr = sum(xor(rx_bits(offset:length(rx_bits)),tx_bits(1:length(rx_bits)+1-offset))); bern = nerr/(bitcnt-offset); if(bern < ber) ox = offset; best_nerr = nerr; end ber = min([ber bern]); end offset = ox; bero = ber; ber = 1; rx_bits = cbits; ox = 1; for offset = (1:400) nerr = sum(xor(rx_bits(offset:length(rx_bits)),tx_bits(1:length(rx_bits)+1-offset))); bern = nerr/(bitcnt-offset); if(bern < ber) ox = offset; best_nerr = nerr; end ber = min([ber bern]); end offset = ox; berc = ber; if print_verbose == 1 printf("C BER %f in test %s\n",berc,test_name); printf("Oct BER %f in test %s\n",bero,test_name); end stats.berc = berc; stats.bero = bero; stats.name = test_name; % non-coherent BER theory calculation % It was complicated, so I broke it up ms = 2; ns = (1:ms-1); as = (-1).^(ns+1); bs = (as./(ns+1)); cs = ((ms-1)./ns); ds = ns.*log2(ms); es = ns+1; fs = exp( -(ds./es)*EbNo ); thrncoh = ((ms/2)/(ms-1)) * sum(bs.*((ms-1)./ns).*exp( -(ds./es)*EbNo )); stats.thrncoh = thrncoh; stats.pass = pass; endfunction function pass = ebno_battery_test(timing_offset,drift,hpf,deemp,outfilt) global print_verbose; %Range of EbNodB over which to test ebnodbrange = (8:2:20); ebnodbs = length(ebnodbrange); %Replication of other parameters for parcellfun timingv = repmat(timing_offset ,1,ebnodbs); driftv = repmat(drift ,1,ebnodbs); hpfv = repmat(hpf ,1,ebnodbs); deempv = repmat(deemp ,1,ebnodbs); outfv = repmat(outfilt ,1,ebnodbs); statv = pararrayfun(floor(.75*nproc()),@tfmfsk_run_sim,ebnodbrange,timingv,deempv,outfv,hpfv,driftv); %statv = arrayfun(@tfsk_run_sim,modev,ebnodbrange,timingv,fadingv,dfv,dav,mv); passv = zeros(1,length(statv)); for ii=(1:length(statv)) passv(ii)=statv(ii).pass; if statv(ii).pass printf("Test %s passed\n",statv(ii).name); else printf("Test %s failed\n",statv(ii).name); end end %All pass flags are '1' pass = sum(passv)>=length(passv); %and no tests died pass = pass && length(passv)==ebnodbs; passv; assert(pass) endfunction %Test with and without sample clock offset function pass = test_timing_var(drift,hpf,deemp,outfilt) pass = ebno_battery_test(1,drift,hpf,deemp,outfilt) assert(pass) pass = ebno_battery_test(0,drift,hpf,deemp,outfilt) assert(pass) endfunction %Test with and without 1 Hz/S freq drift function pass = test_drift_var(hpf,deemp,outfilt) pass = test_timing_var(1,hpf,deemp,outfilt) assert(pass) pass = pass && test_timing_var(0,hpf,deemp,outfilt) assert(pass) endfunction function pass = test_fmfsk_battery() pass = test_mod_fdvbcfg_randbits; assert(pass) pass = pass && test_drift_var(1,1,1); assert(pass) if pass printf("***** All tests passed! *****\n"); end endfunction function plot_fmfsk_bers(M=2) %Range of EbNodB over which to test ebnodbrange = (8:14); ebnodbs = length(ebnodbrange); %Replication of other parameters for parcellfun %Turn on all of the impairments timingv = repmat(1 ,1,ebnodbs); driftv = repmat(1 ,1,ebnodbs); hpfv = repmat(1 ,1,ebnodbs); deempv = repmat(1 ,1,ebnodbs); outfv = repmat(1 ,1,ebnodbs); statv = pararrayfun(nproc(),@tfmfsk_run_sim,ebnodbrange,timingv,deempv,outfv,hpfv,driftv); %statv = arrayfun(@tfsk_run_sim,modev,ebnodbrange,timingv,fadingv,dfv,dav,Mv); for ii = (1:length(statv)) stat = statv(ii); berc(ii)=stat.berc; bero(ii)=stat.bero; berinc(ii)=stat.thrncoh; end clf; figure(M) semilogy(ebnodbrange, berinc,sprintf('r;2FSK non-coherent theory;',M)) hold on; semilogy(ebnodbrange, bero ,sprintf('g;Octave ME-FM-FSK Demod;',M)) semilogy(ebnodbrange, berc,sprintf('v;C ME-FM-FSK Demod;',M)) hold off; grid("minor"); axis([min(ebnodbrange) max(ebnodbrange) 1E-5 1]) legend("boxoff"); xlabel("Eb/No (dB)"); ylabel("Bit Error Rate (BER)") endfunction xpass = test_fmfsk_battery plot_fmfsk_bers(2) if xpass printf("***** All tests passed! *****\n"); else printf("***** Some test failed! Look back thorugh output to find failed test *****\n"); end codec2-1.0.1/octave/tfsk.m000066400000000000000000000437531412132000500152560ustar00rootroot00000000000000% tfsk.m % Brady O'Brien 8 January 2016 % David Rowe May 2020 % % Automatic testing of C port of FSK modem by comparing to reference % Octave version. Currently just a subset of tests enabled in order to % run in a reasonable amount of time as ctests, but still trapping any % bit-rot. #{ FSK Modem automated test instructions: 1. Use cmake to build in debug mode to ensure unittest/tfsk is built: $ cd ~/codec2 $ rm -Rf build_linux && mkdir build_linux $ cd build_linux $ cmake -DCMAKE_BUILD_TYPE=Debug .. $ make 2 - Change tfsk_location below if required 3 - Ensure Octave packages are installed 4 - Start Octave and run tfsk.m. It will perform all tests automatically #} % tfsk executable path/file if getenv("PATH_TO_TFSK") global tfsk_location = getenv("PATH_TO_TFSK") printf("setting tfsk_location from env var: %s\n", getenv("PATH_TO_TFSK")); else global tfsk_location = '../build_linux/unittest/tfsk'; end % Set to 1 for verbose printouts global print_verbose = 0; global mod_pass_fail_maxdiff = 1e-3/5000; fsk_horus_as_a_lib=1; fsk_horus; pkg load signal; % not needed unless parallel tests running %pkg load parallel; graphics_toolkit('gnuplot'); function print_result(test_name, result) printf("%s", test_name); for i=1:(40-length(test_name)) printf("."); end printf(": %s\n", result); end function mod = fsk_mod_c(Fs,Rs,f1,fsp,bits,M) global tfsk_location; %command to be run by system to launch the modulator command = sprintf('%s M %d %d %d %d %d 0 fsk_mod_ut_bitvec fsk_mod_ut_modvec fsk_mod_ut_log.txt',tfsk_location,M,f1,fsp,Fs,Rs); %save input bits into a file bitvecfile = fopen('fsk_mod_ut_bitvec','wb+'); fwrite(bitvecfile,bits,'uint8'); fclose(bitvecfile); %run the modulator system(command); modvecfile = fopen('fsk_mod_ut_modvec','rb'); mod = fread(modvecfile,'single'); fclose(modvecfile); endfunction %Compare 2 vectors, fail if they are not close enough function pass = vcompare(vc,voct,vname,tname,tol,pnum) global print_verbose; %Get delta of vectors dvec = abs(abs(vc - voct)); %Normalize difference dvec = dvec ./ abs(max(abs(voct))+1e-8); maxdvec = abs(max(dvec)); pass = maxdvec=states.nin ninold = states.nin; states = est_freq(states, modin(1:states.nin), states.M); [bitbuf,states] = fsk_demod(states, modin(1:states.nin)); if lock_nin states.nin = states.N; end modin=modin(ninold+1:length(modin)); obits = [obits bitbuf]; %Save other parameters o_f1_dc = [o_f1_dc states.f_dc(1,:)]; o_f2_dc = [o_f2_dc states.f_dc(2,:)]; o_f1_int = [o_f1_int states.f_int(1,:)]; o_f2_int = [o_f2_int states.f_int(2,:)]; o_EbNodB = [o_EbNodB states.EbNodB]; o_ppm = [o_ppm states.ppm]; o_rx_timing = [o_rx_timing states.rx_timing]; o_norm_rx_timing = [o_norm_rx_timing states.norm_rx_timing]; o_Sf = [o_Sf states.Sf']; o_f1 = [o_f1 states.f(1)]; o_f2 = [o_f1 states.f(2)]; o_fest = [o_fest states.f]; o_mask = [o_mask states.mask]; o_fest2 = [o_fest2 states.f2]; o_nin = [o_nin states.nin]; if M==4 o_f3_dc = [o_f3_dc states.f_dc(3,:)]; o_f4_dc = [o_f4_dc states.f_dc(4,:)]; o_f3_int = [o_f3_int states.f_int(3,:)]; o_f4_int = [o_f4_int states.f_int(4,:)]; o_f3 = [o_f1 states.f(3)]; o_f4 = [o_f1 states.f(4)]; end end assert(vcompare(o_Sf, t_Sf,'fft est',tname,.001,1)); assert(vcompare(o_fest, t_f_est,'f est',tname,.001,2)); assert(vcompare(o_mask, t_mask,'f2 mask',tname,.001,3)); assert(vcompare(o_fest2, t_f2_est,'f2 est',tname,.001,16)); o_fest2(1:12) t_f2_est(1:12) assert(vcompare(o_f1_dc, t_f1_dc, 'f1 dc', tname,.01,8)); assert(vcompare(o_f2_dc, t_f2_dc, 'f2 dc', tname,.01,9)); assert(vcompare(o_f2_int, t_f2_int, 'f2 int', tname,.01,10)); assert(vcompare(o_f1_int, t_f1_int, 'f1 int', tname,.01,11)); if M==4 assert(vcompare(o_f3_dc, t_f3_dc, 'f3 dc', tname,.01,4)) assert(vcompare(o_f4_dc, t_f4_dc, 'f4 dc', tname,.01,5)); assert(vcompare(o_f3_int, t_f3_int, 'f3 int', tname,.01,6)); assert(vcompare(o_f4_int, t_f4_int, 'f4 int', tname,.01,7)); end assert(vcompare(o_rx_timing, t_rx_timing,'rx timing',tname,.02,3)); % Much larger tolerances on unimportant statistics assert(vcompare(o_ppm , t_ppm, 'ppm', tname,.02,12)); assert(vcompare(o_EbNodB, t_EbNodB,'EbNodB', tname,.02,13)); assert(vcompare(o_nin, t_nin, 'nin', tname,.0001,14)); assert(vcompare(o_norm_rx_timing, t_norm_rx_timing,'norm rx timing',tname,.02,15)); diffpass = sum(xor(obits,bits'))<4; diffbits = sum(xor(obits,bits')); if diffpass==0 printf('\n***bitcompare test failed test %s diff %d\n\n',tname,sum(xor(obits,bits'))) figure(15) plot(xor(obits,bits')) title(sprintf('Bitcompare failure test %s',tname)) end assert(diffpass); test_stats.pass = 1; test_stats.diff = sum(xor(obits,bits')); test_stats.cbits = bits'; test_stats.obits = obits; endfunction function [dmod,cmod,omod,pass] = fsk_mod_test(Fs,Rs,f1,fsp,bits,tname,M=2) global mod_pass_fail_maxdiff; %Run the C modulator cmod = fsk_mod_c(Fs,Rs,f1,fsp,bits,M); %Set up and run the octave modulator states.M = M; states = fsk_horus_init(Fs,Rs,M); states.ftx(1) = f1; states.ftx(2) = f1+fsp; if states.M == 4 states.ftx(3) = f1+fsp*2; states.ftx(4) = f1+fsp*3; end states.dF = 0; omod = fsk_mod(states,bits); dmod = cmod-omod; pass = max(dmod)<(mod_pass_fail_maxdiff*length(dmod)); if !pass printf('Mod failed test %s!\n',tname); end endfunction % Random bit modulator test % Pass random bits through the modulators and compare function pass = test_mod_horuscfg_randbits rand('state',1); randn('state',1); bits = rand(1,10000)>.5; [dmod,cmod,omod,pass] = fsk_mod_test(8000,100,1200,1600,bits,"mod horuscfg randbits"); if(!pass) figure(1) plot(dmod) title("Difference between octave and C mod impl"); end print_result("test_mod_horuscfg_randbits", "OK"); endfunction % Random bit modulator test % Pass random bits through the modulators and compare function pass = test_mod_horuscfgm4_randbits rand('state',1); randn('state',1); bits = rand(1,10000)>.5; [dmod,cmod,omod,pass] = fsk_mod_test(8000,100,1200,1600,bits,"mod horuscfg randbits",4); if(!pass) figure(1) plot(dmod) title("Difference between octave and C mod impl"); end print_result("test_mod_horuscfgm4_randbits", "OK"); endfunction % A big ol' channel impairment tester shamelessly taken from fsk_horus % This throws some channel imparment or another at the C and octave % modem so they may be compared. function stats = tfsk_run_sim(test_frame_mode,EbNodB,timing_offset,fading,df,M=2,frames=50,lock_nin=0) #{ timing_offset [0|1] enable a 1000ppm sample clock offset fading [0|1] modulates tx power at 2Hz with 20dB fade depth, e.g. to simulate balloon rotating at end of mission df tx tone freq drift in Hz/s lock_nin [0|1] locks nin to a constant which makes tests much simpler by breaking feeback loop #} global print_verbose; more off rand('state',1); randn('state',1); % ---------------------------------------------------------------------- % sm2000 config ------------------------ %states = fsk_horus_init(96000, 1200); %states.f1_tx = 4000; %states.f2_tx = 5200; if test_frame_mode == 2 % horus rtty config --------------------- states = fsk_horus_init(8000, 100, M); states.f1_tx = 1200; states.f2_tx = 1600; end if test_frame_mode == 4 % horus rtty config --------------------- states = fsk_horus_init(8000, 100, M); states.f1_tx = 1200; states.f2_tx = 1600; states.tx_bits_file = "horus_tx_bits_rtty.txt"; % Octave file of bits we FSK modulate end if test_frame_mode == 5 % horus binary config --------------------- states = fsk_horus_init(8000, 100, M); states.f1_tx = 1200; states.f2_tx = 1600; %%%states.tx_bits_file = "horus_tx_bits_binary.txt"; % Octave file of bits we FSK modulate states.tx_bits_file = "horus_payload_rtty.txt"; end % ---------------------------------------------------------------------- states.verbose = 0; N = states.N; P = states.P; Rs = states.Rs; nsym = states.nsym; Fs = states.Fs; states.df = df; states.M = M; EbNo = 10^(EbNodB/10); variance = states.Fs/(states.Rs*EbNo*states.bitspersymbol); % set up tx signal with payload bits based on test mode if test_frame_mode == 1 % test frame of bits, which we repeat for convenience when BER testing test_frame = round(rand(1, states.nsym)); tx_bits = []; for i=1:frames+1 tx_bits = [tx_bits test_frame]; end end if test_frame_mode == 2 % random bits, just to make sure sync algs work on random data tx_bits = round(rand(1, states.nbit*(frames+1))); end if test_frame_mode == 3 % ...10101... sequence tx_bits = zeros(1, states.nsym*(frames+1)); tx_bits(1:2:length(tx_bits)) = 1; end if (test_frame_mode == 4) || (test_frame_mode == 5) % load up a horus msg from disk and modulate that test_frame = load(states.tx_bits_file); ltf = length(test_frame); ntest_frames = ceil((frames+1)*nsym/ltf); tx_bits = []; for i=1:ntest_frames tx_bits = [tx_bits test_frame]; end end f1 = states.f1_tx; fsp = states.f2_tx-f1; states.ftx(1) = f1; states.ftx(2) = f1+fsp; if states.M == 4 states.ftx(3) = f1+fsp*2; states.ftx(4) = f1+fsp*3; end tx = fsk_mod(states, tx_bits); if timing_offset tx = resample(tx, 1000, 1001); % simulated 1000ppm sample clock offset end if fading ltx = length(tx); tx = tx .* (1.1 + cos(2*pi*2*(0:ltx-1)/Fs))'; % min amplitude 0.1, -20dB fade, max 3dB end noise = sqrt(variance)*randn(length(tx),1); rx = tx + noise; test_name = sprintf("tfsk run sim EbNodB:%d frames:%d timing_offset:%d fading:%d df:%d",EbNodB,frames,timing_offset,fading,df); tstats = fsk_demod_xt(Fs,Rs,states.f1_tx,fsp,rx,test_name,M,lock_nin); pass = tstats.pass; obits = tstats.obits; cbits = tstats.cbits; % Figure out BER of octave and C modems bitcnt = length(tx_bits); rx_bits = obits; ber = 1; ox = 1; for offset = (1:100) nerr = sum(xor(rx_bits(offset:length(rx_bits)),tx_bits(1:length(rx_bits)+1-offset))); bern = nerr/(bitcnt-offset); if(bern < ber) ox = offset; best_nerr = nerr; end ber = min([ber bern]); end offset = ox; bero = ber; ber = 1; rx_bits = cbits; ox = 1; for offset = (1:100) nerr = sum(xor(rx_bits(offset:length(rx_bits)),tx_bits(1:length(rx_bits)+1-offset))); bern = nerr/(bitcnt-offset); if(bern < ber) ox = offset; best_nerr = nerr; end ber = min([ber bern]); end offset = ox; berc = ber; stats.berc = berc; stats.bero = bero; stats.name = test_name; % coherent BER theory calculation stats.thrcoh = .5*(M-1)*erfc(sqrt( (log2(M)/2) * EbNo )); % non-coherent BER theory calculation % It was complicated, so I broke it up ms = M; ns = (1:ms-1); as = (-1).^(ns+1); bs = (as./(ns+1)); cs = ((ms-1)./ns); ds = ns.*log2(ms); es = ns+1; fs = exp( -(ds./es)*EbNo ); thrncoh = ((ms/2)/(ms-1)) * sum(bs.*((ms-1)./ns).*exp( -(ds./es)*EbNo )); stats.thrncoh = thrncoh; stats.pass = pass; endfunction % run a bunch of tests at a range of EbNo's in parallel function pass = ebno_battery_test(timing_offset,fading,df,M) %Range of EbNodB over which to test ebnodbrange = (5:2:13); ebnodbs = length(ebnodbrange); mode = 2; %Replication of other parameters for parcellfun modev = repmat(mode,1,ebnodbs); timingv = repmat(timing_offset,1,ebnodbs); fadingv = repmat(fading,1,ebnodbs); dfv = repmat(df,1,ebnodbs); mv = repmat(M,1,ebnodbs); statv = pararrayfun(floor(1.25*nproc()),@tfsk_run_sim,modev,ebnodbrange,timingv,fadingv,dfv,mv); passv = zeros(1,length(statv)); for ii=(1:length(statv)) passv(ii)=statv(ii).pass; if statv(ii).pass printf("Test %s passed\n",statv(ii).name); else printf("Test %s failed\n",statv(ii).name); end end %All pass flags are '1' pass = sum(passv)>=length(passv); %and no tests died pass = pass && length(passv)==ebnodbs; passv; assert(pass) endfunction %Test with and without sample clock offset function pass = test_timing_var(df,M) pass = ebno_battery_test(1,0,df,M) assert(pass) pass = pass && ebno_battery_test(0,0,df,M) assert(pass) endfunction %Test with and without 1 Hz/S freq drift function pass = test_drift_var(M) pass = test_timing_var(1,1,M) pass = pass && test_timing_var(0,1,M) assert(pass) endfunction function pass = test_fsk_battery() pass = test_mod_horuscfg_randbits; pass = pass && test_mod_horuscfgm4_randbits; pass = pass && test_drift_var(4); assert(pass) pass = pass && test_drift_var(2); assert(pass) if pass printf("***** All tests passed! *****\n"); end endfunction function plot_fsk_bers(M=2) %Range of EbNodB over which to plot ebnodbrange = (4:13); berc = ones(1,length(ebnodbrange)); bero = ones(1,length(ebnodbrange)); berinc = ones(1,length(ebnodbrange)); beric = ones(1,length(ebnodbrange)); ebnodbs = length(ebnodbrange) mode = 2; %Replication of other parameters for parcellfun modev = repmat(mode,1,ebnodbs); timingv = repmat(1,1,ebnodbs); fadingv = repmat(0,1,ebnodbs); dfv = repmat(1,1,ebnodbs); Mv = repmat(M,1,ebnodbs); statv = pararrayfun(floor(nproc()),@tfsk_run_sim,modev,ebnodbrange,timingv,fadingv,dfv,Mv); %statv = arrayfun(@tfsk_run_sim,modev,ebnodbrange,timingv,fadingv,dfv,Mv); for ii = (1:length(statv)) stat = statv(ii); berc(ii)=stat.berc; bero(ii)=stat.bero; berinc(ii)=stat.thrncoh; beric(ii) = stat.thrcoh; end clf; figure(M) semilogy(ebnodbrange, berinc,sprintf('r;%dFSK non-coherent theory;',M)) hold on; semilogy(ebnodbrange, beric ,sprintf('g;%dFSK coherent theory;',M)) semilogy(ebnodbrange, bero ,sprintf('b;Octave fsk horus %dFSK Demod;',M)) semilogy(ebnodbrange, berc,sprintf('+;C fsk horus %dFSK Demod;',M)) hold off; grid("minor"); axis([min(ebnodbrange) max(ebnodbrange) 1E-5 1]) legend("boxoff"); xlabel("Eb/No (dB)"); ylabel("Bit Error Rate (BER)") endfunction % We kick off tests here ------------------------------------------------------ pass = 0; ntests = 0; pass += test_mod_horuscfg_randbits; ntests++; pass += test_mod_horuscfgm4_randbits; ntests++; stats = tfsk_run_sim(test_frame_mode=2,EbNodB=5,timing_offset=0,fading=0,df=1,M=4,frames=10,lock_nin=1); ntests++; if stats.pass print_result("Demod 10 frames nin locked", "OK"); pass += stats.pass; end stats = tfsk_run_sim(test_frame_mode=2,EbNodB=5,timing_offset=1,fading=0,df=1,M=4,frames=10,lock_nin=0); ntests++; if stats.pass print_result("Demod 10 frames", "OK"); pass += stats.pass; end printf("tests: %d passed: %d ", ntests, pass); if ntests == pass printf("PASS\n"); else printf("FAIL\n"); end codec2-1.0.1/octave/tfsk_2400a.m000066400000000000000000000445121412132000500160560ustar00rootroot00000000000000% tfsk.m % Author: Brady O'Brien 8 January 2016 % Copyright 2016 David Rowe % % All rights reserved. % % This program is free software; you can redistribute it and/or modify % it under the terms of the GNU Lesser General Public License version 2.1, as % published by the Free Software Foundation. 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 Lesser General Public License % along with this program; if not, see . % Octave script to check c port of fsk_horus against the fsk_horus.m % % [X] - Functions to wrap around fsk_mod and fsk_demod executables % [X] - fsk_mod % [X] - fsk_demod % [X] - Functions to wrap around octave and c implementations, pass % same dataset, compare outputs, and give clear go/no-go % [X] - fsk_mod_test % [X] - fsk_demod_test % [X] - Port of run_sim and EbNodB curve test battery % [X] - Extract and compare more parameters from demod % [X] - Run some tests in parallel #{ FSK Modem automated test instructions: 1. Use cmake to build in debug mode to ensure unittest/tfsk is built: $ cd ~/codec2 $ rm -Rf build_linux && mkdir build_linux $ cd build_linux $ cmake -DCMAKE_BUILD_TYPE=Debug .. $ make 2 - Change tfsk_location below if required 3 - Ensure Octave packages signal and parallel are installed 4 - Start Octave and run tfsk_2400a.m. It will perform all tests automatically #} %tfsk executable path/file global tfsk_location = '../build_linux/unittest/tfsk'; %Set to 1 for verbose printouts global print_verbose = 0; fsk_horus_as_a_lib = 1; % make sure calls to test functions at bottom are disabled %fsk_horus_2fsk; fsk_horus pkg load signal; pkg load parallel; graphics_toolkit('gnuplot'); global mod_pass_fail_maxdiff = 1e-3/5000; function mod = fsk_mod_c(Fs,Rs,f1,fsp,bits,M) global tfsk_location; %command to be run by system to launch the modulator command = sprintf('%s MX %d %d %d %d %d fsk_mod_ut_bitvec fsk_mod_ut_modvec fsk_mod_ut_log.txt',tfsk_location,M,f1,fsp,Fs,Rs); %save input bits into a file bitvecfile = fopen('fsk_mod_ut_bitvec','wb+'); fwrite(bitvecfile,bits,'uint8'); fclose(bitvecfile); %run the modulator system(command); modvecfile = fopen('fsk_mod_ut_modvec','rb'); mod = fread(modvecfile,'single'); fclose(modvecfile); endfunction %Compare 2 vectors, fail if they are not close enough function pass = vcompare(vc,voct,vname,tname,tol,pnum) global print_verbose; %Get delta of vectors dvec = abs(abs(vc)-abs(voct)); %Normalize difference dvec = dvec ./ abs(max(abs(voct))+1e-8); maxdvec = abs(max(dvec)); pass = maxdvec=states.nin ninold = states.nin; states = est_freq(states, modin(1:states.nin), states.M); [bitbuf,states] = fsk_horus_demod(states, modin(1:states.nin)); modin=modin(ninold+1:length(modin)); obits = [obits bitbuf]; %Save other parameters o_f1_dc = [o_f1_dc states.f_dc(1,1:states.Nmem-Ts/P)]; o_f2_dc = [o_f2_dc states.f_dc(2,1:states.Nmem-Ts/P)]; o_f1_int = [o_f1_int states.f_int(1,:)]; o_f2_int = [o_f2_int states.f_int(2,:)]; o_EbNodB = [o_EbNodB states.EbNodB]; o_ppm = [o_ppm states.ppm]; o_rx_timing = [o_rx_timing states.rx_timing]; o_norm_rx_timing = [o_norm_rx_timing states.norm_rx_timing]; o_Sf = [o_Sf states.Sf']; o_f1 = [o_f1 states.f(1)]; o_f2 = [o_f1 states.f(2)]; o_fest = [o_fest states.f]; o_nin = [o_nin states.nin]; if M==4 o_f3_dc = [o_f3_dc states.f_dc(3,1:states.Nmem-Ts/P)]; o_f4_dc = [o_f4_dc states.f_dc(4,1:states.Nmem-Ts/P)]; o_f3_int = [o_f3_int states.f_int(3,:)]; o_f4_int = [o_f4_int states.f_int(4,:)]; o_f3 = [o_f1 states.f(3)]; o_f4 = [o_f1 states.f(4)]; end end %close all pass = 1; pass = vcompare(o_Sf, t_fft_est(1:length(o_Sf)),'fft est',tname,1,1) && pass; pass = vcompare(o_fest, t_f_est,'f est',tname,1,2) && pass; pass = vcompare(o_rx_timing, t_rx_timing,'rx timing',tname,1,3) && pass; if M==4 pass = vcompare(o_f3_dc, t_f3_dc, 'f3 dc', tname,1,4) && pass; pass = vcompare(o_f4_dc, t_f4_dc, 'f4 dc', tname,1,5) && pass; pass = vcompare(o_f3_int, t_f3_int, 'f3 int', tname,1,6) && pass; pass = vcompare(o_f4_int, t_f4_int, 'f4 int', tname,1,7) && pass; end pass = vcompare(o_f1_dc, t_f1_dc, 'f1 dc', tname,1,8) && pass; pass = vcompare(o_f2_dc, t_f2_dc, 'f2 dc', tname,1,9) && pass; pass = vcompare(o_f2_int, t_f2_int, 'f2 int', tname,1,10) && pass; pass = vcompare(o_f1_int, t_f1_int, 'f1 int', tname,1,11) && pass; pass = vcompare(o_ppm , t_ppm, 'ppm', tname,1,12) && pass; pass = vcompare(o_EbNodB, t_EbNodB,'EbNodB', tname,1,13) && pass; pass = vcompare(o_nin, t_nin, 'nin', tname,1,14) && pass; pass = vcompare(o_norm_rx_timing, t_norm_rx_timing,'norm rx timing',tname,1,15) && pass; diffpass = sum(xor(obits,bits'))<5; diffbits = sum(xor(obits,bits')); if print_verbose == 1 printf('%d bit diff in test %s\n',diffbits,tname); end if diffpass==0 printf('\n***bitcompare test failed test %s diff %d\n\n',tname,sum(xor(obits,bits'))) figure(15) plot(xor(obits,bits')) title(sprintf('Bitcompare failure test %s',tname)) end pass = pass && diffpass; assert(pass); test_stats.pass = pass; test_stats.diff = sum(xor(obits,bits')); test_stats.cbits = bits'; test_stats.obits = obits; endfunction function [dmod,cmod,omod,pass] = fsk_mod_test(Fs,Rs,f1,fsp,bits,tname,M=2) global mod_pass_fail_maxdiff; %Run the C modulator cmod = fsk_mod_c(Fs,Rs,f1,fsp,bits,M); %Set up and run the octave modulator states.M = M; states = fsk_horus_init_hbr(Fs,10,Rs,M); states.ftx(1) = f1; states.ftx(2) = f1+fsp; if states.M == 4 states.ftx(3) = f1+fsp*2; states.ftx(4) = f1+fsp*3; end states.dA = [1 1 1 1]; states.dF = 0; omod = fsk_horus_mod(states,bits); dmod = cmod-omod; pass = max(dmod)<(mod_pass_fail_maxdiff*length(dmod)); if !pass printf('Mod failed test %s!\n',tname); end endfunction % Random bit modulator test % Pass random bits through the modulators and compare function pass = test_mod_2400a_randbits rand('state',1); randn('state',1); bits = rand(1,96000)>.5; [dmod,cmod,omod,pass] = fsk_mod_test(48000,1200,1200,1200,bits,"mod 2400a randbits",4); if(!pass) figure(1) plot(dmod) title("Difference between octave and C mod impl"); end endfunction % A big ol' channel impairment tester % Shamlessly taken from fsk_horus % This throws some channel imparment or another at the C and octave modem so they % may be compared. function stats = tfsk_run_sim(test_frame_mode,EbNodB,timing_offset,fading,df,dA,M=2) global print_verbose; frames = 190; %EbNodB = 10; %timing_offset = 2.0; % see resample() for clock offset below %fading = 0; % modulates tx power at 2Hz with 20dB fade depth, % to simulate balloon rotating at end of mission %df = 0; % tx tone freq drift in Hz/s %dA = 1; % amplitude imbalance of tones (note this affects Eb so not a gd idea) more off rand('state',10); randn('state',10); % ---------------------------------------------------------------------- % sm2000 config ------------------------ %states = fsk_horus_init(96000, 1200); %states.f1_tx = 4000; %states.f2_tx = 5200; if test_frame_mode == 2 % 2400A config states = fsk_horus_init_hbr(48000,10, 1200, M); states.f1_tx = 1200; states.f2_tx = 2400; states.f3_tx = 3600; states.f4_tx = 4800; states.ftx(1) = 1200; states.ftx(2) = 2400; states.ftx(3) = 3600; states.ftx(4) = 4800; end if test_frame_mode == 4 % horus rtty config --------------------- states = fsk_horus_init_hbr(48000,10, 1200, M); states.f1_tx = 1200; states.f2_tx = 2400; states.f3_tx = 3600; states.f4_tx = 4800; states.ftx(1) = 1200; states.ftx(2) = 2400; states.ftx(3) = 3600; states.ftx(4) = 4800; states.tx_bits_file = "horus_tx_bits_rtty.txt"; % Octave file of bits we FSK modulate end if test_frame_mode == 5 % horus binary config --------------------- states = fsk_horus_init_hbr(48000,10, 1200, M); states.f1_tx = 1200; states.f2_tx = 2400; states.f3_tx = 3600; states.f4_tx = 4800; states.ftx(1) = 1200; states.ftx(2) = 2400; states.ftx(3) = 3600; states.ftx(4) = 4800; %%%states.tx_bits_file = "horus_tx_bits_binary.txt"; % Octave file of bits we FSK modulate states.tx_bits_file = "horus_payload_rtty.txt"; end % ---------------------------------------------------------------------- states.verbose = 0;%x1; N = states.N; P = states.P; Rs = states.Rs; nsym = states.nsym; Fs = states.Fs; states.df = df; states.dA = [dA dA dA dA]; states.M = M; EbNo = 10^(EbNodB/10); variance = states.Fs/(states.Rs*EbNo*states.bitspersymbol); % set up tx signal with payload bits based on test mode if test_frame_mode == 1 % test frame of bits, which we repeat for convenience when BER testing test_frame = round(rand(1, states.nsym)); tx_bits = []; for i=1:frames+1 tx_bits = [tx_bits test_frame]; end end if test_frame_mode == 2 % random bits, just to make sure sync algs work on random data tx_bits = round(rand(1, states.nbit*(frames+1))); end if test_frame_mode == 3 % ...10101... sequence tx_bits = zeros(1, states.nsym*(frames+1)); tx_bits(1:2:length(tx_bits)) = 1; end if (test_frame_mode == 4) || (test_frame_mode == 5) % load up a horus msg from disk and modulate that test_frame = load(states.tx_bits_file); ltf = length(test_frame); ntest_frames = ceil((frames+1)*nsym/ltf); tx_bits = []; for i=1:ntest_frames tx_bits = [tx_bits test_frame]; end end f1 = states.f1_tx; fsp = states.f2_tx-f1; states.dA = [dA dA dA dA]; states.ftx(1) = f1; states.ftx(2) = f1+fsp; if states.M == 4 states.ftx(3) = f1+fsp*2; states.ftx(4) = f1+fsp*3; end tx = fsk_horus_mod(states, tx_bits); if timing_offset tx = resample(tx, 1000, 1001); % simulated 1000ppm sample clock offset end if fading ltx = length(tx); tx = tx .* (1.1 + cos(2*pi*2*(0:ltx-1)/Fs))'; % min amplitude 0.1, -20dB fade, max 3dB end noise = sqrt(variance)*randn(length(tx),1); rx = tx + noise; test_name = sprintf("tfsk EbNodB:%d frames:%d timing_offset:%d fading:%d df:%d",EbNodB,frames,timing_offset,fading,df); tstats = fsk_demod_xt(Fs,Rs,states.f1_tx,fsp,rx,test_name,M); pass = tstats.pass; obits = tstats.obits; cbits = tstats.cbits; stats.name = test_name; if tstats.pass printf("Test %s passed\n",test_name); else printf("Test %s failed\n",test_name); end % Figure out BER of octave and C modems bitcnt = length(tx_bits); rx_bits = obits; ber = 1; ox = 1; for offset = (1:100) nerr = sum(xor(rx_bits(offset:length(rx_bits)),tx_bits(1:length(rx_bits)+1-offset))); bern = nerr/(bitcnt-offset); if(bern < ber) ox = offset; best_nerr = nerr; end ber = min([ber bern]); end offset = ox; bero = ber; ber = 1; rx_bits = cbits; ox = 1; for offset = (1:100) nerr = sum(xor(rx_bits(offset:length(rx_bits)),tx_bits(1:length(rx_bits)+1-offset))); bern = nerr/(bitcnt-offset); if(bern < ber) ox = offset; best_nerr = nerr; end ber = min([ber bern]); end offset = ox; berc = ber; stats.berc = berc; stats.bero = bero; % coherent BER theory calculation if print_verbose == 1 printf("C BER: %f Oct BER: %f Test %s\n",berc,bero,test_name); end stats.thrcoh = .5*(M-1)*erfc(sqrt( (log2(M)/2) * EbNo )); % non-coherent BER theory calculation % It was complicated, so I broke it up ms = M; ns = (1:ms-1); as = (-1).^(ns+1); bs = (as./(ns+1)); cs = ((ms-1)./ns); ds = ns.*log2(ms); es = ns+1; fs = exp( -(ds./es)*EbNo ); thrncoh = ((ms/2)/(ms-1)) * sum(bs.*((ms-1)./ns).*exp( -(ds./es)*EbNo )); stats.thrncoh = thrncoh; stats.pass = pass; endfunction function pass = ebno_battery_test(timing_offset,fading,df,dA,M) %Range of EbNodB over which to test ebnodbrange = fliplr(5:2:13); ebnodbs = length(ebnodbrange); mode = 2; %Replication of other parameters for parcellfun modev = repmat(mode,1,ebnodbs); timingv = repmat(timing_offset,1,ebnodbs); fadingv = repmat(fading,1,ebnodbs); dfv = repmat(df,1,ebnodbs); dav = repmat(dA,1,ebnodbs); mv = repmat(M,1,ebnodbs); statv = pararrayfun(floor(1.25*nproc()),@tfsk_run_sim,modev,ebnodbrange,timingv,fadingv,dfv,dav,mv); %statv = arrayfun(@tfsk_run_sim,modev,ebnodbrange,timingv,fadingv,dfv,dav,mv); passv = zeros(1,length(statv)); for ii=(1:length(statv)) passv(ii)=statv(ii).pass; if statv(ii).pass printf("Test %s passed\n",statv(ii).name); else printf("Test %s failed\n",statv(ii).name); end end %All pass flags are '1' pass = sum(passv)>=length(passv); %and no tests died pass = pass && length(passv)==ebnodbs; passv; assert(pass) endfunction %Test with and without sample clock offset function pass = test_timing_var(df,dA,M) pass = ebno_battery_test(1,0,df,dA,M) assert(pass) pass = pass && ebno_battery_test(0,0,df,dA,M) assert(pass) endfunction %Test with and without 1 Hz/S freq drift function pass = test_drift_var(M) pass = test_timing_var(1,1,M) assert(pass) pass = pass && test_timing_var(0,1,M) assert(pass) endfunction function pass = test_fsk_battery() pass = 1; pass = pass && test_mod_2400a_randbits; assert(pass) pass = pass && test_drift_var(4); assert(pass) if pass printf("***** All tests passed! *****\n"); end endfunction function plot_fsk_bers(M=2) %Range of EbNodB over which to plot ebnodbrange = (4:13); berc = ones(1,length(ebnodbrange)); bero = ones(1,length(ebnodbrange)); berinc = ones(1,length(ebnodbrange)); beric = ones(1,length(ebnodbrange)); ebnodbs = length(ebnodbrange) mode = 2; %Replication of other parameters for parcellfun modev = repmat(mode,1,ebnodbs); timingv = repmat(1,1,ebnodbs); fadingv = repmat(0,1,ebnodbs); dfv = repmat(1,1,ebnodbs); dav = repmat(1,1,ebnodbs); Mv = repmat(M,1,ebnodbs); statv = pararrayfun(floor(nproc()),@tfsk_run_sim,modev,ebnodbrange,timingv,fadingv,dfv,dav,Mv); %statv = arrayfun(@tfsk_run_sim,modev,ebnodbrange,timingv,fadingv,dfv,dav,Mv); for ii = (1:length(statv)) stat = statv(ii); berc(ii)=stat.berc; bero(ii)=stat.bero; berinc(ii)=stat.thrncoh; beric(ii) = stat.thrcoh; end clf; figure(M) semilogy(ebnodbrange, berinc,sprintf('r;%dFSK non-coherent theory;',M)) hold on; semilogy(ebnodbrange, beric ,sprintf('g;%dFSK coherent theory;',M)) semilogy(ebnodbrange, bero ,sprintf('b;Octave fsk horus %dFSK Demod;',M)) semilogy(ebnodbrange, berc,sprintf('+;C fsk horus %dFSK Demod;',M)) hold off; grid("minor"); axis([min(ebnodbrange) max(ebnodbrange) 1E-5 1]) legend("boxoff"); xlabel("Eb/No (dB)"); ylabel("Bit Error Rate (BER)") endfunction xpass = test_fsk_battery %plot_fsk_bers(2) plot_fsk_bers(4) if xpass printf("***** All tests passed! *****\n"); else printf("***** Some test failed! Look back thorugh output to find failed test *****\n"); end codec2-1.0.1/octave/tnewamp1.m000066400000000000000000000172061412132000500160350ustar00rootroot00000000000000% tnewamp1.m % % Copyright David Rowe 2017 % This program is distributed under the terms of the GNU General Public License % Version 2 #{ Octave script to compare Octave and C versions of newamp1 processing, in order to test C port. c2sim -> dump files -> $ ../build_linux/unittest/tnewamp1 -> octave:1> tnewamp1 Usage: 1/ build codec2 with -DDUMP - see codec2-dev/README 2/ Generate dump files using c2sim (just need to do this once) $ cd codec2-dev/build_linux/src $ ./c2sim ../../raw/hts1a.raw --phase0 --postfilter --dump hts1a --lpc 10 --dump_pitch_e hts1a_pitche.txt 3/ Run C version which generates a file of Octave test vectors as output: $ cd codec2-dev/build_linux/unittest $ ./tnewamp1 ../../raw/hts1a.raw 4/ Run Octave script to generate Octave test vectors and compare with C. octave:1> tnewamp1("../build_linux/src/hts1a") 5/ Optionally listen to output ~/codec2-dev/build_linux/src$ ./c2sim ../../raw/hts1a.raw --phase0 --postfilter \ --amread hts1a_am.out --hmread hts1a_hm.out \ --Woread hts1a_Wo.out --hand_voicing hts1a_v.txt -o - \ | play -q -t raw -r 8000 -s -2 - #} function tnewamp1(input_prefix, path_to_unittest="../build_linux/unittest/") printf("starting tnewamp1.c input_prefix: %s\n", input_prefix); visible_flag = 'off'; newamp_700c; autotest; more off; max_amp = 80; postfilter = 0; % optional postfiler that runs on Am, not used atm synth_phase = 1; if nargin == 1 output_prefix = input_prefix; end model_name = strcat(input_prefix,"_model.txt"); model = load(model_name); [frames nc] = size(model); voicing_name = strcat(input_prefix,"_pitche.txt"); voicing = zeros(1,frames); if exist(voicing_name, "file") == 2 pitche = load(voicing_name); voicing = pitche(:, 3); end % Load in C vectors and compare ----------------------------------------- load(sprintf("%s/tnewamp1_out.txt", path_to_unittest)); K = 20; [frames tmp] = size(rate_K_surface_c); [rate_K_surface sample_freqs_kHz] = resample_const_rate_f_mel(model(1:frames,:), K); melvq; load train_120_1.txt; load train_120_2.txt; train_120_vq(:,:,1)= train_120_1; train_120_vq(:,:,2)= train_120_2; m=5; m=5; eq = zeros(1,K); for f=1:frames mean_f(f) = mean(rate_K_surface(f,:)); rate_K_surface_no_mean(f,:) = rate_K_surface(f,:) - mean_f(f); [rate_K_vec eq] = front_eq(rate_K_surface_no_mean(f,:), eq); rate_K_surface_no_mean(f,:) = rate_K_vec; end [res rate_K_surface_no_mean_ ind] = mbest(train_120_vq, rate_K_surface_no_mean, m); for f=1:frames rate_K_surface_no_mean_(f,:) = post_filter(rate_K_surface_no_mean_(f,:), sample_freqs_kHz, 1.5); end rate_K_surface_ = zeros(frames, K); interpolated_surface_ = zeros(frames, K); energy_q = create_energy_q; M = 4; for f=1:frames [mean_f_ indx] = quantise(energy_q, mean_f(f)); indexes(f,3) = indx - 1; rate_K_surface_(f,:) = rate_K_surface_no_mean_(f,:) + mean_f_; end % simulated decoder % break into segments of M frames. We have 2 samples spaced M apart % and interpolate the rest. Nfft_phase = 128; % note this needs to be 512 (FFT_ENC in codec2 if using --awread) % with --hmread 128 is preferred as less memory/CPU model_ = zeros(frames, max_amp+2); voicing_ = zeros(1,frames); Aw = zeros(frames, Nfft_phase); H = zeros(frames, max_amp); model_(1,1) = Wo_left = 2*pi/100; voicing_left = 0; left_vec = zeros(1,K); % decoder runs on every M-th frame, 25Hz frame rate, offset at % start is to minimise processing delay (thanks Jeroen!) for f=M:M:frames if voicing(f) index = encode_log_Wo(model(f,1), 6); if index == 0 index = 1; end model_(f,1) = decode_log_Wo(index, 6); else model_(f,1) = 2*pi/100; end Wo_right = model_(f,1); voicing_right = voicing(f); [Wo_ avoicing_] = interp_Wo_v(Wo_left, Wo_right, voicing_left, voicing_right); #{ for i=1:4 fprintf(stderr, " Wo: %4.3f L: %d v: %d\n", Wo_(i), floor(pi/Wo_(i)), avoicing_(i)); end fprintf(stderr," rate_K_vec: "); for i=1:5 fprintf(stderr,"%5.3f ", rate_K_surface_(f,i)); end fprintf(stderr,"\n"); #} if f > M model_(f-M:f-1,1) = Wo_; voicing_(f-M:f-1) = avoicing_; model_(f-M:f-1,2) = floor(pi ./ model_(f-M:f-1,1)); % calculate L for each interpolated Wo end right_vec = rate_K_surface_(f,:); if f > M sample_points = [f-M f]; resample_points = f-M:f-1; for k=1:K interpolated_surface_(resample_points,k) = interp_linear(sample_points, [left_vec(k) right_vec(k)], resample_points); end for k=f-M:f-1 model_(k,:) = resample_rate_L(model_(k,:), interpolated_surface_(k,:), sample_freqs_kHz); Aw(k,:) = determine_phase(model_, k, Nfft_phase); for m=1:model_(k,2) b = round(m*model_(k,1)*Nfft_phase/(2*pi)); % map harmonic centre to DFT bin H(k,m) = exp(j*Aw(k, b+1)); end end end % update for next time Wo_left = Wo_right; voicing_left = voicing_right; left_vec = right_vec; end f = figure(1); clf; mesh(angle(H)); f = figure(2); clf; mesh(angle(H_c(:,1:max_amp))); f = figure(3); clf; mesh(abs(H - H_c(:,1:max_amp))); passes = 0; tests = 0; passes += check(eq, eq_c, 'Equaliser', 0.01); tests++; passes += check(rate_K_surface, rate_K_surface_c, 'rate_K_surface', 0.01); tests++; passes += check(mean_f, mean_c, 'mean', 0.01); tests++; passes += check(rate_K_surface_, rate_K_surface__c, 'rate_K_surface_', 0.01); tests++; passes += check(interpolated_surface_, interpolated_surface__c, 'interpolated_surface_', 0.01); tests++; passes += check(model_(:,1), model__c(:,1), 'interpolated Wo_', 0.001); tests++; passes += check(voicing_, voicing__c, 'interpolated voicing'); tests++; passes += check(model_(:,3:max_amp+2), model__c(:,3:max_amp+2), 'rate L Am surface ', 0.1); tests++; passes += check(H, H_c(:,1:max_amp), 'phase surface'); tests++; printf("passes: %d fails: %d\n", passes, tests - passes); #{ % Save to disk to check synthesis is OK with c2sim output_prefix = input_prefix; Am_out_name = sprintf("%s_am.out", output_prefix); fam = fopen(Am_out_name,"wb"); Wo_out_name = sprintf("%s_Wo.out", output_prefix); fWo = fopen(Wo_out_name,"wb"); Aw_out_name = sprintf("%s_aw.out", output_prefix); faw = fopen(Aw_out_name,"wb"); Hm_out_name = sprintf("%s_hm.out", output_prefix); fhm = fopen(Hm_out_name,"wb"); printf("Generating files for c2sim: "); for f=1:frames printf(".", f); Wo = model_(f,1); L = min([model_(f,2) max_amp-1]); Am = model_(f,3:(L+2)); Am_ = zeros(1,2*max_amp); Am_(2:L) = Am(1:L-1); fwrite(fam, Am_, "float32"); fwrite(fWo, Wo, "float32"); % Note we send opposite phase as c2sim expects phase of LPC % analysis filter, just a convention based on historical % development of Codec 2 Aw1 = zeros(1, Nfft_phase*2); Aw1(1:2:Nfft_phase*2) = cos(Aw(f,:)); Aw1(2:2:Nfft_phase*2) = -sin(Aw(f,:)); fwrite(faw, Aw1, "float32"); Hm = zeros(1, 2*2*max_amp); for m=1:L Hm(2*m+1) = real(H(f,m)); Hm(2*m+2) = imag(H(f,m)); end fwrite(fhm, Hm, "float32"); end fclose(fam); fclose(fWo); fclose(faw); fclose(fhm); v_out_name = sprintf("%s_v.txt", output_prefix); fv = fopen(v_out_name,"wt"); for f=1:length(voicing__c) fprintf(fv,"%d\n", voicing__c(f)); end fclose(fv); #} endfunction codec2-1.0.1/octave/tofdm.m000066400000000000000000000244551412132000500154160ustar00rootroot00000000000000% tofdm.m % David Rowe and Steve Sampson June 2017 % % Octave script for comparing Octave and C versions of OFDM modem % % If running from the Octave command line a good idea to clear globals before % each run: % % octave> clear; tofdm; % ------------------------------------------------------------------ Nframes = 10; sample_clock_offset_ppm = 100; foff_hz = 0.5; more off; format; ofdm_lib; autotest; ldpc global passes = 0; global fails = 0; % attempt to start up CML, path will be different on your machine path_to_cml = '~/cml'; addpath(strcat(path_to_cml, "/mex"), strcat(path_to_cml, "/mat")); cml_support = 0; if exist("Somap") == 0 printf("Can't find CML mex directory so we won't run those tests for now...\n"); else printf("OK found CML mex directory so will add those tests...\n"); cml_support = 1; end % --------------------------------------------------------------------- % Run Octave version % --------------------------------------------------------------------- % useful to test the modem at other Nc's, but if Nc != 17 we aren't set up for % LDPC testing so disable if getenv("NC") Nc = str2num(getenv("NC")); cml_support = 0; else Nc = 17; end printf("Nc = %d LDPC testing: %d\n", Nc, cml_support); config = ofdm_init_mode("700D"); config.Nc = Nc; states = ofdm_init(config); states.verbose = 0; ofdm_load_const; printf("Nbitsperframe: %d\n", Nbitsperframe); if cml_support Nuwtxtsymbolsperframe = (states.Nuwbits+states.Ntxtbits)/bps; S_matrix = [1, j, -j, -1]; EsNo = 10; symbol_likelihood_log = bit_likelihood_log = detected_data_log = []; % Set up LDPC code mod_order = 4; bps = 2; modulation = 'QPSK'; mapping = 'gray'; demod_type = 0; decoder_type = 0; max_iterations = 100; load HRA_112_112.txt [code_param framesize rate] = ldpc_init_user(HRA_112_112, modulation, mod_order, mapping); assert(Nbitsperframe == (code_param.coded_bits_per_frame + states.Nuwbits + states.Ntxtbits)); end tx_bits = zeros(1,Nbitsperframe); rand('seed',1); payload_data_bits = round(rand(1,(Nbitsperframe-Nuwbits-Ntxtbits)/2)); states.mean_amp = 1; % start this with something sensible otherwise LDPC decode fails if cml_support ibits = payload_data_bits; codeword = LdpcEncode(ibits, code_param.H_rows, code_param.P_matrix); tx_bits(Nuwbits+Ntxtbits+1:end) = codeword; tx_bits(1:Nuwbits+Ntxtbits) = [states.tx_uw zeros(1,Ntxtbits)]; else tx_bits = create_ldpc_test_frame(states, coded_frame=0); end % Run tx loop tx_bits_log = []; tx_log = []; for f=1:Nframes tx_bits_log = [tx_bits_log tx_bits]; tx_log = [tx_log ofdm_mod(states, tx_bits)]; end % Channel simulation ---------------------------------------------- rx_log = sample_clock_offset(tx_log, sample_clock_offset_ppm); rx_log = freq_shift(rx_log, foff_hz, Fs); % Rx --------------------------------------------------------------- % Init rx with ideal timing so we can test with timing estimation disabled Nsam = length(rx_log); prx = 1; nin = Nsamperframe+2*(M+Ncp); states.rxbuf(Nrxbuf-nin+1:Nrxbuf) = rx_log(prx:nin); prx += nin; rxbuf_log = []; rxbuf_in_log = []; rx_sym_log = []; foff_hz_log = []; timing_est_log = timing_valid_log = timing_mx_log = []; coarse_foff_est_hz_log = []; sample_point_log = []; phase_est_pilot_log = []; rx_amp_log = []; rx_np_log = []; rx_bits_log = []; snr_log = []; mean_amp_log = []; states.timing_en = 1; states.foff_est_en = 1; states.phase_est_en = 1; if states.timing_en == 0 % manually set ideal timing instant states.sample_point = Ncp; end for f=1:Nframes % insert samples at end of buffer, set to zero if no samples % available to disable phase estimation on future pilots on last % frame of simulation nin = states.nin; lnew = min(Nsam-prx+1,nin); rxbuf_in = zeros(1,nin); %printf("nin: %d prx: %d lnew: %d\n", nin, prx, lnew); if lnew rxbuf_in(1:lnew) = rx_log(prx:prx+lnew-1); end prx += lnew; [states rx_bits achannel_est_pilot_log arx_np arx_amp] = ofdm_demod(states, rxbuf_in); % log some states for comparison to C rxbuf_in_log = [rxbuf_in_log rxbuf_in]; rxbuf_log = [rxbuf_log states.rxbuf]; rx_sym_log = [rx_sym_log; states.rx_sym]; phase_est_pilot_log = [phase_est_pilot_log; angle(achannel_est_pilot_log)]; rx_amp_log = [rx_amp_log arx_amp]; foff_hz_log = [foff_hz_log; states.foff_est_hz]; timing_est_log = [timing_est_log; states.timing_est]; timing_valid_log = [timing_valid_log; states.timing_valid]; timing_mx_log = [timing_mx_log; states.timing_mx]; coarse_foff_est_hz_log = [coarse_foff_est_hz_log; states.coarse_foff_est_hz]; sample_point_log = [sample_point_log; states.sample_point]; rx_np_log = [rx_np_log arx_np]; rx_bits_log = [rx_bits_log rx_bits]; mean_amp_log = [mean_amp_log; states.mean_amp]; EsNo_estdB = esno_est_calc(arx_np); SNR_estdB = snr_from_esno(states, EsNo_estdB); snr_log = [snr_log; SNR_estdB]; % Optional testing of LDPC functions if cml_support mean_amp = states.mean_amp; %mean_amp = 1; symbol_likelihood = Demod2D(arx_np(Nuwtxtsymbolsperframe+1:end)/mean_amp, S_matrix, EsNo, arx_amp(Nuwtxtsymbolsperframe+1:end)/mean_amp); bit_likelihood = Somap(symbol_likelihood); [x_hat paritychecks] = MpDecode(-bit_likelihood(1:code_param.coded_bits_per_frame), code_param.H_rows, code_param.H_cols, max_iterations, decoder_type, 1, 1); [mx mx_ind] = max(paritychecks); detected_data = x_hat(mx_ind,:); % make sure LDPC decoding is working OK % assert(codeword == detected_data); [m n] = size(symbol_likelihood); symbol_likelihood_log = [symbol_likelihood_log; reshape(symbol_likelihood,m*n,1)]; bit_likelihood_log = [bit_likelihood_log; bit_likelihood']; detected_data_log = [detected_data_log detected_data]; end end % --------------------------------------------------------------------- % Run C version and plot Octave and C states and differences % --------------------------------------------------------------------- printf("\nRunning C version....\n"); % Override default path by: % 1. if running from octave CLI: setting path_to_tofdm = "/your/path/to/tofdm" % 2. If running from shell....." set PATH_TO_OFDM = "/your/path/to/tofdm" if exist("path_to_tofdm", "var") == 0 path_to_tofdm = "../build_linux/unittest/tofdm" end if getenv("PATH_TO_TOFDM") path_to_tofdm = getenv("PATH_TO_TOFDM") printf("setting path from env var\n"); end path_to_tofdm = sprintf("%s --nc %d", path_to_tofdm, Nc); % append Nc for variable Nc tests if cml_support == 0 path_to_tofdm = sprintf("%s --noldpc", path_to_tofdm); end system(path_to_tofdm); load tofdm_out.txt; fg = 1; f = figure(fg++); clf; plot(rx_np_log,'+'); title('Octave Scatter Diagram'); axis([-1.5 1.5 -1.5 1.5]); f = figure(fg++); clf; plot(rx_np_log_c,'+'); title('C Scatter Diagram'); axis([-1.5 1.5 -1.5 1.5]); stem_sig_and_error(fg++, 111, tx_bits_log_c, tx_bits_log - tx_bits_log_c, 'tx bits', [1 length(tx_bits_log) -1.5 1.5]) stem_sig_and_error(fg, 211, real(tx_log_c), real(tx_log - tx_log_c), 'tx re', [1 length(tx_log_c) -0.1 0.1]) stem_sig_and_error(fg++, 212, imag(tx_log_c), imag(tx_log - tx_log_c), 'tx im', [1 length(tx_log_c) -0.1 0.1]) stem_sig_and_error(fg, 211, real(rx_log_c), real(rx_log - rx_log_c), 'rx re', [1 length(rx_log_c) -0.1 0.1]) stem_sig_and_error(fg++, 212, imag(rx_log_c), imag(rx_log - rx_log_c), 'rx im', [1 length(rx_log_c) -0.1 0.1]) stem_sig_and_error(fg, 211, real(rxbuf_in_log_c), real(rxbuf_in_log - rxbuf_in_log_c), 'rxbuf in re', [1 length(rxbuf_in_log_c) -0.1 0.1]) stem_sig_and_error(fg++, 212, imag(rxbuf_in_log_c), imag(rxbuf_in_log - rxbuf_in_log_c), 'rxbuf in im', [1 length(rxbuf_in_log_c) -0.1 0.1]) stem_sig_and_error(fg, 211, real(rxbuf_log_c), real(rxbuf_log - rxbuf_log_c), 'rxbuf re', [1 length(rxbuf_log_c) -0.1 0.1]) stem_sig_and_error(fg++, 212, imag(rxbuf_log_c), imag(rxbuf_log - rxbuf_log_c), 'rxbuf im', [1 length(rxbuf_log_c) -0.1 0.1]) stem_sig_and_error(fg, 211, real(rx_sym_log_c), real(rx_sym_log - rx_sym_log_c), 'rx sym re', [1 length(rx_sym_log_c) -1.5 1.5]) stem_sig_and_error(fg++, 212, imag(rx_sym_log_c), imag(rx_sym_log - rx_sym_log_c), 'rx sym im', [1 length(rx_sym_log_c) -1.5 1.5]) % for angles pi and -pi are the same d = phase_est_pilot_log - phase_est_pilot_log_c; d = angle(exp(j*d)); stem_sig_and_error(fg, 211, phase_est_pilot_log_c, d, 'phase est pilot', [1 length(phase_est_pilot_log_c) -1.5 1.5]) stem_sig_and_error(fg++, 212, rx_amp_log_c, rx_amp_log - rx_amp_log_c, 'rx amp', [1 length(rx_amp_log_c) -1.5 1.5]) stem_sig_and_error(fg , 211, foff_hz_log_c, (foff_hz_log - foff_hz_log_c), 'foff hz', [1 length(foff_hz_log_c) -1.5 1.5]) stem_sig_and_error(fg++, 212, timing_mx_log_c, (timing_mx_log - timing_mx_log_c), 'timing mx', [1 length(timing_mx_log_c) 0 2]) stem_sig_and_error(fg, 211, timing_est_log_c, (timing_est_log - timing_est_log_c), 'timing est', [1 length(timing_est_log_c) -1.5 1.5]) stem_sig_and_error(fg++, 212, sample_point_log_c, (sample_point_log - sample_point_log_c), 'sample point', [1 length(sample_point_log_c) -1.5 1.5]) stem_sig_and_error(fg++, 111, rx_bits_log_c, rx_bits_log - rx_bits_log_c, 'rx bits', [1 length(rx_bits_log) -1.5 1.5]) % Run through checklist ----------------------------- check(states.rate_fs_pilot_samples, pilot_samples_c, 'pilot_samples'); check(tx_bits_log, tx_bits_log_c, 'tx_bits'); check(tx_log, tx_log_c, 'tx'); check(rx_log, rx_log_c, 'rx'); check(rxbuf_in_log, rxbuf_in_log_c, 'rxbuf in'); check(rxbuf_log, rxbuf_log_c, 'rxbuf'); check(rx_sym_log, rx_sym_log_c, 'rx_sym', tol=10E-3); check(phase_est_pilot_log, phase_est_pilot_log_c, 'phase_est_pilot', tol=1E-2, its_an_angle=1); check(rx_amp_log, rx_amp_log_c, 'rx_amp'); check(timing_est_log, timing_est_log_c, 'timing_est'); check(timing_valid_log, timing_valid_log_c, 'timing_valid'); check(timing_mx_log, timing_mx_log_c, 'timing_mx'); check(coarse_foff_est_hz_log, coarse_foff_est_hz_log_c, 'coarse_foff_est_hz'); check(sample_point_log, sample_point_log_c, 'sample_point'); check(foff_hz_log, foff_hz_log_c, 'foff_est_hz'); check(rx_bits_log, rx_bits_log_c, 'rx_bits'); if cml_support check(symbol_likelihood_log, symbol_likelihood_log_c, 'symbol_likelihood_log', tol=1E-2); check(bit_likelihood_log, bit_likelihood_log_c, 'bit_likelihood_log'); check(detected_data_log, detected_data_log_c, 'detected_data'); end check(mean_amp_log, mean_amp_log_c, 'mean_amp_log'); check(snr_log, snr_log_c, 'snr_log'); printf("\npasses: %d fails: %d\n", passes, fails); codec2-1.0.1/octave/tofdm_acq.m000066400000000000000000000060331412132000500162320ustar00rootroot00000000000000% tofdm_acq.m % Octave <-> C test for OFDM modem acquisition ofdm_lib; autotest; randn('seed',1); pkg load signal; more off; % generate a file of transmit samples filename = "test_datac0.raw"; ofdm_tx(filename,"datac0",1,10,"awgn","bursts",1); printf("\nRunning Octave version....\n"); config = ofdm_init_mode("datac0"); states = ofdm_init(config); states.verbose = 1; states.data_mode = "burst"; states.postambledetectoren = 1; states.timing_mx_thresh = 0.15; ofdm_load_const; frx=fopen(filename,"rb"); nin = states.nin; rxbufst = states.rxbufst; rx = fread(frx, nin, "short")/(states.amp_scale/2); f = 0; timing_mx_log = []; ct_est_log = []; foff_est_log = []; timing_valid_log = []; nin_log = []; while(length(rx) == nin) printf(" %2d ",f++); [timing_valid states] = ofdm_sync_search(states, rx); timing_mx_log = [timing_mx_log states.timing_mx]; ct_est_log = [ct_est_log states.ct_est]; foff_est_log = [foff_est_log states.foff_est_hz]; timing_valid_log = [timing_valid_log states.timing_valid]; nin_log = [nin_log states.nin]; % reset these to defaults, as they get modified when timing_valid asserted states.nin = nin; states.rxbufst = rxbufst; rx = fread(frx, nin, "short")/(states.amp_scale/2); printf("\n"); end fclose(frx); printf("\nRunning C version....\n"); path_to_unittest = "../build_linux/unittest"; if getenv("PATH_TO_UNITTEST") path_to_unittest = getenv("PATH_TO_UNITTEST") printf("setting path from env var to %s\n", path_to_unittest); end system(sprintf("%s/tofdm_acq %s", path_to_unittest, filename)); load tofdm_acq_out.txt; fg = 1; passes = 0; ntests = 0; tx_preamble = states.tx_preamble; stem_sig_and_error(fg, 211, real(tx_preamble_c), real(tx_preamble_c - tx_preamble), 'tx preamble re') stem_sig_and_error(fg++, 212, imag(tx_preamble_c), imag(tx_preamble_c - tx_preamble), 'tx preamble im') passes += check(tx_preamble, tx_preamble_c, 'tx preamble', 0.1); ntests++; tx_postamble = states.tx_postamble; stem_sig_and_error(fg, 211, real(tx_postamble_c), real(tx_postamble_c - tx_postamble), 'tx postamble re') stem_sig_and_error(fg++, 212, imag(tx_postamble_c), imag(tx_postamble_c - tx_postamble), 'tx postamble im') passes += check(tx_postamble, tx_postamble_c, 'tx postamble', 0.1); ntests++; stem_sig_and_error(fg, 211, real(timing_mx_log_c), real(timing_mx_log_c - timing_mx_log), 'timing mx') passes += check(timing_mx_log, timing_mx_log_c, 'timing_mx'); ntests++; stem_sig_and_error(fg++, 212, real(ct_est_log_c), real(ct_est_log_c - ct_est_log), 'ct est') passes += check(ct_est_log, ct_est_log_c, 'ct_est_mx'); ntests++; stem_sig_and_error(fg, 211, real(foff_est_log_c), real(foff_est_log_c - foff_est_log), 'foff est') passes += check(foff_est_log, foff_est_log_c, 'foff_est'); ntests++; stem_sig_and_error(fg++, 212, real(timing_valid_log_c), real(timing_valid_log_c - timing_valid_log), 'timing valid') passes += check(timing_valid_log, timing_valid_log_c, 'timing_valid'); ntests++; passes += check(nin_log, nin_log_c, 'nin'); ntests++; if passes == ntests printf("PASS\n"); else printf("FAIL\n"); end codec2-1.0.1/octave/train_120_1.txt000066400000000000000000002650001412132000500166000ustar00rootroot00000000000000 6.7484 7.6125 6.0332 5.2789 1.5239 2.2353 2.0748 0.5289 0.8748 2.5432 -2.2863 -3.1910 -0.0434 -1.9857 -3.3605 0.7069 -5.9493 -0.5672 -0.6798 -18.0977 4.0503 3.9086 2.9225 2.3773 0.6580 -0.4363 -0.0644 2.4063 1.3428 2.4542 0.5275 0.9820 -1.3277 0.6811 0.0273 -0.1838 -0.0222 -0.6478 -2.2405 -17.4152 13.3284 12.1212 10.6531 9.8214 11.0388 15.8120 19.7110 16.5488 16.1068 15.8771 7.2553 4.2486 -6.0036 -12.5476 -20.1299 -28.2803 -25.3971 -21.7907 -11.5143 -26.8590 21.4405 18.4703 17.8693 14.9679 11.2994 6.4906 4.7717 0.1959 -0.8801 1.8991 1.9793 -4.9755 -7.7852 -10.0492 -8.5295 -8.2893 -4.1203 -12.4072 -16.1660 -26.1817 4.0023 3.8279 1.2681 1.0053 0.7002 -0.3886 3.4465 -1.4055 -6.7846 -2.3345 -2.9050 -0.1344 3.4192 2.4319 10.0096 3.9279 0.6807 0.3220 -3.8325 -17.2565 29.8276 21.1543 12.7853 13.0246 5.8164 3.7469 2.4198 0.1510 -4.5449 5.2695 11.7552 -4.8954 -6.0291 -8.9780 4.9650 -10.6540 -12.5363 -21.6056 -18.2985 -23.3739 4.8610 5.1207 6.5382 9.8638 15.4754 18.8192 14.8018 10.7685 12.4401 14.0392 2.9200 -3.7283 -9.7213 -13.5526 -16.0730 -13.7571 -5.4267 -12.2552 -14.5143 -26.6193 3.0429 3.0335 4.4785 5.6483 5.3476 5.7519 3.5651 4.9007 4.9672 -0.7330 -0.6458 6.5888 5.2957 -2.0068 -6.0189 -7.2145 2.5545 -5.8358 -7.4936 -25.2263 5.9384 7.0203 10.7433 15.2477 14.8437 8.0949 3.1384 -0.0014 -0.1756 2.1601 8.1029 0.4123 -6.8062 -9.6038 -6.2302 0.4409 -8.9878 -10.1638 -4.6903 -29.4840 7.1880 6.1134 5.4021 10.5427 17.0718 14.5658 6.8632 2.2257 0.4412 3.8257 9.0388 -1.1212 -6.7639 -9.2412 -8.6575 -2.9951 -8.6659 -9.4220 -6.6046 -29.8068 9.8859 4.3889 3.6253 3.2033 4.6563 4.5967 1.8747 -0.0037 3.2114 3.8854 3.1501 0.8523 -5.2830 -8.4603 -5.1159 -3.9157 6.9800 -1.5270 -6.0421 -19.9624 7.6208 10.1888 12.8648 16.4838 14.9269 7.8064 3.5594 -2.8048 -3.6303 -10.8596 -7.1254 -2.8890 5.4295 -2.5015 -5.5359 -2.9934 -6.5980 -7.1493 -4.9387 -21.8545 12.7227 17.1387 21.7055 19.8068 12.1832 5.8645 -2.4103 -3.8445 -5.5496 -5.5608 -0.2010 5.1772 -1.4666 -6.6602 -1.2573 -3.1593 -10.7925 -14.3751 -12.0047 -27.3167 7.4465 7.8765 9.4912 12.2074 12.1631 11.4780 7.6294 2.6922 0.1566 -2.1903 -1.5699 -1.8031 2.2555 -1.5591 -7.9267 -10.3612 -5.5432 -5.5673 -10.0797 -26.7960 0.3749 1.9725 2.6868 6.3326 8.9635 12.8113 13.6523 14.0916 11.2443 1.2914 -1.9954 -2.9443 -4.6718 -4.3132 -3.4613 -8.1105 -7.9033 -7.0956 -6.5898 -26.3361 10.3072 10.6822 8.8253 4.8992 4.3627 8.8165 9.7824 3.7264 0.4265 0.6068 3.0934 2.9121 -0.6717 -5.8045 -1.7344 -9.1008 -8.8333 -6.0633 -11.2321 -25.0005 10.6992 14.8060 18.9665 22.4210 21.8710 15.6647 10.6160 12.1366 14.0479 7.0707 -3.8212 -12.1770 -16.1111 -19.3389 -18.8315 -17.5346 -7.9646 -9.4592 -17.5614 -25.5000 9.9592 11.7001 14.2704 14.1434 7.3322 4.2766 -0.0567 -2.7113 -5.7358 -6.7390 -5.9067 -0.1939 4.8177 -3.9810 -7.2528 -3.2695 -1.5685 -7.8940 -6.3355 -14.8548 17.6322 19.5153 22.4362 16.2943 10.4698 2.5066 -2.3936 -5.3770 -7.9766 -9.8004 -12.9640 -13.1015 -9.8076 -5.7565 1.8732 0.4843 3.3621 -1.0048 -4.8377 -21.5543 9.9491 17.4987 23.2236 17.3142 6.8072 6.6873 1.9421 1.1415 2.9409 6.8470 2.4633 -7.2869 -8.9792 -3.3155 -0.1918 -11.8037 -18.6298 -12.6475 -9.7620 -24.1984 9.2080 9.9971 12.5064 20.0609 20.9647 10.9574 7.4360 4.4943 4.8454 11.0636 1.8176 -7.3479 -12.5617 -15.3912 -11.5022 -5.0309 -14.7556 -15.4294 -6.4150 -24.9176 7.7917 9.3291 11.8185 15.3501 19.3235 20.6869 19.8160 14.6028 10.2893 9.9407 9.8534 3.6182 2.7695 -5.2735 -19.7962 -24.6834 -27.0316 -25.6805 -24.9149 -27.8096 0.1108 3.1261 6.8163 12.4528 16.9192 10.8153 2.6109 -0.2652 -4.8897 -6.1056 -7.3218 -4.4594 4.3004 3.7728 -2.8276 -0.0458 1.0104 -6.4884 -6.4860 -23.0456 12.9442 10.3059 3.1303 2.1611 1.4795 2.7580 6.9527 8.4487 7.1533 1.4465 -0.9113 -3.9971 -4.9090 -5.3881 -3.1011 -0.4922 -1.1819 -5.3279 -8.2374 -23.2345 25.0945 17.8572 8.9500 2.7040 0.2187 1.4115 0.7421 0.5831 -0.3096 0.9334 -2.9667 -4.0352 -2.8473 -4.8594 -4.5863 -4.4311 -2.8466 -4.4808 -5.1669 -21.9645 14.6124 19.7986 21.2066 15.7620 8.7509 3.7653 -0.5239 -3.8894 -6.8522 -8.4979 -8.1879 -5.8438 0.5485 6.7415 0.4745 2.6750 -10.3676 -15.0245 -12.2357 -22.9125 11.9959 12.9771 17.1177 21.5310 16.8892 10.8731 9.7276 8.5106 12.9569 2.2512 -6.9324 -13.2124 -16.5380 -18.0518 -16.6252 -9.7038 -6.1220 -8.7542 -6.8998 -21.9905 12.8107 14.5670 13.4289 7.1693 3.4265 3.1397 2.5457 -1.2214 -0.3887 2.4506 3.9777 0.9056 -6.9195 -7.3811 -3.2619 -0.3714 2.6266 -6.3479 -12.2319 -28.9244 2.6437 2.2575 3.8643 6.0625 10.9091 16.9554 21.5045 12.7233 9.3579 9.4439 12.8585 4.4528 -2.4283 -4.7330 -2.2502 -11.3098 -18.5273 -22.4570 -23.1304 -28.1976 10.5757 10.9392 14.0126 18.2101 14.3745 8.6896 4.9080 1.0411 2.3482 7.2221 4.5440 -5.0353 -11.2852 -13.0882 -10.9600 -3.0288 -9.5005 -10.2217 -6.6739 -27.0717 14.6172 4.5412 13.3824 9.2916 19.2818 13.6563 14.4089 10.1260 1.6926 3.9361 -0.6461 -5.1244 -9.3641 -13.9807 -11.4128 -11.8597 -0.8237 -20.3149 -12.3561 -19.0515 4.0591 4.6177 7.7662 6.8737 9.4052 10.1099 12.8714 8.1202 6.6015 7.9224 1.7548 -1.6325 -4.8379 -5.0955 -2.1947 -8.4220 -11.8799 -10.7107 -12.0066 -23.3222 -3.3385 -1.1297 3.0554 4.9769 3.8625 8.6998 8.0974 -0.5519 -1.0699 -5.4771 -4.7235 -4.8192 7.1236 -0.4895 -2.0107 0.1838 3.5180 3.2804 3.1904 -22.3779 10.9362 15.2821 18.1297 12.4682 2.6895 -1.2007 -1.7676 -6.1681 -6.0524 -5.8064 -3.1002 4.3237 2.0263 -5.5109 1.0348 -0.4760 -4.6274 1.4107 -7.5329 -26.0586 27.0648 22.2199 14.8908 7.7845 2.8689 -0.0364 0.0683 -0.1186 -1.6323 -2.4217 -4.0112 -2.3476 -5.4442 -5.8509 -6.4386 -6.2558 -6.7739 -5.9348 -7.0916 -20.5398 4.3156 -0.2499 1.1824 2.8225 8.1910 5.2798 2.2597 -3.0043 -5.0382 -5.2727 -4.0013 2.6952 8.1245 -1.1517 -1.8957 2.4603 3.0897 -1.0817 -0.1353 -18.5898 17.5894 22.9315 26.4862 22.1620 13.7474 13.5177 15.2005 16.3224 4.9523 -4.2419 -8.3503 -12.4022 -12.6698 -6.7159 -16.2122 -20.1926 -20.5969 -16.0749 -12.5173 -22.9353 6.5871 8.0443 8.4339 11.3345 17.3665 13.4455 6.9211 2.0512 -0.7348 -1.2898 1.0076 8.4862 -0.3360 -6.4714 -5.9432 -4.1602 -12.1155 -12.4645 -10.9269 -29.2355 19.0066 20.3716 18.0417 9.4806 4.8058 0.3359 -4.1091 -8.1930 -8.9962 -9.7495 -13.2924 -8.6275 -4.9424 6.0502 -6.8142 -7.1166 -3.0922 8.8016 5.6937 -17.6547 4.7309 -6.5949 4.9914 7.3489 9.0188 4.1567 7.1949 0.4917 5.0462 7.5219 1.5314 -15.3803 5.3130 -0.0983 -7.0327 -1.2671 -0.4646 -1.6442 -0.7446 -24.1190 13.7639 5.1424 5.3193 3.8945 3.9574 1.4034 0.1896 -4.0608 -2.5264 -4.9434 2.8459 2.6311 -2.7915 -3.7842 -0.3711 0.5487 5.3766 -4.3496 -3.2801 -18.9656 12.6752 14.7799 16.2157 18.6944 14.1390 7.0937 3.8206 -2.4778 -3.9766 -4.4531 -2.8711 3.2148 0.6800 -9.1748 -10.1600 -6.0557 -0.8581 -9.2828 -14.0109 -27.9924 15.0025 18.2042 22.4086 21.6195 14.2308 10.5772 6.7291 6.0463 11.7877 8.4162 -3.4731 -11.2708 -15.6923 -17.5613 -14.5235 -4.5248 -17.8954 -18.3529 -10.3105 -21.4173 2.5368 2.8687 8.7229 5.2089 8.9671 2.8847 -1.3535 -4.4273 -4.9060 -7.8939 -15.4750 -10.4797 -4.4811 6.5892 9.9939 12.9078 3.2705 1.3246 3.7883 -20.0468 8.5207 11.8364 16.4466 19.9166 16.0662 8.4129 4.3290 -0.8928 -3.7592 -5.4071 -4.2870 0.4615 9.9611 5.8190 1.7969 -7.7765 -17.3073 -19.5235 -17.7924 -26.8211 3.0595 10.0158 11.1623 5.9413 3.1988 -2.1129 0.3528 -3.0158 -2.3599 -1.3347 -1.0479 3.9189 7.8019 3.0538 -1.6139 0.8043 -4.9290 -6.9959 -7.2918 -18.6077 17.8476 19.4332 25.4614 19.1508 12.2748 9.4543 6.1101 3.6929 2.9336 5.5407 -9.2238 -17.0071 -20.8856 -22.9308 -21.1711 -15.0234 4.8627 2.2867 -2.1943 -20.6125 9.6165 8.8018 11.1694 14.6183 18.4154 13.4481 7.1580 4.1650 1.8242 0.9521 5.1356 4.0270 -5.9523 -12.0202 -14.3055 -10.5893 -2.8308 -12.2805 -13.3723 -27.9806 13.4166 16.7617 20.6572 22.0976 15.9129 10.6410 5.4061 3.1570 -0.7256 1.2303 5.9463 5.1273 3.4864 1.6884 -10.9215 -19.5567 -22.8693 -20.4758 -24.0420 -26.9379 8.0404 15.9476 21.0441 15.0820 8.2842 3.1036 -0.2419 -4.2559 -6.0751 -7.4529 -5.5847 1.5520 8.3483 3.3751 -1.0503 -10.4691 -11.9360 -5.5738 -6.8713 -25.2662 19.9950 20.2102 18.7443 12.7220 5.8592 3.8088 0.4504 -1.5876 -0.0425 -3.0873 5.5382 -0.1499 -5.8500 -7.9372 -6.2374 -0.2643 -15.0702 -16.9914 -9.3644 -20.7458 -2.6024 -7.4950 -1.2522 3.5119 3.9726 3.4991 2.4457 3.2158 -0.1830 -1.7087 -7.3996 -6.8962 -5.2421 -7.5762 -9.1433 6.6126 10.5297 10.4556 18.2991 -13.0433 0.8317 2.2343 3.6899 5.6335 5.8479 6.4330 6.0022 5.3630 2.3387 -0.5344 -1.0716 0.6509 -0.7175 -4.0229 -6.0631 -4.7546 -1.9700 -4.6226 0.0933 -15.3616 -9.3660 -6.9175 -4.9307 -3.1828 -1.6587 -1.4971 -0.1586 0.6208 0.5169 2.4709 4.6017 5.3127 4.5449 3.2690 3.7590 3.4511 3.8260 3.9369 4.8805 -13.4790 -1.1830 0.5095 1.1754 2.3109 2.2722 1.3243 1.6529 -0.1799 -0.2874 -1.2863 -2.2761 -1.5668 -1.2037 -2.4367 -3.9243 -2.1186 2.3502 1.4312 9.5827 -6.1467 9.2349 10.7650 18.1608 20.6655 13.5769 5.4902 3.0323 -1.0259 -0.5010 1.7689 10.3810 12.0253 9.1922 -4.9615 -15.0315 -19.9651 -21.4377 -17.6800 -6.4577 -27.2328 10.6391 10.7983 11.4949 16.5329 19.2664 13.6129 6.1846 2.4573 -3.1501 -7.1814 -7.9387 -2.6238 4.6419 -5.9113 -9.3510 -7.0591 -3.2275 -10.2820 -10.5308 -28.3726 18.6364 19.3874 19.5930 14.3075 9.4402 3.6045 -1.9801 -5.5352 -9.0094 -10.9308 -12.7345 -14.0779 -10.9593 -3.8674 6.3753 9.5959 -1.4018 -7.4988 -6.1435 -16.8015 9.4969 11.3591 11.5468 7.8918 4.7217 3.0266 4.2145 2.2878 1.2224 5.6903 10.6919 4.2718 0.7184 -3.7583 -6.7954 -8.0558 -7.9668 -10.2861 -12.5018 -27.7759 1.9805 4.9512 7.0160 7.8284 8.7891 8.0863 7.7994 7.9865 8.6027 13.1944 14.7771 11.0643 2.1716 -5.7171 -10.9834 -8.7615 -16.8907 -14.3039 -17.4732 -30.1175 7.4683 9.4924 11.1231 14.0490 15.3387 7.9538 5.2116 -0.0275 -3.0014 0.1050 0.6547 7.9660 -2.3476 -7.0894 -4.6113 -2.0949 -15.9720 -16.2041 -7.4758 -20.5386 4.8388 4.2032 3.5738 6.4994 10.8701 16.7006 14.8672 6.7149 3.1448 0.6167 2.5321 7.5899 1.6456 -3.0073 -4.4465 -2.3406 -11.2907 -15.6965 -17.0827 -29.9328 9.8208 5.5733 3.2835 2.3197 5.4502 9.1113 10.3794 8.6442 6.0107 6.4897 4.2548 1.1709 -4.1757 -9.6942 -10.5243 -11.8609 -10.0641 -3.4488 -2.2532 -20.4873 5.8783 5.8851 7.6595 5.2009 5.1000 1.9820 2.2615 1.4023 -1.1079 1.1247 3.7199 2.8362 -0.5182 1.4421 1.5607 -8.4521 -3.7106 -1.6008 -5.2750 -25.3888 13.8298 17.3228 17.9494 18.8765 12.6415 7.5326 5.2828 1.0300 -1.0231 -5.4994 -6.6194 -2.5155 4.6895 -3.4515 -7.2113 -4.1051 -13.7542 -14.3604 -11.8611 -28.7541 -8.8559 -3.0649 2.2249 4.9828 6.4170 6.9906 9.9342 12.0149 12.2463 14.3103 18.4345 6.3234 4.2404 -2.7341 -6.9396 -10.7644 -10.1668 -12.3674 -16.3891 -26.8371 10.9983 13.5279 16.2801 19.6892 16.9475 11.0028 3.9633 1.1799 -2.0078 -0.9850 2.7247 -0.1311 -6.6215 -8.5890 -4.3971 -11.9543 -15.4358 -13.3278 -4.8427 -28.0217 7.2013 9.1028 13.1142 19.8377 22.5360 16.6528 11.8330 10.3141 12.9885 15.8372 9.0995 8.4627 1.1838 -14.4656 -21.4397 -23.6775 -22.5547 -24.8595 -24.4974 -26.6692 -8.4073 -6.6779 -3.9580 -1.6241 -2.1470 -2.2867 -2.2534 -3.0205 -4.5931 -2.5545 -2.1350 -1.3098 1.1053 -1.1397 1.2170 6.2234 3.6093 9.8015 23.5766 -3.4260 9.6955 11.4467 15.0851 15.4765 9.8267 3.5490 -0.5777 -2.7726 -5.1878 -5.7225 -4.4558 0.4969 9.2914 5.8917 6.4235 -4.2514 -11.0149 -9.4893 -13.0444 -30.6665 2.9943 1.4307 0.8714 2.2925 2.1145 2.9148 2.4003 1.9382 1.6662 -2.3476 -2.0877 -1.9322 3.3342 1.7171 -0.9114 3.2785 1.7852 1.4651 -1.3549 -21.5695 7.7138 9.3400 11.7519 14.3217 14.9762 11.0903 9.9040 9.3599 10.4611 6.3795 -3.9927 -7.6734 -12.4888 -12.1729 -5.7999 -5.5417 -9.5690 -9.5926 -7.6846 -30.7825 4.4498 9.2290 15.0677 17.9679 11.2745 2.6730 -0.9888 -5.6255 -7.5349 -8.4589 -8.4510 -5.5027 1.7669 4.3143 -4.8629 -2.0721 4.6797 -5.0125 -4.4213 -18.4923 11.1829 12.4396 12.7925 12.6901 8.0150 3.4089 1.7847 -0.2306 -2.0077 -1.0178 2.2167 -0.4542 -8.4111 -8.9029 -8.0861 -3.9439 -6.2512 -2.2635 -2.1307 -20.8306 -0.0237 3.5900 4.5144 3.8794 5.7527 11.0182 8.9091 7.1863 7.0702 7.1782 4.7799 0.6784 -4.3508 -5.3991 -6.5953 -5.6132 -9.5378 -5.6903 -1.3834 -25.9632 -2.7117 -1.4799 1.2116 2.3262 3.7406 3.7668 1.2697 0.2086 0.7399 -1.3479 -2.2145 -3.7982 4.9747 -0.4583 -1.7465 -0.9161 7.2119 0.8965 -0.2723 -11.4012 7.6123 10.5335 16.3125 23.5319 21.6117 16.3290 18.2001 16.9715 0.9425 -7.0707 -12.7338 -16.0871 -18.4761 -17.8994 -14.8763 -4.8440 -8.9433 -6.8294 -0.8772 -23.4080 9.1763 3.0851 4.6724 8.0499 14.6517 16.8559 10.4532 11.9797 13.2732 7.6578 -1.4245 -7.0469 -11.9925 -15.0269 -14.7577 -15.9057 -2.4494 -8.2002 -4.4694 -18.5819 -0.3793 0.7119 0.4558 1.7011 3.1548 7.4097 8.6888 7.5902 9.1020 7.3493 9.7346 15.2626 6.8726 -0.7975 0.8553 -9.6815 -9.3426 -14.3122 -13.9791 -30.3963 5.2988 6.3406 1.2009 3.3308 2.0290 2.8107 1.0030 0.4513 -1.4458 3.0391 1.2595 -9.2407 1.3164 1.9175 0.7738 1.8301 0.5948 -0.9497 -2.7482 -18.8117 23.5623 25.0580 25.0568 22.4174 16.4713 14.4026 11.1159 5.0250 -1.0266 -8.5971 -10.1924 -9.6120 -11.8638 -13.7028 -4.2000 -6.0100 -12.7481 -18.5497 -22.5946 -24.0120 -5.0424 -4.2120 -3.2703 -0.4028 1.8335 3.2012 2.3768 2.0802 0.6396 0.2079 0.1418 -0.1844 2.5056 -0.2078 -1.3169 -0.2911 0.8140 1.7717 5.2809 -5.9255 7.6330 9.9835 15.1303 18.9128 13.0001 5.9224 1.3978 -3.1674 -6.4703 -8.3713 -7.7470 -5.2412 1.6661 5.3754 0.9111 2.2634 -7.6214 -11.2828 -5.6474 -26.6470 15.3965 19.4488 18.3928 11.4564 4.0261 0.4604 -4.6326 -9.8409 -11.0926 -12.7123 -13.1035 -12.3357 -8.4063 1.3638 7.8807 5.5655 3.4210 0.7205 5.4867 -21.4953 4.0267 4.8087 7.0895 9.6094 12.6372 17.6545 19.7244 17.4364 13.7517 13.9367 6.0059 -4.5448 -9.4075 -13.3403 -13.6620 -10.1856 -10.5214 -17.1512 -19.3146 -28.5537 26.5287 22.7007 21.6748 17.6005 11.9372 12.6653 5.4749 -6.1299 -8.9419 -6.9620 -5.7222 -5.6209 -8.6350 -10.0876 -8.1562 -7.7238 -5.4233 -10.0839 -13.1237 -21.9717 3.9740 4.1572 5.7242 12.4480 17.3522 11.6512 5.2405 1.2103 0.5569 2.7329 9.6369 -0.5073 -5.1263 -2.7956 -0.7621 -3.7186 -1.7764 -8.4788 -18.8985 -32.6208 6.8442 11.6517 15.0164 13.0383 3.5465 0.5949 -3.0134 -7.5262 -8.2082 -8.6101 -7.2813 -1.2345 9.2720 5.1011 6.0543 -0.9163 -4.5878 3.4588 -4.8078 -28.3926 7.8637 4.0004 -2.9380 2.0521 2.2442 -0.4633 1.8855 1.9277 -0.6295 1.3834 1.2896 1.0703 -0.4938 1.5669 0.0079 -1.5584 -2.0070 0.9263 -0.4846 -17.6435 5.8623 7.6023 7.9357 8.1933 9.8252 14.3094 18.5980 17.6310 14.1029 11.3791 8.9224 4.7903 -4.5730 -11.3683 -17.8078 -14.2065 -11.2294 -16.2936 -23.1509 -30.5225 -1.7942 -0.0063 1.9950 3.6026 3.2262 0.8396 2.3621 2.3730 0.2704 0.4107 0.3605 1.3362 -2.3048 -2.1177 -2.8566 0.0808 -2.4432 2.0828 10.0173 -17.4341 16.0587 21.3030 20.2092 12.2290 4.0091 1.0523 -3.6402 -8.1002 -8.5006 -10.1681 -9.7303 -7.7995 -1.2107 8.9891 5.5157 1.2399 -8.3907 -7.4334 -1.1958 -24.4366 15.8248 21.2415 22.3705 19.6523 12.6511 4.9800 2.0524 1.2562 -2.0002 -7.0989 -8.4866 -8.1644 -3.6111 2.9801 -6.3159 -7.3905 -2.5939 -11.1587 -18.1433 -28.0453 11.4701 14.8919 19.2495 17.1766 9.1256 4.6224 0.3569 -3.6692 -6.2969 -8.7664 -7.4764 -1.7487 3.4354 -4.0219 -5.5797 1.1971 -7.0079 -5.6899 -4.9140 -26.3546 4.0502 6.3561 7.7528 13.2425 22.1071 16.8285 10.8539 9.9555 11.6373 14.4871 1.0686 -6.0140 -8.7291 -9.9474 -5.2420 -14.0196 -19.6200 -16.4317 -13.2116 -25.1241 14.0747 12.9823 14.7396 18.3580 20.8024 21.6686 20.4893 18.2777 14.8271 4.2101 -4.6228 -5.0852 -8.9555 -9.9704 -14.4886 -22.2364 -24.8924 -24.6202 -19.9776 -25.5806 6.5756 6.5342 9.0959 14.5314 20.6452 22.1123 17.0555 14.5823 18.4626 9.7441 0.1482 -4.4759 -4.9624 -0.2271 -12.9306 -21.6336 -23.8195 -22.7039 -21.8165 -26.9179 -2.4130 -0.2375 2.8918 5.5011 6.7427 5.7418 5.0778 5.1858 4.3188 3.4462 4.3416 1.8899 2.3449 -0.9372 -1.2877 -2.8414 -4.0969 -5.4193 -7.2573 -22.9920 18.6934 11.3904 9.2311 9.3832 5.4199 3.6295 -0.1793 0.6487 -3.5589 -4.0062 -6.2031 0.6797 0.8497 -5.8255 -3.0197 -0.8407 3.4120 -4.6925 -10.2551 -24.7566 -1.1447 1.5640 1.4686 1.7604 1.7234 2.3262 4.7312 2.6246 3.8383 6.5465 3.3830 1.7225 -1.7619 -1.0275 -1.1491 1.9434 -4.9663 -2.3871 -2.8449 -18.3507 14.1023 13.5650 10.1510 8.7911 7.7313 7.6480 9.2651 8.0399 4.9244 6.1141 5.5459 -0.9256 -6.1550 -7.0836 -8.6484 -9.0926 -9.2649 -13.5303 -12.0852 -29.0925 9.8451 13.4743 16.9269 13.4623 5.8133 1.7553 -0.7487 -3.9831 -8.1249 -9.5689 -8.7611 -6.3983 -0.6612 10.9895 12.8583 0.3283 -8.6023 -10.4136 -5.9048 -22.2865 19.2227 18.1307 15.9732 13.2757 8.9377 4.0318 2.7371 2.4204 4.8079 5.9436 -1.6587 -5.6682 -8.2354 -8.6156 -5.7373 -5.9194 -13.5825 -11.1928 -9.7272 -25.1435 9.7172 12.7596 17.7880 19.5982 13.1714 6.9756 4.2961 1.3629 -0.4383 4.9630 8.7840 0.9395 -2.9094 0.8700 -9.7739 -17.6442 -19.7626 -14.0983 -10.0576 -26.5411 19.7847 26.9921 27.0885 20.9467 13.4352 6.9927 3.8926 5.5073 6.3950 3.6410 -3.5260 -9.9366 -12.2833 -15.4366 -15.2739 -13.4030 -13.6697 -14.5223 -14.0162 -22.6082 -4.7450 -2.3439 -1.2527 0.2681 2.5169 3.0271 3.2731 1.1854 -1.4898 -2.2085 0.9214 6.1154 5.0556 7.1405 5.3972 1.8235 -0.1874 -0.9732 -2.7856 -20.7382 2.7354 2.9846 4.5226 11.0075 16.9767 9.7039 5.0497 0.2367 -2.2382 -2.2319 3.3972 5.8953 -3.5572 -7.9222 -5.1006 4.0687 -6.7980 -6.9512 -1.5062 -30.2728 1.8923 1.9933 1.7272 1.4697 2.1029 2.7198 2.2271 0.4083 1.4890 2.3633 0.0136 -3.1335 -1.8351 -3.4645 -2.5082 0.1244 -0.6305 -0.2515 2.6670 -9.3744 7.3147 10.8559 16.3202 21.3322 15.5047 5.7917 2.0324 -0.5787 -3.8385 -3.1611 4.7722 6.9085 -0.8153 0.2585 0.5455 -11.9753 -19.4608 -19.4821 -11.0006 -21.3242 -4.8271 -2.3317 -0.8263 -0.6913 0.0284 2.1785 4.8530 2.4866 0.5257 1.0973 0.9581 2.0508 -0.0850 -0.3240 -2.1544 -3.6769 8.2530 1.6818 2.7619 -11.9586 28.0344 21.3292 26.7011 15.9009 17.4755 11.8357 5.0600 6.5559 -4.3031 -3.5802 -8.7494 -8.4692 -7.5683 -2.5689 -10.7488 -16.5549 -18.6071 -16.7713 -13.4451 -21.5263 11.4465 12.5754 14.6510 12.0835 5.3520 1.6789 2.3021 -2.4719 -2.0905 -0.5169 -2.1754 -2.9241 -2.7917 2.0815 1.0635 -3.6587 -4.7680 -6.8125 -8.2348 -26.7899 11.1007 8.9165 11.8079 11.0313 1.9749 -0.9229 -2.4670 -6.7769 -9.1537 -10.4373 -8.8596 -6.3617 0.2425 8.3330 2.9722 9.5504 -3.2943 -3.1680 4.4488 -18.9367 12.7055 18.2073 17.6143 9.1957 1.5762 -1.0952 -4.9687 -6.1290 -7.3791 -7.2053 -4.3066 3.6014 9.8467 10.7313 -1.8676 -11.4282 -13.9225 -8.1802 2.6837 -19.6797 0.8368 -1.7610 0.4628 2.3612 5.1160 7.7374 9.4921 4.3865 6.1712 5.6238 6.3738 5.3491 2.7348 5.4859 4.6651 -8.4273 -10.9892 -8.6750 -10.7619 -26.1822 12.9582 16.0251 19.0637 18.9347 12.6765 7.8161 3.8112 0.9397 6.1611 7.4639 -2.5194 -7.1391 -10.2242 -10.1934 -4.1747 -5.7525 -14.4868 -8.2946 -13.9643 -29.1013 29.3165 26.9707 19.9517 12.4469 7.3647 2.8794 1.4068 -2.4963 -5.4012 -4.1083 -5.2153 -6.4891 -5.9548 -6.4872 -6.6510 -6.7351 -9.9422 -8.4833 -11.8558 -20.5171 7.6646 7.8496 5.3460 3.4574 6.3183 1.1408 3.1494 5.1045 0.2373 1.0847 -0.4320 -0.3662 -0.3503 -0.5473 -8.1949 -0.9695 -1.7599 -3.3828 -3.0248 -22.3253 7.0587 8.6157 9.7452 14.4294 20.8498 17.0788 7.0614 2.4228 -0.5017 -1.0215 3.1054 5.3564 -3.4904 -7.3987 -7.4398 -7.0656 -8.8032 -12.8630 -18.8666 -28.2731 5.7670 -2.6937 9.6459 -0.7839 10.7523 2.7960 -2.6113 -3.2915 -6.2928 -7.6167 -12.6729 -5.4796 5.0447 13.7582 10.3050 4.5191 -1.3433 5.4917 -1.7375 -23.5567 -11.2311 -7.9712 -5.4028 -3.3542 -3.1975 -4.2245 -3.9952 -5.3576 -5.3493 -4.8108 -5.4962 -2.9288 2.5785 4.7736 13.8058 17.8731 9.8332 14.9500 11.0220 -11.5171 2.8142 1.3603 4.2714 4.8975 4.3374 -3.4231 3.1881 5.0714 3.9705 6.2234 3.7268 5.2790 1.3825 -7.6582 -2.9268 2.0075 -4.0570 -5.6086 1.2855 -26.1418 4.9776 6.4457 7.7463 9.3687 9.5559 9.1954 6.3666 4.9237 2.1719 1.7788 1.4634 -0.3859 -6.1409 -5.3778 -2.6336 -2.5068 -8.3667 -7.0441 -11.2867 -20.2514 10.0472 11.9967 16.4907 19.9334 16.2325 9.2915 4.3130 0.7097 -4.0959 -8.1186 -10.5064 -10.3134 -5.2102 1.0801 -1.5982 -3.8949 1.2501 -7.5248 -12.9333 -27.1495 17.0433 19.1713 22.6813 17.1064 8.7516 4.3917 -0.7236 -5.3026 -7.9288 -8.3773 -7.4784 -3.7859 -2.5186 0.0200 -1.5465 0.1954 -10.7830 -12.0301 -3.0579 -25.8283 18.6591 22.3501 23.5831 19.0252 13.9063 13.3289 9.0463 -3.2346 1.2718 1.4619 -4.3706 -7.4089 -10.7710 -11.8151 -0.8947 -8.7094 -22.3259 -8.0672 -18.5235 -26.5118 3.2886 3.8514 1.5062 4.9096 3.9001 3.8964 -0.6349 -1.5534 -1.3119 -2.3130 -1.8455 -3.5666 -2.6094 3.4411 -1.0089 -3.0556 4.5250 3.3979 1.1349 -15.9520 -5.6652 -3.8931 -1.8885 1.6299 2.3371 2.0746 2.1285 0.4372 0.0031 4.2521 5.2010 3.3227 2.8933 1.9467 2.1449 0.9405 2.1680 2.3807 -1.3113 -21.1022 21.7270 24.2953 23.2112 13.4917 7.3423 1.4843 -3.1924 -4.8355 -10.3896 -11.3960 -12.8133 -11.6304 -9.9774 -2.6034 3.7943 3.5260 -4.2988 -6.0579 0.3494 -22.0269 7.1102 6.3521 11.6650 18.7864 16.7459 8.3216 5.8454 4.3436 9.4868 7.7601 -3.1382 -10.3196 -14.1642 -15.1634 -11.6972 -1.8200 -7.1959 -8.5258 -1.8553 -22.5374 14.2212 17.8028 21.4842 24.9383 24.9854 22.3982 21.3770 20.9687 13.4315 0.0683 -9.1695 -13.1215 -13.8982 -14.9798 -18.1636 -20.5802 -22.0396 -23.0260 -22.3178 -24.3795 8.9039 9.7955 9.3225 11.7206 17.8844 21.1802 19.2262 17.3421 13.9029 7.3860 -2.6995 -8.3297 -10.1319 -8.7756 -6.0590 -8.7597 -15.4747 -24.0243 -25.5723 -26.8375 3.8554 4.2234 6.2441 12.5445 18.1461 14.0699 5.9992 2.7220 1.0526 2.1813 9.5825 3.3502 -4.3618 -5.0291 0.5610 -10.3142 -15.3449 -12.7063 -7.6401 -29.1358 -8.9085 -6.1917 -3.8341 0.0473 -0.3559 -1.0455 0.4343 0.7424 0.1788 -2.4081 -1.5815 0.7755 2.7896 -0.3538 0.5914 4.7530 5.3039 5.5717 8.4610 -4.9697 6.0177 9.1902 12.5400 17.6650 18.0833 11.1113 3.6376 -0.9348 -2.4340 -3.3221 -2.4870 5.4750 6.1443 -3.6923 -2.5169 -0.6902 -11.0083 -16.8129 -17.3554 -28.6106 12.6629 16.5188 17.0120 11.3763 2.7817 -0.7077 -5.5288 -8.1972 -9.1883 -10.5072 -9.3239 -6.2042 2.0877 8.3448 2.7802 8.4635 -5.0126 -9.0230 -5.5900 -12.7449 26.6077 25.1133 19.7421 13.7493 7.5294 4.8418 5.8235 5.9404 3.3399 4.8147 -1.6758 -4.4299 -7.1722 -6.5470 -9.6023 -9.9251 -17.0327 -19.5694 -18.7525 -22.7953 9.3391 15.4719 19.7226 13.6838 5.7655 2.9423 -0.2309 -3.0447 -5.0071 -3.6430 3.6089 8.1171 -1.0555 -2.5360 2.0952 -6.4482 -11.0547 -9.9411 -11.5931 -26.1921 6.7164 12.9088 8.1465 2.9974 -1.5306 3.7966 4.6355 0.1956 -4.4054 2.5643 -3.5126 -0.4027 0.5107 -1.6406 0.9829 -5.6846 -0.0083 -4.8894 -3.3272 -18.0535 1.8584 3.5453 10.7864 10.3313 8.8364 11.3153 12.6550 8.0839 10.2072 14.1247 0.1105 4.9955 5.9811 7.9709 7.5141 -6.0319 -21.0185 -23.4977 -32.6987 -35.0693 13.1044 15.4062 17.5958 18.0756 11.3524 4.3670 2.6428 0.8781 0.0399 6.6751 8.2361 -2.6757 -10.1776 -9.8299 -3.1506 -9.5151 -14.3971 -6.2859 -13.5883 -28.7532 0.0688 2.2921 6.5965 8.3598 8.2327 8.6486 7.1471 7.1631 4.4823 3.4067 11.3001 9.5567 0.6574 -2.5849 -6.7404 -8.6614 -8.6399 -12.0189 -13.1958 -26.0705 9.5134 11.1944 14.6379 21.3303 20.9351 12.8622 5.9234 3.0673 0.5662 2.8569 7.4992 -0.6339 -9.8527 -12.4761 -11.2573 -4.7464 -13.5940 -18.0638 -14.8928 -24.8691 5.5904 5.1588 4.7053 4.3271 5.8271 9.5093 8.4110 1.6453 -2.2667 -2.6767 -1.4248 -1.1260 2.4114 -1.8009 -4.8190 -8.2201 -2.9355 -0.2567 -0.3488 -21.7105 0.4175 1.2148 5.1829 9.3743 9.7458 5.9476 5.0377 2.5369 -2.7391 -8.8960 -11.0818 -7.0650 -7.4393 -1.4335 10.1963 9.6385 5.0133 -4.2894 -3.8725 -17.4890 8.8274 9.1037 13.6965 18.9331 20.4960 15.7102 9.1227 5.5813 1.7546 1.3849 6.9672 6.4807 5.2247 4.2668 -9.8256 -18.2374 -24.2455 -24.1902 -22.7864 -28.2649 -10.4296 -11.2348 -7.6061 -8.6646 -7.9499 -6.1250 -4.3918 -6.8877 -5.4461 -2.2579 -1.3507 2.2980 4.8244 12.7426 12.4434 14.4927 14.8125 12.9871 9.6224 -11.8790 8.8890 12.0408 17.2338 23.3492 22.1801 17.3250 16.4611 18.6109 12.0359 -2.1102 -7.5218 -11.7288 -11.4854 -7.6790 -11.7033 -21.2349 -23.6258 -19.3358 -7.8566 -23.8442 -7.7648 -7.6325 -5.9874 -5.7763 -5.5038 -4.9788 -3.5524 -3.9264 -4.7269 -2.6727 -1.6911 -0.4884 1.8633 1.5449 3.1375 9.0909 11.6855 13.4220 16.9117 -2.9544 17.5979 21.0040 20.3690 15.7264 13.3239 13.0722 13.4678 1.7577 -6.0904 -6.9925 -8.3415 -10.6335 -9.5482 -1.5234 3.9870 -6.9271 -17.4878 -18.4739 -8.9267 -25.3608 6.1805 4.1462 3.5010 2.7230 3.9708 8.1302 9.4910 3.6927 2.9790 2.0598 -0.6100 -1.6298 -2.5238 -2.5441 -3.9959 -2.7189 -3.9403 -3.9477 -4.9568 -20.0067 7.7322 4.4707 5.2320 7.8782 9.1005 5.4418 6.0577 3.7093 0.1939 -0.2785 1.1984 -2.6011 0.6595 2.7395 -0.9452 -4.5096 -8.4529 -6.4501 -6.8768 -24.2995 -6.4169 -3.8203 -3.3676 -1.3384 0.0068 -0.0917 -0.6540 -1.1092 -2.2062 -2.8976 -3.0409 -2.6706 2.9750 6.3064 7.4779 12.0806 5.7715 5.5715 0.9432 -13.5194 7.6067 9.3813 13.4849 19.9139 22.7781 18.4350 15.9140 18.9134 10.1002 -4.3291 -8.2178 -13.6741 -15.7040 -16.5313 -14.1193 -3.7115 -13.7922 -12.8183 -7.7992 -25.8309 4.7167 3.8923 5.7519 8.0369 12.8563 16.7380 15.0698 9.7568 7.4623 7.4165 7.7550 1.1797 -6.3964 -6.5897 -1.5093 -9.7231 -17.0341 -15.7607 -12.6623 -30.9568 9.6098 13.4286 18.7280 18.1791 9.8536 3.5779 1.4841 0.4639 -0.5329 2.6536 9.8742 -3.2808 -8.9269 -11.0817 -6.3122 -2.5681 -15.3236 -12.3977 -1.9946 -25.4341 3.8990 7.6431 13.4623 16.8504 10.0821 3.4259 -0.1709 -4.7791 -8.1809 -9.2214 -8.3021 -5.9798 2.0125 6.9915 1.4712 6.5493 -3.7836 -4.9571 1.3613 -28.3737 13.9079 16.7984 20.6342 24.6533 24.3507 19.3643 17.9172 18.3920 11.7020 0.0010 -10.1043 -14.9084 -18.2285 -20.4094 -21.5267 -19.7383 -13.5385 -9.5045 -16.6159 -23.1465 7.1797 11.3922 15.7490 19.3949 17.3819 10.7478 7.3006 6.1472 9.1598 11.0073 4.7816 -2.4892 -3.7349 -3.7521 -1.7971 -9.8976 -22.2914 -25.7550 -23.0236 -27.5010 5.6600 8.4600 10.4652 12.1954 14.9914 18.5645 17.0459 10.3163 4.8130 2.3220 0.5889 4.1108 1.2082 -9.3950 -13.7061 -13.1090 -10.1060 -11.3113 -21.8744 -31.2396 -1.8886 -0.7563 0.4909 4.9127 6.9239 5.1456 6.2254 6.4299 5.1768 9.1990 13.2223 5.4194 -3.0538 -4.7242 -5.1855 -3.7939 -7.3421 -6.1816 -4.3871 -25.8328 11.3455 9.9507 8.1659 6.0877 1.4526 0.9704 4.7975 4.0208 -0.5941 2.5357 1.5340 -4.3306 -1.6103 -4.4373 -0.0323 -2.6725 -2.0195 -3.5278 -6.3697 -25.2666 -0.8009 5.6194 7.0974 6.1331 7.2063 7.4038 4.5741 8.4379 4.2968 7.9137 13.0725 2.3362 0.6963 -2.4917 -4.9374 -7.2728 -8.2160 -9.6329 -14.4558 -26.9800 9.4449 12.4990 15.8206 17.3018 10.9373 5.5366 0.8716 -1.2105 -2.4770 -3.4484 1.0611 6.1591 -1.7466 -7.5929 -6.9295 -2.1338 -8.9361 -10.3674 -6.3554 -28.4344 11.5326 10.9047 16.3163 21.0845 11.9757 7.0511 0.8356 -4.9870 -6.9450 -9.2309 -9.7748 -8.2038 -2.2957 5.5139 -5.4119 -2.7410 2.4166 -7.4497 -6.0628 -24.5286 9.3064 9.3678 11.2235 13.9991 14.4345 11.1982 6.3282 1.4131 -2.6884 -7.1825 -11.0075 -12.3749 -9.2573 -6.0414 2.3206 4.6097 3.5670 -3.2208 -9.5445 -26.4507 -6.7163 -6.0323 -3.7943 0.8820 3.6629 4.3198 4.7402 4.0799 4.8854 5.8718 8.3927 9.6825 10.5717 3.8917 0.9125 -1.2807 -3.7018 -5.7570 -8.2525 -26.3582 10.2748 11.6455 16.3809 20.1490 18.2488 12.7899 10.3972 8.0106 -0.6794 -6.4024 -9.7054 -13.5667 -14.6497 -16.1902 -6.9531 0.2117 -0.7067 -1.2331 -10.6728 -27.3488 13.3782 16.3500 15.3612 8.9247 3.4890 -0.7729 -2.6106 -7.5432 -8.0129 -7.6140 -7.8535 -2.4356 6.5050 -4.5887 -3.2816 5.8982 -1.3889 0.3111 0.3606 -24.4762 10.0811 14.1057 20.3635 24.0314 20.3690 17.0236 16.4460 19.2548 6.0111 -3.4365 -9.9143 -13.0905 -15.0150 -11.4726 -6.6405 -10.0976 -14.6658 -19.9459 -19.4800 -23.9274 -7.1817 -5.5458 -1.6137 0.8007 1.9284 2.5116 0.3432 3.3359 0.2833 -1.3305 -2.4960 -1.6366 -2.6968 3.6695 6.8225 4.4926 6.1940 6.7541 2.2072 -16.8418 9.6326 11.3478 14.3982 20.7665 19.7772 12.3406 6.1933 1.0438 -1.1521 -1.5860 1.8440 7.8419 -1.5328 -9.8703 -10.1973 -2.2440 -12.0413 -18.5948 -20.6014 -27.3660 1.5056 1.6880 4.2152 9.5291 17.0514 16.2096 8.5432 4.2111 4.4898 11.7231 5.5770 -4.8191 -7.5020 -5.9733 -0.7664 -10.2798 -14.8967 -9.8638 -3.1062 -27.5357 15.2115 17.9992 21.5012 24.9136 19.1760 15.8798 16.4094 17.8040 5.9025 -3.3769 -10.4408 -15.3738 -18.5882 -19.7882 -17.7007 -14.2386 -13.9566 -13.8247 -5.8162 -21.6922 12.1911 17.2966 17.4896 10.6943 3.5061 -0.1018 -2.5405 -6.3143 -7.6095 -8.5828 -7.4501 -2.2275 8.4004 0.0230 -1.6734 2.8727 -8.2243 -7.2548 -0.5950 -19.8998 -0.4264 0.0708 1.9133 6.0904 12.7810 17.8469 12.0313 4.9753 4.2790 6.9401 10.3052 0.2003 -6.7328 -10.0168 -10.0292 -2.7869 -5.6536 -9.3242 -6.0818 -26.3818 7.8387 12.9821 20.1116 21.8527 15.0291 10.4182 9.9996 12.5177 11.6815 -0.1048 -5.5624 -6.4577 -2.0918 -6.3498 -17.7376 -20.9015 -21.1073 -13.6752 -3.7477 -24.6953 18.0184 21.7405 20.2020 16.4376 12.3859 12.2417 12.1975 6.3324 -4.4281 -11.4734 -5.9353 -8.8421 -10.3280 -4.7973 3.4477 1.4017 -15.9637 -17.1346 -16.9459 -28.5571 8.9922 8.4069 10.2569 10.5303 10.1285 4.9362 1.8698 -0.0537 -5.3906 -5.9983 -4.6797 1.6021 -1.9697 -5.3874 -2.3336 -0.9265 -2.7071 -2.3523 -3.3933 -21.5307 0.1643 -2.2100 -0.9888 -3.4801 -0.5275 -1.4680 -0.5683 -1.5514 -0.4216 0.5034 -0.8521 -2.7835 0.5014 -1.2182 -0.7495 5.2974 5.8643 8.2766 6.0259 -9.8143 7.6720 8.0788 9.1059 14.2217 21.6149 24.6272 15.4198 12.7487 14.5686 14.3925 0.6524 -7.7122 -12.3140 -13.4374 -8.0366 -14.9387 -21.7305 -22.0625 -19.3233 -23.5474 2.2815 1.7578 -0.6674 1.7705 0.4755 0.4978 -1.3799 -2.1107 -2.6075 -3.5652 -2.8715 -6.8295 -1.7109 2.8096 -0.7449 2.5543 8.6739 -0.5359 6.8846 -4.6821 18.2027 16.9209 12.1191 7.6862 3.0545 0.5751 -1.6156 -1.2378 -3.1289 -4.2377 -5.6464 -5.0994 -5.0515 -1.2417 1.1802 1.1938 0.3821 -6.3202 -6.4152 -21.3203 3.5023 4.9407 6.5095 8.9494 13.2647 15.1725 11.9431 6.2423 1.1652 -1.6313 -2.9929 -1.9072 3.4422 2.8306 -3.2309 -5.3351 -2.3238 -10.7536 -17.8375 -31.9502 4.7778 10.3180 13.9538 16.0868 9.1380 2.9991 -0.6627 -4.2067 -5.6625 -4.9839 -1.2287 7.7334 9.3244 7.4153 -4.1228 -11.6166 -8.7569 -5.6012 -5.8002 -29.1044 -3.8341 -1.3838 -0.9472 -0.4209 1.7906 4.2155 2.2324 4.3091 1.1357 8.4456 9.7973 6.3722 2.6068 0.3293 0.1016 -0.3203 -4.2313 -3.6986 -3.9405 -22.5593 7.9933 10.9520 14.6109 19.7867 15.1983 6.5296 4.9056 0.7415 -0.5271 -0.1092 6.9036 12.3792 7.7901 2.0866 -9.1117 -12.3605 -5.7793 -23.1437 -29.0076 -29.8384 25.8990 23.1895 19.6721 15.4616 9.3167 5.4831 6.1546 7.4477 4.2279 -1.3757 -8.0309 -11.4646 -10.4795 -7.5543 -4.2227 -6.0439 -16.4547 -16.3865 -13.0397 -21.7998 5.9702 6.6918 8.5551 14.7594 15.5278 10.2403 6.0423 1.7099 -0.1415 0.4245 5.8906 10.2752 2.9571 1.0304 -7.5844 -15.4930 -16.0321 -8.3602 -12.0263 -30.4370 0.2377 1.2490 0.9118 1.8024 3.7548 4.8963 5.1515 4.2684 0.3786 0.5058 0.4839 -0.9914 1.4073 1.1727 -2.9065 -4.4307 -6.9456 -0.2385 0.3969 -11.1044 4.9017 3.2442 -1.2482 -1.2472 -2.0773 -5.4371 0.3708 4.1825 12.1289 1.2950 -2.3136 -3.1723 -0.4429 -1.6571 -9.7455 6.5626 13.4075 7.0987 -2.0865 -23.7642 26.5958 8.4474 11.9082 11.6976 1.4010 -0.2500 3.9848 3.6429 -6.0468 2.5341 -5.2699 -11.5085 3.8103 -6.3108 -2.4679 2.1530 -6.3876 -7.1780 -8.4060 -22.3496 2.2962 0.8041 0.8352 6.6150 14.5461 15.0856 3.2964 0.5549 -1.6557 -2.0236 2.8955 7.5016 -1.2031 -5.6899 -4.7833 1.2942 -7.3403 -8.3771 -4.0417 -20.6100 -3.1520 -0.4969 6.6485 7.8768 5.5605 6.5283 5.6337 4.1543 13.9779 2.7762 6.1398 -3.7070 -1.7982 -2.8944 -6.0041 -6.5265 -11.4873 -1.5122 6.0580 -27.7754 -8.0020 -4.6131 -0.7821 3.3160 4.4465 4.7754 2.8155 1.0612 4.8060 6.0492 5.9390 3.1446 2.8568 -0.6657 -2.6961 -2.1500 -0.9756 -0.2816 -1.9847 -17.0594 12.4378 17.8157 22.2857 21.4926 15.3987 11.6565 8.4610 -5.9608 -14.7466 -15.8101 -21.8850 -17.3295 -13.0545 -3.3503 5.7314 1.5346 1.1396 -7.5940 -1.8366 -16.3862 0.8964 0.1937 0.1104 1.6479 5.6517 12.1890 10.2771 4.4234 1.0502 -0.5311 1.2594 6.8796 5.2931 -3.9156 -6.0500 -0.9098 -4.2858 -6.9837 -7.0958 -20.1002 19.8439 13.4280 9.6622 10.6650 8.0950 5.5066 1.7572 -1.0429 -0.8012 -2.8142 -0.4934 1.3117 0.5243 -6.1730 -8.1290 -6.3324 -1.5063 -10.0417 -9.1390 -24.3207 -2.7279 -1.7097 -1.1534 1.6639 5.7537 6.7942 10.6044 12.5105 10.6069 10.0936 6.6639 5.7680 -0.0784 -3.9348 -2.0808 -2.5423 -7.7730 -12.2311 -11.4054 -24.8224 10.1275 12.1619 16.2723 20.8127 20.9740 14.8019 10.1842 6.5306 4.4543 7.4531 12.2713 6.9620 6.8204 -5.0668 -18.1362 -24.0479 -25.9037 -25.4208 -24.3890 -26.8618 -9.9466 -6.5695 -9.8093 -1.7391 0.0580 3.2073 7.0375 2.3619 -1.1764 -5.8692 0.3050 -4.2033 11.2777 -0.3904 7.8268 9.8649 4.7504 6.9825 7.6743 -21.6424 14.0137 16.9699 19.0697 15.0058 7.0268 5.9083 2.9474 2.1595 3.8159 7.2602 11.3975 7.5965 1.6600 -6.7074 -13.8401 -15.7435 -16.6488 -16.4066 -16.4466 -29.0384 6.2399 3.2858 -0.2213 -1.4923 1.3132 3.9330 3.5221 2.8631 1.3615 -0.0790 -1.0125 -1.0737 -0.3033 -0.8480 -0.4749 -1.1495 0.1031 -0.2090 -1.3002 -14.4580 14.6593 20.5101 23.6344 20.8409 12.5620 6.6891 3.7103 -0.8534 -3.6042 -5.9363 -7.0110 -3.7764 1.6775 -5.6072 -12.2281 -10.8044 -4.3275 -11.1148 -14.7836 -24.2367 17.5445 22.4817 15.1353 12.5880 5.1049 1.9643 5.3928 -3.5987 -0.4750 11.7373 12.9388 -3.8264 -3.5752 -8.3127 9.4226 -10.0441 -20.2747 -19.0638 -21.8010 -23.3385 11.5639 14.1176 19.1780 24.7909 18.2344 11.0457 8.2594 6.6617 7.5852 14.1840 12.1883 7.8148 -0.4947 -16.4472 -21.5615 -22.7378 -21.8493 -21.9703 -24.9810 -25.5820 7.3833 6.5793 5.7205 10.2722 16.6567 15.1599 9.5922 5.5668 5.0234 9.3817 5.3741 -5.1082 -9.8091 -12.3432 -12.5495 -6.2366 -5.9929 -8.3697 -6.8581 -29.4426 0.3726 -5.6285 -3.2253 2.1557 3.8332 12.1538 14.6059 12.3634 15.7294 17.0679 4.8054 -1.6834 -7.5585 -11.9417 -12.8749 -9.7037 -1.2933 -5.8852 -6.0304 -17.2623 12.4589 17.5375 23.1698 18.7129 9.0574 6.8369 3.3366 -0.7668 -3.5028 -5.8079 -2.0422 3.5413 -5.4920 -15.4559 -14.9601 -7.1860 -2.1139 -10.3945 -4.5301 -22.3991 7.7831 5.9803 3.3957 1.1363 0.6624 -0.3876 -1.2270 0.5350 0.3563 5.2276 9.1991 8.9238 2.6320 -1.9335 -4.2120 -2.5342 -1.0999 -4.9168 -4.9485 -24.5720 12.7865 11.7808 12.0132 12.7418 11.7725 11.2618 10.9064 7.0094 3.3808 -2.3233 -4.5714 -6.7413 -8.0255 -8.7048 -10.9950 -7.0616 -9.3710 -7.6597 -4.9100 -23.2897 7.4583 10.3954 16.3813 20.3810 16.5656 9.1371 4.5296 4.0559 6.8658 9.8043 0.1187 -6.6202 -8.4161 -2.4957 -9.4787 -16.3418 -17.6122 -13.1639 -7.5007 -24.0638 10.5778 12.5102 15.4500 16.2510 14.1076 12.4513 11.9259 10.4537 6.3771 1.6824 -3.8825 -5.5239 -8.8633 -8.0708 -4.6460 -3.2386 -13.9943 -17.4761 -15.8823 -30.2093 16.5450 21.4563 20.0130 10.5420 0.7521 -0.1817 -5.7313 -0.2690 -4.1817 -0.5968 6.2079 4.1626 -0.4622 5.1095 -10.2058 -16.0783 -19.9597 -11.6630 4.3789 -19.8380 0.6538 1.9228 2.2930 5.2351 12.5744 11.0394 7.4850 0.8228 -3.4564 -5.0324 -2.9456 4.4755 9.6050 1.6136 0.0025 -0.9954 -6.7769 -7.8860 -2.9330 -27.6973 14.1315 17.7109 22.9482 25.5022 19.8506 12.4355 10.8121 14.0608 12.2635 -2.6541 -11.3457 -15.5204 -18.0730 -18.7390 -15.7720 -7.2576 -9.9721 -9.7355 -17.1060 -23.5400 -5.7314 -4.0590 1.0581 0.9805 1.3616 2.7093 6.3692 11.6381 12.0180 9.1818 6.8001 1.9409 3.0785 -2.5335 -5.7990 -0.6774 0.8325 -4.7436 -7.1073 -27.3175 -1.0640 0.7851 2.7160 6.1021 12.1198 15.4431 10.3026 4.0089 1.9648 -0.0384 2.4993 9.2599 1.9572 -4.2838 -3.1953 -1.1928 -7.8283 -8.5999 -10.0789 -30.8773 -5.6296 -4.3307 -2.3209 -0.8933 0.2894 -1.9304 -2.0575 -2.7780 -6.2185 -5.9192 -6.6197 -5.5076 1.7000 -2.2417 6.7340 9.7221 5.4135 15.4230 16.2356 -9.0706 21.8983 23.2393 21.5176 17.3026 15.6381 10.7095 -4.6739 -9.4131 -7.3736 -9.6360 -10.3893 -7.6173 -3.6940 2.4229 12.3234 -14.8401 -14.2133 -12.8790 -4.4302 -25.8921 11.8056 15.6560 20.2939 16.8416 9.1858 2.5617 2.6711 -1.0207 -1.4500 -0.2437 6.6714 6.5193 -0.4136 -1.1308 -3.7531 -13.8441 -14.3531 -10.4897 -18.0817 -27.4259 55.7273 39.9360 26.2526 15.0127 6.4718 0.7391 -2.3157 -3.1939 -2.9475 -3.3569 -5.3235 -7.9446 -10.6626 -13.1662 -14.2100 -14.4691 -14.4121 -13.8376 -15.6433 -22.6564 3.7665 2.9173 4.2496 1.8470 7.9023 14.8241 11.0448 3.4540 2.7173 -3.8368 2.5626 4.5604 2.9217 -9.5401 -8.3622 -8.8234 -1.4224 -0.0449 -2.7094 -28.0285 -9.3983 -8.0419 -4.4832 1.9754 -0.3749 4.6985 6.4445 3.4462 1.2139 4.1530 -6.0488 0.4383 7.0647 3.8491 2.7818 -2.6890 2.0052 6.3893 4.3086 -17.7324 10.6303 13.7716 17.1718 20.1678 12.2486 3.3600 2.4058 -2.5934 -4.8765 -6.0115 -4.6562 -0.7932 8.0003 -2.2840 -3.8243 0.1863 -9.1648 -14.9839 -14.0940 -24.6607 16.6586 21.6444 20.8223 12.8954 8.1955 4.1214 1.5648 -2.8573 -5.5724 -6.5555 -5.8004 -2.3591 4.8330 -0.2831 0.7092 -9.8961 -15.4807 -12.0228 -6.1807 -24.4365 6.2715 7.1856 9.0377 12.3924 19.0793 22.2584 18.7678 12.6682 9.6569 13.2645 2.9549 -2.9501 -4.4734 -4.2440 -12.7065 -19.5653 -21.3156 -21.7041 -19.8037 -26.7746 6.6118 7.9766 9.5899 16.7112 22.8331 15.9736 8.1328 4.9522 3.0471 7.2666 11.8402 -1.4154 -4.2808 -5.2523 -8.9476 -17.0691 -18.3281 -12.6216 -21.0003 -26.0198 17.3127 17.4868 17.7344 12.4834 5.8856 4.6009 1.0730 -2.7678 -2.0723 -0.4628 -3.7999 -5.8370 -8.6148 -7.6108 -6.5104 -2.5688 -1.6184 -6.1466 -7.5013 -21.0659 3.4054 5.0769 7.0766 9.8006 20.0250 22.5645 11.5478 6.2329 4.4723 6.4844 10.6573 0.2331 -6.2477 -11.0870 -10.3507 -4.2484 -15.1989 -19.0756 -16.4193 -24.9492 4.7627 -2.1833 -2.2828 -3.7716 2.8453 7.5100 11.3439 6.1880 0.3611 -1.2837 -10.2990 -7.9318 -4.0985 1.3582 6.4088 6.3304 9.4372 -0.3781 -7.0962 -17.2205 0.0639 1.7461 3.2578 7.1373 14.2936 21.0383 16.8137 10.1108 14.3040 14.1399 0.3676 -6.3231 -10.5295 -12.7919 -9.1838 -2.4821 -12.1068 -13.6518 -9.1740 -27.0298 6.2012 6.2177 8.6617 15.7008 20.0807 16.3263 9.7644 7.6670 11.6809 8.6315 -2.6559 -7.4948 -10.0457 -10.1131 -6.9875 -12.9972 -15.7760 -10.0148 -6.4425 -28.4048 8.4071 5.8192 3.5662 1.9627 2.4472 1.8597 -0.7370 2.3814 0.1779 1.4958 2.9385 -6.0143 -2.3152 0.3049 -1.7145 0.7158 -1.3399 -5.1439 2.0438 -16.8555 7.4409 3.3788 6.5115 14.5248 13.0646 4.0268 -1.1894 -5.0999 -7.6910 -8.4282 -7.9356 -3.3516 6.9774 0.9806 -1.3988 5.5785 -3.1694 -5.2282 1.6484 -20.6401 11.6728 5.2904 7.2713 8.1521 8.6202 4.8390 1.9077 -2.7604 -4.5028 -8.9428 -12.4662 -11.0383 -4.7642 4.2903 3.3702 1.0547 5.8752 0.7203 -0.1952 -18.3942 1.7662 2.1132 0.6823 0.5069 -0.7694 -0.5730 -0.6749 0.4539 -2.3850 -0.8937 3.2905 1.9366 4.8907 8.8910 3.4773 1.6832 -0.3850 -1.0325 -5.4486 -17.5299 11.1327 8.1369 5.9398 7.2387 9.0755 13.7563 15.6715 10.9671 4.3603 6.5521 8.2784 8.2998 -3.5109 -8.8874 -13.5723 -11.9565 -11.2912 -14.9059 -15.3573 -29.9274 17.2359 18.8517 18.1626 16.5245 13.3466 10.8703 8.4673 4.7337 2.6350 0.0183 1.1954 4.7388 -2.9359 -6.0731 -7.4347 -16.3769 -19.9350 -20.0072 -15.2078 -28.8095 15.9881 16.1253 11.9372 8.7157 5.3883 4.3873 5.5095 5.6589 0.5361 -1.1208 -4.8170 -4.8077 -4.2337 -3.8897 -5.7866 -5.1486 -6.6937 -4.6271 -8.1104 -25.0113 10.5287 10.4645 11.0189 12.4921 10.2092 2.1803 0.6775 -1.9607 -7.8737 -8.5232 -10.8456 -10.0601 -9.5234 -5.7091 4.1283 1.9979 4.9082 2.3842 -1.6831 -14.8109 6.8712 7.1195 7.8478 9.0102 7.5469 4.9121 6.0618 3.0705 0.6628 1.7728 2.7140 6.3541 3.1029 -4.2377 -6.3687 -2.2545 -6.3865 -11.4164 -9.6711 -26.7119 16.6601 22.0460 20.3084 13.4923 8.0021 8.7024 10.1260 10.4026 4.1888 -3.7328 -6.1710 -10.8693 -16.0494 -7.8483 0.2833 3.3381 -13.0116 -16.9474 -14.2501 -28.6704 -1.6472 -1.5329 -0.7265 -0.8590 1.5500 3.3445 6.0600 5.7678 2.9402 4.2316 1.8384 -2.4116 1.7488 -1.1846 0.2843 -0.4495 1.5215 -2.2191 -1.2847 -16.9723 5.4499 9.2168 13.6525 18.6245 21.2266 16.3225 10.2029 13.7648 16.3433 7.8345 -0.8506 -3.0654 0.8282 -4.7895 -14.3191 -13.6263 -16.5382 -25.7242 -26.3799 -28.1733 5.4928 7.2730 11.4735 16.9546 13.9651 4.9178 1.4991 -1.5005 -3.3689 -4.2367 1.4622 8.4912 0.6337 -0.2593 0.3732 -7.8143 -10.1871 -7.5615 -7.0778 -30.5301 6.6781 5.8903 6.7632 9.1810 8.8397 9.7239 8.7155 7.7970 6.3227 3.4228 0.2514 0.1110 -1.6716 -5.4364 -5.9387 -8.2352 -7.5149 -7.0855 -8.8552 -28.9591 11.8209 17.4970 19.5821 14.6674 8.7810 10.5929 17.1599 11.1304 -1.5934 -2.4291 -7.1040 -7.2023 -9.3009 -11.7782 -8.5498 -11.3872 -9.7560 -0.1211 -12.0128 -29.9970 10.1575 12.1948 14.9933 16.4447 14.1842 8.2787 4.1829 1.5996 -0.4007 2.6686 4.5920 3.8070 -0.5362 -2.8498 -6.0317 -8.0974 -11.2561 -15.9690 -16.7096 -31.2528 17.3728 16.5602 12.1580 2.2953 -0.7338 -2.2088 -3.0060 -3.4950 -5.7703 -1.8968 -4.1417 -2.2550 -0.4691 -0.6536 -2.4783 -1.3584 1.1130 -1.5486 -2.1800 -17.3041 10.9509 14.6912 20.9171 20.7445 13.3882 9.0276 8.4810 10.4480 11.1634 -1.3107 -8.8976 -12.4550 -14.1419 -12.2168 -8.1653 -9.1840 -14.6536 -10.7798 -3.3490 -24.6582 -4.2511 -4.3180 -6.4235 -4.0719 -2.3887 -3.1485 -4.2032 -3.5194 -7.5010 -5.4107 -2.3368 0.6165 -2.5480 -6.5746 5.7100 1.8165 14.8553 24.3830 15.8024 -6.4884 6.8815 10.8626 15.3667 14.4704 2.5878 0.6962 -3.7687 -7.2033 -9.3334 -10.5308 -9.6190 -8.2135 -3.3921 8.1225 8.7748 9.4979 -0.1825 -3.9609 2.5378 -23.5939 10.7457 13.4613 16.3838 18.1633 11.9764 6.2322 2.2046 -1.6815 -5.4025 -5.3261 -1.9194 5.7850 7.0183 8.8506 -7.0398 -15.8090 -17.0181 -9.4482 -9.5562 -27.6203 4.4895 6.7459 11.3127 18.7251 18.1351 6.5502 1.1677 -1.0341 -3.9953 -2.3382 3.5745 11.8555 2.9192 6.0596 -4.8984 -13.0118 -16.2470 -15.0252 -10.6982 -24.2871 10.1449 10.3471 14.7490 16.1718 16.9528 11.3815 6.8749 1.4265 -2.7864 -6.1956 -8.0139 -7.8556 -2.8591 4.0596 5.4548 3.3633 -10.2166 -16.2406 -18.8135 -27.9450 9.5266 9.8619 11.6564 16.1435 22.5856 19.0228 9.5649 5.1013 3.9082 6.9523 9.4453 -4.8784 -10.6008 -16.0258 -16.6123 -14.7740 -6.6639 -13.8342 -16.3927 -23.9867 -2.8166 -0.2578 2.8925 4.4555 5.6756 4.6914 3.4417 3.4041 1.8890 1.8575 -0.5242 1.9867 0.9536 -0.9744 -1.4010 -2.1961 -1.2827 -2.3186 -2.1481 -17.3281 6.5757 10.4876 15.8653 20.5177 18.3749 8.4114 4.7411 0.5009 -2.9659 -4.1461 -4.5681 -0.6566 5.8038 -2.3737 -8.5532 -6.5787 -2.8561 -13.7548 -17.8769 -26.9485 7.1295 8.3469 8.9916 14.7649 20.5000 15.5149 7.3359 0.6792 -1.5195 -5.0373 0.9468 7.0372 -4.0339 -9.7787 -8.9444 -0.8558 -12.0386 -13.0157 -7.1764 -28.8465 -6.3643 -3.5600 -0.9853 1.3808 3.5164 4.4752 4.2783 4.1699 0.4058 -0.8097 -0.9913 3.1386 9.3653 -1.1057 -1.2662 0.7587 1.7985 -2.7481 1.1071 -16.5641 10.8441 6.1056 4.5464 11.5523 11.5304 4.8593 1.2036 0.6177 -6.5224 -11.5032 -13.3278 -7.1852 -1.6717 9.2735 6.7578 -0.9050 -7.2789 -6.0827 3.0089 -15.8228 2.4300 2.4475 8.1825 8.1925 2.2974 10.8311 15.5690 1.4027 0.3290 -0.4366 6.3648 1.0487 -0.9166 -8.1367 -8.1915 -9.5690 -3.4184 0.0616 -4.9205 -23.5675 18.5545 22.2390 21.2685 17.0100 9.6982 4.7320 4.3296 7.5541 8.1889 7.8498 0.4258 -3.7349 -6.3446 -8.3581 -11.0931 -16.2715 -16.4055 -15.8123 -17.4410 -26.3892 5.3049 3.9686 5.5462 12.1792 19.9309 17.0320 8.3644 7.8784 10.6383 15.3943 3.6647 -0.1421 3.0499 -3.2605 -15.9284 -20.0685 -19.5084 -15.1548 -11.4151 -27.4740 -4.1173 -2.8993 -1.1226 2.7523 4.1168 4.2377 1.6192 1.4859 2.7141 0.4810 0.9555 -0.9423 1.2205 0.5970 0.3948 0.4670 2.1347 1.5199 1.6806 -17.2954 15.7137 20.9924 24.3419 24.5468 20.7453 18.1011 19.1224 15.9122 12.9399 8.1629 -8.2323 -12.3399 -17.0242 -22.3729 -23.1787 -23.2286 -17.6989 -10.8077 -20.3082 -25.3873 -1.2634 1.8562 5.1481 8.6050 8.7868 9.5351 6.6634 3.8160 -0.1296 -4.6560 -0.5036 -0.2003 1.6621 -1.6607 -2.8913 -4.8208 0.3233 -5.1066 -6.1044 -19.0592 10.6986 11.8307 11.5659 12.4490 11.1880 6.9008 2.6629 3.0301 3.4569 5.3227 2.5092 -1.0853 -3.8118 -7.0840 -4.9747 -7.3629 -11.0099 -5.9887 -11.0008 -29.2965 13.6712 17.1821 19.2431 13.3261 5.9589 0.4984 0.3670 -2.3834 -3.2315 -2.1198 4.8356 0.4745 -8.1763 -11.1278 -9.8688 -0.1733 -8.1227 -9.3563 -5.3546 -15.6426 -5.7735 -2.5076 -1.5044 -1.1663 0.0004 2.3285 2.2748 3.5509 0.5101 -3.3403 0.8431 1.7502 3.2945 -0.4888 1.3903 4.0779 1.6571 2.3564 6.2297 -15.4829 9.1796 11.0931 14.7746 19.7918 17.0503 10.0451 7.8355 5.3063 5.9805 11.7545 10.2992 6.2216 2.6489 -6.8542 -15.2068 -16.6927 -14.0990 -23.4163 -26.3767 -29.3354 4.4691 6.3690 7.7808 12.8470 20.5705 17.7665 9.4381 6.2778 2.4431 5.0549 9.9596 3.2883 -2.2059 2.0400 -4.0438 -15.0151 -19.7303 -18.2469 -20.2388 -28.8235 25.3208 24.3974 22.6154 19.5733 14.8131 10.5701 9.4361 4.3748 -1.5593 -4.3511 -14.7283 -17.6258 -0.9520 -8.5196 -7.3624 -3.2510 -9.9332 -17.3271 -21.4343 -24.0570 22.3042 16.1278 12.0077 14.7975 10.7206 8.3648 8.0610 10.1267 7.5498 1.8723 -3.9201 -8.2481 -10.1623 -11.3760 -12.7367 -5.0050 -3.3744 -11.9178 -17.4700 -27.7220 4.0018 3.5852 3.3315 5.3461 4.3656 2.8461 -0.0206 -2.5696 0.1895 5.1002 3.3534 0.2158 1.3297 -0.9671 -0.5937 -1.9855 -1.7054 -1.7064 -4.2453 -19.8713 -0.1820 0.3377 2.3741 5.1705 4.8793 2.2995 4.3309 2.2662 0.4173 -0.8843 6.0098 9.0178 2.9640 -0.8977 -1.5385 -6.1656 -4.1289 -4.7989 -1.1105 -20.3607 7.6526 7.4466 4.8852 0.6442 1.5298 0.3141 2.6136 0.1768 0.3184 1.5717 0.2364 -0.4716 -4.0283 -1.7854 1.1771 -1.1242 0.5833 -0.2901 -4.6526 -16.7979 19.3739 25.1966 25.2676 19.4367 10.1976 2.4144 -1.1928 -4.0638 -8.7478 -10.5230 -11.0799 -12.5634 -10.0392 -5.3666 3.7592 3.3440 0.1212 -8.8586 -13.7562 -22.9202 9.6043 10.5410 12.3377 19.7574 26.3167 19.8022 16.1636 16.4176 17.5852 2.8061 -5.6826 -11.1198 -15.0897 -15.5002 -11.1047 -14.2676 -20.4525 -20.5783 -15.3843 -22.1521 12.9015 20.6704 27.9257 24.9274 19.2594 24.2150 19.1475 0.5334 -3.3152 -12.4822 -15.0498 -16.9033 -19.2802 -17.1972 -9.8015 -9.8416 -13.7988 -8.2071 -2.2124 -21.4912 14.4389 13.4012 16.1103 14.9288 9.7959 11.0171 12.0893 -1.4171 -9.8704 -8.5713 -15.4225 -18.6377 -16.5003 -13.9403 1.0172 8.7826 2.1557 -0.7217 -0.1613 -18.4945 3.2298 2.2245 4.4788 6.2407 6.6193 4.0854 3.5648 2.2977 2.4361 0.5689 -4.6553 -1.2701 -2.8888 -2.1474 -1.0212 -1.5878 -0.7381 0.5436 -4.6923 -17.2887 12.1886 11.0008 17.9358 24.3010 22.2969 15.0778 12.8771 17.0838 11.2261 -0.0847 -7.9648 -13.0993 -17.1559 -19.7583 -18.6302 -14.9903 -5.4184 -14.9564 -12.1370 -19.7926 18.1628 19.7982 21.7942 23.1496 22.2974 18.3029 13.8973 12.5987 14.0955 8.3018 -1.2018 -2.7097 -5.1243 -15.5625 -20.9814 -25.9011 -25.5502 -25.1062 -24.3739 -25.8874 5.1200 2.6682 2.7787 5.1220 7.7683 7.6609 0.3239 -0.5597 -2.1976 -4.2025 -2.3433 5.4581 3.3195 -4.6819 -7.7339 -5.9433 6.7709 -3.0093 -0.4617 -15.8570 3.1474 3.9068 4.6743 6.1980 3.9172 5.5703 3.7560 5.3815 6.4792 7.4263 4.0188 -0.9053 -2.9276 -4.2640 -3.8751 -2.5664 -3.8921 -5.7279 -7.3914 -22.9261 7.7606 7.9634 9.2590 13.4058 20.9130 19.2571 11.4285 9.1142 10.4227 12.6605 1.3940 -7.8667 -12.9049 -16.1586 -15.3321 -7.7158 -10.1835 -11.8246 -14.2319 -27.3607 9.9378 9.7046 10.1765 13.1670 9.5151 2.2155 -0.0456 0.0357 -0.3521 -1.2640 0.0667 3.9496 -0.7853 0.9935 1.7327 -2.1738 -2.4763 -8.9075 -14.5354 -30.9548 9.4566 14.4761 17.5184 16.5421 10.8319 4.8634 3.7958 1.0301 -0.7413 -4.7772 0.1278 10.6261 1.7256 -4.7562 -1.8151 -1.2979 -10.9708 -19.1139 -21.0656 -26.4558 4.1609 4.3674 5.1630 10.4393 19.9966 22.0365 15.0772 16.7404 13.2009 0.0579 -7.2967 -13.1855 -16.4671 -16.2778 -13.5417 -3.6468 -7.6575 -10.0591 -0.8708 -22.2374 9.2619 9.2850 10.6963 10.0411 5.3819 1.8030 1.0922 -0.3660 -0.8976 -3.1810 -0.6819 -3.8642 -8.4569 -8.9974 -5.5095 -1.9498 -5.7587 -2.8793 9.9987 -15.0177 16.0944 15.0736 17.4290 17.1266 16.3425 13.9152 -0.3124 -3.4633 -3.3349 -5.5676 1.0220 7.3152 5.0978 0.8308 -5.9027 -14.3898 -14.2461 -12.2320 -23.5828 -27.2154 2.0137 5.7764 10.2219 14.9245 16.5703 10.5235 3.0729 -1.4882 -7.2050 -6.2506 -5.1311 1.5065 6.9953 -1.4430 1.8240 -1.5831 -9.7701 -7.7954 -0.2269 -32.5358 0.8118 3.1428 4.1975 8.8492 17.1316 16.9999 8.6244 -0.0326 -4.9530 -5.2292 -0.1353 6.3691 -2.1837 -2.6835 3.8299 -6.3313 -4.7140 -0.2060 -11.6261 -31.8615 16.0656 15.8566 16.2660 14.0919 7.2745 1.1478 0.5592 -3.1884 -2.7528 -3.9872 -1.5200 -5.6031 -7.1936 -11.6082 -9.9024 -5.9648 -1.2652 -4.4434 -0.5317 -13.3008 6.0546 7.8172 12.5175 18.9740 18.6314 12.5099 8.6741 7.3229 9.6232 16.1584 9.3568 6.3688 5.3827 -10.1648 -19.1392 -25.0842 -25.6307 -21.0082 -12.2957 -26.0685 8.7645 5.7385 7.3877 9.4659 8.7034 6.7927 2.2815 1.6420 0.5587 -0.7987 1.2054 8.0228 11.5479 4.5805 -6.4932 -9.4841 -11.6576 -7.6077 -9.5897 -31.0604 13.5337 13.1762 15.6646 19.9549 24.3470 21.3479 19.5471 19.3675 13.3653 -0.5856 -8.6584 -13.2572 -16.9863 -17.9847 -20.7708 -15.4798 -11.0509 -15.4702 -16.1382 -23.9221 9.4656 10.0639 11.4433 14.6680 18.7771 15.2024 9.3195 5.1370 1.9578 0.3561 3.7670 8.6933 1.3200 -4.9956 -10.6736 -14.3320 -17.7829 -18.0592 -14.3140 -30.0137 1.5799 4.3053 2.3818 2.8910 -1.2059 -0.8300 -0.1903 -0.1292 1.0233 3.9206 3.9828 2.2978 3.2320 -2.5703 -2.6923 -1.3776 2.9213 0.1727 -0.5110 -19.2019 6.8519 4.8647 1.9844 2.2401 3.7555 1.5005 -1.3694 0.5704 2.1485 0.7600 0.6917 -1.0898 1.8295 -1.7615 0.1607 -2.4085 0.4928 -1.2003 -0.2145 -19.8066 26.8652 27.9313 22.2964 13.2728 4.9234 4.9750 10.5105 12.7213 4.9587 -6.5278 -2.0124 -3.4059 -5.9594 -7.3378 -10.2568 -18.1183 -18.7465 -15.1523 -18.6899 -22.2476 11.7015 12.5524 16.8036 20.5917 17.3325 11.6535 7.9132 3.4464 6.4909 8.4604 0.1120 -8.6770 -13.3036 -17.0534 -16.5775 -11.3553 -3.4540 -9.9071 -10.9540 -25.7760 20.0026 21.9415 20.1743 15.7692 9.6829 6.6171 12.1877 15.1379 6.9729 -2.6223 -11.9260 -8.0030 -5.4775 -7.9242 -14.3282 -6.4602 -11.9823 -18.5276 -14.5214 -26.7133 8.4727 10.3130 16.1554 22.5237 20.4885 15.1245 10.9192 10.3785 14.0959 8.6752 -2.6735 -8.1503 -8.9174 -2.4684 -9.1899 -21.2524 -22.7439 -18.1241 -17.6618 -25.9650 16.4001 11.0790 6.5408 3.9922 0.9638 0.6155 0.1321 -0.0033 -1.5205 -0.5347 0.0838 -0.8675 -0.2837 -1.6297 -1.6342 -2.7530 -2.7291 -3.0597 -3.9086 -20.8833 12.8347 13.9930 15.6832 15.4917 10.9362 11.4157 15.6476 4.3710 -10.8720 4.3584 -2.6363 -7.3238 -10.3423 -4.3725 0.4684 7.2994 -11.0045 -18.8176 -14.2499 -32.8805 12.3323 15.8058 21.8399 24.3008 14.4087 10.9930 7.8357 8.0265 12.8222 14.2335 5.8155 6.0731 -6.0593 -17.6762 -22.1263 -23.2555 -24.2165 -21.7123 -15.9183 -23.5226 5.7344 5.3389 3.8374 3.4190 2.8812 1.7219 0.1439 1.8580 -0.5349 2.0653 -5.3722 2.7017 1.0724 -0.8636 -1.4371 0.4192 -0.6553 -2.1126 -0.7370 -19.4805 8.7871 8.8914 10.5080 13.7939 18.1053 18.3809 13.6037 9.9123 6.2489 7.8891 6.4768 -2.8713 -8.9109 -11.1699 -11.8847 -5.8137 -11.8112 -19.3777 -21.5409 -29.2171 21.2487 22.5877 21.7624 19.0832 14.4498 8.3623 6.4664 3.1545 -0.2860 -1.9696 -3.9389 -1.8288 -3.7243 -9.6176 -13.7865 -15.0846 -11.3343 -12.9399 -16.9243 -25.6805 15.5067 16.3749 16.3110 12.8646 5.4498 2.4274 -1.0299 -3.2700 -3.2357 -0.0252 7.5399 -0.6948 -6.2588 -9.1664 -6.8883 0.7600 -11.6902 -9.9820 -1.1495 -23.8436 15.5548 17.3265 20.2482 21.9118 17.7825 12.4436 8.5947 8.3626 10.7582 6.8704 -2.6150 -7.1451 -11.7102 -15.2112 -16.7335 -10.8661 -12.1430 -16.7183 -19.7849 -26.9260 9.7348 18.6985 22.2000 9.7733 3.5414 -0.9890 -5.4561 -5.4928 -8.4760 -6.8757 -4.1569 6.8951 2.1633 -1.2892 3.0483 -7.4717 -12.0842 -7.7317 1.0735 -17.1050 6.6628 6.9628 9.2890 7.3292 2.0881 -0.1054 -1.5163 -4.7058 -4.4988 -5.4883 -6.5025 -2.6194 5.9468 -1.1287 -0.4851 5.3144 -1.6440 -1.6601 4.2795 -17.5182 11.7595 13.0074 13.6551 14.3417 13.9024 11.5890 9.9365 4.1950 -1.2916 -2.3847 -1.5414 -3.1381 -5.4213 -4.9864 0.0096 0.2286 -7.5940 -13.3606 -21.1287 -31.7780 16.5560 21.1528 18.2294 14.8217 11.7211 5.8948 0.1128 -5.7142 0.4819 3.4296 -7.6731 -15.2596 -14.0910 -4.3450 4.2359 -1.2610 -8.7829 -14.4366 -8.1323 -16.9402 -9.6162 -5.8920 -0.4336 -0.0688 3.9825 0.7100 -1.9156 -3.0982 -4.8027 -4.2612 -2.6264 1.0431 5.5418 11.1806 9.5552 5.0905 3.5862 4.3463 5.8670 -18.1885 9.2493 12.5210 14.8487 20.3042 16.9267 10.5281 5.4085 -1.4152 -5.3054 -5.3250 -4.1371 2.4443 0.8006 -8.0900 -7.9314 -5.9206 -13.5877 -13.0043 -4.8031 -23.5116 5.9148 6.0122 7.7679 11.9347 14.3202 11.1880 5.7941 0.6362 -0.9006 -3.7616 -1.0465 6.3361 0.5894 -7.7629 -9.2778 -6.0898 -0.4740 -7.4253 -3.1780 -30.5771 9.0470 12.9059 18.1346 24.2631 23.6353 19.2579 20.8877 17.0355 3.1774 -5.2773 -10.0473 -14.9178 -17.5773 -16.4551 -11.9394 -9.6664 -11.9143 -7.0063 -19.2353 -24.3080 11.6229 13.7686 16.3077 18.9730 21.2077 21.1770 18.6717 15.5260 14.4577 10.9286 -2.0523 -9.7658 -14.1470 -18.3895 -20.2191 -19.9491 -14.1791 -17.4745 -18.9708 -27.4939 -1.2854 -2.7859 2.0352 3.8729 2.5634 1.1875 2.9803 3.4105 0.6928 -0.5396 -6.4408 -2.1739 4.1284 -0.7168 -3.4324 -5.3047 2.1060 6.1169 6.1700 -12.5844 3.6719 5.1933 3.4330 2.0915 1.7090 4.9193 7.5225 11.4575 7.7921 1.1072 -1.3846 0.6720 -0.8916 -0.5196 -2.8857 -5.7085 -3.7344 -4.4707 -6.4364 -23.5377 5.0076 6.0603 5.6858 5.8716 4.9796 4.3510 3.2343 -0.0278 -1.6006 -3.6879 -3.6306 -0.3994 -2.7867 -5.8602 -4.3815 -4.1661 1.9375 0.0251 1.7605 -12.3723 1.5611 2.5677 6.9184 12.7642 12.9002 7.6294 1.5737 -0.4407 -4.6258 -3.3019 -0.3274 9.4821 8.3473 7.1185 0.9099 -4.2945 -2.0947 -5.5952 -16.6889 -34.4035 -10.0770 -9.2074 -7.5499 -5.3349 -2.0639 0.7289 3.3239 5.0911 7.8838 10.9963 10.2149 9.1756 7.3923 3.8453 -0.9308 -1.4293 -1.7749 -2.4954 -0.6350 -17.1538 11.6964 15.7897 21.5631 25.0743 21.2867 19.0704 20.7015 14.1826 0.0839 -7.4606 -11.2687 -14.0743 -15.6804 -14.7951 -10.8010 -12.5161 -17.6133 -13.8075 -7.4286 -24.0031 -6.9283 -6.6188 -5.8684 -5.5056 -3.6164 -2.5751 -3.3395 -0.3521 -3.7955 -8.6077 -6.1256 -4.7755 -5.6371 1.9017 5.4236 6.9088 17.0056 9.6477 17.8081 5.0500 1.0400 4.3584 5.7473 5.9965 7.1951 11.1543 16.3999 17.9219 13.7898 8.5105 6.6032 8.3888 3.1208 -8.4853 -12.1692 -10.3091 -9.4060 -16.3383 -22.0676 -31.4510 4.0785 3.7601 3.2477 4.5535 2.8617 2.8959 4.0341 3.3572 -6.7255 5.4042 2.4187 1.2230 0.1581 -3.0654 -1.9472 0.8423 -1.1312 1.2092 -3.2861 -23.8888 7.3239 6.9150 9.3764 18.0744 16.9415 9.6050 5.2932 1.9763 2.0297 6.2840 11.8379 10.9565 8.5711 -5.0433 -15.8094 -21.0356 -22.5868 -18.9436 -8.4281 -23.3379 -1.7885 -4.8321 -3.3241 0.9574 -0.7694 -4.0018 -4.5674 -4.5260 -2.6221 4.0186 7.6808 10.9687 1.1618 6.5552 7.2914 5.9801 0.8194 -0.4241 1.0077 -19.5855 2.5382 2.7665 6.6332 9.6977 12.0223 5.6888 5.2502 -0.0648 0.1790 1.7261 3.6718 4.6019 -4.2546 -5.2838 -8.6175 -3.5030 -2.8900 -5.1451 -3.1562 -21.8607 -1.7959 -1.6410 -1.3048 -1.9856 -1.1093 -0.5878 -1.7759 -0.7425 -2.7139 -3.3222 -3.9402 -1.9787 -4.1788 -1.9573 -0.0518 0.6181 5.7386 8.4544 14.2974 -0.0227 1.9227 3.4879 4.9261 5.1627 4.2257 4.6417 3.0455 -0.4550 -1.9330 -4.6665 -6.5225 -3.7829 -5.2713 -1.4162 3.7054 5.6573 7.0460 2.7847 -1.9201 -20.6381 5.4951 4.1184 5.0794 4.1307 2.3794 0.0327 -0.8237 -1.5895 -3.7505 -6.6385 -6.0766 -2.2466 -0.4080 -4.9327 -5.8400 -1.6035 0.3752 6.5602 12.3259 -6.5875 6.8048 2.6542 8.2117 4.3594 9.5824 4.9978 9.2805 5.4616 0.1801 2.8218 4.8979 8.0336 1.3602 -0.8584 3.0641 -6.3167 -11.4947 -13.9096 -9.3665 -29.7643 20.4394 23.8508 19.9523 13.4804 4.7063 -0.8810 2.3157 4.3508 4.6054 2.6117 -2.8160 -5.7052 -5.0189 -10.4846 -14.5942 -12.8055 -6.1098 -12.0585 -7.7055 -18.1337 9.9351 14.3502 19.5530 16.3727 7.0796 2.9949 -1.1604 -3.2246 -3.9592 -2.8637 3.6007 8.3194 1.5624 4.0080 -6.2282 -13.2960 -15.2078 -10.4525 -5.9946 -25.3891 5.5354 4.2644 3.4234 3.5650 3.9406 1.8276 0.2709 0.3493 -0.0020 -0.7304 1.8692 2.1692 -1.3779 -0.9234 -5.0911 0.1335 -1.1518 -0.8308 -1.2357 -16.0052 14.7180 8.4248 6.7389 6.9731 8.7963 12.7964 14.6589 10.3137 3.2909 -3.7235 -5.8542 -6.9864 -6.8348 -4.2701 -4.4326 -5.4747 0.7281 -9.3904 -11.2298 -29.2424 9.1842 9.7851 10.8472 12.9244 10.6955 6.8423 4.6037 0.7650 -2.0301 -2.7855 1.3686 5.5053 -1.4464 -8.6948 -6.8949 -4.4565 -9.3587 -11.9106 -7.0277 -17.9162 9.5187 11.0469 10.8992 10.5477 12.4336 17.9310 22.0092 22.1029 21.2249 17.7472 4.1368 -3.9142 -11.6583 -18.8125 -22.4708 -24.5855 -14.9292 -12.6855 -22.7109 -27.8313 12.0341 16.6419 15.8489 10.0396 3.3655 -1.8695 -5.2143 -9.4106 -10.9745 -12.0991 -12.0450 -11.1231 -7.2635 0.0306 12.4231 12.6061 4.1888 -1.9085 0.6831 -15.9537 -1.3674 -0.5228 -4.0775 -3.8100 -1.0761 13.7500 19.2044 15.7231 9.5615 7.9996 6.5298 3.6199 0.5658 -1.3324 -7.5527 -6.3571 -7.0946 -6.2162 -8.1181 -29.4293 7.3145 11.1318 15.8219 21.2414 19.7326 13.4391 10.1286 13.1458 13.5220 4.5818 -4.9865 -10.4663 -12.4137 -8.4915 -7.5278 -14.5074 -14.9519 -10.6855 -18.9716 -27.0572 -2.6938 -1.0116 0.5434 -0.5197 1.2510 2.7810 -3.1452 2.3461 1.3093 1.0916 0.2998 1.6109 9.4326 9.1761 -2.9635 -1.3175 -1.3459 -2.3687 -0.4622 -14.0137 -0.6799 -0.1341 0.7366 1.5016 2.3553 1.9877 1.8684 -1.1687 -1.7388 -0.3259 3.2899 3.7096 2.8005 -0.4016 0.0798 0.8146 0.2490 -0.5574 0.0812 -14.4681 -4.5962 -1.7335 2.2323 4.9758 4.1965 6.1120 6.3004 -0.2420 -0.4268 -3.4101 -1.9343 1.8578 -0.3352 -3.5061 -2.9167 0.7871 0.7063 -1.6356 3.3878 -9.8196 13.1227 13.7568 12.0750 11.2378 13.9543 15.7037 14.8582 9.5334 0.1292 -3.0889 -7.7565 -10.9896 -5.4579 -2.1373 0.1387 -11.7169 -13.0933 -7.4977 -12.3640 -30.4077 29.3087 22.8979 20.4744 14.9176 7.8398 2.3822 -3.7671 1.0563 -3.5131 2.1709 4.1060 -2.4865 -7.3802 -9.3667 -9.8213 -8.8247 -9.4073 -14.9259 -16.1530 -19.5079 8.2477 12.7093 19.4580 20.8257 15.6422 8.6762 4.5782 4.1335 5.6439 14.7051 12.4104 11.4909 -6.3291 -17.1032 -20.7835 -24.4558 -22.5241 -14.5649 -5.2278 -27.5328 0.7217 4.0954 5.2473 1.5270 1.7119 3.5822 -1.4614 0.8720 -1.3606 -1.4757 -0.4869 1.0336 -0.7433 2.0743 0.6152 -7.1442 0.5920 6.3583 2.8714 -18.6301 20.3582 21.7378 21.8475 15.5031 8.5323 5.5254 -0.6584 -4.0833 -5.5901 -5.8466 -2.2597 3.0499 -4.1864 -7.3615 -5.3521 -8.6549 -8.7165 -10.8646 -9.6599 -23.3202 7.9037 5.3843 2.5963 1.7924 -4.1648 1.1119 1.0025 0.4959 -1.4533 -3.0047 0.7379 1.8636 2.4329 0.9500 -0.1706 -0.3177 0.7889 1.1735 -0.4730 -18.6499 -1.9942 -2.2404 1.0361 1.1275 2.4246 0.9687 -0.7731 -0.4350 2.7773 4.6081 2.2666 5.9874 1.4863 -4.3135 -1.0943 3.1059 -4.9201 3.6382 1.5522 -15.2082 15.5189 17.8940 20.2047 21.1613 16.5719 9.8830 6.2072 1.5961 -2.8649 -4.2350 -1.2109 1.6294 -0.3114 -6.2890 -6.6470 -6.6461 -16.7097 -18.4834 -19.5782 -27.6908 4.5707 9.9453 16.9194 16.3836 7.5074 1.7185 -1.6704 -4.6470 -7.1710 -7.5216 -6.2372 -1.4728 9.1990 4.5872 4.2446 -3.1203 -10.1462 -8.9093 -2.0237 -22.1562 10.2043 6.2265 8.0480 6.0822 2.9673 -0.2686 -0.4905 -3.3479 -4.2925 -4.0224 -2.6407 -3.8742 0.6899 3.7007 5.8631 8.8480 -1.0855 -6.5692 -4.1304 -21.9079 12.9155 18.0966 19.8262 14.0767 6.9947 1.6106 -0.8791 -6.2102 -7.3162 -10.2835 -10.9883 -8.3441 -1.6557 0.0080 -5.7847 1.4192 -5.5022 -4.2471 3.9784 -17.7147 5.1637 8.0679 12.5738 17.5701 14.9252 4.1592 0.9276 -0.3161 0.0005 3.6819 10.2605 3.1026 -2.7955 -2.8307 -1.1861 -9.2862 -11.7976 -5.3295 -15.7634 -31.1274 6.9673 6.7974 6.1367 10.4782 15.9809 13.2295 4.9742 0.4813 -4.1310 -5.6911 -5.9712 -1.2511 7.3306 2.6442 0.3224 -0.8372 -7.4799 -9.3018 -8.5882 -32.0913 13.1396 12.9563 12.3478 9.0857 2.3849 -0.8490 -1.4825 -4.2362 -7.2804 -7.4639 -6.8853 -6.4479 -4.2443 -8.2231 -3.9022 0.4289 0.1896 3.7001 6.9697 -10.1879 15.3330 18.1603 22.1112 21.6848 13.1886 10.5333 8.8464 9.6626 12.4137 13.9577 10.1420 -0.2864 -11.4409 -16.9791 -19.7494 -15.6645 -19.7643 -22.5000 -23.5283 -26.1208 6.8457 -6.8649 5.4271 5.2712 -1.3685 5.0072 1.5557 0.4655 -8.6121 0.8133 -3.3697 -1.5367 2.2231 2.7614 0.6905 -0.9517 3.9757 2.5271 6.8378 -21.6975 4.0198 5.3861 1.4690 -2.5892 -0.7717 2.5302 1.6444 0.6228 0.0646 3.2916 3.8112 -0.6089 2.1623 0.1459 0.1339 0.1325 -1.6768 -0.5331 -0.5013 -18.7335 -7.1586 -2.6175 0.5796 4.1833 -1.3849 0.3608 -8.9238 -4.4835 -1.6026 -5.1856 -8.3891 -1.4730 9.5706 -8.3291 11.6042 11.1480 -0.2734 4.8182 12.1074 -4.5509 12.6166 14.8923 16.2633 17.1269 18.2744 19.2870 16.5858 10.4162 6.9131 6.3384 2.9142 -1.3754 -10.9051 -16.4865 -19.5016 -17.7616 -6.9047 -16.5161 -23.1066 -29.0706 10.8009 12.8094 14.6516 18.7246 16.6285 12.1161 8.7229 6.4887 7.8806 10.1330 4.1720 -4.3839 -6.8368 -8.8011 -8.4415 -14.6175 -16.9291 -13.3638 -20.2402 -29.5143 6.2190 6.4291 6.1608 8.0273 9.8018 9.8514 6.5431 7.0773 5.8326 5.6116 8.2150 7.4679 -0.2957 -6.5386 -7.9000 -7.1888 -10.2895 -12.2362 -14.0338 -28.7541 8.0266 9.6417 12.2059 15.4655 15.3945 10.4886 6.7757 2.3300 3.3664 6.5551 2.3159 -4.1967 -9.2962 -11.8145 -9.9788 0.0400 -6.7484 -6.4088 -11.3916 -32.7710 -6.0361 -3.7035 -0.2831 1.4674 0.7756 0.3247 -0.7445 -0.5024 -2.1341 2.7813 -0.1459 -3.5635 -3.9893 -4.2930 -0.5948 5.6527 2.1314 14.0267 12.5554 -13.7247 -14.2301 -11.8469 -5.4438 -2.2899 3.4911 0.4713 0.7187 -2.7114 -1.5588 -2.8210 -0.0887 1.5060 2.8286 9.3500 12.2742 8.0817 12.1298 7.7574 3.4239 -21.0423 10.2809 9.4545 10.3039 12.6386 19.4980 22.5798 19.2258 15.3342 18.1620 10.8305 -3.6184 -11.2472 -16.1533 -19.0561 -21.3742 -19.1215 -7.0133 -13.0322 -12.3255 -25.3663 -7.1992 -4.0950 -0.4752 -0.0397 -1.2923 1.2680 2.1020 -2.0159 0.5678 -4.1475 -2.2860 1.2468 2.9160 3.7433 -3.5078 6.2645 5.1466 3.3947 11.0482 -12.6391 -1.4558 2.6350 2.5261 -0.4261 7.9067 7.3761 10.5050 2.1413 -4.1382 -2.8818 6.9021 5.4317 4.9534 4.5363 -2.8372 -3.4508 -1.0165 -1.6706 -9.0235 -28.0132 5.4483 7.0338 8.8713 13.9617 19.3432 16.5740 12.5536 13.7232 15.1487 4.1979 -4.0767 -8.9863 -10.9482 -13.1722 -11.3412 -7.4945 -4.4916 -3.5707 -22.8865 -29.8879 12.0309 14.2862 17.8716 18.2606 13.3426 8.9006 1.3455 -9.4180 -11.1012 -15.4444 -17.4768 -17.9985 -12.4515 -5.2431 8.8612 5.5913 6.3114 -1.1018 0.2013 -16.7679 16.8689 16.8256 18.5632 14.4683 8.2457 2.7262 1.7491 0.4673 -4.4682 -6.2835 -4.3280 2.1966 -4.4856 -9.6447 -7.5807 2.0175 -9.6747 -9.7002 -3.6650 -24.2978 10.3443 9.5624 9.5859 9.3945 7.7097 5.9502 5.4955 7.0578 3.8970 1.8002 2.9026 0.8300 -0.8072 -3.4283 -8.7861 -9.4681 -7.6897 -10.0581 -8.5829 -25.7097 8.4589 13.9060 18.3570 21.8577 20.8363 13.5168 7.0018 3.5585 0.2984 -4.3657 -7.6435 -5.4526 -6.4991 -0.0823 -10.9834 -14.4890 -9.9873 -4.5713 -15.9935 -27.7237 -2.7942 -1.0695 -0.1214 2.5877 1.5098 1.0893 1.5717 3.2131 6.2989 10.9335 9.8682 8.6743 4.8838 1.8707 -1.0579 -3.7852 -5.7917 -7.6708 -7.9578 -22.2525 25.1784 20.8581 17.0052 12.9557 7.7424 3.9815 6.0072 3.4663 -1.9041 -8.1079 -11.4077 -11.8642 -8.7727 4.7601 2.8284 -7.3135 -15.0133 -13.8178 -7.5999 -18.9821 13.6088 10.9215 11.1892 11.7633 13.2294 6.3264 1.9267 -1.7303 -3.3278 -4.4979 -7.2855 -3.9683 5.3311 -1.6679 -8.5378 -6.9275 2.8396 -8.2151 -5.8206 -25.1573 20.0774 19.5893 17.1250 15.9021 10.2327 5.8537 4.1551 8.7468 6.2824 -1.6643 -0.8142 -5.7458 -5.8553 -6.7971 -4.8129 0.1863 -14.4064 -22.1846 -19.7857 -26.0848 1.9579 3.5459 5.6047 9.8227 17.1510 16.9383 8.2371 2.3829 -0.9137 -2.6491 -2.1733 3.0262 6.5399 -2.8952 -2.9389 -0.9532 -9.2242 -11.9604 -12.7131 -28.7857 2.7147 5.0851 5.9010 8.2492 9.0379 12.5344 15.7585 7.9343 2.8699 -7.6515 -7.5935 -7.0792 -7.0329 -0.2973 -4.1153 0.8146 0.8342 -8.0293 -6.0641 -23.8708 -1.8671 0.2021 1.1744 3.3514 3.8114 4.6535 6.4708 5.5903 4.6873 6.1200 7.1503 10.8820 10.1467 5.0564 -4.0471 -7.0223 -5.8028 -7.0328 -13.2761 -30.2485 14.4582 17.2732 16.2772 7.1332 0.6525 -4.4947 -7.7910 -9.8395 -12.5801 -10.7856 -8.8712 -4.2717 7.2719 0.7198 1.5521 3.5804 -2.9845 0.1717 6.3548 -13.8266 28.6852 25.8888 20.5479 11.1546 4.6177 1.8681 3.9247 1.2950 -2.9240 4.3050 4.3461 -5.4196 -7.8904 -10.2821 -8.2802 -13.9910 -11.2895 -12.5380 -13.7725 -20.2458 6.9489 8.2782 12.9177 18.1269 10.1196 2.5932 -1.2838 -5.9588 -9.0612 -10.7381 -10.6395 -8.4104 -4.0818 7.0965 0.3344 2.1418 2.2817 -3.7137 1.6102 -18.5618 6.2919 7.1483 7.7499 10.3266 12.7585 21.8234 21.7899 13.6697 7.2737 9.3185 13.4418 -0.1530 -6.4198 -9.4554 -7.4143 -12.4542 -21.2295 -24.5545 -24.4585 -25.4529 3.2078 1.1604 2.3820 7.1676 15.6309 19.6735 9.8897 7.8474 10.1305 10.4050 -1.8220 -9.0708 -12.7476 -14.2980 -11.7869 -3.2366 -4.1439 -6.6114 -0.0121 -23.7655 4.9484 5.9562 10.0092 16.2669 12.9260 3.9525 0.4920 -2.9838 -4.7825 -5.0706 -3.0972 4.4166 5.1484 -3.0885 -2.2935 1.8467 -6.6209 -8.5405 -3.2672 -26.2180 9.1190 11.7308 15.3181 20.5759 15.7183 7.6900 3.7341 -3.2723 -6.7161 -9.0437 -8.0703 -0.5930 6.4087 3.5269 3.0413 -8.4178 -14.7425 -12.7049 -6.9905 -26.3121 1.4852 -0.6829 -1.5690 -0.2848 5.5052 12.8631 6.4129 0.4626 -3.5500 -5.4162 -3.9006 -1.4888 7.5205 5.6490 1.1393 5.5204 -1.2344 -6.2194 -3.0728 -19.1390 11.9158 15.3244 18.2371 17.8689 12.9861 8.5734 2.6935 -0.4620 -0.3115 4.3187 1.8359 -6.5328 -11.3944 -12.3343 -10.2127 -3.2123 -10.7404 -11.6243 -6.0915 -20.8377 -1.1406 4.4681 1.0243 1.7567 0.8452 1.0568 1.7113 1.4304 8.2151 0.5703 1.2053 -5.7909 -4.3638 0.9165 -4.5872 3.4354 6.9859 3.9875 -3.5121 -18.2142 18.8171 22.5033 16.7157 10.3549 3.9514 1.6962 -0.6346 -5.9992 -6.8816 -7.3001 -7.9076 -4.3326 4.9348 4.6458 0.9437 -3.5521 -9.3640 -2.4386 -11.4118 -24.7409 -0.9409 0.5904 2.2794 4.9547 5.8743 8.7846 11.0088 11.1838 11.6958 14.1355 8.9116 2.5256 -1.8779 -5.6262 -5.5753 -9.1754 -9.0981 -12.4659 -11.4699 -25.7149 0.4141 2.8215 2.0838 3.1886 4.2216 1.7188 4.6179 2.9704 1.6545 -2.8460 -0.9511 2.6537 -1.8008 0.9825 1.2384 1.5282 -0.7271 -3.0940 -0.8090 -19.8659 6.0430 4.6516 4.3017 7.7179 6.7963 6.2910 8.7476 8.7592 7.7014 12.1586 8.0227 -1.3414 -6.0075 -8.1097 -6.8511 -6.6141 -5.8068 -8.7086 -9.3302 -28.4218 7.1395 6.4611 6.4770 6.5752 5.7360 5.6174 3.8338 -0.3402 -1.9803 -2.2319 -4.1316 -3.2411 -2.2252 4.1950 1.9636 -1.7425 0.5431 -3.5115 -6.8529 -22.2844 17.8843 21.4402 20.6904 15.9517 9.7051 2.5656 -1.5516 -7.4554 -8.8729 -10.2263 -8.6781 -5.1896 -0.7045 -6.7680 -8.2898 -6.9326 1.3954 -3.2208 -6.0504 -15.6928 10.6767 10.3544 18.1231 11.2879 6.1413 -0.3610 -2.4504 -5.1076 -4.9943 -4.9704 -2.3126 5.9757 0.9523 -4.2427 -2.5152 4.9197 -8.3019 -9.0057 0.3384 -24.5078 9.9161 11.8977 18.2327 24.4645 22.2618 14.5543 11.0874 11.6473 16.7269 16.7802 10.9221 4.3259 -12.8739 -20.0422 -22.5408 -24.1296 -20.9142 -22.6765 -24.3668 -25.2731 9.4023 7.3715 11.9062 12.5120 7.0268 13.6459 7.2747 2.8388 14.6515 22.1573 24.2647 6.5863 -1.1334 -12.1075 -18.8356 -21.0343 -18.7149 -21.3705 -23.1378 -23.3040 6.1154 6.8878 8.0486 2.0830 11.4555 24.4875 10.2548 8.5452 8.1934 -4.1865 11.8854 1.3485 1.9895 -14.5678 -11.0286 -3.4615 1.3428 -19.7548 -24.2069 -25.4313 10.3570 12.8522 17.3265 22.8368 16.6859 10.9743 8.2198 6.8557 9.3432 12.2609 5.1561 1.5410 1.3448 -11.6896 -19.8579 -22.4891 -19.3409 -16.0157 -19.9891 -26.3720 -2.2958 -3.0198 2.5524 6.5326 5.0549 2.8939 1.6085 1.4431 -0.1701 -2.0055 1.1867 -1.3016 -2.2987 6.1240 3.0188 -0.9646 2.6135 4.0735 0.2584 -25.3041 3.3425 -4.9398 1.7857 0.9810 8.2974 13.8760 7.3422 4.3951 4.0317 8.9378 9.1371 -1.7588 -9.1168 -12.4667 -12.0238 -9.0772 4.3501 -0.6556 4.4305 -20.8684 2.6724 2.4627 -2.5441 -3.3045 -4.2917 -1.4508 1.5865 -1.0572 -2.1109 1.4870 -1.0006 3.5002 3.7107 1.3794 -1.6261 0.0378 2.0162 0.3261 3.2452 -5.0385 3.1268 4.8784 8.6218 13.5865 14.1019 7.2490 1.4764 0.4142 -1.4440 -0.1256 6.7242 13.6333 7.9001 5.1808 -8.7618 -15.9427 -17.5740 -13.2732 -3.9031 -25.8689 8.7515 17.2518 23.5164 15.7690 8.1574 4.9814 0.5026 -0.4621 -1.5217 2.4458 11.1982 12.8925 8.2107 -10.1894 -18.8969 -20.9839 -19.6436 -9.2705 -7.3159 -25.3934 11.7980 12.1448 14.6065 20.2682 20.5368 14.0544 8.9695 7.1447 9.3182 10.2279 -1.3945 -9.8630 -14.2310 -14.2600 -11.2940 -5.3186 -14.6453 -16.0278 -14.7441 -27.2906 8.3692 9.6882 12.8542 17.3005 21.1340 18.5917 11.2777 5.5517 0.5470 -2.3437 -2.3633 -0.2054 0.7833 -4.4844 -5.7547 -6.4185 -15.2118 -20.9890 -20.6002 -27.7265 3.2540 3.5495 5.6572 11.4443 18.6822 14.2818 7.9623 5.8581 7.6636 11.2380 10.4719 -0.3434 -0.9127 0.3323 -9.6682 -12.3368 -7.0303 -17.5040 -22.5944 -30.0053 10.5668 4.7765 4.8789 5.9385 13.1029 20.5979 14.5257 8.6496 2.4271 -1.1640 1.2029 9.4957 -0.0200 -12.5730 -14.8513 -9.4220 -4.4288 -12.9535 -14.3720 -26.3782 3.6092 2.1429 -0.2581 2.1516 6.0252 4.4742 4.3520 2.9527 3.6102 2.6901 -0.0942 2.2564 1.3309 -0.5758 -1.1090 0.1191 -0.1180 -0.1015 -5.5503 -27.9075 8.4206 12.6530 18.9633 23.9855 21.2540 9.7237 1.5121 -0.7361 0.7545 -1.5581 2.4158 9.9186 6.7278 3.6705 -12.4971 -19.8574 -23.2581 -23.7200 -10.9203 -27.4525 22.1951 16.4633 13.2055 7.4970 2.2280 -2.4528 8.7730 10.6870 4.9929 1.1178 -5.3802 -8.2471 -5.7256 -8.8078 -8.3540 1.5835 1.5054 -11.6521 -13.9564 -25.6726 -7.9053 -6.5840 -6.0103 -4.8986 -4.2425 -4.7462 -6.7261 -8.5401 -8.6906 -8.8402 -5.6306 -0.7673 8.6501 5.0800 13.9798 11.4953 10.0314 17.4290 14.9683 -8.0522 11.9359 8.4098 2.8637 0.1621 4.2653 2.6990 1.2433 -1.9101 -2.5608 -4.4372 -0.7370 5.0345 2.4512 -1.2451 -4.6924 -2.0267 0.3932 -0.7445 -1.8229 -19.2813 -1.3202 3.8184 7.4609 11.6391 16.2849 25.4929 15.8707 1.4126 12.3759 21.2527 8.1587 -3.8943 -14.7860 -10.6930 -17.9239 -16.3824 -1.7644 -13.0054 -19.3451 -24.6522 9.8443 9.9627 12.5201 13.7261 10.3992 6.6290 2.9281 -0.7644 -3.9695 -5.3737 -8.3704 -7.5382 -1.7207 5.7599 1.9410 -0.8146 0.5436 -5.6632 -12.2155 -27.8236 6.4290 4.7082 3.9317 3.1702 -1.6353 -3.6078 -6.3150 -9.1986 -10.3233 -9.8065 -5.8063 -1.3404 -0.7673 -2.2448 -1.2797 7.1795 3.2561 15.5273 14.8629 -6.7401 23.9506 22.1558 17.7456 14.4350 8.3329 3.1023 4.3134 8.6024 3.8015 -3.9642 -10.7800 -9.6229 -10.8860 -10.6376 -8.0083 4.7524 -6.4851 -13.7226 -12.4871 -24.5980 9.5760 11.4366 12.9012 14.4846 16.8425 19.5473 19.7042 15.2736 12.0272 11.0446 7.4677 1.1314 -9.0848 -18.3215 -23.8214 -23.1710 -19.9932 -10.2715 -17.3599 -29.4137 -3.4431 -3.1613 -1.9102 -0.6935 1.3870 1.2966 -1.0892 -2.4642 -3.0407 -4.4927 -5.4209 -4.2773 -0.5358 0.4090 1.2794 5.8990 14.3402 3.7638 11.1512 -8.9972 15.2464 18.8014 25.3166 19.5775 11.0313 6.5896 5.6381 2.9552 5.1185 13.2540 13.6736 8.5584 -8.3365 -15.9401 -20.3756 -21.2859 -21.2275 -19.3217 -15.1325 -24.1407 3.1035 6.1792 5.0462 3.5926 7.0741 6.4046 9.9419 7.7684 4.2113 3.6277 6.5092 5.5900 -1.7178 -6.4492 -7.8871 -6.9582 -5.1379 -8.3058 -10.5436 -22.0490 -0.7280 0.5704 3.9717 5.9469 6.0780 4.0770 1.2426 -1.3458 -3.2314 -4.6819 -6.2378 -5.0198 -1.2080 10.5808 2.6382 3.7712 3.8446 -1.7555 -1.1558 -17.3572 5.3326 5.4267 9.8240 16.2001 13.6887 6.9510 1.1917 -1.6723 -2.5788 -2.7648 2.6931 5.4843 -4.2095 -9.6143 -6.2919 3.6211 -3.8754 -6.5263 -5.2823 -27.5977 2.5771 3.4727 5.4467 8.8349 9.8870 12.1341 12.0826 7.7444 4.5255 0.7889 -2.0382 -4.7604 -5.7542 -4.6241 -2.4718 -4.0958 -6.2797 -4.6267 -9.5398 -23.3031 14.7846 16.0256 18.4400 18.7731 12.4129 9.2087 4.9463 5.2837 7.9434 9.1983 5.6775 1.0431 -7.1678 -12.3799 -13.9635 -9.4290 -13.5075 -18.2553 -21.2672 -27.7670 14.0860 12.6160 17.7362 22.8480 13.2766 7.4189 5.7487 1.8704 2.3287 6.7312 16.7040 13.9396 0.1199 -14.2720 -18.2397 -22.3862 -24.8172 -19.6941 -10.4326 -25.5823 1.2702 -1.2740 -3.7100 -0.5628 -4.5219 -4.4580 -7.7100 -8.3547 -7.0524 -3.3805 -3.0927 1.9780 6.7217 16.8392 12.2288 6.1018 4.3647 3.7046 7.0648 -16.1569 -1.5691 -0.6625 0.8145 2.7114 4.5683 6.3808 5.3169 3.3697 3.7409 -1.1329 1.3502 1.4333 7.1092 8.0819 7.4140 -0.3489 -3.5222 -5.2023 -8.9373 -30.9159 8.8791 11.5486 17.4354 21.9590 18.7721 13.0614 12.3597 15.8383 7.9901 -4.7504 -11.1404 -17.0402 -20.1418 -20.5768 -16.8543 -10.2710 3.5082 1.5897 -6.0317 -26.1349 1.4924 2.3041 3.6995 3.9735 2.9478 1.4182 -0.1153 -0.7081 -1.6935 -4.7155 -3.8966 -1.0552 4.3924 3.5582 4.7903 3.4573 4.4498 3.7588 -4.9783 -23.0800 19.7104 23.5312 26.4663 21.1276 13.4352 11.0142 11.5216 12.6431 11.6620 1.8352 -2.6313 -2.1531 -10.9044 -16.4683 -19.1821 -21.4207 -21.6631 -20.6795 -14.5440 -23.3003 -7.3825 -5.1236 -2.0803 -0.3985 -2.1515 -3.3191 -2.5398 -3.6553 -4.6673 0.2450 -1.1380 0.4163 -5.0235 -3.1123 1.6781 0.5456 9.2542 19.9831 16.2303 -7.7611 2.5108 2.1845 2.6268 3.2213 4.7277 4.9151 4.4068 2.5115 -1.2667 -1.0470 -0.5840 3.1980 11.3786 3.1343 -1.5396 -0.7790 -4.2909 -5.9553 -4.0558 -25.2973 1.3099 3.8149 5.9305 6.0290 6.2561 6.5634 6.5483 2.2558 2.8164 5.8479 6.7553 3.8567 2.7371 -0.0626 -3.8527 -5.1436 -5.5124 -7.3236 -9.2045 -29.6219 6.9414 7.8896 11.9174 19.4391 22.8159 17.5130 12.8967 11.7403 13.3801 0.6255 -8.6365 -13.1338 -15.0777 -14.1269 -8.2615 -12.9862 -16.1846 -10.2908 -1.8314 -24.6297 13.6675 18.7539 23.7644 23.5665 14.5584 8.2788 5.9566 3.8037 5.8231 9.3954 3.8096 -3.7071 -3.0809 -2.7965 -15.3910 -22.2338 -22.7083 -19.7578 -17.2327 -24.4698 6.8878 4.6215 4.0830 1.7534 6.3161 9.3030 9.1793 1.8539 -3.8953 -6.2684 -7.2830 -6.1167 0.8013 5.3564 -0.9241 -2.6976 1.7576 -1.1627 -4.9125 -18.6528 11.5366 9.1379 9.1023 13.3107 15.2931 8.4262 2.0019 -1.8545 -5.3470 -10.4980 -13.1650 -8.7617 -2.8037 6.5213 -2.9746 -1.1653 2.8950 -3.9002 -0.4074 -27.3478 8.1149 5.2054 4.7193 10.9119 14.2393 9.7159 2.7743 0.0628 -0.9042 2.5046 6.2675 4.5297 -1.7121 -2.7212 -6.4591 -8.2032 -12.1525 -9.7960 -4.5542 -22.5432 10.4270 10.1489 7.8411 6.9092 5.2675 3.1553 3.1860 0.3063 0.4719 -0.8710 -0.6868 -1.1505 -4.6137 -2.9984 -2.9661 -2.8540 -3.0302 -2.2057 -5.9823 -20.3547 16.5991 18.8180 20.4139 16.0812 15.2582 13.6000 9.7730 4.8200 7.2670 0.5444 -5.1929 -8.9752 -12.2178 -15.2451 -9.0857 -9.6324 -11.9042 -7.0554 -15.8485 -28.0175 6.9984 7.5807 9.7172 14.2935 21.1422 18.8026 13.0729 13.6068 15.6061 5.7873 -4.4176 -10.6630 -14.9625 -15.2760 -12.1485 -4.9859 -13.8661 -15.0801 -8.9505 -26.2577 4.8529 5.9107 5.9519 3.1046 -0.7986 -3.8000 -3.3218 -6.5949 -9.5964 -7.6925 -7.0336 -3.5031 2.4411 -0.1901 9.1699 13.0532 0.4243 10.9470 3.0406 -16.3654 2.3975 0.4924 3.8005 6.1460 0.9043 2.1381 -0.0106 2.9239 -11.7677 -3.8359 -3.4925 0.8716 3.4740 -2.8287 -3.8786 1.2858 6.8931 -2.1701 3.3894 -6.7326 -3.5428 -1.3900 0.9285 2.4806 2.9675 0.7980 0.9612 0.2854 -2.0562 -1.3222 -1.9025 -0.0059 8.6474 4.6327 1.6964 0.3984 0.9512 1.7069 1.4812 -17.7159 17.4798 18.9995 21.9699 20.6967 14.4015 9.2408 9.2963 4.6834 -0.5765 -2.0466 -4.6870 -8.1340 -10.8400 -6.9387 -4.9129 -2.3346 -9.5282 -16.6374 -22.8620 -27.2700 30.2051 29.0816 22.7010 15.9702 13.2347 12.3034 7.9736 1.7110 -2.9050 -5.8220 -9.0457 -11.4933 -10.9824 -10.7128 -9.7198 -11.4470 -12.1083 -14.3720 -14.3489 -20.2236 4.3667 5.6948 7.6382 9.1345 7.9965 5.9946 4.8983 4.5838 1.3099 -1.1182 -2.4032 -2.5986 -0.3123 -3.8248 -3.3874 -4.6492 -2.5381 -4.1010 -4.4278 -22.2567 13.3799 15.9919 18.2801 18.5738 14.5051 15.0610 12.6361 1.8684 -4.4789 -7.5763 -7.3687 -5.7285 -8.7693 -10.0970 -1.0795 0.7696 -6.5956 -14.5402 -16.2583 -28.5735 1.2989 -0.2985 -0.1264 2.2528 6.1919 9.0850 11.5888 9.6084 6.4565 4.6999 3.8291 -3.1433 -2.0178 -5.4377 -3.5892 -2.4088 -3.4525 -6.5279 -6.8848 -21.1245 6.6990 6.9952 6.9900 10.6461 18.1760 23.4925 20.7738 19.3068 14.5258 4.1679 -5.0313 -10.5967 -15.7569 -18.7535 -19.3572 -18.4953 -9.1098 -8.3084 -3.5080 -22.8561 0.3614 -3.0919 -2.2049 0.2924 3.5194 12.3203 10.5339 6.5081 2.9888 3.7587 9.6208 6.5139 -3.3458 -8.5883 -8.7468 -4.7300 1.1707 -5.5824 -3.0982 -18.2001 3.6833 5.1669 7.0034 5.1138 6.2451 5.1324 2.9024 -0.2756 0.6913 0.7688 2.7471 -3.0081 -4.2841 -1.6790 0.6913 -2.2915 -1.1739 -2.5591 -2.7007 -22.1738 11.4726 11.0663 10.8078 10.4446 10.6033 12.3965 13.0646 7.6243 1.8855 -2.1733 -3.8981 -0.7658 2.9887 -2.4982 -10.2150 -14.2533 -12.1696 -5.4330 -8.3400 -32.6080 -6.7179 -4.6131 -3.1636 0.0876 0.6888 1.0614 0.5541 -3.5030 -3.5922 -2.2597 -0.8136 6.0096 11.8925 2.9252 -1.1450 -0.4619 -0.0294 2.9522 6.4894 -6.3616 5.3482 3.7310 5.0957 3.1029 1.6780 3.1184 0.5161 -3.5018 -4.5034 -6.3519 -7.8639 -5.6580 -5.1767 -2.3928 0.1325 3.3098 7.8210 11.9881 4.4190 -14.8118 8.2697 5.8835 6.0215 10.4427 12.0342 7.5709 3.5443 -1.0166 -4.1313 -6.5619 -5.0660 -0.8575 7.1102 -0.6052 -4.0956 0.6756 0.8926 -4.2551 -6.4788 -29.3772 2.0192 3.9566 4.9448 8.0890 14.6263 15.3545 12.2775 10.3302 7.2993 12.5826 7.7803 -2.3944 -7.4949 -10.2984 -9.7837 -7.3581 -7.2692 -6.1954 -16.7366 -31.7295 12.8428 15.9200 16.2497 11.8540 3.8000 -1.0057 -2.5059 -6.5320 -8.3900 -9.9165 -9.6596 -6.0113 1.0447 13.8469 7.3566 -4.1906 -11.0801 -8.0052 3.2361 -18.8537 17.2020 18.6360 23.3502 20.5862 15.5823 12.7495 6.4445 -6.6661 -9.1710 -15.5663 -21.8272 -18.4838 -16.7082 -14.2582 2.8891 3.6115 -0.4823 -0.0577 2.5754 -20.4057 11.2405 16.2045 19.5245 19.0279 10.8160 4.2621 0.0074 -4.8018 -7.7494 -9.5065 -10.8518 -10.4718 -6.2617 1.5892 9.5055 4.0459 -4.2300 -9.8946 -9.4119 -23.0441 21.5981 16.6548 9.2131 4.2901 -2.7752 -6.0814 -5.7172 -6.8518 -5.3057 -3.6255 1.9348 7.8994 -1.3260 -8.0365 -10.6481 -6.5275 -3.0468 3.5257 5.6627 -10.8371 2.3529 1.9098 1.1705 -1.0129 0.2322 -2.1724 -2.7849 -0.3004 1.1108 2.9625 0.3261 -2.0946 1.0272 3.4696 1.9753 1.1513 2.4885 2.1442 0.7739 -14.7298 -1.7003 -2.4848 -2.4346 4.7038 24.9669 27.0962 7.9463 4.7152 0.1920 -0.8991 -0.8489 9.9068 -2.4800 -9.4907 -11.9321 -1.8570 -6.2441 -11.0862 -11.2891 -16.7804 14.9206 17.9220 23.4494 28.4771 23.9338 22.5858 21.7793 9.3991 -3.6346 -10.2702 -14.3748 -16.3264 -19.3026 -18.4585 -17.3134 -12.2710 -10.5930 -10.9994 -7.9141 -21.0092 10.8472 9.9985 8.1012 5.6373 0.7372 0.0745 -0.8638 -1.7933 -2.9142 -3.0150 -2.2427 -0.7782 -2.5201 -6.2197 -5.1933 0.2777 -5.0155 0.2927 4.1108 -9.5213 11.2774 17.5024 20.7927 14.9512 8.8893 5.3831 1.1126 -0.5407 -1.8226 -0.7548 3.8991 14.1917 11.4189 -2.2812 -13.1711 -17.2396 -15.8893 -13.7806 -15.9376 -28.0009 -1.8142 -1.3801 -0.2831 1.3820 1.7722 1.4623 -1.2023 -3.2113 -5.2345 -6.7523 -4.9565 -2.8637 4.0779 -2.6764 0.8821 14.4958 8.5614 4.5439 7.9060 -14.7091 10.5077 13.8832 19.5676 20.8530 17.7078 12.7109 11.5269 8.0218 2.2318 -5.7244 -10.1683 -12.8120 -14.9230 -10.7023 -2.0109 -8.3963 -10.2008 -5.4032 -10.7793 -25.8902 -0.2509 1.3469 0.6421 2.6377 6.0659 4.3721 5.3520 3.9824 -1.7069 -2.0895 -5.2191 -1.5370 -3.3737 1.3384 4.0383 10.2321 1.6548 -3.2413 -5.1470 -19.0973 6.4953 9.3365 14.1057 20.6271 16.1168 7.3580 1.4929 -2.7587 -4.0681 -3.9748 1.3672 8.9105 -0.9200 -5.3133 0.3345 -6.1299 -12.7503 -9.3229 -13.4612 -27.4454 0.6201 2.4328 4.9760 9.2545 15.4025 12.2971 5.7680 5.0077 4.0499 4.2155 9.7060 7.7493 5.8274 0.3852 -5.9984 -11.5236 -7.3050 -10.3504 -20.7971 -31.7176 -3.7294 -1.4413 -3.7524 -4.5904 -3.2743 0.7360 -3.2763 -4.8007 -0.6213 4.9030 10.4614 11.0474 17.3494 -0.7763 5.4732 0.7769 1.2498 -0.7639 -2.1070 -22.8638 6.7163 9.2255 12.3187 17.6924 17.6404 11.8940 7.0991 4.2645 4.3021 9.9874 5.8382 -3.4579 -6.9519 -4.8090 -2.1538 -14.0697 -18.7474 -17.3320 -11.2745 -28.1824 14.7156 19.4663 14.7897 6.5422 1.1728 -2.3524 -4.9286 -7.8168 -8.8525 -9.4747 -10.7274 -8.5129 -4.4565 7.8312 0.0283 4.0451 1.6338 -1.3894 4.4306 -16.1441 19.0680 22.0875 24.6110 22.0341 17.3706 15.8785 14.1658 11.9508 4.4308 -1.1373 -6.4223 -10.3244 -11.8572 -13.5064 -14.4779 -15.1004 -15.5216 -16.8251 -22.0101 -24.4145 9.0336 19.0176 24.4867 24.6758 18.9461 11.7838 7.6427 4.7750 1.2864 0.4513 1.8155 -1.2592 -9.2086 -14.2929 -15.7555 -13.6408 -7.7748 -14.5157 -21.5902 -25.8770 1.4827 0.2805 -0.3810 1.4732 8.2340 8.1707 10.0600 8.3087 4.1212 2.7249 3.5821 7.9718 3.7426 -2.6511 -5.3909 -4.4519 -4.5293 -6.7232 -8.9602 -27.0648 10.5705 10.6700 11.7791 12.1925 10.0236 6.6964 5.1163 2.6148 4.7648 2.5521 -3.9125 -7.4628 -9.6721 -9.3307 -9.9466 -8.0895 1.1968 -3.8200 -3.4846 -22.4580 7.5905 8.3863 11.5587 16.2565 22.0088 23.0422 17.8049 13.1018 17.1694 13.5769 -0.2381 -1.8062 1.5806 -10.3901 -20.8106 -24.7914 -25.0524 -24.3552 -19.3769 -25.2554 7.3275 11.6160 16.6781 15.5131 8.1538 4.8147 -1.7134 -2.9599 -6.5688 -7.0695 -0.9248 5.3367 -4.5080 -7.1758 -3.4270 -3.5021 -8.7907 -5.2842 1.7479 -19.2635 8.6994 13.7488 20.2706 15.6056 8.0300 2.7906 -2.4915 -6.3762 -9.0577 -10.4892 -11.7811 -10.7422 -7.7494 -0.3422 10.0858 3.8928 3.9680 -2.0796 -2.0561 -23.9265 -1.8066 -1.3696 1.0493 1.3711 1.9691 1.1999 -1.8646 -1.9643 -1.7749 -1.3390 -3.3717 3.1526 1.2109 0.7990 0.4966 2.5531 3.3704 2.3429 4.9229 -10.9469 4.0689 7.4175 12.6940 18.0600 16.5869 9.3259 4.5282 2.8636 1.6428 4.7328 12.4121 9.1212 6.2302 0.0152 -12.5596 -17.7355 -18.6999 -12.7970 -17.6503 -30.2571 0.8292 2.6495 1.8804 4.1439 5.6667 5.7021 4.9475 6.8868 6.7950 8.0289 10.5666 8.6874 1.8534 -2.2297 -6.3646 -6.7900 -8.1505 -9.3082 -10.0423 -25.7522 7.1022 3.8236 1.8946 4.4230 4.7840 4.6315 5.8219 2.7914 1.6501 0.4344 2.2205 4.0071 0.0326 -2.6285 -2.5436 -3.5874 -3.6688 -4.2155 -7.0087 -19.9643 0.1242 12.2019 4.3084 4.2478 1.9093 0.6288 1.1102 1.5269 2.2918 5.1362 2.1955 -5.7687 1.1936 -1.4469 0.2971 -4.6605 0.8522 1.2017 -3.9848 -23.3647 -5.1159 -1.2775 2.5260 4.1265 3.4097 -1.7194 -0.8844 -1.4795 -5.4958 -6.8537 -1.5398 0.9661 -2.3240 -4.8943 8.2925 3.4432 -1.7853 6.3100 13.4410 -9.1454 3.9898 4.3777 4.2357 3.0453 3.7447 2.5019 1.1011 -0.4780 -2.4003 -0.6497 0.8291 0.2117 0.0985 -0.2133 0.3830 -1.7850 -1.0322 -2.1328 -1.6069 -14.2203 11.3622 14.7416 16.8859 15.0883 9.9488 8.7692 4.3995 -2.0242 -2.6878 -1.0092 0.7764 -2.2298 -4.0840 -8.1165 -6.2525 -5.2064 -7.0092 -6.7164 -9.2528 -27.3833 3.6579 2.8996 4.0461 8.3701 17.0082 23.3625 16.2578 7.1955 17.3887 6.3999 -4.2883 -9.9015 -12.7556 -12.3388 -5.4680 -10.3674 -10.9476 -10.1432 -6.0175 -24.3585 7.5312 5.8939 4.3265 4.0014 2.9087 1.6542 2.9601 3.9087 1.3700 -2.9778 -0.8059 -0.8752 -0.9920 -0.8125 -0.8336 -0.0306 -2.6451 -2.7999 -4.2986 -17.4834 15.3876 20.0855 22.6771 20.6277 15.1509 8.8202 3.6289 -2.1904 -8.5688 -13.1818 -15.2549 -15.0083 -12.7233 -8.7307 0.5974 4.3829 -2.2770 -0.0304 -7.8902 -25.5026 23.6589 23.2539 20.3520 15.1761 11.4144 5.8059 5.4712 1.3160 0.0827 -2.4308 -7.0613 -6.1765 -1.8534 5.6004 -1.4387 -15.4564 -17.3870 -18.8680 -17.3832 -24.0763 11.6709 14.1123 21.1753 25.8068 20.7082 14.0630 14.1588 17.9220 14.6153 4.8179 3.3194 0.4690 -11.4997 -19.1991 -21.5666 -21.4213 -21.1902 -22.3547 -22.1566 -23.4508 4.6799 3.0606 1.6539 6.2007 -2.0201 3.0954 0.5569 3.2707 1.3312 0.0725 1.8286 -5.9667 2.6570 -0.0978 -1.2174 -2.2597 0.2234 1.4765 -4.2077 -14.3379 9.3104 11.8578 14.9832 13.1906 8.5578 4.2616 -0.4942 -3.0677 -3.2171 -5.1322 -1.7298 6.6384 -0.8475 -8.0712 -9.5863 -5.8386 2.6610 -8.3104 -6.0285 -19.1373 2.2896 3.8587 4.9224 8.6357 13.9236 17.8222 15.7427 11.5211 7.5272 9.1679 9.7247 5.7451 0.5275 0.3504 -6.2281 -12.9212 -14.0843 -20.5964 -26.6432 -31.2855 18.9039 18.0327 13.6297 9.7561 7.4319 5.3744 2.9646 1.7415 0.6716 0.6859 2.7446 0.5342 -4.3187 -6.1877 -6.9311 -9.8734 -11.9041 -9.1281 -8.9591 -25.1690 6.4513 6.7843 9.4438 12.9549 16.4801 14.9093 8.2954 1.6877 -2.5193 -4.4922 -6.7348 -6.9853 -4.6783 0.7181 1.0483 -5.1128 -1.1161 -7.5305 -12.3980 -27.2058 codec2-1.0.1/octave/train_120_2.txt000066400000000000000000002650001412132000500166010ustar00rootroot00000000000000 -1.2668 -1.2477 -0.0681 3.8419 -0.0693 -1.7919 -1.5943 0.8402 0.1550 -3.1526 -3.0204 0.7337 -0.2603 1.6590 0.0230 5.5893 -2.4959 1.9604 -0.6348 0.7999 2.6673 1.4923 1.1408 -0.7478 -1.0755 -1.3421 -0.4884 0.2535 0.2951 1.5088 1.9447 -2.6620 2.3751 1.5298 4.1357 -6.5630 -2.1766 -2.7535 -0.7706 1.2362 -0.6415 -0.4348 -1.2178 -0.9870 -1.1057 -2.1421 -2.3594 -0.4977 -4.1484 -4.7120 5.5425 3.0695 3.6610 2.9729 2.4379 -1.6136 -1.3052 2.1342 1.9164 -0.5692 1.5930 -1.1175 -1.2476 1.6203 2.5315 2.3427 -0.5223 -3.1063 -2.1739 -1.4774 -2.6108 -3.5842 -0.3828 -0.1511 0.8929 2.5717 -1.7657 1.8954 6.0193 -1.3272 -0.2102 -0.3681 -1.2724 -1.1520 -0.3715 -0.5633 -2.5238 -1.7680 4.7356 5.6452 0.8620 0.8750 -0.8932 -1.5918 -1.4047 -0.0720 -0.6080 -0.7876 1.3972 0.0717 5.1178 -1.5391 -4.2881 -1.9745 1.3515 2.4014 0.9329 3.4647 -2.4062 -0.4224 2.8708 -1.6053 -3.1492 -2.6783 -2.6937 -4.4645 1.8599 -0.5456 3.8910 3.8770 -1.7119 -1.0101 -0.5002 -1.7849 -0.4884 0.2279 -0.8335 -1.0083 -1.2819 0.1129 -1.3674 -1.3338 0.9290 3.0765 2.6339 3.5627 -2.2713 0.6565 -1.2099 3.6022 -1.5938 -1.3264 0.9856 2.8765 2.3700 1.2528 1.2586 -1.2453 -1.3974 -1.4988 -1.6309 -1.2183 -0.1625 -0.8690 0.0030 -2.0081 1.3580 2.9585 3.3396 -3.4520 -1.3680 -0.6304 -2.5755 -1.2397 4.9487 2.7251 1.4675 -0.1832 -0.3932 1.4723 1.7410 0.6216 -1.0849 -0.7112 -0.3751 -1.7539 0.1222 1.9858 -0.5248 -4.2444 -1.2786 -0.2384 0.6718 2.9763 -1.6959 6.4607 -3.9459 -2.0560 -2.7306 -0.2583 0.0389 -3.6271 -4.0721 0.8260 0.8112 2.8769 2.2400 0.5444 0.3571 2.0995 2.5196 2.3359 1.6620 0.6250 -1.0528 -0.9133 1.8668 1.2853 1.4368 1.4676 1.1301 1.3664 1.1076 -3.2853 -0.4530 0.4467 -4.7302 -3.8149 -3.9866 0.9865 0.1738 1.2940 1.3514 -0.3684 -0.7078 -0.2329 1.3467 -1.0678 -0.0262 0.2448 -0.8418 -0.3910 2.7415 2.9948 -4.5965 -0.1192 0.2496 0.4684 0.0669 -2.5805 0.2482 -1.3236 -1.4810 0.9433 3.4287 2.2233 8.9344 -1.1138 0.4585 -3.7470 3.0416 -2.7394 2.2880 1.6598 -3.6439 0.0633 -2.7363 -1.2617 -3.1924 -2.0500 1.4672 -1.3248 -0.5511 1.4512 -0.4710 -1.2381 2.9453 -2.3244 2.3249 -2.1969 0.9414 -1.9926 0.5254 0.0792 -3.2076 -2.4140 3.5291 3.5738 -0.0613 -1.0556 1.5560 0.0091 0.0770 2.8542 -1.4594 -2.0102 0.5440 2.8119 -0.2925 -0.7111 0.9589 -1.6923 -1.8606 1.1040 -1.6733 -0.0895 3.6894 2.7628 -6.9922 0.4138 -1.5539 0.6820 1.4458 0.4297 -0.4115 -1.3266 0.5024 -0.6975 -0.3820 1.2840 0.9597 -1.0561 2.2198 0.1292 1.4343 3.0313 -3.9845 0.6776 0.3380 -3.7217 -2.0283 -1.5216 1.0103 4.8788 3.7028 4.4000 -0.3076 2.4853 2.2296 -1.5213 0.4360 -5.9903 -2.6578 -2.3985 -2.0127 1.3737 -3.7950 2.3105 -0.2099 -0.3839 -1.7339 -0.9861 -0.2078 -1.2579 2.5808 -0.9255 3.2388 1.0999 3.6754 4.6424 1.9111 1.4716 2.7531 -0.2725 -0.3573 -0.5392 -4.2109 -6.4662 -2.3713 -2.0442 0.7177 1.4094 0.7205 6.8683 1.7836 7.1562 -2.9368 3.4036 -0.6064 2.3377 2.8714 -7.0408 -9.7129 4.1278 -3.4444 -5.9919 5.5073 -0.8996 -7.5142 1.2434 0.8042 1.5886 0.8754 -0.4378 0.2336 0.0424 -0.1245 0.0847 0.6402 2.6508 1.6375 -3.2393 -2.2823 -2.1435 -1.5628 0.4271 2.2571 2.5048 -1.5933 -2.3629 0.6292 1.1956 0.8357 -0.8634 -0.1796 1.8589 0.6940 2.8309 2.5569 -0.4253 0.2913 0.7772 1.4180 3.4210 -1.9468 4.2236 -7.3361 -3.7802 -3.5980 -2.6029 1.9034 -0.7126 -2.3343 0.2344 3.6545 3.9405 3.0203 0.1937 -1.1906 -1.9012 -0.6667 -1.2590 -1.1021 -2.6650 0.1400 -1.4183 -1.2342 0.0547 0.1519 1.1906 -3.6125 -2.2485 -1.0820 -1.9912 -1.1521 -2.2527 -2.5383 0.9320 1.1572 2.0230 1.6579 1.3763 6.4432 2.1652 -2.0259 1.9724 3.2824 -0.4615 -1.1909 -2.4539 -1.1530 -2.1790 -0.7355 -2.0941 0.6246 1.7502 -3.3266 -3.4374 -2.6486 -2.2938 0.9286 1.3396 -2.1323 0.2739 1.2664 4.4111 1.3864 3.9050 2.8286 1.2861 -1.9752 0.7423 2.4137 1.8854 -1.1393 -2.5802 -2.9355 -3.6740 -1.8244 0.3099 6.1403 4.6215 -2.0636 -3.7172 -0.9400 1.4240 -0.3669 2.0205 0.6217 1.0369 -0.1561 3.9621 -1.3649 0.2912 3.5366 0.8537 -0.9376 -3.7333 -6.5447 -1.2107 3.3183 2.5758 1.9693 -4.8690 0.6212 0.0985 1.5746 0.2433 -2.6173 2.3890 0.6849 -1.1521 -2.0382 -0.8953 0.8771 1.1996 -0.9704 -1.3679 -1.1460 0.0582 0.2636 -1.9785 0.5235 1.6427 0.6362 0.7411 5.6052 -0.3533 0.6579 -2.9883 0.5989 -3.9928 -2.1937 3.8742 2.0056 2.3132 -0.4478 -2.0855 -4.3607 -2.1260 5.3544 1.9827 5.3407 -0.8346 -2.4624 1.1729 -4.3825 0.7623 -1.9429 1.4240 -3.3103 0.0394 2.0113 2.6733 1.2484 -0.2186 0.1156 -0.4856 2.4501 0.8179 -1.1164 -2.1952 -0.9719 2.0728 0.4002 1.1891 1.7518 -1.2571 -3.3136 -1.9012 1.8860 6.9767 2.4311 -2.0414 3.9100 5.5378 -1.7478 -0.8304 2.8523 -1.4075 0.1309 1.8232 -2.8868 -7.5003 -3.4867 -3.2756 -2.8584 6.2611 -7.4682 1.6940 3.5074 1.3392 1.0862 2.9814 0.8158 -2.6160 -2.3837 -0.8255 -0.1595 2.0087 -2.8876 -2.4727 -1.3574 -1.2864 -1.5711 -1.0772 0.4648 2.7262 2.1044 -0.3970 -0.1430 -0.9788 -2.1195 -0.7774 4.0804 3.7123 1.5082 0.2869 -2.5968 -2.0127 1.5147 3.7486 3.2447 0.6959 0.3308 -2.4516 -3.4598 -4.1669 -0.6870 0.2709 0.0724 0.3235 -1.9536 -2.7454 -3.3392 -1.9023 -1.0150 0.7511 -0.0539 -2.8386 5.2737 5.1053 1.4372 1.4046 1.4504 2.4912 -2.6526 -0.6188 -0.6530 -0.5369 -6.9550 1.3233 4.3542 2.9502 0.9929 -0.1186 -0.8657 -2.3452 3.5061 2.8348 -4.1741 -4.1264 4.6970 3.0117 -0.2849 -8.0081 3.4452 0.7819 -2.7443 1.7251 -4.0878 -0.8849 -4.7521 5.0067 -3.3510 -4.8233 -6.6328 4.8752 -0.7474 3.8614 2.6271 0.9119 1.0371 2.2968 4.3160 -3.7042 0.9900 0.4960 4.7952 -2.2300 0.5901 2.0654 1.7824 -0.5570 0.4874 2.7659 0.8232 -0.1306 -0.6795 -1.3143 -1.2480 0.9969 2.0563 0.1625 0.7346 0.0223 -1.6836 -2.9087 -4.1058 0.1406 -0.5074 -0.8373 -0.8579 -0.0460 -0.0854 -1.4221 -0.6935 2.5302 2.2014 2.2225 0.5896 1.2715 -0.7624 -2.7997 -5.3296 4.0372 3.2176 -1.4146 -1.3705 0.0565 -3.8190 -1.1051 1.5169 -0.5542 -1.5591 0.2921 -2.1144 1.6664 2.8275 0.7745 2.6977 4.4021 -0.2010 0.0685 1.3158 -0.8045 -5.9834 1.7874 -2.1592 0.9509 0.6749 -0.0635 0.3751 0.6561 0.4718 -2.3144 -4.9191 -3.0907 0.5499 -0.3498 1.2370 2.6699 1.5353 1.6809 1.2117 -1.3733 0.0977 1.3610 0.0102 -0.4207 0.8139 -2.9454 -1.1694 1.1826 3.5742 4.3331 1.4143 1.7017 -1.2428 4.8459 -4.4642 -0.0684 -1.7273 -0.1932 -2.6041 -1.4272 0.2873 -0.9676 -0.1422 -1.2013 -1.8690 1.2475 -2.8884 -0.3842 -0.3588 2.7759 -2.0060 -2.2023 -2.6599 -2.5791 -3.1221 3.2645 1.8131 2.8630 6.3144 -4.2619 0.7589 -0.7608 4.8657 -0.8104 2.3449 0.3057 -2.2411 -1.3084 0.6572 -0.3790 0.2674 0.5337 0.4996 0.8832 2.3616 3.9339 4.7846 -2.7473 -0.5167 -0.0864 0.9288 -4.3018 -4.0903 -1.8294 2.9658 2.7467 -1.9276 -4.0009 -0.7257 -0.6616 -2.0255 -1.2898 0.3022 1.5810 3.0521 2.5790 -3.2369 -0.4791 0.4455 0.1138 1.1032 0.9003 -1.5708 0.1285 5.2204 -2.8190 0.8203 0.5992 -1.3205 -2.1549 5.0256 -1.6050 0.5506 -2.8092 -0.2831 -1.6376 -1.8233 -0.0177 2.5319 2.0586 0.9166 -1.5417 -0.3071 -1.4039 0.1090 -0.1359 -0.4821 -0.5060 -1.1903 -0.1205 1.3010 0.0989 0.2280 1.3298 1.4648 0.7280 0.0076 -1.4837 -0.1633 1.2525 0.9437 -0.0019 -3.9783 0.5988 -4.0941 -3.4220 0.4966 -5.4678 6.0636 1.1749 -0.1830 3.3518 3.5480 1.4243 2.5791 -5.9065 -1.8723 -1.6703 1.3990 6.8845 1.8643 -1.2344 -3.7475 -1.1880 3.5819 1.2282 -0.2187 -0.8194 -0.0683 0.6784 0.9405 -0.1871 -1.0635 -2.3089 -1.7476 -2.3377 -1.8039 -0.2123 0.7402 0.8810 0.7063 -3.8015 4.2698 1.5426 -0.7508 -2.5319 -1.4606 1.0638 -3.8848 1.2060 2.6878 -1.2315 -0.1629 -2.2730 -3.3361 -1.6208 1.9855 3.4308 -0.2120 -1.4559 -0.3738 2.3568 2.3629 4.2004 1.5564 1.6137 1.4225 1.6668 1.3266 0.0460 0.1831 -0.3664 -1.4348 2.5690 2.2918 1.6955 1.6680 -1.3807 -1.0884 -1.0980 -0.5844 -1.0295 -3.6955 -5.3616 1.7128 -1.8066 -4.0653 -3.8214 -0.9531 3.4797 0.7961 -2.4955 -2.7851 0.0025 0.7872 1.0652 1.5456 -0.4352 1.9173 4.6258 0.3691 -0.1501 -0.2351 0.4458 -1.6777 -3.1299 -1.6947 -1.1535 -2.1999 -3.2226 -0.9846 -2.1533 -0.6467 2.0938 2.1307 2.9065 1.5181 3.0875 0.0486 -0.2157 1.3461 0.7741 2.7320 0.4413 -2.0098 -0.0651 -1.1313 -3.1454 -1.8173 0.4664 2.3278 3.1806 -3.0726 -1.5969 3.6994 0.6478 -0.6833 1.0635 1.1405 6.7102 -4.8934 -4.2029 3.4752 -0.0933 3.0911 3.1320 3.6764 1.2247 2.0977 -0.4399 -3.9470 1.4276 -0.2596 0.5511 -6.4999 -0.9385 3.2215 1.7397 -2.0786 -2.6160 -3.0150 -2.0586 1.9218 -0.2304 0.5955 -0.9572 -3.8115 -1.2133 0.9600 3.0247 8.6360 5.7851 6.1244 0.7094 -2.4410 -1.1712 -1.7901 -3.5399 -2.8318 -2.5468 -4.9596 -0.6022 0.6141 -0.5845 12.5835 1.8094 0.1352 1.7718 0.9427 -1.3690 7.1277 0.0421 -2.3404 -4.6650 1.4653 -2.4880 2.6056 -10.3828 -8.1067 4.1108 -1.2481 -1.8330 -2.7827 2.6214 2.9658 -0.2617 0.2806 -0.2164 2.8550 1.9755 -3.5301 -1.2350 0.9311 0.8713 -2.2265 -0.6005 2.6386 2.7666 -2.3603 -2.5163 1.6854 1.0161 -7.8883 2.8489 -0.9445 0.6006 -1.3214 -5.0651 -2.1702 -0.0289 0.1003 2.2883 0.0424 3.4686 2.0494 1.6327 -1.6152 0.1220 -2.8666 -2.2261 4.9579 -2.2581 -2.7323 5.9663 -1.3666 -0.2364 -0.3999 -0.9988 -2.0227 -0.0610 -0.5411 -2.2113 -0.2283 -1.7150 1.0239 4.2760 1.9603 -3.0526 -2.5894 0.8611 5.2528 3.4951 -2.2336 0.7875 4.7609 3.7023 0.7955 -3.1291 -1.3671 0.8798 -0.9947 0.2668 0.5762 -0.9479 -4.5541 -0.6922 0.0699 -5.8412 4.2302 5.0652 1.3544 -2.4661 -0.6224 -1.0865 -2.6815 -0.9958 1.6109 -1.7618 -2.5561 1.0357 -1.5863 -2.2811 3.4491 1.1806 -0.2855 -0.1380 -0.0202 5.6861 0.8289 -1.0913 0.5986 -1.1493 3.2455 -3.0884 1.7353 3.1908 5.0898 -0.4602 0.0751 -2.1427 -5.0910 -3.1667 -3.3291 1.9531 0.4802 -4.8101 2.2518 2.4380 0.6439 -7.3548 -0.0689 1.8997 5.7170 0.9491 -1.1588 -3.1119 -3.4525 0.2538 1.3345 -1.0500 -0.3870 -0.0472 0.1522 4.0806 2.8886 3.8741 -1.9507 -2.9183 -0.3828 -0.0805 0.4136 1.1466 -3.1863 3.5818 -4.1654 -5.7362 -5.0041 -0.9889 4.1884 4.8135 1.5658 -2.3781 0.8425 7.5151 7.3977 3.9243 0.6283 0.9194 -5.0741 -1.9566 0.2100 -4.9786 0.8760 -2.5989 -5.3114 2.2992 -1.9803 1.2150 9.1545 -2.1960 -2.8749 9.6686 0.5512 -4.1700 -1.1338 -4.1549 1.6645 -3.1643 -1.7800 4.9896 0.3390 -0.0421 -1.0391 -2.0347 1.0740 2.1840 0.9247 2.0617 -2.1994 -4.0653 -1.5118 -0.9397 1.3781 2.9104 -0.8864 8.5382 0.5495 -3.5922 -0.2482 -0.5485 -0.9604 -1.8453 -3.1808 0.3575 3.5141 2.7621 1.2101 -0.3665 -1.1827 -0.5351 0.4822 0.7598 0.8241 1.4976 -0.8943 -2.8067 -2.3512 -2.0448 0.3706 -0.9201 -3.9192 1.1431 0.4761 1.9809 -1.7817 1.1939 -1.2195 1.7524 -4.7374 1.1520 0.0973 1.5475 2.2848 -7.7870 2.0346 0.5213 2.8861 3.1077 1.1974 2.3936 -1.4248 -0.2888 -1.4706 -1.4588 -0.7677 -2.0426 -2.9918 -1.8722 -1.4336 0.4207 1.4107 1.0509 -0.1714 0.2221 1.3054 0.5884 3.1454 1.8747 0.1510 -0.5701 0.5457 2.7058 -0.0854 -3.4859 1.6593 1.0024 0.3202 1.0267 -0.2368 0.1208 -0.7272 -1.0487 0.2686 -1.0197 -1.3131 4.1829 1.0297 1.7779 -3.0898 -0.7777 -4.5532 2.1765 -0.3100 -0.4886 2.9341 -0.2895 -2.4210 0.9438 2.9490 1.2447 -0.4279 -0.4133 -0.2487 0.6464 0.1859 -0.8613 0.0690 -2.0024 -3.5783 -0.9123 -2.3469 0.3089 5.3909 -1.1710 13.8818 0.6217 -0.6459 -3.4218 0.8331 0.8918 2.2009 4.0596 -3.0380 -7.3862 -3.2105 -2.2108 4.7972 -5.3735 3.8870 -1.8190 -0.5123 0.9752 -3.6921 -0.8383 0.2536 -11.0226 4.4625 -7.9396 8.6657 2.6088 -1.0215 0.4492 -5.0641 2.7194 1.1735 2.2070 3.3733 -0.2605 5.5319 3.5989 0.2759 -3.6185 -2.9338 -3.4591 -0.2533 -1.2245 -1.1924 -0.1962 0.6099 -2.1289 -2.0002 -2.0390 -1.5592 0.7879 0.1165 -0.9325 -1.5485 0.4552 0.3883 1.9054 2.3495 3.9138 2.3594 0.1886 0.1750 3.7528 1.6899 -4.3270 -5.0437 -3.1410 -4.7768 -1.9628 -4.5893 5.9435 -9.6773 -0.4601 3.0571 1.2797 0.1161 3.5574 3.7157 -2.0222 5.9308 6.7823 -0.6999 -2.9933 -3.6606 -0.6207 -1.4032 -1.1364 0.2530 -0.9004 -2.7685 -4.3142 -0.7561 0.8142 -0.4715 0.8444 2.0053 0.5983 3.3363 4.4913 6.9146 0.4673 1.0959 -0.0886 0.2379 3.2725 1.2016 -1.1581 -1.3640 -0.6268 -0.3678 0.9051 0.7593 -2.2902 -1.4578 0.6349 0.5115 -4.4984 2.2315 2.2535 -2.7867 1.5345 3.6055 3.8842 2.1794 -0.7568 -1.0500 -2.1686 -0.6731 -2.0718 0.8001 -0.6819 1.1112 0.5707 -2.4862 3.1489 2.6767 2.5134 -1.9147 -4.1519 -2.4548 -2.0802 -1.9388 -0.7447 -0.8349 0.1123 0.1251 -1.3476 -2.6413 -0.4770 5.6864 -1.8563 -3.3514 -0.5309 -1.6295 -1.3453 -0.4664 4.5930 1.1909 2.9264 0.9356 1.5944 0.5951 -0.4177 -0.1304 0.5462 -1.3265 1.4534 1.6425 0.9730 0.8946 2.1586 4.2557 0.8968 -5.0524 -1.9576 2.6089 0.6571 0.7918 -2.2504 -4.5907 -1.7480 -1.6456 -2.0706 -2.4462 -2.5983 -2.5056 2.0863 -0.9159 -0.8806 -0.8052 -0.7776 1.0285 0.4522 1.5131 3.4530 4.9330 -2.7752 1.7750 2.1982 -0.0181 -0.0006 2.2117 0.6658 -0.1647 -0.7769 -0.3291 -0.0686 3.1830 1.8603 1.0488 -0.7866 -1.0352 1.6465 0.2395 0.3989 -1.2496 -1.9498 -2.6996 -7.5216 1.3320 3.9951 1.0405 1.3681 2.7153 3.0279 2.8206 1.9933 -1.5434 -2.0223 -1.0490 -1.2756 -0.1434 0.2554 0.8858 1.3178 0.3714 3.5670 -3.1912 -1.0147 -3.0243 -6.0993 -0.8348 -2.4017 -3.6731 -2.0399 -0.2474 -1.0640 -1.1488 1.3352 2.8367 5.1498 -0.0673 1.7148 2.0672 0.7800 -2.8302 2.8981 -0.7525 1.3119 -2.4119 -0.6222 3.0927 2.0509 2.4548 -1.3001 -3.9942 -0.7486 2.8523 0.1569 -4.3404 -10.5627 4.2087 4.2968 2.7013 -1.1646 0.2008 -2.4272 1.8708 0.5192 -2.3092 2.4416 0.6449 -3.5216 -3.8362 2.1329 -1.2999 0.6434 -2.5079 3.1409 -0.9430 2.1409 -0.9005 2.6639 5.8420 2.2508 -0.1834 -3.5407 -2.0329 -1.9827 -0.2675 1.5565 5.1512 4.1361 0.9497 -3.1897 -6.0608 -4.8346 -0.7128 -2.1849 -2.1809 0.1265 0.3295 0.2665 1.1233 -0.4722 2.7945 1.1909 0.4093 1.9529 0.6380 0.5674 -2.0255 1.8944 3.2610 -0.6543 -0.1603 1.6419 1.8339 -4.1284 -1.6495 -7.4417 2.7611 3.0349 -5.4696 5.3754 0.2729 5.1700 0.7296 -0.1265 -1.6533 -2.6659 -7.1882 -6.8851 -0.9549 2.6573 1.6288 -0.3149 -2.2361 1.6706 4.0565 3.2723 -2.0478 -0.6505 2.7769 4.9536 1.8310 -4.1026 -0.8540 2.2409 0.8671 -0.7209 0.8703 1.1461 2.9551 0.5102 0.4539 9.1307 -3.4339 -1.5513 -2.2902 -4.1038 -6.0580 -0.8757 3.5830 2.5081 -1.9449 0.3605 0.8645 0.6768 -0.2206 -2.5809 -4.5091 -1.0618 1.6342 0.5890 1.0199 0.7070 -0.4636 -0.7393 -2.0902 -4.3948 -1.8491 2.8967 1.9263 0.6394 4.9955 3.9485 -0.2145 -1.3652 -1.4955 -0.1736 -1.2527 -0.6868 0.0359 0.5854 0.7286 -0.5988 -1.0892 -1.2358 -0.5524 -1.8766 -4.8554 1.3154 3.0969 1.2141 0.4785 0.5435 0.9660 0.9526 2.5969 -0.3662 -3.4429 -2.5359 -0.7902 1.6794 1.3950 0.9304 0.5281 2.0451 -0.2820 -0.7620 -2.3113 -2.5279 -1.2407 -4.6199 3.9276 -1.3637 2.0692 2.0266 2.4150 2.8601 -0.0841 -1.4504 -2.5295 -2.1914 0.0160 -1.5806 -3.8581 -1.8751 1.2410 1.4792 -0.0268 -3.0304 1.1672 3.1034 -0.0043 -1.7750 1.0722 5.8103 3.7335 0.7830 -1.2601 -0.9248 -0.9753 -1.1580 -0.4657 0.9286 0.4457 -0.7164 2.9298 6.0232 1.1288 -9.2201 -2.6002 1.0866 3.5907 -0.3994 -0.8783 -0.4493 3.0463 -0.1320 -2.6865 -1.7683 0.5719 4.2697 0.4434 0.9403 -0.1787 -3.9995 -1.4954 -2.9666 0.5871 0.7458 -0.5643 -3.3758 2.4009 1.3630 3.2345 2.9305 0.6423 -1.0943 0.2605 -0.1269 0.1894 0.8801 5.6065 4.4842 -0.3360 1.6337 -1.0080 2.2349 -1.3371 -3.4195 -1.5849 3.4658 -2.7632 -2.8878 0.2535 -1.0857 -3.4858 -0.9736 0.5903 -1.1309 -3.8731 -2.8181 0.6957 -2.1930 -3.7976 -0.1684 0.3131 0.8609 0.0568 -0.1356 5.9915 2.3704 3.9840 0.5840 -1.9366 -2.6479 0.4937 2.7608 -1.4917 0.6707 -1.8279 0.4736 -4.3226 7.6508 -0.6770 -1.0388 1.6577 3.4357 2.1210 -1.6783 -1.9394 -0.4857 0.0446 -2.1769 -1.5641 1.5895 1.4750 -1.9161 -2.4617 -1.4865 0.9268 3.7356 1.9298 -1.0879 -0.9003 -0.6573 -0.4536 1.1463 2.5279 -0.9025 -2.1547 0.5579 -1.4546 -2.5618 -1.1020 1.7633 4.9058 -2.2707 3.2436 2.0698 1.3674 -1.4618 -0.4269 1.2764 0.3160 1.2237 0.7208 1.5117 1.4584 -0.5527 -0.7757 -2.7217 -4.0792 1.8261 2.7197 -3.9546 -1.7508 -2.0101 0.2659 1.9357 0.5705 -1.8509 -5.0017 -3.7512 -2.7574 0.2996 -1.1250 0.6895 2.7521 3.7090 3.4556 6.5334 -3.5389 -3.8970 -2.9436 0.7650 1.5177 2.3717 -1.2532 -0.7651 -0.7634 -1.6900 -2.3167 -1.0574 0.9291 -0.7963 -1.4770 -1.6646 0.5558 0.7009 3.4059 9.2719 1.4172 2.4588 -0.7901 -3.7873 -1.0613 -1.3173 3.2264 0.6063 -2.4159 -3.8529 -1.9936 2.6889 2.5115 0.8341 0.8209 1.2008 0.7255 -2.1489 -1.1543 -0.6443 2.0479 -0.7011 -0.5619 -0.0820 0.5538 -1.6613 0.8900 0.2673 1.2328 -0.1459 2.5186 2.3429 -0.5461 -0.5497 1.9452 5.1637 1.5156 -3.9805 -1.5621 -1.5331 -2.7711 -2.2357 0.7958 -1.6083 -2.3152 0.5758 4.0233 3.7838 3.0862 2.4680 -0.8644 -2.4804 -0.9694 -1.9035 -3.4966 -3.9590 -3.9724 -1.2080 -1.6237 0.7915 0.4354 0.8419 1.1287 1.8538 2.3476 -0.2827 -0.5315 1.6742 2.6296 -0.5391 -1.8812 2.7171 6.8646 3.9934 -2.0577 -0.8537 -4.3316 -2.4473 -2.8864 -0.3456 -1.9169 -1.4494 0.4578 1.9608 -0.1673 -0.8898 -2.1559 -2.4800 -1.5001 1.3457 3.3362 2.6367 1.4331 2.3397 3.7557 3.4063 1.6588 1.2723 -0.3658 0.5614 -2.5827 -5.6096 -3.4952 -4.1966 -1.5564 2.1965 0.1567 -1.6324 -1.8735 -2.1011 0.8687 2.8596 1.0227 5.0782 -3.8186 -0.4012 -1.0627 -1.0858 2.3105 2.5822 -1.0014 -0.6915 1.2628 0.1273 -4.3120 1.7113 0.5493 0.1877 -0.3065 0.0805 0.1700 -0.4682 -0.7192 0.7521 1.1935 -1.2445 0.5061 3.0407 3.3122 2.9044 2.0613 -2.6946 -2.8479 -1.4855 -3.4536 -1.5377 1.2611 1.2112 -0.4954 1.5849 2.8817 0.5597 -3.2189 -1.8993 -2.3996 0.0235 -0.9270 -1.1263 -1.6443 -3.5163 -1.2543 1.8410 4.5628 1.0754 -0.1607 1.6406 -0.8759 -1.6975 0.2532 6.4042 -3.4246 -2.9858 1.9661 -3.2513 -4.0109 -0.5134 2.5545 -3.0437 -2.1093 -3.6915 4.1398 6.0036 -1.3456 1.3628 -1.0285 5.2940 8.8405 -7.2360 2.8239 7.1563 -1.4248 -8.0410 -1.9196 1.8187 -0.9320 -3.1134 1.9133 4.5783 5.5866 -1.7440 -0.1615 -9.2039 4.4457 -2.5424 2.5822 -3.4268 -1.9594 -0.1440 -0.0014 -0.5248 -1.2740 1.9184 0.2637 0.9658 3.9879 -1.7646 0.8739 3.6824 -1.4748 -0.5493 4.1940 -0.5892 0.9704 -2.3393 -5.2036 -1.0319 -1.8153 -0.8777 -1.3975 -2.8688 -1.3150 0.6005 2.0795 2.0158 -0.0187 2.3273 5.2446 3.1910 0.5420 -1.0394 1.3294 -4.6550 -1.5318 -1.6999 0.2573 -0.3684 4.3069 1.2137 -1.8464 -3.0026 -0.9539 3.1554 3.4215 2.0922 0.4828 1.6102 1.1857 1.5577 -1.8593 -2.9907 -3.0640 -4.6355 -1.6614 1.3592 1.5116 -1.8833 0.6407 1.1519 1.5429 -0.7369 -1.7269 -1.6671 -0.1290 -0.7049 0.8116 -1.2198 -4.0157 -5.1437 -3.1965 2.3418 0.7111 2.6992 0.5585 1.9829 4.9644 1.1355 0.6364 2.1072 0.9870 -5.1572 -4.3363 -1.0839 -1.3521 1.8709 0.8132 -0.2938 -0.2079 -2.5242 -0.8999 2.3401 0.7392 3.1549 3.0568 -1.1375 0.0963 1.1908 -0.0136 -2.4241 -0.4209 1.6339 3.4114 3.5889 -1.4100 -3.5651 3.1831 2.0426 0.5548 -2.0177 1.6429 -3.2634 1.5780 -4.1305 -0.9389 0.1651 0.4588 -0.0751 2.0687 0.8544 -0.3821 -0.1978 1.0057 2.3289 3.0174 -0.3330 2.0178 -0.6679 -0.1993 -1.9170 1.6018 -0.3834 0.6526 1.9588 0.3355 -2.0462 -4.1767 -5.5379 2.7809 0.2282 0.4820 1.9051 -1.7350 -3.4716 -3.3685 -1.3005 0.1251 -1.5366 -1.9516 -2.1469 1.2541 3.7123 3.0390 0.8154 2.3154 2.5014 0.0685 -3.7166 -2.7442 -0.5589 1.8753 0.2528 -1.7122 -1.5279 0.3471 1.3429 -0.0809 -1.0979 -0.5556 2.8899 0.2864 2.1800 1.7006 -3.4442 -2.6681 2.9174 1.9107 -1.3132 1.1471 -0.3191 -2.5131 -2.6788 2.7236 4.0318 2.9420 3.1336 1.5351 0.4800 -0.0086 -1.0945 -1.1975 -0.4758 0.1588 -0.4970 -0.2437 -3.5219 -3.3061 -0.2958 -0.6947 -3.5085 -2.7613 0.0475 0.2365 -2.4104 -0.4597 -0.9262 -0.2261 1.8983 0.9162 0.3544 -1.0767 2.3229 2.3748 -1.6417 3.4712 -3.6716 0.1472 5.6077 -1.7531 -0.9915 -0.4352 0.4089 0.1890 -1.7111 -0.6401 -0.9353 -0.5743 0.3365 -0.6869 0.9392 0.8776 -0.2201 0.7815 -1.7487 -0.2509 3.0732 0.2971 3.0442 -6.4696 -1.5332 1.3136 7.9582 4.7035 0.4178 -1.4784 -2.4577 -0.6662 -2.4183 -3.1348 -2.0591 -4.3423 -0.2080 1.5975 -2.6953 0.1211 4.7779 4.5315 2.0419 0.8642 3.0824 1.7461 -0.8529 0.9231 -0.3502 -2.7586 -2.7081 -1.4853 1.1577 2.4953 -2.0279 3.1643 -1.1352 0.2786 -0.1650 2.4230 -0.5282 -0.4006 -3.7227 -3.9091 0.2639 -0.0395 -5.0339 1.4635 7.9381 -1.8279 -7.5321 1.8947 0.9696 -7.1991 7.7502 4.8838 -5.2722 5.2271 6.4012 -8.2785 -5.8271 0.4487 7.6786 -0.4051 0.3015 -0.5211 -1.1563 -1.5548 -0.8506 -1.7742 -0.6679 0.3853 3.9695 3.1450 -3.5632 -0.3392 -3.3757 1.3514 4.4934 -1.2754 -0.4248 1.0022 1.2601 -3.0667 3.2388 3.6288 -0.3263 -3.6989 -4.3941 -3.0073 -2.9882 -2.7834 -3.8873 2.3701 6.1068 1.0432 -2.8444 0.1460 -2.5272 1.8208 2.6818 7.7176 0.7699 -0.8674 0.6588 -0.0766 1.9350 3.3452 2.7012 0.4707 -0.8282 -0.7703 -3.8252 -2.8814 -0.2389 -1.3895 -0.9376 0.2572 -3.4418 -2.3763 -1.8695 7.4789 2.6558 0.8567 1.9741 0.6363 2.1993 1.9072 2.2211 3.7376 -0.0455 1.3289 -1.0736 -4.8817 -4.0284 2.4624 1.0596 -3.8101 -3.8498 0.8895 -0.5176 -2.3743 1.3083 3.7465 3.5865 0.1979 0.4072 -1.1714 -1.4598 -2.1688 -1.4971 -1.1953 -2.8028 -1.8515 1.1483 3.7654 -2.6485 1.2635 -2.4929 -1.4965 0.6356 3.3756 0.6583 -1.7286 -0.6675 0.3769 1.1159 0.0587 1.4828 1.2140 6.0165 1.2212 -3.4526 -2.4321 -0.8616 -2.2663 -0.0017 -0.0046 0.2615 0.0517 -0.8546 0.5801 -0.1095 3.4455 1.4668 -0.0851 -2.9245 0.0932 1.2861 1.1250 -0.6317 -4.0005 -4.4206 -1.5097 1.3643 -0.1238 -0.8046 -2.4500 4.2293 2.9297 3.2594 -3.0122 0.7633 2.2354 -0.6334 -2.7256 -1.7876 -1.8603 0.6549 0.1244 -1.8100 -1.7636 -2.7665 1.0419 3.6034 2.7187 -5.8124 -0.9848 2.8478 -0.3193 3.4835 2.5353 1.2184 3.0602 4.3425 2.4260 -0.5623 -0.8919 -0.2730 1.3901 0.4772 -0.5219 -1.3754 0.4815 2.4087 -5.0472 -5.6009 -2.8901 -2.4607 1.8809 3.5997 3.9232 -4.3669 -0.0346 -0.2122 -0.2290 -0.9365 -0.4221 -1.9300 -2.3572 -2.9919 -2.2394 3.2115 2.4104 2.4249 -0.5682 1.5001 -1.3857 2.6140 -1.8866 -5.6180 7.3368 1.3135 -0.4484 -1.1107 -1.9143 -1.2992 -0.5392 -1.0181 -0.6562 0.5186 -0.7919 -1.4379 -4.0959 2.4107 1.5417 0.0557 3.4844 1.7096 -0.8275 1.7994 2.0983 0.5209 -0.4549 0.1830 0.2262 -2.2572 -1.5931 -0.7026 2.6431 2.6098 4.0381 -0.4805 -2.9134 -3.5443 -0.6536 -2.1551 2.0956 1.2393 0.2979 0.9155 -2.0621 2.5682 -0.1092 -1.2889 -2.5682 -2.3378 -1.7259 -0.5628 -0.6114 -2.8295 -2.5690 -3.3678 -2.2669 0.6023 0.3823 5.9006 5.7607 1.9871 0.6942 1.2471 3.2445 0.4186 0.6515 1.8638 -0.3444 -2.0169 -0.6995 -2.9879 -2.4596 -1.0847 -0.8686 -2.3776 2.0331 4.8909 4.1694 1.2690 1.4079 1.9289 1.8820 -0.9986 -3.0198 -3.2390 1.7936 1.2201 -1.9231 -2.6761 1.6107 7.0585 8.8031 2.9894 -2.3291 -6.5825 -1.5641 3.0126 -4.0096 -4.0332 -0.6223 -0.5985 -0.8359 1.2689 0.3585 -2.9410 -1.2384 -0.3295 2.3565 3.0657 3.2204 1.0890 -0.5456 0.1283 2.9904 -0.0970 -5.2104 -1.5801 -2.5751 -2.3243 -0.3014 2.6881 0.5623 -1.5424 -1.9388 1.5825 -2.6631 -2.8705 -3.6445 -0.1511 1.0369 4.6018 2.7993 -0.5794 -0.1152 0.9196 4.1279 -0.7083 -3.1505 -2.1870 -2.5145 -0.8667 1.9629 3.7810 1.8562 -1.6347 -3.7832 -0.9972 1.0298 0.8253 -2.4369 -3.3827 -2.6892 -0.8231 -1.0820 -0.0375 -0.7937 -1.8433 -0.5302 3.8146 2.3123 1.6122 4.1004 5.6672 -1.0450 0.0824 -0.1000 -2.0200 -0.5383 2.2917 0.8366 -2.2105 -0.8495 2.1052 3.4989 -0.0827 -0.3031 -1.7154 1.3463 5.4572 -3.0939 -0.0935 -1.1704 -5.2410 2.4300 -0.5476 -3.7789 -1.9485 1.8338 2.9833 0.6807 1.8337 5.1432 -0.4532 0.5973 -0.6042 0.8753 -1.5014 0.4292 -2.2709 -1.2993 -0.1667 -1.6955 1.1932 -6.0865 4.2353 -0.4920 0.0568 -2.6837 -3.2294 -0.2920 -0.6790 2.7843 3.0219 1.7934 -2.2037 -3.0967 1.8829 0.5782 -1.6334 1.9235 4.5606 -4.2261 -0.0121 2.2982 -0.3517 -0.6429 2.5139 2.3667 2.2000 -1.8905 -1.3195 -0.0575 -0.6720 2.8832 0.3828 0.9744 2.9334 -0.6053 3.2595 2.5269 0.0016 -5.8119 -0.9627 -4.8744 -3.2058 0.8584 0.9302 0.3630 -0.3058 -0.9190 -1.1142 -3.3748 -2.6210 0.9921 -0.0440 -0.2277 0.8060 1.7478 2.0581 0.3900 4.4187 5.8430 -6.6138 -3.1191 -0.0680 0.3281 -0.0986 -1.1173 -1.9481 -2.4515 -1.0863 -1.3545 1.1448 2.8412 3.7501 2.6741 2.7224 1.8554 1.4018 -3.7195 -2.9142 -1.2068 -4.2062 2.9680 0.4170 0.2181 -1.3017 -1.3715 -0.9326 -1.1639 -0.6082 2.2905 2.1838 3.1530 3.3746 2.0088 -0.8055 -1.0486 0.7007 -1.7960 -0.3898 -2.4327 -2.4057 -2.1793 2.5060 -2.4912 -0.4925 1.9418 -0.6320 -1.0125 1.8048 -1.5360 -1.7457 -0.3001 0.5912 0.4548 -1.4661 -1.5177 -0.5917 5.6377 -3.6558 1.8798 3.7139 3.0715 -3.6543 -1.0770 1.7774 3.6503 0.2492 -2.5625 -1.2989 0.3077 -1.4511 -0.7454 -1.0293 0.9281 -0.0970 -1.4180 0.5544 2.0070 3.1415 2.3666 -0.7117 -2.8143 -1.7770 -1.8815 -2.2795 -1.1580 1.0865 -0.0453 1.6476 0.0859 -1.8231 -0.7599 -1.0013 0.0173 -0.6116 0.0110 0.6057 0.1048 0.3920 2.8241 -0.4223 -0.2920 3.4995 0.0544 2.8654 4.0202 1.6845 -1.8534 -2.9185 -1.4228 -3.6388 -2.0210 -2.4342 -3.4254 -1.7961 2.7218 6.6019 2.2780 -0.0758 -2.1727 1.0645 -0.3083 0.7762 -4.2733 -4.7209 -2.5347 -4.1434 -2.3709 0.1195 0.9517 -1.8672 1.5567 3.4133 0.9511 6.1534 5.0591 3.3617 4.3448 -0.8335 0.0697 -1.2096 -2.2085 -1.8188 0.0539 1.0537 0.6965 0.7551 -2.3328 -4.4085 -1.7944 4.6582 -1.8228 -0.3800 0.4342 0.9079 1.1727 -0.2538 -0.9787 1.6403 0.3758 0.2889 -1.0679 1.0017 0.9075 0.5642 -0.6092 -2.8652 -3.3111 -1.2627 1.6981 0.5866 2.5675 2.8589 1.6024 2.0917 0.4354 1.0342 1.2054 -2.7817 -0.5893 0.0883 -2.8199 -1.4010 0.8980 -0.3869 -0.4833 2.6033 -0.0884 -0.3699 7.2953 1.6809 0.8531 1.6498 -4.4993 0.0072 -1.9421 -1.8001 -2.5825 -3.6475 -2.3221 0.6178 0.3128 2.2040 -6.0307 -1.3653 -0.3786 0.0247 0.6616 0.7676 3.3234 3.0965 0.7765 -0.6097 1.0441 -0.9142 1.6186 -9.2158 -4.2017 2.5866 2.2875 2.0945 2.8697 1.5646 -0.3542 -0.0280 4.1718 2.5282 6.0404 2.9659 -1.0269 -1.4497 -5.6815 -3.9178 -3.9280 -6.4467 -2.5804 -4.6703 -1.3963 3.1437 4.3980 -0.5477 2.7035 6.0758 -1.5432 3.8376 1.4210 -1.1449 0.4892 1.3172 -2.0383 -2.2564 -2.1791 3.0272 -4.0284 -1.3615 -1.9716 -4.9880 3.8800 2.5715 -2.8049 5.2429 -2.0992 4.6290 1.9112 0.2401 1.2090 1.9221 -0.5051 2.0731 -0.8317 -1.4381 1.1319 0.2604 4.8570 -4.2486 -4.2343 -0.1445 2.6106 1.1135 -3.4590 -1.7688 1.2613 -1.9600 -4.6396 -2.9689 0.9238 0.7657 0.5574 -0.3650 -3.7022 -4.0756 -5.0362 0.3243 3.1880 1.7270 -0.7319 2.9308 3.7592 2.6099 -0.3181 4.3233 1.9146 -1.1863 0.1980 -2.2883 0.9330 3.8033 -3.0797 0.0635 -1.8773 -1.7344 -1.0161 0.1560 -0.1661 -3.8927 -0.3658 0.3316 1.1226 1.9542 -1.0490 -2.2906 3.6658 5.5322 -0.8058 -0.9870 1.9765 0.8081 -0.8891 1.6549 -1.7178 -0.2062 -0.6134 3.7968 2.8384 4.3753 1.2045 -6.0029 -1.5145 -3.5656 0.8785 -0.8278 0.9419 -1.3448 -1.9513 2.4604 2.9573 3.3043 2.2986 1.0394 -0.4185 -0.0890 -0.2841 2.2073 1.6514 0.3367 -1.0792 -1.4676 -0.8850 1.7747 0.0695 -7.9932 -5.3486 1.4171 -2.8766 -0.2007 0.3439 0.7801 -0.0362 -1.8832 1.2162 3.7611 1.5511 -0.2914 4.4891 2.4265 0.5170 1.2791 -3.0822 -4.3172 2.1550 -1.7349 -2.5924 -1.5044 -1.3853 -0.5001 0.6365 -1.9167 -1.9693 -1.6932 -2.5123 -3.1209 -1.5363 3.8772 1.7176 4.5613 2.2969 -1.7507 -0.4549 2.7398 -2.2572 -0.1132 1.3625 2.0183 -0.2587 0.7517 0.0083 -1.5665 -2.9108 -3.8211 -5.3272 -2.2879 -3.3006 3.2010 3.9688 4.6713 3.8047 3.4665 0.6502 0.9612 0.0958 -1.5002 1.1994 -1.8059 -0.0767 -2.8888 -3.8572 -1.6523 2.8392 3.7128 0.7093 -0.0657 0.9823 -1.6073 -2.1810 -1.5064 -0.6392 2.2679 1.7322 -1.1001 1.0422 1.4078 2.4192 -1.5382 2.1069 1.6101 -0.6015 -1.1106 -0.0731 0.3657 2.1738 0.6411 -3.2826 -4.2217 0.0005 4.1333 2.9287 4.0221 -1.0117 -7.1186 -0.3700 1.5812 0.1654 -1.9391 -3.3989 -5.4211 -3.3823 0.1417 -0.2090 -2.9282 3.8367 5.4395 2.1603 -1.6658 -0.0286 3.8151 -1.6236 -0.4057 -0.8473 2.3634 0.3434 0.0424 -0.3374 2.1055 3.8095 -5.8994 -4.2159 -2.8701 5.1790 -4.6791 -5.6257 0.4437 3.5907 6.0531 -2.4206 -0.6190 2.0474 3.5867 7.1475 -4.6633 4.1906 1.2868 -11.1492 4.8074 -5.2857 -2.3511 1.8870 -1.8753 -2.8109 0.3363 -1.9008 -0.4090 0.8741 -0.4525 -6.3796 0.4485 2.7092 2.5765 4.4129 4.7975 -0.3228 3.7712 2.7353 -2.7608 -3.9913 -5.9775 -2.6898 8.0565 3.5971 1.2374 3.4590 0.3338 0.6958 -1.1912 -2.2406 -2.0748 0.0857 3.9701 1.1276 1.2332 0.6559 -3.8152 0.9255 -3.3971 -2.4876 -2.5150 -2.0296 -1.0642 1.0080 0.6973 -1.7376 -1.5703 1.5923 -0.7283 -0.1226 -1.7315 2.4167 -0.4425 -1.5075 3.8846 0.5544 0.8966 4.6270 0.2600 2.8767 0.9007 0.0796 -2.1662 -1.5086 1.0148 -1.3370 0.8661 0.0749 1.4614 3.1800 2.1743 -1.6449 -2.7523 -2.7644 2.2901 -1.9100 -4.8716 -2.0883 6.1248 3.6336 2.1044 0.4628 -0.6805 -0.0353 -2.3281 1.0902 3.0334 -1.9070 -2.0882 -2.9673 0.1514 0.3556 -1.0151 -5.4063 2.3884 2.5624 -3.2553 3.9458 -0.0449 -1.3869 -1.5992 1.4579 1.4992 1.7691 0.8878 0.9518 0.7305 -1.5050 -1.6287 -1.6402 -0.3868 2.7983 -2.2046 -0.5051 0.1956 7.1623 2.4667 -5.9139 -3.1488 -3.5734 -7.3577 -7.1566 -1.3669 4.3200 2.1415 0.4237 -0.1707 3.4434 2.6751 2.2337 0.4895 2.5968 1.0123 -0.9145 -1.1189 0.9048 2.1474 0.4312 -1.1607 -5.2465 -1.6283 -2.7428 -3.2948 -2.2122 4.3049 4.7808 4.7619 0.2262 -0.6089 1.1643 3.3590 -2.1676 0.2134 -1.1502 1.4193 1.4168 0.3538 -2.8694 -0.0796 -3.4905 1.2508 2.0451 0.4490 3.1300 4.3899 0.1675 -1.3519 -0.0668 0.4245 -1.7121 0.2301 -2.2070 0.3069 3.1491 -7.5721 2.7986 3.8554 -4.1493 -1.6472 1.5232 1.5300 -1.0621 -1.4488 -0.8044 -0.3900 1.3086 -2.5549 -4.3776 0.5264 2.2421 -0.5299 -2.7363 4.9582 1.0929 1.1601 2.8351 1.9896 -4.9813 -0.2808 6.5366 -2.5283 -5.5972 -3.4516 -0.2385 1.8382 -1.6024 0.2804 8.8284 4.4416 -6.1238 3.7728 3.4763 2.9323 -2.3678 -5.5110 -4.9901 -0.1283 0.0084 0.4242 1.9342 1.5660 2.2346 1.0331 -0.6035 -0.4461 0.0271 0.7571 1.1796 0.2963 -0.9807 -0.5607 -1.4711 -2.5426 -4.1871 2.4178 0.2030 -1.7949 -3.6655 4.6035 2.2188 0.9702 -1.9037 -2.3323 -0.9270 -0.7473 0.4463 4.0069 3.2380 1.6378 1.5850 -1.9473 -1.2130 -2.1935 -1.9102 -3.3249 2.6456 1.0820 -1.3884 0.0570 1.8633 1.2717 1.6148 0.3758 2.9711 -0.8914 -1.2864 1.1672 2.0355 1.2245 -3.7030 3.7200 -3.0675 -1.9250 2.2356 -0.7355 0.5128 -4.4528 -2.9595 0.0288 -2.2984 -0.5209 0.3609 2.6675 -3.6910 -0.3519 6.3822 3.0237 -0.1277 -2.2553 1.0403 0.9970 -1.3107 -1.9745 -0.1646 4.8839 0.1333 -1.3256 -3.4240 -2.0441 -2.3190 2.2812 1.2138 -1.1727 -3.3340 -5.2226 3.6390 2.5124 -1.5642 3.4166 0.5330 1.8016 -0.3986 -2.9233 -3.7394 0.9982 -0.0060 -1.6833 4.3443 1.6231 -2.2576 -2.6516 -1.1317 -1.2013 0.7393 0.1827 -1.2343 -3.2192 2.3728 2.7817 1.6779 0.8901 0.5320 1.4647 3.7014 7.0412 -2.6912 -2.5104 -1.2474 -3.2389 -1.7690 -1.9167 -2.8243 0.8559 1.6454 0.6817 0.5231 -1.2522 -2.6542 -3.2288 -0.2864 0.0091 0.5513 -0.6182 -3.9328 4.4973 6.4951 0.4313 1.6808 1.1116 -0.2744 -1.5780 -1.8323 -1.2019 -0.3620 1.2906 -0.2832 -1.9105 -0.8966 0.8634 -0.4648 -2.3172 -1.9676 -1.7065 0.8232 -2.4736 3.5667 5.3037 4.3018 1.1191 -0.4003 -1.4016 -2.6548 -3.2373 -2.1471 -0.9075 -1.1057 1.1084 0.0584 0.6994 -2.2697 0.1501 -0.0187 -0.2177 -1.1214 2.5501 5.4533 5.8815 -0.4561 0.0366 2.4755 2.6766 3.3810 2.8797 -1.3067 -1.2604 0.4792 -1.5575 -2.0569 -1.1560 -1.3594 -0.7176 0.2831 1.2557 -0.1965 -2.5773 0.8488 0.4905 -3.0053 0.4234 -0.5334 -1.6405 -1.4903 -1.2901 -2.0368 -2.4054 -2.0422 -1.2649 -0.3204 2.3946 2.8987 2.5774 -1.9494 -5.6321 2.8212 3.6550 3.9850 1.2152 1.3991 -0.3406 -1.8395 -0.9841 -0.1468 -2.7046 0.5709 -0.0486 2.3079 -3.1973 5.7249 -2.0537 -0.8947 -0.5513 -1.5588 -0.0660 1.7712 1.4939 0.7539 0.8995 0.7376 -0.2144 -2.1136 -6.4960 4.0091 -2.7287 -2.8520 0.0889 4.2865 1.1559 1.4489 2.3747 -0.2811 -1.6675 -2.1043 2.4825 1.5983 3.0151 1.4924 1.4598 1.4466 -6.6156 0.3044 0.5145 0.8314 -0.5726 -1.4732 0.5522 1.0454 0.7132 -0.3595 0.4703 4.9451 2.9593 3.4319 -1.7835 -2.7963 -3.6604 -2.7125 1.2113 -5.0055 1.3846 2.3458 3.2640 1.8110 0.4827 -1.6195 1.9882 1.8256 3.5857 4.1301 1.6235 -5.1588 -3.8052 -1.7214 -1.0231 1.3522 -0.3858 -5.6155 -1.3895 -1.6421 -0.0480 3.7883 2.2512 0.5915 3.6595 3.6582 1.2917 -2.0747 3.0623 -4.8462 -9.6783 -4.7828 -4.1622 -5.2776 -1.2559 2.3471 0.9386 6.0401 4.8334 -1.7435 1.3593 -0.5609 -1.1658 -2.4817 -6.5550 -4.6100 -0.2509 0.7628 -0.8368 3.8495 3.9220 3.0356 2.0951 1.5781 3.7313 2.8834 -1.2291 -3.4270 1.5639 1.6072 -3.9116 -1.4268 0.2383 2.3216 0.1248 2.0796 1.5987 0.8138 -0.2165 -2.9254 -1.2364 4.4075 -3.3005 -5.5475 2.3771 2.6523 1.5551 2.5380 1.7514 -3.2529 -4.5520 -0.7746 0.9904 0.2665 0.8152 1.7416 -1.7222 -3.8193 0.6115 3.8698 -1.5065 -1.1919 -1.2590 -0.9540 1.8722 -0.1520 -4.1283 -0.5510 0.1951 0.7420 4.9546 -4.9471 -2.6326 -0.7296 -2.9661 3.2611 5.2949 1.3584 -0.3484 0.0238 -0.5367 1.0370 -2.4283 -1.4686 5.4446 2.1704 -0.2969 -1.9436 4.7301 0.0591 -5.0816 0.8281 -1.2416 -3.3762 -3.9320 -1.3993 -3.0591 -0.9292 2.5927 2.1047 2.4478 0.5704 1.2666 0.5289 -0.2372 1.2696 3.8278 3.1348 1.0903 -4.3525 -1.1346 -0.7430 -0.7480 -1.2610 -0.7625 1.0816 1.6556 1.2019 2.2812 3.2082 1.5688 -1.3094 -2.0639 -2.5822 -2.2528 -1.3400 -1.6246 0.6375 2.8900 1.4778 -1.3150 0.8081 -1.3233 1.3342 -0.4629 2.2543 -1.7177 1.7285 2.2425 -4.4738 0.6367 1.5497 -1.2988 0.3335 -1.1590 0.1744 -4.2648 5.1183 0.3072 -2.6556 0.8684 4.0404 1.9094 -0.2474 -1.1600 -0.9167 -2.2516 3.9300 2.7965 0.9719 -0.3105 2.6858 -1.8089 -6.0898 -5.0707 2.0812 -0.0971 -1.5043 0.0458 -1.0273 2.0234 0.1375 0.2390 1.2366 1.5253 1.5536 1.1452 -3.3801 -3.1595 -2.7411 1.0175 6.4814 1.4661 -1.2521 -3.3744 -3.5432 -5.4270 -1.3071 4.3703 3.6696 1.3422 -0.0191 0.4401 -0.0551 1.2610 4.9915 1.8859 4.2946 2.2533 1.2460 -0.3261 -1.8245 0.5397 -0.9620 -2.4208 -1.3984 1.3654 -2.3100 -4.0785 -1.5595 -3.3235 -4.1713 -3.8609 -3.6233 -2.2953 0.4590 -0.2721 -0.1506 -1.7078 0.0356 1.5074 1.0712 0.7854 0.7858 0.0168 -0.8160 0.0810 0.5445 4.5197 7.1653 -0.0742 -2.9674 -1.4650 1.0679 3.2208 3.0814 -0.6959 -0.9252 1.0871 0.1680 -0.9317 -0.6966 -1.1041 2.3656 1.0874 -0.7021 -0.5843 -5.9540 -1.0591 4.3651 0.6421 -2.3881 -1.1722 -0.2878 -1.3100 0.1054 2.7187 3.1286 1.3950 2.5138 0.8551 -1.0485 -2.7991 -1.7081 -1.9009 -0.2092 -1.1297 5.4416 0.9634 -4.8359 1.6679 0.3475 0.6761 -0.9160 -3.3303 -2.5114 -1.3053 -2.4606 -1.5909 -0.1066 1.2867 0.1087 0.6627 -0.9380 -2.1561 -4.1442 0.5530 3.6775 4.3771 4.5604 3.2095 1.8172 1.9142 1.3748 -1.2576 -1.3958 0.4060 -0.4725 -1.2643 0.8079 -0.6725 -3.4257 -3.2969 2.8901 -0.0329 4.2131 0.8390 -2.3538 -2.2196 3.3371 -1.2078 1.9496 3.6573 4.2326 1.1863 1.8389 -0.7982 -0.8176 0.9762 -2.1796 -2.4082 0.4600 -2.1099 -0.1300 5.8933 -3.2271 1.4122 -3.0287 -5.0286 0.1022 -1.9807 0.7977 0.4131 0.7926 0.7439 -2.7150 -3.1860 -1.6061 -0.5456 3.5797 0.0724 -0.4993 0.4656 -0.7994 -0.5991 0.0862 3.6997 -0.5342 -0.3047 0.9064 -0.7678 1.0025 0.1292 1.8299 -0.2181 -0.3367 2.6298 -1.6812 -0.7903 1.0473 -0.5336 -4.1833 2.6382 0.9480 -0.3031 -1.3062 -0.6706 1.4954 1.1070 -3.9483 1.1443 -2.8220 -2.9373 -1.7368 -1.1113 0.7976 1.0210 2.2881 1.7823 -1.6829 -2.1388 -0.0636 0.6047 1.3691 0.5354 -2.8472 1.9900 -0.2414 -1.8409 2.3664 4.6674 0.8100 0.5306 3.2216 2.7904 2.3222 -0.0940 -1.2977 0.6699 -0.3153 -2.0729 -0.4524 0.1611 0.0422 -0.9458 -1.6284 -1.0590 0.4113 -0.2203 -0.7025 -2.1711 0.6469 2.9521 -0.5269 -2.8396 -2.8290 -0.4167 -2.6035 -1.8694 -1.2710 -1.1950 -0.6111 -1.1719 -0.0843 4.1129 3.9912 -0.9572 -5.8704 3.6319 4.0418 2.8690 -1.7675 0.6361 2.5132 2.0830 1.8929 -1.5061 -3.5844 -4.2969 -2.8299 -0.6870 0.8308 1.3968 0.3529 4.0998 -1.6161 1.3306 0.5600 -0.5129 -1.6573 2.7621 -4.0964 -1.5173 1.2551 0.2978 1.5682 0.3497 -1.4315 -2.0554 -0.5756 2.5392 0.7900 3.4286 -2.9558 -1.7034 -0.8459 1.0513 5.1871 -2.5294 1.2695 -0.0257 0.0328 -1.2155 -1.2836 -0.9363 -1.2229 -1.6930 -1.8595 0.3399 -1.5276 -1.0107 6.4040 -1.9072 0.7733 0.6079 2.8719 3.0211 2.3070 -3.5448 0.3434 -0.5002 -6.6638 -3.5679 2.7288 3.1465 -1.8044 -3.2026 0.3954 1.5738 0.6840 -0.5029 1.1915 -2.4277 -2.8920 -0.4612 0.5352 2.0495 4.9107 0.7993 0.1809 3.3270 -7.7693 -2.7271 -0.5302 -1.6862 -2.6750 -4.1941 6.2224 4.1406 1.2187 -0.8566 3.2170 2.7593 3.3324 -2.3093 -1.4924 1.2643 -2.9807 2.3328 4.6730 -1.9398 -0.3214 0.7654 1.4453 1.0347 0.7854 -0.0281 0.6653 2.1756 2.5539 2.4886 2.8291 -2.3264 -5.6113 -4.1472 -2.1955 -0.1794 -0.8897 -2.9162 2.0658 1.8062 0.0689 -0.0814 0.5156 -0.9104 1.9645 1.4890 -0.7622 -1.4287 1.4489 2.2731 1.0561 3.0605 2.5928 -3.3062 -2.8865 -3.6767 -3.9506 -2.1727 -0.4806 5.1867 -2.7262 -0.4080 -7.2353 0.2532 -1.7494 4.8406 2.4161 -8.2402 -0.3311 1.0612 3.3760 -0.5373 3.2052 3.7144 -2.9286 10.7765 4.9188 -8.1638 -0.8809 -1.3612 3.8706 1.5102 0.3780 -7.4590 -0.9006 2.4899 2.4680 -2.4184 -1.4186 0.2908 2.1056 2.4328 4.2260 -3.9887 -6.7913 -1.0651 2.4289 0.5874 4.8024 -3.5488 -1.2691 -4.1749 -2.7407 1.4930 1.4665 -0.9212 -1.4630 -5.1747 -2.2251 0.8474 0.8540 6.6525 0.1651 -0.5706 -0.3287 3.1547 -1.4600 0.8291 2.5923 2.2733 3.8347 2.4921 1.8361 2.4264 0.2839 -2.7167 0.2831 -0.5469 -0.6398 0.3108 1.0194 -2.1389 -0.8456 -4.7666 -2.5049 1.2075 -5.6326 1.3761 3.1197 1.6020 -3.7739 -1.8529 0.6063 -0.8541 -1.6370 3.6233 0.8975 1.9643 3.5106 -0.3623 -2.4744 -0.7625 -0.7853 -1.5705 0.2237 -0.6207 0.0761 -0.4742 1.5632 2.7029 1.1570 0.8704 1.6827 1.2654 -0.5848 -2.6900 -2.6615 -0.9589 -1.6641 -2.7103 -1.4381 -0.4901 1.8045 -1.5216 -1.1394 5.0021 4.1235 1.5550 -3.7877 2.1859 2.5420 1.6423 0.7395 0.8846 0.9016 2.7752 3.3824 2.5574 0.4625 -2.0442 -1.8686 -0.1860 -1.7933 -5.0038 -3.5773 -1.2917 -2.0519 -1.8556 1.0146 2.7701 -4.4081 -3.4569 -0.8021 0.2773 2.5574 2.3862 1.3118 0.1408 0.6688 1.9053 -1.5497 -0.5855 1.2457 -0.5521 0.9630 -2.2470 -2.8924 -3.7430 6.1844 2.5961 0.4138 -4.3685 -4.3743 3.3166 1.9814 -1.9703 -1.1246 -1.8788 1.8555 2.5293 -0.6354 0.3032 3.9855 0.4439 -1.3412 -2.6733 1.5434 2.8406 -1.3900 0.5430 -0.9949 0.7752 0.5153 -0.3382 0.7590 -0.3806 0.6362 -0.0446 0.6992 -2.3407 -2.2180 -0.8794 1.9075 1.9883 2.6403 1.4665 1.1384 1.9497 -0.4373 -6.8420 -0.3690 1.5979 3.6520 2.5947 0.9915 -0.4587 -1.5761 -1.3889 -0.8595 -0.0002 0.3336 2.0392 1.9215 -1.5962 -2.1409 -2.1868 -2.0225 -6.9604 4.1862 2.2427 0.7081 1.2472 1.2274 -0.7827 -1.3963 0.1531 1.0164 1.1220 1.4236 4.7449 4.1970 -1.6566 1.4602 -0.4324 -5.0812 -4.6776 -3.2034 0.2020 -0.8325 0.5609 -0.8996 -1.1981 -0.4982 -3.3678 -3.1656 -0.4840 -1.6889 1.4162 1.8691 1.8944 0.6984 2.1971 0.7659 -0.3399 -1.0540 -1.9648 4.8986 2.2357 -0.4350 -0.8795 -3.0303 -1.1024 -3.6351 1.8563 2.2581 0.9526 -1.3180 1.0520 0.9676 1.4472 -0.2536 1.6459 0.5539 2.7964 -2.3045 3.1405 -0.8848 -0.5008 -4.0553 0.4143 -2.0566 0.3509 1.5804 -0.1468 -1.2009 -5.1236 -1.6316 -0.6083 -0.2262 -3.8727 -1.4106 4.1461 2.8353 5.5841 2.0344 -1.3445 -0.2669 1.6597 0.4425 -0.7448 0.4237 5.5027 3.4466 -0.9733 1.1101 0.3187 0.4016 -0.8934 -4.1773 1.2529 -1.0141 1.7716 -1.4207 2.0071 -6.7629 -1.4260 -0.8769 -1.9766 2.0620 1.2241 0.5250 0.4342 -1.3517 -2.8754 -3.0586 0.6098 2.2679 1.4929 1.4608 3.1011 1.5060 -4.8013 -7.5268 -0.6504 -0.5030 2.7780 2.8557 1.0462 3.4571 -0.7675 3.5730 1.8714 -0.1581 -1.7722 -0.3433 -2.7056 -3.0806 -1.9100 -3.1355 1.0548 -1.9906 0.4699 0.0873 2.5566 -0.1726 -0.8702 2.1464 4.3968 5.0995 -5.1171 -0.6968 -1.4896 -0.0495 0.8149 1.4216 -0.0327 -1.7535 -2.2313 -0.3210 1.9568 4.8784 -1.9324 -1.8058 -2.6431 -3.7316 0.3685 1.1306 4.9893 -0.2577 1.3848 -1.4341 -1.1497 -1.8056 0.1413 2.5710 2.9390 0.7055 -0.4196 -0.2614 0.1608 -0.6195 -0.3637 4.1643 0.3576 0.0984 2.2749 0.4728 -7.3150 -0.1921 -0.3248 -4.2895 -7.0396 -4.8802 -1.5844 1.4442 1.8886 0.5829 0.1608 -2.6352 -1.0632 0.4985 3.2097 6.3270 9.0622 8.0546 -0.4311 2.1200 -2.0642 -2.9293 -6.4319 -2.8918 -0.9105 -1.1049 -1.3358 0.0333 -0.4429 1.1140 3.2177 -0.2479 -0.9423 2.0518 -3.4204 -3.3752 -1.5080 4.5184 3.5104 0.8370 0.3279 4.1906 -3.6215 1.1012 2.8300 4.9338 4.9135 -1.4413 -4.6933 -2.9852 -2.2104 -2.0709 -0.2446 -1.7323 0.4460 -0.3491 0.7293 1.2549 1.5520 -1.6591 -0.0263 -1.3091 0.9607 -3.8105 -2.2705 -0.4801 0.0030 -1.0835 -0.8967 -1.8480 4.3428 2.2775 1.1261 1.5948 4.4091 3.5564 -2.1928 -2.8051 -1.2385 -1.6399 -0.9968 0.5731 1.3796 4.5581 4.2833 0.3675 -0.5438 1.9400 3.0816 0.3261 -0.8096 -2.6679 -2.1086 -0.8131 -4.9186 -3.6340 5.7405 0.0185 0.6308 2.5276 -4.0355 -1.8846 -2.0583 -1.2863 -0.2640 -0.1222 1.8197 -0.8215 -1.4173 6.3047 -1.3136 2.0735 -0.1627 3.0262 1.5599 -2.3044 -2.9292 -2.1284 -0.0060 -0.2974 -0.4468 0.2977 -1.5818 -0.3043 -4.9833 -4.4641 1.6692 5.7638 4.6547 3.7525 -0.9610 -3.9550 -2.2488 0.7885 4.2621 3.6322 2.1375 -6.9698 1.9153 2.5541 -3.4886 -0.8469 -2.9081 1.6869 -2.2603 -5.3537 -1.9240 -2.3796 2.8412 5.8922 -3.3838 0.7866 3.3273 0.7220 4.1493 -2.8075 1.2195 -4.1220 2.7912 5.5751 -0.9361 -3.7960 -2.0281 1.8743 1.5687 0.9347 -0.0119 5.1974 -0.9505 -1.5819 -0.0387 -0.2355 2.4835 -2.7180 -2.1816 -1.0347 -1.5606 -1.4552 0.4355 -1.6713 -3.1551 -0.2146 4.3156 -0.5064 0.6473 1.6157 0.4031 -0.7786 0.4664 2.3609 -0.8533 -2.7426 0.0584 3.6047 -1.3728 0.0256 -2.0089 0.7575 -3.1106 -1.7839 0.9710 1.5709 0.6757 -0.1854 -0.4792 0.2327 0.5721 1.3762 0.9344 1.6367 0.2158 0.6455 0.9744 -3.1471 -5.2734 -4.3577 3.1646 3.1365 2.2803 1.2303 -1.9960 -1.5643 0.6037 1.5540 2.1016 2.3825 0.8004 -2.0847 -2.7548 -1.5073 0.1971 -0.2707 -0.7690 -1.8324 -0.6385 -4.5361 -6.8801 5.4599 2.6660 1.1252 2.2850 1.3862 1.3159 -2.3092 8.5984 0.5061 -0.6741 -2.4670 3.2934 -0.6680 2.0327 0.6889 -1.8602 -0.9325 -1.2001 -4.3458 -2.5628 0.6948 -1.1889 0.4479 2.5950 1.2931 -1.9416 0.8421 1.5717 0.5751 0.5951 0.4783 -2.2142 0.3553 6.0828 3.0287 -2.3343 -3.2264 -0.7759 -2.0090 -0.3873 -2.4778 0.6768 -3.4990 -0.8957 4.2903 -0.6766 -0.6942 8.6603 -5.4134 -0.8727 -0.3504 -3.3092 -0.5586 -0.2913 2.8905 -3.0583 -2.9724 -1.7470 3.3250 -1.1022 -4.4193 7.6704 0.5149 -0.7173 -3.6000 6.0453 0.6802 1.0947 1.2451 3.8611 4.5266 1.8951 0.7625 6.2260 2.5223 4.8966 1.8380 -0.3753 1.3861 -7.5361 -6.8810 -3.7307 -4.9193 -2.5727 -4.5778 -0.3414 -1.4648 -1.9631 -1.4302 3.2813 2.7021 -1.3306 -3.5822 -3.4123 -2.6251 -2.5540 -2.9830 1.7868 1.1612 1.7944 0.6471 3.7619 3.5844 -0.4360 2.9666 0.0957 -2.6065 -0.4815 3.7667 3.2609 1.4317 5.8806 0.0973 -3.3441 -3.2874 -4.9485 -1.6589 0.7537 0.3424 0.9215 3.8135 -4.2041 -1.8751 -0.8917 1.0067 2.0227 4.0705 -1.6316 -3.7042 -1.3612 1.3654 1.6949 -0.0461 -0.4280 2.9316 0.2615 -3.3312 0.4341 1.2323 -0.8543 -0.8620 -4.8579 -6.1758 3.1382 4.9340 3.1899 -4.1097 -4.1313 -2.7947 -1.2657 -0.6757 0.0158 -0.2664 -0.7288 -2.8256 -1.9407 0.4965 2.0938 4.2596 1.7443 2.0920 3.1468 3.6217 1.9383 0.0884 -0.7586 -0.5474 3.7117 4.4423 -1.1991 -3.2034 0.2008 -1.1999 -0.3645 -0.3658 -1.5068 4.3945 -0.5362 -1.4209 -0.9138 -0.0750 -0.9590 3.3133 2.7513 -7.0608 0.5385 -0.2792 1.0180 0.1758 4.6409 0.9990 0.8572 -2.2212 -4.3593 1.0210 5.0992 3.1964 1.4429 -1.7425 -0.9214 -2.3245 -1.3975 -6.8773 2.8027 -1.1862 0.0560 1.7064 0.3215 -0.2518 0.0527 -2.5377 -4.4163 -3.0416 -0.1822 -1.1887 -2.9410 0.6761 3.4948 1.6101 1.2626 0.2612 5.6220 -3.9114 -1.0915 4.1888 0.3661 -1.7866 -1.1389 -0.0309 -0.9349 0.3853 1.9195 0.2339 0.3886 0.9745 1.4208 2.5313 4.3943 -4.6360 -2.5445 -2.1898 -2.5330 -0.3527 4.7621 0.5928 -1.4558 7.8057 -3.8468 0.8827 0.8768 -4.7631 -5.1731 0.0664 5.3199 -1.7890 -4.3428 1.9966 2.9221 -4.5512 5.1760 0.5820 -0.2561 -0.2887 0.6505 -0.8654 -0.4024 -2.5780 -0.0834 0.1440 -1.6096 -4.1370 -4.8240 -1.6968 2.0832 4.4015 2.3414 0.0326 -1.7738 3.0088 2.5338 2.2405 0.7822 -3.4270 2.3235 0.3274 -0.0892 2.1843 2.5930 1.3745 1.7373 2.8715 2.7285 -1.1274 -0.1783 0.9497 1.0004 -0.2974 -0.2919 0.6463 0.2228 -1.5085 -5.8708 -3.6910 -0.8536 -2.5539 0.0647 -1.6643 -0.8616 0.2098 2.2486 4.6647 3.8540 2.3834 1.3656 -0.2611 -0.7523 -0.2703 2.8630 1.1570 -1.6263 -4.3844 -3.5346 -0.0484 -0.8649 -4.9645 0.4867 0.6824 1.0939 0.6691 0.3291 -0.2396 -0.9714 -0.9487 0.4056 -0.8422 -1.0662 -0.8121 -1.8756 1.8363 1.0681 3.7568 2.7493 -2.2790 1.4171 -4.9986 0.0258 -2.0461 -1.9677 -1.8134 -2.6831 -3.0621 -1.6874 2.2873 0.6491 1.7878 1.1808 1.5028 -1.1540 -1.2923 -0.0603 -3.5107 6.4917 4.0814 1.4288 0.0396 -0.1721 1.7926 0.6400 0.0107 -3.4114 12.2384 -4.2391 -4.1672 -5.5139 -1.6966 5.3015 -0.9447 -4.0014 3.1093 5.2076 5.6201 2.3962 -5.3615 -1.8057 -0.2628 -4.9121 1.2301 -0.2653 0.0535 -2.1294 -3.7763 -2.5405 -1.3165 1.3892 1.1754 1.8095 2.3931 -0.5310 -0.8291 0.5926 -0.2725 -7.2218 1.8619 3.8534 3.4226 1.1011 -4.1789 -3.5276 -0.8324 -0.4176 -2.4000 0.0369 0.9853 5.4189 -1.8625 4.5416 -0.0534 -2.2531 -1.8390 3.0263 1.3992 -0.9141 -0.2291 0.6856 2.4454 -0.0313 -6.4975 -4.6128 -3.3675 -4.8986 -0.8354 2.3584 -0.6088 4.1352 0.6068 0.7211 0.2750 -2.0557 0.4476 2.7831 4.6078 -0.4014 5.9849 2.1061 1.2312 -1.9795 1.3230 1.1384 1.2773 1.7150 -0.7509 -3.8269 -1.1290 -0.1851 -3.0673 2.4551 -1.8006 -0.5768 2.5367 -0.4358 1.0236 2.8956 4.5161 -0.4242 -3.2309 -3.4534 -0.3567 2.4123 4.0459 3.3988 2.0862 -2.1774 -5.1260 -1.0930 -2.2588 -0.1938 0.5021 -0.2723 1.0175 -2.6722 0.0196 -1.3546 -1.6702 0.8080 0.6509 2.2336 -3.1316 -2.5501 -0.7668 1.9764 1.8647 -0.0801 0.9053 0.9563 -1.0947 0.3992 -1.9982 2.2428 2.0122 -5.4193 -2.6261 -0.7274 0.7121 1.7109 3.9486 1.6660 -7.9949 4.0953 3.7255 -1.4546 8.0933 1.7853 -4.2627 4.4208 9.6075 -2.0281 -0.5418 -3.5660 -1.9219 -6.8006 -1.4426 -1.8720 6.0536 -6.8174 0.7937 0.1276 -1.9787 -1.0115 0.4548 -0.6009 1.0489 -0.3883 -3.8168 3.5539 1.8044 -0.8020 2.2377 4.0130 2.5264 2.9341 2.9402 3.1940 -12.1756 -4.5827 0.7140 -0.0649 -2.6937 -0.9969 0.6136 -0.2092 0.1112 0.1733 0.0276 0.6804 -4.1810 0.4835 3.1126 -0.8365 -1.6005 3.1133 -1.3297 -0.4657 2.8302 2.7130 -2.7204 1.1750 -4.2305 -1.0868 0.5304 -0.1415 -1.2124 -0.8981 -0.8790 -0.8763 -0.9777 1.0148 4.1145 2.1714 1.2310 -1.6938 -1.4429 1.2355 6.6877 0.2382 -3.2655 -0.5189 -2.1503 -3.4325 -3.4567 -1.0918 0.5993 0.3527 0.3437 0.2288 0.7821 1.0173 2.2607 -0.9887 -0.3595 4.4457 3.7070 1.5475 -3.7173 0.7682 -0.5101 -0.3462 -3.7019 -3.2897 -0.3993 1.1225 4.7873 3.2500 -1.8347 -2.0699 0.0727 1.2966 -0.1512 1.4478 -2.4263 -0.3987 -2.4159 -3.3225 2.8445 0.7735 0.8954 3.5197 0.0807 -1.1966 -2.9464 0.8465 1.6234 1.1215 1.2824 3.7187 2.3234 -3.7329 -7.3924 -3.2192 -4.4371 -4.8564 3.1927 2.3654 4.5154 -1.0330 4.4531 3.2910 0.0329 2.1961 1.8627 0.5090 -2.3566 -3.1635 -1.4865 -3.4766 -3.4834 -4.5095 -2.4040 -5.5450 7.4389 3.1752 2.6905 4.3345 1.8695 -0.0444 -0.0458 2.4056 -4.2525 -4.2615 -2.8448 -1.4174 -1.4188 -1.0941 0.0321 2.7304 1.6246 3.7714 3.6887 2.3979 1.9374 0.7696 -7.0469 0.1811 3.9202 4.8839 -3.2038 -0.3977 -0.4109 -0.9615 -1.1887 -1.3425 -1.0669 -2.7829 -2.9395 1.2890 1.6984 -0.5601 1.6775 -0.5469 -0.8102 -0.2298 -0.7565 0.3451 3.1792 2.2226 4.5535 -1.3689 -5.7264 -3.6531 -1.3521 0.1463 1.7110 3.1890 0.7838 -1.0176 -0.2195 1.4384 0.0207 -0.4968 -1.0491 0.1749 1.0739 2.0378 1.3580 1.2360 0.4429 -0.0980 0.7773 -0.8979 -1.2165 -1.9337 -2.9157 -4.0101 -0.3148 -4.6460 -4.2945 4.1770 5.5969 1.4549 3.5448 1.4079 -0.8343 -3.2017 5.5239 2.2268 -0.3838 -0.0607 -0.6985 -0.6307 2.4635 -0.5381 -0.2883 3.4018 2.1088 2.9180 -0.5123 -0.9613 0.0579 -4.3385 -3.8027 1.0743 5.0578 -1.8280 -2.2439 -4.7171 0.9386 2.5388 -4.5218 0.1558 2.8380 2.3948 -1.9436 0.6339 -0.7954 1.9788 1.5836 1.1696 -4.5526 -0.5640 1.4447 7.0584 -6.8023 -4.5393 -6.0449 -0.5031 6.1354 4.8739 0.3624 -1.2047 -2.0776 -1.5816 -0.7523 -0.4259 1.9866 -0.1702 -0.4710 -1.9514 -1.5113 -0.2099 2.7070 3.8409 4.1635 -1.6517 0.8031 3.1180 -4.9637 -0.0100 3.3248 2.1375 1.3785 0.2103 3.0519 1.4244 0.2968 -0.3016 -1.2728 0.9142 0.2763 0.9396 2.3345 -1.6742 -3.9431 -3.4421 -2.5066 -1.7463 1.1359 -2.5381 7.3832 7.8862 -6.4414 -8.9767 0.1372 -3.3099 3.3247 -2.2516 -2.6663 1.5419 7.2572 -0.6762 -1.4552 3.0048 6.9210 -8.5959 -2.6649 2.5301 -0.7893 -2.1588 1.3303 0.1631 -2.4438 -1.2379 0.9953 2.7203 1.9038 1.2786 0.3887 2.8669 0.3680 -0.1846 5.6338 2.1238 -1.0482 -5.2051 -1.0787 -7.2281 -1.5184 0.1722 0.1645 -0.9895 -2.0311 -3.1149 -3.2980 -2.1249 2.0221 2.1048 -0.3058 -1.0676 -2.5289 -1.4215 -1.7517 2.9140 4.1244 -0.6494 2.6877 3.2611 2.5839 -0.5792 -0.4639 -1.9119 -0.6903 1.0816 1.7980 1.1866 0.4220 1.5316 0.8944 -2.9810 5.6782 3.5367 -0.9955 2.4778 -1.9477 -3.1693 -0.0340 -1.9442 -1.8186 -2.6506 -3.9601 -3.1838 -1.3333 -0.9936 0.4708 1.8640 0.2776 -3.5639 -1.8523 3.8979 6.3274 1.9935 2.4867 -0.2835 -0.1329 -0.9778 1.4936 2.4315 0.5084 -5.4702 -1.9007 -8.9624 0.7258 -2.6244 1.8683 0.7413 8.1690 -2.3570 -4.2143 -5.3821 5.3979 -0.3396 -0.0209 2.4866 -1.7903 8.5769 -2.6396 -4.5135 0.4288 6.3503 2.3682 1.2735 1.0581 0.7198 -1.3884 -1.1783 2.7862 -0.3150 -4.4216 1.0457 0.8020 0.2322 -1.8255 0.9933 1.5522 4.2681 -3.4105 -1.8681 -3.1691 0.4773 0.1022 3.5273 4.7298 1.5753 -3.6041 -2.4060 0.8414 1.2204 1.0785 1.4517 0.9533 1.0682 -0.0095 -1.2482 -3.7150 -1.4924 0.0586 0.2151 -3.5086 -0.8381 2.6097 1.3046 0.1797 -0.8433 -0.8002 -0.6737 -0.7817 -0.0181 -1.8564 -0.0021 1.7429 2.1363 2.4019 0.8520 -1.2013 -2.3776 0.1614 -1.6535 0.2922 -1.4730 -1.1555 -1.9989 -3.7971 -3.5419 -1.7702 5.6208 1.6756 -3.4769 -2.2174 -0.5921 -2.9465 2.4449 3.2181 2.5732 0.5741 1.4008 -1.6104 2.6683 4.0017 -1.0706 2.6808 2.4971 2.2595 2.6039 2.5012 2.7248 0.3061 -0.5761 -0.0415 -2.4607 -1.2162 -0.0800 -2.7145 -3.3777 0.3468 1.3821 -2.9010 -0.5334 -2.3262 -1.0750 -1.4573 -0.7869 0.2356 -0.1795 -1.7997 -2.4756 -0.7083 -1.2917 -0.2409 1.8121 2.3854 -0.0780 -2.6742 0.8926 3.1169 2.4329 -3.2335 1.5184 1.6752 0.8566 1.3578 1.5299 1.0786 -1.5960 -3.3648 -1.6673 1.3592 5.7139 -0.3364 -0.8154 -1.0911 0.3285 1.2167 -6.5169 3.5759 0.3841 -3.4189 2.2520 -0.3564 0.3665 -3.9427 -4.1692 -3.9599 -2.7914 -2.7852 0.8501 2.1268 3.1929 2.9997 0.9798 3.7115 2.7044 0.8023 -1.3597 -0.1213 1.8505 0.8537 2.3570 0.4425 -3.7419 1.1259 1.7278 1.7181 1.0824 0.9378 2.2855 -0.4426 -2.0998 0.2868 -2.3258 -2.4774 -3.5030 -2.1920 -0.0403 0.0689 -2.1823 -1.7516 0.3348 2.6371 4.8097 2.6282 3.1949 1.4763 -1.8168 -2.3026 -0.1157 -0.0177 1.6877 0.8500 0.1002 -0.5211 1.2286 1.5164 -0.6411 -0.9348 -3.1872 0.1863 -3.1762 -3.7899 3.6345 0.6239 1.6179 1.2014 0.2608 -1.9920 4.7736 2.9884 -1.6687 -1.5700 -3.2904 2.3265 0.1217 -0.6529 1.1537 -1.3430 -3.2660 -0.7427 -0.3946 -0.8553 0.7078 -2.5785 3.3274 0.7827 -1.1641 0.3099 2.0930 -3.8923 -2.1233 -0.2174 -1.0352 2.3827 3.2008 -1.3061 -1.3553 2.0138 -4.8137 2.2926 -0.4492 0.2262 2.3061 0.7030 -0.6796 0.6702 1.2330 0.3286 -1.1249 -0.2281 0.9008 -0.4257 1.5252 0.1413 3.8708 -2.7125 -0.1048 -1.3046 -2.6469 -1.7645 -0.4236 2.6448 -0.6022 -2.0396 0.9147 3.7884 2.4844 -0.2561 -2.4529 1.8969 -0.1479 0.6950 -1.2549 -4.9008 -1.2459 0.9313 0.6906 5.2636 -1.1277 -0.2394 -2.2895 -2.5856 1.8753 1.6780 -1.6532 -2.7599 -2.2450 0.5197 -1.6003 4.4426 1.0934 -0.3109 0.9191 -3.4242 1.3304 -1.5208 -0.9853 -0.2434 3.9418 0.4425 -2.2543 4.6335 -2.0037 2.2658 -0.6139 -1.3935 -0.0563 -2.9550 -1.9056 3.4601 -0.3817 -1.6475 -0.2910 -0.5503 1.7727 0.0114 2.6384 2.8574 0.5346 -5.4829 -2.6161 0.9580 3.3952 -2.9553 0.0039 3.9564 2.2087 -0.9348 -1.5953 -1.3780 0.1552 -2.1548 0.7917 1.8242 1.6997 -1.8826 -0.8677 -0.7876 -0.2152 2.3842 2.1467 1.7116 -4.1110 0.7023 1.9303 1.0064 0.0165 5.4286 -1.1464 -1.0459 -2.0088 -1.2634 -2.1806 -0.6159 0.3372 3.4050 -1.1188 -2.8596 -2.3910 -0.5550 5.4226 -1.0697 -1.9937 -0.8683 0.0341 1.1306 -1.3868 -1.9833 2.9612 -0.7025 0.9705 -3.1777 4.1388 0.7353 0.3664 2.0843 0.2998 -0.4050 -1.1895 3.2137 -5.0324 1.1351 -2.3244 -1.0092 0.5101 2.3070 2.1852 1.5304 -1.7001 1.6095 -1.4570 -3.9762 -1.6422 -0.2532 1.3474 0.8974 0.9819 -2.2295 4.7058 -2.0380 3.1038 -2.5420 -2.3311 1.9713 1.0803 -1.0686 -1.2321 0.3041 -0.5899 -1.6032 -0.6543 -2.1903 -2.1676 0.3844 0.2905 -0.5787 -1.1285 -3.3703 -0.5637 0.3705 2.2696 8.3763 0.1004 -2.3313 3.6108 -3.7738 2.3534 -6.3897 3.9802 2.8098 6.2413 2.5170 5.1260 2.4541 -1.7202 -4.9921 -5.7179 -3.3204 5.3271 2.0124 -5.7657 0.7907 -3.2116 0.3230 1.0311 1.3660 0.9706 2.0785 2.0724 -0.0151 -0.8301 -1.1195 -2.8044 -0.9819 0.0417 0.0944 -1.2077 -2.2323 4.1593 1.4207 -2.7654 -0.5102 -1.0909 1.0182 0.5812 0.3232 1.7040 1.6371 0.0882 0.7883 2.0623 -2.4549 -1.7632 -0.0828 0.1245 -1.0882 -0.0487 -2.0254 -0.8118 -5.9132 2.5533 0.4880 2.8199 -2.1755 -1.4110 0.7926 3.1903 3.2045 1.4005 2.2246 0.4995 1.4795 1.0003 1.4155 -1.8108 -1.7649 -2.0289 -4.9177 1.9399 0.4644 -0.6846 -2.6827 -0.1356 -2.3372 -0.8774 1.8295 2.5713 0.4237 -1.6200 0.7250 1.2049 -2.5557 -1.7837 -2.0535 1.8608 2.0142 1.1559 0.4140 -2.2055 2.6316 -1.0207 -0.4407 0.0634 -6.4760 2.3566 6.2881 1.1780 2.2768 0.5492 3.6691 1.5956 1.5393 0.8045 -2.4474 -1.1396 -3.0192 -2.8013 2.1788 0.9584 -4.0593 -1.3318 -0.6033 -1.5164 -0.2224 3.1469 4.1918 -1.5853 -2.9401 2.4424 -2.0556 -1.6902 1.4657 -1.4987 -4.5783 -3.9175 1.8499 2.5001 -2.9926 -3.1367 4.3814 2.8761 -0.3135 2.0766 0.2838 0.7448 1.5373 1.7127 1.9184 1.9954 1.4552 0.6636 -0.0775 -1.4076 -2.7023 -2.4765 -6.0615 -4.2297 -2.8214 4.4402 0.5975 1.2302 2.2798 0.9178 0.1873 0.8058 1.4948 0.4584 -0.6762 -2.1053 -0.4098 -0.9510 -0.4347 -0.3909 -1.0508 -2.5837 -1.0389 -4.2899 -4.0647 3.8453 2.2675 2.8481 4.5950 1.4936 6.4165 4.7690 2.1643 -0.5306 -1.7418 -1.1821 0.4655 2.4797 -1.0005 -2.7835 0.6462 1.0540 0.1648 -0.2195 -1.2133 -1.6876 -0.2896 -1.1843 -4.2375 -2.0895 0.6591 -2.4247 -3.5305 -2.0684 0.7993 0.5286 -1.0223 -0.9537 0.6266 1.4075 1.4620 1.6652 1.3324 -0.3799 1.6047 -0.4030 -1.4183 -0.7574 3.5079 -0.6351 -0.7402 -0.5022 -0.0104 -0.1501 0.0126 -0.8303 -0.6338 0.0643 0.7573 4.3586 2.2234 -0.7379 3.8453 0.8151 2.8221 -1.4249 -1.4011 -3.5524 -6.4818 1.5666 1.2970 2.6835 1.2613 -1.8292 -0.9390 -1.6773 -1.9287 1.2477 1.3854 -1.9138 -1.0744 1.6338 -4.8418 -0.5580 -1.2900 5.2745 -2.7458 2.6939 -0.9625 2.2835 1.8861 3.1363 4.0321 1.7435 0.5233 -0.7855 2.0137 0.8065 1.2174 -4.0074 0.5860 -1.0339 -6.4815 -6.1251 1.1641 -3.9644 -6.3895 7.8222 2.0846 1.7715 3.9399 2.2907 1.6049 0.7588 -0.5727 -0.4203 1.1669 0.6185 -0.3417 1.2484 1.5946 1.7091 -1.8086 -4.7596 -2.8399 -3.9325 -2.0296 -0.6780 -0.7509 3.2019 -0.3222 0.6190 2.2698 6.3269 5.8198 2.6992 0.0601 -0.5335 -1.7361 -3.6667 0.2231 -2.3194 -2.0166 2.4960 0.1420 -3.4765 -2.9842 -0.3195 -1.1974 -2.0840 1.2403 -2.3646 -2.0313 0.7252 3.2474 2.8194 3.1981 0.9009 1.1286 -0.9170 -2.4531 -2.4020 1.6229 2.3317 -1.4971 0.7586 -3.2903 -2.1223 -1.2864 0.3911 2.1547 -0.4814 -1.6208 -0.2568 3.7660 2.5927 -0.5335 0.5221 2.1027 -1.7193 -2.1878 -1.5973 0.4487 -3.0208 -3.0695 -0.2839 1.2100 -4.2182 4.8800 1.3123 -0.8216 0.0172 1.0117 1.8195 2.2767 0.0322 -4.7072 -3.7244 0.2876 1.2946 -1.1268 -2.0514 -0.3229 1.5642 2.8282 1.4525 -0.2405 0.3745 -0.8299 0.8658 -0.5885 -0.7711 -0.1566 0.2456 -1.1305 -2.1400 -1.5832 -2.7023 2.6573 2.8982 -1.9439 -1.4435 3.2616 3.0544 -1.0646 -0.2393 0.2808 -0.6774 -3.3509 5.3938 -2.1609 4.7541 2.6519 2.9104 -0.9771 -3.4464 1.3102 4.9024 3.0997 0.1198 -0.6878 -5.0516 -2.6241 -0.1390 0.3260 -3.7625 -4.6033 5.7644 -2.7192 0.3330 -0.0774 0.0212 1.7356 2.6966 3.8703 -1.2640 -2.2040 -3.8688 -2.8745 -0.3830 -1.2433 2.7247 1.1808 0.5913 3.3839 -2.9426 0.1962 -0.6047 -3.1975 2.2593 -1.7694 -0.8337 -1.4857 1.6357 3.0084 1.4757 0.7496 0.4982 -0.8638 1.0294 3.8151 2.5480 -0.4944 -5.1598 -4.1575 1.6819 -0.9028 -3.0629 2.9081 -0.6201 -4.1737 -1.1372 0.4218 -0.3980 -0.2873 -2.0904 -1.4241 1.1799 4.8192 5.5695 2.1240 -1.9634 -0.1503 -0.2208 -2.6623 -1.2140 1.5287 0.1773 -0.4832 0.3844 1.1759 3.6352 3.0816 -1.1382 -0.8341 -1.2549 1.7627 -0.2610 -1.7582 -4.6767 -1.9887 0.8806 -0.2903 -2.9331 -3.3697 0.3291 -2.5313 6.3991 2.6926 1.0793 3.1054 0.5446 -2.7707 -3.1154 -2.4354 -2.1091 -1.9215 1.5263 -0.5089 -2.1954 -3.0602 -1.7502 2.0283 3.0940 3.1639 6.0315 0.1168 -2.3219 2.2755 0.3024 1.4017 0.2037 -0.1188 0.3630 -1.7809 1.2589 -0.0416 0.1426 -0.2900 -0.0669 -0.9365 -1.7637 -4.6543 4.5857 0.7173 -1.2893 0.7992 1.8632 0.4734 -0.8667 -0.6645 0.3054 -0.1583 0.3900 0.1223 1.1996 4.2148 1.7843 2.7706 0.9297 -1.0663 1.2711 -0.1675 -0.5861 -2.5452 -2.9107 1.2640 0.2394 -4.6672 -1.7254 1.3908 0.5115 -0.8577 0.3878 0.7710 1.2838 -1.2112 -1.2930 -1.9359 -2.3893 -2.5796 1.2692 3.1933 -0.2748 0.2489 3.4206 -5.3967 -3.2312 2.6326 4.0600 -3.1151 -2.4768 -1.4409 0.0820 -0.0650 0.8542 2.7545 0.8481 2.7775 3.2925 -1.1392 -0.5600 5.6459 -1.5505 0.7937 -0.2372 -3.8294 -1.7699 -1.1681 0.3038 -1.4631 -1.5744 -1.0602 1.2727 5.2755 0.7411 2.6424 0.9111 -1.5443 -0.8217 -2.4580 -1.9627 -0.3229 -0.7005 -0.1842 1.4410 1.1190 -0.0388 -1.7254 0.4532 2.6735 -0.1320 -2.0731 -1.2667 -0.0059 0.4063 1.1045 -0.6500 0.2919 -0.2343 -0.1432 0.5161 -1.3203 -1.9223 -1.8439 -0.3541 2.5902 0.7807 0.9691 0.6136 -2.5760 -2.1039 3.3039 7.5737 4.8510 -1.9280 1.3509 -0.0624 1.3149 2.3856 -2.8836 1.6777 1.6919 -0.2315 2.0672 -1.6292 -7.7877 -7.8864 -2.4230 3.2949 0.1825 1.4326 1.8802 -0.7600 -3.5028 -2.0654 -2.5905 -1.9780 -1.3931 -2.0377 2.0912 -0.7666 -1.6801 0.1901 1.3312 -0.8245 -0.8221 9.1933 2.6121 -0.4925 0.6596 0.5183 0.0656 0.6099 0.2170 -0.2483 0.3752 0.0528 -1.3550 -1.9590 -3.0746 -2.7901 1.7480 0.0667 -1.3253 1.8365 1.2016 0.6331 1.5502 1.2179 1.5180 -2.8697 -3.0225 1.1901 1.2949 1.2425 -0.2655 -1.0124 0.1504 0.9476 0.8294 0.4980 -4.6214 -0.4714 2.3140 0.5042 0.0042 0.6173 0.0250 1.1274 5.2946 0.9166 -1.6961 2.6183 3.7503 -0.5464 -0.4536 -2.5804 0.7239 -3.0443 -0.9745 -0.5296 -1.2153 0.2578 -4.9483 0.2574 1.6442 -1.7218 -1.0182 3.2654 -0.3113 0.1627 0.2010 -0.6825 0.4894 0.3705 0.5406 -0.5307 2.3413 3.1334 -0.2531 0.7289 0.0127 0.8411 -0.5394 -1.5751 -4.4648 3.3442 -1.3619 -2.4473 0.7892 1.6007 2.2451 -0.0142 -1.8268 1.0211 1.1632 -0.4310 0.4809 0.7681 -0.3119 -3.1840 1.8621 0.7982 3.9396 5.5125 -9.0182 -7.2338 1.4720 0.3673 4.5691 3.1984 0.4848 -1.6299 -1.5279 -0.4613 -0.3940 -0.7641 -0.7740 -1.4705 -2.0718 -3.7739 -3.8204 -2.0882 0.9538 2.3794 3.3309 2.1292 0.9829 0.7475 -1.7639 -2.1300 1.8133 5.4637 4.9096 0.4400 -0.2077 -3.2872 -2.8010 -3.3973 1.4612 -0.7884 -0.4468 0.3167 3.0330 3.6546 1.5554 -2.1172 -5.0158 -0.6924 -0.9691 2.1549 0.9464 -1.8955 -2.4830 0.5229 1.0573 -0.1544 -2.7731 -1.7762 -1.2133 0.4997 -0.4040 0.0598 2.1564 0.9676 0.1749 -0.3066 1.3334 2.1020 0.1735 -0.6351 -2.2851 0.3979 2.1071 0.8723 -1.4327 2.7248 2.2122 -3.8366 -6.8693 2.9956 2.2340 0.2392 4.5854 0.8064 -0.4877 -1.9451 0.1604 -2.0173 -3.0467 -2.6229 -0.6828 -1.5402 -4.5504 -0.6274 -1.5654 -1.1048 -5.0244 1.2208 4.3959 1.7152 0.8404 2.3104 3.9110 1.3725 3.6004 -1.5868 -0.0242 3.0095 4.6972 -2.0723 3.7478 -0.0539 -1.3604 -1.6975 -5.1051 4.5477 7.4910 0.8111 -1.5236 -2.0035 -2.3201 -1.9156 -1.8399 2.7039 1.1102 2.7618 0.1987 -8.1775 4.2697 2.1482 1.1807 -0.8188 -0.0158 -0.9415 -3.1934 -7.6652 -5.2761 -0.4096 0.8289 -0.6591 -0.1321 -2.2645 2.6890 3.5308 -0.1860 2.2844 2.1691 2.4613 -2.6176 -1.9646 -0.3365 0.4490 1.7890 3.0096 1.2687 0.1913 0.7099 3.1055 2.4376 1.5156 0.2027 -3.2954 -0.8316 0.6250 2.5125 -1.9645 -4.7360 -2.0703 0.9801 -1.1590 -1.1869 -1.8206 -2.6697 -2.2474 -1.9247 1.3390 0.7955 3.2786 2.1796 1.2439 3.8310 0.9791 -3.7027 -2.0691 -3.3297 3.4700 4.0219 -2.0091 -1.9305 1.1296 2.7892 3.5086 -0.4192 1.8621 -2.4767 -4.5620 -1.3151 -0.4855 0.2130 4.0896 -0.2763 2.9118 1.5789 -0.3477 -0.8200 5.6054 -7.8822 -3.1730 3.5183 4.1815 1.9981 -0.8261 -1.4369 -0.3881 1.0213 -3.8793 -3.6636 2.2621 1.1803 1.7727 -0.7985 -1.2902 -5.0777 -1.2307 0.3381 4.4122 -1.4815 -0.6120 4.0477 1.4256 -1.6604 -3.5999 -1.9136 -0.3445 0.3946 1.6694 1.2905 0.9828 0.5724 -0.1289 1.3498 1.3379 0.2067 0.3656 0.2492 -1.2128 -3.2905 -1.7416 -2.0178 -2.6699 -1.3526 0.2496 0.4148 -0.8854 1.0823 -0.6203 1.2579 0.4148 -2.2346 -0.4015 1.4157 4.8809 6.6230 -3.5608 -1.8735 -4.5603 3.5038 0.3340 1.4937 -1.5420 -2.3850 3.1706 1.4707 0.1938 0.5057 3.8806 -0.0936 0.3334 0.4606 1.4472 -0.9030 -1.4318 3.5118 -5.2689 -1.4235 -1.2997 0.0053 -2.1257 -3.6561 0.1855 0.3705 1.1645 0.2341 -0.8092 2.3980 -0.3274 -0.4576 -1.1851 -3.8496 2.0281 -3.3309 0.9466 -0.0780 1.0318 4.0737 2.6190 -0.3495 -1.0083 -0.1238 -0.3756 -0.3626 -1.1974 -3.0280 -3.3983 -3.5184 -2.8303 -0.2464 -1.0525 0.7469 1.1667 1.9967 2.0536 5.8842 4.6720 0.6593 -0.2270 -1.2558 0.4368 1.4898 -0.0036 2.1872 4.7731 5.3388 2.1104 0.8610 -1.9286 -4.4764 -2.9139 -5.8875 0.1502 2.3687 -3.3444 1.8016 2.0118 0.3480 1.5855 -1.0664 -5.4053 -0.2559 -0.0970 0.6606 -3.0637 -4.0503 -2.5522 0.2345 0.1786 -0.3244 -2.5706 1.7286 2.2086 1.6927 2.7400 1.9340 -0.1619 5.4140 3.6846 -5.1534 -2.2469 0.7337 0.6464 -0.7291 -0.8337 -0.3024 0.3377 1.5178 1.0116 2.5850 0.9759 -1.3970 -3.2182 -3.6906 -0.0798 3.4993 -1.9939 -5.3046 1.4115 4.7666 0.0639 -2.9601 -0.9321 -1.3007 -4.5012 -0.6859 1.6271 0.8938 1.8188 2.7147 2.4868 2.4402 0.6577 1.2040 2.0247 0.2523 1.3499 1.0757 -5.3086 -0.2223 -2.6347 1.2887 2.2547 3.3766 1.8575 -1.7910 -1.7548 1.5265 2.7964 1.2240 1.9720 0.2687 1.8100 3.1328 -2.5860 -2.7821 -3.9778 -2.4086 -2.0066 -0.0746 -4.1265 0.8108 -0.0118 0.3510 0.2469 -0.3564 -0.0688 2.2772 2.9983 0.0220 -0.8672 -4.8310 -2.0824 0.0877 2.2501 0.0661 -8.6456 -1.6422 4.8643 2.3157 2.2152 -2.3502 1.9923 1.6641 -2.2786 3.4633 2.6050 -3.0058 1.5172 -5.3190 -0.9994 -2.4221 0.2495 3.8898 -2.0580 1.1705 0.4058 -1.2798 2.5712 -0.5349 0.7192 5.2963 2.7580 0.0542 -1.8363 0.6217 3.1975 0.8761 0.6926 0.1889 -2.2049 -2.6639 -2.3949 -0.4550 0.9028 0.9417 -2.3200 -1.6049 2.2215 -3.0876 -1.1840 0.0332 0.6867 -0.5444 -2.6560 -2.3272 -1.9975 2.7492 3.4613 1.2531 2.2970 0.6826 1.6161 0.8081 -2.8567 -0.2510 3.1363 -4.7699 -0.8591 1.4746 -1.9362 0.1179 0.1304 -0.0905 -0.0885 0.5876 2.0857 -0.3875 -1.3306 -0.8957 -0.1982 0.8458 -0.0513 -2.2349 -5.5634 7.5385 3.9965 -1.0630 -1.5645 -2.1020 0.2680 1.5416 0.4773 -0.0338 0.6704 0.3091 -0.0982 -0.8312 -1.8586 -2.1668 -3.0698 -3.6621 -2.8717 -0.1465 2.9749 3.0473 2.3156 -0.0362 0.7605 1.1471 1.5312 -1.4651 -1.1492 -0.6700 -0.6012 -0.1247 1.1550 -0.2106 -1.2695 -0.4411 1.1446 4.1491 2.6600 1.3124 1.6069 0.6316 -0.4851 -2.5715 -4.3867 -1.0040 1.7189 0.2437 0.6555 0.3411 0.8466 -1.7425 -0.1636 6.1311 0.6211 -2.7030 -1.5009 -0.1744 0.8660 1.3589 1.2490 1.1273 -2.7402 -0.0949 -1.5440 -1.8610 -0.9159 4.3927 3.3672 0.9009 -1.2521 0.6230 -0.5206 0.8245 -0.9087 -1.8374 0.0097 -3.1469 -2.4307 -3.0482 0.2541 1.9480 5.7092 -3.3716 -3.2953 2.6836 -0.9014 2.2171 0.1913 -1.6779 -0.9585 -1.3241 0.2292 1.4881 2.7969 0.2756 -3.8207 -2.4695 -0.3208 2.3024 2.5414 -0.1815 -0.2933 2.0837 0.9892 -1.0861 -2.9823 0.1186 0.1645 -0.3865 -0.8001 -0.3047 -2.3398 -0.6229 -0.0641 0.8491 1.7026 -1.1341 -2.0704 -0.3123 0.1814 3.8820 1.2943 0.4627 -0.5672 0.5181 -0.5712 -0.1015 -2.3234 -2.3520 0.9949 2.2704 0.9946 0.3560 0.9113 0.1017 -0.4530 0.8520 -1.0302 0.8806 0.3674 -2.6615 -4.8900 -2.9475 1.9045 2.6392 4.4864 2.3941 1.7010 1.9067 0.4931 -1.4348 -2.6074 -1.1597 -1.0504 -3.0460 -2.8157 -0.6597 -0.5920 -0.3406 -1.1230 -0.8586 4.9381 2.8734 1.4518 2.5923 -2.6625 -0.8669 1.9301 3.2551 6.1577 2.0399 2.6785 0.7380 -0.3115 4.7391 1.4868 -6.0175 -7.4317 -4.5623 -0.8590 3.8966 -0.1349 -2.5476 -0.0080 -1.4441 -2.7383 -1.8064 0.5147 0.5800 -2.6271 -3.9359 -2.9321 -2.4785 0.6104 -1.7343 -0.3653 -0.3024 0.2350 2.3057 1.9998 2.2392 1.9124 3.0438 -0.2241 5.1672 -2.2020 1.8580 3.3342 3.0400 1.0670 0.2251 0.5480 1.7906 0.7871 1.2850 -0.3795 -2.0150 -2.3713 0.5611 0.5214 -0.8547 0.0171 -1.8463 -2.7006 -1.7828 -3.0844 1.4841 -0.8100 -2.4242 -1.8509 -0.9746 -1.0553 4.8924 1.3818 -1.8605 -4.3708 -2.0142 6.4457 0.9506 -0.5924 0.1104 2.4175 -0.6754 -0.8459 -0.1554 -0.0530 -0.0877 -0.9877 -1.7358 0.3853 1.1022 1.2975 4.3189 -1.9877 -3.1833 1.0392 0.1796 4.1158 1.4650 -1.6177 1.6123 -4.1615 -3.2584 1.2187 -4.3136 4.5989 0.4487 -0.1107 -2.0381 -0.2337 2.5745 2.8339 -0.0417 1.4413 -1.4483 -1.1675 -6.2515 -6.9360 -3.2717 4.8492 0.9246 -0.9750 4.1724 1.7821 1.3820 2.0655 0.1081 -0.6949 0.1665 0.6685 0.8790 0.7273 0.1766 -0.0005 -0.2218 -0.4294 0.4489 -0.4843 0.2008 2.1975 4.5024 -1.0296 -1.2026 -2.5547 -1.0944 -2.3636 2.3396 2.1543 2.2429 4.7578 0.8390 -0.8895 4.6297 0.4985 -2.3653 2.1787 -1.0612 -0.8953 -6.2919 0.5546 -0.4272 -0.9670 -1.9781 -0.4692 -5.5295 0.6795 0.1530 -2.1926 2.1973 4.5005 -1.3453 1.3286 -2.0310 1.0783 -1.3510 -0.7983 0.6783 -3.4857 5.3977 -3.6561 -3.5986 6.0882 0.1428 -0.9697 3.0219 -5.1583 -2.6086 -0.0766 2.7222 2.0552 2.4096 3.0319 1.0596 -0.1283 -0.8104 -0.2732 -1.4259 -4.0229 -1.4469 -1.6716 -1.1861 -0.9216 0.6780 -0.0004 2.0118 0.6041 1.8333 3.1078 -1.8097 1.1817 3.7643 0.5185 1.9828 -0.3454 1.2321 -1.0494 -6.2996 3.9399 -4.6043 2.7296 -2.2906 -1.7821 -0.5503 -0.1687 1.5615 -2.9514 -1.9822 -1.7870 -2.0807 -0.6471 1.7376 -0.7108 -0.9897 0.1273 -1.5435 -3.4080 1.1979 3.2003 1.0189 -0.9731 -1.0790 -1.9655 3.5511 1.2692 3.4593 1.6049 1.8097 0.7952 2.3044 2.0422 0.0385 -1.4890 -2.6817 -2.4115 -2.0814 -4.7349 1.3168 5.2099 2.0691 0.2209 -0.3967 -1.3910 -0.0825 -1.3970 -1.3074 2.1664 -0.6317 -0.6961 -1.7818 1.7212 1.8896 0.7627 6.4133 0.0239 -2.0812 -0.6340 -0.8745 -0.8436 -3.5167 -3.0992 -0.4403 -5.0217 5.7819 4.7221 -2.9383 1.2443 -0.8542 -4.8873 -5.4381 -4.2630 -4.1290 0.7749 4.7768 0.2842 0.3115 -0.2820 0.2149 -0.1804 0.6193 5.7873 5.1866 -1.3257 -3.0389 -1.9693 8.9711 -0.5589 -1.7203 0.3016 0.2697 0.0913 0.2499 2.9554 0.3320 0.0927 -3.0516 1.3578 -0.8456 1.2764 0.1248 3.9102 2.8147 -2.3847 -6.7532 -2.2614 1.9868 1.2535 2.3588 1.8978 1.0798 1.0217 0.8258 -0.3312 0.8967 -0.1754 -0.3981 1.0150 -0.3879 -0.8493 -1.2690 -1.1797 1.5079 -0.1598 -2.3607 1.1269 2.6480 -7.2674 1.1746 4.6165 5.4940 3.4461 -3.9021 -1.6050 -0.1323 -0.9380 -0.4156 -1.9000 -0.2856 -1.2349 -3.6515 -2.9147 0.0530 1.1469 0.2371 -1.3253 3.8834 -1.7466 -2.2758 1.8844 4.6711 2.2076 -1.3597 -0.4741 0.4627 -0.0358 -0.0017 -1.0258 -0.6957 -1.0270 1.1372 -2.6040 -3.0616 -4.3523 1.6973 1.9314 1.1807 1.7410 1.9665 1.3206 -0.1069 0.8467 1.1209 2.6581 1.0313 -0.7646 -0.9327 -0.4666 1.3979 -1.1019 -2.4235 -8.2049 1.1737 4.9310 0.7484 0.2664 -6.0708 2.6104 1.1852 -1.5416 -3.6491 4.4048 -6.7437 4.6469 1.6802 1.2910 2.2789 2.7610 1.3944 -0.7732 -5.8136 4.4421 -2.2039 0.8414 -5.8722 -4.6747 -3.6578 10.0038 -3.9689 -0.5502 1.1683 -2.1974 -1.9082 0.1416 1.6772 0.3260 3.7162 2.4168 2.6207 -1.7735 1.5236 0.3480 -0.3569 4.1471 1.4471 -0.6226 -8.1997 0.0448 0.6532 1.4910 1.2058 1.7096 2.3950 1.7319 -1.5483 -1.8447 -2.2888 0.7634 3.2796 1.6709 -4.9985 -3.0829 -1.1211 1.2229 -0.2209 -1.1940 1.9569 -1.7811 -1.9523 -4.3005 -4.5837 1.0346 1.2567 1.0099 3.2344 2.8332 1.1895 -1.5164 -2.2052 -1.2334 -1.4331 2.1022 2.3179 5.6712 2.1958 -2.0504 -2.5243 -1.0460 -1.1815 -1.5300 -0.6842 -0.5633 -2.6867 -1.4016 0.6359 -2.0170 -1.2970 -1.6432 -1.0489 -1.3764 -1.1731 -0.5962 3.5229 5.3595 3.1187 3.4061 0.3009 0.8550 -3.1382 -0.6280 -0.8774 -0.9941 0.9435 0.9619 0.8520 -3.3796 -3.2423 -1.3758 3.3040 2.2194 1.0056 2.5348 -0.2996 0.9762 -3.7819 -0.3936 5.7234 -0.4105 -3.2428 -5.3967 -1.5226 4.3711 2.0836 2.1112 0.7032 -4.0183 -12.6551 -15.4852 0.9361 9.2253 10.5424 3.4081 3.4337 -0.7556 1.6657 0.8127 4.5992 -0.8160 1.8248 0.0419 0.5248 1.8646 -1.2814 -2.6618 -0.0669 0.1817 2.2151 -0.8152 5.1179 2.3104 3.6555 -8.7128 -2.0790 1.0629 -0.0963 -1.5473 0.4756 -2.0146 -0.1111 0.3482 -0.0235 -0.7175 -0.1449 -0.3857 -0.8724 0.4592 0.4980 0.2237 0.3924 0.2623 -0.5426 0.9370 -0.6701 0.1600 0.1978 1.4707 -0.4540 -1.0274 -0.9442 -0.4989 -0.2375 -0.5991 -1.2414 -0.4327 -0.2055 -0.5191 2.6955 3.9938 -2.7275 1.8004 1.9744 1.7067 -0.5541 -5.7033 0.6046 -1.4009 -1.3782 3.6669 -0.8575 0.6722 1.8197 2.2695 1.4265 -1.5445 -1.7430 -1.5937 2.0470 -0.1126 0.3473 1.4243 0.9317 -1.3895 -1.0640 0.4664 -0.0706 -3.0958 -1.0532 1.1198 0.9735 -3.1553 -4.9524 -1.8534 0.7715 2.4911 5.1271 0.4320 -4.1146 1.1236 2.7184 2.0135 1.9444 1.7813 1.8232 -2.6267 -5.6361 0.3774 1.0979 -0.3363 1.9497 1.0413 -1.2191 -0.8636 0.0511 -0.3375 -0.5315 -1.0284 2.1218 -5.0828 1.0827 -2.2172 -1.3936 0.4537 3.3006 0.9962 -1.2147 0.0930 -2.8723 5.6705 -3.0064 -0.6690 1.9882 3.1451 0.5101 1.4897 6.0735 3.0322 0.7197 2.5823 0.9024 -1.3595 -0.6102 -4.4164 -5.2345 0.5038 -1.7243 -1.0135 0.3868 -3.2999 -1.3127 -0.5603 -0.4395 -0.5779 -1.3273 -0.7737 1.1446 2.1363 0.5709 -0.9646 0.1742 -0.3429 0.7079 -1.3617 -0.1807 0.8278 4.5177 -3.6128 1.9484 -0.5738 4.9592 5.5662 -1.4308 2.4625 -1.3728 0.3179 2.5142 -3.1176 -3.0793 2.5866 -6.0767 -3.0209 -1.0428 3.7946 3.4423 -3.9407 3.8680 -5.8781 -3.2612 2.7097 1.8752 4.6096 2.6992 0.0622 1.9683 -1.5159 -0.2846 2.0429 5.1916 0.0415 0.4228 0.2499 -1.8859 -1.2282 -1.8414 -3.2239 -2.8594 -2.2718 -1.9470 -2.1050 -0.4172 -0.0660 -0.7815 -1.3234 1.6425 1.5960 0.1952 2.8005 1.8348 -0.0556 -1.7528 -0.3330 2.5351 3.2175 -0.0237 -2.6102 -2.3993 -0.4569 0.2104 -3.8124 0.5340 -7.1325 7.3739 -7.1474 5.0035 4.0837 1.7481 0.6285 2.1470 3.3649 3.4871 -4.6213 5.3643 -0.8361 2.3067 -0.6517 -4.1528 -4.1599 -0.0969 -7.2432 6.4977 -1.8922 6.0123 2.6649 3.9019 -2.9401 -5.9544 6.5995 -3.7727 -1.3909 -4.1986 0.3151 1.1248 0.2299 1.4836 -7.4381 0.2549 4.7727 -2.9947 -3.2755 0.0546 0.0075 0.5596 0.2523 -2.3268 -4.5642 -3.6799 -0.8395 2.7336 3.7088 2.7486 2.6118 1.5065 0.0463 0.4170 -0.5592 1.5006 -0.4534 -1.6715 -2.0529 2.9815 2.4495 1.7545 3.2822 2.8844 2.5666 0.0398 1.6192 2.6128 3.3153 -4.7284 -2.6356 -1.7561 -4.3333 -3.6328 -2.9815 -0.9212 -0.8755 -0.3601 -1.2811 -0.8024 1.2002 3.2220 -0.7626 -2.1102 -1.0525 -1.8044 0.6518 -0.3024 1.2038 0.2348 0.2257 -2.8991 -1.6610 1.3306 -0.9177 -2.5629 -0.6077 5.6868 1.7272 -0.1833 -0.3751 0.5635 0.1503 -0.2949 -0.6821 1.4873 -1.2805 -1.3007 -0.6803 0.0098 0.9789 1.7868 3.5914 0.8184 1.0857 6.4677 -3.3457 -6.7060 -2.0913 4.2126 1.0339 -0.8906 0.9053 2.8206 3.1913 0.4808 1.7342 1.1617 0.7387 3.7928 -0.7288 -6.1883 -1.6937 -4.9005 -3.6291 -0.7611 -1.4035 -0.2407 0.3643 -8.3754 -2.2519 1.3080 1.8062 0.8850 1.6497 2.0880 2.7261 0.2633 -0.5998 0.5979 0.7034 0.9960 2.9711 0.1650 0.8745 -0.1614 -0.6875 -1.3556 -3.6024 1.4188 1.0202 1.5256 1.6620 0.7476 -1.4390 -3.4051 -1.8780 0.4521 -3.9741 0.7867 -0.3719 -2.3721 -1.0437 0.6801 -0.2011 -3.0818 2.9062 4.2361 2.3315 0.1054 -2.6122 -4.3807 -5.3145 -0.2846 4.3842 3.0170 3.8061 0.7110 -1.0498 -0.2574 -0.9802 0.3402 1.2503 2.5457 -7.8042 -0.1469 2.8259 3.0062 0.8386 5.2058 7.1080 4.9534 -1.2430 -6.6855 -3.7117 -6.1961 -2.1515 -0.5576 -1.6169 5.7678 7.7780 -3.9195 1.0323 -4.8749 2.1979 -6.6948 5.7018 -1.1809 -0.9126 5.0054 3.2246 2.7220 2.5774 0.3515 -0.4988 -0.6659 -1.1531 -0.3512 -0.2899 -1.1677 0.8076 -0.0710 -1.3279 -1.8820 -2.0262 -1.5275 -2.2770 -2.2582 0.8080 -0.3421 -2.1542 -1.9404 1.9715 2.0717 1.2690 -0.5900 2.8831 2.5295 -0.0718 1.0132 -2.1895 0.9449 0.2787 2.8471 3.2171 -2.0622 -4.9892 -4.8142 0.1278 -3.5648 -4.5220 -3.8219 -0.0484 2.5590 3.3348 4.6892 3.0890 3.1738 2.4402 -0.3648 -2.0478 -1.8476 0.1171 -0.1749 -2.2364 0.1988 -2.2378 0.6726 0.5920 -2.5566 -0.8410 -0.4280 -0.4406 -0.5726 -0.3279 -1.8710 -2.4830 2.8140 4.1548 -1.1877 -1.2228 1.1741 0.7041 -4.1128 0.8974 1.6460 2.7315 1.4956 0.4265 0.6395 0.6244 0.2175 0.2548 -0.6436 -1.4509 -1.2471 -1.8889 -1.6984 0.6300 -0.0902 -1.4274 1.6267 2.2897 -1.4907 -1.0863 -0.5990 -0.3234 4.5402 1.1229 -3.0281 -3.4576 0.2465 1.1848 -0.3128 -1.4112 -1.7883 -2.4368 -3.6604 0.2309 4.1432 0.2306 3.9874 1.3414 -2.9661 0.2318 1.3943 2.8996 1.0512 2.1197 -6.4523 -0.8108 3.0394 2.9265 1.7276 -0.6852 -1.3401 -1.2086 0.2339 0.6323 0.9584 -0.4322 -0.4865 1.1438 3.9792 -0.5978 -3.3409 -0.0134 0.1557 0.5712 0.8836 0.6632 -0.5682 1.0909 1.0200 0.2143 1.7898 0.4314 -1.2105 -1.6888 -2.8939 1.5904 1.4323 5.0287 -2.4090 -2.6282 -1.2927 -1.8499 -3.8726 4.2691 2.7571 0.5054 0.5914 -0.4593 -1.9535 -2.8534 -5.1043 -5.0146 0.3167 1.9210 1.9920 1.2596 1.2329 -1.0134 -2.2148 -0.9619 3.3405 0.4893 1.9185 3.2509 -7.8257 -8.0514 -2.2922 4.6049 1.7841 0.2877 2.4600 0.2299 0.3961 0.7952 4.9841 0.5914 -3.3601 1.4043 5.5671 2.2508 0.0018 1.5100 -2.0511 -3.2867 1.5686 1.2169 -0.6391 -2.6751 -3.0325 -3.9104 -2.5516 -0.9763 6.3909 -1.3255 1.3817 1.7409 2.2064 2.8908 0.3118 0.3554 0.3092 -0.0695 -2.5566 -0.6363 1.1784 0.7886 1.7506 3.8841 0.1097 -3.4846 -1.1668 -0.2517 -0.3004 -0.0493 2.0270 0.2092 1.5440 3.4255 0.2943 -0.8517 -1.6072 -4.0976 -5.8976 2.4958 0.9988 2.8848 3.2891 3.3681 1.4676 3.2906 1.3735 1.1970 0.4611 -0.5875 1.7464 0.9583 0.5681 -1.4825 -4.2976 -3.2226 -2.3712 -7.0782 -2.8558 0.2917 -0.2746 -0.1545 -0.1213 -1.7658 -0.9647 -0.8990 -2.2776 -1.6043 2.1487 5.2377 -7.3002 -1.2976 0.8951 2.6087 1.9104 0.8944 4.2107 2.4289 -0.6124 -3.0624 4.5993 2.8908 2.6348 2.5753 3.5423 -1.3467 -3.6340 -1.3719 -1.5896 -1.7807 0.4182 -0.4869 -0.0081 -1.7322 -5.0302 -4.0281 3.2297 0.1854 0.7317 0.2006 -3.2143 -2.4079 2.3832 -1.4835 -2.9589 -4.3471 -9.4701 -8.6980 2.2131 11.9939 3.4222 5.6731 1.0493 0.9347 3.1770 3.6996 -0.0115 2.2951 -2.8928 -1.3571 2.2986 0.5686 -2.7234 0.0628 3.3595 3.0322 1.2528 0.1697 0.2877 -3.1109 -4.5198 4.2898 4.5477 -0.5365 -2.9437 -1.7760 -3.4896 -0.4971 0.5506 -0.8230 0.0226 -1.9088 -4.1034 -3.5139 1.8311 6.6465 1.9042 -0.2585 0.4811 -1.3603 -0.8669 -2.6469 -2.4021 -2.3699 -1.0708 1.8059 0.3697 0.3642 3.4726 3.6036 1.8666 0.3455 -0.4415 1.4530 2.1752 0.4141 0.9988 0.9339 2.0369 0.0808 -1.3138 -1.2683 0.1032 0.3074 0.3794 -2.2480 -4.4451 -2.7006 1.2456 0.0770 -0.9714 0.8948 -0.5528 -1.5023 -2.1884 -1.6190 -2.6643 0.3765 5.2588 1.9474 4.7336 6.0668 0.9206 -6.1173 0.2687 4.2344 -2.7801 4.7836 -5.9468 -5.1428 -3.5447 -2.6492 -1.1225 1.1104 -0.6763 -0.3734 0.7874 2.9348 3.7914 3.3802 -3.0687 -1.7645 -1.7552 0.4322 1.5566 3.1434 -2.9717 0.2913 0.3294 0.1693 2.3099 -0.6833 -2.4051 -0.8700 -0.1793 -0.7055 -1.1773 0.0766 -2.2742 -3.5734 -2.1986 0.6775 0.1605 0.0083 4.2284 1.3025 3.7892 -0.0746 -0.9582 2.5465 0.9486 0.1048 1.8316 3.4918 2.1758 1.1342 1.0848 2.4632 0.0993 -1.9453 -1.1703 -1.6274 -2.0353 0.8991 0.4736 -4.0911 -2.9565 -2.3552 -2.1133 3.5874 0.6208 3.4997 6.2697 4.2107 1.2652 2.1894 1.1355 -2.5271 -2.9525 0.0535 0.3829 -2.5199 -2.9063 -2.7287 -1.9607 1.4600 1.2748 0.4400 -4.8467 -2.3602 0.5243 2.9289 2.2684 0.4191 -2.1542 -0.2881 -0.2706 0.6758 5.4475 1.1883 -2.5477 -6.5024 -4.1506 0.6656 0.9576 -1.2352 1.0736 -4.8441 2.5699 3.2741 -0.7794 1.1463 3.5016 1.1120 0.8485 -1.0628 -0.8132 3.8405 -0.3344 1.2653 0.4357 0.5494 -2.5741 -2.4964 -3.4166 -4.9706 4.8271 -4.7341 1.1838 2.4711 1.8447 1.0979 -1.7573 0.3863 -0.5133 -3.1578 0.0583 -0.5417 4.1974 -4.6030 0.1241 -3.2329 4.6242 -4.6647 -2.4610 0.5959 3.2183 -1.2626 5.6612 0.3859 -2.3894 -1.0328 1.7896 5.5648 5.2220 1.8869 1.0956 -0.1977 3.2983 0.9466 -2.0813 -0.1679 -0.5816 -0.1714 -2.7510 1.1951 1.5496 1.6400 -5.0073 -9.8080 0.7738 -1.7298 -3.2257 -0.3183 1.9284 1.7227 0.8166 0.9095 0.5332 -0.5016 -1.2660 -1.9608 2.0035 -2.6922 3.7039 0.8905 -0.7247 2.7531 -3.0591 -0.5571 -0.0748 -0.5070 -0.2516 1.7723 1.4041 4.3520 1.7022 1.0990 -1.4641 -2.3620 3.1174 0.5476 1.5192 -1.9294 -4.9678 0.2919 -3.1451 1.3976 -0.5997 -1.9017 -0.3043 -4.5751 -6.4864 -2.8079 2.8553 1.4264 -0.6290 0.8259 1.1617 -0.8255 -1.1913 -0.9336 -0.8179 -0.6841 2.7254 1.9190 4.4832 2.4919 2.0452 -0.6788 2.9368 3.5644 3.7164 3.7726 0.3148 -2.5071 -1.0177 0.4365 0.4818 -2.1099 -3.0728 -1.1823 -1.8323 -2.5460 -3.2217 -2.5081 0.1068 -0.3340 2.0018 3.0001 2.0122 -0.8437 -0.0894 -3.5669 0.2151 1.3672 -1.1852 2.2748 0.2674 2.1266 -4.5961 -3.5181 1.6410 4.2095 -4.0873 0.0362 3.5548 -2.6567 1.8468 0.9915 -2.9528 1.3693 1.3737 3.6447 4.6399 3.0004 -0.4081 -0.5069 -2.0885 -2.1563 0.7639 0.4790 -2.4821 1.6495 0.8280 -0.4457 -4.8607 3.5285 3.1896 -8.5655 -4.4449 -2.6584 -0.3396 2.7055 3.1313 2.6691 -0.1405 -2.6920 1.1380 5.9263 0.1508 -2.5031 -2.5963 -2.2339 -0.4387 2.7348 0.1166 -2.0958 -0.1884 1.7591 -0.4506 -2.2585 -2.0183 -1.2141 2.3804 5.1371 -0.1012 0.7185 -1.9558 -5.5843 1.7274 2.5676 1.3295 -2.3148 3.4722 0.9168 0.3809 -1.2468 -0.6805 -0.8055 -0.5741 -1.3187 -1.6054 -1.8387 -3.0009 -2.2631 1.6411 1.0542 0.8630 1.3059 0.6660 0.5171 -0.9355 -1.8837 0.8703 0.3850 -0.0855 0.2754 4.4605 1.4674 4.0853 2.9178 0.0251 -1.7053 -2.9819 -2.0918 -1.9947 -0.8293 -0.6373 0.5052 2.1796 2.6733 -1.7046 -0.6344 1.3620 -0.4864 -2.0884 -1.6708 1.5012 1.5754 -1.5635 2.8252 -0.9149 -3.0463 -4.7327 2.7084 1.1209 0.7968 0.7865 -1.2527 -0.1248 2.6941 2.7972 2.2336 -0.0652 -0.4532 -2.9265 -0.0560 -0.4324 -0.3945 2.4620 0.7164 -1.5674 -3.1513 -1.6402 2.4149 2.9010 2.5761 3.2262 0.0749 -4.5314 -3.4112 0.2922 1.0743 0.0408 -1.5976 -0.5032 0.6577 0.7598 -0.7940 1.9710 1.1730 -0.6838 -2.2094 -1.9356 1.4952 -2.0825 -0.2927 0.7657 -1.8337 4.4472 -3.8324 0.7557 0.0732 -3.6271 -1.9071 4.3140 2.4552 -0.0317 0.9857 3.7325 2.7934 1.0157 -1.7096 -2.8454 -1.8953 -0.7562 0.3146 -0.3781 -1.0020 -1.6158 -0.3984 -0.0573 0.9972 1.0112 -1.0599 0.0370 3.6124 1.1087 -2.9047 -1.4832 -1.9899 -0.8731 -0.9330 -2.9066 2.3820 -0.1603 -0.7170 -1.1285 -0.9274 2.1578 6.4011 -1.6535 2.3099 -1.6654 3.7268 0.0883 -1.8527 -0.5184 -0.2568 0.6353 1.3687 1.8257 0.3226 -0.8766 1.0000 1.0853 1.2934 0.8779 1.7553 1.1543 -2.0442 -1.6763 -0.4593 0.9294 -1.2072 -2.2593 -0.6144 -2.8074 -0.3032 -1.2070 -1.3475 -1.8312 -1.7806 -2.9611 -3.1818 2.9332 -0.1240 0.1906 2.9202 -1.8371 1.0525 -2.0319 2.7074 -2.1979 -1.3072 -0.5591 3.0013 2.6600 4.9011 -5.1303 3.3870 -3.7967 -1.9466 -5.3864 -1.1368 -0.5684 3.7351 -0.5755 -3.2378 -4.4250 2.0350 3.9372 5.4701 -2.7768 5.9464 6.6849 -3.7875 1.9948 -0.4230 -1.3037 -1.9678 -3.1520 -1.4018 0.2092 2.8010 2.0760 -0.3324 1.0911 0.9050 1.7187 3.4255 1.0022 3.5722 -3.5224 -4.7658 -1.0745 0.2766 1.2898 -0.8471 1.9772 -2.9635 -3.0240 -2.2547 0.1703 1.7771 -1.6073 -3.1859 1.5410 1.4356 0.9203 3.9297 4.2495 5.7007 -4.0193 -0.8612 1.6423 0.8844 -5.1605 -1.1517 2.9132 0.8992 -1.0688 -1.5448 -0.9185 0.4003 -1.7700 -2.7768 -1.4639 0.2261 0.7139 1.7997 3.0514 3.3204 0.6803 0.9792 -0.2717 -2.6450 -0.2252 -2.2988 -2.9741 -2.4804 -3.0116 -3.1521 0.1074 1.3714 0.6662 2.0637 1.7849 -0.4611 -0.7720 -1.6172 0.8203 3.4203 0.8069 2.2581 3.2451 0.5915 -2.2429 -0.4245 -0.8028 -0.2290 0.2137 -0.4319 0.5580 0.2543 0.9172 0.8892 -0.4807 -1.2827 0.9202 1.1454 -1.6931 -3.6479 0.4568 3.9049 1.2435 2.6145 0.7928 -5.3425 2.6190 1.9162 0.9769 -0.1078 -0.4290 -0.3650 -2.8284 -4.4494 -5.9910 -4.8405 0.7110 -0.4595 0.2195 3.3942 0.9527 -1.8867 3.8742 3.7699 1.2150 1.7087 1.8829 0.7201 0.6607 -0.0626 -1.1940 -1.4411 -0.0944 0.1172 -0.7491 -0.3712 -2.5287 -2.1899 -1.2280 -1.4906 -0.5689 -1.4885 2.7842 4.0586 -1.1367 4.3200 4.6710 0.9897 -0.6156 -0.6851 -1.4120 4.1532 4.4321 1.1339 -1.0985 0.5736 1.4085 -4.6356 -3.3117 -1.5968 -3.4345 -0.7293 -0.0528 -0.3096 -3.6684 4.1880 -2.5398 -1.3830 0.0979 1.9654 3.5192 -0.0522 -3.2870 -3.8507 0.6356 -0.9850 -3.0198 -3.7269 -0.8310 1.9829 1.8339 -0.8073 0.2152 2.0459 6.1180 2.0688 0.4962 3.2227 3.5953 1.3395 -3.4218 -4.9933 -1.9981 0.9513 -1.0998 -2.7535 1.3298 -0.6976 0.0716 0.7392 5.8854 -4.3047 2.1890 1.9699 -2.4444 -0.0765 -5.8327 1.1129 0.8081 5.6003 5.5684 4.7020 2.8089 0.4347 1.1649 -4.9188 -11.4465 -1.3196 0.4225 -2.4705 0.3286 -0.0113 8.7340 -2.1220 -2.1264 -1.4373 -1.6231 -1.3969 -2.0111 -1.2620 4.3084 -1.2012 1.2341 0.1866 0.0635 -2.6548 2.3896 1.8088 0.0290 -4.3105 3.9166 -0.0331 -0.3748 -2.4710 1.0435 2.3583 0.6310 1.3989 1.5277 0.7608 1.0894 1.7235 2.0681 2.3537 0.9918 1.2164 -0.3325 -2.2666 0.1756 0.1615 0.5196 -2.6730 -7.1201 -2.9272 -5.4551 6.1563 7.8768 5.4153 -2.5369 0.0405 4.1259 -0.2108 -4.6599 -0.9803 -1.3472 -5.5873 0.0334 -6.0975 -0.7915 0.7551 -0.1575 2.8766 -3.5702 -0.2561 4.0100 1.0615 codec2-1.0.1/octave/train_all_speech_1.txt000066400000000000000000005631361412132000500204100ustar00rootroot00000000000000 3.503901481628418 3.791774749755859 5.251767158508301 6.508749961853027 5.127012252807617 3.361294507980347 0.243348091840744 -1.111059069633484 0.645551323890686 -0.5759052038192749 0.0442858524620533 -0.001516825286671519 0.3966041207313538 -2.835689306259155 -3.605791568756104 -7.889068126678467 -3.260931253433228 -0.1228795349597931 -5.004364490509033 -4.467086315155029 28.03043365478516 23.2732105255127 16.69843864440918 9.301326751708984 2.729286432266235 -2.458910465240479 -5.740657329559326 -6.68559741973877 -7.492500305175781 -7.85601806640625 -7.454850196838379 -5.931487083435059 -4.112403869628906 -2.233861207962036 -3.926839113235474 -5.844244956970215 -6.445382118225098 -5.252916812896729 -4.993747234344482 -3.603279590606689 32.56464004516602 28.81554794311523 23.21220970153809 17.26614570617676 12.75540542602539 9.964438438415527 6.646321296691895 1.243698716163635 -4.590430736541748 -7.218576908111572 -8.396566390991211 -8.751805305480957 -10.14919185638428 -11.93070697784424 -11.88467979431152 -12.72025680541992 -13.08411026000977 -13.18809127807617 -14.76470184326172 -15.78927612304688 5.975729942321777 4.555702209472656 2.87472939491272 2.512071371078491 0.9860721826553345 -0.8367324471473694 -0.6223300695419312 0.3663770854473114 0.7955335974693298 0.392966091632843 -2.49055814743042 -2.309305429458618 -2.556457042694092 -2.528177976608276 -3.023877620697021 -2.204056024551392 -2.405418157577515 -0.8756491541862488 1.105034351348877 0.288346916437149 7.673871040344238 7.434552669525146 7.830992698669434 10.15661811828613 13.83097839355469 15.30639362335205 11.42201519012451 8.932522773742676 10.37486934661865 12.57092475891113 4.56135082244873 -3.044244766235352 -6.334497928619385 -7.038057804107666 -4.782663822174072 -11.09237766265869 -17.77633285522461 -18.82984161376953 -15.95373916625977 -25.24331092834473 -11.28521823883057 -9.271133422851562 -2.778221845626831 1.807992339134216 0.7304858565330505 -0.184556320309639 -1.86104941368103 -1.324167966842651 -1.543161273002625 -1.253548741340637 1.257227182388306 3.003896474838257 5.694759845733643 4.67047119140625 4.934287071228027 3.337021350860596 1.418267488479614 -1.865221738815308 0.6671320199966431 3.844735145568848 6.876662731170654 7.183174610137939 7.623923301696777 8.234439849853516 5.887650012969971 3.210459470748901 2.382892847061157 3.868316411972046 3.362746477127075 0.6627451181411743 -1.66800856590271 -1.858322024345398 -3.388047695159912 -3.685295581817627 -3.735403299331665 -5.712156295776367 -7.716336727142334 -6.992678165435791 -7.389943599700928 -7.146812915802002 -6.053719520568848 -3.63427734375 0.2870153188705444 3.108088254928589 2.850396156311035 0.1260831952095032 -0.7389681339263916 0.5524262189865112 1.546064019203186 4.515695571899414 5.740691184997559 4.424627304077148 2.731694459915161 0.4941331148147583 -0.3833900392055511 -0.8107656240463257 -1.980955243110657 -3.035221338272095 -3.79147481918335 -5.948152542114258 25.5760440826416 27.94159889221191 24.34627342224121 14.69587993621826 3.129726648330688 -5.597395896911621 -8.945341110229492 -10.00861740112305 -10.91853427886963 -12.20146465301514 -10.84396553039551 -7.469461441040039 -1.659998059272766 4.689345359802246 2.184104204177856 -0.7359857559204102 -4.123245716094971 -4.153082370758057 -9.386194229125977 -16.51968383789062 2.083509922027588 2.018866539001465 1.961146473884583 3.584662914276123 6.372915267944336 8.050569534301758 6.806997776031494 4.416918754577637 1.979579329490662 -0.6982173919677734 -1.020430684089661 1.8607177734375 5.724912643432617 5.976870536804199 -0.4547030925750732 -7.373361110687256 -9.62476921081543 -7.055913925170898 -9.67552375793457 -14.93474006652832 9.900005340576172 11.11205959320068 12.69847106933594 15.64771842956543 18.72967338562012 17.63078880310059 12.23540306091309 7.59137487411499 6.715625286102295 8.484490394592285 8.800906181335449 1.508745670318604 -7.228737831115723 -14.38050556182861 -17.9872932434082 -18.65911674499512 -15.54321575164795 -13.96155548095703 -20.45906639099121 -22.83575630187988 33.31724548339844 31.22291564941406 26.2960033416748 20.17128753662109 12.19244766235352 5.185864448547363 3.246951103210449 5.006373882293701 2.141655445098877 -5.400078773498535 -10.55130100250244 -13.10519027709961 -13.06551074981689 -12.01528644561768 -12.90364456176758 -13.44828128814697 -13.26143646240234 -13.49717712402344 -15.32059669494629 -16.21224594116211 1.160675168037415 -0.3747923970222473 -2.663496017456055 -2.927655696868896 -0.3560551702976227 3.28938102722168 5.239902496337891 8.044262886047363 6.652604579925537 3.97779369354248 4.083271980285645 6.961338043212891 8.550065994262695 2.346344232559204 -2.809552192687988 -6.179857730865479 -7.585293292999268 -6.895844459533691 -9.640233993530273 -10.87286186218262 5.94452953338623 3.811221361160278 1.134124636650085 2.619336366653442 5.347626209259033 6.752548217773438 5.364405155181885 1.397107362747192 -1.545763611793518 -4.071928977966309 -2.443724393844604 -2.439105272293091 -3.489367246627808 -0.5402494668960571 1.537298321723938 -1.653804302215576 -3.502989053726196 -2.35117244720459 -4.944786548614502 -6.92530632019043 27.48577308654785 24.51284790039062 19.48355484008789 14.3996639251709 9.474723815917969 4.536386013031006 -0.5103690624237061 -3.632709503173828 -5.82119607925415 -7.263043880462646 -7.536733627319336 -7.448832035064697 -8.315095901489258 -7.85472297668457 -7.082536697387695 -7.529149055480957 -8.032625198364258 -8.674041748046875 -9.140567779541016 -11.05131435394287 6.75608491897583 6.328508853912354 5.419772148132324 5.890230655670166 7.777308940887451 10.29029655456543 10.68216705322266 7.286451816558838 2.889912843704224 -1.301931977272034 -4.434157848358154 -5.080985546112061 -2.961805105209351 2.305842876434326 -0.01768347434699535 -5.421481132507324 -6.190484523773193 -6.402289390563965 -13.91303730010986 -19.9027042388916 5.375237941741943 4.880783557891846 3.848113059997559 3.542019128799438 4.622683048248291 6.69300651550293 9.027632713317871 10.2619743347168 7.902902603149414 4.52606201171875 2.255825042724609 2.263393402099609 5.199076175689697 2.179580926895142 -5.786059856414795 -8.947177886962891 -9.236479759216309 -9.68709659576416 -16.95894050598145 -21.96252250671387 15.65207767486572 12.11825275421143 7.862476348876953 5.795327186584473 4.078181266784668 1.869440197944641 0.294452428817749 -1.144178748130798 -1.743003249168396 -2.345729112625122 -3.181504964828491 -3.503159284591675 -4.294906139373779 -4.03973913192749 -4.509326934814453 -5.331762790679932 -4.550152778625488 -3.840717077255249 -4.018199443817139 -5.167826175689697 18.86136245727539 22.2327938079834 24.68154144287109 25.0569019317627 19.81441307067871 12.41040420532227 7.601511001586914 6.082168579101562 8.023798942565918 8.556151390075684 0.7312884330749512 -7.768879890441895 -14.02567863464355 -17.86144828796387 -20.32940101623535 -21.05902671813965 -19.86882209777832 -17.11456871032715 -17.58621406555176 -18.43827438354492 -6.099148273468018 -3.074884653091431 1.065669655799866 3.46605396270752 2.664950609207153 -0.1740235686302185 -1.065245866775513 -1.431956768035889 -0.8008455038070679 -0.4683205783367157 0.2586084306240082 1.447079658508301 3.035146713256836 5.815367221832275 8.046737670898438 5.779229640960693 0.8773371577262878 -4.074870109558105 -6.226751804351807 -9.040132522583008 17.96066093444824 21.18134307861328 23.09299087524414 21.8427677154541 14.64311599731445 5.688597202301025 -0.2130907475948334 -3.072567701339722 -5.391517162322998 -7.200598239898682 -8.211039543151855 -6.548444747924805 -1.767251491546631 1.299013376235962 -7.267916202545166 -12.67638683319092 -11.8170166015625 -5.908488750457764 -15.3381519317627 -20.29601287841797 26.30965232849121 26.33807754516602 25.27392578125 21.48009490966797 16.14387512207031 13.19803905487061 8.739408493041992 2.180922746658325 -3.75966477394104 -5.995718955993652 -8.005228996276855 -8.755231857299805 -9.549881935119629 -9.806296348571777 -7.275689125061035 -11.07846164703369 -16.52146530151367 -18.4779167175293 -19.93660545349121 -20.5018196105957 -8.617772102355957 -8.945120811462402 -4.539582252502441 1.078097343444824 2.600668907165527 1.022749304771423 -0.5104072690010071 0.4009959101676941 0.08736521005630493 -0.4390178620815277 2.36236572265625 5.524200439453125 3.933060884475708 1.591420769691467 -1.926792025566101 -3.021800518035889 -1.699977517127991 -1.463400363922119 3.61325216293335 8.949700355529785 5.822198390960693 6.222359657287598 4.698714733123779 3.132632732391357 3.07255744934082 2.390854358673096 1.206083059310913 0.1907666325569153 -0.2577031850814819 0.3930277526378632 -1.284250378608704 0.04870199412107468 -1.276285171508789 -3.034269571304321 -3.365149259567261 -2.531657218933105 -1.984165072441101 -1.298876047134399 -8.775853157043457 -3.369685649871826 22.01222038269043 22.66417694091797 21.52972793579102 17.68148422241211 10.48514270782471 2.689077615737915 -2.264973402023315 -4.631338596343994 -6.71744966506958 -8.984005928039551 -9.821804046630859 -8.145534515380859 -2.854689836502075 -0.757327675819397 -7.845916271209717 -10.87128257751465 -9.10041332244873 -4.198158264160156 -10.38017272949219 -10.48876094818115 0.87721186876297 1.023530602455139 1.017704963684082 1.556210994720459 3.583067417144775 6.056449890136719 9.576187133789062 12.43352222442627 11.38518905639648 7.673481941223145 6.882114410400391 8.946038246154785 6.608055591583252 -1.276444554328918 -6.488674640655518 -6.960916519165039 -7.693408012390137 -13.73535442352295 -19.55771255493164 -21.90627288818359 4.583919048309326 5.54997444152832 6.632177352905273 8.406952857971191 11.17818737030029 13.65631580352783 12.20436096191406 6.401305675506592 1.154896140098572 -1.293386459350586 -1.867376804351807 0.8424116373062134 6.344460487365723 4.921483516693115 -2.225198268890381 -5.077576160430908 -9.220178604125977 -17.42711639404297 -22.00735473632812 -22.75824928283691 -3.102021217346191 -4.934051990509033 -5.026371955871582 -3.679954767227173 1.594022154808044 3.571999788284302 5.714908599853516 8.114648818969727 6.035937309265137 6.302038669586182 1.37278425693512 -1.393239378929138 -4.985548496246338 -4.824649333953857 1.068022608757019 2.268578290939331 -2.253105163574219 -1.408431768417358 1.219765901565552 -5.655329704284668 -3.316742181777954 -2.979648351669312 -1.643033266067505 0.2565309703350067 0.6060237884521484 -0.02428602613508701 -1.232267260551453 -1.93351674079895 -1.940996289253235 -2.524378776550293 -2.40356183052063 -1.856996655464172 -1.024620056152344 0.03681971505284309 0.01067735254764557 -0.2030823975801468 0.4532400071620941 1.599214792251587 5.77880334854126 12.34182167053223 15.8239278793335 16.16110801696777 16.57540702819824 17.84334754943848 16.66327667236328 12.71552467346191 7.510667324066162 3.022555351257324 0.6088733077049255 -1.061047077178955 1.844056129455566 5.594436168670654 1.795042634010315 -3.180304527282715 -7.426888465881348 -12.97753429412842 -18.76288986206055 -23.58376502990723 -24.8903694152832 -24.2754020690918 -0.4329100549221039 -1.153759121894836 -2.361927509307861 -3.003302097320557 -3.672260046005249 -5.084637641906738 -6.65839672088623 -6.925933837890625 -6.42293119430542 -6.08603048324585 -5.84499454498291 -5.423248291015625 -4.065683364868164 -0.7888540029525757 1.539779901504517 3.364370107650757 7.599849700927734 12.73376750946045 14.96135997772217 17.72574996948242 18.3255786895752 20.44512748718262 20.71366691589355 16.62657928466797 8.420391082763672 1.511367797851562 -2.391377210617065 -1.262075424194336 -1.956893444061279 -9.352529525756836 -17.8893928527832 -20.79939079284668 -20.16166496276855 -15.59700202941895 -3.843715667724609 4.558215141296387 4.646618366241455 2.505266427993774 -0.9462172985076904 -3.552557229995728 33.96227264404297 30.3023681640625 23.93390464782715 17.46969413757324 10.30532073974609 1.410054087638855 -3.531162261962891 -1.113182902336121 3.273731708526611 0.6619448661804199 -6.759619235992432 -10.10671234130859 -11.61876678466797 -11.87101554870605 -11.30706596374512 -11.56081199645996 -12.20409202575684 -13.50289916992188 -14.10133457183838 -13.64265632629395 24.68064117431641 26.29081153869629 25.42455101013184 20.26850700378418 11.56712245941162 4.094350337982178 -1.698356628417969 -5.774074554443359 -9.001168251037598 -11.34935569763184 -12.74047374725342 -13.08970165252686 -11.50658798217773 -6.554616451263428 -1.450866460800171 -2.475327730178833 -4.598902225494385 -4.598552703857422 -12.65169525146484 -14.83629608154297 25.19855117797852 24.98921966552734 23.05159378051758 18.37245941162109 13.00849628448486 9.966771125793457 9.327069282531738 9.223878860473633 5.977185726165771 0.5773510336875916 -3.128563642501831 -5.36072301864624 -7.908251762390137 -12.29754734039307 -15.44667148590088 -17.00860595703125 -17.36274337768555 -19.40313339233398 -20.41622543334961 -21.36010360717773 -9.144045829772949 -7.866376876831055 -4.516994476318359 0.04078018292784691 2.233412742614746 0.7148503661155701 -2.801738977432251 -4.78801155090332 -4.991693496704102 -2.994109630584717 0.4564718008041382 6.954310894012451 6.343183040618896 4.793509960174561 5.267282962799072 3.474374532699585 2.709347486495972 2.763020753860474 1.886340975761414 -0.5339090824127197 27.15909194946289 25.39476013183594 21.54992866516113 15.52098083496094 6.309974670410156 -1.627548575401306 -4.721316814422607 -5.576619625091553 -8.175256729125977 -11.3615026473999 -13.9495325088501 -14.59604358673096 -15.31496715545654 -15.50387001037598 -14.14670848846436 -8.48103141784668 1.818431496620178 6.948720455169678 6.240270614624023 2.512237787246704 15.26922607421875 18.09340858459473 20.5144214630127 20.9620475769043 15.71985816955566 8.584695816040039 4.213981628417969 2.376119375228882 3.310333490371704 6.336117267608643 4.72252893447876 -3.25541090965271 -10.24591636657715 -14.85652542114258 -16.80167198181152 -13.832350730896 -7.703041076660156 -16.83441734313965 -20.30658721923828 -16.26680946350098 4.907369613647461 4.265684604644775 3.083312034606934 3.738429307937622 3.159228801727295 2.312073469161987 1.725414276123047 1.140659689903259 -1.256341218948364 -5.75554370880127 -7.852888584136963 -6.981096267700195 -6.175336837768555 -3.354127168655396 2.111618757247925 3.207269668579102 2.460299491882324 4.880172729492188 -1.607948660850525 -4.008255481719971 -2.825491428375244 -2.664080619812012 -3.556501388549805 -1.536420583724976 2.61185359954834 2.423787593841553 0.8607557415962219 0.0351119227707386 -1.387669086456299 -2.584674119949341 -2.979906558990479 -2.425863265991211 1.690563797950745 9.607510566711426 7.604969501495361 3.176784753799438 -1.457247972488403 -1.847179889678955 -2.844440698623657 -1.901864290237427 19.42486763000488 20.72030639648438 21.55156135559082 19.6943531036377 12.82256031036377 5.137216091156006 -0.7697764039039612 -5.058693408966064 -8.504769325256348 -9.637164115905762 -7.715685844421387 -2.976856231689453 2.599075317382812 -3.922131299972534 -10.11317348480225 -9.754851341247559 -4.615532875061035 -11.02495861053467 -14.72185897827148 -13.13448619842529 12.17941188812256 10.62963485717773 9.625134468078613 9.297036170959473 10.73871612548828 12.27712821960449 12.28466987609863 10.12379932403564 7.496825218200684 6.475470066070557 5.117063522338867 -0.1686364710330963 -8.273245811462402 -14.1778450012207 -16.94489288330078 -16.27918434143066 -11.97532844543457 -9.788707733154297 -13.57298755645752 -15.06404685974121 10.03407287597656 8.969793319702148 7.404208660125732 7.644266605377197 7.855467796325684 8.301459312438965 4.597716808319092 1.47676956653595 -0.2043584734201431 -2.676269054412842 -1.992263078689575 1.343597173690796 4.854265213012695 -0.3698329925537109 -3.6153883934021 -4.216947078704834 -6.633061408996582 -13.87497520446777 -14.84012126922607 -14.05840492248535 14.32112312316895 10.05139255523682 6.251046657562256 3.785530567169189 3.75807523727417 4.139776229858398 4.057256698608398 3.483638048171997 1.278795480728149 1.251617193222046 5.155167579650879 9.70378303527832 7.714277267456055 2.864827632904053 -5.078719615936279 -11.8890905380249 -14.22188663482666 -14.24189186096191 -14.2360143661499 -18.14870643615723 8.840707778930664 6.645888328552246 3.140192031860352 3.038378477096558 2.625264406204224 2.530407667160034 4.01621150970459 7.545373916625977 9.417645454406738 10.34425163269043 6.008065700531006 -0.1526446789503098 -3.714003086090088 -6.668576717376709 -6.876534461975098 -7.528736114501953 -8.436820030212402 -10.3456449508667 -10.8781795501709 -9.551239013671875 -7.837013721466064 -6.67249584197998 -3.152433156967163 0.4392966628074646 -1.273952126502991 -4.348273277282715 -6.318003177642822 -7.018110752105713 -8.457772254943848 -7.514058589935303 -2.865795135498047 3.081298351287842 7.746901512145996 8.452938079833984 11.85788726806641 9.881362915039062 5.741739749908447 4.635182857513428 3.411952018737793 0.2093580216169357 27.54855155944824 28.77965354919434 26.33428382873535 19.14382743835449 10.77631759643555 3.271880149841309 -2.67638635635376 -5.800123691558838 -9.516213417053223 -13.1913013458252 -15.42091941833496 -15.93879985809326 -16.00874519348145 -16.0577220916748 -14.44884586334229 -7.193002700805664 3.788428544998169 3.703774929046631 0.8510863780975342 -7.945737838745117 24.19801139831543 25.59066963195801 25.80960083007812 23.84943389892578 19.97462844848633 17.20759582519531 14.6951847076416 9.667998313903809 3.539491891860962 -2.221262216567993 -6.48640251159668 -9.835855484008789 -13.20033264160156 -15.846848487854 -17.8895263671875 -18.48914337158203 -18.81632614135742 -20.02217674255371 -20.79559707641602 -20.92916297912598 12.59621429443359 16.68565940856934 19.45024681091309 20.43060493469238 13.84965038299561 4.59410285949707 -1.769034147262573 -4.940058708190918 -7.263986110687256 -9.646286964416504 -11.21702766418457 -11.4636812210083 -11.40165901184082 -9.891270637512207 -5.427464962005615 3.6655592918396 1.742243409156799 0.7706802487373352 -6.934028625488281 -13.83045291900635 18.06538963317871 17.25232887268066 15.33289909362793 13.93245792388916 12.52245616912842 9.988646507263184 5.418338775634766 0.6451141834259033 -3.238833427429199 -6.515908718109131 -7.432992458343506 -4.743278503417969 0.1820781975984573 -1.570407032966614 -9.396409034729004 -12.18791961669922 -9.19588565826416 -6.906168460845947 -14.42296600341797 -17.72895431518555 15.05443000793457 16.37663650512695 17.70572090148926 18.91182518005371 18.30153465270996 14.39801406860352 8.932284355163574 4.261475563049316 0.6362144947052002 -0.1248405501246452 2.191779136657715 2.687022924423218 -4.15589714050293 -13.19209861755371 -18.43183708190918 -18.98002433776855 -16.46874046325684 -11.46321296691895 -16.56308364868164 -20.07719802856445 -5.537087917327881 -4.176273822784424 -0.5606800317764282 2.441699028015137 0.993984043598175 -1.350461721420288 -3.78162407875061 -4.757624626159668 -6.273262023925781 -6.783051490783691 -5.647544384002686 -3.607697248458862 -1.177781105041504 -1.170651194115635e-05 4.883847713470459 10.65908432006836 9.394406318664551 9.270697593688965 5.686070442199707 0.3233091235160828 21.52824783325195 24.1579532623291 26.22974586486816 22.04270362854004 13.27961444854736 8.41521167755127 8.569576263427734 11.17470741271973 5.902539253234863 -3.779788970947266 -10.78228282928467 -15.85575675964355 -18.57206535339355 -19.02480697631836 -17.4420051574707 -14.79302597045898 -11.79622364044189 -11.63099479675293 -7.382223129272461 -10.24111652374268 22.73174858093262 23.08975219726562 21.47014427185059 16.63557243347168 8.850260734558105 2.017651557922363 0.4573545157909393 3.762774467468262 6.82050085067749 3.410573720932007 -2.919714450836182 -7.515873908996582 -9.142491340637207 -10.26068115234375 -9.582749366760254 -10.09675216674805 -8.151313781738281 -10.46341419219971 -18.89085960388184 -22.22247695922852 18.12631034851074 15.45483207702637 11.53939437866211 8.04310131072998 3.53790020942688 0.2780878245830536 -0.9592297077178955 0.6267252564430237 4.941982746124268 6.307762145996094 4.390275001525879 0.8409125804901123 -1.036473155021667 -4.707476139068604 -7.088866233825684 -7.83818531036377 -9.28543758392334 -11.71403980255127 -14.83414459228516 -16.62343215942383 -2.29499626159668 -2.961411952972412 -2.122499227523804 -0.6669596433639526 -1.868154406547546 -3.875410556793213 -4.91694164276123 -4.891730308532715 0.4568216800689697 8.197615623474121 9.696140289306641 6.704034328460693 4.585768699645996 2.476099014282227 1.091381192207336 0.4335243105888367 -0.5687254071235657 -1.496876835823059 -2.130787372589111 -5.846884727478027 24.05082511901855 25.09373474121094 24.21193504333496 20.36325073242188 13.02910614013672 6.454100131988525 1.52746319770813 -3.075709819793701 -6.728793144226074 -8.80589771270752 -9.460672378540039 -11.76644706726074 -14.25769233703613 -13.67530250549316 -10.29029750823975 -1.650750637054443 -0.208829939365387 -2.077195644378662 -14.20537853240967 -18.52744102478027 25.77254676818848 24.06040191650391 20.5677547454834 13.68278884887695 5.020671844482422 -2.12727427482605 -5.282031536102295 -6.440862655639648 -8.702506065368652 -11.12855434417725 -11.91766548156738 -11.47909927368164 -12.10610198974609 -11.86609935760498 -9.121820449829102 -1.812450408935547 5.107182502746582 4.920481204986572 -0.2710652351379395 -6.876292705535889 5.561813831329346 2.296516895294189 -0.6591858863830566 -3.080161571502686 -3.533051490783691 -4.745232582092285 -4.471720695495605 -3.686116218566895 -2.147258281707764 -0.5663018822669983 0.5162866711616516 0.5424752235412598 1.623911499977112 3.003451824188232 3.977317333221436 2.498654365539551 0.8724212646484375 1.875412940979004 0.8027309775352478 -0.6819630861282349 19.61917686462402 18.45609474182129 18.47799491882324 19.79827308654785 17.10689926147461 11.72068023681641 6.055995941162109 0.3120600879192352 -7.114355087280273 -10.52225017547607 -11.70136451721191 -8.293768882751465 -1.405723810195923 -0.828071117401123 -6.074288845062256 -8.731206893920898 -4.095196723937988 -12.754958152771 -20.17257690429688 -19.85340881347656 14.80952072143555 17.46819114685059 20.82170867919922 23.67953681945801 20.62967872619629 15.85824108123779 14.72475910186768 14.74053478240967 8.142818450927734 -1.516817450523376 -7.932543277740479 -13.25365257263184 -16.83670234680176 -18.73295783996582 -19.06973457336426 -14.8338737487793 -10.93320178985596 -19.29703712463379 -18.45751571655273 -10.01095199584961 7.482068538665771 2.326231241226196 0.8688164949417114 4.389250755310059 4.947178840637207 1.969788432121277 0.3478336930274963 -1.950579762458801 -0.6798459887504578 1.780028462409973 1.205663084983826 -1.826590538024902 -2.571975708007812 -0.3986675441265106 -0.9361929893493652 -4.171066761016846 -2.571427345275879 -1.413182735443115 -5.015262126922607 -3.782065391540527 16.95998382568359 19.05223655700684 20.96267890930176 20.32244682312012 14.70008850097656 7.190319061279297 2.223759651184082 -1.443077445030212 -3.278354644775391 -3.199059009552002 -0.04841838777065277 3.228098630905151 -2.527568340301514 -9.855935096740723 -13.36289215087891 -10.47643089294434 -5.752617835998535 -17.51169776916504 -21.04363632202148 -16.13993453979492 15.64274024963379 19.27226829528809 21.4488525390625 20.53884315490723 13.66665840148926 5.105432033538818 -0.7823804616928101 -4.142613887786865 -7.173386573791504 -9.41521167755127 -11.72210216522217 -11.10785388946533 -8.61270809173584 -3.044043064117432 3.076077938079834 1.689179301261902 0.3429312407970428 -9.090780258178711 -17.00619888305664 -18.68569564819336 19.27406120300293 21.01512718200684 20.60714340209961 18.0533504486084 12.44712829589844 7.032878398895264 1.493260860443115 -0.216831773519516 -0.8198972344398499 -5.150724411010742 -8.989385604858398 -14.3274507522583 -16.3749828338623 -13.28943920135498 -3.104153156280518 0.7044649720191956 -0.1911748647689819 -9.366016387939453 -14.67130661010742 -14.12605476379395 15.87197208404541 15.75725650787354 16.47409057617188 19.80266571044922 21.39151000976562 19.08158874511719 16.78145980834961 16.32483673095703 10.03868007659912 -0.9548486471176147 -9.011223793029785 -14.07724475860596 -17.37917518615723 -19.1207275390625 -17.84129524230957 -13.48428630828857 -12.33353710174561 -12.18802642822266 -12.13397884368896 -22.99972343444824 19.77115440368652 22.67024993896484 23.19706153869629 17.61261940002441 8.879744529724121 -0.4675633609294891 -8.805087089538574 -14.97460079193115 -15.98870277404785 -15.40387725830078 -15.30841827392578 -12.50540828704834 -9.714068412780762 -6.806031227111816 -0.3164576590061188 4.903091907501221 7.00535249710083 3.019530534744263 -1.439740896224976 -5.328848361968994 17.01533126831055 19.18019866943359 19.9151611328125 17.81879997253418 9.990311622619629 1.763305306434631 -3.084365606307983 -4.78412389755249 -5.365145206451416 -5.203848361968994 -3.580549240112305 1.362223386764526 1.751674771308899 -4.448344230651855 -10.60238933563232 -12.07896423339844 -7.70475959777832 -6.26707124710083 -12.03426933288574 -13.64316558837891 21.14457321166992 24.05511474609375 23.26415252685547 16.86582946777344 6.21747875213623 -5.369931221008301 -11.22651100158691 -10.98467063903809 -11.96151065826416 -14.12011528015137 -14.95305633544922 -13.99252319335938 -13.30426406860352 -11.91360473632812 -7.540650367736816 3.757909536361694 11.0077543258667 9.207610130310059 2.215277433395386 -2.368848562240601 29.00222396850586 28.48460388183594 25.93150901794434 21.4667797088623 15.26805686950684 8.907505989074707 3.094134569168091 -0.3704345226287842 -0.3725618124008179 1.128356575965881 -0.8198649883270264 -7.251070022583008 -11.8759126663208 -14.63476467132568 -14.83200454711914 -14.91627025604248 -15.43190670013428 -17.03767204284668 -18.12302780151367 -17.6176643371582 -0.5229872465133667 -0.9333568811416626 -1.976774334907532 -0.825653076171875 0.7381709814071655 0.9048271179199219 1.387306094169617 1.699026107788086 -0.06231091171503067 -0.732931911945343 0.9243366122245789 3.672161340713501 6.35561990737915 4.802435398101807 1.277143716812134 -2.026589393615723 -3.49106240272522 -0.9316468834877014 -2.478273630142212 -7.779440879821777 12.37761497497559 8.500540733337402 3.963826179504395 2.993585586547852 2.330672740936279 0.9922259449958801 -0.5155994892120361 -2.419493913650513 -2.139281272888184 -1.493281006813049 -1.923130989074707 1.723258495330811 4.125826358795166 3.013142347335815 0.1448220759630203 -2.225801467895508 -4.866007804870605 -7.273083209991455 -8.250102996826172 -9.059732437133789 14.71333122253418 15.06742572784424 18.74950408935547 23.52798652648926 21.64268684387207 15.7910213470459 15.44819450378418 14.6940279006958 3.300268173217773 -6.043857574462891 -12.38335990905762 -15.97732639312744 -18.13620948791504 -18.5322151184082 -15.62265777587891 -7.273159980773926 -13.44136810302734 -15.2663459777832 -7.649264812469482 -12.60868167877197 48.95719146728516 38.51773071289062 28.26075172424316 18.50657081604004 9.553078651428223 2.031860828399658 -2.963486909866333 -5.224729537963867 -6.883813858032227 -8.123416900634766 -8.973358154296875 -10.01819801330566 -11.01023101806641 -11.78633785247803 -12.352614402771 -12.40237236022949 -12.7945384979248 -13.53164100646973 -14.37493133544922 -15.38752365112305 20.14043045043945 22.09770202636719 23.61984443664551 20.70815277099609 12.92933368682861 6.965699672698975 4.558826923370361 5.68310546875 10.17691421508789 10.27906608581543 2.949414253234863 0.4938775300979614 -1.449414491653442 -10.34737014770508 -17.76157188415527 -20.15271949768066 -20.61063957214355 -22.88518905639648 -23.28697395324707 -24.10848999023438 10.52316665649414 11.40132236480713 12.66412162780762 15.0340051651001 16.0078125 12.45312023162842 5.898415088653564 0.4244002997875214 -3.046837329864502 -5.709925174713135 -5.847077369689941 -1.937305450439453 3.21573805809021 0.1034991592168808 -7.329855918884277 -7.853392124176025 -4.880685806274414 -13.89130973815918 -19.94056129455566 -17.28865242004395 4.588668346405029 6.570792675018311 8.394368171691895 8.328991889953613 4.536696434020996 1.18450391292572 -0.8655908107757568 -2.701234340667725 -3.482176303863525 -4.731601715087891 -5.074623584747314 -6.095221042633057 -7.251790523529053 -8.958389282226562 -6.104052066802979 -1.21333634853363 2.024424076080322 4.289226531982422 5.466686248779297 1.093659996986389 29.94863700866699 29.49594879150391 27.16386604309082 21.51515960693359 15.09241390228271 8.721625328063965 4.970298767089844 0.9929517507553101 -5.966999530792236 -11.41642379760742 -14.27747249603271 -15.10451984405518 -12.94044017791748 -11.16920852661133 -10.04634094238281 -6.543850421905518 -5.894989490509033 -9.758112907409668 -16.5338191986084 -18.24871444702148 21.83877182006836 20.97796249389648 16.94112014770508 11.61819267272949 5.872594356536865 0.1224955543875694 -3.212450504302979 -4.082170963287354 -3.923421144485474 -6.459991455078125 -9.039790153503418 -8.42768383026123 -8.672144889831543 -8.221024513244629 -3.779259204864502 -0.2299136072397232 -1.772968769073486 -2.763445377349854 -6.812325000762939 -9.974555969238281 10.06608009338379 12.53314876556396 14.51608562469482 16.25030899047852 14.19843101501465 8.040790557861328 1.817384481430054 -3.18849515914917 -7.034405708312988 -9.931848526000977 -11.79605579376221 -11.61011695861816 -10.18306541442871 -6.639899253845215 1.248023509979248 2.217592000961304 -0.1409498453140259 -0.3832103908061981 -8.301152229309082 -11.67865180969238 11.47887706756592 13.86257266998291 16.45888519287109 20.15396881103516 21.92895698547363 17.73989295959473 11.87622833251953 9.149440765380859 11.01427841186523 11.71131134033203 3.032826662063599 -5.608216285705566 -12.16831302642822 -17.32048797607422 -19.42136192321777 -18.5024356842041 -13.43717670440674 -19.46553421020508 -22.80763053894043 -19.67611122131348 -4.030637264251709 -2.885680913925171 0.1430564075708389 4.568660736083984 2.949539184570312 0.4165210425853729 1.256185054779053 5.05045223236084 11.17075157165527 12.37558078765869 7.851804256439209 4.096808910369873 -0.01647955365478992 -2.634834766387939 -3.817649126052856 -5.186172008514404 -6.909162521362305 -6.777373790740967 -7.978471279144287 -9.64290714263916 -4.582842826843262 -4.938823699951172 -3.97158670425415 -1.191046833992004 0.4686195254325867 0.4696268439292908 0.7897435426712036 1.007123470306396 0.9759035110473633 0.7490917444229126 3.345463514328003 4.258479118347168 1.889129400253296 0.4904288053512573 -0.6166672706604004 1.178263664245605 1.760909795761108 -0.386031836271286 -0.5971260666847229 -1.098657608032227 18.16452407836914 15.93523979187012 12.69881439208984 9.163189888000488 5.68792200088501 3.221932411193848 1.378219723701477 0.7165012955665588 -0.04331810399889946 -2.390689849853516 -4.209126472473145 -3.840389013290405 -3.458535671234131 -5.032373428344727 -7.358416080474854 -7.793894290924072 -7.618057250976562 -7.4072265625 -8.241902351379395 -9.572412490844727 18.65714073181152 21.6392879486084 23.14701271057129 19.70701789855957 9.618742942810059 1.223453998565674 -3.562457084655762 -6.017216682434082 -7.231733798980713 -8.804216384887695 -9.193452835083008 -6.414642333984375 -0.6559333801269531 2.950440168380737 -1.541023850440979 -0.7578599452972412 -4.592584133148193 -11.68973445892334 -16.67496109008789 -19.80730628967285 25.89447593688965 28.08014678955078 28.30322265625 22.88685417175293 14.30008125305176 7.697629928588867 6.975630760192871 9.39089298248291 9.127365112304688 1.994027018547058 -6.20891284942627 -11.60031986236572 -15.35876560211182 -17.2491340637207 -17.58245086669922 -17.56136131286621 -16.83846473693848 -16.73702621459961 -17.42365837097168 -18.09022331237793 25.91289329528809 26.5307559967041 24.99502182006836 21.00735664367676 14.51052665710449 5.89196252822876 -2.764667510986328 -5.982351779937744 -5.862534999847412 -5.455358028411865 -5.616053581237793 -6.529488086700439 -7.304214477539062 -9.862467765808105 -9.469766616821289 -7.576248168945312 0.3342598080635071 -8.488096237182617 -21.4695873260498 -22.80195236206055 -2.074811697006226 -1.379054188728333 0.01440542191267014 3.46073317527771 5.932763576507568 7.50106954574585 9.151447296142578 11.70153999328613 14.97406578063965 13.73254013061523 7.314203262329102 0.7578305602073669 -4.526126384735107 -7.792448997497559 -7.752913475036621 -7.687578678131104 -11.6464204788208 -12.75423908233643 -10.24080848693848 -8.686188697814941 5.395631790161133 6.458533763885498 7.563086032867432 10.97248458862305 14.47399044036865 13.63891887664795 6.956953525543213 0.587205708026886 -3.735230445861816 -6.338038444519043 -7.727948665618896 -5.995079517364502 -1.221249580383301 4.427247047424316 1.087075114250183 -3.115803003311157 -2.559682130813599 -8.986092567443848 -15.33430862426758 -16.54770088195801 7.409373760223389 7.695731163024902 8.154870986938477 9.880136489868164 12.9074592590332 14.7426643371582 13.79567050933838 12.06047344207764 12.62145519256592 11.72721862792969 2.965122938156128 -5.753271102905273 -11.96146774291992 -16.7459831237793 -18.08276176452637 -19.30992889404297 -17.38825416564941 -8.724355697631836 -7.540921211242676 -8.453221321105957 4.96336555480957 9.996636390686035 14.311842918396 17.83664894104004 13.37979030609131 4.466736793518066 -2.443968534469604 -6.613634586334229 -9.214696884155273 -10.84931945800781 -11.36781120300293 -10.56637287139893 -8.684598922729492 -5.701920032501221 1.975816130638123 3.872113704681396 2.062820672988892 2.185985326766968 -3.216341495513916 -6.393094539642334 9.937215805053711 9.546629905700684 8.942694664001465 9.494353294372559 11.37107372283936 13.71105003356934 13.10164356231689 10.91634368896484 9.760026931762695 10.16535091400146 6.406124114990234 -0.795256495475769 -5.633151531219482 -8.741108894348145 -8.804507255554199 -7.941834449768066 -17.37422943115234 -24.62496757507324 -23.34028816223145 -16.0971508026123 25.04638671875 28.31245040893555 30.09809112548828 25.19725608825684 17.16758918762207 13.95879936218262 14.62166595458984 11.47086238861084 2.385091066360474 -5.529094696044922 -11.06947898864746 -14.87096786499023 -17.54668045043945 -18.25679588317871 -17.60579490661621 -16.48863792419434 -16.82614517211914 -16.26765060424805 -17.22675895690918 -16.5701847076416 0.1861922889947891 0.9933821558952332 1.407365202903748 2.385457038879395 4.697247505187988 8.267799377441406 11.20168304443359 9.177871704101562 3.897504091262817 1.19879412651062 0.9696437120437622 3.811080932617188 6.218757152557373 2.046954393386841 -3.372447729110718 -4.264369964599609 -4.85486888885498 -12.49968338012695 -15.97949409484863 -15.48887729644775 10.04598236083984 10.85248279571533 12.00761985778809 14.89963817596436 17.79332160949707 16.17134666442871 10.49749565124512 6.242854118347168 4.67501974105835 6.522838115692139 8.398330688476562 3.183536529541016 -3.453681230545044 -8.892962455749512 -11.84520530700684 -12.1473217010498 -15.1132173538208 -24.09582710266113 -24.7960376739502 -20.94625663757324 -3.491617918014526 -1.485655784606934 3.950692892074585 9.229430198669434 7.517223358154297 2.145496129989624 -1.415111064910889 -2.380982160568237 -2.882533550262451 -3.89798378944397 -1.201219081878662 4.009006500244141 3.563282012939453 -0.9534040093421936 -2.717098712921143 -2.829782247543335 -3.718904733657837 -4.624296188354492 -0.721588671207428 1.905048012733459 7.136748313903809 9.704776763916016 11.83459091186523 15.42144584655762 15.85572528839111 10.22522449493408 3.411412715911865 -1.60797131061554 -5.067855834960938 -6.342608451843262 -5.501177310943604 -1.083021879196167 6.475111484527588 8.123156547546387 4.048862457275391 -3.604238510131836 -14.79314231872559 -20.80034065246582 -18.90864753723145 -14.52805233001709 6.531763553619385 9.634510040283203 12.81524658203125 16.13408851623535 15.64743137359619 8.741541862487793 1.710421323776245 -5.35227108001709 -9.97281551361084 -10.95711803436279 -10.78933429718018 -8.797097206115723 -3.595824480056763 3.170336484909058 6.32103967666626 1.094992160797119 1.220337748527527 -7.576735496520996 -13.53053569793701 -12.44996643066406 -7.363903522491455 -6.806900978088379 -2.836859226226807 1.175342679023743 1.479748368263245 -1.402959108352661 -3.674769163131714 -4.856005668640137 -4.591520309448242 -0.3723679482936859 8.325454711914062 10.33613681793213 6.669467926025391 3.046763181686401 1.662578225135803 0.1397121250629425 -1.543805599212646 -1.155826449394226 0.9786150455474854 0.791096568107605 29.80045127868652 28.91568756103516 26.60078239440918 21.97250556945801 16.60643005371094 11.04075717926025 2.602904081344604 -6.682921886444092 -10.14100074768066 -9.767416954040527 -8.65099048614502 -5.926705837249756 -5.210380077362061 -8.59261417388916 -8.445284843444824 -10.87628650665283 -13.19943046569824 -14.73625087738037 -17.3039665222168 -18.00626945495605 -3.688560009002686 -2.818481922149658 -0.6802619099617004 2.270853519439697 1.879542589187622 0.940893292427063 0.6564497947692871 2.256100177764893 4.703661441802979 8.975269317626953 13.59372425079346 11.68512058258057 6.962771415710449 1.251905083656311 -2.763835191726685 -5.771818161010742 -7.884562015533447 -8.462206840515137 -10.35957622528076 -12.74699211120605 4.248004913330078 4.765432834625244 4.915815830230713 5.49687671661377 7.023930072784424 10.7000789642334 13.39191150665283 12.50377178192139 7.702636241912842 4.374923706054688 5.430500030517578 7.171112537384033 4.185420513153076 -1.677868843078613 -5.097870826721191 -5.405557155609131 -11.90072917938232 -21.51240158081055 -24.1170482635498 -22.19893264770508 15.75334930419922 17.19730758666992 20.7005672454834 18.72154808044434 8.951026916503906 0.6867164373397827 -3.716609954833984 -5.566258430480957 -6.311602115631104 -7.152885437011719 -5.432274341583252 1.117875218391418 6.214285850524902 -2.5494544506073 -5.128464698791504 -0.04915498197078705 -10.04692077636719 -16.14870834350586 -15.10398864746094 -12.13636016845703 17.97311401367188 19.76634979248047 21.39565658569336 21.74516868591309 16.75929641723633 9.467004776000977 2.849482774734497 -2.500046253204346 -5.042112350463867 -6.342464447021484 -5.623378753662109 -1.123852968215942 5.147496700286865 4.953648567199707 -2.517591714859009 -11.62445735931396 -17.46012115478516 -21.40938377380371 -22.94816970825195 -23.46565437316895 11.63461589813232 9.158080101013184 6.488457202911377 5.143817901611328 2.916905403137207 -0.1068479046225548 -3.112392425537109 -5.819238185882568 -7.164790630340576 -8.176109313964844 -7.564079284667969 -4.48690128326416 0.8956932425498962 7.570874214172363 1.312260150909424 -1.768796443939209 -2.289218664169312 -3.31137490272522 -3.028005123138428 1.707053899765015 2.926234483718872 29.14865112304688 21.47149467468262 2.439462184906006 5.501011371612549 1.643659591674805 -6.76292085647583 -2.409740924835205 -8.03907299041748 -5.249748706817627 -9.267143249511719 -5.653778553009033 -3.96656322479248 -3.667096853256226 -4.748202323913574 -1.549194693565369 -0.9463512301445007 -1.836906909942627 -3.314558506011963 -5.719235897064209 12.470947265625 15.11152458190918 18.02553176879883 21.29134178161621 19.52526092529297 12.10525226593018 6.312593936920166 3.845258474349976 4.148721218109131 8.307011604309082 6.77711820602417 -0.07827016711235046 -3.445091009140015 -3.363857984542847 -8.071511268615723 -18.60810089111328 -23.78367233276367 -24.94066429138184 -24.25318717956543 -21.3762035369873 7.031388759613037 6.56312894821167 5.011763572692871 4.739909172058105 3.760274887084961 1.649250745773315 0.7073513865470886 0.1368855834007263 0.6126673817634583 0.1664887070655823 0.4641624093055725 -1.579413890838623 -3.002885341644287 -1.619839429855347 -2.136864423751831 -2.416504621505737 -2.729471206665039 -2.035640239715576 -3.998173236846924 -11.3244743347168 26.10825538635254 27.87723541259766 27.57238388061523 22.53870582580566 13.55697631835938 4.377523899078369 -4.967516422271729 -9.398359298706055 -7.663876056671143 -2.978241443634033 2.235098361968994 0.4064364731311798 -5.980384349822998 -8.795235633850098 -6.909957408905029 -9.368417739868164 -15.10078525543213 -16.43280982971191 -18.18826675415039 -18.88875007629395 -5.332527160644531 -4.412014007568359 -1.92000412940979 -0.9148799180984497 -1.788313031196594 -3.458236217498779 -4.219573497772217 -4.257562160491943 -4.52461051940918 -5.294120311737061 -4.055778026580811 -1.531636595726013 1.79312539100647 0.6853257417678833 -0.3957566916942596 1.670542120933533 2.707639455795288 5.126019954681396 11.65222549438477 18.47012901306152 -5.89049768447876 -4.81791353225708 -1.081678628921509 5.210571765899658 8.489131927490234 6.439982891082764 1.294154167175293 -3.274646043777466 -5.840307235717773 -5.678736686706543 -4.992888927459717 -2.973397016525269 -1.036866664886475 6.145828723907471 2.573880434036255 0.356663316488266 1.453744173049927 -1.621693134307861 -1.165271759033203 6.409940719604492 17.66457748413086 19.16311454772949 20.8537654876709 19.46419525146484 11.7333345413208 3.940036773681641 -1.99169135093689 -6.299876689910889 -9.069355010986328 -10.85267543792725 -11.00132465362549 -8.994890213012695 -4.004629611968994 3.13444447517395 -2.397467374801636 -4.317055225372314 -2.567871570587158 -10.91507053375244 -13.57569408416748 -9.965864181518555 20.93514251708984 22.32027816772461 22.67409706115723 21.14582824707031 15.3944616317749 8.963449478149414 4.276293754577637 -1.209252595901489 -5.569623947143555 -9.04305362701416 -11.31122303009033 -11.90524959564209 -10.29675769805908 -5.414793491363525 -4.478218078613281 -9.073565483093262 -11.81995391845703 -9.795501708984375 -11.63317680358887 -14.15919971466064 12.1132755279541 12.60517501831055 13.1745548248291 14.86605358123779 17.28303146362305 18.20900917053223 16.71659660339355 15.193434715271 14.69535732269287 10.41833019256592 0.1862402707338333 -8.594590187072754 -15.08750343322754 -19.6607780456543 -21.82248306274414 -21.11617660522461 -16.99981498718262 -11.3578987121582 -14.72579193115234 -16.09602165222168 -5.465966701507568 -3.264725685119629 0.9728610515594482 3.154532432556152 2.278740644454956 -0.3419993221759796 -2.567096471786499 -2.122959613800049 -1.745057702064514 -2.443787097930908 -2.750707864761353 -4.094523429870605 -3.222794532775879 8.81804370880127 2.149501800537109 -0.4293558299541473 1.450195908546448 3.500549793243408 1.755900740623474 4.368653297424316 19.10623359680176 18.27375030517578 16.36072731018066 14.52373695373535 12.06633377075195 9.84489917755127 8.277098655700684 5.320629596710205 1.419358968734741 -1.654242753982544 -3.454586982727051 -5.132024765014648 -8.012357711791992 -9.783267974853516 -9.893815040588379 -10.32134437561035 -12.21881580352783 -13.14967155456543 -14.13659381866455 -17.4360466003418 12.86025714874268 17.76287651062012 19.6215877532959 16.7944278717041 8.887890815734863 -0.07134453952312469 -5.687702655792236 -8.288370132446289 -9.721799850463867 -12.15043258666992 -12.64809513092041 -11.97291278839111 -11.12402820587158 -9.167056083679199 -2.822146415710449 6.055039405822754 5.621646404266357 5.278852462768555 -3.004235982894897 -6.224456310272217 15.44426250457764 17.72979354858398 19.69716835021973 20.67222785949707 17.2242259979248 9.833361625671387 3.39949369430542 -0.1992348283529282 -2.688804149627686 -4.334923267364502 -3.844566822052002 0.4062078297138214 2.857535600662231 -5.772940635681152 -13.67775058746338 -16.08181571960449 -13.63161659240723 -8.060153961181641 -17.29298400878906 -21.67949295043945 7.698844909667969 8.738471984863281 8.745844841003418 7.698896408081055 3.663897037506104 0.573648989200592 -0.3727831840515137 -2.538948535919189 -1.645619630813599 0.1504676342010498 1.366070985794067 -0.6653468012809753 -2.98711371421814 -2.646284341812134 -1.340891122817993 -6.458623886108398 -6.322549819946289 -2.637673616409302 -5.701182842254639 -5.319135189056396 4.066613674163818 -0.5547595024108887 -5.034553527832031 -5.277034759521484 -2.400102138519287 -0.3168928027153015 0.4989962875843048 3.530563592910767 5.426045417785645 2.565437316894531 2.01171875 1.435815572738647 2.939490079879761 4.050272464752197 1.313495516777039 0.5883401036262512 -0.6518515944480896 -1.240793347358704 -5.079005718231201 -7.871795177459717 -1.448119401931763 0.6444759368896484 3.32461404800415 4.711866855621338 3.763662338256836 1.080332398414612 -1.286277413368225 -1.319438815116882 -1.532131552696228 -1.768378019332886 -3.707221269607544 -5.079774379730225 -3.48140549659729 -0.8008399605751038 -2.879961013793945 -3.931840181350708 0.275295615196228 -0.1360030919313431 3.79906702041626 9.772076606750488 12.1269359588623 11.27189159393311 10.59097862243652 10.46043586730957 10.2598237991333 10.81139469146729 9.668438911437988 6.660717487335205 4.573893547058105 3.467939138412476 5.238237857818604 5.803231716156006 -1.210148215293884 -7.493948459625244 -11.93519115447998 -14.7085428237915 -16.71599769592285 -16.05445671081543 -15.70364952087402 -17.11195945739746 13.12377738952637 14.76900291442871 16.54218292236328 18.39592933654785 17.37423896789551 11.19109058380127 4.846801280975342 -0.07917411625385284 -4.133964061737061 -6.860244750976562 -7.90886402130127 -7.139285087585449 -4.538718223571777 -3.392687797546387 -7.839596271514893 -11.61318588256836 -10.64090919494629 -8.868794441223145 -10.99363040924072 -12.23396301269531 26.81447792053223 27.96259498596191 25.43362045288086 17.52786445617676 7.419716358184814 -0.9599667191505432 -6.38667631149292 -9.264720916748047 -10.46603775024414 -12.98816680908203 -15.02329730987549 -13.95087242126465 -13.49857807159424 -11.75158309936523 -5.786628723144531 4.058955669403076 4.121197700500488 3.128490447998047 -6.040102005004883 -10.3502836227417 25.52299308776855 26.00387573242188 24.36669731140137 18.27095985412598 9.770153999328613 1.368101000785828 -4.337774753570557 -6.078232765197754 -7.139277458190918 -8.449238777160645 -6.285707473754883 0.8910611867904663 3.336474180221558 -2.790127038955688 -6.165754795074463 -7.770922183990479 -10.82155895233154 -14.25809097290039 -17.0772647857666 -18.35636711120605 17.56317329406738 19.77436637878418 20.96381187438965 20.10425567626953 15.16935634613037 8.723620414733887 2.202280759811401 -4.633536338806152 -9.062554359436035 -11.55770587921143 -13.7131872177124 -14.99067497253418 -15.49533748626709 -13.84534168243408 -7.838288307189941 -0.3781206607818604 -0.9606676697731018 0.2202225625514984 -3.724903106689453 -8.520763397216797 10.77509307861328 9.713216781616211 7.613139629364014 6.115299224853516 5.473390102386475 6.564493179321289 6.196128845214844 3.413422346115112 -0.02892985567450523 -3.367078304290771 -4.039168357849121 -0.102944016456604 4.495573997497559 -0.4807423651218414 -6.583694934844971 -9.843358993530273 -10.01949501037598 -5.279670238494873 -8.310620307922363 -12.30404376983643 16.25362396240234 18.52274513244629 20.42025947570801 20.34381103515625 15.32809066772461 7.423810958862305 1.014423608779907 -3.601566314697266 -7.054345607757568 -9.875856399536133 -11.27408123016357 -11.39995384216309 -10.55090522766113 -6.693789005279541 -0.8936566710472107 -3.154413223266602 -5.269351959228516 -2.610140323638916 -10.16194248199463 -16.7667293548584 3.905270099639893 4.179000377655029 5.603682041168213 8.862052917480469 10.36059665679932 8.620098114013672 6.471692562103271 7.155777454376221 9.086709976196289 10.42552947998047 2.746437788009644 -2.729669809341431 -6.542405605316162 -7.424158573150635 -6.387094497680664 -7.067750930786133 -9.778780937194824 -10.32910251617432 -11.56781959533691 -15.59007835388184 -6.808318614959717 -7.090552806854248 -6.253806591033936 -3.689674377441406 1.446397304534912 4.566421508789062 5.933397769927979 7.514000415802002 7.479331970214844 7.777411937713623 8.614169120788574 6.021528720855713 1.703269243240356 -3.3706214427948 -6.088683128356934 -6.042318344116211 -3.703494071960449 -2.794055223464966 -2.483824014663696 -2.730587005615234 -4.518355369567871 -2.309658050537109 -0.07686230540275574 2.702617883682251 2.256586313247681 -0.08113429695367813 -2.718752861022949 -4.201854705810547 -4.282203197479248 -5.620865821838379 -7.055092334747314 -7.958604335784912 -4.317380905151367 0.03007601946592331 -0.9952335357666016 1.324269413948059 7.6004958152771 10.07666778564453 9.924391746520996 10.22088718414307 5.193268299102783 18.71485900878906 7.907965183258057 1.701437592506409 2.314491033554077 0.03160341084003448 -0.7266870737075806 -1.575950860977173 -1.885913252830505 -1.634743571281433 -1.900933742523193 -2.700615644454956 -2.390077114105225 -1.362438559532166 -3.721405744552612 -2.861743450164795 -3.147173166275024 -2.292251825332642 -4.752890586853027 -4.910801410675049 -5.400527477264404 -4.492744922637939 -1.888294458389282 1.232377529144287 2.88743257522583 1.315721392631531 -1.799540042877197 -2.02327561378479 -1.006501913070679 1.384703159332275 6.246706008911133 10.34042930603027 11.93471527099609 9.124555587768555 3.317849159240723 -1.930319786071777 -5.636334419250488 -7.022735118865967 -8.171489715576172 -8.412727355957031 10.08158874511719 13.33664798736572 15.84231090545654 17.82143592834473 13.8110179901123 5.529462337493896 -0.3985528945922852 -3.980654716491699 -6.574244022369385 -7.981208324432373 -7.879886627197266 -5.496023654937744 0.223065048456192 5.774120330810547 2.761629819869995 0.8614833950996399 -6.516460418701172 -15.14510059356689 -17.31759834289551 -14.75303840637207 22.60013008117676 24.54156684875488 23.84326362609863 19.09496688842773 10.35621643066406 0.1859720498323441 -6.529986381530762 -8.530640602111816 -9.13427734375 -12.85328769683838 -16.79564476013184 -16.80108261108398 -16.06009864807129 -15.23451805114746 -11.63305282592773 -2.050983667373657 9.135754585266113 6.994509220123291 2.099718570709229 -3.228525400161743 25.89415168762207 28.10893249511719 26.96290588378906 22.13865661621094 14.95983600616455 7.596179485321045 2.084829807281494 -3.544821500778198 -9.640351295471191 -13.9775915145874 -14.70730590820312 -16.57130813598633 -17.99108695983887 -18.67123031616211 -18.50144958496094 -13.6798677444458 -3.831031084060669 2.643254518508911 2.780942440032959 -2.053637504577637 22.93076515197754 22.75090026855469 22.0548038482666 20.26150512695312 15.51104259490967 9.472469329833984 7.012144088745117 5.358087062835693 -4.120922088623047 -14.14297580718994 -16.55397796630859 -18.74569702148438 -20.71169090270996 -19.25810241699219 -14.79666805267334 -5.918205261230469 -0.5904276967048645 1.12313711643219 -3.183269500732422 -8.452899932861328 -5.418164253234863 -3.471637725830078 2.6681969165802 6.788909912109375 7.09466552734375 6.437314510345459 5.553920269012451 7.795188903808594 11.93319129943848 15.64833068847656 12.53702926635742 4.330926418304443 0.6339982748031616 -3.339206218719482 -3.792855262756348 -4.291908264160156 -8.324840545654297 -13.37173080444336 -16.93652725219727 -22.47480201721191 -0.05879762768745422 0.6452949643135071 2.405997276306152 5.493192195892334 7.127470970153809 5.682305335998535 4.48931884765625 5.042030334472656 7.676459312438965 12.43595218658447 13.69847869873047 7.465067386627197 0.7681453824043274 -5.490077972412109 -8.937341690063477 -11.43538093566895 -12.79670524597168 -10.97546291351318 -11.29264831542969 -11.94329643249512 10.88403987884521 12.92324447631836 14.38540935516357 16.91743087768555 17.27330780029297 13.22148895263672 7.155322551727295 3.993715286254883 2.442624807357788 4.40928840637207 6.261072158813477 -0.6198334693908691 -9.670731544494629 -15.26863765716553 -17.71808242797852 -19.10515213012695 -16.69156074523926 -9.953075408935547 -8.27349853515625 -12.56636428833008 2.27680516242981 2.113321304321289 2.437686443328857 3.008768320083618 1.241589426994324 -1.387916803359985 -2.462588310241699 -2.975337028503418 -1.88559091091156 -0.2042010277509689 4.651990413665771 9.968090057373047 8.300644874572754 0.9605519771575928 -0.04896814003586769 -3.365617513656616 -5.978078365325928 -6.833310127258301 -5.090195178985596 -4.727645874023438 7.847574234008789 7.067167282104492 6.662248134613037 6.578348159790039 5.079869270324707 5.592251300811768 6.218988418579102 4.586808681488037 2.581440448760986 3.04776406288147 6.129241466522217 4.793115139007568 -1.531108379364014 -3.758066654205322 -3.071969032287598 -7.702095985412598 -11.62927913665771 -12.84663105010986 -12.25682735443115 -13.38883113861084 4.514105319976807 4.66682767868042 4.232834815979004 4.099987506866455 5.760811805725098 8.106185913085938 8.97283935546875 7.705116271972656 3.943045854568481 1.224737286567688 1.876956105232239 4.768482685089111 3.795475006103516 -4.402254581451416 -9.583163261413574 -11.04205894470215 -8.369756698608398 -7.266294002532959 -11.14993095397949 -11.85393905639648 20.3990650177002 23.50200271606445 26.11712646484375 27.20767021179199 24.64443588256836 21.54933738708496 20.01017951965332 15.03142261505127 4.738848686218262 -4.783853530883789 -10.73083591461182 -15.53164863586426 -18.9738712310791 -20.52020072937012 -20.84870910644531 -20.41202545166016 -18.743896484375 -17.63668441772461 -18.33848571777344 -16.67988014221191 9.542250633239746 8.481548309326172 5.684684753417969 1.996210336685181 -0.245926633477211 1.624283313751221 3.946237087249756 2.700109481811523 2.234994173049927 0.115024022758007 -0.6976653337478638 -0.5476781725883484 -1.046251058578491 -2.904873609542847 -2.946000099182129 -4.478445529937744 -4.57406759262085 -3.898633241653442 -6.183862686157227 -8.801935195922852 16.16145896911621 17.42645454406738 18.16004371643066 16.37112045288086 9.949515342712402 2.940956115722656 -1.942262172698975 -3.597460746765137 -4.915493965148926 -3.411347150802612 -2.519420862197876 -5.716957092285156 -10.15748882293701 -13.70100402832031 -14.29308319091797 -10.95629215240479 -1.597131013870239 -2.676204919815063 -1.170148372650146 -4.355268478393555 12.28768920898438 12.68321704864502 15.569580078125 19.4908447265625 16.91010856628418 8.692852020263672 2.517797946929932 -0.9263007640838623 -1.170295238494873 -0.06174460425972939 6.420377731323242 8.932571411132812 4.201237678527832 1.721729397773743 -9.224428176879883 -17.35285568237305 -19.26045417785645 -15.71762275695801 -19.16238212585449 -26.55192756652832 6.245744705200195 6.268002986907959 4.207524299621582 1.79872739315033 -1.229633688926697 0.7408354878425598 1.604185223579407 0.142693817615509 0.1075441762804985 -0.644679069519043 -0.08846840262413025 -1.768100142478943 -2.159897804260254 -1.129769682884216 0.2629894316196442 -2.082078456878662 -2.441042423248291 -1.899894237518311 -3.815143823623657 -4.119542121887207 20.05173110961914 20.88055038452148 17.51747512817383 10.19919300079346 0.5258507132530212 -7.500913143157959 -11.45216369628906 -11.26561164855957 -12.39236927032471 -13.94026947021484 -12.39535140991211 -10.40854358673096 -7.500237941741943 -0.08528272807598114 5.785986423492432 2.105387926101685 4.345167636871338 1.501741051673889 1.500825643539429 2.526839256286621 8.607571601867676 10.66682815551758 9.249236106872559 5.503625392913818 2.882188558578491 0.8992083668708801 -0.0635828971862793 2.035057067871094 0.9016298651695251 2.023458003997803 -1.298769593238831 -3.129651069641113 2.074720621109009 4.167274475097656 1.610644698143005 -1.834706664085388 -4.397714614868164 -9.282272338867188 -13.77460956573486 -16.84013748168945 17.72782897949219 13.35384750366211 9.865743637084961 8.380244255065918 7.216981410980225 4.388460636138916 0.8877004384994507 -1.852398037910461 -4.192076206207275 -8.631535530090332 -11.5961332321167 -11.11518955230713 -11.34392833709717 -12.33370208740234 -8.607263565063477 -0.6291151642799377 5.245619773864746 4.970704555511475 2.182846784591675 -3.918646335601807 8.837656021118164 8.571144104003906 8.405841827392578 9.54058837890625 12.27148914337158 14.57786083221436 14.13510322570801 10.99378108978271 7.196304798126221 5.435515403747559 6.295659065246582 4.651970386505127 -2.721877098083496 -10.37612533569336 -14.87836933135986 -13.88115406036377 -10.32938575744629 -14.44945526123047 -20.78187370300293 -23.49467086791992 23.84619140625 25.78300857543945 25.47788238525391 19.87122344970703 11.68521499633789 3.604460954666138 -5.03634786605835 -11.32021522521973 -12.02878570556641 -13.42320442199707 -13.94569301605225 -14.02375507354736 -12.19654178619385 -9.82501220703125 -5.048263549804688 -2.246386051177979 -3.514144659042358 -2.5782470703125 -1.633030891418457 -3.448371648788452 3.340758562088013 3.870378017425537 4.120713710784912 5.037959098815918 6.753860950469971 9.110489845275879 12.00573444366455 13.37793254852295 12.55318927764893 11.54603958129883 9.90861988067627 5.425647735595703 -2.18930196762085 -8.727770805358887 -13.10155391693115 -13.52284622192383 -11.65468502044678 -12.26611804962158 -16.727294921875 -18.86173439025879 -9.828516006469727 -8.915326118469238 -8.974359512329102 -7.217646598815918 -2.282588720321655 2.893517971038818 4.239310741424561 7.093316078186035 6.604909420013428 2.865988254547119 1.83055579662323 3.2193443775177 5.518388271331787 7.064283847808838 3.67120885848999 0.8540105223655701 -0.3388596475124359 0.6132372617721558 -3.018272638320923 -5.892501354217529 -2.874711275100708 -2.752830028533936 -2.014209508895874 -2.198307752609253 -2.533478498458862 -3.003878116607666 -3.114390134811401 -1.569741010665894 -0.112723134458065 0.5634764432907104 0.8838361501693726 0.2968892157077789 -0.07328982651233673 0.8557653427124023 1.598296284675598 2.840940713882446 1.994451642036438 3.354205369949341 3.775538682937622 4.084163188934326 15.98454570770264 15.1947603225708 14.83768558502197 15.3307991027832 15.14640808105469 12.90590858459473 9.047271728515625 4.183680534362793 -2.723320245742798 -8.632135391235352 -11.74036693572998 -12.76990604400635 -12.81839466094971 -9.959145545959473 -5.365267276763916 -5.420938968658447 -7.030534267425537 -4.051525592803955 -9.210529327392578 -12.90900325775146 5.808152198791504 5.720107078552246 6.113341331481934 7.924656391143799 10.49635887145996 13.1540412902832 13.37427043914795 9.870301246643066 5.203501224517822 0.6487607359886169 -1.668828845024109 -1.010637760162354 1.291379928588867 -1.743746638298035 -9.325093269348145 -12.29535293579102 -9.551430702209473 -8.369579315185547 -14.92904567718506 -20.71117210388184 16.51220321655273 16.43748092651367 15.49705600738525 15.38887596130371 13.89906311035156 9.833464622497559 5.09571647644043 0.7448903322219849 -3.773747205734253 -8.787490844726562 -12.47578144073486 -14.80143547058105 -15.03035926818848 -13.44840717315674 -8.022580146789551 0.2365774512290955 0.2807630300521851 0.296282947063446 -5.820065975189209 -12.06250762939453 -9.217697143554688 -8.090685844421387 -4.641467571258545 -2.057780027389526 -1.992717146873474 -3.516020774841309 -2.843037843704224 -0.5224300026893616 -0.7823125123977661 2.480736017227173 4.146018028259277 2.472123384475708 1.546867370605469 -0.2983658909797668 -1.849201917648315 -1.127020835876465 -0.5901479125022888 3.693552732467651 9.157370567321777 14.0322151184082 -1.976412534713745 -2.173535585403442 0.7694739103317261 3.23710298538208 0.8608817458152771 -1.77998149394989 -2.03187894821167 -1.642399668693542 1.260336756706238 7.953809261322021 9.447467803955078 5.30814266204834 0.04628446325659752 -5.822784900665283 -4.83160400390625 -4.831812381744385 -5.098841190338135 -1.812971591949463 2.025947093963623 1.092775464057922 -6.570667266845703 -4.6805739402771 -1.852029085159302 0.08193914592266083 -0.2363552004098892 -1.678380131721497 -3.177366495132446 -3.337771654129028 -2.952064275741577 -2.232300519943237 -1.573031067848206 -1.594407320022583 -2.042798280715942 -2.983182191848755 0.3691272139549255 3.700782060623169 5.453786373138428 10.41572380065918 10.58175373077393 4.307811260223389 1.787362694740295 2.793349504470825 3.836597919464111 5.649247646331787 8.752525329589844 12.60365104675293 12.86293697357178 8.05153751373291 4.367712020874023 4.074845790863037 7.052967548370361 7.244086265563965 -0.05366810783743858 -7.330480575561523 -10.00409126281738 -8.005287170410156 -6.356993675231934 -15.1110372543335 -18.3768482208252 -13.83841419219971 2.341654539108276 2.388215780258179 2.863267183303833 4.648303031921387 8.122657775878906 11.42584133148193 12.51743698120117 11.02591419219971 8.554328918457031 8.951103210449219 7.793797969818115 0.411314457654953 -7.197686195373535 -12.37596797943115 -14.07142066955566 -13.0402364730835 -8.43012809753418 -7.47089147567749 -9.221945762634277 -9.23554515838623 -2.109720230102539 -1.5848708152771 1.873279213905334 7.853331565856934 6.608457565307617 1.915987849235535 -1.072176456451416 -3.109765529632568 -5.152875900268555 -5.94966983795166 -5.459291934967041 -3.629111766815186 -2.284777402877808 0.5669218301773071 8.365090370178223 6.38809061050415 2.966304779052734 0.7316229343414307 -2.428706169128418 -4.488123893737793 18.11464691162109 17.04067039489746 15.46302890777588 13.02914142608643 8.66083812713623 4.241238117218018 0.1176207438111305 -2.475629091262817 -3.161414384841919 -5.331512451171875 -7.091492176055908 -5.272529125213623 -3.315841913223267 -2.177387475967407 -3.030715465545654 -5.545974731445312 -7.453866481781006 -9.154640197753906 -10.69330310821533 -11.96286869049072 -7.152008056640625 -4.281537532806396 1.351773381233215 5.114845752716064 4.510157108306885 2.515305042266846 1.736945033073425 1.729850888252258 0.6823156476020813 -0.1912119686603546 -1.01634156703949 -2.340070724487305 0.7699002027511597 0.1453834772109985 0.02102604135870934 -0.6207496523857117 -1.611258149147034 -3.454113960266113 -0.8278251886367798 2.917616605758667 9.232468605041504 10.09817695617676 11.44250774383545 13.9641284942627 13.49008178710938 7.798350811004639 1.654053807258606 -3.256836414337158 -6.486809253692627 -8.684080123901367 -8.676959037780762 -5.96602201461792 0.1038316115736961 3.271592855453491 -2.433842420578003 -5.343145370483398 -2.0563805103302 -7.70362663269043 -11.05433559417725 -9.393156051635742 11.3211088180542 10.30084133148193 8.714303970336914 8.196332931518555 8.060892105102539 6.808402061462402 3.831996202468872 0.652700662612915 -2.153224945068359 -4.997282028198242 -6.756732940673828 -5.48879337310791 -2.711465358734131 1.958363890647888 -0.6092830300331116 -5.806711673736572 -7.736612319946289 -5.348489761352539 -6.235086441040039 -12.00126171112061 11.96300792694092 12.53170776367188 8.439566612243652 6.113806247711182 6.259037971496582 5.941214084625244 7.968895435333252 8.847665786743164 7.777585983276367 2.564042329788208 -1.488135576248169 -3.309003114700317 -5.532947540283203 -7.894922256469727 -7.109066963195801 -6.037189960479736 -6.409726619720459 -10.09978866577148 -14.47838592529297 -16.04736709594727 -1.172796130180359 -0.1036691814661026 3.157508134841919 5.005873203277588 3.929879665374756 0.04579575732350349 -1.657067775726318 -2.327197313308716 -2.822494029998779 -3.302454471588135 -3.811484575271606 -3.67184042930603 -5.60439920425415 -3.971993923187256 -0.9259896278381348 1.074672222137451 2.243359565734863 5.628334999084473 5.614348411560059 2.671618938446045 3.512696743011475 1.096527457237244 -0.6281859874725342 -0.7485429644584656 0.5178734064102173 -0.3651645183563232 -0.7127798795700073 -2.345064878463745 -2.432967901229858 -2.26310658454895 -2.034166812896729 -2.083575248718262 -1.449461221694946 0.8295428156852722 -0.70797199010849 -1.382944107055664 1.025775074958801 3.812258243560791 3.899998426437378 2.459261178970337 2.429807424545288 3.187890529632568 5.378279209136963 6.000016212463379 4.466296195983887 2.91185998916626 0.9844428896903992 -1.477342844009399 -2.199348449707031 -2.298166513442993 -1.367229223251343 0.08722665905952454 -3.61474347114563 -6.213674545288086 -2.892201900482178 -1.260724186897278 -2.151336431503296 -1.416283965110779 -0.550739049911499 -0.00402315566316247 14.52378749847412 16.6730785369873 19.1119499206543 17.22778511047363 9.291229248046875 1.790346741676331 -3.118408203125 -3.548830032348633 -3.531383991241455 -1.608735203742981 4.218640804290771 7.31464147567749 3.481146574020386 1.081024765968323 -7.068146228790283 -16.28680038452148 -19.13638496398926 -16.59426689147949 -11.00821685791016 -12.81246280670166 3.692018508911133 5.628849506378174 7.832692623138428 11.53136348724365 13.04549980163574 8.675453186035156 2.028456687927246 -2.84373927116394 -5.490196704864502 -7.426167488098145 -8.206168174743652 -7.061071872711182 -4.723628520965576 -0.3768564462661743 3.87096118927002 -1.735897183418274 -2.740102529525757 0.1546860039234161 -5.976396560668945 -9.87975025177002 16.16242599487305 18.2116870880127 20.05804824829102 22.24453544616699 22.07296752929688 18.55509185791016 15.19608306884766 15.21150779724121 14.64852905273438 7.719002246856689 -1.769524931907654 -8.865024566650391 -15.03671550750732 -19.52850151062012 -21.77362823486328 -22.65321731567383 -20.66617584228516 -17.67313003540039 -20.46086311340332 -21.65310859680176 28.15493965148926 26.31645965576172 22.09249877929688 15.63876724243164 8.021668434143066 3.506574153900146 4.89709997177124 8.966142654418945 7.682575225830078 0.7692403793334961 -5.459128379821777 -10.63140773773193 -12.70171737670898 -14.02644157409668 -12.66135215759277 -12.88409805297852 -14.31961154937744 -14.34045124053955 -13.3057804107666 -15.71598052978516 20.48115348815918 23.84610366821289 23.25873565673828 17.72960090637207 8.124981880187988 -1.403685212135315 -6.072505950927734 -7.492461681365967 -9.476207733154297 -12.23296165466309 -13.57093715667725 -12.11631202697754 -10.83927917480469 -7.927901268005371 -0.5167157649993896 8.051298141479492 7.771177291870117 -2.611780643463135 -11.50110244750977 -13.50121021270752 -9.201011657714844 -7.988215446472168 -5.149657726287842 -1.251887679100037 0.4118910431861877 -0.6776695847511292 -1.663016796112061 -2.084519624710083 -2.385931491851807 -1.912577152252197 -1.813396573066711 -2.126807451248169 2.982677459716797 6.587588310241699 8.439833641052246 6.018701076507568 5.55783224105835 3.078472852706909 2.011021137237549 1.166679859161377 0.08954151719808578 0.2202292382717133 3.421765804290771 6.276632308959961 4.703573703765869 2.273778915405273 -0.4053238928318024 -2.012648582458496 -3.465083122253418 -4.702807426452637 -2.802443265914917 -2.402425050735474 -2.552382707595825 -5.434629917144775 -5.399964332580566 -1.856257796287537 -4.965855598449707 1.25382399559021 7.27832555770874 10.48214626312256 11.18907260894775 11.73231315612793 11.04765605926514 12.22256374359131 15.83541488647461 18.46990585327148 19.01543426513672 18.75796508789062 18.2039794921875 12.02499866485596 0.6351144909858704 -7.118268966674805 -12.3120641708374 -16.5434627532959 -18.81189918518066 -16.49979400634766 -14.38820266723633 -19.86294937133789 -21.32654571533203 -22.27123069763184 13.02842807769775 10.86863994598389 7.294010162353516 5.918304920196533 5.722743511199951 5.950034141540527 5.150651454925537 3.129361391067505 -1.551511406898499 -7.276643753051758 -9.330766677856445 -9.050996780395508 -8.989059448242188 -5.652007102966309 3.008387565612793 1.174135446548462 -0.8717693090438843 -0.4941126704216003 -7.436751365661621 -10.59107112884521 10.80727195739746 11.62981033325195 13.01964092254639 15.56442642211914 16.35092544555664 11.84114265441895 5.384622573852539 0.1702777296304703 -3.451409816741943 -7.103994369506836 -8.973663330078125 -8.735379219055176 -7.914924144744873 -4.197132110595703 0.8146427273750305 -3.325746297836304 -5.976436614990234 -4.152822971343994 -12.45363903045654 -19.297607421875 14.72954273223877 16.08261108398438 14.17352676391602 11.88899421691895 7.473514080047607 1.529868960380554 -2.953817367553711 -5.173144817352295 -6.694506168365479 -8.938716888427734 -9.363166809082031 -8.236028671264648 -5.627835750579834 0.7493261098861694 -0.5223051905632019 -5.783594131469727 -3.531458139419556 1.223669767379761 -4.0694580078125 -6.957036018371582 16.72555541992188 15.26893901824951 11.5390625 8.025328636169434 1.746574878692627 -4.360284805297852 -7.747194290161133 -9.38283634185791 -9.792986869812012 -10.40388584136963 -10.06481838226318 -8.170990943908691 -5.678887844085693 -3.475198030471802 -3.164578676223755 0.7308672666549683 3.477402925491333 6.308117389678955 5.589455604553223 2.830361366271973 7.345042705535889 8.680426597595215 9.749619483947754 12.49200248718262 15.73318386077881 15.27023792266846 10.12906646728516 4.700282096862793 1.922553539276123 1.018091917037964 3.698895692825317 7.969869613647461 7.611150741577148 4.163828372955322 -2.567738056182861 -12.87359619140625 -21.41029930114746 -25.05918884277344 -22.71145629882812 -25.86196327209473 18.71936988830566 20.68647575378418 23.41899299621582 22.76237678527832 15.78819370269775 9.799668312072754 7.765241622924805 9.587062835693359 10.38189888000488 3.341527700424194 -4.944698333740234 -10.29120063781738 -14.14022159576416 -15.70387744903564 -13.80038070678711 -8.58829402923584 -16.18624687194824 -21.13409233093262 -20.62886810302734 -16.83290672302246 27.87442016601562 26.96112251281738 24.0582103729248 19.32543182373047 12.84800243377686 5.682741165161133 3.51162052154541 4.850452423095703 -1.909026265144348 -12.72551155090332 -15.08962535858154 -9.714102745056152 -3.31471586227417 -10.95889663696289 -11.41346836090088 -8.323419570922852 -7.359457015991211 -9.401535034179688 -15.79771423339844 -19.10453033447266 10.07621288299561 7.797087669372559 3.951492309570312 0.3331794142723083 -1.459578037261963 -5.277621746063232 -4.554242610931396 -3.164191961288452 1.188359260559082 2.639423847198486 3.018832921981812 2.21898365020752 1.448704242706299 -0.2560862004756927 -0.7721953988075256 -2.158268213272095 -3.343647003173828 -3.830219030380249 -4.08119535446167 -3.775028228759766 14.14085388183594 18.24298095703125 21.36625671386719 20.00353813171387 10.84364986419678 1.21229350566864 -4.475771427154541 -7.729876041412354 -9.343160629272461 -10.68409729003906 -11.19771862030029 -9.997315406799316 -7.551893711090088 -2.443511486053467 3.020612716674805 -0.6816856861114502 -1.046849370002747 -2.333725452423096 -9.136162757873535 -12.20838832855225 4.831536769866943 4.856345176696777 5.052229404449463 4.323375225067139 2.620728969573975 1.240252256393433 1.285614728927612 1.274769425392151 2.714488506317139 3.533999919891357 1.331077337265015 -1.702780246734619 -7.298985958099365 -2.362451791763306 -1.748149394989014 -2.798870086669922 -3.557214736938477 -3.920377492904663 -4.58315896987915 -5.092426776885986 -8.770161628723145 -6.593889236450195 -2.424760103225708 2.594765424728394 5.37811803817749 2.913643598556519 0.1374624669551849 1.340630531311035 0.233826532959938 -0.5468482971191406 0.6904201507568359 4.214969635009766 6.88810396194458 5.09185266494751 0.9326309561729431 -0.2858251929283142 -1.985121726989746 -1.640618681907654 -3.88466477394104 -4.284529209136963 21.96732521057129 24.21925163269043 23.86867523193359 19.26315307617188 11.19740009307861 2.215265035629272 -3.387691259384155 -5.112757682800293 -7.165873050689697 -10.0352029800415 -11.95029830932617 -12.50530338287354 -13.10330200195312 -13.46958160400391 -11.35860157012939 -2.521730422973633 4.336183547973633 2.053223609924316 -5.4366135597229 -13.07352256774902 3.342934131622314 4.287295818328857 4.96614933013916 4.633366107940674 4.337628841400146 3.09008526802063 2.305321455001831 1.343788623809814 1.644765138626099 0.1375970840454102 -2.512146949768066 -7.56221866607666 -1.288949847221375 -2.610968828201294 -1.305450797080994 -0.7630775570869446 -2.601759910583496 -2.755043268203735 -4.275901794433594 -4.413410663604736 22.1788444519043 24.56454467773438 25.83176803588867 20.61639785766602 12.94971656799316 8.714364051818848 8.60114860534668 13.73898029327393 13.36184597015381 7.382289886474609 4.262598991394043 -3.105434656143188 -13.70510578155518 -19.30609130859375 -20.0294017791748 -19.6268482208252 -20.40436363220215 -21.70120429992676 -22.05267906188965 -22.2713737487793 17.08452606201172 18.63121795654297 17.28200340270996 10.18600940704346 0.9047264456748962 -5.769303321838379 -8.870579719543457 -9.263986587524414 -9.583680152893066 -9.771441459655762 -7.365384101867676 -2.126832962036133 4.993155479431152 4.14546537399292 3.043732881546021 0.4034484624862671 -4.596707820892334 -4.000100135803223 -4.001798152923584 -11.32447528839111 3.308281421661377 0.7628875374794006 -0.6617570519447327 -0.05335136130452156 2.597671747207642 6.354086399078369 8.23735523223877 8.332303047180176 6.223223209381104 5.031754493713379 8.093350410461426 9.925691604614258 2.418773174285889 -4.871974468231201 -9.15618896484375 -12.22183132171631 -11.66841697692871 -7.352973461151123 -6.765195369720459 -8.53369140625 13.52341556549072 14.92821788787842 16.83053779602051 19.57003211975098 19.61124801635742 14.55799102783203 9.966564178466797 8.374958992004395 9.971537590026855 12.65628528594971 9.050710678100586 4.956510066986084 2.693578958511353 -8.44794750213623 -19.81601333618164 -24.96413803100586 -25.53888130187988 -26.25833511352539 -25.2250804901123 -26.44122314453125 2.227933406829834 3.742212057113647 5.66429328918457 8.46546745300293 12.21207523345947 12.14280033111572 7.173071384429932 2.207161426544189 -0.3620262145996094 -0.1362887322902679 3.184273958206177 8.550507545471191 6.411488056182861 2.474506139755249 0.4528176784515381 -8.577210426330566 -15.63698959350586 -19.28199005126953 -16.41607284545898 -14.49803638458252 7.692607402801514 10.89262771606445 13.92684936523438 16.72857856750488 16.56256484985352 10.2755651473999 3.975806474685669 -0.8361673951148987 -3.162058591842651 -1.791858434677124 2.535933971405029 7.296338081359863 8.919187545776367 6.461850166320801 -4.072275638580322 -16.53657722473145 -22.56225204467773 -24.55673408508301 -20.20475006103516 -11.54522228240967 12.82986450195312 14.95521831512451 19.14453315734863 20.5372428894043 11.2462911605835 1.551305532455444 -5.443355560302734 -10.95425605773926 -15.02199935913086 -15.36999988555908 -15.22126388549805 -12.65652179718018 -7.642220020294189 0.1088813841342926 1.906976103782654 1.661651968955994 3.659494638442993 -1.161453127861023 0.3513465225696564 -4.481740951538086 2.498115301132202 2.269802093505859 5.42523717880249 8.504334449768066 5.693159580230713 1.334556221961975 -0.8337335586547852 0.5078381299972534 3.238528490066528 8.719211578369141 8.290030479431152 3.340613126754761 0.3521939814090729 -2.624809741973877 -3.853048801422119 -5.220168113708496 -7.487966060638428 -9.298221588134766 -9.22874641418457 -11.62692260742188 2.680857419967651 3.003198385238647 3.409420490264893 5.929980754852295 9.358918190002441 12.19396495819092 9.532551765441895 2.128130674362183 -4.209565162658691 -5.676620960235596 -5.773328304290771 -2.54345703125 6.447335720062256 8.718700408935547 3.022321462631226 -0.1908483952283859 -3.507422685623169 -13.78666210174561 -17.14689254760742 -13.590576171875 -0.1238657087087631 -0.7467499971389771 -0.8606674075126648 0.9500460028648376 2.272556304931641 0.306546539068222 -1.757795810699463 -3.261495113372803 -5.63302755355835 -5.860240936279297 -1.687984704971313 5.435196399688721 5.633073806762695 2.441767454147339 3.242724180221558 2.501389026641846 0.7468942999839783 -2.209927558898926 -1.621481895446777 0.2330401837825775 22.27009773254395 20.58505058288574 19.32877922058105 19.19776725769043 16.04549217224121 11.43531513214111 8.545010566711426 5.04408597946167 0.08544245362281799 -3.480097770690918 -5.938987255096436 -8.133966445922852 -9.961761474609375 -13.2747974395752 -13.28524494171143 -11.297776222229 -5.769373893737793 -7.27945613861084 -20.25574493408203 -23.85982894897461 15.13276290893555 16.72235107421875 19.29923439025879 20.15243911743164 13.83577728271484 6.385299682617188 2.19368314743042 0.2870577275753021 -0.6039847731590271 0.6380589604377747 7.863599300384521 11.77124118804932 8.427032470703125 -0.9672374725341797 -14.1384916305542 -21.31941795349121 -23.57412338256836 -23.38068389892578 -19.86440086364746 -18.86019897460938 20.61358833312988 23.81437301635742 25.30980491638184 20.18338012695312 10.429856300354 1.001171350479126 -6.638706684112549 -12.31037044525146 -13.61087894439697 -14.84149646759033 -14.65114593505859 -12.03194427490234 -6.596310615539551 1.112412214279175 5.595176219940186 5.701927185058594 0.119323655962944 -9.245035171508789 -12.44776439666748 -11.50736236572266 20.02503967285156 22.21102714538574 26.78817176818848 28.51939010620117 22.7094554901123 19.15492057800293 19.01291084289551 10.40171527862549 -0.4550841450691223 -8.042952537536621 -13.44649314880371 -16.64340591430664 -18.4780158996582 -18.71750831604004 -18.29573631286621 -16.42117881774902 -13.69264221191406 -16.98819923400879 -12.51419353485107 -15.12720489501953 14.88516807556152 16.10471534729004 18.13610076904297 19.50263786315918 15.91295433044434 9.245290756225586 3.499725103378296 -1.481967806816101 -4.86527681350708 -6.488455772399902 -3.973629236221313 0.9033311009407043 1.895107626914978 -4.194590091705322 -7.035339832305908 -7.669322490692139 -13.8880672454834 -19.35153007507324 -17.51463890075684 -13.62220096588135 15.62930965423584 16.86459541320801 18.74105072021484 21.14679145812988 20.12394332885742 15.97838973999023 12.86601257324219 13.91710376739502 13.96356678009033 5.734773635864258 -2.778235673904419 -6.146415233612061 -6.230354785919189 -6.765965938568115 -14.22164535522461 -21.95081520080566 -25.08389282226562 -24.56394004821777 -23.0617790222168 -24.16248893737793 10.39857959747314 9.902873039245605 10.43587493896484 15.12217330932617 15.31923770904541 8.907997131347656 2.8302161693573 -0.4043548107147217 -3.749866724014282 -4.582551956176758 -0.7010706067085266 3.783650875091553 -2.94155740737915 -7.834283828735352 -6.707688331604004 -4.993249893188477 -13.40748691558838 -16.62495231628418 -8.052194595336914 -6.701350212097168 8.757573127746582 10.01415920257568 11.31327152252197 13.79831600189209 16.26449966430664 15.59647178649902 11.34064960479736 7.384111404418945 5.735970497131348 8.124849319458008 10.93261241912842 8.599547386169434 6.78111743927002 2.014044761657715 -11.55905818939209 -22.03640937805176 -27.67374420166016 -28.98818206787109 -25.71052360534668 -20.68927383422852 11.60599708557129 15.20479106903076 18.75311660766602 20.60714340209961 14.90422916412354 6.514626979827881 0.3688325881958008 -3.631831884384155 -5.889451503753662 -6.719012260437012 -5.461198329925537 -0.6609947085380554 4.922869682312012 -2.042565584182739 -9.40633487701416 -9.12317943572998 -3.453888654708862 -11.64505958557129 -17.42349052429199 -17.42458915710449 19.01464462280273 21.14679527282715 22.83805274963379 21.0030403137207 12.57469654083252 4.288835048675537 -3.159780263900757 -9.476808547973633 -11.30855751037598 -11.46416187286377 -9.432809829711914 -3.914461135864258 5.125019550323486 5.052341938018799 0.2600426375865936 -5.825098991394043 -7.427604198455811 -11.82730197906494 -18.64381980895996 -18.82307243347168 12.30899620056152 11.9555082321167 10.83330821990967 8.842498779296875 3.896013975143433 0.2282551527023315 -0.4788022935390472 -2.572926759719849 -3.632532835006714 -3.584671974182129 -3.35651683807373 -3.341462135314941 -3.818673849105835 -4.564336776733398 -0.5857362747192383 1.896973133087158 -2.874486446380615 -6.29917573928833 -7.014914512634277 -7.837318897247314 3.296769380569458 3.547193050384521 5.272069931030273 6.67866039276123 2.41662335395813 -2.836133003234863 -5.373547554016113 -6.121944427490234 -6.972627639770508 -7.586311817169189 -7.345023632049561 -6.884947776794434 -4.093441009521484 0.8166292905807495 0.9748799800872803 3.747726917266846 8.830391883850098 5.862343311309814 3.557900905609131 2.212787866592407 -7.826388835906982 -7.62874174118042 -4.937259197235107 -0.8020728230476379 2.141714334487915 1.761100649833679 -0.7069389224052429 -3.700064659118652 -5.26003360748291 -4.515527725219727 -2.649164438247681 0.229227676987648 2.087120294570923 7.220807552337646 4.123185634613037 2.464181184768677 2.05262279510498 0.3679012060165405 3.867342948913574 11.7109842300415 10.97468948364258 10.96027565002441 12.10276317596436 14.61746311187744 15.65119647979736 11.7838306427002 6.285211563110352 3.373393774032593 3.948726892471313 6.970715045928955 5.968252658843994 -1.579415440559387 -7.268170833587646 -8.547689437866211 -5.455753326416016 -9.339248657226562 -17.88034057617188 -21.75579833984375 -16.23410034179688 -14.57599067687988 -1.151786923408508 0.3562232255935669 4.105234622955322 4.6091628074646 1.121737599372864 -3.196008443832397 -4.702627658843994 -6.648385047912598 -7.236968040466309 -7.154190540313721 -6.574336051940918 -5.02200174331665 -1.13543164730072 -5.101800918579102 -2.871386528015137 2.9462571144104 3.081861972808838 7.378602981567383 15.5444860458374 11.65135955810547 11.34338188171387 11.19913387298584 12.50715827941895 15.84076881408691 17.10323143005371 12.29142570495605 6.988306522369385 4.413517951965332 5.027740478515625 8.428199768066406 8.23624324798584 1.152420997619629 -2.592719793319702 -3.07826042175293 -11.90985202789307 -20.47063827514648 -22.3043327331543 -18.75558471679688 -13.5499792098999 -21.8701286315918 9.078579902648926 9.186633110046387 9.339278221130371 10.55455684661865 12.47384452819824 12.83367919921875 9.073692321777344 3.734415054321289 -0.6726703643798828 -4.320102691650391 -6.029776096343994 -5.125953674316406 -1.246421217918396 1.966521739959717 -4.535735130310059 -9.616764068603516 -10.02407932281494 -6.061404228210449 -12.49483585357666 -18.11346244812012 -2.280097246170044 -2.68834924697876 -3.311764240264893 3.520923376083374 10.89420032501221 4.839663028717041 -3.218804121017456 -3.714579820632935 0.2111168950796127 -0.06632798165082932 -1.835359334945679 1.055355668067932 4.26752758026123 4.854606151580811 0.6746150851249695 -1.810803651809692 -2.038526058197021 -2.780031204223633 -2.86063027381897 -3.712734699249268 15.6898775100708 14.25310516357422 12.00113677978516 8.265121459960938 2.769523859024048 -1.839638710021973 -4.366783618927002 -5.091458797454834 -5.524468898773193 -6.214487552642822 -6.849764823913574 -4.835565090179443 -1.781233191490173 -2.874162197113037 -5.832647800445557 -3.938868522644043 -2.314552545547485 -3.232621431350708 -1.063970565795898 2.781453609466553 20.71076965332031 17.25700569152832 13.16612339019775 8.311223030090332 2.24157977104187 -2.576900243759155 -5.553876876831055 -5.902385711669922 -5.546775341033936 -4.485719203948975 -2.10135293006897 -0.6028069853782654 -1.887004613876343 -2.969450950622559 -4.074849128723145 -5.083820819854736 -5.638541698455811 -3.910549879074097 -5.090580940246582 -6.262086868286133 31.8298454284668 28.44303131103516 22.73410987854004 17.41254043579102 11.26890087127686 3.803855180740356 -1.837916135787964 -5.268406391143799 -6.438517093658447 -3.545932769775391 0.05899094045162201 -4.288939952850342 -10.38533020019531 -11.67748832702637 -11.13669490814209 -10.58297443389893 -11.13157558441162 -12.50732326507568 -13.26161670684814 -13.48856925964355 -4.754414081573486 -4.29445219039917 -3.168632984161377 0.1290164440870285 3.570644378662109 3.314040184020996 1.955246329307556 1.348280191421509 -0.8042680025100708 -2.629224300384521 -4.914752006530762 -2.001047611236572 5.124592781066895 6.069299697875977 0.1415419578552246 -3.626595497131348 1.771703362464905 3.683246374130249 -2.327579259872437 1.41335654258728 2.639788150787354 2.159015893936157 4.708622455596924 8.607648849487305 5.801329612731934 0.7648182511329651 -0.3380908071994781 -1.544275879859924 -4.542886257171631 -6.16004467010498 -2.698446750640869 0.9262956976890564 9.940608024597168 -0.7314932942390442 -2.589507102966309 2.756600618362427 -3.510427951812744 -5.458281993865967 -4.096356391906738 -6.634921550750732 16.85803985595703 17.09976005554199 17.47396850585938 18.36672401428223 17.34212684631348 13.70298385620117 9.851248741149902 7.641875743865967 8.03339672088623 7.617740631103516 2.199268817901611 -4.893833160400391 -11.72187900543213 -17.10725593566895 -18.81849098205566 -18.74653053283691 -15.40892887115479 -12.58003807067871 -16.79844856262207 -20.11173057556152 22.06707000732422 35.62493133544922 11.812819480896 6.424155712127686 7.10381031036377 -0.05969046056270599 -1.284817695617676 -2.963520526885986 -2.958014249801636 -4.077013969421387 -5.650639533996582 -6.130179405212402 -5.849739551544189 -5.752974987030029 -6.697713851928711 -7.910535335540771 -7.863702297210693 -8.072952270507812 -9.230849266052246 -8.530439376831055 11.97937107086182 12.09840774536133 12.05047702789307 13.27731323242188 14.60399723052979 13.96254253387451 9.541193008422852 4.33142614364624 0.5711573958396912 -2.765728235244751 -3.445377588272095 -0.4580845832824707 2.504267692565918 -3.52159857749939 -11.50433444976807 -14.44248008728027 -14.24422454833984 -9.923008918762207 -15.01983261108398 -19.59549331665039 14.88490581512451 14.43462181091309 13.64084434509277 13.18804931640625 13.96810245513916 15.41825389862061 14.65137481689453 14.75992298126221 14.53237533569336 8.346854209899902 -0.5528849363327026 -7.38205623626709 -12.75345230102539 -15.72228336334229 -17.83517646789551 -21.49028015136719 -24.21296119689941 -19.11733627319336 -11.10431289672852 -7.654553413391113 11.57993221282959 10.86910057067871 9.292579650878906 5.34028959274292 2.997883796691895 5.224020481109619 6.902576446533203 5.95371675491333 3.218202590942383 1.304577112197876 4.576533317565918 5.49297571182251 -1.158196091651917 -8.633240699768066 -11.69718551635742 -15.56486129760742 -11.68460178375244 -5.742196559906006 -8.887182235717773 -9.384926795959473 -5.013375282287598 -1.957106828689575 3.936692714691162 7.770921230316162 7.280149459838867 4.715601921081543 1.489615082740784 0.7599493861198425 -0.2818634510040283 -0.6248555779457092 -1.59972870349884 -2.472980976104736 -4.103787899017334 0.1207979917526245 0.1578272730112076 -2.168327808380127 -2.566078424453735 0.3693423271179199 -1.567225098609924 -4.245570182800293 11.8250675201416 11.75462341308594 13.146484375 14.40010833740234 8.680706024169922 2.451049566268921 -2.276995182037354 -7.947771549224854 -10.78728294372559 -11.6722354888916 -10.47933006286621 -8.248405456542969 -2.564605236053467 4.413960456848145 1.477530360221863 2.645415782928467 0.5283230543136597 -4.487845897674561 -3.822267532348633 -9.036537170410156 8.18290901184082 8.990080833435059 10.58115482330322 15.59363746643066 18.85009002685547 11.41630840301514 3.00689435005188 -2.788646936416626 -4.043056488037109 -2.216956615447998 4.225522994995117 2.624749183654785 -6.408520221710205 -10.62216949462891 -10.82849788665771 -8.878623962402344 -5.606212615966797 -9.247514724731445 -9.171202659606934 -13.65995407104492 1.122125148773193 2.340639591217041 4.852828979492188 9.07249641418457 10.91962146759033 7.267090797424316 2.862101554870605 1.919704437255859 0.273803323507309 -2.294070482254028 -3.884986162185669 -5.235678672790527 -3.864643096923828 5.882376194000244 -1.578886032104492 -6.334455490112305 -5.514403343200684 -0.7279078364372253 -8.353438377380371 -8.724315643310547 17.14527130126953 20.26199722290039 23.17537879943848 24.0041675567627 18.14511871337891 11.01581954956055 8.574430465698242 10.4360818862915 12.49145889282227 5.829493999481201 -3.923637628555298 -10.94857788085938 -16.28080368041992 -18.94600868225098 -19.85500526428223 -17.23432922363281 -9.003313064575195 -16.8664608001709 -20.5401611328125 -17.48090934753418 10.55026245117188 9.129498481750488 6.626078128814697 4.33876371383667 4.654973030090332 8.004281044006348 10.71401214599609 10.78413486480713 10.3967866897583 11.53522109985352 8.377507209777832 0.4597346186637878 -7.171211719512939 -11.95686149597168 -14.46788787841797 -18.23646354675293 -19.71159172058105 -10.51286029815674 -6.559005260467529 -6.955362796783447 15.84598350524902 19.43674087524414 22.85293197631836 24.50748634338379 20.79323768615723 16.51449394226074 15.64095592498779 13.840989112854 5.013079643249512 -4.427651882171631 -10.018310546875 -14.97299289703369 -19.46054077148438 -21.31647872924805 -21.76855278015137 -20.36329650878906 -12.68413925170898 -10.14741516113281 -13.79270839691162 -5.493778228759766 13.94381904602051 16.43526268005371 18.66817283630371 21.15324783325195 20.96892738342285 16.19882202148438 11.53557300567627 11.19319820404053 11.63861274719238 5.517746925354004 -3.452783346176147 -10.59959888458252 -16.6658878326416 -20.53487396240234 -21.84101676940918 -23.30248641967773 -21.42453956604004 -13.75922393798828 -5.866023540496826 -9.806961059570312 5.420772075653076 3.181998491287231 0.9735147356987 0.5510501265525818 3.229780673980713 5.21458625793457 4.726947784423828 2.143694400787354 1.255003809928894 3.039951086044312 3.897990703582764 1.44657826423645 -1.896672368049622 -3.810643911361694 -4.312219619750977 -4.728193759918213 -5.456769466400146 -5.385796070098877 -4.902922630310059 -4.588656902313232 21.27044486999512 24.08491325378418 26.50861930847168 25.93334770202637 19.78920555114746 13.71450996398926 12.57365131378174 14.33030128479004 11.14276313781738 1.456703662872314 -7.919396877288818 -13.94567680358887 -17.9332389831543 -20.08360481262207 -20.28531074523926 -19.57321548461914 -19.44615745544434 -18.53407096862793 -16.06371307373047 -17.02007865905762 -5.07229471206665 -2.673027276992798 0.1863208413124084 1.013860464096069 1.269213795661926 0.6856178045272827 -1.148736596107483 -1.975215315818787 -0.8282109498977661 0.2170413583517075 0.3902241885662079 1.803727626800537 1.366949439048767 1.99494194984436 1.425867795944214 -0.2583991587162018 -0.2421907484531403 -0.6433937549591064 2.033026218414307 0.4546787142753601 12.33667469024658 9.263205528259277 6.013627529144287 3.242619276046753 -2.04919958114624 -5.781479358673096 -7.16286039352417 -9.668787956237793 -9.240730285644531 -5.410822868347168 0.4398817718029022 4.0452561378479 5.102258682250977 5.437817573547363 4.034950256347656 1.557661890983582 -1.395820021629333 -1.710574626922607 -3.775616645812988 -5.278054237365723 4.00970458984375 4.243353366851807 4.418988704681396 5.687031269073486 2.622324466705322 -0.9186838269233704 -3.086290836334229 -4.4349684715271 -5.905517101287842 -6.297449111938477 -5.28984546661377 -3.434298753738403 1.549245238304138 8.161531448364258 6.771480083465576 3.789035320281982 0.8126276135444641 -2.69298243522644 -4.459996223449707 -5.545289516448975 16.34438896179199 18.4940299987793 20.55770683288574 21.24932479858398 16.44334411621094 9.492633819580078 4.141826152801514 0.9502881169319153 1.721351861953735 4.550103664398193 2.203536987304688 -5.914438247680664 -13.2753963470459 -17.82462692260742 -18.2209300994873 -16.58901596069336 -10.96980094909668 -8.35638427734375 -10.71623706817627 -14.2817211151123 -1.768032431602478 0.1761233359575272 2.252463817596436 6.361618518829346 10.33906841278076 12.4231481552124 8.363289833068848 1.52364706993103 -2.29892373085022 -4.496731281280518 -4.185180187225342 -1.60689651966095 3.926949739456177 2.458340167999268 -2.319498538970947 -4.485013961791992 -5.137418270111084 -5.211325645446777 -7.696087837219238 -8.619550704956055 11.08488273620605 11.7852611541748 12.92747783660889 15.01494121551514 15.44369792938232 12.07398509979248 6.266739368438721 2.460949420928955 0.4702639281749725 1.07369339466095 4.758166313171387 4.984653472900391 -0.8855037689208984 -4.581241130828857 -4.824244499206543 -10.50354194641113 -17.17863082885742 -18.10089302062988 -13.49168872833252 -28.77894592285156 6.929741382598877 7.825069904327393 5.77735710144043 2.587711811065674 3.563386917114258 5.160883903503418 5.126599788665771 4.502707481384277 0.8351610898971558 -1.632234811782837 0.7420730590820312 0.12342369556427 3.517768383026123 3.057796478271484 1.368760228157043 -4.286410808563232 -10.46026706695557 -14.56558036804199 -12.81235122680664 -7.361606121063232 2.191778659820557 3.513268709182739 4.713126659393311 5.223500728607178 5.715236186981201 5.479634284973145 4.516466617584229 2.858439922332764 0.05186956375837326 -0.5694597363471985 -1.685080051422119 -2.039292573928833 -2.591443300247192 -2.490133047103882 -4.205042362213135 -4.566408157348633 -4.019378662109375 -2.816128969192505 -3.588330030441284 -5.692621231079102 -2.097806930541992 -3.25182843208313 -3.114562511444092 -2.844318866729736 -3.859760999679565 -5.712578773498535 -5.040430545806885 -4.48835563659668 -3.653167009353638 -1.838237047195435 2.461645126342773 5.505383014678955 5.742931842803955 4.578234672546387 3.168388605117798 4.534303188323975 4.382081508636475 2.832297563552856 2.518158912658691 0.1776237934827805 17.4088077545166 18.31974411010742 18.854248046875 19.61898422241211 18.58040618896484 14.79512596130371 10.30733489990234 7.095895767211914 6.93044376373291 8.344578742980957 4.694713592529297 -2.594254493713379 -9.020417213439941 -12.33715724945068 -13.71531963348389 -17.76349449157715 -21.14961242675781 -23.54549789428711 -23.33137702941895 -21.49314498901367 8.481592178344727 10.91602802276611 12.62129783630371 14.31409645080566 13.91150188446045 9.004624366760254 1.920468211174011 -1.742034077644348 -4.080940723419189 -5.218583106994629 -4.190650939941406 0.4368254244327545 3.856915950775146 -2.976571083068848 -9.561041831970215 -11.80435657501221 -8.181826591491699 -4.906846523284912 -10.33259773254395 -12.46790504455566 25.5666389465332 23.68691635131836 18.78746032714844 14.111083984375 8.82848072052002 3.205553293228149 1.324411988258362 0.3318596482276917 -0.6595930457115173 -5.150588989257812 -9.499537467956543 -6.876737594604492 -1.765209674835205 -2.82733416557312 -5.068912982940674 -6.80744743347168 -8.437265396118164 -9.323757171630859 -17.57405662536621 -21.8519458770752 14.02389812469482 13.77211284637451 15.62245464324951 16.63031005859375 11.80296897888184 6.446163654327393 3.031527519226074 0.9142658114433289 1.641602277755737 4.214316368103027 5.046321392059326 0.665174663066864 -3.854398965835571 -4.954565048217773 -4.76600980758667 -6.274704933166504 -7.901957511901855 -14.74887180328369 -23.93405914306641 -27.37654113769531 -6.13859224319458 -4.946783065795898 -4.029239654541016 -3.219005823135376 -3.006635189056396 -2.876469135284424 -2.764590978622437 -1.043931841850281 1.520820021629333 3.286266565322876 3.582094430923462 3.500922918319702 4.142548084259033 4.196081638336182 2.466428995132446 1.189210176467896 0.9860852956771851 1.069903969764709 1.366392016410828 0.7184919714927673 -4.109463214874268 -2.632721424102783 0.5314706563949585 3.449937582015991 3.192186117172241 2.046949863433838 -0.009129852056503296 -0.1964436322450638 -0.8928117156028748 -1.009577989578247 -0.7628929018974304 0.2475123256444931 1.15898072719574 -3.243423461914062 -4.782504558563232 -4.64444637298584 0.468833863735199 3.766880989074707 4.878130912780762 2.542529344558716 -1.647605180740356 0.2618206739425659 1.971102833747864 2.544361352920532 1.15186333656311 -0.515619695186615 -1.419001221656799 -1.687308788299561 -1.461441516876221 -1.687948703765869 -1.865533113479614 -1.773398280143738 -1.544569849967957 0.1818061619997025 1.935967922210693 4.564754962921143 5.86070442199707 3.613274812698364 -1.783733487129211 -6.699496746063232 8.218077659606934 8.36836051940918 8.590140342712402 10.91640377044678 15.26675605773926 18.74322509765625 15.39290714263916 13.29907131195068 14.50366878509521 6.068000793457031 -4.49066686630249 -11.37653541564941 -16.28762626647949 -18.28180313110352 -17.28350448608398 -15.40235328674316 -7.205194473266602 -8.288730621337891 -7.324810981750488 -13.42539215087891 11.73594188690186 13.70747852325439 15.48323154449463 17.94837760925293 15.59787464141846 8.011203765869141 1.407221436500549 -2.020777940750122 -4.604009628295898 -6.823038578033447 -7.378701210021973 -5.953355312347412 -1.263996362686157 3.535661458969116 -3.562870979309082 -9.09814453125 -8.555088043212891 -3.749105453491211 -12.97335243225098 -21.44452857971191 9.426523208618164 12.99773406982422 17.31319618225098 20.40255928039551 15.12877559661865 4.556667327880859 -2.404085159301758 -7.309301376342773 -8.954307556152344 -9.473834037780762 -8.94853687286377 -6.45704984664917 -1.346714019775391 2.424389839172363 -3.885556697845459 -7.15138578414917 -3.132001638412476 -3.133339166641235 -9.104418754577637 -10.94930267333984 6.961635112762451 9.523253440856934 16.73820114135742 17.71315002441406 7.020796775817871 1.930528044700623 -0.3522165417671204 -1.58617377281189 -0.9375661611557007 -1.061645269393921 -0.726159930229187 -3.672266960144043 -5.233458042144775 -4.923686981201172 -4.085436344146729 -5.767467975616455 -6.59648323059082 -5.657567024230957 -9.336575508117676 -9.950865745544434 0.4838113188743591 1.375690102577209 2.193771600723267 2.736467599868774 0.7269363403320312 -1.655763864517212 -3.619451761245728 -4.335795879364014 -3.308824777603149 0.1796272099018097 2.696713447570801 2.654937982559204 2.706673145294189 1.865849018096924 -0.1049886643886566 -0.4607899785041809 -0.8976724743843079 -0.124328076839447 -0.9268824458122253 -2.185978651046753 -5.218797206878662 -4.889193534851074 -1.373051762580872 2.476942300796509 1.744365811347961 -1.049572944641113 -3.225939989089966 -4.171715259552002 -5.243880271911621 -5.251483917236328 -5.762197017669678 -6.042542457580566 -4.167647838592529 1.72130823135376 10.1200532913208 3.24189829826355 3.302833795547485 8.066161155700684 6.588317394256592 9.13414192199707 9.704636573791504 10.64715766906738 11.76275539398193 14.81031799316406 16.85883140563965 14.82177639007568 8.597762107849121 3.847447872161865 0.5471333265304565 -0.958280086517334 1.305961608886719 5.939559459686279 0.9206979274749756 -7.140867233276367 -11.61437606811523 -10.61985206604004 -9.407258033752441 -17.39714050292969 -22.14491081237793 -20.48134231567383 28.90131568908691 27.67374992370605 24.27939224243164 19.31695938110352 12.47010803222656 5.452095985412598 0.7062522172927856 -1.572138547897339 -4.616943359375 -6.630959987640381 -3.794699668884277 1.067591547966003 -3.109381914138794 -8.847738265991211 -11.87843418121338 -12.95088768005371 -14.31411266326904 -15.54751682281494 -17.58464431762695 -19.02000427246094 25.90213394165039 25.89734268188477 23.53892517089844 18.79122161865234 11.68747711181641 3.678178310394287 -3.660246610641479 -6.219344615936279 -5.166650295257568 -2.509670257568359 0.4824471473693848 -0.5207012891769409 -5.87305736541748 -7.691280841827393 -6.765379905700684 -5.783536434173584 -4.755335330963135 -19.76284599304199 -21.4870433807373 -19.78263664245605 5.902889728546143 5.59215784072876 6.002723693847656 7.333315372467041 10.82566165924072 13.96048450469971 12.58405113220215 8.752208709716797 6.233176708221436 6.918257236480713 9.634609222412109 5.873047828674316 0.4111865758895874 -1.698720812797546 -4.376388072967529 -13.30565643310547 -20.88594245910645 -22.87973976135254 -18.75935554504395 -18.11796951293945 -6.514405727386475 -5.437079429626465 -3.264081001281738 1.27970564365387 3.962663412094116 2.271744728088379 1.02592146396637 1.945308685302734 1.613759875297546 -1.267844796180725 -1.518831253051758 -1.518889904022217 -4.672675132751465 0.8256152868270874 3.834310293197632 2.905214548110962 1.178243517875671 3.182616710662842 1.092018127441406 -0.9233121275901794 11.67148208618164 11.26891803741455 10.90925693511963 11.41635322570801 12.84046840667725 14.70354461669922 12.12472248077393 8.723217964172363 7.386577606201172 8.005328178405762 10.3506031036377 5.592259407043457 -1.296667814254761 -4.224706172943115 -7.555230140686035 -12.99310207366943 -20.50958251953125 -25.02577018737793 -25.92427062988281 -27.46341323852539 16.20952796936035 18.79202651977539 21.13847541809082 23.80237579345703 23.88206672668457 20.29559326171875 17.91850471496582 17.53240585327148 11.83515930175781 0.889728307723999 -8.05699634552002 -14.09476375579834 -18.38312339782715 -21.60922050476074 -22.66406440734863 -22.25393867492676 -20.40405082702637 -14.16322135925293 -15.660325050354 -15.00618553161621 1.332775831222534 4.540472030639648 5.744597434997559 5.158358573913574 5.250928401947021 3.684443473815918 -3.143379211425781 -2.028280258178711 -1.02878201007843 -0.3361429870128632 -1.116461873054504 -1.71676766872406 -4.126121520996094 0.8790532350540161 -0.7885099053382874 -2.913221836090088 -3.568353414535522 -2.063380718231201 -2.309557914733887 -1.451665759086609 -1.293760061264038 -0.4718028008937836 1.60360324382782 4.362293720245361 3.793002605438232 1.713796615600586 0.8898845911026001 -0.3427882194519043 -1.766693472862244 -2.913138151168823 -4.84385871887207 -1.894249320030212 4.639877319335938 4.34099817276001 -1.607470631599426 -1.314101934432983 1.84531044960022 -0.4525135159492493 -2.935023069381714 -3.353369235992432 -10.76155948638916 -9.117382049560547 -5.077114582061768 -1.805173516273499 -0.4236795008182526 -1.142552733421326 -1.660835027694702 -1.172795414924622 -0.1269660443067551 0.3222311437129974 1.678869962692261 0.8585785627365112 -0.96555095911026 4.772230625152588 4.167304515838623 1.308529019355774 2.200663089752197 5.060666084289551 6.064671516418457 5.819861888885498 22.57675933837891 22.41295623779297 21.89896965026855 20.12034034729004 14.67387199401855 7.715049266815186 2.484054803848267 -0.575508177280426 -4.107325077056885 -6.831031322479248 -6.633961200714111 -1.897298455238342 1.635537028312683 -4.862734794616699 -10.25027275085449 -10.8586483001709 -8.151853561401367 -14.33871650695801 -21.98727798461914 -23.02290916442871 -9.34221076965332 -9.290777206420898 -7.660970687866211 -5.695330619812012 -4.999914646148682 -6.497367858886719 -7.056390285491943 -6.700881481170654 -5.362234115600586 -4.580047130584717 -3.109976530075073 -0.4361536800861359 2.412587642669678 5.234089374542236 6.659108638763428 5.803432941436768 7.357170581817627 10.88450813293457 14.32406616210938 18.05728530883789 20.44619560241699 22.33601951599121 22.63082504272461 19.35242652893066 11.46528911590576 3.117271184921265 -1.055151581764221 -1.79200267791748 -3.173611640930176 -4.100831985473633 -0.3322575390338898 4.949789047241211 -1.67628538608551 -9.806520462036133 -12.89304733276367 -11.95707416534424 -6.166247367858887 -10.784743309021 -19.66230201721191 -20.89774131774902 0.256197988986969 1.536613821983337 2.957437038421631 5.2234206199646 6.354453086853027 3.696042776107788 0.7037686109542847 -0.6300698518753052 -2.101612329483032 -4.444314002990723 -4.173471927642822 -1.491001605987549 5.151174068450928 9.585725784301758 5.665143966674805 -0.408844381570816 -3.492814302444458 -7.313898086547852 -8.801700592041016 -8.272249221801758 28.96685028076172 27.60278701782227 24.3299617767334 19.82255363464355 13.40191555023193 5.374635696411133 -0.2391291260719299 -1.643232464790344 -1.866767644882202 -6.27919864654541 -13.37139701843262 -11.61345100402832 -3.956285238265991 -2.976941108703613 -7.367682933807373 -9.043316841125488 -10.35547924041748 -12.04689884185791 -19.0933723449707 -19.64555740356445 7.8268141746521 7.661505699157715 7.500350475311279 8.078084945678711 9.425930023193359 11.5485782623291 12.26556968688965 9.966827392578125 6.851613998413086 4.498805522918701 4.676517486572266 7.766087055206299 5.541260719299316 -2.529203414916992 -8.679522514343262 -11.28592109680176 -13.17383480072021 -16.37701225280762 -23.27567672729492 -28.28676605224609 35.52833557128906 31.66068267822266 25.37701988220215 19.27362823486328 12.94277286529541 5.775343894958496 -0.7749545574188232 -5.389566421508789 -7.441998481750488 -8.394183158874512 -9.043607711791992 -9.8797607421875 -10.42886829376221 -10.22016716003418 -10.19195461273193 -10.66593074798584 -11.1938304901123 -11.67916965484619 -12.41997241973877 -12.83380603790283 22.54461669921875 23.32077026367188 21.75076866149902 18.91819000244141 13.03644943237305 6.55272102355957 1.854758501052856 -1.005697727203369 -3.922854423522949 -6.391634941101074 -9.368968963623047 -16.02129173278809 -20.49285507202148 -21.405029296875 -17.68970680236816 -6.272115707397461 3.27418327331543 2.227151155471802 -2.892533302307129 -8.016922950744629 -1.016274571418762 1.836273312568665 4.510078430175781 6.521440505981445 5.49302864074707 1.954428195953369 -0.601430356502533 -2.199551105499268 -1.309728026390076 0.2738093733787537 0.4291742146015167 0.9877617359161377 4.564645290374756 4.814922332763672 0.9567139744758606 -4.246704578399658 -5.209033966064453 -4.465246677398682 -5.836385250091553 -7.457924842834473 19.69192504882812 22.09206962585449 23.80901336669922 21.19912910461426 12.23721408843994 4.72580623626709 -0.4148092567920685 -3.826264381408691 -3.63470196723938 -2.288662195205688 2.101486682891846 4.527408599853516 0.1444754898548126 -2.039730787277222 -2.929513931274414 -13.12440204620361 -19.56832885742188 -21.00856590270996 -20.53844261169434 -21.15511703491211 7.62865686416626 8.226352691650391 6.950485229492188 6.50428581237793 5.521165370941162 4.095008373260498 0.2109681814908981 -3.786160707473755 -0.3319760262966156 1.160059332847595 -1.997029066085815 -3.957691192626953 -1.659037828445435 -1.516908645629883 -3.160657167434692 -1.93512499332428 -4.271431922912598 -4.183150291442871 -6.317551612854004 -7.180263042449951 9.274513244628906 9.768712043762207 13.41430759429932 16.60546684265137 10.43594074249268 2.931338548660278 -2.13913369178772 -4.436796188354492 -4.64939546585083 -4.175276756286621 -0.09205605834722519 7.67596435546875 7.083322525024414 3.903372049331665 0.6201664805412292 -9.050173759460449 -12.46957492828369 -10.02309417724609 -13.13846302032471 -21.53913688659668 8.100369453430176 7.838342189788818 7.10407543182373 8.068931579589844 10.80666923522949 13.47452163696289 15.93661212921143 16.2795524597168 15.77183437347412 15.02822589874268 8.247328758239746 -1.597835183143616 -9.153887748718262 -15.06421279907227 -18.40178871154785 -18.89818572998047 -15.87324714660645 -11.77176666259766 -16.96852493286133 -18.9270133972168 15.89307117462158 13.94218635559082 11.84148120880127 8.804191589355469 3.204591035842896 -0.2878334522247314 -2.61271071434021 -4.027554035186768 -3.52007794380188 -3.780377864837646 -1.576756119728088 -4.247349262237549 -7.15900707244873 -8.766011238098145 -8.830037117004395 -7.552667617797852 -7.192822456359863 -4.331611156463623 1.414379119873047 8.784918785095215 13.37816429138184 14.83925342559814 19.17241096496582 21.42833518981934 16.64079475402832 9.404074668884277 5.096750259399414 5.844509124755859 10.50385761260986 14.80595207214355 11.81415271759033 7.29457950592041 -6.347949981689453 -17.87113380432129 -23.08801460266113 -24.85861587524414 -23.46842956542969 -18.6118106842041 -13.97248077392578 -22.00439262390137 5.809521675109863 4.499151706695557 1.726754665374756 1.496702432632446 3.043510437011719 2.410009860992432 2.647355318069458 4.942822933197021 3.320942878723145 0.1809196770191193 -3.598520040512085 -2.810449123382568 1.244809508323669 4.914441108703613 -1.919122815132141 -4.742350101470947 -2.798822402954102 -3.097017765045166 -8.562280654907227 -8.708371162414551 -0.7433948516845703 0.6290790438652039 4.290616989135742 9.319417953491211 9.438047409057617 5.431394577026367 2.410978555679321 1.756274580955505 2.399199485778809 5.045031070709229 3.696019411087036 -0.5171908736228943 -4.493594646453857 -7.243680000305176 -7.094901084899902 -6.63560962677002 -8.511418342590332 -5.742341041564941 -1.905528664588928 -1.528403043746948 16.02640151977539 16.88601303100586 20.27311134338379 22.95177841186523 16.51199340820312 8.169997215270996 3.205844163894653 0.7203652858734131 2.32510232925415 6.823920249938965 3.088744878768921 -6.237605571746826 -12.3858585357666 -14.66896915435791 -11.41484642028809 -5.91987419128418 -13.8611364364624 -16.74186515808105 -16.20819854736328 -19.54491996765137 28.70901107788086 26.74901008605957 22.41019630432129 16.26782608032227 9.633708000183105 5.01160717010498 3.813749313354492 2.318852186203003 -1.775809526443481 -3.124970436096191 -4.951873302459717 -9.006095886230469 -10.96864891052246 -12.91622161865234 -11.37460136413574 -6.327468395233154 -3.874560117721558 -13.60419750213623 -18.35502052307129 -18.63449668884277 16.76492118835449 18.53962135314941 22.00734901428223 23.77195167541504 17.37566375732422 10.85693454742432 8.482762336730957 11.06650543212891 14.47068786621094 8.978681564331055 3.180291652679443 3.287941694259644 -4.277831554412842 -16.76885986328125 -22.19854736328125 -22.23225975036621 -22.40470123291016 -22.81134605407715 -23.5716381072998 -24.51812934875488 24.68488693237305 25.2512092590332 22.44723320007324 15.77536869049072 7.284281253814697 -0.3390955924987793 -5.155105590820312 -6.980916500091553 -8.144389152526855 -11.31495571136475 -11.14698791503906 -9.477306365966797 -6.634860992431641 1.133751630783081 5.708544731140137 0.7609378695487976 -7.239751815795898 -12.6716947555542 -12.63096141815186 -11.31018829345703 12.1938943862915 12.45997142791748 15.35780048370361 20.32815170288086 18.95355987548828 13.29246044158936 12.50092601776123 15.65379428863525 7.744460105895996 -2.879125833511353 -8.869330406188965 -11.96176815032959 -13.38275146484375 -12.10928630828857 -6.750946044921875 -9.434435844421387 -14.06286716461182 -9.809247970581055 -15.4976806640625 -23.72757911682129 18.14355087280273 19.00253677368164 19.98784637451172 15.79288959503174 6.609574317932129 -0.5279169082641602 -5.207690715789795 -5.706249237060547 -5.2888503074646 -3.929961204528809 0.2551923990249634 3.666478872299194 -1.617277145385742 -4.594314575195312 -0.8400980830192566 -7.191524505615234 -15.28251838684082 -13.91899013519287 -8.400474548339844 -10.95219898223877 -1.209361672401428 1.382168173789978 5.119255542755127 6.187464714050293 4.921239852905273 4.045382976531982 3.307084083557129 3.897459268569946 3.699335813522339 2.850033283233643 3.133702516555786 3.574357748031616 0.3321199715137482 -1.261278033256531 -3.536951541900635 -5.573594093322754 -7.333509922027588 -6.612568378448486 -8.03129768371582 -8.891047477722168 21.25825500488281 23.65346336364746 24.47770881652832 21.03482437133789 12.90108871459961 4.998486042022705 2.169271469116211 2.674301147460938 5.845990180969238 5.495700359344482 -2.556919813156128 -9.905426979064941 -14.95088195800781 -17.64135932922363 -18.43180465698242 -17.7553825378418 -14.19757556915283 -11.65029335021973 -9.392925262451172 -8.026556968688965 10.57416915893555 6.940167427062988 3.377308368682861 0.1674692034721375 -4.456944465637207 -7.959919452667236 -9.466750144958496 -10.31172180175781 -10.32407283782959 -9.972018241882324 -8.43491268157959 -4.619442462921143 -1.032624959945679 0.3527268767356873 4.959675788879395 8.442365646362305 7.155454635620117 10.09233951568604 8.988237380981445 5.528491020202637 -7.303966522216797 -6.072146892547607 0.03037638403475285 4.888665676116943 2.882314920425415 -0.3495607674121857 -1.423956632614136 -1.117535471916199 -3.287755012512207 -5.638257026672363 -1.321971535682678 4.593060493469238 0.6953179836273193 -4.267212390899658 -3.024996280670166 2.733240604400635 -1.291894435882568 0.7963177561759949 6.687963485717773 11.79199314117432 19.57700347900391 19.22323036193848 17.8361759185791 14.8910026550293 10.03314304351807 5.288291454315186 3.868746519088745 4.305737972259521 6.140094757080078 6.750828266143799 3.403490543365479 -0.7690652012825012 -4.462819576263428 -7.740454196929932 -12.09807968139648 -15.74795341491699 -16.49748039245605 -16.40741920471191 -16.36639785766602 -21.22806930541992 -13.60956954956055 -13.43655014038086 -10.68354797363281 -7.816117763519287 -7.257256031036377 -8.560713768005371 -10.12047863006592 -9.742441177368164 -8.897125244140625 -8.331297874450684 -4.778324127197266 0.1313253492116928 4.923659324645996 8.689200401306152 10.71094989776611 15.27718544006348 16.82255744934082 16.99509239196777 16.23367691040039 13.44978141784668 2.998192071914673 5.060214996337891 9.128397941589355 11.72884654998779 7.501063346862793 3.049983501434326 -0.2290438711643219 -2.830741405487061 -4.030549049377441 -5.998746395111084 -6.492287635803223 -5.973284244537354 -1.747057318687439 -0.04092250764369965 -1.939504861831665 -4.568539142608643 -1.428504586219788 -3.250531911849976 -1.501166105270386 0.5641858577728271 -9.875384330749512 -8.996847152709961 -7.259862422943115 -5.099687099456787 -4.747788429260254 -5.377129554748535 -4.533528327941895 -2.740194320678711 -1.019506692886353 0.2546121776103973 2.611207485198975 4.471316814422607 5.004693984985352 4.662132263183594 5.580606937408447 5.569987297058105 5.934168815612793 5.616549968719482 6.005987167358398 3.938658475875854 6.324036121368408 5.534636497497559 6.871768951416016 11.52741050720215 12.75160026550293 7.741029739379883 3.503966093063354 0.5145781636238098 -0.2266563773155212 0.4568825960159302 6.004167556762695 7.255617618560791 0.2812454402446747 -2.467282295227051 -2.955026865005493 -2.348532676696777 -7.746325016021729 -9.635989189147949 -15.20050239562988 -28.18662261962891 3.269198417663574 4.329102516174316 3.63520336151123 4.240509033203125 2.643314599990845 1.306932687759399 0.5871008038520813 0.01858275942504406 -3.445292234420776 0.2536954283714294 2.62947940826416 0.453508198261261 0.2572880387306213 -2.218570470809937 -2.030983448028564 -2.472489833831787 -1.544004678726196 -1.770274639129639 -3.215528964996338 -6.926770687103271 24.28678512573242 20.96181106567383 16.37893295288086 11.63182163238525 6.46122932434082 1.640398621559143 -0.6090925335884094 -0.8962091207504272 -0.9581948518753052 -0.6643978357315063 -0.7903278470039368 -2.765601634979248 -5.320699214935303 -7.348938465118408 -7.670615673065186 -8.164978981018066 -9.409834861755371 -11.03562641143799 -12.33566665649414 -13.39078426361084 17.44244956970215 12.6025390625 6.476651668548584 2.572973251342773 0.07880938798189163 -1.494240760803223 -1.026918292045593 0.05849277228116989 0.5748964548110962 2.224634647369385 0.9260033965110779 -0.9737981557846069 -2.529262065887451 -4.725411415100098 -5.308783531188965 -5.208952903747559 -5.336541175842285 -5.965589046478271 -5.326721668243408 -5.061234474182129 9.055865287780762 8.884231567382812 10.20116806030273 15.56664085388184 19.45423889160156 13.64838886260986 7.375551700592041 5.846075057983398 8.041905403137207 12.47882080078125 9.985394477844238 6.33833646774292 4.154695987701416 -9.475737571716309 -18.78720474243164 -22.48675346374512 -20.38532829284668 -14.83318042755127 -18.28673934936523 -26.77635955810547 19.13214874267578 15.08913326263428 6.245914459228516 1.684667944908142 -2.593921661376953 -3.631608963012695 -4.6460862159729 -4.676587104797363 -4.376307010650635 -3.846136331558228 -3.359805107116699 -1.947200417518616 -0.7491039037704468 -0.9314246773719788 -1.021931529045105 -1.608303189277649 -1.11945641040802 -1.422060251235962 -2.57276463508606 -3.649176836013794 -0.8554011583328247 0.01535670552402735 2.490541458129883 3.42849326133728 1.061878800392151 -1.813973426818848 -2.927071809768677 -4.505068302154541 -5.312741756439209 -6.198869228363037 -6.950813770294189 -2.745384454727173 6.032547950744629 3.116117477416992 -1.126639127731323 3.105453968048096 2.409670114517212 0.641316294670105 4.751763820648193 5.38281774520874 12.43925189971924 12.14298343658447 13.70097923278809 17.80710220336914 17.88127326965332 11.7794303894043 7.265505790710449 6.8924241065979 10.65805530548096 8.542099952697754 -1.237858533859253 -6.518909931182861 -8.609734535217285 -7.908468723297119 -6.340353488922119 -11.20984840393066 -14.85240650177002 -14.19177913665771 -21.24096298217773 -26.99876594543457 23.45121192932129 22.68519020080566 22.15351676940918 16.3964786529541 9.885462760925293 9.428561210632324 7.929757118225098 -5.295900344848633 -7.287815093994141 -6.190315723419189 -2.851263999938965 -1.912238717079163 -4.807369232177734 -3.605723142623901 3.066253900527954 0.3395583927631378 -16.53752326965332 -21.54922294616699 -20.96185684204102 -24.33675384521484 33.77143478393555 28.77348709106445 22.14700317382812 16.84343338012695 10.51287364959717 3.082031488418579 -2.772854804992676 -6.841246128082275 -8.5224609375 -8.851617813110352 -8.034506797790527 -4.58641529083252 -3.406130075454712 -7.006688594818115 -9.190608978271484 -9.06142520904541 -9.784893035888672 -11.42448425292969 -12.47732830047607 -13.16959762573242 4.425622940063477 5.459275722503662 5.645858287811279 6.871219635009766 6.816186428070068 4.309556484222412 2.105921268463135 1.583795070648193 0.2403468489646912 -0.8186249732971191 -0.475554883480072 1.799342036247253 1.35185444355011 -1.574759602546692 -3.126091241836548 -2.931037425994873 -4.274541854858398 -7.028286457061768 -8.702722549438477 -11.67736625671387 12.38517475128174 14.56315517425537 18.42501640319824 18.26544189453125 8.050895690917969 0.3629726469516754 -4.455294132232666 -6.819499969482422 -8.02800178527832 -8.136819839477539 -5.520301342010498 1.332758903503418 6.101493835449219 -1.145743131637573 -1.988560676574707 0.2712494730949402 -7.173962593078613 -8.100958824157715 -8.120369911193848 -20.26863098144531 13.23258495330811 14.43017864227295 17.6368236541748 20.34798431396484 15.51551151275635 7.98248291015625 3.920857667922974 2.722862720489502 4.856165409088135 9.656986236572266 8.020086288452148 3.274206876754761 1.099612355232239 -7.756321430206299 -14.47027206420898 -16.03600883483887 -14.80824565887451 -17.98133277893066 -24.48733329772949 -27.15681838989258 10.00753974914551 9.453824996948242 9.669445991516113 10.54615497589111 11.17346286773682 12.14949893951416 10.9928503036499 7.247820854187012 1.246783375740051 -4.546037673950195 -6.751821994781494 -7.538656234741211 -7.913768768310547 -5.880470275878906 -3.478797197341919 -5.813286304473877 -8.640678405761719 -9.01876163482666 -10.51074314117432 -12.39435768127441 13.41866111755371 12.95781326293945 14.06664562225342 16.35210418701172 17.40312004089355 16.2164478302002 14.19972705841064 10.60995674133301 4.731914520263672 -0.9379525780677795 -5.641208171844482 -9.150605201721191 -10.46435642242432 -10.43190383911133 -8.466348648071289 -7.95847225189209 -13.20952796936035 -21.08566665649414 -18.33942604064941 -14.27093315124512 10.05934429168701 10.14851951599121 11.85326862335205 16.17757225036621 16.12358283996582 9.054707527160645 1.976132750511169 -1.013263702392578 -3.108107805252075 -4.151781558990479 -0.6483354568481445 7.060160636901855 3.349245309829712 -3.173089981079102 -3.364842176437378 -4.28009033203125 -13.98790836334229 -18.64199066162109 -16.24434661865234 -17.18877983093262 14.16552066802979 16.79090118408203 19.07204627990723 19.25079345703125 13.39351367950439 5.549007892608643 -0.1253228634595871 -5.0051589012146 -6.942836284637451 -7.847989082336426 -7.06005859375 -2.986793041229248 3.983493328094482 5.623464107513428 2.900903701782227 -6.678395748138428 -16.7363338470459 -19.5196704864502 -16.10754013061523 -11.7195405960083 10.13781261444092 7.938575744628906 6.437095165252686 4.467501640319824 0.5077049136161804 -2.692654371261597 -5.074657917022705 -5.295346736907959 -6.35460901260376 -4.61092472076416 -0.264788806438446 2.69492244720459 0.1478714197874069 -3.632023334503174 -4.382040023803711 -3.492551803588867 -3.24286937713623 -1.711934328079224 2.209748983383179 6.213161945343018 2.057488679885864 3.72131872177124 7.908454895019531 11.76238822937012 10.78023338317871 7.873641014099121 5.909515857696533 3.327877044677734 1.41585898399353 -1.367973566055298 -3.643851280212402 -2.785484552383423 -1.257898569107056 -4.318547248840332 -5.67584228515625 -6.277145862579346 -6.429201602935791 -7.490517616271973 -8.424822807312012 -7.085493087768555 7.820384502410889 10.26064205169678 12.71585273742676 15.51255893707275 16.45561218261719 12.41169452667236 6.263260364532471 2.430400609970093 1.652305245399475 3.500654220581055 7.109420299530029 1.926035761833191 -7.15310001373291 -12.63532257080078 -14.97638130187988 -11.57130146026611 -5.502624034881592 -13.57993698120117 -18.28493881225586 -14.35521697998047 1.54519259929657 0.6455914378166199 1.130767107009888 3.020956754684448 7.271472454071045 8.955120086669922 8.167258262634277 4.944859981536865 2.918270349502563 4.133959293365479 8.64280891418457 4.413627624511719 -3.077182769775391 -5.508891582489014 -2.826085805892944 -1.797946929931641 -7.302445411682129 -9.750840187072754 -9.437262535095215 -16.08923149108887 4.742734909057617 4.582306861877441 5.318164825439453 4.916128158569336 3.035914897918701 0.8362451791763306 0.644989013671875 0.6589030027389526 0.9749945998191833 0.6436808705329895 -0.7589300870895386 -0.07376500219106674 -0.6987859010696411 -1.686697721481323 -3.857694387435913 -3.223940134048462 -2.982022762298584 -5.557400226593018 -3.43154501914978 -4.083280086517334 17.28988647460938 19.64286422729492 23.01824951171875 25.35204887390137 21.07189750671387 15.74672794342041 14.5294075012207 11.94213485717773 3.267378091812134 -6.753466606140137 -12.9169750213623 -17.29338645935059 -20.19407653808594 -20.9992561340332 -20.75796699523926 -20.98210906982422 -17.32324028015137 -6.989824295043945 -0.938843846321106 -6.711450099945068 -7.405002117156982 -6.63621711730957 -5.119040489196777 -1.162852644920349 0.4995702505111694 0.2100710719823837 -1.180066823959351 -1.163569569587708 -0.4376775920391083 -1.852619051933289 -0.4564747214317322 1.148225903511047 6.407271385192871 3.180431365966797 1.355106592178345 1.219310641288757 0.8625170588493347 3.981961965560913 4.656658172607422 1.892392635345459 -3.590446710586548 -3.353392839431763 -3.226964235305786 -2.259954452514648 -2.231477975845337 -2.566890001296997 -3.83813214302063 -3.984575986862183 -2.819719076156616 -2.430130243301392 -2.946921586990356 -0.3914734125137329 2.281153678894043 4.415081024169922 4.060555458068848 5.467803955078125 7.041676998138428 6.639510631561279 3.931572437286377 -0.1972776055335999 22.25151252746582 22.33121871948242 19.61933517456055 14.41214084625244 6.373692035675049 -2.562642812728882 -8.079279899597168 -10.45693778991699 -11.46908855438232 -12.5139102935791 -12.6769962310791 -11.84523582458496 -11.13391017913818 -8.746359825134277 -6.000263690948486 -0.9988529682159424 1.019225597381592 1.755787253379822 4.937151908874512 3.783427476882935 12.95260810852051 14.53674030303955 15.61411285400391 17.62470817565918 16.29912567138672 10.77538204193115 4.80446195602417 -0.3277279138565063 -2.880457878112793 -3.404256820678711 -0.7713425159454346 2.83541464805603 -2.578746318817139 -10.90081691741943 -14.56606388092041 -13.50789356231689 -7.632486820220947 -11.03356838226318 -15.46594715118408 -12.37324047088623 22.99762153625488 22.39748191833496 20.37690162658691 14.76454162597656 7.125988483428955 3.390379667282104 3.458976745605469 5.378371715545654 0.7713942527770996 -5.258638381958008 -9.207550048828125 -10.89459133148193 -11.36552143096924 -11.22277641296387 -9.833528518676758 -9.501014709472656 -10.30780124664307 -8.845525741577148 -7.249639511108398 -6.975067615509033 13.84787750244141 15.7175931930542 17.50483894348145 19.84147453308105 18.8011531829834 13.04101657867432 7.530145168304443 3.875656366348267 2.221766471862793 3.678050518035889 8.451436996459961 9.786053657531738 7.524314403533936 0.2494767010211945 -14.43461513519287 -23.53226280212402 -26.45499992370605 -26.53988265991211 -25.81037521362305 -25.2987174987793 14.26181793212891 15.01669216156006 16.73629379272461 20.87573051452637 21.24555587768555 14.78086280822754 10.10431003570557 9.993119239807129 13.58131122589111 6.923305988311768 -4.2493896484375 -10.31592178344727 -14.37813472747803 -15.54409217834473 -12.65233135223389 -9.27055549621582 -17.35264015197754 -21.07265853881836 -16.86798858642578 -21.81527900695801 -6.701730251312256 -6.423609733581543 -5.063463687896729 -3.075657367706299 -2.159016370773315 -3.141475677490234 -3.714672803878784 -2.327291965484619 -1.513632416725159 -2.370358943939209 -3.681196212768555 -3.985078096389771 -2.353027105331421 4.192892551422119 2.026463270187378 1.374962210655212 4.116894721984863 10.67783832550049 10.28569221496582 13.83546257019043 19.48781204223633 21.24834060668945 25.726318359375 26.79023933410645 19.5052661895752 14.94903659820557 16.14799499511719 12.56389713287354 1.256492614746094 -7.453189373016357 -13.13076496124268 -16.61943244934082 -18.1139087677002 -18.03603363037109 -13.4610595703125 -7.199068069458008 -13.86595821380615 -13.67895412445068 -16.15209007263184 -19.96494483947754 7.247554302215576 8.33905029296875 9.486268043518066 11.4226188659668 14.50669574737549 15.68746852874756 12.76148700714111 9.342776298522949 9.199343681335449 10.15981769561768 4.807382583618164 -3.574278593063354 -10.69182014465332 -15.21487140655518 -17.11676406860352 -13.65310859680176 -6.910757541656494 -16.70827293395996 -18.30534362792969 -10.78525257110596 19.14772033691406 21.59174728393555 24.05929374694824 21.3127269744873 12.89314746856689 4.167294025421143 -2.102882623672485 -6.323522567749023 -7.398536682128906 -6.703073024749756 -2.85664701461792 2.544823408126831 -4.055274486541748 -12.41448020935059 -15.04971790313721 -13.84373378753662 -6.27100133895874 -9.492775917053223 -9.887845993041992 -9.317259788513184 26.41968536376953 27.0235481262207 26.0343189239502 20.88638496398926 13.91330432891846 9.138555526733398 8.043726921081543 8.41940975189209 3.39354395866394 -5.950228214263916 -12.00013160705566 -15.41503620147705 -16.60493087768555 -16.50509834289551 -12.8128719329834 -7.158292770385742 -8.021406173706055 -11.21308612823486 -17.88352394104004 -19.70788764953613 10.56875133514404 9.655482292175293 4.223331928253174 0.7909567356109619 -0.4405189454555511 -2.849485874176025 -4.903106689453125 -5.652542114257812 -5.761168956756592 -7.115509033203125 -6.522299766540527 -6.316676616668701 -2.391098737716675 0.715168297290802 -1.13979434967041 -0.5824928879737854 0.7493327856063843 2.430058479309082 4.630113124847412 9.911500930786133 15.78400325775146 16.23406219482422 19.18672561645508 20.00784683227539 13.85215187072754 6.369851589202881 1.944249391555786 -2.078444242477417 -10.75318241119385 -16.79421043395996 -15.73612976074219 -11.85544490814209 -5.196184635162354 1.752044081687927 -2.497430562973022 -6.221963882446289 -4.478374004364014 -6.537206649780273 -4.950833797454834 -8.031515121459961 22.88135528564453 22.09592437744141 20.8078727722168 13.6090726852417 4.595454692840576 -0.72449791431427 3.414735555648804 7.479996681213379 7.168763637542725 0.1997841149568558 -6.418004035949707 -9.228799819946289 -9.804014205932617 -7.249096870422363 0.1684483736753464 -3.810968399047852 -17.22014427185059 -18.71464920043945 -16.33136558532715 -12.91985607147217 4.989173889160156 2.360268831253052 0.4501810073852539 -0.7491955161094666 -2.538476228713989 -3.425108194351196 -4.350328922271729 -4.323370933532715 -3.835586547851562 -3.945193529129028 -2.699645042419434 -0.9040977358818054 -1.544869422912598 -2.718829870223999 -2.965738534927368 -0.8955147266387939 0.4472894668579102 5.198237419128418 8.607419013977051 12.84339141845703 16.12025260925293 17.63321304321289 21.4428539276123 24.34177398681641 16.9606761932373 8.84307861328125 6.738799571990967 10.01789283752441 11.35753726959229 0.3357406854629517 -9.06071949005127 -14.43208312988281 -17.59659385681152 -18.28078079223633 -14.80839729309082 -7.358630180358887 -9.821417808532715 -9.654747009277344 -12.67974185943604 -20.09868431091309 -9.211740493774414 -8.87540340423584 -6.297139167785645 -3.247445344924927 -4.456758499145508 -5.464083194732666 -4.820130348205566 -2.262447118759155 2.475754499435425 9.864048004150391 11.28189754486084 7.739889144897461 3.522980451583862 1.257933139801025 2.171902179718018 1.554603695869446 0.2394822686910629 1.348282098770142 2.236604928970337 0.9417739510536194 22.59792709350586 22.23996353149414 20.93175888061523 15.17020511627197 6.236386299133301 -0.8764825463294983 -5.056914329528809 -6.203244209289551 -6.453927993774414 -5.877345561981201 -1.569867014884949 1.154849648475647 -6.127275466918945 -10.36573314666748 -9.736984252929688 -5.781574726104736 -8.737113952636719 -9.527509689331055 -7.009016990661621 -5.008105278015137 16.95464324951172 16.0569953918457 17.12229156494141 15.73456573486328 10.31270503997803 5.433484077453613 3.938912153244019 5.185332775115967 7.57879114151001 2.28395676612854 -5.735975742340088 -9.219627380371094 -11.62969207763672 -10.39375686645508 -6.960520267486572 -7.592714309692383 -10.21255683898926 -13.8248405456543 -13.26231670379639 -11.76964664459229 12.28885078430176 13.31100368499756 17.00658416748047 18.69374465942383 10.71056365966797 2.877930402755737 -1.967705011367798 -4.204086780548096 -4.696738719940186 -3.976315021514893 1.850314974784851 5.742563724517822 -2.43388032913208 -5.893528938293457 -2.637853860855103 -3.53376293182373 -10.49744033813477 -9.290708541870117 -11.66168212890625 -21.6878604888916 16.32644462585449 17.39614677429199 20.53213310241699 19.96866989135742 11.49829483032227 4.482291221618652 0.3640915751457214 -1.303813815116882 -0.8305099010467529 2.432171106338501 7.311874389648438 0.5549811720848083 -6.532717227935791 -8.626335144042969 -5.209945678710938 -7.723212718963623 -15.12660789489746 -15.98785591125488 -16.77809715270996 -22.74800872802734 36.26478958129883 29.16506958007812 18.88672637939453 11.29608726501465 4.25379467010498 -0.445648580789566 -3.325072526931763 -3.86842155456543 -4.627791404724121 -5.308796405792236 -6.112049102783203 -6.154624462127686 -6.960426330566406 -7.687922954559326 -7.803619384765625 -8.489947319030762 -9.088846206665039 -9.471495628356934 -10.03959655761719 -10.48222541809082 5.780822277069092 4.729944705963135 5.420453071594238 9.377270698547363 11.10299682617188 7.595249652862549 2.372618436813354 -0.3598511219024658 -2.176183462142944 -3.469889163970947 1.770817637443542 8.367834091186523 0.2412943243980408 -4.547429084777832 -4.491291999816895 -3.55483865737915 -9.05653190612793 -10.83175468444824 -8.612157821655273 -9.659374237060547 16.41555023193359 14.10188293457031 11.62247753143311 9.257728576660156 4.841358661651611 1.543326258659363 -1.545565128326416 -3.703099250793457 -4.978522300720215 -4.204208374023438 -1.368051648139954 2.156086206436157 2.162181854248047 -0.8789411783218384 -2.9700608253479 -4.858625411987305 -6.423192024230957 -8.652698516845703 -11.15371227264404 -11.36390399932861 16.10409545898438 17.92288208007812 21.83524513244629 22.52743339538574 14.43243217468262 6.848017692565918 3.221755981445312 2.279388904571533 3.802780389785767 9.888998985290527 12.63655948638916 9.522839546203613 2.566931247711182 -11.69426918029785 -19.76411437988281 -22.3358097076416 -22.23702812194824 -21.64353942871094 -21.32683372497559 -24.58775901794434 10.72166538238525 10.90416812896729 10.53556442260742 12.80475902557373 14.52211761474609 11.32664489746094 5.512959003448486 2.059190988540649 -0.9984778165817261 -2.616565704345703 0.8497801423072815 5.827003002166748 -0.7128457427024841 -7.924247264862061 -11.35591983795166 -14.3775691986084 -15.52609634399414 -7.991408824920654 -8.317806243896484 -15.24291801452637 19.64011383056641 20.09951591491699 3.73078727722168 4.298727035522461 3.901035308837891 1.736476540565491 -0.1971252858638763 -1.806933879852295 -1.589736938476562 -1.590380311012268 -3.101474523544312 -4.023970603942871 -2.120734691619873 -3.070114850997925 -5.017482280731201 -4.891379356384277 -4.810243129730225 -5.123622417449951 -8.227829933166504 -7.835626125335693 8.733895301818848 7.966941356658936 8.619454383850098 12.11435413360596 17.36251449584961 16.79151916503906 12.56485176086426 13.53887844085693 11.6723051071167 0.9210886359214783 -7.735207557678223 -12.13870239257812 -15.31115818023682 -15.37791728973389 -11.02734851837158 -5.627762794494629 -8.130962371826172 -7.171896934509277 -8.675792694091797 -19.08905982971191 13.74830913543701 14.03474998474121 16.81496047973633 19.97044944763184 13.72278308868408 5.233769416809082 -0.4247041046619415 -5.009110450744629 -8.885136604309082 -10.67052936553955 -9.199058532714844 -4.386091709136963 3.549043416976929 -0.7413970828056335 -4.454002380371094 -2.738729238510132 -9.688662528991699 -14.24010944366455 -7.356659889221191 -9.279876708984375 20.83841705322266 23.37444305419922 21.96332168579102 14.0463285446167 4.707098007202148 -3.454752922058105 -7.031973361968994 -8.247625350952148 -8.021733283996582 -8.446310043334961 -6.74375581741333 -1.701759934425354 5.688807964324951 6.658039569854736 4.332261562347412 -5.951213836669922 -13.42262840270996 -12.22700500488281 -11.32407569885254 -15.0358829498291 7.207045555114746 6.176064968109131 5.345635414123535 7.618152618408203 10.25305652618408 11.62214756011963 8.760963439941406 5.212853908538818 2.73217248916626 2.664905309677124 5.942745208740234 4.149530410766602 -4.500996589660645 -10.13909816741943 -9.937795639038086 -9.813549041748047 -17.44272422790527 -11.63266563415527 -4.419963359832764 -9.798478126525879 16.05946159362793 17.4783821105957 21.23090553283691 23.64727210998535 19.62251663208008 16.5314826965332 16.1394214630127 8.627650260925293 -0.1975974142551422 -7.240071296691895 -12.49001026153564 -14.75961399078369 -15.51878929138184 -13.46572113037109 -7.01030158996582 -12.02378559112549 -13.263671875 -7.646562099456787 -15.89719390869141 -19.82374572753906 14.98097801208496 15.5669641494751 17.67537498474121 20.85232543945312 17.22256088256836 9.611412048339844 4.912789344787598 4.019162654876709 7.113863468170166 9.847255706787109 1.316589593887329 -6.184567928314209 -10.87567520141602 -11.27708911895752 -7.885459899902344 -13.08677673339844 -21.08088684082031 -20.78436470031738 -14.12562656402588 -17.81882095336914 24.70122909545898 21.52716827392578 20.18359756469727 15.67780303955078 8.116883277893066 5.965303421020508 7.824417591094971 8.531929016113281 -4.015629768371582 -9.77031421661377 -3.555948257446289 -4.037703037261963 -8.993593215942383 -8.89934253692627 -2.862210035324097 1.763970971107483 -15.08697319030762 -20.0122127532959 -20.03493309020996 -17.02342796325684 11.51157474517822 11.33275032043457 12.48272800445557 16.49664115905762 20.78080940246582 17.92484092712402 13.26130962371826 14.8084602355957 13.74868202209473 2.481383800506592 -6.05708122253418 -11.60165977478027 -15.57636070251465 -16.86976051330566 -14.53013515472412 -10.75713539123535 -16.85516548156738 -20.02822494506836 -12.50354862213135 -10.05010509490967 13.43461418151855 14.33900547027588 17.07033538818359 19.74283218383789 14.37437534332275 5.228202819824219 -0.7103554010391235 -4.28042459487915 -7.09163761138916 -7.408814907073975 -2.964175701141357 2.376692771911621 -3.480540990829468 -10.35213851928711 -9.717494010925293 -5.586410522460938 -6.802725791931152 -8.403306007385254 -6.616281032562256 -13.1517448425293 9.963135719299316 9.340554237365723 10.65275192260742 14.79289531707764 19.56935691833496 17.04957962036133 11.05484771728516 12.18426990509033 15.92981815338135 5.628086566925049 -3.488591194152832 -7.927986621856689 -10.63529014587402 -9.420705795288086 -7.041135311126709 -15.3204927444458 -19.33856964111328 -16.25669479370117 -12.8823938369751 -23.85343933105469 22.06594848632812 24.1613883972168 23.23174858093262 14.79627227783203 4.655078411102295 -0.9209227561950684 2.34649920463562 7.607211112976074 4.634677886962891 -4.511134624481201 -9.675531387329102 -13.88466930389404 -15.12217140197754 -12.5805721282959 -3.860899209976196 -2.127594470977783 -2.984724760055542 -7.038827419281006 -14.30890274047852 -16.48287200927734 9.838269233703613 7.411069869995117 5.207682609558105 4.320160388946533 3.407595872879028 2.323895931243896 1.179081916809082 0.3448304831981659 -1.869332432746887 -1.541472196578979 -1.186288595199585 -1.98955512046814 -2.880399942398071 -2.99422287940979 -2.861319303512573 -2.746136426925659 -3.60328197479248 -4.409862041473389 -4.106838226318359 -3.843872547149658 16.57100868225098 16.7503776550293 19.52754402160645 19.92691421508789 12.71861267089844 5.590298652648926 1.350907921791077 -1.353148341178894 -2.131840944290161 -0.2975033521652222 4.883733749389648 0.3517743945121765 -7.934087753295898 -11.32361793518066 -9.469447135925293 -5.700685024261475 -15.65244483947754 -19.0988597869873 -16.45174217224121 -8.257791519165039 10.3472375869751 9.582415580749512 13.51676559448242 13.12163162231445 3.850957870483398 -1.172455310821533 -0.9376927614212036 0.4330868721008301 5.778407573699951 5.62817907333374 1.32157027721405 -1.832874774932861 -4.590438842773438 -5.001556873321533 -0.2184758931398392 -3.016781091690063 -8.313580513000488 -9.928302764892578 -14.60472679138184 -13.96335887908936 10.6744556427002 9.223483085632324 7.286635875701904 6.623978614807129 7.8115553855896 9.858303070068359 10.06727981567383 8.143356323242188 4.965957641601562 1.093035340309143 2.540902376174927 5.567163467407227 1.563134908676147 -7.483416080474854 -12.57964515686035 -13.34443378448486 -10.27435111999512 -9.547389984130859 -15.1450834274292 -17.04491996765137 22.61507225036621 22.19220352172852 20.78857231140137 17.87928771972656 12.97425174713135 7.441983699798584 3.015723466873169 -0.7323780059814453 -3.833522319793701 -5.40011739730835 -5.188457489013672 -2.586252450942993 -3.092840671539307 -8.979012489318848 -12.45120716094971 -14.02441310882568 -14.09079933166504 -10.26203632354736 -12.12062644958496 -14.14542770385742 20.0369815826416 21.88425064086914 22.59913444519043 16.26919937133789 5.765384197235107 -2.596404552459717 -6.921975135803223 -7.7259202003479 -8.513130187988281 -9.156466484069824 -7.832399368286133 -2.006499767303467 4.400502681732178 -3.357564926147461 -7.072220325469971 -3.132044792175293 -5.308005809783936 -9.698538780212402 -8.158881187438965 -9.47538948059082 24.7900562286377 24.57070159912109 22.47764778137207 15.59422969818115 5.557416439056396 -0.8392100930213928 -3.255009174346924 -2.43094801902771 2.518007516860962 1.311827421188354 -4.551904678344727 -7.921079158782959 -9.127832412719727 -7.31419038772583 -4.248980522155762 -9.331894874572754 -10.90885066986084 -9.801833152770996 -12.27042675018311 -14.81773281097412 19.06133079528809 18.92216873168945 17.74175834655762 13.92116832733154 6.478623390197754 -0.1854871809482574 -4.166169166564941 -6.711711883544922 -8.350668907165527 -11.22728061676025 -12.57486915588379 -11.55605030059814 -10.069899559021 -4.730217456817627 1.977546453475952 1.628638982772827 0.5441478490829468 -1.782336592674255 -4.968446731567383 -3.952256441116333 -8.781754493713379 -6.759359359741211 -2.638554811477661 1.034084558486938 1.047808289527893 -1.047583699226379 -1.839722275733948 -1.76888370513916 -1.470815420150757 -3.207891941070557 -3.524168729782104 -0.7099326848983765 6.27788257598877 1.46797239780426 -2.931539535522461 -0.8624012470245361 4.868256568908691 0.4229905307292938 7.099373817443848 13.32423877716064 -5.042667865753174 -3.386234998703003 -0.7758886218070984 3.584923028945923 4.317422389984131 0.7304357290267944 -3.478339195251465 -5.022218227386475 -6.705511093139648 -5.960153102874756 -3.308512449264526 1.907798409461975 9.045369148254395 11.85012817382812 4.949860095977783 2.548784494400024 0.1815174371004105 -0.3121159374713898 -3.081512928009033 -2.043085336685181 -10.00387477874756 -8.376090049743652 -5.489814281463623 -2.673295497894287 -2.706565618515015 -4.76490306854248 -6.262611389160156 -6.1615891456604 -6.334480285644531 -7.062235355377197 -5.906555652618408 -3.624308109283447 0.3987578749656677 2.333470821380615 5.59135913848877 11.14741516113281 13.07797622680664 14.15965270996094 12.96971893310547 9.687982559204102 -8.870566368103027 -7.033083915710449 -3.011588096618652 -2.033329963684082 -4.182293891906738 -5.991842269897461 -7.221319198608398 -7.11468505859375 -6.198483467102051 -1.445847749710083 4.332780838012695 5.920451164245605 1.791638135910034 -0.9192991852760315 -0.6911481022834778 2.258736848831177 4.750698566436768 9.587289810180664 13.54182052612305 12.53007125854492 20.79511642456055 23.35627174377441 24.30972671508789 17.90277862548828 7.48461389541626 -1.146560668945312 -7.041982173919678 -9.264655113220215 -10.66538238525391 -11.62015533447266 -11.51129245758057 -9.146036148071289 -4.666460514068604 2.427054405212402 -4.869124412536621 -6.552189826965332 -2.362501859664917 -5.024530410766602 -5.366015911102295 -7.038678169250488 14.0546178817749 13.9150915145874 14.14274883270264 13.53974151611328 9.619218826293945 5.328763484954834 1.850947737693787 -0.3509775102138519 -1.30689525604248 -1.373533129692078 1.655947208404541 3.027402639389038 -1.076544284820557 -5.540617942810059 -8.736478805541992 -9.839535713195801 -10.05195426940918 -12.88014316558838 -14.11404037475586 -11.86374855041504 6.266130924224854 7.286652088165283 8.275715827941895 7.255132675170898 2.327090978622437 -1.601768732070923 -3.234281778335571 -3.222900390625 -2.022616863250732 1.56577479839325 6.710108280181885 7.885100841522217 3.162348508834839 -0.6525370478630066 -2.645117282867432 -4.06615686416626 -5.738631725311279 -6.695847034454346 -8.843130111694336 -12.01107025146484 6.828343868255615 4.459591388702393 1.198031544685364 0.7824835181236267 0.01672930084168911 -0.1440626829862595 0.5611345767974854 1.389024496078491 1.641718983650208 3.19788646697998 7.521622180938721 6.554508686065674 2.642773628234863 -2.729480504989624 -5.040643692016602 -5.397490978240967 -5.645934581756592 -3.751798868179321 -7.952482223510742 -6.131951332092285 17.15304946899414 19.70195388793945 22.30288124084473 21.63157653808594 14.24821472167969 6.653785228729248 2.391925811767578 1.300657868385315 3.07582950592041 7.480111598968506 7.815942287445068 1.615616321563721 -0.09025578945875168 -1.579151034355164 -13.20334815979004 -20.13413619995117 -22.47246360778809 -21.20928001403809 -21.59443473815918 -25.08847618103027 -0.2766841053962708 0.7652203440666199 3.130171060562134 7.014883518218994 7.574380874633789 3.860817909240723 1.275616645812988 0.5127306580543518 1.21248996257782 3.044691562652588 7.53275203704834 11.51608180999756 8.558302879333496 2.306163549423218 -4.646841049194336 -8.152456283569336 -9.874943733215332 -10.85867118835449 -11.62216091156006 -12.87253570556641 14.58757877349854 13.4433126449585 12.19839763641357 12.26298236846924 10.49035739898682 8.284884452819824 4.338857173919678 0.5772092938423157 -0.6892585158348083 -1.634074330329895 -0.3921059668064117 4.99318265914917 6.218422889709473 2.682348251342773 -2.457679748535156 -10.93043041229248 -17.28855323791504 -20.13235282897949 -17.7656307220459 -18.78745079040527 -10.75904750823975 -10.34540748596191 -8.902874946594238 -7.04743766784668 -6.985999584197998 -8.331351280212402 -9.549447059631348 -9.20896053314209 -8.697383880615234 -8.456084251403809 -6.940177440643311 -3.590844869613647 0.9863254427909851 4.681756019592285 6.73741340637207 9.360860824584961 15.0661153793335 18.28639030456543 22.07860374450684 21.61755752563477 -1.287543177604675 20.19104194641113 27.22828483581543 11.4342565536499 3.150161266326904 8.620709419250488 0.8991665244102478 -4.53799295425415 -0.4792215824127197 -4.391318798065186 -2.672147989273071 -4.932036399841309 -1.928362369537354 -2.832908391952515 -5.563168525695801 -5.543959617614746 -7.598354339599609 -8.501565933227539 -10.36492729187012 -10.89010524749756 28.71035003662109 22.4637393951416 13.87556266784668 7.381300449371338 2.60440468788147 0.1322620958089828 -1.652303576469421 -2.636790752410889 -3.067835569381714 -3.635971784591675 -4.209535598754883 -4.394295215606689 -5.017501354217529 -5.634757995605469 -6.221107482910156 -6.841684818267822 -6.968877792358398 -7.241861343383789 -8.560672760009766 -9.084414482116699 16.99798393249512 17.5201587677002 19.34952163696289 22.57324409484863 23.11054229736328 20.02192115783691 18.4974365234375 17.20974731445312 8.773975372314453 -1.464429020881653 -8.23919677734375 -12.56816387176514 -15.0216588973999 -15.69274139404297 -13.91776084899902 -13.68856430053711 -19.48722267150879 -22.30436134338379 -20.97488975524902 -20.69553184509277 27.11906242370605 26.69607734680176 21.31425476074219 15.05877876281738 6.812201499938965 -2.963446140289307 -5.781047821044922 0.01076712924987078 5.3713059425354 0.1437889188528061 -7.663357257843018 -4.606181621551514 -2.860592365264893 -1.989763140678406 2.831855773925781 -0.9180324673652649 -15.58075714111328 -20.32701873779297 -20.75848579406738 -21.90942764282227 3.131580114364624 4.151116847991943 7.434891223907471 14.36890983581543 10.43841648101807 2.083693265914917 -1.160747885704041 -1.785005331039429 -1.059820532798767 -0.8607094883918762 -0.582769513130188 -1.723235487937927 -3.144015312194824 -3.714138031005859 -4.502712726593018 -4.210123538970947 -4.773705005645752 -1.485553860664368 -4.113268375396729 -8.492809295654297 1.142902374267578 0.2453206330537796 0.8132816553115845 1.077951431274414 0.2023733705282211 -0.2459586560726166 -0.9695939421653748 -0.2864019870758057 -0.4226151704788208 -1.076228737831116 -1.368513584136963 -0.8243883848190308 0.3282999694347382 -0.7071506977081299 2.188615798950195 0.8555563688278198 -0.2733390927314758 -0.6857246160507202 -2.218570232391357 2.224181652069092 -4.687366008758545 -3.961490154266357 -2.036029577255249 -1.066571831703186 -1.939400196075439 -4.03884744644165 -5.074076652526855 -4.675766468048096 -3.516644716262817 -0.926347017288208 2.730309009552002 7.084615707397461 9.38873291015625 9.869900703430176 6.729549407958984 2.096508026123047 -0.7032226324081421 -0.9217782020568848 -2.307338714599609 -2.044742584228516 11.4772310256958 14.14109706878662 16.4000244140625 19.60442733764648 18.33625030517578 10.7554178237915 4.582533359527588 0.4301901161670685 -1.55649197101593 -1.721121788024902 0.7484422326087952 6.665191173553467 9.090088844299316 5.951194286346436 -3.117987155914307 -15.76199531555176 -23.76863288879395 -25.61515808105469 -22.60769271850586 -24.03303146362305 -9.588109970092773 -7.642099380493164 -3.05499267578125 0.8280278444290161 1.806826829910278 0.3249257504940033 -1.142592549324036 1.319003462791443 3.241925239562988 2.882942676544189 2.059044361114502 1.878607869148254 1.825798511505127 3.239100933074951 1.754096031188965 -0.5881785750389099 -1.347134113311768 1.969451427459717 0.5703395009040833 -0.3369859158992767 12.66843318939209 10.89885520935059 8.914315223693848 8.688826560974121 7.515252113342285 6.08191967010498 3.942771434783936 0.8813322782516479 0.1250016242265701 2.141575574874878 1.048773884773254 -1.684188961982727 -4.577215194702148 -5.879157066345215 -5.310585498809814 -7.62126350402832 -8.172539710998535 -9.055081367492676 -9.540971755981445 -11.06605529785156 14.38044357299805 16.05905532836914 18.22954559326172 20.40789794921875 17.77795791625977 10.21966075897217 4.592190265655518 1.079554915428162 -0.6842128038406372 -0.04784240201115608 4.629171848297119 4.429327487945557 -3.822072744369507 -9.87629508972168 -12.38427352905273 -10.87876892089844 -13.48275279998779 -19.87479400634766 -20.19206809997559 -20.56173133850098 6.231515884399414 6.763469219207764 7.120380401611328 8.545663833618164 11.11819839477539 14.47330570220947 16.16985893249512 15.21030807495117 14.09131622314453 14.76974773406982 10.56958389282227 0.7008793950080872 -6.040367603302002 -11.09020519256592 -12.95589542388916 -11.16558742523193 -14.11951065063477 -21.47142028808594 -24.59536933898926 -24.32587623596191 -1.399533629417419 -2.759334802627563 -1.206623673439026 2.628692150115967 6.057358264923096 5.514919757843018 4.017879009246826 3.717763900756836 1.340534090995789 0.4898809194564819 3.70012378692627 6.209922790527344 6.258806705474854 1.218298554420471 -0.7110701203346252 -0.6941475868225098 -7.32550573348999 -10.32217979431152 -8.729896545410156 -8.005890846252441 -1.364186406135559 0.6892449259757996 2.111026048660278 2.881333351135254 2.59060263633728 1.091035604476929 0.8035702109336853 0.8664032816886902 1.760137796401978 2.011093378067017 1.090478301048279 0.6154927015304565 -0.3025144636631012 -0.01897144503891468 -0.5883193612098694 -1.117183089256287 -2.287424564361572 -2.428406238555908 -3.735827922821045 -4.667580127716064 20.36409759521484 17.32998275756836 11.80078315734863 5.576584815979004 0.8480595350265503 -1.597505927085876 -2.543995141983032 -1.69214129447937 -0.8085401654243469 -0.5264999270439148 -1.4205482006073 -3.235416650772095 -3.984282255172729 -3.856939554214478 -3.221519470214844 -4.666608810424805 -5.838024139404297 -5.908698081970215 -8.023261070251465 -8.595511436462402 16.18913459777832 17.06760025024414 20.63652610778809 22.2095890045166 16.08213233947754 9.59947681427002 6.996028900146484 10.29943943023682 10.80450630187988 1.22305703163147 -7.348905086517334 -11.50436687469482 -13.15321826934814 -12.35775375366211 -7.259929180145264 -13.12864780426025 -18.68785095214844 -16.23081398010254 -10.97327899932861 -20.46272468566895 21.30654335021973 19.6473388671875 16.74763488769531 10.71519088745117 1.520034909248352 -1.734574675559998 1.145763278007507 3.737959623336792 3.766458034515381 -0.1733606904745102 -3.032854557037354 -3.319661140441895 -4.079640865325928 -1.864676475524902 1.188229441642761 -1.161325573921204 -8.75430965423584 -13.42594337463379 -19.23901748657227 -22.98978805541992 11.30935382843018 11.17526054382324 11.35609149932861 13.02991199493408 15.93793869018555 17.72149658203125 14.10339260101318 11.81316184997559 13.56808185577393 14.03435325622559 5.160505294799805 -2.227959156036377 -4.986024379730225 -4.943968296051025 -9.246584892272949 -18.56520462036133 -24.83685111999512 -26.05096435546875 -22.70619201660156 -25.64580917358398 17.83202171325684 20.10625839233398 22.41818809509277 16.9942455291748 7.129134178161621 0.8414992690086365 -2.375513792037964 -2.780144214630127 -1.09681224822998 3.245035171508789 9.03863525390625 7.081283092498779 3.617681264877319 -1.524614214897156 -9.938373565673828 -11.42700386047363 -13.37421226501465 -18.84647560119629 -21.83783149719238 -25.1030158996582 18.22967720031738 16.94033622741699 16.67654609680176 15.64188575744629 12.75177764892578 9.681244850158691 6.748854637145996 2.111249446868896 -0.9165295958518982 -4.03234338760376 -6.80380916595459 -4.37997579574585 -2.689070701599121 -0.6527182459831238 -1.392222285270691 -6.700642108917236 -13.7589635848999 -16.76444053649902 -18.93343925476074 -21.75741958618164 10.93580722808838 10.86438083648682 11.08986282348633 12.94742012023926 14.59217834472656 13.39250564575195 9.137676239013672 4.842693328857422 0.5263168811798096 -3.264991760253906 -4.740993022918701 -2.70852255821228 0.8826950192451477 1.499852299690247 -4.863853931427002 -8.882965087890625 -8.598028182983398 -10.94161319732666 -19.99942588806152 -26.71098899841309 10.01206684112549 9.365582466125488 8.482909202575684 8.349141120910645 9.704506874084473 12.20029926300049 11.63984107971191 8.315208435058594 3.680938005447388 -0.0171410758048296 -1.145117163658142 2.165038108825684 4.500191211700439 -1.831978321075439 -7.96696949005127 -9.694586753845215 -10.75667762756348 -16.64505004882812 -21.10502815246582 -19.2531623840332 -4.796628475189209 -4.921994209289551 -0.4119044244289398 4.893801689147949 7.154260635375977 5.382511138916016 1.61054003238678 0.1038698554039001 1.121608138084412 1.418224215507507 1.764253973960876 -0.561644971370697 0.3406071960926056 0.630460262298584 -3.516857862472534 -2.70116138458252 -5.228322505950928 1.573094367980957 -3.322217464447021 -0.5325049161911011 7.903432846069336 7.235350608825684 7.972126007080078 12.60205459594727 16.63029861450195 11.10814094543457 1.690403342247009 -3.981684446334839 -7.746416568756104 -8.574784278869629 -6.819003105163574 -0.5224794745445251 3.180744647979736 -4.070266723632812 -6.312726020812988 -5.026178359985352 -3.13036322593689 -6.768670558929443 -5.226391792297363 -10.14357852935791 21.68161773681641 22.41369438171387 22.62211990356445 16.99417495727539 8.209881782531738 3.175555229187012 4.759945392608643 9.09013557434082 7.943402290344238 -2.082306385040283 -8.931857109069824 -11.48226642608643 -12.59692096710205 -10.90591716766357 -4.027942180633545 -2.747084856033325 -6.435141563415527 -16.4090747833252 -21.74642181396484 -19.52561187744141 -6.173064708709717 -5.96327543258667 -3.528045177459717 -0.3217867910861969 0.3633228242397308 -0.6122471690177917 -0.1745707094669342 1.680195212364197 1.112641215324402 0.3470962941646576 1.041796803474426 0.9683806896209717 0.7797499895095825 -1.420798778533936 -1.712903261184692 1.571486592292786 0.6065927743911743 0.701576292514801 2.839795112609863 7.894057750701904 -8.597162246704102 -7.984790802001953 -5.985772609710693 -2.301552534103394 -0.8695802092552185 -2.926555156707764 -2.002375841140747 0.8874312043190002 4.681686401367188 9.215790748596191 10.62390995025635 10.0728120803833 7.823439121246338 4.98911190032959 1.718626737594604 1.186076521873474 -1.911845803260803 -5.02608585357666 -6.099943161010742 -7.49322509765625 -11.03237056732178 -9.77393913269043 -6.086191177368164 -2.263701200485229 -1.132107377052307 -2.090561628341675 -3.159245014190674 -1.787237405776978 -2.234658241271973 -2.219777584075928 -0.3450060784816742 1.882188200950623 5.150389671325684 2.117553949356079 1.246603846549988 3.462316036224365 4.104862213134766 5.533912181854248 7.81689453125 10.81007194519043 20.06258392333984 20.52496910095215 19.70958709716797 13.23114490509033 3.873177289962769 -3.501782417297363 -7.625485420227051 -9.193585395812988 -9.619814872741699 -10.10238075256348 -8.03574275970459 -3.638236284255981 -1.561076641082764 -6.777949810028076 -8.744353294372559 -5.159697532653809 -4.548657894134521 -4.305416584014893 1.765290260314941 3.647428512573242 -12.62337303161621 -10.77267169952393 -6.713631629943848 -2.356719493865967 -0.9545043706893921 -1.314618349075317 -1.204311609268188 0.9519127607345581 2.529060125350952 3.738895654678345 3.543590068817139 3.480704307556152 3.770825386047363 3.900096416473389 2.935614585876465 3.731853485107422 2.773390293121338 1.36874794960022 1.86901843547821 1.346112608909607 4.859148979187012 5.375709056854248 6.929606437683105 9.178874969482422 12.43757247924805 15.39855480194092 16.32788467407227 15.39450454711914 14.55756664276123 10.45544242858887 1.292600035667419 -6.265548706054688 -10.38967323303223 -13.38938808441162 -12.95211219787598 -8.890670776367188 -11.38747406005859 -18.68959045410156 -16.29861831665039 -13.9443883895874 15.77815341949463 18.25551414489746 22.3198356628418 21.42018890380859 11.7012882232666 3.024410963058472 -1.752663969993591 -3.756941318511963 -4.067193984985352 -3.439844846725464 1.261776924133301 9.334712028503418 6.984341144561768 4.010790824890137 -7.639993667602539 -16.15771102905273 -17.59549903869629 -14.57194137573242 -20.85239601135254 -24.25683212280273 -11.05942916870117 -10.00147533416748 -7.447062492370605 -5.632204532623291 -5.473527908325195 -7.793481349945068 -8.01336669921875 -6.400827884674072 -4.194078922271729 0.3109219372272491 6.442381858825684 10.91819858551025 12.22136497497559 11.84522342681885 8.797990798950195 6.20741605758667 3.313423871994019 3.266344547271729 1.671919465065002 1.020260572433472 8.519640922546387 8.289227485656738 8.995603561401367 8.742317199707031 4.436429977416992 0.6413780450820923 -3.61502742767334 -6.392239093780518 -7.133174896240234 -4.442526817321777 0.1373001486063004 5.341552734375 7.185813903808594 0.8366307020187378 -0.4659213125705719 -4.405711650848389 -7.075875759124756 -7.335079193115234 -4.504730701446533 -7.755612373352051 18.84737586975098 20.82525444030762 25.05878639221191 27.53649711608887 21.91413116455078 18.37550354003906 16.05982971191406 7.565887928009033 -2.314254999160767 -9.414538383483887 -14.84871006011963 -17.89739799499512 -19.03853416442871 -19.49631309509277 -18.20376014709473 -14.88103485107422 -7.449466705322266 -5.842984676361084 -10.70525550842285 -16.09100914001465 11.17381763458252 11.73581600189209 12.76785087585449 16.95885848999023 22.25809288024902 22.01443481445312 17.35465240478516 15.91978549957275 9.558157920837402 -1.782183408737183 -10.19282150268555 -16.16479110717773 -19.70077705383301 -20.4652042388916 -19.63494682312012 -19.72922706604004 -13.54111289978027 -3.357020139694214 -3.942026138305664 -11.23134994506836 8.913291931152344 7.96657133102417 8.525087356567383 10.92004871368408 15.7230863571167 13.53544330596924 6.278426647186279 1.89404833316803 -0.3686396181583405 0.07206964492797852 5.371940135955811 6.633976936340332 -2.771955728530884 -7.922903537750244 -7.518352031707764 -4.765822410583496 -13.7933874130249 -18.73945236206055 -15.21298122406006 -14.74051380157471 3.402238130569458 4.38342809677124 7.372255325317383 7.728855609893799 4.227364063262939 1.61199414730072 1.424536466598511 -0.6806030869483948 -2.745299577713013 -1.67626166343689 0.005013336893171072 -1.363193154335022 -3.862785816192627 -1.437924742698669 1.139387011528015 -1.961188077926636 -1.780180692672729 -2.933499097824097 -8.27347469329834 -4.580662250518799 22.56399536132812 25.54781913757324 26.45932197570801 22.04913330078125 13.09465980529785 5.449113368988037 1.858722686767578 2.901705980300903 5.779496192932129 7.843489646911621 3.12408971786499 -4.477516174316406 -11.33000564575195 -15.72787952423096 -16.83627700805664 -15.65703010559082 -15.02642059326172 -18.16428375244141 -19.84463310241699 -19.60749816894531 -7.236518383026123 -5.575801372528076 -1.055126547813416 1.858322262763977 1.063185453414917 -2.114048004150391 -2.252481460571289 -1.488677978515625 -1.624836921691895 0.3907175660133362 1.890889644622803 2.591307640075684 2.263744592666626 1.155809640884399 3.288020849227905 4.917746543884277 2.529228925704956 4.517363548278809 0.1589960306882858 -5.277845859527588 8.726991653442383 8.607576370239258 9.068562507629395 11.91340732574463 15.79548263549805 15.50794792175293 9.229578018188477 4.436100006103516 4.070641994476318 8.425225257873535 1.636174440383911 -7.47866678237915 -13.08150863647461 -15.89782428741455 -14.29007625579834 -10.30896472930908 -7.292512893676758 -9.358960151672363 -6.599284172058105 -13.10986042022705 -10.07052516937256 -7.769840717315674 -2.410463809967041 1.763256192207336 2.371699571609497 1.300210952758789 0.0592716857790947 -0.186667874455452 -0.1993192136287689 -0.3643225729465485 -1.058914184570312 -1.794434189796448 0.04385639727115631 0.3285703659057617 -1.676158308982849 -1.613530516624451 0.935849666595459 4.837431907653809 6.64939546585083 8.854628562927246 11.29299831390381 10.70684146881104 10.77766036987305 12.926344871521 17.35233306884766 17.8224925994873 12.74110794067383 8.971072196960449 12.31371593475342 9.791772842407227 -1.521692991256714 -9.37180233001709 -13.68000888824463 -16.40431022644043 -13.32993125915527 -8.885443687438965 -14.15606212615967 -14.12332820892334 -11.32181930541992 -21.90194702148438 21.67450141906738 24.1998233795166 22.05311012268066 14.11573123931885 3.138538122177124 -7.095758438110352 -12.6709098815918 -14.25389575958252 -16.23056602478027 -16.95135307312012 -16.02666282653809 -14.85798835754395 -13.61117744445801 -6.993234157562256 3.848437309265137 5.176148414611816 6.376491546630859 8.201635360717773 8.481925964355469 1.425205826759338 -4.474852085113525 -3.643330812454224 -2.98609447479248 -1.046510577201843 -0.6623164415359497 -2.156109809875488 -2.654155969619751 0.4314819276332855 0.6183124184608459 0.3206990361213684 -1.173453092575073 -1.984958529472351 6.207587242126465 4.192528247833252 1.175938129425049 -0.06426703929901123 -0.09673029184341431 1.695602059364319 0.2945472002029419 6.006087303161621 13.54265308380127 14.67825698852539 19.01576614379883 20.40329933166504 11.6596097946167 3.872746467590332 -0.1622317880392075 0.04457050934433937 3.785968780517578 8.226879119873047 1.124628901481628 -6.867735862731934 -9.734193801879883 -8.573418617248535 -3.713707685470581 -10.67591571807861 -13.52225685119629 -8.942417144775391 -13.65639305114746 -20.50613021850586 6.977321624755859 5.673982620239258 6.472606658935547 6.603614807128906 2.133017778396606 -1.350364208221436 -4.397219657897949 -4.135441303253174 -2.338057279586792 -2.390894174575806 -1.73834502696991 -0.1287206709384918 0.9391232132911682 -0.639868438243866 -1.114269733428955 -0.9667397737503052 -0.5924702882766724 -1.210771679878235 -2.727119445800781 -5.069387435913086 13.71279621124268 16.06346130371094 18.67594337463379 15.91226100921631 6.642357349395752 -1.123621463775635 -6.001998424530029 -8.210847854614258 -9.57009220123291 -10.36978054046631 -9.241696357727051 -6.490242958068848 -0.6061758995056152 6.642014503479004 2.946542263031006 1.705726623535156 -4.208385467529297 -11.19047355651855 -10.06715965270996 -5.22062349319458 13.87119483947754 13.60242462158203 14.81721782684326 18.39755249023438 20.40693092346191 18.47162246704102 16.14850425720215 16.64939308166504 11.51263618469238 1.507368922233582 -5.710821628570557 -9.225401878356934 -10.39441108703613 -9.04575252532959 -6.629664421081543 -14.44726371765137 -21.40112495422363 -21.92295837402344 -21.99299240112305 -24.61444854736328 18.04973602294922 20.38852310180664 23.28554534912109 19.01937675476074 8.903037071228027 1.795131683349609 -2.377401828765869 -3.543127298355103 -4.400113105773926 -4.381193161010742 0.9627353549003601 6.8584885597229 -3.112943172454834 -9.587831497192383 -8.428634643554688 -0.2614285349845886 -12.19017601013184 -16.7332592010498 -16.50801277160645 -17.73843383789062 2.935255527496338 2.494773864746094 5.048237800598145 6.060988903045654 1.051603078842163 -4.726632595062256 -6.469597816467285 -8.688765525817871 -9.144537925720215 -7.516429424285889 -3.910306215286255 3.390753269195557 7.961606502532959 0.7364627122879028 3.860669136047363 4.830472469329834 -0.413238525390625 2.586595058441162 2.328270673751831 -2.416172742843628 26.04530906677246 27.5455150604248 23.52222442626953 14.47762680053711 4.483986854553223 -5.616511821746826 -10.1148853302002 -11.20306301116943 -12.11391448974609 -13.48807144165039 -13.81072330474854 -11.41358947753906 -9.557857513427734 -2.865420341491699 4.820107460021973 -0.4135714471340179 1.190287351608276 -0.3344442248344421 -3.078560352325439 -8.074442863464355 28.64225387573242 30.34657669067383 30.42641067504883 24.92678070068359 19.48105049133301 16.29994583129883 10.3444766998291 2.106016635894775 -4.103388786315918 -8.274578094482422 -11.03090858459473 -13.73697662353516 -15.11685943603516 -15.48884677886963 -14.43652629852295 -15.05267143249512 -15.83790874481201 -15.75239944458008 -16.61796760559082 -17.1245002746582 10.48817825317383 10.52224540710449 11.68124771118164 15.42751312255859 17.92415237426758 13.7446985244751 7.455336093902588 4.198126316070557 4.725359916687012 9.119702339172363 5.170355319976807 -4.025290489196777 -9.422515869140625 -12.04949474334717 -10.01875972747803 -7.474428176879883 -13.6494607925415 -15.38888072967529 -12.71372413635254 -25.71435928344727 -12.27659034729004 -11.32632350921631 -7.513252258300781 -4.939467430114746 -5.796271324157715 -8.138972282409668 -8.797755241394043 -8.534284591674805 -8.839288711547852 -6.626235961914062 -1.945817708969116 2.902139902114868 6.24564266204834 8.565464019775391 14.87910270690918 16.18206977844238 11.2841625213623 11.19836044311523 8.415910720825195 5.061402320861816 4.802523612976074 4.503732204437256 4.721674919128418 4.401204109191895 3.478729963302612 1.885169148445129 1.605275273323059 0.3432831168174744 0.2189076393842697 0.3075803816318512 -0.393260270357132 -0.4767297804355621 -1.419069886207581 -1.861791133880615 -0.1692178994417191 -2.115620136260986 -8.723348617553711 -3.536106109619141 -3.865071773529053 -3.707862138748169 -9.692647933959961 -9.22626781463623 -6.351307392120361 -3.786615610122681 -3.759792566299438 -5.117617607116699 -6.414169788360596 -6.056954860687256 -5.489849090576172 -5.054973125457764 -4.297509670257568 -3.701982021331787 -1.902263283729553 0.6614897847175598 0.6646522283554077 4.08777379989624 8.500331878662109 14.32246971130371 19.52342224121094 23.0917854309082 9.605265617370605 7.917129039764404 5.450119972229004 4.660484313964844 4.718952655792236 2.371891975402832 0.5677677392959595 -0.2095966786146164 -0.03304304182529449 0.3723271191120148 1.293834447860718 1.160353064537048 -1.004828691482544 -1.290224671363831 -3.274217844009399 -9.903040885925293 -4.364231109619141 -5.654353141784668 -5.75820779800415 -6.626378059387207 10.65970611572266 9.201120376586914 7.679224967956543 8.658510208129883 6.842851161956787 5.400555610656738 5.745941638946533 6.045200824737549 4.292452335357666 -1.631278038024902 -4.247810363769531 -6.408622264862061 -9.948398590087891 -10.30978107452393 -8.69011116027832 -4.600172519683838 -4.262642860412598 -4.857944488525391 -4.076342582702637 -5.49245548248291 20.01477432250977 20.90167808532715 21.28337287902832 17.17258262634277 9.099832534790039 1.560136675834656 -2.533341646194458 -3.835709571838379 -3.838943958282471 -1.908662796020508 3.497523546218872 2.40043830871582 -6.495970726013184 -11.22317028045654 -12.49804592132568 -8.614226341247559 -6.507180690765381 -13.84256553649902 -14.25671768188477 -10.37580490112305 20.80282783508301 23.01670265197754 25.23017692565918 22.06847763061523 13.34460544586182 6.587434768676758 4.035947799682617 6.107962131500244 9.89378833770752 5.313068866729736 -3.524396657943726 -8.768362045288086 -10.99186611175537 -8.75698184967041 -7.31260347366333 -15.89384841918945 -20.20448684692383 -19.49742317199707 -20.49799346923828 -20.95304489135742 1.112135291099548 1.679536700248718 2.138391733169556 3.410985469818115 3.71178412437439 2.930932998657227 3.283352375030518 3.969638347625732 2.084598541259766 -1.426822900772095 -0.8856951594352722 1.016344308853149 5.128527641296387 0.4168203175067902 -2.394213676452637 -5.627807140350342 -6.498308181762695 -3.880506992340088 -3.405381679534912 -6.764309406280518 16.84527778625488 20.15522956848145 23.35427474975586 17.54995727539062 6.320985794067383 -1.148457288742065 -6.488667488098145 -9.401909828186035 -10.0902624130249 -10.98797225952148 -9.937409400939941 -6.472338199615479 -0.03792007267475128 5.83006763458252 0.3465135395526886 1.962833046913147 -5.747587203979492 -8.713689804077148 -6.595053672790527 -16.74385452270508 -0.175922691822052 -0.3392089903354645 3.446411609649658 8.461982727050781 8.435442924499512 4.178000450134277 2.031186580657959 0.7055367827415466 -1.929324507713318 -1.186627388000488 3.413535594940186 6.633113861083984 1.712199330329895 -4.988245964050293 -5.607166290283203 -3.031121015548706 -3.457066297531128 -4.790519237518311 -4.364737510681152 -9.147473335266113 22.29063034057617 23.97075843811035 23.27596282958984 17.90572929382324 9.348537445068359 1.87749969959259 -2.474119186401367 -3.170991182327271 -0.9640589952468872 3.555204391479492 4.53749942779541 -2.077203035354614 -8.870077133178711 -10.92167282104492 -10.11583614349365 -8.117061614990234 -6.369678974151611 -12.51077938079834 -20.21393585205078 -20.9564323425293 -3.057344198226929 -2.8087317943573 -1.093109250068665 0.469587653875351 -0.1794872730970383 -2.173644065856934 -4.259597301483154 -5.188438415527344 -4.757630348205566 -3.20599627494812 1.229697227478027 4.462307929992676 4.061110019683838 1.625710129737854 -0.1563905477523804 -0.552192211151123 -1.765473604202271 1.74962592124939 6.205678462982178 9.394316673278809 19.61542320251465 21.94364738464355 19.86596870422363 11.82929134368896 2.523934125900269 -6.111340045928955 -10.21962261199951 -10.33879566192627 -11.057861328125 -12.24213790893555 -11.36732196807861 -8.627589225769043 -3.538101673126221 6.064846992492676 4.739538669586182 3.149100780487061 -1.811686992645264 -6.242119312286377 -4.583901882171631 -3.591279745101929 29.43381309509277 32.87830352783203 29.73860168457031 20.80992889404297 16.40338325500488 16.22147178649902 6.522161483764648 -6.435578346252441 -10.2713737487793 -12.00178813934326 -12.49606037139893 -13.68628406524658 -14.64797782897949 -13.60736560821533 -4.027771472930908 -6.029695987701416 -10.59019088745117 -16.03215599060059 -16.22187995910645 -15.95952415466309 -7.01591157913208 -5.715380668640137 -1.626675963401794 0.9221866726875305 0.4081452786922455 -1.005972504615784 -2.755638122558594 -2.554766178131104 -2.080392122268677 -1.745342969894409 -1.008216738700867 -2.322623014450073 -3.847446441650391 -5.072258949279785 -3.880792617797852 0.07016272842884064 1.717446208000183 7.208227157592773 12.95217037200928 17.35307312011719 5.477029323577881 8.173159599304199 6.422657012939453 5.341064453125 3.062849521636963 2.45807409286499 1.54998517036438 0.3937896192073822 -1.357647180557251 -3.189165353775024 -3.871724367141724 -3.134510040283203 -0.3495767116546631 2.917126178741455 -2.330762624740601 -6.090649127960205 -4.970141887664795 -0.4822643101215363 -5.075662136077881 -4.943630695343018 12.5955982208252 13.77890014648438 18.30307388305664 21.59243965148926 14.85214996337891 7.433459281921387 4.869880676269531 8.15217113494873 8.695764541625977 -1.678695559501648 -9.385774612426758 -13.83348846435547 -16.42182159423828 -15.39605617523193 -11.6067943572998 -6.948153495788574 -11.98177719116211 -11.80886459350586 -4.334839820861816 -6.877176284790039 1.419307231903076 1.524868726730347 1.362967014312744 2.714002132415771 3.082342386245728 1.285038352012634 0.648038923740387 -0.5841737985610962 -1.618401765823364 -1.045000791549683 3.433628559112549 5.883842468261719 5.38477897644043 2.516360521316528 2.645832300186157 2.330636024475098 -1.273251533508301 -4.437887668609619 -10.03049468994141 -15.24242782592773 21.17899703979492 21.63118171691895 16.4135684967041 9.217244148254395 0.1791206747293472 -7.232132911682129 -11.07520771026611 -11.30471801757812 -11.98587226867676 -12.85896110534668 -10.89315414428711 -8.924420356750488 -3.650354862213135 6.884785652160645 3.042017459869385 3.568992137908936 4.011132717132568 1.915784358978271 3.316825866699219 -13.43481922149658 20.54770851135254 22.19759368896484 23.21295928955078 18.93502616882324 11.36981678009033 6.030840873718262 3.26379132270813 -3.391864776611328 -12.71049308776855 -19.66250610351562 -20.27547454833984 -17.38802528381348 -14.33404541015625 -8.270648956298828 -0.3982932269573212 0.6727895736694336 2.271696805953979 -2.144125938415527 -3.110556364059448 -6.816196918487549 6.310121536254883 6.333037376403809 8.804222106933594 13.71268939971924 13.97992420196533 6.189701557159424 0.2391342967748642 -3.585678100585938 -5.816271305084229 -6.397223472595215 -4.444539546966553 0.8361324071884155 7.133593082427979 1.170412182807922 -2.234095573425293 -0.8191328048706055 -7.236052989959717 -11.23121070861816 -10.80379390716553 -12.14094734191895 7.451253414154053 6.149855613708496 7.256801605224609 10.89402389526367 15.34398365020752 12.79841899871826 8.768499374389648 8.579646110534668 11.06977462768555 6.04635763168335 -2.637142658233643 -7.933014869689941 -11.1741943359375 -10.79344844818115 -6.221822738647461 -9.319869041442871 -15.19604015350342 -13.38976001739502 -7.046983242034912 -10.64634418487549 -0.2915470004081726 -0.7367169857025146 0.7309360504150391 5.500640869140625 8.343731880187988 8.284258842468262 9.765144348144531 10.31025981903076 9.563140869140625 5.090346336364746 -0.7062538266181946 -4.646887302398682 -6.757493495941162 -7.82038402557373 -6.03977632522583 -5.030092239379883 -6.922825336456299 -7.286518096923828 -4.939605712890625 -6.410363674163818 21.00883674621582 22.91725540161133 26.21879386901855 24.0670337677002 15.62715911865234 11.73959064483643 13.444091796875 13.58902359008789 3.867225170135498 -5.15926456451416 -10.71269702911377 -13.78102779388428 -14.35583972930908 -10.86686515808105 -8.147103309631348 -16.44315338134766 -18.02453994750977 -17.01098823547363 -17.99375343322754 -19.98375701904297 10.03453826904297 6.773412704467773 2.505077123641968 0.5299304127693176 -0.4764107167720795 -1.488977313041687 -1.522027969360352 -1.135879874229431 -2.537898302078247 -3.037395715713501 -2.972354173660278 -0.9401606321334839 2.725913524627686 2.007568597793579 -1.263015031814575 -2.720503091812134 -2.706114768981934 -1.326903939247131 -2.594584703445435 0.1457876712083817 10.30598449707031 9.680682182312012 12.30059432983398 16.63021087646484 15.71973133087158 9.227455139160156 4.790554046630859 5.183098793029785 9.694279670715332 7.656355381011963 -1.202949047088623 -6.134037494659424 -7.703773975372314 -6.95940113067627 -10.068359375 -15.56697845458984 -16.69293975830078 -10.67906761169434 -8.995759963989258 -17.18567848205566 10.33647441864014 11.13605403900146 14.50987720489502 19.55765533447266 15.32199859619141 5.841301441192627 0.2834679484367371 -1.302920937538147 -1.170873641967773 1.614076137542725 7.350321769714355 4.059854984283447 -3.76279091835022 -6.356240272521973 -5.494593620300293 -11.70594692230225 -16.66755294799805 -15.301513671875 -9.931950569152832 -18.31670570373535 6.665878772735596 5.287078380584717 6.604174613952637 11.24390697479248 15.73708820343018 10.88919353485107 3.615051031112671 1.545713543891907 1.317800402641296 5.003365993499756 9.209177017211914 0.2331276834011078 -5.380549907684326 -6.400966167449951 -3.573290348052979 -9.712291717529297 -15.60323524475098 -14.45553874969482 -8.61473560333252 -13.61093235015869 24.84246444702148 24.72958183288574 25.05094337463379 18.6519775390625 11.2672643661499 8.92552661895752 10.56259918212891 10.60634136199951 2.62476110458374 -5.334508895874023 -11.0812406539917 -13.20625686645508 -15.02491188049316 -13.65923976898193 -6.694888591766357 -2.787519216537476 -15.76016235351562 -19.30805969238281 -18.20397186279297 -16.20072174072266 19.58020210266113 22.63994979858398 24.85937690734863 23.73339080810547 16.40652084350586 8.655902862548828 2.692973136901855 -0.9732272624969482 -2.432784557342529 -1.183987140655518 2.202678918838501 2.898808002471924 -0.6551418900489807 -7.756970405578613 -15.51250839233398 -18.82013511657715 -18.30494499206543 -16.93642044067383 -20.15601921081543 -20.93766784667969 -1.255172252655029 -0.3113114833831787 0.7072728872299194 4.946125030517578 19.29331970214844 20.6010856628418 3.340485334396362 -2.18834114074707 0.2548024952411652 5.804544448852539 -0.177555114030838 -3.612357378005981 -5.060549736022949 -5.611148357391357 -4.149014949798584 -6.123706817626953 -6.200331211090088 -7.116665840148926 -6.722080707550049 -6.419397830963135 21.05316352844238 23.36001014709473 24.36540222167969 21.45010948181152 12.48474502563477 4.082840919494629 -1.245608806610107 -3.183476448059082 -2.304561138153076 0.5786012411117554 3.783148288726807 -1.133320569992065 -8.830019950866699 -13.8347692489624 -15.2947244644165 -13.6972770690918 -10.44550800323486 -8.296177864074707 -14.21250057220459 -18.6800651550293 10.37947082519531 10.20931816101074 8.271500587463379 5.467775344848633 -0.09628541022539139 -4.205060482025146 -6.42449951171875 -7.845910549163818 -8.762962341308594 -9.111204147338867 -7.384249210357666 -4.592853546142578 -2.77894401550293 0.2429867386817932 6.057669639587402 8.652376174926758 3.84000301361084 2.198265075683594 -0.9337678551673889 -3.183626413345337 -4.15082836151123 -2.855858087539673 -0.4716212451457977 3.780704736709595 6.066000938415527 4.922677040100098 4.493431568145752 3.659519672393799 0.2725513577461243 -1.047417759895325 2.58400297164917 5.217532634735107 2.720312118530273 -2.818809747695923 -4.440462112426758 -5.8205246925354 -3.548867702484131 -5.631536960601807 -5.468313694000244 2.537501811981201 14.4602108001709 14.94652462005615 15.6305685043335 14.41653633117676 8.741317749023438 2.195253372192383 -2.3428635597229 -5.394208431243896 -7.140635967254639 -8.232874870300293 -7.09685230255127 -2.729194641113281 0.4225172400474548 -4.406015396118164 -8.054690361022949 -8.433924674987793 -4.002011775970459 -4.787050724029541 -4.803210258483887 -3.389398813247681 13.61625576019287 12.93839550018311 11.99118518829346 11.97700977325439 12.76942539215088 13.99450397491455 11.76297855377197 9.01258373260498 8.550151824951172 9.896116256713867 8.040699005126953 0.7377694845199585 -7.386106967926025 -12.57392978668213 -16.43876647949219 -20.54883193969727 -23.81130409240723 -20.06807708740234 -11.72089576721191 -12.73915195465088 18.25611686706543 19.3969898223877 19.66707038879395 14.32180213928223 5.810091495513916 -0.9553779363632202 -4.524950981140137 -5.469868183135986 -5.026162147521973 -4.127743244171143 -0.8071671724319458 6.424685955047607 5.824182987213135 3.295158863067627 -0.7150189876556396 -6.60588264465332 -7.967678546905518 -13.18302345275879 -20.03922080993652 -23.57401275634766 23.75066947937012 23.80665588378906 22.9061279296875 19.15889549255371 12.9243803024292 7.81028938293457 3.232327938079834 0.7559596300125122 1.412768602371216 1.131664991378784 0.693674623966217 -3.000707864761353 -8.008969306945801 -9.435736656188965 -7.426898002624512 -8.683975219726562 -15.56129169464111 -21.17743873596191 -21.50063133239746 -22.78774833679199 22.20578575134277 19.86033058166504 15.79944515228271 12.16376686096191 5.56561803817749 0.7775504589080811 -1.959669709205627 -4.665484428405762 -6.331968307495117 -7.980122566223145 -8.627533912658691 -5.214047431945801 0.1038874909281731 0.7415638566017151 -1.392701983451843 -2.967875957489014 -2.681667327880859 -5.498506546020508 -12.87279891967773 -17.02556037902832 23.0167236328125 19.66872024536133 14.46619701385498 9.354114532470703 5.886606693267822 3.548409938812256 3.291259050369263 4.87733268737793 6.359760761260986 5.53524923324585 0.712098240852356 -3.141013145446777 -6.328586578369141 -8.716710090637207 -11.64977169036865 -13.01816940307617 -12.47462844848633 -14.29913139343262 -14.66958713531494 -12.41888427734375 22.78421592712402 22.54104423522949 19.36458969116211 11.89761066436768 3.813448905944824 -2.766532897949219 -5.860476016998291 -5.352670192718506 -3.241155385971069 0.3529499173164368 4.590380668640137 2.886757850646973 -2.476957321166992 -3.389545202255249 -3.355114936828613 -9.570169448852539 -11.17313098907471 -9.408451080322266 -13.1599645614624 -18.4768180847168 6.077428817749023 5.613298892974854 6.019557476043701 7.465881824493408 10.75988101959229 14.1450366973877 12.55710601806641 7.738298892974854 5.433481216430664 7.246567726135254 8.792430877685547 -0.2265758216381073 -6.745157718658447 -10.20847797393799 -9.725765228271484 -5.989837646484375 -11.59928035736084 -17.44060897827148 -13.94773387908936 -15.96553516387939 11.88570117950439 13.69797992706299 16.69544792175293 19.03876113891602 13.65995407104492 6.49862813949585 1.090433359146118 -3.448119401931763 -4.899106979370117 -5.979784488677979 -4.574348449707031 0.5459050536155701 5.65796947479248 1.046589732170105 -0.6061590909957886 -4.254570960998535 -12.42788791656494 -14.78377151489258 -13.16948413848877 -25.67412757873535 9.669761657714844 12.5869779586792 16.10577011108398 19.31002998352051 18.1252269744873 11.59854888916016 6.249930381774902 5.650259494781494 8.786742210388184 9.47613525390625 -0.03960930928587914 -7.283413410186768 -13.13479423522949 -16.41493606567383 -16.53716659545898 -11.61318016052246 -8.986817359924316 -15.86849880218506 -16.58048629760742 -11.10048007965088 12.46806049346924 14.88292789459229 17.79672622680664 20.63623428344727 18.84663581848145 12.54423046112061 8.294511795043945 8.013032913208008 10.10925483703613 4.546423435211182 -4.235581874847412 -11.07094764709473 -16.6797046661377 -19.73879814147949 -20.18843841552734 -18.86830902099609 -11.96073627471924 -6.344791889190674 -9.577949523925781 -9.472785949707031 20.53796005249023 21.90321922302246 22.28560829162598 18.10272979736328 8.989124298095703 2.176859140396118 -0.5817242860794067 -0.287967324256897 3.112398862838745 6.86476993560791 1.833616614341736 -6.179459571838379 -11.48313236236572 -13.64754009246826 -12.71519565582275 -8.516919136047363 -12.03660202026367 -16.91633987426758 -14.81015586853027 -8.631259918212891 11.60680103302002 11.85505199432373 12.85512161254883 15.10396003723145 17.35493850708008 16.72762107849121 12.64882564544678 10.93340587615967 13.10458564758301 11.36492443084717 0.9490270018577576 -6.092689990997314 -10.05137157440186 -11.87186336517334 -11.79834461212158 -14.41411876678467 -21.47661399841309 -23.51333808898926 -19.09796714782715 -16.18795013427734 24.52836799621582 26.2111873626709 25.33324241638184 18.9857292175293 9.584904670715332 2.018861532211304 -2.465427160263062 -1.767440319061279 0.7104041576385498 4.801408767700195 3.829744100570679 -4.493820667266846 -10.97359275817871 -12.1612377166748 -7.233429908752441 -11.12522602081299 -18.05344200134277 -17.28647994995117 -11.52244853973389 -18.92131614685059 23.12882995605469 26.05768203735352 29.93949699401855 29.64876174926758 24.47180938720703 21.93432807922363 15.3261890411377 3.769094467163086 -4.600830554962158 -10.20814228057861 -14.23781299591064 -16.46170997619629 -17.13750267028809 -16.26701354980469 -14.19005107879639 -14.87963199615479 -15.83047866821289 -16.57930564880371 -16.80863380432129 -17.07507705688477 -0.5882477164268494 -1.531315445899963 -2.527407646179199 -2.305526971817017 -4.086747646331787 -5.959141254425049 -7.423610210418701 -8.374463081359863 -8.524413108825684 -8.100237846374512 -4.632142543792725 -1.661475300788879 2.979997158050537 6.70287036895752 7.188657283782959 8.806729316711426 8.659381866455078 7.952831745147705 7.556660175323486 5.867602348327637 24.30745506286621 22.4275951385498 20.73090553283691 15.5381326675415 8.56695556640625 5.672979831695557 0.8411679267883301 -8.708767890930176 -1.499181509017944 -0.1685007363557816 -4.014512538909912 -3.226223707199097 -5.55338716506958 -4.657928943634033 -0.351344496011734 -0.8989975452423096 -6.205326080322266 -16.60711860656738 -22.42523765563965 -23.76866340637207 5.180050849914551 6.041500568389893 6.860336303710938 8.956050872802734 13.32253074645996 14.6285514831543 9.409848213195801 1.849394202232361 -1.724948883056641 -3.098674535751343 -2.059240102767944 3.562844038009644 3.819305181503296 -4.527313709259033 -8.809619903564453 -8.658734321594238 -4.736572742462158 -10.68166732788086 -14.85742855072021 -14.47622585296631 15.80508041381836 15.63898086547852 15.88506317138672 16.13718795776367 13.47125720977783 8.73521900177002 3.636890649795532 -0.339383453130722 -5.560337066650391 -10.54215431213379 -13.62865257263184 -12.16235542297363 -8.602408409118652 -2.032558917999268 1.592831015586853 -1.978568077087402 -3.389095783233643 -8.284897804260254 -12.71383094787598 -11.66827297210693 26.18878746032715 26.02281951904297 23.38271331787109 17.19644927978516 8.949422836303711 2.020498752593994 -1.268647909164429 -0.2651183903217316 3.892852544784546 6.015614032745361 0.9221491813659668 -3.620756149291992 -5.481115818023682 -5.426047325134277 -10.27603435516357 -15.89168739318848 -16.77092552185059 -17.16012191772461 -18.59013938903809 -19.84072113037109 9.163393974304199 10.0832405090332 15.00693511962891 16.57118225097656 6.619165897369385 -1.479613900184631 -6.077719688415527 -7.751141548156738 -8.722336769104004 -9.041499137878418 -7.687320709228516 -2.570497751235962 6.751341342926025 1.899693846702576 -1.455192923545837 2.540307760238647 -4.263998985290527 -6.59299898147583 -3.977922677993774 -9.015023231506348 28.60880279541016 28.5955867767334 25.74451637268066 20.2282657623291 12.98462200164795 6.272964477539062 -1.270745754241943 -4.694289207458496 0.6216191053390503 -1.871351718902588 -7.325624465942383 -8.693500518798828 -10.72037982940674 -10.37525177001953 -5.04227352142334 -5.860230922698975 -11.15826511383057 -18.15434837341309 -19.03731918334961 -18.85279273986816 14.56285381317139 11.91119480133057 9.127939224243164 4.955471515655518 -1.859045147895813 -5.527246952056885 -7.291328430175781 -7.257721424102783 -7.936927318572998 -7.522019386291504 -5.699267387390137 -4.295718669891357 -6.046833038330078 -7.484413146972656 -5.929449558258057 -1.751848816871643 -0.4330388605594635 3.87393593788147 10.92901134490967 13.67445850372314 6.51925802230835 5.868056297302246 4.894417762756348 6.951455593109131 11.15463829040527 13.76603889465332 9.959395408630371 3.711484909057617 -0.4425097405910492 -0.1968532353639603 4.800868034362793 1.330580115318298 -8.130728721618652 -11.60699653625488 -9.227926254272461 -6.489060878753662 -3.754976272583008 -8.181388854980469 -8.191291809082031 -12.73445606231689 -12.38740634918213 -10.21508312225342 -5.852412700653076 -2.136318445205688 -1.759829044342041 -2.811165571212769 -2.869603157043457 -1.037415146827698 -1.620659232139587 -1.65497887134552 0.01288516260683537 0.5949336886405945 0.08965931832790375 -1.801554560661316 -0.9082702994346619 1.798803925514221 4.207374572753906 7.146528720855713 13.32305431365967 17.88145065307617 4.987802982330322 7.1372389793396 8.835489273071289 8.994952201843262 6.126404762268066 3.864791870117188 1.343653082847595 -0.4084400236606598 -0.4445983171463013 0.6985169649124146 4.246108531951904 1.664074182510376 -3.283009767532349 -6.344760894775391 -7.022064208984375 -4.365979194641113 -6.104038238525391 -7.224530696868896 -7.507492542266846 -5.194108009338379 0.8742403388023376 -0.1953169703483582 0.01760067977011204 1.549441933631897 1.768524527549744 0.8429960012435913 0.06463783234357834 0.3984734416007996 0.9265114068984985 0.9952888488769531 1.865400314331055 0.4303093552589417 -1.977151989936829 -1.565799593925476 -3.158882856369019 -3.664788722991943 -4.126267433166504 -2.768099069595337 1.686561822891235 6.036318302154541 15.46885871887207 16.0085620880127 19.44907760620117 22.42435073852539 16.41948509216309 10.26043224334717 9.094603538513184 13.04658317565918 10.87363147735596 1.354310631752014 -5.934009552001953 -8.36617374420166 -7.111842155456543 -4.493043899536133 -11.16856670379639 -15.53051280975342 -14.68656444549561 -18.99347114562988 -23.50125503540039 -24.61445045471191 6.603334426879883 5.585556983947754 6.647547721862793 10.17383575439453 15.25801277160645 12.96533489227295 6.642523288726807 3.414900541305542 2.982682943344116 5.721572399139404 10.22160625457764 5.013276100158691 -0.3243998885154724 -2.390127420425415 -5.324588775634766 -9.820241928100586 -13.70053958892822 -14.69600105285645 -18.41834259033203 -26.55594253540039 12.37706851959229 13.17043399810791 15.49816226959229 14.22429656982422 5.17231273651123 -1.316939234733582 -4.672329902648926 -5.044862270355225 -5.592236995697021 -5.459487438201904 0.3524168431758881 3.863491773605347 -3.27344822883606 -8.139137268066406 -7.895611763000488 -0.9601824283599854 -5.682562351226807 -8.069439888000488 -3.529186248779297 -5.022748947143555 21.58291053771973 21.0160083770752 18.84441947937012 14.6915922164917 8.501016616821289 4.111413955688477 0.1588360965251923 -0.6771475076675415 4.226070404052734 4.271119117736816 -0.1932351142168045 -0.9946475625038147 -2.206359386444092 -1.129950642585754 0.6167441606521606 -5.536649227142334 -18.86670303344727 -21.06279563903809 -22.50994682312012 -24.84271049499512 29.1742115020752 27.73128890991211 23.78449630737305 16.20070838928223 7.804171085357666 4.62283992767334 6.618515968322754 2.002690553665161 -8.812130928039551 -9.347260475158691 -5.028340816497803 -9.039759635925293 -12.13632678985596 -12.18521022796631 -6.66544246673584 2.907634258270264 -8.947727203369141 -16.14755821228027 -15.8516321182251 -16.68515396118164 17.52192687988281 18.48198127746582 19.56446838378906 15.87956047058105 7.895845413208008 1.758221983909607 -2.161993503570557 -2.602938652038574 -0.3607065081596375 3.439788341522217 0.8002592921257019 -6.168744564056396 -10.9293737411499 -12.32912254333496 -10.55030059814453 -8.129195213317871 -11.04506683349609 -9.589564323425293 -5.572501182556152 -5.902548789978027 37.90076065063477 34.45671844482422 29.74997520446777 23.66351890563965 17.73532676696777 11.17491054534912 3.756527423858643 -3.225162744522095 -8.056818962097168 -10.30983257293701 -11.20657444000244 -11.58444786071777 -12.20452213287354 -13.10412120819092 -13.9846076965332 -13.87027835845947 -13.75427722930908 -15.14665794372559 -15.70295429229736 -16.2874870300293 11.63211250305176 11.50481033325195 14.76960277557373 18.55362892150879 12.47855758666992 3.995025396347046 0.09296571463346481 -1.110555291175842 -1.018493294715881 2.535382747650146 6.585675716400146 -1.587183475494385 -9.116602897644043 -12.02014255523682 -10.08510303497314 -2.456929922103882 -9.525175094604492 -12.43867683410645 -9.930220603942871 -12.85867786407471 10.88762187957764 11.41915130615234 15.72104454040527 19.24050331115723 12.93360996246338 5.175852298736572 1.189446210861206 0.06192104518413544 1.09056031703949 5.328004837036133 12.79714488983154 7.848507404327393 6.693451881408691 -2.518177270889282 -12.68602848052979 -15.10251522064209 -11.06857490539551 -17.80665397644043 -24.3961009979248 -26.80878829956055 12.04619407653809 12.54083728790283 16.10873794555664 18.44397926330566 10.75066661834717 2.74236273765564 -2.459700584411621 -5.040712356567383 -5.865875244140625 -5.228089809417725 -1.838192462921143 5.844863414764404 0.5670551657676697 -6.815145492553711 -6.905168056488037 -0.4683799147605896 -10.44375514984131 -14.27520751953125 -10.82914924621582 -8.87531566619873 codec2-1.0.1/octave/train_all_speech_2.txt000066400000000000000000005702231412132000500204040ustar00rootroot00000000000000 -1.753433346748352 0.0942588597536087 1.379803538322449 2.072990655899048 1.876945614814758 0.3252158463001251 -0.4604800045490265 1.392059564590454 2.51468825340271 2.726940870285034 1.346734285354614 -3.432505130767822 -4.508626937866211 -1.071884870529175 5.149267673492432 -1.864397406578064 -3.520386695861816 -0.987758994102478 -2.191234111785889 0.9117975831031799 -2.740678787231445 -0.7557816505432129 1.221166849136353 2.429412603378296 1.121769070625305 -2.109005212783813 -3.207082986831665 -1.283277988433838 1.23898720741272 2.216673135757446 1.987575054168701 3.320088148117065 1.843206286430359 -0.6056810617446899 1.845213294029236 2.970349788665771 -4.477020740509033 -3.250196933746338 -0.660971462726593 -1.104741096496582 0.8637488484382629 -0.3699468970298767 -0.3692027628421783 1.025614023208618 1.526248335838318 -1.09520697593689 -4.278725624084473 -0.9699022769927979 5.088742256164551 2.842086315155029 -4.768896579742432 -1.872474551200867 2.118366479873657 -0.6976305246353149 1.185539484024048 3.40752124786377 -0.8052951693534851 -1.561945796012878 -1.542000651359558 0.2733546793460846 -1.144956588745117 -0.1454758495092392 0.08790544420480728 -0.02088651992380619 -0.8916767239570618 -0.1761495471000671 1.68149209022522 1.516316413879395 -0.8769388198852539 -1.930211663246155 -0.9893726110458374 2.492476224899292 2.351692676544189 -0.6615152359008789 -1.857846736907959 4.520679473876953 4.450479030609131 -4.987422466278076 -0.3564645349979401 -3.062129020690918 -3.01615047454834 -3.111889600753784 -2.866418600082397 -1.588913679122925 -1.588775634765625 -0.2449028044939041 0.9310630559921265 1.395220994949341 1.342057108879089 0.9993742108345032 1.242173075675964 1.108432412147522 1.414095878601074 1.482768416404724 1.385738372802734 5.528781890869141 -2.099417924880981 -2.41669774055481 4.861923217773438 -4.758462905883789 0.8427443504333496 1.215364336967468 0.09320242702960968 -0.2604077458381653 -0.5247545838356018 -1.967142343521118 -2.698567867279053 0.1313823461532593 3.205588102340698 1.998406291007996 -1.989334344863892 -2.173259258270264 -2.062813282012939 1.726672291755676 7.535818576812744 0.4266133308410645 2.029835939407349 -6.092190742492676 -2.910575151443481 1.473413348197937 -1.032739520072937 -0.9894866347312927 -1.526102423667908 -1.59191882610321 -0.2723776400089264 0.64164799451828 -0.8059507608413696 -1.191702723503113 0.09020776301622391 -1.060420274734497 0.3806934654712677 4.184435367584229 2.431001424789429 -2.035251140594482 -2.090354919433594 2.199838399887085 -0.3658998608589172 0.09143834561109543 -0.3407558500766754 3.283697366714478 0.09579634666442871 -0.5799037218093872 0.3841956555843353 1.487872123718262 1.979267477989197 0.7764622569084167 0.6211426854133606 1.777725577354431 5.853362083435059 5.018080234527588 -1.464226603507996 -3.236551284790039 -2.264443635940552 -3.471408367156982 -3.092434406280518 0.1645918339490891 -2.626392602920532 -3.916962146759033 0.76935213804245 1.724476456642151 -0.811269998550415 -1.995243072509766 -3.103911638259888 -2.199812650680542 0.8351114988327026 2.872645378112793 2.846061944961548 2.516482591629028 1.664498209953308 1.229272842407227 0.1869180500507355 -2.820144653320312 -3.284145832061768 -1.804192066192627 -0.4315302073955536 -1.891431331634521 -1.279873847961426 2.767906665802002 -2.973227739334106 7.675887107849121 -0.8152815699577332 -0.3413392305374146 0.4037869870662689 0.315345972776413 -1.540551543235779 -3.120832920074463 -3.166280269622803 -0.5739026069641113 3.500081062316895 0.5491748452186584 -6.07478141784668 -3.788755416870117 1.034412980079651 1.376763343811035 1.135967493057251 0.4547922611236572 1.173577547073364 2.110079526901245 7.675674915313721 -0.3079297542572021 -2.651316165924072 -1.908707976341248 -0.5694659948348999 1.551503539085388 3.206167697906494 2.564919948577881 -0.8488295674324036 -3.430304050445557 -2.325228214263916 -0.6848338842391968 1.187225103378296 0.8688910007476807 -0.08795472979545593 0.671331524848938 1.194888353347778 4.820491790771484 -0.899141788482666 -3.411194324493408 0.7041743993759155 0.04737823083996773 -1.544002294540405 -0.7887297868728638 0.9314983487129211 1.087976574897766 -0.4193236231803894 -0.006955572403967381 0.9089468717575073 0.4165940582752228 -0.6243113875389099 -2.085224866867065 -3.36680269241333 -1.14743971824646 4.429374217987061 8.18505859375 2.526922464370728 -1.439463257789612 -2.911975622177124 -1.292481660842896 0.02361198514699936 -2.883274078369141 2.72967267036438 1.223486185073853 -0.4147254228591919 -1.102556824684143 0.03947576507925987 1.598259210586548 3.364975452423096 1.16395115852356 -3.654291391372681 -4.9219970703125 -2.223340749740601 -1.48681640625 -1.157513499259949 -2.681891202926636 -2.685308933258057 3.31487774848938 7.715513706207275 -0.2770547270774841 0.8034194707870483 -1.348137140274048 -1.842585682868958 -1.539855480194092 -1.55155611038208 0.7617592215538025 2.24738073348999 1.404512166976929 -0.0482788160443306 0.2210453450679779 1.090998649597168 -3.461035966873169 1.544136762619019 -3.229188919067383 -2.070632934570312 3.600785732269287 -1.455200552940369 3.69648814201355 1.746862649917603 0.6004441380500793 0.08029398322105408 -1.796372890472412 -2.415617942810059 -3.211170673370361 -4.819873809814453 -3.206589937210083 1.787257552146912 4.948456287384033 -0.1977581977844238 -3.283747673034668 -1.607443928718567 0.65901118516922 -0.03758396208286285 -1.439054727554321 -0.6943122148513794 -0.1511005163192749 1.362555384635925 6.210984706878662 -0.5453330278396606 -0.01679189503192902 1.862467169761658 4.795656681060791 0.856853723526001 0.8676319718360901 1.264796376228333 1.778098940849304 2.750473976135254 2.78684401512146 1.633050799369812 0.5312818884849548 -0.5235286951065063 -1.18840754032135 -1.003754019737244 0.4010737836360931 -1.194388151168823 -2.923749446868896 -2.785791158676147 0.01484451070427895 -1.729824185371399 -0.3013865947723389 7.437404155731201 -8.671523094177246 -3.133574724197388 -2.42682409286499 -1.867851614952087 -1.267155647277832 -0.8527985215187073 -1.118702411651611 -0.0356421135365963 0.301592618227005 -1.012029647827148 -0.409947544336319 0.3539893329143524 1.103417873382568 3.380499601364136 5.894412994384766 3.340315341949463 1.212600350379944 3.397170066833496 1.995545506477356 -2.641837120056152 -6.213176727294922 -2.355335235595703 -2.020031929016113 -1.706264615058899 -1.858449697494507 -3.014138221740723 -2.368912696838379 -0.3175995647907257 0.9534608721733093 1.996512293815613 2.713643312454224 2.526366710662842 1.092188835144043 1.637070775032043 1.919391751289368 -1.441635847091675 -0.2470939606428146 4.631109237670898 -0.2607018053531647 -1.011650443077087 -0.867921769618988 -0.1634024679660797 0.7038992047309875 2.01164722442627 4.823482036590576 6.365779876708984 3.551002264022827 -0.9600869417190552 -0.7979612350463867 1.504276752471924 0.008344966918230057 -2.356373310089111 -1.682130813598633 0.8478856086730957 1.295838952064514 -0.7240107655525208 -1.516607999801636 -3.840235948562622 -3.183795928955078 -2.234462738037109 -3.653089284896851 -4.10896635055542 -2.948151588439941 -1.846358299255371 -2.215651512145996 -2.276339769363403 -1.934123635292053 -1.9860680103302 -1.519635796546936 0.09298322349786758 1.52109158039093 2.943732261657715 2.536495447158813 1.460915684700012 1.980175018310547 2.281753540039062 2.428494930267334 -0.2390885055065155 -0.3986181616783142 0.5407825112342834 3.68657374382019 0.3376611173152924 -0.405711442232132 -0.7594498991966248 -0.6338635087013245 0.9688994884490967 2.71795129776001 2.178635358810425 -1.594286561012268 -3.96287989616394 -4.945488452911377 -2.866297721862793 0.9431570768356323 1.468511581420898 0.7158414721488953 1.673624277114868 1.029506087303162 -1.533793449401855 2.920562267303467 3.113263368606567 -1.365842700004578 2.899140596389771 0.9370946884155273 -0.6385203003883362 -0.2824523746967316 0.4858080148696899 0.653084397315979 1.642471432685852 2.847016572952271 3.041836500167847 0.260204017162323 -3.388786315917969 -1.993575930595398 0.01249594613909721 -3.636595487594604 -4.419864654541016 -0.5688806772232056 0.259507417678833 3.263191699981689 -0.7724171876907349 -0.6007593870162964 0.3602983951568604 -1.103044390678406 -2.610003232955933 1.862635135650635 4.10805606842041 -0.6760388612747192 -0.2770002782344818 0.8007866144180298 -1.50946056842804 -2.143035650253296 2.251482009887695 -3.210285425186157 -1.534357666969299 -2.806710243225098 -0.4910678565502167 6.850430011749268 0.04701343178749084 -2.011737108230591 3.84626293182373 -1.754221439361572 -3.970570802688599 0.9034222960472107 1.601167321205139 -3.261712312698364 -1.454250574111938 2.371148347854614 -0.5763523578643799 -0.3183937072753906 -1.859842419624329 4.226692199707031 2.478902578353882 2.609435081481934 -3.968642473220825 -1.910259604454041 2.649215221405029 -0.3447525501251221 -0.3537707626819611 -0.1577663272619247 1.331998586654663 0.004331546369940042 0.9033505320549011 1.018759727478027 0.9994967579841614 0.1703789681196213 0.05728701502084732 0.7972038388252258 1.196253418922424 0.806815505027771 1.384194612503052 1.721873760223389 0.04775457829236984 -0.4318471550941467 1.117746472358704 -0.2524875104427338 -1.877697229385376 -0.3937424719333649 0.1000218093395233 -1.898982763290405 -2.84639310836792 -2.619985818862915 0.9135280251502991 1.203501224517822 1.668694376945496 2.154065847396851 2.527366399765015 2.730547189712524 1.689695358276367 -0.1636868715286255 -2.054582834243774 -1.985506534576416 0.1739869862794876 1.989100456237793 1.741321682929993 -0.1648613959550858 -1.175531029701233 -1.237800359725952 0.4519326388835907 -1.030008912086487 -3.706311941146851 -5.72545337677002 -3.142806529998779 -3.919329166412354 -4.734344959259033 -4.40484094619751 -2.063961505889893 -1.018884420394897 0.8597702383995056 1.255039572715759 1.6310213804245 0.6763664484024048 -0.5272673964500427 0.9387079477310181 1.663054347038269 1.33214795589447 1.244482755661011 1.056186676025391 2.961543798446655 5.027171611785889 4.088237285614014 -2.922294855117798 -0.9770626425743103 -0.4073547124862671 0.3676201403141022 1.642319798469543 3.005655288696289 2.641597747802734 1.796241283416748 -2.53751277923584 -6.613279819488525 -4.721647262573242 -2.995388746261597 -2.126639366149902 1.196971416473389 4.928654193878174 5.778659343719482 0.2262211591005325 -1.624743938446045 -3.515040397644043 -0.91311115026474 4.84783411026001 2.837055683135986 0.9031884670257568 -1.532898187637329 -2.502817392349243 -0.1501402705907822 3.225682258605957 3.147495031356812 -0.8131982088088989 -0.43022820353508 2.090200662612915 0.8426501750946045 -5.467745304107666 -5.644083976745605 -1.516536116600037 1.89213752746582 1.069879412651062 2.553152322769165 -0.253553569316864 -1.562990188598633 1.312758684158325 -0.5927649736404419 -1.844843864440918 -2.575576305389404 -3.442096948623657 -2.571449995040894 -0.9164751172065735 0.02997413277626038 0.4077724516391754 -0.122354082763195 -2.290364503860474 -3.182424068450928 -1.360231876373291 2.503585577011108 2.873739957809448 2.53493857383728 3.836205959320068 3.836267471313477 2.364410877227783 -1.161432385444641 1.673118233680725 2.856972455978394 2.492480278015137 2.231014966964722 0.7411325573921204 -1.052316427230835 -0.8533980846405029 0.671392023563385 0.6464994549751282 0.9309341311454773 -1.040181040763855 -3.618435144424438 -2.053068161010742 3.62058162689209 1.61152446269989 -6.782958984375 -1.981187582015991 2.699594736099243 0.1594014912843704 0.08959367126226425 -1.369579911231995 1.078739285469055 1.074744462966919 0.6718518733978271 0.5085514783859253 -0.09625278413295746 0.0615365207195282 0.8627645373344421 -1.188016176223755 -3.092968463897705 -3.108200073242188 -2.471059560775757 1.775631666183472 6.050312995910645 3.529508113861084 -1.648690223693848 -2.167469501495361 1.695204734802246 3.226016283035278 -2.882296323776245 -3.879907131195068 0.9792439341545105 1.214890956878662 2.308911561965942 3.733537435531616 3.540550231933594 0.3062601089477539 -4.126937866210938 -3.654101133346558 -0.9159884452819824 1.832683086395264 1.80902099609375 0.4586995542049408 -0.6427890658378601 -0.8560721874237061 -2.392578363418579 -2.416328191757202 -2.383878946304321 -0.3694500625133514 1.286453366279602 0.2878735959529877 2.423818826675415 3.007327318191528 2.135926485061646 -2.034657955169678 -5.461593627929688 -2.561244010925293 -0.338556706905365 -0.5013476014137268 -0.1401437968015671 -0.3544419407844543 0.3951407074928284 1.008994817733765 0.7905126810073853 0.305091917514801 0.9002846479415894 -0.148711159825325 1.587835788726807 3.022983074188232 -4.334061145782471 0.2968471646308899 -6.327876567840576 -4.028615951538086 -0.2255803793668747 1.545189738273621 -1.878235936164856 -3.734161138534546 -1.011298775672913 -0.5493985414505005 -2.806061983108521 -2.748118877410889 2.139888763427734 2.564397811889648 2.625416040420532 3.003743648529053 0.53402179479599 1.336577415466309 0.6078375577926636 4.079238891601562 2.18957781791687 2.68345832824707 2.581474304199219 2.36850380897522 1.43277370929718 0.2482245415449142 -0.1808166205883026 -0.8153743147850037 0.7429525852203369 2.223650455474854 1.142540693283081 -1.983848690986633 -2.907890558242798 0.9047016501426697 2.719773292541504 0.05290422588586807 -1.04272198677063 -1.639018297195435 -6.297164440155029 4.667632579803467 -2.044981002807617 -2.173316955566406 2.338831663131714 3.953107357025146 5.057451725006104 3.495959997177124 -0.01505088247358799 -2.239426851272583 -2.637377262115479 -4.052860260009766 -3.427762985229492 -2.303401470184326 -1.582272410392761 -0.2015602886676788 0.1802167594432831 0.9930737018585205 0.4057787954807281 -1.297936677932739 2.388148307800293 2.07930588722229 0.5604507923126221 -3.694672822952271 -0.06280031055212021 0.1822905689477921 0.9343177676200867 1.633650898933411 1.086728930473328 -0.9122570157051086 -1.499099731445312 -0.4103981554508209 0.7165676951408386 2.630934000015259 4.361100196838379 2.107539653778076 -0.9250072836875916 -0.702198326587677 -1.436064839363098 -1.212265729904175 -1.790579915046692 -5.674106121063232 -3.231900215148926 4.203548431396484 -0.9261225461959839 -2.652244806289673 -3.41820240020752 -1.213795065879822 2.22429633140564 2.756520748138428 0.2317240685224533 -1.048009157180786 1.010584354400635 -1.464856624603271 -1.315748929977417 -0.9065449833869934 -1.199864625930786 -0.5329930782318115 4.44901704788208 -3.004823446273804 -2.298711061477661 2.834484815597534 2.923709869384766 3.551576852798462 1.34647274017334 0.9438439607620239 0.707275390625 -1.848343014717102 -3.687234878540039 -2.206405401229858 -1.744781255722046 -3.352344751358032 -1.09133780002594 0.7478398680686951 0.4757425487041473 0.5614649057388306 1.034227967262268 0.8030547499656677 1.022857069969177 5.572185516357422 -2.217324495315552 -1.043362736701965 3.554798364639282 0.4213726222515106 -0.2160917222499847 0.07304821908473969 0.02678781189024448 0.7684974670410156 0.8867902755737305 -0.07795398682355881 0.3844016790390015 0.6891030669212341 2.269387006759644 2.06947922706604 -1.088860154151917 -5.27960729598999 -1.748061895370483 6.508728504180908 -1.883930563926697 -5.512304782867432 1.636713266372681 2.368702411651611 -1.225628852844238 -0.6492009162902832 -1.255194544792175 -1.302929759025574 -0.6579268574714661 -0.1076324284076691 1.711164236068726 3.384237051010132 2.538342952728271 1.231293678283691 -0.02371722273528576 -2.692868947982788 -5.822212696075439 -4.666101455688477 1.978023171424866 3.319245338439941 0.4231303930282593 -0.07671023160219193 -0.07308174669742584 1.972413301467896 0.9325659275054932 -0.8120441436767578 -1.279676198959351 0.1432122439146042 1.453585743904114 2.485038280487061 2.522484064102173 1.274455070495605 -0.998775839805603 -4.58380126953125 -1.029544472694397 6.014295101165771 5.2723069190979 -1.385550260543823 -3.730100154876709 -2.692431211471558 -1.094702959060669 -0.6503020524978638 1.181514143943787 -0.8170534372329712 -1.225354075431824 -0.8596006631851196 8.950066566467285 2.162154197692871 -2.465624094009399 -3.813029289245605 -0.3172167241573334 1.989170789718628 1.339954972267151 1.143736004829407 -0.6551546454429626 -1.059598922729492 0.3803310394287109 3.058720111846924 2.601807594299316 -0.5292413234710693 -4.76899528503418 -3.650734186172485 -2.989776611328125 -2.203534126281738 -0.891753613948822 1.718718886375427 3.925971031188965 2.762718915939331 0.3577904105186462 0.07022497057914734 -0.2839126288890839 -3.654122114181519 -1.787204623222351 0.484510213136673 2.004240989685059 0.1203320100903511 3.055083036422729 -3.118391513824463 -0.4780527055263519 -4.470702648162842 3.524649143218994 -1.642618417739868 -1.789724946022034 -0.5149629712104797 -0.7095901966094971 2.143762826919556 1.680977463722229 2.680704832077026 2.953125 2.681848764419556 3.414096593856812 2.931484937667847 1.625633835792542 -1.982954502105713 -3.478357315063477 -1.464381337165833 0.04214123263955116 -0.2089722156524658 1.231490850448608 -0.5130674839019775 -5.040481090545654 -6.227958202362061 -2.312071800231934 1.129736423492432 1.778091430664062 -0.9210825562477112 -2.685198783874512 -2.693038940429688 -3.197998523712158 -3.600865602493286 -1.876337885856628 2.737993478775024 4.938388824462891 1.53123950958252 -0.1327638030052185 1.480213761329651 1.392121434211731 0.1407555192708969 2.590087413787842 2.508197069168091 0.3467240631580353 -1.601864099502563 1.324195504188538 2.399215698242188 -2.399705648422241 -3.201367139816284 4.649632930755615 4.103415489196777 2.230583667755127 -1.208535075187683 -2.979002475738525 -2.531723976135254 -1.483600258827209 0.01598095707595348 1.992982506752014 4.341715335845947 3.270479440689087 1.567877054214478 -0.5994386076927185 -0.1800925731658936 -1.483845114707947 -1.11552369594574 -1.85425853729248 -2.021752119064331 -3.223924160003662 -3.490976572036743 -2.587739229202271 -4.004673957824707 -0.1615901589393616 1.465993642807007 -0.8009586930274963 0.4228487014770508 1.01431405544281 3.661267757415771 3.130116701126099 -5.053112030029297 -4.402786254882812 0.9835018515586853 2.532066822052002 1.21819281578064 0.37729811668396 -3.090780258178711 3.366688966751099 -0.003572235116735101 0.4895821809768677 1.443337559700012 1.083445072174072 1.350360035896301 1.467774510383606 1.051374912261963 -0.5367999672889709 -1.734742879867554 -1.915510773658752 -2.681770324707031 -4.414272308349609 -3.800456762313843 -0.5848281979560852 0.8424116969108582 1.573248863220215 -0.3854655623435974 -0.7289639115333557 2.945659875869751 4.600401878356934 1.968300342559814 -0.7895047068595886 0.6893418431282043 2.117254734039307 1.794649720191956 1.76526951789856 1.228325486183167 0.853095531463623 1.049728155136108 0.7880261540412903 0.9458931088447571 1.611085176467896 1.895824313163757 2.173893690109253 3.566093921661377 1.621903657913208 -3.045209884643555 -4.809722900390625 -3.937893867492676 -3.790269613265991 -2.349242448806763 -1.712751150131226 -1.765950083732605 -0.550390899181366 -0.1456060409545898 0.06831026822328568 0.06755679845809937 -0.3594590425491333 -0.6108787059783936 1.305925965309143 3.565895557403564 3.845162391662598 3.343498945236206 4.23656702041626 1.139753937721252 -4.096770763397217 -3.984713077545166 -2.574383974075317 -1.49754524230957 1.370550513267517 -1.396419048309326 -2.481056690216064 -1.245996832847595 2.539516925811768 3.312321424484253 3.472085475921631 1.80453085899353 -1.291619300842285 -2.945203304290771 -2.752407789230347 -0.7741461396217346 1.255736112594604 1.038846611976624 0.3887260854244232 0.2155319005250931 0.5921913981437683 -0.7804065942764282 -1.855653166770935 -1.52841317653656 1.821839094161987 3.595362186431885 -1.577325224876404 -6.531517028808594 1.448929667472839 0.9731826186180115 0.3772236108779907 0.4992556869983673 0.03069067560136318 0.2661497294902802 -0.6922726631164551 -1.757544279098511 -1.942002177238464 -0.2323834449052811 -0.1351326704025269 -1.141071438789368 -1.922140121459961 -0.5856561660766602 -0.4116664528846741 0.988368034362793 8.018025398254395 5.373849868774414 -4.720942974090576 -4.434868335723877 -1.300205707550049 -1.283541560173035 -2.541507959365845 -1.363983392715454 1.581914305686951 1.192334413528442 -3.307676553726196 -6.183123588562012 -0.2655551731586456 5.10042667388916 1.284762382507324 0.6987558603286743 -0.1073669418692589 1.511645436286926 -0.2220783829689026 -1.443181872367859 0.4423579573631287 1.494206070899963 4.214337348937988 0.4974804818630219 3.982675313949585 2.500311851501465 0.9296759963035583 -0.2905532717704773 -0.9293051362037659 0.4707818627357483 1.093547105789185 1.030629634857178 -0.9216092824935913 -1.830772519111633 -3.620242834091187 -5.397396564483643 0.4524465501308441 2.335021734237671 -0.712591826915741 -0.5228031277656555 5.887351989746094 0.2700175642967224 -1.985262274742126 -2.741916179656982 -1.743592143058777 -3.184886932373047 -4.194586277008057 -3.433204650878906 -1.825550436973572 0.4183304607868195 0.01079587917774916 -0.8160049915313721 1.921983361244202 1.985825896263123 1.164842963218689 -1.048493385314941 -1.276103138923645 1.516258358955383 4.86310338973999 4.435692310333252 3.67277717590332 -2.676289319992065 0.8816239237785339 -0.6725241541862488 -1.183035373687744 -2.049641609191895 -2.717050313949585 -1.753745079040527 0.3172051012516022 2.691312789916992 2.903335571289062 2.621742010116577 1.172496676445007 -0.882566511631012 0.9131653904914856 2.198816299438477 1.515944004058838 -0.3016216158866882 -0.7288107872009277 1.069084405899048 3.881456613540649 -0.0991465300321579 -3.955688714981079 -5.613255023956299 -2.34644889831543 -0.9500645399093628 2.081428050994873 2.734233617782593 1.797738671302795 -0.006271620281040668 -1.47850501537323 -0.89984130859375 -2.507781028747559 -4.745498657226562 3.516669273376465 1.686064839363098 0.09878169000148773 -1.788741588592529 -1.648031234741211 1.870131969451904 0.6805910468101501 3.269325494766235 0.9005476832389832 -2.264332294464111 -3.011304616928101 -1.872262954711914 -0.5455194115638733 0.3007282018661499 0.6100534796714783 0.2692229747772217 -0.03983331099152565 -0.2470410317182541 1.529674887657166 4.210292339324951 3.105183362960815 -0.6378636956214905 -1.827103137969971 -1.803852558135986 -0.8596709966659546 5.830551624298096 -2.828168869018555 -3.047624111175537 -1.632792234420776 2.497328758239746 -2.664051294326782 -0.2667175531387329 1.790863275527954 2.401898145675659 1.839009404182434 0.7107056975364685 -0.6093127131462097 -1.575464606285095 -3.61558198928833 -4.224365711212158 -1.074870109558105 1.991366028785706 2.224975109100342 1.857958793640137 1.306209564208984 -0.4488008618354797 -1.27746307849884 -1.346636533737183 -0.1418596357107162 3.122139453887939 3.413169145584106 2.538918256759644 0.3459382653236389 -0.9251654148101807 -1.021764039993286 -2.135052680969238 -3.619184494018555 -1.634521007537842 0.4082626700401306 0.3465279638767242 0.6109509468078613 2.378391981124878 -3.827320098876953 -0.9945292472839355 1.115954279899597 -2.059475660324097 5.303928852081299 0.9681726098060608 1.328379154205322 -2.541584014892578 1.499601602554321 1.000034093856812 0.2513402104377747 -0.1194327101111412 0.961767315864563 2.157263040542603 2.368011951446533 1.760470986366272 0.003814725670963526 -1.885188221931458 -1.488059639930725 1.969880819320679 0.01281854044646025 0.07247123867273331 -0.4742676317691803 -2.063200950622559 -2.894011974334717 -0.8292675018310547 -1.867210507392883 -0.436829149723053 7.415341854095459 4.679947376251221 -0.01050963532179594 -4.071547985076904 -3.97344708442688 -2.266092300415039 -0.7633808255195618 -0.04246245324611664 -0.203739657998085 -1.227560043334961 -1.35532009601593 1.050325751304626 2.07463526725769 0.9253273010253906 0.1675505042076111 1.64550518989563 3.207226514816284 -0.2274925410747528 -1.352173924446106 -5.672138690948486 -1.898545145988464 -0.6441818475723267 0.3502191007137299 1.066592335700989 0.2693812251091003 -1.69586718082428 -3.87159538269043 -2.28667163848877 0.4059168696403503 2.196408987045288 1.898446559906006 1.779008626937866 0.9248983860015869 0.2051427960395813 1.24515974521637 3.303592681884766 6.128532886505127 -1.937797427177429 -3.950801134109497 -3.487842082977295 0.1516454070806503 2.215803146362305 4.908269882202148 2.082131624221802 -2.436846733093262 -3.718151092529297 -0.1713129431009293 -1.137084364891052 -3.646186590194702 -2.168651819229126 3.060532093048096 1.469862461090088 -1.273031115531921 -0.1882144659757614 -3.945636749267578 -0.8899976015090942 1.718190670013428 0.6414726376533508 1.18510377407074 2.142102241516113 0.2086958885192871 -0.6458078026771545 -0.1587435454130173 1.82531213760376 2.517449378967285 0.8300987482070923 -2.093193292617798 -2.139988660812378 1.725311875343323 1.53205668926239 -1.278612375259399 -1.996461272239685 -2.516732215881348 -4.302355766296387 -3.053000450134277 5.937968730926514 3.488107919692993 2.696087121963501 -1.575858235359192 -1.000340461730957 0.09748056530952454 1.122649192810059 0.6962146759033203 1.047524333000183 1.269667744636536 0.227587416768074 -0.4924246966838837 0.2546910643577576 2.253618240356445 1.903453588485718 -0.3235071301460266 0.6117635369300842 2.720096111297607 3.185922861099243 -4.25635290145874 -8.060596466064453 -3.68529486656189 -3.083024978637695 -0.4128779768943787 4.923409938812256 1.630689978599548 0.98050457239151 1.333264231681824 1.829413056373596 2.540329694747925 1.638649225234985 0.8695799708366394 1.013662576675415 1.412273168563843 -3.671929597854614 -5.960317134857178 -2.860669851303101 -1.072245955467224 -1.200642466545105 0.4062235951423645 2.335040330886841 2.680099487304688 0.2577986121177673 -0.592905580997467 -3.568818092346191 4.689018726348877 4.519196033477783 4.059896469116211 3.0339674949646 2.299744844436646 1.235875248908997 -0.1321182250976562 0.100344642996788 1.02567183971405 0.3347478210926056 -1.620137095451355 -2.011083602905273 -2.032325267791748 -2.117369174957275 -2.707364082336426 -2.422475337982178 -1.503098011016846 -2.15949559211731 -2.712530612945557 -1.880461692810059 2.306589126586914 -0.4024480581283569 -2.301783800125122 -2.135865688323975 0.5871487855911255 1.249439477920532 -2.285779714584351 0.3783716261386871 2.349616765975952 -0.3999252617359161 -2.693830251693726 1.106496930122375 -0.2962234020233154 -4.055545330047607 4.353967666625977 -2.374120950698853 1.936208486557007 2.02873420715332 0.7309495806694031 -0.08200207352638245 2.786206960678101 2.668025970458984 1.745712757110596 0.7529512047767639 0.5644647479057312 0.8536949157714844 1.513676881790161 1.202269554138184 0.9400677084922791 0.4857968091964722 0.6255044937133789 -0.8105387091636658 -3.529870510101318 -5.842987060546875 -4.407203197479248 -0.05232741311192513 1.46184504032135 -1.924028873443604 -3.01827335357666 3.985016107559204 -0.008113428018987179 0.5660753846168518 0.9294919371604919 1.581533432006836 1.115763783454895 2.067715406417847 4.347882270812988 2.955169439315796 -6.827727794647217 -1.862815737724304 -2.504034280776978 -0.9208692908287048 0.1155669912695885 -1.236315250396729 1.07185161113739 3.006508588790894 -2.592896938323975 -1.709957122802734 1.049230813980103 -1.144058346748352 2.409350395202637 2.23582124710083 -0.3402231633663177 -2.433928251266479 -1.385465264320374 -0.5246292352676392 -2.478551387786865 -1.993001580238342 -0.865767776966095 -1.606540441513062 -1.063154578208923 -0.7123730182647705 1.660784840583801 7.742666244506836 -2.127227783203125 -1.822961568832397 -2.400290727615356 0.6258722543716431 2.222369432449341 2.857248067855835 -4.636505126953125 -3.944947242736816 -1.174988627433777 1.544285297393799 2.648262500762939 1.770408868789673 0.08630818873643875 -2.455178260803223 -2.924627780914307 0.1822405755519867 3.947190761566162 3.241473197937012 0.5515185594558716 -0.7145354747772217 -0.8927555680274963 -0.1512598246335983 1.103008270263672 0.7411171793937683 0.9069061875343323 0.1720729023218155 -1.00038480758667 0.6768290996551514 3.58110523223877 3.822054147720337 1.054018139839172 -1.22930371761322 -0.8793721199035645 -0.4868297576904297 0.1832262724637985 -0.6697851419448853 -1.872934818267822 0.139283612370491 6.782491683959961 -2.623489141464233 -5.121035099029541 -2.204014539718628 -2.21247935295105 2.219970941543579 -0.0395641140639782 -0.1197867766022682 5.36863899230957 2.320730447769165 -0.9496486783027649 -3.339934587478638 -2.172893524169922 -0.3047231733798981 -0.3569243848323822 1.084809064865112 1.083213329315186 0.0910109207034111 -0.1769344508647919 -1.477084517478943 -1.846298098564148 -1.744992733001709 -2.515811204910278 -2.416417121887207 -0.7893837094306946 -1.082106947898865 2.302924394607544 6.921826362609863 0.2962099313735962 1.402395248413086 2.869835138320923 4.363369464874268 4.366862773895264 2.365393400192261 -1.150591611862183 -4.272635936737061 -4.453513622283936 -2.193560838699341 -0.7572203874588013 -1.033759951591492 -0.5224516987800598 -0.3620997965335846 -0.5172574520111084 -2.661078691482544 0.06091374531388283 4.675126075744629 -2.05347204208374 -0.4224680364131927 -0.4634552597999573 -0.7852734327316284 -0.3235795199871063 1.48763906955719 2.065875291824341 1.622999906539917 1.532273650169373 -0.02392737753689289 -1.683803915977478 -3.235286235809326 -2.824216842651367 -3.836560487747192 -2.768944263458252 -1.92069149017334 -0.4522866308689117 3.212500333786011 1.505879402160645 -1.039793610572815 0.8325814008712769 7.098064422607422 -0.2492552399635315 1.817596554756165 3.026833057403564 1.543034195899963 0.698566198348999 -0.2403708249330521 -0.5762346386909485 -0.1735755205154419 0.6721184253692627 -0.01150834839791059 -1.593131422996521 -4.011972904205322 -4.170482158660889 -1.676751375198364 -1.095991611480713 -3.052336692810059 -1.732545256614685 2.67919397354126 2.718042373657227 5.428771495819092 -5.781765460968018 -2.349586248397827 0.6335902810096741 2.558069705963135 0.6671069860458374 -2.355352878570557 -3.23147177696228 -2.631713390350342 -0.4098121225833893 1.325615406036377 1.105318903923035 -1.755217909812927 -1.130976915359497 2.656232833862305 2.981982231140137 3.440193653106689 3.753854990005493 2.051274538040161 -0.8867725133895874 -0.6405686736106873 4.928459644317627 -7.384880065917969 -2.831598043441772 2.505595207214355 -0.1236712262034416 0.9499881267547607 -1.34644889831543 0.7326071262359619 0.8114901781082153 -0.3090329170227051 -1.413174867630005 -0.2937881946563721 -0.8449950814247131 -1.185345768928528 1.056826829910278 1.341277241706848 1.592118501663208 0.9586052298545837 0.1298162192106247 0.7261488437652588 -2.943997383117676 -2.495987176895142 -0.9931591749191284 0.4088180065155029 -0.05235563218593597 0.2732318043708801 2.618948459625244 2.107980966567993 -1.746818423271179 -1.972509503364563 -1.243218421936035 -1.533345937728882 -0.004780224524438381 -0.7466258406639099 -0.8186952471733093 -0.07976577430963516 -0.9385713338851929 0.3193176090717316 8.988508224487305 0.8530231118202209 0.6725184917449951 -0.7527700066566467 -2.619318008422852 -4.336596488952637 -4.078447818756104 -0.9098162055015564 1.987511992454529 2.89670991897583 1.877282500267029 1.066784143447876 -0.3056377768516541 -0.6793118715286255 2.670625448226929 4.677536964416504 1.789814472198486 -1.990837812423706 -0.4971506595611572 -1.528030633926392 -0.7574587464332581 0.8165900111198425 0.3461527526378632 -1.272879719734192 -0.9220470190048218 2.760842800140381 2.638737678527832 -2.523347854614258 0.0795324519276619 4.064794063568115 1.336477637290955 -3.260955333709717 0.5778152346611023 -3.985713005065918 1.516497850418091 0.6206018328666687 -2.55692195892334 0.4346851408481598 -3.904742240905762 0.1841141283512115 2.090150356292725 1.776205658912659 -5.227280139923096 -1.209118366241455 2.191707372665405 2.639630317687988 0.6573095917701721 -1.028080463409424 0.3515641093254089 1.960708737373352 2.340264797210693 2.408000230789185 2.187431335449219 1.431820631027222 -2.120247602462769 -2.748018026351929 -2.418210506439209 -3.571943283081055 -1.392201900482178 4.845144271850586 -0.9770885109901428 -0.3213975727558136 -2.043016910552979 -3.046781063079834 -3.842391014099121 -2.219273567199707 2.093014240264893 4.279487609863281 3.131388902664185 2.988543033599854 2.473475456237793 0.06153576821088791 -3.807759284973145 -2.551745176315308 -2.139024257659912 -1.267277240753174 0.2637574970722198 5.370180606842041 2.648119926452637 3.335795879364014 -2.156539678573608 -3.571489572525024 1.275663614273071 -0.1627533137798309 -2.799559593200684 -3.372941017150879 -2.410378932952881 -1.358693480491638 0.1089682951569557 0.5672398209571838 0.1229675635695457 1.788984060287476 5.03717041015625 4.388677597045898 1.879981160163879 -0.4258941113948822 -0.4019408822059631 4.588913440704346 1.558045744895935 -1.894327998161316 -4.425883769989014 -4.064239978790283 4.318189144134521 2.751234292984009 0.2829276025295258 -2.910548686981201 -1.979781270027161 2.966404676437378 4.263378143310547 -0.7366398572921753 -1.090137124061584 -0.01572997123003006 -1.269016146659851 -3.628020763397217 -2.645751237869263 0.5460577011108398 -0.7541292309761047 0.7128481864929199 -2.082374811172485 -0.70896315574646 2.64811372756958 -0.668062686920166 -4.623716354370117 -2.302133083343506 -6.889860153198242 -6.005307674407959 -1.081237435340881 16.72801399230957 -2.088576078414917 -2.896540880203247 4.548826694488525 -6.325735569000244 0.5507532954216003 2.046671628952026 -4.968996047973633 -3.730587959289551 3.371580839157104 -2.611865043640137 -1.423172473907471 -1.252711296081543 16.52289772033691 2.431673526763916 3.2436683177948 1.653014421463013 -0.2329336106777191 -0.2412382215261459 1.389712929725647 2.610812664031982 1.040119647979736 1.056528329849243 2.587957143783569 0.02149972133338451 -2.710483074188232 -3.909730911254883 -3.513160228729248 1.472121119499207 4.622661113739014 -1.375612378120422 -5.545970916748047 0.6564407348632812 -0.6024191379547119 -2.222986221313477 2.791118621826172 2.096353530883789 0.8548614382743835 0.326848179101944 -1.355351567268372 -1.673450469970703 -1.079655528068542 0.7899753451347351 -0.7372048497200012 -2.989439010620117 -0.6738529205322266 7.742810249328613 3.953354597091675 -2.906037569046021 -3.507718324661255 0.3794279098510742 -1.802185297012329 -0.01503289397805929 0.4149118065834045 -2.609737157821655 -1.306400656700134 -0.237811341881752 1.566078066825867 3.469221353530884 3.999252796173096 3.54664945602417 3.208535194396973 1.926640629768372 0.3310911953449249 -0.6113461852073669 -2.109458923339844 -3.80659818649292 -3.577003479003906 -1.582272291183472 -2.446916341781616 -2.507627725601196 2.779303312301636 1.469172477722168 -2.111587524414062 -1.998923182487488 -3.847949743270874 -3.146463871002197 -1.405809998512268 -0.3051537871360779 -0.02258723601698875 -0.07752328366041183 -0.1886478960514069 1.321210145950317 2.052456140518188 0.4253513514995575 -0.4235289394855499 1.592959403991699 0.213726818561554 -2.012930154800415 -0.4827274978160858 2.060429573059082 2.793022632598877 -1.223517894744873 2.558805465698242 0.1188790947198868 -2.764703512191772 -2.129357814788818 -0.917736828327179 1.197009801864624 2.688787937164307 1.59153139591217 0.3399880230426788 -1.711789488792419 -2.784286022186279 -1.924505233764648 0.50083988904953 0.3961921632289886 -0.216722697019577 -0.2049663066864014 -1.116783022880554 -1.271123290061951 -1.928176403045654 -0.9552882313728333 2.082529067993164 9.128556251525879 -1.263115167617798 -1.12502133846283 -0.9244920015335083 -0.7616177797317505 -0.576793909072876 1.366979837417603 1.355091571807861 -0.3981406986713409 -0.9075824618339539 0.2151392996311188 -0.4842222630977631 -2.200862169265747 -0.6150520443916321 5.542587757110596 3.255381107330322 -0.6138777136802673 -4.638441562652588 -0.6119273900985718 2.378829956054688 1.00713837146759 0.7585794925689697 1.766006827354431 3.076374292373657 3.163918972015381 1.732400894165039 -0.9458684325218201 -2.86342453956604 -2.686741590499878 -1.84391176700592 -0.5596410036087036 1.793423533439636 2.157157897949219 0.7795391082763672 -2.654270172119141 -5.051540851593018 -0.2388036847114563 6.217349529266357 -0.2776187062263489 -2.700377464294434 -1.622559309005737 3.07083535194397 2.339120626449585 0.7922935485839844 -0.9941287040710449 0.02557752095162868 1.851992130279541 1.782932639122009 0.8367459177970886 0.8800138831138611 0.9838425517082214 0.8278151154518127 -0.2318043261766434 -2.380693912506104 -0.472337007522583 1.777923464775085 1.87605094909668 -2.56452488899231 -6.413066387176514 -5.116411209106445 1.127830147743225 2.200177907943726 -0.4993496239185333 -2.964590311050415 -3.342673063278198 -0.7716522216796875 2.789312124252319 3.970641613006592 1.75713062286377 -2.290652751922607 -4.041758060455322 -4.369264125823975 -1.357726335525513 2.769946813583374 4.553998470306396 5.197065353393555 0.8802440762519836 -1.01824414730072 -1.084168314933777 -1.525487661361694 -0.8529430031776428 0.04349595308303833 0.1950835138559341 1.874127984046936 2.7015540599823 2.463735580444336 2.446211814880371 2.101677179336548 -2.962379932403564 -5.301493167877197 -0.04583136737346649 0.1571594327688217 -3.10448145866394 0.848435640335083 4.860725402832031 0.9659931063652039 -0.2521164119243622 -0.3625280559062958 -2.142562389373779 -2.997592926025391 -1.489210844039917 -0.8642691373825073 -1.195456147193909 -1.44449520111084 -1.735252499580383 0.5135400891304016 2.650077104568481 3.272169589996338 2.410286903381348 0.4308320879936218 -0.8395769000053406 -2.17469596862793 -2.507655620574951 -0.7924020886421204 3.629956007003784 6.422986030578613 5.569507598876953 -1.43520987033844 -4.916754722595215 -4.94819450378418 -2.045391082763672 -3.335895299911499 -2.268898248672485 -0.4255673289299011 -0.03816553205251694 -0.9779834151268005 -1.186464190483093 -0.09549914300441742 1.313698291778564 2.275920152664185 3.081841707229614 2.744543552398682 2.47901177406311 2.760192632675171 0.10756865888834 -1.410292506217957 -2.568015336990356 -1.062770247459412 -2.096790552139282 -1.319215297698975 2.022785186767578 4.684600353240967 -1.844922780990601 -7.143537044525146 -0.8666052222251892 2.414668798446655 4.036345958709717 2.27144455909729 -0.7613409757614136 -2.608560085296631 -1.8277747631073 0.4198328256607056 1.451507687568665 -1.922782301902771 -0.8172503709793091 1.654939770698547 -2.306989431381226 1.448765277862549 0.6824448108673096 0.02111987583339214 1.01409375667572 -1.692325711250305 -2.184553384780884 -2.10218358039856 -0.09578699618577957 2.228186130523682 2.623479604721069 1.959334850311279 -1.318089723587036 -3.829515218734741 -3.123764991760254 -2.339495182037354 -3.976166009902954 -1.471984148025513 1.780753374099731 4.01289701461792 2.922211647033691 4.360041618347168 0.1676905900239944 0.526846706867218 1.552429914474487 0.3344283103942871 -1.291541695594788 -0.9038380980491638 2.56584095954895 4.820815563201904 -3.57453179359436 -6.717348098754883 2.911172389984131 0.9218342304229736 -1.986038565635681 1.170289278030396 -0.06239826232194901 2.292547225952148 0.8090817332267761 0.2117560505867004 -2.891561508178711 2.988969326019287 0.4681760668754578 -1.144858241081238 -0.9227947592735291 -1.826314210891724 -1.754594326019287 -3.01036262512207 -1.88750171661377 0.4161270260810852 -0.2800817489624023 -1.397851347923279 -1.395628213882446 0.673579216003418 -4.044177055358887 4.391806602478027 8.167318344116211 2.898618221282959 2.443790674209595 -2.162331819534302 -0.6609148979187012 -3.967863798141479 -2.03875732421875 -0.1461312472820282 5.581264495849609 2.812103033065796 3.123026847839355 3.066988706588745 2.961346864700317 2.027236700057983 -1.822220206260681 -5.147045135498047 -4.246560096740723 -2.486081838607788 -1.938552856445312 -0.89797043800354 0.3832512199878693 -0.5191247463226318 -1.538990259170532 -0.08232738077640533 4.152136325836182 0.2749515175819397 -1.449609518051147 0.34468013048172 0.9827666282653809 -1.581940054893494 -1.883486866950989 -1.772028684616089 -0.7374373078346252 1.328734874725342 2.505082368850708 0.5012051463127136 -0.672995924949646 -0.6718342900276184 0.09070800989866257 -0.6943642497062683 0.3483452796936035 2.733851194381714 5.97962760925293 -1.683677434921265 -4.372589111328125 -1.37207567691803 5.466661930084229 -2.648414373397827 -0.8633710741996765 -0.9156389832496643 -2.105777263641357 -3.224012851715088 -2.382087469100952 -1.20255172252655 -0.2402347326278687 -0.9952443838119507 -0.3743942677974701 1.612543225288391 1.500919699668884 1.206759691238403 0.5599402785301208 1.813851833343506 4.088022708892822 8.926924705505371 -1.459465980529785 -5.284323215484619 -2.292426109313965 1.966849446296692 -1.199653625488281 -3.427816152572632 -1.816295385360718 0.3855145275592804 1.898669242858887 1.459931373596191 -0.5537392497062683 -3.864177942276001 -3.213627099990845 -0.85962975025177 0.4924800395965576 -1.049012541770935 0.2265847325325012 1.099317908287048 4.087194442749023 3.689862966537476 -3.625888347625732 -4.641784191131592 0.5120067596435547 6.034490585327148 3.165913581848145 1.776201248168945 -1.040261626243591 -3.40283203125 -3.492448568344116 1.270417094230652 4.74774169921875 2.008545398712158 -1.63007926940918 -2.207189798355103 -0.1419738233089447 0.4140065312385559 0.3830350339412689 1.075376868247986 -0.08395946770906448 1.632293105125427 0.3006181120872498 4.057515621185303 -0.9087996482849121 -4.641332626342773 -0.1168743669986725 0.9524889588356018 0.8946379423141479 0.4786113500595093 -0.2127174586057663 0.6955034732818604 2.565141439437866 0.4860809445381165 -4.122813701629639 -3.814164400100708 0.4842146039009094 4.104711532592773 2.191668748855591 0.7880504131317139 0.4310582280158997 0.8920984864234924 -3.510748624801636 -4.833930969238281 -1.136292815208435 0.7651386857032776 1.901268482208252 -3.330813407897949 -0.9627285003662109 0.9309161305427551 2.322856903076172 2.965914964675903 2.384452342987061 0.4624191224575043 -1.312568545341492 0.2238638699054718 1.745165109634399 3.212472200393677 2.849147319793701 2.735619783401489 1.017621040344238 -2.363679885864258 -2.882908344268799 -3.7200026512146 -1.703224301338196 -3.15653395652771 -1.417991638183594 -0.3557108938694 -1.237022280693054 -1.920073270797729 -2.884670495986938 -2.558191061019897 0.7829590439796448 3.617220878601074 2.728307008743286 -2.455113887786865 -3.805186748504639 -0.5509454607963562 0.8650372624397278 0.02325134165585041 -1.136043906211853 -0.6322678923606873 0.113565668463707 4.386733531951904 2.084975481033325 -0.7072232961654663 3.640396595001221 0.1652252823114395 0.07702844589948654 -0.8720242381095886 -1.352357149124146 -0.6620933413505554 -0.4443088471889496 -0.3202587962150574 1.057315945625305 -0.02818114683032036 -0.1994329988956451 -1.262977957725525 -3.990545511245728 -4.657601356506348 6.193367004394531 2.653747320175171 1.900214672088623 2.429477691650391 1.19290566444397 -0.5250349044799805 -1.354464530944824 3.180796146392822 1.684457898139954 -0.2434033453464508 -1.200877070426941 -1.66473388671875 -2.266343832015991 -2.248439073562622 -3.02873682975769 -3.200077533721924 -1.758388161659241 -0.6658428907394409 2.336386680603027 4.437602996826172 4.547305583953857 4.884922504425049 1.110220193862915 -1.93416166305542 -1.145631313323975 -1.287282586097717 -1.537776589393616 -1.023317813873291 -0.3008571267127991 0.1561834961175919 -0.04655804112553596 -0.04335153102874756 0.9429492354393005 0.7884448766708374 -0.647585928440094 -0.8861508369445801 0.7611973881721497 1.418976545333862 1.455326557159424 1.97431755065918 1.780092477798462 2.955410718917847 1.46821141242981 0.3925897479057312 -4.102686405181885 -4.564184188842773 -2.479003667831421 -8.218681335449219 -3.566868543624878 1.855102181434631 5.511859893798828 3.82102370262146 0.8773584961891174 -0.8684132099151611 -1.030125856399536 -1.468230724334717 -0.7591843605041504 0.4122280776500702 -0.1640418320894241 0.2173622101545334 1.351261019706726 0.6267194151878357 -2.048535346984863 -1.152574181556702 3.207647800445557 0.3885404765605927 1.007549405097961 0.7792531847953796 1.214251160621643 1.083475589752197 -0.6135390400886536 0.4538560509681702 -0.5160768032073975 -0.2662078738212585 0.7339430451393127 -0.2886902093887329 -0.3962529897689819 -2.030474185943604 1.155610322952271 2.607173442840576 -5.100152492523193 1.58341121673584 -1.342710494995117 2.77907919883728 -1.291707038879395 -1.110264897346497 0.5660248398780823 5.988917350769043 -0.6864361763000488 -5.233677864074707 -7.056098937988281 -3.686964750289917 0.7768621444702148 2.619722843170166 1.668745756149292 0.5527424216270447 0.1692372411489487 -0.2117762565612793 0.3596915304660797 1.092411041259766 0.05775297060608864 -1.302576541900635 -0.1835884153842926 1.042017221450806 1.108894228935242 1.618121147155762 1.305999875068665 -4.684010982513428 3.766290664672852 0.8334711194038391 -2.450476169586182 -1.954184174537659 -1.545153021812439 1.202027678489685 1.001728296279907 -2.442356824874878 -1.823500514030457 3.688943862915039 3.680140972137451 2.7550048828125 0.1211226209998131 -0.381228119134903 -3.584646701812744 -1.515619993209839 -0.3526636064052582 -1.22882866859436 4.913937568664551 -2.001219987869263 -1.722123146057129 -0.858845055103302 -0.2947234213352203 -0.8887907862663269 -2.042191982269287 -1.93724536895752 -1.555139183998108 -1.761178612709045 -2.061721086502075 0.5160256028175354 1.111323356628418 -0.7145267724990845 0.02064616791903973 2.140822649002075 2.812996625900269 6.732042789459229 -1.257380366325378 -1.508837699890137 5.270064830780029 2.813940763473511 3.818896532058716 3.220969915390015 1.746689677238464 1.28357994556427 0.6407355666160583 0.2140964865684509 -1.017700791358948 -1.486476540565491 0.3347507417201996 -0.2448190599679947 -2.55954909324646 -2.849544763565063 -2.146551609039307 -0.429468184709549 4.529891014099121 2.647419929504395 -1.019735813140869 -5.763925075531006 -3.733203649520874 0.5618757009506226 0.04183336719870567 0.2829039096832275 1.755828380584717 2.759276866912842 -1.981367230415344 -6.904044628143311 -5.071457862854004 -1.772143006324768 0.9665818214416504 1.231832265853882 -0.144504502415657 0.246131643652916 0.3566900491714478 1.000815629959106 0.7930272817611694 -0.3874965608119965 5.69962739944458 0.65835040807724 -0.09376088529825211 2.265027761459351 2.841084957122803 2.768940210342407 -0.02663189917802811 -3.286848783493042 -3.668768644332886 -3.423656940460205 -0.9613938927650452 0.6519028544425964 -0.4566704034805298 -2.342981815338135 -0.3570006489753723 -0.3128823041915894 -1.572396993637085 -2.763247013092041 -0.4568156599998474 6.773353576660156 2.199715852737427 0.1143937557935715 2.014874458312988 -2.565356731414795 -1.186033964157104 0.1507374197244644 0.6904939413070679 1.036520481109619 1.232287645339966 1.026824235916138 1.231656312942505 2.084303140640259 0.1626958101987839 -2.308375120162964 -2.052404880523682 1.011566281318665 0.6293473839759827 -1.249484658241272 -2.045370578765869 -1.683743953704834 1.138691067695618 -0.006142654921859503 2.701789855957031 -0.4824840724468231 -2.227495670318604 -1.840970158576965 0.5646653175354004 -1.578695058822632 -3.812900304794312 -0.9884511232376099 2.068039655685425 0.09224601089954376 0.6240044832229614 2.781502246856689 3.469705581665039 -0.3121247589588165 -5.635539531707764 3.481332540512085 2.701026916503906 -0.774756133556366 -3.047760248184204 3.20404577255249 1.714610695838928 1.244764685630798 1.447283148765564 1.27377188205719 0.3290298581123352 -0.1407239139080048 -0.249041959643364 0.1230414360761642 -0.7334665656089783 -2.358121156692505 -3.595139980316162 -5.01688289642334 -4.708362102508545 -1.644675254821777 -0.2702929973602295 0.7621994018554688 1.72296130657196 1.885928988456726 3.846893548965454 2.968327045440674 3.112507104873657 3.532830476760864 1.905431151390076 -0.1003651320934296 -0.6697112321853638 2.297243356704712 3.411514759063721 1.557764172554016 -0.5362000465393066 -0.3026747405529022 0.283659040927887 -1.61668586730957 -1.749811291694641 -2.597909927368164 -2.010987758636475 -1.559972047805786 -1.325504183769226 -0.8779592514038086 6.520644187927246 -2.194122076034546 -3.967176914215088 -1.871952772140503 -1.243737578392029 -0.751727819442749 -0.5315722823143005 -0.2581925094127655 1.003674864768982 1.964991688728333 2.583043098449707 3.553110361099243 4.076921463012695 3.564288377761841 3.103835105895996 0.9899579882621765 -0.09774848073720932 -0.08414078503847122 -1.007092475891113 -3.116352558135986 -4.162136554718018 -4.007534503936768 -3.707638263702393 -0.6110165119171143 0.995637834072113 1.962226867675781 1.615572810173035 1.375821709632874 0.4468392431735992 -0.8705726265907288 -0.61809241771698 0.5076802372932434 1.598168253898621 1.521427869796753 -0.3127596080303192 -1.852982759475708 -0.8769214153289795 2.478506565093994 1.253387570381165 -4.295887470245361 -5.120477676391602 5.904015064239502 -5.100572109222412 -9.148601531982422 9.006413459777832 3.232460021972656 -6.388524055480957 1.422566771507263 1.869997978210449 -2.803926229476929 2.283159255981445 0.3277046084403992 -0.3104619085788727 -0.9541979432106018 -0.3242390751838684 -1.423137664794922 1.508536696434021 0.2883390486240387 0.3418907523155212 -0.5461450815200806 1.322430729866028 -0.01056482642889023 0.3063026070594788 -2.036820411682129 -2.35016918182373 -1.044999957084656 1.692157983779907 0.6363020539283752 -1.67059850692749 -1.697255849838257 -1.810060739517212 -2.504842519760132 -2.310841083526611 -2.831440925598145 -1.403926730155945 6.042915344238281 4.38822078704834 -1.034969806671143 -3.507012844085693 6.382536888122559 0.5199052691459656 1.293260812759399 3.247636795043945 2.786171436309814 0.9289950132369995 -0.477313369512558 -0.1216153055429459 1.810048222541809 2.165903568267822 -0.1938784867525101 -3.109621286392212 -3.023420095443726 -1.099364399909973 -1.442540526390076 -1.844265222549438 -0.3933765292167664 1.494388580322266 0.03202163428068161 -0.3237376511096954 -2.27657675743103 0.5597753524780273 1.521786332130432 3.00661826133728 -0.3459900319576263 -0.1308896243572235 0.2063546478748322 0.7647039294242859 0.8749287724494934 1.816063165664673 1.455613017082214 -1.414953112602234 -3.19898247718811 -3.521245956420898 -2.472352504730225 -1.387831926345825 1.206044435501099 1.163167357444763 2.788333415985107 6.192074775695801 3.191872119903564 0.6181160807609558 -4.339565753936768 -3.465464115142822 -0.7849637269973755 -0.5405548810958862 -1.06424868106842 -0.8121200203895569 -0.7035602331161499 -1.312778949737549 -1.22839879989624 -0.6326525807380676 -0.3292334973812103 0.8223403692245483 5.024534225463867 6.962143421173096 2.079214334487915 -1.857627987861633 -3.68907618522644 -3.662513494491577 -2.655725240707397 -0.4090327322483063 3.263421058654785 1.530823588371277 1.035767674446106 1.408733129501343 1.22136402130127 0.9877231121063232 0.6859818696975708 0.04878819733858109 1.601135015487671 2.882477045059204 3.630971193313599 2.387482643127441 -0.8575460314750671 -2.247939109802246 -2.515256643295288 -2.397141456604004 -2.383872985839844 -0.7042079567909241 1.427923440933228 1.677761673927307 -0.304531067609787 -7.585615158081055 -4.088444232940674 -3.461344242095947 -1.622636556625366 0.7055404186248779 0.8220340609550476 0.1018122285604477 0.9279172420501709 2.196024179458618 1.8846595287323 0.507500946521759 1.01116418838501 0.9111276865005493 1.065937876701355 0.2298617660999298 1.39046585559845 8.05463695526123 -0.04711972177028656 -3.437175273895264 -4.589169025421143 -2.562790393829346 2.06325364112854 1.841472268104553 1.701282858848572 0.8503978848457336 -0.3080076277256012 -0.6069350838661194 -0.4206934869289398 -1.103274941444397 -1.826452493667603 -0.6048267483711243 2.19294285774231 -0.9212049841880798 -3.243194580078125 -4.524242877960205 -4.685952663421631 5.110512256622314 -0.5957462191581726 0.004722327459603548 4.086636066436768 0.9893117547035217 0.6028595566749573 0.171802431344986 -0.6300531029701233 -2.012423276901245 -3.666726350784302 -4.261476993560791 -3.795412540435791 -2.51570463180542 -2.445616245269775 -1.444071888923645 1.057420134544373 3.681090593338013 2.008516550064087 -0.3316654562950134 0.3660877048969269 1.296679496765137 2.620066165924072 1.972467303276062 3.479217290878296 3.846937894821167 -0.5176569819450378 -1.686132550239563 -0.4134161472320557 1.020720720291138 -1.139117002487183 -1.082967519760132 0.5987489819526672 -0.006351599469780922 -0.3174097239971161 -1.543566226959229 -1.950517177581787 -0.7656686305999756 8.736327171325684 -5.214029312133789 -0.8509284257888794 2.924906253814697 1.764193534851074 3.639477729797363 -1.721527457237244 -1.475088357925415 -0.5623205900192261 -2.092078685760498 -2.85969066619873 -2.095769882202148 -1.344032287597656 -0.2237742096185684 -0.6231472492218018 -1.755012273788452 -1.209031462669373 1.201611638069153 0.7974305748939514 -1.893580079078674 -1.058013677597046 1.882786393165588 3.275384187698364 -6.240147113800049 -0.8862361311912537 7.359743595123291 5.482077121734619 2.843799829483032 -0.2564646899700165 -0.3371598422527313 -0.1493592113256454 -1.688663959503174 -4.365056037902832 -0.7148441672325134 -0.6613509654998779 -3.395405769348145 0.808099627494812 5.394294261932373 4.59424352645874 1.3478764295578 0.7274182438850403 1.429787397384644 -0.6518324613571167 -1.097482681274414 -0.5886217951774597 -0.05440934002399445 2.177875280380249 -2.518951892852783 -2.819216251373291 -3.008774757385254 -1.555320382118225 1.190289258956909 1.834352493286133 1.310477137565613 0.8972813487052917 4.513104438781738 7.782402992248535 2.564141750335693 -2.203880786895752 -1.451546788215637 -1.009198427200317 -0.7052731513977051 -2.2630455493927 -2.216995239257812 -0.09086468070745468 0.1729571372270584 1.377644300460815 -4.318534851074219 -1.272941470146179 1.075538635253906 2.21186375617981 -1.190088391304016 -4.319554328918457 0.3843879997730255 1.483383893966675 -3.396879434585571 0.1718388944864273 -1.530780076980591 -3.050742626190186 0.9755308628082275 -1.958547115325928 -0.8114834427833557 2.608862161636353 -0.7799949049949646 2.737862348556519 3.287628412246704 2.493192195892334 0.8809213638305664 -3.085702896118164 -2.998663902282715 -2.427502870559692 -1.528639435768127 0.04043152555823326 0.3126021027565002 0.05091485381126404 0.2221731692552567 1.043558120727539 1.541467547416687 1.850071668624878 0.2313484251499176 -0.2265582382678986 -1.644219279289246 -3.303746938705444 -3.645859479904175 1.185133457183838 1.201941967010498 6.472959518432617 4.708288669586182 -4.726571083068848 -0.7783393859863281 2.063473224639893 1.84335458278656 0.3135126233100891 1.385035514831543 2.482676267623901 2.129348516464233 0.8677417039871216 -1.400456309318542 -2.071055173873901 -1.627567052841187 -0.9945804476737976 -2.918722152709961 0.6114040017127991 2.338141202926636 0.8794646859169006 0.4755713045597076 -0.8270531296730042 -0.04538047686219215 2.444886684417725 1.102450251579285 0.2861195802688599 -1.292391419410706 -1.836443066596985 -0.3798631727695465 1.2832190990448 0.2368119210004807 -1.57464873790741 -0.7134192585945129 1.278488516807556 2.105404853820801 0.6032810807228088 -0.7284773588180542 -0.2003483325242996 0.6041272878646851 0.0788845419883728 1.742262601852417 1.242832779884338 -6.283181667327881 2.150618076324463 0.7029879093170166 -0.9604247212409973 -1.483393311500549 -1.04889976978302 -0.3000126481056213 0.5119193196296692 0.3146196305751801 0.5565519332885742 1.142988443374634 1.793936729431152 2.006229877471924 0.1663385927677155 -1.700566291809082 -5.047182559967041 -4.356348514556885 -1.608909010887146 1.011662244796753 -4.056429862976074 10.20431900024414 -1.278284907341003 -1.009564757347107 -0.2334626764059067 -0.4406247138977051 -1.620192527770996 -1.760385751724243 0.1417310833930969 1.568484306335449 2.280131816864014 1.174952030181885 -1.578830003738403 1.443419814109802 4.594386100769043 2.080986738204956 0.5982211232185364 1.694727301597595 -1.135469675064087 -0.4140327572822571 -2.972537279129028 -3.133656740188599 -0.4942384958267212 -1.047592163085938 -1.241211771965027 -0.8996909856796265 0.5448033213615417 2.168879270553589 2.366272926330566 -0.2979503571987152 -2.927075386047363 -3.418108701705933 -2.72508692741394 -2.923410892486572 -0.06215564534068108 -1.519163131713867 -3.431677579879761 -1.978963017463684 3.920609474182129 2.033552169799805 4.080483436584473 7.851727962493896 -1.821760296821594 -2.197330713272095 -1.59965717792511 0.4990229606628418 2.388712882995605 3.208804368972778 3.246670007705688 1.828473329544067 1.355918765068054 1.040343523025513 2.032708168029785 2.122942924499512 1.398778080940247 -0.6881999373435974 -1.933196902275085 1.30211341381073 -3.807019948959351 -5.178139209747314 0.4790957272052765 -3.678279876708984 -0.4330079853534698 0.3131713271141052 0.2686564922332764 -0.3412981033325195 -0.7717618942260742 -1.051017642021179 -0.6576240658760071 -0.4307793378829956 -0.113796778023243 0.2721555829048157 1.018352031707764 0.06853417307138443 0.405571311712265 0.3216699063777924 -0.03916404768824577 0.04132213443517685 0.7627220749855042 -6.004536151885986 -3.539169549942017 9.909998893737793 0.9022256135940552 0.508641242980957 0.2081129252910614 -0.09129645675420761 -0.1006664633750916 0.2260296046733856 0.5970988869667053 0.1364035755395889 0.5811063647270203 0.3292680382728577 2.464056968688965 1.625600457191467 -3.129810333251953 -5.086357116699219 -4.918898105621338 -4.075864791870117 0.724645733833313 3.228858470916748 2.386183738708496 3.484659194946289 -0.6537494659423828 0.7332283854484558 1.562767028808594 -0.5649407505989075 -4.517839908599854 -3.595715284347534 -1.468638896942139 -0.812872052192688 -0.2901796400547028 -0.2451590597629547 0.01795168220996857 -1.01013195514679 -0.3136384189128876 0.7114138007164001 -1.299245834350586 -2.566297769546509 1.260599732398987 4.591088771820068 2.982858180999756 5.478504180908203 -1.595106840133667 0.004218399059027433 2.077651500701904 3.318827867507935 2.232555627822876 -0.380823165178299 -0.9523966908454895 0.06919809430837631 1.707433819770813 2.123703718185425 2.678765058517456 1.735341191291809 -0.9315985441207886 -2.459148168563843 -3.221009016036987 -0.3020234704017639 2.542954683303833 -0.3207231462001801 -5.347194194793701 -2.980633974075317 8.484978675842285 5.10798454284668 1.450596809387207 -1.522996187210083 -2.068831205368042 -0.1522108316421509 1.13636314868927 1.15285313129425 0.01831918209791183 -1.25509774684906 -2.944597005844116 -3.14495062828064 -2.174127101898193 -1.229882001876831 -0.5651668906211853 -0.4199739694595337 -0.4242381751537323 -0.6261632442474365 -1.126787066459656 0.3039223253726959 -1.434911131858826 0.6733859181404114 1.792589664459229 1.162557125091553 1.539647459983826 1.975577831268311 0.682404100894928 0.694273054599762 0.6961225271224976 0.006177407223731279 -0.6502417325973511 -2.422773122787476 -1.186649680137634 0.4673312306404114 -0.3465060889720917 -1.266816735267639 -1.079667806625366 0.531513512134552 1.569873213768005 -3.403881072998047 0.6291220188140869 0.6591586470603943 0.9982244968414307 1.410849213600159 3.761451482772827 4.826357364654541 2.175938367843628 -3.528533458709717 -3.171208381652832 -0.9293313026428223 0.1063432395458221 0.5262072086334229 -3.376620054244995 -3.88848876953125 1.15589165687561 0.7638463973999023 -1.22597062587738 0.3000786602497101 0.1415395736694336 -1.334857583045959 -1.404036402702332 -0.4949288964271545 1.792271614074707 1.202057957649231 -1.582002758979797 -3.053953170776367 -3.284349203109741 -2.185635328292847 0.4628176093101501 0.3635879158973694 0.01238901540637016 4.487257957458496 2.035299301147461 -1.195004343986511 1.315890550613403 -2.409059286117554 -2.982527017593384 5.838627815246582 -1.855497002601624 2.936793327331543 2.43900728225708 0.4375534057617188 -1.192231178283691 1.717099070549011 2.562806606292725 -1.777615904808044 -6.118545532226562 0.1555164307355881 2.028718233108521 -3.116269588470459 -3.906543254852295 -0.5758532881736755 -0.339824765920639 4.248504161834717 0.04541477560997009 0.727154552936554 2.151017189025879 0.4022883176803589 -0.2515895664691925 0.3633922040462494 -1.113993287086487 -0.3403771221637726 0.0003118672757409513 2.0294189453125 2.832032203674316 0.8379266262054443 -0.06088848784565926 1.269313335418701 -2.030551433563232 -1.668656706809998 1.498933911323547 2.048534631729126 0.6556811332702637 0.6210088729858398 -1.33629322052002 -6.148656368255615 3.61490273475647 -3.757303476333618 3.423357009887695 -2.374702453613281 -1.197287321090698 -0.7861245274543762 0.1269521415233612 1.787760734558105 2.190688610076904 0.7736960649490356 -0.7154728174209595 -1.249329447746277 -1.603448987007141 -0.6387233734130859 1.303261518478394 3.606222629547119 3.919223546981812 3.091882467269897 1.019997000694275 -3.168501853942871 -4.899145126342773 -1.413185596466064 2.948186159133911 -5.096660137176514 -0.7864799499511719 -1.921873450279236 -2.762947797775269 -3.141228437423706 -2.706290006637573 -2.336817741394043 -1.735097408294678 -1.686154127120972 -0.6251711845397949 1.458673357963562 2.992332696914673 4.512560844421387 4.720959663391113 4.050472736358643 1.488114476203918 -0.9130719900131226 -0.6937777400016785 2.230068922042847 -1.346580862998962 -0.7976869344711304 -0.8808369636535645 -2.949674844741821 -4.014623641967773 -2.822420835494995 1.083713293075562 4.127925872802734 4.515237331390381 3.390237092971802 -0.1287930458784103 -3.728860855102539 -0.7648059129714966 1.671968817710876 2.003270626068115 -1.16916286945343 -0.5852150321006775 2.172300577163696 -2.329458951950073 0.5499764680862427 0.358457624912262 -0.4992374777793884 3.336735010147095 1.498843789100647 -0.6374315619468689 -1.804556846618652 -1.113049387931824 -1.090686678886414 0.1789370179176331 -0.4513640403747559 -4.053735256195068 -3.143187046051025 -2.379745244979858 -1.398135304450989 0.4567070603370667 3.827675342559814 2.545870304107666 -2.650899887084961 4.961931705474854 0.4675460755825043 0.0318748876452446 1.416666984558105 0.6002232432365417 -2.059746503829956 -3.125505924224854 2.082553863525391 2.900876998901367 -2.082984924316406 -2.638264894485474 2.189123153686523 -1.826845288276672 0.3554781079292297 1.365400314331055 1.37950587272644 -0.20357546210289 1.446929454803467 0.9811457991600037 0.6315570473670959 -0.472800225019455 -0.4388346672058105 -0.2344044297933578 -0.849833071231842 -3.345343589782715 -2.826060771942139 -1.520564198493958 0.7624252438545227 3.355126619338989 2.398891448974609 -1.882467985153198 -4.767358779907227 -4.065673828125 -2.004006147384644 -1.066236257553101 0.8513294458389282 3.839807271957397 5.058109283447266 1.91477632522583 -0.4093771278858185 1.870300769805908 2.393833875656128 -0.0564795695245266 -0.5010339617729187 -0.5252552032470703 0.05419864878058434 0.263132631778717 -0.01849362067878246 -1.303780317306519 -3.378253936767578 -3.488091230392456 -1.333951592445374 1.430064678192139 5.151139736175537 3.816533327102661 -0.5493816137313843 -1.038339734077454 1.653360724449158 -0.5862375497817993 -0.9361066818237305 -4.34959602355957 -0.2458246648311615 0.7402305006980896 4.644649028778076 -4.315028190612793 6.151956081390381 1.941355466842651 -5.948561668395996 0.797458291053772 -1.551777124404907 -1.525060534477234 2.004741668701172 -0.3898306787014008 2.803936958312988 -1.568340539932251 -2.95022988319397 4.539616584777832 1.824672818183899 -0.820562481880188 -1.380958914756775 0.6647427082061768 -1.843630194664001 -0.4889211356639862 2.054418325424194 1.768492937088013 1.282490730285645 -0.1037737801671028 -2.434236288070679 -2.364559650421143 -0.07177185267210007 1.032116889953613 1.099005222320557 1.554517388343811 1.176052927970886 1.283626675605774 0.3361565172672272 0.5653849840164185 -0.3139529824256897 -3.069697380065918 -3.800623655319214 -5.168447494506836 2.098379850387573 1.798455595970154 3.332380533218384 0.7680978178977966 2.751090526580811 -0.8489375710487366 -7.870937347412109 1.876347899436951 0.8816798329353333 -0.3352073132991791 -1.078357696533203 3.528999805450439 0.9242259860038757 -1.358763813972473 2.644371271133423 3.413114547729492 1.67173957824707 -1.363125920295715 -1.848823428153992 -0.3104478418827057 -1.353336334228516 -1.347145557403564 -0.7445839643478394 3.77938437461853 2.993147850036621 0.4129238426685333 -1.977230310440063 -2.109279870986938 0.3041840195655823 2.412634611129761 0.7223978042602539 -1.392147541046143 -4.622053146362305 2.280272483825684 0.9303337931632996 1.511996030807495 -2.436215400695801 2.20874285697937 3.72291374206543 -1.578287839889526 -3.270700216293335 -1.30840802192688 -2.584612131118774 7.199164390563965 5.639228820800781 3.882253408432007 0.7759840488433838 -2.359249591827393 -2.870411396026611 -1.954083442687988 -1.539823770523071 -0.4486651122570038 -0.3732754588127136 0.6135104894638062 0.2169491648674011 -1.946075677871704 -3.375437259674072 -1.79188859462738 0.6840245723724365 -1.269964814186096 -1.881776213645935 2.695850372314453 -1.896317362785339 -0.8080898523330688 -0.2103544473648071 -0.06832022964954376 -1.123983144760132 -2.301493167877197 -2.940392732620239 -1.477601885795593 -0.8414900302886963 -0.7257471084594727 -0.3215399086475372 -0.4625894129276276 -1.10373318195343 -1.348937034606934 -0.9856061935424805 1.992084622383118 -0.128867506980896 -2.682020425796509 -0.7331782579421997 7.922133445739746 8.349717140197754 1.439423084259033 0.2572260797023773 0.3887234032154083 2.877299070358276 4.279431819915771 2.002367973327637 -0.7325559854507446 -2.497083425521851 1.455586552619934 0.7781453728675842 -6.164517402648926 -3.831222534179688 3.051114320755005 -0.6906889081001282 -2.347918748855591 -2.374441862106323 -0.929098904132843 2.193138360977173 0.7620028257369995 0.08306961506605148 1.624141573905945 -0.1278207898139954 -1.845260143280029 -0.3868854343891144 3.964265584945679 3.378515958786011 -1.694218039512634 -3.119768857955933 -1.609663128852844 2.311115503311157 3.874553918838501 0.1010498180985451 -1.383771300315857 2.460033416748047 3.20344614982605 0.9234535098075867 -4.31144380569458 -3.966475248336792 -1.715403437614441 -1.679863691329956 -0.2207600623369217 -0.8121403455734253 -0.970670223236084 0.5701048970222473 0.09830325841903687 0.04112470895051956 3.362931966781616 4.0138840675354 1.806106925010681 1.044528961181641 1.34040379524231 -1.306107401847839 -3.775233030319214 -1.430840969085693 0.5711982846260071 0.4318476915359497 -8.243371963500977 0.9778024554252625 2.583982467651367 -0.0831008180975914 -2.519084930419922 -2.462416410446167 -1.594884753227234 -1.199584126472473 -0.7757186889648438 -0.4026131629943848 0.8164576888084412 1.447077035903931 -0.5694954991340637 -1.416383266448975 -0.1281112432479858 0.5631314516067505 1.14222526550293 2.495215177536011 3.208263397216797 3.935092926025391 7.66112756729126 -2.455862760543823 -5.872114181518555 -1.8723224401474 0.6998337507247925 -0.9634463787078857 -2.811930894851685 -2.859386682510376 -0.7437832355499268 2.277597427368164 1.397117018699646 -0.9798871278762817 -3.738078594207764 -2.125317573547363 2.14862847328186 1.315360546112061 -1.314367532730103 1.248083829879761 2.618282794952393 0.05492019653320312 1.275793671607971 7.597745418548584 -2.158586025238037 -2.938581228256226 -1.72258460521698 -0.8887978196144104 -0.0840914249420166 0.5052283406257629 1.195479512214661 2.106095790863037 3.074187278747559 3.045332908630371 -0.01851080171763897 -1.468672037124634 0.8962899446487427 0.5471946001052856 -3.104886770248413 -4.746195793151855 -5.080262184143066 1.067072868347168 2.571664094924927 2.306813716888428 1.648616313934326 -1.849972486495972 3.226638317108154 2.257411479949951 0.5219392776489258 -0.5989087224006653 0.06023003160953522 2.301773309707642 2.159093618392944 1.021427512168884 -0.6410099864006042 -2.220914840698242 -2.875962018966675 -1.784097194671631 1.057564973831177 2.121126651763916 1.330727219581604 -1.429377913475037 0.3601927757263184 3.401676177978516 1.464607119560242 -11.73413753509521 -3.794840812683105 -3.448805332183838 -2.838809728622437 -0.8295835852622986 1.316970467567444 1.8645840883255 1.23262083530426 1.007864594459534 1.985741138458252 2.071584224700928 0.04022420942783356 -2.221260547637939 -2.083492517471313 -0.7302404642105103 1.9165118932724 1.965276837348938 2.633802175521851 2.14700984954834 4.949888706207275 -7.185054302215576 3.609154462814331 2.434276342391968 0.8928325176239014 -0.1498316824436188 0.2479646950960159 0.9367567300796509 1.024337768554688 0.5454397201538086 0.4587807953357697 -0.2356830835342407 -1.164620637893677 0.1006302237510681 1.72371506690979 3.173871278762817 -0.0009914684342220426 -2.387315511703491 -5.024709224700928 -5.499818325042725 3.367495775222778 -4.052287578582764 -1.591322660446167 -1.825435280799866 -2.150434970855713 -2.621929407119751 -2.289903163909912 -0.7359009385108948 1.646371126174927 3.194739103317261 2.339303731918335 1.409732222557068 1.457520365715027 1.613039135932922 0.9518581628799438 0.8195027709007263 2.934353351593018 2.558130025863647 -3.247446537017822 -3.867941617965698 -2.675986289978027 2.08175253868103 -0.3093160390853882 -0.835271418094635 -1.150156378746033 -1.678059577941895 -0.1613420397043228 2.913862228393555 3.739522457122803 1.982236385345459 -0.8735901713371277 -1.272524118423462 -0.3717261254787445 -0.5633774995803833 -0.9696149230003357 -2.141363859176636 -0.2537407875061035 5.180625438690186 -1.612857460975647 -4.855942726135254 -3.936721324920654 7.16935396194458 -1.725458860397339 -1.186820864677429 -0.8205283880233765 -0.9186801910400391 0.1904848963022232 0.1453497111797333 -0.7094876170158386 1.533177852630615 3.181315898895264 2.600384473800659 1.814068078994751 2.555005073547363 3.669476270675659 1.493212938308716 -4.262375831604004 -4.213309288024902 3.217337846755981 0.9968889951705933 -1.720976233482361 -5.839066982269287 4.62887716293335 5.617956638336182 4.711224555969238 1.177598595619202 -1.25556492805481 -1.010066509246826 -0.9369958639144897 -0.7958201766014099 -1.143312454223633 -0.8345605134963989 -0.5754700303077698 -0.2699837684631348 1.35710871219635 -0.4121522605419159 -3.067024946212769 -5.772094249725342 -2.069222927093506 1.758733868598938 -1.231003761291504 0.1217701137065887 -0.1159271895885468 0.821042001247406 2.314310789108276 -0.2236680388450623 -5.007972240447998 -6.288604736328125 -1.269732236862183 4.359742641448975 4.507987022399902 1.83780562877655 0.4881592392921448 0.5740888714790344 2.081774950027466 0.2648633420467377 -2.986263990402222 -5.330811023712158 -1.722606420516968 1.583829283714294 1.727774024009705 2.384208202362061 -1.640856862068176 0.5256378054618835 1.528967499732971 0.6920586824417114 -3.754474639892578 -5.384864330291748 -2.662916421890259 1.895923376083374 3.657480955123901 1.952844142913818 1.246854662895203 0.806419312953949 -0.9099503755569458 0.3963871598243713 0.4317761659622192 1.582202076911926 2.902565479278564 4.316998958587646 -4.00571346282959 -3.577343463897705 -2.014410018920898 -0.9699628353118896 0.1718983352184296 0.03949877247214317 0.09602415561676025 0.2394635379314423 -0.2785386741161346 -0.7722175121307373 -0.7962647676467896 -0.5732556581497192 0.2055183351039886 1.073575973510742 0.9582253694534302 1.094063758850098 0.7891679406166077 0.06506816297769547 -0.0804188996553421 1.733665347099304 0.1490028351545334 -1.130106210708618 -1.613322257995605 -1.20709216594696 -0.9819656610488892 0.100926049053669 -2.193729400634766 -5.598783016204834 -2.340989589691162 1.721211075782776 1.787777304649353 1.075205564498901 1.045644760131836 0.4821473062038422 -1.17065703868866 -0.4248511791229248 0.5546662211418152 -0.6324701309204102 0.07814858853816986 5.055663585662842 3.287301540374756 0.9751696586608887 -6.438221454620361 -3.034084796905518 1.181200861930847 3.426241159439087 -0.5531871318817139 -3.649101495742798 -2.274588108062744 1.345062971115112 3.962940692901611 2.461493253707886 0.1025941148400307 -1.561909794807434 -0.4186883866786957 -0.01728061772882938 -2.94070291519165 -0.2239212095737457 3.797638893127441 0.6755555868148804 0.9355751276016235 3.223381519317627 1.015803813934326 3.125324249267578 4.612008571624756 2.567328214645386 -0.5580847859382629 -0.4178664684295654 0.7826746106147766 -0.3516343235969543 -0.8355296850204468 -0.8597845435142517 -3.910168886184692 0.3256617188453674 1.142997622489929 -1.761329650878906 -1.273059964179993 -0.8701618909835815 -0.179423525929451 -4.112878799438477 1.007897019386292 0.5502256155014038 -0.7150840163230896 0.3122595250606537 1.239510893821716 2.848442316055298 2.781967163085938 -1.105071306228638 -3.522068023681641 -1.587732791900635 1.626759767532349 3.770409822463989 -0.5641489028930664 -4.096752166748047 -2.618404626846313 -1.854638576507568 -2.300654411315918 -2.274564027786255 5.401237010955811 1.910033464431763 0.002572018653154373 0.745927631855011 0.3883191049098969 -1.707669377326965 -4.676046848297119 -4.609840869903564 -1.295810580253601 0.5089675188064575 2.365602970123291 5.770671844482422 6.889104843139648 1.647375345230103 -2.814334154129028 -1.24828827381134 -1.841241836547852 -0.1341859847307205 -0.8136023283004761 0.3114830851554871 1.987286806106567 0.874433696269989 -1.461726784706116 -0.1405019313097 -1.159355282783508 -1.440540075302124 -1.440516233444214 -0.1136730536818504 2.31513500213623 1.81186044216156 1.859626650810242 1.779043674468994 2.028892517089844 1.276183366775513 1.467326760292053 2.654965400695801 2.68584156036377 0.5475837588310242 -1.131666898727417 -2.921167373657227 -2.759979248046875 3.215917587280273 -4.754122734069824 -5.921351909637451 4.984585285186768 4.229278087615967 1.579556107521057 -4.76039981842041 -6.580567359924316 -3.12081241607666 -0.4806137382984161 -0.0630495473742485 -0.127580314874649 0.01634879596531391 0.4631707072257996 -0.7536261677742004 -1.362088084220886 -1.607821941375732 -3.859269380569458 -1.472748160362244 2.388311147689819 5.192093372344971 3.759419441223145 1.575805306434631 3.950888395309448 3.574319839477539 1.551233768463135 -0.8778896331787109 -0.4673118591308594 0.4091207683086395 -1.292404294013977 -3.753393411636353 -4.600126266479492 -2.529347658157349 -0.6998153924942017 -1.750494599342346 -2.865834474563599 -0.3434666395187378 4.900280952453613 3.302380323410034 1.433253645896912 -0.5249667167663574 -0.7124294638633728 1.296011447906494 3.656460285186768 1.837764739990234 0.2115099728107452 -0.398909330368042 -1.372710108757019 -1.598230481147766 -0.8803108334541321 -4.105282783508301 -4.693819046020508 -2.690914630889893 -0.1923439204692841 2.184429883956909 3.295293807983398 0.1182713657617569 -0.9839699864387512 -3.676902770996094 -1.441415429115295 2.301230907440186 3.729691743850708 4.700153350830078 0.4671164751052856 -1.533605098724365 -1.407259225845337 -0.09667783975601196 2.304092407226562 3.068086624145508 2.850079298019409 1.122531533241272 -1.148253440856934 -1.593063354492188 -1.087430953979492 -0.9353883862495422 -0.03636074066162109 -1.442529439926147 3.378866672515869 4.119542598724365 -3.383687734603882 3.110209703445435 -3.451993227005005 -4.304284572601318 3.022115468978882 0.4212996959686279 -5.260384559631348 -5.03773021697998 -0.4252432286739349 1.659762024879456 -0.1280300617218018 -1.86340594291687 -0.9987885355949402 1.203965425491333 0.0792284682393074 -5.287661552429199 0.9158254265785217 4.318248748779297 0.9395741820335388 0.5360367298126221 0.5103887915611267 3.204955816268921 0.763538658618927 1.426300883293152 3.256726980209351 1.876342177391052 -1.375297427177429 -4.006753921508789 -4.833859443664551 -4.200634479522705 -3.27719259262085 -0.7353278994560242 1.157040476799011 1.48169732093811 2.35602855682373 2.06672477722168 2.287012577056885 3.781905174255371 -0.6356787085533142 -3.057964324951172 0.2314467579126358 -2.132731676101685 0.3676562607288361 5.392857074737549 3.048077821731567 2.725038528442383 1.58044159412384 -0.168928399682045 -0.4902862310409546 0.8290096521377563 0.5696977376937866 -0.4775168597698212 -2.923431873321533 -4.803501129150391 0.8080835342407227 4.603496074676514 0.5739788413047791 -1.04686439037323 -2.101531267166138 -0.03988733515143394 0.5580613017082214 -3.533805847167969 -3.287264347076416 3.577136278152466 -0.4142954647541046 -1.66756010055542 -1.759037733078003 0.6831538081169128 1.534312009811401 2.140157699584961 0.9718847870826721 -2.687642812728882 -3.891808986663818 -2.556697368621826 -0.3312273621559143 1.470361709594727 2.495124101638794 2.153951168060303 -1.205095410346985 -0.6211956739425659 10.15773487091064 -0.6219488978385925 -3.337560415267944 -2.512618541717529 1.730190753936768 1.80750036239624 1.356786131858826 1.03377377986908 2.644163846969604 3.421843767166138 3.353516101837158 0.1886256188154221 -1.793168187141418 -2.514832019805908 -1.671969652175903 -2.081163167953491 -0.3478952348232269 0.5352653861045837 -0.6271575689315796 -4.642775058746338 -3.963194847106934 -4.043620586395264 -1.845553517341614 7.459671020507812 2.246662616729736 0.2016398459672928 -2.066519021987915 -2.167887210845947 -1.520911455154419 -0.9548236131668091 -3.787577867507935 -5.536649227142334 -0.0315396748483181 3.257961273193359 2.192927837371826 0.507627010345459 1.885614037513733 3.6100914478302 2.338510751724243 1.476654529571533 3.08937406539917 -2.046329975128174 -2.558128595352173 -0.1366939097642899 0.9409266114234924 0.1299967169761658 0.4150329530239105 1.657934427261353 3.4643394947052 2.971324682235718 1.26098108291626 -3.431446075439453 -3.467576265335083 -2.766378402709961 -1.298755288124084 2.578521251678467 2.456178665161133 -0.7263119220733643 -3.805424928665161 -4.849814891815186 4.408540725708008 -0.1302659809589386 -3.103549718856812 3.295742750167847 -4.206661224365234 -3.093836307525635 -1.885167956352234 0.3432153761386871 1.920194029808044 3.301616191864014 3.043381690979004 0.693256676197052 -3.202852249145508 -3.460277557373047 -0.07581372559070587 4.513870716094971 5.212947845458984 0.01259410567581654 -1.202102303504944 -0.804783821105957 1.467697739601135 1.828694939613342 -0.5030103325843811 -3.902971267700195 -0.08068391680717468 -0.8876106739044189 -2.114362478256226 -2.314155340194702 -0.8555014133453369 0.1941107660531998 -1.435997366905212 -4.036779403686523 -4.782611846923828 -1.647210240364075 0.6695964336395264 1.313233256340027 3.23312783241272 4.20278263092041 3.928963661193848 3.312346458435059 -1.261749148368835 -3.984436511993408 -1.144672989845276 7.691615581512451 0.1973518133163452 1.134447336196899 2.264684677124023 3.129763126373291 3.192946910858154 0.4772716462612152 -2.8204345703125 -5.624075412750244 -4.664904117584229 -1.667420268058777 1.273649454116821 3.002247095108032 4.387224674224854 2.545683860778809 -0.8016163110733032 -2.084271907806396 0.7862294316291809 -2.196537256240845 -1.952954530715942 -0.5792983174324036 0.5695887207984924 0.6340851187705994 1.423723578453064 1.273433566093445 1.780985593795776 0.4616143703460693 -3.98089861869812 -6.27265739440918 -4.35621976852417 -1.658235907554626 -1.609244108200073 -1.676583170890808 1.289169788360596 0.7930409908294678 -0.6181238889694214 -0.7524999380111694 4.227668285369873 1.216794610023499 4.233243465423584 3.021116256713867 -0.9315301775932312 -0.693462610244751 0.9812681674957275 2.268364429473877 1.248473525047302 0.6391181945800781 2.592506408691406 2.078622579574585 -3.31908130645752 -1.000458717346191 4.82146692276001 5.076925754547119 -1.44421911239624 -2.212822675704956 0.8249605894088745 -1.255263328552246 -2.779444694519043 -1.482762455940247 -3.967663049697876 -1.445004224777222 -4.247566223144531 -4.628451824188232 -5.143855094909668 -1.432929039001465 2.186558723449707 2.138543605804443 2.390938997268677 1.632461905479431 0.9359801411628723 0.7484003305435181 2.069157838821411 3.952538728713989 2.265897512435913 0.3787554800510406 -0.7099461555480957 2.280219316482544 2.796808481216431 -4.414876937866211 -3.899014949798584 0.7003780603408813 2.506306886672974 -0.4629577696323395 -2.654558181762695 -3.057210922241211 -1.589912056922913 0.6660507321357727 0.8343724012374878 -0.06786613911390305 0.2687220573425293 1.116681098937988 4.011116504669189 3.427970409393311 -0.07037731260061264 -1.994296669960022 0.6851036548614502 1.337218642234802 -6.063977241516113 1.615261435508728 0.551310658454895 -1.058965921401978 5.075595855712891 2.839337110519409 1.125145673751831 0.05325284227728844 1.526267886161804 3.579237461090088 3.655905723571777 -0.7969452142715454 -5.469647884368896 -4.784720420837402 -2.22431492805481 -0.04531000554561615 0.7196849584579468 0.7189165353775024 -1.134250044822693 -2.05254602432251 -0.7627865672111511 -0.01343510672450066 -1.984909296035767 -0.02447272278368473 -1.973973870277405 -2.853821754455566 -4.159491539001465 -2.701791286468506 1.136979699134827 3.45562219619751 2.987138748168945 1.540666460990906 1.570943355560303 2.480554819107056 3.631794452667236 0.9033071994781494 0.19173464179039 1.192399859428406 0.3931145071983337 -2.101349115371704 -3.979198694229126 -4.028999805450439 -1.865604519844055 4.17998218536377 2.612542390823364 2.637369394302368 1.938381552696228 1.562232732772827 2.033096313476562 1.097117304801941 -0.7239171862602234 -1.550070405006409 -2.626423358917236 -3.72711181640625 -4.890734195709229 -2.117693185806274 4.722455501556396 3.587860345840454 -0.6683249473571777 -1.841630458831787 -0.09125998616218567 -1.731591701507568 -1.034153461456299 0.8118547201156616 -1.86566698551178 -1.534289836883545 -0.2549380958080292 1.605711340904236 1.997530341148376 0.6981138586997986 -0.2005807459354401 -1.214897513389587 -1.97079610824585 -1.371358275413513 -2.205374240875244 -2.777385473251343 -2.003430604934692 1.749455094337463 3.131277084350586 -3.150391340255737 3.633936405181885 0.8237195014953613 -3.67561411857605 8.58498477935791 -0.9080625176429749 -0.5643367171287537 -0.1798691153526306 0.3851201832294464 2.832698583602905 4.753808498382568 4.441968441009521 2.946808338165283 3.046150207519531 2.228733539581299 1.332873344421387 -0.803180992603302 -2.1224205493927 -2.686851501464844 -2.861533403396606 -1.780993461608887 -0.7767348289489746 -1.709251284599304 -3.636190891265869 -3.938740015029907 -3.286377429962158 -2.94014835357666 -1.962908864021301 0.2306658327579498 1.673109769821167 1.795318484306335 1.700936913490295 1.911530256271362 2.253362417221069 1.707910060882568 0.1459473073482513 -2.16858983039856 -1.435630559921265 1.814271569252014 3.619447469711304 0.9067350625991821 0.7779750823974609 -0.3734017014503479 -3.564304828643799 -2.805852651596069 4.532641410827637 1.556758284568787 -5.955741405487061 -3.451792001724243 -1.025020599365234 -0.7284210324287415 -1.581573486328125 -1.020163536071777 2.192934989929199 -0.989959180355072 -1.528468489646912 -2.001089811325073 1.483138084411621 0.3208783864974976 -0.6298050284385681 4.813745975494385 3.783868551254272 -1.100683450698853 0.6418613791465759 0.6868882179260254 -0.9921926856040955 -0.1352859884500504 2.291607141494751 2.5090651512146 -0.08225294202566147 -2.002672433853149 -1.56878650188446 0.8675857782363892 1.95181667804718 0.05126297101378441 -1.328660368919373 -1.25770115852356 -1.280509948730469 0.7901251316070557 2.449223041534424 -2.889055728912354 -1.136701822280884 -5.171831130981445 1.222669839859009 5.712295532226562 1.915411353111267 1.660171627998352 0.2547465264797211 -2.513649225234985 -3.243869304656982 -1.794315934181213 0.4055875837802887 2.701183795928955 2.845400810241699 -0.5983377695083618 -4.491726875305176 -3.158946514129639 0.2569545209407806 1.605349183082581 0.2164389491081238 -0.4218901097774506 2.315808296203613 -0.1155387312173843 2.845340013504028 -0.6841148138046265 -0.8538243770599365 -0.07624401152133942 0.8141910433769226 0.6994466781616211 -0.2983684837818146 0.7337501645088196 0.997434139251709 0.8233739733695984 4.670567512512207 5.26185941696167 -5.157133102416992 -4.986374855041504 -1.486152172088623 0.5323930978775024 0.8082526326179504 -0.3009117245674133 0.1093277633190155 1.363349676132202 -2.639734029769897 -1.015202403068542 0.9368481040000916 0.7757503390312195 -0.5035182237625122 -3.261734008789062 -4.876591682434082 -3.212521553039551 -0.02773032709956169 2.458033323287964 2.474524736404419 1.163027405738831 1.029763460159302 1.897167086601257 -0.4114074110984802 -2.601962089538574 -2.087533473968506 1.40582287311554 2.001470565795898 0.006993690971285105 0.7180596590042114 2.115538597106934 -2.183514833450317 -1.155147194862366 0.2214956134557724 0.7958913445472717 1.262578010559082 0.08206032961606979 -1.663285851478577 -3.088372230529785 -2.322583913803101 -0.7113370895385742 1.018126130104065 0.4799972772598267 -1.57696259021759 -0.1492600291967392 -1.367772221565247 -2.607873678207397 1.811965346336365 4.857338905334473 5.928305149078369 0.368346780538559 -1.69674015045166 -1.277707934379578 -1.086201429367065 -0.8835206031799316 -0.5684354305267334 -1.010282635688782 0.633206844329834 2.393503189086914 1.857365489006042 -1.809373259544373 -2.73065710067749 -1.90215015411377 -0.3549813032150269 0.7240884900093079 1.660195350646973 1.469058632850647 4.3583083152771 7.525566577911377 -3.538461446762085 -3.762785196304321 5.7382493019104 -3.85563588142395 -5.315161228179932 5.921488285064697 -4.281460285186768 5.260439872741699 -9.275504112243652 1.76386547088623 1.221485733985901 -5.1672043800354 -2.833406448364258 4.669177532196045 2.562131643295288 3.457016706466675 1.666059613227844 1.092357039451599 -4.354482173919678 0.117755115032196 0.1451983600854874 1.467633128166199 1.738956570625305 1.276961803436279 0.6706709861755371 0.9255129098892212 1.672762036323547 2.881028652191162 3.253419160842896 0.3127984702587128 -2.325064659118652 -4.894453525543213 -1.702617883682251 -1.549631595611572 0.1964573562145233 1.112061738967896 1.874354362487793 0.939062774181366 -3.833739995956421 -6.543989181518555 4.608721256256104 -0.6132685542106628 3.30802845954895 3.743199825286865 3.949561357498169 3.241483211517334 1.122807621955872 -0.1012496575713158 -0.8875467777252197 -3.341885089874268 -4.868460655212402 -4.514423847198486 -3.085786104202271 -2.029554843902588 -1.811974763870239 1.623563051223755 3.215551137924194 -0.01514841802418232 -2.545238733291626 -0.3552898764610291 3.973867416381836 -0.6215028166770935 -12.22462272644043 -6.464321613311768 5.936203956604004 10.26612567901611 0.3533716797828674 -5.842537403106689 6.700780391693115 3.567131280899048 -1.324599266052246 -1.190125465393066 -1.678467631340027 0.8134780526161194 0.6276314854621887 -0.3319787979125977 0.07532181590795517 0.7096930742263794 0.3629662692546844 -0.2506147921085358 -1.022657752037048 0.9172195792198181 -3.405005693435669 -2.632751226425171 -1.104950308799744 -0.4617224931716919 -0.9894509315490723 -1.864806771278381 -1.15491771697998 0.2464453428983688 1.455269455909729 2.032581567764282 2.211673736572266 4.441634178161621 1.761250495910645 -3.639087915420532 -5.115172863006592 1.147759795188904 4.164153099060059 4.534347057342529 1.261209964752197 -2.888462066650391 -2.444375514984131 -1.03214955329895 -0.6666702032089233 -0.8459668159484863 -0.2256809622049332 1.404442310333252 2.994933128356934 3.488863229751587 3.119350671768188 1.66137969493866 0.9976102113723755 1.134762644767761 -0.8957454562187195 -3.684870719909668 -4.358022212982178 -2.877231359481812 -1.611382246017456 -2.883767604827881 0.5206760168075562 6.203844547271729 -1.351171255111694 0.08814587444067001 1.972174644470215 3.17270302772522 0.3024349212646484 -0.9654114246368408 -0.5868905782699585 0.7191372513771057 -0.08535508066415787 -3.633039236068726 -6.124952793121338 -4.659860134124756 1.063521146774292 2.28391695022583 2.131966829299927 4.141183376312256 4.395400047302246 -1.373229742050171 -2.471087694168091 0.9804191589355469 -1.542289853096008 -0.9070443511009216 1.950586199760437 2.989598751068115 0.8862497806549072 -3.760587215423584 -3.477617502212524 0.9040294289588928 2.352634191513062 4.5486159324646 2.783955097198486 -0.8741428852081299 -1.712838292121887 -2.486133813858032 2.116595983505249 1.617660760879517 0.8580408692359924 0.4273018538951874 -1.75425922870636 -4.920356273651123 -0.2104582786560059 1.539854288101196 2.947955846786499 3.108729362487793 -1.656308054924011 -4.609014987945557 -4.329689979553223 0.01759308204054832 2.197838544845581 0.1032348647713661 -2.490244388580322 -3.26110053062439 -3.24273681640625 -0.2256909161806107 1.429942727088928 1.03976035118103 2.869428157806396 3.413915395736694 0.3720668256282806 0.9849210977554321 -2.468743085861206 -3.041579961776733 -3.417840957641602 -4.082282066345215 -2.656680583953857 -0.05570569261908531 1.917701482772827 3.339271068572998 3.247806310653687 3.444195985794067 3.534446716308594 2.249480009078979 -0.3618398904800415 -0.7035619020462036 -0.7965534329414368 -2.988089323043823 -1.385775566101074 2.730974912643433 1.12250292301178 0.3722683787345886 -3.53771185874939 -3.864402770996094 -3.594928503036499 -2.26500129699707 -0.3527889549732208 0.02643513306975365 0.4437484741210938 2.315786838531494 1.980449676513672 -0.5039483308792114 -0.1344144493341446 -0.05589749664068222 -0.3053185641765594 -1.719434022903442 -1.045078039169312 0.5995876789093018 0.5909432172775269 4.78416109085083 2.644230842590332 3.993580341339111 2.135690450668335 2.470329284667969 2.287582874298096 0.6162289381027222 -0.3576080203056335 0.3570308089256287 2.526720285415649 2.971996307373047 0.3376413881778717 -2.737874984741211 -2.415783882141113 -2.369345188140869 -3.722419023513794 -2.282341241836548 -0.5268208980560303 -3.380814075469971 -0.7139467597007751 2.445013523101807 1.384738802909851 0.9739827513694763 0.6892144083976746 -0.7755703926086426 -0.9179646372795105 -1.104295015335083 -4.173151969909668 -1.825912475585938 2.335436820983887 1.37088680267334 -7.677338123321533 3.041042566299438 0.7694249749183655 -0.3475957214832306 -0.4376232922077179 -0.1537235230207443 2.025394201278687 2.20682168006897 0.1810460090637207 2.339884519577026 0.7899954319000244 1.664023041725159 0.9722591638565063 1.080639719963074 -0.6150646209716797 0.3913913667201996 5.73197078704834 -0.7731648087501526 3.10522985458374 -4.624513626098633 2.272378444671631 -3.130392551422119 1.771270632743835 0.741333544254303 -1.314170718193054 -0.2636646330356598 0.7419057488441467 -2.675032377243042 0.9024366140365601 -1.069159150123596 -2.469605445861816 -0.7760494947433472 0.5212695002555847 -2.132228136062622 2.612447261810303 5.015206813812256 -7.030396461486816 0.5633965134620667 2.181003093719482 -0.9754311442375183 1.057846426963806 1.888550639152527 -1.328085064888 -0.9201077222824097 -0.7608626484870911 1.413591384887695 -1.662752509117126 -0.1425493955612183 0.4111571609973907 -1.092167615890503 -0.6277540326118469 1.007864356040955 0.7876244187355042 -3.649866104125977 -5.050781726837158 -1.887533903121948 1.347736716270447 -0.492973804473877 -2.776907444000244 0.9731534123420715 1.778215169906616 -0.6990918517112732 -1.511082291603088 4.794960975646973 5.955360412597656 2.471929788589478 0.2214550226926804 -4.337646007537842 -1.260016560554504 0.2205745726823807 2.015838861465454 1.099048733711243 -0.7874332070350647 6.530407905578613 -0.3863449096679688 -5.952509880065918 2.478557348251343 0.7585934996604919 -0.9226968288421631 -0.2257856279611588 -2.849920034408569 1.794929981231689 3.634504795074463 -0.8041509985923767 -1.332000851631165 -1.02665901184082 -0.5165682435035706 -0.7698636651039124 -0.07768085598945618 0.1644118130207062 0.4671123623847961 -0.1769070476293564 0.7433757781982422 -0.06600571423768997 -1.079881548881531 -2.933520078659058 -1.483096599578857 0.9383431673049927 -0.1625253409147263 -3.234504699707031 -2.970511436462402 0.2017260938882828 -0.3278959393501282 -1.339880704879761 1.211628198623657 4.394339084625244 1.822871208190918 0.6182709336280823 3.54756236076355 0.4751554727554321 4.778993606567383 -5.134444236755371 -6.193244457244873 -3.176199436187744 0.6801114678382874 1.143396973609924 0.2180878669023514 0.8771732449531555 0.7413792014122009 -0.2389177829027176 0.1126995459198952 1.303455948829651 2.647835254669189 2.627485513687134 -2.618185043334961 -3.498697757720947 -2.876373291015625 1.47896945476532 -0.6928929090499878 0.3147088587284088 2.125945329666138 5.023263931274414 -2.668442487716675 -1.650956511497498 0.2424901574850082 1.404856443405151 1.14376437664032 -0.6741237044334412 -2.145938873291016 -3.34625768661499 -2.49115252494812 -0.6849365830421448 -0.2060147672891617 -0.05462698638439178 -1.345702290534973 -1.338747262954712 3.761161088943481 1.588302373886108 1.295844674110413 2.464917182922363 1.572971701622009 3.132583141326904 0.1871038973331451 0.4954811334609985 0.04791008308529854 -0.6528371572494507 -0.3231654167175293 0.876278281211853 1.357858777046204 0.011256268247962 -1.015754461288452 0.1041342169046402 -1.264799118041992 0.7102871537208557 2.152963161468506 4.265294551849365 0.9986034631729126 -0.3931733071804047 4.33096981048584 -8.162398338317871 -4.569711208343506 0.8436927795410156 1.603586912155151 0.4870936274528503 -0.2213805764913559 -0.4609602689743042 0.4110568463802338 0.303532749414444 0.01096658688038588 0.06359908729791641 -1.705424070358276 0.9849494695663452 1.61255943775177 1.172182321548462 -0.9711759090423584 2.73061466217041 -6.156934261322021 1.810209393501282 -1.542398452758789 0.9320940971374512 0.1937434822320938 -1.257914066314697 1.579040169715881 -0.2433784157037735 -1.672214269638062 -0.6848471164703369 1.030548930168152 -0.2684314548969269 0.01845100708305836 4.338749408721924 5.995797157287598 -1.614572048187256 -7.091094970703125 -0.9613765478134155 0.6383325457572937 -0.02656086534261703 1.667960524559021 -0.216257631778717 -2.935107231140137 -2.810086488723755 0.5046302676200867 2.750415086746216 5.685893058776855 3.163216352462769 -0.4088685512542725 -3.265186548233032 -1.913361668586731 -0.3799533247947693 -0.4437901377677917 -0.6762396693229675 -0.7051770091056824 -1.418257236480713 -2.830198049545288 -0.6916139721870422 1.338987588882446 1.835981607437134 2.278292179107666 1.826688528060913 -0.9239478707313538 -3.342416524887085 -3.405107975006104 4.275057792663574 -3.138552665710449 -1.094781637191772 1.529457449913025 2.972817182540894 3.732217073440552 2.33418607711792 0.5593523979187012 0.4908125698566437 0.3558463156223297 0.4672195315361023 0.2037717700004578 0.176104947924614 -1.133292317390442 -2.114072561264038 -0.3769603371620178 -1.45184338092804 -1.216614246368408 -1.393083095550537 -4.846780300140381 3.944191694259644 -5.019831657409668 -3.771313190460205 -2.539316654205322 -1.398217558860779 -0.4494338035583496 1.081843852996826 1.422099232673645 1.314233183860779 1.041459321975708 -0.07761901617050171 0.04250325262546539 0.5065903067588806 1.527674794197083 0.4347424209117889 -0.7826052308082581 -2.61234450340271 3.288515329360962 0.3317862451076508 -0.69339919090271 6.35263729095459 2.251860380172729 4.04280948638916 3.865673303604126 0.8188772201538086 -3.078532457351685 -4.502622604370117 -4.583059787750244 -2.465086460113525 -0.9406352043151855 1.851559638977051 2.448692083358765 1.115672588348389 -0.2699349224567413 0.5184076428413391 2.866621971130371 1.54410457611084 -2.381492853164673 1.269447565078735 -1.434101581573486 -2.938257932662964 -2.347013235092163 -2.001991510391235 -1.434831738471985 -0.8298280239105225 0.4620734453201294 1.875778436660767 1.253874063491821 0.7603420615196228 -0.5217772722244263 0.2630568742752075 0.01150889601558447 -1.841344118118286 -1.586396098136902 0.6315964460372925 -3.0359046459198 -3.549762487411499 6.989432334899902 3.879693746566772 0.7547399401664734 0.2667502164840698 2.59989333152771 1.274308085441589 -0.01152442954480648 -1.263461351394653 -1.295027494430542 -2.524879455566406 -1.609083294868469 3.557408571243286 2.483957767486572 -4.707064151763916 -1.482265949249268 4.238638877868652 1.865494966506958 -0.1574246138334274 -1.977993369102478 -1.023856043815613 3.222598075866699 -0.3063560724258423 -2.31501317024231 -0.5683553814888 -1.708734631538391 -1.514800071716309 -1.129241108894348 -1.292758464813232 -1.690871477127075 -3.039062738418579 -4.668495178222656 -3.020464658737183 0.8907089829444885 3.335945606231689 2.574652433395386 0.2507872879505157 -0.02416657842695713 -1.391170382499695 -0.7406736612319946 0.9291949272155762 3.995064973831177 3.58231258392334 1.294066786766052 3.367705106735229 -0.7308525443077087 0.5534930825233459 1.876127362251282 2.385608673095703 -1.369242072105408 -2.313159704208374 1.087968349456787 5.111093521118164 0.5589612722396851 -4.287982940673828 -1.545682072639465 2.03200101852417 -0.8129301071166992 -0.9434912800788879 -1.036221027374268 -1.846355438232422 0.5198851227760315 5.268942356109619 -3.66060733795166 -0.8475566506385803 -1.151612520217896 -1.791241526603699 0.3302052021026611 -0.2721012532711029 -0.3806628584861755 -0.9549692869186401 -0.6866446733474731 -1.774772047996521 -1.472887873649597 -1.674550294876099 0.9231255650520325 1.066949248313904 0.8665286898612976 3.924666404724121 -6.023348808288574 4.330567359924316 3.760181665420532 -0.06783535331487656 4.309100151062012 -3.26069188117981 -0.88199782371521 1.981577634811401 3.75695276260376 1.546116232872009 -2.148651123046875 -2.566235542297363 -1.9017333984375 -0.7683435678482056 0.8630893230438232 1.533197164535522 1.407054424285889 1.714533090591431 -1.641535401344299 -3.778181791305542 -1.345935344696045 -0.02263041399419308 -0.3932666480541229 0.608609676361084 1.132511258125305 0.9048671722412109 7.196781635284424 1.468628644943237 -2.52098274230957 1.786643266677856 1.94323205947876 -1.514943957328796 0.1491302847862244 0.6869137287139893 -3.366606712341309 -3.640038967132568 -0.2857992351055145 2.221171140670776 -3.165215492248535 1.668398380279541 -1.082773089408875 -0.1408033519983292 1.175822496414185 -1.392779588699341 -0.3199502527713776 -0.8668237328529358 -3.947493553161621 0.03975019603967667 2.965737819671631 1.466609954833984 -3.87905216217041 -4.130489826202393 1.936582565307617 4.800464153289795 1.152953743934631 0.835141122341156 -0.1746273934841156 -0.8576342463493347 -0.9760010838508606 -0.2643941938877106 -1.002382040023804 0.8332653045654297 0.5182068943977356 0.6255298256874084 0.4843355417251587 -0.4265030920505524 -3.640172004699707 -3.737707853317261 -2.923035144805908 0.3282618522644043 1.48232638835907 -0.441068023443222 0.7756396532058716 1.693741202354431 1.413447856903076 0.8937015533447266 1.847288370132446 -0.8475233316421509 -3.840097904205322 -3.062532424926758 3.513256311416626 2.630796670913696 1.897123336791992 1.093554258346558 -3.189511775970459 4.112508773803711 -0.6489149928092957 0.5130596160888672 1.673443555831909 2.117481470108032 0.0827990397810936 -1.47014045715332 -1.104773283004761 -1.167572379112244 -1.090356588363647 -1.019984841346741 -1.115590929985046 -1.883090257644653 0.5330615639686584 2.586933135986328 2.465914487838745 4.256698131561279 0.5812928676605225 -5.436106204986572 -1.564060568809509 1.689914464950562 0.6048972010612488 0.8798101544380188 -0.2702876925468445 -1.161617517471313 -1.391723990440369 -1.502087354660034 -1.778924107551575 -0.7998572587966919 0.1514480412006378 -0.633873462677002 0.9010939598083496 3.499900102615356 3.461895942687988 3.49565052986145 5.038520812988281 6.190263271331787 -4.197624206542969 -6.022910594940186 -4.015003681182861 -2.449573516845703 0.9015991687774658 1.457147836685181 2.144871711730957 2.21974778175354 1.175731897354126 0.322929173707962 2.050617218017578 4.716849803924561 3.125296592712402 -0.01539208833128214 -0.2587837278842926 0.6095321178436279 -1.256268978118896 -1.625360727310181 -2.985262393951416 -1.15560519695282 -2.401651620864868 -5.022729396820068 -3.00604510307312 -0.9972224831581116 1.380930304527283 1.067306756973267 0.2246159017086029 0.365425318479538 2.081364631652832 3.191563844680786 3.615046977996826 1.521717667579651 -0.1809195280075073 -1.923221468925476 -3.112886905670166 -1.92116904258728 1.394784927368164 1.284379482269287 -2.220463275909424 -1.478888750076294 0.8971588015556335 -2.612983465194702 -6.165031909942627 2.591264247894287 -0.272815614938736 -0.6798882484436035 -0.6335951685905457 -0.04987706989049911 1.403038382530212 -0.08515746891498566 -0.9812989234924316 -0.7015728354454041 -0.4563063979148865 0.5457165837287903 2.790622711181641 1.10162079334259 0.4895525574684143 3.30007529258728 2.073791980743408 -0.7823245525360107 -2.715193748474121 1.766475558280945 -8.859146118164062 2.746285200119019 2.103977680206299 0.5472617149353027 -2.602070569992065 -4.229795932769775 -3.166706085205078 -0.2284818589687347 1.825952768325806 2.842360973358154 3.158400058746338 3.215318202972412 0.7962328195571899 -1.601359248161316 0.08501449972391129 1.723167061805725 2.608096599578857 2.034399747848511 1.310831308364868 0.416411429643631 -4.472352981567383 -6.366658210754395 -5.485379695892334 -4.297726631164551 -2.217624425888062 0.2768277823925018 0.9465814232826233 -0.8696280121803284 -1.632207155227661 -0.03004632517695427 1.303911805152893 1.784476041793823 2.256384611129761 2.824195623397827 2.50342845916748 1.330517888069153 0.7959917783737183 -0.193672776222229 1.446552276611328 4.229986190795898 0.2517535388469696 -5.224321365356445 -2.005870819091797 -0.1439944356679916 -0.7407601475715637 -1.52299952507019 1.990339875221252 2.370657920837402 -6.703121185302734 1.059283852577209 2.654191732406616 0.6987029910087585 1.020458817481995 0.03746103867888451 1.287217497825623 1.982913851737976 0.7155669331550598 -0.9581405520439148 -0.567360520362854 -1.221967935562134 -1.37591826915741 1.423339366912842 0.3196007609367371 0.8668915033340454 1.01660430431366 0.1034482419490814 -1.281264901161194 -3.159471035003662 -3.684342384338379 -1.496236443519592 0.5283424854278564 0.7569391131401062 0.06740052998065948 2.390336751937866 3.822274208068848 -0.04812368005514145 -5.812849521636963 -2.595292806625366 0.7279472947120667 0.5582651495933533 4.936729907989502 1.982794642448425 2.170500993728638 -0.1483595818281174 -1.556460618972778 -2.396624565124512 -0.3265185654163361 1.396482944488525 1.125537157058716 -0.7775927782058716 -1.990305662155151 -1.264681696891785 1.09859824180603 3.085969686508179 2.28730845451355 2.327304840087891 -1.27954638004303 -0.111607514321804 -1.398654818534851 -5.230142593383789 2.969053506851196 0.01973943971097469 0.2485319674015045 1.270951747894287 0.8527784943580627 -0.5065891146659851 -1.079405069351196 -1.735257506370544 -1.137871980667114 1.475104093551636 4.318470001220703 4.439592361450195 2.234207153320312 -2.03368878364563 -2.031128644943237 -1.205292701721191 -2.716577768325806 -3.6485276222229 -1.695624470710754 2.759658098220825 0.820486307144165 -0.6298169493675232 -3.21246600151062 -2.581574678421021 -1.3803551197052 0.68104088306427 1.19791853427887 1.027921199798584 -2.324929475784302 -2.265019178390503 -1.810427188873291 2.766178131103516 5.736523628234863 -0.03758067265152931 -0.7454152703285217 2.999567985534668 1.000487685203552 -2.319940567016602 2.99962592124939 -2.992578744888306 1.774289727210999 -0.5132672190666199 -2.324465751647949 -2.494159698486328 -1.857834696769714 0.9909756183624268 3.729615688323975 4.034987449645996 2.637047290802002 1.430828809738159 0.5229517221450806 0.1707436889410019 0.6221446394920349 0.3805403709411621 -1.113720178604126 -2.124089002609253 -2.893681764602661 -2.391358613967896 -0.9509013891220093 1.584174871444702 0.8280807733535767 -0.7818822860717773 -3.279093742370605 -2.522412061691284 -1.822725653648376 -1.5146564245224 -1.0070880651474 -0.8679795265197754 0.1694394499063492 1.498874306678772 1.507836222648621 0.3237001597881317 -1.602571725845337 -0.8729630708694458 1.063968896865845 2.431190490722656 1.298272371292114 -1.288565158843994 -3.286158323287964 -1.909510493278503 -0.01807212829589844 11.69851684570312 1.9761723279953 3.046615600585938 4.641309261322021 3.941258907318115 -1.744837284088135 -5.600364685058594 0.7032915949821472 2.552472829818726 -0.8877605795860291 -2.581939697265625 -2.959408521652222 -3.066996812820435 -1.791499495506287 0.2938017845153809 0.1250737309455872 0.8268405199050903 -0.3802095651626587 -0.3068093955516815 -1.443376183509827 2.656371831893921 3.672005891799927 2.591688394546509 0.19033382833004 -2.395688056945801 -2.132944107055664 -1.378620028495789 0.06012586131691933 2.014268398284912 2.738793134689331 1.87729287147522 1.618634462356567 1.746564149856567 3.592814207077026 2.198830366134644 0.4244254231452942 -2.973081827163696 -4.933310508728027 -4.118823528289795 -4.763049125671387 -0.03027168288826942 -1.659799337387085 -0.03053028136491776 1.045113921165466 1.227718710899353 -0.1633797585964203 -0.9574674963951111 2.941096305847168 4.191059112548828 2.474253416061401 -0.8774530291557312 -1.305905222892761 -2.518466472625732 0.5843521952629089 3.87605357170105 0.8032591938972473 -0.5535963773727417 -0.1372668147087097 -2.293759346008301 -3.582501649856567 -3.062779426574707 -0.9753477573394775 -0.6185209155082703 -0.6955870389938354 -1.719986200332642 -2.313568592071533 -2.046369552612305 -0.7299229502677917 -0.1431421786546707 -1.810551047325134 -1.519577145576477 3.551153898239136 5.033046245574951 4.033206939697266 0.2534317374229431 -2.178523063659668 -1.691487908363342 1.181924819946289 5.7584228515625 -1.256636500358582 -2.111962556838989 1.35952889919281 1.058261275291443 0.2898530662059784 -1.559389233589172 0.1257677227258682 1.414305686950684 0.3267423510551453 -4.892368793487549 0.7362755537033081 0.1806825399398804 0.4358586966991425 -1.968353033065796 -2.907437562942505 -1.4133380651474 0.4416031241416931 -1.642604231834412 1.369425058364868 4.703865528106689 -2.313536167144775 4.254855155944824 5.839766979217529 3.618801116943359 0.3395464718341827 -2.535825729370117 -3.016909837722778 -2.122210264205933 1.960120558738708 5.249429702758789 4.21408748626709 2.151787281036377 -0.1207830309867859 -0.8710322976112366 -1.64888870716095 -1.782386779785156 -2.057308197021484 -2.614068031311035 -2.066056489944458 -0.8994701504707336 -0.4921998381614685 -3.146404027938843 1.270758986473083 0.4981606304645538 -1.289483428001404 -2.575528621673584 -1.575491666793823 -2.203043222427368 -3.650526285171509 0.5493277311325073 4.23436450958252 0.8644081950187683 -0.8472791314125061 0.987879753112793 -1.540350079536438 1.819575667381287 1.702721476554871 0.1340120285749435 -3.420907258987427 1.067797422409058 5.456310272216797 -1.48271107673645 -4.451383590698242 -3.755133628845215 -1.82866632938385 0.3984891176223755 -0.951784074306488 -3.135467052459717 -1.728514432907104 -0.04023090004920959 1.404926657676697 0.1494394689798355 -0.7724082469940186 -0.570627748966217 2.107621192932129 4.318464279174805 1.510631322860718 1.465327143669128 0.6502286791801453 -0.4973269402980804 4.060819149017334 1.665605545043945 -1.05268120765686 -0.9534827470779419 -0.6732161641120911 0.5275088548660278 0.5511384010314941 -0.03755126520991325 0.07956549525260925 1.919205069541931 3.078785419464111 2.298753499984741 4.050081253051758 1.275439143180847 -4.113246440887451 -4.659193992614746 -3.202828407287598 -2.202170610427856 -1.878964781761169 -1.835919618606567 7.133494853973389 -0.3047038912773132 3.397567987442017 3.766955852508545 4.43159008026123 3.538892030715942 -0.3002689182758331 -2.479736566543579 -2.73085880279541 -2.692430257797241 -1.698422789573669 1.863077878952026 3.463094711303711 0.1606989502906799 -1.343940138816833 -2.06696081161499 -0.8699946999549866 -1.248955607414246 -3.672839164733887 -3.862622976303101 -0.6676210165023804 3.012771606445312 -0.6110478043556213 -0.9072748422622681 -1.245896816253662 -2.864366054534912 -3.761975526809692 -3.233641862869263 -0.7312024831771851 0.7240825295448303 3.445564031600952 5.342422485351562 1.633359909057617 -4.056819915771484 -5.072022438049316 0.4060265719890594 1.812990069389343 1.78030788898468 1.815221071243286 0.530630350112915 3.593682050704956 1.399961113929749 2.163651466369629 0.8974334597587585 -2.989454984664917 1.252920031547546 2.619703531265259 -4.353257656097412 2.999261617660522 -2.945071220397949 -0.3621189892292023 0.9966713190078735 -1.617904782295227 1.541269421577454 0.1673654764890671 -0.6667944192886353 -1.567312955856323 0.4599047601222992 -1.898073434829712 1.29564893245697 1.391135573387146 0.6150220632553101 2.517238855361938 1.410249710083008 -0.3158705234527588 -2.062621831893921 -2.365298509597778 -0.4074690043926239 -1.450215101242065 -2.68840479850769 -0.05973474308848381 1.476058483123779 0.5065557360649109 -1.031965851783752 -0.9773908853530884 -3.933051347732544 1.317268013954163 0.1638581305742264 -2.734279632568359 2.314821243286133 3.650205373764038 4.670043468475342 -2.282395839691162 -2.747188806533813 -1.730971574783325 0.4156885743141174 0.702764630317688 0.7957024574279785 2.072203397750854 1.297626972198486 -2.483386516571045 -5.123660564422607 0.2562307119369507 1.801027417182922 -1.060787320137024 1.335592865943909 6.180609226226807 1.921746015548706 -1.224457621574402 -1.187418460845947 4.501907348632812 -3.44082498550415 -1.140081524848938 -2.814337968826294 -0.931449294090271 1.394097924232483 0.2153871059417725 2.28806734085083 1.976774096488953 -0.6914021372795105 -2.467367649078369 8.430156707763672 0.6897558569908142 -0.3542301058769226 -1.420809864997864 -1.110457420349121 1.173167943954468 -1.087818264961243 -3.823419570922852 -1.277307271957397 0.7987177968025208 0.1525568068027496 0.3685346245765686 -0.2521028518676758 -0.2922182977199554 -0.3171975910663605 -1.216607451438904 0.2239763587713242 1.916216611862183 2.473952770233154 0.3221211433410645 -1.675219058990479 4.132746696472168 3.914035320281982 -5.390508651733398 -5.243728160858154 0.8539519906044006 4.814949512481689 -2.84544038772583 -0.7398339509963989 0.8198337554931641 -1.867464780807495 0.7342661619186401 -0.01463430561125278 -1.29353141784668 -2.156312704086304 -1.126276731491089 1.267405271530151 1.906457185745239 1.130183935165405 -0.02080252952873707 -1.609390497207642 -1.994526624679565 0.3755637407302856 -2.643950223922729 -6.270133018493652 -0.3753513693809509 5.171947479248047 1.43317699432373 1.414733171463013 3.197651386260986 0.8735224604606628 1.245159029960632 1.81938624382019 3.887174367904663 4.402950286865234 1.393079280853271 -0.2933463752269745 -0.3961271941661835 0.1692074686288834 1.09541392326355 0.5334194302558899 -0.695104718208313 -2.069591283798218 -2.656838417053223 -1.380606293678284 3.67685079574585 -5.394083023071289 -5.489723205566406 -0.0689258798956871 1.622476577758789 -1.400772333145142 2.219863176345825 2.198966503143311 1.199610590934753 -0.6769376397132874 -0.9114306569099426 -1.44481635093689 -2.597196102142334 -1.850537538528442 -1.743741869926453 -1.699656963348389 -1.111023783683777 -0.8135321736335754 -1.509403586387634 -1.757909655570984 -0.9990682601928711 0.8946291208267212 1.652252316474915 0.5192946791648865 0.5508427619934082 7.879798889160156 0.08627790212631226 -0.352785587310791 -1.505839228630066 -2.173711776733398 -1.321738600730896 -0.3925156891345978 -0.1446467489004135 0.1024910137057304 0.3447778224945068 0.3017198741436005 -0.5197684764862061 -0.8500537872314453 0.1553759425878525 0.1786637455224991 0.2850920557975769 1.277270674705505 1.664149045944214 1.610536217689514 0.7945935726165771 0.4601131081581116 -0.8324769139289856 0.004387835040688515 0.5643593668937683 0.346871018409729 -0.4143480658531189 0.4651801884174347 1.393947005271912 2.925382852554321 1.800491809844971 -0.222584143280983 -2.090665817260742 2.75069785118103 7.229732036590576 2.794186592102051 -3.316712379455566 -3.867590427398682 -1.585769772529602 -4.047162055969238 -3.213950872421265 -0.6839743852615356 -1.053339123725891 -1.532515645027161 -1.272014141082764 -1.943403601646423 -3.084941625595093 -3.434366464614868 -2.110629081726074 0.3083342015743256 0.6609321236610413 0.7842252850532532 0.6473435163497925 0.8418018221855164 0.5776985883712769 0.4204946458339691 4.626517295837402 7.943256378173828 0.845883846282959 1.233871579170227 -2.174356460571289 -2.284794330596924 0.1832716166973114 -0.4268336594104767 -1.267805218696594 -1.709869384765625 -0.5305456519126892 0.3674589991569519 0.1298015564680099 0.7501029968261719 0.6456313729286194 -0.6937118172645569 -4.45004940032959 0.7561370134353638 5.738455295562744 -1.007960319519043 1.383902907371521 4.442962169647217 -1.60377311706543 -2.916305541992188 1.951486468315125 -1.74235987663269 5.478209018707275 2.763286352157593 0.1907121539115906 -2.010389804840088 -0.7422595024108887 0.5569106340408325 1.102149605751038 -2.372735977172852 -3.09471321105957 0.2367222756147385 1.444461703300476 0.753203809261322 3.167746305465698 6.109694480895996 -0.8254058361053467 -4.4361572265625 -2.733795166015625 -0.03519377857446671 -3.816632270812988 -1.735818266868591 2.145143270492554 2.902304410934448 1.735076069831848 -1.060021877288818 -2.352748870849609 -2.72128438949585 -2.147922515869141 -1.102774024009705 -2.313727855682373 -0.6042326092720032 -1.304415941238403 -2.456649780273438 -2.086045026779175 1.710857629776001 4.482873439788818 7.53724479675293 1.060777068138123 -0.1099622324109077 -1.375148296356201 -1.939335227012634 2.805823564529419 2.718520164489746 3.06906533241272 0.5964243412017822 -3.258936643600464 -3.670506954193115 -1.451389312744141 2.102123498916626 2.564121961593628 0.6076732277870178 -0.3388808071613312 -0.59478360414505 -0.8475059866905212 -0.386567622423172 3.662489652633667 4.471081733703613 -3.298681735992432 -6.766214370727539 -1.449633955955505 -0.5342206358909607 3.333135604858398 1.725234746932983 -0.05917806178331375 -1.200749635696411 0.3582500517368317 2.08272910118103 3.269086599349976 2.971601247787476 2.278128862380981 2.053563356399536 -0.4305766522884369 -2.679158926010132 -1.699803590774536 -1.725454211235046 -1.852011680603027 -3.52437424659729 -2.624058246612549 -1.370424628257751 -2.974032878875732 2.068089723587036 0.7300598621368408 0.9286527037620544 0.4690899848937988 -0.5915138125419617 -0.8803994059562683 -0.1646547317504883 0.2853293418884277 -0.06886313855648041 -0.3139051496982574 -1.092487812042236 -1.670052289962769 -1.559359192848206 -0.7439225316047668 -2.235743284225464 -3.587430953979492 2.322990894317627 5.273247241973877 3.622897624969482 5.463759899139404 -6.187698364257812 0.04920459911227226 -0.4138303995132446 0.243647038936615 0.4813270568847656 1.019590258598328 -0.4301485121250153 -4.3324294090271 -0.005256227217614651 -0.01158559508621693 0.9164841175079346 -0.5561929941177368 -7.103898525238037 4.332442283630371 2.241353511810303 1.801789283752441 1.014440059661865 -0.0771755576133728 1.381010770797729 0.1392876952886581 -0.6900590062141418 2.01094126701355 -8.840018272399902 1.069246411323547 -1.084383726119995 3.039701700210571 -1.371479988098145 2.82773494720459 -0.5893377661705017 0.9046841859817505 2.152605772018433 0.130592554807663 1.572691082954407 0.5286253094673157 -1.220544219017029 -0.7493510246276855 1.298364877700806 -0.52510666847229 -0.7555492520332336 0.5338075160980225 -0.9332287907600403 -1.515900611877441 -0.5287664532661438 0.02138320542871952 -0.08847950398921967 1.179110050201416 1.166744112968445 0.3275284767150879 -0.3910714983940125 0.9981274604797363 1.566396355628967 0.9157280921936035 1.207241892814636 -2.162854433059692 -2.386226892471313 1.823522567749023 2.785845518112183 0.7005510330200195 -1.227026343345642 -0.7795233130455017 -3.612332344055176 -0.8056474924087524 0.4130642414093018 1.030588626861572 1.208819389343262 2.569214582443237 1.563028693199158 -0.9008945822715759 -1.250939607620239 1.052812457084656 1.99735689163208 1.750177025794983 1.64970064163208 -0.3399961292743683 -2.263405799865723 -3.939839124679565 -4.848467826843262 1.288721561431885 4.373429775238037 -2.817300319671631 -1.730421185493469 4.398905754089355 0.919450581073761 -2.397307634353638 -1.48506760597229 -3.484066009521484 -6.312099456787109 1.232280373573303 4.541868209838867 -0.8619783520698547 -2.213992595672607 -0.8484045267105103 0.1358030885457993 2.767056941986084 -1.469879269599915 -0.7181640863418579 3.178452253341675 0.02406773902475834 -0.4922002255916595 1.136059045791626 1.949217677116394 -0.2276657223701477 0.3830579519271851 -0.01230426970869303 -2.737083673477173 -1.741576313972473 3.928742647171021 6.60343599319458 1.933004260063171 -0.9754073619842529 -0.8301846981048584 1.279482960700989 1.46198570728302 1.675611615180969 -1.816817283630371 -1.406123638153076 -1.004090905189514 -0.321149080991745 -2.541867971420288 -3.164283275604248 -0.4867659211158752 0.7820807099342346 1.85450804233551 3.503858804702759 3.91967511177063 2.35407543182373 0.1486390233039856 -0.08479894697666168 1.305164098739624 0.2734384536743164 -2.229823350906372 -3.198352813720703 -3.515724420547485 -1.535397171974182 1.487228274345398 1.126807808876038 -1.526113986968994 -1.218683481216431 0.8017659783363342 -3.747550964355469 -0.5007978677749634 2.70096755027771 3.304495334625244 3.319874048233032 2.810394287109375 3.664436817169189 4.500162124633789 2.524105072021484 -0.1029922813177109 -2.29908561706543 -2.097378492355347 -2.607158660888672 -4.082388401031494 -3.850815534591675 -4.374883651733398 -3.658360004425049 -1.331148624420166 0.1287888288497925 0.03983134031295776 0.8927544951438904 0.5184105634689331 0.1324127465486526 -0.6631520390510559 -2.456928968429565 -2.840767860412598 -1.690516710281372 -0.7244755625724792 -0.9214229583740234 -0.08829448372125626 -0.1416297554969788 -1.490013837814331 -1.31697952747345 0.9013311266899109 4.279376029968262 4.518374919891357 -1.527072072029114 -3.905913114547729 -1.918677687644958 3.445153951644897 7.242285251617432 -0.8330909013748169 -0.8547506332397461 -1.002581477165222 -0.4809522926807404 -0.2057351619005203 0.4169751107692719 1.259698510169983 0.4396704435348511 -0.4354678094387054 -0.4879927933216095 0.867415189743042 2.855930805206299 -0.6113927960395813 -3.349229097366333 -0.8049419522285461 0.587507963180542 -0.04810728877782822 -0.5467925667762756 -0.6772913932800293 1.111591577529907 1.966445446014404 -0.6269298791885376 -0.6474055051803589 -0.03791651502251625 0.5507333874702454 1.005316853523254 -0.0245465561747551 -0.2395180761814117 -0.143607422709465 0.3078622221946716 0.7394601106643677 0.9445894360542297 0.345738559961319 1.348352193832397 1.33486795425415 1.541133522987366 3.652918100357056 0.1804796010255814 -0.1130997315049171 0.502081036567688 -10.62050437927246 -1.79146671295166 -0.5602762699127197 1.142598986625671 0.1449309289455414 -1.743457555770874 -2.651652336120605 -3.003703355789185 -1.964361906051636 -1.917770028114319 -1.449868679046631 -0.9305822253227234 0.07521495223045349 2.259527444839478 3.324147701263428 1.903745174407959 -1.479177951812744 0.7492966055870056 9.940327644348145 1.314756512641907 -3.362226963043213 -2.046612024307251 -1.482483506202698 -1.839763164520264 -4.346721649169922 -5.095214366912842 -0.8335946202278137 3.042556047439575 3.208396434783936 0.4192072749137878 -1.109411716461182 1.67880916595459 5.395397663116455 2.874510765075684 0.07067225128412247 0.2552483677864075 0.7535077929496765 -0.124852143228054 -2.720198392868042 2.542780637741089 -0.642231285572052 -4.236565589904785 -3.702650308609009 -1.894917726516724 0.5285468101501465 2.99497389793396 2.933282852172852 0.5138083100318909 -1.26378071308136 -0.829133927822113 1.076542615890503 2.010394334793091 2.561738014221191 2.608696937561035 3.383423566818237 3.919377088546753 0.7894454002380371 -1.710481882095337 -0.983987033367157 -3.946410179138184 -4.752305507659912 4.310616016387939 2.705586433410645 0.7157266139984131 -1.442261934280396 -2.330213308334351 -0.9929413795471191 -0.3994666934013367 -0.9292001724243164 -0.8844471573829651 -0.06307733058929443 1.100482583045959 0.291367769241333 -0.9830474853515625 0.3469436168670654 -0.02115641348063946 -3.30620265007019 -4.880945205688477 4.386973857879639 4.807640075683594 -2.432382583618164 0.9424914717674255 0.2372087687253952 0.1085052713751793 0.7694780230522156 3.311416625976562 4.465609550476074 2.371778964996338 0.1124070584774017 0.2652880549430847 0.01393753010779619 -0.198256716132164 -1.825438380241394 -2.67084813117981 -2.56573224067688 -2.714336395263672 -3.069093704223633 -4.880091190338135 0.8437320590019226 6.009586811065674 -1.527645587921143 3.487513303756714 0.9369924664497375 -1.264194130897522 -1.65328848361969 -0.1827923208475113 -1.65233838558197 -3.020734310150146 -3.425989627838135 -1.239329099655151 4.524533271789551 7.945565223693848 5.376322746276855 1.932855486869812 -1.89636754989624 -2.872833967208862 -1.5417240858078 -1.544376492500305 -0.7161530256271362 -1.85902214050293 -1.334640502929688 3.575641870498657 -2.140479326248169 -4.728575229644775 4.778760433197021 -0.2178809344768524 -0.2643680572509766 -4.19535493850708 0.04190317541360855 -1.420573234558105 1.192662954330444 -0.1810762286186218 -1.406258106231689 1.751004099845886 1.175361514091492 -4.831809997558594 0.4343885779380798 0.5452494025230408 3.086219310760498 0.09999201446771622 2.705193996429443 1.488669633865356 0.6230473518371582 -0.3772713541984558 -0.88755202293396 0.7939217090606689 1.897245168685913 0.6011427640914917 -1.542657852172852 -1.903641700744629 0.9431750774383545 0.3882133364677429 -5.527318954467773 -5.419240951538086 -3.335561275482178 1.401542544364929 2.595142602920532 1.500421762466431 3.042678356170654 5.569425582885742 -1.851373195648193 -4.457861423492432 -4.25111722946167 -1.899293780326843 1.10222601890564 1.046847939491272 -0.834941565990448 2.48631763458252 3.981426954269409 2.32318639755249 3.308381080627441 2.898470163345337 0.1306009739637375 -1.099928855895996 -2.279291391372681 -1.298146843910217 3.465991497039795 -1.450250625610352 1.229582548141479 -0.9725422859191895 -3.429654121398926 2.050058841705322 2.280264377593994 2.002211332321167 0.7293190956115723 0.00934708584100008 -0.07563371956348419 -0.3953499794006348 -0.6061539053916931 -1.032893657684326 0.1086416617035866 -0.448949009180069 -1.931215882301331 -2.465993881225586 0.2038096487522125 0.09919945150613785 -0.2735584080219269 0.470416933298111 0.4162492454051971 -0.2916281223297119 -0.848143458366394 -1.393782019615173 -2.327441692352295 -2.157792568206787 1.973991394042969 6.027108669281006 5.338900566101074 3.331356287002563 0.3696639835834503 -2.185264110565186 -1.570574641227722 -1.800838708877563 -1.291267871856689 2.434555530548096 1.644800186157227 1.912709355354309 -2.250123500823975 -1.14780855178833 -2.065698385238647 -3.231765747070312 -1.610736131668091 2.840147256851196 -0.5065755844116211 -3.383320808410645 -2.846185684204102 1.314135670661926 1.626678109169006 -0.4990595281124115 -0.9715559482574463 1.905833005905151 4.507324695587158 1.312321543693542 -1.849607586860657 -0.06476990133523941 -0.461659163236618 -1.027477383613586 -1.192480206489563 -0.9565013647079468 -0.02667775005102158 1.805808901786804 -1.52638041973114 1.435736298561096 -0.5321202278137207 -2.50213623046875 -3.776311874389648 -3.163796424865723 -0.1304887682199478 2.73951530456543 3.51189923286438 2.445429086685181 1.391998529434204 -0.0461425743997097 0.6448684930801392 0.3274059593677521 -1.596135497093201 -2.801647424697876 -2.05764627456665 5.771510124206543 2.987147808074951 -1.713802218437195 -2.935284376144409 -1.79314661026001 -0.4897537231445312 3.013928413391113 4.958909511566162 0.6519218683242798 -2.718425989151001 -3.920622825622559 -2.566118240356445 -1.129867792129517 -1.031805634498596 -1.119361996650696 0.2783998250961304 -0.08195604383945465 -1.059302687644958 -2.016788005828857 -0.4750585556030273 -1.108274817466736 0.05081822350621223 4.492834568023682 6.063666820526123 -0.6767776012420654 -0.1957288682460785 -0.04472888261079788 0.1083610206842422 1.490352988243103 2.409213304519653 0.7489264607429504 -1.148550271987915 -3.208182573318481 -2.046503305435181 -1.4329833984375 0.6589847207069397 0.2104056477546692 -1.640016794204712 -2.836886882781982 -3.475991487503052 -1.430539846420288 7.495837688446045 3.220044612884521 1.794761061668396 1.186030149459839 1.849978446960449 1.639191508293152 0.6172394156455994 -0.09355918318033218 -1.050958156585693 -0.8904258012771606 0.6248625516891479 2.393120288848877 1.349990010261536 0.2049116790294647 0.6811513900756836 1.30882203578949 -1.003997802734375 -3.040266275405884 -4.450092315673828 -7.976119995117188 -3.844814777374268 8.824363708496094 1.670571327209473 -1.843494057655334 -2.282655477523804 -0.9885742664337158 2.558804035186768 5.65041971206665 3.609754085540771 -0.6687325835227966 -3.365294694900513 -1.857032299041748 -1.164284110069275 -2.105275392532349 -0.7656622529029846 -0.7471562027931213 -1.385410070419312 -0.3040576875209808 2.156218290328979 5.392293930053711 0.9884688854217529 -0.6510481238365173 -2.22727632522583 -2.182024955749512 0.02911118417978287 3.032117605209351 4.783159732818604 3.860750675201416 1.142744183540344 -2.06998348236084 -1.829299807548523 -0.2796923816204071 -0.2607273757457733 -1.079266428947449 -1.160606622695923 -1.738610982894897 -1.770478963851929 0.5134162306785583 3.140848875045776 2.047521829605103 -3.17074990272522 -3.470529079437256 0.4622991681098938 2.08658766746521 2.321782112121582 1.859747529029846 -1.249405026435852 -4.981188774108887 -4.812893390655518 -2.460597038269043 0.4683910310268402 2.628458976745605 1.839210391044617 -1.561433076858521 -1.339381456375122 1.409864664077759 4.562982082366943 2.748553514480591 0.6901256442070007 -1.172405004501343 -0.7502867579460144 -1.712900996208191 -0.5752169489860535 0.8184414505958557 -0.2962335348129272 -1.022157907485962 0.01561964675784111 0.6288811564445496 -0.7829751968383789 -2.530503273010254 -3.755099296569824 1.744163155555725 2.273992776870728 -1.020649671554565 -0.1963364481925964 1.319931626319885 1.892782807350159 0.7290130853652954 0.04840057343244553 4.038049697875977 2.872266292572021 -2.261462211608887 -4.51612377166748 -1.446102738380432 -0.7167303562164307 0.2515703439712524 -1.23483407497406 -2.609738826751709 0.3079873621463776 1.690143704414368 -4.403445243835449 -2.799608707427979 1.409569263458252 1.280640840530396 1.462202548980713 2.593785047531128 1.137232065200806 -1.32743239402771 -1.1048264503479 2.930372953414917 -0.7692573070526123 -0.8502528667449951 4.198720455169678 -3.718855619430542 -4.413382053375244 -2.711734533309937 2.262424468994141 5.887364864349365 2.504238128662109 -1.442863821983337 -2.787719964981079 -0.3718608915805817 -0.3677531778812408 0.3978939354419708 1.645890593528748 3.828397989273071 -0.7775834798812866 -4.310483932495117 -3.670040130615234 0.4069628417491913 4.75504207611084 2.082890748977661 0.8011701703071594 3.892307043075562 3.822668790817261 2.376802921295166 -1.261266589164734 -3.091756820678711 -2.18494725227356 -0.8012214303016663 -0.1136020794510841 0.2132180631160736 0.2839116454124451 -0.2682572603225708 -2.507866859436035 -1.160998582839966 2.282519817352295 -0.4657276570796967 1.579750418663025 3.038134813308716 -4.558950424194336 -2.232706546783447 1.157987356185913 0.79844731092453 0.8326568603515625 1.049015998840332 -0.4503269791603088 -2.355181217193604 -2.713284969329834 -1.367990851402283 -2.897423028945923 -4.049951553344727 2.635582685470581 6.964749336242676 -0.3327135741710663 -2.441974639892578 0.6748703122138977 3.510799169540405 -0.2816167175769806 0.4659367501735687 0.9373818039894104 1.330911874771118 -2.309890508651733 1.717276096343994 2.544231653213501 2.00365686416626 -1.235613584518433 -4.288255214691162 -2.787402868270874 1.9127436876297 1.894940972328186 -3.67094898223877 -5.479747772216797 -2.875224590301514 0.005169824231415987 1.559132933616638 0.08513864874839783 0.9387868046760559 -0.5025088787078857 0.1407343298196793 2.487510681152344 1.675570726394653 3.874813556671143 2.481478452682495 2.961296081542969 1.636443734169006 0.08288729935884476 -4.460241794586182 -5.584952831268311 -0.5584561228752136 1.288374781608582 1.671128749847412 2.791324853897095 1.298115491867065 0.1001590266823769 -1.22749924659729 -0.8381553292274475 -2.076330661773682 -2.292328834533691 -1.138233065605164 -2.386862277984619 7.480965614318848 -1.2291179895401 -0.5527461767196655 1.595328807830811 3.48974084854126 2.548578500747681 -0.2684855461120605 -2.436187267303467 -2.238657236099243 -1.490797638893127 -0.2697281837463379 1.40843939781189 1.933435678482056 1.937822937965393 2.167401552200317 3.993409633636475 -1.02372407913208 -4.459651470184326 -2.665486097335815 1.027994275093079 -2.209256649017334 -2.487433195114136 1.648601651191711 -1.325186610221863 -2.59160304069519 -0.3897635638713837 1.937838435173035 2.864520788192749 1.853426694869995 1.096339344978333 0.09384593367576599 -0.3646806478500366 0.1689387112855911 1.249445796012878 1.954450130462646 1.038281321525574 -2.723332166671753 -4.213016986846924 3.640157222747803 -6.037474155426025 -1.899118661880493 1.998327016830444 -5.695510864257812 -4.174426555633545 -0.04523338750004768 4.670047760009766 3.302312850952148 1.184760093688965 0.5913969874382019 0.790643036365509 1.841755390167236 1.575088500976562 -0.8008028864860535 -2.595237255096436 -2.689868450164795 -0.8327107429504395 3.241783857345581 0.4629069864749908 -3.158851146697998 -2.229681253433228 3.790990114212036 0.7706426382064819 0.2763624787330627 0.6423590183258057 1.892408013343811 3.692827701568604 1.536208868026733 -0.7880287170410156 0.04114867746829987 1.062060475349426 -3.543919324874878 -4.773282527923584 -0.2869487404823303 6.617877960205078 -1.308582544326782 -6.406513690948486 0.6333562731742859 1.39584743976593 1.096988797187805 0.668147087097168 -2.435470819473267 -0.01284445449709892 -2.929668188095093 -1.463376879692078 1.638237595558167 2.475247383117676 -0.2191907614469528 -3.497880220413208 -0.04315080866217613 2.382368326187134 2.61348295211792 0.5396826267242432 2.710929870605469 3.412773370742798 -0.4170291125774384 0.9737174510955811 -1.636469602584839 -1.267998099327087 -0.9241710901260376 -4.652457714080811 1.215757250785828 -0.9108089208602905 0.6292325854301453 0.2062002867460251 0.3606775104999542 3.292857646942139 1.227551937103271 0.3687893450260162 1.943183660507202 1.933870911598206 0.7714879512786865 -0.8543561100959778 0.4368536472320557 3.532084465026855 0.4997440874576569 -4.950562477111816 -3.96056079864502 4.164540767669678 0.8672187924385071 -6.245272159576416 -2.85256552696228 -1.370973110198975 0.2077154964208603 1.360790848731995 3.011338472366333 1.448279023170471 0.8481842875480652 -1.371118664741516 -1.681269764900208 0.8414862751960754 -0.3629663586616516 -1.602252840995789 -0.1024579927325249 -0.1697578728199005 -4.928637981414795 -4.290009021759033 4.711252689361572 1.019842028617859 -1.718722224235535 5.252682209014893 -0.8344643115997314 -1.639922499656677 -3.006164789199829 -4.607873439788818 -3.632050514221191 -0.08763166517019272 2.663437366485596 1.289820909500122 -2.095130443572998 -1.744541883468628 2.639355182647705 5.408267498016357 2.530782699584961 1.208352327346802 0.5823025107383728 -0.5013665556907654 -0.8788560032844543 -0.8186993002891541 1.320674777030945 0.2637715637683868 -2.344348669052124 1.809890627861023 1.760598182678223 1.771975874900818 2.057921886444092 1.416042923927307 -0.6168055534362793 -0.6877173781394958 -0.1423780769109726 -0.7616351842880249 -1.03268563747406 -2.153908729553223 0.7624067068099976 0.1311984807252884 -1.547802567481995 0.5320296883583069 -1.787500023841858 1.404358744621277 -2.131267547607422 1.601096034049988 -3.929259777069092 3.353332042694092 -1.364639282226562 -1.170698761940002 -1.504715204238892 -2.492687940597534 -1.75039279460907 0.6238287687301636 1.288414239883423 0.1642747074365616 0.2112672328948975 -0.2258281707763672 -1.472754001617432 -2.122465133666992 -2.151413440704346 0.5189334154129028 0.2608343064785004 1.190940022468567 0.1028645634651184 1.10194194316864 3.27560830116272 5.516687870025635 1.959387540817261 1.831663966178894 1.935948848724365 2.653372764587402 2.022023916244507 0.8812538981437683 -1.058476686477661 0.3819854855537415 1.619094967842102 2.249097347259521 1.621755242347717 -2.288035869598389 -7.003807544708252 -5.247036457061768 -0.5048026442527771 -0.5523558259010315 -1.325468420982361 -0.751647412776947 0.3117852210998535 1.264256596565247 2.868587732315063 2.118951559066772 1.803818225860596 1.661841511726379 0.8628541827201843 -0.7095708250999451 -0.4536882340908051 -0.06366419047117233 -0.3320952951908112 -1.215360522270203 -3.138045310974121 -4.249349117279053 -2.03001856803894 -2.836879730224609 -0.4425094723701477 5.499884128570557 -5.265222549438477 0.5111331939697266 2.232098579406738 3.177235126495361 4.700842380523682 0.8226092457771301 -9.462460517883301 6.794791698455811 -3.043027400970459 5.066953659057617 -4.148794174194336 1.778123021125793 -3.303350210189819 0.5842142701148987 1.695544838905334 0.2344068735837936 -0.08452018350362778 -2.03486967086792 -0.6564037203788757 -1.005685567855835 0.2908599972724915 0.5953078866004944 0.4169158935546875 0.7585396766662598 -1.197206974029541 -0.4662580490112305 -0.475071132183075 -2.406960964202881 -3.393859386444092 -3.422770977020264 -1.678554892539978 -0.003673851024359465 0.3097603917121887 0.08369193226099014 0.3067538440227509 -0.05054872110486031 0.7746817469596863 0.6275773048400879 0.5238117575645447 2.578717470169067 8.927600860595703 0.7547761201858521 1.309368371963501 -3.101839065551758 -3.396648645401001 -3.006953954696655 -2.54184627532959 -0.669414758682251 1.274054646492004 0.7544602155685425 -0.5457019805908203 0.1150546222925186 0.3017935454845428 1.347033500671387 1.149272799491882 0.3716540634632111 2.079627990722656 0.5113272070884705 -0.1361311674118042 -0.2812511324882507 -3.894354581832886 -3.966667890548706 6.400481224060059 4.134207248687744 0.5280729532241821 1.041056871414185 1.940832614898682 1.553367018699646 -0.1882649660110474 -1.781635642051697 -1.203657627105713 0.3910945355892181 2.17659592628479 2.519144296646118 0.8655117154121399 -3.366393804550171 -4.6307692527771 -2.398255586624146 -0.3263684511184692 1.662757515907288 4.807094097137451 -2.749747037887573 -3.072910070419312 2.232465267181396 -1.893018484115601 -1.217199563980103 -0.9682928919792175 0.3463273644447327 -2.676116228103638 -1.431546092033386 -0.8731400370597839 -0.1490593105554581 0.6183457970619202 0.6536892652511597 2.422162771224976 3.453183889389038 -4.791984081268311 -3.712500333786011 4.708353519439697 -0.1838409900665283 -2.173721551895142 2.417072296142578 0.2861114144325256 5.165168762207031 -2.034722805023193 -0.9588102102279663 -0.01749689318239689 -0.2261103391647339 -0.1477866172790527 1.578912377357483 2.098614454269409 2.074756622314453 2.235087156295776 2.421241760253906 2.078609943389893 2.313151597976685 1.591197371482849 -0.5774418115615845 -2.152228593826294 -5.887124061584473 -5.430069923400879 -0.5863301753997803 3.938504219055176 -2.311954259872437 0.193042054772377 -0.8256046175956726 -0.2352310121059418 -0.8852900862693787 -1.467100620269775 -0.7054958939552307 0.7411825060844421 -0.2379120439291 -1.60500156879425 -0.5094668865203857 0.04227841272950172 -0.3478812873363495 -0.03992712497711182 0.07689163088798523 -1.774202823638916 2.528244256973267 3.533122062683105 -7.166943073272705 3.626859903335571 5.058434963226318 1.391436100006104 3.105663776397705 1.916596651077271 1.276423335075378 0.7894902229309082 -6.508738994598389 0.1832661181688309 2.675395488739014 -0.7023449540138245 0.1622187942266464 3.792406558990479 -1.421934485435486 1.120653510093689 1.952394604682922 -0.9856393933296204 -4.68065071105957 2.596538782119751 -2.330784797668457 -1.614585995674133 -2.717800855636597 1.033023715019226 -1.053178906440735 -2.684606313705444 -2.478799819946289 1.353747129440308 4.171833515167236 2.574680328369141 2.271486043930054 1.932726144790649 0.9706431031227112 0.2737517356872559 0.3402403891086578 0.5320044755935669 0.7378954887390137 2.057255983352661 -1.097760438919067 -3.932865381240845 -1.886742949485779 1.42937445640564 -6.544708251953125 -2.669582843780518 -2.342683553695679 -1.537942409515381 -0.1841365993022919 0.9828346967697144 1.245828986167908 0.130805715918541 0.7215755581855774 1.161487698554993 0.1317613571882248 0.5843257904052734 2.470001220703125 1.020850539207458 -1.71483039855957 -1.117891311645508 -0.01830779202282429 -7.61931037902832 5.138027191162109 2.654516458511353 0.9626672267913818 2.701655626296997 1.582839846611023 0.58031165599823 0.7968406677246094 1.402288794517517 2.262923717498779 3.022931575775146 4.455127239227295 3.563494205474854 0.9642434120178223 -2.422784566879272 -3.648863792419434 -0.8347338438034058 1.796675682067871 -3.585479974746704 -4.955000877380371 -4.394599437713623 -0.2374833226203918 -0.8463470935821533 -2.204041957855225 1.177448868751526 -0.3372834622859955 -0.9290520548820496 -1.437718749046326 -0.6079438924789429 0.5688709616661072 0.1867759525775909 -1.220811247825623 -5.792614936828613 -3.623303890228271 3.93553352355957 1.617368459701538 -1.645743131637573 -1.735467314720154 1.705010175704956 1.853546500205994 0.08750929683446884 0.3738145232200623 2.375198841094971 3.448861598968506 0.3161343634128571 1.21888542175293 2.285951852798462 0.4127763211727142 -1.209391713142395 -0.689723789691925 -0.1063813045620918 0.1718097329139709 0.4380899965763092 -0.3762838244438171 -2.149899482727051 0.05767787992954254 3.16109037399292 -0.6023402214050293 -5.396179676055908 4.925402164459229 -3.090698957443237 -3.218554019927979 0.41961470246315 3.432022094726562 -0.06093846634030342 -2.644865274429321 -3.666503190994263 -2.493161678314209 0.8069440722465515 2.970539093017578 3.370298624038696 3.010579347610474 1.728769421577454 0.1816002130508423 -1.673816680908203 -2.438737154006958 -1.930779457092285 -1.29712450504303 1.008697032928467 3.663813352584839 -2.023665189743042 -5.031120300292969 5.518422603607178 1.001044034957886 0.7320125102996826 -2.331653356552124 0.06877173483371735 -3.11285924911499 4.714087963104248 -2.631018161773682 -0.7590774297714233 1.989057183265686 -2.383845329284668 -0.004400276578962803 -0.114359512925148 -0.8074385523796082 -2.197742223739624 0.3523499965667725 4.072504997253418 2.771194696426392 -1.188065052032471 0.05695556849241257 -2.919783115386963 3.693297624588013 -0.2235530316829681 -0.3803997337818146 0.5376530289649963 1.314172863960266 0.5564204454421997 -1.663768768310547 -3.225914478302002 -3.92216420173645 -2.979527950286865 -1.238452553749084 4.784476280212402 6.576930046081543 0.632330060005188 -1.143015623092651 1.977515935897827 0.7014617323875427 0.1038806661963463 -1.642755270004272 -1.711505174636841 0.946214497089386 -0.9767561554908752 0.4133218824863434 1.059082865715027 -0.2017582207918167 -2.852156400680542 -3.881631374359131 -2.032818078994751 -0.3288829922676086 -0.4455679953098297 -4.300843715667725 -0.8296360373497009 5.500622272491455 2.456516742706299 2.854861974716187 3.263457536697388 0.5948963761329651 -1.720106482505798 0.904988706111908 2.089772701263428 -1.567367792129517 -0.2208908349275589 0.8586509823799133 2.39211630821228 2.832198858261108 -1.346587061882019 -3.900247097015381 -1.02666711807251 0.7597519159317017 1.967016100883484 2.086107969284058 0.5408236384391785 -0.1459962576627731 2.725881338119507 0.3153025805950165 -0.2360152453184128 -3.780904531478882 2.741753578186035 0.1469841599464417 -6.705402374267578 -0.003874896327033639 1.713500380516052 0.4096760153770447 -1.079294085502625 -0.3439009189605713 3.244986772537231 2.8205885887146 -0.6904048919677734 -1.87639057636261 -1.600510954856873 -1.88703989982605 -2.456420183181763 3.79804515838623 0.567797064781189 3.282307147979736 -1.00359570980072 2.512642383575439 1.042544484138489 -1.489490389823914 -4.691313743591309 -2.273730039596558 -1.378519296646118 -0.8361780643463135 1.404695153236389 3.355095386505127 2.68464207649231 0.03594308719038963 -1.053908824920654 0.4063661694526672 4.644443988800049 5.480449676513672 0.3615856468677521 -0.4425186812877655 0.556786060333252 1.532435417175293 -1.76366925239563 -2.338820457458496 -2.379199743270874 -3.042872428894043 -3.689615964889526 -3.537143707275391 1.428278565406799 1.988517761230469 2.031313180923462 -0.2583244740962982 -2.494675636291504 -0.9767099022865295 0.7532281279563904 -0.4732295274734497 -1.991236329078674 -0.6871415972709656 3.570252656936646 4.25687837600708 3.13536810874939 1.785650610923767 0.7124302983283997 -1.008084058761597 -2.389198303222656 -3.383609056472778 -2.553059577941895 -3.44665265083313 -1.271450757980347 -1.360670447349548 -3.521802186965942 -2.896998643875122 -1.225138902664185 -0.3272210359573364 0.6326116323471069 1.836167097091675 1.862745761871338 2.403506517410278 1.325380444526672 -0.8812326192855835 3.45412540435791 0.2694416344165802 -5.485726356506348 2.291593790054321 0.07528118044137955 0.01971222460269928 1.875144720077515 0.9245322942733765 -3.122657537460327 -3.139187574386597 -2.463742733001709 -1.985505938529968 -1.884193062782288 -0.8959736824035645 -2.033669948577881 -1.541178703308105 -1.450661063194275 -1.526492953300476 -0.7581529021263123 -0.4746161997318268 -0.9514655470848083 -0.08385688066482544 0.418423056602478 3.11402440071106 3.995398283004761 4.972164630889893 6.473308086395264 3.338037490844727 2.526722431182861 2.944838047027588 3.589931488037109 2.166812181472778 -0.2016685605049133 -1.106748104095459 -2.649778842926025 -2.223835945129395 -0.2176427990198135 1.269417643547058 -0.1558391600847244 -3.274273157119751 -1.262032151222229 1.749134182929993 -1.95890748500824 -4.578955173492432 2.265961647033691 -2.483431100845337 -2.283903837203979 5.884201049804688 -0.272401362657547 -0.5664513111114502 -0.2859717309474945 -1.295641183853149 -0.6679728627204895 1.527059316635132 1.122546672821045 0.7962974309921265 2.370281219482422 2.617199420928955 1.142063736915588 -1.479499578475952 -3.65531849861145 -4.731695652008057 -1.698650479316711 7.573663234710693 3.952348709106445 -2.00234055519104 -1.818847298622131 -2.626665592193604 -0.9978251457214355 -0.3445082008838654 2.350752115249634 0.7622905969619751 -0.5986901521682739 0.6137807369232178 -0.7229595184326172 -0.002284240443259478 3.534998178482056 2.122037887573242 -4.812726497650146 5.917830944061279 -0.03075867891311646 -2.566981077194214 0.8924157023429871 -0.3432605862617493 0.2862564921379089 -1.027161836624146 -3.182841539382935 -1.850368499755859 -0.9495909214019775 0.465959757566452 1.764587759971619 1.546875238418579 -0.1255608648061752 -0.9421167373657227 -1.247283101081848 -1.233747243881226 -0.5313619375228882 0.6430454850196838 2.696417093276978 3.702658653259277 -0.1457497477531433 -4.60930871963501 -2.494087219238281 -2.895824432373047 -2.424416780471802 5.417782306671143 4.918808460235596 -3.557090044021606 -1.030405521392822 -0.8023036122322083 -0.5904064774513245 -1.03156578540802 -2.082833290100098 -1.591696739196777 -0.4132141470909119 0.2687574625015259 0.2448409497737885 0.51706862449646 -0.9436204433441162 -2.442615032196045 -3.266153573989868 -2.20817494392395 -1.651225209236145 5.500433921813965 7.052728176116943 2.987900972366333 -0.7579793334007263 2.2404625415802 2.589227914810181 0.4400538206100464 -2.837404012680054 -3.329279184341431 -1.850268363952637 -1.149185299873352 -2.595610380172729 -0.000785681651905179 2.499572038650513 1.044571280479431 -1.909776329994202 -1.550613284111023 4.546487331390381 2.414699554443359 -2.182963132858276 -4.256907939910889 1.910601139068604 5.404051780700684 -1.057012319564819 1.870539426803589 -4.199136257171631 -4.42754602432251 -5.7106032371521 10.08052539825439 16.78405570983887 -3.152700662612915 -4.857255458831787 -2.244782686233521 -4.164987087249756 1.451949000358582 5.444407939910889 -3.596778392791748 -1.800343990325928 2.870931386947632 -1.700112342834473 -2.7829430103302 -2.321566820144653 0.341965526342392 0.03859251365065575 3.946330308914185 -0.7501673102378845 -0.9857423305511475 -0.6321393251419067 1.374637365341187 1.987499833106995 0.7196906805038452 -0.008339477702975273 1.317149996757507 1.30441677570343 -0.05784959346055984 -1.540507912635803 -0.1534523665904999 1.117976546287537 -2.726280927658081 -5.546449661254883 -1.069750308990479 6.8494553565979 -1.726668238639832 -2.909657001495361 3.436178207397461 3.583144187927246 3.198900461196899 3.065187215805054 1.722529053688049 0.5028476119041443 -0.699317991733551 -0.8333207368850708 -1.070127844810486 -1.687241792678833 -3.49016547203064 -3.354517221450806 0.7512331008911133 -0.706838846206665 -3.813214302062988 -3.857327938079834 -1.362147331237793 2.529687643051147 0.6258994936943054 2.515447854995728 2.379342794418335 -5.442665100097656 3.68870997428894 3.871597528457642 -5.278135299682617 -4.490569591522217 1.083476543426514 0.051875039935112 -2.970682144165039 -1.011559844017029 -2.051226615905762 -0.0408315546810627 0.415074497461319 2.37037205696106 2.705331087112427 1.556277632713318 1.488031268119812 0.9928176403045654 1.952879190444946 0.3862295746803284 0.7229958772659302 -1.059159159660339 -2.302575349807739 -3.73100209236145 -3.760766983032227 -2.211306095123291 0.0347541980445385 0.7744829654693604 0.02941202931106091 -1.236848831176758 1.852622985839844 4.099488258361816 1.1764976978302 -1.793488025665283 -2.237806081771851 -0.7126759886741638 3.949085474014282 -0.701549232006073 3.404113054275513 4.626301765441895 -0.1995829641819 0.2374536544084549 1.566378116607666 2.740406036376953 1.511246800422668 -3.239214658737183 -4.520734310150146 -2.577881813049316 -1.441423416137695 0.2196123450994492 1.74962055683136 3.309897661209106 2.983213901519775 -0.6901386380195618 -3.253738403320312 -1.596030116081238 5.582816123962402 1.050547122955322 -1.165971636772156 -3.4047691822052 0.9387071132659912 -0.1036208942532539 0.1876322776079178 -0.2121543139219284 0.04690039902925491 0.4663183987140656 2.065295934677124 4.677820205688477 2.13742733001709 -3.941335439682007 -3.684225797653198 -0.9626390337944031 4.193143367767334 5.577122688293457 -0.8785200119018555 -4.359488964080811 -4.281440258026123 -2.982467889785767 -0.5754686594009399 0.801977276802063 1.827723503112793 0.1278781741857529 0.2687109112739563 -0.8236921429634094 2.660154581069946 4.420417308807373 -4.455633163452148 0.09870412200689316 -1.695899128913879 -0.5371567010879517 1.202093720436096 0.5301929116249084 -2.883213043212891 1.124411106109619 -0.9898179769515991 2.054413080215454 -3.078934669494629 -0.2278607785701752 1.39113712310791 1.534266948699951 -0.720173180103302 3.769246816635132 -1.01996898651123 -3.440073251724243 -0.3005786836147308 2.949532985687256 -0.3944534659385681 1.065977334976196 -1.836590170860291 0.4499357342720032 0.8188204169273376 0.7831099033355713 0.699485719203949 2.347730875015259 -4.580638885498047 1.993945717811584 0.6164001226425171 -0.7352221012115479 -1.576722502708435 -4.651494026184082 3.041560649871826 -3.468271255493164 2.168287038803101 0.2562046349048615 -1.404000639915466 0.1332112699747086 -2.88915228843689 3.170912027359009 2.558159112930298 -4.005714893341064 5.003609180450439 -1.449915528297424 -1.879528522491455 -0.4359064400196075 -0.8183899521827698 1.755608916282654 -2.313157558441162 0.6026942729949951 0.5909388065338135 0.9147639870643616 1.509647846221924 -2.483497142791748 -1.523133158683777 -0.7651989459991455 -1.005481958389282 -1.847957134246826 -1.803458094596863 -0.8597741723060608 -2.212020397186279 -0.2205722779035568 0.8671842813491821 4.120834827423096 3.554033041000366 -3.617197275161743 -5.094652652740479 3.083799362182617 5.246707916259766 3.602969408035278 4.011700630187988 -0.9498605728149414 -2.104419946670532 -2.671776294708252 1.506115913391113 3.807487010955811 3.400156259536743 -0.9251390099525452 -1.94014310836792 -0.08978157490491867 2.175362110137939 2.308850765228271 -4.643712043762207 0.119082547724247 0.3501554131507874 1.781512975692749 0.6938214898109436 -0.2862620055675507 -1.404526352882385 -1.368448972702026 -1.153199791908264 1.755699038505554 -3.415257692337036 5.195250034332275 2.966614723205566 0.1351861953735352 -2.045390844345093 -2.874892473220825 -3.164917707443237 -2.473138809204102 -1.483839988708496 -0.2236808389425278 2.055234670639038 -0.7854546904563904 -3.138363599777222 -2.166174173355103 1.128945231437683 2.202524662017822 -0.1959279477596283 -0.5846036672592163 2.861791372299194 0.8885049223899841 1.702340006828308 -0.4649189114570618 -2.498614072799683 -4.485294342041016 -3.801587820053101 -1.626065850257874 0.2282653599977493 0.1077531203627586 -0.9278391599655151 -1.735161662101746 -1.632193803787231 -0.2159860730171204 1.906472086906433 3.316807746887207 2.595955610275269 1.417796492576599 -0.2477727979421616 -1.129722237586975 0.5453447699546814 4.201554775238037 4.445203304290771 4.827155113220215 3.932016372680664 2.032240867614746 0.2925414144992828 -0.7519041895866394 0.3531821370124817 1.399823307991028 1.199200749397278 -1.139524102210999 -1.690314412117004 -2.305120468139648 -1.088095307350159 1.511814475059509 2.49120831489563 1.758594512939453 0.9801353812217712 -1.168035745620728 -3.380238771438599 -4.678845882415771 -4.575832843780518 1.66147780418396 0.9180510640144348 0.7631861567497253 0.8707747459411621 -0.4780696034431458 -1.580554604530334 -0.1080114841461182 2.067233324050903 0.3887670338153839 -4.675474166870117 -3.378207683563232 0.355591893196106 -1.57286536693573 -2.010226726531982 -1.878196954727173 -0.5066808462142944 -1.599499344825745 0.3597856462001801 7.981940269470215 2.420974254608154 2.872686386108398 1.147725939750671 -0.3624208867549896 -1.451219201087952 -1.205541133880615 -0.7444716691970825 -0.7388442754745483 -0.2350238561630249 0.3041113615036011 0.4739408493041992 0.7783424258232117 1.265362620353699 1.016754627227783 0.6340544819831848 -0.4100202023983002 -1.461962819099426 -0.726905345916748 -0.1058801487088203 -0.5112472772598267 -0.5394427180290222 2.279183387756348 1.438037991523743 -1.743365526199341 -4.283932685852051 -5.414597988128662 -4.454378128051758 -0.1296612173318863 3.23888111114502 2.967418193817139 -1.240531206130981 -1.265366911888123 -0.945634126663208 -0.9949120283126831 1.152771592140198 4.300113677978516 1.02858829498291 -1.484533190727234 2.210370779037476 -0.1285808682441711 3.470129489898682 0.3017450571060181 -0.1498636305332184 0.1029097437858582 -1.433868765830994 -1.915183305740356 -1.155570507049561 1.715258717536926 1.900405049324036 -2.217571020126343 -3.589828014373779 -2.157891988754272 -2.458143949508667 -0.3310191631317139 2.272882461547852 8.204835891723633 -0.1225843727588654 -1.385596871376038 2.375417947769165 1.737648010253906 -1.693982362747192 3.745594263076782 2.004984617233276 -2.245905637741089 -7.090678215026855 -8.159734725952148 -1.767064332962036 5.23501443862915 6.305153846740723 4.978433132171631 3.202115535736084 2.106504917144775 2.562182188034058 1.520685076713562 0.3888741433620453 -1.872121691703796 -0.9152169227600098 -3.041243553161621 -4.312341690063477 -3.511852264404297 0.8666195273399353 -2.680328130722046 -2.553738594055176 -1.875401377677917 -1.490962028503418 -0.1114008203148842 0.4590074717998505 0.8290086388587952 1.161263346672058 2.043784618377686 2.759833097457886 1.701228737831116 1.104482412338257 2.558989524841309 5.695891380310059 0.3211452066898346 -3.596060276031494 -4.822910785675049 -1.150652766227722 1.174303531646729 -1.527485132217407 -0.09116837382316589 0.4384465515613556 1.250977754592896 1.852476716041565 1.869683027267456 -0.04114127159118652 0.09432986378669739 -0.7332554459571838 -1.90261971950531 -2.870981454849243 -2.118256330490112 -3.636200189590454 -2.691668748855591 -2.417536020278931 -1.085556030273438 1.118744850158691 1.143314838409424 8.593686103820801 2.19420862197876 -0.967487633228302 1.519890785217285 1.444992542266846 1.16922664642334 0.9511992931365967 0.1843592524528503 -1.727593779563904 -5.366539001464844 -2.714352130889893 4.652383804321289 5.431854724884033 1.047267436981201 -1.795069932937622 -0.6797837018966675 1.121488332748413 0.5058336853981018 0.3877582848072052 -2.513861417770386 -2.15250301361084 -0.8991096019744873 -0.5674426555633545 3.231687784194946 2.224106311798096 0.5264853239059448 -0.1369419246912003 -1.487146496772766 -2.203551292419434 -3.225065469741821 -1.313546538352966 0.00570213096216321 1.709993600845337 1.64920699596405 1.912981033325195 4.045007228851318 -2.141630411148071 -2.495683193206787 -0.3145557940006256 1.217272758483887 -4.764912605285645 0.8985964059829712 0.6619864106178284 4.616347312927246 2.070970058441162 -0.2733224928379059 -1.727367877960205 1.802179932594299 3.314459323883057 -2.122619390487671 -5.179647922515869 -0.6722184419631958 1.200976133346558 -1.414963245391846 -0.02202126756310463 0.7474585175514221 -1.479194045066833 -1.104833245277405 1.7520432472229 0.4058637022972107 -0.6629653573036194 -0.6953992247581482 -0.5557476282119751 7.463465690612793 -6.408750534057617 2.956119060516357 0.4402835071086884 -0.02264184504747391 -3.327150106430054 0.7482340335845947 -0.131329670548439 -1.054370999336243 1.074682116508484 1.283100605010986 0.6829223036766052 -0.5991993546485901 1.811161756515503 0.1444214135408401 -1.876204967498779 -1.064442157745361 0.3508663475513458 -1.245215654373169 -1.225958108901978 -0.2351352125406265 0.01811729185283184 -0.05697528272867203 -0.8668802976608276 -0.5024009943008423 -0.1121786385774612 1.133620858192444 2.566619634628296 4.086926937103271 3.822227239608765 0.3442915081977844 -1.099249124526978 0.1443336755037308 -0.2559133768081665 -1.268902659416199 0.6399479508399963 4.581653594970703 -6.307387828826904 -4.837281227111816 -1.795439600944519 -0.4482209086418152 -0.05377323552966118 0.8197201490402222 1.117106199264526 0.816688060760498 2.291161298751831 3.060038328170776 3.125231981277466 0.8374813199043274 1.135741591453552 2.073976993560791 -1.905388236045837 -6.510054588317871 -1.254198551177979 3.41459584236145 1.127954125404358 -0.04054573178291321 -0.3543456792831421 -3.757726669311523 -5.495452880859375 1.790761590003967 1.299143552780151 1.433046221733093 1.226120829582214 -0.5729221105575562 -1.764503240585327 0.03072447888553143 2.54798412322998 2.313984632492065 0.7630730271339417 -0.1827373057603836 -0.40970379114151 -0.3339998722076416 -1.062450766563416 0.9253862500190735 4.49340295791626 -0.1233074590563774 -2.623739004135132 -6.091894149780273 -3.658363580703735 -2.921163082122803 -2.645121097564697 1.023138523101807 1.237741112709045 -1.971966505050659 -1.205491065979004 0.3032820522785187 1.704661130905151 -1.473243117332458 -3.659762620925903 -2.563016414642334 -1.257284641265869 -0.706519603729248 -0.7819157242774963 2.317039966583252 6.856012344360352 0.3574521243572235 -0.1411291360855103 3.321772336959839 2.205508947372437 1.104993224143982 0.5250481963157654 -0.657941997051239 0.6948821544647217 2.570430755615234 3.373988389968872 -2.838412761688232 -0.1248543635010719 0.7351546287536621 -3.077698945999146 4.914359092712402 -1.436528563499451 1.116251826286316 -3.133138656616211 1.498485922813416 -0.116263747215271 -2.669975519180298 -0.6549662351608276 -0.1218395680189133 -1.701972842216492 -4.769429683685303 -2.368108987808228 1.917902827262878 1.810898303985596 -1.195234298706055 1.014883399009705 1.441771030426025 0.7814999222755432 1.183945894241333 0.3900144696235657 -1.045584082603455 1.129734992980957 -1.167035460472107 -1.556897044181824 0.7664211988449097 -2.102808475494385 7.788211822509766 -1.190859198570251 -0.4986566603183746 -2.330669403076172 3.905627250671387 3.981068134307861 3.11693263053894 0.9327282309532166 -0.5940809845924377 -1.17639684677124 -0.7782648205757141 0.02980975992977619 0.6868348121643066 0.4711532890796661 -2.204205274581909 -3.686488628387451 0.143789991736412 1.39569103717804 1.092862129211426 -2.08640193939209 -5.464561462402344 -3.350888013839722 1.963101983070374 1.621684312820435 -0.7140541672706604 0.06303763389587402 1.120216727256775 1.616607069969177 1.206099390983582 1.41834545135498 2.196152210235596 4.182565689086914 2.846391201019287 -0.9723392724990845 -2.398123741149902 -1.31235146522522 -0.4345399141311646 1.996130347251892 1.688552618026733 -0.7124021649360657 -6.036073207855225 -6.503729820251465 -4.440065860748291 5.189582347869873 -3.82236909866333 -4.118223667144775 -4.63170862197876 -1.713215351104736 2.0875563621521 2.123144865036011 0.9285532236099243 -0.8457594513893127 -1.54129695892334 -1.217466592788696 0.1901047676801682 2.186631917953491 0.0766717866063118 -0.8707726001739502 0.3252776265144348 2.846697807312012 4.661111354827881 4.406574249267578 0.7708444595336914 -1.842356324195862 -5.054139137268066 -4.235100269317627 -3.109839200973511 -2.504670858383179 -0.3832361996173859 1.673603892326355 1.623918890953064 -0.5048198103904724 -2.529747724533081 -1.929627537727356 0.9486346840858459 2.252139091491699 2.801390886306763 2.345565557479858 4.126954078674316 2.190564393997192 1.156854510307312 -1.195654511451721 -0.03771268948912621 2.364927053451538 -1.395893096923828 -2.812762975692749 -4.74422550201416 -3.515018701553345 4.502767562866211 8.48429012298584 1.358663201332092 -3.101924419403076 -0.2496404945850372 0.5463494062423706 -0.5636650323867798 -0.5185211896896362 1.907350659370422 0.8056055307388306 -1.8412184715271 -1.63126277923584 1.91503632068634 0.125316396355629 2.43311882019043 -1.70436692237854 2.392595767974854 2.101143836975098 1.153611302375793 -0.07043066620826721 -0.3547010123729706 0.04476236552000046 -0.1367338299751282 -1.144255399703979 -1.07750678062439 -1.16557765007019 -0.6561461091041565 1.0876544713974 1.360438704490662 3.20914101600647 5.429684638977051 -7.407874584197998 -4.813741683959961 1.046329498291016 -0.8467155694961548 -0.1516827344894409 -1.278135895729065 -1.003596305847168 -2.234717130661011 -2.428241729736328 -1.403702616691589 0.1303887218236923 0.8925742506980896 2.78271484375 2.651901483535767 1.180822253227234 -2.147993087768555 -3.759033918380737 -4.210339069366455 -1.085604548454285 3.666681051254272 1.694392561912537 -0.7788124680519104 5.618120193481445 2.924813985824585 -1.212228655815125 -0.9826477766036987 -0.4078772962093353 -0.1547617465257645 0.3026951551437378 2.157851457595825 2.451629400253296 1.365828633308411 -0.7742500305175781 -1.859753608703613 -1.59996509552002 -2.589557647705078 -2.292937278747559 -0.8853583335876465 1.239197731018066 1.059711098670959 -4.13409423828125 1.911443591117859 0.8247614502906799 7.141946315765381 -2.773864269256592 -1.026805996894836 -0.8450024724006653 0.5572199821472168 2.07533073425293 -1.462152481079102 -0.1032509729266167 2.116403102874756 0.6908389925956726 -1.540337681770325 1.8099125623703 2.435013294219971 -0.4527953863143921 -0.8811330795288086 -2.113967657089233 1.363522410392761 -5.869611740112305 0.9726383090019226 1.959186434745789 -0.4253981709480286 0.7403932213783264 1.123180389404297 2.423921346664429 2.011796236038208 -2.259575366973877 -4.282215118408203 0.1472185701131821 4.915524482727051 5.70862865447998 2.015475034713745 -3.493731737136841 -1.241144061088562 -0.2100538015365601 -0.7192803025245667 -0.8147674798965454 -0.07723068445920944 -1.486554026603699 -0.5631479024887085 -1.783346176147461 -0.9210835695266724 -0.4936171472072601 0.5895103216171265 0.9709528088569641 0.1735081374645233 -0.1970603913068771 -1.337148785591125 -0.06833704560995102 -0.4701314568519592 2.186729192733765 2.284431219100952 -2.787222862243652 2.051291704177856 0.9480997920036316 -6.012847423553467 3.844573259353638 0.7472637891769409 -1.91102659702301 0.2128291428089142 -0.7649785876274109 -0.03817859292030334 -0.4222567081451416 -1.379981875419617 1.402148246765137 4.875002384185791 6.304775714874268 3.348557472229004 -1.464800834655762 -4.132672786712646 -1.724153518676758 0.5740823149681091 0.1912133097648621 -2.036574602127075 -2.316275835037231 -2.718025207519531 -2.366349458694458 -1.165546417236328 -0.2541355490684509 0.3527232110500336 0.8893675804138184 2.979902982711792 -1.359256863594055 -0.444318950176239 -0.1581173092126846 1.410300254821777 2.026899576187134 -0.8528115153312683 -1.712621927261353 -1.290557980537415 -1.028133869171143 -1.316847324371338 -0.4018021821975708 1.542700529098511 1.603733420372009 0.6873594522476196 2.569429397583008 7.563037395477295 -1.413105249404907 -1.040423393249512 0.3264094591140747 -4.817464828491211 -3.253657817840576 -2.221257925033569 -1.203308343887329 -0.841457724571228 -0.4839256405830383 0.234556645154953 0.9496363997459412 0.644877552986145 -1.157626390457153 -0.8406092524528503 1.938154816627502 3.560226678848267 3.708475351333618 1.709346175193787 0.9665330648422241 -2.635007858276367 1.413408994674683 3.170425891876221 -3.188573122024536 -5.548774242401123 -0.175101637840271 -0.7359840273857117 -0.6846503615379333 -0.778592050075531 -0.8845138549804688 -0.5485366582870483 -0.1052070558071136 0.3515810370445251 1.483491063117981 4.341372966766357 4.646251678466797 0.828454315662384 -2.989817142486572 -5.206014633178711 -6.646724224090576 -4.708529949188232 -0.286090224981308 3.470548629760742 6.586966037750244 1.16373598575592 0.7022614479064941 -2.709268093109131 2.286872863769531 1.916141986846924 1.569508075714111 -3.077790975570679 1.031215906143188 -1.078618884086609 -0.6200118064880371 -0.6181358695030212 1.336355686187744 1.802809834480286 -4.964313507080078 3.385557174682617 -0.9283789396286011 0.6122055649757385 0.2602559626102448 0.7491185069084167 -1.64072597026825 0.2687221467494965 0.4184781908988953 1.494965076446533 1.965440392494202 2.627892255783081 4.021340370178223 3.965642690658569 1.240720272064209 -3.086320877075195 -3.545190095901489 -1.87777304649353 -0.5816421508789062 -2.999452114105225 -3.642553329467773 -2.195728063583374 2.235869407653809 5.806941986083984 1.150704860687256 -1.994730830192566 -1.989902496337891 -2.647743225097656 0.0515185184776783 -0.2264197915792465 -0.1971047967672348 -0.1741528362035751 0.4345186948776245 -1.870457649230957 -5.329024791717529 -6.270888805389404 -1.334821343421936 4.276025295257568 1.973252654075623 1.380060791969299 2.986200571060181 6.134986877441406 1.48797082901001 -1.369405150413513 -1.211462736129761 -0.1342415362596512 1.256632685661316 -0.263476699590683 -1.548185348510742 -2.33762264251709 -1.631290435791016 -0.604299008846283 -0.3463553786277771 -0.2443800866603851 0.0713343620300293 1.376959443092346 2.319380044937134 2.301084041595459 1.945846199989319 1.862362265586853 0.02486804686486721 -1.430258989334106 1.809818863868713 2.350292682647705 -3.146598100662231 -4.824000835418701 5.913082122802734 -1.727676033973694 -3.682543039321899 -2.758931636810303 -1.100733399391174 0.558655321598053 1.779149651527405 0.2744987308979034 -1.815987944602966 -3.108854532241821 -2.565789461135864 -1.339316129684448 -1.625769972801208 -0.9663746356964111 2.052451610565186 0.6209516525268555 -1.144605159759521 1.386128783226013 3.212734699249268 2.704270124435425 2.662636518478394 6.316751956939697 -5.141870021820068 -0.5228580832481384 1.41612696647644 3.108437061309814 3.292774438858032 1.662018895149231 0.357271283864975 -1.057023048400879 -1.390819787979126 -0.09707825630903244 1.711698174476624 1.777765512466431 1.029929757118225 -0.7029690742492676 0.04578863829374313 0.9560613632202148 0.2011677622795105 -2.77204704284668 -0.3143361508846283 -1.954058527946472 -6.74785041809082 -0.1732531785964966 -1.18536114692688 -0.9506043195724487 0.9022118449211121 1.933163046836853 0.5983042120933533 -1.068716764450073 -2.203985452651978 -0.2459413558244705 3.831197261810303 3.010987043380737 -0.7694485187530518 -1.875512003898621 -1.147825360298157 -2.322557926177979 -2.562115430831909 -0.8013483881950378 9.086957931518555 2.099645137786865 -6.155799865722656 2.037159442901611 0.7230191230773926 -0.9744407534599304 -2.687884330749512 -2.684824705123901 -0.5445084571838379 -0.02050095982849598 0.4776790142059326 0.1824893802404404 1.669981360435486 2.759214401245117 2.193583726882935 0.552003026008606 1.925677895545959 3.018617391586304 -1.828918099403381 -7.656185150146484 -6.222053050994873 2.739850997924805 4.340044498443604 -4.383162021636963 -4.860086917877197 -4.678047180175781 -2.133308410644531 1.284398078918457 2.448622465133667 1.392604947090149 1.544065117835999 1.972741365432739 1.942896962165833 -0.3106227219104767 -0.6194444298744202 0.9533984065055847 2.888707876205444 0.3137526512145996 -1.084503173828125 0.558111310005188 0.4764999449253082 1.015757918357849 1.277619242668152 -2.242287397384644 -1.207882642745972 2.833821058273315 4.377055644989014 -0.6073071956634521 -2.979512691497803 -0.1014730483293533 0.04415048658847809 -4.467023849487305 -0.743904173374176 5.245648384094238 -0.4027847051620483 0.6405357122421265 -1.703345656394958 3.047703504562378 3.318382263183594 -1.565080404281616 -4.426920890808105 2.85019326210022 -1.909968733787537 3.252065896987915 2.1204514503479 1.250069499015808 0.6572626829147339 1.570657849311829 2.687922716140747 1.796550273895264 -1.036808729171753 -0.8893373608589172 0.3325667381286621 1.140213012695312 0.6364154815673828 -2.7862708568573 -3.102370262145996 -2.317468166351318 -0.4858391880989075 3.238951683044434 -4.561693668365479 1.083260893821716 -4.586606025695801 -1.126035213470459 -1.586501002311707 0.2156299203634262 2.529297828674316 1.891400337219238 -1.287881731987 -1.991743326187134 1.121294856071472 2.407986640930176 0.04552340134978294 -2.730382919311523 0.546550452709198 -3.518901348114014 -0.8904414772987366 -0.9814826846122742 3.967867851257324 -1.420720934867859 2.809509992599487 0.3843038380146027 -0.3852741718292236 1.990612268447876 0.2317107766866684 0.0957951545715332 2.515290975570679 4.182775497436523 2.778775453567505 -0.9705345630645752 -0.7873442769050598 0.5709816217422485 3.367680788040161 2.237672090530396 -2.498032093048096 -0.9660761952400208 -1.212912559509277 -5.316340923309326 -3.007562637329102 -1.235488653182983 -3.186823129653931 -0.9193791747093201 2.12919807434082 2.321329832077026 0.4444210231304169 -1.894779086112976 -1.849559187889099 -0.6142104864120483 1.346371412277222 0.2262534499168396 0.6071723103523254 0.09052518010139465 0.8353667855262756 -0.06246256828308105 0.835460901260376 1.094091415405273 -2.149107933044434 -4.070557117462158 -4.494726657867432 2.818042516708374 -0.1844979673624039 5.084220886230469 -0.3833515644073486 2.111615896224976 2.084982633590698 0.8322656750679016 -0.7473138570785522 0.01127674803137779 1.555516004562378 2.145292282104492 1.751661062240601 0.9654734134674072 -0.07680458575487137 -0.1746436059474945 0.8751113414764404 -1.952924609184265 -5.888501644134521 -0.7709777355194092 0.8082262873649597 -3.634444236755371 -3.715582132339478 2.486640214920044 1.333128333091736 0.3340907096862793 1.149330735206604 1.063872456550598 -2.485194444656372 -3.695894479751587 -1.686497569084167 -0.1920667886734009 0.3223410248756409 -0.1483930051326752 -0.1887768805027008 0.2029314786195755 1.385816335678101 0.2215270400047302 1.832212805747986 4.154302597045898 1.772417664527893 1.493994355201721 -2.763720273971558 0.7371487617492676 -3.509444713592529 -3.761635780334473 0.453637421131134 3.294391870498657 2.316661357879639 0.2406443357467651 -0.4456931054592133 -0.8964108824729919 -1.637391686439514 -0.03136210143566132 -0.4426851570606232 -1.439038395881653 -0.2512814402580261 0.3208941519260406 0.272266298532486 -2.527072191238403 0.03374050930142403 2.481537342071533 1.195797443389893 0.7456631660461426 0.07733120769262314 -2.36484169960022 -0.4539093375205994 1.924231290817261 2.149558544158936 -0.1917875409126282 -1.566577553749084 -0.7834290862083435 -0.7745492458343506 0.9264863729476929 1.55904221534729 -1.207550883293152 -2.934635639190674 -2.611535549163818 -1.275795340538025 -0.8221775889396667 3.985908508300781 0.7585724592208862 -0.1113175451755524 6.457903385162354 -2.663588285446167 -4.540645599365234 -1.736595392227173 2.519779443740845 5.010525703430176 1.270471453666687 -1.774886250495911 -2.140958070755005 -2.173447370529175 -1.230325818061829 -0.6804889440536499 -1.603806734085083 1.32327139377594 5.124528408050537 1.615581154823303 1.199942231178284 1.739656209945679 0.9085417985916138 -0.4389427006244659 -1.427870035171509 -2.964331150054932 2.03402304649353 0.5242045521736145 -0.8046222329139709 -2.129473924636841 -2.195356369018555 -1.559438586235046 -0.5700394511222839 0.6354565024375916 2.001302719116211 1.547194957733154 1.711015701293945 1.543220520019531 1.294059753417969 0.1703027486801147 -0.6959021687507629 -1.722038388252258 0.1735468804836273 2.076246023178101 6.673828601837158 -10.70752811431885 0.3280434310436249 -0.8924556970596313 0.7687479853630066 2.465175628662109 1.299799561500549 -1.808864116668701 -1.84071683883667 -0.9749685525894165 -1.403514981269836 -1.463377952575684 0.7168353199958801 1.370628237724304 -1.108215570449829 -1.326982736587524 4.056696891784668 5.365180492401123 -4.341931343078613 4.742630958557129 -5.286323547363281 -0.6663839817047119 -0.8401033282279968 1.243762016296387 0.541200578212738 -2.107916831970215 -1.707943439483643 2.479121446609497 2.508502960205078 -0.1202973127365112 0.07236047089099884 0.7121232748031616 -0.2494134902954102 -3.42930793762207 -2.631858348846436 0.3674730062484741 7.242950439453125 -0.6433866024017334 -2.203860998153687 -2.450813055038452 1.764704823493958 -0.5472996830940247 -5.954978942871094 -4.654018402099609 -1.391068339347839 1.59299910068512 2.836308002471924 3.987026691436768 4.465559959411621 3.504318237304688 0.8801449537277222 -0.7890124917030334 -1.490849256515503 -2.140362024307251 -2.905712127685547 -1.345769166946411 -1.38212263584137 1.384067535400391 2.871713161468506 -2.750940322875977 -0.2874114811420441 3.570107936859131 0.9381494522094727 4.943887710571289 -6.980007648468018 3.712339162826538 -1.752593159675598 -0.5654335021972656 3.253010511398315 0.05434125661849976 -1.858324527740479 2.403076410293579 -1.087943196296692 -1.182916283607483 0.07188922911882401 1.164808750152588 -0.9529622793197632 0.07986257970333099 -0.7583127617835999 -0.7994028329849243 -0.6452192664146423 -0.03825145587325096 5.19520378112793 3.376176595687866 -0.07801643759012222 -2.392257690429688 -1.799867391586304 0.6603149175643921 1.291313290596008 0.9133610725402832 -1.585594296455383 -1.136907458305359 3.796416997909546 2.452640056610107 -1.141846895217896 -4.103722095489502 -3.622637271881104 -1.176715731620789 0.1949243992567062 3.097946882247925 -2.645885467529297 -1.29484748840332 2.186923265457153 1.436425566673279 -1.713910102844238 -1.67038893699646 1.285163879394531 0.4028415977954865 -0.325665295124054 2.058190584182739 -0.05910899117588997 2.754994869232178 0.5912014245986938 -0.8453603982925415 -3.793429374694824 1.205444931983948 2.730337858200073 -1.681332111358643 1.007359862327576 -7.277997016906738 1.353625655174255 0.3546784222126007 -3.036164283752441 -1.298454523086548 -0.1832795888185501 -1.350492477416992 -2.121684789657593 -2.245599508285522 -2.300954341888428 -0.6700448989868164 1.859996199607849 2.081530809402466 1.12386167049408 0.6491095423698425 1.086628556251526 2.472708463668823 6.145779132843018 -3.029524803161621 -0.6260604858398438 2.065441131591797 1.915528059005737 -2.538328170776367 1.723827719688416 1.125535488128662 -0.1863810569047928 -1.769676208496094 -4.512877464294434 -3.16309928894043 -1.725188851356506 -0.9713910222053528 -0.3831331133842468 0.4452079236507416 0.8197721838951111 -0.3720356523990631 -2.485151529312134 -2.916470050811768 1.360888838768005 3.382392644882202 1.772484540939331 6.227567195892334 5.313973426818848 -3.686244010925293 -1.044923067092896 -0.6204045414924622 0.4762036800384521 1.38463294506073 1.896140098571777 0.8442369103431702 -1.000043511390686 -1.628986954689026 -1.293834567070007 0.4870565533638 0.1893805116415024 0.2234033346176147 2.065907001495361 8.522867202758789 -6.470883369445801 -4.023353099822998 1.43738579750061 -1.611199975013733 2.192246913909912 -2.025832891464233 0.5273020267486572 -0.6774094104766846 -1.29461681842804 -1.574475884437561 -0.9886358976364136 1.996883153915405 6.080745220184326 5.987292766571045 -0.3999612033367157 -3.713287830352783 -3.684836149215698 -2.649953603744507 -0.6658831238746643 -0.06266254186630249 -0.5540755987167358 -3.395471334457397 -2.232511520385742 4.278748512268066 0.545662522315979 2.477146625518799 -0.1050721555948257 0.2543626427650452 0.4843499660491943 1.372157454490662 1.879227757453918 1.241358757019043 -0.6687085628509521 -1.956961393356323 -1.595991969108582 -0.487903505563736 -0.01529598701745272 1.100984573364258 3.392524242401123 3.180742502212524 2.200745344161987 -2.317345857620239 -5.851405143737793 -5.270879745483398 -1.319336771965027 4.482447624206543 0.0861944854259491 1.627197742462158 3.119501113891602 2.88640284538269 -1.188022017478943 -4.920713424682617 -3.729239463806152 -1.751325368881226 -0.5010479688644409 0.124340333044529 -0.2716037034988403 1.384114503860474 3.488973140716553 5.251720428466797 0.2342787981033325 -0.630257248878479 -2.122978210449219 -4.461305618286133 -0.9762325286865234 2.350007057189941 -1.578287482261658 -1.151609063148499 -0.7226881384849548 -0.3585452139377594 -1.416881680488586 -2.117095470428467 -1.243236064910889 -1.838885903358459 -2.377279043197632 -2.065260887145996 -1.012246131896973 0.1873133778572083 2.22126579284668 1.408414244651794 4.575538635253906 5.178004741668701 -3.079495906829834 5.061307430267334 3.801852941513062 -3.472188711166382 3.111293315887451 3.499862909317017 2.331948041915894 0.4638634324073792 2.347216844558716 3.522525310516357 0.3779596090316772 -4.296150207519531 -4.16926383972168 -1.525550961494446 0.626427948474884 -1.253017067909241 -2.947427988052368 -2.39054274559021 -0.02942688949406147 -1.402943134307861 -3.100247144699097 -4.577243328094482 3.587210655212402 5.823503494262695 -1.179384589195251 -1.121111392974854 -0.9256934523582458 -1.168110489845276 -1.46504008769989 -0.6227954626083374 0.7835890054702759 1.578969240188599 1.548165440559387 1.72139048576355 0.4458664953708649 0.09952378273010254 0.4080110788345337 0.8219373226165771 0.6378029584884644 0.06796485930681229 2.590851783752441 -0.8319486379623413 -8.538399696350098 5.148406982421875 -2.809927225112915 -1.541267991065979 -0.05660203844308853 0.2732137143611908 0.7314560413360596 -0.7509997487068176 -1.288371324539185 -0.7030578851699829 0.03508049249649048 -3.465934276580811 -2.587848424911499 -2.710115909576416 -0.9070274233818054 4.234298229217529 2.352331399917603 0.307625412940979 0.8923546075820923 7.137224674224854 -3.019083738327026 3.876649379730225 -2.398871898651123 -2.430040121078491 -2.182124137878418 1.710171818733215 4.558404445648193 2.585255146026611 -0.1513275951147079 0.2480347156524658 -0.6019328832626343 -2.090327739715576 -3.856148719787598 2.461416721343994 2.211403369903564 0.2258319556713104 2.451232671737671 0.196534737944603 -2.86897087097168 -0.8819790482521057 1.970257043838501 -1.156824707984924 2.179726362228394 0.9464124441146851 1.234337568283081 2.913567543029785 4.491357803344727 2.805644273757935 -0.6168544888496399 -1.101556777954102 -2.003764867782593 -3.208517789840698 -0.3169008195400238 1.360198259353638 0.02002580650150776 -3.03547191619873 -3.313289880752563 -0.1966520696878433 -2.457667589187622 -1.742273688316345 1.50789749622345 0.533784806728363 2.292646884918213 0.4295259714126587 -1.309694051742554 -0.9024999737739563 -0.7171260714530945 -0.3549686968326569 3.02696704864502 4.821635246276855 3.106724739074707 0.530340850353241 -1.806814789772034 -5.306365489959717 -2.775550603866577 -1.666095733642578 0.8008070588111877 6.27994966506958 -2.28711986541748 -1.751072645187378 -1.300008893013 -1.111285328865051 1.828822731971741 1.924084305763245 2.210238456726074 1.150583624839783 -0.1303954869508743 -2.154010534286499 -2.40791916847229 -2.493299245834351 -1.046431660652161 -0.9707775712013245 -3.985835790634155 -3.150720119476318 0.06721735000610352 3.989891290664673 3.017390727996826 -2.933792114257812 -2.54486346244812 6.15129566192627 1.576316595077515 -0.0977918952703476 -0.1405362188816071 -1.052835464477539 -1.937581658363342 -0.9822971820831299 1.244488835334778 2.789332628250122 -0.2322647124528885 -7.044950008392334 -4.668091297149658 0.3274454176425934 1.807197332382202 2.320538997650146 2.911417961120605 2.004117012023926 4.145725250244141 2.274838447570801 -1.673011183738708 0.4367547035217285 0.3939058780670166 -2.924193143844604 -4.809693813323975 -3.094882726669312 -1.08229398727417 2.195174932479858 3.95325231552124 3.087880849838257 0.2461965978145599 0.3359392285346985 1.092726826667786 -0.07033021003007889 -2.383874416351318 -3.94788646697998 -3.19091796875 0.9326770305633545 6.279399871826172 -0.9659249186515808 -1.181946754455566 4.384064197540283 0.9626205563545227 -2.742186546325684 -3.016356706619263 9.801516532897949 -3.363113403320312 -4.45392370223999 2.905460596084595 -6.254342555999756 3.317172288894653 -4.589588165283203 1.738738536834717 -1.200492858886719 0.4400055706501007 0.925441563129425 2.630321264266968 0.1618210673332214 -1.531188249588013 -0.3781534135341644 1.329635500907898 2.630168676376343 -0.6150040626525879 -0.4781222641468048 4.55604362487793 2.580373048782349 0.1762706488370895 -2.095387697219849 -2.392717123031616 -1.946521878242493 -2.249571561813354 -1.525928616523743 -1.484807014465332 -2.755709171295166 -2.578634738922119 -0.1556224524974823 1.710514426231384 0.3374819755554199 1.420053124427795 1.359533667564392 -0.3075164556503296 2.475363969802856 2.287737131118774 0.5890458226203918 -7.977521896362305 -1.658228874206543 2.922909259796143 -2.1527099609375 -3.673208236694336 1.383365392684937 2.214821338653564 1.311644911766052 2.874455213546753 0.1955442279577255 1.306565046310425 2.689847230911255 -2.426669836044312 2.250471115112305 3.505016326904297 -2.891240358352661 1.488453507423401 0.7992474436759949 -2.107151985168457 -0.05561193823814392 0.1422393321990967 -0.7619351148605347 -0.9460119605064392 -0.3138290047645569 0.1281789690256119 1.315140843391418 1.855281233787537 -2.782629251480103 -4.401731491088867 -3.140527009963989 2.252847909927368 2.367610692977905 -1.058021664619446 -1.90732729434967 1.152185201644897 10.19630336761475 0.8858375549316406 -3.147515773773193 -1.1206374168396 -0.7154669761657715 0.8248384594917297 0.8526181578636169 1.315985918045044 2.502092838287354 4.36121940612793 5.271065711975098 3.694977283477783 0.6551068425178528 -0.6280556917190552 -0.7392285466194153 -2.101599216461182 -3.216418504714966 -3.044646739959717 -1.389599084854126 0.5011292099952698 1.630648016929626 -1.71641731262207 -5.533926963806152 -2.957022666931152 -0.2827623188495636 2.055291652679443 1.917427659034729 2.022477388381958 1.330519199371338 0.1396175622940063 -0.145114466547966 0.7287222146987915 0.9049378633499146 -2.827601671218872 -7.110092639923096 -3.722591876983643 4.693623542785645 3.313851833343506 -2.71045708656311 -1.027623891830444 4.011478900909424 -3.833123445510864 -2.273756980895996 1.183056116104126 1.349351406097412 0.3466275632381439 -0.811500608921051 -1.162166595458984 -0.97109454870224 1.014793992042542 2.412246465682983 2.660403490066528 1.828718900680542 0.966307520866394 -0.4084873497486115 -2.010743141174316 -1.884526491165161 -2.395977735519409 0.03519318625330925 -0.8708953857421875 0.1145875155925751 2.584129810333252 -1.97539496421814 -0.5613021850585938 1.08907949924469 -1.263380885124207 -0.7822160124778748 0.5198600292205811 0.1983784884214401 -0.5348799824714661 -0.365075409412384 -0.8693314790725708 -0.8515676856040955 -0.2659909427165985 -1.334527254104614 -7.663465023040771 3.310134410858154 3.016531467437744 0.7068309783935547 -3.084003925323486 2.022332429885864 2.872159481048584 -0.4162555336952209 1.218373537063599 3.566088199615479 -0.3216516971588135 3.221625804901123 3.870472192764282 0.2122312188148499 -3.657544136047363 0.7412871122360229 5.284444808959961 -2.531900644302368 -5.432384967803955 -0.97563636302948 -0.42440465092659 -0.4731929898262024 -1.393001914024353 -2.044685363769531 0.8389638066291809 2.077716827392578 0.8919699788093567 -0.207108274102211 -0.2953191995620728 0.6181174516677856 0.7108275890350342 0.3348914682865143 0.3416587114334106 0.6324843168258667 1.492210984230042 1.477305769920349 1.358806133270264 0.8752771019935608 -0.6455005407333374 -0.4927145540714264 -0.5016289353370667 -1.181386113166809 -1.327820181846619 -1.542193174362183 -0.7287373542785645 -4.591496467590332 -6.263872623443604 -1.872579216957092 5.095321655273438 6.829142093658447 -2.133308172225952 -1.305227160453796 -0.8609516620635986 -1.00655996799469 -1.819628000259399 -1.892853379249573 -1.955222487449646 -2.512522459030151 -1.395277500152588 -1.057385206222534 -2.125317573547363 -2.107363939285278 0.9142829775810242 5.264134883880615 4.94709587097168 2.039867639541626 0.6937384605407715 0.9543434381484985 1.085071682929993 4.273086547851562 -0.01218937523663044 -0.2104109972715378 -0.4952553808689117 -0.8956567645072937 -2.061127424240112 -1.503689050674438 -0.5898793339729309 -0.2332734316587448 -1.119745969772339 -0.7025426626205444 -1.698992013931274 -1.141206979751587 -1.269649147987366 0.9420334696769714 5.496718406677246 6.396792411804199 -5.525935173034668 -2.62508225440979 1.461837530136108 5.787248134613037 -0.5800591111183167 -0.6420941352844238 0.7610563635826111 3.122416973114014 2.004901170730591 -0.9473462104797363 -2.701996088027954 1.207645297050476 -0.6979436874389648 -3.340005159378052 -2.477483987808228 -1.702896356582642 -0.07528796046972275 -1.053730487823486 0.2758727669715881 2.857306241989136 7.10299825668335 -3.54712438583374 3.055685997009277 -2.621918916702271 -0.3279118239879608 -0.9622610211372375 -2.090043306350708 0.03295630216598511 1.90688681602478 0.6526901721954346 0.5049722790718079 0.8756893873214722 -1.947240948677063 0.9828313589096069 4.045522689819336 0.3910680413246155 1.593252301216125 -6.054596900939941 -2.835060358047485 0.8481953740119934 1.475954532623291 1.433577537536621 -2.576107025146484 2.049623489379883 2.475205898284912 2.29104208946228 0.9969691634178162 0.04573535174131393 -0.2792411148548126 0.5950846076011658 -0.3121286332607269 1.327158451080322 2.187009334564209 2.182214498519897 0.443950891494751 0.4745225310325623 -0.6979313492774963 1.297338008880615 0.3273941278457642 -5.592404842376709 -2.777544021606445 4.176718235015869 -4.712465286254883 -4.448632717132568 0.7547904253005981 -0.06769806891679764 -0.2861188054084778 -0.2048496603965759 -0.3728801906108856 -0.645748496055603 -2.420403957366943 -3.016635656356812 -3.133468866348267 -2.066494226455688 1.293098926544189 2.185741901397705 1.946314096450806 1.237818837165833 1.592957139015198 0.8078241348266602 -3.820257425308228 -2.739664077758789 10.02688407897949 -1.071196913719177 1.386120557785034 1.239166140556335 -0.5838223099708557 -2.502824544906616 -0.9563609957695007 2.376350879669189 4.298339366912842 2.312064170837402 -0.3481047451496124 2.647337436676025 4.624639987945557 -1.711463212966919 -1.910499453544617 -0.8152333498001099 -2.839919567108154 -3.772347450256348 0.1047441586852074 -1.079155683517456 -1.053714990615845 -1.41532027721405 0.04745131731033325 2.718222618103027 4.573976993560791 5.058319091796875 3.582614183425903 1.999575853347778 0.5326112508773804 -1.030566453933716 -1.437790751457214 0.0681239515542984 2.065274953842163 0.3729293346405029 -1.023535490036011 -1.70553982257843 -2.583095073699951 -2.701324462890625 -4.407942295074463 -3.705919027328491 -2.753569364547729 0.3301959037780762 -2.809134483337402 -1.86467719078064 0.3480339348316193 2.714848756790161 3.440782070159912 2.50223970413208 3.02089786529541 4.725719451904297 2.68867826461792 -1.864084601402283 -0.9962918162345886 0.4556294977664948 -1.938915252685547 -1.354613542556763 1.140177369117737 -4.312443256378174 -3.830919981002808 -2.809704065322876 0.9063619375228882 -0.1625916361808777 3.127937316894531 3.475513219833374 2.674872875213623 1.849913120269775 -0.2330504208803177 -2.754216432571411 -2.436744928359985 -0.1260258406400681 0.06145073473453522 -0.7245709896087646 -2.101935386657715 -1.849913954734802 0.3675121665000916 1.200463175773621 0.9443950057029724 2.181560277938843 -2.85406494140625 0.4793441593647003 1.246674299240112 -4.529114723205566 -2.243232727050781 -2.290646553039551 -1.393570184707642 -0.01825732551515102 0.2698008120059967 -3.317106008529663 -6.407065868377686 -1.995304942131042 1.540119767189026 1.784000039100647 0.5734401345252991 0.1995477676391602 0.3754545152187347 -0.3499642014503479 1.46204948425293 6.038210391998291 0.2639777660369873 -1.717935919761658 3.115074872970581 4.111408233642578 3.658582210540771 1.056252002716064 -1.640542984008789 -2.278313875198364 -0.6621015667915344 2.55027437210083 4.715645790100098 4.590397357940674 0.4363184869289398 -3.301156759262085 -2.539849519729614 -1.849626064300537 -2.316951274871826 -1.048295736312866 1.133107542991638 2.060016632080078 -0.3099344074726105 -0.8783843517303467 -1.142873764038086 -2.232572555541992 0.3676292896270752 0.2759748101234436 0.2392083704471588 1.035270929336548 2.386772394180298 2.178936243057251 1.983893752098083 1.707737565040588 1.321234226226807 1.086136341094971 0.5223771333694458 0.02120557241141796 1.792625069618225 3.298501491546631 3.448411703109741 -3.085736751556396 -5.119638442993164 -5.101778507232666 -4.716545104980469 -3.642220258712769 4.884219646453857 1.063145995140076 -3.544343233108521 -5.776185035705566 -5.772930145263672 -4.018037796020508 -1.721833229064941 -1.812821745872498 -1.741513729095459 -0.4040072858333588 1.838671326637268 1.469184637069702 0.7607325911521912 0.9303805828094482 3.222580671310425 2.851775646209717 3.461273670196533 1.40652596950531 1.713598489761353 1.1895831823349 0.1613136678934097 -1.264242172241211 -3.324083805084229 -4.26353120803833 -4.725387573242188 -4.818338394165039 -1.641623258590698 2.477029085159302 4.598411560058594 7.415260791778564 5.576790332794189 3.55778694152832 1.601449966430664 1.816928148269653 0.2265026420354843 -1.378551006317139 -2.014397621154785 -2.168810367584229 -0.6702194809913635 -1.162286043167114 0.5943188071250916 1.814015984535217 1.802202582359314 0.7965434193611145 0.1747429668903351 1.237513899803162 3.052348375320435 2.679614543914795 -0.4772282242774963 -0.1802288293838501 0.6013532876968384 -0.1617982089519501 -1.953948259353638 -3.968850374221802 -3.181699752807617 -0.01018625777214766 5.768858909606934 1.510913133621216 -5.867515087127686 -4.230972766876221 3.697107076644897 0.8225064873695374 -2.455718278884888 -4.100333213806152 -2.223346471786499 -0.5557944178581238 -0.5015264749526978 0.2601654529571533 2.774975061416626 3.813210010528564 2.954968214035034 -0.1322500854730606 -3.903019905090332 -1.906180620193481 1.655888676643372 2.595170736312866 -0.4601938724517822 -1.438645720481873 -1.855635046958923 0.9586510062217712 2.995631217956543 -0.002277234336361289 -3.014349699020386 -3.461998224258423 -0.9265079498291016 0.4599019885063171 -0.5558301210403442 -2.901886701583862 -2.364246606826782 -0.1564784497022629 0.5596774220466614 2.428518533706665 1.639878749847412 -2.539297103881836 -3.717720508575439 1.243941903114319 4.205615043640137 5.557441711425781 0.9545348882675171 -0.4045487344264984 1.493394255638123 -0.4669122695922852 -2.28948450088501 -2.45932674407959 -2.136809587478638 -0.3295146226882935 -0.2779994606971741 -0.577634871006012 -0.6169610619544983 0.6561386585235596 4.724327087402344 3.07610034942627 -1.658060193061829 -2.031235456466675 -2.215492248535156 -2.107334136962891 6.704012393951416 -1.129895687103271 -0.6797859072685242 2.322467565536499 -1.297030210494995 -0.5794317722320557 -0.1081402152776718 2.54412579536438 4.775333404541016 1.514504432678223 -1.747814416885376 -1.956537365913391 0.07455040514469147 1.546693801879883 -5.200569152832031 -5.585100173950195 -4.08670711517334 0.9180998802185059 -0.1823501735925674 0.9893454313278198 1.162729144096375 -0.04664810374379158 2.218381881713867 5.04656457901001 1.532089948654175 2.323511123657227 2.362767696380615 0.5084763169288635 -1.581148386001587 -0.5399421453475952 0.5696616172790527 2.288986682891846 0.3461943566799164 -3.190247297286987 -3.13453221321106 -2.923089504241943 -4.691374778747559 -2.944085597991943 4.81080436706543 2.626655340194702 2.906660079956055 -0.6256694793701172 -0.8443707823753357 0.1986517906188965 -3.910779237747192 -2.54503345489502 -1.068150281906128 0.03138452768325806 0.9545773267745972 0.6089075207710266 0.8500150442123413 1.553359389305115 0.7447646260261536 -0.6660216450691223 -1.251451134681702 0.9642975330352783 3.072862148284912 2.39927864074707 -0.3977593183517456 1.682255029678345 -0.9336167573928833 -2.297159433364868 -2.267054557800293 2.475322484970093 -1.234686613082886 -1.618472337722778 -1.720277547836304 -0.9833378195762634 2.112728357315063 5.194481372833252 4.810319900512695 0.8448953032493591 -2.347816705703735 -0.3326122760772705 1.17035448551178 0.5326123833656311 -1.681164145469666 0.7134349942207336 -3.921677112579346 -2.740969181060791 -1.502994060516357 0.1494543105363846 -1.303657412528992 3.859384536743164 -0.1974760890007019 -1.204159379005432 0.7870263457298279 1.20784318447113 -0.412180632352829 2.854308605194092 2.036135673522949 -7.896153450012207 1.96798038482666 0.6142703294754028 -1.04549241065979 0.7656822800636292 0.530646800994873 0.7491075992584229 2.27885913848877 -1.031242847442627 -0.5792055726051331 -0.1947787255048752 -0.2996771633625031 -0.9314987063407898 -0.4684286415576935 -0.8086718320846558 -0.4803415238857269 -0.05642393231391907 -0.07137160003185272 -0.5396735072135925 -0.140896812081337 1.908030867576599 3.449936151504517 0.9632052183151245 -2.89526104927063 -3.726168155670166 -3.505832433700562 -3.098532438278198 -3.468913555145264 -0.6730149388313293 3.466864347457886 0.407550185918808 5.336441040039062 4.401493072509766 -2.703024387359619 -0.1572434902191162 2.461108684539795 3.664478302001953 3.587172031402588 3.79566216468811 2.713443994522095 -1.633461594581604 -5.015755176544189 -4.550937652587891 -3.106352567672729 -2.323480606079102 -1.362185120582581 -0.8140701055526733 -0.7929184436798096 0.005429294891655445 1.243126511573792 1.093090772628784 2.23856520652771 1.657349467277527 0.03467286005616188 0.719140350818634 0.3970751166343689 -1.179105997085571 -3.582636117935181 -2.297462224960327 1.133430480957031 2.930241823196411 4.449448108673096 3.285587787628174 0.9356228709220886 -0.6920117735862732 -0.9163419008255005 -1.47978138923645 -0.1448333114385605 3.028470516204834 -3.840100526809692 -2.107812881469727 2.127859592437744 -2.801463842391968 0.1642050743103027 1.550507426261902 2.340445041656494 0.8584553599357605 -3.849125862121582 -6.730381488800049 -5.366515159606934 -2.990593910217285 -1.69432544708252 -0.3469432592391968 1.720078587532043 1.839707493782043 1.809596061706543 2.265991687774658 3.629663944244385 2.290788173675537 3.841415643692017 -0.8610998392105103 -1.324124097824097 0.8522539734840393 -3.16595196723938 -2.74837589263916 -2.364439487457275 -2.732161045074463 -3.585515260696411 -3.129282236099243 -0.4480576515197754 2.710974216461182 3.149567127227783 0.229665219783783 -1.196038365364075 -0.4921483099460602 0.6224842667579651 0.377840667963028 1.882081866264343 3.848324537277222 2.575013637542725 -0.9573463201522827 -0.5414612293243408 5.964829921722412 codec2-1.0.1/octave/trellis.m000066400000000000000000000434331412132000500157600ustar00rootroot00000000000000% trellis.m % David Rowe July 2021 % % Testing trellis decoding of Codec 2 Vector Quantiser (VQ) % information. Uses soft decision information, probablility of state % transitions, and left over redundancy to correct errors on VQ % reception. % % VQ indexes are transmitted as codewords mapped to +-1 % % y = c + n % % where c is the transmitted codeword, y is the received codeword, % and n is Gaussian noise. % % This script generates the test data files: % % cd codec2/build_linux % ../script/train_trellis.sh % % Results so far (August 2021): % % 1/ 2dB improvement with nstages=3, dec=1 % 2/ No useful improvement with nstages=3, dec=4. This is required for a practical codec to % get a useful bit rate. 1; % converts a decimal value to a soft dec binary value function c = dec2sd(dec, nbits) % convert to binary c = zeros(1,nbits); for j=0:nbits-1 mask = 2.^j; if bitand(dec,mask) c(nbits-j) = 1; end end % map to +/- 1 c = -1 + 2*c; endfunction % y is vector of received soft decision values (e.g +/-1 + noise) function [txp indexes] = ln_tx_codeword_prob_given_rx_codeword_y(y, nstates, C) nbits = length(y); np = 2.^nbits; % Find log probability of all possible transmitted codewords txp = C * y'; % return most probable codewords (number of states to search) [txp indexes] = sort(txp,"descend"); txp = txp(1:nstates); indexes = indexes(1:nstates) - 1; endfunction % A matrix of all possible tx codewords C, one per row function C = precompute_C(nbits) np = 2.^nbits; C = zeros(np, nbits); for r=0:np-1 C(r+1,:) = dec2sd(r,nbits); end endfunction % work out transition probability matrix, given lists of current and next % candidate codewords function tp = calculate_tp(vq, sd_table, h_table, indexes_current, indexes_next, verbose) ntxcw = length(indexes_current); tp = zeros(ntxcw, ntxcw); for txcw_current=1:ntxcw index_current = indexes_current(txcw_current); for txcw_next=1:ntxcw index_next = indexes_next(txcw_next); dist = vq(index_current+1,:) - vq(index_next+1,:); sd = mean(dist.^2); p = prob_from_hist(sd_table, h_table, sd); if bitand(verbose, 0x2) printf("index_current: %d index_next: %d sd: %f p: %f\n", index_current, index_next, sd, p); end tp(txcw_current, txcw_next) = log(p); end end endfunction % y is the sequence received soft decision codewords, each row is one % codeword in time. sd_table and h_table map SD to % probability. Returns the most likely transmitted VQ index ind in the % middle of the codeword sequence y. We search the most likely ntxcw % tx codewords out of 2^nbits possibilities. function ind = find_most_likely_index(y, vq, C, sd_table, h_table, nstages, ntxcw, verbose) [ncodewords nbits] = size(y); % populate the nodes of the trellis with the most likely transmitted codewords txp = zeros(nstages, ntxcw); indexes = zeros(nstages, ntxcw); for s=1:nstages [atxp aindexes] = ln_tx_codeword_prob_given_rx_codeword_y(y(s,:), ntxcw, C); txp(s,:) = atxp; indexes(s,:) = aindexes; end if verbose printf("rx_codewords:\n"); for r=1:ncodewords for c=1:nbits printf("%7.2f", y(r,c)); end printf("\n"); end printf("\nProbability of each tx codeword index/binary/ln(prob):\n"); printf(" "); for s=1:nstages printf("Time n%+d ", s - (floor(nstages/2)+1)); end printf("\n"); for i=1:ntxcw printf("%d ", i); for s=1:nstages ind = indexes(s,i); printf("%4d %12s %5.2f ", ind, dec2bin(ind,nbits), txp(s, i)); end printf("\n"); end printf("\n"); end % Determine transition probability matrix for each stage, this % changes between stages as lists of candidate tx codewords % changes tp = zeros(nstages, ntxcw, ntxcw); for s=1:nstages-1 if verbose printf("Calc tp(%d,:,:)\n", s), end tp(s,:,:) = calculate_tp(vq, sd_table, h_table, indexes(s,:), indexes(s+1,:), verbose); end if verbose printf("Evaulation of all possible paths:\n"); printf(" "); for s=1:nstages printf(" n%+d", s - (floor(nstages/2)+1)); end printf(" indexes"); printf(" "); for s=1:nstages printf(" txp(%d)", s-1); if s < nstages printf(" tp(%d,%d) ", s-1,s); end end printf(" prob max_prob\n"); end % OK lets search all possible paths and find most probable n = ones(1,nstages); % current node at each stage through trellis, describes current path max_prob = -100; do if bitand(verbose, 0x4) printf(" "); for s=1:nstages printf("%4d", n(s)-1); end printf(" "); for s=1:nstages printf("%4d ", indexes(s,n(s))); end end % find the probability of current path prob = 0; for s=1:nstages prob += txp(s, n(s)); if bitand(verbose,0x4) printf("%8.2f ", txp(s, n(s))); end if s < nstages prob += tp(s, n(s), n(s+1)); if bitand(verbose,0x4) printf("%8.2f ", tp(s, n(s), n(s+1))); end end end if (prob > max_prob) max_prob = prob; max_n = n; end if bitand(verbose,0x4) printf("%9.2f %9.2f\n", prob, max_prob); end % next path s = nstages; n(s)++; while (s && (n(s) == (ntxcw+1))) n(s) = 1; s--; if s > 0 n(s)++; end end until (sum(n) == nstages) middle = floor(nstages/2)+1; ind = indexes(middle, max_n(middle)); if verbose printf("\nMost likely path through nodes... "); for s=1:nstages printf("%4d ", max_n(s)-1); end printf("\nMost likely path through indexes: "); for s=1:nstages printf("%4d ", indexes(s,max_n(s))); end printf("\nMost likely VQ index at time n..: %4d\n", ind); end endfunction % Given a normalised histogram, estimate probability from SD function p = prob_from_hist(sd_table, h_table, sd) p = interp1 (sd_table, h_table, sd, "extrap", "nearest"); endfunction % Calculate a normalised histogram of the SD of adjacent frames from % a file of output vectors from the VQ. function [sd_table h_table] = vq_hist(vq_output_fn, dec=1) K=20; K_st=2+1; K_en=16+1; vq_out = load_f32(vq_output_fn, K); [r c]= size(vq_out); diff = vq_out(dec+1:end,K_st:K_en) - vq_out(1:end-dec,K_st:K_en); % Octave efficient way to determine MSE or each row of matrix sd_adj = meansq(diff'); [h_table sd_table] = hist(sd_adj,100,1); h_table = max(h_table, 1E-5); endfunction % vector quantise a sequence of target input vectors, returning the VQ indexes and % quantised vectors target_ function [indexes target_] = vector_quantiser(vq, target, verbose=1) [vq_size K] = size(vq); [ntarget tmp] = size(target); target_ = zeros(ntarget,K); indexes = zeros(1,ntarget); for i=1:ntarget best_e = 1E32; for ind=1:vq_size e = sum((vq(ind,:)-target(i,:)).^2); if verbose printf("i: %d ind: %d e: %f\n", i, ind, e), end; if e < best_e best_e = e; best_ind = ind; end end if verbose printf("best_e: %f best_ind: %d\n", best_e, best_ind), end; target_(i,:) = vq(best_ind,:); indexes(i) = best_ind; end endfunction % faster version of vector quantiser function [indexes target_] = vector_quantiser_fast(vq, target, verbose=1) [vq_size K] = size(vq); [ntarget tmp] = size(target); target_ = zeros(ntarget,K); indexes = zeros(1,ntarget); % pre-compute energy of each VQ vector vqsq = zeros(vq_size,1); for i=1:vq_size vqsq(i) = vq(i,:)*vq(i,:)'; end % use efficient matrix multiplies to search for best match to target for i=1:ntarget best_e = 1E32; e = vqsq - 2*(vq * target(i,:)'); [best_e best_ind] = min(e); if verbose printf("best_e: %f best_ind: %d\n", best_e, best_ind), end; target_(i,:) = vq(best_ind,:); indexes(i) = best_ind; end endfunction % VQ a target sequence of frames then run a test using vanilla uncoded/trellis decoder function results = run_test(target, vq, sd_table, h_table, ntxcw, nstages, EbNo, verbose) [frames tmp] = size(target); [vq_length tmp] = size(vq); nbits = log2(vq_length); nerrors = 0; nerrors_vanilla = 0; tbits = 0; nframes = 0; nper = 0; nper_vanilla = 0; C = precompute_C(nbits); % Vector Quantise target vectors sequence [tx_indexes target_ ] = vector_quantiser_fast(vq, target, verbose); % use convention of indexes starting from 0 tx_indexes -= 1; % mean SD of VQ with no errors diff = target - target_; mse_noerrors = mean(diff(:).^2); % construct tx symbol codewords from VQ indexes tx_codewords = zeros(frames, nbits); for f=1:frames tx_codewords(f,:) = dec2sd(tx_indexes(f), nbits); end rx_codewords = tx_codewords + randn(frames, nbits)*sqrt(1/(2*EbNo)); rx_indexes = zeros(1,frames); rx_indexes_vanilla = ones(1,frames); ns2 = floor(nstages/2); for f=ns2+1:frames-ns2 %if f==10 verbose = 1+0x2, else verbose = 0;, end if verbose printf("f: %d tx_indexes: ", f); for i=f-ns2:f+ns2 printf("%d ", tx_indexes(i)); end printf("\n"); end tx_bits = tx_codewords(f,:) > 0; if verbose printf("tx_bits: "); for i=1:nbits printf("%d",tx_bits(i)); end printf("\n"); end rx_bits_vanilla = rx_codewords(f,:) > 0; rx_indexes(f) = find_most_likely_index(rx_codewords(f-ns2:f+ns2,:)*EbNo, vq, C, sd_table, h_table, nstages, ntxcw, verbose); rx_bits = dec2sd(rx_indexes(f), nbits) > 0; rx_indexes_vanilla(f) = sum(rx_bits_vanilla .* 2.^(nbits-1:-1:0)); errors = sum(xor(tx_bits, rx_bits)); nerrors += errors; if errors nper++;, end errors = sum(xor(tx_bits, rx_bits_vanilla)); nerrors_vanilla += errors; if errors nper_vanilla++;, end if verbose printf("[%d] %d %d\n", f, nerrors, nerrors_vanilla); end tbits += nbits; nframes++; end EbNodB = 10*log10(EbNo); target = target(ns2+1:frames-ns2,:); target_vanilla_ = vq(rx_indexes_vanilla(ns2+1:frames-ns2)+1,:); target_ = vq(rx_indexes(ns2+1:frames-ns2)+1,:); diff_vanilla = target - target_vanilla_; mse_vanilla = mean(diff_vanilla(:).^2); diff = target - target_; mse = mean(diff(:).^2); printf("Eb/No: %3.2f dB nframes: %2d nerrors %3d %3d BER: %4.3f %4.3f PER: %3.2f %3.2f mse: %3.2f %3.2f %3.2f\n", EbNodB, nframes, nerrors, nerrors_vanilla, nerrors/tbits, nerrors_vanilla/tbits, nper/nframes, nper_vanilla/nframes, mse_noerrors, mse, mse_vanilla); results.ber = nerrors/tbits; results.ber_vanilla = nerrors_vanilla/tbits; results.per = nper/nframes; results.per_vanilla = nper_vanilla/nframes; results.mse_noerrors = mse_noerrors; results.mse = mse; results.mse_vanilla = mse_vanilla; results.tx_indexes = tx_indexes; results.rx_indexes = rx_indexes; results.rx_indexes_vanilla = rx_indexes_vanilla; endfunction % Simulations --------------------------------------------------------------------- % top level function to set up and run a test function [results target_] = test_trellis(target_fn, nframes=100, dec=1, ntxcw=8, nstages=3, EbNodB=3, verbose=0) K = 20; K_st=2+1; K_en=16+1; vq_fn = "../build_linux/vq_stage1_bs004.f32"; vq_output_fn = "../build_linux/all_speech_8k_test.f32"; % load VQ vq = load_f32(vq_fn, K); [vq_size tmp] = size(vq); vqsub = vq(:,K_st:K_en); % load file of VQ-ed vectors to train up SD PDF estimator [sd_table h_table] = vq_hist(vq_output_fn, dec); % load sequence of target vectors we wish to VQ target = load_f32(target_fn, K); % limit test to the first nframes vectors if nframes != -1 last = nframes; else last = length(target); end target = target(1:dec:last,K_st:K_en); % run a test EbNo=10^(EbNodB/10); results = run_test(target, vqsub, sd_table, h_table, ntxcw, nstages, EbNo, verbose); if verbose for f=2:nframes-1 printf("f: %03d tx_index: %04d rx_index: %04d\n", f, results.tx_indexes(f), results.rx_indexes(f)); end end % return full band vq-ed vectors target_ = zeros(last,K); target_(1:dec:last,:) = vq(results.rx_indexes+1,:); % use linear interpolation to restore original frame rate for f=1:dec:last-dec prev = f; next = f + dec; for g=prev+1:next-1 cnext = (g-prev)/dec; cprev = 1 - cnext; target_(g,:) = cprev*target_(prev,:) + cnext*target_(next,:); %printf("f: %d g: %d cprev: %f cnext: %f\n", f, g, cprev, cnext); end end endfunction % Plot histograms of SD at different decimations in time function vq_hist_dec(vq_output_fn) figure(1); clf; [sd_table h_table] = vq_hist(vq_output_fn, dec=1); plot(sd_table, h_table, "b;dec=1;"); hold on; [sd_table h_table] = vq_hist(vq_output_fn, dec=2); plot(sd_table, h_table, "r;dec=2;"); [sd_table h_table] = vq_hist(vq_output_fn, dec=3); plot(sd_table, h_table, "g;dec=3;"); [sd_table h_table] = vq_hist(vq_output_fn, dec=4); plot(sd_table, h_table, "c;dec=4;"); hold off; axis([0 300 0 0.5]) xlabel("SD dB*dB"); title('Histogram of SD(n,n+1)'); endfunction % Automated tests for vanilla and fast VQ search functions function test_vq(vq_fn) K=20; vq = load_f32(vq_fn, K); vq_size = 100; target = vq(1:vq_size,:); indexes = vector_quantiser(target,target, verbose=0); assert(indexes == 1:vq_size); printf("Vanilla OK!\n"); indexes = vector_quantiser_fast(target,target, verbose=0); assert(indexes == 1:vq_size); printf("Fast OK!\n"); endfunction % Test trellis decoding a single vector in a sequence of 3 function ind = run_test_single(tx_codewords, ntxcw, var, verbose) nstages = 3; nbits = 2; rx_codewords = tx_codewords + randn(nstages, nbits)*var; vq = [0 0 0 1; 0 0 1 0; 0 1 0 0; 1 0 0 0]; sd_table = [0 1 2 4]; h_table = [0.5 0.25 0.15 0.1]; C = precompute_C(nbits); ind = find_most_likely_index(rx_codewords, vq, C, sd_table, h_table, nstages, ntxcw, verbose); endfunction % Series of single point sanity checks function test_single printf("Single vector decode tests....\n"); ind = run_test_single([-1 -1; -1 -1; -1 -1], ntxcw=1, var=0, verbose=0); assert(ind == 0); printf("00 with no noise OK!\n"); ind = run_test_single([-1 1; 1 1; -1 1], ntxcw=1, var=0, verbose=0); assert(ind == 3); printf("11 with no noise OK!\n"); ind = run_test_single([-1 -1; -1 1; -1 -1], ntxcw=4, var=1, verbose=0); assert(ind == 1); printf("01 with noise OK!\n"); endfunction % BPSK simulation to check noise injection function test_bpsk_ber nbits = 12; frames = 10000; tx_codewords = zeros(frames,nbits); tx_bits = zeros(frames,nbits); for f=1:frames tx_codewords(f,:) = dec2sd(f, nbits); tx_bits(f,:) = tx_codewords(f,:) > 0; end EbNodB = 5; EbNo = 10^(EbNodB/10); rx_codewords = tx_codewords + randn(frames, nbits)*sqrt(1/(2*EbNo)); rx_bits = rx_codewords > 0; nerrors = sum(xor(tx_bits, rx_bits)(:)); tbits = frames*nbits; printf("EbNo: %4.2f dB tbits: %d errs: %d BER: %4.3f %4.3f\n", EbNodB, tbits, nerrors, nerrors/tbits, 0.5*erfc(sqrt(EbNo))); endfunction % generate sets of curves function [EbNodB rms_sd] = run_curves(frames=100, dec=1, nstages=5) results_log = []; EbNodB = [0 1 2 3 4 5]; target_fn = "../build_linux/all_speech_8k_lim.f32"; for i=1:length(EbNodB) results = test_trellis(target_fn, frames, dec, ntxcw=8, nstages, EbNodB(i), verbose=0); results_log = [results_log results]; end for i=1:length(results_log) ber(i) = results_log(i).ber; ber_vanilla(i) = results_log(i).ber_vanilla; per(i) = results_log(i).per; per_vanilla(i) = results_log(i).per_vanilla; rms_sd_noerrors(i) = sqrt(results_log(i).mse_noerrors); rms_sd(i) = sqrt(results_log(i).mse); rms_sd_vanilla(i) = sqrt(results_log(i).mse_vanilla); end figure(1); clf; semilogy(EbNodB, ber_vanilla, "r+-;uncoded;"); hold on; semilogy(EbNodB, ber, "g+-;trellis;"); hold off; grid('minor'); title(sprintf("BER dec=%d nstages=%d",dec,nstages)); print("-dpng", sprintf("trellis_dec_%d_ber.png",dec)); figure(2); clf; semilogy(EbNodB, per_vanilla, "r+-;uncoded;"); hold on; semilogy(EbNodB, per, "g+-;trellis;"); grid('minor'); title(sprintf("PER dec=%d nstages=%d",dec,nstages)); print("-dpng", sprintf("trellis_dec_%d_per.png",dec)); figure(3); clf; plot(EbNodB, rms_sd_noerrors, "b+-;no errors;"); hold on; plot(EbNodB, rms_sd_vanilla, "r+-;uncoded;"); plot(EbNodB, rms_sd, "g+-;trellis;"); hold off; grid('minor'); title(sprintf("RMS SD dec=%d nstages=%d",dec,nstages)); print("-dpng", sprintf("trellis_dec_%d_rms_sd.png",dec)); endfunction function vq_file(vq_fn, dec, EbNodB, in_fn, out_fn) [results target_] = test_trellis(in_fn, nframes=-1, dec, ntxcw=8, nstages=3, EbNodB, verbose=0); save_f32(out_fn, target_); endfunction % ------------------------------------------------------------------- more off; randn('state',1); % uncomment one of the below to run a test or simulation % These two tests show where we are at: %test_trellis(target_fn, nframes=600, dec=1, ntxcw=8, nstages=3, EbNodB=3, verbose=0); %test_trellis(target_fn, nframes=600, dec=4, ntxcw=8, nstages=3, EbNodB=3, verbose=0); %run_curves(600,1) %run_curves(600,2) %run_curves(600,4) %[EbNodB rms_sd] = run_curves(30*100,3,3) %test_trellis(target_fn, nframes=200, dec=1, ntxcw=1, nstages=3, EbNodB=3, verbose=0); %test_trellis(target_fn, nframes=100, dec=2, ntxcw=8, nstages=3, EbNodB=3, verbose=0); %test_vq("../build_linux/vq_stage1.f32"); %vq_hist_dec("../build_linux/all_speech_8k_test.f32"); %test_single %test_bpsk_ber codec2-1.0.1/octave/trellis_dec3_nstage3.txt000066400000000000000000000004661412132000500206640ustar00rootroot00000000000000# Created by Octave 5.2.0, Sun Sep 12 12:26:33 2021 ACST # name: EbNodB # type: matrix # rows: 1 # columns: 6 0 1 2 3 4 5 # name: rms_sd # type: matrix # rows: 1 # columns: 6 7.7412523956816406 6.4841339000579836 5.8017966072531637 4.9470616511274006 4.3575512816148612 3.5924646693565796 codec2-1.0.1/octave/vq000066400000000000000000006402741412132000500145030ustar00rootroot00000000000000# Created by Octave 3.8.1, Sat Apr 23 08:58:51 2016 AEST # name: vq # type: matrix # ndims: 3 256 20 2 1.085205426985832 -0.4260300009189197 0.833577745236378 1.798373960816606 0.9935936444607169 0.1239833582287509 1.575157273987481 0.9540245374175702 0.3562009016948172 1.585644452239723 1.506294746166876 0.2396183532805597 1.367446280732269 1.282223720216575 1.162423214604796 0.5244164469952718 1.128835884692779 1.058918853547902 1.963632826547209 0.5811484562442362 1.120960795023191 1.293247932196338 0.8421615329424976 1.327956700632984 1.150131602897049 1.32240186352708 1.151653785065956 0.4043141675059787 -0.605854891571997 0.5664167394483143 -0.7537298690327013 1.049449161804654 0.5218464074650003 1.494541250873327 0.8342264875867933 0.9206540524095941 0.06472922157937634 0.7198209111919989 1.38273463666622 1.369195704270166 0.7200435399985342 0.4728514924142588 1.338670575504253 0.901349771652351 0.7221823774481055 1.05531832867729 1.122264649509382 0.03480813187567571 0.8704977954705367 0.3118300343783649 1.345816954855809 0.9902369196859547 1.630250359910498 0.9962379680208187 0.7860178377708859 1.405072623711622 0.04215045540948043 1.100604952014984 1.801940417320714 1.672902158942722 0.9189112275890299 1.073606509430072 0.7077106102247487 1.351518501029729 0.8198628050578108 1.233747356047938 1.867879182176302 1.16871953438174 0.5619271296279016 1.377194835765386 -0.06310946462056462 1.193115849982975 0.3302970529535515 1.128793026714063 0.9728683717267995 1.387587258338834 1.244021687351402 0.6683606936174704 1.199485416480435 0.5956899153219491 0.3013694867793058 0.8655341870443748 0.2088344957654923 1.1447496470614 1.084164446118127 1.003149200094682 1.191560192626183 0.07486858283563912 0.7661458586347402 0.4866127826256495 -0.1089155940953209 1.23959659930226 1.054183144345908 0.2504451195646863 0.8956884207647202 1.119249454883628 1.116978748635182 0.9513183172426499 0.1089893432612581 0.6032927070356664 1.223982221591883 1.252308815173021 0.5827306571168442 1.421065953702404 0.162963901404173 1.196233511235407 1.84581856021695 0.9869956389787488 0.1646961461119581 0.9850201800243675 1.429250808608257 0.9923260772179757 0.9590272370201224 0.5825501483605714 1.070845967907089 1.175383240709347 0.6499779705541643 0.3320598410515813 1.592125364047756 -0.3139251676378877 0.2941683771906135 1.678238614064441 -0.4402253102695204 1.311626010101525 1.230368944293766 1.118969630404878 0.4699109361369931 0.5566459218624169 0.3996167544525743 1.063017424039592 0.9065738165115017 1.274194918558561 1.226051793207517 1.195335954727556 0.5219409661767341 -0.3567210160579476 0.2030643648479605 1.385132588724635 0.9158832967346469 0.9322888042239789 1.298607308549179 0.6104336622079205 1.112243563345926 1.520623715949573 0.9317177714797874 0.7712367063105167 1.340499022391671 1.304764024159155 0.4735061357092801 0.9625427325458471 1.136775254002388 0.4261374335150909 0.3337168222499328 0.9646263375973135 0.1382418388350582 1.142845116548473 0.8905004958914902 0.6352197854178532 0.5315973388091748 0.2762672232170045 0.7323883053221711 1.069700009254771 0.5773447972180785 0.6265539300205094 1.208723096926154 1.373557618988817 1.396848139856655 1.22644909332404 0.747423382879117 0.1923928104579403 0.2317151183086048 1.195158636439779 1.235985355812018 0.9547800158843198 0.8904454757455824 1.143257875740302 0.908286803400884 0.1941688834036181 0.3158243056857314 0.6849987277815992 0.6445369483172818 1.05538088978711 0.6030235309635322 1.486202280215748 1.396804660772058 1.150704097309296 0.6920213957251961 1.582203495857851 1.202025792169117 1.374999251582953 0.2288168689728823 0.4329608518584964 0.8464391637680514 1.135844763204482 -0.1545900194782768 0.9567819848531226 1.374372950241175 1.333415099532475 1.200028477439384 -1.0208946912861 1.334019146241362 0.5691948095784971 1.250417957983486 0.1606069495457166 1.351838776281039 0.09518343481973855 0.3320891202043986 1.650452578645842 1.569148456097603 -0.09071912653151751 0.3264988095922111 0.8375894641356687 0.6559955317907418 1.149364426104217 0.8062962854345533 0.9188276660142149 0.3028421810952253 1.566145006462622 0.5822774136794752 1.069120717715464 1.721561396547623 0.856831005984519 0.5564137080731699 0.7153678821180693 0.853234505158737 0.603185994785441 1.186506259153193 1.148948504058279 0.6177590034489259 0.5760949222380469 1.855034211463561 0.9121147355845477 1.010718439207553 1.549735365386854 1.069655184913645 -0.7295454638452006 0.8476706126547495 1.045201963428327 1.876209304797508 1.100098125226684 0.5449377727755268 1.393285124315972 0.3558090786406779 0.9881025017683388 1.093368419306702 0.448706447264993 0.911083453512061 1.15800556561816 -0.4846742001392422 0.5454789417356526 -0.02763772693410249 0.7899662745198055 1.086855284902688 0.5083938014690804 1.784614071563062 0.4955810910707088 0.6307896832511808 -0.34177101856323 1.407977101362635 0.01089753717535649 0.8109156423843644 0.02157571365906377 0.7974501480560753 1.161677104060995 0.7449135184865795 1.335922577995176 1.618074115184736 0.5036808860872769 1.281621536264201 1.496512222586918 0.5656867946695433 0.6635578371625578 0.7769267716943143 0.7863318705349102 -1.780978883369023 -0.0334354168623605 0.6636862687063216 1.31953372409462 0.7679335906405473 1.357765462325111 1.002678487287578 1.312437664849832 0.8924926344549168 0.4636383638860451 -0.4070912248841624 0.3217800893580187 -0.05480191063438398 0.5704105297752942 0.5671989228695588 1.265425897803026 0.9479718237857699 0.8777643997522284 0.1431302574000071 0.6515151863984949 1.173472222357272 1.362655064101474 0.5580298125429235 0.6418980270774041 1.03039668193185 0.3594537068522266 -0.04147042419107318 1.455218010598134 1.227033289641574 0.06992318109090488 0.3180324711899842 -0.1495786011244451 0.9918971182481525 0.8774198930235823 1.721649383997356 0.9281742007128928 1.640992165953183 1.269750130001307 0.03069266092696008 0.3789038439191283 0.593613546633564 1.111480012530088 0.8286979077983071 1.18404324241428 0.7819017133615419 1.184090438751563 0.7659782497915133 1.0270864532279 1.828429658014905 0.7901410673132826 0.7366673489477884 1.154988816261634 -0.5471812039524085 0.934981740816867 0.2371332570247094 1.0250163450453 1.27266423448643 1.454333079552459 0.5727768922154086 0.9771845066546033 0.9172197471647986 1.075563145199177 0.4384292666482437 1.239092406693795 0.210285117767336 0.8733612055335693 1.053824328003951 1.140078195008836 0.7905272592630922 0.7828638574028199 0.3800700405357779 0.04386828899833825 0.4448709339379409 1.175831673476218 0.5101567242836115 0.09582478057635176 0.5917407640130367 1.188218565713065 0.9963122522605247 0.9296892601798483 0.2641176647599591 0.03959598133926203 0.9551648406598405 1.0764477050855 0.1378738153867933 1.23353768813546 -0.4889616350026407 0.8333605392781226 1.077043592755524 0.4993903680346781 -0.1139168084620633 0.7914997890435082 1.061615511701903 0.7068251156389007 0.8895360567176563 0.9221606578157804 0.8720105612358751 1.146999585796198 0.2380133501973453 0.5057686048644131 1.479930515236531 0.01015620544596672 0.2431628777000853 1.702530222152529 -0.6796910843532397 1.032776572059292 1.301342297641337 0.8143336069861939 0.7635151712808649 0.6362377313700681 0.4339276521621836 0.4802842872208226 0.3001502607473731 1.106077237434545 1.008263870942845 1.365542441935153 0.6790855740186382 -0.0837459219137099 0.8732339782103199 1.640876156222111 0.9177915661396188 1.104421107680557 0.8853913828852079 0.4571773916694294 0.9094059065244827 1.587617533587789 0.1524648649046425 0.3692382822458569 1.242632785428377 1.320666722021657 0.6910286390838315 0.8196657398334 1.094117543461184 1.050573062644234 -0.095843175006164 0.8439478073229337 0.01388520142811661 0.8525313241450097 0.7560187534936887 0.7163589419339997 0.48172955945087 0.3191282594036909 0.5887849395958622 1.073048278856649 0.6298813075484302 0.8494144146160413 1.119108071145198 0.5041467048651576 0.753953116677396 1.415463825758381 0.7543289699956602 0.1886565605608594 0.337384574159233 0.997230623170282 0.9040472605249359 0.4907711273324722 0.9061210546528722 1.156437217107255 0.4695398632675316 -0.00085808420372521 0.1361669439466877 0.789467312307312 0.5997423085983093 0.6901869245440042 0.6159422966653133 1.199854198628586 0.8079953503366223 0.468524121850383 0.5324545493188838 0.8344982497659503 1.370319814607772 1.44131066853247 0.7407415623265214 0.05393103628695976 1.079745668684748 0.5729519871321513 -0.1851074752298328 0.992944720430734 0.9115450331591136 1.370626836759575 0.4751961017836588 -0.6822887887799577 1.355603094738513 0.7582980444714997 1.287305989858565 0.3103196025488943 1.421172024185723 -0.03865357392167217 0.7292790541459703 1.503226353587898 0.5882138571631963 -0.6093718430332411 0.1767394375474176 1.276766057212127 0.2680255519434074 1.12370254387008 0.398854116141619 1.137373259085501 -0.3490926629910003 1.624321880009409 0.5226169241649171 0.9044285339583492 1.521669667354217 0.7912102844944133 0.4799761729696941 0.007198768056136138 1.118146053519841 0.6123216140984202 1.326185872147739 0.9124790581806869 0.04998935374131432 0.197000146554438 0.891152524397205 0.5822353455552293 0.3891121700178945 1.593699066012701 0.9369187911763287 -0.4173953205770336 0.02815662236665207 1.263074340857436 -0.4156518344072447 0.9024061343598681 0.08377464923872469 1.738787817003506 0.5177228046119318 1.132147362693591 1.279158205976386 0.7202975064986489 1.083485371159031 1.243643218383548 -0.252741128821911 0.7413435329819636 0.4777693296936473 0.8402990100436456 1.01127993141735 0.1533121344864636 1.467708403340319 0.491607387702562 0.2813488729981752 -0.23309774437551 0.8385025128809915 0.3270048984513226 0.8551646087377082 0.0510931504452391 0.2765658079493324 1.19487687416751 0.7330927106990655 0.4039208562877936 0.7509115681262256 0.2929882944647805 0.6622594713526353 0.8716985336118284 0.256385689857605 0.5761648585763438 0.5135305910284679 0.7367357125025655 1.893284660668191 -0.1812633458814429 0.5535296184930434 0.7110951260347793 0.1472364235480178 0.821249306261171 0.4425183187837054 1.099118632151938 0.5697552691995635 0.9103172272666007 -0.3505623944219689 0.3038726147938779 0.2766268157752633 0.4633144824118865 0.421873437147429 1.403668123763734 0.885456979305717 0.4495998966673143 0.1751816133102695 0.1420572593236852 1.023012905853923 0.6073508208973148 0.698487833169068 0.6488088673841286 0.5915845287078585 -0.05177700993234245 -0.2162361772648918 1.095833420194178 1.280856218535019 0.1730234086711988 0.1005129723860903 -0.2376144855255936 0.4483192343799798 1.104287886446522 1.05196798440898 1.422049575253155 1.537352663766892 0.7500419081327695 0.03991494652899544 0.1034867659806852 0.4224085207772535 0.3864210672817945 0.3735747180645465 0.7765915223589677 0.3315281950696041 0.5683741364769683 0.2019063044164997 1.034269555873555 1.233685691705767 0.09881214847988599 0.2720142723998445 0.6198100476916732 -0.4401429185734267 0.2989412982646393 0.1531713813109536 0.6256149735005488 0.2905363579030045 1.397726502355438 0.2616648818407552 0.4490368449109646 0.9163917663722386 1.089257583951409 0.5203423966116525 0.8826668740057446 0.5417175045725473 1.090892214419326 0.7454410916412249 0.7525217841302803 0.1226292710741966 1.030237066837245 0.2089646577463286 -0.06084684303132043 0.9846655017994531 0.5153646593337698 0.2205181808919031 0.2146525528107585 0.4538487033213079 0.3112177429774014 0.6401051461257636 0.2233938908298634 0.2471328569943696 -0.3118132717953503 1.011259948671065 0.8180977557926039 0.01109870254488479 0.9295340611245301 -0.4471511869338353 0.2186642118804684 0.3410503815535691 0.2961312366333129 -0.143295880948191 0.6570058907728265 0.3374478790259653 0.7164972147498678 0.4728493928151949 0.6309390863530263 0.9192287990009655 0.5236244132628847 -0.01669515537818698 0.7359536567719464 0.7633933826108308 0.1505084066165529 0.03028416277848445 1.085764033307612 -0.5202265832878327 0.7875814498506806 0.3028976076028166 0.3041742281687709 0.6305983965683244 0.3863647299097199 0.6091800798116837 0.2766290594885096 -0.04164046469769212 1.095085939499609 0.7520161873439619 0.6899692417334078 0.722569043292997 0.1692090038495222 1.082199154298006 1.581671334352642 0.689404983899905 0.6840779222017123 0.8436653279709823 0.2662908234016441 0.981892759284849 1.134640943038094 -0.2345715436513772 0.6178212925489196 0.4036932487417162 0.7952702641381866 0.5639573896008447 0.5993645140406432 0.7141580513604615 1.014012316351468 -0.08744981314008972 1.063873115437658 0.1099034874188993 0.9950519710874927 0.1534889007169 0.05631190168031441 0.1748263357959901 0.165560369417498 0.4633308759715956 1.188905400442834 0.7731024403484956 0.8423415798127308 0.9718508042477025 0.2297467466333339 -0.01320786123883487 0.5873563449277251 0.5910935104098086 0.3635749528124803 0.3343544719801193 1.18648459924689 0.4451694598362241 0.1324333660623244 1.084951896740999 0.3960438506447841 0.1749869325737155 0.02208594803615767 0.09245561966466478 1.122532226331501 0.4393539525729408 0.4115588600754834 0.2702758540323703 1.011999371548518 0.4948376043376667 0.07072665059510284 0.3109519530391471 0.08833859645953668 1.42027802339303 0.9341542146532245 0.4553619567468035 -0.1411301391868214 1.056999637245755 0.2473749868663636 -0.1674778939937979 0.4949894843141263 0.3037014956998224 1.043405348612228 -0.02690205634125676 -0.4006218991582415 0.7880313750703598 0.8392053130898005 0.8938116092151039 0.4481197017943047 1.044980745627303 0.0633474328942642 0.3676187329050571 0.8260672972308953 0.09198051118011895 -0.4135806176956385 0.3550021274498011 0.9113941029960042 0.1252852590239979 0.6630493499094094 0.3076774479505871 0.2015842344325611 -0.346834457601448 0.8287973613110869 0.2967238340679168 1.249776900632627 0.8378302025923385 0.2601815719430856 0.2421592762135072 -0.2792952167765571 1.016400334668337 0.0916798184791715 0.4392572064535232 0.4227332600248574 -0.1001271299425782 -0.001465314706970619 0.2560201957554942 0.3296530897657324 0.1565518292519268 1.261770984934702 0.3885726181860199 -0.1954207667055181 -0.2052101948457193 1.144868702233546 1.298048107673848 0.7249741552686874 -0.08176434161962366 1.176339530411192 0.6407595791199964 0.8844590668365837 0.6642328057538459 0.848163608448612 0.6932933316219306 0.7959734189807569 -0.1667762824316838 1.286512244363518 0.6279406083841168 0.8883628309026455 0.9414864655393888 0.2784164795536057 0.7809719251837841 0.3649021998185719 0.1617608439534715 -0.1337007970435923 0.05357396878826291 -0.4123475197060653 0.6793419169334679 0.0531435473951218 0.08546646719549002 0.8467171554056512 0.2006091551971668 0.02207625831547735 -0.2065546538260196 -0.1500903968350547 -0.1780567295704319 0.1747860566134954 0.02125819010347606 0.2164826363626913 0.1443591827454877 0.9803964077859239 -1.780599153696266 0.2055912305732803 0.6887745530042322 -0.01050806541979735 -0.2426710690444304 0.1410483568277712 -0.2006929997681248 0.8833631850914567 0.162520794689835 0.5527779486354782 -0.3978712960120283 0.3437758311462648 -0.007205974613345725 0.1841357965531394 0.09152585081054528 1.286508701564548 0.3655186020172489 0.316716706042257 -0.3127458919964299 -0.2094498284541832 0.7904908777949718 -0.01086593359251741 0.8864233108894075 0.4630987816902309 0.3434295920993696 -0.2792796618186488 -0.2016090751399555 0.4244685847407725 1.262064526376716 -0.08544915908117247 0.07717200318988543 -0.2904135750963075 0.1095873134471235 0.8385397295204448 0.318490257369696 1.235507037818786 1.259099473202747 0.3947007258433206 -0.008180057120502274 -0.0361143889651698 0.4164480523231656 -0.02334847607833782 0.06517205255138779 0.1618198171183014 -0.2659533632859265 -0.01562677004495009 -0.1206358109498548 1.002757776307379 0.4986699392847478 -0.1371903112173145 -0.00344358633489329 -0.07996003153263954 -0.3379485137288289 -0.03806474899354377 0.2683029250821991 0.4100228415034203 -0.5108165651107379 1.184539416771237 0.1978249632565801 -0.09630232711143173 0.5430847989065629 0.4074670926797942 0.4631484926382279 0.1088129743911087 0.6248848760480203 1.335482560719826 0.5155308620325403 0.06752770884254551 -0.1248334783810167 0.3963970410539291 -0.04969096370578793 -0.1216187484590646 0.8689318195651347 0.08578933212809549 0.08798208804502958 0.1239523977696128 0.7575757543842648 -0.5595989732992216 0.0622867847444411 -0.2926542381256442 0.1580875827841728 -0.425556755299803 1.289880604134823 0.3535913221615343 -0.09873744696346339 0.5035922557411745 -0.3769750284854071 -0.2740109377625299 0.08237750806349588 0.2263722622510267 -0.2518950618988852 0.6067018699476547 -0.08611878074779186 0.9899446712432615 0.56646645492197 0.1011353098063996 0.6347240555798442 -0.195088801537368 -0.1654943782773581 0.9426980842944602 0.5010721927420557 -0.02065723337935632 -0.1873567752539188 0.4389198390611936 -0.5307174645776235 0.5103471895505917 -0.5719078828410628 0.2149994092751085 0.06942256938950482 -0.09480109603957031 0.7856110736017079 0.1262729905621497 -0.1242442642087571 0.7375115728397422 0.7289571746152353 -0.06700990897760298 0.5820134850756077 0.192612145157865 0.4557109964282625 1.51341697909097 0.7253998697830548 0.1460115103717501 0.5642719127158798 0.08625007759573282 0.8566197096352928 0.8364491248658364 -0.3513666162487823 0.5432105555615571 -0.4289085218375293 0.08484774382517647 0.1045245386515451 0.1566853648593213 0.2079149196894243 0.4077901486435228 0.006353698137078662 1.168997355279365 0.1597654442842663 1.237495342298039 -0.1510923183128803 -0.3458940525314884 -0.07979655864943636 -0.01560096750891377 0.3022630572884595 0.6470884583341112 0.5607465349171387 0.5874337534730686 0.5187410585951379 0.09923649517267127 -0.3903120574808259 -0.2248925641470509 0.5022861897824493 0.4374504749438747 0.3313371562970333 0.7814655560905704 0.01544256774635527 -0.1346611555543178 0.9649205799373766 -0.07399090242506197 0.00216705002061529 0.1458209566043037 0.05173860838852241 0.8507228862081294 0.3320570498962878 0.1655384932336358 -0.02728734826639537 0.691336705496105 0.3150476389121989 -0.03357036370806174 0.1898216245312712 -0.1342540497391477 0.7772548085734329 0.03422543205667956 -0.05226192976806608 -0.1849123430625171 0.3275105501377845 0.04307605486698986 -0.131123603083785 0.07487897523238661 0.1296086875090163 0.2501117652645889 -0.2469752436259501 -0.3544171354949975 0.08169347749847211 0.5339569458487908 -0.09703519674586708 0.7488798079926938 0.08679629241041764 -0.07072096977100872 -0.2971862572087856 0.1263912615773313 -0.05568275635783676 -0.3822170484681757 0.6091905020006767 0.1930470707969421 0.08467963438116037 0.05249402872623965 0.2494332525911941 -0.3320851228066722 -0.2403789133443307 0.003345438942484604 0.3176445946245712 1.208968052226298 0.1203616024566635 -0.1936304993502403 0.2018677424059998 -0.3857096249615873 0.4468458397728436 -0.2453648163093229 -0.4256714755667666 0.1389267737056973 -0.01545153071922624 -0.1413233554768697 0.147789392764825 0.1156480357397888 0.0266055205360948 0.6561921889029468 0.7010147506182437 -0.2516907836458909 0.05665772882715631 0.7190474056023438 -0.403927684259865 0.6010008006167838 -0.1350583498082975 0.4163660158163784 0.5782030959359387 0.3523975447901436 -0.347734778161943 0.5127491719291808 -0.3351261666665789 0.250711139193513 0.04821676249691886 0.9861395396684846 0.2187220948755276 0.3511444826916622 0.4410497755064916 0.4556123632934783 0.1785487993615588 0.2588746056146861 0.2492336745272817 -0.1150533905185065 -0.4450561816044189 -0.06993355636454991 0.09253844510767809 -0.1000610640420145 -0.0698313843763893 0.937320563935966 -0.0467781576047443 -0.1681224604784059 -0.6348904503155944 -0.3255593080943681 -0.4085209807394772 -0.1973597162255788 -0.1207550566380952 0.01052399285950291 -0.1848780649545811 0.3931454951158443 1.708587401263964 0.1815742073568385 0.3432258558580351 -0.3235036466031508 0.1002580442394274 -0.1656183374822657 -0.5108101149367126 0.7029226243217359 -0.1502954479250325 0.05155446529395855 -0.3022605283953436 0.5006594548808039 -0.1540169005448221 -0.0808246526473457 -0.06080349728458864 1.237949063220778 0.457988933458353 -0.1983797881327917 -0.1453660564807468 -0.3645458471204732 0.6623087958585292 -0.5191638331056148 0.730676729677982 0.454354417807533 0.244905553179521 -0.4545438372434316 -0.1777129740215161 -0.09666991424093212 0.8612857352244105 -0.2867503905402772 0.01147565153030176 -0.3327065762902315 -0.04614795914575914 0.1769359982094564 -0.07447234559883557 0.6946784329695896 0.8512323210306233 0.1273929508353219 -0.03714283970900223 -0.1163562140248569 0.07905646190407437 -0.2586250581226313 0.3106167704848445 -0.1873673582250238 -0.5676658815811136 -0.3809431196943583 0.06176087555426465 0.6575358337549088 -0.006769186530244102 -0.1203960737346448 -0.1094544844648559 0.1531586841524122 -0.3214904782015948 -0.2921953670052535 0.326382780315558 0.2417348463238819 -0.5516588351271658 1.066164073381822 0.14324349480137 -0.2733021473763657 0.206060754119072 -0.02257933747166856 0.2768576353874935 -0.2579005608332602 0.1801217548083397 1.084353873711691 0.3582093678938069 -0.2916869832915906 -0.3537129759545287 -0.09869695728672255 -0.1342763217983003 -0.1435248816361132 0.538588215431827 -0.1648167859173915 -0.06048176695018438 0.01708217866334022 0.5826225897182519 -0.8955426379811293 -0.2145654505127193 -0.5702901567777114 0.06182340425302407 -0.4727413815038695 0.8668513674103833 -0.2782503430951879 -0.1368352825144238 0.2666864101935165 -0.3559992263173706 -0.5413058149479931 -0.1907750299241658 0.09113609665269655 -0.3366637410284195 0.1974660169012988 -0.310940985712738 0.7591977595514805 0.6462592979786056 -0.1249380157468614 0.1349792499000788 -0.40097352887511 -0.2663907703264866 0.6431491233037089 0.5477259895917688 -0.1387607052964635 -0.2325564654979926 -0.01989557145425267 -0.5983963836613112 0.27513653485933 -0.8452115138518678 0.05263917292841345 -0.1531721592418351 -0.2878930384944877 0.4625364395796986 0.02948229076842242 -0.1863083386357931 0.5301844345548528 0.4299777175923086 -0.357440209921069 0.4446768916936731 0.2061364228902275 -0.008035266959642419 1.00567185628664 0.6234505133315437 -0.1063755889918123 0.213775422530152 0.1716216539220448 0.5969951111180575 0.3515302459721952 -0.4956136864952044 0.04742685940225402 -0.7257486741103216 -0.2310899485637471 -0.1499868791407927 -0.2112420300445047 -0.00566803311686644 0.1889455471317475 0.02645800593250528 0.4402766676397445 0.2016486637184166 1.098692300417186 -0.3895102758514091 -0.5062551631617818 -0.09603580353709633 0.148616169977114 0.100593758335289 0.1763413543551331 0.3274952942433564 0.8240464416796819 0.3176467522397424 -0.03187377697036982 -0.623889657664299 -0.4860291478329514 0.5281204436024102 0.06702912108261062 0.2380243775316523 0.5437146177333005 -0.04966703248674136 -0.1810109555153837 0.5573015738350131 -0.4083930320187065 -0.04320482925074265 0.1645640721387698 0.06119533902414419 0.7425524922816565 0.1299360824582844 -0.00884558853432627 -0.1015165767888688 0.6068938884710866 -0.09923176919218805 -0.09297497927202424 0.03586137208023404 -0.2786570728969295 0.6649177733162734 -0.3535585321565478 -0.3390062989598818 -0.2086173775975975 -0.09920688041443682 -0.02341421167161965 -0.1471803450154052 -0.3161453029449265 0.02391801391446054 -0.04373650519867519 -0.3397983188119051 -0.3666108066854937 -0.2162670349776072 0.2132530233673774 -0.5116313544736404 0.5354757508904081 -0.2877069810675497 -0.1315602000375319 -0.5317429707262271 0.4238105116584094 -0.2146127374578656 -0.2904641996440634 0.6841309250228275 -0.1734036669822675 0.005484918036074342 -0.3094351754069787 0.1344267232447092 -0.6602876216385007 -0.1758653406754312 -0.3571123654793031 0.1814137431085418 0.9650432304737308 -0.2398079143340615 -0.1022114709403531 0.03833987493886366 -0.3376619943855572 0.1669260746161754 -0.3955724827984012 -0.7739629842886803 -0.0266264690360493 -0.06371473601428168 -0.3384160982798863 -0.05691570711822313 0.07058341334237343 -0.01760983935993179 0.2081866155072211 0.2984905798906045 -0.2593394298702862 0.01981180292951551 0.4216274320393357 0.3486590169606297 -0.07631088265866229 -0.2152207410893138 0.1740728055653103 0.351290202185461 0.04066787938431084 -0.7437385732488911 0.6547699883537691 -0.8451054495912956 0.2292264008553798 -0.0910354805579545 1.087828336259904 -0.0444661460746549 -0.1193586278922212 0.00836495372866819 0.4149317943238018 -0.1581694414855725 0.08022494337025025 0.3714328091574364 -0.2005283438516713 -0.542568868853561 -0.6382264845260477 0.2456136959769961 -0.1647019171280566 -0.1592900284421765 0.9506598247249513 -0.1207854405852313 -0.2320709254975472 -0.6554658409277617 -0.588265612204362 -0.5559580747465549 -0.4149467836913759 -0.1721699893401752 -0.09271062009813449 -0.3065949565790526 0.3610463992147586 -1.78045410986781 -0.3813604075130993 0.2611315918154911 -0.207841246725757 0.3654741734387875 -0.3644560512267753 -0.6258362695359259 -0.0945642246204438 -0.3941104951709534 -0.06527453859664278 -0.3584363686709794 0.4315938791984615 -0.1953073467988072 -0.2190909953692586 -0.115021973890395 0.5799855764499777 0.4499280518089379 -0.5754623080981474 0.531975657300825 -0.4917340256474008 0.5072275379282593 -0.7153225605620414 0.4846294110052394 0.5671459824889488 0.03992505321172374 -0.6354848713516034 -0.1867426422707893 -0.4303902770886434 0.05275823539234827 -0.4461769419672343 -0.1229379590513772 -0.4236142668132394 0.01106239915900415 -0.02154850438347221 -0.03911587016610428 0.9569181342427248 -0.1128324858156322 -0.1695409319828666 -0.05347345920787545 -0.1795049898251221 0.3169830183710285 -0.3858293237770161 0.2037783992187152 -0.2794130633306701 -0.6069808533956208 -0.5405563985527269 -0.04436903747447773 -0.05993332426826255 -0.04974037829521032 -0.1947166630766153 -0.2516635983236469 0.3346425156244562 -0.3918183728316629 -0.4036485461565948 0.105743687571403 -0.07132399658671379 -0.5961395921676819 0.4239921022177991 0.05750311417620047 -0.5471088188113188 0.1308358818651182 -0.3976010903399521 0.1146153207182655 -0.4476997987535604 0.01426975284128053 1.003570984477288 0.1452193440987051 -0.4920617589968798 -0.5690524190500713 -0.2134868635891582 -0.206170501706324 -0.04551872261921921 0.8430678829372334 -0.3573183298914445 -0.05962991053493866 -0.1001963259200308 0.2847204138826752 -1.067253762044989 -0.4326873724552786 -0.7130954442931835 -0.2365857079833269 -0.5591639722162693 1.026305220224091 -0.5373489300732801 -0.1441161885568221 0.3954713930918267 -0.2624003777474603 -0.6800973467876378 -0.3813540502920702 0.02821904743041741 -0.3865876884501602 -0.08912517604637459 -0.4377488653601013 0.7829160956965705 0.5113482797258616 -0.285247669325678 -0.04442222555388487 -0.5576208874960122 -0.3505112609552292 0.1994045086736325 0.07125286146978603 -0.2208518845142651 -0.3202505459560078 -0.1275974934391475 -0.5368283548484399 -0.1480910631784682 -0.975609212789403 0.01524830790131133 -0.3797981234106209 -0.5498579688739406 0.5070616356581784 -0.001014036535875534 -0.2136852815281384 0.5351705137754126 0.08279981590377991 -0.4575661231955304 0.5586819570966582 0.1739043109215139 -0.1407498560001399 0.04272868334967283 0.2589469168022305 -0.138637126227741 0.3913490250444416 0.06068764895200751 0.2879950589451611 -0.1776425990110019 -0.5470553498576566 -0.03406831478065626 -0.8856640480589015 -0.3461303344982883 -0.4023461757591711 -0.5967203343406117 -0.04762961620743728 0.1634154696283311 0.05156478889768506 0.374891437163266 0.2299621020330013 1.01764078070525 -0.5542537884397342 -0.7868807188082098 -0.1262971870208869 0.05216108980434844 -0.0722023109936355 0.2268641079788984 0.126409343375917 0.3224594870190853 0.5492181841314215 -0.1329315953862936 -0.7962834558222827 -0.6022961242698679 0.4057523933407385 -0.1588419956916801 -0.1271202814589718 0.580341660931135 -0.1631469874510582 -0.2844734846955352 0.3520853860280144 -0.4708253576023849 -0.1477759737373208 0.2000449434284807 0.02390515810455116 0.8398425001088277 -0.1637045561289333 -0.05200944806289531 -0.14638327980134 0.3766178616028983 -0.5126500931342141 -0.2669373765010273 0.02493733031875291 -0.2934717180120997 0.824756983242672 -0.5509116165875499 -0.3916611609328474 -0.3230987657043287 -0.2514784111222529 -0.1763128799012259 -0.1933217809645003 -0.37408932417309 -0.1586106281388953 0.133115414169056 -0.38928854969928 -0.3592629507256938 -0.3747091378581611 0.004420574358069006 -0.6735642918324432 0.4881412103038595 -0.06094400134750316 -0.1633112102906608 -0.734951957008667 0.306838462713064 -0.2605132937858697 -0.3404126612988638 0.3516440964860457 -0.4766602216916284 -0.05426675370681971 -0.4342439540358475 0.0905079479202041 -0.752640192074215 -0.2411232653901751 -0.5183463379948153 0.2126155799223657 0.948355905720532 -0.251404012937978 -0.01864565836884751 -0.152745167675961 -0.3721405280381076 0.007573265391428359 -0.6043799101486504 -0.8691910425416818 -0.165923299089091 -0.1757896034347677 -0.3015416522430929 -0.1333719889512778 0.04745289842002288 -0.222624961467681 -0.1631402378169525 0.0739691720732934 -0.1689965018755382 0.005539011694333889 0.6129557359718374 -0.4440599719271117 -0.3418145940577555 -0.293785222543304 0.6078366804029476 0.1906107547366269 0.137547076884127 -0.943828539188439 0.7542068635643424 -1.015740738824357 -0.2226812806909455 0.09622791925686651 0.6386974647154608 -0.1553697927018379 -0.2751948666931138 -0.1178172406670678 0.1506741517475596 -0.2192374339679856 0.0135607250263139 -0.004752347692954299 0.005054603630500858 -0.4789227097538492 -0.3271859252645017 -0.1580288546184008 -0.08159157907690892 -0.2166292514303432 0.5961321612150892 0.3707747287391505 -0.2595670498573999 -0.5778442850297116 -0.6142482455949375 -0.7786208651206313 -0.5311628869128089 -0.2070242437373837 0.2423429217005519 -0.09245807969026332 0.02615242705254926 1.942214456604149 0.07208652198382035 0.1504526940669746 -0.05671761665546045 -0.06677154272410081 -0.5413677077846294 -0.6400015435233035 -0.7474244708216383 -0.5783654785183465 0.08554097884892409 -0.3741144811529576 0.2892656903887446 -0.1525561886731615 -0.3020201241191387 -0.1405210702236058 -0.2410430005772214 -0.124156588480938 -0.4829678766533977 0.7552798920589129 -0.5025719260091526 0.04839544960622997 -0.7348360949421585 0.4634060934266534 0.1885051703879014 -0.3369733760555384 -0.6455485059546264 -0.1281979342578744 -0.4972877106215881 -0.2173002860186208 -0.4275808205441188 -0.08610192215690848 -0.4741005227561371 0.05390825452802709 0.02131214188614609 -0.03694598086610448 0.4851014317380515 -0.3749988873268422 -0.2153080505518481 0.005454571033644709 -0.06216789174860946 -0.05298547864825581 -0.3776317477238814 -0.2033939365053905 -0.2729618944782381 -0.617892763468474 -0.5639878821042957 -0.300527489898864 -0.6502440469005009 -0.1661282163318294 -0.1854846483129881 -0.006825468443105815 -0.1454399028385248 -0.3735116269659869 -0.5043072482481197 -0.09373620565476463 -0.3468495424275193 -0.4970941831883467 -0.1946564746342996 -0.0128130086532128 -0.5956489362061527 0.2880632110527631 -0.339743804629175 0.2302477552400708 -0.5155223897531509 0.3230057499453503 0.2443372096977281 0.1857369124026829 -0.5216692991239195 -0.5302076887443022 -0.3336553073704617 -0.1643661678253931 0.03181972875602657 0.5721384201397109 -0.4072878610131206 -0.06375422981163069 -0.0662786403733346 0.3134737792595582 -1.084549023715948 -0.5955791155606697 -0.8054529387630414 -0.1051827144574285 -0.6791187379527408 0.6462816413821661 -0.5280350810192099 -0.1648132542036891 0.526712757951232 -0.09628546759534155 -0.788958909796334 -0.4110895253730163 0.02938766500826371 -0.3816012990976516 -0.2855459266116003 -0.3498999592906448 0.7197165137063136 0.525578745117918 -0.4399810046534121 -0.1176780637657514 -0.6574389741286525 -0.4059997477136861 -0.02724444073919859 -0.2410073835946322 -0.2825317206242124 -0.2876586024759145 -0.1298022304206394 -0.2049024513723418 -0.8038773122221586 -0.9975979347616613 -0.03281499261344051 -0.1940293767501099 -0.7860682768196964 0.4543715285779033 -0.07209027658748152 -0.1446449097416507 -0.1868152497898727 -0.5881902819879754 -0.5321495288436316 0.6425934220835628 0.05838196677647711 -0.06241466981931418 -0.2258698606250561 0.1637755188302492 -0.1268876669791284 0.06679710616576874 -0.1745458432677706 -0.4748157857742784 -0.3874042266589584 -0.4659903196160114 0.172659502462631 -0.9203095010657294 -0.4016074524432053 -0.2846290115047411 -0.688387086349787 0.09400168903740208 0.482718361588352 0.1907900932278317 0.6582303876744932 0.367157062330624 0.2690321364338947 -0.5779947927492164 -0.7309560554516883 -0.128657432304649 -0.09187162706370723 -0.1882842217449678 0.40874401973777 -0.03130755302113058 -0.3412385797966293 0.234304443341925 -0.2454741056646836 -0.8174339501665628 -0.4409480491605677 -0.003423790669959458 0.03471918611582803 -0.1751602049742589 -0.0962699260609152 -0.3575486518148243 -0.2997772098928483 0.5528427675133079 -0.4121011613286376 0.04238504407094401 0.2405879512685 -0.1012576708106302 0.2279585778625073 -0.2863998298406531 -0.05219271166546807 -0.305340545950068 -0.1902978854849447 -0.523803810243433 -0.3461196904921145 0.05097977700431616 -0.3051033284103351 0.1209534532016621 -0.3118662592391754 -0.2471677289165367 -0.3125483853830653 -0.3104062832576036 -0.4092539943953493 -0.241651308123654 -0.379341148361141 -0.2501425531983235 -0.2518264578417332 -0.3966071359905799 -0.3240074369953281 -0.5662052753132578 -0.2093338097701624 -0.3654291491401669 0.618226872646975 0.01197486512055113 -0.3029674445530482 -0.6831754900066797 -0.2282876800713723 -0.1867473527777132 -0.1807807287112149 0.01182529324308042 -0.5783718429461576 -0.05890433736285863 -0.4596359838036555 0.06885394425402475 -0.6632254849218142 -0.1119292966104332 -0.3877424738160345 0.2503909100523899 0.1635842514715485 -0.3359498325708253 -0.1415028506256285 -0.283024730305682 -0.3154435107845465 0.1277001905978781 -0.6027792371346498 -0.8613851761163197 -0.1716816907748511 -0.02833239581533218 0.02422305156303762 -0.228209148920771 -0.07642839357270599 -0.3370520799134479 -0.5885763840417114 0.1216933565689515 -0.08781274217183209 0.0678691506744504 0.8424386819484797 0.1373254746392774 -0.01848687134635017 -0.2380789556814966 0.3417536574220434 0.4341107023035369 0.3841811126078573 -0.8935118834612313 0.01571764673947633 -1.042059171744363 -0.8365385347930292 0.3401309333656257 -0.2915878882651581 0.1051927749202422 -0.2901577020926721 0.0618613740823458 0.1533367066468448 -0.2252632609392385 -0.0003889279360040632 -0.574137609203859 0.1966132976521402 -0.4753077034071311 -0.3572521744406706 -0.7600784837680594 0.1047355703523071 -0.2638850591568736 0.4206406658170802 0.7805677897879814 -0.3590121499116142 -0.6126076017729987 -0.3302466011684718 -0.8327453653806592 -0.2046762646182836 -0.2275626429313998 0.2320441691743063 0.1401799332325747 -0.5970465754508761 -1.780599153696266 0.07756987606041904 -0.3081400852234309 -0.4248968471027421 -0.2693592531484564 -0.5683078211876698 -0.5945883095431329 -0.8705911103661095 -0.5075128735422443 0.4214597634040959 -0.2486203285499218 0.1125025700369858 0.225057411613186 -0.1430888696058143 -0.1429968851306541 -0.5604979110577604 -0.5351480260750218 0.004678630466235922 0.4320858695144522 -0.5161319662964049 -0.3630488095515725 -0.4527927889180065 0.2031393281035178 -0.1607454270140085 -0.4966602900840969 -0.6582776894049744 -0.04318015066022519 -0.3635098083101613 -0.471579012273411 -0.1123145540876857 0.05589509485996638 -0.4836089243064695 -0.06424757629741631 0.3175334511103713 0.06938305935798574 -0.3293119100959557 -0.6367383000612401 -0.2040734804354499 0.04266999162404084 -0.04060325871850645 -0.3757511228832247 -0.3815103374201938 0.05287483712614335 -0.09858223122449138 -0.5837487434671705 -0.4299966143237329 -0.2148995151424994 -0.8285804665265564 -0.4165323504967136 -0.1857809070418956 0.3446712216799147 -0.4880118815776988 -0.1894365459451416 -0.4380478611667041 -0.0763717173429115 -0.4952954920935713 -0.5693328535465947 -0.4754685200172154 -0.1007641264668812 -0.3800576287270971 0.284635942408415 -0.2709478490104187 0.2334849156425411 -0.5605803775049333 0.3945194182158658 -0.3357561736624433 0.2253190472079402 -0.479571204852919 -0.5695138081165433 -0.3906093647055345 -0.1365679338739176 0.05764066780159962 0.08603301501314856 -0.2196888087093433 -0.1234972996007928 -0.0986833872951893 0.3237792379812792 -0.8613525024878457 -0.5615509348870983 -0.7592446921472276 0.1699980362800157 -0.4653118715861744 -0.2158006747055174 -0.2500944346872818 -0.1287854137025125 0.128934571740776 -0.003526488785242154 -0.8399276712505523 -0.330399341517634 -0.01560115462140701 -0.352187401170877 -0.2560230975307909 -0.1958792003549243 0.01514683254785584 0.1089498658005297 -0.5585856462889451 0.1480583418170258 -0.6789117454684233 -0.3929536172126375 0.2071827027731075 -0.3573211252942662 -0.2629996235435352 0.001391320378811444 -0.1169842512237953 0.1198736272528314 -0.737587748318728 -0.9270430400979962 -0.3577244664949029 0.1776867345474032 -0.6732144224554912 0.08819573140103359 -0.06922081909004965 -0.1024104914371722 -0.6596795250648703 -0.8987836492684684 -0.6217412233252386 0.5988427651116034 0.1024886468185866 0.2814267734258853 -0.440849302190123 0.2833800216072526 -0.1857008106833104 -0.4790854306347693 -0.1410378587265264 -0.8097925772780029 -0.4025154663769632 -0.5350615369579589 0.09176713893577661 -0.7769137755094272 -0.4436049473708966 0.2343623787993738 -0.5701056042917206 -0.01064426636932409 0.2954508823005327 0.2358216485226806 0.2181170324298531 0.3495023267527235 -0.2927560280883714 -0.4162973994033312 -0.5906676988840915 -0.1222333382354282 0.08664743597606636 -0.2651065135750781 0.08935692622538703 0.1381891885489051 -0.3560236805655786 -0.3290535692413685 -0.2352849906006602 -0.5946768609244922 -0.06981201403965386 -0.1493741410658145 0.5328681676798306 -0.1803987177453212 -0.4656443892726355 -0.2449153482117758 -0.2656246175033493 0.4126557393360887 -0.06970205768609888 0.1689991496794057 0.03521543088269639 -0.1734343633323954 -0.2564711009803666 -0.1574609723597054 0.002429636388936149 -0.3187242454451427 -0.4410757545849738 -0.2359101417730298 -0.3100384590225302 0.03471939488113072 -0.3296317688323425 -0.5098149823851663 0.1115913721329731 0.05544012386448133 -0.2966993802900029 -0.1209047751876421 -0.3866592490685754 -0.1826766095340182 -0.4171484883108832 -0.2055397286381209 -0.7338480244931559 -0.283080680774467 -0.2987096942708872 -0.7017857700949461 -0.250202168055706 0.08381076909182114 0.332480902185142 -0.4351887355398816 -0.3163994729811774 -0.4724570727667632 -0.4884225332146895 -0.4150732055937091 0.07797318041408605 -0.03151408728005083 -0.6058452367039552 -0.07677053496821562 -0.1392373581209522 0.0006927963515423502 -0.656714391695566 0.2670241507563403 -0.2274640211730099 0.1341297488331412 -0.3458294865065677 -0.2721745884432445 -0.1487729025880484 -0.4218555509077397 -0.2251641955182626 0.458214894576395 -0.3824456598159615 -0.6264304719445675 -0.02818429183189752 0.2873914589498447 -0.2338890229101601 -0.4467807308459597 -0.135648058213299 -0.200936807542687 -0.7314371257828245 -0.449482767223645 -0.1042173793885466 -0.09641920731737179 0.6206538973634722 -0.4435485103285841 -0.003479203257694294 -0.05194601433788879 -0.1700149283501921 0.5020815222136729 0.0192417018483452 -0.6057225242512514 -0.2621997899297607 -0.8682309385078543 -1.043226215785034 0.5722085366169893 -0.4789889334996213 0.4311134707884468 -0.101731891758905 0.2487426248174195 0.01732784564969043 -0.3846973076070464 0.06265948837716913 -0.7293727917649786 0.3199024793730494 -0.2831940560390996 -0.198043463486127 -0.9064857416764353 0.3022793558404221 -0.3038014268564736 0.02765174351442887 0.7054582590677552 -0.4053038671205914 -0.5922230756584481 0.0907887262006568 -0.7964267323984823 0.3489800291146762 -0.1950297082350069 -0.1181827315175544 -0.04118604247545288 -0.6400703568846832 1.590408800181046 0.1571280168753901 -0.4780752919448401 -0.6494939895635206 -0.05350493158024193 -0.329179308140593 -0.257915126993325 -0.8452967617689512 -0.1919436667441916 0.08452274833016174 -0.1506276388393554 0.01064368205982586 0.378029109083333 -0.002957610086980191 -0.1433967042786035 -0.6681496213324567 -0.6965558583695808 0.07571463971795134 0.02660778153957135 -0.4866147033920999 -0.4676101780756626 -0.09402517136169601 -0.1326465655751625 -0.2803161262685953 -0.485866789551306 -0.6445031845162837 -0.06321898795230017 -0.1374206965699841 -0.4298840398853365 0.3437860129195507 0.1592555937562658 -0.2693761470584372 -0.1425018237827043 0.3288224426709815 0.0195566626478075 -0.654391449308484 -0.6664374747216034 -0.3510986932119884 0.03509224374305035 -0.147292553679547 -0.7057787800957498 -0.4426942656955598 0.01710547508556669 0.3133941036713175 -0.06798168256159805 -0.07650107513124035 -0.1655639353152909 -0.9519765174331033 -0.3779128940251456 -0.2298855679561967 0.2021331965923949 -0.4780967027784193 -0.09950319619920876 -0.4720304411565514 -0.1112782900500317 -0.3773567266591552 -0.5667222274309959 -0.5896218913169158 -0.1510458944758229 -0.04156115793996827 -0.03681408002395202 -0.4049332155526779 -0.02564108070178676 -0.6269657015590318 -0.01375084422072832 -0.7141367265552291 0.006402219572510645 -0.1116813095085798 -0.6351424844998569 -0.3215358210264493 -0.1453723291787659 0.05600993134507122 0.03509606520352065 -0.2278840841918018 -0.09522467680281629 -0.228585377418122 0.08195281332895714 -0.1842305797350325 -0.4984737766499143 -0.4774309346289708 -0.008274983605111122 -0.2823742909616017 -0.5074415497056384 -0.0601794615320619 -0.07871156883960556 -0.00377493693413423 -0.09820926355559258 -0.7688777294662257 -0.1374337098313828 -0.06543259074014873 0.02158491328776586 0.1396910922816859 -0.2860301223920511 -0.3672166937853523 -0.2510587610670307 -0.7060334798031539 0.2515814693383551 -0.6614633043811741 -0.2949217675439889 0.4303324168282956 -0.3135406019711567 -0.1993587358280154 0.06932898965958072 0.02217375067049907 0.3213100649691303 -0.4335256262750316 -0.4281642139585038 -0.473963183933536 0.2133249927104609 -0.4004653724469927 -0.151378714167807 -0.02945951951758842 -0.142659286076651 -0.7121306953654724 -0.8445663015726538 -0.2209021606614747 0.512200415597961 0.13769296313119 0.5519345468118018 -0.5762499488813367 0.3555599434085788 -0.305311940074022 -0.6351470680682418 -0.04196554042601083 -0.8998594993504928 -0.4535528189901826 -0.6777603265344038 -0.2887483673233799 -0.2831278318562285 -0.4127703587845231 0.4146056042245125 -0.3064887161727025 -0.1141271356089437 -0.07834559455024592 0.1277111151789827 -0.4689873231334128 0.2541968472283095 -0.4181961051962566 -0.453338303251671 -0.497127561623368 -0.1288193178658342 0.09946804927215061 -0.12091369625438 -0.396217561134134 0.3894409469451128 -0.4567492349068292 -0.4467548413341039 -0.2729206784507691 -0.3992577023411391 -0.2573050411317117 -0.2067353367913678 0.5553610595412475 0.04538662696329159 -0.3803851835258086 -0.00259323383371598 -0.2350047786824387 -0.1829308873898255 0.5419626222596291 -0.03811420635925365 -0.185960744657928 -0.2164678225760939 -0.4200307266349941 0.0002546722747690633 -0.07481360739756698 -0.1625080928643031 -0.4125995043730831 0.1502347487002705 -0.1108577175964447 0.03345724174870192 -0.2647308458052282 -0.584897453222202 -0.2650084377370297 0.3530167565089282 -0.1902048302092513 0.1541529182310633 -0.1538034588366328 -0.08610237613014243 -0.4160826091813778 -0.09220729602744239 -0.8254781753596087 -0.1683985710011476 -0.1735331419808584 -0.7272198112431602 -0.2717276480951551 -0.2211317713624017 0.05543300345384761 -0.6889324090807434 -0.1535171750177869 -0.1836087058263277 -0.3632190296038028 -0.4846933554914004 0.2302330350816434 -0.102657421229265 -0.5803153691199542 -0.04487682653247512 0.2462586672395643 -0.01417572099124056 -0.418053859829126 0.2724431659469464 -0.4492959915335534 0.05943425868649164 -0.5366000624281262 0.06590299731818172 -0.1273034477604761 -0.3070846767492227 -0.197093048201637 0.7219881824524234 -0.155631745676243 -0.04563653298760457 0.09480141906801526 0.3893130988045581 -0.4143033631645172 -0.5812985885040769 -0.1412033826050553 -0.1309092407210991 -0.7567019244018102 -0.653214702445443 -0.1231280865165363 -0.1867860070024334 0.4687074101654123 -0.07346352365363995 -0.4513008291317256 0.1414997796645397 -0.3930457399982226 0.1631704198669574 -0.4001551301711788 0.01042299058816831 -0.4046580574017991 -0.2040063920270557 -1.102677030407465 0.3518882150110856 -0.6382891836101693 0.3346394949630933 0.3602337672832703 -0.05594881120170617 -0.1656607059035895 -0.5210339696533037 0.1185495276223964 -0.340517133351099 0.1902629384864901 0.1621509275941509 -0.71835646970261 -0.8127341619973234 0.4469372558920139 -0.3512253696851279 -0.457648781991237 0.3527961760445964 -0.4035043205011868 -0.1225143340455787 0.4983127024531727 -0.7183171201401464 0.1876845817269912 -0.2093057835543573 -0.2019724687188628 -0.1713789561376335 -0.3952918491817058 -1.780978883369023 0.2054842071086569 -0.4635030503835605 -0.2956284372493603 -0.001774898250552024 0.1488280602474648 0.1264226549129192 -0.8286877440999377 0.2245515245693221 -0.3073731151894248 -0.06460709917175121 -0.07790419215112504 0.007877119553052977 -0.09092231242175547 -0.1686780185257491 -0.765013763816823 -0.6871377717234923 -0.006594425772513775 -0.04806563673352361 -0.3037413570737171 -0.4753764674771662 -0.0379924271185581 -0.2571618251627662 -0.2459781214801 -0.4163424599886744 -0.4175941733527985 0.01312125107172365 -0.02035363517690484 -0.02847920176124768 0.5206458942302443 0.1079314780400711 0.0009521103246746602 -0.1253918872207877 -0.1693561910156049 -0.1016467216058956 -0.8184227805599097 -0.7299448618632853 -0.3707293502550358 0.001252315368334842 -0.3326712945128822 -0.5176513739044207 -0.4375717545721807 -0.5399760187668166 0.2186112767831467 0.5257085521262155 -0.135808682835768 0.0579250191708186 -0.5360367459179185 -0.2452683086022597 -0.2616003825821842 0.05008352235535284 -0.1258846733544287 -0.1190667804258561 -0.660169922962523 -0.1080773298518675 -0.001930059900269921 -0.2254690900251465 -0.5199738071019793 -0.15368605110091 0.382747030021245 -0.3399709960143961 -0.05185000718016074 -0.1809122102596091 -0.3344644883054311 -0.1577847536637051 -0.5534016355907267 -0.1609953751694373 0.4180245105874469 -0.7122580027821085 0.005350136450229161 -0.2130573081651347 0.0547486758571803 -0.09144499173330059 -0.5043758693566643 -0.08137944512578063 -0.165721680075962 -0.2147303372558582 0.1802639287302827 -0.2503409246424228 0.008387856501332013 -0.1343322075075337 -0.1552770470090488 -0.4236960286618235 -0.1051338219795501 -0.07967984352968752 0.06485908420979801 0.01619844664292754 -0.6022687374535013 -0.1064542089149937 -0.1135033618750938 0.3748822295642341 0.3055917998483587 -0.3332077235466904 -0.5053144394121257 -0.4181511486753801 -0.5480040773026975 -0.1093613562713298 -0.5535666429787212 -0.1495924073026777 0.3717905496599088 -0.07874312291855366 0.0197351116593076 -0.1857099985425998 -0.04408574975722964 0.6265704341874341 0.0411248751029252 0.2177664529664201 -0.463326466177071 -0.1155788520119949 0.07627480780988947 -0.1154392196611928 -0.05354405147501572 -0.09449540109562496 -0.5771323721290285 -0.5184918414810038 0.302546362799287 0.0418575769084128 0.134369023143456 0.272872593738047 -0.451072112669163 0.2222601662559372 -0.3671819292660506 -0.6668562782762132 0.1268313211719089 -0.8644601868357874 -0.2605807864844837 -0.6512543457612744 -0.2815701835236822 0.03980362031234853 -0.3384463768631267 0.1358336920104301 0.1764416948239552 0.07118155278932202 -0.2955362599328757 -0.0620030852375667 -0.5535991388553626 0.2081219248241339 -0.1849028896935379 -0.730857270559144 -0.06876572091017155 -0.130106666752676 0.261837008192287 -0.1167673382119821 -0.3435751842616931 0.2185022598636893 -0.2986719176606851 -0.3476349706604125 -0.3383069171226881 -0.4943657876494036 -0.3014395244202314 -0.1512277644792329 0.2497477773393427 0.3684965157080135 -0.03975557072904728 0.1156069179951857 -0.07180650093159041 -0.2438028687998155 0.4418684913637954 -0.1536875051000218 -0.05110101265443797 0.04262054514314754 -0.5450020522064242 0.06382102010754576 -0.2633338422159232 0.03428998973366581 -0.3396396278171734 0.2218785662937951 -0.1406035549058024 0.009704001788654788 -0.2790755487712052 -0.3025930785630245 -0.5992507698826174 0.3179612276310023 0.003149844452743701 -0.01660386451206627 -0.03989765752844681 -0.1471733429454518 -0.3991178639965604 -0.2310807981650578 -0.6165195989948826 -0.2443863922497242 0.1446641504619525 -0.7581687113193498 -0.1630934639146746 -0.1864094203189325 0.007390622514341341 -0.4222623583706733 0.06589276325146391 0.3931121254033183 -0.05997993820942499 -0.6096833499924588 0.2736455897344224 -0.1761486303371735 -0.5060751065354971 -0.02909222922175481 -0.01524255743558093 -0.1839560200807636 0.04091625043667953 0.1315026676092598 -0.4866903458965861 0.1711047202539764 -0.4422489010456397 0.001511426167088095 -0.04639869365802123 -0.07198601017677353 0.01831033130226101 0.5726396179628991 0.1963252025856242 0.09560035596270883 -0.07479006174482507 0.2383236076594711 -0.6525137457339615 -0.5733500639054371 -0.09277279640447748 0.2135053197475681 -0.5839706148374094 -0.5772042349178457 -0.02587418833276165 -0.1758147521967876 -0.02039002839069973 -0.4584890671511103 -0.3727776208085981 0.2161430387505507 -0.33382871875445 -0.1018758948934526 -0.5155807499245789 0.2230774657853115 -0.3842771617731814 0.2765709669076771 -1.11437088776058 0.1370290419361331 -0.6907121556971 -0.04739560124816106 0.4945854676725926 -0.2518511238092139 -0.2090823881211713 -0.5826711045003965 0.04548258606789699 -0.1853294453073051 0.1542278754398604 0.4641990825116425 -0.3355069922025304 -0.3325706576622386 0.240999893509847 -0.3739549587971491 -0.7292391624211603 -0.1778788290675548 -0.32985631835857 0.1773685507675661 0.3143987682501025 -0.4241186269008492 -0.1196109874348598 -0.2703331487635954 0.0646029191795594 -0.09293151587895067 0.05867323189292146 1.572152959310365 0.0270851943823703 -0.3201605719329901 0.03511290922165978 0.1842220640356778 0.4459288682235256 0.2279510038651417 -0.6208225668217512 0.2033200440448049 -0.4768920295949141 0.05635444804434454 -0.1792207056397316 -0.05082725323384989 -0.116466160497955 -0.1646789310506677 -0.8546516345710713 -0.6863333032159274 0.1251280715920445 -0.1954916256772424 -0.06330408849680744 -0.3614178746908751 0.1110444058475385 -0.4441635474921972 0.0421501215297819 -0.3563461749842403 -0.2847085013375505 -0.01885466908589918 -0.08714902937426544 0.1108528108141068 0.1868153364508421 -0.0782948091852478 -0.09368056609716874 -0.06796896435348695 -0.497680262528085 -0.1496864352033443 -0.7899711281536115 -0.6025616651729295 -0.3411802195266797 -0.04670556170928879 -0.3428166896726749 -0.2845726199256554 -0.4125870758047719 -0.3383725144380084 0.04576291584876581 0.4867574895058831 -0.1734111351515317 0.4046916923000636 -0.0692196393810556 -0.364205893770604 -0.2551900009272337 0.05737247351539661 0.08039984007240546 -0.11299788125515 -0.4721938914488412 0.04841770947422069 0.2143597286200945 0.1183004551578102 -0.363460031717068 -0.1907615130706292 0.4028808348822922 -0.3171712423084697 0.1974988994089932 -0.242326408426382 0.06990657685043837 0.03283291026075733 -0.4808273426038372 -0.353546190225623 0.3814243035574654 -0.6407503423680718 0.3096372846159585 -0.2214550425447073 -0.02287760645039265 -0.1304712309055208 -0.5079350855894919 -0.09170209542267782 -0.2564185760653225 -0.4122184566482636 0.05779244757900356 0.1355589819676707 0.3286801707679867 -0.2242603117821102 0.0335455361107912 -0.5371454248562983 0.1317342409872321 -0.08379994681574615 -0.1375314996449098 0.1556617156194927 -0.2608544997717424 -0.2488335162112193 -0.1214693826932154 0.1554129338795171 -0.005680118626726197 -0.1059142855277008 -0.6238782668523944 -0.5963151157794544 -0.2148362270843856 -0.3258183472222976 -0.248606488482252 -0.09849441598768362 0.1805113569718476 -0.04418818805519761 0.3737371718874873 -0.1530315749338608 -0.2235354786574718 0.7630667232166822 0.2642022185562009 0.3208451718589377 -0.4680450945273534 -0.171291712100384 0.1519325249856672 0.0864344929490222 -0.1192515192935129 -0.05985311789830235 -0.2929187491434199 -0.3373089593719307 0.2738443816818401 -0.4459312647860724 0.1019232205332759 0.0505340192312996 -0.2868115385288292 -0.1693873008287598 -0.2983439658193252 -0.5193256213739745 0.2007825339743431 -0.677732951503412 -0.09657284972081065 -0.4774623379542781 -0.01895688026804819 0.1338266916968649 -0.1412708513186414 0.138190548765444 0.07912287981106435 0.1137545407236712 -0.2905926167465767 -0.1433534307405324 -0.5789718450772364 0.06703335477883755 -0.2909611390633863 -0.4768384780853501 0.3468340324384735 -0.1242840480300472 0.1628599665526195 -0.2098058380705283 -0.2650524620418804 -0.04530575041494886 0.0742239161679762 -0.2315164120681402 -0.3974653743649324 -0.3949615742671702 0.1431491502245915 -0.06100188175408954 0.254619509251988 0.2385636964554492 -0.0377979983973895 -0.08510487825699684 0.07898195343477653 -0.3157876622138711 0.3101460860926867 -0.2513762463139826 0.02130796450574071 0.2262271679854062 -0.5401435669147285 -0.3928044928834363 -0.2627404691172375 0.1127320496462008 -0.3874823969145912 0.01510115021532389 -0.2242313304610447 -0.03784015856384065 -0.231376614555029 -0.08660512547898351 -0.2163715339732224 0.2014987297473436 0.00183042504023886 -0.3018592518870045 -0.1481235804195503 -0.1354999653037391 -0.09485588183453179 -0.3306772971591763 -0.1183932030843847 -0.2962642578543512 0.3651718826337273 -0.3648497928756702 -0.02235452262494591 0.281071647808349 0.1376248104624031 0.04071968038686895 -0.0623331878745489 0.5235593914018143 0.1847146953260254 -0.5898320982543569 0.07259131492753236 -0.07542503649687438 -0.3877343858715561 -0.07180098022627282 -0.2175881717960334 -0.261557164031689 0.2491196222479528 0.04101563216656046 -0.2394441282095503 0.2637079765764338 -0.491673551927533 -0.3199563992575 0.2237069053073689 -0.1916615770179255 0.03207752718399837 0.1150203537322834 0.2999929701318548 0.1594169188046992 -0.2518452325433932 0.1315469323585451 -0.5568227828411216 -0.4552940231107597 -0.1225571536787343 0.3087794611803037 -0.4073169324749234 -0.4018687778918577 0.1001182006973928 -0.1233661035052116 -0.5311694950430884 -0.06244269889225383 -0.04191660189537352 0.1652929995941863 -0.2685189742071611 -0.2022708955035912 -0.4994199663615731 0.2949704313847821 -0.0413959778685745 0.1839277872468872 -0.8877791188039712 0.124646207202205 -0.5174491059310083 -0.1741877905242727 0.2182184736194161 -0.1985385581553671 -0.1495612649704648 -0.5022711929891177 -0.03208153325427857 -0.3229429888774093 0.1232233055373354 0.2090266598930229 -0.565694282351267 0.004313344182687162 -0.0508010608429796 -0.3660963789208949 -0.7893390105930082 -0.6141821686914091 -0.1735863843034059 0.153064126764466 0.2688441272796904 0.01891955490740877 -0.03993908158052884 -0.2345909675961855 0.0488287063273122 -0.1771437205453895 0.07067450063965428 -1.781448255057624 0.08491388308960003 -0.03810905788179736 -0.3085800186030186 0.1155403599852064 0.3749475045315057 0.1361256280495673 -0.381924303711864 -0.0602324042427213 -0.4588384239011747 0.2167459982336198 -0.3119731657244059 0.09338490336141297 -0.00013580052025487 -0.1582682259768826 -0.8192320269381829 -0.5635562527794323 -0.1163258468853171 -0.1849412934159787 0.2078265387141373 -0.1693054398482254 -0.1339753540407564 -0.5926870633174385 -0.2068659662318922 -0.4028693742414952 -0.1592433573791794 -0.03298466862338994 -0.2664711180239981 -0.6223670831098527 0.2539463342474416 -0.2112463899073392 -0.06707021797068523 -0.2540933845523378 -0.5723527575894582 -0.2663211757105155 -0.559775271923221 -0.1669748156094223 -0.3391612146520647 -0.007304739959241142 -0.3714503942196212 0.1978289085127442 -0.2994606800321042 0.07648124144600604 0.1120042552350718 0.2106307826577676 0.001842787583032354 0.3002279075694899 -0.1444902776971541 -0.5616957465792392 -0.1711839811946715 -0.1908787083942699 -0.01413513841741283 0.01441352600904396 -0.2493234142352183 0.07187192025363083 0.08250887000827953 0.4622517571621938 -0.3484961403360574 -0.2500344340875087 0.327055980519856 0.01861793533271652 0.1246782192478675 -0.3286139189108901 0.3619715668980983 0.2289805073568801 -0.7468191925568648 -0.5389303871852547 0.14594117923781 -0.4542946657875223 0.2432635170910493 -0.2263087899597126 -0.04143624459168473 -0.2929049223777545 -0.4249351946087646 -0.1945125584822932 -0.2787407752932843 -0.3020247629591156 0.2550596994518242 0.1787026603248639 0.07429499669250805 -0.1636903109796274 0.2187793428277464 -0.6477365560999034 0.121753783403594 -0.1053863531423386 -0.439961013599136 0.07622327403616731 -0.08556302169099331 -0.0008746784338009017 -0.1351544972756517 0.1271525507074459 -0.2176602092416781 -0.01554345296761483 -0.5222439855642136 -0.7316171375860131 0.2446548485233575 -0.1467291582369216 0.1175902634457195 -0.1681546882107498 -0.04521157099650252 -0.2043091023341305 0.4424845033373849 -0.02996202084625425 -0.4227659748562899 0.5910684140400475 0.1593138334345164 0.3361204425311022 -0.1920805023816655 0.09822228634348028 0.09002368509893081 -0.1322447170189405 -0.2313654657212282 -0.1137904372765817 -0.1345582192042777 -0.5916468699011971 -0.1974399310317567 -0.7310498207769246 0.0904490285916611 0.2617952826851531 -0.6658800334079958 -0.2136383312489579 -0.2474050201719908 -0.37313985201887 -0.09261816710249975 -0.2226843760738902 -0.3276008787398033 -0.2650874794759996 0.1107475747306679 0.2261150250691746 0.01410981678350486 0.08656220760912722 -0.223291144823372 -0.04653183679472674 -0.0123189017563664 -0.1241550945158221 -0.5780305491792225 -0.2051679551218057 -0.6380321535686744 -0.2217327200028662 0.1880702651678863 -0.1374455798500671 0.07477579189264887 -0.230654246917585 -0.1460761228157335 -0.351748140673035 -0.009962655782386361 -0.4829335787134655 -0.4047193455733119 -0.08748337483917695 -0.03324537104327262 -0.2107543464561359 0.04541561517782763 -0.1206787589924748 -0.3716068785062409 -0.3374418396412748 0.1726760188136365 -0.3308066332358634 0.255170315489397 -0.2759676806557681 -0.04273612238743313 0.1552226463334661 -0.5278672766348809 -0.5171652498932222 -0.259448482300692 0.07732678154058592 -0.5486383408282367 0.314303831825362 -0.2208393588601793 -0.04410650703985628 -0.2222334863746301 -0.4153149275231512 0.2285908136142874 0.2151545018434103 0.08146538307396635 -0.1900672020132375 -0.3466077795322671 0.03569483143576228 0.1384705152199227 -0.3207737890095315 -0.1944937775285996 -0.2662333462037326 0.4404826946611061 0.08773299284947769 -0.09194271179202586 0.1281029509325907 -0.01978898548302627 -0.00775196992546068 -0.1741854317807355 0.3259848025224046 0.04401697403542181 -0.4975007188752522 0.1436066122471584 -0.2219367402569576 -0.1000778091158833 -0.1266845224851695 -0.09121927167550367 -0.3601844598365169 0.2486687523844783 -0.03584302241113982 -0.09127580032417015 -0.02447346217466925 -0.4224191129196516 -0.4131361763939417 0.203067049236413 -0.3012140924559434 -0.01364892432756534 -0.4814532324701255 0.3170718278420939 0.1587410603006361 -0.216424363157273 -0.06895458529347577 -0.4016696264415105 -0.3622807926391333 -0.162427061007282 0.1434223168812234 -0.3712616885015544 -0.5024324778723644 0.2529794125252718 -0.1779998772475726 -0.7279837946956683 -0.4446830120824465 -0.1750441732422112 0.1146496243364256 -0.4959298585253443 -0.163924280908683 -0.3573746569560586 0.3814031678509575 0.05951062074438399 0.2997662033054271 -0.3855924523817795 0.1029731263097956 -0.1208204919484131 0.08569036493936666 -0.1509810931506685 -0.2073591495323373 -0.2151644795594506 -0.2827638203076263 -0.09764470321143262 -0.6350097962454752 0.1677218152331212 0.03991765426500021 -0.3740673754317914 -0.3755793000001317 -0.1420218531216212 -0.3745804350769871 -0.9402288793052358 -0.7371490179018136 -0.199320776234589 -0.1086466664003375 0.2234300207129388 0.4520090418359478 -0.1103738931205903 -0.2241078313420341 -0.3088597516010719 -0.5642512091492026 -0.4143577903162539 1.585769903461108 -0.0928980419106312 -0.1639243683643334 -0.6609187513382873 -0.03370139779658248 0.3998306293641981 0.008523386283980328 -0.3397761104272032 0.1596395829533195 -0.2321779744920058 0.3470263743593928 -0.2987069271702892 0.3727308282033386 -0.1411837021579574 -0.1765649647109546 -0.4840684675721143 -0.5546491976224101 -0.519672020666552 -0.07326886758992969 0.2264171857621609 -0.3077200915977026 -0.5490934046857481 -0.6020907699945578 -0.6160437088271168 -0.2187029258141679 0.1405764638862422 -0.093012829466791 -0.2969089595390227 -0.7501222899942074 0.2866256906799098 -0.2387046251713708 0.04525727454160814 -0.2667324397508992 -0.5717447658970759 -0.1781952509044608 -0.5443454325827244 -0.3391144945543338 -0.3844961989382008 0.01499988326006704 -0.3258333496747647 -0.2592405706859131 -0.3504717802952628 -0.02668263132768721 -0.336942418143115 -0.008899326508741834 -0.4064724339785245 -0.12176728147033 -0.6585179601696123 -0.4894753878178747 -0.2442924820600981 -0.3920391396714519 -0.5221616690504185 0.08143575493923301 -0.4243781097009219 -0.0783176392163677 -0.2195665841694698 0.1850063913193356 -0.7196111874495446 -0.3179532141429242 -0.01565370585505655 0.005846773803302997 0.01335231182307772 -0.2718325851744277 0.3462680224808091 -0.1959387716606182 -0.5438993329772722 -0.4787343953438634 -0.06678603417674459 -0.499921571639358 0.09815744930648497 -0.2129229731611965 -0.07730212367128855 -0.5485743205851044 -0.5452923246924926 -0.3020803622176061 -0.1591960143215016 -0.04956358398817994 -0.0290568894388576 -0.008253192309295925 -0.1955745058619006 -0.04618583863778489 0.1091612752012542 -0.4619001610364459 -0.3692202542164156 -0.09988786470240667 -0.4692197245166221 0.1914676051407242 0.2121749482849875 -0.1149307010526159 -0.1904478657477881 0.2462014858522821 0.001754223755763481 -0.08480309741901883 -0.2127612683438606 -0.5118184167687053 0.382347513962762 0.03808150938029006 0.2518807181589469 0.02154858415273547 -0.3893449322968922 -0.2167216909410216 0.3860177129811224 -0.08499909511413424 -0.3887432617560126 0.3708619457636211 -0.3120436016510948 -0.05299917601938802 -0.1099162929881584 0.3817873712974926 0.341076861738471 -0.5291531398780812 -0.3218978604160307 -0.1569871545851364 -0.3389052762012951 -0.8543496902114009 -0.4430601170393201 -0.822917007835629 0.1578091180914681 0.02356555643550554 -0.7311591075724099 -0.02046745063084701 -0.2556341900660989 -0.4334977374873441 -0.2172836075673819 -0.1004610402281179 -0.5995114010789439 -0.1580215576663957 -0.2700160753907077 -0.1791718769204184 0.10433318172727 -0.2628705816799846 -0.1686570115607318 -0.3068685281060631 -0.09814630618918101 -0.1497385025023432 -0.4074351212448353 -0.3334924678781389 -0.6538958399570722 -0.300561782996361 0.1822896782480434 -0.1139468491097467 0.03539343147907053 -0.1550662450716123 -0.5397131238570544 -0.372181867218021 -0.4674203237608217 -0.6545563178051702 -0.4229395670115984 -0.04113516245428499 -0.5451085318148088 -0.511592875468121 -0.2840266659950414 0.0106744015890542 -0.4554353508680534 -0.3388074378591223 0.06221199312929226 -0.2740359519549297 -0.3067440885546456 -0.2550129301256622 -0.2390063345835033 -0.0006035686096761179 -0.605677444649717 -0.119793771027347 -0.2750243242962616 -0.04642902449794497 -0.6308490936483154 -0.01242161786196535 -0.07132997202448933 -0.0887428962759793 -0.2325238462713042 -0.9047463541424298 0.01658182378927922 -0.00757330869321584 0.1593916913105907 -0.30865992061819 -0.3331606028431572 0.1263895129933455 0.01961474297915897 -0.3470257833748221 -0.5424716805812152 -0.2009709154582145 0.45758918922306 0.2787925860775491 -0.2414443397955571 -0.315930801341089 -0.2764128272374969 -0.3745237272689381 -0.126159677981048 0.4191869601185408 -0.6784266104832994 -0.5163194826192089 0.05122030675741623 -0.3439245695363883 0.1948868616089859 -0.195621240269816 -0.2138035569149919 -0.347389993572753 0.339360043845781 0.01605039416612359 -0.3309417321826002 -0.3241029873528691 -0.2576945702651006 -0.3775080322103062 0.1443789467073577 -0.2115000012605343 -0.0632786938770744 -0.8588933711020734 0.217274860245064 -0.3226043112026534 0.01771453443535823 -0.2761564016940267 -0.3606438760377993 -0.4118506441057463 -0.2423832117304276 -0.0887804850759015 -0.5729156705116153 -0.6925410607046041 0.5280927917298445 -0.2823300145568775 -0.9402331275720441 -0.1997246501346932 -0.6724763279724075 0.06182904160979734 -0.708049809297232 -0.259721293167383 -0.3865451274527018 -0.1284111529569806 -0.3514575322321374 0.08207950137162345 -0.09598541532096631 0.147289309646151 -0.2497369372424541 0.2156248484000855 -0.2658245768023106 -0.572600223736922 -0.2521990907983624 -0.4295099510742876 -0.04681170516341528 -0.7328427675174419 0.1884437179260753 -0.04673741402675256 -0.7794252860778346 -0.6598692557606886 -0.1671782095543159 -0.3821492234558344 -0.9238147067806809 -0.6916296008663123 -0.3402834544006016 -0.578286567452837 -0.08526704879707259 0.4962274795435372 -0.7861315151895858 -0.2066634650164923 -0.5337220378425992 -0.718410100444599 -0.504459492665439 -1.781827984730382 -0.009947068886489769 -0.4232115708025747 -0.5426458863517839 -0.5264455047333106 -0.02365578538253354 -0.3068997345092218 -0.5150887200116396 0.19076241356687 -0.1554067325416549 0.3969325754490018 -0.3676212471563032 0.5257695833701596 -0.274742496467984 -0.1857001610880882 -0.1400976841123476 -0.3617743663956622 -0.6082153702179874 -0.03632788515964308 0.02645797539322557 -0.4161029360544639 -0.7431684755220693 -0.664251865974368 -0.686806875659062 -0.1496536443263377 0.190202432826203 -0.1443255792224843 -0.08102931935739026 -0.72094662197717 0.004892581362082224 -0.299705529614719 -0.01696646447822541 -0.3272883990347764 -0.4905533145913219 -0.1813396174116535 -0.4071266089152618 -0.5655314771866083 -0.4955683794089641 -0.006248670385064545 -0.3033017414216436 -0.5888400949273649 -0.4074841816642161 -0.5959435509593141 -0.9107791944897182 -0.3349167971705578 -0.7373588861608363 -0.6026594024957698 -0.6107404965543706 -0.5003765155757252 -0.2098611070589861 -0.4021373027965684 -0.8970043375612039 0.08397910064022965 -0.4382484290758023 -0.3301399368071711 -0.1242664808119831 -0.2566178601993747 -0.8580139120956334 -0.3507095368583322 -0.3811768675654083 -0.399773831124957 0.1689071027451845 -0.1953723184008203 0.3067860909489342 -0.5295403789461324 -0.462947842632857 -0.309595415132518 -0.4885207249855884 -0.3616981532296132 0.1724954091130182 -0.2242279567779056 -0.1011815074360616 -0.6491739385864949 -0.586984527587308 -0.3778323314108448 -0.09455214175017755 -0.1417058751390151 -0.2992596095016197 -0.03766037803092157 -0.1127711321594186 -0.148458127618688 0.2093510540750044 -0.4264534725673995 -0.5603598915878025 -0.1225630439665603 -0.4815789276416481 0.1703550775539186 0.08599999366535897 -0.4500855357806468 -0.299901613610683 -0.006269558339009458 0.1243574071130169 -0.2346236097390691 -0.08636255906208028 -0.2229581332903815 0.2823707262727844 -0.2397291346814265 0.1680025127720532 0.3012079184576376 -0.7086369232392157 -0.6408726543683755 0.3433000709787449 -0.1575065203138797 -0.2867059557405419 0.2773035145438126 -0.2150019370514253 -0.4243012461071846 -0.05769483473691139 -0.07319840475241103 0.3170796895196715 -0.5671667329225263 -0.3613263866052935 -0.1833799785322691 -0.6008257845500781 -0.6653095750697096 -0.6002023243499531 -0.6657416600414023 0.1797629486941266 -0.3595463967012169 -0.6608457903818953 -0.1399092453423791 -0.3320523822637252 -0.6346831609524493 -0.1126116635467497 -0.4430829785354419 -0.5485231708125181 0.03204657762249968 -0.5301733635083953 -0.5816943497436409 0.008806774026283262 -0.5491988821134777 0.08435077825563157 -0.4249142318330439 -0.4528829190479355 -0.1372350565664413 -0.3979607906751999 -0.2736356445295965 -0.6591575170066557 -0.2028113340747752 0.3093224396829657 -0.1191120114081912 -0.05310542061942999 -0.07089508746778765 -0.8108684520555332 -0.1785032426837721 -0.5999447934883962 -0.6111411990278564 -0.4186274799455245 -0.1996346316510463 -0.5072772867718675 -0.5085715229962611 -0.4783727689671217 0.3888878648421634 -0.5018817073580097 -0.1710123961143074 -0.03440537061758202 -0.6307201710364533 -0.7624669294232587 -0.1576758872803966 -0.1730081850814273 -0.02625730250783562 -0.5651390390100943 -0.2542031839819762 -0.3311672194039363 -0.07320000952316806 -0.7051065686715809 -0.5397917702212847 -0.02024915602074184 -0.1898657938494608 -0.314988435251115 -1.106120080454726 -0.5480091149859121 -0.09145879212478093 0.1440405642236308 -0.5120847002837695 -0.05440699605913334 0.2362600119337995 -0.2498941318550015 -0.3758131420797248 -0.4106673983087781 -0.3363085217087289 0.6044613757751727 0.1122602238867986 -0.3170173832997 -0.2052360563028308 -0.3537423350446363 -0.3191986995735654 0.01210117158462355 0.2407197443137293 -1.131072648759672 -0.6094826423122511 0.1481031201204994 -0.2816758046960969 0.1752267227585191 -0.2742201391037056 -0.650284605760318 -0.4139406904977087 0.3116073296461769 0.09366767815532326 -0.6537020409696733 -0.5264410585863214 -0.6306669892186386 -0.2142258307113107 -0.2299817083155755 0.06915493757999686 -0.1521691785608325 -1.141583345649978 -0.06592206427003312 -0.3126744427081004 0.01693288377691876 -0.3528965617401257 -0.1314278329686176 -0.5596825145110919 -0.2598449364567456 -0.3186944506137265 -0.6657774294296043 -0.6689401126733523 0.8424123812819385 -0.3009561611668924 -1.064671667809632 -0.5656834873141398 -0.7752133072999027 -0.1241937641920823 -0.6374480002381808 -0.4316929876739758 -0.5379254658864181 -0.1328429314433819 -0.5164809431613604 -0.2962416807611852 -0.1095985366281921 0.1207874243767804 -0.6628900788488759 -0.1351168325674617 -0.2640325389261486 -0.8452106536516678 -0.3278363941281444 -0.5382437306891634 0.0007679836840912218 -0.4236868179998368 0.1319238561852083 -0.2514732603231891 0.00682872503865941 -0.2460237822275235 -0.2149518213119463 -0.3853157704397552 -0.7518385681609683 -0.5661407784010941 -0.4055167927140272 -0.5343414090579431 -0.2868332194461589 0.2708073279502483 -1.022867290643607 -0.2684839686071238 -0.4610225988546588 -0.6772542738231266 -0.3544382407374108 1.740030988687096 -0.2402757352641925 -0.5008001701776205 -0.32203566623503 -0.420424818079375 -0.5527956962790427 -0.4165025225562441 -0.1934917831570036 -0.2564252939818574 -0.3979042505792373 0.569503383874053 -0.3992567834737347 0.5897134182343675 -0.4717142696950412 -0.1879011738315803 -0.3296751719897661 -0.04853534424595358 -0.3196629319664885 0.01616278646428472 -0.02518437276958412 -0.5159949290714172 -0.4637381442910093 -0.7480603122998082 -0.593565034849613 -0.3443225637849446 0.1915663217760353 -0.2208231019276707 -0.0229822183777675 -0.9744571245769105 -0.1626221200879218 -0.3515559219094913 0.03383880333558515 -0.4688044937671148 -0.7618252549229642 -0.62682769836385 -0.5754922484276397 -0.2888300568057754 -0.572224317416559 0.01053109933068843 -0.294445312607977 -0.7097400471505686 -0.3989451628754628 -0.7911465174554497 -0.8293220722254347 -0.2840166022341136 -0.5712601088393791 -0.4600099221423827 -0.28899931163757 -0.3643181064797407 -0.2225982521597181 -0.2438786397524137 -0.9357264224665949 0.228355580792485 -0.1621760245473221 -0.3049375648757576 -0.02225913657565592 -0.1694873664214451 -0.7959264250443929 -0.4139968176207957 -0.4110033725326739 -0.7852385808451339 0.1283921083206729 -0.1463796515185316 0.2271431064471801 -0.5617095218394167 -0.7841145258499482 -0.2560159493630336 -0.5580690917179528 -0.04531553057782736 0.3554651982974579 -0.2229454527347418 -0.1027446492423381 -0.6148578968220384 -0.3213478564924183 -0.4648935364962582 -0.1411256112089259 -0.5837217247480977 0.147878190493986 0.2097076500532646 -0.06846971738883641 -0.247471001276119 0.5637195559861582 -0.8643569774815417 -0.5739224547249889 -0.1211870337370245 -0.6808082790534996 0.0666681877316912 0.06161818894203498 -0.6313891561168232 -0.4116426898980775 -0.1467126937197818 -0.2977466389072961 -0.3153989022423644 -0.5208853164006397 -0.3845323102999652 0.280267202921041 -0.6839282700139054 0.1757954743509033 0.2795987531029381 -1.063435226925195 -0.7635577498452711 0.4197159489910926 -0.04269171867875766 -0.1163816233067556 0.3169323876707662 -0.3241239598066025 0.02207212575000063 -0.02996874692232253 -0.4523229984245173 0.01235470586480735 -0.4904427974491405 -0.3480502876861254 -0.1594231677310244 -0.6080547005840844 -0.1753453575408354 -0.4323488361306168 -0.505339485231958 0.1550320090461448 -0.4788857991812676 -0.7416837536959027 -0.526284161501043 -0.3205144331745952 -0.6799907880853793 -0.0004602501180474434 -0.3553702825004848 -0.5628476691497847 0.1831584813954614 -0.5833876316757762 -0.2385667806020592 -0.1435223220691675 -0.5862099375816562 -0.006706504552293172 -0.4107388300348321 -0.4971982875136436 -0.197366562155806 -0.7940342484313364 -0.1969251071604586 -0.9874351191383243 0.07926008935697504 0.1646474683723194 -0.1233008039743702 -0.02671002162957524 -0.1444779380085388 -0.8378694132281145 -0.3031219709420606 -0.4809574349308396 -0.5928992192700092 -0.4413021065317886 -0.04918086472912069 -0.1076738850473241 -0.3879281706209609 -0.5227018007203815 0.3082199540555409 -0.8051717417915679 -0.1150540598055636 -0.1704053487569717 -0.8442359408404969 -0.7832043444645047 -0.1760183397472159 -0.03972588631436266 0.1985375297124761 -0.3433438205288021 -0.6022461326730766 -0.3832753364025572 0.02496989821628015 -0.7482856620325489 -0.676472325144241 -0.1995175329101491 -0.3055061345658232 -0.3525741657072834 -1.041952251483809 -0.4833379927283012 -0.1631391027722319 0.08717001671536372 -0.5758173054151819 0.2556821980832631 0.2893202308655086 -0.3180363901873887 -0.3543792204057355 -0.1415516959141055 -0.3925201797698654 0.8471840398193545 -0.007706221773311706 -0.1963279733293128 -0.06959797801059125 -0.3439763571075633 -0.1369718553100855 0.08363263051704599 -0.08420122646260238 -0.9430659754739588 -0.4837684467461363 0.108912306293059 -0.3097210873343849 0.2073936141374547 -0.2969534935970397 -0.6893898771050506 -0.3805016869987031 -0.01829813528337139 -0.03519004420106402 -0.4904205191547068 -0.5237925240566278 -0.8873934736899731 -0.1647033558058378 -0.6895951797493588 0.1969087071731084 -0.1431303983363662 -1.199648901972244 -0.2292936600652613 0.1048424274021737 -0.211285411441128 -0.3412345589704287 0.1421968005512652 -0.5929397675682737 -0.300151981810605 -0.3521789047934598 -0.512952562361777 -0.3186910232639853 0.9687960781341542 -0.3247884445108192 -1.111584493802074 -0.3401393556610821 -0.4732730076001035 -0.2112119737469602 -0.6182892105283664 -0.5317519963536463 -0.5122297506852407 0.1991472282966215 -0.3521110322185296 0.07007926399907323 0.1071993659132263 0.08979388021070796 -0.6263631267375758 -0.3159070728631599 -0.621762198439926 -0.8270000722327756 -0.3211575912606422 -0.4743296938417983 -0.1040256616831242 -0.1049837439919935 0.1657019051342271 -0.3762664671296157 -0.470896309465375 0.1131506048092131 -0.2081354288090403 -0.3751672573201461 -0.7475183680699227 -0.3429889606103283 -0.3563272169382081 -0.193391652912252 -0.1531689089457126 0.01097693395417735 -0.8701040648264207 -0.3143213515089616 -0.320219666872623 -0.592222215133461 -0.3119573320575327 -1.781973028558838 -0.5607983807665291 -0.5284186051541483 -0.2431205520419281 -0.3293907359360963 -0.844879692017794 -0.3785271889603082 -0.01566285948976559 -0.6479386231714839 -0.4968833348626299 0.7222550173615462 -0.5314642510724801 0.4308429549802154 -0.6232325490933887 -0.182016847791158 -0.8778392013648422 -0.1639641219509562 0.03408601202469844 -0.01649806840710853 0.08165899544008666 -0.7182053520196864 -0.0282191147370792 -0.5870543552588785 -0.3231940518303731 -0.5771586795985312 0.3262405283444714 -0.2528153413391997 -0.4082394060139936 -0.7741023157948116 -0.1681944551198781 -0.409362942909045 0.1675440584613964 -0.5640719656890355 -1.055730129940361 -1.098571488379675 -0.8975787973673068 -0.03772469550847653 -0.5642342418592303 0.008230844877315392 -0.3339261354764625 -0.5514432759140413 -0.3581455261509393 -0.4072398822900626 -0.7505923501963231 -0.4133824271519346 -0.2502443089715727 -0.1859781500659672 -0.2507778584384046 -0.5768442401927268 -0.172494219696996 -0.1370585867667568 -0.7451345314503817 0.3863714854580726 0.08592667913501936 -0.224872090415018 -0.3867075059046672 -0.01995574410190462 -0.7792667864810917 -0.5139905686401676 -0.1542818303227253 -0.9569043036713922 -0.2697091330581493 -0.1987512335898944 -0.2010240181995746 -0.3898078563984238 -0.5728928421282474 -0.4898382537117549 -0.6661950745854164 0.2316645697315715 0.1451958537847786 -0.285186100538286 -0.1548825383639861 -0.3606243712905282 -0.04309501997003859 -0.5252121926059879 -0.08087819685630879 -0.8435507862497488 0.4306854850221897 -0.08238840393192921 -0.05041650085296915 -0.01158433575335821 0.6521341473703037 -1.047237039308981 -0.3746236902847343 -0.1082794913183117 -1.031700987750881 0.1391159630165882 0.1736528264501267 -0.6512238773038403 -0.4587991036038348 -0.1340821280386915 -0.7334583616678994 -0.4458441551671066 -0.837471432556554 -0.6672799757736255 0.2448374172288726 -0.9024474589734426 0.1023670755906258 0.0292058596005524 -0.9520214971401303 -0.8268143038010669 0.2972605217114852 0.1453064233583261 -0.5232784383932808 0.2086008331921708 -0.7627467577788207 0.3941662642328789 -0.2286381155884264 -0.5870456814615304 0.102084148967303 -0.4329515063089142 -0.3906233582382577 -0.1731692891447 -0.462936283622991 0.2186150787660332 -0.5378741730398333 -0.5513110470695967 0.08792702355002706 -0.5160325021276126 -0.8038774266202716 -0.8673068591619917 -0.2800402211052486 -0.5071812287055846 -0.245761552277381 -0.1131894656146579 -0.7111469043039585 0.2949153372857375 -0.6125145957330751 0.1333191507641706 -0.4143036664128203 -0.3881311020441194 -0.4536636134855772 -0.6501534428375323 -0.4587908045668875 -0.2262689907292591 -1.008930698162811 -0.2858199286034775 -1.097091975238689 0.3349940031359749 -0.03397858581056419 -0.1115325585421367 -0.1536060218366431 -0.2472757970660318 -0.9552163802897028 -0.6360437725640494 -0.2415017541557331 -0.587043818741025 -0.4349002239176226 0.05466084891586871 -0.08379992506168299 -0.4337862151309793 -0.3523864784159469 -0.2180967687295187 -0.8293383325079787 -0.3981414008486881 -0.3406100475235269 -0.9146022384063078 -0.4776784098582947 -0.2444239310349579 0.02509980574020787 0.01141825131356056 -0.4052794734982313 -0.4729987232950348 -0.4093980513685815 -0.00873726058681297 -0.7712260881429435 -0.7848996302391045 -0.4474293883176877 -0.4323587577203974 -0.3591563401798847 -0.9546891379024977 -0.4272933483664859 -0.06972562127096517 -0.02149647229712578 -0.770948698054748 -0.03291204158136948 0.3803140241482079 -0.1873962583031693 -0.347983988323403 -0.1636512977496206 -0.3091525419691572 0.8900416145331014 -0.1743739584560785 -0.2799925329935282 -0.2953298210434973 -0.450373929504557 -0.1897727562191744 0.1512685793668392 -0.2564901069991625 -0.7598665348694464 -0.4516988612050298 0.1068511089079621 -0.2808640885633978 0.08429370500173265 -0.3006954281227031 -0.5940605997954104 -0.4359973149611513 -0.2442812926963645 -0.0329967553759234 -0.2558588863449351 -0.5317364343041211 -0.8531979377142996 -0.6747777970265376 -0.759844933067973 0.0006778703703523043 -0.1294741974933304 -1.106916969987646 -0.1352047865966687 0.08682798495941844 -0.5157487159470723 -0.3502479771286062 0.3010730983680521 -0.5465252622325496 -0.3861814509901219 -0.460932413329754 -0.3924467851902882 -0.003125988376217017 0.7091393647100384 -0.3071080884322199 -1.248602155389827 -0.6026747990886756 -0.151398152882901 -0.2826794853998861 -0.7794898241130669 -0.5593715976627073 -0.4852336979367511 0.008309981183236928 -0.1021599316578544 0.3411885873017287 0.5081079556857369 0.03733243284709165 -0.3308654045131658 -0.2466537274174862 -0.9377014554868648 -0.8369771035990859 -0.3451759856061667 -0.4415002397679108 -0.2260156389975992 -0.09391867372990505 0.20536671518883 -0.3820615019536124 0.8603809226716443 0.04649318982692087 -0.158594619703022 -0.3744326803384477 -0.9125369928504006 -0.2378369680554814 -0.3006028796512427 -0.08976209282829463 0.03878589158372698 -0.2571253410084418 -0.785713420861162 -0.3177862219631656 -0.2314554537666901 -0.3843821789143249 -0.4873158910290698 1.867504138689031 -0.1400122810502813 -0.6753642256336548 -0.2131931662576885 -0.4222201678406883 -0.992839970337568 -0.3564598873179906 -0.1984565326015064 -0.8003576707711179 -0.4047668580826831 0.7674033625513189 -0.5379221398723746 0.3200337625725557 -0.6216122206835325 -0.1813225694221128 -1.087091976625574 -0.261186702356849 0.01544308449351302 -0.2500519919860956 0.1441280229092948 -0.9619638588218969 0.1269707449510237 -0.6043244873826396 -0.1725858061112837 -0.6338179309763565 0.3837868560834052 -0.1949495842806335 -0.758838935074038 -0.6577446655062089 -0.1066555349812738 -0.4665885207142938 0.3969287809523685 -0.692421554516083 -0.8766299067088819 -1.222737098832862 -0.9412237269783912 -0.1783534432115874 -0.5793127719721858 0.00198151099599386 -0.2914654072177844 -0.9132033195906868 -0.3403370434379572 -0.1868548302155974 -0.6710837117043588 -0.2454886164132825 -0.1241173018458294 -0.2881038463860114 -0.2303714358992366 -1.015450790887978 -0.103293216194567 -0.2492892148066009 -0.501306977223504 0.5467538639021241 0.2218582371860424 -0.2512560586044336 -0.7542107007949712 -0.02320318421047902 -0.8658572514826759 -0.5559053392767729 0.02184836138294483 -1.020389550090781 -0.6871829233387893 -0.3082731594064871 -0.6241027114402874 -0.2269937410753727 -0.7018013596758071 -0.7708968870449653 -0.6888896844758244 0.4445543856629801 -0.2511562352753987 -0.1454995404220746 -0.2401718120916491 -0.1373932587443327 0.05750814917539201 -0.5077294001027047 0.05337787197100174 -0.9368218187167636 0.3094167643873372 -0.5086778642578426 0.06744163899424491 0.1149160751543754 0.2772787764088001 -1.131635194925813 -0.24299331655764 -0.1048965486925691 -1.226254278840357 0.2029837279627382 0.1659767946555612 -0.7132139376091509 -0.4943209625346273 0.05117485812238402 -0.9063858289101545 -0.4820357410883333 -0.9985494038759675 -0.6582131227198482 -0.1703380258281345 -0.9928703297273094 -0.114582736253507 -0.09210900657241534 -0.7078960436284223 -0.9469585751118496 0.1005995272527878 0.2414918171114861 -1.09964696711853 0.1575427776842223 -0.8200464232382167 0.333162096363932 -0.3821110116835941 -0.5101465687146329 0.2144853276229104 -0.512968358020117 -0.488113300839539 -0.2231572929378784 -0.6201640114343301 0.2779820537987536 -0.5104169196537974 -0.6104312516002482 -0.01020268160961942 -0.5220419351288996 -1.02325893573648 -1.128840855457466 -0.2799193428358276 -0.4285771894615326 -0.546634031813172 -0.1516111067465357 -0.8121415040333105 0.4884931648429183 -0.6067981257056273 0.1552447809247549 -0.559431567530568 -0.1767958055953588 -0.5082820086240474 -0.8587536693663146 -0.4448482480218933 -0.190572533645124 -0.9276026706789513 -0.3727380520268397 -1.022288134606446 0.5338402697560298 0.01606721260939164 -0.1198185494852305 -0.4219561200564114 -0.3629507087479318 -0.7933746066071081 -0.839387868910383 -0.2714587435270597 -0.6183725771998323 -0.4406180819036702 0.120792154047767 -0.1751175420400254 -0.5428664166010159 -0.2268962176582445 -0.509221779962194 -0.8449037912845141 -0.6846059682233914 -0.3219151493929256 -1.034332439008274 -0.3900501572073875 -0.2413581968510067 -0.113597852135392 -0.3351205767677078 -0.6361979833288497 -0.1928292306697757 -0.43680298624963 -0.1887923567377331 -0.8025552691681482 -0.8822249286684164 -0.5173636867479294 -0.5396821401592674 -0.3784762859892659 -0.8448706219451347 -0.5234203882543 -0.02523284708004396 -0.03004488642002552 -0.5911414799190232 -0.5198729319281616 0.3793210414752821 -0.04253283290772383 -0.3466682916964748 -0.2922567493223415 -0.1092012753827762 0.7215290234431692 -0.3998376566347607 -0.3785129240010847 -0.534849131920757 -0.7159466788797467 -0.5158517564827039 0.2191034254880796 -0.1687253454842232 -0.8006633752006649 -0.04233864925094758 0.2140476332785622 -0.2296165453694349 -0.2915847379002629 -0.2888886891570239 -0.4784622980651279 -0.4467145960481185 -0.2256072700117347 -0.04297332735554762 -0.3004901990870193 -0.5309290473258421 -1.007158475659556 -1.111196509017678 -0.4529845320173796 -0.1409433732378824 0.0222587276785431 -0.820032995490547 0.007376701449273282 -0.09344757451430596 -0.6575287905493787 -0.3359023295164944 0.5245680980769555 -0.6068177056063478 -0.4216118690137018 -0.5725608766120418 -0.4132240278745631 0.06853942621820504 0.3766986723601243 -0.2236264198419682 -1.155001748353813 0.3835755738205138 -0.07269001608422644 -0.2961927238014648 -1.011602948583423 -0.5476932202465833 -0.4673703739609745 -0.1149249823172179 -0.3212341778145969 0.251035724468793 0.5090317567423607 -0.2018856400356364 -0.3026056454976902 -0.1696618457657907 -0.8511035584348059 -0.6360251499027173 -0.3479035685123237 -0.5099340626202971 -0.4260193709536283 0.01391765724150718 0.04716688284851223 -0.5193920652906535 0.1336592645915052 -0.1157910297988457 -0.1209061571098737 -0.3175436010167856 -0.9144348098228305 -0.3985852511791289 -0.3255970899053792 -0.2155615860397035 0.02576505316702601 -0.4311139406371869 -0.3922836136710843 -0.2706420873581653 -0.3149541713240933 -0.1009102613588649 -0.7589114696564203 -1.781827984730382 -0.3225388769638705 -0.6477950476558042 -0.1705397346900364 -0.4016639554119894 -0.9560729763139403 -0.1062869424071198 -0.3410653174718074 -0.6938947223719386 -0.2531015973304419 0.5154964732046285 -0.4933817747571067 -0.103099497056752 -0.3720333613045235 -0.123252982762294 -1.055082572544018 -0.1092166843215198 -0.2198511401706685 -0.4913473463108912 0.1099251875339939 -1.123872395689639 -0.02938743533917771 -0.5059274709014567 -0.2227055243212799 -0.4690992425341026 0.3639924227658843 -0.02027030350821564 -0.7309819750094045 -0.7262974959532765 -0.06390253566339001 -0.3340042434091533 0.597777278013657 -0.6949221865942922 -0.4493798828966502 -1.160855418373404 -0.7053072891484373 -0.699276484447522 -0.4376704852886505 -0.05167241028317913 -0.04077780340070988 -0.599338006731406 -0.1877316316037821 -0.2386115078344901 -0.3960026156101754 0.07314693730402491 -0.0877385462508644 -0.3490784660286306 -0.3042342943000372 -1.04485869334051 -0.2133530210299411 -0.3146573130592388 -0.3321743102554562 0.6536809804245225 0.3356024170565902 -0.1934155285213567 -0.9308302814893227 -0.03611906779631877 -0.9231960135360759 -0.5094190712281376 -0.2368865955761142 -1.039908483654012 -0.8350780325527202 -0.4063549237358346 -0.7216287535653085 -0.283549014328219 -0.9303673883439546 -0.9378338521796289 -0.3743380151152271 0.6652621891428373 -0.6261809288546966 0.04919270649906123 -0.2000238336443852 -0.3805201612720025 0.1070814407263242 -0.2373341039643005 0.1680623173657377 -0.8636506670044971 0.08496989766350729 -0.5964578505190108 0.2616961079899485 0.08564325237143779 -0.03076282855809052 -1.006776302453722 -0.4388848296833138 -0.02522913690806778 -1.237672975105699 0.2268815798631884 0.3284199476696821 -0.6537825551034893 -0.5222905782590661 0.2957512926294534 -0.9733422277481359 -0.3595601174139009 -1.003688310960785 -0.5937017251294097 -0.4447872447259192 -0.8495306072401683 -0.2914004542718777 -0.02520211595957169 -0.5032552818223736 -0.8935797977110612 -0.1749640360389038 0.2067588852205771 -1.361739084645942 0.01607068850026597 -0.5986951376148295 -0.006364519784491229 -0.418312344602186 -0.3255628138534578 -0.05822691441876494 -0.5470615402964608 -0.4674344014256545 -0.166972824355683 -0.7266288134790206 0.003911148183964989 -0.1107724574764601 -0.6388237463609426 -0.3195108977045384 -0.7914273227694385 -1.030707884301274 -1.347581155474584 -0.2335665650734107 -0.282266159456554 -0.6047644519379601 -0.2647827722254275 -0.7656455368948109 0.6925461994067584 -0.3355196829331084 0.05457413196311294 -0.6654809206432205 -0.1716090184197709 -0.1816043155841315 -0.8710697445735216 -0.655246440909579 -0.1038510359864993 -0.5753790585325803 -0.388110581745044 -0.7701068611951711 0.5265629438784175 0.1877246111858627 -0.07274151601928062 -0.5412953692036067 -0.4119734917352358 -0.5366763068137621 -0.789734438665066 -0.4938557305258537 -0.632044272904425 -0.05377693088462582 0.3993417959047834 -0.2338366100911965 -0.4892118216335631 -0.4090155269574513 -0.7430633627590832 -0.8739827201153766 -0.6241417643999819 -0.3287665353236034 -0.9053857928987108 -0.5648028405516894 -0.3831278412321464 -0.2667834069307376 -0.4260095140851397 -0.5942808972698476 0.06590664074879116 -0.399205686951896 -0.3525046922510404 -0.6482042707020442 -0.6884904318529738 -0.2322503571731199 -0.5186819183156427 -0.259992661918489 -0.5319560685499135 -0.5339174568628724 -0.3743326975744048 0.01490145813696582 -0.2211962027111431 -0.5308552983355076 0.2582853853062619 -0.04561453043301034 -0.3664513725843536 -0.431973756895839 0.2651925127001253 0.3946610267467467 -0.4687043765476729 -0.4124847689797652 -0.7568303916281496 -0.8018285259196836 -0.826153435156299 0.2906615985251585 -0.03724746981708974 -0.8016310126139845 0.4818981906977681 0.2721103651715217 -0.360637480659132 -0.3872973663893723 -0.1495220514798854 -0.1864243586610831 -0.2102292448691494 -0.07317014262805463 -0.09662769112699954 -0.3378718456832781 -0.4576579062142558 -0.9075882353475503 -0.9219014718538876 -0.1920685081266685 -0.116875762912306 0.2890653171322882 -0.4893731464572967 0.03429173363179066 -0.09668863893128976 -0.7566245638496483 -0.2809460853315527 0.516164339665746 -0.1102249908103984 -0.40935018207511 -0.4571520457708725 -0.3416521138433671 -0.06327507390117715 -0.09480691448373813 -0.02804242689107814 -0.8009299785593715 -0.5118264582900479 -0.2142006600809974 -0.1384804766152002 -0.8475682420452058 -0.5735110982901541 -0.3799754077955094 -0.4477211045778108 -0.6532779099630316 -0.03162730375362215 0.1448841305296973 -0.2120341453962263 -0.4524362540144146 -0.356780235568433 -0.5381069203948087 -0.3039616033589326 -0.2984008579276916 -0.4473431779410559 -0.6485066001685057 0.4410917197120264 -0.1458758574465191 -0.3815449557405615 1.667218727796572 0.06210318337388328 -0.02218373853791181 0.3143943544532836 -0.3695653803667836 -0.3176914477891388 0.05118959850659156 0.09008013501068504 -0.006350069057788199 -0.01232797267804324 0.203935684172132 0.2330687614757996 -0.1624114630506737 0.4307269245467064 -0.4004737420633673 1.948549556721081 0.3335890928151976 -0.04192142481248118 0.2367004576456525 -0.1409107966175674 -0.3436863316219508 0.3816399232737833 0.007629740452386909 -0.05620962790570525 -0.009210520727384545 0.04312762633207708 -0.1045037202332779 -0.7291590733833684 0.275517453291411 0.1064432317573884 -0.2697058202994626 0.2235728075947489 -0.1292678701953861 -0.3588164388952433 0.2089953707997088 -0.4268770803072862 0.1658208426565521 -0.05874670210612977 -0.1252114055277611 0.2118547821865102 0.6627473287282948 0.4459429401917344 -0.2771606877337046 -0.1775338519619086 -0.01473339359956204 0.1495908131907566 0.6746854718412869 -0.0901262206339789 0.1370647022270746 -0.4456022646206545 -0.09722113324201812 -0.6545926777777892 0.163677723514819 -0.0587339326604285 0.5543693527837558 0.4353403263900784 0.5271708111732047 0.01003765855487058 0.1071942561920385 0.3096140164305524 0.3841871459387871 -0.09583582922239864 0.01559603339907481 -0.3155942273850432 0.09957052658816262 -0.1328321173322763 0.3564622545695095 0.6085146381009029 0.5867399596143027 -0.02250972884758025 -0.4763015329738412 0.1363186111626235 -0.2266561576288394 0.06372520143932857 -0.2334396842365647 -0.3265031596549025 -0.5225730768617836 -0.2794768981321148 -0.3806046580723788 -0.2709384658505899 -0.3745368673442807 -0.4919386695331785 0.1155843211204948 0.9277339631772524 -0.8220383796531052 0.4677961095284494 0.1012249285417283 -0.5689958029104534 0.3486579083308017 0.3536085222332953 0.327297536819787 -0.3524532775029237 0.2478060497053853 -0.167875376600675 0.4683052857569047 0.04845777005968554 0.151462095439388 -0.2954444421277257 -0.1202327210119957 0.2654746711195042 -0.468234794883329 0.3119278052564229 0.6273311313018934 0.2530745559027924 -0.06309058374995485 0.4189488387699707 -0.4732279941849034 0.2094095552707933 -0.4025186655027134 -0.1659355510438331 -0.3177972199941017 -0.2481462321985213 0.006592088157052001 0.268780447633735 -0.2073683427305351 -0.2106105744749099 -0.4509560351939277 0.1834184809985726 -0.7661370276962249 -0.07903346079921088 0.04676248215594855 0.1237008920290094 -0.0126499125481814 -0.05835220431205906 -0.1588734042816966 -0.3299073260347327 0.08167118119376097 0.2478343554039025 -0.1452099065062266 0.1326568406926738 0.3491255078998559 -0.3934174673339707 -0.5960640115453083 -0.7910878843462008 -0.3020982053926454 -0.8838714860757471 0.06568719607260053 0.3369431365777982 -0.2198210057155472 0.02881191399440781 -0.1501821522283808 0.9675637896490875 0.1967637389689453 0.3815388218291317 -0.2548597206712573 -0.0560737578407515 0.2869704311115486 -0.2854761498665436 -0.5950011402363669 0.1513743013486433 -0.009470931824429152 -0.1739807982033399 -0.1466233207008622 0.5357347876397437 0.3074301522098216 0.1270808780145465 -0.3704049340693402 -0.07042455885511463 0.0405713279179636 -0.3815384053212412 -0.2997819510430044 -0.1114667378498817 0.7258062829153872 0.8700940416597699 0.03826930388024562 -0.1790194202449966 -0.3616556505927438 -0.6152504762514582 -0.2677397580547463 0.01079977629521155 0.07883747390706719 -0.3624426716699543 -0.1527248418632322 -0.03702200314495983 -0.08732007815655742 -0.2271404016758612 -0.1883027115152028 0.3416053441977727 0.06418830949057062 -0.1998428761163998 0.1306830477324872 0.1391202979596478 0.4529091731012134 -0.1446157003666682 0.4358962341170605 0.08644203357368854 -0.08867530401801563 -0.5120811340035706 0.2381130654095968 0.182322993378588 0.05348965071702647 0.1170819346874089 0.08019216083419001 0.07552243569663072 -0.0684438818084938 0.8236200014683633 -0.1678402216367604 -0.04058297968371218 -0.2326005508457137 -0.3000381837143903 -0.6188481131311174 -0.3212977529986542 0.3054848536615199 0.02003101442925876 -0.003896575842105588 1.191761661333273 0.3339563486035031 -0.2411313538627305 -0.1368102385058602 0.2099639721724371 0.3302646100890316 0.279735322187841 0.1572125831554773 0.1621614227576263 0.1361991186281638 -0.2350784094731422 -0.2718929744151896 -0.04033994923534494 0.1344402640829349 0.08336221947186542 0.632881462354837 -0.008140666772563247 0.1272758672873934 0.196510462374386 -0.298640402793001 0.1041277340782838 0.5678023283084099 0.8473197976328795 0.006957767088195686 0.09493592588800308 0.207316106352868 0.1114048869767513 -0.562370393977032 0.4970552468469591 -0.1555858172176586 1.338651333090117 0.003053498157229314 0.1928128576865458 -0.2186155105026712 -0.3556388494918716 0.02312630631403897 -0.2670535650055857 -0.5414662108847647 0.01424970636943131 0.2005908144610585 -0.4205355698145358 -0.1858662228644941 -0.4665512175475525 -0.03506163734660313 0.2307098331622904 0.004312729534306625 0.2707557794007244 -0.4447926297528495 0.9127134278553473 -0.2995522399174017 0.1735995315903607 0.4425718024777047 0.4639329917160108 0.08637960391492526 1.264868773671721 0.4464640301029854 0.007233381035124405 0.859917942528008 0.8262969742469247 0.04341658666399524 0.8330641227804799 0.909348690733269 0.9999538158809214 0.1665464753088647 0.9694422871445725 0.3922478417557296 -1.781448255057624 0.03635886860908773 0.8076620929999465 0.8339334756445123 0.3860128823332295 0.6653047893610314 0.9185296346976854 0.6649787949751917 0.7825902558010049 0.2837037127269504 -0.3747990077395175 0.4214443559395317 -1.019361892775693 0.9171977008345442 0.4222361559174124 0.88407023912625 0.627550531980175 0.3566140855934134 -0.03223197651486596 0.4444754817930365 0.7198529871401895 0.769543155492363 0.4522789066520774 0.1552051873408984 1.087046685118705 0.7110449593763254 0.8551578745013462 0.4445553463014242 0.6336985233194055 -8.666585533623437e-05 0.7481389904150876 0.6099165356679989 0.8441275807205756 0.6746478056933407 0.7710196583450366 0.6015009959469434 -0.02078264166128433 0.9139622734605635 0.03649114793601069 1.081362510467778 1.294925438224664 1.364399995326488 0.470971101873399 0.7400190105755877 0.5699287605581952 1.004010254105531 0.3370758327320168 0.6131293665130263 1.066506465129122 0.75007755748098 0.2092889950274849 1.188379584369206 0.3927020524332166 0.8976178226409594 0.253591376201034 0.4788474086715514 0.5846703904079941 0.7458621662241995 0.9803193405410499 0.1373088202715007 0.7124319998825741 0.001392091297370719 0.005439118590977577 0.262311652226433 -0.1294387395986635 0.4247535343006393 0.4684777559177688 0.7152179782510809 1.122769290452707 -0.556571539027084 0.7158780094478909 0.4802045073119096 -0.4895153647051178 0.7811319855474181 0.9588152497290688 0.4196819710368834 0.4150388135584117 0.6482857515970342 0.6148584162460666 0.7321927360436169 0.06685955368278976 0.5237996850885736 0.5458979798565589 0.6853456078499774 0.6057305714252021 0.7063432420794981 0.4090613901948583 0.9384325755638672 1.422475224972518 0.7340220696204048 0.3974070122287193 0.4291073097870783 1.005825244363131 0.3983200619644611 0.5215660680357879 0.1392856995086938 0.5911512297254349 0.6914181916293677 0.6381864477415636 0.05556341432556314 0.7827245647227641 -0.4785100388053652 0.2664119832167832 0.6996726492098401 -0.1791803178514642 0.7268684014643656 0.6467564449413579 0.7068816095330724 0.2160304367590288 0.1248403590807845 -0.01822133643607303 0.8960340501583953 0.8322632672202777 0.7877349704122448 0.6127608453581013 0.9125600228691853 0.06050065398089624 -0.5814533023644182 -0.3861156330785092 0.7708663019767132 0.1414340489287589 0.5450846421816883 1.038949892081503 0.4174288596040157 0.6038789998183522 0.8250064010704237 1.11633891363245 0.6408815696753317 0.9088580805829342 0.7197199404882286 0.1852800172254349 0.7500042345480682 0.6006719336512956 -0.1501357023317271 0.394046806730308 0.5674422352507514 0.1304522816363141 0.5481581118181026 0.6648882198575188 0.4502490682344322 0.4188941087144956 -0.008164313196871244 0.4794370562070326 0.7040197300011987 0.1877608974045845 0.1910932773547232 0.7258251041884094 1.338647325753172 1.3061328441664 0.6580938987572295 0.3064888139023139 -0.1279381299652183 -0.1440544070168745 0.6855176548603273 0.8451296607375113 0.6977692058261843 0.3177587836652486 0.6277976642860534 0.6384007278203387 0.1512017510970298 0.1909791050629819 0.3696613702906053 0.5423921235811779 0.8189746404472315 0.1927059080312683 1.122373108673155 1.100572668977905 1.091448881157351 0.3864913664206477 1.29530959251389 0.8166113995733907 0.7601671784301625 -0.2943511055448276 0.4917982436421829 0.6232040439503094 0.8468610412307204 -0.05076225304297343 0.4823821786251634 0.9086852725808422 0.7046377387435105 1.242050893449605 -0.7175982302830722 0.7622778304151561 0.1487060867832971 0.6084926229448413 -0.2617814820307586 0.6290740543293295 0.2531324541004852 0.09820565686203631 1.193013779567532 1.494944274248078 0.2742953038453484 0.1402216542798266 0.3435783831149599 0.618862358885921 0.9138941426379912 0.7181690558115195 0.4396937723365966 0.4221474844300872 0.9678478824954682 0.1621521255176283 0.5450861789392766 1.068244577362342 0.489124356812478 0.330030433503413 0.8970494954352911 0.5013533174532329 0.309797772279065 0.6738041032434924 0.6227668595077965 0.5713027065599533 0.684893885478556 1.668225806816082 0.6859151920623758 0.8158011224900357 1.024473169971108 0.5605174526484484 -0.7576389300488497 0.9096875215211347 0.6175767372236864 -0.4161537577909997 0.5088495346896563 0.5476722851792211 0.6339601342061658 -0.006306045422751316 0.5799397740036482 0.4713993384867219 -0.083403128637816 0.4313779446126474 0.6510757062085264 -0.3388413420791607 0.2626113689451582 -0.3569649977516132 0.50820676068601 0.8229394466911507 0.4958243200831756 1.234369408535352 0.09407623276619048 0.16842663485555 0.2002091519936368 -0.07338891003129742 0.03331177114379679 0.06963817063415607 -0.05666121342626853 0.08655782188589418 -0.01629413987509927 -0.0332371260118988 -0.02941861722641498 0.01738958082197578 0.1508821012348263 -0.051592030018763 0.2067810222519689 0.05302820677562026 0.01475648246371792 0.03010009527862536 -0.1648663516653107 0.0986444033843535 0.02027653632157885 -0.05078959067312729 0.04004260342727669 -0.2910429917514142 0.009850227406214163 0.1586227363125275 -0.08533163081359228 0.1673847065407495 -0.0917935042165738 0.1496801847004745 0.05771147395976754 0.0631735402019261 0.02467558167012938 0.1587463118517278 -0.03870559009042487 0.05765655119519951 -0.05502951990483894 -0.3012790946012868 -0.1039280495160258 0.1063983049323238 0.1299338848245758 -0.003281233343411412 -0.06988172596811287 0.02815284661452942 0.0654020521108339 0.226333928109976 -0.8343562552992259 -0.0002100803877835796 0.02684384062962547 -0.1219953203155064 0.06685253359104405 0.1429352102978557 -0.005442904517195468 -0.09786802994119191 0.1052384838435717 -0.03206215886241107 0.2012229204149918 0.07186077200532717 -0.05932874527873284 -0.04265924879392123 -0.005029992987120322 0.1776225785436245 0.03883419764649802 0.08355110602415086 0.05911197404941929 0.02744318552902593 0.03314821072530822 -0.1156332194681546 -0.07758888949702572 -0.1623300604236726 0.0005639166436980795 -0.09556544175099256 0.194410794896442 0.1358244714355086 -0.01425257479015681 0.09425253927267592 -0.07385767853002158 -0.3628988036168848 -0.2146645370879713 -0.0401558831442899 0.2023585303653781 -0.09606575710809313 0.04378813468096158 -0.02788479011315963 0.3519728163930858 -0.0001313508494149237 0.008423859760551206 -0.268183675166824 0.2300554358278003 0.001880330496123822 -0.1476457270882015 0.01403761966618388 -0.0630537502894067 -0.2041918066761578 -0.04062467047844028 -0.1682476818663452 -0.1031124765729317 0.02918936363321958 0.05452945343404456 -0.1460370674413418 0.01368646691490838 -0.1899527644748964 -0.01702910558237531 -0.1713812863587018 0.07653604731612897 -0.06494812002629886 0.01790638988306824 -0.163161299634012 0.4186091936942767 0.03277851788802352 -0.2322537030083748 0.1982227211646411 -0.2272728848992447 -0.03318808364409243 0.297722163180038 0.1312673666716315 0.02707837278671361 -0.1045740404142386 0.06787272474274135 -0.0177580833569292 -0.05490839383191812 0.1308294886719442 -0.2207755143605773 -0.1089692820110456 0.04825438989315921 0.09779390536555653 -0.159821320130119 -0.1159093358272197 0.05504310471972555 -0.04369590214089984 0.07073691346077766 -0.2665016984645774 0.02388628555373233 -0.1331219373728809 -0.1315555893633195 -0.06908019445383771 0.2312935793190567 -0.08531872120563737 0.02223642415897086 0.001315907955975409 -0.003219648225799025 0.1870041029706274 0.1245742096237773 0.007212315883091193 0.2933352247807992 -0.1566204420992092 -0.08010624272851696 0.1786967634108413 -0.1574906964543311 0.1441132851146465 -0.06408174708644622 0.0717139431529894 0.03420951895790216 0.1331460517005429 0.04490175496779899 -0.1682940088864579 -0.1606290462842259 -0.1095605690760876 0.0703893083785119 0.1301886675064558 -0.06285998139635339 0.1072014485263314 0.1864957025207911 0.1656476217731681 -0.03771128064524416 0.05275133711277115 -0.05914498255328498 -0.2412207759451671 -0.04341537955952204 0.09853843308378572 0.08483301958683054 -0.02168065306972378 -0.05806995455294194 -0.1079272844064938 -0.1402367825155833 -0.2052195370357991 -0.1461590008469454 0.1674809774632851 -0.1171866023103899 0.1770773086824776 0.02092695476785725 -0.09157510795679843 0.08314239556065293 -0.01217193864140235 0.01153770504490583 0.3140648343578761 0.2396795677341494 0.2249844623340858 -0.244831129540522 0.1053719321222459 0.09361168043526424 -0.02266110585285825 -0.06167914271045204 -0.03705363258744244 -0.005263490772896322 -0.09384491064174344 0.03946683821921681 0.01845952648647741 0.06066962117487223 -0.02945166347639823 -0.004223972154107899 -0.1428458864404036 -0.08579148420848684 -0.3255186696508054 0.04540112842836656 -0.05576060017284517 -0.01384273119247929 -0.07305402602545237 -0.100654644786767 0.005329844548711019 0.02934153184211075 -0.06984474286547115 -0.04122717181903108 0.03290419475050719 -0.4133569367044335 0.06775182474313729 0.1772140735162707 0.003248483255291397 0.04296208909131485 0.3431333654275189 -0.03871745538008486 0.1766783407641636 0.0460523110090707 -0.07520341094887323 0.08284553027863532 0.1740913079788215 0.01809985546751373 -0.1094076772147493 -0.03925931024129927 0.1017545885000872 0.09301126508547274 0.01796674827291573 -0.08422663634004003 0.1314579050325454 0.009934515128281765 0.04736214721307783 0.1611831029076925 0.07469134378121381 -0.008688620866355658 0.04282709599317566 0.1323820885508907 -0.1107229385527645 -0.1133368256790011 -0.0459486059883938 0.1114174586694786 0.26349350716653 0.09818252537678392 0.03504037872886116 -0.1162312971726918 -0.1591063880725286 0.1555748484065873 -0.154247216803497 0.0490591323247089 0.0929430548766054 0.1178215250516526 -0.1134350274363533 0.07244243910134429 0.03998721194228382 0.1052494456143171 -0.04262946624192485 -0.08725504193066186 0.06265232603509548 -0.1557092102388964 0.1753979955966792 -0.06733339913948581 0.08715931476376157 0.02948267836490326 -0.008909144763984772 0.1563359655905267 -0.05026344163091333 -0.3099416532081774 -0.02252695372927473 -0.05322128241114864 -0.2313971425581751 -0.1376543196677307 -0.08065248195315032 -0.0335594557425421 -0.1087889341658553 0.1941952195731843 0.27335991085888 0.03174973422505341 0.1087183032023318 -0.07277191334214393 0.1455907995382223 -0.2001838849645602 0.03320370387695018 -0.06197912233764708 0.01410195340752804 0.01372864142911234 0.07664842345475986 0.03233615007575832 0.04381621891927816 -0.09361364408696254 0.006565063126730873 -0.02813253533513596 -0.002449654378479011 0.2924301339635104 0.1279139857807472 -0.1502568345185902 -0.07645015982645979 0.09421012372930569 0.3553212819567743 0.2494348310081459 0.0275948225891571 -0.1435876140693143 -0.05424799028852052 0.2409457651046875 -0.1426719295706738 0.1154469398619241 -0.05369085059805818 0.01897320528268845 0.01275747864292193 0.003689019913332679 0.02827455430048977 -0.07984699455104921 -0.06797394061366296 0.1212564950450237 -0.1960618137453715 -0.09683425857490388 0.1625091151723048 0.05735260304386951 0.0649558780618292 0.05393729792221152 0.05771647975747233 0.112328277324155 0.2010842151124908 0.1299469560205206 0.04705999169372613 -0.07344074375644771 0.1731101441377517 -0.08521136720832667 0.03103926449628581 -0.2369087256316569 -0.4057361910769023 -0.1802663568471768 -0.06830016428428791 0.02065208732647386 0.1304358199585746 0.009291199244945198 0.03131300120451403 0.2614638361003256 0.05726215855315517 0.1008871314671699 0.0776934461461917 0.2411573591019756 -0.108961076734261 -0.03143384627224154 -0.08869558332854235 -0.02620386274025086 -0.1944154308886958 -0.1464571280866085 -0.08211537452518618 -0.04525100538866837 -0.01480706021524014 -0.02622405533125793 -0.03222492058576161 0.05531493263417533 -0.09536230584591553 -0.2657933462823083 0.003511554192852637 0.1040045950633752 -0.0643319807725756 -0.02456055406858055 -0.1527368084273734 0.2039156838377204 -0.04614595459571332 0.1383953210780827 0.15335789427913 -0.09469437658861783 -0.06939368529485657 0.02259770448006768 0.09063562523011133 -0.03506968044716959 0.004689551738990857 0.0701692225806361 0.1524524551345627 -0.00887168264725475 0.0612795715519656 -0.1880743639803473 -0.03419202920347694 -0.2205024044827757 0.04316044181250382 -0.1860162859585104 -0.2952115152104636 -0.08086769540225973 0.1271400705169667 0.09997258260052364 -0.1484255014522047 -0.06001497231748486 -0.2055772052697093 -0.06461080274518102 -0.1154168540652843 0.2450778606519572 -0.09774093966489961 0.03361481812357046 0.1274484861655066 0.04658229224015976 0.1682097468429917 0.136374068518749 -0.06650469470777762 0.1454777819236287 -0.0157773352449335 -0.09863551419750645 0.4622932525711828 0.04710157842102276 -0.03443272187990695 -0.2832439423713189 0.1638567961588143 0.09442389295231869 -0.007576265363466159 -0.2879655869659259 -0.0743581323142373 -0.05042343051430474 -0.1172837493064219 -0.02559801558175114 -0.07067220311485925 0.1125519225973421 0.07585188970971808 0.2420419973543043 0.179652579607638 -0.1280025305739423 0.06818308740058765 0.07556006179131504 -0.1940808202141242 0.04345232351334239 0.112443249129403 0.0989908603263522 0.02088908872875778 0.05790370714827859 -0.01796710156257132 -0.2792180665172357 -0.210693400008256 0.111017788230398 -0.0298717163527407 0.003758143044481368 0.03771808997590925 -0.07308416037773038 0.07385573875491853 0.2317103066600028 0.04775874399765781 0.0008162012429432146 0.1167119728324198 0.2494491214796501 0.03502285208264171 -0.1993792192288653 -0.02992864390518694 -0.03988931355877789 -0.04845462260168403 -0.08525205846589816 0.06458784740877944 -0.1457621300482446 0.2372288490763193 0.2315088860789077 -0.02906439075567777 0.09043893831471891 0.06806004901408956 0.1773685381359586 -0.1002895339525629 -0.1030474940028186 -0.06685135721556766 -0.009494480748024404 -0.08233077107660457 -0.06795900382431448 0.01984187301448656 0.1879683707803882 -0.03264058325964003 -0.1029122265241363 -0.02568932697075629 -0.2521045791709349 0.04317657967759692 -0.05645267796085152 0.2238174134328292 0.1057869088465305 -0.1028237655007978 0.04697808684187352 -0.02692511781227247 0.07514191727511906 -0.0325372214288146 -0.114105831706632 -0.1332982644144468 0.143888682494877 0.1923741971777899 -0.009441879578553006 -0.05305916645584323 0.3655496397624907 -0.1047726696649691 0.09839744252839218 0.146262029875463 0.04783809674776492 -0.05961764261014981 -0.2303543547302474 0.1239376438255468 0.0902998117749161 0.1882512706033346 -0.06098355383884435 0.03492676899891604 -0.1279398887896151 0.07494299689706893 -0.06867091735070924 -0.1011853585030417 0.002110145973569824 0.1122651892907851 0.2245176403570509 -0.06151859448723768 -0.1905807695250177 -0.1042842346187136 -0.06993332850885071 0.04984860043000781 0.04047400265423855 -0.01068933422058112 0.04823808865646682 -0.1243800732412288 0.2316511829482659 -0.008037639587616455 -0.1778516712913076 -0.2052946682411498 -0.1687083974501712 0.03459655001895804 -0.006630064203240225 0.1006584019709 -0.04244122159478375 0.08159497935877594 -0.01266493479379308 -0.0288792121905993 0.1682379198614404 0.008728001158971396 -0.1555792526281528 0.1635304848911861 0.01630985404599713 -0.05296878016437333 -0.01537197781945606 -0.1207389398644774 0.09168035008466739 0.2925462203322529 -0.1598920960179509 0.1746087338012031 -0.04144942997718663 0.02055106366848109 -0.04187894692093149 -0.1177700554574433 -0.067864386769004 0.04982664374529477 -0.03477383810396281 -0.1026457900365856 0.02389394304207002 0.1574495591570526 0.09739512718297694 0.1106261083233014 0.00801404846251458 0.1613322442360942 0.08616735645223149 0.1859789764165273 0.2474742546739467 0.06291682520729272 -0.2030437971549434 -0.05382540471511167 -0.03812255457064273 -0.02457863077762059 0.1781307308649321 -0.01237139654450955 -0.00114844506680325 -0.1298759640158143 0.05817115711263673 -0.3530874584580207 0.1136046931567839 0.03309808390053976 0.08131867939377826 0.1831587802279089 -0.2034076083246985 0.04731554699004937 -0.02775319654121298 -0.1410403927210198 0.06762738875729439 -0.1061971942924593 -0.05350723567508586 0.07649038651118326 0.08921996521851855 0.04791840793953057 0.2480402245018685 0.06247923214066559 0.1280832419886825 0.1330282338987272 0.06854235337126194 -0.03975494973853664 0.02402641448972406 0.145413219878447 -0.00350099405653656 -0.09810997341003236 -0.1500518919795678 -0.275020134408748 -0.07505396684635902 -0.1457041606386233 -0.3393187166056383 0.1331571973328037 -0.110283055446299 -0.02562766355709294 -0.0558913701239514 -0.0540756304549689 0.02139833868657917 0.2205169077130332 -0.04415656578896279 -0.1615604785746199 0.03657934722427986 -0.09425250958089726 -0.02845521308420071 -0.08266720616518415 -0.2489411019473962 0.01551150807894458 -0.1277766426254786 -0.1691337461890193 -0.09273232958486907 0.0845434590416053 -0.0817751520007895 0.04361955426464188 -0.262435290409621 0.1442086180490096 0.07815467566285009 -0.2562333574160348 -0.2275846595756743 0.1486191045161695 0.2855672884338436 -0.1398290720386017 0.1731883617890136 0.009957407779010814 -0.09448514311850834 -0.1593999127820855 -0.03854423723202845 0.2118057062761691 0.01930063332334164 0.1506572182847392 0.2308755807189392 0.1442402790078226 0.0530624584100496 0.04252502304683763 -0.1317695271211297 -0.05924126515106762 -0.1097744994715752 0.004630728843213914 -0.106197543538807 -0.0998591148670562 -0.1604477184855824 0.2646560396434452 0.1480768751094904 -0.05162166226015313 0.02309799163797649 -0.2814022399810224 -0.02969994659345677 -0.1395323233630525 -0.268298986889466 0.4146699577137405 0.1014612430879724 0.1821610284707323 -0.03092092842970402 0.07234289713535821 -0.01041232905007928 -0.1474829460290751 0.03362189986808967 0.03201243006072946 -0.06957364486403016 0.0899445395012064 0.1935554792783035 -0.1199422743478855 -0.06353686911752858 0.1364805514280732 0.05643413420523858 0.03690107874732951 -0.3773551167868887 0.05649944329596363 -0.07684561102210888 0.04350290182599659 -0.07919882384150727 -0.2039564331696269 0.05629593168269784 -0.0298110525392648 0.1717338301460992 -0.01785708941003036 -0.2024444721638224 -0.07202577012263808 0.07234709133240455 0.06584590085102029 -0.1078776389011856 0.1029176823718753 0.06760606622634731 0.05016141636702857 -0.00339974708292407 -0.03646702814256569 -0.04890538611847352 -0.009125287635034774 0.05146855159228438 -0.1333717654033707 0.08210873107533997 0.29076471220691 -0.2153016200718147 -0.0584331067687738 0.1027377358039736 0.05707947341335337 0.1667090660184277 0.1976291448841175 0.02705729925436348 0.01796950700497731 0.06239382005319734 -0.05082587991023677 0.09761408457778654 -0.08940644377316814 -0.06202291503023948 -0.07776493497605269 -0.1336187903269319 -0.3230132731727937 0.2026037072666919 0.06478741284224945 -0.007670666588370619 0.02412129735770062 0.1549891824772819 -0.02400206066288015 -0.02870356578221772 0.2000413014906103 0.08609323070443986 -0.1638678325480539 0.01214314996945172 0.07249614106737805 0.1439697415499205 -0.01725091313445289 -0.1469376673305392 0.02595477068778226 0.0656249719102938 0.08198805995748196 0.134772323868445 0.01101929296878628 0.002542188397544281 -0.08349254207437565 0.1639297528158151 -0.3768610749072907 0.1193802020527624 -0.7697569130806157 -0.2212924141519562 -0.1681963510971431 -0.3145464746558496 0.06697730222334126 -0.03112173839743644 0.02307491489955696 0.1779478861056873 -0.1247043537880247 0.1007967404580479 0.2357077424255827 0.06232940371195738 -0.2778913971415855 -0.2392497454953789 0.08819940141049225 0.03000924825976448 0.332884041643997 -0.1303595676940465 0.03196268480698171 -0.1167470328550719 0.1892232447370581 -0.09112310014241388 0.1042936618050788 -0.2723908567928376 -0.007807977398082571 0.2543584458207669 0.04754557711456058 -0.02702586450417269 -0.11247871762982 -0.09908603805634476 0.1788009668591205 -0.1479500846715779 -0.1273106699193646 0.01493238263591523 0.006088374554609633 0.20848851010708 0.02960787768672649 -0.1871474654099734 -0.09261442327916931 0.112615633171938 -0.0477977622372065 -0.06855526883756495 0.09516219703305855 -0.03771138000669634 0.06536359649796689 -0.213911711083961 -0.0184447990250914 -0.1661792336858582 0.02508859994982515 0.1692517069104558 0.2603517069755765 -0.1611989560822039 -0.1185667809432909 0.08500005984630972 -0.1794990547496751 0.1082623427790162 0.2439491750351128 0.1222696381705514 0.1972043484281278 -0.1028242609241676 -0.01791131640789705 0.09985342344774374 -0.2370203511062225 0.1084863755220742 0.1243641419869446 0.004428783435230674 0.1166853829263854 0.0006417599748490489 0.07671629582011849 0.3423576057170364 -0.1286038917737745 0.01098050492101829 0.1378661619571264 0.03998660684459197 -0.01005031263122967 0.1086828262986002 -0.01727507920194267 -0.06986219185448164 -0.01427371425125049 0.0885045711825615 0.009883819379971704 0.1894430080463225 0.03484655823368423 0.214884581387276 -0.07130934093027447 -0.04340437887562161 -0.2022571389717478 -0.02501150279020167 -0.01278745513540494 0.06716704213823628 0.1851014372250321 -0.194051534415858 0.1788158973775606 0.03188963064137908 -0.08253812956052718 -0.06170568993328969 -0.05737790184588787 0.03885178012826314 -0.01354704450405351 -0.05551526757755507 0.0007761519328859751 0.2757262930258098 0.1703222680758462 0.03583533982022052 -0.1184735909773455 -0.2484053745821439 -0.08398857949189971 0.1018498084782536 0.06636905895411564 0.1124592143743815 -0.1347358818391486 0.1518183767349677 -0.03562442174682971 0.08418917643700233 -0.02920869049669517 -0.1745529973124222 0.1037633610308533 -0.06235644863091044 -0.01196390537163998 0.2731464249223822 -0.03804965905807817 -0.06399023174599729 0.03547330035402781 -0.01804496861815282 -0.1024977563933929 -0.04501010768300148 -0.04910453547920961 -0.01728294054364678 0.1572386315096017 -0.06734885497082059 0.1443934100694797 -0.1436615543943069 -0.09466828377217448 -0.004330153042636131 0.1913010148017029 -0.1368754415116969 -0.00208609509175319 -0.1312275937571549 0.07444739943629684 -0.2329053404501217 -0.2353707836953204 -0.4670382295590909 0.1676718329911781 0.1256197734101599 -0.1527130733158328 0.1394342797512396 0.005729875436846226 0.007173844000127672 -0.03541315470374997 0.147206034049565 0.272633085022892 0.01253635783119945 0.08281616319501042 0.117315213179572 0.106769320571199 0.07978772367351653 -0.05038937449415107 0.0364650804498464 -0.03399044141345221 0.008989999415654336 -0.06135875114513663 0.03701824757004867 0.08834510093795316 -0.1278252370645362 0.1574450128407891 0.1655971666411339 0.01154446735174964 0.02891216529006158 -0.1510320590519443 0.05204112594114344 -0.07593744680166088 -0.4138633883342974 0.2971610789853015 0.1032389457227845 0.042722708165842 -0.07398693402250441 0.04680673326062725 -0.1550704335285432 -0.02835355382795042 0.001013562389351253 -0.03415613998520712 0.1035506496875199 0.009702094458653499 -0.03053279813549682 0.01911176807061997 0.2017057983970884 0.1156356413096757 -0.1595455041757185 0.09890136233921518 -0.1778554275110646 -0.001807292015045894 -0.1906967933769538 -0.07257211703374573 -0.06248519921819782 -0.01249856873485695 0.09398110471902847 -0.02160325627512833 0.1245407646495057 -0.05232644551298546 -0.1790765773523827 -0.01897172327316724 -0.01962115402213288 0.2119706354113583 -0.151308906841208 0.03418825523820215 0.1537911475109066 -0.03595210444858842 -0.08491740445548025 0.0327406120855941 0.1256431957379078 0.08999861349306743 0.08760907484101546 -0.1039145574117216 0.06398995044988803 0.4298587134553199 -0.06102954219851842 -0.1014616362107472 0.07713828412731696 -0.1444581254181776 0.2307687752129999 0.2334921997037168 -0.05998435740010866 0.07889161262700368 0.003578566114233683 0.06149617990064773 0.1811831206069739 0.08757078068453107 0.03400379089270179 -0.131330229422718 -0.1777631994598496 -0.3290570890762421 -0.02835966373002344 0.03524444326120029 -0.1080349870804105 -0.01195764247083099 0.04683810773614416 -0.02230029202487139 0.1169618632296458 -0.08851404824049508 0.04255511064689352 -0.1562474583322839 -0.08122905722240509 -0.1704179301914067 0.08537830096966534 -0.009797310754328685 0.1414731548451054 0.04627016369924405 0.1377370974472886 0.2636392257951558 -0.2817031995233829 0.09831748910435606 -0.06839020807394663 0.1280549372926579 0.148760866245911 0.01898582240542632 0.0933142153584746 -0.05057622296644462 -0.2832701052078901 -0.1028754888172324 0.1403578542345698 -0.1833699674137213 0.02141267876055514 -0.2998055512704632 -0.06539238256887613 0.02530649266748932 0.06850147636661247 -0.001889913437682705 -0.05283586200400071 0.008108253139624917 0.08240507879696403 0.04560331658201312 -0.0699857999776398 0.1086942793177416 -0.04494937655217514 0.009100631658522327 -0.07290206367182554 0.1438805512608022 -0.04704044584113247 -0.1711495592485757 -0.1122872098904535 0.01936821183861987 0.06438997344154014 0.04255883302612039 0.00973666537978766 0.04875120868678354 0.01188379936070664 0.1177921661224317 0.1475238640848043 -0.1295175158050947 -0.06133022169748133 0.2547427913807691 0.05325537204173097 0.05816878790942419 0.07433569920857755 0.140841277859727 0.08534630320085594 -0.03993419415585034 0.07343852091749987 0.1447256254233307 -0.05922094075484226 0.06351622340299432 -0.2623012473648039 0.03452007042708084 -0.1016908036134709 -0.001857342774820718 0.08004858115146685 0.2262818666995441 -0.06603100555720481 -0.2053596158294931 0.05147830504666341 -0.1911422727890306 -0.09706700280155754 0.05689820173409721 0.4055416755968649 -0.06045015747968319 -0.07215582679990599 0.09047104314226406 0.08792909000318049 -0.1384239188079479 -0.07526870151890001 0.05430573940157028 -0.03061862974998544 0.1920483112105993 0.01361571257424987 -0.2022986330679549 0.08576621131137273 -0.1006769503700991 -0.04829909267755558 0.07445329021491819 -0.05785914769218926 -0.000288026838702963 -0.06039200903907745 0.04740370916698566 -0.09210572312764646 -0.008982897615944547 0.2089714371613931 0.003802995174447648 0.1282832576030806 0.07085126629284354 0.2575779573336598 -0.003245695368985666 -0.04645043743831927 -0.03592711768097116 -0.01501835018022073 0.01222520233100322 0.05324069261113746 -0.007630051770320241 -0.06519217637440303 0.2772122564727599 0.05421092793840426 -0.1795493423378846 -0.1043030228048571 -0.2096157493654643 0.03161970429654114 -0.162957657579994 -0.2029210829360478 -0.07873777224210178 0.01549336902258435 0.1195119318163313 0.1628895010184224 -0.2331677475272382 -0.1179024507595966 -0.06601264399183283 0.01218647724486012 0.1246464607113467 0.04651012132072902 -0.09122572593482157 0.1304489894385491 0.02460312741297827 0.1498139448125036 0.1294024976467686 0.002203916297196569 0.01400735487612577 -0.06904451846888261 0.02244753505164843 -0.1572124025941077 0.1379598358264871 -0.07694981373413404 0.001838132802904508 0.03666987814968007 -0.0410467125186896 0.06264110288488313 0.04978779246132818 0.2266903342914401 0.1355720700670011 0.01580792019937535 0.3992858367294341 -0.01517818093267168 -0.05642782056978031 0.04389038142601238 0.2769661938885635 -0.2094644741193975 -0.01666146892767501 -0.05902280139308708 -0.03686782691408207 -0.1997312222186776 -0.09509481309887594 -0.1845015267858572 0.06017821034235248 0.0803345684071237 -0.2231198267850516 0.1196152587195683 0.0006534887741532187 0.0693280567312691 -0.0999848616946544 0.04983856620229732 0.1166291413501656 0.01231080972420872 -0.1553107478114333 0.05633787454245718 0.0131816237445624 0.1469588545322484 0.004650806424363286 0.08171864806490213 0.007667240734114789 -0.2769519987192213 -0.07068737420795315 -0.01335151611115145 0.07934103151738113 -0.05277150963284991 -0.2204514564377206 0.06770385071557219 0.01349377337296595 0.06724870882152342 -0.07321971693821221 0.0689815566096212 -0.06556822853459073 -0.3405769780780462 -0.2079202715642693 0.06874620651005929 0.1014448664188468 -0.0899575247326684 -0.008633996238676197 -0.1318760825377482 0.0537456516068722 0.04143429301499196 0.05769910880675788 -0.02517423883738 -0.0243614922091839 -0.09878680065472323 -0.1673317736328157 0.06266832909058168 0.1621691492551542 -0.1143393628213833 -0.05096783041597443 -0.0329197429046467 -0.0235137527585709 -0.152886255965112 0.05093560464103159 0.0413186428856004 -0.1118916283589024 -0.1973663614814243 -0.04348765532040831 0.06031361729075244 -0.05149962671389304 -0.1186287422520261 0.07882155850965274 0.05028301695623184 0.1805170097025446 -0.03834334654557187 0.008261548203595932 0.1198297017706722 -0.1208120540244246 -0.06950348113101155 0.1907045386237932 0.08165601937573704 -0.01614123998677435 0.117706334185299 -0.1244341417566289 0.03239572909980223 0.2268711577146954 0.03526082219974716 -0.05546513529591963 0.05958464319749743 -0.1265909351671086 0.09675752816798573 -0.1207550094341743 0.09779956939124441 0.08801758535309609 0.01280399571287237 0.1082388938336093 0.03515949888262818 0.04812613344167038 -0.004193939645691374 0.08946323725090613 -0.09631050033452093 0.3075350177834638 -0.06634672135964825 0.07925227109529463 -0.1409078912558518 0.05056851836101016 -0.01700815625902306 -0.06037943269559536 0.09892857925799212 0.08207875678191826 0.0401805078370504 -0.04691411048033799 -0.1662293308415775 -0.2386409089095987 0.1586092106306007 -0.0204356756327099 0.2627466381613962 -0.1157412604526542 -0.03923621018256393 0.3193006336495912 -0.01181507447535234 0.1254963820836255 -0.04696239711554804 0.2112234161247342 0.08163203374064897 0.3712691614291372 0.2283796358644019 0.2420889510666089 -0.281673795428583 -0.1389834210322841 0.2943637510606202 -0.1975271758184561 0.1195817368993112 -0.2066886502902928 0.1033015872255916 0.1029312706874491 -0.02355045691314823 -0.03711032362622817 -0.049928013128906 0.0146609823226943 0.1068268367986153 -0.005238915606817294 -0.04449246861487063 0.0739165699188737 0.1175015099835593 -0.0243198957171463 0.07690788118031312 0.1096078461382219 0.05853528842874703 -0.1919779200916936 -0.05562009028453184 -0.03235072832237598 -0.09081991578068289 0.1105893907789839 0.00280376974543959 -0.07294169392772441 0.0593325025186879 -0.0829750906869218 0.2424132404060261 -0.04390007976447648 -0.0873205133527018 0.1913256250076217 -0.05789972447599219 0.1191838521977546 0.07900534964962966 0.1129964413566027 0.03845314612416371 -0.01317128353652406 -0.02754672704586516 0.04604311801172246 -0.02687915964511522 0.1191444452592128 -0.2392759431145069 0.01014355816765817 0.0580615715529177 0.0914704018910612 -0.008884776013316038 -0.04174903019054066 0.14955696141056 0.1336423278175688 0.02123406414716683 -0.1375520801272396 -0.1887516837003186 0.05191888771528524 0.2925449608997491 0.03245073533332654 0.02192667445428681 0.1404058648788435 -0.02028972204692782 -0.04913767326933603 -0.002364782444934244 0.00965292158421107 -0.04144962060783889 0.09228770761422608 0.04112390328947663 -0.3967713971507376 -0.03255896326177396 -0.09554414475173044 -0.05747590975060092 -0.05546432616814327 -0.000166187772064942 0.1062606880514689 -0.01455756280987187 0.08262341961431828 -0.219871104445319 0.03597020818609064 0.2315650637310843 -0.03958668798802647 0.07855633440888411 0.1030849307433538 0.006127776655955027 -0.03728892565704994 -0.07241346010985282 -0.08780590558102311 -0.01740091800666538 0.06585768438947309 -0.06094450606352605 -0.09395148275873738 0.1026817079466833 0.1932802332254911 0.162764433792275 -0.01324235558117182 -0.2206420718282719 0.009920626486896266 0.006057614362890605 -0.1411360490903299 -0.2164550302726913 -0.06939873057915501 -0.498731101783119 -0.00385814543924401 0.2153053789400234 -0.1669108972524112 -0.03539562399349915 -0.1272513348545094 -0.04215578131798401 0.2145207734956126 0.1331724101917932 -0.1098188629910101 -0.02168924754782288 -0.1106534730987053 0.1085657570585296 0.1251350262479071 0.05778852887854908 -0.04742373437661727 0.01797717897646522 0.01645073086220431 0.2664561481422336 -0.008392111472630187 -0.04528896930336532 -0.00216995855390202 -0.03916490066317626 0.02198220012055105 0.05555817935154898 0.07599306511099609 0.1362888427705322 0.1554237734967745 -0.04551202934879932 0.1069293564908843 0.1180088398692217 -0.1133149481407102 0.08121494920599147 0.2646036558026292 -0.2680881726094901 -0.1947311428580881 0.005697175228141779 -0.024058085666542 -0.09151138411650346 0.2790377689348492 0.00143556469283001 -0.01545180402031711 -0.1926163179636097 -0.07773657840772526 0.03577573808018113 -0.04838235032545117 0.03068462739239929 -0.1387770103835139 0.01909701250847535 0.01736687926195046 0.01883761066448333 -0.1129357845163832 0.09855311989182682 0.004589081249278285 0.18725128783944 0.01550393360272544 0.1093913651796013 0.02628663360875518 -0.03829388673206289 -0.105746267779198 -0.142118170935968 0.05449591018541769 -0.151018406625868 -0.153723790640134 -0.008451157597419039 0.08925480787582508 0.04699635773247333 -0.07590012352052174 0.06014588467749803 -0.03237137826702115 -0.3183451703992329 0.0875859134231752 0.08964738038496677 0.2821280918359231 0.005662018097984336 0.03056095026899291 -0.1882400506327246 -0.08449772351404176 0.07991338212418417 -0.07326873742972478 -0.1863414254955279 -0.01319297352559068 -0.01449668152337194 -0.1261539684963731 -0.1883329468916585 0.1423233693263666 -0.08255587111893474 -0.1141101550114962 0.03695196019278594 -0.04072939643458205 -0.1816130657213404 0.08586036121206912 0.05124622044257115 -0.2251892885789057 -0.4797212360798791 -0.05549447976051809 -0.1733223006890926 -0.02810359722888719 0.04877735500991873 -0.191666458982011 0.05942958732370112 0.1671513379397107 0.1094287220875946 0.1247558320833959 -0.06563015056961696 -0.05701115550338574 -0.03552623205876849 0.02987451744304551 -0.171299712843539 0.1255319518586041 0.177864398040107 -0.0907314208486666 0.07818614115408005 -0.02216558399800002 -0.1202248200307474 -0.03927548598722567 -0.06580683250926828 0.04584251582050356 0.2291711708987619 -0.2292464328148839 0.005712488594544227 0.001411987182642534 0.1437168015077329 0.2207250968630461 -0.03040152824312825 -0.09163135049325133 -0.05553346446533728 0.2893526675049227 -0.04377551385726801 0.2571736983640531 0.0315288253194958 0.07015499073129612 -0.05599623927470815 0.04752956918115923 0.1600765040849279 -0.005855937437852521 0.1274030475061361 0.1664775049021864 0.01529660960014022 -0.06400075394324004 0.02249443258044355 0.007313269269809203 0.06226120378549171 -0.06515344424510049 0.1568628708771108 -0.1460478268205407 0.003509720329546019 0.3147860634711218 0.1067427958971875 -0.01232217623658509 -0.117080571480174 0.1114377531566743 0.02986809717666046 0.2917139776371681 0.1488158375149453 -0.1020770229650464 -0.2724511974927713 -0.06846503524543952 -0.1216571076104225 -0.1563323908332596 0.2482538139343893 -0.05330376867448976 0.04077766875038313 0.1289781526280537 -0.01950364386916388 -0.03131871028591678 -0.02393909763780365 -0.04003190736139422 0.09177588796181167 -0.03135089689512027 0.03817521828212919 0.1550290015856702 0.1491135104682224 -0.05776170485294529 -0.0606283708625731 0.02420577837027465 0.1096046698416483 -0.06832501046485764 -0.06025481187237652 -0.05713198949008493 -0.1115617925067333 0.01732638989195593 -0.05138089165158981 -0.1726948431105822 0.1561199121907351 -0.09347701987379298 0.07120136997733857 -0.04899064095725596 0.01018054910601599 0.1420625571236766 -0.02194993127520828 0.165452099447372 -0.01742395167695984 -0.05992497363119213 0.1033815810803336 -0.05653441988631364 -0.0388155111464341 -0.0166015167043805 0.0274138125074293 0.101805240598185 -0.07729067099646124 -0.06188927731361168 -0.0100185248292066 0.03460900093152912 0.1226685406386579 -0.001757099748671331 -0.08839696288114754 0.1588837040266128 0.163601062828788 -0.13826633220042 -0.08152173912197842 0.008506746394785361 0.07042556131263193 -0.1828657545808618 -0.03848807844263183 0.2606417611079284 -0.01265122240910012 -0.09397630781127818 -0.09748902091685237 0.105866264912152 0.01896539015218655 0.03727952419280388 0.1356579535941467 -0.2376481909952 -0.002655511764697968 -0.1743034157769036 -0.03230914849792802 -0.04919283048200387 0.04992690302660464 -0.1289717379605334 0.00102616320028599 0.03478821231647943 -0.1769792199015237 0.05763456781085124 -0.03671818539191991 0.1008802439141509 0.1136148027650005 -0.002567505373993753 -0.2756069303559292 -0.158115294759348 -0.1086499956201196 0.002846788351640035 -0.1189305369308229 0.0311792838299531 -0.2239770597758744 -0.08231036079318614 0.08862385163541975 0.131008945252178 0.1907787404319429 0.2709292772826193 -0.08307084287653484 0.03446911300784438 0.01750728010709182 0.05835275312271333 -0.08604719696999655 0.05547809569775107 -0.2553890780051052 0.02715648753903925 0.1507507653991545 0.0519486834894145 -0.0210808836261286 0.03290650143910099 -0.1270844254729972 0.1132300562737093 0.04159665516818557 -0.1948375096323234 0.05739364360134825 0.04914049978626839 -0.02422684163367515 0.2950433175222979 0.1519390042565463 -0.06276568150556379 -0.09561077032176436 -0.0008378532471674976 -0.1806188062236245 -0.2420778639017236 0.06189512960544813 -0.03872342988893834 0.2508174006510015 0.1248760017255552 -0.1466699934890679 0.06194452024505161 0.07994076107156113 0.1541741990563387 -0.008523247745018094 -0.3862841820194676 0.06513823835110087 0.06359201764578154 -0.0009936793314582546 0.2027632786253278 -0.0827394422553194 -0.3187135152576908 0.04662790662305236 -0.01161450013403172 -0.02961184580446037 0.2670706588229759 0.05214539555352883 -0.1203018171547773 -0.4478927277556519 0.1427811915174739 -0.0009452916897276462 -0.05958411841878353 0.03568905427264147 0.1088453123567649 -0.0868523306888092 -0.01843269790782425 0.02669644607712607 0.1368932942382582 0.03779970347539997 0.02211521663639291 -0.08950440177402666 -0.07478127170514788 0.07233690342985652 0.02634823503006173 0.1406981381324208 -0.2896216362595403 -0.1121983138388147 0.07196330086151316 -0.1553042879140343 0.03637390451718276 -0.05687159695765016 0.06919151073825189 -0.01805904709167047 -0.01148728056394477 0.1091348561167036 0.006320162599893106 -0.2796085243257688 0.04739100273532246 0.09121740265040824 0.02640660763106167 0.1243318128016849 0.0678073515026652 -0.01969988734011586 -0.1169717251247893 0.09389876178033754 -0.1723059167997276 -0.03750938125555992 -0.05872270975314106 -0.06340521882151837 -0.1344028859715276 -0.1588560293136797 -0.1688707989086347 -0.1257175256489785 -0.125088715520732 0.2054866846531306 -0.01506271934864957 -0.1193881940972365 0.006854672134935615 0.04752726548117205 0.1124313047487734 -0.2345716043131754 -0.0966784526190799 -0.07068464232571015 0.01736857233411952 0.04488167006610325 -0.2843837732643927 0.10716574280311 0.1666004751499099 0.2857988321304801 0.122947875889353 -0.08663222981928188 0.0212658468879969 -0.003613203808198238 -0.09128479640783342 -0.2531883278119825 0.1815634810104498 0.08845489272367121 -0.05233137768136104 0.08031762182304369 -0.2155777146411779 -0.2564823595474058 -0.03019130441808567 -0.1797136818846594 0.05377877052887539 0.1096448138915206 -0.1479548314371374 -0.2690653689962727 -0.04255533440371613 0.07790825620708147 0.3199944979618799 -0.08049724751558474 0.139398263929424 -0.03513301979550565 0.1557230323367141 -0.1043800105403567 -0.04915709973821722 0.1740392832053469 0.07850578662337659 0.06900135804453329 0.1543174396321019 0.1913021203470564 0.03248262135533719 0.1362352004509483 0.03820012662259802 0.02465376305200654 -0.07973176671490013 0.06660671848250377 0.18871219108177 -0.008093631404408198 -0.1767246417538758 0.00990266015180156 -0.07132583087173691 0.02628871489469766 -0.01151204088869364 0.3209454112733626 -0.01572949438450685 -0.1179416333477361 0.02767486872290684 -0.003196235972921697 -0.2018400719502092 -0.1443658218393715 0.1409700805900654 -0.1374062844011678 0.1566387766450519 -0.01464142325283152 -0.09386910081568539 0.1940871551473544 -0.0009229305722659523 -0.1003453469074656 0.08707272424241898 -0.04084866700580461 -0.00835848653063914 0.1374031742323946 -0.05941076295697365 -0.05361274680393424 0.06005774690231313 -0.08728264413619945 -0.03182871408833136 0.07761623662150324 -0.005465534469940489 -0.1435986443157352 0.2229362210983785 0.165694452920798 -0.09733483826165971 -0.06192171203911068 -0.01201138599168869 -0.241464183207144 0.01447397517722392 -0.1580508339638638 0.1239975988161607 0.01318763966961383 -0.02318521075282481 0.1253227011275004 -0.09051730063913441 0.1010992941034518 0.07236374335157782 -0.06829558579670918 0.08802095769461238 0.02222150657255103 -0.1240027586042427 -0.1127318578300772 0.01058998788801809 0.09129799024348864 0.08406216402634781 0.01469513470310243 -0.09377037590621057 -0.02957921396339794 -0.02224655259628815 -0.1256856814296717 0.0327859115036057 0.01735739917724188 0.2321654126178073 -0.05301387703579736 0.02086166570938919 0.1808990770867712 -0.01100092518093565 0.1254107013013275 0.07712432562303929 -0.1846333616553162 0.0354631792700261 -0.1237949044698444 0.267900287597566 0.02569258517592024 -0.04495669809550676 -0.1168890230323697 0.0336975646046045 0.02125973110491677 -0.02677683817964055 0.1197209867783265 -0.0777858807226266 -0.02425547448365667 -0.08487292490805882 0.06291808994433309 -0.02204340304934895 0.02377435051419018 -0.1718773573170014 -0.1011571579988193 -0.1208029255107849 -0.1441164927563105 -0.04633424809550369 -0.1422415093881239 0.2088533311413101 -0.001853172596141906 -0.1295936882431212 -0.1282184353297419 -0.1794144878161049 -0.2040305688976426 0.1399649813297814 -0.10764262620441 0.0616301297066474 -0.1474197011387816 -0.05050426102121119 0.1653477333539644 0.06068948659719262 -0.05325459514810765 0.1373242105620577 0.03880137337106698 0.06017715543512947 0.06211813928644649 -0.04191313812532114 -0.04513341992023757 0.01914286643644276 -0.04438971983871555 0.1387577841756764 0.05386357276079355 0.1042718732060936 -0.07513626164669096 0.1786960028553379 -0.05637216233733611 -0.03720214170877462 -0.1774340291717748 -0.2549011743869734 0.186879844725118 0.2833063725183637 -0.01880086739296004 0.1769374720509577 0.004564930889063233 -0.05798972499647807 -0.2747641741293661 0.027553184454707 0.2632412184052024 -0.1095551353914822 0.06916048702527024 0.03080355376703287 0.2165981712802113 0.1890893856843088 -0.08659995312896483 0.1069192157133039 0.0454950752455283 0.14187715557712 0.100672848815481 -0.124773924250272 -0.05335187514446071 0.1547592109188055 0.002641240342700039 0.1258711227814993 0.1206538733123445 -0.135791533512724 -0.130918815644207 -0.05396861570570471 -0.09140332872931331 0.09794058035021644 0.1588423831952299 -0.1616346066767531 -0.03167509234642521 0.2413978277122087 0.07297159339659552 -0.003991980625359775 -0.01341487228926374 0.1968283025420433 -0.1106224029092038 -0.02915201476535762 0.01299576259906967 0.1763479829281023 0.02034320445669416 -0.007975760651902569 -0.1878436437209434 -0.0511284052070836 -0.2054486303338899 0.08939311648359854 0.1069566349676425 -0.3163184448636494 0.06701973428191561 0.01615250637797392 0.1795215061720997 0.02017711076221559 -0.3561757064215255 0.03738435948083851 -0.06283102722927891 0.1113950871495966 0.1520074264787128 -0.05117322488552872 -0.5240923053401126 -0.04551984233766806 0.0596401451452126 -0.2693136769181011 0.0703840776719498 -0.09642522868000397 0.03163871728561705 -0.04684419890810169 0.1078803552979049 0.01765144204601502 0.01842808628453179 -0.2247013264156105 -0.1572500241274349 -0.1543378466013791 0.08844108358348482 -0.2226388530497707 -0.00802841258335605 -0.1282277729831008 0.06727365881224892 0.01015621985250618 -0.1004970234627534 0.102732150328305 0.1667404221737363 0.1832359281510589 0.1395964845806093 -0.193799724903005 0.0191596749759875 -0.0583700053589912 -0.04116152622862413 -0.08204498601953146 0.1714138796188239 0.1756244579872559 0.0390069765786883 0.08129445383792273 -0.05658080254966814 0.04682762892287125 -0.09957164218093659 -0.05143646723972818 -0.0480872450150412 -0.01121554980364516 -0.05096509640375396 -0.01891053018629413 0.1746410924551564 -0.1545065355810867 -0.2141290021524509 -0.04098056720418834 -0.09707855006958718 -0.01746835336172641 -0.05827000757328446 -0.06903569742387033 -0.2576319419162038 0.0556139976498211 0.01293602538646877 0.3203057499851356 0.0727244748608836 0.2165980582221478 -0.05750323110572632 -0.06969582175803714 -0.03590660607489582 -0.2687061807209369 0.07258616839256866 0.2460848343887318 0.06489755354914239 0.08224910815883786 0.03288801465840412 0.01926730455644425 0.118500161428956 0.213596783357284 -0.1274323690677871 0.04630213557499899 -0.01416508956449309 0.1685802397578535 0.04117581547460621 -0.1347008843688866 -0.1925124798927196 -0.02819143318336916 -0.1353145214126829 0.01537443611510884 0.04182514849884943 -0.02488285487230305 -0.07523371621282608 0.0456453497418188 0.02320659688479692 -0.09184485017807738 -0.1021420570691875 -0.09019704903516369 -0.1115790792593659 0.06726113707953835 -0.09485300922229126 0.08202262147375204 -0.1951874480726342 0.01751795456052687 -0.1731541700471953 -0.04642163512287122 -0.1274507602620129 0.02694469481270243 0.2510538147171613 -0.1473392223633127 -0.2314405061445512 0.1459719401193021 -0.1136173010133768 0.006868532856616406 0.02400895591422874 -0.00140889397098312 0.07962126481284934 0.2570673940922909 0.2279872117501605 0.01066635433307934 -0.2524576715800825 0.04402546277869483 -0.1891818569796238 0.02491066047065214 -0.06917415231101073 0.05843516739505776 -0.110344662084734 -0.004722266458798184 0.1407029769762403 -0.0681792501302895 0.0728679211868621 -0.09338393260688856 0.08571355216912344 -0.2519953195513743 0.04142534451424247 0.1759653276726652 -0.1958231103718363 0.03723831697901804 0.2646310160443111 0.1403640832729521 -0.1018280651378107 -0.1731322699109423 -0.05120455192347869 -0.001620598747993561 -0.216583888020244 -0.05044656277776705 0.03362227898942541 0.256463105846393 0.1215738701026295 -0.005237128515646541 -0.01022664676506063 0.1004277789860339 0.07712816122879944 0.1078374290208138 -0.007194865777990773 0.1876551699642019 0.001667350295852293 0.02867937541054041 0.04517293409604164 0.0937114515641464 0.04633236924123863 -0.1006494697492672 0.0003997197461487522 -0.1220211830864603 -0.1356895851520392 -0.08619539425047287 -0.005520532485616399 -0.1622350543024395 0.1329943913962352 -0.05133839832939446 0.06049281304004884 -0.1380009534292445 -0.0307093703266272 -0.08189895899890301 -0.09582785752375117 -0.0133575494018252 0.03102839653371089 0.1113109805250389 0.02820468239319545 -0.0905428916681274 -0.05018668575904902 -0.04851622012133064 -0.1322551094153764 0.03595758536261508 0.05241541823993601 0.09172724805967761 -0.06604359102903488 -0.07165658896802339 0.1102900466151579 -0.04752197349369227 -0.08734046422401183 0.05591510956639406 0.006237028274019086 0.0857669005057204 0.05031680710561896 -0.1452009830004442 -0.05728141241003363 -0.1012379336542239 -0.1854106056175622 0.04013411401239173 -0.04897801504707037 -0.0637802936013028 0.03357712506802858 0.09828752550925135 -0.07136897380156022 0.08090884282108722 -0.09502012443304242 -0.01161741856411765 0.1226464776813545 0.4485759372466924 -0.05015434808813306 -0.1744905663010217 -0.2358783567264802 0.1040871860255075 -0.218228186542194 0.05162613366267214 -0.5825444454694714 -0.01614290196515434 0.07456015276006371 0.1418633731961386 0.1795583698412907 0.03381238488305453 0.0641206581459849 0.001235302052984547 -0.006611515360967271 0.1564581816138022 0.141106710505395 -0.08431365731908896 -0.009499002919999685 0.04644193436697899 0.2307887457874641 0.06050815293330995 0.1143476769885243 0.2110614716643876 -0.2520013744550498 -0.1146434935033729 -0.2128355272346812 0.2014480460676106 0.09181113139079973 -0.1056804973878586 0.08361396201986253 0.2518627168471895 0.1044295499804132 -0.0406760446165754 -0.07860006405826045 0.2528533561426618 -0.1517541335513065 -0.1025524098656186 0.05673539907367186 0.07782671150468863 0.001871582368684291 -0.04449885254367604 -0.03126683895503429 -0.1051607436456349 -0.2244141685950463 -0.008170682034190205 0.03879446505442504 -0.1628287294733831 0.05642526266835852 -0.06253827842498424 0.331488732904181 0.001724232810947692 -0.3905681921687634 0.05895642348297336 -0.1119125616668234 0.1662986332997487 0.1434946617819624 -0.07435548186449015 -0.743880033080766 -0.02644796415833742 0.04367084422748885 -0.1834752372963459 -0.02560951051033576 -0.07631670614634718 -0.03255868057230467 -0.1167436877537004 -0.02272147536737479 0.06411591472749349 -0.01711449495783932 -0.3044626495788554 -0.1025855568381658 -0.006429097263303756 0.1276193682095619 -0.04285743679608941 0.1192362093919868 -0.03412323380836676 -0.08479576892930732 0.05299622364885363 -0.07586777001477925 0.1309517244008993 0.05149356145811348 0.007873673151187054 0.04735582667900365 -0.1654823590931954 0.08008416420393097 -0.01715419516027902 -0.007799091890092146 -0.05088691456518094 0.2452605269787489 0.1546863842593431 -0.2897062969332454 0.1188305054507049 -0.07850503665204994 -0.1006540439965697 -0.2558986811122662 0.01548507621356168 0.07329585410572076 -0.1370082978264821 0.1387774740885949 0.02955181581980287 0.1444144371420732 0.001837120217595092 -0.1578832986296675 0.07882715158627783 0.1928696950352308 0.03224946199772585 0.01341000025888617 -0.09598925318276851 -0.08435593451679063 0.1228162643816339 0.008015286774561025 0.0228881821998962 0.1570899536013809 0.1095158523606059 0.01446583578714654 -0.08895128018728235 -0.001236351104625074 -0.09216526425223315 -0.06910048027843081 0.1502827463066932 -0.02645425706844879 -0.1538238485937606 -0.09373051983743103 0.02993235896387325 0.05922767058409489 0.1931404783602182 -0.2580179446158961 0.1319803253620105 -0.0610923011835895 0.1136388376870395 0.04235085121945019 0.02087704833914409 -0.1097924577012104 0.07209542544760648 -0.08731372091508521 -0.063858737454594 -0.1110311004225679 -0.03257993814386672 -0.09986316072865788 -0.05838994288214209 0.06026660892265399 0.06659362531488025 -0.03691176136829286 0.1723615161788895 0.09643056698971313 0.06167212184878227 0.06048632545906647 0.106561067003565 -0.2359146628019494 -0.0856503881291492 -0.099643415633156 -0.1299553527488587 -0.1610609809668669 -0.04330429826958397 0.07109263745939573 0.09291327612335114 -0.1843812962021002 0.1013587594778311 -0.03519803794281224 -0.1078463848683327 0.0909954873993804 0.02351873163478438 0.08716975720936852 0.09728441875793437 0.1864120685550244 0.09595823902078447 -0.1451589532866548 0.01640819868298184 -0.0561591030940127 0.1338230159271746 -0.01851799790476288 0.07011706705491963 -0.01918525560968478 -0.08029296938813098 0.07278078422728794 -0.1135486288809505 0.02457002483323539 -0.0596770669792222 0.2358769742082185 -0.2400165177972425 0.08009438860952148 0.2424825159792996 -0.008410432856421089 0.02011138695890911 0.1780224878404248 0.1424454598257794 -0.05871314571253786 -0.09512264323598589 0.1371897600998222 -0.09056466252358075 -0.1854181803259646 -0.2109512305338813 0.09803982108185796 0.03598251874938754 -0.04517478104099741 -0.04854246064512729 -0.06171789472616177 0.07192616766614239 -0.03708658598751851 -0.01567456113454775 0.03187402259986397 0.05677710270208582 0.08741110014562621 -0.2753834455814234 0.0402215068984251 0.001435929594174574 -0.03611589497412362 0.007823493431096024 -0.003238811581184531 -0.2068030895775749 -0.2594894484833802 0.2144522619103169 -0.1280545220519629 -0.134423044690689 0.0913785824982643 -0.06794205571613246 0.01436313583963213 -0.06666843135356472 0.00838343184753052 0.06888419434911967 0.2325929290607184 0.08681794826751776 0.1593828431302552 -0.0971809489452081 -0.005808009595889368 -0.06696428436631012 0.03116172093868571 0.1198006010171893 0.1584776439167764 -0.03353484654982301 0.0926434116160393 0.1045065496719981 0.06503528577764309 -0.05100480215807208 0.2010842588680187 -0.0726139584172765 0.1975982144772545 0.02064828836619831 0.1142919992778068 -0.0463195959649861 0.03451511108502742 -0.08986324087716212 -0.1767873512546086 -0.1247911188277607 -0.1398351533981865 -0.2721859928562543 -0.094640776176979 -0.05921379350247209 0.2545959570106689 -0.1106979387583882 -0.180340863682782 0.1531141947425265 -0.01814999583861644 0.1670941187078815 -0.1504044341610136 0.368068076988876 -0.1145625107919577 -0.1011895529635533 -0.1876994034146107 0.2110545262545824 -0.06033059066490179 0.04113581812067183 0.2507545279143593 0.1255650058849573 0.1443145310492009 0.1252464690064321 0.1293592914089819 0.09720477364753313 0.1440814100814087 -0.1511182191743992 -0.0464273303555949 -0.03428424282005958 0.1791273628939941 -0.08208633904799664 0.04671543365037168 -0.01056477561293342 0.3280100816934571 0.06032636234666212 -0.01359310216640612 0.1919570464308755 -0.0873620119777706 -0.02203560019350116 -0.09774582328771275 0.1148398538982248 0.07421430013508032 0.003495306017029558 -0.2222163726228187 0.08997589458793422 0.1696783366534761 -0.1255260657153987 -0.007072320209895626 0.1276347303962281 0.1292982787448447 -0.05208297537677408 0.1479841311882314 0.04822554642615769 -0.131141197759718 0.03471180741801515 -0.06440961118901059 -0.08722003818511585 -0.1441997814585887 -0.2274125474961627 -0.097169489440387 0.02773088947569199 -0.1070466485408921 0.06902503587091795 0.1311954112343072 -0.141284481173385 -0.04546677580696161 0.1097978230835506 -0.08057433169438499 0.06757099048783766 0.07174731709769074 -0.02851849012567256 -0.3757146075638175 0.2328719117865827 -0.01005557396472817 -0.1243003275634562 -0.04595478016296822 -0.044100267647423 -0.138084140211752 -0.15511164224655 -0.2178613785661863 -0.01691927442642227 0.07818793707265874 -0.1341944968282519 -0.05851098802706113 0.1045252256364899 -0.0499496819284715 -0.1902526701601442 0.07196166882139192 0.004072779842996579 0.0160270595289024 0.04695225902353219 -0.04911191224655075 0.191892831327582 -0.1444945058834267 -0.2202853904366343 0.01006205721444285 -0.09504504271660796 0.1401082316439268 -0.05821947588738329 0.01428714349737697 -0.04498780531374046 0.1007395382555364 0.09608177306795511 -0.1427377335384288 0.03727287969905327 -0.1777903785780568 -0.09485022788467795 -0.06500052025496814 0.09284764092538193 0.1299617494659396 -0.03042087319097689 0.1796893932241038 -0.01073288538730337 -0.1049688058609258 0.02829700538848619 -0.285330643098704 0.1050696416419029 0.1765518138946547 0.08420673001179661 0.06970816483959348 -0.1530962034710843 0.01236764325505881 0.07420243094544632 0.08905349755618586 -0.1293428263821592 -0.0263365993699912 0.0004047189157212132 0.07588363274246439 -0.008464820354582242 0.02020185026750284 0.1244787239784793 0.0159723831505977 -0.1982292587525092 -0.06697682688310315 -0.03613463148953804 -0.1652780548885115 0.01438819929671103 0.0436618379304702 0.02491627491504792 0.008404475967987952 0.1148907444943133 0.0311937852377651 0.1303962606770908 0.002384966791908356 0.02716251179498693 0.09946937530571996 0.1321520060976324 -0.05438432657939025 -0.08340889495867501 0.1640467519825544 -0.09103333261515581 -0.1638472616753343 -0.2122019615013457 0.103203938253611 0.2671611132079018 -0.01586821097307979 -0.07537445417268018 -0.1206608893246473 0.2694225111514082 -0.2159889392117946 0.1132074492364467 -0.1044352839100796 -0.1527095029381632 -0.0009496288578566223 -0.06634437061701783 -0.1224661849351588 -0.02970341668303083 -0.006863288596291386 0.1175260476012279 0.1070414474675595 0.03480914513317275 0.2048299438497757 -0.405880839130927 0.06268356595061511 0.01874398055316319 0.04569425390720752 0.09017430723950665 -0.02460268063576581 0.05359884760024468 0.1460005901313657 0.05197464448943807 -0.03592257968612141 0.31299478823909 -0.07515948363432123 0.121321084016924 0.01263599841656247 -0.14858359150611 0.1195877374674842 -0.198524701721824 0.1120248835720462 -0.04162710216587762 -0.05290302292867322 -0.02598187473458077 0.07997285485503414 0.03011143126414827 -0.06664724864047192 0.04072436580352223 0.2088715140920505 0.04210225486461003 0.07918849123899123 -0.01107329084409914 0.131163883735306 -0.1444678082212088 -0.06088597297014842 -0.0919600166476546 0.005007240825029527 -0.2956838950306138 -0.05916747318376518 0.03896048279150401 -0.02436983603028851 0.001561980004824293 -0.06762785302309214 -0.07194296837988168 -0.05202154642029872 0.04532706723082909 0.0473193172319981 -0.3924823907934017 0.02590495826419959 0.05103234693170136 -0.06220339572621125 -0.1128683942228634 0.003621463285539008 -0.125072068400005 -0.2535233192296045 0.2237082094153318 -0.1238662605915766 0.2542353893090576 -0.1260957503641726 -0.04981271181918571 0.04375474922843847 0.01519398152190367 0.0924876875703777 0.04965081377876439 0.3962923002924593 -0.03785891536828403 0.09987244387398275 -0.2329998276014797 0.06861596344868606 -0.1040800953732826 -0.003137478320763371 0.1707473857482956 0.1509218157310757 -0.06206676290586881 -0.05765075673333001 0.1572077571817325 0.01517142860401577 0.01466221116289312 0.3175028771696407 -0.020441517847501 0.2053511851279294 -0.09067396104122771 0.1236767207071872 -0.1986350982481705 0.06298112666774777 0.09385591886792403 -0.1223713511164094 -0.1147382813740545 -0.006883009107352202 -0.2168789477452491 0.0524124558261823 0.122901070985294 0.3646057870511434 -0.06174545711317331 -0.2560780266664009 0.09921395672527523 -0.04178700799421948 0.1014635597977281 -0.1169927589196547 0.3439174515523335 0.01199432919263614 0.1304317568047994 0.07617103031021842 0.1044847840807115 -0.03219950718320975 0.0233797466830066 -0.5104169205393798 0.1534422146750405 0.05325027156780688 0.07233797786357865 0.03979979991638729 -0.0605452521243781 0.2943625825384965 -0.02289376076416253 -0.1454518292546651 -0.005984339002386861 0.2320380109932727 0.01385619917191731 -0.05491483316000891 0.05316412751874714 0.1291916865339855 -0.07783323568050116 0.01374474890451888 0.08150744205473696 0.03674178822386485 0.1262867643310211 0.08388804589784947 0.07542899814341333 0.05635966174022341 0.1209635540242566 -0.2382066524199452 0.01826229900511447 0.1312058722121623 0.05683785886574295 0.03431733966086457 -0.1660524153169268 0.2202586177883086 0.1049052258434569 0.1142853214472117 -0.1032444775412538 -0.0968140206878982 0.1508012553582358 0.002264266730459902 -0.007063442686006598 0.0090916702830316 -0.1163386870841841 -0.07373009327495732 0.03975460612836063 0.009278149561383859 0.1248891694484603 -0.006270014750222492 -0.1475526597316988 0.09901729400060909 0.1341875483226759 -0.1259743022982773 0.05049364963162846 0.03708603329314558 0.02189707412706336 0.2416443444012894 0.2759794105981593 -0.02951365353365954 -0.05623552805001195 0.1714076105551529 -0.03377215056195945 -0.179444129915509 0.006621483580500045 -0.1737789320240277 0.05809024247178902 0.03678901531717126 0.2776064805277152 -0.09322912720286203 0.01334347063384463 -0.1053048191767229 -0.1604358264324766 -0.03182783823646951 0.2033195668781748 0.1951645181678192 0.03528997505236636 0.1158156322771727 0.1134184255768755 -0.1202015647878645 -0.1186797026720517 0.1227052012633174 -0.1855643716978661 0.06526929159457916 -0.03972420017418311 0.07309256877660195 -0.02977125684102818 -0.1960654571418668 0.05010541748169863 -0.02077266288446909 0.06825575668544 -0.1751993227568611 -0.01174347455288575 0.1016835056137998 -0.1499648279313467 0.07675604994186601 0.1001469772779631 0.01564105129620838 -0.08274643898747935 -0.08984432890622834 -0.3080101233397119 -0.2155884556106073 0.1027420961564515 -0.0110173254277038 0.03635824356612569 -0.1322111365643562 -0.1998777470782329 -0.06383138275761953 -0.07453898800212505 0.1504701447139906 -0.02809264172900187 -0.126485832782059 -0.1156208284452664 -0.03486958474586161 0.004898922209548031 0.05571979584879586 0.03497499654142802 -0.04493023236790567 -0.1265547423786091 0.1024300437717925 0.01267618383161958 -0.1192666895571647 -0.06480075713995874 -0.001726164340527923 -0.1743831685117497 0.01053318863133042 0.04032888011964177 0.1266044601787064 0.06838639787049788 -0.08669433632776707 -0.07699315754319193 0.05121379958454336 0.177834146977162 0.1193533926516111 -0.1111876785928262 0.07363127328126198 -0.001135007801882461 -0.2334147050506218 -0.2859990369490872 -0.04662617214043142 0.04719597246866998 -0.06423162712809483 0.1023702529027177 -0.05550149057601189 0.2693097317610041 -0.2542442786389534 0.05427865635843668 -0.02289077387644598 -0.06025298323649893 -0.1004826230504436 0.06629417709563243 -0.03709967089572237 -0.0169610744075567 -0.002088483266166478 0.1617962286550673 0.2761238829078564 -0.07327915726179524 0.1477834362060406 -0.5167831382879509 -0.050516045200913 -0.01625669977431896 -0.0659940405649726 0.1069896895166956 -0.167874241219339 -0.07923803197233062 0.1513999395028791 -0.02893003262506223 -0.02118220407176248 0.01372312043503925 -0.1155447497524999 0.1803012487250286 0.0009191828994382826 -0.07906659895908262 0.1529982630253779 -0.2459700679275017 0.1745745175499034 -0.03473127916378869 -0.2494665077804605 0.0942063728583513 -0.0212656179108913 -0.08824629408065333 -0.1727791494378021 -0.06116186083051743 0.1092743183721836 -0.2118908450576671 0.1091442326921763 0.01762757150041668 0.001492888773122969 -0.04467862159484848 0.1945377072484118 0.04372383237405544 -0.01633997278586273 -0.5664696917374411 0.0900023222205014 0.1024327770795413 0.03174159051346814 0.08168036960112228 -0.1044473530416468 -0.03258097577883422 0.02656364864392141 0.03960718729651969 -0.06902131912284072 -0.1923338759869059 0.05724682232359244 0.1291613069190952 0.1402420313973408 -0.1743034410713866 -0.01142430155843352 0.05379025830105558 -0.23426665939346 0.1518271841478148 0.08647099126854747 0.2644879890017845 -0.1792884256069534 0.06120768740122252 0.03363621005698549 0.06779670853307425 0.1399725066900526 0.07300773670183608 0.1497455715168628 -0.04494168517881443 -0.1487789330622697 -0.123329993681653 0.09304462616250117 -0.06260615465801572 -0.002204251665977467 0.2241764656684518 -0.01380960288266653 -0.07683569365374116 -0.1830754405431468 0.106624628845378 -0.2126703228672125 -0.05020566970742592 -0.1064108580225708 -0.1635788154299146 0.04654217148564559 -0.08711541560158394 0.06487354608901222 -0.3541464113397586 0.08098879721239594 0.2741172343682602 0.2319837004703313 0.01334847173582528 0.3426867530573805 0.03286313012828165 0.1354787168702271 0.1840121160671404 0.2179747841712582 0.0334435043309843 0.04328905383699076 -0.3506744502335525 0.1489702975138629 0.1792090461456065 0.06675010992872712 0.3315298440973751 0.07944857640654217 0.08142924988923757 0.1039971573427152 0.02675596677429646 0.0932807011511798 0.001721874120625488 0.2433885293844283 0.1179481264819988 -0.01824308026406813 0.04932863627365439 -0.01607871508351662 -0.4097972803841568 0.1509001197272528 0.09915526557508715 -0.1411358964162583 0.00174289224332619 0.1476208008607287 -0.149080629262399 -0.01223541789522891 0.04344856097747963 -0.06739497831074694 -0.2958751909125948 0.04468156708035222 0.01699193206050237 0.04294568184329499 0.09625891514180991 -0.003331663309702944 0.0394891310617719 0.01484353007705631 0.1893838285010545 -0.06588620690023483 0.1192407653988873 -0.03377543229773004 0.08055604468975913 -0.03876485921154274 -0.1998876806315399 0.08351025978705078 0.109838030443253 -0.08342925523216127 -0.1644979985086071 0.03631522039718456 0.1652052123374243 0.06517262376922202 0.02401161081769404 0.2358921310858615 0.2409577987266139 -0.0008723446223863749 -0.1051821186320413 0.07279272083909501 -0.01892806487892615 -0.005655646006455291 -0.09895204107660432 0.03993877776603263 0.02003688466597598 -0.1455666492089054 0.1508200186086192 0.1066092633752345 0.1408413121989664 0.3237896257480205 -0.01988463626128929 0.007512606264929994 -0.001569961135358605 0.2901569209547472 -0.08937826325723433 0.07575379524431722 0.05750677176640619 -0.08419182154470206 0.1415199704162118 -0.007489094542185645 0.2833125760955886 -0.06330825782732212 -0.08038437758557827 0.00335894671541253 -0.1651660867404519 0.005274797456770841 0.1451928119028927 0.0112763569329058 0.04349476330791319 0.1755574189852512 -0.1004799935416272 -0.08857135678157048 0.1016336458639318 0.128089002707815 -0.2033716433497825 -0.06308347564939616 -0.0374340770790013 0.1611866786641338 0.06284520137338571 -0.1733160160414784 -0.01277000452815422 0.05042123213034332 -0.07605669574193785 0.1541596046567756 0.100129475465233 0.1502604053306998 -0.1815341230182427 0.05781232623561872 -0.1404702374844343 0.004316962777268882 -0.1229997303048702 -0.1008330870514547 -0.3862619069515442 0.208386591312998 0.00705287407151345 -0.1145430834370256 0.03117859179772877 -0.1790100627788533 -0.317114755779024 -0.1465073188758438 -0.05678938881741846 -0.04631415161620381 -0.2602796885870445 -0.1609362113998376 -0.1564632165577046 -0.1888152536312644 -0.03969244829851229 0.02612137771711488 -0.09543246562696969 -0.2183968199062007 0.05932022007254949 0.1119422932084073 -0.05863555273270557 -0.07311929300317055 -0.185054570373021 -0.08111145820914961 -0.08229595889898869 -0.08336248446315815 -0.03355480185186703 -0.0137739865574326 0.01578423759247887 -0.134280858407766 -0.05979114807592321 -0.1359082924315047 0.2251368739066763 0.1284719551357331 -0.008720901210605873 -0.02170581118342002 0.03098058198636323 -0.1516797189958598 -0.1182644098776825 -0.1585499139498735 -0.4004687252549597 -0.1083307051514876 -0.02477912039670704 -0.06401091446007764 -0.00465289972803625 -0.04593001902571633 -0.1553585199910524 -0.03401223036656075 0.02175754426725177 0.04032536711263271 0.02332800491697365 -0.07758927803027214 0.01505334199605501 0.1159277332788187 0.2246696640606345 0.1821811913622563 0.03372106411337247 0.003076116559792473 -0.2321034140537513 -0.2014303771732046 -0.005825533774552373 0.0003041051573775923 0.04380826758018026 -0.06261541589566881 0.09123212191409814 0.03155889220687966 -0.1051582789554929 -0.019320322679914 -0.4296919773018761 -0.1267327090081997 0.2460451494795493 -0.09815740987293466 -0.112065326760333 0.04441953514823409 -0.1038860449114877 0.0006600456433968109 0.06011012798096176 -0.07961303018752405 0.06889443179937985 -0.1722576091260162 0.1272105046165272 -0.246875791317345 -0.1391520490300331 0.1368616549424919 -0.2561672078639782 0.101408160595333 0.0632683649049635 0.00183405543497394 0.01030663525930626 0.07710038204783168 0.04191756022354327 -0.1945866467252047 -0.1956579413332658 0.1495908114577365 0.02566416481134048 0.03281862995472427 0.1750041255896567 -0.03072004489063606 -0.1180937560974679 0.05465825796076283 -0.1293249330045187 -0.05106361463711692 -0.2154063873615947 -0.00929286894729823 0.26662799813664 0.2404808370652683 -0.1074050002949689 -0.0251094620755515 0.06267698473230983 -0.04101375796257579 0.06834772494667074 0.08446323900121717 0.0007030897104779825 -0.01788360140019017 0.1075996994286616 0.03829468072288923 0.06483195079665234 0.1428459774551653 0.03807425408719391 0.00172009335770463 0.0852300086246448 -0.1436778649299378 0.1547867246446074 0.1686405197787893 0.02386955669903841 -0.06969960445004166 0.2056324130053931 0.04415675901676435 -0.02879603819070192 -0.2174676885227549 0.02320494759177774 -0.2064085939414105 -0.1115869662551407 -0.369623368937269 -0.2438690336665204 0.01208375588372786 -0.05335290497420438 -0.08374412732522361 -0.002591990189751939 0.06159414959258906 0.1348096777210641 0.2282425738739924 0.1991950462659057 0.1721361435316378 0.03823591687534759 0.04599802966822675 0.1691568621964841 -0.08684860820319985 0.002458687877128006 0.1567772711376126 -0.6061634130980867 0.08482804187365316 0.09301007245418171 0.02322821426035823 0.08833443865908727 0.1660776461897365 0.02882327432218191 -0.01120870775886737 0.108747179892392 0.1909085004504499 0.006521111454003459 -0.5798279730779259 0.08115144774162875 0.06379528850046974 0.06597844236811323 -0.1150131081562423 -0.2595789720827441 -0.03921162143577954 -0.1889725044114855 -0.04946176534139222 -0.1332932698562622 -0.005483179351226585 -0.09406593199267928 0.07027042011176331 0.04140933885974341 -0.1220306059795954 -0.1784630885326045 -0.06183513688957735 -0.04620779652230963 0.01208544382877731 -0.07593065279451829 0.005310123626712982 -0.0537404178712245 0.06509767254169235 0.3095656335403331 0.06644844505785756 0.1046541918591089 -0.2943514782239701 -0.07184880984078473 -0.150286594575941 -0.05118008547225355 -0.02902023774849643 -0.01404467375295322 -0.2373670524378622 -0.07702324621789179 -0.04895588030861381 0.06930851900854594 0.06091788362428961 -0.0487272679060729 0.1999840920560406 0.2847516221314755 -0.006490807811043483 -0.1177768050221116 -0.003928377152762068 -0.06807953367482994 0.00815797407149558 -0.05876264057938538 -0.002709513095030907 -0.01544309942595336 -0.1921996488157096 0.1845996938092963 0.08706799328370383 0.08714351889716213 0.1229346248358035 -0.3809247883884744 -0.02418657300916352 0.0269583373305321 0.1983369226201439 -0.2709090627460813 0.1377633632128844 -0.07477915185102726 -0.1271397141138801 -0.04480297917247535 0.003651388956419065 -0.07738439626008101 0.02361201279791315 0.09225393181949118 0.05340439521830287 -0.06664910747875021 0.07683235450873378 0.008829235914813105 -0.1132187632823483 0.03651116945295849 0.0251097318352578 -0.08889740286853948 -0.1154001052002589 0.1594637821987131 0.03843906757654038 0.1126844002169019 -0.02670792851573295 -0.002936827904473006 0.1040632719247211 0.1279576088824421 -0.08187550891668971 0.01448635428902653 0.07365691967003778 -0.128381333959134 0.2507229622342359 0.1428853588807213 0.2112289983206825 0.1112981412679344 0.1236019560656137 -0.1095517469213071 -0.05610350103106206 -0.1287765694240627 -0.2204735393882981 -0.1947620806931097 0.2661820493338552 -0.05727346964422059 -0.08777698515797741 0.146862217082062 -0.1211727226851576 -0.2596105058855678 0.03298028440934461 0.01695093509570031 -0.1353865471488698 -0.2853070334978341 -0.1076480925415555 -0.01868969867909531 -0.2755694635705666 0.08654685680010697 -0.06774074042738799 -0.04503361833983752 -0.2858509436932885 -0.006312798140391423 -0.1010457793245181 -0.02194637148278473 -0.1209844657919036 -0.09542887781864266 -0.1665141985613761 -0.02747941032078098 0.06506225651289597 0.03138345843500882 -0.08489390382410648 -0.001164325447961441 0.003842815998187988 0.188216079875226 -0.1172106582364393 0.1588972143009124 0.1376983275026621 0.03625728163813317 -0.01756119064575194 -0.07975850805512234 -0.2525580915069717 0.1225771086631814 -0.001084702257775424 -0.1828422228590859 -0.1557494369505046 0.07795329534776511 0.09472711027862084 -0.001833963694330049 -0.00898099402117189 -0.09376805496078298 -0.1661632022037644 0.1609761058075417 0.06938295032553456 0.01499141464340691 -0.09033638416729012 0.002273262915752048 0.2752084675754887 0.03188948749777691 -0.07466951045328889 0.058957066698073 0.007381213020779487 0.1336484465438573 -0.1805294252205066 0.01016316826432791 0.02464567100390933 0.02375319672877546 0.09395357258690983 0.1367843113114702 -0.09273687404562907 -0.1147744683144654 0.004700225990019173 -0.2844801236877633 0.02943023908257679 -0.01598638200216662 -0.141300900576971 0.04039618734261058 -0.1639282340787453 0.0765906998646597 -0.1713311368050122 -0.01092396053232519 0.0114560370981295 -0.004751009039853939 -0.2087227424059737 0.184480184554378 0.001043298209004864 -0.1037353952645325 0.05051265538013455 -0.1312447302270093 0.1809881017891309 0.1294350311522487 0.07842999109776783 -0.0164205485729848 0.0002513185691293265 0.06300828324358586 -0.21952091989477 0.1282120730099955 0.09332454855351834 -0.07347927914594297 -0.05256809557858914 0.02692370545350153 0.01463401338307507 -0.2200433742206598 -0.1067900811897174 -0.1218573152310595 0.1025261155401048 -0.4035504024103722 -0.1237795037065591 0.1484483461691831 0.2547497308795001 0.02793250367947491 -0.03492943338759393 -0.1034132879006144 0.05232615436444929 -0.1010810155523437 0.03216142504305022 -0.2088791441861932 0.1040330702029325 0.05014918700639624 0.07862518163601354 0.05927749034429172 0.02956841065647962 -0.2012967975789961 0.003938353509400875 0.09159030727319518 0.09432302097877748 0.08680770183530477 -0.04252292014899794 0.03696641305128692 -0.1166550618014055 0.01748073416192691 0.04089595204065451 0.01137504179012836 -0.05903219959174481 -0.01818124940614758 0.04812882453035804 0.2362286934568873 0.02034513117836981 -0.02285896151518186 0.005471949281347859 -0.06798392521056063 -0.1047102982122652 0.3688688592810885 0.03035280270697957 -0.03417058483170611 0.0193786406183001 0.1661469777636171 -0.07065347570250144 0.007467038833007271 -0.1502546342421678 0.083877329161976 -0.1661607003447915 -0.1074311013553391 0.1661982342949016 0.1979321484652738 -0.02043711751769698 0.03682639398821854 0.03644007402503712 -0.1111992055960391 0.2790245162208053 0.005369490324460527 -0.0314882128296991 -0.01417981232737644 0.04828101676321944 0.008977275006716955 0.2043868592912931 0.04365301879191937 0.1305156044209719 -0.01794485993614705 -0.2384070578414621 0.05744150678398646 -0.09762703357797536 -0.2678785778945201 0.0346727597244921 -0.2780084831563379 -0.1499419512722171 0.1038933245569644 0.03440607454388061 0.000274370782536458 0.06111310170522111 0.08608971642796071 0.04987573262615801 -0.04626504059303834 0.1698993704052897 -0.06281041299806465 0.04528977818330598 -0.123392654940005 -0.0290676987885179 0.107881616484137 -0.04178073164162893 -0.03764153500148977 -0.2824760561583472 -0.001557878213629696 -0.1640962383796669 0.06850449820069332 0.01804390116308751 -0.105628013732652 -0.1505808251628635 -0.08082331342730152 -0.2008307943952176 -0.02991474972227747 -0.04271818230162084 -0.120879166950042 0.065444494307024 0.1856453759031841 0.04812894538925469 0.04440193799295528 -0.007132304738937823 0.02234193396576895 -0.09070804057526791 0.0249839423657245 -0.01598184712240994 -0.002039125476166264 -0.2826860340094195 0.1237698069602635 0.005176355423163174 -0.0676378204351348 -0.102549818025726 0.07228683717461937 -0.03231537860473729 -0.06025380539328302 -0.1067148913657218 -0.1832348624262625 -0.1186896551549737 0.06534932782785902 -0.04148260038373607 -0.3297449271049483 0.1638800049942212 -0.1047269438797595 0.06573542409555815 0.1721605583437557 -0.1604184367461875 0.03905030110637008 0.01086051951898515 -0.01894004518831463 0.06860012102710784 0.02071178364009996 -0.07564673142046621 0.01194018131385199 -0.01809349589871487 0.06818136240553006 -0.04702563798760495 0.060462037871139 0.005590683401130687 0.01791891579467166 0.05911651275922077 0.05864473705533306 -0.02266784974209638 -0.06675284352905796 -0.2306891995624698 -0.008914613841774933 0.08925315177057583 -0.02838669816570877 0.1244219598355526 0.1306714961625057 0.1190050559289682 0.136603365054152 -0.3123502047995758 -0.06066587616933178 -0.04621714114092183 -0.3003727436883856 0.06131468434924262 0.08072593320910279 0.02622731489628235 0.1359507126697057 -0.1439553612936746 0.1419399686336321 0.01657293197267144 0.05013144712041896 -0.1174187439667581 -0.1229456383384699 -0.07021784461102953 0.1760995872620846 -0.1398593474134106 0.2287227549937715 -0.08096577250908631 -0.004426402139883642 -0.06228587044321769 -0.004607207370818548 -0.2171647049713261 -0.0637788403807322 -0.1596330784798335 0.1641262828017135 -0.09976515128050771 -0.03789548774364188 0.06395283979531464 0.1600188622367744 0.03074946009474685 -0.06847802141332188 0.03237742488766973 0.2120874115856863 0.2028964080744353 0.04566064630909031 -0.06389285204871999 0.1158669133379179 -0.07485438195467638 -0.07265337877706275 -0.1705058405414504 0.07519232883401432 0.1138051560296518 -0.1563016357246378 -0.04385789255021381 -0.1160164439433906 -0.03769613232459991 0.1767705713716731 -0.0563029003721063 0.06358569294818638 -0.07699336081058232 0.2111513303382762 -0.1106989508568593 0.02360204026244463 -0.03494908146075507 -0.04116963449027391 0.2216215630311471 0.02908444897091008 -0.07156157776660475 -0.2366968827800979 -0.03163552380653103 0.06905817727794072 -0.002536916526160523 -0.01466988290168243 0.06242703809006644 -0.06243224614138568 0.05271893755065048 0.03307773593364672 -0.001177328042041443 -0.09278396139545916 0.05035883368350171 0.029819047035332 0.1094461945652439 -0.3241135950284725 0.004440857096820299 0.04345434653676448 -0.2578424316428754 0.1058005119317326 0.01730233901439584 -0.01975958618579435 -0.07025976285183216 -0.1274311117652878 -0.09362778358797785 0.09640837063806885 0.2136431668073824 0.0437555628860183 0.06372522484508009 -0.1388022151894868 0.1502159361592025 0.1066471896792283 0.1211316597583722 -0.006932933763685157 0.0433171775255522 0.0373504282424748 -0.10731333442803 0.1505106288169171 -0.05859110059571048 -0.1658760038288777 -0.1434988650066946 -0.07485656307655052 -0.05611263479659877 -0.03785225140850908 -0.2146191449945687 -0.3329667488273335 -0.01473046367218078 -0.2292276084334722 -0.04867558711499703 -0.01335061491191113 -0.09277123822653682 0.008395681804528488 -0.03271414188514318 -0.1724157876155324 0.07512239612503882 -0.1679458986795618 0.05823397020787569 -0.001364809187555237 0.05736041145111728 -0.003497481747117358 0.06560215237059054 0.06151686689615499 -0.05588884299574574 -0.1634717399528579 0.03258400693485732 -0.06196460148182169 0.04743126116872873 0.02444569123824265 0.2544798947193593 -0.1394049754197734 -0.1468492562759236 0.1637587461340966 -0.004307009767128407 0.1401029151418366 -0.0351456964596356 -0.05604348444296517 0.1874162088503692 0.3927244262910226 0.0290206574198427 0.1080021675088202 -0.1162972538889056 -0.0699340844992085 -0.1194181050711391 0.2290374918247552 -0.02681164614921138 0.02383497831161389 0.06831927803638151 -0.008059702069016163 0.06104288327438496 -0.04632576978061029 -0.2150038743409605 0.06406761077878008 -0.03298930021665651 -0.0984231714940946 0.01546269795518636 -0.3237124964334551 0.1349091243788539 0.05457026197896756 0.05992829615859915 -0.1010785172308407 0.1369516495270364 -0.01252664320393353 0.07598679622006517 -0.1786265303893693 -0.1419243011344121 0.01485387875768312 -0.6192285232430708 -0.04985276818828194 0.001997299065577684 -0.02759831723738511 -0.3096640531402383 0.01003320099005055 -0.02979157180962045 -0.1177246713736268 0.00709662118902067 -0.2168238201105701 -0.3026117749231387 0.02963810853696305 0.05494398422103806 0.02529345646419047 -0.07776866290509794 0.07175586594468458 0.1165086935565908 0.06424004949363959 0.1902396429477159 0.02635292144992934 0.1245306728893237 0.08408404293418334 -0.08548187456389662 -0.04378426766670829 -0.0954651786569372 -0.08472911189901509 -0.08527754766534512 0.1090545784365619 0.1076798762789478 0.04082367620288804 -0.02901521821842885 -0.1330813856199282 -0.1030171681011061 -0.0406970532176619 -0.2796852145803527 0.06635538073306607 -0.0625645705847102 -0.09147119235794353 0.07438596014907495 0.1210580719073444 0.104745870946697 0.1702391451066284 -0.1320146753106412 0.0299064147546777 -0.0595403734608253 -0.01278921150453554 0.06103256952223652 0.1882550587124597 -0.1343668802104494 0.0631129991253106 -0.07934019711958883 0.01201513672380478 0.1172233867072231 -0.04947633196342413 -0.07870281870516233 -0.1435487549226015 -0.2575348905012878 -0.03798459066131626 -0.2727538736801811 0.2484974938214449 -0.05795337692219548 -0.1999913651242681 0.2522798310967101 0.02698128233420108 0.0833028924986451 0.06649185480315546 -0.2411451832821562 0.01633080520325001 -0.07609859242188781 -0.04247559909162969 0.07738309127212294 0.00338504944113374 0.02759211327553412 -0.062832083534875 0.04143828656425674 0.009073018473040258 0.1419465999688319 0.07128105459692202 -0.01848987171334482 -0.02259148678743529 0.02491359839243191 0.01783047751925651 -0.01442395569032092 -0.2027928721149563 -0.1598159994989173 0.03842714305757287 -0.008384169377587621 -0.08880299076422628 0.02079037965729929 -0.03671362409174479 0.06973205315710705 0.1063069775346068 0.1007176612891763 -0.002547602650709032 -0.02700922622045116 -0.09703937804374069 0.05950753545508661 0.0507485771781551 0.07985287074546485 0.1817836436376768 -0.1725753188714505 0.2018124545346996 -0.02125262992036267 -0.1389955022111425 -0.004821234830264484 -0.08821775432205033 -0.04411838609251255 0.2264100411622824 0.09577882771570714 0.04386820998539865 -0.03487017916397868 -0.04453788418018581 0.1268747270609243 0.07437212842587976 -0.1334871846804367 -0.0724059218444012 -0.05608205535374374 0.2326132060190554 0.02994092587015976 -0.2089556167044889 0.0307205569385052 0.2100329072099038 0.1470463822501148 -0.1108473213221753 0.0180421233819202 0.1926915008233758 0.2834135240492412 0.03981386172756802 -0.1353756782207221 -0.1316357648682679 0.1251917445532366 -0.07122199797343048 -0.06843443883418815 -0.06471799506842645 0.04920451919097584 -0.04966553488209532 0.09030407907133559 -0.009032101019832373 0.3329343599524694 0.1077140326181361 0.2116763535918749 0.09572090976537226 0.09690546083088047 0.2116609787799568 -0.04686920855405804 0.0218607548581237 0.02399391243619535 -0.04534593475778261 0.08112859651845519 0.2334446290891323 -0.008582300947611097 -0.2305722476263238 -0.0413794517229276 -0.1110155935673876 0.04846596644900134 0.009376670702189865 0.06371692643620697 -0.1262177887372313 0.002243370830352344 0.07522925987672718 0.02981543502381082 -0.09688900661116427 0.1187022634635514 0.2121937407941616 0.1160820564728878 -0.09145826358985815 0.1265546134597996 0.1239288672234961 -0.218873561315173 0.06010108458356655 0.09184133777890542 -0.0497281833890348 -0.0764646030507192 -0.05102912514365521 0.02849400911861337 -0.05162216662868902 0.1932424320654136 0.1384606059076061 -0.08799270097847003 -0.1878590814284045 0.04201339478566018 -0.0006645564187006181 0.01683382078521371 0.01262715095198261 -0.008313080897634438 0.009995652060245303 -0.1694766390039859 -0.1915939699332303 -0.08648825821462656 -0.01825769682471006 -0.1798777902610145 -0.09917221514651982 -0.1076235449927981 0.006472931840932583 -0.1167483437189565 0.3296695003306915 -0.06228780364996593 -0.002629600483244642 -0.05191930452281279 -0.08694977269772103 -0.2010664198842678 -0.05648442893616653 -0.04522512093437937 -0.03900233986908162 0.1111104382835447 -0.2126954149231985 0.1129761193154164 0.1494508746293761 -0.007458460909668881 -0.01605879162423225 0.04782514952142372 0.04590636480733407 -0.1875383910479731 -0.009154183090342357 0.1349569418108101 -0.2276526472382224 -0.1071252008719458 0.06749302105374287 0.1622229300062252 -0.2781852298265187 -0.07887328124863414 0.2694692883777759 0.03607529710022215 0.1481183486481567 -0.06184326053558836 -0.1730417754804224 0.01525077970179209 0.1561405994597077 0.02678032513693529 -0.0008197120477443001 -0.1530898484847645 -0.001847636302208441 -0.05110614815450206 -0.008266118435312478 -0.02473667511525696 0.05569216297511022 0.08004609750215154 -0.1350936797929578 -0.03104008993202642 0.05254690529371065 -0.07021698690263957 0.1619352579102685 -0.04774013275971477 0.08923569540698978 -0.1007475489639843 0.135776142630528 0.1150462916600388 0.0322451299040322 -0.01112626971319132 -0.1604373055729276 0.08640957224394968 0.007749845426388811 0.07092711464746372 -0.2288341889598747 -0.1111153620865373 0.01284950736467663 0.1917962362109962 -0.121350989274593 -0.1619193800434921 0.009766252230125208 -0.2185447500102821 0.06787029563053804 0.05123133944641886 0.1560039184081432 -0.008265993533776123 0.05753488765027924 -0.08931515682119745 0.1305485552418335 0.08516739237231388 0.04417580277271685 -0.2388817817062562 0.01106863756299767 0.05034403890828894 0.06090714841574685 0.07730723735143495 0.1005535179537418 0.04161994673567664 0.1245826338715556 0.02590296946129248 -0.008911236072077382 -0.1571295891427713 -0.06433320918472896 0.06306623391009464 0.02540275442119966 0.3067717439195782 -0.1233173904652815 -0.2499425266245129 -0.1910383963171172 -0.06385514171998863 0.03927738558934807 -0.2231381271681863 0.07228567902119459 0.04786253900927035 -0.06429441538918575 0.1595981778299712 0.08173468092895905 0.09811294770320431 0.2426138303451038 -0.05896816906302247 0.08631485452582394 0.1190720926354649 0.02216332510794881 0.08027285957578843 0.2699765960020123 0.1330179192577183 -0.0129612182607308 -0.06144857440814451 0.1766057604623763 0.3637656530206659 -0.1979580496373715 -0.1272743278008463 -0.07403992269645622 -0.1190820717998966 -0.05256178829659498 -0.01743017925042123 0.1652132477967278 -0.08397210979863105 0.08678607625537327 0.2690269233578607 0.004725727569335508 0.03657725758925761 0.03782683317786107 -0.01527115734314086 -0.03748412659968398 -0.05184529043462635 -0.08125696378463768 -0.2044036502827531 -0.02259796832914181 0.2306125846856311 -0.05166341912758832 0.1007686765701985 0.02807602496517032 0.195397975895692 0.2477849475429904 -0.1578389390132202 -0.06778967285660908 -0.06310468894237677 0.001152317090581645 -0.02847159285392959 -0.1644965691415145 -0.004422672654226657 -0.04582338763658627 -0.03368514007381852 0.1036676916041419 0.01633088436745846 -0.11428974481109 0.06236689654186239 0.01749034359008914 0.02853137340479905 -0.007962212607277726 -0.07785215475867532 0.0838684611198631 0.1974969030295401 0.1069244217460556 0.02422108189175057 0.0980456720803683 -0.03801602309734344 -0.06111899634518623 0.02441623516867221 -0.2054311974185093 -0.08081305627872575 -0.1198518817220182 0.04034362071064586 0.05207350174491301 0.1974377976085911 -0.06059255574100417 0.04792259565886958 0.05189266619617966 0.06818538193969763 0.04047283318606913 -0.1017936717913432 -0.04701905901973118 0.1229816793201596 0.1488015984903939 0.09661098734906357 -0.1003106650446885 -0.01537647740384916 0.1618204180858531 0.1571893218096157 0.01468400068843958 -0.04071898294540913 0.1132891253111955 0.07248743091201217 0.01764528037644025 -0.0004762474921353839 -0.01498907130076845 0.2068601544100429 -0.09063308846716889 0.1941437247094625 0.04467296204639865 -0.1302667460292818 -0.002833859865354921 0.01285906215180063 -0.1416392433865714 0.2047175011079203 -0.09382372305655916 -0.01313767646168318 0.03970433934773066 0.1328275751432367 0.2134388558663492 0.1225627402109581 0.003451648640815798 0.1401527089620881 -0.04527300235533499 -0.193054067465438 0.1054238331143912 0.01788711523261599 -0.04529521126883883 0.06890198380905398 -0.05543757523542746 -0.0101991607043735 0.01275825083093947 0.02253753243187137 -0.1753126479363099 -0.1147822848040538 0.1309585843547272 0.1002556185812181 -0.2081086787839297 0.2116069648173263 0.09956651148127987 0.1299743320765888 0.4110092952243196 0.07041684155765403 0.3398905815046785 -0.1393176371776856 -0.06242973752869357 -0.1127541118411364 -0.163822215153077 -0.07486593810902091 -0.08925537517653959 -0.02519462318663325 -0.1019412998506228 0.07656450942853596 0.1009556665985779 -0.1472375712627065 -0.1343660250137771 -0.07228274980292933 -0.04125346885099707 0.05371791686420851 0.03709004327875337 -0.02518679780258256 0.01816502010510537 -0.09333116525248154 -0.1540520976940997 -0.009677170015297052 0.1086850257371473 -0.04767224853616402 -0.07866697277646326 -0.1026201482532858 -0.1248426643213241 -0.1058664708599378 0.004276668663918654 0.07863463576625816 0.1989887810091926 -0.008590536044245594 -0.1580125299978173 0.06894884671352351 -0.06498647477155509 -0.02366813942660665 0.01980482410685396 0.06270283885924051 -0.2245783208372042 0.0368732303495489 0.112917125763922 0.02303314051507049 0.07390193209570638 0.01927270918394332 0.003167073258190915 -0.2345794733410854 0.04019276021469956 0.1500701266292118 -0.1738201281370745 -0.1746023480455238 -0.1668196981209678 -0.3168850573353171 -0.1396166745089382 0.02248267692289839 0.08597907809480189 0.07027696815144102 0.06889223773757996 0.08333731872108889 -0.2542789485294152 -0.1705164795265574 -0.1979238045369191 0.0092751292395125 -0.1320156071506114 -0.08554660199135972 0.1188459370298688 0.09836029244114676 -0.1638474906793758 -0.04079028244245568 -0.04407160144056942 0.05152213855672327 -0.08458460684698087 -0.0396813083410299 0.1486263767638222 0.01916837924119908 0.1336541667410552 -0.05778739849011862 0.2143770028388072 -0.05090937611490887 0.2051024723887984 -0.06596109921606449 -0.03671618418312173 -0.009633899450427197 -0.0502357420293016 0.03869518548670069 -0.06588109165496844 -0.0002372648040582653 -0.1344838837015011 0.08824977120271739 0.02023380208044043 -0.2607610166480336 -0.1896671057558585 -0.1161377337559699 0.1078116990834769 -0.2539078495142086 0.1390611389845949 0.03025764989567766 0.2441343358593851 -0.06075432376952496 0.1638714927798439 0.08333511621746084 0.139341251156238 0.08122900230200247 0.04010435527965214 -0.1361093194232774 -0.009581375246758578 0.05835068359510442 -0.0167803727525226 0.1069419995219412 0.07813798279419711 0.00305496395478661 -0.04170405359485424 0.04552324600228076 -0.1193735070676641 -0.04913753836685447 -0.1279944407660601 0.08368520759372461 -0.0870273964516674 0.2925564735493265 -0.04436631411929799 -0.4325624868472523 -0.2779225986835941 -0.006550820004269859 0.06060604527500229 -0.07038280030614524 -0.08319353480795386 0.07136178526293338 -0.04339465701308659 0.204003248326082 -0.0009487078232958978 0.01870845547751275 0.2031705378869401 0.2365902766993048 0.06877991216878743 0.1016398511557229 0.1673681644207744 0.04321705461509814 0.07449929082525482 0.1817454599348936 -0.01135984112934396 -0.03818437913488988 0.1582163858452817 0.3811016510116187 -0.1252250014542289 -0.09631212562334079 0.01818618526493161 -0.05960662208571994 0.007359280136234205 0.1871558156783462 0.07312331044671525 -0.1456346179766477 0.2446716360324289 0.1719708917792253 0.01491675286930497 0.07521955767763136 0.02916786150315786 0.1304426167592564 0.03797090938346386 0.01617510961590824 -0.04975631310943084 -0.1480946570044037 -0.02668346659829236 0.381378370194814 0.0298177070073709 0.1179477222364818 -0.04400525973844824 0.1085493338157537 0.2288621661170312 -0.2757981230185004 -0.01523755673373449 -0.01431038207471042 0.04826549588643518 0.05453267363123064 -0.04269700127556757 0.1229262179445883 -0.1920533368192765 -0.09461837022106229 0.1426896986666275 0.04224060119750231 -0.09154617518831577 0.06779175164874031 0.06389501613452804 -0.2202272341820416 -0.03527323064879302 0.05008681334841851 0.03915929346556274 0.2466306441313898 0.2175487276657447 -0.0702961195826572 -0.1133769134507895 0.05712035664435332 -0.1468854598240673 -0.008127726597428714 -0.2111387012471612 -0.09534085316222254 -0.1179715420183408 0.07478770331190493 -0.09543178656365206 0.2573332836020102 0.005664329361901663 0.1970935773063416 0.2555708058051488 0.06714732326758449 -0.1050173840930746 -0.03910728643028964 -0.002382239357700849 0.09196459553841493 0.110266208869817 0.02425982130926525 0.09972451984193673 -0.05897572466172765 0.0409776957910722 0.01919657049756203 0.09647129033428344 -0.04431197213438134 -0.05762749156366653 -0.1347091145517745 -0.01787318326952005 -0.1173107653450738 0.09166620389002314 0.2033492586980972 -0.02659322882004272 0.3761971232577544 0.1593763850604364 -0.2074397253590146 -0.2513758703019408 -0.06208733697230294 0.1916760986268075 0.4126562927340601 -0.1561244013434285 0.02726361886418402 -0.06725813452732007 0.1911862300418384 0.1700206863909895 0.1340245065273619 -0.05010860352551059 0.1391517181263541 -0.05930793627674803 -0.306468854568941 -0.1765689501858524 0.08174207562970164 0.06599160790298092 -0.03493130193206551 0.01347445796216553 -0.01652733799502618 -0.001956852260735469 -0.04080464255465879 -0.2103585828885884 -0.1368458087668891 0.1210339853543174 0.1849062331186146 -0.1678208112269515 0.1336501455703188 -0.09033119301686199 0.1588402005151534 0.343835781720269 -0.08379391991734822 0.2569230676782887 -0.07074417413607342 -0.001564406531799668 -0.2578841033850046 -0.153105248388453 -0.1124828554039798 -0.1322401275981956 -0.04426097420023839 -0.09413123070888091 0.07107967680196152 -0.02634619189135535 -0.2643060713405422 -0.01763331333686636 -0.1270950852171641 -0.1079467603432847 0.1783039333682823 0.1207543271149685 -0.05059305161756707 0.0500077937142913 0.009541897202125463 -0.124412542234951 -0.01147436953372618 0.07693826272523507 0.1620249097734542 0.1157966001753865 0.1147717935299196 -0.08408124390959763 -0.1293298942019157 -0.04242673082866534 0.1186902819058376 0.2224321368384126 0.07696883261632403 -0.1631116558892264 0.1767479567279225 -0.07840055361446482 0.02839505756422219 0.07383972715911882 0.08187559519447593 0.04680154185353474 -0.1435376941711448 0.02382519901674786 0.07071963415796215 0.1762296701831234 -0.09299753120355189 -0.1322024888472295 -0.2312114558839821 0.02016332922095946 0.1035458150369197 0.04342529042108233 -0.1750804855071811 -0.3194078612121694 0.1141719956452492 0.2464973389765306 0.1501184810740416 -0.09359455906567821 -0.02378597195736246 0.05800560093682273 0.2130382320837449 -0.05056426146108154 -0.00822209520044149 -0.2433323752339017 -0.2233756383058302 -0.2122944943525225 -0.0952959833859832 0.1597547938803872 0.1362445073546047 -0.05701316985566506 -0.1461995740541905 -0.1376034373361993 0.008042496278329109 0.03077801915443431 0.01444762445200487 0.06989371293157333 -0.1195582098625064 -0.0539595424483456 -0.09423675246358731 0.1698144528273044 -0.02756024565984823 -0.2882468999634955 -0.1311759884758881 -0.01558802061199863 -0.0224457616778583 0.02907233030836371 -0.05395799508370444 -0.1899445332674467 -0.02311089430760213 0.007302109219061837 0.2752915166647281 -0.01532451475347351 0.217851116547316 -0.02338133499366784 -0.08171995479619482 -0.0004791226349764893 -0.2444101439153372 0.1714245499183974 -0.008866540346702038 0.08737048415801803 -0.02644242953561731 0.1111536904065472 0.08042910659688406 0.156509008945293 0.09430289405471341 -0.0173655864171539 -0.09619637023909541 -0.1687358810229567 0.104454167400238 0.1452731087699001 0.1753857178410687 0.04304210489835793 0.09367395935134991 -0.1097771960461433 0.09160458976252094 -0.1088914195400841 -0.01385401475268408 -0.08524650642317869 0.08987358524852788 -0.155116293477577 0.2141486159536096 0.1492092829071457 -0.2873869227907061 -0.1694073747984203 0.04449343078728286 0.103115286333767 0.06288168172684462 -0.2747744061605801 -0.02297056591049465 0.08720444249778733 0.08394416890633438 -0.1327623592578852 0.04173458743571703 0.152458237731526 0.3461122323005446 -0.002875408825254615 -0.03282945612781632 0.1320450754672017 0.02048398137088825 -0.09582707087929924 0.2512733449041238 0.05158883104957444 -0.1141932960377029 0.1042398783956235 0.4884623213804156 -0.05533075061414328 -0.1117222866153927 0.005044432789297027 -0.05612379379222953 0.06294914832230025 0.1941755675201401 0.07906049237207202 -0.1258082157852301 0.2708717596042585 -0.09760234025734112 -0.03242665155538724 0.1879415201850468 0.002820569798620299 0.2518511716332236 0.0803275582998389 0.03773020974465757 -0.06680397033984264 0.1283608406198464 0.04153117115381175 0.2979617105798933 -0.03793178634832229 -0.003891166632917274 -0.04639749128298016 0.1002283441790767 0.1168483832261361 -0.2667430533768174 -0.01367085281071653 0.1019833281797639 0.1039271660117523 -0.03527621991795535 -0.04624998419492884 0.2980837918314331 -0.2854868315281638 -0.1598720881523751 0.0387280564053207 0.03636386449609316 0.1232919644120742 0.02436843026096497 0.105029920398094 -0.04958909666485345 0.1571536440104042 0.09413394319090297 0.02778480497282315 0.242970079969737 0.05254355219572528 -0.1491449572648123 -0.2470931260985709 -0.01228434964796932 0.06355811607304208 -0.01801595088186521 -0.1910898859593492 0.1710955844748312 -0.04559702767684875 -0.0575111478414921 -0.1488699793011382 0.2160837867296408 -0.09833048311603559 0.2740762243973532 0.196460202462964 -0.04266482443068737 -0.2423002631251164 0.1866997313613146 0.05979064644694732 -0.01414401353868161 0.08321797256258102 -0.06857585315923068 0.1715112604644914 -0.0189034493966019 -0.07612876755441057 -0.04571124698200564 -0.02707626665785414 -0.06726814877846153 -0.07933713540823693 -0.2232363880387216 -0.1225110647427899 -0.07901557311162304 -0.2434038726792088 0.04182391231946075 0.02040372413535894 0.2642931236104718 0.065054883743249 -0.1934153114319666 -0.1062764570509464 0.01285726935331507 -0.06215941491929874 0.1678446925262784 -0.09865782692429458 0.07530151382627132 -0.1013625340775283 0.009583628919469565 0.08935997037860935 0.001550289089127295 -0.07335378231021988 0.02747888374533144 -0.05307225774444272 -0.225229891765628 -0.2466469657963566 0.0622060053526241 -0.01521296570200277 -0.1970300499474153 0.1215176040584392 0.03322006227892838 -0.04844281483073029 -0.08415868964479693 -0.2851960309152597 -0.02841991724320317 0.004328912759733721 0.1294844674217196 0.02323963952147449 -0.08702828184693133 -0.1455058609075093 0.1995832547453136 -0.0963625077337103 -0.1375888779685707 -0.005097603978441743 -0.0871715942930449 0.2948677723918121 -0.1961953557700017 0.05063085134576723 -0.05485224718210201 -0.02511095975751573 0.0738554145551166 -0.09901626591372396 0.06946042014560544 -0.07429564005875608 -0.2455272837770868 0.03372532696013532 -0.08439936125553943 -0.1572832469890588 0.1421293893193454 0.1350828196257556 0.01284495548336082 0.02401257811824288 0.2376645902786213 -0.04768422021523566 0.008506985254358865 0.09221586488938285 0.1594568175859658 0.2398227844303611 0.2217887753200039 -0.01367038094914552 -0.06609246442513816 -0.2536997173938265 0.08045561624986598 0.1193326939600289 0.04853212560949158 -0.04788513564622857 0.09820725089378556 0.01490145766813217 0.09373763915343922 0.0897072289251121 0.09499907894080312 0.272505682209672 -0.2857589771181943 0.005304615118724173 0.05316934366000153 0.01670147793074279 -0.1685523439260301 -0.1047253643943811 -0.2014958780552916 -0.01753126891589298 0.04638300742964078 0.1865532167008373 -0.1041550692098078 -0.2857638552509695 -0.8394358504816395 0.3330390755443413 0.173604750818609 -0.1949895278003864 -0.11034922746134 0.08305215006310965 0.1910586669010612 0.0624507135870807 0.2033769226006744 -0.1332893388753211 -0.1665040500810019 -0.1583995945363945 -0.0928760555111864 0.1046645926228185 0.08948613255992462 0.1390079420677361 -0.1168928404998971 -0.1222877571044974 0.02071735304784578 0.06101889198176324 0.04341097822694753 -0.1040487411973801 -0.1930880413023381 -0.2651315941018598 -0.06857898767141712 0.04354947542368268 0.06072415507640783 -0.2081057198639228 -0.1170660072676494 0.06315832519668199 -0.01618372455765315 -0.06229440929331015 -0.1567795831060125 -0.139993917471725 0.06967841651494464 -0.01157645040402994 0.2714731163939807 -0.09094984260662788 0.1715229016506518 0.1123678629388844 -0.0953055252276355 -0.2378751782795372 0.01218028128948376 0.1417061355775053 -0.09060031938931913 0.03143406610038076 0.06406970945828171 0.00789120192992214 0.08503060820804119 0.06586642608064781 0.01501737721700442 -0.05287204124357602 -0.04459814410608586 -0.2643918429045177 0.08606248389917648 0.2163985425078364 0.2084730316286358 -0.009923413481752378 0.1376473206377184 -0.1256474104629678 0.1797438248182083 -0.0528458399648412 0.06226020372455229 0.007729067427583284 -0.08258941472058653 -0.1016452553720866 -0.003163777303716113 0.1406984451120088 0.06031349150870733 -0.03691463724772255 0.105088024901643 0.02358620124652299 0.1201299972636165 -0.3475476490803814 -0.0742841930401084 0.198497449725175 -0.0633362323960646 -0.1966852856580519 0.08521942360899989 0.1506537818464838 0.2114699598939301 -0.01776267690472441 -0.04440858070327856 0.003079306746925076 0.007120375745703148 -0.217518055554508 0.2750843488415229 0.03434634955464149 -0.1756095706398672 0.03544462957076241 0.4709577299861736 -0.02746333873121611 -0.08733991476199504 0.04348846502484977 -0.02695563459697091 0.1007257842131707 0.2036253770829468 0.05487190823942002 0.05536619806041074 0.131265496918509 -0.2545897950563981 -0.1813137866248553 0.1644956298879932 0.03406397304977367 0.2742647458265721 0.03612786816975609 0.05366755624078459 -0.002242693382883745 0.3077909261259039 0.07480294633403545 0.1038367356579036 -0.05317065623529878 -0.03449087402103904 0.06688730844735781 -0.02575597697681738 0.03044747743062777 -0.1353819500594901 0.002417498432139633 0.1101825131866615 0.0919828128933208 -0.1439948250968756 -0.1047273023889282 0.166282388944002 -0.2020929261190566 -0.107451519642646 -0.05634226151267367 -0.01853034273477917 0.1817293184379292 -0.003283480805546549 0.03667594122847624 -0.06916593471154825 0.307169001970326 0.02469560769794513 0.09469772985034791 0.1867527749713585 -0.1230908802114091 -0.1909553472482549 -0.2204450052591909 -0.07092543100988956 0.2294652216754263 0.03816382623221562 -0.009400920012224982 0.1915875431217992 0.01820930314708271 -0.0619969906367219 -0.1565322933149482 0.1157588638822702 -0.1751806538241918 0.2295575250339776 -0.05884628955432975 -0.1097375186682496 -0.1781749429765534 0.2162688496726471 0.0225355614780918 -0.07849648776723586 -0.01547965292772258 -0.1153197350031277 0.07895824076700365 0.05065324858367866 -0.1085494286285821 -0.0379692199225021 -0.09879446437686498 -0.1253687360897433 -0.04399958723243259 -0.1327717233439862 -0.1891844271346936 0.1365897278433574 -0.4072177659113166 -0.1423190421710968 0.002569210771690537 0.2874981836456109 -0.0451481065719694 -0.1254153236881238 0.1173968851598019 0.02373553294657881 0.3662965379428074 0.3346136570276884 -0.05717662342641277 0.03293252356079885 -0.02784304467878897 -0.09214284097721631 -0.002668431416544305 -0.1347840225293861 -0.03883720970638058 0.0002532185932718686 -0.04818120634933561 -0.2334561183354495 -0.1592639424552839 0.02857859370708266 -0.1001967303563061 -0.1363043656655723 0.1162742307337141 0.06110858262281978 -0.04375289436171732 0.0002603326247158308 -0.2556094979182465 0.001616731568954928 -0.04893769491895026 0.0963305594616868 0.1536209272985045 -0.1935464003918078 -0.09095698386345863 0.1534695823746832 -0.2571331879374995 -0.03247827224784545 -0.2176747306769753 -0.08464400767846247 0.369657359737719 -0.02603595411742499 0.1063412520548481 0.004150612307143683 0.1239008337604071 0.1628892741047316 -0.07768359672987041 0.06108909165579486 0.003405857181209642 -0.07765376042059041 0.003320485950160026 -0.01086861632902177 -0.122078218606576 0.02393691286549908 0.06713997366639572 0.08898611607835161 -0.02379243913273671 0.2949912814331299 0.1350614374648974 0.04881340104260548 0.1313005175892898 -0.05043049072684099 0.1997599225730803 0.1331853724035849 0.03310678334263119 -0.09492731892301552 0.03823474521755243 -0.004415351525256783 0.112180980330195 -0.03234104256631049 0.1472018282967266 -0.09018514576631975 0.07544746126523917 0.1166113632468761 0.08275494188757555 0.07278778610114685 0.2597969514123001 -0.1841205434537519 0.06788021895957397 0.002852335989421522 -0.2493773200438772 -0.1500862029925856 0.03890592159244441 -0.07527513568205077 -0.0309070538452651 -0.0298841983279069 0.1440875574115637 -0.05018906262328114 -0.06025221539547261 0.21401768860684 0.1493930142401384 0.1333652585828323 -0.1644513860689316 -0.1073181293398727 0.1917320319030454 0.04211720043513827 -0.03325617410057424 0.2358847962085744 -0.05531576552570384 0.05270157556976172 -0.02204619127250945 -0.05606127005459256 0.02982912792683756 -0.02712518468388254 0.2952018668094087 -0.009964997687088591 -0.03046183918404762 0.04857529176171757 0.03043983288723968 0.01194376398546001 -0.2067805618562731 -0.1427842314855997 -0.2869698997130766 -0.01754440457903484 -0.1189582216535462 0.2111332403638705 -0.03105682135869399 -0.04749585051152591 0.0946820396112875 -0.02623963438519194 -0.2913698748998487 -0.2527033466974923 -0.01292672680845454 0.167227040710764 -0.1118497216760054 0.1373157790798296 -0.1064750291744089 0.25052084295729 0.02332718041178225 -0.07064340503825219 -0.3456836491069989 0.1611961252647666 0.08760562437004332 -0.1662756750750775 0.0526247766559812 0.02529274647444501 -0.09326957765490271 0.03959060965422974 -0.1348052647751649 -0.1002186676596551 -0.01269827705926385 -0.02411956016849976 -0.262654857829906 0.02634585573229658 0.03059574017434615 0.1334453440583568 -0.1095658904969446 0.1653660058320955 -0.1136809261605006 0.1428038840878058 -0.05498598280404418 0.2294913039841647 0.03080683617387336 -0.3096504146489982 0.05558356921026913 -0.2264985011241068 0.03556299064781845 0.3678144671983024 0.0751761179683321 0.08152764270123794 -0.06493472510581649 0.1304829098615351 -0.1963527938965993 -0.07529733889630785 0.1800076492009783 -0.1542377218219825 -0.1451314883212949 0.08344166652972178 0.05291208484804868 -0.007913258494954755 -0.03039124200121655 0.04152829385599959 -0.07994400191575796 -0.02694551195409341 -0.2792023304016716 0.182922872568378 -0.04793443758820662 -0.1988501180364287 -0.02313241602466044 0.3806790349750098 -0.1087354764359422 -0.0235633636573383 0.05543209692211608 -0.01119442471601603 0.1495509220089313 0.1731985277075746 0.02608732062190484 0.2286027832429134 -0.06109695995265021 -0.2236285563540323 -0.1926920427073123 -0.03794520281908435 0.1075356138273536 0.1363843578238267 0.05236801337224944 0.07315242602667636 0.09120667067391078 0.2673917413667651 -0.04928426751819683 -0.1242584633656258 -0.07351478269641104 0.003555001656605677 0.1865312501760474 -0.2478980546448966 0.03891423303705837 0.09271232658029689 0.09990992167686555 0.04975465166628711 0.06237688864617102 -0.1618745567144718 -0.2072815728074243 3.24320887345834e-05 -0.009324489084374568 0.02516269431032846 -0.05100859800583433 -0.0671930965950919 -0.02951213277188766 -0.06777233683864496 -0.09339641768732099 -0.1972348870531456 0.3439146165567926 -0.04434332484378644 0.2407616698867662 0.07362486219683421 -0.2782920205084793 -0.0877032592308811 -0.06949037920661379 -0.05722336869839895 0.3020109799810665 0.1845736443705813 0.1639268362941793 0.0007454141494778137 0.1011307220756484 0.05352505760522216 -0.1124356121406138 -0.006314398380578822 -0.1817709975861904 0.07690033839008623 -0.06109448276466303 -0.1022404490233799 -0.02667620582706734 0.09629110625137843 -0.02431260261297468 -0.07644195566754071 -0.1186587514424158 -0.1011749903692891 -0.1564408651720882 0.08805601365843475 -0.07064913600645135 -0.02635840998600408 -0.1078314746964917 -0.1709695145951056 0.01479845069411982 -0.01381638575244491 -0.1550512932185826 0.2503777385827729 -0.2390248644176812 -0.2883893597409654 -0.06181291307901987 0.1582364175796699 -0.02312071621553637 0.00217638563547544 0.3237854977363662 -0.03252544620611295 0.003750133894739771 0.009671642707881114 -0.009497472747113498 0.07116666910192301 0.08816537960315252 -0.06363471414932657 -0.09448929109059846 -0.1838435758631711 0.03492670834095708 0.04311774220442871 0.01678837491608537 -0.08551317416391886 0.01579603526355288 0.04714940819834743 -0.06812683188087337 0.04021687008946623 0.06658770294854371 0.04200650408334704 0.02648272347175153 0.1171065218544724 -0.1580241793274017 -0.04345466645506941 -0.05306499481440482 0.07072616774249532 0.2393715380477287 -0.1142803782761256 0.007919304164271446 0.03903245447045534 -0.1972537874679361 0.1808024692666788 -0.1496471578524902 -0.03601188242560322 0.2450678955523587 0.1267384878365154 -0.01909164755778832 0.01601852906118508 codec2-1.0.1/octave/vq_700c_eq.m000066400000000000000000000267051412132000500161510ustar00rootroot00000000000000% vq_700c.m % David Rowe May 2019 % % Researching Codec 2 700C VQ equaliser ideas % See also scripts/train_700c_quant.sh, tnewamp1.m melvq; newamp_700c; % general purpose plot function for looking at averages of K-band % sequences in scripts dir and VQs: % vq_700c_plots({"hts2a.f32" "vk5qi.f32" "train_120_1.txt"}) function vq_700c_plots(fn_array) K = 20; rate_K_sample_freqs_kHz = mel_sample_freqs_kHz(K); freq_Hz = rate_K_sample_freqs_kHz * 1000; figure(1); clf; hold on; axis([200 4000 40 90]); title('Max Hold'); figure(2); clf; hold on; axis([200 4000 0 40]); title('Average'); for i=1:length(fn_array) [dir name ext] = fileparts(fn_array{i}); if strcmp(ext, ".f32") % f32 feature file fn = sprintf("../build_linux/%s%s", name, ext) bands = load_f32(fn , K); else % text file (e.g. existing VQ) bands = load(fn_array{i}); end % for max hold: break into segments of Nsec, find max, average maximums % this avoids very rare global peaks setting the max Nsec = 10; Tframe = 0.01; frames_per_seg = Nsec/Tframe Nsegs = floor(length(bands)/frames_per_seg) max_holds = zeros(Nsegs, K); if Nsegs == 0 max_holds = max(bands) else for s=1:Nsegs st = (s-1)*frames_per_seg+1; en = st + frames_per_seg - 1; max_holds(s,:) = max(bands(st:en,:)); end max_holds = mean(max_holds); end figure(1); plot(freq_Hz, max_holds, '+-', 'linewidth', 2); figure(2); plot(freq_Hz, mean(bands), '+-', 'linewidth', 2); end figure(1); legend(fn_array); grid; xlabel('Freq (Hz)'); ylabel('Amp dB'); figure(2); legend(fn_array); grid; xlabel('Freq (Hz)'); ylabel('Amp dB'); endfunction % limit mean of each vector to between lower_lim and upper_lim function vout = limit_vec(vin, lower_lim, upper_lim) m = mean(vin'); vout = zeros(size(vin)); for i=1:length(vin) vec_no_mean = vin(i,:) - m(i); if m(i) < lower_lim m(i) = lower_lim; end if m(i) > upper_lim m(i) = upper_lim; end vout(i,:) = vec_no_mean + m(i); end endfunction % single stage vq a target matrix function errors = vq_targets(vq, targets) errors = []; for i=1:length(targets) [mse_list index_list] = search_vq(vq, targets(i,:), 1); error = targets(i,:) - vq(index_list(1),:); errors = [errors; error]; end endfunction % single stage vq a target matrix with adaptive EQ, this didn't work function [errors eqs] = vq_targets_adap_eq(vq, targets, eqs) errors = []; gain=0.02; eq = eqs(end,:); for i=1:length(targets) t = targets(i,:) - eq; mean(t) %t -= mean(t); [mse_list index_list] = search_vq(vq, t, 1); error = t - vq(index_list(1),:); eq = (1-gain)*eq + gain*error; errors = [errors; error]; eqs = [eqs; eq]; end endfunction % single stage vq a target matrix with block adaptive EQ, this works % well with nblock == 10 function [errors eq] = vq_targets_block_eq(vq, targets, eq, nblock) errors = []; n = 0; [tmp K] = size(vq); error_eq = zeros(1,K); gain=0.20; for i=1:length(targets) t = targets(i,:) - eq; [mse_list index_list] = search_vq(vq, t, 1); error = t - vq(index_list(1),:); error_eq += error; errors = [errors; error]; n++; if n == nblock eq = 0.99*eq + gain*error_eq/nblock; n = 0; error_eq = zeros(1,K); end end endfunction % two stage mbest VQ a target matrix function [errors targets_] = vq_targets2(vq1, vq2, targets) vqset(:,:,1)= vq1; vqset(:,:,2)=vq2; m=5; [errors targets_] = mbest(vqset, targets, m); endfunction % two stage mbest VQ a target matrix, with adap_eq function [errors targets_ eq] = vq_targets2_adap_eq(vq1, vq2, targets, eq) vqset(:,:,1)= vq1; vqset(:,:,2)=vq2; m=5; gain=0.02; errors = []; targets_ = []; for i=1:length(targets) t = targets(i,:)-eq; t -= mean(t')'; [error target_ indexes] = mbest(vqset, t, m); % use first stage VQ as error driving adaptive EQ eq_error = t - vq1(indexes(1),:); eq = (1-gain)*eq + gain*eq_error; errors = [errors; error]; targets_ = [targets_; target_]; end endfunction % Given target and vq matrices, estimate eq via two metrics. First % metric seems to work best. Both uses first stage VQ error for EQ function [eq1 eq2] = est_eq(vq, targets) [ntargets K] = size(targets); [nvq K] = size(vq); eq1 = zeros(1,K); eq2 = zeros(1,K); for i=1:length(targets) [mse_list index_list] = search_vq(vq, targets(i,:), 1); % eq metric 1: average of error for best VQ entry eq1 += targets(i,:) - vq(index_list(1),:); % eq metric 2: average of error across all VQ entries for j=1:nvq eq2 += targets(i,:) - vq(j,:); end end eq1 /= ntargets; eq2 /= (ntargets*nvq); endfunction function [targets e] = load_targets(fn_target_f32) nb_features = 41; K = 20; % .f32 files are in scripts directory, first K values rate_K_no_mean vectors [dir name ext] = fileparts(fn_target_f32); fn = sprintf("../script/%s_feat.f32", name); feat = load_f32(fn, nb_features); e = feat(:,1); targets = feat(:,2:K+1); endfunction % rather simple EQ in front of VQ function [eqs ideal] = est_eq_front(targets) [tmp K] = size(targets); ideal = [ 8 10 12 14 14*ones(1,K-1-4) -20]; eq = zeros(1,K); gain = 0.02; eqs = []; for i=1:length(targets) update = targets(i,:) - ideal; eq = (1-gain)*eq + gain*update; eq(find(eq < 0)) = 0; eqs = [eqs; eq]; end endfunction function table_across_samples K = 20; % VQ is in .txt file in this directory, we have two to choose from. train_120 is the Codec 2 700C VQ, % train_all_speech was trained up from a different, longer database, as a later exercise vq_name = "train_120"; #vq_name = "train_all_speech"; vq1 = load(sprintf("%s_1.txt", vq_name)); vq2 = load(sprintf("%s_2.txt", vq_name)); printf("----------------------------------------------------------------------------------\n"); printf("Sample Initial vq1 vq1_eq2 vq1_eq2 vq2 vq2_eq1 vq2_eq2 \n"); printf("----------------------------------------------------------------------------------\n"); fn_targets = { "cq_freedv_8k_lfboost" "cq_freedv_8k_hfcut" "cq_freedv_8k" "hts1a" "hts2a" "cq_ref" "ve9qrp_10s" "vk5qi" "c01_01_8k" "ma01_01"}; #fn_targets = {"cq_freedv_8k_lfboost"}; figs=1; for i=1:length(fn_targets) % load target and estimate eq [targets e] = load_targets(fn_targets{i}); eq1 = est_eq(vq1, targets); eq2s = est_eq_front(targets); % for these simulation uses fixed EQ sample, rather than letting it vary frame by frame eq2 = eq2s(end,:); % first stage VQ ----------------- errors1 = vq_targets(vq1, targets); errors1_eq1 = vq_targets(vq1, targets-eq1); errors1_eq2 = vq_targets(vq1, targets-eq2); % two stage mbest VQ -------------- [errors2 targets_] = vq_targets2(vq1, vq2, targets); [errors2_eq1 targets_eq1_] = vq_targets2(vq1, vq2, targets-eq1); [errors2_eq2 targets_eq2_] = vq_targets2(vq1, vq2, targets-eq2); % save to .f32 files for listening tests if strcmp(vq_name,"train_120") save_f32(sprintf("../script/%s_vq2.f32", fn_targets{i}), targets_); save_f32(sprintf("../script/%s_vq2_eq1.f32", fn_targets{i}), targets_eq1_); save_f32(sprintf("../script/%s_vq2_eq2.f32", fn_targets{i}), targets_eq2_); else save_f32(sprintf("../script/%s_vq2_as.f32", fn_targets{i}), targets_); save_f32(sprintf("../script/%s_vq2_as_eq.f32", fn_targets{i}), targets_eq_); end printf("%-21s %6.2f %6.2f %6.2f %6.2f %6.2f %6.2f %6.2f\n", fn_targets{i}, var(targets(:)), var(errors1(:)), var(errors1_eq1(:)), var(errors1_eq2(:)), var(errors2(:)), var(errors2_eq1(:)), var(errors2_eq2(:))); figure(figs++); clf; %plot(var(errors2'),'b;vq2;'); hold on; plot(var(errors2_eq1'),'g;vq2_eq1;'); plot(var(errors2_eq2'),'r;vq2_eq2;'); hold off; plot(mean(targets),'g;mean(targets);'); hold on; plot(mean(vq1),'g;mean(vq1);'); plot(eq2,'r;eq2;'); hold off; title(fn_targets{i}); axis([1 K -20 30]); end endfunction % interactve, menu driven frame by frame plots function interactive(fn_vq_txt, fn_target_f32) K = 20; vq = load("train_120_1.txt"); [targets e] = load_targets(fn_target_f32); eq1 = est_eq(vq, targets); [errors1_eq2 eqs2] = vq_targets_adap_eq(vq, targets, zeros(1,K)); [errors1_eq2 eqs2] = vq_targets_adap_eq(vq, targets, eqs2(end,:)); eq2 = eqs2(end,:); figure(1); clf; mesh(e+targets) figure(2); clf; plot(eq1,'b;eq1;') hold on; plot(mean(targets),'c;mean(targets);'); plot(eq2,'g;eq2;'); hold off; figure(3); clf; mesh(eqs2); title('eq2 evolving') % enter single step loop f = 20; neq = 0; eq=zeros(1,K); do figure(4); clf; t = targets(f,:) - eq; [mse_list index_list] = search_vq(vq, t, 1); error = t - vq(index_list(1),:); plot(e(f)+t,'b;target;'); hold on; plot(e(f)+vq(index_list,:),'g;vq;'); plot(error,'r;error;'); plot(eq,'c;eq;'); plot([1 K],[e(f) e(f)],'--') hold off; axis([1 K -20 80]) % interactive menu printf("\r f: %2d eq: %d ind: %3d var: %3.1f menu: n-next b-back e-eq q-quit", f, neq, index_list(1), var(error)); fflush(stdout); k = kbhit(); if k == 'n' f+=1; end if k == 'e' neq++; end if neq == 3 neq = 0; end if neq == 0 eq = zeros(1,K); end if neq == 1 eq = eq1; end if neq == 2 eq = eqs2(f,:); end if k == 'b' f-=1; end until (k == 'q') printf("\n"); endfunction % Experiment to test iterative approach of block update and remove % mean (ie frame energy), shows some promise at reducing HF energy % over several iterations while not affecting already good samples function experiment_iterate_block(fn_vq_txt, fn_target_f32) K = 20; vq = load("train_120_1.txt"); [targets e] = load_targets(fn_target_f32); figure(1); clf; plot(mean(targets),'b;mean(targets);'); hold on; plot(mean(vq), 'g;mean(vq);'); figure(2); clf; hold on; eq = zeros(1,K); for i=1:3 [errors eq] = vq_targets_block_eq(vq, targets, eq, 10); figure(1); plot(mean(targets-eq)); figure(2); plot(eq); printf("i: %d %6.2f\n", i, var(errors(:))) end endfunction % Experiment to test EQ of input (before) VQ. We set a threshold on % when to equalise, so we don't upset already flat-ish samples. This % is the algorithm used for C at the time of writing (newamp1.c, newamp_700c.m) function experiment_front_eq(fn_vq_txt, fn_target_f32) K = 20; vq = load("train_120_1.txt"); [targets e] = load_targets(fn_target_f32); [eqs ideal] = est_eq_front(targets); figure(1); clf; plot(mean(targets),'b;mean(targets);'); hold on; plot(ideal, 'g;ideal;'); plot(eqs(end,:), 'r;eq;'); plot(mean(targets)-eqs(end,:), 'c;equalised;'); plot(mean(vq),'b--;mean(vq);'); hold off; figure(2); clf; mesh(eqs(1:100,:)); title('EQ weights over time'); ylabel('Time (frames'); xlabel('Freq (mel)'); endfunction more off % choose one of these to run first % You'll need to run scripts/train_700C_quant.sh first to generate the .f32 files %interactive("train_120_1.txt", "cq_freedv_8k_lfboost.f32") %table_across_samples; %vq_700c_plots({"all_speech_8k.f32" "all_speech_8k_hp300.f32" "dev-clean-8k.f32" "train_8k.f32" } ) %vq_700c_plots({"ve9qrp_10s.f32" "cq_freedv_8k_lfboost.f32" "cq_ref.f32" "hts1a.f32" "vk5qi.f32"}) %experiment_iterate_block("train_120_1.txt", "ve9qrp_10s.f32") %experiment_iterate_block("train_120_1.txt", "cq_freedv_8k_lfboost.f32") %experiment_front_eq("train_120_1.txt", "cq_freedv_8k_lfboost.f32") codec2-1.0.1/octave/vq_binary_switch.m000066400000000000000000000126151412132000500176530ustar00rootroot00000000000000% vq_binary_switch.m % David Rowe Sep 2021 % % Experiments in making VQs robust to bit errors, this is an Octave % implementation of [1]. % % [1] Psuedo Gray Coding, Zeger & Gersho 1990 1; % returns indexes of hamming distance 1 neighbours function index_neighbours = distance_one_neighbours(N,k) log2N = log2(N); index_neighbours = []; for b=0:log2N-1 index_neighbour = bitxor(k-1,2.^b) + 1; index_neighbours = [index_neighbours index_neighbour]; end end % equation (33) of [1], for hamming distance 1 function c = cost_of_distance_one(vq, prob, k, verbose=0) [N K] = size(vq); log2N = log2(N); c = 0; for b=0:log2N-1 index_neighbour = bitxor(k-1,2.^b) + 1; diff = vq(k,:) - vq(index_neighbour, :); dist = sum(diff*diff'); c += prob(k)*dist; if verbose printf("k: %d b: %d index_neighbour: %d dist: %f prob: %f c: %f \n", k, b, index_neighbour, dist, prob(k), c); end end endfunction % equation (39) of [1] function d = distortion_of_current_mapping(vq, prob, verbose=0) [N K] = size(vq); d = 0; for k=1:N c = cost_of_distance_one(vq, prob, k); d += c; if verbose printf("k: %2d c: %f d: %f\n", k, c, d); end end endfunction function [vq distortion] = binary_switching(vq, prob, max_iteration, fast_en=1) [N K] = size(vq); iteration = 0; i = 1; finished = 0; switches = 0; distortion0 = distortion_of_current_mapping(vq, prob) while !finished % generate a list A(i) of which vectors have the largest cost of bit errors c = zeros(1,N); for k=1:N c(k) = cost_of_distance_one(vq, prob, k); end [tmp A] = sort(c,"descend"); % Try switching each vector with A(i) best_delta = 0; for j=2:N % we can't switch with ourself if j != A(i) if fast_en delta = -cost_of_distance_one(vq, prob, A(i)) - cost_of_distance_one(vq, prob, j); n1 = [distance_one_neighbours(N,A(i)) distance_one_neighbours(N,j)]; n1(n1 == A(i)) = []; n1(n1 == j) = []; for l=1:length(n1) delta -= cost_of_distance_one(vq, prob, n1(l)); end else distortion1 = distortion_of_current_mapping(vq, prob); end % switch vq entries A(i) and j tmp = vq(A(i),:); vq(A(i),:) = vq(j,:); vq(j,:) = tmp; if fast_en delta += cost_of_distance_one(vq, prob, A(i)) + cost_of_distance_one(vq, prob, j); for l=1:length(n1) delta += cost_of_distance_one(vq, prob, n1(l)); end else distortion2 = distortion_of_current_mapping(vq, prob); delta = distortion2 - distortion1; end if delta < 0 if abs(delta) > best_delta best_delta = abs(delta); best_j = j; end end % unswitch tmp = vq(A(i),:); vq(A(i),:) = vq(j,:); vq(j,:) = tmp; end end % next j % printf("best_delta: %f best_j: %d\n", best_delta, best_j); if best_delta == 0 % Hmm, no improvement, lets try the next vector in the sorted cost list if i == N finished = 1; else i++; end else % OK keep the switch that minimised the distortion tmp = vq(A(i),:); vq(A(i),:) = vq(best_j,:); vq(best_j,:) = tmp; switches++; % set up for next iteration iteration++; distortion = distortion_of_current_mapping(vq, prob); printf("it: %3d dist: %f %3.2f i: %3d sw: %3d\n", iteration, distortion, distortion/distortion0, i, switches); if iteration >= max_iteration, finished = 1, end i = 1; end end endfunction % return indexes of hamming distance one vectors function ind = neighbour_indexes(vq, k) [N K] = size(vq); log2N = log2(N); ind = []; for b=0:log2N-1 index_neighbour = bitxor(k-1,2.^b) + 1; ind = [ind index_neighbour]; end endfunction function test_binary_switch vq1 = [1 1; -1 1; -1 -1; 1 -1]; %f=fopen("vq1.f32","wb"); fwrite(f, vq1, 'float32'); fclose(f); [vq2 distortion] = binary_switching(vq1, ones(1,4), 10); % algorithm should put hamming distance 1 neighbours in adjacent quadrants distance_to_closest_neighbours = 2; % there are two hamming distance 1 neighbours target_distortion = 2^2*distance_to_closest_neighbours*length(vq1); assert(target_distortion == distortion); printf("test_binary_switch OK!\n"); endfunction function test_fast N=16; % Number of VQ codebook vectors K=2; % Vector length Ntrain=10000; training_data = randn(Ntrain,K); [idx vq1] = kmeans(training_data, N); f=fopen("vq1.f32","wb"); for r=1:rows(vq1) fwrite(f,vq1(r,:),"float32"); end fclose(f); [vq2 distortion] = binary_switching(vq1, [1 ones(1,N-1)], 1000, fast_en = 0); [vq3 distortion] = binary_switching(vq1, [1 ones(1,N-1)], 1000, fast_en = 1); assert(vq2 == vq3); printf("test_fast OK!\n"); endfunction function demo N=16; % Number of VQ codebook vectors K=2; % Vector length Ntrain=10000; training_data = randn(Ntrain,K); [idx vq1] = kmeans(training_data, N); [vq2 distortion] = binary_switching(vq1, [1 ones(1,N-1)], 1000, 1); figure(1); clf; plot(training_data(:,1), training_data(:,2),'+'); hold on; plot(vq1(:,1), vq1(:,2),'og','linewidth', 2); plot(vq2(:,1), vq2(:,2),'or','linewidth', 2); % plot hamming distance 1 neighbours k = 1; ind = neighbour_indexes(vq2, k); for i=1:length(ind) plot([vq2(k,1) vq2(ind(i),1)],[vq2(k,2) vq2(ind(i),2)],'r-','linewidth', 2); end hold off; endfunction pkg load statistics %test_binary_switch; test_fast; %demo codec2-1.0.1/octave/vq_compare.m000066400000000000000000000255041412132000500164350ustar00rootroot00000000000000% vq_compare.m % David Rowe Sep 2021 % % Compare the Eb/No performance of Vector Quantisers (robustness to bit errors) using % Spectral Distortion (SD) measure. #{ usage: 1. Generate the initial VQ (vq_stage1.f32) and input test vector file (all_speech_8k_lim.f32): cd codec2/build_linux ../script/train_trellis.sh 2. Run the Psuedo-Gray binary switch tool to optimise the VQ against single bit errors: ./misc/vq_binary_switch -d 20 vq_stage1.f32 vq_stage1_bs001.f32 -m 5000 --st 2 --en 16 -f This can take a while, but if you ctrl-C at any time it will have saved the most recent optimised VQ. 3. Run this script to compare the two VQs: octave:34> vq_compare #} function vq_compare(action="run_curves", vq_fn, dec=1, EbNodB=3, in_fn, out_fn) more off; randn('state',1); graphics_toolkit("gnuplot"); if strcmp(action, "run_curves") run_curves(30*100); end if strcmp(action, "vq_file") vq_file(vq_fn, dec, EbNodB, in_fn, out_fn) end endfunction % ------------------------------------------------------------------- % converts a decimal value to a soft dec binary value function c = dec2sd(dec, nbits) % convert to binary c = zeros(1,nbits); for j=0:nbits-1 mask = 2.^j; if bitand(dec,mask) c(nbits-j) = 1; end end % map to +/- 1 c = -1 + 2*c; endfunction % fast version of vector quantiser function [indexes target_] = vector_quantiser_fast(vq, target, verbose=1) [vq_size K] = size(vq); [ntarget tmp] = size(target); target_ = zeros(ntarget,K); indexes = zeros(1,ntarget); % pre-compute energy of each VQ vector vqsq = zeros(vq_size,1); for i=1:vq_size vqsq(i) = vq(i,:)*vq(i,:)'; end % use efficient matrix multiplies to search for best match to target for i=1:ntarget best_e = 1E32; e = vqsq - 2*(vq * target(i,:)'); [best_e best_ind] = min(e); if verbose printf("best_e: %f best_ind: %d\n", best_e, best_ind), end; target_(i,:) = vq(best_ind,:); indexes(i) = best_ind; end endfunction % VQ a target sequence of frames then run a test using vanilla uncoded/trellis decoder function results = run_test(target, vq, EbNo, verbose) [frames tmp] = size(target); [vq_length tmp] = size(vq); nbits = log2(vq_length); nerrors = 0; tbits = 0; nframes = 0; nper = 0; % Vector Quantise target vectors sequence [tx_indexes target_ ] = vector_quantiser_fast(vq, target, verbose); % use convention of indexes starting from 0 tx_indexes -= 1; % mean SD of VQ with no errors diff = target - target_; mse_noerrors = mean(diff(:).^2); % construct tx symbol codewords from VQ indexes tx_codewords = zeros(frames, nbits); for f=1:frames tx_codewords(f,:) = dec2sd(tx_indexes(f), nbits); end rx_codewords = tx_codewords + randn(frames, nbits)*sqrt(1/(2*EbNo)); rx_indexes = zeros(1,frames); for f=1:frames tx_bits = tx_codewords(f,:) > 0; rx_bits = rx_codewords(f,:) > 0; rx_indexes(f) = sum(rx_bits .* 2.^(nbits-1:-1:0)); errors = sum(xor(tx_bits, rx_bits)); nerrors += errors; if errors nper++;, end tbits += nbits; nframes++; end EbNodB = 10*log10(EbNo); target_ = vq(rx_indexes+1,:); diff = target - target_; mse = mean(diff(:).^2); printf("Eb/No: %3.2f dB nframes: %3d nerrors: %4d BER: %4.3f PER: %3.2f mse: %3.2f %3.2f\n", EbNodB, nframes, nerrors, nerrors/tbits, nper/nframes, mse_noerrors, mse); results.ber = nerrors/tbits; results.per = nper/nframes; results.mse_noerrors = mse_noerrors; results.mse = mse; results.tx_indexes = tx_indexes; results.rx_indexes = rx_indexes; endfunction % VQ a target sequence of frames then run a test using a LDPC code function results = run_test_ldpc(target, vq, EbNo, verbose) [frames tmp] = size(target); [vq_length tmp] = size(vq); nbits = log2(vq_length); nerrors = 0; tbits = 0; nframes = 0; nper = 0; % init LDPC code mod_order = 4; bps = 2; modulation = 'QPSK'; mapping = 'gray'; max_iterations = 100; demod_type = 0; decoder_type = 0; ldpc; init_cml('~/cml/'); tempStruct = load("HRA_56_56.txt"); b = fieldnames(tempStruct); ldpcArrayName = b{1,1}; % extract the array from the struct HRA = tempStruct.(ldpcArrayName); [code_param framesize rate] = ldpc_init_user(HRA, modulation, mod_order, mapping); % set up noise EbNodB = 10*log10(EbNo); EsNodB = EbNodB + 10*log10(rate) + 10*log10(bps); EsNo = 10^(EsNodB/10); variance = 1/EsNo; % Vector Quantise target vectors sequence [tx_indexes target_ ] = vector_quantiser_fast(vq, target, verbose); % use convention of indexes starting from 0 tx_indexes -= 1; % mean SD of VQ with no errors diff = target - target_; mse_noerrors = mean(diff(:).^2); % construct tx frames x nbit matrix using VQ indexes tx_bits = zeros(frames, nbits); for f=1:frames tx_bits(f,:) = dec2sd(tx_indexes(f), nbits) > 0; end % find a superframe size, that has an integer number of nbits and data_bits_per_frame frames bits_per_superframe = nbits; while mod(bits_per_superframe,nbits) || mod(bits_per_superframe,code_param.data_bits_per_frame) bits_per_superframe += nbits; end Nsuperframes = floor(frames*nbits/bits_per_superframe); Nldpc_codewords = Nsuperframes*bits_per_superframe/code_param.data_bits_per_frame; frames = Nsuperframes*bits_per_superframe/nbits; %printf("bits_per_superframe: %d Nldpc_codewords: %d frames: %d\n", bits_per_superframe, Nldpc_codewords, frames); % reshape tx_bits matrix into Nldpc_codewords x data_bits_per_frame tx_bits = tx_bits(1:frames,:); tx_bits_ldpc = reshape(tx_bits',code_param.data_bits_per_frame, Nldpc_codewords)'; % modulate tx symbols tx_symbols = []; for nn=1:Nldpc_codewords [tx_codeword atx_symbols] = ldpc_enc(tx_bits_ldpc(nn,:), code_param); tx_symbols = [tx_symbols atx_symbols]; end noise = sqrt(variance*0.5)*(randn(1,length(tx_symbols)) + j*randn(1,length(tx_symbols))); rx_symbols = tx_symbols+noise; % LDPC decode for nn = 1:Nldpc_codewords st = (nn-1)*code_param.coded_syms_per_frame + 1; en = (nn)*code_param.coded_syms_per_frame; arx_codeword = ldpc_dec(code_param, max_iterations, demod_type, decoder_type, rx_symbols(st:en), EsNo, ones(1,code_param.coded_syms_per_frame)); rx_bits_ldpc(nn,:) = arx_codeword(1:code_param.data_bits_per_frame); end % reshape rx_bits_ldpc matrix into frames x nbits rx_bits = reshape(rx_bits_ldpc',nbits,frames)'; rx_indexes = tx_indexes; for f=1:frames rx_indexes(f) = sum(rx_bits(f,:) .* 2.^(nbits-1:-1:0)); errors = sum(xor(tx_bits(f,:), rx_bits(f,:))); nerrors += errors; if errors nper++;, end tbits += nbits; nframes++; end EbNodB = 10*log10(EbNo); target_ = vq(rx_indexes+1,:); diff = target - target_; mse = mean(diff(:).^2); printf("Eb/No: %3.2f dB nframes: %4d nerrors: %4d BER: %4.3f PER: %3.2f mse: %3.2f %3.2f\n", EbNodB, nframes, nerrors, nerrors/tbits, nper/nframes, mse_noerrors, mse); results.ber = nerrors/tbits; results.per = nper/nframes; results.mse = mse; results.tx_indexes = tx_indexes; results.rx_indexes = rx_indexes; endfunction % Simulations --------------------------------------------------------------------- % top level function to set up and run a test with a specific vq function [results target_] = run_test_vq(vq_fn, target_fn, nframes=100, dec=1, EbNodB=3, ldpc_en=0, verbose=0) K = 20; K_st=2+1; K_en=16+1; % load VQ vq = load_f32(vq_fn, K); [vq_size tmp] = size(vq); vqsub = vq(:,K_st:K_en); % load sequence of target vectors we wish to VQ target = load_f32(target_fn, K); % limit test to the first nframes vectors if nframes != -1 last = nframes; else last = length(target); end target = target(1:dec:last, K_st:K_en); % run a test EbNo=10^(EbNodB/10); if ldpc_en results = run_test_ldpc(target, vqsub, EbNo, verbose); else results = run_test(target, vqsub, EbNo, verbose); end if verbose for f=2:nframes-1 printf("f: %03d tx_index: %04d rx_index: %04d\n", f, results.tx_indexes(f), results.rx_indexes(f)); end end % return full band vq-ed vectors target_ = zeros(last,K); target_(1:dec:last,:) = vq(results.rx_indexes+1,:); % use linear interpolation to restore original frame rate for f=1:dec:last-dec prev = f; next = f + dec; for g=prev+1:next-1 cnext = (g-prev)/dec; cprev = 1 - cnext; target_(g,:) = cprev*target_(prev,:) + cnext*target_(next,:); %printf("f: %d g: %d cprev: %f cnext: %f\n", f, g, cprev, cnext); end end endfunction % generate sets of curves function run_curves(frames=100, dec=1) target_fn = "../build_linux/all_speech_8k_lim.f32"; EbNodB = 0:5; results1_ldpc_log = []; for i=1:length(EbNodB) results = run_test_vq("../build_linux/vq_stage1.f32", target_fn, frames, dec, EbNodB(i), ldpc_en=1, verbose=0); results1_ldpc_log = [results1_ldpc_log results]; end results4_ldpc_log = []; for i=1:length(EbNodB) results = run_test_vq("../build_linux/vq_stage1_bs004.f32", target_fn, frames, dec, EbNodB(i), ldpc_en=1, verbose=0); results4_ldpc_log = [results4_ldpc_log results]; end results1_log = []; for i=1:length(EbNodB) results = run_test_vq("../build_linux/vq_stage1.f32", target_fn, frames, dec, EbNodB(i), ldpc_en=0, verbose=0); results1_log = [results1_log results]; end results4_log = []; for i=1:length(EbNodB) results = run_test_vq("../build_linux/vq_stage1_bs004.f32", target_fn, frames, dec, EbNodB(i), ldpc_en=0, verbose=0); results4_log = [results4_log results]; end for i=1:length(results1_log) ber(i) = results1_log(i).ber; per(i) = results1_log(i).per; mse_noerrors(i) = sqrt(results1_log(i).mse_noerrors); mse_vq1(i) = sqrt(results1_log(i).mse); mse_vq4(i) = sqrt(results4_log(i).mse); mse_vq1_ldpc(i) = sqrt(results1_ldpc_log(i).mse); mse_vq4_ldpc(i) = sqrt(results4_ldpc_log(i).mse); end figure(1); clf; semilogy(EbNodB, ber, 'g+-;ber;','linewidth', 2); hold on; semilogy(EbNodB, per, 'b+-;per;','linewidth', 2); grid('minor'); xlabel('Eb/No(dB)'); hold off; figure(2); clf; plot(EbNodB, mse_noerrors, "b+-;no errors;"); hold on; plot(EbNodB, mse_vq1, "g+-;vanilla AWGN;"); plot(EbNodB, mse_vq4, "b+-;binary switch;"); plot(EbNodB, mse_vq1_ldpc, "r+-;ldpc (112,56);"); plot(EbNodB, mse_vq4_ldpc, "k+-;binary switch ldpc (112,56);"); load trellis_dec3_nstage3.txt plot(EbNodB, rms_sd, "c+-;binary switch trellis dec3;"); hold off; grid; title("RMS SD (dB)"); xlabel('Eb/No(dB)'); endfunction function vq_file(vq_fn, dec, EbNodB, in_fn, out_fn) [results target_] = run_test_vq(vq_fn, in_fn, nframes=-1, dec, EbNodB, verbose=0); save_f32(out_fn, target_); endfunction codec2-1.0.1/octave/vq_nm_xx_11_40_hpf150000066400000000000000000003322461412132000500176000ustar00rootroot00000000000000# Created by Octave 4.0.0, Wed Jul 26 19:10:53 2017 ACST # name: vq # type: matrix # rows: 1608 # columns: 30 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 12 18 12 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 12 18 12 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 12 18 12 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 12 18 12 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 12 18 12 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 12 18 12 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 0 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 0 12 18 12 12 18 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 18 12 12 18 12 12 18 12 0 0 0 codec2-1.0.1/raw/000077500000000000000000000000001412132000500134255ustar00rootroot00000000000000codec2-1.0.1/raw/700d_end_over.raw000066400000000000000000007222001412132000500164760ustar00rootroot00000000000000 21(*&K +E}u%F#5g6"q7dT$ V,AIJti\R U-2;T)I).1P4w0W/!?`;OB$? N6 3S  z>8l (}&I$vqe>SjaE <<.TV uO' Jf B%gW]/`u}B:m8(*Q?j RO2 2^'tE 3*v]? ?vyTq ] y HO y~iN #ڿ+{i i 6aI<`@ @F&%<W(p1l"} -f" O> 9G v  Te U& #;D=# )(Rr}<^09 j9:;a^ c5VcOO r e* Flc  ] #k=>!UV1xK@ eU,JH1Q~uhw0 >vb] O)2qNBNQ߅ .a$&QVE1 *Nj  NY. ~nD|y6CYfgy=&,7* 'W#Xa7;D Y ,d'YN> E 1;" =|3 dczOp q F= 1$D`ne 5 O i ;zvw**<O_896"2 ,vY!) {#"N ޺n oWGC0 D  GRq(7k )b#"U)( ,>L >v>8x nJ4~ >yO i V4E UcO)%ҁ!2!ٗ` < L U2UgW$W7IA q Eb S b7d"-W; J! k "8m )2 (4~ P x6H!$T"i]N dj #C[< DVYL S dl! B G5d;/ ; x $i    FH `ekXEQ 4h".  1 \R$ k~OQM  "  S5HȄh(*`_0D?jC t)fpfs; o)$BD#gߘ!}vx] >Bd IOg ' yH!6M,?wY` ] B Z 9 _O# eS!i 8^> 5]R  jT2! @Ua3 o s, U;=);7 2Pm f}w!-A0&]Hz-|co?mLJ $ 1 I| i08)m (|%I$yu`Uu;p@) 3m   !P `%$E2vqy*0 /9wuB I. `u?GC? KS,) I=7n.' 7j m6!#9_T _~ (vunEa."4 `#Dm}~[ct H Cf)";ܦ~SA 3) ) (Z2J?K FU !%5(~(B/ 5Y Kte!/*; * l~ +#ۖs 1:F"K -Lcm#H' * d )7!( H,Z /(4o?!~qI[5_9 ` _b7X`N i O0hDa Fߤ"voܘix80I! evy>Uz=e *~&I%ulb?Bi S Vc3Q= To% ް^ %P8c6ZP_i,Vp)O xn  2%3q!R}';#la(:9K/ MA7t^ 6 `&I7,)y ,c= ]  "N+ Jz'/ N@hL   y 8 , "3 H*+ B  U R:bL WGirG Z>u o ]} CD#@W- EMn#y YJD{L t ߋK!%?_  xdE fDf&$WҌ!*Y k;&jkޝ+py[|R { M q ^_ v CX&8,"R v8^ (|+Z)yn L"z4q +Ob .A!A#Uw{F gF`v{0 WBvTӡ 5eY LD>8u>> , VV\Zt V%#wN1:[YlYox  ;Cjه9cn jtZVN><0\;Tm s$2J9 {j wn"AZ#k?qPsC&-:' bX.\ Hk~'-H4$d R+ j "i (}&I#tsm-Xtyqw >q,NDR, @s{ Nީ -%U ` ,)0C$)Aک: *= .OO 12J{UO9y(2"_ Ve(/ w Z% O!sݼ_Wߞ'0'4, &Jj&F H"oW`Akg-]+O|A ;@D@y4!atޯi'KA @[ rlc # M Q)S(V c \ 40'3Ϫ#rxo >p?V aB/4w"i 6'T\ _FMܶx g_Z x 2&  ` Z #)F |'~tG 4 } Pn ytH) z z ! U@2[5, F]$ [%fj gu$q hE17pw( C IS/M f ?!܍CKYD h@lzf  % [) GP _lZ Nmcl$r+ B cw>9e_v_%IH?gg$~?nlY -,D&;]Vh!\)( }/mI,| (Y8u %h9L3 F_ OVg}O *8 D#&* $[&[>jyW)l R]a = {Z*B kB: A\Z ..%p>US { R vb6[|Ph5(cm Y^%;;Hh mnCH 'a 1!'gK SB~ &`< 'd> 7e&#x  J ; ' w* 'HN  w ,]\  |^j4)mBQ eN onI#> R;Z7N#W0[D7/l $2 Ju89 h| `hJND~H- (\ܗnWD 8  s` @&1V6]ta & Fm}S~W$z s{ rdk 9'!Kq  C A( U*Q}WF zX GR>l!jp*a-T2,;O.bLѳD`4j; )X;D-E{$< c" F"uv n1O-w (}&I#wtfJiD#]P FNG0e> & ^6l N+, $a |\ RsEծ-<)ߗS_R"g uR0q8 Q`L) Y k1tt ]L1 xڜ BK #Sr G\mNUi&%[B  @CVrU}  )*Z_xK > ;N =h i4Ps X%Hh.& f  wl' U <3Q5$TB(F51%U h~= 1zfPA~ (&"kB9< z: gz ! :4#.1"# BD,& #z7 a0$ p ,vSsIbn+Y M(. HX 5 fu KLzOE *eig"agw8zщ3 ZR s 7vW%v<3W t 2  2F G 1 gNK I(1m>Qwp>/ۼNm Bo 754 L <nF Ub._G ?t;8V |@j&G HH09Hs>5"dO, ;n }B ?4"Ma(w? -0Р] g+Fx;Ma *- t,gs k 6$1ZnA w 8D\l[^$7 0 t7'NP>gw%0ע+ v ! 0) r0j }[ 47K IXٿPUUM\@  U)f.'ag*K}B\ 1 OOMK mt&- +W%{t 9r N <YjUJ'd ~Vd/P&!'J4^ r L@(E"Z !(i'Z% :{.g: =8N S- LZ[7>~H |LC Lx#/ &1w A%:-b.l kYgcr P ' b -F4 g8 (9 ^F x= EE  -n6 qLuQY\ {% I-bWX .;ќN288Es\($y 16 D{ jkG3m (}&I$yu`Vv;k5 95'7br ) Bb y%Mm*!q ~f,tlV)K6X _u_{O 2kpD R ތE )|  B a V| E(t 5n $^;a %F!B ['/ :M2 $)ڰ)3߯ s9w\ 9k#/F#ov^]"e l2 m tnB uTv`NI  /3C b c n4 o в&1/zx|g Jg< t + +wHS' ` h)sp~zN Tu9 lH @0Z'H" -+uo  lN GFW, M% i 8 ?'@~@ i&efܝ%H r{ 1wz< e)Uw o+. ,%5gX&1܉$aYW"o yg iFv z gTo% / F^t( ZZPiQB@W X, av wxv b1~#$Cr}F[D X sX~is HK,_ :N[:?l$z+z =.tl8& ~ lD ) BS٢`0 -Vȉ#Q;b_ t u g!dL R)Zu o%R!qׯw V) op l[ l Efl s_ 1Hf "$O&E` ?I@/ ?DNs!"UE| *+IJ4D OZ L{n%?VV ;H ܨ#`&hP  qx?G. x! T KV`;um!x Zd5ZbdNCl^- k) GK$ Ot* |'}uچL! 48 P#$ :=[T&% "x &b k hVNl{: D' c CPp 9oG+ GJ\v1,h<35 va!m: ^*Xp 4P)X.o}[~MM , (ҽ,2b.UQaN" i,E\qz$= @$ <H  q9/g '}&I$xsaOgL  >* 6(]d, J U)J (%+:f[{Tp*)YU X, VmqS{_ q p+7 5 [|56 g 5K^"`50`+  G/J 0ݲ 7m݀9 w7h   >lc"y& D0k' F]f;I K9)|l m 81.T g 77 5'#< ӿ1$Y(3Z !Ѳa}&  t 35y fmT$ dK 6 ULQw(E+# :Z Z.6 /-( 3*9P =gj8|&  jTL ; N%efcWc{.RgK" p ?{/k>< y : M- bf  &-aY/ w.r$* 2Nc))? xX0"I "F +*@pR ) ah c3 A)F"C,)ׅ XaZ P ;* cC$ym $ M~+ G!s/J' <*&9=R  -  Et  P4 )HW4BvgZ]'ܯ(sޞN<2sZ 3 @s gaf{ ,[ 91vlK[Pu;0 gTlRPAC \ 5e a/)2xgC'?%j #~` Lf Ove " 'z T>I ^7$VS7,= \ b+` Nf ^Z fSo 9rHv3"R,\;F/.1=ѓ)@)9?7dp?N,$1 h1  O|  l+4"h (}&I$wteH_S  }d wQ tB~8<  9R>D 9 $BO ~J.gX+T *s$ TL #,CBX,{H  Td ww,0 #rpK { dgk4<J [ WM9-C{TOd| l( ޸' )JEd S Dq uEJQV yqq>G1 > ?;) %cj%cp | A` [# L.7g  -F#,.' a^'Fy IUkL M" :; K1| |7FrMZ W  WE  (XEZ| W~Q ZMH  "! sd(}8RG;z+.lL1  *I(!.[ۿ$@޹M<B K5S7ݲ wfQ^)$ Z 1p O 1 74!{l:"@ Vzs }iJ) I K){SeRu iCE)n?%;% I!d9*|j%'3O . O C " z;" m Pk fh3 2 r ] ; ,-O_;U "s# t _ILh m0y3  2iA D J YW(K lI /OC-$oa    Q l<JQl~g)n8a } "G * B϶2/ş*   &3r R] #54hj0SFom!IRxU 6 \hy|Vz*AR'l]  X[% B!`s w !'65 ) ?< 6HaRc{R" Q p Y z9r64+86;6 ^# aW 8Y FUew kE Zy^ K4 ! ioj^۞?+,Ԯ'$:y1 % m M9_Z 9W9  A/ dZ $z*bB=dQi` )gNnjL  Ҿ{,P2!Wm-gєM>J#X/s\9$8 7: !+X r* ^ '|&I$wseA[cc: R4CC-m * P]J4 & %--Agd]`en*lL9.Xbv5 ,~|iܪK4B 6@q ` *,l9/ p*,O.ݫH&;$ 4Ѕ- JId.E v# p @  D ^tU= 8'S}; \ i#[E {mSG pr$[d^ @]P 0IO QF:!ڬ2) <%b t wM 2 ~%{ \uI0_0-/> Nupjxځf3v S$izbOj { V9p>_Em %H97 X H_#& nJl~)): &#&4  -.D? R &y  ] OQc ؛kuiKi ';oTs PgJ. r l2} ?^ Mz L-,܋`! p$ E؈.o6Jha7 rM %  F Aj%g< p0cO g{h"עEr"Yc  Sj &g wfm2 { _ CU4TWm<,[\96.t+e0$aj%5.Y949$' 3+ ^>b  Qq*R? l '}&I#xwgDyOd kA .{iG! V] >N ݧH N%+k' 05_6)PP#eS?H +e M n |ORN\A  QCZw 8/8P7s@@.u?E B)Պ!bTRc'~S P v='U8k \ LJXd]C_RBvV*+.* {' ! @ : /8 5%  Jmq_Vs u : Cs Q'_k*Gp< z[l ! O /pfn/;mH  oh` ?;JO *q((< f mF t. ?DJ` 1 Bo$z `}X< 65zS! F +~^+]3tDo"? o\Bel?bbe,ef !(Oh#9m"_NHwmB JS+l' /K" "iS8 3,՚$dhN U 6F {o d] a4L'C v6+gELSr H g f 3 UhAl [+mfmۚB3 }_2&v%[VAc o1@- ! iiJ U,r $rs~#+'Ҽ";bac@\##"9u |nb : {rT*o[d z  fyYb 5=tW8 M 7W ,qߚ- \C?\ u l ?4 Z  V* ^ $Xp_ޑ5 "@L @3 l fA2- wߜ l+U1w x* #2l& [vL'  (Yp eUX:% (i G 5 Bv-0 t{ *Pf8vv1b  IC"#Y_,(Y d :aVpZO_c=R[ LLm%KeR q2cw ^atEp7e %*$=bR !ݤ]"zܸ1iy 6d^q a  Zs :Kq .x R.eЧPeR1_/|($ % =W <&!s )}&I$urg:TlIB  c1 8&dA) d@  , dD $\/EIbio.Af1+oL 7\ {88ZQM$ u L=A  pKAw,2iYz5_ |y `S5Wz & ! 9.?/" #T"RrGA} u4 jMK~Tn> s LZ ) _s3@qC?**>|C!E#$@ M, ! @=*f N0 fq+ iL ^ 4S!! Xb~ 0[ } ca\w2)5P% I Ql .A7.g  dT $[cLXZ ^ & ^E["DtaY L~unHBQP22n^ Qd` k= aF ^>GOE#/1)=&`:dH{ uMA$ k 9 BQ1@bG g] f[)2g(H<5I#<Cٛ#gf7+% P<\$" X % B Ru " Lp|> WrLk%z%  -e eci! S`L +a@ 4 9t_TY:Dp$ _l<h !YRi  . B]`xwx.f &8Ch*4'l5NvE!F' X<L!niN? Zs> &L 8o`6 .C`0t7,)^7]jA\^R Ml0A0"  oh n. :|@ E q%66 /uA u 9^:n G< 6:PM.|#1fxsx c33* Rk =|ݰ!&Ysu= v w4q F!> q;V +s(\S F,X`$1"w sj   ? NU^ #-X_|Rzq3:K _ao a7 - $O_}=,:  j { ,9 v DV  S L&  `Oa d-,-,zz--\..&8y}4$Y IN W  k2- !d '|&I%xr_P`REE BBN8 N  %8dpX{760B!s$)h j 5     Z_!2"kXqZ { F7 N+Yf Ip5)A ݧڞLV&"=   Je X:vH{ . c,w0no v *[$}.n-'w jx`Ct 4j bkhCw3F8\:#)4 $/H؊"z" X& ~u Zi r0hQk~ '/A&%n!Rq,u? *')%6, hc a AX ~ 4"l1|4h0 f n"91סV 1H:Ni {_H6 @ ` s fU$G[d5PmCV!;l D   ) ` 68 ;ix]Z[\%*Q׭kPz8)*!YF>dZ $,]p 5Nu+c E7s^so p B{0YE moFDO41 Np^P 8P3 7@z B U]} {ZnS{x x </} 0 |\j !a]7 ksZ W qTTKxRW2#lދ޺t#E+,U. PXN m3  8DbIw u%rv / )s?#1 Pu B &  x~8*գy"VFp ` E> W/_ ?D9ݧb}e  U nߞ 8(u Ja-+R:z+E{    . ' NA\ r MQRG0 S+-"F sB gOpgLAh P%-w-p hLP xF 2 vEF )  +/z 1vf<!z ) 6 eߥD%X6#D;xE="O (1pj}\ 8 & .L8S XNV%=~ E Ls40}  NX$ +tG~kgv4W-13\.9D/?-yB2If(V@/v$I c8 )rZ  w.A(s (}&I#vsj2Zxif 0 #PbSD 0a: Q g%')Pn9!<'ߜQOM 0!b@'k /w 8c,_E!.v TCRSBQ ,j?  L/mJܑf"fu.gn'H w @hGw g%Umo !<ypS,ܵo"p t@ |K8U^ (*)5Wh& QN*nV16 xWOf( 3 ,u ,M (0?  /u`n ?] 5 ' 3 34"}I4 z9 ]|[c; _Q M]2 %E  A Gr.9H70YX07' %]uߝ/ Ht%"-T@Un( BtRe׮$u M 3b8}> Fh  C" vf T ~U -|oE*R SL"]Y*ٶ  x B=^DG|n  : G * A f= V $8A#  g5$4ݵ *  >7޹ L HW C n;y>yf i y6f ,sǨ! 9XܳGb %}p \ < u Zf]+5\e C \   \`'FN" Sk~z <wZK *+ ZFR{  M*XU-3Eν$Uu tNz,  !7ߕ/ $ 6|0sF56LoVB p /݂"lp "U\s-GJ(  O gR $ Hߊ W' j7 IlHh! ?a_ !mr5Qir". $s$Ylm pB](X 7.n., #  7 +y"R! xKW_  g$Qyv S |֪0(o'ћ/ E)JqV" $W ,%:Lܠ> r) d9yPQ>v$c#x C(~cY =;4-jdnB\.?ѡ !3V7>II$f =/ (pv $kbN<q (}&I%und:Ct'Y, %KO:6 $OF u H{ w%@&jYF$RPXL>6s*o~ u 'a6:&D.y l Jj* y>6mߝ'T<J~rt >E~PO 0؏4# D!*gl }w 4A  /c sOj5ID U{ 1 w c^" P#A VQ?.Hn! 5)j ]k D 2*Sce/ Xk=3fC  E gTO" na$B LZq.8$ y\B & _ @RxF/!. /dpD ]\2[ (~ \ } L V'3M f-jAQ=NK(b# q 'u{"4 cL Q $ s_N7o.V oH2 < EEOb P;=J"b!ihxC_ P Vgt fd R1p=kjSo#Jt8MNt'W Or9}! 0v)nD8Q u! 5I3a4 :s /Am}w?b:wTw(~-" gY [~{m YCM TE z# >u O OCL'/ 34^ ~5y<] rUhDyk" 84  ; AaTxy] C3H[= OYH95%>wN$T  E 1Yi enB=WnhWO   G"  P; n{0 P2Z <fV  b"JX%| 4  p(<RW[(2^ v7v ]$ L7 k^ WE"r8L B )cwX"Jr@ IFxWY*'tq&z 0 Egq7   #" Y# L[$v8[ 23 B \Z s 7Kp <)52iK FL0 O M`6pZp_W S G  !Z  2J  !!jkJ X@. p 9[ |luy, `.ok"5Eh`lbe vX:@$ = 7)t  !)d '}&I%wp`NXNcW UAAh/  & xp g%E] BR)Ӝ* E3L@Y q 1 1)pڧ" 3 &#}ԓL4  t 2QY :_|3X&  (L 0 d!r43iE c i<V lXRF y ^&Hv d+v Ul>G p+ S9.v'7h@ - _ d{ ?dc 7+V i*ڛ,%(@Is' !\ Rq+BTV%#C1 8,{x R "?o gcby i WX]{vg+> f 7 GM9OO Q ! X<3TX] z}yDXT  &<^  #l -!+ LdZ| K7 YW!P 30 ^.p5 o"u?9'Z:f xZ PNi+AE N> l/~ M O .&/q R@ 0_ G@Z S :$ߵLJ'F9qOX6U"8} x'9zRG& ]wz5 .I j"5b`b) ^NB{@XOWQ) &X2Yr%0@   $ @, gb-, ^D߅N$h` 1 R9.<  41h ! vIKe3z )^/ ݳJflj? I~s/k 6IUB !U}OU P A /m.&6jS -eKr }O :} |~,2x!d0 U06X }un Y "PHi gqV $[O4pX rNS"/# 5 @?( J Xt^+fvC[3)԰P6{4$o " I)J5 )  +Owq'U%X .E_K4[ASm- |A4LZ<)USSNB .m=# _,v c? AHW d w"#IWA_u%  ; ) "k) /*T! OF{@my>*aVӝ)- QfH.#&w3:< /?<$x #$ >f #rp:6h (}&I%wpaJWW >" !ZK+4Bu5 v' _i O%H~vMR*!=  Zep!i_/d z݁#JC  E$/Bew tR u Co'jm/ ߵ x,Ffz yqLZ ( s j7zB3@A2 jSl_pE3uQde08"t6 *}.:i 9 [Y&.*e4Yy &_XeIwq N('߃" W >D OJ"& g l{s Q5 ' Z v $' gmVM M2]!y"\FML!hH B] B $"25+> c~HcIo8 ` : %|Z0!KomP mj O%$} g# Aְ!!}G2Z\ Tg9!E 6kB: #`lIy&6+8n`cyFw 4 sF_! @8ki6 ? h -7NJ ( 9_ hT t 5N3 &n #b uS<,N 2,V ! P-) C W F Vmo% ^vH/qy'RJ I,%b3_3s'V6` +gsP 8Cޢ \ 7\X R 5 GWL &7i qTT}$ N m5kC (I-^KHFFLh(8C] -5 F d *q.Lo*mC8vM  Piz pތT .hl $- 2d(?A0(^ ( d.7O(XC |n AV$K Q7566UkxK)-Wqkt6(\/v,+? t8/XwN]j P   5`M jKu > S^ X G%c jr9tU j0Qu$X)p< ![Y/ n*l} r USL&3,%F#_pkP6n D4~;0j| ~A]=\  `L-m)7a-OGf.#ѝ$OUBS_m (G:$[ C2 'zS  ,2i (}&I%zs[`es;,S@  P o-  yt G%~V_]=yG%ч+Yjb -A^ _'Pl t .*VCLg KD# `sKAD 7l }q;bw l*_5(nv$ R *` U@Cj m0`% 6݇p&ygKֵ M6Z".$6;  ,>") * Yz k [$NLQ m  LYi# /Ғ"7SI}( } qo18_C =y8j { u p5$M]0k7>'K! =އ=qvI @ >PFa[ $ ( w_<.y4%p-A1 x :o Tf_{e h>65+shf xk=r oa ݷ 08" 3o^lD[UNK(#u  Tt<PG  t!Wf  d  ) ؑ,I6u]) n %>B"U Vrj FP;ii^g NH)n} j SA, L\|U"=h 2V&5/!@ SF,rE@|jHljkI< " ? u "^qr"B # ` k: b%cC,7 d!/r 1߿xKX= k   $`:E cG| =ME xy{D( QM|@CvbhN ]IX p>'2,eP&~)ݳ8A / /fg [em ` $'T\5(Gv pQViQW !& 7D | ? x#. #2PVFeq ~6. FbZӒ-5l(R.ѕNG02<`y90$y C 9 ^+  +/$r )}&I'viYR4`c&? GM\a+ #1yZ4l fj %@(`Q?D `҆) ?JU _' Vi&N.%\2? (  vz>M; A 697; f"~ 2G: 8 l}#C |4<dSGeB ۈD n Qa- -W bPa=s;-#|0,!-Q L z?" Ua$Ff!UeQ}3*K~ -v? o/-;РE+ ^O!A6|d={h"6Gb  V3F   qF <E 2fׄ-M s7/&n9O h\&' -e\ %LCJ -2 v ܘz~W|>A!"fx"")1׼$tM=!a 6/R4 kE XFM*/_A/ :sR Pf+VF/&RtY"sI sk2Nl$ On l >H ޗ '?Zo9 / ;Yl ۳0 ۅ/ Ti qs 8Gl{X # /`UgHq!& ;| "K$  ^fz[/f @` ;=Y : C b2zLpؤ1!!+a | ?)&7!v(e:ҍ{, !pKChom52W&  V( >]5\߄4 i8k$V>4 T D| _z gdfU7d xE#  x a?}`$ !.-2UQ $KNa. _ X&q !P{ JZt"؊1%8 Ild,EC)RQ 7,x ; a i$Q $r5) !{<{J?B* SU Zgj s%##B If % P?$;) K ~J+s e45_ :R4 2s"5N) c  7 V <0x 1  Yi}pRty$+$TL mV (D 0(/,d)}<~1 + ;Y [4 oel =MQJ 2"[V:o -N{0.=.Ѫ$*D7_s!74$T ;6 %|q |r 58g '}&I$tpi2H}hm &gP7Nh gHT J&ބL Z%J"`kIyLQ ?q(i)T.J( g {}) ?"iGt3 GD*aU "i" ؛ % c6Vd"K t,ClMo6>3U (j4KU`[JV}"޲3 KLy  C > 9R'~&I&Y#gB0} /g "# "ۛ)9 }&)g gQ}>R.%k PxW"]g<Va;y~/ 6!y :+x 5IyDX .xe vkU* Y" v / [;tD x" OJ(g a u &o$ +}a)4 O,UtrTH |<Ev`6E]vno p &:d W 2=   T4le eUl01 \ -"` # ד 8Ij e R,W gSPCx-z )\] K E<A# %%:1&] H Tg X [t_A O?/s` #  yc#t"v)"X `%@V*k$ 9. e idug"\ Y hZs 53 <' Awlo]-V-1QR b|  Uo %r"?9Bj Mv Qh8zP'`76  inA -&[ yqq/MYtTFG aݠy 1|Erk8Adp!,ЉD]BXi|/dIc 7D)ڋ  Z z9O ^z h_n  ^U b/ JZ 9 R=p |Հ,#;TG gz 3`E HW} >Y E  .!T.Z;pUS I4&kz] }3)'$'Ed3<5n'm%!eR _#0 ^%I8U t#lS*j!of JRT x ~W+0 H CVQPg ZatO q6d n\\ Vyz) g=<҂-A%X.kѱAmM' q$9u Z/$g 23  L [|:O!"s (}&I$vrh8RsU> Y'S8n  cuHI !H޿ $uF*h4cIr| }1*p>{ >lL VӷV)}.'=/F ]6wSmt   7 - m:V"O+ V -. ) e ;2m"f5@ tr9 "B.  } 1?(@s go zg |, j'(./s1g 6\"9P z{SV ayD v!5k@DoT $ GGU{I)*ҡټ" `]:(4 9 {`-wo!{ : D qoU T? WbMO n n*y#l)Fx W') &Dt<*A rN #F!nj yd) ]}, k5 -R.Z cl7QXj A!7"W   i B mY #A {(jc*3 νV!*.'<8ay cbQX?ߘ#!XIex:Sj*L5m/TO pK U  E?KCB@g.<?I<]&.;W&=*l/ CO{t6e4 QBAJ 5cD9s rXZ K(O ] \AK a)OsK $S5=L z&G+Y%} %&T#nct} AA&hg kI  !Y3) | emE  C##&I`֊D ,vb~S  ,H;< nd w )({("#S7Mkb ,VS)ev7 5kp`O nK${  *bT tWcO JAC%- 4| sc>fS,u>m | Lk <o))3p@  jmY51cH "V$S1;  C 2G$ ϟ )%HVAUwq# \,aH8,%F.T*iM}?AZzSJ$? f CF|  ~hETj '}&I%umd;;v Bf1 V[-#!W )Sl8 ޯ/ I%' U4C4++Yk9 EM  f6 K'  w* | 8z D. -t ܄ф ;m"1Gdjnn9;L 0s|_HSi,B C^y"+ N?*AE X 5z v^s yL'n$g *C8 3M-C H in . HR L^ ->L /ԥ )0%v s 5 }=e ['D ݖR$2ce xmkE,\tvC~=v|*Tva!CZ=(%~ mI7cO*&s!>wQiؙ%) = $J'%<j7eP ;D ,  &+ݚ@2~ : ;o j GD#$j@ppo 8EoV7%|}l vZ ] 5 x l+ d x}-(sZ n)?T! G/ F #AVRu$Zr̘%G(:U]WN} &{}F@u"7dX'@UN 90| 9/x~*@B-J ;9C;X% }>2Gz RyZi`4Q_Y]Y#I)5 'R:x|y>a r- 2r]HUD_wB ^}q2d=. C^wiG$}'ۭf: I0SI{+U 'h!8< X4 f7a7-"@.4 8 n&t oFg  K+j^0 :bb  G hIFo} > s5g:2 p&=}Y!!W  VU~OE a ;T~-"9{ w _|' J$n %Ne*i\:_'q6 dw   7` $_N r? :eHօ+!]* u s6 )QL~&_t_Q{"O'|A.?G+: @Jsy#:24hp  (h{P    e kxK@.LYӥ-^}/!z9L0*VVt*=c$R e = zNz  osVE w (}&I$zxaX8i %M  v% c > > W%iFWb&842r`C*_*s-:ٔbM4n_ 2\0  uTT%r#zJb*~: WL AId] !Su6BO 1bor3R!?St! e{z 8  pH?<%.(s)(؆ AM [7 Nl(((1S  d:RE=[dIh/ [I|"1 yXWm-! 6k2~zd S UOW .{E "g8IU`Ds w  )RܺL"$wp]E { \ E3L F.zb_V@ r9Z#'*A :@r & 38 AlCHi FM4Q 6 v} (:'(_X"  3"5}ezD/=iA |e sO`WW3 P#-O ~i 6Uf| zamf _R / } r[ +1Q'g 2 u K0  A G\35 \sۀ@ fz6 )0,ba+ d.O w,4CrH i x3'kG[YpIY Qf v- ^k/8GF'p m 3C' l+sF-qobu >  !& }@V Z  3{ y5)n s}i1/.V )P* I 3}] j77IGl { %* 1 Z:9b y$DQ-$ AuP.7axR d} 6'd[lT$ T42 Z\Ef : klWWq '}&I%yr^V]zJ#TD 3 x  ud RG%AZ}E#6 }Z%+Ms p#x |Y KCHI rbi 9z  =><R Y  PmI  |z%!S k[%lQ_ XP|u o`  sB/%;w+%_`9|vsrOY -@+zaox& lP I#r% .2NtITj9/ \/ 9 I[( 1@T<4UN$?e 9J ? "&&C, )wwM0 ],gb*ke & #//Vaqz8< O3 O b&A wFh] j j fD6E ,zع GP zNj]@H kS x/MJ+8}H -*>d+Cv OwD Lv3aT B3%i3 SS\g_  [ | &9`#p},* *mE -^QA   SAf+Nh7? wu+ @ l"cV&d HA Mo"? K8 &M{G kstJ f .S8)t֫{$3G|"0m t7: So dHN Z \rC Pl_*E*yu6+tW d۟t$}"+֥' WJ e5%p &c ;'1 b*D&h8  ' ,;~x *Y G5 m  e(+!%.,7."'$$(Z6 ;Zh'KO,E]p6 \]#Tqvyp K ' i%|Mߦ"RQ FzT x*G&5 Nd_eJ=  _T"={](&.5rg h} : D:} Bt&, U (/1` =HmR0g3L*N d%@ E(C=D]`%F!!8ѩ&+nIPVBC`}Pz,'be7/\LAKH$pNVH$ : EGeN C 07j '}&I#trk*LGs& xu +W]o H mI GHz#%vd5Ll"OA~)3E] LUa%%fxܤd6 W X"1>Bk2g ru "PXQY( W-7[ xi }e;bR ' 9+aTT+9 I 5+ Ej m #s~l$- 8>C3 "8 ov 1_-nyPkF "eC "Z A3"-1R  Uv _- p^U f ^mf*S-+ "rd) ) .z"t Q#} O2|E .u> j &!JU Z US s%z p={} aBFr>= ';:KM!>ZC xo%+[ݮ(5Q>4!'2$$ݼni#x i 5j\_ ~VE%~VY K e:&3i?htLji | D/Wp0 AwP) -"E / kIݶT&EG}2^ ?2 qb t  %/ePZj: zlg (.*  " ]\t d os 7g#{0o%L؏ ,"b)~0mOPON 7 )%ݗ#Qش #!l P g"^s ^KpSFO > 2]G!*UoJ|cc^ D \V'iJA+ !too,$0;@*3{xw #SN@oHY2VA X=O O [9-| P E% r-jpڨfbi U!*4o=09 +([Χ05 )7 | G+ |#kui8L $G mwP , op sww^)b  mnv ]\@o"+tahA pr3)^o. "[ bB 2f   _RS {$Vv_ L P+ TQ9%/5\@ (H d̒K," +R uZ(o  p@}[\BDj T--l;3by. 6lix p ->,U%l-ѧ30[Rt|V$P ?) )O ro67b '|&I$xtbK_Y Y; D ^DM  ypd +޾1%'R3[sXr4=s& ]*%5o zNmvGUYu i 6y n  }6 ND*. v ny & Ll\`M7"7- X0'e4R6jP d } %$ "l0$  'ad [u: I}v !:)`%$Z:>  4) ߣ A"J Wex  ! `1): tNX #8>oS\ `LCTo ZNq45|^= CrMSP(+KoۦL 'Y' ѥ]-6!xACخr!,F)%'DC @j  kK iZ _T G` tI7Jd*? 'b xE/] `bJhQ lFH ?8 A3)->5* ԭ7+Bb}6- & I]'P5&J Ѿօ _7c,dhR(`-v# E1q Mg}c pUAJ c & ? 'Q Z x]G b JC M Rz  ,] ?  TW^f [Tkb(*1YTx}u_$N G R: m zljO%/ʾd ; FҩX @H S;W2 ed &%ugzc J ^n?iN"#`a[ҷ&'oOXD?(}  KP  nXg p]$ 0 IYd +̒!0Eߏhc Daa HaQ n3 (8c PgQ;~ OD: P/Gp! {5]>xikcI^vHsve/p$ )b0{H +*ZI w 9r!mE O `G<4] MP~02?G.h{N  H 2}% H EW;0a P  )B^PZ h2iL.{BLL*Rrlq'[ q_K jR/" *# 2 ~BҰ%.eS8Z:-"wZ9h)Cm_$ H& s dB; +o (|&I$urh=T_^X 0Q"-U2!  s8 8=^ $fTmQH^,F#`bgsj IF,GA\]h M jfk -  L  Z97D v >6i)BWH$"KKq /AQ< CS 4 0x)EPT 2_ߨWN TT@ &^` # -_o P < Hy + 4x RR '6g vD)8[9&=5&{ W{p8o Vs3,ĵ#$+_^ ngOQfZ yE|a^g ZJ;R& B{gS 6@P. (ˡ-"*yHMa: fc ! z^)S1{7b  G /VPW G`dT 84wfU Iz%یK BXMf_1 9p "l*65AA CD_ k6ٞ?p Z "V{i~ q] u@"T k݄6#tWC o ! vhSABSe  `mTs d . yF t<8M&vC H B?~ w< T x pe$f <8XQK 4kGc30M '?8(O {  SCy= 4M#-6%hv 6 ,I%w `|l l|* Er!2 e"u 2G]o !& n< .p.wBl $POl5 3 4? *- G v~ uI3 \ 4dk K@5;c,rޞ .cT܂P S/syF>T u k 0m -S 0T2 ${n, '4 \ { Ce$ &#bx2 ~\e~j) V5, od :6e g bnIܝ![}X )wi| ll i/&"aT/'gE -^b%$ w`*: 8!t |.2Զcni`wpzSwҮn-4Gr$4a.w"!]U4/Y$dsg$" d3 * ,L % :2n (}&I%wqaQ_D"C6 \83M>W q{ }5r "%{@_j nYӈ+?Of #o =I]g 5< }SVi [ Dx a k)fI "1  _ Ony`Y/ Iyu#U: H%2TA  6' Q$`  3}T  @(z9P<#iZ|V% iPk? x h!` ^jM  | H G 9 Pe` # hK x 'JlY #f <`>!' ZcU' - { K D{P ),(Kۢ!*z>)v1o "l "v V"^wh!^C F 'IMpcP6fw ^)v og q0 LBH{.]~K4 JlM va|h!+Kع 43 J&7ބʝ"(c|0P;nd# F o, \.ie262L  A' t*;1 .E| N Ec4Ko  _P7Cr6޽*w6osj`3>1  ", H ,!&|*$y&gTGh@x& uE G(!= 3OT PVn O(3*X7-2jA] $\e H '6}S ~tn   d X" =Wm1 %n fn{ JGk[%%o88  U` G&  )Z {  JCp*)!^ 8& 6\' | Z9(w {Npf yCCf l W0!c iT|Cs 4YP4cLB9J!Wb5=Y>>~ S$<@ ! 1] qT5j rx-mQtctok t)?M5oJr /PiG3 Qcne2TJTR0 ]m x<cTq3 hs aa }EbQ  m!* 1! 5%n=YkwH\^:J*&_{S &0W Y~C/s.Agz.h?=hrlq,*7"$[ r-  YHNy(x )}&I%yr]V]|OF3  D 3  bY [%pltS`ZR$*pcKh ~-y H-iV% l) ԰W,1·  z\ )vX _V <:~k %t U !K+ <B 2E!u=W6  OkG<pE B| G ASy s sT> uF y ^,P"tۿ;" & d /V+ Vj'rQ5yOeJe $;Rc_ %\ m#p ܟ&2 |3 +-p}5. ; `C1s AgU1L}o "#q1 x0  hN-Wqt { J 2. Zb^oqA 35pIl5. n  x ? $ -~$.I6pG dth|  } N BYk3 0- c=.@1ac qA(@*t .I5 I j_{܃V( Ӥ>* o BYl9֑L xfE2u  R'4 ".~ N+VJhv sOpTT  &rqc^F ?2!P3[F:9:|r Uy=% m#I 1 W!LF e}\Pm 66 U}zb-!z/v$fM P|btA G/5A [f w[ _So,)3 &վ*6.14p cU R)6 %R$ sW0 ~[{  )g a+< [f* ZШX"Uc xl@ b  |kc<\bT 3 \n '~L#x|D7 8 ]Ft =dH :y3Ja\!\B)} H&%, &zG {k) 9Fzyd (U ٳW ]g

at C4 CKoKp wdM : 86 y' ^.! ^I %H9`j&HlH ݪM$ [h Y !} 'fGIhx  , / 2 bl*<N;C  uFr@ = /9* jR!;[VNJb An~  1tXZ ktse}k NU/_S o@b F]dP6!} * ( ]L(>"N+.WRKH80 *9߯W $HfUҝ$>:oIY = q{mt s@- ]  {?Rjn'N %U_ zJ I# J, C_  xn}cJNN'c ֪T&-]34aq lxj (]`Z^x%$X kHs- 7= ,QSBBS@J-Hr0  oU ` eR$` v|L`JaTr. .( NHsa[2MC )QTjq2/rk8" g!݈B) /Muݼ$ kP4/l)ŃQ8x8 \k$p} GF l}C6? F*o% )&o Tcp" 0O, FDB"1vKO& i  9 af On Rd ` Q2EFd # (ivW'9 \+ p Kc-0޻ kM)XgteW@ 9 L~(B3  e.ng0'$ " E q=I2 8FEf V|- 2Y_ J c j`/# #< G3 GWGL PRXpbzz~ Qaw1 ;=. #. <nZҙ.Y )x(/BљHa-$; 8WyU{"$1 P9 ;EH ? kb_~ (~&I$wueFaY \  6 a2   .9FZ ޡ$5^.5g}A+Ts 9d0F < o!K7x  K  (@ $W27nI a}[ Ul [Yo( 'H^\.>eM?,7tE(}ع :a  @% b9 g`pZ'y_1CY 8w o i5$!u\ nrݦ( +> O# @ \bU_Qro-3s)T dYf J~swޮ ;E Q #.3 ޿ ou1(1l iU>qB Y}?+ nM 2 :3RU$"m >5D ^* yOo0c g0 ,5 7+ zM_JN]M' T5 QH. q NnvKb` %PR5\}C ~hPo(<&z!aCF NaD$ 34P]8c  1Ӏ(k0P ^ .,YVv \5Ir3a=C+i*ߍ&n |>F  oV#;`7 ~ " x* j_ v8o8W* Rg %lm8kS yl^z \I=3@e?)jk n2  -l ,}  A!n ^ m0m#ݟs #gޛ  G/$9!/Oڨ}|53MlW 6 I $"@ >ssg W4Zx.=TV5kE)Fja o ^ n 0l%7߇i! t>  J 8y)/ Ӝ!&~ CXݐ<bw "l"o> mQ;z} C !z d I$MW B Lg ?I{eAV1&b" |%;Q K6 }"*RI ; T )93 ly^Y'#A|'k~. a=P4wTQ>@7k> Ҵ1 o% S - ; O76AL nK 2OOAz!T (Nf%"  /-69nOj['S6߹z  X M&3j@ k nX!!g zX V!TD . {br#g6 ]K+  ,Evܲw'cuf: &a eE s\i!G ?#wO=T Bk` _r$, m!/ 9V$mr 7G- kg^cz8 ;ts 8kG_g rݗ!v X,g,# { ,# 4YfL jޙQ(# <_N/ ' 8-Ism60^ B"ga9I O G H  ITK8. g$gU +ke _Z V].(ܝ}+ gv y 39q#&%[4,l((} MJf2DI'.RK# %e' ҙ'* Y{C@*` z?['v 2{h Aa u tOlVvI {HB>A9zhG* {5D& ,Q j " wL.h}IH |2 Q|Q} "l6PMm<($V9'/&1_# B1|D J#. (q":YJ z܍ 9%PA'M \?gN## i=Om o oLMfi7|OZ ll  QG$N&fnCEWP5 G-.lK-h ;!`B,sc 4'AnzCw5 oLw Q֊wt"] ߐ6{ n +L E k+Jan> pwrJ/ Jx?`  /Ijw^uB 1 L#V 5 *!vMP6 .zs 'chC$88NyQ]O%zj!' Ys 43p ^9 Z;z`=J$dN)$/&z.e2. PѬZmm7! .rN2*s$j [< l\  |}'P2{ )}&I#vwl5hh{` h(12oX[  -+H ݡ$Djn073AmHעk*Fx$S h5F )#9o6 +}B 7 o e #H I ] %H%#$r"!z O)e S]lo x7>C1/ f| >cd3DBrR u\L3< T e lG = 5&cimgH :h"r  ul8ܨoDWE(Pd]̟k(%)bFcBWz&.4 V ]tv^7  v^ETdVZcw hcCo(JYf` D7J25e=F Z|' dFB D"tѭY zp& OH&17 |eDf ;; U@t,W'q|m݅X"!$#!K. ޵IV ~<Nt  n 0 2W~+}6(|\ S\K `,e r")ntu]'i-E Vy (g!r_ [7!L!  aI`>$%O*v E ;XLS!I=, ofYwt 3_ 3*pu. $Ie[= rjfkYE /S -4  3U {B? J\*vHFz^v7!O;DDyF'Ovb.YftW1 r <eL>[)R .W~Xu 1CZ%4ld $aUC-ޱR !l_  *z!Gpu Y#}בw VJ%}<%0ry5<̋܋ !Y(Alӧ+qQ KM.мl-jV<vL$AL5$6 M 7 ~f7   $cp4F_ '}&I$uqi6KuyZ j>&B?DJ Ut =g %*޼0 $^UsZQ{n FUG*K vzu4/`B,&y  WI{NUU* "@3!TF g  wB$  Y c!  _7F1JD yZo٬ /(| " a  &k 4 qsC8a  ڶ!  YV Jc  q[e; {ia&= !  ^( @XS^ I 7uN&7 ( V2 P.r8BqVowSUJx)).cnuy(}su /jԗP:f;~&_ 5 UQz] N7cN#`A{F&  z!@D!iM F3ckb G6/mPZ [JO ,@0+%&* Y :BM )g EI(N\)HS; 9kC4dJZz$tsWc LJ!=ZkR5!#Z4u &<'b6 2l |N& xWatX*7"xX)nTI_ DjaW[_2 4&8*f! Sp yZ݂!- @7z 3jo Wt< Z[SmxB@{V"3 j{]Sdox  4b );#|4 O>{_k+^j ^~DiD /A YZ 8i 0JGw&@7, I] -Q]cN #:E ,1Lwh2/}y?m '= ^ AG\'e F##7 3 x8A| Ng  3}@ &  VM8&yL;m & O@ Rm 7Bh6c C,  Q"͡+-*R k mR  [0/G !) ac&q J+S&8  P=oq R A`b 1 ! k !H-;-|quFt kc@ $y 24 8 ry2"e (|&I$vpcDPa 6J' ]F [j Th% U, #%}=f)y7\:+>#%in *e #` $e+ * A=%*Ͱ )1wlJ U;q-t# Zj:g է(.JZ  znI# u +O -' QtDG &o3`R} C > 4 7y& //ZFj$ U cTx*g.v *Bqv  0 1  p j |Oy#|AM-. mgW/. pD Dr n  9;i6J2WDE?pm =S ? "`84qg~$3){raeT" /`=# oi gD 5g| p  "q3+o1f@ gT3AJo} GT,J3Fwdy1y e LFL#!, QS@b- k -I_ o )JPk2# r 9B*L@g< @K ~- % f f^l'pp_D ]; WWg $ + DXIRi3y1 h >K^ /u orC  N: {$[ A$P!M Ժ k ?L% scBuy 12& ֓B!4tNG  NjsD y !]O  =[;n; bS3 s? ywf eqY}.D$ HBqUJ!~ DK yp-|F|)f! ] |UH#Y[z `|#L4i/l|{s %"cB  4r`~l?1BX!a 7R9+S b 7,D FmBn!W :u {Y!K.[ B\>a %@M  -;;   "h\ w Nv57 cr IJ(,^ "4" qA P A3S@e߷=! D>+{Aa} \ - o!lBQ2;оm)1+4_ z=(S <L 1{(Mf~ &> OwJ3exP u4  :76Xn |FmSV et ?#@QB h (duհ9=~ %Q dJq$*"CU}B$v4)`ޚKhmLj=gTq#KdG n]Ik * 6q 5-6YE\;&q8eKr!gK r"F+Fc *NK ov< po)r m*Tߦ 'Db r~s &:vVk7H u/'(q%RM0w tn dI A  f! zn7h#%GZvp/C I EG}ln Ha&< P D'~ #C1KnP%&7|>S[0( )G_Ɨ.*? !!![Q S quMPIE  @ _ (&f4 f=qB} :j z{]e mF }3pe |A>T_D  hz &]3:#9i31P Y \%%Va   B2d~.,r0WV  :j"!ک mK=znb. KIB+ =%l-&e'.Oѽ  !KZ(/N2$W *9 E s78k (}&I$xtcHdY:; h uq?! uG V @% 20!}gs,Ӯf*i `)#jl Ws5 }'R:0iщ  +"(H#TS A |0Hau 'As [C)j%!8E %)~ZK? ]QiOHk,c7utp TE"cV 3@D% ;tClG,I;P3 C O;*DoJ5x `KV!b=1V myD1fp6 ]7Ppr +:#f> ';nqW ug z@{}"V ?%N& _GT 4$hn  vN[qiR @1uw H },l'- ~\9^yO u wp! /9 0 9 4- UDr vsp:V U) b,  iOhvIE$ܣ?}   ݎc#(4d`  }2i86AU  q[-)dKB` @  Evi"nUx  "OV [':9x /+9N<+#D !aC#A =+r c]t$ }tIO}(. a t".$R suy7"8t&9F"l . Mrfi+!] @ I!'~$j0/ p8'kT$uu[gS RJ޺j oEYug}#QY %E&BkQ}!~a\c v f5(!rT @< Z cg*QGױa an(`!u# 2r % BD Bk>Y TnP`+7U%G+!`{w`lUڼ>yR &l8g!{ A @W]2wPL; (Eg+-+7`.'en  9*$7x]c?$F P >F#  Yk2jA|~ )}&I$xraM[TME  ^2TT 6  , y %p? :',_P,_s t Ph T QMJ jA_k/5;WR>\8  t`n}n o  p%%   !)1M `7!pΥw2TKoF}g ޕ).%A= ^u,:E  3- b.= }-_ <42c}Z+ y _!<.h{T ,uU* Ld= mx!Zd S h[{Z  i "34  q6$Ra d0+ 0'b Vb( m =  {R Vt~ Z >~k#"U Ӊܫ ,'1 /#Q ۣkM  r*mOSQc߷J=<|5: ) )hgU o n XK]zsG^*: qgG ; qj nV L%H %! kw,/Z ^ 3 kO_ 9 K ND Z!ڡ"+^kO t!Mqwer H^)ZJwl#chd}^ N!hivajCpw an!233+'  6MH2 vp \=$]]"e [5  |>~ Hg6 uTT+ X A}%dA N' fZ# m4 7c #  6E+ vY9 1K*L mJr J#e ?R u7 j ` ݚߌuCƅ 8(To}  Zi, l PC V q2 N9 *W[MQ K,$N,7:EA Hs{ >9 u[V }(i(hAIemXt dj ~6 ,! "$x XSi G*y'B X" .SJJiFAP " >mr{ 1o H} 3PD9` )>Z- #^ Q >t? UBr %F\ . - tcQn(%GٿHFz<# 6 ` G I")  W;u mUFQ6$r{ nt=d$?~ y fiQW M(#R~$q: br 7Y^]- 58fS `G ; s 'vP%lpda WA ]gU}N)I 7>] 5 ~hݖ  $x/%՗a&ZD$WQ`}1p3! u   " |x+ zgn'B^%BtF GK v|z 2]Xe p>bUU ma #  Ny~ / >$)73eW7_")%B  wd0s ^[Z#hS: U|R~Nd 6 H*hh Qd[ xX*4 ZN ` %g X J a8-\#yS O:.UG- JoF. U10I5N]@ m I Zn%cy1z*k"?R&}; m4S&\ 3;Ep U 7*7>P" -,&u(=B%5m F `Q) mo-u(0.bz5] dhix0M$s L  U  ('j (}&I$xwfDuVc Gf  N d~E^  H/B ޞI%;&om?bkR (KU e1jm_%P{ )F?~Ub ##=:s E%! 8(~ F  + 6 F^B9 8\rm~ iS[ P$7>bZSee%Z9lm . +'C 8<D. yj(tRC F Pky@ #;= 6$ y9 (gceUZXK&2wt=' j@P mi% q" >0CZD bf 8# u! h2F2l . Hu  "G ((l  /; |7| ooI"Z2=, V,s~ < I w,!׊${+) Z<}n#e |`;  % h"E'E 5yBh_K cUJ>K$a c ;KF[ޡ`' d] }l io A DyhIi8Xe ?  xd C1F GJ', 3[!w r 7Ec*<$  I+%[  ;Y O | =, af1 o N1,Յ)[ % 1݂q i$L*8&tHiym (` & 4:E} nE #w%qr)  P#nQ1=I[ j_U Z M>ny#e>y1rWJApK  k; 7DsP,7[- /$ aw߁Q2 lV/ v/:#%'G% f~_XMO0ڢg0| j p[ 'bYj M~ v rbW2'V -PC/p' UQ uu Y126]emtt ] \QL  !*H}4 U"u OMwF]9"U& &L fA '^r OIQpWA C.1%l} 32t q hei+N1) ,r %ս>o [Q  y)X \V nH} e,\q1- Ѭaw_?`q 0M:$R E 1Ee s,6b '|&I$vpd@LjZb 3|b V) ]  Yt= 3hޭ# `%%=hCUO;g*GwN~  5y?nz V W{_ ""_ 4ToU4+o El MP) $r q'FS .{{{l }%!u&4 Az ('e)hzQoH_ qp2{<v@ J11 x) me%K/$I6_ Q$eLM2*a֢*vXq z߇l oiK p"Z "8jgu Z/ ۧ;; RR 4.cv ID R% HxV9d g$]\;`V [) D?MbUz 9\wxL 3/#Ժ%&}ot/!VmM Xn0 kE>@e RD[  v3   ]U PQ m c(e#v8hmD2 r} pj #}" .@+ 'VQ@ FY p4~ g uU\NG*f z5Xs mg2v,J'{G3 $HF q-V[>(X##7 3ب l[ c0(OR&T& Y=u J9 -8QN1o2 @j7) v Q RG .b) \AJ4   Uy -]  njr<0cQ{jb/,_ q; =+T K<}  HgZ&#s%^ z~ rg " iI^em11 3G:;"r q%YX I)!X~ީ7$z-Pݾ;@~I : H& #]6lB y  mu|1) S>  9f t7KiCD}[ ud8U3 | e; ]v9FYh w%|"1 p i2W b9 * #T u_ S O Py \. @ 28o H @ C B!Hق'> *xp׃,}]hi . Lr  >HZLNkhcW hAm1g~ mP-W` /xCmli.KMEm`,I-5e!NXi$f ;4B <XR6  z?Qr' )}&I$wsdH]R!rB W=$16e  . B!$U (H $ v1" Rջ+#a'an .Cy2 $i+&.Z (0hqH6y )8.U %$d*;x+  X CR '5 }K^Q y{$^-PocnI >c !%w` 4 2  [|L $ o$I- [RN !*~ 3owb"k ' ` blN' ME %(,9 R\ t$B ߟJ-߬ X jw>>CFg k5Vgi(Ldۛ ,Bj X p E#NS g"X {tC64M :6nl > 9}; wY >{}_y( OG2r*u i Qd} ^OjGh <=\?) n/9*6} -N5 ߭!^$% O/=dQ{ |$.3 V g=fODusk A'HtޥuNN#_ XUH l Q$0N$ !-r^5Q')H!Gn D3% M$ VvX) Op6x?;yK (}p`%E q@|?OR}vh# \# B]d# +B{%1wbmJ x#gSw8v. Fl@.^(mD M"Qdy rp 8 v,23  IQ)4P?| n#KYX0Y^AR+9Y #fD -\!?/ ~1 S`fSPh9ߒf "c 6 - "]L&:%OxUWT2d]"8yG2.+0i RSb[r%6$_{;` 6|t ? s"i % zH"v ]|K( ]t;uDI 7 ] (p m'\ os[a)W/l m :q% 7ۺ2.hKI=Lv X%t : hX 9la)y~ 3!GNz^p --x=cG@9,]?$$$X *; Cz Tr*K2k '}&I&vk^I9qm#I2 FRZF  V)F Q6 %W>f} ~ ,+a!Fds.7xI # &8َ_5QAN X| XI(NU -XC4o|o z`P$5 [q G!E0YrE!0SV!n / X-R \Nڊ/ۋQ   5݃" :w#r$0v T/R ao8 \< `B j( ;+, ,  !&:<8KM$,vJE} 'fhY>VH &{$ *"Fe"H, Vn}  % gQ8#;m=)] y XM_7O<zle&:f^iU"j!*'" ^M4Jy! Y D~QE"v uFNDeUh D R ? y: B IQ2WTgZ5WZhHv t&]{ ~w ~)s~lO )8r3ӕo*!>ؕi0L H  W{+&OdelbN. &P,X)^ 9A d62!B %:dA a$s 4r\B`Cq el7 h"m |w 1 F Q0|  > c/1 ؚ} C0"6 JB6jiJN]9e321^ s. Sѵ83" \2fGX4,5 i<+$ d V gW R#3 $0 w _y  leg&#{?iV)' .1: g9'Q  A5SC$ hfIB!FX |r7 p: 1,K $! uu\w:u k$ #Xh*V Br\ FR1o<:6 p `<?#O m)^W ?8o{zSZ    5SI @(VBzJ}(y[n%6q\3 g PO s x>sr&l|: 2  .+*4eyv  | GN  3* pt iI,"pv -2јH[@AZomb$B f-  Ko  "\ '|&I$yv`Vt>yA& A' p  sd& g  *%Fom'oU}ҍ-+Uj "VG g 8 N oz8T 0BX s 5 h 5pDcAn} WQ` `E/ R,{=9\{a $J AB0 sV !UZm3A !  /w:w/&#i_z & /v2. "1 -~/df1t1 Fg "!n*Ud 9'  z3yb *Uۛ*$"c3 5h"< )Dބ?!{ {< i M -yxX=$@ 2 [y  dy W<(} 'N ,f]? AMn Le*7oT ` k~3(( ] $!r,'p&cЉVr 3+o(/G+n +K?mt5SRk Q p lN 78 x{Ul G{Y S[T} /t4/ Y@zs$^+ 93}-.D $h a  Rq +&$k (}&I$vsfF\Q,p b45D*@  W3  8D޺$0NN7~h_R,N߷Q  9!{] l2  / ?/!q~! AdIaM zO! B6] M g $sv* 2k  U gS#Tr8/C1$`CBw.IyG<If#g%E_l (#$)1hkBE,ZZ[1y'OX^!z#g&ے u|~=(AG^zg &piS  @Q HC]N# 0- qr ]^F BC P09QwJ 4Dh-AU!" zߔrMa$(-rI { G%9#OQ z uiG Npt0rW&2 $ 8u=`'Zg2"7Rg lUSD? vt$t)V ? uAb() , "U" @s epOf9,  Ty?s(7T #b P$Rؿi-uZ +tQ\z7d%G% N W:C!{ ]rY/Hl8PwE 0cjSkR -b$+>  {@ R Q l_~zEy[%z=Jr  ` RoI ;$~>$M  3j( S &#  & n{~]1MdI]h_2 0f &bI; "c,`y?7: 0 Q.ee<  ;^?q?C^#K%  cs  qz,< >>} *O M<V"xGJUP,Rg zX  Q)G 11 ,P٢)A+  UE<' xdE>XR"a[w[ (}v q X]m =|7X CDnp{beW#K` A ?1&oE+$; BFu9sX ! t # 0+ &cSbD*L3q* {9?Z GV_:<-d.>bE[I;9"*&2$Q O# J T u'=&p (}&I#wug=edzYR !"</*,r  hMUD ޢ )%Ki0_!hL)f eq?&A f!* 4zNhsN2O f، ;% ! U! N:%~K 8 {Q  Z,J)}ӊ#":1? H0E\CB u > ]_ iiB-7  ! i?FܿH|P  !> X ,. j \uA 3 6"M a i) ۞!RH bc !GAF!  1$ T; G mB< C@ WJ~%uJ ,% i10 \ R > F4!i!" EMe f%gٱ4ONkFP g"O`T{0  |T]G}Q~ Hw6  W G% h & 21) >H fU:E_k @  p\x !: . JgjF:T\9t:,6o / {oRe;B-(cR $kCK73 !A E,! W[Le @B `:uI lR }*<o fCmJG$X&j|&_clFo ]eM! 3@\ nYcE=)|o!O]Hm SVbB 3rE3{ R m c.chVY|.J . ] " 9"I_ iFN 4^ .}+ ~%(O ~h ܧ.'u;s$#1H& %#֪+"KrF Mc_6:z V6!Ѥ ] ,Y HL b| 7|] Vu kw7:"lI^** 1 )s _M$o eax 4H ,!^ S<GBImw =K|rdjBT*f gI.S : ;2s#g [mcPJ/3"~!EW R  i F/J ,q  1 -KY!cmXX hoZ n,3.H$ La z1[-6Rw.,6q`lS?SVx$a 1 E:!  XPoR z (}&I%xq^Vi9q(0- FU/AkX |2 y" %#U_}T,e3Ӫ )DM %7MP ߉3!W P\ $ "s+t.?) !J 3VZqS #l Q ZL< : d[ v Kol"  .`JaP#I *sbP a( ?7Eo$6,dU p r@28\x 2n  {b$%l ϭ#(\G6st%Af  |S!R(E8ޢ&#35E CO ~F I 0GUٟ $ `9 $ R+bt XlbdN )Qug5 MyL +Mx)=Pf6 fgޓ& &YZ. eܜK{$6,t N#=C{l^: !/|aE > ^  h.g@S _[9[}*Jj,@X &z 9hJI +Ewp w "p2ܶ &car!d0,.j!F=D~($Md:o*21W!\ocsrU, X.$  fhw N <C9g >Sd:: ?ϋ$*%z{*$ : )#mfSD!,&d KgBI]]| =RD9Ks{jYEL' ' k R,z@(w t pOX*GJX !j)"%* @1!1@+z EF 7/u w4 ' #!7 m$N m GsQW~j- XE N g)*NMK+' Gޓ[H! N7a t 2zq!  sB:R^C9*(b*fx%> ,~'M z  >s PP/eT/ SOg ^ (vA9G u~ zM!Ք4xك-\y-5 Oul`S$3wetts[?KSt_ sd #  ~a/  ';ftR &&Ck- E%bEQ.R  DW$.n%2C1$u & 9:5 h JDq (}&I%wn\XQkD1 6C p\,8^B p Hp V%JW c- > A, \VLi[tnLhb ',WP  r7 ]@\F8K.% d;.W~ ]QLf X _dM%   .dM=L1 V AqO <#T W{P  Tn7M ,lrHL- ZNrnPAZth ^T" mkB  l0t)0|fo!_Hp,8 SMY Gc&R! W PSm  j 1u BlSAA:>@ ~> / F3Pj up+?fWL e,/fU<F)&( y 1޷D ^ cfM/3HPp_Q L  , FX|J  #[D \D\ v1T,G D3`eg ^9 "&6$W:[P n V`|ޱ$Y  1 *&~E ^.)!ܶW y 82 Cyc 1 6 ) K kFp }ch.Eٗ8!eH! ;!}f> 5IY-L afZGc _  = E<3?Obr' v@AE7 ;iEmc>1  \i S4v )Y_) z 4&5H wC{B5,58Tt/. x0*^QDs$sX ?FX !  Lv'LDc &}&I$xubSo:)nL "qC&0FT %  {m<0 ="1 $mU4W&,k J6gN [ Er  RJ j F^@ v L&xU7 W1 qֲ&SDTDt |!pS,#:$vS{H h\/8;]#$uBM 2. -X1Ghjh7!t{]?, cZN 7 S%.N <:*NJtXd3 U#J[ 9  fq^OG& ^@ H/t BjO0 r-T X #Slq5)A?Թ6g +G ( *W* f1",e a_$E ' $/gڔ!XO] F]IT> %Q  lX6l xWO z*vsL#-G #F0uO!*C G[ u  7>b % zvK=ihdo'l)5Bpv*q4 i*XF D (tLI ~pq# yq` J|/  &VہE }^ r` ^ -1%+5.q ? - &o| ?Fl9=A@W{uaWq0 G&j\O*'$H%B$9 Zd I [x `/  :>7 pC: jD pJ I }/2D" j05`w Xwpiې" H h{wD % x4 ?NT ' bR9Sp?^5 !v+(>  {)h]y :@<<}'A x3U; V # ީ& XggL (J F* ߍ*%;^ D'D=sBCVk[^@ h D|>]Q`('CQ9s C)}" f3_KE )x!<*re~k 5!W)'\7"p/P)+&G()Zz%u$2]n ^ N R~n CFy0  8V'|] F y?bҦ ,]&O{b.SBdG c5_)> ]9$+ I2 9$C  r *U\ &}&I$xtcIfU"rC "& dS' t%: ު ;%! ^?^* L8GԹ)ilh 5"Q j 8- ,^ 8q 2 T%dVߠ3(T*x$F ) IVe @ geem%fd,.fk (d  ? n heYy <PISmXY nQ n?_ GkbIjG)<&L.m\} d ;` aw?' 8 zz%<>+ (\Bۦ0s  }JUnQ !X} Ow rbgRS2D ,N_ALPMtVsa-( +uF| g ]c۝LDڊ(39cbf?V6[ %pU  pJ@T "g H@,c; @YQ uTD 3  ,h& !@>#+$A A$ J    , O1{ OQ.iIQV5 S +7{Qb ;(yG',!9R !I x.ru  $k  5d  (aj$. A(A:IpA`x B w;  bZNT sN}u !#+DI B6*= Q~x, ~S` %[   !m2+؂7Ji]k/=EU @NvFK5b  9~ U 4\ u fO 0s58I ,&oq ;{Nx  2Ex &g Z& *D{. noz!@$)VrW2 \XZG:7&bl  (S %r x# JdJCq/Ib:c`|&k Vq83 2G A Lw @!  Tji~"0q$Q/ [!-L.6C 9t` 9[_O_TpV?B_*7` P |. RSL}=sZ T`MrL "$u$> |&^ Y >v2 Go q| t +F + >[K)@b ]:'9.kO]Y! .) M  vZ,g{  g#qڷ= &J 8z! !\ \ 1:}(\a  uf gR+ !rEۭ8",D QcR$*: %V R3i Vvg^#!&rQ  ,R D_ W'9j/  rH (X n Vq0)^O sCކqY(uaa A~'1)DV  ט"NC 9 ,v e = 2 E 51, `@? r \H`a;;O%Mg Rt_ Dߨ>| X  R O re C"rpl/*a l # CzMsVLA63at` m3^u "%nt>-RT KZw p 5QC  d"$N$W؈F'%3 $. 2aZ 2[qB qb Ct d)!%?ZT y@{   4 P  w0b = N V^֋,<)\DNMrs]g Y TK *[B)4%T4z S#@ mr/k fTpa =Oj~j@D( 1IF  N<[  D>Y {"`-3B5/Z 2Vf(~&O .@[3c1Da$> p O*po  az-V;w (}&I$uqg:MpOn( L^j$ wR7 6k* %lW%,P7HG0HK(* N&] :`1 T |2۬ *s+ 9[m:F4Lڛ$9( n |mpc[ WH E>xRU6JV4D B (/r+ ~QS%bC@$*k' !,qS8S.t2:g %bB [ c P 4| ^ `TaCnvf cX " cr"KB + v De 2= )e /0#6)$ւX($#ڸN  [%P } 'n' H R3!,y 1Z*{!r#E3b9&  O|&MgfO0 V^ VX: _Qf xOP< B}H UT ݒx`3c1Z͑rLeg P:,u. #/ O fb[@z A%XFP7F<o N>_B_q\fK/ } s ( '}*ZdV7_2( U -i0a y0hGOj`'Lq6 d?! D jc\ @# =# t1 Cj./x"hW ' I=nq } M>T&z2>4tUs 3q>w qCNQXrB%*xsoTE%F&Q;U# z w"= z56*e :Y=)g 5C 8ThcV/?T_Y5z C'8%S!ܢ#/$8Wk$ i0 <nf$FF<+|& j5s E:pK' D$?<3.Ϲ#\K6" b &"O "& }Rm- Ge Vg &@& #1!T*\XD6 I$y $"z, . Y@C  *Xn t d  yP- $ b DbzEp!! 3."n"VG YH lJ e0J!c 4Sz yn  z$?S.@.zF3uHev-":!j8{$ 61, %K7  2@(w )}%I%vocEN][a 'yG7F6 1 ha - i 5%[!bF.o?b*1@ Pg5o = xG @}]![HwV$ ]s,A'WE ,_B@^LLK tS   a) 7@Kv S.X3KE<:CV3#w 6  - % (/Z m? @ ^v W Mֱ+`,:%" /nud> URqH b@4 W! \!,K [QN T \8,geT #p h?g: *$c  P 1x 3 >>e* eL!&")c | # [ Ni4}s LS , q u l<@ _ e1A E U;8{0GvJMm "ڔvTG> g!g[mSX ^G e  u  7j){~|*/z {;mZ!. =pA7(l |xi} Q0;Y =qn }E U5#H$Bpcw:A /Z , !Pq6 8d],{YSV_ k"/=f"۳X> JN: " J As:~51 ]D-N u  `CfO_P0(  m K)$5T6!_h^ Q O!MjFvywlH`3 KX08bVb aR8I/@'m3gj B;&Njqw 9O6& [%!<*25)D=1w ޱ)i"c L}$ q@Eec  J  zOt Ka_x  4"X': = *l F:SOhD V8#N!67  X &# 5 %W=gҢ-S"e`.{b U%d%~ Tp8b($: Jc2 B + |RLW"{w (}&I%wo`NTzJ(?j5 `P(F()4 I{Z U ) %iDPtk ~+l N215/W'frwoenv+O H5z # > 0%m% Q.6;,`['" UE >RI /x7 'ޣ$[!ԚgjNG co d=Ke M^9$d"@ {;^kMk})[LgikWPB#J6T2:  W SiJM jM ]ZN&Z0  &]3U  Q$ }X-{R7 UYe 5 NhpsvHZ4D (* 1qX".وoR#u \KhMXZ `l fFhD,*Lv#; Vqi%8 'Uz `*Cy ~;H9}+- w@#h K" cU H+q+MF*eGI g0 70O df/B ;" W7N@s  J)TU qbZ .[x;/*_ " r8 Nt_ y(B (o {g(O* N#,^<l^q 5py?d| % ! `LtB[> o9 wm' )_ T_t"'7j:Vf]\ [M{Sj)O +   2 :((D$~  @*pJ 1T'"Exc $2${8 *g!\  v}vZoyiO  nq $P'T?x !<+lq #)Xm %6q^G78[X{ (\X gPtX QVL!   ?ojb 3E: m(F9wo> Ol 'ݞΏu?c0JPb8+X),n "@~L Y<|L$ % ?`,_ L c(K  h-  X/+: \ [~ v W uoJ*#E8w 0pe 9 Z+3# C\a5'C1>  * x`#!t2 !:/.qo T  5Pzd`z:kl-~8^/s,Kek307E\ E:6U$ b@: bC\' : j,XDw (}&I%ys^VhBM8  AJ;%g  ve 7Q q%h%%]e\P)f #$SG:la'\Տ)2;Ðw";/5j? )7g"o 48ef  dAb c '?Cz#aG:(q\B 1G>ey 1" 9 N$b' $s ` PI_ LsQE< ~" k@p2%u |: (o i%b =On#grm  /?+i ey Sg  - D ' g #u 9 )]xc )'9"(M?&Rq TgHY+!{ "Y I wm MQk#~ .XwtA h_L K  F2j -2*d,D '+| E *~Zn]x P Z $/'1W3OU ^k5mFf: %a* K(J}8J+#4 |k [ c7  q H/1-pA` j{ NhP s pq2|(ƩB+ZY6޸HQ~6 ?$c[T F Z #>h!~ dQ H&B'V ٳ$gy@ g #"] .>q' / ; ,52,%Z  8 m~8`^ S k i*vO1IM \'  y.w@a# f `##4== ,9 ' Hl O.fn%h}x#rD1~, C mnmI&( 8ә5>&4ԉNznT \T@,"BHpuV z)  \Gv_f$XW TgpJ& 0i t6 {{g>Lj >M:xX, ~ AN# )]$ F |s%  ]CN?? )<c 4'ږ ,# vOYwSn@M'u5  =B)3 ն#s! p_ 6&uV)_w[s + L lv 7T> A%( ^\{f< d P K, nnI[ : A)^r!?,[nPs.a$IoRz ]e68V<$ `, 2LJ 4  i5@b '}&I%umbCC~eMm  Q!dK$R Ih%a ^J W%M=RJ9`q~dZ*Vf'@ ~?U cM Q6R Ep@hQR*LR3 jh Y q A&r=_+ ) $G V99- ߇tG#٩!0&ۡ1 F8#gA!>`y"!_aYx8 FvIb g(m | F 4 Rl!X*)//.:ڼ 5_ c  ;6Sd_m cBp 4`)%;mP dO! O`$ܽ#0>: !Tf& P ;\gb]; .d[yA v Kz-M9  ktS) K F4w VTXO4 f 9'[T!tm1 |oވ) WF#x 8{}:7,:8 &5Yc%(iCQ),)8kFF3 Kqփo(`_ j Zt y u9 T> "La+a ^I d +S>x" W `/:5U*&3N)-(z?ۦ!Pd x D ,/  *U<mWcP L@WNWG1. Yn  8146 {h/ NXX5w# P T9*Dj@ ~hwhB +Y  Is p(EwMnwI7[ Q6"R*0T_TUdc. 3Y# LF r$ .'%ct#f ~Z |   ? O/%k}4TNW\u}FQnp  U s#dO +9/w G b>1 %#;ZD<jW L = *%" F |Hl6 *<g.s>9J A4s+ 5L 1$C o M]  a_g_B $q /Q EV 1 #wn'-^E Z  *I Qz u1aAP9EId) GR^< -߮vC .["$ #6[Sm9p  6Gux7^s*ѩ-HOj~(M.).d#H;`5HZT}$6 8@< MsD< ) v3D(r (}&I&vjZS3X]79I/ eZ=?d Y3U C2 %4fmS+w &+?@+7,[ }h#$x\ LTo$&{  9 wpC!sIp OgzrZ /; xD]v@&%X1 [l} 6Ysj d O  mQjm9Z K Qaz R fESՖ $+vS <]U8 5 EPߌ% o $4HO_?);60(:NK;~ _ݧ5U V+ T)7h l d` c)" &9-m1 ?~Yv6 M 8MY0q` e01<S0 % Z 089n"+^j' j n$B. =`NI3A kg 5=l v, fs O E `9_V":xU -" e+C!b( GzUAhg #o{ӠG# sO !X y1& I K7f 6ewap! #X2  } K Fy= HA4n\Hn6S|t k#5,hIzi_XDQ/P5 D!9"3 zKU '"\Rr1F7HpUf vp t"] 3 0c .1܆/Lse  (?j +"D& XK;Mf&"U7ELA{z.z]!?t &U3. 1T ,U rQQ 1xoI$ YP o6/ !v#Dܦe#{#512 D K?c|#2^ i (s 1yR2/~k#} E -r%y {%e~G,_ M ,1p@@Y]y }!b3$0q tei 9!  r b /n .Zp!]ou) # _ R nC R!Q5 9v {z  w%1 J@.D! +  ;@#=k7~`2+A H+uhixd B"+$;E-!c>&>c*SV@))$\ +! (Yc  | ;W &|&I$wrcKdL dJ 7*5ND g#  n%hCm \  Z[qcԳ)(!c kpofA 6 J(t v ``  <R B!\14MT0(' J# @'y(p >%K^J ID\yQ @v&I]4E݂. $m\G$f ޲0 /-ݛ3v K" *i & L8 xm~ {5QFe 1_ I%tTd $G4' | ~^e 5N   x\%G CG: R} W& $& U I ' k>DV qzK "lM *o'e ;y'SM%u);*< O|&+"O|ng xS%8F1 Z] /_f g@=\jq:of4l./P2Hܐ5VlݶN l Hd P;/ >_ O+R Wu? 4 z 2! ՏI&hDmo!DGfqYOIX67V j{W>\.L4 X&xI .7l-k7%`  k.qJa K!Sܮ )1_&E#i ]i ! .V vdlb )|,F<R?(.#d$ #m]0 =By Gv Zdq lE%} ? b( >8:M:QJW ikr4 N8-o7e !` g R@m;vOanm< !ڶ>asT]w.("#b?e[.V$K cU> ,Oi'  zx'X:~ )}&I$wvfEuL_LH o$k1 aN"5 O%T&iZqHtFV61O Ԭ@)HBU B6$!mS$} `SOM \)<MS 7' # iq-2?U sw mt0/G#" 9 k vk w , Yj !$9l'%U Dݱo":n Fgex &)^0 f&@ރ!&; tj 7+kZ; 5IVۮs, *8%zMM  ]  0[?H -: :\ b k~,$8Aw]c.Fkr Fy= +Y7cb )B k:yH c( (n*'_S  @  k !7 C5  ` >_h>u 2rOY^C(Jr zR #^j j6 ."5 Re] _ao 62*7"֣}%h 'p| f[gsL T    f4y[ #RZ+a)92k\8\#y a'   >B%dnu.&7 m "S^1 mv' N<&u+U B~6Y0-F<C/A9HG| 63Ul]u2#_  6;7Li!~:@28 ~z 3q 6 Z dE --Zۈ D=xbx1>ѓ$$8 }b 7"Uh d ) T\x="Z 6^/A^@ )04}a o 4=b G Rb,)QnxJ.nS 7D!p+T<-y_m$2 E d hdi  gaIZf '}&I#wueNq7x*&g> 50(1A) , b\e K^Y $WC&6 CY6J , Bx#&3" Terf  tX <} F]"]d G7  bA =Y2 ]*R d Ai\R] ",m5o(u6iZU$ w0 ? t Mh+#ݣE:$W4T v'uD(r m F&3#9"PSE y- sm# $ %bR' %Yh5+MpO7~9$ /X# xM_Ou'* J"[/# ~DZ]I'|r;9 C_+; v2   G&,tL r%?|. $hR5>ُ * XQ = ky.Q%<!} / 5a7c'] Pc Ar&_ o@{ "  ,g my) s /0 ?7=U\rG Qa+2sZ\ m,a >"{=  0  X$׿&" ޚB5\: 0\kP Vf~r GwzcO, xJ3qs: y%x/{%5 ^UEBCDzY Y D22g]=e~ T 63Xq }6nQ\W  b 5 ?(/ 1>JBDXI< B~f~"cnrVs  %  R F Q : 2  ,8Tt go,W BQ:4&#0حPY hq]J ) @oHؖ-ݶS ^8Oey X|#aG h6t@^IPcCI5X  ZGd FXb=I[Fy|8!dq? #' E9gZf"v/Zb ,EtD:2׮FlJg /btX|&E9 ը f( VFFpOC% 3 0cBWs  IrIf`a S m,-S43.q ZQ.9KVmv5n0Fu;_$A af8 qW! do0`7}{ )}&I%und=GoOu #7c0G Vb> /da %v(m4 Nt2հo)mp , T 4 M0Pt+"/BL)  K E;/OwR9r,rcRG-? ~k RB,9Sy91n_$Av"".w7 P  k~ChZ."-26 u%e:9 w 5S ,H 0$f f+ oodn zm \T 6TN !(&r ? .iid~ =~ٕKR } D iz$5 kX  :%h(@w ' ` o ' bݫ& C BPWX D eYn 7mRMI ^MsQ g -wS j{  Wa;in7!|ܕ) ! >7\&p<0\g["!?uݠ|M}+ 99%S h7 m' Dyi|~$8L&e7' Ny #:Te0K #JTr 8! e} Cd*> 5ӄ T1D+r Gh\= C`8onmZF]4 NRi!K{ a"01MS)w.27o "ke8]mZ YۡG % vw 4.7 ; & }w</4 * 7 &Gy?j,als Z q|j.vMk!Xti N3i7] "vۯ (I#  z 7| s#  C d%DY)g *Rc+", m J] u}U !%;ܥZZ ``U(m *X-N t|R&v % #(S Y0UU\ %  ݣ&|+Η@^7{codec2-1.0.1/raw/big_dog.raw000066400000000000000000001161001412132000500155310ustar00rootroot00000000000000                                                      #8FVZ_gchWA9& Qec>X! jbx_< !xu#-'T 4 "}0745$- *2 V}nE*HhoE)N lfn=>eZ3+4KUu:yM~Kh2RRMxf~ lC9%0/o|~ N`/n) KIL/}NuK.< <'`Tz n S{uDkr )R]G:!HhN0N[Z9(6Nk>IU?a~YCzEJ d  # ?$ ABnpx5< LCfF5({mCN\Fay{=PA5GhKJa-tfF&#T #SswdUXWVI+  $':AH]eI)}trx$2??FT_XI@8/            $R8L$#(]9f k{lKk{m*~Va{pVm1'_m$bic_o"b?al+wW~IHPBibn$G$\n zQ +Y@pH2+56KS4 o7N|A5L  y{)Zuj ~v"$-4fy  nR Pf9+ [fXz Q6] mNjim M 8"Ip& 4pB׊'w'!m67H l8Ba|. M{MKTM4muS/#'B' DӃX1Y ?xv m0( O 4]e#.P8V#jE3S\7 zb<7eB=WcXi lY|j^]nQoD)KXHS Ytluf]j0lXeppy ftznX2^lxsu!?RivfZE+" Gu~wT5y||{+>UfgkpncRF3Ha~oV> )2AILJKH:2#   &LevxdQ8" 1;;:>>4/' (8Vnw|l]K6" +307884(!$ !LS8  $51.7654-"   $6HTXTZTTPA5 (52)'   6Fa6x%?{@5w]<(,&5G`R(3kD0?o(f1ro,?q /4 +UjT 4IL:X0G|&4t7/yLN<L7sbbHE f@Jg^6~ 8:R   <.v!,C3 AVzPaEU4yDo:O9k"A+9! !ۿr:_ kQYZT G,X x Su{W6YRfpx7t5$'TMe$ Л7`~"}!J+ !.!n kA> ^#fq9 RKw0XT1?@0+oޕIӗkR+/,6> \#oi_ G kdPޏ%' ^: w l8 UYA'E?x+'5ۑaݔ %:T/bj+ץ/ '  Z1K < ^ X! f)fN ~T8y /MaGQ+UU?E -B3YLZSE"*0j$ x #"TsUj5 }/Z Z w?C{TBF@΂Y;fE. vr`1S3r'.BE9 j(d#Lp{x $b!2u?M) ,T[d z-TOT&6dM24T .HK>)AYڡ1I9-7 + Z`J'(-(LS#!#1d'>PA2]yS|"MaZEgB!Ϝ[SfK'bFE"g/ܪeD.7* x;n)$&NH$#YAZU"  FHq hTDS;aߏڝ%<^ڧF&')    jA ;s= f @f$E=! dX >Rc#&x 8 ,W(ؐn n  U U {Fp|brP*1y0 d H,]Pd+"zN65MN"֛! c  gt  c F bz-U R  [8cYVlM,rba $%$Pk gi\%ul   >~ tg / d+\+H: @ nXM;= Fr@RqwGhtw Vg % UkS 2 d6@iBTLrrZ-qJFGFfFf<5uKJ7r) b2dG+YIyh~_fZQ`Nq]=7Vhvnna7+56X(\'nu jkM`Q{rfyn`AzYXq=j[: gK2031/:hz;z%J|PF\uq[Rg,RmLqt}3Tiw}}s5w<;QSi|9*vZHLZxJeiwUu(Em{*^d^X]p}l^J0.4)hT=.% |$@]s^".a 4i[>$$FZ]N.20LzQ +=yDGxHC>QqyI)LYcov~ vr}%rLcT2* 3Hc -5'x-pksH6 B T I.8Mj9hPZb bglgv{@N3I= Dv+Y[eT!>  |F%`g SH9"dp +Pi&MH=qLm;g07[M_  bHU$==*?]@"aW(bOoc! o"74g%M_Cm z('\/Xlg oSW9 j} % l j\:mw!G4C5? '1.#q FZf X!T 8 XLl(Y d, MWI Dv ` U A 1 AHb\>Gw,$6T.req#! yEL 9 .GL z)<L9  T 3)ora~ M}b78(c5$%"w ; C ]EAGN:0?sp[&:W  V>$} FSF DQjh; @ 29.X:ԨB D!XZ =܁ې  "x(@*f7 : eQ 0692$4:-*'dلٝEkTtf <"MK=  YW<> } :Pi\~#0 Q)1."y XunCTkc 9EY`tERN?u= aW` G )Dk+\ O r?|&Iks"+ [- *R!deP3 @ '#J&! aU> pof"}\|$5@ - |:2W$.wOM1/{ z cTjSJ6L;f]kroLZ Se/8FAjZX1G`J<,.E|NPepK!sr+`YZ`ln ))CLHT).b^; % *+'0 >+ ;6 ~jpU<!  - 8         MFIL4p&g%;Dw/(VEj.Nu>(1fF^&UT*Hy+{gf@\?Ct]a1c|+:yD @=;I'CW^7cU$=8 D[Yu| g. (^PqVg *"q]bl[l\ #n<D&6ip!xPqKB-=6WK!B61%=~OW%M{3]T15hT#Xj[rV`4c>qInf9k\ 't &+ d:EnAGVQ6 '$*d^G7=2)'&34/11' &;9.(-8><-##           ,?KD"P3& #)7FL*) !^9oWfiuS{n c| h?vB'RgGU)IC scUL) e%[ F.DSE}vA*tuC*1o?V 8v*A:f1u3tu1[aw$k+eQw  `*aF7#uT&|Z+Z6bQ*`;MeB`MCb9YBj5`sD bS<T8]G'q1*_ew_V47#w<$K+ u<"Vd~.,3*p9U4+5CM$0]\M&7#k8D&Q2 (4$MS(@3n7cURu2h^n-ub25~[ T&U_&0!s??~(Z0O`$) JGv[xBL-kzD, l} rD_ `FEE3"(\y ,QU` AclGEDp e*v$*ezQ>8_ASa`r, wJ|OQ Xwh#@f73rM;1v!F.8e44   e|bG=}cQmRM'Lp0$}}s}A]_xg E!OV +:ROd{D` Z6TO?:_IS"=b] l:^?=k> )x + t }  CD/  tcV8#QMjE&*bk"%S YG -N $;xJ vtR  ?|dbl6m}7WPzvW)7T F :;(48'Zm,}/F.(\ ;eVrlF};ex%QN:5 )<{vS1 TlE)^.x{,r3/"r<} 2d? pY0;u^;=M.KR gv])|Mmry jA23@7SihA,U^2 > 7G,nT ~pD~3'R(/[g4Ri8>q#^vG15y$$}]o\@vqwO]VwJ$6b4Xe/Tdq'C~%~cM?~SA:Bb7mst$m37f]' &6Z.Smyjfz#RqfFn v>Lq.zZ[O@{UgR8ZG +7 j [9" h I$a3Y$weI5@ Y;k~ls(eo-|>eq 'g Z>x1j|1>1'q/T+ , gq\|jvKJUbT,(>0t:vgq\ 2,K1rBKG+K@3s  Ds"\L9fE,G|yM4FfMwvHi])+!DLwbpLXNvzo^o n# b BZ&EC`,$#Ba%GVj.^HC+KbSyVOlLi0GC?2E|t!x }Q7Uc%X awg  ; B ) b%s| >q/BSO $B _T|CmC7Rp;L El9 oYm JqiV# 9 p?y^Yf2|#Jg.5a IImI?RtF5XZo'"LC9dlEG . 'sF bn?$=+r^CrqBSf \-Xv'/%wHGx:FJYTZ(?E6  [+A~^ ]ljdj5W2Qf!Vqq:,YG QP;h6 o>x A7 eb/9XU g 2 #"=h p5nHmZd;Pj jYOUrm$ aoT U~kL :M sf^^\R7 Q rjEgt>63te  b +Nw xY~ 3u0ZY% yrF #=k&)Z % -A#4 DYC/jkPdNv.(fE 7g/,HF~3Q5"p ?(u> ANo @ k J1, {j*Z$ pBW S4h~ > 1;'EQIWu%FJ&z Ku03- =nY$h=N4+Rs)LMOYYk& .sLqu}Iu< 6pv ?[g(b\j __xx;]=1oi=aIE~ Jf$8-4yi&A*!cJ(6)^J  :!8A&uA; w;"P lnjY!#eEyQJ=jtxMh&0Ik{Dt Qgg{pP V _-6KU/KEOnoq @+"n}'Q'Tg4v^PA 7cd"6Fq _oaMg6b='?.~KKs%&I@tQ4^NSK6jp3 ] hC?i@)vq\.~NM+-xXP,-^~V#Z-um+l+_7tTTI(x5Nyk?ic a1Z>D#btqw&)Tb}Ov`@7?i^a^T4 @q3 ewuOL- u -B4zOmP^_G=51W(P[Jo+?HCU- 4HD .w*`sduTh] U j,8zf9A0.T@$F\='4o>=Hic* (RD73  rc P6Bc |k k;q#L a-  OunN     %#a>,nN.{ A.S=6a' t_wVh.2 N _6 P.mRp >bW[ 0 bcpQjX?n wb$^Q/_4*!JA<(2_zyv hk XETUww; clZp:m V *Jhg f=j 7 g5* %SlCG K+%%A Y?j x\ ? f9> o b |B%V;  kV yy#E  MZ:O L  n(" 9D  "9g 4A Zs ? 2*1 o<M \y qBNf} k Q! R:F Bk8]b0^" r u  y$4 l9g$1 P p9 i ] 9qiO1 LV w0. p`Hi2bx8y%~`uP t  t Z K ai=1 p )IAYPuW  4 V JD  +E1`E B^ }Q sC0q a b c:6~nc P=FLrgM$=MJ{iZOFKtlYS@Y7 W f [(q kO s v7Y - , sBoB-?X[Bh!*i+ B~Y@ M1qX7V+"})+6%  C7(}D Cq~w@ustm)^io%A0Ubjx/A#$a- s+kl6_J 6 l lQaMV e-%n]&l;jhiv~x5_RiHAKYR0Ef0 h^e8?wXN;j#k|;4ni[#6-qtIlN`Cc?+Ey{+!fJ@T}:t'6^tm6<:sw44GpoB2z} -ZzlhIQO&kdz~%al_,omYSS[t|1VjwbJ, 4AWckqfZO?' ,Ssz_?$!5PV_jkcVL9( 'Farj4 -=HTd^VSG6! *3202+  '-@ESacg^WO>)   "0AHTWRVRF9%  2K\izxfV>$ *?@A>5-$ %++# BRa:$^In{h~ 3<O;?2p[O\4)T >11U&chPP'X"}| [ q H)Arc F] Ew*& s+\`g /)_~UY L-849E7 &1 (w~\_ + #s3 ^!j >PuY< 2`cO U2xSl  eOH gG&M7gYMP(2&m }s! *g! GdX$ Gt  [MEFC  nZfQ o |s Ab_ hDq:6 'EdI]YD105$5L6#R[*#)SX 8PS߬ / w4, 5 :vR ]  ^sz & cV 3![e!7f5cE b%Y(ԋK f@nݜ$&xa 27vCF)[ v tLU3e gx4#jpA`qkI_P 78?#I1oώ$VF !'BtӚL D+mܰ >` N_ e 0~.nP7* KXL J 6Mcr G aWezHqtE?!56#jSϓԵ }%m߂ 0 X?`t> s>0Mk4 AK!8g  t+4m~zt$nx]sx09+" +jW:z s"!M|~p ?2 ߾n_"f. eY?w Fy%d,> =j=M!m'3,5҇AK S ^vWjb 1 pe'~7J~ 9:0pyqU j$tWnE  " W==e+tSq+.w"H~ؽ֐|t b?۫ښ l  =D65jkx~/g]S 6 5QG Bx `Rb$ mI+ $D2+D.mh !KI@v ntBa"N l psHMS i \ }?h,3A~YKr hq'6&rS 7zQ 6 :yGEv E?$3EV+ gW B& % > ;y5-&^&Ms&:;caFGE5 'W&L:n0?W ~ ps, 7h DnnYpN}lr' #! Bw SiOXD =%iS $UiR|,ur^Fy& sݏY Q q mPj D[X,  *R  "9/KrYz ,k!06k\gU,`S*g"%Zc ݿe}  A  WG_" JSP]F " !kj" O>ND< k.X_2T2./KmlF#D" y0k+  vJ9(PY=4ay5SxK-DTGbFHLE g'w5czy{PT/a5 ha^4uW4/It*JeL3:';DlY.eu`5#`(bZ +uw h]>)GWyl$7i0 b?\gj5)C'JhSsA(ul-A(/R qY0w= C>m~?w.Z7$0?tqr3oBC21fu[o0I!/{oa+CZ%|FaGMm!W9Ik /@Pazhr9c nV2 RQXI&+ROU'?:yAeGsuz|~@+wvCuI TDPG\!]}f<A`!V80\5\E<aC&vMZqo* 6cNz1 ?:1=Lhsp^ (f +xj]6l bDR`aPT4$Qa[tdB Oa,lGU'bub D\\DbS f?^`IL!D\ez;7?Tov$-RoWN)i{bCwS%*tSwXX1nu2yz\|#45 DZ#?4. )SO/ZkF!UA+DP-a1|YRuQlL<$tL{pf1DJ/ ?>"qGd1 _q=NptOtRg,*D(<T5+P4}7<g~8k,r3oS8 (4L nccxT0~(vO}`Ypvu B|WP3`}_J"U-9p_bg+ <co|L\r!&`?,x"+x=-#7Z~6vA] *Rt#5H? dCVf0&,jmf9QfAP,cJ[@V0El2$V;),IaiU% B$>(t4"B$f\eNycI7\qN!g~<`7+! s7?EgZF/ $zB,HP1>(:Q(&<:80$h5($7?JQBOm$O,zRLDV_MMF]0)>@E5kZN%nQ-]hLJMF1- ;O11qNo *aE]R#F[\ck#V^ dNme=`H&/U;$! y9afE >ze()_Nx?Z6*qU[2SE" %*l2A   @9PxOfa#&ft, <y% 06G [Ah0*G63/>7td 'ISeXBP): "Y9# %+ F82!`d^/'E?"Ynd1 ,>[O)Mfi74a[& 0:,- #=B.!DIH1 .6./H9??  ,+#QT _h<>QB6W^N.?21G@,G- &LW7.-9 /E?0 $)& 3%$&",% "#1D;'(,$9?% !#$ -A>MM4E/3.   '0 @B4 +/  '*"(% R]O0*G3), &&F{p8   $977)0I3&95  58'/I*,1 -0() +'"  +4""%)?U<&!     & "!  #92 +LL5   0HI>-"    $ "                            codec2-1.0.1/raw/cq_ref.raw000066400000000000000000004307241412132000500154110ustar00rootroot000000000000004TX00DD8 ( ($$$ | 84@$0H h||||$ `x(LLl,0,Lht,@PXd`h0\p$lpp x0th8 D ` (h(p LP,,0`( p<  80p@x0\  t@LdpdL جX|t(PtT  PPLP 8  XT<|h4H,t,L( X  H  xp <|ڐ8T d@X ߰t$ x < H8 p<t`HH Ph P0L0@p, l 0Dhd!#&'%, p$8$݄ݴ< | D<$8 DTDp`P Ld@t 4 T `TPh@ %P8(XHh<4l `P8@4 D\<th08pxxxX  80dt!$#p@0X(hP`Xlߴ( x 40\(8$H8(XT(T\ `$ H 0 , (  (8tX <<8|<٠0p Pd`H@ ,0D H|LDXD$h@XP(X\(< ,  Lلьpפp0@| $ ph $  |4XDX$4@h x$8 (XX\ L,,@$PLH XXtրՐܬ@P,p L  TX4tx<0 L`tLpp8@ 8 T 8 dH,xdp$\<ϼX(ڐP  | @d\DpTht,PD,4|,Tp h (`Ll`| \0hҠlLTd   P< x,<@tCQPMQ8ApLp ̪@L(dl  8,x,P!p=<14$)$, XXL 4TMVTZ`P$:\QET|T$( 11*t70/8"d HXڼ4hh8@ \ x@%)2d>hHO.7,|4)l $(HP|ל@HP|lp @<h&48:DQYfHgQG\$0pT(<|LԜT0p0$T=8|8\-&h18pl 4 ސژ,D 8 , 0 X d H8&)9HQ[Tflx\\G`? xܬ̍lxLTh$Hd68l;(/(X<8 ФdXh$   p8 )0t<IV8gij8TV_4$t@$d `ʼ(|(P%+486|<"Lxd <|,\0(T`  , @D"0>IXHgll4Z@X^x,t(`HԐȖЮT' ,$/ 62h7!4Lx  PtD` <  x\&3C0O^ i4llS]Y"(dĔL|l0D,\h ,H.53/.L(߸ܔΘd   p\'3@HP8`\ilhnZxXd[+׈藘@Ԋ$Դ*hTT` Tp$$X D  ltDٰ<рd (@(#%'d)X-.H/36; ElPK:8 0D|(ȈTThl@,8 hHx\ װӄ`(|\ `!()+P/<23(7 =@FNPE96'`t\(ı౨l  Dݘ؄hh$+.1D4594@$ETHMHD71D% ,hǔ̷tضH@   LX\ۨܠd, !)`.$0d284H6:>DEE90)P@,P8D xX,߀\ `"L*|.`24h68dhAA@<3'!ll0و8PθLt X@lL@4`|Hht%,+.024<7:?@|> ;|. %(T p@ <\ɴӰL4 P T `8dt8@Xp t< %+4,P-$124d7;9P84&|hԼ`̾4\P̠X4 ` 8\(@ (t8#4%&&X)*P-.p1x22L1D)ppXհdt0$`,@,48xX (44 |T 0 P!""8&),+x- /T1-D%  LT, dxTx˔Ӹ`@\dLP@` xT|h\"&0)'|+.)$ (@0Մΰp(l(@8`L0Ũd$h א !+,4+& $\\x(TXD4P`D4\(t t d`x p')),%0h p h|ð(Pط$ϴפ  $ %h7$)D4 t XpL D0X @DXx|0 P ,D,D$$"$#TX" ( 4LМllDhǠlxh 3'H8 h @4@$hG@PZhKhKg8d'5 ؄p$ܝАH,4@X ` 0/7//8d0,@4 $ |PHt! \' 6:PGUX LO fAh$`4\Ld`dtDhD䡬x8T؄ 8d+5x7.*6!0H|L4 4Ϡ8X8 p#L((-8BP[KPK`jN$/ % @H|DX#0>P8< (2$*Tlp4hD8X0@ T xP@%|&.,:E,W_I(JoH )x ̰Ŭ|4x䠐׌l% (@+?L:X *#htD8׀pڰtJ,`bDIUx`VFRI/$xؠt0̘̘D8͜4 !p*-p'*0X0`hLDݨ T<  $D0'|)0l;GR] WI|R IT3 ް˼dtXȫ$ x &,,,' *d.P dPdpPtްh  \%'/`:|B0KhXTH@MF3! <,`dн؈ d!'%'+h  D 8ج٤Dݤ0<\h@ L 4l#P(H*1:(FNU`NDG=-@ݔH@<|μ d$X'%)8'|(X ڄl <#%*`2:BOSH@Fp8#|xD`dԫ((ќ @%((0,&,lx-h\0̘ɨĴ|t$ L!40\`hl \ tl #"!T-,$-3%*0| P8@мxӔ<̜Ӝ@ ,lL8PD(h , @T%$H'4,-2`0t,@),X!0 xдH˘$ʹ,  8Th lhH 8(,T("$"% !"%$ p| Ldє̜ʔ$lTdt h$@ ddX xt 0`(|l0\04 \ 4Xppl8tD80@4`T |x | 4 ( X D ThD,$(x4d(L,h88P x@84 @L ٌ 8 lHĜ,ؼ`| 4&h$d"H|hlh |t@X|x< 48dd Xd  , @ H H $t&(/\/0l'\||8$ǐHĈ`ƸѠ,t|$`, \h   Tx(< 0< 0 T$ $,0L| $ X( ,48(p D ,4@Ʉd̰L< ,t<p4|,` `  4HL|phh<\@4@@0 $pP ( $ <  , 8X|H(הdɨXh8ݠHX ll | `4   <h P lP`dXDhpDd X ,<  t Hp,t| , T0d40݌@\,<d < h `$Hd d ` H \ (\4tl p d  4 P | l lx,d d h P( PۼPD  d ` <Tl ` |4`lpH4 |HPPpX   \ t 8 0 $(<4|Hp< @4`< L @4h T 8,d4(xxt\@ d( , H D p dp(T<  l tlx4dhlހhD 4  0<|40 8 tHthX 8(,4 p0(lT 8 8\\\ < P 4 X@hppxۤ\<\<` p H D  H 0400\d`HLd$p`Xx4TT ,  @$Xx4@ 4 | `4  t;4p砿(Ш@|0Дp\lP, \ 4"<@@||4/ |Ծ@TրHh`T=3T\\ڬPԲ<0P& XT\P$4 \DDTDt| lH$L hlhXh0\ @ @ t\, hxh$T'('%,X lҸרh|$,dX,D$(X""$'#ld` 0|$|pL|44 P Xl!"0"#$(%'('# H8Ąˤΰ4T|TL$ldl\  LtP$ 44 P<<@P@08,Ph,D p\8|#4(<.,% (8ӄ͠TPXl8d(x $ 4 <DP <p| \|d4PPT(hT h p "  884ݠ8 |(\ H8D $ h8$X@,X<00 0PL4d ( H @(,4,\lDd D TX H XXP H   L@,tt@l0Hd4htl$@8h$,P pP,X @ P, , <`(8PLp x8T H h <l4@ @ p D(X$< L0X|x$@$p h d TH8#x\dېlLx@H|xH P Pp(`$ `D t htTxxhlx8|(Pd<HD0h<@,4 8l `xl(@ PXdP((0$T\,P@lH(,@0X4tH8p<88l|t`D @ ( 8 d p\ (lH0XPLP|8\<DT xT<x( Tl44`@X4,@\pd4@4  txt` 8 T`Lh|\TLhD @TP,@<\X\|Px p\l\,$L\h4lp$|<,XXpD<pLlp(,0H $ xP l(x,4h$h|L 4l|Tl4`lD |T, p,<hP0(44 hl DX@4|P`|H`Hh $ \($h|xtD4 D(h,8xTth,(8< 0t`H,(|`lTt<< T|pt `thd@ttT`X4|d\|0\lH`Hl$`\p hL@ \tHXPpTD4|l4T LLL$88D|<p$  ,4pp8hh`, d`LTx X\TP4<0 TP`@ @   `8ӐlՌPXP8PHXT @ X<X D0 $\ D8 0 x ,(,  $| ԜΠҸ|ll,<tApAA<5!p ttӐՀL״h,,LH , (dp$x(D|M|.l<  |"|2|.|tDl|&| < <DdDDDDDф\T|<|I|8T<$|&|0|$< <d< ф< |A|>|.T|"D|D|(| DD< |"| < DD$ \\dDф |<|8|& |*dD |$ <<DD4$dDDń |&|4|,|*|$|8< d\,d <l$4< << Td$DDDDDÄhۄ|(|.|2 <DtDD\l<  < L$\Hl<<\l,DDT< <|"| t$(T< < < \< LLdT4\0TD߄dl< | | | << dD$$$tt\< <<<< <t$4tDDdd| < ,D$, << < <$$d$DDDDDD$ < ,DDdD\ < << < Lt$DDDDDDDD \< < <\d$D$\,< \<$,d$DDD$DddDdd`L,< < < < < \\LlL ,4P@l\,,Tt$dd$$dT,l@pt,LlLLlL,, TD4$Xl, ,<|(0@`x$$4TdTtttD$h@ |l|||ll\\\L<|2DDDDl| |(|$ DDDDDl|"| LD$,@  DDDDdDDDՄDŽل|,|A|A|2D4|(|,|" D$T,$lt$DDD߄ń|A|I|A|(,|$|.|(\ DD$@dDDDDD$Dℾۼ|A|Q|M|.\|&|,|(<<  4d`\8DDDDDD߄ń`|4|Q|M|4\< << | |(|$  < LdDDL DDDDDD|A|Q|M|(݄ |"< DldT< < <\DDD< < \DD <D 8LL <<$Dl< DD$DDDDDDDل|$|E|>|*DtDD< <  D  D\ < DDDDDDDDDDۄD| |A|4|$  DD$< \T\$d<< tDD$ < ddDDDDDDDDDDD̈́|0|,<<< dT\ \ Td\< , $DDDDDDDDDD|$| \D(< < \D|h < l$Dd$DDDDDDDD<  \<< < < ,\lDd< < \@t,l\|dDDDDDDDDDD<< <  << <tTd,LllLl\t4ddDDDDDdD\<<\\\ < < << < \\Ll, ,t4TtdddDDD$$dd,4dd\\<<<\,@llLtdd$td$$$$ |,t|2|6|2|& 4|$ TDDDl  $DD$DDDDDDDDD߄للτ|E|M|A|$<|0|A|:|.DD|(|.|$D |"| |D,$dDD݄ӄD|A|Y|I|*\4|2|I|A|,DD$|"|.|.|" D߄\|&|& D$\DD݄ӄ|&|Y|a|AD|(|E|M|8d߄|0|2|(D߄݄݄|,|2|$D߄Dl \$D݄Ʉ|:|i|U|2|8|M|E|&<|*|2|*D|,|2|"< ۄ< < \tDDXDÄռ|>|e|M|, D| |<|I|:4 |,|*| D$|(|.D4\DTdDDÄݼ |A|a|I|(,$ |"|8|A|2d|&|"4D$| | D$L\ldDDDτd|.|Y|Q|4 d|.|<|4lD \Dd$<D\d dD$DDDDDD߄|M|]|AD|&|6|8| DL<DD4\  dDDDDDDdDDDDDՄDŽ\|0|Q|E|(,|"|,|,|" < \,DD  DH\$DD4DDDDDDل< |2|I|<$,|$|*|(< << DD$4, dL< ,DlXDDDdd$Dׄ| |<|<|$DD$x|"| DDD < < \D \Ld$$<< TtlTDDd$DD$dtddDDD|"|:|2$D\< | |" Dd< <dT 4Ld$\\$DDDtDd$$T4ddD|*|2\| dl< $$ T$  <$$dll\ DD$ddD$L$DDDt$DD< |"|(< ,$ \$d\< 4d<d|4$h$$l\ddDD$$44TTD$T| < < DL $$\ td$$lLd4td$d,$$$$$d$Td$$TDD < 4d< T$dd l 44T4d\d$d$d$ddd$,TTT<\pH4DDd < << < < < < dt8\dtT4,t44d$dddddd$$t,t\pD,l\\l\\\,lt8p@t<4TTTtd$$ttttL0 pt dL l,lTD`t,TdD(d,\ <L4l4`Lt . dp=.W : y 7 ] c`y !o&Z&/ R* g*  ]#+ |'6! ;=:[' 7 Ir.D | 4^T{ݥ +! e$ ")! ҤBM;&=h#i/)& -"(uq0|(&DٔL' '.=iaߡ)5.!n 9/e$*=h+܂,FS5:`'[*@wQBTH&4(eڿD` s;C+]Jϙ۬-"!"OOQ, o& k3ݍ$jm g[51& ֕48 ' Brd{\g'J`q3/i GW &<x0p .~ Eܬ2D  6'P ٮʩn(Y 3EjݭJgeU60#2uB,h x CTO 9na -'"@=MS.R,3"dޫ#|f\ $ R΅t+#VnE)#*4<&Hѭb݃]=2Gu%n_ٚc&j *A~ V%."|tX?0:aPI {߲kY},>Wfm'#Sk  lp ހ}o i% Q :V^D: rc} P-  C+ m.C2 I j v . /X ~:1yx <[ B#D q x 5ezMp5- ` E(;AS  ltW54. sZxH9APcvM{kEEopU&M- fJKVc5=kq<2xNo~@V>2y!ovVE6A/Mr FF;P!g|wt8yU, *<Q_ZNZpQ! +$r^_gtiNBKp$.-CZijjdN@FYXF/ -IOJDK^nyxn]I3pt{o{*K^~aH/ %BOOSYb[G1!"3- {u(ekG2O; (97%/[|{lR9+%$!0?@. 5;) )BE6""8=,(R]_[5 5F<$ /#         *  G[?>h!:$`\/.- | 4v2q@D Bo[4ZcL ;,X?Y*qCu4Y4byv.36v;u[XhS?VG060y@e%/thv |`87-)]}]Kz'r5Rpew`CT$Ob=wRp/yP1t}-}.*tEX;WQ MKt'1l[C)NUzV%Bj7/6%){o]*ky7"&T HYO%xMA-yI0|b{y>4EeM[F)rqQa2CO%:bi5mQ+X <3ub7/5yh]? s |^*# zc{7NuZ qu4  |Sl/6-u  G % k Gku Y mvgkG 3i j   }{Y egPC l@ 1q?D/7\W/e FLI_mUYd 2Hݑt &W!J" ,GB + <C 3r) <z,2T$ho#,j#oM & ]y S *ޤݐ  -7(;yE_ x ,0#>* G5ޱf:;"/$ !m1r W*[T h :}R"[/ -+5m;`U 2o3PO#+HH .+f3^Dif3 3 5SZ 6  Jo / %03}{Id1 1vGK( V ]En4 jN'/sA:,!p$"$C q!#xQ1 `"/"F\!vBE. ( %0G^ `|^~޾0y %6)g.^]VA&)66~X9 8hK 27).cݤxسV3")T!i  FXxL[5 vA$]/#  H&I%6 rri(,N; 7 w{~).4 nr&#L+e2x|yw_ ( N)Q.w=V #" 'yCvUjycsl, W%-"q 6kI!8 Ta# v1}@ C,Hur nv)i)d(Vߚwyn? P Ds [p?U[&P )X#_%{_R z#  U id3@V&!\24x q"Q|f gnT $.Y/J% P6 dA2w K]ni4d !Yz g 1y O?%:MvV cI t5*=Yj6b P +t/toEfnwh%3 l 0 @Ew, = "U*J q/ bbAU,j>_.' +J.Od.,[1S!O5[r*rFoA;#U0*Z5=,)'|@_a -C' Kqe6"3M=n GGDrk"w mu5BDDRcjsvvqcRA-       8GWIJ6$6*?,qiBuo;KUl25-r"pv6k I/5y+QxG:)kW5=j# 8Lik-Y'nb7E9+ :!xe[t=|.+t2FBxT"!|qpU+O!kx26Pw}VCX#k!Gg5=jqmwubV@&1)h^da&Uxd[xewxm)g;7yCn4`8o::Gv$DjM3CSd||9 NAt^V6-iv3azf?p4/ Q$N+ Bg$+}3Dh_x?q[`udwy} d!RQL<?/HExGBUy] )i*=orPeWG]QRW$RP8dJ%J![4Awg;'xcx gs %NB9h)YDW/EB?9$6(w v m^a^[.p.fM}td^ 2{7>IIZ  oE[/ C<}c7F@giBWfwo+YJ  g}TG]crh77|K tSHy%7t|;@m-  l!b4Tp,L m@_=$X[Z, M Jfo&ao @#* 9z@tM t7q " 5 h  l8wFb46iG &  vt Ww"r [A ( & Kz1" s@l  %(FmO"=8 3 +k7K ql_9a,&HJ'bKb?L" g( mIqeFxm 0% 0?40pZ )Rn# P '$v~'$ WQ!N y6Lp) aXWkUM $$ 3 X Va?UQ{,NJܸqHG+A {X :t o{ 2Kyه ?#' ' g=PEl036.'aFT~OY w c8>UF5U3/R\ v1T9,R 9! ).Lu U6I~ Ǚϲ(71,V08{2%4nW H"}>}p'H/Yf߀2, 1n^4$ -py)O Z=?e RZ)5fc).  nx`3 t7 6\N:EOv]$C(Ռ˳")#t{y QN: #Rm*9bMZ,8N ^A1 *b wE XP <$",&q"\ 6Ol ;e  x@`9pGR 1&<=GVl MP4AD=W> tuAKSC5 QB<^ DN#S,<09{<(Lh p W@=  <;2n^ a{Y]< cZ{X0N-   +Ele- gA@,H= S  p *3Nv. a B  u>>rW7 1<)o )]ti gn[qjT!1tNmx|R"Az(QYM  0?=V S`?ej1 4jf 1 =?j'B @@Y"BcH2vnPD1Z<'x #1fy OSk-&V< X\"5f%@%<DNea^pqDIR|Q"py HH',l02C>"Q2 1 $z ) .Vj r(X^6fA!d^ ?AY fu7 ^j,"2?;mKQ2W#7fGa- X@ODV#rT_1 PTTI%wB)V#EVI{EcAD{=4swXEg.UezMYMo <]r+E EM;E@h3^v. OpBn)h] nWa#+wY jz 0VrX(J@K7%^%-J(6wD#<. ^n;+0_"#LH \/1`t3 .xN d}*&5JAdhb"Cev0:jcUGB`RzHRs|:HiBzKP;CM$  `VVhRB? N8D b TmsEtZ P i P"gc;wTvd n #Ed7PgC .Xzz6 Y k A  .!` JN K2 z a*gY %  pRDcT 7  (1 kU} yke en` ! j sr;zJ1 Am% - { J x Sjq q {l&6)c]4}< ( }7QU AmP=2F6N#-+> ? F wag= m 'uP@km 5&F  P {d\  Z4~S-maq }&PO L N KR0  tX_Cbc6LVO #sh"Psa.NhnYD^M:Y i\6 = X C7F  nws=@$M x YtH u </@_  %aYs 2ikU6>GX4?& / `tq2*RxlPN-e{`I?L#jX \d[zAUVi\9%geC_SO4Tk+;" g$~Hfb ,p<t x,r[)0|`(eH,+<e:=p aqMl=9J]=b|z:[%x0y=GG),xv=bXk; s 8H@{R{\7m?8Q\7gkLL$"IQW5ZIhc`jPNj7-!/R|B9y/S6e#QJtzt`pj/r *UT_6~(//}gKoU z=r;fU8E\yu,`O?;},VW% StuC<EldT<wV*% BT6lfp Qns1p?%quK|(ho]R0(a J.$#(\Q#*?s:9s,}pex^3Va7$kQ21~t2%/8aJL,= -3" k7 ~5R{&!|KD_S"L &!I.BFGM;*Mlz c 1):.,/jcD4{sWoC;m(wg6Y7G {2:[pM26Upx)Tu! 7(&1J=q vW\krL{Q&P:H>\6$^ETC vu_8cS-!<~*gEKA 15jEMEO@%&V} fvh'X 2`CAJVXq#X3" W *!r^A$;` k()1M*5 W%c-*F zRG6 "3= , 4?ZxS73!IA_$7}V3.Ah`  !           B/! D[!Y%CLN8x^.Sx}e p{kXad; lo[Pc\h>q[;-1 htEqVhQ+gwTubz <c]_}4pVgS 0?JL&v][maas =>he+_E DNbow'HA*cc\qTauMt\WZNZ3U`AR|z4 p9uK77&g,Wwr;J+p05>'JH@Y#%y%*ND@S "TOT# u dh3&BgS!iV#<# hd^.% x~>3iy`!}*0 QvZWr02 Q'QW^5X]ftUs_;G mMg  v ' 3(J1=^%[x{RKQF+yczw 6D092pyGC[ps^6 ' =u_t3L^yl:M,<&>03|Mcpwkk&%6 [GrS#U`lw]%}E(L| ^96Dl uzf?/iF3R`H%nD wFLWIy6*u Z_ >?|UT >c "vE,d4 ?*LO;Y?5 xB 9{BH F: +I n+w,`i+ V >BRLc| S (0  Zg{xS WMw 1& ; Bx # AwSv~ v6>dYbqXv.-C 3[&> wfaV.T,R DBpj u XZ b]| tH-?W7 9AcwCw r " D 3R/% - ~/}h 9  M*LZT i H }wJ!I7  *(C l w  }>0{tL i -_7jvpt mX|VD'4j W)p F K~1?2 {5  giQDL v & U?' 8 S }E(W SVzJU Tn X<7z2Px6^8!u  ~ w) 4t IKe?G eUtVvD)yM  $3F@4W )7 # OV _Hh xVlrEw )fvd}&  { 9GCmV{R^E  b] + A o=p7;9B!=Wo  7 ]2sV \ % +N\\i8VH(IEhbxP)7> ^? ${ R  )1AP <KEZQ`T^hr <^{0'-s=oo E,7eP-tJ#^shw T 0*N[X4w # ? Tt%wcqZvD/!}^oA"V~ | # + Prq R-We. [k{n3>@Q  q g "W 1ERxJ94uL T2O,  Z!A 3[Z(6sBgdC ,/AlW S \(`JjT%?5CdQ}V-X={ t.BWZx   G8JU]0fvV?`pN/{R!%Oq}`oM z'!Gr.d:=)`ZlIzbwU<@IQ/N^L>L]\@T:?qvxtvF{]$"(7pzBdx-P} x`T5j " OB0^5j'^/hVPBGxpsj<a\yi\U/  #"     $*-.(*("        codec2-1.0.1/raw/forig.raw000066400000000000000000000612101412132000500152460ustar00rootroot00000000000000     !#!             "##') ,./*+($%#   ;+3@"qh/-4-P5 Y T.GT6AZ Edwzcbk)/Opx,?H 9+'l#D x- a])gY!3e6p{b A _G9;:"eBSdve b7- +^6F #CDo(  2/qQ*z&o/Naw/Qh" %CE=2re ޞ PF(gL Y"tD 4 K 7 Hg@8n !C6Vϥ8 0} MI}߾"iU,n!SI9* &)6  kIj-)GB`cq8M 2)7Op*4b{8%  ~$>) e ` 5c!; qJ%M"%gLX~d{-8$tM^k   OPndCrt.%[ZQ_mݦEq &7L'Qf[P] G*a&+Sv5bG.(6%QWY9 j -w}~ K0!.YZW(z^ȗ%R6c0|+H ff 2;E<#[Y+MųFy+)]  d 9do\wwyu*a@X*^*K (%$pvl 3 i_OAOKp_;[H}Anz/4 lL t6]voG`T .IO7`ʻδ yN $C݅ u |uiue=J3<'O\?mWƕ p)hGtWFYR@Tr>/ 6NiC} ǭ8 U )% {egzJgUErL88JbăwP  l~?debk4=n 5BI{@߀.r :N 9 "auQXgf8?.Rr k  y Blvv khYw#n77&#W= "oy^ D* L'1z ( 72h.  \ ; %"x YO $~Aq,~/ ۉݏ  B Q1 1 lfS*%'#w*#/ & Y >3KE M:|j S%#$hg!W7 t $Uy6m6V&9 ( Ng)WBnsE^t"U 4nt"'&s4#J3\}6fP2Tl`+v(/5 MW( vS>)N{g|?#XWy})GOs%MtxL~ tJaGjCLG<^~refA^Yfvq~<am~tYG?:6% (=R]fimqlxnkc\]SVMB5*  '>D>;94$Lk^C$Xe" z7vW \O$:C>){efheZ82axz N<ec/20, 4Rbj}cJ3! &&(( #%  '%%!    !!      (E6PKvYp5eDUL!=_dz[n&d^q4?#KcHmuw .\}ql!Tc  U[j!sL?;\R" ^+e782`xoGK;9_Yx,B r;q1%Zd@"fu43"J*ilz_7EznM|cNAH"`$)z l$"[W{ @#!e Q (E9:#2xWd~t\_B$^(4v KbFKwZ$R;OxJV>?bA:Ljm?iB4)$Fi*WVjD ':i@i)C f ! @]iVe$1&nJ[gU ek!n m(K $3y, /nIQ 22R),a  JV_p=whx}/gZjn= TH 4 a 5dj# A$""B+3HI(Jt. _d yi&(CgzsEJ 2bm g o> gy $j. l7e B 9   }q R00/{1T9 { @ UUj@:wOm 74 NNL6 {' #% b`t@Y(Uy3x>O( hC 4 !K"m&.J8   A?#p+[ ;D ,?dy p Gwu '1LA<)Q(p+ OQKKkV 5QE?+?'1sb!!Z  :4;QumS'NJJ'NE4J\w!%X)F h2  ! `g6+VPSIv#UFڙ=7U#`' A\ \n) ,<XEN1 +]^ '"b 'SS]U%_q L@D ,MiD#ݥhڕv 'KJ UeO &&W 5+NI@ $`]p%ݟ( T$M WHqa ZH6.@Q AD.k3d > KC*"D |(p ,%4B?*v:_Kgi {) P" ~3Eq 0A6#7b|7ܓZJm El d!7\ ): 4l%2fiؐ2X`{ gx KB) i }wm3fW`|2/&3 =!޲%t5<>#!^X ;)&I^.aw t NM_g?dL6[h#d[^ a6|QU2W ^Fs lCJ|;Va0EI0 /&f o)h1w{  / d vZYyI7g\ P: "Z?TJ>#ae)(g<]] s2w`q*( 4^s*,$Y8{I#\vY<\xOk-k?-  1H`{(:Tj~}obMB4+  !$ %# ! ! $"#!!$ ) &#         " # ""(%$$%&+),06868;;;?781&'$    X *Wr} f769QAL %d;o5YwMW]Ga*;3j io"5byRaZe=FZ:X|"&E Bn dk$jz "sC t =$C!\R=M {VxN%VE[ d] :dv{"uO5v_a.qDWtuBiw> Bt!\M,2[4Y3'0  E8Dh1W Q^U_I30f` ]SN'}cJD)2zEdr/l &[TUza\ 'AiVcy{(OFq?4$NIN.b[/uO#S@ mfb[3?b9A.%}WZY]y*DN8$m) 4< 0 (R2%(x-LviMrb_z ei=MOf~-xh-PwcQ`PmCb2OK+ir!fk vFxjLH^%~YGFnd4_& .D 4J'i\sf[c!?FIV '" aZl &' ?6"bYG)'iD1 J zN(`$R}0Y.lj(ݑv ;GFP-0qEE`_-2{ 4~  K \ pM;/m4%6sߒ!Y e;4 uC,nf(%;4 W֪mr Rq4 v$3zi+,E(5GspHgS|  U"E+*-|?ID)Mjr2{H IB6< R P El;Hwz#ԑ͆"Oxs${n   J: E]W@JKpW~йR%\u5L T9 CFP:hC(:M9!eչ΃ &} i MA= SH7L F^\ v97O#{1Jo'isp }7i Sm <+Ym@ ~q/ZdBMGς). - ~ kMkA'.&LV5Mt@nMhq)9 Io xP55 8Kou 1Q Yň R J [@ k-UT>_`7MB`P=Ђxpe%3  bFb__yD4l*O3 E6צ ' =E#" g tH p]UF/G)| սɡ9qh<%4b < Y Izz JU-i1thq 2v~t~MDXs{+}O! ixQ uVB`=De{R6 >$Oxue Z@!Q8(pg}.z{ro] #9 '7& H7a~19`>vcuIB %8 w6 } c{8qd_iHd&lJ _ ]"_:7V3sWKDs`*V; c&i4 [ V\t-H mP j#fA ) F AiWI:AE4  YNX35|$p!.|p c e s )% LJ"GgX- %-l z x = K$FVRbA G#}c wlFye'Mfh$S(td> "ZkI>4 @T_PF!L/ ( YPfx M"c[xQ6)+ Ofxj+,XGo2[[`hLJ ze Aq ujwCm{H P_Mmc[He*' z !qG siCUG rtX,1+Leh:aTn~L2[h~IaeN*pd9k;6L1A]25}s'5#~Zl)"GL NL g;Zl~ NT0x%C3?liH{Fj}GnX)S&,_ > mW0y({u37'CT-u_#;72$hflEu{-f,5B%.)[;v1d#Xk9S~v )#i=Xa3 V\ 0$2"OLb)  hl)"3UrPC$@s|_.E  hzYXk=2Mbxa#)tkVL  @ Z&N)kVV6'QJ1  O<# m  0'7Z]%9d  6 tovubgZ<` &6-0{Qn5,(&SHASO@X^IC3[|=*D  K}w{b5F b* 6t# ?=z?1#_^[\ZxaL(HTKb8 e;NXa-. <k 1=}>m_dZJ=WKa)D eN]jM_l,y_aJZ7>JKvP?qrt%L{/tbu"yu8n HOy$CE$2_ye;l5z?HimDFu\=Ctl?s:K.(Htpco|WG.;wo d|&} ?Cs;rESmyt>s L_7}h 2N It! PlT3u6x7|b[:Fb>cL0F+k' 55R/?=/~jtE0xRof2&Ho>4r/.bVPo^jD~>QY;1o Hgi[HpjSD[ >IiTNU&B,({Oy<GcLQ+#e.hQe;r2sd~Z&^k\el9uCj;;`vBb5bg;+~VsDp0Pa*Qs9oEu'B}si^>$%'< ("  & (</1  %+##      $9E>&7\hBr:.7\72{_B l18 ;=4UnHTE3Ul_zZz"E"PbVq{TlM\('99`^VK)0p7w"`Z+<z;Y?y 0KPl%Jg;X5< XS>jljM^a UgAZ_D%W@?i cu 4 FI=jo%dp3u2i!ANqq1$`8 Xh(Bc E]oj-,:yr3 4Hla:&6Xm =;Eu:> ? R~$635,  Y\*F>)] + TA `ML.oU1 B* \ 3 3y+N 6>]=c_B=7nz}`T z.&A  8v^#ky75L7 Cq DI%gGfgO 28 YU ~A_-T$qv W lGXW3c2T@SZ"  z0$Feb N *2q ^z@ $S ,geJ7T s,!~6g)]7$$U _ nE  {F '?)S >4-j$|$351w {)=CS R!oy?$* D n x v^exuU x!"sv '3p d g 0 )l9\ao3*Q-$2tV = g - 3/3grk]FV0!)l"_Tth h  ?< Y>Wz>D[8 _ nmLCN F Qr< (O-=64"z=-Q&# 7 f !F$}kF=N\H$Z +g$Md4 0 f _N?-_g> 5+C@5 W F/ . k?X o e {u0]xR}E#!C]CHOvz1 tUpN 9 H!H&1!#.X o+/ 1. ?RQy( |7ss;!N*''Z<" O" '-5m /BA7"4ed*Wol DE\Ue) a ^'$   <YA XH!5\-za'P^kWRf 8^YX $h e  j:Ld!X=):Z}Q-7"YLVaKX2EFRE?I8%)           "$176:BDHKEJMLCEB@?<=+(    &*048BHPST]\T\ZTNB=>;41)'    !$()))))+',+'%$#!"            D;)."*#:>?9;7;COKDD<;;95,00/7<?DMSU\^]UVb`UUWVVUTQOGCEDIMPOSMIJLLKOOIGJHEGLIEA?;:91+)%%#%0*#'" codec2-1.0.1/raw/g3plx.raw000066400000000000000000002622261412132000500152070ustar00rootroot00000000000000 Qwu=Upp[Yha|^\UN@kpl^I/fUB_URmhiJTovzP:Scec@]gM^XSN:iLT?*7LBQzXS1OjkaU@qvz@YhvVLOvnPUVO52E1B=NW]0OELzQ`ddl|bQatjoioc{ " %!".!++E;)'82F4 K, #31$B;X2(Lb7:XL2>?MTLTM^VDWOhLSED`|p{zxcchox~vqwgjRkuq]ok-'?=.IV9ae^E&4Nln_W_fYJAD7479;"( -- $.')& $o    <  $$580@A)>(A"=bkPlGN_B|srcj_WV]kYPYMEVPIWQWU>PHJAe[3V3 )$3B 3? !(B7'@A77X=?9T)EL=U6*-=i;   ' /# -%( 052>B   % 1      ) -  " 2#,,## +#/ %   (/$( *   ( ;(\TN$"2?HHA- 7JdPhudV %=G]r{zyTMUWTM EC|xy}e_sZfz\C,(XcJ4'ZUf}H5J+I )\s}L&X? ,bd~v%3cXs(rI;B= f= #4F;\[ 8wP9rlwJd+v Ame>RS+U6!Fv91EpBq  * i Mb Z,VON,kK}S3cvw=!M^DSSu j (%4: (d 9}/<H U~z6s[6" F!l.$ \ { `xJ_u ?# lD}% c^q EO.e -"CUX8%#qP , a|u "2 0< ^54]ouT_6 zPn< Q0# ~ b nwu , Z [x.'G]@j  :k y&?^  >fJ? * _qbc81 O.*Oh _ !T"$ &ܒ*5c S*{84 9Uh(aM# Z]#&B Oh"j%'%(<#^5 / h1\L  %FGd =rQAa_ 0^#r& ++'%z5ً!T 7!>&_z>;~_lcQd 2 /&%-%20V.XѥU3u H 3>G  HkFt7j^) ( hp'D271*vak9X1K(^V 1 vCrF8=[Y|AF1[\n+ _@$)-5/)bى :  K,h%<%OjrLn>'-/|+5tro UI~?ZL>v  wa$= ] UZ4;]Vrg\Fce>KbzS | KK}z}Y`F!Ot$3LR~"rr,  J T$gJwWfIG,j u pqp a|b/ Cl;a-I*KgBfhX29TsnRVf6Y_ s BFZu-0[TWa28P&    d 7SF^ &'^ O> hOYF2 Stk?=WPwX <  e)>6)wo~,&<"DT&8#ub0h! k   { 3{8 %Eo" xzrjhA9H P S F rC!`M[ =$Xaa0|R)mK_Xn EQ% W\zjXA-(~U\?`}GMlt:u$W/lI)`KJ@f%-4frPsVU$)q\{^] 'GZ+ *L)}}byD:(*'9YyZ< '^2Apa.61$8ZVhqbr~vuhZrXc 0;3*%4c66 G+ (#)5* > \FVYA fZz \|u1)MX9"#*yQ[Ia" }:J Z _8 Q]o X Q  2Xl@*  *  r p q *{ . s8 P*kW S  X  6  = cM  HUIjL \ C)B L> y  m ) ' Z m`X9;$0E)vS ymI*z mc `jdlcceYJ= _&}d N(2WRf#aE%G+7LXXO.Ov DuE'l;X "6R TL)>P LL" K oES%TK\ 5qV E f&(3 q_tRvFADktT . ) Ei+7d '  Axpb6pRtH }VJTJ=Tu X nO}$UL)" b MP+V3]OV! *-&!s#:?B38+M $evV v: B 5Kh. # I 4f&=\ I ~ <aQDjP F j- O[!]> 8dIYK T]a >F Ft @!M  E(!cOInK F[a&w jB ,fGSNX!*QJ9  q }  S7 3 7?9ms"@9'e B_Tc)9k }yH8k b @ v2  c/A+ "a!xP^U=g7;3UNQ2g pj(/%p"ZWo9Jw.UM%;->*e9K3bK@aD0qFB<ZI9?+@ \zuQ6M^$1i:zS&aA&#Ht1b.c)SLNotvwAwRx:|C -B xB8#* c!_#e I6qQu5 fv lEKEQTbU\yV3!\"5Y fTao,UHLt ^1qx+zHC9u!x {Lu c=N#x^4j}_YQ]~eN)h`XW  rAf pQ1 (W.L8xS a Ue+/ B5x}g| AQo"oe!lA%~ddN3t4 >PdTt+7gDHy6Bd 7Jp ([ EWtpOp}4C1 wuL & tTm;7QJW-q{X2W7>TL@@~S E;i\3s 4rk k - Y  s -HpCa  .u |`%h -Kj \`_%@ keR=,kUeJ{ *d  =$&s4~ (b9vv:>L#Z5 X1ױq A4%L;&/A?;*'!9Vcw&  "U'GVrB&"V] %4d;?E6IC "Fǔώԟߝs!O :Z4&Pmݥ$ XV [EWbq#1W,;LJwEP& ~ۼf WVնU -'g 9ޗʴ͐8]I Ml!0?MKbOV" !4&O@\Fܫ r"$!-f jڱT۾݌ϔ7 f.7rm/~ #T(P47HTTG5%W!R \.ˈ&`~8 "$!Um|6Ӧ>]V5K 24XH:W)Q15DZVo3H4n|+C+E/9G 3r*'XI1"sk)0ws j"A'2AE85 r6645 dmܑCY$[V 8 g? (%.q51,1 O3E]U  UB .q&xjG~v;SK  c&,-(#T&#{ ) rAK\Md b   V`f;f_8jZ`q KJ#&]'"W Gs>Y 9 {sreweS 1 U PL  - W jO58]- C5 t`q zT,>>M )} ~#  i  h2SCcy !o l   ?D  $ #CM*wYc Y[PkLF{:r}][.U`sPO"j( 7o)CH$JP0  &CkT^t;(~ITw0]S2N C@2`#-:Q[qeaaUC$6[HU+w9qg 8L\,_c C}ra#Z~hgiEN}$=z4]R|Qid0%|n<{_?Sd0'QU fF(R7`X-c =l}&,$o' p:$.w5+xoj CD7D<Rec/PbO@P= lhFJE)B#>?gk}8Txu{`yq'zu%T."~VmK(,o5v+oLrL jgm- -T4 wz`1u;.J L_KG~$w|>s#Wc2j+w S:q:!.yU9whs$!O|a"'"lY=j=)Dj3) ,G&C N9ZvB !  Wox{($ ~=\8, "  _  ^ )UWb$$:- }%& )- [X< w"*[8 4|g$!E  w{ D!&K*J+%qOWF?  8;$Q~*FR2@xU>KE] / a . Jb#(, .I'Aа˘ўg3 s O[{߷NA8 H" 08LMTa(x>+E = ,(T.=0^0h)l@;̂ Vg%  ; ugZێxp  T"5Q  avjni93 &b"'B**W)e';őyB!u]!lx9=x (G W- 0 X2<@Fk ] 7]E ""W$iM;Cٗ!ʵռ(` K;_?T C?z}\]5RRk  MEw $]&w(&w;˘Pa9!G J)8!r Wi}GaM8DB+p*= j { L z:$$"$(-(o%jbw&'&!  eUu[?:X2Ib&f"NIO *Ub& b#'>+ $"rϺ_F %T"D:~"@v\dd) 1%U?zkRtnZFf-wQWmg,7 Dsqf`\s2 $w)#*XǗ" !  K` )lc 5 z%|ne-Rw;mWQV  Hu#'t#A˾Y9d: 6b pWS Y$-'/c%k [G , R!X!"\f# KJ"`>T4WD0y*.$ lzI '>5 # I!09uv ! ^[   [E<  GWrNGFf mGk72" Xqx<@U . qM/ v 4  J $ g RhYLYc/xDsM1z+ Q Ii1^-'O&sXmy8#m6;6Um3ra2:X|Z-="UXSgb,A +/%QSa3`g Bd+#{XHI0mpf w0l:{i^~m-T%+UKv20,Fiso%Sh>; >o+p ?`FH+BcpfQ].Mz}[11\efB T[F+w/I`xPr |9EW!ZbY7AbG ]R8%HW|:.-)rw To YHp`<sko}dZ/,H )Kd9&\sH>g Wm@KJ_!H#Irnfw;S Z']G(= {1|n 4#pMC*>-;,{&MK*d6vS e2Xy[MJUE<tgpE\/6]2_9KSdn+-k(w`A`e9 @.n37:l9vx~x0JeUrE.NDV *z( 0x _nQ i7 9 A3I^*1Dq$] %_M$ Tc!iz59-R(]3y"3GFD]1Br+vHA8s-j F|]VL:_}a-{  7 K rsT-I&w!4KWjam) I> -6#&(1?9 BOaK׺˕p}>0GF$V?F BBг/.|rW m jZ&%+<0ILG9 {4iқ 3DQ2Dڽ{aIr ڵGnFGKAw: 8H!bɝPLH[E_g׷Fk| "8j( +B* $U+G=X >= t#B'0=Af:M5 ՛qFK7 7OmJ%! X OYupߔ7^rHk3HZtH l T%,1q6?<[<(P'ۧtGM2eJjiw&b@2! H &WD2+)9GG#3?h s S y%)16='@3Xʌi"B;jY~ 2~? / # -1MU]E|^wJGe Pd!)3<<4&$ a֕2s:}'h~Yigݤ5 ]O]\vOb`6p&Ml$]|f>b ]|4'-R37s5t/E|ޠ 1y2c*؛z (t2. O9dV.:ic: YN' 4= 7,/8id")L.y^:mQ hUx73rK~{s}RL@ &$q09:/Q)sR‹LE$x,L!_~ 7ڊQ  0`|x t=)K@ #y (,6Q?8+$j$jg_#B&%4ސ5 tbHIDx^V=+D`<_ "&6A<(1#X-࿠v) {  4| * Zy.{U k(M~ T X&4<,9+# wZݿłW;5  2+fb i#.AZ 1n7F4n I+4985L-)]МȑI2lxw&2:.x\aoA(S[S46 Y^]AQ  (4<<-( 8  ccM 0 zQu@z (k4F4&Q5PR  x#w1@E8-ڏ`;'"fSP} K\1rSR26:!? %2',>D:q2 Pí ~#Ub'dw2\XRuG ;Ysl2eu.)>EDu@4)k؄opY h߅N};1"J;g`}aV$LX0U< 6M@m.`9[AC1^2kZ=˰(  VZl1]-qa Gj%C}h}*mkO_'6(-[L(- 7L3G41 `᫽v6 & A Cy'2{ H5%4 O +6T:E Hd9 $󤷢ݥ0; .$43kD&ݮ۝2Tq>Bu - "3p%-.i8EB7e!#m٬&٢B_,sn!= "?n &.7E7:1 JS9ƥ Ul"nHCv | bS)ti"&fo\"#+4F-CZ*%gVȨ^ B" U$zVjp܋i"_ 5.6cYO( ?)(54)CL:)7F"'^ !VVbQ6KJ^ 1tJZ Q$;1>7L/!/& *TF1- (-  K>:V~ m  xq&..X$$$#U+*W  e [uVi m5e + +n!_ BY9K 0|Wrk#Z:=o t/TxiNro2Zn ~N9tDFPtDu, 6 _V<F})cE5>s0 $'_ s K $ g) ]sR\]F /q1u>M +va8PDlf1z4N >K:)8(al//iLa:nD/=ox:56<M:`WH_dk;R{0+l[^_pRf;TCOW_!"Da=L9g(-[OAb)eI3^x4QdA;S!b[1Tg06Ws0%tOyGy>Z>gS9Wt45x5XO`/<N)1-BgRriKoGq~e}0)f8BOd)NzL{_MOU0=-)zG14$Wj?*#6yX%Rj=gxl1B7\ 6? jBYrT!D5Bcm"6 D}mZ(`+)-NQ{4yvMU|GS_mkI_QE j#h6v-t~>$l0IRZ"\jV =f%kb1QV0{jA"C 2 sZtH [w{SQ ,\.1GU\Be=X$WgJe76.tT{2s|b}`5|_=~:KThq+#=L)aZu'Y?, 8,eZ/9F ;)wJ6;+I JfS /s)E C2gd|VNPT,T~4OJ )oU+FG, |s>4Zse.,* *M@S~8SqizN.x(ZIqe'Vr"?^-jzz JELVGDFt#E\_E{L D, ^YRRax[jNG hvi2  b lr^ X\YS 0&{ Dd4s * uldTym jI7C 6P&lQC1 (x~`. ~J u[hF5#=Q%.,8q>ka!X]\s`Xuu~Z+*8 8t] }/e(.0 s"-3(& {)t=qpnpߒ 1JTi m +;kvYV n 0J%+27A=7F)Cn<,@!Zn&[B!WGMFUh^~tyS|QN%6GG=d'd|{16I7;B3UF /^eZ(|Vy"9{#f9@14g !)/1;B<-S e#h 8m<} ?z,i/5# ,: >_#[U1EScP 0"%%4BXF(?(< Uf!?-.=j}G  ,N<#0_ z]>n6uy 7 %/]222p% ~-i$E~ R]Z   "$c/]B)a 1Jd-qZ//Ah_9p-jP% 8   tn$ "&*%n!%vdbj6gna4{A.co*Kgm%<}.8b !)<-*#"|C* -$,]0eOY?tx|s979Ib @Mhi$?/s5(5(Gݡ0Fc}YY :4F(>l-GSuJK fh!6-2."( Eߪov%8Y >)IQ a6_ d+/hVuqZxPp 0[!_*M20&{RNC J U F =C5\+[m^(BzW`2:791|Q"v- 12.$H#)OVB(+i_, 4U&$1xGx{wSsqXW1JUo  )@-H,)#LawgNs &3&1t6Th6PO+A6 14!Un D cKA"L1q1A# !(L!ۻp}\  I([n5[ }28+vyw"p}d 8,N#+,@&0 "`w  n @X!J^ e@n:}5/>91 x xN c&p*'.#)# 8Aw/ LS ct w9ek~%._UPazc{] .W%v.)")(e./C`-6+x l 1r0+F]J3X>k*M#':49x |a#%j >"P# 0 31 m  `.nx<^' Xx|h G*e8q# <p @ ?/}pHU\\P <N GR LfhjlCgrP],m O. 2AM!v]HO8{4E NoVKT8hd9_;vBpXVH@y|{`<EG)Bq"1nXl(9bN|hvE|>A]HM0KO. Wm^{,N>kG0QIGWUu7Tuc%tD ]t4 wz`i#3-TH{ioBYKC%NpXc_w63}]Z8?8$J? BZ] h}1=-acyA"F <W~-v !c['*-ldPOIONjt`.uMO4G/lrcEHt2 ?Sy(=/Ipr(C2M<t41N<+CL (vyzz8LiW9z- '6?z,A~vBc!e7Af2J6i 7YDdv]xs6DRIU*!0Y+N8]4z"h[az3g7*\79u&$%QS7fY?VDvR~SQ t ] \|J BwN| N>|,'CK*; "-4:,R <%Ƽͽ(i"GB2)6b0%G/V~sm0;a+) @%4?B7%W|̹x#mjR  S3wE@oc^F> z tx{(6BIFB< j-!& ,i2  >Ԡ֙0FP5 Y{L .~)js B m@5%L2F;>2u3`ؿ2 |   - :8i+X2v 0 *^EOI4&yF ihs%Z,2/ +/ʞy[ T" Q fN֚|  ?M?Ydko X X '+'r 1ԓL 4 D   U XT؇ٴ. HEhr_C+ | .)"z)x*,"JQٓۥ"3V *  h   wg"Ce*.:<% 8 ].#"3)]+$X >dsޚZf! J 2 7 W}}F pzCYz,QpA >G"()#W G$~rK- > ( e g fX|8NXdD/qq   #&S# D>``  p S sk7Hq@UHCSL*/ R R"!r+)N p !t/A&;CTF1\%Ba$A $ Z!/ T.>h(h a l [r]DAg{G4T-([.}iwkcZB Z //1d,l7ex3x?s02e9U(IicC8 R B]f"a #JCg=!I5R-a~.T5b'EL s uyR YA^3x+_b5Iz _i@(C)6^Pc+ O . /!9uKb.}_BGBt[k*{u)XOIcesC t w A_.uG p#Mu*-qDXnm+"eri<O[{&kHlLsj * .nD + a`L[O4oOn[WgA*I*owa3ymunb3oGTAa-q r_-;QOG.9RU:1B7)k?Mj7+ %[myf6Vjv|S ErH%^f '4uUx/SRWzeJ>b|_ta)tt57kk#n\LF R*D/1g0N9Z$G*ytxmA1tq*n& CQhpKlmjOS_4u?.{G {EXSC ->}dz O%( _? !zx+OE;pP~ BNCgzdqw?nl,16f 78vb `hc%|0]bGdT/g G[+[[' ub9ua {Qzx -jM] C qQt _/~`o?mZK  !a.&+B)1 (wݥFl$2J8 D 94RK6 < D>Z |%)#+%/ ( {Z1yO ;/X> RmmmJ e  `^ $"&$*)c?$ K- # Dg78lu1;G<"vq T l"$!#s9:bz!m# { pOaSj|E ? '  u f3n#_s:GkQsQW-mh?G  7G6N b'P9X"[l E]Mr 'zv. =.P?bNP*obGS hA  M&uI<tg ^;'LI {vmePM  Y 9: T  mOXD }A34M]vH|[!WQ L/VFQ+%8CI)Y3g\o1#/B)9vlv:C10y{<Fd"r"]^p @e?@~[xh&AaeH%[tirjUSz( !7N@6 H :`)yRE3 !]qpjZNgtUYe_ZEdf`LM,&-!(E259FKP*J=;Z&F^wrdux !%WzP[*#8>kS>E W1g~A3~#=Kfq,_sLSy=E=5R_qR@R>g\K?Ij-! 8_-8/o 2EzgND9S2EZ P @ L"kut?T0juqws4n  $h `.k  5n&a W+j Y9Q ! 6!   y !J=>% }  3  [.B x# pP B0U< mEztY(  P ) r,ie ` u&Fe#Y<aAy)\2 vq{a` E1e(;T "VR0<3j 0yCA~L@."U0F iGPK1 $  ]?A5lLk,U zN NLy ,"E'p[jASF-]KwY7&M9{ $~7 | NE! '# =P~:{Ug*8sMc c_A&%" T'%.hTF DNx;}H" w?:r &!. H q:~3.P > rd #]a Q`{w [Ld'R$v Oo[gY.2wA  Dd ^ + g '!#$M~Zlucv6 ! $ 6(Bxd W * ~ %T2 _~7 d [)EOE |' \  { @v]"] $ mW[`  |42_SS |    R1 H|cO]d1bTAWx v A Z$n>y# *aMS`mH!`3WL v  M J 3=*b]:LwT-F*bdN U +  )xtS~bF^'3|3_%ItM?`9 e8 + [V5zP2jL$[ r] 2{ O vDJ / )n-y{xnMQ7X;k,8 ~ eS-(;2I::`|F[YWQ4vC3@ IZY lYv~PJT9 z \,n >go[ly-l$fR=X}WYpt% G4 jR|-kN9  01<S9['O(N S!$##  >?u_`QZ  F ` O+pYax3RR( Cj-^ $''# -JۨK- nG c $ )<ڦZ q [ 9NZ*yW) X   *]c!".j 0~ iV2lw iHrkfr3#==i K#q*1,H+Q#`ږͺ| 5} ߑAY~w d'4JU?Jkfr?g,%} g3!~&n%i#U"ԍ;<#J%$d `@|P%cxkC\Z?s<5@ 1 8G M *)3 E$i&tK}) ]-@0T*JMcw,N ?MN D1d!""#$\"K sҋ!(85#/ &gi"z' 5_I%e97jV s M!)1.=7߬$?2?04$Qe$'X }2/ c<D&~"AuJ% |E P #VX")m0& HyXΣ6>34.ݔ4!1E Rg 1 ;Ak<9dzYs1  f l#" j&=- UexR I LV>T)\-cAHKaEMLH  cF}(# ֛ )g% 7% O V!c8t?x),uRQ~d?rg '#,~!d&[fҒ/9@ Q ZIE ,dyd\}yL%"(3P l0 >X!W xW3M/H 3NUFI>?769 Cpai\l J 4`VatIQyeLp0q8olpf2O ahSNS.8 ! CVPV7 G|goa@Ie!b*xzL@V+{3"2y } 9m Jsg@y"o]Lh5 ds(=GnpzH}6|`'5V:=\T {c <f?^k<N) }0-T;$#h> HZR%cY\)U+]R;G = g$&L?/NLo7ZkA2"1;d`fzfc*_ e<aC  3 ' h (XH.GFIA! NAHFIQUuT_ <UgQ nJ  | S <,<E ~BYZ_A!?cWQK [|U' *B UOEf$vQX>ax su{/%ILq4tA*nkH$:KNbQ{R )]J(98TKm0N!F,4]?0N_x)lJ V 2 t Q #Yze6%y%.7s,D[Kbp2 {kY$_x1D~zHePI*jz)M& RJ$!Oc czFFT"c#e; ]yp6uZXOBMmWui;&!w w(9}Pw9q01-(a+J|6'l[{NC6muHBa tF)XPG'=rt#Y ;j0 `nlohA!Kqc+udf}mjTu0)=3k`9t |R>* OY Ajv[W48^q%0e/824 !X ) ge`}f81X\^91AJOlaAMwz[m(#0G=: #Z,2_rA-;`'FO2J@6N+-4|}M/N H\t(a&UF)7o2vF c[A>%{xR?PVW bpi\ E~.q4%2X{=w5UT"lhi0x zj/l!BY= Gu^s$rz1 T'u ,i)di^N YoQQw *(m 'A!3 v A%0" _ނ!_<)$vj|)la0L7v, BD C:2eDxz3=0 .!+! {Ip2m (Hu|"'+)b($Hl]8m)'8o2z lNf ;95uQ+4\qvKt7VL2 S3LZ #2$i"A]f ^'#W {\[ZN qO " 1H)T1RPtzK[z+ = [/J+3T֟ʆϝ$ $$n]e#M2 |-x/{gJvwRaff^mw  * v؇ӦT !C$n J[1 @ @}@Hv ^xf b#A,ya/Si]cd&$L>; z#u9=|J H {N B DKuB,h*$f<e6 ?.^nr]"` :Tt 9}" L< \T@w O`/8 A:" +_l{ CSJy: _~ w}Fpv5GJgIWU%"K_ xY GQw/+#0 Ad3\_^a@`b'mI|-xv*'q" |#n M#+:W^DS.g/x!3wy@f ji(b f, ^U,==gf/~YeQK4G'k 6 s4KKh +`@%.WZ8\1 7 < +J^;g A  H a \# +hf5,jiY ]6N!4?1h )zA2N `c >  Z :m/tH i% * @DG!)} !D&,6TUX DBT^Y@f\U+ QGp $io%v+/Ji " 8YnF Y:E,@ 3Z([nA6U(sYC|wW/9xd ^ ` 8)78 )H*gtF0i{AB43p:Jx3 A&P9D\Ee 4a0PHfWN@ !95pwh< [XPzC2J~!ctP.*-Doo#JI0:U,E;5iDs NL#9\?dMT&Hx'FO{4qM }*|24FH^g%+Di}6yLI40o9=k89 sNz$,s.!iK8gfV5Jk9d,W f+dC^GB.fP8z bjMGN+ jOr 7 9 YEsj)FY5ISFya~t-P1kK&$ N)6IO'W+))G@5{G y ?"ePLfMnhsf<Ph(F&pj 0! Uv- %{|MLX6*E<1H fxvV7 ,;@ K1t{-KlP9KiJGGZRzR*-Pw{ AIFQ| |eycp0b>5M*:2s4u5oUNO { )r K|LOtbPx.`p;o<^BL S<,ZCT`XWe{y%u0DYFr&g~+d_Uhg0"K8>:.K%+ gT$[dHWms ^8_n?D-m!+cpwTTfl=b].c(h?+}lbcb\V+1 5%pJYz(Qcj#9~cm7 "(7ts}=F4i<$>W]tz8$wg'{P +Fj2G5OmfCbKZ+KC>#UK&f@@_|Tt7_$^7~7 p\OQo U=m/mVB #jX`5fzWMn CB5ix/NE$ALp{kY%l(p^BL[ wv$BQwhM\bIF;iKa|o\AI$>lE %iW/)Nj"MW&[Q.%z}s]N+sUEgRHeywNd1yis\U[+^"WdCx)E{xtIIJ:Jc[pPpUCx/Sa ^DnavPG{ wN";sBshRL#|$k7o_OU-<G&jz| >8KI)'VH^T,2UpkHGrt?cKT7DF UvUb%a)*|jV+on#I#x9 aeOUK u{4I<gn6?+va'6w(pqnl2_K8xN( yPR:'%.>=- h\#"]`c 8dvS"]I(<Tf lR.n? ^JZD'W1cOM1["57UiDgJ 7P_Z,}NXy#c!2]ZU1*V{W6'$[NoR^0k^@<;<HaQgo3NN{=f.R#J8 )1x]E(y3V|!t{,TGKn6=p[7Xw'FosT_PoUlH!yzkH \@]tB= J"# a^')/,  J&4b>lpJ2Io$.5='Ejb }mnc\1fv+NO0.)cac'; ?rK=. SZ = ylIZ+#m.-eS/ a D5 -B#a'*hJzwaCo vzEmiN>R7,{pzG?[ka0/LR9I~J%Hr_ @ Z B Vg=--dt~n`/] # -=G  #N|G4/ HY9@2 )>g}  U %'," .r , {T/; H7t?*%*?9a#-0+maFX_ Qe*}wLT1@"9-F'/893E ~,D_\=G YE6_dݞ(3.9qi!uz#X4;4(Xw,_56h p^ S~1]ykQ #4L@,x >v~]\E- T#T.!~=kIM5 !"-.w5'674V,ֺ,E&Z dP0 $[8k(nog|6wi0f~5{#449'kZ75vB28ޭ_dwf&8u/$'<4,V[ R!d&/TBEM .@3 "0 ZtѓEC,z=" $}{ZT܊>: eW|\  3+'2P B/ *ޱM / #X+f]v 8**Mw%1оލC;[# @V Tpޜ.d][ q W*("6 r\;׼zV  ;` 38h~J 7gm 3 t D(|4T  5O,i] } n 2!c}2GMn.  N x m T'),fRn EA bz XX7#C _ Uc( ?+zG2w/ = `Rtql27kq ;e . ! y% _opM;Cg[XQ E }Iv?[yLn<B  L>"c ' '>{ u ,53g@\` q R & v(V\:"! t N{-^tBb  l )'s0^ a~ /DP Szupd Ua0F0  E FztN;'` ~J\./ T > *_d<7SO ) V gw& ' a>\xH W*wfHf q !~!u Dpn WJpw :c\A}#Wn 1  | E5p` c^v{E`5uk K !*&?!jR`Z,j 9vO/9;=d a O 5r <Z4faRxL!/ #vxm#yn)nb f KC/:pMk3i;UV) S  c`c, +TnQ)L~i2`~A\I p"W?led W Oi;pGw !z;QP %X_ x   fX); 7EVJx<?2yO hfPr5KRccgYiUjT6.S>-/$-b|tswM&m.)?NJ/pJh,N@LU[$DjhJ>K>AA@+5)%+"+4+; \U7T&KQWLYyzRniVjv F)H xBM$k/ Ln ;##U l6  h 2 >  H f B;.n t P8EEB[F8,Z4NQNH*H[EGDr 4K+1?+mJ%7,M]~_<[ |*BMSi |' {%/}-##MuD3K0lN' | M0??4 <*EgF)i{Tvg=$z8]d rjrO.F }& MXgpuV%u7(  P jYd ; =.yuEKN([$wE*%G4p i'\W}6 2  ` y<"%0B,AiTܱ+'&k_mߒ Vb/bQ ) \ _ Q +2C;n0f}N y,%#R8> 7qlj6 V T K!'5SD7 ۩a*1&.2eaKN B ASz_?h 0wF*5;H>-&4i0OQf()tj 6{d>hGh   H*)=K?Ἤʞ-;3S<J~: ',~jD"|h.Y &'9H~>3)$md/P.z\oNpinFk ] w J O _70xK ( ~  '=rW6H. zLOsf7!B1K7G)b2u]mp!5m}bX~`&yHX@7S&Y$,1fpI@.}7&w{gl$hF Y-U,w@)/x\EPx&jz}nKi`/@hr/1d=Ah{(8b?u?XiU7'%/=mb^n~,&\QK<)HxronSwE<:0Frw| :%[GZomJRp|clIZ~}  )(*$# s}jopzd-B=-$ !ZZ].gFS_?Yn4*5Oj5^gFEtu]L $wn$3zgqj}jEL FQ %Qyrl  'f1a&asydod_(ro,`2esEg}P6Hy=*=:m!UgOVr E 4"%U}g"WahjU. )LC"J5D U*DZ V'+ +*ڒֶ> dp5)= 8 c$`)/.86 ޼N #~ڄ]EK* f3I@ W%#,^.)4>+bH *,S!%95R :>x#*v*"*6B5¹@|L$.t'[h.uG`' GG? j.| ^*/=A%3F1_40NP|g R fki'p } h"/[?i5>}Y.;/g;Jm  ZVh  #!#S1 <*׭ G69' m%<M VZW*J> ."#&5<& Z47'|lab 7a,m ;k\ +C%*n8>J&DzcN3v3(%$ iwi #\xHZls1 ^Q \"l.:@'${ʝZ4h. Ik+/RZ;:(p \ ^ A J$#1G96ʋiS9+$3uBRK(Q&O;=y  V!!.S< 3 R5'.L&>B[ ] m# mk%,#S $dE$eu3^\ h (M")$  >" ibN,MR{$ $}`$*` @1lHn(0Y4=Q< 8s1O $(#=dЀ  ( MP=q+ avD -e8<&_Lwܗ1 J! `k=wor:!b&%$@ .&;0"#c"׏R|V LeQ<_2(q5 ke,%tWyL Ym] _wqEZ46l# w4'3"רbH:X m"B]]\C(<c_  bL!5~ް :D @(9DU&4P41% q Z G%)SL՞2~ov W p0q+Nz|Z "dvo= Z // 0 (7!R={x/Y+|'0-?}_"Yq -6"z.d@ fN T1KQ7: [ F(4>#6>52 vJ YtH` Q| z s a4oi< ],:Px9 T K$Y}r'bG9'G1 , 1 IwpEl%wO@`$Te]>9 E:A pT T{ BYK Vty:'V az 72\w_?#Ii*Jirn j%If /6Nw$aW/ ' l*-N;bk%DfN+cdMs0 8W`2U{zGIfp2}-=-Y  I[/EL/)?SoT^^14> H%_*G}_>\hHy5`R_hmY:XZt_R>(TJ xA'*ukg|T{9TQn`n m>e-[ (xJyGcD3W2)vS'3:^NKmp-Y Jdt>Oc^ + Ga#3i)gcbj ,k.&zGFuI:Z%\%INWoYx$+n >df85v  lW|'Y"|lNq\V]LnOR * 6!7$OyWvG\,V.AY\5x_~*,F R\gq@?!\0\",`&e  <zf( I>kN:5#PNq.7(]-D&kyd_z-kXP1frKo . P\~'3P'IiJM9X(&hwt? m[j27(bx/4Hp,%yC GL\,"H> (1~5V^(- g { jR]Q#{]3-aK-x7=$r/@;W!hb 5 q'[lf8& H^!yH  mV  3 *_pMJt|\~h=75)KzN^qB|(kvw  O 0 v +xniG4#78\X IEe91 | 5 B # UbOKm r26&,<zpV3@/N 8E X ~ S^5 ~sF&YTcQA'S{@H+j?1_s~a:   " 6 TvYL32k[9zBwm{!'(^}T/$}- t E 4 q \'_L ]pw %"w7p sWb-3=)j* uK " ys< #~ n/5_o=^Cf@+ yq(DuB()T > ] # %C#u pl4V]A s,)ZcCNs%ek yIjn3 L{i :V#N) '8TB"  mzKv'%_n $$#{D 7 W"!#CJ|f Zp( :C r}'{Lcb G{" $^(A  'AC t k\HkKuki##H t!""+ ]+h4M/d S yY E '6~e\V *>q Wu77 E !& gjOn.&] r $\]ZS 2ey[g!ws4 s'R&,$ " a5hݖ9 < Y n| 22 E8 &Rp : [  "L$?n@  Y"\>e1  ? ]_!z34H'jVrPSx X x z!#T _nmjU s1 zm)Xu m3k92=Or 1%^qP Pb>O $ C 9 7'&sAsIa* a^y)t\ r wp$1"_72 j3 3!Y9 n`Z }*o]^J kY2 H  a XjTRC5E@r 5&c eE|&$WB'  U A  N h8K >ql<~+AqsTa~z7'/6%'qWHd*  P3yb_ O)F9I_ i#b5:Vgi bV, >P % m" LSUA+ s f|4?,zi+F?S-C9Tb ELYXf 0: +.B93-!#P4* 7nm Lre .iB89]B+;T d.$.i(h^WH! {DEhE OuzKL T9E!~)L8  *jsGI  @yd1r5?:W$T|o55 $k H R^xj  3L 5f $Y@{3 D%2i6Z!tr>Z'1~^Sg9lNB3%  j9c: P^4l75{uH#( Y Q7 k}3 m cq!2>+J_x  _rtbVz$YPi@7-7sv8 CcF1Hv ^eBa rhOSq `G.Aakw0H gBQ8)XAjtd[ A}44`TrJ[^a*`lw6~U@M~"$8f1E4d_X\<i&&yb%QS) mSGq9@]Y_`!/"$Q#`3]h~t*@k)2,c8~w8S%mW+5 t[mPO.B".U umzvXw3At]z T 9c[pVxq7BYeL}FIBB6[=iU8e* oV <cYdkoWg5Rw^P_  OIU  =Y |D{&I 0c$(Ff ]rib&mW L ( ST 3j&U^N"o 0v~v}LNMr)   b2, wF3% @ m;[c=1 s#4j@a qN u [ # H\-mzf?O]Ga54|$cF @ 6u#q E >92De; x\ OgcNIP$Yg+F * H 8 3 !- < Q.yS{rt?%[{(r<%XIR/!>c1F4ia0;d{-k(c,lT~i6 z/Z3> O&<+Ntpl^3$s;)a~|!:X#.yKW [\$r)tNdV]21  ZPN<R6XoR%X@c}q"p)Q>N; N F~{{}or]Tfr1_=)A$"9 o_fcAe[ (}&o>wDE]8iyLzuK>|`h lQXO | i  P!$Hc]%ca_*) G>'b]SzzEqb vIz~F$:>j27M(=O A KMv8Es/|aj0ZNY3p  $MC fj^/Uk`{; I8^ ?[O KQ&glL L2m `N \ Q6o  6 1Sy3q\'Q-~=rU ^ :W;c_MP7vJzI 9  /- LJ  \ I!0sZbCjKp!?_ B ^{/-'   J~ g~rFuG]>EnS# gGh TA " ]o g  `y L M 8 =/    & s Y    {  ] g  lv  {  1e ` v  r4 1)l5 {L0Q_b,w |=mp ,a.gnmk.YM\TJ@0,gqO# W3oCJTVuS( VLi9>(%Qap%I-c7#t2oCwMrAw AI2}9x8nw\qu]Ju#(.KTuTb" DH/ftDC1;*pEVY7>0e_O?44"Vt~G&&GpWs8Mb>DiL4[VLb)=xo&lTs'0o'J2w3B5Irv`^  d' v{`i!4 Ot tAi: w< HB-v T;9A L<PAIZ o }g\!xCZ@.  ;g '<)NyNN*gDf=S!(vB+'{A w\!05a 0@JZ&qb_NRDtSIwA0% x %"p Lߏ~P. 0}PDO]]2k&oj if }S pgT!'?&bU* `RU ou 1\LK ^OD -w*o-XS]5. Yl '-!@'7(:ڙvԇ"N-!` ,+x^$FJi}fR~?(~C x  $E&(# #w-.?ԃx |M-d s ފ 7O}6 A^s dA7I? G,\Z0\lOQ|R(<!`&%3* % oԺEsk 6T(~Dz2"uO/3$UQSF#I, ( 7 p   y X!O!d ( U : O O72qK"y!i9Y!^ryse}tgq f L 9J#4#[1Ll ?(v r6 @; 6 Z 48E ERK<~/Y\t`IVAN  ' F{_nG n U % /X A"j  7RCiC@p[zUo6FA  I[: v t3ms<PH T SHlgt]g>~B.:n%fA Rq! l'39XZ ) }" ebaxV 8dw&=R h k q KWnP)7_@,5'b]Ty 0:)2%%zZ  / x z ;_~-9(V [^ n ;0 %A\o;CjJ]V~ ;{:53aRH # X w  Y ` G v  =j yF a.p@$rUe ;   Y ? Y > 0 XH-}u=oF#Y%)M)p+\-)0,z5%2z0>0/b-3+/#(3('%0!!Z"<Ww "V2vLr>Z ( P  4  cO0$=((/4{K>hwW symKex2Y\|GH fK "#A(Z3+ F7 yp 4 3Gh+!J[r8[yv't&  VaV!"a /~i { oF^ s\6xP 5gW  Q BO*% dy`OuXh9oR'"Lr[=X4( d   5<   V j z # o Z`C$J D4qJ{[=eSOP%}O':Z /7 ( v  . W Z a  w 'O -U(/;brT_ x_ i5M y; \ ctTW%'CnEvub/i )y+{5;mFI6MH8BIYHA=>I<\;65r;6)[1I+7/r,X">$!! 8o*.[y$|xN-I[]k*QDo> yX?kHk$\l,c51f-!sNt?޷عϥYؼT}ݘ:ֵݰrRz%C-7}bSO#mi2!Hlk[]HZay=3OqcGB5/RBf)G>$%Hq 'J!CG$V!s`/`r h6!SR!- 2& Gq/dl)_t''?x"np8K<7As8} /`6R [q BT u jVo   \  { 5o  )[  ; y T   q | # k M@&T{ Lj;0 p[-tY U%Alsm Vn 8u GdYqQ  m  k $ u 9?f 2 { = s @   R @ yR 5  &  I 1 J r & " '  d  :6  n R o :Uq! > /^ 9 W "   1bg5N%<c Q6jx _ ^ ckZzlI-H@M J8o/^x,WSS{I? 2\xogX5_:B7 MHO\eLYj+ m 6h q < t}fH!?" "(S?g!^?GJ  2 Jl*%=;!@y''?YwKqv P t?DXUs G{2M2^ m I   z iiwfnh[)l"F/^ a}ab*_Z 7RvIzYi>s4Co;{U ![R_7 (Rl m h ,-skch$8^ r-:9{ ^ ))VL6i@p|fSU\EXl:^xGE+5se<;& lU[ T-CjYBNBRK:<6ai kJ#iM%(ZgwW[P D@Xbhe<&$(Vpy @w]GVsQCWK| +wI e_)IC5'B/`nDR rP<jAiAJ:YL \Dg|Xh=%G FrCdRAye o y0}.fH9/ H]7QmCG4?1l%rN'gl.5A MzGKBv.WhZ!tYe [   9XuR7 b6 gD ( q2nYxo9 iV aH q(=.DJ<6$c T~$ &,jGz28\ P|MM]Uza?(+n@  L@5$9SHIs[tW + 8RlR'"bNjW@){o>^Trl"'WX?ham{` :ltHh/#PRK h3#kBWja7 Nb%5Q%##*x8C g\4uBH&6\~fOPA x0@%?`,R=YFt rvfHy8;] 5?j8.8( p VZyo4hi ?C0 w_vG op/  2$HxAwH]k+@'qv*VJzk8{DZ?? q/_Tj 25sjU wA Aػ۪ :h9# O"5 p&a Ml .B|*` "E`  [^f5r@j"o 1!Cp,>F`0"/1\ܝT~{Cy%>!L 'k P B#   //HtYS LxJ}$F,'Rj,6=!|&AN xZ0_+&FUz g*Em0\K]h I_Owz!6E-#P/&Ƣ3BOڱF$"t(^'v9C NVZ(lJZhI;G-/Dc \ >9~ƞN ,#  t!(/}XfJ01]"wi g3C=mSaoMB/~,,-dž^1%V:&1+~2c  `ߞ_i%I! _='  b26_(^$6//ا@ ˻q I0&,!/eqQ8m ! S Fmi0w :2{%"ߪ'Q2D43L Lhst'&YFل<=8#Y:&vmt| ^ } 6ԥ&9?P.)vV{A)\""h!a|R4E] X %xH<$#9rk G5&3f % u 9Dۓp Mf$4ic&PuB  bl-T>S, Y r9X" *p, 3Jn YQm5x%+?V~# S vYu    HYQzZ? K im5Ot"4VYZRtܶ  1e{'  1tvC-H O " x =)hS p+% T /6M *8bmNWdM_ "C wP F IODq]V $ d*Ht6~Bu)4Z,,9"$"0(/9)a g1=Q |" X] 6 rsO  |9Of\G<5 'G d 2.!ms B  # Hc Ya=q$zx  'l,(v(oI F]6q<#` M' Y?/ 0?M   \[~nH$ht,}yCF JEzNo*HZI&fhR{b U  R hz  u4+C)eu. Jj@}m#%rA|<_Mu<=Ht*p(*TK^xA@}~z6h2l& < Dx|%aU5vv,Q*  !vy ;]gi ;lj94*n6J;kHuJJc c!.'vG%G oP i\+RQTIhpp]0*F,ruu~D;9X3vHoQbGBBvFC>]ufor{ZaC Z[&oS.0Zk1dL>?Sr:%cK?=HH/H=~y0dCO7 ! ZLd U W$,T3@1 O)*ub\fW]D> ZOj0/p~gSAZk55V4rl7.m@d+W=1Q49uw-#%%:-;]<y{c~Y.N+*aFwFy$WgH;( 'F=8Kj!KTQ"j 2% y>EQus5 RoN3}?WF ,M $ & Lx MwBqlp8,>iPKj76/KDJj   XM Hj}%5[S K e j{oJcfaGD5  e h h k)_ (`7>Y ) 4Vqnik 6 1 nf: &r RYg{ &*k*lm  7u%~*LXj;dD^7=s! p5  MH[a j " W2NR ' }s y S}oS$MK_29 b |oy@rt o /tG4  dc|@ݫgb{G9# } B`65Hs p  6 "  {n Sd :kV  /eY u{]%5 Yz:2RQ V I H ![,sg$W2W q ~ d7 $(Kacso i  aHA.5@ ,dZI Z 8s4D2|WzZ}*uCju6EY ! } ^g >(L&;[rkd3q[ "D^ fM_ LO~M$&a.o8M:Xz3B*2Lk|nL~%KMUbN,=M=D)/w Tr]dT!(+*zm5 $Q,_s<yao,kond, ,CD*}sa[h CkuL$ (+5;1" ~z,;</(   *9DB=3,  %$     "  @}!v%SC\97$[Rlm :&}NI>@PSV7s<_*lPCGnZ{k -]t3~6<FY%~_[3H6, [Xu8 d?yhfoGQ bX}$ Z+)b(b<8*fGx$'J,De?_e&{4?EzYh[=l_*|- *4.B4\t3| Rc;c4x|LB:"L%jCo?3h%#D-s`@Gl#4>.SZv^Ul6(|ljs1;^-!Z cK_6MQ,uFUH@FQZKNJ"]luf2y\TI0o ]]y9U#:7zZ|&k]OzLg.*waMcx$5M9H5'}+O>GL=/  2 [,~[Y(4s;3>$NB2*D& 3[ ; ;E N0f;h  w<iB$@~v9Vk,KyW 2aY"$$m+Bޞ {P ^Mf8Y/_bdTf5f+Cch>;?7+?2-S ;G<z    $MZ,wt65H Xʱޑ)DR2W8K$߀Qȵ"pB !(?ZFt]d be) s.b0GKc!v2%;.)_pdVՐد =#D(49u3orD7HdJ2IBa $6~ P[ 0;[6r7(L"" 8w״Q [(j"@\?1Z$`T@ c%3 |r)wl  |#</ky "y2)8 'ӫS!VJ~XnI }j $!V %\H>  W%p3# '!] FK{Da .t7c! _ GP2d4L!*K)Y,A#wd oI5D#ZO4  &lU% & GF,X&/,X!qaR3PMUnfG7FCSY7i?$5r  2fSa/\n!,GHYCET([z/PGeNw. 7 7ESsUC7Mp /bk<iTT\v'=MM5(8JT[= jF[ T^ZG.6@1,"{YMYsW[hGAPv5Fin_F  '2,3..@?;;!('+!  6 }.'Z. G:.Mfak^BS' 8G!!(    ,.$   (      zN >6}!8$PYF;f xmbJnnSc9qAhdOB[u9%P3M ,,{G |S!CHV%TbYHA<>,z # vSQ.]=XZl5(8PB!]JhxX&TLKpRa[=FEY;xv"s'z=a~`;^"qs9a(w p6iM++ ( =X*I'(    %             "  $ yP[_k8GpW@:K};=QkiIP9/5 + p@U@6T.*~szISM9M &0 f}'[M$'*LqI; $3t ;45d G-pe~PxF V y IdhGD45g.b./y8:/Tv Xw:5M  ! v>jR4xx= xi 4w*Y T .%xLYWT $C!WZ,'X10m')s~|NK ~&(N&z,_ ] ? "9 tWA l q  TBNn 6",0VI "P@)Nku 5  _~.SJ N h F `>'bHIB\3wjFM 0 G n  w]#HL  Zth  fJv<Pr}A  kq_C'[*(fV&6x EQlNEJ0}3   8V s `!hR]azV~ + u![\dl+qd~'CSoY;g   @}jHe"T4Ej foOM#Dp a={ GM(F H& r7X6e#-Ji4?o=+q\Af xp|xc1Hd{8*'e\Ns[ACl@N3wEj/$*9"A^#_Y:N5B15EimY:!.i@%}*=[<,1 l? "Ri!CC?L'}C"[U88(iP!'bsZvvysQGniIUfMoR6 :^z 'FrvpZQF1vTfQS[/@! DD3eZw<;k*}XC"5PmPse<vmM8M%96M "kF2+ee^UYzhchq$1Nk]%sWU_: (=G_{vs"MsZJ1sv~vty $<^r; 6rCv< /=KPh2TzhD. {v*Fdu3iDCeS[({W5)7MR[myq}8hk[PD3~wmq '@P^rupfUD/bXa~T|_%lURMUilz.^|lfdN<,GS9' 1FC5+2C@8(+<CI;*} $/258BB=@?/31222'  ""           },:QFyYu#}iJh98NR.p+6bYMnq/I)X7fb<KetzZ&sGh"jS)b-h(KHslY?,4RWU#/LJqNy_3z?:ouk; q^wLFG9\RWr-m'1LDR 9#w-QZNIToeMMX6dNro9*v4Y&q_ 2w$U>.Eb0S=UnNvwOFWu=X&XF0b E0dBBkpOFQ7n9}*ZBy+x&2V!L*2cb]5pya| h8G@~p|Sr(H7j4E3+Rk @ K s , =_TrA(V\9.PSq}SwJTC$.*Lj"e   4N]+,|_8 | YwE)Ni 3*^ޤo&!)P frc\3dyO|] sc9:5 \TQ08a7i#GMX+z A%=0-xm@XS L29^5, s9 iUf B4 jWD(A9a]E H&VPk@- d;tD2*SaT?  )"D [q  p >Q^  Jx0Hxtb&Z05 nk4xՎDJS1:E%s(U"M:50FS%lHA 31^K%$  (&.:>c> Y^23jqB4Od>*g z`0ٞߘY6;.(lpRw&B m9'Bz iVz<w|fV9eZl&ݍڙ(!L.B-(ج2O|I5u@_,$."y2] -(0aqgI 8o8\ P3iq,"NI2؂ AL8-%}^(C9Zgz)^+.%,@Qag r$ }w u8+ ^<3..J?-Q=^_:[>)* ݿ1 #.B$!pL%#:i9 GK-\l ! zyzHwcDru_!܁6K=(e`Ф %"X67P$xyx \0&FGHp#w`k^&JT_wv {ToQlUUQxlՉ$(G=)3 CYio #*fMu <TY{GJ# f,t]FF`U60  |= .@O4-9-^  kJ/=ZH : X .sq  V!`LhziTUFnE[d$ oߴbfd&tYsG C *UF HBZRNqhx3$Ou9cDr5}J:f);W (UG h &[-L0}vwW-nw;O~z7^Fo|01e^Fn]Lunp] d_ }V?-ps7WNtW4dP?_Y>;|hBkc+S`;,y[ \olN){Wrdxo!\@[ ALCJ@RDd*=ake?:/* Obf;$M9QzN`Yc@\p,60^ @ LB\8p{{;D9H:>(X5J(3f] lxDIAuL#Y n&-dM@7A*n]I@68[w|*]S &7r U !<  '9 %zx 6 vLf3 m!]: Pu*<2-hYc# kX 9 ld  l  ]8UNU=0B LNU>tx:N|9mh]*en2swID,|i[^3bn'B +/;!pp!8 }(*/"'!  i?e|U'@0rbpJ       W0har!K?F^z/0BTHFh+#.p9 ]\loQ6bI55d}(w2*qrX[[[ ~P =)b{)U uW Z|Gz :g7& o I _dKnTH ,'+J~u$(P[EC,{W Id "` =C4;d h [r sZ5pA_ 3  k +cx \N 5YP$^O_7F8p+8Pf B0 KNpnG_tS "6 4CzlCf$ iKTz~,VO[%94vD:*7UNRM3QR~ q' v G }{2@YB6Xu 1  * W Fh2^wHls v~Ljn`~}LuMc1+q~Miz]1>qi?BVQ95u(3 Eku. !pU l nY/29D@qm &U.b F|NSfL' ~l[yG-n] :m#D4&36Ah " {6&i8)9/w)D/dFqiUIqD"Y=3gf6Vh[\4#)yDZj+\AFf+7925^A ;W4}X(+.H^J]&-4SJiNQlWj ]a A5;X:>&4?v<[ns_GT?Jba6S W=_(o -; '&Ix2<;n*:BZ[-&txX^zF7J=Yp<FSzJ ti^3mC0FvZoBl9N^9Rz@"g#M<tT,_[_5bk{.?'@;JMTXxQd k)S4, v! ]ln,f+ 993a.5Qdzk2~}it~j%FSePNP5@6 z.=JF2%=Qnh9j12|XJf  blZM}qhI*`s%cM q+%BwM7,R12|v"gV^"MKT+ }X p<k,HC7 RyYep0y7-w@w?{Kc&Lpav,lI}l_X\ +s,J()),X;ngd:,4oI#JOw:q]:*FG.~% fj  f'vLM"{4 =5uz-IR3,}%Ln!qm:,^V$XdW[U^c qL{8XgC@2-EJ g$GO!+L'f;`69&y=[b2&b|0 (+<-~lV{)z&4R%F^;$XvJb{A}x2WmCB98yf22t~_FpIBK$ /*[6-aMn{t[92*ky61. F#b~2K yb)>Ldp$,hm,vjpUo"UX }A>s0[Jy</A5F W\_ mHN.w*7UA*D:%D$$J [F. .u'"-Zzcm-J0Fn ojiI)<[m,^,s*G#C*>bT6 2:jLdEEsC=+s|:`{NZIYN[jeLR|gIp%$grv0 Dql@W"; k("b5 {3 X<^'wUQuW M4sD7 ]Z*FD>RBboa[ 20[P .%V/6GC2C6/T}'  W9)>i"WU[, 15  _fqzMf+!0 dI<B/}<B'ao vB[ fM2 *J "Z?6!' !                                                                     ! %       !"        "     ! tN[lM/\Yl. Q C0rj.$A-eecIv6fm},5$<o?}C$$ @ fB>z!KP -  e 8u_n@O!P@h*bPA>f>oBD #05_rG 01bx%  QjO 4$ 9LH! r  \T?>!yp,.k7]8 )I [  ,d sG Ic+aQU j R`:GY]] 1>bKh,h; XGI\;'+ w ׷kA6Z ,w<[ > } 6 gh_1-_P\i,9i5/ ;( cA DQwZsW 8t UW a%EU1lF^XF?IE% yjF"jjLG(Ww(c wNI 3y>P4R)X 8V:qQ`K 7% yV&B!D2}~jyT3@66=-s Xwa-0S$xaZd.+,o,@P>6\x}c'WIlH^ /F uwjz2*SW@q bfHr*r.ZFSC 5 n_j'!?R2t^Aqf,FwXVF& S0$(zVB  L+o B1OKOeN h>PB\"Mhr {fW_`=-Vx<:q"Dor} t!Zi > cR(8JAiq()k}E~ (tH v-:vpMAD2"8Ho:}7QR*w3 Lmy #;p: 0B(WR ,[+ID3Ml4`0#6 @8n}# C & MCq #N E .!PJf:'s=pH* {'[zP 6Ejz0RKm& YiIE( o sw$zjyGq u<HAW cWm{ E,jhwjs : g (TL?.Ske8 :n6%%o% no +%M2TzDBS^<L*"7@P@B\|I tCj $ 5TJH S  y&<י;*+& .(%5X$H QKv +,/ Gqb8*dZ 0  ! )=2!c}iOS 5  r#17 VR#$?!?*߈/2Ey&')` D JSONVA lX kY%m4< @ !k K+0;W& buR~" MU {   `DB;BE k EF ^.$a#*l>7߮u=FGq ~w {P!A+*!nsGU2  "'f. $ o `Aכ "CH>9=w(tH\ WL'R'V%q cu\ 7_EC4A #`v H L  <K 2K:bH#zsz<+!fYRqv h k\<}~uBh~ T  = {lU1nYC2/- Ob ;S/2^ '01wdWTt k5DJ*w C I4CE?+a` f [" 2w9O)3B 5, n"1\-9)HH aJ;l-N .A Cb5(O a y J NrACL).[ }l9K[<\T) n @m E tt}K)FOw[h;cWbQ{9fP0kn!Q$  HMc`j 2  x lXz$TdkmFU} Y-9CWxfjfBdNWLEA' \ < Z? hc@jXZ, ~ wmj.>,&aQ,W 7"p[WSql  l U[ypONoT6RJO22\ t2G*|Inu ! R=#awVnOuAx0G<mKt LJ] =#ajO Ez 8o(1amJG |x1X&S+1"t*nX) 4\OX1Ea'F j BI#PZ!MfmINPdln5-["iz+[jHDE]Z3CGG_!B .; [6(crlf z@?Zz[LmY]& 2` PILRA]U (_`s *hT}c>;`JJo>3" g;4l [XZKv\C$nF s - +I Q~>/k6.wZo%  RQA& ,z2|MNLl@rZO].SUS6v[  j S*9OugK _ - <"h5w4"O 6 MY&VgsMd[l^=  =!#2 }yU }AP/CXf ~9>Ocf $ 6xijD;IhB*OfP]B1@F  hPT<rMi 9cl !^ cR.s|L:  k{=!A ,F>H^N%}+3FOg i=> T L()Os + ]& 9`4,~FQ #C[v;&Mk0$k[nVmugZ7%^D)#jY/ 7OF4[AZ53QZ@;_u,sWBJ?|<(|#m C -o&/t,tNC^*}vGv6we$W?21 (w8l1/hw*wud2X(=Z nU;!f{$uRnBtX+OS"z*t3knk@Br_6 qcFVRbOC,4'\ R `yH0k/= T,jel)!)1QY=;9^ JwN5 r {T]0~{pxg 5f?pm@ Q Wg( >o!o=xdu<@ D]$ryU(aJ?o,4H!5Nvp)Imo""Av6=#5a{=UPCtb3o_ai{h8*^MWfDYjy3H:Te//'gJZy_M$PYUXG3gyF*?iJWa~a+y] ,T^.Lj:C5+'y@ $:bUqM5[:&\:{VGUih<50UGcNT!{Uh{2FT,  3"ZF3<?BsQ==Rl":*u$yN *5kX1X"fjmhlPbc8vuUZ;+6SMTBe[W&73djg7o< % n0@7$ w/f|"UpC$dviSSD+v 2Qpim&/c9q& 5 YR6*kn59`G  ^ #9,Y8P3Nt5*S[}i&8$y=PT pmzw 9% a  %3"gd,= ~6S} [P;1h5  "!Wa)2# !! Cw4D_ 6  jFS(>27Q}nAm9L>| x,#+->%){  i m S' k:ۺ\ yh L<i,!}  2cr gJWni(4R  C y9|CD2=:s/e9Dx;Ft El$,/X(iXMW%! HA 7o0U8m!$r  hB%py  v (x 2Vs<#8? Dl9)4̉ -s*R0*+W hӵ x4&'&l`ig_ % &puFr= { 0~ VH1*2Dy=-l̡.v &  % *q!U z.#//%y A|ޱf)_,A"ZZk=x)ge p ;3o ~zc^#ABC2.Z H['l*. dIR%ˆY ",A'}3 uثهDA)h)J \BL >xMjMv z?0(K C0Ʒ|ީ}F .1)WY 8#!B L4x $\+$*[ITgjc[  ^bHH  &Yժ+VKbF3]O $834(G̃Ģ̳iI*32 d[F?ma'% 7 ],Nv S {ԕAJ.ID266̩߽[2(E5Y2z"$L+.DbZ%:g =$]*O)bF  Fh6T3 ^wfO:JM ?XK  Ms8nC2p sGBF(1|lҷ&xS/N6:-96 J<"K~m bZQ blffE% f odhl@YBNTQ0ԝKTD|J55[WđPPv2:0yxԢة~ y!'$;ڀ"`(D>%8: bjs85Gш+#LI[H/HTxhwY!,;i9u) E6QO*A'+}O;|ց 8 k*6em1,1 K _g eb-=cK: g؁4ؚ $5=O- ^7/I2& - z|R/>J 4q> ,pWWD2t *տAJ7IHE*D"=D; "3i`i*i $.F%NI$Jz9?z3 EJH090+fԹ 0eFC-. "L(sիr"7);**x9i)M "Y," NwX ; @6+# pn%Z,:{+@FC0) O ef) !&744\!R}76l#f1n%&VdoAY5<%EX_i0N@B2M Cڕ =.F(t x-9RXt ZZ    n8 .;PGq.N*3Z$BTF=:+Wmq×Q| f wjHb_ 8hWT!3 u%T^yL91M8!/h8)  ;KJˠ{.7j!#~K"y4cXT  ,O  o WHnn){(`F>9oBiHS_v ^0- BW xʽאw! (l ~cMXv_ 2)coCP C5 Z=  1C~}x35 28$j} dX Sُ2I!%tj&!0k^ # vhe s < &2$ iV  g^4 V%&'7!3cBMי X +$zt3p b/PS  vsU1 <-8(KaJ}  DxV^  7*y& ޗϡ`aD?w"#1n_Y,KqxCG \ L !IxE][m$`}) ݷV\0pefpZ`qV\ln  h O q?Dt~Z>7w -v^tT-  Z U /K!  p pzL"]5Mjupf|[?}dkWlJlnNsw&v{<s#j, Sdu /i3A@y.; T%W ?s'bqX,MxV+=t)5X!ph%QjlR2neDobmWv@(CY+nZ1 2w [sYI9 0`4F)JpUKlj ' '*UO=wC){QIB}GvBu5h~"u5~J+5]o!b CiRb$ _D]( @nl6&Ee./;xt&jzaQ`X]$abT.=[f!mQAdFO6 w ^k^[tsF  q8bNL\uE L6`[!!t9(3$I@8"?03 U s )  \RcWeuh;4=j?-<P ZM&l^2S1uTwSMZhUu/ZNl] C J:Z;&jz  4 r60;Pn*|' D'yMgj  yp9;;Z - q 0jl).\wV_ ['{VC > M "Ssb`9(y(" WqLlb:P]5gc$ 8 $\ xE mmCO q t NX~Attn"]l Y>^L{Eci qS^!r | q @bz cJ@M]1ip&? &dlr[z  8t!:QMIL"% 3&2  qo&#%x*+ * ' Hy ,,r2|]]D68_p.-Z^Q w`sjR xfYIw {wy4}vZIu3$@_(* 9kJ 7Xw|H;Xs1Fy^52YlJ,%3dF}sIbC )p Ivb4D|3" Oj@fyh4+.-9M}^_[l>-N zL<q ?70'e-__ hJNo2POYjb$uQ=5&_eo=. ^Zy r<.ksWD%%!fy1#(W+i~=Pad[eN, 9*%6U1|{p%K,(2RUy1 ''   $,28* !''         !*$  $P3]4t< Mb4_g>9DX }^ > pef?P! 8iL0qhfk( EVX*c(k } hR0 y 0 ^M'H7|, =OI O(ZIOS"VWs BZ(gbAj?>+KJt9nJ+noO2dz_FKZ`Y~=eK5!k {#m"!8{ 2C ~ %"{[ B8oY 9"II W$A|S}_ =" -0>|Bl)_ 54}D`l`xGLjw xR0CWSi* ; ]<)d`mv-EAl5zi Q7nKC[C(LorA=uN^n9;=?v/FHK-R .8;].Obq?3iBj3Hap78_ d : F&N[9N@) wF 0* p@q# 6 J@*g?)gx @  Kg<b Lo+wrJ[YT)(S,92; l !e $mh y^M o( x$AfPYAN"OUP 0[} uu% Ro kU'u7\ QwJu"`1d, @Lka!;7ߖ 6-"d+VJ;&ymht D} yp^Tox4oM T-:$o C #_ m xwCWpM=3 $vfYA\ig O+shG o+CA~e ERNevX+ o  n  d^~3nDy.&) ~m %0  -ef. q1 rWm@  > ZIU7{[;$ @HgG`  y 1l <^gX Y3 k )v .kjmo < G Pd3jH % Ix%a#cdv_Z%    z2F_!/of'd G>Ej]3~f U   }&KJ^@L `b  * > AViA"ju }LV&X 9~^{ tWA #|O$ "RPL!bbp%b9=)3oy~SS(b{+s'y9zpiH:1 , ",{{8VqUP$,S$2NFv}oF+bi2Pbw$+Nva/*BI2qZz 0GhYsSJ(N e/2 YhqP"6A:9Q,   8IWdkvb*ZDr :+fsY^Kl /vsUeylyyZ/+DhnN5+3%vJDMC307Tp!.FPFF/   %wDIiac=MlvhT2 w/424/Pj/hcGa,}   ?A,bN' yr<qP1yc_{Q 55d8 pn /Nwyh}= D'y6f]RmRjb k2{S #3^0:29lXcQ^hqD.HGK>.S7lFGNF3%0twd:R+||~$-. !eF[1Pno8 ;$B@1bX11IHyJ<J$`v@1\g(?Ofo)Hv@z0syJnqU]|L5a[JJQFfg]?`R*A]ScSM,0uJQ[r_,vLpPI$T6 eOO 2+*qhUZMT>)Qo=90t3 MA < G~|@h3RbR! a-ltOb+j!L6"6  ?_Xe5 S-sQ &  M{sCuG `5-^Qz@ O M[AP o' x D)n GJ vMt&0N>S![ 1)#g3 .JO l3 ?eGZ8\*M F  B]vTnnX+L[2-} a*L&$ι/ ry('*, <H;#U  ?V   >@}73] &0b0q p-5},v5.aLF]ҺA7y i 3$^x1 "1@% $ r{" xJ+NdIZ(/)YH2A5ld q 2:%^ު ?   f nP|rW 3  gQP]>j oz++2),)  kTM,l~  D C */Vw  DJ sJTpj!/\6,9Ql_+.^l2/i"yB7Yj^|/' p^.=?<v ^8(lXU%VU@ D6@es7YqjQ.U$H6=]i9{! !*+///'$ z s U3,+m,1L 5;+ifDbXf lK$ ")f JnoS zieXXiWPiN^yz $<BMZeU_Z<<* "  ].{ $  , =   6*    (%SdUT!Zv[C]M!z' F(?* !.  5C"+3+$FUJ.'!  %                  '"%""                                                                  !"  !*+                      (* (,/9<9232(sf[RNT^hz (/8'*3n!]&!$/;N.f!SxyjeW&oh \Z]$+;m5z%Gs$BYaB ]^5ld;2n$G# E?!eWuqeV0p1D @u8H.+3mbiJw.e!9I@72n@TMi _o.Y&JzI(FII;8c^lvWl.D9Wi 9f n,t^jXe;sW,i0  0C^}"_[!w'JQ@2waTA@MRWTcwhGMUh[%XC,77)2i͗f =((' }:@,tQ 6;#4 "Miȇ5}#&)7'r?P =CF}.,s|G)Ƶo4G$$)&'] m=%[9 1):cE &o# E: $9oZ ݩz\"{ $usX3  .+u% qPܯ@G[ j,b/ o + \f %)3:4`] ##V{e^y K# / b&EߩtJm  CWV ;#m'|b`ZCf\ Mh-4"<VSBRtxOH M; wsD\dVDf B q O fuw=E q^Uzi9 # ? 4 Y"S=YF !#!48Fw<_ cp&a]Q  :Zc w9cO)g&, Ny !  IQ\W w ]Ap#Y8$y C<`  , 3Pk y n krwD; /]~ D j eU'GI!L av+ - {( V`_ `-Qt L  $b]3># #|/o r` o ="I~}9M8=#o2 p 4+U7 _ w{-D w4 w{ pz+^We/s*h G E$  guE{(}MJ O)- |K E 9 V|B(>te] &r ~*R VoFGO&pZ(L? U 1 . ||9LB" ]  |;v ws)D}v?WS D~ . mlG JfeF>@L I 'x  Y+DIS1   5 M?|2MC   C x f * _9 k d *"UHBoB%M   N v 3 DGh:d.&  $ X;vp(Po =  ju{uN8i;xw.ajbR;'+]@}90\k;A:/M96wr&?74N0 V(ii ]-w)E%,Gj ~Se67~) bCq ;i+sRLWZ]Ao,`>-H0WB74{FY%,DkbS|5b^9k*h!)6jDY Knn8Fn[,?FLD}I#yQDR,[ e(HbM'9D$YoT|Pm>v1pIuJ *#O",4/-0#RZ (`\o{fs.??Bm_@fc9oaWS.P'G%w8} BoM%3SaNu2(Jw('9 !;1+"         ''  Wz""dP sus#MrX"iz5H6t*Hnqn&u0a1[D=_zVr 6!T(SHTm~qUAZLv:&-}nRK=lR)}b{TV:( ,UR |m9{ . ey%.n l x V:bInK( 0%& 0PI g b,#P5!$!hd3q= Yr #>  *NS[B^ %*K(&c82ء48 7t ;(t \) .U0(PH +">1% bxRֻoecc  v3r cysyRTDjD%^(*  |ik  aw YK tR.t %V v *y&dAF w\to uN|o]3B\  7b^ H/V X&nK d>z+ N3}]fW  / `4sxY8d qR~C   AD6r p > mKR{L}3V2V3q^ \ %i%a+bc1 F -f1fJ&X<  ( 6zg'Bd=  6>_ PL5}{tE 1 $t  rztq+ln 5>  QQK@dj<,Ff s X zpM L g  nFEj%Y7jgo@ \ |/M,nz   1+]2$}C(Thg 1  [I  0rjtM/ .  T u/~ Yy6 Z 5 ws\)b_=%&O a0>#x[!#  =i 3B=[HiLT@Kd ^BgIps,6 #  3e J8+]zKu3: T BZH(x+ Q-SfIp} 3  *`?S?cR EDfdK;:ITt _VV7yot[FjL 6 ""0lP<H4X: L{.k`ptw&pAGm; |sypE5JzwnoxqF4I."0^Y*`S31#R7ibuEdopWF UXeh<e2[jXWed^[<]o,Po%IiW f7 ?Z'j ~X$|ei90' @D$<Cpd21 [' jo:t9'*_~I} v;t dI! |Bie^ Z ?=iiivfh13XBQ@tskUN5 oXDJ=dw)&U +s*+' (UO+~:($%dRis0Q(Gpta]3hzfG_EY6I][q@U]y|Wd~.ez{B7t"b=bFZb  =;;^m4V|0g@mY8JO@ 9Fz.&JscXuk?"{X3G%08izhk$ 2 NSMGz9BCG* /NQC;! *,,*  %33+! " ! !  V+"InQfc U/^US>/ UO*?E[K@ @n8+V&%X C9R5Lp F R5wf Q T  vfTWrCWO*3YG Q",LB $0e}'5 u?={bgMI(]E}74l{`zl1_, ye h1h`G #%f>[ۙ}Yx 7 A _   6W  / "E2{   <;'EaL<  \Xw"H8?hAG)^Xd  ]M) tLu'W'*|aqd0&jDv<`{Lsz3J;L9_6J7S,*V58~mu i$ULB^~ h >',`$P$1vMN M7+PYjp&FyCmR9r+ xn xW: :h"s "-p v%/ yQ ? 3o\ o [~} 8P.cEo( |7sJoO@ .S<P0op INDe6o:R@2*tb 2,xxrs`X0mVQUo65Y1  iSS_ _:+~B [ dX;X+a''A RJf3:X%STbv5N{.,"~` ~lUZf LH0Ohx_o/pSp r i  UE`&n S jB  #l  " PMT ;N  g G Ob3~ 6ky pX@c@p,b :hKs0Ujo(2Y5|?mF Hu lQ6Y(h!/AX3R?@|ZM/^UG{'XZbMiMDQaBdvQ*}T6Qjw6_us^G"UQG7MbPe~vs{3lX@hiXU*mURMo/I^vryk2w\fp*<XuzrX5vjN[ynu/NF+[Xbvl3*6h@M2%Cia5N^ 9zQ8.zC$%@aMFaf9; F[H.1_R$d2+JH%rYm ?{L ~]:&s+MKVoW6 w<^pMvcdx(5T.b3Dw&TK+y{+1Jr%fPxB=SG&.HU!$t$GL=DQ@Q;LLC/YhS% pO@*>bYyNuZ 5?a j77{_bcHrr\}fYhJ{<;u{Y. , {[K;@|^O! U RV/J ncf Szx8 5Ut f fxx|Z dH   uY1{l9 J Vv9fJf \ 5+B *" > C QLv%CyS|MeTmwE 9 ;ch& kOmjB & e Y0-sCp P_Z&( |ep_Q  hT_{I7T}A , BxYAc||(K q 49K HTf"n k"^WFK ^ *bgtcwY  U rV*  &Hx0$)) <i&|h)vmD v  2 ;?l@{<  /~}Ch c0= N0T dD 3FXb*_l  G U T%MIkwqDFG\i.V[ C B LnAQLQG Z C4!yJ S%a&;X6sj )d@bdU~P^2:__WJ,v\Oa;H.,U f!zF;aLNd tY)| WU)HG5]fz6[c!:OK\?|W* hF"Wbr"MXov"BU [<'B!Z, 6M"Hjlooj7J CDyzz$(GiY(u3,{/)t.vh. *@W3M tt$ ",Nle|3B"h/#k$'Hs5wWilDJwDfk_L'&oFHw\*j?C2d7"|}@"4O6~A@PtiX{CaM'<(}mUodv-:83_4}TxbhIz  x  *Fj/"DJ s P'dS<9qc5bi[f @- HX)CC K  x>UN`a\!"<$+j y-  9y_6^V +I` C2 * B$(aH wZD/{U+ 5gIU '7Yh~= [j " h)|h{RV%K" $ (`\{|-U^ pV c =<67@^c79iTq({r UL 5T z jO] UMFWO>[`  xpY[@K|k g  g6H3ec(.v  / w9zhHW j ^ ]&jfxh<^2WR6qj  eULIo2 ? n  )5w/^u_3]n LIwt ' co1 DF  Y E f pay,KOk 5: U* x; \  f t;pBo! 2MG; sFS   m {V*@kg-N  6 e e I9D5T*o@ ZS W 1  ](>>$C>[ {  LKC_5: ] w`Bgx+N'[Pj_6|yshU=_X^7-PU5?dRypX\c>NhmHzq0`dI3Puz' Z'.X_.R"dP}FxJFlR}h@$l=T~x7bw18nz ;ki2m_rM_j@[#4(c1e{0fKhxv Qep>-?& !WS}/[Q{HsF>*7>OGQq?qy |+}D90L LaJ.9 H1OA7yW\yw9.VZa#H)u{tY \ ?6my-K/]v^c|EmglTEBs-3M8UB](1+a$Sbn1b<hE2I9C~g<  Hvhz:#n9$o~$ X `o3ul4ZON@G,"~*9<s  ap! "i/ CD&C63 A p  ZmLE6Qs!Z) 2~ Lv %   _N_ysD1 oE~3 `${epmeK~ ft_>3 yG *I , [o E6:` H8 sC8fO ]ݪ7q; -P$~#'Z ; ;_P )c. &g"ܿoeP R HF )pw WFi r2>sg`  zN*&9  3 [K C]y c2zA g a K 1I4h G !&=E1 OB; 4 = SyL YQJ^#\DV*L!N 4 P R-f:OwE Tq&t  Ji&u   a cz3=(6#R 5b ^Q ! 7f|RJy6; G} ] $& b9 jji,  (]l%|  PT e XOG  #Y  H  (pcF4  { k V( $9BiKRX QHX<= ) m Gt7[y K!Z  enXI['( k -rM_/'o)>NkX\N  &  . ]vDd/FN  1d2AA ;H(JhCnL iX L) gF|J / NN'1I X@ [Fo  :w`cWqO~d; | Wn;G. + oWqlV5  kOu*=  ZmTP2 u#J _ w #p$ F?@ >,, &Bx 3AOs'cd g2 UleFoX 8 h"=7B"}{S  `fiO[t'" R/67xg  oUe  OaW/hE B? Kz l @ZjI0>W tY |t BI[V'*d } y 9?0iR8  N~W R6S(k p?XS +8 O1+Wxf^ q c Rx*^QUsH e,^Wwmn! ` s  MWD,j"RR/6 zb,&n#k8f u   ;)sSLcQ \\kR*O   sr~pTxh  Nb%%u{FFox%{ )M$i<URXf63NCX>kuJB!)H%(2`vx^a yei?TPu8eB"7^bQk}xQ#%yHCpl^%&fHNVq.j.a|r^=/',=6,PoT K!5PwJwwnT;* {U)?Xu/{{6NUQI3Y%Az12_|Z*%=TW?"N:6Cj"?'.<WTWssuhUG}sh=Hp@[T9LdupU, *13<BLNPM2'6I@/ "''"   (  "%+% '/*     "        ,GB]7o$i%Hx<C/ 9]d}&+o"|'X~nu3z|/7@2CF?aG0PNh&P]yP$Fb+1"6~]9 !<Cos 5~\ SI5 6}+aetx i~!Q{= 8[j2rFf0)gb_$xT%R9` c cni*`q{ R OO)}FoX 1 * rWxUT1 h / Q  w9z}sjF_)hZk  r J{a ]eBlLdqbv  S 2O'{h{Y B  oPm*+%%<  jye3 @  ~ B WOeEZ3]O:w|V l1 s \ WI| N] m h@O)V+oZ6vQ . G 7mdAG%&Yd$ 0 {V!C}ZR4nv)d | D& _/Oeq|(} p j ;vq^Tm  b< .K*  m * ; =T17I  H  HG}4QS   GyH=1J m + cL?{ewPM YP D | 6>r=/%q3{:  * &#: [=_1  4 C @nzB_<  " qn|^{yD  M $G;uoR )^ jU"hk Am/&ruaL]A5]PhH  ,?7;&C=?;DIODh&V7e. ]},{p_Y;(SAL'ndA2sRsZ`hu.7m; p A'&)Ds>v&o7FG?yHJ)|5 aH0!l:%CdV(F2w3QQ2v0Rj_aA(o3sk_\e@Z3}h,*w5zDvjs+%9/@}oN ro(!8 [(b~85=W%"(v[zDs3A9=r17i+*CPP*F3^M(,XM;}QJPD^q6u+R=2_`ffx/R~}*&h"'dYkM,8iI~oD;zwH ?,r%?+DdIdx[ IE,>`d`v$%8!2=naD JK91-usB jq \^K#cZ&L|3k!ZFq C}an}8~dk.7CcB8.3SCA;/@oI9*@&];Cr<LyzDzvqIb][ {c_S`WH5# ;^h`6x|$pFoL *+DBD*Q^XS9 s =K \R5<oQ]jz)$.nzY YI]oRI  uV~y / EV~P!|yG2pp'#7rp@J$Dm*pxRI5hg{atv#Dg g ;Z9 V8+TpV(`!owoBPhD_ ``^p0va0'J ;1|@xpL$u 2~9B Z6=h5_i=W>2p7WS(w9;{> 3mh}}}>;0=dKwG7\ aBMjE{ko#UIFZ/;* $( nx: W Wba l v]X]C.t)YFc^^ v38Ag )hl]c cu H Ub3 ~nv ~ ` 41 =X/~r~:Lcu>Hww4twQJ mJ9Z&*s 1|! 6 | Dj#%1@u  D !U5 Gv;)H 9 P^9 23r?  w-  h 6y 9_HF@|8fX%1P+| e i MWgzn GpsIl Z ,c{}(")@$aIJTS +~i_U]rr d; TNj19rLD=cU Z$ }Hd@ wjf]W*OnoppaI1l"SM]q3G} _j.D}(L@ B)oa^} "{ 2;!N(@o~;<-B{0|}qV{Vu5:-t7]MwBn*'FKpD;uIq}oa&+;d;(.f-x# YNh@^x59{??m J|!0vP).W0[a=QH"CHQkkuw[s5R_:9s6z|v[=jlL.(NJZ[So,@P2j/5P J( M!f9(  +*XXJ"/  +/  L / ."=21("%~!* We,@!IN(5' *=@2F6I( , M5+"/M*Cd.;+ ." % 6+<B5 z"  *'(5 %.'I69J/8UL  !"82 ,B6  $ (<2~DZe]66M?    '. <Zh9~y T[@WZh %,_.61   @T=5          ","   //    $   $%+",1% !*9L<y{ ?*1kb$LU1$byCw~ 3!v~%$ ?N=DT@BI9 ,1$5+ +3/*2%   (. "   .,+ +/"                              ! (*                   !++*"       "   ! @`Sf/+'L<D1   !"!?*" +(3' 1" !fw|Za.Z2f Ws(y : S P7j 1Y3  s $ N&[@94L(  + ?{K6l,A g } P eL?S 8 jl C_^' ]jhA2vFN ';'Bj CET!c! pn1K !L!.S w"[B=PLtkK F!i }!MF7wc AM1' nFI 8 EE8'#Uv  xjV{2<D$D+OOhZl4xwZbJx\>=D0:[[Id]~ 3jO?un[U@v9?CMF;8%z 7zQB&5' l"_*@ .98pT]:/*;g=+h}BM^;&X/*M=iH>Hg0a=-]{u^*e$hA 0l. "sA!=T_2wbXm[foF( $<\ B|!_U6).PD|w<e5( )9Up*Mr|hW; m^J@DHPY}@N_n|_C( %BPS^_b__UQD;+ 3^F!11'9/ ,$   }z *?MZNB<<1%! ^Cxt Y8WP9lSVmB@"_th =EDbY5/_HAgy1)%FT5|6&*.Ig(7\ :!(Jm'~/`TE 2c78d@.b/Yk^ ;1k,uD+U?m~#jy]}}PF\lN&!cxZk BR*'8 y0^#T(`G*2 ~_i 02 Z . x~% _"`P>8ZG@S %@  5RL %ac]G -sW+3ls\M 0H yt|1< GABX\ fn  ' `$1: cX $ w~ M)\ " d MC ypFc6T Ww l' LRc+9> *z 4oDCO@UP)f"H R2  DIpzFL Ei& X% t+OiVL~~qC t h5 #A *}n  \D&LMwO u%  c0e#7{[!g = o-&k"H$TRK S  X(l q  T94^q Sz^ e Sֆc/%% 5KScԩ[y[K kXAP$7(>#+ d7CHߔ?3t>p F^I]0#%#' iZ!C D+ ~HZ t1 W۹#j*[4P|TJvda۫' $ C Xmyc6jc Y + X50 'x* *tOH{6oe(8| <  a:&]iiKv z/O1":r8 /1sd # vBv3C + $ PlU0>dwJTm<  , s  2 5c WnZc[ 3 :qE cB O_+n\=  19 ^ B vww}?,8OZu * C NZf.p Bl$-#) j=sU eG :<LT`@  % t4m} ~TGBw ~.I81"dQk,H 7YO d)! GW8D ; ^ wi6;$a@4hV \ZT  cT8uJG'/h< ;' t "V*$U9)BKj  *h]u^+E0e=K~jyLM E wd? ]e7Y x rVPCC rRDH+ .{$jr;K9  i-,29&W,f%f| X4[$i ;s?hzy]G p(Z#@RlX+&WVE*lX9;Z)#jy\j[qhc^VB}F !sYX ](@p}yvlGw tRo?84,M@P }T!2bd3/"ibay D)"?&km[Tnb9^Zu?X09rbkJz[Ze!YkUj~"*l2~d1'Q8//W?UB'a!^!5~;l uTy+hMniU?:s uM;?@%NJL7,9a ]Q%zP^%ClX ;CwU2kTp};9_* |(e1LhwU5v$JhMssJZeGltzo&& yPUe[5zPf}CkZHB0/G?RZI7U9=}[_P&asQS{Wa1BJ20 Ba}27M<IX0SA !,JHT5l*CLw^h6.[1tyl!zUxP}2GC+il"^ e9DC["%5 C}T"N7WD=lVcQ  `W[ \rVs3RX'7@ /C&o_~$-g`{'9NDe,"\Q+wl3#K<Z=Cqr2xus' Kf?F Ls(y7b**DPQ$Amxa{P? ) [=X?B 2 k = nhq+HLHl9 SX D[8c  uL,s^Pd[ D '][WcW 7 S &Y'+>8tcH=/ qHT] fCh=a/  > M Q$2'#)S 5_ۉ& l)i   -sk5z.&-+*>!?ݥۢh\B !Ti  >d!HrH*?&I,]x [}8Fw5Hsk)|v0!*#*dI a ` >'.qS d;FECtE =()R 7ޱޅ i z% xbTm p `MWAS m'$ f&z7  #c 5;8 Vj f$#; e e@.|%K > lv_9-RZ( S+m"|6DܽgM  c1}  s8+5{~b'!y) Sߑ_3 ySXP9< K3XveS %$F$ AW܂}7 r Sx uKXrc x K oj!E y$" %]4ޤwD4  H \1Zj^A C KR1E+ $5a# ,!E$]~   c+!U{ ok"  . .: B:.1=1Qm[E=bN4d>d]9#==v4GSC>tR`57G{!"(W2A4[=k;[> :V A%qzr!EOBO*1j=,?> z[3*{{WyQJFQa~GI19:&_>OQ&,Jd"0[Mt KQCC @bjD.@~(-\+FC'n(JU3b5UvRro!&F`({ Lp NH|M<]<wY XV)hd aCJZ):=f+r!+CP?[N;YmyF Zi8F%)$8*wDM}yblS* Y&:pd?H1Pch`Y;+;zw 4,|)iNBlB_w[je&@z2#? W  J&h w w {-mLyPlH~{% Bvyr Z@R,    +E`;j ?  hj:_{Y + X c^` vd~ u $bfRRe X & o FI g8^3 ) Gv; R um# 0 I =UyWQ=c#='+?GX V ] p 6X$eN*Zs ~ >^<!ABH}]F|j  4n{gx]&Hu,D}~*XJ%OZJ H }VqDyuut$""0sL3g#Lw&G Yl*H6ZsJ6O$tRb[/Qy'+oS > 7)<S7 )nYFE*hM`0gu d0Ct}h8D}  @.I :$ByFBhEB[YN<f8xi'hPjBQE O.XrY<:# =_%`Uimsp{9h`]UaOV*)3asdT< 0|8WrWoVV8H{@VcM)1tC@ua}fI1*j'F#wP-snee+aeB"kt!!hSM_Leh6Rjyk*0L$'~jIlEEi2m#<{J58, VH.Uv)Lf*bJfQlcyaO#v {n#RETFxy w`YFKqZ4\z!Mq[rIilby*]cepT7jpUI1"HO`N >zpRd:&=NcjX;,H_h)j H)Ku8&}VIwD"^{(n*J-'ZM =jY$+@{I8_?lWzb@)b~.iJGf1B@[zNM@QpF''kCZ[lisyjWl}& zWnSDX8WJ,<[a{s3mWZ;o3!}9_.FNaH@! . fIy?sdiN8 P.FohfzT^bX2i!1 _;,8J 1 X%ybUB~aI[J M28UG RvU<\\F u QZXQz'"(',25'9@?2 F 2?(*2}lQL6Ls_(}onN zG<,{6S8+ ,fL  6;'   //!  %8GBQp|sp3^C$ $Mo_..t$7oj  aq 7a o 6riD@$Yia2iVLZeaJ@ f/N(C*d<uF S;cPW o#T< #)fdo$e^K7@[L37r ?x,i D}YiP  {C802m"=*3^BV"5jEi T1Ma V# r.n- !`DSaFNn"ZO T 8S GZ"gdJ2SyaH 7xYht  (Cw-p4 ;[[5*. $Wl l!q?6. [^%!Yll=S[ B,Mg YATpc<v + M*u6d7p8!C1v`gCcdh,twBWg^~;2  5 l:)BOt'vjG `  g{@-7 0qVF@:B 1:mP - QF]Qn; Yiy M3K#'})5jUh+R  s {j  h_l eG!NF=NL6:s: roSdd?:oh6J*FWp%+?e2GL!^<!*+,_e1L|WIM{b7_qM</+  9BXS*   (B~ 81 $zv,MQdZCDB6G;=3Xz <3GWG/'  (  +    "  +<oNybvI;1'*M,("2%  '/!    *% T zhhAMT_p$%J Sh[:OeA3WTO((9TW.+jmf*iT={%ss[i ^l $mtlD792[T.+P,z_NmLHxbZ+L&Z9a)r=\!)]t{\GcpR"Fy3D]eps,a;Ybl<w5p +y,LP<?~Mf8spXuJo @byfN} vD9ni~^fU2Mv}+z(1"][8ov6zs=B8sT<W;XI!zWM;&=phW{~=_"'eH13yC{SIl$.Y/xd\IDD%("HvH2a oUwD?Ti/(y*} ePJ)*y:E,J Br y{dn`X1^YNF"__bFHw![Hn*a,dzQwCw49NuRBe[?,M= 3/i0h.BfUM}M\z=>&lUQ  LnAY")r>8U=2[M op@F\%3uj?fT&f\XSfP %'Z(~*a|sM}%<,QnolQN ..'"*=! '!+2"6+   ! ! 6L1! ! $  Kl/AuBtXmv i +6K2DHl[$=aJ*ro 2Z} ;K9 3BMB?s>GC1>A2AbH9.[~rGFJK2!JR2 6s&'F9\ >O  O AG JrgI te &F5 )8 ? p>l j5"K)Z LMuo; aTJ`( m /[NoUg ^F5o {NWfw.C lW#9hz7bFIw CF*><:6hdIE>TI i7`Z@.jt& d y[iiU . h l?W/NJQ'{  * Sz9_q%K81_5.J]B n uI<$EP1r  ;.g4tS  X6^XA=wqaC>fnywI3mX Rx A'1(lg]/c > ! A -;#GcHyjQPh^U &X M8VSW1ad$L&3Ch- | C vGN5 /z>$T%Q6?[7 " W) 5!Yt QF/{y| $](TQss _9DqRcgxG{' =!O+jd+`H0  |)3-,vZ!ferzQ ` .BYLb\ </Ix0J}z];0$c9A*TBGf ^#;ur]/ 1/{6921/0%!`] C{ B Wh,& @2C:J%mA ]?/jusDz6+ l_h ,<5H C 6"oq=Sza^~'~T|J?!3P i (7VXb97!nMZFfK |&! ZD!xdVkm 4{:( ?Nc +  F -*0N tUY ,IM>6[;2@z; Y  mVVt^Ul[,A~ oSZ1J;c1-&dqayRPq2\ZF]k^B>dsQy;km}4}{}nfH^7.b7m6V@/=i%Qpb q)K'R 5<8, -JJ HiM+lyK  @ wA Ts46K4#YX61#[8zK7p L2;9n.$Df'5f3,6_ek)D$41[vmt7iXoq!]$t<s!tj,d133H(wM<N7C]/5 TjZc/TwXdbpjfq8=!}JbR,?"&9 B&iW bbKx}hjYtU1? Cm(ml(N@Hx,bseBE\I1$Pyrv x~xDga`#(\65 jo _M2C]JF4%{ }3ADz8ou T|u; L;OX"0j(J /Q|LU!KVrUe%p;e#Y2' ll9*3 F/U'E28dqfTh6<tsu1~_5k08XSMcxrd^xS8}]5Q` OP hYjn7Z8iju[Zb>u~0L}ihJRg{jMTX&Tds,*s5*eqE%} [ Y2/"b-0y$P"l$=Fm~zY}Q>>&s35-!YYD! 3quK^3P;juL3&S,u{py[L4`w3tbznz!SCr ~FW?b ln^)_"5\QYA?3 iY1l>?cc91Ri:l(kpsN u+<u*MEY8UPFd]G_AJp9re ,1JF%Q=B|WP!x[$^-  mQ $&-(#ry)IP(:hY (*j)DAMa`3/\90G8"2bu T D;rb8`%cC%+c^><  } z jH beL;7jnZP@32 gm?Q~*rY'M'&k3J|+O4&A!.67;XUPQzN7i[l>!~jA4T{2E$ AKumA -$fL~1#i%j=He~CmMP+ ^Z__7XE7T\NmH]_LiUi=X,z{]3])q$S*D(XflFzW'ypS}Ug 3-fA!yuuif5 BP VPP! 5=_&ur6NR;u^FbKSsG~tM}j IZ!l#pb<}s#p!iQ"'$2jjb(907X!:=ZLD',^AxgNtQ+FR}Dt0KYd-_2sj22n|qr>NGsun=;8._&c SD"DVl.$,hAM}6!3t-3TjpK/X: 2;Pdx{B=/Yi;_C-!.5L?Kx/lQ4sy;CWX.;OEv6(w,19s:=\ ~#!_C!u"y1yRvMf\EQ}Ud}B tlto=,Jl+ hW>ylLn:KB>H^pF! "D\{ =ThszzoaXC+ (/+ +(C  "!"''  %,,$% .ILD,qUFU~"@P^r_<yc\_iv    "($    *dZ FQ s9 I bsaU+ (."]<wpo!,B@~ ;C2 I^G8F$5|[8,a}*89{KP?kU@6%XW}oS2\.N$K 25_FDQHv__D}kerRJYJ 7x [vz,uQ8J&!&0!fq"F }#~/"k Ch u%W<ljw)=DIt9!v:[u, O/ud& .K~~dZV>*Y2BnMHS87 6yFLT&"wT LQ|<4 ?|7SQN~WTcgof,fH[@L"puB0%Xdw_b @c8LNtJKM*{zU]CE6 $g#j"%(9a/+=P. +zWa_*sxfprbdAkClOj~7n|(xJ7:0qDI)|Tqy$m+F]?LNFEL$*U8i/leYGJf){uDs[iJ(i%zs T-|l0hI?_LT rFbpEej]n= c&L`;' q2cx -` Y )?3  x ,&R  { mT1U/KH"<8J/Mt@v@+&5+=$)Uw^.! 3*/o8j}h,~83u9@[4,wS/ {;S H|k]S/+;"6fh6<ld_p=Mb'Z[ 9-5ly32hr?@\7blwz42uN3Gi3$*&9z} o^CB@LBPyZy[Q]MCp!%;CS P;NDykOa G%? XI4 bVVo_;*ssbqIlPJ9\t1cP :PJ ;p2zP 36 s 3=MV*BetV0q!}Fdj^JUyb&bAfw"pb(Aj<HMho PCxCTs'Qn%C*#x_yr!x'k_}M".{)9-.13 <Gd1AWD~1JE~C{Y:bL3|o&#p@(v"Dn2W@Fte3shKT:~=u4>7&J$*#7l1b?WoeP+ MoyDo=&Az.?B{l$n\2x.X5/iQ6V92H/}}'DnJhpf@bf.bZq7}==r[PUs_=X+4$_  w TMVO19'H9iLD4;8^2"29 l@.6Fih6D/IR9 t<SjS:8{n65<uQ)s2;zT(J8c{c/ k\w<[-C!`  &V]  2 \m3$ v 6Bu&HU^2v"^+Z8gQXq : ->'>? u ud!( 2 "x 6 1_R o Kec; i \ C&b ,ly$L  Sb4~ \;: `Chy8b<v;F #G )ߩ^q!$ $ &YK$k0q2kW 7 "J|PTa '-(jmhWevހ*=3+WP [WH! I`8jJ^K h `fU g  B^.=1B*4 ăɆk-'Eo O#nfX$a(%1%#Dh (aonnU|1"VyV@Y 3wbBY53H&(|F,`D )' f4߉&85O!&U/!' Fgan*7W:CI*$t5r0Đȳ;s(c59 dz T  2>+'<'kSm_ lu5t4 U0 1/(>2GK3£ 2V.4/} r*ʅM8/0'! zOн"BRZ @g nb܅l&L+.u݆|'$l$ #$&hv$#!- JKO{ =+R kE/2EV\,/G3SBަs%#! ]4-ۤD # <UD 1l 0ZL-'@kܓ 2&--4k@M wlDMLc= H:2,69Q'6"1!VԳ۴.I*&f$"Eq J\  f J<+$.3@ 4)tQAG ,&.ށAj!! &'0y ;] B]R?$=3&53.fe."ܲ"k2q }Um<# CkVlO t 1Bw&OTB W(?q2U-=R +/+';߯b\ | @'" Ve0`I enJV:h<29FsiZ9y gRs*;}/\ 'da j7%=[  i { "YMH(,:DV3o,bp Hs S-#l#H>;*{@R 1٤; ^ adaWLMY7 $2 tc6wJ&p  ,=!j" Zix L 5 %lq k[Gux H6J `nmc9 P( 3 OVCsrT &+0 ,,~57*MF&&$ U&Xn/-M(# X1I>dMr,+::s L"Rs@@U*TMA?mzl3+Fe}M;5O;# ] C/@7ENtMP?a^g]!U ?%s8MTl 0e2<oB2JMz vM{5aL9.I.o2v\J)iU:kQ}_F:t69R? l 4@[9|Jb&D  r/e.JF!hj k U #/}tr]?Tc~|EW (DNl(Xt - v d"N[9~A Gigk=$.)M(TND"S,Fm)df ! ^ c-T C Zb~tT~l-qZ!cm( .UkZg7W/. * _VxU JR D ohmoH?> "Y b}EH/T*J O9z k R9D  r] OAERn 0 zG!FD @ x G]4F(8`9 Z  Za$QZ3]rI ~CN (Eh[ o KQ$'.-1)x ~Fv =i Cy8V(.  xdW1UrPs6 \  <J {4b& RV0tTL rO # 8 1 N:5 U ; cWvF#l5|FN ;JpGq  I 5 ^1XW2*V~  \ dL#&,!5 229]fFV^c\ -<+`Z^maC v/  yl.ot k  dZLqiGDD{ q]YH9" 2     1RI&)D6g \ q|_l= HE0Lm `$0NpF$eIV 3  v 7 H"`!@dK   \ Q000bt /"I;p*3c = tb! e * b kl ! M%$t/a6@y( | S^{sp(-~a<u7e4T1b d 7+lR %A|XMnqL B  \1Osf&Rz}S-*) 9 HvM h=tV+- b O/ y 6IOu* & 1cPe*lB!_Gw( 8DV1  4%9vFB Z 6 a9wl^dYj1?0Xydj-D>_QIq<Du/  :3)eh  d 8k#I7'31fB3r:l8o:d/m 2 Raw U caJ }|x{u\ nAL_2j 3s</]B"(B5WdOH1b`hBzFs*\Jn*{=QiNf|Qa"[$^P ;# EgSgGE$Zyf@D -)(YH_KrQjb1i.H  U (Mf9}]9"WC=k7lKaIjdi%. %ag sUolJh2\Nb3eX? L/.s\P^cq "~~b)$.Y*;rdLqcefCwC(oM(7i6|sT}ywpz .?LXNSPILNNI=6  %/<?BD8(.8.   /=@9, 'M38I<;2*(! (/32(!  -Xq:F`&feOGP{q E"u:U@=,N*NY;>(bGn@6L7xM Q ~?~J-" a D 4q YP/ V C 5 Sr: G JL8~V?+  rI(# 6. )U  Rf Y@ X  92uT ,-u< +'<(܂$ J M&6 |U1,qtg"), mi@  3+Nspvg  EMD ~L)s>[Z7A#.X.i$-fF -HnPz|U$0KYH`k  sLs ; k t[HK4U~DgYKd&'(بڂ4$ 7& )#V2e \ # 66 3> O  aIpl  eF Yy;  f h#&! =CwS 0  RzN(h m xw$%Z8 cEp luRr5\0zyk ]a*{7!#[ռڌ ~  V Tt H+|~}= ,},O%$<%s=Nq\JC e$x >ؕJA A)8 $gTQ Gh{ ^Vq=r| q:9ggFs',3 kE$a@Jқ܁x n YxS Q  ]!ZPJ ;` I5z eQ {JFBNJML!| | {jڗ0{ QMpq^W P N4b*! Q `XRR[\ CL %&A({eS t)  "L."  N{cX{\ieAK {S[=9T^q4\.:&4TBG]x?w2ip\M l s&o=G/ C_Sry ]5'@d+Ov#)z +ZQ|(f4[IQ0bk%.-=XL3w*/]&GU%Z fqZ@-dPSl.?aa}RIoO-mMk~#}fzYVj&wh.FQY*{]S4IME@6pK50\vnhYS,9KFY0 q I(NG;W@|;(fLV*ZL_0 T~|f mj4BpRH ,U=\hO ! jxVXWC#YmX7 qpDd&c( ='Q%s(4=j7^s9Dfsn2M?A(Uj^zK)<&kbHt s.rDiypm Ua.?:2l-?0_ h 1DX{!@JId;b/~6JN(%"/;+.iByiFZNjkf:x %}f)d^H\B{NJzaNNEf'.URq|2l{@La120 dw>{fjCp<# 7le[:MzM@r|Fpw2f;7 3 3)I3FW_.4d_a8bTA R-b& L =dGx kop u41XA; 2 + C,C" 9(!  ww T6: k  G~u`5} ,: N P-u L / P UVS5! {  \-p2R  y`!Wj y ; 0Kjw]&\, #V#< * m<ёyXv(p?| BFq>`)3 *x  EC" K dz-|:-~4 / b91 iҁe'Q'o gXCR6ti7Y "fG1Hf z[<=^w|fLL`G3'^  /G+(*.$X(N3L_O6zPD >j): n _ OA2?9..nfkz 1* 2/!sph6& y] t`M) HXs 5  Y.t>1 7?:#U$&ٞpI)-_" 6!+&(qW}؈T p.CL]' wDa-..?(W%o,Ǥ˜l( !$zԾ2@|$'"8 .D:$Y |E|v B  $ X6N~V* C9.)#tB@ױ!%' k -t`V ^(="Oa )GI#+S h<z& W gF=#leE|q&A"6)"J E"8  QNE^  %e!v|77YX; we*8,1 ]$3 CT7tEK 8{W 5  #D>s  b+   7sn'Gn+C]foQu  z ,- r = % m >M9\n$ 4 UF0D hr48VFDuR(9@ HJJ;iE7   i A 4t u m ? H ^ A${,w!;sGyv-ETD ~gV SkqH4>v*\sB~A? = o I:%TlF b 7Ayc\p81 + O݇oA("|. <7:>@ LF #g%:SVzEv k$b6}w0jaI%*d*u {!PG&$CIOCD]r _?KeY_xi<;1Sh  *jW7g '.'n [׉]? +#,!6 1!4HM U Q>4L  H ^f6W juQDV(Z: -)$&C]ٶ٦7/ - (tL+[i' +{2  tw*AJ  ~t]43]RM,7J83!xc3:٠ނV/q \ f  H$pe 6 g cRQUbnm JZekxIK( .>x 4_1YVzXi>   ^ zVi}tm n h(uh]vj\#`|d970])7@OntH&݅) *  T Y'~y &,)R MASod(]mVgQvܽxX s < ( ' 1  0aD] .UF3H ( W -oz,oj~]c5c qBxܑܭ0,f 9 d O $ ^7l | = FJp9E=c ~ zlvfy4 > 32ۥ"^ C x{N ^.2n>K  R{~ WA4(-&35h~HLY!&CG=Wf[9f  ~ S8R@gH + jCTA)/<?9N73Qga>2 <u'"2W%ߙl " *D(l96 < |ho} H H N *gSs5 H[ 2 &sRH&PF2s*} M L j' 8u[x on @ wh_`mL r EeJyaF%0Ee& c>4^O,T֦e K W!b1#m~R R? q e"99]Z%!oj *  WSf }v;*vdugK'Jy +[o  }_Zhel5Y  3,"&T{#@1!AUy7~l O  $uUhw N.S E  tuHfW  , +y2e Y,p:U<#@2tYK } Q7&&}j߂]4PGv   4YEnS i9COpF p O;_-E$s\I!v !smeO{ Z  Bn S Y-z1  :2%5.v~{F = G4 f#A#oay'> 1 ;\;rci# {   &I<bl W LN$I75~$Ma O{u_?s [)X X6f-> ].@ w v h @Y?=v} @  C jDcQMp[Jm] MV}dI(}  j r n4gst  \prBvA^@f@sF(- ,B=  \  51 7 1 M &rqj?SZ *  ddf2Dx!32QC ef@ s U  s   Z]Y6vo \oqb7Hc9dP2!`wd;T :0 vx\R^F'  ' A  `{ f"SYrFU+M;X\P 5 4cP  KW ~ ^ t[T'J+3 ZI M4r"m7--HRFkR J @%n~!KbE k /n~{~)P/Lw B nRX\ ,hs)0sy5  I"owwj X nY+;'mIxE\Mgzz(jM|q/jP&pwz[&7,W!6DtF[[ehybv_[n.UYLU<?a.}TQfaJ!yMgL+e=Ve2l} n ^o'5Cs0hmW[0h0SXrJ3Ren3j*" o=.+M}vWaM=B AyU@zPGGw=bO] K#}=w]IF;9$sF:?Rw~s H9"c+KL83iY  YEytBd0~@'s'*RY8|oZZJUkn}u_8f7 O +'"j- b*`jw&zF[DgeswP ,Z8W=jM@ J?Fs B;w {V{ys"aaSH~c&S __.#G_iU  j`C w &nk ONP+XF|{xn@?DLJny'}A-  [N^'8fUM [E=TBI TtF\ZWXN]Xd)}pS4hW9$z Hc;Hj:f O S M nGKuqj.uj1#$& tIb5k.`Y5+ 3Jy |  Xx,?BIj-  FHW5FknN:4NBl$ xu5$1WdWx/ 8 ; ap]:bSlFL+m> Hj h5_v-IJ;ItYAHp _&Hu:?F& T \FGI\] 8 3 Q 30TK$5>dFUa},x[a&ca@" YE@< (mt'a$=' R_o 5 1 PPR9 hH72 q `U92?<bZ *6bRfJ=~BjVNG) @ E IH=7,#y091  D,1=y0lLY~nN U? x, jl.N %:q U  ~8/ WJ:*{jjinK0=c@u^@CG pfgJ^AcBb*b (  ^B e#I+#.Yt)5? fTP(|9tZt'E}Ph5a [JY  N  ^ |4 p C2f D)yh e`sBM"&  ^ ^d+ FPr)<=.8m48 'F"ps  X (6  oB7o %87rC& = @q QP7ugobC~61A[%Y "do{A R۫YZ-P} CV5{F^PF4r# :*rJ >9F8~Jz,X}'FzDn Yo#Y {Qޮ-)Yq74 , '>sL?'m,jm  bI b\cqYom=X/L}{c[,jX[ jv\^ <Pb   Y`} Rr+ 8FX@ c(._o3J5O@H ?Uja<Ij'FYZ|%O +|,% .[zV=)o) y* IlwA]ZA$*[OVVkMtMU?YK VHd-(kUo  i D up2= cxgmB  .XR[#  73VKR0.7qf7 na,   ciw|! IYub= :BUKhAYaV%_Q>ahp>e%NNAsk6y5tPjL(* - $ {:7v3#  PB q24nrn@"X>>F6 ]#\[S4Td]N!s+HGx ZOZ ~)jslQvf ) ,UVbDzjDNFuz3=L@L9{wmG&X^n=aE c?ynvB  ,  ; m=\Yx"/H1PmM?m U['_[Y)amH~mx7g}NF<z1K%X(``OU&H\ =Bz{VU*'$G ] i?H'Njd*(# lXN~Q#n[q Q_(]]+Lo8?<kb<!6{!q(j| !{9F?Ms-oE ;n:o f2< 4wKX8a9)=xg h"= dX!{[a3 j+vm'Th^fu :!~o c3F,!c&" 6K x=$a{rq  Vlr?`$4FP= ,,VE"(j2 mjaQ2F @UT=HKp8^fNI3* ) > {tKx4.m/x ~;!\7n"JW_~0=y>+?UKx/-g%hH2FaDoe';6I .1*8 S'JsZ]7AQQ)sGD1dLA #='{uZFXd1Y@lFQCjQX?f_D Q!71evykkP FbX!Xub)k5jTLte*YL. ?56nYpP6M >Q2f*=fB# sDuV"0}5.`*U2MD78!a(QMu@ pMXby/LP3 1c &D@$U^Dka 1 y5!yv#`Zn9uYq[v (Y~ GPaA\{Jb6 N/T}MW!T$+<( _ a[+ZMUU={`FMh35jFdgU cS{>& ^2Cw9 !e[!oM =@KXt;seo W~0@3plPL< FDW0/@'*JD* *LP .8?|aeR_,h{%%s@e(H|+Cy,y= 2)OM"?afy[hb'U ? Z[=l/T^]_bBGsv(^6FJ|Vd{(.0P~FN6FNS D$NIYz#MNIGWN?BF'+L ~$`J,H}+[=I@_M?!ez^"e"9 xr&m3)hdqnmfH3WGG)<]gbWN !,Y+2/ m;6$@~tby; &Fa% H0WOT :02'D,3&.9w&W-LSJe%&QK7o 1%:9! 4SDJ"cLFpv rP>uoA {/2 Y 8w r@ 5q  P v zXB %kYja eg 8 HqWr,9pVi*I$b+*UmK"\;Ff?eF\P`zN"]i[=nJwXfi$X0,eKt(jb!W=fA]pC ]mF =3N&'H&Pnd-Fq1w}.o)17^U-Ti!$=XM)dE@+rC(]PybPhX@vl}L2 + +b3ljJ]v}6JUN5l!P /GZ9e}1 ," +<?("%P8y9B,%" " 1; *  <59@582 <GF@}ot$@DD<      "$%'*+,.  *%"!                                                                                                          +51 +3}bMK\!=o[<tJ3, g? L=~W_ PE^$1P'^t}pQ,-#_@h~kFL#.Y^>_ q%,./99a3IeZ<TMzwa?FD7YX u~^IZs d X r?t$ ]X +MC c0 '!NHK D %0K<-\0$UTQܖ| %>7(& ==Z $,-At]Y2m q F #t$,WGWqj",?J#QN;e8. ^m_7AcN#1 _ &"(! }$.MS ] MB(QT_= DA4@K^75 "G ܆#mMbq%/c&J߾u[ +F s6K   I8f\Q X TZ(NF3"XřcF5 -05A!ah܀ T~-J-)64޷n E*%ziVHY xX '_" J1`A=*- ܵ%37l(2 ,0QX@ $9-$oq,WL kJWBIUswUn(C&<( ڱ%sRhޮtb)4$3@lYG!",(tE$+' (NJo\,7} 6 o3L#$U%;=|;(J(?N#4C-R%_V!]$ w,+$GU&M y u9v~{ G5r%={1TP %(.'!`L 9uJ vI\ /G"G;@#/>_/Zrat-+3.kg  "~~ H[ (c:,n (B\Y 2>_- o.$%e EDa6  *?G`P ` d[CFrt0z @'?5&q+[ݗܕTYA} = N>Vsd M[aIe]zk4%8$ZKQ| v w  \ vZ|<8{" ka4(H ZdEB7 R A A  y L(llb'Go2 qeKc?9W&!OJN8^&S Ye,J qGK2 'k @} /F.;>"HO9&]); z } >#9 `4<{ < :ZHV-o ` 5}b]li*gXH ~l1 N4.h Vj9G"^(Ivd9e*}x[g@c F~~N%n?}O>\7>QMV4V!} .u.!q *Wh]&+J{FFQGHK 5Jh TUYa O 635 pD  C }.+ d}9UVSx:o 9jN  @.\ ZSbh 6TB x U \}X '|yA RDW q @#OD 4Q EC<?` fr@"0PuX*nM3nGw|6).@%_\f =Z "g(Q ]b-CS}!3c~pyxFp9~S9b] I 1\ba9;"q]C^  nQh%Bu6e(+yq@<7VWRQ,om5",!\*"]HvhSl;>\_(1rK= }TEnRBzU.t jGdQ6wJ*$zljKL [6p52C=y6|'zw}JW,Xi:RoUfLM Z@ NXCo; 8' '+Q"R=Wh6(L *2"% ( ! _H +5/3 '$ %, ,;<  '(%;.,m0oz2av,69" $92= $FBba-C/6,8'.9F9?@sMCDNo^<o pe__Nt"jYF6w5%z]??(iQpj_QZrJ'p M@^F, \q!BSD/?G,z^oBq6Aa[{X)^W epu+&PsUm  l o2z`9Y  ^  {aSK0b"+FJ`\nPtb  YG b - n~s0_F?v 1\WF7h9c'\/ 9Iw3OR O^Wssq3 :  Hd3[jS ,3FGB+X3DdI]d6PSB'skku8h ~sfP8fDQ$ s", za*[j2@F`ruTf7RP99e2s8Z3;/=~?Je ^Pi D+/-m &A}3|C* OBll\=G9kWoofB.> 9NaEVZZ^n 5=\>t5y6 wBGXn<oU&hW^[mP<dy=p9mqKY[^"/BLwLQ' B _!Pug23E%8 <|(cy'yPR.&9hpi"#~q;}bA!. [ X762!!iL02H;Jk(*]ww}Q+w[D9kB\p ;kw'a,6^{:1 U4 t#^(;uo+??k\%bqy;kYw+9s0}ys78GalQ@~MH6y2 b 7^:& Q%~GqE%nz"jZfC k@,[u2vz/D =?RL(YzYT99_ b$}b=K?><NjjX^P ?u.z JF| I3ZJ1{lNl jI TSXHS*- Fp){WyU_7C {`]X:Sgs{M7RCYgGW:&3KX'^NK2;B[Dui(?)5G^e*[t Gt@Y2`z i^,lVfk)_w&xa;H?Qqq*cZ(@CF@.?";\p(+ $?{F !#tD/Oyrj9U"`J.ko@vabF0m sA}!eHINU ;l.uSL^ |Q 5 nY*~-O,CfX>[.%!&iOA}Gflj  Xu7INu. .#jHn Z Vqq6Ls{@mF|Y/.).)!If'V) %'t ;Qd+ن $<# Zy^sbMZ Stzcp87 gtD+ A548/&^ L3MVY+5,$ >7{,1dݗ $Y("4B mn3Hޛ[ k 9$Wp c EZ}wJ{1[7.*,yF%9s1),Z8D\a> ,)$^~BuHF0  MK \z 3.4,a+HޒN/(p292/ae# C#)J*I3Ik>|/B)S(3 p W  bE-dM@-.-)" ث܅1s-2206=OQ XF() Y?Z9N yQ5M I~ wPQON),n/z'/ Ps-mf'11W! ީ"(] X{  ?JlT"AcgjCK+Q\!M*.K,Qظ۽݇bx[)5'-#ްX6KK#i"`&a=W|Bu }@ 6*VL.IkqD)#*.oTrV N1$+)"mO/ToOU! /3i" cPe )1Vs|u U&P("V!?h $-%G`#'f:#,% V;b;/HO P qzj=;j9 :9oaW H!*"$x w%J$ \, t$ocp4o -.%;DWePH8 A0x\(/EZOYF #!P | V&Ga4Z57h7:2yNoV!<\a!  *A+Q h8HG8 e\ A_l6f '5)1GR:  Tk V\FKff^  _2d4/k 4,Zd Ax(Q:( q  yb  M>kNus \M*pf_m" nviAY{)+  r5 XAmA3se } eVf? %}L #*1VWS  (cD2f! B +3 r.1\*l  > S 1Ca#q@ xD J% >p{/w Rw (/9* E5*@ Bq*  jH VH JlQ- GG*EAa ED@.iDth Q l\u]Z_mu # : 7aw9Vb0{@-\UW!?VjAQA}RQkePH A n~_e qF <@ @|V#WZ{=VOUMpxpY=3N+' Xv I~%UdJ ryy rj3K%6Q ) +  Z?f?h>JN6i<yWh:j  01NJa> 9I3M(}tw+ /*DUo1  80y|Bb4~ &P|[`p.^J vbC~i_#Aw!"4-f,Rr<03u= Z]/m[li[I>jX@&NQvTQ1zQG$vg?DS/lr` <q\k=v\? 1IT*,N|T~!y^a}2Bsn*z*Wk*9/ "p,lTUdLX$TDOFU=SiGc JI/!XG" } bb -"I0s o0oN~Rr W]__xx9@c.nWJ bz cr1$W5<b)n: @EC<KZLk_;7,##K qN='j=)T5*5;C^|W&&,bN6<S.NEHALo'Et&N${,Dla@b0D7zFb7.{f(~aN1]!.F~yo.Jj@w_.y]aIkH07r3eHiu=$z.2QHk.j0Y(2  b g|Vj`h,~cEQWL]bQ-A,\.l"j9CdE vr 1(^6K %.~BK`AZ+%u'M,lX<uV }QU j%+LyAOY w 8f$I;UKU}M{TQC7,~~n,OS 58[|K79A6z&|c5ZWs#7p7]5%. ]5<1s F\'qO>.B @2We X H:4UGP-4tZi[2_o_%' 4V/$ oVUc;#G {: buNT9zWG:~H%O=F#E%EC#t6 $J])- V "qSn5 af=xJmd[\M=#*)% cNhEF&%x<J 5)  Wke8M+F33(/%yO  %M($ sn٪VW%$n< e*f q:KV[OqO=|/A,%\#ܑ\} #% 3 &HQ4f R\G1$  {0 * S)J@7U/"P_QHJaq*p$ ^9L# 63+-d&* WtKkpQ Z vtlZh9Cn@w;iJ/,#mu$$I 8 P<O &Jp + 0gq{#Md]nB0/N^0SaHUEfn*L&8,zA"'#Yb1u }hT @yhS`nhq[DgHp;  xW( WfkAgY ]du8 ?NC_e`ckhM<GfqlA=WH Z7J+0 M 2b_Q A.>;p.Ii3I@F@HkI6OXM2~r?Nt Z>snP}_0WGbP,Tz{W_m?q"Qh)+jWUFvb]BN^_QN?hi5L%`R3'iYS ~ F1dS/B,Q~J&mc&|<XfRTuMC&>Dh+!pi!lOs! b7g)A8$Yd!r:w& hFys9gUuvN"a<+nW.Gzb]"z'2try eHtd6P*_T!v+ $9R8 {y.x62atuNC(\j p[!u_*wiy (fXeBtTtz HUn)Cy/@f?q?t@wR 5<a\Z5_M/G 9$ !i_9lw?~2%Pzn ,}'T 5]* Q ( 5?', %   !!          !!          /  9%'  . 1'%3?8FW0r$=a% Z=+?\2QZHz%!S wtj =['%(1MGPQg*[,MpLHx:+ ][LL^6 {;%37O  Js^Az{ZI(#"|A   SQ\UZ ) R mtB'c]6O>VcNr?2>q H=(&^a 8 | Ksb1 < d ; v/'*/Q#"FQ*L!J'xXTX,V x ) > ' tT#QzV_ p\1 ^J[Fmw3)9s Dy2\y]F;F66^Z+'gS>LP) B5iB].]{P-d +8owfu8~myJPE `.o T;,OXl /Y  @ydALyfk!( tR;;J5{la"WU" | 'b/xnBDMmH VlYlzjq|f$M?aTL' t EyfKE}Tv$'m Hb6#F^Ism9!Pr2{]#<cu}}k[^7~z`{bS\,LH@K?%Gh'trLW7seJd~3 <AJ6/ /7Jp3 eY2NA,(V]d o/ SLB<S%"VtVj'I]\(;o[n4!iSjJdqBfZb+j5u (T?c-$!l05BcsF{BZzx!:  3'R.; VnMeF J 2 8RYm@^  h5T"p "#cpF25LG{X T^ a=! N; BC B  7Y[+< - W vB'  6 dLJU-rJ5i{l@+y+&d0K:<5& 2Y J^sfsLo *(S{4OvZu35&)!|K vam hn ~p),9 3 % '"G5XLqR~G 0W.^k,\@J\KpMY552i(Ss"ds ]z[% )k F2 / ^-*9*4X)_v`aZ6O P{F;32(d]1\l g1 sW8i#c a];I*Z1q-_TU0nD qjn X_;'H ^jRSs[ m ohC'h*aQo:%w6^bMdM'l:-3J@QSRjVkkP+0T@kh(:gm 0Nt% $ve%Bam+= G+-!~uOK7!wBczLY.**NJ/9 @[8"Q!+0"f=[sZD9M5A$?sFN9 a{FZB (XPXb+@F8"1JTQ/ ,3('!$351  3$ %!  !+" yZn0/QDz'_ G+* I:`D)zVMM?S+%yj?_3601i?WY{\*a[UGwVJ)PLu0Fz&Z2hC$lP!6l%<?b_\2pF =uHtDwY55u%$\y;Wd_KuP Aiw<iJh9w)Wpr1EBvrq P7!D9g.J$&ob;-6Y@&HEN'j+E{I7s~x  Bck zS^5L_z0{ -4j\)]OYP6[,;zY$o{XZ: ^[!(?~01`DI{Lk~ g'&9{*g ]+$_w;< 5y=@)=|1_!x/^iQ[m~ QX TUV%V b9@TxTf|U?O <qcGZ& Frr| 56s/T(G~21K[eagwt':lC&7M+kJl 5^59'^Sp3?-qK@Me,BDCL$"=5,. '!      !%%5 52.m7|M4Q6jzFB2+nEK{?BoLbDr->PXkBs1enQf.'U !@ Ff"(eHOb%xlZ']JU:" jc!D 2"B%Y7a3eG_M 7.>JG,bf<C-e(2iUfylVh"NpmUbmbc;.!//CA>Qh.HR,F.]2!n Y ]un)5hh(uuafw;/B<9Is!z /H)dCd\* ^wouUW=_=k"@'W[ ?=htz $$|AU?5S.?UlDIAVT ef|3N9_,FC+beUNth)k)qQ%BlCyi0=3nP @X=]b  M&5 BXyF(S=MXbOb~e{ Z" )7]sd,jv6Qv0&0qU*3Y&]o"qp< [T2Jd%OSyz R 3[(f5 /x7[6ruN_1_qqZ<@mJc^:>$m0,vn i "NV* Y rYY3swIraHyA6!YPygF6pZ ]B5*c% MJge ~^ ~XKC5*LtLD I14B7,6YJ8{ %[5^FX Z d" %Tc L"UVM yQV IL1Kq;)|s!w Y  IMj2yn   z~|c_avA f6-(K/zv$\/vIk__&M|Y ^lhl, PaR  y 8h5hB L[g'*A|Ba55 !aXfoe# &{ SU9NQy<GB HDo9b.l 0`orH.Wl*$T F'w) & _ 5] n_[Js2q ,h  Z]@liHk|B7BsZ/>u"u_7/)01Vec%  % |fe.o<I"7&.T*ismv  0, Qh(+[ Z rV p0&nW,) 5  =.# 4IEud;Wj/60FlSdL2>#|B  6i92qV=5B?Z #m  BV1C0u5#J[0 8YFZmR9*s1#3P;B:2 ~ c {} IJ ^S  + >pb2 }lG^/`1Fa%9VnX,#_D[z9-M$?GH+ _ g=!8RqZ}[SA y y7huoH]e6Wn j0&91r0RZZ3cj bzQeGS0H u j9,0)H +  (KNDY)93$XGl[<|S40xD%AOo*>P?:lFIsL* sdF\qF PI_ z Ts*? jKc ?Z2Rph_ qmlQ]h+Vn(qD0d8EU;x<JK 2%F|]G?kBxF Y.(a ~ 1 QO\# N Z)]HjR%E59d_ ?2Q;Eamb: ^5 )&bO_qVO"0bt PD58@M}}: 1hQ _9 $`d^3gfls%O3m~ C'UwY>hIdW;J;=XbL=/i iZ1" 2 <fY% Ggl^Rb}]jc'YH+\\H .l&,y*[Z$KGK;Ya^89aJ@+dA4m.h|TS^WCW$uiG>lG?sP;epJ6ZZw]-wm@Q)RK\NT#x{R0Jds Wa2tCHO&}6zjA?j+C"Q+|yv*awhGk}a$  Bw;tzB[]6v'PXM;'+$zbq2dblB}sGNW1 2 L }Vu/k;4$mSeM+U(NW3]!X~76H] X.7[iFrs,w,_ysU@$}} 6fwzkD,DPQ3   $ QfnT, wfej6bk;!D]W9}hYYp 9^ooX8 'LkeP,,'!++   *!  1;12+y^rrz}M2;l(UpIJZL+16+3.BMI$+6$2.mG@m<wy@C3'BD;im.QQ=%  "*2* '"   .'~v 6.     "!    !                     @5X }@X,,]5  'N2P/%;6k1XpiM\8F=z$ IH6*Dvw*z?"Z3aW ,L|dMBG?%M_+ =CEtbp":U c$~vty3rGIQ.CS_P[ly}<Nw/MI+:jG `:.f8. idN3 ~  su+O{Hc\u</%="I.B-aPfs tD0@?EfeqV/`[6%wx\W#\~6 PYd/;&AH ',$I B8Ո . qhc_ ` ^ ~wQ[p) ,+c!D3Ф)| 3 xp0= L9KC<1+#HRڛ`  locUzg|@ 6^ n$e0,! 2#;6*E2ڝ0#SJ\4 J / tJx7Z? +'Hj *t1߅? b! g_Jxgkq  a7A_ipUE\wC$pN":  + #( w ;7d ) %?I><3EU5r3"5XBUKM,"2$(VXQT[5wLj)Q,nx;]tz[M.Qt0J>Y>wH3 :Cp[1 eblbppsd^JalzPL2/ 8Q,bMMp%h^ '1F=G]^_ZPS?  .;2* " . .9  !    $       $""" ~>BNMM} @3)J~Y+zQM%a0\6d fb$@Bl0Faa.C<H GR0}6 n2v.22P(< N BqP"$Ki[;u_oG | w}SkjS D> \L\fNcKCZUn<4q}j);EtgI!>N%;s,q/),Ps As2R^b?aADhBv%z.?yPr5-q\/J]3??$rICR1$f +$Oh02_%@h %? ;CiOg  [I,qqT~I6>Rr0#c}(J $A_#l&o; = b~m#|T$  ?92=bT ,= @A2wh   w C} u`cF`_Z*b 2!El+tk  >|qh};}S| h `/TVFt  G'm m}Z@XS*p@@"}8(1m/  kSuG}pv7 %!6!= 'm٫A UFvO )n j Wb %,xS'w!ڕDҞ3M \')az;o Y ;Gl-:., L ߻6e4)_x b-,<X,N-JU6D=Ĉ?{ B)#: ;{6:. $ :4A([4:%$&!h26_ A3cB v! &;ڮ30@B(" E荴փPB80 . 9f WPʷD !#>A5*%9:ڱɇ8 hES0 'G^\t =~.R# #xA_(& 8̦Ӊ>B/ cf :4= @ӷr0'C.%GP׋<;: i]$ 7 KT(+?wzT(A?r*!Qnbךy$B,dis]Ӝe 8uY=P@"!n'6)>!*ܺf[7"=&|Gև # 1h ) ;7'){˧;':/a/  ?/y ,= > ''d˧x(59 24ܭ0g 7"M#A0;#1%@R^F,ԪN,A &pE0g/A[ܬWe)S<5&@gxcW - +$5G Mv !@>גP!;O78{%Vttz6։/ !y80 $Q7G- n3`5 ' !K@6)'PY]TU'6*3xjfWwۥԵt% $Z?I }M S=hB+J$o}e'ekU^P[ayS[{dt"<s}bT;@#i3|2Z,%= ON ]aD$@y('lW ,tkX3DgMA  v%X/"ERM,J}+XqT<hnQPB"<n8B.Z6/s(J(f|9U"=}$+_XGbN , ,  128'. $ ( "  FD6 *P! ,P_h=Bb (A[6(v{0=KzP| ?~cP\WkUc9NO3'Ry}f=&@UI2s@G RtjI*H2WM *%T@n!k&9 @ nF1Suw{  HDx?ETB- 2 Q'l]^{Kr V N_=j7j+rLh b/ ,e+ U7 jThn=l9?\=$dRP  W  k| H}WYv$I-7 >  q{V NO 7)Em s! Q D3,* dB ,W!)gF+c | T $ "gs\{jW  Y ^/,fvJ.pm U u 2{_ k [ !{yW.(');}p^c#oH =YNj\9}D>s 0G$rOaY&d>zpfz p:a1oRTmmu$h,};2MW9M^.T T078 (!e?x. R2||y 9CZF BF1~vGs O[|,d+G[v><$MW8qKOg1C22v+` lpn;~mHSFY9U^o!5R|cE3o ph<%q?9ILTo&2qC3{Xk!oM] ^[03"Ia0N iWQTWw~NM Z{aV LYpDv}s~\!b> x?X a 0,~q{V3SShI)G^s^H@} 5,}jTcBu1}oF*L\}'m<_tzo*9 T/3z.{\oU+0F3 B}y Irp?._Ry8W}Uh ,baWQ6^(eTh$_wM'MT 7=(WU6[% \Y:s9]};F 9hk .yrc#E, ]JlZfKu.T\yBF5$be],{.WzW2QD,D.-P5 ^hm^hH} bivy :fq4 x2Z6qݖ&s"?|:uL::"9M 79)U K 3ϠޱA4!Zv =q?5J~5%8(f8~9RZ ~ $moTJXD36' &8gw  (|"wpOn :5X3%p 6ym0:L6 M /|YH4d 4/#G H؄-ږq\<QJS hZO >"25*XK 9Nvޜrz ?r#6^Zs ".&\k f f&ݺG9 . 6* 5 eo  |xD-( * K< ^ 5Jf>iT T h , ~  L O C9l zcT$@H ;p sm=l;l,W}  W7}J x#$$ &ޑmU~ @Mr ],ingP%&!('! 77݁zU COEd )=*cj7'"3'`% UDoެLpw JY <Sv6%X#$&. 4% OA?v}f=#$0' ypT۰ۚW ~vH s uCsx(%& ;*/ xh][Ps-25C$!߁JL" 0l  0?e rf~T-8 Z 5qJ] \ jDP17 ^G:OZ$D3B0zm|]w  d%m.ULv*/jve$3$f$]0@/[V8ESp/ Tl;6<("7qrm$D{pwFXS;I;=9Y Y!X5E7&kBoDv6RiZ6!5v ??}haF,p&"Bp<cM*]f|jFHJ /@8!R+XJ FH$6$q2T9y\GKz!1KJ]s99q0/Jv!WF= [B+fI.GGU@[;fw9}5 C-prF, `%@$t6M+597-Z1Z[1'eF c Rd&o NO<+!HCv*[&X|Hsf `xV5A@o|aDY7ww Yo*`#C NJ$G~}[-J=7{1q8DfzrF%IrcvWZ/)60fnjF 1ycZ&HL;=|k6<l&iNi J OM IA  G/  .44*d X 2i08p9A; 3 j J+c-4j  V 7 m XfW;Xu S UW g)89u   +a > Zo Sy'!dGs , Rkk qrY26jJ$ Q F{M   el ;6 {CqFb  _$IW6>N ;9+  gJ\ bz\J H g #r;  nSD7U 7 [/ 2~5 V8Cu( 'ihn _e mb a.yqG)J!|}2zW3ChNk~PV)F[eX `+82-~]N" B ;!])T#]CbMUA_*xc+ ENupBr;U$!P[!f5tP _c- cB&,&~$ Hq_[50^dlXyZKXPPfsxa=kT3z2'Fn[$ @Iy]mCkMa1sJ_R@ KPMEd  ,mGo%)es|h[_D&#{j>(ae'NhJ*$|TVZ8O[&Flnf(eQGUIW}7@*U |! EU+C?J!8A[vRR |P d|[2^w/U! >XHI[{ 8+[Y3+6M]"o(Tg?yU."UibTqz ?+^!h+ijWAqL1`>A:TL5x@ e?O ?5H + LI[]]Cv,_ z~U!k QI!^7pu&`!!qA!. 1hIJnA=L H!97]  /D!#p ?RKkM K2>zKbd:_/7ZH   j_ *6fC}%1  {%I/f}q D i ]uW!a1Y kzj^wQ^-K Q $5-rp F>8nH &CVNVy)d1 &&/zQ !WX} n R p@L0!u  fMQ~UMy g |l-h#)! v[?+* g>  < n_4&- wK OZ Fz h7:T7| c D$if  Y B VKVWN{C ga X ebo\LQo  % Q V LD>wZk C  'VS{Pi@wJk$J2?,bz.i,o(;K)1m$7n,K&M A@i*FMpl*dbuQa,dDJ"nBfwo~oXp~o3r*m9QwlmXI/i.kW;eDzUBz %2.2Xf.&+F%Z"v Q8? K!yi!vM@)<y!'1I P?^Y!9Bsrn!2Y9bU!'w'ziX/9 .<5%L1sT XT=\TP a v/ rGh h_F=l_e?"3M+=}pTQ= '$NYM[% on?v ,X5M.9!,2r 1jTUhI1 QF<*^;Dd< =q;SJ .Q 9r%'9$;*_ W8+2* Ya tilGv_][I/+ ,2"  {SyTLzC/ FNt+l]%[<br@Q9=NC uR|2*FyS@=_#?:,5XaVTs3>5G{?GQt'DjzM/5zkw2z72.M}?g?R!ld^ RA*"vu{D`LyMG(CO{~+a29Us#=-od!v U$ 'oZA3@$N<]e?|+GsCcf1RX;Jo{RTU^Ch{vN(MQ{NgF` p|ar*424-zvQ}HP4[R~``az}6~ 6slmgoI3cDCrX/PU9fs,OE_b35yHW^W q]k\ZDnD " ]t`nlo".s")*O|]R + 4na> 0$2z _:2 UVTDjO  &[0 5۝<5)$9B4``  6s vs z Zկ"?,q w v   P%bߢӇ/@ 7Nv;SZ #hH.mz|ϝ7 ={#g ({0" Hpg  Oy(yD( Ȋ#,9Qr RI W 3<ءSE( ,%1ϲ $6# h'K#}A/'A<"8"*EZ6za!"wVHR-'ζΕ9_;vb-H?ָ ̶)T*;"2NlMM+h ZZ/{>4T.Zo2v%- {D\[x%k߽0B%&z'$7Ć!)&+G > 0Vr9)x%,|$G' ]1  1moPu߸v7 \'(PrZ &lM3. Lu q/-. p>M"^ 0?FPbN )Pj nˇ|0/^A, ;ޒȺ5 #m^V'sUD; e90!W!)F%V.:^B $d ^ tJ7 [ /]S?V/fq q}da/6Зs/+rxМd)B%*jmMB  5~wn%2 +N'Tw(  a$ks ?ZTJ  0e$O B/vDb'M=3e ڛ,-te#5[ [ jB 7h'#V Og !3l' 2i  6_ 3bs#^fSߜ'2$uii+ oc,G' n>~|&O&"2CvZ'-H qvX9S'#d\r  >P  ClZVQ%g?C8 S nB m,[L!5 d41 Ex 1`B#PN )X vxE!@ 0G>o X86,|C(:djGg< A}AnsS '] }NDyP~T5' c y _ UbEGL{ X8^{GtM 2DCAV7  H,-!hjN`C[CVBv Lm^e=_Ys;TO$ z/ <U 7q?#VPr&R=3R3Q9] BvG {9Jj V 1h`}}y4 YF}#aMvCJrHF SOUbo,R6Wd/yb7frEAi n5Q X,*O ND)zYJ:F]>&"n{P.C%C=NBp;8j(^Y&ol^'1L ci='nrO |)S j< ;=A#qf!XL# &-wDa:w~.ag^9 "}."\R"Xzq XkR%CN gjA`P/DP*d ZkS  M \rmuxY]4'o?{%]B!|],'d!1*u{_[C(\'0f LdH ^. R%o %]b kI'OJx E!<J\. l7>5% d8 Kf%JL$pOal#Ix]N 5!fEFFx65GVbH6&aN# ut5w,)"KQ_b-R|q^_c-AL@  ys/4sO,+bbi41:M%,8OI:%)R~1u!dlOlRc^%DU`1[ * ` ^Dy?a6`@'m oun ^-wF#9C% \+  zN,;h"vf$8lף= : u?B&z6&$ ձMy  L< OWm?u. 7֝ߍ? -J ,X4);x9J4= 1 9H~'4D2t >h:ZkGH$"&- 2(( 9!(܍Q ;  &+z * qIJXZk ?IWQPW$ MX hyJ!+8Z1F1K"Da S5 _ 3G2:L"~\ym=uHm>Qne?- u: EorFr^WRXL:1H+I4?%hZv0dpC{qXoj'ZU C LGf36 fiaXbUCiL,TI "2@P?lY~29 .P/( "^~'.Qe=JQ?^is]C2 13;MNG,Q/I",22,@fJ61"M_doQ<63TfCF]='  +6?<;,.653F@, ,       !%$  J hN]T_$30JFQCW 0$o^23B=D;=G;McsepwK[p%^T q/'e" 3 1"DZ 96eFbkz9S@?"if2 U}PKG$,.S/.Z;,, $2Tsz]9woe.CmLZ?\9F e!6/++8+b@ 8PbF?qte9}|u3 hJQ$2^ bWjF A )J4V UWTaH q_Ce } |\Hn c,!Tj~lHK )f?-U 7?Pl$H?F Fm#)E&WJ3 L YVHJa)FcT} D  OHv}u?CiQzs^6 ~a-cMs*+ #~Mo.)| z?n t%e8&Ho ,Sث k-H@4k96 l\ 85+s'r:0]Bd8AYMO-u~%-j7++d&Ri  ^uX,:*m[؀>T"\ެGf,-:, tpi#}FF-[=>+\ 3 Ե2Tחa, ->*NKF  ?Զ 4*K=(AgZFIt UUZ O.3f"8A3*12 \D GB1, :+Q 5Ղl  (=(#>Fo=nD RhR( 1P l `Xq?o~$73 u ?y .xPHZ;^h2$VI%&~l,i*.ktFN b Ih 4J&Z Wwcp=(`G{!)l8]\<[eGO8 ?$8)#xd\KjO*#7RP4Nql2xdBw*8$7cw{IM&g*"N  j?o0gI5k.[8BF; DV)@HB2(>xl swyEJ JQ/0Rm(b<kj ]y0?X.*(^N,8y>JoG$Q$Li!(`t0wcY!R< 5'$6;KW:"g#D2y  LJ`L2WL6yp rDj {j L}0` $ !bI[~ z OPa-7 9z 6x|4 NU5 / !8!KEM yx%('u )%..!} '(T" GX2J%eo &s).#,N <=mXD|?CoH)?qK#g+w'f*~BU=^X# ),$ZpO\O8jbd$%-w(~ ;%gtpQ22:+s-$(@1Q-[b X lB !.,!,|C:[ . 6)%0+[2j7~_$ #es/)N1r) J9\0e^ ] K9g@-1)'j?(L  hބߟ~t/2Q'x5 OL TX:0o2&;+92" Y3t޺}8o HP۟#87C(EJ+Qky JBxڈ@&(43:.1;Dw9 (= )<$7'f~7R{.PQ;*fL3<"2N!L* 5O7# ${f9J%6=8;,0ߙo 2]}g \%ہe11c@6& 8F . Ii Yu:?@28ӋU ` Jiҭ֡5$+B7<,϶| 0.=S ذڛz6CB8L& мި 6RCM??B3xsXåтWaS &M#/:}fԱu+D>.r[Ք Dy Y` dϼ 6{DE9' Nͻ̀ 2:KG-i*Ғ!s @A3JqɮЗJsuA"6މג`/4Dl=,Tb*0 B 3Ϩ+/;C7$Mɋ,*8QCgaTb'A>L0gruԘ! `KJHD; .ۇܘc7Aw7E%aysW#E $@>i1U'ҕ5a,J(k 4 B 90( G͵. }GS-Yֹ>5? 3~HU]'H U$k."@?9)ZѤnځweCQ66[22H@TҸeOxfO!ׁ?.9A9*_tۜ/[5]~Dx fxՌЫ]6rfk#Z?7K\K ;7~Q Xx8 X Kvt gZ>/)/ \ b 4  q"c=Od9RQ fk , | G U[HJd?A 8 F 3 s4cw s' V  N K _ n,$~+s6vyA wr0 ]Xa]#;DHYvPI>o}SF--l0=z+3 U!(3N 8/GFQg d3 $n]  {O}b(~bO0e.35|+9_H,7hzCWwo[djp4Mx<$ $w`sr1e"Sj_5#j)NR;;S.9G@bE/O-AKD?m@Dh&y2"m2mPy;I=kl'uy{_M& trnlh / (U0nV Ix eesm,q`/jhB` ^ $9'ipM:qNlC_ 24E;XN Fur&I|ua {uwdEtbOhk)j(du U(v*-,oUxL 51%m!`-"1GG 0 {s Sf @lKxc"*v\ cSi e8l K = dX5OB "D'_]}|zwX 0Pkm Q ]!f{\z}f+)t'`9: e xZGSS s ? 9`k5{=i6!V+p#%0RR} ~C wR5 X GLf )A1B$#)1"' qo  h5DIqH7]!"?%j`SZY* %,0@I w67; 8{B.vr'R440t25 BEz U30]T! BqI8]( ]XXu A-R-j kBe > 1"D+ hkdq*`m:O#8(o@RH / t%2Q,fTgطہ>8 % zm1)!T,'9UG`qj dy1F E!`4OD_& ^>%Y zw WTW}UIKl8 #1 uw E! gS'K5joGQ# q%x4zG R ,_"qws m {N\9)Y + ?4?|c ]w' M  eV"h#& -&F MH[ZK-.oh.DF"M] =2nQ\F+  3wL4^ Q;[Y^m6z_~[[  :pn2CA 55 bw ;Nn)\# X&Yt 5A_az g"i b!7 ;m6fpR zq>\q2 ~ W l Nb^,m.Sv8E8y`S  @3 v67QL [ +mFL'%?   idH^VX1=YFD!Go ^ [ J%22h 1|<&F9^k#]  X pc[inT?w/  $m 4l^M j X2$k 9 J _ F+r05}YlEC U X) Q|]F> Xh " -P0 @l8t-  OI], >iBJHljIg,/ A b/;YWl)Kc$@L{2v4 1 hC"=<q2ZTPD\{QqQ sHB<4ZMHi1:*NXJ[.:$;8yvwUcZgJM~9B@rvh4Bc&!Z))>aP>* ,-ujwHZ/Z+]>u!6Q36~I^e-t,r1ep<]owt<R,^%xQ] #0=nKiu5THj\Dh'q3oVdE@[6%yeyV<f(nPMoe2@t(1-Ui>:l}\WMD+I{'1P>T p NgC__$K0uHUq3o5R}U"E1aS ^aD^(2$q3 87sh9!bfN[k%!WN5o% TGA:xcQc^J}]vq`nrJ9%8^$D[D(\% A9_/%{[BGhJKi:,jM$J|-DlD$fi1'M?F,L/(n^ 5HL@+VVI = 2}@LrA.Y@!`Q{5i+lT|v ?iT~=3*3d"T0hSFD/je}cHG9!N6;!I}Z3523{3=JXBy"2952*    '(          s6  "' L           .(          %MGm2= huisxk; ~*  L<_R-E6',/j#g j+ }!\: $ X nK!piM2  : T{j]8ao   LYJ  D{=][ O^  L+k-R + _oSBSN>(" q," 0 S 3l~5D0gu8v4-0NM/C@M=Z"vJT-'V|@D^Fh.- L  z 4C0$ ~YNz`g"r3_ 7X=Dd&RCA#2az/}4'- y bT(0(2b&?NL{kH!l]&1 uTvERODOD{Gm]jf=G v ^ x Q)#rx$a(af<*j } { )t]cwQk^-;9vpa(>u{fB hFgD]v 'B=}Y_#ZDC}[&va$d\RNt(T!UJ)d *9cIs2=)q<&!Y0My=a}cj'C;+wNUk+<Z!~Ep)8VSIbJFe?fze @di*6 X3F.3,[T6;_1Mi[b M%hH(6<s:MY=[@(p9bTJ 3n~1Dl=XI2p(F<//zL $,R,8hT}uXJMJwQ,s%s56n}[ah}d$ MQdnw_uN$,U% v"{Rdovvop~6/JsoFUvDMeQ6dyb ZPI$ 2[,d}?ze1B?Stov,"s,B IW8M.% =D+n?P"Ma/?WX BC@ L+M+9"rB81 %/.u/ r W( qP'D"ybkPD%M.G3*Gsp[%DJ.LWk| k G(QmMP qr%},aGN'z GNH$QN* _d$"_#2U-' Sl -xVXB ^ 3t55'*o(0"I1P{ urleX$;5s$< ~-5 4 ?t T KJei!v&+l<2 x4զLTz pAW2  aY0g!<9;' l u T+ \L N79)3du+<3} fތя֌J  ~ 'Yzs@.sK';3!J׳Y ,/F[c_F3&VO&b+%,7/ih o nWUA) + 7JH./1%"gvےT. AL @m L &-0t (1b) k_]No 1w!UzgU `*c- [=/+E i m2#` .  Py V/M-" -?- Y`a =3 (vJ*~Q** %M%Y= ,mPy$P=8)$) V l\i`Yv{2.<(&| oGc4-XsikWw+M($ f1ym70=zuw?"W  Rkq3Ua8% d ~8SC>0|.0=i  4{5m[E \'~[8 UD >JwA ?  s o;8c=< %/G 8j2%8Q O \i/ {  w $/M4# _ s}yC4 g ` -H8&N%<{$A T`FNgi5+b  1 / &wl :\2;"D@ 9ZK 8W*b,[B n:z;S@:MqPUeP "Jwkr]or`[?)eX.o">0'_>'1sO{"4S@G 7 d [ |6n]{IY+?BH| =+ (*=IWrI@s\ gn%z!Y%Ye(h dfY5e -3> pwfz`i  pj G r jTE7XA XhkX |`y  d=A%ju8DX| )0S =` HB ue*wS3 #$8Fz;p; e FM} ,lT'"-"%g%"i߫`5 " LwDx $uY"&p'f!xq6^c ] xZ $ "&s)-& { n;ݳsM h9geec%wjA >6C==Jet&(& <܃_ & /:4oY $#Ouk9 v*s*$ ~C{+ ~ H19 46y#+&"Nmٚ: oY] B9x-G #w#It~s$)&h!U76vG q 91f,Bg 6 # 9 9pA"(!'#~ۑ5`rS"Q$ OlO0 nj  $ f *s"b (+u% ݫW5Q I&E ;_be S  ,lii: ;'($S/ Truނ7 ] f  C ~C#''v Xܙ S!(]CS$  E )7 $<*j' ^+DOv4\,-h /] 1(8 ^$(" w-A6B WK{[A'  cja[=#$M!y4jޕ _ BW  ~ ]o8AF %F /89.=lqR @ {x.2D {e dhX-*4X|CXr( I?S zYFQ OT'2]{qj`y, Qz +p(r  (k!Q1 `) A7YJF, 8  Yhwl \ze G*A;; E  e 5Q+X U* v* ZUj+^ : @[Lqgz,a)E |%?@   [;bUl>8  zp|eY  P  $ZnMy; 0 _ j -^BY1[#~@lUw{oAibe J Qc6TX -n1'!Au:Ss LdCl;eGy}OVKwwR(-,e*l|Er!Q:LZ .$/uZGAi!c!%uInlO?s"3[NZ* 3F++6Y$gF0G0 }MYq%Q3 UF2`BK<P=3Y2;b.CNIyvjd $DmJw1xba dqJ62I<F9 ;MCf(0|M QA7~ 1q &=okeBHj>GFY.atA2G] I>8"h16(z! +m!4zr}}iE Rh'Z6C_VewXKbAJ"3/^66:jV=V@D0E:&eNUsWjvYp{)OkSd phb^E`W$Ms !+v\A'47hDas!, HJ)wrSxSwv3d"D`0gAow[a9" 3){Ov29"'&epn7Lh@B#s Uz/;;yf uw}Q3YXn|IpHBR HA,QpCo<fQtx \$nR5&%U1JsK$]6.'!(D s&2%\CXSi{wDW0p8=+t?j ~G;T8M/GUZa! Nj  ^!aNY XCY U;5:NPi5YB11G<B!J*1%uD<W?%U{evh? OQYNXgTUJ,dIa3j'u)%Bzi}GuUf$:_ZV_yZ0Qi.`"D<jG2cZ> <76Aal0b 0::+?@%fBT; T O;\zMj6&{w  Rp*P9p r? kSdz4 X g <}m p 2P\_.iwHy J a Lo =c JRp~$A0+g ^ ! #`&2,  ] 0 bez  C |RLgq ] uSlg `Dl  # Y M  xgHxk ' +*8 JNw* m5 d V ; (r ~ ZZ4g);FDd g 2 v y-S:R$ 6JC ho +3-L < Z!3MOf ) 3+ K#8"O*y)N! c > ZI} # %  w3M =J S214   kcM o`WT q  I9}E u ^zwnMi,m k NzB[V= | #2XWS  }) sK6C}2} > H d5}gYC L) "=WB+[>; ~ 9!GV O]r^# 0Q $5  *-PtFa;r 5 > ;(AkD3Q%DM*B s Z .hM7a   &1Z"#/ D$cp Q2W& p j  ]"Zx Sub h G ['XE hj  d { Y=5_ P5u;" W B5C e]g!t;r 0 &  3B3~1s)q`*[ye q%b 4|Jn!  G IUZDAm%9+ pLl8 S:Gi]or"M :R / ?^f*%]>CF FJ ? :q)E-0[K$ s  %KNXhP9>W XS  M-'{   7 9OmJ@zuB c }" y  naDgy9hR<x!sbgjkiN@. GD$s[1  4 &0T F&o&FU=g[di=VYC/0, >%nI .  r &b]*drfa/C*RbFruX* y tVGlylC_)]Ng6mooYn+ 4i M.{S Ie9'h&UUs Q% hL@xX0^9s01z! _>;H?*cM e*RQ>Is1(Dv{wL3 Lv 9SBPBsP/-Z ca*1$Xtew\yY&8w   ~ymF-M& Q!YiWe{oRG ~38P]8VDe_qnb~\ac~[]ZoLg{Z%*H+y G[]yT!b 6& \X0JAM(L+iM/}-V d7xI!$fwpL.8PTf+\$wN,U(1DPN(D@:$_}eg-8;,SZJda`E'E/l%ZCYG@:c{5TZkrQM? [a=<|< !zZ8AM3bSG/m<AR8eg*n"3!Y(Xor9ve[cy~L3T)ft20UkU]}baemIT;LWLC',6, ok;,tLoO(>$on\QtlF> 8^=D+*@MI(l&_?d;!9DM?!*,%                         1!                   codec2-1.0.1/raw/hts1.raw000066400000000000000000002734001412132000500150250ustar00rootroot00000000000000                      !plP.@L.+<' ], }Cd (1 3J@3:'SvCwm1}B+.MJv? 8Zwt*m;( +Nyp a@ .xMoY~#Ds5(+5hwFq"{"~9=) j Oq (SZ  hr md `n8{*&*lhpsJr[d. | h@P&x zm - V /ix J{ J; SIhs%xz%TqulWI ' _\Q\eu #  [Hp 2@ ]wUizbD q >v.WhZ!tYe [   9XuR7 b6 gD ( q2nYxo9 iV aH q(=.DJ<6$c T~$ &,jGz28\ P|MM]Uza?(+n@  L@5$9SHIs[tW + 8RlR'"bNjW@){o>^Trl"'WX?ham{` :ltHh/#PRK h3#kBWja7 Nb%5Q%##*x8C g\4uBH&6\~fOPA x0@%?`,R=YFt rvfHy8;] 5?j8.8( p VZyo4hi ?C0 w_vG op/  2$HxAwH]k+@'qv*VJzk8{DZ?? q/_Tj 25sjU wA Aػ۪ :h9# O"5 p&a Ml .B|*` "E`  [^f5r@j"o 1!Cp,>F`0"/1\ܝT~{Cy%>!L 'k P B#   //HtYS LxJ}$F,'Rj,6=!|&AN xZ0_+&FUz g*Em0\K]h I_Owz!6E-#P/&Ƣ3BOڱF$"t(^'v9C NVZ(lJZhI;G-/Dc \ >9~ƞN ,#  t!(/}XfJ01]"wi g3C=mSaoMB/~,,-dž^1%V:&1+~2c  `ߞ_i%I! _='  b26_(^$6//ا@ ˻q I0&,!/eqQ8m ! S Fmi0w :2{%"ߪ'Q2D43L Lhst'&YFل<=8#Y:&vmt| ^ } 6ԥ&9?P.)vV{A)\""h!a|R4E] X %xH<$#9rk G5&3f % u 9Dۓp Mf$4ic&PuB  bl-T>S, Y r9X" *p, 3Jn YQm5x%+?V~# S vYu    HYQzZ? K im5Ot"4VYZRtܶ  1e{'  1tvC-H O " x =)hS p+% T /6M *8bmNWdM_ "C wP F IODq]V $ d*Ht6~Bu)4Z,,9"$"0(/9)a g1=Q |" X] 6 rsO  |9Of\G<5 'G d 2.!ms B  # Hc Ya=q$zx  'l,(v(oI F]6q<#` M' Y?/ 0?M   \[~nH$ht,}yCF JEzNo*HZI&fhR{b U  R hz  u4+C)eu. Jj@}m#%rA|<_Mu<=Ht*p(*TK^xA@}~z6h2l& < Dx|%aU5vv,Q*  !vy ;]gi ;lj94*n6J;kHuJJc c!.'vG%G oP i\+RQTIhpp]0*F,ruu~D;9X3vHoQbGBBvFC>]ufor{ZaC Z[&oS.0Zk1dL>?Sr:%cK?=HH/H=~y0dCO7 ! ZLd U W$,T3@1 O)*ub\fW]D> ZOj0/p~gSAZk55V4rl7.m@d+W=1Q49uw-#%%:-;]<y{c~Y.N+*aFwFy$WgH;( 'F=8Kj!KTQ"j 2% y>EQus5 RoN3}?WF ,M $ & Lx MwBqlp8,>iPKj76/KDJj   XM Hj}%5[S K e j{oJcfaGD5  e h h k)_ (`7>Y ) 4Vqnik 6 1 nf: &r RYg{ &*k*lm  7u%~*LXj;dD^7=s! p5  MH[a j " W2NR ' }s y S}oS$MK_29 b |oy@rt o /tG4  dc|@ݫgb{G9# } B`65Hs p  6 "  {n Sd :kV  /eY u{]%5 Yz:2RQ V I H ![,sg$W2W q ~ d7 $(Kacso i  aHA.5@ ,dZI Z 8s4D2|WzZ}*uCju6EY ! } ^g >(L&;[rkd3q[ "D^ fM_ LO~M$&a.o8M:Xz3B*2Lk|nL~%KMUbN,=M=D)/w Tr]dT!(+*zm5 $Q,_s<yao,kond, ,CD*}sa[h CkuL$ (+5;1" ~z,;</(   *9DB=3,  %$     "  @}!v%SC\97$[Rlm :&}NI>@PSV7s<_*lPCGnZ{k -]t3~6<FY%~_[3H6, [Xu8 d?yhfoGQ bX}$ Z+)b(b<8*fGx$'J,De?_e&{4?EzYh[=l_*|- *4.B4\t3| Rc;c4x|LB:"L%jCo?3h%#D-s`@Gl#4>.SZv^Ul6(|ljs1;^-!Z cK_6MQ,uFUH@FQZKNJ"]luf2y\TI0o ]]y9U#:7zZ|&k]OzLg.*waMcx$5M9H5'}+O>GL=/  2 [,~[Y(4s;3>$NB2*D& 3[ ; ;E N0f;h  w<iB$@~v9Vk,KyW 2aY"$$m+Bޞ {P ^Mf8Y/_bdTf5f+Cch>;?7+?2-S ;G<z    $MZ,wt65H Xʱޑ)DR2W8K$߀Qȵ"pB !(?ZFt]d be) s.b0GKc!v2%;.)_pdVՐد =#D(49u3orD7HdJ2IBa $6~ P[ 0;[6r7(L"" 8w״Q [(j"@\?1Z$`T@ c%3 |r)wl  |#</ky "y2)8 'ӫS!VJ~XnI }j $!V %\H>  W%p3# '!] FK{Da .t7c! _ GP2d4L!*K)Y,A#wd oI5D#ZO4  &lU% & GF,X&/,X!qaR3PMUnfG7FCSY7i?$5r  2fSa/\n!,GHYCET([z/PGeNw. 7 7ESsUC7Mp /bk<iTT\v'=MM5(8JT[= jF[ T^ZG.6@1,"{YMYsW[hGAPv5Fin_F  '2,3..@?;;!('+!  6 }.'Z. G:.Mfak^BS' 8G!!(    ,.$   (      zN >6}!8$PYF;f xmbJnnSc9qAhdOB[u9%P3M ,,{G |S!CHV%TbYHA<>,z # vSQ.]=XZl5(8PB!]JhxX&TLKpRa[=FEY;xv"s'z=a~`;^"qs9a(w p6iM++ ( =X*I'(    %             "  $ yP[_k8GpW@:K};=QkiIP9/5 + p@U@6T.*~szISM9M &0 f}'[M$'*LqI; $3t ;45d G-pe~PxF V y IdhGD45g.b./y8:/Tv Xw:5M  ! v>jR4xx= xi 4w*Y T .%xLYWT $C!WZ,'X10m')s~|NK ~&(N&z,_ ] ? "9 tWA l q  TBNn 6",0VI "P@)Nku 5  _~.SJ N h F `>'bHIB\3wjFM 0 G n  w]#HL  Zth  fJv<Pr}A  kq_C'[*(fV&6x EQlNEJ0}3   8V s `!hR]azV~ + u![\dl+qd~'CSoY;g   @}jHe"T4Ej foOM#Dp a={ GM(F H& r7X6e#-Ji4?o=+q\Af xp|xc1Hd{8*'e\Ns[ACl@N3wEj/$*9"A^#_Y:N5B15EimY:!.i@%}*=[<,1 l? "Ri!CC?L'}C"[U88(iP!'bsZvvysQGniIUfMoR6 :^z 'FrvpZQF1vTfQS[/@! DD3eZw<;k*}XC"5PmPse<vmM8M%96M "kF2+ee^UYzhchq$1Nk]%sWU_: (=G_{vs"MsZJ1sv~vty $<^r; 6rCv< /=KPh2TzhD. {v*Fdu3iDCeS[({W5)7MR[myq}8hk[PD3~wmq '@P^rupfUD/bXa~T|_%lURMUilz.^|lfdN<,GS9' 1FC5+2C@8(+<CI;*} $/258BB=@?/31222'  ""           },:QFyYu#}iJh98NR.p+6bYMnq/I)X7fb<KetzZ&sGh"jS)b-h(KHslY?,4RWU#/LJqNy_3z?:ouk; q^wLFG9\RWr-m'1LDR 9#w-QZNIToeMMX6dNro9*v4Y&q_ 2w$U>.Eb0S=UnNvwOFWu=X&XF0b E0dBBkpOFQ7n9}*ZBy+x&2V!L*2cb]5pya| h8G@~p|Sr(H7j4E3+Rk @ K s , =_TrA(V\9.PSq}SwJTC$.*Lj"e   4N]+,|_8 | YwE)Ni 3*^ޤo&!)P frc\3dyO|] sc9:5 \TQ08a7i#GMX+z A%=0-xm@XS L29^5, s9 iUf B4 jWD(A9a]E H&VPk@- d;tD2*SaT?  )"D [q  p >Q^  Jx0Hxtb&Z05 nk4xՎDJS1:E%s(U"M:50FS%lHA 31^K%$  (&.:>c> Y^23jqB4Od>*g z`0ٞߘY6;.(lpRw&B m9'Bz iVz<w|fV9eZl&ݍڙ(!L.B-(ج2O|I5u@_,$."y2] -(0aqgI 8o8\ P3iq,"NI2؂ AL8-%}^(C9Zgz)^+.%,@Qag r$ }w u8+ ^<3..J?-Q=^_:[>)* ݿ1 #.B$!pL%#:i9 GK-\l ! zyzHwcDru_!܁6K=(e`Ф %"X67P$xyx \0&FGHp#w`k^&JT_wv {ToQlUUQxlՉ$(G=)3 CYio #*fMu <TY{GJ# f,t]FF`U60  |= .@O4-9-^  kJ/=ZH : X .sq  V!`LhziTUFnE[d$ oߴbfd&tYsG C *UF HBZRNqhx3$Ou9cDr5}J:f);W (UG h &[-L0}vwW-nw;O~z7^Fo|01e^Fn]Lunp] d_ }V?-ps7WNtW4dP?_Y>;|hBkc+S`;,y[ \olN){Wrdxo!\@[ ALCJ@RDd*=ake?:/* Obf;$M9QzN`Yc@\p,60^ @ LB\8p{{;D9H:>(X5J(3f] lxDIAuL#Y n&-dM@7A*n]I@68[w|*]S &7r U !<  '9 %zx 6 vLf3 m!]: Pu*<2-hYc# kX 9 ld  l  ]8UNU=0B LNU>tx:N|9mh]*en2swID,|i[^3bn'B +/;!pp!8 }(*/"'!  i?e|U'@0rbpJ       W0har!K?F^z/0BTHFh+#.p9 ]\loQ6bI55d}(w2*qrX[[[ ~P =)b{)U uW Z|Gz :g7& o I _dKnTH ,'+J~u$(P[EC,{W Id "` =C4;d h [r sZ5pA_ 3  k +cx \N 5YP$^O_7F8p+8Pf B0 KNpnG_tS "6 4CzlCf$ iKTz~,VO[%94vD:*7UNRM3QR~ q' v G }{2@YB6Xu 1  * W Fh2^wHls v~Ljn`~}LuMc1+q~Miz]1>qi?BVQ95u(3 Eku. !pU l nY/29D@qm &U.b F|NSfL' ~l[yG-n] :m#D4&36Ah " {6&i8)9/w)D/dFqiUIqD"Y=3gf6Vh[\4#)yDZj+\AFf+7925^A ;W4}X(+.H^J]&-4SJiNQlWj ]a A5;X:>&4?v<[ns_GT?Jba6S W=_(o -; '&Ix2<;n*:BZ[-&txX^zF7J=Yp<FSzJ ti^3mC0FvZoBl9N^9Rz@"g#M<tT,_[_5bk{.?'@;JMTXxQd k)S4, v! ]ln,f+ 993a.5Qdzk2~}it~j%FSePNP5@6 z.=JF2%=Qnh9j12|XJf  blZM}qhI*`s%cM q+%BwM7,R12|v"gV^"MKT+ }X p<k,HC7 RyYep0y7-w@w?{Kc&Lpav,lI}l_X\ +s,J()),X;ngd:,4oI#JOw:q]:*FG.~% fj  f'vLM"{4 =5uz-IR3,}%Ln!qm:,^V$XdW[U^c qL{8XgC@2-EJ g$GO!+L'f;`69&y=[b2&b|0 (+<-~lV{)z&4R%F^;$XvJb{A}x2WmCB98yf22t~_FpIBK$ /*[6-aMn{t[92*ky61. F#b~2K yb)>Ldp$,hm,vjpUo"UX }A>s0[Jy</A5F W\_ mHN.w*7UA*D:%D$$J [F. .u'"-Zzcm-J0Fn ojiI)<[m,^,s*G#C*>bT6 2:jLdEEsC=+s|:`{NZIYN[jeLR|gIp%$grv0 Dql@W"; k("b5 {3 X<^'wUQuW M4sD7 ]Z*FD>RBboa[ 20[P .%V/6GC2C6/T}'  W9)>i"WU[, 15  _fqzMf+!0 dI<B/}<B'ao vB[ fM2 *J "Z?6!' !                                                                     ! %       !"        "     ! tN[lM/\Yl. Q C0rj.$A-eecIv6fm},5$<o?}C$$ @ fB>z!KP -  e 8u_n@O!P@h*bPA>f>oBD #05_rG 01bx%  QjO 4$ 9LH! r  \T?>!yp,.k7]8 )I [  ,d sG Ic+aQU j R`:GY]] 1>bKh,h; XGI\;'+ w ׷kA6Z ,w<[ > } 6 gh_1-_P\i,9i5/ ;( cA DQwZsW 8t UW a%EU1lF^XF?IE% yjF"jjLG(Ww(c wNI 3y>P4R)X 8V:qQ`K 7% yV&B!D2}~jyT3@66=-s Xwa-0S$xaZd.+,o,@P>6\x}c'WIlH^ /F uwjz2*SW@q bfHr*r.ZFSC 5 n_j'!?R2t^Aqf,FwXVF& S0$(zVB  L+o B1OKOeN h>PB\"Mhr {fW_`=-Vx<:q"Dor} t!Zi > cR(8JAiq()k}E~ (tH v-:vpMAD2"8Ho:}7QR*w3 Lmy #;p: 0B(WR ,[+ID3Ml4`0#6 @8n}# C & MCq #N E .!PJf:'s=pH* {'[zP 6Ejz0RKm& YiIE( o sw$zjyGq u<HAW cWm{ E,jhwjs : g (TL?.Ske8 :n6%%o% no +%M2TzDBS^<L*"7@P@B\|I tCj $ 5TJH S  y&<י;*+& .(%5X$H QKv +,/ Gqb8*dZ 0  ! )=2!c}iOS 5  r#17 VR#$?!?*߈/2Ey&')` D JSONVA lX kY%m4< @ !k K+0;W& buR~" MU {   `DB;BE k EF ^.$a#*l>7߮u=FGq ~w {P!A+*!nsGU2  "'f. $ o `Aכ "CH>9=w(tH\ WL'R'V%q cu\ 7_EC4A #`v H L  <K 2K:bH#zsz<+!fYRqv h k\<}~uBh~ T  = {lU1nYC2/- Ob ;S/2^ '01wdWTt k5DJ*w C I4CE?+a` f [" 2w9O)3B 5, n"1\-9)HH aJ;l-N .A Cb5(O a y J NrACL).[ }l9K[<\T) n @m E tt}K)FOw[h;cWbQ{9fP0kn!Q$  HMc`j 2  x lXz$TdkmFU} Y-9CWxfjfBdNWLEA' \ < Z? hc@jXZ, ~ wmj.>,&aQ,W 7"p[WSql  l U[ypONoT6RJO22\ t2G*|Inu ! R=#awVnOuAx0G<mKt LJ] =#ajO Ez 8o(1amJG |x1X&S+1"t*nX) 4\OX1Ea'F j BI#PZ!MfmINPdln5-["iz+[jHDE]Z3CGG_!B .; [6(crlf z@?Zz[LmY]& 2` PILRA]U (_`s *hT}c>;`JJo>3" g;4l [XZKv\C$nF s - +I Q~>/k6.wZo%  RQA& ,z2|MNLl@rZO].SUS6v[  j S*9OugK _ - <"h5w4"O 6 MY&VgsMd[l^=  =!#2 }yU }AP/CXf ~9>Ocf $ 6xijD;IhB*OfP]B1@F  hPT<rMi 9cl !^ cR.s|L:  k{=!A ,F>H^N%}+3FOg i=> T L()Os + ]& 9`4,~FQ #C[v;&Mk0$k[nVmugZ7%^D)#jY/ 7OF4[AZ53QZ@;_u,sWBJ?|<(|#m C -o&/t,tNC^*}vGv6we$W?21 (w8l1/hw*wud2X(=Z nU;!f{$uRnBtX+OS"z*t3knk@Br_6 qcFVRbOC,4'\ R `yH0k/= T,jel)!)1QY=;9^ JwN5 r {T]0~{pxg 5f?pm@ Q Wg( >o!o=xdu<@ D]$ryU(aJ?o,4H!5Nvp)Imo""Av6=#5a{=UPCtb3o_ai{h8*^MWfDYjy3H:Te//'gJZy_M$PYUXG3gyF*?iJWa~a+y] ,T^.Lj:C5+'y@ $:bUqM5[:&\:{VGUih<50UGcNT!{Uh{2FT,  3"ZF3<?BsQ==Rl":*u$yN *5kX1X"fjmhlPbc8vuUZ;+6SMTBe[W&73djg7o< % n0@7$ w/f|"UpC$dviSSD+v 2Qpim&/c9q& 5 YR6*kn59`G  ^ #9,Y8P3Nt5*S[}i&8$y=PT pmzw 9% a  %3"gd,= ~6S} [P;1h5  "!Wa)2# !! Cw4D_ 6  jFS(>27Q}nAm9L>| x,#+->%){  i m S' k:ۺ\ yh L<i,!}  2cr gJWni(4R  C y9|CD2=:s/e9Dx;Ft El$,/X(iXMW%! HA 7o0U8m!$r  hB%py  v (x 2Vs<#8? Dl9)4̉ -s*R0*+W hӵ x4&'&l`ig_ % &puFr= { 0~ VH1*2Dy=-l̡.v &  % *q!U z.#//%y A|ޱf)_,A"ZZk=x)ge p ;3o ~zc^#ABC2.Z H['l*. dIR%ˆY ",A'}3 uثهDA)h)J \BL >xMjMv z?0(K C0Ʒ|ީ}F .1)WY 8#!B L4x $\+$*[ITgjc[  ^bHH  &Yժ+VKbF3]O $834(G̃Ģ̳iI*32 d[F?ma'% 7 ],Nv S {ԕAJ.ID266̩߽[2(E5Y2z"$L+.DbZ%:g =$]*O)bF  Fh6T3 ^wfO:JM ?XK  Ms8nC2p sGBF(1|lҷ&xS/N6:-96 J<"K~m bZQ blffE% f odhl@YBNTQ0ԝKTD|J55[WđPPv2:0yxԢة~ y!'$;ڀ"`(D>%8: bjs85Gш+#LI[H/HTxhwY!,;i9u) E6QO*A'+}O;|ց 8 k*6em1,1 K _g eb-=cK: g؁4ؚ $5=O- ^7/I2& - z|R/>J 4q> ,pWWD2t *տAJ7IHE*D"=D; "3i`i*i $.F%NI$Jz9?z3 EJH090+fԹ 0eFC-. "L(sիr"7);**x9i)M "Y," NwX ; @6+# pn%Z,:{+@FC0) O ef) !&744\!R}76l#f1n%&VdoAY5<%EX_i0N@B2M Cڕ =.F(t x-9RXt ZZ    n8 .;PGq.N*3Z$BTF=:+Wmq×Q| f wjHb_ 8hWT!3 u%T^yL91M8!/h8)  ;KJˠ{.7j!#~K"y4cXT  ,O  o WHnn){(`F>9oBiHS_v ^0- BW xʽאw! (l ~cMXv_ 2)coCP C5 Z=  1C~}x35 28$j} dX Sُ2I!%tj&!0k^ # vhe s < &2$ iV  g^4 V%&'7!3cBMי X +$zt3p b/PS  vsU1 <-8(KaJ}  DxV^  7*y& ޗϡ`aD?w"#1n_Y,KqxCG \ L !IxE][m$`}) ݷV\0pefpZ`qV\ln  h O q?Dt~Z>7w -v^tT-  Z U /K!  p pzL"]5Mjupf|[?}dkWlJlnNsw&v{<s#j, Sdu /i3A@y.; T%W ?s'bqX,MxV+=t)5X!ph%QjlR2neDobmWv@(CY+nZ1 2w [sYI9 0`4F)JpUKlj ' '*UO=wC){QIB}GvBu5h~"u5~J+5]o!b CiRb$ _D]( @nl6&Ee./;xt&jzaQ`X]$abT.=[f!mQAdFO6 w ^k^[tsF  q8bNL\uE L6`[!!t9(3$I@8"?03 U s )  \RcWeuh;4=j?-<P ZM&l^2S1uTwSMZhUu/ZNl] C J:Z;&jz  4 r60;Pn*|' D'yMgj  yp9;;Z - q 0jl).\wV_ ['{VC > M "Ssb`9(y(" WqLlb:P]5gc$ 8 $\ xE mmCO q t NX~Attn"]l Y>^L{Eci qS^!r | q @bz cJ@M]1ip&? &dlr[z  8t!:QMIL"% 3&2  qo&#%x*+ * ' Hy ,,r2|]]D68_p.-Z^Q w`sjR xfYIw {wy4}vZIu3$@_(* 9kJ 7Xw|H;Xs1Fy^52YlJ,%3dF}sIbC )p Ivb4D|3" Oj@fyh4+.-9M}^_[l>-N zL<q ?70'e-__ hJNo2POYjb$uQ=5&_eo=. ^Zy r<.ksWD%%!fy1#(W+i~=Pad[eN, 9*%6U1|{p%K,(2RUy1 ''   $,28* !''         !*$  $P3]4t< Mb4_g>9DX }^ > pef?P! 8iL0qhfk( EVX*c(k } hR0 y 0 ^M'H7|, =OI O(ZIOS"VWs BZ(gbAj?>+KJt9nJ+noO2dz_FKZ`Y~=eK5!k {#m"!8{ 2C ~ %"{[ B8oY 9"II W$A|S}_ =" -0>|Bl)_ 54}D`l`xGLjw xR0CWSi* ; ]<)d`mv-EAl5zi Q7nKC[C(LorA=uN^n9;=?v/FHK-R .8;].Obq?3iBj3Hap78_ d : F&N[9N@) wF 0* p@q# 6 J@*g?)gx @  Kg<b Lo+wrJ[YT)(S,92; l !e $mh y^M o( x$AfPYAN"OUP 0[} uu% Ro kU'u7\ QwJu"`1d, @Lka!;7ߖ 6-"d+VJ;&ymht D} yp^Tox4oM T-:$o C #_ m xwCWpM=3 $vfYA\ig O+shG o+CA~e ERNevX+ o  n  d^~3nDy.&) ~m %0  -ef. q1 rWm@  > ZIU7{[;$ @HgG`  y 1l <^gX Y3 k )v .kjmo < G Pd3jH % Ix%a#cdv_Z%    z2F_!/of'd G>Ej]3~f U   }&KJ^@L `b  * > AViA"ju }LV&X 9~^{ tWA #|O$ "RPL!bbp%b9=)3oy~SS(b{+s'y9zpiH:1 , ",{{8VqUP$,S$2NFv}oF+bi2Pbw$+Nva/*BI2qZz 0GhYsSJ(N e/2 YhqP"6A:9Q,   8IWdkvb*ZDr :+fsY^Kl /vsUeylyyZ/+DhnN5+3%vJDMC307Tp!.FPFF/   %wDIiac=MlvhT2 w/424/Pj/hcGa,}   ?A,bN' yr<qP1yc_{Q 55d8 pn /Nwyh}= D'y6f]RmRjb k2{S #3^0:29lXcQ^hqD.HGK>.S7lFGNF3%0twd:R+||~$-. !eF[1Pno8 ;$B@1bX11IHyJ<J$`v@1\g(?Ofo)Hv@z0syJnqU]|L5a[JJQFfg]?`R*A]ScSM,0uJQ[r_,vLpPI$T6 eOO 2+*qhUZMT>)Qo=90t3 MA < G~|@h3RbR! a-ltOb+j!L6"6  ?_Xe5 S-sQ &  M{sCuG `5-^Qz@ O M[AP o' x D)n GJ vMt&0N>S![ 1)#g3 .JO l3 ?eGZ8\*M F  B]vTnnX+L[2-} a*L&$ι/ ry('*, <H;#U  ?V   >@}73] &0b0q p-5},v5.aLF]ҺA7y i 3$^x1 "1@% $ r{" xJ+NdIZ(/)YH2A5ld q 2:%^ު ?   f nP|rW 3  gQP]>j oz++2),)  kTM,l~  D C */Vw  DJ sJTpj!/\6,9Ql_+.^l2/i"yB7Yj^|/' p^.=?<v ^8(lXU%VU@ D6@es7YqjQ.U$H6=]i9{! !*+///'$ z s U3,+m,1L 5;+ifDbXf lK$ ")f JnoS zieXXiWPiN^yz $<BMZeU_Z<<* "  ].{ $  , =   6*    (%SdUT!Zv[C]M!z' F(?* !.  5C"+3+$FUJ.'!  %                  '"%""                                                          codec2-1.0.1/raw/hts1a.raw000066400000000000000000001356001412132000500151650ustar00rootroot00000000000000                      !plP.@L.+<' ], }Cd (1 3J@3:'SvCwm1}B+.MJv? 8Zwt*m;( +Nyp a@ .xMoY~#Ds5(+5hwFq"{"~9=) j Oq (SZ  hr md `n8{*&*lhpsJr[d. | h@P&x zm - V /ix J{ J; SIhs%xz%TqulWI ' _\Q\eu #  [Hp 2@ ]wUizbD q >v.WhZ!tYe [   9XuR7 b6 gD ( q2nYxo9 iV aH q(=.DJ<6$c T~$ &,jGz28\ P|MM]Uza?(+n@  L@5$9SHIs[tW + 8RlR'"bNjW@){o>^Trl"'WX?ham{` :ltHh/#PRK h3#kBWja7 Nb%5Q%##*x8C g\4uBH&6\~fOPA x0@%?`,R=YFt rvfHy8;] 5?j8.8( p VZyo4hi ?C0 w_vG op/  2$HxAwH]k+@'qv*VJzk8{DZ?? q/_Tj 25sjU wA Aػ۪ :h9# O"5 p&a Ml .B|*` "E`  [^f5r@j"o 1!Cp,>F`0"/1\ܝT~{Cy%>!L 'k P B#   //HtYS LxJ}$F,'Rj,6=!|&AN xZ0_+&FUz g*Em0\K]h I_Owz!6E-#P/&Ƣ3BOڱF$"t(^'v9C NVZ(lJZhI;G-/Dc \ >9~ƞN ,#  t!(/}XfJ01]"wi g3C=mSaoMB/~,,-dž^1%V:&1+~2c  `ߞ_i%I! _='  b26_(^$6//ا@ ˻q I0&,!/eqQ8m ! S Fmi0w :2{%"ߪ'Q2D43L Lhst'&YFل<=8#Y:&vmt| ^ } 6ԥ&9?P.)vV{A)\""h!a|R4E] X %xH<$#9rk G5&3f % u 9Dۓp Mf$4ic&PuB  bl-T>S, Y r9X" *p, 3Jn YQm5x%+?V~# S vYu    HYQzZ? K im5Ot"4VYZRtܶ  1e{'  1tvC-H O " x =)hS p+% T /6M *8bmNWdM_ "C wP F IODq]V $ d*Ht6~Bu)4Z,,9"$"0(/9)a g1=Q |" X] 6 rsO  |9Of\G<5 'G d 2.!ms B  # Hc Ya=q$zx  'l,(v(oI F]6q<#` M' Y?/ 0?M   \[~nH$ht,}yCF JEzNo*HZI&fhR{b U  R hz  u4+C)eu. Jj@}m#%rA|<_Mu<=Ht*p(*TK^xA@}~z6h2l& < Dx|%aU5vv,Q*  !vy ;]gi ;lj94*n6J;kHuJJc c!.'vG%G oP i\+RQTIhpp]0*F,ruu~D;9X3vHoQbGBBvFC>]ufor{ZaC Z[&oS.0Zk1dL>?Sr:%cK?=HH/H=~y0dCO7 ! ZLd U W$,T3@1 O)*ub\fW]D> ZOj0/p~gSAZk55V4rl7.m@d+W=1Q49uw-#%%:-;]<y{c~Y.N+*aFwFy$WgH;( 'F=8Kj!KTQ"j 2% y>EQus5 RoN3}?WF ,M $ & Lx MwBqlp8,>iPKj76/KDJj   XM Hj}%5[S K e j{oJcfaGD5  e h h k)_ (`7>Y ) 4Vqnik 6 1 nf: &r RYg{ &*k*lm  7u%~*LXj;dD^7=s! p5  MH[a j " W2NR ' }s y S}oS$MK_29 b |oy@rt o /tG4  dc|@ݫgb{G9# } B`65Hs p  6 "  {n Sd :kV  /eY u{]%5 Yz:2RQ V I H ![,sg$W2W q ~ d7 $(Kacso i  aHA.5@ ,dZI Z 8s4D2|WzZ}*uCju6EY ! } ^g >(L&;[rkd3q[ "D^ fM_ LO~M$&a.o8M:Xz3B*2Lk|nL~%KMUbN,=M=D)/w Tr]dT!(+*zm5 $Q,_s<yao,kond, ,CD*}sa[h CkuL$ (+5;1" ~z,;</(   *9DB=3,  %$     "  @}!v%SC\97$[Rlm :&}NI>@PSV7s<_*lPCGnZ{k -]t3~6<FY%~_[3H6, [Xu8 d?yhfoGQ bX}$ Z+)b(b<8*fGx$'J,De?_e&{4?EzYh[=l_*|- *4.B4\t3| Rc;c4x|LB:"L%jCo?3h%#D-s`@Gl#4>.SZv^Ul6(|ljs1;^-!Z cK_6MQ,uFUH@FQZKNJ"]luf2y\TI0o ]]y9U#:7zZ|&k]OzLg.*waMcx$5M9H5'}+O>GL=/  2 [,~[Y(4s;3>$NB2*D& 3[ ; ;E N0f;h  w<iB$@~v9Vk,KyW 2aY"$$m+Bޞ {P ^Mf8Y/_bdTf5f+Cch>;?7+?2-S ;G<z    $MZ,wt65H Xʱޑ)DR2W8K$߀Qȵ"pB !(?ZFt]d be) s.b0GKc!v2%;.)_pdVՐد =#D(49u3orD7HdJ2IBa $6~ P[ 0;[6r7(L"" 8w״Q [(j"@\?1Z$`T@ c%3 |r)wl  |#</ky "y2)8 'ӫS!VJ~XnI }j $!V %\H>  W%p3# '!] FK{Da .t7c! _ GP2d4L!*K)Y,A#wd oI5D#ZO4  &lU% & GF,X&/,X!qaR3PMUnfG7FCSY7i?$5r  2fSa/\n!,GHYCET([z/PGeNw. 7 7ESsUC7Mp /bk<iTT\v'=MM5(8JT[= jF[ T^ZG.6@1,"{YMYsW[hGAPv5Fin_F  '2,3..@?;;!('+!  6 }.'Z. G:.Mfak^BS' 8G!!(    ,.$   (      zN >6}!8$PYF;f xmbJnnSc9qAhdOB[u9%P3M ,,{G |S!CHV%TbYHA<>,z # vSQ.]=XZl5(8PB!]JhxX&TLKpRa[=FEY;xv"s'z=a~`;^"qs9a(w p6iM++ ( =X*I'(    %             "  $ yP[_k8GpW@:K};=QkiIP9/5 + p@U@6T.*~szISM9M &0 f}'[M$'*LqI; $3t ;45d G-pe~PxF V y IdhGD45g.b./y8:/Tv Xw:5M  ! v>jR4xx= xi 4w*Y T .%xLYWT $C!WZ,'X10m')s~|NK ~&(N&z,_ ] ? "9 tWA l q  TBNn 6",0VI "P@)Nku 5  _~.SJ N h F `>'bHIB\3wjFM 0 G n  w]#HL  Zth  fJv<Pr}A  kq_C'[*(fV&6x EQlNEJ0}3   8V s `!hR]azV~ + u![\dl+qd~'CSoY;g   @}jHe"T4Ej foOM#Dp a={ GM(F H& r7X6e#-Ji4?o=+q\Af xp|xc1Hd{8*'e\Ns[ACl@N3wEj/$*9"A^#_Y:N5B15EimY:!.i@%}*=[<,1 l? "Ri!CC?L'}C"[U88(iP!'bsZvvysQGniIUfMoR6 :^z 'FrvpZQF1vTfQS[/@! DD3eZw<;k*}XC"5PmPse<vmM8M%96M "kF2+ee^UYzhchq$1Nk]%sWU_: (=G_{vs"MsZJ1sv~vty $<^r; 6rCv< /=KPh2TzhD. {v*Fdu3iDCeS[({W5)7MR[myq}8hk[PD3~wmq '@P^rupfUD/bXa~T|_%lURMUilz.^|lfdN<,GS9' 1FC5+2C@8(+<CI;*} $/258BB=@?/31222'  ""           },:QFyYu#}iJh98NR.p+6bYMnq/I)X7fb<KetzZ&sGh"jS)b-h(KHslY?,4RWU#/LJqNy_3z?:ouk; q^wLFG9\RWr-m'1LDR 9#w-QZNIToeMMX6dNro9*v4Y&q_ 2w$U>.Eb0S=UnNvwOFWu=X&XF0b E0dBBkpOFQ7n9}*ZBy+x&2V!L*2cb]5pya| h8G@~p|Sr(H7j4E3+Rk @ K s , =_TrA(V\9.PSq}SwJTC$.*Lj"e   4N]+,|_8 | YwE)Ni 3*^ޤo&!)P frc\3dyO|] sc9:5 \TQ08a7i#GMX+z A%=0-xm@XS L29^5, s9 iUf B4 jWD(A9a]E H&VPk@- d;tD2*SaT?  )"D [q  p >Q^  Jx0Hxtb&Z05 nk4xՎDJS1:E%s(U"M:50FS%lHA 31^K%$  (&.:>c> Y^23jqB4Od>*g z`0ٞߘY6;.(lpRw&B m9'Bz iVz<w|fV9eZl&ݍڙ(!L.B-(ج2O|I5u@_,$."y2] -(0aqgI 8o8\ P3iq,"NI2؂ AL8-%}^(C9Zgz)^+.%,@Qag r$ }w u8+ ^<3..J?-Q=^_:[>)* ݿ1 #.B$!pL%#:i9 GK-\l ! zyzHwcDru_!܁6K=(e`Ф %"X67P$xyx \0&FGHp#w`k^&JT_wv {ToQlUUQxlՉ$(G=)3 CYio #*fMu <TY{GJ# f,t]FF`U60  |= .@O4-9-^  kJ/=ZH : X .sq  V!`LhziTUFnE[d$ oߴbfd&tYsG C *UF HBZRNqhx3$Ou9cDr5}J:f);W (UG h &[-L0}vwW-nw;O~z7^Fo|01e^Fn]Lunp] d_ }V?-ps7WNtW4dP?_Y>;|hBkc+S`;,y[ \olN){Wrdxo!\@[ ALCJ@RDd*=ake?:/* Obf;$M9QzN`Yc@\p,60^ @ LB\8p{{;D9H:>(X5J(3f] lxDIAuL#Y n&-dM@7A*n]I@68[w|*]S &7r U !<  '9 %zx 6 vLf3 m!]: Pu*<2-hYc# kX 9 ld  l  ]8UNU=0B LNU>tx:N|9mh]*en2swID,|i[^3bn'B +/;!pp!8 }(*/"'!  i?e|U'@0rbpJ       W0har!K?F^z/0BTHFh+#.p9 ]\loQ6bI55d}(w2*qrX[[[ ~P =)b{)U uW Z|Gz :g7& o I _dKnTH ,'+J~u$(P[EC,{W Id "` =C4;d h [r sZ5pA_ 3  k +cx \N 5YP$^O_7F8p+8Pf B0 KNpnG_tS "6 4CzlCf$ iKTz~,VO[%94vD:*7UNRM3QR~ q' v G }{2@YB6Xu 1  * W Fh2^wHls v~Ljn`~}LuMc1+q~Miz]1>qi?BVQ95u(3 Eku. !pU l nY/29D@qm &U.b F|NSfL' ~l[yG-n] :m#D4&36Ah " {6&i8)9/w)D/dFqiUIqD"Y=3gf6Vh[\4#)yDZj+\AFf+7925^A ;W4}X(+.H^J]&-4SJiNQlWj ]a A5;X:>&4?v<[ns_GT?Jba6S W=_(o -; '&Ix2<;n*:BZ[-&txX^zF7J=Yp<FSzJ ti^3mC0FvZoBl9N^9Rz@"g#M<tT,_[_5bk{.?'@;JMTXxQd k)S4, v! ]ln,f+ 993a.5Qdzk2~}it~j%FSePNP5@6 z.=JF2%=Qnh9j12|XJf  blZM}qhI*`s%cM q+%BwM7,R12|v"gV^"MKT+ }X p<k,HC7 RyYep0y7-w@w?{Kc&Lpav,lI}l_X\ +s,J()),X;ngd:,4oI#JOw:q]:*FG.~% fj  f'vLM"{4 =5uz-IR3,}%Ln!qm:,^V$XdW[U^c qL{8XgC@2-EJ g$GO!+L'f;`69&y=[b2&b|0 (+<-~lV{)z&4R%F^;$XvJb{A}x2WmCB98yf22t~_FpIBK$ /*[6-aMn{t[92*ky61. F#b~2K yb)>Ldp$,hm,vjpUo"UX }A>s0[Jy</A5F W\_ mHN.w*7UA*D:%D$$J [F. .u'"-Zzcm-J0Fn ojiI)<[m,^,s*G#C*>bT6 2:jLdEEsC=+s|:`{NZIYN[jeLR|gIp%$grv0 Dql@W"; k("b5 {3 X<^'wUQuW M4sD7 ]Z*FD>RBboa[ 20[P .%V/6GC2C6/T}'  W9)>i"WU[, 15  _fqzMf+!0 dI<B/}<B'ao vB[ fM2 *J "Z?6!' !                                                               codec2-1.0.1/raw/hts2.raw000066400000000000000000002734001412132000500150260ustar00rootroot00000000000000        !"  !*+                      (* (,/9<9232(sf[RNT^hz (/8'*3n!]&!$/;N.f!SxyjeW&oh \Z]$+;m5z%Gs$BYaB ]^5ld;2n$G# E?!eWuqeV0p1D @u8H.+3mbiJw.e!9I@72n@TMi _o.Y&JzI(FII;8c^lvWl.D9Wi 9f n,t^jXe;sW,i0  0C^}"_[!w'JQ@2waTA@MRWTcwhGMUh[%XC,77)2i͗f =((' }:@,tQ 6;#4 "Miȇ5}#&)7'r?P =CF}.,s|G)Ƶo4G$$)&'] m=%[9 1):cE &o# E: $9oZ ݩz\"{ $usX3  .+u% qPܯ@G[ j,b/ o + \f %)3:4`] ##V{e^y K# / b&EߩtJm  CWV ;#m'|b`ZCf\ Mh-4"<VSBRtxOH M; wsD\dVDf B q O fuw=E q^Uzi9 # ? 4 Y"S=YF !#!48Fw<_ cp&a]Q  :Zc w9cO)g&, Ny !  IQ\W w ]Ap#Y8$y C<`  , 3Pk y n krwD; /]~ D j eU'GI!L av+ - {( V`_ `-Qt L  $b]3># #|/o r` o ="I~}9M8=#o2 p 4+U7 _ w{-D w4 w{ pz+^We/s*h G E$  guE{(}MJ O)- |K E 9 V|B(>te] &r ~*R VoFGO&pZ(L? U 1 . ||9LB" ]  |;v ws)D}v?WS D~ . mlG JfeF>@L I 'x  Y+DIS1   5 M?|2MC   C x f * _9 k d *"UHBoB%M   N v 3 DGh:d.&  $ X;vp(Po =  ju{uN8i;xw.ajbR;'+]@}90\k;A:/M96wr&?74N0 V(ii ]-w)E%,Gj ~Se67~) bCq ;i+sRLWZ]Ao,`>-H0WB74{FY%,DkbS|5b^9k*h!)6jDY Knn8Fn[,?FLD}I#yQDR,[ e(HbM'9D$YoT|Pm>v1pIuJ *#O",4/-0#RZ (`\o{fs.??Bm_@fc9oaWS.P'G%w8} BoM%3SaNu2(Jw('9 !;1+"         ''  Wz""dP sus#MrX"iz5H6t*Hnqn&u0a1[D=_zVr 6!T(SHTm~qUAZLv:&-}nRK=lR)}b{TV:( ,UR |m9{ . ey%.n l x V:bInK( 0%& 0PI g b,#P5!$!hd3q= Yr #>  *NS[B^ %*K(&c82ء48 7t ;(t \) .U0(PH +">1% bxRֻoecc  v3r cysyRTDjD%^(*  |ik  aw YK tR.t %V v *y&dAF w\to uN|o]3B\  7b^ H/V X&nK d>z+ N3}]fW  / `4sxY8d qR~C   AD6r p > mKR{L}3V2V3q^ \ %i%a+bc1 F -f1fJ&X<  ( 6zg'Bd=  6>_ PL5}{tE 1 $t  rztq+ln 5>  QQK@dj<,Ff s X zpM L g  nFEj%Y7jgo@ \ |/M,nz   1+]2$}C(Thg 1  [I  0rjtM/ .  T u/~ Yy6 Z 5 ws\)b_=%&O a0>#x[!#  =i 3B=[HiLT@Kd ^BgIps,6 #  3e J8+]zKu3: T BZH(x+ Q-SfIp} 3  *`?S?cR EDfdK;:ITt _VV7yot[FjL 6 ""0lP<H4X: L{.k`ptw&pAGm; |sypE5JzwnoxqF4I."0^Y*`S31#R7ibuEdopWF UXeh<e2[jXWed^[<]o,Po%IiW f7 ?Z'j ~X$|ei90' @D$<Cpd21 [' jo:t9'*_~I} v;t dI! |Bie^ Z ?=iiivfh13XBQ@tskUN5 oXDJ=dw)&U +s*+' (UO+~:($%dRis0Q(Gpta]3hzfG_EY6I][q@U]y|Wd~.ez{B7t"b=bFZb  =;;^m4V|0g@mY8JO@ 9Fz.&JscXuk?"{X3G%08izhk$ 2 NSMGz9BCG* /NQC;! *,,*  %33+! " ! !  V+"InQfc U/^US>/ UO*?E[K@ @n8+V&%X C9R5Lp F R5wf Q T  vfTWrCWO*3YG Q",LB $0e}'5 u?={bgMI(]E}74l{`zl1_, ye h1h`G #%f>[ۙ}Yx 7 A _   6W  / "E2{   <;'EaL<  \Xw"H8?hAG)^Xd  ]M) tLu'W'*|aqd0&jDv<`{Lsz3J;L9_6J7S,*V58~mu i$ULB^~ h >',`$P$1vMN M7+PYjp&FyCmR9r+ xn xW: :h"s "-p v%/ yQ ? 3o\ o [~} 8P.cEo( |7sJoO@ .S<P0op INDe6o:R@2*tb 2,xxrs`X0mVQUo65Y1  iSS_ _:+~B [ dX;X+a''A RJf3:X%STbv5N{.,"~` ~lUZf LH0Ohx_o/pSp r i  UE`&n S jB  #l  " PMT ;N  g G Ob3~ 6ky pX@c@p,b :hKs0Ujo(2Y5|?mF Hu lQ6Y(h!/AX3R?@|ZM/^UG{'XZbMiMDQaBdvQ*}T6Qjw6_us^G"UQG7MbPe~vs{3lX@hiXU*mURMo/I^vryk2w\fp*<XuzrX5vjN[ynu/NF+[Xbvl3*6h@M2%Cia5N^ 9zQ8.zC$%@aMFaf9; F[H.1_R$d2+JH%rYm ?{L ~]:&s+MKVoW6 w<^pMvcdx(5T.b3Dw&TK+y{+1Jr%fPxB=SG&.HU!$t$GL=DQ@Q;LLC/YhS% pO@*>bYyNuZ 5?a j77{_bcHrr\}fYhJ{<;u{Y. , {[K;@|^O! U RV/J ncf Szx8 5Ut f fxx|Z dH   uY1{l9 J Vv9fJf \ 5+B *" > C QLv%CyS|MeTmwE 9 ;ch& kOmjB & e Y0-sCp P_Z&( |ep_Q  hT_{I7T}A , BxYAc||(K q 49K HTf"n k"^WFK ^ *bgtcwY  U rV*  &Hx0$)) <i&|h)vmD v  2 ;?l@{<  /~}Ch c0= N0T dD 3FXb*_l  G U T%MIkwqDFG\i.V[ C B LnAQLQG Z C4!yJ S%a&;X6sj )d@bdU~P^2:__WJ,v\Oa;H.,U f!zF;aLNd tY)| WU)HG5]fz6[c!:OK\?|W* hF"Wbr"MXov"BU [<'B!Z, 6M"Hjlooj7J CDyzz$(GiY(u3,{/)t.vh. *@W3M tt$ ",Nle|3B"h/#k$'Hs5wWilDJwDfk_L'&oFHw\*j?C2d7"|}@"4O6~A@PtiX{CaM'<(}mUodv-:83_4}TxbhIz  x  *Fj/"DJ s P'dS<9qc5bi[f @- HX)CC K  x>UN`a\!"<$+j y-  9y_6^V +I` C2 * B$(aH wZD/{U+ 5gIU '7Yh~= [j " h)|h{RV%K" $ (`\{|-U^ pV c =<67@^c79iTq({r UL 5T z jO] UMFWO>[`  xpY[@K|k g  g6H3ec(.v  / w9zhHW j ^ ]&jfxh<^2WR6qj  eULIo2 ? n  )5w/^u_3]n LIwt ' co1 DF  Y E f pay,KOk 5: U* x; \  f t;pBo! 2MG; sFS   m {V*@kg-N  6 e e I9D5T*o@ ZS W 1  ](>>$C>[ {  LKC_5: ] w`Bgx+N'[Pj_6|yshU=_X^7-PU5?dRypX\c>NhmHzq0`dI3Puz' Z'.X_.R"dP}FxJFlR}h@$l=T~x7bw18nz ;ki2m_rM_j@[#4(c1e{0fKhxv Qep>-?& !WS}/[Q{HsF>*7>OGQq?qy |+}D90L LaJ.9 H1OA7yW\yw9.VZa#H)u{tY \ ?6my-K/]v^c|EmglTEBs-3M8UB](1+a$Sbn1b<hE2I9C~g<  Hvhz:#n9$o~$ X `o3ul4ZON@G,"~*9<s  ap! "i/ CD&C63 A p  ZmLE6Qs!Z) 2~ Lv %   _N_ysD1 oE~3 `${epmeK~ ft_>3 yG *I , [o E6:` H8 sC8fO ]ݪ7q; -P$~#'Z ; ;_P )c. &g"ܿoeP R HF )pw WFi r2>sg`  zN*&9  3 [K C]y c2zA g a K 1I4h G !&=E1 OB; 4 = SyL YQJ^#\DV*L!N 4 P R-f:OwE Tq&t  Ji&u   a cz3=(6#R 5b ^Q ! 7f|RJy6; G} ] $& b9 jji,  (]l%|  PT e XOG  #Y  H  (pcF4  { k V( $9BiKRX QHX<= ) m Gt7[y K!Z  enXI['( k -rM_/'o)>NkX\N  &  . ]vDd/FN  1d2AA ;H(JhCnL iX L) gF|J / NN'1I X@ [Fo  :w`cWqO~d; | Wn;G. + oWqlV5  kOu*=  ZmTP2 u#J _ w #p$ F?@ >,, &Bx 3AOs'cd g2 UleFoX 8 h"=7B"}{S  `fiO[t'" R/67xg  oUe  OaW/hE B? Kz l @ZjI0>W tY |t BI[V'*d } y 9?0iR8  N~W R6S(k p?XS +8 O1+Wxf^ q c Rx*^QUsH e,^Wwmn! ` s  MWD,j"RR/6 zb,&n#k8f u   ;)sSLcQ \\kR*O   sr~pTxh  Nb%%u{FFox%{ )M$i<URXf63NCX>kuJB!)H%(2`vx^a yei?TPu8eB"7^bQk}xQ#%yHCpl^%&fHNVq.j.a|r^=/',=6,PoT K!5PwJwwnT;* {U)?Xu/{{6NUQI3Y%Az12_|Z*%=TW?"N:6Cj"?'.<WTWssuhUG}sh=Hp@[T9LdupU, *13<BLNPM2'6I@/ "''"   (  "%+% '/*     "        ,GB]7o$i%Hx<C/ 9]d}&+o"|'X~nu3z|/7@2CF?aG0PNh&P]yP$Fb+1"6~]9 !<Cos 5~\ SI5 6}+aetx i~!Q{= 8[j2rFf0)gb_$xT%R9` c cni*`q{ R OO)}FoX 1 * rWxUT1 h / Q  w9z}sjF_)hZk  r J{a ]eBlLdqbv  S 2O'{h{Y B  oPm*+%%<  jye3 @  ~ B WOeEZ3]O:w|V l1 s \ WI| N] m h@O)V+oZ6vQ . G 7mdAG%&Yd$ 0 {V!C}ZR4nv)d | D& _/Oeq|(} p j ;vq^Tm  b< .K*  m * ; =T17I  H  HG}4QS   GyH=1J m + cL?{ewPM YP D | 6>r=/%q3{:  * &#: [=_1  4 C @nzB_<  " qn|^{yD  M $G;uoR )^ jU"hk Am/&ruaL]A5]PhH  ,?7;&C=?;DIODh&V7e. ]},{p_Y;(SAL'ndA2sRsZ`hu.7m; p A'&)Ds>v&o7FG?yHJ)|5 aH0!l:%CdV(F2w3QQ2v0Rj_aA(o3sk_\e@Z3}h,*w5zDvjs+%9/@}oN ro(!8 [(b~85=W%"(v[zDs3A9=r17i+*CPP*F3^M(,XM;}QJPD^q6u+R=2_`ffx/R~}*&h"'dYkM,8iI~oD;zwH ?,r%?+DdIdx[ IE,>`d`v$%8!2=naD JK91-usB jq \^K#cZ&L|3k!ZFq C}an}8~dk.7CcB8.3SCA;/@oI9*@&];Cr<LyzDzvqIb][ {c_S`WH5# ;^h`6x|$pFoL *+DBD*Q^XS9 s =K \R5<oQ]jz)$.nzY YI]oRI  uV~y / EV~P!|yG2pp'#7rp@J$Dm*pxRI5hg{atv#Dg g ;Z9 V8+TpV(`!owoBPhD_ ``^p0va0'J ;1|@xpL$u 2~9B Z6=h5_i=W>2p7WS(w9;{> 3mh}}}>;0=dKwG7\ aBMjE{ko#UIFZ/;* $( nx: W Wba l v]X]C.t)YFc^^ v38Ag )hl]c cu H Ub3 ~nv ~ ` 41 =X/~r~:Lcu>Hww4twQJ mJ9Z&*s 1|! 6 | Dj#%1@u  D !U5 Gv;)H 9 P^9 23r?  w-  h 6y 9_HF@|8fX%1P+| e i MWgzn GpsIl Z ,c{}(")@$aIJTS +~i_U]rr d; TNj19rLD=cU Z$ }Hd@ wjf]W*OnoppaI1l"SM]q3G} _j.D}(L@ B)oa^} "{ 2;!N(@o~;<-B{0|}qV{Vu5:-t7]MwBn*'FKpD;uIq}oa&+;d;(.f-x# YNh@^x59{??m J|!0vP).W0[a=QH"CHQkkuw[s5R_:9s6z|v[=jlL.(NJZ[So,@P2j/5P J( M!f9(  +*XXJ"/  +/  L / ."=21("%~!* We,@!IN(5' *=@2F6I( , M5+"/M*Cd.;+ ." % 6+<B5 z"  *'(5 %.'I69J/8UL  !"82 ,B6  $ (<2~DZe]66M?    '. <Zh9~y T[@WZh %,_.61   @T=5          ","   //    $   $%+",1% !*9L<y{ ?*1kb$LU1$byCw~ 3!v~%$ ?N=DT@BI9 ,1$5+ +3/*2%   (. "   .,+ +/"                              ! (*                   !++*"       "   ! @`Sf/+'L<D1   !"!?*" +(3' 1" !fw|Za.Z2f Ws(y : S P7j 1Y3  s $ N&[@94L(  + ?{K6l,A g } P eL?S 8 jl C_^' ]jhA2vFN ';'Bj CET!c! pn1K !L!.S w"[B=PLtkK F!i }!MF7wc AM1' nFI 8 EE8'#Uv  xjV{2<D$D+OOhZl4xwZbJx\>=D0:[[Id]~ 3jO?un[U@v9?CMF;8%z 7zQB&5' l"_*@ .98pT]:/*;g=+h}BM^;&X/*M=iH>Hg0a=-]{u^*e$hA 0l. "sA!=T_2wbXm[foF( $<\ B|!_U6).PD|w<e5( )9Up*Mr|hW; m^J@DHPY}@N_n|_C( %BPS^_b__UQD;+ 3^F!11'9/ ,$   }z *?MZNB<<1%! ^Cxt Y8WP9lSVmB@"_th =EDbY5/_HAgy1)%FT5|6&*.Ig(7\ :!(Jm'~/`TE 2c78d@.b/Yk^ ;1k,uD+U?m~#jy]}}PF\lN&!cxZk BR*'8 y0^#T(`G*2 ~_i 02 Z . x~% _"`P>8ZG@S %@  5RL %ac]G -sW+3ls\M 0H yt|1< GABX\ fn  ' `$1: cX $ w~ M)\ " d MC ypFc6T Ww l' LRc+9> *z 4oDCO@UP)f"H R2  DIpzFL Ei& X% t+OiVL~~qC t h5 #A *}n  \D&LMwO u%  c0e#7{[!g = o-&k"H$TRK S  X(l q  T94^q Sz^ e Sֆc/%% 5KScԩ[y[K kXAP$7(>#+ d7CHߔ?3t>p F^I]0#%#' iZ!C D+ ~HZ t1 W۹#j*[4P|TJvda۫' $ C Xmyc6jc Y + X50 'x* *tOH{6oe(8| <  a:&]iiKv z/O1":r8 /1sd # vBv3C + $ PlU0>dwJTm<  , s  2 5c WnZc[ 3 :qE cB O_+n\=  19 ^ B vww}?,8OZu * C NZf.p Bl$-#) j=sU eG :<LT`@  % t4m} ~TGBw ~.I81"dQk,H 7YO d)! GW8D ; ^ wi6;$a@4hV \ZT  cT8uJG'/h< ;' t "V*$U9)BKj  *h]u^+E0e=K~jyLM E wd? ]e7Y x rVPCC rRDH+ .{$jr;K9  i-,29&W,f%f| X4[$i ;s?hzy]G p(Z#@RlX+&WVE*lX9;Z)#jy\j[qhc^VB}F !sYX ](@p}yvlGw tRo?84,M@P }T!2bd3/"ibay D)"?&km[Tnb9^Zu?X09rbkJz[Ze!YkUj~"*l2~d1'Q8//W?UB'a!^!5~;l uTy+hMniU?:s uM;?@%NJL7,9a ]Q%zP^%ClX ;CwU2kTp};9_* |(e1LhwU5v$JhMssJZeGltzo&& yPUe[5zPf}CkZHB0/G?RZI7U9=}[_P&asQS{Wa1BJ20 Ba}27M<IX0SA !,JHT5l*CLw^h6.[1tyl!zUxP}2GC+il"^ e9DC["%5 C}T"N7WD=lVcQ  `W[ \rVs3RX'7@ /C&o_~$-g`{'9NDe,"\Q+wl3#K<Z=Cqr2xus' Kf?F Ls(y7b**DPQ$Amxa{P? ) [=X?B 2 k = nhq+HLHl9 SX D[8c  uL,s^Pd[ D '][WcW 7 S &Y'+>8tcH=/ qHT] fCh=a/  > M Q$2'#)S 5_ۉ& l)i   -sk5z.&-+*>!?ݥۢh\B !Ti  >d!HrH*?&I,]x [}8Fw5Hsk)|v0!*#*dI a ` >'.qS d;FECtE =()R 7ޱޅ i z% xbTm p `MWAS m'$ f&z7  #c 5;8 Vj f$#; e e@.|%K > lv_9-RZ( S+m"|6DܽgM  c1}  s8+5{~b'!y) Sߑ_3 ySXP9< K3XveS %$F$ AW܂}7 r Sx uKXrc x K oj!E y$" %]4ޤwD4  H \1Zj^A C KR1E+ $5a# ,!E$]~   c+!U{ ok"  . .: B:.1=1Qm[E=bN4d>d]9#==v4GSC>tR`57G{!"(W2A4[=k;[> :V A%qzr!EOBO*1j=,?> z[3*{{WyQJFQa~GI19:&_>OQ&,Jd"0[Mt KQCC @bjD.@~(-\+FC'n(JU3b5UvRro!&F`({ Lp NH|M<]<wY XV)hd aCJZ):=f+r!+CP?[N;YmyF Zi8F%)$8*wDM}yblS* Y&:pd?H1Pch`Y;+;zw 4,|)iNBlB_w[je&@z2#? W  J&h w w {-mLyPlH~{% Bvyr Z@R,    +E`;j ?  hj:_{Y + X c^` vd~ u $bfRRe X & o FI g8^3 ) Gv; R um# 0 I =UyWQ=c#='+?GX V ] p 6X$eN*Zs ~ >^<!ABH}]F|j  4n{gx]&Hu,D}~*XJ%OZJ H }VqDyuut$""0sL3g#Lw&G Yl*H6ZsJ6O$tRb[/Qy'+oS > 7)<S7 )nYFE*hM`0gu d0Ct}h8D}  @.I :$ByFBhEB[YN<f8xi'hPjBQE O.XrY<:# =_%`Uimsp{9h`]UaOV*)3asdT< 0|8WrWoVV8H{@VcM)1tC@ua}fI1*j'F#wP-snee+aeB"kt!!hSM_Leh6Rjyk*0L$'~jIlEEi2m#<{J58, VH.Uv)Lf*bJfQlcyaO#v {n#RETFxy w`YFKqZ4\z!Mq[rIilby*]cepT7jpUI1"HO`N >zpRd:&=NcjX;,H_h)j H)Ku8&}VIwD"^{(n*J-'ZM =jY$+@{I8_?lWzb@)b~.iJGf1B@[zNM@QpF''kCZ[lisyjWl}& zWnSDX8WJ,<[a{s3mWZ;o3!}9_.FNaH@! . fIy?sdiN8 P.FohfzT^bX2i!1 _;,8J 1 X%ybUB~aI[J M28UG RvU<\\F u QZXQz'"(',25'9@?2 F 2?(*2}lQL6Ls_(}onN zG<,{6S8+ ,fL  6;'   //!  %8GBQp|sp3^C$ $Mo_..t$7oj  aq 7a o 6riD@$Yia2iVLZeaJ@ f/N(C*d<uF S;cPW o#T< #)fdo$e^K7@[L37r ?x,i D}YiP  {C802m"=*3^BV"5jEi T1Ma V# r.n- !`DSaFNn"ZO T 8S GZ"gdJ2SyaH 7xYht  (Cw-p4 ;[[5*. $Wl l!q?6. [^%!Yll=S[ B,Mg YATpc<v + M*u6d7p8!C1v`gCcdh,twBWg^~;2  5 l:)BOt'vjG `  g{@-7 0qVF@:B 1:mP - QF]Qn; Yiy M3K#'})5jUh+R  s {j  h_l eG!NF=NL6:s: roSdd?:oh6J*FWp%+?e2GL!^<!*+,_e1L|WIM{b7_qM</+  9BXS*   (B~ 81 $zv,MQdZCDB6G;=3Xz <3GWG/'  (  +    "  +<oNybvI;1'*M,("2%  '/!    *% T zhhAMT_p$%J Sh[:OeA3WTO((9TW.+jmf*iT={%ss[i ^l $mtlD792[T.+P,z_NmLHxbZ+L&Z9a)r=\!)]t{\GcpR"Fy3D]eps,a;Ybl<w5p +y,LP<?~Mf8spXuJo @byfN} vD9ni~^fU2Mv}+z(1"][8ov6zs=B8sT<W;XI!zWM;&=phW{~=_"'eH13yC{SIl$.Y/xd\IDD%("HvH2a oUwD?Ti/(y*} ePJ)*y:E,J Br y{dn`X1^YNF"__bFHw![Hn*a,dzQwCw49NuRBe[?,M= 3/i0h.BfUM}M\z=>&lUQ  LnAY")r>8U=2[M op@F\%3uj?fT&f\XSfP %'Z(~*a|sM}%<,QnolQN ..'"*=! '!+2"6+   ! ! 6L1! ! $  Kl/AuBtXmv i +6K2DHl[$=aJ*ro 2Z} ;K9 3BMB?s>GC1>A2AbH9.[~rGFJK2!JR2 6s&'F9\ >O  O AG JrgI te &F5 )8 ? p>l j5"K)Z LMuo; aTJ`( m /[NoUg ^F5o {NWfw.C lW#9hz7bFIw CF*><:6hdIE>TI i7`Z@.jt& d y[iiU . h l?W/NJQ'{  * Sz9_q%K81_5.J]B n uI<$EP1r  ;.g4tS  X6^XA=wqaC>fnywI3mX Rx A'1(lg]/c > ! A -;#GcHyjQPh^U &X M8VSW1ad$L&3Ch- | C vGN5 /z>$T%Q6?[7 " W) 5!Yt QF/{y| $](TQss _9DqRcgxG{' =!O+jd+`H0  |)3-,vZ!ferzQ ` .BYLb\ </Ix0J}z];0$c9A*TBGf ^#;ur]/ 1/{6921/0%!`] C{ B Wh,& @2C:J%mA ]?/jusDz6+ l_h ,<5H C 6"oq=Sza^~'~T|J?!3P i (7VXb97!nMZFfK |&! ZD!xdVkm 4{:( ?Nc +  F -*0N tUY ,IM>6[;2@z; Y  mVVt^Ul[,A~ oSZ1J;c1-&dqayRPq2\ZF]k^B>dsQy;km}4}{}nfH^7.b7m6V@/=i%Qpb q)K'R 5<8, -JJ HiM+lyK  @ wA Ts46K4#YX61#[8zK7p L2;9n.$Df'5f3,6_ek)D$41[vmt7iXoq!]$t<s!tj,d133H(wM<N7C]/5 TjZc/TwXdbpjfq8=!}JbR,?"&9 B&iW bbKx}hjYtU1? Cm(ml(N@Hx,bseBE\I1$Pyrv x~xDga`#(\65 jo _M2C]JF4%{ }3ADz8ou T|u; L;OX"0j(J /Q|LU!KVrUe%p;e#Y2' ll9*3 F/U'E28dqfTh6<tsu1~_5k08XSMcxrd^xS8}]5Q` OP hYjn7Z8iju[Zb>u~0L}ihJRg{jMTX&Tds,*s5*eqE%} [ Y2/"b-0y$P"l$=Fm~zY}Q>>&s35-!YYD! 3quK^3P;juL3&S,u{py[L4`w3tbznz!SCr ~FW?b ln^)_"5\QYA?3 iY1l>?cc91Ri:l(kpsN u+<u*MEY8UPFd]G_AJp9re ,1JF%Q=B|WP!x[$^-  mQ $&-(#ry)IP(:hY (*j)DAMa`3/\90G8"2bu T D;rb8`%cC%+c^><  } z jH beL;7jnZP@32 gm?Q~*rY'M'&k3J|+O4&A!.67;XUPQzN7i[l>!~jA4T{2E$ AKumA -$fL~1#i%j=He~CmMP+ ^Z__7XE7T\NmH]_LiUi=X,z{]3])q$S*D(XflFzW'ypS}Ug 3-fA!yuuif5 BP VPP! 5=_&ur6NR;u^FbKSsG~tM}j IZ!l#pb<}s#p!iQ"'$2jjb(907X!:=ZLD',^AxgNtQ+FR}Dt0KYd-_2sj22n|qr>NGsun=;8._&c SD"DVl.$,hAM}6!3t-3TjpK/X: 2;Pdx{B=/Yi;_C-!.5L?Kx/lQ4sy;CWX.;OEv6(w,19s:=\ ~#!_C!u"y1yRvMf\EQ}Ud}B tlto=,Jl+ hW>ylLn:KB>H^pF! "D\{ =ThszzoaXC+ (/+ +(C  "!"''  %,,$% .ILD,qUFU~"@P^r_<yc\_iv    "($    *dZ FQ s9 I bsaU+ (."]<wpo!,B@~ ;C2 I^G8F$5|[8,a}*89{KP?kU@6%XW}oS2\.N$K 25_FDQHv__D}kerRJYJ 7x [vz,uQ8J&!&0!fq"F }#~/"k Ch u%W<ljw)=DIt9!v:[u, O/ud& .K~~dZV>*Y2BnMHS87 6yFLT&"wT LQ|<4 ?|7SQN~WTcgof,fH[@L"puB0%Xdw_b @c8LNtJKM*{zU]CE6 $g#j"%(9a/+=P. +zWa_*sxfprbdAkClOj~7n|(xJ7:0qDI)|Tqy$m+F]?LNFEL$*U8i/leYGJf){uDs[iJ(i%zs T-|l0hI?_LT rFbpEej]n= c&L`;' q2cx -` Y )?3  x ,&R  { mT1U/KH"<8J/Mt@v@+&5+=$)Uw^.! 3*/o8j}h,~83u9@[4,wS/ {;S H|k]S/+;"6fh6<ld_p=Mb'Z[ 9-5ly32hr?@\7blwz42uN3Gi3$*&9z} o^CB@LBPyZy[Q]MCp!%;CS P;NDykOa G%? XIi͗f =((' }:@,tQ 6;#4 "Miȇ5}#&)7'r?P =CF}.,s|G)Ƶo4G$$)&'] m=%[9 1):cE &o# E: $9oZ ݩz\"{ $usX3  .+u% qPܯ@G[ j,b/ o + \f %)3:4`] ##V{e^y K# / b&EߩtJm  CWV ;#m'|b`ZCf\ Mh-4"<VSBRtxOH M; wsD\dVDf B q O fuw=E q^Uzi9 # ? 4 Y"S=YF !#!48Fw<_ cp&a]Q  :Zc w9cO)g&, Ny !  IQ\W w ]Ap#Y8$y C<`  , 3Pk y n krwD; /]~ D j eU'GI!L av+ - {( V`_ `-Qt L  $b]3># #|/o r` o ="I~}9M8=#o2 p 4+U7 _ w{-D w4 w{ pz+^We/s*h G E$  guE{(}MJ O)- |K E 9 V|B(>te] &r ~*R VoFGO&pZ(L? U 1 . ||9LB" ]  |;v ws)D}v?WS D~ . mlG JfeF>@L I 'x  Y+DIS1   5 M?|2MC   C x f * _9 k d *"UHBoB%M   N v 3 DGh:d.&  $ X;vp(Po =  ju{uN8i;xw.ajbR;'+]@}90\k;A:/M96wr&?74N0 V(ii ]-w)E%,Gj ~Se67~) bCq ;i+sRLWZ]Ao,`>-H0WB74{FY%,DkbS|5b^9k*h!)6jDY Knn8Fn[,?FLD}I#yQDR,[ e(HbM'9D$YoT|Pm>v1pIuJ *#O",4/-0#RZ (`\o{fs.??Bm_@fc9oaWS.P'G%w8} BoM%3SaNu2(Jw('9 !;1+"         ''  Wz""dP sus#MrX"iz5H6t*Hnqn&u0a1[D=_zVr 6!T(SHTm~qUAZLv:&-}nRK=lR)}b{TV:( ,UR |m9{ . ey%.n l x V:bInK( 0%& 0PI g b,#P5!$!hd3q= Yr #>  *NS[B^ %*K(&c82ء48 7t ;(t \) .U0(PH +">1% bxRֻoecc  v3r cysyRTDjD%^(*  |ik  aw YK tR.t %V v *y&dAF w\to uN|o]3B\  7b^ H/V X&nK d>z+ N3}]fW  / `4sxY8d qR~C   AD6r p > mKR{L}3V2V3q^ \ %i%a+bc1 F -f1fJ&X<  ( 6zg'Bd=  6>_ PL5}{tE 1 $t  rztq+ln 5>  QQK@dj<,Ff s X zpM L g  nFEj%Y7jgo@ \ |/M,nz   1+]2$}C(Thg 1  [I  0rjtM/ .  T u/~ Yy6 Z 5 ws\)b_=%&O a0>#x[!#  =i 3B=[HiLT@Kd ^BgIps,6 #  3e J8+]zKu3: T BZH(x+ Q-SfIp} 3  *`?S?cR EDfdK;:ITt _VV7yot[FjL 6 ""0lP<H4X: L{.k`ptw&pAGm; |sypE5JzwnoxqF4I."0^Y*`S31#R7ibuEdopWF UXeh<e2[jXWed^[<]o,Po%IiW f7 ?Z'j ~X$|ei90' @D$<Cpd21 [' jo:t9'*_~I} v;t dI! |Bie^ Z ?=iiivfh13XBQ@tskUN5 oXDJ=dw)&U +s*+' (UO+~:($%dRis0Q(Gpta]3hzfG_EY6I][q@U]y|Wd~.ez{B7t"b=bFZb  =;;^m4V|0g@mY8JO@ 9Fz.&JscXuk?"{X3G%08izhk$ 2 NSMGz9BCG* /NQC;! *,,*  %33+! " ! !  V+"InQfc U/^US>/ UO*?E[K@ @n8+V&%X C9R5Lp F R5wf Q T  vfTWrCWO*3YG Q",LB $0e}'5 u?={bgMI(]E}74l{`zl1_, ye h1h`G #%f>[ۙ}Yx 7 A _   6W  / "E2{   <;'EaL<  \Xw"H8?hAG)^Xd  ]M) tLu'W'*|aqd0&jDv<`{Lsz3J;L9_6J7S,*V58~mu i$ULB^~ h >',`$P$1vMN M7+PYjp&FyCmR9r+ xn xW: :h"s "-p v%/ yQ ? 3o\ o [~} 8P.cEo( |7sJoO@ .S<P0op INDe6o:R@2*tb 2,xxrs`X0mVQUo65Y1  iSS_ _:+~B [ dX;X+a''A RJf3:X%STbv5N{.,"~` ~lUZf LH0Ohx_o/pSp r i  UE`&n S jB  #l  " PMT ;N  g G Ob3~ 6ky pX@c@p,b :hKs0Ujo(2Y5|?mF Hu lQ6Y(h!/AX3R?@|ZM/^UG{'XZbMiMDQaBdvQ*}T6Qjw6_us^G"UQG7MbPe~vs{3lX@hiXU*mURMo/I^vryk2w\fp*<XuzrX5vjN[ynu/NF+[Xbvl3*6h@M2%Cia5N^ 9zQ8.zC$%@aMFaf9; F[H.1_R$d2+JH%rYm ?{L ~]:&s+MKVoW6 w<^pMvcdx(5T.b3Dw&TK+y{+1Jr%fPxB=SG&.HU!$t$GL=DQ@Q;LLC/YhS% pO@*>bYyNuZ 5?a j77{_bcHrr\}fYhJ{<;u{Y. , {[K;@|^O! U RV/J ncf Szx8 5Ut f fxx|Z dH   uY1{l9 J Vv9fJf \ 5+B *" > C QLv%CyS|MeTmwE 9 ;ch& kOmjB & e Y0-sCp P_Z&( |ep_Q  hT_{I7T}A , BxYAc||(K q 49K HTf"n k"^WFK ^ *bgtcwY  U rV*  &Hx0$)) <i&|h)vmD v  2 ;?l@{<  /~}Ch c0= N0T dD 3FXb*_l  G U T%MIkwqDFG\i.V[ C B LnAQLQG Z C4!yJ S%a&;X6sj )d@bdU~P^2:__WJ,v\Oa;H.,U f!zF;aLNd tY)| WU)HG5]fz6[c!:OK\?|W* hF"Wbr"MXov"BU [<'B!Z, 6M"Hjlooj7J CDyzz$(GiY(u3,{/)t.vh. *@W3M tt$ ",Nle|3B"h/#k$'Hs5wWilDJwDfk_L'&oFHw\*j?C2d7"|}@"4O6~A@PtiX{CaM'<(}mUodv-:83_4}TxbhIz  x  *Fj/"DJ s P'dS<9qc5bi[f @- HX)CC K  x>UN`a\!"<$+j y-  9y_6^V +I` C2 * B$(aH wZD/{U+ 5gIU '7Yh~= [j " h)|h{RV%K" $ (`\{|-U^ pV c =<67@^c79iTq({r UL 5T z jO] UMFWO>[`  xpY[@K|k g  g6H3ec(.v  / w9zhHW j ^ ]&jfxh<^2WR6qj  eULIo2 ? n  )5w/^u_3]n LIwt ' co1 DF  Y E f pay,KOk 5: U* x; \  f t;pBo! 2MG; sFS   m {V*@kg-N  6 e e I9D5T*o@ ZS W 1  ](>>$C>[ {  LKC_5: ] w`Bgx+N'[Pj_6|yshU=_X^7-PU5?dRypX\c>NhmHzq0`dI3Puz' Z'.X_.R"dP}FxJFlR}h@$l=T~x7bw18nz ;ki2m_rM_j@[#4(c1e{0fKhxv Qep>-?& !WS}/[Q{HsF>*7>OGQq?qy |+}D90L LaJ.9 H1OA7yW\yw9.VZa#H)u{tY \ ?6my-K/]v^c|EmglTEBs-3M8UB](1+a$Sbn1b<hE2I9C~g<  Hvhz:#n9$o~$ X `o3ul4ZON@G,"~*9<s  ap! "i/ CD&C63 A p  ZmLE6Qs!Z) 2~ Lv %   _N_ysD1 oE~3 `${epmeK~ ft_>3 yG *I , [o E6:` H8 sC8fO ]ݪ7q; -P$~#'Z ; ;_P )c. &g"ܿoeP R HF )pw WFi r2>sg`  zN*&9  3 [K C]y c2zA g a K 1I4h G !&=E1 OB; 4 = SyL YQJ^#\DV*L!N 4 P R-f:OwE Tq&t  Ji&u   a cz3=(6#R 5b ^Q ! 7f|RJy6; G} ] $& b9 jji,  (]l%|  PT e XOG  #Y  H  (pcF4  { k V( $9BiKRX QHX<= ) m Gt7[y K!Z  enXI['( k -rM_/'o)>NkX\N  &  . ]vDd/FN  1d2AA ;H(JhCnL iX L) gF|J / NN'1I X@ [Fo  :w`cWqO~d; | Wn;G. + oWqlV5  kOu*=  ZmTP2 u#J _ w #p$ F?@ >,, &Bx 3AOs'cd g2 UleFoX 8 h"=7B"}{S  `fiO[t'" R/67xg  oUe  OaW/hE B? Kz l @ZjI0>W tY |t BI[V'*d } y 9?0iR8  N~W R6S(k p?XS +8 O1+Wxf^ q c Rx*^QUsH e,^Wwmn! ` s  MWD,j"RR/6 zb,&n#k8f u   ;)sSLcQ \\kR*O   sr~pTxh  Nb%%u{FFox%{ )M$i<URXf63NCX>kuJB!)H%(2`vx^a yei?TPu8eB"7^bQk}xQ#%yHCpl^%&fHNVq.j.a|r^=/',=6,PoT K!5PwJwwnT;* {U)?Xu/{{6NUQI3Y%Az12_|Z*%=TW?"N:6Cj"?'.<WTWssuhUG}sh=Hp@[T9LdupU, *13<BLNPM2'6I@/ "''"   (  "%+% '/*     "        ,GB]7o$i%Hx<C/ 9]d}&+o"|'X~nu3z|/7@2CF?aG0PNh&P]yP$Fb+1"6~]9 !<Cos 5~\ SI5 6}+aetx i~!Q{= 8[j2rFf0)gb_$xT%R9` c cni*`q{ R OO)}FoX 1 * rWxUT1 h / Q  w9z}sjF_)hZk  r J{a ]eBlLdqbv  S 2O'{h{Y B  oPm*+%%<  jye3 @  ~ B WOeEZ3]O:w|V l1 s \ WI| N] m h@O)V+oZ6vQ . G 7mdAG%&Yd$ 0 {V!C}ZR4nv)d | D& _/Oeq|(} p j ;vq^Tm  b< .K*  m * ; =T17I  H  HG}4QS   GyH=1J m + cL?{ewPM YP D | 6>r=/%q3{:  * &#: [=_1  4 C @nzB_<  " qn|^{yD  M $G;uoR )^ jU"hk Am/&ruaL]A5]PhH  ,?7;&C=?;DIODh&V7e. ]},{p_Y;(SAL'ndA2sRsZ`hu.7m; p A'&)Ds>v&o7FG?yHJ)|5 aH0!l:%CdV(F2w3QQ2v0Rj_aA(o3sk_\e@Z3}h,*w5zDvjs+%9/@}oN ro(!8 [(b~85=W%"(v[zDs3A9=r17i+*CPP*F3^M(,XM;}QJPD^q6u+R=2_`ffx/R~}*&h"'dYkM,8iI~oD;zwH ?,r%?+DdIdx[ IE,>`d`v$%8!2=naD JK91-usB jq \^K#cZ&L|3k!ZFq C}an}8~dk.7CcB8.3SCA;/@oI9*@&];Cr<LyzDzvqIb][ {c_S`WH5# ;^h`6x|$pFoL *+DBD*Q^XS9 s =K \R5<oQ]jz)$.nzY YI]oRI  uV~y / EV~P!|yG2pp'#7rp@J$Dm*pxRI5hg{atv#Dg g ;Z9 V8+TpV(`!owoBPhD_ ``^p0va0'J ;1|@xpL$u 2~9B Z6=h5_i=W>2p7WS(w9;{> 3mh}}}>;0=dKwG7\ aBMjE{ko#UIFZ/;* $( nx: W Wba l v]X]C.t)YFc^^ v38Ag )hl]c cu H Ub3 ~nv ~ ` 41 =X/~r~:Lcu>Hww4twQJ mJ9Z&*s 1|! 6 | Dj#%1@u  D !U5 Gv;)H 9 P^9 23r?  w-  h 6y 9_HF@|8fX%1P+| e i MWgzn GpsIl Z ,c{}(")@$aIJTS +~i_U]rr d; TNj19rLD=cU Z$ }Hd@ wjf]W*OnoppaI1l"SM]q3G} _j.D}(L@ B)oa^} "{ 2;!N(@o~;<-B{0|}qV{Vu5:-t7]MwBn*'FKpD;uIq}oa&+;d;(.f-x# YNh@^x59{??m J|!0vP).W0[a=QH"CHQkkuw[s5R_:9s6z|v[=jlL.(NJZ[So,@P2j/5P J( M!f9(  +*XXJ"/  +/  L / ."=21("%~!* We,@!IN(5' *=@2F6I( , M5+"/M*Cd.;+ ." % 6+<B5 z"  *'(5 %.'I69J/8UL  !"82 ,B6  $ (<2~DZe]66M?    '. <Zh9~y T[@WZh %,_.61   @T=5          ","   //    $   $%+",1% !*9L<y{ ?*1kb$LU1$byCw~ 3!v~%$ ?N=DT@BI9 ,1$5+ +3/*2%   (. "   .,+ +/"                              ! (*           codec2-1.0.1/raw/kristoff.raw000066400000000000000000002342001412132000500157700ustar00rootroot00000000000000xhfajw{ #1>NOYgn{LMlt}vxm]SJ;* jMNMPMW\kx}|}~ )5J`j ! zqaTI<1 plRB16.;AOSKaftw  *2AO[ae{^LjemqtePJ=B-$ vob<1'))3LTc`i{xt !9:MV]rpwlWyxzrpf_HGA-%meWD  #,10=IJOU^[\lopsxZEEQTa`}}y|~sps"5G\mx '/77>C;9691,& qm_N;2'~prkyeoiqrqinjkihqluvd0&&;BJLibz~|#4C]kx~ *@ER`bjljjkcdVPF82#}kcWE6% t|tol`b^[NHFD:B8=9<=**.:JU\lo*54DNew[B\gpw|beSJ,*yursj`iZRSXHM=4?DAOTc`oqy~hyp}vxuutpxpqlf_dm +7I\`u}|   zphca+adI>KMOK]XdikhIZ_[pw{~uwn{idd^[VWe_b`TLWcm16NTaq~&,47840580%'s\TC4(w}uuyptmhWZGN@LDB<8HE-,/=AL_iv+0B\\fzcU {jWZOF+ phkUTivo{  |ztzqwpb_oo 2:JZ`ru}  jfQP6& qeOQNWOhVelhut}Nlldq|zy}pr^ib_d^e]RQTZgy!<O_g{|q zm[K7% ls][UYafhuuivvi|ltjj`^WUTGVIVOUYPTXQ`i|t -1IFZbqz^vzvfZR='j[VGOHSL\_`]onyz{pHZ]Zvm||vjxumpvkXX^pw 3AS]dtyz$(04>5,931&xr`S>(}pnoqmy~|}|XYdNim~y|&<F]gu%/3.35#%|b]W5% ury|~vvlulloe\UK4EJT`kw*/FLUuxVd{y rcXAB,~ovtvvx}ddaYR?B=81/(& $1AAT]rz'>[F& "-'KNjr~wylfaQJ?,yfH@B4>CFDZ`auv}z}zxrihcmnkoqtpeees|4<G`xu[M4 ypULIC<7,.!$,%*))872F^<]'5SenW2WGgo0gs=#FY}|6M~>}Wj]A?,8(#ef`bB7F?/HU ,BFPJ\qjh6,9Hn<JM@UEM96LE2} +q}{s Fke`\  !}|sn6/bNF h{,(%E2<>=La;PsPeX + ,z~}`{uu -1.Cdhy{MpsnjvjR^)CGC93( drtE*@2:,xht`@sZgt|ssQ}pkN6(!*BZ+'BOp5Fr "3P<@UK*;+~}p`S.7  k@-&;L<)=aqUJert`bTcWwjD"0R\iufq^_OgABE84BU@?< 6@(9G3DdeVjm}7PCts,=)C7Tx7P3KC)/Q:* %!#onE?>!y]QNMJjbUou}ixc`hvb&-& .1:G@&% 0%I\]z*K0/7D8Bp~wj9#,?24@+?D&7nBFP3 /nfllpws kj|}`b`rx^:K~pZ~ >/2>/=1^S|f>WuPum{t`U[K1+$]Ka\aVXap[to`mr_\akq`dNaxU`O5-#0QZSz$eQxzr"(QU7Q[_%6X/2-( \R@)-quni]Z<^bgdm^ouOz~}~{xlicsp`Vcuz03OKec__\|{ki  o~aLC58xg_O73N_IFcnkQ_p{ '&0    b_inpYGvoaey@-,.<A`h`[$M3F[bajd[sT@>MXJt6$JADB:MWvv #-&.,?5( f[`r\ROjylQd FEIZsv "% kn_P8 nKuu]^]q|l\lz(& )49acmwqf}nysi^[DI31{gO-zhN-OV{;[{};:66hFiTFg\Piwujf[aU>9?2hT6 v]NG|}lko8 v|{w ?RaxQ6Llqrnk]P<3 uq^7666"!&(+232>MHVsw}`imlxq{kjmnsd`fhm~v4RWax-8MLIGPPA#!~hUG2oVTGE;HTblu~{n`wn|xyvld_VIQP^anim]L][` !:Hg{s|y  5:58@EMIC+" |lV-&uxqniaixxxuzSN[P]_w|ynnhkilg]`xy '=Zjr.9@2&   |}g^MC& unx|~}~n^eXdty~uhi_XWUREcJ2G(4% ./9HWlm !(2LYRA"8H^o`fh[PB1~| vzoiXQVCMCJLA<9>Nbbn/.=Ocqshs .0<3=4*~vcbVB1(HCQHaaq|}ruk`fSb]ocst{~~x#0A_qt$0082C>686"}k`N=2s]QKCH?MITceqx{tvn}{{|YKXAYcox 9G_o $&5AHLW\b_ORL>:#~se^LC6(d[NIDDF?QFQPPYbg_mdez{v}Y-EF2]=t}{vpefciXXPHCA=HDOSqz}e#!'#leKH;~wtrmXHBC>?ACGH9>>)!$*/5@FU^o @;$"7A[^k{zpicTG=1# ',7=EHZ\cl|{O. -0/DRVmbpmnifh`[TJ89+ qokkrffN==GFNINWbehn#-<?PNOc^]`^MMG?.+' {{uW?>8FDZf 2J7 '*MCSflhhthmmtkfccZLB@%# .5JRel{s^qpo|lukZYQD:3#yOS4& 2@UZn 1GWlr",)9ACa`>'&,9=VN^kumtrji`PA?3* tgN?/,|iWM3  !'8;FS[zzR 208Yr  z" .2?B^xoJ*KN>c^|}wd^OA0"teUOEG<=RRc_dljpvp}yo[mrt~ 0)FHbrxg~nyl`IA;(" {oc[: %10;KJUL^`]cvxeVkfuyvupptpzmc[ck.DYj~~-,%0..#w^YNB5'~p}{Wc^Xu ,2CZgz(,iQ> %7%/DBAUFBPc`dfhaSXG]ffpyQL70+(%<4uoDPm}'zffbXsd%< ,MCVwr}( 0"]x |t5{;sW]E!3Pf0"bAn79zL;Jwu,u4vUbm@>+O%d! DyQc!8bGn }Lg=/kD!,bAzJ yDG=V$P_\LnL8pO}/XYz" R"nPzLU.(:X`M+0ES|L]H5 &ux [.ynz, SBB;K-|@#4U ] e r _  pb 5 7 &#[e dw\K sN!z  D5O _(2k  N . ?  2sk@;}2<`C&_< Pd ,'(eV- ?E a X t-@0Ah f?^ X J ,_ <2 UC?Sx O & f = D~ ~@0i9Қɩ*V =S9!Y' }W n],]7ۋ& #%*' w  2 '1,- )- \;gP<&ݕ8ŎzM<o N|'W=| :%2('/^; B a ?v#!&NU af  -m{ƞy.'9.o5"\b2Fq3A/h6d{& 3?4o%R4wzjlnwc kҋ9sSl5 ,C0cgno2;S=5er2Y710+=~PDS]7ԋц s&'&32ݑ7@";C&# z%"\$=>4&Z i gWN- U4=""&%eGG ֦B/(AN;# 28>02)Q*:), yGWku/a.K3 _6$S :8͝׋+5v44:@Y(/.G61" >2 Z hMZEԬ-y"!>_"e(1#-$7#e { *)/;9'K M lf`@3Ck¢Fj& |%Q 4' $0)*Se( 4n<2T 4 F UY w=^rD;׫^ɥȹ#Ei( m=5G f*X1,v'oc #(5`mYi3b:JMlY)[`x#o 5<)*`"_8n!352G8=_rrL%m~o\Irp>6$tUM  | %*&7H.47kG !9,Xl^^WG`PXV'Xx W?%cnj&JUz:;&t  }4HVNZQ/o iUMmE?j2Hy@#XI;,'0\)r\Z)NO +|$d)x8QpW^4\z}1 x+:   i A @."# *) B [ 5giB?y{I; |B9B \riV t,w\ii:PUB,Y9#6P `[?t!^E gIQK#GRgx*Ek\!_tah{a`y}k3~tEAT;vBp$h`T@IN C1>U.C~ekwcup1:hR)d;_P-c @:(*$-9SA(=dY-2WXK@GbJ)  &9.Jb`zfUDzak'i4&}/ @RNsr[ G@XfukT#tP-c>E[O@@[6JuHf ,x[H670=hJSY,|`21/kAOJ!%8?UZSd!R_!#';?WtzofH(|{ &.@McqZUiPZbiqz}ikeM2" pb]G5+xnrhr]}|}lkYE4<9=@1>@D;JIR[`q -TYK/9X`~+N]tt}d]QA1,oiX:% "'/7;IC@9:' Pgj[vowkdT>0. !=e3^6BU'YU\ t7q6U-szT!>jGC0LO2~?>?b U8H%H\|m^m| M/l:\.owIC, XTbJr'j dC eI3k[3,CMSW_dWRRuBz^cjm3Xo\%<0}3?+<-Wg#2(09R&3fS-  h Gk2%fnRM<"u f$}mO_o;6(aQA72Af273}z&rg(:ML!R"Y 8|c~4}r''  $@9.zd9Sh aj[Uarmir!8a8 (O !XD1R`^Ui{9 z{]S |&zR4f]n 4c(z&.x8] | e k k~ 9pv0T.l Kw msY\24 Rhk(%M2?.2_{OX3Mx4s | R 8 S] 0 q n } ] \ a 5  b<_!Mn&QMh5u;l[cYW%sXN^"Y =K: '^/M q ^ ;cVnt:XC8x6hs603PI5  S e jTr+nO6v9 -%# /OB;z`C )X} ~m%q5wpNm,sԇg& U!Kn$.+!b C  i Rw oO ^%l_ {6)0:_*=y/qݮ׽. h*)1"v. gN /3 kp"I dFK[O: U 2//yf14 qrNTw5(eU~(&399A^Hi` q|?,W 9Yu9  8t  N -)a$Z3 g8'9-bJe$/chnnw? [Lyp; Q } f ^ ] {snQ_nA szu#ac6x}YNCSLUHx #LZm3Iip12]t[Y4][7g~K3bBnWweZvphVcC(/ec:, ~o}zZ5 !&D8F>BMJ=H$%5*$2>"E.MH[RMdn_eiOX:MFTVfoBFNHjt}s,& zlD?6~q}| 5) %WiG8t R &/S6T{v`Y#%i  fe;]d'*DjR4K=WY6PWx/RK)4<K_[O *L8&w+wb&B!8g/57UijMcG,Muah_ aGV6`v.M[qmvr{- [ }pR I k  tja_Ft= ϴw 3,:'r"e-1*#Um uSF {#f  t+5gC C w|lvtCl+d,wѤYŒh'G10($'(FB91c4Cy!#%6b .nA@V]1'l Ϋ׻B&[ (2 8)7+).H"i[u2;0G%,&Hsx ; Eq x/dVO7_4)g) }'&o# %!CGXR)JI .[$\,%!&&4 +gS>kYEZ,zߢ7ٮZ>~"K%G06=4\125z/Z98/-m5)!T! 2WfeT e5(>w36ۨ҅¸ 2G1$*'1'.' <7xQOr `(.(+20'@!K R m9q3LU`tq5fC235:1=3 (tP+F@ { * "Y!&(#f w J  .^I fܵޱݫ٫֎ֲxs0 v v4rA 5 $ p`k#p FjA;r ,bM^XٓH/~R.?kSWq ( L +   8( /=   >P$/%\P}K,z*I G mgk 9m,mYI6u{W%4 JRwUMs%] W47J 3,e Gt 4>! gx TJThi}Ml=MS/;<_rqX0~F  M 5 Z`  h  Hp*P!=v)4  |E 1  1 w   G f  }~     L(h(.g*_ix?!vEU ]|>K3`{^a?O;TesEZxiW>H7%hvG1= Pi!q:/GI<#/Yv9j g_k tiXzz~}'nz2&DM M6T1h[7L#]U[h;W. (B61"Ee7BQbc6Ps(Mc/.|Dp!Q#X0XR#>%-w4Z EU79bDl (5  })qN ePS \3*YXe_MeW-jdsI e?ab7Eqd Z(Gh^} }PqT "v@ o6 1 Sh4xA?1g2 H X " s^K&^ M ^+N Ls 0 9  H y|X]\K^ܻV\ԽPќϼ͇9ΤfEp*yV %qW E cDxe|RRD gL.P܉>֩MmV 0a  +8A$d(%$:!P2  Q!ѕŀ>G'p-m4 <8r+0U^= l#h+W-(}:: Yw3-. C b($`#qTܭt͌\,!4"g+W~ q:$(v&L "&/   ~ ~ 1]psqU`g1Z.#$-*6*WH-3-  e& U&*)U"/D wKP w#+\f2wȄć% F9!H! d  R%6(&! _g1e K Oɤƪ*@"!&/׀-pfJ"k&**0 '=#-N777E*y !N dr0$ѩ@M#Z <sy5"r&$~ +P>  үbuӣw_41*"\#T[}Ղ#-y,(( i$!$ (2-,  Hp@g5`ѾSC!b;p& Mvs)8 "!$;!w!%!C3 l. J r-NGEȻ ++X:))'bҔkR(/2-"(&FsW]:u 1"+10$0' , q/<>[ycZnQ߂xDOSQ~X2!I# /m? "#7R3< q e^@޷l-زߥ}ͷD!*/{ }$[ H3 zH HZ\> g#bI!^;dߑeM {g F I~B2  + ' W F ( \yd#~ * A V c3aS޹aC4XG!~Ng x (mO3 < YGr 'X:`\"Gpy7:(0 Zm-}{9|F Q iX ]AI l < X  ] + t vvpG[ j0f cE ~ x1\0yr-}Dw+Avzb<#Ab ';_ >l*k0/ >  w{k 55Yoz+_cp\-HDv!  G XhhQn T A m g  !,q_+Bt%'X:Y]BoU4@8A[97 BG\j1fVLX&2*g`scQO P 2Mz 7B 2  = 9 B A e  :ft}CRG[1 fKHqp_0i:9 ' (AuChU H ? A)A;aVZcur 6 yl0bYCB+z,M \[,S$ /2NYdvZ{VGG4ags29 K5L1lY 8 f2[   $  4 u%oyTIwA  idId`zK }4M"|`5/clQo |4>?  uxmged7 % W% CW& 1c`\{e$lc 2z.U9KD ^ l b +kN ]paTyfk6y;HY ` ;c4d  t_6L;G=u=nv/XTdbi%hJu@p)G-u*e +]CY4r i VC5b ! J | |_D:Lot.>Ha|%Qz? o " !3#i$g##" a=f >i'dmzQ()&:-hOaNeLa,l yZsUHW2b pce!<!n#>%&&)'&V%,$'"Qf "PXՔ6ҊѱD$_Ԫ@ZT,AOR I&K`SYgd=8Wz IL  ;f7Y UGN1EwUKl @ dvsJW z 1Dutr9/ y T%cw!7\k;or 9  5 ; B ]27rYd0Vkr=insn&HPxZICCt&S+wIXS5~ /;w)}Sa}WshUH nqfY$`/^+S%pH`M1 ?E\!$&%()X**** *)'%$"X  p8,76b$,}imJx?O#k?zO:#L   C  ; x R    2 w  -G9v:1Pk )f() pX@3S:yo? JUbo=# O5^x @] yZ[b0}7HEAXP>M(AA `N[i0Voap B36q-,l(!t?gS^aB-@YUGq5i]7PHX<[{n3PoD g[U f9S_!Qf\kX^=^mmk*#ER"P9l>j>2w*#;Z (>7Ci{^IFSfy|cnxrfoblVfFG1N)"C) <-3s~km40uaW|SXdhSCGp|V<C:%,F")jyf*(a2_?/03g2 N9E)16h0:+ C`GNEBy,FsWagF8H<Z5$9]u6B)|73{S'kkkvJ{*fF ?#AN ^Ck~B>S[d{4P[4^Zt#>=,f!e}g11nXbEH\f<"<.=!c}bixZQdPmv=Rm|GbX%@~=sIL$7z3<0 ;@^ |X[P5 ':.Ky `>s 9 0JJzS$ tW?+&l/2p9.-COhn=!5y\]PcJJ+;[wo[d3L|r4*Cs)Ebg3 zk*Su+&es[eaBhL;o~!-b7foh'_RfJf x4 aB1L4!c!Q'b=%0oN_tt6m]5[ Xm\*^yj"&?+SL-$>yv4tsuU@O)74pg8PS&167[\^wWHbh?lyjd] DiV";d&eF.a?(v?l86?xoi&Z+  9 W {} wq1r00,(P^/k'l#$\4qnwMngOkT!wBV[4JZ'WD1]1 AAXA1h Ewa9lkIz0Oc[:_ e [h9g] w B Jfx F>"qUzr|]P-(E{m}5pCWeX{e{n-5d L6EX*pn-7 @3nmp+t4li0RO,mO, "!3PAXAKXxI[61?CRo{us04UVjj%E>evw (9$Q8JB@i:Q8S8C,.$ ]oBG5(zxs{sz  [gM<>"2)"&'HC^v2Dcp  &Q:X>VDNbTm9ehFJI-)tGJDWO! P}7 oypJ.RM7RG~ 1 czA>JJc[T y>xt,_{X"^![#<kJ6?f;$h' kb7F}B2wu<e'_^mz7uC74_}p, uxsfOE@s##*\]K2@WKq34 /q=>SόN 3 $u*!TY &-3v ,y&_:w&JqkxF.ft}Y~rg,LsM"cEF[N 5;f9 @m2 7A+&U1 osJhcb@mM5 li7r2 .(a =/7O},YhJ*K?v)WyruR,EcYI,CxNP T 5b"\3dD7}TDr35XoNJ`I.()$hP6hFE@(> _  =p 4GrE.qvKB78p!v[ Za7pFI,DHTK-?nb}UlU _c$TJ^Tv. yCXH v7%|H]q_d mJn r !~ dr axcz   ,XVM) 8R3ksh3fD>"͛tPb !~nc' d3 q 3 23 * ghY\}4^0t-Y/ Q&[/e4 Ow}| !")+ J1P \ i +g% NH T SX97Bk z'{ u !jER[Y`Y<v=; JRfVR [Uq-X A3 O : g L  &P7bW{ &2@(oj(,VsdrfMu@ct h>R .A: a{&LG6?$mXw[5 F[D'{# S(A81F'a  $ }q@wF<t*]a 5>FI7$gt1;!aJ^ ! %,STc t k 9 < ' BMl)^Q 7{ 90 .~E:O)s#p-#?VZ6QF;Q4"^jsTTi1Vj# `&!y]3:ezkcaUEENoIHSa0"(8{-()(R(St!"Hnnt"nI8?n 7qZW _}P:>/'+I\q1KY?9 %IF_H<;cD F6Q^A4 S'T  P 4Pq}N60OVM6]k^z(јָ%!A ? HDP  cJ w 4 ETR|rhLGPp|>U8 ;#I_8 96*u؟  m^r@y; D 4  {Q04c{%r5]7rl>h~2b|"Ko\#~ f[] ]c7 \b *c`X} }Dt5i/#'&J/'F` Z TG/0]du lcV2K"p'&\R& '.)- qV=W8[EmW7MG& s-PVr # F KBfh2T_6; +vwUvn'x)eu:{YnS+O 4@}r*Kn 4ky]{+H-A\ }K%yl$>\m4|7[+Nt]oFa2M q|2 Bz2dMF]\o%y l\ N|n3F-lU<cE23i5k  X6/>Pj:#M-ST};9w% :gtFh-nP#/o<Q U 9  yx4&2lT9#5pOiFwj}_Y&/vJxI,V%/GR)Y\=]^_^\ ZUCOQIF_DB>A;6 1e+b'$ e 2m׈Ѫdˎy=t cʹɝ  '?i7{#L>] : - / ?mfq  <)#-*j0K^3MYi _}mb, 1 v4 jdB7] '1"X d%;|l+t,`3) f> Rwug+J?55J  D '*q|ke|NXW<@A K;UcI2) byJ%3; ##5&$Y%m('#1Jal[ Zfm k7y)`\u + w7bN*K'8?t<\UH:_/Zތ/%b2?5]430+& !G+ll_Cw ? )/J[5y9( De'WSEkTV,#\&ez2+hwܸ{4}B0Ha) e F I !  V_:'RNt}0U1&;;Ae) R Ap>ڹ8K e#j# }  /"H_UK I X`]4a1\<6t0h']w rH+R=J\5Hd&@m\&?O  "Q52"Gdp6h VY6ZNI!U^eM=|lD29,tj9P)( vk ! nw |2 'd 0wDafM~`:&#=a.!l}o  20(K)4+  L/ht"|s*eJgUcZp7#!Ej Y\Pu~hT#fP  y  *PV ",\MSh6~Ws )B'&*3)"/TKZ4% | Gc DeG6E`NIm!OGc"$!!b q;W dF)Azn $^ }WBM]H+Eh*EY3 ?G9S0npڿ;סt)13*I'  5X N *OAy-?W h-36mrO+[H.Z$Z~ kHPݬZc.",,%B J_ :LB} Pn K "}Z |fkEvbo}A@r1]Z{ʵO )"=$6r"%U UvZ"#G Z^a [ b 12 , Ihy) qNRuvE_BߏNȢ<ӑ!n91-.g [(hkJ !'1I'E i | * Bc2 0 6!9/OL2ְЋ+71] *+0*] L6C fO$  F tx 8 1 H-j|U;[KݝӀͣȠT<%--LiN |%\'j Z"G "I   ]":VO 7 MAl0n } 1v\ r H%q 2F \ i d CFnS2=EkU1R" gFr9 jPQdl}   / >i0 jMZDKld\,]P(0 qx0n IG&F9x,y\ MXog"8]x)H;xONYpjU '^ 2^?I\ H3B2O8t QgK k$WgWJT>[HEmj=;t, <.~'m Rh[mjf R {  U 0=:2^#0p-~rL00,J^ < L3{zUp N 6Vb~) d ,NY2x(D{1 dwDp\$ߌhF? >No; $"d S   X$]\4TM8nR'p?:24.  h"!  Aek]X yNa i } sC~ i'q4q "m= ~ٶۃS [|+N u 7 G '"h1- m 8>ehf = 2&6?#< X5K:OI:) w ށ }&k"S FX %!! ~M is~0 usd &7 V*(@5f9 ?jy8:o9܌_"]'B 4 U# LW D* 4* _ Z& T =-s&& SMKq< o-.$-%P l6 d+GX^5 { e Jx*9HNRaC;dl )"fVV0TڝvW%#1),"yR] );$-igLq Bgu-^!)hipL>M  t,&fr@iE=>hx &M6J2/ LI _ 2~DrG{ r21S P7 m-Z{Q%@}=]w.%S@s7I.2qܐ pW!0/2g&#  4 d {VxN >}Jm_EtfPqe;Wph8-4lx]^nB KL o17j#. N"Gsy&!T&7 e-J/\s=_X`C4aYk"V8rNZkC~AvXCw_!I%X#OQ @92^w;=2AS7 S<G/q21#Ah&FZ(;Lg:Tc:0ck~-Dl!uqE8<?::yF3!y[D28 ?Zje5>%JzrFF66^]^qH+\T:H'{&j[12kV 9r;I{IkL%{f)0 ~  q 3 )#{X<ZKwIq:HlEUeGT[/iz~t?kHAEG+,>KqJ1pE|AKBHG-z / tGMm_]vT gtZ6*ME!1 /b x T ]*L s Y V  :  irlm 'g=1BN6!HYK("TJ.#rX]$r<I^py#>) ]?jCaXK6([a$2hkq80imH#-Ki|lbb]1M5#J5MPBY,@ ? y @ ` x2fO0%mxu"+ll>R4 i]+ ^ ( `_m1{Ue`+f1~;0*} c9j*JCzwtKO c@@qImQCng0kw6-Dsl+90]tAg{]d9 I D}eq !&" i 33  ( 2 |T*rnZ4 +;j6u7)DLSj@Fx>H9K#X6L8.Y)!nSn"_V *{ N1=m.Pj48^ Z |&G-azMNN`DqZ,A* & :X{ hlUMA T % z|yF(   @ :T~P_[aAA&hr[SG 6)1'!Ei|b) < 87 2 BW "Ov8e ~w(=7@gY7&XV +`%7 $#V>\ {rU )Gt 1 $IH u|0g^E # d}n"1MNCXf+4%uۼ ieb"+'8"##W RAks bBA2vmn  =jbbKMTjtd^0yf$D`tfyN tLr=TlXc  BNp  & lf s"U0~Ef.V NK  N=mJMK@JtEMu A!!ho wio> a 9 IR:r[05_mdS+SLFa_  ooG1ZcsM@w4Gi__$'&!F) 5 ) K h `qCP & w } BbScO#zA@/`_U@B8C`^6] %%"UXQ A (:  1 <7Hk%H_I9FYX>y2A'd*&h$F"L! MzS @zR l*w Cf4 U-w7 +,TWj] c tQz>2hv:f dg M'H+J%."T"@l ^9:_~ z t| NE~gLoy2(OZ;0[zg'jNgb{,_"#-e) {oH H4[l :( DH ?4g0{/1KD3jBc:/V9'&I';'"*|9 T s v( xQ  ? < myJLV:K'?5dirR cU6DFfjNb8l_ " Mo- H q % 8 $ %VskM)"'Or@anmwR(0Dy<$m\wN5 -HE Y (S@tdC {uAU%a_L (Dg*E#IA>\ ?{nY^v  B 1 4.knhH;'fiOl*]fzF ^-!EO+J]QG' _7 v >HB2~R '}iA~nWj%9uYd0au.X:a{#ne7} ;:;  Q%i,V+;,=GawUjOIRO>Fgt60P4{M' k-   J9S:*3wP)W:v-[.mzP) tO,h0O OQ{/ r $u! C=\5 o H ]T FsA 4.a"n5.n~+}Y5v"Y =T JaU tU5HM]Pf3yZ.q'Y 9R;Q,S }j4h-'.?  @  >YUamDuj2I2o%S\hi,JJ{KVTUgLI://i F aC4d@ U!AM ztSF(IU/-X .a\iJ ?Q]bG6.#m. z j'sa " !5 {1$ _{tp+p2ovcA8cO=u4-0w VPa 1l>%y߈-RM!! z e /  u 1  } Xl4jcB`N+^.juVAy%u}(]|8n e"&% 1 16- ( 7 8 ( Q6|u2g8ZpHCmj I)p%ev FM+G_gb9W 0+<12j j%x^8Q1HwQN?(,SUl}J?I#E H&@@#(UF]iiI(xgu"csW*l.n\v $*cD6 @ m  7  x   )5f {"$`Itv:hMU)4z`oSlN 5)Y8- B{}yTXt<7^k|6c 3  _ / g>!g{ s ZBcjIdBvXH-}2`|sU\MK)WQ[s3t`%q2V&sK)NcsRL3(<,-Y`bjzE yWB4{<;X k6qNb<3)+JNi7Fzo31-40Y5?L#h}i}LI7{'\^s*Q6V{'I':ejv %C4M\xY0T'q,T}=@<qd-9 BCV W - S ~mI!AJ"24{dK4d4w_r2w)Z!A!IE%$h9z_ XWCvN"$'9A9ptݚܜ$6*R2N-L :< P6!~!,),-S!B ! 'LrF 2'-iMd Kh,J'L4`hR4'd5=h4u_ +V!kvL I V,evP_gY&߈t'ص4O8P4"R-e:W?2xBs`Q}% )2! D7 _ } ~zmlS$30)%%.DD/+g nx{(?0223)UcG v" o"b. z G(Vn8=3pA;j)?EJ'5S+&y2iD#R/)3t-|kZ1a Tacp  :{vX~o8S-O4*e{4y;61hK5|C9M# u{%+aj&+(e = D>LO[u1-k&1s[vjwQ4݋8 !34z( s7j-!o L 5wL SYiq pGAK) /C=H!l]5ZUe b  { |  9K0,]J*[$Q2NcD\nV*+ FjKMQN$V3(5Nz)0Lsq`RFB:9BSV vIbTWRTx3L .l>QV5 < ;zZyrbxj~c}#{?0W2K4!#-V]~e6~2?+Eg"(D~\S D<-cj ZH(}h3V#qtM\7f/1sr=e(Tv+28}|kSV'[Yd GgAq~  n(!VH9? RIV=O{F*#>$27>G|anFT{Wl|u~@g"Eqt:`Y2|*u[?EE:4@=,re&_VNOukx 9@M8GTLT7KT ^Rq`ewJ`<zm&Itp6z'Z~filr eKZGWT.i4EG/^tE[.vDDM ?eT(< < hh8!x"B9*<n3DM} .UN ! IVb r+eZ.d@ )EvYsa%i}cf)(_wn1N:&sd&n;=$xFkK<"E)j;K~fK~vr,=@;[+3n.z1jtV]9=Kz-{'L;;3S0&X8nJcmd-Q,a V^/44YhB=G"kpV(6: xRu+t-|3:>@ 5wFt=': n%5M3e0yKZLKAj:L1oI#S'O4d)e$#8h1T#S#J1dU0%Z&WeAl`HZ<g|~c EwoZ*%Q{dU/|Gbhdd.Q?[a~:.vslylSwkd , ,6J%c2 0;(, x~B2Y :>NP {nUfIkF?3,XPn|v=OY(2eexRZ7_/QlUkXuQGV&C226hTtg:y]sxBNOsQU WLI/N:7!MYCNhLvl}}MY[QPHqpwywre[XLB<@H@6 fQJXMP>+()34:C@L`]\PIDHSUT^`G  zzqwmww}r7Lt (FTk.5FYiswh\H6$}tS4!|f;!-AXnO6KXh #1BGRcepv~~~ynprdk[^_VIHKB85:>BJU\jtu   ~hfUE/"we^\T\OWbjmttz|x}~qPRaUjk~|n|kqrurxzmdadv 4:DZn~(%  yxncQ>9! tv{z{a`ZbUTUOI>@D@CHJMK=CUbj~?Sek%,-0-0'"0j[J8,tdEC7<>=P\jy^ihXlxurspwlsdQUic`\SIRLXhep 49CLNj!*"$-/.)~saO82ofolgLY|xuzYNfWc}x~uyg|fn\q~}^x5:WrF #}yra7:#I> uXXFRh.B-HD:EGDopzl~TH19*7[A |cik[Fo83GZJly1PvvtokroJr}*?2b#)TAlrV<9MGA]C=CcmK2P7S[%@[xub9$Y9 r"'AB@=OdmC|o_~AEl`wg|aKKRkfr[An{0N@5!WQL< \{_bDfok&&hZ'$=f +=zQ%DTvU}Oy{TYoSgF]P4!*7.{\XTy~D<U^3JKGsS.$DwT)r7Ck|FUq+X^*E^US (-,ImP8sU:G cQbt|}m6 WG}+oBI%?+?;RK6Azk3r4\% rGH0QR/Y~75|lQ<GSZ20%e_F 0O4> $k#*Z Ok}k{`U2a|Zb$jFri&E7'yscgEU{@ URAJ'=nF 6]|rWv+WcsO-]hwcTTHFa')ED_l-~sE]4Ui'68![R8kv}nQIiUUuQI~u $*avPIO?B/LIZV6#h[K_ / ,v|u$Ew\t2@nGL;?4p8bJ";BY)Mc D\8Ivr13R!%ZA~Mceq@oTn'$BlosIodtlF/U|d:fw:X)3%(8?,h?VUmy 1.22;j,s4Q~#Bg&tyql5Jr]Z+7=!$2br/+Z VxZ$9tik 1eCN\&+25Uu>/p'c1d%=`rqSCPrl8 rTt2/OG9;Zwlv70 "q S^vaDs^}u(}d?$U\m`mm )4#i/H6bCv~cI[yZdZ,b/**KANrPImS 1rmBUfB]SY`=X8wzhYn~'>}Am/@C\ygsLEvVbcMJ%W}H,r, P2u4DqjhF. >G# 9WZ"!)Vfp(kp xetcljYrR+?un]d_pXXMkG\ Zsuw^S(I\#bY_icR;P{dRqw`bWY9tvcBSLW|L;@*oji*7.]gX' !\$H}zteZN3kPhQ}UTZWYv|oBE`jH&o^xewcodec2-1.0.1/raw/m2400.raw000066400000000000000000001015301412132000500147020ustar00rootroot00000000000000   vgl+z^^Xs@KR'b. >b)z tW(9 B.Wg%i2W*1"4=Bh@K\MJ6:nG-_c~X+atOs}F-421G4\"L)n(Pc  2 @ 5W@/2<9t6 j f(2$ \1O 462"Pn } R Z pv^h-). i  `f : Y f 2ty|O $H4t w DV"ex?'q@7S  F@GG  v` -h R5 {ow>2/u3P !G hN}'j?V P kR\up  D}P ^V;a{EH?g# [ ZJ+A9Yl +; P`, @a< r%"SsC}9l S !$2z-iQ5"g`Su eL }@T=bX['[k$JDEd,bdwBܥ9M&w "Z,rz39k@ yS`JZ- fT jf;RBh+%  )k- 6CMߴ׃%+}  1 : X)7 i  QgnV/V LSi !3iIP C=ne| #l H1oW^D JZa 6FBS>+?"=8ew }1! u_`n"+s R at7j O (-X>[i JHB?1-"Q:Q " Hcd%N,_r MHi4A@,#6^ s ,?a@W t He& )~ _ TEz+jq{D<S2n =%vtM}qo' #@ ~ o&%FT'WogBG!\wIP]{h?f 3K`P *llyW]@<ij->_ vXu ,:N+_C4 ~@O]C 3 _ 1mn$DUK@h8kOf0 T"Ko[;E$VRwI;%8rP(3{8T=>iEvZ?=1GLrz'cv9xqT+mTz?oX?Ape?fkP++,5("  )16897410-+*%!#-4996430+&%#"!!             9J3 0"$% -0$(   6E 'VWD6@R\NB5[Q( 44>3  @A $ &                                   % *56 %!" !:"09,--=ZR -9&#HP@( @K<% & $$B  %%! %T1E*/LD OA5XRP1 / :W] /Wt & *eg, '8??Xa, Lqb~z7{2+zI((Qr!{/(RNO'A ,iKGQ<  Z +c8co  [ -WCZ=vW E gW  Ec53j UbJ m"h0"z\2d3u@WP"A <&f3,l \zdqdah;#W"[{IA> AxPW{O 9 P((r} ^'vLE !K'%FYb$/8X $O ~Bm(k+ +ؼ Ml ~!k  MS-yj g!&$ /bWK. (apgq,)1V,E '{ӯ  "o߯| }pp"?"A4i8- Eo 7n>K** 0 z0a4Z+i!Jck ! .( 4ֵ GzR%`J^C i +Z3/ ]jX i+w/&(@jS Twow[ۄ~j\  )T:|Jf 0Sd'I|$n&O)#оkz:}Y ;  Q oOAL ?^us^slyn$$I ;ӹݡN;e; Ne$ gg o dOPcH fmi -$z#2?ۍMF -r TV ;rR 3 8Q" $Y2r* #!S נE|*>  5*X AdZ,h V 2{jsM*- v!#niTپe<? 6 |e%1NjVeN$"`9FnC;"^3Jvn!G'/Yys'( 2#t]( D3@e< d$vv~.  QBkwγ ќT-4,?m 8h  %)Mi V"Y b)<^[;y~N]  ׵ 'v*!0{$ 0DhH mm0#wE7 i=ksoc0Xt ;ǔXs-0#" B{ J8 # 4m$ /j'/z!Sm;M?ap.SL A>V*@ũ &0*R2oCa` a|snh ZIXV^T  2شZ{*, | jMnd sBz8r Jeo ZWaJ8# эA '!&5Q2[H0a&kS $ lfx\wYc[t%|6  d$g"| Qbb!p:[uTh1P4 g (+ ,9 RcZqb | uOޒԡC9&9Kq0 F+Z^o  LHksiy:z,*A H (0 ' D 0 hF uv ~J'!` &IReR4[SVW^G(^ J o&fNwu^ E X  {0_ W.:k\yQ$7 T B=* F F8c ;sX.h t84IE*$``0Ku Mv P N  ?}Nq||4vZ*UlmL` Ko,K _JV>p*^V\r:,!?0?%x/k dA1(4>neXAe=Fmk FU`"? IfLf3D!Q Jqs[L9?X;2@j'7#KULFl0_S$Np8Qc\jn- {VUkxbFDQ`e9hQIW{J 0?JLKJFK[w 3Y|zW/l<W5.f {R$$Hf#6KgNd7vAqU2 $W&\;""#(7=J^ef`XI/ 3Mc~ #8_.VosU/d8 pN7(&%7IauvaL>.$$.:DUgx&Aa5EQ[^ZSD3Z3 cI7..;NhpaUH>=>ADLYer1Mk%4?JVYS@+Y2uQ?96#GYFKSO8)5D_d`l"-Gk4JLNZc\H+Z*zZ>._d__R<069B@HTaw%Fb/G[]QIKRI*>r;&#(0GvtibXH9-,@LYj*IWH2]I>uV ~ nrDs-_!5t >Nw L7,e[B"</?($xue!b>KN:lxNBZr*?c\&@ =K,h)mbv']$|md|m d8b*A){b5BvE#KuB"EW;qi[D x!`goaMKx)':nyUCCX}*PSAdOkB*DiI:DL_ VRK|7HEIP\|AF'(h}bu<>xs<APQ`3@ ++u(*YPdaf`%c?t1Tth~ZW9l45tw/%s~I)1Gz O\^(;~Y\\y > I:.W 9 k XZn(}J+f XO{OYN l J VF28 7( j / t "2'}FisQ Mi ^z9w n 2 1 r`9^  @ ^@n! FyeOrTb&-&> Q17{UK U %Slvgn!8 Z Y \ +*8+sCui1'l  Hg8! l C :  5 usGN 7 VDi_W'[2ZW?NiS8mwE'go sj 4S|<MvJ8A Bd?E~P n , R j=KoWfUo rW2dk_eoq(J!5 .*AF41o' E J]T ` g RI T` NbR4_ms' e%38 5);B9\60 W  vD " L >  S7rr( c ,0]O4/O!xU K + v1> MVCh M D~. F6rg 1 \+.}.P_ dFp5Q"F)%Ob 5 .S,Lwzf=df~XvNio. 17Y)t4 *  IYNRL 0sS (Lk)'x[eD$q]q # Jo2e`}#pKn11fxW bJr%K'K0o6yUBD|X)+}X ]%I{_c8K0||lYY[5Zi2-LPlC#*( #[K6&Wb()d~ &M 74g!J{e8I_aZJ*.wkGs5L&.{s,:j.~(_Rl!K^W6 6p)]l0! bu;sC?]x4~0& ,<InnPviF]|7bB$ lN@l7&0gL~Cezq_M/yS1ynn%C.'^YW;/%7Sq -OylR=)!3;0nf^afp~/BXmz~~m_TJ9+  (+'1:CJOQZaffjje^SND>6-'!        -7?DCG>#Mly__>\R_dCDZ3&b{ TgnImY q]Y0Td-LZqY+BVjbl*6}384sMP\c *[X]A[^r3 YBlxw QW-\N've'kA~kB5:izW'~ c))]R}'Eqyz25!v?HJ/I(MT=ZZ,Re\*b*J>{C-50v.(  49IGU_K!\UJA7.! {D. 2D#1?7%# ":K+ *# (%.+'2* $:?MK>  372! %AIA             #5E>&02'&,#6; 'H%2 ?.  C+  7IW:EqI,&Ke) SK8p#mSnOD>VI#67w%s7'=^Das]9`4{ fBXc :qJeZj%kBN.3 d^n#xaZLyc^a3:zPt +_8)C>V U1E!48~?O"8PyF|QJ7Zn2ws1>5f qAPtHbKJrK4xu< Qi\%,5#zkL"t1b&]E~Vq& >[#s=\\fXu;t|guQ-<y^YKs<ROY~N(\Ui KTr~VpB3){`GCyJ; <pLASA(cTm\>YaUr:HNJS>M  ^P]/R/Ts:Se5@,f S.3ov5D[wUE>l9 5Q QyI~zjT#X2 5TnzC\%N~L50W: lC|0=mvP" F g3W|An+y(o2qAM^SGoy;gz .F_(o/8< Gw@vD i\_SfA$+?E;j=)2BYhm/[@csY>e<W/sc8[z  "\> V\'7_{5[9*H.EvusteUs~]@J2=v(#?o G\!#)RUrE_g{ S?z@o|.V;"b35)aaTN%J#.rB[Va ;s'#Io1L  ax2|7;1  G[VHnfWX1jR4a)5&C^0uD#`Q$kg,aJ I  i@'po*FXX;{^ls|C)v/8u?JGA/H+_u`p C(G`> DCw^dl Hl )71Nm3J$w:,dO1K|mg%PwGSF#:0i-E|,>C'K6Hp5Ak#{T7 >w'VxI'+ fl@"Q_&zkY/N/a- #CSVo'1>d}"g!jgA:}mmr\JEHo0 R_L<HxvotZMJ\E7RS&j3V':V!'EVpK|3.%,0xD?~2cIb{1?H!sr&WCCW mf $4[gf&QL#!b ,z!(.eH8ucLaS7  - +{W4;4E[{t B k-U}b7*9&ZbPKBP5r4a=T! H ` l0 v*H l J /=5| | < V 7/q^YhGP.g yDyop.&2 $ 5 | 5!L0 , J-8G,6;w=k r qC#D_j7 0  6 bV7y8w=6~ N k<|TA_U"v fTV= 0]),K @ %gusIuouT Y >Z-5MFPD~mi  rw1t4i{I4SAi t B  X([j ^ ; R R-Pt.bt= ?DexC#h~ %MB}e ? x.sS #H<'BN o5M1EV O0W.h-3{~[Cndoh\4v(Y,6ky @y V 3f %7;  ,ZLID/:-\*M 3jl}QvU&$_@*g% ?w;,9 1Gj,,\ei ZI_pR#)=;6])c,w3}5lJ2>\f kz:M`QOi  EIN1!vo2Kh_Tt GyKt[x R<( r]QNbWpxyIqv`U}VP~9n\R@.$r+(6([n>;Gz V1A~yQ}K`FNBgqCEkg]7o Yr;F Q F.&PD }/MLd fFWrVI]1%V{ ^SR L"RN`OtXO,W_q#2jm(}tp$[Hta )   $VF|g"MNd<%b@ s)|^f&x+QpW P7w-#q^JS2wG=u\D!4.0&!- Uja)/kLUu$`tFt^Eh[>BE<sMvj*sv'G-"Q(+Oe"a)Jzq@F LUJkQy'/<4C;?{kxU:ojyBHt*V?y$NS\Y +:Xb4t%HGz<#>=%" DZ5(bxE 'a cT^Tj2;/SBX"_\bG="'" 4N \5`i<8U`m@W*8PP-<-|St ~X 1? k "ZpS.<B0A~5LG[(P7'5gcD/S#^p{E 2[~M&!fEg al9BA0Bbyle]WUu'6>x9F  9cIDTcd#Zg/d\A6)r>k+[553Qu]LY_gp&TnEi;sN*9z 9IMH:0 U:  2JYh 4@^s|mWK3#ukqg_ZZ\aofk~ $1Kb|u_G-}voib][YWUZ[\\_fhpsz(@Tj iO7zumid^YTSSQPPRTV[`cgnv #8Nc{xaG6"xolc]XSQNLLMNQRV^`eku|3G[rmTB/"~zsokgc]\YZWTVWYYY\acgnu| !5J^stbR>+tf]QH@>9899?FLYgu-C[rraP9#vl`YQKIHFFHKR\iz2Iaxzk}eD5xxVdT\NDo} AQ/<BRmf:22D 2r.a}eS-wmem=9`xM[l:Tv_Xfb(XM'/VfY i "IPD^4K57CDK,u!DC!dV7FKT5:`:kI9xD6oGH}+p)NdvC+-A`m7$=tC'&T:}4l5rJ>6^ L)Pa0 C8SVBYqT^TJylR4j0M9 O8  WK<7PN*uGM.%uL*ds~AG1@|mh= p<0'?_Cf\o0/ J ; i:UJ2 t[*W&S@fsDLrb [AA[f@h ?n #AjD6c[bKXS q8\7{y eN\JK Hr L(hID$Wag+ktlr~}OXg*1E-'/0.,0F#+9#zvJ; #{}G }D $=}g&=YuPf"+I(Y}m1uxU>|y9 /2 [pl u(eK76 1"$! /"6AT0!''; .8 $/!-5*2cLV?3aoA+C) #$  ,$     1-"#  *2&  %.&  %.  $       $  !                   %%      codec2-1.0.1/raw/mmt1.raw000066400000000000000000001750001412132000500150210ustar00rootroot00000000000000`"h4$@\l:hfF@P.hl<BP*@np>H"hLFh4ZlXNjt\DxDn> ~~6dTj4tdvrP$~6 ,~Zz@ ~>xPjD`l hH8TTbX",$2|zttr,L.\r*:l6(~xtl$>lf:fr&hX>T8b<LZZ f.(nhj2x2V0L^&N*Bf(,Z80F6&6f.l|rV>~Rj|.\THPbJ4\~ .|tjV:RR6Pv4\`,Z4BF~f\0Dj(bV|V FHj^>b,xRj>jT.\BXP6fvJ> hznFnr8 r`$L^4`v.R,b Ffn"<Rh*"^\x bN h`h|4p>$r^DRdP@df 4^&~ VvH$x>XZx~@t|&\hxfzNH0f. J8<L*l` |6>HN*p@`>lPj$j\00`2| &vXLhVHbpzfn|D L& nH.&j:j`.\&Hd&(0@`""n:|$x|2l:8HltR^, |Hzf <nt~t(4BLP$P ^|~(@f8Vx<^L8jXj4B("8f(T  H~Z:HlPtz|"^ T2TF"Fj$T\zN(Fr~J0HLv|, &^&v60*<~>$NFJt0p6|$<*n~b`< <bZF,@^",VfnH0`(`PF0(4 ^0xp nVxBBT,&X 6Bd fxF(vDB"2f 2(zh x$6tP\NTbl2*Z" Zj:z 4~2F~FtXt0<tRNp<6~b(Z$rJx&^&^:"NFX|t<:B,2*"l`LxVb(@|blBbD LP,(<^H46p|`$z~.lvJ^>Zl< $Lh\fl(Z&R8(r>Z&f0Dv"Pb(*RD>\<lbRH4v  FJ*X@lRVV2n> tbp >P 0Dj`\HD~~~ \dL(0BxL8> Z<P(jd0>x(t $&\|4@jv0^B:|0z*j6(|:, `PF\ *>:BL ,tvP.\>DbJNhTN>`b`l|dV2&z< d&HbL:B:\0dR^6rPfN4h 0x& ~ F hBj~P:"PJ`BHv4ZPB ^B:8.tdXVLZ|"B`r(|J,\rd H2|$6\~4Vv^$Vtr<b f"6(f: V.dTtHl@|HbHx  6H^0`h"xLtPT >tfRHlb J0DVZ`828Xn 8&(D.D0RPTL$&2 p&^XNv"v<xd2`HrpHj&lx ,0>P\"|8$jJ@D&F0 TnDdf vFrz>$Lr&|"(,,HF&VBZn^~.6$Jt6d`Lz\.^\nV r jdrdvLj H`P&f~N$Z(xZ0tj 2hF^&lxr: v:>~2`z:HP|L0>@F<,l^$6JZ0,P.<@Rtx>>`^T^LT2bR04(8 "^t&B ^t:@>(Xbt dVPD$ (*8@@|r 2@nb N.Ll^Z,x>r.6Trd@X|ZnL,.H&PxZzddZ*tFVn>x|(FjvFP:,p(\l*4hNlr6fdJB.v8H:  x*Z@n4>~vrp"R<FH4Rd`$6@F ft0 ,86LhfFLzLn~"`$^~Z4l :n(p~pz~BFl,& $FHvJB\dhD88( b2nV dVz(| JD.`Rv Lxz||vfV >zjRvj4n8 .v"lRl4xNb*Z~z6Z:b^BX.2xZ:\Db,$*B~JPl<8b@0:<|Z2 6z @t6v@ rzJff,"X02>R LfNDhHd,xrj|\2 h42fx$\R42`hl.6rf(< pzj`lT  r2LBhHX (nB"X@*|&,^>T**tlRr,66xB8fDvfr6F<(Rh< *LBrrblnh0RJZffFf|R* 8"l@d|4<@ X :,hXz:LjHBzpl8>^:8<X:& l0Dzhz$&H|  R80jXp`"txT l|p(xx4z&P4Z&n(Z^^"X`"@H*n|Z zRNZd:\V8FJ dxbVZ N`R0:xd>ZB@lrp(b,v Bj08dD4|xp":Ndf h~^dhJhZjj :<|\2>6D"R&.,*Tp^l*>6|j$ d6j* l $$xLL4 Z xh~p X(p>vb Dv F f~>4$0`T``8tBVf~jpR4$.xn88>v hB>8*0`@~" BL&`,^0tppJ j^>4Rd.VPRpbR"ZnB>l~.,,@*NV||pxJzJTht"f2PJn4.\@n~ @ ^&R<>rJNN22r >hx8\$4pJP"pT*xhn@~DX20HR(fZRp(z(R*,P:rn:ThH b,x|"vP zF|&T.\$H@&>Dzr ~>tN:Jrp20lNJ VllRJjN$<`T,2&<TRZ.ffB Jn|,88lrF<>H(Xv>hJ| xLPh*6pr.xFX:,@ZhJ(d"V6Xb> zR>V&Llr4b"L$:<>,PR^ZtFhn\v:^80$62fT:X b x.BlP&Fn,fVd*vF.R06T(bz:jdPd>|bJZ@$z@2&lJ8@@(.8jdzp,n^, PD~rZD&H~6N>JD h~\t^f^X@..:LL frX *\6txZJ >  l\@XZh>  Z8z|:*nP,f ~ 6 p*>`.&\  D 8Tb  < N d>8nZ,@B 8zT\J@<z&r,hPj Xt ^:Zbl>8 l|  >z `f,x48*4 . :LL48.<(!\NZ'L ^2 .2J 4l  vz~P.~"x 62tdp 8(nD.@' ,L~z$'FHl   z J"0B ^r* , 0^ ~x4Ѧ)nT^r b B|:dV T 8<t ,  @D@\Zd 8<4 0lV` N+V#tDtZN\lh XD Bvl  J  L*L&0> ^J <N(v`HZH>^VTdJflP n.ZxHR Xj b hj  T "b4lHhTf |Fv > T6f`r nz X&  N "dLf < $ bd  p V$>PzZ L,P 4~tt*FfXl4(`VDnj| 86NF:lTZtZB6nd|b0r"flfFtv`BRvP*xJFD*84@P@ZZ.24jL>|"J>.6j4nTtXPj^~hf>DZh<042ZLTz<f88R.: nZ\V&tL`(&P|NBd|RL$DbP "$<t"j,2^,>pH&jJ.6 "~@,n\v&t:TFt8|0 Tnx~ t  .( F&>tNLN8lzjBhVdX |H> 't , Fr.H(8 2z v VpH P,xL 2 (n  r`XD>D`4T<.t Bf"  z"pxR"&&*6*bxtF (RT V @ @< \ ~N 8  ~\n62J\"^#D|.(>2Hz..4@zHn dD >lrT&4F   ~L &hnb`l0RV ~~f  ~\D< pxNzVBd ~XT "@`,@.  & Rpp  \"P&bz 2j,^b| D ( b$d6"VL 6 r 80lXh^L.6*"&j&rJ.xb0 Nj>. t rL2fLdd~t,Hd|.v |>~<HVlrfX@V>,d V&zPXf\t^dHJ,L~(`>>lxp&T@\Bn|Dh.`j v N`@$~&|p\tb.8z4^ZD&DRn$B0|$~RXVHDZ$4@plj|NDnJb.N lr8x@6p^nDT`r8&jxrLfTP8,Xf`d6l>H28* vV6pH^>RHR::> bV:^Dz"b:(0D| hBNrv`FZHFv\fZD.B`:x\(TL ~>BNjNzD8.R jd>B f8$^$n~xxjb4\h0 TT:NP:ZF~ @Zh4<^F> <T0zr`  ~pzVr HP  0 VHFn *8 ^$  P^*>\~JdV p*vV8*2H$ (h>DdZ>@P ~x d" ~xVF zHHFf |pH 4 D LZF ,^.H4z D  LP>h X&~d .Pb 6@ D0nZbd 8v (FPl2.$ffjD|8l6| 8j2*~@vDDf*J" J2<0vR8<J:z0V(BH|~ ~0T\2PLv8dJ&n4XjxbTvXth"dpv"((TDP\fb$&`L&v^^djJ|lL4>22,^h (T ^   $6&X2|06hr.^J>t<t,0Fn>2npln^v t2j Lzb&\:J8(26``fNhhR  x>0L~nfNn.JF PXH :lt&>> F <$,f,|H. ~ N vh4z*<,Vf 8T4Xd~@8(Zj"`*Z$ XH>@:.$vn8(|F.@V&86Z&V "*.^t2T4R*L6N`>F &t2RpXLlF.dPh\8fVF|Tt,v($B(&VnTBn0Tf\vN2*FF>.|(hLzHH"drlxn L*V2lv0Tlx ,2dH>L:JNt<BZ2"N` R&6| RhNHd|f&8ffDjjl|XN8,^<"X&J "d$~<*`Zx r: :pdnfdJ.b2 \ LPvfp|``H:dT <|" .:  F,Rt RPP.(^>@&rzz.n$rLV 2~N`dV 0|4.Tl, .d"FRFxhD>B(T <:(@n B ^`h2v4B vR2. J Z2>xBP x<hv < 0vnP x nf T~4|&"", .rj,vFP > ~vx|  pv&4nF 84 t  :~.P>R`FF4~D6v*v<>0f  $'hnrNhF HXf FV,dlBH @ $#& &-~:F^& l r fH~B~, jPp4Z`|Xh%R;( <"&.b:|&bB R 6 p~ 2. d6 jxxb R)28f~:t+FvBȊpݲ 7\,!rFО|N^.5) \h*xrzVB8Nf(پ C&HP1F2$ |J 4h 6 <n'*R+*T6Ū j1X5LVt 0(EF"2|Z&5PH# f2ػ!X1)p^n$ɴv d|v"&$p@@B&J8Rx;NA"- Z*0F¼>"(>@5z! *Hڞ׼ %&@.0fpB "pv" " X5<ʨN602B>D0;!Bķxʪ8E<'T \ЎNdx+t=`2r J(^`(nzN || KX"Rɔ> hJ/>:r:֪.$)4:(Nz*  %x/2+@vʖۄ(f &*P: h@ !K,^RL %Dx+f9=@f(,t"|%*,`$2D""ܐ.("x!4ZBd> 0%x~p84@ t .^Ф^B`B.7N5BF²r+R9D1|۔ϒ 9<-0~t^L & >Btbd6$X  6 x,!  R 04%0@!l ,JN 5vD1l' fH2/.,"Lռ"Fv @dl: "  "Z `\ dvLV:,zVJ6jL  4zL,t2 .:,,",:0(.n^ |!  Lph:dfP 2x0   4|L$8pL $ZZr "V)^+&>$J22 ^ v\ݖBX\ 8:XR|Dnpx h 8B4bd&r>:^$4J24" ht$ $d,) bRFp(. hN VV*V fDr t f`(F@(D @ $:02p r Rjxz8d%.(tn*ܮ@D ^ z Hd<  nl\v zB ^02J f H|$,V D0p*B !, >6  b>btFN2|PT &t0\F  @4d ,VR& J >\llL(d.bp\ތh(2Z 2 hfp`D Hv6  &n,$ <> x fݨV &H% ( h@:v V> (:R\. 4 (" 2$*TfbT&vB0 ~Brd'&T4^0R(80  Jx|l \4B> (PF$ j > \ *V@L8~2P X xj *& ^  Vh(>  tR^t:b JV n |2t |L Fft`2 L 6L@,||@ dHjPxb Rr F B>b(l >bl .Z&PH |z& V,*t>xL`TdPR \,2 n & 8 x~dFB>l~ Z T LXnDVL\ d ~pXF  @0 vDPRR`(lX  nJ\HPP^$BJLD6FHxJldX\<~>p`x D FZ H|$p2N&`DH (`x \|V\db<F|:nj*<\nL L8><@p^8d0  |8D.$"*06d$4X >n|^tF\B|nzhln|H> N. d8Jn \@ ` :6vBn|nVV t6:0.&D" : V66>zt ^ (B\jDZJTH$ ZfBh8N\(F H4zX"b2R    @&`  , Bz~fzdFH fF2*~00Br<.Fl4 H0 > .,n2"~B<rv`|X&FrT\h| n|F~,ZvFzl|l&bTn`8rD:,(lX@"0Rv~XtX4tlD0vR>vLLFvf&vP", B. L`(,F$d(HD vt|<pBxRD*8: HDF4BLX|b<Np&D^t~8NBZlRvJB"`fbL& zd&"j.zZnRz ^X>L@rj\,*T6*2 PjJJ4," @>P<Z8N<*bxf\d8hX^^v2"BjTr6vR.RN>bP Dl B8@\86~@\Fb. X:~Bbhtl6^`~0 \"b:(p~N4@&xxxL@NT$0(RlpjT`F\hjp8vXDxzl Zv$ x(|fn4ZD XjHPl^bJ~*R~v<<fFf*F.`nf \^ZLr\dFp`p|*nnV`n~p\`D|6zvv>8\vJ|r0Fv6h^Zz NN"$":dBzdD 0@jf.PJ8nFVt R:(<RZb l<*<V@dN$~X(zjv6(vt HF<~J,8 Xz&$(>||fH&0LZL` h|n&DF 8RN22Xh\@~:N 0 Pr~B,@ F d$d6LR| l.:```,h@ Z~"R2`,HpPzblzt$B. '$J3.%bNlפ>,8Rt .V4rt0<~  8 *r Hl> >8l  N f6Hxh -Tz D < ~z9((xR $^ՊntLp lv" t > v l.>xjJ ^ J 48pTr%(޲@7׀Fz$J;pZ $HH ) Jr#6 BhXT "FVFRN| 'BpzFF\TDh& J4*Rb\j\4Pp: ,&DHpLb8zDd8t`): #8 v@: Bv^ z48> l :2J @>  n 4 &Lp N @ >Tt`T&jB H |J|Xb8h4@rD6\8Bh|&T$ fX$*>zB .$8Z.4"<^ *FfV4J02V4Px6Bv$~N"@tlD6B&fjTd(\2"JP@*Ft:.xtlrD2`~"tf,T`vLX"JzHP tddV2&H:4\L6\@0 NH< lZ,^^zj~zJVF,LBRndD&bn(4v@PZfX ` @L f\f*6|.>D4~ H`R4tl Ft82TZp8tlR$z:tH>r,BTT8lzF z,DxP"f~HH xLp&dxD|,*FPDX&zHR<B|Jv2J`JffX>@4NH8|$*xfX 8.R~T 4T`bvl  hb"NfF,&`>&8h(n>lD($ fD`"zdzPhdf>,nZ.~x|*H` vN~,&Z6V`"N f>4BxjDV`zF8&`>B"@* 4l4H~BJBBNH6PDPn$T`H@v BRFN(4h~8|D*"x`*<6|>,,J2 *(<,~jr><48\~$0RT&Z,bHDTx|0bn$*V0.D0F4tN*(dPP6^f,LN:\6tDZ~vB~fPff4|<&B4^fd0tT(>F$0Bb bfp"|D\(84$L^N|FxN.(v:2(*BFz*N~F T &@0n$hr|*bV*6^j&H6^pdfx"r^\:,>><Ffz @Zr*bL4Z(0ptn&nb@ZR,82F 0vp2\Tt*^H<"^nP$.vn^^Fd>| "$Z$>@L( 2BbR*vbBXFfBX &2rxN>Pp>t|bF>d( "^`D.BPh.vJ|.f6:BXHF(f ><T><DHhR|vb.*dBR$zt\$( D<>lP.Xx"HFXJ(|$j2 D<$|d"t2.h`H  l@LF"VlzTb64&.>P< 4nF@hNfh:|lh"Zhf" vP| "R* FR  dl |  N"T$ .l ^|Vr^ Rr:l:v 8>D&L>@\&fZr`&tnl^N>L" n vB:|hZ^R ^*: d&  V :2t 8*,F @DL< 8 @xf$Fj^j* j,t f,@ 8!0#vXB>܄ݤ ,H 8~X6jZr2t p*^xJ^0hB`  6ٚׄTJ%+\$"JD^"6rr* <&$V( \,& LR66"NF RPB`n^x$x  $hf <)* h 6.z ,F | 4 0 4 : ,h   Xt.\"\Vb*|&fZvrn  >t8@B"HHNt::&V(\Z6ljv6Z^8N *b tFprvhj"hz.v`XN&$TF,Nx@@tp:TD@~jf4xfzh .h~>@@*drFHnt0pN<x0v* \6zT>8zNxHR0N~B txx\<j dr(Jf$ V0V^<|"*24~<&vh66VFRd.>bdNXp~.$,BZ  n &J:vjv |8 xz(RFd6 d&,6VvvX:< ~ f(z>~L$ >L|LbT88~ v Plrn &*BDF^r6>:D"X:bfR&nxZ&vt8 xd ~.f@ J rl$*& F: z&p r Z0 $@D`<6x.2*N$ lR0X@4@z.0h .`8. &J | |8V$xlz((t:b8DJ!|< vXz&$( D 06vTZp \" Fnl$ݴ F'H\P|"B6r"v2$ dH^v BVF Rt&`xf< Zd^@h\ Pjbp<D. 8"*8Vn( P2L>6|b"X ,< F2&j>~dhpL "h|.< 6HRL6P2*hD8zL`4 N 88dPt>*:r J jxp" 6H@L2h*,H$RnRVzXN. JLHl ,F0 "4N420hRVhhxL t "Z:r ~<FPx:<,d(88XV ~@vtl $l\Bh2\^t.f(v<l*2>4r&H6x(`Pp8>*$rdV^d0*H$l 4 v"R6R b8b8,^zl 0T$P|,V b6L\Vj(@h >2@j@NRP4>f0*RDZHd~~`rNDt:^t < n8:6xvV<, :>"xb:| V& "&lfrfNFjnFz 6 < (zDB: pB j ~nfVN>H(F:P6>`.vFZ\&lHh  2  828 6|*ZPJzB >$Hvdl\~ \ x L&JbfJ`Lr~ vvT*6x L \v6p8zf BFF L P:\db<~ -v68-$Dn2J݊~"Z@`d߆۰ x &1T8 ƒh" LAI1N  >p&"BD;-(-Z* vz¶۾$B*&#\Fd0F@ \  Zdj JEP2d~Zj޼355-&)<  D؞ޜF# 4H@4<"@>#$;(V(\6:"ξP$=.P  8:|cTlڰrD=Q1+(&#Bȗ«&8">0& I"YP/PZ@.҈0 T. 0t";1n((/D.N 7N,>?hrϸ6ݦR24f%68%LT*Zx -*R:ݠT$ rp  U4. v 2N6b:2&59 &̺>n$P2^-N#BT,ͼ̂x$^x,Xp . n N6,. xft`Xz DC9 4 f2 $L,3pl^jjNZ($X%=t!BV*ܲHnn*)-T0,@*ո(Pfx"fҤbH'1 $l0. >\<\<12$ v4@,j,*  |% ztj6 ,( 2 04RvfJ\2b,^Lj Z:*$$ l *.( vH22ۦ L< ,Zn$L db JxZ.dp  H&2FNVl &B *dl~^,|`ؠlB8 ~-N#ܦr#h8|& txzVvn 48.$jV \ p "d\xR  z &6 (8 @0:>zB 0xR>J~p H \pf:  B ( F0H :Dp >R | $P*Xt <^"|^xx80`$T.F*P^L| V 4Z f RL H `$DZ  D0brF`4r"0|NP$Xh\8pL Rd$Zڜl:>|\ ~2XfNxZ!RXVF. ^rfx ,X.rZr 8 \RDBtn$R&B^`n:V$B&fT@(64 N|D 0PP`Rl`d@~ nVNl & j2~ hD ,0~j6NBZ P vtf&bN`X 0$<*VNNXBrVbLzh6r^dtz|> ~<& X>Pn \D P~&j|N  `  r\l8d ~ R\vx >^>p  J@H$T0rBn>~jxn.|"j4\V$vtb$T"  H|v.2 4f"N|2>dp RHjz0pn@*T*j0 L6$j22 ,ZH"`v8dXVV>v@@ Pp,.4 D. P :H>>~0dt | h0h6`"P<|zLb* p6^h h~|4VPVffL\~^RTjLX~(vlfX8nl ~  $FZHX ,^B H.2jT,hv>0 p`T8~:.d@$*L~JRd:t8~@*d.lL>X"Rj,fRX6fF2 rtZz.<j  "lThl &0z2&Bb6Pt~nH Lt (4$B:\@0>X`h&jZn,f .p`bZ6LZtJ D@rDR  VVBzh,"d@ $  r8V N.hNt(^0nz@:LL 6vX2~&`,R: nXxnhx>(f.xH`ZhZXn,xHd&@ddtJ^68F f 0| ^R <hP"P(lJ8*v TnhZ8vJ~@n2 ~xdd>`:bX(r^jJJ20\2HRDj&\vxHv6F,P $VtJ j FRJNxzp6|$Ldlz<*> P l2Tf6L&"$n|XP &l&L^d`rpbrj`06dFpJRVdh:>RF>~~8BTB,F ,pZT<~t:,,.$&l2h4Pj^(Vp4  l"PfnNpV8n<FV\h&\PVn,hj|6,&.t2tl~DJ.$8lL> Tv.rr<<tvf`l(vh@ZvF\pvh>:z|z n<tdf\Z0z&bhLbH2: dxL` j(*2j^0&DX ,DF0^^hP&6^L (~X|TL,$*.xjXdR60`lp(\FnV(Vr^v$h l.6vl28F:P:Nln:T\XB &`F&$ (| @P < Hb4RhPxLtlX"v" PnZz,>Z|vn``<~ntlht`26\BB~X\B R^$2fL6HZ0l$H:&N0 TTz6xL^:dlvN0`x$V0zTbZF^BFl~0L"Xfh>4|,2n8>FVT Z2rnZLn68bPZrx&P0l$JzRTJdvtJF> @*X>x,|bRv F46l$<2V(&J4 h |*>X|&b&4`TT(4 ~ |Tv^zz:b&dJFd<"@:~x<&4NRjNN`^p"80z>nP8|,|| \>VHd8j,@V0T~RBNfh0.tpd*l f ~8tL*(>0F4JB&.:|HzzHLF fhdP HRb$ XlfN.>~Z@Rtxf`Z:(*Vl dHB:L:\tx*r0Tx808`T*0NdZ~|F,NbzHDb6 ^>N*,R xxx4FX6tzf(|bZzh02nx,&B:j .dXp,dh*BfDj@4 Php0LZBp&`*j|rZl>l(| R:n,@xH\Ph0n8zZlLLr4Z" <&,6zZ<.Tt*v\T T&^(pR^j<(\.08rBhDTB~:*|L:LXLBxrTZn ( Htp@&hZJR(h\Z$b$jlLB@ Nl 88  Ff,@x|Br.\4f@bl>B F ldr(B.Bj~~hxd\,RH4LHl$pHL\` J:^2\@ ^V:<pV~V|&,l,P$t.*Z`ZZX&T::`:^(~nRr~~pnB6^xhjPjfnz"Z<0>j>@ll~xj0(vfnd$*TFZzT2z@26".,0$R`6 \. n~  ftxLz<B.T(&t>t*pbX4J\hBB$`Jh2r|2zt\ ~6Ff^(>BH@BH $Brlzpd^Pnzx~z4rDP>PBH<0HZ&Bh$\ T2*8LRDHv D$f8R8jv~n*4`hb<.r~f,jlDHx  `Ll P\,>(:b"Ld@~~ F8~z^<^p @DTZf"nX6z,Xh .tFTvn(l8 d 40~8P>~Fh(R *j $rVLZ>~T:0xhz*hL$,b><n.(j."0prT:(jtj<thNJ0zJ62(PDJ0L&@R:.nnt bp$Dl"p&RDV:fF.> \j:(^xNB(Z@.,dpD &VvN jB6L||6tz:*4\~HlFn~|p\0RHp~`h8x6H JJ,DNt,>rjD ^: RXNN4t46T.jnpVPhBZF>T *$,D$0P PP&:j62d*ZBdvxr2jdD^~ 0L, rTTT& J h|^LvvP<B4hp&4> :HLV&6n  2fTpF.tR(JTnh>~@Zx(,z.v*XfJ"fv`p^N:TN@.tT~**f@6( Hv(Ntlx"|:r P>D*"&v>&$n,HHRtlVVbxLzX"$rTdtP<X(zh(6 .>PHhRv0pp"20:^B<8fdX.^`*pntpv\d2J"tDrLH.d~DDNZ(ff~N>8>R,6^2ZdR8b ~6Bz8tlL8Vb n@j>J>$t |rBJx,hL@d&$<8hhl"f8Rr^$Xl0f "R$("J.,\:l`"JZ lt:Dz8l P4p*z~>t.Bh\`Tz`*:Vf(DBZ.dL. LTDL2D.@0 n|00zdLV(48>@XLz2$\"B\f~,$jv&0>l*xDxFzz$2` XP~6F\<:2^@$T&>@<4VX$((lJxJzx@dp@rthl 4`:d<H\j"8n \\Xz:B0DP42X z8DXb$n4,t$rBN`@F<|$X^*6`$X>Tfn6\fPdX~48.>`N,Z",N *d\LTl,P&~<Hhj6dp.D>"NrDXH(L>jNB f:\HB`J>Z6<`zRBHL824 j("P|B0P 84 RPT8D:nz ($*bj&p@4 P T:>08RB$XvBr:dt~b\ 4j.TFr>N8~dh<<00DL8zfp$*| vd "fD2~BH0,,j4<npF,R&n0*6:4 28( 0|NTp\@ff`l*4r*$4\vVpLvt`~vl\@\b*>r0:,nf\<| PZh\0T:^PV^<RF^t``zhL8\HVtRZ6Bt,L>zHrfF0:6Dr^Drhltx ~Bn ,> (D& NtHdzx<b,JB6x~z2" |P@DDbJ.&N\6T"2L VL|nb>D@N\,  n&J*.2~8Hf||4<@l|"n*(FXFTZ."T(jT2l$ 4przbX ($.tP~$n@LT$^ (|l*n.v,:bRVfV6z\NB@06^J$$L H2h@(zh`V8$H`0D\::tHxL .Z:2@8>Z `*h^XhrDLz(2"~zXr:LfF<4 hvh,d:X.vLv~"Ll0N,Zfrtp|$.l>0~hh z|dhPf j"NJR*L:pP@b<LR@:Bzx0Nz2dr|,th"dF.Nxdh.&tn2x~n|hd&JFtNJF @dnNZHzBjVV4H&R.TT:0,f^p$>fvD x\b2Xnff"DL6Nzh ~@DD^fv6<lHXN>*^Bx0\"$J\z<Tzp@r"hzF`rd>xvx*b  Dp\B|\,4x.DFx>4>&fFF<L \.@hvtj Zh RP|tX(2HVh2$ $fRn 0R `2X|D~V$:^`D|6,l:P bnNR:&0*Nb|dh@^@X|,Nl<b6Hf^ X,d&6PXF$0x~`D:2^R `@D$>ptzdhvX:0|8^ >N8>0&j:R|B,FV"6tFt.NFZ:$xjJTPXN.4z~Fz@^*:RZvZ*j^fbVV"Rf:6(D`^fzx~zH>"P8$FDz@*r~^Nrt86`Jf n`"|6.: 0n*|J~"2h<@(fVdh :@FxX(n: LZ"FxNJ2`.b\Hh@f ,D~VPzzd4J|z@P,L<B hltd|TB8 6H0lL .0b :&J<V(>@(pZ0~R<|.HNBz&Ld6*t8n.|b< 04|~B>V:fhX\|,HnF  Pfd8T0d4&H tPzT\~<<\rxZ* 0nNJ4T<~**"@|vH\~L^P*T,"4"vD6*L0J8pDPLT`8:hrHdz`~dPtVj(pzZT(4jx(HVb.th:"V>~p6~B@\D|2l&N|xjH.jBn B^hR^",R2@&TN"ntT(nFBF\.P>R2<8|R4v4blP<:pjRt8p:6,@~>lD\~P8L :0<*Jv:,P&(6Bp~ZLl.0F HJ.v8>XF 6:Vh(<^>fV<dvl2T>6xt"J 2(Z@$"(F*b  NNh@Zf2(R *4Db~ >,6h\~^F6bbVZXF^2&~2R>p(lFBRh0f&h( R*&^@r0n@.":(\0\0PblN4$2lX( Z^4@FB*.d^Vcodec2-1.0.1/raw/morig.raw000066400000000000000000000764701412132000500152730ustar00rootroot00000000000000                   !%$%.-/...3-')   (;E[mzprrP*eO:  3e.N<W,(^$^q0P0c(1J0ou2neKF5k0Nb(94b' 6,;WM J`9T/fYws],wV }xaK1z1m ddO G` :[Q 9O F  ~ ZS=ka!y Aq RZc $ Z w  T:hG<YA _+9_LKh #"%,DEs[HN A% d>qMtX W: :"4r a8#o$ lHN z( DJm 7lw" -' P[u>YE'  NA4- x[z R$8 5H*Z J x7,}sB | vM! Gd[^5N_[C,Ms6| ~ u6c~] e  + m`Z%@W},yq&cx +- A )O6p~7l M&$<}!  M_Z v+o4N%zE#82{ L 6Xbj h$(-rKk\hL~g %B<W'tQ! (v{D޵ l  'ph {x9$v+ LhD a-9cyO/d#b  Lfk1l  , r >.575Q&QbsmW>,     \b SX/]lZ1 /o[k*>1+!* $7-)%/di~5&   \G8P3%#"$-/#. !%3*J6" % $       )   '* & &, '!0  #                      &11")9& .'*-*   & &31+$'3'  * *#B3<?.,'"  6.& 4)$ !7"(! 32L&! ,-+'' S$Q >uBI? 36x =@m;IoJ9AK CJ7f_=UjQ_ClhT3;Euw$?N`? ! . vD>.D8}4_RT5  xm0@wvhDKq*A E6B{l]2Ww "ZNO5YO {z] vB~>, }\p:U _ q'p)Ck݇ R  1dkw w q% ` yjZ~ ]&O(I\ W A 'M J: ;+gU 'a$|B7F!--Xoڊ3 $> XhdUw `g3n2O|I  5 .24"t+H_  ]8} /< +iv XZur  1-2A( '\,]! b_mҙ Ac BV# =&D XWXx'9f~ R (K'vDU'D)) &[eQ "`(*8 Ue~ - V?W`YsK U $?%! Ǒ٬7)+" T1_H (b$Mw()% ~ X25LEjWrp0 A  L%$:@4= O$),(DatL&p%)"ثp  4 2UE@~]NA | A `"!r E aC̐<(o+m U /G * 7R09x, ~HbM D!s"U"a͈ٳSQ$)!Y@dd%cuKvCXx_ `  t/ o{ ? U#fu9+3OwZ[()_ .$ !+-Sw Q=t /w{52Qli!F@!O%%'˦B?'?, g ;hEj,xCi @ s |p>n[2|Y]- ,"U]uQ !*%+g6'CTxP 12TXK7 %#)[<:U "7-d'bwQlMN3>a~%HC&Q{@6 qqkLm%*$ƶdF !.*7L`2}6A <T-MLh r:XG~=w(>,]250\" u]*17&EDYCKsSd #*$i%;RqcgM@ #J,(n)w/l1I@2q)0G$9zt" t$"}9*$f3mA?R3uzkc)=-)ɧ+ !,2* N+p N^#$3?,tx6> %Eg%z+$pVt'w--?")"8)cTe <v$ t)W]#=FfR;[8 3'!,(%.-̾ S .#!'`E t"C`*E O Dd&V&L5 uU S''$IȘ-2!#- @t)W1߳e4! YY3%g9 C :V <7Cl>u{zeUH"%($aWϤHj\ 8% TY+NWS`=K t[Dbdr:W *!`J23TO  % 1n5*R } Kmh88, o 0- v7iUHp& 7H"2!C, 2   Y ki0|%/ RKFWiFNYo/6 K hML dXricl Q n.; /l6HzF.( lPn HI . ,5,b) oAsRzAthwq__xBl!F{ \H 0yuDR 6id7?@^!hC+YE3mh2tH"%3 9 lUR!|^i\OB!FMOK 0ni_`|DA]Zv FI Il6 MV}_$GOTXg|;h]|wnsU%Wc8(6Q_qfQ6 "2Mw+EY`cjtw|%i*BOY[6b!?X+ %9EBHPK?)$ 0Lm4K]nv '`!/-$z1g.oK% #,../&$ :Pj3JbtEw-0|,c#_5  (=Tw %=Sf|;s I}C ~T1  &%((& !.BSj'8JZl~ +_v7QpR1!6DO]ekka`\UOTTSSQTbjv)?M^l} )Hpj2f;{]>&  "2BR_msu||}}|}(9I^j~:]0AkD776) 4@EISar}x!2BWiy $Gh~{X,{N)v\E4$'1@R[l )7DQ]hx5DNWRC-oO*xfUI92/0/0:GPT`nw}'6:BOZ`fpy}dL7 |pe`YY\Z[Y`b`chnpw{~{.=a5.%CqMI|Z{cEhr]#yF8]i84^X-Yf:mYT @pD{|,[+iMmp$ o*GMD~gVxWgT%@}bfREW=nL P=y(c;ZI5kTg}'(8d=(j+Z}ZsU,S8aqMA]ZxXN:r%q[ 8wbi4Vy~r5=Q^_?st+fgHV1Fqid:u 4$P|'W`}x%S   !m@ u\(Fn<#l?awuW~R#BcOaW  @  1({{IkYq)}lV!~Wreu2vAh>~rUY? n E:v hY tgCr: +z1@KAF^{S4E.+`c U[ D!6 ro~36sp ![v;Ficx !%m%P=B : /86i 8 %z q'"fHL38;Q3P~o %p d\t:KP,& x *s!qb~y+/.R5s`Ir]{  %/"s \4KnC+TL  '{;j]* x|tbogv r1V$a uXCbLKN $ .&.?SG[ bU`*> Ksygbajn}B f W=uo jO;^9zExTzf`q P rs)sJ/b$sYke=.c/~G0wkiIz!<@' T {lEC44Rt"!XIFOAg- @:+Hu Ix"9gWkti{I )rUuiWS3 AO'9p+`r$a+Fillu,&wW xJ/tKA' -OnwfOjH+ "X QspG'KQ=P* 5(]P^h<5(;2 .W_iZ@y=qTv;BX3QI, 4=7D',@SG>2/&8Shy9fw:I!x6ESr';n $6"/ Svc3I0zK{C;uNsl1&!A0IS Jznmr(PCf$wV6 aG+.9DWekgePHCFS\tG^`a[E6+,0LxuibgmttslZC.jZZcm ;O]^\nvoW2>RpxvmYA9+%'*-30&)88/' )*)371-("  (,,+#',)%       %;3"61(   !$$$'%&'%$$"$&" %3&&lAaw]G78QSy&`#a>-~&B"6,D;S0y88^0cA($ZN+C@=-/sy|5 r<aH`B1>|; @ 2t^R9C>7lHAQt4@2>}VKc[ig(544u^ qYZM5&lE=3[ o j>Oa&~snnfxY|}k^rLVOi~pGB$Ee\`J\]?(I@X^`imfII3- 4*;^kv^!$4A?O8) 9/373A,$      % #DaHMOG?$4.  "%=4%7%<6&W,9<C  ).2% )&2.?\]p.a#=8tGOt^b9#oYj]_|Tq1VmxL\R 4w6 *_WjnNH Getwx}_[_(Wm-)Zw~dCe~ec<^~P+r<Y6A !Y9f+29oXK#stxfaH^=mUYs}I8{<P`uKOLd(]VAOxE=/~|,RL`!^NV(p 'n ,/C@SD%J;xMGn~ 7[V0,Rgc,_9-H52 P Zw4_]C*j54(~ :_LmRD+?\@`dC i hW!SQL707gl-B,I  L,\P1 ! K7-$-EPxOK""/Jjg/E_q2C0_)=>7UA~ u/ oY{!2q:,|j<S;f8r> (Kq{9S X d$@KnZ<ZL2&j.m>Mli7ptW {r m  Dr^*< /-]d7?&pc!`N:Pj!dsIh3SDB "h sE.bg @_;1RnYdi;zrBZ@ 6  Z P?x \ Ps_;(Ce Gqgo 3? tq] id ^u"[%khl]Ko7 mDBLyw ! (nYPYi6y$}gBeioi6,wN}jOg?Tq$6fl)$*u}I0DLNPD FFCh]&)Bg|O{q)Qs}VOO}vBGXP??GeT\hn_YKO_p}ty~)Ox1nbWk`1@G@2z!\c=UK~,MiDjR>! Q]%mpUSc?FZ|5:qfJKWI4~\:MJ !X {gC%-b1&$fl0qYlQe:\(rE?_6WPF&)-  Hi17ZLU2SR!IqDEe 7l<7(N:%($ 1L 8 11p}Gn$cG&\j]PU|Oy!mra&m z={%oDIwrqW<&@s^@:9@9zGvCXECe- h< s)@>3q~%5iNT6B iOGQ=6ha  ]%}+P y  NMEM;=D_ ]_R$zI(GY{a'XMBf_( e)c a ?!W3*XMP F4#YjJCEL>{oWl~zj;7"e]#RO$$vD&8!rf abrsT9\]OE_H$7(.%.:tI_?h.-#cWMmXo+]B$c~V^o4+@`0.l0I0 Qp_zp1;%ZNSHo,N&U* ;]q~.eR P&N$C- %K,+zW\_ Ybh < j 8G?>iG/lAS`MP-3qZ4_t= 67! 8 F XM]>[FX]}rrm)af-iC.yUp5 l e?z bC)j5a.n9$ J v|Kk/"~y WgTE}8W.CJcJ)M ,Eg*ZR0b Q 1[3Q"\fwK VtH1i+)m J Ao] I|K u-r7 kdnIy/$ivM2Hg OnG?!BE. 1 Df;1asFcQR5* % ~DVA>d@"4 ml=2QWKoG|o2}7M LAq{6 |!S$Yq"flJ#&m2`P:>*kLJ!LU  QylzU(ge-ojyyeFDtEBN $P  s}LZVHy-z}"g 6.2]Y*r~+"wfx|  GPc0 nDNml;|{kf$YqDSV.[@|ET:7 Bt0>-d)=GJ~=} (E-1n L:fm>)Xx ,ty+Jlgl >R. #12;X Oq. W7 22p0=fi'Q"Eu9zEO^?p$/z-4W53B.j=  \ ~c@l3JFOColmyuMp=~Fxpq&$u) _ m+/>K*12 @7H ucc&s6HEGGk41}> VH/ paB4w$X}UF\[x |fH3]B)c$tjy "L 3ho0f{=dm46)4)pQRF,y3l\H <y b;HGJ(2' w+F{[BZ>OFb*t9:\{ P;% |h&A5\)#J /E Fv3CkivsSflgM^G#|?$s9J9o 8`_)n,32-9XAERT]w^I0$HF;/\2P 'p!GDOX}pWDO=L+[$:NHW8|N>eO\5.6k0h T eF,MtH<BY^!r S9k$,a;h~Xa C,R~M t7"O\ lIfYDK69t5 (I?'kr-wn ^t^R"q^he/D@# +npd4pr 1+e \ L-ib(:E`Bo4ON/o 0|C$ci-/:V "u\KA P^+vZ=((6W@w+e[I >DQi&=Vq3DSWJF@81k@%tfVI?:1/7>BEUel} *:HS_q|cJ1~vmg]Z`acdlx+:I[j|x^F,{ojg`]aefnns{~,9DLW_lu||qcWJ9%%1HUbm~|qdSJ=,|{twuuwwx{ "2H[kwgWI2xmg]URRRTW_kw .@Sdtyj]NB/|nc]WWTWZbiw/?Q^jxwg[L>0xnjdbaghou~ /@Qcnul]RA0#{rjedeeikux"1=LYjp{~vibZL@:)I0] !%$/L\ZSb_oj]\^dWRAGJH;-&"+! hgq,w'+ Es$R7oY'+=pdIFKP>fdon0B8r)5q9@6?#Y$, &76DC9b;/TUMW060$ J&5.U^VLym= .*a722zqD& 63.3<0i wH&Byy(nVy9*y()C*y*kG7*)VZ EJ"j,F,CUHX()t! V7-J^/P6\ U,0>tKD#fLf v* F eJt+WvQ iCuQ9=5QQ9]NY;fp?w-}C $tuIBbp 6s**qs#v6n@upl:M`9j5]S&"B2!8>Q0*A f)/g \51')GN 7*q9z2F>-3a@G<~]T!/p.1.Q LUmG+ow #IaJ.:VJP+!MnAot nqACO~)`.0! <\>%MO+dqJ#?!>f5zi`7+J3o`GB+Jv0{ %} ( F[Se=FETdn8 ].,#'<,iNfj@^9jB# $Fc/#}N7 0!B^? ";M~`xL/x|LA=b9FZO=:mR9 9f39%()   (  21$   ')-0/0  '!/.7>@)+PS,  -0& $%  #*"%&#)C9 1+  &0       :;  '(  ! +!  " **    " "% %"  ! $& codec2-1.0.1/raw/sine1k_2Hz_spread.raw000066400000000000000000035300001412132000500174140ustar00rootroot00000000000000+5#,&EdGC_D]jN~zy>= kV.&3{>(,&wORbB yf K Ri*aHU\@P_om aY >1x%glL)[hJ-F.]Y 1(,U8-v>g[VF QVcEY.ya7fkQJsz0ykLy0`w?)oR dI? V6fb M|?c' C  6$B  -/$ J{ A `4' !&J, rxCs V H  K!& f7g !nP pF a 9mUt|y CL& kz'i_BI <6FF(g#[|TY  4FY6yA-M= J_p7d{zqwX\9e:N 10axlG/>f6B"o{6qrkMK i&G@{ ~ ~LZd0OQBmT7)]>cD1 )Z0#k9S}MG7 hRIufzJi^~s#K=^(*MbA4z~Cj0 :HI!]4tKkuLz|6dwh.c~y UEd7WOe@;h 0 +%F#8lPNzi>[ ~3y.d?, GMWH 4Wxh tc EFp  #z " 7sHQ Ngjw `\u zOWBy C-c 9O% -45] #S~ p u  u< & P : 4( T X x ~ pg3 LJW 0u   i 6  HY  4n (  C W Y @ g $0 pJ  _Z ) Ik D / i v  my  [Y ! O? 2 F2 C 9 _ . m %  'o 7 2Z L : I \ C1 q P  Xv   ai  lR " tI , z; @ (y! P u& V o( h d, v ],  vQ)  b?( ! O2# ) ?" 0 * ?  C  H  P & P 1 S > V0 P \9 Y _E f! eV y& oe +v op 2c v ?vP x Kk? s Za* q pO k Ht d =] ] ),G W A$6 T R# M k  L x IeDNC")<=+6+92K2A`)E q LhV8RXH;]]dz}k,jo!;OxAH6WU}"oby smckMy.e.gM[ UkVHMo4FCI"j904h,? $$22$K El/YIhsl}O~x0]g?R: (,D5a\  !yt} "*cY ,B>4 3U# 5k ?0j E6ZU JP~k: Qxu< V] [B [# `A3  _]H \ cg a6 ~Ew ^L #_ _d @ c j) b >W c b6 c ` d 1E b K a" h c9 ~u ^N 9W ^k e: ] rh" W \B W 9 U (% U B U I` V# pw} X9 `b TV 3E Vo - R s N Y Q C@ N ]&0 P }>o T SQ U c9 W$ zx XC c YT L Vj <0 S fq S `s L  OQK &83H 8+B JB a@ %r? 9q>% \Y=9 {{D<J ],6` 75s / x' )g% (@V =QN Vi9 u~({ nh  PR 6A  &0 %3>. MI. ^`>fuOxeeuxTmBq%^)^'XP-N @2D/4;"!=62C0BL*NX-Z+c)k>q)tL|-~}]+{qm,qiy,k`+`vX)XmW%RfQ%J^N!DWK ?RE#;I@"5?7'17/+.,"2)!9( ?&   K% S&  '_( 6o- Ez1 !S7 n(c@ ^-rF P/}O| @4Yk -6ba 8kS ;wB <7 x?' l@6 ZAN LCc <C| u (E, Z E= C GO % Ii  K{'{ N :a QFSG Tac2 Wv o |Z J e\ - T^% ;`B  a^0 atP} b~%[ i aD@ E a\$  b m`+ Ta)N 8aG| i `j A an  a5K `1Z+ ^Vv |\ a RX" / +R=  NZ  GQ<p A]T j=3 4c7 95 4%K4P$U5yHw*7fQ:/!U;i7;M<> 9l78H\`6+OW5+57FP;Nd<?t9{EEJ srNM;R{$kT9`0UyidV *VMXW"jXP7E[[`$73cQnkkM rLzRptBy%3qWJj$Lc.N\dEXg5P: %G<5QAx7^E]+&3!DF`C=` G%mh-I(/:TBLGT]TQ*j ={"&{pV\kq]/5e H$Ud 4v  $L$ T E| [^ [/ ! 64 - >Fr Y mV7 Sj .{^ ~M ) m4x n V|R GOn 3@` T C?  l >={"  <

}#@ [۱@$aۏ3B$zE}U$Xd'%bGP%4L-%K &߲A[ &^n &~;, &-OW!b'I|ބد!'S4Iا$!'d׏^R"/(}zݫ~"v(b6mp"(5,[P#)zG #W)<܏6B #)P(z R$)kx $3*<7۽ $]*| L%* %J %*9v %"+xٿ 0&f+9y &+%I> &++6 ' ,5q x'^,A~h؇ӹ ',K[:dӱ ',R(Ӧ R(-cҘ (9-jVװҗE (s-ncҊ| ))-|g*ҁ t)-}>mт )#.*ֻy *b.ՁvD V*.Ttd *.Y+r *.Gp +-/%o C+B/Ԧt+}/FfqO+/Nuu,/v&{G,/Ay,#0X,F0~$Ӥρ*,u0uρeJ-0|Jυx-0zkz.χ-0v92ύ-1rΎ.+1oΗ#@.?1dѦΠR.q1_kфΥ{.}1TtCzδ.1FJ Qξ/1=8F/1.""n/1#}W/ 29/*2t/>2 Pϸ40\2 ώe02| z02mp0027KV02 I(t02};:12T#G=12.W\12ew12pu-13E̅F13t8̖h13^ ̭ 2'3I^̾2&38B.2 3S223 `2,3 (x223yH2?3_*g2@3Hͼ9w2G3z:ͷI2I3Sͳ[2R3Bͯj2K3'̺̂3H3r̳̙(3M3`̻̫(3:3H:A3:3-VK343mT3!3`33l*k33OCu33B[s32#x32| v͎32h-ͤ 32Lt>'323mB432!u[F32gc\32dkq32^|-32xX́E3x2\R̐Z3j2MK̚o3^2@S̮͊3F2f#Iͧ382MO321\31 U31d#%31kD<631pY\F31~ywS~3v1z̖Η\p3[1X̷θob3819wX31|?30{730r0'%30tO< 30ksZ30i ͇l2g0j&ͭς2@0oi8ϡ2!0TfSϷ2/<eh2/ f:n2/]b _2/[%D2o/\ͩB(2B/S_2&/Wu1.}Vі1.YQ-AѶ1.>QLi1.LfΚ1P.Fn1$.;BY1-5j91--VҔ1-Z#΁ҵ1l-;'Ϭ05-#90-"R 0,){?9q0,'ycQ0r,)Ϣӂ+0D,o)ӥ0 ,G* /+*6F/+ *Wy/n+ 1б<b//+ 1_A/* 9{/*t CTՠ.*L F/э.`*1 RYѸ.)* Za.) `/&6.) ibB .) m ҝh-G) t9֐-)a t_ׯ-(A z:c-( y9-o( ҧ|-D( 6s,( /`s,' PE~k,'t }|؟gk,e'K ӼeD,,'$ `,& #]+& %`8W+& SԗZU+P& xyMs+&t ڡG?+%L >F+%/ j;*{% &զ:*<% K*8*% nF2~*$ >m3X*$ rے14*z$` ՟ۯ0*H$? -)$ - *)#Q;()#vn:p)s#֭bC):#!) #rݠ("J*R ("&Mׂ(f" {׹ l(("3B(! )Q(!^q'!}(ؘޗ'M!YU޵'!>$wu' /.E' 1b&' 8؉)&_ AL&$ B=k&K`&nQQb&IVم;&f,\ٲ&6_%c&+%aGHI%dfxk%keڲ^%7\aA% @i %iJ$m"w$swLۨ3$=xsV|$ ~p[$/~=$h[{$Iہ}$o2ܤz#J'z#E#\1z#NU~o#|uV#s~ܠz3#Hb}#@{"'x"2Ew"Nkx"f݋1y"dzݭKyy"?mc"xR"ny7"KnC%"+gc"gމ!b\޳"!=U&@!M<^!AI!n4Y9!T'cU!8np! wދ!k{ޝ~!X޷$t!;<r!*Na!i.Y!5O!t-:!#\x]!E`s!3\!$pO!X9!C1!5# !!'"3  "F-'"Q91"_N;"pmY"!~|_" |zp"m_"%YEq" J0d" :Q"#%>" 0"" %9"& P#,X#/u #4}*5#<p49#8[AU#?AܽTg#D'ܾ`w#B}ܹm#Mdܮ#T|Hܩ2#\u6ܞD#hgܔj#r^ۈv ${Vۃ$Jd|8$>Os?$4?vP$)'nk$iu$l $nd&$YaC$G_!N$:Z2o$U@$r OK$[MX%=Bc*%1?k.%!>rD%5}O%8V%{6 b%n2&p%b42|%[2>%Mp0]%A[*e%9Y*v%.}D(%$o4"%d4&%S !%A%0 "%!&* "&6 ,&!J4 <&߷"ZL P&߮"gT P&ߪ(vn c&ߓ${ p&zߓ& m&uwߌ) {&mn߀$ ~&ge߂( &ge~( &^\y' &VNp+ &RNo, &D:h0 &8*Z2 &.(`9 &!V@ & QB & ZN &SS!&TY!&Td!&Ri(!&Or71!&JyA3!&NقRE!&zCى^S!&vDٍgR!&nIٗq_!&g@ٙyb!&eHٟ~d!&[K٪g!&TvKٯl!&LkSٻq!&>dVp!&4T\!&'F}[!&>d!&/xl!&&tk!& || !&xށ!~&|ވ!!n& ~ޙ0!e&ޝ; !^&ިF !T&}ޮS !N&޷] !D&z޾j% !B&|r( !6&1 !*&y}ٌ7 !&&pٖ< u!&a٩D s!&OڸK k!%AS e!%-'Y ]!%8e V!% Kj R!%Yn E!%nv B!%y-w 8!%ތ9z )!h%ޢL $!Z%ޭX !G%}j !.%x %ztڍ %iqۡ $Tp%۵ $Ck69 $0kCO $lZk $ gf߅ s$guߘ Z$c߶& t >$^: h .$[H W $X_ K #Us 7 #R.܆ ( #oRJܞ  #WQlܴ #AN k#+P# H#L: )#IG #I^" "Dp!= "C7O t"AXe `"@x݁ Gx"u?ݔ 1W"`?ݭ 5"EA  "*@ !@() !BJU !@d~6 t!B~M rM!Ck U !Dކ 9!pHߚ  XK?߷  :Pg  $S4 _ YQ 4 _y x c3 ^j,J 8p]f w}y r~ Ec:x IYs 5wp {Il Vrk :|*g SJb  f` 8Y t`MT R}O ls9I HFC  =  .'8  8^F0  dd) Z }# j/v  ;V # ; N $ ,|e _2 f  )4: 6FR Aoi{ I)Ko TTR ^p< g)J" u] u[ 'e. [1Q 'I?^ N[02 u^~  3k CU ov9 KF" 'w!q 58 G1" U\9 eGQX {ly_ e4y )Nb f$2}L TO< a$ ' 5 $\ 7S.R KE(d [W8 n!n Wqt Daia zK0gF 781 )  ERf(<eB(.]AN(qUZalo%LVp!E Z-]6?e-[*R +/T)A4aWTNk(Waz +}w#z h\&b ZLNc L0% c9 5-( _~ 8OB Tz o o  5 L,e |=Pm FQ:5 i b {  7 }K  hY V6K- IKu q 8h% 9 &Zt  ^a >C$ s.x !-I VB  VZ 2d1 4bw Q%X tdK4 g{yvhV[4J?D ?k(w/OF!i2>1Z"\ oM^/eX'@R/R>#Ti$W~ewf3b ,H6.F#?@yn VtzHeX#x{##'eF1SFoA9uS"lG`C#q .s+:Te<d~fQSP7>f+-r8qFe fgX\6FM&I8,X)=l<d{[nugCe)C$]7%RIB` :7o?X+d|vld[C V;%I"%8)D7/LmM%ywitL{T)|2fS <F%X6+Ng#9qKE`'P 7\c;0igKq<catUuAxof~bS}O@5y0(^vvt}rY#o;7.n$I@nb Yky)ij~E|hhvkeH_c4eLaF5` _ `5,cHI2dW_Bgg}Ziu}nk{]}lpGzn[*bqKPuB>{1&-%|>tU lr'e7s^ LYVgAO#x,I+fA9N8E<1K"&&U< [P^[ ao$d~7 }fBqhUane'Tqp-It87ryD&_yOL{`3}o}zr0~g: |_F0|PTG{C`U|8kg'y~xsg hT V<~M,}(Bx;5rM/k])`*t"V;pLI^AZH7j:,u*!vh_ M,?;"6K. &_9 k@zJ|Rl Y_ #`M 4j< Cq. Lz [ r eg kX uH |)< 5z-GrW keex ^~$Vm0-S]F8LJ[DH9lOH-\EvhDfpBX{@F=7y9*q(7g74 ^B2UL 3IX3=a)64f6:%nE@rPF sZMvg Xxs`y}'i}|8slGz~aTzT{euCqwq5hn'p]lXMkE@l/1l!m/ m? lR9kaM&ipb4izEix}Qjnn^mc[pqYJ{tS>wJ.q|@b~8 W.F| 3x&"t8 mQdg] y%|S=dGTR=!f@1&*s *]-F1*58,!@@&\1  i/ FJ ) l~'\+/3B6OCDyWzNf^Z>u5jn nz~ac*l2P[U@ Cg511?!a f @H) kB$Ui Wu@{khBP$ ..E 7g1@_\I.3RNF.QfS*-_SGTDSiWSX!S7U'AV hr|X2M`ZR1WgTLIPy:%eGrr= G33. 'Xt hz <y<  ^_  ;JU % d  % *"4 Y 6L- >ika Lx/ Z_9  eD H sa Yt R1h1  RV ; =wX i }}/ bP7 >& +H] * KD4 f) rDPh qO] Y@7q *mHlYzy5Ml=^6(2#s+h{T_x.+ 9  .' k%f: _SJ rYW <Oh N%x G y yi cDh x fc< [S h9Qu! NN` H S@ Ha7n w/lFF &( 5  (r+g _hz v  ;K d u   ]O ` bc     -K4  ]i 5n  #N. 7 +%  7N (s Bt [* N> {p Zjg 3 h% &r qs a zp2~ T q != ig Wm =|mU  B  0 ,D9 N:F  k0Rz_1PyG6$WHl/pZrRl RRd (e߹0 we !-'U!{L!bB)ހp!\D6"yot"8AGݢV"|- g@ #  m#b-#` *܃I#)<mW$Rx$Quf>ۗy$THR6%:!%> ]ڣ%"Y%B[&+kٴ"&kWrc9&5Z3'ic'Vؑ~''w*/(Yc2(9}Tקqp(LhH;(6$ ($/ֻ-)n2)aw)m^ ) (X)^z" C*ߐ *#a* *KMՈ9 +bF N+ߛ9O +8cԜ O +!9Z +MW ),uӻnP T,s߈d*V ,NM ,2K ,HX҅N 9-߯3XJ \-ߏ(M -- FҝN - 1K߹T . \ߑR 8.!ߩѿRP q.n!txT .!K?G .!(&ݵE .6"mХ~@ ./y"kS4 D/"ߤ,1 /# b' /N#=HЙܬ /|#o\s 0#, *0%$K0T$σۿw0$i"u&s0$,MC0+%C3ϳ 0v%Q f1%V`'ڔ(1%r`?1+&Ϊvu1&}dd1&0p<ٴT1&jDp:1?')Φ4)1g'΂1'52'bׄ22((\B2O(A͍^2( TO2(6jzײ2(liot2@)=͘/Y2)2gC2)"5־$2)it 39*̺@3[*"̄ 03* D;տD3*[ ZՔT3+ x^xZ39+ ̭[u3m+ |>{3++ XԹ }3+j u#w3+ hC3, 2n3A, X^̝3,J {Zoӟy3,u X[zW3, U':.3, S3 - P30-A +Z̹қ3[- TȌc3- xSl5u3- \NL3-& Nҿ$3-X Xђ3 . Zb39. ;X̯&3]. Ya̠3i.~e̅m3.Ip^ћF3.ysP{$3.8Pt3.q3.Dc3/#iP3/WАSO3?/̴d1>3Q/̭>63`/̋/3/ .r"3/(Hn3/HpTОz3/yHwX2/A`12/2622/D+ 2/=]"2/&g|!}2/P НTh2/s~3M2/_;204!204 2 0Z10#d1067A10FXϪ10i{φ|1 0's_1 0JZ910w;p10 K00 %0/30/# W 0/5>r~0/EgЬV0/b(Жc>0/m0ЌB0/=s//Ia//"?SQ//Iml>//zx-tV//Ѝ!R*/b/Ы&.N/ѻ .8/C./3jz./ ^M.. n+..4G-.*"Q-.4Da-.=s|Ѿt-s.G?ҚѵJ-_.OfҫѬ-E.VѪl,#.V$ѨC, .\Tң(,-[x(ҩ q,-VGҧ9,-Z(kҨ,-TDԈҮ+g-Se7ԯҬ+<-Tgүg+ -PұIQ+,Oӳ$+,K@ӵ*,K -dӷ*,F,]ՏӾ*`,ASձӾR*;,Ao(*,7`)+4/*>)+0ZP!)+'uT)q+$֦)G+5((+R*(*wbu(*(iDמ M% (ZY ذ !%'Eo< $'/9ym $n'g۩Y $A'A D$' ' $&M5 #&E܅K #Z&h a# &)| /#%z:-ڔ "%^R$jڰ "z%Eh\ݠ "H%/x~ ]"% f "$GU !$'u)C !n$c޵E- ~!+$` P!#t !#Xܑ #a6ߑܫ Y#L(fܾ $#4< F "U9 "in v"D%t 6"B] \!"[K .!Yw7 !w2ޛ$ @!Wc޷  !< G ^   L -H1  EQ XZNg (l fr*u "Tag :&Y [jK t@ ?%;7 Ye, a! Wg +MF  +WJ  ,X[ 'N! 5h E&0i VbvoJ eYB3 s' x 'Qm Q DU OA w,<o H[87 5 ^h 0$C 6, h>' p#]w C+4 m  b E[ ~3 g; < / ncp M9i ~e: '5- -rp1-/3Ja4{;s^2pJo12#// (:0Nkit~/|sA_3L ;6 9X >&([AQRD goF<DNHshH,F&HO%GEqgmkC=5BD  B>BA>cBij"~AJ I@E& #>vk ># 9GR 7i.v q6vOf 60'+ / -4< )K~n g (p| 2 U%M !:# l  z K 5 @ ic  GWb  5 E )  O 0L iY cEys *C ;3 " lY  s #QK ,o-z v!H fR +y  n1( 5Ky- l l 1 :97V 1p<- |`A YEB!2OSUuKN[wgKL_k)6 rSzCK|UeusP<|P-{`|0xD`wh<evQY)o)ni9Gb@ycs`a3K[_W<5Rl,zNX1H/VAS&4>w_tz7"F91G#1rr+_@'IJ%i 4 N\e + S^ #B dF E ZWp 6" W+  $%n z?  R^A  u lx6 ' SZh , .u& 5 > 9 $ ; < OKq B t @ {i_ @ W44 @ ' %  = K : 4 H 8 WY m 8 2v 8 yg : R6P @ 4x A p "G 8 FL 5 cM R5 R byo T y|@ W bZ! Z < \ ! 9^ M U] 5 ~] iuS Y Gep S D Q Y*& K =J G z D l 5@ H1 M> "W l: x(8 |mD3 _Wt0 =t40 "W#, 4 , "- 7&4+ NFN+ mqg) z( wk~% ZDg# C#P" 0E +(  ? [ 5z yJ$ dX0 Rm< 8~E ~-H p"P^ [U \Ij;%u.2x#CvSq`jid!y\#Y!vS pIrInAp=sAw@ |E J |R uYq`gk]rS{F8v%(o0d=]N S]Kl$> ,  jX`/ @  o W DM v bsg/! R D 8 W2s9 [ ;zv < Rv7J f !  Le e Cj D 6 oei  J] S 63 |] uC  O( V/q| T^% vuC= wLI{ p-+ *P a \1 0/6RL_r%{(M]iz%mc=,PNY6?>f{se%Ofs< Q_ }>4, S~B D  E| 1eqd NseM r1n}H b 6DR & w D`{ M D%cAG! VQSlq]S+m_B8Y9+>J&*])ya@/) 3HjL^f[ist_{Gw&| d#; sVNf +=!Aޯ(!%31"je"< yaݑ",\#0u2#O<܅k$Le$Z*$Vdڃ7`%sR%TyD&`قm&]ZC'$شQ'fE6vE( 7,(->ױ+w(qoj!S)2w)&ծ ME*wgz*_6+ Գ +r]pL +* O, &Ap ,a,"ӊ! -1A^!-4sI!-;5&Ѫ!D.u5ݎf4".2"&/ 0Gݬ"y/M -hЕ#/ )Gr#U0 %t܁#0!"ʮk'5e$~u (A6$ו=ۄ^(6$xFۋ(6$q` ڕ(7,%c׵Ƚڥ){7Z%WeȒڮ<)7}%M=sںt)7%=bG)M8%-(֖)x8%!o%*8 &i*9D&wƬ*E9Z&E՞ƙ*9|&Uk(+9&L;U+:&2Hw+@:&hԥ`+:&Pu,:' ؆&,:2'o؞p,>;P'VlӚĜص,;q'BExĉ,;y'/C{-;'XG-<'R r-9<'{ҰC!-k<'B~.B-<' O(U.<'1m).<'؏p.='g{أ.<=(Rcѿ׻.W=(4$ц.=(Y/=(K F/=(0{/>'(jP/>!(@i/:>"(вה 0_>%(Wύ׺D0>(;n_0>(Z0>(C*"0>(*=0>( b1 ?(ׄ>1'?(n؞Z1&?'Sؽ1D?'-mα1P?' Iέ*1Z?'2Ξ81j?' ΐEL2z?'|Ue)2?'w`؆A2?'chsزw2?'A{O{2?~''oV2?h'B@2?\''2.2?K';K2?2'+s3?!'x*ؙ=3?'Y(ٵQ3?&5&r3?&v$> 3?&`!W0 3?&M.zb 3?s&#ٍ 3?Y&b+ٰ 3?6&:; 4?& 2 34?%E. E4?%MFT \4?%Sgڅ r4?%keڣ 4?d%Q|p 4?@%$k˄ 4w?%Sˋ 4m?$Wˡ. 4R?$=˴D^ 4M?$)˸c{ 4:?$u*۠ 4?\$G 4?1$ 5> $ 5>#!?M !5>#:kx 45>#yKܔ :5>Y#Vc H5>(#$x ^5># ʆ  X5i>"ʨ=4 l5L>"ʸkZ y5?>"x r5>U"tݥ 5="Ew 5=!x2( 5=!pQ^5=!kq”L5~=S!_ʒm5c=&!aʭޏ5>= W],5= /OU5= [ ~5ʜ5X;!MCʻ5+;)N55:Eo5:~U<ř,5:J\oQ5}: `ʖu5S:}n@5#:atz59f8}"Ƹ59,{K59q!u5s9ʦfR}5F9Ɨlu5%9Qg58W,m582PG]58ʆǁW5_8]ʷ-T538SJ585sG57zAy>57gJrȴ>5z75,ʘ25Q7& '57c2(56%ɓG56Nau56tʐ5\6Y˿L4$65 ɐ45I , 45 %c*451˚SK4F5Fʞy45BwP44 bhH446{ˍc4X4˻˘s4-4N]430D[43ZQ]G43ˑ̊};4Q3Tn/43J 42/3A42k͈3t2U ̦'3B2"9321=d316I}31kpEqή3p13PZ̯321 \731ok 30tzOϯ430(̇]s3^0̼4i3)0pvZ3/aD6L3/kA3|/̣E'35/НI3.E&b3.  h2s.bͳp20.m@-ѯ2-5&J*2- Zm:2t- sͩv-2=-o ҫDq2-2 gX2, \7L2, k͌j52V,t Qӵ2 ,! 2+ D41+ Όԃ/1N+V $P1+ ? j1* UMK1* bmΐ՘1Q*L Cq1* -U1) R^ <1) ΋֔ )1[)O 71) *f0(Ody0({5ϐץ0J(/PK0(0a80'~Xwx0'dϣ^0:' ?E0&!DX00&i٘}0o&?lϯ05&R /%8*2j/%j=zڳ/l%0Wб/)%y?A|/$Mۍ^`/$VЎu7."`t~U|.U")i. "ciR.!wMXޱ1.~!Ѱ .+!T - <ߚ* - ><ҕL -@ c=j -߃+z k-[u߬҅ >-JK) "-4c ,tu ,^7 !,VJ-!,|XU!u,y7ޚӬq!U,4޽+!2,j;u!,ZJԔ!+G+&!+F$Y!+srԈ$"}+Tݎ="a+ݵJT"3+ԁ"+U/s"*f/;"*B[Հ"*UA*݄"g* ݮ"">*xy#*[](#) (7#)XkVR#)b}܅o#l)Dܧw#@)|i9 # )fW #(ZL2 #(8eh #(bܓm #V(tܿ #*(3e $'gO *$'G ?$'Vnb P$t'hۦ9 s$D' v $'iyk $&\ Z6' $&B`*e $&z<ۓ $P&P! $&@T$%/ڍ %%@Ad%}%ڙU@5%R%ڛxB%&%7^W%$-['r%$Sۣ\w%$/zڌ %U$ `j%($q [۷E%# L-%# :6i܄%{#T 0ڝ-%H# #.u% # [ݛ%"< D &" t6J&k" ٳݢ&5"; <%& " 3*&! KޘpB&!> wxC&o!@٫3N&7!ޙ7a& 7|f& fQ;r& !َߨ~&O #{Z& qO&Lp<&]y-&rZ٦ZZ&=zX&)C&BK]'&y7فt&`f&ټ&+%"b&}6&b&Zْ`&V{/&G'Efr&uv ق&[+ & n'&n>_&}ك&]@پl&+s &)/ H&l]&|lٛ&F?B(&*!C&5R3&XFٖn&DuK*& T]k&o)jU&yٟ#&AZKq&q_&+riN&{B٠<C&F*+&O%"&[9 &ڕSZ%I%K%5Tړc%Kyp%E j% ߨR# F%ږcA /%NK %Km $\ $s5ۏP $R[S $ L;k $.߇G j$ߤۄ8 J$V } %$j !$A C !#;ܔ% )!#PYN 1!#ހ 5!i#]ޯS G!@#)܍ E!#W H!".N L!"]Tz G!"tމ݋ F!a"QK޻ A!)" C!"H >!!DގP :!!Lt| =!|!xޘ 1!M! PI .!! ߎ '! X 4!  m>!t ުSe : ߍ  X m  G0`  %@ߖR P Y F v&  R9i  ߏQSL N u3 C   kK  OYI 6.Q !F  kVNcH}<c'+  t8n22<&dwJfXST/\*D(e'+0DO-Hdd Nq ^VV|. 00  sk f> j 0s  sH7 B Qj H (YX n _ / v D " v > q7 CGXQ |Ak  0-@ S Qp{ O i'f p=PH wo ! "&7 <D J  Je Dc _ ^z%q  @)wA P  ] @q9 X v"ej `: tLi E 'TsK)utly74MGW LCmZ~"kI:Sd(rD&h?v+ BHj\a<m[ZSwnX: Af+PA5;S1  VPrB H&Wd2#(nHP) Y>r f`dS wf3 rL/| ef K"W"8 Ixz ZcAV 3[5 7o'v h! k  n5 h :xG ,3  z3 W j  )GC  Nh D o z V]0 #  ' >W U( G+ A|8+ "+ Z]`( zew$ 46 )r Rze c- +Y JB5;d ~n*Yr<D/&rhkl49BkO:W}^aS#t  J tL A`6 jOH /Aa s-_8[  [ >" ;M8L R!O hQm Ve r^UB Y3 ;S D&! v o< *!x -x7 8DY JEz|SyyFTZL_/Xg (e.5Zl^~lheln?Eh>(cQ_)2RU_aKvAb.11Wm'x<L'> tr.P"J%<*eU)<HiP=OhZ,^Q,P`5ojXuBzk"6~-_#|~Bt~OdGRU{$=wT=trfkw=Z8<bK&;pKX.QQ2# @p1g%Te1:f*W6drF}gQcb*8A M[]*H"8kHXFSR=8q&6*|}~jXjbA Nk& >h>Yi )! F# gj [i  k+V 4v \ @ . >= : ]p ;wM  I5 M[ Q  YA GV cj9 lBiy t l ve y?|V BF {4y3 vt1 mzvv &S\u  vSV}wVGy0&|<:}~2YwzEC0{ qBrfrq^$9n"kfr2 Vb %X<9mPkb-BR84UR)R{ O]k st4@+ jEe -"{ hA 9U @ nL G?r XzT =#@ xWP'S g  .[d { l  .N socG F0^1 vE 8{y 7 ~_e I=/w (G ? 0N p~"d O2I/gXBwVepQ@UrE".( P 6"*\SuP7%|okDPh?m,rHy.$7d``_+e^jYp:f*2 `(m6Q_!}{7e U'2`0skQS?IOY1s~sf'z=RBH%-7\ f%g? ߌ P_ ]w  '/X < 7N  ~EA !u1 b1!xwޝ E!NH r!zh !kRe1 !Ib )!!*ޠ !!J=> !!!?."" 8"4" 7h "E" ܸݛj5#U"G Wܗ#y" 8~A#" vC;$" 2Y݅$"[ 6Fu$", d76%" #-5%" ;f%" Hݕ&#O Q}&# uS&"# ,!D&# ܃fV'.#X g}'9# H'8# 4p)(J# Tׯxw(S#n hשܥ-(^#C +ל|(j# H֒O)u#օI+)}#lք{{){#bOցܾ *#&z!-*#Ն&lb*x#bxՄk*}#v CՆܤ*s#BՒ\+o# }ԐB+o#ԕW y+i#rԗ܄A+h#_EԚ+c#1Ӟ,d#ӟ*"3,[#ӫizp,Q#wYrӮܥ,O#D$Yӹ,=#2G,2#S-$#R܅+-#dܽR-# Yu-"{3-"bf.i-"sEFݰ-"9 T<-" jv-"aуV'.v"$ђ݌5.a"[Ѯ-O.D"sr.."mD.":uu.!j^޼ .!!I6[ .!8M&| .!h1nh .!v"ьޠ .k!L ѡ!.N! I!/+!=u!/!{h!/ ~R!ߟ!/ =E!"/ j "$/ БOG"'/W ߙ")/+ Ki",/ P "$/?L#./`y#*/oЉA#!/_/кu#*/4~%#/ _Y#/4:#/C i$ /Г$/VHD$. h$.l u$.8|.X$.P6ь#$.aBGѵP$.0(`$.Sj&%. ڃU%p.ژы*.%].WڱiC%A.!R%+.\([% . iw%-Җ#%-U}2R%-bO%-\L]0%-4G{a%w-,ړҠ %b-FڭQ%C-%$-fM&,&Ӎ&,Z4 &,`U &,يH +&i,l٩z #&?,hAӾ -&,  4&+#-. .&+Pob 9&+lvԲ <&v+4Xٝ ?&N+0% B&$+l D&*wՠC F&*DCi ?&*yz& F&r*LٞZ A&N*/Փ 9&*E! @&))D 7&)\Xo 5&)uّ֧ 6&V)7C 0&')# 0&(%q0 +&(jY׵_ -&(3ف} %&g(lٸ1 &,(8q &(wآ &'?K &',F%k' ڰad%5'}ئ%&0[ $%&4-W.%&6ڍq%T&fCٿ8%&!GY%%U.7|%%jboڇ%w%^Chڝڼ%K%*,~z% %Ap%$Dx*[%$n{۲HK%f$,ڸn:%*$ 6(%# e$l%#q F_ܵ%#( ۙ$P# ' $# l4$"o (9ݪW$"> 5al$" Gۚ$H" WM[$" ?^݋$!W !l3$! }mz$x! ۠C.i$E! ~GS$!] m>$  L-$ w.$^ Sv$% s 6ߥ#D %"# +`#;܍P$#YP?#"]`]#u1x#~`*p#iܙkW#GuGJ#I25#6#lE#ܔq "Pt?"6T"5/ d"Kc>x"eݚv"Nvn}y"!Pd\"S5A"Ab',"<ݒU "N%![!2//!Di!!XޔN-!Unz@!$nTt!:$e_!MpL!~-~/!gyޭV!Ars!zn  N_#- 4`:M [Wz oRmߣ LR8l &LZV D> n7A- O.h $"ߗ W6/ 8 UL.llTmipUJPD.,0 ! %"/0B0I`!7\x.z?yA{X?QjAF`Q&Iq;N&yTnZ4cfK[n*_W|?s|P\qlKne[GUjB@KT,9>=23!+ $ &"2!3D"MT#$ac(<|pv/P}c~4dJt=~v-fI]_RDS](Gk+ AvE6\v0:ve,OYm$iJT"7l=+U-9   -/J1Sf Bp~qYQQv18k"L+2H!k5M\#e<=pa S0 t7X Q'\ 8'  0GV9[o_u~{ PWa'52I,*/<-HANpwFx9m:XXB \p! f> ^u.xr EzOE (zuh h8 E#] {CRb Db<& u~0u t(%B Sot 1D 9  v$m UAH bY , j;= PJh6| 2Yz;a t1 xF-5boYSaxxQ;=sCC& 2;N l6y (W' J 9m 6 }VV  b 0! .( Q?5 29Rs RuZ "t>tq sgL, z+-X j GY6 U 0jfx0 902 B X=MB _pd|S k1P {+( h|} Vt!  TlH Gfl d>3 JW -Sg s?Q1^ {Dp 0 EG UR A   2 u>n A >>. y ;q! =; Y", ݹ"]6ݏ"fd| #3&I#F$$#W?#@!kܤP#mJw܊^#fdpr#.Rb#q6T#gB#+ V3#T0@ܚ!#uQ>{#~'Nl# !E# # 0$D%C۫$^GQ۔)$ied}7$uBVG$&=rN$aZ$  Ql$1  Aj$I < ۪߰1|$k b {ۀߎ!$  zkt$ rVX$ d-2$ d $ &_ $! ;\$!2 KX$-!F a]ު$C!h u]۴އ$W! W۟so$h! aۓZ]$t! Z~>L$! Ue'>$! Z_2$! OD"$! K-$!% G&$!6 C ޼$!P @ި$"\ >ݞ$"l E݊$" %>|$%" 0Br$)" 8He$2" @=X$C" GBۼM$B" M>۸C$S" U8ۤ4$_" Y;ۣ,$]" a:۞&$h" i=ۖ$h" k=ۙ$g" tFۚ$d" xL۞$b" |K۝$`" [ۥz$W" \۩u$Z" aۦ m$U" o۲ h$K" p۲ c$O" x۴ a$F" }۾[$B" ۾ Xy$@" Xy$:" Pp$7" Pg$-" Nf$)" FS$" !GL$ " +DC$" 3D2$! BF-$! 'PK$$! :^R$! JpV$! ^ޅd $!q sޙj$!] ܉ޯo#h!C ܧ~#M!* ܼ#8! }*#! q3#! h;%# aI:# UM4V# IVIk# >\a߁# p 5gyߠ#w Q "qܗ߼#] 9 yܮ}#C  l# d# /L# 7T># Zy%/#y |0#qW ܤC#I* V#%  h"3y"x:d"a%\"hV6"f8+!0M0_!$`W!_yޏ!R"j!$"&R!*Z@?!f[(!Mޕr!R!c H C9w p2*k r,B߮ 7Q& lZ) VIr F߉YY ]߽nA #H' h; fSlv.=,.;A"ksaj'q"zE|7.U],yx@bww$m$d1L9/)A^Dzh+_ K+mH?UdR.Lt Gx$[X^J2MnB$5_0ry5hf04$>. Jr%\yf/:K[`2`;fh@{~3y-8rSvmf{WmXB FHJ! < F *!Y A  ^gas  W( : 0 6o  o #S 6G $ q (w [M ,>| 2C i 3 :2, 7 cr ?r C <b4  B,d= E?s @lD @ {6 :m:' I6gq k +A 4r o~ Z 4 E KJT " C `  I^ s S] %   >~LU.2qOh.oqJhV7#^wgp 0mh20c|&i<Q2[:\HB Q<`[eu9Hg z)7}:llWw`VV(M8{Y4#%wq f}MGq 12!<LMf3yhzb1VXU9~3Q -!T'={IX`rCb9k3 s,;:36C :33TD:4pm;N4Rčˌ ;4i eˤX <4Lx߭A <4& +%!<5 s!F=,5 cމº-!=f5 T<">5 dq"c>5 `v=ʒ">5Y ʼG#+?65 ܬ#r?'6 Xw#?A6 'L$4@u6 ۧzH$k@6 Mvpm$@6~ CɚB%)A6S ڼ ɾ%aA61 L}%A6 ' 5&B"7 ֽ4&MB/7 YٗU&BE7 \ȃ$'B\7d ȭy''Ct7B tż'IC~7 )ؑ~ (C7 -],Y(C7 SN(D7 DǻLz(iD7l l)Ȫ>)D7D >%)D7 ^)-E7 ְ-/*vE 8 hRp*E8 x4~*E%8e Ƿ+AF286 ԢQ+nF<8 Ԉ+F887;@+FI8k(,GE8ǘh,1G:8NnӪ,uGI8'~,G=8Y$--G=8$Zy-GF8\lj-*HC8h'÷ǫ-OHI8=ўC.HI8T.HQ8d06.HJ8%l /IE8z˶ǞF/EIK8Oкv/PI68%mЗ/I68,d'/I18SM 0I84wM0I8lǭ0J8>P0J83ݵ0-J7μ::1_J7Βa\1qJ7Α/ȏ1~J7RIeB1J7DI2J7Ag(52J7tbq2J7rȒ2Ko7YEﴜȹ2K_7-״33KP7̿;3OK<7̫@Q3WK.7̦r3jK7sÚȟ3K 7O)15Kt5"V5Ki5u6KP5}ʐ6K95\ʻ36K5/W6K4 \6K4,1/6K4n#QU6K4i/gp6K4YCˑ6Ki4`B9ˬ6K[4KAO˾6K;478Y6K%4/_6K4!r 6K3{#6|K3ɍ?I6pK3Ȑ_b7hK3Ȧ{́ 7MKp3kȷ̨%7LKO3Lȹ#77K534ܴ)7K 367K2 17J2;47J2S537J21jG:7J2@T37Jq2Sj47JX2c~@7J>2}m͋27J'2jȍͣ<7lJ2Qȓθ@7gJ1@Ȫ47BJ1-˵D;72J1ӵ]67J1|27Ip1 -7IT1",(7I:1=:'7I1OF7I1kU7I0s\7I0Ȍ+d7dI0ȤEp 7]I0ȩRw6GI0Ͷlρ6&I0x޶ύ6Iq0mϘ6HW0d&ϡ6H60[6,Ϫ6H$0QENϲ6H0LQh е6H/Inɋк6bH/Dyɫ8н6MH/C·Lоa6(H/AfP6H/?~>6G|/?#!6Gb/?M6GI/Aaп5G,?-?Ic,?-VAC,?-f:,?-AԊ/ҥ+k?-s1ԙ"|+^?-_ԴZ+7?-,Z+$?-*+?.+>./ѿ*>.XC0ѕ*> .zcJx*>.]X[*>..y+3*~>6.Ն *o>>. ֢)N>K..5ֻѺ)C>Y.U^ќ).>e.tyh)>k.K;) >.q')=.p(=.%T(=.AO2>Ѯ(=.cn?;ю{(=.S ]K(=.f2)(=.t'{=.ؕ'b= /2Gءо'V=/RsغНw'3=!/ymI'"=1/¿@'=J/µ&ϋ<$;B0Rļb$;G0aijG#;S0(܁Ħ#v;_0Q܌Ě#m;n0 wܢďu#L;r0; ܿČϮL#>;0f sψ"#.;0 li#;0 iF";0 AM":0 `M":0 (Bd":09 B/ϲ>":0] M-Ϛ":0t g#y!:0 #ނM!{:0 Jލ3!c:0 pް}!C:0 N!5:1$ +!:1? β!:1^ ΍ 91 8k 91 U/U 9 1 H-i 9.1 _ J 9-1 p" }911 ߕ^911? ηM971T AΠ'901n g΁901 cZ8:1 K:8-1 31861 N8;1 'i801 Mn8812 yνwR851O ΫT=831_ Α+811 o811  [721 5/A7'1 _J"7/1 fe7(1Ai71I7#18ξ*71Iβ71YEΘ6 1uh"΄607zj60_ _B60wI}605T60"460N60u'z50%!6K50>G5ϵ"50TjHϦ50^Tϙ`50t<_π;50\ov50zdi4}0#ˋJ>4q0>ː;4j0jˠ'4U0&˰`4P0Q˴84A0 sy4+0J3$00,)3 0;L3/Fz Юn3/\: ПO3/c\1К$3/nJЉi2/~bЀC2/Fuz"2z/x͗qs2\/ͫgH2K/+*1%@**aVL=**q7dW*}*Օ9=&*[*շ1 )4*6*)*-a+))X&#<))O a ))p<(x)Uס (H)N(')7((`'(I< U'(|`0m'(؂+'j(ث&C( I)&$(sery&'=9&'@&'j %}'!/\ښ %V'#[ڻ P%0'$~m %'# 8 $&,H4 $&/xX k$&23{ %$p&Agۡټ #P&E$ܽٹ] #1&Md٬' z#&Y ڦ H#%\&ڡ #%bCRڛ "%hzMvڕt "{%nݘڑP d"T%pڏ '".%wڃ ! %$,~ !$O`%y |!$Khc @!$jd: !$ ߈Z c$N߰K A$BE e '$g< + #1F #..& #aS #+v=z#^ W#b6#P+#`"+">@",s+^x"2XtU|"?ݸ W]"Oݨ#J"`$ݚ-"kQ%ݎ"}fx]!n5T!6e! VO!K:rH!sn9rtf!!7=M!;! ! @B !twxs -I> :9߹  S Sߥ `7Joߝ nl߁t\o iB0[ [L ;8 CM". lv ~t DA  2 B+)[b^*sGܑ3%#{ 2yY%$ -hi%$ #W%K$ Oڙ<%x$ 4,%$ T &$ !@&$/j&&%=&_%:LهڸX&%OVکc&%a1ڕs'%wX'&skn'<&jؼ\'Y&[T؈I'&L1_6'&@M.'&2,(& V('x(>'tש(l'5~7('YE('&7b5)'5wf)(D׷|))(Nnj׬)_(]V0ֆך)(l@pב*(q/K׊2*(zc*(v*)co)*@)/լcP*i)ԅ`b+)jZ}6+)qBSw+)WwL+)Cc I+*',C+;*Ը9,K*Ӫ8,,k*|.*\,*Z%E,*i>"S,*Dx,*t-'+`0-D+Aҭ r-m+my -+O` -+ I=.+c0.+ V.,m.,,C[.J,)ѫ&.c,ь(/,g)CU/,D,Yy/,}-,y/,o? // -O//"-54#05-ϳ9^0b-ϔ<$z0m-sόE@0-EgKg0-QR0-h?[1-K#aK1-h1.tn 1.Qu;1:. ίz_2`.͙}| 2k.rͅф]2.yJXч2.w(jLэ2.n C5і2.gѝ13.] ѩM!3.Qеj>3/E{w3'/7Sw37/+=g3A/ 0̰ 3b/̔%4n/˒G)4y/sp`4/}[y4/`vW#4/DM8,4/&&34/;5/B.,50KOW50S`c5&0`570aSʺn5M0ICʳz5J0}(#ʰύ5`0jɓϜ6q0^ɒϪ136q0OɄϹMY60Alz}606xqd60+g[U60>9I60;60 <70 8 4.70 .3J670 ]*8 12 m08 1! X81 Rx81 881 n481 HN'81 ;cD81 &z\81z Α81f p΢ 91U eδ9 1@ B.9 1+ &691 :90 ߴ  Z90 ߣ", Y90 ߦ:D d90 ߏVa y90 ߆$k{ {90 |7ρ 90r jt:Ϝ 90X GiFϴ 90C 5_P 90, %a] 90 Jh !90 Go!90 Iƃ,4!9y0 0ƆEJ!9w0 4ƓX[!9a0 .Ʀrr!9Y0 !Ʃϋ!9O0l n$ƽϞ!9:0W c ϵ!910> O!!9 0) :!90 8!!90 "$ !9/ !9/ /*4!9/ +BP"9/ +Le"9/ ;i|%"9/v 6{К6"9/Z <ƌбI"9f/C >ƧU"9R/' Cƹg"9:/ G"9!/~I "9 /u\B"9.Z[&a"9.Vi#7+5A#7+3T8#7+YȆ.<#7a+rȰM7#|7=+ܙf3#S7 +ܼՅ-#27*h=ը)# 7*Kl|*2)ə#6M*U#6*o#6)ܔ4#V6)ܼSV#:6)ul#6y)ɠօ#5F)i֧#5)J:"5(2`'"5(݂["h5( ݬʌ""B5\( ʽ="5*(d"4'),؇"4'n"JYء"4'N-~˕"l4M'%+ݢ"N4"' 6"!4&;-&"3&=`H"3&F@̍b"3Y&Jgك"3 &hSݖ٪"T3%GUݿ/"/3%*_f"2y%gͪ"2;%fC5"2 %sqZ"s2$tݦZۉ"I2$hv͋ۧ" 2\$I~"1$(y"1#U:p"1#݃r6i"h1n#ݲβ^]"210#X"1"t ݙI"0"UD[<"0"-vϖ7"y0R"ݜ%"H0""0!EA"/!5v\"/i!mйބ!y/"!h ޠު!F/ G2!/ ($q!.m 3>Ѳ!.1 9k0!.GޗO!J.Sdy!.wWѕ!-S_h*!-5pe!-yޏI}!V-҆r!-VKg!,7 oY!,kJO!{,ZޤӖA!;,F*;! ,  .!+K_9"!+yބԥc!h+@ޯ!3+k%!*: g * M՘ *H߂ e*߲= 6*'IW *1 ւw )\t@G )!SIu v):Xߤ2 :) eր  )bh׺, ()wGV (x߃J h(`zׅ߭ ;(_<| (x '<<(o 'fmDi 'uߓتj_ S'9[ -' i Q 'JKI &FهH &`kٹ: z&)ߢ=7 B&>d2 &q% %pj3ڱ! %,@b %ߍ" ^%߷Y 1%ڕ8 %RR$' 5m$}i3$\_`$G'ې-$N -$3 #A@6- #FqvS y#oQܨq N#@Z ## ee ">o%K "%uIw "o yݱ |n"/1 {L"H o""Pp l!| އ g!ecFޱ Z!4Fs Uw!$! IL!M ?"!ހ 4 b$ߺC * -K\ $ qw v uS L V{ - qDߥ  ?$  0  U%  zT, u &yB Su .U 2L 7p   ?  nB   ZNDB  :Mdi  *Sz uh \ T> [ ?" f ! m.  v 2>  +NI x JnU h~ qh Y[ s Nb>  ;< u 4 c ) Y9  C4`  3K} u &k T  g2  H * 0 >3 HI! Y=g0 _X=s ikC[ vSi= {]U& fp9 ofwV /}J$F8|B_(u[rtr }klcUfQEf50`&!`3aEdShg' lw=tS$hvl2Xz?BrO*S`|>mv# ~szno/lb@/gURAdK`Tc@ld]5zZw|,Shl#HMS>6:0' # * D7 ^S# zl, {5 cp+= BU:C ,@HH +ZM iT w6\ T0fv nIpi bya k}Q OvyA 1_t4 Ho 3o p1  qO u/q wF" i{Z5 K}qL -~[o q[ ~@ lA, U\ ?} l% R~# 3~9 }Q+ zc? wxA]{ tewc }rP ibp3 CGp /s t y-= }FZ ~^{2 rzM|y P^|e 4rzO x4 mw! Z6w BXv ,|t u1u TNr )l+o @oo 1[kP Usj6 sh! }oe [Xb>I]$81Y&O Pf'JCEri>V*<@n=;)KW:+i< >t ?^4<@JEVA4]v@x t=^ =nC9T!#6A 26/ F4u& -#n"Y 9EM 6d!&/ w< cLK[4)d:q P| dst+hBo[X_O iPC =u5,d,P  =-  #&$ &- -9 4E :T* Ef9 OwD XS"s `^&f eh'^ fr1Z dw5U d~:T `BQz ^CLt cEGq eE@k kC8g tA1g y=,b ~=)d 7|'e 5y&c 5x%h +q$j )n$n "i!r _ w [{  U| M |K G zC x> z; s4 p+ "m&  ,g :` @[ IV  SI \C a= l. y * }"{ f +] 3O C9 P.Vd 0n; vHw`7ljHa"zX{S$ulD%`w<%O]*'>H)06)", 0 1  7!0- ;4F7 ?=N> ESgI Jc{S OpX pRh tRWw aBZ R+w[ <b` $Va Fe. 4iQ #kg m3} omM QmZ @jk1 gM we\ ib!o [a> Dr`V 8e^h +R_ m@_ \4a I'd %i-  o? uY {r2 I* piC ZX El}j >Ww *9pp Zj Ge .` ( ^: \*V X>}# yTP4 bN[L CDin '9x t0z X$ o>1 j+> ^ ` L} C~$ 7cF )?c +t '} 5 [ @I+ I3> V^ `q h&"uf6EHz=\8nGuv]PWOY EA[##._< eQa^gt3 jJrf^'ej|=GsjN<\ja'Cjy|lio Um-1<rEO-rYgpigt oJpf2o6KmO6gb/c4|t[^[XqGO\'G"= D5$9A2T?)j4XoQwszopM iR,]21J9@C&VR5Sd&jvn}P| ]0}5p a$OM7-<t|!*RZ ,j~,4"\47G:5SDjlPcuV<1\`fEm k/k/Mxad *y6=Jjkad@|Xat|N*gWA A?>!2 7Y: ,w_%1zD'RUb!,,y%xV+G>Ak#bM `*B%Lgr}%Y^D6px0[ ^ = JK  h! f Q/ B vd |&  X_  -  +  E &P h *X fg 'u 9G ( P ," ' (N  '~ @_ %4 i) 'L h "l @ !R [ &u ?w  "@ $ 8 (" T %:; vs ,o{ udJ . Y4* / 1 /% .`> .-`^ &U` *zwA &] W5%^=2iJ)^_T9fZ C"&%H ]oߐ= ihZ 3D e#  H ?,ߩ# w/l#!MD$*!l$W!^%w!8~޽A%!U`ޒ"!=W%!6!!, "P#3">qݮK"d݉eb"V@ "a'$"P "%!"I(ݥ&#f@܋%"#YY'B#w4~._#l(r#R0#"\;6#DHܯ*3#`3ܐ=#aA$ED$"(H8$<LR$QPg$-cۿN$Y}lۑwZ$|Nwe\$7TQ]$+7m%&m%s,%%W%P ڢe%h|ڑ~%*uoj%ط 'Pة.'^ؖ#S'w؁-^'}=r'~jN'l\_'_Zg'MJt' >C' {3>' w/8'c2'b/'Y1'K( (H( '?)(5()($*("5(&?(+@(3R( 6U(;S(B(e( I+b(P6g(\Bt(gQu(pZ}(~i(zv |(rn"~(h|p'(Xfb-(Occ2(AXiA(.E]I(?eV( 2fh($cs(jׅ%(rlה7(drפN(Tp״\(Gwl(7y*(*ur/(!g|<(QuQ(;sY(*~f({&s(7 {(|Kv(x\4n(eoIn(^Wd(xYהq^(aBרa(Ro=׷R(=Y0S($<Q(%E(  F(߻ @(3- =(EB' 7(Z_= 3(lnC 0(}G "(vpז[ !(`\צY (PM׾] (46h 'f ' % l '0*s '@F6 '}KaJ 'vV{k 'w_]ؔ 'cqS]ؤ 'RYJgػ '880d ')&*j 'x '| |' ߐ0/ f' ߡPF V'ߵpd ?'؍x -'cث 'Ca !'$D!& 0 !& '0!&@4!&4^8>!&AفXK!&qQٜqK!&TjټO!&2n{R!z&NޑY!e&:ޢX!U&$޷<^!>&\ i!2&t c!&~ٔ4 m! &\ٱJ r!%E Z l!%*#s u!% . x!%jB }!%TQ; !%7x_Y !%los !% i{ڎ !{%bbގگ% !k%DVޘ5 !`%-\ެK !H%Sg !;%Nx !(%~T7 !%fKX !%OIo !$ !$ 5N' !$(^ ? !$'j!M !$+ނ?e !t$"ޑ[w !g$+ަq !L$t/ۍ !8$dd1ۧ !%$OV:ۼ ! $8L= !# !B#?mK !'#&uV !# ~d }!"s z!"(2y p!"@I g!"sU^ e!"ocn U!"i|݂ P!{"t_މݔ J!p"g\ޚݠ =!Z"VUޯݴ ;!K"BM޻ 3!<"3C .!'"< &!" 3 !"* !!) !!"/2 !! V:P   meU  Zt l (_\ @ Od@  ji+  "o a Oy = x vz $ Ol < b SD W cf K {Hw \A ub {:6 M Q- 0 " +  $K Vxp 5\N O1) l a G3 I qU+r  Bn P '$ 71/ S[7 i;?^ jIe& RN\ ^4/ Uk u^ A.x 2rto V,Ng rX'b WN] 3[ =Y /hT 'j~_S BT;N a F  hB 40L: g[(u2 8Y+ 2" . WZ {IyU wXn  /8 B o!t =.0 4LL`_wu%uq>dY \UE oI5>n 0W  (F!1*>)R4jA&{J~0Ro@]\MdPWm@e}(zrj}}U o:)d'<]R$Qh +Hv.B(47n;:.[I=%K]F2xQ}[ iiK|0|/m@WVCh,2xG|jcRk>L= $$Xq~/$YT->)q6} =?QWE/j-I OMo7nORYN<mOfJP;-Q'WF2+_]UHftmod{y_3SH 4~ - w@ qm-kNW`5|oUMMJ^%<xK{,{"fs CQGw3 nI7 kt+0-A?W9ZH^}EUx1m^`} i?>Bve~~ BPr1]hT,`n#R5_VDp>x\8!C(%,"DSAXR_&,*v4|/,HYpdZ:vi#?P|z+ m/]9`NlGuQw| EHa#@<<52f+V8"[7* (Ya q }N SQ 6n= "A +[ % 21@ +:c% aFY Prd Z\g< f<- o  )v  C W~~- gkwD AEob f  i] H * PU z P -dN 1jI OE  "CG L Cl | pD 0 gAE X 8F y zH 7 YI u m/KB  JL^  N  gS 0< FW TN )] n df  zUO ueF ` p> F33 "sT- gg% [ ]A= E7T ''p | _ ) HC  "+j 9 wH(" Q_T0 0oo5 8r YF[ 23FH PK0 *sS }QT d nX |I(Z I"C^ , Y\ z"[u ?A_[ aRW> wW UvU +aN D:M "bLH qDq =I IB6# U0 h" =W ib| pZ` 87/    @ (?z &i7n @@D RWU l e= tr] eH rNDw fx+8 SN"! BW 1- c^ 6 % RM( i%Y n22 JO=Z $@M [a; 'oc  oNW /X :@a&K*1^_#s^ I4x%a\; :OL? Dgwm,FuL'oZx#<> (! N 8xi!u#u:61QJ<f8Sx(V]R~fdd}L]9}65xc9VTiI*aT9I+h!%oaRK}0Y{ -X' $ ;KY{1 fw[|8}fr%JF=.0^7:[?F-*XIG{IlkISIuPjw-QII U%,Q&FQ,]hMPMdmnD9W<T193!5* e# , ]J/ :lH  _b %pI C~) um a p\$ JG2@ )7:\ 3L{r !['L kG- ~cz  h g,Z MFN 2i$<  54k  7$N ; D& X L  o I +2 M dG] I Ke Do 7 =kC  7I  1.  %  D2 # !cB  >X d at > x z# s \ _ =N3 !AN 4 u x!.3 \8O ; Kw uY Xh 6}< z ^( f'w- PxP5 8P> l-E E  L & 8Z <3Zb V_i fwv }O=z b' @}/& |^H |j V|? Y}f ;}' ib <}|( O|H }" y lzQM I}x s`! ?${ 9Cw ,rip jdj /\f e?^ 0iZ ~'W K>PS w"Q rh]M GCH A >  G.-4  ykS' gk   f  C;N   T- ))  9/G  KEv T r\ Y Rk % .zU} } Gn 7 z:c j 1fQ  ~ @ J QC3 ,# L & P!J f!v r m+  Q@@ R> hy- C [}Uz   |g mnqN d ^6< &  ( Oq; Zl D   W(r^2aC#WnTZpdxe w=9t`SKL&D>X{q)Mo(aO~jj43Z"ro#\+*?WU-%Cu){*)R $.6 Pp"26? qRKVzh={s)cBn#_  S*GI<,f:47zIw2HiU%W@y"b*f"sMzC k6!Z';I#L8&b!/ s3`>@J7-$QO2aj<pHe~8LxJORg*lUO X: r&T$ ^LQ A pQ 1Ga AF4 ^ D x!=z '>>Y SZ;< up9!z 3I f, L6' 9Y Xd  Dl )2 P *i SL g_X G,5) /8 J/ [Oi hy0kK ~Uw' tg%MPhg7sDB8 +%X}!r$o:7@8M(`k@\d~zwi"J[d@~O )B/ He r{#O U0 .$X8  ?Q  >} 5 mDN  Td<  A4 ^0 S 3 O  :A  :\e  }\` y 8n i C'k B lo &l )  /~K ]9h W[! WI `:. ;,J  x5 L;%[ a7t} Ro P =] ' s W$& N[S zHtpy x\E i? 7$  $X $ d0\ Q -_ rk |} 4 (OA  'p  bD A  yZ Dn mR dD 'A  xQ  !5. Zm U7QT j|, rTsI G`q[U~.'ie1|!3XH1&;q}/zQ9XWH i kKT %&7 \zV F d[Te *% m 5{,' U .{{ JkJ&4brbA<9QxjEiDAnZ~z#8S DI=HwnInI:[Y',LI?XbH \?2 53 S!]!N4ݝC>"t}mb"{W=C#FS# 4$4۩'8$v6wU$)Px^%qi%;2\&8yٳN&duق$?'y:LA'& i (3(N^!׎ )#.VGЅ#|/7JR#/*@$B0ۋA$0' h-%,1V ڮΘ߉q%q1{ dWUo߳%1 90O&d2 ك &2!2! '$3A!؜̟?m'3v!iQY'3!Qv(J4!vׁޝ(4"VR"ݳ(5&"A)Z5["gʍ)5"M_)6"; *g6"W A*6#^\*74#v+t7U#{NȊܙr+7#Vb\ܷ++8#=ԯE ,8#$K f,8$g ,;9.$(ӣƿ,9W$XƏ9R-9$|cS-=:$HҨAi-n:$f!ۇ6.:$kڣ..;%%Rdڸ.\;9%=uı /;n%# wW/<%]/M<%RЌ5 /<%6!$0<&.W01=.&ϲ@0m=V&Fc—X0=|&tg 1=&]zB1/>&{Ξ9ُ1>&h]Yٟ1>&Z2;٬1> 'Mؼ%2=?@';ͯZ2f?S'12?t''h:s2?'Q2&@'43W@'̏ Z3@(:3@+(f 3@E(9侮 3HAi(˒)4A(wj//4A(IW6[4A(*A4B(hG4,B(L˽L4_B)$ˋU4B-)[W5BC)=Y#5Bb)\T5 C})v\_5'C)׼f^w5;C)tʦOa5sC)_ʂ5e5}C)M|3g5C)6Rj5C) ;n5C))l5C *l6C%*k6D/*߻f6%DB*ջc16=DV*ɭ]A6^Dl*ɡY<6[Dv*ɜSO6yD*wlNS6D*yeKW6D*ncF\6D*[MDa6D*]PCg6D*UJ>_6D*S=:j6D*H=4d6D*O5+U6D*P.Y6D*E!F6D*Y:6D*U06D*V 6D*k6D*$k6D*-x5D*4 ʂ5xD*="ʑս5fD*I+ʞձ5bD*T>ʦզ5MD*aZ»Ֆ58D*siȻՆ52D*ݻzl5D*+hU5C* )X55C**2K5C*DA94C*a?%4C*6ˀN4uC*[˚U4RC*¼[o41C*׼gL4C*-n4B*E*|խ3B*]Cՙ3By*rMuՂ3rBe*}̠ce3MB^*ʽK63BO*23A:*+2A2*Ua2A*͋_2\A*0ƾվ2A*S ֟1@)l3'և1@)tk/gm1t@)΢EJ21G@)ؿV50@)#w0?|)lVw0?k)ϒE0O?K)&/?3)G,֪/>)cdU֑~/>(|В r./@>(,K.=(@(I1.=(veI.\=(- =a(#1ë-1yܰ!0q#k{ϩv!D0:#)E /#R#C p/"?."/TvݾEz.w"SѠݚ.B"}V5gb-"6 -!H%D,!|,g!9A.Զޮ+0!fވ#9+ ^* ]%** ֌)^ xy־ED) G(u~y0zWP(gR'yduتTG';&M<z5$<BSGb[aQQ 1e 4s tG C K k M0 =Q ) x Qm  5A V "( 6  + Q" J Wq t+  <K ~L+M +J GA + d UEa  @VY L5%&   =E2 %x nM %(| *l$ 1O* gk,]t . _u . z# E N 8 m py x"C 9 a  }.7;:  r r anuT 5 =R:{J Tq)mq`}R!]:X:DsV{)g]hf 8>?0vBUb}%K`&m</\g9g};8Q6A0dDGC?4JRSLy/~Sun`WbP|aJk-m02v3 s1bh`eY/g?L>7?_ 2j"'}&FuZpeqXiGXD 79%)!! '-41CL9clD&Nso)W\T=d33Ik!Su` kws.+ltBCdTV}YceNp}wxBpkb6raN+fF5b/_' [ X&W6']K1W'U<[+aF`4oNYAzV^A\\xPdWi\iX_^qUUmyUFu~P=}}S2tTy%oOofWm_VkZXf Sbn NeoHntEv ?}9yv6rk-ec*YW&UR FG!A<&:7*-(1( 7<C IO V,a 5i *Ds 0Ux6_nCr`G{SQlIX^<b!M-k'=!q'-1|;y"?k _[G2ybuYXxI|`zz-slZ az 4E}36Ts}oh@ g?` `5Vh/UMBOeF%uv8qx3Ia3)*VT7}sCT k /}( D H+eU8]pq~?LK"  7-$LrSq({qsC6Lh>ACHJ!wsMK-RFlR%gGY`y[` :1b4obs_0OxL&Pq}w#yMSOr+y~oo_h4 Bf  ;[]AUSYvPv#A@G;8  {0 m57" :d_ +R hZ. I  G!  H   tKEm 8 Gk N    Fd  zv (t A RD (  h g  E#0  J#)e  / "Y 3G 7- ? h JD%  iPP  F^G [ c ) Zp #w GzUI r{z{ spZ ~A', }&}!^/w{Tgy?|vrnoC8Zr jO/)geWdQ~]\tyX2hWP")L6CdX#=G=bbX3?32g"/Q#L&2H{$c ww-"X ?+Wn zsp(:EO$k' iX C1 %mJ Bi B nd3 W%p Vr., 6O0 #9!8"$3!<nO!BZT!'G\!=a(!-jO!n*`!x@x!vރ\"|^݈s"qKݗ"cl2ݟ"^Sݧ"SB ݲ("L1ݷ/"Fݾ&;"?-=":BC"1RN"."VH"%0fO"=nR"GuJ" T}M"eH"ttE"n#?"rf39"aZD6"T[Q("FTb'";Pj"5Vw".U݄ "y)[݋!n%_ ޚ!^!gާ!Sn(޵!Bs6!2J}!!\z!im!cu!Xh!#HO!678!C"!!R!e  &s )@߄ tAYߓ f]zߢz W"p߯g M(߹jG ?2Q/ 2;9 )C M X6_&ViJy qum2P}Ff.Zr=oe6[weI_M8[Pt)w.;E#K*yj'b(88=dEQ2\@gpgy?vPiw\oTLED&:+ ` @ Wkz% 8/77CfM|ZQg4x}Rrj[^L|<M1E(b [.B.PGJVh#g]orOS8U.>9)$e wdx 03D I!5 i%mT nljjx 5O7 k;, LD \1[  @!f! |Va< 6say) HZ r?A WSJ .,!jt(e lIEgRc|Gs5hL6D?5(,MH 1/<tN`awuY{#o _aSu <a0t - Q AD' 7kD KC c d"8 5 }p`  7[' &>J _Q# $r E ~ p^ R 8 , 7{g H[t f6! UWz F{eJl G6C .6$ b)!y "R  >  / _ ' z_bs] = '7; J  W 2< k }3hV u V7 ta :lfs: kZz7 J/ N5; )Y/X c#xe (9; `  6 O/ .Qf jy6rk !<! %' K3- 2SQ4 \); g? )S1F _M H aG @+H dryC  CJ? ? : x 0 t5 h6U2 h"1y+ J(  ("" @ er n 6~2 ^] ;R hz I  # ? [) ` I3i t q<|r; KW0 VB 5e* Lpzr| iHh  9P !  6 : A# H Ci~ W prGr C x  $7` 7 _NN \ a@b ~0X#q $+W "? Q = ^ b 8 "h H5 Kc |he - '= W  r z _(L O1X q%y  J * 2* I ^ j J <] [ G (%b _ ? )n <9 # /O  / V^ B .sb Z j3v p [g q%V ?UF !cC6 J4V! ~i% C  N, -y?u !ISL /xoo :Rq C .U HX5 T a Y8 2 ]_  i %8\ l OQ> s t _z } -_ * }@ P y  Ywn  uNd  Cx"$  pv~  *w^ 8 \z3 b xL  |l" %~O /R%{ _t|u aSm #%e> _W U{ XBtO nT]I 8,Z? %7 +, T& C\ G t,y U  L j ! T5r z/Ear ][K9 o6 U '2u 1_ g!J G[8 s,m" .8 E(  UQ  qJ*N ~=q%k U_9 ,sM \>j E5jO ~(8e2 ?  &  Z >( ~ g>s  _j) 8haA bbXY Q2N| y$E j< 'L. MT6% mu$z  IH .*#Id].d=XitK'6]_( kOM6z:{k^}g;VX+B  .7*X> 8obw O;V ] . k4 5Jw XC\p sx_eoy U9@a NF C% 0 ?9 Q g/ y (lJ  <?  T  +p } % g] N WB i #  N  01  Z7  aG 5 l T G  7m  nI}  )L  ?  f ; ;i ] ql=  ^7  E    SI  {jo = 0Y f 1  j  IJ 3^ T5y m,BMQ!awl##a*I&Hl-&{Y4E9U5DV /LIbUk{_Sh^e$$&l.p2bCwxav}=w{wTy QoQ-h}#k[R(Q$\GJ1 3=bf {5 W2- J>' ts[ ;  U ; b A L yju %NaA 3& ? : AL(t zWeiX c(;n m ' yVy L0jx y4c}+,"@L[#{ixP]*-( LXNQ] t z( J c3 `, J 7E B(C Z]M 9Wa7 |_4l )e@ on_ @'s nSz MTQ{ 6v n *4k `vQmg Z>f  $g lci <R*m lywio V4z'v @x x L7T} VXbz 51z  | 4m* r{ XW =|  KQ~ W   O :/ Hv zbp  z0XI  y /1 p qE ny` w gCg % ^, 1~ Zb Z T &_ O+  JfN  H i )  Ctߡ K ;5`ߥ r :p "!'! .ު( x!! %jX !!#@ !"[ݩ݅ A""LN m""y ""# %ݟ ##O>ܖ 7##jx#2$]܏#$3$$2ڶJ$G%jo$$%461$ & 7%W&}J{%&RU ٓY% '!hg%\'p5{`&'|n&;((h0٫&|(OXLגS'(CF'])--}')"A(*A ׬՜(*y0Nr(*? 1)0+֐9)+=+F)+J ӞX$*H,}r_m*,S %* -y+k-!jRҷv+-nS^x+8.FԝP ,.:*l, / !`ӽ,p/NgЙ,/ W i-90`҈-0&6+-02αAi.l1vaReU.1! 2c/ 2Фpe/22lͦ/3wtw0d3ng9U03Xr0J4/Fψ˹14`=3˂P14"pξ@15 R 25 V2$6;m͓ɡ026(jI 36I__3O7jk|37s  4!8C_˳Ǩk48wIi=b48$+:5b9tu59X50:\ɏň6Q6:>\L6:C-k6a;^U7;.m7 ngƯ}.9{>,WGH :>o:i?Ee:?Go !0;@xLėe;@*+#+;@ TjC!Hn>C5!(F?1Dl!{j?D!>S.?D!%-W@]E!ꦿc~{@E!"qb%ݝ@E8"S ɹݾ0AzFo")ꟾIuAF"C[ A"G"2&0BG"鑽@WBG#+mBDH8#܏=CHh#X|(ܿCI#3YCaI#໇9WDI#g *D3J$ NEmJ-$úqmlEJK$\ۗEAK$Ql0FK$3謹UWyFK$]$ FDL$ซ3KGL%疸;KGL1%L~GPMZ%iȷsڦ^HM}%L琷0vHM%&:\IWN%¶p/\IN%慶=AIN%0fJPO&}ɵzٟgJO6&Mn?JOC&2&KEPm&zKP&^9k8KP&0KZK*Q&)ٌwLQ&if@٣LQ'N<LR'#вeMRA'䀲[MRR'>6>MR`'߱ѬrMN_S'q䅱vؤNS'LV_*_\#mK}v*_\o#qi^ܳ*_\:#-=p*_\#6}*_o\"5:=+_S\"pm+_L\}" ȣݔ+_\I"S+` \ "ޟ+!`[!ޟ">),*`[!П?xP,6`[j!ǟ\ޑ,B`[2!Zӳ޴,M`s[!BӸ,D`K[ ӱˤ_-b`'[ җᤐ7-a`[X ҫ d-X`Z {ҕ9 -y`ZL҈OC-k`Z&ҙ-p``Z]х(.~`CZшԥX.t`Zщ W/3`8XΟ觜/1`X<ן0`WW;0 `WaU0_PWwԨ0_ W1e0_VVT-&2^SH;H92^Sb|?2^]SW͙լd2T^RͲ' 2@^Rۡe\2^lRjĭ2]R)H*2]Q<]]72]wQ&͆2f]QNͳ 24]P [3 ]{P `3\$PuH73\O,j[@3\Ọ1C3:\!O^3\N]Y[3[N%Lc3[N̄Or3d[M̻dq3$[oMYx3ZM1|3ZLpsS3uZfLy̠ų3BZLQ}!3YKn&3YVKoVдT3YJu̪?3/YJ1gꦩ3X3Jr.(3XIt̃mv3[XWIdtǧն3XI(/3WH\9w3|W2H̰q3+WG`]o3VsG'9`3V G ̖4Mc3GVF өZ3 VIF] $I3UE ̂gG3^UgE ĪI23UE %#3TDW y3]T2D Ϋ2TC $a;2SdC !~ռ2NSB` 5ܬ=2RB- C$2R4B `͇/2FRA oqh2RdA &ľj2Q AQ ͎6R2>Q@ 计82P9@ =02P? ͤhk1*PZ?x 1O>J :d61lO> W°1O">4ūR0K:;ϧ!0%K:/J9np&/_JV9QߵT/I8QMzl/I8uЪǚ:/I%8P&/H7$ј.AHP7A .G6xgN6n.YGx6ظ[<.F 68 x .F5w ҩyʞ-FK5PL-E44}~;m-NE4躠*-D)4m ,`D3,лc,,Do3j8Eq,C3ü9c1,C2$x+BI2|&ԓ͑+-B1`j]ίv+Au1Gw=+TA(14 +@0#\w*j@]0f˿*@ 0- D*?/ե,)?H/+=)>._v3L|)Q>._,)=2.no(g=-2D|(<-}|Kíҋ[(n<-mә(<,a3ZӤ';u,VWجľӰ|'; ,J,Ի,':+Bؓm&8:k+:9&9 +3ي!E&D9*/k&8n*,$UǺ%c8*,W%7)-Db %7}).۳Ȭ$ 7")2x9 [$6(5۠O$*6(8 ʚ#5;(>p܈׿^#=5'C4غ#4'H Vxص"t4`'Ofجk"3'Z< ٢$"3&aݔIٜ!63&jX َ͒u!2E&y~ف)!Y2 &y 1%SJ\h{ v1%߽ΡY$ 1H%L0 %P9|@0$X&#/$QЍ/W$N|/$- !.#?Q.#(Qx-f#A`Ҿܳm-'#Vܥ-"cU*ݒz,"}nv9,v"Ӡf+H"YMR{|+ "5+!=*!Ynl{c*{! ՜)O!26޿)(!OeޤmO)!px( +N>Q( {_6^7( ׌ '] >aضx'; (N#' I&tPv+z_&O[@&v5%yZڗyT%X ڷ/ %8, $^fmQ$l" $4G#gZiX#u##}ݕ"YCdrݷgb"?o~"' U! m_`r! 0!.  ^ vD,S  ?KS  #N*  sdZ& i{y}D 6ch a~mI CR: 0 _" O  *  K J n ?v T 4:    .E I *? Q .i  .74  P=; - < W] .G  EKJ  AF  nNx+dJn:nK|+KZ6:HnDR~2?Qf?wj3;w,0 8\0QG"T#^U+- "&1fN}Tz=n OA/*_" 4VDbjY2b0NA2:A FW%fIFDZPq yVY_6=9a]pofa=pCk6!t<\{#jyzx=KSqyt / xV8s-y)ohHg=9ih ed`K[`Aua@r!Z9U -Z61ORcclQvOnsL[AUKAAI-)O >LYP${4Xn>VUGZp]'gacekC:m_*UtL 5n{%,VsA :a`Y|yL^;%;0 A!W q~1cJ"Q"m82*Me+ZH0s$3)s:> [;V+D;sS.Aon9[a8D@5(6(*@'%e /~ sP Lzs (+T 6 2 E34 S XA ^&{V sjQh C}zy|w ~rR l!`# UNR ApK y-9= Df3 *g *.7 `H  ` \ 4 q l| R 1U 5" f# u/  78 (& : OI C ay^ sG 7 IQJ #N S H_W pEwJZ v;sb $ Me ["h =/o y,qo .TEr {XXw ,y F | zUc} W~*0 |e 6{' dvG %uO #Yt nVL Jn  xlh n>j"h pj$y #j; g_ktq #jC* Xl   blg < aj  lI  r`jZ x &i B ] l  ~$l>I  in } 2p B Qr@ )sF ;`s t2 9 \r U$rJ etp %!s) gwva 2xB ;zY -~@ ^} } ]Y&h z ? y 2 v 8R, w  b w Tw w [v{ 5Y.{ JK{ /| _+Zw{ d)+zz  (x UMx :Xv 3~Tu !!v e |s l\1Quv (y NNz 9K (M 7 ~H m |l Xc~lu 5~ B w BJ:t  Vo  Aj U ~k g8~i md>i ! j y C7hg r9Gkd ` A i j\ s Jq$W  'IU TV ;  U t& NjZ  ?I^  ` 88 e  QM,h  ]k ? !o N  r AXv Hoox $~ T  V%W} lz o w? N`wx sQ Yp ]n^ :j" e` K+_. ZZ4 8OP q9Iw- EAR ,= S< C]9^ 6Y$) 63 14 $Q0J Y+l )`B ]$$x  B !3 # M(l !x m "dvR  'IB(  % & % #S= $ J_ Y  q"j  RV  &/ Z  } n 6 7 c:  P b >k ?% v kd-  DL4 $ 2< U C x5 |H M ]K + :gS E LU T )W s ~_ 2 j_ J< Qc d` 3j  ^Tl  J8q  v - { 3A ~ (WT Gp xr b{ t[ s p>m  fc$a  bSY  [DL  R"> 1 O2 < K$ _ H { F +Gk >EL P%A@ ^*B. h8; @5x F4t O,^ "X(L .`%H 7e 3 Rq' Vv cy vy |w pk  bc ! T[ " LQ 35H A+A D&? V8 _9 g ; p6 x 9  6  z/!  n,  q%  g 1 ` 4 f 4 _  @ ` : b  9 b  = b  7 ` 9 b : W A U B U " F G $ P J % I H ' N D ( O I) E I( J I, I D, J D, P ? 2 V 3 3 \ 6 6 [ , 9 f '9 c . 9 ] + 7 d /6 [ 3 3 Y 6 1 ^ 53 Z 2 2 ^ 27 d #< o > t B |  {B  y@  {:   n3  s,  p"  ,e  7b  <X߾  IM߲  PA߭  V=ߧ  ]5ߠ  d*ߘ  j1ߕ  n&ߍ  z ߃  } &߄  z  u  w   n  g !` !R #!A +3!2 '6!($ 0L!4 1\!< 1\!F 3p!O 7{!$T =!*[s >!?`a޶ O!OeLޫ V!]k>ޚ Z!rp(ބ n!xq o!~b~ v"Ms  "8l &"|/c 5"vY N"oT W"hK g"gD {"&W{= "2Tk5 "DR^ݰ. "Z??ݛ% "o>0݊ "4"x "#]  #L #< 4# I#߰  Z#ߛ r#߃ #%k ' #4$\ , #K)Cܫ C #_/'ܘ F #o3!܊ R #~8u d $=a i $?Z t *$E@ J$Jw߯* X$Olߝ q$Wd $]La $$fAF $>m7.۲ $[uۖ %w|~ %hx !B%ޫFo !a%ޝ1f !l%ބ[ '!%bR 2!%TJ B A!%5%ھ> W!%H ڲ: _!%V١7 g! &jٍ4 !-&|{|2 !;&yq1 !G&eަ`. !j&YޏN. !q&PފH, !&Bl2( !&5Z ' !&*J" !&%3 !&  !&  !&( "';ؼ "''Lخ ")'Wآ"C'iݯ؋""V'} ݫ%"X'ݝs*"q'݅Y0"'%}O5"'/l=5"'7Y%E"'>DI"'F8K"'M&\"'UZ"'%\ ^"'1eg"(Gnױf"(St׫j"&(]}ח~m"9(tׇys">(zݽׂpq"I(ݲqiq"Q(ݩfax"](ݢ_Ym"\(ݤURp"b(ݕKJq"n(ݕDDg"f(ݘ@=k"q(݈26h"y(݌-1g"s(݇))f"({#f"(zi"(q c"(mk"(bj"(c d"( bi"(Y_"(dY"(aT"(!aI"("mA"( 'm5"('.v0"(#4}""(!;݈"q( Aݒ"l(Hݚ!\(Oޮ!L(X޵!F(`*!0( h:!"(qL!(w^!'~m ~!'yv!'0 tj!'@*oS!'Y5kF!'f?f6!'|Hb !u'ޖW\!c'ޥ`V M'nP -'*؁H 'zF؍B &i]٢< &S~?ٶ4r &Ad0[ &,߁)= n&ߨ" D& *& &*,%G1B%eTT%~ojn% څEF%rڙ&%\ڰ$E,'$18>N$Eftp$R]C$\<"$d2#l*Q#t!Nf#zBym#rkܝu}>#YܱlZ#Bb5"&7U" lL"6CO"i@6| "`+R!;z $!v{ޝc!Q0޽0!8_ 'O *g} 90H H2Q Ys!urzfXFZs C2v Lk](^`~TM 6tA|+#4Tlo!qm,?3  7-[}Rg%pV*~6TJ H6X@}`i|a~'{#MEn.nZC{{HjW":54j%i> |-eMQ2{/uP]Yh;51dB IL &%2R PS (q cy] +c#p8 K5 d9 :kL .J[ F0 gj i oof $*E AP g_.| q > 71Q  IS)E  m  W $ e .-R G Vt j/ tx  |GT  i' s : % y [S  @_t  c :h xVX N E* ; Y ' m^ G% gay a-Wj! H-  K_  Z{p8 u : ^ a 4 H X}bsT 0 ,   TW| E/ y vQ2,D}?OLAc[m}hmfm(|71|o ekCYI,UIrs}b9?&1j x{d6 6w7Buz~Lbg' :2AL;ZsDpE=L)SJ\ZybGc|1lSA)v! Fvey8 F-qb h B;Ab ~ Fm] 1YD ?X 6YAV i+wU :-TD 6Rs 'tP = f-qM 13I# CV 9 !> mL=x; K6 - 7= H9y Jo: " }8`@ O&F4  La |Qz a-TU PYZdu {W]KA]x h]r_`^_+]`bliuaA`6_iI s]O>2\|qY,,XFQY{ nXV6[z\L_0a\fn? 3bjr wm BoX_ qo \8oA +lA [k+ X2gT b' [`na #o\ *QX Tf_ ~OC bIKy %cE@ ,Ar s=G :~X i:E| ?o8 M17 5B3_TB/|N:k*3 D&  [ {9BL[i x'].n2v3Y;?'\[v/n,{9i%,D@4WL+j[iTi$3tS' *߰qxy swqub \@PS C >$!,_!@ި!tRi,!-M"^A"%"_>kK"QY$Q"fB9# *po#E~ܬY#k Lu=#* $#8$ ,e$Y*yۉG$FBUM$\&)\$|tq:%7ڰ[yZ%dڊ@%oQA%`%R*&K2Kٌd&\8O&y1Wx&//M&C ؟(#'z"o :'<r'5r'"V\'Dx9؞s'VF(3$(%F(&+׷l(]J*׎(k7gX}(:=B( @(@L֥)x1Q_O)e[e)b[),l]֪#){v bԵX+` }"s,+ 4YC+ D ߩAX+!po#f+S!ԏ$ +!lW+!#h++!d;N|+3"[;ԶG+Z"u<ԙz+" &VP+"Tݒ3+"c+#Լ+f#,ӆ ,#DNZܠ,#xOr,$ H0,;$Ӯ",,j$T}ہ=,$$6:I,$H E,$lzR,>%aӤ}OR,o%ӊM/S,%`R,% $R,%Y EړS,& rQrI,G& Ӡ:Q,{&% mٿ M,&` F|B,& E*H, ' }m:,0'3 ح;2,P'u Ӑ_),' $c,' SO,'A ؑK+' I+( +>( :&Ԭ+h(] w+ԅ׋p+( 8gZE+( MM +(U+(HHkן+(~}}b^{+*)Կd+N) ԮT+])8/ԏ֤>+)tbQo*+)M!;+)/*)G% ֐**e^**<"F*0*Uս*X*K%o՛՘*l*[Ց`g*}*k6J**L/**G @գ**dSs)*6)+1)+:%Yԟ))+pwer{)<+9?T)C+ֹ0)S+&4֞Լ )j+]kהԋz(k+(׌S,(+Rl (+9sf (+@xUԟc T(+>R ,(+7) (+?* '+37 ԪJ '+kY '+J b'+_ u 4',9 ',BԦ &,s7Cj &,x4` r&, C&, &,HXԤ %+gBԇO %+L`%+/1%+iw$+!"#%$+XZԏ$+@%g^$+0?U'$+, #+%8#+)JT>Կ#+`DԄBO#+Qh##+Y?"+kCkk"+zs/h"+*݆("n+XFݚԓ!d+;ޡkS!T+q޹Kq!=+ '!4+f} +(> +4qԲj *d9Վ1 *wt.~r*7NW* m;`*A&h*QE*U 0*$O*:Oֺ)Y$֓?)z\6~)Qj=)bqCz)$4Cg)dvB)$+ ) g)/H(1~6](G Qׯ"(XSxעt(eK׎DQ(x N*(t (L!]'n?NRw'bL$3':U'DB03'p~(xc '4&8&P]&W@a&E7&!(&!ji%/G<%7~fm%3@=S%>ھK"%Bڽ$FE۶$N_NۯXz$Wqۣ,@y$`۟J$b*/ۘ$pdyیi#r)ܒU&#o]܋#y U܉U#r1 ܑH$#p^ ܏"q 05ݓM"k m^ݖ+u"j ݗ&M"g, ݗ%"kQ 7ݕ!h} w#ޚe`!g Uޔ3!l ޘ g!b ?ޠ1!b= ޞM ^j ߪ Q L߱b M W߶-^ D S6 = 5/  -W RK &v }vY f G ,   O!  ] > L  Rn  ! b#Qu  7-'8  `5  ? L9gG~ "TLO v%Yr WZJ K`) ijV 6j ?tZ<<{u`_tyG-Nr$i0bl*^6VGQ`^Pi4GKK:#R7H' ru'5:QuscG}8o g!S;';bk1v7/B1: 8b?O4prZus:tu=Ik[ !di_'&LU5H,NIk}DgV@t#;6Cj/cR0$~>t$G*U$sy6#Y24P ._,JYkqavoLTS4)6  ' M.'kG8gZ[7tj[mAV07DR,vi%I<*4O?b]!}xuAfXuM{[t7P`$!AH%/'""+5(0I&FZ.+aq*I-prS/[\e19D2{32l8X (1D;34S6%q3- B0k R.Q(g'/@v(K%mh$[{1 ~JC$l6b$X%{F|';f"(L 7 &&1! B$P&''e)>Gw*HZ*oZr/~[m)eJ+zR:1p7(-Y5P 9H  <2 0 ,B, ? >E \ UL u fL  yTn{  [Oe  ]>A ]0[ |$-w /^ Y< U`( }Am 4  .:(YH\4TVpB(#PI(Y0Jfe`l3QycJ}i-wY:grz  mRI1l$dhA2a \[b1`[QyW!>?Y!&vVm]vYl@\h. `,VQcfFbPj !DiT ,i'] ^k 0"g Ldci #iX3 9k Cjp #sS A`z .|W kK'm y Ou/ nXU dFV# [$\OJD *8bW-P\L$#*5Xf}hu+  < b5{ x%] D1 vc?v{ GMJ% ^ A dly /z' | mrsh m nIt* b  R K C CxdN 5 px $ ()>  x Th   4 ,# r i_ U J~F J\%4 7Y J   +) ; f| Z A,( ET0 DV3 6hQ  ,u K +e s AktiM = 5 !  LU , %$ b  I8.o H;1I b B x| " i;g^ W I v5 x2  FIG  ? *  t [ H u1o r C6 \ X^}  >q*!  |hu 7 %] / AG U I 5 s}{] nRe  1-H@6B%MY@ _]Ru~WhRmS[Y- ?N)JhS.F2.Y6iDrxz[vh:k`6{F|*Lli~la J9Q3CS 7lDB '~ fXf M2C  ;  M3 tV +w 9@b9 E 9K Nf2 Yt4 bjvV iSVy s5n {G 0zD rr zk7% ZeBB 8_ag Xz  lQ$ mNIU O'B} A{= -Z9 .93 : ? ;!Z >A<p =SY o:cu uS7 wR90 pA$+ Y( J( >)*.1%5>+7R5=hEA'|M}A+WqF@aXJQiMPWkDZon,frz'qni|p|W qpGlk?n^0mT mOlA1k59k*>f7Qf BSaQ[[agX%qiR-zpN?vHjNC_~X=T}l49p~.|1m$j!mT aBd1a Z* [7 W%B V2)Y Q>6c UIHk U[c wQhs qZz| hZVk NIT[ 79YI $R9 R * P  P6  PL + P Z . Xs A U. O rZ: P acL ` L`\ h b + )9Q D 31< Z B., f B% S q ` a b M+ t 5> ~  !~M  r^  dp  U' v L; b > Y N .h = /z ( y!!  j$  _1  O2  ? 4  3:"  $5/  3: & /D 3 +O# E &[9 [ "dD ` %p[ s |j  "w r x) d pj% Y ag. J T^2 < AS0 0 .F5 $ %?4  33  #-  ", (  !! + 5; G* T7Z=jH!wW(}V|-ep1n m1lh2yd/~`-_y-&Zq),Rf*1Rb(8KZ%@GN#FIR HEFVE?XDBZB5j?/ l<) u<  9z ;s @h ?_ EW& G T/ HD7 K>= L:F O'O O%R R\ U c S%d W%n W2u W5{ Z6 [wC( _nA. bgC0 h]G? oSB> uN@B B|;J 9v;I 5k3L )b/P [1V R&V K(Z C(d = ` 4"i ,p 'l w& |2 8 zJ r Y f g ` y ,X  ;Kp  GNd  WDU  e>G  qCA  !;0u  *:"h  29W  A7 G  D38  M/+  X1  W& ) _% 0 b& : e E l H q T $| ^ . ya < ik I# bq U# Wv a* H| l. D x*z 8 3uy 0 0lk ' /a`  6]R  3QB  7H6  :F)  ?=  "E9  .I7  ?U4  GW0  V_.  cj,  0pi#  :}r ~ Hw n Yz ` d W~ r Ex z <s n 0q b f S f F ^ 8 S % P& % E+ 4 =. H 45 Y *5 e !5 )y 5 3 u 1 ; b. D R+ O C) W& 2& `8 !$ oB & {S~ " ck $ 2vX & HE o$ f1 Y%  qF$  Z7" ?  +   "  2   A&.  N9A  _TP  plb  ~pz u i Zs Z Ie N /P ? 9 0 ) %  #   <   O  `' x8 Fq ,TW :kB Hy, V f h#T z$~@ 2(o( M,[ j/N 8@q )?0Q CF$; WO  sU  \m $aT Bg9 /^m& =xr{  Jy_ \}C i+-z x@w Xnu l_p 1Msn R:[i k+He h+` JZ /U L )H /?C :,T= KJi< ]fw8 l{ud5 ~xTH2 f;4, X& G 7 +&+ E? cS  zf} w` #Em 40_ EJ ]7 r) 1q PX kH 6o 0!O E8 Z q l ++U @N9 Yp& mc m@ V# "E  51 E 1U Ed aw us &d` >GN U.@ g, r _ 1K K1) d/ v 4 &c? 3PB *>8H @MS \[X q f` (vfk EL{t \:ly s!a { hV yWH v>? #i'3 8e, KZ " iH  )=p  B.S  _/  z z  _  @  7( % P% 0 k+ C 3l J (9[ U >?@ f RD* m aG x tN  Npp  Qb_  7USJ  WR;5  oV-%  Wk  VK  Y4  "Z ( ;\ < N[ N 0b\ h SxY  qRuo  Tbj`  LIKL  H33>  K(.  G  H  )I CH <i,D NX xM(F pvw1 hP" 4\7 UQ ~:o" -QA 0k(5f&CBSW%zf~/uZ@F'qSo ec `Vt9~,Fgg 9]b*5D2`2-l'=\* u9} MJV a!*u ry6 BqMM `f{ qRs) BB_ Z3 Hb); ,6} b  =;  4x jON -Ecx >lx Tv,F hY!r yKr}V '4f IV %ED /3@ hBb F W Is?#i7r5Qj|H'd3U 0d%0SwFmhuUQ7`wyK"j:3GS%{3_S2*23Dxm*k}`64H|Ik<ZGmGi6}~ 1]w f$U=e+m@f{)i/i@1 J  1^߸ ^(߈ $E.>!=Q!Ndc!J`*ޗ"wYIR"@p"Z]"L܎H#c8:N#)&W#D#:kܰ$hWzS$&5$%4 $03 %TBڃh%S_A%bl1%uAX&dـn&SU_&MG''@vm'L|w؜7'Y7[,'"C(l(&m׿C(h sj)C?)a )"&13ֵ)h5Ն )*BG5*QSt*&]v+YeXԆa+rj= +{ ,mI C,V߆Z ,q5:I ,R9 $-#ߨҽ( -l]x !- PE!.|!a.# dv!.O <4ј!. V"E/ ݊K"/!Mj"/1!yд"*0s!7ݥi"{0!%u="0!+02#1"4a#G1W";ܠΞ#}1w"Bi`jݺ#1"I5!ݳ#2"Pܮ$X2 #Tۉܩ8$2b#Z0ܢ$3#aiBܜ$C3#gKۧܕ$3$p Bۍ%3[$wˊۅ7%!4$~hc%e4$j#{%4$O'y%4%(y%/5H%٨ʖz"&|5%_i|Y&5%%C~v&5%n &H6&%ىـ&6@&Qɬـ'6h&ɂفO'7&صAق'h7&}n؋ل'7&z@K؈'7&'tǽ؏("8T'nǦؕ?(U8h'h׋؜j(8'_sAHئ(8'W9,ث(9'Rر(R9(Lց׷F)9E(H6Ʀ׸d)9l(HƂ׹):(FN־R׼)l:(C"y ׽):(BX *: )>P*;D)5ĭ*G;X)-m՟ĝ*;x)"C^p*;)!S+;)<3+$<)t+c<)lv+<*OM'+<(*"&5+=H*£B+,@=k*ӹŽLN,X=u*Ӊ}Y,=*gBRi,=*9"Fu,=*.Ղ,,>*tһ Ֆ=-`>*d҈ԡ^-> +Yfԯ->%+G^4->;+7/-?L+*.+?V+ѯ=.q?s+~ \.?}+k.?+[/m6.?+*\M.@+]_ /,@+нIy 5@%1i 5@%Hgڏ 5@z%\h 5@>%( ʓ 5[@ % ʵ 57@$K4 5@$ ] 5?b$.w 5?/$sbۨ 5?#?ʄ2 5m?#ʪ_ 5=?#! 5?<#N 5>#.q 5>"|ZVݘ 5>"L"ʑ 5V>D" ! 5+> ".5=!82iM5=y!7]£k5=A!Nʗޑ5G= TT25= .^l5_F497Ub24}9eˣƄ 4=9\z/48"Pe48qa{K4n8~w˯ǝ6458Cd47>D837̀s3a7o 8ȶ37S136o\RI36̦əhc306=C35bC7$35Ġy 3V5^, 24 -% 24EcX2v4pͼ˭C~24#dd23R@v923yͯ̚2 39R12?'Q-12&NΦ~1,2Rzr11 GQ11Ε_1#1:1sθU00#@j00=ύF0<0jnϩ0/4K?\0/;ϔ7,0;/Ж0.BF /.?И("/6.lф=y/-SUVN/-Уh$/1-p.,dq.d.v,#aVѯ.#,RXT.+x4tԩ-.j+8'ѻ-+@-*KwՑ-f*Qu&u-* =F-) xrQ-_)n ֲ`,)0 2l,( tӊUr,L( uוE,'H n2,' XԣA+/' EI؂+&^ =Oa+}& (Լ$'+& i*%w *fڮ*f%* gv*$ /KC*$ }ۇ*U$P ")#QA'1)#~֌^1a)F#}ܯ=)"&WD(":פ0B(+"}}I`(!]oK (j! ׿L'!6?O' ߋRe'W YV3' $ U&6ٍO]&Lj]{&a+[5&٘a%;*F\%g=[u%Xڦ[.%-V$+H;U$r۰Oe$^ N,$*WG#{>ܽ5?# r;^#{f,#kD""`0"|H<"U!Y @E!%ޖ]!C#+ !4!Xj ~>_ߣ 6VO/ dbyr<'1UmQeXo]&B&6n+eo cA`hw2s^RP 1fN i h.f0Q%3J6UuL~u7X6-i?h TCp!V.?Ywc2"Pz|M}[3y#e>X"*~Ri g8q 1 T,{ 8LC kSP W`S} #t ov r&Zz- ^X CUa 1d7nC  !+@ Oz_[ Y B$, e9I|(H#iXZ|EgQ7sDhi}I#zd]quM(t uD)/ u{G 2 au *v C wX@  vG cu^ r "u  sf.M szH W \u y2I ~lDt @ u Umk ePc ?X7 O<S;H L>SsU2-$(]pbJ *Y?~jsi p& ,;#WKhlaL^uy(~!Sr kb QB7I;Lz*Zg "B. ,UVex4C\wBHV/]y:CzZhcT#JJ9*;MD*>g~0IQCh`_DwJ>@gj7|G N:m69m A)<l1J'WBC9 d ++z "{CT T_m F/V 4.Av L 0 1 : U < 7_; 61WO m-  6 ; c? \d N  64b}  R, `    4"f : nA [f #X  2eqL  ~0 ^ c1}  P33 4 4 ]a K~  Ag 8pU t 0 8OE% _?>V wwo dj k%Z  O;EH =#p~ )oc" -4HfouQ|-H ^;?KM_RXmd{ >{(G^mxxfpxGZ2RSk1OOKH(BT F>/Hc9x40rd[)NQ"+\0. +T.uV0 j@jXGSo5@z$|_ S!@=%4W >mF q[W`.Nk; 3yR~_~kx 'tt1rj=wT(KtE5Uv99_{+BkwOpzMwzW|z]s}Xgs]XgYK_W<LR-&>N7/MACN B[$;g8/nR/+|iGzX}tyf~vTh|DK4z*%N} d3l2\~XI~{p=d|F"uk tTw8E>thYzv~Zu(*P{E4vZ pKml1QkiZ06`_\ &7T'T HHNAn@6fl-4EL$r"w& F !5UPNjo{T0V(9 is%j XGg yJn F:=d %=R Y   W F" 1 8W G=I# d{` aKui *Pe o+. W p tF@C2{^>#\Tr7~Q~/ZaCF-?& Op@v ]-_3 nk{ p~"}Q SYt /fH +` NX 9AMh gZHI t@$W | 9 \ 1 B = - ! j[) %[W 9&7$ b& 2&i "Z(L ?'_( b': x%} &_ $2(E CK)1 hk2 ;X^ F9A T $d 1r 9;5 uE^\ dP|{vv VXVP Ac1( ,m t z0 |2S |Em1 z\M] vpfD r~yy* zlf [eXG_L/V<= H]1=w(|.?Wh5i? !%<1!X>,{6Rw4N]bD E5$ FMEGpx'}nFGcJEbGA"Y8681` '#GCA [hw7 xEw[q'EE.8$kHLSY%`ULrj0}~=efuhBY:R*& B#<] vrR&;A<[-RUp\lZa-gES'G(_${cAV=xY~$ |bsPrJpU8d=9C Jy h :K9 fPU qbT =G| x=%* h c  U{X , ;* I )V! c t bhU /P- O4IG j+  Oi  tu )J U" zo ;fB  )%b  Q9 Y   T)J  E /? FZ e\ }n { $ld  jyF D V?-  AJ/  $s !- s ^L 7 r )~.< dCm( nGb V! u" ? [N$ [sBMc<>O%6'425%3(@ F3"KN7PlTU"gYk5|THuRX%^hQ REj <.AN -H33 #e* #g  L . + L0  lG  0W i ^t > ~  f n A X!  =(>  .6]#  BN f R| <r c L t"  ;9 h e*G V WU ;O n '[ z 6 "  h [  T"F c D7t -p .O 4 j*  [ rQ O@* 8b 6 -PM 1a W2_l U >rxP w f XZUM 3 A T/R #"# BPG q#w }oe Pm'% #2. Em< kHP <'tZ {$,h Rzux ]j "7s g@N) Rih NE fI8 7"m wP 2 , D`P   `IU" ) F/  > : P ND  ?mT _ v[ 7_ H`  &$l  MlRl t {p g" Qz + ` ~ | }H , pR  Eb] h U =: I^ {6K H,8 K #l! u?d F  RCB;+ o`y^>:1! p' n bE Zl^} I\ 0 Nh s&3 P 61i q y>  'PL[  %S7  ^ ]s  *df @  n( \ yR2  k{ r L`F b ** S >< ? x 34 rk L' @- | k=  P?o  q,q  n)  :**  dN t2Po 7Az p iN 5E]^ "f bq< u2} r6Hs Hmie n X .`>L Ee@ #_/ B " U '1; c6W Xd Z, ElA ]S( Gh[7 '}oy Qzh +O S / "> S03- ZB ]\ )Ph 0(s ~G_/ k`W Tbyx VH\ 5=H $d&3  _ @ [% 2/ ; '^ "R 6 ?[ eM xr ,kf  K|{ y #qC Z a $= k^ F% FV k yL  J@&< .9?m r+_ '?v E mcv8 FOd .1  \   85 Y!VW *^t 4f= 8d7 ?B)J)=>HomTy|]Pc2^,AJjg p|Buxh7|Yyf=J{&,vzHu '#m$Ir@rrkb2Bf~IviiZa):^]U%CZq x(V@R""P:$S^)RKYyrKTf\M/.+BDA;"<:rD{>R^_>ov)t>`P:H@<9(8q  / ]28 ,(8g "S r$j< Lo bu( JQ !-,%! !J!;Y!:p!viY!VYs!}.=!X!8A "h."{O"N.j"4H"ih"E{2"{8V"_#El#2Q )#) N# ^# *x#x<T#YW~#u?j#T(#f$P$5AD$ha$k$d7$7e]$X{$xC$!$S,)R$32l$ 6$d: %E9&%9=,1%?CS%:V[%Ai.p%~>S%nh>v%Y|VE%A`>C%#5'F%I% L&N&,&O68&UK[7&Q_sM&SoR&iWo&sKP&`/xS&SeS&>SP&,AS!&":T-&.WK&WR&!\`&`x&])&zf2'jeA'ZgM'MoV'Cog#'*tv0'x5'v}>'a؂O'}T؆J'tDؒ2W'l3ؕ>]'h%؞GV'[ةR_'V ث\_'Rسda'Jط gd'Iعxh'Dؽ}n'B#i'<w/s'6l7q'1mBj'%`Ns'!ZXk'Uaj' Okk'Kuc'G z^'MQ'xI!J'rO/8'kY@('bVN"'^`X'Zde 'Xgg'Ynj&\sp&_} o&awy&d$j&|c8ٌd&m`CٚY&`_Y٨I&NZpټB&=X}2w&2W$]& YN&\6& `!&f  &k1%o@%%sY44%tjOF%v|bUx%whfo%yyT^%{ڄ?B%s~ڗ-*%bڢz%Yگu$Io$9$2j$(7Ne$Rk`$r ]Y$#Yh<$9VI$VT.##kR#J܅Q#mqܡN~#U2ܵN\#?HL:#%gH#Er"?T"J)9/"sA2"T+W""q$$"F݌!jhޡ!PG`!/v 9t!J!!$3  C-N iYk ߒUO _߰/# B!&=,Cpt0kA86lI=""dCTAK$NTS [vsc55@ipZ{myCsp'CtYvVjz6HI{ isBJf_WeQ>I9"<!M/P='`~c"g0SJ-UE zFrLl B}@N* Ec`v F/9 k &/H -\}e 3\' :# DUU L7|Mq Vmn= a20 jos r-  {_ f J|T_ vJ) n @)h oiHasn X+h Q? LI c@{/ @9F 1h3~ - OA O(  $j `3) rg ,& Y]=  D G$ S Hu m \wt 3 6 =  F  G \ At  m_ 9e0 z   0 "*G %eQ{ m&P H :( ) 6 *8rEj .o|p h2 ?E8C> NFH,KrOxPQ~;dU96WZA% ]Ifc_q;)zaBcOeKUgt/ojg0nd~Yr8)xT~E%ZLy$Zs^9 o7e[k hF/Df-jc~0r`bHo\yWP@#RYLK9Hoh Dy9_AE @ S-> )c>SM>jt>t_:=? <6,:-\6[]2*l,dI5%/o{  I83 kU=obr/kW55   0bV*IrliI1$`L :, 4n{)ZW3y q+?)?J"ASGY\ ydwcFA^fcEke$p.HsN.wy s~,P<z1;Spd ff}+ u]uK PMn{ E*tZ <YL 2+4+ &K h- V `v F| )*_ 7:" C$+ L 8< WEW" cMk2 iXQ vjfi Ro{ >zy{ |"aq n Op b@n N*m7 <kJ - le j mg. UgD 4d)` a<q aL m]b0 X\tL FY^ x7Xz ey"W ZlW N[[ =D^  /9c  !*k  p  v  | & -* 1 |:9 : xJJ B r`d P mnq X i} ] axr h Zgc i RYX k GHH o :18 n . , o  p   t $ v  ; y O/  !`9 ~ 1wL  ~CX | iSa u Wgl o @|t f {-z _ k  X Z { S Kq Q Am L 3b* J %Y5 E WC < PT 3 Mb ( L$p  I;  vFO  hC` YBu D; n78# \(70 F1; 5 1F %/R  -] -h# -s. /)< y /7D m 3IM [ 7`] I 9qd ; @p ( oB  Y{D  HqI 3bH TJ IK- =M= ,PN* !P\; UpU Vn u Y b q^" J Ta0 9 @g9 ' ,lF  qQ  wX {a -1o{ >Cxv RZk voyc {iZ n d`N Q DQD 3 'D:  :0  ,&  '5 :I  Se j{ ~z  | j  a O O >$ 9 (&1  1< = F I+;S [O^^ ikwe ~yk{ c^rg BErV )4r@  x+ %x @} d= xU sqo Sg1 ,^\C BSQ $Ie) ;xO 2m-o *TY UtG 55 f C % )Bc'%b7@FH`"]2dk>Hz<K}h^lh_i6uOD^<v}-vnVb</W`O{sE" E44D(*A^U_ k>B~ax ]X!E.?0  e'A4]a=AH]3Z3D!dVGpm6{tt~]yQigcQR-=(B, R1C[t }3 R 8 IP *k_ |:O| >vL ofZ FPj4 0} j |3 nT_ \ % KN4 < >)f V ,u1 x <|X k [JK &0s x!/ <CT  T ! gbB ; 9r ^ \ z z.y? o[z- `f2l T> GI  8L C ,xQ Z !n 1B` C IT ' Z<I 2 !q r,6y fE6d 3%? @HV3O VOUJ Z\ 1R)c x!ii  p< Rx| cri} 777 y/ Y&v` Ot@ s;E Ks sIK Cr C}pQm m%Q8 iQ E*d Y^bW WINR KMP<IQUH VGA+GF^QHEpH [ I cJrB`J?1L@1Nv8PpWkS1qmW B8\|K`e@h&noeJ6t%{KH-}߾xTU h|bes 5o*!m)!J*h~"]-dh" kc"2ܘ\TI#~GV#E#Q$&ۥF,$/I0SBqIϪ'>0[ Ξ( ?11jװΎ[(?1wDX΄(?1gy(.@ 2׈m)@t2hb?)@2ܾ7Y{)^A2^\M)Aa3|A*,B3թM:5*B3<-z*BB4^׼%*UCu4-Նl"*C46 6+D5Լ|+nDD5ut+Dv57+n+E5ӭ0,yE6v^,E)6%,F}6HӶX ,fF6~2,F63)-F37۸o-NGk7 yҍ-G7 ]RL-G7 .7H8Ѧ*.qH@8Y.Hm8m.I8VͶ-.?I8%1Ѩ.I 9'M/IT9+H/Jm9+ܵi/CJ9(КM/J9&G\*/J9 '-/J:0!K':ϷG0aKK:ϒZ0tK`: o0K:V^0K:=E0L:ϳ.0XL:·'1L;fH1L(;5b1LY;1My;Yʲ{1HM;MΪ[1gM; y:1M;A2M;7!2M< K2!N*<ѱ]2/N7<ȱ{2QN?<t͓2Nd<Tu'2Ne<9]12Ns<'=~:2N<tA 3N<jH3N<\M03O<ӰORF39O<ǰBTG33O<ðBYb3UO<̘*]o3lO<̚&_y3fO<̌*d3O<uuh3O<fvl3O<dkr3O<Zgx3O<HY3O<}O_Ç3O_$Ñ3OMD:.Ҳ2M":"-2L9B02L9a\F2L9͓ny2UL{9Ϳ W2'LR922K 942K8]$1K8ΣP-1>K8:մ71Kq8] ?1J?8}MJp1J8΄ TH1]J7õ<[(1J7vc0Iq7!Nj0I>7FϏm0UI 7xжrk0I6)Nu;0H6gy 0xHh6д~/H&6~C Ɇ/G5vqJ-ʎy/G5nИjʗM/>Gs5c縯ʢ/F95Z/ʪ.F5S#u˱.iF4KZV˸.F4E˽a.EW4AQ,.E4<ѭ-#E38+E-D33]Fy-Dg3.ҨJ-'D3&-C2 I:,C29Ӥ,.CS2zl,B2P >,B1ӧT+"B1*+A<1`n+jA0ɾ,7+@0B*@]0.՘*<@!0rg*?/oZ *d?/") ?I/B&&)>.֗7,L)4>.z2)=a. X7(u=.[<|(<-5c>?(<}-׊å@'A<7-0@';,pC@b'i;,Ā@';[,9?&:+`٪%@|&*:+ b@:&9u+wƶ@%L9+G A%8*NMBY%8*ڷǞD%86*+U'/ؘ&>iUh& &%+Jzu%WP%# $()a$s-ܴO#-.~ P#/K"0sݤ[W":1!2B9x!5uޓb!H:. > Fr!|bcNJ&S [mqYeX`#Gb3dV6}d{@dbn\a1bS_ac>e&mm:p<ru*fxc\_|5L|@z )=Ay {c#xg qix m@u %Vs B8p> lk aU8i v&gb \f 3g FIKi ~0l@ $so mrr [(`tz FJs; t9\(r vhqmsGp6oK;|q]n sw !Pv/ zHG )} c1v |g58 y y D t? o_0- ieS cB 9 ^2 X=  Vf1V~ R:C I P  O  KH|FQ Gf c B1# <}R4/L.a$Z'{HPA1g|j`o~, X? #dH  TI~q"hiE)?*|0_U8 B=?i.C}8qMAoTb>](hVYYrx|tJ\~Dp.dh6uWz$eFL/:i;-z#Y[d2Z ?3QZ/  ch{\3C F#;,C+ipt0tv6`6B?*<F m<Np6|Wea_<4gj q:ZQy~g|)F'r`Il"meW8^h yTZI.V/Rd/+QcO`N}68cJ1E( ?/a ~8b N/0 ~hm) A;"o  i 8+ >_ 5 yj z ZlE 0, % I :N b]{ c L  - W  %6$^ ^- 0Xl8 yV6F  TL  _ V- b~l c 4u  ky  <\ k |p  yd< ( u4 .Y l'x dtiT \/B NG L A  ' 8SGX %& Qra %N -#O (~6 g;v0 WT^ iH | x}S xN{J ]0" LR2 8< 8QX  y qkb jrL3 75.G c=B }3y`VOf *Lh[x5jL%J#(  4\#p)xEAIk;gJt~luwG>V&7'E %kgC&G $)_MlGdpb'Hi7[&~E." 2.D\'<*Em߲!' TLߞ{ t YO| m!W:ZW!q7m!;&!eG'"3~"#T ".4 I #Bzܮk z#b|bܔ  #rQ,܉ ^ $hm j$xV6 #!$9L[ p!$e0 !I%Oݏ /"%/O g"%j  "+&!ܥB .#~&:fټd g#&Ng"٨ #'hM۵؉ 2$p'|v }$'T-d% $ (Db G%[(ڈ7 %(eD>$ %(' W&A)ٟ &})IeM &) \'*%]} 'S*13Eؙ '*=:շ"`(*UԢR()+c7׹ԙ}(s+qjXԀ^)+,r j),&`*Z,xGLg*,c(6*,s'*7-Dԧj+-`H +-'1+.hb,^.%~it,.6O,H,.:% T-&/KҰЭ4-f/V/҃Ы_-/VGФ;./dOϖ.$0k6ѿϓ.Z0qьϊ&)/0}C~e/0Fp/1cg0O1.πY01c9J01$GA128x]1c2kzΈ,12D8W+12=2 352H3Z͡ Q2v3q33]"d33=34L3^4 }/%44.]OX441*p44Bw>ʴ415RQʼʭ5\5W;ʈʠP55i Kʏ 55t:ʉ&56|M6-6ɯwn6u6ovrn66MQZk66 d'7 7ZQ7$7[87P7UȎO`77cE87o@E,87T9i88&r4828Kǿ08N8%ǣ,&9x8l)F:98T(`O98?+98lU$99N8$997 $:E9ţ@:h9ŋj:9e ':9S<M:9\:9 s ;:}I;D:hĬ[;Z:XĤ};l:"Bhx;:0/JW;:41O;:7'<:CŻ#<:Bľ6<;EĶ3W<';LĵH?y5,j+KqӴSy,/+YqM,+bՌ!,*cjQլ+*Ex"Ԁ+i*/Gԭ{+>*ji}+*ZS+)&J4+)I5+)y."*u)6՘: *W)dD*))R]*),W5*(@+^*(ZKg)(q.hj)(Mֈsq)j(w֧zYs)F(ׄKV)&(vא81) (k ؛&)'_/ا('S%Iز('HLqؿ(}';m׏(d'2$׮\(>'&56('L (&\'&q'9'&U]o'&t|[|'w&ؘDO'U&ؼ,-'7& ' & !&% 0&&%%R')&%7vH/{&%Oc4U&%e{56&v%tٗ<&_%٬;f%G%9S%2%4;<% %[4 %%y1{%$-W%$*&6%$>7 %$UJ$$ma$$9mg$$Vۂ S$t$qے6|$g$ۡ]$W$ ۱G$J$ ۼ"$<$-$0$-M#($9j)ۿ#$LI۫[#$^hۙ=#$m܋j##}v I## a /##5V ##X; "#}#u "#(U "#K!* "#f# "#/% k"#I7-ܥ L"#jj'܇ ."#+ob "#1V6 !#%2 !#/+ !#B( !# E] !#)dl !#:ܴh m!#b܉9 Y!# o A!#L #!#1 !$_ $g $:+۬5 5$l?ۂ ;$Lh L$(^ߥ4 g$Vnߓ s$yy߃u | $0m۱A g $kYۄ Z $J`@ $+@-+ $f% $^$= ۬'%t$o% 8H%LI?%`bS%<oڸ8c%[ډ ny%}I\%Hh%G%n[w.%)Cں7%a%ڇ % W%I &+f0&A;٬4L&uOaw&(`!&Ulg&(EٯTt&w%rg& @N'39!'+~شh$E'h~5 P'Cz'2p',j-`ؼ}'X>A؃@'V*'!c("Rv׷A(x\Aqi('a( iL(DQ@ז=(VY(( " )<)TC ֏L)teok)2|()F[)K/V@֚)kp@j)$v#*%ջ]?*l3eHk*yZ3* \!*O ?Ռ* T)߉+ O%+/!(ԥ ^+!#@:޶+!hNf{+!"a;԰9+"wE,"@ݩs:,#tӹe]_,z#Z L,#P 9,$H;۔&,Z$qA -$.-$S-?%e-҈l-%Gm4#-%\P-+&?|'ҟِu-&P@^.&@-.'! ѵج#W.w' ^].' q. ( "V.g(d Cgu.( \'6/( uz6/U)C y֒^Y/) EVIu/) y)/;* QДմ /*n ,\|/* 4/+ ;Ϸ.0s+M YiԔI0+ t%K~c0, ~\0j,7SqӨD0,vB?g,0, 1U-΋1-Q_җ81-9=Y1,.Yλy1`.'w}΀Ѻx1.qj+[Q1.> +1I/+Θ1/d Ri2/9 270[ͮ)2h0Z~o~jQ20Bh21$|2E1>w͑Θ21^3521=D22!`7͵2j2~ qS`22->32 3'3\̫{/33)b5333J?A33.zˡnY3=4̩UI]3c4̇!j345x34l)q3!5Pq;3`5~lwh35VP1ʌ935HL3!6E3h66>+nɣ36~e-@d36$R37̻ȿ 3]7b̘ȃ3|7 aA37W37Aǫh4+8q˺g83f8  48K 48F<&ǖ48tDn489˰D4`9˕ 49c Nl49A 49kz 4(:=˴ő=4k:ˇE 4: c3:B43:h d3 ;I63';3 3S;( ,4̏ĵ߽ 3;i ZHt}ߎ 3; U[@N 3; b 3;2!tķ 3;\!9Áީ u3- \3d<"̌ B3<]"m~ 73<"OMSݞ "3<"{=f 3< #! 25)`5a!4),~!4o)#߆ˡ O4U)3~˷ּ] 48)U%֗ 3)~0gF3(J[Z -6 Im  4  4F&y9 M lr93Z a8 X T< S 7p ^l: Z  H {05Q I-,  WjY GZ Mc|i9  `bi tIN5>_Q]Se2 _{ ^%[> t >nY njW 23lZ VLZ` unu OZ`9 y64 $i3z&." 1>S5u03|mrP!0+!(f4Su2eWQ:6zu s'>*Jb #+bO\ 6j.hIDGKn[x) e {QE" 4g !X|b!e|&! <(ݳG"cM"DmF"0܏F}x#kb+%#C $Eۀ$)D(7$?S3%H[ڂ%Y+%q%%$ڇ0%p,ڛ/$\2۬/$L501ۼ/$8@NS/$=jx/y$ B~Еp/Y$IпN/+$E3;/ $MG/#P3d.#S[.#w[8рܓ.j#`_Yѯܮ.:#@gm. #%iN."s5"."yo)-{"wҚC-R":b{-"gލ-!e0ީxh-!Hdw<-}!Ҥw-C!r,!) =p, ULij, ӈߏig,` aӻ߭a?,( >\ , 6^++dS+^ԥKT+9rSh+I9+[SG+,Ֆ=*O D5*x0*j*_b"0*՛*Fi)4U-)}d n)֟05)7f)((g Hi(p4׻`(!,(?<'#+ؔt'Cq(e'G*P'3r '`3>&:Ad&E_V&s BC*!LwmSPG9\shg5~a2lpu}  |0jKxm3qk+yidu?X`/|Y9?VbFzMxfICK<<!5-fA$][E S d ~4S ? R "< = -x b n67  [F f .PJ 5 `  Gr/ 2 |b I{ S mjL z a @U S 75 H t\ ;n (/C M C#  h LW  h| f XO ! #1F.Bajs]v.~>)>eVNNbn6z$n_u 0Y:0.!Idy 6cEB<W) k:GIkUuuh^mO}A-y)k(bOaKnfB*D>;E!Y m.+ ]\o YYcB3?%+1>%; fC>*sNU~=R4jUS?rc6bn\hS5r8]Vr9pv vY,5yBFWr+km^ne<_C3[,HUKWF3nj>|T{0\r$Dv]f ;S"M05[ +wz!HS&k.-k;-JE%<'UDI b[Ou(~YqJetZfe`>sK`@C*!x2kQh3gcSqb-u|[`B`LeX=2iw~hirIq;1qY/v{Frr cLr$|,yq=arV Etr/1tMk|rIy}2[v;-p?h:MZ]A]O~dk?qs1Rr|/P}  1to%b%Q!W3o>PG\XBY5n8iU0{~4%k?\ ]N 89k Y ,K u*z S "8 !8# =d( W*b q.*= L-i i/P 2<s @3!U j6< 6j& 6B 49 F: \2= s5QA QfCo q}DZ}v C>[_ A(>M <8 7# 4 010 MV. fy&,| |8)x\ O&\6 d B s'  n < ^ $\K >}p6 _N" t4 e  K 3 $4% /X6 :sB~ D3P^ PQ_A [mi) ctr n}V yBw %w*p Ai f \Z^ rN~V <=_K [-HE v |/> _8 D6 01 / &/, 3 A& >#R# N=h [Ov edp uz{b wiT jTC W92 K$ >  -  1( L; eI !xO} 6Zf% S_Q2 fe>: zox'E w`O N xS 6 n_ / aj F Wq a J +wr ? HoY 6 ^d> ) |Wt#  Ma  GK  ;/  0.  C (  ]  +v  Bl  ]R ( !s? 5 #]* G (; ^ & q *  #.w  +<+^  CM0Q  Y]0C  uq.*~  ~. l|  +Vk  (5[  ! M * < G * d /  } I w  mW  ;g  +M  . -  ?  M & a "F 9u 'X Qp )q q~zZ 0 _WH ; E;8 > )& K  W  [ 7 hB [ p` x| wp .a  @|\:  NsG"  ^m,  rc  9Vr 'YS_ HCfI t5|C8 1e#) <  -   G 2nJo*j&E<4X!PA6YPp Ac3fqzNjdxRi8jENb4,V!J 8@%M 1Huu jY l4B(.-9A:eYPRmT\q{5}nLku%_-eS OWD7}@u7Z4Z,w)x2I  ,!  L  5r &,M 6\=~ Jj)M ZK [ k%g; t} f |cB vaOf d07 VX % SC+ DZ =w 7~0 5.P[ K$)r [ nY6 3tS e y mO) A9,T '1n } A+ HJY .Py / oZ K7c3 akO trw)vgQySVpx8|AkL$b&d9ZhF3V}hISwcKIV~B&(w9 d 2I9F 1`h qWB-)+,C(PT7fe%a{T{0q:k;OYC&@T./\ O`){qmT Llj -nz+X+xAWX_R)uT *QiO-MOjSG=hEr*ATW;9? @''; @::VA+Zs>R?gh`?QRy=t&99\%5I 60D,U*j)߉ -q+ 5`1 ?NM N.d Ym e  ti $]x 0Jl M7ߦ]  a%ߙT  p߆I   r;!^1 !P%!:1!! 8!I!"_!(g!(r!"+{!2!1!4$y-!:%y5!A'h޻<!I'd޵;!L(`޲G!V)JޢM!c,GޛQ!d.=ޗV!r0/ވ[!{3-އ^!y4'ރ^!4"|h!3}j!1ym!-x~!'~s!"zt"ht"\o"Qv "Dv +"8w,"/~1"*$3"݅.9"x݉56"sݒC7"iݛP>"dݡ[5"Wݱn:"Iݺ$<"@x.3".f=7"ML3" 7Z0"#d+"%z'"8&"{J1"gbN"Yr`"V݇u "l|Cݠ "Xb7ݱ!DO.!*5 !!!&'$!1B>!:XO!Mxp&!v}Tޘ5!]eaް:!>EpU!si!}{!v=Jx!Zc}n!p?ރi!lN,ަ^!DS!"K!M"6!OC+!ewO!u=ޤd!A yA i-1j ~S>f E=Rߔ Z-b߻ -x-} "a o KY ]߅7B ^߻Q4 1%] a| uUQgg$S,+:D7#YbmPKoY%`0-6E*r[4yXh LV mTP?4<WMUi I $tI EV? hE^ x.'wZ  J?  M7p q  ' 6`  Q4 . Ilu La * ie a M w< - 8X V 8"  +c  q7S  ,M T k.; |ai b\rM +2H e?H&e1Y*13LI^w,dycVzy zjADQa9K8g } $G N &-$ C@b; YP 6yey |}zߍ& hOlߧc ItD, 0.$_ ) :t!h0'0!1K^I!g5f!3ޅy!oqvޝ!U3c޽e!3s>8!F,m!t  !+'^"=&'"PWcM"w mg"<݄L}"q uݚ"YRWݴ]"A9"/\%8" #b3#?b/#}0&V#G?L`#V|u#cyl8#+e܃n#q{Uܛ#YF>ܵZ#;(#!VJ#( $Q'5$%=T$Y*5$Tn]J$3ہO$uiەl$c6ۤC~$T {۴i$Cg-$4SRb$"#=$m 2 $#64_#1H/p#+[BR#&ja5#}{zz#l_#\F#9E(#\2 #ys"G" ='"T "5wy"Q7c"bXC"vz#|p$"%dH" ,Q'!)35!!O4!Fn:!q=w`!.?J>!KC$%!bE !Kl N1KS wVQ8r }W:p YL c' 2:iQkpg6{Z`q&zVlrBGlD!czn_ AV)IMOwsGmII;|eb2B))*'Q  Ze )_CA+d (,qTUU'1Se-(=;( I0` /o&yMV 8oV)f,Q8K*I)TTW$ea1x,4hrIP]dQJ}yh81e8$kKy5M@ $w m23D[D!Z\94o-G\~xYX`qK&Outv9`< _I8 ]?' !y5n (ID V\ u ]-2 6r;U ZM] B^F6 -lp u{{ 2 Jl  s6bs  VXS<  yH Zz @ '] 04 9 d1*  _ b   . N -  G  A3g  wws qd O DG $ " & +B -8o+w 2dQ@ 6lh :D f ?8 A Ck $ FR  GD Hj8 H,Vg Ff>} i EM H B $ ? :<: 4VfA -rk|M } %^ Y G 9 "$  ^  $f )G.  Nv zm ZHi - Hg 2= 5 e+A5a)g>9GLEa Wu.b*_tf[R`uBg5a,2G4E9vm lB`&,18,BF LPV.s`rg^xFvk"pu?U,f;Y\%)Q_\ F#'?iC8A[g0+`m"%1QO-xyEV| )i7< P1 tz aF\rnz=@< ==G}hniFq"aK'3+,<2i|8.&=@,;H?3nEu{,wdsX(E>)"D6@eXf-ag;.<f  +R [A o\0 Ky` r RL  =& E 6 x )v[ 0Z+ 5X-O 9* k 9  9iG I ;As b 9%y :Kh >A1 @"G) Djb  J > Qob W VW8 ]8g dN5 g,f n' uZ< ) y5R P {st }u5 s^mY V7d >^\ +AU  N G H,^ E,Q| o@I~ nR=b O< riZE mhcN fikO ^nvW Sm] M|q^ Dtwd :jvh 6czk -[{q %P|x F~ ;}~ +u {k zh ob+ h_9 \bL Jdc, :jv6 &pA fwP M}[ 8 f} #5ux  Hw zTr oi(n `|@i }USc gIp[ K9Q 0e,I I= &1 5(  Q#  wI! z d* _  6 ;k D H *M / :V  K>d  \`"l  i{  CP .  4|9 j f C  ^  * ,'  -P:  9w>N o Mqe D| Zu #Z i ( o(w ]Qe P~CO g ;|4 . k ) C   T  ': b ?b/ ^& M|(3z 'S=` $O@S V_($ k h,~ +x l{ j7J [TP Hyz \:La 2,>Y & M -{g4q s7TDq{B&RWo.5|9VHH  # U>>6adtpWn|j&FJv8  jy=ncf7Z5FNa1F~er=0G:4h._+U((GF&n$ AWU|(qYH 7 aL7~ah_1T  0: :Yi=) [] 3+Z ts9:@{25njYH}!1c& :*3$-[[1'_I4A? 8`>7jE,gPJLN*Rf X  D\9,c~U`i1z3wmVWu(^.`{3q YbF2Sl(GHYd9N~+ Ww 3bGM"/oFsOo! !A/;/NH.G_qVUlyeZtvt'De %xSm9 :^b= 'UW fL 6e= I6" '+6( OW ^v/ }rM Os k) [m BL, ,2C #`  g J07 'OW j q ~3 tn_ RP =s? &T. +   6!  XE - qb <  P _h( c ?E0 r )-8 vE eO&& _\BB Rmef I{y ~s|G mW`> Z3F9 M03 >+ *%2  G#  j> R o!'\ W&>q 7&U y+g i.{ xU1' `D6@ M6;[ .$E pL X W 2c: iU! so1 |>F a[Q w Js] m 0h ` `q T Lv G 80} 4 ~N & yh  u+ _i I >fa a3 pYH WVY5 AQkS %Mx w z G h cE P >C3 8 @C & EY F9w GZ lL9} oPN[ A4Rz z V Z ]! 2 fI  nd( |? } [BQ t >^[ g r [ h " P H tA E * bh 8 N ) \>2  @2U " l  M D 4v yC WTD1 'ivE s}R { L>` f nn I {-z 3 XR  3z ^o  :k&# jDJ cb4j e|W w md T `Ga 4 4(a   a  a D- a kRCU UOpz 7zsH U[H 1@G C% B:/ ?PP# Z k/(U W"AK :dA {8 y  ) Y*  ?E +` ~ v# b2 NE  5W, %e3 yC }R o$[ _=k JSv:c~*}w|til Xe) =\6<%Q>PJGe@Ts7\(a1g;I+tQ1&b{"ro ]pQ_0CLN-5j$ pN 4 1(K'6k3A,;oOGDLahO,oVu~^zT"ji6=r]Z}O{=oo32SdQ#2Xw xN \F '>@'T:A}r7WL4s5{/X`-#sH{)Q%R%h3"DE %]1Cz^erNO\2%>  4*c%FHTps{{__$=<a  X #%PA|4es`MnDB%&(+B90u{8xm1XZA4}'l:$J@P0ICW Uz na Fk*<ylex6}xJuZoOcP*OZ) }Pa(,C]O84j-_| #^X/=  R0p"]v B8?n|"-W Hb4'xe93 0?)MYG~a]p=uS noI `W*EIMo:s ((.V H gYP ] c@C .!" I95 Jf  +~] J N;x j~Z o%qL VO D AQ4 w 2(s 'A n - 4y i N7n, r0C" qUV Su d{B~< gN+ MM , Kc t#*k >+:X@k&hwYm0nmzzB^"e K\A|2S >& g(0` J% ZiU 6 bHHE G!U *WIn u} s{9 3c@~ _P^! /?pP +- ZSk C)  $L& Z 5Hz kX S+* m1 T8K@ )L biU :@&^ T4e p\5j Xm WIs 1\v C4x ' u ~ nN (| ?k N| ~ }| Hn [x 'L v \) s I r k 05p vgm Pg l *?i f  G b D R^ g X g ;U V' cP * (O n WK D> H E] G " @ _ KE; / w]5 o , -fD $ Dv , x) \ N   @,  )D fGg {+ Tml7 #5UH *Z6, kcZ v FG+a  ?O ߴ68 \9 ߗ} x$ kd{  G@g I -!+FS! 3y!eRM!*c!x*"/{]i"M_zݬ"[JTJݚ"q3!݁#iFN#U mq#rpE*#'"&F#\$ y_[$u$ZI]$@*$4T1%Bں^%Lfڭ5%[Oڟ`%iڐ}<%utوw)&|M_zt&)"uf&Vc-&M&s'nݚ{."u.zqѐ+".iZGќZ".[09ѱ".CK H# /3 t#/s<#1/0ܹ~#Y/cۡ)$g/4ۍ.X$/oB'$/;OYd$/3i %/P_%/uvϓ%(0gGϡG%60Rڸϼ)&d08Oنj&0&}w&0 ?]G&09"+'0M-@a'0_ '0?τ]' 1mΡ(1SXνE(%1/ (D1U׳G(O17׳}(V1^֘>1)v1քUV){1ւt- )1zTfΗu )1YgXη *1:2K 0*1<5 o*1l.&{ *1p@#G *1/$w +1qΤ? K+1Lu e+1!k +1 @ ' +1"O5 +1~r ",1heΰ Q,19$ v,1y. ,1I$B ,1c#l ,17.Η -1I6=O-13me-1yG,-13[Kg-18SΖ*-1Rh`-1p.13с;A.x1эi[.l1{ўΧg.X16qcѮ.P1AHѷ.<10S).&1Βi/1X~/0DD/0 D$]/0;xWr/0nRϴ/0)Gdk/0GЄ,/s06ЛgE/S0rоϵ/400O00'( 0/$yG-0/f@еs/0//tk=0/2ϑBU0_/ϳ$\0;/eзUl0/$}0.EyH0.h<}0._bhH0. Gϒ0`.h@ϳO04./>ѣ0-4&30-)?.b0-#t|0t-V?Ϥ0C-0-[B0,w@Ӵ0,)^ n0}, 9Ϟ;0@, ә.0,G  R0+ C0+ Yτw0c+d 'ϴԺ00+' #0* !-YT0* *hգ0~*; e/Ϟ0E* 56E0) ; ֚*0)I =TO0) Lϝ;0>) LL֑0)N )Y0( ma1(0w(rϩ׈V0:(Wzl0'o/_0'@Н2/:%POm/$c4ۜ/$B_}xz/_$2B_/$ ܍E/#ST ,/# Ц%F/-#tk."s4ݯ|."(rIю .D"Af^.!-&ޡe.!5  B.O!T+ .!!ߖD - Cse -_ =@ - m_ -dX\ j-t 9߬Ҽ# C-"] &-G!,,Ө(!,1==4!,i:K!,PޔӚm!Y,>޼|!0,y-b!,x`Ԏ!+DH?!+4e+>!+%ޚԌ!K+?:"$+/" "*)Փ|'"*;UZ>"*݇9 E"_*ݽ՘_^"(*1xl")4$Iv")Y֠.")+{ݚ"L)bpO")0n֡"(*fB H"(XpRz"y(k[ݥן";(,M "(DP> "'GK؟z "'2_=݌ "U'ޙދY!E!S W! gm/2! =y~o!j ` ޷Z!$   9! VnH%!v ޔ`!E+   a(:T  KEv cK /g  /k  UiM s ߞ9, 6 W 3Fo%|VIjRQpFYTTy,-,A  58`Nb H,as'>,ahO{ [<B_jpt3zz,e~Ix}S ~)p4o?%kxGjguf.9?g f ;ghY~=gJ_m6s&7wb8Boz6ms*42imFaoPV&1~Mn-4E<u6c?.,);!?wBmZF'G/h3xE)V5[JaxN~ :)jP {OO 786 x)_$h ~ K Z! ,i4u 7 C W@ uc?ax a%B `8 6iLw "8 &Er\Kicf/# [Xf8Wv=!0 2y! ;aV= I!be | 6  Qq W_$ f 7=  Me p Y U ,$ U3@ Y D Sz P|Ye } g&1  K& @0+ KY0 \ G d-' @8 =U 4mh VNz6 w{b4;UfTEE9/t\\ R)I(`(| d7ZR!LDdUSxc#!w[mGnvPcf#[Q|bCO&5$F! |k ]oK  Bt  Pi " 0 # 7 X H BV T TT% a d* k Qe1 q } u ,#| } a=r c*{ awM c ~o +@lB d} A BI`  Y]2  Zf ! mW n 4uTj  ^1S;  LQ T \I  $KH  Ca4 FEp DkFK rIC  N~F bQ{ BJU" U[F VX 8wU& *Q/t bRm/ oPG ZP 1!R< SnR CYV SY ]c r:aV ;d1 \j.  % lv  mo H< 3t  !Rv?  &{t U u 3| $  ns z5 Xl Mu b _! Y  TAS > qJ g C R* Z<  3 "O ^+ [" Ve  8, PP! zJ eP_ 8:0jk u h -<,;PVL+4\]yk?k. @ym e, &qT Ffޫ/!eWRރ!G\Z!<2F1!*tH"ny" >k"4 %ݴ"`ܖ U8#v|-yi#j|[?#%0F' "U' g s' ={ '# LA'1 "^D'3 vc(8 zߙ5(: TD߹](? :%k(< $(< Q׾O(D @׾+q(> y!I(E Iַi)I  ֻ߁,)C tּߝI)E PֽGc)? 1ew)9 )/ cn)% 0۶$3BHX$(Va$cN8$lx$p ܭ6{#67Pu# Xbd#;[`#pmP=#]ܔ@#SE6")2&"[%"T  d"݇(7"dݬ9"@K!(-f!/L*t!AsPv!kNރM!gV[ު&!BEm .}" w R7c  bNj ߔ 11 T  / #  @3  n:A 4\J WL\ $_]j ;rv B owm( V~mG BXii $,d d` Jb!: )`Cl  _\ ^ c{ t0 b= X dT < f/m  hZ g i nN h& H2 kF  ic  ix x kD. X jkH C m\ 'f ot ? t #o x [ }6~ E Y5v 4 uVo ~" yb Yt V 7P I 5 :  *  4#  R2,  sS9~ kBa NCe $YH 5`- B i U,l hKp xa$u .2C(*,WDDfge~sWb d6FU 50*I1{Y)k}2Ms ?#N;KV)QmO]R5#9O3# ;3#-2 #+5$8#$<6,$ A=8$GTK$Mgd$ Qoi$X$qq^$%gkc$"Y^k$*JLs$.;H{$'2?$)u%9$#h0$]1$O. $B% $ 8.$-)$#'$0#$,'$/.$1%0$6. 6$<>@$AM'>$Rc9E$ZyJH$jۉVB$iۤfD{$P۸u@l$?>W$&x<I$f<6$V=($H+9$4G<$#^9#t2#{5ܖ2#]Fܭ)#Fd"##"7r#GS#0X 5#Wm#{~"uzݜ"QhD""Q(j"@4a"*CE2"Mt"{Zޙ!Oe/)!sXB!~| T~r!LjoG!|`!ouޢU Je> NW* :0h ,`* ~ߢB2/Nj rnQ1-Dd^(VI$lm%n9 :xhzf$(1NFmz>c8+dew=@=}b& #q3rD]C8hW.:mV>q~7r{ O'd Q09CUevp`/a :PC !GA iM'~i9Bn H2QS:@ettvW[Jyy e h{ W7ew8 Hhx 7#DA )nj^  I9' |f mQw 0 R* ~ )S5 / [A 7 oP@ ` 6X  w` b Ok H sZ -Lz"  (1wG ozP,g  g KZ( Q7x W Gslf i9Q% "1 1 (0O _ K 4$ @7~ U F J  }@,]q]qu->taI"(,[l3Ai9*Q;<F=<?^Z>u^ ?v/UA4AMK,Cc1CXon@p <k7v4@06N})sWH$ XtDOK_@F9^,bxJ_}!  'bb+Ew6c-%D^8M/]-+Oa yI"GzkO x M <ztyK ^4 *(  2AE C = N/fG  JH'10SLBd~[sq<lQezx#zbXjP8dB:XoyR" XO:8JY E-vA<q?N8P6^QD4id13y}r-lX /^C/G&.&3 14%4>92R; ?ZBR_H/kqJ=vsRIztUXf{Xc\w]kSrazBmhu9ing1kxSczFcn5e` _VcGc (8d"4)i1=m@A vSK{ ]LiJq1zPhAMZuUMHdoO;RM)qDMV3J: J"E 1 B EC Q/#= eH4? r^C@ mN<x _=ek p9QT }4;: {, h$ W  J(7 5M`  "g}t hM  F) ) (& 3 09 A/PH MNoT} ^ufvT ntV7 ||z5 }f l %X d)BE WRl4 C{$u] 7Q8 '$  4  @a 4v8wS BKP, S_f&z}s"LnJstrWyftFDWR&7H*#4F#?k|sqE-H":9+RM2Ze_V~plt^7oo5b\ R 1H ( p}  oY:  GKf ,  P: .(e +: H/4Y 1Pt |7|. lV=b K?D %`'Q $Z  d@ ofD7 rtS bzxk FQx \v 8u. s3_ sa+ GrI o vg Dx= Zxf B| Ku: mX% io,M Ze akO KVHG 1*"= 5(  1J9 .8i `"V g  #zS ) | } K mq w ]Fl )K: 9?# O1X :l" mmp  DUV  1  $ &Q e{{ =tU RR% ~$l! 6R% e0+? @0x t5 -W8 AO$: \n:8S854_/.Yq)FQP!$nI7 2zb[/3uTv)D_g'< R <=\B\&iYJ/B$5*1*D{_Qk(^HaCo(h!z|EynyFXa^8*cQDG3a ,EQ<xg_ -}G}m-`sS@7#LcY4kmo30AvKX`a:A\t - fZLF  +b7 6d 4u 'K< P^ߠ/ ~w[yDB!"_Uf!Lc!K޽.x!dzވ"j_-"[#g"&?x".:6Qݼ"\T''݊"vA{6#bV#F#IFܒ"$#i 3#2>2$&Tg$.F۽]$\\[ۈe$&Ilx$T{%8=%.uگz%qmtx%g^Z%/^)% SVߡ &$ jOߍ/&P LُkZ& >bN& 8o==& 2O &!"&)$ y%!O)$ u[) % lX)% ]g)3%6 ֽڻOk)L%P ֳڨEn)S%` ֡ړ1p)n% ֆr"p)~% ~ap)% oId)% `(f)% 'P])% =JN)% U>N)%+ n,?)%> /ڸt7)%R ڟY/)%o ڇH$)% z3)% ^)& E )& 7(& !(& ?(& Z-(& yJt(&4 _R(&F |ٳ7u(&T ڥZ(%f ڐ:(%v چ#(%} 5{(% [%d'% w'1Zz'% H9IW'% pH1.'% M$e'% \='% .n'% Wv&%x"ٍt&i%'NٞA&Z%=~ٱڻn&B%KڱA&,%X-ڜ&%pdډ%$zHۀW%$;lR%$]^%$/wS$u$`>۠F$M$|ۿ:Oh$3$2)6$$,##&*& ##MZH##wkoJ##ܘ 7#U#ݻ "5# N "#I C""3j ""]3 !"%kޑ n!["0.޷ -!2"9_ "?L޻8 !LNޯ > !R}ޭ h!W_Dޢx &!cޚ: @ f"ߙ  l#Cdߎ { ws߇m 4J {߁6  Mx ~DMp "|ih dVg q `H>andUTW_>aYO]},U">qPd ;I8eDC{@ BAAbZ.Avgw?6mD&5@3Vrnw?.bdB[g.>w^tA0i?BT*Bz@wE8dF Q5.Hz F4! [H T1J| #H, TN: L9O~ S+8 E[ D{J_5 f)+~lNGdt_z#%+{Su#9s.o O2eZy^& W#va NYu  I4G B% 7 >h "f 9 jb 53 N 3~ S - N`? +F % B:E{   R cg  bIk R[T =  [HtA Xzg%Io*<`4JX;{AqD3X@PV[y8g3t osHQS y{ F77r (eV tY+ /WP *AV, M{w4 -&'BB9< <$ !- A^ mQ,d d( a#Ds }?ID| l Ho.b` JO }"5; 04& |iJ R,p wE P Cq-Z}` ? J4I WxU)W "e2 A n@ / |O| nm fVk G \ > CJ . 4 'Q d# } >a>  1]U u \ 0F  3J T G Q  YI :1 m wLh/s ?Sa H I  1ߨ2 ? !yh YC! ! T "b6݀ ?"7; "T% 5 "Lmܝ X >#ߘRl y #m;N #+C۸7 0$f0߯v t$\& !$ +! %3گ M!E%p1ވf {!%Hz>$ !%W^ !&+o:޾٪ !l&}|hp !&H?] "&C -" '1ݿظ, N"]'_݊؇ Z"'UC}"'s"(,h"6(LGWݬח"}(k?aN"(8Al"(,L")7 ֨+"9)oݸք"Z)ݒV")f#)8@#)N&#)Ll֝#*ytq#3*S\#M*ܗ&B(#*q1-#*`7#*/6ն<#*bՏC#*x{@#+0P<#+M0?#4+c2#?+{ܼu/#Q+ܠ[+#h+7ܗԾG#h+MܒԨ+#|+izԆ #+{t#+ve"+-mF"+E$q<"+[:p*"+yPtx"+]pb"+wwH}"+}(l"+%zS"~+2݌;"o+9ݑԾ"m+K1ݚ԰"[+PEޮԲ!N+Q]!޷ԧ!A+_v<ԟ!1+^OԢp!%+bnԙW!+iԘBo!+hՖ1Q!*kՕ4!*j-Օ!*mAՕ *g^՝ *c+6q՛ *d=Sߎա d*YQrߨժw I*WiժP '*Rմx1 *Gֻc )A.L)50I=)*Vn-{)~oW) J2)#) $( #:0(0GdE(CyXnU(WjJ-(e (xsؔ'^'Kحu'HNqis'2~Xi8'I: ' =&E/.&?}K i&hf7&ه O%h&ڨ%IX%+&O% !` %/%[$:N+;8,gxd,7b0 =5 HZ 9yNBk'J:\AQ$ZFB?am&re~vqjC_2n  p>[Urtyzn#J~CAtHHj1y pcT6Yacy P>? JM B1O 55}d +Y G` ^;\ @"  ,6D+ Mru7rn qHy$+ XS 7$e7 w\t`  E s(  jM?  [zLr N OyM p J % 2 / E   0 &!P :P# fM|5 rE^@ KpT 'fv Jtf EtV smsG {K\; \+L- 47! %3 S <} wV] p!88`FFY+$?q )`r-{t_14NG4L886^):v~:l;'Zos =ci6SO1+H;/=:$*R)(c(q )1s*Ig,!Z[03sH.Br@/Lc4/WO!(`A&g2"p | ~  s, d)> U7G IHP <]b 2hk ,v{ 'z  $qg  #dV  !U@ " A, ) 2 / "  4   7   7 % : *1 ? !16 ? $;D H &DN O 'KV R *Ue \ /gu b 5t h u< p oaF w \NL } PCR >0zY 1#s^ )sb ni  ln  nt k{ j {i sf,) ic<8 b`H@ Y^]T NVpg EQs =wM 4bmB -R`? 'DR9 3B1 %5/ ,+  ' #  !   ( 4 C-  "P6  '\C 1oT ;d  wCp  fR  Lu`  =jl  *`|  |M  oF c; S*+ F#: ;J + a o  s # ]/ O< 40T =` I s  Y  ne0 _pC M\  v8~  wEK  [Gg + 6J~ ? |J P gK f LM/ | :~OB  %qUf  WX  qM]  U;c0  1!eN  ib  my  vs>  ZzV + Gp 7y &{ Kn [ Uf H a\ = {U }V P qm,L UTK f>uI R~+H <_D 4 ? 7 ,-* N@> kUB VYh g7Mn*&k0#\7>8E<[\)Ao_D[EG4O1S"DZIWdBxqlcPrvj Ux<@m1@apQwIEUe80,'QC18L  lf{ 6y^V9t*|j [; @NH2!:W\!j0 S xQ 3| ph #-_= A<S kLCw* j3KQ w''v te %>R QD vu1,/ = A_ S~ ji '2| U} o#nx0 >[=] TM _>k +z+7x ] j  gV2 0?o |(% [5 ?!K g[##FlP5Wv^>de6lwRwz:EiI'^jzL(:;Z.+xm F>(]rznKR2r Lbh1YT8_v<}&KpF'`rlM>6=3f2LDiF ~dz,fOb%O"0@`B-4QZ dp BrH-\ zJ 7qb" k] kYT PhQ 5e:J %3!+&@!/Yx!nQ!J>f! '!m@="%Nea"/5"3AX"C 'ݹ "Hݺ>= #Kܬd~I#\eܡj#^n5ܟ#hMKܑ(#u"܉g#yۃ %$O}6X$x]$jt{<$sJu~$Kbj%.=h%fH%Y@l%Y7f%fUS%P>P|%uT%[U &0Xc<& XV&f](q&&s^S&LYs&;`J&_ \'7h['Aa;'_^'c>:'ufWV'^i'iO1m'M1p',z({K3(׃4r@(vu׎[i(r=א(me pי (cHSן0 (`4ףk (Yת (Tj׮3 )M4ָ^ ()Eֻw!8)A{'!G)4Sޤ_!n).,މ~!y)$ oހ!)?`2!) NZ")? w!")s-M")C-x")%}<")a Q"*,c?"*r_"*Պ'#'*l`՛I#6*]<ծe#4*G#E*3gܵ"#K*"Iܴ<#P*6ܬX#W*ܧ #]*r۞$c*]۟.$_*5ۜHI$l*ےZV$j*۝r n$d*~ەՏD $o*gfےդf $g*OR۝տ $e*1h7ۘ $g*:۝ $`*ۡ %^*ڥ4" %X*ڨRK =%Z*ڨid G%T*ڱՈ i%P*i[ڪբ %X*VAzڭմ %L*>#eڵ %O*!Gگ %N* <ں- %A**K %>*;s %2*W %(*jt &*zB՘ &*Z!ճ &&*A  *&) ( A&) < A&)0&U H&)>Jt V&)}Mf W&)eeֆ `&)fIu֮ g&)> ٌ t&j)ٝ y&X)ٷ"1 &;)wKT &*)uli &)zט &(Rer &(2S}9 ~&( >] |&(&z0 q&u(ٜP g&S(ټu[&3(vמQ&(Pؾ-J&'1<9&'HY6&'c2g,&'هW|&b'uٳ؈&>'daح&'AO%&:&%&(!N+%&0wP%v& Fڢ~%E&l[٧%&Ij%%"&)n%%V#7^%%{E=?%j%ڲuL%%1%tڡU %%O[$$("Ge$$B{p$m$]۩By$@$ukz$ $}yܙ]$#Tm8ܺI$#5kb&$# b۞ $K# \-### ^)Q#" XO:݂#"i Usjݧ{#z"F QܡW#?" M+#" I, #! DNQ"! E3݌ނ"Q!h @]ެ" !E A|l"  C:;" @x&"r DݨH!7 E-x!p H]/!L Mf_!|& Sި(!3 ^  e'+?  qYkg m |߽J %V w 5 6k AcU r7Xt ]O: VE\ =M8 I7  ,[f7',\<,[k:~7wBc  !'60`XXA9,eVBh#9zdxsQ `+@M3bc2pU"cH A "+] CF B_( }.qOr jwl[ n*B )eL ?O L# O%* F-w0 l`iH q(ko  UP iI6 IM ?(6  ,y g:w" X bE __q c|K k'r$ T G = R C3 +W, r8q(| fJQ Ad4  #P~  t~ P+ T-  <K5  !row eE  U  #7  UmB yi  \-% +p REG ig1 B TC  ?>' &7 ] / # W7  \#_@ 19 P)@ #TQ =_` an @sM^ w.' j hqZ$jbGV9~=j)d5oF &.J\~_,=A~<q*P@mbTvp@(x`y8eiob"s]2$Jgq:<0.;z]qRtO@>!>U0V!Y '='Uu{/(mr3&9 <Y\*C\Gh<P*=KW]VIOf0ojSgwG|()z>p(:i~iP}U:^aU9O_R zE J=D5f8+BMJ!x-sCS @Oe:yNekv:4$_JZj`]#7  * M &.- Q1M_ 4 ` 4f@F 5<  9N  : ;, h @y_P GD LiU RB 3 XL b ]u `lgH e$1p h ibY - l8 U oV v p&u uCM; yhk ~$ ];xZ 8s soH @l#  ]jG  1kg  j %H [j Ub >j ~ !khg  1Ce   &b)  ^M :Yi j5U LsaQ wR(tL 8\H  =F <C iB* `AC 41?h T=| nz: ,Yc7 a?B4 }*r.2  A 1  0 26 52S AU3l `c5z wu{|5 `Xj6 TCZ5 B-I4 *+1 -  ) @" ]) t8}, U_C jDP z/|] it Y} ~N l@ 5`1 <W. LI e< q/  #o Y F -8; G M &V ,` 0` 8k A u J*w Q8x`FshQmnWj{ee}hgg{gqxc!mvi#ori(snk-pis4qfv=p\~Gr~WOnwTXloL_olMbggMefaLgdaPg[YSjWSUoNKUuG>W~=2|V4#pR.gT!\QRQ KVAX/7]=/a(Q#f7fiIy kVmqhWu{ F}}j4tO(k: 1_+AW JRO$faK 0DGN Prf vY*| T}cF /ion | Oy [ >7v 8 *cj  _ ] & V 9 I"J  v<? z 2N6 [ Za' / { _ { ; l3  S e  =< ^ ,,g 1 = K M  $ Z:  kj&: { {VP W |bq .j ` - r S  _FC  FyM3 j %$ ?h  8  :5 bMK f Q^/ $m= XO*& 5bhm  {o U K}| ;p ,LWg Uw] `tP W QF . 6+: !n( rU F) g J + Ie "ux py2J /T@ k =K E !VO  d  Yo4+ -|dHz | :lh D iY  }rD 6MI1 -|" l\ 3~# ? ";  NW *Qy Wx; ,_aJ )E\' l\8 ve a{2w '2Vp ng FR\ Y{P r`DC L3,2  &! 0Q _* [MR#f,"i'eF-E[05l~ > KI- &TZ7 a U RoNn )zp zp$ sENX j"7| _i S,K In  <~>8 .PkM !+\ au 13 gO  Qr3 w3k Q 3a  -( ) /*: 8J7Q @shq zF ]^pM =6TR :Y %]* d6X kV  vpo $ Rx ? ^#~ U A a w&. y n| Q fq#j ^c< UfQ] MF@r G03 @c  8H  22<  )_  s  & + g? ; NS C ;a N (x [ ~  e q j ` r J . y <(6 w +3J ~ ~=Y }Ef xMw oT$ rkZ0 fe_< W^dL HWgS CRh] 3Lmj (Enp $Esy A{ s@ wgF iWH XAM G/R 7V( %X6 X; [H W*R X2T Z ;] WDb ZKf \Sk \'_q _.fv `4mx c=y |bC~ |eI uvhQ nqgV hpl] `kne Yjqk Tjys Pl~| } In u vFp l mCv a b1p 0 5/l & ,-f  %+a  +Y *S )L -A /9 3"/ 9+% :6  ;; :E 5M! 0V+ *a7 $mE {S ^ t l e  y [   O w A h 7 \  * P  ?"  2'#  %** 04 3!9 9-? @>"H CJ-K KW:P QhIW WsTY ``] w foa i n{f [ ti M r|o < av| . Uyt Fl 3zh %w^ rY i'S f4 L aAJ XL(G PW3E I`@F >iOG 3oXK -raM  yoT zvW Y } y` w k ^ n `_ c P&b X =2a M .>c B Nf 7 _k - kn $ &t  t:|  gK~  Ua >su 0q u!k bb T`% H\, 7W3  )R9* O>5 HFJ ?IT h o 2 ,y | . {} + kp , ce , RU3 . ECA 0 :9W . &#y / } , e ' B* # !E . [ > z, R wK b b^ m K /ow ^k   F_  $F  ; " )4  L5 ]L pf  0ki @[U OA2 h+ u  p$ 1 ^%D U)0] =)F| v+)Y `*f H(} x&) k) !Z,3A/,C33:I 9Y\<ql@snE'OkE@5_HQNJc8K~y%M)iOBORj 8T$tX+L[J+[Y^4p]N)i\eGW\r`>Xlo(Va[TQFR8 R*Q(T"CT>XVUbX3u||xXM_jZ_FW\s}#?]d)^ S_'7aS `h"b1geMJf-X4kAhq\|vuq|-n`M{OPju>Czo'v8fN!`:Y 8OTIk/AO06jn<+LC7oNO X/  `6 g%Z y-n +{5 Ekh> iQXD }SD S@4U sJ` ~M {m M_! WzL9 Wn;N [_#k bM b?p d/Z c8 4c' 8\ NW. ^V?. bKTJ xL}id Lrxz H{` Nn^I Q^C3 VS3# ZC ]4  `*\8-_ E0Z W:R!oLS2RKtB_G_YnD@m~?,|}<ys6`]4OS",<KA%#4Z$.o!i*R<@O)e t q._(5Q!:9=)SJ*,`L8qQ @ZuIZhV"\^^4^LhCbEpN_>z]a,kh|&wcqifon`_iRPoI?nA3&m7*)l15l);o% @lQtXu"cr1px=usGzoR}k)Zb7b[Dn~NTyGb}:xs,l'zezm_y`YtZUqNR jDNd8J%](F4QBJH>[<:r-8#"p7.^7;I9H<<L,@VD'\H4aK;jLHqMP|KX&uId:eInJZG{\~KHtl<LXl2QFT$W-<_#hn x&:2}QL'uji6k|?fvxK_b^XVHH^O64jG$ q<w1)-*xHC p`VhwowZM[P&.9B54H +X. gO= {wa{x  |m] w]8 TF 39 !' F+ k81  V:f  wB9 y7F ]IO @_ S |IVy h \g *[GY F\+7 XZ tW })T h3JR LNqVu *oWH  `o$ -lW &Wp8 Kvz$ |r~ x Y{K <&{( (=v doAfma,bMGZ%W_P5 uN+ DbU9<Lq[;41Y_-68 + *&3E 5U\U}vh}~ o=fPQ,:-$R!.xs1[E;#v$B7VLO*W@``^th' \nzO :[o zG fR2 1W+! RQ w=r1 /RI $9h  )_ 3D 7@( aJ< |VuD9 bP\b m-o xlw ~Ny d q =Wm TBf2 u){eV ebt zK^  P)^. -Y? VQ Tr- 3PI HxPf _YQ zA`}T -JlU !RX =^ -\+*cGNjcjlqqx[M({K82p1"?d LY!VS/EfHLat=cy:y{{)rYnQ=e?'] VPK,/2EAWU@Rle<`{gu9u~H`7o0P7]:;;(A )H2RZ]"{ f9coX';yt9&~Ck ZxL-jp-IxidYt#Iei9;UeY&.\pRWP4B86!M1,k"A?^Tg@cj#}t4a*J'R .Mqj q ZM)8==%Sr$@p_4RZ7[p"Cc E! 87AUkoflF7 FP-c  Nn,|yZ GQGm"d G*<"-f&6 :f<*U7ATp GmoK'^TR^>7Uw&{-]Kg(m. zKq0/u{R8g_nGZAXNTkC9v:4,iU$$]p8~UeV=6o9Q0#/ 2 A9OT `{7wnMa|c z;ie!\U$I047;P8.g ?'Lj@MTQS<kX&`q5 ``G, eibS%m}k#vIw7~40~bEwYpq9spB_cgbtN!cV1TW+{ZtWI#3MIJM_"fFY?Zo5>gU1:8'*L8qlt{9IQL0*g$!y(3Db2Uj|I>mR:LP6&T%ez2~8Xyh*\~b;U\=LD7 b*5q3W rj{]b\#Fmܨ^#m b܁z# Uzp#% UjX#3 GP=#= <3%#C 8*#K &߱ $ R ߫$& V ߨ5$6 Z ۷ߢ Y$Y b ۞ߛi$d f ەߚ%$x i qxߒ3$ r YfߌC$ t EWߋG$ x 6C߅Y$ ~ 0߂h$   l$ {}% {w1%! ur6%! kpS%*! _jd%=! Tgr%A! Lڵh%V! =pڢf%a! *Zڜk%i! "Mڑp%u! 6چv%! y|%! uށ %!| kއ6&!x [މ?&!v ]ލL)&!q Nޑ[A&!n CޓiH&!j FޚsV&!c 9ޠg&!] p5ާx&!U e2ޯ&!N Y{-޷&!E @b(޿&!= 9Z#&!6 *T'&!* :&!" 9 &! /&&! $&!% 4&!%D'!)b'!"6t$'!C.'!iTL'!P`Y'!Dlb'!'|'!}z އ'!swޔ'!d_ޥ'!TQ ޲5'!GEF'!73`'!%"{'!~'!m (!K(!>%(!)";)(! #Q6(!-c3(!<{&D(!w@ޔ=J(!cOާON(!PY޽`V(!6c~^(!xof(! myg(!M׈ z(s!2׏5(k!%מM(X!u׮m (O!k׶ޅ(@!ppޝ0(,!Te޾J(!4c`( !bq( _( dZ$1( RU2G( @XFh( IX߇( mHeߟ( PK(v );ב9(g @קP(K <,o(4 4V( f7u( ~R3(U42(3+2( .E(,a#+(!r@;(*׋`U(f"קy(Qd~׹(:Fi&(!L(0! ($&9((Be (,b&(g0|/(uD=מN(P;׾f(8Cp(NA(_Gi(MO-(d3OK(8Ke(O(sNי&(XT׹LG(9ShW(!^f(^g(9rh.(jzM(N|q(:׈?w(i*צ^r(Iq(-dh(F!d($:[(>UZ(X8^N(}e|D(ptנD(Tch׻2(1=R.( 2((#'*( LR(n (o׍)(dSث7'C(T'#b' )o'%)U'h#@q'`3^'ZF8؁'r76?ؚ'V+Rغ'3[' l>'|%Z|'Lj'cs,`'}Fؒ0O']#ظIB'6\?'0a-'Sx('}-t!'uG'dgf '?U؆&kA٣&N4 &-@& ] &$ &k-?/ &J-V6 &0?rE &~DْZ &cK٨a &J[5o &-`W~ &zlv &ks &ec}2 |&@L߇N w&,Dߎd h&@ߢل X&k,ߪ٣ Q&R,߻ٽ3 8&1#T *& s &# &e E %Gd!%-&!%t5ژ!%ZIڴ !%AR !%0b! !%p: !%sH !%ޅ\ !u%ތ6t ,!q%ޕH -!a%pަ` 3!V%^ޯw 7!K%G޽ڋ >!=%k:ڞ =!3%Y-ڲ @!%%C I!%3 C!%# J!%  N!$ " F!$0 J!$&1< E!$:CF A!$JYP =!$[m` 9!$nہi 7!$t}ۖr -!x$_ޓ۬ 0!f$Jxޟۿ )!Y$9r޲ !B$$e #!7$[ !&$R !$H !$>. !#6@ !#1$P #'4^ ##?k # Nw #[܅ #vb܏ #i vܠ #W߀ܱ z#J*ߑܾ c#91ߧ S#%9ߵ @#F (#R #d "o) "); q "HQ d "]c R "xs = y"ߓ݈! 5 g"qߟݔ! & V"gߵݡ#  B"Wݰ%  9"Mݷ( *"D)  "7)  "+, !( !.)) !| ah =:")8V *\n F _Yg/5s  SB"#4nB!_$R(a8/CQ!1!sZ:|*Gb\GFB)Wb5d>ef0y?~OA wj ih?nHUSiAAB2,'suIQ|a -8#D?Aa+sSirppm+}U8z":^*jqAj>(J&/i(?I7JY_Op"|Vn`CT96=T!"'"dnT8$W^#7vo=EDNR.e@ wc*8a#k]Hqa3v^4=8  L K < Ac (VB ~E7 HMB U'>0!esd!oMu!/fމ5!p%ޘK !_Nީ "Ocݷ "H"B  "4JhS ") < % ": *#9߼, X# ޘp 9!#cL !#*  !$I S"A$rݔ "$; T! #$( s#%^+s #N%aۏ2 I$%*Y8 $%? @M% &Hm%O&LzڛN%v&gW%#&&Zp&'rZ^&4'6٧e8''TgC''<(p|''lw?(6(שׁ(w(zn׌S)(p=וY)(e3b֠)3)\հ֦6 *e)WՉ֮{~*)NX?4ִ*)L յG+#*HռQ+c*C!nս,*B3-q,*<h,(+7Ӱx1-s+3[k-+-'F4-+(NS.3,#oѢ.|,!N*m., 5!x/,Jm/I-uШ(0r-:g0-7 >0 .uL1A.uΜ1. N  2. ;m2/w|2M/W̄C3/93/WH30˹_4s0Ep40 3J40`k561wcʳ5d1A615&~61Gm602ȶ7e2C}72-"+72_68%3ǵ835S 93 %"W93y\9N4%x Ƈ&:4)3Vv:4&b:5'wC;U5$kĎ;5 ?\];5;U<6k7& S>7+<~Y >7% 4+ !>7 ^!S?48yu!?m8L2~!?8P"R@8 vY"@9A"@79Y"HA9݄S #A9J1;#A9n#5B2:lܠ#Bk: /N#B: G$C:۴Z$C;Z|$CO;p/$C|;,ɻ]$kD;u%D;LN%D<%BEc<Zڧ%qE|</qu%E<%4&E<ݹ T&CF= ٥o&tF1= vo&Fc=/& G=^'-G=د?C'G=M s'G>{*'G >N'?HZ>ؙ(zH>qv#*(H>7P*R(H>+(0I>Yױ1(gI?@׃4(ID?=7)Iq?z;8)J?ص]=c)IJ?|օ1B)J?QBD)J @-&J)J#@ִP*OKb@՟QH*uKt@qWi*K@3KY*K@M)Z*"L@0˳_*ELAէa +}L'A]Ǿf5+LJA:jH+L]Ap{+M~Am˲gv+HMASԴSz+ZMA/ԇC+MAzF ,MAw, ,,MAlF,N"BeٱϽw,=N4B]yӮǽ,_NBBRkӗ,vNXBK?n,NoBC<,NB>6z-NB9c'-OB6ܰD4- OB4ڰHI-:OB.ҭ+a-dOB+Ҙy-nOB%҇-OBqj-OCKM-O C91-OC)"ۼ-O-CǼ.!PFCܯ.!PNCѯ+.KP`CѠ9.gPzCџD.bPqCюS.PCpka.PCmq o.PC[hu.PCJT.PCf0U.PCe*J.PCKC!.PC83'.QC85).QC$.,.'QC׮*.QC(+.'QCή).8QC̮ %.2QCʮ'.8QCǮ %.8QC î %.CQC Ѿ+.:QCͮ-.9QCѻ2/GQC®8.0QCҮ(>/9QCC/y$IF>ֹ)$ F>*#E>DuV#cE>:ĺn7#E>\"D]>y5\v"xDB>ݶFB"&D)>("C>(>!C=ޜR!AC=?ټ7· !C=X&O’ B=y߄u`Y YB~=ɽE Bd=#A5=w}TVA=վ A<6)*ü@<;;>;<&ħ1)>;tI|=;TQbX=;Ž%=a;'éD /#6u V/5 1 .5-;Lʼ@ .5aсʅ .o5z*ңVY -E5. @-5Xi ,4*x+˿ Z,4R.Wˠ +4{Sԃa m+b4&Ե- +74&L* 4 *3H~!H̨M)3ip̄F)r3F֭Rr(63~#L(3. ߤ'2 MD&m'2C u߱͡&r2s |8٦̀W&@2 _& 2 ^*$f%1 D ?%1!"tޠ$i19!۶ήC$01`!Γ#1~!lToZj#0!]D"0![Tݍy"V0! "0"1<ݑ|!/C">Ь,!/`"tЗ r/~"o߭eL# 2/"</"Hq(ݑV."R.#)dܨma.3#xѾ] ).R#1ћ-u#Y3{-#ha-y-#~Kܻ<8-#} !P,#i g,#7W۔,&$]iG,I$ӱۿ ,Z$h1ԓ_+$Pj+$KWۖe+${?;I!+$ %*$^ g5ۀt*$ q/l*% 4+*!%f u3)-% -')7% urַڿMg)W%t ֢d-)^% E֝(o% 9׃ڱ(% 7tRg(% h=&(% Xک'% ~FISP'% =`'%;8ڲ'%{ #[&%H&% qNR&%ii &%G(%%H'%&T}M%&wB^%#& $-&<@Rٔ $6&X5 U$>& $:&lٽW #D&h`ܻz #@&$> ?#8&5 ">&66٬ "4&mKp~ l"1&, "0& !)&-pFٹi !&&lh>!&E& &*= &1z٨X &{wd^ %0 %)m(b%-4ڲ1 %fLڈ%J_`\o%s% t%"UHڿxc%fv:U%%JM%m(a:%~Y1%K9ڜ#%y pO %^6r$I 1$$@$:K8ۣ$|[Qn~A$dP6$6r$frR`$&3E$Mۛ%${bvq}e$P:%# /#Rf5#+yu#ZKX܏P#yB<4#Z #<L 2"*ZD"Q" <o"#kxRJ"83"J/ݥ!mL!އZ!G|Q!&r[u!0}@bP!p4u*! w e KC w@m .rgF @# ߺ& Jb uZ f3.ym ]9o& [q Mrj* m3J a 5 0;Ex l?H1=.~g=i<>6pmy1 =2*9(`!T]HK3#pX!I7!%[g +f&E<%s2&`[$+(:"R  |j,P9Pal.3b)] >T~*n\C-$* FlC0!~aJ"wg*\e&CAq*0&Y1>+#71 W0A+l`1,LqH'~,`#ZrG'/oI^eMy|?d0'S#/D51HK T#d *%k6#w)A&9DvBKkJMgRNZXRX\UY_XPcYTc]Tc[R`UWZUYRJ^I@_A< e6-i,"g%o  o r{~ $~#2,v0:.pES7eZjFalxFVzWJkYdETGe4</t(z ~~+*xQNo&ldl6|_oeN=PX[#@[nMuC5cDU+L6Q6i1qH- e'8#&)?L"d]Fm3`L &OY .a&#HDf'gZcW!<H*% ##JH1Byi6ne9(FL\5L9o0Sn k\z7\P^2`#bUU4i/!VjMnFGyO muz ":~A|qqp{.H~7 zsQu}<KX}jt,>~4KK)qErk= <D| 8CV /$7 M.Ws o$at ;-)  j  m] Gy  x; va  xF##   0u j ?b :1 L g xbP  Cp`T |(l ߟ,!4 Z ߮qeR Fn v , _!  /aw | c !- !3J!;\{!JrO!:HjF! ބM "u?ݔ*"^JݱQf"Bw{<"23\{"^0W"y+#$(q?#nEWn#n}k,#U܋s#gg9ܬ_#<g5$ z $b#V/$tR/[$#v}i$v_۟G$Ih3$-M$P6!@$P?$.~%pGڡ1+%IGH%7g%;)#o%^R%{Iaڔ%W' X%'G]n%ff-6%%h!%~ڠ}R%<Cy&%E&P?&ٗ2&L6j:&n&=&I3R&`فO&cO&ٹT&#ߥOR ^&{ߣH ]&(Kߡـ a&]ߞv)!c&Mޚx!j&nޖO, !g&/ޝ١ "e&6ݖ Q"j&ݛ+` }"\&m]ݧ{ "Z&Vݧ> #T&ܵ F#D&?ܽ` #@&qMٺn #6&"f $1&A I$(&٠ $&@8E $&&E%&zڇU%%Oz%% q)"o%%R*@ڈ%%JVE&%q&S&%0وڎ&j%@S٢v&S% d&ٶ-&=% ڒ8*'%8 c' % D4'$ d&ۚ\'$3 gA'$ \D($ ۣR(q$" Jן~(O$ ra;(+$y I۽($ &4(# <܄f)#P xc?)#֘b>u)S#tyֽܴ)0##Rg)"4݅^)"I~ B)"1n8*x"աݬoK*H"_ c*"^*!ie**!:@]C*!"Յޑ6*b!8 վ  +$!s2+ dP<+ }\=a+ ԗ߫}+R +a+ roh+V PG"+G}zx+Wkz,]o@ !,d ,, \@, 4,޼ӍF!Q,Sު!S,Uޫo!_,YݕR9"t,݊ӗV"y,O~Q",p1;#,`b#,7EQӚ#,CLG$,;58$,D1sO$,fw1H%, H%,D#[%,$Ӧ ?&,, &,0C? &,ӊf *',EO ',L 0K ',} (,N F u(,k!/ (,1=5Ӏ (,R6 R),792 ),SFz^),XhD.*,J1U{*,gOu*,`$X4+,b/\+,5jv+,]TԀ}+z,?Ӈ6(,t,ӗ}DO,],Wӫ,S,/Ӱ;5,H,Ӈ"-4,T:p-*,kG-,G'ӑ- ,HH..+oS.+_ԙ .+D:..+9AJ@/+GԓTf/+J_/+ 5nB+/+ Ԕ0s+G KϙO0_+ ϬEZ0G+ jQԡ0/+A ! 0+ N61*z 2լx1*. v I1* {GAc1*i V7%2* pD2* =͐r2f*V Sͥm2N* i0$21*v3*TU3)C #3)l%w83)Q2G3)\0 4){փb >4s)E]ߚ˜ 4[)d˯=)!4A)L֊!4!)IE !5 )=E"15(ݺ~"]5(UC݇5"5(UP2W#5(-cn#5(h= $6q(ɚa$L6^(۩ɯa$^6?(u4ۋ׿%6(Ja%6(}6a%6't*6ظ & 7'Sk&37'nvf&Q7z'z$ٛȔش'}7]'oȴr'7='hEU'7%'2)؟'7'1 g(8&w7(98&F8z(R8&X֎VL)8& di)8&ZVljV)8g&$ǥ٬(*8N&*s*9.&n3*%9&+ً+G9%JԧU+i9%Ԍ7 +|9%YyV[+9%|Hqڞ$,9%H4ƄM,9m% !ƣ,9O%3Źa,:>%ږ-%:%K`-M:%}Ң#-d:$?Җ&Y-u:$ҀCە.:$Agda.:$Mł.:s$^@ŜW.:R$ $žۨ/:6$>I/;$$ /;$L[/L;# Чܒ 0Z;#Vϝ+D0v;#s> 0;#[\Q< 0;#+Kke 0;#}5Ăܨ %1;o#7"ğ _1;S# Ĺ x1;8#lM 1;#"܅ 1<"fݱ 2<"4. N2/<"Ϳ@! |2G<"sͻTH 2I<"Gͨjs 2i<"q͊vݨ 3y<"F̂É '3Q€߾6={ ;0C…6=y &"DŽ6=i FŸ6=^ G¦6=T F³ 7=G D¾7== P,7=1 C8"7=, J@7=! VG'7= GL&7= TN&7= SK&7= KO(7= PM+7= LK#7= MR27= ER07= NV)7= Q\97= H^/7= \`.7= W^07= V]&7= fV"7= ^N7= cJ7= d? 7= f97= h3 7= f+6= u&6= n6=" x6{= 'Ɋ6{= 2Ʉ6u=& Dɗ6`= Rɠ6`=* "iɤ6S=2 0tɲ6L=0 Bɸߵh6B=< Sߦ`6;=@ bߗO67=C o¼ߋ76"=E }º{06"=G ¶o6=H »b6+5n(ԑC+[5~IԸUy+85tcgw+5s[Y+4&ˈO2+4pS˚B+4[|˯6*w4G'՛-*M45O"* 4n*4^*3<?*3[#*3 Ձ4)l3֤K)I3!:Z)!3)Sp)32wͅu)2p:C͝W)2WAbʹ8)2CH֌)[2(Mֺ(92T(2Y8 (1`U$'(1fvH8|(1jpR`(1qזk:(S1t΃"(.1pxΜ( 1X}ϵ'0<})5'0&CP~'0b|~'q0w؛}|'W0ؽ,|_'-0M}F'0 h~''/7Є~'/k`Ц&/J~"ُ&]/+z7ٶ&:/ yS& /pn '&.i}'Dv&.fN_\&.\yхL&z.lUٕў5&W.TPپѾ!&-..F & . ; %-13'%-%%ZQ%-9چx%g-vGڪҝ%B-Qa%-%o%, #p%,N22_%,qV=N%,ڔpE7%V,|ڿәT)%0,Rӿc% ,1 q%+ . $+rY7$+\|\$v+M%ۜԃ$M+f32Ա$*+>5$+ F$*L) $*T@; $*de^0 $*iۆՊG $j*etۧի[ $H*C}l $'* s$*n# n$)]-F a$)JUq W$)v+x֜ W$|)R۔ H$X)+۽ H$2), G$);A =$(f^ A$(/׍y =$(d|L׭ ;$(Bhe 9$(Kۃ 8$o(0۞ 9$W(۷C 2$6(s 9$({ז, 5$(YؼF ,$'+6h 2$'N{ &$'{s6 "$|'^ۑd #$b'Bۮ؇ $B'g,ث $('? $ ' "$& 4 !$&6L[ $$&Qw} /$&wzeٚ )$&PZۇ 4$k&/۞ <$X&۷ 8$9&D D$"&n= F$ &ڍU I$%bڲo N$%9}/ R$%_F W$%K\ T$%${P a$z%ێrb$f%}۩ڗ$a$H%PNs$4%'gr$% y$%g8$$Ez\$$*w4ۀ$$jsMۭ$$=pj'$$nۂ:$q$r۟$`$R$e۹M$@$wdl$($Ycۖ$$U/P۽$$4P $#H$$# <6-<$# ;ONV$# 6etq$#v {2}ܞ$w#Q [)۔ܾ$d#2 H)ۧ$L# "" $6# ($'# G$# nC$# ݉V$"j ݦo$"I . %"' e= %" OR%" 9b%%" xE%~" ڊa%k" ڢ݆&%Q"e ڸݩD(%A"H V#%+"( {2%" r=% " \,<%! AMI%! $#nL%! 7އN%!m HޣP%!L \,R%!/ p=U%! ځOQ%r! ښq\%^! ڧ7\%P! xڼRX%8! \sd%)! Hފ]%!k :ޣ]%!O &`% 1 Z%  1Y% DU% Z--X% lC6Q% ڃbOO%q ڙeU%a uکߘoJ%I YߺN%. 4gP% WG% A L%( >I%8YI%Mw H%we$G%Zy3G%Cڌ@=%f$ڨZA%Nڹb9%=p.%!<1% vS&%jk"%Y, %gGA%O8Y%4,p %ڋ %i ڡ$Q 0$0L$c$2'$o800$VJL8$<WlC$eۉM$huۧ U$J%Zt$,Fjd$ ]pZ$xuE$wA<$ZuY.$Csx$v#dۜ$W\۵#;W#O@#I4[#DF=s#}B_b#X5u܉#g?0ܧo#F!,X#L#-3#w0!vYޝ-5!LqS:!sAg!BN!_KG+!3zP!rޠN H"Y 4Hc L(gd iYr Z~߇zv h9߫_ AyG p )+ e1I b`nx["LNR=!1U_L7mEb5OGY-T=e8D3%+@b$d-PNl ?aE @to*@4a W]d\@H1"VN$Ey,Wsj1} 2CTUL4QT D iT,n)OSyw,wFvYUq2 dgN &^ Z T, NY\ ;Uo W3GP !,  !:  Xd  J < Et x  T [2 *} t 8 s # J5! + dv >n H Fh7 } L<_: `(w bm& k'S` z~F pT} I[p  b@ UEh zI7 N2/W  k=Sd~Li] .1'8  ;6D,rbKuQU(J^m1dKo+hhq{%vP{;1 ec}cRDp.KyMd4;)'$z k#.+c{P>Mlnq,Z$A?>$cC eXz>hG-kM1}{oJdwydqam?*(aT) LdNu=<7T*X1&vyZ,XP=\} %e19"1g/xUL=-yMyiTY=d`0xoI9n!r~qyAGOt[su#hwz;U'` N KIE3l,{?lV9dG=2<: 7R>m,#5]Oi,iRi-8@`  <  $  $T  A| * yX 6 Vv W| ) rf  O s!& 5 SH ! Cd  .   k!  L(2  7,I  4c # 4t , ; 3r ?8 Hb pe &X vY l nF r4o r*^  kM # m 9 . j+ 7 h > e "J a 0 Q _ ?V R X3a L iEd @ Zi -m so !T q ;q s ] q K r > -o . B2k  ULk  c_e  ~~a tq Z `Y %R B8 6F  F8  Q+  4B_  _ek  u pj  DF{ - "r ? j T b mG3 [ hMs U m] \M @ 0\F , =@  7 : 0 l% ) 2I R Su r v| M 1_ & l7 s " C C  r uFK Qdz l*_ +4 -F hroq:)?e0\}>'bi#)'NA>+o-g'1V'^1K/]%1X/[,"!'P]I&$~*d<9h; ANLyqBdl7[+ J@ 8}3n rv C 5=  E " )D & W u o. 9S 67  @   J ]k@~d ] nB$ i  Ww V~}  mnv5 eA @RT 7G< g l owb S . 2 r S Cq &SG tM6i "j0 gkb V?.  N$? @ ` 1E| v6~ j  Wd i @jp ]*2T =3 G % ?S> tfX  8{ b Wz DpkJ JGY * 0> a ! _1t -)/,Ft0H]lc^tc/IAnC@]ssP.<Hjn)m.6dl}1 C4u.z 2=Y G%+ U\B] a*b n:. z`Y HtV Lc @T D, 3 3UYr w&j iU e& B $ &VE | Ms7 PO  }; lu Sx= /Kf  k,. OSj x"x yT _(.<$PIk nvc,JF>1/Yu6]]+:N __ ?u{6e Y(TlE=nY|(Gb$,I +3:B8-3NWLEVqfM`b_cnr;@v($wzcrP(4lBCMc1gxZ| yR}oIaM ;F722&( .':K5TjCbvJ|SmY"[ZN0X@:@^$Sc `bkly2&rA7x}NC~rk]iysgbxnXquNcvpGYus@Jco5<[l.1Tp()Jk?j 4h-c ] VS0J<I GLU'I"b,P,m0T6t6VC=sZJBs\QBf]XN^\[Ma__JV`dWQ_jSLenYCauf8]{j.^}t*U~~|PtKtE~g?{f9wg7sY-qZ)o S'mEoBo9o1 q& q#po m k  g"ea[#W&P /I >߿C" E߶= O߫8"& Yߣ3%1 `ߟ1* aߞ,!0 eߖ'2 lߕ#* jߒ2 v߃3  6 u;  f@ aE XB $NM . EL 6?I C3V O%T X"!Z d&g n'j v%t *{} &~o *+uc :4s߼R M4bߩ@ `@^ߙ0 oF\ߊ JIq  QHd T?X Z2? %\18 2f,+ Co) Rs$ ^&z m"z zq vm # fk 9Ze E߹L`!Pޣ;Y!hޒ-V!pދ M!uG!eG*!V<.!B:8!,/5F!:)B!J$L![P!gG!r M!|L!sL!gP!-XV!9L]!E޳=]!U ޤ,j!d%ޕ k!o0ލi!v3ރt!:wo!?wp!Ekv!Jbs! Mav!*YSu!7\Ky!BgEs!Ou<o!^|6}q!i2mb!s3d_!},~X[!.xON!0pDN!'g<I!(`8G!#Y-F!Q-F!K(J!D D!< J!6G!/>!&@! 5!/!*!!!!&!,  !7 H! S* e/1  tF@  SHu gSi w`[ fOq rGe |6Q ~߉-? pߗ!0 cߥ Q߹ @4#!)9=OLf_|wpb{1|MEj.[`mN =k.-WH?j  h I""&9B$J^*`4~1n{e;|I@eg-HK7R3 -X.P`^}mp ybK26qK]a*Lo=Q;tkq_%ZI9C  &8: e\!EWG& ,e .E8gVHCXR'%g],Co/w yoNQ.ps|Ua._*Ue?x E11 6c * P  Ca | " Y rT(Q d4 0DB WDI 1QU Nn[ W-cM#ihmo?&tVKtuexm.;z',y<>}Q|EU zBnu\s{fk((em!]_Z$YASXblX@i`ZR^0Ea.:dcew.IfHgsymbf"iSwg\mhv$s-|N +`  v|Pe l9f abZk Vvtu O43% Dk N :r 4+X} (9k - hh d h~ *yZ  Sk 7  *!, u bA 2X" k@v6Lq\r_m'WN{D?9x)"ih m*: 1 ? Yo^ts4 /UP Gl @: Ukk QpDG @' C)wu S\ ~k <(2 ?S a un5N4T^873]mpP7U9*yHl[-^jx cK i:@dF J$+$z0%,#l|%L,Eڌ %,K= -&,,x ~&, aJ &>-ج #']-ؒ1 m'-bQz '-a " (-+* Z(.7@ (S.דI ).`kX H).El ).р[ */zЏ =*$/eGЧ *^/N.Յй. */@mg .+/+yE +/,T +/ 0,0iR,F0k~ӧ.,l0'2ӂA,0 lU*-0Ju~-0~fe%ύ-0f-<Ϭ-0BJG.1 w.%1Uk.;1!Ѳ5/]1ОVcA/h1Ўut/|1{FpxΙ/1Rcξ2013Pc&01wFy01]%*014G801o412{T͕o12\{͵129CH1222<2G(J2D2ͷN v2N2eͯb2W2p)͢͡2`2NU͡3]2̜'[3o2̍!Zz3o2t̗L3j2;1̍͂3y2g̈ͭ*4p2>˔c;4o2}ˎm4q2,{˔?4i2V˘g4f26˞͝m4]2Dkʤ5\2=ʨ+5N2ʻ7-b5B2ʼon5A2|zp͛5)2J?N5!2 *52=^ 62p061p@ έV61:v61~% P61W8Q61?+@61jVδ61(n`$71y.17x1WȘdK7Z1|ȭΩq7J19G}7-1xw71 n_W70 $Iϔ70W 7.70 /Q_70 } qH70 VȊ|7a0c ǵ 880 D+80 Et)8/ o%ЌA8/J .II8/ ߶s O8y/ ߬ǙQK X8Q/ ߥН a8'/E \ߙ h8/ ?ߚ e8. ޓ?["!y8. ނ_яC!{8.W ދlju!x8]. g{ǻ!85.3oW!8.v ҕ"8-Fe8P"8-bc&"8-h^ǎ]"8]-~<\ǼҬ"8(--Z#8,W%5#8,cLrq#8,eq[ǀӷ#8n,.Udǩ#89,,t;#8+qԃ$8+bۅQԺ9$q8+%ۑnjd$m8V+ۙL$^8 +`۩Ԅ$S8*bB۲.$E8*p%98v*ǢK$%18G*ՌA%8*H w%8)zS%7)jȐW%7L)=(֧%7 )6:%7(VM%&7(fȕv8&7I(c~׽_&w7 ($ِ{&e7'u٪]Q&G7z'BȦ؟&87='H&&7& .-'6&ww5'6p&m!ɭٱE'6.&,Bo'6%~VAH'6%mw}'x6c%aTؔ'\6%:ظ'66$"OF'6$ɓۂ'5B$S((5#D'(5#kgB+(}5k#זʾܕO(^5#QׯX(<5"Bm(5"ʙX(4C"l#ݙ(4!J[M$(4!Et|&(t4[!0סi(L4!| ߜ('4 @_(3r "̯/ )32 C^ )3yE%)o3*̘֡:)N3I)?)3.wY)2c%͆h)2X$Rt)28)f2yַw)12c^lͼ)2/j )1cTmC )1pUրβr )h1-t\ֶ )*1)M_ )0yCϧ/ )07GVj )0n7֎T )W0+3Ϡ )#0;/& )/+2Hl )/r)oН )x/EB(֠ )C/0= ).(!ѓW ).J+P ).^2֔8 )J.$ё ).M(= )-#>0 )-[yҎ )k-N ֯ )5-)1), /ӊw),Ope), I)֝);,1Ӄ)+[1?)+D]o)~+pJ֨o);+i?SԷ)+'g )*ojb:)r*s~֯ձk{)4**r))N5^d))r }ֶ _)f)+ֵ2P)))Yp@)(urI׭:)(2Q")\(&I) (؝#)'CPF('ח1y(C'o)؍(&QC;(& I`(x& `ױ{-(0&a mٹN(%& )nm(% x{\Z(d% R׵ڗC(.%K >$($ I/($ ؆p'Y$r ۲5'$( 7Y'# V^Jx'# |n؛܅'A#S b^'" ;4#G'" %pZ&'l" ݬ&") $&!,L03&!SٞށU&4!Wumx& 6 S& sمS+&M Zߥ%<E#%7;o#%b#os}%o \%=Q,%ګ6%1 j&${307$3`ۇL$U*Uc$ a`7$dj#r8ܳs#/Aw#{M\g#yܡ<#>Ms #oA"`LݘZ"H^{k"SX2." R݌!QT"B! T[%|!`WބC!U)W!]" bX}e ac[ \n !s ftyA%5yT{eOs"WlE,.gr8&ZgVT1Y|G j4$60{x,kh += Fjjw^-^$ /?W W\Bq(|)KT\KsDK"9RE+ 9V&SJ/*l%tAmj[biz4  xZ c^x; I+ (VF xYr|R @ 00 ]pAvh )] \u h_hsy k4  O)  9sRe %<1 x9p9 GXO?3<?Of]O~uBcC'oF8{}>IMqyn6h6`cialS2.Ke{ AM4A 2 C)A Z5  A \g s    `3[ |O \ X %J dK} A 2 Jh eC "ZU { 31$ !\G& %r' j(1)/ic,:Y.@h.>'2M6iH?o;~aA'K ZDT>^ A{_lku$x5_'rdMnby!TKPxDL52@B%^v:h/kZ|50% L8Fc|qGX0F[ p&a }c1zy+ me$uhTuN?H) 4Pe,!xQ9WzylZ+C.B&H>iU! <> nD.c RF 1N^ N@  f. n/y  6iG 3 &jA U X s gW KNi 'Ee' ~1^ A 3C3  [k% & |yc @ r)t W O35 h 2xy [{ n vf)  LYGB  @j ! T) N o"  UY?  1{  m &$ 6 a1 B4 ; W`` A ~, K b2 *V B J[ $U g ` q X=0 u (P } |7 3 t~d V X{ { +El{   C{  ,28| c{v q&l cG@_ 7 cT 8uH -`> c[5 RH/ t/1* S  &B ^ 1: T\O 5}X p'l B;/w LM {`l }rzJ| Yihh CfJ Ta- (Y ]4 YF] X:nr ^V Xc^yv (Hd[ 4h> o6 u`  y} m98x 9^Rt z_it '|_J vRV) gtI zT =K?9-!+Z  d K7j $T?8*,R`/ k 8^5 Di(Y GO{ M1qP R A Zj  ]9B adF j|@` hsx lKm^ m,@D f % b?J Ygy- PpL CM,u 8|# /f&Z >_ I b / A/ sD w(F] A7} fuH =^UA  Fh ]${H 1s lr) U1c8 EH 1 RNi   ^ u: 1 ^q  lC0.  6-E\  \ I |Y w a bD,A  K$S ;\  ut c|#N d@W PZ4 7}|p b!WS /4R .   k"P'JH>>oQMZ_hp2jH! z l3HO[g;ILe@"9/wPn{:n,F3hn! wS^2"-O>'! x. `@: 6 os @ wN EW E N" 5 Y "B Z Ir c f\~ gl #2 c@ D f T e GD d jt fo /n i> r n ?G o 4; w a[p y t? wb * z. 36 u i[ q wC m .br g} B bP g Z r+W>.JOi/GyetCHpF81/C?&&rwFwis6x QD. POT $ 8'/IW>1SmH_%ZVZ5g:wn{# oDc(X~ BEQF W1 sQ}B &jq rW!6 06:n |)Q IkU   pU; \+j 3Dv. H.DS Y" j_8  -r\  h-  TOHR  ":[  j/p  8T j  U o; > Fu  o# I( %R2 D:~= w]c= Q~Gp K LT  J8 !/O WRO }nO r6P :^]R 9wT| "3RW mW5 5W \SS *zV |7Q eS<M GzmHs {+?T W71 0 ) $ .6. YfH ^r b iQ >( q$ c/#Q9(G>HQr~.Une$c[<x6 q Z#3FBH3bb bmAT66 P((eJ,yD2ong:YK}9@&r< O<<:5&$`3 D,g_ %K{! r!9 QG 63V  bo %| n}#H Bg1s |V= ^HJ <6V< &c] lx u }9 zI` m+ [k* D:<: 4\A  (S  eS_  E sj ~ %x T 1 . uA3  lRT  am7  oW[ s TT U` *K 91 E ! C'  :7O  2\n  *.| n aD @ 6Y  j  $! m RH W vc <s  < ]  ?  -4(  Nk#-  jD1 V j6 e ~; DY(= (=W= ? Z/= 3O:: vc= z F}; ^ uo< ? yP@  G.@  "B *#A LP=@ htR; uv5 [ <y1 ; d)  J/& %]# ; kZ 9}? u Z! ] -z# ; qb%  P'  e7$ 16% T! u;4 x pY Q yp 2 T  'b C! +:? Zo zv!  [5 h 6Y I  w 2 )  eV @ p*+ MF "d y3 |2K b\l Kv# :{v% "TU+ 19- ', 0&/ HG, `h1* }M+ v^d( `Ax( J#}* 0`, O&, O` VAU h,E g2 R## 7# "( 8 ( J' [,0, tGA+ ZMz- o_c/ oPk0 yG\2 /U GN L7 To [ ` lU v ,}/| ~ K~l  pkxX . ]TK I R5: m Ax%  0P  4!-  ^  [ ? -9 ` @  Xb + ,hH . M{,w 9 yq_ ? QL C"*1 JL Qo W?b [t,7p gGM m\$ qzu }M)^ jOC |z_g y;9  y&0zBX|3ix}wTBI}}p } Rt<4pyI mjkD`VY: +OY= Gkc <=^A2fJ*0`2-b `":(Ai#R 4YcH G \ue !liA RLs 6af@ ";Vq m@ 81 D. vhCH 0Wx &t^ BCr ^e |Xu5 nTr Yo5 :QL fC{ 556 1& ^ L Sq M~ Zc #D)$iC )wZj 3A ?m B-?Y H_~V% LL R$ QGG R-~Il UZD Mi M`/~ J> E Bnq @>-: ;prq 9 T1 7E 7Gry 9'z`J 7` ; R <S2% 8p.m 95> 2_9 *XL`*OY x 8.TH#{* 2jZ ::[ C 1P5a ~Zyhd h;5 xj> 93k uZo[ *E* 0Ts Et w r$X  ?e { V#.)60aVF WsIkkBq55toy^ ,?9 ~c)PD*pzCSS&-4ZjDi Z+Pn>=KojIUl? XL!fl.3 ,4K=SZRJzjw*UOpx'hK\+G.3Q_J`O k| ![QR*BDBJ\ s$VJhF=ORh ?xw+]CH|z3Gn 1$'o9.}CmE8ni`> tdu2 Lih| +_Q 0<5 'l+ k=h )~ N J k% $~ { 8^h M FD=  Z [ 5 k" ` z} " Ll @[ \ _ mN j- 8@ i ]u2  LK( 6 0  i } ? ߷Z  \ ߉6 4 J P ( g +޿ { ![&rތ R!/Rߘn z!:GtI !D&B !Q  !\ !":kݮ !!R"ixޝ݆ ,!k"ޅlv @!"O>l [!"$f w!"~_ !#h\ !H#?@ޡܶ[ !s#U+~ܞX !#p_܀Y !#.fW "#RV "#?U ="$"S O"9$R \"C$ݬN o"g$ ݈P "~$w{N "$'nfL "$<\MۻP "$JF5۲O "$TB&ۤR "$d& ەX "%sچZ "%{_ #*%kd &#R%ܤZk 3#_%ܙTn G#v%yCs \#%e6z q#%U1z {#%A# #%zg0 #%y^# #%tX #%j> #%e; #%]. #&R #&G #&@ $0&5 $9&) %$B&&۹ ,$K&۲ A$T&ۦ H$[& ۦ K$Y&ۣ `$e&ۙ `$d&ۢ h$^&ۜ(( x$h&ۚ/7 {$`&ۤ>C $^&u۠KV $_&jۥYj $W&`۪ju $T&]ۯy $M&~iK۴ي $M&o_G۷ٖ $C&bOG٨ $;&O;5ٸ $<&D18 $,&4#3 $)&!) $#&)$&#$&'$&+3$% =@$%UX$%#h`$%6{o$%vJڗ$%^vTڪ$%Ljl$%0W|$}%Dێ$f%4ۥ$S%#۸1$<%O$&%i$%"ڋ+$$b۬D$$G"S$$*?q$$S$$nj+$$XۋR$g$?#ۧ{$I$u*.ۜ$'$T6$$)D$#J. $# YM/%$# gx^@$x# lە~L$[#r ۺܢ^y$/#D ys$ # a$" r,T$" ]VKG$" H|r8$r"{ 6ۢݗ+$J"P %$"  $! # #! XT%#! &܈ބ:#g!j :ܭީC#:!A Q]#! ] p# q41# udaw# ]ܓߗd#V U GܾT#, , 7># !$&(# NM# zz"hi ݴ#"59 -" 7 ="LB:U"akc`"}zݚp}"JYd""rM"c09"UgS"{;ݜ "Ok.!"="!34!J]:!hޙs!Fp0r!A>U!A S;!ހKg!e޲yy!4r 3i#) Q5W EM߈I U*k ]~s 0 5Q |+2 g߳[ 0)[&15!Ln@|jEDTR]`BjJb <rQ~9@yaAziih^8bF&T$DDW1 ykc#)& Oi4, m`cm},B,H1##;h5L{6aPHWX\{dp ToPw0[^ o Vc&BXMQ=nA2qer FB-"V"]"~7V3CXASz Lo"UdIYp-f}D"u a&- ZFO_ EiK G7g -G K;  r` x & E+ I?6 `qF?q Xl) UkR *(q1 g( t q` ; j"  ]]A  "Lc[  ;}# ya 0O \%  E[" 59P & 3 YP A. Y[++ y @^ lU& XSjc ~; uT(' b%d G|8 5P^  <=A Vp`t8E5rNicd9LyL{0'f[UU2>V+'(T6D^_e)oh3.iCMOQ{!r7^QDi Lv59yp@\hr|^JtxOAb@:/6+S<&sdr 8B* E>@a+ciw7UF`F'>N.Z2eHwtkr#{HyAN hxAzkzj_^NSEDxG|!0>V&3%X- v%%o4M0\n {~tp<JJk &: `$2 3Kk#"'ZD_+sTE~3f I9e;WD21GZPK~}trS UKV, *]G aZ h%Ow vmF| {co` SOv k'w M{ 2ނ@!}ބi*!yތ;!ohޓ:Q!j?ޚ`f!aޢvw![ި !S\mޱ>!L?T޵S!H(N޽t!=t3 !8T$!1:<!&[ "!w".#"iO3" FqD"2K"oY"D  j"3,5 h">W w"Lw "{\ -"axm K"@jz g"~"h݉ ~"oy`ݗ "b_Yݥ# "TDOݱ3 "KKݰ "CO2P "0<2a ",-n ")| |"!ߋ& p" ߗ> _"ߪ\: P"ߴsI E"݋^ ."c ݭ{ "E} ",k ! Q !9 ,& !% EC ! Zh ! rއ !m ߄ޠ# r!Qߝ= V!- ߴS F!] -! v ! ~< qV _%3z p H*Oߡ P 43l 0 "7߉ e  B߮ B D2 ' OY*  \I b b8W ? vai  ߓ s Z x߹1\ 1 lZG  \- \ LL 6 Bxo 62 -D ? j{ ZI9 l*l ~ ;u7 O\_ 'uI[ [/& mEV;Dk~7:P8!cB q] Iyq/(k3? 0 (W,HyxeLV.llQB]7d@`!"< j(M9-_Lja|p cbtl 4dTio<'.+>r\sPp5 EG{W408=Ib]VOvTzHp,pjA$Q /LZi~ tvu0 (A tk+` pD -.] fpI hp\ '`8& =w! f"* ]ef tEa9" 5A?n Odu_ ev vH(c  lau e.Q9  @r1Y nr =?. NY svL 0%y CotS ^4Mu w9nJO+wS]7a3v)Tr$3 TFd9bd__&j$rsadV>H2`18r2^$ 7M[su^@`*.[3voh _h iF;  Ymc ZyBI 'J Y F+  'f` , |C:Y 3I' A`h u!&r .Il ej~^ i rT C )B R (`  m'1  ,T 0 Y +f tC HB 5 S H js i}%  C3pG  [n) ;z = Q W]0 1 "  mX p2:YU/O(OmW^NXl'> ncf2T>L[F;~3v+a X|I 3+ f 9_ ,}-)!CQ޺EI!Hްd!]WޘE!lk3ޕv!nOqފ",2xI" rq"|fI"GW<"ZFR"6=k##/'b#iL}#Tuw#9nB#@#  $2$.IT$>`m$U$&YWi$2@>y$7~'$@hڷ%NXڲ7"%LHڰYG%Y6ڟx_%c({ڠq%agښ%m Kkڏ%r/Sڌ%w#Dڅ%-} %s$% p.,%k;H&bEU#&iPe/&d\v@&ceB&xkmJ&rfuP&bh{Z&]h[&Zga&yJeo&uHci&o@it&i5d{&c2it&]+p}&X(j|&U!q}&R"q}&Q"n~&Qq&Q$py&S"r&T#oz&T*un&U,zp&W5ya&Y<مV&x]IهK&ycVً<&ohaٕ0&jntٖ&gxٝy&`}٢e&[ ڨuT%TڮmB%Q(ڲe.%H?ھ[%@LڿP%?aI%2sA%.+6p%)90a%M(K%g7%y{)%_ %  D$  )$ ,) $AC$T(]$cD}u$skP$'pa0$7c=$@L#*M8##EV*#Koc}#unyb# uW<#܆,#t2܏"mC ݜ"ZR/Bݮ"Mf_oݹ~">xm]"+q=,"V ! F!3? 0!ir}{!&TT! 5'(!&C @$I SH:Z j}eei qm>Y ߂Z / xߎ8jK"\|IlQ ~-fA3?;K/gP!3i[[R2 8`$/Q 'f!H9.9pK|G\FcLrz~mv4g9]nI vM#0 G;Q ' P  =  1 d J 0 Jq nz ! !mK  +0G  c@'  NK S `P + n J :~ we Co ri cX ;[ I( K - A 9E 3 pow |*# ? FK l ! P3h mCHw #J - E:. =HfF hZ2_ gC +wm Z[u 27Oc gY XH 0!6* sw*B $MV Sr _ 7m9 c"X /5J 7:"! ^A -N])bU6AbZ`r~D|u{+n^yih@{?[$KK<1+3`$Xg 6e7M;Yi&0,S=wNuJeyv[TpLh:B!z,|!h"L QIs{=gM$ U 9 ,B&7#h5@>KeFda4Twh[H h`0 Ko^ 4se y91 f}  ,{q 8LxK iht+ qc sp6 W$g ?Bb )_)` [Vi VMm 5U1@ ZT  uY ~%\ Z2Sb :K|dv _iR znx# .ob  HwN 7k}5 _! fu}q GkF ^$ S I-4:D>[0R]zu"cfIu>" y nD4aFL 5A+_".(SZtZ  PM%egP3 iY?P}Z )1D!r<'k)x*=n@-03!^A8Nw?TdI S>^K\wqfi@!o.kvtas{c..ttWek2` AUXCP PwkFOc!=1B4')tp@fX6U$3/"v ~qbX4q: 7j$~n ,sF4 5& h O=m9 EFy ) MW FU ! ZLU s azD Bg. T l}Z4 t K =|Q ~/^x na <t8f 6\` \j\D1XQ}SbV R(+! Msq rBoI /$@m N7Ik {/6 Z(%  '/g we =( "  e HyF 2I  )V5= )W| V*mXQej *[" !-+^޳P!+Bb3ԍ! ,d;A!R,fވ",gӺn"/-qfnݭq"w-f4`E"-g7#B.<g܌Ѫ#.pih9q#.l0##^/ngE$/DqСm$/{spf$p0uW$0 uߊ(%1/ vή߉m%s1 xrVX߈%1 y5,߆%2 {ބ&w2>!}Z͚ނk&2~!yjށ&!3!Sٺ/ހ&n3!Y!'36"˯~H'4h"~'b4"Yb=}'4"# |'5#y$(R5E#xʐt_(5#,Qo(5#].h(56#6מ_(6>$RɭU)6h$ɀL/)7$B@f)P7$~փ6)7%hP-)7=%Bȫ#)8x% ּf*a8%Ւ>(*8%SY*8&*9A&bƷ*L9Y&@ՕƎ*9&TV +9&=(+9&C+$:&Էz+n:''wz+:H'gaŨ +:i'9z+ ;'H+,;'1,`;' z6,;$(IW,;<("Ķj,;b(#Â,(<(.e_,V<(6VӛB,r<(@I~׺,<(M$A֮,< )W$֤,<<)b õ֖-=e)q։-G=)}Ҷe}#-U=)ғJn3-=)b\A-=)PNK-=*2?M-=4*¸.b-=Q*"g->i*j-)>*h-V>*{қI-i>* }җ6-w>*lq->*'iV-> +2fV->+Af:Ե->=+Sg0ԧ->D+`h)Ԛ->U+ouԇ->p+rw->w+zk|->+qYz->+bJu-?+V>e->+ Q,`->+9S-?+1 H->++9-?+*->+) ->+9ӻ->,Rӣ,>,gӓ,>,v$,>',7#f,>-,M$V,>2,jBC,>-,L*p,>:,YU,>9,s>,>5,},z>E,!ӑ,f>A,5Ԡ+W>E,K-ԶӦ+<>M,hIӎ+1>I,yf}+>J,ce+=D,½MD+=D,.=+=9,V#*=0,n *=2,FՕ*W=!,oոt*6=!,;ӵB* =,Yӛ*<,q))< ,<]\)<+e~G)n<+֯/L)4<+))<+ 4(;+ 0BJ(;+(gt^y(v;+CףfԳK(E;+X~Ԝ(;x+rŌ}':n+A<Ŝc':X+mhŴPt'|:C+ت0.'3:*+&:+&&9* ijs&p9*,٬:0&99*BOճ%8*\,0qՒ%8*~|rdžsf%n8q*گǞY.%18R*Ǽ;$79*H>$7 *{]$i7*ۻ $7)3.ֻ#6)R`TM֥}#6)fܠl֊1#26})əf"5V)ICʷP"59)ݒ6N"@5 ) !4(3?)!4(rވRg!P4(*} !3o(K;̦ת 3F(_]߂טy Q3(vy 2'J1]2'YYK82'͐)1T'f q1,'au1&##0&>+Wٲ;0&[{υ٘]/`&vSн{n/&&EX.%-(??.%]'/.%_ Ҡs-F%j"i-%,$4qMO۽[,$KӃ۬ ,c$^Խۗ+ $x|B8+#9f*#2VsRr*j#չ7,)&#H)"R1}!)"(y (^"'/($"(z]'!<F޶7'!WMَޡ&X!giސ7e&!|v% zi[^[]% ڙJ$G /H5j$4#Puz#h rܿT" fY"7 X_x!F Xާ`!'` 5 t oM6W  ߚt9 t}_J8 DM ;r=HF '  +< 2 ~C Y $ v00[ 0 v ^> ;0 xP ; W K zH` |? k W ;u ^u -|   F9wq\ i* 3 bt S@F YMn A2D x7?3 +0 {nE&KB  lh $a g Gz pBS 6 - :t c mi # M8T / `l 76 |I @ & \ cI  Q F/v T 8%Y  _ s&s^] `  f ^tcc=q l  m &" t ?n3 x ! { sMXR]o }   f=o&  , } ;} r$PLz t rgJ Tr C}m J 5i \Be / *`  V7F\ V e tr]R K vL  8E ?* A 8 G 31 U]* %p` rk VF  ae X  % .*   ~{ [V  xI C $ 8v*'f 4 b\O>^Qk G ,vRD ]:# j I:vuS w $r:\m qfa =yT @EK #<? E^'2 ` g& z EW  i F] A  (8  e 'B * ' Nj} 0FE  < !v Ci q! Me EZx 9Vgn#  sb OW>s Ad ~j S`hzU  @ <!B/ޏ0 z!d> x".ݸ &&#Dt#l8 $G)q $? n -%)Puߜک %c.. !;& zwټ~b!&q do! '<ޗ[!'F}IL"Q(݉&="(F ,"P)\>G#) #D*<NyՊ#*?$b+#fԶ}$+u.lX$A,A m$%,QS҅W%A-bژ.%-x/ѹ|%R.wOj5&."V{&$/5WهЄ>&/-'(0أ\'0fY ',1ؕ(1-0ά4(2A(2*A-(3N9̌)U3Lk1])3 ey˷ߐ)e4u yJ~f})4 e*>52!{ʓMa*5!(P:*6!Nտ&*6H"?%+6"9X+W7" y+7T#Ez+G8#3Ԉ$,8$CC۴J,8S$Xӹr۞,9$kLEێ,9 %y~-;:W%|jhN-:% W-; &]ҾF-w;_&*Jf.-;&=.Q<'ч[.$4 rP$f>3 *#=3; CFj̷#=|3T ܜ›̥E#8=P3d ̏"<3~ Csv"_<2 AiG"<2 )}Z!;_2 8ޚK!1;2 ?S!:1 \=7!q:1 ,Ň+ 9W1 =^ 91 ߕ  590 R80 vǜiY8E0 #70 J+u7/ b{y7i/ ɸ76/ /6. Sd5{. qʫHZ5/. 4- BgSg4- ˙V 4B- ,3, /D3, v͈f2W, A2+ 71+ io΁xZ1Z+ *0* e>Y0* ]Ϗ/G* J3w/) J .) ZTѦ"y.6) (5.( EV-v-s( RҴ3 -'( &;G,' eE,g' <(P+' {Zc>+& si*T& x=*% [-ڄ)%t c֍ږ2S):%` ڨ($P 9^Q۹o($> }ײ['$( b. a'# ؄&Q# RC {&" ^*8%o" @ڹ?%" U%! k3ۏsl$>! މ5($ m Fߡ# Q 1ܼ߿$# 4 w%p" pz4S"P ! 7w^0Z!w m޴Hx  U,k0b  ߜ:h %?J ^b~\! :B 80 5O$_.~bMrt%AFv [5m ag8{ `E> ef * EW9 (jg ixW NFH! |hs l"y LG< 0vx 'Z,U lwh( GwS J M .' V,I 'q x Sktb H(XE O)0 1a zp? a= =*  FxV JT _  fs(4  $j A  0Z  (\eK l |: K 4:/  $ B rh b qj  l ;  ]92 r y% ,k  +Hi WH< 5 _$ /!z i  VO1   B<) tv r cf4 j= ( GXE O- I@6 5C 3TqU zhgc 7,o VRF zq 5Wb  PMK  1{j t@y  V6, .D' [=  ]" \ Lj" z ryjb 7a a'>Q A> )U M 9 Y R %W u N|r; 0MN /_N0 s  >Q ; u  _ iS^ ]wU V_D2 P/ * L'pF JvQf F6 G_?@ G,{ Gd9NLsUtmQ\CjO>'y%%[s mb?^A Kh > N[dy$ 996  !  nn6ko. L57? i[ 3:]q yvb? t7" _ 4]%N gB@yJ t/0r 2S $nk' ^ y (8 YP (Z e+ FY =# ^( D/a) |`J(  !) -: $ +|v N`! m p  1 B y2 ^  ` M0 + nj uh D 2 . !Y h 1g @ F u-l Ut} u fJ]3  }x =Q e 6 LDN ^ - VKM 0>C  %sV:c FS$B p uvw  aIUxX  ' :; !! !jFr=!&)O,"Nݾ}"vl4Yk"Y F2#$9ܪ# 1$0N$DZ{ۄH$Yo)%-ڶ3x%taVT%8O&WHق&m5"y &ا8C u'`DV 't (PFuߡi (V5h (3;֧6 I)r )*- ֢!*`޸Q/!|*E=M!*Nl!S+ޅv!+L[}*l{!,Xޭ8!,@M_Ӓ!,8&!6-#jގқv!-OA@!- "G.p/݀K".r>r*".4 Ѝ03"O/ M"/2!D%УަY"/!w9ed"T0"mϳ"0" uE"1"Bmܜ"k1V#RP^I"1#B ",2E$4ݰ͖"2$X#;{"2A%̍6"A3%ݘA"3%(3̴٩ #3&@\#W4&܆%#4Z'4\/# 5'fܼz;#n5Z(ru89#5(%G#6N)PܨiֆL#6)kCP#6 *ɝV#'7*@ܢՓ[#|72+eȯP_#7+AZ#8 ,-ܸǬӤd#s8~,iXhb#8,)]#8W-kҹh#i9-fr{c#9..BƟ2f#9.o#b:*/RyţЍm#:/HUGq#:/r#W;0A ܌JϜx#;0 J`u#;A1 sw#=<1. ܘί#<(2i Rèwx#<2 +#*=3 zܡµ#=|3O ~cY̑#=3 |$<#>S4 vܳj#n>44 x܂ˮ#>5v t6d#?5 t!#N?6 oܕ#?V6T tLlɁ#?6 w#1@H7sܭ#o@7<v/Ț|#@8';#A|8پXw#;A8ܷ u#nA%9k]ou#A92.o#A9m#5B>:2ܛzşf#B:\Td#B;)X#Bf; UP#CC;nܙoO#C4<`9?#C<*0=#D=Oλ•9#PDe=ܝuZ-#oD=o" ,#D>$#E>[b #$E>ܷL#tE'?f#E?"@h#E?N #F'@ɹ:#VF{@܎g #F@f"FA\ (|"GvAcK"*GA͸"QGB݁"GzB_&B_"GB.)-K"GC9෿"AHxC(Dݯd"aHC^L݉6"HC^Sϻ="HcDc!"HDoE"IDQ~ն"MI8EݎJy"IEm^j"IEO"d"IFHW" JcFiL"JFеV5="NJFݚ."oJ&G+݇Ѹ$"JCGMg"JGDCO"JG,!JG !J@H)紡!7KH]*޹a!LKH=޴4\!^KHIނ!K;I[]!KgI*iX!KIY|+A{!KIPo!KJ1]!L5JⳣK!+LJ+ųqC!LLJKޫG.!ZLJxޞ h#!xL Knִ;!LDK]!LfKS LK/ !@ LKX LKy"u M%L2㲹@ MWL:۲" /MeLJƲ FMLY߲B [MLD`ߗ+ nMLZtߑ rMM~ٲ\{ M>M_Ah MbMgY MzMHiJ MM# 26; MMA 8/0 MM]  M"N ұg M,N ̱X NJN .NzN 籀 $NN ڱi#NN!)ޱH.NNB!3)FNNW!E࿱޳8NNt!RñzިPNO!_ࢱϰ\ޚ`N@O!l਱DސWN?O!u1ބpNiO! yvNO!|s}NO"~fcNO)"yC\NOC"k"ۧ^MP$a㧲B%ۗQMP$m㸲@ےFMP$q㹲Oۉ@MP$ͲT|'MP$ܲ`x*MP$ٲ]jMP$m_MP$tRMP$hBLP$5L~P% x$LP%0wL{P%= LuP%LLtP%ZLbP% cLYP%~LIP%~~LFP %'䐳_L1P %-䩳ۯ\L$P%2䣳֯TL(P%;仳:L P%AƳۺ9L P$K̳ڱ)L P%Q߳ڪLO$^ ۚLO%jڕLO %oډKO%%|KO%%3zKO%"3pKO%@FkKO$@T kKO$EP eKO$^peKO$]r bKO$jy!cKvO$t1^KkO$3\zKgO$䇴6_{KWO$䋴AUjKQO$䠴@V`KDO$䙴FUfKEO$䦴ILJK3O$亴ٰPOLK%O$䰴հXMIK(O$ƴ_N1KO$δrQ4KO$δzV)KN$ݴ\"KNk$(]KN_$1jKNS$FmKN?$QnKN5$c} KN%$f~KN$ {ۅJxN $sےK|N#mܕJmN#hܜJVN#_ (ܥJ\N#V/ܰJDN#NƱDܴJ9N#IDZRJ3N#6ر`J N#.uJN#(JNu#JNf#JMY#$JME#JM;#%+JM(#(FJM##C&JM#.^0JM",k9JM".r+QJM"$B\JwM"*VhJhM"'n݆J[M"rݐJRMr"i'ݣJ6MV"NβݾJ6M>"<βJ$M."/J M"JM" JL!JL!3JL!-J/JL! ?h7JL!WVJLi!mpJLJ! ||JsL.!uޝJ^L !TߴK]L EJ=L /˳5 K9L dzLK1L ߳c KL 쳁KLr > KKX ٴ O'KK< ޴`KK ش.߇8KK n´3 9KKbдJ%5KK;Ṵ\KVKK᧴\fQKK᯴~]KxKa4sKvK=VrKXKo{KEKK4KZyڴ@KKFr`K K1yKJj^ KJK[ KJ,];G KJ8>j KJг!,LIP)ݳ-!)LI!ijF"JLIݴL7"DLIݼo=X"PLIݢyh"gLIoݚ"hLkIkSݑ"vL\IF8݄"LOI" x#L9IlͶ#L*Ip8C#LIUai#LIT {#LHhpY/#LH6@<<#LH(EW#LH>{1$LH-^5$LjH1S$LDHf*ķo$L1H6x'ݷ$LH Q$LGB!.$LG5`%LG C%LGmb4%LG?d%MG|%MhGt#% MGGJ貽V%MMF²D7}&9MFn˲im&=MFt4ٴ&PMmFGٶ&?MFFؿѹ''PMFئ;K'YM Fسbg'IMEر1'WMEQcاE'SME*Bذk'QME,د'OMgE صJ(MM@EׯѺs$(LM!Ew׾9(9MDCƲ!h(BMD׿>v(5MD۲k0( M{DXزj(,M[D~<۲(M3DV$(MD  )MC0+/)MC\WF)MC~f)LmCZ )LHC3o ļ)L*C\)LB.B)LB,h)LB-^*LBG#.*LrB8D*L?BCڽ,`*LBMby*LA{d0*LAanr\*LA,ZՍ*lL[A@՗*_L4A?ճ>* 8Kg+ K> fpb+J~>y 3q+J:>B L{+J > q u+uJ= ԡR&+RJ= ~ԽR+-Ja= 뵾s~+I#=y |+I̳c)A39l;)jA?3־)A2 0(@2!c4(j@N2K׽N(@2l e{(?1iw΃G(c?X1oΝ#(?1Yϲ'>0@%uo'U>a0S'>0|$ n'=/؅h#='H=e/> '</ ?R&<.;ٝfk&) i1%Γ&04%Rt0T0$X:?/z$]лFN/$R;V.#wїe;O.<#v-"N~݉"-L"qݖ9,!dDޢ,!YW5Ծެp~+!Q߱ + N9w߳*P KyߵN)LlSZ)N8֤()O*(Q~'YRpe#'Q,Gz&}OKٷ%KN6t%F~$@B|Y1$@R#?2ܹ#CN2r"I݈!JMYDG!Uk i\mc' ^&"dMu-hfXl\mu"~61}msXB_gCld\ew{V7@*,LxE >&MAec5"d!)  # L  >lI NG Pvf *$3 0Ci k8: eI5B Y{& EFe {[y vJjw*tWL yqA0^ }/T   % h< Te A  PZ6sW $  ! Ade R5U~ z hIf 't0 Fuc\ LW[A6x_%N&a@Q %-A'-D!`{\^2c0lii'i(X k BTMp'^at]S ^]sa[+0>ASuVsHNvr( UrTQ` =  s*Zr `Dm %!\ t, D%KJ - |>g 4{  v }T*d$ A'Z *i$0 Z R @  ''  :> 5P`Q /e Oz Wt9 eS mHR@ 0 :`T i (: ci ^#y- 1fnD 7)V Yd 00y A{b hlFk6 [ GC4> _.?6 N Gga  K  0 0 7n EsA  ]EN & Z  /m iN vx @v 5m  q() L ` Q W_ N C& &  4i WP (@  >3   69  Sd M{  JG  % a s ;1 ) tU z . Qf# y `9'  ,+ % / `4 *߾4 t Sd~ߟ7  l=I6  M8  !35  5!߲/ 5 k! |, _ !-O% t !J,ޤ !rb{ $"DY F"8߰< h"x "I !"0 &!": ܭ ?! #i܇ Y!=#ޱp h!c#'ކC z!#5x_ !#BnA !# Pi( !#3dUۼ !$RsUۢ !$kPۆq !=$Hޱ_] !X$JަFL !a$Iޑ,4 !$Ms !$Lf !$" UT !$K*`Cۡ !$jHe1ۊ !$bx,o !$#Ni t!$4O _!$"4 N!$ :!$  '!$ !$.8 ۿ $S_ ۡ $e#ېq $F kA $c O $ 8m $%G $Z$ $ ~!q $ /@$<;2۴$W\@ۢ$d(Kۏf$^Vl:$e^c$rG4$7(r$`d$FTI$ [7$$.!$82$J)pܦl#if܌:#{;܀O##S` #cpE#K7Im#NI#& 1#c~#&O,"C$ݰ@"[7Bݝ "lzh݊["ek{f" [FD"MK"*)4!nt!4=.!nB!)T^!?+޴E.!\ޖ@!x>| /;hY kL8~ -0U m3$m) 4 ([DS$%M> INqe[@%tP}kZj.8U"1OmQn9 X '$Z.z7LK9\^dJl&kKEHu{{ _1! `O d 3e'  C ! ew` j  ; 2 dl CT 2 ] ;{ { `0 x (| 'dZ :H] &.{` *H# QLA"R+7`TJ'c^bpm]j4VbjF-R'k:;r+q0g '8'=ooS"A;n uz%]DCf9U_(gF>f%f)YI E9z?iz](i1OL.RC#qZ5AD[XqxnQ~"u8&OF8NP$[' dQ > ; Xx 89C qh{TF U}F '8=    DQ/ #  ߯] Q n e?+ f ! !Q%fߦh !_BB !(%ݭ` ?"߄1) !" =!#_v S!f#@i !#4u]ۘy !B$BޙEX !$C) "%[m )"j%} H"%:! s"&|iyݥJ "~&S^^ "&&5٦6 "6' ݗ, #' ; 1#'F)׊ Q#D(R~ #(v`} #)[H}_ #V)j: $)  %$ *YՍ I$Y* n+u$*)v$*9@VԪ$I+W5ۆQ$+q1%+s,%5,Vڥ}[d%,<0D%,i0%-/CںҮ%- NS%- &.!L&e.Q6kцx&.Et5Y&.RR&?/ _!ٚ&/FjRУ '/vslC' 0|)~'m0hqu'0)NDϽl'0_z`(J1ז;V&(z1lJM(1 ?{(2Tp͖6(B2vQפw-(z23b=((2%&)2%')3(_)^3H|̤,)3nkP̃.)3A#c2) 4.5*K4թ 6**l4q8Z*4/ %˹?*4W bʣD*5i ?ʅM*V5 Տ`_+5 [Qk9+5 7<|\+5 x'ߓ+6 fRߠ+:6 Y> ߯+U6 Fԉ,6!5^),6 !(ON,6(!z,6@!pȻ ,7D!Mȹ,97O!-ӲȨ1,_7^!ҍȡH-7a!pțV/-7h!]ȕra-7k!0Ȓމ-7q!nsȏޜ-7m!XRȖ޸-8k!:"Ǒ-!8p!" Ǖ.&8e! ǝ *.J8g!ѧǗ" P.^8f!ћǟ7 n.p8]!хǢO .8]!`pǥs .8V!6WǮއ .8Q!n)NǴޢ .8F!J> /8:!,& */81!- E/8! l/8!> z/8 |W /8 d'z /8 tM;ߙ /8 \:S߮ /8 A-h /8 ǀ 08v Ǔ 08a ǯ: 108A ^ N08- { U08 s' v08J}  08(r/8 08 `7Z 08M=x1 08x9LǗM 08Y2WǷj 085~$l 08Zw 0~8Dϒ% 0_8ϫV 1R8εx 1<8vǡ> 18Gj )18 .17a ;17>#L E17>vR17xTȝP17NtDU1z7Βkc1f7Χ#Z1E7hXj1#76Ȋv17dȰr167"%16z:N16}]Dm16|΀y1m6iZΪɳ1A645~16s15*\,{15KʎHv15Zxpm1l5tέv1B5JEj15(ˁd14\;^14l=P1{4Ο:ZG1J4ˀ714_h ̽313,L3#13,o81q3Ω~1B3e̸603#  h02]W02a+Ϙ͓0G2H>=02R+01jZf01}ϗΩ2r0D1/[[01.sI00To*00gZϢ0@0 600 <//bЏ //N1К:/F/LZ//a%c/.yo~iѥv/y.<UШ]/6.;38/-={"/-lwҲ/e-*+.-/II.,MLӃY.,Zrў|.7,s`.+a-W;.+Kzԟ.]+61-+$%-*HUf-~*qzҰմt-/*-!U-) 5+0&-) ґցQ-J)b ֻ_, )( 6w,( x_zT,`( aטg,(I M>,' 4n4 ,d'  {+'d 6ٺ+& np u+[& \K+& ږ%+%D y<*U% :7N*% itU|*$f lE*K$ z*#-R)#t8քܚ)J#:fus)"Y/%G)"Rցf )K"oFݸ(!(8B3(!8y׃1g(E!)ކ.( ^:߾' %"؎'A `P'IM'Sؚ'4   &J]b&z٦i&.C&&](*%ڠX(%6[3%9T;X%ڗ:#%>ZC$9NE$JoۘFu$C G6$MTI#!ܔJ#GdUG#FNL#܊3N#UkL"oA5T"2sQq"^Q4".aS!*}N!^Q`M! % K=!zFM !h߼sI nOI (jM` u߬F) +^I1XJVaDF&GL3/FpXEs+D WhD$ECU=G_@4$>dgg9|l(?G  <  egT g u ]c# =ol? Pk_ 9mv! |(vA `ve H{ 0r~ V/ |7A }!K x +` w<r {H/{ u{[G zgg] |\un wO zvsA xib5 vZT- tOA! r@0 q4! l& q  p n*, w42 t =9 vF@ yLF vRG vYM u#`T x'fU w)l_ {*rg })vj |-|t p){ {q- tzm2 msf/ hlg5 cid5 aea1 aa[1 bd\- faW( i`O! lcT paK saF vbJ xbB ~b? b;| d4t `+l `#h %a_ 1[Y =[U CYO NUH \UD `R> "rP3 -K|- 7Jn% EIY QEP [HB _H5 mI( pN" qO ~$S ~-V 7Zv E]q O`m )Ygg ;ijb Aqq_ K~{az VZm{ a]cp f`Uj rUId W~Ab Ov9a @`-c 8X&g *Ig 2l ' l j  k f c  "a ,\ !4Z )>V )@MV -GWR 7VbP AlqR MtwO Rx{R \ltU jbqU l[iZ {|Hb\ y@\] p8T] c!F[ ` <08 I25 S,%4 g71 n>1 uF0 Rp1 Zk. cV- rG. {;) "*r* ,g) :_% :S' II& UA& U:' f..) o=), xA$. Uu5 af8 k_9 zR~> Bn= Ac< 0Q< "#<: - 59 87 G 8 O 6 V6 c7 g2 n2 *z0 (6z* &>m* 3Na' >aV% ?fN$ Oz|A$ Vy;% [o6" c`+% j\($ qQ!" tE& v6% u-' d*  X*  X +  L*   G+   C' & =% &2 6' +6 /# 5= -& ?F ( JI ' ML + VQ - bU / `W 0 o] 1 {f 1 |i }, v m*  h|$  ^r  Td $ I] % CT % 8J 3 )B 4 '; < 1 H & K   R  W  ^  \"  ]' a+  W'  X'  W-  O( ! R3' * Q=5 1 Q@= : SQN C VZ[ G Yaa O Uhl T [ms X Yqv ] Ro} c Vx kx Mw qs Iu |i~ F ^v >} Xi : zHZ 1 v9O / r0? % m/  h  d  f  _ ! a * .e 8 B)] E N5b J \ > o2n & nR  s<  r$  s  &o, 9s= /KuN H]s[ ]q}i {}ul y]W{ oCBw Y#'t H n ?l  *g 9h P3 a lN[g`Y%EoK2 PCE0:V*\,"pOl5~ RogtYB M'e=F +(-$ F3i: =CjUOM$vV'x=`aHfEY&o#qMw ~f{z hfs@WDm^I(Z>jK*A:8 $[%fG Gl&0X%=8//P<XfJ|+suULSn`v(s_sRN~ 0>.l,W]t*X QIYv@9}:#^407D&,UIkrJ}}yk_f:YT/@$2,>J1 JqUTy`p`,2Aj>qXu"'t~HV}be}kC{`1y=~!H:x"~[um?sqD}ci_`` K+XD 2RU Ki IH .'I SIB t&cB Q}?_ p71b Q4: ;- (' L=  h`( I`S gC. ( k C I $&o'z @)E f7. {S2y $y7W rX;: T}>#o 3F; H *(MB1KVchwYy~bx]Zia02p@ x/3}bEy`hw%|ArpC Lob.l|.v de U`77TUY$(Ka= %=0K#,uoI.@ZSqh;e:c)P99Q8G]U b` Wr27 e|I 6 mh = _ gt U D[Z E |?g) 8 (A ,   >  6k ! [ Z 1 [& J 21 V B e CY { >uny  _~sR v a] ^ Q1 M !C 8 K6 ! 8"l  ]J   k  $>  4  AD & p\| 2 AlY ; ]/ qH \XT ;A^ C%g {gv 4= ~ X R 72b ;2, [) /t% OA#] xztn; VF 5   :9 cZ IEh j"E (k 60E l'5&~ J> M zEm , KL E2S( _bZ bpR 9i], ds: -|Z V6 w V j .!` I>S `$jyC }_uH2 a^!# L+ 0, ([ Q_ )S( )7+ <I R#Ob dTxl| pxq:` {};@ q' Fj -[a d$M1 ;Ec ]5* ]})w ]Z G2  i 8B p k K/ 6j \U fZ|) 8J   K 4Yvv RPBc AQ9y6h.#<Q,zl8knWDB.N$]4]#l\@7x'etelV^*\AXI-.'~b_./2TR2t:IW|cb^$8nf|XV04 5 OM ?Bn M0 Otfz 4M@Q -? V 14 JG: dwwwM , )Nf v T rtg  *c! c _Mh 9HI * Z 9p Q  d d vnG1  I ( W9}X l oakt 0, :n> z!ZU l kFTr @ 5; . *L  4 I& ~j  GF$  R{ TV  FL K i. a 3u6 =r4i@  I tE hQ e+|U Z zWb Z c +"n @x QA~ /}0 r#.  Kn GfjS: l [mR Tt) |z5 v|m Yb^| &| {NXz g{w g= Br /  .k q~ jSb c YR 8 G z ; b7  & )8  xo h+f   W   s0 n+  ,% = >vD o K{ %!CX+އ !n ] V"(}߅ݮ{ "x:Ld Q#]M I!#op9 !@$U~! !$?} /"]%k) l"%~ "E&3gD #&M C#Q'Pb܅| #'Fn #l(CZ׌T $(:8 Z$B)}kֲ $)8> $@*ۍ %*J9m _%?+`zڂ %+-~IԤs %,ڨ%K &, ӭ' _&--٥N &-U7& .h2ٓV'.Q<E'.+rИz'/Z/ P'/'#ϻ0'Y0qlS !(0h(U1c7yt(1Va(27ז͍a)2$>%) 3 U)n3sAD)45Y߹)W4Z Z1|ˀߐ)4 [*U5N!Ձʀ0L*5!(4 o*6"կɯ*6"IF?Cݡ*6"q*y*B7J#Րt> +7#.+8+$Ǫ:+W8$?tH۠e+8$}i+89i%uԲr?+r9%WY +9,&7Ŗ+@:&BԞQ٪+:&hK|,:M'w@0,G;'Ӓ0C,;'NR,;c(7iשw,E<(lӕ~,<)}gþM,*8',<>>+0Ӧ,}>+*3[.Ԯ,> ,v&n, ?M,(?,;?,0Ӫ(,?-1'Uҵ,?\-d1'҂,?-549,1@.8Ө,n@^.%CӋ,@.^JY@р,@.Z2,@S/`,!A/ rǾKк,UA/rӔew,A=0d.d,A}0GZI,A0Cϒ7,B&1Y,Be1},,B1 Է-+aB2\,Ԕ͇+kB62DԎK+Bm2gea+B2,PͶn+B2f>́J+B33**+B3d*B36 4̬*B3zE X*C+4n}*Cd4 T* C4JYˊ(*C4ռ @)-C 5ۼ)$C+5CӼʾ)6Cv5rƼcdj)7C5ʼ@#@)9C5Ǽ )6C6X !μz(3CO6 Rʼ>(2Cx6 ټpS(C6< =ɗ(C6 _'C7 <'B 7 |_'B\7\ Ȇ*'By7 *G&B7 :7K&B79 R!Ȧc&B7w hn&B8 ڌ%`B.8 aگ~%FB>8V ˽NJ3%BX8 .$Ar8Y$~$A8=Pkǣ5$A8ۆ`K#eA8bܰ;x#7A8'/Ǻ/#A8j'p"@8kLh"@9}"o@9Hެƍ!0@9*S!?*9!?49-([Ʃ ?@9ߣG2 D?K9  ?T9M>P9jbl|>c9-!7>c9B=^9N;—}=q9{(XQ=j9™ =m9AO(ÎƈjO27-Toȷu2}7q*Ν_1L7=1,7' 07F}ɍ( 061>>> /6d /6#.,ђɹv .\6xѶZ -56`<c - 6 ,5RW=ʂ( h,5hS+5Jԓ)k+M5 3ʼy*5\ hʋZ*4 7.M{)4 k,)4'!}ו˺F(P4c!~޹((4!3/t'3!H;z&33"Ap̹u&v3k"\٫fF%23" !ݵD%2"A$2(#bͮ܏$z2x#@ܥr#D2#=B܂"2#Z&G"1!$m4!w1[$ެΏ۸(!11$*\ t 0$JAi0 %pN[0-%_ϳR0x%bښ/%Q\:k/%#ڇ5/(&г.b&60щP.&vSٿa.&s3.';  ؋-5' SҶ-a'^ L|NO,-' C,'} }D':-,' =׈d-,;( Ӱ+Z(R ~AԔv-+( -V׻h*+()*(G׫:*)$s%*F)f֢_)s)sQ|D))fX>$)) ֠()mY%M}( *! Ք(@*!إ 'j*_osؑgJ f'{* o &*@>' &*z)չ> @&* . % +0cv n%1+ڽH %Q+8 ۢ$m+uyY$+rkLQT $+:#+r 3G#,Xӥe"!,,@">, ݫӗ/"g,Hޒo!v,"Tӥw!,ud!,TD4Kwm ,7D ,>o(o&,@k|e-Y q - ]"=*-^!Xޓ9A-!C-7";K҅sv]-"ܹ j-P#ҏ7u-#wܨS-4$u҂-$_Gb'p- %[ҷ--%M--&$v8ҽٟf-s&:Y-&M 7'_-o' ^:-'j O--( a ҅עf-(  -)0 !֙-w) @0-*w C.T* cp-*{ %-,+6IҠԏ-+M.-+1 u-M,wG-,`()f-,D-{-n-0V2 -- 9ҿ-.rx>ҽCR-.LIљ-.NQ 5-/bҼз#-w/t]-/${ ШSy-0-c-_0%Sjϒm\-0G-1"Π8-R1t :&-1?Έ -1P+{ ,82Ӗ͓ ,24+R ,2>;L ,3a0 ,M3evӑ̼m ,3o]a! _,3+ D,3XpL *,>4ӱ ,[45ԇ˯ +4(7(# +4 G+4Wcflg+C5Ԝ]+u5U >xʌߖ@+5 H#4+5#! ʜ޺*6!u"Mj*.6!L *N6M"1uՕݔx*6"d$GQ*6#U**6Y#M!i~)6#&) 7$@)*7j$ctֽW`q)W7$֡K)i7!%&֊ȼڵ)7u%lQD(7%2P(7$&>^8ȷٙ(7s&+Z,S(7& #( 8!'Vǿ؄' 8d'!w'+8'\'B8(dwd'B8<(سǜ&'Y8(؟;׵&`8(s+٠ h&c8)hٛt&f8d)*ٚq֟0&i8)ٓ@U%l8)+ڙ%c8(*@rڙǵՈm%p8m*ڍu@5%m8*ڜB$d8*E(۔Ԍ$q8'+gۑǿ@$f8S+۠ǟJ$b8~+1۝Yԛ#`8+ܨ K#R8+Qܰ #K8, ܽӫ@#;8\,ǓV#58~,m""8,]9Ӽ}"8,uk9" 8-*!71-#ȼ!7a-[u"ȁ}m!7-+.zBR*y.0Ր *f.1|է e*I.oi "*0.;ѩ ).o^р )-ch| :)-47 (-HS (-Yl J(-ז$ 'X-D>صҫ '<-dQҐ Q'-|v2 &,;#L &,CI4 ^&,jK &,,ڑ%^,1pڱn%B,1qӽd%,YӔ$+v`Ԁ|$+Y&S]& <^&gl%&*T%%2;%@:Uڵ%SQڪSd%Yڢ"D1%cژ$kOF!ې$uOۊhT$vۊ%^$z4)$0uk#}c!܂#aw9#cy{Y#u%#Yl"\4kQ"kf.u"e8"NYa"|gh<!Yk)!GkT!wR!Nz 4G}[ }vz߇3`g x߈ v4-paw6eo{@^i0'i wdbF 6Z -{`gX o6p1I ? ? 4K bx| m#n w'  8  ]E  0 S9 ! i Z-  X@Y9  U# / Rb  0x> }H Ql Qk V M@ ? eo# O*  GH M Q:p9 MLD 6j UMx)B_OFOxfg.C@'Nbv,192GMxR[tozy|S5.`17W\st .,* KW[Eyq{ft*,YnRV'vzI--6YRmwg."Kld\vDblsP*pjX\6 [+(> pz}f~YJ Q V6<; 4zV@  ?S; 0gR, Q Mp?rn #lN (&L ET+S yLp;9F=/THK:xkH p}| yRL l^VJ E /92P n 6s> < UR 18 $NJ }zP[pV 2t7 H~ oU. QZ7rCRO-O+:@ |Cobi7(6EE,;O^4^28s}>V { )5`rw fM8  [ !n$SN q>Rq G3 > * }$2R g P 5 w[Wj , js *je1( 5) >G ) DP rk W <; `n a h, $|D bP }=L pqm #koh Zi> c8K ]< "U[B^O}{'=;r 4o h/(\ c T4!M XI# S`K4C 5m"xSk oA|+` 20RXEU , 8ߍO Q1{ m] ?߅ ! (8!?s!Eweށb!!(#!1"L(y"s`#u!".D"L܋ /#""n#Z#>PܕO# + $ 1$-B۩i$}FV$M)$&$f1r2%j*Y% N%7![ڙ% &&N%7( &i-vL&`1كEk&3X &#&VdE؍'QCG?'Wl' d~'U 6on؍ߪ' s{7=s' # Hu'!h(T! ׅ];(!>[ޭUX(!eE( "o?=(E"Kץ1(t"4p"("32ݰ)"aݎ )#f$)<#֣3M)|#n Y)# !Rr)#/ /yܴ)$e <`ۇ)0$ DKֽg)`$ V0~0)$ dP)$ s+*$6 ڭp*%n ځ^.*J% զ]K/*k% Ճ-8H*% K#Z*% -Z*%6 ڵn*&e قw*6& %a|*G& <ե>*t& Wyw *& job*&! pEp*&P k#٘Z*&v ^|D*' fZ.*' Z0*I' Rթ *^' Y՞*q'" #Nx*'P g*('y*O*(B{%׸;*(Qס!n*(p׀j*(n]*(VJ*)<8B*)[-*)u{*)R* )& 4));־))P>֞))q+Zօ))Kpx))n\^) )H]L) )8A,)) )( (( ((<6((/k[((J|׭^v((Y(כ1L((v0{&((>m ((3 GY'(a8W>'(U^0g'(~o?l'(؁ E'}(؉'l('ء&U(U ٯ&K(5Kپs&7(@j׽P&'(Kש$R&(aי3&(hؓ &'v7 %'h=2p %'hBc^ %'`Q+ K%'s? %'ڊ0 $g'D,ۧ$ $N'zg۽p $5'L X$' $& #&$+2 #&H^O #&zxn J#x&%ܔJ #\&)ݹ "0&/C " &5+~ i"%:P, 1"%;Tc !%E1zڹ; !t%Gaޠڻ !N%Gڴ 7!%P;ڰ !$Nc۲ $QbL۫P v $Xzۨ ; v$YߝۤK$_%'۞$ddoۗr#n܏\;#sH܌##y6t܁v#(o~uM#W܀'#|X"=1݂1"za݇[}"wݍE"oDݕ"hfLޛ!aCޢI=!\qޤ#u!Y!ޫ=!Q)sް`!P]߱! KL߻b BS+R =A 2)A.>w~t`kR.j=p(y+hV+h 7UtID+-UK%`bwSr7wWp~vO:6dDV%C3=vh2dO+'[7D!NY# W8c+VG:+9=L-Ha6UqQEbg/7/Rrl7<*;L]n42~#QM:Tk) < +i/ LHM 6iA =N* >. =+ U M3 4+g Q0k lksvE FT ((_: w}O 1 "WM?ps]"zj]Nl=cFi/! F _>m4 3g T F h lW7 < `#  DL >#3C T< >x w  S M #sa ;/) Ljo ^?A tla M{& [ h0 $ IX 8Nf G;G u+y E%Q oTa   $ =TT{ `,Z 01 9!,&I&bN ({Vf,jo1.00,0jDOv0LVj19/07c1`>B0vTl..(E+d|& 3@?["i~{ZqCQD83,Mq;x}FjP7T)X gu+6u\fmyiSM@OG#99(C&Zv t}% iCC. \ ;r~%@yg[3p}<C<U $B&JNLx.oN3V6M]|vJu UE6^(;oD|3 0[)4%fg&J4Bd\ ;o5+ mBh{FQXTldFz"3@q0)ZZ :(HSu u:ABugt=g'6 ^'Zh&3DP  p|-@J\` xz6 S5^ /ea(9#:F'3I_bjY|qoa-3|G}#%it_eV2NG/0S:tZ~e d$N.AU)L!ec Jvf-5LCsFs,]=}zF02gy[MET4g" Hg fkg    . @ WJvD GhU @] Mm \ {$z AH ?mtz ' d)? m Wx :N: ?C, 7 x9v n < 6s@ -'1 & 7F N# t _(L   W  < C  YZ \  %+   B E |d ukwp  1#  3s=h \~&V *09 8Y N@ K2L; ThV _5 9pne %zJ- Ro ?I]] )ARP A 1, OeF} o > #KC!M2`OA- nZgh xo iNk b$cze$M ,58]RB"&%::Z@KSy~cxjeyb1-zDa89%Hlmxr,2# $7*'X|VX;BqAKLDUGKan|c GAhaz prJGl: qw4hr{B=ejwek'ePiwcr%p0]i.{XSJV LGD?v8[t1{NZF8;%}$VZG?<-]pktZdo~*[- Eh Rw&' -P!  te J2~v  ]a" $ 3 _z ian 4  3 : 2 LRD > } a`: bh (x M  "g HdK~, /3NXn`lIO"%]2o"T S8^1Epm9JFp GVa~^O uR>x4b1w 7* 'J[$!>&N=0& ZkE$$1*{-F7&2!?%%2O {3bWpx2Y[=<%9[rSc];?eJn6;(0;9? E~T; 6D> =|c4 8l W -t t[J -  )L$ N  ;  M5a q u7  P] *!ޢB !M1 ! H!ݣz M"+}"T<,s #97g#q=X># }B۶X3$N7$OS5ۑt%]J%7dږ%o5"&qwMk&`|kw}&i7q7'$Mأm'G,,['׆ON(y2A(T.p.(gQc)}c/ )Z$ֵv*} 1r*2G"Uuy*/+5Cz~+XPԽ+| cJ߿/, rwQ,!>t,5"mҍgcD-"T-5#F1o{B.#/A.V${ۯ.$3*/%5ڶ@/%z[/}&9=$/5'zOϔPB0'f!0&(ESσqu0(`?1M)0 {֡Ir1) a#61_* Pխ32* Q d2J+ nk2+b ͻ`3, +\V3," AҢ3|- Y&24. gH4k.c ~Rcx4/ ;˸h4/N;ЈT75/'Av5r0O9ϭ-51ɴM6z1_ _61=k͂62;62 I7_3b,L[74727b4+Dhˬ484U68h5_AW85QoɆ9E6|Ɓ}r96]ȶm9M7s/Ɖg_97% LH:.80ʼnǙ::8]:L+:8 ;~9D=ƅQ;9C;C:]Ć;:M% }<0;4ß:K<;EG}<;KRPÆtZ?>>]Sz> ?q,A>_?Fi6>?\)"?!@M;?j@m?@.R?7Au2m?nA_)-@A!簿߽b@IBU+狿@B:WMQ@BHټAEC+P徜.ACXaNTACi牾2A5DqNAuD|LF0K$篹?XF?K$眹;rFdK.$}}>FKT$][HFK_$@>GFKr$.UFK$p`GL$׳ebG0L$ܸȳVp@GNL$窸Hx_GvL$祸=`GtL$}玸:ۊGL$qiP(ەGL$d^M%۠GL$\F9&۩GL$M-۾GL$<GL$9HM$%)H!M$˷Ӳ6H1M$ϷϲOrHFTaHVFߡĹ UH%F߼D0 3HEַD] (HESvk HnE  G#EgM GDL0/ GDb6Rr GlD_ G3DwF!~GCވ(8!nGCYޟe^!SGuC ޴!IG;Cp¸޼O!-GCV(!GB;&l!G~B !F;B.g "FAr;,<"FA6\jU"FrAu1x"F,Aw݌"eF@bTݧ7"PF@#:ݻx"4Fc@ܹſW#F@# F?P ?0#E?,%Z#EO?=[e#E?j {#E>Bs܇^#mE>_ܦ#CEE>PѺX#"E=6,¥#E=9r#Dn=.$D+=Qn!$DV%B"9 9"f%B8 dDfu%B8m vڑǾ%eB98# Yک%@B7 Mٽ2@%B7 +ȗ%AN7E $%A7 R &A6 xte&oAe6y ٧ɡ)&EA!6E ˾0& A5 P?&@5 (\S&@C5 IʍS&@4R ق3i&f@4 ٩z&E@]4 ֿP{&@4 { ̚&?3A g7r&?m3 ah&?3TٖZ&Q?2}Fcͦ&?u2<4&>+2+"#&>1^]s&>~1n لΩ&f>:1; ٹ&(>0M0 '=0^'=P0Wϑ'=/M؎3 'Y=/t'!=g/¾/'</5l&<.xsaў&t<~.L٣ç&@<3.&;- MA&;- Kčk&;K-xَҪ&R;,59&%;, w &:_,:G&:,r}&q:+o&٫dԦ&8:x+A*Ŵ&9!+2'&9*2\MB&9*<ْƙs&G99*nEկ&9):G;&8)ZOǂ&8M)dٚ:&K8(q ]&8(jׅu&7k(`X׸e&7(2٘U&J7'OH& 7'ɧ;4&60'ag*&6&ٙ;ي&D6&^ɐټ%5A&,0%5% g!%s5%6ڶv.%"5`%IQ%4"%d8k%4$|ڀHێv%\4$a˓ۮX%4Q$GA%3$-H %3# ڛe%D3y#̤$3:#(;$2"MwC`$e2"f۷͂w$)2`"}ݒc$1 "\Y޵B$1!Aۛ\ $@1!+Ρ#06!9#0 =܅5#[0 [v-#0b Jg#/ jcJ#u/ܪNw$#//|ѝ".7^U".L<ݔ$"A.6gv"-b?]"-% ݄7"X-D"- (ӑ.!,R-mA!n,R޹U!,gof!+waԦC!}+9yޭ!+b D *N4\Ղ *`Ab߮ #* +R )\\' }) ߪ֠&)8$ (Xb7 {(w.e((a ?''gOu'OY%'Sٟk&5oy`p&#-&yr%fl.tڻg%*f_%_:H$U}ۆ Y$]M $ F?#;XaL#0ܕ3#K)-".28"bn!t CްG!"#!G  NZߋp MH ,'$}g+RpP4L<W@@8JDEdSy xYo$ee,rvpc0%y]";wAGUok5 g^]/eJMgQq f*,  gkdu jy1R1 h g;B4 dpsp:i `% Z\ T%<- Ni tK Fk?p B  >![z 8f~TA 7E 49, 0-w/m /f|- .Y0l-G ,2d,pugP*"&7L#09FwjM8_/v( .gax)F!t j$v k 4Z  &19 u W u  6_8z :> @ s  kE a * AR T s P#  L & bL(T e- E/ =m2 \`9a !<2 SlCi "M XQS\[dvTc"k"VFo}auJ zMPzD(~Aj~n@}5z?>s0o 0ci<|Q9a}nZCUkVbNBFDBrV ty8W;'/^)>8 @iA vZmv_)(PGT n[jG: S!(H$RS-[)4`&g9<~( A(k I}76 PV^v Va a_ , f>3\ l~ xbP' ~,%~E rs;3 wg{d Zl^ 85WS  J0 CX  =E O E4i | y/ nR*4 I j *  V ? * i F1 djb y5  X=  8 ,O b$y qoA  8?d  t6 [i @$8~ `'$[ |+ 6u .K%11=32^h4~}#7w]66]5[7=w8 .4 hQ3K(0p4<,Y#W(- y%|"h 'KLF1dTji Fp#)]5 CW+v7Q d #)c<;9tRXwDg:YOywa]m5S}^Jx8fXk#U3H@,?&^Fs-Yu=$]F$+ze$x<x$^J$In\$,Yp$D$x9$d$4$P F$@`%+&%s.%^ >%CV%*&]%6k% I z%}Y$%nf/%dwN%H g%s< t%e~3%Q` %AQ%/< &$ &'&. &1+'&&9950&;HB4&@Z^H&?efN&EqvP&}If&wmGf&l`Ro&[MS~&J:W&<,}c&+vg&qr&l{&oه&sbّ(.&mb٘63&`f٨JH&TX٭\V&O^ٺk`&=^~o&2wY}&&e|^&Sr]& =b\&*NU&GT&0O&B&H)!&?65&=l&S~&xl%%b ڀ,%zTڎ)%fF%ڥ2%R4&ڳ4%G'47%2<<%!EA%QE%[D%k%3L%t9@M%LPJr%dbTm%qnQb%ڃ{TR%r}ڗZP%doڢX@%UeڶY4%?XV&%/JV%@N%5H$(F$+/:$DE7$ PY3$ag)$v} )$yی$z$nۛ"i$Zۯ(_$J۽4O$:=C$(F/$Q$ X $`# 9j#1Kp#$Nbw#-cz#~}9w܉}#lwAܠi#VpLܳS#DhV?#0b\,#\m#Vx"Rm"O93Y"MUKC"Ns\,{"Ou^"P݆D"tRݕ+"aSݨ"QS,ݷ!AS8!0SK%!TcI!Ut`!Vgm!X/QO!Y?<4!YT(!Zk \z {]5ߐ d`+Wߧ NdH}߾r 5e_M gl jQk-2lNMqzjuu!KrzBUlyBsg)Hj=z^sUP&JJ?;nR/Id!U~~ %myFjPF9)t5z$5_P CIU `';n]u)m"I, {rYw-PX@ U 8Z^o 4t# s Yj OG5 } (p% kr ^ M| . 7!  Tfx gX:$o qg { bT| U i;.g !  \(! qJ:] $}m AN7H Y{EW tz D;&^ HKTS {-j 2@E spN   ( H1 < ]UK U a t T~7 Ui>  S- eE7u Io'*z H? s]  ;  zQ ;a? P|v ^9 N r~h b})  t/D  j02 ;Tnu ]O|n FK)^ ;.K :6~ 7\t E6n p2K}E 4R 4G- .S 4yI M4k ~7>Yo A&"A I&OV?IaccrX_ {K@k/JWu qLG84I#U!P tPtOC0ivj'n!,90N:a3xsQxHmRZ.+_rJFsv?y`zr4 tyMVr"Oi4,`N4VWVMXGM%Nip0V6]{Vj&a6Ieiq6rWn|5xN7u$jK+bp7ay{OD:,B2&+}QVVv k\8L`y U#4  l  [  K P[ 6U "cs  5W   _ .i 2 P X ^ q }tl xg W EN 0' / f ! k  )Q.&E Jagro|QYa 4_Ku,<F d:qtw%<6  EfX|z_7$iu]r`kXD<+X%RZ )YOO3!#C<q@^RFo zY"P9s3Bv}JVfT}UC72E {=[IZ0.buLqj* !^>aJQ$n & B[yDF9$.">0f\m'}6 :@aw9: A, oKuF S>A J^L 2u}M lA,xR 3V5n X Y| 5j \ o)k U 7 ZG  U= >e M !F Q  HE bp C| eVr ? 6ߟ/ 4 X +7!= !PkވQ !BK ! "Qbݏ E"ML n"(z"A*,3ݓ"`8L#@8N#?J܏#-VlH#la;o#>tۏ$Qx=$;`p$5yۙHQ$LZ?$+'$"`ڳu"%vh<B% #a%3 %e9Uxb%OA@ %k&MXْs&aSZ?& ?e&! /&URlَ&RAH& $&%" ٿ&_Q:؁ 'Y.A?'r I'dm'h\qH'tHQ5'\' A'QD&ؚ'~mfu'9'-(T("r!(Q]׍[<(VL<=(8H([(%G`(Dv/תvk(qSo5u(rB({_(K{<(+i׾\(Vfך1(wgx("3UD(MMY)(tgUu( M@h(1 OR(B L׫/(l (M׀߽( WGjߜ( wLLq( =N*:( ^H (!|Ut(!.U޻M(>![X׶ޓ.(Q!~f׫n(b!i׋@(!-vs(!Kmw(!uTtc(!LFޤTY(!g<ފ0D(!/b 0(!#C((!%,(!B (!f'!t'!1'O'"O<ݠ*' "mS݈ '"hn'"4Jl' "W4V' "|n2' "G'" '&!  &!* 6&!9 ,S&!B Ds3޺&!L g>ޫ\&!] Jޞm>&!g \ޖM!&!r gބ&%! wu%! 3ڃl%u! -_ږZ%_! TڨMm%S! uڶByB%l,m  ev?  ߖ Ot h 6N[ T(WJ yhy: ]T, 9= b <*tk2;**S};in(O)oh[oG|>7z]c. Is r55Q 5U 9y< x %q^ lj== nY (>o  3 Vc, [HE "0`N  Xo :T G*<5 :e R Zr K>%w `&`w k {u e/P obO5 ~-l 8Q }TL :50 LMG q<. =Le Z?v@ v7 <U| _4:  52 8Qv. hm;U )` /dvE e CL& y /  .U *gVg P: br.J >|b P E9 J0< P ? N f 3F NpRSauty}4 MK7 eNgsLIx=!izzP;QY .yXd~ %\L*6o^YDz+qd 0]B* (T^ q `?A 7/F U D  jGy # XEk x  d#- K S $ ;8'f \Y^ }[eC ^ K )1+  0%  SK O, SQ Wn o . e fg  ;>S> #z< pM :O4 gJ k83o }pAd zue XJ#F  !o cW& T!' I S:A] $O.o q: >kw, q`7 :DF 41+j oT> 0 H, M3. 2 NE w4k Z ~. %e N h| cDy  oE $ ^{ | _;VE  "7 T #% n Z k ,  r Uh a" h E: 5 G Pb GU Hm D9 w >߂ + ߦm; U tT\s })P ! J> f!d! an.!! 2!;"! ws"C" lUݎ"":Z#"  z##$VܳM#h#4}x!$#<w;ܽp$#K6Xۮ$6$Tڭ۩%l$ZyۢDf%$b`2ۛ%$id ړ &'%o:ڏX&Y%sryڇ&%#7~M&%}wC'&ps']&2=؎k'& `i"(&^>v(&\Vo(9'"ױN(g'ZEP)'4=)'R 9)(8M"*I(Օ1h*(jv2*(B=F3*( ,5+)-5o+6)uԱ)[+n)*w!,)XE5,)<j,) f,>*!ӫ -,e*ҏR)-*P}y-* os-* PE-+0.M+Ѧ J.h+ц r.+xYI.+)2-j.+0 y/ ,;wӾD/<,HQХӱ}/p,V?zЂӥ/,_%JaӞ/,h%Ӓ 0,qӏ%-0,pҐ>]0'-sҋf0B-sc϶ґ}0U-l{GϟҔ0p-lWυҕ0-h9lҚ1-e+^Ҝ,1-c Eҝa1-c%Ҝr1-eҜ*1-eTјB1.m4ѐW1+.qяf1E.tͧчz2i.}y͑с:2w.~m̀тJ2.cl}c2.J[}2.D}N~2.7uJ~2.$Q0~2.L(}2.;$~2.! y2. y 2.| 2 /x3/{3/{  3/{. 3/}."3"/~33/Ё<33)/~Ѓ>,3%/{ЉC.3/sЎF53$/qБM.3/jЛM/3/cОN*3/aСT-3/[ШN#3/XЧN3.XѩK3.WѧA 3.ZѦ<3.[Ѥ12._ Ѡ'2._)ѡ2.`*+ѝ 2.d?=ѝ2.`PKѠ2.al[ў2.`"zmѣ|2.Z3}ѧ]2w.X>͕ѫN2c.RH͡Ѳ82U.KU͹Ѹ27.D`2&.=o1.9|'{1-0Eb1--j6R1-'W;e1- s!61{-Ζ1\-α0?-+0- 1R0,Kzm0,g?=0,_h0,ЁN/j,5Ь+/C,m |/,S/+'/+>N-.+W-u7.z+ubћ>x~.I+FUH.+L6.*Q-*CRX-*'{u[l-u*Fңa5-D*phz,*+kZ,)\-t7,)_| <,)Ӕֆ ,V)t%Կ֒+')iJY֝+(\s6׫{G+(Od׶X+|(D$զ)*7(7si*(/%*'%FZ)'~[֙k)J'GF)'(& 7N(& *r׀q(j& O׳#((& )h'% H*2B'% d:H'x% دH&3% ;7Q&$ d(^V&$ woE%c$ 9z%"$~ ܉Q%#n 8Pܙ$#` rF۝ܧw$D#R ܵHB$#C / #"0 T܀#c"! >ܾ4#" oq"! ik;k"s! ݲ#"*! ;! GaRP!x tިev!2 /|? x \/ c ߢ =Q @N }< Nb ) 4 J l ] (A  fH J $J - D=  S Q: Jj  TWW qqm " %X  B ,c >k( qt  OF  f a &5!   Z 2 < ~KC G dE @y} VQh*d >O :\~? $) _!| qGFh   l7!T `6C :ON Znn 2m L7R ND6 L! 3 CVd*S8S-!|H Q0)a u_? Y} \ ZB v@B #$vWk` & > K1 #PP n l>vp },? d? C#% $abs eR_ -(  ^EuF @_ }>^\cnW>4-@d k>8k'5X 5ve\H"b< /*u!T^ZrD>c9r!kc b]'xc;=H(GU qWqjT]^yY >O*1a)ohs(:Nr(aE?x^4Sz`X\{sA6sHMab[ J5 >5 KU"/  r d Jmg =J  )  CA8W PP} 9 ae 1v  bu# T yeb U $iII p`8= .J ;D $x  uN[  2 N"  a G|H  ) [ .`~ ; 97A y E\V OP UJ}3 [j: a)j d\; iS"( or` tgp y7,P  YzE8Kv|zjer,'H70O+6Jv}6\^6|s*82]7>D=,_%;Nz =imBbQB3CFHG,5N^ $V s_#_ h<:yh|ty_S;)L7['8!y,!u6 J,7,D> )gD@6LmSPLXo|Ln2QmT%GT3H4 H(-?MIA/}d<rJz8V}g1'e(dM "JF,$-[ wy1N\&+p> &IN6 5c\ Csv JvD XjEo i[* kD[ ~+'w= s\  g ?  aUq | ;O7 U DN  8k/  *#R s #Rx U k 8[ < "1   '4  *VV  J~ ^ il )$ > )e  +D V + @ .e X *3 < + `c& 2 CS -j 4>M ,9 M47z8rIv4rOo/}E2(N  !J'D [Ut !}|qg)@:lyM" OHwDnyrRn^(."'Th,s+Ue@4m5~B NF`3SIP\{h g(5tGE aw\Nhh{\pV+F52q7y$N F  %g :4;!iL {1j:CI nQt rTcP2.t`s*L]1.Nh];67X!KmJ~v}-d](k0F;V4MgSx}-n\d5-OS7:-BH }%` iSl;}fy7)gUUXm_LTb5I f*-, 6 l u E @ <r vZB Ownz| *&Z@ .8 A5 :g: |yJq M-RF -JY l#k ?Epn nlxOx {0A R| 3x t0  q9_)  mRB c own v' |h Y`i 5=mT  g am( 3pN? qt` {wCy \zyn 8wY~ J< () wA' x]K# s~t? lnpe nJ@| h-w e V / c8,Y ]!J} Xjq Ny6$ IX5 >56V 3 fs /, #[jV #E p/ LL " o & O57 !"`P +}\ u94j MGc (uO  oj_ APj3 \ ip(7 Mp 7q #s 1Gp Kh%p gCoX _rs8 ts^ }vAZ&|.DEz*n}} |\.w:J-ufBo~Oiw1]a]PoZEexT2~KqpIR] D8O$?5C@Y"=sD<m!;b88KcK73Da2 t0 ~*y!""f;>_ORTms|Ce`:FA,* 5 ?3A K[m+ Rw<| d[MW ;ge6 ms y pDv _;ej RZ^ h@Nm A1AQ %'41  " * > <^ Zy }p f*" ` E7, F ,D4 + R?  c J q%8Q CRYw htfg m\ s iuK P H> 0 )v3  n% ^" S5< INU <nu |1 k f) P M"- , -=  J  ] n?0 ~[I y m f k S Ic( B )E3 / "=  -D  J K  oBW V] m'qc I}<n %`Mq Ha u (y2} }  Q~ j l X z1 G crI < Ok[ 3 7a{ & uQ  `F   E<(  !,G  & _ } q+8 U;L <Md a rr ^1 r  p!$* N3/ 5? : J?H S\W Y$qc `Au [gY Fulm ,it j U{ TN z@B0 s'0J o&_ jx hv" eX3 dCI( a d@ ^v M \ Z Vj@ p TTR y PCj K/l Jk\ FTO D;; C'0 A? AU(  @hD  AwV & @w ? @hx S AVc ] =CJ u <,* :s 5c 5O6 3=-K 2/?b 2V 4nd 6\u 79 7>n GB_ `FN/ P:tM T,^g [@ d f' gQ  k< n* p5 $oE <sU- Pva@ [wo^ yvy| {wbs r^Fg c=#U XI R ;#F,*H< <]4Us(y w] lM O)' 3 3 D  BZ ,`f =xs z'b Tx3 y>o> ]&fL 5V[ Nh! EuI 36i t+Q jnn \}G  P\' IH  <3/ 2 O> ),mN yVd Tmr ? dq D\  *O? 5j #, _(B ;3n |; - dB%@ CLWW Vm x_y T|g5 #atX U{s C. w]*S o=n k-  b^  [9% W%97 Oc#R G|>d ?uev 6K~z '#Tb 1U :9 $_; t\ z  M^- 8?A Z %'q ,6=} y4Zk ~^?{ wfRE `F@K ?&V Y _/i-^n?x+v\;RRzp-_qWlh4)[rBTgeMM;A]8_=<&q6})M*#7A!r5 u&I^AQ=fd$qk. uU:,3vMKqWchg{o^~D{KT\k:NUiEAG:2-80$ +V g 3nQOq 6q#$F0/4;%5MH=]cEk.lDyLL|fjRjWR_r?ZIP$`7- e-ߘ kߓ5 o ߎ(C sߎ >M qߎ ]i tߌ, km qߒ: { lryߔP  lXlߖe  fB`ߝs  b.Pߠ  ]d Aߧ  VT5߭  P?0߶ , F$߾ D @ L 5 g * x # 1  qC ! ]^ !Io != !o*!  !X- !J:  !/K !W ! e * !w >!ނ* D !wޑ8 O !gޡN Z!Wޱb g!Hn k 6 v i  Yy  Bu&  "a+4  _6H  UFd  FL0  wC[ߕD  _;g߰Z  A4vx  &}+ v o* c R& R :7 F -"P . t  } ߎ  e ( A H  .d  I~  t fK  N x jx 6 JM     $ 28N= 4]{Tt BgmK KC nT U`* AiW $yN] sx|9 cK /Y ?<I iR7x Qt/D v v lHK= *qw+@b!~& AP3NSKxJvZ=bjg|EAz<i eU+M*@DJ&M~cg }p `Q6GK@SMt(b iS'J7N-66cu(bp | ]RC!;_S%Qd) FL7!)9BuUm@'c(j|QlWY[4GDn _'; 4zi[ef "1\ ^D9eWc"{z< Pmhs~[/KJ19O C7+ ^^Z/ Fa" / f# jT zt  $`[I~ ;rS! k, " s$K : QiG4~ 5 T@ / r, KlHR nOy RY 3 ';p QJ '6 ^ +86 JI}W XU} mc'[emv dX7# D6]!$B ~F;b_8_NF(Wh_;Ftz@Kk[$ ?7$&7t?jsbJ>#EB_1VoOGkZX vj eJs uKw; j. W4 .D|h 4sA' M&  R{ # U hO `h " T, G8 lQ ?v u6 W ] of mgJ q 3 = }w Bh1)`x7XP;=29] X{h$$)  6prUTJl7 f 'LeT 6mdU!G0 ޴*!P3ެG"^ݘ8t"nFrݑ"n%ݎ-&%#|}#S&_} # x{)$:lv$gWkd$/we%`VU}%z_Y%P.*X&T0s&5gIv&k0La'Y@m's8YO'/8'C.-W(,;(:<+s(e*o<)P))Y'T'),*2& g*ߊ*-Z *tH1t *^.2!(+9![+Pބ@M!+9E\"+4xN"!,3T,#Z,y[#,\P0\#,"a'$-۲eR$y-:j`$-UBgB%-c%<."ڭaX&l.xfR&.U2d&.h')/lFL'U/ؔu'/DK(/~%Ј D(/oϚZ ()0_״Ϥ )b0W=֔ϲ J)0Da& )0:$| *0/e V*%1!1 *`1&ՆH +1 Ry N+1n. +1$; +#20 #,A2Ӹ*g f,]2sjӃ= ,24'ZI ,2L_ 1-2qa -2{]̃ -3rH#̘ -23`ѹ̨D.X3Nѕ̻S.}3>_vz.30h-_/3$/B/3c/3{ T/4//54]*0=4/ϳBP0`4ϑW/0s4_ωq\04:yˊ04hSi˧14MW˾<149R]14AX14 O&y14u9&14D %254825K#_25fX2%5`ʁ2#5qf@ʞ2'5T>&ʽ2(503/51'3)5gV3*5}9{365]Q3)53bt335z2ʔ395_ʱC3.5>o465r<435AY435$2l415U+405ZnE415Tʈj4$5e|0ʭ4*5EV4 5+755  !55-1,55 NP?54v{Q54xm˙e54WQ-˺k5444Aw54{U 54we+!54xʄXM5r4`ʒˁm5f4qdʨ˟5H4Ni\574$FM5&4(N 5 4H253F]%53=4́=53lDN̩U53>Ft~5~3v?ʌ5e3hRʰ&5;3HPT5"31Ru53| b͗52T_)52.eC52gb/52l{,J5t2pʜRf5V2qʶtr5:2x͠|52G_}51$Re51?L^51$mDT51ʏb>5[1 ʺΊ5561^δ#51;!50,.40 ]4J40ˉ]Z4d0/˴όi4.0WE4/%mN4/dkD4/JzxN4w/:˚th4N/z-МU4/MA4. #*4. O4. {I3j. ̫r)3B. ђ*3.Z >Ҿ;3-* P2G3- jVH3- ̎5Wk3W- ̽``R3/- ҃h13,h !ӯr3,8 R|2, ́2f, {/Ͱ(24, tUV2, hkw2+w kBԝ_2+K `E2i+" Xͩ&2A+ Z2+ O B1* K+@e1* HOtՉ1o*b CnΫն1<*7 @]1 * ==1) AD%1) :{K0o) =Ϧh0A) BJ֐0)[ /&'-F/& jr.~&єُ.V&b&Dٯ.&;#i.%'-_.%)a:.%+љB.M%+e-%+#ڄ-$h2N5۬-$A0vj}-$'7ғU-U$ A*-$@$-#J:,#N(JY,#MBsv,}#~Paӗ܎,T#dN{ܬv,)#BOW,#'L?,"P9,"Si!+"RԎ7+a"]2ԴO+2"_Yo+"dr ރ{+!ro3ޛT+!Vqc޸7+!<yԅ+g!'~Ԯ*%ayڜI=%fڗ|FD%mړx=:%mړp<@%rچh6C%}ڃa1;%{ڀX+D%nL%E%lC"F%c:I%T-M%Q&O%JJ%AU%7 R%4M% )Z%U%Y%& e%3f%;p%E#{%*T}%6]o%Ij"hګ%_{Oږ%u Fڄs%!@vc% 'YT%$%MI%$A=%$"-&$ &&  0&?&-H&Dٱc&[#ٛm&l.ٌv&~?xq&PaS&^ [F&p <& )n& ^&$C 'N ب,"'c ؎3'jP' Fs'''-q 'EB'7X2ؾ'Jiأ(xqv$(]h,2(>Y0S(B?r(6D( k$G(: I״ V(_ &בT(| vY( 'Kb$) @ ߶b3) T ߡgQ) !kކo)D!u֪oz)]!Y֔a)!|0`H)!g 95 *!\*'*!SS*)"<*R"6u՞*s"+Xz*"8?ݼ*"N ݧ+"d܎4+(#ԹmX+[#ԜVv+v#vn=+#G++#+$  ,K$1әۼ1T,$Peۣ1t,$k;ۅ7,$K`D,#%AF,L%ӧ&N-w%aZS-% 'hr-%%yq-&>Cٯ-a&cs ҋِ .&wh^}2.&]Yn.'Bn<.;':Eѯ%.i'(|/' /K/'!  i/ (5 v׿#/S(Q +Јס;/(i f׏N0(y 0y^O0( Tz03) }]ϸ@0a) x3"0) ^661) Jb1"*. B1\*R $6e!W>$7~J(!>7< ^!?7 }!_?#8z}!?8)BN!&@8HޱƬ!m@*9azƎ"@x9KjZ"?A9ݗKz"~A6:r^0"A:>: "^B;  #BA;#/0#C;?ܽ#Īh#yCI湒$EF>3$ۦM$F>GE0%G??cڼl%hG?}zsM|%G?Kk%0HH@ ژJ&H@0?kZt k>6lZ{Y(>plZDqg\)퍐oE)rt\yкNE_ri\TkEwrj\(r}Erc\3$Frj\J%FrZ\{F&sR\d]FYs^\92F]s@\ ţ0GsD\IHrGsA\p:ѣrGs$\yEܣGs$\@#Ht\ ÷ԋJH3t\ ̋3oH7t[ d"rHlt[x '*Hwt[M HIyt[ ögeaIt[ GkCIt[ `OxItZ[i "%ItP[' 3Jt'[ #WJt[ hJtZw O1JuZF 0TJuZ  Kt`Z ϴ򊲥U@KuBZ ӥLKtZ] KtY `4KtY Jb:Kt~Y #zKtOY^ ƦLtY ˳0CLtX75<[LtXNsLtoXWXOLt>X#QnL~tW +OLtWXMctWcM9t>W˲Ƌ GM7tWڋBRM tV _|kMszVaMso& ZKWaJ>ߞZ 7K`=ݴQt– Kj`C=Cޟ J_<2Ks J_R*Kм̲ CL)]BiL>)Hϳ"BK(핽m]FBDK(ԽؐBJ'cpذAEJ7'6X AI&욾DA'I(&ݾ5AH%!b@H%sD!ۋk@yG$d쵿۪-@F<$FG ?fF#P﹛?E)#iS?^E"~:>D5"+m>+D!g ކu>CM!kީ&>#C >/=BA F©=B&]T=Ac½4=@"DRR<@|_÷j|<@ H:#'K:A ;|>4F;=- e;h=b:(Dq$n3W?$k#=#I/0#Qx}n[#Ij] #.b<"mTݗ#~"/y l1"y~Wz!O1ެk! aT!lBQ!mvD gd.8s )߆,3 Q%#@EiuT8B \k jWz5a#m`,B:'_Grc WVNe\% s{0N8q<,bdPSJPB14W%#Ke4 2  ]&S % vd 0#* (rJa s H: 'G S' ;A+? V!h_ mqr b_ m'AN T!I 7&! !K<; $k <}"x h^80 *8N O hR |, {UdO `k&| G ta 2 ]C 1 1  A 6  )uf BuL gXf ,m: dHnS @Z W%E K' `0V E Hn },X. fChM sF^x( {eF b~2F+CU*6"pyf[k[7.  FH@a"EHu9Yg[dOzs:NE[%:$  Te  ]G- /C * RS;[ gj \+Y~ y#A( d"8t Kg 2`) ',1 EE} _i*u sq>B ,j`+ Rv%S HX cU, HH 0 *En! t2 hB'K 1@h Z5^ rmc }S[k 37Y !?F N/ Z$ e12 9!Q Xf 'Ku f?} _+m^ &[u O!Jb ;dG ]&1 Z<  ,C #Wn v:7 ZGMB 6#]T p!g ;Ozv Zke }rM WD[< 4'P( F 0:A ) ]a  `_ 4 58F [ u4& P? p sV!X v~,B Uw,1 ;j, I7 / 6 8 ; +^ E ? 0G tP EM Wd bQ /w ~W { Wp k YZ J1 _J @G X8 -e ]#  _ t [ ^ cB /f) Ak+ Pq9 kvC y|N2 zn^M \~j] Uxq |@ qn3 }d^) |VN |H8 v;, r.! i f ] U# T"/ I1> E@L !>MU !1\\ (kh xl p s | d Y Is, ;k3 0dA "[J TR  N] Jc Am <t 8 $ y. 2 p,= `'L O""Y E".a 4"7k ($Ar %Kx )R }+` u+g m0u b12 uW3A fM8V Q@ q61 Y ; B+> ,EA  _E   H u, M b:2R FHJW /UZ[ bn^ rb r'du _@gf I[iQ 6wjC ~#m2 gn Ip 5s 3v  Gy "W} 0:n ~CS w}Rl b{b mOzw Q={q <+y^ yM x? u/ t7* rK9 qdL q ` sr n [t1 AvvI "ey^ Szo Ay r ,z;a yPQ  xm= y* ny" Tz7 8zJz]x' rv<'quI=_qXROqhk@qtz7qyj)skYt`KuT8vC&w 8w+v &y 4 y2By IN~^[,md}>ovrPxqc`kP{pf=pbw+h`jZ_ZO\ME\C: [621W+*;V"$GUSTYU eVmYv[^| `t_k#ae%_])^Z#+^U'-\R'.\S)/]M)4_M(5bK);fE(CkD'Fo?&Ou:&U{7$Y5!^5z `4wa;t^>r^Ap ZMoTOoUTmN^mJ `lJfjCpg@!zc=(^y88Wh4FQ_0NKV.^EB$jB;t?-=y >n<e  ;W9K$6E- 15@&,(H)' Q, h7p<Bu!Sd-ZV7gAGy,Vx` jv _rX%`R?FEU7?`$9 ~ s%&b+ I0& +4A  7R :d +> 3<wA HJjD ]WOI n9qM z%`S  ;m[ \a Th3 >nO )/sg D#xu Y| ucz ~Vh zCU u(2 0r# 7n  Lj ]g. 4caA Qw\_ nVvr Ooh IgOU CL.C ><6 ; 9 0: L:' s-<; ;=kK Q>Hc o@(y ~@x Ana AQK @?C; P>/+ u=x =f <J  >#. :B> HDM eJb ;{O~n QPlz dT{X TksH Tcj> TPM- UB6 V8- X* ] ` )d 2@kFLo S]vgp~}~wy!rjs.VSn7KGlA:>kL#)hW$h` ge am]nWm Ns!Iq'"Bs,);w=:6w?A3zFD.yOR){NQ(xPT"sO[sR\lOahOfdUn^OrYRx PRHJ9F,w*;:z0Dy!Uv ey n,y ~A{z Ryr `*}i p5~\ >zRz JIm U|:V dz+E q!.   j~ Uw  9p< e1_ ^<yz SH,[ FWG? @a_+ 1iy v&w U$t : Ee sLy %=T K)+ y1 u= Q9O 'gd )q\ 8A3 rKq tbe NRwA %Crgp .)SE MG  3c/%7R0 ~McLe/zzmz(-_C^G]*Q/pdsg.PY+@I^yl4e+-d,<m;p|Dm 0 >. WAb= yWblL  <e r QZ &oE& R]  CrM x Y9{A F &5  -  %{& P  x^e  )+ ` yP &) K : 2%N C UL X ( Ri xEn (x #< 1j `_aW G7)U 3 Mqj +M &iv 8QI  yk ' 7  : #N. C _~c N X$i [  e J > k |==[ v  8U| AvW  3gM /b? nYc scLQz ,F@ h2>l 54   %x,j ` u&vQ'   gPl b sS F y * (  y &eeu' 6 B * < JUIE :M H IU ,UY Bqu`a 7i (Yj P&~t 3 .{  SG|  ; 9{ vB>  rN L )jq D aP \ X=  S OC pLr`  D,  E Lg@ze ,< ! >3 R d8pl 5'  3 b}\.b0n + w (V mW(\q #I &# oVS%f^v ! *U${ eQ$kz H"s +# eN!j  *2 sF_1 ! 9 1 G R  / F rD YX  4 Er [ 7 ] 8 xG ?  ~%+ ^ v S ,+  { eJ m ^  u Q m v >!Y3ߌx !!' Y!,"ޫ !x";HLݟ !#ݽB ;"s#o y"#` "?$qc "#$/. a#$~ #p%C(Xڒ $%^ C$1&ۢ # $& F.- $'Rؑ1 %b'~X8 j%'b ? %A(ڒF &(SOזJ M&(DO &h):tT &)&P ' *VؼU k'w*jX>X '*5 W '+׸a 6(+XDԊh (+o[q (,,׳)} ),~> F),2sӻ {)-UneֵҎ )-fIG *-^ 8*._ m*o.6Vjfѩ *.kN&т * /LR !+P/?| x+/6m' +/(.H +10P!Әϓ +,0Jd V,0 K , 1Q ,b1Ӈ-1S--1> Ψ)g-2pw̓2-R2SҖc3-2.c9>-2E+.3KC.'3ѼX.n39co̵f.3VET̤s.3_)̖/3zsx//#4^oU/E4SФ]x/w4JP05,3t6̔OK3f6̥m,?3I6əQJ3*6PoO36.E35jP35E0?Q35%OeR35 kʒT35T̎0T3b5&̭IU3F5bH35TL34fA34lSH˯134-(53o4̤) %3B4e03 4w̱_33/C33hw)3p3Cͯw203d ̻22,22(Y?O22.͇͗y2T2\~>22ZX21)fU`21͔Μn2I1>#U20/AG420tσb2g0];10i-1/C5ap1/l-XΩо1#/} %z1.Pj2[1.tΠѶU411.1-nKg0-uRϚҶ06-(A0,iWr0,fϦӿ1e0,,  /_50+ qԓ0g+K f/+ C+0Q/*r OЗշ /D*! s%w/) Pz[N/t)N м'/) l5.( Fyל.K($ J.' uHhx.'p ѮAA.'2Jv.&wҏٟ-C&2^5-%'myڎ-Q%FT-$AI: -$tr,$~'&+,#]Vӈ܎,9#9- X,"Ӏz+,U"W9+!#b\l+X!bxY+ U6%d+ 2Էߦ(+ 0*Պk/*<^V`*ՇZT*Gyo*Ld$)RE)!z[n)n|;*)8mt(]y*l(a_dKy(e'w<(XV(sJ;'j]dt'Z~IL'\J'p,>&M^ &v{ٿ: i&ߺLm &&iu %Q,o %Q-\ڶ %ޖ7p "!S%cڙ 9!%*N n!$sy@ۡ !$+ ^t$ !p$8ެ} !2$7 ! "#$u 1"#TQY U"#ݡ܉ "C#CE_ "#IcO""PgS#" ܇c7#\"k ># " Yp#!h ;#! Ngn,#v! >ܬ޷b#1! _1# ߌ!$ 7 Y>$ ۔߉i$W I b|$" coh$X75P$ e?$"ڝ%E3>%J V%F=;w%z}u%j[(]ڭ%> I)M%s(%,G &y]h&jbXٳO&66/b&  &:>eA&EncL&v+ٕ&V < '&xU+'lB'C;d'ewO'gp؆'cL\ش '3/}='_"~'Z1(Z{)((a}k>(q"sן ^(Mi~()tsN( ;^(?>+K(F" (Zff ( k֊ +)j'֢] 9)P޿ֿ1!S)3Hޘ{!z)e~!)1iI!)L+")Q14h")'F")W _0"* wh ##*Պ-#(*iQդp#I*Poܦշ#c*@Jܜ1#k**܆_$*c;$* TSg$*1; $*O! $*(? $+5g % +F R%++YQ i%6+;a %>+Zڰm %_+:ڛs %c+ ڙ/ %t+~}ԂK &+nԄb -&+xaԊn ?&+wOԈ Z&+xo=Ԋ x&+ue.Ԋ ~&+vVv(Ԋ &+uCT Ԋ &+x:LԈ &+v0<Ԋ &,y&&ӂ &, Ӂ &,}Ӏ &., t &5,v ':,r &C,غi 'L,خi 'T,جc 'V,ءZ %'m,،O %'u,؍H ,'z,w9 6',f& 6',%f! 8',2T 3',?O 3',MK &',_G ',-tC ',7>p ',IBӫV &,_3Ӗ> &,u 2Ӄ* &,-4r &,<#R &,N(A &,6_'1 &,[{! {&,z(w g&,*T D&,'/' *&,@,ӷ &,U 4ӝ%,t9!6}%,c=-_%,Z8Hg%,t0'7{%,,`%,6F%,+1%,D]8Ӱ%,U?Ӣj$,n>J~2$,gUd$,]P[$,@q2-$,~sm$,E#w,7܎ #t,4h܌ӷ#o,XAܚӟa#_,hpܣӇs.#Z,ܬZ4"L,ݻH"@,F*"0,Wg"", V8",(",PԜ!,xPRv!+XYc!+!. !!+- +K(C +!jPKt +PfԢB +c wԓ +Hih+TJN\+1^F+ 1+V'+(7[ +CpԮl*i Հ+*S#f*)7LL*vNj*%d6*\w}|*46ն(g*Vm՝wZ*r*|9@*yU]2*(2'*]*Cߖ3)# U)< "9ֽ)T pQ֓h) cpq~*) aFj) ?8G) :ߦV2) qq) ! (,! \(H!>4ׯާM(Y!yWמa(r!#r} (!Yo^(!-b޵D@(!rAl(!8;(!W&'!#6 ޺='!aPގ'"sWx'"a|X'," F7'9"5 ݮ'B"u ٳm&Z" b"ٞ9&d" FٜI&k" iن&"Y %uݎ_&" [rc>&" \4&" O%"1 ) Eݷ%"h kN7tm%" s+=*}%" U%" ,,%"G { ݞi%"y q4$" 2?$ # :`$# srk$#9 ܭ0<$#s q$# -R## _%*## TA##tw##3ܻJ##[Cܒ##|pm"#!R8""Q+ ""'  l""U E""#T ""M!ݥ% !"c&ݒ !"~J/o !"Sq8U !"y>@r W!"Q'? )!"\ "n " .B߅ s"cwߕ t `"0߬d O I"8߿9  7"Kݫ  "[ݣ "b'Jݗ !qS{ވ s!zx)ރ{ M!D}[ !!cy3 !wu z!Bv Z!lv {@!0t X#!Fy 3!d y  -zp  7H߀V  io߂7 }} {߈ W` uߌ ,= p ߕ f)ߞ`@E!VWpKuGrvEu<q N,[ -GR!7}H$j);j;EO 8o%g@k/tYlG9".!AE MK_9~S{^tLZ|Gra GgI)n(to sT - w4k |PF ~Vzl IE ) R _5` {_;M { R u& p7` n`$< gcT c0*V `qf Z" TU= O~Rnjr H3-+ ;  1.! %4iSo a: ed04jy)k 7+6TL{jK`*o`a;3q H[M L(B/Uy_x(uq L^s0 `E e^ qLx~ Wtx x\O UAo )`) "2  %S)  JIH ? fZ  1e} a pr :N )]  C'H  + J 2N  s)>& t M IE 5f ( /5  l @ CL@ :c/'  ]CP > $6 |^ ET   r>& Rj} =Q( \ 1 5 x  ;U> 48 O \ht <ky f  b: G DT  @v "5 7M2 D|a] %2xq ~B L OU ' 81'  o4  g' * @E H ]X- l |}~ p FV  X 7B = w  6[  #% 5 /yV ] ^|Q ~ Bzk  ^N0c 7~B 9c#& $ , Y%T1=QO Wtg4}}|uigCy`K&:/-l8y u8c&646Of1Jusxc{#dx`3)Cou+dTi1F P8+0 Nq uh :A v jm! P:N -= ~ E#^ P] % |rr 0l*a S= `HR G'0m k# qHM X :c "> < d !3 j4O NL #ia 1Lq 4( 0AmPJW9iIC\R(fVfHZN3 _'e, j:jM79qZHBqh]Rnzvht~~rprlqdYvsR>gpF-Zo7Sj$Bg> ^=V1+S35I/'AD(5M@'@Y7"La2"[o(ev!#px)| +~y8}p@}hIybW.xZ`;sRnHrLxWlFcdpAq`e>|UT};M@j6E4^1;L+4 7#*'$% > T"j6Lj*^U>n4Tqjb~xJ2^5PK"l8 ` E+)B3Y I*l eQovo|]VZH530# *  1$ 9,X  kDN (YG [Rp7 ')p p M \D @w u* J H }r +,'O 9U: PJ ff#V DxNc| t_c -N: vZ: a XLD-<j}%B%N6vs L1; he* {9}[ 0Ga% \UH |_8p CkC vvw" }V} $ o 4A d Hd T YCY D qyq- 4 qL &  ]  ;=  +^) Qk _A  ; 1 K & a9K2 q\nD} QnZM ]W3, hF   l$ >.p cHq gq[ Fo2p ]lY xlv; 0gX! Og@ tg$t "aI ;b% %U_ MsY nFWk eRkS KE[= C.?, >  4  ( 4 + $ O K r h" })px 2MZ 9/B' >/6 FI  LY 2 Te N -\x q Nb} cjqg |pcJt wJ#X ~@ @~  /%v * p L  i b c =ad, VHc@ f*dW ~wmy |io% mZu@ KFf ~/8~ xy+ lP ^+ 7 Q[ A2 *cP #@s 0 v  ?O ( I1% C S? t_sT ,hXd Cp2} nzw} dfy -TGq X;g %pb R] *$X JW- cWI :kWr wuIW fU2W @V U -*U ]NV> |LwWf  [Z h5_ 34e hj [q) 9wP Y|n l~ \zMU v'\> q) iM 8br h<[~} dQA8 G d!?D7Z2w~'l-%<+I'~`q^*ZS.&C 8 iF5-Y}D_iDg5usff-r1kd}KVB-A.*V.`'lw8cP7!(X=}=+;JKJ[ lzqfopPsI>8],RDo/2uQW3ߌ2  b@} d? n m!1 h!1}޿@6!S9ޙV!IckT"A| "zJ]"a{?#/L6#H:Xܠ+#|k-$ZPn$)p,$6_%JY%4Oڼa%W(ڎ~< &ubuE&akI&J3' /Z?'''R D?ؐ'd=A(@+o(gPF(^ B)3ֽqRx)UZ֘)f a<*OA:p*9a *E+++߶ $ m+Aiԧ#l +uarD #,߸VY !h,u2sO!,|z!-a(޾!^-1K݋ҿ5"-S-!ґ".Ie"L. ݔO#.*2y# /]O#I/ܒg $/?0Хk$/tba~$V0Iۇ]$0,7.h%1e%d1 -~%18 6δ0Q&2j yF&c2 KيUU&2 <2i%'2 ބr'L3!rnؗޗ'31!`1M̹ޮ'3b!@ˆU(94!"עn(}4! WbL(4!!'=)05!֫;q)q5"qxR)5:" ʩn**6t"ղx݃U*a6"u_ݕ*6"_8(ݰ*7"C7+V7 #0Ԉr+71#l0ȴ+7c# Ǒ,F8{#Ӝu'C,8#YOI,8#+*g,39#Ҵ܀&-`9#puۣ-9&$MI-:O$2ŧ.K:a$чŋc.:$v V.:$/@(.7;$Ф?+/;$P`/;%Zr/<3%2ýڋ/O(&Ωh2k>0&{~J2>D&q7٥2>c&IA2)?q&4Ϳ3Z?&̊gY3?&{/L 3?&O41 3@& ɿ$V $4j@&j{ h4@'u~E؛ 4@'S; 4!A'&ʺ :5XA-'ʕ u5A+'p`8 5A>'$"k 6AG'꽶؆ 96)BO'kĽت k6RB\'>dɈ 6Bi' H 6Bv'2 &7Bz'|< z7;C'qȰk^ 7VC'@șn~ 7C'pU_ت %8C'?(V d8C'[ 8D'SлQ 8FD'ǡOJ 9vD'zMd 99D'\Kؓ 9D'TSHغ 9D'82D 9E'L -:?E'ţF3 e:lE'ŒLX :zE'NmW؃ :E'^ 5Uؾ ;E'-b L;E' i};F'ZӹoN;BF'Īzp;cF'}Ô؝'sG'q6>G&rg٢q>G&RS*>G&#`LB>G&%Z3?G&l]?G&٘\?Gf&L?HU&h? H8&=$?)H & ͷ` @3H &߿˷څ1@DPH!绻ZOD=H!|登η[ުD,H!GE>෸e;IGE໸&{OGTEVºyG1EVߺ yGE߅H GDe?n GDkFXh GD(L !GWD:QY!G)D~(!GDDI!GCA6!"GCni"HCY巏"HUCEȼ!"2HCܿv*#EHBk·_#>HB!ܶW #WHB4ܡh#^HcBuۡ'$eH-B-ەc$pHAqۍ%d$zHAt*~Y$HA0ہ"%|HSA|ξby%HA{ml%H@7Iڀ8%H@s}X*&Hl@}nV&H2@6ـ&H?Is/[&H?wuk'Hw?+uK'H=?t^'H>rGr#'H>-nT'H>{WF(HF>vk(H>3mo(H=4zFN(H=e}¥1)Hm=:qa)H0= n=)H< >g'Û)H*HF< zÍ*H0E1Auqw0wEk1b+Ϟ0TE1α 1EE0κEN1E0ϜG1ED0>_1D0.s1D/Md^1Dw/xhoЬ1~D0/7NΓ1`D.Bα119D.+ܻm1D_.v ѝ1C'.I 2C-CM'%2C-YX*2CZ-͈Ғ;2cC -HͫV2FC,μZ\2C,Hk2B<,Ӌz2B+U}F,2B+&oeg2Bz+j͍22]B/+NͲl2EB*F˽"Փ2B*OBk2Ap* ' 2A9*)A52A)"s.q2|A)s͖u֨2SAo)Bƾ2"A-)2@( >C2@(Izl3@h(nט2v@$(Ḥ 3J@'Ŀ;3(@'u#2?c')] 3?'K؁3?&ĺ8٫3f?&9̭ 3@?a& 3?)&3 3>%+9g 3>%Xvږ 3>o%Y|ڷ 3o>5%1̭ 39>$/ 3>$`4 3=$5¢b 3==$[ۆ 3=$m̈́ ܡ 2b=#N ͵E 29=#&} 2=m#í 2<9#,+ 2<""\#Y 2<""͇Xx 2f<"|.ͱÑݘ 20 2;!V}% 2s;g!^͟ĭ< 2H;΢ 1H8D<1$8Xh.17j&țJ17RqFU170qej1u7Π{c1S7μ4L1/7uY=17c Ʌ/16kR1ɥ16HE[166΀0i6 ϫ 0B6F06.p 05y5"ʙ05WF?ʸ&055]n:05 cύH0d5zϱ$S{085Ncq05ss^04~$˕Q04YzF˻A043hj504Tϊ/0k4LϤ0I47C0*4&_04{/3r$̠/3R;̺/38*d /33Ѓ/p3EТ%/K3R8./-3aW</3ltL/2s͎P/2f5ͨ`w/2INjt/24`k]/2!ЁuV/s2В{M/f2Щ9/F2}+6/42s@,/"2gT&/2^m!/1P΂/1s@$Θ/1];4ά/1H*K/11V /1 l/1 Ё/}1Љ.j1 Ѥ'.R1Ѱ>.K1 ѾM).41c0.$1w>.1ΉL.1mϝP.0[%ϯ`.0G!m.07#+p.0(-A.0y!E.0r+S.0f)e.0Vb$.0G p2.0=uA.0-tK.0 }X.0 рc.|0щq/v0Њ /r0zіύ/c0iНϟ./h0ZИϪ8/a0PШϸG /X0AРY4/e09Мh7/\0/ЧsB/]0"ОN/c0oС^/]0 bТc/^0TСs/^08~П/f0,tЙ/d0lН(/i0JЍ2/w0FЌ9/n05ЏG+/{0}O?/0ЃYP/{0g_00tny00~vy&00vrς-00z^nόJ00oKfϖQ00fCjϟW00Z)fϬx00OYϴ{00HcϿ00;bR005QF,00.BK;00$+8R001j00,v10 |# 10W B10EJ10)%s10x111j911OF;1&1'LV161Uk141b2I1nͯi-2R1QͬuD2Y1B͡΀V2e1z͖Ό2r1npͅΘ2~1dh͂΢!21WAvΰE21K$dθV21Bml213]31)mS31ZY031FEL31 #;k31/31t 31D <32,M32*u42w:&4%2`I.42A^W4,2oo462} 402{p͌"4D2pT˳͔E4N2i6ˮ͛V4Z2b%˟͡h4j2\ːͩ5y2Sg}Ͳ&52KXxͼ952:/mk52)[y52~c52UU E52=Nf52*W/52sKC52JKV623Ji%62G}?62xC͑a62g>͠.d62WD͵U62@g7p622a962 oOA62 P25624*@62C*62DC72O[,72VtC72|c͔m272`hͬ|672I{z67|2*VȇS7{2<ȈR7n2&Ȟ`7]2ȡ6 y7`2ȦM*7P2yȷgA7H2iȺ͆c7A2kZ͢732SrMͺ7*28]K722072!( 7 2#)72F.82[F81zh81tΛ$81Xk0η*81;UB/817W381 p581 Dž;+8k1 Ǥe%78R1 ǵ΃338?1n ΥM+81D t=8 1 680 h :80 G9HA80 )Rk:80 rό980` Ǎ϶ -8`06 ǰ&+8@0 +8!0 %F 8/ P]8/ >se7/w pФ7y/D r"Ȗ7Y/ e9Ƚ7+/ SH!7/ BXN7. 1m:n7. *~`ђt7.X ȎѼ^7^.4 ȳO7>. -7.  % 7- -A 7- Zb 6- ,ɒґ 6Z-[ Gɺҵ 6--: i" 6, ߄', i6,ߨ^<: I6,ɓe? ,6Q,ӝI 5 ,GW 5+.DU 5+_ʋ.` 5Q+߄^g m5+ߪԄb =5*eDոj 5*/˅j 4b*.˽ j 4%*X(gws6(Qpf'HK5H'ء%'9&prab&b3%WgOO%.ڤ_/%0*$}/J$ZI# L?'j#ܞa#0\4"?|VF"r!Xp1f!ފ<^ <Lco o lm,Mh8w$!F1o V t5QKkWd}1w`.{Z8R 40J ! =B,V L r-`M k{m( }s1X k`i RAnK ;=T (Vh2 ! skz nac $ f?*S`:1TD<miWaIcfh!tX@tAv/jo4Apc-\DVhPt"V R On"`n {N. K Iphs ; tI! J 7 Mofn yQ\ d -X ]|e^` ja 7g"T gkSO o= >t. ~GI~9 w$P?h.Y& kNzV|<o:%) l;dr}\X_g> ..@>JXgiu'ypH/7Kxp->cyEbQfj( BD_@-Y o.FbXk%3 I[fq7c-IBMlC6:Yho(d"c"c_5F0u2 {L N|G G /U g (z P1pa MVi T{7 $'(# 7f  Xzf  // $ AW 3 3 > CGM M s C[ U  f $_r q NB 1 wy= m nro  1+b  W3d S uRb  {?K$  +I % [I" \ Mq5 d:T -Q [ hA@L t TCmx :Hh lY t2LL 9M: x\Q( (  Q\ h <V y y g{8] lIX !se { Oa .5< *SN" :l H@_2= ELt b+u vvZ% U!h 0m ]7s$ P8Cn Zis =qm. ~7W~w  js hS4 \]u jhZY +R5"H(wNeL\KG-<G ]O@Sh6p\]5H*fr?K3|{t[6v}B^tiY*t$PkRdckG$Y ^ K]/:-ic$ =_fA\*.4Kw;GMowx:2e`AI@-HG * @?@T hYWx z߇ d59^߶ 20fc u .:"!pi7!zLtޝD!L Ah!~ v!cw: !^mj!rSAޮ!;S&6! !&N "Gh )"inݴ "5",> T"P1 Z"9 f  i"vߋݱs "*QP} "q+3 #!"ay !"\@R4 !"!E '"":?P""1*ݞ""EM#2#" &c#" _.{#"f ݺ75$"( $" D`+$"| ݠ&%"< R l%" aV}%" Pݛ &"B ?K&" w~'N&" .(ݛ'&"A 8*'" *?N'" [Hݢ'"9 S"Y("aUfW("wXoݲ("/Dz/("ׇ`/)q"h֔ݼ8~)j" i֜)Z"8,ֱn*H"^ռU*>"I*'"X݁n*"BQ+" ENV+!{ޢ+! 82Q+!{Gg(,!o%Zc,!ovB,!&ӈޒ ,m!DҢ{&-N!8e-7!ici-!!f=-!߉W :. Bo߱ d. ߂<3!. CYߨ!. % | "/v ЗXS"6/X srݴо"p/. n0G#/ H#/O:!$ $0FWv$=0bۻh$U0$ڎϓC%0XOϽ%0.D2 &0Ho&1uMA&A1 تeC'g1؉·r'1aP"Xδ(1;$4_(1 {(2;!8)E2֪AQ)\2X֗i)2(d͘ G*2RBy *2)`8' *2!= Z+ 3mU ++3:$́ +<3dӻ̾i j,Y3$Y]ӑ ,|3 !! -3pY r-3:XB̎ -3]7̹F .30 i.3%l!.4MZ.4~C/(4c˽ /:4+7мd/H4v ж!0N4ϥ]10k4Uύˌx0t4]a(Ϗ˿1x4#w6e14e/14PGha14Rˠ@/24BJv24AmC 2419GK24/˂K34g=%˰r344k)L34* 44AU)44 ː8s44Oj44 VE44, 54hjC54v˔p54TC|54D!F54 5z64h)h'64u3˫k6493Q64 qK64Fo+8%3kh82q_͵J820J7n82R_"82A?NJi8j2z4Ǥ͞8G2J<)82-[81 ,J81 j*?z81g H)dκ81' )Ǎ8b1 &ǭ8?1 4YB8 1 -ϑh80Z 5&ϼz80( qF[80 DBLJ68g0 -TDze840~ ^ϡ 80< h( 8/ yIC 8/ ߅zKZ o8i/ ߝǶЌ \82/[ tߨи N8/0 k -8. MW, 8. 7DŽW 8d. 1ȼч 7".X + 7- E/ 7-hj'!7u-ނȪd !m78-ޤҗ3!N7-S޾;!27,!ZH!7, ɛ3X!6J,'ZT!6,ZԔa!6+Nހ]i!o6+$ީɒe!>6I+*o!6*$_r!5*2`Ոt!5*_]ʥջw!56*&ޑy!X5)޼*|!15)mMv!4j)%։}!4)`Oײy!4(8ކDq!Y4(˟"v!#4=(Ln!3'.*|j!3'dk̃عh!y3Z'.ޣa!B3' \! 3&bKQ!2w&VͭwL!25&vއٛ=![2%M=/!2% Ή)!1Y%;!1%ނN !Z1$j|!%1y$qΨۢ 0/$G> 0#"߂S ]0#1߿Ϙ- 0D#?Y /"WR@݊ /"dfߐЄݬ T/Y"Es /"'-^ .!doG }.q!ߪѷD- ,.!x - v=`ߜ -} QүS-" -3%a#,wHkӯJm, hx ,skk+tScԳHr+!1  +k *q _ձ)u*#.V*Kl~)sshWְ)$O i')$hD(tPײ &(*+(( gR'q>Xخk',f 'deZ&xD]٪5}&4. & ] %y5kڪ#k%1\B %)di]$n۹8R$i#H Ap#^ 78#X"Ut-`x"XM<+"b!Wns!dh-%!QQ 5wX]pt o߻C ! `V/gv.RU jvTdOvj3M9;S<xE xUsNB#5&vLg8Eb n,x(oQO WB( ><. !E H2 w;oK .?> ? @kXb :r, b nN^Syn R : ,'hT]y e& 0NEC.4@Q;m4My- c<Jft{ (t8 jl\id{2L\.9D)_P  4 :% lZu2 lC Y;)X %YRj "x ;UO  o\+ ^ ^d 49 }U  +BW ~ 3N7 9 -{u i aN 2  D  :  <8  Th' ] 8 c PM 2 ja w Uk 2 0} zaLO s f Sah 4 V*  Li; z=/| [*b  I j  @ : = R0 #-u) \_L< {D h lNP @ )a  :.i &bt Vt b9y j (p B gLV  W MYM*  CT  0jA n z(p M =t  36  p wGG &} pe6 JAu b  "":  E.h  xpu & ~mG + `=  4 >%2 A `` G  O Q_C X  %g a ; g l}H p D`y { &4z  M| % m3c hQ, M^td w P SQHL 8%= Z2+ !'P !6 t pZ^ Hs l1 d8  B + )3L it }z( V]A ,>d # pC Ux? 4md Kz #s  H+$ % 0CH $ ^q ) s %+ qE B, Y# b0 60 3 bS 7 K} 8 g"/ ? ?G @  ] @ y AD {; RA gV f@ Rz A 6su > #Zc = >Q < 4 < #, : E4 9 [R < ki ": ~ == vg R? cK d> S3 z> 9| ; h 6 \3 / JY ( 91k " 3F  j`  P s  ;  q  X% G0 27<  PF ]J ##zT w-:` h4Lc S=cs 5Bx $~G mrO UbT AZ[, 1Oa? Ei[ :pj 5vx {.(} i$5x a&El LZd =jZ 1zN | C f7 W* F . !  0 = $,$A ,@:P ,QOZ 4a`c 8ttp ;|r j}@c \vCQ ElK@ 4aM4 *bV" Y_ Td Up Lw H~%(} E44u @HGk ;ZW` 7kcU 6{Dm x.8V h,'= R* 4  "  ( "F 1\- ?uB{ P]` ^oJ m* lv Qh> RH$@g(/.0dR;:p>Cg6$GCPKK+eiKNtYUb>,RN!KY6e^%1x[{U_[_oA3^N)N_n b%gq@CjVqnx?0_j2@sj j!+ d>Z. cZI ndtc ~Fb \d] CFY( )%U^ H _C9 4@;g 3Y g3s? E.m `u$ DH! ,#? 0p  ~U  c/  a1O  2f   ' p E\ /S q| 3; {r ? I@ S  ] -, k 7ja | y{Q  Q_of  5d l N9T DeA8 ~8 nr X@G tq* /J4L ^3=x n@H .R 1[ TTgP :mt fO y1/ `hx. ZJ] "I !R8C e{+ } >UE  < Z {1d U4bYT;VC &2JQRMh$kS.97T?#MGJG L&~PhQs(s?T4W/[dL B߭^z `V^߆c Df!$l3U!rg!*u2޸w!X:ݗ2"}}k s"x]5S"sy # qsE#9p5ܥ#|r=m #vM7$x ln$~}z$5YG۹$b2|z$%Nv`%*u1%Pqh%# }o&P _٠oE&s 5yp& ?=q& r>' trX'.!uزp'c!INؒm'!%`j(!`)d(!}[L(%"B׿Tr(b"mցM;)":KJu)"w G)"E>*8#ղDa:*]#՘Fx*#X\]F*#),D*#E 1+$A;w+C$iԭ%Ӧ0S-l%҈2u8-%uj6-%DX07-%/:-%=).(&ѿ=Pd.M&ѥ?o.l&Wс?.&SV@ /&'.B8/&Dc/&rF=/3'7мFY/O'ЩG|0k'mwHL0'FOFo0'({1 (RW91@(έZt1c(VhΌc1(:Arj1(^u  2(6/<2(~&׆LP2(uבt2(jz^֚2)cWE֢2)Z= ֫2=)Q̴ֳ$3R)Iֺ̦G3d)B̐6e3})9yh3).Ob~3)%u>V3)E C4)",&4)+  I4)ߜ6 {4){(W 4)b2n 4*?= 4%*]F 4,*JN 59*7Y #5E* ʳe G5T*޴ʩo !N5X*ޣʧՀ5!w5`*vtʕՒS!5o*giʔաm!5g*VPʖյ!5s*?_*ʆ!5z*,=ʌ!5r*#ʊ! 6|*ɂ "%6|*Ɇ.";6|*Ƀ0D"G6}*ݩɃGp"k6*݋~W"w6*y݌Ʉh"~6x*TnɇՀ"6*vɏտ#6s*51ɑ"#6f*!&ɟ5#6a* ɟQ#6^* ɨo#7T*ȭ)w#7O*}ȶ@#7E*XȽU##7D*Ne#79*9|#17/*xՓ#?7/*e գ#;7*R۽չ$M7*9ۮ+$P7*$۰;$R7)ۭ F$S7)۰b$Q7)ۭ2.j$O7)ۺFGq$>7)ch$B7)ou~$77)vlȑ֘$(7`)VSȭֺ$17M)7Bȼ$$75)3$!7)$"7) 4%7('N%7(As%7({`ד4%7(cxת4%6y(GɚI%6T(!ɹY%6>( )Z%6(=(q%6'>J~%6'}Q0f%6'm[T؈%6'c]dqد%6'CKtɒ%6^'*Dɰ%v6>'9ڕ %d6'*ڠ#%W6&0ڹ?%76&#Bf%(6&bـ%6&qʍ١%5Z&I ʾ%50&",%5&I&5%];6&5%ycW&{5%َʉo&d5e%ٮʲڒ&@55%^گ&+5%I &5$/0&4$ ,_ &4$N˂%4e$z˶3%v4/$ ڛP%Q4$e%'4#A%4#o+rܡ%3v#S.=̟ܹ%3I#<8`%3#@ڒ %\3">ڰ8%>3"Kg8% 3w"M ͧ`%2?"S.z%2"zc_ ޕ%2!ZmڐF޵%Y2!=~ڿty%)2s!)ͦj%1=!"R%1!XE%1 ڂD)0%e1 ڼ}H%&1b ηc%02 w$0zW$$0Z ۋ^$_0F7ۼϋ$(0X0K$/d-$/{`.|$/ۓda$O/Л1H$/LB7$.1T$.v=m#n. ܧl{#?.}~-џ#->jO,#-[pa#-OܡF]#;-@҅4#,a3&ӵ#,2)a",(ݥ$"4,OZ"+m Ԋ~"+[j Q"p+ݰ2"9++! "* -h-!*{5r՞4!s*O\ެ8!4*<`!)82?0!)t]B !l) ߵ֑D ")RDJ (jDO (߅,SM N(lX (}ؙZ'R)^[z'bY-'/VS&4]R&ٔLU&W;ٽF&.h ?|%Y88{%I2 =%r-$vL4ۦ&$<!_`$)$=#=lq r#{uܚn)#M'"X"5$E"+lOm!<7|-!qIsޟq!NU$!!gm s wO: Bq< 3uXw|=FhV0!N+ Y2u3Ec'_B6 hToamw?g  xFR+j\QG%:hK(@g k694FBMVf;t"~p*f_kQ6W4 C epCE&/bAMubbb{BB!x"\5QA]H+: ]"gj ax{D9<4H3IlY\x@n /n#~ {^(\ lb21 x_ 9S; H8Z =l^{ 0Z U%S3 2 G  1(} b _zZ  (d  26?  Oq@ m IN @ *S  PX [E_i mdKTy j B n !Mp G)uT wYst {sRs 3t*H vnn  n@ :k l?g{ Q`g] ~f8eh f%? e %i O\!j wJiyU lnV! j*V 7f8 bf ._S ZZ) s(W   CQ[ <\L< [rH# Egi ;@Q 07 = K3' n% ="g ZN | *t  \ ,D  8& , ? !@ G +\ M >v &Q J 7Wi U NZM k c^3 t tb"  dso  fe_  eYT * eIG B _9= M ]-7 [ Z"/ l Q) y P$  Lw  Df  C[ ! >P 4 5= D -2 R %$ g  } y  i  S*  >6  5 H  -b  7p " A $ pP + X] -- Cg B2 *} [7 x s8 i : UpG 8 6Rj 7 "A 3 l0 , @& ( '>  \  7 , pV < V{ T +j  j @ | "|".  e3`- N?K pDMs Cp)] Fg %r F%%y oP6m xL_ XpfK 2}= z, gWH I~ `t:  /D,$ @+ YV5 tm| Qw` H,J .D. wG\ nwq Du )h,,LC^+=^g=oo1%T`!5~i--w;C$ MFy "c]l ew& aJsQ 2Z ) FN TB.- 6)\z h } s+ XFO   M a , B" S<cX Ih R[/f+;;oxxK\|Fns+xjp;JgYXP $K2[xBnAr9Hf2M/,;GdGtdH) ML2+&?s 6tV"?KbK !qV'BU`t,eju2\W{3*wMD m}Kq pvl DO2]  U 2*!M-e[!pBe!| 88!V0N "'.Y""3"W!`C"" #F5F#:v#l;#E(#f/+$=w`$Qx($8 T$ h %Wd X%z%s &I%2 c%> &U:&%ko&jx6&3Q![&+&: &G* *'j, C''ߣ53 !'`6mP!'|C>!'JPH! ( M)"6(ݺYIg"Y(zݑc|"(_,bm"(%:x2#(ׁ g#(yk֌] #()p(֒ #E)jhܴ֜ !$b)^0֦ u$)YsS֩ $)Q>=ֶK $)D־ /%*>Y p%,*3-w %Q**?ژ# %{*!qV -&*Pv Q&*p4 &*3> &+ &+: D'H+آn {'i+}qؕ, 's+R?|? '+WO (+Hb. H(+0s[ v(+eԆ (+qM(Ӗ (,d*Ӥ )(,SӶ.b)R,D֠ӿR)g,<i֖|)x,*h(q),9W*,R@*,51r*,v'"`*,R7*,h/ K*,-`"+-p8+-҆:q+.-nrқf+D-]ZԻҬ+B-Ha4Է+X-./ӝ,g-Ӝ -,e-ӑ2W,z-~g,-nz0,-kTpF,-7,ib,- _z--{bғ+--\_ҴaO--@S`--+o[~--CjN--MD--5H#--<:8--~9.-sP@ҘV.-\:AҮZ.-DNz.-$uJ.- oR:.-]a^.-D_<~.-t?qV.-^3|s.-~>)чґ.p-a їҫ.e-HѢ.V-) Ѳ(/K- ж: /E-V/3-8z+/2-}K+/(-jb5/-Q}D/-x9ґC/-c'өH/,HJ/,*(P/,;J/,S!<K/,iBVU/,x[bJ/z,Г}U/e,spНӛ^/],[`ЮӰX/F,AIf/:,"0i/., m/, p/ ,8t/+P.x/+k>r/+6ԍ^}/+fDԦjy/+N]~p/+,txy/+ cЇl/j+ UЦf/L+ Eм9c/;+ 6OW/ + ,fQ/ + &ՀE/*t ՗B/*` +ժ4/*J F(/*- `'/* t/{* Ж# /[* Ю0-/G* I7.#* hD.* ևQ.)l .%֢].)P 7Ae.)1 G^x.) Ky.}) [ѐ.`) tkѯ).G) kn:.5) nLr.) fbm.) dqZ.( b ׂM.(s _5ט@.(` \Jק0.(Q Xd׸$.(? [x.{(- Uђ.c( Wҧ-L( ]-,( X,-( ^B -' _^6-' ^k2J-' bOZo-' con_-' f҄؀I-o'y eҠ؎9-T'j iҵ؞&-A'\ lت-,'P iص-'F pؾ, '> q ,&6 t,&1 ~(,&+ 5*y,&$ D3o,&! ]Kg,& m\Z,& oRp,& ӈE[,p& Ӛ8?,Z& Ӳ1.,D& !,1& +&  + & # +% A%+% R+)+% %p@,+% 4Z0i+% Ii0K+% WԂ33+r% jԕ7+b% ~Ԩ6}*N% ջ:o*?% ";^*.% :9S*!% D;F*% \:9*% l8**% |5x*$ 4e*$ 0N*$ *)7*$ !<("*$ :D*$ OR)$ e^)$ ~:kw)$ Mwa)$ d~K)z$ ֎5y)o$ ֏g)o$! ֗ O)a$* ֢@)a$8 ֞*)^$E ,֩۷)Q$L B֯ۮ)P$[ ] ׳۝(G$h o׽ۗ(@$m 2ۍm(9$| J|V(3$ Vs?(1$ re'(&$ Rr(*$ @W(#$ 0?($ B&($ b($ zv'$ W'$) &A'$5 2('$G J۬ '$` Tۚ'$l eۍ'${ +{z'$ Giq'$ []['$ pMN'$ 2d<'$ N/'$ .'+$ '4$* '=$? پ۱&H$b =ٴۍ&R$| Z٩z&Y$ t4٧c&Y$ @١G^&h$ Mٔ0F&j$ `ٙ.&k$ jى &$ y}&$& ~u&$> 7lۯc&$c VdۑZ&$v q^H&$ S\`6&$ I@B0&$ ?)'&$ 9&$ # &$$!%$=; ۶%$]\ڑ% %|t {% %*da%%;?C%#%D,(%*%V %5%f%A% 'mڷ%M%9Bڱڷv%S%\cڣڔr%j%|ڐwra%q%ڑ`YW%v%}B9N%%p&$A%%q 8%%_*%%W$%%'1Q%%>KFڰ %%ag:ږ%%s~0ڂv$%+cZ$%E?$%" ,)$%) $&/ $!&": $$&56Aټ $9&YTN۾ٕ $D&wlT۹ك $L&cۮil $X&qۣFN $c&vە36 $n&ې q$r&ۅ m$&t ^$&&"w T$&: "d' ݞ> "b'ݠ: "\' #ݨ5 "W''ݪ7 "Q';ݶ6 "B'$C5 "B'.Mݿ1 ":'7^2 ".'?b1 "3'Ej+ "*'Hn0 "''Ls0 "&'Jv1 "'Kx9 "'M< y" 'LC w"'PH e"&SO _"&UV X"&X"Y I"&Y2d H"&W4i A"&TBs ="&PLف 9"&zIVٌ 6"&m?dٛ 7"&\:n٪ ."&N.ٺ 1"}&>%݆ ,"t&3!ݖ ""`&#ݦ $"X&ݭ "I&  "3& "'&" "&7 !% K !%] !%-o! !% ?ڀ- !%vOڒ5 !%h&Yڞ8 !%Z1pڱB !%D1}J !|%6>ސO !b%!Fު[ !M%L޼h !7%Vt !%\< !%ue Y !$cg"t !$Zp6ۍ !$dFwQ۬ !$I7u` !$5/w {!{$ސ !j$ ޝ x!W$޷' w!>$H# y!-$b8 v!$I u!$p ܡ_ p!#N(s o!#3?} d!#z] [!#bz Y!}#Yޏ5 I!b#JޮW H!D#3v E!4#&܍ ;!#dܭ =!#@ 9!"$# 6!";2 2!"Z5O .!"vUb +!~"ޒyt !Z"p|޸ݧ !9"Id ! "*W !!; !!%(2 !!ER !!^z !!uuޘ+ !~!Yގ޶> !f!7ߨW H!m .! x ! |D _i Q6߇ e ;([ߴ 5 %y y  .ߙ  U 0߾5, 1 /hM  4h \ 5  , k9C  O8]   @?v, y !BߗY \ >߬w Hz H &N D= " AS  I#p  ~EDI  _Icq | HM߃ nT 1Rߣ K& V / Y   b7+  \^H  ^1~Y n cQ~ > pXk  Z]߄ m>[ߢ  QV߼L 7Ym  V# XU G 3P \ R5r zQT) ^JgG NS߂i n+Lߠ VXIߴ >9O "G6 F)Q EHg D2q {jBL _WA` >DF{ w!>ߓ e@ߥ MD; 39^0 !?zD v<` P4| 1x5* c.< E)O '_8 nV ߄} sv ߓ, d\ߩD K8 e 8u $  h4 P O =e!)- !h>!PK!3\;"! l\2!xn1!~ތ?A!l\ޘ_M!bHިxK!Ny.޻Z!?V`!/8d!+j! Mq! *^v!Bnu!*`!ky2r!a~?!lFqL!U2gQ!C!i`!, Zi!Tr!N (!~Fކ"?!u=ޑ8W!j6ޚH`!b5ޤ`{!Vw%ޮu!Pm"޴!EqZ !;Y> !7G1 !*5"%" "*!"%F," 1T6" ?`;"Q|O"|\V"ti\"Y|u"|Dz"m2 "[n "Dd"3^"!T-" L(C"F0 I"E8 b"3>0v"/A=}"x,HL"`F["WJd"I Op"7K#|'Q #rS#bR$#SV0#IV"7#8XAO#)ULX#X``#W{|#Q#p{V#ZdP#EVL*#5LQ3#'=MC# 0PQ#'RZ##Tj#Uv,# U1#{XJ $mQ\$bPl"$XP=$JrEM$=[G[$4LDm$%6>|$ }A$x@$k?$Y<  $Z?$C=!9$17-F$-<:Z$6Ir$3W$s8_ %f1l%L.u,%B*y6%7"I%yd%tk%m %bc-% XX@% OBZ%C#r%!8% 0t&*#^&-F%&/@.&3$J&8 U&=_&>ٽ!&Jzٲ',&Nvٳ.=&Q[٧7R&_Jٞ@g&`<ٟGu&f'ٕU&nbْd&mQْo'nAؑ'nvؑ''pjؒ&'l]ؖ ='mO؎O'tE؍+R'q=،An'|1~W''z}k' fv{'uOk'Z9i'R-b'5['R(N (E) 4(82 =(߽8:4 Q(ߞ+EL o(ߌ"Pc {(|#Wr (fc (gQl (Y? p (M3z (, (}$ (v )l!0))d!2)&]2!N)1RާF!])8HޟW!i)6Aލf!)B4wֹ!)H)n_ֶ!)N"dO֭!)XB5֤!)b &֘!)k ֓!)oՉ"&*|%"1*{$<"F*ݨm/U"g*ݓc:n"t*݂cA}"*zlVN"*ZWPX"*NGM]"*D@Gh"*'%An"*$=s"*;y"*-~# +(#+{$$#.+s:#A+iܹM#Q+cܥ \#g+Vܐ{#{+K{{#+Evr#+ ;\`#+5HG#+0CD#+!((%#+2! #+8$,;ӽ$%,JӴ2$.,JӶ<$>,P۹ө M$O,\ۨӢ`$b,aۙӚ`$j,kۑӎu$},wsӂ$,}gw$,o_r$,Z@b$,T=^$,G0] $,:M'$,+N*$,%H,$-;1$-82$-15%!-(9%;-ھ:%C-=#%G-ڪ=3%b-ښ>5%c-ڛ;=%o-څ8D%-y5N%-o/O%-)`+U%-;R'c%-AEҺ$^%-KBү!k%-V,Ҥs%-a'Ҝm%-f&Җw%-s ҂ w%-xv%-ou%. Uv%.Ov%. Cp%.)1y%)./-x%1.4$s%0.:%D.@ڸy%F.Dڿ y%F.Mڮ}%\.Wڢx%Y._ڧw%a.kڕs%r.9xڎv%t.@ڇѼxp%.Ozѣjo%.hmѓ^v%.t_фSl%.[oCq%.BZ4q%.bM!. H#;*!. Z!!!. g . ,y .!:I߀޺ y.!Wnߑޔ~ f.,!ߝ_Y d.E!ߞѮ;5 Y.[!߲ќ H.n! сF.!;2bޱ4.!bTXވ).!8Ug.!*G.!!.!-"C ݪ-'"b;ݍ-:"c'һ]-O"-ҧ5d-c"=Ҙ@-m"Tҍ-".[qݾ-"S$peݜ-"wHZt{-"y:Asi-"2S[-" %J-"%;-#Qܡ0-#p=x-'#kA-<#ҹX,M#ӭ-,Y#'!ә,w#V1Ӏܗ,#|BJ{o,#tX_$;Խ۪+N$o;Ԧ{+`$f3ԠW+^$MԜ.N+q$iԄ+$Ԃt+$9&sۮ[+$p]ZtE+$NPd8+$:"4+$%+$- *$U Dۓ*% z.^h*% F3=*"% d*&% }t*<%9 AڶY*;%Y gښB*D%{ ճjL!*T% իA#*W% դ&)b% ֘)m%% S1֋)}%E {Hڪp)%k fz{<)% {fP x)% a/Z)% 3` ?)% mN|)%6 RڼT)%Q Mښ(% 2Bg(% ,KCL(% Yn?'~(% %mpڌ #/%}zX "%i4 "%6] "%XQ "$'< j"$H#0 J"$l3$ "$D S !$U0 !$Cd !$s{ |!~$(8އ W!q$4Xޛ ,!X$Eޱ۴e !K$T߻ۤE :$b4ۘ" $$n]ۈ $ v f $A o ? #k]| # 7OU #3NL2 #im? |#9Sl#05%M#S.,##(q#M"T"w+p"+C" D !"(["P&v}"nGh"ofyH" BL*" )&"  !  %! )L=! Bs^x! g}Bu!gW!F:!/!e S BD nl 3da g>~4 M $  %..LJYq{g WOc!H)"*gQ-w9QuDA?R]8[uf.h{asU<y7 ] 0uMo!bd0FH5"EBpLlBtk^H 64FII D PP G Rw jt Y Y5}P a 8+ j  pE  y q@as  d|5<  xX  7l+ T tjq y dj/  >Y(  9bU  kMqc Q D5  ;f  064  /+W ( Y W ys  IMC  S$  7  )[Ai /bDT 7X @&0 IH[ N| a6[;$j+\q(kkijqt$CiE$2\}J_K;C*n]9t:+.f~nE/"S @Sx4f(XFK x|T}< pbhw )cA w((  hR Rf =V .,,] C, \^+ m[ [t< M_W !Nd' 7j3 ou!i _O JV 06 !\ 1 U DU U(m- cB> u `U sn}2te]i6TR[I@?=1'1i) g!B6,qK d \3;gm}\XB5A!e/{ta"K-&m6A+KT,$t- !.u%8+VNM)=c[%2wg u{ZQ|4l+ "`=]IN\ Ep <v.1Be(Z\bI#{.x. o9 `FLYEf(:u52Oo'$[d$)fQ3A{75v?#cLWUOeDx:"2j2*BU.6^9@v%GlVK\6h2 zSt r+&^aF.N<i5:<+x=U:J7WL#zKm>W@T0TsPW|0y__uZ`CVf(c2k, s")t ILXw n~i uxa8 P|4 $} Q x *= {Q Ug y z xr e7 uC 6~ qf  o5 ,& d h:Z a nv XWw z J. K D $21 6 dm +}p ; >" `   3 jM S7 ` ,$V/ }+7_ A4f zf@6 1(H UU'  ciD nvyr (f| p)[3 X-a BZ| 1!B.XOhIKd))2H9xgAKO[VwVnd'(|{3o.cZQdT?E['DC."S b2~ 8V6M^&M h50 ~zoZya n] U5@D z2c M" .bg w zc )_! 9&w YMt'k b W yy ;Rrcp &=J #,% & a Ss Uc-D #PS 0o +S H_uu vB!cx )LT u A 4.U@ ds~zM Bb !|[eup]=Z']BZ}&{IV ( ?NB4MNY|paF0D{ w+lf{3-P(g5K}g!x` )7h fgt55*LNfgi0qY}y681] aAP{+)CHqP|ht!)P_;-UN4j~ Qb}1z_dagR~l>J>M$$?Xko,?(Q85dIJZTXU8e)rED ,sDr Keu hO- e;~\& ,UL\ " G L  # W%? K 7w ^ tJ 3x Bw^ u gZr  9C߂A  u .ߕ~  acߦ W !V>ް v !Hn 4!8/߻3 M!.߱T !U!ޞy 1!q!mބ \!!C{ ~!! 'qk !! CW+$!! C:C!! 6Ik"! { ZX"! Sfs"! 4t"" N݂"$"z -݋$")"o ݗ="7"d ܽݠ[#L"\ ܱݩx8#R"R ܨݲL#_"K lܙݹh#m"C L܌#|"< >s܀#"7 +dz#"1 @d#". 6]#") "X#"# C)#"! A8$" 9F"$" ,]4$" +jB$" %uI$" !_$" s f$" o i$" a~$" X ~$" Q$" Hq $" ?l $" 8h '$" 6e ,$" ,d1$" *d:$" )m@$" g#H$" k'O$" r3V$" h/\$" l3a$" i;h$" c4j$" e:m$" c$" ?یz2$m" Eۗ݁%$e"} Jۣ݆$S"u K۶ݑ $D"j Rݚ#1"a Tݥ#"U Wݲ# "I ^5޽#!= cF#!3 m\/#!, xzL|#!$ ^pb#!# s`D#! ܍K)#j! ܟ7 #V! ݶ(">! ")! ?"! T"  p"  .g" ,A N" 9[." Gz"} Wݎ"!d eޫ)!E y:1|!, ^4k! z:Ut! ?=J! 8D,-! PK ! tR z 0ߕ\ _ Q߰e = +yrt  @O | O, o ^A ` sdU 1xiG TbC: Ni/ ;G$ # E  'f  R \ * i3 @ A Q/  g5A  |0^N}  T]i h mP a8 y= < ( v ' i 5P _ \n }U ( _NF C 3-= V 0 j   =;r  d`a  I V] 2 %. #  6  ULN  w` gs )s 3< ? l V ] hE8 I ylu k{6 d CT& R ( < 3$ , XK 8 U^P '0e '%" q>_] [N ]\E` &"+x~ ##m  OPU < ^b"' 6=2 I NBY (}sl ep@ *5mV Zh AXQu 'd ]eR 05=  &- DA8 uwO ondFFs#k:34ZK\^F\YS+r'z'iRf.X|DJoX\9<y&},i8[OmzU7U,$+2DJTCozjx3mBEuCRa -hK 8^|8 {`+c fZ, K - 6  E  H{ o 1o~ I D#I  \6 o&B !MQt Se^ l {rNq J ;F  u! d& Y+K J_} l :-a J />: $ R e  r)= Rjv  ~-eq [ ;XM 4 NC  ^/  4j J\y ~p dsM Eh* W@FO!8\@F$nmvv}~^Vn9/V D)$!-WK)n/o5Jf%@=;K!JS[7^s`1eHiqrflUFp<lr(Sx/A|_t ki4@G`EY,XSt {Qi _L})}IHCi/DiPA?j? +K=)#;A ; R;"&k<;Fy=M]h>aztQ@z}Z??oC,?W!>C> 2>$@I3C`BEzSuJ5gXMIuCNY*rRq bUsUX^F_4@5fR*'ljsd|L+~4AvY'oi.iz5^y':Tf4@XC1,dF(tKOrS e#XS8^AJc2Zh"sn .so8 wZF yAT0z1`9z mGx }Ru} Ztrfqb0qpT=zoLLn>u_m3kil+evj[grSdhN`WEZF=W86)R',=L"NH[Dn?1:z? 7kT1Xf,Jt$)=/#,q8a?SIAR2Y(`+g 4kAoRu a$yo2~~Etx%Tft+aXo4pEk<}:jD.viMigUbf\XdcJ`k A]p5Xu$'S}4O>}KIvFXrA` p;il5u$j/{+i+3fw'>_m&CYe'IR\)PFN-U>E0Y5=2_*/4f%(4j 4s3z3}3v3 r4k5 c6,[75U7'?M80LF96RD;<Z>Hf;@Ml5ARs2AXz-A[}&>`s9cFAbMKcTXc[af\h i`qpaxv_|'|b5rzd@iuhK\no\Ihvm<a{z-|W~eK| V@~D3|,#z${  3uIqU)mg<fW%_xh/Zh;UOqJK7WUE#Ab> ! r0& }'~>&oeL `lnV NgF%?6# %),5!BA/HYJOwq%u{\9UZ`J?9gb r z}v)h}5O~Mbvj6}otK!hI Z!'SO3I?O8eha0Av#b{ )a>Lf|1I8'}o7 >HK,` GhpF Z4y yrdw +^.a ZRH ;F%] )  e B $ FW % b+ V f& HNA5 z j&= R @ e  I9ip \1T pb ; # f? f Z Xw} G'  -8 %8 N+ p l?j  ,K  $ 3v _2  "Y>  F'O Z wsqg X $It  [$ @ p  "\> R BL f:F  bV #8 ] g#n) 8'8 5aT c=kSj %/| y t`a^m HN&/ j>| M[(o@ A*  *d4i% hM3 TH pTb Zp --% ~_rD k]xO 5L:* :7 L2 JYG "R ;& nQj1 0 I 24rq\ ]>Al  .` sc T _] } Ne % 8? | "` 3  _ ,v dX"U +)9 Vr'/ ifsY 4ny |Pb D jߒ  ]BQ 3 PߦC!c } :wh! /N'>! ! "޷3"!. M޻"!] Y݉"5" ݛE%#" #|##p/#S#H"wܜB$#WUe$3$|۴+f$q$1Zv%$'}ڹR%@%^iڞڔ%%aMIa%%M7&R&=مt&&)7v6ٺ&&i#x'p'eCU''%'(+د((MKכ"=((zt*(#)Tנ.5() H@))AK),*V֞ՄL)*=?JU)*W *2+դef*+Am2Ԣn*+v?tv*-,ԣA0+,}0o+,uz+(-AtAԩҠ+-q?W",-k0T,.nӸ,y.)gP[ѵ,._a э-/a[9-\/Wo-/RX-0(N6-B0WJчψ7.0F7S].0A 4.1APѱ.|1&9l/1F63Ψ+/1s5lg/C2-uЖ;/2.KW/2,"03@(Ϻ̦=0e3o*υ~V03*QU03,S0"4,90A42ϝ14M7M˖+14;$vK14FGg1:5L}Υ1}5 SNe154]=3ʳ15kb|2;6hͨO,2j6k͈+R26n>26pp27:pSȽ267Xv/ͦȌ2x7vye37{UQ37#"z237sU3#8hY3B83̮Ƿ_{3p8\sqǐT38mUrJ38[;U>38=&2395 *3 9"3S9*̕ƿ3u9Oƪ 49c^Ɗ 49<^$49#H'493 *%49D:4):V449:!c94E:7vˣŵE4p:^ˈŖtC4v:qˆŊeG4:fhQF4:WLCL4:LA0B4:= ;4:0 =4:$&4:%"4:2< 4:MT ũ4:am ŕ3;} pf3;\P3 ;$K33;6)3;= 3!;O 3 ;c 3; .i 3; >߹ r3 ; Sߠ f3 ; iߎ L3;' { x 53:+ Y 3:> ŽB 2:D 2Ž& 2:H 2:Ů 2:[ SNţ 2:Z l^ť 2:` 2n:f q͞ř߃ 2Q:h Ře 12:h #ŖI 1":l Jŕ2 19h pƛ {19h 'Ɣ O19m HƗ .19c 1eƞ 09f RχƘߠ 0g9e m?ϩơ߆ 0J9[ oƣf u0"9^ ƢA E08[ ǥ" 08\ 4ǣ /8] ;_Ǥ /8^ ?nxǞ߱ y/s8b _ФǢߎ F/F8[ Ǧb /"8] ǤB .7V B"Ȳ" .7I Pȸ [.7F у ,.h77 3ѫ -=7, R-ߛ -7! vf| -6 :d L-6 wA -l6ө ,A6L ,61L,5=V<,5aԑK+P5^`eu+5m<,+4Kˁ*4u.Ղ˓*X4c{˩h*4M7˼/*3<P9)3"s:փz)b3 }ֹbg)&3H&)2H>&(2L׎W (R2yV( 2vΘ(1[>#gγ'{1?Y]آ{';1&yr&'0<O&0?t2&d07 I&0 U%/&#Tj%/FlڢЍf%6/bmЩ%.L 4g$.-N{D$Z.2$ .#- 2U7#{-1ܰZQ#+-Qw#,|j<ӕ",Ulݘӿak"B,0J'"+-0!+Tފ2|!I+T8!*)| *o3C߄ե J*HVK *&p),z_Y)4>\) O%(ewj(tnםm"(V)غ+'1DWz'f] &'/t@&KWV&G~4.&p٠R%N?%&16%/xe$C88$bh@$|cۋz#c/ܳc6#6EE# I-"+.N"\D"5݆!h,u'ޫc!@D K!b!u]!& xUg/W ߂R n4BEwf,_m#CILvJ:x.YA)2]c{Y v? $m*]QUlrG}A}8AR1&'#zkV %>C Rg Ma'P3;*QHb{X%0jBIun"c{]yDdnGGf&-^gRS8LW_]D! 9e+A3FUy,g#_*:3XY 2t `}S 0]j < I " G% | k( D4> W^ $|.}t x&VW Y&5 c4% 6#   -07 BOO Wmf q \tp B`Y D? ** 6  Z  z( y != ] 5T > Ei ) O} y Z ` a M f 9 n5)  vJ2  ^8{  w?o ~ 'Ea g 9IW R LNL ? \UD . iZ@ # v`:  i9 t o5 f  x/ T - A y)& 2 r  p@H  jEN  mKT  lS]  hXg  g_)r  be6}  y\kG  gRpT  [Lud  FCzv  48}  x+6 { k+ z _ " x W! t N v D s > r 7, r -9 p &> p Q o a $q k )o  <q t Lu f Tu T( j{ ?4 z +~=  mxF  YoR  FlZ  8gc(  %`m@  YrJ  TvW  L{i  B~q  >} * ~z3 ? xj* J s]' Y mO l d9 } ]+}  Vp  LY  FL  ??#  7&3  2@  . P # )^ - %j 0 #s ):  6? x @C t GI f YP [ aU W iZ H }e >} j 3w o 'd | Y  O~  Cs  9j  2c  -Y   P H  C  8 ! 4 #1  ''  *&  -   3  9  ? I ) R0 Z5$ b@0 hA4 kB5 nB: r=6 t 74 y -5 { '2 #u 2 0k 3 :c 5 D] 4 MU 4 XN 6 b H 1 m? 2 3y 2 -)k . 8V 0 I B 0 R2 1 _ 3 m 5 #t 8 . w7 = l: K4 ^9 WD P6 e] =8 wu -4 uj 3 `K 1 N2 . @ * 4, $ M  1c  L} v m _ r J #T 2 49  A $  L  ^ #  n$8  z>Q%}  bq/h  5[q h ?KQ I J6' ' Q&  \  ,%e  QEl  n^t  .|U l G1 Ov W .l i] 2yP R/m@ vU[r. IKn" ;,O (%   B l6| /fG I' g [1< u%B~ QMn s%\[v WnB< }-i { : i < V sx F &?J 6 ;tr " WK  f-#  yWz &g^ K&W; w9>m J&= CX sim =y5  3e  q FO ^ dL K |}~o; %jA$ ]P Ba 3 13 k$w 6P CH# z]g 33o? G^w \La {FyP qhu> 2J9' u0q G Bh*I)?A|N zg7=K*! bc6JHvWtWgt+kK<%~4 zL&j4{ hT p{;E X4%  = :Q ^a J [v ~i, 0oD B_ EXD 6og6 Xw#R Tm 3` N% K;: Bxy+J fO[ Ou % t  KY N v+Az s 42~W BI* O Z  2j. N d{~? n knL U=[] .Il :s ( ( Fr L hj  e \h HY= =? )0 :  ?H : YW _ fk spS }U7~) 1t@ nL g\  +]s C NV Z fyN y gsoE VUS? H>C: ;!)5 '2 / , ,' B%$ N5 jK$ `w/ n`> Bn L 2aX Ra  ?o 6t ,w   " ~ (  0x Bs Jn X"f j-%^ s4'W >*S{ I+Ip N-Fh U.Dc \/;W b1:S e16P j1/E n0.E m/+A o-(< q+$= o,$: q)": p(7 p(!8 n%9 k!6 j: d8 a 5 ] 7 W4Q6 K9C@7H!-O&!\1e<oG{V *d t:n gLxX_ G{l 9x { &{p kk _h% K_+ 8V1% (O98 C?O 7Gd -Lw' ~ TE cZ` P]v :{e Vk* <r 5 ~*H| LVp i3`a UnR a {{A > w4 ! [t# 1c R< E_* .\ _ ~ ? r,  D> N) ^K+ nyH@ r nP{ R `o - [x] &|R k8C XiE0 } \b }`Y QKKl 2 o FT^ t L o^: 5 ) [ # &Aq  }f qLS 3 :) @'U ~^y h9u3 3$O ` I}u B c~ + `.i @V X P/ FJ-@ `(r\ qr]~ |'l  c#EW M(6 1A <K 4 "* J MF u Kum< ^!~ hY=q E] 2  (w # `Z S r6 l2 `FJM ~lC ) (nVD KOG.2nST6 ?@2KG"FdJ|Gkw4B`` BKg>+ ! _y tXSK  ,4 Rn ZMw Cz -c`p ;V?U ,! Cv  Q*5 DQ* Rgn{ PU `&/fHsz.[ *P3vStt\<1H N; 3fy0X]agk6J,e{.[Cd e 1 !v$d5i\fU*iklzB`lhQP&<WL 3mh;K]Hh7 O1 -bvh Zdb߆| xX!i3Nf!Xr!C/ "G6ݦQ"n(|q"dA#1C# 9#.&ܴ#acۓ)9$,f5$F*ED$ Nv"% wZe%:*jڰk%fڈw'%ha7&qu=&`9L&S "'CX^'J1ا'`$YWؓ'&g(F=S(-b(~](( 1 9), F =)H֧UQ)qFvb)dXl)19vP*&* y[Q*!r"{+NfeԞ;+m]4Ԉh+Vm+JMN6 +A3O +9 t ,/q \,'Mߐ w,&"0x ,;=Ӯ !,eӐ-!,u҂G!%-al!R-}ޘJ!|-du8!-LX !- $!- !-"+.*ݽ6"P.EݬѶI"^.Mݏѩa".hgъx".}~Wу!".q@u$".](a(".F\,".BS0".+H4"/<7"(/68"//+8#N/ܭ6#P/ܭ2 #]/ܘ-#o/ ܐ)#r/ ܉$#{/ ܁ #/ z #/ r#/$ v#/& i"#/, k#/( u#/% n#/' |#}/ ܄ #z/ ܊#n/ ݗ "f/ ݞ "[/ ݬ"Q/ ݯ"M/ *ݽ"9/0 "3/9"#/I "/X1".o;". ;Rm".XbJ".}r2"t.%ݙц"W.t,ݽѕ!0.b4ѧ!.Q:-Ѵ!-D@K!-.Hc4!-"OSq!-X|P!r-bޡ*!J-i* !-pJ ,u3-g ,wPYӈ ,gws߅өx \,ExV ), y6 ,z  +}V6+,Q}g+Qsy.+y|ԛtl*W!նoH*9Rk#*eU*$!`#*HBZ)}9kSf)|}֗L:k)WֺF()/A(MH=({D;nZ(y;:(jج< '@ O?'1AJ'j=B'hD[&WٗC#{&KA-&-?%a9/;%p7=D%vڟ4$I)1$ V.M$J,R$!}*#c |ܾ'Q##J$ #|& d"wfY"wݡ"G<!|t_V!W!#ߊ T4|O ~h-R9$HD,*`:0]5F7x;.T?W2C#F4UFU&GrEXGdG,6MG ;`IehKc~M#8R>QDVLXR~VZ,1)[jfZuIuZ"! iZgFBZ]NJb= g NDcn~o wG# } f=f xSF r3T lB es e ^Yd x# XN  Q)W } H" D> AZ  ;\>6 k 0 O *(!  "i,n 5+ aW '   q%d w }pI h A$ ;B3 J~= S bGb M!U ][7 .d 3qasoo 7|C# ~yamid \FNp Su>w4P%,$:NA@ ^54j%?p#32K4<{,IeJ{U0h)]4zgQRCu(y~hj~v5Vob#DYAklVIxn: L.MC#-O "B+ pIyS+Td50+UF9TA:k]ua&o,}~Zc{*;(khpW W2G(S8K&w'iv}]VS1=  7%Ve|N(GIo0#;j<)JEsYW0}{cLkt 0 w'0 k?f8 Y[d TOo ,eB m31$ U &J Dt0 )me ; g 3)= *?b  6R 0 CZh c W/y bo qsG* a"xM Vmd  H` + 6`S K ,JG a "-: e' O 4 5 P e } ' r- @ V: S !CH g (#X /qb 6ck >Gs- L1y; T%|J ] \ l}k s{v |y} .tqt ?rem Lo[c ]jGZ of>T wb2O _$pF ]kA ]b< ^W2 `S. dL' g E j= l9 o3  r, v- })  )v  .m 0b *6Z 2pz-DCp;c[sOIxx|:Gf]%8C1xqdg9)("U2"1xrFm{_QWJ-5g {J |O'qeKeb |VtJOS"DV&h1u$EQ1"\.fp#,?K6JK2 Xh ydmT/iu$m~'}EaEkv\4C#O  M>n/x_m#E'J'e|b+= XDIZ&(L3/Z@8,OIV\'r voz-Z>w!bhL$5WzjKNeER 9 ` | 0` 7+Q  un/ V<e }  ' IN"? s{/ P<@ MO Y[ ' <k })Fn{ F* (t  bVE >X# jK}O:C>,K%)A6y{hu8(@3"T *CE \6~ 3gI' 9V\D h -6~@ x;=g h YU7J H A ?M. 6=m %?<  Y  Z&] z + JbD r&#x m7h ~FDU =}S h;7 xyTW f k"V  W4QM J 4D5=#9aW{|P` 98 2ZuJl&r.`? % kZK L 9n0!: ޻|!Qjޤ /!dFޓ& g!vq|E &"8d] K" Ws "[> T"^(* "H`" #0/ P# ߘ / ~#q O # L< #LZ $*r $& ,!S$-Zޑ _!$7;x !$6]Q !$="ۿ !$Bۿ8 &"%AڼV S";%Fݲڹ "b%GkQ݋ں "%GS2qڻ "%A#N /#%9, N#%1#< z#% gl #&= #&` #'&= $$C&۸ K$N&۩& j$`&ە4J $t&LۂEv $&+qT $&U hj %&Nـ E%&yDِ]%&e=٨J%&KU#پx%&9v:!%&#Q&& &&& ! C&& ?H^&& e&&heـ&&rJW ٞ&&L- &&( -&& W'&1='&[QO'&5*rk'&y +ٝ'&Ne4H'&/J8h'& }5C'&= M;(&V_ (&mٔ7+(&QziD(~&%׏J(c& Vת&g(M& ׽`w(6& ٍ((&] rV(& _ (% TJ#*(% 3@9](% -Zڠ,(%I nO(% ׋(c% ]֮D)G% *x)*%p گ#)%0 Y8)$ 04=)$ ]UkI)$p (|ۻW)l$ ֦;h)H$ :eq)%$ yی)#H (q)# g?)#bpdg)v#ssI֝ܲ)Q#1GI)$#@9)"0%ݏS)"Q.P)"a%|)h"ֵq)5"kݮ8) "0 l)!i M])!*|ޟ)k!? ִ),!Nn* |*ߛ) BKb)} գK*> ߟ\* = *NTO *}Ք"*R6N*Z*n7P*' Հ*`db*ju"*D: *zf "*`_d*"*MDy*I՝!*C:Q* )*Ky)bֻa )&v"J )$Z4 )G)֡ )<D9!)=Ad]!)dH֑!)QIQ!) [*")1czg")fgֺI")Iw")yg+/#)z܄֧X#q)0Mܕ#j)/ܙU] #`)zܫ֙ $M)F"۷ ]$E)B $7)LDք $-)X; % )4 e%)}x %)gSo %( O # $&(k< J&(s-׶ &(.Z=&(%Oa`&(zxiש '(({ &_'y(ؓb'b(PVئצ'O(.&ؾJ'6(|Z:('(5םX((;c('b> K('؊('P0w@)'V81v)'vKq&)'pBYػ)'Ej*' }V>F*}' Սآr*f', 0jզ *R' /մHP*B' ؒ +''< U+' 6fu+' ty|+&\ :+& ,n,& pDW-,& !Wٮ_,&' ol,& tcӃ7,r& )?ӛٍ,X&F ӱj-I& ҿ+-4&1ce-&x~٪P-&=g-%QB-%f%-%1ڛ^.%LD>.%2Z%d.%oY3.%oтڙq.p%>]Hѝ.Y%ѭ .H%\D/*%{ڨ4/%7JC/$ `/$)i\/$vm?ۦ/$@KVY/$7m/$ІZT/o$Кۅw/Z$^k϶0<$"20)$' 20$bR O0#ߢܘ d0#Smߞ- e0#&AߎI 0# tZ+ !0#lrR1!0#\υ|V!0q#gKϚܲ!0\#:\6ϭ!0L#C-Ͻ!06# 3"0!#V("0#~M"0"hݯ~"1"<v'"1"ZC"1"8Z#"&1"oG"$1"·d #)1p"Λ݌'#)1X"aδݭE#/1B"HL#(1/",f##1" x#'1"z#1!}".#1!k4F#1!gHY#0!\cp#0!Rvތ#0}!jEϐޠ#0c!WB ϧ޴#0L!?>3#02!+6<#0!AS#0!?j #0 At#~0 Lܑ8#c0 KܢT##W0 Rܴf0#>0 Vρ;#*0r `ϘF#0_ kϬM#/H vO}#/4 1Of#/ PNV#/ gL:#/܏K%#a/ܨ,L#L/>N"(/ YO" /"lP".6 рQ".sI=јM".aj`ѧG".PѻBu"t.;ݜ9P"M.-+0"). ".!-'0 !-KK!-ot%!v-)ޝ8O!P-;D+!&-G\!,Zm ,rKO~ ,wsxӓsq p,f߰ӢT2 3,UӴ6 ,E+7XM+$Gg+51+ V*\#j*SIS* ]*%* V*)>#6G)kiE|)WgM)XgE)|1(|S׉(o.כK([M׬I(Qشl'D Z>'3M1'-&K&'&v]Gc&#)&0%$? D%l}W%:P%-3$j6r$HVC/$|Te#$UZ#|iZI#0r"P?{Xz"݆$ X"w ݎ"lJ3ޚ9!b~ޠT\![Oެx !N(ߵ Ki?}߷yc C7- 8"7L|<_+X #n+G6 Tr ]mt 0 & ]l Lf w  ..  Ie %x  +#  ) Co n/  6 #  4 "^  ?1;7@6%0*Tw!C;@ y(EBg Z?Q1O/2T54`,bRC/i *s3~'NUz,THfyI`(&Z3zDL9GB*7 3L#iMd>au3 TtU`5$(|0BR2RuFDbfQAq'N fV F F< 30  u8b / w  $: $D hx 7] [ Ur Y uN J Tp . G  e(:9f  l"e t!nGG ! 7"YS\ 8"ܲ. V5#Mm#06$g*T$DH$n5RL%N jھ %IT 3&ߩ? &dIo -'Vߠ 'hgRkW '< (FC!(J&!])cVFSW!) !d*rjjV!*=G!U+ dBa"+3",[ݥiQ",.w"$-ac|ݿp"n-WQH"-R)ݺb"r.b#..HЎ2#T/mUl#/< З*#-0 jܢ,#0!'1#ϧ޻# 1!Yܯ>ޕ$x1!~gj3$1X"^3r$n2"~_$2B# W͙$-3#;!ۅ ܧ$3?$s̍x)%4$ڳ>QN%4%2˱% 5%^ڹ=%y5%+o.siֱg~)s>.Bb,e)>/@*A?/Ջ`">*?/9Z*?0俹*]@u0!Cf^*@04%*@1K;Υ/+{Ap1hFZ΋`+A1u+B2]Ԩ\+Bt2%(T<+B2',DC3ӎE,Ck3(c,D3hӻ,,ND3)Sӑ,DH4B1˱ -E4WѺGˢ%-JE4eҡ ˒T-E5y/~- Fw5XϹgo-CF5/ҝ=c-F5.R#.GN6ܸBT.AGz6ћm7x.G6uA#.G76.9HF7ѩ.uH7iT//H7_/#I8!ȶs/HI=8-sБ/I8<9&WǾ/I8G,ǵ/J8OϾǬ"0uJ*9Z_ƠO0Jg9c1ƛu0J9g{]ƕ0;K9qJϠƉ0K:zWŅ0K-:!|1Kl:ҳwoY1_L:΀2M;O=4.2M;+S2M;'k21N)<ͭ2oNg<Tr2N< +04PJ>&?4Qa>(箐L4$Q>-tv4_Q>.ˑW~4sQ>-|ˏL4Q>,Y]44Q>,E74Q>+424Q>*4R&?/5&R.?1ʭ5GRG?3ʧ'5gRl?:ʇC5Rx?<l}A5R??ciZ5R?D8Vk5R?E.Hg5R?H-E{5R?L&5S?Q5R?Vw5S?]rڬ5&S@eg׬51S @hiɬ鿕5=S#@odʿտ5IS)@rUʮ׿5SS-@p`ʲѿ5IS1@rTʮϿ5aS5@qMʛƿ5^S9@pVʯ̿5SS1@sMʞȿ5mSE@wPʔ5aSG@}Qʣ5eSD@Wʒv5qS^@\ʕj5hSX@aʗc5gS^@vʞW5[Sf@xʦM5[S]@ʭJj5ESZ@ɬBb53SP@Ȭ>Y55SQ@ڬ;C5SB@ƿ6=5S:@0,5S@@ ʿ, 5R)@ܿ(5R)@'ֿ 4R#@A4R @R4R@6q4R?@~4vR?^˞ 4NR?p˽14BR?ƭ7m4&R?LV4Q?  `:4Q?%d4Q?Q4Qr?#m3}Qj?/6̘3UQN?7P̹33Q:?>|q3P#?IZ3P?L123P>Qk 3P>X̍=2bP>Z#͹S2(P>_F|2Ot>ep|2Oa>kP[2O8>ó+2dO>wͻ1)O=1N== :{1N=qhaq}1~N=ΕnS1QNl=Աh1N?=`0M=&K]0M<Tϑ#Y0LM<ѲUT^0M<sO10Lt<SL0L@< ИD/=L<[;/K;&27T/K;~`+ /UK; δ".KU;B .J);db.qJ:ѭ++.5J:S-I:"E-IP:gғ }-FI(:K-H9.0-H9 'ӑa,GH9 a޷,GQ9 -0,G91 Ӛ+ןy3(-Ch6 %8(B6 ׄ'VB5 6ؽ<'A5 NF'sAR5 ؽ&A5 /&@4 يPN&;@4% %?P41 ._%n? 4< }̾K%>3L L`̪$>3] 6ۭ̝$&>A3h ̏?$=2~ ۞2x#*=2 Opl#1+ :hΣ1@1)+  0* "W;0*  ХD/%* /) j&Tq.)& ѥ .+)5 45 -(C V׸7-(M .Ӧׯ,)(V k آY+'f Weؔp+w'o 2Բ؎*!'y i}G*& un)e& ufQ@)& *R(% t׌DW(P% 28'$ @<'y&$ k٢Q&7$ ( %# lO.<%{# ۷$# mi:$" ^#i" E#"* 0+"!. r"S!> Y޺>]! K 3߯ X Q_ߋߠr N A j ߎ z PQ~  #s # 6d  k{V" X` P  8A7  ,4 ; d/p  >[!em Vv h \ }F - @ eV'ab&L]y,]H<0 *Kw58bRa{@EkF|ArAyjcCj~+pLE{Bbut"9vn N g=x Yg vOS^nT -Y  q|UX TP< KK# S G >E $8d=p;X"&# 9J{.~`?*)!wQ}NhX )8 z)Y W G HxkW   Y ,}  tY ! : !g y' $ nd )& & )g  u + z`:n -& ! 3i fri7 I> dn9Io nL )(TZZmrYz *M] ip\^gm0]@ ^<K_=6P`xd ]j Y^h[E @T WLR 2K. jsD2 >"> e6A ;<0 /T(2 $_L  IE& IU E & XYW+[7) aPGbJa&$<0r6=eC~K_qS|2N^X'g(?^nxZ6\yti5d6uSpMl;l2y3)RT *<ys >m%s: [5< x E 9Vn BsmLt y~?tJz *Jd  P  2B 'S- \` +oB 7M >' P% T85 W_H hD\o i[lP qtu's }Ra |>K /v2 \q  un~ "qZ 8l? L&o+ X8t jNp  _v} - pwq I yYo b ~R` q GL z ;k8 q :a( j 8S X 8> K 63 ; #:# & >;  W8  j@  Bq  +G` & ;SM + TZ5 7 lg! ; r rC  SyO  >qV 4 "c` L Tj k Ls !t ;z  yv) {  s X k8 %j .6g IQd a3bd tSzew vihy^ lX\F rG>* z1 ~"~ v 98o ^Yg #|to{^ 7CQR M!3F \: m( B.y cOm w[bs K:L @) 2/ (D I9Q n\_| rPb ~,B} 0j EX ZI/J msYu5 q;V ^, L5;bN,/s@&jv_=>}vX61Jp ynIO C"?^q|pq J;S'n<0U8B)?m~G ,IM:RSdpW6f\Yu6m/Y> X V%4 RLS_ Qk~ e nPX & =L8 L IP BC f =1b ? 4J  [(k 2=s p P n D. 4 l   G'` H$ Q g*,  b8^ E=? auD k 3N ( W 5=` W]vo nt WH|i 'nM W067 KZ]! ; PP%  " 7-% Umb yj* O^?s Z\ ;*kI l]1 sr ;KZ  L 0E9-vjt>ELO(  _ Bl37[zk{wdouP7Sk#4'a.d ZU$ RNP K_ t E3B >_x 8e6; 30[ . +d\I (9i '` %T1 '%Z@ (} )h[T /5y 1r= 4=0 9Y [ ;'y- =q7 _ @>v Cyd C?=" EO(  Ht\ 1 Gw l LE8v QP T!_ ^yL 4g:h ]n y`U] >%y #dr g T[52 vuTRj p5By u.1 Z&"M=kqS =" 7':/ Xlv@ ttN zBAa R,'t 1cQ zv ,@^* QG/ AfnJ h* `'a I4& $s+ tU N- U>F YNV t/f |O| S my 5=oN Y$ BG"[ 87 Z!YN  s f, o0s. Ti-I AAX[ 1 | IsZ ^ VC; #9 ]M@ 3jt fA b,m+ G{9 $/bR  $` a! ]q ~C   =mb 3 cx g vwM X M>>  6S1  ! B  E{ s* h yFF " /b 8 w <E ~ R\ ^` o @X: x -*  m :I e" gr zZA  @CMk  B  n: D* I- n ']}  1`  " *; ^! L O ]p  3~_  <i6߿ ( FI ߵ r !Ohޮ F!U@߬ޫ _!U߈ުA "!!ZHޢj ]!!`,ޠ !!_dVޝ ! "j;ݐ "L"sݣ݌ 9"q"wx݃j""rEw<""7qQ""io##{aP#V#[ܖYs#x#Ay~T##3EN##F$#F:N$$@d$S$V۟=$o$g(ۀ?$$HV<)%$/;`%$: {%$j95%%%%7U%M%ک4n&^%ُ5F&%\\2t&%<|I3&%!P+7&%8' &?=(' &E^Q'A&دL'b&[U؏S'}&@8xY'& Tb /(&-g.Q(&pV(&Vz(#'`"؁(4'y;؍")O'lؙ֜ [)u'aքإ8)'UbpرS)'JTY"5) =]y"5)nb "5)M_&"5)2o@"6) o_#.6)qw$#66)~֍;#H6)fܭ}֩]#[6)JܙɃ#s6z)6w܆Ɇ#~6z)!a}Ɉ#6v)3Yɉ#6z)$MɈ#6t) Eɐ* $6s) ɇ=#$6z)ɋL7$6n) ɓ_T$7s)ȉup$7u)Ȓև$#7k)pmȒ֛$87q)YOȏֲ$K7n)F.۩Ȕ$\7m)7%ۡȓ$b7m)&ېȔ %7n)wȎ%7r)|ȑ#%7m)bȏ=%7y)Qȅ E%7x)TȏT%7r)=ȇ e%7})5ȅ+w%7s)/ȑ6%7q)|&ȎE%7q)`ȔU%7g)TȚb%7c)JȠu%7])*Ǥօ% 8\)s"ǧ֔%8S)eDZ֤%8Q)VǨֱ&)8Y)Kǫֺ&&8O)Aǰ-&>8X)7ٹǢ=&H8^)/ٵǧK&R8X)(٧ǣR&_8c) ٜǛi&l8d)ٌǝo&v8e)ًǙr&u8i)قǖ&8n)woǍ&8t) {xǍ&8s) mcdž&8) gUx&8) c[~&8) [Hr&8) TCl&8)M@u&8)N;l&8)>4m&8);-l&8)<ո"&>9*T!ա&;9*fՓ &;9*sՃ%>9* m%C9 + ڶa%J9+ڹQ%C9%+"ڸ9%R95+,ڬ,%N9A+>ڻƼ%D9G+HڳƮ%R9`+Zڱƙ%E9g+gƛ%D9m+-{ڸƃz%H9+IھpԬm%?9+^nԘU%=9+wTx;%69+EZ+%79+8D %*9+&"$$9+$)9+,$9+?$9 ,6Rӿ$9!,JcӮ$9 ,\pӚ$98,uƻu$9K,Ʒnk$9L,ƨYS$9f,Ə9D$9t,Ƈ&0$9,x $8,i$9, X#8,2#T#8,N8Hӥ#8,gR6ӏ#8,{e/:z#8,1'^q#8,=D^#8,G1B#8,T"#8-_ #8-h"8-1$ҽ"|8-T>݂ҡ"z8*-j\ݒҊ"`8/-xݧjy"Z8;-ݧǸL["R8O-ݻDZ4C"=8L-Ǯ#"88`-ǖ"(8m-Ǘ!8h-%!Ǒ! 8w-CBȄҮ!7z-\V ȆҞ!7}-ku ȁ҉|!7-3~ld!7-8u\I!7-SvH0!7-]r.!7-hd 7-l }7- .߈_ p7-! JߚW ^7-3 ]ߧ] Q7-E }ߺRҭt ;7-_ SҘa 27-l SҍE 7-} Uw* 7- Wf 6- XX6- 5dE6- :E`26- Wdh"6- t~vwu6- sTU6- ɂ9;6x- ɉ6v-2 ɏ5k-D  ʛҸ5c-O =-ʡҨ5X-b ]Oʯҕ5N-p zaʳҋx5G-{ [i53- q:S5.- f15- _5- U4- *K4, >8I4, ^[+>4, x|?6}{4, O4_W4, d*A/4, x#$4, ˇ3j, )̥3O, 'H̷3@, Bo}3 , \X3,  s-3+ Z 3+ : 52+ >X2+ _r2+ ͈]2g+ :ͩ92L+ Vͻ2:+ q1+ &g1* J Q1* r2<|1* V M1* z%1s* Π 0N* ,0"* .L70) DoBw0) ^@NB0) tj[0) ϋei/]) -мtR/+) Zփ8/ )y ׍$a/(l ;ם 3/([ f׬/(N я׺.[(> *<Ѻ.,() Avt.' OP.' dE.' xҁ~-i' +Ҩ/i-C' ^@T- ' V:R-& ;f#!-& mx,v&} 1ӧِ,>&e k٤}, &R ,ڸJ,%: HM,% ^ԋ+\% tGԽ+$%#hR+$FBT +$x[?*e$<տ~+*$p{ܠh*#T>ܹ0*#7Ղ)X#%;)#:up)"VI2#)"tםV(D"?pi( "ސOY(!Zs޼9(j!4 ز$'.!J' Q-H' ؖR 'G w&s5^3x&EJق<&`#Z%t/%yiCnl%xڧaV)%2?$YKR)$9ۓT$C $ &H;# iܕbs#E2 #NJQ" [Pݜ"=o ="TWs!*ޘzb!GslOn!=DA$! ތ3 Q76' >sT sߏ  KH  [@ y=;G(d=6BBKa@Zl H8x\n7}qDMKc~7 T*v7HiTm9up+9R # `>hW  )fmml[% '&/CyXX;CMI4 SP`j9klDp/zuGGAt NjU <X; zJ ek\;u <+4.  GgNs z[* m  0ml V+ 'FE 2ez b6; >@KEGTJB#XRm wZ8!Geuguz#o:2|'}.PWtd}i{Ef^/%CY& NOiV Fq5 =7gt 0h> % c K) TN L } r: XkJ s), :J3 A -  LKY_  W} h Nsd 2 Gp  ~*a | Y o F: ^G #] S Pt D z4 6 IOg / 8 $] ; * v$  sB  B9i  j  eG _ Kv . i,  5  +<   ;oF/{ Dl@Y RW/ M]w g os.YYGxGljs:\Rg0J(=>&2 $?*UBsc*|6ar ?IZI(<&R !4YB]U?hbW1ktqGl~bsrbppaMpO4vq>en/Yn Kn71p*Co\p&rs1 prCrZP+sI\6p8kDr"xQp[ns diboaO,sZ?C + IR  V_ a (m m3P vzUq iru| ZWgQ .A\2 1Q 2E *Z= Dx5 ue,, K?%m -MT c2 ,x I nl|S8T;Q5'o} Y8<`4VV%!l0+?g,eG-Bq-,eV )3Q&&/$?#e 0Aq HcT eW-r3]C 0=.PYu{ rmFI$,2&Q,0kR43~W7jeAJ5kE2LM ;] ff?vb.n2{l<YYD3ER&,_Mil3 zf{Mi$_W72@OC-r4R~_iM#Yw9dKB5*b7'8b] I/PW (c -rB/R~pbi}}rRShdI [3( PLc Du  ;|_ # 2X4 E (* b  @ t {0x mTa >= p  =I   v 3 w' U 2` m iQ"W 6 ' D*  .7 > 4lT o y; R]gC ''AL U'6 ]F] cz5 l=h[ Kju %ulH @l  h#mB  2nj  {o .E Pr ^d 2t  H\v  7x8  x_ : w 3^bu U?:s {hp /;l$ YiB Sdk ,a Ie_ &lG}] aU\ U7] '^A _g 7+` ZCfa s;Cu_ [^ 6\ 4V@ k SZ ,SMv ZsF QjA 0m6,qI* 4> k1Gk.NNKe&$fx(y~v,d^07KR3P>B7g0>dCVJ1T:\L fds)"r9#|\O*oEj6_"8Tu@GcH9A5S//CX&bbyooi7{O K7~[$x#tn3 il?XfM3?a`Y%ZmiZz}oX mZR bJY R2V4 ?X: 0 `E aT f3c j?k n&`} tp:} }goK `Ytd 76p| z)r cx Fu9!.}T !ށn3!}~އD!u_ސ%O!mQޗ=V!c-ޢ\l![ާos!T޲ z!Ilw޺2!FRe޻E!@@a^!7)I~!6 s;!.\/!(E-!!G!["{("sK+"\]/"BG"dY"N# \"03)p" >Pz"Pl"za9"^osd":c݄|"u!}^ݒ"dSPݤ"V0=ݭ2"M<ݻO"=%t!"4|9"*bY"B#j##K 6#+4L#Vc#l-q#]#Zi'#At\.#"QR=#!4G# 1V4#$hV-#uS#n܆q#rS۔$f'Uۡ'$X(ۭ 9$O۶-H$C[?i$9vWw$1|z$"Vln$2J[$ 0Z$B " $3G1$')bP$2$\f=%BEB(%"$HE%ߦK* h%ߑK,B t%}RPx %mSRs %OEY %a'-c %7 h#!%sI!&z q!1&oP !Q&}:ޟمk !m&zވه !&w[dً @"&t8?ً ]"&s2ْ "&jX ٘ " 'h.؛@ "'_ ب_ #*'Sد :#M'Nbܬط e#['BCܚ #s':#e| #'5'^ #'.D7 $'++a H$'( {$(*p| $!((SQ $M((.۝ $o(+ڎ %{(&r J%((H> x%((s5X %("Pu %(#s &)!M +&<)6ٸ R&V) ْ &)Ti% &)9YD &))k %')  H'*f v'%*Fk 'U*!7ؠ 'k* ؆(*b<>(*?ct(*}$z(*sY ( +G)5+/)E+֧Z)w+o&)+eZA)+66_)+!*,$hG*#,!Ro*K,')pգ*q,):}*,,!b*,28B=+,8 WY+,?r+-A}Yһ+R-K^-Ԡҳ+c-LE Ԓҷ ,-J+eұ=,-RGҮ i,-O/Ҳ,-Qc ҫ@,.X%Ѩ_,-.YѤp-H.`ҨћF-s.h\qђy-.sJSщ-.z2T8ф-.u-/o . /l!F.Q/љ`Dt.q/wу`Z./Uc]r./w"2[+00-/mS00"01hh0/1UF0L1@'ϡ0n1΁&11 h711S$p11s" >11\ R113o1-2͸2W2jͤ<2i2Un228{L22&L322( ,234# 3)3:1=3F3@̰̽FY3\3F̷̍f33L[ḛv33QJ\̯33Qc0̬43XG̦43W/̬F44T˨r484Zy˧4G4UW˭˭*4`4T=˒˪K4z4W x˫f54Tcˬq54TWˬ>54Td1˫a54WV#˪k54TAˮ54S'Rʫ55U>ʮ55Mʴ5?5Nɲʱ26S5NɧʶD56c5HɒʷUJ6z5K|ʵux65Jzdʷ65J{tYʵ65JaKDʶ65KO,'ʴ65K@%(ʸ65E) ʼ76Fɼ'76@ C767)b7266E786,rR7I6'`Ȯs7Z6#}2Ȝ7o6oȋ7x6YȄ 86;d-86-Y586Q^86.v86+86j*86NJ860\87!n87~97b%!9&7U..9&75:Z9?7ƻ?a9D7 Iy9E7sƪR9c7\ƙU/9c7Gƚ_@9r7+ƁcZ97uhu:7kq~:7v`v&:7VVȀC:7{LPȉ@:7r:WȖ[:7cHȢn:7YMȮk:7JVȾ :7;mD#:72gM6:7"VIE:7D>b:7/Ap:7(<{:7v9 :7c.;7_/;7J(&;7>&;75"4;7( &K;7%N;7 -Z;7 1e;86t;8Av;8I';8oT9; 8j]?;8hhV;8Iqd;8Jwo;8?ǂ};8{}+dž;8xo+Ǎ; 8mj#Ǘ;8g_Ǜ;8aRǤ; 8WTǫ; 8RFDz; 8J;ǹ; 8E;Ǿ;8>+<87! <82<8( *<8$ +<84<87<8$@< 8  :< 8*;<81H< 8/9<8:F<8?N< 8DC<7 JP<7 OO<8%SO<7)OP<7$VR<7'ST<7$LI<7QU<7HN<8EA<7DN<8=@<7 :=<74C<84<<8,?<8&=<8 'E<8 =<8;<8D<"8  0<8% 8<8+;<,81.<82:ĔD;< Bk;< *ES;<&HF?;)]2;#>Dg;D>|jĭh;e>"aċH;>?sx;>bjS;>0e'm;>YsO;>g[&;3?hĿ& ;B?gij ;e?&d;?RE`_;?n^YD;?{_Hv;?MZ;@MٿA;2@S";Z@T@ĉ;@ Ioj;@,FX=;@U>ߚ;@ tE |;A< C羨U;5A} FĴc0;UA @ġD;mA IĂ;A !$J^;A8!E@9ޮ;A\!bQ$ލ;A!HSd; B!DϽ D;8B!TŽ!;NB""Lđ;Bg" Qg;B"?U]cݭ;B"fW*"݅;B"V g;B#SJ; CF#\̼(;EC#Kħm ;lC#MĈJ;C#Sq;C$B?7۰;C4$]Gۖ;C[$zDr;D$9ǻMP;GD$=ķ&5;TD$9Ĕ;D&%8_;D\%0J;Dx%>7(lگ;D%c7.ڌ;E%,޺ o;-E&=˺P;@E9&3Ĩ,;tEg&/};E&6:I-6ņD:lI-<ŢK:YI-EťQҷ:VI-M ƺUҰ93I-U׶cҦ9)I-_0ڶbҝ9I-fGlҖ9H-nW |Ҏ9H-tn}Ҋ9H}-ww2҇9Hi-{B҃g9Hc-}\҂a9HV-e~P9HL-~z89rH@-ƕv39lH6-ƚq9VH0-ƽl 96H-ͷg8-H-e8 H-( `8G,A]8G,Y>*\8G,kYCW8G,{RVk8sG,ǘhVb8bG,ǫxTD8AG~,ӸX88!Gd,㸦[+8GT,`8F9,&g8F,9l7F ,`q7F+)&s7rF+CȠ:x7MF+QùUy72F+k޹m{7 F+Ԅ|7Ei+zԇh7EQ+wDԎM7E/+kmԛF7E+bȃԡ,7gE*[Ȳթ79E*QԺDմ7E*G\ս6D*?"6Di*5,D6DH*$>o6~D *Jɒ6ZD)e 6'D)mI 6 D) k! q6C)@4 c6CQ)`A S6C4)ɇI 76_C)ɷV )6:C(ּ)d 6C(Jn 6B($s{ 5Bz(zLב 5BT(grנ 5B.([2ʓװ 5TB(ACŽ 5)B',H= 5 B'df 5A|'pH 5AJ'k p5zA#'ʤ+ ^5AA&Ӿ3F O5A&^^ ;5@&4s .5@Q&`ٓ 5@&]ʔگ 5V@%Gʽ0 5+@%/ i 4?v% ' 4?G%#M 4?%:ˉ 7 4\?$<˴GU 49?$Qql 4?q$\ۏ 4>/$_dB۱ 4>#Att 4s>#%|ˢY }4D># s4>I#7 n4=#4 Y ]4="rWݍ `4x="b˘ݩ V4R=Z"H F4=" K4Myo43fx̡x4i36"˵4&3x~j42Qqh=427ez:4\2Wͽf42t@41:C@v41G)ˌe4W1zV41}5Ϲ40 P8] 50uʔϡ5N0/,5 0Ђc*5/>hg=5|/ ʡNB5 @-5, +JӬ5, ;ʚ85G,ӓK 6,; 6+hԖ!46v+:ɣd!?6>+uc!H6*Rݣ;B"o6*݊y_"t6e*oH݈ɽ"6*f Za#6)dkTT#6)Eɔ1$6I)-$6(8,C$6(eמ:%7w("ȶ-%7!(ث*&=7'$ٿ9p&A7'UٲȈ؞&f7L'؆%_'7 'x}َ'7&4eb0(7t&Aȳ٨(7*&!.5(7%;ڋa)7%!XȖ+) 8I%ڏ@*8 %: **8$y۳0+Q8a$Ԥǽ~+^8!$Vԣ ܛ+h8#ӂj<x,8n#~_kǶܼ,8"# l72-8"Of-8k"Cǿ^.8"k9q.8!\(ej .8i!Gǻ [/8#!V /8 c#X *09z ƭ| 0395 PD 049F q1T90IΛƢ 1l9:͗ :2l94͇C29lƦ+391 g.39KXC39IƫUp491n`549/=:59pơ596(I59 8S69eśa6::Z*7:7W7&:c2Ş8;:0p8=:GfǽE8I:DZũ?9S:!ƥ!9d:.ƚL9e:8ŚŮo:o:"QŃ::-L ;{:ĀŦ;:%/f';:jPB<:1dŦ<:%V =:ZXf=:rWŰ=:W!=7>:Om>:m,fV>:U-O?: I}$?:_TX?:N5- X@:߈Jʼn @:P)AX!@:ݾPA!SA:}Vš+"A:>/Y"A:0_X)#ZB:mldŻ#B:)(f $B:yu$]C:V lu%%C:8'%Cq:6黕Ŋ&QDn::{&Df: +CL'DP: Ū~':EJ: /؜ (E8: Lp(E+:e V(F: ֹG)zF : :cŖ)F:C ; Y*F9 Wٸ]*YG9u Ԉ#ưJ+G9* c=+G9 Ho<,(H9_ U,WH9 (ӊo -H9?~Ƈ-Hv9A* .(I]9ѿ7W.XIH9iэƪ.I'93b/I9a/J8lص;0[J8~z2=0J8)YOǐ1J8?"u1K8@մj1;K`8jʹǿS2cK98̈́2K8Nǖ83K7=!3K7XBB3L7ȳpȾl4\L7fˍ 4~Ld7&}h5L47[<5L7B 55L6(ɋ>6"M6CɾP6\M6 ɚvW 7rMu6|ɢY7MM6({T7M6.}+8M5c!f8M5fY>8N5ȱʦC9GN`52ƶ{9GN*5Pƫl9rN4]x*D:N4u[':N4M`ˇ:NQ4<==;N45D;N3_ )̘;N3,d -9O1Rʰ5X>@O1|wG >ROk1/Τ >PO317 ,?[O0*] }?_O0kSl ?nOy0" ?gO>0忟y Q@eO/K􁿏6 @rO/Yo* @YOj/Ж A]O/6Ǿ MAZO.򞾵KG |AAO.fѠ ACOD.%%A5O-Ұ!Z-B,O-ٰdҬZB Or-~谹BO'-:cBO,w 9ӺBN, ռ.RCNH,vnCN ,d6 CN+YD6N)9ܱ^NDNq)}֪EN,)>ۺ (EM(ú8PK`EM(낺LןEM;(AtmEzM'QBAE]M'؜E?M@'@ز FM&>62FL&鼹١YFL9&8铹BzFL%|a;5FL%VڢF`L8%8)FCL$$س@GJ!'e`GJu!fGLJ !lɵߵH)J 8] HIv -@,HI ÷Z AHIZƷi:HRIh㹷ͶVHI⠷0j`HHu➷9iHHW6␷nxHuHჷELH:Hm߷H HF`i HGYOU,HG%=$HBGc>$HxBBX$H1Bk\/$HAOr)~$HANۃ~%HaAڃ,3%nH*Aڣ{c%TH@PzګS%SH@Jڷ,%8HN@$շؿz%'H?Y߷%)&H?m+W&Hr?r|&G,?_o&G>//J,&G> :p'GU>dYA'G=^&(u'G=s`n'{Gv=fTؐ'nG =ؖ)']G<׵Do(=GE"79ۺy*E6]]*D6$ *D<6LF+D5i;ʍ0+D5Xԕ>+UD]5ԻQ+1D 5Na+D4^˂n+C4f7˼s+C24l+C3nԊ85+cC3oԷyn+.CZ3mY̷+ C30I +B2I6O+B27a_+B?22ԋ͑+\B2Y.Լ"+0B1$*p+Am1'.+A,1$FW+A0+ԀAϓ+bA0O"Ե+:AS0&%޾+A0. -+@/%Rob+@u/.ԆЍ+[@*/Y1ſ+!@.3P+?.=4#+?H.DmQ+s?-R԰/҄+3?-iYqҨ+?m-Hk+>#-{f+>,ԔAt+S>,{<_+>\,hX+=,;ӂC+=+py=Ԡ2+f=+KԷ‰+,=Z+) +<+/*<*pN&*j<*0յÓG*/-.+U ,deE\ s,ߵӘ7 ,M!&+ } _N+8*Et*n3~իY'*BG)_j[)~FtM(4u](r.׬@)(62'pe'LI&*Oو}&`Jٶ(&5aha%#dB%?NH$F}&=$g۶$4k,l# 8 F#]3F"p{h7c"oݪM!;cL!\t!!5 L 3߈#$ Zc-ptob]"CZe[xe ]5 H* r'+|m]SU" PanH* WHx*wMTiE@z_$% F )f"a R-a ajq &P K 5 %B %"}q DsP /'d :<@ yW8/RBzO!lu|>?E=so \whI6#gYOm_l6V~oGOH>& J+r  "A P [s5| vx q A J;4h     q4HS 2 Pm RJy  ` ]B@)Sk i  VHv4 A  w g\-qgi ]J  ::ysF  , <E J J  9\gaK H Q i \  $ .pYL D 6 p  z"{9 bW? e8VB z E  +J'Y ^oG 7-x[ xq v%aL( q6i 5+x613B_ds~\K*mgLA_0&c3v ;  (} MQ7k ZFV{ ?n] %Z iu^q+ X ?:U C)t~ O2<HjU6l i[4~N1lQ];kSoTb^Y@{!&h[ 1`MW=js$69*9pp@}T U7fNQ'm9; ss2gqsuVIe/D 4KTN*EkM- 4;) ߌ@ ~ U  0.ߠ A9!U!!5P`&#; ܨ=&_#r Eie6&# 4,'>$ ؝-c'$O @ۈ"'$ :('c% s(%3 #ڧL( & ׹Q(& LY (&,('U&֮}<)'3P5a)'=)(&NN֫ת)([T]*(i *+* )zժd*)Z{N։o*)SO`*!*-ոN**)Mճ;)+*l w+@+ +3w+q+p]++EW(ԟ++y'3_+W,D y ,,XB*,,MoҎE,0-Ӫ9mw,{-xf [,-j0H,-V>щ.,D.ӟP,u.{-. *&-/Q'Г4-(/=fL-d/^oe-/}2v-/EyϠX-!0mһQ4-d0M|-0CL-0B= Ϙ-1C"Y->1_"Ҵ(-V1~ҏn-14FΩK-1q(z2.1H.-2Ѵ".\2!ѓ..2C?f͝..2e4U@.2-k@.3I<.%3%ѿ̿J.]3\ђ̎B.w3 хf A.35U/ E.3Y0 >.3t&{ =.39˥S 9.4yr5 ?.24ѾT :.T4і :.{4 #p D.4.?O˼ 9.4]a7ˆ <.4 Tc 9.5-D ). 5 !.,5 .C5D$ʮ -C5]L Ұʋ -_5~#ҖPl -l50Ґ5G -y5F  -5\o -56%eZʻ -5VFTʖ u-5uHkq e-55EM I-5>)$ 0-5/ -5'' ,50J2 ,5Hv6&ʟp ,5vS'~J ,5g(p) ,5)Ic,5 *-L,5C*%,5n9u,5 5D+57 8>ʽ+5O ^Mʥ+5p 7Hz߰a+5 eVa߆A+5 \KS+5 a*5 %m*5 "Ou*5!ZՈފl*s53!ՐdB*h5E!էʱ5*I5[! ʜ)95n!?ʉ)5|!Cqʁޥu)4!ysl5)4!-bB)4!Rd(4!SpT(}4!7וG޵](\4!_ױHޏ$(=4!8U'4!<0#'3!r+q'3!M$+'3!Xrޔ&~3!.ٙn&O3!l7n!*&2!%2!>-Fި%2!xzl`%p2!ڤA)%J2!$2"P $1"I2ݥM$1"sep$|1")ܡ+#J1 "vk#1""#0"V <݌"0 "]t\"r0"ݫ.<"90!!/!(I)!/!T[ޙM!/!ޠZ =/!7" /!| a .!!T'޾ .!a%/ދT.!h6dt.!I--!WR-!_c~F-!Exޡ,!5ӂc,u!gvӕ6rk,b!Ӣ,X!!(԰޾+H![}TԿޓ[+` M Gv I| ` b 1_ wI9 &.3 }_AH4L@8v*]bCw{eV2dW9;U1CcQxs_4?yQn-TSilhkR9!0Xu//"d]yf7>/(U fxT7yN\PX`B-(-9oCl^^)1>fFZc;75psvHWHI 9I  !*5 EN vVby b2%q( E! !W^r jv< U kC Y~r O  <5  !^c Vbu  L ) %| S8Tx' T [F k{ Ni@q *+Z\ I 740DCv\u O3pcY+("A=DGTKioUxW\"k.S`d~aQ?%?n}4A@[ |:Q\  S9#G97_mL+]jn9q8gt~4s{=i9^E{ mQdH3Bj]8/E6*_5  JFk5. N]rw$qW(bH0E+i;-XIUP\- \7 e> )lU /Fu] C`{ߩy qzxmx obSr ^A8f L_ ;U  4I '*)C ?A߷7 PQߩ/ _gߓ) {z{" sp !W^!@N!!7C.!07! B!C!F!M!!C!&H!.+ I!95)A!6<.E!>B4޾C!BG5B!=G8B!CH9޽B!AI4޿E!AG9޿>!@G7C!>G7=!>H?1!4GA/!0EG !%AL!:P ! 0P %M N  E- A9  A&I <+X  @6a& DHt. IR߁5 yReߏ8 fYuߤ@ TaߵKo AdT_ ,jaJ ns6 l' ws* ctMPveA~/i,J{Get(ophO52f4VE`}a\mz]M}*V*eMUFkR19JfhGB~@ W,<-J8:l4ZG3myt,ooI*H>*#)? @j8hRLsX 5h%LZ+"-e&L70xq4<O;FU&DzcsI6[SCA]o{"hHR tp-|~{H4p8Jj[&d_`[djVGcSN,/KBCG9r3-xiJ Q?`&|v"@bGhL xoE,+J6!D/O%b+]K?_jwZp(ysE u  mGg Q&}\l 6JUE !oGw  >L 4!3+ ^7$ RW @a4 fs U l!<0 [-b G>Q -N=+ Za nV Fx/ jb 0KQ D>6+ lJ" ZQ >k( `x  i s.5H g;Q0 aKn~ X`\QoCN.tFOa?hP9/An/R.O&q!7gD *04G$I]=Yt]o{myt\`aKCI;)5 /"  1 J" *k5  ?C qWP Sp` 9"ko "(w[ .E v36 l5') `8: U:K L;X D?i =Fx 9M$ u 7X6 e 5fI [ 5qZ L 4|k| ? 3qz 3 3im ( 0^\  1RK  2G? 2:, 6, 7! 8 9%  9, 8!7 8 0@ =@H ?%NR D6bY MJub RZjq Xkr^ `}z|Q dpA | i`3 v qQ& u xF o }6 p p& r g q ]  u N w G y > z %2 z *+. y 25) u ??! t KJ p VV k hb  n yo k {n k Zr o 'Hh o 1:^ s >(U w QP ~ \ J lxH  ixH ^iF !UYG /FFE 9C<B C>3; Q9$4 ]< , g=! u;  7| 5s ,i  c $\ 1 S CK  OB  \7" ! p.$ ) {&# 3 n$ ? a' I W # O I& Y =( d  3& g )- w 2 w9 gB  !RL  $FT '8Z / *)d 9 ,i @ .o H -} P *~ U 'v Z d ,c U 5f G Ci 6 Uq ' ]s  hv   t}   |~  rx  `r&  Ul".  Ji+C  4d6T  -d@b  !fMv  f^  p lj  cqx  Pt  p>x  g6z  Wz . J w : Au H 1r0 d !mD s l_  ik  oUl%  TEp8  81tU  yn  }~  u1 | WQ z Ee +u . Cm ` Ug H ]\ +6 qQ [ F |s$= mB4 _Zl+ AG& -o8 B$ *  N|Co._M@&&eT;^sQn&v`YSo<d!n3 ZeexK D644 +Ic f >?~ p y{ aJE 4B H-p 6V9 {lc' T!+4N{!,n#[!H,1ތl!,Pz ",3 K",RtҖ"E-~`Uݛw"-S*h_"-C4=,#--h#:.ܲ#^. V܀#.1 'Ѹ $.XО4$/kЂ%r$l/qlO6$/+7#NP>+7#PY=+7#UV=+7#Y\=+7#\`;+7#ld:+7#hf6*7# sf2*7#Յo,*}7#Մl%*t7#0ՙs*\7#=ը*R7#RշȀ*=7{#\Ȏ*-7k#pȘ *7e#ȡ{*7X#Ȯj*6O#ɶT*6C#.J*68#75*62# U#*6 #h*6#})r6 #֝)Y6"")ֵ);6"%A")6"'R:)6")pL)5"*3ct)5",JuW)5"/tʌ>)y5g"4֑ʢ#)b5X"9ֳʱ)65B"A ݺ(5'"J2ݲ(4"RS-ݪ(4!ZsUޢw(4!a׆+ޝS(e4!dׯGޚ:(@4!gdޗ( 4!j̉ޔ'3g!m":̧ޑ'3L!rMoތ'q3&!xyحބs'>3!}J'3 &v"'2 ELn&2 !wgj&p2 A٪͋g&<2_ qͶeu&15 &dQ&1 [ b!&1٨:_%011k[%0a*ϑV%0XxPK%_0"ڿJ%&0F$//AG@$/lۈv<}$V/xО8R$/K 2$.e-#x.@ܩ3(#7.{f"b#-zUҧ #-@ܞ">-6 ",|ROc",ݜӀ +"=,iӵ!+,5F!+wޙ$o!G+ U6!*;Ւ *P8ߔ H*mp )$B= ))~9)h-=ֳ(,0VTp(5A (8v'hG0/bt>%o) $?crtygm $Vz*c5x+9 ojMG,`gvo>"enf_xXdM,j 5_6:(l;Kw5JX  M2' J@:i ssS} \Di 1 } n\v 4\l  & l@y) )AKh v  7  /1)Z RA ;w,n` ;E|I x+ 1_M  =H0 8 )f [ q x [g H/B 'O` 5qn 7'* j|DQ G\r )W iG B_ J+/ JF  f^,% ye@ |V[ ^0%~ AuY* )dh @mE /,%! ;W `a > wV Z%O2 36B dZQ ,f >,7~ zAg {g[J 5K~ vg= `4-U 8" DJ s p NS A m| l&  W&, /(I ]r r) IIL (c 3 `g< IY +` k  S(  =P I w u z|  ZT   0# 5  F "$ <a ,T t{ xy4o  \f<  T#JH  -,N   X B d1 { vlU  Sxu 2 x$ Nt H [g ( =mX  lE zvC 6 Yg` % :^  VH  9B  ?! H .7) f /JF } s(_h  Ot  Z. t B ` + M F= D_$ v# |e# \W 115( N! g)  T) #l |E U vY "< Vx " $t ' _ $ K"5 " #>Z ' Tw  wq!~ O$!f 02!P G!3 Z! 7j! Qv!} *}!ue A!``[!7G"!r4'!Y18!8C:!NZ!_v"zi="Mv_)"0݀z4"zuݏE"iKݜ-Z"`/ݧC["Nݽ mn"9~0{"+fOy"Fw"p!t"Kr& "+k;)"cSS"Wf6n"SwY"}`Iݏ"il>:ݜ"[P,=ݱ"B)2 "/,"2(4"+ PR",#sl"~,="Zs,W"-P-u"<-݌"e)7ݮ-"A5S")=p " }J("SI&;"3UAK"\aa"b'u"slݛB"Wvsݶ`":e}"lSv"VN d"2:0]"*KP"$m="ݖG3"Yݶi"7"d"= #-!"@5!%a @!4ށ*O!s<ޙ@R!WR޾ca!.ak!puk}!S-td!/WuJ!{t,!rޣs!H1s !Gs 1`o SAu phdt Z߉ph \8߻tK 1n. j 7'g%\?`EV]fgtU8}TgfMIO/D1YB x5u 1+FU &u!x6LDJ#kZ&nK=SpM~nab)6J{c|7ha*@O,y:q&GD{*n9;D'fIE Z@d9h{`ptD}OP}~3m)v8na#%PZAWurQaM:Ff=H6>6.n]|'*T$AqC{ |*Uh W*" T B* =|^ m,x \ R H(Z @ ' M" e\dt :8\ , /% ?~-)d hX,% .JO Y/ /I 1*. p7g-v t+KnZ * *K0-p. eB>. {s0o vY/= A. "- OAA* )Q 9 ^' 03% ;+# ? k!] {=' C 3 O$ LWZ  % K TY =Q "  b Y2 @. 3V Yi%~ 0? >  f'g{ Z+$ 4 Bthxh$cvZE9  t#f\'Q Q &%q wEYF1:"4[&GgKm*IS)tLm ;NC,"m%fyY(,u9.='?5rvt8pZeA( FH-LL@fUt>\]6| d 6gpj]q|d \uDh K;]AXx4# iL ".dC ,>$G 1h K x% NVI    > i ziU |z6 '= L 7 i @iVB S2 ( bd e k:Vu ~x&G lNHP\b?FP14* L# n_ BQl HS*W{HI!-ZF8q~DAGdoJP_19w,[X  , -`3pS Pc8q e~ FVd o1nNN (1 /+ gtWE  8g G `la{] GD"f  %= Mug W.  9 'gO zS nm u9b  1S K r, H cN w Mc +1 / zU j Gv &w  6F c %.  =A l p[ AB 0k {\ `z % y ] w fm@ V \D  G7 3) 8 _1L , qt ;Zp   B    TU w 8 D) [ ߑ = ߕY) P F-5 [ ; ! +I e!=qޭQ 9!!e:މV Y!!^[ !2"Dޡ$_ !}"rb !"/d 2"#Kܙl j"F#{~ݡyp "}#S`Nr "#y #$x -#L$&ܗw S#$\Lۋw #$Z]s #%A6q #D% ܏n $%Ln .$%='ڵj U$%d|f $L&g۞Kc $y&Fl+[ $&&(U $&-O %3'Pڶ؜H 4%c'{ڃjC e%'7;> %'l : %(K4 %H(*ږ׽- %(U wמ( &(nI| #&( G @&), V&*)پ g&_)و &)DhV֪ &)j$`.~ &)5>H &+*G#پ &R*V٣ &v*!hg '*Vw6՘ '*v x 2'*Ni H'1+&` _'M+ءT m's+uE '+7pLԼ8 '+Re+ԟ+ '+s]v ' ,BP '5,@0 'D,5ة 's, %$u ',48"cӾ ',MNDӞ ',}gk ',{Sz '-2d '!- M '<-ط; 'Q- ة( '^->ؒҳ '-]vҖ '-u uҀ '-$ Za '-:DC '-JA5 '-^& '-q '- x '.%b '.FѱM '#.Wѝ: '(.o,у '1./k 'B.@X ':.MI 'E.4Zص. 'J.Gjؽ" '@.\xؽ ~'F.vغ l'B.l `'@. T F'=.!: 9';.0% ''<.<Ѽ '/.Kѯ&1.X Ѣ&'.a+'ѝ&.dF>ѕ&.s^Zщ&-wrq ҋ&-yf_&-(wOI&-6y:+&-Jp! &-^p %-lp%->ڊq%j-*Zڛr%\--PxU%'-kt0%-xv%,Ӏ^$,,:F$,~HWӈ3$,smqӎ|${,pۘӔY$[,hۮӜ7$D,cӠ$,\0ө#,VI- Ԫ#+T^S1Բ#+HzTԻxg#+EwԾa@#v+<ܝJ#P+-0"!+#6"*Z "*M W"*~!2"q*"ݤ4"A*1N!*FD f!)So9yz!)zdp֕E!u)^zަ֪{!@)Mֿi )4: R ({L9k (|&? n(߮ /(9' FQ'uRio')،:U'f8إ"'ND &)TC>&c}~ kg&o-6&&~Wz%,J~m%q[ڡbZ%KTD%I$O@$>F5>$zq+l$ܒ#<#Xcu#&"/#S"2AV"sW"wݜ"N3 !wgmt!#/85!*\ 3(Mߗ R^6%UV1R4 %WMS)7I, dV# ]V8} . P- %$6G VoHh =Xg3 |b?\ 5u  ,~f v9th$ ghz S.XF BxaH 1 35: Z{vcj e (16pQ?nR@6kei)yrj]"pk&Xf}I:16AIlQaIa6 r:: 6zL ^ !=l  K& Vqlj v ZW  =h/ x'U = - 1H PE8 XoV C 3b m*rL nRj4 r ' $ N -% RzJ a8f ,MO ph< 4Hu d,!_ ' v G ^H2 4 $}K " cKy p LS =  /x b0k !u>2 >M0W a}C jfn{ 7gI} { / m dO a B S KHs F  : b9P / 8y hB  >  WG  Ok T{ jk& +@5L *D} d TR c , Wp8 H ,}u q } b{1 q #XZ h 9- ] Vx S %n L G ;B K f: rC |3 }xt + SjO % 0,    L\ - { Q vR q L ~  R> 6b E C m  1c,W8^t"ff'1D,K(1f66a=q |7J#} ~} |&:6|?aS{Txct~pGp~j.aUK~:/'|! Bz ]wro, m_D+e\wFT~LGa ]<F2_01Hg$`s uv|u2[xFMqS>nk"b#x]+e[6OQA=RJ#/PU2La@ MkKKv UM% htK2 qhOD xW~T\ FtUg ;t_u +jd ugj ket _`y LZ {AU# u4S6 kGI eDZ YBs J6# Ak65 1T0L $9'b #$t   p ^  U0 A#I 0 -Z '>o  T fd Pz y3* c: OG :"-Y !'Hi  +\q 6{ tr:2 \jDG A\Pg GU o;` T*h1 4nX vv }{ T42 y0NA tiP g'h `cBr UJa H'r @da 3GS) )!>O *s ; ^ h 4  e# B#: .DL ;`U MCh b\iu @n~ j| x Am f _> Y Sa I @@ <c )` 4E  $ Z -%  O/ CFg (kQ@ =_ [Pq +c- yqM ky5tn T^gM G|U( n:@ <$1 > h  D ] b? ' d*8 @5F %A:S Sgh a8rj s\{= {n fmZGh&DWU0K|rA= K2h#c#A 7@HfSke?(Bt`5$y9tx GaT5NN8SS;uZ%uaP-f4 Gj $mv2#{rDANwXi0lfjhx}F\hV;SRV=M?v"zJd dHoNIG.B+.B<CS {=3 z>]L b   H z  %R o "7U b @Ta T [nl K pr ? p 3c Qz (K 8r 1 h  `  Z !  X77  U5[S  QEsd  RWy a yMl C aGy . ND o 3= ] 9 L 69 7 7_  94 q = E O E,] # LMr  Tg  v^3 e \eY I Llv -w 9s M y +  < w d7.o W?h r }S[ H jmP ! ?|D  {6 d?)) PaL @p l {* B N % -    %=?1 /^aA @[ W MRr . %a  ru) US`l B[ j Y-C , , 0  Rc" { <T C!N) 6bQ4Fwffsvg{wG5KZ5D#FS+  RL"*5>BER\hjjl,/cjC9FZzl*euF+( "A'=}fZq^-3tB:"\cr}F[qx0&AeDM8'pTr7 [$ %zmN={uZ_1J~<rF*%Yy_ c{= ##9H1 X4:FzVx-n^|r8ScV?$^Kq= #>Y"x=">tdPB[}3!x( Nq Qo)! .9  ZkX 3 lt P 0@ t ntB? OK <\S* & ,  i < zh V 48 fZOk vLs K*)  \@ c <y 4 #\- a ; j ob,{  b.>G  h2 r fr - sl) R W v 7idg  x#G  + o e#X ( 6 P CR l afjD @~| wYs \W*=Iia8p|#MC L{0?V^+(g?jjd_3Y i |Ea4yeqgB zYVcJcs 9h 0-+jb `|I I T"ho.'d[5VF}gF+W.deJ yrD* uv.<lTj\kBN)'E&nP5_{(h k =FR  w; #l 0x>!X/ކ !>S,2!33g*"{A"#.XM"CݫU#j~d]R#Tq#XO5|#}"$n=c$1bk$IXyL۠$}M;i"%D N U%@(6%6Dw%-s&4'TٺF&]ِ&Lm2&&Oc&{% P'Lw''r'/(ص#'d׌ P'(}u$u_(u}F-(6>"6( <)G< Q)5ߊֹPn )W^֜V )q_4ց^ )(Wf ** @j!C*ޡ*p-!*byU!* C~t!*}!+<uQԳ!5+Ul&޵Ԣ!\+jfޓԊ"+Ycq;"+N2[Q"+DNt"+5r:"/,'O%"C,3ݱ!"e, ݁ #,a *#,GC#,$)h#, :# -%hE#!-.PY#B-8ܧj#h-D ܑҹw$s-I}ҵ+$-RnNҤI$-a`@Ҟ`$-aU'Қ$-nCqҋ$.w3Tы$.u)@ш$-.|"у$C.|۲х%U.{ڧц%^.wڔы6F%{.s|эIT%.o}ї`o%.b~gѠ{%._yfWѣ%.VeSYѲ%.JQ:Fѷ%.G7#?ѽ%.<(:%.4 5&.)1 &./&.822&./ HD&.4ZF&.1^'.";'.q;"'.YQ"/'.5YHD'.feJ'.}ъ W'}.a؊ѲD c'l.;؟g r'W.ر u'E.n# ~'*.DxK '.-wk '-yҙ '-Pi&& '-.n?? '-h]d '-Zo; '-hW؇^ 'm-IL؛҈ 'Z-_Aشҷ '@-42 '--. ; ' -'Dn ',o ',|f#Cӟ ',>5n ', ، '_,ظH* '2,Ӌ[ ' ,Y '+%l0 '+CZ: '+ ؇x 'f+qثԫ& '?+5_ '+ 5 '*a0l '*s2eշ '*# ؓ'Z*ؾ4D')*zw')]q$')!IS')&؃<'`)(ؿ։%'))X)H'(!4n'(r=`Z'(A=؏ז'X(L"N'(R 25''X>uX''lgwغ'h']iظ'*'(q['&v(ٞ'&5~kW|'o&دTy'5&]٘j'%;.5]'% U0X'g% طڜTD'#%8 <'$ JLX5'$ !؆۝&'\$9 1 '$ Vi'# Oܞ '#? Sؒ&B# \ &"{ )ݤ4&"4 +mc&c" w=m&"n =C޶&!$ WL &!c٢sI&:!aqo& |(q& Eـy[&V XC& (-&m]&aI%a&%91e%l6Gھ%"`=;%^yw%m!hھ_%A aD%o_-%n7G% s$Sx\$oA1V$H$9h`%$hpcg$ iJ$mn'$a2 $F,#${<=#QCu#reE#H~܏^s#BkL#T954#ܜQ#6N"\!bM"{BAݪ"':k "vc#Z"bv@2"#%j"ޗ!<V\8! =_F*!}޿Z!1'8!mKF!Uv{ u8;  beߖi  6]5 Q f, % p߸} T$- 7UD YMz tq D}J =| MY 1 1  5%_ k Sa ' || 7l (z^4G sz e|G bI B%` M&w3] )&U 7>"=;Es"qA}"X)*G "I S ,"QG `"sSݓ "N/L` "{T  "LK s "vI݅n "_mCQݼ " O# "!"UK| \!"b[݁ !"]Zc( !" j ""bnG -""zݑ*w""Key""_?݀"y" ݉H##z" ܄ݍ{W#z"Z b܋#q"( _܍#s" ܏@q#m" kۖr+$h"r 0ۜݮW$^"+ ۨc$U" yPۮ0$L" C5ۼj$;"o ݴK(%6". F%," Z!t%" jf&%"{ :ݞn%"I s& " *<&" UVk&! ކ&!Z K^&! #* 7&!4>i'!oGނ@'!\O n'!&]B'!eo/'!J0xr'!u ؊ޤ'l!EךP!(_!׫#H(L!=׽Uf(Vt$- rK $- X@$$-;<V$-#*%-p9%%-GVY%-n%.r҈/%-hMѨ]% .I#%.+T&./1&.#(e&.@M&#.u\|& .eCс&/.p5ћ&-.X Ѻ '(.5= :'6.e M'.. i'..c2 '3.0fO '-.Nl '-.7ь5 '*.b ѭd (/.E ().(c A(*.( h(5.% z(,.oHE (8.>ev (@.v%р (:.rMџ )F.QָѾ 7)F.3ּ& R)E.ּL h)B. )>.kc< ):.P]Z )+.9т )/.oѝ )&.TѾA ).0r '*$.w :*.S X*.*> y*.w^*.]{=*.vJѝq*.Pv"ѿ*.4Y*.3+.5+.3/?+- T[d+-s|+-k} Ҏ+-cJeү+-?L+-3#+-&,@+-:@v,-x?_,-^NҀ,-j,YҩF,-FY O,-,k0e,-l ^,-rp),-laӀH,-HHӂn,z-0ӍҐ,n-bӕҮ,f-AӡH-X-ҫr-T-ұ -E-^=@-9-*bY-7- ^-"-nҦ3--Cs_--"g--iP-,66 E-,i -, %Ӑ2-,Y4Ӿm!.,190.,gH<.,5S'b.,SCi.,eb"~.,ohӊQ.,e[oӪy.,EvJт.{,N2ъ.n,ѝ&.Z, ѮL.I,|P /2,kӧ{!/%,H|/,%Y7/+)J/+2K/+%W)h/+'}R{/+t~7Ԝu/+Tyh@/+)IPI/+6V /+ (`0/+ q]N/+ w{g 0+w ψԛ0n+O ]ϗ30h++ 9ϛ60[+ ϱG0H+ Ϻ+!b0C+ LFj00+ me{0#+~ {Ԙ0+S VjԿ0+2 8\0* W 0* =+2)0* 8:Q<0* 7U{h0*p aա0*Q n tս0~*1 Qϋ0q* ,ϓ0d* ϧ"1P* δB1F* iF!14* Յ`.1'*k ը{11*A jJ1* CQ1) -T1) 4Ko1) @p5p1) [֕X{1)V zm1)+ or~1u) SlΗ1b)9cΦ-1O)[μQ1:)Sm1))U֕71)UAֻY1)6@ j1(C&1(]/6'1(J5LC1(/0fg1($t׍1(e%΋ת1j(GΝ/1Z(!ΰW1E( k15()}1!(o L1(Wa1(Q x1'x6ؖ2'^%'ج1'I A1',S1' f1'΀.1x'Α=F1e'Φ[a2Q'͵rk1C'ؐ2.'`gث2%'J[2'2F2&+2&   2&("2&09 2&AH 2&MZ 2&Yo2 2&g~: 2&ztِ@ 2&d͊٩V 2m&N͙ٻW 2]&< β` 1@&#n 1.& r 1&'{ 1%') 1%s/= 1%g2-N 1%a7;e 1%N 1$DlM 0$@χ` 0p$>ϗl 0_$F/ϯy 0C$E=ۈ 02$rKLے 0$iOd۝ 0$^Uqܨ 0#S[߆ܲ q0#J^ߖ,ܺ a0#Bl߬= H0#9oR :0#3yc} !0#-zs 0y#&Аg /i#"СT /Q#<нG /7#O6 /)#l* /#߄ q/"ߝ  V/" ߶A/" /#/")C/"9W."U)k."nQш.m"lќk.X"ѷSV.9"78.$"!." -!-!;$-!1T9-!%RzIr-!.n^X-!3ng3-!:҇G-k!AӠ޽(,X!D.Ӵ޻ ,;!G]޶,!L,޲c,!PK ߯6, Tl+ߩ|, \DߟS+ e?`ߘ4+ ljyߏx+y xԗ߂F+\ 5԰{!+F ]q*( 3ca* YZ;*OY*8B&*6M7)\$l,)[֊V)h֦/W)L ()2(I0(rWx(*-AL(=K(Hb'T4;؈'dbpzثzi'FjS2' p&{5&/l>wz&b`k2&وWA%h*ڦI %N i6r%(Q-%\$+&$$ tOj$;l0$*jێx#^;7ܴ/#;R~f#d!)#we{t"L;d9"VVX"!݀>"jkި,w!J^B!#)!5! pHHr &w3 o> @SRLa>,x=|5Qfpr`g2PJ M>D /;Y<Q d!71y['`!{6 M'F[t[^s+i/k }A!v Xc< RS b.4< $'L 1#  LY x U R  %-j XEw;^ Y7l |d 69yl }d ir" kYcd7OhC?$; 1`hRpY "['#\l(, ?=cogsSi\)oR~%,x rcFeP'&=A i607R  dLD 59  !6 ) ThU ~4 8 3G _f V ^1 ` &r/ h q   j'yq El@ " Z= IQJ !@ 6qv-M\ 0 Tq OXs}  \p9    o63R| 3 Y F <, W  +l 6_ eyt;K l #5Y< }pQ`q YIj ,> TZ=_| : 0 - A6x V4X 37 1 .  'S'I $9E 5  =6> { ] @ hL && Yf{t L z [o& U* V( t-0  5  A3 S 2=6  8 x 4Y5 A O; c #[@  $F C1 ipP  Z 8 d QC7k  8u Rx N"x Z~2hR| x =/v nFev )s &Ps rWZws { T+u v [37ux "L~  CrL mx5v Uw: %u +CsN uCZ v Y\ w{g a vF   wE ' vB r1 so 3b u4y  s+" D q |X/ to} z qa ( p# Bv nj 8 nP E oX  qR& D w SS zX  (Gc}  | 1B | n5~Q{ hNu~ - :  b  < } !N^ޑ{ k!8cy !:2t  !t M B"+ߣr x |"Ns`ݕo ": Sq #+m !V#ދk 4!#&;ܾi x!#]tیd !)$Yaa !b$n)^ !$'^ "$\ I"%%@ݰڡ] |"w%zlsta "%EBZ` "%'e "!&h /#[&܎g G#&4\ٳk }#&bgيk #'Ojl #(')ܺHn #o'np $'Ks :$'t e$ (:װy $;(^b۳ךy $b(rIۇ{y $($TS} $((>| %(#} % ) P%C) }ڪ a%b) zږ %)7vi^ַ %)ZrK0֙ %)qp2ֈ %)of &5*iپJ &P*gٟ< 6&s*cx" V&*WV y&*S; &*Jo) &* =G & +8< &+#1& &8+2*ٴ 'W+D#ئԸ 'c+K؋Ԯ 2'+]fԛ M'+iVԗ e'+k?Ԑ u'+uz,ԉ '+v_Ԋ" '+v]Ԋ- '+uE ԍ< ',s7ӍB '+p:ԔJ '+h)әU ' ,h#ә] ',cӢb ',\ӣm ',] ӥw ',Xӫz ',UӬ (,Qpӳ ( ,JjӸ (,D] ,(,8I :(%,0> :(,". N(, X(, a(, n(,%/ z( ,8? (,|KO (+u aj (+gtu (+nԇ (+kja+Ԣ (+TVW.Դ (+BEZB (+%*IJ (+ BS (+;f(+4p7+(+.ׂQC(v+*אiN(g+0פԄh(Q+l%׵ԟ|(G+W(Բ(4+Bp-( +!R(+ B!(*) '(*L(*3n"(*JՕ>(*Udf(*-~)x* xו (Z*Rֶ: )?*1\ )**Ղ)*e ֳ))9/))CH))b/h))ׂT(l)w ץy(L)p`֩(()@=()((( )&((IS'((_v9((uׄצa(l(Aמ(X(t׸(6(W$((2T('z('r2ب('<VF('  ub(}'ה8(U'cw(/'s;ؤ('F#(&5%(& VI@(& ׁ}e(i&e תٽ(E&& V(!& 1 !(& `)% /ژI)%U Fi)%" }g()% @ֆ5:)q% !֝`6)P% ڜ%D))%F OM)% pF)$ z,;S)$ HN{V)$m s۫X)z$= ֖^)V$ &Td).$ Vxi)$ {܍h)#P A/z)# K|)#n4$|)~#x֔u^)_#qn֮ܤ})A#Fqs)#Ac)"^F)"X4s&)"nMSݵ\)"+@u)}"^3֏)b"4-ֱ\)>"ݕ%)'"U D)""  *!b%9*!@Af*!cޝ .*!B}:9*u!ՙaC*Z!ձ6S*B!Vrd*(!w$ޚs*!Q{* xR* a)0r* {`D`* @Faߜ* K3s* !1Ր,*c զ/`*P  ջ]*9 c߂ +% e=߷+ 00+  ):+ 9bM+3fg+eAh+`;Z+,lh+hz /+zXԏ5\+l=ԙa+_j6Ԫ~+NuO&Զ+FL%+9( ,03,$3q@,zST,]wg, r!, K] ,.PI , (z ,p ' ,K @ -( f 2- !M-nެ5!Z-Pޞf!s-+{%!-np*!-Of5!-"?10!- 85C"-!:Z("-/uM" .2k"".p."A.W`ݱ$"_.A8ݓ#"x.3'".`#. ; ,#.2J#.t#/$#/i1#:/DܯC#e/2!ܒU#x/3{b $/<Yлu-$/L:вP$/Qy"Ъ[$/]pЛ~$0kfpό$&0{bgπ$,0]Qw$T0W0ۘ_$s0P"ۍV${0J sO%0BL5%0<>10%09%!>%06^% 15m%$1 6z%:1) 6rگ%j1A 7Yڇγ%1U 7Q|Τ%1e 83Q΋%1 9!0r%1 9(k%1 >K߿&2 C/ߺ&$2 J#߲"&A2 S٬ަ2&d2!`يޚG&2-!knޏG&2L!xW͠ހ\&2q!'~qk&2!adj&2!FR|&3!}@&B3!zټ2&N3 "pٞ&{39"gq̰ &3_"[_̛&3q" XB{&3""P"M&3"5B7&4"CHݲ&4"[<ܘ&E4"#p5٭܇&Y4@#:٥˲r&j4_#0{ˇU&4#/Y\?&4#.PH(&4#-' &4$-&4$-&5?$87ʥ۶&+5t$[3ʀۗ&G5$s:ٱcۀ&U5$E٣7[&p5$B{ ;&5%Nk!&5&%R]&5V%T.ʎ&5%4[#mڿ&5%Q]Lڝ&6%xd u&)6&cX&>6&mٴ6&\6[&xٗɈ&x6& {zg|&6&*k:پi&6&^Oهc&6',bO&6D'(ɧ7B&6o'n5&7'6&&7'9ر&87(eٲ &_7J(ٚȡS&n7i(څȄ1%7(gA%7("J%7)F-1֥%77)uB!ȩl%7s)Mq:%8)aF%8)r%;8*=ڲլs%V8=*gڬǴՇe%Z8V*ږǏ[R%~8*sH$A%8*h+6%8*R%8'+O<ǹԓ %8W+&Ǘl$8~+i8$8+9 /$9+$T$ 9,Rrӑ$9D,ƗOe$99,[L$>9,۽=7$S9,1ۛҬ$s9.-rۈƼw $}9N-yƟO#9-!d[ #9-7P*#9-<P@ҭ#9.qp;j#9R.ƒ0f#9.gG#9.;)#:.aЁ#:&/O":C/!ş"4:/ FP"C:/N ^ݹ.Л"P:/z }ݧeq"b:-0 ݖűT"t:b0 ݁Ō7":0, {Zϴ":0t lg!:0 T9!:)1 <[!:T1$ ]Bňλ!:1c 1L΃p!:1 41NR!:1 )!:=2 ū!:_2R ō͘ ;2 )BJ ;2 J  ,;3 h 2;;3F Ĥ̒d A;x3 ߮lUD Y;3 ߨ@&$ S;3 ߦ l;4>ˣ~;J4w/ħq{;e4Ly}6;4t_,};42X ˷d; 5^Fʀ?;T55ĉ0 ;5c;50;5a3 y<(6VÿIv<=#^ g<=D FŸg<=X><=3<><8>$'!÷<]>YQÑ<{>v1|av<>/X&F<>2/#<>E)<>H@<?*e']|".>*D87->*5b1->*r|j-p>*UңԈ)-Q>+ҷY,:>+0,>.+wh,=E+F¯ԡ,,=Y+x<¢i+=e+9Y‹ +=+woe+u=+0ԝkԲ(+V=+mչLl*4=+H4/*=+}._*<+#Ե*<+o Bv)<,H\I)<,։N)d<+, ֦ )L<=,Mþӛ(Ė (;h,/cďӲ';,ul؋oir'a;,رj48'A;,X&;,/>;ӭ&:,pz0|f&:,<B"&:,c %:-Aw%v:-NyڟҖi%N:-ھU%5:8-$$:?-.$9B-#s"ƯҼj$9\-aJơҊ6$9[-hƤd#9e-(ܒƐ%#Y9x-jܸƇ{#=9|-#}>#9-Wo҅"8-+!aM"8-fFU {"8-sQ4"~8-<ݓ:Ҩ!Y8-o-޽5{!-8-i5Hn!8- *!7- 6" 7-/ )Yҷ 7-h n߈~x g7- ߤ`H L7- 9 7-  7- F 6.3 w6Ѵk6.j Zz"6. }Hm6. 2G6. }]65.C Ѧ#52.o р58. >LF5D. ~tʾj5A. ʽ5V5E. ʺ,5F.R $ʶѠ5N.o R˲р4K. )˷T^4O. D˧*(4]. g˥4U. ˨i4b.9 [˖ѯD4j.c ˜юa'4b.~ ˙l(3l. ̒;3k. $1̖!3k. SW̔3l.~̕_x3n.;̎Ѹ5Z3q.V̓љ 43j.z̓u3t.<̋Y2o.^͚B2d.2͖#[2l.U͗92`.pͥ2\.ͣX2[.90ͫѼ@2Q.JUͱѬ2L.b͸эj1D.ξtA1C.8_18.`B12.*z&v17.OS1).tt81+.L1*.300.?ѷ 0.V 3џ0.f"Gј0.l?gҍ0-}]{q0-xt{W0-#ga70-/YA#0-/K(0- CB/-J7/-8.,\S'.,lc.,yz-~,҆ u-q,,Ҝk-W,=Ҳ`-K,OҼU-8,j K-,|(=v-,*3]-+3#E-+*9%-+E? -+YG,+ sO,++Ӌ[,o+AӜe,U+ Zӻu,9+"fԄ,)+v%}Ԓx, +d&զh,*P)ոQ,*@(;>,*++X%,*.w,z*,Ӕ+a*2Ԭ+D*1&*+,*0.7+*5ED+*1O W+)1[d+)0p5v+)~.}N֎y+)h+j֡c+)T*ԋַQ+h)<,Ԩ7+F)$%*+))%+)&+()*(.:*(#OT*( (dm*(9}׀*r(rF՞ם *U(SUչ׺*7(9g*(v }*' #-i*' E11Y*' eL3<*' Վl=,*b' թ؂;*H't ؙ<)'X ض@)'> # >)&* ?4?)& TWA)& mxD)w& ֙.Cu)Y& ָIE[)6& _LO)& rH:)& ڊN#)%i .ڠQ)%W DڲN(%D hQ(%* ׃P(q% 6נO(N% K O(-% d#O( % |:Q{($ (UO_($ RsVE($ vۍW1({$f טۨU(R$I Z'-$0 U'$ ,R'# D$N'# [:F'# wZA'# w19f'}# ؑ?6O'a# حN/;'G# a*'&# s) ' # ݃ &"t !&ݗ&"^ 7Gݪ&"N O_ݺ&"= mك&l") ٞ t&X" ٷ\&:" I&" 1&"  &! #/&!  D?%! "`M%! #B}[%n! 1hڤi%M! @ڿtj%2! R}B% !} d߈!% u yߎ~$ o ?ߕl$ g 9]ߜR$ b ^yߠA$x ] |ۖߧ+q$] W ۲ߪE$= U ߬'$# R ߰$ P ,#P G:$#N _\8#O wWzj#O n^H#Q ܄J'#oR ܞ+#XU ݲ"C[ 3",^ T"h Bh"q ` G"v #j" AzB! (Uu#! Tqo! ޏgg!h :ޣ`>!O XZ!2 Of  7BC  ^ ;  (R  -8+  TI  _e Iq7' o|{y: KeR =Yd bBs !V- [k# \ c J ( ] +  #4X  VD"  Y W. :e *E fw} ~d '9 p [t _ ] ^I L= ; ` ' & *  d }. < ND px c #/  >2e  %lX0\s%MPM$Q$ Z/?#1a}1j+As4uJ;\0T  `Z6Waw;ygr"jEIXuw.CH{v>qwZ0<r]h(fGV^|:wXqHoQco-K3H8@tKbo}A7߬ * zfW} l Q [- B$ߒ !Q%!CJ!ly!LaޓN#!<^, !")",E"LCݜ0c"yid5"AP:" -?"6ܨ>*#XH[#>*I#\lG#59ܪZQ#vo9N$<O+$Sh$,4۹N$\XqۓM$>JcH$9F$?%7ڣ;A%3j>i%T;6%|dj;%'+ں?=%a ڇ8&R<6&' 8_& K6p&-m|ٸ3&jOxX1&;[?3&1#/&7'89'?&ة6T'tLs='omD7'_c3'7:0'0ؽ''Pئ!'os(8K*(Q8 >(lX(_r(,H(S tה ( Mg(9B(,'(Qߟ )( m߆)> !֭i7)p )vCL) ,^(]) 79 t) B)!0Hm)#!IYdޥ)J!pcR֤|)n!o<ւb)!>iD|)!&Dp)!d)!  [)"*P*:"NչݥL!*L"eթݒC2*j"|Հq9C*"dV6U*"ND)\*"-!i*" }*# z*#(*<#Ngծܢ*`#l$h՘܇*m#2`Յk*#DR]I*#NSS4*#^M?*#oH *#x?*# Ak*$C<۪\*,$b/ےI*C${7մu7*V$+՘Q#*z$#z6*$*r*$S*$ <*$" "7*$7 7۶*$Z G ۚ*$m Xڈ*% nd**% Dt*D% ճ*]*T% գF*m% Ղ-*%) u*%B !kڱ*%a "Oڏ*%{ ,M}*% 41Ai*% M9,H*% ^:'7*% uE~*% Me*& LL*&* ^2*&L c٣*2&l iن*;& zn*B& 0}հO~*[& Kա3r*]& ]ա#l*h& yՍy_*{& Ճd[*& {JL*&: nٳ*=*&` aٔ 7*&x Uz*& #QV*& L=5*& k 9)& 8b)& .&@)&- A)))&> P#ٴ)&` fَ)& (qz)& H ]m)& p3}^)' ZH) ' 4+) ')';ط('U1؝('q_-{("'J[h('bHB('"p(%'](#'"A(('#I%(+'Jsج|(4'_ؕ_'4'yv9'8' ؿX'D'7ؾA'>'L('G'Fgس'M' iعt'E' طWR'M'Hسؤ&0'J'kط؍'I'طo&G'L%ٻF&E'{@ٹ.s&E'fG&:'e&>' A&6'8*ؽ&)'P]؟%)'r؄c%'?w:%'lX}%'> ]%&7 0 4%&d %& O $&-#' $&6X0ٷ $&Y/~/ٖ o$&yX5z J$&A_[ "$&?8( #&L! #&ݤz "Q&enݶ`~ |"H&ݽIX T"9&8. ,"$& !&  ! &E> !%up o u!%/!D P!%;1ڿ $!%LHڧ %d2)_ڗ %oXTpډ %ߎu\[ e%ߢa(' U%߸O9%#@ %Yc'%fW$%5$ K$:m$8tkX$ov+0$ O$'!#k-v#'2GC#3[i #<ܻQf#OTܫ$F#Xܨ_&#^"ܙ"nZݏ"p64ݏk"vxa݅3c"~݂,g" ݀="8/} "ruz{l!/xV7!^{!!7s`!%nqx9!Qp/ ! d\ -/b1 jT\s V+c NV? q*Uv vX<d>X*o^u2Bb>d`Yh^?i)[uluuJE?zu,vxjHVwn""R`WEIC>I:uud2R2#a'q4$ gD@:{k@"G#`*||?Z4'ME bnRiytaM?kDT%?iiz|+5>; nM7 ~ p^L k0- = G  ~IX` 0t G~[% j|bu R]S+ x6) .B /S () VI"B ^] ^z _m$ {lX<R5=/9H ^0nAfXocps$lU^y?f@.x.,< ]IFj <-TJyPi1a.Mv L<2` |SMUd x7  q%$ Homqq ( ) )  C Xe=y Y aI- t  ` .Ri @ fVwL  =$ 5&& :wH_ xKm  0G % #y[ < ma [ 8/ m T[ Unzd 8V.= yCe 2.  '(U eG| i% - \|[ H L@= X F s / w7-tt uVe5_ Rb ;$B< p^4ny  /  <CN  ~yX@p * R 8  0 K @ih e Os 2  G^r [ a4\ UT4 5I  6G [ D+ $oIw }]M % . W * U5< /KK  P \ X {qj eYPt 'G,~ y 5 #j a U+d QQJD sB  ;a -G)9 qxV U(  D:2qUwcq}3}1E`EKOR+e;N wp}~zR; >ir [cz w[JyR P W} Ft?/ >L'j /x  S% 'P ** @bR SC( n b: 0mB- TMV 7YL eep C} n I} z # )p? 8gc5 JTR TOtj aF] r75a 3$Hz * -i  X* KC! >fH1gh)Lr *(QC6N ]pE xV" o8v~\$kdo/bN:Y/dEFJK;7P0-U HWR Xn[.^{6bj#JdO0[gC;ci0EvhZhwehkof^,dvS8bpMB]]FZVN>aNA@oB,<3x:%m?^=O?1C@ ;9fR8T3nDGI{B:|]F*hxL{UJiFKT9 J5!K".GF  E^,"IqG0BmOGghIS`|D<BxH"_F HD9,?$4R:Ih6 a*i'tL_5-CD)N .^ Op )l z ? on\ IXy{ 2N%_ C4: *<$ "G? Te Z1  igL Mpj) '{:d HvJ &Th& Sl\ mxS )B ZoR7 6^q* X[ C! 4 6A , ^   h,C M9` .Jb Z "C f+ )! yY ?  Rt r= Yb Od oT % |Ee  5G r+ ' cV Ts  J6 U;d .) n$2 DG+ UE kd B udg _H Ha) "-1 *' -0P 3'Ys ?9z >sdT KE:i T"!} Uw a`@1 eJ_J i5c mi rEm u*\ t:2 {F1 z`Rv}|!|xr3u_UHrB1br( xmlmDjP*dm?;zkw.RkSgo<vh~#je -jT%=c=BSf'chd|zdy bYk"^>Z5[+TIOCcL7uD3%9j#@7UU.Ci'-!s dR<-- ?X+q 6*";l8=HP?UO=KfV)Sw\[arcehjeXw"kI2k{=Eih+`nZsjKh8lg*YaH] 3"T+O (3EA?;Y/H5jAO)XW rl_czeO{n <ew)T?| )up$&o5=pK\s\q'wq4hzHrP|Ua:|fQ {{>~z/ny[z5J}Q;h+,ziCvQWt5 mr &pu 4pe &GnQ @Xl< Wfj, pwe _ es Z Pf "T 3X >K J RE @ i = 0 ./h " I%M  h-   c   E ( ' N  2r )  ?&5b  MKA;  _oP  k] ` yn} 4 E~l | f_ l 'J\ ] P62 S p% G  Z= 1 65 S , "vv # :L  M8.  ZW  n  q 0z R Ni . {(Pl   0|  eT y 80 u  n  j B;+ f afJ ` xmwT| ] PT W 96 S  O X M 'f M 6E9 J [l L ~ue J :YE F n6x F O A % = 9 : 8-` 6 QXm 4 rvWB 3 Q  4 2 5 # 7 a9 = 0Sc < Os,y ? wuU ? [7 9 F? 6  e0 -;* R & 7m# ZLM" wswr*! K1% '& -% IW) <}ht' [9Q& |k%(  D& L +& |2a&  \)( 9 }t( ^ I, c\"2 7X3  ;  9C = ;VF ^ mvvsO R3NT 20W  ]  T b ? .ag a K,j sVyt /.^x Z =| ~K @ w b u 1:jY r\a+w tY P~ MZ H A> k 96& m-Mn 6 , !M VZ{v iVV @)   K  0z :c j ix  T_ 4 (: | ^ & ( 0+ O 0 |- Ld= n r1xA  B[I  .U O* [ s] yd  &;Co  Q y  o 7H }W q ouQ0  iJ c L1S >OM_ apC#x 6?Q C03 n)p 2 ! b1 &P^ s "ej 3L &( W1 uNo! 6+8* c4 47a7 Vk=< Z2B  *H "*L \M{T L}>r^ {rW` F*l Yu  Sx 1/ r]vm XpHm gVF ] CT lHP{ LICC wB} CV 'L;$ d4Y  2h& 4&) E[ uxxx G -M i' #D ] {>? 4\ XdUW=3Y"( DHP ^pu nu QA 5  f" w0L NPg r  rNG E-y ,l &*D H4i ui lkT @**   ߻ ) i= ߃"P Z Wl  e  T= 4 ;߸ ] !ߋ ! H!! D ߭ 4! c ފ d!2! ޫ[ !l! iއ< !! CR !! ! "- !":"Hݪݢ@"w"ylnr""~8O""n+ "#F "G#'ݤ "j#7݋ܸ "#["P܌ ##,c &##4J >#$@ Y#Q$Jܠ r#o$U #$?bxPۧ #$qnY$ہ #$|Lc~ # %A9q #;%ܩc #j%܉Z #% gM $%L(ڜB ($%v |: =$&[. X$@&ۤ&# p$k&ۅ  $&u\ $&6a/ٲ $&]Jٕ $'{Jr $$'05G $U'A%ۜ% $m'M$ێ $']` $'/j; %'Hr+ذ %'cׄw "%(_j 2%0(HX 7%P(ڝA ?%t(z) L%(] F%(DEפ R%(p{ [%((Z X%)<9 f%1)Uڹ k%S)eک q%`)yڎ{ u%)Gh֢d y%)lX֌Q |%)Al9 v%)(A }%)+ y%) r%* y%&*&0 p%3*?Bյ m%=*Y^ڱՒ j%^*yڜp| a%c*ڙ^b Z%r*ڀ4@ L%*s$ F%*h 7%*Y )%*;(Kպ %%*QA>գ %*l]:Ղ %*#bq $*JX $*24 $*-  $*? $*M$+38aԻ$ +PRjԬ$+]k|ԓy$+nam$"+ZEZ$)+>$A$'+0$7+$8+ 7$6+%_#G+Lܸԧo#C+a0ܾԚQ#G+tGܴx,#O+]ܴ_#J+nܵU#J+ܸ8g#E+Cܻ#T#F+_ܽ4#=+j#7+E";+)'",+;-Լ"/+ULԚ"/+q7fԇ"%+~X}us"*+RnX"'+DQF"%+/1&"!+  "+ !+!+ >9!+\U!*%sr!*,"Z]!*A-ո=@!*JAյ"!*TI՞ *nYՋ *v=5eՅ *`^uo *߃`fs {*ߊTLQ l*ߟC%. \*ߤ2 X* $C*,"8*WL**xmy*UW*+.)( )* .);.8Hֽ)ETZWָ)Mpq֮}e)X֤Q:m)a֚4U)g֘7)h-֒")u#Xֈ)w>z׋q(x_׀@(7xm(KzT(iq/(Hps(lqT(rS1(8r)(Oq'ku'B/ma'eKlH'dn*]'e3o'jW'l2'=7n '[_w&p'}Z&Tن]'&wsيHy&qٕ/P&eGٝ0&dtٝ{&]کU%T,#ڪ"%VMGڬ%Ofcڴ%LJڴk_%J|ںJoB%Dڽ2B%A$8 $53@$+0^i$!M[`$c8<$ w~$d#7)T#`N"B#2)Zm#C5M#Q #e";r"%aL݆"o:|ݛRm"_Oݨ*B"M_ݿ"6q!&M5o!r[au! G>U!1.!,! 6A lMT} xbTq *z = {Aߌ lS&UdR6?zp{]z+k7S[ DA)!9iX6+~UJWj ")k '*PY_6$hW00@J -0T>jMxeql{KnSoz~L{"n @D v  j 2 ,=M f"m eE {[) H;0 6, >\S' @Ji ^Bt5 tJ RL 7 0R9x c]qx +c-P k.W st ooz- <J}X -|[ `{7 Dz Cts{=q]bHk3aLV Z%##Q)>OH]r@i{;_)P5"H/$!/ZZT("QhW $>4;g-2 qbCe Y07= stQ HL  v m^ <;F f| 1:9 $ub l * ' Z1M %7Qe ;4Q <R @#% j @L] ; ?~b, C1 B0=  CyuY n GU @ Fj GV +{ IG. L"sy NT2@ RRW Y% [- c5\g kl}D` nH) w7 |_ EN} yU[ jv)|- w2,)weMbw|WOV{0{/l,|p_ex} uETGq)mGD(hnQd{cc=m_^ )^DD`a^_;a4\(b!`VZ/a^^aaZrLT7"-OpE/IpdB8MAX /<a 9[ 2;[ r8n x9d9: 9%r 7g oZ4*l 01d& ,%l _$u !DD R  >WQ \-y g # - r ^n' $Uo  k h ;~ // $ rm cY A  Q<    I P ? {Sj q g- 2 ) r s  H# jc' TT:& 1% (# 57R _{VV G  \(} <g~ ywR" >?% 1( :+ N(b* TI;-  . . ,lEi1 r|u o0 O<1 J 0 "4. =Q, q/kR( 4F' % 4 " U \g!  a=   0 i0 o '^ . G CO [ 8AQ > "AN *T v 3p,U <7x B m]  I))4 OsS5 Sxa XWM ^: > e1lae]wwx<D3zxgm"_3,toT_e{DGh%:/,.O`#I=C u= "o WUfߊ > ! O!(O!T5!ޅ!>iX<"H@"U >"Saܕ;.#lXaw#{}U |#Mo$N3۔_[$mFI$8;$%`C%Wz %_?2%@!& %!ٲw&x?bn" &Q$76 &gh T'?|؜r 'g>`^ 'CC ;(ߓ* (\_׊!(LB!)޵e!f)2.ֻ!)bGt;u!)jR!A*/ޞj!*C"b՗L!* B'""+ݽ2"]+!ݎԿR"+c.n",6t$"2,IYݲ"x,1d4Vӝ",Sq" -&Z#M-܈62#-`=҅S#-K^#.#l.1AlfѨ#.y_`/h#.K"f#?/+ܓ<#/ceЀ#/ "<$0'$V0P NېϜߡ/$0 nMQ|>$0 N`$'1-!ۺθ1o$`1g!ۆu{$1! s>"$1"/^$2="MZͤݞ$L2"|CۄOl$2"6?E$2#,$ 3_#i$e3#2ۄܺ$3$XOۗ%3M$~`%4$01'%^4$ڊ&%44% V˜6%4%IIڢ=%5%su6%55&ڪʻ4=%5|&TP<%5&#/ ;%5'Y؉<%76y'ڢRF?%r6'xD%6(A@%6h(=hפK%7(t1|I%K7(ڡJA%u7C)fȔH%7))I>%7)A ֡:% 8*ǮZ8%]8*ڌW"0%}8*p",%8 +4(ǺԤ#%8z+~cf!%9+07%N9+ڔ %9e,8_Ӭ %9,g5A$9,6$:>-Ś$F:-!$ۮZ$X:-[1ې}$:.@Mŵ9$:m.Q8z$:.`<$;.fvv$5;L/۾ģ?t$S;y/ۙ\Y$~;/*oϮI$; 0pH{3$;Z00ā;$;0-$<06 ΰ#+<61m "ìq#AD5O ʈj"5>5 IDM"?>5 ݬ$"m>36@ɒ!>6ofN!>67U!>70d;Ƞ!>^7fg!>7G7Ƿ!?/8g| $?i8%{5 ,?8O߽, V?9OzߤƐt Y?89ߤLM j?n9߅\ ?9Axƛ?9'm^?A:^]?:<MJş\?:y=e.?;:?^;/~IJ?;lFDr?;s p@!<þ:@m뿩A@t>Ar@> JY @>K @?1\@H?xa#@t?]@?5H??|{hd?&@?s@5 {?@p:Qo?@y" b?A'Ά"?7Ab-}?YA4D#?ADP`?AS\0)?AlB?BLyǽ{?LBJWk?`BM V?B$@B?BJi"v4?BL,?&Cü?VCB Mߗ>}C !uRQ>C 2G>C5!&E޽>Cw!`df|>D!uλ %}>PD#"a>`Dc";ݟJ>D"_ G'>D#=>DJ#!!ܿ=D#k!6h=E#6պ==E2$R·=QEx$Dx¥[ێ~=sE$r Ba=E%`:=ER%#Qڬ=E%+ZG+Tĸ1 9DGI+Ʈ a9VG+@Ưcԟ -9GG+ƶ0E 8XG+&ǝ8bG;,.Vǧӱ8VG^,vǣ`Y8fG,Ǘ0!8eG,ǝ 7eG-X'ț~7dGM-fȞ$7dG-ȘoT7dG-7ȥ@Ң7SG-ɫD6^G.<ɢ6SG@.tɺѿq6CGk.qɵqc.6PG.ɴ55@G.Ÿ5?G/U^ʼy5EGW/-S55 A\#>52 tmʺ"v>5\ aݤjʈy">>5 m[?" >5 >"=5 %C~ !=~5 hw‰~!y=r5(ޝD!E=l5Mšʚ =`5~!ât <^5X6èV ʞQ;5plʄ#;5iI;4>=;4r&s:40!6:4m4:41*;L:4L`Pˤ:4p d894Bk`94yƇFn9o4[Ɣ$19h4ƢP8P4Ǽ8?4S8.4CC˲c84Stˤr,84k̃473'j73W(V73OC8X73KX(73[-63r63$-Ty6}3?Yɑ̹j6b3Lɥ̧W.6R3jɻ̇583y5#3/Yb53oCrL522?52542DR42R{ak42}˃h74o2)˚*3]2C"̰ʹ3@2RNͩ3)2bR͎S32v]'31i,210*N21,eC:21YT*O21vY2}1΋&1k18Φ1F1 nr1(1W311( h10*/200:hUϾ{00FxϺK0z0IGϗϰ0T0Y}пϠj/30cEϚB/0k}Ϗe//wЅ1//21z./UWv./Rwnb.{/іe>_.X/Ѻf0.8/]-/+'V-.LNX-.s;Ox\-.\KR5-.sH2-y.ӜC,R.Kӹ@,9.0|=j,.S>3,-%8k+-L:K+-Qq= +{-ԛ6T+R-Կ:)+2-=8* -h2 4*,](5c*,M3?R*,w3*|,Ւ0)Z,,ֺ2)2,F`2),k-U)+#3f))+D/=(+(h,(+M׃/ (m+ר* _(D+<* 8(*+Z) (+{*p '*G0+M '*uS-2 s'*|4 @'r*؟4 'N*: &(*=5B &*bqB w&)8Ir O&)[MP &)ڊO+ %d)3ڨT %G)dW %)#] O%(C_ #%([Ah $(|&ipt $(Xۏt\ $](۷ׁ@ f$6({ׇ )$(w ؍ #'n .ؖ #'i-Q\ؙ #'dQ܅؟ g#n'^lܣؤ 6#F'Yجe #'PشG "&JDٻ1 "&?qI s"&4q @"{&.ݘ "U&"/ݽ !.&P8 !&j_ !%,m Y!% YM *!%v5 !y%ߞ K%K #%|o $+$? $KG0 $ir6z$?BnS$xHLl%$M0C$ U#6Y#3\a#-Xwht#BsgJ#\>,#}m܊#mݜt"]0>ݩ^"QYhݹM">6aW"/3+"! "! .2!IK !*jj!= _f!P%>I!b.%!{8w!+;` Q1DF UJ)e {O?u XV _, +*j h3%5#b% J(, A ^ t6+hU9OoH<Vf#hH*w0/ m49Y8QI;i?2?apBYr FBTJ%2M$P5QKM 2aJ-FtC=ed;JvO5XY6.g9)|z& f%#L$><3%\P'yeu&~Wy%Bj%'%R5 <B+P \1 kK xe& Alk [ ]P qJ4 7b ",L '5 35 LA  ` K y(]{ Gnd a}L z /j cF N& >" #*@ -[; 7y]v ;,Wf @<<J JN$ Pf Yy `14 jhRa Mmsi 8nfC sB q* t #  yPE w(~bp ~GzE vk Q |^24{>cz$zP>z-5Zv[!yquDw~\ku]y5|>J{%'} $@{(N_zBr|tsxd;Hvl+tN t= %jt? vf^ Cc- SWS 1WtJ { T OXO> '!Q` O/ [M@v o.Ha BF d?(H =5Xk 4 KI+"  %F &iD! V QT /!m @@  :  l Z/  2 i a z3 > Zd  |.  2/!  U$H ee qf9 07 &  2tH  oSn% Ay&l E30> h2 |/2 .2q< |\7; Ss?e kH2 1J 0\R /Y ZJZc '|hn H5n8 nv UsR9wqeyz~+uP@cx:wQ0uwq&`w 3xMG \x# tGW2 w#` s\ lUy Sm. vev*- b@h azX ]Q 6^ V p\q5 _II] \ ' XMl 3X{ MN>) Kac1GBh@`y@%,6=4_=Mq;aW7`&56 ; +"H&USdaVT#-S  ]3UV["q']1 O?12H]>U JJ[8aRj+MbphSFzZ#vNh-4\m_PM#|?Lv+4$eb$w;1=a   US0$B]8.\(Lpzqw`:H^naF w4>m f `P)MFG@fR-6.oky GYh!smT<9AP)6eX$=sW[_/ C]#'3Q{n2-53Y2Hx<wc5 EE}d Qy' Tad Z>( =f$ Sa I hi/{ kqRL dJ5m f `_" [DF "Sz EL u TG [0 d8 )Z 4 oz *v d: M Dm  |/  V  ,F  &r ~ 5; "U Jp 5 u^ L Uk R +J lr yev ~BNM nr9 xY$ QS$  0IQ @ a 6;69 4VY ,| u ]L\ @"|6c  , , Q)][ Ig_!U;d9n+W" q3n:hkBHI a- Fzwn3eL$(2=-cXMw(q7=PoFh-_ BjK&a1l%OIo V !Xv J0! Y^ !L s v3n & sXV  3I}J m !X E% ~ " 8E ) Q O$ > q 9\G  eN a ~8 @<Q S v& A/Hc Vpq\ysg*O Oy*c1Zm"CJHu\2ni`Z=z q._g^0nd :U&{jn] AK-:)~]U#1lP?Su?{tV==:Pqa3"c-BesScoa~5m,3 Uw}g\5+^;9~jWf,7M6R seCk8znkW1{Mr\1i<4 ]$ r u *i)8 T^Z opx p,r}ߡ J,h^  mB` )/ AKY  yv @!y-ޙ }#!V\C F!( "\!6 _l!=6 !-ss !y;^ޚ : !SQ. x !!T: !J !! ? S!!|kz !!"_4݌ !/"dݬ+"F"?ݩ[{"f"zaݔ"r" <)݅"" pI7=#" ^r#"~ imQݒ#"[ '&4Jk% OXN%Bf4g%hs4%~ڝ$Hy$$ p2V$hP$T$`|Ss$\zV#qW4ܥ,#@R|g#L 7#G2/"B`4i">lݑcu"Z<82"%:!97"!9V{ R8C .0M  k,v 0' @ m ~ xPo T 7A    *5) VrSf G c   ? A  6J 'm,} .MM 6S{ l DH I LB " Wz a es'#l mM/ v){k mK|}B wSb p $f.>C_ZvfXdKR#]F(>.?"s6mR#3=rD.w k%@PkxkN)'+] !ab"(~)DH1_=JoNFfXYqD|AgC'x -tS& i]'Zl;SNoQK)?m<4y2%'bbUN~ hq?CK*  '<B 2^h68wF{i?YU@Oj2Ywiq~.A{dLanVn^|hEQ\F7JF0)D)8 31*2QPjf r%aT"'JA3(--J*_+p -<"/sY71`pH3T^3 ( =$ 3 2 =" K  # W 1 _! L n7 c zI v ~w] bh%y }J_* n6T2 QH= 9?E  +9O  2] 1 -i > +t& P $@ j vV y m~h df UnN O[: DF% 2#  &   ,  : C R P -s l }E auS I_c $(F{ &| 0 'o (UD (?[  *-{ 2 *n T .K g 0/"  1 p<  3YT( 1HeB /0g .o +^m *GQ+*$8- I/ /l2$R7p7o8VM<W2i?5|?} D_)*GEIDI3maOwUKf [1P"b';mM/t\O{syGuy]pWvy\4sn<Pi)5e/_ g|X +[S7 D-NX ttFx #zYB K`4= @f3  #9. *& U :~q+ \P@ ^!` ,r  <#d Nt/F{ r5.zb =E0 K R$ %,^B Z^qZ }be|i 89i kV #ZG D:D7 w)^k" 9K   / K.D uSuW 2<\u F, Ww 4q_ xXLsl =SoY '-? ' 4 eM{ DW3 ++= DU 80fi pey~}t SUa g G  X4 -,D or.pk  JF   C 8Ja _uu py Y0Q/ %94 @R Q[ EZ: lg\ )u[ h zbOO q# a[= X1u+ Qf [ B%S w ?xp * 9u߸J s 11f  02! +A!4 J %ޢߝr!z t {v}! K8Y! " "6! ݲ5"j! u_"!D (ޟ"!s K|"3" 0ݱP"n" f+#" !G#"#r#*#Nnܧܓ##Bad##9D##1$H$۞b$|$<eۯ$$n `o$% 9$Z%ډ %%HQ%%Qْ%7&(tڰa%e&0Ir*%&; &'7Aش(&?'_J٘؂\&'S88&'W]&(`9&m(Lhlא'(p%d<'({-^':)ؔq');QE֪d')o<uU'*غ,A(t*m2+(*-Aտ O(*do {(I+pם+ (~+ Nb (+$-԰ (,y2n )b,Bց: 0),T@ d),5mҩ )A-tn֦qx )n-Lj2] )-C ).DѢ. *H.uՍc -*., O*. j*)/M6ղЊ *{/Xi_- */uD *0&9϶d *A0vՏc> +0B! +0 &+1GԽΆ H+q1@q6 S+1bH g+1+͟\ +>2tԩM9 +q2^o +2Lͻ + 3t##o +S3@Ԑ0 +3aP ,3Pˈb 6,04ӹHC =,X4Ӄ [,40$ˢ j,4&f v,5MӾ$ ,p5sgʽi ,5ea:ʇC ,5[= ,)6NӶ,l6C 4:xɢ߽,6~ W?J]ߒ,6 ,Y,!7 ! 3,L7\!%ӧȃ ,y7!X-,7"Hݥ,7>"oǪy,.8"ӧH?-8"l-8!#<-8m#9\ܥ-(9#{Ҹ k-e9$҃>-9e$Qf-9$+ ۼ-!:%\ڋ-B:c%ҜtH-:%C -:& -:Q&AĂ١->;&ҟ]-r; '|+-;='LĖ-;'4.ب- <'tw,4<.(Ӻé:,[<(ӁK,<(0Eַ,<#)c,.ú|,Y+?mԒg,I>+ӞG],z>,uB,>R,U|ӿ2,>,l'x ,>,@, ?:-+D?-5ԟ?ҩ+o?-t0Ԑp+z?.Fn)+?r.f9\+?.My$(ѕ{+?.NW+@]/ֿp@+@@/6ԫ3б%+c@/pԐf+@O0e*@0 35*@0X>&΁*@31X&*+A1xǾ@{*;A1@ռΛ`*[A2ՋA6*A2oW*A2.X(͵)A3x"9R)Ak3Fz)A3j>)B3jbV)B>4ν.)>B4])=B4[ ׷s(cB5<׉(Bg5 b׃(B5O kBʆ^(B5 F 0(BL6 : (B|6I #WɆ'B6 E'B*7 mz'Cg7P tȁF'C7 ܼ!'7C8 ٿ&@CB8R 1żDŽ&CC~8 c٩R"&gC8 ٔU&gC9N ٘Ɗ)&tCJ9 }(%C9.t4%C9OWlƓ%C:b+M%Cs:Yw%C:FPEř$C:4W5$C!;nDw$C_;>GĠD$C;QYA$C;?#C<>SLà#C5<NMM#C<JS #C8kX!C>>~ށV!{Cl>m C><T߃+ pC>ߙUR fC ?ߜ_C\?A#଼LCy?[฼v\BC?ȼ/,-C?Eؼ'C@7ֿWCD@TB|@Ki B@=LB@]7vB AE>Ծ'BBA[FBTA>qBAAㇽOAjBA㣽D"*7ݭ>E#vXf> E7#Ժ_>9E#;ܴ:>SE#tn>kE $ =vEw$6y`۱=E$sbWi=E%\V=EJ%>ڴ=E%v+D)0ѻ'0'DF02 㻙Ϛ/D0YmJ/C0Z >/C0%=(Ϧ.C0E_P.C1zJ.nC#1Ѫε-DCE1|<Ƽd--Cf1꼐&W-By1|-B1Z+.O΀,B1nV:Br,B1w(,xB19ԝ͝+OB2Xý_+/B2.+B>2*AS2`F3͋*Ab2`HF*Ax2Ր~)cA2*4֭gͻ);A2ax]|b) A2G*)@2.)(@25`[&ͩx(@2{ׁX(g@ 3خ'>@3Pҿ'@)3Ṕ&'?F327&?N3IU&?_3 ̵ُ8&X?m3t ٸs%6?~3 5A%?3 ~~U%>3& Bg̼%>3] rd̋$u>3 ]۟eRs$H>3 M "$>3 Q#=3= D-H̡#=3 i7T?#=3 ܍6'"^=3 %ݾ,"$=38 y%̤`"<3r x "<3 MD!<3 S~!k<3 ޯ>!6<3K ̙ <3 =U ;4 XK ;3߉ Z;384˟;4`O:347:4&vk:40~˺^B:4[ˎ :4R94bG~9 4|Ai93(̿393a=˂83}! [e83S383N83W$!83=)̩?73wC4k739q3Eq73x>a273F63;"C̰63cWZẄ63[V.H63d)63/y53 zH[5{3Aʍ̬g5m3_ʖ̏-5f3MʡY4X3.˫-?4T3d˲ }4C3 "<4139x̳i3(3]̕/3 3y\x32CM@32|)5i32;&22TK229^h222nkͻo'22\́͏'1y2|'΋x1m2*aΡZ1R2pζ5iF1H2ν4162 02.F02Csͮtc01^ Ι6,01yn/19;2K/1snF8po/1`$&/1w.17-щ.g14tnѩλer.L1TѹΝ$6.>1p΅-1/ n- 1yfHh~-025K-00-03G,0mM^x,0)q<V,0Nӌϡ ,k0i'ӛύ +[0X7Դs +<0vU? l++0; 6+0 ) */K# */`+c */I1 U*/ ^ */A+ yж ){/MZ7֎Ь )e/bx֪ЌL f)G/u 4)6/a (/?'E (.d*` (.1 L(.= (.-M '.(]?g '.1n}X p'y.NؔѤ 8'_.eحљ'J.m%ц&..eRh|&.[Oa&.G$&- 1/%-C5B%-pic t|%-z39%|-ڑ%`--ۮ$H-=OPұ$--^ҙY^$-iҏ+%$,~q#,88.\#,ek@Jz#,`1C=#,q #, ݈"h,*GխAH.*gՅ*q*E5])r2]v)#/O),))>),c0E)E\T֫V)j_ք W) `a.)7qE)zte)Mz,|) wos)7 +֫߬2l)o wցm_) l=X) I9L) 5߯mI) dނ?>)!7 6)M!֝9)v!";y*)!^jSyy-)!2E-)!")"&ݸ&)V"t8֋f )"dp.)"EN)"= ݛ)#g ))#.&)^# hֈ} )#P WܔO)# -P(#  )4$. 6ֲ۱)a$n `֏n )$ DL)$ ") %R ڔ&)C% !֔:2)% PYB)%' t*ڽyG)%j gIS)7& ֪e)o& {a)&> Gٕu)& OH)"' t~ {)G'q֗K)'lX=i)'Q+)(@)](PK,xׁ)(qGF{)( Q)%)9յ֗$*p)q[**)88*);պ_*E*mb՛rh*|*q0k**m?*+WTԆ*O+>ՓM*+0*,H;Ӕ+?,XԞ[2+,z@rZ+,=ҢO+@-~rԟ^1+-YR +-1 "Ѥ+B.(ԡ_+w.FZ1,.&kЫV,@/yӭiot,t/x[!N,/Kϵ-,70q"өw,}0V% -0$εE-B1mFҖrb-1cM"-1]Ϳj-Q2l/҇pP-2P)6.2@.a3iwq _.3<3 .3-U .}4qJ _g .4c* /"5}Тʿu Z/5v:j^ /5Z'K /@60Г6 /6bt$ 9072 Y0T7u 07O2ǀ 0A8 ϧ? 18D ^19B)λƋ 1j91>oQ 19=  24:4 H͓ř߳ o2: Rr,[ߨ 2: ]Kߞ 2^;%!g[Įޓ <3;}!r^މ g3=h#|uU 5>#(BM @5?#ʰJ 5?Q$<=G 5?$SA 6L@$ɂA r6@/%]> 6=A{%-ɞf; 6A%D: R7 B&}ȭ; 7Bg&Ed}; 7B&=; 58QC&kA 8CI'SC 8Dv'ǹaF 9D'?R z9D(a׺V 9REK(1Ƃ` 9E(Dn r:=F(jŒu :F):R :FV)zǸ|֋ e;~G)pT1֔ ;G)j@֙ ;'H*cÐդ FK+ >uK,[i >KL, 3 5?6L,NK ?L,TE#` ?L,x :@eM/-u[ҝ @Mg-U8ҷ @N-?쾴b ?AN-A"AN-ްBHO.ὑ:RBOB.i$fBPp.|~ CbP.uռ\ћ^CP.Qd-C/Q./DfQ/˻ybDQ4/gD@Ru/x@&ER/Q`WqER/d(ІENS/bаFFS 0F-}FS00P᫻F]TV0˸f']GTy0"{IGT09f{ HdU0mキa:ϫcHU0A|/&HU0%ߩI^V1l:xIV1]5aIV$1΍JJWE1PJWW1C;JWf1%!KXy1홴iKX17SlΐKX1Z3f/LX1푳ϦYLdY1:F7LY1_Lg;MY1|썲<ΫM,Z12-3MWZ1߱;DNZ1딱A/`NZ1{/ΠO%[1OְĤ.=OR[1뒰-O[18+PP[1ޯ '΀BP[1`ꊯ0PU\1(Q\1ڮb.=KQ\1銮-Wd9TV>ƫ#91T=FV59Sr=1>;9S<ƍ[óY9QSp4(aw 9[M3`Ӳg9M<3wl+̫9L2.sƅy9DL>2[y9K1NrΝo9KU1FƨV9K0!FP9JG0uρ=9`J/_ص_$9IT/L*9I.Ɵ^e91In.|ѫ8H-'l`8cHd-"ͷJ8H,/(?ӎ8G|,LDǑ83G+XI, 8F+gN` 8~F+{¹2ձ j8F*)- Y8E&*~  38JE)f 8D4)tZף 7}D(Fȴ` 7Dd( 0 7C'Nȋ\[ 7CCr'kؐ 7B 'SL7 h7vB& ɽ G7B &&"I .7A%Ȉ~ 73A&%\ ! 6@$ .h 6h@M$[ӿ% 6?#Rwi m6}?P#ɰܒ E6?"WF 6>}"ɍ 5:>"".-5=!EYW5q=3!xߍm5< WEÃ߽I5R57 ,1 l|u.d@ Z. V2{ M^4 kHB9  K/ & ]Q k{a`8  c  ][hh rYo|J m;L o>' r* wUB4 xk }R:}j y{1" 6z MmB mu bVfr `Xd mST J(d =g? #6( 3geRnYx*&&93=&_9u&_7AP$v8/g 8@.U @53i `6-x > :g [a# lQM D8BP 2 6$  R S} T"\ 9v Q+ E,; ~v{J[ EGh Q 3y 3  :cu/ m H C> H<  2] kN Rx m7 <,@ ^U4 i2N cngxMd9h4!C [C8q:HrujB_8j!G{B25 W F[ cyc:2߷ T ߤ nu oTKv? Oi>8!:!]<2",hb"3 ruݺ"]݇1+0#VY#K&}& Q- '3,ؽVb'Vtؔ'a.$9(5Kj(oWn({Eg)@Tk֫)d6F)֏*RZ*uF"*';>+an+][Ԓ,tmd,Tm9,*D :- ! w-+ T% -^ 5хH W. ޑcc6!. 4=߂!/ k1޲ޥ!s/!Og޼J"/?!;Т"70!(ݓ[#0!13U#0!#R1"l>$1V"ΓTX$!2"ko$u2"C2ݐ$%2"bܪh%A3#Kqڗ%3C#1 ̔%&(4#ٲX{&u4#a_5&4#")'J56$؁ʶ9'5^$\,ʊI'5$Mb)(m6$Vx(6%i ڊ(7-%j׻ȼڣ)7h%Q7vںq)7%,N+:&7+^:&c}E+:8'ūY-,#;q'Ӵwe^,j;'}Ls,;'% ؄ -7<(tҠגC-u^)~/>) 1fG/>)) /X?).n/?+*)0?W*⿐'p0`@*efE10@*5/70@*ܾ?31`A;+kKy1Au+i0R1A+6PY1NB+͇ e<2B,6kl2B.,s2+Cf,3͟~2C,EMӅ3C,w(ӍX3D,m}̴җ3D0-dB`Ҡ3DT-\7Ҩ 4Dx-TԺcұO4\E-Jˋ.Һ4E-C^Nҿ4E .=-4/FL.5ʨ=5}Fo.1f{[5F.-*F5G.&8ɸ5WG/#ʖ5wG /f96GN/f6H|/z6,H/ ^ɯ`6}H/*]%6H/87H/67"I00 s7_IT0yȅ 7Ir0j^{ 7I01"T7J0/8,J0͵'8OJ0DŽ`8J&1I$z8J=1s3)8JR1F봒086K1ǻm78VK1Ɠ`:9K1\4BA9K1)Ir9K1N9L 2mV9?L%24Ơ\9tLA2'ƅ`9|LO2 pd :Lh21h$:L2%uj7:L2jlT:M2ԲDrp:4M2²>v:MM2pţ-z:nM2Uń͂:M2{2a ͆:M2y0R̊:M3r7̐;M3n̓;M)3j̘;M*3e̝4;N@3`ݱ̢8;NC3\̥E;)NA3Zǫ̇̄O;ANV3V̪^;@NR3VĹ̩];LNY3Wį̫d;TNf3TĤ̬w;gNf3Tḙ̇n;fNl3QĜ̱;nNn3LsĂ̶;Nu3HwĂ̻;tNo3Cpċ;Nk3=cu;Nq37hą;tN^34fĉ;zN^30kĈ;oNZ3+gĘ;gNH3+rĝ;\NF3&xĬ;SN;3#rĬ;NN33#ľv;5N(3ͱ};8N3˱l;'N3c; N3\; N2K;M2""@;M2..,;M2J=%;M2_V;M2}g:rM2 ř:aMs2ŭ:>M]2-ز:M;22: M(2I :L2Y7 :L1kN$':L1xA,v:rL1ŝg1[:PL1dz:A:"Lk1?/:KE1E :K 1TR9K0yX9pK0;ưEb9/K0V|p9Ko0qx|9JK0Tς^9J0wƌЏ<9[J/kµ.Л9 J/abФ8I/W7б8IQ/I&C͋J2D>%1k 2=b%h1j=%E 1=${v% d1EGsrs+R4",J MoK4Ms\aG{8uxGL/%EAPtq !`8?m kP lu q08@ K[ G-;k R9 z2 .YMu /` s jw]&  &_t g] Ei 6`@  I*m 9cPI ]n {Pqb egC= G| 2b] j* Rj sv,ZqOK &bSKrA6W25N=o1p%jz OR3:$_ Vu56$@?OO85^Yw~qf@c<"p x%T1URvSnVlcETZ'"PJaG 9?`DV2).Wd%&NHy;"qrPxB"/Er,w /R!:8.CyBh_MIs2Te`e*mPlKn(0&60'G0?'=ϯصc0n'bp؄0'oBY0'W>0'G0(( "0P(,Ϣ0l(93 υ״ 1(^:Qג#1(|E5w'1(LYG1)W1Y1/)\i1B)gΨ1r) pxx1): rbb־1)M XC֤|1)n F!ց{1) -mo1 * .Sg1!* 4^1L* ΦS1a* ΜK2r* x>2*& ^92*6 Y.2*F >խ%%2*^ /՜#/2*g %Փ-2*v ~02* l<2+ \02 + F:2+ /?26+ ,529+ 8Ϳ@2R+ I͠@2f+ P͛B2h+& ]͎C2}+: i{ԼE2+J mxԳG2+Q |oԧ};2+b jԖvA2+n `Ԏg82+x bԂZ*2+ `uM-2+ Uj?2+ `c52+ ZZ&2+ YQ2+ eP1+ eH1+ nB1+ *u@1+ &E΁:1x+ 2PΌ71r+ DeΕ51a+ TΫ3w1N+ gδ1a1G+ y/C1-+ 1j,1+ /W1 + 1I0* 630* 9-8%0* NF@0* m\G0* ~Pf0v* ϓZI0`* ϲb#0;* /n0 * A u/* P/ր/){ fR1֋/)r {{Q֒~s/)i t֜hP/})_ Е֥N /W)W й֬=/8)P ֳ%.)J @ֺ .(B e.(< 6].(6 .b/.() Jщ.f( aҰ-9( wCz- ( {bn-' :QE-' f(5-' ӛ9,P' 7F,*' iUx,& 'gD,& :Ou,& Tԁل+a&q oEԾٙ+*&^ }٩hj+%N ڼQ3+%8 ]1*%" *Փ*V% W*"% I*$ :,*$ 3g@)|$ L<֩[)5$ eyto)$ |܇w5)#n WܠY(#S 2טܸ9(N#@ nq(#, $(" ]'"'!>Lg&!4فfH&_!ބ$S&!j$ߩ& J g%y /*eڮq%( L %lF$?ۆ;m$Q[DA$!r&$^#}m|ܰT#"SG #Aq>z"-}ݘEM";!+.!#ބ0K!JTN v,$fz uKL ZiN46jAbN wEug,G1cN _cx.g{jue} ZT\De&j)= .'5Uqad?Xd6]* tR~:^[EJN`H5!(K 1} UFgs eW02 nB 5!$W jrqu f> qy KV& B=gf j)=I E }$ %M R+ yEI 0$Y   \oj h^ T  u_A: p i@ Z,<z F`\ { :'% ' + % Sv c u^\   j+i L L;  +*KS _ :l WD|9 y)gGW/heCvQE/7 NtEWQ\@'':0}yAd`N*4_ [!mBvIN>y>J5rzgkG>qb2ZY.T;>"J5A<I;x?]2uK-*$#]BFz}$I EH!+8.0R{T:! \V(oU1zO9.U?+1 F" MQ+ TRe XQ&l `nN Mf0 m,H8  u H zQ3 ~ :&  C~v : s~ >~ )\~  ~U 2! } }Z KJ|z  v- d tqf > ym , (8j  9i> ! j Ws Lffn  %s * xe 8j6|  U~ R!> ~2bL}|UJ{z_R7x{{m=(v|*~0sVx9uq5o~>9|n)(zqtv%4gr=44mq ge<Yc$6`](^Fu^r,6aNsnd Ulg.Altenifgm- l[Si~_b~.']O0RU JUfDAEi6x#I (1 b 5$߷M!eރG!dj z!:fD!"B5"#ik"Gunݦ-"lB.݃4"$ i=#HJ1\#(UQ{#t_w#q9k#Hu$$)|*$; ۲]$^uۚ:$podۄQ$g=g$[dL%UL5-%M)#c%B%9k,% /IR%%"u%7|&>bٸ4&T=٢Y&c٘w&o|ى &~X|0=&2n=R&%jMq&xcb'ZYr!'B]8'u#TW'aOd'SSx'D}M7'.jNU' [Pa'ST'm:X'`2\%'I.g<'*jS'rd' x'zׄ(veג+(gUמ7([:׭R (L#׻\ (?e(. ({" (w5(`O (Rd(D'y(y2=(Y"T'@ n'&،'c'ج  'G2'+J?'W Z'j$p'J$u'cm&a'J؍(F'b2س*0'9-'0' --&*KR7&a,%c/%q)*p%R`(C%&ڔ,%%W ھ!$',!$C4O$i_k$ۚS$DZ )$:$;#D{!#kkܪ>#=_N#+#__"C)*ݛ";0h "8'& L"HhL "sR޸{ !%q`J !Pl}3 h!+zށ &!Z y %3 n XBd b ߆ _] `f߻ O( #@ E 7S 8m" %uNO - /z  u1p q Qp i * % 4T  C0I 1 S} d gZ> 0 Hm I |A } +) ha tQ Ub  @ eX - @c Io   +9 dXYy}#%R1 1A5MWR(hD~EgwZaz3QH,)B3<7IC An#%5M?XQDl <dHnv:eU6>T^?"4- [me01h&[xEdu1pufBUp*ZPB}/@ 2IM`t7x9#USb7|6l$G fN-1PT16Jb>/H}NO1 N-) koq<f fee K hX\1 vG  AQ 8A< Uh n(A~ muf] <>L %) 3 Lt  [ 6;  T ,&U qwxP [%Tk A> `k =mA ," )Qw Od9 aK+V z uu#D zWj `]? G=&$8^ s#hF"L?3oYLnnnw{CG_4<EX{(}Z 8*>B9oiwNND!zfU&Ts6]^b(CL (CM{6eT:<qV@nyovfAIZ-6 ;%=[~bQ)4 )T@F;nqsHzu]e16pF.{XF fBTM.E:%[YB rqTuf02IO*@/}ZSaiC|~72qWx?dTtz6xEiB6#L`7HW] 0) 7 @8j WqV bl6k by qaU XE *Fj= ]-/! O   * H  & # c= O$ y("#0 mC(9#" IZ(@# ;x(E# u׮)\#T֠ )_#:֞3)l#!ֈ$U)#z,v)#~l2 )#hZ9C)#k,#w(?_,#ӊ4EZ,n#ӖCHU,e#ӣONI,S#ӷ[MB,C#jN2,0#xT,,#܃M, #vݑO,"gݞN+"] $ݨD+"R%@ݶC+"D1S=+"9Hh8+".[Ԃ1+u"!oԔ++a"Ԭ'u+H" [+1"A+" ,+!!+!:3*! S@*!?sM*{!"[Օ\*a!/tժf|*H!8pb*(!G}A*!~U߆#* uaߐ* ju?ߜ) ^4aߧv) UO{߰a)u Ky֠߻Ps)N ??X)4 7,1) , )# ((C( Ji(r׋}(e)׫`(E;&8(%Q0(` 6'x &<{'OMBd'ohGJ{'؊K0K'aشS'=Y&"a&/P!k&IEso&Zg{K&uً~&avٯn%CoW%&gE=%_o$%Z0 Q%VZ%R+ځ$pPJ-ۣ$IMj^$G_N$AH#$9F'#-2x #t \ܠ#NU#8#W""w,Kw"iz Iz"uݛ&F"R"*!@G!]r2t!Yf6!ހ H !p ߟ ' OD  "{ p 7 = \6 \bL|Ar`K&( ,U$h2a}Q8N$q x.Q6DL3=nyZ H >R*Z9Lb6xrf}mg6_t_?z,Vxtb;7i!pZ_z-uWRygIxT;=9./ \"QR,+kG.%iQ!p(|WhN9-K.HT gRE z5~a kOn1 6iW &!B vPL4 aZ \H+ 05 $  4VO D~x m tX6 ?r0 @q =1T[ {mf=k }w(> R o \ S2 N4d_ ;U I)p'me4Nzf5M X.=='gL=Q[E^klny@/h pm Kzg22Q]^T]P$;9F@kt ?d=65t)][ A4Ytu5A A 8a G[ ]Yf 8.G  &  # + Z K 2b l Zz'  Sr  9R  P *  \ ' 7 I $ s J{  Hh]  v<0bks$v1G}St2~~oD{bXym;plGk1xdc;XP\SD-sJ|3Q@T"m6?1o!(O 3/ 'U ;y O x. ^]E q9 l z} zl W]"/ V? hA[P u@qh >s @}zg ?njX ?YMI B-/ >2 :"@= /= ?AO+>(h8?.vC?;P>lP_=WYj:Khv<1x7t8sh=kX;YI"BS<0FO+CJ>VP<^S4u X$Xs$]a5aHE`; Ri* dmvs~s _v+#Pm*/Af/90]7N#Y8TR<_ J?pHFv>Fw9J%h2S1\&NBPUY: Xm-R pXTX+=Z<'^(Jc8QgD\fQcn\#ilc,sgi;|~nyKrhZ|ehniUkXrJiPa;kx#;n7g9`6'U69K;EA4R:8a&,:l.&5u4#9<{8?t8Gm6Ob5T\4^S.dH2 jA0s8,x-1#{+!r'!f$*_'T(K- H-A1>7:?#3C,-K8#UC VO  _\fhfp n|~qws+ ow3d{;^~EV}LMUzF])@g,{8q4z2x;.B}&xH~ sK}iR{dOw`PqXUoTOdMS`GT`@UY; []8 ^`1!eb1hj.pn)us+ss'|w&{z&{x#"}~{txqultkpfpcmfm]h^d\dT[ VZSYSTTXWYZ[W]]][^VX\WVQ VH'YF 0W<*6X56?Y/BK]'KN\"V[^`eefganrhvxl{}h ouuqkksac wPT{AE~4>#}",.x4}=uFoGqO$fR3!`U?0Z]L=QbbSHlwj?twl};~|Q]*v@O$m,;d _ R!H>/ =TC.lW#w%k~-Yq4=PH$3Q#Yo"2%t.I=~x7fZo@}rzgJepZRELM]06Bf8s #"{@9l ig\Qaf@AC43C'P69d`iy~yyooO;W)= 4, &;:`E`lTg:a:7 nG|)[~([rpRbiqnW|E`GH? >),+2h%xFRk-!SL7nboOQ(U74uz#> ELfU'ab%>p_ m{4~]vkm+pL_1.,PSB_ 2N|B&&K\/  dd YH W[+  '. B.6b [zUE zB{V _h 6<Q x]} gk5  R%߷ H8 A- vS 4pc o "xt :M ?  ; } Z W ! , !!! U= B!B! ިN !l! Fހ^F!! _hm"! t=u["! +zށ" "| K݉"#"p ݘY'#X"` ܍ݦm#"T Mxuݵ#"C 5P #"0 WE$" $# _^$?#  ۫ %%l# ڀDb%# \#%# U&*4 &# >@&$ J>&<$ C٢Z&{$ Yrd#'$ %Yrj'$ h"ۂA'$u ړ (%e aڤJ(<%R %׬ں (i%9 /ׂT(%% c#)% VF)% P)% &N)& ;U*B& H}գL*n& IՊX *& bgD)+& )wx+& Qg ل+'t %*ؕ+2'` ӹجWZ,['J ӓؿ,z'8 _Yy,' P4-' &Nc-' -' L'+.6( ѻ><.J( ѩRP.n( Rwj.( 9Sׁ /(v 6ו^/(` ׭l/)F j0.)3 :20K)! Ϥ40w) =mu0) s N 1) 7/o1) b151* .>i14* {͵PC2g* 1́e2* Piw*2* IՌc 3*f n"ըi3*N &wԼ3+; L,3*+! ˽B4]+ e˒p4x+1v˂4+S,=5+/B}B5+i"Y5++Rw 5,{ӑK 62,eɿӦx S6Q,Mcߍɛ 6v,0 .x!6,\=!7,F !o7,Kf#!7,@7!7,RC"(8 -ݰo"e8>-_݄҅"8G-p+IǧҞ"8n-RǂҽE#!9-7sw#W9-!wܑ[#9-&K@$9-%&-$:->h$=:-m۔^$:.1Qu$:).2ь%:7.fijѫa%@;^.Hڭę%f;f.2OځĔ%;z.Cu &;. dL&<.V,p&;<.pٮBM&y<.a0l&<.8 х!'<.kѩn'=.El'U= /'Aأ'n=/s (=/04[(=$/R(>/\t(5>./w״Н)d>3/Tօж1)>9/<g[)>C/|5)>M/B) ?W/$1)+?V/հ[G*p?f/|o*?e/uynН*?_/O<5*?m/#+?e/ @+!@g/ɿ4|+K@m/aԠZ+u@i/7}w+@j/t cХ,@f/B)\,@h/ |,@^/c#,(AV/ӽP,PAY/Ұs#-ZAF/xґН^-AD/Hb-A?/SQ-A//,4-A,/M/.A/mU.B/Жz.#B/O_ɽ.OB.$+Ѥ._B.ѣ /iB.~*GK/B.c1pj/B.}cMљ/B.ONC^/B.6r/B.,#0Bh.]K0BP. ю~0B7.cwѱ0C".6V0C.޼1,C-ռA1&C-Ҽ6xT1BC-lήIҭ1VC-?pίa1QC-FΣ1jCt-ΎC2rCZ-͎m'2xC:-̈́қH2C-C~2C, go2C,Sq192C,j[ 3C,kWvӫ"3C{,>dL3CP,S3C0,mJP3C,MW3C+f"J+Խ3C+%MP4C+Ow64Cv+R`a4CG+~UԜ4C+RgU4C*Lf% 4C*]TG5C*gwv5Co*mxոC5C9*(ne5C*ʁ#5wC)oʉ4Z5xC)Iʌb֟5kC)I%ʜ5bC[)ʣ 5VC*)ɲJ 26KC(ɵu I6EC(sȼK׭ _6,C(+ؼ 6*C](^ڼ( 6C4(S` 6B'z%+ب 6B'8[ 7B'+ %7BL'4i L7B 'pHٯ u7B&5}VG 7B&bl8 7BQ&-ف 7}B&kȍٲ 7aB%)ǰI 8DB%G ?87BY%ܽ} F8B%b n8A$W 8A$w?B8AL$b_ۀ8A$WI$8oA#/Ǡ_8TA#"Ǻ:82A;#܎9A"U%ݽ!9A")b.9@r"fyj:>i0Al:>r <:|>fŖc:U>|]_:&>7#M:=:LS:="B:=N_h:{= ş;9+0TN;92Čƙ0;X9C)m;!9g"P;8!1Ǘ;8C`2;~8 ĢP3p Y̮!; 3- 6 !;2 bf6";2w Ėͫ[";N23 "";2 JZ";1}  QΤ#;19 0ď6#;O1 +Ou#;1 m2 ϝ#;0@ >6D#;0;ă@$;Y0?ϓR$;#0Q@r$;/qQ:.$;/(Lz$;q/bWĪп %;4/iK%;.d.j{%;.wtweѩ%;|.1GĦ%;:.ڄQ &t;-ْҒ2&k;-QٚWZ&^;-٪ğ5&S;D-Tٯp&J;-p>ӷ&0;,Z'+;,ďN/';V,ӑV';,A';+aI-':+=ņr':W+g !(:+ /@(:*9BTe(:*IŅկ(:U*&MX(:*.e5(:)ׂGֈ )v:)M֌Ŋ3)l:_)֤żA)K:")Po)=:({>ז).:(Oes):p(DŰ ) :2(Z)9'ؑ*9'WT3*9' .Ɣd*9S'5K}*9&'~J؄*9&UR]5*9&/a_*9&#{Ɛ0*}9S&ԃr+{9!&rԍ٥.+e9%Dԥ$J+Y9% ԫXk+M9%ԼƉL+;9b%lƶv+/93%mYڶ+9$*0+9$D+8$|R ,8h$ǰۇ&,8>$d.۲.,8 $3GS,8#LA$j,8#ckO~,8~#upǛ,8O#bZ{ܹ,{8$#3?ӌ,p8"0ӗ,_8"ӬHB,O8"Ҵpd-C8~"ǘݐ-'8L"R6-8"$=- 8!!O-7!ULl-7!"yvv-7q!x<ȥޜ-7C!OnG-7![[-7 Jj" -7 A|JF -z7 $ҋqm -t7 Ҕȏ߆ -`7` fҫȶ߱ -P77 :ѯ .L7 ! .07 #.%7?5 ,.7aQ 2.6 Ɉo =.6g|ɪ H.6F\. R.6&G: U.6 #J o.6L  w.6Z6 |.6sdUB .6aaiW .6bwɄp .6lL|ɣ .6ScDфɸ .n69N?ќ .b676ѡ .Y6,Ѱ .I6#Ѻ" .A6"7 .66 N8 .66^F .+6sa /%6Ɇv /,6uɓ /6alɫ 6/6JSɼ @/6<= I/ 6$* T/ 6 ^/6 f/5  c/5., s/5=3 q/5%H> l/5-XN ~/5(_U x/5:ma }/5z8}p /5v:ʅ /5q{qKʚ /5]liIʩ /5PUaSʹ /5<FXZ /5+8Zd /5!Jl /5Kr /5 QЅ /y5CЄ/z5LА' /e5KП8/e5BЙ?"/c5EЧJ+/S5@ЫX3/W5=Ы^B/P55еkH/J58иtN/D57}\/?5}-ʇ]/<5v;ʎc/-5m3ʘk/25e0ʜm/)5a<ʦr/5T3ʯy/$5Q4ʱ/5I}3ʿ/5=y1/5<m-/ 51i)/ 5+e//5%Y"/5W%/4O+ /4A/4: /4./4! /4 #/4.04.047 04= 04B04L04#R!04%Z-"04[004*a5 04!e:+04b?(04'kA-04mI104 qT<04"}X<04#˂gC04z$ˋsS04p"˓xK04i-˜Y04`u"ˢb04]q(˦Z04Uj2˰g04Nb%˱h04MZ0˸k04AV1p04<L-w047@3~04,=2{04)0~404"&o.04$x404j604b.04  k>04^:04\; 04YJ04TH&%04NP2404HVB:04L^ML0420,;9e.0,ez0|,qϤ^ 0<,~BӢ0,E) /+  I /+ *Єa0/_+ >лԙL/(+K Nj/* f<)/* Yrra/u* EЪաh//*5 [/) '*G/) bf1,/{)q Щֵ] /<)+ s/) ~+.( Y[z.(c 4*љ׺.N() 9.( PG".' fZؒJ.'U wѓ`y.I' %Z.&Y3uF.&jBsٷ!.c& !.& e-%{.bڥ1-{%5LүU-'%lJx-$y?ۈo-$[_҃P-R$7+5-$h#-#v[ܳ-u#ӶO,$#$We,"IEݡ,".cjӡ,8"EFb,!-3ތ?,!K ӎ,F!2"+!&q9+ cDԀ\+N i#+ v`g+v]t>+^.&+N+\*s-1մ:*+U8Q*yJpr*HժE*-h%!*UGo)\7+ֳ)'N) yOen)yeֹ7G) L")]gl(qb} ( _K(Gwpns([f'<( @' (؍i 'Ch:4 'kV'S 'ߐءd_ V'1o  'kl &o^!ٸ` &uFV &$ߊو ]&Oߺa -&v:!%)ڭ +!%%Xe ?!%|ވ\ P!V%g q!%%] !$~,~ !$E`k !~$IޘGV !N$B۞ !$0-& !#;dK !#tkܲ "{#Gݤ" ";#܄< ," #[ w 6""]M= H""݈ݠ,_"c"9ݶeb"," o]}"!m t-"! k^]"! yWݖv"M!M :"! .8W" 5ߔ" 1 ) w#p ܨQD#B ߪ#  D/# Kh"9#s jA#b dܿ*]#(~a#[$No#eA#|2{ܠ#H;r1#e]#lLYS# N܅ #\Jzi#Lj7 #54<(#5<#\;&#$g+<#*'4#3tE#rܤD}#Ce#4$HDK $z $b1K۾$&K $'K$0i+$|MۜJ&$J)$AI2$FD1$cv6$oN+۲9$,>?A${g?$ZyYA$*ۓ,J$XmA$#k\I$5O$TcZJ$ۘU$K'DX$Du\$s.^$F5k`$~ۘ`$Sb=X$p^$*l/Y$P]/R$ە~ \$U`ۿ.V$+']W$ H\$PQY$V%{Z$lߦ۱ & X$2ߦ] [ \$ ߦ v V$Qr߭= T$6ߧj Y$߬ی@ M$_޴۷~ !P$1eޭ B!P$4޷ ]!F$޹* !I$i޸UR !D$E޿w~ !@$vp*۞ !<$J. "9$  0"6$L J",$B |"1$ava ".$:dہ "($m8ۦ "2$K> "-$/e #-$ 6#0$M$ V#+$(A m#)$d#%$_ۅI#'$nJ۟e#!$S6ۿ#$2S #'$7 $$ .$$$""C$&$6<S$$NVg$$fzy$$z{$$zjxۑ$ $bIi۫$$K.U۾$$9S$##:$#%$$# <$# W%$ )n%# 9~%# yH)%# ` V6%# T c:%# GoF%# .}X%#} $܈W%#q ܖl%#c ܢ }%#[ ܩ%#Q vܴ*%#H a۹9%$E YܾE%#= LO% $8 B`% $2 4j% $( 1r% $! *%$ x%$ u#%# i%$ d%# ` %# \ %# Y %# W%# Y%# U%# X%# _*%# a'%# k/ %# t:%# }4~%# >v%# Al%# ?e%$) D`%#- CV%$9 FQ% $C DۼJ%$G K۴?%$S Qۧ8%$[ Pۣ-%$` `ۜ#%$i bۓ%$r gۊ %$y uۃ%$ vw%"$ }h% $ b~%'$ *Ow%4$ 6?x%5$ B7o%=$ R#f%B$ aںe%J$ rڵS%I$ڸrL%M$ګ]B%W$$ګK0%P$2ڮ2(%Z$Fڟۭ%b$[ڣ۞ %]$gڝۏ%i$ےt$n$- ۑg$s$BۊT$z$X$ۃ;$$l&x,$$7uw$$=n_$$FaL$$Wh9$$&`_ $$;o\ۿ$$Dzeۺ$$L `۪o$$_c۝g$$d+eۙW$$o>eۆG$$Sex>$$gdl'$$}l[u$$gJ\$$m=G#$w1+#$/q#$D| #$V~ #$ .l{ #$Dx #$'[| k#$>t{۷ b#$Ps۪m V#$_sۘX D#$rqۅ? =#$gr+ +#$oe #$iR #$f? "$# o6 "$<i" "$R-l "$e8m "$yMo} "$Vqk "$dq\ "$w{K "$(~w: z"$2|- i"}$8݄ `"$D|۴ R"$R݂۫ I"|$V ݁ۤ ="$e}ۓ 3"$q'݁ۏ -"$t4݁ۇ "|$B݇| "x$P݈y "u$^ޑs !h$nޙl !i$!ޘcz !a$5ާ^j !U$BުXX !V$SޯPL !I$a޾R? !A$qM2 !:$J* }!.$N m!'$I \!$H U!$F @! $ D 1!#B !!#%A !#2$E #@-E #I&BK #R5RS #YHaW #\Qqa #a`}h {#cmߍn n#erߔv f#jߣz v T#n߱܁ q N#~sߵ܂ b C#|x܈ X 3#t}܏ N .#qܑ C #jܜ~ ; #^ܦ / #U~ݲ + "G{  "9y$  "+s4  "r>  "qR "nZ "qg "rz "q& r"p3% ["n=8 I"hLL 1"_R` "\_v "~Pk ޏ !gFnޢ !UB2޵ |!>7K y!(/Y l!)r e! ^r! U[! 4 OG!M E/!e A!| 6!x ߖ* - [#߱8 + E4>  /QO  eZ  |d v -r \ K B zd & o߂  m_& OO+ 7G76 5BV  &Dj  T+ j XP P ^n 4 k" ] n9 7 xL  8Z | Sl r o7| m L cr wh \V b \Gu Z Q1^ L Q< 5 N$ ) D % C ?0 < [P 7 wt1 1yx M -ZR ` +B4 s "# } $ f$  YC  ?;j  +O l l J  n& V *? &@# DT  \] ~rp 8W |$O; n2q X4iL?L9D72!D\ HzxH PM(2-LBCU[R]|'kx`@tboZDss{-wfxaZ{DHx%7%q (<oRii:izO b|j\c/^Ss5Q>]GO%@SJ+]=j:%w3:'.yL=)j_W'Xpj(P~#wr;(fZ)&ZG  E/$7'  '"6' #J04Z:Bg:SvBaGxlCo+~F|d-Et];DeVAE]MDIVEINK=IQG3J\A*Db>"Ef9Dq6=q5Eu- By,Dx#NyP yX{_xewixj qq pmmpevcp]wZyUyP M D{@x8v-l ''m /g6] ? ^GSNMUH`?g%8p4/|?*KzXp`ijeq^yXSLx%?p-6i-,\9R=GA9F/J #M$M' W+*Y55Y@6gQ <g\*@nh;Fz}IK|~WM~phWtZxWjH]a9pg]&_hPNtN@}N-DuGm%Dc6 <\D;YL#5N]10Nj>'HuJ%>Ys=jd2xV+ Di"2Y&F / # ). 4-> BAQ PX] [io bx} } |l l lu` azM Qq: Bh) 7[ $L C : %"1 4!* ?"+& O// `A5 mPA fI u |Ue }aS ep? L}/ < &r e ` S L+- D ;? 8#NQ .*dm /u u0o X2 \ @2L *2*< 0@* .N +*c $By }[ h m R  h6" S- 8< N% _; q:\' ]z0s z{7e v]CU V=NF 6!W< b, *n 4Fw Wd w maj LE`/ 'Q@ DP :\*/ ,mNR |qs o a^\ 32M = ,.1) YYB ~{O opa@Ar(~{9"iNSI\^uj|OnOZ=w&2-j [ 93L]XA(4gdB!61W k7Ctgq~e+\STA%AX4k%HKuzzasuRLK?3- %*E  QY]  waV  9, k P2, :DEU +Vrt b n? 2 r  \ 5<"A ff0/ AZ W W  l " t*W] X>a X CL4 ( +] s- HV t xYi [ />4 0 7& C VGO *mYe ~Gf% Dix.osb6Tar3@uPLD3F#-~4pB^<aJ v O#[037Qb>F`5P)?vXr[_DzAiqxtOsM}5L}Xp e/\:*[Q_i}]H|wT<BZ  ; 254/1`V+"<a&H :"h R W<2Y_!T6C2Zto d,::"\Ub "S:9.Tz,,wSL^q;]x $R6&# [beP <9bAm#6kwL(g0.Y136T6?X\E<r.Nc\Z*TBbS6)k_v*~6 \;vS_k^yue=s];^OC1H,R;< v+[l 7@4 REHljl}zv"I=[8NH=["- %u\_  rjc Y-* E  05F J E ^f_ m>> }v/  cEB > VTl j |x=l AC' |  k7 ? So x 0Er G2N@ a   w3 = rk w {lZ4 PKOD )">V %n' ,{L S}v  fi_ !S5, 2C C+DLYike qML%r=gM'!OiaZ;yV`*d)1H- 8M?$v' ^o8=RB)#W<8 iL^Ct^vYrkx~)G_p #PV?L)@0lK.%pHqB  %!& :^1& QU3 _`F 2`y` z,!p m@ [q{F Ch]v 5J|O "!YA .) $M  )C dEq 4}X Ol) O< nx.M `yZb G=v 3 X $=u( c` S - oK R @85  j)K  K"Y # s U  ! oj D WC t :p - (M 0: ( hO ~ (f ` Cu >~ x n_%  RO*  -;0 7 A h I 7 qW [ >k  \w - C > t N W g g$f ] Hv Td| z E?yh  ;![^  10G  7 B  ) Y+  X ]  En  #N& 1 0 H 7 0T > S=m J t_ ~{P y hvjU  HQSb  '2Hf  9n  (|   15 y MM m u{ cx \lg (WM= AM0 MI  _Dߕ 1 u7߅ 3R 2x Bj )h g `Y  vJM  ]6B  : 0  *'  ! .!   G!߰" + [!ߙ' < v!~2 \ !g5 j !#Y: u !/zBA !;g(޿C !Ec"޶E !PKަF "d=ݔF "r2݊C -" tC M"߬cE \"ޚ[D !q"ރJJ !"nAP 0!"_;R 3!"V3Y H!">+[ V!"7%\ U!"2 ] e!"^ m!" _ u!"_ !#xd !#ge !##_e !5##Rg !F#.Bްc !U#9Eި_ !\#G9ޚܳZ !r#T2އܥS !z#`7އܛM !~#i-u܏G !#z+h܁D !#(h~> !#%Yq: !#"Ti9 !# Qi3 !#&M`1 !#K]. !##H[) !#*NW& !#$DR! !#-FM !#1JI !#3>< !#;C6 !#AC2 !#J@) !#MH+ !#XM, !#aV- !#!cZ3 !#%rf6 !#(vm6 !#/{j3 }!#6v1 v!#@s+ o!#Kr" e!#S{" ]!#`z O!#jށ I!|#tބ Qj $qX a\\ HLb '<i< (tX v(| zJn [ib ;Y "j%O G9I "(MD Fc? g<> t~]; s]: Se?9 7=#7  6  $3  0K61  InM,  ki( Q ' k/t " M Z " +8 :#  Z#  ' ^ 54* 8 PO,  m s/ x >0 _X i1 C: 0 M 4  5  /">6  PXi?  f~B oj I o=? S T  X 9 6_  mKe x ok L 2n Z Uu . u2|  Y~ e ~- DX rT -/ ot x h H [N # U8z pLR 9>pK 2 o q'7 VLq ={ *R W 2~* n1c9 7LO Hd[ z9k {2o~ ayyc LRk 7[%\ C. 2%W a I/ PB Y:; l:tR wgd uG| _G x Gf9 2X4h xCt uD0 J '%  = ; L8d ]e. HkU K v m "= yb+~ kcA] ^4' Sb % B%a* 8 A + TRk   e g? 7 G  ^   )I '{'(f 9kG0 |I^ PYy snY R}K{a >h" PZ . M `D<= j3G T& !m E6C k gQ - ; @b"3oyos3roDA;.R0ey dsZ-'Kw`5vn!td`L&`/(UZE U[tBT6reK)FXF+ >Bra 1tz '9;    4 EX [ | |rRw @X# +0N :@y gJy "kV D<d) Vt i }xpF xC[p i}@ ]EK Pw Gw' (<4_ R2l,kI!9b _A5/- ^  Pg{9@lZ .$w~+# f4QDB=xtz/DWWP+Yes0D7_rKz{[koWr^@'PoE^89FEo0*`,d~$n3 L  3#3KJjR7]o\kH){x|13b{>@fH+\O+U\O?ej;q4p0P{R!qp6cm XML2# C 68 V .b$'-s&B1sR. i_. ] q1 Q- yH , lB+* X28+ N-A' A(L% 0V* ([$ e( j+ p& z ' "w j '\ 7 M A@ M1 [(% c' k) r) #x# 3 z A} U( f6 zD| |Ro }"[^ }0gL }9qB Fy/ S|w ayp nwf zs}] poT (meK 6iRA NeC5 ]a3, t\ T i MT D: 08$ I . ^! {v 0% a E/G b;+ }Iz V_  g@ "v* $7v *Nh 6l_ ?3rT KLSK Zj6C f v: rY2 v=) )i'# GY j E #7g @'H ^$ x  | e I :$4 &N- 3l5 B >l N!EQ \@N0 n[W |s\} ejb =kYH WrL0 r|<| -`y "Kq &.i C` WY qO 1fF (NM? 4h14 Ci- RP% ^6 n' @y Tj .lW JGx `9g v*T lI ]:  K* 8 )     +)  =/  *3Q3  5C^7  ?Vn:  Ig? | PvC n UKv ^ YSh R ]X] D a_R 8 fcC + mf8  ti+  {k  o}  s{  y{  {  } y  ~ u !~ t (} o ,{ n 0z k 8x f ?w b #Gy \ #Jy X (O| U #P S }J T zJ S tA U o ; U l; R h6 Q a7 L ]9 G Y9 B P9 = K9 9 C9 5 70, 2 /,3 . #'G + V ) d $ w !   s'  i1  \?  PE  MO  =_ $ .h ' 't - =q  Dd OS4_<If,[o'ty~2l|=!XvJ?7gUX'`\jXeqFk_@p&O7w>8(~U~$#fvymvc\'[M? O*aD w"9}*+Z>=9VDvQveR:p5S~y+zsj8"[_D5=WS]Db~{A? #5MT  (\z ti +`r :F  _z" | q fd !X>< .L)U 3@ s C/x &LV @T> Z] fq l`1; o:Gf {X r i Nu} +{-k ?ni X^^ tL~Y9 >jUL .WQp ~9O j(M OP )K, M= PR 4Lj8 GQ|P W{Rj kbS ~MfyW =UmX &5[] H]  Dd1k! $o40"{IFc`y xvm~dioYNSN;AC$/2%'#:#,T82 fG1|\:v$n<c0}?R|=?6jQ?Vc=Mw4z8*1_(A(J![.yz g O$3 ;R&"o 01&;e>;=ITYF$csM tLn#SoRBU]>[XK)y[8v_#Wb<*bJi%_i?>ygu_lkYvg{`Ce[6&d=  _"%[ P.V)uET}@WNYcuI(|Ipg BP K@@' %q>{ 8L 1(5 \I. 4d(l d@ oO V , F  ,Q  uCy -kJy ?H P)" b#= rW0Y ^pxj m@] k^ " KV 3+J _X: -]] %.- A%*WQSh*b[u@2.`O L\ /l?PucyqwW62h%EYE[DYx.c`9o,W ?*R +/T} dG O #^ " q ! 5_;d rPL w S]2 A u "> pUm x\. O 7DN  1e  }9Iq  S e [9 2 0 856 rdB s 8S 3 CZl v+| {ZAh cK DbK8 48" #C$  _ h" 0XB% c79 |g1Ew |n[V 8tl: D{$ |K i C WZ%n +NB B@j@  3se s-8= )| n8A !tjL rK -x _nv( 4g23 8 < 'FH De|U t_\ KCj fv EM:| '~q Ptr Gl4 dV7 [~2 phRX T=N )aH, 2C[ F7 FCi= C^ YFM 0]C K.A  ?3 <_@: 9zd lv6 JBi6 42 0L /A4 L)qd |'  Z["H *& V  ,/< ]6k z\ xk NO< % 2 >tQ ogn ? _Y  *3'S - | f5> ";iA ? X bFZ 3jJ `SN 25T& ZW$  `yO  xh = C\s ^ $| y y*$ r Ugm e z4 Y [Q  I #  ; %? ,. Pr G m k _5  7 v  XM <&J h&5p u8J 5\& k K,ALwUufgw.tWM D_U2O-#i9Y/T3F(!;d4CMEBk_y U~Jxd6$ltd}O+mG8^\%Ka 64$i$#_I6%wHx# NL;AdT ow~i0 Ouc q|] WFQ ,B C V'47 c&V L | i$ B4 %F 1` awG z~vn c{K +DB" /- :. AH^ nX!} dj^9 t1%P  v` mx7 ;yYg ccS P_hH 3*:9 2* ?!*{PqAmR\]}t8 "\%K?j6CW+nJ6PaV 2mW W9> I5m#V"n*eC<.=,T,o0/!.`P9+HrN'%qr#G!-v$TF8`7+yZz [iGL./-H _ (n:Wl \w^xwTR S&3%8+- 6#6 B<\?3v)uBQ>SGdP@J|]sRwYUE|^*)ihL[m]Zy qL%{nG9o_DGeS@^Z<<9P2%p*~ W: 0_|'r)5C&PB"5nP~G`L]Js'jp}rzzHZRgI}Wm5*=6 i# U> # yq @;I Zp*q 7l0 4@P aH/ `TN \M# (g P.u vTe|z [VPk 0 _  R P:F )y@h: Z80 xw % \Hz  Y4  \ '  Gc  m9)  q)W k R0 / 9M  ?  V1bB  {Fbd U G-   H  /k>Gz  \oJ. q LF- YL  R9 >eQv VQ`D T19  N BYVJ sFr=` ?$ Z7~ 8-1> ub+a} \E : B  ]DAv  q+y  : * tm^` 8 $ C L T YwDV d :% q / ~ @ 4w% oeJ} P]F $ F %3U vE'[   ^ PQ- 3," $I fEFa Qu6 B{ `2 >M?qp8Rp,<;5@!D-8auwtI6;d+%uEKL_e =ZU *o( d  ()5A \K` Qqch )Y9 d K@T C&k` ypss $+N+  TNKz*y1<VY'%_ ;Nk|b 3Z1F9xubuU6 JRNw'l, 539kClGWaxMj~Y=G$;!7b^1+R0MzhwlT.n@C:]x (% A+ߘQo KiHm q| v5!\BrO!$?"1!  $["v iTQ"*#u#Gsܷ{#l@JA#g'$%۩H#$=5X$w?%6ڜ%:N35&^$K&Bz ٘u &)5O?'3]L'Bؤ'e%;(<Q(4 8׬߼( V+Eߕ) sGT),!ֱ]])y!=T7)!XX*("=շ*m"@k*"3ݾ*Z+"#PܣI+Z#k?y܅s+#z ^L,$VD,K$:Iӈ(,$#:-${-6%$eҤ4-%INڤa.%gڍsX.&r.V&[8{P.&=06$/&%g/"'hЬ /'%b'/'+7:30'GףT~0L(r`ϛn0(+dfv0(?51 )]{1L)QqΛ1) 9?c1)% 62 *< ջ Z20*P ͯդ&2*m 1ZՄ@2* 3oT3* VbP30+ ̫0}3j+ z]́3+ v5J3+ _ (4,3 NM4D,J J˦ӧq4r,k 6hiӅ4, *4+h4, ! O5- ,>5^- ʋ \5- n5- b- 5-> 7Ѷ5.Q Ѥ5<.k ɩс6n. zd"D6. ULN6. 2)!{6. m6"/ _68/" Aɯ6t/G mХ6/j SЉ7/ +l $7/ @ =70 (Q780 ȵ Z7`0 Ȏz70+ }k70C $UϮ70e -f0ϊ70 :Sl71 CTP71 S9(7R1 b,ȟ7e1 n"ȏ71,_ιo71^ AΒ`71w+{F71 N.72,827*2 7G2,+ȣ7j2OB ȑ͢7q2nY Ȁ72{QNy72 E/d72* B72#73= ̸73Y ̏7336$V7M3^&ȥ37b3@Șg7o3J373GWa̤ 73np^}739{>H|73g%i73"_[73+D7 4[ˑ:74zt$7)4?: 7>4rȶ x7U4 ɤO6_43(ɜ˰6r4j7}~641UuX64_nq-64RGe64%RL64FE˞)64G-Y64}(3g54')54%N ˺55[9dʒ5 5kawa55%/G5-5%545575N] ˹ʏ4T52˩WI4S5Qˬ3 4^5~˖k4s56cˌʱM4v5^˃ʌE#45vE35.g 35 g+5* vtʻi+5_ Guʊߘ.+5 ԌbN*n5 5Ց**o5 9x՘ާm*\5!zլ`3*R5B!ձʛ)H5!$8h޻)85!djO~s)-5!#')5" (5!"E1ݛ(4G"xˡBb(4t"'v(4"->Tݳ'4"uF[2Y'4"fG'4#؀ 'u43#cّ˶t&h4k#h٢yx&S4# ٶ^C&E4#F5܏%/4#11%4$mr% 4.$-̾۫*%3X$"̕K$3~$F2q$3$UWY$3$bn3v$3$܆ 3#i3$Uܦ#O3%3ܾڞ2#23F%̬U"3Y%+̛"2y%{oX"2%l5Qr"2% K8:!2%Wt!z2%Gޏٝ6!e2&~ޭe ?2&&* 2@& ~ͮd 1\&EΠ١, 1`&|7Ηf1y&Kb{1&z[g1&&pٹ51&m^o1&aY@}0&5K10&$i>ٵ0&dH-ق]0&&HQ*0&/&+/&IiPٞq/&|cY/& 0'/&I$ .&/";.&Ni(ٜ.&r(,zN.&p2@e.&7-& 99-&. EuFٵm-&e GكB4-& Q\,& !`0,& zfea~,& u%L,&: ӂٯ,w&m X!Ԓy+e& WԣZB+W& Ա2B+B& 7*-& !^*&2 cٻu*&\  ڑ)*% h qz)% 9BW7)% c5G)% Gք)k% קT(H% yX(%5 0ڽ($L wۧg'$j o=ہ ^'$ $ec'$ fكLw&f$ hٳ/g&4$ &$ Q%# e86d%#! j%~#9 ?!ۘ$P#F vܮKO$#a ݒ#"w 495݅#" wes]:#x" ݨ[">" 'XN~"" g =o"! M( !! ~ Y!h! `޳t +!G y 6 " &a nv q . @ ; :VMB {<. ;?< ==* 7>~D R@ @ C0 A{WkR ae@A%F<n`gl;>9$5bbne40## ,fxl*T$%A,a v7 c{ S|E" & y @a O(  y3/*5 8> M?L UL*k Y&  O#d v/$6 .s J].ta A N J < D2 0+ K  Ng ; E  GYLj k ,  EI{ b H4K Mv8 # mF ~>1 lb & 0 .f?B|X X  1@uz|  Q] z[I{D % ) ~ RF_ Np ? = k *.3 " NA M T+ ' ,o%x  n TO tX  %!<  &.' _ }H ' Gm<n)oUe>_OY{bmk2lq#VhYzMeF'-`Hy. ca W@ y} 3`.W  B!X UjB fV, t7 k n Y_Ny z`M 7rzcdSm'"!YU`p<m._IySp-{F8AKnBoaAQk A\Qqߙ iA*Z!yX~!i`zt="g ""ܣYkJ#sYN#>C!$7ۖ7S$?.%X%%;/ڋ7&1pk&pg &;؋ h'n3R ' #(4 Mߘו (#B3!)e!l))q_֦!) T"Y*݀F"* '"!+]3ݠx"+Z? #+l#G,1!o{ӣ#,}$/2o#,)+&$c-,jz$-H/iҞ$.2A`$h.2[9%. 3c%$/B4У%n/{57S\%/6&08P&o0/:Xϧ&0~9P i&1:G&_18r:'10 {'2>+pͭ'A2k"@؜x'2:E+(2M(3 (q3, Mb̶(3_ *6̒(3y p!)44 ֦7S)n4 ~" z)4 tJ)4!@ $)51! -*@5G!իʪ9)*m5i!mʇGm*5!-eN*5!gKU*6!/&\*\6!Վ`+z6 "uc)+6""6hQ+6N" ɧov+7]"|Țq+.7v"bԹx{+\7"/ԍb݄+7"ziP݉+7"rN9ݔ,7"g%ݜ?,7"`ݤK,8"X ݮs,.8"M{ӻܸ,P8#DkӰ,X8#ɓr+6f!#hɤh+6N!HԗɾZ+Z69!nԶN+26*!AV+5 !0%+5 G%*5 y0*p5 HժK *85 ud}* 5 T*4v <˗"*4[ n˱*4D *֓)O4- 8I߿)4 K{l)3Y::)3h{<)g3} ׸Y{(*3Rwl(2x/͙YU(2Yv͵B(m2<׮0'92 8'1~1 g'1d"/'1$ء9&:1@3Z&0Yppv&0l^ύ<&~0a٤ϰn%;0D([%/'[!G%/h ,8%o/ڰ*%3/I$. g:jp$.*ۆэ4$`.c>ѫ#.CT3#-q~`a#-ܣu'#:-A[",M=cA",}ӂ.^"b,nӤ",M!+0XT!+6ޗ7!9+] *>49t *߀USL S*z&)x6"֓)`|mֱZg)>3)"[-(zpWsf(%G%($A#'d=]r'z<'t>ؚ&Y\c-ٳx&?aF&!4%n,i%'N%?7@$k&VV$tpP[$Hۇ$nܞ>#V&kܵ_#<``p#_" r 2]"{,O!)D!D+x`X!|i- w2ߓ; _Iz߮[ D +F1ohvh_A80+ t>M`8V|\+mnvu~A'ev ]*PMOsg63d !(#)mqVx^% `9\~iL+c)d *5Ps T|V CoU b>4% UnN mE% ;fH .DXA # ? X 8!5 mo p eh;p "%-  D9A jGsHn X.  mP fu}nkz #*f( Vi tWv[E M D7 ( 5L@ vkk z* >N @  tk: t^z !o 5,I c}2j_ ;(< Bl N1Ks tRB2s Y@ /d5%hRdVpyYMmzl- y; v[L}g pcM: l4  h& g rQv hK|0h f`0 lD/ m{ c k? rL m np>X n|I\$ q p r5B sXqd} vxv9Z tI+ s. vY o2S r<` sdr o|)oJ tc<& u$W u*v/x:+OzWNlxmZ^|H5E}* ) t@ n,c qE 8j^n Tj7 ijv hQl, d4UI `?n _{& TX1 P>F Mb ?~ "={ -6i< <*GX H'9k V!" gc uP 9u* h> ^L VW Oo Iz) E6 m>K Z9X R3&d =--x /*7 #{&< o&D h(Q d)R a,\ ^.c \/`  ^0f \1e ^3e  c4f e:g  k<h o?e tEj wEi zHe Nj{ Pfv Vei ^d\ 'g_M 8mZ; GvR) Z~M iC |}9x s4j p(W j4!A `H2 ZX Pq  Dm 8W .-; !J! a &zs 6'S A@9 R\ a'o o0V ~9;{5 _Hi SYp \HL Bh/ hs zf K7 s!zu m7KdR$XnNR+nl}I]LK?,P"5#-$%;PAgr|bFNb % @=A_/h(UUBZ1^$`U`Xe=&&C2#_YWD(R i'w < @{ ntWq D&%# 3 =@YC Hw[  fR ,Z` } `E $ h`F pe w Ww " atr w:h4 jfY zG0E 44@ C# <[T  k8 Z$(C5D?&V^qyrjOv-Fp '_8a_Gdz*I<'~HNrY9V5aS&{+$o6P?8h,{tG67 7AX i_P6^dtbF:*Fv9K-kv=Nd.pCA(]/f*yr\o2BG? op kd[zP 9{RQ ^X  aT^ 5 n< b `yf PKq b"=Q c 1 V$ h H  ,Q<-   ' c7 8 5" 5z d9l  V:i ; |g .9lN W1x 5qq] dG:   Hr {VD/ }h ?8+  h +$4w5' \v ""<0qWbzH?@`66WVNXwI/mu]7{p_^x"\+jqO7S$g]cg  z 'ML , Bް& \!_Kލ "H?k e"fW) "3 >!#?sJ !#+ R"]$ aU #$)/ #e%9'iھ= $%L٨ $Y&a`ٖj%&rkى]%&'}rٙ}&'g/!'5(ث[}'(W:NC()kס3I()E&_))K\)u*Kd**p(+U+*x ++s,M,#KIӁ,,*6<q--,-ҭ/.-6:.-9$d$/G.;ks/.D ѻ7P0/Dxϻм}0w/ELMкf1/EFϾb1E0@͖V20; ^B$3003\1*LG̅317(>߀a!>7i!>?7qޫ4!{? 8L`'"?D8̿Ǐ"U@m8^G݊Ƕ"@y874r;#A8˾D#fA8p3B$A8'q\$B8q_ƭ${B9>[&%B69&% CG9 9ڲC&Co9 SrQ&C~9w "Ʀ&D9; ٷg '|D9 iU"~'D9 Z,ZV'D9 غFƞ>(NE9@ ׋A(E9 >N< (E9 6OO)F9 yֹ/Ƌ)fF9^ =և'ƹ)F9* V-Q*F9 x<*$G9 7Ӹ"m*BG9s ԙ/ưR+G9& ~H(+G9 )#98+G9 D{J,1H9X |ӵO,gH9 b ,H9^rPE-H9~,Ʈ-Hi93"-IW9綼6D./I09ѭƖ.rI9A,.I8r-E/I8<<ǎ/I8E,[/I8"?0Jp8ܵdž03JF8I1ϻ0WJ"8Ο%1gJ7Γȁ1J7IChN1J7[r" 2Jp7WȈn2J17Ec22J7.652J6-ZɔC3J613JI6Q"R3J 6ʪ4J5!b _4J~5l4JD5k[%4J4+9I.5J4x˜]5Jh4845J4*/|6J3M/d86Ju3E?z6J3]Gͻ6J2 Zf#7Jw2js47J"2RȄw7nJ1aȜtb7_Jf1}6Ȯί7>J1 ׵-0$8J0赕Ϡd8JF048I/\1T{8In/F E9I/m T59I.uƎw9bI5.jƱU9;I-v,ֶdһ9Ii-+ :H,$W q:Hx,s=" :H,Thԗ :}H+Ř0 !;]H"+ij Ս A;4H*Au t;GK*fՇ ;G)=5@g ;Gd)u] D^#%0;>D"caݫk>yDM"E>3D!Poޮ>CT!%1%">C y?fC% &y;l?Ap>G&GA>j᤾sA=z|ŸFAW=m&A=T,þ0 A<|:| A8<9;!A;JĘ!Ay;_W"B;^oս",B:ֽqv1#6BW:&zܱ2#cB9ە48$iB9ےO$B=9_lC%B8 |XTǙ%B8& G&&B*8 /&B7 sr6'Be7Z 'B7 //ɝ'(C6 ڼ<(0CG6 6мɹ(+C5̼Nj)JCw5?"֥ *_C5էˑn*ZC4"Uՙx1*vCO4kԀy+C3R}Ap+C3TlR,C#3\\,C2BmBU-Ck2z9-C1$>΢l.C1[#.CB1η@/D0nis/%Dg0>׻90"D 0޻"Ѝ0,D/"ǻ@/1@D3/j»1>D.3νYS2GDs.Vʹ2ND-3ͫ:Ҵ3\D-̣)O3ZD8-q̨ 3aD,ˑyӀ\4tD_,Cˑ4fD+˗>ԫ25xD+~N5D%+r3ʆ 5xD*rc|6DS* 8Dn([i 8D'jD"ar>jD7"Yn>nD!Ih??nDo!g?[D!\M?^D 꿥߂C@SDI F閿@IDS:`@;DKͻ@A0D$盾лaA)Dlm\ADit2BD]欽dB Dn?BCbyCCҼ$2HCC䙼 qCC]5I$CC75"DCJûGWDCN⋻[jDCQ,mKDCx3EyC:ĺrEeCaZ%EcCE A:,K> JHt,K> n3mL,K> T4z,Ka>i );,K5>& " -K> -&C-K= +)`o-K=~ ~%J-K=L W0u-Ku= @3-KO= @6-K#= @] .K= SÉ.K<\ bDÿ@.K/\գШf*B? /SѲ4*>.I3Mѻ *>.@m)t>i.95ֶ) >).2g )=-,G%T)=-(֒\%)F=-%š( 0$)[e 0$'ߕϏK0X$%"Ͽ0/$$L / $#oD {/#%8F[/#)^ &/#-Ѓ.l#1%3Ѩ.B#7Pm."#:vvK.#?ݿK."D6ݻ#-"G8Qݷ-"Lrzݲs-r"PEҝݯ=-U"Sjҿݬ -."UݫX,"WN ި0,!X~.ާm,!XPާ4,![-vޤ,z!]Kԕޣ+^!]oAԲޢ~+9!_xޠ\u+!`ޡ<I+ _ߢ+ ]@ߤ* [-[ߦ* Y-X~ߩ*q VN՝ߪg*V VkոߪB*: Vߪo *! WߨN) Z" 6)[A )^p>y)`ZZ)b4o/)cO֏)bcm ק(Nb.s(0`OY(]tC|([2`(X';(W@(XU(Y!g'\96'x_PL؍'jbgnء'Se|ضxl'EheP'5jU9'!j@!'l4 'm"&m&o*&p:*&qU:&s!dG&t3xQz&vAbj&wOjZ&y]vD&yhن8&xxtً(&owyٙ&`t٣x&Yq٭w&Mnٹq%Ci h%7fg%+b!^%"^6X%Z>R% XGJ%WXD%V\<%Ye 8%\k.%`s %%fy"%i}|%mt%p u%pf%p#g%o f%m%\%l,`%l&\%m,Y%n,W%r 'V%u )W%w&O%|%W% T%"|N% zW%xO%"wN% tQ%"rL%#qM%)lM%&gR%*dN%1 ^O%.YV%6UK%9OR%9JV%>FO%@BX%C;Y%A7Z%E4^% G,c%%B*i%*H%g%2Ev%;By%CGڼy%GD~ڲ %WFvڤ%\G{ڦ%^Jpژ%o Lnڏ%nLlڑ%uSiڂ%"Sd{%)Y`s%5bcf%FeVX%RpWM%_wZF%o~M2}%{R,w%P(vo%Hfh%K\d%GOW%E;R%=.H%>;%1:5%C.ڴ(%S4ڨ%^()ږ%w<#ځ %J)~%Z k%m"^%x$^%'&Nq%1(Ga%>*AW%N47C%Y.,2%g3"%%s:%0{%7q%5c%*1U%%>5K%(K48%=d8ڻ,%Hx5ڵ%Q<ڪr %]@ڞY%i<ڐK%sIڋ9%x*J!%?No %P\p%h^^%-hQz%@oOd%Ux=I%t46~%+pq% Qd% 8`%" $M%;E% X<% n*% 0j!% KߧN%# dߔ9% t$, _$0 $M$3 .95$: OM$A nWۺ$I o۷e$J - ۯ>z$Y L ۢߧ d$] d ۦߏQ$]  ۚo<$l 8ےR($j Sۖ?$o wۋv#y ܇Y#y  ܄:#~  6܁# A I~߶# T `}ߢ# k @~܃߆w# j}k_# ܁WhC#y ܇@?+# ~# ܃ "{ ݂"  A2"~ 9 `E݄"| F ~`݆߮p"x a ~݋ߒLz"u u ݊߄1c"s ݑqF"k ݓV0"q 'ݍ<"q Eݓ$!n rތx!y  ,ކT!v * Bދ-!x D cކߩ!z h ފߍt!s y 7ގ}S!n ^ޗa+!c ޡLb!] ߩ &q } -  L X & ' }n 1  > ߺL  K ߩ  f 3 } $V~  L#i g 6Mg < ?=A  P(  *`  .Pg  Mqy ~xt Uw.U 7g:4 ZF J\ & :f*D -vQr~ vlk S \G )H #6 )H7( PtR rin B Q m . Q. 3QxpDD g$>i(]; Vs&k_(5C0@(3[53l?`LA3.eFT0KuK+^LLA6Kuv}sKbJH>F?H-_DXmE6VHEV.)@sz?(R:W:75c],%Z#4/OTm8d\n8M_3<@#t-o.8D'N@A|Lkb8WGxb^| l^R'xCN/t"zjc_8Q_?" '*=IU*wshZ; kI *T @:: >{Ni x\p< m<  &p B"Q\ VO~fE iX#% x( 'l "d Zx ^@JB Y=]  {)s Z X 2 X= dz  B  $>  .r- j <7U . Fbq  K] Y Va$ 4 ` N i  xW!  T@sY  ^d% W R g ;B J kI5y ) #8 J    , JKR w] S | 2  \ * 1 8-Q AY[ I-U S] ZR l_)H >je tS {O" FqI 3fi Za dMXO 7S(\ P "-IUFUB|wr>![^R{pQRO&-&91C -URde|kYu;3Xs *mk8f_}\kWMBSd$K29Ee-@.L7Jdo-&gl05Ip{+ R0^+3lRKKhc)~@z2f@>NOf,A]Hf2lx9pzQp,aL$Ui97P`PEag==^{7&A{-d  #N1 " >Q G 'x w vz Y\ :5 % 0  'B7 1 0QU J 6]f Y ;m x Dhx{ NSf Uv9K ch& p\ zT,  DrP ; 6kg R -c~ g o^  UuZ EjZ  'SY AX, 7Y: !WL+ U\B TfU Pxn  O - urO 9 e`Q H OBU W @3X ^ .^ o b } f uk0 go'D au5T [|Db UYv wPd p~Pq goM `{eI ]ucJ XkWF SaOB OYIC HN>@ =<2@ 50(? )!@  @ @  D $ D8 H'I$ O:^1 UOr7 _`; xis@ etE oT~H~ aKIs M7Rj ='Ue 0X[  aT  cN gD 'm; +5n1 :Aq& QRr gdt yos {q ^t"r Lk1j 7^Fg N[b FmY ;Uq ,6O[ MLI fH2  D o C \& = @9 9 ((@ 1 ?J & ]Z  w2c | Mn ^ p} < | " fr  Ki) (Z7+ RAC IQe 8^: n 0jT P "xz * s u S j 4# ] G$ Q _/ G z47 9 uUD + XhJ  AN nY S\  d Q' :?9 [a q s f K3 L ) C 6 T  'l  @y $\ m&B r].[ YR8s ~<BA _3J J'Q 3Y' _B bU jq q4# oxD( \[2x Ct9n 1>d r FY WNM =WD (4`4  Wn% 'pw G~ _|p Bv a*u0 < rJ rc rx,| s=F` s^]M swm8 yv Snw ;`z N76{)J*wbIslnvlcm)eEG?^(&NX ]M%/qAAJ}6}_i)mi`` LEV+#H=!3010)H_Z`ftr?Q f&O )9S'I k cH&eJDb*'~WnLY4 12U!!"p(N"TDz#m,l$4%e %$DDL!ymvBeN:} qKHTD!%cL._ pnx=ML"#-LA,\dN7J ZB>LKY;Heo#{n DJ{Ro} sXc4h?t YiQN>C ZK5Uv+}O"bV ;" 0"hi=oig, -hA+Bw%3W  2 $ jS Gvߠ& w$4|< aK$%!;eut!cb{!|5*!g4C"9Nݱt"^:taݖ"t)9 z#L,O#7^#_#H3 $ A <$/U:r$Nfۣp$l]#ۇ$v8p%%_O5z%Jk._%:E%(I-& X&1ߏ4 &LP١n &oqى* 'Ku5 )'$[K!b'}B\3!'W/iN!'0}!'yX!+( g5!G(Vޜ"(2A[I"(J,7׳t"(V yם")s G"F)ݣo"n)݁Z#)TE$K#)(2.`#))<#)eO#.*C `#?*'ܷ o#\*܍$* tr0$* h]E$*]@c$*#L%$*)Fx$*3e{ !|%'ޡ| !D%J&} !%m O{ z!$M{| N!$rހ۞z +!g$O޸t $!'r #S?k #߁Gf ^ Y#~c * #l ݦa "FJa "L a H"|4c p"]b G!Xޓ` !T a G!-0]  !g"\ { jN\ P{ vY 8 q߮Y 63 K F 7 % zP0 f )& &7 P  ((y n j rW7  >   iG f a !l  O7 _ s % + IR  M WR $ 7" )  .8=+  5j a< 9 -P ?4  D@ >GxD lM6| '`Q 8%W= _w9# dgc ;q Zz;- %w WE-q #!Xj >~b OJ_ h X .u9R \;rM xrF sEk@ '`8 6F0 xk}% ^_` + Fo  Ze H# U rX  V  %DW  u}] \  M0 };\P   YI #H A =J Pz s  A =#J (NQ 0I D8  [@WK *IV MP# WIf ZN MS]P  `N ` I EdH VfPK j <o4qPRzhtZ76t uR.{tFl6{sxgAuZnu,#y@Z~mO`5} wMrYuVqIO!n qkVYKh%~dUl}` G aZ>=`~aJ2ViS mBH u3 \I}X 3v 9l%Y d^\ H] W3 V& K fq uyD> 4=z a0|B (_,z d$$ h ~W A U T R;  o L m  1I6 ( 1 &1 Y C 7b J \): W , Pk 1) w OL3 k) ^.Vv :mD6 )2  +BZ j= H F.7& Lu1 d2H t!Z sgcg Ixx{ {6 jE}S ]\u l2DF :-3 V{ Q*5 P' `j`C n%i P{  3esP Q # 16 gW@ ) e": >[>O 0w $t+  K]L B >o + w0  PC B 7 ': 9 ^ D' >{ uH $ ;Lq  }L% 9 a % B8 =L ?X {=l6 ~QIY @ -p  ~Q t UX B!7=޹  ~!Z"Qޑ j !bZ N"$ߚ4" "B : \!"w[ !V#E'އܯq !#c2܃ H"$eJ "e$G*s) "$5) :#% #p%H9jڥ #%l2ڀ$ $$%M= $p&^kQ $&#6a %&w V%g'V|{ؖ %'vnH9y %'_@ )&R(Dك w&(8o< &(*%1ֹ 'K)a ֆ U')9^ ')Q1'N*}/'(*!D=^(*@ԦI(A+|2׍g](+TIh()+ tc)&,p֯){,.o&`),Seӕ+* -Rվ\*v-EXd,*-;./*-/O+p.Y%lѐ}+.g9n+. +,b/Ӏ@,/ =s,/Qqω,M0ӇR,0A$!-0 o->18jҏΫ -1mEP} -1K .*2ѣ M.2p x.2:m%ͧ.33ѿZ.\3Ј1/3@=/3, ˱/;4ckФˉ/x4SkX/4 05&0E5(ϪR0{5V%Qʇ05-eN063E+0F6Aό06>NNɪ16c\Ɉ317lFW1D7zΜ~17{ls17,f=ȵf17g2X108!νSN1P8Ύ#<285+428=ǰL29aƀj2S9͈3 29m` 29 1_+ 29PKFŎ 21:c'ʹe 2a:x$͋2} 2:Q` 3:' L 3:S Ę7 !3; ̾_ 93b; ̋) ?3z; x L3;!$; W3;W!BĔ޳ g3;w!Zvޙ i3&"Zä 3$hJ %3>$5 !3:>$̻ 3F> %ͽ 2M>0%S͞ڒ 2s>p%)͇ze 2u>%>͈]4 2>%\k2>&&y^2>%&VSٔ_2>T&CU>2>&4[-2>&$5 2>&&#ٹ1>'g ؄1>B'<[1>b'Z 1?'Rn1 ?'04غO1>'a؁"1 ? (>0?6( 0?I( F0>~(R} i׋q0>( NZE0>(*0>( #/>)J=!֝/>7)}pS)C5/>) Oi/>)BjY֝.>)[t'N.>)щ N.n> *ї.b>/*Xҩy-L>h*Vҹ+-E>*gQ-0>*88Ֆ->* E,>+^,=&+#"ԫ0,=Q+3•W+=|+@Uz+=+raH+=+mԓ+g*\=+*մ$*@=+xY*= ,^q)<@,%õ0)-psĦT&q;r-~٦Ā[&D;-0rҮ%;-<G=%:-=++%:-?dҜ$}:-fۤ0]$=:.#:/.N2 ь#9>.Lƹ#'#9Z.݅ƒѿ"]9z.hvݿƁq]"#9.r!8.- cBFћd!8. z;I!m8. 3߳" $8.U o 7 / (7!7/ zп.]79/ Ȼ;7T/ ɟ76j/E NɐЄ6x/ w96/0 YУ5/ 3VD95/ 8I5/r!`(5/ 4/(yВX4 0,#40.3"0bjXe3503I0?+ Ͳϓ2Q0gͬg2_0#]͓Ϧi 2s0ΏO1m0QsΎWV10]ue00w2xO00mϬ?00W/0(EQ/0eA\//0M 0^.0f\my.0ZW.0H x- 1 U-1" Ψ,1K$ u,%1sήM , 1~Z +'1 8+51PLj *41V p*<1Ish% )A19Gֺ| )L1?ֳΎ()K1V׷B(P19!ץΊ9(_1פ('V17Zبηcb'c1ؕ%&k1@ٜ1&b1bٙ\&l14ڒ%j1s ژl:1%h1  ۙޜ$e1S!۝d+$c1!ܛ J#b1&"qܥΠݪL#U1"ܪ"\1##jwݤΫU]"V1#ݳGܻ!L1#_ޮW!W1$bޫEX M1$>߶ڿ M1S%߰YP1%gMMI1J&΅H1&6|@1X'r{??1'3ؾ11(Λ#1(xI#Cz1) ָ1k) 5_y0)k >0`* Cxձ0* *09+g V3π:i0+ B1ԫ0+ AM y0,d`450,WhҲp0O-}y v0-dd1Pm0B.ύѩ\0.V0 eF0/dϱ=>0/y<МQ(0/0J0Uh;100( ΋/)1Ы2/1^6!+/$2@Mвn/y26[W/2uy|/b3VfedZp/3 R/&4[ШM;/4M "[ #/ 5{K /N5z% .5J'S .<6'DѬ .z6v`M+ .6HPQc g.V7ш J.7t R0/\ . 8A!Uީ-l8!j2-8w"G 2ݢ- 98#pҷj}-9#URpU-9z$70-:%tҢv;-:%>ٷ,:v&,R5,/; 'WӒĄ؏,;'8u,;[(8bבN,=<(ӌÚ,<)r/K+,2Ԥp+>- 1*>6.l8W*?.fչx*{?h/W9@*? 0*'Ϛ*?s0 8)E@01OL֖pY)@1zMk)@K2ZeV2) A2 ¾̚(pA3 n$(A&4PF˜(A4T(DBs5Z סKi#(jB5 ׀'Bk6c ://?'B+7 }Ȯl'C7 ͼ7>,'NC8 ؑNj&C8 ?X&C<9= {)ƅf&C9 &&Df:ڲPA%hD:Bډ%Dh;cT!V%D <0Å%E<0 $E<;N˺{$WE=ۍ9$E3>ssU#E>(L1#E&?}#!`#E?/ #F@㹻2")F@*Uݽ,"`FAݏA"wF|A)݈P!FA8YŽ!FB_6CeT!FB1 !FKC^*`G GC 㻺` G8D{㸞U (GD͸;G3Evຸ gRGEસTUGE᪸߹"cGXF0sዸre|GFሸ2pGG⊸øGGxk< bGG,p뷞G/HgGH:{S xYG#ITǶ G_I$ Jg߳GI HNGFOQ*FFP*Ea̯|FeP/+qpFP+U5UFP+q!Y-FQw,֮DF9Q,J҉EbQ7-.#EQ-^NѥEQ-.{NlEQ.ﱺG6ER.\޺Эc ERRh/ k DjR/!AЩD|R0ra*pDR0 8; >DR0cֻ1h DR>1{ CS1NI߬΄ C+S 2rŬ+ mCLSj2Sͪ *CjS2뼄8 BS33!j BS3Web;d ~BS38 ABSO46޽.˞ BS4-A% AS4dʵ}ASW5v ^GAS5۾F@T5S.r@TT6g站y@T6߫Kɯ%@#T6ݫ+?'T:7Dӫ?*Tv7XepC?T7>(T8?/׫Ǘ>TU8w鬒5f>T8 8Ƿ >#T8U=T59W=Tq9EWw =T9<T:FŹ5;SP;:>Ĝ:S;CRXH:S;p&7:SɣI6GRO>ӭ5Rs>SyluL5R>34Q>-=!4Q>t^L)4Q;?̌3`QP??W̯t3;Qv?l%2Q? 2I2P?_ 3-xG2P? q1vP @7 cΘΰm1UP2@ ǯ¿T1PG@ 0Oj@N 0|40O@ jh3/yO@ ZР[b/AO@f ,e.N@ ;(.N@ W.N@| 'ҧK-;NA ۱=-NA$!־,M6Awn.K,zMMAӠ+=McAFK貚|+LkA+*LAa(KA!:'JAV:]6'wJAط/ 'JA-'&IAXG =&IAٜ'%%>IAI%HAU2$HAK| =o$XHAַ#HAH3#GAeS&#gGA ɸ"GA9 A"FApc d!kFAvƹ)K!FA ( EAYGd8 lEA߿D/EA5BDA.a]=xDAnṻaeDAzi[CAZzC}A9H⾼tCtAM BaA%b lBTAȽ,B=A[$ɾA3Aku־Ze^AAվ@A W3{@@I凿"M@@~߿6d?@M?1?@ [@fWm>l@J- >V@¸=6@1%ܿP=@hF48E9>S7K?9>\^8>`U}0r8{>Ǔ %-8W> ȿߵ70>C iPj7>p 7= /'[ߕ6= E%2R6= o6|=!G)ʔވ5X=2!ʿµ95,=[! ž 4 =o!VD {w 4:^#"Œ.:|#=uܠM.9#4]Z-9#2jJ-9#2җ'ܥ6-P9#}b,9#E ,8$1ۺ&,8$e^}+8"$JԈ:+[8=$ԿǷ0+-8N$<Ǭۭ* 8\$r<Ți*7q$FȆ;*7$jr)|7$I8֠iے)D7$W=6)7$A(6$"75?ۻ(6$ic%j<(6$ה%'X6$.ع '26%;ڙK'5%Q'5)%!9&5:%qpʾb&v5I%Xٛʯڎ&R5X% ʥZ%5]%Wʡz%4g%*ˎ)%4w%F[ˉڡ$4t%}>ۈˇd$_4%ۼpC$.4%m$ 4%/ `گ#3%xt?Ldj#3%_D5+#3%܋8"[3%)Gݾ.ڴ"13%c#ڇS"3%$T"2%G !2%hwz!q2%/ި!ڸ:!B2%b~ 2%< L 1%u6&f 1%m w1%6 ڲP1%^Lڋ1%NE0%* 0%S0%,^ڴ{g0%g5<0 &T0&%"/&u6j/&2_ٹ2/&Zً^/& 2ڲ1+%a :ڎ*%} ;y*% ;# # @:#  R"8# c/0# x1C6# ܅LV5#r ܘbf6#_ ܩ{t4#N v ܾߘ2#8 \ m߮1#& F e&# ( O(# =!# 5,# H?# [\# y{#ys ܓ+#bM ܫB #G0 T #0 m#% #t >#b"b#B: #p3J#Rf #*z#~ ܎"#eܦ">#QܸDV#?]h#*yz#tv#U] #;Q #/?#U%#tK#{ܕ};#`nܬR#EJq#'|!#Z"#@?(#%*k-#B7#aU%8#<qO=# ܋rI#mܟ)C#RgܾXO#4:W# j"T#D a#"9f#<)Wj#VSvp#ruv#~dL܎|#gB6ܦ|#I~ #-p/'#tXJ#f{#[w],#5Z`J#1Th# Q܅C#mPܢg!#QKܿI#/IFo#%B#hB##532P#0Fs#w0d#E|?#zܓZ#`ܮ#Ek O#,G u#z)$C $48$M)W$mb#$cۂ($shMۜ*$U5۹?$= ?$&5;G$ hgW$Y$Ye4c$0DMk$hw$|9z$xۘlC$Yys۲k$EVo$*,jn$ 8[$[C$T1l$yGI>$PG`Y$3@vs$}w;ۑ$eS2ۥ/$SC0۸R$:)$$o$P1$&\$"p$ :1$cT\%Fm$p/ۆ$mMۢ$O۾%6'$=M$ bl% z$lu<%ANU %;l%چ%nڞD %Vڵd+ %?A %(eg %Az %*  %b# %%I2# $%@E> %!Y^ .% gx *%}y !-%}dڊ '!5%oDڙ %G~ !5%{;& !<%j/- !;%Y!8 !<%Q@ !>%?H !@%0ݽR "C%'Z "=%f "D% ݼm "?%x "7%ڂ *"=%{ڈ ("3%sړ ,"/%iڙ( ."0%eڟ0 3")%]ڧ1 0"'%Wګ9 1"!%Qڳ> 7"!%Jڸ? -"%DE 1"%<H 2"%8K )"%0N -"%)Q )"$'T '"$T #"$Y "$[ "$&[ "$3_ "$8 ] "$F[ !$QW !$SR !$dM !$%jC !$3q= !$>ހ4 !~$Mބ' !w$\ޏ !l$fޖ !f${ޠ |!Y$ު s!U$ް \!G$ H!8$5 3!1$D !$V !$p $) r #BX #c'= #y6% z # A W #/R ; #9#[  #Bs~"~Mngp"ecCK"qV ("Ju" >h":4'\"[SL"}s nuA"BL0" -"" "3"!BMB޹!Non&ުzx!`?ޘCF!qOވ!~j}!$,lv!S^[]!wUr`D!?;!(!, ! &# ?cz 3dG F8 , c E)Ix߰ [Svߞre jߎ`9N t+8 h @[ O Aa&8i2B'55g .prq \1L"6/:9Opob_!7sG.Sf tnGjS.5i"eR%0 j|3F/mlI'1._]Mp"n?jhxgWFKVG -&>X W `= #UG5?tyM SZcd";tD<p}+YjcP Ys |d UwTY| 2p]U d#  *I A \JA n k0qA } % V + 8 cw e w$  .I  6W & J c:U <C [J fr` 40e> Wps 6ga ~+[= v# la U/b SY^X }U" k F@-VCZB@36L&[8!f5v]0.'-f- + )^v=$ ea5eL-7m lyB<4 5e 9ms[a)#S,9cFwu:z0UX%[b>[A  xu,@&PDt+oq2x+%;aQC@_OaUT8a 7oX?Cvqkjz~qd:BeF S 8AB7+od{8G =,& MVF8 a|UTd wl~- m q$^ W`[C ?4[b '')$  (+ K]9  acH }C t M= (!,ux &ME '{-o /PK /$ $a '3/ ZC9 9YB[ xmlo .p YXY @@RH s#j/  O, 8^H !Xl ; CUw @uXJy >X^ 0'D P JJ {j' 'D fHy] De@r O b Ed < QZ  Z>  /,*  yPe  2w m&G ?,x b ? Xs(4] o_ ^ x ZU.d "Q?V J %/X6{&gS_20) R(IRV2T)34"9oqED,Vn xgYKn^:e s I+Ki ZKFX F A \=z { <1Z  %$Z * Q# i n  RCn  b _ y"  8 ( P -a [oR 7  E M' JZ a/| Q "* Z>cO5iIw2r^sJ'}Fu>+aCWZR M2 ls;Shl3z+8)%Pn< qI  3 -x yaDn ) s K4 N?@T sSQ= f\ +oo jp{\2~e|r .]jzcJ#F QFLI#@67 *l4#oz9V)UAZ#G}~:&25?Q5mI`kA^anht{Z|B_RmRQcshK m4i:`'}-\=CpX  A 2;ߝ % b!AnސV!!."ݣ-v"rP n<"ݹ/A#BX#Q'ܩi$CKxI$~~$~ + h7߬*% s Sq{%R! CSk1%! ,U&^"H tݢ&"{ ,^'G# w'# Q+'+$Q ؟ی?(($ =](.% (ןm(% OO)%Z no})& TH>*& ?p*B' ,Us*'d ;+)( ԧQ+( I($+)&ӱ:Y,)XS֍D,)6Fb -]*axr-*v -+GgҫԜ%.+JT.,0[$.Z,j4/,8ң /G-xDБw/-/=(-0.϶F0.(;RO0.XЊa+15/ΆF1/y410f:2g0<JOϠ20.-g2:1̞BI31"32 %*4b2Duͨ6E42t kU4&3)˪:o43\{.53v564>T/ʏ˩54mBCˀ*64(T6P5 4t655.7537^6RLlɓV76.vj!86N|b8S7qlǂ87W387L49/8A.Ɲǫ98iJJLJ98% j:9C _:n9t::9UM L:9 h;8:1İZ;h:Du{Ű;:bcZ1ʼn;:Al<3;5õT86=~[~E>b=Qhp>=3kGJ>=-<>>)?%>K?g>$a?>u6?>W;I?>'1 [?>3f@?>y-@S?Vy使W@i?\m䜿p@?ha䃿b@?xEM@@?}>6$~@?.#u@@l!A+@ ߾ѿd*A/@¿aYAX@㓾U!uAw@ゾR1A{@ftS<A@JSHUA@,KJ_A@ 9HgA@ *D B@{GB@wIB@aν NCBAS㸽OCBAH㻽VRBA9㟽\jBA+㖽\kBA!㏽gvBAㇽl{BA tBAxツBAy⁽BAloBA]r B@P|2B@>j<B@3v#DB@"v9OB@q7YB@zMcB@{ZgB@ℽf%v|B@⁽y6z{B@␽EzeBm@❽VfBZ@|❽dVBM@⺽Ŀp=B+@~Ľ࿅9B@tҽ쿒B@f B?N-}A?9JA?#,r}A?I{A[?eA7?x2utA?⠾ItRA>ⴾ'brAA>ҾBugA>ue@u>c\@X>O;U@%>6^J@=∿@c@=⯿K8A@=ӿw#&@p= :?==*P ?=[e?<DÂZ?7; X^>;eZ S>;u5>D;Uz=;4yl=:ru`ţ\j=x:I¨T<=::%C=9$15<9_|A&2^.Yl1-(K6g1-ΒC$1/- O0,jauj0u,xϿӞ0 ,G:/2/+cЋH/H+ h.* SXP6o.q* x.*u ֟-)H -ҍ;-2) [,( PW)lx,r( ];+' 9E؍+'` Ԝس<+,'6 )*& \tՃ[*Q& :p*% 0Fi?){%| ֿښ!)%S ($. -pׁK(=$ e'# W`q  ߦS%@xAeLmuPsD*Z&f5U/JZHlraKT-(+P;  Su.9L]d=C6hm V85 F5 6z.g W9 Psv Xv N pIFS +o | +  C :z/ \WK { 3,l p>v 4aK AHI {# p \< g.g'} \OA #  3k  b c? b9  ?nIY} ~ &N /$     yt&^m 4< i=#\w zG1 \ }  a^1d <8 J $`$ 6 TC &# A?; 0S0 Uo JPm w<' \ }bE]| 37 qlrjy J^"#5g@l4WM&Yn `e02ze<|5=G*a4_U@_N5LQX"cK(;pLcwjI~Q}TQv6 ph9P`%r||rY?HIQcGn?=#Q8xU.l-&K/S2Z4(`5,c4 /d23e/6f/8g.?k+ Fo+&Ns(2Zw BgyQqy c}v|zq|r lki2dS]K\<S^U+LqLAAh78T0&.<%D ^u {)V H<a",d49DC7B"T`Pl"]i}EgzFmuawKIx 9'lG]-|pPTOE^4<(&U(iS Xf\ Q^56*+8S:fJya8_)Zqu&-zwqsSjh`1-8SB4'+,iZ}I#E l}[)Z^*@TA:*_a#w.h+i^VBzHw-FTH#<; x%,\8zJ\_,a~ewno}W=}`DM]y9&5Z _ ~\ r{  < n 5 pf Hz*1 a p. ` x{}t QeAo WF S A6 HL1d Z M Dt #K  "=~G ?Iw QxE. eCHt>aE[nKL`.8.?G J] \{C +e) <F% |\[H nQ !,g Z6BN 16 F2y! 1N v jA4sZ \;( 5t MK}[1 !?b R) Lc7 %! my A0L !O  km[ CDp 8L 964L^Hz# KS%(cA\&2 [VNpteR5h7O$2>r{ZQ 0^% }m ] kkt / 1%$!> \!9S wޤ3!m G\" r|N"  p["k Df:# 0#B#  #K =܇;# ( PU)$ ; ߶oj$![ yf۾ޕ$e!t V~ރ$! AIo7%! W%'" MڽE%X" #ڗ59&" G^]&" ~& # vU&J# [ ً'#8 5KܼZ'#K ܫ' $c Rی 'S$ ׋s+ ($ U^<H($ C_( % ?*z(N% |מ)s% dmK)% I)%) 3j)&9 $:ٺ)]&W փٚ*&p aً=*&} 6va*& Z-*' NL5*<' 9ղ:E*a' Ԁ"[+' Ne6+' 6r]+' + (( ya+9(9 oDԹ+_(J hԄצ+(g X^׏,(u R?ׂ3,( NfX,) ?P,+) >w=,I) 8aӧ#,s) 01r ,)/#V,)+= -)*' $-*A!չ8-*L!ժR-;*eҲՏj-W*yҠՄ-m*{҄s-*dfZ-*HHM-*E6<-**'-*-+ -+-1+&-3+ +.@+,7Ѵ.U+B=ѪԸ .Y+JFѡԱ.f+YRѓԜ.r+nYцԌ.+zey~.+rui .+^Tt .+XBd-+W1O-+ C;-+G .-+C-+ -< -+2A-+C@-+.#UC-+;8\@Կ-+HOwG԰}-+ZjLԞo-+kHԍnT-+yXԂU>-+[s5$-+ad -+r_,+ xP,+&:ӆC,s+?Pӑ>,h+^xӢ/v,T+ӳ$r^,J+ӿT6,5+2,+++%+*I+*>s)z+* VE[+* q_~-+* ~a+r*  ՜I*W*8չ**2*l**V*)&!*)NF)) u,a{)) ]ֈW)d) ֭)N)C)  ) )(( -.((Sc=(( q[Y(( ׉W(^(ط1'9(5' (v g''4G%''Xu&q'6٫f&<'7`& ' +&&4$%&6Bk#%&]xڔ(m%Y&-f$%&46$%?,=$%cD X$}%5ۥM $B%gP #%_ UT z#$MZ #$݈Z "`$3Jݼ` "'$jev /"#;jG !#6ls !u#ޱ{ H!+#7܅ !"w^!#ݍ "nohݙV c r"`߬ݥ$  9"X ݮ !KZ(޽ u!<Vr o!3i 5!$N6 ~ ? % y l CJ  | h +I(A C8 J N*=']fHkojBug^UrT@!A~.l.zCBW 2A49'N]F;NdZ8|6>t=Tkk;IA!yk0 -8 T" O:|" UY  ^nc~ r1W"j N $Mip7 M/ #\ |-ZX 3 IAV| [v5~ da y^&Fn> & E  Qh_ #Z  l:1h  tY S %Ky z S.9 _ e << w'T  L  7  ],  lCV m q\!T  2 r 9\L Z d : %KD~  E1  9`h1d\ {Ol ,gA "> c ! G IsFd ' ze Z 1uv0#bSTOw3|b6a_*\>{]2F \' $2A2LFNgCe[j|mU'f7e9*<[m[I&F^WA t V)C'uzz[(]b4Ef+U!- 9T 9  G*[{ "K" ve]$ d_oe W zsT &K?  |L$ 7 K 7s C mQ &$ & 86! n xG[Yb ]~ K 6nI t2_v _I t,bNu py e: $5" &<koF@ !^] /2\ ?e'/ Oh#B Y cDEC o#K' vOl 2g{  Bri tjB #aG FWz jm P 6F#a u;)| b@1U %%0TuXp 1 , z>jKt@ n&'3?c1.gI e*"U{U)#Z.M 7cm_@D89GtnQB'_?Wh+\rctRkw3t2n 6  ZmH 6Iw߸ V:Mhߚ w%q(!LWK!7 !IH#!9"JDI"2ݻf"VTQݡ~"h{%݌"eo8?#GTx#4yj=#?7'# &7$V]$6$7I4۹T$Q ۫g %]ژ~8H%uoڀ}%Rimx%>IJm%` &SA-&J)vS&d:K&-P'e&3 } &t Z )'O I'7]ߤ q'0w 'O!*!' 19G!' d!(Y!'(i;!2(G޽"^(݋D"(z l"(zY<"(>( m"(#)c@#*)0#N)bܢ# #i)D܍+0 #})p9e $)QA 6$)jKP a$);~*` $)Rj $)/ |( $*{ՌZ %#*m՜ J%.*[hծ o%B*J?}ڳ %W*4>ڞ %l*"ڍ2 %w*لj ,&*yf ]&*V\# u&*,qT; &*76O &*2bE &*#zq *'*zq Ց X'*dAզ ~'+NpԽ '+5@: '+\ '++ (,+W) X(?+'׽A m(@+_(<+T׻ԄP(L+m2׵Ԡ~(E+Pn׾(G+.Aִ&)O+ ֳL)M+ֱ!4g)Q+֯Dp)Q+qW֭h)U+L<֬ԇ)N+f#ַԲ)I+8ճ8*M+պa,*=+#W*?+OտIt*?+#f*4+dԇ*8+gEԪM*3+G(m*/+,*'+T ++**"++K.++w;R+*w՘YY+*Wսj+*-h(+*>x5 +*lL1+*[X]+*JkՄH+*m ,=*f' ,6*ՄF",*hլp;,*=}G,*XQ,);^,).Gh,)Dhp,)W֌4n,)_rַ^~,):Ӂo~,u)Ә|,Z) dzӰ,K) IrӼ8,7) 3xY,) lք,)i kש,(D j$5,( g=W,( dZ%y,( }`pE,( hgӋk,g( E\Ӣ׍,X(g 9`ӳץ,>(L &j,"(( c,( p,' v#,' w4G2,' QdC,' j؃Rz,'k Ӄإmw,r'N Әؽ{x,`'7 өn,J' jv,7' Xr,+' Qi,' =8n,' 2Kb,& )aZ,& 5}S,&w MٔE,&` j٬<,&F Ӂ-,p&* Ӟ(,V& ӳ,@& $ ,"& ),,& :*+% P1+% #1d1+% :Jr/+% Miڅ,+%q bږ)+s%c yԜڥ&~+V%T Զڵf+=%B P+ %2 A+ %# '+$ +$ 1 +$K*$f#*$)w-*{$DՕ9*^$ YիC*K$tJ*2$Tl*$+[O*$3a?*#>h%*#N-k *#Z@n)#lNo)#|3enz)#Gpke)#aրiU)u#y֔f=z)h#֝_&])[#ְ[F)G#־T%)=#F).#3=(%#R".(#rC(#Te( #sK(" ,h(" K(" &-(" 4("' 5 D'"/ O&X'"; vNaݸt'"U qmݢS'"d sݓ/c'"y zx?'" ؁a''" 1؅P't" Uٔ8&i" /٘#l&e" R٤L&R" tٴx&J" ٸR&B"% 3&1"2 C &,"O t ݢx% "i *ݒR%"x Qz%% " ~Ws%" %CO%! L)%%! b%!  9$!$ 6 $!C ]ި$!l Iޅi$! r%msF$! #B7$! (#! *#! AD,#!< }h,޶k#!Y )ޗ?b#!} .j:#! !%?#! P&"! $,Y"!$ Q#"!L u*ަ{"!f +*ބN"! l&Ox%"! )1G"! %!!=" !!BR\ެ !!gރb h!!O D!! ' !!!) !iw "I>ݤD !l^ކ "N ] "X 9 "Y "  "U8ݙ  "yJ`s  "

V"0K8"43V%"=Pkݿ"Elsݷ"Nݰms"Q1ݯQf"WMݡ4Y"bcݟE"_wݟ~9"hݓe("n$ݕU"j:ݓF "pTݐ2!neޓ'!m{ޔx!j1ޙa!g?ޚI!c Zޢ1!Xpޫ!V&ޭn!M0 ޻X!@;(@!>HA+!3RS!-[m &i t r] |4~F Gv2 [o vj  eh 'bO &L` M`a ` ue~u1idJnsMlt_-}L_ 9<w 'kG_!cUCiGeH9"k*.,O  ;)E*OF[#n}cC._nb>:yRhetF"ri$HZqoNa2F_PO;56w7z 2a +,<^(,?'jY%;5{#wTaq)EYX&7i<2:VAQ}vbfu@7Y!8# "!O&C{ o(hB6-h[/<p3?F3|n-D-="cLFpq~zLhM (+  ,YFNn `h/[c'&"HQ #(>/R l8!,:XN1J noUz`iLPrN 2 _s> 6erk O)1 8%T -@ S_a u}S ,a i3G }<>. UiNz %c@ +v P o34 UNDd .9M` "]%* hY u  bDAr 'zXaq jNF P= n ,]V1 9BZ# e?HiyALS(5o|_' ^T nE~ Jj# 0'  . 4:> @9`o `>~ qoV}D EMA $4B( Dd :8 4M:U U 4t zh)5 \A%\ G" *] "/ @  _)> [<^ DP &`i :2} #@zGLf5u^Mwae;W~p&j5 1zo*d&5`M;bgAMa;3a,v ;rBr^t{2NpDEAQ_25x%|Xh=}bKl2, lF9#V) |Aj *c?Mubb'\E XD-%s"t*6- 0312X3Z2z_}x|1_e[/<1/,*  (4%0m?#C[f!^v/tvQ a@* F] ,u { "T  F.߱ ' Xߛ 4 tzQ(!YgR! >qe!#!mU!(cB!&1T$!L<Cݡ"kE2ݐ)"zJ&vL"TQl"[@"_p'"iQ $"r0)"z&3".sA#RܢgE#fܕ\M2#yrNVT#XC_a#M;cu#//k#i#u#X s#K }#~,#4#G~ܰ#a'yێ$}6|}$D{n-$T{M;$avCH$ht1[$ton${b $}`|$ Ulx$NXt$'PXl$/MG_$GQ<۱R$SU=۫E$]Z.۔4$y`(ہ$$c"{$lg $n\$uT$I~$#@v$-8j$86b$E*W$N )O$V%,B$a*"5$k4&,$r;%$J"y $P%p$`%e$"s*W$5}+Ow$J4E^$_>:N$wA06$O)l"$WR $`A#o-#0y #~J܊#o^ܘ#`ܬo#I8ܿW#<P4#' j#h"" O"E$,"#p8 ~")P]"+h1"0@݄ "p2Wޜ![1r)޲!=3Uc! 3tKy! 20N!3' "!5= 8[ ;FJy yBkyߕt ^F߰fL CI> M L) La6K;_QH[jFi:DA?EupD(1E*RHO$vwHxYqKJCCKJI%UPFOvYwDq{F@J=A)<s"p7U'3>i.^'9&q]j8/K 6 X2 c)U (|&k H_@ ! c]+ (5 LK/? sgKv GuXF 7#c hl p(^v W| Z}>l  {4 Jt2 pa g6` t>]e 8 Sb FD|IMnXHWQd-rE1s|l~X o\Z a]6P U: C  37?U 'Xxa U ` 8 WB ( N :&  _=2 LE_F V4 U !e  i xi ~3T nU Y ^zGm JC? 9K# * Qsj<2XA?2lTDRbX1  Jp T`y)R(jSYz8vNTdT~@,<5+  ^\yD :HZ4tNzeTf_xJTf~-%eQ>%@ pXn((4P@%SqT5 g/j]AP'LY0 : ke7~~w x:h]#>I4 2HB_zQpo~ Af&r'=\COLqPg5p#>`x:bE2* SDysmnB<%4 -L<%;kKQh~yWtsU_i=Gx4v&PhM~^ukVN4JXK@6Z7Hs),tzpNT]ru$DN04; m !"f#:9:&ZV)tg,{hx2>Ge9[1X=u{CCV0G> I# K;LRNd(&NO@uPoX^PiKfO2AnN#[L FK ,K- L+G M@a O\ nQl )\R~ 8w=S Od$T ZVT jFT 0{U- "nV@ ]W[ LX s >X q/W( SU7 C RB .NP J^ 'Fi 4Bt # J? ; \s< O kj: c ~Xz9 ~ Ixj7 Ak]5 2TM3 (B?0 !95, &%( #          & # 1 ) 3 + < .$ B 0' A .* F /- G /0 G -!1 I .$7 L -&9 O .(< P .,C W /-E Z 1/I Z 01L _ 12L ^ 21L ^ 10I \ 10H X /.D U ,0@ N %4A J 7= B >= : D= 6 H; . L9 '  N5 ! N1  P+  %T%  0X ?_ 'Vj 7hr K|| w~c `uv On j 9e T #]$ D W+ 2 P4   G= CD) =P@ 3[.X .gDm %vd cv n G k S ) a 1  W  %)Q C8F 4hJ; NW2 pkd# Iv [ & @ y g3WTJ);uw9:hJ)La)\9r?o1][c A[-+\;52E 6T'J\a=zufTZ2%pm anNQVR@zz<ps82<) /R2SnMxrNg@ 1B}>B*oiQ 3we0+7wFmrsj]"}[_MN7C;|Y"VW8J  g!;N0i#@;MUb  b%&IqUYIp}rAcJN@`~=QF2%#[,$}dek =$K    X"*O(HU<:<Lc~ U=[d fv6 t4D axu1 kf= 6UV  YJ :LHg y,~ kLF$ 5J ? ! x ?iI S  &Zz ^ 53. G6!d [dW Nm {`K} Ei >]11 v_Rl o-@!59R]}.&bk;YuO7 A} [z[ `qV! + 31D6 vtK iY4V 8'8f #| 0@~_ qB' Y`  OP ! D:g c7}r b\"D *  8' d jn l yj.  O I.  < PHA F  u #U f yc .2 *& G&L*' *W' CՐ*}' m7+' #``+($ ~+)(- mFԾ+^(< QԀ׺,(P #F׫_,([ מ,(i \֍(,:){ Ӣ}G-v) yqa7-) Of-) iVS-* H-J-+* /ѹA).i* y.b.* ['.* `1..* ) S.+ a/>+аyC/c+u~/+%\]I/+1FA0/+;'Ӽ$0,,M ӭH0G,VϪӨx0q,_kpӗ60,q9HӊR0,x(Ӆ_1,t~21-sif1B-fΰ`z1^-QpΓS1-52^F1-)D<1-+2!2- C2.^2'.2V.i͕62v. BC2.'^P2.9k3.)s63.3K3/@tй~3;/Niw̶Ь3P/YbṋТ3b/cWH̆Д3/uN2hЅ3/G `3/C;o4/4%c 4//^.4/+PG40Gf4-0@h49064N0iˡ.4h0g˗(4g0Xˑ$40@r40;p40,b40J"40 D&407'40*450 250 550 <651;351>=5 1"@P5%1-FS5&11E_5114Hg5C1?ʼοNt5E1AʶξGr5N1FʯζKv5R1MʪβK5[1OʥίBr5W1SʭέEz5W1SʡάC}5`1UʧάBp5Q1QʰβFz5V1LʥδKz5X1JʱλR{5K1@ʳT~5P1<ʰ`5K18{ʷa5I11ʸ^z5F10ʽg5D1.zʹa5E1-au591*f5?1%eu571!hr5'1ls5(1si51se5 1w\51]50${Q50-K50x)9P50z0A=50wEN=50pK[850q\e$50ntu!50l|σ5z0wfʔϐ 5a0hgʤϡ4U0Xb˵ϯ4A0IZ Ͼ420;^40*T&4 0M&4/ P>4/DD04/?L>,4/9a^B4/0dr\4/%pˇp4j/yˣІ4U/m˵Рv4>/Tзt4&/@d4/*W4. T4. .;4. S4,44. kR6+4. ˇi@4f. ˩щO4M.f ˾ѧ^45.M ѿj4.5 s3. 3- q  3- o3$3- [&UF3- L(j_3- JB̍|3^-o 6J̴ң3A-L )V3 -0 m3, r3, /$ z3, N>s3, e^#h3, ́z6g3t,| ̔ӏ9Z3`,b ̱ӰPQ3?,= dT3+,# k?3 , =3+ j*@63+ [Mc#3+ EwԐ!3y+V *̗Կ3W+/ ̻33+ 3+ 6-3* U>3* 4yN2*p Yըs2*H p2*) y͑2[*VͶ2@*<?2#*&#e2*֗ 2)R++2),MC2)!lg2)"͑J2`)l"ͭo2A)yU-֣2)@%$2()2(2<0&2($ZcH2(-z׊c2s(^,͠׻2R('c$ͽ23(A)2(&'G2'&  2'j?ئ5 2'E$]Q 2' "ͅ 2l'i͠< 2Q'T"k 2)'v!ئ 2 'B !2& 9!2&;5g! 3&Ta! 3&cpم!3&bD̈ٺ!3i&,̤!&3P& ̻"%38&;A"-3&hi">3&ڋ}"73%^k%ڿ"M3%&2ݦ:"^3%ݦS#\3%ܙrN3#t3%܃̉ڊc#~3i%`̦ڵ#3L%8es̿#35%2d#3%PC$3 %Go2$3$t3۩t$3$Ex%$3$]:$3$Q/$4$]Z!%#4$wۅM%64}$bںˊ۽%S4m$)cک˞%\4U$:ڛ˷%o4A$څN&4,$nہJ&4$oZۥf&4 $B~M&4#8& &4#-&4# 3^2' 5#?܌]'"5#bQܰ'"5#;jh'A5#6رu'S5#بʊ8 (b5l#גʙb4(}5a#wʧܚw(5Q#RqYʵܽ(5F#1TG(58#)!)5+#E3)6!#qe)6 #swܧ)A6#BDֵ)L6"֬)h6"Հ(9*6"dPl*6"K(m*6"~X))ݜ*6"M 1+7"09+7" DU+37"ԸN6+T7"sԪVU+V7"HԜf݀+~7"k mgݨ,7"Hbq*,7"'E{a,7"v,7"R~8,8"*Y,68"Ҹ{݆1-]8"jҐ}ݠX-~8"Sv{-8"*[N{-8"%!u-8" y$.8"xJS.79"Ѽqis.G9"yѯy݄.g9"lD~rݩ.9"D^n/9"*Ev(/9" q ]/9"t0 /:"^wH /):";yp /M:"|ϙxݐ 0w:"dσvݨ 10:"Ioy k0:")z8m 0:"_+m 0:"8 o 0 ;" b5 1+;"hM 31C;"έfg U1e;"΋aݎ 1;"eYieݣ 1;"QFUdݿ 1;". 4c 2;" ^ '2;"` N2<"[/ 2E<"lͮPG 2T<"K͢T\ 2u<"qGx 2<"yR?ݒ #3<"e9Cݢ ?3<"Q7 j3<"0y5 3="!_3 3)=" G/ 3H="̟* 4o="ˍ%* 4r="'A <4="PV Z4="Jg q4="5"z 4="w]ݘ 4="^: !ݫ 4>"N#" 4>"/ !5<>"ʲ @5Z>"ʜ ]5p>"x' 5>"UK8 5>#DBK 5>#b 6> #u 6? #܄ .6?#tܙ J64?#Zܯ g69?#Kܺ v6H?#:ɮ 6Y?#Vɝ 6m?"Eɏ 6r?"6ɋ6?"k,7?"d= 7?"a!T07?"?jF7?"?#{Y7?"}1,݋s7?"h&ݤ7?"Te-ݲ7?"KX.ݿ7@"4?,7@""ܿ07)@"ֿ/7,@"ǿ5 8J@"ǭ4$8Q@"ǵ=*98Q@"ǟFAX8l@"ǓGS`8e@"ǞW`o8i@"Ǐ^s}8t@"zǑe݅8m@"wpǑt݋8p@"loǐyݠ8o@"UTǍݱ8y@w"MMLJݹ8t@p"=Iǐ8u@a"$)ǀ8@Y"(DŽ8r@G"ǐ 8x@2"ǃ%8x@$"Ɣ: 9d@ "ƛO9e@!Ɵn 9Y@!Ʈ/*9O@!{ƶDސ&9B@!aſ[ެ998@!Mȿo޶992@!Dڿ39@r!-꿚F9@\!꿪>9 @L!B9?-!L9?!(G9? 78J9? C/OH9? [JeN9? lfoE9? ƅ߈B9l?l kƝߝJ9^?Q _ƭߨ79@?5 L;9!? 199?#'9>*I'9>@n9>f"9>^ƅ29l>6ƧN8H>^8->"o8> P8=f#s8=}X'H˜8=M7'r8=*NJ8a=<Ƿ83=0X8; lM8x;ǛN1@8R;zG'8;iŶg8:(0 8:mb#7:V Ȓ\7Q:6ś7:J*79 C079]vJ,7o9hȤ}<7B9jƶXj78!)^78s]@B78Xȡǃ,7:8V177 +67kV6t7.ɲȦ>6%74K]66`3#l66Ɂpk6V6eZɹY66*G465(UI65ɢʛ6@5G-54.5+S54Oʆ˂u5U4]|o54c`53?ri=5k3rʷ̪#5(32 42e]84r26ˮͣN4-2:bo41xeWl4s1~U˰ΤF4(188%40_T3u0̳ϣ$3+090?3/ZXKe3t/̲Сs3*/BmI3.T]C3p.&̻ћ2#.B2- NjF"2^- uҥCu2 -6 #\H2, ̓L2G,{ mӴ1+& L%=1+ 3KΕS14+v ռn1* Q#P1* ΣX?1"*n r0) }d0s) fBϿm0 )W 6o1}0(ό7P0F(׏#0'>\D/m',[e/'~V٧~/&$tЊV/:&Iv./%l3Bڻ.%!Ѳ$.%O.$^}g)i.f$ ,O5.#>܍l.#NҖ->#mD8-"H}pݩl-`"-$E- ")X -!j ӥ:,0!/X, \Txu,m Kp\, I";4,6,K3  +FOV!+tԦ>t+"'_9+Ԃm| +Xnz *gJI *wDյ~e* e4 **'Ձ()D5 )]lD v) ְ߫(# 5)#4 (Y{C (Z VZ (ߙTq N(}Tר (,s  '[@؄ 'QM?n z' 7ߦ4! 9'ح & P & Tg!!&bޖ(!K&Q=1!& ڒ >!%6Lt K!%_ގn X!W%o ڼ ]!% -[ i!$vJۓ {!$E:{ }!d${޾VH !$ra !#EZ3 !#Lqy8 !n#J7ޱ !2#S1< !"%!ݙ !",k o !z"qޡY !F"}<ݵ !! )-H!! b~!!Y cޢ!8! M! " ,ߧZ" 0 i "r 8ݴp") ^ 0" .l" su"cC !ݺ"* 1+" }7!C= =!KK!8ZޞF!@_Bj! r!?E|g!zޡ6p!A~)d!Y'_V!j'G!|bޣg9!;m9#! 7!qU, l߿` !  k3?< EK߇ PE[ o  MhHs iߚnZ F!F g?( Cj xI"=C;h$|\z4hD~Mq .qSMl6xqQ6U:6#1UisV4#x} '#[lo=3omQ6?X 'o=nUw{]@al~m[3ELl2$vDf(u8!9(D;&ky ]SY9 j< .Z ' $ JJ $ v? 'p e +Jj A ("-  ( *=7 - NrX 'm -f! R 1@ .3 - s 3f /F 2- Vj 1 ( -e Tq )4r + $ @  K/: xcU ry ;=m G  (6R h L< [\ 2#= e)w vH,9 @+9m y>QHJ&$WMV`-l!q[l3ySHwjp)^@%Q^")EMB>iZ-6a}".y m8R oJz?uQw/3#GBR%]I.$lyh@l|z\GVjq(]l0'N`XN7N#Xb3-7%   D>)fa!52^^GK65RXccx/0{~UQow~wYko`J>CP9 A,,! FGcd c[ (F@.( &A2N @&+Q RGK_ ^hih mpo qz}N O|s/ 0mk a_ QV @15O :IO@ ,ho7 !)v t!X [ < C# 1    1 >2 LI$ W]5 ^k@ j~S y nbl to] ~J w z< h%n* Z)f G-X 6/M +-> 132 @1) N. ]5 f3 q5 }': 09w 6<m @>c JBX PBM ]EA !gJ7 &lF. /vK$ /{N 3~J 8P |3Q y6R v7V p5Z i:] d<] Z@d SAd PFb LGi LCe MGf N@k N: k M< o M4 s I2y G0 z F-| D* F&~ H& M| R X! `}- g1 p{= ywF zrI piU fi ^ \ch R^w Ec& q;_. d1`6 R%eK AeP :i\ (lm  rs s zv m| bw" Y|6 )DG 2;|T ;2g G|x N| Wx v cv] mqO zr;0 pnC k `R oQ_ k?w0 j1B o}#T lim lY| lT i?h d0U _#J $\1 /Q 8L  AJ3 M=H( T=M4 [8bE d0pT h/rX m*i s%sx xk ~\v~ I^v 4Om $;d "X  M  B#7@.. J>&'ZK-pa6wg9qu| Fj'{Lb6){$ Lg+ codec2-1.0.1/raw/sine1k_2ms_delay_2Hz_spread.raw000066400000000000000000035300001412132000500213530ustar00rootroot00000000000000 0'-F68XCAcJBdJ>\D6P;,@. .!   !5*4P>EjPTavamhgscjuajuchtffrgfrfgu ak{ Zq Lx} }7h m!X ^ I O7C/ C1 F5 PC f!`~Cwv{kZ}T3D- ">6Fv_ veBjc;?J3T+g# ~^'Ce+Zw /'*F35n57^7bV9cHi8kSZ5~bS~4m?Xy/!'$A"W57  (0y[Va%.]e+!h*/YATlvXt:jUT>-Vrs|X| SC` b$u S B   g;m] l< U|UmR pO{kOB)V\PYCod*v Uޯ l"o&$1jg%&,~(7bסR(@\)WEC* IԬ߶++{ I"U߸), GC޼,E!BӣA -q!;}c?-!3ag-!'_W{-!^bb-!d҃D-j!vҨ{-A!W,![ t, o*,g 9"Ծ6+ DT +%ՒU*>+c*7dsK{)U(rOr\D(mc('RX&mCwL_y&7/%,6lڪA%"E$mgR$j?#{'AW#k"m/Nq"["M#! yޖP!A M  +i yN'U  ߍ [ )1 \\u H)E#1j{0BZO<}n 1G7TO_(<NfUd n"IOxnu(~3<u}INkjud5QrV5B?H ~ X;' S  %: (  * (zw1]X EZ X { n pWs~qW 2 _  9H xW!E 8O S0 ,  O.BI jsjk 'uT WS, TE 1Jo7h/X$ kf`*vR*G5`:$DhjwmCJf@.$9  MAUo{1,.HQ_`+`- v zXi:bu[OO31XKwY&= 8)9 oo[ t[ (Er 0 }- X2 a>E| - d-+ NZ R> O$ Q < 6&LO qG`e . d =oP9 \3 6 #9 `&G P YP mq'  8  -K FV Wua  J(is  L 0 w U _P  QQ  HB ' 'Nd { c4 8  ( / iZ}0 oZDE .X |Cif |2,Zs f <td kTn|? \75 N ,)G Vw^5{S '/W *$ 1 A =N Do | +=% ju 3 DB8 +QE ^ P J zxS h?|M_ 7S#g  m v CLC~ |s~lNy x2I 4q 7gX m8ex r\9r iVzQ UH- 3N nK C-Ik oNF9j {D1u BZ "C( S`?  AoT A DF } B p Z EH ( GQ ] H ( Kr 1G MR no P(u}  QYc  V0F  Z 5 \ M< c cn8 iy ^ ohJ ~ xY"m  4?{ 3 r Z i  a^ )I 5X 6d O I~ mD \  O? n5 >5 wQ + q n"  fg " aR B L+ ^ K v D|  *:X * 79A 5 H4* R Z2 c f, q t.  ).wv  <(g߽j  K1`߬]  _0UߘK  r2E߆>  =Hy/  A QD$+ R`< O}P rR c YQw AN. dND MHU 3Bk9 8d q --[ Yc@  % T.  "a"*3Q)P@/;uPtP^M`6k0o[y}t`j:e:[hSz@<<#O*  Y o2 i T' !Ovv 7IEP L[6 [( k9 |o5}~ \(qT I`D iP / Dl fN1t? .7  7@0 lD'{ #O 5(Vt I|a Z)* gBL v4{Ls mvX jK0 TY MJ I1? 5j.@x EI ) ]Hg ]5,L*H-<GM>S\p{5sa<Ik/'uuZ]-xTnNhc]T,V y8 Ka L@ " .'2 6'O 0 0 < D ] U */ / 8  Xe &Z Z K   'L'1 -{> 5_5;5hhAZ:rHrQMNSRT(f{Y/\K0`!TAcozf<Oi@M kNmBPo<RqWzs{*6]tnbvSi{Jv5&wVzlYxVxwO)/wa4~w(2ttcrztJ=rXo!_yAmQ7kIh~wVdd#%cnG hn^ybZ IXcrR3rgMC-I3CvF= g=y @Pq8 ;30 +J 2 [&w ` m z!2 %  7= E  f MR,  T K e p37 /| 1 a j $kU1 /-h 6oz=B$hINNO5V?y"ad[hg2}xn,;&vY}aG"By XpoA 5/hl _~b EJ8V  VP I @>J Xzo9i Y?2 I+ 7(% w^d"< : ?^ "(P `x1 8@ c }h j/ 87 4a V h ?1? \  K8\ k.X W\hv&c8Z (6 hc J2 P#^  s   ! ^LM <k_ !}LmNG4h2~r?j'":1: >0ZHXIxNt`|qWXXR^=BHc(%7js {$0@Nqra|m%Q_T.8(D ߵ M ߲C@ Tߡqp h|ߔ( k`mߒ5 tEN߅G 4~U  y_ sq!n<!xjM'!fmvI!Jtge!2Xjr!1}r!Yr"!G{A;!.ށ`_!~ކ!vpdލ"r^Sݐ"kB.ݙ'"e+ݛ/"bݤ3"Uݰ *J"Oݴ#;L"D=UW"3cyh"&um"hVw">4"x/"nF4,"mcfZ"]|}"}c}\ݍ"gCc^ݧ"M@Rݻ"=2X "&W." SX"Xv#"{X5;"F\]e"[~"ptcݥ4"?Di}"jg"8u/"wa&A"z݄SW~"kݧ{qx"Ens":ei"Rb"?7)V"_XP" ݀zB"jjݴ$3"1$G,")["Ut"f_ݗ!N$C!!$ ;!4G!cEs-!x] | sX?  E_oq x P nC 9= P #u 7 uL  ? > 5/ 5 i; naz_Z ~i ~QA een 8C, 5"0*S RrtRk J/߃ jߨ74 JP_@ 1K J@ k * u Rh] owg k+Sߪ CBU4 , +\! - =% ak' !qށ] !uEޘ{!!Wi޻6!2'OE!G!cP\!D g!ZiHr!&ޒ!VEzD!(j"w!ucg!p0W@!/G^!I?!n:ޤZx!Oz0޽!4e[2!4/&!" !;F.!`^!Xވ!g)cު!A=9! w!o)0!8Uc! |"!vlޚJ!WN޻u!5o+ !G!*!56!O>I!me^!~$ޖ!YRo$޵!;,a4!=8!!#?)L!NNu!vRu!zG\ޕ.!^)bޯ<!C j O!$q)d! u<h!_~y!w5|w!yrJf!_ej^!=SމR!k!Mޥ?!KB 2!(9-!-F!)%^ ! E~ x\ i!p R /ߋ k@4ߛ \2 E߯ E P 0\ n }x #c  5,N P:/ kG *߁M s9XX?"`HK6e6TMk"_\oipssttwu\#wjI3uR+Hs= Zn%"lh K`r*jXbJP\LiD;<=k.4T (2+ @a ,u I"Tn1~*.?U ? K,T;]p%jkRyoUUc)r:4h(]0U/YLOsE rxZ<9L63Q'-e"!(lWTP~0[j/ .?QH_yv w/{%`V*=+L/ r1z(8F-P:Jr>|h2EMwGWkN35(S ?gX~E^^Qib fIK+g(zQkj~l(n:jNVo+|TnlnG\8r'&kq{'EtOMv^~zb#?|-dq~{v+=}O x3v |i+Ms ~[8 z x~ L@N~ "jd `* I( Bv s~|_ >xK yj uXF> q} 6 gs Bp3 qWS s!h[ s 56) .T8U %yq|zr "fYU J+1 0   *  U6 vO{ *lU C(Z X: d , y8?} b,Mq O^bl xpSBv zE([  ; @ s . h  ! ^ 5 T N F l: ; Ov -  nY  ?c  ,F  7 N  "/f  9R}z  Jhj  Y~tX  k]H  yM<  u7* e  \  Q F .3"@ DN2: `rH5} {Z1z` m.dB ,J t*9 f() X( E.(  :<' - S* m, '/t 57R H;A/ WYK h~Z j|6m{ ?Z|l }[h i'LB YCA) N`6 < ,k-"$U"85[ z { ZS9)Tgm0&GV1}4m9zF 8O  U/ 6[R8Va|mtvd]bjh5+Gm*pu#HzX4S~Vd x*^csv+2m5bh@NdCvajz`5T"^&J%^ fI]2[WR[\2&xY o>X2LVT~Rj #RPLMT<Ix(Fc?D*VhD%BPLPC#r}C~kBR$KB<nA~y@`C`>}';JoK8\%4EoJ1s  -19Y *9W )[g 'F* 'E0 ( &d L %}( %+bg $49 $[  "H _ H4 R F* + +j b jn n24   " \$ S e |Wc Z0 ,H )6TSiykhI$ s.Z\~vX N)!-8 C m[of 4:: * JL w?pv gkx! 5E" B %% H*Q =/ 6iQ}6 J9? Hp W%xP Y30Y Ga8 `ed Ij )Eo &Vq Voyv&>A|e"|`_$soWhA]fTLJp+<  !/e_Lrl. dJ8 U`j23A&*[2i|w<:LXM[)`/( qbsD1i ZRPNr=z#?OZ: i!C + f* L89 )Mv!Gzޯ]/!VTަp_!e}ފ!hGr=!Oht"2mLL" 9"^(1",?z"c[,#@oD#  y#jn3#'W[P#'E;~#5*l $?D$? ۻG$K۰57r$QzۮPc$UVۨt$ZuB%ۤ$_Mڝ%c,ڝE?%bڛv%jf{ڔ,%jDlښE%fDږf%m,ڔ!%gxڛ<%f`ٙg&f=ٝ(&a'd٠:&^ C٦ X&V٬2z&S}ٲT0&Ghq&;co:&68F(&& '48'QY-'oxB'|pT'\Ka'H<h'"*'w3 'xC,<'`XZp'Nf'j_J't;,2ؗ'^$د'E=@'. tn'ry (T^ (1F(4 !( B"([I# $(po> +(׆T $(maעw /(P1x׾ /(2U 0(7@ 2( ' !4(gH+!7(?iH!0(בx!8(`{׫8!4(In\!,((K!3( f5!)(K%!%() 8!$(U"(q0'"(~זdD" (T׾e" (1\s"' +}"'PA, "'>fY "'".ؕ "'SW0ؿ #'2.? #' I /#'R&4 C#'^AN Q#'g`l [#'{x؉ v#'gTا #z'J;~ܑ #c' cܤ #X'Lܮ"7 #E'DQe #,'|&؋ #'\Eػ #'- $&3 $&/L` 2$&>nz :$&qS٘ H$&PBfٿ Z$&2+r X$& ی k$j&ۜ10 y$]&۰QM x$A&ـz $*&dolٴ $&6Eg $%Y $%L;W7$%%$MZ9 %$,vn%x$wژۢ%Y$Jڵ3%9$ h% $ }G*%# ]"w$%#n 5Kܲ.%#3 i 4%# ڄ#-%l# ڣ3E5%Q# ڻ^b4%8# |x4%#t ~ܡ3%#H _ 3%" A'4%" 1B,%" jM 1%" ڇv!,%h"t گݧC#%:"9 p)%" %! e(G%! AO~%!k !pާ%!H ڎ%e!# ګ %D! 3 %+! 2=%! ZZ$ r$ r 6ߝ~$ O u]$  Tۀ$p A$ۤ $F &-S$ 6ߋ$^C%!$4KM7$XxW$x\ۖ7g$^h۱Xu$;|r$rjs$ Zdw$7N)u$?@f$3a[$ ۆ@O$h۫f?$C 0$]$*-6$R@#=V#kܦbg#N*ܿ{k#/v<|# T}D#=yT#'qa6#hpT#^py#Yܐ<d#[OܼcO#2A=#n? #A/? #"g"ݔ"T5F", Ic" _|"vp("XE s"E` c".݁J"kݤ;"N#".4"U!!;s !z@o*!uO\ޢ-!I+|1t! 6X!+.9f ߅$;F e߲B;% 4i8:g2E6IXu3r&x5Q-c2-E #*30">F a[*~lqFFnk Tf<':b]&0)OQjc%3vg~)ZMj1t4~^6^M>:6F'K,VQZvL|ct,SsnO#7sn ~}iAAxKfpo5hl^$_M7X/ RF +uVc &[? &9[ ( &$)E 'Sqw (lo ,n8H +H"$ -Y" 2 7 . l/^ 2 :N{ 5 |d 1 b 5p ?O 5T #r 6; } 8 C:; ]> BB? [qHz X)KX $L/ :FV hbT W [l?\ *LZ[ 5o] 3^b ^bK }.a0 j\e ,m m%l AM\v x ~w I5~U } f. tF _sl Eo S!l7 +hK ia f4Ft _QY_ byyA knY 7FQ "O B3T,9W\X1t|%f'W20@M*}k >Q L1%sy? cS0 ClZ  hU (%O, U4,< B Sj O~0 Y>> %k U @rj* awY rgwz ayQw MV-j 5& c #\ # P? QBt }l42 G@'Q n H Bm Pbe +;6F 0*#A/KJ0RhL^~,{jWv;u>aL ,uc`v8UjEiv8PaHu//b B,Pn]C12ITJ$#[ i ;<wPMr llzZ]XF#A;>- : F'<PGi}]B_4ic;s } vO {P9 ru>V jO.| ar  YU !R>3!J[!1B{!B;t޲1!_3Aޒf!~, s "&lW9"4."\ " 67"'f.#UܞP#ghܐw#Mqn#$HX#,H #. $=7$NL$ y$.qXۻ$UV6۞$m0}(%Db%'9%P[%&<hٸ*&TXٝK&t3~&qe& bT&05'&8&R&' sd'=|ز'W_`ؙ 'A"`'28(  f( >(:?ײ_(_וl(x"{ )(dPH),W=W)0D()7+_)=G)#B!)TMՒ,-*}YsBZ*bDY*sP * nx+> ]ԭj2+i 9xZ{+  qIN+ [5E+ $9+!/( ,%!)4,,C!ӣJX,t!Ӂb,!rei,!O6,!i  -"$])-="7EҪݻs-{"Q$haݤ-"fA2ݐ-"z |. #d)I.T#ѤV:l.k#}HF.#RG4a.#,0*k.#t.$~3/1$lнO/R$ gНm/w$#Poi/$;A;1ۺ/$Q3ۢ0%l ڂH0`%υdo0%y`M0%A,0&,1'&-!1O& Θ?K1~&$nLu1&2PL1&Cn2ٰ\1&\7ؙc1'p'؇i1,'λns2j'vL|A2'S1d2'{2 (sP2E(-fͤ2v(Himצ3(p\1}Q3(Tfl3)WM32)Mḇ/3j)K@̆3)I8v3)GB4)(D4)=Bֺ24*WGՓW4V*@˙n}4z*CunS4*IY0#4*C 4(+K5U+>LʔԪ55+iKQԅZ5+P0jc5+QN5,Ve+56,UY5D,\Dʦ5v, a+r5,4 `[5,H m6ӥ6,r pw/6- vYB6>- ɮ0xT6i- to6- n7b6-A cҫY6.i ;}L6F. %ɨVG6]. ɖ?;6. c0 7. B- 7. +'7., ѿ:7 /U П T70/m ЅQ7J/ Ȧ\o7w/ k17/ '|I 7/ 7h%70? OIϥ770q ^>|7R0 t*ȒS70 Wr70 =b80 O80; ΰD!81\ Ι4&871t {%&8M1 ǜSB8}1 t2?81 hI816\8154 η^81[H͕i8#2iǾYr8\2Ǖ#q8z2{sR82}G782Tg ͜ 82se| 83hS8)3S.8M3,[ǯ8R3?Xǟ8z3$[Nq83InTg̪83aQM̉h83S"SK83M3.83V 8#4 Y8F4J,Pǩˣ8c4rNbǓw8x4o\sF~84[Od84iKL84d(+84:j˹84Qo˧84kv}85-|[8$5FGw865gǿk8J5Ǫfk8b5ǗDQ8m5BǍʥJ85rjx?85 \S(85DT/!85o185/h85#"F75J ʣ)75i ʒ75w&y768S76==?76ZY$76gk7-6yIv706/"_7.6OɚG7E6}&ȹr+7A6J[7H6wȰ1q6U6ɬQ6S6!ɩ06Y6@ɥ 6[63Lɢ6c6C aɞɳ6]6X>ɧə{6]6tfɚf6g6ɟkoG6X6ɩVE06^6ɝ26_6ʫ5P6 ʯ5S6RJʯ5K6/{fʹo5F6?ʽɱC^5?6aɐD5:6xɀ'596l5*6=V4.6`B4%6y<6w46U"O46v 3|46_45445+45)P$35:z08ʹn35RWKʩC35]Yʛg35mtʊ@35}#|{35A̍n2e5^ͣg2[58ͨUn2P5VͽOX295qJ7y2.59U257;25/ 247 #14Z,2!14z_Ss14vGZ14΋&)1b4γ0=4 0)43I0 4Jh03iY030q@03CZ03`=/3{#/~3?Џ /^3mз/73#R/3= "/2Z'.2~0Ls.2`x"Y.r2џ.:U.M21&.%2;. 2A-1<-G-1/VCO-1A~cUm-1VҋaJ-k1lҢf$-J1}sx,1΃_,0xMώL,0gxPϤ5n,0Qӂϸ0,`0?Ӻ,/0) +0M +/-yL v+/=k K+}/Mԛ) $+P/^Խ: +6/kE */w2Z *.\,jq *.T|f q*.y~єV A*h.`նѬI *2.G; ).+3, )- m`  })-֓' M)R-E )- i (, )5Ӏ (,vOdӘ (,YsגӶ w(Z,@&׺ X(3,,+ :( ,5 (+;= '+B"c0 '+KR؞R 'C+O|w q'+yW ՘ ?'*S\R '*!`ٕ &O*e> &*ilF {&)mPo N&)oق֎ /&f)bsٱְ &4)>u %)u* %(zL: %(zvv5 |%s(zڟR Z%K(~t 0% (r{ئ %'DzM $'y:ێ $K'uj9 z$'q"k O$&}maٚ %$~&Jjۧ #4&b #&_<# #%]dOO #%T܄w r#k%zSܩڕ Q#<%XN 0#%'E #$BE "$; ݀@ "_$1Jv " $s&nۦ "#A? T"#ݒ" )"N#U "#ݍ !"R8\! !"Rލ' !\"s 2 }!""UC e!!%xJ K!!wRޟT 2!!Jވb !]!޻o 0! "y 2&] lRdߔ V ^mߛ  C  P X  5-H <  (f|  xg ߫ 1%  0 GLM' a7ko uCDL Oi eQ 5&q? dT~ { t@V _& R" 6?Z> \vNp y{5 `C)KmC79|wK Gq]#Pe(|xMn1qCv]Hx=lBZ=3r  Bl~R Tf@6g1(+ME\jbO!*q|Qm|tFpeCP 1 4CW1@0bZcnCfv!Fl d- X&M)I2mN:@hh0JFcZ#? b"p }4"Q=.uq_?g}Uc`l_WHUkO.:yI? w 9o /]74+UIF!Mbb8x{{0jc"SF  C.. # - +4?D$KI /YN>l^ FwaSjs^yd cY{oLns>bw3W)O}@ w: t6 p(o' i" ghb!h 'm/m:zG{SqYg(k^(qZ,sR3zH 3}I 6o<8i2<c/;W=H D:A(-G*:LCGJVUOpfP-ssP0~e|PDJmPOCdPV3XLcFOq ;L}+HjL7QHS FHt&#tJCJGZ1Ht|F;eGI'UD[AR Sߕ#- bM  #w Jr +gZ OEߜe dC H, ' ! !9!(*"O!CC(ޡu!s-xZt!-Q-Q!5."!96ݣ#"18_I"\?%m"?sV"FBHݡ/"qD5݁"G@ #0I #JJ<#%hPܹb#gO܈Y#Rpa?#XQ! #V#?6[ۥ${g^bxZ$^?$ ba$R d1ۇ$ B g-ߣ% p f߀<%! j\f%W! lڇ)%! jce%! qK7%!, p"ݻ%#"T qݝ&P"t wٗv2&" vP@r&" zz&# }]&T#< vܡ}'# !e|.'# ;w_'=$ ؓt'$# RQv'$E . ۪o'$m xp (=% קQp7(p% }4jF(% P ly(% mi(&2 Yپg(2&V 2׭ٔe(& TZc)& %/a?)& [x)T'%m}ع\)'`8C؏Y)'\T*-(կXE*s(rSe*(ET*(@^׬V*)g6֋T*?)'նoU*e)sFT!+); W9+)T]+*S+Q*F^ԚեU+~*h7dՄN+*HO, +NF,Q+ӓH`,+,ZԸI,+`J ԋG,,4kG,+,ӹKF-m,sF'-,[H?-,1Da-,*F--NmҫD-@-cVҧ҈>-x-0lV?--568.- 3!...[.d.BрѨ&q..k\с!..QR./2(.,/.V/Ћ//-d.//?Gж=//\ЎX//ox/"0V~/@0 uЮ//p0Iq/0 >M/0-'%)/0[5΋031=h0M1JϘF601V^N01\Db01g"k014nͺ02Otmͨ0.2c}o͐0B2UϨqw0o2CσVn02Dz@e02-OV02"+L02<02) ̿*0!3W̚153mν̆  1R3Ξ`1o3΂E$13l113a-13+?61354/13>.;13,L <13CU ̷<13Lc˩<14itˈ<14{u;1)4e`-174FL21D4γ68)1Q4ί %1R4Τ !1j4ΐ1n4Η1m4Ά144${14>.΂14G@tˬ04_P r˛04e_q˗04ss&p˂04-ptm04AphW04]~X<04kyH 04ς: l0s4ϑ1Z0t4!ϊD0r43ϗ50d4Hϛ 0g4`Ϝ 0_4 pϥ0Z4  Щr/Q4$ж\/H4"1иH/B4(Q1/+40k/"47c/ 4=>/3=6̿/3HW3̶.3Iq&S̺~.3HSh̲].3Rxт̭E}.t3Pѓ̰.\.d3TѪ̩6.I3Yѿ̨ ".=3X ̦ -&3Z"̦ - 3Y?1̦ -2\TUͥ -2Wkz:ͭ o-2RWͭe =-2QҀ͵L -i2D ӫ) ,=2=M , 24 ~ i,1&'6 +,1Ik +1fԊ +f1|Gԯx +:1t[ y+1H S+0 3 -+0< *0a *0 AՋ. *a0'}պ; c*'0FL /*/b&a )/9nwk )l/{ִБI `)3/dХ- ).O 3Ѿ (.5Jm (}.'ל h(J.5 1(.S '-h, '-~DX&u '-ؔ6Y a'U-JC 5')-_( &,7C} &,uvفӘ f&],Z!ӷ &,2D- %+ fmy q%_+&o $% + ML $*Sff4 $*۟Ձ Y$D*p՝$)V ֵ#)A 8L#))8yܒa#I)S+#)h "(:ZDp"v(ݱmTM"*(ؒ="'U*b!f'B!' )) &(7߆Z D&FًB %b]6ڮ %AqyY%iky% ZE$H5G$!b.?$eۂ#m&ܪ <#<E#H"-BF?"D݌"R]^/{!p#s\-M&Z6 AfzIKPr }9R ~s?uk1~khTd?0\F xSc FMM* zFCe >@ i ;Ij N7 2E3q' 0= G\yconrD}4 w8PvZ4!'Hlz3xf9Jl$ 27|>Rj'Y4i,RE=~K]2}lf"4 qT$:VgjsCG9 &~ ZCo&]w0Fp3|^Qhis2r, e?T,gx@5si(!V.o# 3r  _f 8 ;N R  %X w rw% GVE 9h(T z d]/  N) + 7:k M j ^ W u Nz  `( = K87q o+S V m  ; lX E Jz9 j .< $ l3 y ^Dv  r.0&  D7 ( L ^ W5 % ee] A +y [ Q o s0 L ^g3  ILIa  64  = Z $  S[ 8 2 [ FE En P m }oa# EXmL &Gvc 5 uVG j: b ^NG63>!`C02bPk{|{Od#J"[5+v#}%5AU@r7G "oMEV 0%^); dBLpg0d|VrfxsEupb@[WJK;E>#dA5yR/z v'_y!Ji:R(!74 > K4%XF:bbPj)yym{6Tk~B7JqO4gY $e_ZiTq$ Ot*I}@%}DR8x@Y<o@qQb:aVv;fIc>z8L};(7u@'hB ]BQELE EH:G!=K'*3O19-O:>0WCH(\PS(d^_(pjg(z~s~x)rk{)g[u/XIe+Q@c/G6^5<*U27"T9-Q=#N@HG HMEX >_&An07:LN~6`^o8wo]|2Sgv2EWk1:D`1-3Q2!%I1@7/3 &6 <#595R?KkAh.\CFp;HZUJo; N" oO5 dTN OXn >W$t 5`8U !aS8 dd l~ r n"T v>84 |eO nwM .r# iPh Qy$`s 0N]X lS; OX K< $B (:> GP6 c (oE4WlNU{v[UpQH_U!+i6q K y:, ohdA \1g L@7 ; lm )uNE 4-} n K> s, z= [&9P (4ip < bvLF 0V[ ]:m! )!V uC \@3 F]N 2Wo B ]ki 3}W @7 )(8 9f* }I] SY$ *al?  6Z o k7r Yw w 8) ]b  D>  1~E Z /  VD  +Y+$  pf*?  SL u\ {] b/ lt I 1# 5 rL   `N K E  ]3,    S] { {U u5 SP41-~EhBS:sfm5"w@HG w]vie}7v4T[aL?Q7_&D>K8Twx[PF-"Y~<oF ^C)S H b \ )g z[_ws Y Wa{< $4q bH%  \'V  ]ST  JI) ]  ?i 4 v9C  $0  c%87  B"Xk  s  q <+ Y  P : ?  ks  wH  AG  u+1 w bV G w  M  %BC  w) k KT A t  z9 Q#v v2 ? T a !^.;>bX y':h.AN=w jLp&k\/l);{j9a}ysqRxug(K]W<O*<#Ck[3})Wd"-6A+'Z]Zp2@AeQJi 5VR o VNP F'/ /&" )L@ 2 pe @ y T DT* ^ 1> k \4 { }{oN w |pw V >kf + %S/  Ig  yB/\  31T  e-n  ?%B e x I v 4 U<  i  !  n 6Q  =b  R f )6 Pc  Ud > 5 qx EW j 5 |C Ba #q D# Y"kQ F)vd q*32 3:  F&SEXMbra@~p5a}z?#Wk!H}bpnRx;FO#:2#5* UO6|\ rZoEQn&$Z:<FW9[(rwo,i8- L"_ 7J &"hw 9 m8 EE N%( [C)O gWLo qoz yfL~ a.n Gi"( !Wkk uH ?RB5 2Z )yS( |"xI bnt B8w -] @ +  X  .}  kOF  .to }  Z UY -  D ! 3 I" _O{% t|v(x w^&U C5+6 *!  ' M4+ ,tI' zIf& Lr$z bW C4- x f  6C:  r!dw TV tx6 s[  C9  * 7 ]D 'xd%x .:N X;[$ &CqQeaO]Hlzrb7}|D,qd6Z?_+M_;CtwF:yWW*P+i!6p)o-RfQutV0cA?E54Z %n & ;U rZq ez Rq] AP? 69- # / 1;; 9ga E5 I^nM Q2Jj X akA eRr< k3u] s Wp r 8 ya }P& {;;4 !QY  es | uU6 ~W-M }=  e vA vhg pU; iY7_ g3!x `| [c VI1 O6D" J d2 @A ; wH 0 [>\ # 2`m  }w o & C i O  \q  |M,  U>=?  62JZ  ",Vt { #g  ` q M 0 x. O j a \ z H t= 6 S_" 6 f $5 ,/ .I6 H1r> |^WG gnrG ONr[ 1RdC !PR* U= W* #-Y DG] pka} 'fY kAi% @cr}vvJxW{><rT'Uj3~o_%K=:/U[hu~x ~jG-P#F1(p zz\\{#b;yD0wd x}wy'%\{OAC|gP0b~f~ Cv{ 'g*w FLz 'iFw  swc r1y; 7Ux  uy zCx TSu `(rr~ 3 ri  kQ )j1 AAh _Tc td \{6c .[Sc ;wds Z eL + g, aM f &y j x* i eE? f Del i +| ey f d_ B f@ , d) E e Ok f & k m_C m 89k s $ {a T2 |@ c  Wx -lw  Ot&  ,oC9 oVV llv qi6 kIdM W-cj 9~\" USI 7P z eC1 ,7N> 3ig &R hX} Tt< ?R! %%   'CJb/ftyFVK`,,v%6aTGCFoN0n}\6Oi ( q#w2P(xAg9wPSgke|Bzav%a^o8MWAHD4l,.x!b9W   /%= :i ,I 32e[ ^C;n Pw{ S~Z dl3= p[Z zN| ;hl S):X ywG 9.> e % <S7 v%(zD 1 [O A3]- XhM bp` p{ ?es dwPd zn0pS b85 Z . P \ 7 F i+=e =5BU _," x&!k04SVa@fx2~pU U0@.:NM0zjj Y7br HU'8* dxu-F*E5 ;N"Uj#n{%6te&]WB&8h.&%E&$$$*-@"FO[ hltx~Zgh2IT1F( 8 *F]( Fi!cL-|.uJJ_/q1_'p!/^v.4S\N=D>dE5%uI2S!f[N+b<?l jw}wy#'Lk3U+^CkUNaF\"F9k?12mQ&{k~ |wuj 3iHMf>X_*yW v*Me 4HJ0 F?#L V3d a2v q(z 7 _߾} J!Z߯r ZAߘe v/߂[ -|R cF  O: H2!,"! *!  5!G!_!8! ޿c!I0 ޯz!`@ {ޑ!xM xބ!}X mz!f]`!qZ[!xRN!J9q!?2i!<#]!3K! $@!(%1!*!00!?4޿!J9ݧ"f>ݔ"l%Aݐ"y/I}"?Jr$"FOj#"QW^'"`XS1"h`I+"tfB4"l.v:"u%i5"|[~>"Hu@";oA"/cD"]F"VI"$ LC"-HK"5?H";8A";ݿ0G"I$ݴ'?"K,ݸ="J6ݭ<"YDݦ 5"WNݨ1"]Y ݞ)"fjݚ("gs#ݖ"l2ݒz"o<ݎo"uH݋h "tQݎ_"u\݆V"{fވP!sn ލK!w|ކ@!yތ:w!q#ލ4g!u0ދ'[!r7ސ!M!pFސ:!nUޔ +!m\ޒ!lpޘ !e yޛ!i ޗt!eޡj!]#'ޠ`!a-4ޡS!Y2=ުJ!V7Mު:!UAZޯ2!NEg޳!!JLx޹!CW޾p!B]] 8fJ 1p)5 0z>$ #Oz `o  pi |dz *Zl 4Wb DQN SIC a E3 q? 8t !1b1,P&9$8>C&QRhY |d l l(vX5N B:s O*f _a lP z|F j9 0[' GD e0 zz  \ !H +4 ; .J ! l# o X$ ^ D# L 5" !8 " ?  " \ # x { * ^! "; H -N 4 =^  Jp  U} z b d o, W {@~ C [n , s\  M d 7 G " ( 1 E  [ 3m 'J} w5d eAs XL jAY U1g ? r" ( $s $c &'P 9:%9 WO$& n`& v% d & Qr' 9`%) #M5, B@. /K 2 [$2 f84 tK6 f3q z(3` {6/K ]H)5 ES&" .c" r  z ~ p). h6@ [>M QL` FZq ;e~ w3u b'p T"^ > G ) 0   $  / 9 ( ; 4D 0EJ :NK F\T Uk$Z ct&_ p-sk 1rgw .`V 5uKF 1b/4 /N$ 3B .. / / 0 ?1  O#2 Z.3 g;8 zD4 Q6r( \9]: i/GN v/3] )v{ vh c^ *KO E/G ["> i2 |z. n% a M!5 >"B - +S <t E  jV +Ak M g x *im5 +PTP 2DCd 5;. 7#s ;d =R B1 "B! 3H) PL@3 mLWT Uhn Wc> Z]6  aLb(73f RGg m_i|)yk]~4kNoFp'S^n;tq(%voVtH,{.iQ~6 i}3)EzJRwwtPu^0u4D pV$s7r qRmm~lHq:F1lO!kh~j9-UfjS<c1__.^9+XcinUHY5Wf; Q cSCBSl*N)[PTNw.LOaI^,|gF L=C ;=(:qsSxo4~O+f-).B(r v&:7:&n_" yuv!2HJy&q$ O 9%QeZ{l\/'I1 ߗ iPu[ = $m K!Iߕ 0'I X('!t.u5!14ޫ=\!i6ރ{!@vJ!3FG!(lO޷|!i[s@""eg".r"`h}d݅y}"(&4p"i#5 ܳ^4#pE fT]# .iO# vLC# [:#\ +܆1# 1 Tߺ%# a |*$! = V$a! ۃo$! v>$!h !:p$S" /ۖ3$" AJ+%"4 TܧU%.#s _ں}t%a# nڀL%# zZ< %# 6t% $+ *۽h%=$a ٜۃY&$ _UM&&$ <(?E&$ +t&@%;٢ک&p%pcsy&%9(&&'R&6-؍ٮ '&vB?bG'&U'n'#'ez'P'twؗ''WLPؑs''A+mg''*BU'#(ػD([(כ6(x(1hײ /((tj K((>c(,)״x(s)'1ukֲ()hKR*()bGD(&*|$״v(q* wc(*F\եQ )*ro9&)+A).)+&>)A+֠O)|+/ vԽa)+NUԟi)+|6"cz)+Qx0)',in)N,g֜k),YKYӊL),G1Y3),: ()-& )G-+"ֳ )Y-H'֐ҡ )-|A_j )-TJR *-g,. *- u * .a *$.1ѻJ *;.]խэ, !*k.Յd *.x@ *.L %*. 7' !*..O $*.PmД #*!/ln )*0/XY %*H/ի0A %*_/Ք, -*w/Ղ !*/x %*/1X &*/MMЩ */b/GВ */K(l */a'W */{Bv )/ Y )/ @ )/%& )03 )046 )0EHϰ )0[)Nϛ ))0o=Uψ )+0Me| )'0dmj )60y|U }).0Qk o)-0=Q W),0/; H) 0-% +)0 )0 (/  (/3:" (/ON' (/ah3 (/s|E z(/ Gm b(/W_ R(/bK 8(/q7 (/׃& (v/ؔ '\/,ش'?/ G'%/ rw'.6 N'.L>#'.]k'&.sّ7&_.Cٲ=t&=._Ld&!.URi&.]FR&-%j83&-Ju( &-n҅%-u#ډҒ%^-dNڼҪ%(-H zn%,1 >%,#b%},3ۤ)$;,>NL$+K!r`$+|Xeԕ-$+]aە԰ $X+Bl # +&v=#* [}#*Lug#*܈S Q# " + ; N1/ !oH/X [5 *flm||oYQy;o!  `i8gI[ 1A ey 5-S 6j Cbj c| .<8i -IY8:<l~C]\ 65s>fSO&/h;a `mfe ^{I 1)* {J BG -/tU Ysz2 zM+ +1f< z aD R%3 $; /aX  bx "{[3 ;Y)Sb8f}xRxMB&6[YP<q".4bCl_[VPw<; | +j-W:op8lM&Q* @F P8x3i`lZq$ty7{2w^ efy?HYD%fN)B]$7<:.#[*%Gj.QOEd(f vqb.\FW8*'t Z /) 2 +I7ZA%`E7uSH#xVV(hW_3T_w@?[M/XalUu]N [qIK[?8EJ;@@>2O<)'c8"j5u: 4u  7j4?`Q2;HkHE<aL.gS>l] Se0r$5w/It<i0nHJsbP`\RV;oIg!U8m6(t 8 r[2 mg)Y]zEL,IZ@z1wG8%ee^Kca3>7$1"9X:VU^|Ys%2T-4&8'UCaMARSSnbU]f*"<hU u:f tbK y?A f~ % { eSKu 2oS@ h! +Ff I XJ c T\ 3 (R  $DW ? LD c t@ q M9C D 9$` % 6% ' $4X GK. {u/f_o +$6 "#0 i'ip Ze /K }W7  3Ib rq >sv "@>4ho& {fYH" i9/6Dr#v/\=}::4c9{]16[ !,Boir{9@Y&s%qk{J>E@>^p6Zq *7? g. ~Uh?v7 @pt4,f6,Yb^@d:5 % ^aA#u r#_ O@X@ pnCwng FU7C G8!  O W *O . QU] Q ^a  ^f. M gC  l"]  Ho   lu 3 w` ZY }: u ~o  jHw Kw 71p! RgS {ne hNZ, =(QB Ik ?}A ?y7j gWy- @Md) /5J   )  ; ^44zJz9c_N8n_$Ud.5x=3FxGSlh2`aJfUx\sQdrzJO?>txB2ep9!Pf4A\8 0S2C4 :6)#:1$= 83@@CJGUJO`(PRk3YUw?Y[Jc}XTis[cqi]l{aX{X{sXOmdSG]XM@G@D76/;1"4+($   ' '76I@W Rl_%zn0cCwFWe0hP;n$$WD>d" k #U0%6C,,N=- _P1o'l9~=<yu\BhWKSm5T@I]+! &j 'Ow Mq| z&|mO j9N3 cI- Y\ Kk  Ez$3~ D 76 ` ! (`  nU  _^ h (@ 7 *$  1A  @.w  oP["  G\7 h n V * Hu { x j ea] V 5 GL ? 5  $\@7 *hL g U O ,xq g" JL18 4;X %H  dWb 3a% WpE ~Mq | I o he c 8dA W %" M  0 E ZG : ~q2 4 u> + W`\ ! .+u     m&: HSn  |0x vK B ) EH &uf j#V 8f&s V, ]60, ?1F )8g 9 [; /  )BM _f jq |} wv  dc U[ =C+) &07* B0 Q9 _/< i?+C v[AI pWP }z^T v}s[ ohc i_|c eSom _D\t Z6Su V,F O5} I $y Dr <j 6b* 1]8 ,TJ5 (KR< %I\H $>fX "6o^ "4sg "*{r !~$~ !z !vy hh ea  ][ RIME F<?.8*7#' 4,#.1&17(, =+)B-,D0(L2'N3& N5%U6$U7#W8%\:"]<#`?'bB$fE)gH+hK+lM/iO2jQ6jR8 dS=bTC]TDYTM UUPQVSPWZKY]!K[c%H]h.D_n2C`t:=by@8cKy2dVt)d_i cq`b}W} bKk aC^ a9S a2F c(= d" 2 f)* h. i6 k= l E lR l] k,5m h8Jy fF_j cRtX a`nK _l_? _tR5 _z@) ^t6! ^h( ^_ ]U  ]J [> W''1 S=:% MWR Fwl| >dq 9FX 1,B +)3 (6 "A K V) a@ nU- xk@ \pg ycJ{ Q)Z =0 -. 57 ]%E  FP r ]W W ya 7w (k a 4q L @y - P*  w\C  oka  _}C{ a Odk > CV W .C & 90  c I Wm# 7 0 c@ <%N $.6W =Zi I}3y vUO Urd} &kYs BHt 2H a FN f v ? ; u$,  ;@ 5P V'a Vy p  q W t 4 W^" .J- ;9# "GS<  Wm j |f 7 Ez:{ #Xk RLnY F Y Ub9 2 .Q, < !2@ O^ r  v _ # O 65 / ! L 3#Hl BOv orU W'Ml ,6w 8qc kvQ p02C IH6 Cc' "lw > \ll {$P Y= 0(P 2& ]DV !ZB ErMb |p ZtMZ S G Z:5: 7&a*    Q4  4X&  E `CT =ql  n2 2hGK QZ}" `0tm }m  g3? Q07 8ZkS (1b W rC d b OL X2*} .o"7  D G `S tN4 bL bLn EJ -sM US T: +,!& 5Z# EK  nQo  H{d 0 Dw C % R ob/ h R{h } 9K| Ll Qa D:L F2Y W| x(I es  KnF  5Bd && ) _* ; 4L C ,y L fN;\ *obb *k [Lvx +d~ )~ 5 t69m xkYt }Vdq P4_ aS  LN ! 7II M >x p u<  L_7+  00V  0vD  v. 8 BV- s w,  U-,D   ,\  ^(}  v7* 4 W& _ 5": t !#Z  ^  \= +  9$ B  $n  x)O 6 T/{ O $c< ~ jF4 OQb? ,^ M_g  ".p  w= <CW} Sajx s|m u_tb O1ZZ 0NH . J6 Rv! o  V(0 #;D   L&lZ   O @ D  J f= G,t m5 .A j S{ 7g) BF $kC { "OX A,/ ey,P Da O!$ @*BE2-qDv?guDoo$!)F,^]C'{mb3T3{|_ fߦH  O߻R; ;VR )+at |D \sH qC$ DD ]Q+!|=!q)Cޢw!Nw\?!0^!,9,! Q<"6v "YjOA" h]"z9)p"zݖy"\V^]ݰ"G%3J",5E >"  #IX& # L. ) A#ߪv a#wCVߔܙ {#Uuܽ. !#.U t!# Qm9 !#!D( !#@R 0"$W~ S"$kq "$'Qۓ "<$_ݽۮ4 "C$Dܸl 3#U$"rܜ {#q$b܊#}$'z=C#$dmI$$y*Oۛ$$RN=9$$)2%$@[%$ 6{%$gZR%%$~%%v[ژ&%Z.ڸA&#%54s&*%xa&0% S&9% ?L'A% عp2'I%} طښ__'I%J rxر'X% *<ؤ'[% ة%5(Z% םUE(j% bוyd(f%x 3כڗ(j%V _בھ(r%0 8אP(p% ׏m(r% y׎)r% :֌=@)v% ֋YO)q% ֓ڂ9)o%h g֍ګn)s%D }R֓)e% G.֞)e% ՛.*a% էUK.*T% լ}S*T%i bծڬt*M%C /|ն*I%' iչ*C% N9*>% /(Q*<% *Cs*.% s h+.% Nڄ+$%n 1ڣ!+%J >+%! 7G+$ZY+$Dk+$]1p+$;|Bۓ+$YuV۾+$+\g'+$Tq9+$QԆ!_+s$:ԏ@y+m$~;ԜV+Y$f4԰t+K$zJ'Իە+<$_0(ۮ+'$E#+$$+# "+#(.74+#/SeW+#-m܆e+#j>Ԏܩy+`#Bx?ԯ+G# fB+0#XO+#HN$+#9W;+"-[O+"'e4k+"oO݅+"rveݙ+"Y ԇݸj+f"7Ԫ^+I">+ " $+!"4  +!KO *!$wm*v!@՜ފ*S!kXռޟ*4!Yk޳ *!@ n* - `* /@* W)* p*  ֕$)T )=)) #PR)0~ik)EW0)nY֏(YXi(&BPt()(gp(JSG( wB(rנ2'Tػ!'0D*'o9{'7EP'&hV'|H ٠i&DbCz&~eP&h_>&Sښ%JCcv%/ 1%AL$]{$j}[۳q$9 Y]$?,$6"#2g,#cܓ6|#Q=E'# jS"CN_S"ݡp("5!{6Y0~!mj|x![_ F "UM# L.I B%j ;EW5jL~,O?$3("in*P% e2DC5-ht9 vX),IC0 5QUL;0@`egC7s4H!/MMS_QWV.] r>c[Rj~:mr+`Cx>>~:Ny/v`irpqA1nw wkIEg_)c M`GB  \#J  Vt m R} F Mn_  F} E\ A  <di+n T 7}& f 45 * 1+ ? .t@u  +/oK z ){ N1 ' $M-& "hT = j   "d i g]i kcY ( nIqgu c   @  NOH GAHO?JE^]*BWo`_}B-JhYklL6}" RNmqO9?^2xQ^9}bGS~45NgL[5 22v [2@ > m*d4>5?fx~i=EC) $PJQ g&M5Tca!uX' %WT(wM+ /6/491In3tV6 60 8ch 96$ N<"\ ?gM A;- DS^ CHx  KWM Q . U73 s Yi% X ^jv  bs @ eG Ur i{i  m536  o\  r rK vRj s y,/v  }4( Q ~|e , 0x l Ipr h ]l#  g[ A b  BGH]   Y  V. _4}Rd cEO qeL =.H ZF ]B'B>f*^9fXw05/%F*?kxpm&pv&!9T#M\)lOMd")gYv >Q9tm,RGS Nb-M.n} rg #'-B)\,-{X43oe8RR<=:xAIH!?M 'm SrKE\8qhckcKZv1~L~,t" _k@DhdV_K]qRTm9 O^H+E?(J-:Hc!2kxb(F=! ):_4 ,tV Nߦ nc_w J7S 8B )!$9!(M!-o!64}޽)!O8gި0!b=PޓI!D n[!J Wk"O@/"WtQ"]^n"bO"+i;_"Bn&Aݶ"Sq!/ݣ"iv ݎ"|y{ #|q #^~7#I{$?#Dx/R#,s:o#nG{#{kN#eeZ#P_h#>\j#03Vx#@ܸQ#PܬN#Wz ܥI$drےD$sqۍA$rnۉ=$lv7&$gu3+$il/2$h_'9$d\#>$kU<$iNH$iDH$pB E$o<Q$t1L$v4M$ {*R$#N$&zO$tK$$rN$(gF$.a?$6Z@$:M/$?!D($E 8 $J%.$O.! $T*#Z1#] 3#d3#j7#m(9#s5?#w(9@#{6MJ#~B[U#Rl\~#`o}q#u|V#zܐ{r<#fܤ{^&#UܳzJ #Dy>"6x-",)v"8u"Is"ar"sq"%qh"55rL"MJt*"_ew "w ރ|z!l:ާa!I|]I!,w.c! r?!n"!k5!hQ e.*a dIR gfb(]xb4DBnl&u[ 9I \="c1>3)"W^k{pAn;vTv=F6& w;m]N03h,^LmHpQWJC:$'$V UW N!:"Q$o6[:rJhxZ\L: y$y@X_ N9@4_HWm?2:D GQX! l_X   k+  XBA?  F[{y ]` *~s  [  D<9  < 5> Z  FA  bF  5l  dmb ib 5:  %W Zar w}  ,#Y' C:* )Vkz n Zr  2 "%k ;ZSK u, ? n  ?Gw } G&  CSH `l{ \ g'q  ;k] t[D x ', 1 I?  ` Io ma% 3B0n eJH  d6= >zqx 6q]Y g)@ Q#' [g Piy U+&`^tv:63I9Z 3hotmLXz7 /&dW- O3a =8_ &X8j cR' | f r$8 M76  K D  T`>D xcn IZm  V}# |cy po  c@% f SvF FHD 7Ck / 'U[ z zhO /{$  f9 Iw yC\n 1'2<-`so5>B>%fDczBKUS#/.[dN|b6)jg1WrJx95Q~<z UCu~X qX oU6 <k( iD: Qfh $|bg u`5Q ]* 9<[s X\#P V qUcX ZR~y KR96 QQ  PN ,QQ msPpzy PE9A R @ Q5s9Ray{Tc`3V3)uWW3CZyJ^i\_/6d5YNi_zjIlpY1-s,\v9{@<yr}[QzV^y s+.lCߤh? U^V 6V \Q7!A/ޛG!H`@!!5;:! 3hH","Bksݲ'"YNBݐ!"'T#:B#%#^T#A!ܬt#kz3$N?$#Z $ # / $7,ڪ9?%s5zO`%;di%AU5%Jl-%OY& SFߨ1&? ]&ٷߡX&T `ٞߞv&s gxxߔ& q>Rߌ+& w2߅:& {Z*' !qs\'5!ؿhv'J!mqآa'x!U>rU'!A&aO'!4 HJ(!#%@%(!=;(!8L( "/q(!"*(3"|$(C"Y׬0(f"=׏7(w"3ׅ A("cL("GW)"=]$)"e9)"$ pO)")oW)#/xf)#9~y)'#<|v),#Aܻ)9#H{mּܴ)J#O|nֶܯ)H#Tzfֲܩ)Z#\{Y֜ܞ)h#fzY֚ܗ)h#kS֐܏|)y#xPր܁{)#H|zu)#Ksqm)#Jlem)#@b`e)#JaZb)#D]S_)#BSMY)#L[JV)#HSCM)#NOk*'" Oeo'" \dS'" o\0'" $؁W'z" <؏S&c" X ٫K&I" IٿCo&6" u:Lr&" 1;&! !&! +5%! WHR%! qeg%! ډFF%n! ڞ$%S! ۻ$:! $*! 'D$ ! Kqz$ & oR$ , 2_$$ 3 R)# A 6rߺ#| K lܖ߲q#X V Xܾߠ#+ j ߐL" t > " 4uS" EXj" npb!~ 0ޔWO![ eޯM$!F G\!) @%!  C2  j*$+  _E"Lx  q / | ߗW L<# 9:* " 9 '9P L te Ek\ 5 Hg  "q X  Sz S w1vp  Vg3  L}[ s U [N PB  '2>  v(# a ,c } DJ K  9$ ' 9 a;] |L c( >S ^e ;;4s ot{rx F* /o CQf M|XNj D35 D0 53 W3 |VT L3 H'Q 75] @\l ~=X\ yS; n 2\ h.Kbu S=,7 ,b Wfq- 2!0mh]%}O Jb!qX m@?<\eIPo1f X.5 7du 1 { 2h #NV% 6 XZkk *mvQ 0` oo?2] y$ BT@p  ( ;<RRezW3+]p?|"4xvVaE%G$(M/` k6b5 SnB)7gUaP l|O -G " 'Kf "v 5M s]+@ `A P3c ivu 5 ` ,`h  p_? `  # \ { .F   9Y3{ Pg?{ z"rK zM_g+ E$B " X61 jOWm yv /!V E[N}/ \ o ckF\o^ 2\ =Zv, I  $ @\TI SuK y kN 8{lf0 gY8 G4L ''1 D\o jl|2 L- L!=b k`\ :i|8 mz {| `SF D>4 ,m !qv L%_  o/) h$`7w<A6cK $\ wxhPep{t.(j ^+iJvJ%802X+MC[[ <'gz7L"T<3hG>W%hFT=R:]x3ofq<.^k`zH 8ߣ/ ]P 't!3Xkޮ9!lzkyra!`|3D![L%!W6!G Rݐ"8MR<"XI,g"K{b"QDDݓ-"FR#KD#6gGܞ#NhUM#P; #$O۳$j:Sۀ5$_SQh$V^$ TkB$)YMۻ!$i^&v$!]R %?g&%vmj[%Juڗ>|%zYw% Bh%(cڵY%gفIL&-;N&3d&!<&&Qcqٍ&WaX&DA?&5&  &5,ٸ']W-؋#'CBOA'YM' p~s'X O{~ߋa' hLPJ' N *'!4'S!Nؚޣ'z!qov'!$<;(!7(!J("%`8(T"Vxךݗ~;(t"|ׁlgH("A-C_("'g(#- ܺw(A#m וe(# =oW(# b`#(#C Yۓc(:$ A׫VA(k$ ;ׄ+&($ :a($) %*($R !(۞($w 9#r()% ^׽6(S% wק{(g% ׀S(%K Bڐ)(% ](%  (6& M׭ٺ)q&e t|i)& G7:(&  )'7د).'g0؁)J'[֙F)'ts('hR('$;ظ&('g ؂(' _((;(>(s׬t(j(G!ׄיD((0\D(($1((2Z@֭()vIfJ(T)Pא() \{()1-c[ְ()vbp.i()tHf();t(* o(.*Aիb(H*l7׭uN(a*tׅ*iG(*X52(*9Bգ !(*5I (+c '2+, ؾԸ" '[+r"؈] '+F3e '+v>Kt '+4T)ԥ8 '+~^ o ', mG ',7 y'2,vظu k'U,JؤӟJ T'_,|ؐe D',\ ,',XH ',I#Ӌ> &,# & -:( &A-<yD٬ҙ` &j-_م= &- mb &-8No&-Pv0ґjb&-_BM&- 6<&. '&-.+Dѽ&7.Woјt%P.ښH,%y.,%.4Cf%.]{hBpV%. #o%.K% /D^Бw/%)/K5%L/گ$R/ ۢ$t/<V%{Ф$/q9vЀk$/LdX8$/iF$/{=z$/%H)лX$/mmI<$/=$0#0/ fϬl#C0z Cܱe,#T0 iܫ*#a0 E܊ޖb#0D!rϢ]F#0p!pσ+.#0!UB #0!/I޽"0!V?ݘ"0""10ϽZ"0a"J!Ϗ#"0"ej"0"$/ݵh"0"rrD"1'#7"1Z#Ή!)1#E)7ܔ!;1#QR!;1$x޺ p!S1[$ޤ΁۾I!]1$\ޠ`ۍ0!f1$ޔ4[ !q1$ߋ |1%} 14%9{η 1b%XXs·ڈ 1%vc^`{ 1%k<-Z 1%\- 1&:R٪ 1B&s Zΰk1n&ALk1&tK/z1&MI٘K1'EJ1O'@΢ 1m';΁1'6=AWت1't]32z1'y5Xx1'<$W1(/41C(!9δ1R(M;Κי1(-:cU1(TDL!1(J&^1(DV֕'1)Ya1?)#hή$1h) Vr·1)8 oeֵn1)_ Q֋L{1) 3X#1) 4s1) l1) *g1%*4 PջZ1.*U l՜~P1D*} ΩbK>1g* Β,!31v* ~1* 1b1*d nGՅv0* /TC0* 9  0* D0 +/ 8Z0+R [hԛ0)+~ vle0<+ RLu0<+ Ϻ4#b0S+ ϤO0^+ ϟB0h+& <ϒ"0v+Y qυԋt 0+ tfC/+ 'o5/+ Jb/+#_mN/+QQԗL]/+?b :/+25/+65/+f &.+'%"].+<5Ը:.+ZXԏ .+pm.+5R`.+e'{:.+>.+-+@6ԩ-+unqnnv-+!E2H-+%-+; %,+)p.-x,+>V0ԯF,+f8Ԇn,+8sO,+)CZ%,+^M8++MZ++Ba(++ vjj++:AwԵ4+}+Y}Ԏԛ]*k+{2՝h*X+"{մ<j*B+h x&*0+&)+#=) +:2nԺx)*Tg՜wA)*r!ՂB)*2o(*1J\(*?oY;x(*oq)yK(*׈8(k*#إ 'L*"6b |'0*7zյY #' *b ։ &)1\(n |&)uMOa )&)t- %)Jڋ %e)Jڭ _%C) Q %*)&" $)31 $(@-wװ d$(^q@ךv .$(h[אC #(}>܅s #e(9ܮ[ H#C(zEa "(?%"'86'"'cW!'Zޕr!U';0޿ص!-'Urإs '^E ٘3 &w3}G &*Sv &V shu&^Q>M&GB.&6%`> q%G /B%|f%Z\uf-%6ھ $K"۰$]^XےpA$}{'b$+t<$1{]W $~ Ph#'F?#JV7#/(?o#aB#*4 # A"@@"HyBwe":ݷ%"SP'ݩ!^,ޕ8A!yn|y!KLrS!}daD !V 4I 2kGCp vx6gq  &/G M$ 0ASdtgm ".JI:2)K(tk]}XZ<l"t Hmk5Y@X)/U]^J|0W7!.K]? W *m D  B ~ a k ( )cJ :M6- oCvr K;j~; %& ".:4rg nUL"i>B :ed%" X;)\b02.5_uI`*,{MX-X+VgyTn1lK[ t |0.8MyVlpwo|i^4Xe78c g RvR2Q9{^Id@<R8S*//r'o\AKa#^j  P>4^O`iH<A !g &TbSK2`  9F0  Vd /r@Hc iH#%r5C^"m8! )a &>H   d9+j\bE~s\&Z2 < & (9CQde wr 'cn?I^ H8KX3lx3 i Y) M yB=y Z0\ u; #(r %` *Q  *E  06 ' 6' (7 5 0E A 4Z E Ep K K +Yr O GaW a an= c vy,} k e uv U pw E e{ 5 [} ) X&  J~.  C~: ~ ;D  ,{L  "~Z * i < xs R z no w +cp u @UY q TEC n ^?4 l p8& b |2 a - qZ + eO & VN  GC  9; 2 !4 F * Z " s  .e  FO  a6 ) u ! 0  m2 $ \5 + I8 8 <5 C '9 -P ; 9] : H h A _%y F v; uM Ze aW {B uTa ( VDj  81p %z | + | ?# Q; ]J me0 }@~vz M}f_ bxL@ qq0  ir `` %>PO FaF; f=g+ /gE ,Q.  ': !  /- M@ )hK =^ n _nE ~m#y Gh% V@ KFN *pz7a SM$w o- zV  l3 # ` <Y W'P 2}1?u M@5[ lM(1 \ O i% 5u1 -k~tN fSjf T%Z nQ WF :H8 D_21 j s$ lW A. /( TXVkal)\3 .2B7|FB`)|F&qKPR\W(J]qr ec)kLYSt' tw{S{W zHQ un"| n]E pktS j2" h/ gj>. cnPl az?>o ^ N ]0 X 0 V4sx XW2M QxZs T7Z W` . T 1 [R- ^UaZ b!@R f k88 n]d| nFZ3 vk4 w g vH9 7d Z.&uVJ Wo hTe: \)F PS #EO  T>R> ,au &bpC !3* + :Z 7x bh>  G o Fa r.V 4; )KHZdo~a4%Sowh#|avs&d.@E^p+mJhy>1oc4HF %Q,xX p5)5f%?;`/Y:)Mf1PrjKl6~d nMWO7}F_-3[ "54 DX [ f) [m" Cߔ=B!GOY!f!0+*ޗ"[p9E"[h"8A=ݑ9")A #X# #b=H܉#S]#n~87$_Lt$AzۦFT$wHho$ 1%ta%P=]tڃ%mB| &(WM&Mه1&>'& "''#غ.G'kFuJ'c\AQ'wC{_'Zw#(Mך@B(yxv&w(d`%(O$(71=֫5)S,O) Xl) O *c s&&I* .;* fB*!?Y*W!>ԉ޶g+!Teޣq.+!h?ތi+!xyn+"h[Z+9"^.ԨB+"L]),"51Z,".,3#,Kӫ,x#Ljܧ -#g5܉;-#i2-0$fҹQ;-W$OҞ>J-{$c%Y.$6g.$#n<.$|f.,% y.H%.qeѦ.o%BiEuگ.%_Q Dژ /%qJڄ$/%;hd/6&$|ШM/q&]~7/& 1V!/& 0&10'U0?'$Ϭ0v0^'5{Ϙ50u'>i{ع80'RIXؤK0'a$7ؙL0'n ؉U0'ud(1(di91<(μStZ1X(Ί>1({l_)1(qPK1(l.1(\1 )X2$)W%2?)-HʹA2W)6J͢A2d)@Fָ͔^2|)N>s֬t2)Z>e֢u2)c:~Y֗2)r7b3ֆ2)0Y*|2)0Fq2),3_2*#V2$*(J2:* ;< 3M*̪53[*"̢,3a*̕",3x*̂(3}*̆.3*!u :3*"h83*"l=3* *\@3* &VI3* *QF3* 1KH3*! ,DT3*% 4=G3** 6@P3*/ 72T3*5 =3H3*8 @8O3*= F+J3*B G3սF3*C O3ռA3*H V/ն<3*K V6յ93*K c7ճ)3*O f>հ+3*O k?ձ 3*O vJձ3*N yUճ3*M Uճ{2*L hնu2*I lոm2*I qշj2*G '̀պ`2~*E 3̓ջX2x*E >͎ջW2m*C E͖վI2e*B [͢տE2V*? `ͮ?2P*< pͷ22>*8 .v2+*1 $f2!*+ K2*" :2)   2) 3 2) I1) ` 1)&t1)=΄1o)"SΝ%1[)(\Ω,1O)4xο3|13)9>p1#)CFU1 )JQ?1(U`$1(^9m1(d\}0(ys(~ב0n(exJϥפ0K(Tc׵v0+(Bpf0(. iT0'!!\30'CW0'[M0'r F/~' В</a'<Ы(3/F'W5,/&'qF{/'[X/&7n;/&_م /&l ѕ٣.U&R (Ѽٹ.0&=U.%" yw.% *:U.%2_8.%<у$.m%Eѣ3-N%KA-.%Y3V-%^U j-$hn,z|-$zv\ەP-$\{Ҍ۰0-a$EҶr--$(k,#E+ `,#s^)Wv,#ӗILK,O#jD ,#܀>,"vݗ1+"Z=Mݳ-+"CVp%+"2zԓp+Q"O+$" ,+"&+!TJ*! @Մi*_!nվދ{* !b߶C* 5#A* )y)i 45ָ')' 6bI)=aj)GN?)lF~$)sWP֟(I>T(X8(_\- (cb/g(iןY8(Ek{(ts 'AxD`'wn؛|'J%}F'W'Luz&}|y&hW?ٵ{&64`w&vq&<tI&m;v)&ٙVq&Mp% e>s%CcGk%ڑnL%J5n#%\h$&Sl$\Oےk$W7tk{$)lZ$&$n7$M>p$x\l#lܱr#:j4q#PYl#$Isk#|nC#iܸ?m#&rp"w2<l"P]um"j&ݶlc"-pB"2n&"FZo" rzu!}}!ޓo!X`Dt!$8`w! |rr!FvN!}9t*!lޭYs!:q h>%p @eXp !ߌk` Vp= $6o& Rl  Avt`pl7qkNRtB2kq"qlnHM0n(vGgrma7:a gY VJ<Uk'hSRL5hMA&I&6G HC;+a?SGq<lh1n-^ZW#A7H- !8 I`nb/eE#=K&,O.3_ 7g D=z }I+[ sS@s} facV Sjm8 H{|H ;l +(Y JI >m7 e (a  uI  X- % > + -  4  (A  =G  +.UO  9NsV  Ln] g ^a `J we {5* k g k O "p 7 B2t * WCt  tXy ~ k{ n x} W ~ >k -~ '\ <~ L Nz 8 j w % >q r _h N _ -c U D 0K  #DA  >P9  U)]3  mDk)  Zt# s o `{  Bip .Rf 9[ N #C +E8 ?qDx* ZmK n$\ p5 [ =MY ;1)sF^\ =}$v*a"/>=?6Xl;rA~PGGVqJ7~4PWmSx-VS4Z.M[k9]}.L_xRk`[~b?okb)LNd)c35 cZl5cnh_[,_2`)]3kYz :YPUW#|CUp$\RWEvR;ywOlWKF<LC F vI#@u ~F>J_ x5  o. FBT( v kC &; E ?f +~ o hKJ Ok , R  80  k#v  P-  Pu x " }-c I / P  ;  F 8% P zcUht ^ |8Bv e V k . w <M z \ur ya3 ?q2 Zj R^i PQ>D Dd &6 , X LR {Xm  d{F  I*  + + e  4 F&a ; mB9u F f3 Q p Z :O f vXk' z ~2F  q ,.6W ~_@b_ 1,m  D CX' kb  G" #% 8- MR< Pq^K {r4lS @Lk 0, " lxv V `/ %=, HC' + `X y b p 6Y* :B:  xi'Q J F\ l i I :&u d9j , TL? z n2h 5p ]vR Q *9C P#a 1 "jg \U; +B[ C" FR mcz Uy>~#hn52[U@Fw7~yn6rWh/%)? Zw i7 6%g '|! 3yLM AV O=^k Y-CP e q: z1lG pwY /go l;i- Cc" U^X Z6 _VmW y$R \ZO =*K8 I%\ FEp ~C)x nQCT B9Bn CSGO,!JQbP#|fZl%|5b^Kj 1s8{;"P]Qn}}s^^apDGH @4j (y$G  2 z u H+9! Kk!.aA!7O޽|{!QnYޢ"fH ݒX"y*{\"i/`## FGD#3p`#wlI#N" $12A$ y$$ig!$+=C5$7 ۾] %Kڱ_ F%Txߥڦ s%bURpڔ %t!ڂ6!&r r!7&\ޞbQ !&5G ?"&a8 "%'3Fݰ* "'U C#'' ? #'da #0( ܴ $g(`ۄ 8$(J` i$(&h% $(0% $$)9= ,%R)?ڀָr %)QuR9֩ %)ZH ֤ && *c٭Ւ &*xM (:,e׬M &)z,5eB d),IA),E@/)-3o=*M-y՚2*-NOW**-"U+!.~ԼR+b.=Ԁ+.O7 e,.y,/O$,C/ҖX0-/dX-/rQ-/KJ- 0.*0O.Z0ф^.0'E.0V ;/1/`1rO01"6Z01$\s022)ϥ1t21΃-S12-RX123<126\231CK2Q36 ͖237@f1237@_339~{3&4<G`̾3X4@(̗  44@?˼P44JXʴ45LW ʶ#5^5L wʯ55UT>ʪ=55Sʮ\66UɨO696YNɯɩ6e6W4\ɍɩ66W /lɨ76W,ɧ<F76Z ɦ_h76Xpȩ7C7ZPȘȢ 87`uȡO87\9Ȣ/87d%ǘy 928ilƶǙV9g8gDzǕ98o/;Ǐ:8pǐ?5: 9qƎhe:.9s{lųƍ:l9tU.łƊ:9u9vƍ ;9r=ƌX;9xƇ-|;9wkōN;:t%Ň;^:}eÒŃC<:{>gŅ~<:a)}<:zH)=0;¹wiU=[;{s=;A$Jo=;#*l>;nY><h9>9<kiS>B<Alm>t<| ve?<Xci7?<F@g^?<|b?=9b?*=^B@N=ǿZyd@=x‿WS@=V^AR@=,OA>H 0A(>ỾL ZAG>ጾG@As>bD^A>DuJiA>,WEA>b:E B>Uؽ"E+B>;´CfB?z@B3?c< B??5<0Bt?p2QC?Ҽ]0lEC?़:0vC?ju %C?KK'C@B5%C,@%ɿDD@뻰!DV@ 껧  %D^@߾ YD@ߞq' `D@ߚs9 {D@lMM D@P.b D@6(p D@ DAl 'E'A]̺˾ =ECA Rߺ ]E^A6߉ EzA1y EA%px EADU EA%DN EA%4K!EA*' !EA3(!EA1! FA=#!F BGչ'!1FBH̹޽'!7F.BX޸ɽ7!]FEBbޘ5!hFZBkޝ:!lFaBvC!FBjrzB!FBpxuE!FBX^mF!FBRNaK!FBMVcG!FBF?VF!FB>8MK!FB72L@!FB>'>B!FB)4@!FB,+4!FB41!FB(!FC*!!F C'!FCּ!F,C%ܼ!F"C#ּ!F3C+'ȼ!F4C4!μ F5C3-ʼ F7C@4ʼ F9CF,¼ FCuwżw F0C߄ռtq uF/Cߔ̼d] cF4CߠҼYU `F*CߧռYB MF)C߿ڼM7 =F!C߿߼H, >F$CιF !FC@ F C: FC5EB 3EB/%$EBAAEB\W&EB|z,zzEB>_fEB஺FA>EBͺV+1EB׺WEB$iDB+ vDB3sDB8-9DkB9EIDnBG\eDWBKm{wDJBN᝻bOD?BbΏͽH7D*Bgۻܽ" DBtCB/rCAAXeCAf∼,UkCA⢼0FaLCAɼA;H&CAY4& CAY"BA#oBA<}BABgBlA\~qB]A~㨽m=BGAٽƾBB2A(ҾA"A65A@K6j ~A@`m䞾|DA@rؾ>MA@Os@@;`]@@"^}Y@~@N卿C[@n@u嶿4|?@Y@ҿ1Z@I@Ŀ/?.@+ڿ?"@ U?@5Z??py$??&>I>?48f>?J}]>r?dS$>J?mS=1?El=?pez=>%X==>W2D=>@>p<>3^3I<>e~&<|>ÍP<`>%ö<8>_; > KO;=S;=$C:=BZ+p·:}=Ljœ¯Lm:Y=]ž–:,=tˆ9=|E4~9<sr%ppt9<S)3LD;)3mֆ-m(f39ר&<(F3yb(3 (2Qߜ'2 x2>n'2 vd/b'2 ؈*'c2# ز&;2( TD߅&2? νEH&1B =λ %1O @{Φߴ%e1c wڵΚf5%61j ΐ+$0w N ς$0 JNvߝ7$0 zulp#t0 #ܢi5#L0 oXw#)0 TI#0 ; S߬#/ t!8Bq"/ V]CH"/ ݃<B"_/ ݼ/!,/ O2-ߜ!/ $[P!. _ . >ߐ S. NߑL . J-!0/-!gXz-!-޵0i-!cދG-!k&-!W5,!O,! =,!8sަr,"!{bnyG,)!<3,(!++!,]L޳|+5!h}3_+.!B)+7!P*=!X*8!8Dޯ*@!nvվyx*@!?\]*A!pվ5p.*B!տ.*C! ֺ)E!3!8־޵)?!hkkֿ}k|)E!ֺL+I)B!):!R(A!EPޡ5(8!vv`(6!@8!(7!W'2!"'1!,L޻',!\& | k% b& 1x% Z 5%  L% 9 8+߯% _ v/ߔu$ z '9vC$ RCS$ xD:w$ 0S$T$ eX%$ _V$ # n&# = Du߮# f 6w܃ߊu#v m܏qv>#j ܠF+"W ݯ!"M 4Sݺ"<  qlZ", 4 ߼3,"& P ߦ " e ߏ! ?8r! aVa! u Pds! 15L! !#.! +   ;>  qHIz 6 |^Ae V t * t "߂~ s U%f \ [JP P 1& b> $ ?1  $ B  _   Bf 0 i> ;  `K 2 /` 1C s [Z  PwsR } Y Rc I G 2: / i8#  `\   8 a  :* > @!V $dHe ,mk }s4; DZC <LT4Cel~hk7T0u[!$y|~Kve5uouI]iP8td1 b^Y=2W#Y6UZKV=yJ)xbFN8@R%n>,v:>87:R3U5o3v`2yg.bjP1KI8.*-1K40BZ2ha|44m8a:/<8e>1EC'[FC|Jt],QQ|^Rw0Ydr]MF!c.=j!apZz[4Y0{Qmy tcHVQX}1ddK ",B7.3N4#P}[r`vOwu|Jd)  Q M3 I$\ u2+r D5 8=U Ywen sQu}1 [ ]s !G :h H1 Z { n M *N D J( 5 v u) - S ?B * Uyk  r% ;  Rl  3K P _H-  YS  5o   k y '0 ]j :Y /Y Pd N `F @ o( 0 Xr ! "yc v JQ C  7e  %7  :3  "{Oh ^d4 -{W x F  b [Q R jtw @ {M{F . vl|' a[  O. > >  _3 12U hI % ]X )y w #kz ^ 54J F Fe| * ZK  j5)  u[ rc 7+iG S;^ ~QMm aDP Au7*  u(p f F O E  3 |i H;wn% 145:J >[\H|.snUYLr[v5{`dPHn)6w #~? ~kBsjl_(5.H8d4; xC>| [A^qFD*I/q:P UOW:]]"m?giqv.zglKXIwlF+o<wh2^`$HX%9S4$JN Ad:s/ +c"FN]6#~p-W3 <9%0A@>EPHIaUNv/aQ>jxSPveWiUwYxHl[4dZ]!KI_5:^$__#^2, ^GI ]X_/\cp=[sNmZ[|_ZfqNXwb5VW&tTLdP=LL/;G(%&AB 9`2w+ -b"EK V<(g&2}{:n@YH EO*6S;[R,bh7eyEzl>X^qZgKtqw6xan{ Na~8TC~ 7+*:~M+~ Z=iU~s&z}8lj{PWGvjD(s5xo"^kIh2:dG%`a]sY#qU1XP>(FLE92ETQ>`g8j zx.x(Z$CvEYl.t` VkQZ FD/?3=:'N 2d),t0&; k2HSBT?Wb!qt px[g:DXO5Nb&@ y}3 m*\C4,>P(_7q=NZdpruc Oej >NZ5>L&&:-" *< $V,1k=:QrJl#TX)>ua0'_p8 Hz=9 Bz) Ip1Mi =RcOY[a_Ro-eNBoDsXx<^l7Ly-1lj%S_>S"F  <. 3> 'Q#_0k@ }Vz gm y^{#G`18JA#0Ugw)4k<M^J_OWw}=ik1s[$~xCj.aN->#?0 >Tbozzt\[!AF0 .68"GRXe-#oB-'wP<-jS4wi9jt{@_\yGO>]N@%JT75[(b *h:p Q%w]2}lBw WwpeiivT~a!>jZ+,YS2AL@+EM?T!7a<0jP*p]'#yq;L}yWyjjqW{hG~d8oY"ZN IG78!*-;#"P )j". x/4?:m S?[_ENmK@R+y&Wl*\]5bJ=f<Ej.P2o[DrdSvlf zwv~|#xy2|js?w]mIwWhTqIabn=]kl7Xug*Sb!{Q\uOXlOOeOJ`MFYN>TL=OJ;JH!8DF&8@D'7=B,5:B/38A127B3.8G6(:J7'>Q7C[9Ib9Nj8 Us:Yz8]~8c 8wg 6tj 5oq 3ew 3`| 0X -tH# ,i>' &\.3 #K= < E /P "Y -_  8d  In Or Zv (k |2u y> rmQ ^c b KZs 4L e?" Q4)  ;)1& !8=  F Q O 0 U " [ % I g 4:^ m F\} t k^ _Eur 8"n l[) OLIV :?p~ #um/ =:!  (  1QA j?vY YGn. eX wu} )_^n OQ>c mBT /XF $A<0 '3X  y { (Z  U// z v>ON/0cdBrPjBct:ste~Zj{LBm9@#^M7Zf,I"k;5T6Q 9$uz \ ="?/e!:{-sGA<LSaL8[pQ!daanlStp?{(~&|DxvTrle ha+`qU>YbLROD?wF,~0?p+7Q /=*. *%< MRet)y-" B*lT5cZ6UpBF ~L7}N-nY!`_RdLjAo4s5 t(!}#${%$v&+ w&-o'1l'9i'7 f&= b&@_%>`$BY#BY"BZ AT@V?U9R8T3T* U & SVW T XV U!Y )W'%1Y,/6[2)u z.G ]  [ Iq )g Q !&5 'G? ,iT /o X3: 'c7] H9zv +<BR ?j:  B# k D% E G: - HH  J-_  LG"v  M\? k Ntc| L N^ ]1 ND 6 L  J(  IFH  F0rj r DR Gd Ck )N Br 2 AY  @-F  @H2  ?n!  =7 b <O = :&r | 6C ] 2]1 7 -jn y ' O I ".2  Y 3~ v U Z ,zp 9 GN ! Y3 l &o )>\ M]B %h e  > A ) # 7 CO8A \dMe zZv. Vdc 7lP 2x8 X ( |s7| r]O e. r\ OP+ =DC 0Yp"z qW;  e UP(H$5+9iMGHrVv hQs6$7 u5beE*kXRNBDf e0{ |96gtLjX7:0!`J #K^mk?Sw0g1k;l]I@J[-;hK+ws~qWi@ Xh @(J<'+Oi_f3Nw"*g/9S@hAN;h3XVG#hc vE vH"cz49Qq`K@Ai(A rMZ ~Dc?3m*,L8G. QH[h<)ioCZtQ;`fy, gt9X_cOFB.>Q& @5oh1@\b(Z/-6o>|yH!-^WNXN`m{q:mP; y  i#=Se5=dJ,X;_ |z"Cl Ej}Tp|TA(a62/B=  J/ UK fH #fxt 7zC DmL \T; p>2d |,z_ Sd [-X AJ :". ,,G "73b I^ eVw {Od Q%z {( h 1 (RC ] 54q ;}o DWM M%$ U + [?* ! cQH < k]^ L nm k vp }wTs i9[ O=z 6#z! # zC {t #z{& 9^~@ N3] n~s }{ rb4 [P~M MBa =/~ $r ~^ {G s!' m ? #b`& 5UE CJr_ J=W~ Y08s d&[ lH w/  {& v9 n Ted%ey8w^0SZ[AbA_Uw"|_pfbkSe-TBiQ9*ln(luqXp Ir6w#!y8-H7}_Dt<PgsUZZXsbF/wq2 Sx";*~ zRq mo&le*AN`8U;\Df#XUsTg `Pv#JQL`%LuGyM&LQ( PK T94h W^f }cXm TH\U 52]6 a a(  f I  k.z?  vlHP  Uuij  | S d. u) Ie j z!+ [ 0d M "4 AS iY 1 wx ( N~!  !gO  Ey* z 6K X ~ ' g  =   .A <  CS[ c Uv 0 Z{k VG% k2a V` ;1  #?$0 mUG x e ?Ut 1. kB2  TXfS Bi| Rc, k    P WB 0 9  %5 Z +J.n N ;Z`r N j :V1 M !s 3 Mx ! 'T   ?& "m:6 z>uH ,`eh D zf |P < @}[  %? S  )3J  4 b  7O h  (J [` ?$ } T V= ] !" v W}GB  rds  k_K ^ D / .4Q  S o'V Udz,*M,G)4U?mqaefmx*b{7>he O|ZJP& @]l#`0pUq#' 5Lj|N  _.  K*+^ .bW <) D`5 *KAs ]S]} [B4 baP f}y ^q@ u Od x^c ;w{=y:f{9s+ phWImxWInj,h1e[gRF$b|fxc/7EgJc,he1Rk,4@ns:Zv~XY|F}X&.{5l4z|$NvV_vo&xkm0@-fV)`4X>PhO ENh8lC//*;"=|>diF:a}#E B>lgrV>a'eC1ANLS'c^K,reSEuJaPE Q߶  C7 Q8 6t Y 'oO u P(  &m ( H * ` 5P  `",  TA !W 8 !s> F!~[ޑ `!aSޫ  v!H ~ : !+dM !cLu !wE? != ,% !!6 .!!I) V!!c_ !"bv !"c@ݍ !!"d3 ݬ "5"E)=":"(Uf"F"ݴ"Q" ;?ݨ4"_" ݞS"d" ܛyR4#m"u ܉ݚc#|"\ g܄ݰx#y"B =r܃#"$ Cr #" .t)#" oM$" f/$$" ngF>$" RdaW$" f݈$"i ldݦ%$"J \lU$" 1s$" V s$" +ڂC%z" ڄm!;%|" ڈ݌HK%r"g ړݥg`%m"K ړw%j"+ ]~ښ%b" Enڟ%^" ,dڨ%R" Hڱ2%N" >ڷJ"%@" 6qN%."z ݙr%""W ݻ%". Z %! ,&! 8G  &! Ps.&!t iޢZ &!L }s(&|!0 َ(&f! a٦ 6&R!Dٲ"8&F!7=5&,!eB&!ރ <&!n ߥ%<& F+D=& L`4& r(x-&z {ٞc &H Tߙ& T; &#%"%J' % dG%ڊq1%d{ڨC%N]#Q%0@+e% 5w%C$%sPJC%`hx%jqKzڭy%<HDU% -)8%`D%ښv$Fk $ :1$K1$ab(($yۋI3}$fۭd8j$?@I$ Z L5$=2K$rU#l(ܳ9\#2SeY#>_[#>ܔ`##I`")'Fa"bub"mmݪdg"<L`:"#e"Mc!{7^!aOha!$r[x!h.VC!6ށP!XF XF< ߄,* GZ!';7.L3` (j?vd8 ys/+E5-CzGiPKh+^JNuhk,n /OCv3,nMBh&Z)Z-@>vf@`S Xi,;x^L~b(-)O 26H5 :" d  <Mhz[ F rEqYyZ T" ZQ)k B  &.pDY LsM ~cf~]pl8xM_0e" [\;c+ J F\ uE} <QwJ x/D Q:  !]1  SF  78q  yhe  v^p _g ; ' f ^ %,8  gZi pL v= ) ? 6 26 yy= j-[ ;~} J7l KDUQ 4h )1 B m!  Xk? @gFm Irz a  Ti3  I)  as/} PFS< p  0[;}  L>mk z dM : kI   0 O> K : f te m~a 8 o$h 91i P uj|.22Qktbg|XYe0SV& Dz@[w2lzJW'Bzw86 iU c]>( P*  B  W #7$ [I$ %}XF 2*ZPq/TEvJnay);{<nPBHgVblQW( $}(DDJ QcwU=wP ZO' A] ;wNSdhw{{S ~# K`L k38 'D#E!w~!d7# "#*[g";vxݷ$"X܏qs`#lWge#.IpF$1^P#$ m%-@UC%Xvٍ2&@gwf&vmMG'@ *? '  (=@ M(ހ{f!(5gY׸!()U6 ֢#"f)f`ֈ")Ve-#^*}q;#*G+$[+ x]:$+7Ӹu\%`,\mreӏ%,c ~&h-MiA8 &-)*i 5' .vش '.A'Y '.* M(/+x׿3 (y/SiУe )/a#Е n) 0}W]ֵl )0EK i*0f,; *T1r h+1PG +b2@oͯ U,2be ͍E ,D3y^ [-3i~8G -3@%2 .U4 x  q.4kD/ .4*T .15*Ф n/5BakWʵ /5WD3ʚ 06y ϫv06G?R:061lF1E7tml17<72-8; ͦǺ 28\%LJ?39alv3X9h̅Q39e .*496e4?:!˨4r:Ln4:0 4<5;LĩNh5>;ciʕĎt5;y^'6 <U?t6F<4[Ɂ6< H7&=3ȳ/7y=N9VšN7=f{^8:>xǡN8{>gWj18>G+9? /K9:? ƻ9f?+ Rg9?T "9?i .7:'@ ŦeH:@ X^=c:@ &r; A ޒ];kA)!^phޭ;AH!M2޼;Bo!7۽y<xD"i=mM>D"7yu>D"^܈>BE)#t ܏>wEL#l{ܙ?Ek#a*}ܣ]?E#YVܬx?F#Rv׹Iܰ?GF#ON"ܵ?F#E*pܽ?F#CTۻ?F$C(@F9$:˿C@GI$<츿ڸI@3Gc$:즿x@dG$8nyi@G$:aVJ@G$;@4-@G$?@0H%@ʷھAFH,%Eݾڷ4AH[%J쿾^ڷQAH~%J젾G~ڲhAH%R씾$dګqAH%U?ڪAI%Xa߶1ڣA*I%`gжڞA9I%eKٗAjI&m7ُA{I%&t<وAI9&!Y{AIc&4qAI{&.bAI&SPBJ&-CB(J&ʵ1BEJ&ォ!BaJ 'ؽ-BJ1'ؽy BJI'޽s.BJc'ʽM5BJ{'սF~'BJ'*ԽEq1BJ'>ν Oػ,BJ'Kؽ$@خ(BJ']ڽ2ؗ"BJ'u ؂BJ'lBK (PAK.(4AKG(ڴA(K\("ܴA"Kx((մ}A:K(*1dA:K(=HдW׷A2K(WMCלAIK(o^+׊A=K(jȴ)uA>K(~YvAEK(DmA:K)Ŵ+QA9K)˴ 4A/K,)ѾҴ$A0K6)#ִ@KG)Eﴯ֦@KZ)p2@Ko)\_@Jy)}7t@J)hQ@J)﾿(_8@J)ֿ2Z@J)69@ֽ?J)N K@֦?J)g/U6։?J)Uk%h?J)jr#N?J)/S?aJ)0?TJ) >6J).ֽ> J)]OՋ>I *e^>I*F=.>I *_=I*$ =qI*!D˜ =[I*Ay·լ p=8I)*eҶՍ T=)I'*t %= I** P 'eVV؊0>'Eϛsm0O>'V\0>f'&¯30=<'#y/b='rc/=&0(.<&F:јU٩.7<&fÀًI.;h&Rİi-y;<&LһF-;&-Q-:%G-:%)ӠB,?:%a^, :%(z:,9o%EtƦڬ+l9J%_4Գڗ+'9-%sud+8$a_+n8$&EF*8$t{+[*7g$Ւȷ )-7,$H)6#b%3)h6#:]ܶ(5#X[:ʐܝ(5]#l~ʴ܋>(V58#r'4#6( ]'4"ph(Lr't4"طW6''4" ́!&3n"@S̨&3B"٦J&$3 "%2!$.oH%d2!5ͅG%1U!KYު$p1!`G۾ߚ$1 o)I߈4$0 ۞ϐt#50U JϾf#/- ?YX#/ܙ$I #?/I=".C$r2".twѦ$P"X.B". !-Pt?!W-Ҁ>!,d 0Ӻ ,"=ߧ  ,!Z< +"߇ԙG+A(5*0`*Su*5],*;Փ)PAHY)FwrM)J"4(O6b(R"y׏d([UY(V3:'UPC'S&؛&:Oxi\Z&IE%E;ڎ%G?T%9 *S$6R]$3۞($?-5#+^2#'ATO#" #jݯ"/%n^"iI~!+ޑJ!J/! M6 YqߛGb <XMDPnzNY,o\1bpElsXyG-eH7H*4PPJ@m&&=<K9mlhA@ lp(x0HOV50/ t d^-#S=$( coDt}VVu@oQ9 }D- Z? O >: -O  RW// rU~) a[u lTC8 R-U 5/   m 7 I x1f 2 R3 DTh Z,, Po|c,Ip%Zs^Ccr1gZ !c1 mPuA' s}8/f$cer7+F-3 =-* DFe KN ZLV, ` %hn _ po\ +qKx  zC  }p[: w u = 1n~  N ~ '(]  x_*  6R d + $ T  D~7  y>J ~[   7|  Uu' Q{{B mw. @xn mp5 laF h+nk yc~3 Z8^ &YXBYQqNe%RL%K|*JASzeAJP<3X0I]]*wl0#@' )"d Uo) (KQ '}: f P "2  V3U u .N? ~`  4\ &~j ].Q~ 2%7[ :(?DGp$EnrhPpu XDMFXb1J\fZj`>n %INsfwy-P x);R|1i|`6ssKik(3kDb#D\_XQ+\aY:<V ;YUMY~&*:UgXK[k[7VB`Y%LNW[ TAHUz>&pSo kT@&.Rl_z V . Z2u k\D I8g Am}Y!DuU!Fހ\!}4n݇2"uݏQ>q"nwݓz"j]WFݚ"b ܟ 7#`ܢ3 d2#Zqܬw u#Qfiܱ  #M-Hܸ X #A{3 $6 *!T$)Gޓ !$CQ4 !$ "$%%@ݺ "c%܀)W T#%pc8> #%K $&YB p$A&Xۛk $&L iu %&TلT%&t{ٔO%'d%ؤ%!'TQصE&N'A ٓ+&''Z''Z(j''WI'5(wף=w(z(!gqV ((AwzM)(xTt֔))b-֪)7)KկdU*o)1kw*)%8`*)>/'+)!+*PO7+#*P,E*Ӝu,*{Z?gՒ,*^Kն.F-*5p -+ !-.<+ѱ+m.k+b-tU/+Jw7b/+}},ԑo/+`f6Բ/ ,=M0.,&Fu0C, cϱ0g, 1΁%&1, k>'T1, }Sc1, K ӌ2,c Ӱ8h2 -= d2?- #̧H3g- ̊7u3- g2cb3- ;ғHp4-\ jҳ4-? \<4. 0S51. bz5A. oʾ45O. 1ʚ\6y. ~{=E6.u wћ~6.O ZGQ6. 8<67. "7. IWW7 / Ќg J8+/^ {ߕи 8>// Mǹ !8Y/ Ɣv!C9w/ kޯƆ@!i9z/ %p}i"9/~ \ЕS"9/\ Zг"$:/> [ݿL"e:/ {5 #:/@1'X#:/$P# ;/1Њ$e;/b{г?$;06Q$;0/% %?<0ڡXQ%o<%0vϋ%<'0Z)& =@0"½L&2=>0ٶ&e=E0]|³H&=R0 H°q'=P0"®ώ3'=T0]ªϽ'!>V0*Uؽ'X>^0 .؜ 'k>Y0{<=(>Z0/n(>d0}cϙ(?W0M)G?^0֘ `)z?a0}s:)?U0?Bk)?\0wϣ6* @Y0H߿e*/@W0(ſ*I@U0F՜*@S0p9*@S0iZ'+@G0:φi+@L0gϨ+@D0Ha + A60 (޾+7A:0$(,HA)0өJT,gA0Ӈπ,A0eKfϱ,A0?J,A/: /-A//a-A/Lv-A/r,s-!B/{>ͽ-Е-9B/_(̽8Э-6B/DҼJ .SB/ѢL/._B/џ_ K.hB/ђm,c.tB/ш~W.Bw/^yt.Bd/{R|Й.BI/O'x.B//'i.B/y /B.l3>/B.ePL/B.r7jb/B.gHъv/B.hjXѣ/B.SnlpѶ/B. /r?*Ѩg.B?*#.*?l*+*.>J*?3.>*ZA<.>*toB.w>)Ѡ?HZ.@>)mO0.=z)!ŸT .=F)fW-j= )N\-=({O_i-<(WÃa/-}<[(Ҭc,8<'(d,;(@!d,;'j_Dd},;'ӕbc[,S;'ĉb7,;`'ŵ_,:6'H]+:':} Z+^:&y>Uc+9&+yP++9l&wƮJ*R91&GB*8%TA9=*~8%յz2)8c%1()7%ր[)W7$-()7$`(6$?nɑ(r6Z$mתɸ}(;63$:(5$I'5#"؋G'Q5#"axu'4c#0P'4 #? ٰܻ&4"K^Bݭp&3"^٩̙ݙ%3B"p6,݈%2!ڛ(xA%)2!we$1f!XۍηU$J11!I@$0 E#7#0 ;ܢY'#A0 uk#/h Bк #/& ݦ"3/X ".dd"Z.t7 Ѯ!-2KzVW!j-aE ,}pߊӣuS 6,4 _+O=Gt!+(՗**K,B*|R) nLb)8y)r/x׫](5G9(^7#'pR[Jq'~جg&+ohM`[&E6%_کP% ? ~$nYZ#{2hܺ@#TxT"irF]"2݌r!LhY/g!G!F$@0| ߋ W uN#(,kpEsR"[QV}p$H!XNA<$X-+&46}I$R: L2bdaJ(~jxfQfgo \)I Jd/` T &X:AO [ 0? HDx YOf# ~ x'x Rmmd\ eHEA9 K5%>u  S kLs   )?[qwO _ @ T+}!( iDQ % [qh g` d YGFYc 71 FVx$ma  bo cNw);-6 =+SKz M]eN`tm;wIju-1-ovafgDoY?Y!hIei@#5^)CzB!d`2 Jcpf-X$3\NeopD^c_j]9f)  0& cB pG   9$ L B$$ H%} * W% $D# rUk `3 = { 3% - "Bz 99@tp(4Vc1o59 w7rC^^J9'P/IK[vfcBo7w5 gYa P /, h>n u\w 1n-)X\NcGf H,7- Z7&Jy(UI]8oW9vHka6 5}jW]1 r%Pt,Sd^(?=j!YK$ &0ifvf>ANh!vlgo/-2 ot ] Y^s ]>+!"2fU!W#ހ<!9# !" ݻ@"tPa{"|m.w">H"J܉'1#3%i#J(#R(nC,$):$%ۺ*|$zcYIu'$;($#$"%g kV%H+ %ir%"QڶJ%nq %:&1L&<{ٓb& uK$&1C&F]Jـu'\8->'sr'X Lxwߊl' O?Y[' 6 F'&!ظ4(f!>ׁޯ"(!fU~&(!9R("^(E")שx(}"WKsPz("mW+(#>^(i#J ]{.(# )$ ּ,)n$] ;bmI)$ gf) % hj)<%> ֨ژA)% o]T)% n7$)% c )&D >Oֿٖ)Y& _K֜`)z& ?c_)& 3 ٵ))'s #p)K' "֍)',g3ؗw)'D@*>(ա *(QQ*(V 2* )i *4)2դ֠0(*~)o^ $*) X2&*):%**MqՔ{)*)*cN#*Z*Ճ !**3Bժ(**{O [*+A *c+Mo~!*+,4%*+ of*2,sզ["*r,Մ*,*V*,Xj}{*,QQ)- )B-֧Ҹ )p-b={҄ )-k,Y>t )-3 ! ).Q=ц )2.>P־0 )d.Znѽ9 ).j)Q ).7w ) /1ָБH n)i/ֆ5 e)/c S)/(S5Ч @)/ bJ 8)01 )0 )G0CO֝Ϙ )t0 ׃]d (0e (0$4!ϩ(0_KZ}(1`$(V1B~ׇ΀w(1j_2od(1,D(1i`2("2d"(D2ׯE(_2O؈͌'2%aN'2T3Y'2 G+A'2] `ͅ'2 tX'3 [v`'R3>!ء̜)K'n3}!~]-'3!LJ~ '3P"̊"&4":&%4"O;&S4V#Pُˀ3&4#kvC&4#%bܴt&4%$o0˳t[&4f$'ˇGI&4$V .&5$&!5%Vڑ&65B% ںʖS%Y5%+ږ6%~5%%?o%5+&baRʪr%5&~%G u%5&U%64'\ɧ|:%56'ڬN&%m6'چ%{6(2}ױ$6H(nUɋm$6(7@N7$6(H12$6(f$6:)Vzȳ֐}$7a)Ȇf_$7)?F$;7) ۭ+$b7**Fۗȸ՛ $m7i*܁sG#7* I#7+*=7Զ#7H+mVȑo#8+w4"~#8+ l#,8,#ӿO#D8M,dܲǓ~<#Z8},ܜt[(#i8,ܔI- #p8,܀"8-&d"81-N*eǺҖ"8]-@C|U"8-Z&:"8-q"8.<ќc"9k.xZN".9.P(3"I9.ݩ"c9 /> ݐЫ "}9C/d }ƨЊ!9n/ vxU!9/ 'VM,!9/ ;P.!9/ LM!9 05 _,Ϸ!990Z q,ƽϖ!9J0~ Ɵmr!90 [5^!:0 > O!:0 4!,:1C Ξ$!E:K1z ޭšv![:w1 ޠpH f:1 ߊ> :1 n :1 -s :2C 8Zͬ :C2d HJŰ͏ :U2| SPũx :f2 c:U :2 q2^6 :2 {+T!{ :2 &j :2 a :38 ̸L ;.3] Ļ̊@ ;Y3 đd3 3;3 lD! 2;3 Q M;3 ߤ `;3ߦ [;3'p;4B˰u;44Zˠy;54f&ļˏ;V42}Ĝp;h46qēc;w4Gr~M;4Nhe-;4WSG;4fY5;4kA;5+v.;5C~1ʳ};&5Xʙs;P5tĨʃp;V5 Ħyf;f5ċd^;5T]<5wNO<5j5UGʲ!>5ICʽ!>5;,!>5.!!>5$"!>5 !'>5  "#>50",>5 )#"6>5 +;"I>5 ݲ+,B"P>5 ݬ'8a"c>5 ݉"Fz">5 }P">5 ov \">5 TSg">5 KUn">5 >Ky">5 07 ">5~ #:ʆ">5u 2ʐ">5m *ʖ">5f ʞ#>5] ʦ#>5V ʯ&#?5L ʸ.#?5E D#?5: e#L?60 ܫv#U?6) ܥ#l?6 f܀#?76 Pn#?36 Ab#?86 7Q#?E6 B#?A6 8 #?E6 7#?I6 $?S6 $?Q6 '1$ @[6 ࿗/F$)@p6 ׿6[$1@l6 ۺA{$`@6 vۋiI$@6 VveR$@6 @VT\$@6 "5;b$@6 7j%@6 ,p%@6 !w/%!A6 վ}4%*A6 ۾ɂD%0A6z ڹ Ɋ`%[A7t ڟȎj%]A 7o ڞȕ%uA 7g rsȜ%A07c VVȠ%A57\ <9Ȩ%AL7U " ȭ%Bq7Q ཈Ȳ&8B7J ٸsȹ/&VB7E ٛWȼY&B7B b>y&B7= L,&B7: o<$&B77 O&C86 E&C82 3&-C8/ &EC68/ ٳ'ZC68* ؕ'C[8* l?'Cs8( ?X'C8$ dr'C8$ q?'?D8" Gا'gD8! 3ؑ'D 9 O(D>9 "(DP9 :(E^9 ܺV(;E9 ׾mn(JE9 שk{(gE9 |ׅF(E9! W`1(E9 GB(E9 4'(E:  )5F7: ֽ)LFR: ֕S)F: >bz)F:! vB)F: P')CG: '֜)rG#;# *G-;! V*GZ;$ )E*Gt;& V* H;$ lf*$H;' վL*bH;( bՋ,*~H;( X*H;) *:*H,<* + IJ<+ ⶯/+EIi<* Ԏq`+I<. P=+I<. _'+J<- =׵+FJ0=1 ԛ ,JH=0 o,Jj=2 MG,J=5 ^i, K=5 Dr,K=7 {Ҵ0,WK=8 Oӆ,K>: : D,KT>; $-L>> гxJ-ML>; ҒKo-L>> qH -L?? 9-M.?= Ͳ-MMa?@ ч8.M?A A\M.M?B .Cn.M?C x.=N@E ZѲ.ON@F Dѥ鿺.yN)@E !b.Nc@I 7/Np@I )/O@H ٰPS/BO@L О*/O@I ph/OAI N8׾/O@AJ ۯ 0EPrAH ϩ|#0cPAH |]\0PAH 0PAJ r0QAI Qخ0MQ0BI -ϖ0uQUBM 0Q[BJ W1QBL (b>1QBN RS1RBK ܭ4i16RBL yΦ1RCK Oe缷1R'CI Z/2SC? f+2SC> I2 TD; 5ګѻ2:TBD> ͯ3fTND< ̎ 3{TgD; y33TD< 9mS3TD9 !U\3TD8 F3UD5 c3QUD3 Ṋ3`UD- +̀3U+E' <4UOE% 54UVE 𩕺O4*VE j4XVE p˒]4|VE h{D4VE ?T,4VE "$4VE $4VE 5+W%F ʨй%53W0F Ǩչ>5QW6F ʒ\5W_F u |5W`F y[5WqF e6~5WF 5p'5XF d15XF R:67XF ɫAC.6eXF ə1H46bXF ɐ0OW6XF [Vj6XF Z Yx6XF ~Eb6XG i"i6XG Qp6XG G {6YG 1渆6YGs 6#YGe ߦ츢6!YGU Ѧ"7CYGC ȴ)7GYG4 æ<7CYG# ȧY7iY G ȕa7aYG Ƞq7lYF ȇ 7Y G wȂ7}YF k~ 7YF iy)7YF Pt 57YF KnA7YF KȀ"Q7YF 1q2d7YF 5@u7oYF -Șd7oYFe ȏr7hYFP ȫ7IY]F; ȷ7JYMF# Ȼ7;Y=F ̦Թ73Y F Ѧ7(YF 8 YF ݦ 8YE -7YE -@8YE 9M8XE %Y]8XE 3~v8XzE~ J7XREi x˺7{XEL Ȕ7VXD- $7+XD Y7 XD' 7WgD"/07WBD+AʻA7W&D9lV7WC1yj7WC?ȓ%w7UWCEȼS7=WChJͨp7!WCVW7VPCA_˼7VC#rM7VB{ȃ8|7eVBȺz*^7V`B ʽSQ7UB?s:7UA}ȆQ7SUAWͪ7!UDA7Ͼ6TA! /6T@]C 6T@*Ɇe6`T@6ɸ264TH@KҿP6S@`! h6S?nPD6S?pɝb68SF?GN6R>'1-$6R>ɞ6,R.>J5Q=8ZXp5sQs=z\Ÿ5Q =Ko5P<+acV5{Px<ʥ554P*<%5O;26<5O;mwW4cO^;3˰}4O ;uIŖ4N:\r]aŸx4lNc:0ͱS4N9(2#4M9˝<3M9*$4w3L8od̥Ǩ3"L8BS3K7̘ 3%K&7 52J6\_S2uJu6Pǵ~2J6nt&ʠ}2I5Vf^ʷS2hIv57϶'2H5 2(1H4΋u"1BHS4FR1G3΁n̄`1>GZ3g̰,1F25Ίu0F62E=+0}E1Ǻ^b0D1Q,ϒ0VD0M /C/;d3/jC/pҼs/B%/VKB/zB.Яlg/"Bm.ш.A-_7ьFҷ.7A-5oz.@%-gF.X@,;-?,&ғ7p-*?+xaԠu->*>s-=(*Ӕ"-,%=)P(ò_,<(dפ;,;H(:Ӏ+E;'"h+:Y'Zy5+>:&ncJ+9e&fك +f9&i;ڭ*8|%6Cr*W8$ s. r*7$]ȯ8)*D7#f)6V#eB֨ܯ) 6"4TʓC)G5!*hF(v4;!B߀(3 b׆̻K(3N{ 'X24/ @'1eh΀m|'R16z1'0>؋ϛ'D0<&/YمЋ1&,/#eL&.وт&+.4X+-%p-z j o%,ڇoF&%',3E0$E+ZBo* i$v*շ$ $)ܐhh #)-nmi2 n#Q(1ׯ 6#' v6 "/'s9"V "&nݖEw w"5&vڹ 8"%:ݳ[ !%a.7 !$h޶Z? t!#Ut !+#Z *ݶ "!SP !Fߦ0S  av 4 Cb! p} e( 4 i  R+ 1 T& F cg $ IQ[W :MZlS, 8de;u^s1R*u8zS_ vE'YkI+MX#1C6<7|~ ru^aPuQX %YFSm/ AT1RbND{ B7pgWj  ,H _Z S z[; H6  dc L-XQ Of$ 5-R sz& \X" .* ?G /y: hmsh n%2# 0& 7I\gvUtz ^'D98  .2_%o_aW\?Vs6.9L+39[,,t[J6 I 7D&D>3hBN@3?rtfi,S&%;D;na{k1\)298ldW b4)Z l>e # FT r ,+ \- ^ B m or5  _.TS  3v" M~ Q i o J G -.  :A R {W V  5 p5  ^R1 [ v4v x K# \ B? f6 sJQ Hb ߕ 4 z w)9f  j7Z~  h^J  ]-@]  48m! &6!u Bh!a k! N Y! 8 I#!5" #"G ݴ%G"R ݢ X"l qݍs"u a݋'"{ ^:y5" B"l=" .mH" ^S# W],# Qg;# Iq9R# A|Qn# 9_u#u 8z#i y`*#a jW&#W XF'#O H2#J :-#D 3##A ,#? ##; %#: #8 #6 #5 #4 #3 "#%#1 (&'#4 .0*#4 386#3 >D8#9 EO@#9 OWE#< ]jM#B gsT#D tXt#H fvd#M keT#S uW>#V ܅@)#x\ ܍*#kd ܟ"Xf ݮ"Jp ?"6x /Y"'| K{q" iuT" pq9" hX" %_9! .W#! -BR ! LQH! %o`>! 8B oD SD 4-K ;gJ ZWM ~%iQ M=Q 8ozS veHT 6$ W ]V /aW rI8wZ hPW hY HY 32V ICW ksxU nTS 1f  g:;  B q )J R <T 6 J0[ ! TEd  cdn  r"us  }:|W { Zi0 s {V wi FW_ *.-S W J zu A &M 5 F- - #^ $ /w{  <e  E'R  L;9 XX! bl jn y#~N 8,s2 U5c xAOy %IA] AT2@ b_## }gy qe {M (> x 7/ n N c c Z s Q g D #/Q < ,E9 2 7_ & Et  R \  \$@ g?) pR sc zy ~"r ~+_ ,6yM <=w= IGq* ^Ph sV^ ^Tl  dEP 7j78 Jp,! `u s{ x ~  g x 2\ t <P n HB j [5 h f) c !u b .j b =X` I ?d _#e t, g ;tj J`l )TUm 6_Km Gi=p Ur4p ^y-o n xt }}ps  nhv Y[} ER !}1F 7t8 Tl- hd! }'^v BTa  QPS `NE t E3 E*z Ak  9 X '7J /18 9' 6A  LL l"V ?`f WjL tr-0 {j7 Y}@ DvO 4rT ,(m] =gj Ycu h^ ~zqY 7cRT LT6N gAJ "gD -M@ I0< tx8) c78 I4L  '4^ 23k >1z  Tz2 - hf0 C xZ|/ a <_/ !aE- B(+  )*  (C 4 -&` _ K% oq^% \Bs# HW$ +A$  2" (  # M " n !- !eO C/l c  hl F @< { o > 9 @O1 X eU xy  oob  cYM D+- ,-hA:^ZY _ e4<Dn$x2:R*mM+`gTKyiz2[M @/#)@$Lf&1|)ibT*%/-c3/Fg81sg2<3q75JZ45*uQ6u8hp! 7AC8 :)W ; 1 ;i5k =~EP >H A_(4 A<UV C E@^. ECL G"h0 G_ Gb* IRnM I+;o K  Lf- M<Mt Nsj PJ' ST)b S&[ Vh XH5> Xf [y. \vaD ]L` ^uې$|ImP$>=Yk$>!G$?u:$@j1$BL$BH $E;$F%$G$$ I($I;%%IB%-II %9G_:%DFڶcE%MEڰnL%RDڧ}e%aCڛg%fC|ڛo%hEvڑ~%uDqډ~%uFmڋ%zHpyڂ%Gdr~%Idm|%Hfox%FW`u%DY^s%AR_v%s% $>v%7u%%Az%;%9ځ%zBڌ%o =ڒ %l@ڙ%`Bڥ%YCڪ(%RDڳ1%JCڸ5%FKڿ?%=EE%:JJ%3SR %)MZ"%&W`#%[i'%^x,%h1%xn1%dz)>%S~:@~%GJ@n%5^Ml%'iIc%xKU%ډQT%sڑMF%gڡN=%WڰM3%IڿP%%8%K%&8K%IQ$ VI$'2oO$5PR$sIhL$_bۈQ$hJoۢO$T9۸Mr$<-Kc$$HO$F@$=*$-@$C:$\01#$܀J7#p5ܝ[/#TUr.#+~p0#b,g#J3,M#2[*0#},#vܘ %#Z ݸ ""6". %"28 "PP "d/d "|Ht u"n ["|cݖ @"YIݻ !"2. "  !+@% !FjB !}hޛh !U}޻{ x!7{ Z!] E!F 0!6< !d   ߂  n(ߣ  HA@  _b  x!{ x qU T A߆ *; e%߯ & : 0 5 7 $,M 2 ?Sl ; Sy =z ni =] Z~ @v5 ; C]  GI  E- Q0 R vI Uw n VB y3 h QI i 0h/ q ` ~t +\j ~DHH xd2 r wn  ap. ;cR )b'o bC P QX++ QoI Htj w8IQ P3q8| /)"L  $ (  @ )3g7MwLj]c ^Bq C,߉ l ߝ Z߰(! D@G, 0oq8 yxG VYM 0:Y  - h :'f PJ5t \iO} laz r~ {Ptsߋ m4[rߝ ZFj߬ M%`߻ <R6 /JV$ ;Q s'i W$ 4b F 0& !-)!6>!DQ $!Jk:/!TT;!u]`@!_eN!Cnlb!0\pe!Az~!uy !m~!|\ޅ5#!}EނJ=!|=މZQ!t0ދjb!v"ދ}~!r|yސ!opqޒ!m`Wޔ "lRBݒ"lF9ݖ"h8ݕ6"p+ ݍ="q!ݑN"r݆&j" ~;u"~K"mr _"[mt"Mi{"}Dc!"e,]("_%X-"SX2"@J7#9G;#-D># 1>(#,>5# =I# 8 ]#6n#2y#z-(#(d,+#3b)3#:Lܽ&?#M=ܮ$B#S<ܮ"H#X(ܜN#n܎U#q܋V#~u Y$e_$VY$>\)$'']?$4WA$DYW$ VWg$$bVg$)mTz$A{۳~S$S}ۮuS$Vt۠jL$mkۈXL$|_NG$\n==$SW#9$C>,$E+ $4 $:($T)$2p۹$Y ۞e$e( ۔T$y7w8$?d"%IV %W@%b*%)p%Bw % fb'%.jN"%>ڱC2.%iځ1%l4%"M9%R*$?%x;D%PaB%d9N%1v#N%Dڴ qK%V ڙYX%z-{FS%Hp0U%lIzZ%&NV%)W% AT%1 3hߵW%K \ڥߏdR%m U>P% \'W% BN%  -S% < )߱U%!^ ?ޕM%!| VqQ%5! zڸ@xM%S! ڪ`J%_! ڏ:E%!) e޹@%!_ Nޑ;%! *-Y,%! `*%" [%/"< ݧ-%K"| ڞg%x" y7%" 9l$" cF$"> )ݱl$"^ ݕL$" ^ $# #.$$# )$># >;۲$]#P sCۓܛu$|#| TxjG$# k`$$# w4~$#;Mܪg$#rq]X$$,'F$1$9$<$ ۵($\$HGەۜ$p$wlۊ$$wVZ#$`(#$K#$1= #$SKF&ې #$] [d #$z'* z# % Z#/%AAڢ =#:%vxܿvi ##O%ܡ0% #l% ݏ "v%$݂ "%AT:qڡ "%{Nav` "%cUW> "%~O' w"%8 _"%=1 D"%?l+ڪq '"%wk4 "% ? !%". ! &n[o !&W|ٙ3 r!&~dG!,&1"&!8&m !B&߽O E&D%߳٦ W&o@ߥـ Z&&[ߩb Z&]xߛ4u m&ߒ [Z j&ߖ+< p&(߉ٸ {&d5ه{&k#g{&T~*.&yl&/t@&Jmxٚm&}ll2&!kJ&Ao)&Lgb&uhyr&(fJM&Tbٖ*&yfـ&)f_&h3k/x&XkJ&u`&(~.&QU~ٝ{&r~Ym&FXo&r3}d&*#\_&W1[&dR&"DM&:!ٴB&[Fٝ>&k)gي0&TpX &V]+&A2% /%#V%U3g%Gd1%"Z/%7k %?3xڷ}%V0`ڡm%cV}ژrd%nnڋML%}}R%?%o6-%i%>^$,nQ}$M0SO$uOGq$s@I~$3C)`$h9|<$6V'$031 $M/#r +#+,'n#MH*P#y_#3v#z%Ww#,(X#+2#*7#>GA"^9Lj"z^Z~="ef ^" tJ9"5z9"U݅'!s{ޑp!n4ޔU!fPޢ8!Xoެ}!P&޷_!A2>!1>D !Nm  V0 Y `j+)w kMG qh x? cl;~Mcyi3uFbo&:lj!&>g:GVgWsshru|kq;KpQ%w+^0zaDq6Qf_\WrUVhMF6/Dn >c6;1)$o}  =MX< |y umQY143>ER1j[ uamBU[GEr/xg-mi{1VQ  BL)7~1ifI|+ m ,&H `;0 I9W KrF !3k DqdS d?? 'fw/ hF- l }2  Tm. l X ) :w z/r4 dFA EO  aO:5  s| ( k s  9Fgc g "R ; OG  ^w= y sY0 $ @) Y + ) |$ W 9R  ht x qa (n -  B &j :=q4 0@@^ wK- @ X5u r_&z cKg^ { o' > t_1  {] /M| OCt a &m ! D >e ZZ{] ygU 7 9J Z]C $: 1 @1 8Q0- 8Z& Y" <B =& tu5 eWo %z G/p Q* V?h |  @ SR *! 4| ]B * #%3a {&? @@)z u+ @.zB U0"z p2S  96z ;J6= 9,9u a=} O =2 # A' g 6rCq  aCw  aE 6 "E2 m oFxo  sq9E  LAF  GK M FA t YuIu  k+H;  H 4 >K= z XIn Pe .sN 1Q? RM9~ bR I5%T TJ8 tVi y PV =Xu QY/V Xe!} p[c Us4[ .[ ^- ^Mfa s_} v@b` F5a1 b ) bbG T d , Q8b  Tb  d@ /Y a ~ jdac  J09c   a 6  b ]) b> J Obp ~ qa  bXb 2 1a  _^ $ "`E Y ] ] _yI[  05\  X ;: WL }f oWe  DkV  Y;U  C$T , ' V h zS5 YS-H )TOz lP7 kKQn JtP (M  6 ߲L1= b ߊK]t  aXI  `$,G  EH! "GN!' E h!5 H!O [ޛF@!x /E_! gGr" |AD>" MDx" 2tC" C@"L ܗ>9*#~ s<[Q# Q<# hK7# I*7#! 38$)! 4:$A! ۸5 T$R! ۢ5o$m! xۆ2@$! Pk3O$! ?X2h$! 60%! h-3%! M,c%" 'z*%P" Gڟ% %i" ډ%)%" [!K.&" >iV&" )uo&" &" `W&# VF&# E4&6# *ٺ'P# ث'W# ؛?'{# rb'# a5'# fBM'# 6 r'#  ($ o+(5$ N׽_(R$ 5סv(g$ +ג(u$ `|($ Ed($ ?b ($ G($ 1/)$ ,:)$ O;)% g^)% sz)3% vֻ)U%% _@֙)w%( O!|)%. :f*%4 ?8*%: /B*%< #e*%A ڻx*&G ٹ*&F qٷ*"&M Yٯ2*3&S Aٮ:*A&T 3յ٩C*Y&\ ՛٠\+s&a ٜf+&g jٖy3+&o yHَi+&w e"م+&~ Utـ+& @Gx+'' .+o+2' "n+F' Ӫe ,c' ә_$,l' Ӎ^/,|' yVF,' dQc,' SM h,' EF4,' \ @C,' L 9Q,' +4g,#( )|-F( yҵ#/-U( jҘT-}( Wrt-( C}d-( ?mO -( ,S9-( 7$-( 5-( - ) .) .$) B.L)! ѩ/U.Y)& ў<u.u)+ wuQ.)7 RYi.); 2@q.)B !ָ.)M lֱ/*Q fլ$/*W [եF/**^ K՞^/D*e Gлՙ_/E*i ?вՕ~/a*p 4tЏՊ/w*y )kЊՆ/{*z #VvՂ/* ;Uv/* Fr/* +j 0* ^%40+ Y.M0+ Q>a02+ ϼHR0X+ gϝ@Y0g+ aϘ;c0r+ Az3m0+ 0e+w0+ $d)z0+ H 0+ s81+ n+1+ h41+ R W1, Ka1 , :1=, "\ή1_, LΛ1h, .Ί1, c2, [#2, J**2,# />?2,' )DO2,' IX2,, _z2-. |b2-0 {o2-2 W28-5 u8ͽ2G-7 e-͸2T-6 N͖3|-: 7z(3-: $sG3-9 Rf3-> @3-= t23-> h +3-@ D:3-@ 9=3-A 0ѿQ3.@ ѿ^3%.B Ѿi4$.A {$4>.@ |˲Ѿ;4T.B g˭R4Y.= W˙s4x.> >~{4.= "[o4.9 FZ4.: 'G4.8 24.7 *+ 5.7 A05.6 G35.7 SD5.3 cb5/5 rj5/2 |}5%/. ~v5;/. b^5A/( SFʷ5Q/$ C6ʦ5a/ ʕ6u/ Ɇ 6}/ ɀ16/ f%L6/ `2N6/ ^Cl6/ FSz6/ I^6/ tBf6/ d3 ~6/ |Q36/ xJ+6/ ^6$6/ H'6/ >06/  =!7/ F*70 Q@70 ]1_70 cGg70 mRx70 td7&0 p{x7#0 dσz7(0y ~bϋ7*0p cFϔ720h ]?Ϝ7.0_ M;Ϩ710Q 1ϴ7=0G #Ͽ7208 8=0' ǻ 8E0 408<0 ǾFE8H0 ǵ fX8I0 Ǹsg8K0 Ǵ~j8M0 rǴ*8O0 `tǭ38R0 ^|Dz;8J0 GfdzH8U0 9VǪP8Q0 -[Ƿ\8H0 Dǰl8T0 9Ǯy 8J0 .Ǻϊ 8I0m Ǵϝ2 8L0Z ǹϰP 8D0H ƻZ 9D07 ƾy 9@0$ wƿ ,9D0 oƾ $9<0 _ 9980 H߼ E9?0 B =9/0 5߻! O910 $߫/ S9/0 ߭; W9 0 ߥL _9 0 ޞ`!h90 ސr)!r9 0 ޏψ9!q90j ޅФ^!9/Q q кl!9/< y!9/" mf%!9/ ZZ$!9/ Lb8 !9/ 9R;"!9/ (PA0!9/ OS?!9/ KWT!9/ Geg"9/ Bpx"9/} JБ."9w/` 9ƎЫE"9n/J :ƚO"9X// @Ƶp"9C/ +ƿ"9:/o2"9/X.;"9/?"X"9/)&m"9."у"9.p " ћ#9.\0Ѭ #9.K!;ѿ#9.4"O1#9.X6#9. (nG#9.Ƅ!b#9x.Ɛ;n#9b.*ƯY#9D.p!}#94.rX%ѝ#9.TC'ѹ#9.64)#9-)#9- (/ #9-4C$ $9-*T:$9-1_J$9->yb2$9~-3ƅz=$9t-~BƙҌG$9X-hGƴҦV$9E-IGg$9.-.Tw$9-Y$9,pd&$9,Vd9C$9,QrRb$9,8zqӆ$9,o%vƂӜ$9u,[$ۊƙӱ$s9X,@ۈƲ${9J,)ۊƼ$k98,ڜ%e9,ښ %b9,ڥ %U9+ڭ4$%O9+ڸ.T2%A9+LrF%=9+hԍH%*9+aƍԵ`%9_+6Ʊt%9C+x%9 +}%8*f =%8*`&S%8*T Dm%8*I%VՉ%8*n<3o՛%8*\9:Džձ%8o*?.IǠ%8R*%NǺ%8<*!`%8*r$%8)x@&{8)ٖ@c &`8)٤n֐"&W8)]ٴǐִ)&<8Z);Ǽ7&*8.)C&8 )R&8(%6V&7(AW`&7(arn&7(&wׄi&7z(o@șףx&7T(LHȺ׿&7<(6[~&7(zw&7'lك$&p7'i١M=&O7'`ٻȀe&:7i'Vȯؔ&79'ZIظ&7 '9E &6& <);&6&-7_ &6&3P~<&6l&%hɨ_&6I&ps&62&#ًَ&f6 &dٟ ڬ&Z6%Fٲ%&?6%/L&(6% w& 6s%ʤ(&5F%G&5%Bv'5$re>ۡ'5$Q~k 'm5}$+اʡ'J5E$ؽ':5#$''5#F '5#;b '4#Yv!'4#4~܏"'4p#`Nˢܯ#'4L#Fi%'4'#1؁'k4" ب ''J4"L#$'-4"}G'3b"̽w&'3("y5ݗ'3!Yc#޹'3!1؆\!'l3!إ̂'J3j!̪'.3@!2'3!I'2 Y'2 7>w '2 {Whߐ '2 io͉ߢ&|2a Oٛͼ&P2( )ٽ&22&2[(&1BΘO&1N#ro&w1(ٝ&M1[0?=1i&1)< ϑ&0W C6&0-BM&0Ro+&{0T٘8K&]0Xٱ\^&;0gψw&0\vi&/&Ut/&/8|_*&/ِns&R/qЭ*o&"/8Fb&.'"pX&.|TZX&.frсH&x.hLٟѴF&M.3*ٿB&4.4&.02&-(_+(&-M҇@!&-ctҹ\&t-)٧ &C-o'&-Vb%,y+Bӭ%,6p %x,/ڥ) %>,7aQ %,?Ԏg %+^O,Ժ %+,rUT %+Yax %w+Giڛ8 %T+2vi %'+Ԗ |%+Xս k%**A& Z%*t-C R%y*ڟ^X :%B*գ} *%*;p %)WL %);ۆW $`)۸֑ $1)Z$ֻ $)00  $(B:5 $(J\;C $([~bS $g(m۱חo $<(Wu׻| $(2| k$'_7" ^$'GbR H$'2ۚ؊ 4$G'V $ ' $&F<- #&}zJ #e&j)ܱ٭c #<&A5p #&K #%jT.. #%_bJM #%Nvx| #p%l4ܠک x#O%G' d#$% U#$'2 ?#$Wa$ -#$܌ۘ9 #U$GX "$  l "##0> "#q;ly "~#r[Fݑܠ "]#OQ\ݺ ".#!:j "#+x ~""+7 p""Tc ^""{݆ M"s"hݡݩ<"J"?(#""  ;"! ,2E!! hi[!z!y 0ޠޝo!K!M Iy!! ~f! jx4(}! `ZHg! TބnV!i } HީߓB!F ` <߮4!% D 5!  * ! 9  ]3  .ߐ` Z A߸ 3l `  = }"v  NW  (%= g ߰S.! : r7  ;c  AC )CI- 7\I QPj bVO w.U|+ N[c n]I :_+f h` A bS" #c) > a_)es7?dSTbhxmeV{}bDg|a,Ffa)R^B \,#%WAHT\l L$DmT<@Q/O60  f1,y,B%r,a!a>xVRgIeM:} y5.f"I,.M*&u"z7C0^Ee<:QKn]TVe^Aoh*x-n}?v~S~r~ikw-z_zpLP\hhAEa/h'ZBQ L& ED ?/9] ;=Rs 7Lh p4] p\1g aO.u F:,s .&)d (R %8 $;&# #_D ! c \"( 6p!A U _ 7"{-{ #"Fg #gP %< s%, Z'2 ;)D + V ,#o 0E= k5bb P7h U0>> "D G! OT: T@wM xYXb T`xzw 0fa okI [p& HzB 5`  %s XP i -v#cw $FUA `gJ @Tn/3Nd(9&m$LEz!v [ 024SF%r1Zw5hxC{ANbL?\6knO|xK`3sNe%b]MLyN{xwBz|j;^YZ-2(?" -)@ a}h7_5["  < i.1uo H6d* "FI R& $ YR! f@b oBS@ w\i z_ m5p@ V\i 7^B 8R f#L ^Q>={ ~28 o , H J-  tat @H 1 Q  '3g  I_l  zqNN ! O$4 % ! 0 @  9 1|.e = _Y H :X P _ / V ; _ P f 0>j m [\B q Gl { !S  !7 H,y ydsu qUT Jj  wgv )TdG _a~5 ^C 9@[ q[Rr CVD o U$ =UX Q)g :R @ ZQ  /Pf XLQF tyQud S<  6T EdY| ;]18 s`v 2fH SjT mg +r? M9t  }{xto &{^H O2} mz FIt # Wm S g } =p] QwCcS  .#J @ 1 9/6 g qRu- dM' B  ; r%  DO 2 x o U Mp 7  {Xc 8!0% h.y ==27 MLV !Y{  [im ` wJP 1^,z  m "e " @[, M fOJ aSCf 908w z(  !T W R@ #Y]   ,'A 1@F qVZr` e3Ns s % ms> Yh^ ;PZ g8bF %9^9 9) 7[@ $q'Tl8C!3JZ W!shTLiy|ouY~|UUCj).0f#]!'PCLJWg"B=:hNU1M,m-) &bPH8xq-X@ q` ) >< ?$T Oo d{ }Zz& Dg; JV -n = sj "T =A_ Z!0= |'w -b 1K1 91!L <+[ B 9z KvF PdQ -[LX Lf.h iso mvt Gb8 {(PP z @g p+ (ln >ha TdH qa6 ])v "`\ 2[D A\1 Sa# l`7 hsB 4oSX Yw4k zx|u [ q o8 h )f$ c ?[ X XO R lE J (~?w > @5[ 6 X+G * k(/  l  P  !8  H(   sA|  TY 6o0 Y t m a q M ; rMp  /+G D Q 6 faTY uq]c z56i lN b; +5Z# XiNz BlT ;E% <*  ;] =pznt ue H %& B *)W:l5FP[O)l*[hgeaSi4*3vd ~aQu6=fJ"^\O Og`@Fv829'H5,tQmul FC]D:) Bktu yC'[K$'Ovy0#_V8X%DIPYU??a<ohkgjEcBq}3i"tE vy'}?4D\W^x^Ifp2Hk" J_T TU ?Ol hD3 E=g o9L( 4J+T 0k - +e K3$A lI"% eK iH  Mk 8y' {9b  .  ** = *M4 h ^i: ~~ikt? A6VI $DK  .O  " Y . M \ I n ~d h )|Jr DO{ [. - voy *q ^v^ R PNI  Ce+  2: + * O # z u 8 /Z I ? : p U|  fg  vF J k) u ~\8  SKI Q 5c  h'u  A M m v \z ! U_ < D< e +9 v 52 A%\ +O? ?Y( \c pm" 7wP2 ['|R Xun 2o /qg TT` 5tFZ H7mT m$JL o0,(  %AY@}y Pn+hL> f/LN!]%w{5bFY"B(`e)2A, ;.YK2nc+2N3hYi7UCs3B&~5$\5 L502\/I)Ok $%AILs{| jc.#6c#iL F~-m;P&O,-3j7Yt?u<t^M6]4\ /jWBuHdFW^N ;aXX*Mmd4 4) ,=)i=h6O^FHda/avCf}yM_R@1_$~p9g4_#Ew58mraM|b$9%ԱE ~+n9%GbM_,9%kE,):%IӷN,n:%jQ]R-:%qiPں-;%&V .F;%ѤW*g.u;%\c\w.;%s&[ڡ/;%IcN/ <%{j/\<%,ЏiR/x<%vxڋ@0<%R(}0=% …+1-=r%ε–ml1o=f%c_gŸ1=Z%¯6 e2>J%qz 2?>?%Yͥ 43>.%Q( 3>(%S(_ 3>%ڦ 14#? %8˼ y4U? %o˩ 4c?$/ˁK 4?$Dۖ M5?$P*& 5?$"T4 5@$ȿEa E6T@${ɑY۟ 6@$=Pgl 6@$(` q7Ao$|`㾘ۨ 7.A^$2Ⱦ 8UAB$ǁT8A3$QLۗ8A"$O<9A $^9B$K9%B#Mͽo9DB#rƨ&ܶ:iB#&ń:\:B#gI:B#YPbm:B#g{ܵ7;B|#,k; C^#aݼU;HC;#~Øܯ5ۻjQ=5D"}s>JD|"yݤ6>TDc"6>~DK"^v>D9"CwM>D"Oݚ;?D!B0l?D!s+9$?D!` @E!Q̿麇Z@ Ef! ꇿӺ@:EB!Km@SE!i𾟺޴-AnE ;þ FAvE 靾+!AE NeGUAE 9^Y{AE l^yߵBEw .̽;BBEa 篽?fBE@ 瀽3RBE DߤBE< CEؼK$CCE撼CFhSFCF?&CF ػ fND(F坻ҹ,hD)FS劻߹ND$FNιvDFL俺ƹUE7F$䞺ȹnE8FヺʹD7E3FC̹v|E7Ftq!͹E*FB,߹(F!F⵹عO_F'F⛹MtFFNoFFY4칽FF0MFE{GEc޸:3GE1Ᾰ[JGEᱸVGEh+FGE;o.dGEoDGECCX?GE ^q GEuO GoE0鷕 ,HdE@̷4 >HBE߳ͺq!\H+Emޔݺ_!xHE.}y!HDSc!HD,\I!HD83x&"HDw1?;"HDP0as"HDq m"HDS%"HdD'_"ILD~嶿0#I.DEa#'IDѶ #7ICAö6o#HICn۬`$XIC0ۨK$XIeCۛ>$vIACVۂǼn$zI+C|=ێ꼝$vICCy%IBm+%IBzE+M%IBiaey%IBrh~%ImBVQg%IIB.e˽%IBcH'&IA_&F&IAVmc&I~AS^'&IRA.dȾh&IAsq%'I@#`1Q'I@oZ,p'I@}qe'If@zUm'IC@M4xҿ'I@${'I?׆&6(yI?ׅOc7(uI?זzR(^Id?=ץ(`I)?cפ((MI>KŶ0q(2I>^ζ )0Id>۶,)I">dV)I=tF¸)H=$i)Hf= L"*)H5= 53m)HF*+G0: ZœC+G9? ԁJp+sG9 ԓ+`Gb9 {ԳW+:G9 YҸǟ++G8K @ܸ0+G8# <g+Fv8=+F:8 2o+F8xY ȧ,F76vm(,tFl7ӡ;C,KF7ǹ }T,"F6Vlo,E]6|-4,E 6iSw,E5`ZӍ~,]ES54ӯ,CE5-Ӻ I,E4Uˌ,D4T-DS4%< -D4\ '-D3҃Qj)-iD3~ҩ̛6-HDO3Nͻ<-D27*X-C20ga-CR2vm͵h-nC1ҳW-6Cv1s㼲`-B!1|r'Ϭ-B0%Z`~-BZ0NҐA-WB0Ew--B/j:`л-A|/'/-AA/&9-A/&l*\-yA.Ҝwј-UAj.V-A!.-@-*$;a.>*U՗.>J*Dї#.R>) ѽ!!.->)b4.=m)2z%.=)p^ץ.=(CўT.>=z(¿&.<(.f.<'{{ة .\1ַ2),a)ԫ )+֍ 5k)N+RMH)+0կx )*!sփ )c*_׻8(*B,֏()DLf(x)o׮$ ~(+)2T((GtX$([(Cx''v!=ث''Ka*''!+هX'&Iؔ '+&b:&%x$`ڪO&{%5Nٱi&"% xLv&$ mSۊS&$Z [ٖ0&?$ A&# )Bb%#~ 5ڈܡ%K#1 kx%" T_-J%" ڮݫ>%"" -`$! Rۥނ}$,!U |W$ dv=$M Fߖ#K 8/0# &[܁#Ph^#~=#M]  #sݾ'"" 6[,"fN6{"y2ݻL@"@T"yc!L9bvz!`J )V|Ao dr=n v. 8t 9Id pJgOt AIk x-8 a @H, +bb| )1 KeK.3kJoQrdT:tA-'te:eZd] }4iM&=A>7U<*sw/|j^`9@Z(i |&DA\c(i}>+vHm1Wx 5<S8'1(;  M= !:h? =f@| beBH <Bj @? E(@ zI> n &l; 6 ~R9 \v6} D93_ *h-: *! e % B  )  .A GS lLo } {Y r m4 D T 6  )<9 5ef E\ W O+@ : Z:  iK sU ~+3a{ PWpl lrz` Qd ^t<: 7g, ] Q+& DXM :!|mo 28A Z)P" A$a *t  /mF_b&H?3lS"Sj-l T9/4[`yzh]?,<@'R$6f)Su-)ht2Dfa8^NS=r1BC` +KCQ&(YNdzul//TtNC+tV| cujqmM<b3|P[ sgSfFnZ ?YQ55<CW&6v*_65 Yt|#X49B>O#,Ji+Z2pb 7_n >A~:E}(LJrcQaXQs5_B]Sf1=ymv t Zz:"~#7z.Jv?%`sN=rqXMvmhh_jxwQhua>dcB%bQ)_C\,Z$(W>; VXQTxg}S$vmQ1SqPB?bPN0XNYGNi8Nw-MwN.b NFUOX DPu-|R,iT9 RUJ7XX'YaZ)n^:x_D{aO$oda8ffkF]iyU}RmlmHrz`~AvLg5}9T,z*D%u1mj e^([0V?) PL6JV>EeM=tY5b/yo#i| Y!Ov!>k"0a#)\ #Q#I# E!#=*"72!27,B$'M/$U6"cC oNzUat jjpbyXO| Jw$?o+6g 00d6#[ATJ QVIe D"s@(~"{:.0l53<d16B[.:NO(>XI%?]B#Dh6Iq.Mx$Uv_ji_wO.q@?c7RS'iEu<1u &g ^"Q#@&4( !$-- 3/:9BBB^2SJyOb|Shkc\{Hm~d4Xvk$Gmq1cx [}UyK/qB>k Y .%v g cMB ~ %zq ^n, ^Z l 8zLA TBg ~,5  C)" $!4/ P$b  lU f|  qi:  L# $ *8R /   E PA< W _ f aX y cs~ @0Jp ' (f X X . K!{ I sF7 q :q6X  C)t  "E  b > 6J z  j  &/u / Y] TC  S fOi g 7j y 6 B w'  _c>c  =\U  [Pp  {> D Z5;n Bx'v Z1 '2 Tgw _U3 Y$E .xdU Tlo (Gy cY% ng \8~a E VW &&IW :8 T.3_ ~"b" & t Yi1 +(" ;08 F_+E :\ RXl "=w  6 sBr} smh] NO`} l S+ CE\> #?x 3],# TI |O f7"*k!o!A2]EBsTdy]?8Hk 4xw a|G~> 6lm f !=hZ d3jZF ;  )? _Qb| i& = x; P  -K=  8'^ Y A~޴ A!Tb;ާ c!YH ޤ !d+Oޓ T !uވ "|S- /"ߴo` !v"`^ s!"av%N !"3 > "S#{$# y"#bAO "# } $eܜ z#{$9en #$ .9 #$2%B$ %=ڿ;m$G%Eۥڵ[$r%R5jڧ$%_k0ڛ%%jNڑ[%&u"tـ%g&){m%&LcGG&&J|&?'g'٤4'z'>d(K'''(-3'K(נK(v(rui(( vq.((,aP ((3E )>)A ֶ֡C)t)Oք֮ q))UpQ֤+))i$֌Z**{ՂzA*H*xՕo**EEFU**G/++4n+W+_Ԁ!L++@d++%*,+nq,9,QӶ,O,<\Ӥ,v, &&j,,4@ '-,9O-,FҮ?-6-\Iҭҟa-n-hzҐw--zvEzS.-Je.,./PѿS.Q.яC/.A+"R/.$ 8z/.nK/%/;i/K/Ъx/f/χ0/i[Y0/'S3x0/1H0/C+?ϴ0A0UϧϢ1i0fΊϒ<10wA{+10bbG1 12V[1>1͞4'4c 5V4Yʞ 5g4Rʙ%5v4HpL54">PY54+5Ht5440{˿54LZʭ55U<ʥ535g$ʷʌ5\5ɏz "65lk /65SW[65"F#|659(65o0.66O4626H86368ɾ 76U6%ɜA6h6 ɒA6x6|A66&bK#764CJ176B0ɵM>76VɡUi77jȍUr77zY707gȷlZ7]7WȚX^7e7KȖS[7x7;v?[77.g/^77#\,V77$IW77 7 W77(P77 Q 87M8 8&K882H/8/8DǿǯF:8I8YǸǢED8M8`ǤǗ=Q8l8vLJ?\8{8ǁx:e88rl2b88eZ2t88UT*s88SI%l88I=!8850v88=*y88( 88 88} 88z89v89 p89!w890h8%96k8$9?$tƼ8*9H)eƳ8:9R1qƬ8-9V7sƩ8;9^?oǽƛ8B9iCwƗ879hLxƕ8D9sT~ǹƆ8D9|V{ǾƆ8D9{bǻƀt8E9fǼv|8G9lǴuu8K9vǺoh8B9yǺjr8O9Ǯb|e8L9ǽawa8C9Ǵ\nb8R9DZSkW8F9ǾWbT8E9ǷOYJ8I9ǼJVI8@9NK;8>9GE0869G?1869H48(9H/89I& 89H 7 9 M79H79!I 78( M787F78 :I78K I78Z-G78$]/J780wAK786QP|78@VRc78Gs\Q78Pȁe@7z8Xȑi*7_8^ȭv7M8iȹ{7>8m6,8|vLj6!8x'lj~6 8t-Ǐx68o=ǒm67lUȘg67c\ ȟ_67`t2ȣX67VNȱPr67I\ȺJZ67@{FF6t7-ɗ>*6[7ɶ=697 857156-$2567#3+56T>='56cYN$56rcV56ʂco5q6ʗu[5`6ʭE5B6xɒ25'6cɨ 56Nʿ554 / 452^ 45Iˊ4g5fˬ4 4:5Uo4 5qY44˃<44pD˝+44V]˲44G|4t42 ̙ 3W4)̽324934V" 33w1G33Vgc33̋̋<3V3[̼#!3#3/'22 , -221_7322Q͊U92a2gͳs:2<2}͔=l22^ίC\21F>@21,KE!21vJ2}1Ζ"H1O1$MR11>yY10ub6ϡ`10Exmi1h0 θzA1(0C!1/w1v0/nkrЫ0u/@^0ϡ0L/^O0/Qp#0.H'@p0.JS`N0.=όя80a.]6ϲѲ04.=0/- #%/-;cG/-ZУ}/;-`e/,< -G/,zB7/b,ӆQ.,W d.++07i.+Rt~.m+ygѩP.D+sqn.+yg աU.*AWA6.*Hs.r* =ѫ6-0* '}-)e 26ֵ-)+ X|-T) U7r-) זJO-(K id(-n( һ*-'( sa,' b ,ؓ,'P L6i,{' 8Rӝ,M' *f',' dm,&} @ٛ Z,&R p<,q& ӹ4,!& UR,% ?ڔd+%D 6Ԗ+:%]TC+$Dx7ۉw+$P$ԆZ+Q$*;+ $_$%+#Fܗ8+#DՋX*]# չg*2#17v*"wN0݀*"i]_bݮ*"9Q՞q*<",:Z*! 0ހ9*!]z#*X!.N) .߄v) Wz4w)a ZV*) ,sv)tLk)7֒O)L.4A)Z>$);b)?||(k{ײ(1^.Z(w8JE()f׉(QN#n(z>\O(׈8(UtY(s@.(#k'z$ا6'778'^I J'0aRd'rؕ6'Kiul'qOY'01O>'ؙS-'G1'<4l&uىY&VT(& /'C&QiW&|g٠<&FPwc&q&lDKd&UvS&iV/ٸC&0  8&? !&fY &zF١v &@x* %:7 %G $| !%c9ڼ, 9!%D k!%R~SD !%]]q !%v?iکF !%9t !%p{ "}%<݌4 :"p%ݐg$ _"l%ݝڏS p"Y%Wzݭ "Q%?Eݲ "G%&:# "6%yo "#.%b` T# %  ~#%o5U #%}@x #$q8ۣ #$J$$S>$$%vL$$v.Jg$$>3{$$pg;ۢ$$KPK<$$+P~$$_\3%$(e`.%$p۞C]%$Ay%$\dڀ%x$ DڏA %o$ ڐrG&n$} ٙ۔p&^$X w٦۽7&\$, A٤Q&W$ ٰc&J$ ٷ%&H$ sٻNV&@$ Wlz&9$ xCې&2$X :&-$- '*$ H2'$ Ck'"$ Ul'$ #mە'$V =5'$- c'$ ($ h&($ 79?( $ NN( $ ki( $ ۆA( $o rۜW($V `ۼ($3 \1( $ : ($ ) $ =C>)$ Zm[)$ y)$w Oqۗ)$] %R۬)$K A)$4 '+)$! :)$ T*$ z)*$}0*$f/F*$DFj*'$ Z{*#$wp*'$Vۊ9*1$j6ۢc*0$T۶{*6$?r+:$)E-+C$3Լ2+B$ ԿQ+F$Բ g+Q$Բh+I$Ե 1+S$pԧ-H+Z$hԫ8Z+T$VԧEl+`$?ԜT+c$e&Ԝa+g$VԖo+n$2ӏہ,v$xӄێ+,~$lӃۛ :,~$]{۩-_,$Rn۲;e,$KsۺLu,$B}g^,$;p_m,$5gdu,$/YX,$)oJT,$"f>Q,$]7K,$BD,$ 9=,$'< -$ +$-$' )-$&D-$,R-$ 8\-$%>i-$'Pu-$*U-$-X-%w0k-%e3l- %j6u- %V;-%xG=-%oHB-%a1G-.%T%I--%HN-3%B Q-?%1S.?%,ѾV.E%*ѹV.I%ѴW.P%ѯX.O%ѳY%.R%ѧZ-.\%ѧZ&.T% Ѫ\5.^%ќ\9.d%Ѡ]>._%ќ_E.j%ђ^M.m%ѓ`U.p%юaS.t%ы`c.y%у`c.}%х__.y%т^!n.%z\f.%у\f.~%{Zm.%wXg.%Xi.%wVh.%xTm.%wUh.%vRi.%sQr.%pOg.%uMn.%kKr.%mIg.%rHn.%gCj.%nB g.%nAd.%i<a.%n;a.%n9U.%p5\.%l4U.%r2J.%s/R.%m,F.%x*C.% r'D.%$p#<.%'y#:.%1t4.%1w5.%7y*.%A{#.%A}&.%K~.}%Qш.y%Wу .}%`щ -o%fғ -p%oҎ-n%sҙ-c%}ҝ}-d%%ҝ{-_%&Ҥs-\%2Ҧh-W%;Ҭg-T% :ҫ]-R% MҴV-G% PҺP-I%VҸG-B%gA-6%k6-8%x2-+%&x-$%h-%b-% R- %E-%D-%1-$ --$'-$-$$-$'$-$*2,$3 :,$<B,$ > O,$ L3Y,$QDi,$XIp,$daӀ,w$hjӍ,s$psӐ,h$tӢ y,Y$zӨq,V$ӯe,H$ӿz\,?$sM,5$sG,($!g6,$%c&, $*],$.P,#3K+#$8@+#%5<8+#5IB/+#CPF'+#SaJ#+#^lO+#nvR+#tԃV+y#ԍYq+k#Ԝ]k+_#Ԥa[+V# ԴdE+B#i<+8#l$+'#'p+#5t*#Aw*"K"{*"[8&~*"aK7݁*"}kUB݅*"zwlP݇*"x{t]݊*"ud݌vr*"rwݐpf*"nݓfY*|"lՍݕ]C*h"iաݚQ4*Z"dլݝE*J"bݠ; *4"]ݥ()#"Y ݨ) "U3ݭ)!QMޱ)!Mg%޶)!Hr1޺)!DC޾k)!?"Ub)!:+]N)!61q?)!0;ր-)z!+E֏)g!&K֣)U! Z״(@!c(*!q3(!Vv( ng( 'Vd( EIK( W;6( j2( ׁ& (x ؏ 'g أ%'S $ش,'B ?2'- O8' i=' # Cn'3HQ'G:L,'ZYQ'pnU&'ٌYs&fD٤^]&Rcٹ`P&;ye@{&(h/]&l&M&p4&r&1u& @x%"+[z%9Gp|%Oiڈ|%ifڦ~`%Oھ}o8%5}Y%~<$# |&$:~$W0~$ vG}$T~l$,gN$>}7$}Rۊ~$kcۡ~#S}ܶ|u#@7y_#'WxB#tf#oD# 1n#+Li"Fcf"]8qd"rX݉a"mqݘ^k"bݨ]\g"Mݽ[CL"<W,-"*U"S!' L!/G#H!Or:Cv!vY:xJ!o5W!!ފ.6 hߥ' SCߵ" @b */m IS Z: u | %f5L imj1 |"^ ]E At ) #c W  G*1 7!R^ #6n dAF 4R i , w6L? c}Yn jk^X @{R: |F m5 `4+ R6P" D]z v3|u Z&Q . !   - C%@ Q}AgS Wf7b q9q n Fs[ 1fkK WYZ9 Jt>+ CY 2/  %  A  (k$ { ]:J Qg n.. BhA suNL M:4` fp C x 0  ]o }"gs 43[N ]IN# XAp m8M C*n uuT !B7 R _ K7 5_+ O52 4a< Vy{G 0smQ L[ZW n6{Ea T1l 5p | E ~  lB'y  uEqXn  lf"0  ` g Y E GSP ' nHn  DfI  =A  (5'  :3  9R+  %aj%  ?~$k u ^7 Q e 5 G  D  -_  $P1  Iu w t'{ V Ma > rDu   #M   2     =  71U KTr{ o~\T c21 B &" `A& g.T 94U ]97 s!? JCf uHO} /LA` NS&4 qY ^e 'h; ,^q E{c ~ _+( q dp d (W_ W Y?- J  X >  6 5 + ) R  !(n  -@g @hA Rf% `C q" B2o ,jC_} _YEC n.O &u 4^ *fO Ih? l~>+ +\ 7D ? M>  Z\ a5/e rcI5 ^{_  vl2z LX]  KfF G=5* |.j "J8 *e$ 7h'FHG\oqhr#B:U0ws>9H"D, Qe]D*`fvG/kqe<| z}({dM&qOjEm@cgq(^J_Z3? T+M(2FFIY`Aw:rKh2JL/%-/( _#3"nM2DpK#\u tU}4;gP%Rup0 D,Kt8HwigX9RdC,,<C_Sv)ymHLbq2w\z !>S6# 8]( *V0'.$IG1gj5P9lcn;XM@@[-C*:F" K ,N 2@R( PZWE z}\os_ aLWq g$3 n^  (tH J$z0 zKo| jSw 6tp Tk- Bf8 -`E +Y[ NSd eMt *jD LnF= g^+3 He) 2A  8 ' [  o $X 9@$ T"0 g5 x}C  %cM ) +QV 8 3<c X =q s E} O}d ([m@ Fe\! _oS  }yBu ( 5_{ : 0Nt K #8k f 'f q `  rX `R QK %:B A"9 S 0" k&1  j> 9 SE L ;R j ![ {a  ji Tp Ju %"<x 9** J1{ W9z  mBp  Mhs ' Ve^ : dZB Y qS( i {M  Esr ?ai !:T` 19CV F25N Q0+G ^0 = q)4 )z, &j   !R $  A  / - F   X  g $ y !1 4< q @Eh PO \ ^X Q h^ N sh A r 7w y 3n  $[v  Jk  =`  'Q C 8  + -  :'  =1  H>  QJ  RO  \] ci hp q+v {6k Aw[ OkG ]]6 hW' uI >{ ;s /i )b $[ 'R 6I > B I!7 Y+ h#! v% &l ,)] 1*N @,: I'+0 P/-$ Y9- bA+  iG/ m Q. z Z-  a1 & m1t 9 y4j E 7gt S ;Zd i ?QV v BJI  HAq:  I8c.  L1Y&  P-L  O#A  R9   S1  U"  X  [   a  -e  9m  Kv . [{ : hw I xs V wl _ ni g be 't [a 'y T_ * yIY 0 oAW 1 k8P 4 ]*H 6 SB : I6 9 :+ : , ?   ; - @ ? C K A T G a H i J p L( |~ M0 !v O6 *k LA 4Y OL @K LU M9 G_ ^# Hp o By ~{ ? vi = k` : +gU : 6\J 7 EUD 8 MQ; 5 WI0 1 gB% 2 p< * ~6x & *d  #R  (:  E   \  t  h  2!X  >)G  R25 # a6) ( k? + }Gz 4 Ok 7 ZZ ; -fA F Iu( J b sR e ]] $C Lb =$ 9j Z$r |zy )i | @Q ] z= nx0 #wp 3nV AnB Pj" 4ga Sz^{ l9X_ kPS|C H5U* C+ < "5 8/%5 PQ8. mpK) }W*|o l#_L  E/z 4e I 20 #Y  J S {%n  DH  /d   il  `X  29=  W$ ! s # n & EH * l*2 - B] . f 6 .g 9 U+? < t[h F &( H - M 5[ S Typo T qJR W V- Y 6 [ ' Z O \  q j Nn{t LJGy  |  ' + Q~ X KM o}q( Te '|'6 az  |T 9 *v | !]sj eo={Z i 9 c p i:]rq pY,p P= 'VN PMH .Fa   KGB =nDy ?YL 5>%* U: N&4A [,> 'Q d[ sh  )  L =} SM W$ 0 [ %w3 T6S t w [Cu &l# 9&$ -.p` rl{r9 +)A= KX6wAXo/t^N+kMt*XyRX |"UAv1h)s|m9NMd rcqRnW`(K0)(F=u4&e')"|]F=\9{aA9eQ!}CQ]oq( #@2Mlt5wb!EFQ%Ue]bl$pYc-Lu {%gX\U 1ElJ,?wf.,/}!\'14Yv yV 4@  bq _l"  `35 & ߮F! *^!k L޺ww!t \I0" o"M  S?݃" E H;ߨ# o 9uf#B! #qܑH#! K[)#! $" ۸ Z$i"E ۅݫ$"c N8݃)$# DE3%_# |W}%# Zl%$$< ٤ۡE&$u e-,+Ikӣ+->,hVҥӌX-t,Lpn-,/B G--$.O-љh.- c10..=ѲN /?.\СљgV/.z~An/.j6L//X;0T/HωT0/*N0/ e$0/@0+07αϽ"1g0NΉϩ"=10`^ϕ<10{S uW11'ao171͢MA21cM*21AV22. 2D2  ̞L32 ht32/D,32ACͷI3 3ŖU3(3^̝g4C3h˛̎~U43|vn}p43e}]y43QI#g43.Y54U/5C4ʡEl5v4mp<=54AF4Q54%+w64w"C6'5eV635Nɼ6`54\Ɋ65H 65(f 65?751*/75=I75d76kw7-6}Z 7>6U!ȯ7g65Nj8z6dž986ck86J186sH'B86U,)[86: ,s86%3z86{ 786[>9 7QE9 7=P;97\V9$7 gZ97{}9&7|tȋ<9-7niȜU9#7ZTȯj9-7JBȽ9,7<k-9,7.d(9*7"J9)789*7 497 :!7:7- :7E:7Y2:6tC:6|'ɔ]:6\>ɳz&:6?O!:6#ne":6Nx /:6Eł :q65Ŝ7(:\6ŤO+:W6ŵ_:<6 y#:-6xɓ:6cɪ:5I *:5%)F:5JV:5 j6e9~5ƙi9U5oƹʐ955^d2ʷ95/G7945>&94'SL'94ViM94dƅh9k4mƥ˄ 9N4j}˪z9(4C.s94%1\938IE93iI]:93Ɠsd9L3r̰8 32u 82h/G82VJdžQ8`2CdǺ͈8-2d1}ͯ{81?(`81II81 p(:81 ǗN8J1 ΃81k Χ70F *1'70 Iw;7n0 kȮCB7/0 }QW7/a H`'7/ Ȗr6H/ <{6/ F)т6.^ knpѻ6v.2 cɢb6A. ^:6- I K%6- HIo5-z ?ʊҤ5R-@ 045 - -[5, $D8g5, ʓ{45G,j Ӳ5+2 .4+X˖D4A+~ ^4*d6վ 4*˗ 3E*%83 *Uh$3)xd֤.m3)E̙.E3K) 33 )062()^_=2(P͚׊<2A(X>U2'D F#2'͑@>1?'E؍C1&IbFY1v&δ?1&XE0%LsژD0k%RϷEg0'%"E30$N3F0$ЇYH/[$=ۆA/$Z|Gl/#&ZDC/#С<.+#%g@."^Vݙ6~."KѴ00."'$,-!F҇d"-J!ޠP- ?M- Ӥ,= MG ,8S,aӂ *,b>Ӹ+$( +aX=+ ԔdN+C+CK**c՟ x*67G *Jt)ZVU\)&g,*)x֙;(B9bz(t#ki(V{f.(d+׵Y'0  O'\G;C'؈b6O'W)' a'&*hـv&] '&(:O%@kڠr%6kZ%=wY$w`۲ k$0-WG$:WG$܆}4#`uOܻ(#*XW#0I#݂"^@ " <&MC"Tmj!nw0޿v! Y'Q?!2z- _9  (&C 'mC u=\7YZzwr*SdVq!ORD0E>v g OK>Y.j%E{|[Hbblv | y.S hOLd _q{U) OY B?  PFK .v w 7 ZMx K / O N>  :RD cJb | rmw t H~N 2 z)J l  ^ [zJ?xc,8l~&CE 6-GSH${8[:D5MN \Z4{yZUO;u 2Nh%~MM[V9lN+QK%La"O-?)Q!w7qeNK2gX&IߛC)N _,7s w7L )g!F!ޙ5!|?ud{!a_X!.<޲]"o&n@["" 1"Lݜ #}4h3N#V!A#owK#KlY#Y ܄Ih$a1s+$)}e$x}$A(fDۥ$zD_a %sJt\%8R%X1^ڈ-%> &-& + W&B I٘ߤ& med߇ & IKt& O&!0'3!ظ;'b!}'j'!$xB.'!ATޯ-' "f.݂7'R"ׇV;*("S3>F("!B~(# iD(@#. P׶G([#D 0׋ܫC(#j Q܃G)# 7pE)# U?*)$ .BR)/$ ־<e)Q$ ֟9w)t$ qn6)$> P:۲0)$] Bۑ,)$ f$)A% թ>!*b% Ջ!-*% RI*% *c*%6 ھp*&S ٚ**&x m*J& dլj*^& ]ՖL*& @j/*& )=U*& 20?*& @*'8 Hؼ*'O W؞+?'y fԬr+`' pԔY$+|' t:w)+' Sm?+' 5_D+' %TD+') GX+(C ׳;T+(U ס0X+(i ׇb+@( Թn`+G( Դ`d+Y( ԘAd+t( ԇ&k+( #xe+( 7dd+(HQl+(.[@_+(El8׭d+(_וye+(tׄlZ+(t[^+(]KX+)PAT+)D.N+)-!H+)$D+)3+") 1+&)#+))0+#)#D+,)3[*()@mֻ*!)K ֭r**)\0֞c*!)e;֚R* )lJ֌?*!){Xւ4*)`#*)ws*)mz*)ga*)`O*(- Z:*(@U*(T1T*(o ;L)(*QJt)(CbJ[)(crCH)(uփD7)x(֏B$c)g(֣>Q)X(֫?=)N(ֽ>!)7(? )+('>((5A('K8 E('`\%F('r{EOr('cUhC('ׇ\U"(i'פe>'K'k('&'=s''[x'&}ـu'&|2ه['&x$Hً>'&q1fٕ!'&gE~ٛ&s&bRٜ٤&T&Vd.ٺٰ&2&Jy]ټ& &= ll&%.2U5&%i?&%ڒ*%Y%A%$%r%z%$1T%$;?1%$)aP%$9 ۂZ$o$D%ۢh$N$WOx$"$fxۇ{$$ruܖQ$#aDܫn$#Hx[#t#3)ܥH#;#d3}#" &B#" _,  #" ݜJ"E" Kf"" %vzx"!| 50ސF"!d Ggި"!O S݌޹!c!> b޴!.!% rQ! wxs! Ih?! ތ8U!W UE  Mx5 t TI J ߟ C'  P)  k5 b} (O 3K 6o   B h M>5 O Xlo zp+ e K@ p   {!}  :`Lp ~ npe x>} U /I FI  /< T m$. r &W$ 6 _v |  JU B 2 n  6 Xu !l= <[ )U' _1o Zq:: ) F NI]G Yr a6va Aj@ r+w oxW -C} `^x >Qp kk PE4e  (b\ Q#X GJP MzJ eM8C -< ZU7 #R1 8j}- r`( EM# T! 1C  6 \=] )d} n3 P9 `   3@ xj noh <.< O G< c pb y# N `* - EY   M 9  [=  Bo X y /a O     V]8  a eB  1 M)  ,V  ,  U S1 * oJ  k ] O 9 ^v t C 6 # G) p[W y~ J9X  #.  a ?A X[_ ,| s i \ Q8 C 6i ! }  [ 1$E F"m dP W, f T"4 C < & 1IE   kyM w$S `_:V 38V_ hb |d x I.o a jEq O cx 8 _  /aw ?n  _B P4s2 |DGS P9_ h(t P  v 40 d  P X e  K * < lG . P^ ! 9z%  q3  MA 1AQ o i +6 y a7[ ;lE m[M VTW 8D`% 9h; 1qK $xf ~5 | z F v ck n C i ,i -c F J^   c[ 9 sU T= S eq^ P Yu L uJ K ^d8 H LM* E @@  D ,# B   B  A 8 5E $P EG 6o _J |M T Wqb W 9Yq ] ; f p! i e$ n YA u KW #z Ca +} :{ E /xv Z &jq e Uk  8l[  WR  8D  /3 "N 'h; 2a i7v \= BfC. 0NG6 #DJ@ 'OS S[ Vj [:1 w`WR ecjq }Jh ]L0l F*p * t w3" yD- z+hE |@W w}N` a}^w B}y 'p~ s] TA- 8'M & ~r p}) ?}*E !{F` ye) ox}C {`va jBs Om,q CXo 5@l h e5 `6U [-aw {WB~ h[Pb +*H r BZ;@/=4kP#/gi*Cl# "TA&#?+ K>]`wJ}\ef7NX#)-M, w 6s8A:2ZG>sNXVYj@[ExOa/{iiooVXvF5D-zjq<]fks)W79LJAeA4Ftq{+a`f#Ia<4?&& 0 7F Uf3$]XM/51[= ~OqXP^]{rlDgt|((:} sh3\ Y9U,uP~K8tUz>U,Y5^=*p= l ^ 1Y߿ \=L߁ ##I 4 &1!Eg!0X/!Nd]ޢ7!qp=yO! U{a";rg"d}C"yUj"pJ}"4`kݶ:"iL3{%"9[#**<# s#-%uܾ #Y7L܎#PX3$d.:#$sG>$qYq$1c_$Iu۰Vi$cJۃBu$+]1$|H#%u +%aU%(Xx%W.Ptڊ%N96T%e2&%}&t2&#\\&R٢Kl&gم9&UT# &DB&*$& #'' '/%ؿ+9'Y>ؒ=l'Ug@'in@J'7 kZ'Q`(=׶:k((c|v[(P r(|=(x_($iA(/d*(3>b׹(XTQ֗ )w`Q|*)rI_V)=+j{): V) 2\<); +*֧)m !ֈ* ^(* #(J* : d*!Hޮw*$!^vޗ*D!pWկދ*[!|Q՛|*r!.yf *!VU *! HD+!**+!;+"W+<"ԧv+s"9z~ݹ+"Q_\ݣ +"mL1݂+"& h+#V +# = ,=#ӯ'  ,^#Ӝ #,g#ӊ>,# ^N,# P[,#/4n,#O ܠ,$m sۊ,$hl,F$ SӧC,m$)8Ӏ(,$75d ,$ =?,$'G,$=N ۸-%TVڜ-+%q^څ!-7%bv,-M%oҟY8-q%t҈@G-%~u/zJ-%XoT-%;bf-%"O`-%: ڲ@q- &_ُ,|--&rx-:&ҷT -_&sҎ0-|& s҂-&kn-& )gP-&" 0]F-&/ @_5-&J L]!٨-&` XR ٘-&r i]ق-' yWd{- ' VJg-,' c1Q-5' aҺ4-T' jҥ-[' pҡ-j'5 v҉ع-'V {|؟-'f /|rؒ~-'z Cfxx-' Q[f|-' aRYm-' oPEl-' >1th-' ;"dW-' ;JQ-' )/A-' ,1-'* '-'J إ-'g <ؑ,'y ^y,' ~.[t,' 6K\,' M:F,' X%+,' c,' v ,' t,' #a,'# 6O,'3 X ؾ0,'P zاw,'_ ؗP+'w !y"+' ?)`+' b.K+' E=1h+' r=~L+' E d/+' QB+' N#*'! Z*'( #a*'= $Fhظ*'N ?[sد*'W ^~}؟l*z'n Ր؇`F*j' ՛x8*\' ղd)@' 5L).' Nj7})' {%lL)& 4)& (&1(&(J>(&&NpQ(&,i^b(&7rٿ_4(&Iׇٳ:(t&Qؖ٪'[&]3صٚ'=&n6jيy''&~d{?'&mA&%14T&%pYFs&%S{8)&s%ٟ"R%R%)ڻ*%;%Z%%Y%%D2%$ b%$?S$$&MT/$$/}uf$w$9 ۚ۽$T$M]۬#+$YHۣJ##e܎ ,##}+O{ "#kFxrw "q#ݫ], 7"<#P !#%$G !"Ua; }!"<0\ F!"X(: !"|" r"Kߠ N"C g *"tl  !!$ !aO x!9 W!((A !4 M ?%;߻  KwD{߰` m Vߦ. MC ]ߡ  a& k\e-mRhJn+bx,:xfq }X~ !Xx5zrXK6if-a>cpYo52U!KN,6IBkItGB8<zEr&D?J@S${A lR>';-<F4 %( !2_ y=*Z }&)[ W@ >z 2a fic -S }  O  $ C "s R) 3 /M Eg j 5 T 4 `<N tH9L |, 4u z[lQb k"X ^ iUuA FN? K?kH g/r@$r \o$W(scgXOkD"XI^ w_ 0Ns* vn8 |[Ce qr 7 `  OPHQ C_b ,X w@ FT~ ;8o`[eN!j7Nmgpj9/X JA<M+27tz*<@R A%4'HxGqh|S@}5no%?K7^"J=wP8f=yP}$-Sg VT 6m߮u rbTgQ @ 0!!$޽l!d{t!> )*"+jݨEq"e\Zl"z([#fLzi#%!$>ۧ$mSMB$ kT%ڹG}e%nooo*%`>;%F,&/٨w&v0zr&G23.'fXX'Wؒs~'n->Y (88s(S`׊"(: 8)t)C {Y֟)z *e.l) >8)ߺQ* Nޫu*!![vޟ*L!h'Ռޏ7+!ySށX,+!2xvi+!xkh+>"?Ԭ\,m"vTN,"+G:,">u -<#}Ҩ6D-t#Jp--# *%&-#!&.$Rf.J$vљy.w$wRт.$]"]/$2&;/$ i/%%/6%8вf/f%τ*0%c]f0%d(0%"10&(fD1C&{Ν01~&GQr51&"%`;1&5B .2&߹HF \2&ߔMW |2'qU 2&'\0^ 2B'E͵e 2T'̢s!?3r'ޜy؂2!{3'wzdؐ\!3'fBQؤ!3'OH&ؼ!!4';"R4')ݑ7"4(Xx"4%(s' "43(\ "5D(&ʵ/">5S(ܲʦ<#U5^(ܨʡL)#j5a(wʖd]#5u(Qʆuv#5y(xEʊ׊#5z(iH{ר#6(Iq$ 6(.v,$I6( ۟j i$v6(tsi/$6(FMfL$6(1et %6(xeו<%7(^c׮R%7(Dm%?7(!bڭh%Z7( Lڨo%\7(-ڕ|%}7(uzC&7(lȈ]/&7r(Xȑ}O&7l(k@Ț׬&7^(Aa%ȩ&7R(Dȶ&7@(3'8/(Z@'+8#(׆o'68 (_qش׹']8(2G؝'_8')؟'m8'؆*'(8'}8G0(8'wM`E(8'm\؋i(8'`cqر(8'DhYǂ(8s'O[ǜ(8U'CǶ+(8B'?T)8"'?؏M)8&T$ x)8&"w&))8&ML()8& e`)8&ǁل*8q&m ǚ٩**8Y&= ǶV*8=&h*8)&y*8 &n K*8%Nj*8%C>ڒ*8%Q f*8%DŽ+8g%ǯ*9+8:%kd+8%uۦ+8$Bd1+8$H"[+8$'DžH+8k$)ǣh,8K$:ۜ%,8$J7@,8$+B F,8#U5h,8#SYA|,8#}f|d,8o#frǩܒ,8@#NI|,z8#+ӎ,m8"ӛ74,Z8"Ұu}#-J8r"fҹǥݭ;->8D":N-$8 "(z-8!|8O- 8!vbx-7!lW ȓޫ-7\!?Gȴ-78!;3-7 !(> $ -7 S4N -7 d\n -7 x|ȏߩ .w7S 9ђ 0.h7$ ѣ 5.K73I V..7p q. 7yfȠ y.6B2y .6\! .6S:, '/5HF =/5ezE C/5kЉʯp P/k53zТ [/N5E i/35%A j/5np/4y˙4~/4W˹Gt/43Co/4}yW/4fr5~/z4F|Жf/_4~rЮ˙/A4Rt/4!o>/3l7q/3|c;h/3_eZ̙/3J1bЁ/r3 WЖ/]3cж/83[K</$3WiM/ 3c͌d/2_]!͸/27pa;/2Zc\/2Bfw,/v2gЛX/U2gи͂/62grʹ// 2/kR/1p!g/1zK@/1dqdk/1Q|ЀΉ/n1d<~Сί/V1=#}д~/?1"y/!1t/ 10"o/0 N1l/08nA]/0}]Ϙ_`/0WuϺmV/|06ЙF/R0 n I/50Y/9/0GT2//0|.//u7И"//ZUд//=i//"Є/q/ З/]/Ѳ*.?/68.-/K;./#iL..$чV..o85ў_..QEYѿl..0Qrw.~.bє.\.|nѰ.C.s-}.'.gBv..gUc.-^j`.-WzS.-Y6҉A.-lQOҞ>.-ZN[Ҭ+.-LLyҾ.{-7Jэ.j-&GѤ-L-E -3-H --D2-,E@0-,IZ*@-,EcAP-,IrO[-,Jihw-,Jtsm-,N҅{Y-n,PҜӈO-`,sUҦӐ=-P,lVҽӚ/-8,_]Ӧ-(,VdӮ-,LgӺ,+@t,+7|6.,+,F@t,+$eZk,+ys`,+}Wi,w+ӖOX,a+ӢCF,Z+ӯ<4,F+1%,8+$ ,)+,+ + +( +* ;+*V'+*,xD|+*CT`+*Vj@+*hԄ(+x*ԍy +j*ԡl*V*ծX*M*+չ H*?*8 :*5*O(*'*h**u}**_*) J*) 1**)E1 *)c@))~'Rx))Cj^))evB))*և/x)r),֒_)i)2֟D)Y);֪8)U)>ְֿ)G)D(ָ )9)K@ֱ(5)RR֬()Uf3֩()\R֞p()fpךY((fז9Z((q0׉5((yF׈((zXׁ'(0#nv'(J8wr'(_W؉k'm(xpؙcz'g(؝[hl'Z(رWTU'H(ػO77'A(E#'.(E '(9& (%60&'BU/&'d-#d&'FdA&'YF&'w !%'#څ%u' Dږ %^'%aګ %Q'Fڳ o%F'\ Y%3'u| 7%(',^ %'6E $'9& $&FBٵ $&Mc-ٱ $&S.I٩ W$&[Wh١ )$&c~}٘q #s&jܝٔO #U&oFٌܴ& #C&|oـ #,& c#&"s ;# &@j ##%W h #%r"]} "%/5Wa "%ODSI "%wbN' u"%xI K"|%ݕF "Y%(ݹH !8%Q.C !%q[D !$F] _!$:@< 3!$TB# !$h@ $&߅< q$@ߔ= b$1a߬; E$L< j /$e: I $y>z % #BZ # 9CA #H_N& #U d_# \88#%h#An"^?)v"rbAz"d݀le"|~݅WEx"z݈G'["tݑ0="lݔ "i2ݜ "^Uާ!U:ްc!I0a޿<!9EW!)`%!yG~ xhn PN? q=} *,X 88 D> ^JUd$:aE3XnE`uY'7ahRKy|^+Uj)[]I%S-9x?-y@RNnd)sf:r/]OL&t)u/1bG<RDN0KWePo~]W[Xe"2lr&y:Y_.~k{@xuD_sN~n+x.j Ybg.9fB_g  ?hY kym'um o9A q J3v me2w Sx_O ~{;q zY {4 W~ 5d ~Q'/ yz]p n8MY fs$h [ H#J =JW` /tv5 R %5 TU Zi  3H / S(#lT,-^:eO}SB >d"]"}zqy `U==^IWl>S T< P07D fZP8kF/%wDS^^GC7zyN"_ o) @` K" Lo  `(r T#, \16 +K# agA  qk+ W D s >j ` 8 N thU ;t K ## -!  >> S 4 - e@6X y9X Kk { H, | GX k Hy ] b{ P 9^B A 4* 1 SW %  &  Csa  d% ^q \' ?4 > EkJx l}dS  /`  k5D  u{@ eBf} =u d^j w,Tc BZ ]A IO  H ;eW = %g 4 %_ O+ Q7 ! T  6)  $P A [ p 9p  J@#  #$c  m7 8 # i Z B DL ( *  f^Q ol 4 G #R. /%{ 1_&o y0& 0(R$ $HY g$zv @dn$ *  >Q pW i)  'E^ }4" C RY u F h *=N  W >TL Y  a)d Lm om y q A+ L| ~f  [3 # Ts ^{ nfK  7.4K  C8 |X M>  bI> <  %6 , %߲1A!i ހ-c2! N&! HH ! ! *!)! ݻM"l! rF"! WQ k"! ~ # " @w#I" aܟ#" ^U $" }$# 27$R# ڑ%A%# Js%# x+ %$ P)&0$ ٫&t$ jy#&$ >bC&$ &u+'$ qh'% N~'D% "?؜'% dBJ(% 2q(% jH()& ְ [)l& F)& 5P*& P!N*' %*'' [տ*"*_' Շ*[ +' o-y5+' }L/e+' Es!3+' 38+( =#,5( ӮJlu,p( }j|T,( F7bd,( &x/d-( |։w-)n k6֛-C)[ +Ѡ֭G.y)K zֻ:.)? `_Z.)5 0;.)( L//) 3F/* /$* R@/G* 4гe/P* Ϡ,0y* >q2k0* {aI0* 6Cga0* pՉG1*g զ1 +L X=1*+, 2F+ SͭG2[+ 3͟ n2h+ k͈#*2+ 9n1G2+ 'mAn2+ uQZ43+ B=mQ3+ ;Ԃ3+n ` ԤA3+J $3+* ^-4, w4, ]Hp4', y&o4/,{ /ӟ:5=,K ʶBv5Q,, ʯo5N, vWʭ5`,9ʗ"5k, ʙ8 6g,ɒT. 86u,߳Ɇyr c6y,xx߉ɇӓ 6|,]WjɂӸ 6,-5Ɂ%!6,{Z!7,ȁP!F7{,ލȃӖ"7,JK}Z"7},)ȋ "7s,'LjK#>8{,ܲLj{D#]8q,qܑǔӠu#8n,GoeǑ#8m,%>Ǘ#8e,"ǜ $8b, ǣNW$9W,ƫ}$<9U,q_۽ưӣ$H9F,B"ۢ%97,_%Z%91,Fa%9,y2ӯ&:,! g&A:+m٬R&k:+|.ԛ ':+8JAq':+nT"':+EbY';+xԠ7(9;+K׹āY(K;w+$׵ĕ([;]+E׈ĭ<(;O+eĸp);:+w\ԩM);+3*);+0 I)<*-ՑF*.<*<չO*]<*Ջva+(4 /I>`(,Хg/c>6(kϚN0x>'tk;0>'IA؍0>'SEkB1>' ,1>Z'Jr1>8'tإ2 ?'2P2?&-S26?&MPٌ2@?&Dͺ.3Y?\&̐] 3}?-&xZٸ 3?%q3: K4?%v?vڷ 4?n%%4 5?0%ڍ v5?$0Y. 5@$]W 6 @$ֿۦ Z65@Z$ sÿ 6G@)$'ɮI 6V@$ɩܔ !7Z@#4ȘL7{@#Z}uC7@u#1ȃܙ7@6#)do8@"qM'x8@"W"Nj9@m"-p9@"ID 9@! LRA:@!l: A?!P ;"A !ھ ߓ6;&A :پM;3A :ľZ;IAg Ļߚ<>A5 <þ]|ASP>A0s*a>AjuwBA㨽]MmBA?rflBAaSW6CAxⷼhhCA7iu<CAgHDA,ֻtFDA`vKDA}XqDA){7DA|n5 EAm߼ mE}A-8y E{Aa(1!EhA ~!FnA].ƹ!FF`Aݡa"FKA[Et"FNA_M#G8AŸѾ#]G.A!|Ӿn$G)Ai:ྸ$GA/` $ HA4%AHAښqn%|H Ayz%H@E=]%H@"B&I@ T&I@Xж9&UI@8؋=9'I@jY5'I@K7n'I@E_(!Jm@sõ5(QJX@/ם)uJ>@Jiпw)J(@e0ۿ)J@6%X)J?M*/K?BŴ z*:K?lտ,*XK?$Վ:L*K?rL>+K?`\lt+K?!l: +Ko? V,KM? G, L.?? ,*L? #ӺH-UL> ҧ/4-WL>J қ_-L> Gix/-L}> eb.LV> R=.L=>> 4t.L&> v0 .L> R!=.L= $~/L=h D«)/M=< bN/L= 2/M\= Q岳j/M8=w 2®/ M<& 60#M<߲FG^0M<Ê0Mg-uЉ1Dk/ic{Ч1WD/Gݻc1C.=61CW.Θ1:C.060B-2SZ0BT-Nϙp0KB-qٽ ӆz0A,k/WӢ]0A,Tbӱ@0A^,GϤ02A,./@+3H/@+BЂ/O@G+ot/?*A66C/?*СM/)?>*j.>)Yя^ք.?>y)q֘R.=)[h״.^=(@o-=r(15ì-<1(!ht-\<' CU-<'s,-;j'\Ľ,w;'#Ӵ$,#;&OF0,:&[Ŗ?Y,i:;&S,9%:Fa+9%MԬƧq+9%B!ۇ6+8$qԵ|۔*8Y$e8/ۤ*7#RնFܶT*7#Eɏ*6P#;o)\6#/@,)5"%|/hn)5{"yʤ=)\55"(4! *?>(4![׎~(<4Z! +(3 ׆7'I3 E̊'2A ؃",'*2m*&1hZٚ1{&)1 .8&0ڪϒ>% 0KW C%/l$E=%W/uJ$.l2ѭL$.5\ۅM~$;.FQ3$-U҂Q#-_-ܻS#-C/UH#,ܹӂV",T76W"{+UW"*vpոX!V*iXe!)ށ~W 3)R3X ( s\Vf p(fU 'o<حT'9KRK'/QD&^zOx&j"ٵN&$p'K\%hH %p-'ۺE$@1# b܏<^#@m7e"gD2E"@ޱ.!+n+Jd!8' 0Lߍ# Ry n3 +kR\RM+D/ W3W KAe51dU%d_ar/J+6F r1 Z u!$ 7v>f  0 Y <   =3y mb V C$ 7C JvXd' \ Ls5$&i4u\UQW<r9])"} /@> YnQ #N\),S=:{ZaJAb)?~ixw}bC>e7o&DZV-A5XJ,%L%6 ;=GN__\zUsnW }FrF*Jb1E@<*R2`1EV#7,>8[DC};v5%Wa`!sKyzr0:w] JJ  *QT],!QL 7jW#S_oiDv@^ADKT*9 7!OTfM'R:pjG`B!ZC d l): z_~i sl 9Z;?  N\~  X: ] f) EYJ % Q , &% P E$ | n]Q Sok %~5 -gF 5P& ! 99! O @U v F{ HeT9 L'%g O(  QlW 6 RC a T#Y z U >~ T\  UA6  U4J> Tgg S PujM[G:G3RAg9#P-pI~$u]iMK \0?% &. Lb "3zt0W%V9j/EE6e!XDDhI'{$Ly KV_; bWJ[ }[4s akX a SD d;3 d# g 0 fE" cZ; "djP +^p @Yn OQSb \E9E l8 {(~ t?/  gfW Y}j xV [mI# @W@+ -F?8 ,5G 0V ,e. ){U' w'zC ay%W FQ*{ !s( ^,   C1,H  "0Kp  5a  e7z x A9$ a $=3 O @C 3 G(\  J@j  Saz  x_7  ]agY  8Ty ~e 8 n1 "F \  r K w?8 Dh"* %.i ? ? 5O% KU tg v$5v [4S| 8{Ic hb3 ^{:w PnV q?d3~ :/L $  H5?iMizWjL1}y,"`,/CKP5,tu=ntG'9-Q Q.VM_bRi7b k +\u=*}F]N~~ kjvHIFtq/{%p:l# h/E hTMo qf[ @;c. g+  f4V  Igo v `l' = #l  Yn'  p?M  rrA} s lt} R rNu , <+z  { (  FZ8 | |o wa .s p' L> f 7 \ 4C PT Ks G t ;2D05,c~`_:=^P+!dCWuV1Qk~~]fxNN*V>V)@1%m$x 0cB' ] Xf ~ ij-  @B[  #\W  (q} ,u U KZ a s> 7ls ! O<  4m>  q  (V)  (8 / PZ7 O gx n Rvy z 6p Z EbE> |. 1M   `A- x@I 3Ncm X4i glR XR4 47 @ sK h# )T;) &T(> yxG]s _nR W* mi# eTt m?D +-scx pIX 9o; r& ,c+ 1X*FFO }Smh= ^@w m^[ '|3~ [ uY rK &M @(Del}]SxQf:9A/H39o_;uiFW""K"!F1D@o;a A9gVX}\6BRb"Oy4X}+ =Fl8/`,VjXGtmJ'1?77 u`6[gt(`P&V4' &$ISEyeH |aVv p[ ';%vkuhYN/ Hc O *1ߙ IS  V 8I ?ߋ\ ^  "&ldok4 - uQ2 <  T: tD $ &  *Ds _ N}- I C4-  7   @@g ] | BB ? \M  YS<2!} ^n!' #nq$! |9"8 ݉T"m pVݛW"`o ܦg5#STܴ0}#Ghܽp,#>f.#0 <$*OF\$$0.$8m%\h%2j!m%Z/7a%rLiT&<e\&k)|&{ 8ؑ/E'bث'M'<ع'@Mk ()Q^(*0~( o6(@'(? R$)6(])|L0)&3g )Հf/*pYդ*JGt_*/Xs+`h n+dKf +=5:!+Pw! ,Q޿e"R,ݞzZ"v,{~qӏe",dc7ӫ+#,J y#-4gk#@-Sۘn$-YRJ$-(CP%-VrP&_.|nقѕr&.VRUѾ<&.-'#/A) 'J/נ%o D(y/_iC (/9a4 )/wj F)/{iϘ ),0V ֵϸ( *_0=Քp [*u0_kq *0%"S Q+0{J +1 {3 J,^1k}p}ί ,19Q<J-1 | -2>9O.;2Ѯ`.b2TCя̀.2ibͫNj/2Er6/2-UD*/2:_0#3-053R:61Bq:6[6ɐ;6[#ɿj;6&hq;6{4;7)KB<7Ȇw<27b`Oȹ<27%MI=P7v|ŸI=h75šȆ* =j7^ V>70߀p !>74k6Q!>7^d!?73޺UȞ!p?7PwF)"?7.`Gk"?7b?!"@7ѿ/K#7@7ܵ9zN#r@7h}_)Ȼ#@7&$@7 ߾'0g$IA7 gۈȁ$A7W 5N%A7 %0B7 1ڱP&~B7 U Ȏm&B7\ )ȹ&B7. : &(C7 ش#9']C8 ؠEh'mC7 xwu'C7m +5Ȭ'C7@ /(C7  r(2D7 Z׳O(kD7 xȅ )D7\ K#p)D7 O/!)$E7 վ1`2*TE7 ա@Ȣ*~E75 >VL*E7I#*+E7_Rf+ F7sعbȍ+@F7[4Թhȸ+PF76Ԣ| ,nF7 P,Fy7\J,Fh7]@r,F[7p)*ȶ -FE7$Z-%G:7Ѹ2-4G7DҵȆ-qG7QnI.G6 X.G6G07`.G6vBɬ2/H6:\h/%H6 ͷn/CH6BвP/]Ht6Жu0pHc6wώɣ,0wHK6;vy0H56qT0H$6UWD0H6/ ʍ"1H5QS1H5 H1 I5;ݶgf17I5p¶ʳ92GIe5,ͫv2dIF5k͎D2}I&5tʆ3I 5g`˱!3I43]d3I4{;9"3I4e6JG3I4=8nˀ3I4c˷4Ir4544IL4m4J-4wd4 J 4~= ̟4J3E 25&J3Եa?f56J3{ʾ}5FJe3cWʺ5FJ73 ʮ6dJ3ɖD56fJ2ɣv_6`J2jɑDͳ6zJ25^ɇX6oJ2Dɖ~6qJp2Ɇ@6}JS2Ȉr 7uJ/2zȈ͚<7yJ 2Fȇ m7xJ1rȄ:$7J1LȀcY7zJ1$Ȍί8zJG1%zB8J1~9_8vJ0lj5φ8J0VBu_8J0'DŽ8vJd0Dž+9J>0h59zJ0ƋύO9uJ/dƍзc9oJ/'ƖD9jJ/\Ɠi9hJ/RƢP9TJT/ƫЛ9\J"/Kť:PJ.)>:;J.žic|:EJ.xvµѨ:0JI.:Qٵ:(J.#ֵ 0 :&J-8l ;J-bҒ ,;J-S L;J^- p;J<- r;I-R ;I,Q)Ӂ ;I,mI"Iӧ ;I,?/: ;Ie,8 H'A L>G'- >Gh'5'(>GG'SC.>G'id7>G&&ٔA>qG&[PٲK>ZG&AI>8Gc& ۸c>G'&9h>F%/nj>F%nI}ڵ>Fb%5rb>F*%v>XF$_>O>BF$XϹlz>F|$wSۙ>FJ$UM >E$'H+>E#CB>E#LdM%>E#;~K>tEn#>`>MEA#F˺ܓ>"E"R1ݿ>E".:S>D"5G!>D:"(lY>|D!+&އ>JD!c$Ȼi޴>$Du!.">CC!4(>C ]>W>C rch>C '߄>SCY e߯>9C( FӼ>C ,->B%)[>B)S>>BN,f>cB.>,BE/h>Az->A8:Q,>A.~+X>vA4Vl>MAB̾>!AWV5辿> A2DE >@*I4>@HRF >@U|q#>n@wXB>E@6b׿u>@xa%>?9j>?k x}>h?r!>:?DMt>>"}>>QoCl>>%Tug>u>10f>T>XY>->S> >d ¸0G>=-9QF>=]a5>=W)>O=Xš*>#=I<><?)  ><zz;>l´=7;@*=;RC>=:`6łh=:haYŭx=:<}||=S:R,{=:.jb=9v ?Ʊ S=9%… ;F=Z9Vi1=9 Ǜ#=8<aH=8.†0 =c8°`<78ǝ<7B7<7*:A<7Bs5f͇!=;2O ĐN!#;F2 9~!;2 x!:1Y Pj!:q1 Ū !:>1 5S ":1 Dϐ*":0L RJH":0 ew^":r0 rť.r":>0 z݉r"q:0t XݒП"d:/G KݫD"F:/Ŏ/";:R/l##:/rѷ8#:.do#9y.Ƨd#94.x_6ѯ#9-)3E:#9- \xF$9n-kƬx$9;-hҽ;$u9,#ۑ[$m9,ۜAc$V9,۸|\$@9e,cƴӖ$89:,TU$9,9"$9+ eX$8+Ǥԗ%88+A5H%8*NAFr%8*zjLjՎ%8U*R[ڀ%q8 *3ڝ.%[8) کRa%M8)ǃ֙&08Z)C:&&8$)  E&8(8\&7( \z&7(jxȉ׭&7\(<e:&7(DK,&7'#fFq&7'p}Ȇح'v7W'(؛0'U7'ط"[\'B7&b٘o'#7z&A~Ȱ'7+&M0'6%> `'6%$.]ڟ'6%B8ɒ(6[%Pɼ(6,%b31(6$u(tJ(~6$u׌Wۡ_(l6$Kןɍr(R6P$z׼$(96$VZ(%6#IOܟ(6#4 ʢ(5;#5 )5#B$x,)5"_WnT)5w"kʠe)5F"ֆ+|)t5"v֔ f)a5!_֪9ޕ)M5!YNֺb޷)=5!.Bʕ)#5M! &)5"!J)4 0ߊ*4 S&m**4| #Aˠ4*4> d?X*4x+p*y4`ՙg*X4|(nղ˦*B4:V8*(4>b*43>*3W t*3x+ ̙*3V 4̿ *3$M= +3Y] +3zJ ,+y3]ԏ̅ E+g3c*ԧ̴ M+H31 ^+,3*W p+3f +2\t͚ +2K.l: +2QS! +2Id,= +2EԂ[k +t2~,Ԑͅ +i2me,Ԥͣ +L2HE# +:2 +'2 + 2I6 +1xf ,1q2Σ ,1EiK ,16m ,,1 Ӂ9 1,r1Ӡd+ 3,O1ӽΘY J,>1Tκs H,(16 O,1^ \,1A \,0+> b,0.a e,0Eρn,0pVϠ*k,0PpLn,0'ӈjy,q0ӛ |n,T0tӾ5v,50P]z,$0;|q,0p" Фx,/Iv,//5u,/G&t,/Z=s,/n,Is,/~CTg,u/Ә_jl,`/ӥure,P/ӿЌW,1/dwЫZ,/HjK,/2` A,.S$9,.F=+,.<]/",.5qH,.(Ӌ],j.#ӝq,Y. Դт+?.t ѕ+3.dѣ+.U)ѵ+.A -+-4 @+-# N2+- ]B+- q^+-vq+-ԏ"\+c-ԩ2L+N-Ծ>1+4-"J$+-&U+--]*,1g*,8l*,=,3u*,F:A}*,OOQӀ*,{V`iӋ*,rdyxӎy*},rpՏӑg*g,j~աәyJ*T,gպӘg)*:,gӛT*+,cӝB),bӞ0)+a0Ԟ)+cJԞ)+`_/Ԣ)+` w6ԝ})+dJԞk)+^(YԡP)+c=iԚ7)+eL{ԝ$)+b_֊ԛ)k+ixסԔ|(X+m&׭Ԓd(J+qLԌH(.+ynԄ%(!+z ]( +u <(*$l (*A` '*V2a '*q.xJ z%)Lg" ^%)OW ?%)cL %)0i6 $)Yq $)}9ۃl ${)fۈ8 $s)#۔ b$g)4 ۜ :$`)M6ۦ֡ $U)ofۭ։ #S)~ܱxi #H)<ܾ`A #A)VܼJ #C)r: #3)*c#2)9 C#/)Y*#!) |n#!)+>")I+ֱ")[Q֓")7|it" )jQQ" )2U)") ")!)$!(*>?!(Kc\׫!([~rסq!(k ׂG_!(h%I!(\*!(9!(A (f% ( K&P (0m׾ (R$ס_ (l!,ׇ? (S#` (w,Lz (.;V(%,/(83(R5( p:(+C8n(<]@׸O(XCך`4(t=~>(If(BB(5:?([UG (u?a{(0@<f(?A׹!L(VAט1(wA׃!(1@s(OHZ(x?A{(1B-`(HH8(c:({@{(.$;^(YR0בD(}{0{s0()\O($4#(!( ('/(D> (1YQ(Bx` ׮y(crד_(s׉Fw(g%c )JW );D)#2)I(+)b.),p 7)H֫WG)` ֘EA)n֋.O)oX)%e Q),\^)7@b)!<:e)-F+l)BOu)UQ~)c^)x`v})0cdo)Bmgָ_)OmT֤N)jrH֏A)ttK֍7){wHUߊ* v5>Tߊ* w20D߈* y##<߇* y 7߇* z0߆* z*߆* z%߆* z'߆+ y߇+ y߈ + wߊ+ tߍ"+ qߑ*+ m ߖ 7+ gߜ6E+ aߢ?R+![ާFV+!Uޮ\l+ !O޳^p+ !L޷gp+ !F޽v+!Azx+!>+ !8{q+!1qm+!,ih+!$b_+!LT+!@H+!4C+ !*+! !!+ !0+ !>(,!G4,!SE, !aT, !i_,!tg$,!߄~-, v{ߎ5, lw ߝ6, Y\߲L, FDS, 59X, %t, % w, 4&, p74@, g;HX, `HWe, WJly, yOS~, }nIZߊ, mdKdߟ, VG:l߱, G?9s, 5,9ӂ,z  "Ӈ,v #ӓ,d ӣ%0,[ ӨFO-Q ҷ_j -A y-; vmߘ"-/ ]Pߪ,-' MH߾+- 5,>- "?- <-߸  Q-߮ M-ߴ03 T-ߢ LM e-ߚ)fi i-ߑ:} v-rs߃C -MGtQ -3-f\ -ah!-Is!-Dx''!-C҇?E!-v,ҊTW!-t0Ғbd!-e*ҟty!-`~}Ң!-XkhҰ!-JZZҹ!-B<> !-4! .( ".69"*. SO"2. so"7.z{ݺ"R.[_ݫ""Q.FLݮ2"Z./2ݜ:"j.ݗC"i. ݓQ"p.܌Y #w.܄f8.#.|pJ6#.|рl\#.wfѐ#.ke|`ѝ#.WAY[ѵ#.B&>#.5 ;$$..I0$.sS$.k$.k $.In $//Q,$ / K6$ /(F$/ O$$"/_@%#/rg=%>/ھ~V%?/vdڿЖ|%L/_:kڦЪ%d/N?ڙн%k/7ڍ0%z/$~a!&/oI&/pdV&/Tb}&//pM &/fJ(&/OK; &/)4E*&/7SB&/.hb'/w:'/^Ѝ\'/g< У'/QdϽ' 071>'0"k' 0 z7(80RI(=06#e(>0׵7 (U0kת@ (Q0ZװS1 (W0<נcV (f0כtv (f0~זψ )n0o]֍Ϝ ,)w0V'ւ϶ Z)0?w r)0%vtP )02[ )0cS# )01PD 8*06\ ^*07q@ z*0u/ψd *0nQϛ *0\`2 Ϯ *0IK *05 +0 2+0 = L+0#z +1re< +1DK] +1 ΄ ,/1m΢Y ;,/1L k,:1)Wyӻ ,L1 KӴ ,N1)Ӯ,V1Ӧ5R -\1ҞN|2-g1|Ҙ`<-e1XҜ|j-k1u"~ҊΖ-y1amҊΫ-p1EJҍF-1!x}-1j| ".14t5Z.1d^8.1Vc΃o.1k{.YΧ.1E3R%/1"FC/1 G>\/1B&w/1z`4:/1\V?S/1,'3t/1+΋01g4Ψ<&01F'xT01!g$015k!01BB101oy11~s Δ911W5y11)g-12 QU11-$1 2[C222Z(22yN22w͙Bt22X{͵g22<`22E222' 3 2PM832͇3(2b@fͱ3'2;J3"2  e432}0/4,2OPT4/2!v}482yp͕1432_TͯL462A<452X 5;28542> M532j[|5<2}͐5-2WNP532 $652&`'6(2UX6/2<ͅ6,2hhͧ6+2HO=6)2"*6(2o7)2V+72UJ7$2s#V72}͗Qu72Sp72$TO72 172SB81 ·981eaβU815-}81 h"681 R%3S81 A4]81 V1΂81q : :Μ81R J"91( G5891 X YJ91 a1f91 ]jc91 $m{΋91^ ZƇλ 9o1& 9ƛl 9_1 zƤ% 9T1 U ƸT :=1 Ί!5:81a ΰ/!=:*1@ ޽X!R:1 ޛ!s:1 eފ!z:1 F};!:0 'i e!:0 Vϋ ":0h E(ϩ5":0B >:m":0 vL":0 Y[,":0 +yb" ;}0 ćϖ&#%;q0U ĞN#&;R0( Ĺ#D;B0iܰ!#R;30@ܪB#^;0$ܛf#m;0ێώ${;0c|Щ1$;/IzH$;/#o+x$;/{[5$;/kdL0$;/?Qf_$;/DuЄ$;{/iMėЮ%;Z/;<İ:%;E/9 `%;$/53|%; /v0c%;.J*ъ%;.i4$.Ѧ%;.I"+F%;.![&;. i&;.&Ć&8&;o.ĖGL&;a."ĭa]&;B.%уu&;(.g$Ѭ&; .Di1&;-$Z8&&;-DFL&;-)Jo@&;-$[čd&;^- hĴҍ';?-efҧ ';*-M}'~; -.~*';,؄/'q;,ؘ2 9'g;,؛K*B'^;,ثcBN'M;,ظăWP'@;q,ĠvV'';M,zӓb';*,cӪY':,Fb':+"+=e':+ I^]':+lŌ!d':a+{ū;b'y:H+ؗMb'\:%+تba'M: +ؾx`'6:*Շa'%:*r9՘W' :*\Zծ['9*IwսT'9}*;3ƔG'9U*%XF'9.*q5'x9 *ء ''H9)A$'"9)g7'8)$ǗJ&8Q)J_&8+)!ro&~8))َ |&b8(|<ٳ*׍&:8(kCLכ&&8(`Ndץ&8(Taȉ״&7c(Di/ȭ&7H(9}Qy&7"(-ـg&l7'٪L&=7'J4&7'&6h'Vɲ%65'ڏ%Y6'A'%6&eF3%5&y+k;x%5&YʌC[%5\&ڌʹMF%e58&ڪS.%A5&Y%5% a$4%0=g$4%.`fl$4%Vۙ˔q$D4U%up$ 4'%x@$3$g+{$o3$ܵd}#.3$A̓~#2S$vDq#2$܇ۀE#a2#ܼ܀ #(2#J܀"1#-o"1#?[Ύ"1`#_݌ε}"T18#z["1#y9"0"9)u"0"ލ_o!O0"Pύj! 0]"#пcN!/"އX!O/!4Q .!]-kI .w!߇Ѧ?9 Q.E!7 .! 0- HS#'- |H tT- iF- ӑ ,V PӼ,3 >S, {_+0G+!tQ+l0SԴ}*)CS&{*S)#*bJ d)uw֚:d)Nw%)'k(aWZ(?QUV(aE (#ؔ3'YGcض)z'7|`'' &kKm&gقj&]+:%G2$%[ 9P$p}vL$j;۬m#@z%`h#zKV# /:#= M."ySz^"lݧ0"G!HA!*6,!!B h |WUsߢvG :xw)c!`kYFJF%NE;(XH!%CP4QgH*6Tc~a/u*+dKQF@:0ai !O &wX6ZwDs mgO> AtI N] 9C,? wM-m aq" v * KUr j(#: D4) b_X} 8}r Q+J > (7 ]? ii}bh+A?AKX_pw@,,{Jq^3xTp+2JcB l mW>O`h {) p.$ Mlqkd   (  8 =P: R hC' k  c~ ;w 9 pXa%  9 Y>#p |xFg  E9 4 J+ S  # y vE|d Neg#  L>\ d3|< !I [ y  ;/  w " $ 7 2 L ~P^ h <%Q x U .zhq {_QiU D8E4 ( H >  0ZX ]1 7 D^L z cN8b  |  ? v U x(fm GX[& m? /7p  _(O _ ?0  \ ( R$9 >R5m \sF )fa g|Hq0<'irs* `=W"Y>GZ3W;.Ni2s %rqBJ\c *IR- J t%u6a.9HDWQZ(e6tra r|x< ~u`h qJN f4mA _O2 S%  F 3 BO& 2xJ %yg "c 4:b E> R&  `5 o#G# y)]: v1uW l;g od;y a{YE GfOM :VHM .F>V /5[ "/_ 'e   j n# o/ w:& xB. wF7 ~R? {VF |WI aQ }_S ~aS }bU ~^P {ZK yRC zN; tE4 u<) t:$ p0 p* n% l i 'f  +e $3^ :@\ (MIW ?eWN [kKk qyCR <h3 o6P _0< U +) I$$ ::  1L '!g : s MX m. "a 4< #9O  1 oj{ >3Q tJ\ YYcDbF7nA {owi-j?V_v-Sy AFOY]6x'Z|*]j s5M@ ])9N8Fs+JvUbhCb\yn 4e{~ GPo 0uIcu ~Q9 [? ?0 [Kc{ 1 3U 6-7 +w j R<* : JG  ZAk iKv uptp w BTr 5 -#e  PU R& @ 0Q 0 K 4q   u#  89~ ^D 08 2Gbe W6 Pkft `Az  B t  s. b h9 Q *cR C +&x 0 lvW  c~? 2 ci@ la2t % vE F][ wH q ? $ x #iU d kc} X 9{ I TX0 7 &{ ' g H % 9 Ji j o  %R.r  YI  E]# 9 rr9 h ]v m 6E ] )J. K  : MZ :, % [ @J  e  lTF   -!& 6J/ dGR K ^3 Nv@ D'm RI)V +UD ?au5 x $ @Mr s,  J=/-d^H5/i/zB5LRu?l-c$Nu\D~Yn=`@38 m+Q1#DX'@k`Op8b#T+@ &:$ALLP of yo 1Ut"B8[!\N#k =#x {,#! j$/ d$9 S %T I%Y A'e 7&y -% &|& &#o" 6d ;Y EVߴ QEߩ ^@ߞ d>ߚ m.ߊ z0߆ x ,߅ $x &z $v %n ""o %"(k /),h 92*a B@9a QN=] __CT lmQY xVQx aMsn hRm` rL_P {MUG NQ8w OD(i P9c P0O V!@ R/ 5V  P\ !vWz9&^^H=a;aZaukg jxq&pd_?q[LSyN2p<~-fy In'mIbh[3IWTW~m5KnB D g:,N6*J>+Ll'"xzh`L 8,   .  < #% \ XT y y"~b s +_* > 94  6 @  g:L|  lX< ~: ] YO k 6e /r  Zzt  x ht v IJB l q1 a ! ZX ) %J i{ B0 H 4T W & -j O hG{  $2  ; #d * RZN [.j +6y 4x 8AR L^H> uU m\ c" jA 8-{~k qxHiv G1h "%] m-gR)g(GDW?d'!3je~-OX"E* yq7I%ohRFnI CW*/ 699G?rKsEYQT-[2Me Khf"nu6|@{Cm*wYlo29<gm {\,?T3wVHt+wAeL6jf<,)+K2<uwtvmz]CYA & Q ~I^ J _ vx, S'H 60  w3q >J?7 lCv: #GG JP. W|Rk XOG /\)" Pb <%gt fKjW xt)6j u5 + { Er _ }~ ]b z 7Y qY  p 3kC *gZ QcU bl` LiM^ .:(V V  Q(G 8II jWzK~ oRC Q"@D > 5F9* a6WP2ae'2Ha,#%(8* S!!Bsw CxpSfJ6ww  CB1*nZp"\ E5 h' j Yu 26PL 'o~h%;O7],^`l G d = E-[ *]|oPJ6 &/R v$vK bh4 QP-_d $Iw 1~d Q"<<BWe oh e<8BM3g F~߬y ]ߜh rzT: aDB V7P 8$b "s ~ { ] 4$M J3=ߩ  jF߄ U m dX!s6+!*z7!pG!c#T![!]!Rb!F&w!.?"}!;8%!Enް/.!\\ޜ)1!hVޖ$:!s<D!*lQ!eW! Ra!Gm"?l"6w". ~."( {)"' 9"u D"sB"kT"_ _"P j"E${"2}."j6"`@" QK" ?R"AY!" 2c2"(i7" ,p@"{M" Z"xc"m u"\~ #On#=] #%: 5#* 7#K#X#'V#$5-e#$F<i#-PFk#3\Op#9ofw#Azo|#G{}#it|R#S[kX#?Mkc# (Wp# Fu #D܄"#v1܍?8#p(ܕVP#d#ܢf]#[ܩ~r#Qwܵ#Fjxܽ#>Yn#/>P#(.H#3$ $ 2$U:'$)a4$n;?$PpJN$'K[Z$)ic$uc$ۇ?s$sۑRt$i۠h3s$W۱V$Jizۼe$;R}$(1mk$H` $%T.$Ad $--S$[>p$/xS$?f%(r1% چX$%qڔz+0%fyڢ?-%T_ڵa@%E8J%5mR%#Rc%$Qv% u %upL%8V6%P6G%,,\G% q4 &i~T &yGّz &f!n٠ 7&YEٮ =&J)߽پ4 K&< ߫c!]&+ޙ+-kԶ$+Z+!Bԓf+~+ro++=MA++, 1,+S,#,"m$,9,)Ӱ26-o,v:mB-,~dBn-,ZwEM-,+<Q-, Y .-_**.$-f`o.E-{Ѭmz._-v`ѕs.y->n|/-?ҁ=/-{*Ҋ9/-pQєw//.kk ој0J.c;ϦѣR0t.Y nѨ0.VGJѭF0.N/ѵ`0.I Ѹ41/EWоh1#/@B{15/<!l1U/5&Δ1z/2 ΀92/+kgJ2/$42/ Vk 2/-/2#0*;3J0 ̧Tt3k0ś}30c2Y3066 40 ":40#}41t84"1d!U401,˸'z4\1t˚)5f1Yʓ2151:i6f51M; 51Q2C%51$ G\62MD6.2iRc6G2AɬX6l27|\62h_62Yf;'72-fZJ72&jpc72p73fbp73E;v7)37!y7F3Ǭ{,8d3njO83ŵ@q83|hT̅o83z1*̆83xg̊93sAˍ?9#4u!ˋY9.4r ˑ{9E4opƧː9h4rMƔː99r4n3ƅ˔A94mm˓a94mW˔z!:4jC˖):4jm7˗Y:4hK˗:4i:|ʗ:5g Xʛ:)5f$ʘ :H5h Ÿʚ$;P5dğʝ7,;t5f}ʘXN;5hqʛgh;5d^ʚrw;5g~uKʘ;5gkT6ʙ;5ggT/ʙ;5hP1ʙ;5hCʗ;5i8 ʙ;5f(ɘ< 6jɕ&X61t/,86{1ɔ76Y1ʼ<5217D514jLv50V:U?50yc_v50˚iP4E0ew!x4 0 Ѐ54/{FЌ3/nA/}И3l/ffn̫О{3?/]ШpM3/SЯL3.N)Ѷ62.F)GѾ2.?cv2q.7͢U2P./42!.'U1-G1l1-gGS1y-Ϊ15-. 0,2v*j0,_f&0y,Ш/\/?,I9;/,A[/+:J#/+\Q.+:'чX.]+^eѿc}..+inG.+tK.* VՁ-*znҔՋo-N*n$՚"- *]Z֪,)OpkֹYm,u)?Ӫ*,3)1+(!!d9~+(Ef?+}( hԣ*>( % _*( YE*' 8!K*' p.*v' ֢:)C' 9QJ)' i([.)& glY(z& H׮'("&u ڗ#(%` *Rڪ'%N UZ؞ڼv'9%8 ^'$$ ,<&$ Be&{$ ٥Q&?$ &$ 6 !%# Y@E3%# ~ڂDtc%f# ڳTS %-# h&$" _H}}$"z ۈݏ*$M"e H ݩ#!K q8e`#!6 ܄:#W! "! $\" 8^!" Zޘ#!E Q5l! CQa! >S0! ߅g ^ H߸v . 'M n UDZ 6iTI :M1 -  O \ I 0 }f  ]h-> } < CE M  ",]  >aGh  _z 8X} e #p 'F a m9 dM  W= , * \k [ sN i / %  K .W/  [/> V {mKr n ]F % ;h+  (iu y o j:t / 4 g L W u9Vr E H TG6  $ ,+ 6{Jfa 0VO.,V: fJ(,KXGydpbNs.g\w*K0je(vZ5&Jnu<=@,)qs5AL 7~"^I">/+_Ig:{FriUR\9+_8$'lUNwJYs>$h_ [[2_y Mx2, kB  866 )4&_ VO1 ow n $^ C OI $ u 0p  7 C g# :B, O ^|1k ( ~9o2 #>B 6UD k}Ix l M9 ; ER  ^ U y4Yv e;\[ S_Hm pb+@ ca eH g& :Te [~ fl x)dt9 Q`G p_( A[a vXrB 0UR, GS1 eO KwKbA1FEcFA,}V@rm8K2(u4,`T#H};u4\Y! 6l L 5"%7 0E:%_9G,uNQ2b[o<~gPtGp<_Pz"F\'xm px#h<sbY)g\j8aX{ISyTZIgQeB\Nr6GL+6wK!(mH^JPK DK5P'8(T;PXH`^^y|dooh|}_l kLu]AzR4{@#!s/%o% )a -V !0L# 02;@ G4+S T5h d6 x6t  6cx 6Sj$ 4;]2 3.T: 2 JL /;Z -2f +)y& &~;  kN Xi ?  'r ^ #D  -. 5!1 < !J  F'V  L-f  R7| 7 \z@ D `jF V fVT m n9b r$ul w a |wD$ i1~7 Y|X Gvq  9s  .qq ) Wl : Ck G 3h Y f k e z d, kdC= VeSQ Jghn ~2k p_m [Fr D%u  *x  { ,  }3 < K J "X U }9v d w|L t tl\ z oUu f~3k _fc UMW I,E/ ==I 21c %%: pM ac D x, h  O 7$#/-" ?H+O$`.^;v3~tb7\<npG>[Q2BE+H6G(M+1Q =?P STUrhV,wWr=VOkWU0UjSILn/#JQ>E: ]><q#6[23C.C0%BR,P[)g j"|+ z|; gy\  Hfx .|_  _S  ;C!%  ;0C  1?a  &O0  n  ZeY  = tx  %} ~ r o W b A. U /F C i /   h)  E H  (e  ?x  z\B  Yud  J| p u7 X T H = 7 &    -  <>  8fX  Rh  mrz y ?w S _ 5 R$   :-K  (6j  @7  l GV  JPo  5V p `% O k4 8 s+;  RN v v^ i {>f V Vjy B| '~ -S s - e8 Wc J3~ wA Q R52x |5)= e"%K B]   j)  | F y9n baK`1]:% (',7OT4Rzw<vd=Uc}Ev*>Ke *KR$R9MT!l4V QX R&xX #yCY _e T 4aUZ Q8 \L #HM $ ^H @DwF ybqC {_~@x ]L=] :677 4 &- Y%# DC ahX /|J q.  Y] =' N(Y 2z v ; M HI3 ) OeC  YT ]f-o 4nM} {|q | x `9 m F If \  6 I N7 1 o   }7 Ks6 qL N!%X '3Rn Bz x}O6 Xn_a +Yp fN  x B?5 b -l  J |3 5 Ra  ~ H> "-q' oK1; <`QC ttN u+] j PNd Y 6km G w , O#  0}=  w k ~l+G ^gEs r5ci 2Y ` W6 A SNb  M giK FNH' ,FH D\ Dr> } Do4 ` BH I bFc ( 1G  jI OO0D )S` cZ  e4_' >fI kIf ohx {w? R\{_ 6Nv| {9v W+p 9 Kh t _ p$3 T CFI J pb < t> . Eqg " _  MA(  !)J i > `] F&z# (t16 J=F -G)T  XSf i|8x sxX ~ Jt f [^ S 8T( ? FT ) 4.  n,J  R"h + i" U 0 3FF U` h j5 r AN [ l ? (  ]T  A w" r#(# CC % &V% p9$ -O& qE]# ]gv" B}! ,km MY %@ +4 T4 ~e s# Uh6 0=O !\ *k 243~ }9KL rA`c cK rmUU \UJ^ @:@m 0|~ &m =>X  daG ~4 ir  AN  "3  ) $ )>) 7X4, L|Q2 y[b4 amx5 =x9 o _8 Y I8 > ,B7  g5  3 e$+0 =>@/ $PN,  i d( $v' y9" fwW Lcs 7W "iH F6  ''%  Dm1'Mh4nDC+$`M4JX=.eIq5O{I Wh&_n=gbrQlTVqs>/z-h}K)%zR w&szt> QpX<0nkQl~guk`vj5PfjQ8Ljw!|6jb&l< np6uQ.zvKKxsb~\{xy>V|r+cnR hA&"b+@@^SWYlxRw Kl]EUA,;3>1L'7\Ebo d}p~ gIlF)^#/V-H:=E45N*J*[Jg hfus|u[rM9b2!O 7./"NHrix"Yo$&@Y5+>K/(X2h#5~G9y_#;i{9<SpW=8Lk<!.:n 8T)55?@T2'_~/o y-}V +h9#(N6&; C$(+W Ii`w*~onJP_b5Ql@K1 /&,? ;d Ez{N4`[QGfh4nzy|%|Z+qF0d,45ON9=`:)E};ti;a:iK,9E2G8'X7l53t02eH+.Ni?*7~J'&wY! Wm8y7p\`~9wTSYG'w4x84c/<K&G-RZ1 dHqezz2 }Jo[h]<~M#x 5W%:8( &X)}-s+/\9*0BNA2$_R3ka4v3t33eqF1R`j.6G*h7%F#2Nl<)e<d~JQw Y3Uk8w &t(" e09#\9S?KGwewVv >v@ 7T. --= !c 5 ob2 FF -oQ Pe )u !0~ z*J g4j7 ^<O vQFj SCU 4d7` N/n )$ x 7 jU Zw< J{P  ?ee 2L  $/v  d  R  " 8" ( )2 ) %P + 8j - H ) r]* ' Sv: $ :H  n"Y  Vh  Cu  5/  !xJ  iX cl  T  sI, bD> K9V 63l %0+ q-< R+N <*^ #+q4 'G z %R m %-f ]  Bu S  Q G wf 7 g} ( zY   hN#  MA,  454  0B: %S^ bz' x s@ Y ]u :  ri % ^  pO X F I&< 7A* Z o  [+ ;6? X[  3vn ZO h( eN ?9 $* #= &R+ ,hF 4n*h <9N fDJ, >Ra btrA3l}riaoRS2A>= +!$TBvevGX&$7%24CKA.S[cP`o|pMec-tHfG#"PpAt=>/; el%r VpBUh22D f* 68;+fDDMZiP[~iTE<r,2Px/@ m\b5USV$JIL D;@X<2`^d-lT$< A&Y3nql/7{AOA,[ Rez#2p`q,YH$M(m%*L_`. 0Q3[2h4q!N5/c6pZ35Q05Kn4$q 3n 3lK > 29! s 2j | 1Z2W 1! y 0jU K /#} .Cj! ,5jJ (p{ < $+* q fI @  +^X mD 4@ > Y S  ] : W n du7  " ) 7 VO&o n!T/ 9 s`CQ H~Q ViA^ ja $qx h !u xGJ Do  cJ( :Z+VS;GTR;\ /2-g!"]]\~2>S# h r1xS#ZD PZl]lk1cmPi|_u oS&]2b N H 75 3$?߾ NߤS!m{ o!BrS!D=.! ImS"jc"1!?ݽz"^u܂nc#P\iR#6*$x|$XQ$D$ۯ'%_ڒ@FX%~hW%jXSf%6={&w1M&ad& O\&60/ٵ!'W؛@h'urx'=MA%(&]9o(w|(qD)3RJ)I=ֲU)\%R֐) Kw)!n&*߹P,4 e*;Ep *}P*W *Kx +v-!W+\ޑ^!++˨E Q-4X*ˬa f-4M*˼z -4?yk -4;YO -4/F: -5&4- - 5 -5  -5  .5( /.'57 1.5 O L.'5*f \.-59z i."5|M |.,5a|Y .)5Ggm .(58^| .'5}Nʌ .'5l8ʛ .)5`<ʦ .5Q(ʸ% .&5C0 .59 > .5&P .5 _ . 5 k .5} /4x /4l5 /4_$I /4H2_ /4>;̏[.3fT_̨a.3J\ug.37lщn.h3%uѤq.U3Ѵvv.@3}q.+3|a.3*P.2{ >K.2{N1.2zCf!.2x\} .2{z~͐-l2b|Ҫͭ-F2E>-!21\}-1vwx-1? v\-1^!rK-1x3m+-t1ҞGm-V1ұXh-B1 gd,1#_,1y< ύY,0j[5ϣS,0Pz\ϼHq,0;ӆ@K,c0%ӵ2$,40 "+/)+/OJ6+/ԁN d+e/԰f F+C/w +/&Ѝ *.g3"ѡ *.Z=9CѮ *.FGZo *~.0WՕ h*W.!bվ G*,. q *- #r )-5T/^ )-n֊GF p)P-d, 2)-| (,y%Dӓ (,^bׅӯ (e,G'ׯ U(8,77 )(, M '+a ; '+nBd '+vؒp n'Q+1_ G''+DK '* *Y. &*Jfp &*ٙՄ [&B*p՟ &)SA)ָ %)?^[h %x)'}ګo <%4)P $( ; $(NM  $(ۇ/ Y$c(۰@ 3$>(P #(8'c #'SVAs #'iw؃ Q#h'qܻ؛_ #)'\ثA "&K[4 ~"&3݁ !"Y&( !& KG  !%tPu =!%ޑ&T !W%߾79 '%WE $/UW $Ta% $-ߍrU$S;ہ)$zmoیt#j,ܟ]+#Xmܮ4t#K@ܾ7#8B"';>"i7}f"WQ"&!9! Sl(w!06ID!R>!kI ?1V[ }c]=k k0U v *F xRAOl`N_9,S YIP<L%[5n],+YD!"4  J?tp ^=A._ AFWy 2Xl) '%5Py:<h{uGmjQ8-WVaX"JgKxmwe1wPl|eq@=x!% rVi#d{[dG>&\tnTC9:Qm[xH ?E9 AbO:~,n_9\C%5{*u2 L/ S$-/e,K1'w?s)1kK'g!xU$*(. %X0 &qQck )z98 y( Y+ 4,A 07c /SZ 1z/u, 7JZ 4h8 9K a>zn B<'4 CZ F$k ITAD MfW Q3 sU XU4 @\R0 +^hK ]smx fQY d$=6 gA m ]n2t|r5]\u_ZB{{v5&|S  {5*yG'y i;pJqu*XnZDlh<[zh%id j`mY&[ZGAZB1dU$M m NQF21?A(@P48f>4q&E16Q,vJX'gYa"[jl!Ht7w(fzPq;f +] T& L5 H = AK @V <] '7h 17%s :1({ B.( Lw+2 Vm&1 ^h"4 h\9 qS: zO= E{@ ?uE :p F 4lI /hP +f M (bS "_ W ] T Z X X X V W SV ST QT PO QR PQ PN QS RP QP SQ UN !UL %YG +]E 1_< :f4 Dk0 Kp% Vw  ^} e }m vs  pz  m{ er ]j Y \ NN D@ ;-- -: H Wco' w3B"yP.uZ4ljB`zMZVMqf?Zu0E.t `L?)2*@PMc[ul ku]uI0f2=W IF \,'oB~wj\6aK&P?7.p1j8T<*<AG'F["Js.|QB`U%NJ^=\$hauoqs|:~GXms|Af U-Z *FN hD -<p S'0L q6)7 > jQ Ba  )-k  R s|;r c$bJ M4 M2G W1 g^*  z` ] - u? q; e FQ Y #Y M 5g ? ^1| 1 R $q ru J t]  >G 2+ /hF v E F iV#  3m A @ X x cDd h t{ V Xvz F 5Sp 8 2a ' M1  |` kU7 -BmP !a r `O V xl < 9PV % <  `K  u cz& -B=' L3 ]6@ skW[ ~yf s Ysz _ ':w H _1 4 IaR  }(  1@    5`Y < ~K V V_Z c +1m ~ u  z j@: k Yjk X y{> G NQ0 8 +( $ 05  \g &  BE5% i8$ sLJa yPb \A4r 5' u 4d<[VY~Hm65Z5J':[<vyCvycot?I&4 9& JZ[L&Jl?eyQF!iqV}cztXm@JNWp<#A2b6$4N t  t6(8kOzgQJ)l*bQ5 @>=6 -H^ Q~ "wY 5[b a7k ,or 6M{ T; l{Y uny IqnL kFe. h,E c _& $+[? C;V] nXSs `Ns qJpS HR3o D@` C,G C - @C YF0 J\I <O@^ ORw tV}{ [jl 4[\X Q`I< kc91 ~c2z! i_ mD p 9 #y Fy \n# +ut_0 SQO< i>ED k4N Q&X  > Y 0b 4g G g Sl hn |o !(lp 9:Hq JN7q Z]m pyym ogj 4`Pe TN5d o:'_ 8w[ (aW MQ HM /E 5 @ C8 T- s& ,n II .k) @h B O S! #+ ^: . \L 9 gf G j{ P k \n o5 lP sF vA vT (r vm `  zjO ' |Q: R o,! { ds  dQ  Y( I +U W :S l NQ B aOr S qNe k SOq  L9e]  N'NK  R'2  G # J 7: E fo 0 "g .$ ; *o L 3R ] /+  ,-v @4j (_-B ]},v )jX #*2 H h RZ? 4aV Aoh. V7: 9[dyg fD&7C5`߬ * xee[ 6G i'  :/ S ߙ- x$u0!BG7@!^4M!r5g! b7!DfޫI;!_Oޑ1:!&V?!#K"J@")AݲZw"nlhrg"?=gi"Ax #~8#RܞK#o|yx#&ws?#>ra&#StF#rp!#Dgܭi $fkۃO,$]J+e$Q$Ng$9 8#۠%A*_&%]5X%{ s%1ZڹZ%R;ڝE %{h*&A$"&%!8&0`&"<&D3m٬=&fGNلS&b Eb 'x}r*'dr'AijؚG'O=n2'=8($P( v(A{ת(o)L|(:"X#(F<1)XJ>) hST)(ue~)K`֓p)s-]`)[:Q!*B<g*/wջ)*[>Ջ * P 4+RW+ ]o+x}+E#t8Ԣ+n-h$ԉ+5Um!,A;8I,J#"k,R},#^B& ,Ph Ӟ@ -yqm^ F-|ߏ2~ -YFv - Bm .F ћd!V. ޔk^!u. zWZ7!. =(UX!. Qs!.!O!/!oL!P/J!EޙЬI!|/_!0tГH!/!KjF"/!?D/"0!BG"=0!ݠA"0-"cEϴ@"0b"Aώ?"1~"j?#N1"܎0@/#1"iBN#1"%?4$ڞCyp%4$sc!%4$U9 ۃ%4%{:ډ% 5$%tڎ&<5?%oٻʹړ&K5O%jٟʧڙC&5l%d\ʀڟc&5%_Gnڣ}&5%ZpYڨ& 6%TD)گ&;6%Oٲڳ&h6%Kzٸ'6+&D8ɽٿ\'6Q&?ȡ'7q&;t}'N7&4;؍V'7&/R5'7&+>"(7&$F(8'Y(,8'v(P8-'wבǽ(8U'UlǢ(8_' 9MǙ(8x'r(8'W))/9'ֽ= >)W9'֓v)9'mH)9(R)97()Ž$)2:X(խœ+*f:z(Ֆŀ12*w:(pr7V*:(:M@w*:({'GF*:(g5L*;(EV*3;(!ջ[*R;(գc*l;)xl0+;+)ErC+;A)2Ķxf+;T)Ùց++<{)|\wև+D<)v>ԭm֎+m<)otK֖+<)fQ3֞,<)_6/֤.,<)X֭L,<)Nֵm,=)Hջs,)=*A,G=*7WӢ,k='*1Mӑ,o=.*+6ӂ,=?*$N²,=X*B¥ -=[*#›&-=x*xA->*pX-->*^h-N>* ҥD-k>*i҆=->*fz1->*Jc%->*5F ->*4J->*+ ->+->+.>+.? +".?"+'.-?0+3.??F+ѵF.W?N+ѣB._?\+ўU.p?i+~b.?x+x^.?z+wn.?+Zsr.?+`qw.?+Xs {.?+G_ .?+|Jc .?+B]}.?+>N.?+x3M.?+ 7Cv.?+49}.?+ $+p.?+)3(k.?+4'k.?+= b.?+C,Ժa.?+J! ԲY.?+Q%ԬZ.?+V& ԨP.?+\*ԟG.?,e,ӗH.?,k-ӑ4.?,u>ӄ,.?,8v.?,Ei.?,ZU-?,VB-?!,,l1-?,>v-?&,X} -{?-,cҌ-r?%,vҒ}-f?0,ҡs-\?/,"ңd-W?/,*ҵL-??0,;Ӽ?-=?1,Jӱ'-,?3,Vӡ-?,,kӉ, ?7,t,>4,:!],>.,d4=,><,R!f,>4,j >,>6,ӆ,k>=,#Ӟ+^>9,5Ԭ+D>;,I7ө++>9,dPӕ+$>>,rlӆ+>8,oi+=6,WF+==,3E*+=0,M+*=5,l *=6,AՏ*b=+,!uձl*6=0,Lӟ6* =,,sӀ*<),+])<',NV3)<&,{lq)<&,֔J)[<,֯)F<$,+(&<,>Ӷ( <,WBӗ(;,xn)|(;,FfU(; ,s>(u; ,؟'Q;,8';+| `':+R3ԛ':+wfw&|:+Bٟ"I&K:+!\&!:+'1&9+ 3%9+/%F/%9+LKi<Ԫ%9+`yڊBԏj%[9+ھFg4%/9+QP%9+W.$8+[Jd$8+vhB$k8+9۷xԯ#&8+o7Džw#7{+:ȉHR#7n+yȞ #k7\+%ݶȣ"(7[+.oȪy"6L+Oɻԥ>"6D+oTɾx!6=+"ކU!l61+Rާ?!=6*+Q!6+!5+A 5+BFդ b5*t߽ t> "5*K4*6C-4* 44D4*@Iժ4*iG!W|3*rc?4o3*rA3**|2}*! w!͋f2q*G J͑լ22i*c ͠Պa2U* 3Ͱ](2O* z͵9j1A* ,'1,* pg1$*: `հ}&1*d Չ%0) U H~0) x!^60) 2 /)7 )CF֩/)u WyQX/) aW/) w*.) eD.}) wэKn.g), Ѣ1.[)X *Ѫ֑-M) g)Ҿr{-8) dM*p-)) $-) X,)% H ׾#,(c &}2,( y7Tc+( BP$ +( +hD+((sa+(JՌץ *j(m X՛{*`(RթWS*K(տB[ *;( )((G)(Oxd)(; ث;)'n "؂('8S4^('U+<.('j''HH؃'m'Aءث3A'W'pزy&C';#\&+'yZ@e&'D&'&&+%&-sG+j%&Jy:٫7k%&bQَ *%&3lg $&~@}Db $t&ۜ# Z$U&۵ $@& p"m ##&Acٳ# x# &aچ '#%Uc "%'+R\ "%eB. z"%V O"%2c "% e}x !x%'8ލ> !k%@iޡڶ }!P%U޼ڞ =!;%uXy $%!`N %`G u $&!, $k<v$2T5$*zrj$D0۳9s$W[۞X$oۆMH$Gr'5$pdy$!N? $T8#|/k#<.0#vJt#a:#Sp#6'OZ#E]ܲ"=#XܝM #k6܋#}[~""tf"S%`?"t;X"}"MQP"b>'":v:"W0i"@ gQ"eH?""V "' "! >!eA0!gBm!$WTn!&e6J!4w3!4 t!9`!B޾U!C.-޻A!HDL޷,!J`i޳ !Osްl!N߳kM O߭T. T,߯B N>߲/ RP߬ T*`߯  P?l߯ S V~߭| Rd߯s Q!x߯~` O.߳nV M9߳[G KB߹J3 CL8' @T' 7Y *^#ad. e!Af*Rg5]gBpfGz%fR,odZ<c``FW\iSDWne7Muv%Bvj7{S$} 8y#*z<wD&|W*4uaBGtkPTs{dapyuu|khhrg]Q_eL2@VC*P2 H!2=*+YF|kr ZiAR&3%/) 52@0)GEF>QP`]][zjg}_MEqp#Qw83x#>\ohh[_i;.[MGR)"_Q9gHeAk;@g_T3AHz/o # (J9"o&m,J 2Vhde Z:Co4: ! =-\&(0YLi5^IkAy";uE RP&  4XNL  c Z Cm 0- u G Q vz tO x c`p k| 6D hP  d0 ; Y e W |- >N ML VH +s p@s y8 7D Rd 1 = " 6 ;  k% )~ ` MK { } @x  _  = G7 ke i f"; )$C ( Q5!I{o8PjZCwo18Q6V5dk#zmAJ:uulw~Xp7x.Rrq |3mb)"a-M ]ߥn Tߴ92 GZ߻qX B)tl 3G 'eJ D}M q)u Dn!,"! !,!%J8L!*n_d!2|l!iq?!BEjD!! ^Q!J[!2g>K!u_p! ނ!t\Hݕ"d/ݡ/"X ݲ "="E8W]";Xse"0~uu"!{Y"X8r"A h"'Z "M -"B >"=)De")9f"q"G"kR^"A( o" ݁"sݗ#bܥ6; #SܵNP#Cfa#6#'ry #bq# GX&#/C%#<##/ (#>& #V@#m`#܃|-#qxܚ9#\_ܮI #FA[#50^#&o#{#|"} ""p !4"m0B"fET"`$Wj"X1mz"W=݄"ohTOݟ"VTLYݵ"AEQk"(2L|"#Hw"Mg" Ib"KS"L0 I"O?<"SN-"U_# "`q-"cއ7!omޚ=!Z|2޵H!=IPu!(cWe!_Zu!eL`!#hCJ!5k58!Co)#!Rp !`r su "߃u v=ߔw ^(^߯y F[6PWXeS3MkuTHG`nCD<R$25.a /1&<JWvvtxQCRd9:  D `-S1j'KDf/a&A7|rB"PLMI2T|gV_*j4sKY~V}Rntg$TkB8&aUYvQsE!G:p=>T7Z=y,%s~#gR"**X MJ ES n { @W jK= "zWf ,+3 4  ;"  D4@E  M]m^ | T|i Eq ]- G f  ! m[  uX' & X~Q  ;w i n R7 ;f  ca  2X[  j9Q3  OL [ oD !~ 1> ` S'8 C {^2g | ,2 8 )' ,Y# [ R Q R  %  i,u 6Q B Ys  y_ RJA 7ow 3 %$  FB  uWsm p =D G . TLP ~b f &+ qp B B: q i} Ham v;h@ .  ! TiZsi2]6L "D@Owi:`'!9h%3E+$)o0>P4`\;Y-Aj% FP+=O"}}Ybja&7Hlhni*T"qef|sKE^)qce<6WxjC287HF&c Zk bu  E: D "S 9F& KKK  _u5 d wzf a\u GD a ' Q  G/ H 5j xh%- M@@  d  U U l 'HNU >0 SpR bk? y?|h p3wae6WzNf=ID/+f82'1T +9PNfn :K/_:F0;oUu%f1) o{lK  ?s] Gd~ {rlV CbMM ^L*B /I2 "&( > -zf 6 ly<S >t s 8_)J s6/vR F(  S' #.]A RQf` s`hw z@S i#y Ho 73j _7] kC|S QJ6 !=c Q1 ;iW' `F G A* h" ND 5&V N k tz EgX fW; $3P  + /2,U9AvDtWcJD9PpZHB0]2dOashU}i:fmN<q&T)uh?wt#|lpIPO}_7!zYr0 -3> !<$! =6!> P!<#i!>0}!+{><!>`޹"6BI#9EM#<GP#?I\#AܼM]#DܿPb#?ܿSi##FܹUj#DWm #>ܽXl##FܼVl#?Vf#>R_#?N[#:MQ#9HL"5FI#6FB"0E@", D<"/E:"$E4"$ B-"!*A("2@"C8" O4" e,"#~ {"9e"OK"e';"y)'"7s";_"AU! MG!!R2!5]$!!Df!)cs!6}ށv!{?7ލP!iLYޢ(!U]ްh!IlG 3y8 %`p }gx +`W K R: _N' v%F{  89\&C3BIV("tlu"|Iw J\ \E, G)+> xmP &/h [s  "q 87vD aKi  Wan oR @ @B w a6 _ +&U F n  x, @ < 2 8#O Q z@ ge \  [ l u A[U b rH$ qF 2 91 -!  P  =Z  u, u 6 ?3 )S W x6tg ~m x# ]] \1 q29e Y ( m.Iv7 hd@{L 4qh )X Z yA TgT% E @ 4  E  sI1b h< AYi ?- W pF3^ 88 Z)xGwe{C>YkA|Hz)\TJv 63 g ;\%ln ix#f ij F`:q 'e":~ 7 C :M;I YYC Gd ib2q C  F%xV 6/_jD,W M5p m9( f +#H h=k w ^K !Mk euL) E 6#w ${/o SIL V G)= 9u|)r@QH`9t(w1/NY12<M):.rV@M\2})#j?vV E$ &Ke@ |8:n i P6 B CO [9*5 V]5 XpI /(C\ >7 T 2*: `) t S[^ n ~1Pf _ ^+ )} O UP x i M^[ G x-x ( LX } L0 4W  L T mf }a I >߼ԋ y+#[ +J ,Niӌ !E,ޏ8T*!,M90!,.?!,\vX!I-%ޞ-a!n-C{q!-,n%Ҝv!.sAG!>.cޠ!.3 XGю!. E<-ߠ!4/ t0ޫt!u/R!&iy9!/! # !0!!/07")ݲϪݿ"x0"VdYݙ"0"tI-!"0"\," 10#Ψ06"91r#ݶ΀>"`1#݅A@"1#1F۴P"18$c ΪیT"2z$[XS"D2$ݒc"21%Iͨ`"2{%4$bڱe"2%n wm"J3&ݡNl"g3Q&̟݊+p"3&QVq"3&-v"3&0r"4'Pؗq"(4`'ˏpv"N4'ݥfUk"h4'݉%!k"4'Pg"4:($0˫Z"4s(WmׇU"5(KI"C5)ݷ@"X5<)ݐʡ4"5)9]N֬+"5)gJ,ֈ%"5)/e"5"*5"5K*ɨ" 6h*Ʉ!6* U!<6*D޺+ծ!H6*b&޹ Ո!R6 +3ޗS!|6M+G|ɛ%!6w+Yv{!6+'rR2Ե!6+k<{n!6,*PT!6N,ɏ;!6, b-! 7,,A!7,RӔ! 7,o 47-T ,72-'+ @7X-=ߵȏ M7- Q߹w F7-0 f߱^Һ Y7-d ߠ"ҁm _7- ߠ UT e7. ߖ#- n7B. ߐȢ v7n.> ȁѰ7.g 'W|{7. I~+=7. fo7/ {s7/$ rU7F/L mȮХ>7V/h {ȩЈ'7e/ tȃ\7/ zf57/ ~_7/ G7w7/9 lаw7/_ ЋYi70 J)]710 Ƚ^7U0 ȟG7k07 EȊϫC70o vbyx<70 RVZ'70 H22#70 &70 %70 60MHΜ61sg΄6 14^[61K',6/1V6@1xɼz6I1JQɨΛj6i1ɍh^K6v1Ɍ=.36}1r 61#a610Ed51NsQΙv51|6LwV51EIe251gC<51x=~5147[51_:A51>'έQ$51f$·#41%]41>6"41rYt41x 8r41J͜Q42t̓;42=c42n8|3 2 #Y3 20232 L32-i3 2H;ͪe32gs̀o>32V?3 2:2 2'22]S2 28uͶRr22b̈́D2 2 ^)227C2 2c 1 2.T12 P211#o12DͩY12eBΒ;11vo xv11 I<01+1 01Z 01T#^014#νW201S.Κ01{6s/17:2S/1^`D=/1DWi/1G3I/1X +/1 X.1<:cι.1K`.kά.1d^vΉV.1сm"h.~1шU6.m1'ѝ4._1iҠ-\1AүP-E1m|-?13μP-71P.Ω0-%1\UΘ-!1yxi,1'nI, 1K[#,0u @ ~,04 \,0=!! 0,0l2 z ,0 8T +09S( +0$fa +0B'pϴ S+0ROԉϪ ++r0a~Ԕϐi *c0}զ|E *R05ճv% *F0_a *40}U w*-0.L S*0K? 1*0r3 *0 )g )/"$#A )/L/ )/qI )/^ P)/(.7 $(.62 (.?J /Ѿ '.@\!H '.=tDXѾ~ '.EeqѼi '.@؇S k'l.>ؤ9 C'L.?ؿ" ''9.: '.9&.5*&-6#F&-21]0&-/Cu9&-2ONn&-*\^T&-*lq=&-'wم,&t-ٗu &Z-ڴi%A-^%,-4S%-PG%,j>%,A+6m%,Y:-T%,oA'?%,ډP!/%o,ښZ%Z,ڱc %F,p$6,{$,}ӊ$ ,o1Ԗ $+aI"ԫ $+JX: $+8pY $+ۀo$q+۟ W$O+&C$*+C-$ +[$*!q"$*7Յ%#*p V՜.#*Zfծ/#*K&܀4#p*21ܞ=#[*=ܯA#A*PI#*[(T#*nC_#)~6giy#)\֐yc#)]~܇ֶV#f)8rܪB#C)e0#)R#*#)J ;#(>0[#(-Gx#(%^׋"(f }׫"x(D ݕ"](+ݲ ">( ' "(6// "'?U@ "'PB؁S "'davعr "u'2hݛ "Q' r} |"!'VB x"&@d k"&/2ه d"&ePٰ _"&Ak W"&%݇ R"m&ݣ+ I"K&7A F".&WP ;"&ڇo 0"%]1ڸ -"%2lU "%O݋# "Y%&ݼ_ "/% ڏ !$U $ !$DC !$h'Z !$!ވQq !e$~)ޮ !C$pd)۞ !,$PU1 !$#58 !#8( !#FND !#K܁/ !n#dTަܲH !A#4eh ! #n3 !"]~Jp {!"s>|ݧ p!k"7ް b!4"" ]!"I+ S!!-~O J!!gSޫk J!!Dmz =!!vޗ 8!R! S޾1 2!2! ?W $! ! $ߏ ! O D !  v- o ߮FM / !ߕz J v.-  ]Cd y 3Uߥ[ B \ a n ( v-5  NHz  uG`p t ߤd Ff sW ; \K  C05  k^& { ߟ @I /0*R/hfgvxJ0.a[Mo5~IQz{iqc^M>L9:*@K,Ys^iF,uf0+FPcyze.p:,b-: Biq"+z2RKG \!$d6XZ|xK`coa-4_qH6(P=rZ,n.@  >OcSC_Q"F,I*$&=_HC9oMu?[F^P`!}iq\.pBbwLyS4|1l 38LuVmxGy% wM7stt#{wsA]Kqg4 r Zq@2 rlm,{ t M$@ '  ; QP D  @ l. D'w ]9c D\ P4:$ _y^ rjs KtF asg EAf< .vT i 9d"#B@ : f5,FjG0QMhS,$k VV7 7Kn~+ S0?%uRp<5`BYlsl8i&mxEe]:D+H.4}]\  (mVto 6uD9!+.?)FXb/q9z9DAVG1f=Rp|\%iLc'Yp[nRzNy.ibqp|kJVhFx#heO8b!b>`qJ9v^]Q`]#R[X8isUe@zQ,NN~bK$ Ig)OzHyIkhH-;JL2? NUm+wQ~Yc/U3hW)@Z ig\P^ If_[  mW` a@ cyf : hhe ~ $oi Km? rS Wx  q+~ 7 G0 c x p rh- mBBf g|6  cGw 9 `_  | ]aV- Z2v W_d! S S N, Pv IzX  BTP  <^.  5> # . k' (3 ? "TZ d   RR X &)  A/ 0i Af zR^S  ! ;O ~? ay bw> tXz ,L E4 pw-  4d 9 (ci f2kH  895graze6a F3#I#l$~,@(AMb*a/k48d3oBL N-GI` pm#P}:{=Vi`&at2X[iKDSsE`HZ=|0g30?%* #WCxt%o2v53TECkHEjW#zpRbLOAd]0+pgu Z zAEi+z };{m]z7?~xw[S~v9s!}oMxv;Mp<l`f"yyc#?Y\Ap?ZLs.T^H Lt'Hq =<c28mC$d3]#Z&  '#T11_H^BVi=OeF_xm!uy 6c~3bxQXhj?uh{C*VM  I> Hx F8bb m0! )g`/ ,6v s  R/ W 5 w# M }J ic 5ga @D    LX + g [~N  !AK . # c -w ( :5% R l6 q !DZ  ^H]߄%  N:V   \--  >b !/mn޹ "![xޒU A!F rr! h!:b U!]x4r` A!$ 6" /"A<ݓ Z"Lc "u8 "_"A$2ݟ"wG3%w"q? Ju #T;##_8#=sܢZ#IOp|#s_Z#W?#[.|)#Y1 $G$$4۠U$$+\e$S;4$RmT$5fV۴$$XsD۔$*Rh$`Y$^@ %/ګ&*%wg L%G+Y% I%GDjڍ%&bZO%i~>so%ڻ&Q%` ڑ<%"]&e|(&U8&$A&V8ُ]&6R^g&cm3p&6`&/jٵ@&b#eً&kJ;h&#9 &C+&W@mق& MVc&&-C'#'$1'LWإ'k!؂^('DL(2'`,.'} m<'[GA'JتP'F'izM'9T'YB['jVY'7ز[h'd؉<h'.md'bGr'#_k'(;l'I r'* hm'; 1غon'Z Z؏߇Hl' nS)o' Q-i' )e' 2;߸k'!]_ތ^'+!Uia'N!؜%Fa'q!؇-W'}!v Z'!8P޴U'![GޙR'!r23|L'!ROG'!j 6D'"i6'" F5'."+ &)'B"M طݞ'Q"| ؟n'q" ;؄E'" [}"&" bj&" NO&"8 !Jݿ3&"Q -5ݛ&"w 8+~&" ?#m&" +QM&" HX 2&" af&" ~{p&# Np&#- 0W&#G ܫE&#h ܆,&"# .m&# QU&(# w 4{%*# $a%,# -E%.# B+%0# K%2# b%+#1 s%1#C +ܵp%-#Q Aܨ\%##_ `ܖC%&#u ~܄w)%# zX%# g4$# "V$" : N$" ]>$" 1t!3$" H',h$" \7#S$" t;@$" Fu)$" V_$" ] K#" n ;#" %~ $#y" Hܒ #c" bܨ#N" ܿe#0" /B#" G #! ^ "! t2"! 6Dp"! R^a"! lu O"! ݉#En"k! ݠ,7X"V! ݷ3'6":! : ""! D "!  N! 60[! [Og! 1}xa!k  Hި߉5!F q [ߖ ! a l ߩ N 6"y B UCn 4 rb`z $ ߆U[ k ߡLF T ߼@" / 5  * ,$, USD  zV mo l ?:  l / V >=G > Pq{ wi% ^ VD i 3! u  }!  90v  @dHm  c^c d p[ j; N ?f A L F6 1 7$ \ x m $ ? 9C  }i j = Cs #c T ) b8 00 D$ 4W # ; \B% 3G;? Rn e w[_ Ijg FDw Q0s md \oJX %pL &)F fM]> B}7 rV&4 V0, *%'& P@ ;` Xv pf :FJ ", :6q" sG*F 5Zyp d}i( 2brO D"{ d!Vu C |l l#b ,,AW SZL X< Xo( @O ,F,  AR+5 D#Y ]qm qwon EFX}{ 6l 9Fa _t U n,B L/F5 " `$  ;f s k a5 N  .?K  dr k< 'n   >KK  Yi/ ^  Z( t  W 6 C.` /,_~ J ID  ^  w = x `=Qz Q R.5  j ^xr ^lJ Wqx =feEm w'&4 A 2 0pO{ FtG qh.+$=bYHCaZ*y j66Qwm=nm&0>^{YP!1@aHZ4`X,,4!: Zb+IL_)ed=6nP()"^x*Or4.^d>n3 D w3cMarS'G=W'\^W`dbm1ie1)Vg$iNK\kyTmH0n , 5oup_6Epb&oh`ynwe5lE3uj ]&fU&Xb~Xz^fjY'T0EPr`I`xCAp=Y^55kk . _W 'd: i b [>R w  W( & '9 S > >Y$~ h/+/ (7 5 +A] s oJ Z 3f'V  ab bV xwk  % Ju ; b $ z= J rD G eX,  [F6\  T  HC H >Y r 6uU  *{2  .C *BGj qg-1 FB(5V!fx*(+2h +s;UVKB{RnK0TP6 Zk^fbNl1_rWGy*iVzgIt N$lBfDE` PsZlSSc=O+9!I0L7CdX>`:PT&4z0`L8-4(4]%B%"lH 9nߦ qCP} V  !?_!d! T!C T ޢ"l"݄K"["J$]"!#$gd#W"e܅#I-$#aP$$:M>۲$X(ۙ%}hM%F ?%o, S%E % f &/P 2&L-٣ x&xdn &>K3&&_$'`',e'IFR؞'} k(Q*(3"L(I(mV(^k(+-(R!oס(g%^֓!)}+GkS)41Gm)<3)FW)T/)*^ *Jiգ2%*mwՄBJ*m~ES*ZsVv*y:i]*r+bc*`Yj*CLp* :Cu*)7r*2&{*Gձx+Zԙq +uu$+em-+(Th2+==eJ+O%^I+] ZP+l P\+~|MZ+qB^+^6^+%M1c++A^+7+Z+DԴ_+T ԨO+[ ԡN+i'6ԋI+{?Mԃ9+}Ua}7+p}iy,+grj%+``Q+TI?+S;- +M**I* B*%+B*A:?*8bL7*Nh>n*i7@r*4iW*:S?*53*A7*^8 );p)/=S))E>7):cH)RyGy)dOY)w>[~9)o\`|)jJU('t1(\ (z0׌i(oaח5(a5צP (UMخ)'M_+ؼ';vR'3@unz'&^_V'I[)' 57' & &B &Gv3w&yDl>&2\'%Vs%m1Vڄ%okڟisQ%VڰO:%I=$2#)$!>Y$cq$ Z=$& $12#?7D#[Xv`p#srU9#܎i"b-ݬH"JWq-s"0P6"!*!)?U%!;t9nU!UPD.!a`!sy z7Qߐn i`~ߢ^h P߿FJ( 2. 1Ksd2C,Q ?Cn\_TdsT'Ov#24`+_UOGW'4];$5,Xmw nz [ 5[ O ;0 7 N  a_ Y t ?E  J_l  }u_ k{ 6N /\ p?} G 5[ , F*'   e  9 I3  (U^  _r, + >\D 4 9X t'u i c< z} z9 -j  A H_ rAcQv qzDS}{ ?0Ud /H #2 7 aT  Q\ )() J+ 37g= `j|pJ SBT[ %<i &o )} 7Y} Vyyw p!q~N ;dU% K_; aU ?{H| (k<g K0UN { m8 D!   O "yy ?"X$ \421 Et6 P`> c?I 6p"S R~ y[ p|jh *Y\x I<L jx> c[/ X;# @J d7  }/w +$^ HE ` 2 q  'i .T 8@ 1=$/ HE 7 ZKD sRW 5Xma J\Xn `dD{ zd~}4 iuo% on\ naL  t[@  wV2  wH"  |E  *}=  60  >~*  J  (S  6[{  Ad Njz Yqw avz j{t &st (ysz .p|w 8nuv ;kpq Akir I`dr R]`p WZ\u `LXx jIUz mAR~ x4P z0N y)yL s oJ mlI meH d _I \WI ZTJ MMM CDP %9CU 2):\ G3c Q 2i `)qp$x{|&p:y[ItRPoH df1s_*WwJa =L18$ 8  I X@r)N~5bhE~{VOmPZV:j@+w.t ] L&5L.mD  Ln%dI<v7L} y^dt\ zO +c@JO1\A(p&|# ]*J7"FAP` "_}*/slLAQvhH<|S|&y^rYjjIpc7,yUELzY?vy#,vg>VfW5`z uV  UT4/ ;OKR Jd~ sDv  ^Co ;@>\ 8IP =]< 7$z( 5? n:Z S6 i98, G!;G ?k  B-,b DO>C La hK| KO ,kU! NR;  BYN! 0\g? ^gp eY ri6 Cr5 wI "%^v San pzct b`UJ /@O! ) D  / = -X 5 Kz - {a '& ^ ;i 0 PO  X0 ( r S t7y n`3h {6CD L4X " k;  ~*p y~J lel [}9 ,KZ 4AA ;.< PU T=v _rn q{G) yQ"C s_' e~9X uYdz [nR <G8@ (#: 7'B9&#^P ;sc{R>]h@n5N_#2I I h* IN?u| }lcF<"Eb)('(vE*[x+p28/NP-"v-v1D2U`^+.-@W.7='fH)+'_fF%BCa#  !n ( _'N 3 ( P &"h '*L 'lCn *ZU (kHl 'H. *z3" $f %N $=) &H.  k@ P j<_ B au ~ tz Rg+3 5X1J !R=b DE ~ w:M f3X1 N*aJ 5!nb !yy z  lW ^; 6 HU . r > j c N p:1 V(B :V "f  u ( j46 [NG ?s^ %~ n a 8s* _&M N/l$ ;:K `)Ek GK 0nV N_ 9g "r+ }G '~ `#0r E>b miJQ GU@ $eb( 9%o Lz t% ru(O Ik9k -dJ i\^ KUp& 7O~Ay Hgb  AR j <,> F 5Q!  /t } *'X $&_( JV g & 5h %XK Hq7 m}_ ZH ?2  6 K dC0 wVhr tIH } $ S  + G >vm i/5 Lh dM -* p S [ o D P % 5.  O oz I>Q xZ.q &. l /# I 7L& * >w]n  G BN O$$) S=[\b4BoeMelmvvTQtZ0=z5 vUj>+_\zQOi t@5?5_$a;N3%r P@* a)A\"3Z0-Rn 8x kkIL8PZz m8g(Qt3d\k-Q(xL::+a-Kt{3lk\P\x/sJ>3"$.6=b*V`Lf'U}CtI][yBqFmw,-hj4WG?3o5}"%Ra.u;rC HT&`&%y`$:zVLgX^M `u-Cov,l\i.yH3U;D/-V;pm{.iRg8S pCR+((j7 $DRVQB aSeM m&~ ypa *J!t R7k s zaJ NW t 4P ^H/ (>H ' 7\ @/u > pxv% t WtS >A'   % (" Y RD ~Ogn  ? p&  S P 9 k ,!' H&Z q+0 /j* 2DP :6s n8}  :^L E <- o <  ? =^. ~ =d1R  =Ak  >  =i $, p R 3{ 5** qE eY ^)wNzO A_e9H~'i%+D 5+*?\O,=uY}>b`RSoc5dsIoz1 u {kw /^r.GJmKa>iZk/hlc`SR^18]U6 VK,S`J+O{tD|~PVooOdYMP~G3{O:(vR&_TMSHY//ZN[4kaEmccCg~'z)j6coIFr"^6u.a$|Lt~`ozuvpd.r[_=kLTMg3Gh_9xZ 1Qc#)JL9D8Q: p 5 }/z 'f $#T1&G:, % DV M$l O9/{ | SON h Ykl [ [{|s K ^cT 8 cL8 + h9!  l  s { / 'O#{ Kw7nw jHgZ W^m8 jSL vN9  G#v '@ j =:`  O6S $h/H :'w= K$a1 bB# u* ^ <  !   < " W! . 't+ 7 :4n = M?W G eFB O vO3 R Wq \ aY  e iI i p5 v +z A{| Vnr &q^m BOlf YDV^ u5~=Z (j-T "YP D L  3H (E A  &@  2< A; / 0Q< = A_9 K Vo; ^ qx= q ok< | {Z[@ eBOB \4FD P&<G ?4J 7 .L -&M T V %Y 7b  Ie " Xk 1 kv K t{ Y e k &yP -qx? 2kl6 7g]& ;\O >XE BU; FI( IG M@ (R4 8V.  D[% / Y` C kd S xj h mm z pc rtX sdL' uVB+ vP;3 w>0? w0%E x)N yZ yf  {p  | + "|x @ -~m P ;~b e I}O x T|H \{=x ex-c nu%\ rtP |p< m3z l%r he! e\- dQ9 `CP 3^6[ D\,j TX  mT| wPq Mbp FTc BIY >>J  7,; 4"0 0$  * *( 2%?".2L:=SJS_Ybidmlm|u~~z }r~xji]y]NsYJnJ7e@(Z7S, D 7 /"*7? KXZ(h .s 3v;!sB,lG3_JCQUP BX[8[h+esgzk{stury i} !a$~^(~R .xG*5x=1>{-<JvJTzN]z[ ixe ozf uzp" }{t+ z{w. }u|9 lB |e~I z[xV sLve j?ns i/g ]q_ T\W ROO G9E 'B(@ 3?!9 A;0 P8, Z5# e6 w0 /w * /b= &LQ &8_ { 2w ?f #NP @_ 6 Xi) gw ~ ww ik Y_ AO( .C4 5B  _ p -  Md  w%Hx  90]  O6  e  w " m 9 /Y !M FK V ]4 p ~s  uZ  _<  < # -% ( F * Qc 45 ~ov 8T F] :s x> D Y) C H E =' J e H #v I s(Q sok q\ g:e e(L \2+ J, 8 >D@ +xMK nuV MZ &`&f 5@p M6t [P  |qy) {vx? mnS nEhw \#}b Mp` 1L`7 -`V g  `nI  ,wt / | J| X Hgs ( um ~v h af ` /H; ^ :N X -p M  >F b Z: D ( a ' 41 5 c G w5 RX 8P ~f sl o 4W e u| R rs *9 Ab \! V s V  WHM  0B0z  u=G  G7n 0z 2 cW .R* _1 **, +Y4% /eV X}'- ^+ 8* - '6p {*Q# [*sA t- u Kz,1 )e3l g-:- V&Kqg'0؆&+'iتsGT'D[o'$N'qJ 'R3l'2t6R'@"v8'nثc (>)r 1(, h!K(RޘH!(Ao{Z!(jv]ׯM"(4 w/8"(#(C@U#)nC #+)y%֙ #D)XT۵ָ %$Q)4 ۧ- $k)Mۃ $)^s8 %) dl1 m%)u[:֦ %)B6- &) k &*K=] & *Օ^ U'8*Nw~غ 'U* ؞J$(p*ׄAf(*Ivl(*v$aդR )*FH5)*%SGu)*Z-)7)*S**YK**cԾ>*+",*+.1J+,+{+@+[8Ե,V+ ӤSZ,a+rvӛE,q+ӀԄ5-+fx԰}F-+5Yu-+=^.-+`Ej.+tXtG.+mJԯ.+9\JU.+)C.+!=XR/+2Ԏc/+UrZ1/++!N?0+ cx0+~ -i$ԥ0+8 w1+ [(M1+ W1+ [Ԕe1+O o#1+( :2+ '6Q2+ \2+ jeԇ2+\ <2+  l23+ qAW3+ &Ԉ"3+M -3+ M*!4+ -W/d4+ -Ԡ4+E FH54+ %84+@?h+5+~AdF5+ZLԏa5+R }U 5+QTJ 5+@f& 5+Mkf 6+{rԟ!!56+F޶Ʌd!c6x+vށɋ!6n+Nɚc"6_+"ɥԗJ"6U+Iɳ"7E+1ȿ"M7@+ݫ=#X71+ܗrV#7"+tdԢ#7+Mg[#7 +':C#7+$$7*IC$7*$wq$8*jk4ճ$68*4-ۻH$P8* ۨY%a8*ڊsZk%8*zdǁՊ%8u*^T]Ǚս%8Y*#8ǰ&8L*Ǻ"1&8:*GX&8$*u& 9*wi՘& 9*ZLִ&9)81&$9) ''49)8"'59)PQO'@9)زg{x'T9)sخz֠'L9v)H[دƚ'`9X)(ؕƯ'm9F) ؘ*(g9&)אT+(y9)ׂրL(|9(qׄםd(9(W"׹u(9(4{6(9(`wI(9(]X (|9(@ׁq+(9(+x@(9w('׊ƗY(t9Z( ׅƳ{)~9F(uևט )n9,([֙׵)h9 (;֘.)e9'֣C)W9'֫;L)Q9'ֵR4Z)D9'־mNm)C9'^i)59w'Ɩvx))9]'ƫ؈)*9P'rƸؕ{)9:'bة) 9!'Nwػ)9'>z )8&.w)8&x*-)8&sAL)8&zUj)8&}tǍ1)8b&xօǭB)o8F&֢Ux)M8$&ֿj})>8&vr)(8%ڂm) 8%w6ڐi)7%k Eڙ^)7%c(_ڡW)7%Z:vڭJ)7%NVȍڷE)7e%Flȩھ5)7K%<֎$)`7+%/֯)F7 %&)7$*(6$ P(6$.En(6}$Arɗ (6X$Uאɳ(^6B$i״(;6#$y{(6 $$g(5#&Y(5#*.'=(5#TJ+,(5#lb,(5#הz.'T5s#ʟ1'.5R#.ʺ3'56#P6'4 #pL 9|'4"~);['h4"رQ<<'94"s='4"̐=&3b".̫:&3K"2Y8&30"K5&w3"c٘1&R3"-o&%3!!)R& 3! 4%2&2!=V!&2!jt%|2~!)ڞ͔%G2X!P;% 20!h%1 !L D%1 ڀ. %^1 ۿS$*1 !o$1 Fφ$0j jCϥ$0P `϶h$0@ ۋI$^0" ۷ $40 $ 0& #/,_79|(  5@(63'C2p3'pث2bS'=23 ' 1&#hE1|&Jk/L&rُ-w&\ں+O%79(/%i%x% $@%4?"%Y f!$Sۜ#\$M%1H$(#!3B.#Y܁3T#fܶ7^ #-#=&"k(A}"MBE"<|E"ldާG!MAHl!)xKEh!N/!AQ $rV oLw߰`h 4uhu% %r>ixlix$-n?_s`>w~ToRD|M/HC; R5$#e-JY!od-a/z3^7 sg6e5ghK\^X~fv+m/$o %a(/ZOMvsT@eI/7p #+QKV6UL""6 EfdQkq psx }#T cmZ0j{ F & &  !E( @jUt [$&K p0 +Jg lD_M{ sq5Em  a5  CyQ` $=% h9Z<gT~]B6!jvKoW,R6 7. K]6d#:`}=x*WagJ~@jl'&AJ" dUjp,.I P hksc ^bp E\ %?NF  1^ I, "3  K  9_u  |k z Nb# * /=C  RI  JjA 8 ] k ofY S 9 ;-  NSC  e X g pY  @>*: =~, _Ot$ (q^> *r: t of n KrH Y - @ I ' <;z  m8L w3 F$  5D0 I^d FW| Vwf Hyd x!Ko <~^ [I JG % z5 5pf ! l:j  Z% ' p% Q f+  4O>  .MR-  ]  IXk < x X 9? t f e cL@ Z 6J D8: Ye- _! A' <t j HG  (c%P ?/}8 d9 RD, !KJ VYDx o` \cOg ')s }Be-~ z|Rs a&g Fs\ dYQ ;F =wn< i}4 :\F+ /=" ge C  ; T = l i U {P  74$   3 (a Y yA1  F_9  2B | XJR  *Py 0 oY 5_ ;^ k wd  TYl#  +qW  wy 3 x| h% @p P| , vy v3 (u Bs r x] p N. )l  Fbk &ozi {yEf ENmg 0d g c MSc "7b nPb H)xc pLe Ri5f 1yi [fn 7<3o   dt ߆E w p5i w TJ { ]4l | 6{ } }&   `!& K}3!9 9|T!M ޜx!x o|q! Pkp! %Af/! "_I" \V4" SpZ"' M"B yyݵI"S jeݥD"k V>݅?" M3x;" Al8" 4L0# (C,# !0'0# G# Z# h# #8 oܼ#M  jܬ#\ % Qܕ #z 2 >}# ; #! 3my'#! K~y#! iyb#! zsW#! z^E#!% {F2#!9 |2*#!A |޺!#!M ܅ޫ #{!] ݂ޜ"~!k ݈ސ"q!v 1.ݒނ"o! UKݒk"i! shݟ[}"[! ݨIRb"U! ݱ+%<"I! ݽ"?! !3! @ !(! d9!"!& Yr!!7 wL|! !F ޴5a!!P ߫F! \ ߚ "! p ߊ ! { 7 -߂ `59k bMU[ ^H/ Z u+  ~ -ߌ m ]. U eP = $ R0 7 , Dߵ  VHߟ gi9 m\!_ 6s0 [Ij 8\Y Az> {zR/p e3 NB %8  (pYp =%* >Z>iWwN@m{tjk|qbGO]M? <,32/flvp6, ='9d:{_HeW Bh Ptkk^]:)L*'K3,W_(Pz[uRZ'?4%6VC}eW < m kgeebw[Q66c0n I+|! k1E'xcn)%}@u5VSJ,J4__i5P'l=K\HsDCr7!CJ V :&*2nFKxC}mAaQ]j AtJ7"s[]a"#4Z .C`A .\A d" 79  kt2 "@0 4Co zKK; Qa` 0g( |l yu 0(tG TFh  pUJ \M" c?G 8?, 5bw. ] ab 0|^/ y:]3> Z8 ci V*q PCE qx og* ;aCk Re' GY8  ; <1#C wSi y_p   F$ `%0J 6J F[ 24g _Ow1pD^to~llT/^78bM  IY4 3v ,p@HDnS,a\ @1IFDVU1^)!mY"9|}CMu}ib}R{~hLwd'd XGE)D+x^;y+FT :@=U w{sqf"GAk*(V0?C'.E.CNHg]v|] ah@ k*: x @ -Tt &Zlj WSYr Hk2] >FI '7 5"*  P 0r~ Mj YS {u1 c %J '1( ;.= EIJ O#nW hPd_ pmoC {vb" iCy _6r Rj -Fg 9<` I7\ .a$W CoQ SsK l\D oH> [25 4. (#( 3  A"  M6  W*@  \=R  lN_ q[i tdw  z yv  z{l  me]  fSM  `LC  W50  N%  F  "D  #6   '2  )2  )$ ( +& &" +" 2( - :/ , 90 / E8 0 J? 0 OB 5 WJ 5 ^P 6 dU ; eZ 9 q] : r` : q_ 9 {c 7 wb 5 x` 6 }c 2 {a 2 |a 3 |b 0 a 2 |b 3 {b 2 c 5 xb 5 {a 5 }c 3 v_ 3 y^ 2 v\ . tX 0 qV , oS * mP , eM * eJ , ^H . TD 0 SB 3 H? 5 B: 9 =8 8" 53 9$ 0/ ;- (+ 7, %& 91 " 8:  8:  9D  :K  >T  @`  Fk%  M}3 } QB r YN _ ]_ V ag L eu% > g- 8{ j2 ,p l9 #` oA W sE H vM : ~ T~ ( Zx  /am  J ga  _oU  v0tI } I|? g Z4 U| k. Bu ~% 2zm  kh  Z`  JZ  6T  'M 1 G M @ "c ; 1+ m4 DJ M. X` .* h| v# |{ _ n I 2b 5 MR  eI   u> ~ / a'" N8  3T  l  k4B LQo /i ]"q 3"Y .&G B(5 8\)! Nl, g. t 0l_1QK-331H3d 1|,3s^1/NQ-.`k-4)e$ 'Q:,&:QN$ oq"!wg![E'A"<,S ?r'fhH ODvs# O . ) d* A` ,Y< Nr! mp$ q[& CN@/ k2,1 `7 -A )G L2P wOUl[ w;W{f '\o <y 60! YVz  x|uvk iPB -f7& @_  \T  @oP  9dG j g<J N 0Z 3 &,  =  *zm  V;7  [\  w3 ~! D i* pv N7 +R =< D3 (D c O a Y 6D a a* n FL } .`~  ]}q q F[I Q ~Oi 6 @.  5- d!$ F%j x> ;r P!S  c/ z{  <h " [8R , m_x5 @ 0H K  \   u [N+ Ctaf ``%' zO} Bi @D7S mv%zA e]2 B1      1 $ Qg* 5 >lQ F V7 ^ s u &Dj UrnrR WU3; C) ) 9 3$ ?] \y t }#hG  5?   C# - W C 1Sl X Y|mv k R-^ kG  #W3 4 UD m 'wY S6 /   -, + H: .X uLu @~ YsX M hN1 \ {| w k ' @rY X xUlB  ;P<1  ,*   + ; I \m }{l+ $YJ9 /@4C <U If !Un6 Abc lrn ~aa]| K83k .\P:5Bndy5\l+*=O!7)MWb+zS3lKwh_^#L6b+;G6!2? SGz8Po-`XHDw_-}Me`clGt r4{/w|S~fq \zMls;8CoX$+jk d b`1K[$P2W5m~SP_NY PKh0F{4CBx >Qk:i]8+uR3@Hn1Z2\0r&M-o9.M&. 9.'-' -4 ,>  *J* *T.7 '\8= $aHK %pWV "vc^ "|mi z%r lv&z gp* T[|0 FJt6 :Dq: ,1h> %aC ^B VF QG LF GI   CK ?M ?R!# b4- ClA7 E{O= K[A wOdG iSuM ^V{R [WS QxZ\ KoZ^ Hp\] @d`f 7]bd 0Xhe &Nqh C}d} 8cn 0^Y 3]I CV8 \R$ n S {L ~Km#Ja(DW0BF,8<59?7*JD.eS#| [w0 bSX v/ s { ]r.# @i;= -cHQ \Sm U` vPi aOx0 BDG u-AV d?x Mt1* ;Z/N  5& c  3'4   BY _E ltd X le5 WD I-  0) !/> S\ $& /\bF 2+;f ; 8 EY|N P6lu V/o `3(/ l@V k_)v[|L}z6d|bB^u?%:sg l>c4@XY p{Rj^d.F*6-3Zjxo$L.7q~!Z d>3~eU$c (B?`l pR!T .'XT/ ~,? nfKx |oND e8] )6e >fek fs 0G{V "9 \$ yxi 5n3 ^o^( cI KYM X6 :IT A @L :h  aU0  'T9  ~r Ij e 0 J  ' H  7 2iw\{a\T&Ga$ZkvQ6l3`r`Sx.c;- ~MN }r%9o!;nn P e`w $`H`  [+!Qpa!x^P!S)VK!Fs"h?<L"-?u"bG;"Q3!#8OHr#pV1#'.D#$2As$]+'$;)%P'G%$V7%K %^a %. ;&2s|&oxa&;&47'M5s'f!J'Kn#(**6 ^(߂.w (Y$33!(3Y!))7@!W)!:")`F7E")7+>")H>#":*ܵ@[+#]*܌Hn#*UiML#*U"4$+^\z$B+yNۡl$+Mx g%+{ԂR %+uӒ #&E,i2ٖә {&,dguӡ% &,X GӬ\ ',S Ӯ W'-NKҷ '%-E)Xҽ 'T-@ ؕ; !(-5jb W(-.J (-;4 (.% 8)+. l )P.e9֌% ).W7 B*.>OU *.<d */6u 4+./Іh+P/t|ԜГR+t/d,{У+/WmaЭ ,/K?NпU,/6",/)cC,/*-0YA-:0.x-C0dҬQI-h0҈u.0z:yϖN.0YbϷ#.06PKv.0o3/0J( (/0 )n/0;7/1lQb/11o/"1K΅0"1m"Ρ10+1M6e0:1&v091qV0=15.E0=1vB.1D1uνΟsH1>1Jj1=1_λ1H1Jν 1;1)=U1B1͹_ 2E1jw!2:1{JΗ@2=1Uν]2513%u2/1M2"1g621WCa210< ϕ20G$;20 4j30|UF30?jτ<30d }ϰ E3v0<̕+U3d0̥Xb3P0̻-r3=0wKu3,0[x~30m(uϥ3/Js3/v713/cX?\3/k̀t3f/idi̵л33/,c 3/jK3.jHэE3.Lo||3o.rḳ3N. ^s53". 2zs3-z uҗ3-W 6u3- g8x3- ̉,Lg3`- ̹`k\3*- ҩO3,4 Y/:3, 6n-)3o, ̻ӌ  3,F 92+ K&T2+ 0͛~2>+V d?2 + PT2* 4oP>2* {͉{{2c*p Ͷե a2/*? (N2)/&C32)fYY2{)֚ͧo1.)8|1(X6J71(FbΟ׎1&(:[1'gM01n'ء30 '*+[0&:tIm0i&_ϸه0&Vo k0% YNK0%Iφ>-0X%;ڌ/$N"/$3`/u$i]{/ $p&ܳ*O/#)}6/J#kW."_Ppo.]"'T.!qEޅ.~!DZ Ҹ-!E<+- :hYmy-t e)ҿF- $-F0,3ӭ ,*]] ,#ߔN J,|f/ ,n,7 +_ԖG |+%߲&W +Dլj *#J<t *ߟ՝ 8*!r )ja? )of_ })=Rߜ. N) Sq )bK a (v>J; (4<߁׍ `(I4: (,x 'O6 a {'߱_N 'Oq &lw m&O} &H!ڃ !%Cd0 !|%ޤEu !7%]ڷ !$,  !$`U@ !$wަ !2$G( %!# #v "!#Ryn $!Z#al +!#` "!"}m{ '!J"HK )!!Nߜ ;Q_) ZL 1hd pJlߴi .rz~ ABu ߢd 35XV Pp B tCh0 uk! `?z Mf=p-g#r fA&pf1'A:-M`fPr^+Xk (dfuja8e !bK}r/Y-)o[\F!F_6$M5GfqZ41jm.{xO{#o hvm@Y@V=B!<&8 VA9%9zuDS JQd  0%6 o O Xh *D- [ K) 3 j ^2 u } w B eW  8J5  3SI&  pk K w ^ 8 %7 yB ?a  T# i$ c MT xf/d t]n* _UZP?;OD# >| k60B/!T'C^jQ5]Y )NNquBN?i# h $F U/) uE| ]J&sBbc<$ZX(1a9  E$6RS8Ncnkavo0<i~| UrE.)a,SOY mhK9TV /48  &?75 naBx84k1fe"oC7I&* !Ogx5&U8I=* XO m=f Liwz mg}a uOD( ]? P) <2N rtZ 8 0 " Q_A r  & Q B$ @7= PQM "jC] @sj ji~U I~: Gi V8 K;j r0% \0B ![+ {O}0 s [N Y Kh ?  N  j_ bX Z1H .1 $CA XNu po eD u =6 ] %JR G Uk 4 g  Ga  =J %P N. S># +N-9 `dU oFb e|dt }< lQh _1U1 S>q CnI 7@t +p& < 1i e | AlL A k+F Mq  r"  J)  ) /0- > 8X _ =s< s ~Ch Tw]H +B7J M M?R 2Mk UXN }]!kL /CL5 (LT  K `J5 %GIH 4$Ie ZDztB?\_?r;t-5C 0& =7QqxQjNo*dQ;: 9mh-${3mz:DQJ0P'\@D/qVu[~xzeJbcs La87N%qZ9s )Un 4K  . 7 7-L aS^ ypl }% NOn3 "V; =F$ RPl {]u vTf. FoS x)f z M} s/z }s\M |XKZ z90 vn  u\" r>\/ pQ lal j*N hL|7 dp-h dL{ a >4 aN c''p cO\ fe\x hNt kyK, n_  pJ t(TN v |k yk- ~)NY ~3 lzeLvK=qp mcg#*:a:T"\JhTcLN}3x0HIeAwDq;I!Q4x o'-.&;&T(OvXxsmVNC A4,'2'SE!pm;&LkE-'Bi6. Y'T$'Sk 'TH '"R&G 'AOׯk )(_Mז| @(tJqׁ߫ s(GKt_ (E;bO (E&FA (C# (B !(C !)@5!3)>C!I)=ޮR!])27ލy!)D2|gֲ!)U+mW֥!)b!D(֑!)}%z!* s"'*\%"Q*ݦK @"c*ݒG O"{*w4g"*_*"*}M""*r@&"*P -"*G3"*2?"+L"1+X#<+ܲg4#c+#܋}W#~+,{xt#+,o]#+8Z`B#+=J?)#+AB7Լ#+F3Թ#,J'ӳ$,Nӳ$,Lӱ1$8,Tӫ=$;,SӱR$K,Oۦӭ$n$f,UۖӬ9$p,OiۇӴI$,LQqӴg$,J%\ӹ$,Dv Iӽ$,A_?"%,;B"@%,;3I%,4"h%,/ z%-0%-&o%-#Y/%-D>%%-6P%0- p%;-پ &E-pٺ &G-Kٯ$N&]-+ٜ/_&c-١A {&d-pُR" &{-XكZ; &x-GوjO &~-0zui &-xҀ &-xy uҎ &-lgrқ '-]Gnҫ ''-N6kҸ ,'-?q L'-'d h'-f4 s'-{m^ '-U_, '-hAgF '-F'fb '- az (-{fҐ (-ffҤ( "(-QiһM @(-;f^ J(-+ow S(-vt s(-Zo x(-C׀& (}-f׀G (-S׃a (s-Aד҃< (l-j&וҩl (g-E{ נ )[-"V֨ )T-1ֲ *)I-ֺ4 F)G-־L& H):-lL b)0-҈j t)0-pқ t)-Vrһ )-4Oj )-1d ),U ),B:+),-!]M), .ӆt),am Bӹ*,3ZԞ1+W+=ԯ>+I+#J+5+@T+&+b2U++ԏ`j+*a կvn+*A|"p+*N=+*'uN1+*vp`+*bԋ՛E+h*KYԧr+H*|P+.*UE1+*#;^+)2ր+)m3)֫,+)>"@L+)!"O\+)%n+)jԁ@+v)Uԙ_+W)8Ը֋+<)Z ֽ+ )/ "+(E+( 5Tw+( vVׁ,(h ]tװ+y(3 /ә ,Z( ӯ  ,E( /,$( \;,( zL ,'x ؛d ,'R 1,'( qJ,' [h,' DӅ8,i' ӧe,I' ؋+)'\ -+&" P+& 1c+& [O+& e x{+}&v Sԓٚ+\&T <Գٿ+A&+ #+)& +& ! +% 'I(+% '6e7+% 1PڈG+%a :wڷi+z%8 9Ԓw+]% LԸ+2%`P3+%IW[+$5h)ۃ+$hjKۯ+$>ti+$ zԆ+n$Ԡ%y+Q$Լ0:x+9$G?l+#$hUb+$ ܇fb+#mܟlO+#QDH+#+ua>+# lԁ)+k#^ԩ(+F#OO +"#?o*"6 ݏ*"^(4ݲ*"@#O*"+2f*"@Յ*q"BՖ*`"Vկ% *B"^@*,"iT*"}i~*!ބ!m*!p6ޛ'X*!ZWޱ&E*!Ay()*t!$՝.*S!պ()5!-)!+0) 0:,) E+N1) M?^0) `Rj1) nkz0) }~ߋ.x)v o֖ߘ.i)] b֮ߧ&Q)D P߹%8)& @#) 2(!+ ((F( Kf(eׇ(p|ךw(Y"״'d(@+1N(/39<(7A,(EI(KQ(V +W'g,G^'tGbe'hyjl'u؝qV]'Rػv<6'8z&'~ &(&E(&|$];&|:Qv&|Gbd&{ZqC&|oي)&m|ٙs &^}ڰ\%B*;%*Q}%}zm%!u6%A@p%` _m$@{gc$ukۗaI$_۩_-e$MX=$3S%$&P$.J#P0 C#iS!>#y<8bn#U.9<#s&#}ݒ"\;Rݸ"8h`"Q"" !!$-!NE!):z^r!4^lP!<wނw,!rEޗJ _T߬* I]; 1htm {K~: |sk*@^'rfLp0=0ii)uE4>/c S4 $X*~1j>NK8Ov_tZv7xpDW)ug:kb&kIL,5TR"Wy 6v[<BqRp$4Fg? :N d51 p^NF kuH La _Q 5Zm>x `$(  B >om `{ Q R   7,C A: ZQn -^/Q p/S  mnv |8h ;]S[ 0E@ 2BXJv]%zf"6J ,jBu:7:I ^\U7pkglTw-6+o'*c_l0WbjC.9P4y*R =QQ ,#U P  nw  $1 & AX 3 |Cp q: uBi J@  L  P ML' V eN( z`  Ac _v i b(l n H| b s * " v S  z R5T  d  ' ]uzf  z[/ Mx* NuX 5uF+ `t H?u+ t+[ 1w &zK1 ~{c #be  ne~ Ec#{ IKy *x o@zu {AWjt z ap $)n 5bzi k/nc -)V^ OU 7M qISUD  : G!2 g~r \) E%# _s  C C zp g D: E. / 2_|3 3{ (h YK66q HE OZ}| eig#o |{ @n3 Za` * "%TFT"OqݞOz"t{}oK"se[L"R@@N"8+L"/K"  I#@ܯJ#Z2ܖE1#OaAO#v7{Bm#b9#v@8#(U%5#IHܫ-#_?ܕ+#}#q%#'!a #8P#Q,$f $w|$ \#$& H/$=۳,6$^"ۓL$~-sT$<]Y$<F@m$WS$m$j\s$~iu|$ ta{$|T|~$ L"GH45"]O+ "n^' "fk!tV!4 <!zWޏ!hqޞ!^ ިb!N!޼G!==/!6"P!$&c!+{ | 1#o 26X 7TE <g%3 =3n BHS FV6 Il M8߃vQTaTi>JU\n:Z|\x&[Ha\1A_"-__)a<a"0Ka6QdaOox~bd`cazv<I`]0aH^.^A^Y#[v6y\O_Z*]GY;r)WNnVaZUqAQ:n+O[\KxGwF/OC42>L:h 5 w2%9 a/4U I*Fm ;(S p%$` Xq =} } ("l <^  RP 9j? Z 1 kq# V b9" K$' 4.  5 : "0A -$BH 48VO =GfV G`}_ wMri eVr lL^ V1{f @qm )es Xz P}/ F?z <$Ry 2.au *=pp  Np sWl f jj Ox i <e p("d `3b O@c >&Na 1:_a Old ]xb pf si zhg j\l VL!n JA-p 737t %"Ax M{ W } d  yl3' yxD7 qYJ }jfW uhve l_v kuY cixT ^YiM [NZF T?M@ P2>; I"-0 G + ?& 9 9 /.' .86 .CA 'PO *V^ (bi" (jv) 't6 'u~= '~jC "s\Q 'iNT $bD\ U6h $N)m Eu 9~ !5} +u "%n #a! 'Z+ &T7 ' FB -BJ ':U ,1 ^ .-d ()l ,$r + w *$~ *& +y+ .s. +m2 2f32`9/Z= 6U<2QD2MC5LC1LG0ND -RD -TC)XB'[A*[@ $\D ']@ (\B #[E %]@ #_D !` C g> p= w%8 13r >+g L([ W#M bD i = r 4 y- }*  t  m a $R &@  .- 4: !Q? 1jK 5'Ss FBZW RSbG Tcg7 axo hru mzc vO }|> u,u( hIh aiV S$Oh FN7< 6w"y 'T #+  P h i -<M 9Q&: ?j4 M=e ]KK b0Y! y\j{ {od }JZ5 f;` Q'*1 @O(XK7j+ TC- 9LG ,Vj ;}p (MUx H[8 wpgj# Q7rN =Z M> h z) F%L B S] J()g v:m# Pp=O `hk pX| 0=>n ]0^ \D= +{ j' A&B>mW:!VoDpsHk}1*2fbQG5^$g.,%Gsx]'.KpaIt"g^-hDxo;()L <*c{ 232]'O{N>{yXbdJuE.ik*3Rlr639#ey8  %f|,`|EGv"lE1XcKC4>~f^/.un"h@>Y*xSHq#j58m sl5?V aw774Y^xLt & 4F  Pc ] mw  e Ij |N cJ @8 z nO & O T C 8 M  -X  ?/ &@ X MV qI r ~Lm  [Q ?y #h7  K'!  =1 Pߎ e} l\ u (x8&  >O 1!4L>޺ Q!W]%ތ !qBG !!w # "d < G"<ߕݟP j "yRn? "o/, #<߿ o#@mܡ #{;h !## M!F$+ޞ b!o$+8| ~!$VIq6ۈ !$XUW ! %dA; !:%s.ާ !t% rw "%;Gڱj "%g{\ 6" &GN X"M&ݞB j"s&k4 "&9R٧& "'q9{ "-'ݱP "u'i #'E 3#'  E#(Jנ h#,(l׈ v#M(%ܥi #l(-hxB #(6OK! #(=G8 #( D$ #)6J ֻ #8)QN۸֥ $c)nS}y ;$)TQT [$)W,@ q$)[ $*[^ $=* _M۷ $U*%a@۟ $w*>brն $*Uf_գ $*dhMՓ %*{i!w %*ih '%*j[ >%+h@ U%4+c7 i%J+aڨ) z%h+Xuڋ %+PVm %+LM[ %+B-A %+<# %+8 %+#2 & ,2, &,7) (&,9% 8&4,Eӹ I&9,EӼ Q&F,Gٴӷ a&P,I٩Ӻ x&^,D٠Ӿ z&_,?}١% &e,5_ّ7 &s,/YِF &k,$IٓY &v,3كj &},-وu &v, "م &,v &~,i ك &~,cق &|,Q؇ 'y,A؅* 'x,9؏8 'i,!ؙP "'h, ؜c !'Y,شӀ ('C,oӣ4 5':,OӿO 7'#,1g >', D',m M'+\3 M'+K#L Q'+/3f ['+#;w S'+|Sԕ ['+Z`Գ `'+Ds# X'~+$ؐA `'f+ئ_ ^'J+C{ ]'&+uv \'+lLձ ['*5%: ['* ] S'*؉N6 Z'h*ءtK W'Q*|ՙf O',*M W'*$m O')Z M')<8? M')Xe E')|֏B'r)Tئ09'?) X6')Dv)'(rFה'(@8؅'d(ط ')(p0''k.صX&'4Yt&'{ى&_'Uٶ[&6'8(؅&'f /ٸ&&%==&&Ch)4&&S٘fS&B&neپ&&!dn&%DcQm&r%x ټڹ^&%<F&$ Naj2&$r zٟ&=$ L &$ ,@&# T܎ %#O ڎ.%]# %ڷA%-# J O d hA 2~ ] Y@F : G  5 '   Ayw S Xs Gp rh x+E Sp  I$_Cb &bU3Ws/./_ Xd*x}5e6tk^E]b~3X;5$LL~:[SWT_qZh WsUG5+M\~( 0/E a0 r:C= 2fP ߖPtg N}`~ ';#{ k*^b bfIg 7ߜ,  @% 529 !qO!q"}޴:!(N!<)b]!|Y<p!(ޔ!X6v޺6!5m,p!^\!FHI!E{/I!f.޿!"',!8qP!Su݋ "Lr" \o&"faT 5"ypݡ %E"H( TL"` W"n/< g"5`  e"ߗݓA [ t"N}߃ " IP߄ }"|.. !"pu e!"l3yoݮ !"24h[ !"^dM Y""[ݎ<""SI[""W@#" MUak#" }~S݆#"^ '7K#"% FB $" M{;$" bFOv$" oH݃$"k CIݭM$"5 L%" O3V%" QnU%"m u\^%" ^1&" gQF&" Ksݚ&"= KqG&" %|&" Z؁J#'" ؄݇Q'w"c ،ݬLr's"@ ؐ'k" OQ؛'c" "؞D']" ثxK (L"b׹M(D"5k(5"A>("Bݖ("A.)! F0)!qa)!j40޲)!:h<)!NMd)!x [N)!T ds)!t yެ *~!7Ն?@*t!՗lK*\!uհIt*G!+yޒ*/!Qe5*!Gz* V%l* p<ߪ+ 5XT+ ~{BC+y <ԐrS+f wԩߤ^+H ;D+3 | d+ {6+ Wb q+s%V#+HL?+>_Q+0ԄU+k_#Ԧ+EP-+'=+&dd+y|U ,.9{,vӛ,TӾQ' ,2O ",bk $,@ %,`= ',8[; ),&|m ,joӮ'!&,=4A!,#j!,x@p!,nNp!,w4+Ӣ!,C/"+ e4"+&I"+\Og"+$#u"+|w(ԑ "+]i;Լ<"+.D?h"+ :M"+\$c6"+!mj#+܆ԛ)#m+Jܜd5#Y+wܵP#=+9Nf#'+ ԇv# +Y{U#*#bx#*v_+#*DHDN#*9Pp#*9k՗#*Q'܁?#v*!ܗd#[*ܴ#@*c X#**Փ$)U $)>U $)iW ($)_ۊ֐ &$_)P-۸ 5$4) ?$)=A ;$(qk G$(r6פ I$(KaS J$($Fo M$(ۓ+ O$](۱T R$A(ׅ5 K$(Yi S$'& O$'bX? G$'*ے؏ N$X'N۾ D$('D B$&$Xt A$&xNٍ ;$&\Ztٹ 8${&+=ۚ 1$P& 1$1&C ($&w, $%k0کK $%DO] $%ۃ $`%e۶O #3%J چ #$V%( #$+i#x$=ܣ`>#?$Lۣ`#$7` ##ijM##X|wLz#k#7ܰ܉o#;#cܯ`##?K#"6>#" _A))#" ܑs@#P"m ݸ^""' z"! y)N3"! ]Jݜވ"8!N 5i"  )m" x`K"c x ݼߡ-7"- G :" ( S" aAd! #ތep!\ ;!G tY! cs/! Ui5_!p >޹~ $ߛT =E( Nn/>} ߂"XZ ]߾Wd: 'r _5'ykp-OhQG WrywO>`EF5S0'S0cm:^!%bQg'6s5 ?=> $DOW=Qj]ThW`)]e</*f dnx$Q|+O]wy:ph7<YS M0SD<P 3h -2d*Di9{l[:5@& bX<pbAn 54$p#"`@t6 liA9_KRt2^'+\b %k[1gw~,RyS o|;Ytn4X LQ$ c9I l(n? tyl Ru 7pt Kd- 'Z?(  QQF @bv4 r.u` N r!b ^#- PT -?N I.ew ^#Cz e%Z { 4| u' iBXf7H(~Pu=1nPx'<.N B0KS-"8UOGJ_opewa\NreE2bl.Lm9q+t+v Px5oyGm|`0AvyM}%u^ftJeiD1Lhg-b^ X;V)Q%,K8 LECZCP2i<`Tj3lf_3ym;$oLb/T 9 B1_6I}()st9xGHf0Q M_+n !rDq!^j!6s~['LYA/q523n9E?2"CS% Gt;pJ*[IL<l8NR|sOk]OyTO0i8NRM#Mp>L-iI 9F6C P=.&uu7HTY2]nz=,w}H$h/ [-G!F4 9X/Ou~x {dlNA,$).: ";ND TJߜaa nV߄n cfX ruB8 |l(! eq! Rf !'O])!9G޻OL!X9ޖBi!v5ނ8t!,{k)!"S>!?(! !"9)ݹ 5"X8ݖN"Now"`|O"nq8$"Pw-"6i."/[2""H5"Jܫ7; #Zܜ*;!#vt><#UFX# 8Al# I#=aM#'QLJ#Ef9ܬQ#j܁vR#jfS$UTU$.?V/$ 2X<$ #TP$  Zc$!Xs$4ۿT~$QtۡY$o2[ۃS$EUlQ$^9KP$w"(K$kJ$SF %@F%,4B %Aڰ >-%]ڞA<%hڐ8A%y|8L%i5\%!Y-Y%0L*j%E/!v%Xt%k%wo%u\%$ mI%?gڵ0%P^ګ#%\(^ڝ%l/[ڎ%z6Q%AYy%"HRl%2SN[%?]W[%OkQH%fzU9%wW5n%\"gY%_OK%a ?6%m&%%i%p%z%v%(z%$(%x%.88o%4FBh%1PT]%:ciQ%=uy{H%@ھsa3%DڻZI*%HڵJ1%Lڶ8%Iڴ$$Rۭ$P۴ $K+"۰$S =0ۯ$LH:۷$J]J۴$K*nY۸$E1dۻv$C=|ۿ^z$>PEm$>\+P$7m :$1u"$3"e$'=U#&^A##r/7#@-j#YU#eD# z-x#g#R#  5#(#,G":d/"K17_"bU@>"rrN~"VsY"adC"3j\("NvN "i݀D!}~ވ=w!p2ޘ2\!bKޠ'@!\fެ*!J޽k!? G!2-'! S *i >@C Ki `%^ o/@ y9? YPu v Xl)kegHxYCjM*qG ib 5;P2$?X/-` \0  c0 5C @#R _2\ ~#Fnj JRLv gc6z rg o Ct i 'e ;\ R hF ? B8[ 1 p$, u B  '  R ) 2$` B ^3= N }E qY S Fm d +s 8p ~ X x u .kp j N_S Y wK$ sF 5 H< ! ' O  4W  & a) 9 WY * *q T) } v4xu  1C`I  MKU.  lYF  f0\ 2m< R} | au .2g8 U]U !YR do-G VP> /3 H. 1j# Z^+ c>? F" P k  #5s KV\ 2af 0A !%. )No8+{od2}B7TX757;AkA}B[%3K::UJ _ vN~q/Q^ZS[5T7OT",Y1I[S]}TikVj)AN9!QH Oy-Jr3BKTBZI1hzGzBnb3BOCj>#v 5J7C;,Td#j$HZi@ '%) GPtk-iQ ED!_uC`(=}g?3l7"4WD-Mm>yU(aBadkl`Tu;<:zo~v!pYp5 =a n,U 7@Tj f`D3x ;As  3Q =&( _k  >S / Q >;i _eq "]RZ /C3J 0& 1 @  I:  P4Z  Zh (}J e E[ n e, rB ^ ' xf= T x. ~ id + ]6 Q ,\! y FNl % ]GF 7 lA. U 8o  0s[ 7 )YF _ (0&  P   $ / * a; W s x ^tx   Iq"[!j"%po"F+ݬQj"`Pݒ.b"~iVi"=`"<"]"=sq^"5ݶTDW"VݘU"cP"O5=P"xY"sH"8kC" GD"/)6"D0ݯ5"fj݅~1"8nU$"^T ""T"C*" wc "B1ݣ "m eށ!I XM! +C! ! %$!!< T(!Lr ~.ާ{s!` ;ޛRO!u @r! JQ!/ SB!a L^x! i6f! q6!A  ާߵx!n u +|os! ]W5`! 7NX! 6 ߬N! !l ~ ?!! "M 8!>! Uޮ ,!\!xޢw "!f!#ފL !!_fރ !!Va !! <0 !R !,"ݽg "]7݄3 *"D> X"&Rߙ q"Te߈ "Oq_ݎX "AX/ y "68 n "  ^ "9 V #5Xܻ G #\}܈l 7 ,#_D 0 B#߷=$  P#ߨ  i#%߆  #<Ktܯ #hvc܀m #&;@; #7- #D#65Uۮ$e[^ې $ylls5$z;LG$#2yV$i`$c{$8#}۹T$U>zۛH$vf`q;$LHe,$F-A$+ $$<" ۵$aFچ%n d %-Jk(%<)K6%A .I%OH%YZ%5dںh%R,qڥf%aE|ڑ|w%dln~%[uc%xCYN%r"9C%h!4%g!%b%(U %91\%FGQگ%][Kڜ%hiRڗ%q{'Jڄz%2Kuk%:Lr]%LNcK%TQ\<%cTW0%uaR"%~bNz%kK i%yM_%wER%EJx%H?w%A6o%$E0j%*F"a%/FY%4KS%8O@%:Z8%;a'%;p%9!ځ%y7/ ۍ$i4:"ۡ$W2G2ۯ$K-QEۼ$=,WR$2*eb$$&iq$%qz|$#~h$ y^$kF$,d1$ BW$\L#|=#s8ܞ0#RWܾ+&#2t8y#J[#RH#.\*# Lk#^r# u{"{}%&ݕ"_o0?ݬ"Fd9\"#TE}n"W`xm@dW] 77Q>  AC 'H 5 h2v &r l 3T A  %  RN  z}8 rm Z <'   h%5  I3Dt f = S L.  Y b] k j_ rFz0 /{ pVC< `3o X^n I'n] @(4 7 `6 *y1 "J\\  m@K 7 O((UFnIU w/rDf o6 IA # L0 >) 2r y$AC L:@ &K W1 iOK Wtqc )x5 h6k 9'z^ l VM 2=I K C(  fT_ sWB $(& W >A V1 >Pdf U!w s=w6 tZc fEA X\& G _ 81 )a. ?zt bFw u2y*$ KDnFt5]5Zx}1i^>/WoJGVqb6)@u+ " kF6QiWGIW*+ @ \A.|q"tUp0W<C;>WtLj}jvSJo*2e6 ^L: I`e.EsKe;we/t.GK+(&%N!$S7H'Xj{2rVU\Cy@p'J 1 4,)LDE^fuzrvcNb';M9*D2S6\ec [ne7{,I=v'Kk /VcG]V:loHSw>rq|'wJzL%n%k ]3/B VQ`k OpW ]Hc% 2BM = : >1 6R) 7h6 :S_ 4+kB 9A s:a Q<.g 1B]@ GF P0 T;Q ^gKq| yhP^ Yl2; Hx  , ~ &,s DM j l} _m 0 S^I D H4 d 5 F 'oS| _P ?! #X ;`2 {8NP Iad rG~ v4 podX bLU M_< 7+&3 'j nh v(4 89BV \N 1m} t<NA U)? 1B  b   (Q1 +8F g>aQ 5\m 9x, |w] `_a ;o*:  !H  !c b T@  z+kb t p FA g*  G5e  ~6x [ -5  P+ l@c s<]H *M@ 3g {P ;b'AN0A`"4-3LH?|mD^_}Vf37:aSH>#W`'5#F8sc^h\}kB* ZA| 25S#  $} 3 0QV V rM ` Tpb + ;Q#   n  9h4  ZP 2 uN Hz P kM <, hA OK C^ so{{ H:W= x Cd< 6Bc W|3q 31O [P$ DC{ x# bh/m [=Z, |zs bmK U@F Mi * Ig Hxo/ J -2- g~7 ,N^Y mb?@ h /GD k,l, = '`C3 p|doZ9>S[ y0*5)9ym\6"HX D"" 1C\Vu?W~lc"s˰ݠz'<4c"JI؇ˈ'4"Io(A5"cן")(5"7RA)6##ֶ܁)k6N#o4uɬܞ)6`#W+Ɍܻ2*7#1a*R7#PՐO*7#*]5*7# 7a+$8#ԼN+[8$TԒl+80$&Ǹ۔I,9b$Yƌ۷,R9$8GӇu,9$ = _-6:$kң 3-:$MS.:%%Ŀڀ.K;X%kLшĜڤ.;o%SFĄڹ/;%7 c_/$<%vаF/l<%RЄ1 /<%V'0<%CT0$=&Y0F= &UϏu0=K&w)žٛ+1=q&Vٸt1:>&&2072?&!2Q?&d͊C2?''.k73@J'ٿ؁e3;@d's̷ؚ3k@w'V3cvط3@'=$Y4@'* TJ4A'24eA'Uˉ 4A'$\% 4A(G ?5B*(˽f 5YB>(Xʉ{ 5B^(sGע "6B(Kۼj y6KC(1tɚK 6yC(*^3 7C(  I7"D)ջ1 x7>D )lȠF 7D*)0Xc 7DA)J+,? >J+'? ,>J+% M>$K+Դ q>8K+ >^K,n >K',:b) >K5,"=+ >KK,&4 ?K`,ﳔ9 ,?!Lv,۳= 0?#L,ϳ}B S?ML,bF c?jL,\J p?hL,WJ ?L,wd;O ?L,a]:P ?L,\H-O ?L,K2R ?L,1 N ?L,7 L ?L-J ?&M$- ͲE ?4M6- вC ?;M>-? @fMZ-> @eMb-濛: @sMe-ݿ~7 %@M~-տv8 2@M|-οo3 .@M-տes1 2@M-¿[l/ B@M-ĿRg) 2@M-ͿX\% =@M->Q B@M-ɿ?F 2@M-˿FC 9@M-ǿ*+ 3@M-ҿ4$ .@M-ӿ.! *@M-ڿ '@M-"տ$ )@M-+޿ @M.2 $@M .8ۿ @M .?Ѿ @M.GѴ @M.QѬ @M .X(Ѣ ?M.f!ђ ?M0.v!ф ?M2.(8r ?M2.?5[ ?MH.TBI ?MF.cL4 ?MN.V t?M].^ n?M].` Q?Me. u E?Mj.n 8?Mt.*{ ?uMr.8Ѽ ?tMw.OѨ >lM._љ >PMz.s*р >IM.Qqd >0M.kܲwI >M.r) N>L.g *>L. &i =L.+Hc =L.PEg_ѝ =L.pipUф =L.•Vk b=_L.£RI <=XL.´F3 =:L.ԳP <%L.E <L.D> p ;J.OFGі:J.AcMz:_J.ŭD(B:CJ.е7:J. >9J.). =9I.Rj:9њ9I.wS?|S9I.Ɓ@W9bI. ǷF$89I.MܶF8I.SJ8H.KZ]ћ7H.~3ȕ]m7JH.vշqAe7H. s 7G. Cv6G.+?j6G}.Oɝњ]6IG{.zɸv26,Gs.渎\5Fo.%35Fe._H5Fc.vJ5kFT.$ʴ51FE.U*칼ѕ4E?.}p/on4E$.v? 4aE.%˺3E.s f3D-6Xұ3|D-k&ͬ/|26D-f޻@\y2 D-J832C-[\ 1C-.΁b1cC-eλs}1%C-HҤ.1By-o/҃0Bh-*l`0uBN-ϳ1O0 B>-0A - %M/A-8г ӫ8/A,q0y.@,Q`LT.n@,Ŀn!. @,-?o,YX-?V,<Ңӭ5-0,2l,>,p[Ia,~>+ӭ ,3>+ &+=+ V1A{+=+:ԗf԰+>=+c ŠԐ*'9 *i(P's9)ؾ%&9),I&8)%pOgl&8)Bٱǖ֪ &8P)h%֋%7&)ytqY%X7(2O$6(R`n.$h6x(ɥ)$6=(3#5(uܪa#,5'3A!#4'FEiخ"4'a]ݨ˙ؑ"34U'x˺؁G"38'/m"3'(ގS!M3&q4Cs!3&%d1)!2}&ߏͤ ;2B&` { 1&Z$ l1% i0q%yUϳ`x0-%+ 0$8'7>/$H۲_;/i$RЬ۩.9$]Iۜ.#kQܑ@.#sA܉^-#|5z-f#ҳvF-7#Io,#5#kJ,"oe",m"% Գd+'"uze^;+!je*n!%wոhT*$!pjd) hemf)x ֣n)B Fo(y)qSZ(\q$(ؐs'N3kw`'qzy'P?&||٤J&+q,%ejIGvy%Uڴ$$?M}$.Cp$^-T#3-#v "j3Jݾ"n ,{-"B6W!9ހE%!TY:! "g M9Z{ qu_' Y0>ivXR&_aV"ryEZ7&n"A_fJ;<'`gY}{v=RjE=2vX0Qd#hJj:B- d Q`24Bi[bj^+  *#]w={U:s+~N_`)_w0tz_ p#P;^}XyFt h)4) 3B k6_ O i% ((^Hh 6> D"k zNels_ z>k<->R1 F;hvi7 A +TJ 9D%! hNY ]C- rA K |}` 3mD mkt\ SpKO 76C -4 H!"m rolI t  zD -[ m)3Uu 8D D'T,e1c=QpkPsz4o|jBl~ y)g4aTk(D{FI-P@t q/B$71[ M#ScL7r` rc %eR7'Y9X4Hw>:| @.d%KC@P #VShX#'[m2;_cBT^HSsf4_gu-igbtoQ |nEpy; to(rhr`#oU,nM'fD +^9-[0&P()K&G#%?!"=&7 %4 !-#' "  (  < T/"gB4Rs@cdKnQZ~;ze/qqd~zRiG[44DX,xxIB:]Y!yv{QvZq^~G G[- (7 0@8G_Olp~Q|Z#^ 29 8 } gH/-vZo!5Bo%b#R)R/.!2;5\;V=c@YAgDz)mJ AQ>> Wns U _9(  g.j ~ n(r gM uku  ~F  Cz  Gr W 4ll & Xh f -`` 8 rY. t T > (K  ]B^C  ;Q R[ 2  'L&  j:w = p0 o S  ; 3K  ` &1C aS vH t !5 C *l(~  1_Iy 9. E%f Nb_xo KX e 7 nQSB y;LTv oKX&e5Y[Jh{U!|uL*A?Bs=:u,24Fp&x=@D|X/)1yhZ|qf<@ I$CF,0~Yg6y(mG<.C$NiN/SVPN[Of(Emb|AvE!t{[OSs + k7Ra@-{Zpb'T8~J=_ E**>CH`4}/qTc(8 0+ 5+Zq]iB 1/V!dg:lw!N#NC$&YQ(F8$.nv5%UL;L\*?^E. 2Jq ^iM7 @R . WV TW R\E 4 S_  qf,a C,e h = Aj) b [~lZ 0Yo e;p  =p c vp E0nD tnlv @e)h )8e +b 0b|^Y WJ[{ s-)Y HV :# !T `= Q a PN2 [JV :Fn/ }@t Ig9D +/2u o'? +F _j   Y UG 4iq vD @ , A: eW` 'vz} -xq 7]T'>_JSsy+ewyGqgbvBvn&lkh]_a9MZ>'T0@ R_8I|TGx{"H]lEA4@]CwBx"@],GBK7ZB5REocE_ oIGNv"*Ne;WYZ\FBwd0|ap(]ze5<s #hZ/BR71ZFBJr}9Nmc2Y|zS%]_5fE s0q  1zQ/z/sCsyX_gI}te{&_\gZ6Q:S#?PS +tPzIe,OK=J([,G k>N} ZJpLvNUmQF`V#Q:Z$]g6B6gL^Om[{gvrouRp~y<^}o!AzV&qNj&?^O$(RvC~Gf W3$W%2" .;  D`/ M{I"x Tl.V g=;k iH)Q rY-  i vx < o ggLe Uq\l{ :X@F H  B  ,&? J `B/ m X.m  k(mF  G r 4 c  I 4 4 Y - x s R = v +z  KY  L@`&*[KFB @`^=30j_K(E:]!*|sAWDrs4sn-  70-  jQr#Bz8x,l_-b >6>6 !:e =_ B$* G=> JZ\ KNa iS7\ DU  U  ]IS2 \uYxR _A _d ?d@ fot gEF j]/% iyOr i,sO }lR3 `g^ 5h ! h3 bU68atYXs\4HY THP6-lNQO>Gtx|vF b[B-L;:_,8_02)O!B+k^a8 b5%9,Yl mS$*2"B4  Y@ wGHI{ nfTi ^UU^ l52 w$   s ]A c' uMq UC 5 ?k  , h3^z  g?:z  5  -  Y %  =5W ? kE, K Q ` _ d+ { Gu}  kk s CO? ] 2` K - 4 X} F2? d W , { t8sk 4Jb> `ZM q2R =%0z [f RS  F-C  kz- 4 $5 T b l  F d'ew /BC7 mX-z 't -  k~m  VZ , NC C e4 U E# b G x |l 3mF ^"[  =;B MS(  l T ^yf $BO <Q3 Z& D t`   r_  3](  a.J  >Ch 7 T,2 o i~  z\{  >_  eH +4 2. Ds c c D ~ {wh 9 4`! ~ PBf  -c2=  Yw$}   [i 6 ;Z P E  _0 ( 7A 6 [ LFcFxx3|gMQ_l@U=/pw dTD-C m ~1 K8E# B`Q ^eG 3wf0CqLCZSyn?o9)4m`T 7+?ez&<13Sdcdx9~/a(m~5an+ GL>T W7u e.t& y<{f j  YV&D <I ['^D /w| z`0 b.Q Q  y -Bm: >*G^ J+z Xt kA 8 x#[ m-" WZAV ,ISz h3n' !b l $ Y[] A )*^7#>>H dXcr6tJ$h$v,~t g: ATNADbb4s+Odd RT$ A)V!##|.u8: VfJ,Tr_U(m(8>yDRvQ'jgmRL\}x~u$N_@>#D 3I6'+nyeT|x@L$/4 >"OF!c7Y(iPt0yw:ppWAcQ:IM0S.$[7;bhdkqjw,wN^7~/>N0zWt_ mw- h}@ cT 1g߾] SVrߡX hG`ߑT ~03nN OJ ?F!B>!=,[!90l!5C!)j0Q!;\޿-S!GP޲(e!Z.ޙ$o!o%ލ!x!vހ"qd"`Z,"SGI">.f"'!~"y"_" D "?""%'"5+"<4"Bܳ?#UܧK#YܥQ&#bܖ`7#q܍sK#u܆zW#~}}&l#`t.#Vwl4#Emi<#.P\B#&LYF#@XJ#.LP#+MR#!IV#C]# Da#Bh%#Bt=$?~E$}DW$lGq2$\E~5$NyN?$@fNO$0UOR$'HVZ$AU`$.Yh$ (\h$$al$fw$ ip$u+ z${=$ۆN'{$qۖd;$exۡP$Wuy۱b$Gbuۿo$:Ht$,3ro$#(ps$^t$ Qn$Ry $Bv!$9w0$21A$$CZ$Wtw$nt$dۈm$i=ۤ/m$P#ۺ7d$9P]$)a_$ <cP$UuN$)k~J$9y<$~yO9$enc/$Obx'$}>\ۏ$bMۯ$D8 $(15# g# 3#gU#=&{3#w.ܕ;#^>ܯ G#BD*T#(PC`#YRc#fsp#|q1#izH}#Kwmn#[ܓg#^QܴR#6;JG#}:#m 9'#Be#ܐ 0#_ܯ% ?#BC H"n `" f"s*( m"K9P ")t@m " pUݏ "[Taݾ9 "-?og "* w"M N  g"ߣ݄ # U"g߱ݱ? : G"6 W 4"b t *"@7 { "zc "[݋* "iUަE !HFq !x*# !R 5 !+ DG !!T~. !!ieެ` ;!!;t V!! :ފ* !n! iޗ]"!a! Vުޓa!K!K x+޽!@! > !1! ("! Z:2"! c="!p ߡQ" H dk"  (" s+#" ^<[U" 1Kߓ" U UW"  m (# yMiV# x܉߃n#l ^ 4zܜ#`  Hܤ9#U 2ܴ*i#D W#< Cߋ$/ b ߬0$% B *D$  on$ z0$ Wx\$ H$IR$-%87PS%B>v%UuS%[DZ %fA%nf>&x9&JZف]&~)9نh&r ٕ&hU٘GR&eD٢k~&V}d"ٰ&PBس #'H JH'9I~'3:i''N59'}(RHC(  q`( |<{(Jh(iC(C7( F )nI#)$yF)Ti't)u/ )L60?)#>u)f1E:*3J+X*V&*RLU\*"4[*jc5 +:_n,+}hE+Vkk+kL+_rk2+Cuc+Np{ ,)|-,ӄ.1 S,w߆ӊp ,xsPNӊ ,qB1Ӗ!,h ҕb!)-l|Җ@!E-eKުҞ`!i-cށқ"-e\\Ҟ>"-`B@ҠW"-_!(Ң"-\FѤ".]'ѥ:").Wѭi5#^.S~܆Ѫr#.URvmѰ#.I$5Aѹ#.Iѷ4@$/Fb~$4/<e۵$e/=Rۆ%/8%^2%/6 E Z%/4!6%/3QM% 031NH*2T m*3`, *3>k[ *B3մm} *L3vԮz !+b3YԌ} J+34ź m+3xm̌ +3rpY̐ +3l?E̙, +3c&4̠? +3[ +̫h ,3N̷ @,4Fe W,46? ,'4&S ,A42+ ,F4 ӬP -d4Ґ{ 7-s4v҈ S-4cz h-4Am& -4&c^1 -4^\9 -4:RH -4@O) -4H^B -46oe #.4(z 6.4{m-ˑ U.4dLˣ x.4Tu˶ .4>W .4,B6 .4V .5  f .5 /5n (/5`$ '/5N8 B/54D O/5S Z/5 hm/ 5y#/ 5|rʐ</5ddʦX/5ML/52m,/5V'/40 05 04 , 04A!-04 L4/04`B804rYB04 ˃oP04s&˘{S04_x/˭`04EU7v04-B<t04%O04eN04aZ3)04SlSI04>jke04<|ˀx0|4s3υ˙0y4]i-ύ˭0k4IT$Ϝ0a45L'ϥ0R42#Ϸ0D4Ͼ0:4!0"4=04 V.04wI03v̞j 13S&̻ 133k@13RM130a!13q813΅T1o3Θo'1e3Ῡ1M3ọ8153MK"1+36Z1 3s1212f*<12OAb#12.Y͊'12c sͭ-12A·'1j2Τ951S2βG11C20[)1%2Sv412j(12w΅&11jb"Χ)11LN6 112>S 11,f11 ΁#"1s1ΗC1]1γj11>1ΑO(1,1_ΰ`11>%10q(10c'10QC0!10=QL10,kc10"΀1w0rΖϛ 1]0Wήϴ 1I0>0/0310?10 ,V0/&St1/3p0/pRЏ0/`Xdб1/BDw0{/+5ϑ0h/* Ϡ0U/϶0@/ (0//@0/Y0/"m0.-щ20.i"*ѣC0.S+=ѹR0.8*Vi0.!^0.v$t 0.g τ%0w.Rϑ=0e.=ϣR0X.8ϯe0H.# |09.{э0/.l(ў0.V!ѵ 0.B0.2) !0-30-F0-+U0-,*l0-6>1-t1=μIv5O1LvʕΧM51e`rΒS51tMf·T51,2iY51 Lc 62:a&652ɬlT6o2tu62lDu629Pʹ63\|̕6;3w{ɺ7L3wȟj173tcJJ73nT:\73p4({73mw7 4fW7*4kC7\4:cȌ˲84Z]V˙84w`*u?84VI8B5SfǠ!8t5PO~85K295@Gɱ96ZCɞ@9;6rEƤxe9x6=|Y96>q_K96A]0&968+ 97<967 :ŵ$:q7I5iȣS:7o6:Ȁi:72zX:+807ũ :u8*|;8+=6;8I(ƞd;&9r!ƅ;O9'nĘe;9!Gb:;94%;9$ ;9 4< D>=*K>.=A°{>o=fop„>=^Yk>=<)M>=?6>,?h>wO?>Q-?>Un?3?@C?g?o@?տ--@?"ɿN@@@嘿տ}@L@l|@_@hv@@GWK@@'.(@@ @ A#վ#AFA2SAAO%夾jaAAy&刾:mAA&D=A:B*.AYB+BB*.н49BBT-彽RBBg2埽rB2C5倽ZBWC2bJBsCGJ6"廸h(AGJ>"ʸl$/GJ>"͸x8GJA"ȸc1GJL"Ըr-GJE"ոq (GJN"ܸj %GJS"ָs&GJL"qGJS"x GJQ"߸rGJP"GxJO"GJN" FuJN"F`JE"FgJI"FNJC"$-FAJ9"1@µF7J<"5QյF!J2">\ݺFJ-"JzݵFJ+"M|ݯFI#"W捹 ݥcFI "\楹%ݢ]FI"a椹&ݛSFI"h漹6ݖ9FI "mɹQݎ2FI"v׹R݇FI"znނ FI!uEwI!oEZI!+#cEBI!NͶ/SE I!r;KEI!惺I;hEH!毺-T0@EH!ǺPd%1EH!ݺ\kEH!yDoH~!DcHw!*DCHk!=̷D+HZ! Z෩DHR!vDGA!犻aDG2!+綻C9DG !3лi"DG !C޵CZG Q*ĸߧC%G bM)ߖCG r~:߈jCF 禼MUxFCF ϼmejC~F wcCSF| TB5Fk 9๜NB F[ MFBEF p!9yBE4 白Q3^BE 篽m&;BE ޽ BGEҺ AE2/AD i7KAD!蜾pjEAvD5׾A9DqE廞@DS[A@C=irO@C%v葿uU@uCſv&@?CӼl@"C$_?B5'=T?BWNUE?Bzg9e?iB&5?4Bn潜>AY #>A:Xa>|A,;>5AB>@]$(=@ucmE=y@˜\mY=R@̿p]#=@J+;>3Tn);t>NĩEK;3>oa:=+G€_:=sqљ@h:T=Y·! :=99<&9H9<lƄv9b<5ƶ?91<D)9<XB8;rDVW8;pljoqw8`;ǿćU.8;lŤ57:P6IŽ7:8ȗM7<:$69N4569pɅ-}X6Q9KT6 9^:58ROx58{ʊǏF5T8g Ǥ5#8RǺ47=8@247$V|pk4|7n˟*4=7_36L1-736x@>3`6]2 6=Y!t|25ipʋ-2i5hͼʥQ15Rb˸$y14>LA14* ΂0X42104Rd03k->03r%Z/v3(Т2=/@3fEu/2(X/24pd.n2__Ѹyq.!2~ ΉC-1q3cΘ -y1_ҨΪG-11PGζ,0BFEi,05vEU,i0*ӹ,&0 +/S +/AY H+/rԒy *S/W */b % k*.O% *.0֎2 )S.er;w W)-0B+ (-CtL (i-+׿R +(-p[m ',]E^B ',~g ?'d,ظm &.,61n &,Vcy {&+L{_ '&+م~4 %e+|4ڱԇ %1+yԇ B%*xY8Ջ $*s=qՍS $h*sՎ "$*r+֍#)tjsQ֌v^#)rܙ֐)"D)sA։")x1׋Z"(rbA׎"(w"|׆H!o(zZޤ׊!!K(u׉A!({. ؄ '{d,2؅ '|pf؂Sb y'ߩ~<'-w'X tI&kl$q&d`n0&J`%-3S<%pITz%J N%S>%k9Rz$!5-@$T.$69'j$bv g:$< $, #-|SZ#v_K#Tw# ("&lOi"9ݾST"Eݸ/"M<ݭ!Zeޡ[u!e=ޕ2A!ncސ!t")ރ\!_qtr5!qS- !] $bHKx gwCyl )' Fd'wFc-Y,J073UI ]\+,`.LwsGx|kwu9_Xd'3%Iy;b]P%(> ZZ4( ,)a&jKyRi([u1 zhE Q9 s] 5f m$  T=  M#C  ?5[ T l z 03 S y] #; / K17 L a8 X; Tv \{D| ' q@  _Q /3F hM=g k/4F ^+% ?YX;$!+/(FV=s[#W] )h[z{[ vv Lf0HjY IU\\9B.m%-&4yo-=IP8Mn"~_G( @\+ xQ5?[_cq0"Ynlv|9nLF_N,?1MW}R:cs,V0*5a&33w i_,67`iz#&Iu sI,5Y4Qeajdx@qir|6gHx<.}1!xcd6o_mU@gR8\'9v`ghUxHOG1eR.bI~cHPJ/G1-NE}&DxI%B\zJH2cwB)u FN/, M`v Ih .Q_/ YT=1 U`g [B \^@ b& Z b m .i 8 Soh b voN~  |:d[  ,* }  p  e,R D [Z wOu Mo %H C _ 57 F /W 4 #~ Bi  hD  *q   L !) 75 <U# W53c n[D= vT}a  la+ @{T {bA cE/P Un3 Fd 3< ( "#  9߻  S ߙ" z0y# Jf+ p54(u&zuxG.w3kKpLkN~ooWie8e'I_X'[pY:OR W'Q#o M2mEE%LC]I3:ne2qX')X/LF)eR :i  .5*9;<\GL*}Vo^TaMmpn4wz^ ~o8n%daKUL(}Am6V3?""e &S# >`WZ$.rj9FqDCYRmHYc6b42o^ w}r6xAq>lt\a @6T lv.Dn Fh9> }%. 7 A/ dGI ~kY l< Gt V 7'4 H^ {j >&A< -f 5g pM@X -%G\ O= XJ b]#g 2bL _h~(r ClPU 'o( `t) y1 {;"U rm|tqd yE5< t Im SIjI xean )a" ; l]~  [H E$Y oHV 9dVb uS4l \ Q; = Q  -O fg5Mz _LX: K I  KJ  9HP l7Hu ,oGB | `G Z HH - "H  DI`2*JqYK]r|L@DsN FO3dQ]4S:tUKlEV=YT0[fI]Ol_ib<UNe$-g ! jBc9m^\oYsd^v6+My |CA^t,w\{oJm"x!t#q&InEfx|tjgVUho'1cF`0'][/X bCT< [P`,LUZG)*=CU?]:@e36\Z1{r!,.R(I<$Hj ~jZD<&M  pB,nSbr4-c <V>,gUE@ml%+li0]NC6B)q<* AbH1FM(cQB3Vgck[B~_v^(c]0h@&l.$?qH]vfsz{~um$PP{6:=xD(tZ rnp.voP+^opAHnS9hnj"Jm~0{k ljZh Jf @d'% /b4<  a?I `HY  `Uk bbz cj tgy dk xZn nQq $cCs *^>t -X6t 3S-u 8N*t :L%s >I!u @Eu AFv ?B{ ;? 6~@# ,v=( !m W=F T>K  QBT KC[ KG` HLk) BOu4 ?T<{ 9XLk /]aY %ctG h. bo Et .{ (-{:5uM%?md>KgtNQ`_XYqyePX{nHFgyA.M6 &k/Y %DJ=&sk|XX.( )7*J%>P\-Tgg5ov~e~A]AlIC%^SA_+$h&U tSP1yW Nn)Coc}%V^]SM6FrDy .9I?1-\ (  )R7E.XX &[kg(}L<$)(sC(o3P>]=z lJ&EROM-[zjZf;$m#u@.]j}ZtYokdC_[V., L7}g >Y{\ 4M )5H I1 aL 3a{ n# U H3 6tm jj  5+' * 0. T <^ JZE N0O+ \. < 7fv k j|pI #8{ (G  xs7 8 pn k g)Q `` Y9PK PJdW2B-(r:l?3\@|+`=)# !l*xd;^+h) + Ua O{\ G6-     7 xJnh l3 J< U} .T W p*V6 ". #&$~ n\7o% .B% !'# z[&W A+'{ ]p' <8I& ]%' (<.'mk^ly(/*A) )J2P)kb *&2+O*:+eG*]Ik*'PJ+*+PX-+oTuT,1P,3!,ld.Z>--In.v`5/.J $/qW Iߡ. zLIo- ! I.! +- 1!,?!h+\!=E޸+!`c~*2"3J(e" {((")%G";ܱ#~H#do܄##F[M# $1$Gr$Anۨf$gTۏ|$xu*u$SC #%5. G% %f %60ں>%Yڑ^&_g& [}3& BY& '5ػ''Oث-N'f؂I'td_' [Yo'"45''h((X( +FF(' / t(G 0׭(_ 2]ד!( 4g=( 7NU ) 87r?) :a) =jy)!=\x)$!@HZ޾)5!B3@޾)B!B/1ֵ޽)V!E֡޺)i!FՎ޺ *x!GՃ޹ *!Hn޸"E*!IV޷.R*!IO޷Am*!I~3޷U*!Jd޵k*!JN޶x*!J3ݵ*"Kjݵ*"K` ݵ*$"KZݴ +0"LFݴ!+="LDݴ+@"L<Ծݴ4+J"L.ԬݴD+X"L*ԨݴC+U"K!ԧݶX+d"JԔݶc+o"J Ԕݷl+m"GԌݺz+{"Fݺ+"Dq}ݽ+"Blvݿ+"@br)+">Qi)+"=Xk/+";Ki8+"9Da7+"7Lk;+"4Bf>+"2CdC+"/CmB+",BiE+")BmL+"%AqF+"!JuM+"CzP+"H|K+~"QԇQ+x"JԆP+y" UԍP+l" YԘN+j"[ԗM+e"dԢM+X"iԩF+U"t԰H+J"wԻ C+B";q+6"<m+*"2_+!",J+ "$&C+"(.+!.+!#3 +!/7 +!A;*!K@*! &[D*!0gH*! IxL*~!$UՉQ*s!1hՕU*_!<խZw*I!Hս`a*;!UdD*!!bj-* !tp* vy) .|f) 6F߁[) |GZ߆O) wakߋ?) r|քߒ7~)s l֒ߖ(i)e g֨ߛL)J aߢ9)8 [ߧ)# V߭) O (I&*(C4F8(<KkT(4[sf(.n׋C(g'תv(Fg (3W'%K' ; <'V1'n9!'O f'hN'؁+'q؟! 'S&ٺ'&9=(-&SS5&hq;{&~5AyS&VIc4&kNR&هTD%lڟZ0%V3ڶ_%%?Ie%(jk% pn%uN%+2z'%>O %U f$|l4ۊ$fxZۧk$MuUl$-r:G$n##$l $i*#g*C#e?W#b0\j#`D~܅w#q_Wܖ[#`]kܮ7#C]o#-\X"]!>"]H"_r1}"` KZ"a(c/"dA|"{dVݍ!ifnޣ!Qh6޷t!DiN`!0jnJ!m3i! o K!q+!u (!z" ? |@+U bXnz |x߄vtx sߘqVO [߰j;/ G߾g# :c%]0Y &JV?cPVKth.H[=@m7O9W_5;s+7#tWb*yyPG _F\F6o0+n! _H !42!!K +h!3|*u:39VEOH<PkPY`qbjTn!rAu2~-|I~x]vojqigt_*^f['oS+a*^-V:k.NHz3CY09yf32kr8*c3vV9kM:Z?:K3><)?+BB 'F 2 G <C C#$I K0)E V<2C \E9H bRAD n\IE sgOF {t\F ~`Fx| iErp uJie yFaY HZO vLTD sEJ: kHD3 fG?( `C5! [E1 XC+ OC# N@ HC ? C @@ 6G 2E /"E (&L $-I /K 3K 9L 9L >K AP  CM  FP  GV HS G[ G_ Eb @h Al <q 8q 9v 3y 1w" 0& ,+ (. {$4 x"< tE mN h Z _f Zp R} K}" Ju( Am1 @d9 >^? 7WD 6MQ 0DW ,<] $/n %!u % #s -e *Y+ -I> 3;$K 31.W 6)3f 8;r =@{ < I >nR DcX>Tg!D?q0F,=AwQFgdFV)tFDAG5q[I%_kKX}H xDOe6NY0KDR/'N8NIQ[!+Mq;;M_TKjmMTs{I?TyH%0\MQF@ K($M#5H5MLFjJXIvk.GSJEn1\DWo;6-<dN6Uq.y821U#G*<^(u ( $n!*"ZC>?aS+w\xv M} /p8 Z _=;k,_H%#b- @6';!(D@?GU$KPk?VYenh\}wRvj0Pms )\~yM' k8U=Z$hJo=I` +0# $.9 L<J`SP udozqU^ |9A|-l= \N& P`PE @yz}f r-k@ R&S #C '4 F- # kR m# n -O l 9+ GE .)K ?+U WU,b l{Hbm vod4 qxJ Qx, -> xn u(b o'D9 j?f cP{ |aa []|=z >VZh +Y}Ii U +< S%  YEX.?l\Upyd_xwJFbO!e4 ejG hk5 j$D jpB` ?o_w vx yj{ SNL y,5u ow a<D Sm ( I=> 8Ou] /&ym % Y 0s.  aI Td! AJ e.l H  $_1 ,D# UM qI2 [}F l*nQ R@$e 8 W t #|+ szP Fm y !ya `Y, 6ME> AV_ =m \0P g(%t J x!$ % Cg {  E 5/  [_  |F x lk ` L ?L % *-   !  GPMg&G_X5z%x&NdxIn c#y/D 7-d-way>iDHh& Z=FPhswoss |7?}- wB n\5ctQtuZt[M|S3AH  >U90@9.e]$7W+ {+a0] 43f[tm4|yI ])5>Tiryv 0:R"|.!pxA$3X{$ m$=KY%{ %h98 &GZ %Q &fv &wP6 $>&a $ !k?. C[  Y  k9 @{Q b  0I, &%] "[c s) mWU2 =/9 @ GK  RJ + eZi B Ad ] Mt& mV wV7 b?+ Ma$  ;+b # 'x3 J :f ^  u `}= *ei U) bC93 ''I_ V fjJ ) 'tf& 7],e V=r?o0wmp%,W&l|C8Y5KB##c{ts] ;r+oZ{HW6)0'n=x6GJfUvCe$iLt- ufn|u ?h.k $?c  ] 1N5 TK0T mDF| hX9e <65y {/ V)F 32"s Yr  $Z9 $c; y _b R2& o  ZN 89y xL Tp } 6dJD[ynRR *(^`"KGD&uw,5%S2WQ96{|lb=H2@.F&N?OR4a`]Y|MnhUNu %1Gs : ^C|.MoK<5]o'~}%XhJ )U{m2$J&D)!vq0 F>D#Op=mhBW1}unwv"W%kv8nL74>vb4 *$g 8 VPJ( cr1 s@ YIQi zbV xm? FS t ahV %\; 0@gG 87 }b d(| 8 Z!   % ) M 5j  hJ  cRb ! & 1l ! 6S U I9- J ?a K 2=# R w| 2]l V o_? x e Dd j s< r E[ 0s gvf ~KJ hpz, vE 6|2~[NP~S>f|%:)wE'sHzUpl f*[}gi(!b7J [ߤ|+: ]nߥ\Q VO߮q R(^y߯ NR߶! G3߻D+ A~ !5\W"m} #ov50#F܇qJ#naܜ #]pܬ_#GZT#+4y%#L $R:$J2b$,K'$o[S$Yrh$Jt1ۆ$u#R ے$b۫-%Iڿh@#%9o-%LqR%#*m%.mD%tlS%:" &G-cV &"ٝJ &F} !'/C! '8[!#'w8j!5'0 ؏"6'_ط. O"K'3ݮ} "S'ibݫ "Z'?<ݡ" "d'ݘS8 "#m'܌ui K#v'z{܊؞ z#v'D Y܂ #' t V #'yC B$'k؊ $'VEbx $'` f %'ZC0 d%'|Wz %'sbLUآ %'F$ R &'PO6&'M'wN&'eT[&'TK؍ &'`8OشB&'0X'''r صs4*2'& ^e*!' 6*' \،w*&E R +&  +& 5q^+&h N@ٹ+&. lP+& Id%R+& ld+& S~ُ ,y&] #Ӎ,,l& ӞJN,X& Ӱ1|j,I& pk,1&l dپ,&% 8N,&& A,%,.ڝ*-%:DJA-%e0e-%:Ҁڃ-u%Ybҗ0-\%#KҰd-G%-8-/%5q-% ژ .%LL#.$ B.$j3AG.$1Uۊj.$Qr;.$yђu.Y$faѼ^.2$q>۹. $#/S.#,F.#CSܚ /#Hq/#Ћ>$/b#ЯK@/D#huH/0#vNܤK/ #9 f/"ߖ/ f/"ߙ@M] p/"߅gݖ /"GJ~Џ /]" xк /0"pi?!/!kh޸!/!.laG!/!?dzA!/m!TЦނ"/L!fSޱ4"/'!3Xi"/ H%"/ fP.L"/ EOT~"/ aJy߻"/u /QМ#/Q R5#/$ Zbi#/Z##/PnhT#/9tД&#/R v^#/$ی!$n/@ې2P$o/ۗYf$`/ۧЁ?$X/hm۩Ьv$S/@qQ۴$G/N<ۻ$@/'*$1/E&%+/gG %/К.%/J`H%.6Q%.48 p%.Gu[%.qvfѪ%.;\b~%v.#Oڗ%].;ڭC%L.3ھk?%5.}%ќp% .Sѽ%.5i%-?&-$4&-D_ &-bҘB&-Oكh&i-٬&A-^@&-+&,h,Ӵ &,0\4 &,ل'X &p,ٟMm &M,~ &%,i`ӫ &,GM %+!7 * %+K% %+pL %{+'ڙ| %N+g;Զ? %+/GU %*`4"m %*{}l }%f*xdڲգ d%2*CR F%)50 4%) [I %)ڋt %[)sۼ֧ $.)F $)$' $ $(A=4 $(ZoJC $|(mۘpJ $M(xק\ \$(:j @$' Or $'ܟR #6'v-ؒ #&TnY1 #&c{ g#`&X= >#"&Of !#%J+ڑ "%WDjڿ "%/<2ݕ "X%_ގ  ~!Z@޶ O!<F4 !Jc  QL( Q XH $^ _w  mlA ?u|j flu  2Oe  aW }Sg F -. A6  9) ] p8 o f . Q n  RH Z  + M 9Y  OD  em t sy z\z !rG ]  s7B e =+ @ t r xV dM  *E* *  EK7  X~n+ it lK % tm | EDX _ > M?3   5E   9F'0stSY{VJp(BZe%@{HB&9-i>vpoqn4S6,WFnEW$c?6MAh)@:CG7-%;[NGz@kzuagoYBQ+S?()nl H<*zgB+9a vZjvJy~ s `?FhFs ,01scO<! Ue*n#3hhE%XXST':hR z)& Qq;(\N{IOikA'A/RQ"h/1U  '- M:Bwrbnt!{HL}),&g3H>(1E7NL]zdS_+X>;[c ^ hY`6M:`\b fc7 Jd\:/e[ afqEh%mg0LfJ6e^5azdyZ a_R<J4Hl/{:Y0@4$i~  Y-!B<<O]Y oe! hrD #L~X ,~:r 9u| Mi\ ]cA As^#~ oU|d SYN+ O44N J j H x E| :Db T AU c+AD BB/l VBY eE> Jk QR#  Z14 @ gO r u{^ 0\yp U-i ~u t_ i^U  [;G A O= T F4 m >$ (/c @(K  `!- \  1 5 / L c p Ubd 9eC  *!     " A 7' ` ]8( v yIt' h^E+ @ o) ,R( ''  ]# 0 \ W A ydq IAH U  ( 6"L VY{ w rp] qF3 #L   +; ) *4 l `Ap  K@V 6 Z a/ k w Hxcl  xB*io  $` ? T l |H ) JA8 M xx. \ T" s) { j b  !N\  Q-  ( L H ; # RD L cl u0}Cs s^iY ,3C d2 .Q sl "I 3' L g+y eB?P yoS|r p]' V!D>3ޛt!|V)r!kZK! #o! ]"I-"Nݗ/U"wz"u"|R *"MB"I"%.Z#RH܍s^#`V#sxo5#f6k# WX#:L۸I$]Fۋ4A$5j#_$0Rs$-/$W $C$ ,$A2ڨ%h@ڌ'%~Nn$X%^;5}%lv#E%wSO%.se%3jm%I٪_r&eَS2&~xwK@&ygBN&jO8r&b50|&Z~,*&N]#&@F& 22&'&;ؿ'Hد&'[؜?'l؋&Z'~}(]'v 9u'~c A'|] G'pZ Q'\I ['WH c'LBi'?8}'|08'x)5#'c4/'Q /7'K 2@'73L(,.S ($6Y(5b(5i( >n( ?x(F #(|K(qU(_`$%(Qj'(?~<(z'׊I(oכU(Zׯ c(K׻"p(=0y(,@} (|U(o`(rp'd 'qZ ,'aZB'GI#^'+>*r'~3<ؒ']#Bس$'=PF'[b'i'fu3$'P}J$z'6i5k'؅@f'sؙ?R'Xع&OG'6CW;'Z^&'yj'r;x'M`&-vى&]e.ٽ&.O$(;+&$07 $dFI#~ܡ~\#Dg8n#CKv#c)#pyU$ #iu= j#vdܥk P#B|L A#^I %#7<) #%b "ݒD "U 4x  "eS  ",oB ' "߇y 4 h"gߧݹX N N"2߹y X =" v _ !"D? x "b z !ވ !aq'޺? !1f;c ! ]T !eNk? !,>߆s n!x/ߝޡ U!C$߼N 4!  !! iJ !! 8߅ ! _ #߹2! 5 864! P aI! `6S! iuV[! Lއ|h!o l "ޝߪt!Y C ް!H " ~3!/ o*j! ZR! bV !` (=$!* )6! #QH! fMy" rxt"~{ R݌"nW 3ݚ!"]/ ݬ/"M ݸ4"@ AA", BcR"! ^wQ" ve"d G u"@ +x" }5"gD+>"_ZPa"Pkw"sfB{"|PC3݋"p71-ݖ"a "ݧ"Tݯ"Lݽ&*":FK#1]\##wu #z{#X^#=D&#*!0#3 >#@3B#QSAL#^o\Z#ghV#swc#Yr}j#Hg܈e#o7Xܗp#g Eܝs#]4ܫu#N'ܶy#E'~#8}: #,}P#xk5#m~A#xsS#bh i#Obr#Bg ~#3{_%#%p_+#h_7#c^;#T]E#N[L#JaU#9X^(#5[d3#+`rB#UvO#[Z#yZ܋f#uV܋p#qZܕx#fYܚ#e~[ܝ #_xXܤ#[s^ܧ #Un`ܮ#Qi[ܯ#Negܸ#D_dܾ#DZdܾ#=Vn#3Pl#4Lp#+Hs#'Dw#&Cy# Ay#@~#@#@t#Au#A s#Cg# Cf# E_# GY#H Q#KK#NG#O!:#T%:#W+3#Z5 '#_: )#dB #gI#kR#q[#ub#yo"w}"yv"&!ql"+$k`"6%fR"F-^H"I)W<"V-R3"_3M&"f/D"q6@"y8;"82v" >.n"@']"&EV"3EH"DL5"SP."eN"sX"Ws"Xh!"`Y!)^H!4'b?!9/e/!@Ah!!KHk!QVm!Yhu!dps!m'xt!v7ހh!N}wV!]ޅnI!xqވe8!yވWu*!uލQg !rޏIV!oޔ>I!lޓ8: jߚ1- bߟ( d&ߝ! ^7ߨ V Bߩ XS߫ O(`ߵ K=rߵ HN߻y B_߿g >!rV 8,xO 81j< 07^2 +>P( +CF G7 M* S V^$e.i@r&R z5[ Fp}T|vbpol&mdz)hY-cwL7blA:]^2BXV)GWHNQ; TL/XGc@#c94j3As."Mr&+Z{#6d!BrxIxsUrl^kfh_csOX} |IXp:Re.JV#L LD? @2?+8 5"0&.''')4!,7"0 D1M6 T<'_ >2gF>r MEv PRy WZw\ao^jdboeevZg{ThzPmvHonCq f<y b:| W2 yQ-sJ.m@#f;$`5$\1Z+T'R%QJIE = 9   2)    -  + /76 9$ <$B) B-H1S&6R-:a8AlDDnJJ|VP~ _Q|"cXulZo's]h%wcg fa~)kWv$oZp&uLe,{@Y+>R}0+Av42r<*i<eA`J YEVM PQ' LK% FS4% AT>0 =U?6 5YQF 1_\T +eh^ #fyq ~v lxz `i| {OY  r c~  @ \t  ENj  I9Y  I3R  P'H  Q8 " T 0 & Y$ ( [ <  _ ?. b K= f __( i fk6 k sD pq Z px_ c snR o wjA  vY1}  zT%t  {Rg  |>[  >P  4E} ! "1{ 7 $y @ t _ u u r  mm + Un 6: @j >E 5i BT #h Wa e Xk d `u a p t` s n] ~- |[Z H oJZ U b@U j Z+U  BqT  8\ O  0LP  .N  !L ( K 5 J  C ߻I  G ߳E  " V ߢG # / c ߜE , : h ߾ߐA 0 L y ߫C E _ ߗu@ M p ߉g? T ~ sW? m YG= r R<=  v7-< l#= d: Z : P; !I7 !G8 !78 ,!34 2!$15 B!0߱3 W!=ߦ޿2 Z!Fߝ޵0 s!Tޣ/ !!dxޙ/ !!jgޏ+ !!zQ~- #!!Ix+ +!!=o( -!!0b* ޏ s!g"6ޠ h!["-"ޮ R!G"&( F!5", ;!."1 +!"3 $!" 8 ! "9 !!=  !!A !C & !J4 !P2K! !X@[* !b\u3 {!luߒ@  e!xߦH c K!Sy K .!^m 2 !df  !n^  tU  '{P  4߃H  {3I߉@  rD]ߒ8  kWmߘ.  csߣ" g W߭ dQ O߶ C. B  4 *%) 6;J Hcm T{ yp a ZT m C; x ., x  *j  1^  22 81 ,% N 4/\ Sd' nM :(] =8W RM aQ Qs 7lx N#5h jX[ ~ zywO 5cE@ oFz0 2N# + kx S > >F l07} ={JVh _0W% u Bq 'Pnxb CR;O c$A v4 %4` fmC} +PM  ) 5kZ1q _G , $`Q xJt&` @k !*W Jp!sI eW56 a M% /J " Z/  48  n ~&  BNl4g 2Hi uY> aspP #. qR?w ` _Z.  I) :CW + M I ;  [ yI7s DBg ##6 1 %@DQ \RV ,cV 9x J qHn]_8WN<(eB}\)5'J:iSe~U75'0 }bIpY+#>7ZUHs2YX g?bvJjnbuj; >]vhooXRP6*I'<B<0(zTl&O)<Q [41O~ Bh#7qa.h);zJlGkvPDK9\ K6f= fm`h xx8 2B{ qkr bnhJ 5 _ T9W WrM$ 8Dx n= \ e$fp5 .M I )} ?fI" %O > & x aN 9 (vWr  l.j6 J=C]>R3=5v f[_ ], U+_ z [SA   #\: }h{ vh N:A + ^q qg ;], M]Y u HF0 4' EhV & >R  ^% 17YXnAUo) (I'k+vB+l-h4ha"<Y@(8EJ~:eQ1:VW]xB^d:4iTn/7\xgzn?~T*u\Bk}Spd.sV90u J_. "@t!V3^މ!(^X!2=*! fG"  o"!Zy"A/7ݦ "q܃(%#fHY#9-#I+ 9#D0$1۸TT$h4zd$JPq,% (~%yI]%!l&6dbٸB&_U+َ{&|In{ &CHb5 &4 @v ')w$ >' \ߴ  l'g!'0!ؿ0!'Nצi!4(orޜt"!(0TH3!(/= " )P_"S)ݎ^")*Z`f")C87֮u")_Ք#*v|Ղ%#.*rܺpX#i*eyP~#*Zu_?#*QN3+#*C#$+ 5)$S++ۏV$+DLԨ$+d LԐ$ ,~,r$9,ڤS.%~,l8 G%,X(*j%,}"5%,^>% - GD%*-%ڻO%\-4ښY &r-=~Ҽ]$&-PRҠjL&-n&Ҋvx&-~{w}&.|[[&I.mٖ@&.dp) '.YN>'.M_'.Dw' />{'8/.5^ض'Q/?,Dا'd/B*6؏е'/V rС'/bUК(/lDЍ(/| $|D(/k S( 0_ q(#0yM (X0[י7! (k0B׊1) (0#_3 (0G < )05 ? )0H &)0  O =)0 Q <)1Y U)1^ h)01%c i).1(j )J11q֦q )a1>g֠w )e1=S֌ξ} )1L}>mΫ )1Xt&bΩ )1YpNΡ )1gg<Δ *1l`)Β *1q_$΍ *1vXΈ +*1{U΂ (*1S΂ 0*1}O ?*2Lv @* 2I| I*2Gs R*#2@n `*%2F L*1ՁFE :*t1՗RH 7*e1՛[H 2*b1ըaI "*K1սqJ *B1xK *61΃L *1sΔL )1g ΟQ )0XϲS )0D$#T )025A[ )00Kp p)'0]p g)0ks W)0 zx P)/|Ѝw ?)/k6П} -)/UPж %)/@g )/)z֎ (b/ s ר (L/p! (&/j23 ( /eAH (.`QZ (.^\0p (.YmFр (.xTs[ё (.fTmѡ r(.UN׊ѷ k(l.@Jך \(Z.0I׷ G(7.B <(.> %(-:* (-3:L '--]e '-'$؃҄ 'n-m#:آҡ 'L-SLҹ '0-<W '-(m ', u ', s',@! g',V9 Z',pJ E'~,ؔh 5'^,زӄ ';,oӡ ',N &+)"0' &+7Z , &+Sـ+0 &g+nٯO: &A+{i= z&(+ԀC c&+oՠK W&*U#ճN D&*CDT 5&*&cZ !&* ق` &m*٥d %J*?j %*/aq %)G!փr %)jmZ֭z %);ڐ g%])ڻ C%))z$ %%(rI %(pCb $(jl׃ $(le.ۍנ $b(U_Bۮ׸ $A(;]T $(Xq $'Q r$'QA/ P$'KyY 3$p'Gۣ{ $D'tGء #'EC+ #&ARO #&?y܉! v#Y&=N P#&&9m 3#%6ڋ #%c5Cڮ "%B/l "%),!݊ "c% +Aݷ "1%%Y% "%%s@ |"$#9g Y"$ nۏ 4"{$b"ݢ۰ "A$9" !#$=# !#$g^4 !#'ޘ^ W!H#(܈ 0!#f%ݧ !"J'- "'$b "!3߂ m""Pߪ ="pF "b d !0ނ B !j jެ  y!B# B!&) !.c$%  3kQ Qw :v ; uBߢ GE+) (JNR  Lu y\ N+ Y6 PB <  Q c  VA m X m {P ^F >( h i p ; ~`4z t +dk ( e\ }h ;M @= > [ 4 ) ;+  k+6 { \P Y i 5b  "f  M =! / wf fv 0 .: C#  [86J  {py SU b a E = ]d- !  [M   #  )<7  !VkO r 7m S8 K # t ^ W {?_t ; X ]A$ 7  7  u#h[*;PWv[[n}dSXvD^*N;,=reky'.G2P& }~Vob(JO:s/L`7o[raj%q{Oh~6/-sj ye 9?Y0vvPI>Dr;x:,qW|1a1|G'# NKR U" =  _| ;a z l E NE  H :  ,^  QI Z bI * ;    fT p V' c T' dh 4 Z f| k:eB $) * /C>' 9~Oni <mK3 BQ N8/ T6my ]k n$l=.{Ge~1m4STS#HC2;]J/iNhwd 1C>+$` 6X@H#XV=hEbUoYq\FQ7)h9u {:a "4 B?H qETx^ yk5dy {.t k c AVM R6d9 z#7o)  1 * / m 'wI `5x *o6 I 9O  G)[ ]V   a]0 = j2N z tjt |= 3mz  _Fs C %fn l Bi <f7 dX  .c V Y`d -;Wf 5f jF dmq 2Sn Qa%s u1{v )dx FI~d%CzC au"kXEC`,tZWnF*lZ6S)+h6_+ J +7" j'= BN m&h_ C}5y T~C 3rL [bJ Ix|C q:l kD}' J@ 5 < x. k Y Kp &|0, QI5 ;X59 iTB G ql+K bUEN A!nO $O q FI I4F j(XA Cx: v5 L-./ 3JB) pW! {i c(u JL mj b mX1 B@%V :6w t,M  EfX  | y p _ : I H  c7  | mL " Ne &? &f( 1@= 0!R (3s! L7|P l4`u 3<oh / -: /% )PM $v{ 6$}t E`M g; y c 8  I3j 1N h q u0 I$"7D1M3Uc\dd6szSvqcI`TmP@H>M/p/0" _  +7 P,=`Gs)vg_lEcP$6\d\70QhmWN<ysKPA*j=KB&3/cM,|Wa$&2 &(K juuxq~0G= A  ] &o sd-^ 8JB H"T3  c h s6! Mk> v}U iX&h \/` Gp 9\^G $*L [-4 $h x@@ -c S+- khB ItVU )@c co *8 w-Y qEF cae d6T} u;O SA'@ +9dp ~y3 8A-B  'uA v "}E J_ !  c  @:  Dw k j' @ D k n B } E  [ r w 9 / U  /3 f "u^ #] .  U77  3DpV q O 4: Y4  b S k>Rx xuj i`| _8Dq & "g MY T*D EL1 S e f q_f y +D- : &H> h9  [|j{ ~ -6a @ 2QJ  Yb; 7t" Uy l i > \+ D@,s m0eq n 4c !  >- g { \! . ? 3 iJKB tKh bqZ? 1e!  .l  j=x p8r 6z|V Lu~#f mz5 bgD !d ~ZaZug]V] 8Zh}snY6<FY[X,XXd*9XMOZ }l\9I^_G!eG;k/t 'UOzMPmB&(a x%SXeSGt>X{@2S']2&5Q4!Zb90 Z:!1k6q0qKIw+` fT#sc:ZJs`<%(uT/]tNj< !A*/&HgLZz'UjrB| "\\X>q?,PgM&H k N>{ \RV _] 8aC i >Wn; a1sZ tz{ `OY x48 o_  aP !QG @Be c*F ^K!E fPo$05 E1#YjSB|jQYowd0C{hz#XiG2CWv#Qg; 9*)O0RsEss~62Vi)B5}SMV}[e f:') o!?V ub /Vx| Kw,w vSik7 '7bu m ` &VI SQ}V r]M CJ+H  E& 'B%M ACO sQu?u }-`A _?D 3BX G bJ+ FNe syTDXQZHdj@!)twhPgk/+iv U k,A^cjXbN_42A'$N5Id(LHccG'*\w-G.B21U+$VI7yd$/1&;^?V0X=w|zy^}(]"haANC :8 p)@7 7dI3{neh}5vQ!]%26=;hDpQxNd * 9w W3K swq{u h_cT /+R= Q  BJ ; 9s S }; t Rv/>  N)Z  .%r  \ Y  F< X g }  7!K  ?  bd ?( ! i1k " /Q fM 91 ? ; l < Q  ? 1 0B H HD dG cC Ng gV PK :< Q' "` Y9` /bf ]Tn !_tn Cpg ,AoF ir1 m m4l<Qq!)]hGmhgJqQpmqz/uNE x.߈- z߄&H }߃]r 2w |v߃I {RV߄e 4?߁y {~9ߋ tf߉ yM ߉3 r9ޑL!q#ތq,!uyލG!s\ދ\!w=ވ1{!y pރI!Y~\!EހtF!wd!ox{!^x} "I[u":D|&"+3}7"zH"~V"| b"{<"vt,L"nr8e"NkH"q4^S"]*`^"C Tk#-Mu #Q#{I(#qH6#hH;#_F+I#UD;[#MAAZ#GAUp#@4a#</l#9o*z#8W#8qM#6i=#6^.# 6P#3O#2C#1;#.;#.1$)/. $+/+$-2(#$A:&ۺ&$EA%۷0$SJ*۠:$j['ۑH$ue*ۄM$q0sU$.d{c$4Ys^$7Thi$:B^p$?>Wi$B;Ns$K&?t$N$5u$X'x$e}$m$~y$//zj$ILn۫X$_etۙH$qjۀm6$dgV'$kbC$cI)$d7$e4$e$%+e $6;d$ PQj$$yhby$?d۶Ys$Ui۞+U$x^s6$dY$<cB$j^$)b e$@aH$ [d$0 la $> g۸q$U ' j۟X$m G eۈ߭B$ b pwߋ($ mX[$ l40$ )u!$  Tp$(!X }sޏt$A! u۱fN$e! vۂ(%$! vc$! vL$!; $~.ޫ$!m Cxޅ$! Z|j}$ " t>z$(" ~[$H" ۱Au$U"" ۚx$"Z h݈s$" QXp$" J*!l$" jh$#K ܡ?g$@#z ۫e]$l# ۀb$# /\]$#NDT$#St"ܔwY$#l]P$$J@L$$K$G$ۭC$V$+۟?$u$XDqۂ7$$uMCw6$$,J+$$ "$%f~ "$H%@ۦC $k%rۃp $%'Mں@ $%^2ڍ $%] $&% #!&D #,&e #U&OܖْY #s&܃p7 #&%d< #&.; #&*D0ټ #&brAzq ##'Gܿ'+ #`'N܋ #'? ^qؠ #'^b9T #'k Z #'q2 #(1xש #H(x~ܯs #[(4ܘU x#x([t p#( Q` p#(45׵= `#(iq \#)-T#2)GD#I)0~ܞ֬]>#)]O1#)?'#) 4# *`sxr#1*LI#N*ܠ#u*z#*D&Xի"*jD B|"*t?r"* O"+ $%"*+?)ݹԙ"a+06ݏV"w+_B{&"+RF@"+]`ԃ"+kR",L|"=,%ݰ^w"a,Pݓә<f"v,` _",U-X",.CI", Q4B",@ Ӣi4"-s}G)"-S".- "G-8ݰ!]-5fޕҩ{!|--v[6!-m/$3$q/$ o/% ^/%()[/<%VTгړN/V%sЩo}D/^%ЕLV9/{%y70/%p,/%`/%' Q/%A Aڶ/%T7<ڟ/%qP0ځ/%lh.%!Qo.%"0G.%8(.%L .%i.&EC٫r.&_kٓT. &~nV7. &R4*.&>.&%-&-&1-& J0-&#oH-&8_j-&Fv٭Bv-&cُS-&|}5-%& d-%[C,%:!/],%j1/,%AZ,% E6,% 6W,%. __+%D hڵr+%O 5xڭR+%\ \Ԃژ(+v%r Ԓڈ r+f%| Ԡ~I+W% 4Զi+=% eX**% 4IT* % s5m*$ #"/*$ 9 ^$ 0 F (# F  2[U ~  >-   N]J  xp 8b #9  G-  }-6_ +qAl b M6 cVc{ 0d% $sW 2{T y q(ef p^BX H A;88 XC) +  T "h&y PJp4y!>B_*$8<:J5yJXmRi/s;} yFQc| ti` W) Cs: o5: -(i) }9g I L#B 2\ /Soq: X qMV a" KI- 8bgO +;< 6 3^3b |^'m-Xs-;3& NP/|`W`%pB6vBp_,,EMkp'/93*_; ~ }#X ClJ 7_P(&\-4&kAdMQS<`a=o$: MxL|V6k[\MN~M ,JB46^A(WXI=a mr47;as`_ D|** R4{Y @H( IH B DS _"ER  gt ; os Ly;C l|  =s" V jO Jcs Hw[ + ) {o& &B!PM%cx_y=PF  7K 7u~ \e X8 %"w( ]%8h {)q zY*P U2+ %O/ .) 00&R 4gkx }x6 mWX: 2 +B JQ TP8 7ap I|o3 \x w _,G r| kt(" cPbC X] S` r M:< B`c 9K7 0f4y /e 8 T*8'mUEu9n?NggK!PtlH?ltPu)e+J[6 N/:U0-wW/tD5] P 1! _ER peZ\z}q%ioP+^08US&O+ kAJH>`-7!m.?N+O55&hX # dQ*E- K >i&l{P"K> "vu #  Z'-%?(ZB-Zt0 iX5) !l;H  \@b JK >^"T n5~`  Jp   ~M < zߎy HU juߝ yr Z:e߯  J 1i߼  ?[%  /GV 5 2o I 0 j Y{  1V  8$ !;8  !Rl A +!i m =!Kz߸އ R!h2ߣޥ g!Oߒ޽F !t!5އ L!!Wn ~!! 1yf !! Ta&!! L>A!! MR`"! Ej,"! \7ކS"!n /6ޜr"!X ~.޷ "!7 N%Q"! |"! k#!  If#! l<#" bݑw#"[ d$ݻ#"4 ($" 9$" Oc$"" 8}$ " tpO$#" NVq$$"{ %ݒ$)"a ݭ$$&"A e0%'" x^%/" J"x%&" mP%," /݃^%0"i ݬ &)"A L:&." d&," 'E&+" pIo&)" oKs&'" ?&ݎ&&"e $ݬ&"> 2$'" T3'"R'"^G'"%tp'"{Vݘ)'"M+n'!l (!8+0(!_$W(!!ދ\~(!d{%ޫ{(!Bkh3(!0=4(!3>(!K<.(!Mf[ )![ކ)!kmeެ;)!;7oW)! }q)~!։1A)n!e֚l)`!]A֣ޕ)V!V85ִ)B!#%*;!G*/!+R)X+,qm +lԂ,+rgԚ0E+]aԭZf+HZ|+6zsR+(^aU+;=F+'2F+J+<"+C43+BKO*+?]p?+FuO+~kJԍ[+fGRԨu+K(T+5~_+hg+Wc1+TrE+Aq-^+8s8p+0M+v&^{+_pp+Pԅg+r?ԚV+X( ԴL+A5+(++#*<5*(QD*$>fO*%M}Z*{+]Սh*i+mՠp*V2{ղyy*D;d*-w<U*qL5*gV *`e#)Z{A|)T(;!"(904#(8GX:(8YsQ(8ob](8i5(r<יG ([? ص'';D;'Kvq'RBD'Xl4} 'aSW&h2j8&nY~&tvٙl&^}٨M&P3ٽz%&6Vo%"{gw% >]S%qNo%7@<%'V2%g'xv$tmۜ >y$U۹8$7#(W(#6W h#E'6[#Y<.#g N#v1f"lL|k}"yxݒ\Us"bݪH."F+!'J3! }JX!2!64"Q Pwmtci yqߙ  ZgCB:P(y4Yd*7 )$#l^={7QCORq}y9)za~s][g=5?1#LU$IKA8klv^nnm$SI:K44)~k^r *.F.3SX1Lwxzv?+XL-!. dRm~-GX$l qfQ} l_* 9JB 40, o^ f w 0- :D4P _y. <sp MRJN{ v &%- zXQ G8cZ@EGs{~^P#\% BLY#+G ;(g$4i8uU:7_x+Iz?R92w/ sUA B ""h o =e-|0 UQ) rWy x ;lW _ uVg 8 &7   j%v D! W, v^ d 2D( PLu k5 eismy Y;=  A ^.3 )3P Q # l  ]RyQ ' 47. 4  D #6 X P_0 h c v Xf w n\ 7Db V+\ p Bg$ X9. -= 3L o4n e MtY '  B: OR1" ^& E) V{0 $X.0 }SJ3 3 7 Ea8 G:_< x i> # @A F L B p rLB 4?D Z@ VyL< <  6 v s, \X r i " D, K  y3x i 2 uP 2 < k S S > ma]2  1    Y np`< . ` B{; =Wv oP[a ;-7y $`5,Htct57?DbL?}BrFIqMxMT,R>6*BO1y-kXAQ' ]qf#?jvQz~]BoL$c%< PS F>: q/Ry= !92 # ]_ Mj _([ ;,K ` 8 A> 0A SGUT cM fS>Q 3 R([4~O^^oq\^:h.gMPjZHmEnlm8E9jwsyEykXVf%bac!*M[J`yY:T8U!IM)IGWnXA\<4 ^L~,BK(j d KqD$Bg}$7Fmv g 7TNW)E4;2)EzTjXS`8$q"p~Kr}REntybg$DxVM*EI} _< #ߴ".9 j~"N +> w]a S :ߔ  :!^ 4rP!e Et0! Zk!M n5޹!q nSy" 3j%" XZ"A F ݤߤJl"p p ݀w=" \.6)" ;"&! ! "i!R eނ#! 7I# " )n#["+ A~oݢ#" ZAP## q #d#tܹl($#npWS$$&(^ׇR&2(ٸ` m&i(o &(+i; &(#;U &)QNE֍ &@)b"٤Z &t)tx1 &)Hj ')-ճP 0'$*i|9 ;'L*ؐ= `'*5 x'*6հ '+f/fw '`+NM|* '+d6W '+x**| '+JӚf ',v{U (A,رUB (`,׃") !(,S $(,@ 0(,Dӛ E(-*d K(6-B׸> X(f-dx d(-,HҺl t(-V ғP z(-S/ ('.p$ (P.kע (i. k׊ (.=$X[Ѱ (._4[Hѕ (.yFU7x (._KI (/qL. ( /Hk (6/ G׷N (R/9Aפм4 (k/UFׅВ (/GcX (/AA6 (/:M, (/ ZH (03vFϽ (0OOϥl (#0hJτS (G0M׳fC (J0OײZ1 (Z0Rח7 (t0V׊ (z0W~ (0en(0+9f^(0ARsPϱ(0`qKό{x(01iYl(0)L<W(0&3N(0 @(0 8(0 ",(1&;"(1<M( 1A]γ (1[uΙ(1lΏm'1y}V'1&h4'19R'1VB' 1o*'1?d'1]K'0n,'0!T'0( @'05&&0GϷ&0K'ϰ&0U @(ϥ&0_%P(ϛ&0k6i4ϒ&0pMGώo&0zoM|K&0eue*&0yp@%}0ڐ\%b0BڪZ%M0nھQz%30CDW%0bC9%0v=~%/;a$/5Q$/-78>$/KI7"$/n^1 $/z:b$z/ە5.$Y/>۹3$6/^:#/S6c#.598U#.X;#.݊>"`.):ݮA"E.BeB".ZM["-yM{0"-1Tj"-P`R!-6ya4!u-Zޛm!V-uW!#-|!,~<#Ӈ ,u^F]Ӑ ,jߢӝR> C,_ӣ* ,X+԰+HwRԽa+BD-d+7_9+(}'p+"]V*2Cd*f $}* V*'"*)g(p)\>7#)|Bia)SV.w)b(#_q}(Teׄg1(w׏\'j-؟;'XG`ح|'MػPC'=  '05&^CB&spaq&K.&%rE%f%6:H%s;Kf$G[%'$nC$/r}T#zs@܏v#j!wܜVg#]kܭ#h#Jݽ "?1".48om"fL,"a !2 0!?J!1+ gX2;rj M,  U]uDWkx=D{;pG]7LFSjFE `34V')RE  R 74  : K  - I& y 33G  N ; nCbW 9 =  =78A  /  (O ! X# # #(/  Ti 1n s^eH j '%RzoP 6 7di3l5GM8Y Bg? @j Lw!!-tޙUY!_l! P޷"pLNaK":wD"\-u"!"Y#"_ a܇o#=$8ۈ*$[lIK%p/ k%٩{>&ivc&HOt8'Cy'%E/Sأ'QM( #~(QQu(@*G)H}֛j<)=+,O*(Շu}*P|N*% iԏHa+ ;J,p!@Kޝy,![R,")D-##'JҦܾX-#\ W܈q-.#E.r$e9c.$R&4/%5@Шڦ/%{2@l/%CG0N&i)0&+ػP;1T'`s؃h1'&542l(G{@2)4%֯3i)qNo3 *̫(F#4*Zct4*\}4L+Rlxԓ<5+J7s5+>]J5V,v A6, ߗ 6 -# ^6 6h-X QҎm h7- f^ 7T. ^Ȅ0 .8. & 8c/) c)!09/U ޚ ЙS!950 ƀa!$:0 Yޤ4!:1 9R!:c1 g"9;1% ݑ+";2< Uͷ<";Q2X Ċ͕m"+<2| {ݝt"<3 ah["<83 ;×>"0=3 ݑ#=4 D@#=T4 qp#j>4= jZʮ#>=5a +ʕ#G?5x ܊9v$?6 R]$)@^6 ۭ|>{$o@6 v|?)$@6 ?$!A?7 $JAo7 ڝ%A7 <,C%A83 j%&B(8A ڹǺ%oBi8P b^dǢ%B8i "Ǐ%(C9u ٳƄ&uCM9 `m]&C9 ~-\&MD9 WْO&D9: #G>'D: кJ00'RE: ء%R'xE: _'E;; l' Fr; G่ '9F; -ة\'|F;e(F; '5(F< T("GP<ׯ(G<V]_(G<856(G<ҷ,)aH+=~T)HU=T)Hy=\`)0I=+ּ0)XI=֏!*I=V2*I&>"\*I6> i*JR>޵*DJp> Lՙ*|J> 9zh *J> \Z +J> -!3+K> ,X+K> ´>+eK ? YyO+K)? &W`+K.? &s,KP? P,#L_?t dzm,FLk?f Ӱ,[Ly?U ]ӌ,L?E 8as,L?9 -bt,L?& 5m-L? \'-L? jG-M? ^#o-+M? |вY;-8M? YһhV-TM? 8ҝbz-oM?u рi.M?W fn,.M?8 ]v`.M? 4|.M? u*~.Mx? X(-.Ml? 0I.Mo? ! \.MV? x/ NO?v "/NE?] 9/N+?C L/N? x/ N? yر /'N> m!B/N> @߱Fw/-N>v ϱ\/(N>P 䱀0Nl>! ٱ/0.NW> ձ>0N<> 8T0N> `k0N> ~0N=t x*™0 N=T oC0M=* Og0M= D 0Mi=;%30M7='a0M==É0M<]^A1M< er+1Mx<Ά(<1jM=<Μ\Q1]M <ί Ēd1BM;[ɲ<ķs10M;8ڲfx1M;|1MS;h,1L1;m!Q1L:Y@ ń1L:kKMFŦ1L:HOy|1uLb:;Ε1_L(:3ζ711L9,9k1 L9w! ƭ1KW94=1K9 d1K8 Ζ[W1QK~8Nj25KF8eܴǯ2 K892J7+P2J7Oz02Je7̀a2qJ7͠Ȑ2JJ6^ϵ3ɵ2J63{2I_64#2I6jS2I5͠aʊ29In5Q2H52H4ab;2zHk4ͦ}2FH4nϷ̥2H3G D2G3>2GQ3l)1yG3 ΠM1JG2ҸQ1G2j ͨ1FM2F <1F23΂'1YF16ƹ}71!F^1D`1E 1ZV.ϟ1E0?_Π1@EL0t1D/8=?y1D/yrh1gDM/|ηЕ]1*D/WѽM1C.*1g@1Cz.e 71C@.Ζ*1DC-2Y1C-nv1Bu-z Qқ0B-Jϡ0BB,+ܽU0A,H-0A#,[ςU0VA+vҾdԁ~0Aq+k Ԫi0@+@mM0i@*Ϸa?0,@*'0?A*3D0?)q*e0}?)М[y/B?)v"֞/>6)N0־/>(6JX/>(aСm/<>g(}!u/="(1@[/='~Yd8/T=x'µؐ/<"'_(ٰ.<&CqO._<&9è.<8&L.;&lC).;%ьhIr.];|%Ѻę[W.);O%p?.:%7ی".:$htKۡ.o:$Uұņ۶-/:V$>(-9 $ KD-9# g҅U-S9#ƥV-8.#3:8-8"t3L -a8"ǁg, 8Z"&|,7%"|GK݌,7!kdӌ0ޟ,V7!Xgްl,7!IȒ޼U,6V!=02,6!-s,q6 ө,+?6 `+5 E.ʢ+5D bg+y5 ԯ [+(5T/4+4?ˊ9 +4\ ՇE*T41Q*4X+\*3t>Wc|*3s̆kU*o3fթ̭t?*C3Bv*3 ~)2~>$)2{0fE){2wW֥t)<2uqy͟t) 2QpK)1%nR")1n֍(U1lF(1mCo(0op8ϓ(0]ndϲf(0?r׋?([0#s׾#(00u(0y '/})39'/GRM{'/igv'j/ةЃl`'C/tЖe<'/]ѱY'.B-K&..+]@&.Lق4&i.yٰ%s&:.Y&.%6&-4&-/@%-JI%-,kX%-+Mڂ^%p-7iڠi%P-Eڼvg%6-YxD%-j҃(%,x}ӈw$,w5Ӌ^$,r3JӑJ$,nZiӓ5$,l{ۄӖx$v,kےӔ Z$a,kۭӘA$H,fۼӘ%$?,l%ӓ$),j2Ӛ#,gFӔ# ,q[1ԏ#+mlEԔ#+qf ԉq#+{/ԄWv#+~:}AT#+Pq 6#+Ue#+ cY"+&uQ"+F.u="+]F݄5"v+sY݋/"u+tݎe"l+ݙSt"f+ݝ =Y"^+ݦ G"Y+ ݧ 2"V+ݱ"I+* ݶ"O+>?ްԷ!J+R[#޽ԥ!B+e:޶ԉk!O+U޲jJ!G+j޻])!I+ޱ;p!Q+ ޱ b!N+&ްM!Q+Aޭ8!S+bު.!Z+"vާ!V+4ެԾ` !Y+MޞԧD d+dߟԓ- [+v"ߡ  j+4ߌX v+&Fߍ? t+GU߂$ +pjm| +vf[ +4XԷ:n +aIԊe +8uX +3ZH +3&:D +N5 +b , +q# ,'Y ,<ӽ@ ,Uӑ 6,iA,RW,2r,\,z hw,G+XӡQ,t*3x1,4$Z,9>,;-(B- >Fߵ2-5 [LҵߗD-Y tMҢ߁S-j Tҁhm- XND- Ui0,- _T -![1-E!)Y Ҥ.n!Eaрެ.!g[PމF.!\#pR.!]Zi."]?.4"\nѿ).D"[^ѱ.b"aEц."Y,g." [N."6_&ݺ/"USܡ6/#iU܋D/9#Pдnu/i#DqyR/#B\U;/#;:3#/#4 /$+0'$*20S$($ϙM0q$;φb0$Fk۰q0$[{Hۚ0$m Y)ۍ0${R|0$'g 0.%U 1L%ΫD %1k%߿v.% Y1%ߛI5 s1%{2 = 1%SK 1&/\ 1-&[ 1J&-Τl 2k&>͆ٽw 42&Hpٳu 82&Tߺ]٥ _2&btߍ5٘ |2&nq߄"َ 2&xgiق 2 'Y>s 2.'H)i 2>'>ͭ_ 3k'*̀Q 53'߷hI W3' ߝH? p3'x'3!3'Q ,!3(J$*!3($>!33(B!3@(L! 4K(ˡ Y!-4o(ˊg!84v(޽˅o!P4(ޡe!l4(rބQ!4( ei>!4( WS$!4(4" !4)) !4)!$5*) "D5D)ݽʹ"I5F)ݧʱ)"k5_)݇ʔ9"}5p)ʒC"5p)nʆJ"5)Yqc"5)Cmk"5)8`u"5) z S"5)cB"6)Y;"6)7- "D6)ݰ"Q6) ݧ#j6)܁$#6*m+3#6*]1>#6*I8R#6*7?g#6*)Dh#6#*$L#6(*qT#71*k[#60*Yh#74*9v#57@**Ճ#877*tܸՕ$[7A*`ۖȹթ $p7G*NۉȾպ;$7@*>sȼP$7I**^ȴv$7I*Gȸ$7J*x@ȵ$7J*[0ȷ $7K*EȲ$7M*B!ȸ$7D*& Ȼ0$8K*ǵ<$8F*L%8<*b %'8B*w<%-85*ՌS%>80*fڸիu%P8,*Ftڥ%g8!*/[ړ%p8*Dڍ%8*o%8* i#%8*g9&8*LL+&8*QY8&8)IlM&8)8փc&8)u9 ֓t&8)d/)֩&8)Gj'3&8)*HC&8):P&8) d*'9)oH' 9)ƃg:' 9q)Ɩ֋a'&9i)fƛ֤q'"9[)Qưֺ'(9H)9nƺ'59C)Y'192)K'59&)@'69)!/'>9)A'89(d(;9(׻*׆,(I9(l׼<ץ:(<9(G]e(J9(׭s(S9(p׵ƍ!(I9b(QװƬH(W9K(1צƿs(V96(׫׎(V9(gשש)V9 (D֫!)W9''֦+)W9'֯%5)K9'ֲA Y)U9'֪Q7`)N9'ּmVu)C9'vֵƎ؃)P9h'h\ֳƥث)D9I'BB)D9!'ָ)I9'ջB*C9&ռ8k8*D9&zսY٤]*A9&Bս{*F9w&#yռƓ*=9_&hƳ*99<&@տ=*A9(&8W*.9 &$ڀ*29%k!ک+19%H>+!9%$c9+&9%Ɔ-[+9f%ƭ[z+9>%wڐ+9%JL+9$ 2 +9$ZA ,9$ƊۄD,9d$hƨ۪T,9H$Co,8 $|,9$d ),8#S-J,8#8P{,8#mqܥ,8~#J!ǔ-8Z#)Ǽ&-8+#/<P-8#2hb-8"vCHݱ-8"(L>|-8q"3Hǥ(-8A" Xk.8 "wPޤ..8!G`)E.8!fQc.8!ht- ~.8|!vuǔL .8\!h{Ǵp .87!rMчީ .w8!D,щ .r8 %&ј# .^8 УW9 /`8 Тf 0/T8k иDZߡ U/C82 7к /G8gп+ /68FLd /.8~ǀ /+8i:ǫ 08C +088 I0 8d h0 89~ k07k c 071\ Ȋ 07hSȩ 07@8*= 07 'w 07o94 176Bi I17zFȡ:u17DuTt17vWZ17+.e;17fa27sȄK27d}ȲC27=j{J2{7"K͑a2j7͓2n7s͘>*2\7_ͬeS2T7=ͭȔ2O7TO͸2B7(3<7(JD307_x3/7Z|Ȍ3"7[_ 37#&D37l37|=47Fc347ɁD46nɦ`46FQ|46!vu46}d&46&;5#$#!<5  :)<5&nW<5y6|<5[K<55de<5 :{ <5}-ʍ <5j ʠ6 <5Xʱ\ =5Hm =58} "=5(m G=5Q߰ Q=6 F߱ [=5 ߍ =6n"!=6g4'!= 6;HL!=&6Wp!=#6i!>,6jx!%>=6AɆ!C>=6t.޶ɒ!N>E6iެɝ!e>J6]݈ɨ ">U6S~ɱ"}>R6Jyɼ0">Y6>RC">h67PR">^6,=j">p6!">~6r">{6`{"?6Dd"8?6%ݷ_"R?6 ݧQ "`?6 ܍E#?6 k5#?6 m3-#?6 O)"D#?6 :%J#?6 >!*W#?6 ".e#?6 /t#?6 6{#?6 6# @7 i8#%@7 `տ<#.@#7 XͿ:#D@17 <ܧ;#e@E7 7ܙ<#d@K7 )ܒ;#@Y7 l;#@o7 l:#@g7 `<#@{7 J{8$@7 J9 $@~7 Az: $@7 9j5$@7 *k7$@7 +c4$@7 Z/&$@7 J-$$@7 E()$@7 7!3$A7 3$A7 #8$"A7 Ѿ ;$7A8 ɾA$7A7 ľ>$@A8 ۽>$EA8۶D$PA8 ۱9$JA8۹=$NA$8ۦ=$]A18۩3$MA08"۰6$]A:8,ۙ2$hAO86۠.$^AJ8?ۙǼ*$qAc8MۉǪ'$vAv8\ۊǠ%${Au8cہǖ$A8t}iDŽ$A8qg~$A8v\t $A8tSe$A8fF`$A8xGV#A8m?J#A8h-?#A8w66#A8k!'#A8(l#A8.k #A8>h#A9Bc#A9#N]#A)94]e#A79K_Sư#AI9VnWƤ#AL9cv`Ɣ#AX9t~Nƅ{#Al9\zs#Ab9\og#Av9V~Z[#A9_PT#A~9^xCA#A9ab):#A9Z^+#A9bO #A9b?#A9T)"A9, e""A9DZƲ"A9X$Uş"A:h/dƑ"A:v>Z~"A#:K^l"A:Sbe"A(:gfN"A;:ph<"A;:~h3w"AF:xi"AQ:m["Ab:uF"Ag:݂7"Av:.tz#"A:F݃qű"xA:X݅nş"A:o ށPŃ!yA:ދRu!uA:'ތHg!pA:9ޔ6N!lA:Aޑ8E!jA:Vޟ06!XA:dާ*!_A:sޢ!TA:޺r!BA:޸`!KA:޻M!9A:-Ͼ ̾Ĵ#!2A;[վě!%A;lܾď !A;| t A0;` A0;,W A8;AA A=;L2 AH;_' @D;o @H;v @W;'g @J; 0R @Y; 4? @c;4C0 @Z;=JĹ @k;VWĝ @o;kXĒ@t;ugĀ@{;)ri@;9nw_@;L{Pu@;ZxA{@;lj3g@;yࢿy*]@;ࣿnjX@;౿h _H@;໿uL?@;ȿi81@;ҿj..@;ؿi@;)g @;<c@;E^ĵ?;Q fĨ?;^-Wě?;k<Zđ?;rHcċ?;}X#S{?;a2_u?;q:`q?;HZa}?;Kc_p?;]cX_?;ihLX?;gcII?;lB?{?;o<5?;f4)n?;w1!g?;p,e?;m"X?;|$S?;tG?;zF?;~6?;,?y;.?|;+ ?p;3 ?i;7 ?o;? >Z;B?\;H >Z;G>H;M>L;Q>D;O>?;Z&>9;Y.>4;[)>2;eA> ;c?>%;hC >;kW&>;lT-> ;k]1>:hc>>:ihG>:]lQ>:[l)_>:[{5g>:Nq>r>:QyBy{>:NUł>:xG|Sŋ>:tI_Őm>:jGrŜr>:_Dpţi>:Y>Ůc>s:K=Ž^>o:>6\>_:/'\>R:&O>A: \>2:W>(:) M>:?!]> :M&Q>9\0P>9n:U>9xEL>92ƈHK>9p7ƘSF>9aGƧbJ>9PTƹb@>9>ex?>9%|uK>9s;>p9_G>Z9@;O>R90SC>49rQ>(9~ƌQ>9jơQ>9TƸ"R>8= ;T>8*CU>8(KJ>8= gW>8E lR>8\7~H>8qrY\>8[|uR>u8|EǗW>W8T$f>K8, d>.8 ߘ% k>8ߒ.E p>8ߋNe {>7߅gn w>7ߌ'ȅ z>7jc{8ȡ >7U[~Cȵ x>7>H߇_ >7(sh >7}} >s7z.!>b7kU/!>O7mzN!>/7scȦn!>7@xZ!>6JI !>63H#,!>6=?^">6)L})">6u4cɜE">6N!zm">6,}">r6x!">X6 Y$">N6 : C">36 c">6 ɒ#?6V ʿA#?5/ Z#?5 ;!#&?5 KXW#@?5 ,mʄ#:?5b ۿʻ$S?d5+ ۟F$d?X5 ۢ c$^?95 ۘ5$s?)5 fۆ^$y?5 Fۈ{$}?4v 1 ˟$?4K y %?4$ k5#%?4 lI>%?4 biKy%?4 tK|u%?v4u YS˧%?P47 9&?84 %*&?4 (OY&?3 ̊&?3^ ^(̶&?38 =D&@3 V&@3n/'@3⿀K+'@v3翙wY'#@Y3pп̡~'5@I3O~Ͽ')@,3(Zҿ'?@ 3"ش*'O@2طW(J@2ת<͑L(e@2KבT(q@2d׌w(|@x2:|=(@`2oz)@B2p\͠8)@.2M[T)@2P)@1g<)@1ZH!>)@1*4=o)@1|'JΔ*@1Z0kν(*@1+Y*@r1'*@R1dU*A419Κ*A1E(+(A0ӾF+.A0о7E+>A0ZԱRx+WA0uAԬcϝ+NA0NԬ+eAs0ӏ ,sAh0ӕ8,iAJ0Ӎ<^,~A70{k,A#0l|ύ,A0bQrз,A/,$h,A/V:-A/STOD-A/DxД-A{/U^*-Ac/%B0-A?/0.A,/Y0.A/ }R.A.n Ѫw.B.Bw. B.&_8.B.JI.B.b9.&B.ڽuU/#B.޽ч2/,B`.]ŽѶ_/ABL.6½u/7B,.pý/OB .3ФR/`B-Ч0ZB-hϛ=ұ20qB-2χP\0xB-χk z0~B-{~,0Bw-XyY0B`-4mq0BO-.rґ0B7-XmҾ1B -4]1B-l<1B,Z.m1B,N/X1B,hWRӄ1B,c:AmӼ1B,( ; 2Bg,4(2BM,*LR2B3,!w}2B,}|Ӓ2B ,\jԺ2B+1< 2B+4%2B+A2B+O7 3B+ dQ 3B+s?3Cy+vԠ_3Cc+N}3CF+.w3 C/+P3C+#B3C*j3C*~+՘04.C*[μ9ղ:4,C*BݼNP4$C*"ϼbq49C*ȼjx4-C*׼4.Cu*l˼347Ck*XͼM40CU*Gϼ_42CC*<μՃ42C0*j˼դ4;C*Rżս46C*0μ '58C)ʻ H5IC)ʽ2*R5:C)ļNOy5HC)xʯ\n5PC)nʺmփ5BC)r\ʹ֙5NCz)XKʰִ5KCn)C8ʹ5HCZ)74ʸ5FCN)%ʼ5EC<) ʷ 5FC-) 59C)ü8 6GC)ɷO #6BC(ɼl 967C(ɽ4ב ]6JC(]ɷCױ k6?C(Aż` 6@C($qɹq 6IC(\ɼ 6BCs(Lɽ 6CCc(Fɾ5 6?CT(*ɿJ 6ECD(%ɿU 69C7($μn 65C"(¼׃ 6?C(uʼה 6*C(`ؼ د 71C'Cɼ %74C')׼/ 47#C'ؼJ K7.C'ѼZ% b7*C'ټt? w7(C'ؼY 7'Co'pۼ| 7'CZ'yUԼ، 7*CL'kY޼ء 7C:'Q@ػ 7(C*'>0׼ 7 C'16 7C ' 7C& 7C& 7 C&/, 8C&@E 8C&YW !8C&jx 38B&wٖ O8Cu&c٨ N8Bd&J i8BM&, |8CB& x8B0& } 8B&j 8B&j 8B&a, 8B%Y B 8B%K"O 8B%K%-] 8B%@,>x 8B%*)Qچ 8B%q06aڜ 8B%U;yں 8B%>3 8Bq%+H 9BX%A 9BN%@ 9B?%Q$9B-%I',9B'%P799B%U=79B %ZP>9B$^ `O9B$`gD9B$q&|V9B$yi7ۍc9B$lsDۜ]9B$ZƄ\۲q9B$Dyiy9B$0Ɗ{9oBx$ zƎ9uBk$ rƌ9nB_$cƖ 9jBN$dƗ9fBF$]ƞ)9bB8$Mƚ.9bB/$YƧ:9QB!$JƮK9ZB$AƦR9PB $Kƽ_9?B#;ƻn9IB#8ƽ}96B#|5ҽ.܊9/B#o/н=ܜ9-B#Y(۽Lܯ9B#L aܸ9B#@$l9B#+|9B~#$9Bt#9Bf# 9B`# 9AS# 9AE# 9A@#9A,##&:A!#&6:A#7?:A"@H9A"P[:A"U+c:A"g:n9A"tM~ :A"qU݄:A"xƉeݍ:rA"nʼnsݖ:yA"eōwݟ:gA"^šݤ:_Ap"Zšݬ9ZAj"MƯݶ:JAY"Iƺݷ9@AL"Dɾ9.A="6׾9&A+"39A"*!9@"9@!+9@!19,9@! 2:79@!=QE9@!@]W9@!He] 9@!Ful9@!Sv9x@!\ƒ9j@v!YƘ9`@k!pƯ9C@Z!sſ!9:@I!|Ϳ"v9"@;!%h9@!!([9?!,G9? >,;9? M.(9? d,3#9? s^ h$)8>E |A#t8>1 b$[8> Dž H8o> Ǡ&8M>82>$8"> .7>?7=#E 7=<.R7=H@b7=_Ti7=qu~7=y ȍŽc7`=j ȳ¢N7;=R»)7=:7< 16<'-T6<,UɈ"6d<2lɦ96N<8Fg6&<=]R6 <Di86;Hw%6;O7ċ6;nV Xę5;^Yxĭ5{;Ic=ʘ5N;2ie5;ph5:z)55:i={ 5: ˗Zr4K:;}k4:qd Ơa49U5Ƶ]b49>`TF49$˄K4e9˭G4D9=3%90#638N!=/38pAQ%y38}sN3e8{̱Ǖ 368]Ǵ 275.527mzw2b7 Ϳ6F27a 26$GɆ16j*8yɤ1s6N6dΥɾ1;62?^1 6H;15R1 15\l-05g0ϓC0Q5p]c05}ˎ}O04`T˲t047Мh/=4LZ/3KKQS/3ГxC/D3p̪8.2<P6-.2h!f.w2Ѭ1.22; .2P-1>Os-1xyҌΗo-W1[ζC-18,,0:%`,z0C^ӫA,.0Pz.,/b[u+[/"fD+/q+2I+.{Ԓs+G.tўt*.PTk*-!l^N*q-խV!*9-;K),4/l?),|q{Ә8z)f,Vֹ,=),&$(+3|<(]+zv`(*dH(t* ) ' *w,\b')}ؚ֩ '+)- &([Y& &(٨\ D&'( ؙ &'PI %'*"Fڍ %?'%4 U%&*8b %&0ۍٚ $>&;1Q $%3d2 @$g%4ڂ #$P3FZ #a$1> 8##.G܋ "}#F/H ""*78 N""+݅m "N"r.ݵ !!%*VF !! .ބ ]!Q! /d ! x , Aߧ @ .@ߏ H  +' T  'n  ZV   kO0 `b  * ah oYen ed  EL )UG> ,% $16g:<svBq6>I6OW|B2h+rR7~;g6Y>T[~uF-"O1![x+` F' W b=# 2a>K>1KMn"<l~Fs}`\xTbjSX6lvcH-T~Ct)*gto<pa:U. ,kA cu rKPy _d" Qa3 o9wB 3= llu_ (=( e3 ">i|}]7:AiPm %"\4*O9j\R?49x ~ J Hg/ 5AfY {gv M [-  ` NXH? py= kJ. 1+ 7 v ]3I @\1a1yoyxlw8R O%-9.jw9 4;9 "Z _ Btc FT0 Ag h \" b;D^ `1} Y`& t9 kb xQz -~o>  3ah  ovq TAI bu$ :nv F J " {/  #BF , [: "N v  T\p q #0\ [ -K WE  2 \S (  4_ j  tRl#  %7B C _o  u3v 9} $ Vja x|VN B^= WB,)  j 4  Jf7v V>Qp* FV?Y1P# Yce f{$ 7{߶\!XjޞK!wV@m!EFG!97<"-o@""wo"X".7W"Mݤ"i܍+#~va]#M#_[5'#0$5$B!;$NLj$0z۾Yu$WpCۘb$qGۆi$3on% VrL%?vc%1x,z%k}N%H_% 9߄w% yy ߊ&/ t\ߎ&9 nBߖ@&K f)٦ߞf&f _ٕߥ &q Wiن߭& PRt߲=& K*c߷U& GVߺ]& E O߽s' B:߾' B}4߾' @r15' >eB' =XL' 9PZ' 5C i' 02 u' *-z' "|'  j'!l' \'!Q'!V'!J!' !I''!H&'!G )'!E 0'!D,' M3' G 7' N&4' Z%0:' X+:;' f8C<' mIM=' rNU>' |[[>' da9z' lf;q' vj7m' ~n0\'z ؍u1W'n ؕz*J'e ئ߀%6'O {غߋ!+'@ qߓ'* gߟ& Z߮&L*&@?5&3\N&'th&yn&}*ّT&b0٧G&T<ٵ,&>F&#S %_%k.%}S<,|%v`9oz%ڇJXJ%aڸ]G%3l5$!} $zQ7$lpV}$b wV$vU۞4$UJ.۶$;C<#7Q"#+dJ# sk?#kiH#yܜ V#N="93#"uBJ r"r]:"pݭu!43! pGG !aYq6v!OrbI!Bބw(!j7ު_ =$#L H9 x.!k n 1 vߡ4C$N4m+opPk4vhf4L.p.j)^UJR2W#1")VAMWa"vi0m7'kQ2Ogl7s0q%S  UG*@bK#Mtp  0 o?Q'}^k9:Ab(L* `uF+u^1omTT!1u@{92'W HB') 4l6jXKY0_qq"=__}pmHb`@2M%$:*T+`3yD_3 ( o!0vV =:R Q)  fx-^ |d\xx }hD uJX VEM 0I8! p)v ;6 y8 o O3 O{ l!GK J2 K DZrF2ik\+J{z[I?j2|w_nnO1%(C->8C`]+zf9j9M!"l ld! &L @ ,_ o^;6 &1Gr k W\ vcG >m+b ya$ [cz U Bq / V#h &^ NB7V ]J ^ U@ " Z7 54`* m& ! _  N  ' T~ ~d<  39o | P _# B Y^ ( G f&s5 |J*^ R(2 16! >O TL WH6 M\lV $^w Vrb9 1Qb[ =f Xi' &iH nk< o`n Op 'L^u  ,u$ wWb y~A kH{p 7x{ [{= >~u o{> O|V  )t2 x{! Q Z~F j @~s  l]|  79~   }B  }rY 0 }{ R [c| s 2%s{  Ow  - .U7 >\/ L^) Zd" jk |%n| 6v l J~R~ a?t v&}j ]] $FR -+G 78 ; DR4 Lg+ U|(w! a=a jOP sb7 ~}|y t f  i G "\ ) <&S  Y5H  -H:o  MW0Q  oh%2 ~ { [  @s  &f 5 Y Q O d C :o 4 (YW ( 0p=  9 W F 5 N  W8.  be6G  k]]k  tsC d | =m t !^ l L *b ; C0[ / ZMS  |sHt ~ A\ a 9> = '0  <( )S! B[r  k ` f b 6 L 9  /   . S 2yz I"^ $d67 ,Lk 3]S 8s/ ~?N  cDsy KG$D )LM Op Q/#^ UaD8 Y[h ]pE a ke* [i?  Fm]3 ,qyW| subx tBI u/&" sK q!rzl(VYhBm8e^;`u^a]/GZFL/Y`_Y}un{UK`R/KP, )HE @[3 7mV,(Xo`]<oKJ5!*&Eh'#B,mV1Sv<1z,Ga8PEDaR=s[Yqd|>nVnqH{>v*Y*}~+ w) pA$i`H1bwa=\zKWhw`QJSpL6:IsGU%G<'EHGwLnePI~5Su!ZWWwZ@;Y-j[[O\u<[`+];4_DaW)fo<Qq\mzvabRoK4'^9R(?4=2W]*pv{YXEE*+-9FO[DH2fjrJ|n^aMv2j~ O 8z0/isy]nMvi~2+eZG`>)V]*IjZ zWxjVYX8U%0^X (Zo]2_Kjg9}mQ s#C\ {e #_~} =u3y iTr =ln3 (Nic  ` [[ 2R4 @B\. us6ud |>& Q/ . +5 g  w _:* 5"F  B[# : Pw] u c{{ mki\ {X=*z 9i *[:H B VP(  !4  X Ya #xpz  Dx81  ^\ =G  z-dI j =U* Yw8E   Z &yF ]l ez kj > u*  dM L Z /B KK vn =r  94b 3 () H d  ;V C OD| k SE6& ;Q 6 LO m ?|^ < ނ4pK! %!  {S!G!B rވޟ"!~ `9rP"! \Qq"" Snݾ"u" D\#"'='#"Q2ܖ#h##Q_Q##$$۰s$$E^&۔$%a& %a%j$3n%%^H%7&;ڢٱO&&d_لY=&&Lg&''Wٺ#l&\':ّt&'3~6''Q}כ_'.(vuش{'z(m*ч,/qR,-^/c҇%t-/R\-0/DϽ-I0R:ўϣ-.0s3Jqh.0$~I.1 X6.:11ѡ.1 `*/1)-D/1M͚ /<2{IЕo/2XI%/2!8S0&3ϥK03/Kk[03L ̜i14οe~]1Y4|ΐM14xbX,14h,15 ^205!\ͽ02Z5CŃʭu25cEyDʏ25}=c(v25.R3P6̕-+3y6nf36u37+1'3I7B˙ȱ3 47bRȈK_47|l]48XVc4.88˾:u4c8| 58}^ &58tA[58f59.Ys5'97PLʽƽ5f9U>|Ɯ59m([Ɛ+69w)|U69`6,:HɺS 6Z:-ɔA66:a.P27:.\G7:!ji7:|z7*; _75;vJ7Q;m)ȗ7|;-Y}8;0Oh8;9CGĿB8;F&&ĺp8;G Ķ8=i£;<:=R» =<%=30\<%=@W<= W`<=-vr<<| Ep<<e%ey<<K3Î<<]zNø<<5qf <<uÉ@-<;JNT0<;RlqD<;~QÅėX6(V; 6c'ʃ;5hT@3ʵ;5%(Eo;}5Nė3;M5eo(;5kmW;4Uu;4jĚWd;A4w?˿I;3 ߿@ =;3 Ąi9 #;V3j u ;2 n! ;2 URU :2 1 Ŗ͡ :H29 % !:2 <"!:1 L:N0 &&":/ GЛh"9/< Ɨ"9A/g5E"9./NLѫ"9.,eƍ#9Q.܃5&#u9 .ܕ҆K#]9-WܰVj#E9-"ƌ~#29U-uG#9-Iӏ#9,Z2 Q#8,5Ǩ $8*,Ow,$8+drHB$v8+ ۟ǯ0x$R8+mۿ՘$-8*>No$8e*'J$7*3+֮%7)/Rp3%7n)lȵ3K%7")ڑ׉u%d7(Y~ڣ@׻%P7(*u{%)7X(NQ%7 (. ؉%6'Y"#V%6}'Fɶ-&6!'k~4&6&[٘^W&U6k&?&$6%l5ڠ&5%7Kʋ&5E%/JX&5$wsKۮ'5$:؍ʋ'^5P$ظ8?'65#*}['!5#k^ܯb'4~#0˪'4*#l5C'4"^Z9|'4"aFˉ'l4F" *ح$'=4! 9m'4!r̗(3.!A.=(3 kexS(~3q bמ̿f(E3 )0(3iqk(2oyb͸(2 /DD (24fG+(2'׊́](f2X׭(<2 :)2T)1)Ϊa")1$uY:)1<ւL=)`1γA X)#1 m)0P&d q)0n^# )0 l֋i )_0|fֵY )60KYϜ )0> N )/A'9 )/>GQe )/x5xП )w/FB%֖ )X/+ )#/hI ).sѭx ).0mV ).&֏Z )V.|ѩ: ) .1q *-r/J *-/aґ *-VՄ *h-ղ@*7-Dl*-o*,ud%ӯ*,0.L*,r*v,գ]3*F,{Ӧb*,<*+_9,*+)y*l+]խԿ)<+  C)+Qy)*vAՃ)*g_lմ){*,6֜)U*#ֹ)3*1F )*3 .))i?4֫I))>H]`)) V֌)X)mdM)*)Uo~)(d<)׿o)(cd)(֐. J)S(j);)(zמ@-)'P P)'(Ld )'qu(}' ה7(Z'x׷[(4'i/؅( 'iX;٥(&JSR+(&Bl`(& 5}ׇs(c& 1׹DR(*& #u9(%v ڛ(%S Q'%* ؂'i% .ث 'C% A%' % \D'$ s^'$ 3sn'$ [ێQ'$c ؀ۨ @'t$N ؜ۼ 'N$7 '!$ &# 0 &# TI&&# vAm&s# ٣XL&G# +o"&# 8܅%"r > ݖ%"b J,9ݦ%"Q SP`ݷ%"B \dw%|"7 gڕl%X"( sںO%:" y/%" k%! U$! 1= C$! Vb*$! ۊ" [$^! ۵+2$9! 4$! 69# Q@"?# fb9D# |[Hwf# sK`E# ܋MO%#g ܨP4#L O"3 5Q" YR" /L]" N4K5" sQFw! $x ;`)P # f ! { P0}  d3k_ ~ FQ, K [D ' k6  = } { `? n di \ 9 ZK  5>) (B 5 \ lH| t yD k ] ' %*;  Z%?&  bND  ^ Y$ i /< 1w ^ h |n 3d p \l/ c Qe^ ;@M DD \9>')4rkdH.eV ?[ Mgvo<<#0\# t/?I2[tr6:x}A%GVD!L>V%Th`]z<eMK(k(kvm:w.C`|~`dUd>Lo#w2?yt :q9`mM|aYiu{.-eRZ=% Y\_R ^IF(LyCwEo azD26CETBlB!]?9[@AO~n;n|17$V8 K4,[z~i) :4%9 T]AdcN[02kI11 6c Uam;7ec?^M)2T "4J+U7z5lw `# hN#S k~\tt znDH Hr v9 zP@P y?SL~!5`H|yWy@i|M>x<"xZS/x^y^Iy/Zy . Y}tS 6| oXp{ f\y v_ >Sn H3=m h XeC QDb dW_ 0C0^ ^W $ V5 W Q] 3] I K> E  ; EU 1L  & 0 ;  WE ' lj~m 6S1 pj Y1 *W N% '_+` l59tW @  $O[o]SkmR ^-^sKcX2NA@> T0 Z}!7q Z|C aX (? 1 Q*E @>. V_Q Ri, j?T ,{R fP8$ , V,3 HSH4+V)o::w,I2 a=8Aq\#}UkQ,OE4[i45_#clRB86Pd{.!(rP\zOFiw>A#B+$9 y>e E*, g3H wmI(b  ` k.\2 2 lh h 3UK C` R -"߯& i-[ zy -%G: -E - rѷn 2.r ߩf8 r. z .!I .i!] bރ )/!N N/"ߐ /f"Il /"A(=ݬ /"e݂ 0'#ϵM A0^#߮ϐ/ ^0#%ߗ` w0#&o 0#>*E۱ 0,$a67ϻۆ 0a$:tK 1$E, 21$O߾ \1,%<\߄Οڞ 1%iYN` 1%r50 1 & v 2_&2͋ٸq /2&W_ٗ` C2&߳'cX b2&߉:O 2 'y@ 2A'lͫ8 2v'(Ak* 2'N9Hء 2't!!u 2(9 3D(̯ $3h( tD3(M4$אd3(Bb3')[x̻,3f)m[~3)'|;Kz3)J9*֢k3)xs[3!*QM3;*̿2@4V*ˋ+4*a#4*0O 24*VՌA4+ZU4$+.4]4S+Lːl4+, e\Ծ4+X z0Ԑp4+ v XW4, ['<4A, ]˵*4P, U˞4},9 GmӲ4,] Iaӗ4,s "DGy4, >CJ4, O;04, kA 4- Ai4>-< 7˱ҲI4\-c F˘҄(4u- @tL4- >J4- 2L<4-$ YG4.X {Nі{4 .w R~^4!. YS=4>. `˿1(4E. c˳ 4U. vˢ4f. vˑ4y.3 <˃ѿq4.S [{їj4.| ]pl_4. RNKH4. I'=4. '*4. "4.>Gѭ4.ls}}3/ g^3/!J<3/5%3!/;3(/ V3%/-d36/1Pu}36/GkЬi33/aЋWR3E/̺i583@/S  3E/ ̴(2P/;Ͳ2N/c$ͯ2S/&Hͬ\2T/M[ͨЩ72\/asͥЕ|2W/xͭzh2V/ͤbS2]/:ͩQ72O/Vͳ?"2S/~ͩ"r2T/εW1F/ι/1I/Cι1B/- [1:--4dH--Qh^--yҀt.-v-ҘT-X-! ӷ2,?-#< ,&-/e,-0j,,59B,,<U'*,,=m5,,ASӽk+,C.eӻO+,HS|Ӹ9+s,GvԜӻu+Y,FԳӸJ+>,H ӻ&+,@)*+>I$*+;aH:*+3{tWwt*+0}_Q*v++ՓJ0*a+(հ6 *?+#)*+")+B)*`)*"0n)* 0OQ)*Dm&)*T֑ )_*cװ"(<*t52(*XEw(){$Uip()Qh^N()pxQ0()׍փH(a)uׯ֓<'E)e֟2'+)\1֪+')NHֺ'(?j'(1~;u'( XR'( ؃8'l(آ'L(0&(R&'4!l&'UN؉&'govب&y'Mٙؽh&V'8ٺS&8'" 7&'  '&& &&4%%& U=%&(oQ%}& Dڙp%Q&~Wھّ%1&bqٮ%&> k%%AQ%%m&$=%}%ڗM,$%S%t<%*%}ڏB%%c ۫G$$D*U$$('@W$$>_^$$Kۅl$o$Y۞7r$Q$nV~$*$yzہ~$$kfܧm$#DT9`$#@gN$# ۗ<E$U# ۾f5$-# ܚ'$"L 6#$"* 0@$" VZ $" s3k$" ܎Kx#b"  ܯp#B"y hݚ##"W Sݺ#"5 A!#! "+:#! -_F #! 6܇~-#]!_ <ܽ`#-!! 9~#! rF0# DD?p# w !D^ߜ# R N܁#m $ Jܢ(#O NܿB#3 P=W# Roz#x sS#T [S9#% =Yb#P܋7 #fQܭl,#:rTi#$wE #NH7:#Bd|#^7܌1#c'8ܭS#C2v##p.Y#J& {#r5'##:!I#b .#܃>W#h ܭ#C]V#$)$&R:$Qv"$Fpy/$s:ۢ'<$Hg!J$)>O$Sx[$l#k$S7&h$,X_z$|t$U{ۏB$a$o۲{$=hZE$/R$bB&$ .M!y$hs`$}9 ۗ$R.8%/*^ %](%QD%J$-G%$GT%c0Lk%}dzq%vsژ%ZQCuڸ%5a$%OTQ%A%%&.M%m;"%ڕs&WPgٶ+&>=0&" 8K&wHZ&tnf&P3x&GQ&lh7&bفo-&liM٦}&J'g2&.<,:& C 'I2z 'hW ''{i!E'us޶ؚ;!P'ZAާسe!b'Aޔ!u'$BނI!' sj!'{k)"'9P1^"'FE z"'h=fG "'؅ "'m[ؤ )#'K p#($m\ # (, #0(M3 %$F(۱W& o$Y(y۝pP $i(]ۓׇ $q(j^ ۃפ $(Q.m׶ %(A n >%(&XC x%(yGo %(~WF %(L#/3 %(#Q +&(o@ W&(ג &)YMFַ &): &)E8'+)zk'?)s)'>)IfؼD'Q)2ؤZ'_)ؤl'])כփC(o)q׋֚wA(v)[w׉֯_(|)F[׀}()*!gw() 7k"() iV()aF8))ORcU))!Wփ~))lfH֥1))OB>ּ[))9'B|))!r4 *) D0)*)+-:*))' Y*)$>0{*) PF*)l%mu*)r<։*)kR,֢*)M' # +)($)+) !LC+)!$sc+)sA+)Lr!W+)8cl+)K!օ+)r0֖+)c."֧-+)L%R+)6 e,)%.,) m./,)K29,).B;K,)F]],)S~/s,)t\֚E|,)Whֺm,)6eq,) o]u,) XZӅ,y) :CӅ,y) -Dӎ&,h) =Ӟ=,b) /ӠT,Y) 0ӱh,G) *ӽց*,=)p &֞H,))T ָ[,)9 "m,( ",( f,( Y$98,( =RZ,( *]q,( 'v׈,(k "Ӆע,u(T 'Ӕ׵,a(B +Ӫ,P(, 1Ӻ,;( 7-,&( ; /,( L)A,' OFP,' ]5aT,' r^؅g,'h z}ةr},t'J ӟ|f,M'+ ~[,,' tJ,' i>,& e4-,& _6M,& UN_,& Xdt+&~ O ԇِ+l&f Iԝ٣+U&S L/Ծٺ+-&5 DB+ & AX+% ?w2}+% <`:^+% 9ԌZ@+^% 6Ըw%+4%w 8ښ+%V 1 ۶*$@ 2(*$) 59N*$ /Kp*$4aՇ*f$5}ծ'y*>$4@a*#$8SC*#:n'*#>D܎*#f?pܩ)x#JF1֡)B#%Ma) #N j)"Y;)<)"\sL)x"`֖b(X"i׽w(,"zl5ݒ("csQޤ(!Sxo*޷(!=S{^(!$yv@(u!ןl(L!_'!&2X' L0JG' pl:^'p حߌ,2'< gߦ& K&+LO&txx&s٥ P&D# '&-/ &< A%N#>7>,XtyBromW61vc{8:Keor/ooL*)0 !OM9~jqJDK[0t E1)Tr_XgX@DOv(c GYM-!M^;W pH1rZ-sw@YA]NI<X6$jT/y xSns2\]2-MK:fX("ikE}RJ 3N !x3-uZ9CIf0QJD\[Nkqttx?pIvsSvf<IW7#Ev g . D4 "qu >!; WU kxr $'vC J2c! d;R H>` AU*? c_ m[ * * xR  j2 ` SLV , >a d /w~ 1 Lj  pY  2J ] Z8 8 {"+ y , [ ; 2 5G  PQ  "zc o (Ku L 9n {# tL H]^' NpM < xw p)Jg Oh\ 4M iA L 8 7.* Q& h. /: gTL CtX { $h U ,| * {mh -4y m $| Z r E *j ) Ea  Y X vP x/)F ZI6= >hG2 ]( e l K <| + y`  iv `  fQ" PD0 @<@ +.S  d t  % j @ W W A !y4 $ v#G  \(T A-h #.(w 27 x3F i3U# ^5`0 U5k@ H7{V  ;7d s 4:v b }#< P f= @ R B * 5D  G   L/ M!? O+5K Q7CU RCVa ROfl RWpq Ud~ u{Tp itVz YjY oDZY a1Q] PD` <4b  )'g i1  lI l V ne  o$w m, zp5( joA5 [oJ< PrUE ?rcR +uq] wg x{u d Ty,| EoBy 3_Ty (Y`v Ppv C~v }>t s6u c,s V#r L#o 93k (@h P` d\ tV 'P t:)M dH/H ZS6F Ob=D DlDA <tH? 3O; 'wV: oX5 c`. Rf) Fh 7$o %7t Hx Y}  j |v z% xv3 mq: ep$C Xk+P Lh/X Bh8c 3cAr !bL {aX m`f Z_u& L^7x ?^Mh -[`_ $[mU [~J z WC oX: bW0 QU% CV# 5U/ W? W K[Y_45m`FJyeYaphn|zbj}|jYmmWLo^CAqS69sG&0v4#z'}y 6sK j9j`V'Vmn2LT>Bj8I8R"Q1BX'+af /k Gt+Vx Ai~}^ov*yzXp8[<gK4_^Xn R*uJ9CgGNSYDjkG>~;t{=._k;BS6 +A5.2 -!)2;%F^,`QftiFliUP F= (5%G"_r _5J%F .:d Ova&YyQy2{$bu(NQ/5(54! J7a; B|?{VBl)pD~P?J`8NMI'`O$w V~!Zj4?_Rbdg6k!dop ?Pu.z,|B7 VT$~dj2|wM}excjJxvZ.~uA`q )Eo++kOf na*$P^A?%[\aWo sW%tiTG_UR`PFSw>{/Q(YPBO'LI9E.*MBFTp;]xyi7pXN4o3.-\,N);%-*$A(#V:  vR bmtM|+1d;R J4]m5zO ~m"l6aqFU^ZFCk =6t"2$&% m*c +S"2;88- J<^Fx M~& So.+ [W9A bE?N f:FY i(Nk pTr rZ} uza |nf ~ej Vxp) Gqs6 :ju> -_xN Uy[  Lzb D{p 8|y 2} |-}, t"}5 m~< h}G a|Q Z {Y Xxa Qsp Mox Lh 'Gv_ 8EjX DCcP OBVG `@L@ h?E; r?<2 =4}+ =.v' >)j =_ ?V AK D : I. N! -U  =[ Kb ]j (ln$ 2ut& @yu. L~l1 Ubz2 _Sr: oGl: x:e= s'YB cOB YBD E1E #4#G 5&F KG dJ  sG sI  'aK & 0UH + 9EJ ; I0H H T"G N aD _ uA m p? z +~Z8 Kl?4 h[*. Nr( =S$ .= '+ 4 F  S  f  6{}  Fk $ ] P 3 u4 @ \ M &7 ^ 1 o 6= y SH =vTk| Z]dg meXN pIf3 wBU! 9? z ,q " g 3Z U L Bv|>  _Y.  g- & @ /  $ < . L V! T 0p, ^ J;b i mIF r Tw3 x aZ px= }q'| 2k j [\V +}VrD FMH+ s?w 7Y  .7 O%$  t6 Fc 4Y= Oi( bv xwm #]^ <LM ](3 f  D $ % Q &, n .>0 WX^6 s>j< (Or< +\B  IF  ;F % &K B :M [ XO j p }R %cOU =K/X V,X xx^ F^` ) l~B` G O"f l -f wg Yk &*Aj <85l WNl fsn  y\~m  1`n <  Cp X *m s 1~o fUp *9Zm G/o jn  sm # +Zl @ S@k U t.k d hg | x>h c&f "Qa B5b :`] ^{sY ZKV 2++R G N bI A)sG \@bC {XLp> v8R< ) $T| 5gz G~ns ggZ v(`H 4Xf- =PT DJF LG4 R<$ X9 (^7 :f,  Hm, Ut' )j { ;}{q Dhc [LU k;H z~'; l0  ]' S E %5 /1 ;  MX  e  {~ +q;Z+JG8Y7@g#LuY~\vi osktc(|[3yT9sJG o=S i0^hn"f }-a} ;eq Dad/N_Y7TcUC\`LLdaESgbD\rd<gyg6qh2v}p*yhs!fV{TA~9)vnb Z-P /=I"=N@)Na7-\l2/e{|&3uk8tZ<cEAH'K 0 S\(,k$N?sBmN~aa|[qtrB|oa+|iJmd7e b+W _I=X<RU-lP@CYa=51g7 3HMtf s4Cu X#c qO ` = 1K - G6 # l - c 0 > 8 51 G hM Q CgX ` Z bs  B >t " tAfk  S7a  )J:  AC  +_5  M5r1  eZ* i UY M 71 8  )  Qmy @S- 4 n{ Q (YV d hu9/ w z( ? g 'q'_s UJL1 h@Z }9>t D*Q ]6 B/ wa  R' ( KC < Xw|m ` ]q< u aXp w65 \ X$ Cyu OMP  #^7  # / 7  J zO l [ <.O p i{} `GYwW ?'-(   .2<+ ZQ Z \fbV{ s.  Y a k@na 2  M  5 Im|  G/V> 7Q @} k8 @JQql;r37fe4dYRQj*& oQHtQ4 GW eg A[ l`g Cv^| <( U r6o !Wg= X|j 3#Gd _ !Z1}EEkd-E;TuO*  'WsV55:\jD}C?i.Sq8P`WF=OnT#\._ysJ5=:bZycA5 Kߊ>l YK# Y[!t$md!B%".k݅wh"qEM#C@w#9$wE.7%{Zڦm%8h&@@o^&Z'6Xjا'fU( j+(W)vGU ))? K1֔) (2h* !H:աޟP+!yr+&"X/ԤC,,"g,-w#?}-#Fa.ۧ%.$u|l.7%З>_Y/%u7"/&XйJ0&! qI 0&9غ,12'WΛؓr1'i%n2(@ͽQ[2f(\W,$2)̯o3)o5H4)?)˸է4*yjg |5G+q7{C 6+6ߧ 6h,OY!\7,0h!7V-MazҢ!,8-s{"8?. ǘ`7"9.]Gi"s9.t?#" :f/6n"[:/ s+#:0) ěϾb#e;0Y sQϔ#;1x 5ìv#v<1 > AI$)=A2 vr$=2 G$E>L3( hs̿8%>3V ڬ˗}%?`4y kUyz%?4 3"]%h@(5 S7+&@5 `!U&A5 ٯ &A96 X3&B6+ ˽D&_B6? oȯ('Ba7h bȂ'nC7 _Tf'CH8 0}@'^D8 :^($Ek9 חV(E9' D2(FL:J և_ş1)F:v |p)#G2; z֭h)G; J60E)H < ˷)*_HD< ~-*H< ,8q*I< lէ*IN=( MZ*I=B :­+RJ >c bO+J> Xq+&K> VԎR+K_? U' ,RL? z ^,L/@,MM@'=u,MADþ-NcATһs>-oNAqR-NBh̽s-&ONBTɰa-fOBV@H.OB4%.P-Cʯ"S.mPlCNS.PCV.;Q$D$є.QD3<7/"REWТں|/RLEkp>/REB$l/^S Fc˹V0SYF!F30SFU1k0VTF|w0T!GfVѸ0T9GF0UG ϸJ0\UGΎ+1UG%K31UAH=n14VHR~Σc1}VH^gb1VIx)ȶ{19WaI͝yl2}WIq?Y>2WIDt2*X8Jͺ32MXcJf͟'2XJEOO2XJ'2XJ 2YKŦδ3TYOK̐43YhKe:3YK+CQc3YK>3,ZKFxť3CZ!LSY̝˳3ZYLb+>3ZLpX3ZLy84A[L˟q74m[!M˅߲iM4[+M]cW4[^M7Ty4[yMQ4[MeI4\MfߣI>4?\MR˲):4P\MR˴34\\M6˂-4\N&Zױ&4\,NVױ#4\7N"5\kN 5]qN좊*5#]N΢c<5=]NʲS S5^]NʜE N5d]Nʛ6b5u]Nu'n5]Nrf5]Nx!v5]NRz5]O^}5]NV5]O{A5] OoG5]Np? 5]Oj> 5]OY05]Oc85]NU85]NN&5]NY@ !5]NO5&5]NR3&5]NUL"+5]NXE 05]N[S$15]N[]?;5]NhlCB5]N`zYL5]NhʄlZ5i]Ntʨg5Q]iNjʬx5N]ZNwŢ5$]9Ns{ڱ5]Nbz䱣5 ]NY{5\MNt5\MA&"n5\M;@@j5\M/QUX5\M#qmZ5\M}N5u\kM ʢ<5F\EMȣҲ?54\M٣',5 \L!>"5[L5Y]5[L[|u 5[gLʑ5`[-Lb˱䳬49[ LJܤ 4[K884ZK$+#Y4ZK-G4ZmK;^4ZLKP˔ϴ4YZKS˰14BZJi٥C4ZJw]`4YJ:q4YXJux˵a4hYJS˲M4/YI)[;4XI4 .4X8Il14nXH˴/U 43XHܧfo3 XH3WGHg#Oڷ3WHM0m3vWG;I̪539WGUۨx3WsG j 3V=G {K(|3VF ̆/Qb3SVF ЩzvT3V_Fv ̹93U FH i'3iUE ̽3&UOE ׺/2TD Z8b2~TD %͛2KT[Dd >ثû2TDD O2SC `SS2SC t͎2TSSC ŬӼ2p2S C []2RB G\{O2RBt ̈́12LR)BA $2QA "` 2QvA }>1NQ@ =1P@` ,31P5@- HΓ1=P? Xu11Ob? m6]1O? }|{1fO>b ξge1Os>2 \1N1> 6H1N=΂C231UN=ʱ`,1NF=…1MЏ1/5G4QO}/F}4b_T˼/zF4y=/ F3Rz/E)3[~c/zE2dвfͿ[/$Ef2R/D 24>/D1ЀbY7/[Df1ɻΔ'/D1V/C0!^| /qCF0ƼN.C/ `Ѝ.Be/U$|.BB.;z6.AK.FYx.xA-ebf.AN-o1.@,||SPx.[@,ͿӇk.@,U`.?+gmQ.z?l+Ѩ*F.6?+%k3.>*uGգ+.>V*Fщ.L>) O.=k)Oi-=)~ң3פ-"=(2/-<';ҍVS-C_ ;,{4ӮEE 2,'4ˤz &,3:q; ,3=ӏT ,B3l* +2A0c +2|/ԣͦ +"2,K3 +1\xΞ9 +]1,vw |+0_@ϒ o+0C!Ԇ _+Y04 I+ 0!Й_ C+/@W 1+/mԔ# $+F/8Ѓ +.T%+. e8*u.պфt*.Dl0*-;BcE*l-d$*,z99e{*,ՌәZ*A,1OD*+ Kt 1*+iՍԺ/*R+ ` *+b)*dQ՝)*FD֌)M*4;)*@y#))dXVH)z)tֳ2)$)hցi)(UFWE)v( U*)(wص>)' pl(_'y#z('YK?(&+RZ(& jןZ (;& ٝ/|( &N Bg(% RjM(% ו]>(T% lڔ!(%G M($ f;'w$ *ذۂ '($R L 3'# vkAZx'i# ؼܐzW'#L x0'" Tk;'u" 3اr&@"r $ݭ&!- 6( &!FV!&!bيQ+&U!|ޔGx&!PU[& "%7q%fۼ1 $+"^$F0"$Ndl-$&ۙ4p$O?O$QI+$@xQ$t|U#\69c#`g#WSjO#wܷv#!Gv"5N {"jݡI~">uV"x}1"O{Q""z ޅ!hy'ޯ !8~R5!{{![w!~Nw}L!tޓ{!I@w 3l pc.eo o߷`[1 'Rb"DF4a<W5c)'2-: RL-zcg_3rg ^4>'R:"WLY f29_Sym`DdF{b6MOG!<| j$,FP }i8+:KS#` 5[PNsa[]8w6zZ`[ N>6?F#\uwtMFaa L:7N"D{.u n7vG/G.SW u,Fcx zvJXO  s  eZH VH?e Kf> D h ;J H 4q*1| 1NC ( m !! K A> l~Y :W r)n ` t( '0 Q) Ej"by )>^S ++* 0 03B ],DF ] }J ^lQJ qU ,0X 8Qq] {b^ [ W_e (`8 3_ ]._ !\_ C I_  nj_ DN`I b K J}?|`z>OvTSs|mn61hx}agb"6]LX^)fTNDVSwoOGL6+L6bIaBG<mEaGAKL<V8) 2a$>*s}Uln$'%7$LE|@ign,|_\H> C e%>1L_. `ch7<-1# @b+04]H`@En0%KOmSS)vxXV|\+[d)7%l NL qm; }~W{m \}r @Hd> Q SEL 6A ^&iM -t tx  W@ : > R , t rT L} #q-% .BD  Aa N MwC  ^yf tTN! ;q $  a? d L s z_A  Q865  %N ^ !o9 Jl sn}  _d[ F+( 00ANPV sVO''q3VJ.6A]YX6j|~qj"~yABn%&`N;=#CSW26J%`Ud>1w y %T >\=g\" T$/ *6 ?:2 J+jG P>U sWZg E_ ruf Zgk 6GpF )vi w KzF* }oF |,f g~_ ~R 4h}<*oRa ZDuB{4&U# D,   +<O77 wdO} elm C8k # N 4-&_AyzQ"Xi<9K{$\o vP 'Gm :3Rf/f <!)<RS6r,{ee4OB$\xi ID%1k'wiZ%PB>*n(X33 83S$!1Cc<b986|s;U GAO`$?BfBBRG>I|oDlyP>ELL+E-  J g BL/ \_E? x3rIj MF k0DA I@ V = @& : lw 0NH : 0~ lT ( G  E U tz  fU 6 -& c  s  < 1] | ]An  *Ln  " 8  ' 0L4 OEDL {Lk] \K, Wh- -tA  X |! j pF 8߫< f^ iߍ _p cO "h&H LN< m;{+ Kߗ@! `!*+!B\!Dޟiq!{*p5!$0%l>$ZR$G`$,<9_$=Z۱#p$hۂhx$nI~$ }N$$(u$"6O#9 V8#5yt#06S#-I9",W! "#i5"%y H" ]u"9qe"TWk" iNT"=d/"/H"&&!*5!RI !9xYs![rL!ށp+!yސY !f"ߣ; W+"߯  J3;߾  :7S +?yx F5_ HO5 Oq#~ R:`T7\=VmxmWGKX%VFXg2 W}S$tV}?VmV[BQUo+/S`QIN2(J/`CSQ=p?4qZs(H4?g&"?<%cUQbqg;!nD )X"6:0D>%YlJ z[ HA&i B z {gXR db @NRB ?' (kN } v Mq % 9B V0 k].+ e>l MLW "Z`: F z {D ]e JE8! '\k% qylw 'n!S $D8< t(M' ohh -z| Q|  f&M J=< d6Pk -uh %An ?4U ]_5 8, hr? iE D1  EJ  XY. \ oQ #E }g{  j  l`LU  MF Td 33    [\,  R;, &  dCMh w =[E # v| 5^+h hEWz I lB6 !2 iO% NF K([  - P& 5KS .KwT xdE C7o $VU W'< u+Z!"mwx{9>UZ3!!).IC9QV|9"ofR,|CwjT`RJI7$*a+ VxQ&i3scn}FE>H)Wl**zTV'CmXIlZJn2N7C~]4 ;`Nr29x/vO;MjI9xY g$a0Tz6PFO]c: 'MeINz h03 _,N*(CO5`\ox=}EReJ&-Me=J"-REZX2p Y# dX eN' 2_3< S0 ff@  w = p(A _ V7 v @yvb %d|U ,FB , L8 (iZ 5  SaI 5 '1X E h W PL u tw _cor G(-U &>> . +m a t  2F/  !?  S4 ) dZ E9 pu Z@ y S uMb a d)G i V# { =|G # $rr K |d x ;iT!  6F9  ;SC  .q ; p U rP u _'v  IX  3`? mAv? ^U? [Eq? :-> t&!: V9 8;4 d8- [) T>o" .Z k mU6 XEI @9n !# r Z 7, %@  )Z  4). s@G: XNgK -_[ Ymi @z(s| Qn ugd t&V qhDI W`R? Fad1 /W}$ xR fO  RH0 /BR ;%l 9= R,T; 3(fN '~rv }'e l?U XYA By0 }/" m# L 0     :> P7N iZh i ekP CT4 8   !/ % R (7o !+H &r3a =N4z P~9: WfC pHD -uM: _S^ FX$ `-`@ Cf_ o qr \{1 ?U 8{%g =r Hgp [bT- cW=D pO"d Ev ;rg- 1RZZ $*? u1 S%# * B X r ~0 h'C T1X )7lUv\^7c}UuXI_P >JG%4->=)7N 4h& x")b FE ^- t, a5FB/1LH'Wc0au 8i:lu2FY{;IJKIt6aVn#lUe|ZYz dSggIW,n@HBt8/U~/!d(~wr rpep" Ue-Jh5>e A0_ M$`V]^ Z"nU*vU/}zR6nJ9(kNA2]GG>TCIGNGRPEAV[=A[d6Adk3Ahv(@o~$?tw"Dzo>jA{fExa?y^Dr[DqX BpT EiQEhLGcHF_DK[AMX?KV=SR>SU@ TTD\SK\\S`[Z$d^b/gdj3jcn9kesAsfyDqh|JvfP}|hW|um`oxjhewsxUp{Fuk}|4_cnL]f9X\$MQK-GE:C;L;:\%21g03+wC(~%Uld]} @u "^ B*5=SLu0-v_T1Trl==wE"nMmTWiB__':kL WqDl}6{?"Ttc 3h gX5P3GBHqy 7[0G ,|W| qs~ \Z 8M@ NC' k1~ \ )"@ K1 {9s ,4GM =dS d`= 1mq  _xT J/W t|w6 l P \ T( I'B ;7;l} 2Ug^ %d`9 xr% Q - A; i z kc   "#, + +P4 #<y _Evh P]>g _E5 g! A tg *| ^Bo7 hdG 5WsD vK Y`B R.3 C+ h x!J 1r Pq CFdu3p8 06<Ec*h4ZU~:s3/GHD-L}[Tb%] E`"_qhSmLm'$ qY+Ox2By}grwz?bv^Dm]VlW5f ^;awPHr\uOLo[ /^<]Ed_{Ra _ 1aaNA^U^2 aV![p C^_sJ~a,X_\ 0c gS Sߑlw =gNu tp~!;}ޮE4!rwdt!no ! -c=!=Hdާ!{qYgz4"R7bP"SEo" Hq"NCBݚ"x >*w"03*7#]'b#0ܲr#x=W@# '$]$Z"|-$P=7<$k@$eP3%NڑFYa%m0_t%sEj%8u%%7/~٩1&~Um\j&wY{,&PH^&> 4ٝ3)' W^' '!D'N!9 ؙ޻!'y!Ozަ/+(!f<ދ?f(! tM(!qfT($"D׼Le(`"ב5w("n'|)"y7 V)"Z)#LZ)J#&2)֛*#? OܶI*#Tܣp*#fnے5*7$z%թ|Q*l$Ռpd+$eevC+${0To+$cN+$[dD+%=57+C%$ԭ1,a%Ӑ)*,%cs,%v17,%TY,&-H&iңL-h& G҆-& 'YM-& !'-& &.' MH.)' lw.G' ѯx.Z' wcћ.z' P%p.' =\.' F=/' m/' </( L`/A( Ч0f( UϋE0( :hr0( kC0( 4"'0(!F0( p21)B1,)rd18)Qγ1^)0^Κ 1f)AΔ(1{)r02)[8H02)FA`U2)(L2)NR X2*1*a2* m31*̼y7L3N*̯ՁR\3Q*y̦Սv3l*ly]̇ՙ3~*c[K̅բ3~*XE/xծ3*K" bջ4*?] "4*3O%:4*$@Yp4*~-q4*m$4*K64*"(4+: %5 +߿N@ W5(+ߟ^d l5)+߆l} 52+ug 5A+yJJԏ 5@+k54ʼԜ 5G+[ %ʶԯ 5L+Gɰ!6U+8ɪ(!6T+(ɭS!<6Y+ޮɞs!\6f+ޣɝ !f6^+^ކɟ"!6k+5\Ɏ:!6s+JɒN!6m+.Ɏd"6x+Ʌ{I"6y+{ȈԌ`"7z+kȆԟt"7z+VuȇԶ"=7z+CXݺȃ"F7{+4NݽȊ"K7q++ݡȎ"n7x+ ݍȈ"o7r+ݏȗ #~7h+sȔ()#7o+eȕ;F#7c+YȢOZ#7_+GȠix#7^+s6ȧԀ#7V+w^%ȫԓ#7R+bK!ȱԫ#7J+H$ȶ#8K+7ǹ#7@+& $89+$ 8;+-$8)+A$+8'+/U$08"+?e$48+Qo$:8+g$@8+lۺx$F8*h۾Պ$?8*jPۻբ$O8*V<ۮ#ճ$M8*E9ۻ3$F8*1"ۯA$X8*۩C$O8* ۴V$Q8*ک\ %X8*ڬd%R8*ڭu$%S8*گ|5#%N8}*ڱNjD2%R8o*ڲǖP.%F8c*Ǧ`:%>8P*ھǶnA%@8F*z;%(81*ՉB%#8*o՗A%8*cբ@%8)W֯@%7)I ּ@%7)?1C%7)5 @<%7)(0OC%7)4_@%7)Em8%7) Wȃ=%7v)\Ȏ2%7i)yȥ ,%|7N)ڈȽ$%q7>)ڝ%R7')ھ" %87 )($7(-$6( 22$6(81F7$6(BL_;$6(P]p@$6(b~ɆE$w6n(iۍɚI$l6b(yۣɧM$L6L(Qt$664(Tb$6'(WS$5 (X:$5'1W!$5'V/V $5' zIS#k5'/ܭfM#?5'JʁI#5u'oʘE#4X'+˶?d#4@'D&!#I% !s& l% [6%  $>% 8 I<߯$ e .Tߍ@$ ~k`T$ Rۊ#y#j -ܟ'#U  {ܺX#7 M fߛh#$ z t(" SU" D ,F"  ^" /%! C?!M KSf!e d](! {\ x ,Mߒ1 f tߥ cH L /G AD w tF I H  M9   t5O s F -F "Y i ]%j } YyqM | D Ei !+ [ V AZ# /< =bI A R $E_>t3RT}hjoRx0XGj.8^ [!LDN8T-3P<{YmVJ<0#PgGr.]52NpICfq|KWjd,4P DD6nEv$7|3d_9vXV~\$/94J/J8&_OXdn~k8rgFh,PUCIzs=3R.&[!"HQc(qL~/W`n ?}-3=0G3nTz<litCYw0st3fhA`G\s1|kP)aKF 0 7/ !"0;=ml~ YQUq Z D-,@ vZ9)p D7` PC X *$d :F h FY$s XE~k jcR xy|1t kiI fN( Y9? Nhy DDF 9 h! 0"Z %A+ < OE # _c  q n  |[  /s=  M\  aR  yGt + )S R (6 q /w   ;? $ +A 9 LL R% qU~ gH Xg u` dP } hwu5  mg`%  wgO  {T4 Fx $C r ?-h0 ^cK { wXq uON L+I1 )<C 6X &1m/ <&pD P#_ itt xr~ jvm YXW TJE H2/ 6  " L<w_$w-{.Tu=1,S]8 =d<*rB2Fx=IqPQco,QUetOwdr4|~1N|pa_{{Jz}/:ky@0Yr^=u|x,n^k 3i4dF ;bf8b]|_l`]BF?W TV0N!Q0O<zQuNUc]F[x@wG{t[CiE@P%=M&: n89611my3]0S/dm~()C>,&3$ )W߻#, ^wߒ~8 y}fO IBu $ m   H `; ߊ _V! RK!!_oބ!&JG!\"o"?ݦK?"} e!\" Kq"!"/\"/U<ݿ"Vq"ݎy"H@(#M#&w#[<%bs#x)' o#+<$@.ێX$/Hw$?0x#$d6M$F3%ۨX$j7 ۂ?%+e& 8ri+&: 5Jٵ+&Z 8[ ي+)' 8 ԨH+t' 2m1,' 8f,(B 3pӹט,u( 0)bg,( 4/-) .Ҿn-r), .{m־-)U .aD֖-) -#c-8* -ѯ7.\* ,я;.* 0Al.*5+|ո.+T-WԚ.O+10ч_.++:,//+/P/,,.Юӿ/,`*=Eӂ/,,P0-*ϽH0y-*Yy0-8'v-Ҹ0-V*Lђ09.*Ϣ[0p.'}@1..J61.+ o1/(*~1D/I0mΤС1x/z-2]n1/.A 20/;2=0.͏20?-o@Ϫ20i+Eχ21/ͿN3h1)̄ 331+WN31/v31=*pͷ3-2U/Z͝3O2t0E̝w32/[S32387 423:434]4N3(1˨|4l3A3ps̪43q2D)w43-[44285P4-ʗ G54*g]54/In545+x˽54Q,Zʤ55e-Vʑ5+5y.1ʷv5b5.ʑ[5q5- ʅO651U065+5965+ K65-g66#$6F63&oɭ6]6H#bɘɭ6~6]8kə66p3YɊ66|"L66$j66 a76Y77E77A+778-7+7+G7;7ȼ'L7H7ȷ N7J7 ȫj7d7ȕh7j7țr7j7Ȉ77}|7~7yȃ 77ss77nr 77ip77qo 77cn77gl 77px 77cr77o|7x7qȍ"7u7pȋ*"7n7yȞ5'7Y7{ȨD(7V7ȰJ2}7I7ȽV3|7@7^1m747g;r7*7p7i7$7x9X7 7Ȇ>\77uȏ=J76kɞ@@76W*ɳC676F?J$761aM76{T6s6ɟ_6Q6ɻ/_6560Jj667dq65Hvo65`4ʏy65deHʦ{65T{aʴ}z65?Ʉn6q5#}ɛX6U5wɾG605v-6 5o A64c7c54cdˋ5{4[T8ʣ˿5D4-HM54Et|537?Ah53/caI53*ʒ̂25W3k#ʼ̪513G4 3, 42 '4 42 De.42YˋN4[2}m42gήS41<6&41 ˃$3V1V/31? χ930\eQE30 ̐Pa3T0 XE3 0K[ 3/5zh2/t `Кj2/U+͍l2Q/&Sz2/kz2.7DU2.w̓у02^.anѷ2..e 1-WDc?1r-HyηҀq1&-b<ӺF1,#4S1, !Ϟ=0E, #g0 , Rԟ0+C t[~0+ χT0X+ ,-0 + b 0* IՌ/*W 8Г/C* l+|/) 2N8P/) Љ֖B/A)< [.( :I2g.( pўzrq.,(Z B.' qG.' oь:-L' ^+~-'g UR٭-&> PzUt-& EңC-8&:T-%0*چ,%V),Ӂ,L%`,%(]V,$yӔۺ,6$.+#3LU7+#lԯܬQ{+#, `M+"P,k#+"ԙiy*?"qݭ*!=tB*!ne^ *y!aղSV*0!Pށ5* eN1߽* 7֐)G #?N)s3q)6֝?)5D!) H6(L:רK(,h#_(4Shd(~y6(ZG|(& u'n ;6'VC؁p'f{Qeض'%CB]'(W,4'ؠk ';p &>W%&~g٤Z<&4NX&2Sm0&ُ'z&W^%~l&%HZ=G%!W`}%b@:q%2kQ%~&31%Bڀ %Y)$' b&$uPbD$ov۴ e}$*DsX$I2$CYې$WN# <@#!*:v#wDf#N [ܙ#Hv }#3&g#9e5K#u܁X0#e5ܶm#.!"e@v"nB$|"g51Aݹ"& V3 "h.h "~Y .|"Uݍ Fl"[ݸ \["8 iN" L ;"n5| 1"w_Y  "HM݌ "Z#ݾ "/? ! & !^T H !$(ށ d !i1ް+ !7h8j ! JB !b7H# !.QK !Se !!\ހ' !!lcަY ;!!Kbv F!!2yo _!!Jo !! qo" !! WyB"!! 2thX!! uދ"!g cvީ"!H ;u@"!& s b"! q#l"! vK"! am(i"! Xo7"! sEtM"! Q%ha"! 5mq"! jޅ #!q `ޙ*#!] _ޫ6C#!L X޾T[#!8 O#!% miB#! VZ>#! /23#! $#! ($! ()#$! /=.$! 9MA$! BeX$" J|o$" ~S~$" myY$" MTa$/" =@f$9" &+l$L" ڥp%d" ژs%i" ڍx-C%" oxC[%" j{Sn%" [~`%" oE|v%" X>~%" ~L1~%" k5 |%" [|%" Uz%# Cu&!# 7o)&0# ,jB&A# ٪`e&h# َTv&u# ~قP&# c`A&# JJ6&# 7:2&# *"$&# $&# $& $ ,'!$ ..';$ 01'B$ ر1L'd$* ؊2\'$> |ۻ2j'$K a۩,'$g y9ۊ,'$ c%y''$ Xb ' % FD'&% /5'=% .ػ"'N% ؠ 'r% ؃ '% |(%" [(%? @ڸ(%P 8ڪ#(%d ډ-(% #k:(& 1W=()& C0F(I& SקV(h& d׌Q(~&ux`(&?Pٲrk(&[>ٛgh(&p/لWv(& cI{(&P@('~=/($'{!(7's (G'v׮(_'% uז(v'D n~ذ('_8{n؏('SxUg('qy7D('0&j}('L~('9x(()%x((@׬ s(3(eבw(;(t ׾׃p(J(׬ck([(5לIn(m(I׎5^(u(`ׇZ((mpQ((dT<((9^׶+1((bB׈(( ?i((02L'(X'(s '($ c'(#2F')=5ֻ0')PG֣')mQք'&)]j'*)/qT'*)W1q'=)pX'9)E='=)ؽ'F)N ؼ֢ &D)h5ٺ֊ &H)c7ٷ_ &J)Oٳ?Z &R)f٭(; &Q)ٱ  v&T)٤ c&`)٣ M&W)39٨ 7&_)Qdٜ֞ &c)n٣։m &Z)} ڤsA %])3ڥI %V) Sگ4 %O)8ڶ d%D)yg 4%9)#5 %1)?ֱ $)a!A֏ $)Tis $)x_s f$)CA >$ )) "$( $( #(G8 #(kU# #(25׽H [#(RIצ -#(c[ב"(|A0}u"u(uݔYVk"`(ݰC0">(/!%(C3!(r`z!'KW!'&(!'-9 !'2J 'HMHhخ 'V|qyئuw {'aߗؗF= V'r߽؆5'*u'Mkjm&7XB &fD&]?{X&^+|#(&E&1%q0 k%8S<%Yk % ^W%X,9%V% $&\*=$1rqLhs$01$;(8۾#Dq/ܾpE#Ciܸ.q#MQܯ7#Q;ܮD#Td ݪ"X+Bݧ@"[mfݢ|"^ݣ?V"\.ݢ""bd6ݜ!aq$ޣWg!]cޟw!c-ޞ;!]LޥJ \:ߤA [hߨgS V(߫  Tn/!gOl&8yOCI"1D`REIb; |2`8gs"4"3*J1$eHhR   $!bqI& 21@<(Bk.gp<7!gE p#lNv =I[0 u&dh ^oq2~ w| 5 2} jb~XN ^I +JP d 42 M$z Sgx  ;! K 0H /q 8-r g?/kK M ' [C bfqjsv ~v#1z Ca }WAuL" "5Z Q o 58 ed1 T*vn KDin ,_+ !rqewN hRXr#[|BrJV,'&A$}E5_1 [XMOt| l P:m ^W0 B,[ wW  $`%q UqCc Xo* VpQ L" g E NQ3=>}!l8}FY]@c!reWN4m; ^1H * / G Q |?8 *^ %+r3 dBzn aGH! x/~ B ^ J0>? $g, D G1hhPeh+rb2#gt_wj~NK.1*C#|bVu!645RH%Rzos7\Qh<.Gv1f' 4Bb_";~9uIN[Yi9J{+`|p/rc.L,8"X6XC[M r [<]x fX:-{ o(? *h z(mU TLA 1a* F 3 X) cO v9|h Z&pD 8c^ OB* =a5 b t W 6j  \Z ! /E :F 4 Ps ~& `8 Z kb 2  wr  uW  `3 = P U *L o 86w = D&O Z M8 z [n  fI . p0 +Q { >u {y Q dq T. Rl fD 3f rU &a rb [ u xV   ttS  jgL - ^OJ @ PCF R H1@ j :@  'r ;  $c9  P8  ;6 " 95 ( (4 3 5 6 4 9 4 C 6 D 3 H 6 &P 8 3R 7 1W < ?\ > J-a @ J,c D W8e H [?i J ^:e K aAe R d?d S f>_ T b<] [ j;Y [ i:U _ e3P g p7K j l4H p p-? x x3; w,4 ~ {)+ y }(% n ! j ~ f } \  Z w U y K y H! q A/ u 8"; s .0H s &9W s Af u Lt x U su b ze h wY v qI , w{9 1 oo. : m^ E nW O iG V h; d g/ .r j! ?z g ~T h ih o _ y i~ P og =" rX 4/ kG )? p3 F n% V m b l n l | l )" gq ?7 oc P@ nZ cO kH {e v@| q s3k v#U v }B f {2 Z }! P ~ >  5 ~ -"  |-)  ~57 ~ EJ vK\ zVj vd}-x mh>i mtLX h|XG dkx8 ]uq+ ^~h x[a lS\ hYPXQNNLFFQ'<9H6<,E@2!AM.;Z+4f%-q"-|}%t)l7b?[F SO IX C`;f3t,z %wl!i" \2U1O6G@ @@; E8I .P+Q )V a]iqo {$*'z0v3o5p9l=cBiB_ NYR]TSd PfMnH{ C}#>)@w24o6 4i; 6gC *YJ.UP+SZ$Ae&?l$#6{,!&}0!u9i? ZDRKH O<U 2Y+"`5g6l ?wN }S p]' dh< XuH K{X @i o4x i+ ew  Rd Q[ HP := 74 /& '& 6 F) X,+ j1< z=~L >jb E^n IQz M{A* Qk8, Rd+4 \R: [DC a9E m( K n U '| }Q 9 uZ Q h`% c ]\/ w~ QfD l GhT ^ Bk\ N 5om @ 3sy 4 +w x' t k } _ { V v H } &9 u 8#2 r Q9 p jN i ^ u e w] _ I u^ 8 aX & SS+  GU5  6J;  (HE  CO ' 7S : 2` S &j i4 n Qp  | r~R  x9 e o F 'e - -\  =W  2 EO  F!MG  U1ZE  jJc<  bp5x  s{3d }~ *J ]k %0 D] ! !G  .   3:  M[  l r )v \ 8_ ? HI % U9  b&  v  -u J\ &lG A`. X9 yw \ /;@ \W" r r Tp 0U +F :0 L f3 wP  q(fx GKN g3' ^ +5 W 6` U,#2 oG( d-t (4Zo I7KW e>9: E!` JA S 7[ /-`e GWpd d|O,} kq Rf 2E3X hqO a]D 678 1 *& : QM@ cn_ tQc e3 #O  -34 nQIq Z=b m- 0w HNi YrCxX mpFxH x&Y; k7, V BD g/5 bM 'O 9 ;R >Kk^ X(ct q $\ 9f G f&U 7 OCW # -' i ! J   <  h$)  L;Z  5R ] Nf - d1{ x x4nd ] uQ( pH : 72 3  r$x  JQ y m /$ I =/ ( L@A cv Sx tCaT osn r Q; m7: Zqm A_# (L *2 Jxi cD @ tj0~ DjL 3QZ- R_K r5e @"> wc fG MH ;-|j%JG n SBk1M[FH2"oY!}kIRxvzkPW1KDDr{5QIkY rVCW65MVOePL t,hc=9=PNg}:e U+p,8Wucc7T>e(;y?!?NS iN(ex pI>]aJE(mX1^[0"Fc+*A _ 9&Ug54)BYBUdOg<vtaIUj"Z=I Mxf64N4)K)c-;tNWbu{ Lnk-=A!,C1<:cGeUT&KeeSrDGTzZl 6c4; YNr tNo 3LG Ow(? zWp3( :K,O ('#} ] * / XT 8 O gT C 7& Q w2w :eT1 A7'T Kp  Q 0 -Ws i X`Nz ~g:Ys n)M w 7 ~= l) rue j #ul  SHd > 3] | ]T : "O, \ JI  hDp X E@ t s|0<  SE7  43 + / (P * h zh%D  D@"c   & L nE )w r >w A C( ! _I   l^8 O@K 8t w5 _[ >7 Qk,e?Y-LV3@qSz|8[nX<8r \-9:b^]tw2;E0e%Yf!3,R zr ^8B]Qw+zX?#?SB+qcy} !YP%?6(4,$`/#Kxy1F_K5tr#&8O:& ,?_2BO_F*d?KRpPo`TlOXJK-]n.a`d 1h#(i>AkZ7emvgthnQVNo(,p rt8 v6e-yNz8yz_KV|zhv4~ve~Sf~ 0K}B !3{W  x `t Hq2 *%nK Lޤka!fޖjs)!qރiF!siha!^^hu!XOh!Ai;f!0M*e!*Dd!#_! [!V"&N3"FݰG"B"TݥA)X"g݋:5o"z5D"un3F"k_0U"QQ-`"GG,a"@@)n"'-&t"#%#y"}""~ #{#}#(y #4q"#C,ܷu2#Q6ܩo5#[=ܣo5#`FܘoE#pM܋lC#uR܌kG#xZeN#dudL#luZM#wgNI#_pEJ#Xa/?#NJ6#D44#;!##8 #.*#>' #K'#*_"6h"?w ~"On"^!\"i2B"Gs&"U`" sF"3%f"^ H"k."?";$!M !^ &!u%<!;Jy!Xgc!y|!Oxz!#?[\!,#/;!+! 1 )H#9 SV9V zAu$m FS= 8H) dOR]@X/2XYDw`vb0fT^gu3rZb  u1?y ;mvz7G/tusl'!Mfq`e^!U[%*SG*Lqo|K?fU@fE< P6=)+wc&I7 }orsc;j% (4O [O E"I ;#' vS5g < PP D &m9P |*WTY ec( l L Ryy T ' u nc me qL T 'IM Vu{c7 X* 0) d\+ 8g '} l _x S63 "C R* A 8? lH]f hSj fF Q~vkF :q @;b(*R~8eE?>S:I+'K #KWyPfF,9M-hf&o_>8/ KMIpp P^} n3p;X 3 uEr I da[| Y5"0 G <?L 0iJY > ( ghgl K^3&7i7<1N NW c@Hp tS3 Rmk O? ^ MK bwk>H 1 m#] @?s ;(,Ow0L%205S-XJibE Zt|4!k02NZGI ;Hl7T+R['4x G8iua:6':4s8]5K, |5c[x |8K'xgu_,S\ ^?#cz2L)  D*T5ߘM5 s :t Wu1Br[ C8!TFWtx!ln%!J" \p/" .[o"s o\G"p ݽO/# ?!R# 2 ޱ#?!| QN#! "$! +$M"W #yvk$" 1q($# @E$j#C Pb܄%# ej%f$xh%$p6Xe&l%@MQ&&em9&d&CT !&&9غ؍ 3'q'gKg'' '.(4Bؠם'(}) Oj((7 +,()Fצw()RWsG֏()dU J(.*yׇ{)*QՃiQ)+ָ4Q)+=Ա5)4,՘;6*,*t*-Omբq*-,+. /!+M.T?Ԉ}e+.Sz2+ /`a+7/ n7Ԝн+/s'cu,/(g?,20ӘQ|,0Yfp:,1*ӿ(#,t1N+-1? -~2"\H -2E;2̇ -U3Vd D.3m e.'4V~ˉy .n4LT7c .4"U . 5#E /S5Zut0 A/5(+! m/5 /D6.\Ѓɛ /6D 07. &0q7=JZȆ t07ld 0n8;gn 08k gP $1?9΃6 V19) HƼ% y19Y qŁ 1<: CΕ& 1: g 1:!' 2;g!/p D2S;!B͋A޷ `2;!SNޢ ~2;/"l_æ݅ 2L<"+͈Tn 2<"HR 3<(#š. T3}=#S4 z3=#o 3)>A$9̖ 3>$7 A0ۿ 4>$K۫ %4!? %`˴ڔ L4p?t%vmxځ u4?%:Ns }4?%r ] 4&@&=˭H 4q@O&0|6 4@&E\ 5@&վ .5OA)'ʞ M5Ac'.Gm z5A'TqϽך 5SB2(uEʉ{ 5Bo('4b[ 5B(ؼ9 6QC)ɍ# 16CR)\ B6C)Kp6D)ջw67D))6]D+*B`sձ6Dw*[K4p՜6D*n:NՄ6 E*ĺb6gE5+ɁC 7Ei+Ew#7E+>7;F#,șd7Fd,ARwӮl7F,e Ӆ7G-Zȵd7hGI-SȈM7Gx-@bo.7G-#%7H-7H. з7VHN.)NJ 8H.Anoѳ8H.Y=7ѕ 8H.m?8"I6/ǿMI8ZIr/Ǎg%O8I/Dq8I0#t8!J`0Hҵϣ8PJ0uo1v8J0c@W8J'1Z-;8JQ1N촆80K1CŴQ8FK1 9ǩ=8jK1#;~8K#2F&Rͭ8KC2]$/͖8Ku2|(hm8L2˳(E8ML2Ǧ 8bL/3ǂ8L~3/ .R̸8L3]̎8M3 ߲`8FMQ4ǝ08oM4Ƅe9M4_68M4":9M5Aʷ9M75Uʛ8Ng5y㱁s99N5ƷTY8LN5 ǵ188\N5ǂ8N06X8N_67Mɰ8N6k$>t8O6/>8O76Ӱ8?OU7 Lǭ8cO7AJNJNȫ8O7aUo)ȏ8O7fee8O8a8C8OE8q.,8O]8x)8O8 Zx8 P8->m8P8O Ǜ[8+P9ƯeH8

9ǿ878LPZ9Ǩ8dP9"Ǔ8ƻ8{P9a vƊ7P :/mT7PE:CY7Px:V:r7P:!pDW7P:N}(.ŝy7P:u}f7P;#`X7P; 4<7PN;.7P[;7Q~;+cĴ6Q;k<|6Q;@N6Q<p}6Q9<&߮ÿS6&Qo<]}Ç%6Q<YB5$Q<Ү5-Q<9ޮ5Q=7Tܮ±5,Q4=l{Ү|y5(QW=ۮ]e5&Q\=ڮ8<5#Q=c5!Q=ۮS4!Q=74¬4 Q=xF c4Q>v/o4Q-> 64PM>A3P>.\N3P>d2I ~3P>3:3P ?fC3P?MY2P7?8Z2Pa? ae2Pm?& kc2P?R ͈m42tP? ͉QX2sP? Ν:.1OP? Eν*1BP?: ïT1.P@} c1P"@ ʿ0OV@ n!j0O@s D|k'0O@ _Z#/O@ XЄ,/qO@U ГR/`O@ гb/9OA Ѱ.-OA >ڰ־.O/A nϾx.N5A\ 2.NZA 0R-NdA Y-NlAmv{g-tNAZҢ] -HNAɱXE,NAo.Y,MAY3}+MA/Z;+MBԗ@+RM*BVԹȽ*8MFB0߲X*MNBsc*LaB(*L|BCP)LsBq5sr){LB֜a&S)NLBųc)+LB"T(KB|w*5T\(KBU.(KB/ؗ'CKBD'K C!&J#C3[ټH&J+Cٕļ:%RJPCYɵ%JYC,8%I\Ck(i$I~CMZ)$IzC}T$lIC ۳n#/ICw1fl# ICx_?a#HCTQ"HCRGݏB"UHCѷ3A#"HC$1!GCboj!iGC߽ GC( FDTNF Dqh\FDݻ F/D_.ʻwE4Dy.ͻMeE7DfŻwE>D#⪺@EED`~׺aELDCDFDAe{vD]DI㲻'D]D!:CXD`jCrDsG¼^CkDBrD Brs`BDĽF "B~D$~ADJ{AADq牾wx`AD:迾rG AD}4@D+ Hm@Dn W鉿rvS@D ѿ}.@D !B3kހ?Dg!yuS?D!7z~>D'"Zst>D"g|MX>D"{=DP#}y=T=D#x< =D#OÂ{s 7D( -7D.)>绨֑ 6Dt)?yH 6C)FO6D)\m5C3* 5C[*r|լZ5C*.4C+%94Ԭ4CN+M!4C+9"bn3C,h53Cc,M͉vl2mC,u͒O2lC-l͜e1UCQ-#ε1JC-0θJҏR1BC-Ǽ 412C. Ѽ0)C7.H^἞xq0C.c+0C.3/B.wX?q/B=/ #/B/s&=ZR.B/bд".B"0&s-}B|0!җgϢ<-WB0Ҳ',DB13ɽ΋P,)BX1⽛.,Bz1'd+B1p XR+A1+A2/*AX2~nJFe*A2TX*A2/z/͛)vA2z֓G)aA<3&ֲ̥(7An3L޾-u(A3*̔'@4]1 o'@040 U˝&@o4 Fقgv&h@4= ٧/ˑ&P@4 ھH%-@5 la% @E5c {%?p5 9$?5 ]>co$?5^ U&t$?5 {(#q?5 gܟX#L?=6 B"?r6 J">6P+Uk!>6Qnm!x>7oޜg K>*7> >^7X‹e=721`=7bFR=7u!\h=7=A= 8 |Z=8Xq: pf )1*:3!ű 0):j!&>޹ 0:!l~Re ]0:! /9"G/ ݋ /9M"+ƞ M/9"!T(*׃6(*؀ '|*NBJ؍՞ 'l*tؔj< J'k*ؙ &`* e'٥j &X*={٭ՙ T&M*Lٺ9q %C*5ھ %=*&'մ I%+*vg $)* 1, $*Ql s$*$ '$ *XՔ#)z;# z#)j=Ep#) 9#)),")3|2;֧J")}JmW")BV8"),n!)76y֥B!){ދi; h)9ߡ/ [)qߪaE N)1߾־ 9)O ֘/)dc]u)F=R)"(4 ("Ph(C-קK(vDp(w0P>b(ymZ( <v(U8׏)\(iQG(c(d2(1( gx(6Nװ0'fؐC'zz' U8V']F2K'ZS' t'$,`o'T{؝_<S'qu<'7Q2 'B= '&<FC٫&b-ّTb&~Dr'&[P&O2f4&z]"jv&#Cg& P&( .߳;&@ pM٥b#&s |M & d% ['.m% 8\%! M%6!] mڳq%`! bڍ(y%! rO^%!* ]޲L%!n 7w;%! 8'N$%! ey%! A$"A ݩ$%"k r$M" P=۟$l" OۈQ$"; keݛ $" #;8n$" psT$", ܭ.7$# \%$G# ;۬!$[# hۡ~#l#*ܴA##i#f܃##2`d##+GA&##c[-##j]##Qۈo#$I `#.$: C#G$zܫ\ ,#l$f{t #$`5 "$EH "$4%۩Y "$p9}/ "$HR "%^ ",%Fi "9%h|ݽ x"O%QݧڒK k"d%~ݑq' Y"v%݄C A"%'i 2"%_H "%L<ږQ "%N !& !&J1 !1&GH޻ْZ !V&\ޣY+ !d&hޓ; !x&}z!&Biq!&0_\\!&SRٕdN!&5j;@!&+H,!& !&2!'6^ض '\؅T <'+߳; U':ߢ j'/O߉ 'Fgdo؜ 'umX|] 'MW:w ':,o '% _ '%S '> F (Mcפ7 (h׎o+ (ZB 0(+ <(ߺ R(&k(O]מ(v.qtg(BbA7(JA(Z5(d,(?Am׬(bZx ז(pr~y)Q\n)>Cg()%V:)ON)!A`)C5֧/m)sbv')fIc)`&? )A)+)9 ()Q/֘)|Ly*`!l*v.Hz *0-`1*9M9*F-J*Ib*>Wմd*ZbՖ*Dlsf*dzlH*\-ow*COo* <:k*.&_*;!ն _*PթY*` ՖO*w~P +1gE+AX>+Y>7*+q!,*+n"4+PE+6 H+."R+E ԪZ+c ԗg+oԉi+$ vp+7 f~+A)Zw+M.R+_3t:+l iԻa+M _ԫT+Y "iԥM+^ 1`ԙF+q ?[ԉ߼=+w Hcԋ߲7+z T[{ߣ++ d^oߖ&+ o_pߌ+ |b`z + eYh+  hR[+  wIE+ /v@1+ D7!v+ U6 t+ f'q+ t#d+ $yf+ #m_+ .f[+ 5US+ C ߶LL+ O߮>G+ V ߣ*4+ fߒ.+ s ߇+ y+ h* 9Y* O-L* i<>* ~P 3|* \*,j* m*"W* |0N* 5;p* =+[* DR* J7* Y"* ` * 5n) P&ւ)y +uJ֍|)j 6l֠b)V >ְ߽?c)I I߲%D)8 R߭0), Uߧ) \ߠ( a'ߞ( d:+(iPE(oi_#(s}9us(xLPI(az4#({t'y #ؔh'\2Uر^'BX|Wi'*Lk6' DI'@-&&+9&G>4&hQ1&2k-b&Wـ&:&tp٘#&[ٱZ%@61% b % E%C6%vSu$MvF$v!ۜ]$X*۴0$=/$4G#<j@#>a l#B\ _f!UU80YO61>H??L;kW~Rb|@oZTRb/0hIu,Ha5x`k>}U [W-I 1h9u e'/ y8 AZ L n|Vs QK a.    /1' (h|Ps ]<y7 vH O\*Y vv~_ )p% HGY NnG G~:l c -1 @R"l? +z,k(G?ad |21eG_H\/C"zxO6\ u2DgeT'sq>5 j lsL$ QD7. yl"? .Y =h f} T6t= OWF f= cps i"yZ >C7 @ ,_ -R ~ a{   dS  4D  g)5  ;!\  VP  ]g  $p6 7 ez w^ $? h| Ux Y "HF I uk ; 2 / E B >k Z jD u zE  ^  %J  &K3  _}$r  .aQ  6- : ;b / A~ aLDj| F2.g E?!H4fHx]+FOyGLy$lJT&I6iFN%OnKv,JK+I+LC-; %1V3 .q^ })5 `X"G L:#e 1  b: Ga C ?n"  G W\{ zg F@%  "Z $ " ^/ f% C F_) n &~*  k.  P10 = -6a { p;{  uQA  ? K H S Hf _;  H\n  b/y  . ]q |+ /e ;^ EY } `O k @~A 3u r8 a . ]P)  ,T  x   p ]  2~ . P- ? ߮F^!i xރ`e! 1ykw! } ?Nߏ$! c .߫q/" K u߾Z" : S"!# X""! &("-!  Q #7! ܸ$K#V! \ܣ7l#]! 3ܝM#p! C܀k(#! lމj$!k |ZޤP$!J ;?$!! 7&E$!  z%! _3h%" qT %)" Mk;%-" ݈x&D"g kٰݦ1&T"P <ٮݻR&U": ٢&j" cٍG&u" 5و q&" }z* '" 1jST'" Wr)'"~ iLݗq'"P ^9("%  E(" T("S=( #<](# x%)#wܛLY),#Uܸ)/#?om)9#$EK)D#ֶ *P#խ%:*U#թL`*a#U|Փs*s#}"XՌܔ*s#WՆO +#%mJ+#@j}+#e^A +#&Lnr+#sH܊,#hO?ܩA,#D 8|,#%s.2,#c-_,#~-'&,#LB-#$!`--#܋<k-#` ܲy-#;k[-#+  -#>O3.#c].$[ە.$RN۾. $3/2. $r / $p%0/$Q>;/$(_i/ $ۆ'/$koۣO/$ON|/$!_%/$ 0$H, 70#߫܃ t0#i`wܬ 0#@6b 0# , 7!0#.]!0#N!1#\v!D1#x/޵ܕ!R1#_ޣ)ܭ"i1#A݇*1"1#l1`"1#V7w"1#oC?="1#+Gf"1#L܋ #2#^\ܾS#42#)ܴ_#Z2#^ܢj#i2#*܃xB#2#Yyq($2#I͆ܐN$2u#d2͍ܯo$2r#@3& 4" '?&4"J'34"Q'#'.4"bHL'F4"حhgi'W4"خu݀'T4"qpآˈݟ'k4t"KL؍˒'t4e"((؉˦'}4O" }˹ (4>"r;4(4("a[P(4"^i(4"k}Tު(4!J\A(4!2RI#(4!/94(4!/:(4! 7M$(4!)YA)4!(gY,)4!'zl8)4!%ˊގO)4k!a$ˠޭl)4V!J"˴r)4@!*.)4"!]% )4!T+')4 @6I)4 $+,f)4 6>z)4 { 8Tߏ)4 b5`ߪ *4 N=q߹*4 A>ˀ*4w (F˓/*4c E˥4*4T R˷6*4; ]&N*4! ^:M*4 xSV*4Ղ)se*{4ՏBg*d4gէco*U4Oկu*J4v2տ˗*:4^!~ˮ*24J*"44s *4"s*4w**3j;*3q#H*3q,C\*3o9^p*3wW}*3ptzṣ*3J\Ւ{*]3%Eճw*A36h* 33j*3 Nb*2d U*27̓ W*2sB͔ J*2c`ͫ& B*2Eu2 :*2-Ս= -*c2լF #*G2U *!2Ad *1gm )1$KΕ )1Qv6} )r1)kM֤ )A1]i )1Mx? ~)0F"X g)0=J{ Y)0t4gϘ D)0^-ևϯ 6)i0C)֥ )H0#! )!0 (0* (/ 4MX (/JxЀ (n/lq״Э |()/3 [(.0$ 5(.pJ. (p.׭р8 '9.m!Ѥ@ ' .J8 D '-%W7J '-sd Q '-؃(Q k'h-صMX I'0-r^ 4' - Ӑ_ ',[Hg &,$&مn &_,P!t &,}`} i&+|bԢ 5&w+Cu٫ &1+ o  %*gBDN %*_czv %p*v_ګ՟ b%1*IX A%)T #%)UH $)OۉD $^)L;۹h $*)Ja֕ $(OEA S$(?ې #$N(:D #'58?ؓ #'F*xܡ p#6'% 4#&!Tb "}&x$ݩ١ "<&IO "%, i"% q6 @"w% ݤX "?% ڊ !$W10 !$)Zl !r$޵& U!$p !#omܬ h#1F "KX F "߮ݟ  #"? !g>& xN!x( D!p߭+  4v- b B0 ' hI0 ~L3 >W7 C(6  IF@<  B P&R D  !5M 2 z T _F xY V 9`  ccg oO k N&  m  nUt q Av 5f sw m Z /| < 5 ~} S ulr mVn' +gF~ tO\W vRaO ,nI ,AQT h4a H. A*~ NS0 ` hw $P, /-0 m h-K y7 MV# u(4 ( l= g^F v%AV ![ T\5c  }L!n a ]r 3= x  D*T v {j0 }* uk ? fo 7 `?3  Xi NR GO  =Gk , h5 C*7 I$ C ^X ) V bA @0w a lU  m R9! L1 I 8 8$D '0{W B La 2/En | A ~A  uL ;n^ *_c M |Z#  +T{ WDLw c? f50c l# U$   ' < E zT^ {3 ,03@ 6sJmmyStLf25Nk ~uTGNwA%fng,?p_ OC} $\A oWY3n D+ Y o^ ld&  X o~s; $-.n 5oj H@:t |H;g UFaayoIlz:v7=z\o'9fh?sx.P==]y4>""Of"W} =0.a0lW!e%.,0a<A2IqS_kcYi l' *gitMh bYjbUkH9.!0Yk.c#_i?I7"S,K L Uc(^l 16#S@"nPY)Z`ߚ0 k]ߏ| {$TQ| )s m9G.!\d]!cX~!x7jP!N4B.!+=[ "4 9"B(3 "dT "<} d"gj ;#8  h#߀ G #80 #*MT $.j 6$7ޱ 1!e$D`އۺ c!$HOi۵ z!$O7mK۬ !$X,ۤ !$aڜ "%fڗ, C"G%pݛډM x"y%|r}ڂj "%9M{ "%^ j +#&8e a#1&ܷ[ #d&J܅N #&]I- #&BBD $&;c R$&4q e$ '2 $ 'o`, $N'X=ۦ# $]'E!ۚ% $z'0n %'N K%'1 p%'| 1 % (?O %2(ڿb %N(٥ (&q( px Q&(_e a&(MU &(7d0 &(&T) &(< &( & )')!'/);B'F)خHX'Z)؟[n'j)"y؅u')%Vg')'tH`')&`"B'),O -')+B+()(7"()-& 4())<(*)L( **a(*'a(*'x(&*&{(8*)w#(5*&i.(H*'S׮8(V*+L׭A(T*&>פF(e**3וR(k*+%הW(o*'#׎Z(t*)׋d(x*'ׄd(|*%ׇh(v*$ ׆n(*"}o(*" ׈r(x*ׁt(* ~w(|*ׇv(|*ׁv(*ׄy(z*ׅu(z* ׇw(w*׉w(z* ׉t(r*הu(m* ׏s(q*זr(a*עo(a* מl(^* )׫k(O*/ײd(M*<׷a(B*AZ(9*QP(-*aJ(!*h@(*~8z(*/u(*(c() "X()M()!>()2 3(): ()I() U() f')!w!')01؄#'o)?O؟&'X)Sdح''L)c'p'1)s,Z'!)*r@')-g.'( 2W'(/J&(+5?&(970&(9P8!&(H]<&(gt>&~( ٍA p&m(ٜ@ N&U(2ټC ,&6(ND &!(iA %(/ Fs %'W!DX %'y;CE }%'MI2 _%'eG >%'{I +%'ډK %i' ۥM $P'$۷O $A'6=O $$'I\T $ 'gQ i$&~Su F$&;VT $&]Q2 #&*{T #y&VܖT #X&ܸQ m#<&3T M#)&GT (# &_V #%uV "%"-Zq "%BD[V "%f[ZB "%w`+ k"~%ݑ^ :"^%ݱ] "@%a !"%B5\ !$jg\ !$2[f S!$YZA !!$uX! $ߏW b$=߭Z H$#hV 1$8X l $N[ B #nU  #+Xm #DWN #QjR& #{Q ll# M4C#;H!#h"A"U>^"690V"S0."o2"")h"G?$P"`]%:"l\"J7". !+ !DG!:tfq!f}4d!KB!#" !W!,'S 6M+. 7lA C`߸W I=qߵ= Nb߮f VߧZP ]ߟ48 c8ߛ  gcߓuGa{s07qPv0rk>hbhSZ~?SVf)M;?F?$*;3HE9YwZ.wvs+|V)Y$f-H  .Q 8[e,>d ^5Lqnh SU,85@/N,1k>'d>ELEo"$yQ:SU N*_1lia suHnX|qFwCq"P0l 4g$X= WP4PpW*Dp5@mG8RbZ/.?f$!|zl>;YZYIx}vr9\Y+I@! -$+ . 5 <+D/A!GCY1O^w:}YtKfYYiGehL*nw7o!tzh,_AzP%VuJ6ho?Cyn~1Tji,ebXrfG^t1 Xd [X SDP3"&N)44JC8F Q@C]KDiL<sU<|[>})_6s2f9l6k8`?r4ZGt5QJ|4HQ4DV1<{Z47t_33xb./re3-qf/*si-*oj1'oj.&nl/)pk0%mj1(lh2+qe3*jb:0o\84rX<7mSC=sL@CuHEHvCGKy=FU}8JY3K],~Pi$vPl{Vtt\ |o^tsigkoZjv%Oh2|FdBv4`Pn+\Zi#\h`Rv] QUzR LiHH]K;NH.2;B=')DKBX Ao= !|?6k>*OZ73_R=@p?6Nq13Uc'7cQ1o;2z~*2 q2_2.O2#7>8AO&3\b7rl< dr6Og:(;X:9#G6F79T-7a 9r& 67y:MewE0s;e8\0-UC$L3\ELs ?en>lR6"R@419+4F+R+_&n w1-B;vWKkm_]lQu{=\{)Bj+_" M'=.)18D:!<\WCplFvsJ c^NUMN G:U.1"X:#^A  hM q-U 4B\w U`ce w}jQxw o@Y] t,:A {)   ~ v  p / lD, f%`D b3sU _Bib ^W@r ^q\ `fA e ?% kM  qrz wL |20/ H@ aV| zix| 7wwj TrPj vl4{Z h^H ^42 Q B D n;2w w?n 4 B I  ;b $f7r /Zis ?=ic M#LU U,E d 4 v: & Y2v  e\X  B% R *  4+  H?_  -~O' h Mb ) qBr  nk~ { DRH n w6 xb % [X  -L V @ h 7 2;1 ) Zv m  :o 8  wD`  /   &ur 6lk3 e) -3W AU<; }D_[ L,6 R : [ hc?c gilS r:B /z sg yE\w o6U* fF^:V=LYNs~I+IT B#,<eY9~Nf2B(-q#}(\R}!`w=Egf ( \6&!8w#Ue&6# )c f,j:k -&  Z0iU ^1w C1CB 4I 3X CY3 5l\a 3# 4 4, z 44fk w4f[ R 3{ 2!Z " e3pc 0 ( 0i n0m_# ,  ,VE D*=&CU%R)#J57 s]Uu7LpfJt!$G  {:M Y <#GT'#dRp Y  / bLb yv  8H Y Xg"r o(0? ,)r [0<d zn4H #8" B>_ xCG# AHd ]j L S'Y WBd{ rgZ{ Y c eh)mi?tfpF7r0v8Uvz1HQ~-| x20c vv& t߼o!inlރh!n?zZ!k0 "h`a"<gݬ"qeS0n#e&# c\g#Henۊb$eU $ eg ?%Ghu߇ڍ %h - !)&hޮ@!v&"keٿr!&gjcy!,'l(޳E!f'm ޅ"'o ^"(Mqך"I({scݖq"(w&#) yG#b)D}p֜#)Y<|#D*ۂx)$*7"զr[$+Ro$~+&Ik$+h%,FӞdZ%v,ZX`%,g.0^%,<Y%F-#ڌһV&-\XҗR?&-_Lm&!.nٲH&{. .\B&.C љ<' /ءG6r'/q8/'/I*'90^׊x"#(038G(0 r(1tײ(v1KHuΡ(1h)I·(1 K)2>)Y2֐Q)2$Wͻ)2bX̀)(3 ;־M)W3( ~*34E*4W<˒m*B4F|Ք`*4QM9*4 Y% ߢ* 5 b ߘ+H5W lԜʎߏ,+~5 uks߇?+5 ~IN~P+5 r}+6 yi+36!o`+X6?!G}ɢR+6|!*AnH+6!!O<,7!-#,P7"Ӝ"G,z75"lȸ],7c"0}|,7"oS,8" _4,98"TӸ ,d8#!1Ӏ,8'#+.i,8>#5TǴ,8b#CLJܸ,8#L pܯ-8#XXܡ-.9#fһ&ܕ+-P9#pҤ܊;-m9#|Ҁ}D-9*$Xpb-9K$/ƨen-9g$ƈYu-9${fK-&:$kHA-8:$m68-E:$[ң+-o:$VҊ"-s:%R҉-:%Lj -:4%F[-:=%@Nž-:O% D;Ţ-:k%4)Ő-:u% 4ł-:%)7o-:%4&]-;%;,M- ;%C(Eڷ-$;%M -گ-4;%T$$ڨ-/;%\" ڟ-A;%e$ҹ ڗ-E;%l һ ڐ-I;%s(ҵڈ-M;&{+ҳف-P; &&Ҫ{-U;&6ұt-J;&4ҳn-T;&7ҫi-L;&Fҿf-=;&Gҿa-C;&R^-2;&Y[-*;&cW-&; &kT-;&pP-;&L}-;&H|-;%Ch-:% @a-:%<W-:%*9C-:%E+79-:%O46&-:%oG6-:%Ҋa7,h:%өs:,F:%ō;,*:f%5ţ<,:R%M ƺ>,9;%W=,9-%r;<,9%Z<x,9%g:a,9$ӊ8N,f9$Ӥ)78,P9$67",-9$S7 , 9$o:+8$4Ǐ?+8_$5]ǵC+89$[ԖM+L8 $v V}+!8#1[X+7#3_e<+7#^Ȇk"+7o#Ԇȟn+b7N#յs*:7)# x*7#8z*6"N#}*6"oT@݅*6"y|b݉p*r6"uըɈݐK*76^"hɾݟ0*5*"[ݩ*5!P]#޹)|5!;)֫k)75v!(Lʢ)4B!q-)4!r!])p4 ֬O@):4 |()4j ̰/)39 K<(3 qC(u3;׭3V(33Sgf(3n͑q(2RZa(2hנA(A2TV(1::Ϊ'1&ؓ'C1DL'0e1Ϝ1'0:؊Tc'U0&hL'0a|)'/{tMЪ'/>]|&k/Pٶ &%/34V&.P7ь&.Xoz&\. %*]&."rK:&-fsl&^- 0%,O,Aӕ%,E,Mڔ%=, zM r%+UԤ5 X%+<ڒJ 5%G+4o %*,~ $*jlfհ ${*-S-۬ $+*/OK $)l<֊ $)Uۈ b$E)AJ <$(Bדm $(?۠ # (I(z #'WIy #Y't:' x#&J٭^ W#&%ܙ} 7#B&tH #%K7ڣ "%6'~ "g% &ݸ# "$%E}+ "$VbWQ "$wݖk w"A$~u S"#PDV 9"#ݨ3 ""#ݲ8 !"$ދ*p !F"yH݌ !!=FhP !y! ޹ng!!k ߻3Q! $ J Z5! ޥk!= r cߧ ! 9 J  vU e .߷ )F KJ  ggZ ls d߽l  6 M  ߐ*' 6 c XxuLO+I$\]g$r3{ZwUgsDMGN4?D)K |KO-YyjK7:k %'[w X>\vIUH"@H.>H8F_y4`ivv$bfc=TL^4Eq)I/\6Id9Xnihjv!y"5^]D^Gd-!>%R|gb5=- Km;B`kQS7k2}xu`l4Xg>s@z!& >Qik O  ! G#<> 7! e^ Ga 4 nR  VUf  &tY  D p[ '] G LH O" l0 q ; [P  & 1  #wd _ k= < #L U_+' k~rho ~a} {\VV h+3Z#3HMc6' Q6F ^Hlji2X4OF8a2s@khrU#cQ!5U,BF9V88ni'Xyec-l3S J-G-GOcXj8 q9s ;#a(W0RP|=BpqI4[N(jEXBg) e  *u'3K;UivTf[fj<5asX^Q'IG@4;G[F(C}ez;o gBKr;1`8Q?2;9F$:Z.:pH:ok~9/Uc8;AE>U(#:h>nEzB#vK0nP0@eS>U[[OcW`_tMiti?lpXO`WfcN{;$qw4]gE,XYF Kia@=pI'rZx#>A 6%oz Y!E+:I FJ]5Vq&\f\tl`{]tH}DAn-]!Z)KEg}d4,J8.K o%\]`@OY /37!kNDy:xTWKU0[eg%twD v^v<>hpn0|jO]#P\ a V| d rr 3az : ehV  }f8 u? a D} h g, b 9N b v :ex G [b] e rcA a Q\ d 7I ` 6  ^ >+ a TI X tv +Xy t DU[ L ZK< & wG |% ? `J 9 M@n 1 w3g + O )v 8 X = #* 53 WJsT.bgNqAl(|!jw1DeB&)_N9 \bZKm#sJy7~oCPtX8ijD6|\{51Pa!/AJ )48- 0 .$<0C1>AKFUHZbmRaz\|mlgg[rlUH|t@4~{/%pcu]uKt/);sH<'wcK |^jrxI:r*wTf etaW[pL3RU?PMC3`F1+v?|5e +N # 1C i  ^,H(Hr&}a.Z}H5u1s;]}?J[D350HFJ aMD~Ot1dQYKTW5rT}!VZ/,V.xbU hV ,aDU 1v6Sq oQP }(P/ OLM kI (#H mNZC Dz?v ](=S (6 CA1 /j- [{i%q @/0  w  d%? ksz yWQ W J.   +  P=$ "QZ \+q1 &~2P>*LIkyAS,5^PmvsnJ%@xP hsh$Hf"Yl^ENKPAT17!2) {W1m T<Q  c 6@ - zdK !" 4"_ll y Eug D P  cH rbG ~p{K y tkb J ]- * HR CBQ C4S f+  G->  @I  /NXp @C * +.69_UEFbN<*[Mg+gnl;+c|v}w9wPjWmp{a I[HrTRRL'e!DtA^?}07@2.N*W-L ~}Ifr (I JZ v2pHk$o W}1>02NIR# e Dx _(  \ H"c }: #X" K'% lia'1 37)\ ' M"E~& f 6! <K ` j AK   Z y P L  r  Cz _ wBsh /9  !Pr D'ux k-w?~ 8N7< G (VT ojbX8qiJ]Y>E6 10i" -DXd5e|`y6(YA$;<  PK+Gh FImK4hfVtii 4S =t~E d_8q ~Oxv B?TW . 8| %p%* 4_   (aM H7  wDt% ML q J` <"  h|8U C$j Q!# a6"<Db`K]D9Y |2jED]w")q &$_.O6>BrsP|g2_M-nm4{{H}Nnvyc!/JPBpo>ZK0m.tggTK2*4NCN,oQms c+ (=Nf%Z-M lZ "xM;6m0kT]p,uN5PB b:]8l%x840~MjZ"BV !>9 !z~zi &CL1 ,p} 12_ 5X9 2N> ;|p : *L 6T _ =  @V 77 6f0 r 6 C5H 0 w l ." , )P~ c )q }6 " FP 7 {(r a Q  I - V $ kC R  EHQ  (  (#pM9`PD"UvUtW fF~In Lquy7p2JaFutT[84Cmo4aO$N9  BL0H2qJrTd6l]{s8b=[qPxD AG.I  uw+E i#x 7W$ 8R&7 }s`I 6ߴ,aY f{;e ?7 x] t RD^ߋ GfNU t~L8st ;9Q 3 < 3-߿" W0$ߍ l g~ &GZ H l )4^ Om ߜn3 b-! = $1!c^!-{Ww!Aެ.U!jރ6!o !5U!e6!0b!L: rx . U D=ߵ- [o$ߐp 2q< C=a rJ@v =V*U \]6 mi rF |-{ 7p 0 _d C*{ߺwR FI߳LB Yrߝx!+ gߙW iߏ2yS/}i1Lu;\kn }euw(dZ]Oa:IrX"3^ cY8  W4 ^K!C^nPgeykrqcwQ925 { m=5` r]|Z \qK0 2NBE ,9W +`   t H(  hEx  kja } V2 N 1L " M>  ?3n0  qk"{ ~i P KI  .   (  :X  ^( q x:z L WU  s3 "  f% N ?' ) ^) K +( s$s & ?UE & w ok" +< "  C"  _P  In e eW A < f  ? 7  ` 1(A UZ  s&yY \5N~ D)? :R %zah 2hp= KzR fq 6oh (X\\ U?cL $X5@ . 2  4Q BB(Ne }AAzkl gxw>L2-\3)/xwo~fSL *$ ;Fc  sV/Q /hI$ yc} 5bj q`\ _ ^MY ! >: !1- $h u h2u & U? =} l#0 6 86yi E4( W5 I hA]  tnxy vLy> Mm c 5d2 .Xi0Lb;CYb66 *Z=1!2z^M' -SByX`\ 30F'+X-GI-3gg9+K[?g'<CKH#LZ(9OhbZpR<T V<^ |WqFo(Wz=tW2NWisV)<UETe7QJj\Mv>sdL,,F@18;Y|V\2QE*"(#a w!L$J~o g#Fdb| GV.*O -z$uY*J>7Hj B=MfXx\6ybk ,#w-0,tWohzgu ALae 70U{ +qF A1 3  &# L  cI >.s v A :<[ KQkydp~;|v:yufy f\aW!N6CQC2g;'3c4%@S$o/PE>-mR}$jC5HxCheS)OLaS5>ji/rY~E,|*C qh h}#'d{A:WSoLK.\@fl141"tPgs) xRWVA n>7(f%J!5#  ,, 3E  9Q Cs@- |N`< fXsD HzdU $Quc 9 j {$z lH `wZ' \nj9 QcV KpYd FiSr ?P~I 7=i? 0/`< (D1 /) &" @  _! !n3 2I c=` WEg EP} .xY $q_ de Qq Ix < w-9 iI _Y Kx :~ ,s Y, I/ = 8 . D ! G  N ( T 2 \ 8 ] I b W +j d 0f #y Fm ~. Tr k9 `n [E ot HO |t 7}X u 0x` u nk u ar v by q U tv K qn K" j_ <6 kO 4H c? +Z ]+ s W  N k IX @<2 =0? 5 R - b (,m '!~ 3w* 8h8 < WI C>d J&w Q! Sa4$ aEB> e3SZ gf{ txp se wwL2 ~l3B }^!P Q e @}y 0z1  o}R Pws ?x ]%{4 0tO  xh x+> nuSX Wxnj Bx} ,cuy F`x 1V| ;~! %{3 L; {lf~'vkdBsH7cq$kt 6h[/gc9Ocd&e]DYn[Z RB19Q#UNO q_F} yDPzB='ab6J.c+P&: w uB$6@E ]Z~Buu_^v |As`"JL-;  **+ 4Q9=r[ yN)HTXC"-eRun}CB}w``qfiohS^QHBW917K % @$8 4E&_u{! lY2?)J$W 8+>g HYky Yt breT Ehu. Uz Ll E*[ 1ig:`w2~W'aH6!NBJ59g-r'W "768\K|t] Q t*2=wQ di U$y H; 6kY %Wo H g3  E' ' >` 7.tV?V}U5p!gV't;-t6!h<5\BL!MMj?BUWt6_tRz(n/W{}9j0U V'D zJ1p q*H 3 +e ;J  C, $J );P <]W O~-]v _CbV tdg~+ men qN M ;u- % oyz   |S .#  ` 8V F %.) , G&  l~QM3 (lL<h =||V%g#zOsT,q\E3Be4;; GO X/ hZG"q}l5r|Ow?Gghz\z)(KcZZ=Rxy2zxC'UP13/"#8ARb*4j\:DI7GW [nn-Av~SfzdgfPPVC1BM$4;#(-.@% Kat }kdP %9%5/C?'9SUXleisl_w~D3wgi\`NT7=;JVW1Cik$9be0LP(/5 $ 3'DK<]w_ xl{[vu2T&d:+W(1F157C 9,X= t9A HEk[ISuM1)Rk5VSL[5^8_ nOc pfvhfn$j[Z6kKBDl=0Nm6"]m& lmwnnr :ob JpU$ `qA6 }qz/F rg#S sPb r<q r.x p" ns mm jd &hV  .fO  2eF 0 <c: = Fa/ I La& Z X_ i b^  v j^ s\v zZj ~Xf V\|# STy& QRx, OJu2 KDr9 J@q< I9lC F2iJ F+eL F%_T DZ[ EU] DQd CMh ALk @Lo >Kr  ;Mt  ;Mt  8My  5Nz  5Nz  3N 3L 3J 3}H  4{D  4zC  5xA  3w@  3uA  2uB  /rD  .qF  ,rG  )nI  (pJ  (oK  (nI  (oG  +oE  .qA  0q>  4s< ! 6t9 ! 8s8 " 9v8  9v8 ! :v9  9y:  :y:  <|9  =}:  A7}  F3z  K0t  S)m  \#i  da  l\  uW  zQ  ~~L   yG   vC  p< j6  e1  \'  Q G 9 ( " +  4 ? & D.  H8  P(A R/G V9R ^F[ bOd i[p uo}} ~zzp kb` XJP J7C 1? Q $2 e # y k  S % = 7+ D" `5 {C} 8T` bj8( {l|1 Jk8 "XD 0 KJ E>N [.Z x8#\ Jrb cTl ;qq  *[y 5 -v (=l K$Q` xWgNs {yBQs~ 8,Fi &W J " 9 F / ) c L s a~ Xg  BO %.& ,8  ?C : 6OQ d hf~h |QR{t 0)h qR  cC 5 <Y4 T \K" ~ ?wm 6aX  ->1    + : K@ e rN{" ``N; v#P qa  $_w K XM t n}s@ b\R2 Q4'# B <  !( >D Y_ y#kd 2=;" ?7 PR =;bj e_q} xQYx ]#1j N` @S 7% (G ZB ? n[ 2  Ol'  7Q 21  H5 ][1 tf {S *_"[ 5M2  B.W Mw. V ~L `Ps i+& pn6 xHL( ({^A tmc j* kZaG X4Yk B }O TFF 1?f 6 K.5* 2(E= "Z_ n#z {9 ~iZ jH { Vx6 L^ 17- !J%Xs~9u{hPLCj"*&%y)k,R8!/GJ32<iK5"`7qq:[=/f?R,A<G C`CDu`F"Gjk8ISNHJK;\L5 oM$|O~P k0RY<RPRS9)sS&<SnLROc P2{O~(Mo 9KU'HJL.QJ?G^H-YkG&]nFs{D~B{{Amr <[f!7Ha.3;X;+'OU$FaAq;u2 k4)^.9R+;J/ CD+K3+U,,X%,*a,4p,=q0Kv.X#r1c0i5nA[3|OY9ZxS<`lO?pbIDu]KHyQ~HNHs@P@rEW3b=^&W7`M9j =/o.+u !&~"'y3r;mG dQ`XX b Om%K u*A 39x=0jG%_OKb:l.s  xw k(f.c':"]&D/W+M;Q/YCN2dU>4rf75~r{/;ik7]\:NJ@>6< 4'D&G IP!T"[-]'0e(52j9ICiEWGsVjRridtsvlb{xpPzb;w~U/qzI$os;dq0 dh%eaY` ZTU ,SG>QB%NI57aK&F|IzVGk eESu CABz8:l'"<a 6Y%-K11@3)5<''/I)EZ& Ug( t|* }u1 id+0 QV;3 4;J: &4S3 (a8 k9 t2 7z 3 6p @6d Q!9W n==I ND< sbF+ OU 1k[ [^ :  m $- l != q ,S y 5f x ?o { I / n~T C ay\ I Lxj h ,hw  ua v VY f *AB Z ;` K -~ #> o A3 R V) D g! (  r   m   O  6- $ , C * d D 'L n- M_ J: }| l}F  EkR  "T]A  ?gb  0ns / ~&v W ]} t N ~{ 9q r I #n 6 )e % E\ R -ZQ t VoF } 9 EYc + D  -*# `f | vp$ P=F .N  ` ߏ$=  {,?d  j6V  eNA  Y!0N  4Z ! l%p! f|_!H~ 6ެ!\n Tݑ1"^ ch"T R&"H X9L"= #~"4 r# + ];# +y#7  sܽ #L Wܪ5#c ܈ v$ vbC$ EN)$ J="$ Ma%! ^_%7*۫S$n7*s$71*S!ȶ!$8_*Ǖ<)%R8w*ڐyQX%8*SUl%8*-6Ճ%!9*uՓ &=9*c٦թM&9+MXԼ|&9!+=u@&9$+.K&:E+Ū'@:_+ذš-'g:e+~ŋZ':+?f+':+AT=';+7S(P;+׃o_(;+5Ӄ(;,t\Ә(<.,[׾þӰ)j-0l*?>'-ԣ҂)+>B-sOҗ]+>d-a.Ҩ+>k-O]һ++?-:'Զb+X?-*Ӛ[,x?-tK3,?- K2f,?-&-~,?-~ ,?-O&,/@-*1,E@.ӹ>,Z@ .҅O,-@&.Y\F-@2.Hjl-@;.|{- A^.}R羛щ-(Ad.p.žѕ-OAv.cҜ|ѥ.vA.Swoѳ/.A.I[fѼ9.A.>LZ`.A.0 O}.A.(H.A.n H.B.L߽5.(B.@ܽ3.)B.)ƽ3.NB.ѡ.dB.Е/wB.{$&/B.`/M/B/@6`/B/2?n/B/}J/B#/eP/C*/bX/ C'/H`/,C7/;Ѽg/(C5/2ؼn/2C0/$u/HC@/й|/HC9/ гЀ/SCB/ӽu-B/!x- B/62yп-A/NZ%zУ-A/kv1yЍz-A/{Hw}[-A/egB-A/mxS$-A/҈}F-jA{/Ҝ3,\A/#Ӱ|,BA/:ʾ ,.Au/\߾,Az/k,@v/5D,@t/K;Ф,@r/pb}+@q/1wc+s@r/_ԤE+J@h/Կ$^+7@q/ؿ ;+@m/+?d/ *?n/1)*?c/B4=з*?a/U^\Л*?c/sxЃs*?[/ՍrJ*^?Y/ոQ*7?R/3)?T/()>J/[))>D/#KL)>I/FzЫ)p>9/e֠Њ(M>;/`K( >./3](=2/.5(=,/C(=(/ e'="/).؍'j=/EXأб'H=/[Жf'= /~p)'</N&</#Q,&<.iـs&c<.ٶ:&3<.<ѵ%<.`&ч%;.aCa%;.a!KY%;.ڑ&%$%[;.گ*$D;.+$;.H8$:.C4Ѯi$:.`D<ѓ?$:.|lJr$|:."ܟEE#I:.WU##:.\A#9. @a"9.N'nmѤ"y9.nhݦs{t";9.}I2"9.}-!8.1LJ!8s. PXǍ!8w.' {ljj!q8p.? ޢǚѳ@!N8c.\ ǚѐ!"8g. ǝo 7Y. >ȭY 7R. |Iȯ.a 7M. |Ȼ* q7?. ߨ776., <ѹ6'.` !ѐW6!. Xm6. BS6. P%6. j5- 15-/ E5-L hҫ5-] >&ғ\5- w,ms15- 9ZG5- B>4- DS4- Mn\t4- pZ44-; ˅Ҳ 3y-` %̎ҏ3f- N_̨r3N- ̴MJK3H- .35- 2*- 0#2 - aN2-" je~2-8 Ӹ1L2,W Ӡ+2,h ӎ1, A!1r1, S=Vd1, S>1X1, q%1, 9 ρ0r, rDϝr0U,{ϳ2b0D,@Ӱ+0.,Zӡ0,gKӌ/ ,~Fqk/+ddH/+R Y/+,<0/+)5(/+NP.+Ec].+ ~y-i.x+ј1.]+.*ѱ->+Lj7ԫ|- +ZkԞFs-+n Յ 2-*#r -*<2d,*eANQ,*j[@V,*m36Z,*Ӆ'/,t*ӕ+`*4ԭ+F*^@+.*Te+ *'5+)#"*)4,7N*)>com־q*)GՔֳW1*W)Rջ֩):)]"֞))fO֗)(lC ׎f)(yj#׃@)(~>ׂg)(Xx<((4wp(|(Yאp(_(׷jM(3(Ji((nj~''D6lN''eo!Z''ؑq'V'w&)'E?w&'dmz&&/~lL&&U}L&&rف4%&~ڍك%]&|Oڸن%8&wtٌu%&r0ّA%%iP,ڝ %%^pSڦ$%SEۇڶf$[%ABX$$%1'"$$ + #$ 6` #$ lܑ #]$6ܲ W#:$M $# $d, ##w 4 "#;MCk "#ftQU "|#ݙ]E ]"Q#r/ ,"#܉ !"m 0ݡ !"RSiݿ !t"0ޱ P!3"" "!!2  !B6c> !P]ߎT ^!^߻h b +!jޅ : qwߖ  b:ߪz  H$lm } -Ne S o[ {" R F ;BN  rfG l 0F K dE ! AA U &B #R R@  p>  <.< V fc; 9 : o_ 7 H* ; # =:  Re;  ;F GL ]K  V b jHh 6r r /d  ' x.=  jT|, n boR ; Z ]a K GB F? + ?y i-0 <'V = M\_ z  vDR< U9\ 28{v c}, ^z jC/C @6Hu ib 2sD  pjnK1V5{AAl Z,2ayo67N rh%"K8(=ISIaD~9ipVOv/O iK\bwL7nDA&#i2O0'grT^4 MkH[ :N."(E!tEm'1k;1pmN3!9J>o+xC{D:]Gt)|J OPEQ |Lc 5MH& Na j7DI E$` A{q Ml9 393" 6bc n3SR */v0 }0% =,| j%E 2(q<t S 9 X  4   Uh g `o W ) ) M8H4 FYX L(c Xas 9e@D Ve  vC$e }E Apn GxWHHLI!K3$5arH_* #&YsG-nXW3/d+?EvHxlq~pa5ݺT "PܣkS/#n܃#n@bg#Z8P#=)nX$!u$ 2H$6ڨ#Zb%vyyu>%.*WU&qOd&s&rQ6&8aس 2'`L؏Gt'@zvf'3|I['!3,+(  R(R(."׵(`I֕ B) b/)(@y *dMZ*&/տZ*`!ՆhN+XqwI+u8y+4Q + {߈ +* vߎ51,G oӛߕl, h{gpߚ, cR6Zߟ, ^$ߦ?-!Wޫ@-&!SRްk-[!Nrҁ޵5.!HC޺ .!DK޽. . "Ax 5/F"=eߚЙ /}";@mt /":1R!/"92!20"9޼R![0 #8ފs!0B#8qHϤ!0i#9Dω!1#9-_!>1#;ݔ(."1#=DP"1#$?"2W$BXݮ͂ۼ"2$F"V?۸"2$J"۴&# 3%Nگ\#h3P%T܁̛ڪ#3n%WjQ̂ڧ#3%[LIڡ# 4%b"ڜ#=4%fܲژ#`4&kۊّ*$4<&sBˮًN$4e&wˋن]$4&~e}$=5&\ۚ#s$5&Apk$5'.`$6`'zR+%H6'ڜQHP%6'[=p%6 (x.% 7:(Qȵ&%87](Fڶȍ%^7(!ځ_%7(N9%7(? &7( .&8():&18D)"dzO&]8d)/yj&8)@NDָ&8)No"'֬&8)^ZՖ&<9?*u1٤ƭՃ&y9h*pƀu&9* DH` '9*O&':*C*'(:+2D'^:E+؇š"Q':n+zŊZ':{+[s i':+)8 1(<-+.3(<- <(=.L( =".&G(1=A.6«ѿX(S=g.Mג…Ѭd(~=.\zcћc(=.pdCуu(=.) l}(= /Z(=/vF($>Q/n/(?>w/b׸!(T>/aנk(n>/\ׇD(>/Pn7(>/Xe!(>/ MP(>0/G1(>0;N4Ͻ(>.0MEϩ(?X0`Eϗ(?m0qDυ(?0Dcm(>?0C׾@W(I?0A׬3G(^?0Hח 0(q?1@׃(?1Ct(?(1Kr(?<1 BV(?Q1KS(?X1NV(?j1.N:(?1<V@}ο(?1HZ9vΰ(?1[c'SΚ(?1ne)NΊ(?1}s ;x(?1](?1 Mv(?19f(? 2 "f(@2X(@+2Q(?/2K(@G2A(@K2:(@L2%.( @e27)(@c2Bͺ(@l2Oͦ (@2e͓(@2rx͆'?2lm'?2'`Y'?2> TH'?2MR3'?2\2 &>2 &>2" 4"%>23 '@%>2B Eb*ͷ%>2Q dڀ;ͦ%r>2f ڠ:͏a%M>2z LC%0>2 Up% >2 [Z$=2 hQ$=2 .5oE$=2 HT|5$=2 `_~.$=|2 yۃ$|$n=i2 ۚ›\$\=f2 ۳ B$:=X2 ¶%$=B2 ¿#<=2  #<%2( ;E#<27 nzͼw#k<2P ܫ ΧO#E<1^ Λ #<1o 4΅";1 !,Gv";1 DPQk";1 dzj]"y;1 ݔrQh"\;1 ݷĂHQ"7;p1 ę@,";c1 Ģ0":T1 !ź'!:;1 )E!:)1 Y} !l:1 ަg!A:0 /!90 $: 901 %TP 90@ WߔpϷ M9}0S ƐϥX 9j0c Ɵϗ2 8S0n )Ǿώ 860w Rρ8(0 0~uq80 JqN8/ ubt8/ ,VT7/ !AQ*7/ `b@7/ %Ȃ1O7s/ XȞ$ 7L/ I6 / fv6/ 16. O=5., 9ZS5.= m{ѿ,~5v.C ʖѶC5\.T !ʴѤ5>.` Eџ4).d k2ѕ|4.t p ҅J{4- }!I4- Bq4- 2l`3- pa̋Pt}3^- ̺A4/3-- -2- DX2, C Z92, l1|, BΖ1Z, @tγj1=,, to%1,= ӿ?0+E "Է0+O ^7ԩ0+^ =UԜG0+j hvԑ0v+t Рԅ>/L+ jpr/!+ #b*/* j%Sl.* o_8d.* ѐ+.\* Sҽ-%* y7c-)$-)=,)VCh,),Ӂ`h,n)6ӥ3/,G)@ַ+#)R+<֨+(\Ytסg+(gB׍:+(~"u{*t(-nգp^*A(}XR)'DE)''N54)'v׌!\(W'a׾x(0' 7('B'&A:Z'&"x]0o'&(؁'h&:3 ٱٽ&;&IkHٵz&&Oڨ8?&%d=ڒ%%sCKlچ%y%ڨuK%5%!a$$H)MD$$f?@#y$[ܥ, m#@$D ##$|c "#V3 "# ` C"#7݀ "k#q)ޱh !5#0|' d!#8 !"E1>ݲ "U}xݢP T o"e߰ݔ 1"r$=݇ !;pE !$zc g!4W 8%!AF  N,9  W-: \\ 6S= t c    M8[g\y{=/!"8g{nMBf pV%md1]sji;5 z t2xYzHAnBdE+[ EYUxFTh[@!'/;Pq3+_k(Cx0 '@EHzLQ7 P e <,Euq58J`om!D,5 , R_0E;5H5k i7oc7yQfz9 %"7Q 7PS G;_ 6* 9oCn :(k: 5J H7=[ 45_ 1: ,## ['`\ "I F`| t'# .a vG;X  Z&:^us5"z6\'^"/*Kv7j=3>[ ) $ j Az   EW  O  yw ? KX e \/  U,  >    TB #' |_m #M (` # i1 & 5@  x[V BdfU*K> 0 ?Bl$sc: U@Zyz$"#bbX.>~;D\J%\BlBot]w>kx~m+b0PUY;FF!X4z +s( U #%A <l G H$Qd >^} T}+: mf >ETc ~3"eK +-= s 3z  W Q ! %X 6 98 ? K H9 b ]l 9y} c ]fg o -OE  z*  o L = _  2QXV  SD)#  vs "ST +& Fvn2I% ab?b5y@h#Ae7Q#^Q'vBd/N!9r=Y ;JDW lU%x bXO r$ sID @b^x prvRz s/<> [2 I#< '3q V  qe 9T - + $% <=Y @TR oh`z\ 0Apw }S/ o=W L\  JOZ 9.5 /   +"43=NONnzbzoxUL =%j K&,2-3[8b~IC%L P E"WAga)jkmOFUmm:xY!"B~B})puz/tX%Jp.Qomx'hy`SiP7hC  c  0h CH[e s~c~ns hkHW eE3 g( h >k q/n| +Jo_ Fmx'| hzR #i, vZJ o(C fS Y  d R4J7 GS{t @bN 6"r -?e ' ZS ;9 #(  H> ga U7 /O K E#U +]q5 o~qtr s{;] `F? L& R;. t2uZ $A $p# 6T L) Gd  iv}0 E\(m |C1 V#@ FRNd?4otWm~Mwx9{wpvckBH'[.LZ`TSH[~(EBpD>Ai51*g[O#?J; %4aN~ orLf!e8A,)Mtn;"?!S= u_r$DDe-uoA*$47 <oC1|;YQ`EeGJH"'I>[J\m Kr!F FDZ Ld; I*n Fe|@ O)C MO Q{(a YmY(s Zp{1BbI+,QmY6dZ'Q(bTu}l{vekLO>xQ }, ru UMaf߁ tZY'kwI'kMU'O6['#h'!4z (GIע}F(ze|e}(cb*k(]:S(O4)W<֋<)5i O)*J~)l)(Y) 4<)9Jְ)\]՘ *xjt2*Ep'h*]+*oE7*$ 6ջ(J*d ՄQ+ f^,+ -ka+ +yx+!;y+&!IWެ+R!]m8ԥޝ+e!gg!ԏޔ+!sdoރ,!QOu(,!P6i1,!GW\,!8D,$"4|4,9"*[Ӳ ,l",z,"a,"=-"'=-"8 U-#Aܸ d-,#Pܨ-E#\oҰܡ-W#cmңܘ#-e#oOҊ܋--#{7o܀.-#4hv4-#Ef9-#'WA.#JA.#5F8. $"OT.5$ѾKc.Q$ѠT{.m$tхZ.$hrV.$af_.$)BH`.$3A>a.$:56c.$G۳e.$R۪g.$Z۟a.%kڍg /!%zځd/3%q]/K%Щ[c7/d%АM[A/y%Ѐ,% 5R,%& Sg+%0 sq+%8 :ԉe+n%> WԗڼE+d%I wԤڴ1}+R%N Էڱf+E%R کF+8%\ ڢ5+)%^ ڡ+%b 3ڙ* %j I ڕ*%m _(ۑ*$r vJ ۋ|*$x e-ۅ`*$~ BGe*$ \{%B*$ lr*$ Յm)o$ %֙i)]$ D@֭`)I$ YX^):$ qvZy)($ Tmb)$ RZJ) $ NF+)# K-)# G(# 5E(# 7HA(# (\\;(# ?{v;r(# a׌5D(f# ר1u#(M# ׽0W'7# +:'# 8)"' # U' '" u%'" ##f'" &3"K'" 7J#1'" PY '" `n &" vك!|&r" =ٜd&W" Zٵ L&A" /f&!" A&"  &! $!%! /B"%! G?S"%! X]m$%! mxځ'y%w! ړ'{`%b! ک+jJ%O! ڼ-U'%7! /G%"! 33$ ! !5$ A9$ d5<$ Z@^$ 9vD7$} Q۔G$[ gܵM#? (Ou#& FSg# ^YS# [Dt# (`7b# :d&B# Vi)# gn# ݁r"o #ݠx"V ,Eݶ|"9 ?k"{ ZV"v t0"q 8k "j UR!g -rB!a Dއ0!n\ eޡ !RW ~޸y!BR ]!+N B!G '!D # !> 3+ 8 K*D 4 ]Lb - up߁}w m( ߦcL J# L* . 3   0  O2 lL \o *sW;8lM UZ=p6qV Y. <eO$!Aj( ,c"0N/@35>[8Sz;z ^?gmDH-Gy+ALjWPU#wT?{AX)cj[>` Tb +5g Q0k h5Jm wNbs nxwl {{a nhS UV~A 5:y1 (u" q k5 iY9 d0\ e`Q~ 6q_k RZk 2W2R TO@ Om . L( fG9 PCO 3? j ;| x9. \4H; ?4cd "2|s _0M '25- 0R 1Ju {2$u {d2: [M2Q 722m "3~z  2` 47E 7T+1 7uB q<b DB#| wDE RMu `' 2_0 CD<7 _\C {WxN D1ZW ul7a !p Uz 0"e qEu/p diC ydz 0V^ ]-MM wNEz8 v:Op /(D  '    B<@  on_{w  D- g  > 6 " Dsl 2 b+ > 7> G P U Lm b .yy wl LP `v yp E tJ 0 #m#  a]  /!PG  ]AJ  o;I z l0 t T '8 , > 5m c*H FN d  %x~  G` - wWqC 8 Nh, = %/ H  O .44 T Vn_j Z HR _ & c J e 7!B n jJ r f_ u ?1c  s {K }R2 $v Ur r- o} bImKx zm6q oE "'u Zw_ J}b  }5d } Q5 { b x ,.y Y*x | G{y Cd\x ~0d_v =?t  m "f J\=[ lkFuL R)= 5'. u(i kw ; J T 5" r e{z %^H CI( i!+| 0,P W7-  GS 6 3] T gr| j I-b _>B @I' .[ k q F  03 $ lLx 8 :]W F [n, U Wk k &,X x P< oI `^  TR gR@g (1h _ %< W:{   5  )  ? J t [pv Wll //E" !)  "* : X2 y Gf16 v9r9 56< . .? q -tB Ca8~A +=E ' E P (C z p2inF ]@:C {& pB 9A ) a> H R; u ;i5 :2b1 X'(  hW^v} >*@   p >e V p &x v r7 M :  & [  D/ ! =Z JY F* k T~I  @fD I uT  /m ? 9V  ZMCB  .- DE 4&H U |=i e.DE <*U  Q l"gx 8Uz;| Y1` WVyE J+"-  ,3 jw!^ U>Pq :` 4xS~ "ngc N!H ti}5 OcE 92 4 6o !h A;\+ `V} {jRt &KJ` p,* , ^  )PJK B,& ] z |Ukx6 6dH Ev`Grq)[2U5Z5"kAD?b{`i%aa 2 Ah a1LEl41OS]K8 q; n -~i V zF!.+&C!F!75ޏr"*x/N"IQ"Nl&q})# V1# Aܴ8Q#~I[$\o$8 F-۩$x<(dG%_  %yc{%=&ڞ^; &A<YO&$q& S&k Zc9',- 'EM'mjaI^(shk( .׷L)rKY*x)%e) 8)KՇ(H*/FCr*Cv#U*X0v*PtuԚ1+}_iqh+EvW+ A ,OӒ/! N,߀I_ , #-?[ң a-v,nb -.!. ?߹3>$̨۟V$u3i$ۃ̋p$3}$}Om$3$M0$4$$M4$ڐ%%46%Aˮ m%4c%yʌ%%5%Vڿc%]5%y7 &5%8$#&5% (F&5&.w&?6:&ٱɺ1&R6L&j٢ɱ4&w6\&Eiɍ;&6&!BqA&6&!hG '6&DV;'-7&ط,eq'c7&}؆t'7&OV،'7'fأ(81'Sط>(78B'>׫Ƕ(~8Z'&_`Ǖ(8u'AHLj(8x'#ǀ(8'd )9'b9)/9'W*S)R9'֝E@)v9'jzBM)9'Yc8b)9'8/؃*9'q"؜%*:'V ؽ]**:',yկ*s:'=x *:' `0+:'$YR+:(x+ ;'}n؍+(;'dMׯ+G;(AԪ+d;'0ԕ,p;'ӈ9,;'^d,;'N0w,;'n>Z,;')؆,<'fد-<'8/c-J<'zҝ2$-p<'6҂CU-<']O؆.<'Y9Yj.<''~g.<' g p .<'*€?.%={'‡Y/.=s'˜{,/5=]'lеªثh/]=T'@М²/`=C'hМ/u=+'.v6/='_q/0='tG ٥g0=&5x%&0=&DE 1>&]|:1&>&_|1E>t&FΤ 1h>b&#Ζ61g>H&͏q22>,&sj٥^2>&Hl}2>& l_2>%6D$9 2>%@@d 3>%/\ڛ ;3>%: 3>n%P) 3 ?N%#x 4?!%S u4F?$gˬ( 4Y?$5˧Cv 4g?$Zʁp T5?$ g 5?c$hhG 5??$+Lۍ 5?!$RB !6?$(; B6?#.-3 }6?#_ Qs 6?#|8nܞ 6?#<  (7?M#Eu7@(#z܎7@"C+տ$8D@"ǧX\c8c@"y|ǟݰ8g@`"%,Lj9@."fnP9@"p`ޫ9@!>bP49@!!C`?:@!2i):@s!2ޣO:@G!0&:@!F-:@ )q:@ ]P];A {';Aj E㾱;-A0 NÿLA>NWV>AA~Up=>AL%>A'#b#?Ay r?AfX!?Bu@BYf˿ݽ_@0Bbƽb@IBjF*A`B漾~!uAjB_KAB&>fBBϽl.ZBBvPMBBR:>qBB|FCBP˼+\WCB!uㇼ!CB8PCBTS#DCr⦻DCZ&_ۼD*C!ϼ8EDC+ᇺIEkCB~dEmCbd幆ZFC!oXE FC8U$ FCMDR 7GCޥ&>!~GCke#v!GCIv9!GC"AHDݡ&S"sHDQ"HDӻ#"IBDVܸm#[IQD&d܁#I]DAX$:JDlۡh|$JDgNc+%JD+;%HKD%ڋ(*&KDIQ<&KD&LEd-ٲ&jLEB؇'LE[{'L*ETĺ-'$MEEԲP(DM=Eאh(M]E[f%(MvE)鱎&)@NwE֐x/)NE,%Sv*OEl°Hw*eOE7ev0*OE*X+%PEԷU+]PFKԖ~+PFe:깴I,P(F8йz,Q-Fiޮ۹,HQ-Fӈ/-QPFLW\-QLF- RZFe:˭.\RwF+yg.R~Ft.x .RFac0/YSFyhJ/SFD=4/SFګ,i0gTF^bJ0TG9o1TF{Y16UGJΡԸ1oU0G'=ظ1U(G J˸2UDG=v2VNGjǩ_2OVXG@͛2ViG[N_3V{G)zx3"WG >ͨp3`WG _[^w4WG d:4XGX ӧ=5]XG" k5XG T'$5XG  G6)YH ɴrU6iYHz xⷖ6Y H^ TLڷ6Y,H> %)ͷ 7Y8H ץR7CZJH Ȳu7TZKH bȌJ7ZYH )x8ZsHu ]8[jHG xĤ8p[H ci 9[H 2k8b9[H |]f98\H %ƩD :y\HU iC?:\H7 F6n:\H c.:]H &Ӣ:4]H ̢ ;;L]H ĉc_;]H U;]Hq dJ;]HK !<^ I ԡC<=^Iéz_8ITf>_JI j>_8Idƶ>2`GIf2>N`OIK ?f`?I10?`MI cw?`JIq8&?`HIX#K?`FIy@(aEIvӿĞ6@@aGIUžg@Qa9I-uö@aHI Kd@aCI+eɶ@a6I78AaHIݾ%N4Aa9IζbGAa7IŶ~jAb:It{ͶA#b.I_g؝ӶA'b*IFUٝ۶A9bI$A[bI AMb I&-BnbHHKBbHceBybHy'BbHnl^!BbHUL_6BbHB?R=BbH)(M@BbH :OBbH BUBbH?f"CbHټ*i-!CbHݼD~@0CbsH6YICbnH4nKCbWHPXCb5HnIϷbCb+HSX㷸sCb H=csCbG'o{CbGvw,CbGux;C{bGzOCobGc`(CybGmj3CWbGjCCWboGbSCNbhGjƝ^C,bCGk؝˸nC#b.Gt۸CbGyt CaFk)%nCaFWVJmCaFEmr[CaF7CCLaWF&žEC;a6F¼Ξѹ0Ca"Fټ'C`EۼC`E#C`EKDC`E_\"B`Ew,Bj`tE 4BI`SEAӟ@B`)EQKB_Dq/TwB_D}O`WBc_Dk5B6_iD𠯻t B^2D9A^C|'cA^CuF:AJ^Cm]ơhA$^CevA]jC_!eA]BCZF̼=A] CRӾ&Af]BL徨A?]BGF@\B@94@\bB:fk~@i\2B6ǣH@ \A0׿ ?@[A,xu?[[gA(LӤ?[ A$$T?Z@ v1.?kZ@d?2Z@>YR@B:Ŀ>Y)@fe>uY@S>$Y?S&>X? 6{=Xc? (=EX? pp=W> JD0=W> µ< W@> [9|.Ռ)1>).(` r)=-6ւF)+=-M@ãҨ(<<-_ׄҜ?(L<-j!ӌ';,a؋āte'7;Y,f ':,'{S&0:+,Ƅ8%z9L+> %8*vH$(8w*mN:$<7),G#6)Fɭְ#5)`?ݕ&׏i" 5(Hˏt!|4K(Ge!3'Y9L!R3'9̏9 2U'Y+H p2 '!1&zz}WD1`& 0&H%d0%9RЙڷ`/3%VqڞJ.$m nہ-I$W,#p]n;NI"p20)l nHOOC ]r$ ,  IxY $9 r(y e V Z) q c6  28u7  K-Bv &7 axoSH :a -v+7 $p *:Y @4Q# jT vY'  W ix9 N Bjb  QE k w5  %6  suE U7 T HTh cr k]fHN J PfV/jDw (l  -) 4 @ \ j% E|T `S >3 Tu  +" 7  W Q)~ }# Hr}; x Z[#  $%>n U_ ?$N mA u"em)6#Z/w;6 ]rO {[ trB VWK 0u. v L k5j@  >4Uj lw Ap>I8yB&sE #VQhYP vlav; iTEq)G;@wjZW'2*66[=/xv~FpF`z+9!U#Pu=!iWIDV U߼y {=&<!5J~!>$.!.qݞqR"i.'"ݸ9#kvQb#H^r#L܆_#$g=5$L=ۭ%= ,q% t[ڸl%9s&9 ?zd& [ބ}]'H!n`v6'!Ac(W"'*ׁ("U+)ݒ)#֩Ve)}#o32)#6 F)$$ աiV*$I ]۪|*$k ~<x*A% Yԃ/n+% 9b+ & &Ԧٿ),&j q,7' ӌ/0-' /O~-(+ >Ҡׯo-(q /xA.( mU.>) ZEш.) <8&/) .Z/'*= Шէ/*s (S}/* ["0+ &/0|+ BJF0+' Z 1-,Z ΘӉv1, |/B1*- aͶF2u-MR2-E3-ѝ2H.w̚~93.TYp3.e*3/$3Q/ ̗.4/LFk4/D}ЮP40`]ϐa4J0 ~bu"50'3U50p5D1 a3ʀ51KE%ΝE61r6z6R2*]}B62-7237#3x7d37gw̺73RQS̤%73g(-̋173d=%884MFH8S4NJ1L84g7]84/c850ʷh9j5go}yg95}#X{95^.946vơ :6p_ :6.kGD:6Gfɥv:7laȉ:)7~\l}:M7^KŔ[:7U*n>:7UO.:7X;7PM;18*Vĺ\;\8PWčǘ;8~UQ>l;8Z<H;8[%=J;™KJR=;x)Fi=;a9n=;D3{=;v*-=;!s"=;3u Ŀ={==])-d==~:3q==4 Q=>>2=#>*N=9>RF³=V>rW«=P>,^©n=i>JbŠK=x>\q<=o>rxˆ+=>tfu=>uNm=>j/T=>9^ Q=>ZJ>=>y(Dr$=>T2D=>m=>G<><?J%<?b3<?x4Er<(?SVV<$?k`L<*?})d|/@{,"o/@,G$Nӥ.@,r+3r.@,/D.@ -J!$.@-b .@C-!n.@g-KңX.@u-nuy1.@-A=.@- &-@- -@.CAќ- AM.|am- Au.{;m-A.NN- A.߾!4-A.8Ѷ-A.^ؾЊ--A./־g,(A:/վN,.AT/4Ѿ#,0A}/E̾|,:A/ \ƾf,6A/2y;Dе~,:A/dӹ Ћf,LA/ӹfG,?A 0Ӿ3/,QA60Ӥ,]Ad0ӫ+TAu0:Ԥxϱ+gA0h1ԓCς+kA0@Ԗ5e+oA0VԎH+tA0lԋ!+zA1u +A!1Ԅh+xA;1!ԁ^+AT1?qζG+Ai1VԁΚ5+Ay1zrst +A1iOS +A1uF2*A1e *A1 0c*A 2,B`*A&2L^Z͟*AL2tkT*AZ2|Mkw*Ap2UMl*A2Bo5a*A2D_$M*A2MV D*A2963*A2D,&*A2+B$*A2G9ͪ*A3a@̔)A 3u=|)A)3.?Z)A;387F)AJ3R?-)A^3^>)Ao3j1)A~3|A)A36tx)A3)1`l)A35@gd)A3A7T̵U)A3Sؚ'_@J30Oث'I@@3.\ÿ'7@03,^ʿ'/@%3'n޿'@3$p'@ 3s'@3 '?2{'?2 q'?2 :1A&>16#I&>1UCT&>1"`R^&>1,zge&y>11َq&h>t1?٦|&L>]1CΆ&6>>1uSΑ&>#1heΞ&=0\o ϩ&=0PP9϶h&=0BمlV&k=04٨;&==^0)»%& =-0&< 0 +&Û4%#ԏf*W!;-5*$!7H* 55V) 4]֝\l)= 4(52^YZ(z7ׯC''9Vk';I`&v>Q٭E&8?0&? .%Chjmx%|CڛL*%GE $J(q%i$LaY~$P,ܨ #)W#^h#Ml"fݪ!qK\|c!}m hbvJ .h@iobiu,Z'FNK4I:mAohf6f`$-% )6$j]?@8:m;$D1ifB(< lV.% aFm nnSt }8| ;s JM|g| YzV XK ^FR=k f{&  Km Oe \ Pb"f=P5Jr2McQ;Vr*%B&rv/ah=`W }p@N %-O N3!r >y B ~> 4; 4  Thw[5 o sc dkK ji ~* * Qm Q 5f -J  [- Q lB w L! W %2  S#F ( A7b  7t A   qg(^ 4 L  94 9tcZ  #&D+ }OH 3_ Or T, OjC eZ?r K O@T/} "30a  hX% ^) -/,C / z\ 3bzp 6/. o POYX }O"b 9 )_W ( !/ $g y c {;D GD r#Yd |2+ 4B> OpBK [` !Uh'  ߞz + ~A, \ wߋ!M mމMj! `l!! [D!6!) S ޞ޾""!d J0~a"! AS")" .O \)2.= L)(.% *).  ). (-% (-AL0 (-$cr> z(-*~^r U(-+sO +(-5ׇ8 (l-6ؠ! 'X-4&س 'A-;G '+-7^ '-70 e',8L I',5a) ',3{Ps &,/&oR &,/Vٔ5 &T,( U&(," &+"+ %+N7E %+vyuz o%x+ڙ` I%X+ںD %.+$ $++  $*V*$*Y^$*8x!1$r*Oۦ-#@*t$:y#*d AY#)BR4@#)܁`"[)9m"#)4u~e"(|Z9׋"(msךl!{(`9ޚץT!K(Ur״2o!(D;!';)!', \ '1Nߏ Y'K~߽j )'h " &8^&Cq.<s&BG#&Z%04Fn%R}ځYN%r~ښl  %]۩P$PMDۻ3$:Mc$*5$$2;#U{Xn#o&0Z#;\ #FS5"ShO"݅*"l4@ݠ!VXD޵M!=iG!!9B!u'q P)  &R &-8& ;cK{]#&^Xr-\hcp,C(ND(>b=?q33VO*x]:t{{df0 4P(s3t\,$JAd["?n% mum=dy*S]=:v,~-}X[6^(PG Sb Q*td >) eW7 Th` ?xH} R(db S8 *> &p* rb@ =W? '1v ~G3q phaks 2Nq) 7*Z $TG P/ \ o 8H  . :A"+_O7ZdPVwN jn0iXIoKvH}1jG6,$ 2 BV 7p|m J_R U#<- j2 |<}  (Ik OSWR }}a'$J Q,9 k+! ,g ,N .+) L)* _=( u"Q(~ Cc#i Wr"Z k"Kz 7tn ,fe  TX  =L -C  5  ) 0  B   \ ; u U km Up& #@^) )6P/ 0!>9 60= : &C @K  DS  HY . Nd C Qq V .Vw h ?Z T]nq e`e^ ubXL eF1q d>%g f3] e&O  cI  d@  b4/ `, ; a#J ])b [ 3r YC UnZ RVg NHx +L~0 8En ?Ca GAV P9D U8; \520 d/@ k,H q( ] z"o {z {s2 bhF TbW B[ f /R | }M  vG  cA  T<  O9%  >3+ ) 1.2 0 '+6 = &? P !I Z N i \ &{ |h < mn G a| ^ ~M p xC x q:  hl(  ad"  \Y  TJ  K<  H2  ;! / *( 5 !H -R ?[ Un `t$ m~z. {~p7 ti9 k_D YUM PMQ GF_ 18j (2u ,  r b V $F 39 ?4 G& X _ e  v z" #r! +g)( +\26 ,M?J 0>L_ /1Wk 0(c 0vm 3mt 2b | 2S 5zN 1tE 3k9 2d/ .\& $-N -(? 5#1 ;0 K? RR W)j e7t f B kyQ rm[ rec u]!r xL) }|D/ ~l8: SwF AtP (qa co0 `~ E zZ;_ lPXv _Oi TuK{ IxcH =fSD 5ZME 'D8B /&< ?  7  0," //M@ $Gxd r] Olr ,Pk , [ !L A 8 [+ m( C fX  Li 1& h? HV3 (q_!~ )_ N@1F 'a4& )? bGA Rg@ 0.I `?F IRG *k#M <Lu *SO] _zT: o\ ]L` '$i <;1v ZnSw un 7]vR Av: "r0 ka k}( viB De>m _T p^o!} g /Th0 uclU q3~M ix 3B@k \&e \[L /O*p |PE ABj ;7Zj5CHT"G HO~N54n &ED|~\VYq 0v@A*je\jf~w=hZQ*D,0;]+W4|+/M9u8'o6O@/Oh<'l)EPLMEf Y'U d  Na4 4. U;!3)c!Evޯ;M!dވ`"@nP"k}PP"=}# n# d!^#8kܳL'$X۝ec$oۃ<$m4d$SSK %@09R%#~H%8w% m&$A&T_ٜcc&mxل'kP'(ׯ=(a_֓T()yyr)SPP)j-=})Vd(=*9 *iB *  % +MFԜ+ e+rrE5!+!Wh!,7ޱ%",[EO",;"4-@݋Ҥ#-u0zT#-h0#(.@ܦ+6!/,87"Ӟ(P,7/"a5t,7Q"k)ȚJ,8w"xZ,H8"Ҩ^d-d8"{Fv\-8"!݇-8"r\ݕ-9#c&ܦ.r94#LaƳG.9]#5+Ɯ.9r#$[v.T:#р@ -/:#+# m/:#~9/:;$#ДV0;>$Fije/0;Y$'ĝvc0;o$w}ۋ0N<$mGϞ]ۚ0h<$`$ψUۦ0<$R@1ۺ.1<$; `1=$. 1;=%_Ρ1=0%] 2=D%"® 82=b%; 2J>%BͅhV 2>%JKl 3>%3ڇ \3?%l~̶ ڟ 3c?&XWٰ̕ 3}? &I(c 3?.&4 '4?G&# J4@M&ؿ l4D@l&tˤ 4v@&@sz 4@&+Pe! 4@&L; =5A&վ2L ^5 9[E](IƞN 9^E](5ƞ[ 9rEY(zp 9Ef(gׅ :E_(sVד -:E_(a?׮ O:Ed(D' x:E_(4 :E_(p :F[(A鹤 :!F^(:ṣ :FW(%๭! :2FS(2 :BFW(ƹ> ;8FI(ľJ ;MFI(ĭ_ +;PFF(İk :;TF7(ĩw >;YF5(|ħא ];^F)(iĜכ e;cF(^Ģ׭ i;XF(FĢ ;iF(3rĔ ;eF'#uħ ;YF'\Ĝ ;kF'Tė! ;^F'LĨ5;]F'Cğ<%;aF';ĥF4;WF'3ĩW:;TF'9İ`K;JF'&ķpZ;KF'(ĺ}`;:F{'/ѹr;-Fe'Ϲ؀;-FW'{)ṳ،; F?'m*؜;F$'\&ج;E'M.ع;E&B/,;E&349$;E&#/M;;E&8XM;E&=n`;E&5ss;E&HĊ ;fEp&Fġ;_EZ&Iħ;IEJ&\˺';'E,&^ߺ2;E&n=;D%} C{;D%<7Mc;D%dUYW;D%Ąv\?;kD}%īg);AD^%˻q$;.DD%s ; D.%};C%ڃ:C${5 ۈ:C$u([+ێ:C$p9qBۓ:~C$jOŗ[ۘ:UC$hbź}ۙ:3Cu$d漚۠p:CU$_۠W:B1$b@۟):B $^ŀ ܤ :gB#]ƫ/ܡ9!4vG7>\!oo7t>>!ɨl6=>!$d6 > Vb6= rC9^}6= oXWK6n= ɲS#65=q žK5 =T ÿC5<( Wf85~<ʠ,S59<>5;Dr 4;z\˕Ě4E;O H4:!/3:+y3k:7H̬;36:D^_39N-ƀ;39rYUƚ 39Wc͙ƾ2D9.sD29v {n28T%g.28͞KR1;89q?17z;Ȟ#M17LΡ067 ( 06w@ ^06;ϟG 0>6Sf /6eCʃ /5izhʩz _/5JИj -/K54Z . 5+@ .4lY. z.4ї; =.F4` -3C<̄ -3k5̩҇ F-J3DY ,2OTl ,2ӣ K 0,,2K% +1Z]p +1 ԠΉ B+>1f#Ϋ *0DD10 *0.Zgj *x0qը 4*00_ )//77F )/w|U& \)Q/{ ).u'*ћ (.V;ׇѽ H(C.,mx '-ZQ P |'-ج.& ' -T &,udm i&},<٦ӊ $&8,h` ӥ %+OW9Լm %+8mS P%r+"ں* $+) $*k=q$*,ے9$=*a!V#)u;oc\#)ܛ֒)"/)]Wױz"(B&\ "w($W޶!(XP!']3 !'ߝ.  8' uCh &5#T- &Q^b}&Hyg6&نFM%q&ښ%Z7zڱ[%F6@%1d$b}>dM$ #,+"#K60H#I^#FV:"\f@~"sK"6#{"~\g ފl!oOޕY!gޡ4\!WK޲!H߿  8Rb{ %e_e Z)7fY vz c{>'im|aVMYC+ H6_ (R '/ O ] f3| ndi{ : JD 0 3 Rq. s'@Z >FV n2l~ am` wsA; 3` O# E NC 8*t] y.E: Z)Y 3v|>de2Oh2Cy&H >I[$[yUz6"O`KBe; 2tb2!\p\ ^5gPKC!''1I8&m@M~zoMl $;e8&+ Xg| ~,kB W:s 4 da H0l 5DM ^ |y 'c BQ@  {} n p: ?  51% RiO3{ pD; _ Tc 1  _P  1k< `.y' ~Gu yd O j# \ Z = M 65I JKh ] * W w1| ERe ZoPa 95 [) D'  ,UE wky MR  , I$".`0Shof@J#>O_M|snBj ns'|]coCMRH`<?.M3Y$l-,E'`6`1z7q )' ?qfyosr$31*m=l+5x%gAnUMd}S%-OYm` a`Sc@0gp@ll*.?pRt!.N{ta+ z p^rQpzfN{ ^O*VVkN=V,I !FfkBvBr@AJ?|;RaR8&6OY0-E'*o#GMfs 7` U.  A C5  }9f1  r Q^ E  WT ?#  H' ;M .B  &7 V 1}@ K J~ s C0X , c` x k#Um 4 zG= #| }P^ t* F nz`N jh bA,G Zj#Tr;jK^1= 18}$Cg-E OlT'5}#egz-(39EhA|LUn2pkVdaKznB*{ 6{)iAFG[q`CL -߸g*!rcb!qj"4eZݨ"tu%9#z7# N E$8 ۰Ow$uD^b$Ksa%q%@wّW&]Y<&KkS'63PY؞(.(G$)>ߋ֓(x )K+D W*zUA!*$շf!5+u,ސd "+y0:I"+n"T,"W0eӽ#,cD҂F#1-4ܭM#-'$8..ۍѰ ~$.mO-y$$"/ڀE{%/DϾd%M0Zuυ{^&0vk)&g1TYI'14BͲ'32k-H؛q'27O(3 ~(F3 Tׅ(3F ˗39)+4 ֿmE|)h4 U\>\)4 |N*`51!wqʿޕ*5\!a%~ޱ+R6!:j'+6!.+I7+"Ӏȴ[,7q"^p5,E8"Ҍ9I-8"Q_l-8#]y-[9A#{҃Ƭ܍.9a#kWƖܞH.9#W]ܸ.H:#:;ќ..:#(Z%/:$/<;A$FВĮ/;d$;Ć5"0;$N\0f<$(X}1<%uڙE1=(%Wΰڼ1=Y%53Š2=%l?2>%ͷR 2|>%RY " 2>%.2 3>%D 234?"&̪b 3y?>&^iq 3?U&<7و 3?w&fz٫ J4G@&J˖Y z4@&1ikA 4@&  (5,A&ʳ$ c5^A'{ʆ@ 5A$'-,b 5AN'~ 56&BZ'z؍ _6ZBn'fɈت 6B'HDUq 6B'<#.d 6B')R $7C' ͼA W7HC'ȯ3 l7WC'vȑ,( 7C'1HD 7C' 0 ] 8C'y H8 D(s»נ 8LD(RbǤ׺ 8qD(<9y 8D"(O 9D((& ;9D-( S9D2(9 9$E7(iкF 92E<(aѺW 9;E6(5ƭn 9gE@(ƒׂ 9iE=(vƔד :|E4(br׮ *:E9(Cd M:E,(,W b:E$(G :E(b7! :E (L(5 :E(;*V :E'o :E' ؀ :E'v&ؖ ;E'_*ت (;F'N5ظ 2;E'AG @;F',N N;E'` Y;E' qY;E's;El'0w;EU',Kv;E4'|>n;E'oA؄;E&pvbٞ;E&Sek:ٹ;E&:bvM;{E&)`ďj;nE&]Ė;bEu&[ĩ;NE^&Yķ;AEH&eͺ%;&E*&Z8;E&bB;D%p!\;D%i.Hq;D%{Rkڅ};D{%năڢy;mDD%Qĥڽj;DD%7ջ_;D$!1P;C$(]D;C$M=;Cl$j#&;CF$ė<$;[C $ĭD;DC$Լ R:C#=i:B#]s:B#-Q܄:B\#q=ńܚ:cB%#[ZŻܯ:&B"Hs.~:A"3?vV:Ag"ŋ=:UA)"Ⱦ:A!:#9@!Ww99@r!0ƃB9]@E!SƿX9@!gf9? '2pj9? ej߁P9?w wƞߑ-9E?I hߞ9? \8>H2oW8k>2TǺ8">D& Z8= |F+8V=7=N#,*7<Tȑ4D7K<oPk758Vb]5i8j 58347?ˢs14&7Z Cc46_Q94z6˯R[4!6ʞn35EARv35p̗}r345xa@34jD˚34Ie ͜2-4QL?23Bq̏U2X3H422 h\1U2p kͽs11U 01p1΀00P@C/00 oϑ4r0A0gF00/nUЮR0/8ДU/>/L1e/.U}o`/.gХѸx)//.! .-tDхo.C-ieZ.,Zi%-I,I0ԟ-+/5yzc-O+.Y -*l~,L* Y,)8VJ,){Ӧ֮,/)0 +( =@'+( zԩ{)b+$(^ 4.+' Y;*r' 8dH*&i JX]*& յ] *& #Lڋp)i%5 ~\)$ ~OS )m$y p"(# ]rY$l(x# V׶g3( #s Kݶ'" ?1؃ 'T"3`E'"- ވH'!I!ؕ 'C! & KBl&x ] @&5)%/ڱ%7K.A%of6$m7DB$u2OF$H] $Xܚd#5So#ch~^#|ܦ*#-B{ "j5o7"mgjݻry"f^'+"Pݦ)!&LCw!YDޏ8!#<'L 2Kߙ -8.5 &ߠc2x2AmLqz:4j}K3S". [Pl xn\:W1%y( cx b$q*\ XEN| RCSw0e-x' oG A-$ 9V tr [ m kMX ^ -H~ /K ' 1  , gb k 2R  B8 ]:L +C3 *G;h Om7 pV\ 0 f  wVY? q nVI Xk Fl(> 1 $ Rg` F =q t & @JK (8 Oq6y hQH  ]X {vx%}4_Qb`@<gZ/0xiYb0A"GX `LK lwT WWl& #=S IM8 } "e b% $(M 8mlhk mb d98S @(? Q* W< | G< de1%1H`s;YFzbf*?}x2|1p1jpc_fnJV0?m#a.QBJ/ xm2C -p jI %1F +|NJ 8pm <Qf >#? J $N JNA OD WRSL Y ] +Rc ` r eE V/ e &G? g h k ?n fP <5 h h g/9b -^ob vM^K IZ ZU P?GP }KU Jl@ /o; ezF3d '( Q#>W)*Va Y"g0? rMj:P-.+4mr:xgJHH[U skt Xe} zV iFk Xs1 +KAw S:W0 + g^  PH D > U& A0 }-IqE G[;5 v{*" CdFXoLuz0+A  ,V vf'?/)%Q>&q|hnTrr(Wh?6<s CV>+>Z4O=1iWO2>T-@lo v(o8cMU~*^AOTv+{ ?`O Ky c63W ~ S DoG  3/V 1M5 X*\ w} eu#c *f< USV ?v ` -7 k m"h N u/ 1 ?   A N ) g6 / ]:W <  "Nj P YVI b& ]a m # z '(  F` > pb f dkt y =sj ` D[ I ,\/ 1 XY  R . XU L 4UB i Xn' ZWMc H]z= i!a @] "ec#8c83EiKKWifmln~zj{saQq|}?(Zu$QcM!O:3?B9PX,1rw||&ce$OT5? +#(;F&Z<u[&"u/f}3<B[@I6TVc]w:g~[6rtqIsdc|Q`yJN75m{%Rv>v(u:v0fvO$W{sEsn~E6x!diow?&lC Ed! g^%WcF1PGhDI(_=Rt5-5(ik#yG_ I, F  .`2.DoLEmZp!t"hR.qSbY^:C*O(3*U0  [d". GC NdO!fmj9gi<FV *j3i #JOeC0VHbQZF%Jf)6|Fwx oh/ 0TTe h 5Tg  @ 7 { E t? [ @W_ | o(w  m*E F O{ c =  !!t j Eg {7 c 3 >+X  Q@7 ] W ? *z t>c q PUh}  0@]@ _   05 >a - $w s qXSQ W"  )7 !N:  :1 Mk!H8_rT0&Rnu@ZNGi2\U'/,E Q|"CmR4Quz)wW3GB6% tct5X>.U_u k]x^QON/,C# NHVxs f?71 /Y!C(JU2kZk3h7^>>:R#46 ,?u Zgan PZP Yj  2 V) 1 d q %[r1   PMV )i| $U  h C 4 T_ ` 5Ej e%  @ u ^ Qa-  I6 0E e { )\ 3 fw  K]8 4 0? |z Qr  KM ! $)  S7p " ~F B @[ _s qtn3 8Q}j zp'V dp7P!a b@t|( =,)y]$gqhz.6H'c|k!46 B",MPKVLn?sbQDm$ 'ul`H9x%epP{e T9*Y~W)Qi`H!+ ?=Nk9}4h=4/,3a*ay(o<$35z!p%Ph8 fquB?^We/ f߅=l _<|  i! "BB!7%ީ!s)Y~'!,._;!0/k+"6|h":e":@@Pݮ"uHj ,#O;/^#Wve#&bܴ $ikPۅO$s(J$<{"$s>%8ڱjVI%k~]%s^VU%gE6L%C?&)5;&8ټ*n&^k~&2F?&![$'n'Jfoؠ'w)J4o'803)(Ld(X~(;eiײ/(iv*}A(axN(Dja-) YtS)Ls)vx>)P`E֔))}Fr)=C** o*y*<'\կ*f=}-*OO6+]:D6+m Qc+ z]u+oa+9_԰\l+e?ԑL{+z&x@y+R,,l,1,i B, ^r,1 MtӴ,_ )G_Ӕ,u ;<>w߻, P3Eߦ, a(2ߘ - m&ߊ$- !w;-!lM-(!_X-C!ұLy-]!}җ@-r!{҅2-! \h-! CH-!<:-! -" ."0.+"@ݵ(.M"TѬݥ=.["`ћݚE.o"mх݊S."r|g."crb."Xcv."=U."3J." x)=."h +."f."].#W.&# J.3#+J.C#&-DѶ.R#316Ѧ.^#>4єܯ.w#WF.фܤ.|#aK7чܚ.~#kT.w܍.#y\1l܂.#a2oz.#q5bl.#v9^`.#;[Xs.#KXJh.#JV?\.#TR5K.#dW*@.#bN2.#pO(.#wT.#|J~.#Qv.#Rj.#Q^.#XV.#-[?.##]"NGKI"}q\/d"nݰs,"8! u!!\,iYs!BNޘ1!F+k L4W ߆"6: Z;@[#bu]="PoZ Tu=Ek6h|4pL:l/8Z"{s9,i=S%bFqzo^$kV: 3%]}*Aa{_Tz0faP1>st%q_I1G 6#2T U44~.k3gTAoKr|(V#tg ;@>- %\~Z Gr z\n 2+<$ Jd <\. ~vX w3Q VX(< 9zwsU ]Cq H, N; ovb w@N& _YUFyFv$_bKF+'ID1  {GaYkwC$"`aqjg 'y  , F 2s') uD_D 1w^j 4q& sb# l sH Q &^ 9 E  M /Rq {(<& MD CT%\  m  NI' s D d gkV T 96z ? s#- / _P]  @  J0 9 -]M tAH{ #q\8 Lq> M n W  a )H , O . T @ [X e 4 3  % fm)  +P] 8 PV !! %U0[ HzE xoY^ JhH G&z |9 pG /cvM TVm pKBh B$@n 7M++1LC"yugc$1 C 8f~aRQ%M51 = UG:(`OYD3Ve`]Hxb5'aimv=pW'u3)~a~0,x]`Do2rg:v"^YMV6wROlHBWD*:0> Q:% *b7? Ls2zb ~.u`~ *vVS $W'1 +   J6 8 \c Y/ sj <[ I$H _ 7 `! L4 1I  i %#} 4|' =MX+ nf8/ }!dx3 .Y9 9<8 )AW 6Ey h yF erI )QRJ C75K N) M ^ L rN %tN 3eP0 [GQG ~{6R\ Y#Uy y*U  ^W IZ %6/Y EIZ \XZ njYzi~ZbuY&EeZ:.SYD%N[S8\f&\x_3o`PTbmCe"4uf2UhAGiI;kT mbnb q%pr2 {t=|}xG)nz[<h}gL]sZ~RwznDwew=sQ^3oDL&m:H'h-4e!)b!^ [ VSN%" J*%F;8AGH >PK9]](4if.0rn++xw2&2"w}2u{3iu4`j5^n0Sc6M\4G_0@U 6:R 14O01L1'I-$E ,"I&'A+'C0 H7 A< GA IGHK NNQR WTX W`Z f] daod p&ir'l|3q~7u=xwH|qL}fT~`#[R.d|D6k{=Aqy+J}x"Sw~[w r`ymixgl z[s|V|"{M)|zE8{m<Iwb3TtR,knA}f,z^dX RR?L/K"-G8 DA'EO1A[!;>i0A;xFO4}XT+gp^"Rj3koOz8 {.q&Aj*Ta5h,Y;y8S?MpGG`XBPsG9W2m.bQ+u 7 t AY lA  50_ Y7 t  g O"0 9-C $7Y' H{*w X4` c3:; ~X?s uE^ {-I@ PgO} (PP V 77[ U*X[ iItf ~~shsy \l_] DwT? ,y8  } yIF t) md uE 5 Zqm y*p 7It n"wo A4r! psG bl] C<n xjrk YQh >)f 4f #Pe Hqzb> SOkm }(m Mo R ~ R?H {~nz )rb< ul.q hE c< ?]W >ZZy m{Ymqr M@9P J 1 F7a3{t7-r:b4LNH;% }^B% . I^:7i$Brr_U=FD\g|&b5y;~e-~`Xf;qT#l$CApS([s   6fcckh-]F?N1AhtjT {A& .u @U[ UqPg |=_%[  "0 c _ u' < F vkb `nj Y x+r (  T^ YI!  ))A R I   `h D m  RP 5C 4 G D g^ x 4 ,k.  UO8 f bd [ {?   8} P Wj #y n A9 Y de} <}LQw e:w[ 9 Z 4L "IR@7i0WVU7g\ -wB U 2߉ !4q!pV!O74ޔn!R@@"q\}"Ilq"O42݈T" B9C# $o#h>#j ga($* d$Jki$kq=^}3%^%R>!%r^S8&&mu&n&=c#١'}4Ck2'D7=c'[o '+r+ػ 'Zؒq4 #(߫>UZ (`< (&r׺# )sP߾X p)b )(!*gClB!f*ak"i!*s6y!*+uպo!++kLޯt\!i+;ގMP!+!Z#?!+ +",<Ӹ&"4,^ݬӂ >"{,b2k","-.rҽ"D-nJC݊l"-d5%"-zz#".7ܫѠa;#.eaPO#.EA@i#..#"/k!#B/8Wܪи#n/bFs~#/!>Q#/-#0 $>0( 7ۛϻ7$0_ Hkω߯D$0 ]9Sߖl$0 w~$=1!n۴j$d1@!SyΡU$1!6.X?$1! 91$ 2! #$=2"ڬ%k24"ڂ *%2O"f͞5%2z" 8rV%2"L^%3"$-p%"3"6ں%e3 #Hnڈܰ%3E#X^o̮ܞ%3l#lH.p܈%3#3:t%4#!c%@4#ڦN%o46${˽>&4P$Zˡ3&4p$B}%)&4$]:&4$F:&5$2O&,5$پ X&L5% ٳ`&T5%ٙk&~58%'pʲv&5[%6_ʠ~&5l%DBʀڲ&5%Yz#Sڝ&5%ll<ڍ&6%{q|&6%di&>6&[ٶ^&L6&&`ٶS&T64&UٙɽF&v6S&Sنɥ=&v6]&Rوɣ4&6f&Ppɉ'&6&Ogu&6&N_r&6&WSW&6&RHG&6&Z>8&6&$g?#&6&;f*ٽ&6&Kt(ح&6']|+ؙ&6'p؈y&6/'~|s&6.'ok&6A'ɵ`c&6N'ɶW_&6K'ɭLO&6\'ɞ4wwXd/k~!"!N|LU_  ,ILp(!^N)d(6<Z>C,uN o+` G rt pjO .nT .ST' ;P E% 4 >4 ^3h zm#v rA9U 2  F> 7T$ Vvj p { Y@}! fC " JdTh |1p D2J @P#+ = UG` $.| z;T_ dR RCIn 7w $(5^  kvG ~p5 PB2  0X  Tmt s { B M6  #M0]  ao k2 w?~ " :^o  &lz` s vaO 0 SC Z =6 0 "P( # ^ K, & Y \ L% j  N =2 {7g %~A4 c,r q3, F6UN ';~g V?< @7 D&Y D$h |fDI NFFl| DH BZ5 @f @};. :6b> 1z \ a-L) $  r ;I.xkS>l GcDs C|p ){U 7 0,) T`a5 vzH m0<T M*` )pPt su| Hx Gn: bR0 YcQ K|E v^<o d<1 OX" 3 G v% mg' +w#@ H9$O OY k f@  Yyve 8h rXS c1B* Y4L J|2 <v O 2Wx  $*k - < ? > Z  rD ~ tww Ms_" %CA-  &7 >7$ G]T  N|z & y}T 1 ^\[ L ;-a d f q l + `p3W KtO| o/wn |; y  X {! ?|.< }c` ~ ~t t% Jf@ *N~U Bg %~" t|@ c{[Qv16jpN'Lji,`^V BM.'C/W7?w ~0Le)W=GgT/pexu v^qJ2h,S'b c6_zI\uBcZ_XuYLuZ4wlX ]XWJNX1:W,X !Y0[>+^C6bST/k]nHse~\syo~PpjxLw >m 4m)$d=+^I:_ ULXog UxxT'Si`>TU@SUD(n],_b6eIXn)oq4vZ< yAQ(}!b8~gJw{ e|p4 zs{kG f`^n T|8R C^C 77/ ,$ [: gb 5 *]  7F, I= EYC ]dL& |wmXP Hpci +\j ]Av &0% Ry rRI 2_ SYl CtO?w @^U ;4?+ 3!Z + B"u `U ;*M Y( s|2,Nll~x)W6! GV <Zeqm/ <P  /W )Y" Lu{ iQ _S( 4W  J F[{k kv7+ . Y9 p9o U, Cd xBh J yw )"O ;a&w o/; *6h c@1x zJ`; R G'a}k[W_w) $$ w* RSm\ fav t)YR ?M )[E L%9 [.8J -%Wy _ 3_ % z/mo a# `> `- >^C7 LO?[ qf[sGu1z!y{L_nH6M_ ZV.E$R}6WI&%bYT3|0 /'^Uq0\FM6cS-icpJu9yV2>it}r]XZI)J2:H=$"+VC tNir*5 V> pWVFwkiq|:z]`xh402X^IJ7hp %C ;VD9 _F @Y88yTV9jHbp>g[n[0O:H7 #% V[ ߑ5  ndP  !%{  { .' $cߺ l] 9>fy  N3  c!K* |ބwG! .[_u! ~H!<  _ޠ1! U +Fߊ! [ ! ("I! ݔ5"!, sH"!L +Aޙf"! ?W"" Lq3"F" ^]ݝ""&t=Wݶ""b݅m"# GU#C#܏87##)Bܹ!K##d~ h#$9 #d$i܃ #$*Vc #$>?=#ۡ #${Q&r #%_W #C%qܢ $w%qs $%Ka $$%J"ڗK @$&`3 W$9&۴1 ^$Z&ۈ {$&*x<ٴ $&g(lك $&AYS $?']Gۤ $l'q4ۅ $' ,_q $'S5ؕ^ $'y zN $' Y= $(.' %F(ڪ  %_(ڛ %x() k׼ *%(^"B׎ -%(7/p 5%(T8 <%)p G%4)ڻk I%W)0ڕֵP O%{)cs֐: \%)}Zt) W%)GQ c%)!2 j%) e%) o%*' p%)*.6 p%/*>Hղ p%M*c`ڦՉ o%_*tڛv n%n*ډXg b%*v1L c%*b5 [%*X P%*I S%*+4 I%*>6պ E%*M'#ե C%*h7Ց <%*sBՋ 8%*~S u .%*dc ,%*r^ %*Ip %*;[ %*0G $*!- $*-  $*F$* Z"$* &n$*6+z$*F0h$*#Y4X$*+f>N$*)sC7$*2Qr($*5Vd$*8gS#*:z;#*=-܆(#k*>Oܥ#M*9sܽx#7*=T#*:/3#)4H  #)8`(")2p9")0;Qu")/Sge")*itX"~)(ݑFk"b)!ݥ5O"R)ݽ'1"2) ")  !(4'!('`Q!(Dކ J!c(]޳1!:(t@ (4Of 'X2\U '~VgEm '߁x0H r'ߚ؁$) U'y߽؏ .'gآ'Y8 ٭&JZ2&4(eR|& @"I&U&n?#%cBg]%[Q@%|6$uE#ۗ $`tS۪v$IB]$- -$$(' #iSC}VU^5 /rwd Zjo CGH t+ 5r | K 2 3 3d$k  PmY X w7v P H_L * H > 1+  }JCi  e) R  Q $Z; . 8= N R xb`Uxqq \ ^ )=0v   ;: -u> i V0 9 tKX  f4 E9G 10#H3mN;7bB(TCP9shF+W rX 3S .Px jT*a i* I6GI O*k 5 ~ ? ZH t Ap  :! r  ^f S t%4  -[g k ~_: [ Z|  ( ' 1  ;F^ j Z] O |P~t A &A^  UH 2 -< (u tV ^ ; t  r/ 5K 8l)1s BH ZF 5Wnx g*k -R h^l}@&U/}JmdJ!T Q# z/0a:qAm`N>~D[m&l9.p| {~ ;2p=-]LgPT?OB&2 ):CP_{X]b+ H+  zM qnA7>h/}u$UkG+)#2U2e7} W<<5@S;iD4_FgH<1+KFKc0 Le @L`ߴ \KJ\ߒ Jg!H?"8!FOm!Af!-<a!޿!O88ݦ*"o2wr",|S7"(VCT""&!{"p #Y1#@\#)#?mܹ#NNܩ>#g܈d$v&$dd4\$3@D$c2Q $7_0$ ob %z~+%zD%pQp%)c0%2X!y%6HR%G93ڴ-%L-(ڵJ%P٦o&b ٛ)&d`ٚH&m@ً&k&{ل;&~f}K&PvaD&(psf&ku&w{ m 'cXd'VIe"'H4i<'5aK'&gW'hh'f;y'}lN'tn*a'dtD'nNuU'aN}h'}C:؄'}x/,؄'vj!/ؐ'lZ ؔ'kGؚ '`;إ'X-ث!'Oض3'D ؿ5';I'*"X' 3\' Ko' b{'" u'v&6'ij(D'V]1W'HY4f'2P>y' C?؉'qFKؘ'\9Uد 'H1Wؾ'93j,'(rC'$~Ww'"jf'<U'pYA']u1'~Iؐ'a0ث'J!ؿ'6 &  &  !& 5,&@1=& TFK& gc[&~~ou&sٛ}^&U|ٺ<&3h*&V.&J>%8E/A%*MBX%X^r%~]uڐ%fgڣi%Qmڼ S%6y6%!y% )i%*5V$8M@I$XkG/$ەR]$Vۼ\8$5c $&m#?5'v#SYC|#cyct#x{܁~Q#rpܚq7#YkܵZ#:bG"["4"VI"O{:q"JZC"F2݁ "hBWް!=?~Jr!<|Qj!:&(0!5J!2g 07߉ e*4aߩ K(I}m 0$e< !q  U.D1 ej! Ka%54+nz 0VQ6-Lw_J+`AA Y $ [&0| =3 @AQ c+gL v{aq} G Dm H- \  \ L ;1 @ f / 4$ G R^  jS  =X  |1 k b t * .  MG;  y`Htw ] T<   `  ?5i  zkt` w M~% L e%t "fj m.?zd V!HZ VS &.M Wuh F :^ B $[ > za$ : 3 7 s>n 3 kpI{ 1 !CN ,  + #  ' @L # fJQ % wVw ! 5M ! B % 'H & T1 , )jGt 3 I? ;  @ S$  I CMb Q g$. R ] [ '67 a Rg b oyMl  >r ?x >a 9 uJ] u gr7 Z2  rE] D =0 a$] ` x[  ;= >   l q+ [?3 '!i? E&Q ; e` a &~vn `GvR l10  W Z 4@ '%J D 8c,nKmkF9UX<q="qVp}xaOlG' ).8; r\UemD/sRC Wt o7lA N5,* %? d j 4$ CE) 'aZ 2o( @ca Q[ ]H_ i*.k ym/ :v5\ if> 5\ UWR /HX =^ a54 Y7.P %|x(/hQT@!Th 2K 8:ak*xY_+"U@,{fQ~Ex!cV`(bfK<1!G d8rB[rc*:o+H;[e~%FhS S) c+o8@x;cS~hrsU~jg7{_F a MO5C@W3*QV m.8$:&^-RU7ckLT&]m& b]ߖ4 sC߇EZ |.߁au !~x cXo 91e !`- YM4*!PiXC!Qj!hVzJ!>RE!1G)!A` "@6,"b>IB"B=ja" ="tz<"^j@B">C>e"%7B" j I";L. #WN #at.<#pmmX#C|zo##^܅#s$oܔ%#gTܜA#_Oܧ`4#Q5ܵc#Ij"ܻx#?Sz#15V$& 2  $ $ I ! $$v M 3$}* e 9$OH E$I߰d V$-ߪz* T$wߧۘ^ !e$Zޒ۰ 8!p$Gdޓ S!n$2Eދ t!|$| !$ ` !$My. !$/w,\ !$p?t !$}sV "$Mty 9"$x"oە J"$[|۸ h"$3}U "$ d݀ "x$fKݎ- "r$9+ݏV "n$ݖx "f$|ܛے( #c$`ܡ۲V &#Z$=ܧy @#Z$&ܩ D#P$`ܷ `#F$2ܹ& v#D$? |#2$wg%#'$[ۓR#$ZPۼy#$/p=##8('##6T##K܅;$#^eܽv$#0wr($#]ۆ0$n# .ۛ4J$a# ۥSM$Q# ۻt"Y$:#v ܣLk$*#I op$#& {$" ]%$" 'v3[$" mQ݋$"U l|K$m" \ۦ$K" qZG$#" CZ݊$!V J$!' M4$$! HUM$! @rSr$! Bێv$d!x f?۪ޡ$D!A @@$ ! <$! C2$ HEyA$ n Gn߬]${ 7 Xۣ$> _^<$ 5g}$eyN$!ۉ,{$]ۺ?No$3kgg$ yY$<f=T$R]F$>ۏ66$Wۿk0$1$O( $\E#ܕQ^#L1#:mO(#Mki.#w3ܫpl#.gR#'*B#Z $&#ܚbE#NP#*e c"+!/"z8^!"jRݑS"MSo"F<^" (_;"zݶd "r !6*N !Wޣ8<!5zwRy!rZX!@^p9!ޜ!N}<! o m r`/B @QLt pHl߲ { $9RN (J' ^%ߘ31aMWO7B<tC"hF}* hm3C(6dn<2k;F7_C86J?pNxV I>-SL-JBMiHx< F5MDAxE xH??kCh|@GL": "Z; 5\|4 qe.{< ;&6 B &@@ x~Z c Y 3 / )Y  4UL J @i P N  RWC  8cmK } o ?N ~" z  ? mIKa W @F5] ,?$;   Q3-  = CS \w e<su ,Z j;4b Om ;Q (J  H4 KwD f;d =^ x/Q k\ <@%9 #?M  - <6\ |*&. wi]> Qo~T /0G_ "j "g@ yz@l E|sb  6_4 V P, ,X Dp  j3'7  #a F N V D  ; O  LG wZx!z w"Y[ N*+ / F,2 ;a7H {y;p?)?? @H*kFud>HBGB;(L6QJ;r|JlhpJw$;GU!E-j'B rQA AFr< t.7_ 5~4) ` , 9)S&  [ QX ", J2  ZxWr &} 9 k H G r w02 1#m z *$- R 6`R  tB %fNJ =\H U k &{#H ~ ^Hs o ~v ] ./B P $  B Ug 0 u- $ cL=  8a   E~ xMu m[% V 3; NH bK) 9|] y ;: f q( M JCw 6 j  $ :I  " [N1 4 tD o5"` /KWw \ ]guW ~  A i M&K Q !4 -n; s5 T 2 } Vp!;  \5l  EI/  A+bn  }s  ] . n n X ~& .G T[ B/ ~  h >E } v   \L#q  i*<  * PI  iA & J} @x n Rf A0 kO _? {.. hlf 1|O YC *-> *~3i;h;zN:1e/]w_-yydmGuY[<=M1'<X4,{QvtQr*!G6$ J!A%e0qZu;RaZJ2Wa()nZh{z/jZ;xL5Um& gd #s[ ASoG oJ\\ CkL{ ;o92 4L  /. /) m9&3 O"XS l&x vf _U 1I= V(( w  j  ?!  ,3 & N Gg .e } Nw xw {\pM AG4 0% $ ) 20, GB1* na73 {o:}@ ~>\pO GEX\ L1Mf R+s a j{ 1xr~ T?bn xa\~` |SguN IAN= E3:2 ?'% ; 7 7 !, 5 3B2 BT(5 Or?4 kT4b zh9H ;f#n @NT CD= (I*! RN c R z Yt . ^^ ; dN N l5 %j q 5y z } 6 by H En V> -d ZO U mx sG y' ^< = v@- b k!  ^z  Yb  PC 4 D3 E F U : t (1  33y 5 D(X Y U#< s d.  z Xz  3g  S 7 < S! * k7  {P ~ n a  Tq  I[  6+9  F#$  Z  u  - g "D J ;p y) R \ f %9 u )}  <-f Q8a 1m;K TD:r hJ8\ }S$o? \R( cA r"{=m1_`/ZfQB}uG?EV!2Y."g h' xF-^~;tv}Z&o^r/eGBbm+RZM dN0(zQ}RDe z;wP:=T=S1,$z,{(l$N;9P%(j9Hh[Q"o.< mWWg%8PhtW{ ?Y)"1<T# i&/}#y*C.f6`.ML}1y9W<`#c?>{ J#SvH`a8ilQUvEhu5xHt'Z,oE_)WO'@ ;8 %Y*;mNg lI% n+* R1 8.82G>Sa?vtwI2]qKDEbKY&PSqAQy3SbW0NUH?Vf&U'hW@GS^P.yxQF\J]<AIvd&HouA_VAK<<!@&862 2Q-b)7}tWXzv:'T:'Q!a ?q4f'W4voq=mTJ`d4VVK _O6 oD&z: A3p'^)`MiOkH<\(3#L ')x"x1J1Y7bC8?WqEd\IvFN0'nVR\ZlJ`U1j?3q_z e@#u=i7mRc Ui[ /9{V {RQ fr%L S?Iq BZFV .@; p>$ W 9 / 1 , 2, K5L% tgju T Wr 2 -W > )0 6U Qv c c z3x >I_ "[I t) }= gb M!' X/)S '0uz 5U <G02 AhE CX eFr CH% *uI7 ^KQ HNj( 5PDs SlO |[1 Y a 0 h8 t0S {SBi wowuyo pUX] l?:J g"5 b & _ ,\ 2QU GkQ a*Ka A?k: R7L f+& - w U f ;|n P dE > n( / U  6  (#!  ,8  2X =v$ B60b KRB; [ySv f`W u s) Nn u r_{ d 9OQ T d=. F 4r 9 *U , 6  3#  K   k # n 9P _%) ./l ?  M5 aX }z1yy Ci[ `F/" }%w#  [' :8+ 6tu0 TO4 ws9 /Q@ C8@ >WH epM  szN  TeV @ ,P[ ] @` o )g +Tp X7w {k  3z. 5 Pn Y fh D[ho pPC] L-`L @86 9'  3 9 ) a =  w V{ z)Tl B,A U  m = 7j- l fT5 \W:G (#$S \ h ) 5t H X| ^ m$ 7smU GfN; Ua2 iO +}?z 3Q6f Z~!dM V39 5%   ? ' 4[ 2 T| mA { &uMP  0]6V  <@h  Mw  X~ < ey =f wc h W`s  Eb9a  /)L  = 4 - ?f  i e"  iF.  B D   M   [ $ %o 2L 1z If ; j Hm|d  XZV<  eK4  s: + !r =M f as vU  [OG ?3=& $0: %GR%.aKRohq{plpLC!_+++W  :C.-G2KJR)ff_j dirUZz5<%zu%l1 e>*aA:-YPSDQ\mYKayj{CpZq wEWu\learVwMI} :v 5p 3m %c%_ ^!U"V"SOP O#O%L&!M(M)J*#N *#N +(O,,U-5X.?_.Ig/\s/(j~05z{q0@lc/L_]/UPQ.\EG-g7?,l-4*t*)} 's& e$$ W"9F W13xLxaYz:yc,P9?J#*Y< eK  ugsu&cZ@L6[3v{) W] 51 gO 7o 4p  JY GhB a{1 || qa LF -/ <  ]C%  {pF q t t!D 1s # N $ ( Y%  D& Z `2' 3 |T)r  v*T ~ 6+? e ]- @ . Y / 3 .0  [)A1  `f1i  19 ;N 1  52  Cs,2 h xa2m  2J e +2' @ g3y  3Q 13$ WA4 7i4n d4L~ a 44 + 3 003 f|R2wS 0; U /  %k/g P4. {Z.r 3.G cy-k :.A . G).rVN.w.TRp-7&,0e+otS)k'1Ze%r#$$b 2"BX"d!/X`!"<!.* dt.qRgA}/d;/"{bZ,a=} _U Y#i0_|W2Ac$D7L i~H%UE*Ozi2C@e&27/LE5$zl<`*z4DB[I ,N/U6A^Z]ky~y]g>Md0(j oO wF<>f}ms1XzhX6]k Tv^QI4x{@Fy;W;2-pK*s&bu.8> Y7F{nvvPH H)  ] -O ?L6 edD (`NS GT g&^> ,ff  k~  ns ? 9<| p U izT! naQ  cJz 2 Yo+ s I6n ;5 $1?  D"w U av z v]x 1Eg Q D += ?"\ Z (y ~vj6 H?D ,&N ?` *UpH Yi~e wyzs jWCj ^>+^ U#S IB  ?;3914O,#Uj!iv mY M<  8* 1  C S94 fYR uq`! ~r% {t) kYt* dLh, Y>]- I#I. @@- 37* "( 0"  J 'b :w  L ie!Tq(L +w85i)7_%8P&@@-?46 A$CD R(Aa3@u,D<FV;nX]5\ro0G|09r(+c{$Pp  Cm8h&b [' X9SUJj)J+Ai@>aI9Mu/9`f2sO0uA0,g20GT0\F1l8 6!k5X9?>4=)JCB^E`={wGlo\KS_EN22)S U] d.B fBX% qZr4 zvzL zX|X a=k yB rl- kST f6A ^Sl Z' S](= K0VZ Iwj ? u : GlB 4 '][ + Jz &s /; R \ 6   \ /  '/K  X#l  {l [ {R 4 I7    9A  #Xi:  'Y l N.p Q -3 2 p;  NA C  9F&d  OS  @S o Y7 C aMh  c   T^k9  8pf  uDT {n6 8| I [v%nqDhioPdLs^bz;V9AS  L0HEHguE~Nu@VP=*,F7~5s:$/GbI*f(n!tQ}Q)X nEF(( V xB4 vy[ D_ Z <"0   Pu  wq % Q B` j < }$x@ X q v9, SD *j / AdW ^ A @M + BG !g} B'o ^&tI -Sl /8O 0%9? 4u 8y <^6 4?'V iKpRiMZf1lEZt+,;x"joPch)kG_AOVV8PeLz({>#Ij8?[Y1jD`1YC"4  / =V*a{=k/N]C;ZH1Gd!U w`~i5nu=\_Xp}Yot_Cj\:0dB]&% UR"Q+l6LPPGMkhC8r@v=]i;Ia%9:QC8$7`7+w7~9[&=53)@ HDGe(lNtATqd\mKdZe-jLO pB1y.}&0v!K n>bfJu~Y n~XKl>>N"-($2 ;5?!_L>}%xPS1_QdBB\Qt*[\n^mRc~<{b(5kd>Sci=et(`G]5"]OU`:Tw4ZyQRmlJhbqIGh[CCWK?5D69 2. """ @B߳ \[ߒ% if? CIJ $&'S 1l ?p ,'I{ BBV{ߩ ibbsߍ vvjl߁ zb_` YGCv Q2/e NS  >@ *:+ 7O9ߺ \}(ߍm (rJ '"X# C, S /f U}| &sm 7 ߾jX PߤCD hތ+1 |{   _!0@ R* 2 |O i r= ` 1߼< T-ߥ# cGߓ  xg'| $gd 3)WM J3J* j1- < t "CQ LK- sX| dV 95vߺ M[߬x ] ߙje sE ߄B] l p%Q  ehC  SB?  )?%2  ?< )  `& + t E T c )  \ )@ VsYw$ PA= P [;?k#wHK,Gy4'gq>";F 4.NL^-Wujcv=~n[ Tz6|jijX Z< 2AxykK)]7 7 // HP' j99 ZM]S a: ;p% A{ ]lK !Z3 CVF #aQ .7  >W+} i S  W+2t{ c70U )3 aR | 1> 0 RM3- ijFYm h^ )> p jOi O  & .>  Yy(M @Q yn!T   W 3R6l ' r|  T[ h*0!c M  Nf N6}h K(G qF, LZ3u  *:L %d% k*p2L >$ vG &#R y L_x Tju| 3F Z !N@ U ! (@ B] a8n BfYt M$~W 4)+ 5us g /l] M^5x ` PS' gj#Z _ wy p + E;@ c#Z 1` 9 )5B Eb Pr n:NF ]kw}_XH<k< X { D(> _@B 78c ;\ Wb 80W Xv Gd/ ?<VA |M ki C:'Wcm#/zIua)`+c5"?8tmzF|ys"Y ;F15  '6Y$sOP!1vai@cHZ'-r|QM^moA+09+p|@@T1 Ovߥ&  *9! <!T+ kx"Rjs"hGi"adh6#I<#':ܲ1^#|P }$/5%p&_(l%GD&lpVE{&\2'Yc:`,"d',Y# Y-#.K,.R$Cy۲.$[/ڕu$/>%y^Ў~/%19@m/%W.f0F&]ωDc0&$O50&]%s1+'PΣ1' m/2'i2 (j,ͦ3~((\ ~3(2FK 3E)D{߰˃ִ 4)Q֩ 5*]՝K!5l*j'WՐ!!6*v9ޮԅ!j6!+p|"6^+mr]"?7+ݤ$h"y7+]ec"7%,-ȬZ"+8,ܧjR8#8,]5O]#8,I#=9E-܀ƒF$9-#JE:$:-۽E$::.(ŐF$;.HGC%o;.OI%;3/9ÞJ%`0؝+Xn'|>0{p]'>1&g(@?g1ז|p@(?1VW}(?1{>ѿ΍(q@(2kg͜F)@S2]ͪ)&A2ML֠Iͻ)A2>@4*A23Y*"B(3(ս*tBX34]*B3/s*B3WF+7C3Ԛ}+C3ou+C450,+D94ȻC?,TDh4ӍY,D}4Z8ht,D4{Ӻ-˖9-^E4\v˯-E5Cf.-E/5#Թ+.`FU5 ~W.Fr5_.F5F g/.G5˸E@/9G5жBR2/lG5jnr/G5p5ʄ/G5r@ ʙ/H6V Ʒɽ#0[H16/ςs0H<6sE0HQ60 2 1&If6Χ_e1|I6mzɅ1I6f9:sɴ1I66۵U>2=J6ͽMo2SJ6s͍K2J63J0?2J624V3J6 ,s<3K6xݴɜ3;K6Ua̯ ɶ3`K6:D̒3~K6 `84K6#8f4K6~j4 L6tdz"ɫ5_L68ʌJ5zL6u.5L6E3,O5L6 -}6M6r<ɝF6"M6Lʲ96EM6\ɩB6gM6<ɐH6uM6ɄS> 7M6S]hC7M6CdɊ[7M6^7|7M|6!77 Ns6 .8NR6۱n]8?N<6hǭɽ8YN#6$9Ǟ8pN6ǁ59N5h"~j9N5i|J:ʨ9N5DeBL9N5 $0i9N5v5:N5^6:N^5ʘt: OK5O:O05&^:O 5(9:$O4ް+z+;#O4hذY˳X;-O4#ϰ;3O[4;ư`;CO,4 ļ˜<@O4=İLã<[O93²=HO3²79=SO2­+{a=LO2n¹Uͩ=GO2Bq»=?Ob2Bǰ7=8O&2 ǰq>3O1m۰0ο&>O1 밀& s>O^1x鰼l > O&1p_ Ϲ >N0 H >N0wP ?Nn0.υ 5?N70^0 Y?N0A z?N/}L<# ?N/m_pi ?Np/t=pХ ?NA/J+| ?rN / @VN.Ῥeh -@JN.xѿ˱ѫ :@N1.* p@N-x Ve @M-t`3Ұ @M4-)wBH4$N1KBH#r,BZH_# ηB H"M PCG"HBG;"TC[G!󼼸PޛC,G!G CFL!"CF V1ACF 켔߀CSF\ kŹߩCF 15CEYQ!CE2弗C:EFCD9ڼIK%CD众kC=DYA%CCؼ7Y?#CC}߼zw"CgC/m޼!C(C(e CBvܼ1&!CB7eUCsB]C0BB潤CA7, CAscC\AXǾB AA GB@yHBO@߿JB?~C5B?  85BA?'~B>;m)B><=lRBm>y8& B;>9EB B=Z-F B=YVr¢ Bs==4l B)=yL'!B ۟%\AU7 گN1%?A6u ӾC%"A6 PᾮO%A*6 ʴ%@5 l1I&@_5 %ʝ&@5= mB&@4 AU^?&@z4 g˞ '@54B *'z@3 ؐ+'L'b@3ج̋'K@]3Ofغ';@3N׿ "'@2 p͙(@e2=;(?2(Wu(?1da>(?C1$VE(?0yEϬ.)?0֋!k)g?)0y֧})M?/_QֻC);?//!)?D/p*? /yѦ**>.3a^*>v.+O*>9.rEя*>-FJg=*>- wR+z>F-ԙҥ-+W>,(ԴD h+@>,|ӆ+ >),KE+>+U=+=y+(¸ԫ:,=%+.8X,=*U:4s,=*pq‹Տ,=V*WK|,t=%*#@ӟ,T=)ӲJP-F=)ƒ֏-'=])T4-=) (]-<(by-<}(ci3é׿-<.(GS(-<' pY؆ .<'[фß".i<:' ѩ)W.K<&ѹ?u.?<&p~r٬.9/;$ЍIێf/j;$SМĂ}/X;b$~к/5;$Ob/&;#'Lܝ/ ;#DŌ/:Q#' '0:#'] 60:"C2݊ L0:"^Of c0:"$eŒ x0:["uź 0:1"zϋD 0i:!YϞs 0^:!NϬ=ޒ 0E:!TDs 0/:r!Ŧ 0':G!+ 0:!g 19 |<ߡ 219 G!k G19} 1Ɲ a19M =7 x19$ |OX 19 tZx 19obl6 19LLrS 198P΅o 1o9|9ΕƖ 1l9[(ΘƯ 1\9B*β8 1G9η_ 1H9ο 249q2 2*9PS '2%9$r ?29~ƑI29bƫ+Z29FIq29/Xl28s28u 28sy28bq(*28Mb!828:Ǽc38E@Ǿ^38A=ǹV28N;ǭQ28T3ǫH28Y7ǡ?28f 0Ǔ328u ǂ'28$u28 ^29B29929%2(95!2*9C"259S.2?9)b(ͺ2M92p0Ͳ2L9A=ʹƳx2W9W6͛ƞe2k9lE͘ƍV2c9{J͖{=2|9LtS$29Vr;29[^ 29#d= 29&?c1 29<[oƮ 29k|wƀu 2:sj^ 2:NG w2:-) }2=:ͻ m2D: f2G: ͦ b2i:8 .͒ź V2i:N C͔ū߭ O2z:i dtz߈ C2: `Nh @2: M3E 12: / &2:(! '2;M!#ĝ 2;|!Jhޟ 2/;!wͺ:y 2R;!ά^ 1R;!Σ9 1s;!"{ 1;I"zĮ 1;X""jĔ 1;"50K^ݺ 1;"T4DIݝ 1;"rD/"y 1;"QK 1;,#S' 1'*>ؼ0>>P'aMϮ؇0Z>'RϞlb0n>'bυ?;0>'ok 0> (qQ0>+(!Gq0>[(N.ךo0>(w bz\0>( =SP0?(F06? )Ͼ60C?O)$ϳ,0e?)YPֆ0?)] R0?*?&0?A*/?*.bվ/@*P޿<՞/'@*w$ѿ q/B@+$ШJ/c@8+6Н./`@U+@Е/@+Ih^/@+3Xe>Ծ/@+VaMԕ/@ ,o#c/@E,s;/@f,xu/$A,ʾ*u/KA,CСҬj/lA-iЉZ/A\-eJ]/A-FX4з6/XFl4И|! /zF4yJ/F4Y7/F4N/F4#7)/F52!/F"5=ʼ#/F/5Mʫ,/GW5]渞ʝ(/Gf5i踚ʐ-/(Gt5xør~0/MG5ЯPm:/YG5КE`:/tG5{KB/G5\8S/G6@+M/G462^/GS6 h/Hq6b/H}6|q/%H6ɷYt/;H6̷Pv/5H6!нI{/TH6+С%/`H65{Н"/kH6;|Ќ/H7Ftxȴ/H7Qd\ȭ/H&7WiPȣ/HA7cU5ȗ/H[7lFȐ/Hr7tHȈ/H7}3pȀ/,I7+ͶSy/.I7%жVu/>I7б

4.2I6I?)2I6`G2I5"P2I5̈́.Y 2pI5͡A^2QI5ε]f1DI5ɶjo1(I5䶅v1Im5%1HV5{5ʋ1H65p:5ʕ1H5fU^ʠ1H4XaΈ!˰1oH4JoΟ=˻1IH4?ѷct1H42f1Ho4' T1GT40I1G44E61G"4 d/1G4{ 1wG3Ν 1PG3ν>1;G3 ԸW0G3"| 0Fo3-#,0FR3HM70F&3]τF0jF2tϩU0>F2ݹDaj0 F2 snQ0E}25|<0E[2[ͅ/0E72xy͎0pE2lϦ͙ 0LE1dϼΟ/5E1]-Χ/E1S& Vγ/D1I7$nκ/D1BQV/DT15c/nD/1(~Ыv/9D1^/D0GF,yD>x,>,~Ka,m>+ӯ4V:,,>+sh,=m+8¯x+=;+vԅ+g=+s>ԻՕ+)=*c`Lգ+<*X|%uլz+?(7%^~%(`7%gk(7w%ɫE(65%U/((6$ה#@'D6$fW'6$(ʔc'5Y$GDʾq'5%$`ۄ'o5#wvأ܎}'E5#mAܚg'5#]vܫL'4v#M8˜ܹ3'4L#Ak'{4#1ئ&64"@&3" 2!x&3h"\p̽&g3"|ٻ.u&)3!;>N&2!C̀V/&2`!ͺi&j23!ٱv%42!߇%2 p,Dߗ%1 cABhߢ%1 WTmΕ߰%x1S Fsڦ%C1% 7p%1,M%0I^3%0ϒ%c0T$0 #2$/FSTC$/jۚГW$B/Lmf$/~K$.|J25$.n|d$g.\ۮю$?.bRѱ#.:F!#-36;#-)Nb4#-mܡn#=-sҨg#-AE#,c*"#w,ܭe@"/,~ӠR"+B42e"+Yz{"l+~oݫH"A+ssh" +raէT"*GR4@"*'K`&"*9ݗ!"V*+ݽF!+* s!)q.+֮!)8Ng !|)jޤ!;)_6\!(~6סL?!(Dr[!m( ޺r $(O 'w)u 'uiDTئ 'BVV߁ o'!Mlߥ F'Au '1G] &$,lI &]ٜ* &Gߟ F&&#B#%Kfڍ=x%WiK=%!]_$/?sB$_k~'$|۔V$Tm'$'`$W( #MCC8#=]ubw#3p܇H#a(ܾ\#"A" R'"n7"o!ݱ%!4G/4!ju'Gh!cWa-!ތbJ `߸m, /R} ~xx x -C i+a \?iT\51C}xrj4P-'Z*E< P:  d\& \5 o\= S^2M 3" Y  2^  Ial  #~w na = =6 zZ  l(! l ^dU Jy R &G B  1&L  (QR C  pS  R, L 1  ^ B 6 f  5% R VP- - q4 }c #> N ]J ( KQ O !` .Um AUs g 4BFy s k'O- cO_ Z\k 1pY c=Q. >I] !F/ A;$r u2M( A-|u h_ - .&m w o e6O ~# qBJ O "Xe -E .(( Vf// wT1 wI; EQ-B sI i4ES v,\ qMwd Abj (Vv  =bz  jd~ < 2} [ w < wK3  pk N ~l*  WhM  "cW `~ ]; 3: Wp  kS'R x Jf + E= J B[ y V9  7 +86 5a'  0nP ]z/q >L{- G+  '.R 'W' @$k T z0 % K J<( v:^ o  8 LB   *  ?^7 nk y 6} Z ]  7 8O    ]/3 "^ n qV U D % ?   s7# s*_$ .Y* Xy+ y>O+ S  2 &P0 2  Z 5 @K : Qq ; |N! ? I/= C { G `l? I 9y L m_ R D? P Qr U u  X Y=5 V 6_i Z t [ b=. \ DX ]  ` _ X0 ` J2` _ ;0 c IyZ c g b T3  f &]E d |ud op9f C2Yd ) td {@d N2ue |2Ob I| b m 8d EL W`  a FT4 b /^ ^ R ` ^ @_ 6R ^_ / {_ p$ ^ P5A _ ?Og \ }s ^ ~R ] e0 +Z E V\ N qY ~ X hT@ Y %,j V  V dX +T : LU "n \S K |Q t" R g5N SL,N 5jOM &~kH yG W\D 930A !H= 9l9 4Y7 vR1 gWs/ D?+ k,5& U % ; ,- J e$ u. |4A ULU Ab^ "w s}  Yq- BaM (Kh B| {7# e*' P+% H.3 04G 6R  6(54 ]UL+ ~d!j g 6 ( i  O 35U ` k s H !N  +2/ 2? :0R E[i M:zz t }V[ A `b_  Ck 8 )v? w [ L2m ' xQbm 6vV8 {fM fE] N$:, 3G3 "a+ 2!b^B/eR%-u|Y-VrQd& #+2>>5oi~_<\7pB/LJ/PBU'jw\TCby1vgPMnE}nu]I{1szji8t7|`n4 gQU:b3zi^q{XA;&S>O7cJIvEsjjBFH<L-7h+3v7\.})dH\%/!,-;^9]nftf21?$  +P W?bz]n&3NO%ES7ItItF= J; psA}w kJ,z R 7 T FH m5 bR} _zG 6 0  wTQe{4.X'R \ =K `h 5MY / ]'  Z D ~> i s~ 8P@    El N ] !\G %+l *a- U 0Y| 3q@ 6l8 ;;Y  =+, A 3a FJ q Ixbf  N?2  TJ <) [% sV ba)  k9_ # t fz_s W+ x at 76n0 mnf^ 7ct 3^ YVW N4`R tvBL .D$ ;I *=3m jsli' L#0 ) 7 }T`8 4oM   Jq } Ij c Q :%2H a-' y1p $=92ZGKP^e4_hlc3vOXa,{&vHl.e /[&]R:7qNJX\C`k<9vL"3u+&Y>M 7`:m !xXZ5+3< ,J$$>R.Ec`@b~kzHxqbObEz_E+qc9ekTvDx 63}#OD|}vVzcl{>(ur%4ubAvWTq@#\t8/ht1CxuYxu`{fzyOzm>rZ*d > Y0M>' 5 :*  G X$!g &q)}z:l;bB+M N=8RP)Zj bol&Wo)7>tA@'|QNw]Z|n g~{sw(xwz@egwQ][ufNCs6l/q%Op,j m1 i34N bJ]j efs o]uW ZYp5 <U` +MX H C ?-2 <G/$ 3iP  * rS |( , X5 -Y + | \w  :\W  i6"  $ i  B B  h! $ ,h < 385 T W= g xK t 7Tm @ o]Ky  k1@  ;t ,tvz2 fBqV 8b s[ 6\M Cb>? $o]8 L;(   0 13B a^j <K f +? oH; g E*b, T(Y Eb .jsd W{Z2~ 9Zv &7g L[~ `N(>.A;c7YG(mht E;CKY6T&^#;Y]f%<. SR7$B'&JNgHVynq]OzheJr7X u ;D|6}_{w?q,sLX n- j  d b(T^ ]KQ* Uzz Rb H)8; Apkz @K\ 5& 4L! 3c$n} -W>1 0M 0%Q 0MH 17T 2-c2 2X a - @2 16 .S )t;*q /vRFs +s,@x ,F 4//  6Uj {> &L!H ZT G jZ@ G:d fq ?pE | D~b1 ]~:G yx t} khSL hL:r ^ o P#6 @e( 84|w _7` )q SU:/*wPr23H@ U! "]:*3i`PH{_}Zcpo8Ea pC\K<0J{pjo5 5!)#MgI yexZzv"1Y.g)6R-?EW!H,BPn\WN]i.dDA)i#aTn#reLDuI+dx#߃0 xa N yP!r yw/? vR\ v7g t pc%!4nT7!Ej8ްk!ad zގ!~^^z!X1dH!N>r"E{,D"?[u"21u"( M"""2"5 E #F ܲU!#Sܨp7#]zܘ g#s]܆y#}E|܁##Nl3#+[B# TN: $>eg5$~0x_$\$~$p;r$YA  $K)$<G% (e!%{+% vO%Sf%&4#z%$y4%,\P!%/>`=%1*xZ%4x  &6^_ &8II2&5-Y&:ߞ c&8ߗ, v&3{ L &6k6g &/_Cy &,|N^ &)V=t &#D0 &p0( &Q!&=!&$ܮ m#J'!ܿ }#<'~ #1'& #'vD1 #'mWA # 'plS #&cمi #&s_ٕ{ #&a~\٪ #&KoX( #&5XU8 #& KRE #& =ZZ #&&Vq" #&^܄; #j& lܧ^ #I&nـ #3&t~ٚ {#&Uٻ* v#%48 l#%/D f#%CN ^#%Z ^ W#%n4f T#%In F#r%ܝe} A#Y%ܮz 6#F%|{ڑ ##"%^pڲ #%@i "$&e6 "$`)b "$\Gݍ/ "^$X`ݸO "5$W~p s" $Q܌ c"#iO"ܢ M"#SNEܻ 6"#8Hc +"#%Hw "x#Gݛ !S#E ޺ !:#F"& !#G=C !"Lb,` !"PZ| j!"uXގݝ 7!R"Pb !".j  !u;6 !~mt!~ v!ߚ8u b U!Mn = &!he  y^  3ߍW  g5`ߧJ  O\ߺB d ;|6 n6 !$ 2&   ](  _M z, $q < 95 ` P' [< ji }&% {~ Q (h  _U  ((H d R>3 - V W j - U m = 8N ; ]2 W3  }' n A *N ] 3K.  #o L p tl ;T >M ; \, b* qW 1 d B 6F  h#. t \B u  b 0X~o XbaE %]" 4{7Y  6 @7 4ENc QfN ytt H[d R=\I 10  .MH6 v 4vL_UH|i hDJE?"# pr~BO`."&L$gfX}Bw F~d  `p>Yn I|7) `1  }DM G' 4 uQPkn % 0 i\m C%q T dN|t MU# 9,= n[\ Is ;W jdfhG3X0x5XtH#W/yO^Tp:Tw[wI-A7cQu=HqKgKL "dSD!^O/>* oD xi&YqGH.4by`p#(FP<{R7gIivm29bV2l  (`i-/[8S6m%kW6SV0t'L|  K1 ;GywN&r*$*f|$ H.M{ h,t" _e=/ D K % xV 5rs3 ZY4 4 };m] h7    Y kB @>u ^ }wlok RU0p B A.- z5dZ,`'l,Ckb]YBW #[7) {CL = l GDG wkd c3;\'  :'3( WU e[pjy r WhPGcN &_ 00 }R"  % 4 ND H f aaj  ;{ n za k VP d\ 7e E K I ]# T- zG bk e|f * , | c#X $ N P-W ;  !6U  0 -5  # =+" R ߙ3  ? ߈dN 8k }dataF6L6A8?89-64-0-$%( % !&"%(%+/384568<=BGHEKQUYXY\ccllkrrs~  #%0)36784@BHKPRTZ_Y`b_fimorpsptpswvyxw{}~}~y|}zvutnqknmiefe]bWVRLKEIEGD>=5:7.12*+(%! |{xrnrnplngagdac\e_[TSYUUTWWUU^W[]S[Y]\X^`_agceeglomglquxxy  "#$&*.,&+.02375657=>=@ECD>JHBINPNROYW\W[]VZXZ^^]^Y``]__]][[XZ]YURKLTPNIGB@<@@<;775432,.3&($#$  }zysromfee]`]WVRMJG>@@8>453,*'-%##  %$$.*,+3343259:;AAFIILOPVX]bbclmouyuvuw{ #"&()*(&-.26347258==;86BA?<?@DDB@HECGKKBMKLEAE?BA@@CD=?:DA@;9?873:344536302-43*-(,-*-+)%"#$#'(&)$!& "  "#"#-0(..0867<<CEHFMGHHHKMQNVKUZYXZ^_aYbaghfffhdggigrjajejahknjjnlmimjmnmjnlmppptnouqwlsonommksoiqpmijmimmkqrfjmhjljjimrrjhhghaef]ab^bd_\b\^c^_]^_]XZ\__[Y\\^VZbX]\^[bgeaZ_]^Z^b\ab\_UXTPT[TLQFNOJKMKCFE@BA?<=A=648753*..21*''.)*'$"  #(%,283/759;:9>;;C??ABD@>IBBGIEIIGKJQQOQVMSW^dhhikcpimvopporqnoopilmggcccagmjejibbcaeaacc`U[X]]^b^eaacdjjjgallojjjelmpmqlnhjmlkckd`ffcgec]c``^Y][^YVZWTWYVSUVWZT\VUXTUPLNTORPPOIJLLH@?B:<=63:77<77725726118=7>?:88./20/,6*-((,.)1,ftdH3B%/:&LA07:!1*-)<%:(07?<KQV&9] VA"Z2mx:pZ {]&P=UXQn+f&4nBA^t93T^,ny@?zj_|d*']p];9k=|E;s<*\H/mw=&Om_N8J}v09=m )#x4aLzc!f$P^$^ V%g Z: E og#%n l zSwNS"4b"^tAG&lWR({oL^1 a B" $!QG uo N[FyY{eqz%B W"]$<{ySF)0yUW!FY/P- J~ F9c %xx!p|Ui!@9i`jb=Y >C1]r ' = <.v yVX_Mc#lkk^Ra{>V0 cn"Z9K . a sg|i B c D :  BNvC[W+(- GkG 1 D)~04k3V hY'> E~M4uY\_)~CyN 95u8MGCXa} -k: K L C -  YSE)O}\?zm;Kx`X= NLDsVs|=Se~-|tM}G\a mIE c=ogu,hB$ /<A:-(&5;*_7p;bZ0fA-(#&$ LR*6=#sk5GA<7/sJ$|m^UPPSQMNKHHGMOQVRNS[gjq{#9NlvrnbZ^TD"Jj< s<yfUH70'.)" #0AXu-Icx'B^{*6<;?:4,&+()'+% #(+04;30=H]hkvtdQF2"}rbO?/$"4AU^fmv{ !0;AES`crzssnppoklglrptrlrpqwrnswr~{x}~|zxsqppk]c`__[\X[TVURTORSQZRZ^^a[cYbdikknlcciaddaejdmjikivsz|~~}wxyyuysmokhdji`a`dgcZa[[_``[ZTSPRLJIFFEC@D@6906:495366885878<==@@>;>?A>BA>CB?=@ALHFHJLJLGPRJMPPRPJHKEAFB<;<810*-- !  {vtxwurwrrww{pstqx{xyz &',+*//4/2/.019;::<;;5?HC@@GGJBDFGKMKJPQRUOPQRQKQOSOTXUTVXUORNNOOQSUUVROGVQWT^T\N]QaP]Oe[aK,94@}m.0g k^tHJJ  gLiXYf7j )fh7;QZE_u ~B>,<4FeG8_M[o ^4? :K5ܠߥo. ' 9ߑ-D s ; ^k(T!O @ 8PFW V& x  $$P!~E ZeCp_rv҂мϥ-  1<~;f0[''K*'#(D7`MV)E:&\ o"hd̄1؎- _s 47%)? 5<`d2t` 9 pB5 BYNcN   eI+ɝ۾eJC+ݾ쭗|$.4{84/174.j7M\ S-_GT ͉nۡ1 -=/d# uT&)e'_" t}  ? gq l 5 Heq G–ԍfչU./d#-+"@<$&c-AUV<6'^/ m2 r7hd5"&6 G'.a-(&e  qV  | l *uh)x *OEl GO*᳒oN_c&'Q*#SQ '$!+?1RQV8Kk P&}۾xw&#[R5&r(l)00')! @ =?Z#:uQxBmtر={^a p"*$- "X"!)r<D7kEjM"3$W$&r:7q#0ey#C'%#WrN a[j",uJ,Qd݃ʹe[UYM֖ѕD&.'  'G43B"r.37? ZP Vt61 1 RB "7tNnU QgbBuv^K`xZh٘҄Ѐ=ž\g1,WM?v"(&o++%;E#< _v"-(x5 ] I 'b io  3^p9 l = s !]z M uq\ ;U>  |qMY7 Ɂ&U̼2QBE89%9(Y4y2({)s--#m!6m̹ 8k / !K!%0"D%($` R< A 'V E  + ,d֊y|ޢӢkC ɠ2<):D=+!@%+6C@=<2xwCfnǴX|^ }Q<)_/.4.-%o#W('" ,X ;B 34D2vn6|Iuv踡՞N(#11G*!#!'(!4e9<-FK?c \ړ[hxjo,H$*,/^/9& }.z:5#  -%#*A/D0q x2'3l1&?(o.-+&50CAE+%&G#5Wbg jz $'("S!298.} q  1 NAN/b[*ޘщZbT@!EKs!/H3+"#$.64a.0 92:) Ҭ`x%+R$ ?\'U-'`%''J+&o.p  gLD]`q><ިtx1%/10%);8<9;:^/ H 5ߏTvF >m3!3Jh;%-*M~ Cr bMQ@Tӄ{6m|j r%7'h%E#$\*279;6)nrt  LZQ b9 pf7"I%f&3 j U y?Zԇ5Ⱦ XNޯ}H5c!v"G*/02A4$9R:0!2 .v w {7ch{p=S  G)_z^qN\ O wtVp$3Wwœykj NVA" L%,.-*153&< a4W4G]k) q L W ," $6(buiz7gͰ/O f=(-_-,y00?);X0! Nwa8%)` n  { U  < ] pb^yIA λɬ {%q1S 'r ^"#*~+K*+*$n{"> (q7) ( X { \ T lhqб̿֒ոHD  o z&(=))$+ 8p<pfdNI. } . Cf t 481 ; Vk#fH7ܶo֨j yd<   P0 "j$3'% ?W q5z,<kuU^ a& 3"V  CRS/+MC,ӿF1JۛىߙSs0 o"%%c# -:.^"2 Z > 3 ^ = t szM"7D{Fjgf&OHhb U `t$|('"}&x V<(C/$t?8 !U h L  kHR2!YQ e+Rsӣج/s@e^ p#Q" Re0 ~4tSa+@* N [ & ~ Z Sych)$2$EGe vUbcpz} w )oXFNu|Y[#\#I[FZG.Hl>QzMZ.Mo-aB6 Jkb / ^juTbEw0'i5DG* cK8  UDlLrYW=1Cp|R>{}Uu_D kM&Q $g P%3$ 0U~pJsbbP3,:-"+@k&3Cy%*$)qSp0 ;Ubex0ZhF. n( *  5!:Zx2;" c9!)1L49Ie{jb_e`/q_NK>%)?U_gfyxsvsibQL7/*!&0'%(  65$  buzl&85,+&#;,^5Y?H?r}(Oe96_Z(p }cQg%poerW_8(8J KhzE<0l/ (dEs4F8p+I =r6f%CqWo&8zQm}zPB$|76DFrTkW.G;j2  Lkz F/V7"=G5KB mt@HI[0:D 4/k[nG_3-u1i>45yev-B8~h KHhEWw7@\ hC<<aYy\2V ]TzzE'2d A1*mTd?m/ q ! HoYi~`X;U8?8@8rh?W%L_>Iq,|!nVKI^orIrZC]3jv3T\ p2sQ q?UpBgi]kQTSX&-C41<8M/`x/U}KvTy} 3  "7 N0 470V])MN*9D>=\hh^p>E-2`O{L?8'op'yE7z{0\,!%hDuNE$p*H !D^>J1t[ElJ?q[fQQF@lkvww(?\*s , iS *?6jyQzAJw^"1[Sf' d0Yh _qFNs)Vot*Dmv8l,3aB#E#Si x^FW3g*TFK y<vco 3qJA YLf&rGYZb55("P5CTV !j%"&ze/GP&T(rqgsyvFpiiuC|5_sH3c- ;krUD?JL>+MA"4J+. *0$! +M /:#  0&+30)',<-!*&%>8G">!(A,<<'867FF57<59TT6ARG92DO[L6D7EQFPUWXD4SdVealkOUYkZergooq_gcj|tttfmvvu~u                    +.'+3&+40,73<>:@?CGURPPQ_aV\^`nmgt}vyt    "(!+",01+10+//24434/47859:=?8=<=?6>;<?;;<<68>KIC9456>IIRG:83B>FJED9=;>ABEBEB::BA8::2538:4/.)).1,)$%# }wrgifjf]`XTLLKLF=;542./( yww~xsnkqrtnrpntxsovuyvtux~~"',y lbjN@4BV1 %X\>Xv ,Lo"/4y uB*^ L0sNA?aUB9 *[dT2zT3}Ap=[o 1+(k _ 6P;(<t1<!~p RSQkqM3J 0 V.s~h!*_tS HeuZp ( cxQlIM bbHYt  q m > ^ qU:kM($\K'4F{_oL*ڨ7qΗ՛4UzpPB ;+#G&" f$ 77Hp hQ&7W ]as k  ) ) 2 6 t^, aM *kGDP1;ܱ׸ԍι)Ɩ4i$ޥz/kh!_&#G W? ~~BAE/*% ( 1hI+\ET/ AS>t- : Lf*&! d p29dyS4P: . GLkI6c_~A F M 4 k Pa2{p3ygrڲ8F <Z#$c$#!0 ,(W !<;f`eM]P>oD0G0 ti !"d"h! eJ^2* X  yLg/8Uڨ։_1ѝ`A;ߦhd V">$#"  6(\  mkNTs:\/O)Jcr ZGFv $u. ? B^5MCPZޒ]{#u~J  s! ' mS xf%< ! -XTIvne{m15gk OnC?  Z rmE'pI"Ԡ׃Y<S &an!?! Q[;f|4W Q 5_gsc|[JXx }\;x YN$Q hf]vNN/J yd>ԡn|Y޶svJ X"m!}"B" iUEPD xfco =G 3 e8jfCg_Uz " f o&VFmܽؓҝe#ڪ۾+r?_x40 gs!R"! 5$e  A 6h 9P@MpBG|T ;\T n ~i@vF 5 G%_ yә$@J*ۨ\ޣ'3 UL !"`"!. 2bFEb v:^&17C7 9_`   0W} 9 Kd)*'08MԂփ7b@nx[ 6$.!B"""!rd%u? k&qv=t qBnI=-V[  q }yRi] x2}q"UT5adИђrUۅeia {b!t"j"n! LOv 91uAm 9PG j<@ AWbl }"qo^.SI֩׶ڐOK.0N3G+ bU$>(('% 'ak_iNg`f/  | ^ FX& }/ `" { d ) _A K]օ [PDG9 f $'$2C >  Q j?@3WAb65=z u ' Q  * g h B M 0 { h y 13+i X  *0$OpiMǣ0SưԍgH+ [ f) #*+%}    3$)c$"H[aX y  k u Z `}@ij 3p i)BŐ hD| 1[]$,+1#|   \5  ,W"{qO . I  !* r)8Mi: D  W  S h:EVqLVI )6_GJ% &.B/&pZ . : r7`,0uD!P9P  ! a  w w , u[p * X D 2 E v x Odxu9zNܻյ@bܞٟӑ|A= d0Y!:+70*4 & R]@4 Tb5 !;r) 3+9O`D 5 3 z} )Dz?ڽpѷZO 2SBXl  ]l#,_/(1K Nc mMdI# ^ 7    m8lS { d={S KWCQDfPʖEeϓAߊ#w 6= ")/a,"}n G-fsSW} 9~r2  P- KuKV%c j ) G P)BH XQJ Nj(dQ2\'"L |r3W#*/.%FX '/;t  8i@><] & aE d </@U8 $ X dK6O j o > E sנ&4;iT5f z QA'OG\$(M.1K.#M|pl \U)7$]Q *vmf$X u+% GJ N t K U 4yi ` g( oʀŻ7ptąؼʈʩ_#r%;**-c2q1'8 y4=LD yYo26,av.j A 9 P A F-D,dA&?vW?޸iې|l3&*,/31"(pEQT @6;AwabLWN17#7 pRA D  !rNcOGk~9ZN E F5*C1˯@B"/Nс T t*0-U*!+h/\.l$% +P+7_PM7kmy3G    V =v"[$a COC4D]lG _)*͏ܸL"#7fmԄ v~#"(('+#,8$K 4" fL g fG biG5Z2Z G(+: * 9qk2#$Mrh lVdHCosGǓ¯БڶR]xg' Ru'"''%&&&! $gl 0j#" .Dx2`S"` l5Nsm 3[ T [F7rK  "J;#d~R v*P^4 ׬E ڿtQ{T[Ko]!&M&&0** &%o#tUHjfHFy c;} duacm T ^`S  q .Gc,"nW} !"g ۜ(6â_:ܳ Kr h&g&{#$%L$!V e9ZAw-YX#7bFWgBE ]Oc<I g9 | %gM\o "$S ,9`v|9W~vOԈNɖK d؂pEMZ 6x #H#]%&6%NJQpr794//Scz_Ia7JIgC0e[3.;) VK ##+"-P !1 Bt8K rI4k:T?QK_BONڌ߃ W j Fs #Q%]''&!z~o1#2|Q v> P5;Un|f @5P$/@. *nV4ou%\E @)ў׶(M)%=8 ! &]F#%&i%r (gC#?WbdxljWIi[80` $+ u#j \e#[TT$KZ N[1e07+!]{2 "2iW} R1xD  ^ 3 ! &6 ix;xpVUgM ` ` 6 : H $ f  L9a  D5 NZ^ ur}g*u[}eU:I@ە2QK} J&T  8Ppv 8 # .Lg)Uf1PH/)]7  3  h ? f  ? 7[/qvys Y_,Y\  < L^;a3 ,aFpRzoXM^kx54e=vTw3  x^: Hm U)qPHrBMR98\c`/ R E *%S5P>MC It{H$ $ o L VqfAz=U&g}cߍI Omg6-0u yY#/p) Z C rH  ;4[df:_B0!9&5!.ey6  | _(B 0  2 @C\ Q+tF rYF 7r?l.&FN{y c 5 .G "ry M-\UU$o/<;DYy/Z3vC;vL q ` ^ .=a F J l0d!K%h$Vy#J] -x.Ml 8  6 u Q D ys0;Vg+a8d+:f2nQ4b,1K7$ v  p   ] ? r ;b3% {dT7e^:muoDXyvRHGDvA,tH)w7t>)-BvVUA' K]!W( oq(W$ UmEV#<deDoq<8sVd,X>~/ OD{)/nT0.nweiOy:|Gkl5,{\ p?F04%FwF"{Pj,saL=@EV$zY"]2,RH`#7F/5?^oZyRK@B.|f\gZ  %)-:2&2 - OticX)20 !\/NjE<6=Hwh:nzm{}.QJFK(}_x/rdc\R&FlKM;*e& fu$07+ib}[V>Edn9RPYvd$wy l7INCDrv@#N- ~w%TM%{ G45!9ux<9zcpyWX< ifN@4&:{  '[bv0Fg?^`4j)Hp0(;@]wTe03Dvh >>| @4=Yu@D'e3 p(XjQM,aH-6FT2i ie,%w>e[Y(:h 71 5zLbkh!X\;'8)==ZBKp47;H`QOclb@tEPkFDh37nM>%XxnF=X he2R9_4Q)39&ay^.!R=G*V(4|7?,,JS.kOypVuJ_NX]u ?aG'H0_/$~R4l#]2!^rT*JRf2C@x~7TXl%nK%BzpC+{&irKX0bwx+7r=-fOgqBzx<U8!er#_0@2E_ qb-9z*O=x1]8p0A$[ys{zpAji4[a!G]+m3$/k!CPvs<YR>q&Z:I/K}--xcR#a4 iv@DfH$/PKs*YO8[K~4W\JTM4kN8[D}i+eY3jI0fo`.JZXm'rL| {Gyyk(kD0T}iC)w%Zr%D#pTJ~=3q}O;ZDLemx ^!, (:qO11hn+K13).4J9+/ ><'@ 698-+"1SD<LG n=.uR6r1SP:;&7*B20 uYw!R=,B+jVIh5} }9tt9X8,J<<\"+fo{6 <$Q0>@IrgFd`xp"KJU<})ooF{|.~C@.@H~7}%wU5zFJ.6x!*tV=$~E~A:W z ;] * ~`@pi7Hw 9 X `  %8KNhlUpJ $ ) sqC ) A5(2 3ܢxec" O=U ,ylk d (BF5K"-dUj, S# o4F.=|4 ^ -Ip+\DۨRԻb8s31w .p . V y"! ".Y6 m}aXOd#,|k A ,2Ao  ) " AWNC @E +GkM;fSi՘k˥^.ٲ] 6\A$.T1-e%j  \Tf cVkJFzvt  d5 0 iM3  E l 2!7 >Yej@ߎӞT LqӊQ_P"""{!rD(+9N?d99(| \8BVS45""3L p  >0 P E ed =cA du5& # p lO,ɾ E ۸˯4 %$ "%'&S(n2?fB66!1  ,ZA">|z  MM = }Z1U >5  M QS*-< ^ kI%l߭mʻT!-G)p#,+''6-3526>@E:$  &}0ٮ}s  Z1 l!  , [D"gl i& <UۯMʦSOի`́$0g1l,'<*15<68?G:@U)r 9  d{PvS)q8" & u(~z=  hh.! t  3;bj6 SpDY֏g2 v_Z"!BW)30'" &~0r:=,@CC8# r, aֳ>tV<_#;  Z @ 41]  p / } 7eH߯_ɷ63:"~#'|%1A0'"%^-:9CFHD96# e $R޼*0eެۆu 0yK-  Tiy"{ nk~ Y Ti 5Q&ew]dԳ ܶ죚V/՝( $('$!$,K6@K(NAF4s!J*f6)JU 86* 7DmYccX^:V?l 8  (+ * < { q mwѴǝ쮰J"$˜TrN )2=HK@B1[  % * n'ܖe3A* p   SXh D ( r $%  %B 1 " 6 Y|qޅ{̀Rɫ'Oްɠ?q Pq!+8CF:>;/*!"t#"cr`'b߇|r*  * n  B( -  -a!H 7 e qQ1   wLՙqnPk3N+ץ" +7=:0${4E!#!>Y`E5ru~sq~TC'Wp  3=  z}  2 JVF7M`%Ś~ROv672 .  #,{0 .d'lEf"{  P?>T@mVX Y j rr i g | 8 \49*r]A^O|e)_݉5 ov!SXi-, PM  zs 9vhpV HL;{@+d !5\a8 W0A, )iJ}4Sl6% &b<WLG /IT [s#}O1k5 t{8TQP)Ty2:>)?Hq#Q$n9M(XhLLMT\8YO]#QGxCZY^bN]WC_dfZ,p6e 5r W070NiS*o9>EK:6*od> I`f$M#kOq!j-dxN;,>7^"#H_VSNbpK1&&*$06[-'qH#0Vp?a~hJ:=7 +Kisgfp~dC8:53#  %0*ncSKI<:51')*/GUgmlmv~qgdRD?0%   $()+576143FEFMRVXb`cgn|~}v%$2>FD?CDWTfEe;c9v;}:6C X t 5q^;}n"Q3Eel}Mx V z~"^jN=`_7^~U{rF2<pxBztN nb jHC X\'#-0 #wExga"~mHoFPW/=LAxe};UNK[$~.*6xvYpJwKC60S/~vkou2a%*;Ux:w@g(m-`bf $QX>>, H%nc>bJ  eE~R?UE(M;q3A"b||o}'=k4mD)x>(Q X!% ZJL%I9[+4B`'LAbLeOAkj(%`z1"^ve9B&\rI-E /! |;F&h!"8/7/ex/_S1j,,vfg2x$|P}E_aDq->RXXl _\qDZ,7QJ BG'hs  <[LEb! ;>_:ERvP# !]W WD^^G=,[_=*% 8o_qXr#B=vn ePt%o! AgcBOa#a%JT ){/; )M+Fd _R t6Fv 0(4?(( g[h}-  :#^rIoE0Hc0  A  @mc\PEj3*aHU ihhNw/6]tQHW]%}q)U 5{~\5)*/q e e)m%J]W:FF+Wi 7)d[q:ER - a  5B0:OYP KoL|x0(1 r  Y _ 44uIkF 9 x!keC$nUϛʩě{̈́[!+!)(O$ !c E D~  EH!  s5>\ ! P p_3 ) ^ 7 j v lb@N 5  dVjMp+7vV>xJ17$ۧAˎ dܓT!s! r >XJNpv o0. vz$y>]b!)jU] }ha  P-% D0l$T q . ; E (99}es|&\|o;҈lǘ`Rb9FbS d!us}& N1: o '  NQ`3yzR|nK H a Y6<@v: =:\ !x>=mG_ex (^3yrQ(l:BQM<~·P$UپƔ 5!!!O F y0 @ `C >[N0QQA lWRDpCGP WjY _ v D 7N53Qpg JVqIq`=;MyxɆ`X ACS(iEAQHV Lwi4v'8@y xqQgW:\W -~   >Xn>Q] 3"{NqRݣR@(ˎ̯{ &;L5p*#&''R&$K"< v  Z4YC+q =E|w $9/@msn>'c2 ? YgY  &J}6^ B:i #Ց.D#*2Hk o &b))(n&+$N!Pna2 s*"g]{n"B(MN, dYpg !$"" ?c)7Fvgg  F1bzRxKFBk,lˉΈԿ"~x L1%(L(&$" O>K RG[!,^Q[RU!aS N lg"?%h+ S=-um}oi 4 #{R/{X=)- ԌATuF"B' (")&& &$B#!~]I;Nv ;kae(:ZZQj[ &Yn U -l6; ~ptF n Qa8uR0{QS.f3~/bւӟR[݈CI Y G!m$y%$J# " AV ` N ml7 tTi$[q\F^Iv^N }nao_t ^7r|kO ) j;Qhg5=Kx{׬xϊH`܂$0 L%1 18#s%@%$"! x1L" |43.2.h6]Hx&(e1Cj >S)*qCSt,A1 3  d {dVVOLp`(:bԟLڣ-!=V  }#]$#w"7!8 bxff dl2g !7/Vjaj${ !fCP1D!FQ6b 6  H >+/1'mrADnՓݑ6u3 L hC!!! ^;E < (r35WL@5c0:lcW%2go WRWe5\/V; n1>K7C/C&Pւ5 ~uaE rN !! B .\  bOmg ^oc40cyMV9pgo @ O= 8nFoCa ) 1 ,-(>>L jkMqn}\܇p7~H"l ~ ` I7s" =LHS3 7L^=DAayX B *G9=6V. '=T?al2vdOBhK` YxܵܟLFz !fswoGP- g ano7B7 Z{-etf|h$CJ /,{ xd2 ? SXu q!Jjw  E +>II]ISi__%rUnzaߗAOW",) ss+ qr rvQM5    = DuiGf0 f /bo|T%2i5+ߏ5$&%>WKl t )DF vy| >% r b:L9 |;'qD'-^Pk nt$P=@{  Z6U#LO > % zmrM\2Jun|s>-)t#_ ޹b44U ^7Gq (&0\{R $]`Rl6vf+_E%zEe p f ey6MnD/ [q:IH#M|F;H#2nׂWӆ+w < wH| / 5G=.H.|8g?}QJ?lZh >@B a @)Z,Q .b"m9oAcA@v4j2jۼգ֦݉wD}, + J{p p d@0tX$dSE9:<A~I/q)6E/ LmN ;x]yX1&]u&w.Wp&MY? 0jc*@' T\cD c e 9ynz/*"%zKV&+6xKi.) y  q xKt\# L }:;7WEs"[s4|z@# qL *&5h|I9L[b8w>"{/^kDK!z9f)=>X7 WH"0#D/M\ 3/"xZ >h;WE2WL\G@pq(6goh^}d"7W4jp,_{>TzCb|m$qTgZ^iw~DX**4?<zs Z3 \/M0Py`>} l-/n5P q"ML:g:P,lDq|b< WO\bV-i=Vg|%W^a=,wehsa i`9=r"U+q{\Mob!` 5o5/'*U#ouPES>:_zoQPviq)uuDWl +M715 $>+j/G;4MmLl"bSwklba.w $w2d&i;P{bBAM+TS%S44 HJm)MC<;-b   pk(IVR>n!\#\rE. SW"Se-  &}!)`;$?6dKD =30j$6I@e  .hJ'8Z7ZK! v x,5oWIA"$W]VJG#Ev> ;\6k\f y.}Mx4Sx6f: aL\3KjBz; '2GxH%_X]|`db{)h :_7~h:RSoUw!/~h2ig/a7w~wIvBCnY1Dms(](Q<V(pBXp{#MX%C-|*K` I[,s!EBOK" Qq~h!.(IbdKAIn\+P/iSh!*&km#~ k-O x`U-@pJy|A=2[-9]5^BsHTR,EV2K(s)[@W&4_ .h6%4r <S{3jf!UZ,#=N %HM $s#M8a}H2K38Soauxd6,vJuxj~vZZAwo}h2. C]JJsxy~:j<}-.  V+,"1D\O27rtG"M(q49Xo3[=4 gW9N%!w>|(JlVA=hD[{vFf7  Q -H q ? !+AY\bu6\fA@"0,+51 +??d)<8  ^ ]fwZ08VHD8 7 ;c/3G4I vNq_w%! qbV-)6c]> B G4"N;G5s>%3ۭؕ؀޺ (1/t '.^QB lIHW8I6WU<H j `<%N<e_`<>?5  <-| 6x+q|5o7#jWK\ ~+DH^Dhr x o?c\>v!,JAd~ U3$~ KisocGc?QCO\S i=u\KPBNO5.66ֶӾҩӲլL5݊t2(qj8 'C<h^(W(1V<w 3 Glz9~$KS\/H>=sX% + r<H+%![= ew['P%_Zݵe|ԣש iEfU:"  ;C LJ ) 'Q^#lry=>W)w7V:  SgS_ ' xs='j S15AP*cL܏֔t4 X;dtu OPIwyv[\)_(& G V D@GZ1Log[$UX sdxac%)n I a>4 zЕK?AѪS" RE5<|O^ WJ [-%e:U4pKNM =' 8Z:KV~mMv@S:4 T 0 6 o=DP}vEu֎MΡ)ƠSҴ Ux>u2#K*Q-(  B m-;{AA5] Q [  !YuQ" |  s X* y 1 m; N3}ݮ<ҾCg&RI VJ}+L"}(+/ 0y'R 2  wh $gjPq'`SW! { E$ !j&[y/Edjc o yC$ O7(3+XضʔɆEǹʣLܡ61Rj N"$n).0( SW 3J~DhE=f422#ygKK) "g6rAs =R ,> | T&E{M0ڂJj7^RǓ]9۷ ( ."$$(/-/1)$iYW|:A&~N B{K5z?&h9t5@ 5  \  IrSX ڞ,d5ȄbQ4SJ -#$)-0*3F! V_A qv1ako3 'P];BywO  v jpC&r 0(Cwyl7R&2̓ QIڴ_  C 8 "%[*.,r"1d^0c6 TB4C.HH  ViW Hn w g/kEb޿ڿ՛QK[p~hk?h 6"%(8+(+$$f)b_(aTm.NvbZGmd^ q nG..d\Eg/rT0.   "l}3[Vahzri߬JZ>)+Yه޼rE "$`)*p)$$V! W<_k|Y4KTNg Leq'rT^0 B [  ^r:GhBLςM}"p-@ uX$'(}&e!K wU3_> N ?N  6  gnmF-AXITԌ(WU!قv A5$#%,&r#],!I!KB5yr1UyVit}1D j\#B aoE7cy{U   Op!z\1>;n6*O6߂ڣk&Ԙy\qFe <"<$$"2 !#&" < =& 0 5go& hd ?V(( P c[jt8QI-Kٌצ60޾sCcv9~ q I 5zo!fU & 'Vzw`Lj` ?# y h ]+17"mms 6  A-Y~v;"wxrBHݧۋ]׸8egg Q KoRw=I6so% K  / y\T=eD0&[ - Dn~G? B * ,y6 lsrqt^"vz[hdA0 k;X"f;q{^ : p  ^MWeBh<8,\T % a0 h m 9tHBcwwf $?-I J# K\{W  91 ^  b&vNx%wr'vB $ > 'kYn= O , tsWS2govN5N*Mh`^hZ[ LDiwI65F 2 XR%$^r+S./o7 p"6Bz .'H&r_(ILAD1  , { /  x6(.BC.:"+i{"}=bZeDQ[GU>|ug'Y %?43q %2;nV=WrG"'Mo}dNI^Y+&45Zr|8' X@KxLEg[^7{Oq-WCZJWmeTfCQKNP)KbA~pRG_;/k %Bg<d\ u7 n:x/%? h$Ta\zYV#} lyC>81~!>Y3;B `,mZ\?6<|G,/t QXHM)iH`Wc}ne>x*xe|+`wZC\NO&biC8( z0J`SGF,N!562 Ms DGU \. 6~^P <DRDL HzWs4v%i\CQB[^yR5M7tOJQc_JCcl\**7JqZR Y=HBP?mBEEoen W{NX+]`}4k |H0PE^K3ndco{ywk^Be"a*@ n[=s7PBN 08 r Ga2dDMUuA.Tl^m?+aHY@?LR  6At(?x=XE^]l"En /+CCQ`VrE*l>GeR<]llG`G\ih@bY +Ko'.B^l 1%,\!.PB0D82LReWX^C5*-49%?;+)#;+351%^?6KXM9BSG=Nok`V(2049FhcHEK>+&/1@67H;',),;DUNXJRm__ZVIL^_]`a[]RFTYCSJS^GNbna^gyoiSi]Sr!mkytnkVJ51(<[s< )&.BPRhr|i_C4 0FQYT:&    /202*    ,-$'-%(--2-,@EDMRHQURV\ouz{xx#!-0,0/6.138>IFCJLOOMDDHQV]^`dc]]_\i\[[`jnztttws}{yskrfbhb`\if`]YTPUZRWNKTVOLKA?0*'++' zvqkknngifdda]\bZ][`cYZXYSS]XVNJRTTSVNONGF@DHBGMLAEC<A<?<830.678?A=4554426/10-1045853-+.-03315421..-,0*-+*-*(,.*)#(&(,&'&%),+(,&&&"-&(((*$&%(!#  # "!%!')((& "%#!" !%,*&,-0/(./2355/4125.663411./,0,373.21'2-..2-*%$)+,),#$$'% #   !!%#$( -38;>IDGGFMKTUSXXb_Z_c`_ieckruw|~VJxf$4?]s{Yvc}5fOvLPziKby~x  #FVTh_OYZlm^]#t.R38zeXJ;r^U8j<1mn,YE+kJ0w]9lS+aSwDeF ://p6&$W-4`h}V=I(GG/s9t-'oS~$R#)E k %N# \U+}zeNbLo':7cvzN-y4[x\C (2 ?LMS`[ Y^?27KQAtg#i(HGe Au!>dwCL@jpn F /mh$qXo:Bj&7okpzvn}e2F* p]8>|?qn[[O+:qda4Pj _ l\.si/[-;6Y]tDNF?51?4* G X  R P  { * 2 t&j,X.SL9z\$d(=1\eE݊!ۜݔ(u~a5o ? $P X}CW1e //"wosjkAKmTZY * h    ! # 5L_a~UJcQfdսz *d0 b Y7m  v /?V v%SqnT*._# jjR  :=>05r % cqlTa+8р[J ]Ry~~L0%8O \ U 6 l0,T&i4{T8E5rlK|q"C p U r w (e [l`VJ1?m R4ociih#ׂңǰ-/ϐ6X~ -@\!Sb \ q;S| {U & W1$mKb.&y: ! S  6CD|v TN '7> a  pX 8ldfը S0T˱<t+R31+!"-\~g*g9 %X041(^v߇3<,   cWEgDgp6F v 5 &  )4 #U1R{AG|,|Y8k̥ɸd؈z5A?3" a-` '-1u."7~n7[+ - "Xj N0}߀+q;  ] srWUa;9A dF$% '#qx U:i=@pZc-5) )iq ѦʎԸ""37/A |5Y ;!%D%7!s K#\a<9vGR { 3`Q<*  H bU^   jb'? s  y!5 e ]j&;eH*& D%>Ci8v"I  ' F-0*3!gc 4]F7{e^NEW 5}TRjj^>a`WP +!"_$,&s&k!& F*wB s M  3~dDy-}(ӉP!-6#/$DiDTd|3D=+S+w+WwJIor \  o3| Fh_- Z@PI;  ? a _pE'"*f5FK nt6  ߺWC$Pg.L3(Hmxn7w2C8R+r5/iRp6n8a)Lk9`r$OTT8QN  &  B /Z6xul~@%$g(SW # k9p 8@t(L.%WܠVҔȌ̾u !aJ;WiH n''#lM<~ / :L5(t ^)TG T^+{_dE/#xdk "d>]D\r -nCJB_[  ?^ ^`\5hvRx_هBƓܦV &eJ R.v ! 4Z/"k j  t2s{lB( YOK %69E7EJxF  |/|* F"q 3 [r L%;p.  n#!-zA.s9\ߟ!QHϻ}  $ {) fYEb\N 0E7J'$VC"FQ.EH& Y~(s B ]d/8 t  zt@r-T u I ,D{]>&+994[oqzEZ qo*&^  o A  oB{\MP?foQ!){\gyzlovx+N|FsG M  % 6 ^  527f 85O Bs1f=ޤju- 5<H * A 9 % nutY5wO{7EVYZi5> VP- > zCV!r]#!3  'GTehE)`cwdReS~VgkO&){u dZI-Lb19j" t  @%U/jI/jGQglL'A{40UtGazB}N#")O&x B H o Q a.tmPY^[%2=y~N|<6D>Q;}5VMj6C h (\^\IX!ir$RuyTj6^ el_R:5zy?0MnX&8@e[x))Z/QasKIr*c/ 7&cOIp EW ?nZW%Ah4\ G ] 1 0$K-PJ%hYF@rPAWMu_ ;1p'6},J%O|oQ\7[n*~c* + N i!LIvwP 5k`j><j ]j] wE+?Bq]EXiO:}IQzxGv 2@j'\$8BN7D5k>O#K5yHzkK%.!U@NLdi?OpJKwsIxK`rcYP;W["VVLV2 OW=V#4A "j&H!`q51?%-zGvd;>XXAx8QCHM0YjG7 Ri[&P]%q:,f\{.y.uKwEV,wU96l3PL+\'`+z >0$F>hDHgF?z5v[azVgl' H^[Ir#Q Dj'u,[ p@#"?J\d`esBWjoSQ,SvSJFRb^EDDwLgi|E"kSl16%"*Ks\WLo)t>eUqB{L:*3>m|`sht} 8P<Eu.s2i'yL1& ws+{teIU f0I*&s-J1wG7rid*T~+' dCA2+7,* HHe- 7x P -ZNb1Tfvz~jbXD>/!Py^B.8_(A^zj\TI7(xK$p][Udix6hP!1HGDPNhyH Aa*sPv?zk\YR<:Vn=1%xS#6CHQH/V1c=)E``lofaTRLU`ZopzzkiH5vZB'% #tror}w$6@FP`rbSB8*#}zkcU]\bpv=Dck,?EG1zz{bD=2:EBF4836AERQTOQHC65.(!xvg^J"n[TUjl}w[M/(Ag)^?Y &"!iK5"(>FMMOKNJ=A%yX6' 27UQXQUPSdg}laK>& )Ieyzl`kgoyx 6XastfS4) "!25-" $E\k|skmpvvqwz_@+ (5GFWXaos{x|klbdfkdiow}~{kZJ?BRcxiN1 /:CC:5(* keTA.%),&#)+9CUYjucT]cksoeXR@5+-#5ASp~xdPE9>EN[brqyoddSF318:Kmsl`^`oz~zrfYHC5(,?==P_Vahqx~twxx))/$$:]i{R@<4467@F;@C?5,-*9CS_gjpodbVLLWZerpsttso`VGB=*+=<Hfmo|t^][HKL=06AHPdkaR<"-*1/" !&'/12*+!!!*1<?EFD?<1(,35-66@<:KSF@>3,-&"$(56BBGE?>@97:/3238??DDAGA?F=>KBCFFPS[VQTTTNNTQX_a_dg^a\a\adkoqmoohcSTSXXfefonkdhl^b\X[[`^c`^a_RWTWUTPPH?GDIGHAB79CDCJF@=:;55@:>?DA?G=B:>3/0+.--/-)/,*+#*),(+-,1/6+,$,)$)0)0.)"#$ $'%1*4*2)-,&#-!6"DkxXu6{5@,gwTt&l6WzAIVj&(ZM9#?u~ck82J\I+6!KVvwXlXlu:@,Lo!1#L(5*j ]\GQ<Wp}{r_0 ,(R >&YuUMAh73&- 8!/+wZ |IyV .;O{kS_"zdbH'EpDeKW MY5(5aQ]:O#Tm't<d&xdC]NQj64[8[nb*~q }WqZMZS(aco{3:fyo79#h;"1Bs#+>W)D J8Yk,1.Qel#pEPu/T= Yo,/WoJ?@ NKnmbi85(\f[ 5q;BLjf>"os&qv1/A0'"4+=Bdhj+%O_T 5FuU7qr45LqJ(,r_*oFgi,jsmEy c-DAEXw eL4(%bk&pggwu:d_KLbrp|[/Eei;Ur[.UkJaD1MA\s*?3[a=+wz!8+'rB'y=u08ej=<|[L_+}:)U^,9T 5)eDCQ4s$W5# JG>ai{)7fXbXa 1dMF &Cu5"{CR]D]zzG .8v}V;lJiiG2tD#8 ]s*hU>2C9XuH{U%799:Ym 01 Jflfy:w_d+]]&uws.AJq7Sha{K=;'}#)=W /gIJ%7eO?*dnTDd><uqf?2MUXS-o1N^N<q; FE=gt$KId{PlZSG%$W^KLk>^&Cb3SmVnbL*xt=2 A;+cN1O{CMyCXq*"\*X/ib6J jq"m FK(*$cWCnWH0 Vy=MuPn9c2 .3M{<5 KaxK3A{A?Md1@] &o2wU.Kq9s9Zd2@ZC "1pE{Z <,d[ZQ cHd1R( J2M[6@.k:>|-T*/jx>uE3tsQ=dR )`dm ZZBSDHsc\frh>xZgj9gy\}Io8FC)BjP]X8 #&MlO mtPmBo=usY) L[>o,RDsKD<E<Hs>Si0H_SzOH7q \v 3PDU gT6r5"{lGdicWz%c{,|`Q&V!6uxm:eN\&2B4"h\S&1uv|IJ|Bj pF 0dgLs.n$m-XK~n?Y}-$;PL-SUU sH_ '#2 C v N$QX!B(ms#T~h!+kz#:EY~ |3+v3AV7w bx%W.>rsANL9l @#=oKSPd<m;{%2gG:`/f@[,|5ZqFa69}?i[ >)K-GyKQ;+beb &bBpyMM@' ,38]wkoxp{zuaQG9 !#"/*   #$0;--AQRiiVRUZYdpmafrmbgjjjXA :Vc\V4 0c~pX>#".6,02-#Gzxs|rsyfYTq}WFWibc|wdQbh^ay|c^mzzriUSkjXb{fW[hyzs[> -:JA&+LnvU<0 semg\OJ9% =gvomx{tytt`\YE=8;9?MXQB*#!!)+0;EFD?32.!&35C^ixslokk~saTLICCFOZ^ZXF1,$&:XykYOCG[i{}jY[m#'$27?9  .4=7Bbsntr_A" !+4@O[hfYN@61B[ygC+&EqxY0985 $DahnekcTM?B-*.?HA<?9 !8FC05eqJ(+Pp{`L5/HVf]:G`YD/ )@Uly}~u\RUbm|{dS1(+@bc`I??69ALamigQ+#*3:4.&"&@NLFWSL>69=BDSVVXZWL76'"24BLO@$ ),    #(+""/+7PYPG?0 !9FE?;/$.:91 ,*)55>MUA, *10 &I[L>% 3GHI- *8DG@6548>?>;60 '*G_kkpgSMEKXn~un|{}lk{y`\YYQNRB(!$1<3+1/4;L]oucTMOGJ`wuxysjPFC>DO`q{l^TD@4<HOMXje_[XL@>EUW\^V?           ~~""!*#(*($,&!58>I9+<:>HBA<ETUPNHIO[db_gjgqoinpx~|xwsumnopjia`_V\ZRYMQ\FOKE@><D63=)10***"-"&   !#)')',)0596>::CFKLTRQTX]bbkot||u}}wuvuoooopirkdjggd_]\Y\TYXTTPONKLKHNMDGI@CDAHC?>EE?DBEB?GFDGDEFFHDKE?A:==;3:;9@7:797:;5::77:=>>:?>>=3:;?=5>>=>88;;<:;89?>>><:9AB@B@E?CHFIIHKMBKOMLKOWSU[[][\cikhnllvuvvtt}wtvqotrnrtsmjlfgfa]^\\ZST[XSVNLKIJLGIDBDCD>8>><9966994+5.441,'##$" "(%' '!!!             %&)(.37728546?F?CHLQUSVRV_[abliirrrsxr~}"8N`>6S=Bsax_%l/,U|\T; f+EL }{!7>/'m:hrEr~*c@&{r`I1fbe}_{4=GsuMai^ _2!aE B;+M'>Z2d?D)xQ@7w_w,Tt{JT P%+9+)rz'$*~a#>[{]@<=CY6Hbqn*D-kx>G* l zZbp;;\r"Sq]+>'t uu>; mN{! @ G4>Yl9J )+t1!TYQkJY?C5 > @ % 8  R$9YGCQ@&/5#Ax !   < w {  8 = w \zuIWd*}"q# g  | o 9MF Gl  { % E H #Zt-08*ex/d]frQ | Jr5lG w  ) [ 8  "wz9Xz BsP8An3 V @=EV}l_5 y 0O^.C=>^MlA_,`ile -J.B9 c Fr-H_c`G~=J14:8T  W f Q \ k  5Y:+kX4HFOc^^p"1@g ,   U  9 t  Bh}hZ_ ]-R?t6!T;Db I ! !  O  ? [ T4LZ4b9C?CfJzU'} XMDCMq 6 ^ j  [ / % h  x K9?P!63Cy=LRm\g( D j ~ C  C .  ! n =>p#Q*x7i\;dG0M*7r. e F K X t  X }  1@"fE(rqP)vqluCP >03O ^ o . u O >   mJ H#uJ~x p^gUwN  f l T  o Ps^ EwI/ & !F9g#>Y 2 r '  +5t=   Le['` l |xqXǛE9xS^ P"j" c]RurP# %'.10H-(%!`|U \ۍ֖Є°*74ݷ3yN ]~ ]w!(,j+.$[D =^Suݛ'YN `#%,6=>=;2)#cnF-Qމ!GMj ޞxL1 " ,T/.f(~% F)^pڶF c")2+=C EAz9-.$mi ~Xɮ޻HBԑ!vF3 a*r340l' JtWtVg;"-P7@H2L;JDA;3/h%ԅXw'Ȳ$T%$6 U#@(B0G:<8/ O><\Hф?%K x+n9ENSGRLD:/&\6stؽnmb ܧ­;jj n&.j6MAF-BA8)' DFԘ̸0&U"C ;'8G,QWWeQIA8/N'd [Ӡũߵ"A.s )2>WIKF=-.0m1ߓɰÉm|&9 H*QUTdPHL2F=5,= GǞ ],3h?XZ , .,;H1N KD:,T" qxٰMalW٠7-<)GMNMM!LG@7* U  c1Iؾ o.*;INKF=39/+j n<ԜgB[Vqp(A4]3" ȳEʛϙN𳳺p͘Ox"5V>=>z?k4"W GlIדՐHҷ9o ]+5<8CFzCC>9.{Sr鲺0$ 5wa/&04x8:B;>AA9) Eۭ؛)ڸ~ <X(2;'A?;7/j$ Y\ĩl;`YIž؆~ n&v+0757<@D:O+*F,}پش@A \b!*D4985J3.$X 8҇д]ܹ@S}]'/r35: yy J#*,^+*+(!" y!@O+PK W%-/J3 60&R }weA_ \\% (&&&%srlx2Jx~EC.s p$g+h,k/0+e#cR -\5UU L#$"S"A##!'k`wֳͫM:ԛrG* &@&)+.+%$(w 7fbm> 1 ^_""!!, +ݫ)e+vÍ;] %(,+$' CC 1%>:xz> U$  KTۻW<̠|;X{ "&#()"e xyW 0f *޴e?ڡ'j(p t !1&t$yL,M p ( & Ec`J?x,^8ߎψH(rI q}? S! $ ($J3$IC] X 2}LA3uChǫe1v] v!^<9B |la ^vUp PlqD Ȝխql).d EGql E; CR0 9hԒͧσ܁A^ 3YWUFD.D B2{5z DL k?z)tC2kt\< ~EFX`` [9 { q q r|*!zgZ1ЖS-P-L 4vTDtM. ^ ;  W"F yO23nvxh]ev k E obv5! x6wt qL`/ح ҃wM vfX3[  {Pr^ "CXt/f O ݖլԠ!}FZ 9> rJ} +  A:hO7C)I-"sJw >mJ ~ LU5[ j s`1QykR"ԗsTu~kJ_ va7i cl8yL  3 2:Q 4N27=.Z$f 6( oa5m >Y I > j 'g:9Z7[hc) VJ '$`? z A M V  n  cݩؙ+aSB -f . k3v64= ;# Y7|]v .Ea Vv lvI ER8k,   5;1SKh :ؙQ1rG u S [n+hF/mJ_I I u 9 J]E@ڠ=^Ezl!vN <%d:M^ 6I - 67T!T2ݎpu D hi A o5y`"GN q" Oa^I,&XJ:7i~U yioh, ) n | v: rؓ)u!}Vb0 v5 uO & ]  ;  GZEh\Ej~5Z c =:s.ylD |hT  nUY߃ݵ4. sx  %- *y:iiX\ .![oaI7B<* ~ ts3&uZ3jMb ^KS:<&l3jL P*~W~41E`$WZK.w,gQ#/:zi1݈[-K3'  A"2 nhv@j G7`5r5@CݫP^ 9*y3,xNhd&jfVn&cjw u  a d 8jjn`'n ?U y[7"?u^"G F D W " J"p;jinAH|z@Cybr(QV#<d{;h+xGz^xuMr:\~_b  h+8uK<P7GXxi@+tTQ'>yaZubWDw,+" _*q P)q.[E&@&-M?( i:1{U2~LxJj.S J{'|So !p/T3mrKnc#ZgR<%}@9Bw |x1VwbvZEb}  e0xnNz)%Ld=w_z%kqc*_g_Rt&< Co P A0FI2_'7 /).d>64nJbV/8T7b()wnWO`>2MQhepq5-~72447vDF^km6H;8~Ku6b/0M'=jFC.m:pO:q 31F_7ou`3h S(U$Xju5S=xYXmWSB bnYQi z8Hޤ~KtO l_ 5~+[ o>9 q O :^cLgv Q&!.9:[rm7$ShU JM o/4/I6)<_aZ [Tt`82~6bZW(F.<+D HN l,:dZ:U h Ox0w}Et#1 fAOG h `034 >X 8k b9AY/ SK>A3LH2~5 b8VQ%+fs.!?x ( }cvroUPQ=I{&C P\y LQ9k9fICMLx $.76c(8%A/b!__[Ul`L d!= upw9W5 ^"lZiw3!$iHG( NE1' vh6 J Dd LOn9V-c*xC QnLa5`^?Mk_ Wk$S@5lEznB<n!k\-{of|W,*iEN}u,5) m^85l56\_km4-`OD5<CV%rC?1,Z !]N*g#0Gini4y9b~&-U/Qb)Ic3$ //LG! *V3{]j8Q?}NK%lc,~9Xqm*Bq~PH4p*R8'sL`>C3F"bwNf Oq*aq3` a[VAH%?J,H?~%;>P5Ci[U6F 7`qg-LnTcm=VFK}T?w i!tQF *DG7cp0L3 v ZwELG&CKs&e'Iv,>2eBch46^Zmp =v1GH~@nlqrV`+v_1M\G+Z-J[hwg^Que5e# <d.w{G4IIz<-::9G|kF?YhvsJ ]J)*LtMa]$8B#oiZF/ rk&((qbZ` ~JIK=9Ls*W-lF'j`uDA;OepsUaJ 8J<Y v{YqS]|{JfG /Bn~Tl(p gUtq$zmjwk@,h:Ob+ 4D/}eg9w$)8;qEoxdk?|fYFU/4h~>nMIy@Sr/6KD` 's ZFkQ -o#@7 t<vi2u(I:;fg *LHtg /IG@bn<:d,ovd$O(2o#GI )m%YQw#4C.7;+BJ@\L}E{O&$0e6N;10si!(8vaMKN5]%Cq- 2bA2Jc)q8e ccfxS87\wM~s #'bN0;7%[{Imkt]6cpG>&<JjV(Z^ U ++&6M`T'nB6mLDF{95  ^#~i*!1B}Y%KQ9eYv~d;_w m!y7wq^#L@6-Hm' "X 9A$/ob]pVDoU{xl`>Uhe~p ?_,^P24 oN ^# U J '_.g % H!k;$=x!-W%j^AqW 0+ bo vXM\rW7 #L 4`X'˴1Xخ+{ F]w } Q Gi24!t eRq=vԊb˘Y61nFW ByD"i( j = b ! CrCs !"! !#W(]("d 3PPh"DF%a߽Z]\ l0=fx4H Q#)G)),*&$!XNOߩٗ1*l `ZOg1 AM_z]w_'-,"'$$0#wf Y4F3 ߛ:\ޕ. /  ixTt^l!f/ "t-%-,-#Z #=QsQ\G&1Co3ile`~  Q 0  * M5$)q#>6PfDVE{,_s 9W^ o&hGEoY7'AcMrpr j*"# * C b k Ck  .^2wW{&eBaTX2VC s<, n  H t> ?x Af,  Dk O k  `RFB ێe׃:ƞ=c1 h )IZ-@$AI[0 xFE & `i0\,_W&ަA4kvBKIJ*&zLI NG=4 e@\N )t=tjwKS%O C9~z9  &WG^68_Ku  a  t*]5`!IK?$H xity }q k e+JG  * {Ks0#a>LFXwZuH   Gq id  3 E9 V aMSwS *4޽|zZ aFFN2JM 7Y8I / ir ?j\U3s6V{J^*u#'3 *J sWm U  4: a 6g. o _'Li g D py r R17j;MS?$i3H: S%^  P mn6[/p rvs ) GupTjBO.n3CHE)]R* " Cd L 5 8 *PhY e qb4L&&>EzGs=Q2o  V # +#z -99] hV,VAHLc|!}f  Z- UD 0x]Vm{&e W~   , uDnpO`;8\*Tdd[-$'p !% >3yx[N], @ BY & n; F\xu'N{JR:R-)],*fM - nVfZ' hiJf.+;4[d p`D +{8I ~ Uq  EWl3b"8-}.#L?2r &J]چF@m(> ~ ` {^o  , GgU%7*C:_$gXB. "y} # zE  I. :D 7,t/YIaqbd I]2cU 4  l J a ]iAhlTV M>_[|e:l~<  '{q@bb E< 8 [ (II+`qSP*69?p$ah  Lf]c[ $zC t@I  C%ILG 2R/m|HaLI 6%o !m1 ,P= w.i,0 [ -z|~G6\kXZHbNZ ^y ] `I /7a  }U /B!  -LCMa~:zI,d-#fH5FE \ E +2 D -F N > r \ 8 XD~X{uW}V}xW1-ZlbQ m r\   v b |~wwpEbZ9mvw $ (      h 2   ptN~9uV* .niD@|/!c"s- d - y u  0)dx,P=JXb :p4:lU yK 8&99 K >1 1 f"vc1}}i67cIkd 0b.a6 ] D2}nV,94_r}c*7/:Q1_Wy 1MIY2geBn+.F5[uu.}9@=_|TQ%>ndkb_]lEI~=G#tB o-C<^x! H =p$%'b>Gzl2!s7Wm zaak eUQ5(s v) %2s*.>dPN*<mmP.SM +d[McsMH82),8HD8Daqz~zodkaW^mopnw|xwwtyknz}{tw}|iptorn]RT[MJG;@F;444FACFLZfbWaqzyqr|xzq`VUUH:0"}~|z~{zuuxtkbVRMGA<:6830/99367=9B@;=AA373314/(*'             #&)-.332352062.,.)(1'*"%)%,**163<@;=DMOLHMSPSV[]dgbgfghjjkjpspzz|}   $(()(339;??HLNSS`ZW_\\]cf\ckflkmqr|v|zyzwvsonhlmlmpprmtsy~|~|ywvosngjfddefhiijpgeehjhhdg_`bXXSRPPLJMCDCCDFFEJJLNXVZWW\[_bb`\]g_][\[ZUTKIQHHFADG@DAKDCFFFEOILMNJLKA@;<:9:3.),)!   &2;PW_fyph`Q> hTF5$ raXJDCADFETfny&9:GP[adklggjfe_\QLF<9." 2JWgrbTJ>;<2120)-2..4;=?JRP^gpy "+09:ALGJMJROJOHNGED<;>803+,,%$)(-,*)*.,49<:=EDHLMUOORPONJGJEIIHJGDE>>:8<510,.)%!    $$('#$!#$#*(-.+)).)/)**'"""'$  $ #$&!)%()/0/1264.78543:803;8678:9=><9>>?E@FIGINMRRQTXXU[\[[a[b^X`_f\`gfddhdjkopppkmpqmkqonropoqqqrrnmhjjgjefeh`a`X_^a[b[\^[[XXSPPUOQKIHHFA>=?<:68524./+.'%[w'M LI$0) ,. %+ - 4# $          "$$-"#$%"" !!" "!%"&(+#'*"*20-,+0-/72399<8464<6;;767;4::>>:;<E=<@;@BJD=GHGAEHGDHMHJHMJQLEOKJJDKKKLHKJKKPMIJKKJLJJHGDBFGDCFC@C@AC;==;29=5:<98?9672/3/20+),,#%    \}n g UCNA;X$x`8'=1S%j>w  7bma 1|aBx m  !VhN*VZ_,5QMY&jYp3RE$W|a(Sjd"b `R`/ H ydifUXg 2,B;+c0dE@Zzge u,-lt! T8/>@1?i C.m),G(QH7T]Dp_m PNgSHAXabIg*u I{,%Au#?e`d0%\fQTO}RDFONbllMy\C" ~$D{qs{Y;lfg_koZC6ui{-``9ag}0:p~JkdX,C6rBXk.g1b0%}{}?T5*TwmRefu*6 -%e[vM7 j WkD9^1XW~ *XpoJT82PzlC:jdHFk@/gUf=rnY: Y   r @  ; jau6'XMK27Y~}6_V ! n $:k  }/f^R W x =!LR2i88_txvQ60k a  nGv_t?  j]{@ jdnv9f*(Cs"w =  r:UR ; . C  f*3 CYD8VoSeTb D   ) '  M 7 5=(~zZ f ^n]DkuosGyySU[Qu o    i K {  Q } @ <Y+!Q]REnd'2 ZdX ue ~`J)G  h D  589Ar w~0 l uV9T/,; )+ {  9  WN5`dSHeHPwT?)e4.=N J"@)b& Q)# Q 9 .#`s6?L;QId!y?|ABgf`M0k< ;( {6T&lUAk0  %o(,:k$,&?lgT n#\tB)do<VWR; E<8izp4").:cUvAq[40Mb~@ 9GZBB^:h4m +0r"=j$;8DvMJ];)|V'r & 7 > F F 3 Q,,ji7qkL*WX7Lb$J6rA0GDK"6=#<\#yqmz f,~ ;bcEVG{4}WWQP3G:Pit_ AaR=$ ,Or#Z N`iCM@gn5H~PK~+S]LnQ+  A] B}X0sy BQ=x  x5V:^zmyFM kpny.eRO wHPs&z*UqzQ9w v\FKe^)eMV6|Gf T7[tfA <2j>CHCB<@C=7( }~wvqqohg`XIPLPKK?<:28:;<A494/8287+/-% |~~|}|yyyx{wrpglkqoisghedheb_XSWSRSPLQE>E>=;?83945161+-*,&    ! $001.9:5=:>DF@NNpx 6>V A:Q|TP><wimhm#M5dva"ZJ2Dv$'PY!p>i m GisnpM GskiZ)i4 8LTv2bx }4jPr[- b1S'@Bqv*W3m g; 6  $U~qu/P &d  .UbBTXyg!  MP7>6;?.fD[tS/o1 b\:,niNN45!$`84#CV/LRVY7=+2E=?=x4l]z_2VUm y&5 LZavbm0s = n <g F k 70h<"Sv\YDz 2TEx+ R EV qlFM 1 j$ ! KSg  w~(`?Rj}p;p_s;;x b 1ge. 9 K* ~l3ix 7 {\t%S}1o!@$<J[iSH!]E2=WrY ! W:l !  9#i5+iAs5 $&!JkN}?T#W  *z$ \o ]@  :+6 \)> ))'P `A9ZO^1C4g}ol  D w+[9(]{ ^ b~3V|߱uU)-O%Y4?\+ t 56" "z Cqd? {[ 2eF5G k+)5| 4p5?? H< kPJ<) ) 3  \ K&%mFProRޘ 'Y.[(RZ!P  3K d4*Yp>~Y  \61  x/+,e"?,f) 9TfQ  [|zB ]2 r ~ ?ji[^{8 # CXU} w ,+  /YIXoQ7uk}t |5 |> c4o{P .@ O+:)G 3jp*0WSe1l 1aR L2dr y O/Y q%8]=';b#d+%,y)uj ^D]{kI _*h wbzr AJO3hysKb"B.*f'O# $P1U\0} K FZ4 #^*a 2[Js}Zy$/*@ E<3w# zN ] vC qHg g&Vg Va O{^&D5>-80!C LzLky26}0  s| wgYi1n +kzn 7O );+ P Df _ CW A y 6lr& ? 2E$<_kMR! -<*qX DB ]> wo3 o  'Q`E*C { #   7`;<F ) 4<3<_T"=hj 'KN|zT [ k  W 3 T  &[? C"0][Zg,Ry!QNJNA1 % f : } SO1*-J hAvH$!rGg=pdJ f { t^ \  mO sC f6Pkc$Qac;Nn q\`V-&C7E]%sL)c&![QgD2?hF cY<_32?UBVC-/t;)!5Dvf^y]vY=_WlCEu_dIc+2Sp[2Q D@@`NM(9VfK=|?TO4Y|S.67n y 7dbL!JWJH{^Uk! ue. 4uWh+oBb19N[b* VDS>"[<gkn{!Y^g=SmCT# e%tXb;)gFi@HYIr !5E)1N'.82>_ :cd52xEB cCH1ZBBEK22 ..,xaa'RX^**{>[& :SJLd\#;Hx mY9jsy|r^\Hc}pm|~|hek~lUWYm{tl]YR\ioroT8# %,<6*(! 1=74,30/;;66+ "  ! $!!&&,&/.+*(*'.+44:7::;<783859:;52915/(-'+,/+028;0653+3424-,)%()&(0+3711)./..+051500,)',2//31''')'%')-/32-3(''"(#%*-)-%"!&()&")$&%#             "!&&'*).0.*-.)011)52:7=A@A@LGBAAGQSSTYUTWXXYYcadcghfmous     #!&#&+./.11<149884?<87<378:;234?:=:>C?A::7853?:AB84?<=97798>?<<=7984C1H,N,V*c [TW( MK:w{k^q[(5U,hs) k';rv3*48Sq.+M{lZl0[pP(G|"JX]1 kCO`xlG8@\fs:,q6VaPxiW##vkfL+KDB,}6+2hD= O&S~QD07vR< J4mA^IlL7 =rz)A4GE((<1ao3X7x_# 1Wj6Z(S$e"w<d $tbkIHkisQ!VuVVdSZ"3K>R}E=?BDBEGDHOBA;/53/)),,*))),+)*"$##'!#       #(&,&+')-*1//2,.,)-0/04650,2+1859>B:>77;9=571154.480347459540353<727821./21/.0(,,-/*,++-,*/''*%.+,)(+.)&,(-*+,)*-*+,./)+++-)-2035799:5552;@:;??>;=B<@A?ACB;4;>A@:@<7;;537:8=66206*1//-.50-*)*)'('$&#!             !!#)#'**.-(-*,41:6:=A;?C>DDLNGMLQVT]\^_d^cfiknosxwyx~~}zz{wrrrohjeagbb`ZW\VU\XVSOJFEGDF?A<6:87350*(.%&%#  %&#*,)*./34497>;9CA@EKIQOMVVVT[ZW\cbdffhfiippjntqspsytuvpxzwuq|y|z{{xy|yztuvuwwsyzvzvvyyopsv{wz~~0YW.1 Z`2a!!KV]jpU?PV8VGn FMS3=>$Orx{|XP4kY"wPKiHX&i{(;15 :z}m| S@p+ ?ML_ZLIolqj/li\fmMhi1{SsWe NSD_8O2k?tSzLf{Ac}t ?v4<.>L%+ XfK KWAcT2$'dT$@E"~M6,pklY u > _I<)D[+1@s$S$Ajaky,|hmI +^7tk  | :P W;"61{zAmb{yQK { H{2MV;/ | I\~Q s %Z4U=I8xm[ya,H[`,)kf(B8O,y [BKQ  / , X  s[\Ej:L\f P]B{pSCK*`- fa :}9 .  r ~ } ` l dv} HIp}x C/lcy[m#f4d tPj { =8  nJm:}nc?:bpl2kz5 9?R"H l  N2  l ; ^ 8T11fX epr#D1y,lP"x}*{j nz g  t    V @,3h&ju#sS7Eh]~)hm"cY7E -z@ ,Y( w 7 O _  *0<L" <u)j-4VN<:]Rx"k@iH(kK)+ ,j A J 5 4 `me@X0R*,41;l5}x~aa [ Z F O  > I   \yE%/LQ c@?Y td .Ev6F+_iy &+9 i ' d/ |N <NvyڋؙٚAkZ] .:!& :O`  3J# [Z] v <=T"> aexb&+>OzW'In>S_L ol!{hOxS Fi 6 mv_'{=XT+~bXTW* aPz ~Qv9h /\'_ 1[btGXo \x_zzAE)$4K~-,P1  7^+^l}RQt V M z n L1  6Ir~N9doU2kB?w.p | gQ HudB9B$} Ff$} YM7!DP*V>M 0 K=QkAt| a0 M  `$X [? "/A5 qc7 YK 6vZ0.r --D U%|V[#0kGkAqQpGx d %g6^ l;4;<_z }'HyEb  \8rz6mc@Ab>B[z -)! bP zfG$Y.?(Ln U Jn!D&vvm9@REJ`\\-{ 7) J+i% L wE%Il/(ov h ! ( 1.g6{G$s} (+f" c:; Ep-& U  ! b yR0h\$hXKQI4ibz"nX Q:H9d[PU   '  uu.XnBz<ia\Y+gs ISNv'Sa  IksFk(t8=Q h =leHQ1.w `.|9RF'c - iw!i5 .VmKd0 $  L 873V 5-W Y?JqHdrR 3Wexfw}Y@*X!^o#6y QW*P}zC%$ {)roJCxX_q Zc w}`< L;\'3' "#%x 8 ` }N E-nNb~Uc(ib8lPwQ+LpB  Ce F  Yr0aEgH|%t }46|qr^9JbATu   ,`0 . , ! L7<M6zntVUJ!d"0Phz45 m  97eJysv :p8% bDh`R8p:N051 D< y wv/^1 q p ^k7,I~e27|Xky)#6Q&S1M+R=6 qHwn eWV o6.2UYj[r\Je raTFkn#N_:bN~w i 2w=$L 0 y@|h3oKU7qW67VKxv{h$ q + /w34W|  ~6]i&I0"M"=VUMG/_A*!|P=|e U K.~u g =  UPF-KPe\[Z />C['c85g%n| * q ] x[~67RUDW%\jQA8Iy""w+ D \ [ O?s5   h9@,nxTC5Y1gC(x'>bpyU  Eq~FN V / "C!z3MoyP6dSlOG@zCT!> j"s  | / o R;IYh?3 L=g9K#NEvqp)DL  H 3/j  ; 20R}OT)vq|{zK]`oT5x"gG\K; }toS& Z l r#>["g[@8.!v=r^S( $~qv2xPw *  X{~ n .  9#f?UPEKX L9U+i /o=p f  y [bE!_F a $zY1t< -;4m=+Th>N5rT ,>E% n f[7iA&4  ?_rM/ <tQ.g^qL_BI=KyWYclE0  172]pv^@"Ktt)Og#j$V,qmX>>FUr {0XE@BVKnJm?mN,]9Qq   rYD4uZ8oJ25T| Pq=l~~gJ-}cQ. {{2E_y#2@DKX\\[\SF>3#kUJ=1/" &-8BEQVbmw~}ullkkoqyy~   #+%(*'##   ($/1:;7<<>DA;1,+*(($% "!#*),5/=@FBELDKHKIFECA830,&$$$#/(4-9:>HHOQQOUQWTSKHGD@??9343/6804749=DCMLIJKSPOPPMKNDB>:=2421-5($0&+188?DKKSZ\dmnrootsyxriljfYYUPURMMKFJJLNRSWS[b]ca`jfcf\ZUMMHFCF>9-$#!"$%&$("*&.1686A;C>GFCEA6481*#   )-/03;:@A>CHD=AC:?9<=3.%&%!$!!&..15217:>A@BA@@?;9@70)"#!'('-24:=;<?A:;><4314..-*/&,*)%-.356<:?9JIJFKQNNMNRNEOFHKIICE>BHC=KOJUSZccjv|~}rmied_h[XYSQRPLVRNHJEB?:;;851*#$" ~~~y|}J+8g90 ]>;Kq$^$/Q=(A^0E0Th7l{BDV|fgclQDTT~dj^u.d% fZ\Xa6@'n@rKO RrSQ1-2{|`wc * # S+X'5kq{?Ar  t @=7"xAh%:K@7^y@ E#|$,/ G@:vCߛm݃ LR S!$'%v"\z K"Z\y+ v(k>l.*:F )N5-&-'%91 nr$HIt >~s vB6̠Őh# R%!!T 1K1k^",*b#   ! L x.KfGu*~.JMjSר{ # F!.!7~\b L 4  }qPj / $  uPD;cݼH-zM%,$>w1pP V.lLNk &t![!k7bT bW \[$qaV vR u42 pegFt+:\>G > G # 3M5MV #z"!s%*"&}6g-=:`J !&{48x1~L g @rvEiWPPnX+-.y]+=M4 HKObZpf aS eS!sNhrc CEGTTV5 ]+q4ܸf @"(L1|7 ZCZt  W [d9r0 z @d&#>|uH'"v( ~{  _V;:&]j r < H2!I4efC[5iP)y`I+i4?%`_dYd J! X 7 }  , Ps<'5)8>eJ .03[8P<)GC(d 7 d \ (Kw}zU!pF:tibDgf8m(v{@,f#~bM3|Fn~Z<WBb=hW?0L})&'<WYfNZz6n;0S,t9oUd`E(,(hFus^i-Y`WuF[)Zxkh fx9<1Nw^./@1`^5NwT2fwqp W5;~Qp_u^6 l.-0Qb_@+|]:]OLjrkXb*4pe7Oe^~T.J~a+{5a6%2-K]y2*<%{x6>!uW]C}/\R-W%|~1^VX9 )@] Vdo4'o5>Ua%}'L5z`.`GM"xWyKv8K aA/7@dPFS/T![ky& y:b>/ aCNxTS2j}M`.jZ2M1'kox5i]XC_*pyWZ-F4=yfG=[fw*BfWc^&=IS?F 3fOv YVgl?O66&;('rvJu]BK]7)@|eJ6.4~fP %LBB.8Lw~rOgaZ|u6&&0ZjudH5Kjxgq $"$ # $54=?=DB<8B@BYT``LC1#1EQashYT:;DMNIG58=Ff|wiXAIJMe\SQC?I=BOCKOZ_a\L5)$!(&44!  6Shc>"),* tzvnui_beXSYLGBD=>:+01-<B8;+#/.#)& {_{\[~je~ch]mxYcSes{|kkWORWgoqpnic\^Z_dfq_TLFBMU[eWKK;DMFIKKDOKBCC@?CUWNRBCD=A5FE?D8<432,564?3//-/,,.-14410537>@;@94484>:/86626+4:754;<@@DBEIMHMSSQXSU\VVR[_]ggeokedegjt~pwxy{%#('')#,018;=B;>;BNNRT]WTWOQRUZfk^YYRU]honrjdZ\frq{vphchnmuxzunikkoqolhk[Z\[_djih_aZUTYWX]ZYNPRMJNJLPORFFGFC=:8B@<60-"'*'(0### !     "%#&&)++,24799<8<>>?EBGEBFAEEBGFHJ?ACEGDIJKHINKLMJPWWZUTTVR[\_a]fbab_chbomjmlnqurxyxzz||}~~{|{~~|wsrtoqrpjfd_d`^c]\XXTVSRMCGBB:=;:484.0.+ ((%  }~~~}z{|~~z~~wx{{yxy{{z}| #+'))/1/957;=;;?A:?B<C@CDAIECFFHCHKLFMRLMJVLMPQOPORRSUJWTOQROONNNRPNNGMKORNWPUTLSFG>CKLGB>7>892+(0-,/(('  #    !%*)%"/3999?667>>DFIMONFGILMVXTYVSTQU\]ccgbZ[SYZ^ccmmnmlhekrrvxswpqlpqjnimrpmpmorutuy{z|~:P$,yG)!BZ@#ZH{7M"O_5b1Rc FIq5UzM>"2|3{G,xH ~BX< -tRPbi2zrcSf9Sp@L>zt3yh4RbrIu=VU+S(>B,Ds'?Cu{bp=r/&O')OA73Gc w|RV#'?0!K|C"-v &J(l!?AQuW ?6QJS(?(;/6|V&G`dVlQo^ru}%0`VQH2-IL5bC4rczfju]:w=5 Q$TGlu yX=lxny *!fM`uhccG2,.5@Rbyil_nwiC /+*cvSQJ$bTdc2&2J`_eV%Heb(9 @lV!%Zgd|>$+%9J> e:4&^c}>7kNqh3\]9j:}@z)Bt=WUo-?Y U MX79*OM( U  X "..*yG'yro1n$W'S\BQ P | [jg]r;G]PBsJZe _ 7 "FEn<;?IK 9q _6_20zpqd l4D:~>W5H K;9h e   ob 2- `w\b d )_;uXC;pD&:=HX*?= )V I5 T zyI(J  tp K v)-HJH/aX,+!:8b `=l1fe  D4J.SV34 ~ b N \xAW`5]K|V8tkAqAC[`c CG% nV-E h nq > mU)9bQ l w  ?`vg`"rt^.~1[i!;w(v&{Di\#'T YB  A% = L.p Q~PGjc|SN 2HgnJ48 2j J%f~ L;M% (5F %t9yf ) E.l&GV=tnU <3Lh3`'[WOd*7<H qa f *9KX   6  ij^T,`N Z WpX7+q`!yr2*.*`^dD[ ^9 f@,Hc 1=IaIT":x2cs.Qs^5i9X!CAabk2BT0~NC?/2)g_*kldnx ?aI +7.V#J_[ 'SJq/~&[,G@5. n Lep)=4&ByOfk8XUY H[pk:/&0()ywF1 G ;}RJn]Ul {$y z)CvG+v|jcmifxZZ`@9F<ZB/U3R#pD\-A 2OR{dk1(V's h [*V~MMnDgUp /Vkt>R0P MZPhn~  $  5* Z: #5!nf~}/TePK1V x(427) WGtM X` ?3k: 0^G{(? T}{Q/, 9Nyqh0c%%kCSO;2"2&hm #@pfj ? [1/ ]{~v,0-o=c}R+a+.r92('?|Uf:4Cw's^8>(icy E2b:vZ_&N}Hb NJ!;z1svhS0[; G8Wr:!@|i *Mt %` W{`iCORq !9eh/qP%xco mXX#Xju^|q7A44Dk 4lOz { m  2 09tobKc(U_zk)c3.!bw6~$3>m1{p}F`qC]IN] }m]im@C1;|* xu,#8Ne zwbr M>e J>>H0bq8MX@a-\=FXkwh 2Zn)/Uj#-9gM_1C!?0KGhv1CC>}9   e.n@~WE$S{UuT-P:Y=4*{"f9 O&h3NM\@@6_W1mE|b`^er_A \ 30dGsipRIP(UAhJ28Q?qR~%D0taL2zztb `:7GX\(Y_ ,jcM*!#CUsQlDkCcdb0_f11vc+y70>7(yt4/JHln~|/3q,% 9_L_X':deow9 !,?$('d:B;RG=+Z-'[+^|V{|]t,x!zA--mA8N9uPP#>xNW96_<%T;}~[@:|KL,1- 1 Q5v#~}=(<8ojp4y2Dhk5+$L8LyLRNG$%'#A >;NLA-7h:e,D'jN^*d R!D.Jh":4Kx$rs3dr 5B9,2_mT(%8=/ xJz,B p+$^W>2 2<i*D,lbN!X38q/lsYUb*jpwQ"N. ?YIDp29bpvV]} m=  U1-243- :zMp "E gQXN#RF| Qw4gE DAlVz* ' < j "TgqCL+ `6~eR;4$=lDj /el72Zh^;:!Td\5?3Eq Db}r hWD^$t-vRH9'p6@? Ds-- $<^}6Fr,e;*&vuyp]A*ou.Fm;sC&w`<+9vPd G~AZwZ<ngcgvAf&w.&V/meRR< t;Z d%X.-%!2HRbk4K`eTC3Nf VTI)pW Z2HXtm;V-7X+y[= 4T'U0jW(cu<C<hq|vM-p2#hL)OjD5/U84~WJ9IL.r~z%u(VV5^-;mTY ^*5Z,^XI@E~/n!D :(%N$S`U9,5+g=]l~2 A&F3]8s%z>oj$R~sUW|LoIM HVtMFE OO(>"\DDyoI@Uztm;Ut*7Cd D;-Nvq4C?i- xHmsn'nM"& IO)fT$Gj4R r!ob3 A'_=\|-p|I\Lm?ENc"KIHOZRLWL<(&I?M5V7O2rB D')i)jb1jB0kA$(|-:Lr*z->xB7}w?<uPWi WE ,-M[Y)vX?DL0d^Zi*:~6&Z(yPM$.[4v$OLu+Y.<R i"Cwx~c- q@xsN&~E YJa|Fa@8wqm?xYwN-' TQke0{&@w6Se7N)wC BmsM\~4k`- dm\ mA`LVG.IS0Zi\CO OsBj*~hE[al+a<+l/Y}}O9a6T<|lL)#0P}I Cm3 -<;UPF}R-66&|{iO *CS]q$M^}~wn1 oszpjq.2+1BNgwt}x{vt~oedQNIMSHZSGVJQhm|wPCXu|ynyl`[kulcebn{lkbfotqbmny~xnq{{tx~ukbY]^SR[VSXVZZY[RQNKD6;FHUJE@;C:6,3<=>BE:C?=C75(#!&'!""    $'(5/+)1266.5.0+'!!$+,*5&:3H=`p-6 gSOVGJM>#@*FX65&?N96#i, {_cuK*m+DZuB+ +ZK^!_"3; 057q!-oU/{ pPl|D&r*3%` :0?y{<=s;ay  3eq1G< B@7U\t,6zMJQq'F S;l ]3RW.jEfpBmEn !'HU*Y~)6t,sC>JiR5?pw2ghwj5l2hb.*$ u"Ev?-P.Da7%VxST@`,{FSL/.dqT !L0w%eZ+3+7P 2-]JTh|UP#ud~l$#/' YtAbn $o^_Qq&wfj32[ndzn":1]+TL[=`> A+?(=-ll.5i*tK8Kl'DCPFl>-Q9R!bbfFDmk82@MWt 1ibkgP-RwV-":>V.C`+t@oh**QsD I$Fz;|2)7KD&Y1JBpc$HjHD;=p[n6]pj#*-BpyRf<jN#2 a^*>"Y| T 8 m)Lh<n <48YOHAKY]R1b9 uJ+oEI\ n0<}D)E$]?J gy`A/)jAu)`I)ur9ba\#E`8?%#@-G#V3 :]s) \*?@)<XJ ki}S9l0$h j+(ojyH `"^WFB+-6aQ&0\Dybnz_u0qd6%=+ !mmF=dw c&'Oz<jEvMe+;XTummmW`*!ob#  itFu?-*[9iE]F3- /8'ID!Y# : f5/H u@:goR"QQs3c d5)+JJB&Cn>&bjm[#~v{end|rFY:U)z10VVcld^ mK^J|IXD] %Xtewu&7Er=]"'.Owj@DqS}_&[9EZ *4dqq z lfGP~>;e}Y63h:=/Z") ?|][H+1T-TL ?e[)& =lyQTbmibE3>;_yiv{`YNdY+46/ =Y uYc0\'ae-+ X6Q 2^m?F@jO>W9BlaX|wooQEr^PsyKJr`Mq DqF( 4]Tkl"k 6A 3_T(4. #<79~xHD\]KJ.- ! x.ZW3[{jUD!7]~^=;;5+hxml{xcT|:  *& .FLEjoW]SU^0.GzQLsc- "E\q|8  :=VcUA0# 4FRB!$@- ?FG $- JG5`yV=D{tkvsK1' ?Vb`JJNbrmQe`=/]sU4(7at{rICZwt_]oncd}u{XPcfcp|p_3-1@NA?N, * ).,.! &5   *HP@LH,06>YT92Eb]C/7M<%,+J`WMMbfuXKY]UfZ0 (9@BK?BRnw|pW_dsgYplOFOh|S5'& 4+ FF2"3)>:%% zv~{vmpypj\M[pwrl{  '*14HT\]MOWRVT;:<59JD..$%6G@63,"!+/3@:;50* -:JLG?62>FSK,!'-/1#vjeX[SWNSUbnquhQAFF:5/"*487651BD6-.CVb]Utzyrpnc_Z_druury}{xrr{ncf]_\\W^W][[\\W[_eabgeinjjorkqspsozv|~~   %)%%*+-*/0553214677<89:;?A@AG>ACAKNFBDDFHIEJJKNMJMROOGNMKNJDIFKMEA?A@GAFDAHF>;:987;6336876414/*1,&*&%& !   #"')%+2+4:<?:BEFHGIRVU`^_a_gfklpsknvxz{wz}}wyzxxutnpsmmnjfed_`_cZSZSPKHAHCEA;>3020-.'( !~zvtxskopgdcb^]`\YXUUMSXQRKKMMLOFGEEJBGB??9;??@@???CELIJOGQOMNTOXVSWWW[caaa`cgklnsqyx}z}~~yyyuoljnmkejbba^XZaZ\VTXRPQINPFJNQLMQNMIJNNKHBCIEHM@GFBGGFFB?IB@BIDEDBIHHFLLOPOJONRUYVTORWVYWY[^W`\`[Ydfcdgekqumvwyx}~    ywxsvopiegic^\\WVMMJEH?B?@;:;75;;6421)+)''!    }~~~~||stxwxuv~yttqpkkidebh]caba\^[ZWWSTRQIJKJKIKGEA=;;4/.,,*%"#"      %('.346<28@2|hTU(-%g@}WHixy ] 7  @ ij  * 7  8    6j&ZYHi6y!2+<G ζ߼:?% : b   (O#!&(2z.Pe + 'T   e$f@{9_4<5v7~Jm^(} CF;  l c3 ]r6 yL~,Uv{P&mr %-)<;7P$M/=6/%t(x!c kH0#i!) cr@D- <sw5   M  e s Kl.7]۬AӣBSJ>#B7)&)z#Y!'100,'"F!()y  N/"8r 3 _mn 7c  ,yx G,d5m4Og Y!x؍әܱVrc'0 ^.e;! #!`"N 6m $ j}U\IC Lrq#Q_wh\;loQX%+u=32a<SJn,BU~8,{eyyqvXI2e{g1T^ksWFzMilW[{l.h8NE*`$+^R^x m]'2Q3zl{V]8?9YKqNJd [.R*vfhQHsjkp h.%A`u\R;I|;^JWBmc5}jiex/ noWTb( */_yQ4Q]T0z9JQhy{  qqHa` +QgbJXoZ6r*% IKTYJUceKJZL%lB-"rilWH5GG ASO]qjp;;:Lav~{sUUdqg,tl_SC9,0 |n[SO>5(   )73=Nevy  %     +!%/$#+1/,+3@?::4?JSQTYWgifoyvnirqj`XQRSRKB@8;995/+.# vxxtvwxppovsuvpspnptnhlgdw\XdWLVSKQMQGMKFLHJCeA, -oT.< Rqf+ <~F-MT!^}\!F"%7Xq 606x;'uX'm1B"$S~Q06qho2h5!%JrCF2{:v_4=s#Zu +%%j dPpj&gLAx fI Ry?)S/l 9-GMEK'@2hyJ$$70NjLy%>tK?v6!Rtc8x}g*QOT[*uP+^Cx9:]m$=2F&Y&;B ZW"qm2e57f@%a :ypd$OsNsj2~.jz ?]~I <(Qk Cy0BUx!D7N*^?~-/"^d-q&)UAfMiP@/2Nh>+)M C;.mXK1Jb,.=Us8"xV?niy (XRbP03mn9UrX_g^+DmFPH Fb,Y->Z,%`OB .>3( p0   $9'8?+ (' )B+  "  {tr|zjpeeh[^VUOJKFIA.53)((   #*/24/.+2=9>3?FGI>><.08<7+(+.')($%"!  Mlvk|ymr|]stgw{cpsguy{ysimx}mqy|wptutswmiruwrtqqwt|quww{ls||okvvzwxmmunuls~qmtomruxxqsuuyuipqmxponspkperqlmcppqffhjpoxtqimt{aq~yu~$)+<88LP\bcs_5kDT  y  |' U!B_Q:(xGTs[@UMe$0d;ZOݕnFL EAkxtG  d3h $"  -_.+)XQsSjY\YWZ qFo_v_] A MzEE2- h [Z1aV 2I+ 4qaZ 0 S$ / M83_1{oB#={Mc7*j5GA a W  zi5|&k2y 5    @.amI$܅ْԾ771#j"Խ6g+F**|#w()P'%~aw0rRIQ6 qC1~^ } ^A}'x$l%T("!Zv'! [ i k@~%yeښeWoV_A߽#]3&t,80 !) $>/@.nW '`'Uc r.PWB_B:'4 '6%' k""('C~\Up3 "  ~ Gz3`r !( [ #)bX3.7w --%> 31 -# oPxR+~y՜ܧdxx%rG4M=J z T ::n_"`(& !?%4'!#a[J 3J4'om ܡע ' Ѻ85ǃxٖ1$[u1C42.%*6*|'/< 8 Ap [/!w#.&[[  "  $2'%"!)%Q('"Wo! J ^^!&(Fߊۏفχγزӷ.YϪ?!xuD!6!oB-* #98;\4+: *g T CQE=ٲ],܄/Jk=  .!!."$$##H%T(&|3]:~  dcܣ9)Ќٛ\(VuոYZ\ڴfNs7w(IF'<.|"_!S28'*-e,D>!9:?zfBke b)V4A #$}#4!"%M%($G z& S ';f7 X ݱJD`M˘P> #+ ,E&*'A8w3 &0%Q"4o  Ul aZcC} SmUs! b W t  f6(h: ^!&%ߊۗ3ЋTƠʿC֌  w %8":/'$"Q,3u*!*-}% 7 uYX(F,`zi99r oRU t J s$ U VoGM 2}w34-ۀل лØ ǜTؕSa K!j0\/H ".`-!!j^B /s }x<} G<>z!8MmXD Kx](~Eا?2kW_   TA# Ry#%:# NZF UHNG'<}jC '  r N  C B<}%^D+o:zf12v t* u UJJ0:gg]}>1 h7"Y,DC;B/7i7uJ%kwpOߴ-.)ZjaZ$C^B  NR ,v #Qn V,ZFTr$!B}|W!dvޛRRCj =o ]hu  q`#as,kP 6J06HD` #0_1^$wo,\xPD=PnPg`SG5 ? q90C1 Y tYDlw/zLW(zN3,p 8nd><\۠,a &%o?EU7{Z'v 3 *M4/= V"/,2Nkp<nr  x :[  ' V&?7CY \>Kl%wjoOGJ#(AT=+ T!bK~K|m ne8+ tfssO+?}d)1`cV7 !i> 2~I7P-|yOfTP7}w@$EvF,#.=i*qVte>?)tOf 2Ap>^s?p A< j2o~ c=g; kbxTU8=TFo>5F|8KA"frwoy9Ihd=9=n-d5fAP*VS^"H+|p}  rMgT:p|z-?:xCpJS9MWvGp ,A[&$Ydb1<1K(8jj:XV>h5_!J6:4B[$O:]%z@I@ !/(y8UU'N[5Fqzo nS GxU75R NIuX @H]%9SPux^:b<40HO? Q ;mtFV#`\!'0@}Q~sOfS8?Ix?vD-PcNnqd=#"XO~Zb{8 )Riyp3lTClZt,X^H6Q!V{LEcS!^b^(Ss/0mGw ZzleHSSFMkvA|]KO90d< N9{- n]^tb%PCvH'"SSM) > Df,|dZv8q*(~vE1U-o4 j,{ Yj0gAp/-i>o/]?2&Gz }o|8jT291=0s~&?SB/l;A}/H U S/9\5:w GE?F5CPLlV%@"@ Bh= /q trNS96<qb5"@~b?L[ ?/!Djw3# gx awzC=Te> ; I Sx?bJW L \ V1 80aw *  :U11)']&.diNw0JFu*οڧ6V Lk p&&O7  9t6&C%]b#N^`3>b> Z ~JXkTR?oB;d 0 & })D-\2rd8mOD,L 16xx"nH , F !$-`)) _ g a8A\.inH^q#/g 5 6 r Ed6%7 WXcnr \ _KB?gt" [ڻVڋ6kx- 7J9 "eqS#-)nt' T[a1|B_krBI Y cxtM]*d ` } OPfZX-4M6HVVq/Ρ̱sx4R' + Y6 Nc :'##\L8f4vs;:^o OO5\8^k7 9N vE < F _ 4NLYF7d7oTIBGHG |ڏٕf ( [?pm~l&n vEC =WO{KM>pLYc'; "   &u1 0~- \ G 2 # Q  WqLs"P#HdI0?u`B,'/K#(%>}|Yk9B,hfVe76TL7A)h%)z,fHZyAU7LY o-2/ >&s~q-g@]XlxFe78/GBsnsUo~ZU$H`vk0vg_ 0HA:gygh}:rHgDP;$h7bi:IL$#4J:#!  iV&z|oH1,:;1\wQ0%B|m}oCAamWL\lrpj_ZSj*K} 1x`?( r^]pn~sXM;Nswkl'("*4C<9XgeeWVllz}{yvqsldZS[]TPIJDXYSbSXin -'(1.4742?=:E:75>=?=841@18:?<6+*4-1(!$& #!%)##,*,32+,75.9;3583;<4:;51<17??ECLUYRV\`pksz}{qrmld]cfc\USQLISEGHI@F7?:?;E==9J7A:GQTYa|3 ~ Y`i6 TB[6+-S6V' *Tn^qOdn.)\=R&>Um $G-H`f%3 &zc2cIx{WICLua@SS;E6MqLtz}rK0SL-&T9XO`)7b9c|9H/L57En E1nq~uW{y)">X9;T_' Gr 5K<ey-1YXr719]r/}UB\76Jy<8-#aP @ae{fbU(hr\_^!}pP!lbMGI/Q!#0-D(v.?t0\q" VYn}jfJ>=h#Bl?(,vH8 ;6#i)jsR  ( [ z TT C } sVXN+liwge-u3NGNay)ER0  - s S )mq @P1r&/$` [.>~RU;[X72w=d`y3N~"u % 8 GKsd5|g=t*+}k 6 J  Y " E  {s 3!1{OIE`6V]>R![ z@6nLo _Urpp')0 f v ' 1 H @ Hc0#Q1`H)N3=?@KKKKUXY\V\WZ_\dbiilgpjxl|^~" / vG 8/(,eTu^A' >_Z   hCQVLIl;6^  Ebf~ VnadN9-tfZS (,!,mjY+&qs]FI!.axe]Phzvt$SpyJk,aN/*\M.V^p&X$u),)_(Mur]REa:}8wz9p2@(@y5nR jtsy5 |Ai< T,;Z5T{)Uu[uL S%#e2#,tE/4yoL mB %&mqbi5Z!'>/#E/E )v;#  p+Jl C, {`nrwu*i~R4)t:w]?FR-Gm#5"S wC[,rNmwry#ZFxOXOb +yRVl/Xf+k iuB'b*3 ɊpL:I"08><8(IAz[6ZkQ;S! H W/SP f  (6ux7HxC> A=>VCY E l vbM972] 1Z[ڊغz,%@ ;)O "[|>˞1KOJ5 $,/w.*!eoߺCd W1B J3U / i@-nL [-] E ~  h?g]b zA-SdOCdS:d'#6)dT:Gھ Dm/9:1$YAj P;=ҖԒQ^_ ! "!/#}LZZ > !s_4G f!HX[4 fQyK  l *BX^p_8dHyFJ 4^ 5}ֶŶb*13-*}'4iA."s%''#H* o)9a5oc ]G  M J %Hc1j #V  `{;;V t!z+p ktU6 )0c;7D2^[C $'' r.5M3qkgof ft sn =o0TLey D @  (\bJb oS* ]JtK5 / $"q-]u s_1 yAl4$@vSxr@xX2C[1E{BP q c } I - 3 9+_Mja#- }Vp ~=qDSdnR ! v [ % (;  HoT>${`i'| u $a q;,F1jLZ%/Q L% G t c%[Bl4rJb[y1E_8%4dkGj8  @ U E l g  I S  "]@H):x(@JNg9hlKdPea @y.(Pc9H{J}zK w  7 ? *jp!B"oXmfz@?^$B0~`a**#LAF @ 1 z m ! $ M s B feM:%e*~ePq)\+IH\NjS6gYZxX z s@k  G-T+iQM$BcsTj>h@u0 s   ] v Yk<Dyt |?%uo-@z}"[4s])6_% W.Dl *]q=]RZL>Z9EenRZ`N{ojx3)z p yNl& ` $ D fd}S"q_Vc ?ipVCA  s.?1uY J{ (L$9WMz(tI}!nlH YSF " ^ w  W b SYU"Ms/Akv3/||!@V[=h)c,9JsVi Qa< jqESX|W'X }1)%QSBDDeW56Yx=mm~DX| ;  s c :+k$cA-|R<6(R P=o9B(T89yl Gd X, > K g.qt0"ESXicHl%'EK"S0Ts\ ^l* `jB \ ** W = 1 c{U0A+6R%WX8[^XR_ߊ%@ . 9 1 s!  n+\IF"= 'Sei%Em=kO =Avy  >C 5HR $vJT+]ib R [P  c k^IE U   P v' P6!$H{ & & 0tc%tMo@pt dwl/m{ u by`  Uw)in=`tkcU+k/U(f[WCaQNg 8pm, ܐ$C&V <ic]i Jh py]INL,T,pW^SA .e2,8Wk/} C ) E  %  eW)w_#Xn. GL:gl,9Dex /K%11]ލ-2Zjl yhp s;o'b'u$>*Xe0^4B$)WHcpvcf4.sAW5 *r 5  ?tx`Ix j:P5?#J3\c0<dqcR^ wR1p?BDZ]0j@0J*Rw/h*Px]B{Xv+CE.},n(w`Kk)s?C$BB$ c2mXw Q\k;>Uw)*4KKZnr9Rk%?i)\:c}r^?xgQ,xk_WXPH>;.$ ~jVL?&zp^OD5.&$#  (9G[u~ 1?Qehr *A=KXXUUbfela]dXSQLDEE9/+%"zllcNME@>22& -./2BDIPYZ\[eqw  )#+6214397<NDDGLGDIJFHJTZUSVVVVMRMUU\d^ikkimloqluoqkkujjfm^Q]_VOTEF?CD985.*/)+%! % "$%!$")'%%'#)",+*&&,%3*$%)'+&+,%,(&!)'+*,..0.622:6:ABHSNHSUTYb[_gmgrw~,8a dSU q{-XwDCW^8 [x%&3|tw# MAF|n- ^XNT5>.3Pz[nM ;Z[s>;1h)/|]V&CY@**oOpOCUN1- \n4{,p8Kp5*dsQ~a= adOc  mdf/OP(k2O)/  Y s  x  C air1  } h vLb]Q8T4n3j J$<iTv h(#6F8bEdWӔۺޫ;iWg/  i3VC1E 3 U]~ QVӀz/7e.v7wGp 3) {r.p i#'!t]n f#C1 9 t4'*4::63/'"Y dwks7]Ho8:kݚ+wʅo<0= !|) 5:E@Is9AXų8,nՀgֵ#D:Q{D)6 X@P$/=YH T"(,3*R ezfl8t/&' "*83CyFC82)y7-gBQ@s$iOtenсԮ$喝J,WV!'m'-5cDE/`Ɏ߉',Ղ߂f;Z`.J%@Gųp$bs5 I&f.N-'% h{߾gGY^U)03$4*#%;(073,#o <p)\ J s}o ,yBNٰދڱE>HyW6_KY )(,a:;#Ud*b'D`^@c\v{ Y %-M CMVz@  "90PqKSr02c B#('".Gi N 8 c1 S2* Yx{=? }oJA1YN'h(-# h&457诵i|"fHfI!FN\V8m,l`aq?4"8  Qpтj~5 +fD h*ir8W O 07O@=$CG1%| ҰǹYoi FD 7|-h  %$Xjz]C 9J3I.31JF;PoXy|tD   f g Y I _ Iac3P4+ ] +4,]+N*T1o-4lh߶<$"J^ /l> ]J DXJZN%ze\ . f 3  pxu :9 ROj>f!Z<HqN " Z Vp)X|>z {@6! n 6* d8^}YR.W7L . AKh:< X iWC}%x`Y7 GZ? X#g/ ;M' '+Fy6TKX  cL v <  L F 3SY=| ('cc @{_F8vd^$O{Ru;B+j=SO\Z=e<66@DVmZIV77wW,V-MJkWt=*lao vE8;E]/v7\i #o uo#rU j\PIZ{Pkj~W,`&~ \2S k1!/M4Eou"\ 5MB:.S;FIYnGp*iK$ X=ansgSZL0{nSO<F/KNr(EV~a!l 0_ZV |`}Z&Z`v_SH]QSB)%#N?+b"L]@_sqka%u= g:&FSI>@Mj %*03T^Kizw]H877>3y}~yz.B`itso\E~rosy "5N[dkv{qpi\UGA:,474=1#((/>AH[SK=+   )2AHJSSQ>0)'+ ! (wohfcdhnnowqmmpio~{z}njmjebng`^V>2")&! ),'34:JL15SiytdZK=XpycmbPDGbzqT7In{o !   vm{qSbfUAA;9Hjml}~ycZV]QUcej|xxywbNNMMC^vh^ZWehGHZRYktxc^UA0168C??TbkjlejXIQVE.?KGCUe[HIC24++@A595=>;=MXSMYX8=@>+$9MRC[gSEVg]XNLA7HTastrtspqps}|r{xy " ! (*9<@HLSIOPTR]llps~}          }tzs||neqaSMW^Z[YZOE;KI6/48DOJJ;892<5/6.,'"58,%''!*     !  !         $2,+),#%!.1385?940:GUSZZ\IFHKVZhq}wleielsvyytr{uC1xx~t  57vmc V(&S{"o2n!D"{[!zu.pftK  oz{xs]jyBhH[pf\j :Zd'0|BPKw%*t;MMsg;XaanJZ (#+e~p-22"U'Wz%N( R`<^^p502o~?=bfe> s;oe\17~&BU/l&r7>Ps(a`2d sRDD^SW,P?V=eh| !+GyIK*4nS3 *, &G-b5.=TzA@ {j:)5RK.[|9`+;8qL?aZ]8g7h:6y(q'f4M[C5gd!\evGK~rKq~VO XjyVX_@- n>+gr/L K+qH@rzaFt1mF*_ .(GGRU[A DD>'^Vn\E*]51~t%ySS4# XL?n9!/Sl>w)"0J F h iM(2#|p Y$d>|Y[7 .8O/-l`KwPWZ{O8A6;11?y3ZhQT?D[B)h >as>Le< ( h dTTIx][&f<::][6:mZi_5__{7K8t_F52%400ob}ZI- b*?eMa:c DGE{  K4#{G p6)t1T]`fz?}.ppD-S`8bh=AgB_3$_>#vF;7bW'fE;H[qfXg1O(8O;~K2^B4JE+M\5-725- { V c 3(}'=?%$P 6CXPrI-C9o~2aK `R w v  R P; jG3_0=mOwmWqCNw:Hl=z VZ[CLYdws{A^,o~/*uoQ&YN     t  z<I6({H!*!}I(@Vsi. C\@3]Q/0k/.DkLI%) BF2 9 9&uf_r}|,@L{W(RTSk5 Axi=t[ oBsdgMM`F$U{MAZa*>pr=c*CUng^+1^C e{j6@y|[D%t@Hg|XT%;'Rr7?~HO_`"ZG): lmhc>s / |}Z=JV3N.u"()N+5rzawl^(}/1v4xa4a,h382p}qT1sSHfR\\-MNFH\qw!JPB;.]az,/yY8_|\*8!aqon2t}|,\s^.dk_Kl.|j0@a)9:h/^R ]T(}03]4B'a`aKDji%<Er*W&]aBV4wJS-6[/xu)T}?>ckT|)cM)c`f32.TEG4q^J". $mxdCH L +jw~`T<rfJ{VVZArXt.9p60IX!Nhnbd  ,vB0 ) Xj9QhTCos;` 5RNB,4Y|O(4Xp dl2/fY'n,'8I+c"o &9I|1yL?\ <r)61 CF1+,/;"r^7s,K%nzg63dm.u4P`w3OU=+n} N [ { & UN)5G\ XyYf#/zS=7DXJbz M X t # : i`uK6HMC[^h J.h.O2 Dolg D Dv o2 * \ | Y  FjPcR:@Uevsz+Nu*3]zC-: ) I G  &;Ax.'PsyKn.6[{3`m"m$Xyb O|3]64r1]q % w s % m OmFxmpXp:=@ug?Q9:E4Hm3=~\vUJgo>(r,+?f/oI, j4Y-p^k[?* ~Hk~w 5 S 3 s  +)mgEbxjz0e?EQn(0u"]xLb?vFD+3& n''Ox~L$rV@, 'R86Us{8y0Xa[4UdhA"}#Y!l;?-n9&?V%Ih/zBY#UC{s(Nbf#N/QyGp7%-35*l4 tI#1-FF7P ETu~oY*Kx{Jt,o66Q@WD2661,OJA7 QPqhN8xE>oZ_i5wR}mf]M90 b?%J s~C{"a\=bB~#cu#Z``M0\lFf7h2{M,]*PUIb*~o_PB=;2*~U(i*o> 3:]AuK| ? 2   8G@8M{;o.(?Ogz0n rL-2"6Q"Qu7~@i&QCz LWg6sX9 hBZCb#fA[S# \ 5 N s g .>/g x d`!_{s(Hb2/Fa 9x9o L}9iUj,FsTHYB 0 k84o  B^ 3} 4sAcSHm{7:N!a  > F o m%=ic z "'to)Nf,]`p\ 4O3{aUD%7lMc60r" @  tb,=y~lpA\ 'X;*5O- ( v ;G8 & @2[CmO | ) (ub:vjWnMԘά&n!X, (^.q,s$s,vf# M lR+  -&:&Q!4' C2xzYzYvZo h \U* _nc2L4 vokp #1MN U O L, ^s &yN0Ba%ݗؚ' %'$_H,2 HRz's m g$t$ <6W(E`rOVBx k] U%+V_ /+ k8U 40mr m j &@ lafKߥHqu.̇Ȍ:[)#+26.^'!T {*spNeZ n )A wr|:Z] VA [jZM' . L K ##tsik  S [-@ XyKF3,V<$i6ڛc4:j.6z! 0 g{v RngQwX( e V  ^u U ,'z? ! ] - < iN $}|.vsEKS.YRge١"labl<Il k h6V ] 6 rf qF^K P QVNhB( %nD??1@М$e'QPT+^hn}mYk#G QjBo % d2TY|30>> " F  Z?B  /T  S5#Yye/yO-`Fu@ӄp&#*<T bIO QR n:b Y@g6- PI{ b^K -L41m|_ Q :    - k x 3 tKR,Sm:Ht)\[)iBRf2ܸ֐nټ #~ '9+   ^ 1.z!a x w)~y*PZ % 1 Qz D  I{8 75'B y G 2 6P%7.;XT~o%UI`a[h,I̩D_Od  @ [3VNI a8( # K,= ^:hy:;wU zc  <lZ m 2 R.+  gli *|lL@t8v x8_EZ(S{`xk"+b m \rJA7 5 s( kUqO#bC= vdvh>/V  W ^-@o y  3ne*rHip,?0rn# `Y^'%bbc6V+R N1U~kLftDv*Rd6]* (g Q  hd U V t ,Tl;}1xCao3@ 'm5W/ 6 c : ]K> @u [  ] qzQ|E*1 E <{ fEIz8T t JX% V Q {:3QHKc*v.| (Ou1 $ vtW.!"jpA YMy~ISdL8IA=xFZ;[,&\h/() ?-TJF7X0 TXgW@Q7pM)_uyg{c3Nw<$w- A Tg!d#}XHW-OT*\U L '{?ZbPDM< 5RX+,)5O2*L;kd/q($#1[CG7u$vO?\BMD.?_mf.6i i=DN^B6/%O_QvnFio^,`8K{R "vxja a):` <A< (? P(%(ZcpJ S ba92iHNC!0 xgB!Zhr7~nSVM7&c'*cvjF 5oO/TZJ1?)(IUk\ J1.B(F/&CH  7Y!*Y&{C39,DgpMMEy`R`e 96B%1'9@;B1\J1 NjBuQFw wT2qD46~R4sY~ + Y^ac OmG$ke4I%,=aOO*m&x0`F-4^w{6s?@1 8sIa4(F [\8<[1Rr!_65qs`k]U^lb*'* y]<|@^ < 'V4=R#Gi!L-1HxSIF/zy|a:5Lcvps],pyO>C?150502GI3)(+3?`mlgsymiijngF#":878CJF- 'QY^gdZV[X\XTSY^ccOQK<,#$#*.ADBKAGQK:000",B?JD94/+;A>7<>;:8IPOGFZVTS_nreQT_]XT\g^^\aaa_jwyte[I6*$'!-6<54;1( )9;CM]acggrjhh{|mgp{uzxvn]_grsyzyxolqhxy{xuwpf[Y_^bdneeYVRWN  '(=)6  !96AM432JO3=U]^F( 2$)8:OG8P]HHB@_W?D?1(!5*Ivtf0!-FSCMXt~wjR\VehTgsqrUZF\vv`bau[OcvYZtnohvyvjYnpYLYo^N10>5<iRAATeFW;A,'\ZJaZ[ A<WY$hee<s2nX**`)Pg[NE^!>=im]WK3lttV]hMu`tkyx?$ 4."29<. ,|AX?$kwXC]%TI]6(CJ).KXMq$:0[q~GJFQr[uq?Ri}RUV6}Nj^?kwj[!H>log@sIc# \ 8 -SfR;C 9LtL;"+dCkwQF|O\jgx5-9"ZcH5! @)J)2< %(  !(Z7F938 ![4:%B5U7A&M*(93mr$ !"{hRqvrJij7k\xLt8bKWVDJAKoD-=SF[8>PPJ5,k)$ 5DB " zxpOrn{{KCpeuxz|m]Zmuh{{Wq C_|?~ffuzomZ~nMn:x~Gc.uO]}g)4MkDyDmr~owf 6'[<= dM 84.@bF4?nAr4OFs)9 (e_,,*}G1WQ?OUx`DtU`(itz%3xMys^mct$y if7dh4~uhz?*>:Xf9'VpdrfE/6rAKOW@U%;gBw4]]kq",af99CY(6f^>eg,YO@ud(\Hcd1WuTp:N:/aXcCDh[7?4jS_Uq #P_`ol? ]!8"ckHPWA3t2 }[]Mc33#^f+( m}_wgHN,%.eB+~NTF11Mn !z>) 0(Y"n kvXeEMj0-Ag3_L}5L1J-_I.l;CqI6k8XKZew1hAz.}^7qd &|\xw:$^<O/D7;r!DXS%j'sFjhjxc;n [cnTjd&D\.#Ahi GX \*M.3l<-)| C%C|:UcdJN_ZD!2%O %uZM)mc`'1N;XLzAehkb*S8#L8b 3h:W #'sO{|y$])b>O,-<N1J/oU/?msU5exr06^Z8+<tr:!dYg"2?Fq$ _@~p-p>x3 z@~G-!Yc ; mWIyj>g RDY &Pm>{_{H LGr:e 7}MO p#=~X /{0Zh+(q%YOAIOZKvZB/jm u3O9UK[)!)MB~Z5-&OC zH vhM:vh` *n{c'UP!r5 f Nu2{  .\l:0/{LN>eSZK| 8Q3dk/Zen @  (1 z^-F Cq~m>ِg+ 0LN  k3Gyrq  "{#"{k P75lYRSOl(EU1*=r= #pv 7QC-K m"HxOjEЍ$;F D!S HDxfgvx9Wt#U's))['##Xngu$"*.s Ye Og~_Z&z1 "4?#'*+(#q lۀ7p })c&$T('?$p!GEs^ N(m.36614/0(6 Z1Q؎Bg_* !3&(*O)"8 /?ZH(_Su i%q,n15 984;/'AO>,ޠم3׬NٳP!w9 L#=(+;.%,-&v g>/ߟބhIO@(/5 :<<+81)sC(8wςϖ7ѣJҕՁܞ\9 $C+-X00+#@ua=LއyޕL;0 'h057*؜Wz8ug +S/_1z3:1r) ' l0Y"ݟۃj$M?0D#+39M>@@7;3*:"OIF}ΪTбZ.Ҹmr &-X023.$& 6~jN#g$W$ p$(20<7! @>)90e';б̰wϣU_я=8s0('*;WfΫ*""3.yn 0%,h.N0[1+"YRln۲$0S#.+28[A>91q(Ex5y m?ҼӏV:hB #,-.0,"N&׺.ط 0l#*N28f<>>s>:g2(.=Έԃpݱ tg"+I..c0$-]#5QvG3]&Z( J"*18F=>>{;3?)G1,؞т ҝz#Cy x *.?./x-#.=/N'"S*07@<==:S3+)&/ӛ]hix׸H!,Lb !Q*W--/, #Sf>_H)c"&*#*07Y;<'<9p1J'@S%uQԇQmLqCU C'+O+S,*6"1e^B>ڢjM %eE#A*v/5:;:Z8y1U'Ja*p3TѪϓѠ԰ qz$+m--.) 0HxJoS )&-D3D9:==@<7/$ -$~Dgy[G^ۅpxU,)P..9/.o'~@nCFD׷V-' x^!)D/j49<:<94?+ P 9۱t8֋p0wJP \"9+L-c-.+!= -%FuB/ $+M05P:;I:7/%Mpc@EҢԽ՟w ) .-C.-%[`<"ڢ;ڈۧC}rls (w.\38;9;8X37*ێҝAՍS0?&-#.-.(u g48g<5j 6 0&,059X:U84p,J" Wv<щлO_ԟޮ:|#,p.---V* -܂ \Q݊\AY #*W/3~8:h85.$!U[ٿ ӒՓ 8 +p _\-TyWwk f s$*04M65P3-#6 {b*Pُ1ڳ~A W$/N52.)hZڪpW(& d&,925z651 *@ܡڡhf@׎֋;VKN)3h62-& U8Rݻ*T)- q8!O(.4653.%~%k<۬ܓ-ݎf7~۠T!2".P7c60+v!u}?'2N` ey$m+k1M6x751*y0T{ZGQަ Z1,۶ԙ^QޯZ{~ -8:$5/%W ؊t`M 9 #*+1Y79 72,|!)1 h:!/$FZ2و3 -+7X=81)Qߛ4oPߵ}Ul J)06:9A4-g#?uk$C L#"܂Οw  )7C?;4}+" JZՆpgN F|: )17<\;5Z.#ZB@-b@e'l)8}A[?=6, J/>rؼۣ P[K L?)2|9f>k=64.#IM;VdsL|ߎ.y!gZ(+8BAv7,cl 8٭޴{#M#)4Y;@?)8>."jqT=m]˂-Ҷ4@,'<FC@8]+Nx6cԘۨc #*-8@6DGfD6'2A/hWte]s,h"3>ERHcC6F(01w@m$\ۄX?#$6UDNJ D3!o~ڟI6wcx27z*:5EII@;1L .I>B_֣羷\Ӆ8@-?5"Xrpߟܷ܏"v+=tIKFQ=,5 Rkoceb7֨grϚB !.6:X7(O2i>~r~ba&8FnKF=50U !w;89yOͯEH(%-E3S42-; 1}Gg-٘ݶ 0?HF> 4+$p>D5-%V9Z7['~-0.0&H&\|)"Hہm,H)8CFA7+A ]Gr{"Tb֠ZϾٝ &%x*,|*, (n,Xz,ڨyS  . ;OBA:_1$ BV\3`6|`Tcظӯ|=]-) T'n+!,'HOhr޷ڣ7&'5?B>u5*!=&x61 Rو<^"(*)"p, 49Cr-vI/;cA?7.M# (% >o6 :: Kٳ8 p%)[*'ceqRb )xMcP'5>@Y:/%dQ  4 ALHӀ w6&))# h_k9:߇Gջ٣G+7>=4( ^ `BQ!]G {$)2,$*"URFsZ\ҬI"/9T>9K."B ,oOz5DRGpz P"-0 ,"<660K{ ;fׂ@ v":2G;gR |j'5|*Uw`+t`5^  TEg HsvQ U K30I79F.M^%CK &ese&Wq_NI(zN+/m d:!# 'xiwi\ +xR  @8q&zD\E'  d5**E6tK15ZDnIf$tL+,^W yQhC-l% .Xm f\uF6 lyQ2jnT3CC \S' E [ "^k~/pV5S~w Lr Xt . gyz U xpGSDR{ xC> DYiRe ? # KI@']% `  X A hI<%8/)xd+ D 5Y+-;LHhbU N)nn./=k?f* X \L 'T3GF:u(c ]0(L>0IX#i!3)8g2FIN(d(/n&3l|}f' 0y\Qbh ^w?D !K  ,um4wd  > Gwzjm s8qp^]a y # ^U&';*$hB_$_$aSq3Xebd;'N~ fI&+-G<  dJK#"4UUB\7HV NV9fRoW|5mQ!/re'=vX>`T>DAU|Q6jx,\)(8N (9Z?:P#A)BX,s3&bEzTC 8FXJ=HmzWmb%u PrLIg{8ySxqKD]n oyEX@|Jq5W KD_%vA"SL{lG)n?"+>[/Wo}P1f`MXqy1gcG&%YzL. $Ui*F|~L *PxoQ;" ;WtZ=*'+3CZ| vww 4:vs  LOsafXYfxk> q%HI-R  "Ek83}Yu;445` t}C _BTTKq|5wdoO >>at;c1% <1 g`iE ES^DJ^f0$gt*Mi4 0n xZ t V f/+!6nl'  xTq:8R[  Zi9*:CuO"wo =d ) 'V:8^K? d<(u9v{ O BG1E+q5F4> `x  u " (*!ގ٥ԪS-':1:I AV7'T^) 0~-w{5) n  @7HYNl|Dwd}޼a4q& F35l;Bq F"E=9$|"O , U6, 4;pޔ{m'!9` , 2V 9 J  A %>P7 4T7T!\.) Z ~8*u Tp I a /MV 1 1 X BoV   .PH~|lyV/'9m  Z6fv A@I g, je=y| a  >EF U ~m7[+( y,I  H r  7b[ Y #w')EXH<F:0q4Y ]  3pVS  0 `+h 6 Ie , 2 !`a\Ӕ+f\M9J V RhXLZ D; +Pu6~nx9zk(R>a%-G`-hK| UH$#h  Q } jm{m~+Rdڜyƿc%WNWA"9Ԃ[_Y*UX H$;^wF R{`)[x_0#KT k߼t#P5G8!t +w Kn\xkf lp*2 xa  0;* uQ 8Gj/ e߱ƕ\z=_MH61^-h&w [j=_AVSL\ A \@! !  " '7C v $fC~T . !bJ8ދїҽy\#(MKU/ӎq My d;e#'b p.U xG9 = MP&-7N:Iл%QO1 ¿M AG K|R8 %,$maeg om %=#!yoleHN]qY,VnTȧԼ g@QBRJ|t"s>S t[d~+.) $S[ w ""i0&"TUڎ ² *O P?55((A 6$2,xQ|.DU M@j :  Wk]`xLFVGߧم x; %! ){-84W&vCvX xj  !1Oe AvT«f$MTO? :D} (Vl]" Vp/ 4Z%vx 4 } 8":"rH^b aǖ)د :GQKJ'P1PӞoei  7>PGX:E,( le  j5r+!|c{>9 yqy . }֘ :PJ)gοM" F al_%%(OwFU -1#K<QrC.!z.ՍV @`<,PIE'FR vuTY"D#$5j"qMx C6}B- N mNS;d=hj:<ԉ+EH+2%ۅʄؐ"TYmW SGi$NhreBiF c@s e[wA\߲$=ĸ\0IK2bءȈ(qp xH!&\ :*ZB fw7_^" ] XHnZ: e8yźK+qFK97 @$FiFJ7.)%$"nV G[7;|\ {} r o[n&" S>!X$EnPAN&+Zg #)(p f Ci0' B# H IJ7<9P`F \$ĬI1KpO6;h~O="$"n`sC&k)Aw 21s  Pus$"Xd {x(th uֶt-Hr)G#PCڽ`#;ZKBY ȴ80 (#Lni(,$tP n'* g!AhGx82Lَ$?F~3_֮ȶˆN$#+R ߥك&G,%RW$'S;| !d# v!| 2aBʟUJ^3=1DHm2&'#n(޽ n%'u6y: 4 c/f#B$DN81pUOAqޯβh&4N/7zv / %Zj{$!GxPL-yc2 2 %}"p2 kfSb&b +Ӥ=/".v+vz;&݇߹ho83S "! #,n.C g &6eG \`u%]')$ ,/%bF Sz  #f")( W1- 59H@ 1{%IzxԷa+w0$;"MW+@>%[6b n$('"c! #uZ aWh {,O{gel[Gd֔b۳(51R/Dk>MEd 'e ,n:l a+/ .L$S(u>y//G(Abd%8 3iq֟}Ґ )3;-Pל.$ p 'R! *11&D o vV  w l1o*Ϝ=n+=6\0 ֻ֡ ) ?Z" +5<7,# 2 @d4QQFaX߶SΝ  D38,[xݗcՇa!$iZ ew, &hj/u949K+jx/vF  "E2D.nH_'aI;4ؓ G"<3I5(4^ܯӲ*q sn8-8{7N*" >2_d ^ ER( +{ S|^V^7·V&|24/$e=[LgSRjJ߉[ 0F9;5[)G Ssh-W(t IJ zj5z@qK).u)1"mw0U hp }#161({~ N4htY81q 1i"Df܇رJޖH['[*s'"9cR  k ]!Q$1.51 ,!D&2O34(<u o[ن[0$u('$V /\G C "k4 -g32/(e i5w ]W?7 2JQKnֱѮ˼Oת[u$%%",Nc{ . b  (s/D10+aD/<&/?B q cȷh~i H "#C  c& k 5 sNuQW\MD$+b.?/*$ |H=a:y =h "#|ޕB2P۩ Y HjK gt fFtmV!X'))W$($ >R>SgB l p PNBvzϕvw{ MDh Q(dL^ ie7"$c#XaN _ Y  ^ry![ 1*.&&0=xv8feX M!ed2 q$;D@!oIK] z+Sb+ ? ^VLP14/֛H5A xleWp4i+0 0uo1 mL? vB" 7\I/;ͷ׳%y RJ fEF9$ #lc1 8\X !% 2Je WΉ^|6 C 6| NQr| +Q-_ V RLiL1|-Gçٳ}{ ~ 3| ">!"5WJ`t c4 #O" }c[S[uY; oø3D\ 8''rUaT2 \ & k #*+',!>G-X7!   (bslYxƒzj f #&#A-*.bb`  3ggQ tM o!u'Y0m۹cUʞ:Jq"'$R: r,|h=4y"=#k ~~dK/NoiBܓ]Sй?7 q"P`?[MrlM(L #&i%" Y1c#'3M$mД~قR ;j Gn 5 - JjU  (#&/%8kKL5S1ϸۘDdC? w  ^ LI(X D cOx;#F$"g,j/=.1]>)?%Y~D(G#   U=9   "'%q!L  rw>dn)95ޯU S r g F uQ* B h"k!,- 1 ;0 _^١ыc43 !P %  ce1X>{ & BV DY  5O7_s֚~ Se=  [! tcV%5 `j cy:E]ڶ_;Q' no 3.v:t2xt sq6: ` n Xr%ָ؅ABi8  5 " `G8 `: %Z(Bm_z `x0*sK :624IC(P j Pn TP g D{ =nPej  'cp>\>ٖ> ej;s7 $^  dYU rvSGUv R_4{I`LyO  6' I   %mu7%4!C "L[thYۉt_R  I G [ NU U s c$_D? _zCOoޤu}L4~q K } l $ 4, -\`% Q E9z~hK|Mh;q(ZT Bc   0 %N# D !{zkh/R5@oO)iY})fs [~nh+0Y  EgLPT{{ EmDDe"~u^xK~ZDYa t >4407:m  y"}fkq YpP A.## U'Pf(; J O%&*jtK~|@' }"SO/37lVLggZ0p  /? | 33c0L/_C(\qUG{,@x;7 U !HL ;Zn1k=6Q2{(}MyPa(R?74-13 P j N2[ha F <j{68vhGQQF{7YfD k/n ! X |p? oW(\j0;02v|): ` l  e Y fP:m/;J@18[pKJ; }.y 8W4  v ! j } `92qF<p6d< _qH *=VrLJ 1=aghv0E&I1956gsYkkHM6kP p 63o(%R\3B_"k`&C#YTFJ-_;|X >^:Y,jE= ZT3 >HFH\S)},FF_y &a1 k(m#wR-0%wL|?Q$!7WX.ok[d B9NT; i+ uB +4#i'e_l"8;PP (T"Mj,t8UJYu(%9>fgtM`zfzZ%;}Hy(]dV$>~. 0~|p!!8@"xbQ3ME0V,m'n ;)EaSBv$u3>-Hh!2j!;' Km|#1re{H>fL} t<^*  UIR.  jv<cK"L ;2s$q_pS)[Xn~"OnM?(<xv]"a- 7kD 8'y%P(ncyx6]wkde<1~aU(\MJkNj=*O,JE;prspQr';-#9%5hKj>}qTx"rRvVBz3>o^QY>Up0&JdItH(!  B,G/;fmW+cOXYE8Qnjc s\"zRS;?B }XR JSZ3k:C2Ei ~#^hsz`UR _${bc}a=2y$K6&4jo:3 gRK#=u__2YD| } Z  qOt)t&  f p%t}#f;Gn[ ^|mr 8Wa/@  3vq Zy a: -'(XS&y_UZBni%KzPXjHS{6 T9dFN%7:C{ZFit_D )T'Km>Fo}XG0$,<K`hhs|vq]Y][pml!#()05$k_U\gr+CVPN@4,wgcfors ".53>@<5vtoo{ ,!udYLBLTl}tnaYL8=<<AH\huyk^WB>2+'()*4ARalu}xocWMD>1 !   "(,+1*(+**#! {tnnnpmihjgheilqwy}||}z}wodjd_^_`lmx,l5 ma`+41aeY>3116"8+}(pb\nC3y:I}dXkgXt{umL}$mCQEF"4.1)a% bndw]GGwEGX >Jykrl\-9w".|NRR~jiHl{@qP$ZQ9B Qped<%Z+rj[Ut%&)}Gl/$>]mW I w ) EvDkR\D'3x>T q   + Y>`) [LA-rQy G N  A m 9dC|& <XS zk9.e8,rkvj x )"y~?%hMdQR]_qMsd<Es e-O DhSBX|_<`P! mh+iV$p1|Ogzh,^Gy'd'xzlnlC6]&U >b-tF{zpp[p;l|^x&v,MWO^UKJ%Q~F ub7MHmM1HU3  b;Bs,G{>x ~<^J%x;fixU2{5rbt;XgukgV(#*":duA7C] \>0lA$<4Zyes\0}\as m*M&@F7 ACt7*J^|5<=q162%[CyC $} UbFTLf A;Jgg!{5?z e2~h1OD%pVlcY2Zw-Y%fr  yN{jLr[[QH]FVVjVAf74p\CV5ej~ +QelwQ\b%e~g$?vjFtsp 0 \Sb?106tZJhN^/~V}%x1'gIT!" /89,-r,8'md8ZS{ KH:.{47ie=A*S^BS \J ]kC !AlG: IQ)*_-s ] RK.>Ce:oK.l=zk/\*v#$2ybL6rknxHh][^!i_QBoM Ntg(gyo[ CHy'vmEKs7VY+M Yia[J^7U+"FPZffu)6"&7bH:Aut24y$nJfm8HKJGZ\R]ekT0 6uSmG,:jZvVeVdvPs SU a6p)R4M&V,qdJi^6Tt@p(7A";^H_IN>+3B-gb9d:t~ T~' ^B6?b,8:qA)j5|0B"h)t"8&BwXo[% W#?dx*B\2hBp_70D$I$vqZ$p3YP:Yn"v{_27{'=,E^a XSbZ 42\@KTn }&MuA^]Pk dCtklJ>@CbeAwK.;eg %A+L'i X9g_GC*d47p)0D#^#"\ fOkJk|[L4yp{Kpt^CMP58\iDE)e|'2%X br:F1Dp}TX~w. es;znE%qN6Y;% sv3u vE8`Bp&Ptr+|`iqa^g(yKDpwUX!+$8zqy>a34cLE-:^Do"4g(a!e^"5VjJr<r-LjvWG>78q:sX>@do58S 'mXb2II\BY{_Aop^}n\9: YrqN?? }Y4!j3L8 oBY~ [ Vxf_ IE\ZCGp6J=x7IpnM#mtH6WWo!JM! G"3  N1ZS@^q htlU[;6X<s]2gn/&| I_tX%VFzp 6 c[U dS9iRTOgP~Jx<A,f~ /JzT0)Ad/"4).Oa-MyWe Ftt4UQ%1~K;1$=:H6l~6eL%(FIAn^aP\$N}aR~_FD}#Pp7roF1h7"?*DzYDrbOEDHA58 (g"K4?ITE3IK8IXodK9UyJO.;CG`4%iG> *wQgc U I1zK7-{9}#vL MX"Q$ Bd G_JS(\i l|ym'9GF.ld6p F&Yurvp`(=b kb(z)ur&wF 38s> 2fa@y(g{ Mu pkAsB*u  ",T0)O.$c t:UPjG"X O}b/?qA  UMv950~luN3~?-:C+O h+[uU,6NPm@0-1JK^+ 5q`bh+;b uO 8F"zc:5[x$"h X[J{]]e SFFB Aato%V[Q7xLaYm) FW]ik 4EpWlyM$vlFx89~n+S~*EO|= 3hvkF% q ;X-H86 )u~[=<*].SlmLEu*ZbjJ+>9J `a=q8=w>JJC >FpenULbdUcC(i0KGILBJ6oE/Hl#S]eMqu`L@katdebjpods}5 $12ZG !3!:B"MaL/5[]()J+BR#T95B8Q1>E)Z,TD1i[@AF>KCFH:Y4PPAS;LBT1^5GB5V8SEBNAH<T>QHAK7KB^3IG6@E=;;7;= F.(KC 4).%' %#  )= -@m-6!agxOYdm01mbD/:U[q~*p1>lGHiYx^/44>zb\9L_6ze u_%b p(m\d / ]} N4u$Em!EA1,u(NG9P,]*sgqezn'tg%O8o+fIWj#JO $5>cpH~s%\.a(]zLc_{y3T@>40@]^rv}qH}_  g $!u}cuqI[%~t#E`DN@r ]O4(1K  i ! C uJRFI5t{4.<. J > *  kV`?L !  "  LU'O99S;?P l& %Y2 D*R"rU 1 K^g0S=.n X TY   _6w0.f HM) v q Ss1/2b4 @PDA N_< < GAz>!W/ O8^rx ';|#|fCM{vu   Qj  R7v 9{!xd$D pT8%&D_`Mos # v lW] R3.fE|+ H ?j "<a@~a) #7L\qI$22 m E 7uQ Ee JdYyTdo9\ z4pqRju:!|[+.]h O K`r\ `b&J|qz p.l7owuY"*8nw f vp% f^m,}` 5C+v z>/OLv\F6vTknb hT Toev,uW*mF/ ygNN f/cTXU3PeY'` $M CV=K}@I, 05wP  = m }iuvd]M  s ]b W G>e  XyJm/ zV?}I+&_z}yYS 9M 'c _Tr6IV >dOD+Y mFGm-B(JR 2 -!F;6RT")B(wz LB   ]{}^1El,X. pC} IwQpJv- x$L * 2c(+ ~U1@vF  nc2{ Ggil'La4_fv K<%~W;  IS7EsD;_ k > Q #@^= d[s\ }jyEv #@Nt=|IJBn Wg`  i f5eaF?=$ Kk(QcO TeoXqOkc) &#?9 ]-$Gmy 4 |kb!3 h1R(wt9C)'pv=V'E}8h- h s =#/1WV 2~a 0 x _ U8k)f?G9itv0B W  " J8 YG:"60B_X5 -R T 7 v>:|QT7BeAP M  o n : QW  @)Cx>5dqoHvEX+ gTc`B}yh]&Pfg )g  (WM;X#LHSWejqW9^z\E(40B/V d r`wf<D"/+$r t{nt :< 3 SS\ " h ujdC J^>rD *h%Jh=98(#Vbm3t / 7 # bg*D)MD/?dg.DLg  p"4 - U 6;| dFL&eVWCn4SGNS6w [ t  Q F0&$=am}DqU|wNpq-5 [jP _ wF  CNgn^#WW\+OqrL>fI 9}W  Hk ,+ ` .?Y0*G O -(c,p<:pHs%W1 (t lX@3 sAV9y6 j;݃xi% 9Q? z?F`)wm  P8JmD3%$D}bd\&JMf)Q 4 ZF2yst  SDaY "O4')} OJ | j-<(W Df!?Z;1}|3>7;|/ye5-1&ZN 80d <c- 6 =<Y&b &%$dUfB< { |X^Z/( h<m<E`k^O@/O:o.Xrn)G[' !b2 Or! gA@F!@]?t !R BMF t Y=' 4)=wanTRml1=#\~77 L 8 |{GO  a' LYW |$gshT )|prpf^ c 0OV<MLqC73 T\'0#&>+ XX  >  J2A o loC(z??;a EOVd|nDM/Jz<5Mn&IW  96J  1 M P B :: #wZ2Xg TCA6d {bMFe $ 3 o " ( L  :bP)0S`e-v x^HO#:C"gV4eh g ) o  V v,#1rJF!qFQHy2,&%4 Z M 9 C  : [  M  4(9?t5Ce*J8aOY}E O c : ' , X o D N FNs[GzQ3q0 Clb;YC&"<&= <   M o  . nd:MAc*}Xs u1~tn-WIO6     Y  k XIjN*&Nx.@% lRVn-id0rpJ : o U N Q:rh?:4E$s,<11K;G&WdRp]E H h $  m. ]*HvjN`!bkO.3KU;Z F<OIfT/ + W n [ *  sCSO7_oHy8PM tIkb,Jrsj57^V &  u  j Y?_4]0|6_$Kng%9O2]jyi>IJNkl(   *  Z  ` kb53e>$ \5Xg.Kdt?\UzwaaO@   d Z [ Z<^{5 4^no#7cor|}y |2VCu( ` S7 @ g;+: ncN D9v]uFuANio$w?qV9o $ .bd |4qoi a9g*+$``AI[@\%-Q2gq ^^&0 r+^8K<+;& i C5qPf^H~.jz Bhm +]_%#h'a9o^b 6  _|'U,y7&Td Z  Q. NgE_F  c u 0   |^\$0Bfg !9&brRq G .Ci=7 7 5S<3#, b  ) hq*e <03DM}3D:p"] `zTip_j = ( 5 8 P& Q$3-xH23vjTk! # } @-XCyR y#I xBTx*FE5e(6t$d^ ` -s\- 6-BX5,net\ ' S ytx yyY0+i\tgPo+v1. 0 ?fn(fMgCZ ?&UUNHF02g{4@w{SMhXbyr  !0 lFi(@4/m W\ c"  4  ޤGaV +6$'$s? _vmW Nh""Y#b  ) @]YS &(? &3K`RAٓ0S- e""$"& 26@ |UpM+!#4#|a Ytno(zdzYdz (Kr G_b4?Дװ| t R5.#(*%[I1:l1!V0SاR(:031_+L" uxTBV W (L %%:^Aۄ2 }\M!(-I/v+) ,KاdG40a9b!-58q4+?  n c M  6qǕƣ g" '*Z*& y Lgbް+JJz 9+ 47Z5`.$hrvNV.HvUBf d)v.ǙKG. } #&']%w'1 {,3p)2u760&|5wz,a>X4 Ua]է yݓB5&F!D##h ^ g/u׺Ԃ2J{ *$ -s474s,!h X/Kc=H kF { ܭև8̵νۀc& }"$$ >mC>ہi Et'.3Q5k1)E :rx(r&&l `b- #j#SC xܵR;߃5n6"T",O243G,"%ee2 Wp a"K-5E 0ۖр2: U!$$Y+Aߏ܂޿($i\;$-12/I)A!D vm(_>;g dkH b p? s%v**'[%!vi5 !h=x &70KRkS. ) !!$k$p]XE0l '(&$".H filis K~"//֮Ӓ  @!#?"~q:mWB!y&%7$#Z!j& s;E0Aa ] PG$ZݖԬхѧ|K x # $h#9 ?mg&` %$! I @$ }Kzgv |@M Hw8^xm, ? y$!;%$=9E$pr j$"W{)Zl !X$R48 c  Zc(qC %T  #%!s x'j# "#J=(_qT,;W   rz|&V]\oK  0 B #^! g1)uoLA@Q nWKIwR aVATGZ P + 2L~!ވ]*P K?^ & uu#R 5  aqVDY! 'G\FG ko<"PjTm *3Z/Y,8gUI2  Z 2|5w.ndݩRӶMX ,%HYV 2!1ii sfQ%][r4+ * j&gكս47 6 > iD. 1#K U3|$#u =lH&iEWԞ݌q#n % N4M{o4 v8Q VuuJr5f ܰ]+h x9 *`ag#eS!S 0 %mxpK0{`_ߪDԗ>  uZ7 tl P,{~63 9NbD VYL P _ JipRPC t   3 ZVD1[aa!" tc GAh&)!S Tݶ E ; +  |:  2k.HdTWGW XKw4Eg  S;t 9 XAN |:i!%bT1ETP\[J0xu RA?l] 7#}y T v  /9(0wH1zgn tAeU z. >[y e { v74TkJOcX;(/ uIATx ?/m  + R # wi Z 5 TveiD/*}S66MR_k 9Z@#  ){>r@3&/ tZ,BiylO b\ldTD,P4v=:w QAH74A,AE>EPao|bsViLlj2[@Fu/&eN,wk\<>Zy10,ðyY<M7  D1zGZh&LIwC),4l2H&#HdJJG<R.vg\mku\yzt)o,(O,iuC?#0W?oRcO 7sk> ZqtiShgrAIY4$+3DLQN,(*;-Y~SE[o}`F' !/BWe\N.1F`zv[?1:P]\\P08MQ> )99+15* *%   $)% )($/)$,2"   !""! zrxsox{ (,%*%!!$ !!"#)126625,'($      !)%%#  '"),,201/0669<>@;>=@=EJLRWVVYZ[]`bgcnjlfgogfc]_bgjkmkgca[a^jnjjgtrmjdfvqoy{xytmlimhkmkggihhhgeiouw~tKF[|^etx\VVv$W8vv1F`: vj#?EGL!H 9=(J-Cx^`kwE  7cJ()*TrlVSEe@Db#fOZd.(;u#P8 F}j@o~< !S}zO?_@)3Y(&'' ~n,! 8j[]:U/ Pv:"o \X20cA_ c ;PBpVc60zbp=&P{` '0uZ'EK.(p#vpR&fDd -2;~.4b~`LjeXIfg}Pp}PIgYzN-]?<#$3nyT6b*IhAZ^ btJyDZOXkw~d@a -_E7?,"]IM[b#vcY8DP%Wyi,:ztie<#CA^6Hf7 ~D#pd/wd3gw56h^_gbnD"}2Z\^{ A.Ps"d o90ln2RQ9G=jYH7aQ>C~fn2}v36(v[1 i^X?(%seq)JaR 5#lF{$;S"JqK;M.SNF5Sz3ujHN93=ee )*+c$+>EWR>V|aCp.xnr5zVR[#;CvR]`\}/wqi `zdi<|bv,K7dC=U~Fi\\tC~e(sw0NrYGpy8FN~>~-DGL]mX YNu#@gQFxyvidC)H"zR& l}5\dhIy KJ8NBu&ZKb% IM>2O3>@/++ Q8Y[ Dx B#(}nRM(;r2:;2U?IgCW\ eN7^02ko|qs|g}6H6G^11 6"&:j l8v`CQ;l"$~"2b$2J([PO4x 3}2s L-}'T=b T  @P[NKzq(<jXIvXx-ef/#,9y_%YX"fO " v7lM^C_{2kh a9FMCjTmtpI_/8,r0j(TqEs@&b``)u&u:Dx7$;=G>u+vDU:OO >`KJa UG 0I&p#M\]QGu:8Fv|,$_*L79U %,}&{GKMAj[Yq&i_$ An\(QJE{>FwTp_f"/]H`n'HjH_#Lf $[;k-uo/X=C61um2mC{=-VZY=f<TkxBipy3NuSL"&meSrMf!N:.SWxtE0"@&ScfS.K[LJQ nNS-+)C$r l Wd&{$$},ocKQPqCQe@< ;TFw]pex L1V# "0C VMLyC#qeo7#  X_#zVJSere38#J nOlc9CO  "< Rn89 qo{. b ? ) cqb#P8X9 V@l w%+9sCW O*5S \;%` H't 3Rm//fs 3AQQ ?P&*6 [@Da (+F9fa6 ?J7Pb 935g/   r=f]r3Hh>==dtL)Ca K 0 l oQ7Z ehL} SL(b7 /PV 6  8mX&g3"a*_}L#KyM@99 ubvlXT`uP%E;o-T + ./m)D1_v/@2 yAcm/R RC], Lv$Xa*y q+Nuw'OXJ  K0 d =+[5u; 246R10AZtNO+ 2 l 6A< K ~mg! QnDڃ = -!%01P HF  "9 /" WzFTIH_ :+q hPm ' eWEtbc1wK\p%3gm^ `iXr)X>/2U R'\ Og%sB!, Hjh ld8paSj].%4 +n*jN , s K w2`pdfG|l 2FFSVb"SQ9.egJt[f|:A | #4@S Dpg[Kws\t, X ' SdE*O(*v H_{C&9TE9:u(`!/9 thT{.5%>'p%|dB=.u4pP=_@2 v u ) 2 M`4mV}  u  e T5MjE Gp?Q h0XTaqJ|G~F?.gyf|:  oSwV4\OjMK}PQpe6+-5^iF2^ebDOI8 @) iy^ v ]H $. dul_iX ~ W-f0E^p?CI\G4'nn/J<rtUGJ:-$@r2c~r5>GdMMhR    |pB ^uvNq#m E S=mg#XK6!| N # 8fb$"VH a*at,? xbY-4^ PTk<ci[u}'c9xRv<  ` ( hm#E 7]yiSY;6H}+,**E*+G>!OLbu% 5@ V O 4ct@2e*w #o%^Yo'(TYh{S# &\gUoH`YajX03,U!) w|YYk@l,5,/;~H/ 2UhRL_uM\a/knO/<\T9^hkG7g68jY y;V-i Ni-($I3Lkr^ qDFNujhcGtd"( zMWMAOB4:AbTDLK~(SeO%g4h{-:P e*9mE3VTE3 a>?kbDP6_D .@Av qn5pEH<>529WB Tkb;R0 ftd ${|'cc<7dE b,??_4^N e_$ {NX[)) -k'DpC:& 1R@lezqo@Jq\T?eutdM.63a?*(mr(%q0 { ?GMV,j<+{5zsiFo 9p3SK#bh~KvFz :by:0oJ\K cKSZk4WI(bEa1GAy<k)R"2OFi[>R~]J}agTf a_8z\ #8XH+3]M)\S!6CU\_QZv3Wcr\_}bF 8"9M~_36=w:F|8@'EJ'hqGj-dhmxh4~.dcb6fi q.Q0tU @3,=/@DHD+D=hs+e .%l4|6u5^qS:(tDbV| . 1[|648 PMEmW?H@E<`)F}m` y^Y] x8$4i'<2a3pcAhfp'4!HR$ |813T26@[|S | &cz<\0vtu JD]%]F]h{G|/>4l6-PcX)EOK 7w;izCR0qB9LXG(Vh rNOy.y?|;GE S~)aP_&G%L`|v, NIGph)T;G,n/>\D)<Tf#^q,(6@W j[1ux@ ',# KF--J,cd5n2b >sH't BZrk@xCMwiuZxqo]z|vV1b6883!4K ]Nzs60?8Ley~wiIJ>HhHeNa+J:i_Uo\s"mv9dx\AOY=Q5`jU}UOGCpEIN[,M@*';0 &8.#X(" 4-"), %0&"$4)r(+(39(<>P' XGY`f*d*qob$X8 C6 Y8346@:\OrnB.Dkvkui[1i7MgvufAmg{Fn}qcgGp]Ce]eSm3rQ!Al|| M/:P c .@SuMmK1MFSNx(%oh2[VBONu h5<>3%LKy03`"n]1v@fNKNJ<g!0]G=djsvx%{A~2Q8A)[(y =q? (3k3MW?%w"cMw> *jL%8{;TV4B][.?p;vG*>* gT,0c9@ e[8]d^A!g$Qt*2/m:y/ k o  m ><viic P /= ?VU?^~xW|b$cD A F1`CICIe +L|*SJH)FUPo>mef&pg>co-G;tuGJ7QGszc8C>Q]A"F=B,` `  ,i?f .;hQ 0QT`K R s#rT f}O; 5koF a [ gxy;Cq ><7~b_0WF~u"6  h+!c+qTJ cf) * (WR"  9Z  Bk=T9\j~  A  r <B?@!=U+y w_fN.0Eb s v gGRfoa|kujB`P# ^ ? v z; t  tDss-X `  ]T~%"1<#57z"aw4eCCTSMO&k#a aQ}N^S / 0Z  p0 n/B ]c.#44qXuAQYM-D#  8$& <I~tn~rEtmD?h9 C XLr )'Sw1C;} }n0iziO31'[fw9-q!B{-Y }[3;{W=8E 8 zulR&|}]=9_}OmklrZuhpEtiFG <qjL<$% Pzq2 d [ / 2UWX Q  &2K# U[j+kg#  [Fd|4E  @'Iv*}] K & f1EQjra;ELJ:q<{|.=zkEhE}]m)XT}O9~4u1GB^Y+,{pxG^   C#nhg:bv^+t%F dm[&2  W efZPS9{_O^@,igZ>7#tbPI@Dym ODoX(&C -sDMV[,giH L,O*n+YW^8y1LGK'#R = <w}EUQx@Nhe\bZT&5wCiW3A)N@MK[ ke( |e<<P"aPE y\*wd>6` 3r/?Ip/E@b/4KDv+]`p~D*AB |:#o*bghZ@qCFjY!k@ bPbWi7dIS$*X;BbPt)3XY@y*[" BQhFRG EPCyMH QGc.kTzxU0(|8I5f`<2vV//Jn3T X7iBMQf%p)yK?D6w#"Wgu).S4% qO6)vg 2jxZ(Bii.8~JvA=,-FQgrxO$rg$7]$|IK$"y7O|:J7sVy i&Y,JyuKt^}rA&kXJ?b9f B82 jJD[]J%asx2 dm.7 e(7L>2}X-a#toord[_rqP[4zU# .0WzB _ |o}cF $NUv @L$5Z8b}:T C<~W`H |; #bIMI8N"`Ker"$Xa`3>XRB-(rN83ycp4gm"9H(gdd~  &m{C h]^M[yI`)GPnJi`LC..c[\] ig41QKKC-g;w^]WK6I&I0riT}c5 }n(I[]4QFf Gk2yGxC5+."O._6 9Uxla1,Kxwxa%7J#VT~l=":2V%B>p,YPb@(Y 9"G~7 N>#=}ht1.z67"^=/5klsYU)K>1bu\p $;>F*l?aed1t]iHt3z.C%7P: `QW@iPt~(N_Creab nt@#(7SG\SDK 6.1-L,o 0`/U:ynUDA#k[!h Z@tUW`\'.RLCf,31E*.n{cVi$["jo29[ Ec +V>h57v5g^Hf-hs=@6xI6Y#}bCO,* r m7p;8D#Xa1MA!(z<o*`hT\/U@n/P(Lpxn.,OZQl-gi[y[/'&ZQ<:Q8FDt7Wr5UXckc1iUEBe{WV^n9'Iho>$na8: `P06ig~1JGlX Q_q2`|2` raYeqqJ.t6cpr'ue|g&3RQljr AE|3@"RKv?%wQL$-L*nf3|ME"M>c8U!+=`1b*/.n!Y/M+Tz}aoM1LBi{y {NmEa q &K^HfO5)z;*vS/t'dyq+ >rjT (|'J&HUA[M 0Ps@kIR7o{%!'[J7dR m Bsmq1X'v%sL{|?%| Q~qmWw^`XW+ #zcP-;;T->9.g[Xi'Aq#-T?r= kHb`r +9$ *EtF0gkEW}=]\<W +j7B~Q{v0[P~Kfc,f`-.a!sz6"0;,V6B7tjY g"_J2Vh=*N7&t]<8g! _/jt "6)\ n d??v\J[s]+-)@ N7uqOk.2X-ukI-{Ooo>uQ2J<Q PMP;hYy+pDS S< mlU=4?"op0 Sp8#)"xAU%k`ljVY!s%:S! bIRY:Wo& )\ `4#xLE8n8|tJ< 9R2.kwm q3F@0`8M*3=/EOcMzZudGw08Bx/W}5j3@PWFm?Or#?eS=RPo>~0U9t9Hilv |c2ta,jMcH@KiE8hkgn4_49b9qP3?^9;O]p~~)vS&ElI#d2Mx(zKyL<z9a![-_9A 8=J)wy]3`5e;X|V#'vQM %M@@.IyWlFQ(H5W!Zv] Cvu41j$<1BB_1kV10&\P+}T&~jI(u)|(yc8q#9g>YNyX{{(JH|@ ={l;0pe@pG_fV/(8!$vO  3~58 ov.7:_Y!nW])j3< Tw'j^~sKL2=t+62;&4udHV- 1?L^8@|xfRl|xKWy56A%C8O5L.Y9``R5X}exIX:9<=jRP=-([/<.&P~B;8H[B`2}locf C']- * ?9*:`)7b"Ouqrml16O^wW zqr\{fuM`mO6%<+:/a)- g)f:*"*PmJ#2)!NXKJ"NXZrnP6LQgwR.(6=yqsu #)$ #18RX^MGO^rncc__dvrhcq~mhd`HTzYC&;;y~eJOHA?MNY{j^`Nd[Fe0F-N&KIC$0HJRA=J68A_t5%(;:;M$.NASQOB4&+'1:)#%D|tcCVjwQ2)Og_AUD, KX&rzoAH[dV`jywnhgZz{iLCJF_iW|{ *FEB wYTwrmz*(% cSXetjYjfav}wu'K||X;1# "6:HS61"&!#3A84Jbit|jQ6,   6;C0 'LfVJLE]{vzx~hioa`cB/7TREE-+MYVb`^VDCOpxcYJahqzmw|wngh|zxxxthht{bA5Ed{y]OPikcY73AVggC;KSYPE*" *$#<NC-+3,+"-?KE2}{q^O`dr}{zzpzum`fedSE@:?DF+%'6Kgv}tr|ecyqb\e|s]LDGJFHDL``plxyos~tpwz}|{tz||y|tkwyu| {{ojhv|}fcodec2-1.0.1/raw/test_datac1_006.raw000066400000000000000000030452521412132000500167340ustar00rootroot00000000000000zh2'x EH o9Fk F ^_ }|\ >'9+1Bb*5WC۸At DMM}+~" Z f R1-R@ : 5I_gD"E "t #7'@@[yJVM 4)wg~lt"&&nՌ %X8n44%[: [a UMZq޿-XLI(rC u O +$L$2L",Do `$si/_# G  ,^}Lt+ տ ao >A x'\|t}4"f ]i e }3#޽z-[Bܰd6O#*!YZ! " :*  ޘ}m"#X! XbDK c' VnM ;A"g 2^V$ڌ(ݩ i\#='~c!~&~AFC&l~G  4Y tULP,E}Y UZ%@|1.$ NU/v ^{$:Lr<] z[@NsX@ \{r% RLםW@NGn"u,<'qJ5 P O&T  2 ,sR7e x&7U'{I}TIlEP  iP- Ue;z =>b XeC] C  '7 '" V3) 4^ {3 "T*c}~-!g [mB 0(*`F%26%XiZ"6d}vnd`ro,@ ~,lWvgG@aeZcEm 0U wKE!k%0L !5 pT vTY~Q{ +D K 7)y v n A"q8+->B LsA!aO%TR[6#f]E_ T Km 5O]]"ޫ" }+ y\8iv \߄mh &x HPz?,ZqG\ yt m #9N(h# D|>dGh(Co0VY 8 %Fkvda@*O) <'Pd WیT2a ` )ar q  O Z(|`d  7oWgr G !;:(=!l(PrJG$J4qAX 76 r ;  Y~ޑ   < dEH:2G ~` L | r\ %jk n]]4pG%? +J rvP|V4@Y\k-.4K u#r 6 C r_|\N:[p*}>g ^%8F 8$j0qBWI UY- "  fa wi,jN b [ gJ *T~ eC` I[Rr MP<Qx + | 7 ? bw  }Pw0hK 7h  r5 x8 +z& $"vVfUu/&K30h Yr D@ 6xMpk! h'lsT  O5q.J! x cuC W!R|F 18J1D W# s hZH3sfnw @F/C2 rD\d _GdIK)@>Z Qw q>" ' p tt/_% x , = 8Qr gR-. JJZE,P Ku* ^kT|p ( ( {[#yd\oY \C/Ub aq84# [. }   ~n x~u  qonDe= J ]+D1 x3 t N: n='Sg% $. {8ML M eV/[ O_]5 # #1gH4gi!e5!gY( 4 -  7Q gXk  2%#T &!4 !< @ _ "u.bd| IwN#JH2uO$7.aHn R kD <<YP QFR7 Z 8 6?!*--P9:^KNh 68k I0J  aj~@5ؽs6Z' =! ] KD+ o?[a|v! w7*9N I #R2 * z" na:s H g 8\^;&0<L #hu 2bj()V $P% W f4 {R6$0j 5#/C#:\1';q|@O ]9] WL&7W8 n WG.*v0H 1*M{ ?n =F<DnEo\/ M }8Lm c |^| ,Hb`< =}`  $#jy -$`~ % 7me {MI7:dga ]c Kks)  < '9` S iqoTB-~x Y?AFO1/ t6<).}raHl a~B>'P]g__ d; wlPFo :  E.o(rfW ycd ,F }#f_ ( NSNsa{Ewu ,K: |B/I{: &Ahb`` ( G.}]Oy Ewf&+VN,"c ;^-N+V S7?=Fmk ">ivQCo5b WN6 @ $!S{$  jf+E(<\F X. o _-~B|ZU{GF;,tvV (![r NB5]2 Z7mE`lT+.]=pvV(:uH Ilv ^! 7IZ lTI'`K A [+qi w: e n8L h k|~mQ #<DC~^-TA rUK 'K=9a,hE p\6zi !) + /[V-/h!Ni&{D ^-Dr HD3;$C ~ E n T'cMHw2 "dFwMv PJt!YVqY]v&~m pZo J \_-W }@Z9P ^A:P1e H_5f MK*u=u3g P~O`\e1g(bgQb}5&<FoE  zdcy!q67e5- 7 ]}}A ^W0: 55\  4S)QeW%iV'(HN:XS :XO wRh ,k&nY3lm,%V { Q6 ,Y/$ [55 \S*@ioN s3D.a# " _4] J6\i 7w: TI.{UV :I L W(kr yy[6t)? ZB*@\TX\~U@d  V7WT@@s  L1Pw@JQ8{l_q  gD 1  Pn 'K*c D13kI<<K rv,{1uG }m nA"&_ X[d{* M 5, "^ 4t2/a A xf@ۊI)6A!2@?; $ >`d R Mr 1(-&C ^#@9Y% 7)xWr  tk,LquL@ /^o#EKgVjP  v | 2 ^ cwO;;%QU<ld+S8 " V 2g![ [2v;VZ6۷!rpAb Mx XYO=W zK P^!(NM I.Pp  9:3 krZ* S_YE 6/9E2 ] X LA W N KB=0R ,4 8^HB ,F WS ) q}E;G?< E D6 ~> "n9 m ( c0 5s y  VkxZ `Hd  R )_@&] EU3 W\R|T4y JxgMs cGWzA ="8R %\ e!gn j2L= ' r'H yfK sSvD8jJ -FsZo&  O^@-  ` 6 YU!~'   ~|H.RbYm) DD-wA-9# vI_\ 22> r:CE < >| BF2QL[ 6 " U  l) ' qgAM+ , ' Br) F@s^  Q\ V\`$ /N; 6 Oa GT xu zmkc i n| +i_Ui  ]$N) z*]OQ%<E1  2 y"2 {s ^Tg,+.0d5. -A Naw;dUJcAX [ E]=p r# t>R% e"tk~A  .7X?( =% | jX*,wH+ ~ dwc >tz .`@Y]Q s5Z $ @\ 2, % [ _V / |'LaU * 5H CS` y  zo  Cg? _  :Ee Vޡm',~& M[.AZc Au$  7j0?0p 1fz@&# 6IO&_t A R qdn"7 oj p e!W\c}D /t <s o |8' uhHj[T-9B0ަWpSw]%~+ duSX a (C%uAg }YQ DF2!)J;Y`] `R gHD  uFn[ ">9)uK 9>>jJ' x1 ^.4l? Cdj$DB+V|e'  >-9_ P7L8 wS8]kKOM} l` \L! f 6m2Z 7  _C-g?G 1eZV5 \pn6x g@ k B 2 @W}$ K'b>,<K|  @w7o M >/FXwMqBJ#`67 E_S 4)^N|j-G K: >ZEz x%Ex S15ha]F F|#+Nw Xm1u X"} w Zv~VOODqR: :#/^H(pm\ ` YJ l\wV h I{- Bi1'H t AG8< :U.@K+ -,w?) |`)#{5zGg]d4U *7b jCu", S X.)x 3 q 3@  }Xh v #Uf3}B. _NvT ?D@; R! u 7= vU?P0Zw  Gi/cAC@1Ty UL =T@[ B};F: =ki] TfK  =: PEc6] PC>Jo MJM J 3Ro (:+ u Y  kIp:R~SNz6lb| vp>KQoubs!K:Iv |ZmY@ "P& { R%:c  K g`GQBa 54kIm{Mk7 /X4?)1 Pb x Z >0A<VM*.{ `  c}gG> ev- PT,i?cmu2gK9 Y~Z $_FKKW uJh 70GKK\-;1 }} A DG@ @(G}0 <[ ngR/; RC oP<d j h gv DM!_ g< L. *P F&jqJ@ ?hb tJ|6ZEBKR (S yhf ]>epW .+lf[GVzNQs (| >H&wM@'t v 4D a ;&'A am@ Y cca)DsJ#! B"+nhliR 03  # F"GL I ;{ 0-Hg i59 >8.HI# <  F3$  XZuN- uvlis  BQ IKo ks}zDq . -3 Zk5<  8 teM6Ji TGwXx-WRUb kfo Y %V C'vF (7 y9QQB^Be;S (G !AW>IT+Zy W 'R,<>4 e*4Z} 6 4 R2M sY 'WP[ lpEw G& 7  3y=d tb; %jSXk6""JX n U A2 c& f ]t H cT$[]FY& {D(\%N 9 h\2Q ~  .-Z &vf,&e!"J7'UNֲ3H T؁k#?I/ #5\W@t Wkf T  E >%I%!6Zב@ߥ ރT { hS~T(,u]:d_av-D'3n.Ur9' ٱY+271@~Y64&4dFK) >i& n -@ZG" C"Aލ!M5LQk*6:% <&dXG4Zk q_ DM 9R(; 7W)Wz"U$shwnZs7?H > 0 Q2 6:'] E'Vy'WH/߃ X &,'R۞#< 0$x3 !hV2BBAK ٢%|!D$;Ux +ܛbݮ`%YM=J 1T?C" ~x u,?Gp    \q0 n"gH SpE f>s@Z>A}!GneF|!'m !gpz T==kRf M rHz$:Z.'_1!_ rKsT 4}X yJg\| Y8Eb -DXR g; reOt = DH -L<p H$]=^kZ ^9_J2UEsk 4KCsqpkV } g _>-H V.,yt$<<,h iHQ&WeV,? *8E$ " EX  ?e%]q x\QV A8~t~ ml`C{JSs;| b.&b 9!!xCQY1 8^I [ ]`$N%% U O;Jr{7!shx G!5j`  p q\Z:Lg5V|uhBr -m cL!ZW ;%F>8QS .Mf \ l^EA*=S?zT[  S  DQlPQt  s.1zARpju &/4 .2{g Ap{'`kX\  O Qg 8D\  p5dY A@jcb 1Y28:{4:7hFh Q~JL_*~+ Vn K;+ C0 3u a<aL@rQ Nhl A#0/ `e" R*LbH (\J/ m u%B^pXOc]):# ]];G >$k Z#I:",_@+Wu- 4 i { m M I gWS@ 9K` $ke$,){uVv2 sߙW p}`C[ ` S C(C 3$\#[I[<ق4 yL !O LR%Y3 BzS6#~aAqB$+FE#RgOCnU3m[7H7;ܡ٨h}S&%*'G"' T)^SpQFW,  @-Xf) NQ2T& Y$}۠PW \t 4o5C 0$5LK%I{$ < ݏ-Q+J& L. j s A ) " N ._5 a Bs z#s.M_b#!vt] c4 [@51~ e.xbtGHZN ^8W ! =y)  - k! Y4H @Ԃ8d:,- F C lo}ZR ;l AAU#un4ANމ ۢ. ~i_.| %] Dz R&g"XMn#[ E!)*s$eHWO )oi n} _hefR`# *nR}"~,dޖ  N\%X7Og  sd Od^-fd ޳nߩ/\Z+ Clu q 6 {xqMlE.<fmeV-(M.!Jm ߶r"! HkPLioVrE\5 m3mXBohz!o PpݶG"@1_n\ \`[lY}`yM fvR h _ M XV`\%u ix2l!H vgY(5 zJ/Rn;B v/(F O `*UMJgXUJg t!H(@"١E,&sZ?%6 4K 3\dw]z4l(Tgg(qg:Z٥; K&J#  Dd߮? N2G _  Jd B`9J X~@, y/ XJ,' N+Q? }2\N unLXe R moc b%`>RcVl  o, 7W m i^m$b@-:SRV +8% ::%O R :|52Z^?dY<2P6jY >yM I9n#b.Jd^2Lv" Mgv xl@ *N>~iHFnuJ5 (o:zz3XC Cg6d$bTFDsb&Fg R3iBo  Y \dkL8-xn V+! U ]c}gs| 3(g &d 5T-GwstLl6RcvU  8ny` 3`KYcv3gMF2)T 3Z%%lo 7pO]]L@<O< x1 < *i}v- &H)j1h'L tj:%6: 4omC78 3 Rz+y]] ^U2x " + df %:g m& _}IkVV>elh=#8z zks[i(:N([% 7[a $ K NZ,RR[s}3 ]" \ ?e?W%vh6>Rbk OsYdNM  M / rs ]e L8; )\-@ 2Vt&<(96& e,YbjnFek 9 E2,1 o xp%P) Sb _ o5!9V~8SM[9L u[g=;nb  ~qy    +5w[ . DN /yJ"i{d  fEu u 3{"M@t 6r7 f_kk..gq!a*/ V 5YoA<Ve8k+2BQ: Avqe07 hMzOBo988[  xs=`[& po!+X3;Nh};8 eTC `Ja   kZ5D LC7^QAqlV|x R'# #5>#nN+D9I(tJ_ n53&SY3>NUD6 p$ UY$ x4| o4h~p;^B%( CVt#Fx% 5L3L0A[N mr JA\-u0 &qQ L" 0 U?gmC$j?$ r#  %W NJs0` |U;}uLc 0dtmWg36#Bb$'U=%rB0 jZh_Eu |At ^  y D#`! -!4F(~90{F]fT6(l / & ka &Cݬ*>@%), Zir%JpPs5m3^5 -H I P vEq_ 7r!cU%EN: h Un#j#m)jepx y} 98iijc 6S j x0  W`a U4SVMZ\5q u) pe> ~d _3 {m  wT {6PyM0 Lkin= i Y (Ug CJ 9\U  CGr! C#,63V  v- a4 J~Ker_1)47:W5zW %\ 3V [n}Y &<:sARCTl!sO9# @`Amei-}  ?eM*R-mxw2ez^Z # UIq4|@Ge{(L(hkWHT xpW |JJln v: (&.S S IKb bmF Bb R=1[8~Pk F 3 !z: qKrVg CD4~| 8U3c :O:kP#j*6  w7# R) 7-e 3M ! j!N A[ %T 6 |5 r+ FG`c*2[=i \d]  RQ^ J+ |?r +gRF6wJ4HrzOVc1zI> g| %f0 ?o R^^#c lD  $%.v ,c u`{QcX>  ]>[>g?HYCW A #4?A wj^)9v h\RM)t*Y7^(KlkTgpZYAY/y#R%D{QtNMsv } C-R<.<-_]L  NN^ j8_hb w[ V|m >xp qOY ~|y{x 7Dv*> q: j 9!~uEWr8 V w ;t C  ^9tDq.\pG  @ P[ > O 1Pm `S #g #kp7`(A5 d"\E Pc{ 5: a+ H: ԹD'T6 ,`e~ 3SL _d1 Ag`=(Uz׀% i ߷? FF} ]nx m+G ;ݩ ڇK E'?  K*!k&C P9H@fپ| gcFA j + ޺!nH_\v9$Qgޠ;%!R,)q&cݎZj{Rz,M{UA"_Z4 n)( `  y9 E PG]D :? * @pFVKl pv^2 xQY))tA:  = r'NrFC\I'.q; IaZ^  ;stfHe6  Qp< C y# awd-$#3u, DpcTw 'ZSDU zc%r z!ip<#+ 3 @;-7$ $U'4<]Q. -"$`\ k^kt   & B@} p7Fbh4 As"v6lU fU7[d2 &KFzhU& ;tv:/>Rzi= uek c > Do*/y ?%gM,(߀+@ 6 1X[xH c$ !,+) | z1 y>8"޵$ Gx<U hE. $~N  n "F: +(A fiM_ T^ Z&%'tnk: Ki 0x& QH mA&zuM: PI    H !(+Y} M\%.<#  M } F2R9u:@}{ d 9  wr 6 ON^b?x-F p2IV &SjtW{ /Xv@ = - 72+T 3 \ U yxm u>ELW ubFn"D_Wkd 19d"Yma ^  >r"9 wRx%&B hA GRC x 9h GO   ]-y k ݳ!>t%Hx  a/ n _yK#9b kz$xL<I' ?tn nLN , &C^DrV $ 2 $ $* { BWpeT$f CP,~ Z{a9oE t)3< K; {vI2"{ Z'n=zA Y'u!D))i X[_ /B%8X/R L  .rՂ; <\Auy_ IN c fg $7ޭK!WI]lxD [S*R7* Sv3 .^NZDh S[+SSl4K-#Y4۫I(G"Xs-}V DV cLBMF\sf  #9d&$  O  e +1LMZ@. # y 2YR^  ~y1 \p 2 lsf{F$g!<#% !t88s- j S.H` ! j y+*ArG s{bZ+uNv:,j8 de_ t{A-l GQLLgU%|#(b1 e*,lrj <yd W5 0gb^; I4  9 Q/ oMA"Onwp :&Y 8 MH v;%, %xA ( x&"!n ! *Ou xXiH/  5E|M 2q*:CC8@&!N JYD C&}_!~[|  [ (Q1y#a$\N> ){ONjU :f xF  & 4DxF .  ejH=|H\+n> If )q՝AWD.I]k_2}Y(]ӻk/%b*  WFE [zO;cG )nC co q  AyTKg= 0Z; l$Z  R#LYR eB g t#;p;y 8%<[n#f ^ =RO k !`i  S$* 1ou $J d %!T R!= $'qChfܓ$ *JcUQ3Hs7RZB?9Oq~ bt e&e w}& լ I]]J wIjtI  CQ`V:yI!]5.yGj%!Dܝd-sVR15 >)ko9b7 S@T9rXuz o6R(u  Z$a6Ko ) X @ ] }[x s]7L'ݦ & 0 0 U 1+ O2 N= ".7ӏPFM7'Bo' ##vt@ C :h[|+_ u JV|~]&s&u`B-D W}ն ./GAg  %`XT h D^  6K PM}1 O'x_)4d &lB!y PXP $v`T kgNg yuf>-' ARv -{20VܷiY<4*'ح?w]l, S9 ,PD( ؎MjmZJ*& 4BuCj<L/ܚe F* wXt?% )* e5h? ii ߴ nQO9 SAiGy Z q Kz Zz0 H , f ^&yz5  }P| Z!9U '+fb$@ I; ppb= xV n . p)(${n cyN$v.A*ܱ 8v w`dy++J  oSQ shS " jP P9    ?Y aGWt : xgDހ%Bab_r UNH?b. U =3(Oi ##a NJM${,I4 `$ sOFxK 0n S }c?-v]?,ysU j; &LsD#7&/!Q O>C`Z CZ g 8/}9vF-ޛE 77#z! =WK r D0}ټLc%`. 8 q4 DP',j>Q0< Z1  Ul-SI^"f+ FZ+$؅ .lHd  }y\{dR#2 h"' y z  Sy-R T[-"S"< * ;)J k;"8S<frkz, )LS`'X3bv ״} g8Tubw !9NO'$b7 قW+ 7!U} P1iSq -,u W ~mW 79'N)-%wZ0 O1j ]A@@ _ s ^& @F )+/+B =yS4 31ޜSeq`&3$i Ve  j |}N .~P R {? o80<<f$) %& *b OLx+>+ r/I,B? OQ+s I֤$Zm  b T U~.sE2"F f = ^U@[:l ;Iqf U_7 :n wy ; .@j ~eHx' ma( .v{ް ?1qAD q0j=Bx XXn l@_[ mCX&R# w?}'K<G/ u, o `Vo ( + =:j %T+OhqX@$t 21[ VX \H A _*"r-#+o<|-sG[ ^l  /7 CsE !Re ,OlH p '-Z LF2 O Ux,~  *:tt ]A Qye; !+L'Z -|fn,8(B1 zyL ( +( ;%fl OQ^7\[! +hygBb & nFKYddL i, 'zVyTc s+ ݫ xBt (؈M#,ce<Sx Oh2Ss 3= .) \^J m:. +$6E"pIo Y.FT/i Kl( :` B P` [; !* (8 Xw0VbVx l2  &!"ۓs>{@c"YV & eް/@ 2$#_h_fme$ % $ TGFvAZ z+{i, : SX=bvnb&4`j *M :bkbG V C5 ?|L se%Hl \@}]~%9$^к M-k/) m'Il, zYt=$y=Po nu"s\ 4(^'  , TL& N~!_:1 &_)y j({ 5W X  y*4' 9N :X %1l'#:O: 1%k WRf F8-J_y޺2!7, ]`}L (=g# O! V/xe]?KV:y>aE|=(# v$Xj 5-ڭ?MLH{ * YyߪW$= S  DG;q|w<# Vͳrq.?3oEF 1K.y\Ka CL} ^ A '9(+k| qO| ]$ m!P 4ݺz = $G9K ߷c J&LSZ0 S{? Dl + wfT #$N4fgnUqs Kފg ? [q] 8 io< 3muM z6QY_Hb@ 0 $FM$ qV; k$7 T/ G"eC T;(r]3]Jn'͒P+ Q 10'O;I^P#=yO]Vpt } %>"8ߋ*3QQ+ (  lanI'  ; 9K,24Mt 3I^!V Cv6j ~ N i k. r!g c`l X 0B CW9R5޹ m \5}Iris :h<,S XH^ =n C;L.?*_ Wt,?O(Y3M6Pkq.GZ H&9 =v* UկW6%pt 1 k U 5s1B" {%KTY*[H*$  ?_ 0@ֱ)o) |OQ jdO\zv !V l,8+p( =??:ce( ! mcY_ V 5;bm)#B{+ VݥL& LA_ B  Pj(skE8Kw;i+ q [ \t9v/+3  z ! IV0x1-"{cS`zcU&=UBz!0W|;"Y .}yb "  nZ 6 4O^=j n N w3J Bxp>g 6 'NN!$1S s ! א#D =7(Q& d/N: 4W '9&c=B (o:m@e! (SF{e= ~ 5!,olS -jo qQWu   cN 1R a'O Kx p"|<#5|\h 5 _ e' m]B HXp BDf *W'! CzN~ /U O x"?m 2(_6 M  n - Vt 4 5;)E : q@I~;1 / ~sbX V" oFeY5&E$ | )/qkf#CRE%k? Mlq kp ZSjY 2;+_C7 $yyV G%N:o B ]2 ag<+x+݂^ RK%V. v I,}eU%5h U$< )a| %S xi[tLHZ_{gN [ s TmOO8,)A &"N _h1 pt&6*`ݨ { !z[d0Xj i e > N!X/k   c6 Q'rf ZgqSP_4LFF"z;:I72  krZ)8^t[ ZGa &Lur.4R 5"8qlR$ bkd m]G' R w #xa${o>+  /!    Kt49^1: 2 Vw ,Pq 5 _"*a\j\=q 5wV ^F ta =oS:-hxr0 M8 Xwf?u * " e.%T U( <6}y"'xn)  60 f. h- Gw^o(I{7!  ?;5j(\ B<<i-HQ MC=~c.@ .mKL W\w;+<ܴ\< =@{}>  > lu3NCQ4{%d# Q ?dZ!:R %ZRbJ!+%W 4[ $'%PC `  PX ֦:ALB; Z9I+R_ I [%L 1aoQT$|F4!6Ci`oZ: x~ ' #3 w { vOJ c*E /6- Z!ar7K v+E" G^On_>,ce !O{K dy4Q+!P*T C|G) tLhu /K[D 3AGOlr >f<+&r@+& )1-J. -v7 E Phf ''  o "$oq Q _Q <+k / MU6 qBOs )*"'?f Q2 NT$5V9v P 9 oO>zw ed;#cF0غC,* $lVJlD u e QQ@8lrXZ=^9I!{E#e"nv/#:J |l M /F S߶>)caס%YY m [: b{U\alGh|ih'^ֆo8(`w-p@^4b. ! $p h *  "vZ7^oG {1 1pF={%jn 9#bxma]7 L ] hm H B7+ vz   \*N P y   G6G;&%U B1%b8w+13' zO{I| ` :}xPջm0`~ x ~&1Jvq J hR# F%;t rj g  'K> ^; O_#/-"Wry:< = ."(VfM1 Z,zTp iZ Y- t dA&o~\f/2IjgB &"0D**g1{8DJl͢2Yu| p, %+9l Q}B]$ `tt#/S= kk dhBqqjR)/&w2SXiz=x=R &ueo|F8@ I o߱FX } M$SN7  . gM ]w^8A?z% {G#;@j&v0 \a_B I"W %>MC6OOr 6 h;*@Fr$  ZH f߹&;|#8 Cu I &Sx U, AY kS 5$/ WSTU ``5!M;/4;)&^!`3l5& wr 8k zy~ RChZTPo,6#n?,I?%+ G OhqLO VCD %g}rA) W g gw "UII h77#V: 9; Qv`|>9~~+W c`^ aO UPT, 2q% ~   7Os+$NmݖN& 8G ! ߧI*O^t, 4^!(v' = .;7X4I+0 Xn Q(h @  [>NoOST-x   !_ /]3zDtz^f%-n6s~J0b @co^zI}:Pe#[hjA |s 7]wAP&++6 O:*-G &@Pop $5 iAQ ge b,;etGKq_\shx GmN  #hiRT qQ[ QCuyK!6 4f@   |@g iPSuE,o; w*?BG?" '{(C~b H, [ gbq 1~  3}m?6?jA ` waA $MeP &k9*"McO E rd,TC ': xE} 0[ fa- y{ wG=4_ 8`?^} qk#u a. Q6: \"k [< \q)]y!H"d llyx * 9j 0Z)oC#B>2?NDdc#)ھ<% .7QxF >HK  Bl;0AVy= v ] L ;r n rN'=~R$F!3'( 1   :X 'lp;J,  [)I  D@{ctk + bDg  7 LvZ &!nJ (D]=I_Ci[3 P Trq fK6k N/m W4 eO  J lJ,&Pg f = aG 4sO / 5 G  u'RM  oC =FAj  eE( fJ< Z ZTz(f z8 DR yu ) M T<$K]%@ 9" D%R" HT !M9'+!.87V ?= > {Ht<> nG;clR&bQ oT*eo I cJ!M1"? -<D  ~/po ^ /.5e '  + iL N1["3 xYM? X{ $eimx |+2tR2 UKyA%jY 19cj\ E!?  ,>afwd %U[bKb"T  C}4^u c mM.^]1}b f )}= W\l %(1 lCX5cpg,b;Zi !B[~DxQMM;D # 7h/ "\R~OiFN MY|^4 i_VER" mneok,KZB B   > ^; Fw? < < E d O ,Rb BbIJ r+{ Z{! }b0>2n'UG7! C0 ~  Du w5 BtbR/&, %D< - \fV ;.|zHl a/-:v, ^  |=Md3WR'#[N !8(>9 !I CKusL L C! ;N W W -ZfF yGs ('iyyf e~ U >.  ` > t zAu(DKj=w!J 4ttT I H}RGcbXNAt+ X`LL)5 (6O O7Eo,zn CwnUP 2W# 1 2)K8 m : K*Th[ 70E LOB n%+'+! z Rk Al2N ksK#`$k-& nC OM++ Os[ E\~kY +D' kx0 /{<@ Ix  o% rb]YzY rH 9Kbnu Q <v}[k{2+\|D$G W,+R^5!+ HF t_  u^p \9  eq" S9 &,6 )7 8#,!% 04` taw~t6h|E^V)w&wv1<x2s>:1s4 .3thK #   Rf^Gq'; _ e] " Z Ide "(7 Y  l&~)*^v- 7!c9Lu0 m "M$ ;@ ? *  ,% #)aD'$#[#e]) RteO!]b#2=4]l b <^c(8jfvy P54+{_ OMx@;,HwV47IQ]%W% ? B H Yߎ*`NjC}#_aB R X-I 51: E m& (Y$Q "e7AAQ^ JQ6# ),  UG c=Wk0@ws 7 h/L C_do#,ߪA f ">xlTEq14.>{ ?#8=p+ p?, r#4ҷ ui8*RB}PR* ՝+g B ``ks:i qGdVN  ( 2  {iIX?-:$rlny@l r(`" Xd ]_ =B r l '8%P} 8W( BCGxqIB{  3_5 #4hR0y  @23  DacQ $[%IF06  f /]+C2 b{} g\6A )$w  BCuvlAj N| ~|7 Z- & V 4 , ; mI a y4N`z7X )`W-گ ' CX1I$ddO . XZ`[o x @,~gnZ `bh N+  @ A ) [z# s B . y \j @8TX D j~y ,%/ vT !Ne {Ew$71^$U9d "xi bF  [@.  {c 5 i9 I s mp: 8 x[~ruxGW~ 8dIec tBL84 $  uUfI3&u B_yx P}= dX T }_s5 d4 t*3H s ;/} fc \= /?on'"?J"nnr#rGa->lY* NVU M l)v`z- 3&> <& Ԁa!q,x Db!F=*Y{iUy96'L&N ;L<I-lm ED'dq8 rR}^Iy v{ JB,#$T y#xތX " p\ j x t5 3  +7 peP;cBg _v I:5 BV j *BL < gA" bYXP\G>w}RK$-4lw i@7Ui CEkJ h V $xmfY X+ p \  %_ :. z+g5 h0zj- ky@=:\( E]! 0UZN].r b}o Y=T :A$(N R 5 Ro?7Pg 1?hqqw3 '!2&M7>߸p$ m# c gdw  ^+ k E\ V =11]? 8 V<d S * 7 ^O ڏ)Yp [FH] Q[ApzA/a_4S7~&hNm)nQh kc -t3v +^:B"\P)O F1  1b<+>l#8x=|u5{bc  ? P"5C. :. ml/I!ejV 7 Y sS , J (f'$ yOf2oq? 5< l V W<Bc.32A. '&T-'>N=>.-A:Wy mw]aDp NLP LTu47= UFw!sn|G2 *.[ G8-yW-`=$+v?E o 8,^ 0f}N ec  s:t`9 nE #J<"<3Z@  9]N1hr ٦Fu F l O ^&|Ol 1 -Y S <$\ :Fa') 1"v 0 "4# P!p6AL+ $" 2 [,  ; !-T   c[$2 + r" ") (b?$Dx[ 2^h n&Eؖv4JO w8mx " U {R U%=h;u_ - zGjY 9Isyxq uc Hn s B<F߿j$ M 3 A J$ gݏ Y_e)p&c 9X&i/w 8Z HEm? m':~VM q& xg Uq X OUTJEo 7y ;r; <e LoAP{BJ l, !5,e|w n0f 8x 2/-' } 2 "aݔ/ n+El Ws , e  OG JA eF tlZm  VTA%x pmFI 61] ~1W>o%i 31 UbhD 6Y(`m"'-)|{n m) m%_ |}pm! y2 DldCm$Y$ "kMutIyex ن$~.;H^ POZV 'C/ f+bE ^ O -F 5D l7D||4  <)%h)G_d|&Ah{ W c}c .u > BLm!0 (I V% Y ` l  ~1* i, ` r }aB  yO ]Gmb[} 2>a.  9m#6"g  gLom ނ/0  &%E :dz :3Hh cs' + ?a n g eq  ,cBV#\ `_ H D:Hau#5AbFܷR d{eaXc 6R*xl"Pym*Ik"<6E-99  6+W c F yI ={ {<1yu\b+"?W o^)'l%4" B[ um%f_ !L uANIhG7&QFD! ] gh*z S ' Q t &%-K;5 Aie5;F (= _م +ּ#!t`=yW=Q !/ XI_+6|J1 cbANh\YG' q> h%n1 6a >U cK_d/c"6ZrQR33OIh  mq) 5 nP~[o y %;T'&p )l V )6 Q [ 5 ^DbV u# gV  YK\[ ME kxY # @ @N=5b $J T@(Qu +LG p ' }:jGzdb*Ai/Hy[,bO;C a  |=o" /;fVz-YK*.g  + tMZb ]%Hu j> y ^`#$:( ]< j%zDP45o5H6Ӑ)I e$tArOYL}{%W A rtmz p'B _6ww CC [>t# 7 0n B" A. ,y _ W6~4uإW-`} :ׄT# Ow$- 8u U S  Mq >]<|C R!5. Vv<LP\u= %6\.RBHpe v; Rt; #)Opc$amX $f=ebybd?i= =]P/e`ׯ=3S|cu:1 .{&G  ; `% j:*9kYWLD0 QzF $ t7L5! QE#,b} ?۝J! HJR<&ZNb6D":OF"zc I5 hWMm#yJ? _ . e o TAF3K 47 Bp4 W , Dy S}l4# ;+MS%Ntߟ%>ܢr_vw+)  ޟ8 w)?*<qib C'm!%92 9j   -b $M k z4 be P! daE J*$X} $ n l8 {~ Iu!wKUJ:R\ +9 <;_ OIPWc1 j - $R~X\Զ x+9m Ww %;Q^ "P q1,!=g A[MI. Y l dgpxN |Lf -!gR 9 n 7sGGp~dM zN!F!xTT#(] J|H H =XL&j \ p WyVW@9["m!CY/Q h ,F v&d^ !} sb +z 3|riw% Y\u W|w-Wd Kp yR 2Go Y"xS`Sk>s 9H%^wHf - | 4 a1T x s7 N6A c9}~Wz^K@X fO bS(?d׽\UV =_8ur. R7l X^+|Q#Kۭ${-"q^SFWM]"/ ]Br= PP%  =jM/1ޥ,DvNS =<qz'~d'0Z +b l j03b k =E?{O)'I%w@WMgW _c9 Z-<@[ۉaNb'\ q8 * 4nb2* Mh /.&{Cio +Q  c?  " 'HgC  K ` z(_dj+3vVxIold M i@/\u}- JZ jXsXo, ,*GG ix@ Z-Kd A2<I:%(Z8Yj( X43 &N+Kb6cq  vQISBc Nyj z s # N4J *@f2)g6 :)K>I C!ut$'!9 8^4 xk $Ba ka!tW 6/% Ӊ% q *} Wo!= pIWD !]G|sS$d9 D )FFV0 n 9HQ *'E $j3C &o2),Lٳ .+a Rr '!ߠ& E DP  8{h8ZJt!0:3 L m Og+4s( & Jw*Rne& < U:|}!Yz n Q "UޘLFQ3 s Cݽk #< )icO& |H Fr ~:d AGP 4)N  yh['%U. u zfx | xG{Z>5? Q4&j Lܿ!$< hA%U CTz) B@-,O!+  z V - gT6 U  zu Mx VzR J|!; wt> Y w , @ \ mw  8OU  r[%d" 6%[p NrI   !6` f"r q9  &}o[_jheirRCZ$b>qT>by! e!/s[ , =U06#e] #=o L \+Z3 h ' ?~0< .&J    i]z .s $Gx T"T'2V V +t+aLTTH Ln/T `j%SUO~,&9 XVfb 8Gv Q 0}/  ] ~@ ? d7 i '` K}:.XZtb  UKti />v\ A| n_ S<B p- L}nO =g -qvL$Mb#%lHZ4~:}6 Y,Wkv Z| CS`{ p[Iqt] "  7/ _cf3 Alw "I1@ 8 6g`G?JLw T=iW%Vwe e y#PjrE1o'M 1zvjut E }RV 5 { 'xYR;(9'2\=/ lIK  +$#Y { Q*XmzHdS(,DJb8cj K ;Y[Dh<>[ ik_v* :kQyw:- `;'=h {H #stY ~ mw u+En: x@= ! \O ${f vIt5- 9dI{O -w B' @ dE7 :K [Mm jx"Q 4" !C 1koX8wMk\8 D|2M]Q4 L{y {U' H~  G!HY rU2 ; ޚ *oe % M Q, l7{z+J: Vv "JjC 9PT c 3&M ) oae ;Xnhl yyP $_^z !m ! * wT+ %/v R W6r[`F~K 5 :k{3 ?;@u .\ ?c[M7ZyRGGgJ] i 8{HaMcTx,y/~W(%^}9q 4 '`- ' z9nG>*J ;B3t(; '9!:L n&  YQ3mxj # (\ ^PlPm A * )>N!J"ګT$1V/{RV /IqQN::f2qDC;F?ۧGI #R kZ| J sx_|[   L+ l#pFVj <<vX37[ . J ly @C xV]6 (5 `a^JF >NC kD*ݭߊ!ot+ ݮ%܁ [*]O@BpuylVxx 4_b2"p= awZ o ZcW 4 k޷ 4irAМ!t  *,q 6*#mpP< } 1T|.# *X/F mG  ($}f F  Z)0w% :#)} Y 1 2H[fv9 $$ K>rX,/BD w\ K,ޱ]!& / $ U   {[uR"J#Y( ?=1Z w%U \ @ 2E?q#a'tz6Pr"l!1SUl! C$2iE EQ &uA!( fzn'I^,< Ml|!Z!: )& ]|x/e4D f*uc)N + B l 4 3YBM ܢG!5h R{A6No%d  db vI9,*] & z%r~15IR zC ) cT I :i WJC2hGNR?^  so CgjO "ou" x i4j  u J)pz$"A.-un{uJ9bH- -=-S s qBV&YJ Lpq :":reo[#s*iG PE"R s k, <^sB cm|>E ! #PQ=v`I{utv)P ;T& %cj T4 '%j.8-(T\r b8 r g MJ@\E R'ڋI' ~ gWt ^g]aMW uԽ* x6 5q t c 5}&B , MUXl 3F .@/cP V [e NG @ N jyU, m#D}RXEEdP4 {$VU44IG ^6)u?T'aAo^, NL = V l oc>nH_2 3{/ 'Mz+URN `-#SR~`_[~m0d W{ [ N k v 54jy27B  !} v)cb->3( $z"x *Ts. ufe,vF& D!E LX.*3"- +.su VD4vZfF' D GNu RJA S$51 6cm}\moo[Qn 13" &06 J[ vc b96 nF _U 8+3 Y  \ 0D UCff#hTY8@Vv>DW5lLZ. q ~ Nvy k , ! U  a kh# C\1 )%> 9jZ{VO P ?l%{PK[?  U mi % Rib @( E}1 TmR  \@`'_+AQ9 ` O"$ 4 o>lvBh /PGGg vO0~v}n ((`7f j &Z b ' 1\q n W6} @ }!{E/ cN /?5]FWp ,M; JKr6m&!`Q{#@&m;D/M>GHu F rFL  ?, !fq 4  #  cp~\Y9  Ea#,oE l \ c  r/Wx{  0 iJ  |L ^ $v/!!y; (g!: 1/I8K0xj3i n0 L^ 6~ 093Z)r+ G',f;GlaD^F& i./ Ksl~ N/;iK $t- i o* w s06'c ']6 +;j B4=݃ F%Y4IIXJ l| DP 2IZ>o 1W>*'<J[p`}\VJ{8 Tv 5)ag dP7 12Z&TpuC<N 9|6[:]c6{ Eo 3g5 0 `oP z P=OnSr4 LF4 #^ߊYJ <(3 C g" 3h`+g>hd,yQPoo ls /p[ Edw E #ECX!R&Z ?U0q[hg6G[ZD5H-F1W2A4$ %l ZtA \; Bkc]n #C358^@  $UL~;Lv~ {=A2 *   YDJlf/k g 9@ [ 7۴$\Q  A0<>J;~ 1b.DBp? n7B xK"$! R'! ,*.\&4P{{.^ 4 w6\CjX!  D= ` x i75 o] yR5 $ u(|; o M}s/}&. B{*LH , ~m"z J!A  &* -*T +R$   =_## A yl) U" A mG /  Ear;yjy?~u2x;2y LN&C @ UM!O gt} W]r-g n :h   ` Z sJ  s>Wo&(} v~!:Uv%d~d$ "3;|p $u 0 ~ a /S0T Fi=9W|:_jo `l6\nHi, A#EBhU?  [Q޶$$b [fF PVB'?hj 4s X  , 4!1 08-)6-M Mx4 $R}A<rq o^  mr.#-+~59c 5<S 4qz u-vܫN,S ) "-"?!}  w)mk I݌ aGn  -E X g"  @H^7 2w 4AlJ*V*މ N  qz1 +|c >JVx!ڹ$  K-c^ ,ޑ 8M-=ZjY9u D WL\  @|7VH gKPLhA!8 &~L8u1{^_|19v ~v F"46 I -K ShBX` u-!,07JM.[ r9)NB>;>#= Nsjsv \ds W5f edM[O) }ov~& V gH&lL Ue + L~t*.'pz K E 7E BW$;? ^ Q * (iNZ;N .pI00@ 0 & m+z H%,ww,3[OuG ~u^t "!ߌR &k^bnK&~=L H d # %)'0 , e,wG%8}rJI,#" q] QW-*^[c8dO"" #  iTG $  a Z) ej Rhst &' e b'V}& >* +uryEQ <}g&&Y )Q:O*}WUL Rc<X=V( tL Uz9@/!&% D ?+)^ z GF0 g =F & Yx"!|WA4$6 %f\`%US)eg Bc PS,#  dG " 67 $I\]G" R]gU W< 9S*m;-t@ 0!f%5 O a [ MK?jy 6$ ;-=ZTlu $j=Cwz' SZ#I_t W3~Z,Ph8"kwd+#y S04@]@fY8i~ Ud;rE`Y A[ nW-  P@0{b &nz_kX Su# l08& d $hK% B f aOY }5{9L ,G,Y\6 *V Sl 9 @I b*am5] "&Fx8 K|^VLJ + I|f ^L ViT.  8 XB?qi!a5+@`U #8{dc# f@%+eC/: p zH% +> } ||k$c ? t-= }9Y\;Wm2\H_a 1C%W DC!A ~ 5bO H d %rKC _Cigw IME F f;  f+7? @ -p$Tj7}=u oy+H\DMZ g(Yp4U* 7D aB3JA 9 lFz!f@ O ?$0 +c _bG JIHh*uG^ d!A]$#Z*.c *%Kh +[W *BYcj\#;|/7Dߘz efq ݆B  % < "o=G]O [9# - Mv J C8~[ om s.' "zj 'j^OM\ , k `/B%3 Vy $ :N   j![ $^HT - . %rb ;'/)Q- !^C.r@E mOI$st;[$U[ܗ! i\AL. OW] Ub P,E+ C5O] $3/0r$oXb,a@ARX N'G;r K4W ;**  0 6C9TD  T, ^ ~Y Ex/Iz^W)i92 C= Lq^ #{Bu<{k@#o 2W"e Mk 7Rz{v*x6! |d.wkDTlz$65v5`a 2 SKZD\*T zzih-s8 ??O% 7eHdg Yq V {"29S l#F$%'\R,ln{uoXf\Ya%0Gyn  .9 7 $4 ' vv756nhZ $ l) V9* c |^8|H; /~r kOJ vwLGD. m]X?[f3**0O By |BkU^ b$nAc Y U2*FCCz4e/< 2EM @l o&bUs x *>"1obAd hI |3c8 p%$sa"& % /@N x )2T/ BB @g~ iz/%8 T.N&7 Dx$;c3 \Tb l;Lk?G! O1-9!>2_ ,s $J 1t٘$:m(FN)], VE~M>~ 0[*& N'Yd+j Y m } u}O3]d 8ExL  tF (T^  UVh, A1 +_+  B dp w  0WN s @ cl\*#X|WA C]<x'zݑ ~3QkL _m #/6vF.ri@.-Tq"k KA 1Q / !<]  ~^%Z;' GFpY," 2[ `` Nc% J2D߽.LL+ ,CX J 6P~3 T 'K h " kZ%N ,. :fH6'3`deHA lS_k[ "a7vw[m ݻa/ߩ# #I% Mg J%%3 o # S GA3u7) BV - ` K u!A AS 1 'xuK} sUj`w.!E~0 (.+q'v^_J0 )KT <J   %58 j   @k/e -"ou10{ P, > M Vp.Kh C bE +2)fg @*Y3* +W$0$~)$ar{Q>/G\ Q ߑ1 (pZI Zk - y݌$* z@y , x ~0 YGO=di]1 B 78xXI."aߚ 6{l !!DeLy :3Kt q )KX tUt'f@^  kj=& V u / ;6Z[[)w+ms$ޝ &tlio x o e"  [ ]Xd"1) % 9r"SH&Iւ{ *`6Y4H^0e ~> 7A7 l  l}(#I25qeS^ 5{QUP  >AW"S T XYl&W j x&@hQ +Y > )p8ZyMHQ #EMZOP U 2BJډ'  b)8#{&ޘ q1#a 7ssPXz[IqJz3@jdx5V &U &5 7 p!  UDW~WV# Y\%aeB5&,? yIu l@!LT !U  >2- -s@rd Rn G!), @6O^tU vuR)2 "y~+mw;f FEz7Y\Nna> w5 ER %#r!\LA Y m[N il  +DXg %H Zr1zh2ܿ0 $@ H W[QO4d A4+Nwe; KR*y:XHdGUx E qH0C TCX ezR( B *rg J CqL ShY;DWw x: ^ p32 5 آ< 2QAI+"C Gh-m >Md ,L< >#P`C9_e >v M&r& H %xx* Gi6-#Q m^ pTcN( ) t] Y(v\0S tN.8 D &#< qVIJ ۠ ] +z FS[$ / ]-< 83' _G 4S <@!l Z|=3 o) ( Hlb cr~ 56 :  s FL^ >=j:  e5"VAGI) UFq~) ~)z( mtO*T +#߉!z3=>o]C <>53; - \sO pBq^#p @;yLq M {rK*h  (GR 1C QM7 X2 ( z lIe ,  i ' .J* e LOz-:a!u~DIP7ns 6 LByX/ QdF=" [&v <$' W  O8  ZWs |)H? y j VJ66 E*W!3 *U @ * ')"B# ވRZ IgL  q 8}MO:el0 V _6S  E   1:h c 5 DV L6[ JlUc S2 7S-"D r x].T|Nl m02 `Am  6BiU \f(` OqC\-8r0lN %N6 ,  i6 s' k A ]2 X]](  | uKV=3 |gP_"< K j:;ig+p %  so v : CmYnX  K' cY Zb B3S'Ztn@ q+ 2/ % !6 N%qN|e #NZg[h \H 1pyi6L t &9UrO   w.s  U= W O I_iJ >  ,nQ `MiKp% c~| L^x9m @8 [$m gkY* j}3;K6 f (54E} 4: . = r1]  QO~ -f &{ e };rs7 ]bRp ln|9810H-T@U _( E 9rxL}{&q gCABd*<` K~Me`& ,8E { S ~N.h#:)0v 1 F_9P{t xB{D^ `+ tO JHJ \O'*O@ !8NR'^6 |> e |.# Z<CPLU ZAV69 5oq BMw vm; J%r%&N 39 p$ w1R^Y R!hf+t-sm y=CT-= *1 JnI h+7  + 9W+[9RY= z0  !YREs'K B}c D + F 1a H* T @ kD j8;9( !د SKzm)@QC/|} .UU0|gdCf AB8:rz_ Wp( K6" h/qp bWw>C S5  LiVF$j4 `A=W[i- "p : = :\!8۩ hAe) "6="'  ݠn% YAWH" xjo$?-B~N8n (D{SUbP3 xQ W9 1ls%q u> vS,Iw -H~G 7q E:![L oD  yX e)A  / ST qj} ?6 r9 +Hgbke <  g~)= G#&  =YO|f f y^5 xQ QWI? 3 E{1 ^[n /hI@ .v#^s:>y+U rZ6%R!IlaJ"AINV 8% ?,k> N%GJG9' @ !+XO 7^IOWm m 86Op Nu ah;33K M<jqO K!cދ `ip 4DzVJ`a8;&5_  8\l=j-[DW~Z  F/b\ yK x,eb >HrS 3q  [XRW 'i~4pG * G^$JGjCX  ^Fz(~1:pfek&l *%m[2Of* Cb/~Ew5+3LuCl ml5u~$jIQ%;MY'0S4#kAN aJF'.s/F4=HJt%dh 9m(T4['yll>k 2>>FC4wxH<~w53N;P8&<U,Y)`c3A)`v% QHk?N+Aq#up!$h+7XN7+&PEv2Q,W~==b,nBwD|rCua9n_]mv4 z7# `$W eYH" -YRB[oQcu8L1dR=I(]U&G^8(m s Bk PNSz+^{wvbn,fzlh%(RCHS+ 4<)tme3+R<wh5^0r.b*3_`k'S3 )jhXg{.+Y4Ucobk[V8R<"RiV,&dC;X_6%{0@8* #jOl9Aos59)l5lE^u?W$B$ */nNtRNcK;^I ):;iO#L2?;Ss:>RLU/& 1Nx g2fQs7X4*UhsW'u37k1pB"AH }<81&l?c %"q'K`12`i-ic-&ga[B<K[ " G&r/RowR-FSAq~X+_ IcYu=oG@J2" v43CfYm4XAGWDK4J<$XHK1l(.&x B?K~3 Pm"$]FPQ 0Fx!} P !U҃ 74R5 6 l B1d 7q3Mv  nSm !W|!ItA}"0a .ZWQJrv# =r>Co&) }t 32; n+C \-M =e` fG\R% 2A +bf _Rg d? 8! L5*^0a T.(o#bm=~\}W|] >ww ?L+w{ܜE' ?pIx{ n Ya >=DF^.Sa:C u$43}9 :.FT }X@v P jҺK=tO `e D _ }nZ! o}`ޔ,-Om%n b ٩  *>Op@<;=eL ) _]? MrU j .\!y 4 W,f7ޥ >LX>@:(}oVvq:-܅N-vSYK< Y , yt]RZ h s]'[ o% Ot@ E=!+ D47% +Y Nt1M;p6& 8   `diG!u-J"ԫ=$ay/ `U *tn!t s/.j} nS $v8+$I Dsyr  u %b41{ 9S@ d,|  X`4Nw cw+y#SU8 ]wf #I*D?ݍ&/ 5[XTE !)0c 3z ]z- F|c^ O!m /6/ 3^t'g*i (/mvL nn*8 :K=>1M4O 9 'xlC_& s F )&?ܿ=-(=3`L uEtT 45, 4 QBRw,6#H -d GF yz/ 7-M&X" -   ZQ GJ 4#;vl+4 uC& 2^<_ H;E @] -73 .>!<@9p4?$ 8 D _'@߆- {q]) WRt$ B>wRt"^k  Lݖ}$0t *gq%c4e % #5cFei6_UUq h-l>!ps h2IݞHCG.s  ;xM5$| F QF X e O*r 1 HC z0 T3 ( |Ns; ,ޞ U7Wxm AS/c '/ 2 A43+,@3I& F/ S\gH?^TZ !yArF# sJ7Ou ^eR< {۹u+&S9 !'[9s Jb3rR5xQul xA_$ n;!. U|? ,N# Dnx(g.i]4 ;,V:I%#ye @%f Q1 XT $ ch q{@@uDu}:R5 `_ ֐} n ! L 1aKJA:_ bs5I=*cu% & ^sR4p  T k P >5 j^ -O! QjM  @"f 5&#D@ AV 9Iu6 R "! e"_9/| \# t ? +v-P  )8w\|.L WJ3#Oy &>w /.& 7ni   L|gx=!3:Vm %*/A%#@ S6r ;/jDrqW)TN1d ( ^Q݇oEJ"x" 0X^ c {o )#C0 Q/4 ޲,N a 0s tH- $ a` \9A;<h*? ~c (w 1 J 7)}F B y. N^ KnF)Qn t ~` R h W 63}  *H* q.ߞ/F .lrvvb  )+zx֧ =c f}z2@X l~"y ~:Tqclf: ] (8+!0f$S on!Uیv K"J#4_ f }k&K5="!/??Z  9I {R M` S3b o.7 HAe pXP W:[Q # Ge ]#tMUlG X ,x*R QC tx,  \LsK 6*r F b" # 5jWc[EIBO&S9&&p>AmKs "g ?E qQ% [^ _jaHP,1}#D G3G jcr7 5i_N!jhu .!tA V hc[} 6X  &` cx|'{ @M!  v/cXIy^  gQ ? n t ] 7- 7S:} o@gd%:@Kz ! S-2U+  5@tۡ s!P%L &}U  >5fu^SیL8l_,\ }8t'keY* R HcDaٮ/A# bG8}4]$GpkK P Dt P1("jZXA {#:3L4  -z0hry6 P ]A("}r4  "`(<e db!19Wx.ۊ  V l!#6GF 9Lu:@ V"` & =  * mV7wE d7 ]EExJ)6I0n8A)% k9%XuT =$ yx 9+ٮk"ԗ!=f0 .SyA m@ I& qX+( ( ؠ c6NW =@A !7l!>9 37 Q E$# "q  .a&w~c /UJA}f   j04 p4 &qL"> qUk$`-gJx r Xgje>K gbyYy JmYp*K%@4$qr ' ) ,PqYxhMK O;# @ ]'j,NW N6 /d0 T{L:. GX 1K 1D# Bbu\J Z ݃z}6* F+k V L!Zz;Y([bNT U uXX9e|T#2޿n 6f] nS5 W = G{/G}a  }".n| ܤb+o"(<f$v ek!xo x7Z`ڡnj /z{_O+ |jtP2 P  Nt v&oC_=m4F? ,rB0% C4= ZB u'X]Uf Mo> )8z -qIIWQp&zX&?{ N 1 1:Z9 2 FM  o_Gb;|)G l~d z]r &o ^i }~+  #yV{a8"2 JDw P` UpN" p |y12V>)"dTlg 0 0u 7xW E؋/,[k~g 1 UGdwFyx P :a[ Y}&s߬v; &&~!rw) k_ B{J4c V'i17ߏX9P.1M"~9P ( O,V8}@ # 1 #g8 O[+EiX u-A$ GV %h&vx-dC g@ S7s[4', KE72! 9D K Uyko 9w : e y75%%T [=J3l'3 HYw f U dx&{4K vP y#Oj %Z}Lg 0E FE jxv m*]* , )IT<Cn }g9'` $%)֓D > !iiۏ aH $9>  r^ 5}[ ~ #>B| {.H%M< !K1rc ^!!YԭbR iH Fe:q%5~4[O Zy~ (޶F ! -^UKI p|, z  hA^ [j}bH ;  eP*d  = V2t=N 3 $ 8AMoY 4L L%%&!f߅_J ` Mf U #5i[~\' >S? +a 1r0o {LGAu7Yw  s)i,VyCax9 &S  0. L(S#KI >6'` Z xOc ^5 9& u\TI /- #X[CUA>4w` =UxOD ! ~f 5Uun,W+MC ; o3 '4{ I.( & YyBMH @^ENr4TzҢ_&IP& vdcGd n* ;?ECXo_FGgkk$qL@ksv!1:qI`8 .v WYfg-Ub L * 61  e RV-|C~$ ]mHi-=AKl u e:cq scT =!jnb&CWԊS 2Q '/ 0* {qV^LAiz+e Va[^V{FUO-K[ /q1WJ H0,    8a;tGOa7 ~T  z"QUz' y۾ \ {D; } LCGhn+ݦ 6OtX 2 "TXXF & 7ڨ 7 .yo'B 8v| A `t2 :]aa Z" aT hM{ f(l\W`jܳ## 69qh0$a6(yߥI# )}fa0ZaT)D>'ObDb{pD@ythWgvkt"O_-}Do@%]cez  ><& gd w ": x!tidi v v" xOxG)O8)q"q MeAg&+p9  zu^Oj&$- Xrn bAߢ'4oa%YI8 0 e  wAR  eh4p'h! 6 f 0PW=}i"؝"f"֝x#: MyZ'+<", LB *2Aq6 Tݓ,Z8jLaWl ) xjx8: A)W i4| q@ B \  {a7> V"J ,}"* nn Jy)eKJ / ^9V#5 !x3 ($  %N LjKS  d-3j -#ZW 3t^* 3 B>38nto=LI p m_1}  2Jܒ%!C\V t:~U o[ T@(<3 l  G&Y#d2g 8 'r 3% I. a HtM`` 0mvx7,rl~Z="&JI+_|C(%AI *R JE i#-yC  O<Omq$֡[ d1 v!8 Fy Q u^:? 8c VB u Z NW/)</NN*v 3[$ V k 5!)HOcl Hl:ޔ)S^ިk Fg/H lEi/ ;j x &Ihp>$Xu%6+4Q mIC r _ q)ܹ) p t'rlQ_2x l .G# > v HS2oM" N XK&!!b ^p- Dvq /=>% 1O + mrNW ?M6`.@1, # {f83^ w =]U ((,j4/`E ARzqR/1 n]:> I kD1clwB3; , oJXo#T * \hefKPZ6 `N_ my ߗ h{C rUG\*g3D3 Z Y -_;y\D## # # } 7 : Ux pGpI@`N yE@Xh}| rz 9 0 " N-%aZnMi"1 D)nxGLT  \E:Gu$8bX |0k A Rx2^DIQ%h$Y s" \5 b1e  A [1[3>" Y 4k zFu <C :dc +}_m*kw Q nm3U8$p =p*tp0F2%f b&    }  0 #oK j:q$A @io [(~| Ii_  . ;8 As Y $w$a 4:&0R \4] [0NTKH"> =_W0<,8Bcg(c `XQ JP4+D ~ S.v8\D F"er!k"VOgT 7 S O :b )vw1F{Wp,ASz8O-Rp `xv{!IZEtw$ $O(aM!_JX|H e'  9drgYfxV 1 *;S VZMbJnKbQ(/ q 5] tYy+ Ssk=P \H*S) 9D kP E sGN u `fbDu Eza~ ": Y:rj > cu5"Q )JRz{md K,#DA F^! =  ; % H 1)L {B'Cdu  g\e  ]-K }P o ~`e;s-V%G_  ]p=l~~P& c AS͹(@'zg  z S-m  t-2i >  s1R L3r _ xg>K9#2ڮ3]A^h.z   O7 B4Q0yG 0;gi_ @dlfc Q 3Gx cp5 D ~9XK [$![6<Q C;J$ $ uu p pl` Fp~ jU~/' ym } i'x [ uTUL}]T' RJ!8GH%jfQ : 7$//Y r /E)ZC Q @?+  |kzݝr ]c -h}AqaCm/\Bx>' w.  > !-ޚ?,p]}" o d w&)Ox<<  =!,$zj: @0 C>~>|*1 d 5׌0 ,D1u- joU4f3H(9C % E[J ] 7NQ3E J  g" +{ a + .J ] #cy " 3(4@ I z[rbl *P"_S'PhPm l"8 = pY k =  .< rSXV WY 227TU $osCx,һG'a?8gX}TT 60Fh&   } v CpwqM[ QPY"yqU^})B9@ 3/ WX] ^q-l 1#!&$'L)% -va mUw}%OUc5 w2`Ds ,"H }  . Bt{ F$/<*0 IE 41?U iq=$ " + $q 1 #~3QXa)v R)bh *Dwd4 u BW3s_b 3 "D UT-0 # oz Z]ho \j!8 @w U6W CS -!I/Hogjh< _s oIgCs "X-GHN d9Gf EP KJD V 4 <ey: ;, 1<- 1 O B;.U> ^ \[c  ]X ? V)?Y|,h O v{N0 Uw jFQ~en#wg ax Kg ! ~d?/i aiy GaQ _ &Q$/: =~O(/fr|!Hv-&A 1!4RNb (btOlA$ ([)!p Mouo@1yv#`l\ O4K0 C$ra*@>c * /o"  Y$ 8YT `[a-H>$R j / 9"Y  >J 5O AK=!vMFv n'  T;&ޏ-) a Y{"D m<1=F>" rWWg5< =N)'zy#I$@+i~ v|y " (nCML2 * :i1 d, .c* &7L!vqDo# tL !Sn$f6 oY& >mA0& !/ ?f P-2 4[0 XLc +[l%(g0v  I!~ {(W|JQY{d7ne :fK(^R=,p>+ S389!Y  n& >r X Bi{ Bߤ ?oY[ LACAsw*+Ԛm5!i j1x A|' ,t8 fuS#+!Qv, @ c@] # s u)h  B!BG]T\<3zYM h AZE`D 8A#~0b= u~ ; QXqY s?r!]<^L*F/< @Q "[  <+W@) Cy e `x7ac- Nqs 6@,!wM[? M& bd#VoO `` c +@) 0_DFiH F nEHPA d S eOvw\CQJW+A@ cJa!! .$ x6 ݿOvLi61?ܙ Q)?+* "eEUS]*x%KtLC 5(tA4& ӛOyW !4 WHd fs u&Cho $NV 9q X b t>xC P/(C T Ih hF5~y 1 KZ Pfs !Gj"  $4;MS^/#k a;#܇ $ o7{w@ H`. ( z+"JGFr ^\}nwB^ c@di)("% ;cN?zbC*axP.}+ ,yfc rG7XC . 5T8S5q ? x: ys< z*x -n a٠\) <er.x |H na:*   c }`$% 'WK* "^e z 4 kl}2Yj*5=W >DD Ru7X.OB_3z tV &ykn.ڡI#0\] KGE"S 4 NE^U#  _ ^Uf ^ S> ' y3r&L N]S+ "H)F s^ gY OEaawVT  ; sM8~z5 F3L l&Y9 NE%   \ Eg  M=[ 0%e oyy h "| -PD#%-O@cL+}`y4V! k}x WK6-MOjhr@ wG5 PG .s pv$ y. Q )3@~ % }!mbqEL i% v*+T!R F H7\Hl~=kV+OڑN? } KI%oz /l>e<T i%lU h2R ({ hPEg ?Pz ?q, oXP UL r(e k_Ogp. 4&}c; l N z jN zjg g5-Ii3/nؘ("y 5n#}  ; .5 6|G h\@!! qhc x|qnh<y H bi XX !@ xEC  ^~f O|A/^j (  "U .@)P V6 D &( u 9 %f3 \ N  `X 8 [) $' @6%x< j" ) '  *H , ?? ; \) Ll  B( gJiO 1  I($"w s]?\V/qDSAAL 0 F' d} B Bb%HՂ 1!@, !!  _ 8tk_h 7 bu {SZF)1;R6:7 { H@ e`Y1T+vz tr 1  K ]qP Ci  vW"@ Ec-yIY&h  ;_sv E V v lx@  (l6{ \:  !? |cSH# Tn :W$$"-^&( 1 QuJ BMPhi\ *T1 p,` 1W^&t8mk{ t 28oTEe V 0 "mks Y7N  yK Gb=n Bl "nW- 8FLI:|( f D >Y]P]$5pA8o >e`!qA sEw 82 ' W \:cwB"<TUD 1[0' f; '%G   vi*y6xZx"g(އ%sq sM  ' zR 8 (=c[O_yk aS 'l1$g=X| lVN!@i> \5d"/wm:cx3~ b [a lH KLs Oo{.% 9Hdj~I o!g| ]*xpGt0 z_  I:?P&5 p5wt|.ݤ>s!R xNV]8 P6$A  AN`JyfIn( }0L IS"h rQ>2 ) s[,VK  =Z1}] *3VJUj x bL)5= Y #vB(@y =Cwq!T?RCl D /y2P%:D+* ޝR4 !u%j 5qQcK J9 | = rABB_^.} gf!=LC[2q  l0 I]) 9`t 1%֚4'2 j&.yeV7S Q#  *h+ ڔ +8A1'!2> ^I g5 [y S)?M;R7bP@-_v zt ]OT MI#9/, ; B$ULV  yw)> [A34L .MZl4 \d-L8 .*'63fb/ VaQQ%N\)>(H>kP1%N dOb[X9ij@b O( s)$z CHT wI^jLQ ;HSX!{ދ7c0RgnROY#~0$mA' = m<Jt-T 6 [$ aPUM Vlbs& } :|)fZ | SIw "2>#) edy tq o 0Dlc'*qLe=@ A ^n ' Oa baaXO=(_]^ %uooY 3  @Eu1:i(- "Tݢ= ; #OU;1 M@$~p\rO2N   $6X%c-e4  c Z '+i> M _EnT l~_m >p6<, ``loh<r!Ch+aa 6+@L M+-i{h~0 =G Q1 2 PDZ  k& yK vR GfU|)e + > , !`" sY2 Z!&)A9E]c J _e if"E Do e 1MS%gewV * M A0. [dh6( tv { m4dV%'sWw=bn( Q.h: =1 % Z@3r  + k 6]*p]te1 # .CmL bRHElnK Z\DO 7 4 lGORD*t* d ]]j$; 3 !+z  +uV  ,*67V\!efO:f\:=!7 T| )~* {N#}#i9 Uc Yj! V%$?6+ K? b~wj &n S40"y}T: ,rb X F4~LvP GPWI l {z=:K 6 .<M$ Y l o:] w E on Wp}7b8 azdR+( UQ D #%ݦ.I6K_^2;A: 'l q4skK?wz b RUaH HL Fie/T% ms_;jj ?QxGb@+| +@  F+ZV }z..ܻVa. x A]0  {o lE v G *H%U\1U<-GS( ]JO9  tjJ6 F4M.bM&hm 'hz%,; :AR =R Wtc n^߶nX ~O I >|_!t<VT^  K n  ' 4 Oz (Fm&u G6 + y 1$: +dX )HY^D l  X5 D K_ +y 7B 2X Jn=,l  Z qudX J c8g  nN ou` %Zo j0v  T myKY0iPu;,qjffFYZ{0Qx{D= *6Z0G843 _{gl7J!Bݭ %*D$.8F1> J ("_k0& . T vp.;ap|ek u.6,[U  w (OjF Ym F/i yZzoi@t' 4>Ր &%\*txtN|  0T8 ~mH"k: Ib"T= G` q -,k"u|O%= * |yX9 $ .Ug D  /2*Z'|1& m5ROj j%l4XoCO u]e;G)q ۩ip(&4XL07 i8w103zC$yfZ]H5 v!D_)*%" F #cY  1 fT.[ E=0yATL?2UG( T/!lYT })S 4" %UQ) 4 sO- ~%: r" vR)v*+)2,SSx:& yђ *|' eLy6o}b]U'Q c- d N/:D "2 s UN k.d n; rB7mwNX#M2p$b5 oy "0QU(~N< c v)>p3/u ZB\C:wA & Yc\)+ zWI|RI 7  H0 S Hy  IB\ C26N j~: `44R5U c_y166  O$xS; + _ Z'{e՜HxJ @Hfhc ;7n . s`%93~ ? VL1 @r'3~  Lx.x d,dqtj| + n B 84v0&t]5 4 &ߋ !K>;*y#$`. ;*w }Lha Z"qDZ > i:,]x pO:5UAGN,ud a &  W> R &"~l /R V $/a | - V)A .\!w> w6 oq po(/ c  +hL!"3 v X f A/ Ov@m * iFm w {  0y&-Q2Iz& Ky݇"?O/mz%3!2+lb>Z9 +O#ޕAc{9, _tR | DZ !Ycw %Y9$   z"ZE^^#l k_> $>} gsi qQ% X+1 zj ; '<1V (?v 2jG IN`7 t b @D A#X aM_Z= :fyI!CS#%L*@.~ G>El/du ^$)e52T ]^V B8 k g *j _7ؿ3 t 6Knh߀~c NM4 o  g 1[v_'l C,*SJGm܅a OJYvn ^ lf  ~# yi  P8 `0= P7cd$k#$ b .Y>4P=O ~is y kS8=,U lUY | fLX;x@ zBx M klu+A l߾6 YZ h?.[ @ ryw L5D2I <a% '!MܶG) u4~ & _`8 /n<0 V)}_SF|jK G w`" '%?UWT , n " -sN AQO "VZ v T0_2 jom#<G :oO x|n !& 6fg* *b%K `$KXabVBkZR7W~A6pJ(  ali R {lQ$6EF "1 z-g khSK 1 $?9  |v d lz mp " Og"$;ׯB/:LS]8 z+sXգ ('=R;s:/P$e| Q?kcNq D /6-'> %/P u bX V4hg>{ mk 03XvY7z~ b'y : d5 ߯9)na9" jKs)m %bG0 "+ n+55P% "j apbHrrr| oR gi"d~ z 9v "T { R]7b+=uE<}0$h R&;'f fOG]K DQ^ V( ~[t00٭d pd :&  Q 0:5 My aWN%D&aٷ !-<s c ,Mi^ ) uW 3" rF & 6f! =g U  1>dOW"!= " TwJ [VBJM+pW]s.  V68 o H;KD$Xoy2z.x9  jMYOj1[&[bY!ycS %  r: )z >TqkjvuHf iZ&,v8-1r; <Cb +/}k~hHW  ,%^ 4B5V8g0o XK)/ G 9LenSW c e; }Q$FV#AJ zN3%>RT MN$P!d #,Igl *#s l Uy} a Q^ kv~&2m 5'mJW}&]p*"Ep:  O+U )!#X(f G>8 jI>N7G"4eFF &S | M}A KK^ N\s  ql2]n H B ,xh 5wW0m Z\(g ^ VD2 g,56A e,!,[i Z) 6^* @rg f  q@c gf h9|~`O{fX=* O{V| ~ !t)D*-| [aI g  !)ۮ0Sl'V A \?a hC<94 7c2 4 g t pD x2 .*g,v^  };^^  t`JlO U]c Usb.# 5] !WҤd w# Gb9_m)  Fk/S߉S<P.!B } 3+{ qPx%C @| 4a= %8 ?]Gcj 4& gqܱOޠq!`c ?WERU+Dd]qQv 4B: A "!J . M Cd b sJ @`h(Cl ,x <E )ITعG-LZ w Ilz ?z+f q F =(K\ * np  2 n+l _ID 'oFAu P5^> G KO7'  h k'Q=1:%_ܽj$cG Q<^ 44*_.bq-} (yL@_2 td5/e{ ##Z Rg1+hcaCA }A!$+iΏU&y`  M! gqOSVE$<m ] ]k QMrI/GIY}[TU(  G RW  N3WZ!Te!% Y3\a2_ qoBI_  Y4&-X !3,XX 3o+bFH}Q=" aW5qޭ] gDro3  v@x k-Jp {Bd]_ 7' esX ]s\Z} '!=h 8. jg= T., >  'l /  T +{] Pnz ! =F- d 0\Jve' !n!  yC+HJU.!(l $>A> P1 C <;:I$ n1a$b i Fk&BV P2 ?a "H(W y/\tYh jxa 56 jomv 6XB6%7 <o1s !2<<a = ]`]= Td}=n)Sm^ ~@zC 4v p0#KyF|Av S"  (1, 8TU {=wm } Q ( Unk7ܹSiDJ{ML ? Q ` /J U UM V( K  . JHި?\L j?< Y]F_g Tx~*r <}1WH_"\FY5~6& B`+X i j oME >`'( P[q 3  S$Bע8$ tK` F c = ($O  'K BiX2 s w !{ S| :4k 7 kHy1|Yo:; Ut\+vASu `?zJ g162F1cij_'A R <+F@{y kU9-.|*PAj 'wW$.o#(4# $J M)?% l~ !Z05 VL% Y^ D K"w( >V( {l pW/ ht&Ik !cUqz8:n]U+; W"Yhw@G:&M)  Te}Yi:59 @   Y>#l >. (c!%0y6  d7H *# IuAs6wWn  < %e%Rf}< -<%> Y5  o cpU<(3lJ&4T _S a yTd ? 2 Pg ,n%6, YfNC]a d=?, /MV o1 x7X!݄,^M_[yGN1D Y  j#c # !$. __ 8uNw  Q-F;a;!De) UYch1 ~Q 7!*aa]T Wl9!6 "#P-%(P{ N78 ?h6 Gk, wixQ+ g {b#]- B$ F8Gg< , 'p+ `"@7o>LYq>K)x4fXBy5I(S)B&oU T ' 0rktGU QV 2P %" ?z NKM{ f t) sJ] H  8 x8gܸEF66/*6s' b C.$V W@BnH Y' OPoO$VXAe+H* Y!ax=S r ^E gKj$ ^G h  @- <m< l {#yXJ(?0 I!%IDDn`9NT "B}E+} # {?e dxz Q\:C$xOޙ #0} *'҂0I L / Dz %^? ::a=a"XrUf;'v 2+< #FGc@5,B q   U}f ,-g,?MIq%y 2 K1b![ X9 &t #_?  %N7 8S9abW mj } D_5$ۋz`J$Yyk3c4O:e6i uI{7-DVr`   :@# kN61U} <  ޒ^sqGD7   eOM} (u,!r,HId" (c %oZ F ?CD .:* s X{ =  < s]bH1  Z> SOzCvVg !  (tr4Y}r@k o[- 4[2ٷ~ $=2Z =I D^+&B5N Y? j) `m% m4 JQ $Y*) b} } %AV}";jUesj&)*eMDWM;_kH^Y'_ܚBS qt#H5#mk  ,676pd *z n_s ~ } jJa %5j :I?"-fM >YP fb y Oݭ$D 'xae%@ +y+pO G7> d4M jx>T *ig 4 6 Q|N  5  ~! jh`[%D ~x ZoP QEt޷;I3 ]r4\dmvK''Xڋ{ @\iu ?s  3bQ d 0{4Bm#& _{6-Q W~^vw  %Ut t׼% ~"ݲX:e" %C  xe7 , "+ Q^ J - g% a Y+$MWy{2 ' 2 o) T*( zU GZN: jYT! va  J Q"CUE|u:}}0 7C ,:" lm l  K%$S8n ~ ~% 9J_ IQS_M !2-I^xmW<8 gvW2 #mj}~x 5Z.{r &P/&!?!,2 8S x; "U>4 #߅yp!?b^!B WvZT=Jlq\  /C8C, I> 6oMwc-1l-%j.bY ; 4^ +"z*b 62 o^(|%,L`I ܃'$XK $9Z0?+X6 Jh{Yoq\ 7 q|(N7 8 YB  M] # gG Y  R ~tV|  ~B`߆++U&Q{/s a3%+.v' lQ /<0 sNH,_ F|sU R ($. w']f G3l %v?Vhvq v}|B+ \ z f2et:q\OU1 zK^= /uzf5, gX {Q7n icd`O %j8k ubv Y% xFT# VT! 5+D#$ I WwX;~ 2y5*!s 1h '8"K #$H^7$<; nAg^ G 43: ~l, lbAn*F#ok y3z4$ ՙQ s) .u0!  Guu9 +8O UFV w`  v9 7XS unT$#gLE lh X d \,) 8[ oU3 ?/u m:8 V"=4>   j8? ) d9kP1fmIWD D;g| ;7fA% 8 (p [uxp Y"I-ބXpn?H;: /(t ݽ]%N<#6es@- }+NIt 4 %-sܥ8".AX f I9W   (,Gnl"V {\j \  N 2T hY[ #-Kq |z% B  >}v E! w^UBmh ~D @ayh1j`+ 9Ap 9' #V sMA\hn  |%R/ >^j5ZL$l0 E^ Jw 2 C)w..0Ra -Sh![5 7Y 2 > r[~P.<6 : o Z0 R h x? J% rA]@r > ^"iYWHh qK?aq& :r 3@!j !b iK Kt Hqs-{/g z lI% pqrx*nHiIl2Z}D*' 2 U rrA eZKeYVD \sX޾I.Xث^1

7(  GF~A5(%F G,p" s2q7 x ( g 9 b & gc{::%Itp ?F abW @<|'ll bH gt>P@"$'  ssR!)~޴$E! 8zUJ Shi )bhC1 /+ P%[/ m j 6[h"@QXoCf3 oC K*H [5l %Xf4 t20' v~2s6} + E 2fir q  Hwy1 t f#9κ"S/xt#5- =| %qg\/~ eyyMLw cp~ wfp <: GN"  4aT l 5K?F 5awyNP ZQ ;?o4'DS! BaY1"h 4> :H;5I o7$ ^%P!ܽ h}  NL@$1-d(1 ~/}  n\qVe H~lS` B BFyLe ]`,i/f85T" N kz=s{cIT TD |l 3vy "RJx3S : &Z t"&E \n. ; +fc !7f*6/ L a`.+V. k !9 N0<T F+e rvP93NVp zY+%dGw Sk 0!CfMc.ZW; M& ~ܤ#e c 47{(f8 d"B b Y7;/ ! :( 6|I/  F#۹QCagTD1X c\ ; QM4K ` Bn!4{QsgW 7]  W)-pe: Ur<&n,vj#F >bn2 R`"8S(}- -+  EJ Ai &*v ""R de4? )/$ gM9  lm,.!r {Z -ccm X (:_+ r&nf :Nj$ ?= ,4mWC S05 XCj %Or>m :_@4<4pK?O m XlCH r ]H y 1#6 )!_ Z #m y1 Vdy_k H$XsF _H~  Q a׊+ޝqn{ `?B  I+o 9 "Nw%&7?< ~)pF  ?G= \iS6hSB-( Uz 3(w$JOG"lL 2&x w ,#Gߗ%ՋQ m fdsM#p# 1+ r W T  f%dl ba=ryq N e>fV ?{ T"  Sk' P ` -fC1Jx (f *nT T \9M)F w# _1zbg\ =0 U_R RyHv FdX$ A n w!r |"#4} w> N z(=_ ai"<`i L3})PSK! M"@P -|:t L X#lhߞ X  '_t; A M  V#I~= 40  F+<  \""  o {?W K3%^El EtpE4&B!g A~5w0"Me ()C^'Y~S;`5+L $@ ^^uasa eR|@I)G/  *V AQ[^%ha#(\'W^jT Mh# ]_]i{ P~V*) f a3z/ML( 9`u5}&;d  11o;ޜ#4 5 [y& VQ;@I F/r:QGi z1 KPNx t  7%|M! (&Zr P g U~ ;{ U59th ]w$8@ vܓ   l Qjx`&.B(}DK[N  5  -Dqd L;2g-B1T6b `I`[%o*F (uoJ&Z 6J #9 B!' Nh* 3>Rzjc#'h CZ3!%]4 @BP)]l$VFnM{ *; )Շ)!>mj< KrL^ I.lB"L ( GAP g ?? i1> Q dg - 1شߣh*, N&* +ourBe%C4u 8 -o^c"~$ W iWQ!٪^[j!~rB )&Sq]_>Yk ! s.!PL>a@! %@#S  }d{*5qI ObRy4e  V N#!T"P >a  PV37 g<2 А!j1 % @+ joC.Nu 1o Svcm ( T ,b  $5'sQ @ )$WOs,FU7 NK \g ! /P[ _5{.k). Q%k . Sw$RBo %Fm`lB V ;6 ~qE V ;}({_0a#GE b$9 "& @hQ C +,ssw'rDPW'" [ Vt d* r ~r`0 H '  * ?D=R?q"}~   6 Rp Kh[f  }$ ql [2 j Ao#&xz6_!Fh:cUpv4y>0 *) rz/>њ=JZ Q0?Ga FL r@=] b tGMkHM[SNe< 38*=D[x~ eB.gK=T P  ?FJ 8G))9дF# Bp[3zN  V "s A  ! /a u l ?UU<٫"?h cz A޽ ")tM ov^n   j F8 M>H p G  1 & u#Z:SMT .2` Rog:S #<MR;4Cd,t% N " 4ڨ k, 'cU{  %ee~_%|,< (sI ^ !a q*+f ` wc| ^ ^y 7 Wdd 8nc  *?~$  8 "(fym&7.ӿ)(? tA-R a z &}3d|u$/CUf MOTs=CZ. v|'Z/S.a =WONj ;$dLT!5),T| ^Y&{ )p gXXf, a K # "Ygn8T0 |:?} -k ,)@/0ٹ^9  Cz6{uW 2< ar v nq&! "!6 'q VD{y f z;"  M@ K,! )l   fak| (,?i3zu JG Rlb   j[2k,R :^ ss 1l > ]#"5c,>saq OrbgG O  P!(_o< }{ #bU׏$OSaY~*X^wON EC2RC xOs ? : \QD6CK? P: I(xI XHinU G  N2 X 'S !)~$cfp?&aR"*fߛ6 8A u 5+ 4c\ _L n 53KTcއ #ifJ o2knc (I/5 *hpY/* i = m `, M4uK>S/mEQڭ#+V7z 9q b pk;I I8 +  l8[9c b 8;W? ߄{" - Y  iz }6+loi.+  3!kJ{l$( Q > !y !cU2 6 tZ7?<TGJw\y ""u hbN pY& y Fc; e < O@t; PS o1 5 CcFEli ~())J0:M nF%Gs  SQW6 \{ %f vG i mctV nc#LI,: ~ QXz -- 3>5וr!8ܟyV.[x'}s  iVS  Ag_a"%D{>T-|o~  PH'@ $ܗ LlU_wk=pj$ 8uEQD`U' =) sup<iztz"g 0 x۴OcJP =-@ 9 H^ 3%V  "n V* W I 0!#o*_BY q` G?6awD'ZrXY fO& V K}c ^{Pz/ m% RdBYO~))ѹ"vx9-PUBtL[ >Xj3+. H=C/) O}? p}Q2ދ , 9J vUo ip 6Iq _(_DH  r 3VzO >?Mz#w5&| Q 4R >3c.05v%3)F{*zk &$"%uz m xj P {^!!$S2 hC~ { :!U7; D}ڋ#' PX' U,xe+1| '' 2c A!# tg d&:K Mq >"  [X/M 5$: *P  \"a #Q]?3 r,V'<q`# &9b5sZ U )FV!( * X59wn1oY"C|fRINP =e\ 8f|q d%%$!zjD\|# Dr  rnKB=2h\Jt b ~+nCq[pC"2)n m (o}`~I[wHt ]e| s 4!J" ס# z y Ox! 5 V oqq. r}~n I mU l aO) 1% uL ]7e!%.5ܾtFeM !+Ss6L H cM7GP !f# k|zj9M #4?7a ) f: v@5 f{+'r$`` !h"p6^ELv&^& QE*|zѫ i$;e G SO $kN. { vDFs`cS|#Ԑ &{"Wޔ 3 C r J."i , ^a_ T{= (ښz  *g*]j=`@w YY[DYPDm A a(&(i~ evf=l2 n+tݖ# 9I W? laQ{ z 4"#ps%v mP& & !P@")imsK '_ ^@ދ} gVw8 >m:"s۽""cp N_B Z4!0=4xo %eVO 3a!j`7 f آ=-" C5IH,5#xMN &X <m9!  !q?O a1 ]  ?P L AM f 5)(4h 7 \* G@%r.rԃn(h y Rp &)? A mlQ) GXq\%< ;:  htW7) N l{ _# 4=vg[ IA DBzY)j!- M){l7jmF;)  |Df TD4y HXJ+]^,2{=o oU Zn E ;(y&U'3C @d O*/vBZP@I6 zdS e j W"`\~K,Y|O.0FZQ3J N 1 |9 `cgdu% PG a w?2(4H1  $? m%PDqMp> >N }R Ess BuoD#"H H6" w@ Tgm+6OC xDe4Yi_XvF^ />G XvR Uo<F Y(G WKA Gi(* kXG>H Z9% RLdYyU'BzP;  <`A < b ' R*bJ Oz84X}NtL 0 LG A~{_ YXj%,r t0 Yetb S=5m <++*o] /8_ Eb H ?Q}b1pIAs q g{g2 &ػ 7 3rA  (S$UIN -bF # ) 4Q4Vi wuvO @ "#;$O\Z =) w=v95 m6If,=S yK\j RZ 0 @ =)HnzN;Dps [d4 Q jwG.vz,= ,' (3{ e%[YM lsMG E`( DTu!`$*<@Bg69l  }mD* &f q 2+  vU~.(sJ<bFt |k | ^)u, up j d @Lgz R.vl U- `[kx: 'M y| W @]*~T_}3jNv>~8_ r 3R)_ 8׉|8o =$ ~ GW4S 8Vh E S#I A xB[ FKNq =fIq $ XmQ޾! J -bp[W<kqLv t L x5,H-S(R)1e 6'K / H|#uI !& / ) 8s 1e#YRcy 7>-Q`^s]2mECD*o2 'C~0 +2iqj7s}ac(Ep.0mJ"3Y5\p%DWSg+o1_NHa@*t["j8zv+Z(S( -hL~}8M1im\u$JG@P!LRo ""P,r']=,[wpj|=Et~(vy.;o6 ~#x| %4PCl,.b}H\>3~8<~~=)9"AmH~gAC*#ZY$wR?\(` R Z &6Xsc:\4IO,S[ x<ho)(b.\4e1~oy<#{#hJ @I-*0CvqCV5!FN=pGbD43g/TE9#f 0=x 4GS 1>G m ItH H y0rn6*W]f$zmT_a5zW D2O|:P3SwTmD? XM7JI$3^pVaiRnKsz6byM>T$Fu r3zm(" D"j+*S(e| } "&DOg>}eCAZJ|% A1#Y=QP=gR'62:`CE|Np&0;09 a0xdim}qX`@1Rw!!,.%N,.SlQ25r- us>i#/w9__Dlgp   "Jl 63m'i'eIf |=sFnG[Sx G?jDvg@4YcS>;\ ) } B u+L\tW4pt$:%8E;O* z? - UM pz=$~)O$s $N <?' "T  81Em\) {V+qec P !7* uJ R&x 5eUk/ p M2 X l WcV7s7QZ &<ZKf[MC ?i IXNB , WtVIyy) %8~w|9e x% N 1.x 6 qqP.';7 1_?EP{){ b e  r  :Q$ O j v<',   d zuW'gs ^3 " ( tJ e h pH . g 4?A K9^w Q UR )< oZ5 0Bw 2 Z @*8y<Lgk eF5#gw pOAe:Cyg kR.Z3 N@} 7=8$M+;-2svF0 *) ag}!WI?9>rEzxG hZ1~NV/{6R78&mgt k ^g  YHC  -hi$$yhk76"#1] yVj" L 5|H +,lO5DۿޘPR*z 5޶ 1a G sw YA wX LuP  {#mװ! %V &&e0\S EJ sFF0 tB4;=$ opJ$X[ pDYWX#j g 4Zg % " X<1$* wb" [M'MwE|#G, c%[_  S Yj&L7:Udi;g  oe 6fh)+t WOB p<{ HU5 p+to4I @ "dgh ;vk)k  @O8<$1ؐf+/ ށ Vg?#F7eM  Z? G] sL h7a \Vg[9Z 9^1DHt/ qa p  * t M F%UF[ f H)+c%B&]rj,Z? . i lt1 R 9#7EDn P ڿ  >?& z : 1!jx(( #;  r Ela V v<5YaHb!k DՄ! , f2&,&#<۾x]* BbS|P T' %[W 5|lKt!W"+teX(`(8\ }W87]W 7cw *;2 zo "QڀO{0;8ta$7 = A3 %zS" ]  l Yja T$ %B &Z^"QV H/t - 8 < ܆Q"L[ & ga`e(&& ^_mgQ"#F /9W; )  S $ eWz |^ # ' '!Ov"C  dUh}21ڛ QD, a X0Yڿ\- /dzM&&unX":ޢIDG k+Uh ? r&$ 9S ~xmg p ! ,Rw-v }>UJ  T #"BhR Z>.n [S . "  E-Lb E_SnWf b[.3F==1[s$(,k ۡ7007 *# 0LEe @=e-SIt3}Q _ 7 *XN HZ[G  j p+ y2s jq Yl Pݲ b  rP #y@)5]ZU {'Fk` 6 G,{ @( j!G 5ק/ l T Y 5zo  {F qD)s' -{Xx58) tax NA` /e5tT F  # $wXA"[;\G a 5]O A1m6r K8 g}2Gbd''JHi<c ABye  *QPV]0X;sAAH 9G 1I>,GqD3J ؉z4!\)c r U! v enkz{g ] -j^2hMV I&FhΥ$>fE-v T d8Q%O:? P %w'0J^"MY yze.CMb\T*Lcp Z Q#8x  #)Fq~H />Mf?xza w( Y%dTT ^5%9|3O(F  !8 `l-c5`]%&FXN y) g ]i[ { Ep K]  _Q  Z?j @ 6  2 ` jvFvQ(?H[ B r )U lS+$ y+ & Hd &_c3 } "[ڏ1Z Ft@V FWo! { Zp`E B$">re w_IkuD!##uՅ:v a7y oJl ,y,M/ cZx^ a  (w p Dx*xfDI,g{~" O | 91.^ G6v' 1 g=  e *   zA2j >W=$.}!= [2. b ch - fz5$  ___Vw9 q #Dvu ,2)s ;   vLe'V L\*O^B>?iRC)  #u ]fBrW%;  vX 8&`]"{G?\n B at/t&>e]G>(RB R DO &uSR& =! : *6pf:0S? Sz2;}=GE:$ *nޚ!AJH pb> +`2A;9@Q04! ! "S 7U"Jz' lm2&5q)"׾ , Y YkARz j/ (GM"yXe*\ *| ;LZONc, [-:_80vf Kg  5L$2E(X 1 ,b'<s_S ٧ s$Z z "}, K"? ZA 9 ,{!=mS\0_P^25O^W \; X?"=/K & * O%mz[' o @ccuOSxbT}I;21 9 Ch784o "* d } 0;H2-$JN$CI?֧8ݳd!m AX;I BJJ2:1 |gv 7{yP r5 I 9$q$ k1o D t Pc2k'mD7 *4(? Q+ XC!% _0 Wzf ";e%) KT i 0 :3. GMYf , HT}fҨ0}޿,=\ Q +C qy(t nO V- ds8e 1Qkhyl . (en " % r ` %5 imG g< >u)/; I Fa W2iM RIj > ^~~$Hn** # e7U} P; "Mm P {)ދf{maaC c 7E|G"Dkfgq/ n M $URnx sV'$+; r S /" Mp'b U d;q8 + Uk 8L܀{ Hk M+~"5 Av  7 ZT,$tLhY If26>BF26J@%s # kl \ , Eor! W  F $x9ji7 CZV B zPOyt) 4 b;:D ^ &^B u#Z0 (|*s - i&Rx  .XIw}s wL*%&7Bas"'& G%ߝ |@t w@Id Y uu2>a!GKQ'b{ # "i%)QWa) r&o k !#[5 ,!i Gp @u \i  1 ,  8[:'gQC kU  -)FD.qzLX?Fbh?d_.WXoSۗo_ uL#p %R3 ; n]:E,6 Ef#WWnOF Aw6 57 N u 2 X   r 5 z!d8YO W4x6r@tW E12  vL\O{U$m[8QGk/ SNG6})xj c/G f' u 0-Q  8j xZJ Q  \tD " Q߆  @/q ](+\K@@d_. < %MFKT>  %r wIU p GcC{n c >L ;; T#WycN 1 @, ` Of| ` ID@6r+ *?< S !z {C o! U 5{ z"P D;Ojo w<L!6.  i)[ J = \\`ff[Gvv)< Y(iW- 'w2  , V  \ *-V' )~x\ =%>%Mt|oU+D"' R9 2y+ V< 2 1H1 !`u9 t| @KRso $N /;> MW` v E `HFmn0 - >fy *i \ g2@P)Y I!%  "u @!UH$[ wpI [u<d \= i b!i f  0Y3I}7 : C.Z"KOdu%o_U ;:> v*Q}!et%!p |K <$b4IZMJ~4[ u ef~2ףPGUM$<i8}w dfA <#es &Z]i2zve" 6pw BV5tRu$ [$#^ >  c  j b!tV!L  ACz'HOtO k)l xn 3fB;~_F G7x3=aov},^ TX Mu ;pC! !P EvsiS ,G`<55=C  UUjR+,)kg YV>$ zZ (>T 9 aj! [gn A~-Oqjh,&FD,BW!ׁD1Rݱh 2 OG<0 m ) 3d,Az '">$ $p#OxcD  \ ) U+lL tm 2a ܲ)fܷ& ' l Xs!6qt)^!l ~0z= X#ZKg s$>m$eA LBf'm !rSlOO@v$U Q ! "v M^=@ %^Vf 1 _3ACW#Fޡ.^%rn>{& x {jG *b 5 u3#͹p(lQ[ 3I&V $ Y w>q  \Zy8"6' 4' 3 @[ 1j l+?Fn 8X: +vzHRJ-y  }&9*BL2.mIeuMu7>oXYM- W ! r!jZ'  f ,.d Jh _- r 1K \" G H WCOgFu-f! 7{[Xo QQ ?[r\W  y/ )TDv<$/ dkC #  NB J&+2`,HO$ F[  3b[JXZ;<>2 <~q%W=TGQ6g(;f_OMcN .bqZ ug (iF ,Ad%B<Gi[ EV.Gu}n t? #{'0/T DO e f  AO JVGߞ :f ~{3l#5suXO  !arCo. h &CxgF` . ;z1{$ٛ) Y nd+ >ylw(^Ba%@  4  .  *- fMXPbv a\#|NCZ/ %gP,: ]L D;'&TN# \O܊ af2p,{ra]o %3[lFv}% ).C K| fd}&/~u\6d? gCZrak\ A{o 5 5P60N;Jq+&h a ;Z$*t @OS z {/MR6TH`r, 4)4 kHlg #jLi n 4Y&sS. "1x(pA'K=LJQ'Av )Z1\ F&9 ٢2| [6 ( VLؤ$/KA_Q( MxeRT|nb :X.wF2 )-" S8 B`{#bwYf;K%} HZN nT `y-Y e.mB6A% W#ՏM 7L v.hl  I5~GMezQQ_ `Q J ~2!4noLx<" jcc_}\U!MN~4.~{| WB 4Ie0/+O#v  C e:h] nZ Z5Vtx!O 3! !q/K)bCm6*< cW!Bߩ <0^GEo C & x}[ =)3= `,0[ W b,a5UYn< (6 u  iX@"[a^Va7=, T $ި"G < `K9" ['W8W& S? A}HV8 &"B5 P W $&!_ KtQ ^!__!4 s:(\ -\4B  ;c0Gb? 9 g ^NQX2 B.3;} YK R$ .0b\b 2}F/`  r ,?w1 RU@rXA H2X) ~fqXQ {zH"#P G k*] +" .bGx $UG `7yJ B2&+ ,q " kU `|$+ -@4 (G(B|Cbmh Q S?A) ao tJ r@RM# F  l ' . QiB4 /H  Q + tP(&t"!y *B%{ cRL  } *TZY 5= { v> j>v 5[%5!mR_6 O M Wj"Q. 8ev n."g ;W 5 @tlC 1L]"v@ ] U<@ [#-sa hQٽ)6 ""c '? m/ J{a7 L g!##"jh9  b { f TC)Z{12 g ;&$a 7e&6g;!}E\n d5|Ryn ^ ks - PNh7 {Fe ?[+&ޜ"J')@Z X{ %  WBz"=w]~G    .. QMt3ZP ZM)vN2n #p QcYF +|. &xMV=XL14ksZfoT iVs Y 9 ZB|#} 5<YFO FGt{ |"MS Y 9P :u5" <.sI b?=%|b 8LUzB  &*8R]emWg1 ` +X =gx %  .  y V ?VT9L}VjNeiD ]28"  ?#o* |AT3 <9u  ]k)x]:YlTE d6 ;u x)CZR% T zq bs(4[uՐQd_h,3 aBV<ށ"V g) <v)H.i.q:Q !TJtIY %/UQz;  i - |[R(C9& .  :<J p# OO&O!a_ @ C{r0#zd [F IW(3 p%IfO[vWA 9gkB>O[bz1D4A| bd| Vh'u  k *#  > K /| 9F! iXsC? s5 )Jkba_h *7Z .f-\ D;D/Vg irdh}iL8R{X!=b C_7>x {+ Tx* M W i[ .,p. DI (WtKl /] uz0 ;JF "=Nm;|sH0=[O-` v0nvd(@I 9B MX'" c~e7 ee e @/Rb0p,r Z [q_Mp* ss2 zQ'cQ9 t!3\z=K# =Y VT5}G w߱*4ӻn# !y? a|  [&!'h I X&- ?  R / y l+sJk5m- 49yI(`, E! \H+ dK t]CR8)6{" \.U -fVqFbI 7 rOf l XJS#z<>-" i~ U\. \N bk{P v o|IJ3n C SOE s  Cw -3^V c_A-a.av uU No l!%F1'xiN.> {#b jq"fMiN30 DF0`Yj 6$7e3k =*0c0 0KO[eb 9`!$qfI d |E1#  s Kt :~R kf _b p Va6/@H,J&3Oތ; / a)"? "K ( r`K j /E!XX +\q| Y ! 6kd 5G9 a%S^H u=iF7  { ~3 `9r< #=/;(+ve}/@1l fKP =&́\G =MNGWRH c06 ^ 9! 9rIHe<^ L$c Z0 8>{6E! k;d Fe[ ij&qZ#HJ wL " QzA!' % qW%n#lss4^@EIv J;!Q(<(b3f $0Nbu|! 9V 2h6 -4 48E)uro# )* ic-K Lp` X"lndcE1 n S "(P   mKU: - h x j# #e*C& C f vQ ha# ! nu L~u *<1 L n vkqa vb7$ )pܥ+STM'M< UK^4TR_/Pm @ X QF { XNBI'}= C vc |F, vOT4s +%  GLj'2! tc2H%% A~  (Z-cV = [ 1[D*o "nS0Q!~){ 0EB L t$M! gN9#Ҽ(gz5C 89"Q;?2 + ;/  xc~,>:M'~rL & (;EnPA ?`::<kG/ X$;n$w R nu y&"G 7f @g8?h Lcc se\2ra KGs] H w &C*=A. :: |! yL}CM**vwS"~  /> y0  " 0dxlx trkg f  O'KX8 l pcw >i BI|5NV+ 9r&|: 8/ [yR &P 0 | ,YNO S W }hp<! !] ^2zC {0[~cOHm , , $ J> 90:n(y#'DO`; MH.Qe %g -U[$ )x]P u #LU4A  \lN-K1&X؂[A TZBteohcv -9t5 j @i &`~S%aڥ[ UWA 1 s]#3 $ Gmsdi| T<= Be RM -e [7 * Nҫ6'4@` $ b dXpxxe ZGVFqV; u + AKaA03a 0+h{  gm# O &LZ@ QN%--m1{;8ees8~  n{nN)'8ryFl D Jz`XKJ:p P>A+ [[&X"  (cFf0/"ZeEi+ISw\Q1 X^u \ @<  ` KA E9 w2V[b ~:+rP? 8t.#-.NU e7HRCD+ fX*9el 33p">ryc$ijm O9On,6"@/z < $  jCjrnuQK ~3tg ]g 5 l U `/HPSy2+_kw?U u |_D'51 e e(0ޘ :) 5W%s7-'hB b0Uv$   (T "vX MwCgݞ~)ludhGF  *\ L N@) R $߬t7 *` o4 +; h ? crV  g`C&mZbhO%L$  ( ! y r |"_ U X_H!i v /-CjWk  ; `J, "C^n :#^ { G vvN" 0  ExH+VH4;ۼA#Wnn '* [ = ]g) %2 99 b -A^ % x Ue[ P 4 :B5OKYrO #dQ6[' S   j$܌4і%_ P^2M p }e ]m {SM]  %,.CTf1 . |5 &'0 u+j2b1 zrRb +=Wm}  .tx/ d&Qr\;x 3 {!+E R*  4oMf8 %Wc9 '!NT G*lm| 6V M3&.#rYߌV$J(w \7e"'W \u& !Ip AP># \># W? <;],3ArI ah8 KU{: K Iql D@[: .JFqGz3Xp x6vP'f0g,ڽ 1o\jZ JIWr(d  Ca({("B #jl   .i w?WEX- k /- ?w1a H: Q|!us" 2 ."Zb VmU@ om7 F8 3: C 2M{3' X- l7 c:k  V"%,@P.;'Dg9=   Z; *:j j7[k3"!8w)4 C U| O1DxSfDD+. eD! LT[S' ]+kO$Y @}0PEm/ ^)5 _ 5 H_^}'|0 F, r(A|x!Jrc34q #o2 b+;u "IwB!, va<tFcYuA!`!y 7pb9}4 vz'# j/*^w\ t YG(k nH ]  ."H =%fޢ S8DmNLbDYFXd.0$ > % $0v(w 7  " .j%;M߾8yi <F1<U; U:t*3c8KKb! /s[~A`GDߍVGV1Qk K: 9X 7\ Bi I 2cdt wtD xr!gI2*\C 3 HlNE\h l .% )oU(}@k[6   J 7A H n o 9rm# -b ^ L )w {-YL#4u-t^ 2) 4*% R Xd]'s\W5ۆ$ AK .3MX+m  @ d&B OJ >u'LD y 2++.  n(t zb tO 8; P/!v H x m% "9N-\Svp-> AQOh$<;k d\ e5SV]8 `V` qA_ 5 {w";;M"S =A L Y w6;+ !sAO /r Tm1 MB  L gV #9 &qwK2T 8(n r3  S YaJUz< ,5" t %X ~R!NRnhr3 dXt { +* )S!gW   f,'ֱ%.Y+S7z |X& %7]g L M2 W Pt y T=dW|No/ hv Ef &78U< :  1(",5`T !!) q:}F } ] 3O)!.v#u{P[$ #7CB q&5P:[3Kb8? '" U t V3Yb^ = Z.5 udxvr - 9E k>7A8n' }D ~ . o5J 'F r3 " {:?)N+ h" /wgOHq4v>:'M4u1. CY8*#4HO RPW *z * K(893 uU2 c)1B .H.5K t j!$I?g";> - eeKOC9[  j ~& >\/ W'Bڡo __ hY :O?ASdK 8#mg/U Ga eYv Ji  SS M_BgT Ig. gF"x b_ >eE: ec| y5!  d<7h ])WC$q ,>IGt7 C=M  D+h`l$VQd== r& p ~ ^ 6#v "! !6{& J y Ze9 =~0'sc# _TOB-&R"$/!$;qB It6 _gA y :)u #L0 eYZo xc   " (?(A+ T-=_ qgv cLi3- ,mQY0d%i؋m {F` 9*  \, fe)B  0 VDx ~Z6xN;Lg  o6CGT>2P %s ,\  c r*~{#3`'P!ts|Z|H* $  8 :S x!&T'}Z_&i2cMN D?{mU 7u%- >.d e^_H7sM?074t-#4 }G)^V7}9 _ ` s`=Kr8L*ex T<^ ,  4K u |vIO 5w2E  Mvcnm"ߵh` mgE C^8 }f 4 T@ Oo}|ZO*?9j&% 4 y4  8i - @O A Jpr\ u$>Y q r2m\'3U2#\#&==lC6w<s8o 49ze~"^ܙ4 :qys4  Aa7L a[b m < ~D HS S |E {3p 0_w>S Mdb"E3t{ " /   D}. N^-;h{(6^u mMsf K _s'q {D^! a dFhCܾL  n m D_Lf( YsmE"~ pAG} -mo ߩF&}z:@ >tW Aݣ% Y * D"MaoaX>qBS+ ')s" + B4Jzi_=fbws_f|fy aG8 # N"d 4[h^!:ph"PI/+m[ , W()TC B#$ 3> x. w.N?B * -". ,lA# e =Rk$)" K 9WF5]P KK,?< y]Y q sQ=#t!*  #0SWb nd'}8{ 5Zgh q Rˌ F!$ hr *Cu(rIo 1um U|#quj) W}H P ~'8 aD ^")Arn `[$Fz; +N3[ Hd !1)O%dtl'Xav?9-&g .7V2 b`O >*{P0^ K| ]5;  ]"1hy+*Tw  ? H%6wb + ' X\7T*G]20Kt4 9o R BCSd}}iiJ<`K? N@@E nO^ g]T Xe%    aN O 2 =yX K7_ !l L5 @ s4Di.-$ a4ӱ ]d_*[  ` '%as2 iwW h ~:YwQ(p7x ? <t D  yxGT> 9_y L=26 N>9TAU# ^< g$;4##+R}C[ a5\t X'v wI ( N <C}p j> ( ,'( g`46hn(w 4`iras. ދ)G z)NVL  x} 3{uN@ l=`jLCSZ Ko/Lsz KZ $ Pjf> l7')w5p8 ih")b ړPN NpDc ?P 6X1ba߾8-"w* W-X}4 +^Y i Mq A qu6  + 3X: # yrVpw  y y{~q) @~nB[i|'> \D>"Rn~;+*j< oTSS$بD wKmA !4: ed;o -   V5 [My5n  -x|Ko a L& @{ [O{a^ mG l.N\YE>w 1A!b7i2 l-y@ddtNtp3Zz2!\G]CH'] H)  e{ \& zޛ h( KF m >yS%& " B:Yg NR1 ' ps` g2 l7yI! s 1,`l{e d+Vw_= 5&%q B@ 5ۥo-m)[XHFa +H[N Y S:c D R@lhY! z44 5aV9 al &gF!"#, $B t\?@^ a0 o2S }n  qw/ +d,+] ZB 1]PBX  5 T{ 7ig^%gFx#qJBU ^ *GE i~wM2Ba%$*: Xvw|LRc m7&2e D gIs}3> }.> h%|2 FV8",9`NJB[|5~o=:& B PFH?H 1# s m-c\ LO9 g E :<^1!6U:5 !C+ tI .* p(3f: ^6.K  _g Cԍ*h? :A( qvj    $ |E HH~Z| # D #]xoiL^cbEFjh .L]O'!8 B 'o"|o )s\Z\+DbP6fNI]!3UU  kkCcI 7~/X egY\ Q E cS&K3ۚ m>-]> YI8 ;OO T]2%k(.i gk  '"4P|ڀ0>) N3 R OO Wj= \CbA` H6r1 B6@ "Z s2 Wtu ; &M I;b q?Kf,EC xcm|pJl xu'1} OTS3 G u)K ٻ.v S11V3#F!aakUIq)Oi\%vL UU>Dm X.,H[ {/R& ^*'h[5!c88 o - $ nٜ v Gj , _ kew_5o@| @ ku1=Eg W  u Q +\ z ~9czs^ yvhie  t0@n6Kj%sD|#mQ!A _D<Y oT[m"l@bY*[&N0;3SoPq$z~% f .MUID+k2& (C7 [8?e@ ~ '#Nx#/dw-u)7 ) O~ lF[Pn+XV#5U~*E" ؗy }uQWM9| I ]!h 48 $% %3 p3o 8 WW;q27^WqY X* %*>i L:z`br#(np Z U IX9L nu ql#ZO8 g aCx%s ^>x F*TvERj8 oA3 "t? yW1tBV hnYW nNf'V )GD-l7 [G%Luw$!h|] n*2 -n?H * D #@,<6 9 C> E ) C, U\L  ; z+$CD B*۫  >23$f!aq&H9 pAA} 8tn!8"pFibvU"F A@d a"Z g$cr C5A!kjL#g, = p * k$2x3f 51OZL 4 sld~[c5 qُ(V/ LmK 55>  ]OMnV ZTU jLDF   ~%~7m iGR 8:]^tL~ < 8 ?~'D  c>!:f$ 'j1J2c x( (ut0- DCA@D UH^&"# Aa 00s&z$4܍ ) 3 ~c  9fY1 w m%#_&z t/*ZP zEflY\W[$! mV27 MiN:j*}i%$=E Z^ od |  Y,GAiq\ <}T߼sޑ+Fo[ rl{ )KA7Dw 0Q65JI3z@?>< Z\ ]D1"ކJ5(q'g| y5Q:"V\ &t2 6QH~ R8PX~,c0K y 0[^ m |E2 zj#vH./ ' g $ H S7 M"MAm,>Nb - e>a)!{z S;5BO xA { q5 ED |*|oB6^ a %Y;;~.X  }Q@ $}т,dZ% "A 9q3 jJ| ~7^LiD^5x?D;. ~.P^ N68. r{bP Q FMyd S]t %.( }$x.5m&cD [9$ 1g 0lKx*'Q>1{"`\ O<9bi m6 sz `x(5:6" YEeY Zkf`st)-_ lA [?2:@Q#`8 73Y{~8 U$#  n):WS;_lC  Rn!#3( sEUlz# ڬ#!N6ws^IRzG$-r{3  h`$] Cn tCc H)q_bHS Z{ &@K ? .'< 3 WBm  "H C c-.f=q  }3 \vS Rsy!v?=BS_T\ 02 8>Q@+?8 -G7l,0 n+<9$H :2D@e|pA~- 2) ],  @;Fo{y\K  'B| 2b 'J \ ? zv2 HJvZ2<!VbTq_?"֩( fk]m=/"`7  gmPbJxsC x2D\  @ r?RT׾CUaHuN y_ p1]yH!4d$-3!?} } 8]> ZJ UbV5 l0+|il3xl*a"L%X; }!bL QMX  #T 2Pxri# + )6'dַ K'0$ %c7 z"#Mv'b'[6P > }D t/$g2L S- i Y |2D`T!,!: i zw ZG*Hgyh! 6ZqW W=  շ*#tBD c>U uE yQNQ!#F  v{ 6<Za/\D G%, m|o Np4m_ 20 D 1U. # ~ NGV 1 vP {! tn/G  X j_ J~nILM f $) c  snkXae ry7*~ r@l5Y, 8 *lmv: nvT?"q . c Z JOCV  ~& Q p[Pgq 1YS?b OPm G2'L).-T ,f$0m ! ,Fz x/KDC\ )1[ [t c  _j0 Zq> &7}+ud MOՄW d 9@)a* (S+3l/vO65V; 7Bx = ;v,TF_ n a; 8YGkh a=0[on(QpB `S}}9^$o'&)%h ^{CF I !c%C a?nG/` Hc%" M!%M, th,bm^NQ O/%Ye@?6,rc]( j,Shx\'\ vq% =2x~ Nr`=@rsw75o%  I  ) d B >QO#>٘ \ ,ڝ ]"w`a kdd& Q?_ + ^;R2{ JMg Oa -,A[ $f~# > +O# }f u|A-K&\ ] z /1 j2dwM U%b/.(-m?l%P {^1sW QC]CqJ .'[ esU<p-^i ia/>/p $ =`$}1:  sVTHX4@  }) ( t- pf~ HR!(l3O~4Y-/J&~ mBKcQgr! ZI 98 R1' ] B g$sRr)6! jR; 0 X+& g1O  Դ1#%@ .[ 5o!&)R? e| 73x| xy<`  '$ Wt Ri  AbWODY @ io8y ZqMe B c8XHW7!5Ljc#@[!#wvZht0E UF}8QksZ1*   n;<Q4xht5AG$q J8Vy% @ cq; V s  :8 XWH<3b. : GleyqNdew !RS#vh ^   A @]eN@. h5S^xv- ؖtWV$4 R|ek  8O ? , Fw;m F_ A&g YUJj  b}E  [ 5SOO."nG [ wuw:8q W "9 pd/  q?k X5_{2Q; l 4H B!sD8@ El+ )u <Lj |j7xvUwK " 6 "' `{!P16j Gm}s E:{.q8 c a1  [TiagqtK:^WoR kO# =r\t  hi !I51I; ( S HZ!9! L 8$^*EE | Nh Bww W C1>a r Nl r7v.Y5L0f KF ka2 E  dK= OK a;az QA2(H Mlz k0]0 =Y rXc? ]oX 1  !N_ctM 6 v '!Q:k# Bބ ) #a [X n?GQ \D /V; k*/3q I[8 1 "} u \Rg2 e&Zڱ QO8( %  V rQ   a~CT36F~paN^':t y/ h1V eN] C&>a>R jO C)zN& |} ]-MF  a o)z ? 0Kk 5 *wBWkyupu :ykl q Q @[ .|. nU n6Sb^Xc u"G8+W{3 I @X# ڄG* |BJ 6"+mW*?P |_Cq#f=?}x` [#n dm|BT <'% x=m VO)_BlzOXC4 Ok 3: dL). s D%H lN q cmT%|u n mW'  e8"Z(Za, eL8 dg[bQ'1s  =? 2 HMcu$ E g @pi\ /_}H (n)&j fKXRQCkn oEbt17 ,jN "]fe5aHܸ G r(t h,,r, u|Do%( |? 15p5P7W OB7!#z!,N nm&2  "#qfC>5  M}+c} %/;  \)"g]| v~=W`8YwPZH }A# ;A , 9  Vd/& G u] 8M #z!,^  OTQN$Nk :\ c);A:  x~-  \ M [-, 1e/ "ًqH,y{2p}- G T s$ Ra%qf2iU  FQ^[]V0S s k  >1!~ q_rk 7}wb\oYB! Gy@ Tsm ' G>֛&K  G Y EW 7'P+{ &yb%q:6.QIA!a |zX  W* } u<; %b92 # 0Pq )1 4 xyr` 2a ' Y@&{&-<  ?#zC[O %^w0w uZl' x#q5[ `<$K1 ]J 0 (hz i mX]2[C 1h Bj{n3 r CB>V _.!wT#8$': +4`b =0\ 'MLk# ]E96 sIh HFX C1 U_9A rb<yl q# YQl ~ b5d L`Q n " KT#V# V_h =*_ K"t* Jey( w"Rv oT%E;  $=`b!&ݠ?|=*!? Zfbm] G"H` @ &2lgnG c ~ * O { Tq`|OW= \0Ma=K : Q5lcS~xkS, CI!D fn^ :=fo,\ i){ r [z"F3E :%< ZymNs8z `MXg: CLQRy n''F,-s QB F$mw FT1i; \|H1 MjB\( 9drAa { OYt1_ lJ  hy1LV c( Zx`&xt H RFuW*v I k ^4 7 C0zEHnZMHfF7O96hmgE#M6 K=/  ,J  l ,1`*, ey/M-V yk , |f5{ 2! g D/h<y  "O2Sv*+[QDw/ uUjT In>2ޡgYH/vc V-_N Qf9D):`W]WPe `h>:9 u&S i1cX? 8 6d 2 ]%j%w  [#   I 1w "EU4C*y $7U[yk r&x|fc 'O' d 3f g z0{Y  :? pH ]HI[USx  b  + .ejSb}3\ e 1 'Z; q9c4 +  '7j ` 7e h~n<2Cq hKl$ I >7 ތ{'%!(MUs\_S3ZW.7\g 0W(m y z]{ Wl+#9h6/w mI yb 1x  3;B<[>!@ D&{ q) f]>Gw 7 4 FjMNC "s %RjtPw(Ik@ =` B?Pz AL #a H h  u(m3 !Y<Q aTJ  S ,8)71:_  hH. 1? " u>C9pM2j/;F]x ~ ES6sr =c2? -W IF#i+3+ aG`0 R a X.[RW dFt ==b8 J$7 o 0 ! 8.7d?Shz{ #)gd/ 0 y-o@U Q2u@ [ F& : e?= @#T٬:NY?$  d  qZ5 ; & 3OOwR9Me> l05!H c~ s ecJ ']@m]E)a`9 -$%"|Q  O{*UM nfr#* .P)!E 1"`ތPw _iy 01O / 6i_ Mk  XO ']  * i $; zk^ J1&  D yR? .a- #1 ,    |k* !Y\n C9r K Uc 0x $,ߛqn 2*=4: eNO UB Z-kbD>Y !i "Cq"7ZM@5G53t $e E%),^oK@ Kq%(} L V?$_=<^o_$u ;=  P^8NYinLo g*bt)8i p`1R'489!lS H܄ N^4?UMT @hsz= ' ]v4 i2' P ;Bcx_I >$R %@ ttB ~ ( #]Bi }^( D*sa)l R5@: I6T[!S0^B!}  j"!1 p i7I QM =oq +PyM!4wj<h4 ޏw+Y Rk^ #,  nCG]+ I 9)Zd5Ribu 5 0 l..v bm'@4W| .5U$%p=7O!Ԫ%3;B  O2 >WvC'K;I]<  : e )20 nuu&I| &vK P 9Z;=n8 " Chv l>lX"# Fd d+Vw YXyv[1[ 9&pR L o bV9!/ )     r _dvP D(Wf>-?a<n>E * g k<*$ Iab jR: [w l_ux7E ["|d|f }]9߫SmbaKr ^< l>P  E]{| wC=/ \| 1fFx  %I H!Cm`t=k) ~29  aCAe3] zc#n x`Sp ' Ws B"t| 2eN w#7WHetUju ) L 3uW}TVxm I (K[ c(wv!lK`ݓN(.w + 6 G^r3 /x  -T&rm lhU .Nfj ! w  FH` k } % "Tl:?8"N L">1E U }s :q'  ]ׅn8 {9X4q=&<I;}Jec}> ![  $ 5w" I ZT9FL G>W C5{' 2V") ?"4/ _-'D} 8H ?+r^I U  b E`e%># )qm GA }{ ZI *f'n f# \cs  2l_xs]!HJ.]0 2i*x 4 H JVj!C|PN2!\Rh3f'; T[MDT KaI % hdiXmi%t. = ) Nt~,T Fw}MyݯI'2BOf$ [I7&? *( I[zk LG )4X} 'C[G N6 s]|C XQ S)* b n |~a  ّ   3 xF>O  h';rZC1  : =?a r #*Y9=fd a ! ,q( ?@M1G_GQ Mm5o * -b1$ ԰"   C O (*fmH Cr ^`6zjE IvOFdNr".-N ;^B1 D} #! : J=rgb/9(h[<uݠ >A&֪6 <$b  K(0*{ s?If' @/  Oj xXx\  IbY Sx|!J$ ?*} Jb#xTV o `a%  . MA j 8SEg %BW ?'q2 ;>  .ۅH #kA 3gFBDki3| :;\u ;lD [$8V[?D\W  N XN_q2l W!W} J |r Pi 6Yo݀`Bu :"?caj.N |[c 59Ms =4dR B9D @ q Rp yP# Y#9cMcL )3 +O8Q }W06!J EF q=q} +}; W Vw  Se EKAt =^u $NZN/f0[ ;%^S[ 1W!R %[ K-Lh?l0 JU~9G5A/ *?ig =&[AzYxkKr F \8"jWuc[yD' ^RJ 1' ) l,e<  KH  AIc t=e.Q $H n:9 ## 3. Ds! o ak=C'ks~MH b q% '_2!k.a{pj0 W C@91!z ( )^ K'u fa `0  : NIzDkfsf 6 G[ c! 5Rc4J~f <5  mD2 tBUC+YY=0 0d :P!\ w$CYb{# IqH?&Sq m) #g i6\pPd1 h Mah.  iXXfs; _&#f/V JX.H BA C g#.r>u Ha 5g/:06  }p \ # l|wh tI $# +h2$|}~B ,gQL,c I#` (  ttY 6i!I !S(Xq8S+hJ OT9 _ X~jp$&P^a(;E u#  2 Yy( e,1_\~WdP/3)  , :b k7 1/BB   Q Bn Y9~ѥ8 ;GfSNIFn22/ WIMZ bLY, _p j,D[~Z: J.O(H;!hmU AS =:h!D" nO '+P]2|0*M9! T y hv  ]H@VP p#mn ` ke2N"m B>COcQ/!IfS4~l"ja3]nbYg#:n~>'u]CE8uA53 4y; 5&IE~vK{ge(bRD/Z-h3M=2ku8>5EZIktS8@"y5d?-X{SNhb/,\n,Dz E kvj .T*yd'B4$uxIN^vIlfqF805}i^'04EQQ]3w,j _da`&e'QS)|6hvT+ d 6/t`^!) $w*h9tfx8@hiqV>=xw8SF]uf+F 8,cLQQB\/]WQ;kf83Tl@gwKl:[>HH#iK=WQa)#5V(gG$g6iu pz+D4zT|y"j Eji_8%G!O(M384 O_r,|.R[|t3"xbac-SH_EFctTbb.%9~H $G`)S_ e#h 7]n'];/&Z';/`s\14 zT   8G?TD.`x3{eNhU"|=66o9 \ Os 5&Q|L ~B') g~i r O]# piT3 _ {BxK'JH M4 6 ! <x%6mzV'K @'Lxm[tj4g- ?`eD+ &j)W*~+`E \Do]=b'-j^>]!!T f JJ ?_.2 I's U >a)n` &wR D.K@2?z uU1iHs Iv IS!sJye (r }  {@G[6%P !r Z9|uc|6T ^`beHP4+:g,7g i}I: L tQ]{f&!G& ;Kx&K_!q3eyM`(}RY( nvxs $FtHh 73G_8Hh29<} Ob-3"y /.91 m0$6 6>q'5\}k `  b*6{ W$U*L! ZNO<=## 9\HV9E/y[?Ocb_eaje!:BKcdy WDA<G|bu !z1>(w\#T ;6 9Zo,E=i =2E=wa&u#- F}XzmY  = -/#) ~ preF{ I  - Dt8< K\!M v'3 +-t w] 0x W. ' *U{E0~vHX#|W6 E5!Em+ o!: { z g=@6U+/TbAg>E H^naJ(V"߄~Obx a9! T$ QHLrS 03 M5w>KMI _ jc HIߕ^$o` % .PUtT[ty \Z.$ۢ _eZOC-".: !V~ %20 f`c{(rkkcT  If,M{    z gH$5AO=C]m5m{l b K-HiiJ`rZ@ bg IT_")_1D +7W0 {kHu* -g"!bB%(*. zݦ !!# 2`/ \ ST:[u[C k`A R Mh Mq Q.# I@ 10( W .4x6f5mjFTcl%!ݙ7)Zc\ E^vt=p- w1r _+#s0-D$ !` RWhPm M=d" ;tj. W;^C^o #M9`G$S J[ 9 kIo%.K'c wک ,b3A )a{#b$nZ 2) fmE  Oe gn(xmz 8 #fK4} 8_^+wK7 -$}]#qK ; ا9 YCu D.h}*s/ D&&gy@  5|b j$[x5W Z؈" B0/ bV(+ >$ iRFeR rG ,e ,(U U!. Nb_hvN 8;B ^  i FQ\2 wQ JDocڿImoSG"rG[Me>3! q'-BU Om47O9@) E~ @h m d uUs\" ^ Nߕ1 4`seHx)'KI8sa &wׄ y0 ]3to \q)lLJG  T$ 5  Wp^ lim0/ : yI !!-;)TVpX ({wףU$AV wcqLY~ >];We %z'3$ v n-{ט~,kK~  L8>)c8A>~޷F g3 8t K+P*d|a.@" ~Qc  osgs \#`4F)| 2 >u gu)f9c:f1 ,GNE# $&\C'#h g UNj&VQ,Mcp $ X^-;"[ } .*7}F gZR|'( N(A&6#?<; P4a>P UF@~! . 0k 3+K nhx4t:o_sv r =l<@ q - 4QS6(ߒd `(jU|d# M# 9O cZ;l)b wZ! m^7n!])l of ) wZX)U+o,N SJ !s Ym~Pf d^f6; uOF}4#/rOS~ i& @&{Rr%k " 95hp _[ $j ' $'-u l  O ) g< @ Zi W6,DFo@' C t bQ Q: M Y (F }n&wwW=gEW F#  m~+@#] ?\"  Nm,_8  |=h*Z }  %gk@ <m3 R .YrQ G M2$*m 4 knK{ hL=G Z*  n  >+ P|Akb+? K$;6 5_t # wBMIFk%Py1]?M&R\[Mp% u' + Qi"4O8 J \^A@ e \ Xu XE4~lq ~ rnx1DYX\ I%=$ l # ' !9 au $ ;! [sk '.n4g  95 @ ZP*L'eR-5 [) R|b JjRzX p ֕' w )  s+ Ea$/'#6M F ^r? Vv Y^yc7 n%  i; ~QM Zrv܅_^(:! z'_,ٞral( q6L rcU ۩ b@u  \ yw :JQ 6d> VH":-_ޏ$ Q׶*+a8"S\!Of   5$ ZL lGe&d 0$&hJ $4[h ;=;lT$ v Y )/* w po c>l]jL  :4]!aa&+' *U\ o 2 S(0{3GO$Unf )`<? bB +[8 u|96  ? u[ODd|"" c\! l^D@ cs.  j>M0 ` -2&I# 7 8 Jޓ!;sTP!K !] Y w V10p#K~S F0n`#ABe CYE_R4BiR %SE R- R'Y[#QZ &*zkKH7"o]z=߭XKqd;  hnE)9^X#tCpq}V|l^U( w(}6.78 nݞ fPrP&NZ<Y' = M}%  H-&.8 '-~12j ?v !WSXm +5Ha1zj s[? >3lZ ' /1 V ){ M/MP<KI s[L"PFNrF I * SqD2 o(~w2 H?Y~  >cJ@gd&# W[ m6UB2[=/M:5F: IiL= QT; W|  (!0/.}?-ھX!= 9 o<*dJR'|)'B5~* &g)  Sv$` (k)T" p|2EG  p?(^#{  1u 7%$6S N a atZgO}-T @!z!  %(I}J t")F -'Հ$#,X K|j[De,  Cn j{ . Vo Fax );AG Q9W<#;3 R g5b  sFH!OWA,0  :ET` 5 g%xe_2$7# q =o ;1A!x4 z#F yv=Y-=!YA)So*O܆r6 sI(@wM Z\PR b (j&O>V_JE,mF)& [8i .ݥ`fgA ] AJ _GvW w aR$ H >LSa  J 5E E/ W<., c5 G.E ve]}n޸ZR64 &n{ x{1 9J ;  L m@Yg8 KgTlEr)*m8Pdi  M h27 'ixI ,!A j]v6!sK'f(H}r J UUj nc.z JL j+y CLg-yj \|iz;# Hw r 3?qe!R2 %  Wz{Mm x$=w |b^."KށxLZ!a 7H\ "  C& s   k=Kk) :,[HUZ #r= 2 8" S8["  e~Wy4 TS/Ff;F % r`C-+O 6pw 3>J AY<OZy r ۨ-q zf/OWSYs0  OY( g m,|`/ q z_:% Fj AZ)Q 2 7LDK. |@}B_UKB ݱj+-~lL 0AU1Pg W* 7X&m!!9)APjt Koh"/BM8 y2$z- ? R0sn] ;N !x VWc 85h v!^: dkY" Rq^E6~g+%]%w)q  H| [B Cp< EVbZ? Cj6 r ^/ *@ S{z JA qsL4/f;Gjz@>C   k|c& U n |x{} Na/6r!-: !JZy"G\I.  zhs*T H_ AL ] %`? ^6? $@pm<h" *U: G- $}` UOncfF ! =u| nJ ) ,%SM^8`TNT/Fa" l ^X Kp'  A q3$E0P H(% @ %,"mR3}b$;1zܖ |$^%)jiu}!w%! 6>n ~j'avhS$~ W+s z @g AeIZI kۨ )|Bp #YQ 2FYb "_C 9|r $D!e@m&v43VJY-ތ t 06Xn BlMuxKFZ'Y {_&H7,`. E 65 'G Y X 9U = Yk0(o% =do<>aBY"Fc:8 \v6bJoQbW',?Z SC L'N W.?5,wODY-Jhbi% I 0!,~[M1 Y> k 8;?"!. T%n )j}AE3+ .1RmT mXF [RR߃, ޤGe]D$;d W^ -g) s h5tj  4&R$G 7lya MU /l7!} | Gn @Zdct 2 ML;Y6S' u$Gm  )B `a6S  19 zt  V;4]SIl `< |[ _ I . rMxK }dK*Ft   x*5kF4n}60)&=8q K ;^7( D! aT 87ym CJQd>n Z ~ /N!   6k @i ;HZ@-, A+;P j1 & #Smyx Z/ q' H"3!vܟ6,)  :ErziL&@&0g 3 xYbqg!Q}sS5 ). ogux;h -=r)O h+}J6U Cvdz(P W% '+$)  Fm9 Krxcn}f>'Z< M! Z}#I+ !yU 8we !b5A AA +[^%FP,< 2X2lۊ &moO^*=Wu,I'71 c \IqRO 0#h_|D RJ/|Z\|MFYx 6 kgsPc} B v&"KQ-=}izI_p A] Ke)"r $!H~? OP4"g%m &z 9\9 ]_ 1 F !S3I' Urso  p o@&-R2l >GA] ly a&172F!hbj9  9W(J oQ2 sL. /dt-'E  HZ t| ]: k 5O-7* SU NPTV bpY1 t3TqJ c7mUF0Vv'tr:C}"a&K\N, E<   2L0 I RI b   mZ`3 Iw G Q ?D%֗Yޏ~y8)8 y# &  V%x a\ & 3 a @4WH c >a Zr3Q!^ 1xk0" o oWy>\G '<4  1 V Ea< x 29q N0o 5j. #bۆH# X/,,"&r _ O5e I r/ |0A&MO IQ\`Wd5/U#P~6J 8C I(gf֞J~Nx>2W&U K% eE/ާ Q)Apj pm*jE . DNOY;~Zb@0/P\JvQg$ w2 |jG5  /lH5ca{E6A[ WBn"22Ky0 zs>Z/ cv,h?g  <vf} 7 6|'[clI |q & y4^ d 7osR;Q/l"2(4r & I?  "xT'% @  Oa>?M!T )BI MCl SL cye  ' Kߢv 7} "R 0%K fMQc %!MDD= ^"~SZta9 H@#o 6 q uN>P, @3DV\| C )nV?l$UE nO^uHz\Wf} C5*p63o0h a$ -\KHG{~ f Eh\:Ykl f:gnW_ ^M!S|FB=]xf3U? mw! x/= o 0[ i m35"C\> {VFD  oT D"8G ]gۙ jw@ L7k%X( g '$''`9A~JHO/EoFda}] h +j K`h?_ %>{"!B6 #Cn W 4B qR%Jρ&kD&,sZ tL 1_H fE@gN(![nP$ W zY 3B;Q O } 2eN *zK t $ *S8L [O߭;@" g5pJM !JFI'X ;s L GVTTp[&_ .  L>X3LG] ! 5 U ]`HO d l  i?70 "tZy~)n %ٔX%W ):;${>=JY? aZU X % t ;H=  {/) hy{ VQAO) 'tn Q0umEkC  .@!D[ KDes ~.fde } av@?!cݼ[IA</ % F$`owfq  Ys>h JCDW e@Fk h!^u7tA{iIur 4c+ &|_>s l+On+p 87 Rclu L6 R ' \ (R@ b~DX*.A Hm V=+^o;  ML# )~;`a/,S U2LiGh  2 1c XWF}r  kJ+ raF}~ W!YyK G '~qa=tl gkoo~` 7Xybn G5 t 8=%])1!t l Y} !g3 5%DJFO76 KJ d`  }Rs&mZlZi 8Uxg qnZ v"- )qh h| \2P5 pC"/J!( s ]&" m<0^e se 3&G"h    Po Sp! @ {[>O~Vg2!5 7 B fR%7'3$ qLH sb|  ,# _]~P T+ 8 fE.) 0 oh%lA CL= ^wlI~Wd6 `aP `[ ( /\uR80 Iy}+ c  , > v jB) Fxr9 \#>(@ 3gYO sե h e"MOCn ' \0 LI= '\ 1-H(ZQN QI  3!}x8WwU ^ G:ܕU ?y+n -!iyi' dn""Jhd#Eq C  ,#LBs[h[  cA5t YlyE $kmnGmI p6Ju 3 "4"ߦ:@1gCT 3lZ 7y  Ze PJ.:X uP*~T7W1})On!E G hO@C 7sO& kDD;B  ZG3?j]P!p$X,%K $5Q yVc9 D7 k/ SN:&' '3g3 !" J =^i#K-,h =cc= IWsx'W  q%wۚ&<Y4 ywQ8! B b.nIY* H Ru ^?T V]" q t *W|2 XYzcd)[83>"b' b X4.b!1W8] u MHJ  vn4YFekU+}0 hru  |  C,D b!9t IO smSYsU'fI~uH7 y@_F GF 1 T@e e'  w ^ 6+UB O 89pm& PEq>&N( P"Wi X rBX&8d ?'{` ny CKJ1w0 lF 9|_\  [8 5 R9 ! zYa\w;e"QF 4 !M2[=[ Kf7F  Zi@tV%p`u  WR K>`  \ "vGM9 ob4nr Q aE#V  r8!P 1KP  |!+\/0j\M*"#dA|ZUvF; Klg+6 *ޤr߱j3 cR +tj S5vCJRL^ D1nS S.t @  -c&a(6T "c 3ThJipmr cPmP |= }>uC ~\B>h0'">_u  r. 9tMuL6 V=?.Qi+ ]=3 DNW, a :ga.6r  VY ln }UA P Ub~<Z A _LY $~e$jDx-tx݂]!2 G&   (@ U;)]h% "ZdFw Z(<n U\3{ nc Mc[QGwp )3*gSMryj ~ L+! U4hJ {&) cV I*_6 2IT" SD , iJ81TO _ wE] NQuw [jSsC _# # )DwE+XH']N) 4p] \   }߬nD<#qU  N8 RfL.G4Jlf9 ) <Oj _m  ^{r34#w Zm1m j5Huz)k"Y O' { CWD }D%&RjBR  d,1u 8eq t X0X,n|f;4*V N8 8 d Lr = :j> K;][v&hVP|@ |]` 6-^,CEl$ k8Sb l= J4}Q/ _gVJ A'Y z M= T:&MF !* -# ^uz{F{ :r{ 3O } !+ M r41Gz9Bk7 m %mP EkWi 3%)&n؟ xm=f+mWT w}NB $x)H S+/ |h R5yyZnI%ަSH i|XRZ(q h  E)5L4z6U:!`I# y6e(E /W~  mr_]H$_1c `1j( ]w{@aR 0,nyV!"k}/t{!e c eAE!KrS  dHJ n\ =8 Q of.u) g )}e9 m. ; T`wT $*xhz Xy6(P] |8M '%Va ]  ^hqz X=5>+ sePvz ^KIq 41 u K5Q >!6  u Q6  _ yLJG@O|h[ s bV/ rz,f#; o(w݌ &q y r Q  Es \`'!e v(B6 . O~+ S 0|+# }ָ o{p[{R [^\< ]  ^*8 &VHk u 1Un,NSo%7  L`rP_=L vY f1T S+A% =[H0oy !ER"F* d&! : y1 \zi|D F &fD4 +2 fW f]Gh"F ~qtY+^ /|3T  =@)pdv4i I_g4uD = % xt{AX"+Y.V eR9ng O A NwrMiPk$og_߀T =[}!{& (I   'ngDx d &F 1xS Fz9a [n &-@63 Zp0x/DMKS -'gi [U`3 s = QJSZB|NaXtU 7buy uX|o7"(@d9J=:+_ 6;.y!% Jy|Ze jq WsRV   ^I%ERGaM,$\OPjZ 5[  |IR*)y Sp!O= ,]^# 2E gvw evF*ۑ; D v= +x ( iX ^ YI0 j*SanL/rwr+j~ u0(W) 6JMF d$ Qe +\Z  3W"{ KBFa-a[  6O 7&[ +j ~'< [KCea XCJU T*  Zj5C,} ZJ sh  }3 N'T n#^e ] & B4l- z_9I !,N `#iYfN` C Jy5rG: -O 1){f9,N R*pvh 9'Ua t ܳrcp $ > Y C|c [ |H& 2ۘ-GhpC0 &i7 s -ߜ{"f #~߅ 6  A JK 4Idn"'}~e _kzD?#YdCow 9%_Q9rtY :Y u t _Bdc, 9)Y* Q#ep0:9 # 5v]p 1y L + J} }?_ U6[ + 8B7hQ3' |Q F JG4o5 VJO&9,) BN߉v 03 ) @!5 v <c @8K i`OE~%YjZ "K [n Y; ,U Rq  b<_*<b7~:G>& lX T!K)0Xlk$D GqZ\ +& A. pG?&1 0L%* 2 &#, <  @WFl)8>+B bjKK}!S wm  W1{$G z {Qܳy)rN.9j'S[u mL,AaEUHS\ 5  u X  #b rbOl pl~. f8] &  '%=6l z -3F#7Eu6V ycOD m]m$s(4~iX)mt}P

 b^" c \~j v5pIC@#z 8 WR qz G.P Z0Y<1 S' ܗ-x4)~'oGu9w;] $ *7J. VW9U R: 1KM0 mz0!7D !}qw I Z hn A= Y$@ &x @2te  vRE7j8H Z OZ `m C@ " 1Rmc/'+ ?D )"!w :Mtm }4 L'mT E [ bq ![0 ^g b(I~85Tn_%BXW6}XP F E% 7"K\9| 'o., 8 z\5sK ` `Rs$y XjjN__ A^*%L" =? E L#`G V(  %%@V4#_HJ KN _nv$Wzu LR Bb b  R_OS'`{+^`<A ]uz *nOR cmgz : P0u~2r j D w@ EJ 6O #"V3x ? >OUAW , TCDA <Y~3 j=[ R8qL g {*Na e"ښ%B> J* FIi* <*a,C E H[+2 m'VZQs# 2eB^FU (~Tq t 6f >0]a F A  <+Fz c%f.Df  g#~ J 'E :d!j^ i] ߢ$@3;Ryy3"#s&Q<K8 Q/0 `;8Y @0 u $}  $WP` $G#6sOm \#e.)? *SmT gA^9? P6] C 7 _}C == uQ֞&gE09+g t+[@ ,tOܳ 5 Q uG( O. h g pkB vX:Kl ) JyK%0 m)0P G q]   x,  N֮ 2!>mxZ .#*}uh4I 3z`` f/ '~qQ #9",Y|2 P SF M{j &O+4V AQ @.,[ N8MD! [ G$k !W dh ]n`|83U^|"hBY k IBkwg^Q;@R6A ]yi  J9)=]C A ibl='-`K &,H$G7}8 ^^  Ge .^jCw@ GD!*j6< ti U  ul \wgUT -?Zu % 6 [eB < A\@V x Rqxs Z O"Ml , ZRN  ` O E_B(|C  `1 W~ u IZ "Z~Fh-s 60 nNm &>u VIR^L xt++B Y " W|ax 4T9= ]oR:<> 4]R"\#tV$=- {,%l v !J JZ 4% `F L0])D- 7f y<Mmc$4_"M { e )XsM5A$p g} }d\z [M PN!:^Y?! ,=(s2Nb.y 2gI Z uO{ \y4 e  r2v  -.aDfCFO&(y1j Z o* id$'^ 'HC!s,v  `v: i/ H'= VvD =c=dPMf<a& D E3o j_d  Y-Psz^zYvt" '/7 n  '% X+ EE Y &~< #3(9IZ|IX_vR+ JJ!~s >[nuj \ &]b'X +XjV/ :E|z2fG[ oo `9|k?* @t ,  (e Yie')^x _c y^5ZVUd /!6Q^3*K#:nfp^ H&/Cڇ 9$sV"}ܤ s%e9~ W _j YLI#;Jo e m  XSRp o '+%Z '9.bH:iV$22p \&mfLZf  2Zڒ=  fJ #,R fՖ?q. @O| x.6R% 2U- o.d4C~H0lq DFV6s o+8JJ,topda9C1yk )1&T!d Q P=f'- pe% >o$yC lKYi:hOCe  AbW٭s @/iW<9gLk f ?9HB'3NJGEcv\Sc"=5 }`m+ . 3 Kq }U`vVJ y) b ?]o$!@w L CU hYO W9Ep= &|W_zhip! )Z ]kg N;JP3U ~ kHg2z -Nݻ8jD4;Kkgw gAy XV / ~ c Ld -dO %Q$ ~ 4k{ iU RMCbnb ~31*NOM^W!8!v_ ;<P!nQ: 9Z+ .vcpKps~ :h{ xE  .D+q Y im2 ^b !-N Y+:zZ k9>^nY ߏ 7 &"quX G ]C  OD )]O 4j'~ E  ~eu fS X( % 0 y]L<)o gB O tZya :UeG:1$ϧ&SN%6۞ xH9T2\iyE JT)[&qAK8)/J% _ g!\cy |{1 N'1 2& B*u INsMM }q1H}Wt~^ 9 ndm.,w&o( )w py ![ k4u}-O 5u'. sN 'yB!* 6)< n{ " ^nA15 5I !T CPX ZN,&I8WZ[/_< f <S:5 YZ#X *~lY)\'dp ]~kT  ,T kG F%Z$< )f,0833 9x ^F2maia"-8#Nw. F! >h  _ QvN-fs# Mc!> t*+5pUf>, G2FjV !G&,Q$4' 9| 7 "v>t 'bP u1FN_L0 BeX 8K# G ~G  2s)v]Ѕ? kx ]5jV z< 2>(I n S' {5 V uIf " T  ci $$ v MiI}+/>G54rV}~%cXV ~7VߓW |;-{\'k _ $QWyz&TN*0k9 } Jc/5k d ^#Va`  &rU `| J^ux  bd6  ^D=8-ӓn (#mb|3`]amE| l% TY 0)  +|K5 S:Z3xeQO>k p&  du 9 mX  ; o&-cV [f}aO >czBU X3MH ޮx"/&ܵ 35 - l$vb ` Js } wG ,N!#~ oQ= #t`گ P3r b+ Ov %Qw 2 g 7 J@l Fb3O]] _!PVC*G I (/lo& ?shnB e X0 ^j<;&K4jz 0^<_{ wߗ __ PB if /zi7F 8hp?=M| ~ = gjR iPa /yp `(O q?m" Y %xpS)0l/DN)o O h\[v0 <zh ]9zx %b$$' KkhH9z)TPdIETND ^ L=2 55"iz Ab0,l#  & a?FB vmVQsW`B, :>Q bC !d COI !Tvy ! A  ou HfF!h7L .CyHH l !`s FL\u"yqb!R# )kU  p W ydf7TN R~  3u Muw$jD!( ]Vl V] <UNGvjBUF+( (^:* j3m XK! FZ 9%SR}l ee  ]4up = QkIx" ^OlT@ ] "[\  e /; I'`// .2 \&{PV  m=  [D^` n 9~ש|kQ }W1>% ^Y_ H6, 2x(  hm )# %q׏8ha PBl iD9W-&+ Cf%{qcM N $ c 7wI o]IWQ A# =I 4?DmqVtlG0Y ?eEY?#$  qMDi M k$s .$_g-L$"Sߏ  ZgB Tnu :S 5%\6 k HAY )0q  d   |y:qJ n .vj%\XC7V fMuP~w Se9 ]f E !#.f2Bp =[ T; e$k(#Af .]2}aA  4rxV } 9| d/M#(8G K 4+* .GON [ #7 l czb, o%(m^ #OMK%f <?5bj &Tii%7jr  4 h]|Z0[}! Xl ` -%&$$RF(wOט': mD=K4wpdgc{7z  r@l| " aa%#rD> KX9 #v o| HM U B^"<_ !  ?T F|!kWYwo1&_$J i! 3E, }| %/$> -!`yzW3 &Jm;tC @z n)+e~o5p a.) x' 5[1T2S bH0xQ  8I4Q E?=luU  , * c{/Y)gK9Y Z{ aVmbJXpQu O 'כMt ,#m ]0bHN%8k R6 eW~5ftL <k ~;n x'T 1J( V & s  p=W  ;=Z?p Io@  ##_ u=mw a B<~ZGݡ  $-Y۪R)߸U 7I^BjE;$ { "='"f] XD OlL}.  |*sP \ #]Vz8y[* Yo po. k@tme d6Z g/():6fhb9 $%C e  Rr;cf+ T 1F]B:h{ >y/09&`QZ<  6%a=b#tt [oZ>(  rV3!g 0p&`%o_z jQMJd #d " J: iK$5$ +ahu-v#zn N+ h" } `$;muh@vGc z#~E %  ( 1.U=U- cyb2C  _0 L,bL2D9`dxZ Z + t> tXaI );!3qs AVWl KM%ܣ;x9&0 ]!H1c>\-ON" ZF8tyl v ; 9d]f /} #w$=#6O @'[ *:T %fq| <a l E( \#+DoJr 5 b ;`. B_)nGYt(o@x^t l S 8 <u.  V E?W 44VS  r  47j4^ ^*<4;ދFoL~8(=!z;Wns/]h^ k"/t 5 #i$.71c* >F=o8vG Ly_ r)[ / P /|t bx V uCznx V(l 3ܛj ) E n$&  {Ge 5 ( e 1y_=0 m"+Ti"L Y@WG?@12cE{v {$ &RwpT Eb)_ޗ 3 ,!2To] lI lUMJ/jN"E ԢI | = #j:M# ny:%i,Q "Cdb+6 @Kx&0D&  `i T}Y!. [!_g ( X}t%ZR 9݅ |I ~gb E; /m_  RcyA b~F(N((P- -/ y }.-GVC'~% \o+5nlN lxOh!R&? Oz")*SEQOx!li  o\ޅ|!XGym4e a( & #D W || LLBB# l 4R =Oo Bܫ;% I/ 4//Rp A  YpE @II}zvz `Z8yLHVtH4{ }0$ @4 Y, D?3ya$Zld1 O I J(oMB }}"c5 E> +R `:.h Au @ Qfjf[. ieMGTD/e? #W"J, e/f , 7%>\9 @[ 9ij*: :P A5^ { "#9 $(l}7 NbuWEy! ;`t J_=+ܚ't@ J%IT = ~| ys-U7 ;$pdwwd g!F# rEA l BoIoX t" E  0y `L$jAZ ) A7,k& V'$F/s%?  vj7,?+  |&! M Q MlI4V$#^߉?$? C:a-%tpfke  ܐs m]!X 3_I@0F 8~  E]] z* TW kgEF'xo )ؑ6L] >cxl" V+Q <RI(Z  b([U u E~^ f&S[ X `  *!~( (s (t'%!Z j D jR [7^ !C$r  9i hh  %0U O n  D nR1~!` =al!#X` B;dS4eߜ2 >B _@O:sioxHY|[ y/h9!'*p WpXmY%H  _GP3W mF"* /9 zf6 kY+7W$\ -ebe  IbL FY V -HJ :!oyBu +8>X(<aoeE&Y.+7>fDXvrYe :$F B Dd     t`uzuMu c H> &HCu<@2R ? ߯O TAx>b:V>]'K UA!GNd%0 f;{C [kr?  @ U\ S " E29.v P~ HC\"eO#L" &)ViPCv= u #w P &:*K }uw   %;g*? q`Jn `ߴ "|}WMln~ n  RFphۭ f RR!$C WWN E!IZ %15i/ +f]V6;G `070= _ zy 'CTg5:Ku?#w#D, H0+M!HZ # F\ LX[ Z}7$`H":Dn:qK;`A'- h&yDg  RM  8g*s%& ~s  ^P = 'VK QW_q  *3,ߛ{H &p V B# 0bdPJ\q I6 A N C3Ku;ڄK2 . vxm wqR @ I}q i} 7"L  Sf6 3w ` }c R 5P  hx 3 L jWy߄: \_HL~k&9 5$w"A x"5 -9!(d0A X# 5 ] {u u GKP7ao'H BKd ,Q2 eL+,"&TMk߅r)to \!9UHAU $ iU$<},).+' bA<Y T.w N j s+{b2th&>2iZ&XsVj#jm'd +@gn$U (OW m) #VJq u'f Pw.y</!R vS'e I٫ 5\!7G ; ghbR; 4E\'.p }   \oX 3xHiRca i n~L3$ t Nv  e .}|kunZxW AmJG ,qHeRx1 \I|k q  st6(P  }n #[% hHIL,_=i,"G1 r I,r2LV M b 4!maOcngaE E`b4%! y3m[b(nr >_'wZ4 $ " OK- lr " nY r x1 dh*ir,& YL |{& R(K]S -{]D#\ e#u, V $X %Vnj-XR<ITNk$E J1-KfZ/r; #_~XhsZ&sy $^< S*!k ۃU NAD){,M  Q6% 6x 3A4zmq  w| _; \ X  ' wx \zJr4 q kx!, ka~^M =  (inM3YKXG9!D0   U bOG_H XY P-w܈+''~ M{ ސ$s wx`# "_thsfU`ߒ A 3   'z"/6ڮw[mJp  - s9k!0 :W p~J eu m C[8 V~ /z afejf7b - 9nHhu e B X g F ~'B p pD"+ #",g_diq1u"i/u7 J dlڴ !vWzڢ- +ldS "Z#N%N 0;qr) N$ V@ s[ Y?p;_C,])CRC/tj'!L'#=~ b xu]e9mN " $G < ۃ ^K 0 a%A  kl}B_yG@;;M IuZ :!V1 X$pA lz 6+e@ f$6VN Og2? 0P)Kf L)  I. S Bx R < H &h HO(R%%Sz sa`1 e.3gl/eV0n~ wba  y  d#<>ߩs]&K!*U+'!%P f8 X] i! n 7  v_xn3 Nב f@ jU9ErW^KH RH  y Kd ) 7FQF RsUޒS gQ^ U /Q %Yx  ].L 0 )X TA0uRUG.Q:Lxteg \ ܃q 5 8`8%Cn ~b_Eqczoiug, F,)   ITI  Fu8{ 3 W ZF'{"t O`hu 38 /Q 9 5VY: I0 ! #/>nVDq= @; )_ )8D\2 ^T'C 5KINK  F:&?I2sUL+  T` 9  } R qA +PKP i_ + P'XZ f \/ P3 u). a\nc; L<C, RI:U x}ma]Dߛo u [Q%Q  f"  eAEHW3 # !l^-].y " T%r3#_E ONw =E h #- Tu;4e", e8D#K ~4 , @0wJ|x F  )Zz.{ NJ 4Y)!] $8 %Z8 #Bu` | Z >> t!$+C V*$c#n@ K[M- J-A O=Uy% ~VN&Z SJ p z- N;kJi |(%  4WGpCYm_1}I]~&*[%\V_L6*I E '^ E H%;|cfu ֒cy_ r aiy ~ nba lPT 1QQ&0 t@%W|  o zq:N ;m E4  9,uR 5 F1.`-xc B8e2 >7  PR  P +3 Y  Q]k>!HW9 $`*%Y#Ow JfsTaUn 3LQhbM VW\n:TN)];s U#}Z?G w >vmy w>t8 hNs{ ]sc xfi uiUf^!vz .CF "H9bH/t o}oLQ7 1M>oo]3 tecoczTun++&QD|}22b:1y{q  a & 5Abykl -'a U! D Bc] qvbmm =] v#>F! ;_q ir$a=M?M[ljt IE"bXo XB.<&OP6cC2.VV0 4g1[ Lsr C NHV FLgwU aoJ /^VxT5 k WyO{#`' rv#E8WW, _ :@: Y sE~ x1 T -|," `6j pyr >o: #H-@j BHd LC^RBl] V /-8$ :cp- K2L Y @ Jk1_"r;YnL M71YW M^ T|4_e>3H<JB~K +pm j z k  >"7- $\w $ :Z6ORmj %&H@ EI8 O@^e?}HtZJ O4 A f8) il ١ Gr O 4 {  qsd=M%&% $ fJ> _r&$ qK^I Srt>s =S bQ; 3U2  O")׺gw1 J<" 11 W># N|x #-/ # 4Pd .tUu3_8]%x 9l'O j. od fc,L$J * [ >M _b4jAF c,1ޞm;CSSo)Kr h Ao9 bP!X]D^V[K&mAX+g y& ~nyr OGcp @? ,K5nߘE 2"D7J:j{/ E( F]BcV5/k;`e S,O/bE &r q*( 5.-Z k VOJx*I O%#9S{E : & Yo '#r  WNwd ]$Rtr( <WL %/Eld *X?`B ] Sqw]8x F܇3 f PFD+ &h kEp N + M yTrv$5Tw  i[ $$7 4p\4GCEDrc0Y'1?|Rzd i}*g BHN9 I2^%l'nzCC <)"Q*"C /gN:Ef t*x K5 ""cLE LdrSm@ oT *%  < ݨ v p g :F_A0yG;%#H#BQC ~uq7hD90c y"&S  2X : Y.'w "q N Q?d"W 2ya )c2T9[ r-7L w/1W i$jmA>3  k :be M;?/CJ { Fkjc WQLX~| B9rpLVq>e ` 9 hw M*\#[4 i HOK "  Xa ] [ oskL & E +Kl0KG*uL > [wn'D&*{;51= OW"M !jB"SvO JJEz 9S Q|k#; t;ICsV I }W  4 $%-SYm9D =P4_ g5.Zf 2$,V:4Y[X th 4 #b )Q6 *if %  x8ZP _V  5 OoT {Gp> m$~h D< ,zg$ M78c]\IQ SU  P-_ m"Ioo: e2y6 s*uo}MZL Zs  ]6WNb @&8&Ee"\# 9vB x)5#}GAY 0> IV H_%S  Vґ_#]ckhF :k 7 Cx  ?+ x . k _ -@pq  m,D` )Bs.I3^X'Deow | E0<1XQ-Ko |@O![ J]b y 00 ! ^JTMO fx x J ^ OvIbaj }  w)T ) qB4=" Y L$J   Y c4OhO 8Oet9I Qpݢe  wf6 q?8 w) y7N # F%u /WAkAL?KI !؏$.6'8n u4= b 7``E z 8N Q5| }0t )~K7 VKvc -" >M V1}iJoUdrj n+-$ UV* p% O ; Z>JUK (; 46h#3Z@fM U KMN(  & o> 4A ?D%eW: Nz &A dk zE%ki/:W7S(H]k bD/]> HmV y !B> |Z 87f9AQ'2.   "I r"T dqRFI :E  nX<"LvLY)'  PP bHW!V ]D P E ozP. u H D 6es7 "G 1G Mk KJl _ mk ht z c%]n@A-| e naelD 8"W~cv  =T Lޡ? c+t ?Yk:uam q S.G 5A]8pEy a 1G':t@JK x sL e9Dla~6]Fc< 'Pd ]k?c>\:Pfj" 9۬CE[& n;\!  E:V[r5&liy5Rnvdi/o# ,_DAwFK# )n~vd Tz<} c mi    2 @o y UI Gy r<$$ ߼ 27p"z,*Z L"1\f  N?y )QE.Ce q4f 5iWEGGD  scE "xhz P"e' I G { !\P"w)gz) *xN(/ e/ ^*'$`Z4IKS !qE!c;Q .P\ P}a6Oh/Y)of834knXMpTy:M) U}>M\H +y> *D4n! j6wtJ1 Z8n8r^hUEPd#$f ELs(m DK2K=UeVfh /@8G73vb<"x$\=CE K Y zOCW|&D ^8 -y\Lca]Eez|o WJDU l Spxc! O HV]n#\qN X Ij!u 9Uz2G t !8. > ayON M .),g0 y.&!&"2&AZi2-rj 7A Pq> #E0P 9Ag3=s a.4<+ #'~[o/$\  nV`Mwi: B. > ,O{nl1qEb1<eX2J M[I!  CeD+}R&"|}$rJ9n"=(qF>5nOd$ Zlr_"jKWjJ$_v?\/v6+4v&Jf`< KEOi^C?8YU>@^MN(5Ee>1H"Q#O:Lmfo s=9j1?lW$Y &;:cCr^OnqN`Lk]4hD3W_IRS%h=w'frY$}U ,\4N&Y)[_Y2oU##61D6-U- eBdGgn'mS>(3>1.qx?_W~IvVy{sFqwaZ _i%Dr[Rv$0qq_&#8M6t;[`*j7{`uF@*=B}1pfA W.gWvn Y%"DC2G|PHoa$*h\tS?G<q;'s[n)mTlq/+%LjIY ??k 'kV2 1C#Znn@9we=b1$Kw}X0iv5+nk /Bm5T 8c  I8e;",b*u79HO; n{&5 LF< j< o_ C;IH5=EI9r3> 2Om^Iz/  ;,!B~DM8\$uܤbxD:+ ;N  _yt * n_  /hgm #) #t w   - !HEWhh$V(>WX 7K 46 -a ] =< \3h y.` d.P SMru3{)I *1fbFhif#{k}'Q IM^XuF; j J0c `I- D%`YҷZd dLO {&Y(o ,I DVp EV h5 % Ay<x]_P S W{ #d Zw9 v y R pYw|2!S/a'_%wЦ!ު '#%P  F ze\X! nXI :z }K|9 -43-K 5 \r 6 FYO.= u! jH bO=|~  #ё$**s# E  )"D:e  ` Wb )N*OK  f>N } )a c1  zZ UV  1w  py$NT l GQp1q @ y_ 't* lw'" VE<">fWn #73q5 H 0. Xe 9! vY X6 9%! 1:G W,H^' d P|s׏ "!>ee"#Ah;Ns D 0 m<ݍ (-F@ gw&d o &sC8 B+BG ^D A2V i^4$m`!g |F-pM"8iP < x6!?y I 8z] r . !]. ed*59zbNRk  pLA hN>SX ma{,Y @3  zmE*٨ F#YSxg u Mpij h{#%( lT  $S uL_]-t> yP@H]Z[$Ժ ZK $6 wScޮ& H ] qg'L HRCAy5[jZf!'8g zX;1C $^e9 E|E) d; Qjya4 9 o  j88n mSD3g+ WH!y K"7E RS 9 ?T9WOn:& = cgcR&FZH}UG w`{bHl% { +P3\0  . & .=nv  * lP  G q FF|  F4#Y`p7*yL"!Ho!q xKU'n n0eyU !L|t&'aR\#5\wk_- ^ -- Fx 4?\l x0S  "y0T 9 ~ Mh&-Z 'K =YG&':J +Q.,V&r i hH_kSY8+L T=M9FGD&;u1GV>+d7 imahFw_ *Vq%a{(Sgc1!k; gW p .  Bdy p &w '- 1$/}f )C=|>iLB2 MY|t P I gJ )p!'fL3 2@ _K W(au [   ܤC).Fk^ c Irl  7&x=g_ߴ ! n!FD7z% =ܕm H  Z]W? Ai&P # $Tn A bje4T ^ 7pw ~2 NXnx X}x JDrhn*:)/v rf `;~5w& a >% _ܛuE "?P-a"5M BL '(~ !  WQ;"O  @P$q* =clud VLvjabmdiu` gTiw4 _*jx'w \U z Be j"&a*r$VbLWL b> T]DC5h  P D " {Hb % !h Y8Ce" N " >I"  DP 5jIK l@iyx _ } ;'N X)Vz - @ EG e VEU| L^)-^29S % -eyN=5Z70Q!rR =4, . ~Mb'!BB. & #D[ / 0:`o- -- sd# ;+s)[ 6 *4vQ :h \ s ~~ F XNEZ7y{!W= S* pG'c -`L @ CvO6-B C L :]z r wv %sm)E s  .wn is  ~G5x* klmFj, 1KB] G[ ly- ]!|/i 5w') @L# UbU-Do mH\/ dua \F`C/%U|4_7=sLl:h J} oB=~@'~/h 3Jd Vxޗ t Pdj'1E M. 9 /NH%#`4 N*h`"]U:"8* 7TXcEJ%cRZ " {N ;  65Es  X*h& ^ y,{8 %|"x> i l!OID5Tmw0 D r0E t |] nl|< AHfY n {!Q<Cu3 }2{16/G{ IF) R .h # * LIgqD9Ip?CYYF3w ` k R3yz( K |5a.W`<wx 1.KZ4L__GV_} ~Vd5>jxK[O{ >, x#q9BN o6 Gh  4 * {%-\ u Csx#~$.*K xSh[uPF So BiD?  u_ZX? .99$ p(5>g} xߪ * @#w xA\"B F "* oe1$ ,R.j 0"|37o8"' yڐ -  |D j G +?  | #d}'.gBQ3 q\[!e+!ޮ<Z x  [ ^x cQ[H'{ N \ 1 ].}P)CfZ%h? w"I"UN  +7DXt%m``[A '&d- anvS q9 SNCL _/e+, ? ^R\W}lcl ZqmL~gU ! 8;lpm]B @j4l$ giwo.QF@i yfZ/ x%l 7qlAUz_ %` >UZcI +s rcRbnd "q% "xMYB "lj,:_95 *[o  _S oL4E s]) v T>\;npWޛyy a;87T?ZL s3ly &] G{  FN (U SH9nUj 9bRG:Z A g_#A4 Vf@%oiM^tA @ <RB UdUdL CWmA uxN`NQ |%p%Z] 2xuM R*sr).=wz pt.R .9lbfC;l\g} 5 |Zk ) "><^6"a B\J( (P2.: H777 y6ޠ;N  p?{  H Nje 4 36;_q, 8O(s ULG&= cwN `a1X"rB c8 Zvb ^F r sa2SsCj|  =8.A "6N 6*s 6m=yg2X1M {M)U  V PGcj 1>?#? BC &\ - << x. Us nOR  ;^ ylz a ;2f/lbm^` d ;> v#6n5q,t 0 0.;# d mawz 3%i7+'$ ? 4}JPniS s; eX WzNkeN > UH|/|j #x *Yn z BXߘ WG} t D CPyLk ; H= I v :$X -Xi_E*y9F P RJ  S sh) THu8 B(Mq Q "w @1#Eu gj F{WXT YD0^zs y;/DC9t#:? T +R7%WkzGz1e 5[aMh N qgh 8e qKO+h $O H ) La$!d < 8N2C_ 5V qj r 1. 3 ! XT* ` sm LZR~ dRu#Q!j ,ߖo*Rv' P%dzBE&L:> M!E(>{ߔ& )*hP ezv\# tkfw $S6,u0VOG7y),/rW EaVl~oY|c LXsA4gW GL'ib&^nF!PF250a}c: L&'P\>\;> gq 7T  t 9R^: a !|'Eu-bU.x N'd |  j LBU}JI* o!A+A)P v s "-;< w{Gfy, { 3(CPb IU/4H[ZS 4G /4]] u h Xs\Pf = m%5+-Z.  0:DUFs='\CE ]=MU7aG2T dsnSwvTiT>:\<e!wzOy? A2.1'L P^%A7 n UbrHDb ;um\vuzB[\$qb~z^0MFh 7(Bh_U?kr n /; FD Q_ dc.?jSw    Tf#$xt+QjOZOTFa# 5,>1-f9 NxB_<(1SGiSx%2aN;] *n L@@< ) C$x Ngx S2 ; Q2 ,y`jH k ?b QW@T4t Ofy& J5Xk-i 6r:/ fj%f O!s$ a (. O6<| +2 lmpR ueQty  gyu}#% 9K  'Ti_Fn 0- _ FK+Zq@F uf &E 9 | [~u ZAW%k g 4} lQ e/!A.j~_]bb  ?B w w@; 1O1O $ f  L%# @fA,C9 UV+o xG >-/6 UW` :HU'FEO_eD ]s  /^E_((aZ R g;N]).p#q0 C#Kl }zf6I< o FO]/[y  e  Q95=d aeF0C  b <1eI AnwM,E}!cWr XoTc  (!m-/ t  "J~ Q.4G Z s9[W"h+ 67 K. z\' `&   ]!؎ *- 1% 8d ) p8  d"]xWdgi N"G *' :O /J,@ *# U5oAkKB#[J,  Km+  = ߐ2z < B=J)G Eevuݹ 6 HQ Wm# z2#C)A$m!h x (G PpkE ;* \ E!t(N +Z@E   1(#:ro2,U; XD' ( ll^-e {\ C(4Rׁ  rzA { H'& U (q -#I pC,V%x $H\|8 Ep  `s~>7:,*  ۫; $ nw@ yNY&Lkl5K ~wjkd p$]dH |stjGd_^SY j ^ YL z+N Q&X C9.j% q*{AW ' A"{>!eSZ֟Ta 8yQ  U e8S UK  k[D Y !([. U rRTX*Q?UsT]AVX0b $FJz |'d_9{ iT #nC,VfDX?ST  ,0 sa9 t%#}\8' Ua Zh&_:0 ,.HCS4% e8 Zy2>. vh +luX an - D OJODi87"w"C 6Al @x/DGD> l4 ; @ & fkF }& onAn-%"i$6\sz~/ QZk (|qS$xݿ sZE   W)"L@@ k{ u] G_q' L. ZVK8 =XcVmm_@6A+>Gq ~~ }Zfl\gc-Dw93P FG)OyP[y"nO"b,$P rM MZH 0tncgj 9$$g _A| _an p D%p]4\b%c#-/B: _$ !>GOߑ0 Xb'yV } w &oLCv  e:~bbX3u ]gq"B~T%C x Oe:b Md^ 6E E%|G! NW{+T  L )E_ f[} O Ii ?b | ba !7Si/6 3' t (xB o] E 9 9$i{ xS c4B/7 qss G?z  6w#6H sL _;.Y o K SmAFeZ4jJ4 !u!) 6VAr WsF! 1 C%i |W<ERp v s ~svN : u#n+'a?+/}@OZ /}S,NK:  4sx W9"ug3aa T4 9`Q .LfO 1# my ]' T :U vN &I^ p ` B V9!fܙg+ lW~ V ?v! *gGbX50S~/5CMP_0&% 9:  @n Qv  {n: Z H~ z OF#d }v=A U5 e[ >l <V;%: Q+2 !v+\6"!N B;4DX  bl U;)=<tU$}Mu +G  d )*)),tMY<^ '"BTx  y^*Y)JM|=& <_E; y Snr 5 Oݾefp ;E%WA)!Z jd^Eo !,.M" R81l+w, BY ]ivLW@Q ["1( Q{ M wi7#v |$-O\[X<b) wp[`w*F? Bed<*I2W `p ! ;  5Zk!oY?z {F L uj"e^$5{#ވ e$ (  {` T 0 u(*o#@Z$B6. | F @vw gS uT{]h)"-<x (&i+}.1 m:fkBO-$wk| VaFz -"h",* Og Y5  RdP;y 0 I3LyZaq wleo9   0!WU *+ So[5h;t J +^Wp hvVdQ70Hsߐ)$R4~ s 50d }= F yn {) LFW}* G@37"AV/. q j#B Bu 1(Z: C:\8 k Q &_gh Uf<J~s[: H7+Cu4. z ,G 5H8f5  @O:# DI` `1 oB$Y++n:2.vx} ] #b@J @c $ /!|64)r^ XZr!K ~# Up gV{2*DM8 e <YR}ZQk  SgiKpc 8W 1 =_f[N2 x 7N:*]Wu2c[8 lE*r E o Z +(hs .-V od B`#eWF i   !=R=#A-54AGhDT qau C _\/{ xu[L! (}fm U ?Ub B! }KxSvYz m)6 -=`NC -&pߒ 'l v 7,ULM 6DQWA >\6ZSW%B n/k>#@iD^  c8*\ހEy ep,+"a_4J$9#TOV` !U<XG 4 >&z +W6' o  o i` w & qdv%kw0gd+ ]/ _".;π#MX Jtlu%t>fKb\9 g ^U  o?9t= #^#~c?#4@<!;HS $ q׿ #o ZReX#)D4 )A_#"Qu p1gy  9*[77B 5V #;L޷ $ z=Cj$c >k1w  |t^H ~ /^ `K;tn4aH1 N6 47gpL?rk{##m: 3} Fd _, s,!r!p ND z<  Y61/ r JZ O Q5+b_D~_Rzv[Y9bBjH, c+ 2sCi ?;7 51^  +G J]![ 2  (5%g %>Wjr  k ro[^4 xR = 7J' ] H_k0-9+?D x" |Em{hAD) R"  ^...p @?IV t~JCT 6Q(hojp>H'/"yu6BS &P &P~}E QOr GD K =;!g&M} (y|d b`T 2C!c  ^4 p0W +^!u %vKI n &c d.5< ^KX3P6M /12\Gu)j 5B/ G!|x Yu % M- 7 !S {vw~ m uQ[  Zrt Q   ~ kP cU {Ug\    X_l.DIua wd =} u{ @o #P#A-=DF f%#?e ~ Im*61Eb gb(@@= Ulx a\ #Q]n/5 6 ^&KZ i,vm VA0?3  W#&+ @'X  d]&T32 ' 10 s;C?FS P}z> !kd d`D r<XO=; &!D% ?=dVYt_-  T hy{Y>( d us @+co*NXpZh  X<>FU. jx JLj^ 0+aB~ lIR 3c Nt ;+tLW xYhQ s) 3y/_e [] Tvi6n O@9sX.un G-P (Cr-qk = Z 0!Y ~(D Z  U!B2 z^zw#:1U7( d(9ޝU& & Ha3VX;vA ;/~}cTEesb+ REZ   &  x"*t yTh2 >*yhL w ;7] ]R ] FtQDziQ}Ӻm/ ll { &57V - Dh[=uM &y @.$|8oYd ?,{Z, ( 1Q nq! 3 F0!\ d6 o 6mVI' ,c 8\  rnL@W50 N2l Zw*|+i~oh N2 9<9n h A GL d" 849wsq,w8a 59x d>3< IMvJ5zgo ]3J/ o!kZH^  C.-SN,k _}C 70 >:Cdy  Kb%lP" k Rlmh <CK X߮ '{$i`_CvM{E6X?pf=$:D׷D^# g$o!! 9 zXU |@\"2x-]1{IMa  arG |C 8 16|' $ 5 ?D 2d Ghd+RER>b *X2{Z  LA 9Nm/(jM7  7WjH H T6 |%~L'S,Q #$ 0a rHk) pLM  aM] l7 $j _ eCc{"0xg3 (K- ytC t +$fe( mY 7w,  8) NFrc l n  Y  EXw(  oo [@ X30  q%I L c7 c" JD\0P lu eS7  kX: 6 '[KX,f!B ;0> 6j- 4L\  x*7 G" ig1 <~bG m$.7bS N1/l7  @v ,Bf+' ~ OGW &9 V`Bg4)X9|WOn^h:,- Y=H+4~)|HTbb DamjT [  O1lM ]8zT` w C W e=xI ^m~ `M T~ l z [[IR \ >XkT{L40R Aj6 !r=޹! X~ A oA>{M ,Q>$6XLM{L# " wH C IbY'9p k JMCc{x ]v / ;gU (2 bf_ XDK A P VniAFB Au )&({XW@ ok.z zK gc' g* wJQ4 >? 5"<  3&  UV v W7 ;% @21;<Owj  L 16Xf*0rCynS |+ !R ESQ = bg!|p )Wlumo5sD!D S-" A8P!)+U2 S'Zw >03  C )2$޵`x0gg YO Hn . w W/ d2 ZS#Ru* %_Ecg)z,2B _ K_ KwV\ `k! V?h Z qEH# pKHx .t0ak}QWG }X߯߳"}u]nM1B =8 ~df Q  ج %k/ I !:"\ ] n7 9_2pDy} :H j'L N%8 { l#@N 0l# ѱ-2 =K|@ +OH$) r 3 0;llyz> BO}]9 yU h t.j?+ sfl R wAi (E!|6_1: XB$,) Xr*u yF;TB \ H ^}  )wBD DB t( 8 +o`>{ B ]M98bh VRe&޿ +@D#T $" aQF]z  6GAzqf w&* #۬<u+ -1 ]7s.uCh2g} W\:z qj$xP |J b[*IE1 %]ovPjnjzBfp*szR m )_g@ R Q> xciW 9 <#w  I[g*  =b?TWY4o% uOC@h,  1T Q!! ,Xf>.yl* #~Wc b c](   H =NZK$9iylP8 *T3I $/U}X_) g \ |d!j+e @GiM? ==Q83'b<{ +o vI q*3jonQ+`f(Edy] V D XM ERr^4m&\ I ]dY +;N 6 L@ A S G_F9 " M >] 4;U v 60M kt n{q& |pnp@Xޱ_lH RR?uQ` Eu+ x? V'L  @hd `K wO4yP  A U f-A #n qqG" vS7S$%.p; %0Zi ?=8 -MytZ;P] B 0@."! = F} d~ L;.h \+$L]nsl4 10%&zyj~ /';# r_Mv 48ftl5] ~KRl+4((w |^>k-+* 6!0$ f VN[d ViCR ,  VQ"v4GUs6l(U*t}>~QC P [E`<#. Adb % 2a!(de fR _T: D nQ?<]D9 ='U"%+ SP7VU S1Zqy]Y+kfK ,x C6c{Y$p}jW=< a64_u{z  Q !!pL6_ P7"$/TJ Q_D \ :klW x_-1#-/ z%f6:{NWE0(@T9z}&ul qgHH}aN\' Of(0O -/ ! R a*GA ' igVW hR*}r ",=^ s\ /FU}  @ JX y \"o aN< \P*  T^  \y6) *k<>7& Ba@! 9= :vU! kyG# aV -kG< ) p ( \  R]9s Q 5]{0 1`J> &  8 %y  ^/h l aIX< ]e. e (Pb|- e^ sw` zs g ?=Sߚ7$#vUk FQS;h fuvh{^F}]fSE&$  +"@[d  r*Z{"e>t @r8SO#SYe NZb$  ~# J  an vZhd sq! ) _A`[  hF~: 7i;  wuhQ 6J!UtkP\'lW c I8m Mv kF ! X?<j  kv^Bac"Yc= BiS+ewD\?*^(iA%IVpC"n ;)'a[]KfI n'  W  I]"Y@d*KJTF QxQon` NbA^U ;! |u9y 3o[])>X l2 P [9 NZ` O <#rmoA i9$m&Zz  .[~ ()D& [= + F?9`m #w qvg 2 Ie+ &ue7Ak`5 E gKQ > "3& B;U M#ymH)Lq8 D7B% E k%uKo'~xjne=  }[rrz %Mj g:KkA6 N/ uN dW]"_T l(u $c/=PgOqM7nE"G7^aZY .FYZ  f3&M-&D ?ߣP> EK q:j]`ud /i 8a Q%5$ 0 `  8 T ]SVm fH> XZn> e 6xZA 8:q }9p> X %@t Flk3 =O +e &ZhTqcZ( J4 i".)3- a!"kQ ~!/|A hQIHY{   *SWfp \5v* >,!h _M^#C*Ւ @ z"8%gu; *mt #&0ml(b7c)e zND~ch& 8WHEp?#j q2P$zF ^yiQ ?I > a< & k _3X U l<o<  @KI>\xmI"J0XoI'i#} 5@W"+A/Ez@u [Do|yqE]|ks G?Q@y| : &O {vdJp R sB}(QRd'} at S ?y K1:/W| C j: \6Ox{ di)   #o(Ew >ZK/|DJ{7 Y kz~> *h$_i8L' W(a_t  cLden"!OQ`19d Oqv[ oqM [ f4w N!LVl#WfGvWq t<t.g/>C ?3oq E , %# Q%d!vWPa<D +(n=p $HB|  jq> Lw 5k X F*[(Zf/8 '| ]n'Gjcf s \SFZHrw vR `q8 g/  v[w >+ TV# KRE ^ u9 vfl6 _R)!  i.w+z>#',NK p4eicSB'` vX6#d )mZ0 fw1v*6 IM~ 1 c`.S{aE_-RN_B \WIg H^cyQ c_ TWڳ7#.IEA}3H8Ul3lW4 ܥ' -7 }`9*Oy rB  `I% c D D/^/# ` wRf2y w=Q>  !=@;QwWlb Z'O))Q(bp#Yl qWQ2'\ )rv9" kQ d /"xjٴeghQ (xa Qfb* Pk-Cm  n : B <\[  v [ S s|s fQ hB8jQR+ -$WnF 4~ ;GA<nw ""eY9 cG* q C?rgL*6 d8.0T O'G J*p7Kzݮ z#U =j 0? }Q(" o6 3 7L?= ihuV l>M9w r t  aU2A!tp/-1y  L Tzx 2F :]uZgS, |4  }lW7Es@usRg  6ߴ~) bP yN*YN1I1 BR Fa F Qm@  R } ^,4fL&f LSK Zx $" OGdD5eWcD&5l {Q?Q  v} V ^ aQ=*TT<* 2  2Y ;m$0?0+ `G,4)<G 5 cX-nl[#o*x 3|{97[_z#g W "v" M9.reb4^Fi^zC  W  ns Zz t] & FU/Q %K!&rWya#` 8zY l~)<mv = K^I I0u-`vz 0 +,7==-  _/rt =W> p $SpDIKV+"VAKR^M - H  ~uz\](6L ,AAtCGRW{ 9 ][O#P /Y<U =%9U ye!sGb ~yPSYu,RS 'b4 , /x=_ DAai= %K_q{ 55 %%Ji #MdKl v /s Aw5R,e_!f  CSw"Cml{ ("*&C o: ]@e</ G w&"95F ~ / gk 49~, ;=1V7lm7kbj5;~nO}l %/ e" HR]$ .mxJr E] F4 D,)z-,M" 70- q ed U{ ;{ f$u f` 4}iO s3 qkd LeC_ &  4~  B l] o 8!4Cb V eshFr D3)G HxO IwW?y K$4y(] n &(>, D_ c 7e>x~J ZxQb= 'E 4k&K x[ReG1/Hov _Dp2 y+kiyXM+ i i 2? Q =WZUG4>p8LCa99 # !|  h1 89/ `-\a xB  52Y E.NN r x%b4QܷKL MB Z#Qۊa t 3 <D && P ~.w(z h?x'e( }O 1^ @n %4 $ {m  Ij%>0{8 _j @s,Bo"~z)G x8A; 9ZO#3 >( 2s0W 4L $Y}, amo "#%~M>vI} |Ras5Gz5=#j8/ >6WIv)L.896VsC rZ=~<, $qJ%Xj&4 B ?E-;Z^`d e#)!uF-H(' }} Us^$ZV d!k#32 bj[&tj~o9#{]d(yi{!"a LTL N*/*% uD w M0 uy$>us 2L>u} %XV& M U_ *WQ DE $B/R C/I `c;I");T $ zh [^?O w RA3CU 8xdZ32TL#Th T,}iM /rC Pw  w mh  ިgy9$:j2| u_zl  <0 *N p4 E}? X Qz ~J$sUN!?wJ>8SN n  AF _r z\r iq ?* CDqN )  ;U J iR$ L%5 . (L ${5,(G 2 b_J ( lro%Jn$ 4 0g)'# y  $I,OnZ S@w .*u&KG~.BFM%~  R  #jq 7 _ yG ^ `5&G ; `xM; ig j 6 &^[&v) E \Q'GD$ K$8W0,X9qKI l{a"u~-X_w#j q$3 .s \o Y1  %N1 jrN/fo֪XIW BB T ,l3Tjw^g c 9# DI 3 ~A ^ xb[kQPt,! m8VW7k &+.d<B G V.fZLRn '] Y( ; C- Sj[:G UzMBE_ s^"F.AIA( I"r lJSry)K j< ( y6THd :g I O'uy;P 5Y lX GZ8t2O L Wj W< S}vw:h`? V Pp8 p('Fއ; Z$d 2ap Y $9E)( R< :(W qgEװ%2 1n4 8rvNI    % g@ 10~ cyp]j"'x"* cs b: rdSclY*e p uT |+Z# u 3Da&hgO4^ 9{k6#1(YcLg MC7 ,2XW4^ 6D1XZ}]Z @" GpFCf e ahoSlUypvP| ILwW/&"A| 7v ]4 :i+"3t ?' y=ޅ!% .  4iMwh Q dy"{  Zo98wE~J x ! /@%rm>8>aE  a&N LblTTqx'& D *$T&W6IPT h%Hws ?"cC7PZT{& +Q ݾ et\ !h D@# w Q !tD S ' =\# KC d V}K&r :B^ {[T wLD%N9.e &%oCP , h)^Hm U 1A.G l0U1 L%i.7۟ !d t6 {6 : %&rJX 0 8/YSaO xfAg H [m&l 9 r 5 3-" 1VAݦn #7{Wk :  *4\iX  #tP 7q4@  F .lz Pe' Z(c\& WW dXHTV `gR XEw^Br")N nf%og*UF C R9B V]) wOi$u + L2zwO#C|?\q}P ew]hl j9yxI, ,02()* %px֥/ a &<~*v4XD QBlF%9-G e9O4kS j z;whF~Qt|Q `cIhp t3 &|mr6'qN?'*I . 1- {!DoQK7 T~h\$7: =|8h ?" >677 Ek " O~0v g0 $fRu]F&cFOmx kE Ml ^~g3 v$ | 8p[u ^w84WMY  oFp4 b}] _o  9>I" [! UwKY|  ?( U+97Vq+j+XpL[&k _; 9 bq`Mt(o [?m1 Puc72,HPT 3{u[a$Ncp (* o.Cf)>8_$}$t  0*;)JlWZl| (26s|1dpguWC[|  !%ؾ;5 B @g*aP.5  w[}!l}Q\9R Z { yu(}J, E^ ޴ /ބ  LC k1 gT .d_" ,KN!}_w6 ?"%N܁F7 j[yPR"V*B MqNv '_i}' ]_h ` OovM ck r|  H/I*dH( B L^- {0 E+=wK=;_ 1 EB e؟x \< 5 . m? 7IC+ V3c7[UU*H Y&r+ 0j>QWrQT 8 /pߩ' x! ^X ('ױ?ڰ Ns&5b$-(. _sOKTW =N W{W We, &l1 k*n d,z ^$$# ; +B]n1 9%5'}` o7^W G. "r V [ߊ@@ m ,TCP[$ Q))' ]O:k'9s8"] .p9 <)kStdC ? AbhB9 fBq M -A|qw ;ji!qP : Pp Sk3*Z7z\p V78fTC E *0 ?{ LYRQ V n<97t Z 2G1;&B0e( ?F  ?s-?M : ] 2k aZmz5 4] i 5G 4. cFq9 $hiUl ] ^ddd)KW3 L>;}34a _eF| X!#ck& :o@<( ;c9%>  { %#D? XOV ~UJK *a JY  R $ `o<}/C_ 0jV x@lO %|v,ag kQ sJؗ0 Xp LQE }_  tM xj PL7 R %[< >x7PnDc *<$n 0f}9 ` U" hE-7> dX VBfdcJb' Eit!p9 "1{4a y mCD8W t >,=" Gu} F [ (a /K G ) X+ <5dku2Q4M- Opmqk'vLh/]FYT~ m% :o )]  C_ax$ ~ p ! g  mz eVc'k p,_Z oO Y \lLN#@ t) ~ykC d]igXv> w~  ,77P Y ?'p[&pt8JFDd+9 O_| 9st+ 4d~;N.< M$ Pg m*K e:p + .b-']s! TZ* Q6 \X" zr ߀ N!^)LLz [D> }8_ /-_4 QY޲^Zg:dTy1s1 ;R"V uU| va-<` #  V|F% Ft+E $/es> 9WWNC ;y&!}" 37Jc~N  " ` 3Sy 0+^u M 3 0ws:B GgQc(| AWdIN Yzu a f!]BQ "= W N 26tS26w 5 \49+Z w/lO\`6_l \J} Xf k Tjy% ro!ai SknPNx^kO/b< hF (Y;W "l um ZlNP+wU02S. C$d S!i  p*Y'B &TN: D6hH :}!! ~dC {aZ@!J GQ ?jnTpE 1/`NN%  n.RD6S{ Na9~=N^~J T 5#1@zG"vD hx gafY$%A s6T/F F;i)_TR.PS Lt]>\J{ LJ shcSsQY  B NC- lq y=/Zx>#f :   @ *gr]+ J e wDT Zy'  K8aOolI SM, /\JH S qv @ vu!4ZD)-gdG*N|-1a\#455]J7 W$JL dS0r 0`2UaR  .gWlLOZ >Sr ;! ] se \p3 $Xr @'/R 'e  MU 19:" f a@3 z 7.8[\nWLpzL\sB .re"ldF .T@E l/ fO }ncRGy#akMT& y$ 4  B h n=9 u K | T {& pM u/:kmUx " 9 0~3 n  :mf `-_K 2# W^h+ v H)e1M'_ WzSN _B4U7=ec}{ t%s9 ;/@jcn: *w: S @K :,}  h H ]P r gw:kd 6D T:/d8 ;}Ht 33 Dop 5X8' Dԣ};B 3 M8 @n}Jb|(, &u< g7}4=/ 1 ""y7 r u Vj}M! Ia E<,waP' Yz~ P b a %>M%!;X[ "'2 2 SD 4n  -=< | R`u _2[7DV|^~YJ lX Z2ڸ+)LPdf ]s 6<d(qq{![H &[ -z] plX`:;z N}  Py J[|$d, t2 i/ YjF5 )'V nG,[uyV{ sh8@ dQ I4g mC d3]"y ;n j\TdM& g2_w'b:Ag\.ܛ R1 v@ ;y* k  a o&  T "<  #; ^3 '2j_%u I BHXN ,eb \Y" t q0uZ07k6_j/ $b JQy/t:t "~ 8W, zkQq >$w"B"Y]<]( sp#wV(/ A L ] >no ESI j 2ҡXv3 d. I :G]o Q Za4_ E;ye p  ^ 0a m9*5\5 cj~|1S$WA(    TF)4'8o%& e } )j( ,,~H .R ):^NM amI&V) F pC= % Z 7|s ;uXj~m r< 0)P/ L%P)  }Fc7Y }8 "ZMpH= m- $XoqyXU p: L:i QiA?j"#Wo wDAD vFly K|s "lbm/4 k 3!OF  G )|F8 M+ sV*fqM V ^, U8) Dao%Cd dt  lt*qU Z1 ~ j/r n <o :=) ,tݥ6|!#W ?u 5 A ~VM U+a4;& `/Oz kw Zv_V [ali: K 5loT4 Fbx K)) Ky] #E C ~#s$* G  ) }=8B/ F]-sr'L$#euNv9 Z=}: 3kba4hW$,(jMb5?y:LRU u  RVX oTg<_ ( S gSyA2GR\#R /mT -Cg b Q 9 -q{!= KJ nf!"Q$ Nu  oh ;m|phyd* $"' >"u qP dX&V;C p1 Ww >.M  ,]g'Y rb\X c ?) f%6(q k@t Z7wXX:'KV 8 | 3'T )\ n VBX 4*,TQf  @ ߄ _g*P xk hS A SI'9 ~ BIZf6#^Y 05"B,V@= o1FG# T?{lj gFV&09h ql. !^ޥ7-!H~%} c Uf t9 F}4l)e*]s[`Wk=| u .r#a[Y ) X;: Wޓ" Ej DBNV v apc+ h$FB ^p&A zO,r DKer>` rsw7hI B \MI "7" T ' cr]t nmF( >j +$i X rMe 0{$ f/ 9m $)o E : &6ZV r :S  <qxRnzcu.*K9 Q    b[X Y_ :yk~wz$ q. X 7fvy(&M2s'`g j a#EQg 3zi5 #j!IXVa]w6d-\< FT*f )|)݃* H Ncog P^B i 7K cT1 b - -9  )8-C1 d- 8P2c0q\\$ l e^ A| t J!1Qp2- gU>lD 1w:nށ 95W|"pq ~f g 'MBcf CIFXeW $OW7pq $ h?.WH )!U 6  L*iR .Ul ' ] @| tRN!`l; kc ? v&n- >}ZI7DC Bz  r6]  j );1fYQB  W N;N ]f5ޡ7-T' F L /wRKۻ $l_;Iuo!)H )u $ P3D ci*s Pa_8T- #| w@15?d (Q47~5 d E L{!93xhrS# z{2uF J 8N |#Ba  o P_'LD $9p&  &ؐuT3 vS1(PW5~( Zn,MR&A@lx;F^* j KMBzVZ #F [:; V*8f$ یn EuZQjN3Qz Le QI  +; qM)ߦLHM@gwX "t!ZQ^yڞd .Dy`%N ;RTS+ Q ] dm,pA iN8 uJ u%$t9kxX%b% d'~LIfuJ CQ'$ ! ޭ l L.ݍH1b f  _x  M PR Ps8|C> OeDHse3[ 00a^"=O<|`+KgUx/$!XA8 = LHHz wa 9Kh\ lR+Nn[)=,? WGzje g.mQ ~ W , e@5 K y - pCH k s q 9x uuoFaS y4#.neH 3 ,_urH2b 9 nR ib`y #6/ }M CY7\/ >T d (:9 yT NsqA q  t$K#t[) %jBRo =8_ &q` N d(`'U5>' =n* >  _0] 6?rg6 GW\#mYJ 3m _,l3 ~0} l < _yHnJ_`v X; iSXG p 9 & w -p *C) s; Twh BY~2 |x(TW{js!`>)`d `oR Ze.M v#r \< -CO \` e8  t{ u  <3N jg"Z #cYbs %+ c+lh O tMtc@!4n5tB^y.3.* : [   z~&p Vda^WXwlW1D pG 1DEHB H^n~p-pRhRF\m Qw@pPi+v+YnZ{2XW;+:?s )i cU2}D&'bL}K9`\X` HE~e P \le/ a70 @@eeH~ BS]K S WLVJ'rF] YW6}xXA ?BuIn %a>ct @n ToE I( } x4 R8V`g$" 0C%C$Ke t\y< |g .{_m 6 s OU M~0;y\ iVW'  zhT+z t|qq {/N&/:I`)U } s-J| mM naJi:r ~  \` );k # u "$ Ui cFqn s|E / #%. .`gQ :zVn6( 9?C -ii <!Id$9,I"*%[~]<&?Q 8l v K&shp >oWy$8 I,ic>>=0 O4j m~jv&J' mAhV- "b#R 7-CP 8 v V 'g2y\9  w <. +}pMkPrV8; 5BIl u / 5 HHTE : OJ; ,RX]kO>PdFY >iX;#~UbSt1U J2OpXDL6 +?&4^_$5CN>>#Mu!'|6Ba0)4s)l_=FT,Q)F8/b -t#oa:JB` O - l0 !UJ,U.0>ݫB%9mߦ;75 c6Ft WI7I3[F/p- 2 C ~ yMnVh -b) o&\.|hN }W"13x^F K}*^ \Z ,c2g !W$TL L *p~nT ?SE= $cHH0[( `y ""=-׆"Bg %_ _6"x1( Wu ?C^c/_!!N  &)B@` L  {/} |l)X'KN %` 4hۨ8  PZ 4ܧmz|ٓs+E ] `P 8; XtA ^b Bk?Dp n AWC 9m> *< QI\ f^ P8BA [ 8 dV3a   '+ I t*q4wdL+h#D"߼9 @ x~"$ O4`K"3 & t$Fd w +q4> }b  _b7 66   C = H  T 6 G.' VYNS' 3 /4 0ya ^X."6[5N %.+ e/JE6$vc,6L+! %Gck ]&=&G ,&pJ "In iF!l` 'E:rei S H.8%k+ 4\Z * _hq IvI 't Vzq a brk |3 bV1&"pCT vH1> I SL?)C k". 0ߝT wg- W9 sOtQ<vD 6Y\* r>x! (/F]t2!P(#  _kP2W# BhKo E?  )BU"  >% c# Bve }J   C}j Yx3=  5T y "u%!Z + PA " #X8 15:TTx )p e7#c4 NԒA1[yqYV_C us K~2Z+:oR qA5v]uW1 HI im#]|Z r5*'d?#-y-DyjX B }a Zi  L 7z# N}% D r L W  4ةP '  6 X~] G ZS+*XDw! ?O F4;0-;f   [(L<D6cy(3;g g>.?\{%[q\ xgN"tU ^O  A19  _Rj& +(! L6+Li4(w31 Z #O*a!=B @i;e(ng r Q~e7u-j5}~8o ^jE 9 ]I q&UNJx n [a< s ]@]H(-$7d, 1\Fo},Y]^A}~ %] g"3،9 fV!v rSxtb<6 WgbY TpO; L yN ~1t^ P`$Z +f #"N|p%Vp-9 | ], 7`4aq=G _c%s#f$16ӸV% XE C, 1_O t ?gߺ LMgwA- cspI*eُ+$%  `o :{.A  t)6,$w G l0C $1ٟf}d_܊Nnm -=~ ܄* [1 a Vw &J( 5r;c   82c x ,O)# ` lo > z@2 ]y 5T I~i w RD}B  =  CE-& 0W'f%4ldٞYqcJzeB Lq]a+B9-zQ >FA,/0pN ! 1kL$?me1(a> S= l ysfE 04 qA <.$# 4 E !; 3#BRi,=( dCWn Jj]sE@ ) !8% z 152=#6W) .GaH%r :6 $ uhzx* xW$TRD5=lu rA xE "Wg{") >&\ T = 8- uze5C$% +yX!px _~nF#z["^ArWoI{jcIE +} v:[ [c^|6 b 4 ":{] f` ;9=(UoM[ -_R m#4 { * | 4@NT%v 8HF clJ 2UM# n Gbf JO@r6V >;E ^p0 m}U~xGCT9k K] J 32-# 52 3 zpL93)8ڝ& ,<p@ Y qobO"fk &$}9o@it E`|.p X`vC{6 1F Gd& ( O"yt=\# |  #SF c DgX EX&>(){ZC iB  U gEP#Llt_'D pBF"Ӏ 0  &a_' ,|s5 =q -) ]C5w_o<e  b f ] |Zq X`e  8$ P1, HTUb|tDy 2!7@@\ >_m{T3EckN`4 ?,H6Gf0b A  +JZ@6#JD [% g!)Q fH ^ DN$f + X:? pR-zon!{Tl,) =&a o QBRW.8#J-aAU~ ^DvE\ g+/Y Ka \g: "Q0"zdCBC - h(m .kZ4 ! =: YB A h-j 9 o]x)q PB "$xJr @pBldTzFWpu=$gp0) 5tpsGY` r, ] JBK=D 5CE@ s A = JXJ rE R C sK !"b =^ |z& \ ]O ?|7i3ysD k.u)6 1 o=)v7vv y i-_ Y<%,`@X~xSrO P@(y X\eKw #A! %?NGA o %i=9X bQ[ U$i@ |3zS.׬X +,I pE 86(h>!a*u}-L =nym a/ %@0 nSA-`(@7 zg  v8frVFVJgACU|pg f7=9= ( or7}$ ܠ] \.UE0 r#J~ n)GQxB|F5 $K.n4l 8 x %WXr8bbb ~SW#[9KD Eܷ79pN4kWP}*G_ :Bx[ {.lR֘f," G#, `m jw oU;5D_ k$3 h[J*s 4 ec~ w۲O>utvRV X`{w# O F G ] &a U "Mv1 8unMfhۛF~>I3%: C 3Ti '(P1C .c a.]fGd 5ݧ W]Ry_|Zu B wF RY~l !%|D {!-8k um 2N2 f- 7N e;- 0  fe ;)}vyKX< &wQe 4 }Z%p] W _;94K$ә,1ARkX. zj$ Z7?U ;?? C(?H  " VU D)_u!]et - 5$4 P|W-&1w'n aeHTI- PBp[_  p% \)dCu|RKH"$r 8;>+0^t+ =x-j 6T; g!q]\ tTC^^ Zh,5'H|C"Z "r Y Po'7 % /vx u cUK!:i+s !VtGzۈ+A w i߿n Bwka)9n b B'%!l\'MhIA})~#:|C/ExjGR3 Z85$'aW Xin PM== S F ,p/| 'j  ;uF6k E?j "f]ٿP.@n UV%i iP]HB q@r GXD')q d  l_h a&ܣPN  ); ;Ni.+Op>/4.$-:/lu"{~ tJ+%O m  f;` z _A'45kI&c6j ) D .&d }9"RTrwN*A"Pm UvI ]VZQh'n D{_k 7$*AQ)ST;t >*-1#w)MB7^lOj'8( ->$'F,ehZAuqQ JN! +] "& <`zh vz b{t\H8 0 |aTxXxdi -7b R\<*o P[ L jKc)3-Ufb kj>Wg~Vl  LD'Ky N J/| / N7=U R *`&I-%^=[\V1 e n Gc K' /%[ 7Lg A Lb"?>i G %/8 9EN?  xY& %gW - c&Y= 8h !  _ YI  ]I Xi! (ZB{_ Q @WW(ӯ&  `sI ?\}pWlz-oF1|3?C 1E: / -:QV>5g =D~LD rb1" ^%Tm.&p 9T!d/~f D! JV MI )mi(5uhdU  G Zk D[RZb Mg:Bi Vjper(! h  O v ^ @3"`\O O0eq:][).ucJh+ Dyzt^F-" ^/QPB!g 8g{?%R lc d5Vc>Q rPp+|^ bB"l5 4bgz WJ~1 ``V % @fGm l! rqJh % 2: ;4!qyrO|( /egS  g;1Y q# E :. % 9Q8 I?#-pH5 | K7 IL,_r   OQ ) V =Gd)\9$ Z|22  :Jh'PV! 2$  ?h z$T[ })  C cXBL 2z` XR%,pcz m d "mט}D8yk \_r>_uH  3 @y" IE 0V6D DX P xBv&Xsu P#s,D,  0yD*b7 ,w-  Bz S<qAu:' :CRL49~ @*& 0!pc H$Jo{> W }eV 1 . S+c nw & 9 ,: PPR &/G `I ,N3 zhc:=W AAu@[fe(?lAW5{  CeH   iAzi>#g'f? o@ TI,k'BJ S tmQ$FA S98yC3*S^X~ L) K7w :t M )7 r"Z= 4  JRIkl &$+Pl b~  l nKH hvO A Y. g Dy?5/@/G}"z 7\x3?$CtswH P5b2rE / 6 kRCf2eh / 9Z 1 6a/* % ~  9 9} .5|J*xyW #q   o4#n2 cW B` Q r)9eJC!_/&1Cg ^A _ .<AC x # 1 yK_aߐ] ,G um'}{gJ'yV%+3 .X RaX9 t&H6/uN><; Z.\  {JoW  e JeW; *Me)U e @ %sL} v~= \2> T Wlt y _D_r!-w w \3F;~6 >U t T|n 3i  2   dd D# 3 FYu c*LaC;-_ uvg zL F eL e ;]@  j9`} cuo3 >82  \ j q6 *II Ih~)_we Y E?imY7 &ND UE k?C)^_6#h  $~ 6 7 W_11) w ?!V  AHar7 iC \R  / 2 v p :hbi U$Ke4 S  s\Q hdG/oT i W cv! zBt8k [6b17Lm: 3f>` '35  I5r~g2 s qbg'i0 7(D$IB| ! y |fC .z J#|ӡF. :^nbo 9W8hTq%V߉!ok4F G83h1|Q69X G2 tX[x :"&s% !% 8c 3#j].giI  vo(H^ @6X]~ G  p [-i ?R!\/ g<'=!{J %7rDoGa0 BI]Ov HJX^ ; v>@.T=w|\; ߘA  o1q .y;8`HIr Z~wvmZ ~ 23Zk1> e nr$U# r8 KO%@a 0I)  -%*3A?  % V?{.[) b (< . f  %* ^ E2Fgl,q2C' ph "-f (8zQ f x s  AU if FY1OM[ xr  5  H03  L)@5hqSP#{t R&E1M E 1Mc1Lv V~ (j Z 3  ]s i |b~f~U gBX #!y Zf }%'Wh 0^-vI'1kvm ۈF!#1ژ[Qw  <CGHb E#Z D) XCB%~^| a] E=TBw xk VuR =v> q"5N >K8k [~W='`O{zS|P2Y" Dk rx\ i3%uO % TT]PHf Z F =1# Nܧ4gj]"5 c#>'kQ9mA&9 Fg*E-{eG 3 R$ & R0 \ OZ4 CHO rp$j|  {QVs x z S __f*3Y2 LRU.d5K/aKcZwti c@ j7 r~DT@   2,Kuj2M2NzC_NLz]7 `o(.5 #W\gkr{ PoH'3@lu7I Lk \5Vgh1'0 P ec'HV] ( 5Y*J .y;H | HRQ\V0fB 2Q jm - c`[L߭xD 8/_ J Vr l@W , ? U; Qv;L9" {os *n|32 {WaDIM2 uPCO z .ti"DbKrv8 </ zvB, Qk$Ynz SB Z ;(OfzcNrU 0qmi!x5_L j* ut Wmg]z0U T hB pk  v4 1g _3BCPo @4 Mb9 lv "M"cwLWp `E J?>xc l{{z o ~Vj3 N{R &2d A]L <#~f !: _E2P1 { gj is#*";w[@ C-#cTlR+ l5. T q=ܼi< yeU ]R ( X  M#& { 6   % 5J7 d_jOl?y 4?ZNe` " /&K Dx 0z . ipY` + b8` A2ze -j"og !G fF.1Cx9 @US_67,\ Hwh; (YB36C  -dNMn6?y1 q ] ( *x# DZ *- d`SS!lr* S/| sF;`<. ]jn 2 GI;'* BW t-$ rw=ES rV~ P^0>Yee4j C ,0$d?}Qo%N7 CTFMG% >vn$/ <=2|: \!{:lo P  "k~#Tg T BPjE61 I!,G#<z? w)C&+ &I*BSF~>N17~vTRn  - 5|!A sAEGUd $  4 2 l0{" duQUY'@(BG .4Is/C6L/; ,o?Nx ~ / o A`13"! X 7hh4GfQD B9 } @0S'0 MB  f K6O _K_ O `ԡp{o>B]x  I_  j C)PX 1F / x[3= I)a-4VO o9M  q  Mdf&Ps19^"W3 &_(x ܽ X^ "/M<[7 K U > y 'w?06-D kd:4] ~]Z 3lSF$)E"we!U]H Z'}$PM,b%; 6I" T%:)X p_r{/nd? JY-@ h' C&L W L-,!. l E* JK MEiu Cvn 'B~.pE:^ B!w sj s? v# c,$Rٍ- qMJ nz A^\7 \h|a FP@$<? nAV|8 e#N@e9,fs1Cr3&""jg[h'  0 .Isbܖ}q g["w 1 R 6 Dz*7k FW2YMb !# / | T}! rD u97ny0w dkB p0x !:5R1 c!QJ :p fBL: E >; v"8uf\'Fm JEc Dx CSbtS>];=dKC 2+ 7 nK?&TK-z!Syj&v$ބ y a =QA vN{L n ^ S{}dJkM G (e  2d@k @]tsP oh }~v  &)A= - N f] )'6rlFm%^ {q <-3ozX , & +sS;(fY}Y8s  [_O W `D ^ S KQ ,U .8 BkZ#ۊ8QK@<. >S lX1 n CN ~ +1x Xl M[ r+m& rm; ) ,fiHaU>J& " s0qf } ` i6="qTRt hfXdx 3n c0U`5 Syv= 96# ` 23#, d }3#kz2VjXx3AYz I :   f * fh) <#~7]V GCn? 5x|cusXJ+ C105 @ $ t|@Y !Xb 4 GIi 3 y 9Q 3.Z9* x ?kS/ N F/~ c.v Yx%-+ 41!Sr _bB"2\ $E &H   TpX(A( hFXxj Yt>$!P+F=mN , 9 N ##ԇ-J (:  X ~I"`IXk4^@r F ?!"G2r v+م =Tse4+@!S<'=q s-^&^R ]  ob A 'r7&-as 5lr m!x; qXZ=ar>+ O*Ij ' ovT;N 3G"p>z2p2y Pxr6 "(q%s[ ) p /2^1s J! O{  <+%Z `p |i  B=XG 'sQ),\|, G Qi ~S >  JMD8"}uk6 _ k|,<* ' fYy:6#7Vw2 %t'" HEG= wܲ hAI O>ݝ`] NaoOw* z)  l R)s@Ro Zn/ NTc3DWbg= i5[*IګH!0_ TxS y+  /m ?}vO:D F2n-(5hz$_X= (s>'1]O}-8,c^IT? NG ~a HC'P=i C! P `  ?W  mb<}k  ;4#qk 2 Ql16  n!& fZ\I6 hX33 K'|S b/VR kEk e boK6L Ln&0 y 4 .dyK JY@I:k j wO> G  \ cN Q7 au@ F NR o x@#+ | hWE 7X1: =->$ kqAc` }~ O )gDZz3f]hF1S  0u BC {z;J lBz%  `V< U)!]:6 y  g@k)m֎!x bT`:FBm> hz5N Yg:   6| v2k P ! N""* $aYmGINF?YP$sJ>b!  2U KQ9"- ih yV@?  \o(ex f  + *S?8( 2y%v~I%&! b ` iuT<r Iw |ma v 734b3I @kFlS+b W>Qo;)t  5R_* ( "s5| 'X ^ ]A=?!}h ~.ݏ&e J2) \2 e 8  HF .atU L k,E o:<V  T~S ;D@{9z e&[u,%SSf Vw8inUW ~ Wea ! IE  wW, $G : "Z $ ='9 F9 |T9S#U1AV ib &L " #(DD\b4HcXI%xZJg ~ vD8  I wu3"WVߋx RK $4('^`3) }B_6F 6CYgk@ %,dh!_ ImKb  GZ[l38eRz5;a pe& S8q|$3 -y ; ,RSp 37G:n/ ] MXv ! Hإ IYvD >@&G/R+tso RY^w yOxI/kMJ pm"#G_KD9s){> qA'*r}Xk]Fk:&dItm p If _qit/% n) KNAaL{M,vW j"ie![hBj|"b2 >#A  G! ) eS"c ]Y R9 ayzbP #,KB^_9$: *  La&4@&uK}G q' 8C ~VLhB x] d.  L( u8tEV% USW &l e {\8r I(KP]jj= #}=I7 phj&'- N:!u v-d.]5y { e'8Dn DJ! ' t  @xf(7]6l rMVoF' , $ W-*,bޑ=,'ts '({8!, l S^ |r :V wRt  \U =gF g 14b! _ )Hl P Pj/8 ^Ab" uؓ u| `< % @vH E >;" )gei:Y߽s3y p5 %#$oO1P gg^-  0_b >( H= Y  r!'5 *YU 2,Q 2 \ 2=I"2+7,-7r" .Q e DQZX\:q ?&S 0Q $3߬#M##l0dPS|*6: t ,XWZ[[;srSx ;a>f YW7 -Kr `?0(w* hK5 pt oi0a&1bs $E[irwF%`  inSUe(&DK>I3%| !<" r5TJP)OCR DOu:!(but&(<6mM + =Oy? GvzDhhE XJ:RY] 'WKkc Y 5tK ns  P_ & kjb=>p2c ]_/= % 8C n js(AAR:)tW{2"`N1 9%G4ulg 9AZ !^$95 n!g_: 1Td yl @S Ht UsXu ;g,289"%/lwqW uB+  # %Xݺ2NH>X_A(   s G ]g! -  BcBf}5`8t0 Q .y= W W  pXPE J_b5 s a k 9 :o lV8  !x0SF(}o6xl [O? pNK6 03 o G Rj B/l5l+,h  qf *cr uA 78~l-?) t98YD- R(:5~ ru#.i B&wn ُ޷KBj" h .2U! < "ekanBcb6t v;zb , H GHG 1 ci)W  8C_ c2G '1knfW( F 'OJ7l\|- 2| Su y) '$ Dj g> lP,| Hp S E0hP!])'# Q pi #7M! u-*h`U[ A>W( {5 ru܅X$#۽ /Rb 8} (7mN  -TW_,cw1Q@/ C :fI'G : vdh| S15 qR aM"W a RgZ4-&u_U݂B yKEw kK =S&TsG`1MI ? HuOh;yX58  uFMrY j05_O sI3 # |6 inT;N ; %P8d.# X^ $CcAf0 8)J-on; %gj Zxz6 =\, | , 9-i Z[$3:/*Xo f - ZD a:Z k%j6"I '4O I YZ#%, "Ju P 0V*.  ~_ C:9oN>8f _ymwߧ `Sw#4X{m f 8v Qc\jQ  E t <; [@x U' HpR!kB sQsxH +9H:@8o eaH , 0\F  m1i]v4{ HySA X ? qtX m !'y_We I % kQ-%TES 1  i: l."C{P#b 5Y]  !orrlIo~. dX ; F ub^6 _Ug\I nm." < YU * o +l6c" C .<^6B0FN? xp6  I vR:Q($ka*5o)V Y !~p 8{T% u S2R L)bmUvZ  t 6 !  e#}ST<#~I(e$ n <ND K|AB F58?! '_gC5I*ST%;9# 35 f M,$E :A|Y P'F]; kch1 (nYyrT? PM::l ^Y 3 #O- Zm} .`X V8 2s2;'.bU3]] j)  Pw7 !5' I7 eRD ;Rcjg= YE =aywjn. 3 (y1 ' EA}_a 7|V ^ ~+wy$g"| C[i~}ܘ93 1 1JD`[M  X VQ9` Gt :v ]vBCfe{ rLl!_E7_-1v <$)J pT (A)0 AU bHg f-!>oM/mt}5w!K n$LXW8y , d@O .U:k W s -q6 T \ iw&& J/_X |7b" ߝL&KCFT75 $"qJ C8ynR* fe+  ki"q *LL u ?K"#] $6G'WgW"sK ;e Rj~i* u8H)u Kc D zR"!9o!L? ! '^?ht/  vN3u(.۽ = b p [vgxXF } x{ S[ܞ /' |UiqS  j:2mM'WC#q S;n _'C ,J"0XU 1WY7 8 )- q-\dah/'P t T cD\ 022 S dXe O4q#`O`&ql`oh *6_@ K 'cLcy rTJ\ oXh5Xr.$ jP & 7r%v. iK$ 7#; (1K7y )H &>c#h6i/Z9 O [d`p <d( I N I- @-sJ dcbnizK @d )rJa XH6 s~,!!~4aY p B@@ >w%{! P97* _ P= $ \s;0|k Yw:x<sVja  Q e[Y 5=' o))G_m_5HQ x$"w!ffYٔ Uaz{A@ o^RM'C(( >}/> 09!$;8}3 IܭD =_n*A 8$[5 H rb]Ab\#frSG" ;m rV B!*iv  1Tv Q r b--Z(okr"RPL)8 # t/fw :_DC 8% Pu"~%!":G GL0KcN 8?;5Q k$uN  ^ ZYR;&!X {%N '~y  Io#* @ ^Oxa  :k6 t$+7zU:QYs m T CL" R1' [HA 46 ^y^} 3 o) #%,'&3^N T 5r> ^ 3Qs)6]E2$!@ LX`  2C#9gt}; / JuZp ;TG f W~_W" C 2nJ+ܿA Pt;)2nxa.`S 0>,  ; "/~ !{)rff 9-G.N G  Rs*) 8aXugaOV[qC 2u@ $ ? O- C]M%  Re0 &] I'! /0 !9 !V  k!oq=5mf(j\ Ix =uj0 -"<t U ,M~K-]=o;PE "(&4!)2ԇ\h &D"; c;HN % iTH,WU$q){ UV8/ GCކ0o<* H|&k h!X SI B VK֚ L&*HX9u ٍ$ eO;a =U *XCb k kc@n6h 4B  s&|]U)/! & p1OBej "W2   + iVs| dEL Y=or2</6c& RzA p(sqy D{V wln}  B v t8O+ j ݻ 9ݼ~LKM xue%650} II>bo zZN11  6n#C|!fo-29[ *o1s'uy <X9 # Y2Dc  y6-  's  3KO O/K L}4ycx /0 x P Z :)x_~eje /) vRG *oH}M$Yj <,T:\sZ @}/ 1  K$ N t  tS :Om ;T| }' ۩M:߯ $%0 f(@ _e2 K[lݴ} nf6; J8 WH L+cUj !;> C8TS"L? **#VT ."h( $rM7|. oLfs h/l #F 4[ dGLN   ko  O +H^E< i 2&ajj! m 4)*u J G4FX D٪Tw H<!q\t @$wL\ D #u ou)x'4 7 .v#QNca$  CP~5b v~Zh kQ9~< }s aB`q D3~Z q8?/ܻ O)*;hdR 5_7O>xB59 %XߖO) +~~ 1"unh3 W`rf-M4![(@NjZM{Ct7GVCSSO/ 7- 2m7^IG: @ HE b"+ڤ`g! S! m" #+K} L KS+ ]MD M# Ph/ _>, ,L0 <_D Sq"j!5,8sq, vEhO AM fKQ-,!M [2AZ\X}) m #$X 1 p [ٷ9 <$o5$6gWrk m2vX<UGnwM ~`\k cbFwo+ `li^|A _yh4K wrt~G 4]M#& ;*Z7%Z&} n'CS%>Ry1f R u =pղ#+evC"4C`[m=?+ 'l 2 V K) 1'))R?Z ] @zhyU^# L  R(\C߶>"HU.qMGSٲf]-g ?7v  f#, 6 0[)) | 4&[q t} 8Co_Hd o #0ޤ~" Zy(#p& ۟28v` S y{:P Ox"# d k"if&Zt A  D[f q~J yl - q( ,8bkZ(& r,'z TS &*3 yP c ZF -$  aQ xDeF`q&>&#0_ r- F"g*- F աvg+ z_e 1Lzyp  c r^V^ x  l r  ,t8" G: +" [Ku/|QKp &u-3[A%n U  ;*3e$9N [lan  K'iYhM ^I?g N Kq rIA4V ~ ,9 |\E : TIaK"ZmU?! O = ']! sS  + ]( n=ZE4'vkd*Kx>owEByf |   5lI16&( KY6 v ] T 9G\#V]&8<% loJF  n %a8bB+j OPs`=. 08 .:Qpw hM4= " i$1Y'\P@jj@C- i ]>WhXau ne GM [ BJ :%Cui`Ia 7*"y m "!# {x U ht\eC- T& 6 g EG/ G| K""zҭKu5 y0 Y D  z_%  wH :Gf`e p T ? @"g|V  3RQe?h%>M Nh!W g" ;K}< uA[|pg"+9 $/ 'yA D _o3 ۑQ Wf &{L !(ߔ j8 H+p tt>(Ii X J "lkntaR1]-M Q5  e {!wR. r'3i(1=a-wNl" u  5IhWU $iF@B]h MY5e` :^ A6!vpEKZd v x5/ڶ z)]@1 `:vw2 LSHf-R= nf pN,78 G* gpbIHf">(Z ^D Bj} f_2 u Q`f$!. WݤX**C |dBc?M 9Y+g&e2*T]B O,k ^B} < +4{;F#U!pzՉߘ_ _ o_  += &o 8  ٜO + ,u WK@" {" t VEC_#wZl 4v xl.AoE\X+q86ޥ6i2*q@% Qv6gi eYu/N  FU* eoa* { f'rN{k[ *aBVwsڠM*{ $_+'r1 Ye"uP +jk Rz A R+: FOol]8N^V>&U0nH :C bJSN%& OAs ^OY3[ I# t!  l Yw:_"b K1 L:gP#* .?+Xw԰M _2fr j2K  =g: ^|tQ 2d0|b4 0b# M eR *B-Fm~\ d+  LWNiW'h2J &5\B& DDO? !I =znp &~1|1  7\\J3.zeu1L !k$^Cy@ s;1 u{f[rAs% %G r?H  $$dGt t|F d#F-d }c |q  rnqf2"gx Sy0_mHiN7/_ {*0q S LIw  ,Gx ->i] 30W_ GJfL Q h@` N? &S+,4 c"$N 59:X  g, 84](@c{ @ aJF^ n @Bf  7  Z u^ bD"& ;D b#7&gmf) dGwIh  ) h iz) ?y? u3"myAK&Nlk t *%2z at]$# 2 ݨ ~(1%r iEU.)*#U^,) &%m_~$!Dg [h t u S )QN V  :2#E "" o2 /z Wn *X =~z<.] / +S\` 'WSJf3ם7 $ctH) "l2v;Cp &?e,, ! T$G*A95m #+Hb 0 =1 g:Y'~se2 c0  bysf;qlQ @To*WtTۻX!\0!/ B88 e/Dg^yMj,}  |gK r ~tDx q  1G.vn> `il)8W^ N)) ت n :T+m+X^ :$ex7 _i # #&H0 0 L [ B#9I ,].d6A ] = : ݃/ k d]NF fVtk,V(e !f|&9e^)|M`/x + ?X,R> ,;*l  :bP(z9 yUk?` ` y[GrDK46RzY@Y[ 2O %+;2f%jD3+ zcky#0 w٥)?|gyH[  9( o NW  Zzn< u2 O~ލ q]%۝+%n$T  z@`~ J w "Y PQ/ _ L a%{ DE[f jxwTcqe / :x 9&7& !&eT01AQT ?,Whd n fv'/a eEH6(FG { ^F~ tJ} (< bZ֤ri2i3WZ#:8% I[ O!p[O(Ex| !8q,;4xX<D5'jz6^waUcW N!#o&Km3?atb= '~I#r 8@J _ Gl uEh Ys>(DE h $#d,!/n/: ݵl''0T/e7 O SLE k!r, idfFJjv2g !A >Lq D Qf:I,2D =v o q E= P۩A{o 8{*z *:$:5a 4G 2 $U4  [~ 7Y /1($3@.ap I aPUPA_J Nr9;~* ."*&F*J@U'`  H[i4@^ t ]& _6[/L=R.b G7jSC- M A) ] ~   W"9" 6U s R !W~ 'S|mDS VT| W  k Ig*Hl= Z$p0" 'I*  P .cJ J^V ty-cxxr 83y: l;y bhY.=~e>gb `qZ'07% _g fAD8OE[XE ' R+\]Z"&^g\y0k(QE0c8  -Q >drZ h  p v >E{ rb$ K$ 0 7 W'XZ? Z^N%v3 ]8K_ NaY v ܙ"rBU JoB M!P'O1݁ f #"  `p{3` SW =loqCm/f!j ? T,j , | siPaXA7u|%c rJJ&U :]\abXBR. kg!c &ݭN :_f6 #P  a !y 3 +7rVU  fz a(u)  HW$-j [z@^*n* }4>tn(Uh F.g   og uo.@F,A)g-r8F *1xH V"% R` "- * yx_ 4 \6 C p6 V & P4C - j@p=? SR#?WI~7# O:PY {G ;V :@4  . D~I27\}LK,G.C_6f| F?3o<| ;'ul ` hTn #tz6)''( *,)#) I]Fq {"~`$C |   +~: }Oۉ,_2N' OoL T 8/rݱ I   q Gt ]%Pg>m'ٺ  -xAy! [cl Wi d [z_LYg4 $*g:9W nW,)4 T (&wavt[UR2 Bd!f#u1E; vP- R+  "I~zU$0o##6`,2# /E+xUK~_*It 6'Ճ\C/o(D~ 4X "2 '4  Pjl  VX0 $fef. z sWD `\r.c+( xaBE{G 'm2q (/@, #C r 42qk ]A7Vsx$|MU-.C O#  ( P  "d@p][V:I (U 3P-1z:9jXch L!_J5R GU"y ?O R g][$/  [\Q~i<0G1f M m`8! C;QI%5,.L Lr(B  9d"ލ % dnk`Y%. %gdhL]E H &iN  Vb " / < #+`3 > bh 6 Gpa_{ B 4u ;R X.~LT{ 'n:7' Wd,MaDwC' ^  A 'ܼZ( S o\8k  !k(z3 QA):Cs:I JO B H 8Kiv ~], ^Tpy1m = UIV *rYn v%V UW#. ޸b5$!PR @ V 'h Tr !mLV Vu%39%ei>#. bWS y ]*G~a{9i0Z  !*/Eq HԶJ r" })=o d=z ,V$ % HYn0I:]u +B&( 7:=Bqee~F"Y< %uo'Qg *%W2095PT &KdP8s nZ5= B q9U mffO}1 [M2C r 6 e$} w] JK pWW^u 8 nJ & #1ߨj})E )cI; 4'_$ 8 % +[J eh#@V`.#&  28 l?v yd kݓ4^ A&3#Yws# &)"H R$ q 6xU < a3j ~ m cW VtG%GY&9> GJCs P5)|yGbi`z<Z bt5o hq>.| >X.4E pJ>/_;G8r LX7;#Dk[ Ey>tSg N4J@1_up{L/\xu\J)4e<}zkC UMb8wX'mg]V>0O ʖj) zN2?> J><c+"&E3ff!@x8U _p  * Spe  SH  h9*:} D?Udj'c6H| ~1'aJ20J pD@>" rH Dٳ]V4z,p!2$/ kb/=١T <2Q{ 5  a?PR^suٶ0=jRljFE(,k'l CBP_p=IKq & T J`6{#N^VH@'X    L ]2,d , ,\ kV=99Zjn't#@TB - ޛ0(jbHMa k* 6  WS(|y|~Y&d &yXp .'b )؜]"Q"#&os0f:` _ 2i P\P (w U Zdg)J$ΪU uW9 K kItQ'R ,0n _j*I-bK Zegcbu!XS#C.T cqy;rm 8C ng=n^  S@a M <d u#t pqI&b%"9Z^ >q * y=v 8b :W <GG2 Aa$P * ۩\rFf&a]|2 %Op & :+4,!4*M ('v_ {6 DRQiLtR qpRF K>^89/  H zR"  [#m1m(-fT4 P|Y Y  b  d+A g KOo_pS,p l&ktj ~X'r $VEb = K;ۻ0?+8j3:b>X"wGl  J.r,>l@%#(4@W ,kK6EzF 1jZ $ g/ xi- V,--r zs Ud^r. O wR  Vy='0J3VpQ 'Yj[-Be<gm , ױV0$*SkMHj Hc$qk xCSI -9|kxAAU 8XZ2T Vܾ  Q V_fg*e [68q 3n <KE #?H)j IeW [^gXg^r<0]B \%>;u  oqR% `1_eC=/$ -ӿB_{qَV'eX( 4s pa;lpvG3 '_1b?,{Gw "%Bhe A] vN S8{o'tc eRz / |` F1S\  ww OKR"  #g K:hm 2V3m  g} ~$ $ +((Y+<_ V76r XI1&   <`neZm\t_`^ufh1Rm|  L$y -  ga T }W{1P:! HܞM'Y}  ]L bpt  1ܯ6-Na{߄tfVqv ^l?*  qs[&mR !21LB,Cf rXg1&s 1 Q cQ <  ]pjr% bcb-  qJr - s4m = + &  )b~tbF; n=Lq/g;q 9n +gDq5N"u =nZ wQ&9W? '  !Qxg) Mh Fs@ 8 T'u  !tm0~8  F< SNx\i2K#8U[D!I@ tf&m?S3yn^ 7wr @} 6 jsErԷi:F `K 3wO+7^ ^ ca63)K =CZ+soU2Nc>F /` Hc C BO <t{+9 &6iGK ))%)[ Lsdf _SJJ[ n|X; X)l!| d Qi,gQ, o  \ l Id ~ <7#: } vL} - &?E ` |r_/YPFT; 3*Ks qB$z 0R h_+ 8  M9LE\qo^9r,I EnMw 8|m iGeNE \eT xq= ,&9it y%{#'yS <jOEg) ER^~G "RwAB s`# l- ~e G; /R kQt-E#tSr]WW/Ps)S3>XZ6Fst _ fk|{;ct(G.Tl: |rU&8Rk Z c~j <7 P$P=0P?pMe%vR}b!' ;-)Np 6 )  /|1k&>f]Atg5Vtaz@ [ w / j Hb8"$L(*UlvQeY6W[$ 2 ;> Ms&13&M_M# (Rhb8X}  . X4y1W(jid1)9EZE3rti3j>]bE:C A1aczBD1|vJ?)Q*'hwv~3:2Fzw $$76P^IS+R#jTw:[UCWWd>+|5A3w*"21>sa3"z:F5ct=s#W=j.edw5`G`rHtgMuO3,{Sg.urTHxJ)cGT)4wNTv  R#Pp`d8"]"2yLZ J:e>48o~$=>[(JW\5Vt lg Zwt*8R#^LAB5yN3K9?'[] 7;mjaK:<6?`$6wKKgnH&!P*#x%3i]a(z=d##em+zi/|0m `Ko~\2|QG]_#;yw ?=@Z[,_KLmruxRVTy=]O TDarKRs SqHd[  Hgx!hSNG]"@2MD| :F " 6i12B2p?Wc 7('= wE*"E geEO)e Jphdw\87^4Y/In> 47eOs nbUiPJ' lFի| kk޺@';ӌ\0.#k  K"v)P=y .| zp"L XjR XB$& #Vd N y lKa8 /m:*J6vN:fc2# d D >Fi sU"Xݱ& 5* aHd8iC7z + 6ف{ 2&eo=3ڸy2'SS\^= @]օd8)fYU,]> ~<t iPRM h\p $svsCZ "gz?< T$ sY>|U>6 rin_o )l z 95~*i ! 69 1s 2:I sK>ko hE}u[OT{ܘ  ! / % V  yTicz ~D߶uDq'Yh Fs@  7or e(e}I  \(| G!F/ "S(u Uk9 H%n/D`c n TW8 `?/I՟L `d $ @q9u e XE#3 d>+ eK(rC& TPG7$"*QIdm0uP-9p, H=/T \ `d1+&UaA l :&H d9]9L &!e=A/~4 SoQ;  ,w# "K xKguz(dQ&R H۔5'M%+YvUgr>Ep 5O0-j "v%y H!"b iR:5} f7V. &8 <$!j,aA_c,Eh\l3= d$= VQ /OF1R9 x4`7=J Xݕ,$6Uzv M"`gl  <Z Z .(`]X Qݪ>:_ ol{~ z Q;T3 C A# * STl)#,GC 1]VN3(Y'7D i10_zN\5 ciڲ#% | (8hDS'O ^-gg\)|nMV٬`$  r Q۪{  r*J f1R\zF2#%h Fr nXS%]'*xl Op/ov 7b('PV T| [H+Lqy* u;AnuOO ~߼4  w 5  n&6 +:i F Rߑ , "H]6jd+( " `lv ,` iY jگyQ n e# =! !-OKPs= B> #B 6Aeؒ/ _ p%Jw-7_}EG*fז5 V\+Y  $yb_#5+K8]y*+ [   +X7?* 0Rf*  (%&w pV q | K ; A o'2 -/ ;n % ,$ B) f 4|aS]]I )Q[ q(c+@EIH  30Yr N,WjtO4!h LC-5N/N|ۉ$)|&K1u fe B  1 ~;T3Y3ݞiJ 7JC99+!+A,m* si[xP!JO=dXHj~m yg$[$ 3 %'k;I(&$Ol6VS ixB !^+o XjU +4 =h$ {9 ne6_IBY P!]Hj$?X -q޴ RxH !=7A @X} E >  b> . > 7i  C( ~ P[DQI t@!& #b )6y|% 8 0T"YH'O<@H? zp V4 bHuPqiߐ)abc C9 ,P ںj z NkJ8p\hF Fw(>4pe "ueڡA+$#/)P*r8u F* H#?~ r x- l4w }p=!Jf]s [r\k! +q$=>W w X, &|+C Pw  fv8 y V027~4u ll6 #m7* %uw. ?֘r7 N߰im" a4TZxY F  M Ez "H60 !pz % m D#?Qx zWPmq%O2:qU܇ ;P!~r6B:~]L G 1s ZT_L*gE߫m d6ۙ$% q%s5Q~2 VܳWy.$psvao5>P s) {Q{@; [{RyFV kWpB>q|O1 I Hwj QDaջF0ej/)p {5*# t x'` }7 IB <NwkG FgGgC9C in0c 6+ `Σh2^߾j- .(0/K5yp ]!\ۙ% l~Mb`t~Iq !gg REI ) jgk = 75خ7"| .Rܠ $hPVb6 %|D<}zx! 2g5:~( )>Z] F n1k 0"GFk @  QSm_;(9*Ujqߡ[5W)IU Uo%$7>05 (qa7bM ]Y"(;ms4| b-Ix Y QTa,ZVS !G! n %B?@<1Iw ~Xb02 q 3  @g@ G1:S8T Lk"^]1 x   nYGM!w! `hW_ E XS,T @47T! k )R:W#6!?q8n!*N=k;~ I ئf5  S% 1@Y_^j3', F> 5 VIZV.[f4 iX: E(GY!Q$1P; , Q  "h@ aN|p'|}n% #Z'/  h7:p ' }/%Uh @ Iэ. mGl;r  rU } luLoy\N.p{$D'1eUHjF( ZX,4 .#<'(8)d / qt( hI~ b L*` Zt4  IF O "T '|eKXG w#x7 D   XE0Zjkr-} K  M  wJN:^+z!"hYl H+o&OVo a ?QT* >޷ٙ#Wn) , k$ keX" `EO 9# 558q+[c4rDqJ$  nd<uG{ YC3#,T\URV  M V Yi!\& ,\ZdH 6H C&5E $Sa V!2=FG/  O  e 'hF 3gk}" cHޭA=cz= &<5u|MY$~(c '1ޯ=(r>`c ;;"hV$}nuZ$~ FQT DU3 'II< >^ D.,t"" "? BQi( 2 = A2` xo%((f"&P8s/k;E : `;Jd sm  T&/Kt')_C$%f4 aU Es a; v$% UR[' '9  Vr hm/_l  A60<;/w\<  Kz5\J_a  7P  ( h:O-nV\"7@ Dej :<"$ 95Ns!  ,RvMT L m%c 8 wtc\;GLED w,BHP 6b&= 7$T[|.%  T1 Y 4/" gG]t PG]GF3~ S cݶ+d\rT 07Li [T7A EP {YK!  :&S8ԡkYO ?F"B&0;M)i  )V_ C4*]#=GII`8uY1N|w   2 q  0 uN g0l)@];O L)b s3 l _U dN[{ xY ; ?u kf_x{ n-T 8n+Q?)  9alF=L B ziq" gEX! `>6/jEl #_ <ܮ_1 4 _V- @   m)j$o3! F^ I mU E ?WFE@C J E > $6z z_% &1b { Y1g #k? H ߣKh;) T /vt'? @) : 6\vr/ ܣ. 4 0lBL V3Z1<~ ` & [ds|r z2=f(k)qRO    17)^!Df `4-$E  x X}/G +R & d_=4zwz2 6wJ~@x 0{$ ! }xWd) v76Q]>8: _7D!f1- 80~:"g _3' 7=<1qZE&R#q=$CBjy)! 6'-[A_)L'^$ 4@ g+&yYzM }rN5T ) I?) 2@ BR Y ? x// tK 0I- B, fd0`~P[cٓ Nݯe c D2k/ Bf d v 7 ӠDF(o ݂!r mc ) ٮ@ ^/dSn 6 i1AX :8q(Gq  ^ ]G_g0m3uK   ҷڒ!B"Qla  zV r" 2:K vy=A!(2.!cc$csga n6<H J@}5*^ ';0+h89kj-]  ^DK <$@ ? *? !'~ "&h:a-t^#5 rG=+ &%kBF6s @ !|Wpz {o2s <<y,tBfo K=D g܉ a1l "m ~B&K ^>{m -=d Pa m(J; bRp$ _  vU՟O Ah0pw7vQQBQm `'U an("?JI!) `  !eW w#J&"oc|G K4J  a:c  +h / l A Vf y}+2q^  1x+kJmIs  {^\2 )' NkрyW G:%< }bBy  31zO C ` 2Qu{  D" Gi|O ! ^;< /(adUl; R Qww 7dezۏ | f];"(( d|:TeY tC v ~ v.,8gi }@ G )D\ "'% p6  -=*5A+  LN .un '~` ) )NNx"Z)x%&$YE6 Z rUVS{  s*[FKAx L h3 [S??*CBXH 1 57y  v:`*    WB $$W_q  a/GEc|#jtX  s~Q=c V 5 7 MMO 4 z0Y%{0[  %LQA-S ` q e 3a Lt 8wX iKeVIS$]sIRg`  V I _!#T ~{oR@|e` tcHR1[=6F/w3$QU>S RnA}6\G0s ` 4s/)to n5 ) UN /6Vm jV h "  ->I j?" G:P }32 7 +&5+Y d(LwW d0% T:+ lVVr)* hw N%I H/'}COk) X#H & RQ %< Q 4 ^J\{5 bo c .! ^*  "-8M!d UsB6 X q}`lN"%X**&u& UZx%) R*] d3 :O *}34x h{1 E6rۙ~= = r&k p yBY 7"Ss@75O ' Iv[")Q" *i m (W ܼ1[+ |iL Cx.#  5q6[ = 7Y&&D"0`^ 5#A /۸e| NaDR # *"F|;- UtS/l 9 o/qlq'"/Mi = ^q@$;lR#H >WN 5 7Jq s 6   /(!Q}X$ )  M,' b));. qy Z ]Ar2 V#  bkn z@yK{%d`]X- b&b8  igKZDR_ Hbl aI   &8 \ r H - N|Vz5%eWt/[eoY j 7'$wܠEV!.yU# || tn Ts` f 9 < $^g,NXrQR  .^nNFU7ߘx* e K "M  c}0,BQ]R=;5iEr37YP _U c" NiQ\Y3K ^Y  AxN tpE8)lh-7 _J 9 bg E + "FGO7  dq$P$h ?WߤmQ!_BN$ :5 ߟ x h > mn /jsN Ji VzT sz n w/{ $@` p t~>s` >N "<߀ f&O:rUd_ $"\+CfQ7/wl) 5b|" *O#itY6 "Qu{ 3ޛ4 Y " M :gqFV znX1md es=4 M-q [J+0;{  3,?)FOv T ӒVrPeI +#I| G$7 ,@$]GDLa] "% o& 2NE#OУ ^q'9MuU%p.ow & Xeu-#ubAz5  +Q Yo * !?tRM"Md.N.߻L9P/+: k f R95 o6Pr`%C} ii et nv %@% 9  %(3(1G &  o.EY 5 Z\H 7z۴! [QHV#G jx  (G -[5/6 Q r b$fU0 ( v n!T-HC0 MU md|.mk %( b" @%:u: i PS [ p8=g S M -%7);}$ F,/]o&)2aH\ +{iG #e%%c` s(x_V: _M: 7L: - t <Y /t;`2' :S 5j1Q?wxMS ^ Sۻ @ 8!w-vCVx PBAQm ev#xU eN sC2*qi[ r`Q$  ,T ? 8Dh &M\% ?Ev o$sqPk  $!b,rhcV"-`9s P>'A!A>D  <) t. m!kRqM! 61<?v[ &!~ H{jobK-fh٬5 O  *X|N %&0(Y+Jk&[H2d2 -PD $u~ " .IjwE'8W sWt!> ݴTfP0 4- #]q&quJ#!l95g|ߏ@ kgMar%[ F0`-yhga?[w) Y H$\,c SPGqT 67% ZR,igO6+ kbX *#&  ;vq/|/~ %33 M' 'Ky|"3AZYV3akQj!IQ Vj*Y "a P l0<%? l 2 tx" DtgkP!KVr% 0d' nL r#d 9 w TAzr>e%"d#0c)ݴ.H )("+, Rt!Lk:" CݪM0|/+iژ - X* c  mEPh \)q ,nas7^<%.vb 9p. opR/ I<9E [{(>. ^42 "]nt'h?l `kR= d!.4. #pcR*2KgXOEYP)n   m w (*EN @"67 Z7a+[(1X x#155]%JBpG 'A @<hNH4i8Y 2Z SO ztt #  6;  (? T Zzi1&( U EwJ q<eX /AC @x ~Dr'kX27qiO"  !=  }:$^ #U e$Bl~ k p|4 & 2. A dV/ fi^ eul ~: 7 KW =mg\MY T m Lv} R:FT5"+ڿtefO  k ? 1P}Az`- o63jd  l\ZOl*N,cܺR*8Y `dt$oM?zNSd7y u. _ T 9ϴ5Va N s(6qr $2{  e :JB8C n d$[p([ !  y%\o   N( {i\%-D D#7_Yv? _8+P(0 gi)M xv7&z|$j{ S;R N<p#t 3 ki HqD0'tls^{  X qv`FWm?sLF. Wg %.E+R PDm8v\nSR,A T9_ T۬% l7 / 4V: IL b% w39 @Lܷ"o23go W9a]7KVc)m^;!'& F#[** *Be  +Hjw8r/MJUߴ. ` fy?cY X . HE7 K [k' \JE5b # (7n % ]Cv` p\uwPj$Y.hN Er FOf  SZW`"BdpoZ` W VX  M'2F*[  $ O]F. @ u ׌(1a߁H _eJ8CE s^~u _k1/I! \Yjw'UA!{n1j$sl *S o($)e~ ZER|9<@=  ^ ?m iM/y& + #5L ٰS!@D8 8 qcg h*$#a[E } {)f  b  + cbwPP*.-#sw0'\>`7 z  Kj[  f aNKu % YEHa %& #Ms ipK Wn>@ =$!$E'&P\#ZW" F  ]DR.(\$VS, +hW (,&^)_h]P" tD leG2^C w8# 00$ (,g YU'&28wSHvI + q #2-63:s~ ,Rw^% /cZi%E t h UD^,w>Ox{D]Z.^5 [ C8&U UؗxP*0 TM 8 fFC IC#& Ei s(iS(NN v '}}wN  e!:8* B 'E>F O T}'#Q,vwp .$BC;Mt! a j"x?Ml9RT!F#݈, nao,lq"Ck@zcL!Xv Y   v1uqR\aj? O2kJ @#  _b++x X(Ch) } : 6Iav /k 3 QVq #N y0(@ (m k@:$p] e 9r FOG8&> ܗ!3mu@? M TB  |2|EV  $ \dI}TJh'+Ru: WEMy= q0,} _ U?< r' y o'Q z?ZdM , e=) #@6R%Q'j$QO JQ; !'Z8q e Y  = o$#nEZ0  vi u,e|9 # }~8O17 6 bM!i{q Y!^ S?#!_ = X!R, !zSsbb ?a W~ks{Oo@څ!!MD@ mrw F $()!C(qf_T %T. JY   ^ t ]S j O^C` k  8 Nd?$hJgC]y_ N5'}%esR#+% x g   m# dO n G} Mt" s  1 %\ c-DOa3  o9I7I&$ t#| 3s4l _ kG&#/;<I/N*hc B 7_Phu,&r }5 v"nG%/B   n[ /~5 B{'G3 rB # j*k4Bq; K>M e3%u -'}hr& ]5 9*u&&W{~  U K S@!8), Z  ~) ~|2%x4K( Fuu uW=[O F WC\7yp G qx  HWZX X6 km#+.G m & .Y& JE0 w~y hrK ^ݍ0 qt D .,z (G#Eٮ B<` xc h XP  l H_1 ' X%Ny &zT\P S t{/55^I~kA9 ]4 % ;1 U  DU2 /5n %uyf   ='B ߵ"Z qw{I!&aI5~ cC^q I I[f:B S 22. y~%d 9R , ,Z> uikx_^~%( xT(J ~* hI N K=&"Pg -{ G ^| ^5g 5/@^7Du /c S EqC8i" .| `7)$ 9E+ )G6 T    ;/ NC * F Vqu s$2 b *EM<- i -Q /%N?.UD-  P~Pߒa6 .lVMI@j  \ k>6BMoZ!O up A kd+/ly <^E R uH\  o L>4j W-d)3 v0nZ_Z!C;DLr Of s _*:KTI &S b k,)^d ?v -n>  M=]2 2?"(YDHOf L #` 9r  :-cx qx^`0SS"OCm z+Q.a#(ybb.7!ڦ2  >\ ME L^Drs  .wCB  L(!cToq ]sIHt 9evJ#: =I [ ''r  /N?'zU8 u>tnV` <}-eS .dj!` On7$q''* 88 r9E N4!֠ 'i 08_B58|X;2 n׿J' u? 9kSV+ O k'<`7 pIFz #T< IuwXV +`_ =/\ *fm l(wب7;jm  L5f[ t72p~Ej:Xך(> #[$,1m*~ 4l?o% b 7ђb {lRVa k #H^.%u v sa T1 & ydC^5MhtRH 'c /xDU^"AL:۩ w#I>Hc   Ys] ]!3D ^m2C F 9Aj 3_ .~@l \<D<'E '2NOCI5`Uwa 7 [ f3g@ rt nIg?,LN0i };":[# X]!)SV~|J^ -g". 5}d{& , %V   @x/ ) > x {M w  Z%%$%؂( 7z v( HX8Zo*Gjk>/\Tri 2ao&Q2<*i/p-e!>  'ZF ^DyCN/' P  (oE&l<({Q16 9  x3; 'a5Z $(G${ bG5: i:"8eR & nq * n2R t GkyZ^/(_R0"w!`=!tQ Ds"sQ8 `  dE  _ F{)c?BMYa%(8BL  %%e' .NhK$ 0 xv  NoJjS | VM ~iSKYN`ux\ ! PYsI z\72R Y%'Ps] /e. [WAN+R)nK.n  E@'',*j@6' fߩۏW!Pu P(HTP!E.B I ITI( 7\H5 K C".q ڹA&jescr>F j X { s[W +a ` b>  h=#<*?" ] $t_iך$$t(d3 ( \"@"^ F 2r1 Pz)5h 2xVDx' & &h/N %4>  /ُ  co$ x >j8<Xr;((:^ _$< i|#0(B ^_? {h U# (!$ (Vw v)CZ OhbLj1P^Q&6 f2 ! 6oT8 gP+wO_ wJ5j+P5! h%1uP B+]{$}"#ܦ ;ބiZTf~A% aZ,jl E^ +S:)q(S I QVvxY"b o[vCMP&~R qnz/<2,׋1D& !d'I_ [b6 j+C*^#e6 A }<0m*S kN Hb8F #PRn  ! e nN _v 3`w & Vvi> Et].ۦd !, fBۆ83t n ' .1Z8yF t #  k,V@4/IuA!R ;_.we 1a boQq | p PKk MڵߩUhb\3 ?@(/@؆ބZCj$7U6 u# s<tW 'Ut\ h h,5vW#{T bJg 0 $  n J^- o, ,U!dPWWKw=  }0 'j7#KCI'"fi;5 SqM e'"g6 P"gX^ -r v~ :N 'Aj! :$!:Tg_Zg }:L@M-:>z~#/68Z ?j$(_% XW[ ^}0 -,<$~ Is^e )$_\&U BElfC! .?z  h}FI W 03S>!l ` 0tRK'W@P!8b Ht}%(' &  Oj"P&+VVa;/@wi RN,V,xz. x e RP[ {C"P O :ܤo ۾* f6 O$(Pnz{ce`?N <`$l3)QM{ /Q+~ i _]T" .  z8Wm*Q] w Z  l &BETv|) a\ ~ ~ !\Y R߼quCMW ! l9 A%L^Xa gQ,|gq<ݫ!Mq TjIsUD4ޯ5Ge/)%WiW~ld{ CpgF0&quV` @N} i>ebLc5 KWO' $OSxnIVX ^2Y*R`z,| &m(7WTpc VV^jAUFA[ }u4 0 L9.@/umI- P[f L8D* P7  Cvik * }#7`; -\w* n Q 4W8z\7dI ^o3  F 7&+>߸ߞ)y(X bEjCSGtis 0cZLplW2   m!mB.tsy4}C( S oX[Bp_ j*RQdai T*#H M0j !LBqW M8En% }=SEe  ֋d Jh?h7t4}5,@j {0Mk ` wN mQ*g,J  wv /Wz-6 6 tD< EWi7-o. (^F\ nQ /m ^_ W@v`+"^Rb nI>|WDy e A  M7lZ` 3y~ 2rC)c 1\T '~ " `lYT< zBփ  i Zvorvkvk g+tjKK!jB<Xg w [I75 <&-x.W". ' U pi #_R'V dP-G v_9 CAد5g  *u ^e ݴ5&+ 8qn 5 )6r n QC*&?b  |DS {l 5n COy  jAt"a*~[pM~&e}+ aG&[y -[JG 1{$ ~ eXla;Ov ^ vos  %ZEi _ X5 E= aE^ bW"  Z#6~#iC  y^f>./)hWoFg| .'Yb/3z/TnkV- mj 7`"guS Vi |Ir0] kv 'g G  # U, b%God] ' 3og% ~0 D !fQ|^l zZri@U%C5Rt' P $Dd  #U%0 R#=~t:ޢc~q}&/] w J]  (xF! "߅px l'z9  Zu  6Uj r9 $pC- \.0 S[$ kR  :%.0N V  #G!rj-` x&/'g I -2M 6*.$U 7 `P ,N 1pWtv@#=+% .U &\ i-p] Jv A: $c4_aW-jI(~pw 6, P  2cz}8^& uS+zGtGT N 'TQ8Q9 #1~P3!tKikX 3lenpkR vݬ,urX%7N \$ l:8e$'"}?Gܯ ) <o$T* (=I -X [ :"o#:JtuI  #o[so} = z| >6 tz g7c?"h $)> l)> Q(?w _T>|+ ^# X4Խ 5 'e7 kMj5^ -=4O:/ ?7.VK} J` Q oXp!p^%E r  .A 95 G@d~O %2&e/=J cd%jF !$%ߗbU4 ? :6?pI(I1%F7 Lj>AKn' wb Ag=E AtX !cFP+!92 ?-ݾt ,0xBj 7L 9 3-rU ٤txG #Q TC  :(  d@:t?O~#N *i%0 _9Fhe[ *O9* /C?$ {1xX( =Li l_"!Gc"S ]hexX[QQ ݆#[KA #( 3g>f2 C& { 8& v L  TW] tt68N/ (!ٮڌr_LRv $ f5 x@pQ J5<6IU7!S?|d eC |xslH5i My- /n F w  $B vKh;$a %7ae: 1' M)R {\3 l W  oP8p$O (nc^' [  m Hd*",}{dc?n u ^ 7':"TC7s iamb*OK/>D5 tSM*k 1 # B kޞ #dB} J]Kz+ RB*T~1F-!{ g# kn *iY $%  ? 9m<^S .+9t:St,  Q4R S/z"yVh1N $77>w om MF~k~Vx3 {n/(a !E=(l , UrDI'Oqt<2&R   jG #<M{@L8U d B#0 wo+&0K ;@6' v ͵.Z_!L^4<` O 1 f9/^|}G aU xT_pe j mv %8[ ^E BهT } Y[ 5 s)!az .6 1PjLO dW$Sj! BM 1>13a_= ݴ5j frh"1wV#odTK U /J1R G"%\cb*W'C A c> #.# r~k g׿ 9 ~w5t  A E(%LA  x1@EY J^y~   - !'# e!KRqEC3z+ Y~q֬F qV 4MpH)n >2C uGC B{*L P0+y3h< L e  4ߟ  /o^ ]N9`}4 &'0]j:6YBAr 9jG{ 6$ !Xl #mLf&ui֍92*_"1e$Z i 1H^"cO= #tޕJX# %Bcbt/ mBe {T N> r u-%M@o c 3j B(4 v[ %I@  :KU6@ X=Q!ٝ<c$`r[ &tsG :U-9 C/pT`CYP{xpW3R2l*G' - JU >0vZ/? V ,?Ec'  z+]  L w h JDL ;R/ )T 4RZ!:BVQ& !+%  Z5% r XG N=5|ofGV? sH$%0 =V@s]B8NbqJL? &i3 Bb ,+j#u < ZWP]{&] rU2% C?1N S})dO6 ?H_6)+*O*!]BD*zJ/\?N0Of0K-c} n߰ ;(vU 5V $ 45 wx @. T= T& f6; w _׮y SC _HX )^  wr*B"Q&wD=s5od (%"S5u Y%F SJ!K L#K  (" o! E Xc#b~ n gTYLXZIn~'P ;u!b BH+~$!4ڕ\ +7t x {JOQ4t'Au+5{> >a .!$.G{"BHjFDr;) %r*) |'TjxC@z9Mp 7 g $d ,Bnb  .B^t^ 0*Z/ + "3d8 uBP p FM> x 2T i_v$k {o#>5jLK{a+%iqWs8o h / l" P * 10/ Ku=_ $MTjY8~rN!uKj\} A E/v w(rHIN *bm!fs9Uhx[!#O@MSx  2B7?\"j{sp$)?_\n 7F&B  0Rx73{D~@&ON 7SQc;#!s 0b   3_sNT$ 0D<  zU{&$(q }(#35!d!a3 V0eNS. h0i (p/cyj T `:UK|(Lj` (X@SI<)& `E V": W $#%9 Md.* mbP $;B`N}dx`E' N, R Lr?p-6%xko44/!g  TQu# w &W D q) \S"M{3)! Z` W 3o6t aJ b G z> hM5 ( b v6.;ܼX$I*=b4 .y 2'p |iC5ޠQn\;pT{KD"$ OA9S+/Xc R  |b%"F"$E j zb( 6NN1fj 9 -Fn^X(7 WdtL3 m z"#rF V L d&FjSDGl 75 3d?5a z RA >=N!=_ ht~)coA  nH{*v8לGU")#$w(y d `fFXG|ߗ] Gnx +_uSCx#] %YZ w'fWt*$ g5a*fs[ k ! /%>La;g~N*8 1Ao ,zE$tv } pA Eap c I  )% EPF:$E2k-]r 0I*t#Zc ގ#<~iqR| O`xaXqC t> נu) 8$kmKQG Ym y:e([~_eW"Lp l nLg(\e ::(h"&/X&%"B0UX a PO 8 ] }ڈJO ni<ۑG#Tw>[84!|-47{+`/v'P2AnׄtBX8O 't_ z| Z $ aت !@ v T -w )X RPI//~ 2|)c   % TH#+ tއI@V= eD,K bPV@ {6Yw{ ۢaAD#) mR_ !Gq<\NA !& 3BTWd w "r\) q ^Ӓ@z,/aSA + AAH6L?t I 7tAA tf' ZE Hܼ  %R c6 (E wZa|ߗQ@f4A)QSYgs9uv+$AE  @ 8 > ;pTdnl U7 X.$x c} Q \c ^ ]_,'}_o=- mmah]Z\MIc .#{6 8` f yq kTH Nnzv~0@{.HX  ) +%~k+ n lH  E |k1Ov1 "R60z +|(7)jVek  ZH9_z*Z :N f ~  }n8lw @ #Ui^S / " S %]R6p! 1kb p Ip,F 0HtO  [ߛj#S H~-($ N3un h-\K ch | tv (js :B4/l f@->'&|i@% -/&\A RТ =$S^I+]hcJ^ GAzd}G#pO-UHx J^ {?]AdX6 .V b7@.vS= 7,X *) ,F~ 3aGFwz  q J u HJ  nutI.}aO  Vqj| (>832Z<<} e R e"?!%!r3N  ` Q%!  W 2[","  > 9S+ qAc"q5?E} E[ D0+H ghR*IsUcR`C "A~ C){Z <0^A 5#f y{vd&9k7];8)^4 )Rz +!| G4< p  oQj40kV <  E3Q,+ g&>`#VO hkA,!e-"6 #YbQ Olߕ >O&9'd ^* SJA,3%F " ,Z^ DF-\VH |}M4vy"QhP8!c&Gy j*Goy {E+QA]! g6)'e -Kژ_ R"6G1k! 3L1 v6 V wr $ zgv .y B0VzbOtR `rr \umf8Aay~gW "^$>&pf7x! ^5C9?'M^ G[R2 8"$ 9Q"^ |J:2#w~j j!GUݖK qrVtZB e6J0)/>* ~ ->{1| KThx tDDF X)sH{-   G Na$=UX: ?"UkG \w۲[O O+}|Q%ec` y. mn:$z%n~WYPV0"43P g )sIn  8x$IQcSw%e C?,3<% .!7*q?  =  w! vP "I RoD's *c'L3 _^vHG"v @iS`|.u# ۲F O\ l G 3Mk,8= d M(5Y/ [ܺ  '.V r5(l9 j0"_iXw ~PyP y '_ RO TLYj%w!1!" .LN kBG_U is Dk OAO^ & 'kRSgcO>9TrE3 dX) $L}J  np87 !O0bbH7 K8 qԸ \1/ >Y^ IT Dn^ߏE h !\>nC 13"|A( (9- 5cd I *  q4pQo#w  % | JFw/^ < ]*D N0S> .67 fc Zn i. m|F? U0  ]^l-1mwHI ^!(Q0WUKe[\>No-zuWh6$h}P&va%!!e= V j ;H&" ~b{ # fVA L~d?| 5p'(yp $7nSt[ |z1# O=~lB܈% Z 6t  Z)clH !/.Oޭi3i Bܳ ZHC:9 S - >@[-}F l ={k T" ' ׶ٜu J @ ݻKOr`5H*Uq \kF"~cY J "'"d 7mEN<`PS[\4` 8TQ P3 m+10A"so jX96ECNK$x cq]*>:R e4    +jK.P#?" >-ҕKM#{C (Xsq -x#ؗ /0yddPO& ZoLM 0Ni$Gm vHR&( !J K\3\4  kz m!`!d KxFrF f rv2MYH cߨ@'/{zyyA E]dz|%-vS0*B9]$oOuJ a4g"o#2hQ9o(S\JjC.m'(_5  :8kOL`)(e%P r ^Q 6 Xhl`Uw HE /6a  F aW a@%}FK=1 |-Fb$ <ZRkW* .3mQ +wIOKگ npW"gx Z *TdVW40 ] #Wq HW 1[= ]hwc՟1zza zwVx _   hrWn -  #=1 .M%]0j@~f?! .| bb%` F@ Z 7%J F5/!Z#,] UGK=\-,b'u+]T0)* z Q!T #PKP"NLxx@W>>* 7 l SxXh,jjP> a "9!xV%OWp ָP!lNxXB;N% \8+X\ [,u u~AvN^1 ;) K)'  E 7TM \F$DlM Y h" .<R)ZC?$/=Y  ԉ%"BE$y?&#( 1lP } $KD]W0 p*֓5f | K^+a Y dE r 4(6j6 c|P1!7ww+C HK;?( |gS H*N W^s1#|#{p+cK*C@ ~W  Vb<   0iO Z F'>*%OKF߷Y$U# (.>)vIA D <!)NIOa # *eW j{\w2I - Mop S=# 8 ?ޞ;SWtN O5;Z 4!\  :HF i%.t!(  i J Sadz#.T GM+>\#C!}k` dv6 U ZB=m;<#B"E_+= wf?$ b' yMV i`__i N:|wZVYW>< Wt "Fl5kZGtܹ ySUg sk= >*!&үG)n 2$ n)&-JyfN& %c!wHS [*c {LwnMu{ 8dR-#%g#} #Z"j Rkrp2 wX9= ; fv0 a Q v3<U. jIE3{,4Es4 e]L 1['XQ:G Rr [t54Y!cѻSr(f3]h?h~{F zu|X? 6 t U  )Y k ((;lI T" =ۙ p % U kRQ 3d})*HrB$Ov9ٳ@. e  p +f0T L z"HjG5e7JV {6 n,W%w!  bvfs 9TglS#?; b   HwKER,H Au#&7! ܲL!T-|"z-!o ? s^ J  G9S Y?8;;N L2O &M۟[&)C Z oBVp[\BOX *{>*mR Ba )|"9Yd ,kU. E"U 3qbQ6|u yF`SFO "c x E7 ZM c. F 7~[ x5 G wRx $M 5 ' S 5  'j3 *>&+aܸg6 qZmsM%e D #T v E #NU=)"ߟ% ;6C,E}O/ [ڜ   >?   S$c f8!Y6xx} [&R@< AeL%:wjx; 0  `> 'N@1 r$Sk%H2  48-LSldޕ u G  `# 4y(JZ% e`iDI9 $=l} ZY K:  A1.  vh 58֗  3B8:'Ke&pgK7/? p#V3AzGh,6UA C}! jx=-,Nt 5 3< \ b#؅!--  bk !vf߄mpzH l` _BQO R|S +9EGiHo   *zRT5W6+  S- O] $ ^ 7>Z! ^>ݾY'U#I/  054.j z A! ]KX?JC8X|&UH < YD#q PA{ , itz_@-ld *\RڍU2 ݁~ a.!  ez KE`#8 e*LHQ UJۧ ll !Gq!&%)  5Xc X fWZz oUb3 LnGTE>V0VA-t)F  l fq8 M*h 3l_] n" пP%2! J2M:  (3tYQ K 7 >*1{'g\r%j#;({? % O1W%C  ?т\7"!u $:T5 L4M 7}{bj3  O84*7P5 %1IGH04'"gq|PN 9$EE'R% + P#p(wWKTr!D"W(U߆Nj $`U9Dt!ee?3d;</_v ?Wd;BoF 3K dFWh3& 6Lym  QcVt}?iB&$!"~.] a.WK( 04hdZ^ D$ ]^!߯6{q E O o$[ = Ej}  aDk .܉-  46 _1bw .t % qJ&i5`g|3!kI_<;B w @EC C >,JH5  - Xj  ("zf JCe#l:P-{zoo RF &} = \  CH^*<( <8 7)L;:AF!eaF dn .{u!m)#VK>^u !EX ~H$y Uu 3g  !!8W?@ln|02 Kb~ mz &A2-d-G 7  nZ $"8 [W R) ?.Y|Y$ QdN }SC \ kw.!"o  9PO]*X h#u( 1| <&+{IsG-7aIߺfF tiul ;"^ l;l  :J4"6D K[y"b0 :|`9T =0: L =H6(Q:"{! hm 37mw6l?}M{& :b!ibl c " Q xf7& ,܌H > f 3 !8u ; 9*W\c #qQR! eA z F0 ( Fj* -+ sy:'N;bD ^+f2[Y% gۦ  cXk,Rv~sp J9?  {2o$ I .9XcBpV mA  {& 9!f~#"i X o r$/f 9uCC"   6 ~P8v +`oQ?h7K*A | 2 !8s x;Ync| >ziNnog :o{\ v;2UEC_ZyV/m=; 'il]:<C6[2X~w#{ejH<gI/X5sN}mBRUPufs7%IQSqID]mSK7-7YpPC __D41C.y]"R7Tg^N xs@;_y^(\'BE6?u>vqN_XXz0`1yOC:o5 Z/i7"ynvROk612n)Ddy7y>n"iMe(YbD}sW)yM7{6*#1J5:-WvA&L`k_4sa-bn6wOs((am1AtcZT%F[D,H+H ?V WLZRm|Ph;k' \S':wu6hwm{:7MDJa9n;se(qZRw{+,^5mzc8yb zuj<}76x`N25*+3,,3Hy5EO|!t %}wN7=_{hL/@Y[Tu^ Cg5F"$9`m FrC:hes(kOh&:ojYQ-6ZO5M )(4meE\5 dAD-xPC ArAm$`t_N)a B[U~>1qM6EaXX3KeIDbPc G 5"(YnY[Rn?`]W + Dq-\dj\gh}7BnvTg3uZ/`[]H!>Q`vY g@2&d*Dx)M?&hp\[sC.evj&f[D9FSi~1ZxLM]e3Ei9DcX3f{PfCtZ`!(o e(v 4a=Ar u;0Kc6i(biHhT66 gjynr4vNU3GIE1{iyZWS4>2|HA7UA? : 46[At|X<O,J-&;=e<JR"Yky0/ ||k uoHeϽR  ;|t =JkCt I Bg $ X sfEsNr z~l:mh 6+g,fLg% #V/eAu *"τ  S7j' - thG5~. /i>v ~ aJ5*  X.p"3] P eVYt }RM1$ t r5R@h{+ Y Fw׮ zMT&  05ES|[&%(v}$ 52%Oy!z V  }x28#cߝx;[ C h rm\ |n e~Aa}b$ {d nZ/@ae9 s $1Llq /z#0>@ 1m &k-ډsA!L,W3= , <"In40Hg.c;qxn=FaQ#}T 6X%VR'F\ Wn ս, BT\<,K r'\  @J jJy7+#kB&(#[#j $z"{ !! _5G% K juۚdFUs5. R 8%  D u  8/iyk SA" IR*6-OI mMFhW#K?A.U}qx9 Z,M{@Q p ոc g X1 &O"&`!;~j6gMu  6{ 1CcPZ :>C Y ?_i}N= L-/!!5.gxnL /t7 aL+  7nia CiR379WVL4[ !EdmG  A Y?)3pC\o,Rc~ } bYes|l WM 6#+ q ~+BaTX W-q| ;Ic|{G;83{P[  |upL m1=kBsP6G/=)/~] (%E;%?@{ "&M_\ m, `~7 H.NYٙ 0oa]`FL  && ߰s:, # #[&c:o t }'D3M5l*    C1 D)$ > &* $t b^E*ژ  Fg 6  o'G6uE C !b#~T0CNv"m'x  q mmlDS:X*z.s 30^oH R s6o_ y%~v'hH"Zp1bmb '50 j:qxdQn :OD 


PuKq-vV 6!'  r _ \FLN(U n<43AA"'1>x. < ^51o 2xN 2p7 T} 6XT .I, nld )n#7`5: *xasm6)$Ebp|i Z M * &fbDR eݛ r!ksO = d u!X q$H% Ku?B    \ J fv{6%fGm. G  fz  _FVjWUsNn$!}W,sa/w~nq=p9 gbU!Ej\kZ0 R[hJI@h85*?'BmL| n(0F%\ !jUJo4) ~Y} : cTj . =& x73O?H6*bw ^p +5S  :,tE/A !n!m~ 9 #T5ߖk sH5. * CV 64S scRM'<W%$k޴X)w5۝ yo oAX "R@= Pڽ() WGH Q8GmI#  ߲ !?jc  y  nmx,* D۝wy$ oa B hjv3RwӃO+'-j7 |y+!ٓe\ 6#6e/nTk e5SK T $b E݊R {'Jz 8h L h" 5 $ 7x C x!R` S ~< t! / Ly| k0 ~}Հ\ Tl7u > 2{f y4# AQ>jA8d "<փ$ a& aje`W J  pj"_  3$: 5wE8 /px,O ^!48& ,LovBs#Ts2O > 7[BpV=  x bxg|^ TQ!Q .N(X _C :!%W$5,O / ! / *|6Ih%FdQhD AK C%z@J f\ V9"+"auސ> Xd(HNSc`E1 '=!.H jj26M Z!'j/G0;dK = Jl Q A< `h _ n Jih; ImWy=cy) )@!J֨ #  ~RW \ h z YSn < 5/W?*46Y!jHJq TdAU-oe#xt hz uUO ! &no=ߔ ?!mpE F t7F***dx= Rq 4 a=So [}V<f) 5 @Xd U  X/s_KH 3 r/!n@&x%* -* 0 le F shS+ - +  ?l ! ?~. 7 cyXFw 0<8 4i!  X `r"4M 4bi! H 5`H*69\  Ct_T/޴ 'r@zGTF#f%JL_p 2  `t  .%(;]u7Hh2jq9G$oڌPK&#Iz X n0 ?fR  W)0& 9Q*Q,LO| tm +$776 ]du6 lQ mjf[ Yߑl'\,?w{|  T (1j.0L 9   l-&f. CxfAZ B 'lR? _GQ#b_K bf EQ: "%19  /#6^Gf !"1oEhLDR:p#9Ek) w] /*w p 7 xMW*/%$Y1 (WGMe:U PF}5@ c-DzH&#!!|-i 0M g 3"*E & J׸+!! )t Im\ :Q$IiJ `T  >#Z !=ܭ~^j -BCDN@CbޱgwJ3 B*@ }tBJ n8A׻~]%B Hq B9m X6 }3& _*P vO2  ; [ S^ bܨ$p*<#f#E[=[7J  m wkr^= Dg~7iݧ 8l!+ =81% d LlZW>n66f? 6 |4:s!zpb ; |  k.D; 6ԇr#O rn TC7j#1hH Xh!c c,4!Op& "7'; " 5u, @(>'r rqKS Hq k!B 5) kw$$Fr! & 34rq \L nY Q?  g dq^huP S2:SД&O5"p-d@\L0&CZlw$ 0"hP5~dI)  xש"  XCE BLJ7lj 0  &tv| q ; LUS f OՃ+YZj ,{={P0\JAqCCW 2F +f.%wv dX9sz2! C&371 [&<g2ye s ? 41   VP 3 eDY l" k#i[>eGO)oQomN U eE)pf0.^m  F+ S. 1 a)De= r 1 WM ^< >QQ 2@D^NKz"$1  I oS&z9L 0yC'{N e*{>Ԅ  Src+ G{ i%[l r&ULF  &1%0 r#TF  YP % %")7c+.G n rTOQp b19k%JWQ k<D o;mY( ] 7L"x N}$ H1L;.V }CLCc,٫|=/ d*/`  m&&1L3m qq q.\ ~##WO3"`M&# YMW W $g cmHe m* dOdJR[9 t()U d RM 0BPK3YT.ߕߟH\$|k"-\02@M%]S#agaqQؚv sO4~oC[ :+pp 3EEY{ _%3(G.w)/eNV k1X \G߽ + Yo+'lAj{1pf ~ WwzԂw 7HPt c8_?Qt!e! 5y \Hy]L ps"* 4jjL!^Kp hDTKo ;vj)l<P `Y ,(Z$_ /"K#56Gm/A f= &ԵF&*$_j   lGh} %! ) GC "J?  (7{9t$[%a)Q 1:_0?#Z| c vj&W>/?Q_$6_@> !_ w MOZX|2 5iJ"q)qYX3+ { w'n9l DbkZj~IE" va= ZM a\s  ",P.##}H4 . *o5&4 9 T{ .){| )Ip( ~+nH k' V[ oTP Jn!CU6[ qz-{l'\ %YK!0Ex6)b :"HY E  ; H_GM%A,yU1(3r9x3u|!Sy?[ Lmg EߜAq OP84#z֚ wnv F , 7 p= ބS%J" CU  w+!a k[ND /&?d g-A ,, 35 s P\oE KDT` T + 6tv )v  gVq""Z֥e8=!> :> r  Qa&"!o{{ K bI`)5ޠ~ c  pC E^P8i9' =! ^ i)t D_ bzS Aָ#L/z 5b \Ya2l ֶ`';(q+g|a s?/ 7P fuT0wQ= Of޿ %\P,l_ y?\Zgu/ g"/_? ;~2F%7~sU yWRl<  >l-q^" A%Z @N߅ /T? , YAs!"$%kNAtix ^" 3W cR4 W NAԭz*S_ ~ y   A4C#\aHS"p 5hiYjR 24#:j& rWa k ?c3yeW jv% #މ ' T/ $ 4 0dN 2#J"rR ! T,x0 Z 1 y "z+݋< >;i 0t @ b-$dT KC R_ #XW)y.5 >OMj PBF%Da]:m0"c wD"yHB m! 4/ n hFnjGڲux @ C .@X%ZK;a3>  b"SUw[? JAJM ['p^!+J)$UuYwFM >), e G '_ ߿9 4 3V( _MT. p t cB C_` PJnA/a : GYVV4$m~ R& $ \,O 0 K` ]TL q 4ه<|?eAH ?#>E DR V#)Wy}k8!zݦi> QQ Zx2e;: #p+JIlJ@=A h-t %M ln#0q;U% X ? (" + : ߓ!:Sr JV ,&=lm1FM zdPC '_" N     T Ab/MQ !M0QC%m > mq tv Jt ?P As H* * $ &UX:Oi`8%fV&e nc{xpV&bC d}iu.( eJ  svDC )$HorL U(v8 KrFI#Feo1i jdR v>g!D0l2 `Zf` >s l  e0. -!Iv1' YHCl ,crWl23UHt UaXb9 0/(]s Ov m <'i:   VO 5' t=E=:(#qkc}]l</@ -ob;UXA EcO HrfM{S }o m` *Qi @/ /% w?ovq 77 r9TaA 3l&9 FDN! ^ +Fx +H2Y" o]?*f_\[oB yI 0-$ |7>V'2g;1kh  {/!]G%?m! %}Lad~j , > 1<$4}On*HB  h(;g8 t #Ak ^4~phA ,fuf*-[NGgC^fS  g]yrs"$dވ@e5a S^O i9u50 lOa ޶I N-  GZTO ZO P k`S 0{#H#X4C l {H.  s3&2^0#-  Vۏ F3  I TEs0VJ7 q~y:kW7Z/_Jb[b G,m@QoGp@iGaT *? KuaY. SGG 3 N%"p =T k" DQ  ZN0Fyz  }NRs S,`#@?! e{ ]# % TY  ']D * =3+ *U$ 31mEe J dE~UL#/r ^   yIN&?3 T0 -D Jk 8# N ]T;s  Zݿ. 4 #jSjkW$@]dk \hz c ԕ%[ -Bq 1fI -9 Ap =g( _ +v#O9 PK & 1ڼy {:?aCy i=6Hhq6I A ӣ%0> HC Yz (N ;h9% 2R =R'>>߈ o5d y_׎E@90 @bx|D  \uYy-Tc1H2 !F.fO Z a{kH 7 KiLV(|p VeT|]i Hasis 6| 'S Zdr )!8"z 'Tn&p - 'sO  :ib XlM7j% Cr }%d] mnP $  ޾ !w[ N\ ; _  {'(*aDxYWypJ8# IMN,i L `MJaTe6~ | ytO > KO*k #@ ܐ ndoER#6  {cA > Ktޱ[l m& .:.: [a.کG n3ߏ..g8  u4?b  kW h &J[ T F,~4mpLSA,K{ܯn7AY 3d4|dyb5 ) |7I4 H" dvG_  ^npI,> ft; n  Gj's 7m4@{ k[ % G cb!;jT\Y  e 7HzO7nk Py gBIbM67yJ4} O F,b RF}-!U =t+v@CS   )?Ll \4wg5RJ B'#g`T%C_ /,, N@8Q D5 9f p3E z^P Om4t ; &i]a . {*w{jzQ "K |aA(KShr p26MTW S#?D6XN{T$dxo\h&|, 7 `xzh 8 U$Q  ; ߾  [ J t&k /  U  k "GD jM s!cW /j%j! %:# z N X.] czQ c^& FI\lBg7L 4 Qpeo : &GX 0-}d#Cfz 7 W+"^$e &3  _ mv3vݑ] +%d'oXCA9m \W  iZ/9 VV 1m[d| L d]rmCNz  }z">!#N: H2 ( fI M.7 '. EAZ PI3^rP 5F 8q b[Ho^ 0h t *j#+)2I,V K y5 DNk# x qy|M&mK +SDda$n=ju j SG 7>f Lip1z 6{kwprQD1 ! \ީ-,W[c. lQgE:n+j-0 Ovd  4 ͆ܰ * . n_ h],"4 E0. ~ 7jx}| l7 O2s "~&Hs V ]hF dByG 6{V  ,O  6 #>WE fܰ`  N&W/ 1V BkS z~ 3 WK/q  Wq#ZU' /BCDDe e `+Y31/ TC # 23; Gxv>8 8qB CkIekr e7MA*R y%G <z!yov Vx #!ds{5 Q !9 ԶZY_Me g8z r E- h ? )O> #VL I`O Qk! ?p EM C FA%V?Ze  r( a+ ! QMGw 8 u9 F]x " t  %*Z<9Pll% E %hwG(7 [` JYrhi qO"BG1 yXp&"߲ #^k~ &4:yjQ)#} 8 T'Z4`3`A }NWy$ !j `ZkO$X 0p( .(SEk + ~ _+ 8  W v2:  u. ko/` R;0P tsi,H5le6[!iCgaj?~# JMi"KV KJuI(ӣ^y <= yh=xVgn2-v 42 rad -XxJLR!ss< z ; ;w_w:Go- &/ ] nY N9  :Z  vS CIg sITE1 iB[p$۬< ]/ s& k x" HeDK i\@M )(f YXE aҜ^[(T Jt0~O%-ML #] @ 8b+~ {BUu$ d _T2S"*߯/ l!F}Z\IDc U!{+E?rZI )$0  Z~ܩ 0 7? ?5:"|]׺ L(y Dcx<3V*\S.T?9m^n:(0^Q?[Q`X0PQcLb"+-t  G!"n^RL Q% _(G Mk7d[9  ]& @o 8_PD'ZCS f,~i1YI[: O _=M\ TsuL?J Dt  t! C { :$ S N(7*Su {gmCcU*Bz#t،1#[=[^v  pm߽@ "' _$$bt8L7VEup7o rAQj :h6A >C r Yh$ tN h)  p(FK_ (~!KV.@ : bY1*` wt,H TN QW XW D G ^9w !* zj s(9 3 K4Y `(O:EjDV^t ] Gg\ '޻VtB yus_r z ]<lpg[`P w"&V &sc =F gr51) S1 / JN?uRYAڹ*!6o #&2Rz EP q^Fi'JrI7*0z->pe R CcBg9 FGW[!4( @s TLB]3S bMhyR!t\hOO xmJ 1$w'Y7@x9 W6F J?E%6/&  vZ ]Hcb9hjײl i(%!Qx  aF-jD L#e Q[t`3}>C " m ~+S.O  DFcwE#CL LT _ N]+(  kdJ!(y c 3_MxN_  4`oq665 v} 0<[op\7!K >( {HvoA  Z8bS? ,J_ WJ@;7w yQm k|G!  Ou9eP(I*3.$9 8+U%@- F | "; 9 Pa!> ( c e E7 eF&'.S x+@|K"P ' vؾn Nk+ { Z"g   00 "n l- #   YYK> -'BlE ,y4ei +) ); NcM !N{MX0 ~'%Pقi yr Qh }nS!V\X t   G06Mh ;[" 9U+[%}i {Qqu FVEm0m aY GH4%mPJg:'  }6.DEw% d, O( /i` x6Ol5  J 7lk(ga3B  GL| T^x e9!d =w$?!@" =XF \y~8|/] M_|i g " vW< -= N i"Tm :2%` fP;#7l9D o|,w~ @A9<Ԅ v'OB/] 8NhI  I6)R*y _" >2t5 $fyto  cQ [  ~bC;9? N0\ @{t\ i1XS8 0 qP"n,g^,j@ (y' XL^ cF%F5{ g}j*$h w j XI*Y'L hFS  RR  {wj` _ F*:6  yrY)cWl k3 - Y-#M4mU k p$*FL _At Z2 5x / 3 =1k t8؁+  is ?$*L Ybe~Qr \QzA6L>rl# ץ% P #|j A q&<A&v 9! f"dQ X& cB_<f\{!o \Dےq AH&vr3  \-|zVr^r< u >?#d* C _i 1(+=F y*/iro |Xq[3 ;n#Pf Kq. F86DC72hz c޿ Y S _|1 mH~'!eNEK@L &1\U8X @hA"EytP[i " )0RK //  e{2d  #N!)L/ FgfC]xQt'[}yL ) Y> vX  r =M6\ a } D gy :G V%p D #o ",!f%* =j89%5-E \ { % 6mO a0aUxK C39aV! ) DkO %G`~t% X b .{6 ,:x|ٗK$VJ-/$ E U5IVp9 !Ou{GWC M V?#UmL: l2jB"So-=} oxI/O Llpz #f# | $ | % ov o/ێ@| 8Z0 } t WQ Ws &D/ViR E$1w-Z<ت at tw ޓ a A8c y|W_xi? K &u FI\S}i \=t.FKT! LU ׄ ^QL u$4vo;t B]l  BT ,g j\H Nf3 let#qH<#  N'V̓2B!wHf'\rU d nL v ;?) {M 2?4= ^3r *+ S t?u\! Vk; # ߄Jo VI<e#|Tbp /K$AK 8g P@C* 0?. +)؏-D@W\ V 6 B3yqE7 (k ]!0i]& ?8c j GY / @nNI8mto }'( ; }N ? E(c,- ~'P &w0X0p  oj \R(x~J?D{hx8 Rnn] +e"a}"{ 4 z;Lbtg);D .BPn(xL/' ,$) A  XM pt]*; ujz"SXumZNU 8,D| Jd \ wa Q;Jf^[K"jQ?%' X UEzsV$&Dߙ#J  & e t]-@{ *Y- EiGx=^ {IN1Wx(i! B3 -`{tg[E9#2E NQ;O2 X l\[qCA} Lq)E?5Yqۂ Z  MM @t% "."H_NTy\N9R  b. ?29 N(3v 9Nr ! U.  "Xi2*4!6n" .%&x 7JkMR filR lNW Y7L L5  N. V"w٩ ]9TVp ~7 r  #/.]U.^|4f !.N8Xe  Ki  65"{  9A$[܉  r*uTt ^ &v, a^ TC՞ ~ g< lf QV: )]+2| yyAx |jv<_ J 4 4/GI/2, 9rJQ0> wfLs8 qMJ} ; $Eߚ_- 'q Hc "klM p){\af HGd 6MgP q0 ?h#;7 w_;R/ < 7e+5 v 9Y.RMEo = 8Y_H$ZO"zZ &uu-B:)0;2);N =}7'#t5  iV"& EC E.Yqr 7}} a 0[hBnnSj ZTj CC,$Y / #\_ <iw P/=P aSY ()<7 C haz& .Qh+ z ;u,9 ?hq .POe`& J]zH->Qw,h pvj c4{q&& < v3H8 (WwaR!U aC&!($lu5w  l m E ji@h N; "d P& /j! #u BO1P5L\)^qg { |#L6>v3. PrN MC" KsNP J _Zs\  n/2(UO8^s :'uZa &N+ieg` `!  ;bVs] K7o dN6!G "g &`#F iX j[*G)\J^ ^*A. z , ;3F5E1ikM0+ QGw Q e Aq +Ez F|9V o1 p :^ *hUHMS  )0.Z U}L ~!`XI|Z %*v/&d{" id<y#f?8c5 <%%/  X t P4P  q~v#:J8/g?La QPO=" #vqEo"^!FFo- pPrUS ; ]PbuV j 9Q EE#+!g  r c ]tH %8J+wJ p!^h ,y$9 LJB  cdmG"'*=.WCGy5%Vign09C/) ? O< ݜ $!. - FMNE ! )t O`% u[!1`  )YHx-]ݳ(Xi, U\ d2 jPU'(W5 [>ݲs zQ5YIM* U%yJ: آ L)P," U|L0Lg]F  why: JB0D_ &$ۣNxadIo ^ FNc"  ZB.6!`و|Y S7 @2^{'Bt =J q`q IZh[! o:  Ok-3'88C t1}fk fcz: dw%]= 4r'فxcdmV3I[ )ew$ani%x$<]Fam1n>X K M:$m- :q@\;C35~1 xV:~_@?O`1,Y 3Z q EC16 g g AJ%Rmh @J  (5} {7%Y$ h(Fޯ?M$t # Fu^Z'r `=,$ $*$ը{ 04 s d[ 6e.J> 9 LH ut2 !!uJH S!{5dd sbq ,o ? H/ 9 #S& $| q90":R yam:' @ /*WN<bA } :!   c eh k2x sA8  x8 PC 3. G]4Lm" ]=B)2MgB  sh~ * 4 [1OY Z L]ws .&GGDL : B3X "G\S!F 2u% f0# %C$*xF8x@\= p 1"^T!80?#k ^! c Q oSF 2 dgWA /@{  W^%$P? Mm!e 5cE? 5"&p = 1rl*s~ ;B ZCU::`gj edFRkh{L qFp   /7Z ]8 ey`&< ^ X" $PGx )WU M e%tb8:!9g9 Nz)g   C)v_f~ R P*0zm  A> |&&) Q"! T yNs 8 Ug VE 5t-ݯ] T8-,p1 "L_.}  fB# %E " ]dElrh[  -9M6,c gf$$Az-sl [+Q >*2 W]r{ gh 8'"HcQ@ 9 x$= c d* wr>Vfy%aeNq( f?Dg E, (w $ C"xvC #P AwS'B# CKz܎ڬ $-q3e KieQ!' U [~ JD,o L+M ~U>ܼ Z".r !|MHg -tD^ T2z  K^y@ q! ) 0~ Q z!  Hz]/1*q4 *^ L~r [ >T#IXo K :,J i ZQn82 4 L yPx "cXF [b2Y NIJN r~ޝ|Q  ?ir"*&"ޚ :q!!d  6VA8p a$X #qx%) wH B!՞ua V]x ahb N /9'S!t&^p%  4 v N b`y51P~<da~zm5QE\jvw ]Y hU{ qtgOUo(h ,!)q+CܯR0"a1_[ ) F0-4I"HZwUQ c<chNZ !$ #f tb})Y> Jd   G 4QA\#؉ޡ@y aq[D;A 9 y`u%prg Vo zxI( ^p =@*.?' VD, > 6s,9Wnz %u57l % >?ZFG682:n  /] \%k /z xb/ ENk}&@ ( $m: [Wp? o1 xLeTKH1 0Y0%V t :1t#p; W "  b"U^ E [^65>H N9 2ap sGP. G* KY,J lw% #M-v%W%IQr #yp, Qݣ  9v ({tj-"8#~^ٶ .}   ,<c/U$%Ok۫^0K  $KQ~r1"m** ^g4hyR QF %!9M%g =Y O+S3d+, X3+=&R 3$!@ N1UW 5 c pVi6K$L b0 O[ Hh}q Qܞ^  xMG6?o]%m F qd  0%@s9 xrhsQuz R{Jo)m uG   VU  ZY EG % ?LEI*7 ; N  w B}9OEV GT0Li.u׬j  v_ 0P<,k +}_ nt xj?{( [_})B2t A~s2* _q~:TP QS$ Y x݈|4p Uoy ^ _ a3z%hL9@}u c %KH  GS 9 b9 {B? //֣V X): S$B/BS Da/ L / ##fSl K0-"R*] = $ F \ݢkW!uE ) "!' בe l o -}c4 (G5%G^ 9zvI!.Ur+/6 VO d( FB(!#o)|<MLJ?}.B+86O!IkE nw h$2 b3T: , g_M)Hm"O Tj o n q #yU)& F~,7 -} #x TC?' q=@ eh/^G?Jp!XA Y Eu # ~U= [vF V C HH\Yz !++ !J p! ؽx1E Env /jX6k n-`kd/N/ X  ]j #i_F3d7J AI  ) 1_Aa-Vk5I* g_ . 0K  ~Nfb 5@PK؉f"Mo5  u ` wC+ ":a o *`*IH_4 yc*A+u g c 2?- B5o ~ oY4 & ~ `Ѻ#!f޾8&FeK!T\SqHY w*e"H 9mq& # ۘAPRO-h X| z|28I,Xh ` A,S81w5bG$u{+7j6lsa  9.WU#\TZ]<08Y}qDJ CsT+C :c+GO[ tn<+wL WW Z3p)_BTkr u| (}b "!@ , b /u Vh @ m*3-uB@$z R> kGI3! )H4ڣ5!?18 3vW: y#` \ w /Q B 1 / Ml? 3AdD0z6l # ;{&!g">^Xm ^{ka (!s- D E4<*>v$y|OBu35 ur D @:=K!f:$.  If # G[,w z 5 3}ر/0<)n \ YKJ} A<  ;[hkc [ W B #3p(  M70CKdm&S  P~N&A0*~ A,F ?{ %KB %<[* a ("0rx'3 d D(TCU3,wQY= w?! &EC?m#vw38^/M L&<On/u  ve Rt1 r  <bG: &  - ":fwD4,K0Fk iv)Bee R כr#f#-&f q@X OR0!4j _| KE$Ig ^|1gVE'H?>f u> B) R~4 8< !jn;Zz}@l4)< hS;C*h/MCg Z 0 I]#ZW$֪is5&w v A 4XAc Z x5bm+ 7 .G1j6T 8 j ~ .ql ~X0D^ q I : ? O-fM8#nO wY? z:2 emf&yb5 *R"!U i%YZm #Uc) }B L| $x=KA _  i``)]p I]N3 %)7=wI$O 4< Bg |&D}f *2A@X>>G ` G^6B ONZq AT pr Kw/1Y~Q|e7X !4k;'m'+K!WvjAr 0)KjofgF T,A.i  00 u ^o#u lVM  Ot! L *O 3f+>% |LB M1 caR  .K;f1+_\ ]\q  7e st ]n#Ur6$ M 7Xb   0r F*gVFVz;rj6$  '"Vf M4 x6] k+#D {b$}? . ~!v~-z 4(K^ ^ hO m IYR_]()Zi)x I/SP ~J  SL,n &\X R \"xSU) n gK.4X;0fL 6 zC#&@8`>\'@Zh#7 Ig fkhb  | Iw! P` {p] S ,c W[17 MP_ , K2&?[|QPJ#&b^ ZYGCy6#D* ojw :Ez_+XR q {gm*_$Z;wg )$ d O+r7m A5 |W  ޵A N W ,JRV 9>m#wM>) .v>R  2tYUt8+h<ڧ/ N)N;#u"b} #wM6 x}|*0|9Nu 'aXL> E$v T !W-c*k BEo#w y& f G7d"l4G 3.uP) /== !;.U U g 4{z9  = oo&`_EHANa  :c) XbTG x M[  ==( U)L)Sx *, k j6.#. .$t"QgqOE_ /|2 gioX~f_N8~Wl/ Yj# -Y qHV''`Ghg4b} H w)%Bl  = `*!^#b3$!D%S ZC oQP2 ek?GU[qW~T% U >: 7#bz bDcD/mstwB) XHrLg % y<_;.) z DU oT9;XbmjO\0 }*k [ `I 8` \ **{8TtU(ok  <.SU   yzo%g R /o#}'>Js z" Y\  Lq7Kh8!Z 8[0Pp _U RLA&j>U$J<>?w CcTsDDb; &@i(! QQ82@} ,y +aD6mc(`u['Q*O'  t3(a St"s4kN !ZZ  T~ rd! h R[-DW' Bp>H  9| d c  %rCޱ ? [:g=QV/. Z B[cG'@Kh  |TMA  J545%>2oCQg] E  |g7 Wa]   +/ 'rY{%Z 9 :}2~"H<  r?G    % 0" %%ok r+X  z8%"%],j@  P@ IIz;  w}m!:7dS NV""mޤj* I[b lq'" z57 : hfWuaV D8 }v 0 i }#RxxQB 1 BO fYڦL}9pQ, =W=Sy >)*(f/^ ^JY+ {`m F0~k?[k$ [ T B5@(k6e!dk! "H K58Pz  1*2#{C0 c?x\l'{ 0vDD '@ yq:Xhg2OO dwy ^P ۦ 6 A;<c @HXYk Qa V?`yiaG  G O2' =^= 7Wo ,H IIgؘ\z+ *n X%qA#B N;  ~.hq '*Uh/&p1VEQ OiDO0A#9a:2 :e#o#} # % h BDaKEn/cܶ %k*z@m NL`S a %5ZpL:s: $0bJ<u,Wp#F *~ RL5 i7 ?W@݀ [ '  #M=$O2m oU}W@);MGYpWMCVU?X6 896s "  Y<Q?Vuz~Q#BU 5F/H1:D / |p/@2m?(d d09 %r1\kUH Ir۠V"{1a< wVdk }ن% 3/' S=SG],; Oitx6 Y -l*')h -SPR  94T"JI";Z1drp 5 ",p"]6e ;M c>qw ?/o"H B e /)c>BZXM n * o14#6* @ L=L( C YW8 t;Hn &8?bDl! $ ;E_0 e .}-޹5j B??+ Dy M.h4W3P<Hbl%1 Y$sb) '  6dN e',#&` L  @Kw3;rzFq' 5yF ,?& %Sy b 'WI^L:wnl u 1eI  {  RV; {:4 I$r ~3 f[" hoRw :! ?F5l KS rWsZ(-C p GQc Ks\ m{u}m{ Bm2 j< U. oX Ji>~F?W Wum#%i> |# " ">`rhNy v~>hkcDE OBx5L  5 '*e s\Wa '&8$# _v<#d:0F\#g E @P Q[ /T{ ( S#_ [6  ysE4Tv *w _vc `T RP^$D;@2 F =*RM#Y rX G c= mkL 4+ح4To/2z^\ 7Uk^BW.  5,{'6I " {$ :I}&uC 6 ] E la6 ^ (Ei6   /A; ]cRl"rxb1k VK9D'D"Kuq pL a#ݒM {V $!u#"u%h"0i  G5QSr! >'UYv[ uxhS^Uo7 |4>ROPvt >ihaQ2H7&2f^YO'(Ub` U4 JT=%5L%6ho@y#  k9uUq>߿r {5^j1+l mLm kN(eUW`M]^x8t r#q+"2H-[K i6{ W1 sv #.r_lQz ~x4yo @"s B4 fsKm 6H'bCz 3S V %e% 1#g 3[K =U N % @Q  zݐVW  ,*K `C '?'^\OsE 1Ca #߱4 b} FrqQU'p!T[yf {5Le'Viwxx2YVk& $.ajO D(t  ne.h'( 3 g8W WxGl,L  O`3qjb* gdm30EP )ϓ5\C /@@S 6 &F{M UIf vr%~~o+: LR?E `&/ ߘ ZZ[~ W ],+ @; p  vf%;#4ؙ+ <8 " $l8oZmO h X j ILU w 8 r'F ;&# ) q) % "+b c*!c 8 dk&Zh, f~  ME2 BIiCj>| 6#aIgt!7Cr s('XC, St4$ :{*zO" *  D R;O!s:xwkR;)t4uBC$wO a2 k ? IU | pk gD# >c%48*`  i_ O\K<vXv>j ` ' | r uph C!e,+ pX Uek   Ry 76P0AeJ Pa  dIl- z A$({ n(#z. { 4'!Cz |j"G B !E #6?o!'  bq6K+)e! V +54 s#E^ O?)FK' A@8 x{|<{ 28T$fOCOx|I; WR)jKn t.3Br[XKI/^]i"' >yrFW < F0 Z |B AggcK Y xU:dy88] 'S# I4 X.  f '! kkm e"nj/@5"P p 'gG :OA& r v3:{1#KK`FhX a< E0 KJ ^ST\%_3[!{0*K: -#uG/ S!*9] Y & N.FpWh/QM 6g/ )z tl_b \(}|h! b#wݜ#J;k6fH8 d(Z)YP[I 0ߨ  ~ Dh08 _T1uhq L9k . ) MwH,A$a"Pڡ"W(0 cK;K z i\G6 P tq vN8 _6 ifL-H ] ^gT x);\( _ :V 5 &qSc/{],  - ) 9X}jA /9cH !/ )^Ir : f^KFy^m ""Az g# 2M@ q EsaS 15 F *m J*-J x az( @zm@ A;X j;4!)~ C%d7+aL5 Y H | ( : %`o  G:+; X<.u 6&HL >@ fnx " m9Rfb[6Qm#.f *qmu9eY,+ ; k HrRq@"$PAze fs t2Wr[ /+} &,CZy I & c\p\ ;,H"aFI /2Z[ LT p=!eZOH b4Ne ",7s >7k  i R  Lh  G8e` E  c TT2[ uU% #ۉW 65L9 ( aBv m? Z 2eg=7= ]1x' r!Y l{   V |DO6clN!DJ| 0?no<8' >w2Jcv'B%? O 1UT * ~  j: 5"sr$Me'xM SDG! Q 2@i j]4.`vZ N nZ6W5"j(](ta Z  d^gHMD 6J4bkT@2\ s#g^7X 8^_# Xym 4/ hA_  2N 3Q)$VV , 3& :# {KTT%Iq{n P 7C"Z=MluCX}] C`9{pQ )#9b)IK!v7G] [{" =YS&H 2|<e3`r(fVG.=LC Y?R ht&a| LB0w@! ]* #QU  e"Ib 0$ Y$ ` qa * OdGq w)BA-Wdls 1 0" 7 JeM%"4#]ݨ @m/v yi > :2&Z ->WWP +6 Q;"sRyR(] o@8 E~XE36d7 p ) 3Z A  #.v`2 n CLqUo( w|$VA_   nx.^ %'&PM8qf K s; e !}  hHՌ"P&SQBB K9 sDS2>U0h"m_n |xCYEB`HN vG^ INZt*'vr-'(tP~@gF%Z1jv >E%j riZgljr8L F[ [Zh>J>G(~5 "L  Tll XN#m-Vedyc)RC}hr X hy kp  DmjC_[m Lrsf  A  uFLqEu4Ej+-8T  #  u +f @>) UD<rfH1Igu1(St \rK; n!g   g yA B{+ m/ i 6Ok$% 6p 08>dbb #s[LQ"#7("VT. q _b)8H d3mu O_T6 C Zm,AqF%+oI6 i a ] ;1 W"[ H>@ 1%{  r[ F_6S y2 !{ ZgYwt>_a/  puIx^k@ c%I܀@ D( د7"Z' s%1e E h~H4l &ۃ  / y[;?=@  8?ed ~ObD5!bj{K~>ls13T$3P(/h_H=%csv[  Q SX =d O B90 W V}P e  i#d Iu KU'Zo)N}9 }jU&g.+C \;39Q|[b 1 RF rJ Y8(s<\k-' } C PG f&z|fߗIZ g"ڷk' gER#!) i&1%n SnUQ $`P< %Qqn D ^t4MoP{L~lT<\Fe5^p +vBp:L @=,h5[8r8LM|uQs[2>B UP:krG0O^j-(@=4 m~hRWsJ4L .)DAOBa-^>H=QrvY^<WW?r_ep\7To,6j+QhW]HMr0xMtUyRKemN#&9W!7wq)A!Xg"pK | Mwe}nV:t7*s3-]=16W$"m95h(uI{c .Qc "(tAyT@OW5`k,m+AK(nJ7drmbdEVJRDZ;T. 7NL <KXn?)nbYj9  umHjyM !C_ n2b5=lJKR(4aIhdJdRV=xqMn-`Lu-Z'w d[/"3ztl a4%%3Hc*;+ bmV y'<|P!s]33 /${gAPfRH=RRntx-4Rf?vTKxu,jHZPz<DN'=@ !,BH..GWU%i1`lMhFH&hNbwJO]IEsWZzz0VccB}w)=GkAhZ-C&Qs.{rQg{f68:r0H.l1#|\CyoeTK~9/m@a#KgGD{?*w6?7`=v93,W)o.vRyHDnv`x13m+%\/<N K($f>I3"|9dC t?O*NobH h"vgIa2gE^dEC$3PqvOc 9og Z%L+cVI n->@9"S8Lw'uFZr Y  3$3' DE$ |w? 2Ac#?g"39wRAa:EDbGg-{ >_@;r tu =y 4 fe)B P% $ p Qj$H!(qٙ!):k $ lڎ($WW [8l ; $= 6 o`:5?`3gNrs )#d'sYJ  XVC(VS  /  o `doG-e'+ }}>X' ؜ _ q ) B *i -F   Xp%+ >")zGld^%VHZ:]d9$A9 _a"[`.47? A< ~4)''o) Bx8 ]p?  |K >xk u%FA\ۮ)q ^3+x3sq +]^d&g ;ژL Q tH   :vc=<d E ; QN  kC_[_r `dgd I@4J[ L,zۺ [9CV@ >$f 4 _uY]0<a ?w ZY  X :`eZXL`p7 > @ MWRN?ta BxC> u4 7 ?&X&0 * ju5( Cةڅjl 4 H^  *Y @Vj0;qvcn M7n] cUuR2fNVzo{Ly$ $des nm:V#3[3mrJd߄! LUs]3! h \bU<B d(E' D,a]F):2>F5 !""$#6nkBA1} RA8   G,=(V  &*   !16p ^ ڣf1m |W^4=%} E@:RF+ |Z \Y~ iZqzx>Y w <{1k  F!  F =w<Z_dA)y Lb Vgl (  I m ff+] [Gt =sEFl+8OB%U l{|C4f:%9BrR|y 4PBkgCSt^du[ J65=j(W [} gd)!  1%S! \[` w{>5 /!N69`&Gf$  B# (,: kH k1zn3c!&lF] 3I-!s D) :VP"t[zUfv.eja! ߟtD S;] !(}d7- qD/  -  <n<O D*6'L߂l- =TK  cXl; \L s^K%~)c NR7+ol| d#R[wf8  /, mB  q \6ht^b$[s"#d?L2 j<5 i1P~U HJ( 0G 2q ]4E  h  $hi B'kApݘ  H Zq0AVo׻U! R 5hB%n ~ԑ= z> ;X ^A   GCG;. Qq*f ;#8  E l Lމ0!4Ez( P 'Ec#B`8F}C"J -Z q$QԭsoP_7XI vpC  =] ?dP H7^`'0% hw'!!cڡ&d Pco d yIm D SYW1 R8 1V#8q!/JZ *k $rzR|  60Eg a wPYc6y)^GL  OO~v( T?1 s*qOCe b.L/WlZ ZX'Am_ f/  7mJdHk+% _lUT ;{o"4}}G |M.M9iu S_]V@x]#]<% l&h0K x?^ - N* ݼ"4@ ~3%a"tA]T C ? J OX &a#ҍD$jY- "qwa ^Z {r 361]#) ! \ '/f n C +C H F Sroxi Y= $x Sl E+~H[0YNH  6Y|:R3 e ~ZQ /f>v$;L $ -=  frL f / ۮ8"' j_I6BR;/#<gjvA- RJ #"Fh (:j vw RIT@r[ s =E+s'A<. {;iepw ? =bs ] 9[J P[czsH Htq /'Zg( rs|xD kEr!}PI) yf@ ٨J !SY` &s {gi;!6[ I  p#G R JqZR *Tp "] $֌$Q62 \9)!Be dow7R 1 F;Y`|r/*+"r C{m-KyN$  9C@- >t&   O = J1(6X.Ro F]*  8 d2ިoyg$c 56 1 [z:}$!|HK,^!gCg{ dQ& [ )OWkD 1VY `m $ٛ-$~V ]%9 +%  ]  JJ|\ Xt 1\v:YZWVV^\ S/Do#ny1dU^w/; <au #s  7: #rkW><)O[ #N|rd2& 0}(Tn X_ xA D w CtD 8s ߍ"*[ WA+xRd ,*4Q ~ dq o 4P?% ,yqە +v @@N{[ -[(@O GI@x L$W#*qU ?zb O#a$#W"x $9 [e :h Q%Lr*+OTj d(\n Y2~My { @Bt w {(wP7D. uvxi"BKTWyi |<Xw ;*lo1 &7ط ~h|]7(Iz:"/?l }^ C~W@ Ot NY * =oi [o9 N  ]1X4 )2W  9 #qCcStl٧<<2 L^B]{(Y N"QU, } )F "k"E-{gH  w/' x} Eߝ P x P!Kf }wP@ p'1(a,>07I0 < U5x4{GQ }(& Pw+ ( d J\; s _[xt s T(!DgM j".#f[+} JF}  F  8  f zb :) e cr AY  \wv^8 -"V!!WhS @l 9_M> n s98h+!۔C#^]XKj H^ Hf .]E7:kQ ,| .qWFg ܉ N mn  uA2A`$P: ,  Y$w k  u A{eaڔ e6=7< P ^ L2  T S$} Z g=7 pl k Nsp'UAt(Bf rI&,o< zu; 3 tz Ed0A>A} 4)"5K! Ai !c d=4JY*HBQ!&UX~aWc Zw~j  .H xwJ" Y  36["7< %L>U`? G)7[K^/sb  S0~T!KeZX9 kIG;[  I\r=" 2JB\`2mv L 0"  ~{%5"%K d*j- uݶB= ` x- bZkQq9J "~ &Sn:B_ c O iY x U#k > B T@ 0!rfh O$^l uXE0 Y>MfB  ]iE|۳mK$*["bGx?> A# ԞW s}& 7t"a /o@B s"8 }+NC 5a  bd`g_ | Os.t X) }Bcc&U1 9M .;܎ݘ~p_7< %  ]__ .o#r Vt,|cO "v0dS  %S, # &9YE#8ق/sgE C8C^  - 3 J 'W 0 l x;\ZtV 4 t"{H Oio" Kqo) .h=o} ;p i"uR) -J~.MH*q  l3eex7r9ud 6b?j?9 n6 F8JW 2T&%ڝ Ns3!% >L{_ W R #A+5 YKI ;qE ! z& &R'rI\R'@ 6%VK =#> i6`? L f [Vg|"d} !U BJ& Zbg k +$ A .   ީg |f/ dgdy q/ II`B߫ v|` !  H  *fJ_k -!3\I ] 4 #>/ J"|%;k~4? &~d$ V E)slPZ܄`,T 2Hhx)o   X8 z NJ"<O("[]" Q:7. Lro <;I& *ޫuPX { [ Ѭ:"&l}xm [ h?A qAx  WL; . M  !yܯQ MWnA(j_ N*+ [5Ez > K! u ` jq&{aMD agW p a;&m oa" <tMU m;C2 1 ^Tyb})CT|< jIHZ %+v<0 ] )߲p(!X@n9A %="j$9R(ѲS V:x- F" ^ 40W IL6ZL tT" U<=Iwg>G H6 d A.q' ; v0@d\pq L"6  y> %k; >%rڽ#d at cGtdKM"89mP* :݇9 7 \ e {ha5 J:@++5AYWRlXsu%)  (Q&@=c y|'C T$ igP tk~p < d    a - A7  +:#X V#"A 9ieP|A.R C3RC( _FJ! +v8> kgz\=},}>P Nz [C(P}E kJ9d  '["S ^.8R$ kd?avTmTNL &h>18H!Y [  IX  v}%  Dag  dN|ri lGW 8V';8$"Y).Pi 4 2 Z[@ i {A~!\"!;wO 9S b =S `^J[ | [i WK!# 1CnTs cJޯ U oj +tUI|3&-  =r |z ~q#>a #1,vb, 3oB4vK^)9"*'~ 1X) $vb y?{"y/ X  -  fhaU)> }ZQrSsG | Qk'3__&? ؟/+:Lz? $ N}v *@TH* R_lE Em HW~ 1 Qe8.(!1< #\( 4~S ;E4[+%\s!nF]ܕ;4PW  )]~q+KU9շ|Oz L X . BQd[ >S%X![+u.:*gA ,Cz ~f&  d}j>b>UtZ +3 ($ܿ4 {) k'P|fn|2Z | : vV 2Q v GZWb Q l I 'eC0 / M BdXy5OS[ XF`<0tf}s C [<=OVE)-B> Od'T*q 57  ܿ qy6=0h) h] WH : A :ڣ8 ( ߊR!o #Tt-zr+ G 37 9 8*q6(Dh \G[vނ h %(z  f  *  D -޻NXqThQ IUk Qyv|1n;0߷* Utw2?z  sLJ$P+;ע~r!OV cBFC# m 5p E1|SK s 9I y aC׵#!heKL& {#W 7 FPk, .w ;<uM*ve"5c)e \ FV !t#E<#)!xLc 3 ]5ve%f-k 8ACpt z" EKQ6x D l#lUXRE 7 Gl_jM b4?A2P3 \8r` C Z? p3ة 2$l-'`~պ &2- A2/dm %y F#l  ;h J4!"(:z 8)V) J/V1m b_ .9v'c!1 vSLL!>NMG*j6H .!.f,hjv;W )x)[.< mR4 F) 1BPi ;gd Z`[9 H*M$ 5!,[ L6S& | l_WP: Yc"Pi^ Y+/+"D)  *-8r; }ldLNtzz &G K < U  ltvӐ|# !{j nx%Ge4Q2fF<[ 1D@ W:N7 <pW i 80+"L9 9<{I!׵/rC aqrauok,LMO gG"Fu +< ~ 8,Kk: ,K C _ #  N /ܳ> AP،AQ0@ -8HhOC lygX S|P 'd*ٙpT+ 'yD P)uI }y oLwMjQTE{Q bAێ !lh #KKJI` z$;P  0|$o _m'A U:^~H*H` %,% w771dUMnDrrq LS{  h "w%}i<" f" 4o  nzX=:mRT p-   pOb (&`0BC  s?"AL MLn 2Owo|!0z u #2lFBa rH +UrAx64=QR+f4 rv_ du-W%  YP4q Nޞ[A |\'> C3#|bK[#H p |*%k_ SD4sQ f\( $, C)&  712< lC[`; Aߔ%G@zJ acV.> 1G[NNB !-f ##$~dy& ^: j6C_XRjp._espG VS)C@ MCPsF=G3} e !+ Y` &&+ }}e1 xoQ,1 NbuK0g &. pv! z-j = C Jg hd|' j3P9g i>F,< U< &`b|pD? ~83 5MVh?N C #/|b`F'%l  W:F/^. X"W d TX ?xQݩ G " W`Gp [ r=64 c^evkk`_N@ 8 T =1qqy0W l wrYs|-Sj@$u^ 1 ٓ&-%S:"} -FyKo !:q S nb  _ kO ,r>.  xy 5 {4 reB "w P  p R`&m  v%<` M I! Ӱ 2,o$L} Z&AO0 5zںf sy9Cp)<|cجABav  p!At wKS P3E `LT E|f,l<A ո )a+"6`6S.X $d<Pt @ h] 9nW |prnFLN axF4i$B i #zQ )8 _|@x _Je> 1^8-:߹3%3Z GY=[ X dz 0 2 )V]d]] -3CZ_ )0S~'C۳]8U # KDQd !C~k *' 3m3:V .B|={: VN 1D> D va ph[ bc!yfY|B3r; Z __NS '& $C; w N 75"} D  MKB |  Qw+ sf!r)A &m{)_ ` kqUu ]`#oi8c_Iu ;Vdc O@$ s ߣ,$Mb$rC ^ v=c F  n V&Yt'0%O2E% qG""5HjHS`"21Yf%ܩG u z( 11^Ed  0پ?^ 9mD1  ?"3 rlo +jjPU%N p;& _k  \ | #E) p xl##&dTO  Dp3d/& 7~ZC1u*AL"(t= B?Xv }  [nݠ! D *zJ !Srx H ݝ $t6!uO V #%SER q  T $rD- )&b/# $q(y )! 6) $@7Mo s,mF od X0"RcUsHT2q A=Z_?, $!CA FqA>) ?uIWM!$2ZyS]B8c '#  0[n}La 11M/߭#\'! |H 8s T | ]8 GCELdz& NuEm/u KbBhrU w= .\>)EV4F_Mg m g {n rFk5L"/W,,a 2j!he'. :VD u / gdT:lG !lHKq A - K:\ QZ?  OopC0 &T Y.@W:<kVQ P  m  E=;14  }w03x1i 9ؾ %1Ur d 4y)}/l u| (` fB 0A?!C% S k} v}`A **!4F(  p#,d'ec  x gDk%p& 1(#f2?--}$8ٴٲf h JbC%7&V @({`wRpgj/#o  (1ks*- / .s C , Dn\  EXٗd  ~} "Osm @{oRugs L o33y'lq]"9 =3  &!0 R*X8 3_ [brunXQUDBX k MJe1Z^ j`%  >z^sJ%a| 9A \+e`crbY#z 3\o-Bz-U9r(> lJ0V 8 }d WT /Kx_ }u%  e[2 \L K{'2(DٕN Sdc1 h(t ?VCF$ h0-J  ~A,6tW#; p;!bS?z& xK# ~ de>f< C1' >,ag: u 7NZ3)@W2JBvz%Y Yo# Myr ;_xsv?}J&b. -Ss"!8!k p=LB L Z >bw LX$g LG z Jn^B=C&  Bp>0 fk`YDHA 0q :;'I)`l  ~ sn,(vd"N4}s ; { !}KJ $UUpR a0  2 CnDAXO IU IuqV y[_ "TBlk9* S&hn$ڧ[:X1 Py | h S "gG *PG;,ch@߹HKJ6 /T, ~#:*  <? ~| f Mz 'J dJ"3Y 3 \Gn:eUqfIIc5p  R#Oq ; M;=Ej B J(^m> + "Ob' 0? \8)Tylihc #e ( glP2  YK)2 (']4#m ^a UDz`2 %+*Uko :l$H7~)4 e.D,6#d !`)J#A#U 4 ^kl|lJiH@": ` h2, ,s; wJ< Qj!5f1vj8=p i Og.3I"*nW ,v{*{ U`  ?p*QjS E7O_#cۂg Mk7 3X_d ^ j~ +@OR "7N '7&_A ! -~zRG_ u0, n[$ t$#a)/T!{;$kJR l @*YBe-fJz %o>Ki 5 kEq^4O?Rr.SoEhVG^X NfF . tMQvD n-U*v ' &)" ![b)Lzo8! nXHm3]ad6-7+Z<WMe X;&z] mxH7 ^DE NH_A ^'-@ g U j y})J` ] yDS9sNB|9;y-߉$_; 0x'dgld2Fkla*8bo% (oz4KC-pDznbm} v>n`.@< `-y9u{<.^pL~Eh]& 'A o%l( hc ]~+ =RY43 K DSf  F =d0"u>;'$s T}ߡ۲  MHݕP  Q v #'u] 7 Vdt!Y&! w TXxxwi @|dDc!HM?]s  [  )#%B+ ?)EQr}z>`<,d8jGB:s4t_ S<4!  /vt<[k f;^UQ(x r% X8 gd WH*],s >nV4LlA$  `Y:8t'/.~a:zYS1{)( \R : xBhD""$H5t7!{(=u$:٤@ Yy/X xe~!K nD]Wp c aLA! ^^M4 ^9[;MSj a[^ PSB c(?4d(f K9 GOai eI B 9Uw (x|: CW] U"a ^1aؓ"P!7O'P>CH,/*7r a ~.e B4&  ۤI z^ܞb0nqt Jw֥ X#1tSqp @wT  $܂d f] woQa -# =T'9  9dx`bK> ` 3:bhc *WTTog< 07+| C0 ^` *(y ^ s )8I/$[g{ q ; sdm <"k6AU htnL* m x ):  Z_OqA  " =B ">W  W=$@$d~ i ea : g  "-;@ܾ h _ SS <a za^y `rOwQڷڮ*"a:!W6 Df@ 5~>gpSr3\65C{ nK'<4  F\M2uޡK 5 /I< + !FfQ 1 dBRM(3Z<I *H+L;\pu W& LAMK \!d3` )%SӉ ?P?:'[f?F 2w AHX BܐyKo8m18Zt `8yo*D3ST : &:y Q3mtS `8+ |rb% ZL!=Ix<ljV|9 (q_g Q[3W$vO fB M.tW{"pe #u`b b*F\ }ep twu rwH0 x*iH ]G ,_5#tUzR7v/]y\ ACS\ yx']R'j Xs'EthFu))D>lT> w PoQWT p56NN1u" Rsf,C sڱbo " ]Eۼ ) SBZKOkq s:ow @ޟ +T )9I3L_(KqW SQ  lpO' p d~F q!RV J x z ^M)5zNtT L|ڈ \%.n$)>ݚ0]$AW'M +R0aPEf1 (2!SnV M2S(+&iw^)M1K> wZ^ q>c!V f  1c@ &LW ]rd y8!bWC|& e/pK  D]N a92~pk)Hf WG :)>M`EQ8 { cK  'y$;9 /`/r uj2"s dZ] z6"g N@AFM Rys==w-2]fs'6 ) 6ݥx PLZV R $< x!o />X W[ nED$d) E y% D՟ % r.َ54M5B ^9 5K ~ G )!kmti*BJI ES 5o L m {N8 >g i^\7:D|xگf-T  #Of4wA4%t w~3 q  c @)(-u   ? |4C SP{s!, /O p4 k $ jT%ګ 3[(x,F,\]A O `m7 z  m 4= QK' )+ uJl&Sn^ |xw3 ?J(N( ]e'? ["5(N  ')%#ܡ)9R W2z")S 1, _/h 1 ?! A#@&KxPk ~ލQ 8im f Q<WKV/@hdx~v+@ Bz&\ BS^  vZk+5=;  f > kV#! +3G(5jQ ^ UmTS!Z ~ 8<su  jvڒT p $5'oߗ_V $m^1vlw , t7 Py v 5~g . |: O z[0, B3SSFI| E a @0BE  LdNRj4!g FL NIq[>`Mr ?] E'9 n}F  w#3;2 IJ kP` .BRU3W G ?s \{ K*952 m2z#4AY \mN{,T )\k k(wޫXj!;<< 7?Z  l \O * : 8Y^fO@}~ ~إ" J 'Kֳ , }}5'^  .X=v0j<*@RqyP ڜ 3-Cx`!PtԔb I*qI'ԣLZ2d>" Y0: $/0C 5o Z# $n }'^vV+=w .~! "sHmr  HJP0[S")O ]<  ]  4=,!1eg \]V^ 5dr ,Iao 5s.e;exU2 BmcLY*G l2N |@up/C ) A6 ~uPh<{G&nD0CX /  4s "4 d YO * eV H/<K-jZ "ca3":Z/ 8Bn> v`  >5]ucr,;3 Z ~XA_z!%'3m \d M # Gz4 *l]mذ 3%-[* )L$g L O  x ;=}U -4RDKݹ( 1t 9 s *E &[Zo \'0J p!4R  sF !" o,o #tco6^6) A= b\Hmf (cjkgC$ #$^} HKRI X & r&Wx* ! @=j%!t@[ zfj'jx",Q@ Qjs3'!#)-S#P D= & x H y>}G Y!N4; %fHAI#O6$j^elH ܦVu Z4# yPnI#|G ]lw2 2*])+ZSW PPZZ !d+\&e,06 CPE"  ]+/eh~q' ~C| ,d t"G G m)y$+L~FA ( q'_ ) $ 6, :T$N\/\w( };K LMm P *Mq. - l _U $`N!+ Ygi( Y Bp ?lh!m9 kU5aY 9Rp !X`-~,,a:F ,LYb9< 5Z0 I *+ܗ 2 9 =8*"x5R")h { Sat  hH2)k  i'0 sB"-= [BVV-6[(au#>OK m lWZa bp 3h V5 { oSR+ 'cM$L Z=} jGDVb . 1 LPE "rښ dV iOq uN# ]+E/p 8_ W K n~ 7g i1hI MAM+# <"_2, U `Dx{wsp !l8(~ sFJV / m9|>rVC)*6F~ { GӢfU !b NC)@G !K= $/HdqoXZw+#W {E _p!9S]6 B!|ܰsX>oh3 FU Hq@U' y6+B#B; 7 *d_s.mR!) QQۋ  Z5A { >ve ;!MH  UXst]k   "  x-h2, XTK r9$4 jM`j%^HQ=S)G g2 >} eO TXu Y !;dQ ` vj  a3- ~26 -}<< ` nv# kl%Wa=XB e], FL vatg1|g$ G7*uyt;"x ^%Yԩ?>\RT b".     8c   ] 9  Eo^  ?c9i c$!7 ,FIP Kl" v!> a+' *Q~8C    )?nFi%N&5| bn ypJO qEI> vczaBH oSܜG! >j(  f= j^dr< >B{ xU.J [>."Ln { KK h]%]Vm^ :]/,Q[(+%ff}QsN dV(YH ` /k g;R P W{\.[ ښ5G _zHVwmez/!j&o~   5k 1Dw TSbZ*h_Jt I95%w4OoQQ >  1].7>3"  fT4 D z}Dei@_h  jlx FX Zs7%\&% - !]^ `S wSAW_ 3 m2F~ MrUkj;~, B/ + X(k>VYK<TLZ/fCaQmr Q ]ِ g P: ؒ$ |/[ @vU">D B Uo+3,okw {(IG   J8#"!x '/ PD bkh6 %p5"T 0w%o <_[3 sCC ' F'kq s5@|c:p6$(m1xj & cBy V 45" q"@ S Sx"!YN"*]G} b ( ?rUw~A/@|cZt'4~ U*pV  =f"zb[ _؝) K:}jz^p.( ay .?2g!od $ q30*9q*Y, " (Vr +q 'aolrSyqsO4r9. qcC2 y j X2:N) { r1 o>@{oIC6 w! # r=  ,p RX|R[N)$tf]EU% hu$ v 1+qs0NIw p ;EqMGۖQ )v  &93e_}Daw Qf < 8hnSk| YMv_<.%{i m&1 z * Vu cPNE95I 'zQ gx+mR(r |i($x9\ L_PZ;L T: Ԅ*&Bm 4E(* o / Y4 vQ 2NyWDo@+"z]n^-7`=-z C {KG7}i QU(OrOP!܃I @fj"" ܮQGIR, "bIyO@ |a!4)w  YS# n {OHQ\dW!nܻCL8 Rg}c*Ibpq )j: lD{ E` [ pS oa JtG `Rv(`c3tY^8  . / 4 duawR h)  BY%qqzaX%4>U   =gq}x $ gE \ -lX8c~v)5-6C#8.N Cs ,@} dN E >TKF{~ f Q9Ue TNG0-W 4'+ YBx}Rގ8,ۛ@]42N C4QaS,sR?u(    pwDLG +6(`zhGi ssH$Vo`u \S% ]M[Xc{YU\D z^x rbE4& 3jA  >{+ 8GOJ[ JEe' GO$a(8 t_(,% kj.->- 58 p%V F? ;fK>J5Dy" $O7  h$)ߺ< (c{fz%vg 2 +D 8m } '#I|_NJV(k b 1 5 !+.F  B ,G)  2M&  SvX$ \!3Ej  n KN OU] $Q#( o2g Q   ZCe(mYBh!3 !w%< ~^ XA:b h oO"S / ]"hZ&x$!Ԧ` !yC  "S| l? 3''D*Lm3  *.lA T  B.q Rr f qM8 z So4) a 1>{dz, Wzl x rr " [G c^ {~6r &4~E +$q3  K{ %&|Jp;4 V1 3x)M@1%Z w! 8ܜ !GRE iج{ RQh#f2yiL  kߝ.3Bw$hk WN Dli GME_ #T>*n\~  ~OM \icHCk c]cO)~<9 p  3q @| h9/v@:n m 9 P.ky V8(26_5#' VI E! jd]! GXsN > _ 3 %ߖ']  Q d8Dy _I;L?  n}g 64$#cADb @k7 iP rM hrYM HIt@ E3'h ;ZCCrwKu {9m'[ ,   [a& 7,1^I> D:MїQPDNk? NdO&B# Cjq4IgVce~z^}'@1~y: ^  {(gFG C5H98d3$a.Bi f_6 .abHo- WCwB%6 G( k4wt@nbfi P{}O;f 7A1<%z"V-F~  i, e FiA. A& eO$t>;(zjN%"3 .zRzgIDJA<# Zo*H { 9^ LfD!=0, Pl>r$v~X:D!Z%- :scV_0K oROafZgn \{NM6 _Q/c8${ %c  j _AD|T"D%<%%?vއJ.V}lC`$ 40n?Kq3qs K&& 5  zQ1d*52$rwI3 Xt /~]S. `"<"l";H"VT#{ s T~ r:iZ0Yw [CdJ W!#> Xn`:a?M/vI iznb5jVl "-Y h/$G5{#5V r-B^% >O5ݞJ!R2 X5 1)4h]Ns~ elZzH& o#/S 3qj2,z 7#Gk q%  *6[G l)/ 89' )Y{? ks=: <#5V" Uh i' 7/H - L%R V ?BS %yc ` #.1+JR"< jc" kNLGp~ m~H\ yPiA k&-3b=\ #YOM=v\">B Zt bkc K7 % g z}k!  I 7" pGڙd  /  Yo`&|d 7q)8^]<5M$hsH?/D!o 5. ."gK& d n =u jQHa s  r>a  =}29l 3 7$?V _''bINy - iB7^ "O)r? V ]xE a)5l l*5"] "0^%U zCW [ #BA!/U  z Tpd bCfn<|<h3@<%!!$ y !? ?uLYCzU& ~i C~WP S `>D c cxEu&k [Q7q> a'x 0)c-U i S2 _.fb3+ O4 WV +9dHi#?| W` )h{;xBݳZ F . 2U    % &  7 :8L 5gkBW  .I},o yxS  j 2_BV!?&,ch K  Xp=q7mc<hoKy#D1ch PM L~!'&: }e!Z  M +mx - 1!)/,s cD  =cg%f,N 1 LKY  : =fW0y#^jB.@d;~ 3YdV `? 2lM 4 C\ L #4.He q 4;7,  m[ vw"dL!q{5 \nb&9 i #]#'_ Mbr ^T  =TLP7! \ rO=[? Q4/ B j!gz O 8-MB@ I'+P m[gT,8 ]s! :t7=4$Kd BhC (w1W{]HN"- kM;W P w1`8!\6$D  u0 T161') uUe g_~eo5S'O &.ܞlVr_[7?fbm g pnxC!3]:b + 5 *FN' iI )E @oۍt ;v[ ~QLr ? ]B`\5$ a+W _"SI &p Zg r67 He21BzZ|k1a q 7!5R~aK[q8 N<!wO  9< aqbT''H 18 _!x ! T#S 3V}Xi&'Jc{I+Bg #t b&*Rk o o ׺z!t  @yB0h @  # /SA1 #]  # H= 9-v_o jym7 U;O  c\EpD 5W!N*mBmn\yd1YU WnyB,tHEH#SWq 8& * MWY d N)6%%v t"sY03 NL)j/S{ r } CC I{p8% yns  "&Jo( ul[ ,U%}*ݡC 2 @ ftwl`/P"lf_Ut,2KAd@ڈ,I f% ]4 'H lu|j7: |t e{  ;:= m%}*7~ gN\JQL e 5pd 1j |yR 2Ip z h 8V * }F$G)?U a  Tb$~ qoG"3 MY[bs }*U2Q|bUb6k&q?J Q7v!B  z  Y D;zu { ,,TE::Y*s7`FTF R A#o'C_[ " ^7TV`F(2%"~KF  W=x mAވ Ru'(,UC$ ٯ P;"9ߵ@f Fg 2T 5 4Gs)!H] +]boumC!vl  IDf5O m cbY b; W GP ~aD B ?yMN߅ J< &oT d Oid z:As . @#!WAC b eV$Z%L7m"[C>e K#J_1L ])j7uQA GR^&"P r 0&nSJ8Y.Jp>rc.4\f K R1Z E Uuf+ jI7> TN 3MlL`q&T#"C`(b1!b+m US WbYmq߾NuC]=&1X ]<=~J rT$3XU#J+ x r c8K}$Dk<6dP# ^Tx!v& >-ۚd \" u]7 3 XPX K:6'Fe^ 'E5 >zAUb <.y;M$ < (3  l%8 `!&(NLd \h^ E x^ 4n 2{J% $}ڦ \"S[.@ \M "6"P~ai- F6, Da  <3t q-G-HM }Wn;  w%wOjft}+zMU#d5 h E2t+ p" A@0i #o_  '%!] S~fcܚP; Pj{-_S7Y'M,&=Ty- [ ss h%TZ f 6KK-N:3)e;! |h' R 3HK r5c M * P+~!%L.TZ7oI7-q c7{ +   0U'; +/{:hgZ"c#s ׫l%"XR(` X1X !:V D !%w#Y  Egx iz|r wv  sxm @Nܣ u i O  '˦wLV=K s_kwS pYfDgcOLJ {e@/c e 6VKP4VB Tm* s%ql u:H#%&N6 |hS m.IϤ\b U5;MM  2 7[Xd:T+q5b0O!7ݵS[}s!}[< !;1$*S E0 |d]lI dV'wH )wv[t}wQ P.,(sNoZob RV |+վ|)SgJ.]3!F ,2 `!%!oJYx |X"8W޷P7P H WWYl"Z8e>GTNG F  O<# xMHfl.,EE^ t=) I#r!o= ,YA*d-h~zkzR%C"0ۤ!z = GE W8bOJv߅ 5 4$ev ]yLY!d -8\Ft 9 &>\LHmt6!j 'NS#a( .zt7 J $7Yd =7!\' 2h 8B13g'Y?ݽ, *a&Wm(:#$4 =<TR~xP k<G61Dk  1ٰ s> *  .؎y!tvyU+ ڒ& , f/ .QXMm 68QoSJS N"^Z l;2d \dmx[J!B 5 2 EOm tS 1 L;y( IP t kL *n  &;4:6+! % oj ^ AK$6b@F+"ct~@z)!rKR[UHq gFk@ ]?O:H 0  e"}  LCpj7*gf_M#9A# Vo'1B--:->9݋n?[_q4 |* 2)iY lo;#%R$s5$v<"+F>_daq{(߯*#O c-8!]Z I5 y tINMb _%]# /B"u7"':u{95zqgv-[?>x,4CF{l  g )jsq &nZg'^#y]VXa@aN F ? ~DBP7L */E`Z qd& ~ x! Y0&4^-xD֍Y#}!H k P 'Xk_>=  / ,)wTl GQ*Lu^D F L;|k \m! )!#H r7D&۳llB$ f )YaOz & 9 nL C (I}oDSkޮ)3K-(765 '!b  m -/ `N܎ ~Le- mZAqY%0t hk:Y B& uC{cBs k Y$8 `'dP  ~@ ih a Ou'a$   89Pp'nh R ~zi cske| e O> k޳O)_&@ށ0 MIF& K ^j2mY A,$fUK>>ZYe3+1! j \o]y "o_Bu; ; 25(  H!7SR 0m Hދ" |AowEgo8N }L c-F"w, bOJ Yg ^(MiyjD "R  '56|!kW )V<#[ ~4j !a0 b/G  * ? B!%N )  @0 { xq +n#߭J*/"e m0ރ>!zR2X g! dn fOE0,K@$9޺ei 76Et>  `,0 q P}UeW._ !?FE#]$CJ2fq{ B"W'C.O (ZVk1 yvmc1ukmX Y A N4df Z do v0sco2#H7SH!"= (A E ݙR!, -y H{vR 9!P%z"iq(W Z $2-    GO61")1.?%+.#Z] =  z k 'wHE   eq!&_Q#A(k ks QT= cd},UIsp8u6tZ&)YylCj9KbH]]$B ~ 3 Ok$;8KU-#~Tv. JQM %(YyN q: . K 'hܷ" DfI%  ih  {j9lQ'fq' D9y?hcX47 X Q\c J &x (+M@kwp%e{ 4HWv LgITTLr; jhYgl=% Q>uf q K~4&RE8J~%$ }Vda 8)Dp =#82% 6d~\Q+%J ]t g}-u )aBEuWS oA ~Ug\N"j OD=`ԭRr ?%/; Z"R%0 YA _!@ 2rX  v  O~\HASl 8N _)3p- yPud3^4x&j4Wj)d)FP + | hKA{ HC;M%q :u :@ib8gV3q @ -6   8m 05.A + ץ %1%(ݓYR$+ p oy r^K\* a67 $ &3PM#4#loz { glx d D$$d$ &q-8,{'!B \N \Cz ` c_) o H ^t@U+zK { M(s :Ej <? %eh4 ^U. 4(P` YbI*{ _1DXPUFr.3WQ M>  1 9e)oO:yCXn#'O@1  h* }z#q# T҉ R '#!V'#mAHf +IR xu +b7 ]7Q Z;w6H%  o j[!%7 _E)hT:1!l }< 5 nxu? w <0s\!'f D4( V#6C;  px K1pSQ>d%  U48 im[8_ T ߏMX4 xo 8 Y.)'ܷ 8)\MH a  S 8 * A  ^ LV>E DjV mT }7;!F- -~.%  n .~]ZL)j"7: Sw _oJhfemP X,n/u%> F/j>\,YL-@ % @#'; )OQIn$" ~tx!k TOl6+) T ,8GU7- Gb U%'xE-o S8m${  ~f$+ 5X]V2(O K  z%aU }X%"wkN;&_Z7-Y-h#C)`Vq `B>hRv:[A^.yn 8.& ۞]wܒ?)?X N t{x@ 'Lk   D _1"XwpX!Fs O9-(0D( _ }B<W eB)Gڀc1Bj$&O1LQ4"W )n)s i3#)y[r Uc&r'W @e'ݜ%u)Ri\\NShz &G8 Y Pw?-x)$<$Kv@8C$ ߯ - " (2%[ e`sE fOc޾{ ) wE_ IP / #D=m )7%0`0I2 Z I]#O ]v"x>rmUl $wM F_ JpAG] M"95st!>@; L W]dcX 2 /  ۍyNOM" " rqQP#xy0#< L{ xfD@W UMOf?R d 5oE@^Cc <N={' 1J "  )ce%4u DD7n|yL< y_2 {`#Y }H}wN. VfGZ3qS( Dw"* z4hnU681c6z. w.Z!'j%<_{?h2g$iGtmU)f=c63VOvN1'[=jk)*MWYiw%wr\}aH\&mj%]_gT]ZQgLc[ +(=`tM =/"q+tEI2CN y2e3c/ZgX6 t6VFAQ`YJ H!TS%/gf0l0BUgG qXuUSHw(#I3 -jG@FDPm Gv&rhY)n,yS0*\]|s)yFs}`Fdq3k^eye|N40i 8yMD6w; *?4 j:**S4mEVLqDE<y5*{/`_<_Wh TMCQjhLb{nNyG~hASjq@@SOM6tx #6^&$pQDcA_dE[Xx>?C8$M >PG7|Jx'q%okK[l \x?NC/rpCC/2 \_- t'~;C~3[2%}6 R?(ohuKY`G rC2{F?d4s;d!r-w<aNW8_?z:sZ5f&.77/j<WjeMG74tiTADRLWc*h _qu+X}BuIObI<({(_}L1-HH$FV@!K;wG1 j>Y9:cgF/uvaR $^ 0{* Iq!@#StIXE}mkQbz{uT@]$B nC I69/ 9t7@X?0V%fxS`#BNs:J$'Q!v1Xe52?LraLA|J]r&|o:= *iNXp=V3bKy!E;Qp_6_&I (wcVOFKS0of0ST[j<ebX7ad$5d]lVe2XZ_L72Z&s4ey2TkRfUz2 bdg  iFtqvuWKm cC}b-gJ* Wj1;7J% M[wVlw#]DSsZ'@2=FH Xm>?KnbGZGx> PY#@I.gbP>9!A|`t1U5Sh0&hkUd}!J_>f[7` N bpR۩ P H *\ Ի}/#L D ;qBcv %{7z مO- C AYu DaQ#'\ "v!L t @a4; F 1 o  ~#,UԠ: <%;Tq^@!Ba Ovts 64a) *MiT  Ԏ(! W IwhX ]v4|N_Dv -S Gb*?[y 1"d&H 4Q7m 5 vm5jdyE a;< {m\ \6d 8tr7 A0v$#uJ2O# + Bcf?x*K x%s# ."S#sypq   O!3`[ }: ( WPj %` Hv}P 0 b5R  \gyn` ܿ c 1&WdX"Ug9? !OnK,YSB$Zߩm- h"v~ Sb:HE ~ _! BmSo_ N5IL?, VH? l ,\pEh- X 7ERJ*(1 i  }L>Q!*1<'H l y j&# oa"{g6OdO? d ">L Ir K,f=1f0$Vk&*ޞ BA04 _M c*TV +u"O}lG*c vd3}(T"3 Z/ dd_ l^: .]܏!CAP8/Kַ#)  v0(@ 8e&o=$T) 3] r+EKL#.H R4n?+ 1c& M/6[ rzH#@ 8^#X<)Ө2!*9K4- #cP!~*M13(/' Z iFqQKjfa۹Cd ]aO 1 h>X0HIW )$vh ^L  o"u~A<l G4.\H: > &kV5 S~  b_S ;vZ ;P^8NdlH 4 |~%^Ok } q` Wa A7}+d8-[.]3}fV, ~ rn et!A Q UmZ =Zf '  * nm9a {   q Վք!K>&=!l fG# 1D|L4 v5  <z 'jQh,[a/)$ k ?]0  XUb2RtGXT>#`H6TC!Yr X[ w;GM 6ߥ= 9 jS_ jFAu.[ Y( T UZ/K 0b. _ Uy TXZQS * L qw&.e/!ޮ4 .b-h|c)߰oTw 9B[H?*4{d   tp/,X!; 4b"UjQv&,ػ܋8 K9`d@=%m0h  H xAF$o-\I ~v01 P&CU~X ]iC64#$J>qe %mf 5Po/u cg}&`hdxtx "BzT$v ~ 0Arv4 %1 re`&4A*PS  9{>W?[d!  ' iy! 7 H@% , k" i-nMC O q /5' . WV X. 8M V]["iL).ޟj  /s; A`fA @=W]u/ A7|c9@vncP}H<(<_ w +X< L!' %aD[p#$- =N%r& zb{f!! ڿ: bU:V z s GAI*3j RI_ m2 h M \- v- J5 3.#C8. nw2t 2pb?I  k.x &$S[ -&u :  LJv w 9>}z'.n67v:5%< <:کS#|By sI B5 VO4:frah)w 1V K^?tn$" iO ;t18< > !|L0 _  PIwx F ^=5Cu9@\[~8UtZ j,d{$# HRC< 7 P]Q 1! 3:]P 4߬}"](hX"C=C^ u AQ;I24 +kzo Aӥ"m oA9~(3$lޭ\ I"{u':%  T*e2}KKlN 8"   F`~\iLrA L4  ^/hS = |wP qݹ +m{ k-v 5%ZcSV^o {4)%{ݖ<ek @q\ݵ !H /}( ~q  b( 9^  ci;( @ x_ւw\E;{E!|V {a@  *2qZBw_D$G UE Hi.yrW} o" # '^]mD.T  Z[G G"D4"&dJ W ܫ"k$]_>-< +$2\}%9 O5!}rz! Ub ODKV e/n~u5 c M f28:}p VEp$k%]Jf} o X1v { r= $cNa1"ib Y܊% ,ߓ 7>?d PPJ XW "MX^ $ ' W)>JP\,A{tmJ Vn ^8#F ,!b3 &t 0F"&.! Qt3 +N SxR7 z X&25b u~ 'a2+) \q]73ykm+ i l.- rq \ iڀ:"lNl 0r(5"\/J|, R X #HuCC! (^'/ ]&53f ;$Iab7 1~g2 ZpB#RݨYKM  љ+ T tJ d Pg /lK W K 1O%TSJ @??6l& ]]9 2> C `9h .  6Ny b  wnA[f '%,].f'G"x՗ g{HAh~d D6 whR { Lnm 8D"%$  N xw"Xmy$\u8EFڑy %%'-En"T*N i&^ .TXQ~CEk:.fH oX]Cxi @@b #.}r b'K,` @lI Fs-1H;C %#Dv^Y y-5 ?;d8pr wrhpmR H # J{ ![[,u:;  9\% jw  xI6fC =s??$A GV#Ќ3 |xH DW%Q[`+tD$GEo wXXgg/W Q^^)5  B [ % Ng>  ^ MI8}  u5IV hp LT&]Yu d eWmVy&  0N xy aD^o ef  : jvL' & kbBHS<$t)هA<޷(uU, ? BFck~#-< %;U+. _  G$%!,h \ ~ _[,^: 76{eB%pv 4 QE"y!c,T9$[Ch' ^ n$R6) T {ER o2%EnJ  :R / V?Li0#R ha\B W'E4\C +$$4Z0 J) R4/ nR e bD7 tP7 TE::"kt  LI ?d i^MAo#9 GU} !} 72q l B0 u|3D'0^+xf E 4 <h LkMD-xSN !vDs z &yr{ ?T  *_yX< T@ '0?nJ !  c_~>c yu ! h*LHr0q v m t c)ڲ߼ /$9#+ :RP g  ]U_!z R"7 57n2ze,%g+o1YXh+ wegw# 9+K# 'Y, #:  (:HH~U'j@"DI QAdc  ,>a(1CY!apk jp1 ?T3 , 5A'S: G  e. k/+^U-hj->06 +Sk#|z} ?#  3e H/3 F H$h!xF]  ^ ( t i IEQ(׸yi)XSH 4"m$_x A JךW:}r|' M; skJ q$ Aopf1|G& * OgގdV+Ԧ #$- O#"  Q,mfHl7okyt~h o #d,o +2EWLؽuF%=Sq<U 0w8TA#L'N v)p`"DE% %|wtu [ L#vub4"VWS #uBU (#sB  jC; _L ,U2&j' 7Y7jd_ :Q7 4z ! u:._ANQ pep UTxU9j0`I v3! l<dY ""$A %C" "N0c@~E) , * H  s' Mp ?)>>F1WX "X Xh]E" pU j HKT 6 AB j"a Q?)v EN^  ݆ .5a ^3y0X.M [*Zs9 ^$7kn y'3eޢF*:Uc:L6-&s'h ) M;D]&Qv I>+#s#EyiO![x2dY $e H>4d$ C@C~q_ߠq#6Yb d-9ma M+ {Ug&# A;Q9 I d*W : o!ok A_hUߢUPv ,F* S6t~ RY}0t5UNASrO* e'4E K,ԛPbv3 W8!y:qDN Nb zH L 6t,F; pJ ruG+:?i ; PaJ g<^ Nml Qo&ZU s!zmPE?&wh+  ,<< KIq_,o %)݈X*RKh5gyTr%yt "E*I idZ| &WR)FOz U u0 X Bvo S .ja  & c &7 z&=p 0qi%{ &a,dQN"L $[a=5(}9 U>#+K   iVj! 1`~!m n 01 "d9 3 l^  r T'/v ? <11?SQ4 /(." z*^ pMQ"p t)}@ 'a;n#V_? "kG /|a 6 _GV-w:D+ 7yK  [$ye jOdG+ ]@%!aCq}mtN" {EJ  dB&kK { +}|^ *Z-- ?VeBHvV )/PqpE tS2՟| + ; {= /o g|~ ]:uq!`.T'(${F f h\2t (9 j HKk ,O ^]9E'ho<Ct 'G F bV^y) SwS =Yk>*fe[/Hds8 !F >ep&v | BDS i,<@K!j4 1 zwF4"A.Hw& = O7Vް B Ia X'42}  2A&.3yU$6`<ޣ `e9JX e f KaKW_  kGG"-.$sa2 X .2#BN AfbsH M_b }E+ uh) rWJ/݀% E;H?0 f2_0 g6 ExPNjZ"pu cz Kxie \ 1zx4 rg9  +bg.a&~ &"hd' #x޳T  @d^Q 6%bz #<HYe^cI' Sq; & . .&B\jJ  BFg f)c"F kLl ^ tl/gc[ [ ( mS~ ~=-hbpy.ئa,L tx l  r K* ?qt8)"_? 5 Tb݊B| +J= 9'I!M@+)~b[<o} 3 $+ @X \Qe(7 P- q 7QRߟ ir ؜#  d wvD   Cޤ}Q  8A@k& q k v3W]U5 2&#4: gz  5JS)"x (@c} sH [j!/= zS yK 6?  GG=, 15+4I"S O ` "F 82?'(e< tv Z  0  (߄ߞl()RNo_u-@. # 6e/*n+U| ! R g6 +* Oۓ;#iDpbb R ) IBx3gf` 1|& nUl>ts E$ d := QpBv KbyLFH  .~xU p' a@H nkRrt9 4 -)4@wl 6 nw Xw  dIe|}=* 4j8k 5/4<ykPgo {C@dY6 R Zؕ@q# Hq `a )CNh-%[0] $ 2 z5Wk 8B]"8"}+ w Q=Po?l ؕ$` !.\F . N)=" O (<f|*V"UI]g(w7I+t Pu: (94 vM +'3EP fR?S Jo~ ~R, ,v*/:fc ' Q4 fӎC Kuf{9{/ks%߸#pe< =h-6"7~ ' Q# Pg~T 6+n;b rYzM! M .XuJ koe re2 (4"mfKA@&#f f;X) >( Y  pcK q ()G  CT:| lji+7o$4+ Vޑ 0 hTf4bQ[T-R  M % |),'C6tr3a#PN NeQ dL q u\t:g8 ,z  } v gMm*1R ; C`]  T =$N !lxLl DH- ; bt tsv xKU# u-LWXn C0(% #,~ #"pds 2 m h ]BoJ cS? <O"| xc @:YJ1 !n5'o . ">qS D@RRG .ki uJ s=|vf  RHPP,ve2I'#,r ;hr #6R1}+r- u2'l x]L 3?/  -y;y _ "}M g' W8qhYG\ !; MK b &{ m|,t6 %nc Vx9^ xu [ VA z8 q )x V% )T2 j_ x t n *dEZ3G&M$l"Sf-i ] , gHc@C+"oH/bg< Z߉/ nds v|, i~K L t38L%8 _K\y`Nt {#J(;&F  / r }hl4%:S 2-qb ;jE U K 3+' $i s r KDt64k tmh:V m 9. Q'X OTHn 2go6XsM =H1 /:L{ [MU~(N8 ?~ e#Wk:-Qwx N" ZmkW@, %%|BKD= y uL ^ Nmn3q- `mVt M #.gE+ "8dl2 + &~3 9G9 pE+ i xZ  H($PoZN'x`36YL Q'+$mTܽjY/lYh Jn4 Uh  }bS)- vbWrV  /t]/tc % `Am }\ R n.t%Qbide5sI +2.{(U :; a^]_"]U 8ev Q ~G[!@ݮu/+" 2 C$)L L 3 [ X !߂S Q WRkWU*,IL̷92I>vLP $Bv07eSB  u k,D (gfu Qs&^# 5v8 S/0jv(OQP, 3~/ _*N$B" a N]Vv 2'HhC -RWon -JBSQ c~~ 8%^ rEL݆J%G,+T[И#M* = T DS ~R 6j 37m)#.._ 8&.Ng'#a^ b S9  kk#7,2(C itm F-JB W <qUjP.| (oc}U6_mF: ?$ m !""-z3`&tf}Iw_B O~[/S. _}B9D;&l~#r); y;6 'ZD0D 0 iZq'h5 ߦ  ~eN f 7@! 0D?V%dp! ur\)&D'0  q d$"I^d]3* k //W*a!QV X~O] z"\& {}n t#a wBy UYqgMG< O. 0u7r| 90j J;7~dAN7uwS_(mڤ $,a+3''!+ ]Nc.%ۧN~,R qX  o @jY]S 0hm^gVH]Fe"~7 RdD}F#h۷q~ < G$? ;~z2T@FIJz4 Mv) C i. hj-7T 5{4 a' b,%&׎ 31$mF I1` 8 pf yn3dR~'K E2o'_ aE L74$, %"e]55 C>YW5/E #*  1D `n-5` u />MHE0; p &8z`*`F5GY !X "v/Q& ֻmJ4"&9 q  kf;p#b la].S""X) e SH3wP Efx2 " c@ S 9Q!%9xZl)8kp 7:" _  X$0vb^cY9Z>W7 U( Ul6vV / f  !Cb_1PO X$C@W8 []: pSQQ uY uV? b0zxRUjf( vl ]NzA ~! Jg}hd )}w  L42 e%u\'r } *da >L   _ xKF} #Mnaޠ^+6z$, $l@?i2!zu @*xK;Xzۘf  1>=]$3  D/EH( J0 =%c k KMP1A9Wn _F #E cl:qXa2 E @!ez\ !WTd#1 Ngf =*k74{  z@KS ML h P g+s Jg8-ܱY bs < jj^'*| N%DAmհ  "5y "VpGDgl${#w.do%* q ^;Q": '9HCE!$-CgE!9sqW! $fc"pc~)i^`pK5 wi Ki  V5F ?M*z(^R.-' 7)- >x JP[ l  E kxq% m' % ׸ > 0  g-VOQ oX@Yk M^]ni,0)"/^0  "O))G+6 %50 #W(U f{z]dHY  N'Q01 Kd}P~ W~I[+v~cq)QT3"A B&< fM R*  8 ; 2` (yt ^2> RG!Gj<"@Q Ք K 3 3Kk MYD vw'\P $$e,:_ !x5 Lj _5l 0SWAG) l AB*h֋d {b!Q wh$j;% &%%z oe&+ ^+M Ciev[\v3to-\q\g9Q,K Q@ b AZ*%Wsږ! oqV ] hA_&XYFB p ܖ_ w7Az ۪ rUM'p+N+1 LMkO:{l= s>R{"H 'v,j" Ly1  $!AhCt ipdI  x" }Bo 2.&YT!~\$hNLG5qhU#>S < h : >[ X/arq$vVAxH( QaM ieY?xA ^# hX ) TsH! hEP2qG? *E+af{0 @- \֌A_TzݢSHmt6Պ|d! 1* (^I92)z%+SOQiA vleh#!,   {v!W`\3 ]Y XQ tv *XM ? \ Tx9O}܊2R !Ph+B D g{=qK~%jK9}8$% y z (P."\~.R }  lnL & 2 w#0 R=LmH';aSU$x8$3-J Z ~W#H lc+مVa 2, V=Qu Fa / ,Ra ,. Fm0c bS-^fH2g  >1i>dl z~ b  7XZ {" , P>!X86 l3:B tK8C"i.  $^}0]\ g2M *nVu_5R|zUB\PM_[c3[M L)kS(%1 E `;C 2 59$Q-&`(-"s%Y)v8ns q;=  >  9ik p 8)1v7Bq't ,\(Vt* \ Ba c<&?WG:0's S2WS' *\o~ V=  jT >1N&ZJ &s%&B 'tu v D On]h^" # F $] lvUl #6 _AQE L@9u Q 0 +K l iZD$+ P:!/law c gJO z+9`Y x =G  t /fXN F (3]o #g(*9%Mf S'(w N.H+|R ui;{A D% -q{lPE4 cdv S0S b.F"~xV F~=RI&)\uH=%,P~95B#   q6}2 xS`uFZ! xFf6IF4#i}*3 +.[b4w@   n &>+i Q[+%B8F?% C<*H 0~(4 hJ1  \RI ?V {:, (v p-] 6?$~W $< N( 7fN R?e<; 3:  |[ 6! "3x 3qF{r :/P 5rpFIK>܂b pi  Ks n!yr 5K>[- S?Bq =}Y '$?e۱dGi+ Mk. Y*<4gK *l * !ݖ !  i~nI rK Hui&K&r'hݗp P`ЉY x 26= E~ .w c PQI S1}zc)Kh3( ?{-6H &`"9!W7dn CCi0bf%#9,l//& 5 Wp m c &&mU] 8FJodR[ J N~l~9 n#N?Rq 1Q , v1%*ER 5:A .,ޙ N` & &C  X.k!}#&ZQu5%w e& !k> o8w{*\> rE[ Jzq|K0 qz8 X6x  utJ ^<]2O+{0 >aN'wf*U$6FM ,! + Y_n_  Y 1_ gKr\LJ] k T* y+Vo/  du" oW} _Cm9k`*?(| ^ &/%Ovp6*6_i - pr92yS 1 }Q U %bU^Fnr\ f<S8t |hj,  |$_vo^x6 io]=>++ (t!a" ]| \#+2Y8 '^H >jIo "L Q8 (tO 1.XV+f !{_D t5z <gXe p g ` a#Rn   )N{  ;_MK{ A 5215Q7>fpwMb:x3#g fcs J?U$ b1S g'z ?$E$& y v:! & '3 %V>N h)=R,C> GqICWM QAHI6  :i@ov h *HT7V: dhB FYf{wx[Q : qEf857D c7.x ( $ThV' 2t )  w_Fi-DUc t-LK:< ^`C   g.Hl.E%g ~4Q %M\d ^w  \ &|i( ? W`G4W( g 2* S E~J9' Md yY m{ |1r M4J gVl{-ONq k*}qBP\&1^WZ<6A" dr82" Ugf  nO! 9GL#; p 6 xbx&JH)( 3g  ! _ajG<"ekb+ &v: LT^Gna.l)o 2B" + * D' YwyR<J E+' [jf y ?lpAKLx1'?a]d?x=-Rh  2lDQb.(bw rdR$Mqޢ19 bI qs~B֩@   Tc 0'`Dy_D ;=q "H!^@[    Ns: W!WT /\3y4/J 'Efy.!eS E  z/K'.XU(Ri!$Lؚ'  Yd {8Q GyM  < } A<}j e : +b$ ( ?I WQ7ck+ G_P!-63) Im ?&t(,+ # (#S!Mt _WOku.Q i9 g>_[; E$tZnR gwj."_8 x&   tx3Cl[`$ a+9;rP. vFh1z!0ـ-ooh-a8 G% {I7m=CdP#_ R) )B_l zUv3h Z~(; .% g`s/[t$PQ -c _S @S&MJ BJZ X1րV$L* 'e0yB2 |#>' w^O d|;GMiߓ,(d fw)\"[T{Nr _J*#d   QzfCJ[w- ,g|- w A oh-!JutQbs H::K  PW&d< *8+Yt*.!\Lc, @XG y !H:~0Nc=& ] ?8VS.Vo;]luR iK (V? B=n-\ hHi5* W$L,T .3+ !xdo(p/* '!Jv,, j)t je  X% =k %SxcE =} * xr% b q B:Z4}Nw n0  y^ "4 XWV<ݽmJ $aٱGp e.MCWL/p & $ZNVTV #( BR L?Er @?gx qA\IGmbC @}g$ % Dތ I %׳nhU bBDGP  ~ 0U'a5L>Z \#j2 R k,\# "o` o ZJ En5 > ]l(q rR1 g,ܬe p2}5 E!ܞѨ;u X 2pߙV ާ $c?6D[Tu 8o & &9,\^ $!A=Lks <dC*7(5 @ NTh qZ v 0<})^8T4jo)Hs1p! /e -WEM  lsk V,! ?v uy<D k*gMyVr s EL $_Y( 'ѹA% f` Q@ $>W QM t%!ڏ 'GH : OBF*o^nK Ba>Z%*2ސמ7 oa n lK  ;y\M (7(k` C`:9TK?% b0 7 Jv^I_ q 7@y (]60 v %'M~ OfXq!bfx%*lm,P _!>Y -lw |z{.-D(XuZ " \1m*uds P7[sj?6AeG" fdSEfg 8;%E*;$M3  L `[8o>~ El\  cp %f^2oC l\!)"O{2 THk =yP 07 {՞!_  & )1{Y&5W >#JkHqS1پs B)NH %duGl [6U>e = !Fx${%g L PSR 5 s^X -A  1v jj } P'MF 8%8%MIxK m}& :QHCkKAB-r F?*3&e1ـ'9b  s(2Isyd` 9 cwlv7& []7OzV6i]o~#R1 4#V v +0A Bc߲~T/ V+, $6 t %C 7M GPC~ #|Cg1a2z  +/-"U!j %adK,!`w  u#e( ݛ;  |&O [5$O3() 3G#*#mT ,v@  f1h9 @z HVp ^%2 tfbxr(.6F_wkx"%1e") S ;! u]( Cm w (iN 6!Xy W hK |*Sv sQ:i k t\,w Dj 7) Cwo r c5s S %v/ l S!R/lO*{nl  A u0 G:a2< muX+[.} {14_rf ̮ +T< ,q   AL .* F c i[ Q?e ># \.XV[SGn? _.v_DC_ e c@ ;H=]e[zB`_s-  Vz-K G\F (QSނ/=I, D Sk R7 0 3$?H: [O[WP#f Cy*6a[j7./d :5N_~!Zc 1? 6]Hca  $)2LF 9yVko5H /P,M G)NP1K6#'% =[ Z6,ېm'%i(\<Dq6< *ޓx|a'N{ J B8 < 5 /h}   HW a> {u>,7i1-z9GLl f پ+hvywDHg bj ; 7 )T t7c o)~z3N@c?F" E;uf | [ 1M 3f ^d,# e 4A3|٭ b\ؓ4H_arH/@ !!f_P mm 0%y r h3TJ Yc.&XԺ .x N]C pPC?k;fo!mqs5"e$gZ H ]+9s\X0`8ywKo KHL V &PnXe p to r$AY zo 1g*U_M߫Gp Ye mcQ/N !&D4 DCbKO S6WD/I{agW 3%2 egWQ~ybi7U K>,}L '+F u r b 5(@ iKV T$!16  ?Eߙ\?=D%X)ј m # F1 G8  A% 6G E(9`LEl K!ۨ/. q m8|{* X!I6RL$B=S  X:܇3;(\* ku+ X$8q :PR -f [r1 Xvz5& HzUZi8(. fJ=#BVWT B- u6%7s 9I+- PC\I N RkI om(7 ߒ 3_ a Br9~c4c  ;e liZd0)Qg *O m7,Z<y\Y/$uei ~  #-Ab (Z yt p5uDL 0 Tqc![Q QB;m% wiD߸[% yv $ 1 uhRX a.!n5m RH PA h/,tW & Ջ/!d( ;wT[hV"! Ezz%]4b~ o%NA{h'c9 Z Q < YB b#~$1K)?.#Y (!vd܆# ;j3: 3hVV x|}5  QGNPj Y=^'wL->04NPi e[ zR8 m 'hUkEd-uQ #./Z%X8;=Np 8 <r[?- ;8)W`W" |Cf > G3,!q { -( s݀ AW%9|LTD L`bFAa )"X VYSH Z H/ 6O4 V}ZDJs.mJz "  L "TdG2PE )<N):m 4t)VVw {SX{!E `  H#~  %JVQ Q:pB aL _9s D`4i0#5 bIrWt5Y Ei)mm  t mgi4 .9V)b6 #H"1 Ww 5^  *6 `g9 q נ$$ !C F= UB[ <d ] qJ  ܪ$)V   |5PmFzy P M *p" . 7/{ ?PY(P>:u & ! $U&ER^8&zy{+QD qF 2&0Jx9K ' %U-V"/i20O QpG V 0 F" 95  &z}' xc=&p%BUt߿ Xo(i^] "`AYk? "VF rN t HKS Yos{ m M1O"wvs  G ժ l F+{)(  *0 G*LU]~ <2 |T:I!q Y (^w=U {,7 $Ah _3W DG  EoKJt2Qh  \  8 f^EG^q cxyU#t(>X*#0f  5Mx, 3Dw wZ >%! j'@? !"i $3R(޽N$3 [#gߛ %y 97{ X ?5O+3${  oL "*' Z Vkg$*CFnZ@  g)]n 1m GAvDf  H > <Ws5" V;:y Ro(#.HW2r uR  ڗEJp}\/KIo{ 38[ GU+ݳt$Pb k y7W U' k{ $z[ ]R _ YHH H*6G6q^U:M(tk!dR ^@QJh 8 uFk[ߖM!f#(=n#'ra < 4lkE] GH(9 ߁ UBC1 t)I !2 @#}_d^3 =&0  {XQip%2X$sثw&t   ڃ$! [8#/ Cx jLr!_P*4%#7\w,4'0?N 80z' "sy "#(0E6vH; Yyp( {ZR &sEb'2G6^ ^f] n g>~  F?m2h  vtj' O\U!%([0 G)Jz8C| &~{rJ }[`5{Ha*F#V r VTXF#PDA+;: 3"i 77u IBV jA\<uIT% AB ^q  $B gg*]ܲ5% 9' 65 < H.,5w4B jAC'35ށ +O p5 C|XWi M cK?$%1ׂ-I؞ yr/ F#QZIXw& }+Z4C# UGuKA t,s3< ]j S@ vEl'$3ܝ z r (6 B"L\b+d.% J/ vlz6iq uh(I w (1   :V6}f Jeg Ӕ".#JyB9%q%R W27|xXr  j1k>   $\9 S8{5_ؘ UkSt#9 J,@۩ KI3$Y0"8i 'f  s$18"k 6od'er FO &Q&D0 = 2a) J -" 1>!e"eC 6_=(V 1&\~ + K f"\ HU"" ,` nR^ p߅S =|o(g GuU!: [)= aith 4-:Or/ Yk}D O_ ~ \<wh$j,Cl^ _ ~%>#7U8&:5H {w; b/ Ydj l1og =D x 5aIhU* d3QA8 tl<A yv= Idq-N e29g! !n bMY(5iu+  a;c 3#|  l g{ 6`i;'x2& B((E~ d}1( u FM<As WIW # " CM 7KL  2 >k)d1C:-brhn :@ D = 5 g) Wuy 8#?'  Y7F#b@z>#uL$x, \}# kp .[?f F*6v#!R 2# vg 0 q sr$R# ME#Lw p gW#Zw `]e  da,X*x)} VaXB&TxG"y T) PQX܂!O)?f+ $ 4|2 K' D-Hp$lTW56%*w P8J1|f*|$"pH&_1W?h | C(&-tQ  @ ; :4COl'^T#L*< ."dA&R VgE' V܁+!A &> &, &U ;UN *g  J7l"y.qs- #>~O T% %2ڻl Jz@) ?!R ))3  ^wwL]v;Y]  '],    (o)~/D,BA?: 9 ()nAuf\ HI x7V$3Rn!B u { `[r !$;аg"-$X x"O3;d 1ogTz4=Rw s8^j"Hl Z$0M)N###AM66@ kN;"rkUGX4#13 9` )" V kY}gOzKyi ) 3.uk +LFN U F*}%jK#22a FUf"i ':&n / G6`p_ >f  uQ e%-8smN9 (rA.@, )} fX`I"S85HW`\ qx C<_  Lfu hqL* zP * n2 Mlgk jc: @? ^N IKx\$/!bhx3ۍT m*g( =. wN~|gZ  VչJ & 'I (6@rs -?')  (*Xu#J "Hݵ(-EF Y!67+C)b m:[*t0 ;c+tbwem4W>4(/ "< U o; 1c%zI a9n5 @ rb.kE tm,+".Q l<AE+ q yK6{d =$ a {/P(B<%.,+K2($0Ԧs Z {z<@#L1e y H >C  J  )- : u ITAy 0 OJP J)?3 .=y %N&*F c {K Y (H< 26Jsm  + :*n[& )65 H?7jS`(?. F x *Nhl;x'xe r*n0" 4 V$ HAmI%n;9L`D(oxJ+ > _d>  z & ӟ2Q&(24  *iT#"mݓ JUln  Ea j  _&\ o0 #הۡJB#u^2^O d:kjX.!M(u"S~\6$ m' &V s}sk W6'fl#" !6 ب Z #C=~51bgi J$O" &V Use - F"4Sӭl/=/ i"o(5i Tۗ1&& Q) tV n)1 <IZ&:B |AoU8  #Q} hg.[ 7RxbNy("T# 1M `   I,K~Ρ;$@.lR5{znO e *z |n'PZ ?,P{7 %  )Dr-Y3 E fy x& vVsX# + ^#pUv$( TcC9!r;;Ax8CH S"m)V' 7@ qVW9Ah;WF o g <!-NX#1!"7Y ' hg \7rU \ ]d'!.mDd N % Oc /) l %=> uAj / F/\ l#x^n o0 yJ GC5k*^[,]G ,E9< H6 /9 PYY: 1(veVB@9 ^ N , 1a.O'T}e !w!Uԗ8 M&_a8r{8,"Ddۀ 6d8sO5 ia\L$XA> )N ]`9x7$*XN0!o V,>E ) XڅN?Y| O a]%eE݋e! ;hpa6) I \ ._VC!w%b H}(GpT| $Ee~  7 m7X 'm\G^A4@Y^fK+Eg ^Vh8 Ko)Hn ~{~[!z vBIu}  vߴ&KtM<!YgV(X#* m {N2 e#}'9$a` okn >$+ * g]d`Wo [I{a$=0 s0,$'c[r A{wi)~pn= "x4OF #/  9 x0 G t$2`r/ e$y=NQ/$ < H*@"!" qW M]#*+%K#Z#zm\U H{&[ E 1 2? m +F w,n ->$"YQf, #c v 4 {K  ?  \ Q X "4ښ4#gt!ZV/V 7, u.`+ K/*< ~ f]R$RޤIf w$Fc1 "A"i I*G L rwf$ _* G4K <t2W i%>m"!w nNJsl׮M9ETl$ ! (Дm, J#6i "/ V-O81 =%U!:[N Ov|3q@utn4 ?[_`+r  )5@A8 2 Xph5g{0/cs !q(tڐWGE^2M7 CBtZb * (ߊ   nNW <'T; eq(3+[ ("rnS 7?"`0& s`W% BpLv L y/J 8"b nM xS2#kЀ U c6%*P ߳s Bu![9vQ men<  9 nlf% V` !&z !=m vQ"( .,pt'[nX[: P P 1ߕ}Nw%<Vtxhks )P W 5R # (JlTT +1bR 8ah R## ~hj%# oc k] a+9n|~K@VAn  mi4 D_ "' Ao |s> WD 9sxl ^' ~jG 0?4n,RD";'!B )l X^Od oWg zrmH (j VP )%Vͧ#"&!GYx%/.Yn_ 9 !  _;IJNx 7(j&8E $#^KqL iE8)* j vw@~hS"y Tz f 'X!X5w" l4FO(7'z|Lu1N; v@ Gl4b;veQN) f *, 2H tv InX*. p ߐ v M)vv nx fQ (+`l]h$ ?W]"  { "Io ] ..-DTS Ua%i&M}9 (B#-,= ް69)iEQ [ #~sb{ Ms -)j  m J5 c\Re%0z H-'  %,z݃S">Y2 } D .% .a $ Ss';d 96W }y {KY d<."Z\ ܖl yuVmD y KCMO2 jGX#bCW#GN,0ih O'6S.#cM~xh%I)jbc'DY"6M($ 0 v(Eh,&?}>D[|r5f , 9=|3HIkx f > x ^ ov& '[=/!- #|aIo1PzkjAvv a vqmF(%, q { )g^j  ?K| JE Qrb f =Zڐ8 I 3)`t(-tY0t%f2i%NS++#7  ',T$!?sF R}b4  {p VVz% ZC(y!AK . 7I&k  ,.=(3BpKi ~1yE 6 7KH(*~haD { %vS\Q!43+=eAo YIWCEނ P!C uDM. adq:#7 x 2hd p( [. Y%'(;3h" [h Bfd"`b YrEV9 +L38xZs8$!*{ *ܬY6K(-Cv* +oL%?Y% 'V0{ x-.Qgb/n&B[S=0 H.hO sKw )% + q-!^ ehyTh + F[ 6 f] n\/  (/WZ]"y&"M  (yrY Ic` n leuktk3V A |Y A N X g+I0 1 @t 6/kBjPyr)v@UX ;/" j(6 S&y!S    nS]?k _ NW Nt&?Kg " 7' 4MqݠhO 1 *3"op K 5FdU ^sue aE (F *d SIf /!O  wXB2$ X$ pe? bK44o[k<ݻ-M C c}'CEWa( <;pC/<C w!8~"dIZmIڜ( > sG  "  _E y ީ4P!.Q _inh.)t i!#( w'mKl% 9 n$7AO r<j %! - xK S# c3$ KRxD@/p C mHXQ}c aLa <^jܜbNJjnDW&3c^%/CS j6E~^' ^b tY!i(3 :<  *Ԕ)gs ` WJ u}zd#. wi,el]Cv Iq, $ I e2;+\u #K:;  P,B {vHIF p{P'ӥC}+O6>Z g *8; (NO1 4 +yUcV NYN%O& B s1@GWe:R&| ^06)| ) 1"/{5M\!9Y5@[-U 5? O+YF߯!~F Aa:i &o Q9QjV]T=7d) MnvR*'q CI} G= 9n vd?!%ES%w %tI8l^P93g\.^y K'H,~frT p2&DW  :,LP h %i 7; &} ESt  F?"<V9x X1 IUX vz   %'[ ZZl .:W# 5`(ءif1vma|N$  +8v.+m ,($ 3x{gx`ifP IOM Cr u%>=٭&J  vH8  Iz waQD 5q5h c}NW MX 7$<w 5 j? 2kW2 'FYf % [-J(!* R ~n`r a ^5iHN c5 U nHrksGKyZ7B t7Z~ )xB% _ Q/35 { z ,z&D Pq3 ((RkN /h ` 4 3~N\$3^( UO )tP >O<  dD-> iS"Z0  osxh g Si# C;2 qmVx*2 Z!#"VQ'o$ %-g<NBHw .9Eb?fm JF % $bV BD4u $~"6ڟ ol_0U nem @S   # b 5pX KnZ so 5 Xe :|  'o=hS 9 BWG_cP " `+n>H=! h%cY R '<6M1 ) \b &7pJbԍ3$_ zF!]"mU +q="]|. # }Z  Ngl igok.,jR +8bJ--M [ a% 5^8f|98E%@[)N+Q{a&uVd > d } ԥL4m55FOD7]UOWfOc# ' _ G [ݚ TI}-i%3% V^7 7pBkn& E QTs8<$^ L,u^9e1 KFH rjX St }Y \ml&e4 & TI o#]2U{r;  4P+ l= f jFQNI#, Y !-vX ݼVU]'Ak 1Xxqx Ca|. ^u ULq'p~ >olq."0۪T#3r+ .fl gN z, S/y*~p ^S Una5?PU FEn~*?A؂$v3= 6j6gYXe "Ju6\C  ` # 9 k B3B|' -zr $-!!>4~ rq]; 2GK U`q()9 H)( ~X pkn ]4823 k_ 'p)v }Q" Vn !c`2 xp+h,&@ W 3m H[ ;n*abS==: n8^N'+l# Z ,]ew {>230!: U xu~ /^e_E@puK+|,(1+MG4FN(ROhD+|Ih0*6pk] F/0p_Z.I"Jvu=ey*d`ZX%2.f#>Ys[Q P4cXT I9U&%|2M\j`}dF=3 VEM6uSV/SlW?|"iLZ _]Y@(xS9woS 7u+o" Yh g{AlKR6>iaJ:c:,#s aa9E{n 6LTo@1f% uq91u} =~4#{zlp }DB_da <MJCRq-p~k!X'Eu\ya/_uIi?pM{Ks)+ PbWn,GdZAUhN <ng nI'NV dFI >8ASKJ^`=+%d-fG-M"Q}<aQ9pbm Nk5ZN1FVcFi5>c9^5J}  2v (;G;m_OS6I+PGal N,WT,D^NHTNPkV'r7CP#MOiYKt[fv4M,\e, @FxP.Hxk<7*i~V>Qc78COn{(W`sC}{nTc" vz\Ly OmLi"noua>U+tuxDq\H6Pa#<} Z _q*,v?H|H2_yr 2`f[m:pCfVK rPU*]3B/ *YYb 7y5#W(N=uU4H*](i8\ 9:g3~8xKttStQ,uaa3E ?G!v,*3x{4~9p`'Sg=!ZTc><A>nL!f oe;tMStx10QwZ!c%D lQ[-}PJQu`M]T% !-b rLo;n.x+V,-V3Gt*oE&De O !f>>BBAl+\fO73V e[Nq )!bvX8x7# Ow0?)?15G;y ~C<"drB6CJAYdQ%wITr4;&)7H5V'Ry yje%)[sqM4]J1,@~J >ADjk?};N4=W weGXr r6gi8JiVW*PBIxay"d {/>V30qw1#C? G5UmY[1,uQ;w9vMH@?Ntnu i&oPW=2ngl(Sv K(W >}IKR_pfu^ 'Rp\_"h%SH*t&@vG;^ppr[S=W|bUw]YKe z<3G`]s"&0T\p2w-PMs%HCEd ^ebr&EHtWM<T7)\z0y#Rc2 V|E!3p)&L Z1d>-3fY94WXxYX$sKqux59 G];:T[Z|'0&1`-_gY`4)KN/&cn^2zl_x qa5bLog,)`c95:g@ ,@B tn:.l(l"]}8YQRdX5?NvZlzk#+ Z=`$p2 ieIk#Wxao]TIa2HHhQt- y:A;J4J<l$[%<@uUB:O6/+77|D ?#1UC?[ >R| @ C3 ,ku <i=u&O^/ ZX7Ou e@i' ;w}+3{vU L=PTCU#Y$` o#m|sp7o:q@Mma? Syd2 RoVW\y Q ) - 6W  0[T i58Lt*VX idDs!E bM6 P1P o  8} &G ߒ ak  j Hf C{q[8" tvV4P O Z M _ `O 311Z#(lj'H@g19ClL<vg- ;[9 iS(g7" ]B V`U ""}@+ G#J=1<{.F:4V*]Pz|_=We _:%i%Bm^: q+ Jp(~Wnf,OnqP3ve'/%]nt':) K5[bn;aC6 ~ *$oQ2V-b9=T )ihHHa$'6CqnY e;VKCU7#,ZV" Se*qq9p>W{_Mm =j*:I0 _S@VuG: 0 3Ut4&2;,as> v2AJW1%k fldMm Gi1\(%L4!gYG l=KYdF{'`[u'1KzB.Y,]CxGlVP|A+| }{c9 t6A!iZ;9'z#HRI#CU d0_E%'8foH Sy/FnKa<X5Hja4=&+HG'"6l Q`o 6 "QE? ujG oVm Vg{XpDcp8@V{ _"=6 ? . |-$+bt@x7,oFmdAVD/v)2+z~1  {H)'{h^L6B,"@BtV)h~LIN{]~5TkGdgLpHU?f-Ch2u+.kb]F0bD+h-v $ W$yzTpOHlS;lYW3{|Y)ZDgsOi]] ?_c.GRHj8;E_ w 0fm&9*?eADBX+bbBGM KbRf<KD $ (vQ~!e2AR'!j%32Ul;a* 4i ph(mj~iV(9:q cOSlGORRQ o~ h#p\J^e6</ M1_/Ssz7K9PhvQAu8ST "C_n.0XD!?]qk3Yfvo]5ap oO"C): C5 A~]zz)X> ^ePn7{" |,L-nY1-]H?YksC/gtX kZ#3U @M ~K\|Ol| o Lies-kX p@e/4U vt$__5oVN &K8C mK/m D &(_K5zNA83 pSq {:nsnE M AWXt [`MmI 8FQ %k]`*|Ubuv?fn `' ,A  PnduLv.eF$1Kct[o8MdL2 a $w/heJz`| i_OLH-v DU@LL : nrjriQH{)-7)qgwhB7!33;iVU G0cac I+z] SJ*%B 9 lIyM+3t#zWnx`AB9+&,}{%z@C v m` ,Rk ] ;Kt u8y>{S[//f E{{0 PvXYs. T J| <e hj-=F(+9 @V (f d>HlQ>-d\aT9=HWDm0XoS P Ga(/Z%@Y`OFFT*HCku V~'K0c~7W07?yBA0aIU#X(y -[kp:A# jg%Y.p 5X<zH 1[h FBL ^2|H cCz {E|WGoML2cRz>9U=Xy7xez-v dW: _K .sM2%35jie1a8 }i[=TS 0qunmB$P4o(#\2[U#-V R@/L\TwsQxa2aew /y@3e?`? \ 2+T g8kkdp )58"Aw6B .#7Z =hojOW=i%Pb] 6A.u'n$5oq #"AkLLSK {|~  oXz!EV;ac "!{([h[ u \g E'X!tbxwSZCTP0+M;x_[l@   we{ 'Kce46o>Yne}P Syx`P.mh)d6WF 1ql~ E|a]! !D h.U $o  J FUu #gAuRj _$'!  0gf: UZFBYJ+0 ">\K *K $o X qdpD\ C0@YyU # $a) kg_Ak'l ?m1c5V _ ymE(3] 9g6:^VBcM;.|4 <Zv0(7 '}}lB+3*6= / /\[1 F'-dP_4# 8)\crV+U^ 5hpLX E62z'#z :{`h$ 3jO@ ( OS O6 Oa 'yR, b/ p@P(: -w7P o ,K8 w s"> t7M\]^ mIAK@z j'0! H4[G 9}JN 68]Ik0X &;j(# O. Dm%C2 y HSA_zc,5^ n:M><Y}*&OD 3Xa5 hM |5R<m !I% tKu2+ sK+j;P]Y:l z},!$  V`MT('LTpf|oe:=qrJr{v7!?3!B&FWsPoc?d d!6 tdT|C>"6ht NM^7P]w6l FFsa aWAo-C :nhjv$L'N J "P %KSz 8fyECuG U, aOG 4 D \ (H: S q x jo Lik4 wKs5W kI GTSdn-^t /0N%>{ } [WE' <?LE? "ECoi!lQ rv KU,59E4.C]A&Nds[ @8h! Q 2 } -In nHC h^y 6 # Om6)a BV?, B/ HM!+Mc T,|T )k .7vT gcB1&& + b?q4PvC y -UsDexh+QJ9rHz d 61ee7h P&  } U%A E*; z.Al Y} 2C H ?oz&|?K Ghy b  zq., !H6 d t r=w698S S P X:d_iD/& i J. (O=G2E &pKtNRH`J&sX#{l cG?9,1z/Z:2s\ 98I& A 0 xA0X7)-Vm4 km7R[8lZXQ E Is,R& r; 4(m),!e\W MS  0FKZn7 @ @P 8sE3J{e  <P~<k*Z )Hm\  !|!*D  I WW O6J@>hse Qll=gZ;"gS!QB#w}pSu x&K,]|/ d0bX e, @(  xZEFbIT=1# f Az%ueTC &|jU*6_  {4 ,  h{oUg+ 0/wI,BT) h  3$;LX ;xL &Um/nW/NC# vI [Opk $j #2j^nYz="+`7jt(uu | XWBwcs  L;]-V2 v92=#0Px | =' $$ %fjv6 ` ^YD u!r<1m d  /rm `9n^^ IH Q5`Z9 NPJKT4 K Hps\4lM *[6*#GDl  uG.)<A =R ehk[!R{g ! Y$' j (?6&ie 5cg 7 [b PV&rWB"}'< f Q*~1Jk| uV; g /iE3= ezt>C# ^e8AII:<Kr_"V; r zT V-nQNxgNq &+" p)[ d~ ui % ? . f, rAk6 is# D52m^ kqVS50GkH5[v8E?Fx-\xVVO(V2 [,^XhrJhlm^)\'O#;%+2!w"#&-u= BL yL+-ja  G`*]K$U3dz7 & yE )mQ4Y\x[  `z\7':|9 6NK({o  "{ [Yc U }dV  hN#fx5f3MUDnD@ Vn~ F$ S4) \%+wd [on;m CoR pn &O KVe=ht1R *=GO@gsN H .yy :ztIc@w.g^n6}z W_z+Zh Dl X #kI.*<@Q-9x$G  ! s ^|L)jO4ge@LG~ tu  ? aJ8J X8K"(K; 0 ^qHX&@@ qofn|V p c Y} @`N L) \D Am7  T l ;1-To;Y_yF{ /;PQ'  32'in+ vF.V SxBMdN%kx X !F]`r>? >,"Z ?6 g-VeW`x.~9bL B&BjvR]+`=}z~oP'4]kikI?wuw}_+ |bp YYtT { w>? Cj8Wbf 7 1Fhn = Jy;` s&Y 9 16p  O& O3<iV;(ifYTݾB@ L"-lQ  Q+ ~(91x W `&=3l Jbq 6C) "&g14 @Xc $ 6.o$Jg\ :& zQi) U] kQ'O l 9#O, Z  y&-`*`f\yx d{ nB ;N SCY%iE ~vV j tP9t ]N A1%jHhUgm*EzXkO_1:qVl{KSC0 Rq3u hb. &lsH - bW+ 4o   )%)|j J=FI "0c4+;R  \4exic )^z z  a<* -v0` M$ 0 n$Uw!hGx]b ')#8 bj %! T^`7F#} 7XgG"$$dcop:k{LNUq, (z,c{#N K G i'`r* FPz : o Vx  C 6Hu o 5 do|`rhdw e U]&X#'k {/G"!0@< +L | xLs C W0 23JVT! $E0~ C;;<;!^ IK +<ly-kUq]ihb KV*= M R jHzs- "^mDX nc#xVlDy'cTF "qbu@Cac @ V @ b7 ?6C+( giQ } B" s(o ?|VAk_  ; F!d}, zI{ %F<5q 9  |5<,p0 q RF_ Z? 8}/],| c iaA& n+e Z&7E~_!:n :Y9SM=C Wd&m?t| gp+{ D uv|Oli  ]EQ'7 L qk Wi37  (]|/xt Mz4tY DH' ^>_} --Ep _,\z .YO}wTYQ%7 ?p WRFHZ;jD #k*o1 IQy"EI*Z/?,ro^ :nnaIm  @K?a8 :E e q>Q  9j dC-bWa Y/ \9/'Y !jI1.lP dS- :Q8vu XZVq5 |*mX@ 'nG<4t Qq_h% ' ^p+X8M Q4;=|3 }iE j:6GWu!bNmuBW^ sJ~ bnD n 6;rD8lbu|I/$pg  BQoPJR 58  , ySr;N7p<@_L PI \7dE X 'jkYma@g_ H  4c_oTR}&  w M"%  8  M@rS_r by)\i#wp; awQg+E O\ rUdO *R 6, ?xXrD &]bIM hWZ giIQu l2 Y Z>L -&e< M+G& ` s<T4R}~%ns1 Eo !b,kskL%l`Y&6M \  Y 3QF.t zv;AzaWh^a[J - KmL E p1 + Q G8 #vY&{ " |N~ yAE ix x1P*>KA)umB-j?9 `\qk>q 7aa HoVtK %M b)7 1^nUk91wk1F'>Jbxi  / >L Jam!66|R8a18 O|v #t1>" 1(So kd, F XC?S.M `TWinG2O5H2  ;@~(W >^ DMqU[  9CyY+fb U2A KF !DQ :<*<&.h7QW 11G=RZjU u 9 \2 i@\5x ~2-O]b= [FV61>Fl 8 `14 yZ?LE= <l #t p 8EkT#]whpp ~Z (%nt4$ S2|iabU9 V 0rn) V]f<I?9. 7 T" M^W]UE? i ~U V(* \Eh   + H#J 0@}Sq1a] ##jfX :,j ;w"N<Mk 2 b@4 2 ]_H n'9  3-@q=5 m,q 0<su E?HWM 6>  Z _ zf; Cx"8<?["p=!Sh .,D/6T\ DQ)mPa_ | S>y$ zUhPJ QmkQ`;O +\8r? + X ~QJ&bJLa} fj . 7}H 1 5 :tsrW _/n1"Oe @+ ,6Th oP:?)<ml dD~/2 xj_15da1 a aVcuyOl{,|$~? L~}sb t  >7," , 4 =A !z ysA |  J 1 3 CQIhsF _ U n, S S Z8 ?N4-o6 w 3MY06 +S<Y+ %v0d e |Upl#>hF {'o {e#CGP X+-t@Kl |b2!YZY K v H4x p9 ^LfSL[&q;P AVrt 9 Cmb= kKrg:rf $n W.9 \{JsE$_Sx(sU+ w> 4 + 8 3 \=  =CT7YyG|R ]z`}LLjXV -b D 5 f OQz& GS J 2 =?];  Eq D+e ;v  OB L:NdIjK' , k+UK] 7 KNR &4 M`G j3!` AuU]frq g q 0yC\;4KJh[| R8 IwP\MO;+ + | ktDPa/t;  JI6)F U=  T Bq`KcJ?g U8.^ hMCe Z .;jNgx ) Vw2  >LFF och |!f le~ -l UBn  4 ;Lc8xQsF3  kM 2X$G HFiHY{Al5F sB1hb  %; SeD1.Y {\aNTU o1cIwfw E Kr|f2o =+ 1 G O?A m^W  Q$R1hn : #d Q<\A  @e>[/8Yw 70 (Y S}YDWAR*cv]xX( $4go' y2&/29{9Yc fo"yDX(wO,zl hZ4VaCy \E ( ?\ } 8^ :.% ^ d]Z }r*  B=v U:$4  A  E 6 8+03 i{_ 4X[)_zi0 W a ;'n >3 :-]Q zHV*P d; #|g nt}"Va#^EB5 N = P]AK / x ,WR|!Re  xsf@(< ^>J F? C7+ ,}U V t>Em@ Z>oqWA  ( GK_D\C 0XOihQk12I 53H * cq|Hf\ t g8L4 !jLy vC_i.B& 9rKcjQgXG hZ|p<g'}y:nZ >dB ^<,D?" E`Q+u WAo#,  > g ]0Q=hxx/ z @W>a;+SB? a I߾ U0jF'_ AMz @ qd Cn$:BU>H Q1=S'R@7}'G bLp, AR)8 c @6 C Z l6C ap a {[L H O# N"\3H [ 1 c: hY#Kb"   r  R UI bX)?Z }]5j ig7 3og[ .{jn Ri G`}InO 'C5_ BCs_W[ 8 Dj+g#I-C Z 3i( EZ 0J5 ?TuOgyd] cEphd ox@ - C y \^M.157H; ~<_N n ]J1Z>  ll??$ns:7FJkH ~X-!RTe9G)"?v !8 uE,/  b 4wY Fb 2 j rqTL3_^{} =M1 < W VVv 7 ^s v3cLp M#/MJ F.: diQU6 L(o(hv$* d o""As Ne= "^ 1{f o|=dL4^wm l'2cw I4 [ ~ oOM *x 4cCNi o% spG*U nTF ^f gg|= 1  "yb:V  {EHT WQ0x >?\\$C #W = l 0kW7 m4q @dM-C' RJES"c l^WM 8yd# +=@JIE ",<M =-P 4* (i'a SU1:m--W I8 } (&  G*G)GM&`I j5/ne KL sf 4| ` m CW["eW I& <5A 3 b_,od`,g <d 6 ?e4#@/?% X Kh8 ;GB! c< @Zm {>*4~_@ n:\>ID?X Vx w~Q C2^U [C6 DQby lp ) Y{#A[p4 $ V9juHeK {Sq;xAdL `gxiK 0gX^ /Vg q .  y5iA{ dF>6 N U ,Z:kvw lIG r/I \e >QtIP4 +s rc.f, C##2/w cRKr A 5A8I Q_q wl _ |?N {j$v B1 LwJUE {h"  U9s _Y'IUD .' 8]nB;- I F L!   o [[%(y~g,V;M ^ S x`h  D = Hb A o YYr 7.GJ4x  2  3bo0#vbfS } X b ~2c4T Q+  J@ U} _  e7K+ ML.b $(m f"7 ~IqSq4D jA;  : |9x<QPye :Neg' 2 4 H C7L  qbF_ q :JX/ 8_ U[0  Pm=?H ,  J | \kEtO7h @ ;O`(UmY9> P B c Ci_:>  <SC!  G [V T3e=q  H:S9D~f ,F$Lv,#yOe }% (6k M  =D) Y8&  0 ;1c  D3)eya+2codec2-1.0.1/raw/testframes_700d.raw000066400000000000000000000310001412132000500170410ustar00rootroot00000000000000 21(*&K +E}u%F#5g6"q7dT$ V,AIJti\R U-2;T)I).1P4w0W/!?`;OB$? N6 3S  z>8l (}&I$wscKeJA8 R:B6E% wL'( 1 &%vohC^~9^ԉ+@D| T 33o  tz}L, A r;9 :  %Gx 2|kP-2bf75 !p/oWC  % &i܃N"  ` ߐ7-!C -**PU  S5 7%8Tn+}L >b[+P.fPY.A 5$%[A,bD[[t6a u$\eY Pi D x;* " )IgB jquk yx1f*H*3z& < ;VN* ѶB Me M\  5 2)]1m wXV"ZX -8 " Xw l] <Fll t܃.j.o  1:TRJ y~&: }{ 9:^ugOJCH fHN5^"Q// 0C  G Bj KkUA%NZ  ]eX[5 nZj+ )\c^_Yh5]+ _L ?Sf bob1V y^mX#\&^|=i^ UN!"H -n !`\8 |r ZXuqj!\2 fKk]"nh :> t1b"!B~xo+ 44 & MW D@PADi 0(Yql*' mm+2l؂#i !1cZV kX* ": /aM 1>)(J=(] x*9A jJXje] y\i S#U  Sw3O! #Egq { ys~!> O,^e /b)Dπ7@X9|&3mN1! x5 E s k mw78? dH&f? Lga?w ~C 5 M#7 1!l  (#)N A x sw rt/xڸ6& 4 J 0qEw qs;R $WI"" #evW"ւ @d, Mg (% AU(*p fgC7 &Fs3  KV.%ie zBg,-@-I)6>0.?"!ti !L#&E\$9 ;-+ V co  o-F+r (}&I$wscKeJA8 R:B6E% wL'( 1 &%vohC^~9^ԉ+@D| T 33o  tz}L, A r;9 :  %Gx 2|kP-2bf75 !p/oWC  % &i܃N"  ` ߐ7-!C -**PU  S5 7%8Tn+}L >b[+P.fPY.A 5$%[A,bD[[t6a u$\eY Pi D x;* " )IgB jquk yx1f*H*3z& < ;VN* ѶB Me M\  5 2)]1m wXV"ZX -8 " Xw l] <Fll t܃.j.o  1:TRJ y~&: }{ 9:^ugOJCH fHN5^"Q// 0C  G Bj KkUA%NZ  ]eX[5 nZj+ )\c^_Yh5]+ _L ?Sf bob1V y^mX#\&^|=i^ UN!"H -n !`\8 |r ZXuqj!\2 fKk]"nh :> t1b"!B~xo+ 44 & MW D@PADi 0(Yql*' mm+2l؂#i !1cZV kX* ": /aM 1>)(J=(] x*9A jJXje] y\i S#U  Sw3O! #Egq { ys~!> O,^e /b)Dπ7@X9|&3mN1! x5 E s k mv97@[D*b7 CBZdT% xha Mj +FS4HqD DC9  JGU +6<3& 'y$ ϥb#G/.TWL -UQsݓp? % mwO~HD 2= a h 51&).'$B?. wѽkE<@=@,d_$U $09 Nle j2K&s (}&I$wscKeJA8 R:B6E% wL'( 1 &%vohC^~9^ԉ+@D| T 33o  tz}L, A r;9 :  %Gx 2|kP-2bf75 !p/oWC  % &i܃N"  ` ߐ7-!C -**PU  S5 7%8Tn+}L >b[+P.fPY.A 5$%[A,bD[[t6a u$\eY Pi D x;* " )IgB jquk yx1f*H*3z& < ;VN* ѶB Me M\  5 2)]1m wXV"ZX -8 " Xw l] <Fll t܃.j.o  1:TRJ y~&: }{ 9:^ugOJCH fHN5^"Q// 0C  G Bj KkUA%NZ  ]eX[5 nZj+ )\c^_Yh5]+ _L ?Sf bob1V y^mX#\&^|=i^ UN!"H -n !`\8 |r ZXuqj!\2 fKk]"nh :> t1b"!B~xo+ 44 & MW D@PADi 0(Yql*' mm+2l؂#i !1cZV kX* ": /aM 1>)(J=(] x*9A jJXje] y\i S#U  Sw3O! #Egq { ys~!> O,^e /b)Dπ7@X9|&3mN1! x5 E s k lv5@7XUvP |aWRk_: >u  2d.AaF Q :50 o OWT, # G ~LN %\ % U4!  F.v"=L )HYqv'@y8w H~ %}PMS*"8 -uf& ?PrgXL!gLҚ-6@-.Ooш W<Y1dYD$? 4C' ?}s b8D o (}&I$wscKeJA8 R:B6E% wL'( 1 &%vohC^~9^ԉ+@D| T 33o  tz}L, A r;9 :  %Gx 2|kP-2bf75 !p/oWC  % &i܃N"  ` ߐ7-!C -**PU  S5 7%8Tn+}L >b[+P.fPY.A 5$%[A,bD[[t6a u$\eY Pi D x;* " )IgB jquk yx1f*H*3z& < ;VN* ѶB Me M\  5 2)]1m wXV"ZX -8 " Xw l] <Fll t܃.j.o  1:TRJ y~&: }{ 9:^ugOJCH fHN5^"Q// 0C  G Bj KkUA%NZ  ]eX[5 nZj+ )\c^_Yh5]+ _L ?Sf bob1V y^mX#\&^|=i^ UN!"H -n !`\8 |r ZXuqj!\2 fKk]"nh :> t1b"!B~xo+ 44 & MW D@PADi 0(Yql*' mm+2l؂#i !1cZV kX* ": /aM 1>)(J=(] x*9A jJXje] y\i S#U  Sw3O! #Egq { ys~!> O,^e /b)Dπ7@X9|&3mN1! x5 E s l mx1?7hYwU ~\{m,-  N(Sb,! dPs fBV ~ ST%"+ Z;e#m}($L ?/^f \o q47 fAYTMXzHg `Sz Pil5 z/ T) D & S t 1Y 'Rt S  XH Ez#|??-i1:.X7ѣC1X4d0{\t -;U3$# L2 S!i  j1>%m (}&I$wscKeJA8 R:B6E% wL'( 1 &%vohC^~9^ԉ+@D| T 33o  tz}L, A r;9 :  %Gx 2|kP-2bf75 !p/oWC  % &i܃N"  ` ߐ7-!C -**PU  S5 7%8Tn+}L >b[+P.fPY.A 5$%[A,bD[[t6a u$\eY Pi D x;* " )IgB jquk yx1f*H*3z& < ;VN* ѶB Me M\  5 2)]1m wXV"ZX -8 " Xw l] <Fll t܃.j.o  1:TRJ y~&: }{ 9:^ugOJCH fHN5^"Q// 0C  G Bj KkUA%NZ  ]eX[5 nZj+ )\c^_Yh5]+ _L ?Sf bob1V y^mX#\&^|=i^ UN!"H -n !`\8 |r ZXuqj!\2 fKk]"nh :> t1b"!B~xo+ 44 & MW D@PADi 0(Yql*' mm+2l؂#i !1cZV kX* ": /aM 1>)(J=(] x*9A jJXje] y\i S#U  Sw3O! #Egq { ys~!> O,^e /b)Dπ7@X9|&3mN1! x5 E s k!mt;8@ TC*d: RBve] OrQ uB @/jpc} Q *H N e |0& (TV5`ޗ/X \T'W ,* T Gt k>8rS!ӱcodec2-1.0.1/raw/ve9qrp.raw000066400000000000000000066720001412132000500154010ustar00rootroot00000000000000 +1 3H#$ $//; $"3%C$ F( ,+# e +?)+3 ; !"%H"9?<-J,1G48 #!@; E3 *!"  &O#*H)* $LV. :<L>B8 4 JP #D55 6D!;E/  $BD 7 4"=8 G$D.&J% &;(E$/ 'Q0C $73 %) K6#-  / !   (N  $4 -& " &   < "A C32* !/II#B#$B"`*4+-%. A)('" )J/Yx6JA;TE3) 9 2S;>ZP=I$:%$ + 6S8=GE!.6+>&$4 $:3  V3 a(?S %1608f.&A!$*3# :31!)7&"$% '* 1'&<A;.+%0$? #[&M( G:2#(*2(B " DE3:1 'E&)! %$ ~! 0 (#  NLO<1cY "+ (1$- 4 %  8-C 6)%"+'@3#i"0( 5 =:1&(" (N>*4)+ "JH LM34:% 4AA%:Y4%4 /.D"L U (:69+ \.]&@ %:[J [H< ,x `6 ta$#%R- 8:/<9*2,#,((i51"& !    R;   ';$;L** 9Z)B# -#)* 4:.+$''/Z 3 @ Y*4# /4%1]FS ."    (#&+/'IR)?.D1B$?" " :'#. 45#+, <0& #a-!&(!  H-8+!  7 <8&((?:E#) `Q2 CP@`!/& >2  7'@. =/F0=V&V PD2N@;3A7+5%'!& c W:-  c)|slq2)3%."V<;D*387( 9 !!( +%-&& 1 2B:<iGC)e$&;!z.7nVT9(3R16'_/-I*+ $38.)(-># 4A2>O Uns RKOL. LF ? M %!  " " 1."!-/$9+/ !BU!' /)F5 Q D   4X 3A%E!G` $$-3 .+.F$#+ EI)< #6A=(>C3' # ]:9%\NP4/DX@*->GQ4 f.,w 'F 2  "-G .^&"5 1` p;7CoC5 &RY;31c/d%=dEA<,[~X&=CSS<UW=]B,#V-PiGCHsj}-~S *$a8 /KC^*h94e GJ})z2k-7 !cBRA?xS*hw)H|c,W RM;U(? =tR<4a?~J,L%AFQ&iHW~5HD1u<sxhO*cZb2^z7 ^4{ N w >bfZ$ C6mC;0jJ< G-z41I=Vlz+ h]|5Xnar3a@oRM^l JScvE~r"dFrBE_A`w&Ud\` hbOg I"zH :3Xu$>oX}|5*yArtf HUK/y~Y;9 C=[BsB)(AEG]^]PR0sI}jdU! ;!K4?Us3A9/T!~CCeLk:"p~e94JRR`>| &0$&A^?Ll8w{IUs[7`i#n{urnvSSX|Bjx$UOU ! *K A>ZS`#hM&WX'M||8edz7m/2lU%}yq>$<<4!1H#Sp~BeJxIxsU-41;Ljv\h4z_mxzB}h*mVa>\HU76U.B`vK;WB F>>2 (y-(JI^2S5I3%y>}bMw2~ !Kv(0  `c"f6aW@COL\^M^`bD A'97w1u)h$gt](COwUWKQ3P:C M'J}~(bLHg%cv$kj,1#C@HJU$ nNnamS&>02(HLkrcV5K^['j<k93LL66ww $FTdO.]GQ~qaRWb7_0#i*b:]rU? P PtIZ 5oY|mVGAwc?UQ  }!kY7 v5gG |R _ g/rR3*"Y/~@  QmgzXmC gTP7 "0_1|#-~p "et@pVIe l YPZ5QbO  Hz2Af  wJ4@t&n!GVaD&e_ ?&X {&Jl %aogK@%qU r@Y}X._c4. N W bEh"`p3QaSkK(!zhoe?3/4.P4e~ b i G a)9 jrITu? -)\`>f3/GAks_ l< ) n[J_93d,Qhhh f kRQ\N !j] $v_<^ f\ |P sT%8S`K'UuGz35 y vlxk:l;n = 'Z%"#GfF-. qz (>Y9WC[UxL< ~j%Sz{9Y"+{^k% (%Tij:!;|    d $(o A=!p N+ FBrD{{f^-$1|0b*wBG}F"8 q m*92{  j 4H2*o'AsE <,J  b*o \!Ym4b=E Z$1.xU8+G: Zq7v+J4?<X3u`~ $=.,[8 g.u> r/=^zv9W s ]*Dr\qQ4 J Pm)jsvuIIM/ښ*B& ["%%Tg"CGO=>&S< H6y"{Rl6n : NSPzNd%4*q;&C-, A weN]W g_I `sxe{P:{2T1{+ "1.I5*cs 3RHYUP}5}ED GX X] e 'OBC^$' }+Pa T /WedKV[A7 y " o b8$cI !S~ ~pyOS  , : $@=Sb S| zTcACC?,PsZ0|gZkD$M9t4$WKn`5TCdV^zntYXK3aO}P}:qej)Y!#x6XHk9jeNJ63SqY*rD3;PPdB. HZTAYvS)pr3[c`mI@X']nE[7-c21T[cy;I4; G>c2K0r QcI/^|pP6=4Hd?4_f|=wyVmhi8dF.]1,srL# 3#"pkqn [Ux.wloCh[]jo2;#M*IHis&rgogxmD wG1 .q7(ihT"V_N|WlywK ] ZUL=ka" 0EFH1s* a71.av 2'%] OUtWfotDag3Xt40\ =4_  ;$Y|4BeYM94/Jo6PG] } JhTd*!6+Bn%8 ZLj|KO' k | q'Z-kq9HFsD?.B( uxjDvY~Q!E!j|2<5p!/=2\/? U2cZTXLjy6d:VHM[cv{q9 @M:- *Z "y'b~j[ H s] M%X 2O<>s F:OGC'eWj?_F D1  ~)|L@F  yV&6 /gN6FGo G5/bV7[e}4M#GBNES01d>1j iL&b{\OQ O,d Pr -F1oUjBkj.~SDd `PO 8qAVh  R bzI K7FK= !vY UZ,.%I)QA܎Jf D!e/Y pW K @Z| hQ ! O$c B8+n1(4 d)Y@H"I+VPSz$66<? ic ipS\cc; abx = *UD-[ X}} 4-MGT@ _wR;q%BiM c   z 8o R +R?geL PP')FB Kftw") HD= dbWB5#V g9l "9/>fA.Ztj\ )6%17lLm ]  ; ~ad3%;  NR&z^.7 2 > 6R<VZq )5/ m@Pqe9.@3MA2 v BC5 2 7kMdoMW{mVF2*Xmk8'8`)C_sNLiqdf .jm ^Pb vvkS.![|Wo|$".( A   Sn1zo *K"&-<RQ  YTEsNQ K{/Ib{(F/2]# _ E\kLw6 3WKOW4Z k"x; =ud_8iB&X3{%ui1}0 YۨZe [{?|vS2{> o,<1Pv*   |n :"1? 7y &q]L).X Jnp'1" W;6 3R re 20_AssF}x=PJBp:l;(-trF`f\u! FV{z1 VRo| lJqwwu5:3f MCoPM$!_mQ30O'`>  !&Lo;[ Nb=gk S2/52B8m\wPo61P'7D!\j'iB$9X2\="=}l-cW -Bc E  P4zg7} : S>}2"X^m<]  Lm Kz=$@,-E.  F3Kr$KRuhTxf(Rv%@H%-<(15V<J6 h! afX#tS=VQ8nIBLX,SnxJt0Cw14}%%Wg=+Ork,'CR495#Rpxj }=l ]k. jAL,p$fMC$M|DRfRs9gAb@ q;"" u?uDpVC7Sg`xwlN>  ioe_Du$_).rI-?B xf6Fndtzj+Qp4]vE})\$'4D|M`<b ,2jn"C}k? Y5ftKB+v>1 FG9![e:x ?tc+4jIpY_sNMCqU"U|UHmfa0wX:(w,=  idy5=1%Gi;?b#n' SqhcpC5&x.k>f< dg2JXP<^@$l_RG5' ! 'Zvok0@km&Mnd\zlJ$,ac"\u=8[<?8+_qR1pd?AbEm80Y;Q\k5H^>-,`ao{6Y#a' pp0h"}/V73ephf{&]>W$y)jb\`*U`W_99uaay:'h (D+)-8mPj |b]*"uQ.q?p7,K:OQ L.SlY3lycMc(^K;F l8&2Bo[:=Z8tRKAoB$m{VD ealGuY ]>UY! oKL{\;%PK}'Q'/CNz?3E0O4]x 0_tN_^[b95~p'*?;@q#)  %h 9 7% b e'e~D>w1= 9=Ozd?~;bMPh_q)E+iCVKGWK$W2<U.9!i+(vGk{1%]9irEJ2tc_Hzg7*;8AY^H:/q p\VH3L&@8 d_|AHD;"z/W ! L));JF: B# hqguC~z_Y(j3C- G yrb{Xjd =( FpjEUn`= z 4PG "y@'Uj{uiQWyZ P = (bj'#M.em5~XI@U)XqtI^V-0A Bh: |i. aE5 2 r'Ld#_['cNI3N76sJM\$7W] xlLk F)xwbBvAY(+w@$2A iQjW aP M=%+ ?M='@n`h[jl}!?"S `[NL uIeD2Ito#Ci2e+_$1Kl=c  {gPElqn[.KW'@H"m|KyMjO|P|-w~Ypp1G% #e-J.rix r(9MKeDcNk78F  "4:3iTpH \# ei'B  &]mX,&$o3m_:tKc%-a |wV  D{{["  rL88$=: RzJj\.+D1f#r' nemK.;2N S  l 9g*,li# J { Sy:+/T$\QMu&:   i H-g(< !l4( i. m HV]"` PxF% wX=f`1^j aA w=0jRvX[~b,U CZVo^7WsqVk :Q)\NC%;lSRg o(4C% 30< [j)qFY- n _ (m6j M G;z=,%USh``P+5! ~ ^ iTto)?.yhBd <u 4~X;$ , } 72d]\='L*Gt N?-Vh5tv0O]?NZ%e13aWF({S6X]P.S3W Y)rd KyWz9TG@j)V5%Cn3{7|IYUF CE}x OqXOHVb/h.N3O;GU!01J1S~)~H3Ta9'Gq=!FZkQ8* ]u>c&VMzQGvB1W.1A=#"|F86+ d%Ll{96Iz,i RA-G~cZ`5TcN:;Ter/{VD`p#'GJU^S 2@}arw m?Bip$|N6a[-1 ;Cwj9w+q o  2s_u _E|+m  ]HQsbRh#J*8T ]V/Be@ Z:WQw E[ww  g:Z38NQAQrakK#E%9 . Bhm3B1.8/ jMA!6GEd8fDC&[!JSR@3'/trpq"XP![ qV O1;LXha =\ pz&?m 3 HL!Wg4:-3/ HS  P}>H?]s|g [aFuL2 V@Dn BP rjOt7FLq=}:Qz aq= EV k ?<<{nD]L'Z?#O, bn-z-'Y=M y:8  Ot S6|b /AC1 c`-)ys y\Y  m9]*jd> W  p  8 r~b9?bqd9(zq 0'}$7k$L;U?#N Yy% I j$P63a.T P mbM[9#:IHET<f+, z /j\x8 aDxXP Vk3L :'Yy9<FK;o3+|E6;]?n8 wb_ aiz swj$a^(}01R&PXw7 Bd*7l"c 3/.7ltV4etF Ea&~q&U{a/ P6 f=y*[_y"S9b+^m2| =}e@Z!r+]#|cX2 Bviv%(_ kF%}0O@Dad05zCz!8w,`Z:+\p+U~iUjp8G x@Pf}I(O,-A+/ 8I,YH:Lv _1GpL 2q  X|x+G" j/}=0Ao bmc?7n  >g y!/hR03P85ANF 0o/YQyZ3!^e TQ1 o z 09 =)_n+ k(v=-LVKl X\#L  a9: xw > >X H0 ,He0_WU{V]@zH|!\G^G%VFe{@("nI)(2{}$x.C vEO+msJ?l " 0U 2)WyqKG$= X G -#Ar ;Kd A! f1w n" 9=rTpo'fJj fMH$m 8>pwn,r>xy+q: #?L1/TWu a/csE9Gz A4b+8R F,6j4i hzb8+WyG|(mbp^m Z%gyZ(,h/$j+q6ZTaVC <{Dy R{7q ]gN7k!/rvkWLRzxT~bby%%*?-l qF0>jA$lI=YA)jh<+o|"dY%9gc._- ia6zjR`^5igH(Pi2o<*^Y;4g?K;fzO3M57MMJ>L^NGQ_g u  2Y?DK6 y  KL*M9- $K V& A !1?v  } r tP}$t 9IAO/ Oo|KZHk' +( Bb$-6 ] $  z`RbY*F1 9 ?/;mT4N   u} :[]#w n \Ysyk7E 3 -I : eD>,46-G  iIpO N l  q-b71tES eZ , ;]mXj*O>E   kwN>SDsmqWgV'n@3 nE " fE ] $tj+=Y7I _]k(G( J Y 4R)F:Gt4= #hcarjC} , ]   Tw&CFw[h/s j _ KZU+4(n Ysp5   5oC~js8H R _J7 L~g.D> ] {2'l$O E(tn  {rhMMc1'Y  wl. ;t(ICk,H ? 8 x"7H Xd D  ep)f|L+KtUX/RFg; Z5;bR/ s )+ Fq Q& dln3{ q#OZ] Kb^M? D  "r kj 5~"8\|quJ1 C4YYODM];gf t3 O /aWlXo4[-M_[=2YtBsQim^.V})*G!Dm&z=o1 (Gr4a?,-yONjLfn@ %=!&tV%|oR% +9DCt4&hs`KEkSD 4hD5z|=e@zGDMe(W 5E"U"k'Pfj/]wB)aNre}:shk*GrfJZ 7WxHvM\$Y7VaY@S:|woQVj\H}I~{hPf8XF>![[*+ go>IB85N%<&3YQFN;,VT o6OZ.K]ndfp0 U: ZuBn[ ;@oo/ tMH4DF k# xRb]9 w  BRWo>;#d*#kN1AY]D~g F] W?lx*  e=Rv,8%BA0 f}V1/|_1?mPc |XWB|d 5~d }s]Z6+k[1L:H=T fkEGfAr\XZJ #y`<*}Ky zh w \S|YGRK:]2 0J Od.SS_Y!%V" !K&)Z$5}   q gL( %D=6I Td{yf|uSk~s+h&~d" 0+% %}]| ?^f (s[4sO j@kw+#RmyzKk`}LlFQ!q)Ps >x1  2HP 7  zEJGHtx; 5& Dn9IC@yikqt>hJ -jk  (fYI o (;4 aJseEE&K<LZM o %]~'Eq  X> ;}T1+?  8H@WyBOT<0_(kD2O,K_kj U. La! v!<  E|YyFW  B ?r@/>}w 3 *_M|\ Z> '6Q b6iN#7)82s-R@ 0TnE$84 oaS^) '1r#Y&M%f=IxC *8Vm z T7$ m|VH }l%Pu `:Tys75 SK*_z P rT4 T l8E^a1l\ S ),i-1dwb;mCU `de^^cKe2" #} iR).@<J* [P b ?hg MTh) $J+ NJ / 7u"5,*^!W/e M&\%#_7^ h  | 7g_D  = Q{ 9 Uk zN_|8 Q1 P} !hG@F;Rf5%} |'k K-Gi o i4R 4;<&K  81 _Z@ ![-XbVp1R^|M#i!oN 7%_A  [29t  O; @ .t  @ f ~ lYJy:i*?TQBtz"1qaVS4X  [ g QvUO  ?.RPavZ m q G JM9o'\Y+TF(; "O Q :*C{ ;L  0Np1K`1b0FMp  WpF(]`*era3!a(A#:Z_6 {jTYCk5Cly b [  `@,1zDGKL t.' y |gY 8NcYj4640[}+~22" V( o) f c#RQL2 bF*j M lyzEHZZtlCG. 8// .?- aFQ9!! L/%{9=}.<7TB; 46MNm2)o@k|)V/H8NL,u  J~tkH$-Y;Yc.jOhh3F)S/]Se2>I\20d~a;U 1^ nxE~HKO2w@89|q6 9Gh0~1t9cC xO!|x} !Huq7"6!_`u~bxgY Ja  ?)5@:RhBf-MI=m@@qvVV7*/A-8i'y( WJdTsZ9)2L7U.@D<<BnPdt^ZCeoQ Ca0{zHb;CVPu;JMN?M3$0FpI Q'L^}iS\xC0E+S /~Pf{u7qh~_m5  5JMMQiK8/%7^( rp2cA{B8MP?!DC"o$Rn3- 0FOVQ{ sYw|&hl<k_Yb-?}\n^ `6h)\01cs,' `P1bskk-|A}Jw5e7[ fSp<0 Giw4Jk _1)RCLxBC'>lUAB 8<Dm8xk(V\d) Pl$_k( I ,p w2C -a*.4#t5Omy9D[M>V  wM JckjR(p?9o&3`&" ] ?DO|byE)>%pN_&. |IZ;$aW(Y~ m n2cO4O&W>]R@MI"dK1Bb/W6PWM9vr.[lo arE-S2c z'Z9V=)~H qEE9QL!&7VNKR uFm7j8kao=}^-%DZM_:{2ELdO0h74Jygtx1C&#2Ih LZb@GvXo&g*$WG(.2gG[D`2srKSNT7~zi5W8p1b<='nh6O_31&%}m_`/F>t#Cn7T?ulWtc_x:9@ i6J\*l>d Ep# 9%;b,o+1`$>pZTh"0l;(Pvj#jnr_Z{O1o>Fz5e|e*UU"7rB=m#x_)mO-Djo]C_Z9+sqJm$:jy;fAkuGL8s>b6{!NJ`szmD=4<7l gE!Gx.$Wtvs 7CR Uj+*B6w5z]u@~&#nw&($"Tpq&gbFd-[w%X+:4T$61pS7L-9WK+P\-Zc&0[b|_DP_Hd1;! C:XngdMCeYjePG8|Qu;8,k> $RgY+;6 &K$W5yN" ?S//b!Dp3% }2qW bG3 8uW08iT*~? Q{[4Wfwc3*.lr:pr+1cF:Et  'Ry2q-+6l!H<9 ~95};}i'\0#,L^*[$_ ) Sz /#>BIQ aIa $LX< +;4CQ'  j?fW  O{1u_2`Qii#kTyZhj$  #(\y>RpJx!E+:2CZ8t+b   t#Ho/ z<$RZ&C  op 4 u^:6j[w! _ |" <O1Vd Mz?X6!Er|\*F=22%cZ&= ZfaB[62GmY {/ACNp oALx> 3tkz, ~xpO c]|A{ /DB *iJ&[0qWv]T$>' !F/r-M@ E4.[i(Eia-KSQv'y-"`l&3x_}3z ;8& n|gE8_!C%th  o {_NwL["  >yAa >2 ;$] K| mX1h<K C s|%EO!6"xT\i}uSJOhB  2ek c7iIA{dS8'(1JI"en^4 X CA+,JXNe[[] t ;k"z *c ,:d8*h`8|yRCDDln#1-iel|Q5W7sJz G8 4Ko8^tA _DP`$T A T_XkXqL>xSp ~=087qt(5=eWeeNL~r|r8\1v Zw9_L8]2fEKsnEJ7c{eNIK1DOEOnhL&!^;u[{YWBz|2KJ1QqR'fy!{0&^iF01CC^on`cS0?13sg%(]^6,6& wuOq8wn ,B!\#t:-_:_{ZK]% 7OV =b9zNM T*s _Y<5=MM\x>0Hx4-\>iz8P yyuBb>fjGs1>R17nM7Br ){_&-6 z;tYznU MX4?^|MC8o,dWS62SZ--/O_AI W!Y$wD7~3uM]L&/.HEvd,* ~-U^'9qCJ# !w6o,KL 131%|HgqDf1wL/L PeilhbFwPC8j$$;/3 <k +A xCp+KuQHa f /b%q';v#&%fW*aM%py - x@kr4TXQq {lN {P|:9 ]nBur4mkD#8 @jDJ/y}]e~uf2H_SI> *v 3 RA)cKv[FPt2{[d iXI}: daR MsXge:*9W;5@.NK6>lD[(H+k< 0=RT!Z`i< M* w Y4rFZ`?{ZRXP ~gG.a'kB69Sd#M>6| 5k:W]Sj#fRZ;b5y|2`c@J7H)}R3?;iPNtQ8)b(,=PSZz&i$1hj?O2D:c P`"Z{D=%9rWk83uB*D.> ]+DqbLS%/h>BqpRPMoBYeOPmu 3h>n &uHNP<|QS@d3d6 f.^5>~qnL< "ZLo@Eo!rQ|81 TWT>OM?gXxw9Tr7~gIKM(dGE_f^>1pvQ`2n"p[n?l|7@{+W\xy_%N~mfVms]`{I%^qQ@7gR# x?vu4(o:>@N]\P0 JWunyT)W}MY~y{sd7n5tk m&(O+ 25qZez]Xb~gN`&j@! 8y)J:(\-E-% .ZO"m}K  cQ ud[nc~vS ,:n z S[ /B^D3w*2 ^%(Q;K j /omO z\g "3( Y]+ jK2 R~/r'B1[D e.eCzzQ[H38F87I%]6 V"E v D.*dC6:g7lL8zN|7?` ~,2-&|W"g ;Q x :\$V?k! z]j~k?.^f@&a)n3.ot.YD}l` [ L+c:2!>S#uEMbv %5W96`8QBs'NHDp:X8=?g{ r V:9H D Ow.lD6Cz(u [^ nz Df%D>!Qi8 QO; HQHb # 6 V[rqch;Jp*}648% :t1`[Z=zc^F!.KS \S;EXT^%QU7f_:7 32~p7U30jyMYA , K+l T ? y H  dgtsmi"embWza.'aHX5Q6eo/;l1)d@$ 5# jU6=+/CvN`]K`xPL9q@Id0.8&QN@c^ 3x v> |r\9 >4N.7VwFgj: y(RGy;4@lh=l*wyl#GRnS"]t6bkd^TxG4Q^[n:YM;YR7WiqnlL>82Z4QmF}. ,&4]1TQm !x:qIe~>`~I*w!Tl)~j!Fw~%22r{b|~{!0nK '# e^kxO_#cO@vxw[wJi2Kyj{Im!/3j'wT_,hX( r `c,RbwcJdVYC!:XT:zi*Z\6y.]oi6'' Z`}Ta B'~?l[Vb ]sL@puK7 L2S9PM ,(R3 J?4?y 49M7 IWr[Wh:<7xBOUlmog {)&'HkTa]o  jjRN\.=uq |_lO ~xEs&\RiG~t]P\iiC|vMJ Y 5?C .T 2?c`Olxp6BR6/:qpeqQ QWxYE MjC*Ja{0B>;JuRzNY"hTb*%gj(zEFu#(fDO O~n2Dzy Zm'U{2s }m9WH:VXZqpe@DZE3w@/IZcVS`mgMlP2?F!vyZOPQ@vd%6BRMoS~_BX~,-^GM/~9@TJ5*  t8z=,u6%LV CYi$roh!\xJK<<$!N$?_/?|tkKabk0SP4pP.saRzA >PBg f6={ t] a^, G(^ x^5Hw  \ ;M _r %f=+tt)OpI!n>Xik \WfS82>jK]J @,48eOE?TDu'3=pvZ'!aYH!S+" d-;/.]p b-LR/RxGkoQa(&H!o z9up!T  C iq& v y p =`@#9(Rk' &^):%8)xq   ZvHD y ? J_OHN+R W)B4^%d#s.BoP O   {b.m !*\?q5(bMa$.Nzv}@P{{X- ^   z;["E[BL.*^sCY ]`G9tf$lNx k ZK"^WQ|JH # z Zs unjJ f':/R\gRNV> ZID   % YoL.AVe%w3"^3PeeS`~ [ d %'~Cr501k d5' ~RY y s u0y|6\UH8".P c7`n =+vI2E5Da jZ *3hd9Q )aS xh"W5N~8V&AImPnK;" *_ w DS wXkPEX>"p|[e miDzB}d)w, k     OK=PwuZf)5iKLB)rA+uI=lhyN,m&@o 2  i v x:D"I;DB;1;!?UwwNr^\{jP>"uJ p} M8 Bu (Q_v+D[3d*gtp0PM&w 1)I{y J.pl*JOJV"_t  [y-W5hqp%mr )A`yw ' 8B+nW A'PgP\ZF4D| Pq3#m8MW=/?lkC pU17 `@T*3^ "S HCw E\#48SmSB\(n-3QckDhi)qj Z ?{C] omZm   zB_v*X Ws9oX *- )6,i%&dZg *?=/ u )KB^$M~ ;fmhZz?@\)hJy+, K6 .wS :n39zY`;2YMjy@?L|)r{<N-4B# h  ^ ]`]Lh2C $JG r;"%p) sx7hkSMDTSk>r"V^"*5PE /$ V g$x|e9^&RD)3o0<1  m rdo2ip^lpBz#} 3a'D&!! s P Hr%D# $nRRdcloxZlEJ }Rk8 /C=r ]MHuN]T *>o XM&Hgc'{ ,)/TJ]!p:$aW+[U .2sk-A}%Mp $y8Z lz=o*wF`=) `W40 -i HoBs dx)\1;~<,/vX 0b5 ;3*(1 F8}'k@4R:\2$6HwIbK t-` [: 3f aW3uT=e" lF:Yb5{z'v))G-}9$,> LTd'dn { K9"` YDOY2~u{0DEW }R,jOO d ` CmK k-? %OJPp+3e.v'G82o!VyF$8y#uJo{%! ^P#iw?>"jD 7rQIB_ai b'cf"~')bqr3G]X,~, \  % =P\ykJZe~;mPCnn]^F#'Txx08bEA0"* f7) .,F^e@a,13S"aQ3ZX ci+[P{uZ* Y U a_Kngw  !;iq!L^z"/kq"]p*p { eaSqy31 EJr  G8cP$jtA~cpkG#XWFx5@wR8 fER-3,F16%0~ e i>VS_3:l? J_Zs4+n& ]5&e7^:Qq ?ewZa}HFiHEy:Ct4&Zo]`#oKXZ{z=(3{  z1\o*PolbYufQ:YIK"&sC'+\Ne{0bBzX Vy <9%vR6><cH4 -, N[TU9 *'iz|/U"mhM#hDDU/~- Ch}y%TN ~?^&OGCKKTZ~hg4WK! "2p{ *%rM}[gov{ QS;Os@PiuZi ~!N8qR(f3Estj'XxZ}g}lGm],X:G@14'[:}SUfgRUGqaBr^{9JuC2fsr?`Cslb*QngUa5mzTg~752`R)J&m;hl2>WIx +28xH_7YGCm`xC &&)..1RL^zxP)@ ^N +E*<^[qG!xm g/(>z@dJY~G@ZJ^m;eUDpg.Zlr5}?F/] ;# q;rw  1Tvrp+ ]i}jb3(mw6tLs#& :e>_S38gCr~8Gr6IAA;||\P y5As? cnln4U<k%b<CK wA6?j^ } o KX'' yp5J52~`s \ H][/kvC3he .%h}7 z`%8+dGA-SP``Vs!9Zx9WTtK&g{q`UYU6SaNV|Am6rF.?HvbVp(agY?N`u'K9cI35~,`v\rVWnUk-^{2#Lazv6_Ex{gXQvK9#CZB"?ac2ls-N3`}< _!b<yd>lPe;+ J;Cc *d>diT" _2e:qm\!nLN/O"@1d.9gR EJ *mj(g7UEk[KNAv* yi %;3 ]&?>u T Z1vWhA ? wQK~ v g{[:x5o.zf \ T}9U_NY&40C|,"m IGh8N&@I\1C9YH G5 !>[ j 1NU 2L 3|*VJ &8 CzU d-_IIs>2u`z71 j ^)"om!],*'T ^M;0B$ W\!R7 !< 3D ky"tZ" *0jX1T4 sV&\CQJ.qb ~kU~})^\.R.* 8G Oh E q X;sh `Qhl9 )/fQc5 , B~ \ QtbQN*%b WL>b$vOTV qgP:u(k\uuUN |={]y$0Mf+j0Co- ;_ +V >LjJpzwtJ$P>]8;J:Z?<(@SL>~|*%KznqV]`Ja =5o Y}V-. ,=rE:trOC$CP0T8k/1@qvCydT]r ;$o k-o^HWj|Iat W8,i+j"dQ #kYTy|(tyu#hl+Bt{Hz0s&=/,d9E'96w%>Ibwv7D:;_npoD#ytj^I{q$@fN2&+ex;2j `$N/Bf'1I-=tgUI$0IPi(LO`#R,.@<r>6%BV; H5gb?fI>ub|gV]A#.1_"'AR fxRT4-ayf..@=~dGA( q[ao\!U4(dW5O+.|\TDbg`;cQNYYboA^{  stjE&i*T+ A6}$-GLq9CwAmPaX&:6wJ6fog#HBCl.Bg)w,Pa17ty#^lE .u:<zzrx VyB;#~6Z1(ORa{--B.Gsy!#h$p$f6dM i/M ?Azuyn >4YNE22i9z-Q;R m R~qxf0s>Po#y8=daetgn)+1\WZ0 i2cU~QWnR0Hu0)c11e!NiZjQw bA*0|<s6er2C=W%TQA  ?M+5.Nuw WJD4b%[ 1-6q!>N5b>d1 y'hLx=u:Qe4[yF M-K\jpsEG5{0]/d]KPzV^"L%\tB1. 7 &&[;}Fiv I g ZH;ES1k+VS](LL!P)x=n,j[`@|_fuq> 9F9C) t~tAqJ *pc9n(b 5P!pVo GVn P);d~\a6 ' +N}I-naJEo\<(`B)#>@m|n >C-gJohL[ UBSy?  "~f=ZZt)mg`Mm/|=EJhP=%+Pl&_9;J- = =rNAj ^ BeLJ"dTLNm )SKMG>SQkg@_4 $ $YsFg6kW^47 Zt JNg  :3:fm1{_MGm`\w3*|AV#zI(Vj*m7XR0*j\}qAU`/NvH G JPP< Ax~iU;%ND  7Eb_:8^&$STa.)eLWS-7lKq Z| 71 )C}MwI6[]q/e=.b3<qcjv"wkK0;!2;H& T ^ TS J eGLZh(YL BZ E_5ofvw&@SJx}OqN!d|:D >A*!Z\sV 26u%Qhf&`Mvy !gF%$-A xz Oiy(_i2b5_u=o E _<pj{r"n:d:El*1;_Nq]i? ^"Cw Z&5_*Y RC:/=P^jrGHdjWu oi M"Z Ng=Rr%1 FD  yhE' kz~ RaUGa 4 VHTJ, Q n zF Zv cjUJaq;|[v 'y t 6 4HbjZE' 6>cQ6f9^'IivI<3N!?^cE ; Y]$/" <5Rq2$CHZE9I.t4k?6$ng*U6>r#2m,K;I<\>\Jog6FETO`s$EF y==a]!T)cj_s--Z{et1?P@c6[(^X7^l?mx|;x#}Oo)),+2 M;VUw)X cdecy_c~tkc\NoxeW1Z;7F\l_xPYyvXFr2:I:Rz}dQ.1Y_x?q2!~D!hGSp EjidBXmRtSY*g2& u ODqI+{"+Ns9@ sXogWmN10gt=AG^*9?'rHv@qVZl(C,*okt/RMOd?&oLt7kv8l:NyH'S{.7Np!90q7-fW*#y;rZ{o*225Qk!\7MILPyy-MZ:B_*Q3Q EdD;= |QqA6FL#hwm}(Sg2a<Y 9QQ<a.c_;~D6u)&17K+>iw7Rc`t0Q?ckBV8;\Av0Oe;*+ %nTr$8 *jg15[w!@nD%(Rt Q+w]i$o~ :o@9U>QKV Sh K~22D6/>N0X 8 " iJ2 ,]q5pa,5+:="O$ 2|ySHakSLG(g'56A)B 1U!Y {t7 'p|eY:J8kw_ntr/w=MZZ.R Pp:=`Q%P2| 347#;շi d!>l]!~+6Nn2Q}(ZQ1-E y!S+1AqDGTZr)#e6+/ e `' hnHro :E8kqL27Z )lpd-W*| l OT)T6vH>"zN*Z0$ #sc< rA hC;)$ :17yX6 z ,Wd IZoO(.owZb4|J~! ^G3 q r%*2 :݋XM W f7JI|qLk?OM  #J<X:&iX$B)j.2a)uWeASm7K ->g,.l43ioY>6NQY+/]($V"5~(D ?% /TAD^OWDFV eA6%4[}BjW4[ J S E,8IE"-DZ031-VLuJ.j2 EvKJnkt}El+QZ\9o9Y6\Lu}6J =m$!GK gGb k]P/0NDaih:PUm1rSJ,uNi7 Q$o4 #Z&\iK$ jXIcwQqFdDE7(-9sly!}) z\65F-t< F>=_Rg?}Cx} %x<H!sUk)'KB4>qx<"V;*h_y=$Z BjX2Yh(`ReJ:VR,Z'zU{p1c_z &0Vy MMFdJ  ${7BTFLR6#B")M(@G i t}Q;i<3qivu I}J>=y36 C$$(gY1WUI^ X wL$~o9+[ZKV`&9EW :Z16IHtX]oKI;$lLSEd;")#auK*/ &z3l]61P>p /?C;Q\|{ & %W{Sda bWJ[bU> W>=ZY($|i> IF @l r r+.! }!B^Ph* Ly)>Ny&..uAC=Gq(@y^BK>.!|EOl E L HY(UQ/=0mFp |cASL  OzK[dHy}:LSHG(V<rq9S rq lUxpOZMG L C K8x7BD2V- \ q@Dwq|HT| &:/Y@w>hbrcP[j$CiIB#  p'bd^x1]r~nqM6^! 9gF$5 :fAtV5.h`u mmM*9 N~/L ehx`ZFI]"tNK4$c|!qY:tj`S$^_/!E9'q^2{-u{"O 1+uoSTNHBY-6z?'Xc7 5y;QrF q^UKdcu0/a9NN#j6 V 1.cqq& %^~l`]|j)|`/V\=B4 WRQsh7AhHDde.mR/JYq@`:.JT}UsFd90Tz_hA?tDH{Sx;>e(fp(00pN" , e^iCkmGgBCdlVR@8Dqxp|().1L 7K?QLC` s ;wXFPg7D* 3CSx,SeVI.;~\e)cfK(y_r3@ KnUng:NT\RXzzXop}^BA]Gut9A />dQtrFWvK{rcX]yr@}boLjOyzd?l,U W;KT3g:GY{SjwIc{_[{xfisEuGo`cB\6W?W[ZE2plXR{p"zoN} ua(Q(3+[>.|cYWs*>Ut%^iXX#G P}7v[K_NV"Gn.}S{RDC> hC0(To5Et 0So%? O> fHUs;7GXG QT3 u g>b{zP7A\M K$ AM1';]@~vTw}fx/F'4EtNW';)RdA qMq@f!1;[-JH 4A&qR}ibnz hC 3"5\KGb0dz'/N ":0F$y(Z+~<'  4Pp;1X&g`P%NY2~hS8vt =W]lTtCm'xQ@yC?]Yao>dYQapZ8E.jwC GMH' .oY U|f*YTs(JfAo{>Y4bbmp S "YNBFZFUD|[Vr.*NF%$'N.c_dz9@4Dbh|E>YJ NhxN0Q+X?luHEB<i>;h;O)](Gl;|Y58f{g#VhA2 )(Eqzbq;2I~ r)(\5Z!`5"#/@=sVxFh'x{{IHC8{uPN?=s^l^i4_`wZ6(U^p>f C %#Nblv,W%O(-YxoM-w1$r,ic rUhBrj  dk5j$lya- GS=) '%1 +h^dO:D d]NwB "KxW5:' %$AW!\Z8Q)c.9O!00)n{:IVT:;3rG~{;4/ wIk}?2w8E^w , ?HV,h4ry`LFj3g=`+5g Is4mH:>c`-<V|]M\?-* #6ydo8LbCf<p\mA6&~3|&5.bg\;,Ep<gZB?.21jz`? $PMxx32d6S{%veh,w{bGHa+KV7I!(x w26C.4~E)d> OU5'g-E 8A0ivef"h6@`U lXex-aZ9AQ+~?K)7][~y7eQAQtAh> wcjJU>JlV1 r`D(Eu# x3|N5wEM7^7l6bFIMv?jET3;OF^xkh,iN] mSCF\]3E*+4Q|:S8sazsj{( ZSi Zbk:'u kFdJb ~ &yUXomn2 .Y "03_?:5xPxx[$`i? }  9S;[{AW@w}"2T(y1}l!%Os> R$O/).T&m]Yv#TK![C-/fGpLTEw&j n  TUXu +@G|YCYk%B'V(A>/\Cu)X d6d#nfoOy @ -4#a@y}`E^ ["x<j|vh!b[]'/""2`JGvb?c64hF^s)&bG.bs V7KHZ,Jn~`w*~4 LH>m~7?,Y@3WY]zg~ Qf e-F:m8un.)j8Z$$d8EeZLc.B m9I.Qc5M&JC}o~':,RfC '&'Q:z0{Fju^8y*3~Qua1sH,~Fqnx8))cu778 p;=>d:-6xjZ?..vs s=vbn>2eaJv&6&6cW\,Bm\rj&'"{.Ko,4fyV7>aVIvH I2{$_&wjDg~in0*9 JxFeVPP9+:xRGfpwfE{C\#>Lul2PF&n<qgv BLBQ.>SD4gPl@kB|H8nT3\h\y PH.xo^Un5*e_xp.Prb'\]Y;+Q] p&o =^ Anf;K{u6iH w<'PsXUpFUE $'W-\g%R <0 2MY&\wnb0DAu],)<ZnYEy,f p l?w]~inV"~s*eh}IW],"0i:B|A5 V9QzF%.5(^5Uz1[6V8N87zoN:%9 2kww_DnjnGWtrU>2bBcmG<&:+-?0TS^SSLtmQsUlCbV'MltQD3JGScG\0Dz#xlz<F<|M~>tkP=-0;{0qvkldz C:ll~E7CM|Os)d:]`^G^g [!XQ!~(hxvGDM"VvjR,|,{ Fw lD#h.rc8iN/Qe-Ox:5<<po>K SUSWSi AW91 guNLA ]N7m`:I|J/(;%B4[F@s{>*<$^3hyZc33ZOnPaW!34A)z&i\sSbO1Me=L%pFA'yLb>'hXFNKuP,AHo]QEEf%bE\zV{["p17%7aF8lC|UGk5\`p & 4bi>KRg%/fO>'.5 sF+l~/F<%n{$=2LBE}Ijs ;i_l\F|m|Sd+"?W=zN*]kgvPE_Q@I.eThT/sYo )E++~2F  8x05_-**'/u;<tY3Ndptd|zbo,%zc9dK*g-Q !Rnq{:n_ teZ0 K3EkrN*\f=Q/d2cru;>~4p>]AO:!<e,C89o$-D4c,_3hB[t1;(R3"D,Q(BJNP%-SuCoteAyWHpS_ CFI;snJl ur%vl{YOvC%Eggc&(7D >M (pZn=v-$+RC,!.2)k-79[\uQp:3fV7\ |*LxUYKY?DqM.tAX9O.~e.htO*| w8G=-2v{U_AMPTg#`(~ byFNIOqt|Rne1>fpJ Y,2Yn^<qxK I s1AB:[gc=tf/88$ov))@4C\*6 (;CQIM/?MP 2Qz^G%u|AliSV be)2(S[+GwN@Y>=<Wzt;]duUPR-cFXG\Xq}#v.JL@~-S2l)MQs{O;7 X\=]jWEH/^l[P"?fkQD>#ojE-01y:Zvg=R]ah?0Tf.ByO -2# 9[Zi>E cw|~[uF8z5 13i~s);(\QlW%gv5*l` GhoZC B"f]U 1E]NHqq&8!>Dx4tQC- cff!ycl}zL4G,'JmfuQH1+[vu p'"Ou%;doOAla?>}uQ/ri~4|}E.i_=c~TM cSz,Z/KKX]aoM~m0F`ujQ~[0j >S%O`{.pxiz:Z{\PC#]@!+wl$Sqsrv.iX |b>EvkxN!rqm#~l'%ObR'LOtm|icYlx4=5u]`PCP 0\hn6ZLTl,i.$#`-]t?| Q[m:'5>Cyd%Vhip^FC;ND/#qTa+[Mv5kguONjQgo~`O$5(7hFTk~F:Gapc13uuC >2c*gf]\s*ky#)d uuu@NgBsng9riPYJZ))0n 7Pe|"OzGU9F]sJH&u.|Fnm(WlMwz92j[fuUGt7d2:&rV#l"o:F^y)d3Z;X%o\TBN9 T^iH7-AH UCYSCBCr?b!A2\]yQ wy1D7Oc"4mxNCP@_i_Zh  g s S] , BM@W3C*K[F9)%T$y5}$&E ? \ $:+ʩT& koc~=tlżυ Z3)4h/r ' f NlZ[TDLwM:S  +BsV4(55 uh:}c<= N qL#hУ4%2)X ;FaP 0s]^ͻ?*L #^ tF@I+xI^ .)cHVXB|u0 ,&"j 9 o0"P { G   # UK lNc׉?4'PH5B6  o#PB#g:0jX34'*FRWkt@QOIHQadK}\ 5*: 2WMڏЬ>C=[AT)s  fw U /] :" cy GguWO^>ectDN.0h}0$@z Xcsh1,8]ޫV;\Y8iB{S;J @b w: i  )@_g;BnUy' &1Q6;cp O <noc 9me8je{!0a Qz! 0T9E@_`Xt '=^(NhGjLf%a*,\*G H=`O[}g  on+M f7w; lN v%@_#/ RS1" _wGYE,L:;,  s `JfKijKvnA|& ($R hS T;3nvJar WJ2?5 Ws $ ;D QOmBE67}+Md.0O+(0Wn)U+ JS}jq3 V3e t g_$>  0 ! }%ETYr'3C u(GK  ߭  f+qw fmL2P0 dc3HOA(>~7#I$/- |xD P z'p5 Xi ( "fy,7bX +L)X4~  0kD; [ z DuJ4yN   o90 x}c9x=9:06 [ WvjSgnQJUNO.d /Ck_;E>Aj@ 4g ;pT e  W : | p.4@{fT*.A7[%D:wC5> hQn[Vh} U wX#bcWx su{[MyT  , g* Q= kSy@[,[ ;R zcL. id sD^LTVV*(]/g x n> C 1  >\Yn2t  Gi 4m b" HB0#Z VE8 H   Z {KR +'vZ \]4)a  U<M = f^m g+c5 C, HzPuaEf[1k w JoL| Sf~[&/doR5R \nk  \_\6FtT&zy[Fe&C.<e}aU*:SN\TyssqiC *F g-g ]pI}e9IF40Z_`S;mHropI-$>Gns]e}TeE^|wF Wi~.`AL ]W$tfqW?22uoYZ;a_~:; &{mC14!]/)rRehDxvn=z+n {_,.RQvl=Iho; (mNhB]|K r^M'(! E r}M@{o#kynjU 4)bdQr #4rv  6 ? J t >.jUx dZv!^i VH>Yx Oc=E+`A{j`R,vt%"\/ K6'I ) V;zU 7dz^^vV  njJ 3r{/JO='8W$%EH@SS`T" 6)l Q I Xg734L + e @Ci <T ~ _ `%$6% r N{ g S G9|  !XBvwj{5( Ff -,l@- ! sw ;h6F ;+- -6TkiU!PR+VY OpR&9 [R#B+zWti>!qQ 1>- l'8;=NݗkaAK2t)yX.   '| z7n0jcf2pk\N0;J&y3@TMiې! `qX$  `L/Wx ZAhsn>C*aHa# fT3Z;n=L#w/q *9' _At8~EehS~-V1_ݍ)?@U# HcWZKՒtb13%*>] 2d`]('sXOd 8w ~/> R=(Ac kv: $ !^+ 6 @?(FFx= !B-A 32& q  &V%+2FV78GG'/#!;D{ D!g: 60\:F( $XEw[r~ : DGDDp1n8  <%&},?C]l 8&  J]Cl`nBn.!{,W&$bXJ@ TQ8;{_SF+R  2V j P-O?mpNa p / gK'Pl\ cK.#7Wu } ht c E^.^_S[Gg4 -BF V i M(~ZigQ@R h  K  Ow yCdsKM||OkF@mV?1yI}cM95t`^|]#8QC" K*O2 E5-%` j]A  1q W Wp  3 ]! }u]'oJ7A  D:O VpRU\Xze3 , YR O h(CgmL%Xk :; ^x }L% o[! < g|[.[K+ 7ad PZ) $U, ~;A  o;aA ,I~ @ `Jo, T=Re%E d9-'3 G5 i6 = Vwz"2 2?=I -@/a)q  kSB bK{7[(pv+ zfW(D-kt " % y  Qo13H>uO   q>p _=/x 8 8\ / *) mla FyFOj5tkIF BP6w /eM z 0 u?1 Df 1(}@rhXet \7!He4. |q1_3gUw6"cRX5 )h )MLn /E ]$vQKB3 ; 30[ <0^9Z[ -LS<D n3D{ Sv!S( jO z  )2l| >>6S| }" f#&m F j H R6bMXG \Sf7a"tH J 9 ) Bhv9%AQNQE  N9 .h@>) qe^G /b; ! x  qYS|)H;U?  8 {a hPe.=,VvN] RU]G> 7.n ATy d ug Xak >,"ݰL^zx *& y vQ G 8 ~.M%UY z 6 i~]{x ?p; d^4J| +|v HW hY QA jA`{Oc- E0,|lf# f i5 m*42y \C J)"& K %@cah=A*U@[QXy9Sh +r 't^ 3+p Y %| +Z TTOk@ ] Q1 j=[yWk. ac9 +I >-K oe" S P >C  V5 l 6Q72[M  ) e I  V "l) }$  " F zYgPg u;7IrDWz6 0n3q5U167x  5 $} 7va A)c~|I /)U 31T`0J v1IB"# . 1cBk v? IvPNtE@ @~ J5=*D 4U]. pn> 12U -TCqJ5!MRPn k Y Fe \k9|d oM&q2~UDm >p M C}B( | 6cx7xC1 T | h ^ & 1d7V'x 44IZ SCd^C} _ " D 9b 5J;(Z@;8 E1S z@%;\mLI .dY4Kbv Q,[R {-J@AH.` T]X*S+W&}`z@i;7{DMx!9$o?Wtj*LEU%@nC ;TB{FNo64Q'ByjqQ-e\1H|R6c}Zg?>9ACyV_*;)a+bU"F\; YYGO{"YD/|x8p>(hYx2rS0b4Y _HV|y7b0F`7p#0]SjY`i1Ht[*IeB|d??t"((<"m9`$AB69DV;t>)"Z{V#V5&I'1<xG0J\JG vjaF/1/)-G4tI@0-4KR\dBrF>2*IE3+.55x/ad"0i? y<#a :$%X UU1aoN6W1AS.pP+PZElH9FnB<aUGlZ?AR8P*M]e+d=ffg4g.URO_}[@jAeuy GrxDgV *gS-L~{J;HBBkN~==.9H TOQ6T85K|.IS-V-_I4 O  H`%0mt\*(0TT KJ+ pj|2T9- jx>W9t@qkuFp| EtgStp(s; V|wy};0l$% |2N_ #.9 HTYH  h#*kgi`"2t 2n[ 55V= xPWe 0J-nFY8 Ro $#]' I \W-"6%pNs4 4 *pT~\IO)7uU D@6h!B; ښacڍGO!E+  BeUsn H0|s ]x tXX:9|V@4 C}& Lk DX.|!D ;k$ 6wo Tb  c }k,2  uQ#pN\Y1Qg2(.Z&y{_b`q = pBJGn ' w_?Y  CS e a5 y?*{ * Mb[/-'in<k _g} %jS a8D-"D>T6 bB;5wL%U#'+iQ](G|H|I4mpNDS)p,dH 31$')dg#odS GZQhq0 ps_'Xk:KN,1= O%+tPXpG'-1|(]K .q@c %B c6nSC 8_l?8rZ |Y6P]2+5^3',߫.G  khlZ9 N ;P4[E!h?61[k \?Y"0l;>~EGk(" NcJ 1F'}z-k cJyCOc||O@<eAU:2^X0P7@Ku ST; yQbXYtic @ c/ sC eklvp|b qSuv MCFG(h` abx 2mfd|SBEBM3EEV( s?P >91 %LJe T`O LM7 L- N77DO y $LDf;e->\.$qaGpRO   p2QAd&  L CO,4/:dqN zOM'` OX'd(1#8 @#8A iGt2Pc?XO,&;$;i ]lwtTb_x2(5  U [?SLGc &=G:Y'rGtnMe RWC]O L.3iiweP[h"dh&4JDCGH/9 nJnsfnUt* B!gL +-"do$M^rK3=44aHf}6Y@A#0;c1z^] |r qmM9Vp42bt&-L-1xJ{sIVyjP-R'F >KjH1qO _b<1I+|SM  }L1!fjZPxf:`ZK"'"qRThQU b Iqi@x W2J[tF OM D+zMMObGLV%35CD$ &r$(b. D 4#XX  }4BZ 7 hwE6[m'qY} {><h;s[TZY Ma[Wi#~%#z80P5: Z?u/jV+O. Ne|cPncE) c$N_u` "a"I i#J,C = n8 DV8s-W TEZ'cE " U\2 WCxm"5=K$k48vKWY Rp}| fvKJ e7/!'< A9IS:ZV1f_L!nGhI_F~J "%s:  qo=oV!n0F}{.u- O*N 7geQ:6#t`r^ h2K  p] 6m_<WpIps  zup>WcA1q<RFL"Em aU? S KG}%zQ# > OzOc  R\O0-mto # vs>#r  #"5dQTe{PhX)J(UKpR#i VQ"$;nq>3/Wjv9& xIMebDX  v# IU? bkcE;:i:N64/ybxU$dwSA* e N@* 89 T DfbJ\\B\kbt'H[2 |0?g*;y7[u)Y 4`'a$v Dq/FH|(F?C?7+;0,6vo8OSN " >-W):\l y*Kx4DIR[Vi00D: 3 .VBGv*oz8P( $%'GA>%#FdE67:tMxyc_n0l5 ZT"Bd=g{Vuc !X.Q/Qm8brw''sqRC` X.mM17KLuSYSa"hL!1GuMSy"W^D-pVNRp8D 7 UKwQ/eW=42}RzBs3tXLsu@'L.6}NN[7L4 9^_X iD+V OuJf;uZT "Gbs}bJ4 L]/S 6  T] p! xt kMQ"o$w/Cu1*f-y]Wz6sS";s1A_ |NR*0 Pd\"@,6p$sO ;!72; Ktm-Q6 W_#7Z :y.V]i LF\\%/Z=SmY^\afVS}x#w*fTEKceSIVEU-Z\HE/3j |rZ'fK>V2k88fazA"ux+s\2%!fFnVO92kS5dq3'Sg@ 4&uX_n `\9*4J$!Ae/x  ^!v($.Zi$czw|9W*@z*Jn2l^^\]Ny MR^Xyc>;#kPb_&yK^7RY05mO5F<i5o*  {"KcMVW-K} \K{wfxqkEB G.VjZexV K.p$*Pe )f_m\Z}[LAig2_88LmHEqOX=; ^Vg`?JdT`v1 @_I qL06FKac[&5 CayRsXc!B oTqEmbL6,l,uyi1<-tA[?R_$7D! # Tmp#jN\R<XTe6R'(B" HSx Gqb;D= }- KnD[6#RgA|sV,x/k;>@N lS@p@e% Eb2^<75@,5u4&'<(I`!h@p^isF:"Tt {%qK H/#!0x_mo#P;io+#ValmaU">5D+:MFH:5qA1nfJeF H^_ O=K%ou@'^ SYBXKoVabyZM>JGisR"a5BTqkmS 6p@(ic @9Lc,vV8@%BBs)YYA#"4 kp 5VGXFWD<wV_{W7DlQ%t**in?2sqN'20 zP+k69|C S@fOt+B_Zz/g VGojrDVH ]#?UnTJo7 s ZD 18Y2EHfC)#U$TdPAvXw?qzbN " Z M  zZAXIPXG`bW'hsb-  0 U]ZqrG3s @r8H b  <P85>-T;q`3m.LqCpPeLt|)aFZ|HaB)I*\HYX6# @):1'LN28/gw K-=jUG:NHUz.m$ \B)1x+@e%V Y# E ]Lf<G  [&A KHQ :  : <] .X X0:o$-LL{:(P'+38 ztK4 q]K i5% ~1q w Y{\m0m6Cos9rEBU$-# dI{6)h)}(`edwJ2T+ G4{}WEAK^zB>+t*-9mne P z8mK#%n("B!_' v  pP&0T!cog3;, (kh y 2$X XTH.=8<Q+&, iZCdll7@W e    ['C  1|i7AQF.#{' N2 [dznoys4^{ h  c Q WM(48Wfgx]y% 3JyG:T[utc% L:}VYgW_ Jl w3 6s5vhlTIMo_4K z:1 ?FVqP~=zSb5 E   S j1V(}yZR)T s W` Ca CP"i;>Fg2occB0 H T F8 Pj+-W^gR@p{XE:d|Ov =q W}yD`Q912;~ubao )  P d {9 $j m|O-NC{y=R 9 9M;{i$GYB kyp1b_jZ z ot iIq L -N/c,~6)  a \:[WT @"NHk]9X[38 v M ( IcE76}DVZ7FgcD2h vxEz=_1i}T\.0G(4{gz%ua, cW ?>VkS^*3lBLA } zc7>MRv,&;2o> Ccn  1soX-"\? Sn _  y #h,!." Y S| L<Epm;|p L9R2+[T  -uJDz0P`= B;ufi 1P?6/V6rxVsa ja 5W`m_F<  ` e)AamxZdh 3% __*  d%xghPFJ=RRQ!.[-ta)N C L YOH1e5{'4fzrc$X<3 r e73S/2q nm&Vgs + 9cT B*E$< 90D?{U _dA-3 *\k @-Fqe i2itD _KUCaSn{ Y\0L .  2^l%G`"# HW#be*xF vr|Ff z>KMB3U?wRs"PIz`>i] JRL q-pPI  l\j!U=|nSF1%6%X TCV:#m:P{y](_JTP fD&(|e1DmKTZ}wB|h;GT@LAYm2\GZ}Q!y~NbVpSX9Hp#R,C mZ#6j>\;T<B#,QR#X DO~u&fPXT>QC Qz"zo$ }(!mu1c zU?M gN{];]LIl}i~rRw6;-_ S&@,-dG,nlk}et%RUw[ r[ =p=*_b.p$\<* CXg,KInm: W_YXFKl&<d u<!H sY~;JJe%  0(S4f5-Y&`mc$>>kXq 22+?yG K W BKX>IF]-NQx*| . ;%OOXZY&%?~%9.;U?2 Xsm8%7<'.<:;niCw5wq )~lUxkY =~'GaVs 6O/Xmqz%9$lt0 q  ];4^ *EjnoMpV7(>h~n P J @ j=|~Emj~&SmS[nR:yy;OLW2nSu/TT{G<4u ' Q 3cK bi7Rv'Ss^hsY s 6`nba?$$l23Ie?,5[ S ^h5drC7$Co3mqHn3A]Yj$tR:+Exi ! lq Y!i \\Df/qd\:-`$O| Ry?!x// MB+P] `v yh P _mS.'1u FH*4r Ptf  cE ^_cy  _  V;W/_Qo@u:V)&yj/ [ S  ^:L9S0]^;1~27< V ^*NDY |+ ?C^5\ ,$t'Z<.o( `m K+Dm]&f uU]I:u5F eyIiRM&Y : & "oJZ~f ,s>:.la2)Pq$$9k[ `K/\1|oKFfMN:!u ' QFe<`3@R2(& %U8Cn2xwcW  W(^Vi~ /V)/q`&UjWscJ Qxu9?Mo[r4x o}\=6 9 az;$y|[s2>+345%^p_Qh#T,,O>,r5)T!{/2Ut!NJlTxd-F3Ha^W|$`&(N;|p/t Hb~?193ctWxA rx!9W,wzAX$Qh2 .ri ibEhV7&rRxW GM@'3Y-]iL{JcOh%:|"BNMfh4zv47]V-Z?3Kt9&'b<6NTymX-fjN^P]jQ^E|?,+WJ7US;$D6(\D^T%2k:g=K7\iT.a:M!TecAWo46mjE8Uai}am^2s%]|idCu%`N8q}6B=?_uMCh F."n> t?0Y ~,Sob+TgRp`we:H(bh>PgHVM{d<9I6Gc5N (dN[?*%AI7INNI? ^d$8_]F8"p:V H i] M]QloEC}W7Y^Vm#W]=F2t@iER&Xv:(} b\hy8`9xot:"Bsk(nrfkD{fG6K%]5Z$RW/8% 4[-0zL7`/AS@|_eQF2mM+q sao!Asd5vS-VG*]{C e2Jb*:KP"&|5wT !wz/EN/TJfNa:% c -CW(o4#83H;m skFSIcF$j HR* |u=.5XbV4 }50j 3gL<-%(m'LNq`xUib %Fj  +l p@`m#"VvG^C.bBpMI j{0/76k| DhMwXnG$%$]Va M3m>S-O%xo"fI*o@Q Q /xL?EA SJ7e T eG/$k]%t4\Q"6t j1r j9XH~:]s$F1.2lFG*4a `>Ns^D)c+we- !kZv#Ky- %5&Bxd ^W;o xNC{lPk_pro!z 448zXJd*5%6R{> R_N]*[ohB]"X 2&\hX`6NVMT"mL zx {ttLW}IhVbjQcvQPF ]#;Ifi[|z3P8 67 JD}  yU TEs %# & V;,pJ\XooQn+=ExD|rc?rfCjn\&yeXq2( _6^ SWo~$fHe #w SB 3D uXp-"4j$QDn;8de#>cv]" 4_oL /yi hsK9=Nc prqT^V $ bC{ p$UKFIIO;#=Gpk^Cvw` 6x$6UW `gz2?qbKPC662C&4{!.L"[u.iBHggGQb f(yAOX2n !znht(Erc Vt>-.P-+Q|)`xpubtS&r'^vs=<d{p`>FCij(|TPxb)Z)6X4xJ3T,ih}wd(,Ovna-wtL'{(.] ?=xZ4j 6M7ef4pWW$&=dW[3ILTMeeC ]J?3ov^ Cy9[_ IW o<`bc^-e h9  <} r,1 _/3/ 9}$R  +}d7VQlZ"x 099tCv=t@C{\j VG0 ]vWU-!|vOb,3=_}:)J4 u+`SUEc R ^#UiE,^,A3|cth<-"7x|  (S#hX@LQ(~H|NsHF\;K2CFt'>K*$ . o" v5xD2>W0:uI"[qh_(=Hg03It# C,5$RzZHDK$ B \BU* Hr?O xG)5;V5E4 *B6W^,bJ7w! z> dL ,g&. 'OqVb-sHHTy=/mM8n΂;^@}+_h*!K*R's5{Kguv C&NE 4Csf/ t ` f 4sc&-E/# ZW|zVM%S$w1~vh'$,R$)5#  uAqM #;:+oP%q_8Eu?UOwyz8@QRx[e|d)tM^.:.a(lF8P^OW  [ZNcZ@_ cTvg@\.c6LV$|t#-:>v>ZW$P`5 st w(ztK`J6-\Y :@KV_.^K> hJS&;Gt8 "w` H@-v [j ' jsAr%w " d|=~ m818G ?hV0C$0*q7h $+} = d_'Q)D g; z P6ig1.BpG H~_9+]n AYF (-PU l| 99G C MP7;W!k> $JZbxK^QA{C`l.3>=&@,n/K }X _ ;E, tn) p; foMgF=w. M[@S D\ XH 60GU~9"66jt n y >b#V9Jw(epL_H0YL`O[5 5$ K0 OAG e[q  W: 0St j  y +Pz]_bO:1&~r#&1 !J"|&\,`f!jg" O% 5'e*B$` 30J !OVRvmZ U  R' WI6m1"c#  d7R2W6lxz{>&2F 1%ZKyU% Ckfe{*6g0U rVV' + ?ouP Dc^(]9$K$qo% ^=vN*J5Ns 0T[,t?P t9SK`2|O,'%g{SA xg z(<ڑzw7 h!X'w?'R  ,-voa B W[NS/62Yph <% k-b+hs:5 m{g$H  a lg@(0LA Jo-IYC$~(ˉr *s c'G * 5>:j6NR<} A:! Y SAP.k;.z2Zo2 6tu(Cl- ^%R8f:!fap&0} 42 e-i$r; b6kCi"7&=%oz80߳|  `g|'Su~o}g KDU#@[a=Q6ق\=" +FJYp NS a (B pZ q #>6 aTBU_ctdtwT(6C&sl`y,}v, /F6/ M Ey spY j ]{10 bF-y>/b r(+ ,LDC v uy!2+g}NS9+V-E r k p #x0Uif:<t!FZ? e3PZw3{.uU>{JkKY fdTCT,]"CelpHZ_otfLz`4,n_ WVN:&@nza;>n+eqqQ.hMyJB~U E_wn(Xw5Q sVpePwJPSw 9{nBoEMa'9.c.1cI9HWP@c^YYOL= ^Q"JlUx&(c~JwY$o)R e( ( [|4~s  <Jll\f sry o ;m w)|$ #h  24vS7,O],p *#ZpY5 n[BhUX]Z7F/};=1RA*Ru;K9$ {j|PB5(n 33~$@y9zM<89nkw5.0)SGfOEQ'9a2  +7:L RR42#/9C0r CY: ^vON|-( 1[d(I\ 86Oe|93-~w4e0f%"ip 8 ,p vHfm%W= :/!by50\i%)~6Ndqdot-\; b S y%B}&uo_E-($ks%c#+utc A8g$[># P^1rJ]SS :3Hdk}=a Q|wm M06Nx 2}U@s?*}I^gJr7:m&QDK*9>23Z(  o\=Dx  X fLI=\xB}5+";Yh ek\_ J=J,2CP (  -5 REN] Iu: N4#d {NBtz OZ=WQ,+R^JeeWS<B*0H Y;7.D4 w'~Js~0U6AE/6-8UG ` [ a^35L_N&e Oo 42mu;n>f1Hg1q%[ }V 5 !vlPc]b]L+D95: NzN*3J;_^;~")4 l  T e 'o}*D2**g|qU y(- %o >]Y9z^vbhJbz#O={nxr1m * c S B[z 0 G79{mdnUc9)IY8gxC-nV~_3GS9P$slv0o &8Lz (c>C8+$ oYxAN-BV:_Xz- RfK4$n1oM> Vb /  X 5P42n|7 |`Gf$G/Mm _a>?\dOEy mb Eh !Xmx#H5RAw5=^}]w}2/X#jC<7U<Zze{\A45:<WPxlZV h Y+o ft 2 < Z O%8W6U#2";;yNLCkt1aR[0&1|~#b s _  H ;m?lnio!GDfv~ a#t^Fq:/{J>8LtOjy?v= P u  SfVIvtK?fJn+L~9w+j"_/V\gr im>lBQq UQ o[-}3b4W{|A ]s@XF({FvNNG{f  / HzLxK.jFc\c,'hrN r/lW] p" X  Q_KVk'BAbaC9;/CFLoyC4Y p+/1j\j:]ly}aS 8"q>677W&bm?2TY}c Y7& b]R 6 eKZEj =)|Lm &R-c!B" D+\Y ^ GJBYbv=AtUkn#d(w0K'nrwziNf. t6LBDn  b\ Pl-l7u;tsEJ !RK}bkh_p  Vm Gu__J{9qhk5"]?]wR {@oM; @;`9c3DV]X7wQ<Eb64*_^k=VNZ\ lI1$Sl&h6Z2m]KzhSbW).~.l1"zM 6RO2LyU#pkpi?MGOvfRRg+pk9z  |MInl+11j 6{WV=-bxzxn*#Gz0kg7Zox 1IOtz^f (a]6 s# $SZ\|MiA.ZJN2pOL] } Xg89W'[<eT#!f 2'A 1Y"{IER2U6c@lE@{D~I@z8F/|mp{JmdteOn)Z:#O-WBdr9xRNW8bb>+Ab^DzLclGkW_`VwN@cglPKju`1G5D+j[iwJ#4!MGOAlpT[g@femiJ%EC:z <+;[l 7r03*_v' G&  c)W^jWcCE8 O'C SrJ =s$^,C p]YCH t^'J[JCfvE|UT(< >GO <M*c>nwayy)GW_U2}OtVW&x5jU$@C] AlG#)&'@Cy(.,%*pFIVIt7iIF+PXKDV`= vY;L>Nn3f_0= w]4:_T,T]y'# ~4?]} f}ENc % g* W9002WSM7  ^Tg`)qV(kxnk V(t< jBNf:)l M V8Z&QKs $^b7 { P8 f~ Gs* Rmb~1 Zx!UiILKjM qcH_w%[*B#;?!K1`CoU {n x=Qf]bUK.f s \E(bELx 4vM_G{OP 4 & m Z?D 8@ _ *X?6K! 0Qk*R`V'H;)0I@6p$(eM<Q }oT WI*w\FHDAf J9 $Nk{vfqbq6eL_P 78.*N#>o%:L ZCF, e.su ~"}4\~q .F id2*v(w  -vHeq21 Y Z6zR c, $bajUkh`Esy%,DmT(^<"b u h<X69h90 a[L"C]3( 6.^g NnvA?$'BSKknic)}BZxWA5jBhUrIIfzyEx*HdaS a NJ*&! =/4} 3:' x?;V^>^;?. yE(*C%Sc ,zpwV  [ouj HVo@ZiRBhoySq/2XH8zyh Z WSx@:`nE"  3N:J"x ]d#eb$~x4exGmox  # KLu_c 3`Fyhev }xj{<TNG9oF*/(v?DpeV8hJqHw Z[@nV( -kTrHN6_&3INJ Rkku,7Vq+p(3 h48N:jU\,Jcr+&O  6TOQ tyVcq kYRJ`4vO4%"Oo]'o*{L@@)cYG'$z+94q_UFrTFE5 ,z\K1lnv-{Y#hc`ip@)b`#`l/x?kCYLDGLhFYIzjPX`e6""]vC.$Xv!AABaqe[ =qSOzIP $TN 7h:;[#U%?-\ADYV  zCr`=`1CcI  V!*#[Q^R3 jjHjUWB2xnJ0nEN ="M 9u*_lQ<)h!]d&>.\2f *jXRXH*Ni. '> p 0 8YEK  SV+,"U:xJhx(wBrE@KkN?P=r tB p gmtN x| +J #*ZO8SXLp]{n6rZk@J< JU~is,Og4d<;\#zrR"V%y'z!  p]$jWCC7V1C  1  vB g/TePP6MFW}? T T? X'Uo{"}jKK` }f5 rbt{,M72~Jt7($tg$^u}]u4)} =d/@:|mnE4%VV OsCL8rqOn=pKv@KrDk)oi{R>`!}V;PI~ cpI`gQv=-M-<cKP/ u!w2<>?bkO~?H7e)p  }+^ JOz(O3&-g 'JOq j>RT o]5gm0s 425^f[d |&  c$V}h' NS&X&8fa mi mi_">5i|~T<U8q%C'JTxg|RP  Kn' 64|<5M$3'd6^77mH5XL:Y^d p 8 v7)IY /W%L7/AkgKdO\Ae <nS% h`g0>hz;T #5  jb 416 :p:3qa3yp <T|j \gvxTL'{*8UBVLT[*]%  u yD,D {b[(J2yYnYM!hvb/n9caF1]<ar+ #W]e(|ju ,E(|xjuloqA !#j4u6On0~x3  qbk AfX@"8b  3RmJ[[<4<$ =3{`*,DL/fRtJ&:pt~ok3Lko21R<?jI?B|6 "U-,RTRbz<EF h7NQz#[iBu7& !~r;'jp5~tK0cN1G^*Q.HG[[:R__e/[`XLg*?L*b HX'HvE8OE>}3\D^\>yfesxR2 ?o&4XU8$<l Ny/1A7wBPz)c`k Sp+)*p\eC=W)1/ XS5pL/8@FfoDuwn@XF}I &eUh]enub4L&!{QVF)ML;}0]1%#oP&uw*Q\(OL~8e*5u>T 0$9x C_0AW@ q%h88b`?3P/gKzTx${?A.&uW=dz}T)Y5$n pWjP=C|!/!L4eZ{9TlKb v13USlJw={02e4wR@{D$:XO:;FvM.u Dx4i6P /je4-&Or *\2#vXSE{ ;q+D|v$M N4vgC(<FqhQE7c< L)O/oj'J:?M]bD,,n.-X;_=A? T\Ab;r2ZS9|~%6S\|&;02dOB 4$l@ 8s &j?|_F4n%rb)vW$\;c K O|wE$DFwN&8 0oH LKxEh<sq]341sN}oN;G 8}:T}PyZFO5#/#lnM8-N4._DKryHV+*>?Z?^o9/1h\0[F#)vyQpAv_3&z  Qgm yULH3Fy?@{"vG} == 9Z}\dU $[N&Dk5q.`5ihtCcu Kp?y'{F)z\m$KyAE/N fubR j)Gm(CVk%d:$F<+YGjZ jyj^Hd$nOYeST;  Tv/{ J|R),C1/(A R/F#9<rz};dxT'R#0 M5KTu Ttew,)3-/%?? lZMo F\50 @*Si7,KTA@p)hu m_B $!DML%oxZLI~a]<@ ccD}NCF>gsL<[p(a4|A8vHnCSh H\-+#o"$R/7 pqks}t0~wTV^CS<\LYBw^L0w3bpQ<0jY PzWH2g"Kz9_+WJ&C CmQy(!+KjVC\n_q6MJ$jD[AsGI5Qe  0PHbPlyEXMxKTDU9>xd[y `L gOP] Fh k?40w$@C cqE\wIusjz:t 8glSF"fYMABxzD a[W1a)(t5E{T H\}`%uFB KZ,XE[S;9?N_MP6E~p'*a XU QGSC) H-,x9F[&!]$8ftGM 6bltieHw{kUojN6&d Jpm2 Yg'yAVXfA"qx#IH @z8wfkW<y>Y=,.w,  ` 5Z&"X 4r`<{7]>2}|,~J0B cFxc H@# ?{yNA d9vX ZcMV "G^'HI/rF<[*z| ߧ/jY77,&&! 9d?Vd"q IL$]wBAvn ;'Zh"CaETX~pQ98I_vvdFsC jNK_^EJ:=(< 3ZRG},yRyyPigU~tl DMdo0b~Nyc.n?=C !QfGbnz^\b1rooL,.^6frkQ[ FJEs fmj,K0Uqe4p\7S?/7 C]z 6 \qC>wMg-K="9IM$zl'/U\g6 I:uZDc6;?-N=7a.W[8>^}t1f_.~: PiefWYfYu7 Ox!m8~n< 0UM 'POp|s2 xMp+QUD+eL/4F;=]'3n+I(ZolW6WU|m,<+##Ohz w gRS\98od8Hl Lekj51Hg8~p?h8~3bN'b+2>pFZ *Oy72;/bg\ ,!t^+z8$z8!rbRLY<3Z3S@ppIBe^:~w ?VL 04W AK3J2p'aXGWVG@P=w.\^ !!s] UDt"4goE3*uYt7{6 mX-+MwHvma1py\>c.C1Tr|ok3_w{Ks39<n\S2Jxb$[kTKIRvyeQ}/}NkZ-NN@`B\T"m  .47y& uWZvo{g hC ;f=$@z#gia# h.0~U b vtN}8j,JcIi E{AZG)zn5nJ) 6C[($  e`h3WSwf>  Y$Kk)8XZ;+b("i ~}m rz ai,5y |CE/GeUm~9b >w ,L9w6$B!ZFZcK_u [y(CD 1 h ucj% c*. u8{;: mz~{  _3>ThG4bqo ,UG)pPN k z c *yW}{Su}3v}! 3}p  `4a#UD< <xyEM}AV# 62`j3Re@r )U*;tR|o{; !UV 1l0B &a{I op<@,   US#iB]A3ra s=(8$ Z~ P: p15wL?|\Q !3^$dhj*\ot(R)[IP  21lY{(%Dxbw^8*%hG s< SW1-VFh{}6U{^+Z1ru;Wc^ c`3 vd[EhAI7A Ve5hi6  >i- 39:zs&L#7Q5};14/& U0 RSLQAF({#Nrv"w4 l ]$F]}FE! |[.3 P|N`rf-b\aEC@l  KiA&q(cgWXq.4uM(}'r/ d iY5Me};Z-L +s[z7Xm!x 9RTnT~O *7I5Te"N!>lIf4HP0[X8CWYa|U?Z5a,EsLH+]H0tZb{$pEM - 5 : ? \ .63y!oDMN7KA/<q="39>13y+::2Wpb %  ^*7CQPs0E1Kpqal_\P:> XcoPWz]*jF)~n8OD4s% 4 6 .3ZqVA27 s< HN@} ZaA\!0%j*2dg <*- F )bebS(K;K$gq 9=6mr\R2 t- {I},Nl1c`!5@N_aRYu3W9MWt$79@hX?D@-> 9X<5NDv   *Y&ofqO:0yKl^`OtB9X(bRjaL,(&=r|M4*HvAtxK Z l N )ir4MM!44or!Hs^kbTxxa 9FoWie%!E>|RO}, U}q3agX-Ld*RI@le zq!RL+E)a$oQP0CaSXt|c57[9CDn>u?8~=agK]Y-8Z O!@ L.SbeKD6U,1gbZD _d<w^)E<-?Ea!{_.owm+1kBQubw=P=TXH#D E,TgcGu6z C2 _j~-HSSu^,R 6_6ims$$(NIvU)3@y A9yjhW'//O"0K$ziHfEI/>XDV0J~ k8wX/ jn ]Xm1^~hUH;0Y2zR?T  J{T:?;\ a8|8~s'KP5YfL tIMP b[=W$V(@#B?c 2 JQhGw5B|MHNv7 X d P/K\ormZ!(m6kXm2ed$:D :3 Z 1 bfn f1 a3IwCK{NLIKT' Cf$:^]7 cw@y+ (t(K?] , ( T=~;})E]h`lTj l"8   s KKs Yg p4u7 ` f i. :?1 J&,M9!\U3Lqg  :L+ grC\igwvf)e ?L>JbPF3 |QJR @9|pJJ.V"q;lM:JeX> \- [ h^JW;#$;# LW.w|FnCo{J}\4W4QS d^ 4X JG  78K.6E("c&pFY?^ 6bZ=_S_8YZ"GP+_Q1e7|VK W 5 I uvMM ?oS>&j/r4VTxRX_lt'c7>+F95=z]GnfAO3}SED2Zq!pwV2>^84oH@] !<}oDyrP:N6s>oeO<I BdCQU"_oEa /6Svq@<)LTWCkL5,f Rc'U7I+[ PN *Z&\Y'Q0oHv("yw0?P[  {&OC45r ->pOnG}kL#tAka;2[kLK"*7MS^ Rpa*H I+PbBjOy`|zl*a6s.lp Bl\tf+G_(/6,hkR1?,>hBoMl?({KZVdIH[7dO~]s@$)"j~T|  /$OB uUepO)C|-YcaP=u3M&-2B]n%ZExgyH$!NQ; t |V^Q%fuq4jsRY~"kWX8!GkmQm~ j~=@,H, <Au/;B`5UNfz7Fpi BP8`%S^0R5e,x*kt`0O(v (b92~^tdx|K.B1-Ja7c7QK>vDqKZQg~I s:kh5%!TBdf=`gIEho"Jsmq/-np"1/_1Hfpok'TF>Cc-+  ?hw~gz<W ]Kp|}tS P:h<^Wj ]^T=.|soNfbKo=9?DCPd AKZPJNFJ  u@vt7 iPw~jaAP/TDv:(|A#[ ;*`u 2j0IA?\sJDs{*?5Jwp16br !y d{y4ctZEPLCElf67[f :7<6IhELJ3OGbLy D s)|Hp%-|0y)ex,:q05$LXN ;e|6J7 7j N<%e_O:dR1-"Z1l!]FxG"bLr.{e 0YyY%e[TfIrT9w[b{PeFB;rXxj@Zl rL_f?#h{$K;:W)Cc`O]su5iE/rZ,g`X] n9ZA9coY/{^) Pj XgqwrE_#YdpBX^'[OGc$og#[^b#4dJDl[-L8Z`9`?;4RjneA~W6"@Cly"EwV:3,UJmB5= ~T0.@B\%;}Y/txN{ - Ef-gg:WTZfrWFI^Dr-dX+*6,D}pK5!MzkEk8_amO3=AJHV#DccQMS}H``Zix/J,Bnb2uV3rSLe0={@Jt}hqAd]n>6 R58KDyKlkuevMTf`G{Qe%KE=htm>r>?&ESR-JY=R~wjzj3 `?b C c a Uis";Z En 6#&c3P?w6@x[ ^}~ <[3a~R m  ?f!{8q?  & , B0n|;( )O90oiACf|PBh49gL9}T[$gp6s w10%;fR~ELe{ 6fgR )8WL_i[jY z<T"=th={*R>^ ^SA0eWvrKC|0}+aOdkb_N%]tWe2fbgmDTJCPwwCp_=_(*sv'H(~Tab "Y% oh7=}"y<D K$5g`9 lN0](&Qcb3lJ@3z gz{-Ye!+ |]LplQv4KtEwZ(uL}I)L[He0Ne'>I&k*qW<g{Nr!<\Je8VG _o;Wg23%Kf@CSubfX;/v2$4vXM|SI7o(lm{[A04IF}h,sOi)6qThanE Tcy$dfZ9i>5CtZ),c4KV/&q(] 6Ppq rKKXmw:U %9Q&QcfV~`b*Ii0gC6wkx*; v%\IOs dl`s-CQ/8#X|I\\I/nuh*6Ks9cL=\^ Pd+<FuD*~)6b?7BW4PSjbBQIK; JGPblCT/ +lHz_ev80W'u&J );?vgv=XiXKs1=9V`^g|BBSGabTh.4)`3ElC "M7%13)E,(6"oj_.UL 5BB/wUo2h_$IzZ>"0t$5}uAP %a dbaSjWE]'ay6o2G4[ i5 6z0F ~wJ&)D#_*![Zc}ICk+`[q% *k3}D_N[lMH0Ds[20(T5nzYuXh*:Wh9mjt<Tyaxe8s`>jhT  MJzZ,3t jiy]wsP}q)R <bu#%YN%A~ AC8 6{$F)9]E 3=qCOntW<=njZDXkVlZ^1>%jM5J0-BBEOuJN"N~_*-l6f t*D<=V"6jBd[A'c|}5o$gxO e6|5[J R)T<D)cmX|xlh(3;:##i u/ 9R/S"}S -9:r8_fAQJ}xtAf5|P6,>pttJ2J[}9xIX"NnS~G+_QWTPM(#y2  @)%>%I-5`rMY! YuuRiuNC=a^Q5p9Hnkvny \(KZqlT<Zuyb~?I uvMR745ZSPL-6GP&N|_ o WW ({r"%y~!6f?Y,SEiR6^ =o5Ev7`!Z c].vu\5:d'7R:y?$B! "wi`~/F'8z)aFP-ou@^E@P(nSTo-H *q cpaR9rN|Ke~n)C')tdczAl(xi|Ao{y a[[ |K'&>wP`7VF `$UJ(gC'b * 8cL"|40 QwfK252x1I,HS[U_":k ;\=II#$A49#Q,v,VuYIop\~Lq@,xaL}Z Kn4Y;+;baNPBhv;BP"DM(tBbh553ho(QHcH~M0twC{/ ('sV/tlye\Y0L`faMT|fDkW-L||dzZn$u+\{,poAR&N7 @EAfO@!es+-%J\47I5*HU\ U!/DDzs; ;Y= 1Q" d9-c,jl]A{e:3CiI(|1;DX[?vcUNy0IZ^&$+We,X_w, po*{mV*4ucm\E#KlnIf*y~BW elO[R c7g)6ZGec7zx[ ,ybfO2(5@ZN`J<-`l3r9/ida,jkK7^_cZz^Ur%z@Bf9yf}(O4'1%H>c|TL]Z_ m]6e'J9z#@%vH*NOq7}nNm<dDKWO=\Tg6J8St JKWfs7 5#`ZU{J%d2yc] 6Q;| xpAn+,RxeMJ}URj:'%jB )zR H<%) 8#kC?|x=b2-+T%1tN?3{Ua&[4!N~ b}JC~xL>2D J J4x6-b;)uh Rw52q@S> `"v+Vbn>L<5UjR a5sI6haa}1giFbMeb$ '_ZX NQVU5W`3L\('J#av L>S\e+; 7L0^K M /i hl3]u.2BMg P B&Uu+^&\C+"n9^]R{|/&.`A|-z nKq*IkJb vB{.$04-ES'iFgw#mNSpa%(j~B6+]V?'>,Sv]~1}p;8*joywx+831gy3Hx'Uvb @]5Ba,l[FzdOP23kc!\m~FVDC__?5 <\e:Bj-~p1kGx_(f.B"GW`#dCyVH{_skc. zvT1@m}3|E|oZ8DbnvDH Xm}nt5[QcF>wujvtrF:m_sW'$@$as}g?58K5h_tv~[4=UXN^AJs:f}M|w=l<xt1?{iKK3<E 9 ^yG)HMPgY8*oG/`^'3_b~tx]W\h{5-7 |f(FxVj 'v_qvfb|e^Jfm''~wqbdhd\vaN`nP.rraz~?xrR|F!b%rQyc6~{Hb~1ECft8]b#&tQnmxjHPPBy8< Ce^)w+%;GM*TuVxaZ~*B+W9:U"9w@1fr+ewvU]M`aga]j}kszf2+M8 >HK.7fo.{2Yz5S>^i\-GL C8Ze@B"r,^r]rZm2Aj7c[?l &RdXA_2JGz:!tl2:(1C|KufW/9 A1M5Cn^\'w3D 18iO4qU]7z*/ ay!a"Q_uT 'x).wwgE:+%9 v<)DI-=qfu@{:\&WY{rWp=7O :yp &1?|)q|}iJ=Hmd4d]$r3j#.2^QX@bzjCImNaH  SZ] <;8,h # Q6rh/199M79\$s=/FDm |!gJt.E(u2rIN  T6c! 7 ]gw^)$n0*v 9aq$!n.f b * 6:(z 8|N#Hhlmv {v[eeJ[Yj?Xp,g I Ea,%w bA)67J>  ot x-\ynR _l Ygp-#OQION]-_ t Z' QnzsNK_~v89HRaB,!&vCk40HHXSS]me!g&:? }&`.HO UinD< * :(9.$Yh_EUucU~sDP e L~CgeLy)1nF"!d&  Kx)sGtx" *a )n )[Y SNC;ikOtB'<\, jyV#Z@EL{m+3,poPdMx}AS ~VM  w"]}W|rO 5}"!dvlz_=7m5;Gp >{raLKIT/*Mf>4eHpTt}]xbJml yT k1 H&Vp)ksGMelN4(a"eV]IxBqa$^rX&D+ 0+O )/  DLS_VJfr%&o0JubO>jwKIb&:0m^R9}cMo1cZZ#m?`l"#xnWhL*UG% 2VNG`$MLz ;1k }FD2 Y7bvF 8|=  u*t1`==EvOt] @ r Dih%CZU W][D|?F91 .C&( e@ q; [&|r"h%`>p8 h .G4mPa g-2b) Z*8 B Dk Wu+ ?h'  T4 yMj| 0H}eB$ p5b<l4 pKs] E[tt{PNu<0OIp*KED%s$B J }W#_ VE@ K VbD)2p'M<EuRIY1$+@g!#q7tLI  ^e.Caow C\gG<=MByb{ 1|-WIO:wY%w7Ep]*e eCF[M dNr1MAUk @/ FdP 8T{@J]h2E eH6rk   6,;w,gSfO9a dtB 9*K*0:ynZr BgCo_uj b 5a}NG TN65MA &tEL{G=s8:~YVP'\$$yo/ T/@`?\, \-N"ImpRe,,[Wd]\pK+ 4W5<#CywYkg@ :For`_Tlyb0 w +M Hqroi`2AG (&y,mxtR/ghJ^ "8:Tf+-aTR _a k D;3<90  "bS@7Y ofgUN$<nBjS9NU%$c}'  ]{,?(]  4!S^e-]-h'|tF"::u# 4R?o<>b [?P14    8Zj&qM({cF)HU  GB b T2jAvw h.PAk%}]rA6wGYQIF:~\5xZ ^e46 #P hJ 9nd3i_}xK>B8f~aP p90 ?&by~%%G@rYp[f  I 7 O U L j8+n&mErs9Su?$}G* Cw];0H]"X_V < U8~dN6p[o,^70F@{@M)}v!*~ah !, |x*3v  j + f Q]^taSBHy1 t`@I^\B|\6 eYnlk{*Vs@m4 RLQn" K z ,$Ma|)>ZM=5 )`BqJjM?7r(S7 ] b} Q H"P5}XW p?#,_`e<`;0RUDx& ;]& c=R%fU0U/VoFKkvczn*P6U4yo}X~{!',>sa5TN"{?1YT7PQ{x8/.FXQgK?Ngk6NSe,b8ui} y4@cL|4=9BYlRt 56/9&(.JU3Vc ?d:#'j=R}OXnuFaeC+7&Yh(i~}{Yjjx2"G]k| 3Jy@Q)_od4\Q?x3K9O2d Uvhd: < \(ODwOXi~E$i$ 8C]3`(&q-,n `kG*]P-"O ,.qORSc8Ksb&Kmh.o;&nq{L.g [J3_WB{dA?XsfRc\} %j p)S;?K6Rr;# <Rejdm)W sb}P8#3_ihqe/-:)NhRVnb?!Zm@LanLt*d36an8#iM]Jjx}V_8 p!.)w123B"qJ4H8Sq 4]XU@rM/]N!N[7F:xvMlo ofneBK-L`53G{& pB^7p5jPA}_WG~^ >S Bp%ga9&=#)5x.qiYGf-g)opoC <+=5g i`:A=C<CO>V3e+B_ }75Q^2YpE qV &UyFd:a:18<L)cCmU16}bIA:#OT/Ia9bb&Q:HH:\{ jJ'Vwz}C{VT_nU+$M+LG.n/./%f*[p`:yC[  z?bLyI n|4Kj^\}rr.:c Zu{F0Scn"`sZY|$_|gs _>xF0|^-f2 g > U r Fh o{ {HN0Ntq !*&( P}scn/m n\=ixU3\lS)kc JwU3&( k kg _-gq.7F!j1)`AW 0 I-Zga-, F  O F   GgU"6vO7'+_G`+ Ud!f1.P^N(7} bR S=HQ=k^=$#; >5w1s @O?{d9 8yS4NY?0xw8w& ET   e ]h *&v#r69oH YeaQ/h@RCs=u=] z*gF(y>5;d q I| AZM^>0bLiwLu(VW)_]W@e p>c:b}^wJh%`Uw/.FQ\!7|% [BX(O bU;^}94O/x \ny\ES/[.!@x5*Cg *Nz&FW #{^^ } Z 2#*5S#,mp|Jtb]BbB  Q0|h1ZwJ"[2m+w N#ms<+B Ak<YL(T<6MKR$mK,|% FfO5sJfUJ.I&*XU=hlf  h=o^6@vD Fa>ck}_ }e3#SPKQ|9: 2e*b[t NL/,@W`-..gmiZ3dVI  RfcZvz-.\&/(ce *#&M /J6pMvO_T_(q bwz 7bkVD}f#M&"^rj+"  r* ; IZ%da e>mVu!G xl`7pX  !h\a0s\E6r2cXK !J  P;MT]hYU~f-|B9Cap6,I3r{ < Y4n:[Z @/bk5E+-k m #E}X]7gZ,~r6z7y`q &vRq )\.z;6U&VG q 7zi}aFyi:O_j +zO~X$M1W+ C _wtZk?4}5v_xh5j0 l8 `h~ z" o?ZSOF "3<& Ja\Squ$9*6 Y:|5 s$3Ra?<DflUhh0. ox !1 |"@F A `.}Jv%q I# HC8jg~*SPU crH$C O1Q Qhh:Fd.GUn"xXR1-HB8D ^qX.m R)*t\ CrI X @l L ]?#' GetB}w` U9ohF `8aJQA#I;$f9b/~DiW& TdAeGK}C5P!3kAL;]}`k5av&A10 3J'`AuyfPd#cl! G%:"zC1 c(H,x~^(aNl/F37fdCYt#PXz;'-xj zZ?~ I,b/d/ H\lX,3(j`/,F >"nKET[ pN >dXs^;spMc6M^sF(78 0,lsO\)W8iG7 E _A tn`C]GqzGd:Ur%bt<n7G*Gzn<~LVg5F5^$pKXdY?w Y'b @N /}E01YQ"pE|-3U( m+E&)}Wk,ZRg<Ez:p-/WCM?QFyUryK  ?7]Mk^{hn.w 5U_ ^9}KMwb X1F2BQCfz#UkBkg K fwbMVvaI  SO2 | 9IxQP)E(s}a6A0@-!9Rsk?9Q8(N)XX $ Eb79!R  E}K0v }x,(KyY`tY0tE. ZR^rqM<=cR*]}3l1#wB59X|xvxuF AcglWoFw*'Lfj D^)#<4<j)FBX]:[ly  {wZ5=Fm)7eFXGA >"IcL0 >#=X<5R$'lzm;H^S.5IRSnC , `-Wi n "'`:2u \JO>W8Z3>7#S5f}s8k? J8T Lo]Z\t`H %l%9y&A;9'!l*i.ik:$tcN<r8) A%E(2 s `y6WphA["bV[`F 2b (a3P8* ?5R'&p[ XS 8OJ_\Ah&U9JITRoaDwP)o (`qwTiz[8xr8(` r0\(A9672=%36ZcJ-Zer%F<% >bmOCE <[`D `7sV9M"hn=9Kv$z+}nOPh[',s6u|%400T_b3w !" 4%iU6 34 ?7jw+:EQ 8])i/se}?gT\~X# JNX~)G\#+nM>|W Ut4B/AHe?eKh$k{r/* NA['=t"}L%96@Z yHRz b ,.fn]F.jKx W\Wn|5/ JU+bY 9 .  g]~BFv vkx6LN <sB :|".Y71-_ t-"+ Nl't74O  b*WnrCj)Pz KMf\_.t|a}mvnCgg}nLfT>p[85pju|C!8/`NZB>=oD h} KL?  iin,"8x%3/z `m  6SV%)b#{] )zhxLCBd#W mdpKSZS/dY,9M"'^o6X5.Mmv^qO2 m%>(i"sSPM 5d  !mV|;7N3'Tz 1%@7tt fdI1R_ia!_[-SA9lCm}?mY(553 BF1HQ5u:!o2s[1CTN-BFd rc]f;2T_i> B ;w>D=`&iOIwnOU#G zp5N#KWXWc Uo*z7vDKR |#Fu53Se"M#W' n 0L) pc8ycf/6} mAqq<\pf&L"F}y-F>&^ 9^x|  k)u:hSv3I0V^:ipe#;<@h H.{ MV PPuCZy+@~^A-9+aNFEaoW^L#9p  .j4D$ K}vWb6BN80 HbalnyP A~:7e%.12`*1U#3)i iOA wBQfe`>!7.vQ%)YF+Z S2]B[p"+k%]sMrTC}J[(* X"^JP,Ej9[KUP0N4cvva#;uM 7AsLGpJ. XtTc 3 V;q[q^'km@M^B0 u)~G|7_#@!>pO hm)UOloXI9I)OMF1|HJ "cezg4vq9 $C7EdNbeu\Y4xtf5\h`dXic-0!SL57,IRkRnzK,,R oLk OX/OWRIxxX_,3m&Ou2u8S$_wyih}adt.?"/ "_\1uajOY n>?Ry}W!8xkPb9d~?OQg*S':D$Rj4_] X %pfsKG0$GmV L'ZoLc8mBa:$!:H%*e " l qi+]P u | M   `~a (vqx ^2ei}+|2X:dgI)ET[1&Qt5L7 r@|N)oJa QBShO K 7,0E=)L\l45m#s YQBO1r@ XQ" a 37 Y  )( H!zx/{/UH. 3f H&=[Rln;iBz#  %v?D%wY?Z 6m4GR/|BB  jU o `{.Pi/EjvhGTRIA7]^7zGi@r=K a]| $6MSX!LbF, }5E>1; (|V_8q/ O O,|J*`YA2; 'q<%]# us { 8"T~Z'?, GLGWMJ|!t b&Qe~X#]8^q^.@] !Mt #9k  _vii|`C[Fh3F "cLi$},=cTX%2|^Ina-^1{g&MN jZ~yvM  h[Pn|aV 5! )kI11#4'e<IPY>OfY3^(0b^#a(xUqi j3 >d8Yi)KC X,Ywx_7)1#A M;0F&:5_!F TA t#aG tH^k`e8m 90<e3<#.El P1 ?0$Et)$}2ito_zq1 9A" EgcU 2"ej-(s(-j>~AmdO}-1!oN3!; N M0IG] pd bA16 2: ( e)G2z:U8G1{2{O/zm* ]X;#r W0ron2alYnJg  BW @ 3x|.v[' DCm2QJ Z)9'7 dS+ oL !&  i|`  rZO; *# Q$ +P '] a qܙW 'b w &"%lyf" = "4RKu(#a=:8Nf&#%N~ӃdX , 2j > P0 f &.x>fNO[o:J!GCM6]u 3qJYhsPrU @DzTo2 [_@} eea.kA )+$P[ uKdW7dVEEGQIySa .|! H!Y$aClO i nHIhj-Ub6f>] Z`^j0n 5"16@LO` < a6O'o["3GWbmx,bjY " (7 10K !aRrd NE O(ZKF;bF 5#}iGZxT' N b  U x'%X\SCo-U qnz V}dV6RPh,q'iH42P  / c, 2 v2u \056-ruHReZ5Lv>OYKJnq  } )V= [czm0@7fTP.Q\/qo"su%:Q"#(.Ka4  l8$ ~."I-Zt0^^l6vj-xM}1q\k8';0I57( ?G_  -5`aK/@0'&b0!mX$*xd3;*pjX:F;OZ+u6 -vt D2is6 K[Lqd[Wu,\p*!teH!Sp6m[6=J4~3f.eGe} E ee3M- D4DJ r'jue+Z!| N hty EWN-z>ve*:iJ){ b3~BGP d . )5: .z?#[pW- r ,|7fFnt  u NzZHnB =UBQB/14%MnQ$VlQUu_Li(g4 Y   8Y3F(YEbJy)|F?D{8\V!m1lwI\ z:P"P XX (pZ"h2CS&#cHay!c{9(m'Z_R,QXFtX1<HH.E&2J#!n~wD* dZ5^`A)F/+]* {0`xLk -NO6mt R*5'oJ%hJrM*W1@C85HMn7"j l C D_WiCLWxkOsb6~/ CGHWi# AP *a 6cQsBF[*VYW8G+R c&y - NhL1L i 'o 5  SjA 4h gd-qHo{JWr)dzImnH O& %$ww.= d 7S'Bf  R=2"@7<'{VYmywF,bBNXN c  ]WQQw4[gz8+xq39\_6P}+5q53 ~s0 )I g_|ktd `ME~<c}q;DI&S 45RADVa%/`Kn ~j=s-4pA i$ysz.D6Vgz6=fa ^O.0^uCp+ To`QRI=4%4z:tA9 h}mc 2,'||ls}i{?\WdYf8TDZpxpoq)!b&F8YO+2E1;+7?2h#/~$ <.*& n.|r=29/0`s{CGB% B4Y|MR&} /</8?`b9], l@72zk88)U CrMO.18:Cw [8 6M%" )E:6 jU9C k :-r+BHY]$PiA;O_n>.[)! .V?%GJ _  |+;VbB|,vB !#_J,G4BCE -hu .! '"rxW]l}, 4bXl=g'CqITQo"N`T ] G@>=0[?!-SeI-3rm"z oVthE ,]&TPA6!zb+ 2*I/g t:&p#S h  ?3 Ukn43nO9Nt.Q O&S <)O.rܽnZ,% {l!s-E;6  VjG}k ]&-k:4#z-_iaHvF!2.Eՠ?**[b)0 n JCLx3V~= p~{xPdNKR/+xI,1BqҀq=aY(Zh p) OJbd q 1^w 1OE@  #.xP??Z_ia1r'&Rd\!A*n xLM h[7F>n^MR r]VN81/#d^GJ93ViXk!b h?Ootk(U}w~M|Eco(9'py<1VD9`NVD'_1 {k! uP KSAR $6Ar]6Ry!4ki{== )QtoeOnjx}CV\xfDxjp [O?ycT$GE{U},Ce+u9rH(m<\j e-W`|8'CXgg {l88BQ~K(m?/|A BXeE_8L<?oh ZeK4TOy%|q})vvZU12!cl(!MuDhA>C *3?n .#dQ ^OP$_E m? C[.\LS* chApY UkV9TJ* .G2 s^{E|rs]:|F%zp+ VIF|;/:a *S&T3/>sAAGI; -V3_AHuGsvQV2$$8k<*iL]N;/V$x i3P 35ks[n,b\PZ7_6E0<</ s&jnp>**p@FO:i %)I -:\S*a\hmjV =l-)  -H,}k)nB;WAi3wlr4o@[!/e'L |\Gxp}>{@&Ba[^ 7vd 8Z^^3(|OO?t^<UMm PmR q Q  ~`U|tk! 44M5X%4 K{*@:% !< _ mNg.rs!FN nMX\ <<#D1@W2N! Kw }e / ~ 5+T79( j  J{2[5'hgQ`KwpBP]+b   qRsI 6 y #g% )SS hxt<~JO-8]K@}'^ST">w(nJEX  e  {K@&=#4HHbnG `;xw_3t (v~_"e=Dl5DZHmzfsN;_<DiRL-eN!5Z= 'ZV  q);$ n'HxVJ~~Fee\/bz&] W{om^q0tVvNj<{Qz%DKp0PQSQoD<_|6a f6 a  %*i;J;aWvq+qIID~xT ouZ#cvel ;=  z n v)eNZ!^S%[UCH>,y#8*q;) g*<-kDdv2 N.{lu ] 2\6gzdG:U?P?H=1E]@SPdB\/FV$b`ooN S;k;I<8:[^x(\>JP>:Sf->O J<  JD$ R nJ= u  s ~ 6  _(7"O :Z$@ 5he0 ggP}r.Im=QFx& >L!Z$z_  (x4k '(6~]{U d.u }   yx zI#c&A-AEL1X&ZL (!x+0J M[gh"8 5}w .5o + Gyd%(m~;K IO*.#W#i(@O  k e DNn) &i m r2V5"X{)vWOE/j@ ]$GM / Zj U@ 6C%ft%5z;EL!l/AcU?15_7"u `\C &/%;Zj> YB k 7dY8c5~'~YAc w7{X,]M[3+z d T MpD mi3=[f7_<Ks)h|zR"%CvGZ]q VpX*~[#3ey?]#v9F+ ^ 3 >)M8NC x5|UJ^\@>4Y9dmG0G|<OiQrnp0eh%Fck.s f BKz]&;w'[; KH63elIWTx}[&:u*q' NDK ~i} 1a [  :glX?n <X8,ho!6Q?y NVF[Q_k^Z.''c\<.2w{9BG+ z&0=6aX(3yh# >t0gi\$ 6`_YG'SV(T >Q mh:xux4XG ! (4`s Mbw:D@}ZB~Z!XpVSa^|Bfn J=t1GYiH r0P;Rhu(*dB3&=bw&#|4lt^2[!1'\# '4gwVpmqV7;|F]@ V 42>/ 4V*!f#wj\Bg1Fp-9B\{U$Uz\IG bcw7VsVfv,AJ7RFVk>9n|sY; >\\B, Ek#uN,&FY)\}Qps:Mh8]-mi#M\w%cih xh,Br/a NmgL|QmVWb{.``q9uZ#4\5v=^Dt&GQ;cS([GYi<oo3%XK$=' ,8|fP0y?p]APr5?kT7Aj`3rVQP aau.Rsh,oY g t <#dVxk^ `y~ V<RaoG"MW{N2`p~,s\m6$?+8OYPBRY76A' dBkwc,HSsdH6wd(,;H NuYBqYP rco3l lMJCN YH */_G'WDmi kK=e(;cs$4 &S?mU(l5msC p{Q#L l&i&P?\<a/oNs0C ]EA:%N5S}~1G\op+B8p\J-`GS2~#AL&{sU1a]({*GUj_fjX zhK6p|@$xG2G}O\Duj  L%:ZX. 'dS76$ xlVy-uPO4]{5r@]L L7|MdFy a%y'tiwQJp ?KzSg}`8d-3>XGB|PP0 F2(a@pG+i\" 4A+PHPM669d0"DO^68lu)*Smu1NClD2}`0mV@$ ova7*~  hW"$${&![-q( CLM g  U M0p: ,y/AUW}|18[OVp",5QHqEcYMX9  ) zeu#v ! n t H6oKY h:`Jn4i_iZV,}i"2T, )H8"  ;b$\ yRoc`cIu,e%g .3O g"g*9p 6WmU p  )vzD[) ATN0v q rr?00%+'(]+uN&!o (S98B;9.q p/ [jg6meMkl2-L}+K@DuRp%`+KV4U*o&b$;t_c$g};?DrDZY!;q.ZI.7)f)=hCCKP(ze]mn`xdX@*JcX:&&}s5T &zSt5{FU"u$K_l=X<PbN:}N.1o_hMH, %$V=-W`WZFn]/@'11I:K^.h5fP<NP 5&RUtSB>}oG5@}YI_[HG|[3^ZJ1i0fL+/o('j7zW eZBd{MNLa^X=s+]D>E -zjU"|-<2@Mg+,=m:vjQ_|&(}|B`hsWKIUbK>(%n=,,Nd&U]" J}|VhN5`] \Z. Za7liN$*SSQC& 9KoCeau5O<*0S<oBrBBO#}Na/ts>DhT41vB"c*T zE.p f]`ki.3h3NHf-G/tZEn]17`*up+y|qr&P,R$ o{%i R h$+n 0dI*QGR)@.{# 63n+q8 Q,G`u .+;8D  t7- ~*fdd!.)c}LP.m9Sg<->Yssgat05g[+ys [+(a?WzW!$\nruUetm mJ,dE}mcV]O ?+9*8spS C "!A H  KB {k# , {SkZ {~MSy >Z\2y|0v\hI1I2GY6; J&>ރdߴrזQ_+dQs:);xcS&/y e 9,Q  l%5W^VD6~;z(˝F9<E&YF `gC?m| 8 tPu\!/W@ 8 V^" ~`~u@ 8`dB8 Z 5Q+)4NH! `Y78 9 FsrxGf*3X/A; @jTq`hc) *oO' xE U}'.N V "jD `\/(Y,{  VOd bU|`&Olu}xbzWUl6z-ں s+ oovi D u > :'o*  Mm~tf+`< >W[[8N %&>4w'*Lhݳ d+HmI~ 1mr zR I ^Qoyl*: qa?/x;_Ab(:V;21d5 4"! ~v Z:V wXI5 I ?_iC @} G&7&IQ du3C} jl^-.o;3nN, p  ^b2  YTZ,R C 8'17 klidk0JYyz27 *r)a<9&nN 8 dpmp62bhH[~p~Y'o"G @ sB? 8w+J1Vz5 p T0k`Gz?_Tw3~?6K$ qM/j~$@H&%7p  44"RE{{+e1jHcT"Vb*Gmu7'{~N6;znG?p&C!$&bT)X2 uVN S,Vy2jl  BLy|&_*I,"z1 GFmp+l("mZnw /u}< OE%IF.)OY- BEn)EXo Br ]$q(/ e&| 3W`j``+ @Wh|"%:^*yu3oX3? yP&(1y<*YOqd DEJ*GV[2B%%Bj^'<u }-{lq.kZW =0Lf%)!8`@. s? U;_lv< j +Nb&  1e4G!' H+F'Bd# }D / }P3 Ak6syv= X !At2l)c.H > C~,?\  d]V yKYu* ~$3 Kk*5J1][m\FJ*WyU 7V1Y[,#1T `V=S4M !zT8KDNV%F\=DNx?*AnLD4RL;AN` ]6 > *hGm`i8Y-5=GgN!HE2jQmT 1d ^ ZfoSr7%`_u32 0DW S1n9A2$3F: BaKKQ  7!2ToUfnel?_^8_L61.L2"uv<,kGg,7! PkIQ   Y> , Z>.|BkP) :* v]cP[,8rA]KT%21A| h`"6/U2'^|(ij~ gQ E2q eb0N3WOd/mJ`U?+_T XZ}~vE H   /E!(tR 6ej _# 4{ .e`WCCw2BKf Y0 o q <u!RO"gz1PYI#h#T8gqA;eO`/Cgo<_9{# ] iOFvP]d ?uj*y]#*p{Ob(<|G<}([7`<=![1j7iB 6 H\ [V ;Q|4wS!|QP@1RC: | 5>wvFZA%#K.Ets]f  C5  ~ S2iM)6B/' I-/n-Vj5 4&OvpE~=l~  cJ l\onL[kqzt|NVy<hK.Jp`fXDQ.2s4$(2* t x C 1I0~ tc5a%nga3/$B0a+oJYZL'NKZ0;me E  C T0 "}f:v.gc390p|I0A}V/`vT-#=nq&{Z+ q1V! 04mNMxz/3iEnh Q 7 \  .0Q:?1Qc7D|`?vsriWN HTlr[ ZWZH3Tcn n }yYG;h ZcYL=j@Q4[vkCN); V`"%{N>~g C| p >:;fFp(~eKR 2U|~J7t7;"7I =e<-"@^&  cM 5L *L>3~'WC>z68"akyk/OsX(SEXts!*z}y<5^.Eo oa=5J<P32KSre1i%7:D3FJ{W`'!r~MX fA"4b 1 Y*s<]'F2}gb5Br<`.v+"6U&%m[P?pvr@[:Q5,t5_e71sCIH6Ww+Jo[ ]Wb-.a[:O>}uh ) ?}xgIu5yzHAq.$xWxCj%]: qv?% cHj0Zt,[)](^Ft.AYOl.a9`}dI;` J% q$#>d^z?Fy j=?}1NuZJZ<wQO[.A=kLD7=QXM~iK^ [!}~|*%^v$>,NB x,t  o5nQ[0jY+|X?_y)[kg U\Mo}QVPdpOnI~ +U@ +_G,S(@^;s^s]M6XoS}?;45pwgqFVC8Ra |L uf8=%B+E2avn_>SxVqChs>bUC zQW: gSM d%`s$%y}QK]>"YhoW~".^j[Dk Y.$o(' k71F gYche2|iNI7g%5B39;,i||tbkH\ &#R -xS 3@d Q3.; 7a:E5os,T):%eGrSM_d#K;~-m:X8{9%N]'#_Y'RlJ0X hO-V8}3-7> Qg].(G^a#FUSsUF/R{ P+<> 5,X6a%T 1j640aLcn`!]DrWYB|~$)1HAFK2c $0@Y ?J7]'r&WG2f&Jm:~z@vb}xsCr3O'~8tZ]9fIAZ:;uG064%Vm2M`!|Q\7N"l+!98m>eq9(YHWFh(I$Yw`Tf1ul'vY\Z;J{R.~4=-vQP T&}8~*5"`LXt 0b(3o>W{|+gN[f~QqM(~0 [ZoO s-~hnrWvdAat|$ xG7j?A3lhXq7H]9J,F4M-15"H] ^~c"*lTi /[Z6{t M u\ Gh4r}X6[YC]a}gL !KNBm{VjOp4anF  ` U\ytMtD^6G@ esgM#^W9f}Wka\.zD_h { K \  s'{I^W)>RF/]L1=?3g9y LUpV,']XMi\Y1x E#@;k KZ ]J'W;5mO Sf#GJQq6jGL eiL<x}+S F%Z(4 D; )bQ{ 6 F\JDCMA(<  s 5f:m\Bw\l % l;!OG9.b 6+GWj@t66F q B4+I MrV5'o E=  !   YIDD _ WSBN%$biSwVILc|r"$Se)BvxCx:|EB~{' B!~i#| " 3) ^_]8Z69~`>`%!5"s@VM2NugTJ~A1bBw B^vy H\8.T`4|] A{Bc=7nw-c^p&F"|(~b}Yu*w:xAJK q{=gwpD3/{Zv~J4{_nfNb`u]x0@Wg;S{_l_miX8l63,)$" I<,/ #0VtpnxXYACQZn72",CG49*zOB$v>&<K4UsV]x'Y<)H`\5}_`Hh T ' u; a.!w.rV6:O&qPYhY B tH\Ss 1`Qc@>QKS+chC`hp@YmUO P%LP\_qc+%, ['u}yckT1   6Pq,Bf_6R551T 2*H pq_i2hQpxnr Gk Mga)'mt/@7&KX\75V,X8Y3c}cZN$Zz%gAg < k Sbp`tj$8o2kgi{O#ss"LkH*B^$u<nDtC;0aC-sWl c '3#}Vn6'I,^)$nKDfe:<iiUaI|;*m0qC \vk "1Sr1 hk9qd,} U87R^|U fZ\\^ :,]x@'<c<3ZKgm!rM *@C, @=v:/?ae n|* .RF|<%4 3=  `N< -VnxANF71t28I~Z_*  `$ N=oq!l8?> Zn;+~}"5 7Eb2g|U \ b"+E  0 o&%q,xNDMVD ,?3A>Yv]q u  36yDi Zl 2VG k-i  GqZd|iR] +e|  @]UHZ-Pt=Z);Zv}}JK@nez5'<`)oP\gPtD l`^PH ,CZ|U<7D-2v*3ZKK<=<n!N1UEHH;mG@!y'Znc0%2OUuBV^8)mMS|P }8yHatEy^|0QTS|,DenTQ}2zku;o63' rgd>mMQ;?'}M}A,+kSzG(L\9&it1TrcOk/HA)T]HjH4[3 IN\lZ)% % fwL  g!c#OY bo}MP= kyY5t}r^rs2hh]Z=!w)X{{ K!}&fSW0Q"i/%-Z!hw,s#\NsPL7{^I!^ w@jYLr(`g(qr.K.$i{}kV:SR ]`w`\& D5 / = f _._ x Q f )=M Y" * R(j>o:!o*WG.X!%*Gl(B,]2Q~ O y-2v43 ; cUeKPo3=fPZ(W[!^& zfCHc{!4 ?7LJH W6>~! fwu B "l&aKTqAws x%} Gs <n.=#Ub 3 y}1_lhE{$hk`$3 h& FdZe-K?;! . -:4]y@'&sTa8sG8;>E8.7 Zn@T3IJ[ ! 95H2]\m k%  (-9}F.y*MB4`Ooqq~UUTIXNBg\{Yn`m)z UCbzH{e_BI+V [5E9NUxlj  +koW|n  ~4X)EJ`u:(F3|9I9hAXOCO e]Dx) P%m2A2I6 I` !:1 caUR$p|mtZv %GM+ [a I15 `L )>-;< SdoG) Af$ v %[V_gZdoFo TH JDs J)P ]  w$(7:N 6.  p * c+2= "`f7 K8:CVRoZ@5 (F.zt 5>{6@fU8Bcz P?* +v &9xYXI O>LON;^:H E>Hd ? Q+q 1~E,NJN&rS j ! f.*-I j s*YcUf $ 8YJvF 5O* C-^` V5OBxY  [ F7Dtzv_-hlQiC! %I~4)*7j Eۆ&|2"_] P,,gd 7.*Q)))/ DZZ Ue B g)5 2 |w -) BZ UtXcP 1A)&l ; L 1 $ GZt] {,%V zX- lm_q H w{adth ) w |:  X %"y t^G 0& n~{<n rZk ,7 [~DnF$j `hw-ax0Q e r * $Y<9~=%C 7ufM &mq l:t7Uc8  z $o q2ApM D4P+ay|tt"iIiktR? ,j ]73'#.%1 ;g{ MZ$j${?@TtS&8^Zur_MQG|e@=F g} s { b>~UPMj}h{u`ETImpAaJ:0x2"yd({o(*%4 $ O%<k!}EV+ls@99$v GX-7qU7VK@ j,!)3   & zUh A1 m'@N>r*mdP6XMUaLeKU ?U3$7a"BO"3^9 ( v I $fe:|~04)(w)OGQj/e^-\.,&V =5Qj>~>\12(F&8q, c \.  H [Lg R2S8 4f\!Y'J'e}Hu`fM[g;D  \ Wrll v@Qy U6< (HU1N41 ar2')G_1 @= $T$*p^jG>sy tߛ 0p|^f% d"#pB=$$ cvbv!6t$|GC&:]DE+)vՐui  gr)Z FhHpvj,j$+ Uww+WvU8eI+QriU%eP98k<0u Z1 } mq|$K w v@9aZ@ J 'R~2?+7|\*jDCn[8zm2 65f5+,H; ! 'HXa+\N 4xk. s aos.BiDm:oXQuId2:2kj1fJgDO,Ps$dA?*ܑ_ m[&" O hR,%T U N^&8:e6>01$z<\0U KARNNxFO:x#,t-24D  $ tT7;0gx z&92 <~&P/L^c7wG@#{.}(rt0 ?_++' oW/JU|B+2PFeSfO:g4n|^n8aC1`f*K%aZ 5?rNSvCa7(D}G23DYFH= 6?OKpVOZequ<qI^|}nu;C {pa|klYuk^,@!MMD(%C2k*!Sg)Wg(epY:S; I:zjo\ -}ux=OwI3'>4GA L6mQ}N ^&8(8L-S?vODq`nxb~J-Mbg2n|_\,}T#]Ly%-^/]B&Gn]Tk&;3.c#Rv_,CoA>(,<kyY5d G hjue&i7t(0>Mu<I0:mNk T\LFc NC/sU>"J:~AtX#xx I)g(YAGU+`s-DR93RX6N]o_k=h}q3#m5pmHEAY1b=1"[c!nfDOF ~,j>&lQ|piS"Oyye@qJ4h8gk4%i1On-$<bO){*M!TZIcI,o\u1?+ }iG|eh]=fsKM Yf<b#TS[*ZN?pOV-thPD ;(7R=#H2wau<g'<n5Y#B1Rw<k<c{`'t(3;3A8PzAC}5G6:!@S53 _2(-`nza7jB_rR{O5WVH(&)qS2PBLhz%"&%c=%VoeJ^34EpN!PK 7}L>'S>.pV5<GeM |sBp*i(rSy6NFI.0S6;lr5IdSY}ZR{P.E"6L7UXB>mMh"==3|RHdsD"S`DGIr ,CSicx0 ,'cbmL./TTf%]6tBc3_bi3%Bh,oI=XRm a,h`XEUKC&V$;8#SZs>3bLT'4]0{8xh9Jc cX\OuArfi{]"S-GM ;xlh5Ca<H5$/l8F,c6:0~7$"g5 zZ"s5 )CM#nh/VB n;4;Dw9>min4efa?>[ $ NL !XOiCc6P_;&#od*tZ7CE qQE &u|K7 YC[,BTn4g a|fB&~sDo#`,Ypv^QYRG5ew+m_YrxZQ{(oi-;rK,%!ito bxWyI~w1~Di!x0LK 6(Y@yvLefj0]@dw:.>N$i,gA(Kr{&-a3yG.>w4)^ 4IC:2nK&WqdDXjq05[$!U\fQ T6%"&uo y`Ex;(w]Wt6YPjB7yu_,^6U56W%({(E6ua aZx*7Q;Xcqp"CCE./*A|ra=\mwbr"K=)CUt>yiA#-`[)%6 ,u'*U LCmD7Le6oB}8<{Xrfz{PCY+>!Nwu3 `@T Y` DAjNS}w9#D$@?#P%hIvpt<tf^n%AH.13N);o_ 9 ewmgQb#eC.sKOVCq]zfa6~.lt#*%>K^]W:*B@|i!NX\li`{YpnS(DCO=;! f .6hiKcrLp->Yna=(&@(N0@;tylmR."XwB$q78Sq%{jF_^OSv|S@k|j{>RzvHNf-=? Aw.a^$ZV!UUypkP%TWj_><T/is iaj 7N/Fmru$%#\m2`XFyY Y8?pDc1."Wr6Ls|CDg Ka?[dEyHBJC9ln;#^*93NyA| X@c5 xn:[6N >@/ie,5 M  ij]=p3a%}80,=]q1&~&@r$\z@n:)XM j Tjbfix <^qn'-e +, f l" Il W76febD>=6M &` dI_"|s'}W m)u   aY( j c-V zM0E*xO<5VMbKd|@-i8TB|a5,jEuG+8u ' %n^La> O CvOPJ(WP_g8Bs:S Tf(uXnzI=Ve !!^ As0 k>e}S#6YZ]^q+0Up3Z . ]/0RixvKeH 7SKNe n ; = yoEE=2GH  Q#4?~uKsiPw.3% j8ZCoV MA7x`/Q7t|FVd 7a S{806;Hv1L  :7NC@-}S x e;E#<.!2/eE t^ FiZ =+)[   cY+p ($z _ }6Uk8(}`b<<O N onE=TaJ\_=pc7M)' 5^ 9K;6E j3tT)z[g7b S|_@ e ='E4v b/0E/svE5MZ)JW 0!#0 R X '-J2l&H0 B;PcrRzU Z7 9==eaK#&h45|vD' rv /ND(@ !q4~)ne`{gSwQtb y g1jp/&huCa]=3m?07 7 U("~ JJeJNm`%9gU7 (F?n.+]@ ~]4Eb_\)  ^le 6R  %W]}6V)U3DnI dIFq 7 -g#+a;Vf /{M&>)=u n 1 Y71pN+QL N9"9=< 1 aN NlH:<-6(1m xvl~ f K2 tUTJ [m &p#K~_iOR}.D 9yg   s V pyp[ -y4 >{q vlqVo=-}3\N\M\o1K0'R: l p    H{~OjTW#M Ksvv`dWp5Kr .Ebmc6?z) X/N4E"7YuVP8 sU _8|WzfvQL=E Ey%X;;W=J)0i%n K5& QaTG"_ QXS",k|d={ T@ g.T [ eJn2LwnD{|Ft}tZL[qymrHa+L'u}Tkf u+C!%@>dN\0CN _/_QRY P!1e8 JSoX;Pt%]$Mr+ q!}zDizNhHHD!ZL[= "rbC`pl2}V@goE(*7agvO*!$-'$ :.g_ yEXCyA;5 A>xM}b+^S]:ac 7 'Kje==&Z~O?K+ta$TF:8:Lz} CN D ZB1QMCnAP kwh9QLWm-@<[[OX5IeX  XZKWcKNtJNCmM_ ~ 4Ei p{P,k QWY5R"MbK:  I:/  j sQh5D@nG+4xr!wi7)2H<*fnCjHQ0?3z[<03 / " [GL"=ac0TMW=c$uqUxFDH|~*,7 ~!TO_Eq&LLNim [Up5Wj;R$87 k:\vId"vxa-<^|Hd^e'spS8?=P5\S-Y )f_Z\ @ ~ V;)&Esv#gTi ,%#Q[Y[$)' hx-<{2B{tb q RP-_[<iN :bD>?kz)3BQ>Fm2^:!{R7n$^^Exqy."D78} SQz(hu=t =2o[-:"RSUE=X=#I8aGo  6ye: xHQr}w> <i1Ro +/a'}}*A[g0c-Mqtzo}:? 2ajfZA%>@)  |K""D] N Vfz$o^M@4[;iIY0 te"6(|#!Ea%e?DO v }4$-f_K_a )[YbtoYt%kC#~~ @3Trw/kTWQ?'b1ZOe$ll*k T bOt"0(D79Cr6n/9cqfFW=%@Sdu Tx[Fh3MxhVGu{-52 p Eb-yKnr"d2?YK7|^C2/=} |wKF {kZi=LoGQ25I01y8Igk$\kw71g9Z%4joj+O $qjA*x44g?mNDGI+2n[ $+Q=8!e.(0(\s5}R Y/g'CW\_: F=Ya4-&nueG<9FLs;&ePF.Zh&B0}So a0^IzuC5eT&38}&i"&bl+Jb/~).Eu['8Uxa^g\Io)xlp`B9,d# Rv8jy )D| 3)XX_Adw9C9d6X o 1 ro$QqEK`V1 @(3lIl;Q(Ng;V}wC|?j3yFbO"7#X?F_RJe"rGt3h&YuH ;s_mua3a&j\/\!QoSg@)I# r }-6MY4w=]5$t$"iVf m]HYgio}Q.7JA7? 1 ExXB4ba.B7o|>R;ah|)^r94e{q3L5#)93x =/&{{[taC|'l / 8R)kdaJ oj4 MQnu *bVZ O95UA/D KH~|}  ^Ij ^Ycz=|-LerB6 >T_B9sEja4>[4#A\>(>7Z5fjiQ_ 4  4 >C*e.4_[,BH_d5\U^t{T_i!O7Hf<1rUJyei{n`gP/.(H1XR T38 ]Z2u^:1rsfJ>d:a}k]G5[VRp7VQ`[e"| Xlrv"["4Vzs)[m37n*[)UJ*{c9S]{L-+J:P#9!%'Iy&q Bzx hUdqZU}w}Q "&;`y1 E5zD Vq^vcJ~[=*G*"R>jMLK1ThQ+#cD#dyJMlk;Y 7:04bYBmZs1B(/L]6bsWTel9~m^ko6h)fdk-o;D?$f$Et5$H- ov9}R>gd[|4%Tdf9Y6YqTk<Z kK&tmD{edT|vXi,0%C ' . "Y)kaj^Gbext#Ft  x _uI/i]/B2 ` KRpOe[ lWQN!r7# ; $"xP  l'{[ (j0*^n"XP{MOq?W|%y/S>%-F 9֪]2vW HoEzr&[ =}YX@SRF W _bd,P(!K B7%tO_uN>Iq+H!#rNb ^ W `Om vn 9 +hn*;'pDxU\x@&9efkUc*A6%V7l%r*7%^F)SU+r&L!N ECfY& z~P tp$ Vtf] cJV+&.H"' lq  fjCF;I*mx&`D -Cv2 S0'zZ=*2B-vtp"O @ `L~0c (9k._ .:FuW4d, aAZd>s-Et[ fCoxU 6 vxM?!i-@5yPP.v  [)YN7k,q "&QdI=ea'CD[R  hM) )8K A @j=onA K>9vO% 1;Hw}qu12N_muD-#Ezl^{\-qffaFW1q H 9v  b q/8 TtU)/?nNwFX585ut3 LByFCO | a Y  %HiJBusRuZ,oc_4>AUSHCQ[OFivt , h  5 /\ Ye3h8q4r^:@i[6V.CRh-)y q>SoY6z; ]kV#0 :r03.uS,xk}]mQ5!I|iZ>\sL) %,57K7aI1(2)A4Hr^] ab**zl d"ydzt=D H:O)`Vl!<^M_$nWJ}|t`$6W(!Y}10H" 3Z OQ& Hco[}aZiZ{ Rkk$h.}KeR\#7h R mp C&m} Dpmq*h69)*.fTV,2$W|M/8wz@q'(`f]+=n|4Nt |LY`@+uretE?x_&aTa[c~JfTj^ lQV{R&_G@ S b  Skv~7@^ xdlCp^v_tx!= Y |M%WLio Vq  l&cPI|?L('AV aI 2c JH) $O`WW?C!? S%0YA  /`V(TCuQD4lNW RUgh7g""k*m&h[ c^$<1=I9FO |$^K! xdvW!1f]63-[վ}dc(ceT.&D"FFs߫ ;{2b5'%E,4?D@*kP!H [JRf>UAx Y;)̬C~Q>K b 9j: F +v?i5;a0DG E:V hHp}s?`B~ 99'(Qga/ (%"[,M^P] oz|E7m) A+ LXz < 9W c=Ep+ l- X=HuemRa;uNz.]4B|d%KUz^|*<Zhx/3q4|O\q2WB-\E:PV|~`ecB7LJ@(G\t[]&~ }cmH//|t)O9^a#0;Dl "R-d6# 8o'g BM.w}_?4_u.;#u; kgG}o|qYix.MPsH](4qyg1:-v(2hr8y.^&` >,) x f;66kB].Kwvb8lmnzM-7)j,S,=ECg!Kx l. " R 8&/f/xr|j* "c5Ji_Dv<q*</sh?-2k X p B V j af'r+VH5O7ippnH)93O#&ct1Xv<2X Yk 0$;  ~ sILA}Oq=f=ua:h%MKjkK(B41|x ? d& g2Z3P:.Vu` /Y]yC:!4+BXQd!S0vL1Kn3(Ld1+Z m C D@1 -J)zMfbYy883[@(zPDoJgA\eN=z+Cz];q  ofykbib%$[AN&AygI )ywg)Ex.:X 6&n3m)Q%3"S X6E4gv$fn  $XsCdK Gt'2|n#o > x THU Un=:1K=l"Ym:& _++ R*EjM :7o1 /x^Prc&M=xGX^d]yt0 3 2TDJW&&]-t{ O v ]]tT$:9bW5 yC_GUdp|->ViwJ;rvt0 2bI SI I|ol|!Z,u#f'rY6dl|Gz;ncabb b}<vv 2()v(\QBI~zLZ7xr^BO`t7fiD#U@A[o7 F&@R:< At & {4 {vUk7UvG Jn+e1 P$tP>D Nat Nx :qwl?pAmw aHhl6XaR<('-d_u  iK \  L^\-;B-dDSM6<z(VY] y*+(3c),/d ;Q>z,=0rqSywefm`zGrh(&T '_P\ ]'WRz{ /nK6 } >fk-i18 )G UwI, lL GGd[\ A }  ?]X%$') c CUMa;b5_!R q?QNI=<0m ##vN<'" KZ !~8H^\dp_ u9H++I0OEYv=GK1f*|c5A7y0?KGcJBuQl!'@+/c >Ua&e >E(8^@Gsen9JhF2ffO^K(8"K;LW!(/{Iz!F].v;^r XH8z[%'hU`W$2`4 "|p+ n8 v0I.JWW7^ U_K % ` 0^ m n5[aPy>byc8[ m-}HfLhWN/S]8$9:K$sVv,1dm]R~Lu0}o&,jsIt"1Bqh8t"kgB\n?_h<Hr.MWv-hms'gv=<*kH18aJuM7E8%io KeT+ *`" +nN UkThT>%VAf9H(tro'%|q- K  j8" @ # xxh(Jm +-*+>IzZ E$>t74Ob -/*L cl  &/&){,E xvsl9 &jI  H/' F&nf6 ^ jDh  ^[jZW.*fu|:n %F^Ipgeo_zV`3  } \K6 <]MP R0s z 3R&7T|9 h|!- o [ C'22 h .t %FbkVK $ ;S:@Vou` W'qQ<R E@qmC'*N[\ ,Hw`WEW 7 Z:LF<V l-NQYr[nqJ{ f* = IZ3gFsr@U/ % 42  lQ|&fXPg~`umD ).jup?f Gq /G +LS4>Rrx8PU ew?#_dp0% yR7^XCfY9T vr9]_Mn kSS7U0INKi Q~n5& ZA[ ` A7>7D)co^M^jfT)rrvC pk,x d. ]dYIubUa S s ZB \WbFhd>otqb 8v.8 / p a ]MJ;1 `` 3.h 7zDl!<Y A]{  ~1ExY! m; FRR&dV20 c}$0T&YGPm0Bl2=PhmG}Fb6LT pjtG  HM0#o.6zr<j3M_6sT1s9E_**g3 r UBH"o!m+:E)7o0B>"0p]Z2CWZS7[2\  @IaFt k &\N +R)^RfI{ JcK WbrTue( tQ1^D?.CklR +h-94Xv,{@dIZ_#'0@l7E^(k#6 aic Ue]Eo2 = &e|WPwQv_Yv*MPdqISC!P-LzNc >/ g R/lo+H3~pJ5~&>2YF:Or4] ZqvWUzS\;OY8v*  7:%*gw[q .g@]?: r*8zi0"d jHp Y  O}lg6;kICK8 Jq[%d4LIrGx??|0AA`SF&}z~hLoPBT!7scHrQ(hpJFE2ewl *i.IX_?iaX)hCNc~`P8p{{ 47v[9.lEHfL_`{U_th$1W3WUR0ngtPxNX!ag\- $4s[ =/+@MfE"|QFp5kdh#KSV> _D-lv$9{1FJ-? *) vB.#rmiKVBX% |%d wE~VwpWQy1_J$7!E_4 m]zheZB9N"c . TL=.czkmW]c)3ih:yq\[9"0(uR+[oGRD#h Fo~"0-IUrK0Um&8A|6F6l)vF'_!42WX!Riq[0zqWoL'SrYnOoGNh9#)I1NIZu[ s21 qe XeTn p> Y8a9Q.+ En_O 3 }nR9 bV 1l/,w)od)~f *Td;&6zO aa 0K|B\9B)za33<=;AV qX  t :%$~Or_L{JUH#(`ehWk[!Z3 EL5o(' ayQbzN.y-kW|E*_v]C7FNw, z@JY1-28:;A%)_=qSR/{9`|KC_E$^Z9'B2#' T  q))YWy9\SNi\W?ZlF:XE2lKRP 1 .:9B U ;.d+ e!l4abz:MW.{*[ZB{M-W;=2%n U. :$) _=D/ Mr n&1<jaNOC^ir??O`w!$%bL 5/\EW%x+& 8r$SxdSd[ JXQY|#`F#p78 i<QTM=!eZ/2_(%H[ Pk BE O9 T5M740*>6qJPk8 P(#%ICo4 &28uZ$R1~`|"| 6 o41pBf% } %Q}`7k)g~B' S u5Wp7'(|q 7"tHg |PH )2k/s =iGMr.ALR5h;D]Rjc:X1,{w<^-|9XO [t@ X )`v% }SDuTTz2"<6G /0>e6 tR8mKgAG3E_P L0 -)Y ^ "v %1o\kfL^#as3Wk?o(wo 2,%7) \P n2-& "Y/<li<z{=G.73|UjWaYnPbc0~!`~Cg$<cb*h4[zJ  \:zx- w%}byXm"yx;g"e oSf* A  =b?Gw D=  BWmoAFV t6/1)C:@RHZ\y0.1`.[mNa2x <z f;*P**1&e>K]~{&JXTm\zGnl@N [ e";YV,}}B~GMF?=qYe3|ft.dDe!f+hNz{&KSD"q? 80{*SBN$["hXZH8~ HIyWYFwMe\0PXd `7/bNeEQP7+[e .pG<Q)Y&nj &!#2|-7MB+Vj4 KQMCUjj_9 PN0lJ PR4+B^Qa 0GLgw&EmU .4%{(xu yi>@eu\ ]`;"N ?W -8 g 5 XRD =CiHs : $H]vrLfp}k&#jH[ qaO |0% @^ gwg< 1 /NYym AlnJ(^rdm YyR=16'.՚ ] =/N4_d6 m \k w*ij,!R$rjcwNR0HA[~ k wxI  <jf"%s5@ =vvyb ~"y|,1SqEu[z@TW;N{lBE2 o]!kW{k14xo 1cl+5[c= s)S=|&$[lDg=&~IA|zss57*d i؝3  Kz1* ] +6}P !L}C}JVjtVPq^lVP oxE' k?U Tc - 2g84pW\N<1_MxGf!Y3h! ' L[!}1/m$k@ h EfՁ H,+ l= +dq%hj y/z4QB7F &"jB\d@#ؘ0/{J Jl7[ J V:1wwDmfGP,o+dEF_X/ n2HM\"@iPW3SU {=aMU  U&w_v*%z%S  Ni!iq9 T%0F  1`A2)| x V\wg;UV )S4QX{GD}[Is-3k;!,V}[e9}n[ &T6 R Z{T6[x  <4: /3O~c :.uI>eYUa(kG3M2 XHJnO=U $n_,@"0R7h\ :sD>J)#qq  Oy5 $"{e75V6te @<l3 2uwrP|R@b-!)S`oW\%_%bI,  lB[/_~?RV(KVplxJRCt]&|S}A/__Q[AKE-hKvUHh$; dZ1)_IZ?D`KDO`p uZWA$zS/|u|C]Qg Fqh=.k"[{)s7v8& &]!N WW < xF* \1 l c_Da^u5%F[@/V5L&'m*/Q^:4 nk"x.ji n.yXK?"},<s-}z,ON_sTy,-4K~waU Vn'fcbsU(o']I7gjM &5| u5y6/.6}9 ).>>*{S=; Z*[h'&lI cv(cP ? e*vXGV7~ C i kN>PiK] ?(Kj}^8/0oq{]buMkE3d{Z"_@=Tp*"1 !qktBCB\{_$kl%   /!EP>}[0gZB)}'  kFf@5xoW r*/Z3 okF4r{v3M()L4%1,-0;v ,/ H\'T3|ooX+k7'Cklv {-  N@h$P\^CkS,5*Zk5?2 E{s_c[AQ\tI_`Q85oDKQk  y %qw8 N/yMCT V)pYB ebH -dcF+T!*ny%&`>Y8<:^MleK D BTY >l@i$wy Y(N5b[gm y(Z5pgibPY:QpB_= Q ' zg[ }5hoxDT =s:l~9r ?,$V6V /QWT(N:l2XfT n  [uh0#wC5Zi|zOjUQgyNHv[W@\H &  Z Z Y !#|:jt 9 EOh_Ohx~EE4q|lVME,p b   #(WT5_YLeNG{f#GkO'@TXDjNCj2a|{u]MQbTCIu   c - @16rcv.@c0ACEESTgV`~s;]*,T2P Z D $ 6=<{w!<]8[8Kw-]lF&Na]ic\3&oxkD=%OEI ~b{(Se[w`6S6 D7  ']_tjDI o\~oOMU9N[uMY4O@&qlEmi!>4] r]1Cq{',zd:I/Vl&81m:N#"84enKGCG+^0iAhUOgCHF@ toT 4,J8!2'SMY u|29S>bG ByR9n1N,ZV/9.6,l!x$I~c5H9 'NHh9 pd/8FL7_j ks^QMS+_.aOIV7^UEq:nv>C0X&nQ1>7] d,o? P3}fd_GNhQ|,=J+ 8>ZQbC;KzNO :X !BI-K a +ggoE!TqI p4BPv*je 0 Z4*66bB Tn:<K\Ub+8i dpr:z\ahC6$l6V~,  Q 2S<eGO> 8Rhh U } =@g$p}wxe/L'  stl Fe lQy:Cx cPjmv 6  ". h7H]+B 8_k0@V|2 -!  - ,zH`Nj]_! 61@QH }-^rG leaA|+:p}"* _PA|"aa Bl,R*dI Gs&!7&>! fo~'=O|ek $&c ! !3C< Cm8}$H.=,w?qAcv 7 :[>k|Al57#.=#{ & m?=y RRj6= .xYbq ~O+|#d52'Vr/(Kz $mgTvg TX)\ ;2a}P,dgJ|H*`YD*zgcjk6+   ]TzO, zo.3 k*G$<* "P;OjK-Y!.  <_2>0} &1,(X#.XA~dARaB"*3  y|yl\[ :a[\~T$C' { =#A>anq?+|#wg )  '-727J4MMl X KG(AW,8 T k=O=G)z|/~k` ^>0mvL:>K% X[[7h x^0_:%~417W@>:I] f9h")A!x>_Vq9+Dq) O H=d Oi)gc>U %:YN%q% t6^wQ!dw@2U\|HLR '~\ s Y@ D3d%wY!Cg3G5GWf>ax )q'K3C}c_1T`+ O2 #1 c_/,oF z|!p.}".MH cY :oA  )r]$ Y. !wK)\:. #qb0*Fo=gV, d/H||\r3jaqx .  $|{bM\ MSD-2]PM[zN/ |Ye'] 6we'NzKo4a bK\K@ox{HF8BEgcX)`?"A`wg)h] Q"3mOtInFpD D9,R jX5,5V@! `a&eB5AqN 8mFZSf$Ka ZJvxC@M ;Cdk{E,"82_+f}=ZQhx2+|^7\qcmPTkDaG5!)e{o \GBAO(ZQ,hEiq#HzThlttP Y   M `p5j=F(lw/ixZ;n[ R"BwtvN@3kx*Z#  dV[iGL: Me n#IV  F-OO `voVX$,)7 $vUftS*si5o=8* % (  .*=w:Z_XM./nx! t4Ok6lQI Yc{DTkPy Ja RV Ll ] <8 M~>1DxWS e6f0"i} Y 2X'4JlMm% ):^ ) H3II ^+p/vna0(I)B<4  f8 =\ k>ekgbg>i F !Sut }y@/Cq?l=g c =a- ) <xP<8e?h(LxJ{Cv( Jy>t"qq2 f`o z $&1J i"P Rn!,g l**O~L | E 34+=d}awS$/&go-fz@M HP n 9 Y:$O@K{9g s/ ZA(6u TU~v>M4R`21Bo1N,R{|J.1 51'CD%/r; kJ{O : .Iic&o{cF,.,=. ia|#q2T v\W3U`Ba T's*ydN,~5$\{ J q}%^3 qvwaI\36/ "GDSk&%sxZ 4]|. %q! ?t"b&2=ZC # v>6Pk2d,7;+5<l `L0k8|MAcl<b ,L|3Ugl[%k6PS,\&%?m;FNnGHd90tX N[Ewk;YUml@rv&o4} Am9*H I.T?NNvYDSiPYi0!kaF`vGsGp~EIi\R&2,_ZTs`B_S[dp8hiP3NEh S w\r=}A+;t"DYHJ(<#UZM,lS=mE}O[u# cWrJ*>^,=`g -e KN`-GR// B`q[ pK?IK=r UK #FF}H Y `)S}Mcow*gZ Rqn"}p/3  !r,`C>@V1A}E;4oDa8Y(e.dX0B4 5vo|5{j\VlZ3|Pu#.@c.]Ze%Q5{0kK5i= uj37b4I0,ShrB6?Pr|_69H@LY5ub]<.MDunEoUA^HbwJu&%Te MWpj3N~{` 6e zIT;HUR~c& {v*GFo p8U}eU6Jtw2l;(p I E +'rfSn 2` F(xs&\!?\^QwS+E&.)&hv5 PQ9MdmKa1?05._sDc M<+ >#=F O1O@ K\R dudi ^q;fBNTa$)}BJyZH92= 4vn|>-n]o)/B^\_|[ /lNj# D42]6j=G^]xP:d'N$H'c6H%( 'L}u`GwELd1k1gnV}+8lJWD8*&I;^Ev,TC o3=/1g1RgL@P%hrx@N#[]cmIZj&Yhod]2:W{ Eo\y.oj;49M{B' UX' 84=NdC7kCw4x c?4VNf`UThUuLQJ ..XU`4Kb5^[c[-{T!DE`#V<+[aMF7(ykb% GVO/QU9[(IgE_%S;*#; FDOzcj;Z f3 T+mN(|s zN:Ja|E:W Hc1!l^a=P8<73xO`-8@,}?w+q4u!lT~9\ AA0iJ[j{M&zOIt_^2q2 XWge0|o54lx q." @Y:0T`1RO!rQ4M\{%|@U^,oQpTRZB!?ZP|hr hD}0 M?p6r77#&H*IB=}A,~:ja^ P@An'"(m+:Nn^j2T!tL9%Ipc? EpH-45\1W6mcyS )'h6tfD1k &}[/pe~( mwpy; +\bRduE15B/H Nh [ V=YgG>&E|;X6{(P!>EI*w޷˿  # Wb0y bPy~~H l@u6<f @ rN=b=R=Gmy`+ c!A3K] Ox/0-J $1+^$vOY;(` g3U;~̍uj R - )v'3$Cr=e 2x 5*y8O  aC&PJ1dHaZm_3AY<T t#@O.A<Ҩ Q[b &`h 0o]}j#I B!=86.?`*;!Ba6EH(ے9N {*/sإs(3(X2vFYf6Gv YBmw-Ef~tQZH?aDd!ZTf&GѺG p ' "DgD G[l 9:v nyJEzNi!5%wY!S㼋(>4 7*P,$[xh:`oS{  E0En%DP 3cI3 SŦw X "k zh/ *'wx_ >#xe:IbK$F. 6% dŀt{ 'g1Ib )z t4(^iaR7gњʮfaV] ܫ܊ݰ  e] v F 0;=#-nHnH"qAcL {Zs f**6 u0!>; } 2{yI?t zIUV8TYClqϡ V a x 9 ]:Zw - S  f L<_#i aoMHE ;M9p2!zR@1xt T, u*Pw;@|vbcyX>Y U[, Y;HX>E?M>qx%Ng<NB!\JbB/XcB?_c9hW!@N7mcOJaL{,O.K(s]%iWA?AB63$vC|>j8Wg '1e#-f/K\*'pL]3 S'd<kM"tMr W`C5<?^*Y#D_ZZID%tdD-^!.U<A; }20gEseTTQfV1 lc)ytG=}KU@QJ  '1:.`7sogGF  uxE _6<pBR\6|x%dPC|s a Y8k2U B3e8 1Ag@ ^ !p0BZomx;O/C['y7Y B MAuX`-T t5Y49a4 WQ/w  U  pc}|,'_iD+Gj<&   7;;+>He8=pSi$ZQr3{]/+ cM0.&}tdHz ,kU XY13V>y<aqROtrWI0jz|y N7QG 8OF{*lg'&x7@0w`0{vAr1Q#X W1AcL q-$,*qVL` J|A j7%bn@g~9 iwD h *x<8s>Ryq<Z&0oLivyv+|*FuaxL A^rdgKa0G%#K ,n?o(2bn:b$?bh g: F&+dV4)"vH`{ISV5ov0} 9:/llM ?p &|Db%gjI D)ci-,W h>(g6Bed]9/G^e:|I }dLR*#(Q 4.O!/iEW12y/U#+L)HsY:RmXe!4S6Tk[0.PH b:o9C3Pqtf`(]zTEnb'uUxA 4*@*m.b pI8{6b!T[M}X ""F]`/_SSUw0NG~tJ<2=|"5U03.zukH2G+*4p,o )$<~3l$-=DJH'K "haqvh@6to y"= wgNr[-1`Vl>{5nq~Re/H>1 +L(4WRR{`x9  KUm4.(*edg1MKD(0b( QYe5. %  r OnV } }zl[2gWp2^i>aY(F``ecL]o)}HH&v9OK6 bwLsI1Pro- pM.MQ*]KO|yxG|$Q,a3;=C & E#e/6 Dc`%Bv):pkYIK 1\/-M{*YJU fFf5}&,kxplj%CZ$r1w#v> K-lelRU3gX2FWw.HTwS(ZK>PJ0aU0hq{Jps0scM>[D 1+US;*%1#<?i&,}e_ ,-!z'yV#t21k%qxP ID L<& n Y^2k) Jz{\on$[i\" Y3.huEd *:{y"= 1Fs1!|Ia\>5&& JU Lu`B\-s8+Ch%z NW(_Wxb)1X IX e;{EO[k4g;m<&]B4acihIG$ em+8n?# I-+#h&D.*,/$":4L{DXcuygo4|l|O.&{ $o*gEH.P!3jzB?a9AAdJIs:^#|  e-eg*B"#dBB ]+QI&sfanc ][B\NG9?r49h @3 E]W> @B(G r"=kz0 lf]DTtCuQiF8+)-  SG+^T-Ha0Tmw&_zb8xQ$l(AH/YY1[\Kw,:x8`lVV=I rnwu?lF 1um,Yd[tMCE$CAo>;^=Xq= veq tV\yr J hk"R" l--t1X*@+ :q U*&p}p)iee3j 4_ B(?|&N"~`\AU9uOgq@p3Cwiv$Q0K3 ^wN!Oo qck[bF#Y:R$lH5Ow!/PF+RLEBNmZ@KG,-X< qQ$VF.(je{ VDey"tLobIbgLLOe;Vj~f<wp[3W*(ixN4%AVgukjnT6+_[bwM+fMZ UPH{U)M+SW6)W-Tu +G*U[3^*HW |=}o&e>VWZt3X}tZJ.7sfpZyl1QA{0d$vvX:*cF}^rg)}99+xE? =La[{-(I^XCtX2_LU,~4nR~4EYf?-ejR?42( b=%eGNvsLcFostNVZbb<\?Yng%:-Uw7H[+kh_! lM}XGiGn#jq{RqZurd=#.6!:Z}MiS#zUgL3`EJ:OpnsL-" ^ IQiTbk2rg4hs2|G?bGXTv'=| $%z@fu{PxvLIps@fK U>|F'g4a8`oM*^{i.ZCiq{mhug>xoimswJ~Fl%FSb!U  uzcMiN;WPUd!NsvCKJ8YW[xBYja)A3Vs-H58xf 8 ;Yjnn[[!k1jF%xhW F2-"5 ,r]SynnZ[?OcK7&Si{`Phg|pFnh5PJ(RftnZt~R~3pk:F>96*71!eit)rOZ=RlT Z3tRfMG#6LDVFyL?~SRhj6'+:. UsiMNqc7` n )9<a)!{G-r(sUonaCEUvAVDSTwnubs8x,j6[/sDyQPs>d^aNKx.|Pn_{s-#.eoMoX2]LgyaU/#f'"X}aMsiL n+E2d y{bcw: EEIqn4aDfNjm@X,YxgksAC^YBk52pRFSgi4X^Ix\pyx&X.VQ^D'&V9D`$IP_30:>t,l!Q #@g,_ D4h%v#JD:<;@zL8?Qt'sVr7c(}WT.fTe.e("M~y\K{s^&,&+gt\# fa-Go e"V5l7/\_yihir=fgV "OI1ye6}EBb3Syn{?Ux6;J&3Sub&' ^?$T\z6Blk/3: |\jsl4@ -8+2A8)'/|/uztDLjqJ pCmw[SfaV@`tv:-sZrFxT =}-g4t?a.e~`7v"H ep(Je/'5D]|'>::^LA vJo2 h[0@~D1'Y_wEPvi"K]gIH:|20fP\WGA~Rmnk[&AxB,LN]?]&R|am(xh# 7 V 161 j|3p*T(": z][<]mI6s6Aq~910039$Um;zTi "8cb\LQd?Q]DQ* kCm /$m`}Fn$5<E4@`z )1Y( qMl\ [ xQw7 [;y[[m8 3XmoX20)QkP/+BfN-1 yM5r y9%+5! U4xpL`*4C|`{>d\ 5qN^C  B(eQm9UYy>E-z1lb?1YzyziIsv'l+ 7^/9iP)}&8j`7/yGeBF`W?9yz)iy!#WJ-A#W+lO (L3ub88t{HR]Pp,@Lk%Q<& Y@0?Doh:5,2tvYzHzv\6-mI`\uVb53|&Mj*l"A?.#9$ VD`$,m .~f# KBYJ3&.,Pd;vpXoJ6RlOENiJm0\>.Bdr`B| :_a97=%8l!+39?FF EB5~GoHKx4Ji!(4@sH??Rp769<^Pnk =`)?F0f1G-<q}%BWLFCpfH\NfCnLO9]/^uHLeq[\%[)8q]{SP+Cb|}f[W_lPz 7>PVCXH7Q#XAKg;TPC#}y!Lna~`yLV/ja}2G]5`I #c!}f#n/ mfve^wVcol'g'jXqYor}cP>;|z7JIv0::Ge33.gvTdLa^n&{=:xC5;j!h%oVS$?( UxLSWWC[Xt%7NY S apEm0~w<}Dz)EJ@2ir)+W36rZD e K\OF>%Zq}7, z:0)G- $fh:*e.p&^1It' mj?4;0W\1(ffO"IFLUcQa. $~H%1f[mD nqpZGgdqYRZBUkx&!uSbvB**u P N?651nLidnPh$>:S;z_{3,,r wt#ocZh\.Ud QTD:-niQ}DQJZ*r>F{psmJupj8LuK@&8 KvH8u'pn* .H!6+eCh0fbI*H!P:l(G,&qS7%_uqeb 1NnEeGs& !oW3ScO HhKuYkk+nSGYr?3hX]{c%h@iM5K6=;P<@Nxy?9iQo_.Lf/P }"$N EbK6)~J{:v\h}iMz%jkwnZZj5JI:@{Q.?fY'(k'4mASQC;dk^Ihzq#2=KAh\U Xx\N62umheY]Zg:(8[\(Tc)g33F\R;4v.BU.xO2's7m6^Ze_H2S6 ll|b%v^ l$`cZr 7fhZ ~Ub;b =rjkD<, C nL` 6L4+;s$u37a)uXZU Z=*&Eu*O(8I $ Ewv['KtC XQg34O  be<Drjq8<2K+(!_pC .tChS7E@ 0 pSc(2 m 6hF *2mtY*T:-4Hl>.)HK^-F2"t 2 |JFC9 Z  ePx[l |*XEGLQWz#M R"K|+_ ;^  A. :xX7g~an\\ .O[ VBD)A5Pqv\K&jaFd>% ;om?:  Y h#JS0[9|.7 I|?0LU{B]Rdl`psv /F /42j 3D^4=ppNNj P} 5kS:~Jn`J?Cl*cc^P|!m*6xAx :8W \`MAX Xg> OBY* nq_iSEq XoL/}OR5PQ:<i SM )Q c Al~mh o,"X u [x: e D"|#=7(U>nH48V{W 6=FY K !W |:k 9D |+% )` K sfq /64BwfzlLhG*AO< HM& K T oO]  b[enA K7fE 4 \oGgIYK`Np>  4ZWf$: il \v Y|s+Pp,+4]^ 1opu O (lvm KQOED`I@L8*j1I*[k  Wzch+'C k]!9%-N {Zf,f   >c Y&.Meb/K =zUNq c Ybn6MreR> M "a  ua(/Yy7m mVY[y`,:*?;c^  o6 ?M1]E #l?Zm {;_o u#.'.y0)$l5N>6\f@gcQX4)u@l'I"u0(E&L2 :X ,K CAO0n'cx:bbtD :U5d0 /  3 : sc,y(0@s ;Q~ g6 U_!N?mcO"&H=i:o6 . s tlM  <p;El0xy[ Jva3o7:w1?|Y?r+nlScg4O|! [f A *S<8V>ZM:cO#YL$cAt[1o&UFLB8?$g0:]z;?sjA  , & >8 ik" X*7[PV^D.|{3Q{]ZP*N 6 <@-[nkvml\*uyE_bCDj;]EQl`28dKyOqb]H.<@0 __~J!o(W%QS< X ory*JRKl;1O9IzQ\[TY821Ix m/W`o d |m}L wdW8} To" UF'N4=QfzOxZq. -Xs}`Yh{j9S55/bm??< R\ $ g5 4+a(9U)* {) (r+qyajOEO:|2Lyw-& 82 3wIaW $gf1>0  r< &l ^@$$E2FQ:|w,L} mueIy(w ZFMݝ8: }Qx Ob40 7 W $Z (%  C }DMh.Bj070zMV6HN8.PϪ  "%8;4$z d ZwF| l2iz * zj`  4aZIPH99g3B#K9G 2 9,Q }d? 3! |,R<K 6. "D*Qr* (Gq 7Q ; Q*% ;lk|kP= 85hnBl Q- + dypmt '?xBk u{F f^ v] ZHK.S #c1}Ll-k+\{ c  S vb4jVR8=EhagP97}/-&C/1F sY lW:ZjC  r 5w[17u I% 1 S]&j\  h " Z3AC*n+8A?7\-E ]!z e  +b!^ uKR.{oq v  NW)KzlMsc^v*oK!cg1 ,w  N6CH`, ~v)-cR?D S qkdZ$r`U7m)oufX WL4  Q 3DW ~54s J Cgx"(v4Du> JF-R/Z!C+\>@5Z1n1xۄ hYzxm q!_r YqYG9J %[G.d]HN{ "i < cp_LmkicW'l*G6P0v/i-0]^#9T+@Z/@*"* &$@(nPy )}daHN mEzQ7}&c] J|YX*SL{YyZYEwaux>A<  8]<fTm0y6a*Ra=lJl2#VWTUQRV 0)p1X~%ra0vvC!4N_B<Wysg B=$`4~ O!\nYQDQ^[hH5e,.D.fsO@;oCj>A,b3u#"daSu_"H,!;ll& 3.%* Ut|hUXfsx8{in(H_^ ^KPKjO~_nG{\XK58?#R`e"*gE>n+_ D H"<)3T "_<s T zM+"UYcU:dB\ROm_[8/Oaj"^_kx3\Lz@rei R6]V8&JE|70yr%Ohm{ W,,g"Da6YI  he=|(EWi^66OK{ELO!`|[:ZuK$W2A427m* (7V1)>5FI?tY8!@Ix2"s_E&f $ H. m(cg 6Bg5T 5`vYBU"# <>u'ne98 vڷ)* j ;Ov M  B[~Rv  :A4^Y_`&hy YJٿknqV_{b&Y /&0D [x[7-hH~K {bBN/%71 GD(6@2 <Hr!WJZii1 $ Lj]x < e`%T7qQ50R~;5 JB2`hu# )`FZ6|O 7Z,8Qdo nk"U8+= qk[R :P7K# pk,((Dm/|ntq9Ljb 2Ts*k4 m ?.S3 @gi`%E"2NaXo\]fKKFy\xz~T #m[  1 R: 'c(Q m'?_TO1V#*%3MLIA a o Qsq p FL )\u,#4G.1 + t.0+Ev  E W%  Sa _ep G0  >Hr3I@ Q w u @ :2.{<@=1!DBn7k?UwDr-*<c]{&]g98. sB;~M[rZb@m? W,9R$S5+>-ZC= ~?tb"mt/MseiXx.{NarH[z6zXo,HlPT#PB_dtot9GU]}sC_4 6(a4}sze0;7sM %!J4 )i!%jl+*-qOjPBFyz7?.sOp _iFv6n*3V*h0\)lWxYv/39q%"~[830TpN}(X[lR{y c !H(Yk#Sfq3 Ot( 9[q(IUk +8e]wow|!$R dj=-f 05 VMuB$.-& ]6H."|Es<0|J:P :FWV(HZ S+($BxFW0RQ_V>9mDWVhZD"r# >4ao;7165t94xUhNu v;~Od}F*HyQqD D/F<y4>;g Sxc/v;#RdjID9V42`z ]!}As!Lj_`CiYJe{=SQ#$mZLt2[6_ QwWi2;LV1Y){PdKk4BMry"/jx zf_.Uy6av0 VURgmTKgJ_ca1)c-Gj;S-Z. 0>l>p!I!Ns QMAS v Sz H r\w77 ">n+Y'%A}e0W?:m 2 i ;|'  L p{q2B\t^RF;a2,'Bb ;*i  `: |~zz:i2dy R iGkh-,5I^D*1 - &5?uQ8 q  4 r ^].`@c Bq %"H3 ~_?9? w+('LX.Vp  r tF' J ;tr5lNl;Wyb#C~&# & q tc=  " `Fi T25#m>'S`p\_/?G"!5(R tL. B ~,nrd1 k V X%>,3[8 0o`"x;**9i7 %31 O&0X?1 7  zY%FbLo>1u n !/'(ZlK knAVTsr4^Ua({R{jx,SE+\wqp"L\qK`" X9$Y.f +9DfrQ Y^ -uU44Fi% "nsyj\J `$)GsDgb`-is%vyG'>Eq 3,HP2"4  kIU-|  &s/SF(k_Fp^ "/MwV(jit=@v3*DlM"^! ?M.^W % 9 F^y2 I: Q\GL:}L #qdC0AAeL%B; FZZ  c _=ocaBz ul(9n:Eu3hE<1|!i%% Z j]cy` O2&/x!HK*}Uh  4e{K}C0 .zAjV  -`a>L v 3suxZLt@H tg~1MFq2 3$\ #!"'FJ   4K\6" ?Y#^~yq#   BZjx?YPzf.;~|K~g6   s[cl G n F;)Kia8 I{1S,ji W\ EE f- nM7zJ  5aQ[`A<'\t< nYD-WL{,[<##d7 dJ qE[Y~jToAsbp-L{G>fKbuW(i,yg JG"r'@ s{p<]r X ] p 6k0e^  ;Qm?yO;M} Y V 7l(/ Pna#8KY" O % 4 A 1{  +ca1-{y&9 ,6<ezq4"RR +Jy + b >hxmO71 {I*7u"!q"Irq:LG!=xsEpq~r=hk/%c3Yu  ]Na ur?BOB2n tb*TH&  r Tb  pptL RQ,3v8/'M,ZbXuskoe|=R( /$z:vfyw>- 1|\cY^3ji% qUFi C2=6> &8(rskqkdh7z##G>9Fynt\h/ithxI\]PSbaOp,>[cexL4EMoB?XZb?0xnto|: R=Cf/WW2IP x;qwc=Q\tr!yjWkW.C=]UB{KKc[$`HJ#|25ZWVVd'D=1H+5k+^svY`cHax(UPqrC[Unj ?w oi*2Qy"X.f"H7!V[E4&gMA}_@Ge^bzU   C Y 8m ~.!-lPoPb?0BZ)dyp# (]+HUsK\Dfv   F_-_4K v 3/UE _3] 9s A ?p{Hk!{UF&J)WA. 2+   &5iqZ? &p S%& !g0vb *U C Voi m= M& ' H="^wk $od G:?Qm5 wrB0,BPp|;"&TesI{  -  * Tr$Rn7zT ? IcU  z: 26rT>LJ^MV}[a @  l2LC6:?  h9 W*oqMAF [ !Z 3l%<0UP*=;h #T  r*byJ ~ ; G*c"X"ML u >DL_y[VzN j =.lGWei6 s0{%)K  Z+9K#]z __ PHL _   <rH K \/B*/jq0"j$H!o5ocK/hT]W+ { b wUt{<6i8y   J8E<< ({iiw1r(MyMd7pQ-  ;F [m)o) xzf >i-J wu4R]GaL#bH0eNpJJv(?eDPcUR 7@2 c -x svL{2D m#E[Ti*69>thu37) e2z Rx 4 V }:+u>(Vn]+tD cxbK]'sj>Cp   Y]\M=c- h <bc#rn#x6`.F( Zf>=b .$#:AL1?'|*i- m  +S|;rZ99R t 8!C$MFlf_0)-w(v ,g(b(f3#`%1 ; ( \Ugv ?T#  6duG@s8N1]C7HyUwB-D\> Q 4v .!Dvjc J F2F#45VvoEr9u%N~k4yc4I =R=25U c [4 5l>9> ;3RxY=pJs'Uym<1!* =6#052$  F"Vil{O "K/+FM~SyuGsi|kk/"65Y0 2  (  VH?| @ [Y  j?[:XAx q mX] "z2KQ ; hUg Aq?K,[C DPyn\bJT sL0.$78`sH"#{?}(Y ;  q2 h /dWegI ["%+ Yx}VQ<# G] K N1I| "7 5%i@P> =1EzpWQO!,TgDH.nNB n'\4NTfsTxu<  Y8  cw] Bu8u=)PO@!^/1*V\`n9MwK#dEDuD2ao^[q6c 1) ) *tWL',0.y+OuK(CFejFQWPAN:&{lL_<Q|"<l9v2YJ!jfy1_| l['.WCI}l9\zUFSL 0_IJW^CQq]nNw'I{0c, 7/:$;mat [6"yL`#Z cyBzUHpUl9a@0!=e=]F$J>{nWJzBi;#b_FeQ`(l1v,6Gvm&rJm!-L@Q?KWU"R]D&O@/L04qAa<>VM2"~_aeQ+tN&EZzhJ}>c"g^O) p4EMS4Ak 7Fs?`d:&S7F(H6]S!uG#MA,;qs, Iyu(WJ lW=8z=#i& i|r}_F5+}h3c 4,Oh}?re>M 8v;z)]\M0mLl)WC;tb"}0xX8[LFE5 8yq:FSPY*[ 6BkM'\TU*avn" .PWT)"%Zj1$0I-*_om %:Wa8s%X#/]}=Xy5}zdI:XPM -E}pJRMS*-PSv".jO7SU%)%ysqdVTM EF[=q"{Pu|Ka{J(Tz ^Ju{8s^wVk:J>TajT(P C=gK{*\4"`'J9I^L^3(|684Gg L v,_>TV0w^3e~!yB.yWa8hLXE}XPlxOkh&ELny[t.mhZ{] &*4{z5s,`JavE$ >aa+y#u-F~C/t]LOwHV r)rK_l ^2A,@\JA CZ/5 1$oTH+J8(SlaFG0;@g{WDh#,2h&']=bt%RC^=:G\hHm S,t&P}w_pam>!>pP4F0}-3e+M)/cRj^*475'Z @+9 ]W FK[}&T nj_Mgdti^\yBWwzg'#UhP _h$vd^mA]q/]v4-OTMs{b()D BA!V {p Bxfh~K}_Tzj^=_jl#I%W9`/ylx q:x!!uz\6FNUgt4}o%U J}DDp$OL3G *) r71%VfVeEv-=G|7iw2/vyjcrCB3Mz9(=K ^`]@)$   g_ g_6mLUcI| FL p'PPk42 t 0/%sy* * }=gy0HgtL&pFe%VeMe*.Z\^tl:yC&eD^b[3QPTp[U6sj6ggS i3ggGg9Ih}uN "s-]iao^)*qjMGh3#9qZ+0] P` z{J*}NR<B_m*,MO2aUi 4F> #RyQ.*)#lpD'z o,^ []}ZvJ>MS1T oo*2;_wT S 0 gfWv'::?"Fauh +UtF KSC  7!vNCy*aC.V ) _K2 00(yx%a 0c01$3&,XT?Xk}uD5(x a1c^[#TU_[  Ug,l~\~}'&wtw+`b\- ppXuu1Z:p7 5v4E mSu YEqukh Ou}^S-b\Q&{BA9}VC5D}<|7 f%!cXQ B K:T on:X W6a^`BhQ;f,Gl>, oQ:uhft#c {Z2O,zN gS7G }9R  /SB ErL734uMHGnSt$c"IbL* : " y$ykWUmKv261 )v'w~GGrqm=&Sl GTaZ N Cc != LP+WUex5^ x=AD|)0<~'MM1@! U : GZT?c4<[ UQ!Z 3jr (V??   Dg =   +KEC(k S\2'\*Cr1? 8c% b  pGKk=NC!2 Y ! 0H+> liSk [sL3w!/k{a1Y .  D2)I t a6X 3Oyp~_uE VxXTkV (|h}}  ^  4tE 2 ^B8-7eCwbTI@3|]i{yo9/mN(l ss P 29B=mxmZ ` !wwbH; 3qtq6w[*Y@zCcwt"U (  w uRo2Ky4AC @c9jl/ = nc-SC"#<[Rj[9c&p  et s]y{g5r25!l atCm_>{qBvmy9p#8.ukwfo<   0 B ,;lJ>/LZ-HxDNz$W Q2 v[o9A *Vgh 3p =eFK=`v|aUeN 71KzeUOK^;qzB 01=XZr_W+*{km  _ }Un|:,(8sthY7"fnfh9F}.eT?xpY%iI 7ZZ/ y g 2?i#Tm ^-;ZVXV w{v"jP4OH2u"2N8y1 j  M\@@[,LyX4w-rT=SO29z#1X<3 OB | Ftge,ofENLc`PFSO^3DhDV qUNa,V?[/;N \ h Z;5)\~p=Ow"PD&r#rUwx`BKkD4%aM   Q - ?~) 6eFgD?v7iY&HD-` 9Qg:Nu*| mIp }d   ziP|Qu4 VsK5yznYaaY|U9kw2XyMurlCG9~llY   I g>wo\ekn- ~~z[LO/T+6ul]Mg|Ydp9k9c "Q"1 R  m 0@f(qz|]8l;EF!Fv`k*^-KA0A3,5SGPy O- 5 1; 77> &+ 3j7h;NT@o1M.; 2,S%=d1c"[aC . Ty5 ]B7P}  bjr'_ (Vnj+z(Z yd(}f:S9M`ed .UH* _hU"K]O_SVZ>h^uOG6CZf%nVK)|H; A.d?f 5bGBs?\v|/G0l#HmwP<Z =k .j+"{R J-OBxK>`q]G""^s!kY W~p<r$Z2bda\  D~%=C>?FLQT*ep 7V2X|N61^a|v|)% .Nhg8Owxv4J 3w/3p{VyW1x|>DLjCXf731 ]%D"eIcbLO&F{6@Py\71EF#8=%I^BZw @mNF4gG33 #)C lZot$l 8Sv7UYA{wAAx0C= /80OZC>xl RV/yt3Yq-E5)3XZ[k@)YO Z[bEqW\SX1(akg~#D$!y`Z]BZdsHu ed=2-vxp 0gefZm.X:: `?'Lp_Nt|D u&w<-L;J_bW4InwTCy ptMIz)?H+ H;u`2ZYg:<1DB&4P+}Fvw}:qS>\~d7z)3}-G^A? '8 ^oK{#:<_H<PyXW?"JM9G;$Tr4FJ<y-4E]}}q+ybD 2M%Xi>%Z:n7BAI{nN&oj uB bl6DDl`=paTO Tf aA WZpAUJO>[FzeYJMal xRn.*h+(-5s|-w(G 0Pm;gI/Ne2Y^oeNp?`$IMJm ?Ju=w _Nl }7p(X`y<)H2-Jb&.a _- @G`wxr9JGWy*ff(,rQJ/Rpi]0lt}xt,|"M #wRRg<WkZ].a$ ^ bp`.$@;rCvl&>Q 0U1%d vcS3!#7G5&&|tq ^Z> 4d 0 l:2/T`8|[i6W4^>tGo|Jw~ -2]P{- Q# m  <jq~T3R wi Oo/PGgoa"rpVi j@ { 2 T}O{!FL }4 AzkrDkEv0G)HGr  Zv ] }PL2I?jIzpdy W(k0et)2 \3 ' D[P uRZ<jE-Xy,  =tNi>5G * a BN/&7%{J&%=.d uK j;n$^} Yg DP:[*8([w_cA.=+eq%,5D!DC-Kx= "F  x-Qg+I`[`3I5b8_sYQ"Q6TLI Wp= wKm% tH6e/J}gtQx,~G>3m&&h5 H[Jd kk`A!2P_PW|&1draI!yM;[j_kqQfZs?Eo`lsmHF6z,0f&a D(V#K.?^">M/l77U Xp$E^JM0LML{H 2&*)v*0z_QYaWpgq0&^" UFETBwh!lXI:*YIR/MTX0L$e 5*jk k~  g $X n"Tr.c>=b|.zjkh'(4 1% `?uigR^L\3<E jD 4<i 1*0J)-# H *d[xSz Nbwd="6f1(M|rjLf(GnTW?v #2$8ON 6tPzWT!btm1BST *>b(-q6lI;z.E-J:YV N# B >{j3$;_%G77@vi:="gc%SFGTV0 zVe}rT]WH_JZN} 9`^XD/u#+gRq7<ag &}7E|E< !F@kzeY1lbf\o:`YS~TE{P\N a_ V. +[\0  %ZyZ{"l aZ5r" (+w+Jxu"Zk %|}Nq o\vt h@hl]2- ""UAUF*M3+4(0GDu5s gG& eD L jn, l0R;Kt~t:lou^?Z:,y>.fB6h4+ 2'GfsJ[P <*+D`QW8u B=CHxUK9k$^6toX]I]KvBV?v K\:=v{i'PBI)&P~(mOf9vMdZEHt9pu. N,=o%% 0[X0IO8 pt]P9gI$wm _ 9f$x5nrKIV8u1tO WkP;`p)=a431DwO9OG\  Oh w2X|MMx;:dnT;b1gUcO@]-4/] <fO/ @ t sWj/~K:g61*$_wzluO%}qQx\#7=gNK8y # [ 1 T Z:$c1-0y]Ln3R7Y7,AQ.fE&1wd \ $ ( \*"%+blqwGh!.^Lf_vtyNAd 5d=A f\QvaAms $ # 41e =MC{^d|HFX&-oU@ 8R n n^Bo5L,>9s"c$ /k&@M~?= uq ~0\w  ,O N1tEU4D@rj:jH3U"|0 F8V|~RZrk / `cWzmx3HHyaGp+F+UC_ *(V%M;r!n #\Hm$T I2W29 @xsvgJ 4(sX=Y1k5@PJdR3 AZ!8$qUQS yHLPR~ 9BV4Vg >?u[>-?3/@I?x/fif g< CqqF$(uhC|`q\j~ Pypor^j =s76M76 g=tI03|}QY686[S:jDa>rD z TVBCTc&/kAN W ] 9#neS!!cw_4< b;Htz]ucsC  Lav[g ]Nl-CHe/]{?(>P)`2a<ja49`hOc=k/'o6L"{;a SJTl U | + = &Q?QR=1( K~ $A8Jh8S_4 "M u O, s 1 Wtf]&`: D L } SpKFK;!GZpapEp]#"Z '=>pa /^^)&^ x\ }   @()I`v`#r U>f)n3Gql'V FM-k1E U (}H4B%:8 ;2  5SQfQtTd"45EWH7P~[#~tfg#~U5:2 ~ V ;8 wL#3X(0 sDqo"!i;oJ:x {67~& 0`l[Y=IBY 2{:# O ! G$2_S H Mw ]/76  N. uv&:lH_o +A%  } a}WX3v w Q} `, u[|A _p R|\ ?#4 zX ..mfE U[FPo|B#&4dr ~wjm5z, 4 1) jMhfY03300 g % zLvn| b89|3}: T XfTn an~IR-|;Yy{ & F I/. ;oO3wKSCvlu2Ui$ vN } N2K g 6q8 =  &eh F ^ ;?/[NK_ ~J = ? mR 7 6$\.1yv} Z |5  }tQQ, A <x'![@NT I v %cJ =j e6 d 1I 'n|.Fj |XB"" v0BL`KRXa^*tA) z -kR H!B -:Z+ rop{ ;Fkcy ypqxVICy=QxHe^s+lx3m k<AJ.U!M N$=1F)PxT)eDoxcK:AE0p~VRt& X)6J[| `$ [(h.wnzwV0d   9/>Rhx%Na.ht4xM*W&;}8 qR{X[+O:?~'1,ztZ6"mRb%AR@?`'u<CqCjx?q0VOkUc$}  2*k6x/vZ;)dv4m8Cqqx_0BU3O5f=") ;4 g5V'|I2}T[0d'( "(m^XkLZX++[ZPA [ ^ t\_ X5\5 *Mt=G2b U WXxYvvc! 3R? e p$)U$ap` X~x-gaFFyc#LLVN';dn% iE NN<) `,Sl y_2=v>SjiL {S\UMh Lb2Y.@B_u a  [Oi&VCICL#E<v/|R7 |>]=Z x im  _" FXLDSn{OtTN;+ FF!p\sh!?Yt,C{ wf,Ifm7YJ~2e/t{Gk2D1} '.7X9=ZdB>ZXATD#u/S%8l69yKtT/+YT_g)"n=OV6ZX&D L<B }pX@'H{$6!x-(}C :{%UwYm'O6#-c+&Eef:QjFCN:=SA|r  Z" jj? yq-b 8 (A0 44-[Af\T9g,uV7'U'D4R0"LIvZu@h1` j!.H&<!}T*(Tw 6|Yfb6 |@!"! 81n]S^*+p0:7~o9)}FANqG[h0Y~r{KQ$uEnw!V6 G]NT&;ff 5.Cjm;ADsiAO>W  E[:5lpq (xd47A( a7/ddorJ6o4j[gwmsg x.$(Vx uCxyUi297vdRb<KI=> }RS(-Q. m XdcVBT +h}+*7\8v9"sv Y)oE3rXjr@3 X;:>v%.UyKKh7nV6aR9 4 " O+ <[GpV 8N<WEtGA?9jTkqU;/jv:4?P# -)xL 1 -qa; e*!1 yEevF(~4H"ytpq->GM*P 'o G7XA k\Pfp 2=1'jHPL ioxUA;lL887fe% A E&?3 @{F\ U=bP:$!Gjp,qWsIXa,jL"D3-pA$^ac  8C135W64Yd%G=Ioz9nZ:|m~cz7v< | K!Uh N w%d1$TrB)<-" {0NPY(|)QzbuLGRkTMTq+ . \Rzw8p 5KZ DKIFx7 Q;"`U (e?xS@%?UP9#QARe.BoMSvalU #j*6m P {  . >6~ ;m b>m?yHNP1^_%io0F |2 tG|kL a2(%"~bbpL-czj>>~Z[VpmZ A?OJQez"i~x ~uCh Es! D SgE;a3 ^,d&fQW7] #d! ^827 <*E$2t& %U{o=Z[1_h=*|}Zy &GUj2?"SOFX:1z"g!Lx"] 6gbT78+GD 9`Z)ef#rm] ?"bFHl&? bFFgl# X gDf7Xdiy8~gc "6UshQ|n"g>Fv.ew fu} 4SGlQ8/eN% sH0j=9M soc%S:p c|  } :97 j+4 jPqA76j]5  M xLVT&w?#%a9"SnLYXp^$ H & ++ k _qB38#f~LSd&Kp WE ? 9 y4$ s:~:1r/q4CB3F 7| .-e U T@ S]K@v) O,Dh~t^USBR # N* `} eiH-!xdNc.PK\7O:SVLzj&;cC4'~fKOn" h}#Oh|VUA?;n W$wC**y&\#qK(IXcC&|c 2wDt0d,h,G=vxVA*29J~eBa&il2D<7+!' =4jCR+ ~[rUN<' ZW$g]Z%v[ V=?Cht) ~Yd?Lr2csv/ O L. 9R =#6W2S[ HMqm]^=o 5zlgg9d+9jxtd,iY6  m t$ qnM6/q>3Y[,|| K;Vkl`0`)_{g0<+FK#Y~7 2p? $Q"+I?S OgRK@,Ja5a0&`_ZVM86\R!x`VK*aR@JQ G>&vQv#XAkH0T`zo|&;@b0yahTy^2ug0H|YZIgO6BC "5ETrO*Cm[glrQMZWolAW5Cf 2T4/x0c"*OiWvLIhF#5e}s6nne^eA)6j?0hWws%DK{=,_5% uXEUX]]FDoP2fJTVssBWIdP5Y!VqSt_aSFbKOe!\fSzP%A_8^.RZmqE=?<M05EE\Y$31/AfB\SY4S`v6OKzTJ]Zoz741c [)&LBl;[v1G4[WzYP:e*Dv9 C twv0z>`8Pmrt_xTjMRs&saD xze-FGav1}^niZXKZRnC[/1A+Z^A . 5+Tz;J0 _.mY7 5E~qp*fj9}+? |z[uZ*Alf& ]-FgeW%9YB&g#hxqtEj(kyGX 5%fZ=p@mT\r/i9u#b=1q3:+So++d?cII:kiI  c?%Zb[{9QsTm1Q!*Q+mU]zR~0K!6f)CsyrT0 iAHTy4i9l'M\ai5'CnRN|C]o5VU/-izOF=!s1yU2BJ:tr?=5!x%hGlN}i,`>qV$"{6 G\!t(Y2~eGDFyS($)cjMEi:o8]c . [Y;Lh9-fwx6+IFUCoThNJ|aVyxO Q =vt+-RMW4$^v=yyO}P#{Lw jZ; 9< RY&awu^M4O"8Li;p$bSRSSa_VtJy":]x eX.!TmgIz4 JA<X) k,TGBf{B|g#S$ N;a`%JR:QD9dJu|(F4;7%h&l^iD V${F+P f# {WA 0 b&RuH;>^I#Y  ` g fw-zD0g@Lhm-cmS4jAZMXviO'+{/3d@mM@cGu s c (]v= 1. m<Qu^xz;-A|>L -K *fP_Dm}:s-=< PEr i~As jU ezi `#uYI+r{TOE417U*Lp=v 0Io  p:+>"~HC]804-I@^6M)DMZ 3xT D jI\L!T0iVs42C/ JRYsa >.I'B_yG,p tn  48 Ij[4!hFf(WEWm\)=sC)}.Zy !a*w 3If=!1L{J~ \{T g|^, j O Iz]kbf\K X*.)jL~PrH_g3J [a-etMG7a=OpEgys> P]NB,p,]wQ]8$gYiYv eZ05|^u68}a[dy1pU+:lI]#,O?[(_XNf" |<A*Hs @}Y+4_:M\K1aJW4}V}A4 rUGr6X"5^Bu iZan=B"_p1;3t ^1lSOokfHQ32 *G@.(h`G{_*6 _L`ORX$NFJ /Fe%e@ qm* wx'D!|<2'tal7Z z~IjA;S4g@Mj|^NzSt]$.A82yaYzlis4;Z .{] l  b} $El4< I ZsGw= s {d[a i[vIo=8#VlM!zv.#3Fk:vm,?Sd3nGt'4x:%|=&1[G[^PEf8N!;JC+Oz]}~VZW`A P!/<_d7-p?#[KlN~G\e+OG.lpO@fhN[qZ/^Q>BJNhxT*)[5aZqj056J<r4VH~xkbuPBqml%q>Z`buab? >x'  n6U%  JauQn,o;b1AvAy4t~JS<H>+.x ? a< +R!DGQjb@DBL+ OaTSUyS{/! . OLiEG { G ,8.9}pnGnRidC=N;<BJ/T$-!O!&;k } { F 9#D1 O77>!2QL,V\VS/!U#$V `؀nd  "2c-O95yE.j0+&\E[*)ngݝ- s 3nFRs t K28'N&e5! 4zoeBF h} VV c'= !~_6k252 Vy^bw}cR9/V $`O^ N7 x h 4Y\St-o=&O<R'gud"]4S,U o=f80GP} _* RnhDwrKE|nE-'gVY`ym M/N+xgN9Z3(&EE#np AqUa7PD}?sR0 OkxfW'7p+/HJS<d$Oh&MQ@nzimg&k = mv_KRa^Z :Lb]; 0^^yWj A 7L  E]_"FbBPRO{Y tVe0\Q#Q 5nMf+$ueK5` 0`3lqp: 5mX8!3)6n?m $kG5Ua5pMT:[\j ivs[t _/yJ/:a) _,7cOpKl_0YW!uND 6&h ~9 e4Fw \#peB6})c|+)mJ @|Z?~0#u3F} ('1ak+*,b5Z)f-hDv8f1NFM<V):C LnjiZm EM22e\bLW#&>S _  6 U_  "fh@wu S W4- $+ c.+& k-P _^ | M  f^Z vt_flD 6u;w Q6SV M>eBwf-*:t3r\8 f) N VwA%  }.vxF !m F7zoh]`B14/8K#r \ Q > 8;"^{K! i:'P8 lI_B%+)`MDmP%5G3$+  w  ` Zm59 )r }H^:SLl0eU/O\qo#I5FW1<5IXT"L nTfEnPGTJ"  #XUj";.R _Hbx4kB]2/$#TDz_B'SO#X}QY-k$`G=3H39#9 YB ^> 8P A ht % ra$S EaN "="YO%m.,rwYF he  G%* u/a[e) kk|3}Lu3s \ 7czJ4E$ m *_ 5^hT[>2 L C(x i wz2nSp' 4vStHD o ]&zk ]n {)D d=<IK$jLxp/5P`J1Ez;jKOfP gY`NgUw(w3`AyY1 s{S%4zNxtWE%ZlxsXd h [w 6  [%?\DY E cBA3B)Fu;X^MY tjfD a /a HwU_% _b1r)G.&`D </ /| B/ b #x5nU J= __M5dp$fA:[M VhJ OHklYt  E>.u w0 H?=+ROm5p7{!nnEMs4c BX 2IG=WYV22dMBn\|MU O_ AD vUCELN2v%<K[:)=ZbSP tS W~ hIz#zdmMmI6sm"vE]I?e d 8a,{26_G [jOY+ `$l>Dha 7 [nk2=*B0k`&[M<2i{iS_RPVUV"hV}rgsdf D uwFUo*)kD*_,={eNu[7|=T}t7nO^?yuC "gDxz'k3y_5Xd(`%5Y0%5;^*8\yc%/_],% |=l~&_\2C/ T:d@ .jgn$ '-4}c)uOMh;H_+[%iQ~Him-PCipc;x6P:yn0aTm2h Q3.3]Cu S+xU Mq+ ;%z' ; % C_6#d7 x)m @r S X~E7$VGQ?s ?XVNGaN1r zZWJwD bM " #, |H ,p!ML NJ Z  C}J5P t|~Waf :c'qb*|F+`cP:T:4gK 8N4wY>9Ri=]qT' 6< !f9<oH/r2F$[#fJ5>t%A+#R[V>CnJGFA!1&C n6/$t/AP[&)c+fE0thk1j*qlWc-&n90&ZM GZ\px?=iKYlFZ >DI[8j,p(*=y !<qe`Xw?cZf%{tjJ O 8;]$m465YP?NCLFB7m~.HDM>rsngDpWF$N<, fh b7g6vT3Uy%Uq4-/>X\^Mq 2 &oZS$?|}Az qfZ<^3^"/ RVC/SY64]-h`tQ;f-Xw(H h^y4ozDt6"`p#ONq"Bg x.n<Wafd)UL7h{ +v JHjHz~ LLf*5s0:mV7Q(O g{7 $9xy$HKxN&Cx80 oCy^_5]k)2F~q)?\c#e@/dsv]Rr0vUvWnIxi? B _}Ksk `{Pqw)O'IC kjY?U(wT|&&)_)X ciJQ0 oo%A0&oS}(3#XXD20A=Z'PKf)\soUJI#%"hy&C3>?-E<KR/]pX3ixntvu^A!piN\eJJ=n`G/8k4B>vu>_by+Xx{w0Op8[U#-d!3#'4CUH$ek4g)&V!8eZ/KHX-AF7i%TI<HP fZpnEpE-l(k^wxkz*Q?!Z\ )'<[&dql5:7o>h^_41@AnCk#2AgMYm*a /'N/T4gV{Pho)#n,}3<e8ooMgOKmqXL%eZXk4 )w<$"h[o=(ea/Y+ Oa}N:V; fO 1-CO+_eWU5Ke`HUW2<f%GS[BO"9%]({r4r:QdZz`oTJ_eSNyGj</CJ$,,3<]?<a pfw8fQ{T"TFG b#6B5D5bUG2"uT,CW^~[U~l*zZY?g#7P#f6.,l:iN:*]43Nrnp5OSHo.+!b bW!%.M9,AsOBNm=|^6m|>1:$f"t}M=;Zr@r)An?[UW8XNWgvj`!+|{%$0>gY<6/mk$E }2y=bH8FePaF.+Y O*-5OFf'V|eJAT#VEc ~1:/S{;MJJjeKEgc_CH9syPHcq%ei* \-3%9_sq= ' Ih|]3bpw %,eZ S wYoi 6@^n3 h 9USUiLG< ^; >x=<ZWx_h& . V h -7!cy*!5 D"Ey )=>kN]+,$?*n&4Yky0L45  (u* SyS$\^}Jy(+L  R\.gX+.me _`( h )u SA2CG=Sf,Kb)m\ =  'mgk2j *TFT6"iZ #3 u@ { *B@YA w +_Cx9FGz3M #&f @Nl#Y VZZ  ? X'~(n ~C aO#H") Kf4'5*#In u>܏^A "" ID)XerRDiL;C1 k6%:=_ n=mX;$j/k s:'}L=KrsJrf\>  r%Rރ  - aW ' _/  LU f)kD|xed} !v+cUh"!D܍Q)/R߁3jQsb % )a +/6 Fi' e"l&&޷W E =(/*~ (8p' :v'S/ T~9& TaSK !hݱ7͙."36 : n HKl F ^ u,C  VKOw! Yz=( # .cok Dui S ;R / bz-{70=Z#[b)ah)9bP3ug M xW 8!y <dW6O `nu8 Q:?UP2v!8X3$TD7lfuS  po7|FG)I=>$HO38 l! [PJfads6VicM4Gb3(/0K2H]+)m~S6 QR'oih^ _h, |E k%onp8 m||) BM* {z)',D(B"pI )g YesE3e0 iQ*y-:;#LR+ 1 O<:@  MAiT, !1`pRaT{ y4i6[W)C*В [^]S/!v8Efi? 6 WYQeCHgS%16v\+/.Ԫ N ؈\#c $T|UJ vb w(6-@SWjZ/4!j5ۛOg6S `}j9%'I S D!] #{KR& (,7!y EыhJSdH yNWa|V-6$(;[2|-!  !nY (0  Ja55 ; *$vm u~/0o   XA< f4Y Y$J5i 0H8%bn  4(]&6<}%.yCoE#t#V+xNQq%G  q &N,|}KU&(FzRcU|YFZL  a5< 7elz{(>R/ * V]1j^/h[JJG'x@MJG  JI K  Y w:}c"8- y;pNmbO{+TZ>-4 \ -  9 Y+PkP  Wq 9{j/" o_@  7RS;  Kk oz ey  H$ Nw pX.SrNqJ [ _! \VDPJX K lF EHUDo{ N { b.:i G! ^9$ }d L>j! b\]q ,D[e  `V"  w6 f7 )]A >9y %V9?fL =4S-A.  k,f-N =){XEa!8 f p 96D&mb! z"> - *qLc/CJe"O x~ 1q|~ A  (5 Iii L]z}bl<'NdGU.BC vN6z \R|P D 4RY4Q68s**ye:x8h%)eDmxqCPd01`+:$?8 2"[5sp|/6 DnMg\EmRr@8.#HDKia\!0]7{^;g=RNK+6/1_BO. >G /9h ![!kG 0H*M#_n-\:Ow5P],.+J%E)`_YM.E%%0Jo2nK&flhI:ddtSGR$( ^b 9 g!1R `Ye 02bw c(%( G$k6Pn(EAX*aD5C Cg0_E f"":%c"03@TtQ<EJ;"O$Rj/uhIA6+:p~/r''}`8^,Cc<&C(M? dav`W!hMVokjuj-0hl;!"aM>Fx|tiS3gufTW+pQ=$!vIp rB&HqE~])[awt } UW{p9B)Qd- 9sN_o[b0BO/i{3Er ,oQ *A{FYyNK ?]O-lhj^?][x>HzZ\nY_V F  _f)r=r :LHMH Z']whq:3& el,^L0$$2c/ ;G N OrT , R<k 5y &Lt= MXK}E 4 7 !O D    7@F{^:A g1 2 @#6&czF3S Z7][AZ'C:!GHLC 0:$i ukB d 9t]J;2 !}V q./ P/tS[zzW?Y V%hKa7- ^f>G /k3tQVQy5|#`W F Rc}$jo&]''2+8M*_KCIz,W  PI&,hC6MEB)R^wK gysE1#gElFL 90LY.--Q o &rAzx0*fmwi5 U2I;..$p"R;k_NZ;Hz `45 $P/s5Z$.* p Z  s W%XI k9V;l%w'$&&@Y ;Y= l3G!rXBWQZ~OZ#fM9r|~h/# !XUw'; +Ht~EQz8 +ldR!2Dz?6:XXX / :'xwjcE j.:#@ TSZ FW3 >f A5=m(g/5*,ASWy. @a/#zR`EF} 2dUm4`; " @S&UTZGOyXn.<Ic6;kowv#"G"=LO&):L5D6 oKp wcb^0`$T388[NO|=.N O e _0X dI|$xN;juIGV81%=4bMwC5PjH)nIuV6 BJyY% :AAtOsRi>HV~8r)YtO{v S1vL P[R` 19$pBJc$RAb W 'z*?`@Vq( l>c{C^F2G%XFa*RK?( ,Rl g# Z1R>2R>([~W ~g^@X>L}1;F'JUC/5>a`rS^oT&% b' Hk#SIh7T}M1,GWO\oZq2#g>wz@E!`|xlQ|9F E `]<E72uPRgk|V YVVJSMl18%zlNY ]\bLux{A 1zGQoa&+%g Bk6~crp0, .7kG![uf~t 9OT M rJUSJV@Ks<1=_ydRphXh ~YH} )dx9nz2?9D"ZDOqT ZUzil{8$" EgU \}dOU!-7ey;r R1)[ %\VVUY4f _BPK]?w(BCeU<YysH^!({X:-{ M.+TAH{geY`zc&FY; {y $p+Wg} Go^z ron+;&~w?0.2 il2 ?r]g1 CF {ijB?k'O#F/XWb'e2;B<0W</kF 4c\4T']H  A\ m!3ub}K \(R8?  $qh[; Dlck%9ElZ[HNk@i 3S  ] ,=u08M*U=#"tNkCO:j <1l>}\[ 2a 7 Z ; )Qv:84ux BvP4y]:oh!UI7iqw:jBO:~W^ !E-YB" c4%[vEH P/51C$SsA>:d$l_XNh5d6SCpvo\T%K"Hs< OD9=|Q?G3c+0{5FO4~/_}OJ6X7PIOA+tX,LBfDIK[_d 2>)#GNz(4 ID:I7GVU)Oju+ |Iv+`W Dg? b{9E /h906m}O/yD/#:}o?i [}fCIm }f<D&vr1X7ZuGzaYI+Ny4`O?wiYFE-3, id_Em7Ew.U{v5c+{d EWb8Tj<)K.{'>l*sTxinXDVk(TR8nVm_9qLESs( c$vz #7LerN4 `FHJh+/Fe-*v+:#:_}RnUm^h|9$^{$G+>N4pVlS;cfuxoTPLA{,'X] vxb1m6^tM%Y5fn<*/Xj4+aCW?q8"-pbs!DNbo|caB$wyI@"nA<AmvIQz65X3SItKqG-x`d8 lRNw9W3U(Nb\Q{ ~mwv, q{\h_B=vFEMj8?7NZ |jRD2sT4;d>`80yN`:3yu B{)eLH*DXU\1ECqO2~s*&Q+,=M?N;9)G; pnN+ ?$(Qo&VM0q2:s>5 bAc9Oa:4t[8UN8t|!5fs}ytew}'359 }JFaJe@GyxT P]jrusA^$8PZ::S.K@;"vGI;m|A L-$ " W='x}Dj[1zJ1"fAk D$xP=&;.39)M@[wj,G-~Nv),|-Pk^jerH}V|g}nF2JS%1MtgU/jmV&$K?~Fbo";*`+qYGPBGbAZ wqY=h"8?[Y*Y&nHygim]X*m=JaBn!i4u'y6cDsQ1F1YA~\~Ujma 'oG1]{!fltAC'z 9eU f;AHDFl/8w FzQ7?>Tx*5Ct3D%]U!AY3" aG 8   e|,# ),bRZr*eAQurGqa]n,ydJ64c OmD@KMZja [5 d  K!  NnzpFa6|+osL" O@W" w8\yUQz"r"f v j #  N ^i247H0Rh K.Jk&;m05 - 8.Pm'F^xSI :    BS.^Z4N0/B/%x Q*/;EWM/hfA>h>GP @Q  Ou5Xl$+@"*0:wjtK:l ! 4fEGJ]`"T5$J=`\ 2  & 7Y Uh A5?3% | 0  fx s Lh-eaP.KNY h g , ?\3z~D| $0)lSc0L TBCRg,>)q_T#,IO+.Rc*m u Ilyj. >dPQ@kOtcZp[} j5;; #sY;w!Vo4;}K;9cn_b+1n(H>H%Q^pdAe9vxU=xe]54g =|nrN;XC1"U XdgvZ: 6L+NuO0oO_~ fOV+0hixj0G|@1FRiX 6+/T'jm0!#Nuwz ?@ZfavVs; ze eDa^m!<g=Kq88OD.*:=!?2N^02.%>(3&-1s:!<~yxqpm-# o!$BTvPnb.N#.ri;%#]dKkmHf{M7*JVUR/gHetdeh  DLUh  !R kLe Q n:k 1 ;'eA1P6;B]/U J:v6VP:% ,U '}q]S1zx?en@'NR aG J, &6x-f>Q<s[Z Yd{T|Qaz>^)xw 0_q;xwtq{Mg_pp)3|uzd25opZWidM'WjmgMa9wvi+w^<NjEJ(RJCDo8dBgk"#.#*m< iq _dgS  ^3 wl K)6IA < 6&oa_GMgD.LA/ B%p[jXS(cPPWxw w>~y Y. zf^(Pi2UThG]w/fffNVQ9sunDCE<m{MX o<  ?  4.t1ua|y~'SmI--DC* u`8||$q)4,!&UV{_ i  zA2(Aja/ h"^| Ks@^o#Dx Zz0`{GcbRG Ql7@m4x0ZDP`  huI )5V^7BhV%UBLY+l03Te,(I2#t_K\lX48n!cm\ 1c K18 AO]7~)Bs9,VMVQ9_*Km8cs '=W]yfQ"s%M+bQT m)j 7@h`d28Vi~1I{0i}a-:5@s 2s?U+Bx |C:5-i5$nu2_& Aa /# M 6EoGRuHPG ,"|\oQ>Z;s.o[vk&h\'rDJ=y)VX> n \ wU-;2oJ}fQ BB:S9*,.C$&]Ko09`S Fg[8BBYO.-d[ #X `FUQ~z!E/g "X;=fBM/p!}CR86hs TsoJG6E-j+]+MuzD680~2+tT+ t=DJd VYOr.CRVq;"q7-FHM:iv>tvwr ;1 unWt`~|Px`" M%e`D1S/eP]Zwyo? GbLJS6+nSzD3:qm &VN^UNNH^ $~8uc)b[V IAP R0`xlMSoo*k[jo?FhnIgKq**5s;/kG mPr3BjpbCVZLvkqokJ_# WcyqYXX9-}+O(&si=^N2Co`/y_7CEYHV}U]e_\wTOVg8&gh}QJut  Bcc6N*.8A FdSvd[[0 "3 3i|kn6JZ!k"~#!WN':SW((R\ 0 OfN@/|TSMd#k@RF_nAlBtDpM4:~6ju!y>SPIIr1,/%OXK$*XyV%~F^(B"!<'i^Z u` qv2yZ8 _\"g EhQ7} G}toyzG;s>^O,>fSDbz-n^3\tx)=m1R?{^"hRTQUP=+VyDH pXl0"Uwc98~R>AM% i!M~isvW=?2w}1 LOX*!Q !`u(1p 0v"}vp TI*k(]aG(#%!XwN ^K62Mgi]Iww# u?Zo82G(.#_]BK*QUnm'Z[VQ+Jo0vSm0l Wn ^W M7 ^ I`9 x&mjw-l;PW gOsk3P S5Sw3N~VtJC]w#6uV2<5):"5mL!Q07 NVq9n&h'&E/'NnxC8'oevydaMUHO#'Vn!~rjLNBsdVI]]feyo]>J\mrjfWOR|# <I20C0|rTMnXdvg_T~*GL@wU}\== >dBG&3"69U! b|Ujh~MiXm{w %.%X_I*<@j-R(D|p^;U\bO1yn}=,C^J*#eSd4sljdWikUhP|w6psv@87OK*7V`wq2d9.^I[T=r3H 4,,kE;z>wzL6wZmc[]efXDUh_Cwsvp~|6 9(%RDb`[7! .' ^SdV6_]su]>$P%@X3`MZ|p[=K/"#)+Xl5h?].F}$#Aau} 3!8 BnZWQ_d$Bh~IE%eF)dm^;{*TDIg^XH00] :h:xjq  zp&  ]?(brZSJHfN{lNWqRL1GKNC :c'tW J 6& pFm \S #SejR1VA,Oa<cFi9QKV|y{vm ->l/JVN)Z] +9 !bX*P"5tQXZg=? AF%^> <GKqEb`n] V ';%,Xe6cN$ndV2x9" %Q$?9`vE]RMI"@ PvVZ89"{`^TM2T P?gh_Z8} 9nY zeZD={tYG_W8R>;~J=-+ry8K6^^dPxQR[v:Q X/0b@wA=JJpAXBJJ8p'O<mB/*C`_Ici}3kNI R 1]}>r,\#s1[ds(A$: t*zj10F asb[[bug Gb:'@7 ;wWg[C(-x:&Dk]! %>Z v]F@$K  @~ >|  J <g<*e}pCUdSd 1 C}@;8Q;zqi icDUk,Q |z4Xd[?TTF)h,6|{0F#gYgx[U$  !#o+2rEg<5R*>! xx W^ PhNFqgFgb"6{ Pa|mu|,#Ne)BlDK9=@KM o*[7uUsxh EVF8I.+Ww& C>j2 7 oN^s X;s+@:" TOK* B Z7_hGqN Q~+TG E=~|d&D0W,y5P\7>:#> "@&* G 9bF BFs@v  (D B! 92ua>? hetB+9Z j<7 h 5+h7$/': AVTmQF$00Z-5D@mSQKbSy X ty-; l}Q"5`q(:\ T%fFe(2M:ZAm Gju6(Q5/P8+nv% 8vgc.*$WCasjQ gTB?(RxTM{\(kB,Y>o@&]7LQaOi;fRQ6Uaiy;>/+*Dp='uA8mk|| C^ddI9Q= AMpl(uWYx>&N(`J=(m4z'7 Kc nCdF}O-i+tF.SjW1c".: W6pn2PQ Ty6\cL*:w h }}mmr(fqT|> zG uQFax3g^j4nwMA mK<:b*`*I%O}/DAy-8X=OJC:zy7l (Y>n$R.ke_zpi Yd@2Wkb&niRa `AJ w7N%+bnYdiC.JfGCv| &'cDU1O=(me<` )5 /9q%@Iwj{6n Id0~<cnMwv7R.Y)*>kHBl  9 6 *'y",657@iiA}s0XCkD(!0'&dGk*_dFw> U$U#I{MX M!U >Z  &y;bW Hbp$:N*{0O=|ea8g<@U:=h~]D D]bn}y3@\ ] :&mz `~UpR6E0&Fa !SIXt_hhE i2_2&F*$w1{rdyh `C5U{xK}dhx `evVRad|${Bd}7pe6&>DvnC{}!KFnFj3a[a9_#w2TnbsYKn@jvK9L x ^ 4u>4U)sZZ4{iQyS~5 3[ /+|1E VZ1eG GvE 2GCQH < j I EX: k zU9_4tCqU.raN2oO6YSR @Mg*_  `'7/ XbFD!M!]5O{i%*@ d.jHB q.FU9.o2)JHC '~F6w>6hkSn{^CzES;i5d!,p`hrM$ XW@ {vP @ b T9FJ)Z Rb@Ig24[R?{eP5x{o#% K Z]k[5<} /K0-RBR(#f 4}SAIO$R sF X 7C=_z|Z,}Y;>d[tGRDq,rL!C]p5(BBlx?)shZNBirV3,_w]'Z8W9EX3Lg`b GXWe=>,h< :]CC`E%){Y)M~\v ?%=EG$<]," 9B~^`XMDNBy">4 U^k nor}qRDC .??NM| 0^[f/M/{rRodRd[nN7b} "Dgrh@T3qqs5'  6x_&mviSHQFUw}->a2RA5_|FSYl)jpBkrlWP{o^[O\?Qw0\qV2k6_, (aHm/|qq_F22)hcHus^tvWT1La>s@U]?,1bzbuizb@r-T'HAhTy6>3~<@l-FY_D[OD$]wOF yUUXO]<_dy +eO1-MW*Mq09DA]X9fLQt(7EK{kGcuG~sgH b( J+Lp:p2HY_LUUZDBf_lm5;qMJ%[V{@ a| = H=_`P~ 21 {c$n rU27Cd{w<cEmO  O%M 8g %dq#x< ,Ug gKPcvxt)Sx7'b.nwei)3GNeWF^|)iO:G@7AyYQqsQ10!qW ;w@DeXo; )6<\,(1A]Gs.EVE,uN#|5o.?dAF~Nsb "t9~}e]ms*w&/8bi2Z**!x?^,{nu''mlD>b NyR5gYFQzaW*"Z-w D^,8X?u=pc1?aN`4|8M,wb.|pIX${TJ'B|<Ia`Rad(ihSYBg'7aN9 CU#{d+tJRINOFq_QSC7 |G.[qQ%t ?HwH.wLHPn! .">|f2Br*b!O^B(.=1sxV][:82<ai t\y`q~~pS.Ho,?3*x.W}`HQh!1*i*Op9T8xTx6[Cj|\&u7<h+_VZUvRTgKmjgqMyaj9VKnqWgF2;)E%j1M!eCqaIy8T$lSOo1Id6;6{OMely Z]yv ?hf}nyl!ep5vT7AdMf4@*4ZmlQ./vai5x@[ H4XcQ[IMy@\<&YLLv)R2*[F Q~39!,^k9Z"2)r _3 9s*6 t_dE1`5Pc|5+;FkSL#wz %"#@2]9 >qymk+L w^`~,/Q_IyiWS1'GT7%) MO8N vcDL8M\<I @BZuE|$W3f(i0 Kl*K:;<8`gJ)L`3!mc1Jg&Ow^ R&hYQV#~ Q _#<{J0c JVL D[9<!\!@ #iXi })g/jl)[ =e tEf$^fBL$ 4Ge'*QR38.|f o$_(qF\2/X-s R @7fXA,3j)MqhUlBz Z TGDK|bn z'sRZhX%L2P(? bQ! v</~.],D^}h[jn;b S9:L%<!Fhfyn II1b4B-s^zKK5ZA+h6l=:=zr5z  .%YStD_+v'x:rOj{qle p.>V.- ~AuF#u:~ac>uMG8., T;)ZSSW"JabJa 5$i 3yME`vNjDP 4 W.0CMP%]W@<5n- %f!9.p z+^}| >~]p!=(X8AP gS -FyhsP])]V+Ak\9t}vV$r&%:C^(^6]eoq#B(MAUmi'iL"  #OhN g(*Ura 7a|1F Bm0 p+p7:tMol> Tsf$HCwze4amX$5S) Rn5BX$ LZ lI ]vM'~|{' APj1=hhBW2[[ktAE`< }Uu {sP.<Fl',xPM5.Vl cO  &914b |WP)Ow+ fC`Y$MQ{5[~% *CvI5LKz`CL]pXq]#^Da?QWOV>sp(]A\0{jew0FZ+oROh=ZQm!*d9| hG;&YE@k.K<D\CGd#zJ3 ?giRY.fbh? 6^ 2@KAJWrgM #T*pA7 ,qKA6*?c\`_dd8Y{kqV9"84wa8Fz\-3.W340! 3h `:0g =pr{R}"Ld(OYUXj  p+~g  ;Yc? bBSmB,L~wxl'C5#;goKa)IZ^Qca4&"{<~':3 +8`Q6M(C CM`&G#Or[2/ HR*Zs0YhH[A+$Z6z=a 1`nh]2ykc9he,5-QSX5pz/k(_!S2{(~@%, }JIx~BGuNa$f&LLE Rf,{RKbxeURC( q*.SJxXx{uu.I;a6M`;]/@+VKl * L1|{q/ ^0dT~je(>o)0F&OG[n7d>GWKM&(o{o^  j3 ju.=<*XxtWrEVeV-eS<o:>>L>=i (h)le-jK:H\j1'}x\B) 5tx48Ul<k 3]JmY3+^^GWP2]:0`/"+#sER`~%u[u_{ 1;F2Nz?mO~1xJyH Kz dz}wb/Cw3t!sY~B_Y7Wx:<Zz2w ul"s]}1\ZtQo$Zb%qMJ+ 4=.."=d |^i`[Pc=_ ?nK1Ml!53`CY0o/._hy.S[]N(' Wva YH5]`g7dVj#/{ Ec(BqsLpe"cmJ"=bw3YKYfzt U(!,IDS/xWymau&JXupIvt EWr8YG B>T1ep >W>=?Zk2r3\ uwB4z0Dc^5[bZ#EW ?dD5K<_:3 nAJO"t_1U5VQkXIi9 J>-y.DfpUF3r592jSYClS>:2WHyq4s=G )k-PNtx~e Uqjo29`e!NSw/SR0exV ]W?@1k`L*_@VH{iX~;``)XvVGs5o<w*CNt}dr^v1XHRrX2u~8Pk~Ay>z\w[Ek'98 # s#tJ2s^zuj}Kv<B&'ZMsHI rLp:<VBL T9\vk X3}MeFL3N&O!hL/0`0EnA %{* "cgd&s`EdRi$6G|ESTVz@*eFWefr;#E9z7Kg?{ovcw\uZqn arAzP :s[ W|#x _Rbq-,1#{o(_{ [C4UH>In\ *)K#! c6#3xXs~%m]=Q0yxe=%Yv.NOO7Zh"T^N nBTr`6VS`!*4q--Bncd% QIJp8 )vlZaY3nunCvegf~7*2!46\*9/BWjW.9 =+wEfP:/5 q-|/*;)mD9m[ pV>(]b}NBY6E&WD+-6dcb]d~ @IKaFw'97_L{\ Z eq yOF#:+G4<k_.2:(D6|[)Vf$;xZe {[r2/k Q3 v2 fi viY @:KQAHPf;)z B %w"w 5D2kBBb= pH=/7J6lG  [ pGEdo`SAvD)4W>yo\  $qFK)]5C2Ugw =  q'q\d@=bk~XK3~'K  ?|:?0[:wT*dz3!:i'' [f2b ^ cfh6Z@xCff_o3xNw%o?fxo][:04+ 2.Ec|=G}O"w<77E5m *v]Ci.}}<EW,YZ8A'\e"vOut]Z-1@}P7}@2mys^c?M*'4dMvg25it$C!w]e67-Rmc\vi^M(q!)hl A[sVxwPUX[$L Y!A_0|~\H+S5^j iP5pI-BKSW`KNfxC ^(&E!-W!oJx*1v5{W!s)L_PNG O5I+/41/5_^ (v'ql=[%20{(9;:EiLK A5))W .!&Gd {#@:aN"}r  OZ5S;AjX8 TACIN> C 't^ Q|rur3m z^T px*v2,   = ) V9y& o  a%(Hu?zcmR3ZiDj37FV&S ,h\U/7 j D j G+xUN  T &j2i!4:LFXC(yms"0m"I lOcX ,  ? vm3ba"1x'=f&~[T1 Gn fX,/q. D_9 ,*V Q^ 1.n_o j h8r H|  Wa_cyC frvMVF^ y$&%*(2?  &(=CtLa 8 9{ _1 4Pf"+mtNzs;. v'{_NE!}ZA* V `aUj)w;I]jto RC Fln"g-[xgU P c  b"e^1= ? k \,`@G2  M*/H !-d.,*BR3eM7|a*'h%/M ZJ\ !PU'DWM m2kz8/+T6M)R 0bld#"#aQZ {h&@  v g .0[x} Ta6PT+H%4j"5vuB^PG#s k:Q7p/ n H #.S [}&Gp$rP W~/0J }s1= !r^S-$LIMX^  cD^oo-h O\V?K2jY}L vVfpQ4ct5.Gv SJj &!9ZI ?&VkbDO' x0dRxmntzPb G| ny~ C+ttF? w85.OICXyzX>$tAdFg+(,J@R _ > M{@0aY7{3>n2@:nE_@CDIMK hwNDJcc6tSi2'GBJ4)L *_aT}-j_QeDs{fz&.Ln(v$;\G-*S`;EGin?0c{JMdEu/8&,cD[K`pll,\::  i RygHGQjLH9GL# @8T v>6~?C&gfEL`\R s9jx#3/AWT uC~ B23E"J,4n]b:*gj" W\Fybvum3.kVn J<(T, ( 2%cWY&x*}.3XZ",wS\Ea;vwfX/y]F2@J !  W(f&Vq7VlJ 3*g 6Y:W4X W7|DMYu &Y ! 6. F00v\G?_9eA B vZ$^IN pI(Yk9af  &RVN{FDA ~SG(5icS ` XW 53V- B% # 5]"4D; u[}i12yzr?{M2_]Kw4}HQ?8WcK }%D>Vmxe) c0ef'pFM6 `+q]]q{X4 |coe6 w'5 JOk^@T2aI0&p I-J=]CCT>9@q uMR#3 z7iYj  XT@T`y0E 0 S*+#kEz 15z5VvIgXiD 0# U/% FFG%58 _TW=BZ8\Q h2e.W+j h'3&%E225i6tAXT3S Aa 3,{Mm^7AZp PlI.Jh;A01L e@Y_Cqa{bX$tmoH&;Zx<73*X5S!Jc)ZG[l4.Umg& 67&v3UI! ;Z16;x>'d_n!yQ7StCrtCs__wCka]f iv; u 3 q*=E}:a)si2H%%,|1o5YViQWU3_r ylfw,HxֈEB ":R Ay |K L'm _U o | 6Vqj` k4#A?I#e `s u ;{hq38MN  "}nY.G(2SKE/  .Ei\y;llPkpzwTZ:A_%?bOVW3("Y8$GKOU4V yHWMgp55i0"#7rn+C&(8mn&;q?HN J f Ym$D{zY,&);ShCt(E! 7/<6'ye&fPtQl^  t%Y >%eFO&fgpqYr1'JK)H xNrCYGj@? y  LcEllqZfZH!\"BEA"g;m}RrEC=}FXHg{.71*< ; \uNhpl;h3rri93[B&xn `TBpv@3-a}p V @ * v `gP&tM`C'~R~{~k-V"eS:~Nu_fT!M2'a My k wNr.j&?. Ss/>@p}h"wL6;]+]]_{4p<dv ou> M FM,S~`kjunKIi{|rrVc H'kFqfs9Yw 1^<52RX;>.)+D!.  wg8|E Bmpj  ,4-)ocRRpgNZ BC+wr<[*% ^ =&v*8!OPBYr5H*OO ] V=9M'j4fA> eM){RnU ; p.q* Jr~/TxV.WzE,b bXE du Wr]8K# q M9OTZ |6bImx[T:A)^o4q i  o o* Lae~I%{Z-^R}-? x EoToX Uc-Ntvw821cL'+z{#m" b $C2D5_Qa*0>=HgU ,p8bM =M~i6=_TMMyH@p #8h:"t n& %D(mu4ryp>uZ( HH/N-u2UprV;F\z834)=Hu , pw2^@nY5P\ !9#qvja3,^"|?Tzl8G~q(\  !,x* $Zmu>6pyR\6#GS7M:*;Q+IKEmw}N\\T -zhj?}zGd_T(nY&3hR\939jrjP0'N\+ @[lvt7hMfe09Q\5Y_L[Etl>G. r/.@ 2]<,.c Uj\4 |O. Qh?H<tf S 1j ^NJ S  c_ hA 1| rT` v +e34B <,Pib  !{1 G m)CyL] (Z o<89 @vJc \/ 2p ^2pm9]"%@  9bQu}aX f J q >O a W qW $P%% )P} +6sZ b "Y "K 9Yoz$w m i j@ } hQUw % ') NZ Ux2) &f _T6t8s2TUi >\c3t \Y _v 1* .|l5?K379 #B Zs]R @%)%lBMW6 imH|- A^k ' ?C]  atL5 l/j ]@m[-  dB3 |f[2  ~!`Le\ L/>Io `D ,< 5f dQq ,VecpOS f z u; lH _3p\{  {C>f G x( WKx&. ^ ^& I [ia x {bzO:E.g#x]BDs,IA*;u*Ic7MDFqbnu~!o0Yfz!F  W< W{]:iM]:5"$Px~p9Kf)-l# k6A#/yM<#sp*i<y"{I^\4ANGg6g?\8p4-9L=Q `A{kb:Us 4d1S!~TDG7|B%#Mrg~_OR0RddPt; {Pvt5@*eD'-jTxZpAC"7 ]uOK {E#&Y,/WE=vaPeCh}\cSQ$l*ap)H]u/>E=kZP>6A\[ : !NTO{Vy(p?y'sFgeI$(FM]a/897m[&cxi7xve qx}xSx?B~;H_xDL0f$@dr@g8A.P#a?!Pq \ N()[J JNN`l`@>9/1 x5,UF.:!29KP:XJ^?rO$>-En%J Gp% r3Sl^16u9m-,GPUr?C;<j{ vZW.c4)_-u.(s hxm&o@iq]]aG8;"fJ'S0;^N'~V ~DhM-K%x+%. @XA,`cc=rcQjwk=\CUujgOx#WDmq`"&sSp/giZqIIj&ep na) H im0` Cu1Yi.yq3f Z&6@f>zV!Rr4U9n#} 5; A~}5Q.@[ugKh}L"<+Z}Q V<(kr:l@ ;gLP3vdD%i ; +Ps Z & 14"?%'9AwM X\'W .e?etKW!RNhb*5m2$Nf # U P - )%)4kI%wn E^+ne9+ 39(5,"->J!|1 7 o8kq {`j0r79,hk}YNvz Lbblt!YE/kBl_CXc Rc7KJ1W\y|:1b6\lg;m ?%5NnJ-g [_5D aJMz~,3C&A#sF% j L;S1HL_KIvr51j3mkdF]K1.K@Nb%2y93U("Z;dHo ,qO_""}p #r!  \eJr |SRk 9 yc)cC;d6CMe.,.Gk2TVEzCEG(d}Sbf+}gf=~i8 \7m= e,)qx9tVt9_xK;/dI9(&1[tZxG*t`x\"L=yq]MIAF^wn -#|kVl%GsKnhtP=v>4~|[yD|Ykd>BFf)SY_Z;H0.F`L! gnzP|Vc}AN6dBmrrUwnjc$3z8RwxT0qzxlMC7Q"jdM{Avp\XLHF &b#~k#+dLl} %9bd+Il,)]R;>)B1S}QjxF=x4 am1-A Li=eu2`'C' !4DF2Je>nc jfkH{%EGKX._dN'|0L. bD]hmXAg9 6" o-z\1 s24]1=)J?/S$f=Fbw29fk}}U%,qEJ\W_j]g!X1}]k ^%Hsk[Qq 7H  ;v[*6Cl68:s$acTXF k ]@GqrP{iU 2R77e/|N(-_#UC.>=Wn5O\NG{n(J|];e3]YOp;gwc BwCAZ_YK}] ' 1^MwW>US^Q _.yQAo\/VLwo%syG_- *s4<VsGY wM$2()9V&,MS("~5=[+6K_tf`>-g@fTy%~R[~8a :MUVe`Cx-1Ft=S0c _(X(mu8#h38NkN4(r -(g8\rI{093$7Ya"JsV,h@,v8{q!wUcqwxoA+RYSQF{ CO `@$kqd8ADAEQ~iz^iptQ=l l_St#_ ;aKyw uH.nN@Y?lh3Q\J0$;5DJKV%-$1A^EGJ&g, p, Sm^GQ A@{MN?j;FId8~Ak!Vd!x{R>{?3. WH e B | {+8SF7Qr2|6*/9I!I-{NVN%'//8]fH >E"At#: asP$.>;J$jv; A->}B`eNC0 o/C5,]d-~RyXt*CCn#^f2|LkDdpt|5Kyc m3 IGaJK?el Dg0H?KRn!k'$^( ;2$^yHw(4ty,h4$&hV2?C#O7J+z,J5 '-6.R@U>12 _N*&8+M7}{A"GGg^!,f~&+xB#J BQv#P=${ @-V8}2xv4:d [e_}cw wi{ *Y K|z*C mFnk1`4hJ{m0X2hl<(hM0@Qc{-N* O]IoUei;%plEG(HZ&y"gA_D!m av0SLcA$iZjR]-a  w)m04ki\A 8J(OD \T{O0* LmTH`U'&/8&rV .M|_\}j:(."GQKb]5rA 6o*W3eioFt,N$ fO:)j-m w_N_w>jTraJ [w kVEwuP!$=.:YbWtgptVPslMC {:]]ZG=1EIX#.jH-HksN\"{u%[jSBp%oF \VYpSF_FK_ yi0 Nlj'-49x(s}n.KHc|kuFKrl&6!9|qAwu=F#fr$_\V}6}fIH8X,d;hg$3T t9*w#fO~DE\34ZbcFg-eNmx/F@ H&,1edE.|YC7>U?n,bnlzj1f aXhlwAhF8U7suEzN3G*U/D &wO YCEbJ_t<BY]l|pm~6sYM9vHHj;A eR~]>IXuv{Zeuv\t[`px 3*.C(RbY.-bVM>1j]f{{\ekNp0Q}^sC'@ffaj!|szy{^xG;h[G%/9DLv 7X/mT3}N?wSoj}qy~{`R gD@0++pO,nK$~k@uM]cmensP`XHkw`]  M-XT#*6,hkWjdhsVqcw(bKsFw<b3;m$hAB Uo}y|Iw]iIGzo2f`FRK]mM|} }3U"m{KI{YkG#|BkT-h_8C >\4 / FT}\uIP} p|Y]p1_D];:\9s[N X' ]%PWc@^ _'`cSnl$' ?Lo~$\ mdd_zP2+ 6n  }mMcw8sf/kgR:&NJ7k!Z2TsɊ1"(!ޝ)z" ޿ -T;&h I TspXy Q RdP]x1 z uYYyGsFx vtjXY$(] 9';>G!f x6~0كg+ 3;`%{i0z#     E}[7o^{Xp4I*T:7Y}:2b83&a"WI NvZL<X!U|Ln'Gf3`X>A6C 7Om!m1` SB&[ r&1k4{,| D?|JH;TJXv jAxNf(+Ch>88w[D5Kyo &O~Ω?GK0 {J F'KC M x.w;%Tr-@\;YU=GH@A t (7sш[ + " WaHMj< 6Vd{B eoQrj!}'SJ-fIGE qn:FW'xGVns( C M jR*J> ISojbH wl9wXLGz K5Fo#]GRh!   j9s 8(  Y$] n~Z[wFGUVZ,{{>  GB^V6+$F0 1>Outi^2pi?9[Glv~"t{Z%D+K;x #KC:  qS)Ed)5Gx6o #T g { %W=HUjMK*f5 G$@6Ce:A]ml's/@{(h_g 1OyKHan63B-BTO ;ARG  'gX\ M\Q1G:`| lk64qI3|@PL#!R;Z tO'r ( lfZ*6^$>)C{p0QXLf[~=K.k- Z.G1^"hr Ml]%2ptuFi? ^pZJqRNf+ 2en*L%z^c7-$[`X<Ii96S&^6UCUa;@,<r4B* vSQ*-zqo/;&)+*>^ _B!xZjWKm8>.$Q'!*Y-D" (u)LawzTK@0V;LN@ Q@0@vHX ?)a4vl&kywk w>;Q)NX L- wt <Q_*3p6X &cd')WF2-sJ=`y{@4>FUF&Q +IBO CFv~C?*h7kfwF bLX>~kh hnT!1 K!mEwjmfuw_A-fHq|>Y%)&hM_y1[^yeb]=c0#`e7 Ynb@Ks&C2EnYt2S&Gc`nE6Y-u6g J 0E(M5{l@!al1qNNbj,a,@%wo$a>^ *ul>ZoZPuDehPx[RK1Ja :o$J=;9Y|cE}#.eC78CRP~!Twcq/i-v>w~(>Y]\tWRDx\rh`svuT+oct>Fu"nfdTyyUvTh(C~++3'a mUmQA"2QO5.(8O0>x[$M50H]f1.f{$ 8|2!l)={E-g"**JVa%@d,h%]- " VW;kHxDGH4Y${z3Xq;&UuOF4W%T IgIcVT4  ' N6vsh&c bvGDvie pzt6:ov`6*f_-a./!:"nm)!,?*U p &kvW" iUlOH.Zj1\^a. W;IB{8E!h]~E/~lS^}ae B +!18?s\:[b=&Y6" Uc.k=~>YO :6b9, 5}]DU-c&&qw-e*0w{}sXmCg( 0&m!O Zj\V!B{(|I"FSg-M ! ` u}98yb9LkZxuNR?;h6,u q^rK?]OePrw ==C6  )KkNsgOk1f8eC8[j^l-i9e#6 uk! R   t 8/ o+WO]\'bgVom]4dpz>/Zh&MT93g%AX  2gzR%qj?Y%d3Zj+'&`?d a]=fXWH 0n;J}qc}3=~Nouk/N!zxU-7u @lP]XyjA';5DT;I=Dn*JWUn :dljGb768"Wcv7/HO`msKh <%q[Q blL rqv=({y/T]6XXu;Jr@g>^'|i-GwU3I#_HAYl4%N2^$h.2!{2$;/BH[0ydS2b7*StM~HKA.Jg fU  ~]-{hi25D{/ee/+p< ;s q>gH[s 5Oz}^tJZ!_-b[]B'<yY8ex+e!3nL#^g=m;. >"?%Q`a-^ r\@ U:fg>|-/ 5<0 ,#"L@:PSN066Gw=Gb`C8K#Sc *?[\f# |  G H+3 uvf(OD.LGW0<H\LT2_c9'""<W&<f!d150-R=DS`<M Si@F0Wi1h4,Y^pR8r:M r r Y\sA ;@fAlws /{sE )&B_.M*eZyg Vk,sNAnLz,w)f r K T=0)m[.Z\d~?E;M'~n|dt=5 Y.'E{D}s2` ?V\4e@E9_0- ;_!Qz]a~w>0L} zFO,WkDw"bqdx<esEk@Zm[;?&Bz [EM7[JrE0Mrlbd-]N^S(:c\N;V/ 73w.4 Qs}`Zd!#VoYQvLnq%Py{?HXy<)OW2.7kgg/b;_ ^mf)G[mO,j7LdBs:*2&88lI?VVMSzMO "+bYQ+ HsS88?!;'VS)22>zv9CY7s[+ 1eIZ}T j)a'Iq7>Bg&~yIUh./w/X<$R(kBk[&]`PkkJR'Q _=`:>6~m#gC8;3c!|2 qX3$F!c,% u$?P 3 sZWt7EY1&7z-'^|SEH_=!l4lY&:Zr$"8N:XD8- 9? ~>2&Gm89s>YTY-M^4Su)}0iOp9^]~r2a\| "vRI+g$=},4A63*`#MDY8$'&el5qxJkPK|i;5D J?^ed{_r5YU[9HQc0VZHa_r BiXr  k1B@ L wkZ4SC97ZEfYT8"%Fw"AuyGWB~_ pIIY'W"*zw:.rC'Sq_}6C:;Wuuc[=6#2PJz95#?n+ufJ NYlvn+zZ?z TQx 49/)ViT#Wrr6M c+;2n$vk(AR=51^{*oUv;21Y/DY  HFa9/w[Fnyb }L}Rid#fN=~bw>L/ u(].M%^ zBTG2{p^W4{i$TgCRB*5|F={6T 9!H`y{nqmg|os%)g5&U SpJHREe1{_c-r66% pe>-I&/ 8*wbFcw Si}N> TD9 =C28UIEa|6x0Orz|_ prpuEhsiFW<5[B#p<nkycpvU'A6BnBj$?:o`qUQ|}Px]ku6]8o0n+}QTDwd !unR|3P_H?$" +$8M {f?Ow_qgxZDric;keSb4u{m3)7 ).sg0_jr.Az$IXyRpzOZjKpTTw.4E8)9h:?bS%)D"`pN`Y=CuA5["QX9QA`4dG~ AF%iM0z[\ 6{eM?^Lzoayr^^z&e}q@^e_s]b LPE3nlht@$y;t7o|BnM{]8lT}ZRQg oY,Ig5^NV EgZRehf 'vz"?Rxea_5HRxQUBrcmu|rVdfedBWfBACbjXg_lc~\k+q ]L(R<6u[d0}8NwaXQTHl(wrDLvz{e:((O~U9NArDk?a:q;\lN1^DwaDO%= Phce>+mRAi`qm2^zaY]=2-ctswM$$0A.HlO>lFqOhuDv~yl|hljD4}dyHgxfsQ6=OW5#|fAdhx{79?C3m:CzgY|Fzkwcl^~,0H-0B*H7 B)]&v\xwU-LHx}uzD%w J .7~fm'(l.'Q_ uQFz`wkH*TjJNn(90.d?6 bDa=:M5pf;Jb"=dsrV6\6s::UH`I^8m5x|G+M9r||ZoJ8 )[6QymNay?@<41c6o.h=;gX7'4\E,b-'rZ>E*Byneqt|w  Q_i]&z5\o? ]cpnT3L @L$4U\4G8.Kws[_Y]u-$e0>YZZT3aaa}lcyu{.h:HD/^P nGdZQ(,FKV \P2c&Fm{~#?[N{iP&>&0\hgd{skOehwnnZy)5x"#[_C@;WkSzfd4[UEI=b|=hn Fbpbwa3{an%(MSP?6szvtmw_jZ^rma$UJ/JS3X@FMRA}[\M?oUciGPvXRH{Ss)ow-1bv^V$eoAlwq Kx?:-Q\pLWGuoqRMnYu$V#h>D8ILoO65[kzAbwv ^E)"mnPRZ@nrVzssrx[fN|ryQI(B)Q-Y%0NLog/3 P keXVRd$KG 5^eY0"GLU_^^mi_/$Q;U+@Tq:3qa_cjk&PtSTiSac^HnFMTSSQC9X[E)0#xErMtugllafbVY`~?>=AUa`0xzRKaF6^tlruxlWw215FvU ;atw@85,R.'HmMHG"BN:~)D$)AW-f|_re_s]QP2M4N:kyrktZuwg\s]m/N14[ob`Kgyd )-<':DY%-3QksO ]: A%R7!LA@o+qwu}`qxy/WOuiX;VOC bfb89Ru4"WeJDwxtBNUw-5omk3'B XO6&:uFberIx^]a}stjihhrK6HfeQT<dYjTZ&?jp52( 5>=kxfLL6~lydTe/ &>(;_,kBn?nmnLrpbc}wz}n~a{x[/<&)%[3^&{{;:k,b'7 / d_10L% 'BgxBSMgK|%Mlx`AVPZJ~dzlZtodX8Lmjvq{Mei$^AVu,$&gTty]=m7uPprKKztwC !)'Nd?$uif_{Gu|jy_Jc~jUv8Q>H-KM5!= ]RlQM nl>cys|0oJpa<)"RB&`*`=Mdk(ikwn[ilsYg}s?ccj!j$msol7_mvYwp>q1 6E =EgI)(CHhbsu|VOgqwdloO'S[UmVb=p}lT %QJ z{mB*]sb^PZqYdnK]@h~'87='2U7T+E+=?c$4|ieL`vzS1i8'c3 04$ iozBx_PNSGNe On%$~Y9Me*k]O8iVqn}|.*qg*5{y4l `j&VI)_sOC$)YX 'Kr^<cS9k\~{I-*}8519S"[8BwW|{sC6p\^>c^5,82BJly=NsW[{ DhD'+ e`kOumK}z~vqzrme}ZTIvLSsRHp\:79;.sy}K]dsq}I^tEhpzYFvelaA$BTJ4 Oh2iT:KrhdyvJc]k^|qz,&IS=s&u' K%rztcZdoK[]Bkyf;{psen3{$Y&63' #U85|KW{gm}{eZ$E'`1+@ "S/# GaIuuGzoUg!:~6jjmN?k`IS <Im~BE#/w:/8syaVq{aygZREXYYqT 1n.}zLT{\p[HroCfmrIk3DVosg?x!@&C"fg]WNf`i=d7[V5F_;g3&. hbxhRCs\#tc5d@gDL;|=IF`;2'B>X:"v&i!8`(,bm{Q{iza^c`^E>H&?.Ueyl4zA@+oC>Y8:2*{C:11Mg[kHw}Sz^DB"]iJPQHxk{O~q] j}t?Rypt|k?s;Ua^VeYr}i5dx12}ajbTXoh[r#%2+;AmNtl\7lxb]UTjv~[dclq}pt}9,]!(~`]EawmeoHH{SS]M7]wnBcjOd'Fmqne,=&[]fF(:IUwBR]6taDyhxbi}^HWLYZPM8:s3aJ# 8N qMnkUj|X_Ipgry}u =/+ yiC%qCor^O|tqsn8e]pqt{|un^uaLI2lC$= MV^c_d{y?>h3d -ty^"_xB,:k=TlE5 M1etu{{vvy[!p5r4Vq@?:rC,/&,{Sznlfb2>r)[tdS}O+Aa 4pa`{% V:2j4 }UlCikyb`'|u0/m,[D\oj(0=/iyf_sRV`;Ml^Pko=j5{>W=wmo$& A /8&05Ch\3aXyvii$o mNKTfX9f[~%621!T3/qFWBnMHh?EwY}KSwdX. % `nS";EesdmND`{lNx_qKkP E_F15!|7roqlQ\/FWgcprk2xh~Cs{6 z'Id(fajgZni}lvVNQ5iGQX$F~8-5 %cHTpsJcQDg([OdF@fj>ysV1=TSqe%acnwwtKsUfl{wn78F6lmBbz:`A4Io+N|Q8[37z:i9,LMi+'d{D|{ku{W|y;-MP/,O?GikU+}EhlK]}at-SGPuaKXylotO2wj}Cdbd>dPcjpviaY]n`v,OTG=IS)@"a}xzw`aVjOo4*F ;^QJX^yo% 6 M\2[WSMurs^]rV6sc4/q@/3Zb RRfzl^oxYb6YfEf8?C2RpuZKjqVmw 3!-JF*ON-pywLbwVo^0)_Hn;1] &eND(  yyh[`ZY0'CF[<&@QPXN\OR).dvsl)Q5?W=W\evU{ZH{k]C{H\a4&{t]rnj[X;}`%R6tS;,NELZn5>]xvvU#(&;iMh!=^@=Gx6RztiV^ihOkJjs;5n|wcm5ITUD uYgDD'D?hs@X2LHy]OxXn D= ]H(pNisp}y_y\zfxB`z0Uc_:N!61wC@|F`@vwaEZY]zZ]oCDNSk{",1r;e1aUEzvUNmi%L|}qzphpYjG(x JJaHH0+%iXjuj#06m}T5M$Vb6nNSw<xbhK(}FNWF;Ev2,\!kf[LE*~d&vE=1 [Sh1S yMeb wlxKY$Wvj}|PdT zn?gi]7Q21ZT1N^k>dy"uoi{6gVZ:2v @YpEYX`lR,#OkP}eu 6!6:4IG2SsiWd](m}<dU+~lh[ .:eHW, >O' JrqW]zmy\r^dU^[VcXXuxAs|70(9N[R*%Q]V<vn;KR=v av0 }^5*4!5xx[moxI?roLB[YfbOZ`^ZTjR>*K;MCafY7Hx|MyBPp{ym]h~rh\F/fXPb/ !I${fu[CevBEQaIN=Ib9gfZh QI*I'0hBsy&cqvdH^kAHujW5mghmIb}?y[z\>9tID)r!W!aj~bLo4:*]wIhwes(ECJ'DvaRMnhyhaAz 5@h,dII"]9TRpK2pQBjV`q%4=0$[zthq[YrN?Mo0,_dl\; !5 r;C^\H,1' W 4hDl;9!#]34:.e;XWc8eYiwb$ >HN:{.eSEGm\b.61b  @n)GpCILEaGk/m5 g9o3GLB_dB0kP''l./o maxu&jF-%|_XWt@bYD6g6T~d=iw67\wSB cb.^n7_g<6ahpRaAp `< Y@[g=@'D"ERqa2hxH~P[7.$S  c;Ae:YyH`h.&KuR?]uml z[nVP-5 x)g! W1I[3. }GqVkB(!!=Jq(PA 7[|{'l9tRkkBeB^Z[s`!  2<,&F0I?LL (`'pkBGHEr t "7f,?/nEt\tRBfTRn " XasDR@x1(Q5%c'12=i +m{P0:iKJl[[z7n#=krPG?Jr 1xDAystOX|-nI#\;.XvP!lGK%_ 1"/j7OH g; Wk Y9 #ڙot+8@-zMz 1$]Sp;|Wy6$3C_#z`ئMH? RӪ^]3l>\.- P[ߙe M\ z Qg1( (IVUec/(GoKIڂk&i!I$P6 W_OS7'Q=JcWo3E^8\cIz!D>0 ) > 4$TlZ#N#g>& Y*Pm  "EJ;- ?99'`%qe"Ŵ a 1C>/Bfc&#O ^$jsGF`<Vybu0Wj0I<|K |ÿv T65Kޜkڴ 9cQ"*$'zF TWX2 (1`tYItF %X(qRO9۴x8&a-=P%= 8>1oN5e/[G d,^~:2|FyEprX4lPIeM֌ t'"U'mn By W!a| z : `B|jEk!d0YP$8r ?Gjev9c{dM u$" {dd  f p$ c9 ;5]G6 k0r q5}mB=HzpMU4NNF .l*00 7.7QO L4 3_<:x {x30-$}&jZ c  M4 %D"S> \ hytyCrqwB =u,A 6Պ *['#+%H LmzP^4;; { "w!<NA1x'P3$.v g-Q]ijwU7  V1 ) AϴA \7 | r~ Hq 1  /!+Thp SYWBQb g s)jOi. ~{h(~"m Zߧ LQ 1 ]"~&hj%^2:iw#G+QHs % cz: P "*% ~XB mq3E' F {2${P &y:]K({W ` CUK|H8UDslo Y-;'}-(O١nW W)D(Sv  !qG  9~(a;rT_'p[4l]+9\#񴒻}0f ?s%I."C`_m#? #sV0o S -> I?V=7&}D8A(E!Pq6_sf,Q% JiK%bQf]Y -#)\ B B G pe  `X|K)xK }^k v\Dǣ 2"0"'M<3fRPfݗf  + DNy 8BST~'WxS L 5 uq,*"r #,9&g ["t<  jn13 R  <UBal+#).|VZn #ķg '&<tךВz7wGddT Azy'Gx%\\_W)Wnd]t1zea}2 m"Jo>͟ zRZ H" a B!V<2LujO}DR5f>R0|^"865i V#({ @ Z*Bt _% ]c2>2,N$L6p3G >JYf gC W:!' t~ԞZX#9 E_7/@ "Qp ~ pl~'Ǹն 8'8! :Ζ_G[h Gx0 2v Y ]_eF " 2$O0l6778[Q{X%*M%>Ы6=mO$sB.  t= ^&s hJPo r,E0y9XiiX"o  9!z* E-ѐ%\C<xV7t O g U >6* W$Zwe*lk 5q}#a4?zGoai &(!IAս* ihd *."7  ?JM'=tv ,xLU0sl -{~wd"ʵn UM$&-W{'G  ` .A \MvL6 m'{I!U|>: }͜\ ++%Wۜ׾2 E s TO p  y@f H  1NP:#Q| 0 &JyC%%ȧiu db#,&+ۅ(f !hst -[%SZ._ 'R`(tKnS@EoL`+7U +޸0[3 "*5[rvQ?NI ", oj6",)&'X:'2:Q L33)4p- ^&foz;dԓ|Y u3( J.=/p? |N.UA 6fD_:JXd3t\v%W;xwc0T];] D^%&r(#73R 5Itx lJUI1 Udr0#&}dXN}3&>[ +T+O%R * u1g`Q % VME1u}gDk8^e_<\rlXRVY8=N~:&O"rTcl& b  T#FQ3(KV~_L/uA_]V57 Oy<x+{& g6=H  % _@d$Jwd RqdX1hN2 ~ޡ8. x+pR`v*D2$a`rH Tw"/\=TW-h&fTU@<]A@Nz+$ jYG~ )JK)OGa{,atjZmf fSN u%x$OU 3m)g$]a   G+fr?6 ZuC nN$PFV,SO(`J}?5Hx r9 | vOXfhg +, c+OK+ ;}= RG|-n+,VC"8Fضb@8 7 0h^^F LcVC[%@ HhR`Z.4=TGG D6@X M\YN&gVZFj(p Hr>" C( Z `lM=^u?t|cCHW^g3Q*isc {   I[1    q::*me=Blg[-(*iM7kA2 pj@mINM#  } ?]OClZ5|1z76UB *}R=)DJHE-3fu!+NO. n wu Z@U Z"=Ph I$|^@KksT*]MfgE&;mUxf j]ot |{ @W x we&u=/^Zq|*f- C y^VXKlhn c03|y O Y0h!"ik_2 r [ k  ( sB~(MpfF8o*?mX++cYx_;D'8Z~5X|z l4u[ZI [FIugrFZQ2"w@F0}t}uP2OY@|XwT0u isDxE]xo  #U,!h d4gkY#d0y."[4W@rB<NH|h@XR9^SKRb4dTRr$>WKOOTg nH4  %S5=pO5+cR?,Gf fU Q,^(ym`MK=${K|>~6l)xyTT;=HM%S`.r>Xi#X|N3Zid)^FGE{Fr&z2ISV;n|72_N{!(E>tzbXA{dG x:Z)fEj_*JEy1?u}8PZCA( hhps;eft!0),RUGq*V'4u-wwYF(u5:Ps_i}%8'2=8 V~YOc(NpyF.=JM.QzfvRlq J,hGN$\tY_0d b{*T/ /jX8!<#{VCpbj :plHK!SIt /3&iY0\Qv9\n^/C$( CtRj}i >gy))@MJet9]BC hd#vsH7|6v0_\~M /Gb_>{kO\@dnA3 x#BTj#DA ]uMu>lm)mu0 iX7pBiMdiv%<\O-pj:SRP cRWj1k2]5ZN qU8i!wdhRJ%U}UOO=[:D|Bqz_2o+.UUfx~~F(^ekrb *56RBl t *._g'K+Y\&!Re,Fk wW).}7(nDskSQ'FYxnPP$_RPx%1klYqKm>,B{*jJDs7k5D@xSf_e\*#+Z^7+[h}g;9@*DiqH?F*8p=dc=?XEx ; > / S 0o$TzCHY]v1tHgc,V [?x]+D$HQ%j#)Ye}TM7 T)${/ +| Ibj \g'@ Ru# MoN]B5M |,<#R(J% } So%ty, l MDq,<4] !"05H'"kG3/-DBMhoE`/ I \\"1b?L<ybp=&)Zn )]"nkDFZ7u2V 7 ? 3{cv3XaE[T HtNgx:gR+ 6%y O{D#zRc8 | q< h n<HN;]6ic* re N. $ G:} i0yUm, m a!R`J}qVPAxx!U6( k \ kuzK` $     4dlC0-reV_ Wj8 $ L I K f xVv~,9fm2Q: wr#EJL_mW$QL%l1P h O ~3]XP9] Z15=dP $7G)a !5~HT24 &J 7 !H `/T tS%p|R3`T)\  f wxl;Avk!I R]l .@`\ 8 #< _P r V 3 vy6Rt+qhX~w S4"b2R&$Jd56YL{?UN"W;*2yl~ YU=c@K='IY=g=1E: l ,! Pd (_ { g] H3! w;.93\pO)AP!,@" e3" D  V "e 7`OuHKh>F1[$=7"W^QC~ 5_X   TT=;ugziqHJSPF!b>o+(d3]HKzVfx#$  * k$xt:kGi>Ny 3 r>=F )`k *L,$6/_N>zN ]> +t +i 6 '>6WO a(Of7-R*b"9 N @Cnq5 ^80k"xrNMcm a s  4x>] $=aXtci{cC58qR%!.,  r]|+Ts58 / . vzE;oN | % }12D]~aEQBi 7Qa u y91,& yuw M8  e I3H  Q$kt; #p.f<;{igHN99)#'(AkX M  '~o<   f .M%lg=M`$28X67%m;?2Gv   %a }q FYSM `=%zjO8AG~p3%VR "c)ۢ: >Bl21 ZjM{ *  87IX=4 T2$6Q;sR9c([J jfU8ޞP jgyXh C "^nr$Y3Er47`![gCeN_Lw9 ky {ab@X(o [|1 N  '~fF\.*e'1v,U+ NSDfwR V}Ι[ &* aKS9 W9  K J= + WC ;%9,"?+GYln nR /7 3Y ?ݷ* {e~f/ n b 2 ,m++$~[8S#Kon3v0Xݟθ0/|  *ٲs0 &_:d  ov&"U&a"$-Ts.8,^Oo : 9,9 -. K c  VuYhd F Tkl%qd<V}aA!.,[(?C|) *'9;w+mc۹$ WYR>{ z  RJ[3Li?U9&tqO= V8n9ͱ(S6=k =h$I#3}Dj~W\8 f] Y0J pd/GL<=V =s )_L04%n9115 U"׬M  6CisMe\g/l"+>b^={\?\W1O[?6݊ /'k01 P*2ߕ! V xp'_0 $f l(&i >V{n>.Z% hOLdXkσ31+Y ^[f2 X F5[,A+A=g@D! >  zE  hs+Sp._f 81D=veSV| *8(@HVT;W߻LFMG$3hg Tl{BxXxl  'l# cG3 >pD[VTcb('x  rq W;Gu7O p:  {h._R 80< 5Z&Չl%;$ y*U]vj ^  UM {  !_=d D n$DM{OY ('! [fjUX 5)6by S  RJgIs wQ bn| OxJ3[" mk t  X0"][  w'-\ {Px^1YTLY=9S m?iF}BwO w  N &O x(xv2Ks 8Y h'!) : G<k kUd]GLvm0'Le& gvhO I}x8 _ n/$dwhL dA =-< Er%7H~71u"!X $Q%fx_!732C{) MNk B Xt  xkz_ hj;kLet%WOC0F kq5Գ _!q Mh 4tgu `~zB  ,L$ 7cr#Rjc J9XN8P{5X /UE &Nq/G b$E|I y\DZ3g'3q@ls(1SkSb@uKi(x2<4(WY|[ F 25*axwpl#$   =_!R g iX EmRBgds hz.} P@7J2#ڱQ < | b}.s _RmM   n#na<  1[DZ6`9C*36N6 CU   bF \ N|fbYF{"  $[:1!fpWHST7Jz:jDY 1>%S UP\H ? m=#87KmRZl54x M k'/&H uOI2CMyR5v3H4>5  :zc#a{P <m w, 3au` }@Tc%M A Nn'?MT7sD` +f*IP< rOkm x  8 a N(btYY)vcPn^NoT:'d!"3e   A $X^ 1[V{T X qgX Via%*,Q+\(mYF w 6 ' +S~ 2gdc$Qv_%oD'N7O2**Tzhy^eG#!p1r A/ #^"^ PJ ~]5#d`0Db v<d RuQB-[_Y9CTDKfi hS!_/$"U";7 n g]U5@f&k42PxF?0V"43> ugg#|oyGdU*+QV_{hX.Ue\'n+${" nxYQ7Jsnya8=A9:aO-XX  3rJ=bd{aON#wy6x *9"5AH2E;OEb@-8y!&D)H nh r~px#gB]?=Zz#'rAR`"Y+M"qAHK0 5x[y\8 59TVFv|P7l.C*D;n7\BcH0/DsN="]sf{^:r}>0dds 7}W /#H9BkOYU-|/@_j_a?'sW'5j' =Dc[@>cy4y!tlSfy1ARB _UU2&:uZ P[Wyg("Y9]c>}`ntO"q/b0^oyh~JA6- zn)Z==#b+p`5*M?a30q@-q]n3B:Ei=M%f,ERLVz:SQFw";yBOAYWSw3drk9;(vV8{nJLpWno)iMlfa>.t_N [Jo_Shhghn P<W;DC :`fH[A$@oI8k~/wjAX$  *"0wfkd`7Hwk=(9Jc{4.KAkQ'w`? ] )l d}SAr8KK; > y3t8t aL6y4UJ*wwL "t5<> Dzx~dXTnFD 55[&5' 508"p9\O}A\ Y*$#8n'_*nH.uHnw z !IBEk>].S`EJ6uMG/.vnzG pE@L[! fuJ}Z~e+Rz6 4[_KpO-wCXG!<E)V5F+EWc?G\M+U|42-rT'Mf Ac )@uu7g^MP=bJBh"Ap^SwhF.+D>H@c=o.fu<Ty`1nGh*1K&Fs^_Rw k'LMWnj77w tt3 #94o__J? ~# ^xkxcWwVJ D.S%7u%!A}%#x-?`+!wHTmNAStg PVzK;=F5! 7'0Y[`VE,m 1LUQOL [O4V.;Cz.Mx0A]. Y+p\q\UEwPC3 e v~FSdxy ht(=%_wmovkZs-VS.,+Es}-#'!4 _H7%i<s<>X4;O]U?~yIT*D3X)IS'"r[cFpygEZEw5oWErZbGBI/H=|&T"keA( V:^C&zf1 2K-)"KWHMS"Lt[&IruS :6h6\L]AppO~3 ne&w;0$\' )2a5l ` hR.Bt]23}!~rVS\"yw,s][=Qnot!B!|XjlbW{T guV7jBIfmV(}K7 /_SWIn,IJ19k8P^2}dfO=SJ@9Nv_NJA-37s-CH_?fvlYQwTlL\Z*c)L`U)(AB aeG{T$SLvZo%<cz^=e{` 0!)S=@$dxS<9NTkQut?u/AhSbA#?u]~kD*dNxd\kW}sDnSpe}`grphhU,ocfSG&u_t1P{jaG~n4!zqWb^XYbkn5TU:kKncX/aa)  ~#V~/Th}}ayn}}%q2px~7A1JAYZA#TFRomjhU?aeVnTiqn+'%`.D&fwU=>LiF,oUa;l~lMtrj_UN@[#zaVRciv"PGVb]\OfmYpm0!ALcPo{` /!"" SH O>WNb]u48,5! jS<?bYEz|PJd::I}3sy9` 'PYGK2ltQA)?6$Yf@B16p9xgyp )x%i5#C W_sq%vSCx) =WJXh;   z+ QO}5 e2.Y*)eL+)`4NX>0^X Ki4]Ll z#z@ f u TwC:y09/S#?n.jǤUAO  u8!"h) 7O {S-##P;;/%. YXj Y!rœ o"cPJ 8 d> 4Yh^C;+EL^CYH|EZ(DG~'gC `  x  1N> ?mtxGd5Z9,E$qGJޢFY&Z pq$Pc#usI/Qwr 6O`'-dy E]\(-&+{!}wX9S| S0d 68=t):t+?-hf(Bwv}bHQYHv_q[ 'VZ $ 9". JL<D:Y>2c` 4p1+a?@%JB ( n8^ XRe41L|0.61&4<A zp~P*  Mfrp`u"e|/v<kz( :(M d"M %G%[DSJq#C&dsg;rws\:'Ae k{[6][~8a;Gi%i0W %!o * N34ApF hR2I;C!+W2%PQ<EmcLh(=*#/@;/FuX@#v/2  $$,^߱^>bab& _ *v+kH(3Br9'@ -/7Jk fk4tU22b8p{i~8=%6"Q[ -432]Jw& 6fsW ZsN :.0I2N#W$g& e |i}` 4)Cxhw[.C4s@ b 6wX' I g_ Y'2DIAXkyrI K.m{ e k X &   3e  ZU '~h=:&G}%uDTSec=a I]A FC:=#g 1 s+ sM< +x;5i.(8a)B;UT|oHv&A d s dO55<1+9>[|!r?fA/ieL(`B7/ %f D  v-C9Q}sFEP'Tc'7j :o (wOR'T+QG,\ y  I'D=Ga70 Hxg|3a*v \\QB xh mKw X g 4<hM5"XBr"z(W1y^1e#Bc 7o nXQqa%j1w0(kj[fc((X q-4K ' JDJ:k.<'#:fO x`lP&x()q' 'J]!-0 b+%'Rpi[TL%l8O8 !hM 3.b) a< Z^ujr,1R ^ y m\S}\wC ke ?)Y4y//1z<|! &? xvz - N *jC#vIj / ?l>x_pGk,3^ U3^I Fr/fߓ:h۪% b   |]r x@ IEG 5zL@{,g8:Pm"u/-)?  7!m,42 / k r` 23 X1N@7!DC`DY) Q ֐ \TQD0uJ)TN 2 2 2bFl{LEVi, "> [?V'vh'5O Y4 Ngya}Q78 * Zk;8\l(n(v2) @-| 6 5LWُo#9B=! EM=0hve~ e ~neAgH]5F:#&B- -F I0 o \ k$wKVe]# %" (U>wk ]s{Q)7@D/k' #UB lCbfUk g o 5&[q}6$S- V3""C1V8\M7 +'+nrC $_ztd-r35p  |<r5K#3`GGrOy7 42X4sUP $  ?&. -x > Z^ OthosfV7B#:\&PS5,d80< D4^N] 5 p M v\ ] i. T14od'mbWc4==nk+e' ]GrH y_8^r   $a~/ /doqaRi,Hh 41(!,u+} D+QPN1oK]%j&\@E /T{&%H C_  E )b.co(2%77sT>x  BeJ 5v gq~9D' WBVt="  rt7/M Ix.@(Ln+MN,~24  e r|Yb$ G g7cl'  RDgX;x UNCe:\ (%E] s |^-} N|L?HHRX  } G 3x., ~$ "rKh2z|Fi S M 4OQ& 2 l   u /)Fqw9Z FWR,AV_( (tm* `0 XzpL ~  1og _OSB7/m mwL'N wU R5C =2:'C 50 ?Dwj/XAk8T4 Xr T \ jPJ Z~-  U   r lXG'hi!:RU *m8;w.xJ!D?=>  %5 Sw v thAE22@/u _% 98  o0.$ ab#a  PSWpu>s Mpb C# au {27\Gg' 1< Y iaFMf .=h5B Z2e b7W 9m85J :9K#] !7tbx =_/jm/0 COd 1_ E!  L& Q  ;> yL V"p- t53#tW>k DP|G2+/Ru> 4j;gyYNeqycf].a\I+ [}D4Q@\X~0=aH}vaq=uX#]g*s_#$tG^7atNy@ }} br8Y" $)`U kKEmN (z B 0m%E?X Kh= #r =q|@x>q~rp.K#8FvkkPVejD2 OxCF 3 ?{;&=m l~Q ' + J.l` 5Ete# kva1*.WTAgT,Zc 7  -/{@#.Ro2g( A ,$ 2  jd8 bHNxl>'$ G ` ]lI5~:NC[nf+W_{e]}.^'3sXtCeq'm  \ -yas l^:c~FN '+ V + !$%o @o[I!@Ps d N$EIbIsJM/<Ir>K2 >zyKo%3kw`|  JQ3NKmP{+uT`_= &[ SAKZT^"C zpvRY$YVN%GT*s_Ci$;Lvdc_ZE!vO  u  =a xk/)deynUE=&] k l  Z.0}p*rhCIS/I@@ :o;^i LDv zr6HWHt<Xv0tpNi-,_M, a M | ` g@q-_D7FQR8+aF ~p$]dt!Ly P.n(5Bq+}oa ]   I3e-Cs6~{<iuLB_4. &NgXw. qidVoCW <#L  > *h0b] l0~=jcd$&- CF.]yu GuZ@ RA  $k - gJ#'( &q~!Aus69ytu!|;iVr Rs=whxlM e*tjnq^ wZBTirDW{W~@LbZU]rJm!G8)q$`m$[QK@\u=5H?Iu;|l(D$`QPpe+rK-|04@0 u fnz_1&]:63H(g:oJBVOjTtCHptb51^ N:)Cq:F^Yr+{JOo3Qpr_N`&z8VprAMp. 2S2UOi(\%21Mm$J7o]0vm!hph0$6 }NZsnwuD60 <"3B)n,k]T!s Dl$(QP0?H\ JI }{}HP jBC:*elHs}QZB62iFl9Z!m wXcim//~HFv4> t;r G? x#<,V$>, p,Z Wki6^5@D_-)aet4R%v#iDaXM)`.;x4b@!]/ "d$/ y(A |T]',G _i 'g'[Y5r6e%5>`+zZFW|U``BW|7?~& LaYK +>F$ #g LjZ=^`S@JVuEbB>H5>Je,P;%]RK*E-$FZ{<$9xPa &.s GP2#8P u+};9X,Q3- 7>#Z >V tH T ff * xWA(aGi*H, IB{ p >hf  epAEC(W<qfdsk *k6"/=~h-q=WBbP S y{ :tTMG 2 u= SDwJ!C m>G_8?a .tW=YQ Xp4N@W: ~-hBH}gCoVP[<w tp]"H)w|^HptC51G\AhTQfT ( YwFU:uf3~P `" z!U1w 0e4P o{ %K7>oUsQa- H,6y5El^p }z PNE ,ng>-,w) ' ^ md W fX` 1 r[6~#BWS C @  my? *u'ggiY3F?{kI9)fM1+ e:?Ef|[$`G0cYz6PjXom+yXf&DG/EApF K702/~},hqg%!/ ,-u_8z8=?~>9iM9Jfm){H&F'^/ rB+ nXd!xt!s2lFV-x I7e0X#3j=Dn$iW-$"=i *%IGYCkDdK6[K'zt79~[b[+<2k..)PaRMC0:p%Gwd=fbtqP2DW'|H&0~.,AF*UB_ey7>JqB`d]:V pK|ow4w&`~` nhn8L  6=XF~J^7 1`SF?cUP g{3YS]h1 ;"O&l"3.i 7Q4OkR,|;@RIg% h"DIr;~F_ i,`  V$ v@fBKnt'jk\s1k-v]>j)tzN.@WqrH0Dv TFvkg$mP(T-|Qo% ('4u]iI@@g3@YjnE8&\md{<\|(9N[XEN^*W 8B)$%&wAeX)/| \Y* ttG6pTX~"$ C&Ce-11"(r*/!mTae)CY BawEd1P2Dm `#O5$ yL# .EC<^$sy7(0N@sYo& 0o:8]BBO?X{!'!~WK*zp,?\?+"q8"}gv<(Q@vvy(Zr8{:!$- WHJqQp?@sp<< g{Dx36`wd~s!'aZx / a^M$z)Sov oby1DkMCqF=/X/B]Gz }u( q'fQVsxdjG!5[GW 3~ >h]f< Q/m[#1'd|(upiI_9<!&u[,o  6] h S/\  ;iz>Ka|,p4x3On7ln&.-)ՏpS% 7$dhc 5 #Q K8_ 9yIzGg.jG,u$ Nc FD *5hCW|re pPM^ KQ3Q–G )X.`K]3}I[ N q9, TQHWYtdVCetFK tP7_o)1IF&T{ (7hP` -H5*^wFf^91z%Y'%N^r ( ?\ f Km wS!xC\7?Q4{oN2@)L lE" OM ii9@xY(x.vyk4 V < T,r[mGx> v5*fH:#>2ެ IK. g|J46)azjU&3&Jf2z9eZV , n2Vd8.gJGIE%tJ/+"b6< ]  2:Yi/))3*D"ub"+# +|,D r< ,g{4C@_K81  +-[34(?tvl98  t q2ha~Et IOx /A `BrQ7 hTH5d>H ~=!a7-ZJ=V VlCM(2 cnR`x %Sz'x2*m7ah7e0JYJ.}|N}y*bY{X"hPn{ AaKk&[..;4$yZ[VE;J]0JMlkn=Y|Sn!~I\TA|*GDEjRQF5_w*u<t"]%TZ {=l9PxulNgDzB@ot,~e"CV'4C[[Ksmpi'+ ]C3d$x@~a@}L:4pDN/9)ciWIdE cP2IA{ w`:@DT`4 ax &>lMh)u& R@?Q0LM|%'+6KAS 2( 6odj]S@N :8?W cgFjM Ecr[U@(rR]h\x1h9A4#Qwo +-W)d`OBhqW\Bxq1   iL d s1aU\/ Al!#/ n{fO8{Ul j A {  =y(c4$LAN>Kmt^R o 51;+ m]ol E MXe4]> hv;~ PS]T*AA :[H99 !wLBzHaE /!Fm)$'  [1]|s a  4@aC oEM]#n(?>Qp)&p^'^ 6q.4R0L12)2H ~    &:|G t K'$ [ 'EY_ b&1nP:(G:/~ucM".Y %icM FHrzmH ('wi\ P ( ' L fKL}6aovDVpd>[F'P!"vp tO/ Z^j^po5- FX*W(UN GzREMv {?^KQ{;5EIXD׽ s Fepo U#jt0mA 7 H NrU&@/gsr{;5^T(yjqW ?X#M ~\ y, x- $wyJ  I:^2)J!XS8jaE@nri85 t/ ("25,cd:n &O (c h%b ` +fbu r* XI arڿ}H-;Մ SxC "/  fx 8 ^E= 2 1B.vj`G JObW Y6gCηh J4#=a_2uvYycU zif;  s*eGL107h< t<:  *cB oYhOV@<&/sr >& a `|qzw W;m =2?uM & +,_zU-  HjiZp {EW6f@{rz ""b(1 _SK,@( WF +SBh4DGC F {1!kt 'Db  Z r<1^Y:&TH3d'R!  zJ!E& Q<ff7L2nhasA|F  d,;>QA XA"l1w7i1=RsPwmWePKq}bHJk(Ym@67c86.G b(kjzNk =l!0I|I]DNP?j[$q Qw%9 HX8JaB0&K&DrB"Fy_e LQ Q0aLr.nIB 8I!q8mq TPkUs p+,b}c9<llH0x@{%usi.`F0|t<G*dR;1!OKT76, >mi sR^+g9]7~>`p"~@Wt7bac;okUF ]% O>^8*LZaqhFy7} /wkMy>~_8)r^.II%E-#nd ov,,Yvb-(5u,:e /zkfM-cK?5pH@] "\U9L34XrOQ|[QXm1>!UJ TPXhJ; WT-gv77E '~abLtVd.|ZN4Ctk[!i h>fwntgpL%yZH5kwE'5>iY1T`kb)X^aw B}mxYR^@p~D@uU5G%-"Bl(J  Uu)DV@ReGTT:.B4+k)V#a9fPVblB+6 )W" b8@ l{TA|j>X@|@5: @ 6\Y)5U6>C& ;H  R; ]ddR;wznm(fn'$mc V}=^RUN J| &+-D+i1]d6QN/].Ws/j0@Gy7+ #U-') -&5(zkr(xy[ahh_Mu#  s ||T/|yaDnR^9&_<S7^;YM;h{:zZ0bpZK \3 N>g yIqr)g,1 6~yW AQ " OEGA^`>4 *g)gC-en7^, .3N1zET7T op/;Qe>mWC 'pG ~cXJQqt,*#EkR0df*-d[NXD/Wj{o+#3U,1n}Gun SQt~t6wYTb95b\/z R*[ }r*em`F<o-k-hF*CV\\3p<&`^"Gw4G9I=7>zOc \xlw|ZJ @Vj.oX3Fh:8BCezK-ASVO/by0ui@7!kT Yt}'@V-wo`16vhu"mt=4Yg^*S#GJOi337se ry[)bMd/FJ=Hs5Dnu_)u] X?GXK*ez1,.A}~'wMgc\t{39d|jywj5lVu] 7q$*3vLWpg,~#Ga=lXGCHZL[JVC~Z -aq`A}uCT{8&PY\>D4 CwBm%P ){C}U@@]p8Vv-z:I zpaxzD>g~!0sY5s*24 (uiU:w%9;^G?V!/'^3EnAV+iPy~JfR4>;CU nJ4'+X "}[42'n*@2@p${QCV'M{Lq2gBKL8Ep`q:F$L!: *7xo2<.+P\ A?#%S.6W0@#f/^':yh BKfWt WI*+.w/)W+ l,uW"nm1 L$/0"-*4)+cd9 i P{G1&|N4 I K1#? $ r)~ zAi4 M"+}* v("w&2 z& Xtan|)*w1w9QgA&e~& *W +ګ >(#U \L~z1 H}$PCv'Y^oL1VVAu,HY((%1z9{ j" h !&j P 8hIB7NVlc|Ytj h0k%1J6BM1.#;z'!+  b R M / Z_  0mTS@0}ZXg)X$gYQ' .Bp,@%A h Z/\`vF8:xh,"WU)&d~ec* h#qvp . &O#Da1_y#>3(q &qYہj0 / !2 ;LS-?2]}azMt&T\&&- #9+ e C X=A(6&>vM?75Q/tcRWtPok)'E x^R.]DPwO L('&c$ @|~Fj1C')y(JXI\dj c 1-8I Q&]JaLy4(,VMP>mM # 1%9<sa'bQJA^YtrD tTpw~M:}eD*6mPGd( f(|/%\g@KrR ,|b0 4 B 5%2J28b a ^"UtqV& 4e K+.s$B3G,q .N+0yF[g<[. A z(M k!T0 )  ^(~"uRKrY.]-%.Dr?alzX7X)U-,:}/{d *`%4J|xKr: eo F"< R /lFO/9%O %, Gys /' $]"J&Mv  G )fBMx&zr E[yVoG[3@D/kFMvi 0Wj# j$V|[ t1)L1oo0? F8c5st'bzA9"u J3 i,m\y6y!{U51W9Uoxd~m=v.d" p0-hve3&SQb4V?4~ }7j\}kXE2=  x%b>$62S=b|KM,qgC"nPAJx%lWi?8*Jl$r*O33pQ*hzW=&C$Z)eXP}2\c z-l55xVt2u Z4G.mMmRbEoR>M,]{;$.hw 6` jhe@.Krue@h8Ay/,MUvq+Nfn2D>1YX[zC %XDY=Ur<[pTMy=x{fF}U@f0dq z!JoN 0b<)dgH .aa~EqjQ{+_S!0HP736 ?e1nk*z&x"_ *\ 7 f xE|`b "r  w k3QQ<Fczh'H5*) STݓc(- /k Wj,b5?X VY#%Ysh$Dd2#Q oB2q.1\W!; IMy  t gtVzV k4 /7( iakle7?P$2f/R VMZq&3 ? )^rz[@GI z P`RTzN2 : m Y&a cX[ NBQH ] S Fh3L~t T 3d m;c*fmj v ?]Pa_<DpX@Fe M3L& _!$6$8 b&;iKw8/[7 Da YrWe +-O).Bn@> KC%WC#+>p>Wߙ T fkDE([[Z%@O y RALt]=(T-Q7Fe:g6FN #PM |!R i1  tP BR$ D7U VKe  a LFv7LO:1UcJ30? ))7۬XOd 1 @ :Jq% } tsB\ hYL6~HT<.E[8(] RY   O x ;<'1I%PF2uA?qQ nSSoI\$B?YK ho[`a6Xw~ ߼d Fg} !@o . A[P+8O=E&EGu W| L@]#c'DkXBR - nf $lL Zp D{k7 sb K-+,d5lm>F-$=CHBh6 0A1&'Df \"m ;? 6C B WCPZ* &oL1.accvfJ`IV(2oXy9B܊t>*VFtj  m1BzN`~7#H Wr$gUCxF'@No @ZTWc )8@kOR/ 1 7*9  EK ^ 7sB$$;gzt-+:=-&NRxB  ~- HcO T k 0h~ ,8'zQ 0)(tiCM t7}:`*y4G s!_=t f vpfz4Fj)44;a2 3S^ s$I>n/|vV!1?/u< Oee Im+IIdo0>A=i!"u4h J #q x  e` +!FJq9?4N j H (rXW1SxlQlY:[IsQ6"##+OR # @C * 2 1v ?^u0q Nto6vNrh>*,N2/n2 ( ~ A #(zR jtwZs 1n"*)CXIx-ABo gABI1S !z' + @ X `r~SD- $!WE|jfiDJY h Ln9x/S34E R1ff6-"&fl >] 4 0 ty6rL/2PXZ>foOTqjzDhB r}fk.xZ? k`MOyA9`Ma3n~"bhZ)6'N> )yh~V* o E1#}q[d) DLfRL$Fea v?fo)pC`^V>ob[T/I \L [lQb=U% -Ks +2df/[rb+quX|2  y@\{M*%@X>m=jd<R} 8ZO$m; C9-`U5  u. Le5flr+;i;AiM9h"'@W4rQna\7>X,/T = N<>!bPIO45IUo"P7+z]b 6 8]&uFDliux<m _FWG(/WE{Muk}c0NymQjkX,RQ{H71N\;dGd>a?nmE)Vt^;<]KCP&VL(d.j0Eg7cT,SPci/}xWa[AOT1jiTXGYL JD*fR9Lca,taN]^.gp4dt;0" ,%V "B7?ojf7O=EEM*=_RQ' #W9k`Gho_VnvySFeDu/?>,k-$^2%d, C49 `lbw5^vBNHHu+dx_Um1Zx/z )WH?L eN~6=M,5pW_X+ 9! 'gQz*2|N{{wlIAuzWz15< A8AKNBf|Q -YT:'0b0E5PUUK%ID66 ZvO +N;>H~R]<{Dx04D1Gs+$dwjlsWn =5?an/*m4c]-iO3n~e>-$ mH9s9];B74 -% \ wtt?|Yod`ieI)o mKxkZ=I`Y=^pX+MsiP|r~}Fe9-1G Na2hQ &=Ux.tI\pb% wrb"+HH9' uzAHF6o !o(uVJBX_>+u@-?2( ^cpZ B{p[B0 5t^JcsW/Ik4[C6rA /!*0@4HI`6eH`5OawZor16p6V/ ^1uBjUHHK_r:,hn%yQ~34]@$0r9Y8`ci`3xw(.c{[kLg!!2ZjvNE 7f/9Q2{s (t\ G(<=! -"sT^; 7b&qgCA= %fA9 a~t {X:p)Cn+b)5FYaOXP]R-/H%NIhLHqO>xt]V n }( !,*]lk wU% foY`Ei&a7*IAfEMg66KTyK[G?*oa8nK2fLCavKf#*k #.?wB YV%gznY>"NwtUM:&|~f;7H*W*Z';ElsA<S24e{Ul[&x3'b ei _P?rRq3p r"TjL[=wP.^z)mw+!@~~I0 S3pWRkk7 eG!}(i: Zdv5Q %Mc 9)bn#_)=IfgJ[*LS_ 0?YmpZ3 SovlAL(!4_JLH~QG -u!"ut i=koW{--L={k=d@RJR5k$"wSYIO}7|`W(eRl# !xBP=ou2((: &A@ "{~"2S$.,Q44uV?('mo}}JLBa?qZzuyQm0""tS+$t3_#$ wd =sx(pXV_-l1RO27=C6m_VL&f:_Jkz+]s~l'-I>AF]4~^U"$44d U_Puj@q W7U7p,sU4)WDU @X. !2n@F]a[svwK9L l,c=Z:I nRv[XRl&w+HBI A89i6 p|eLJ^Mz tt:1S)"ugTMD j_eVe#P 6r3FjsZ}s/cDU0+Qw/ z3BunNkz1&o[iyzDP|*({I,)0$0GYS}V8hPr[gJn13z\6_*}2Jc *hF+ =Tk3&('k T~}'lKS:&[k' [5gbSnV~IPayO=9eR"q_dpf~o \: Fdabr@mg_[=cD19B-@vX!d[,:t\ X XN  )XzKJh~nKbcx\L{Q_h" .mO{I -Y35{UsooG[PWNUPw_cq.<_Qd -> BOMIel^ONt[FCJu/1 W8C/#4JmBKAkPHmc|RglV{gjs}y~>D 95E5!;r`bpxMynV{V$^a\uWlcoVEuF;9LXG=H^B0P1yN/zMyWq`= 6M}?:'ML Zcg0#,O}TkRm" d4/hE. m@}a$AF>7|hh`m 4%4Cx/6lL6 :E`ec.)~R=~Dyu4mka SAf>%jbXB?[mPxDejxjco/:Jsk L )-caN6Jys5#vNI[c `cLeo#Z  1P sH=.>cFS#GZC@\g<B fqiiO@v"d1>5Eb?n>G7q(,gnNXf we&7K5q-z5_^y DN!" }4L/||<>4] ~ ,p AZXS^c*e^Q0=^(wg^?y t *O?M_/{u_ g^ Tw\$$w 9'1$AR(ng>;*1X `"waK l NT_bA 4H~DNZriLGTi bQ<%W1#"W= x %s , -15d=;<wYouX2w`;N7:K^ T @ZyShcjQ el  +KC+$sH/ Hh @W   ] ZW1X~w w#{e <  xdf.6qJ!<*"I$h e4Q1B2$(/B=0U?t/ h8h)y ;7 o5F  D{yI b`623V$ ? r5~' " Z1~<* % lo[[ aI*; = @5j~yng/q(=xdrd?m B94z+)aY ScZ Q 9#  " ~LLz ~4: !t(gaM)NRZ#2}]E](/>& S% 5dV [ W_  V2f_Ju5 ; IXgkK T+'L3 @&uXyQoq"UcM*m%Wgoxh~&d mu' X sD\@Lz |w"v7/{ (M9&#[s0iQ;SJs}$&euMMvl J&/&/ Iv[ctB7"J#23+B p+14$Rxn .{L]#uYUdU<Y I2: p U  A0$F|Inqz+v"K( Xt b$;:j-3Osq! s%P(v}U<~1<K 9l o ];5>?lYqQn3RdBY ZEQ5ucq }xR'&b.38lB!<v0P;XD h=phl7~I (q7rh}T| E8"dߙE;+*.wr;z~2 / Aipgz& a>X.  q9T x)BY1FK1$Ek.k` Z ^ cYpN# ,w <,_=&?i ZH4W;6 iu7-YY'*-#&d4Wc 83<#^$c  $ $KlTbA2O% M;B={TLe|e=L:qTn MQ_oHv5 + x%tL)&-Y"Ed2rt.$x&Wzp%,,#X[8m#f?L6].]AYMDKk)X. t2{]u|kWPw^8~OL:8 bFV4uPcr ^ 6<"2B|ctPI>bMU"uH #e+4@`_r-  ~~[%+|#/e1"j27ft+U5 @Mt}f&$(a= JK3[]- k  & IZ/2z 7`8.6NlLT[_Wp^2fF )Llj  .j{=$,"+g! `{'< pdG_=@`:X~Gr {>PwGB@we|YQW1CEQF<AtHAa89:  #Jh4_y k2*'G\<(<BJ@ 0|_j?x-rtchq|_f^n5b,(q%?CTkT$BEp.bAu^H+9?TXbr!6*~-H3 GY;(Q!rPY }%&jsmmEt;dVx .5 s !U0,$F>+*O uXx (U4[[ Q2 Z`jI$R~o V1 &+.3l!q vUoI 5d!wu t# r.nxlOt!2p;"#:10V4[a q i&|pK tx {,x\0u1(xq~pYn+!%.9A P ap@|x &k\ 4~NE% #u]@%[6R,el5z#uIGBKZ`=U<n h \AMz`M`=f0 anK:Z+x2JLt Xpu!~r?7 D& #HKgE4/< jLtb1S)~w  Q[ rX(d>,q7j%  { 4S~\p 3xx~(2m']VkTfJ0\+zg i T   5 tHECip/ Z_*0eTDN&ZyzB-}l.=BeYo>Ov C Y { Cy;y^Cpqlqe5w%?1&&:Tzhx Rx;.Rzc Vux`Ek_S##SX^[)o{EMA0XQi,s A < P< 6WED3= %`5O;gC {|3'}H(qA0poCd'*7 , Cek l t ?2[cn?&  g5Kfs sQk2z>3EUu -+ jA`(EV` ~!Lri 0 O';x< xU"&rR[?\$6~k 6 5 ?]  F8  O*7>x 456 O)2YT6 ue K/ nrytL1 ;_AAC*n~@ 0"V>( e2  ! 6p K}_U[wsUr pm7bTxz?lf  b !yu9S83.eBGiC7X =;oGT5gS4Ug &  "Z;Jo=4ya'VpEs%"J4D4(wmu{E-'W"DZ# ZF (_q X3\ya1Q.WM;;T#z`Z~AK zo)4E8:i@  hlK\"'{"0+LB`u C@->3:(Bg!R\Z$J&f % + I i&KEC L,TB @8Ay<@m{^bv-dvI':B duo.+ \V%aCXim(\FWEVp`K Fn 8G{d5 Z8/"50?M,ifU'qs g{yz\>tvcBIh d/]]qdO;*Pq+I1.{w?Yq$T0P^t*`_mz3Uf=/N!6S(x57EP.+OB3A*Le0^V[nu$!AjNwgJTtl|URZ"AG.5 %0q GZFgBW=eh-rEW"d@mVur6G,\a3i]J&W(>,%-]7(,(+t=&c)A"/3DvxC@e1XR0)sGi;R7#f-j+rYE{}<|` 3 Fg 'x  6asqP";4?-Qs I W')Yv6+}0D C^W)t.Zdi khx #(/ bh5 6hv0 i@R"wGU V$E 8 Y,3 :2o) is-1p) 0y "* -5 E@ + y$iAir B i0"\ziY2CSWkm0(dGJ++(f4gb6~GY' d-kA>H o!l r?f'wzRKtin2kM=e{M :f8\c'R*F%],l#Q>b[n;)XT3\(KXLi7.}po. M  0YW*mUq _<-6c_o_ge^zTr+;YohA <| Y my`;~ iX} +o<}_Jz>"LD! d W t6 0 6H 2Y7^Ptp{AGG|m&vK,aD PhwOM]I-BM>-n +X\kbI +}0K^Zp dK>`WC(3u+9pu xn,`"?hmp<xXs0/" #lGC J YwF^=tHBEj)L`_&b^HYt&Cl9i*KFn>,A,cZ- &Mzb\;D  nX#L10q( Rm536rg&hjS TD67Y#?GiO&5Lo(2xS!{&I]XX ?mk _*l?jZFLe0  3 @~?/C Hht!ya*xMl691&B)~p s"lez,hRzN\ ZaFr)^Y6!&d3x8Wv" TsK'Emmw4\ \l ImaQ/ HIMWoW iIj<bAtw}\1)/s2qm0uGJ&  ghfP MbU5wFM bly",&1BLsQIy*y\ L,l*> JG VE?,SuYZ yRe6;64.<YDfYL|:WHOPF%v6O5'%2<K"[q'k`z}kKS3&p78?sXQe |)T=4Q$Pvyw R &Q%0}}z 67JgC/6" (S?[$fvXpAT18/`*z h2L(8Qwt"g+7qpiGpb'KBrmJ(<+(4 JSkl.J6}Mc3OE PT55#~# [P xONFi&~/LHn$wbB8B@&?Kk,S4@~Y17gWa{ota4Qd9MyG.G zTA)d\GJt)Shs.ZyYopemd_AmXqJr2i##nO3B  zFCM  j^98f$+hs<%T'JB(l#J{B""#* AbD2xt#mF.1.^_  1Xf[ j-9dsLF EhK#+ ''&#(S;Gl, zqZ8A'&j :(%H>O2x0^gx[yX.4?K(V% -(P0IsNP < p (Q{\6&b  k O'u]-qAiS*  9TSx0f& ?]ms;+#Zn |2&rcRM.W?4H% 7kN$ > Drw[ u-op< g$ J7t/Lu3EqkiK_w@aY.`g("#\ rU cl {>s ZOv\J9 _ 'j]1 s%*kSv! `R4X!H!j" AQ?xAN UCk 4bi4Xsd,8L IP-c]b&sy)]F j " Z;oUP?= . #G]' R-7:zSP\kT563yVb8 vgU7  2 S7Csc^U 9euyK xXucy),N>zm_>z%\ f _ 3y*"WdD:03X(kh]1c1GPEO4e'Ey . 5!pNE#$Ho>]@#K`'T2rHTl2jr_Y  cs+[I-2HQ nbu.XM#"T,2{E~_5{&pADlr;^N~g, Y N  *8Alu/?FfUwi4p.8 ntd8)^?}R&=X #1n|_S J/C >o&f/Z0sBAdL!-$R-EFpUTE}*x6vVMPb,` W=@y Ou}L;vE;x LmX8?b Gb q\t,MPW> t^ If%\q[{  vL+CR Td ~klx Z %Z%ti K rJ)Lr9 G\*/M,*!;_v ~Fg!. kc :E8l`r   ]11`w: ! Ia\8)G+e(4< gc"]) LUz QkT  .?s(o^u/EAA d b"r|4r;^N*(xm(Ls8\ -3bSBh[9 [ &4l7i%IB xRq"(xpCa*1jPW{6 y$ v* [Uj&~a  8eEh:t >  ..IQ 6eH 4(Yfs8 &* vr 3t4ti " _w>tD Z]awu^Tb:5%tg=PlmPz- P{Iqy s`3bteNp Q 8M' yS~,,<F2+"nvE{Eg g #Vx[D [ bl *%cp8:. EE7t; /  8NDN a8F:k}QWg ] Xoiv-IWw8( jse%+@ m8$-x,fdc0=t !u_Sz; 9A U VV`q*\%!o#u2<ojDL?*cz@W8PuCeH2S?6we&#5 fiL>1%YRk0#b0$>?vXrvmt/2|\  pc lNd0 ;o%^U|-,?B!j+ Of{. ??ympCK\mz QV|+K\ %YDM/g) .K-w 5&+' B DK:RR1Ml@4A #tK[+Yj~(a> 8-uW5C2e 5`E^ V&@ `b C X.0!]# 4S?dbOx[A=(K"7)#iY=U &k]`']~VT  Fs[.:.+vjc2>$-\X2upiv.Z|0XJ!o2}87Pc~ 7W H Npl9 ImUs;NDdmBFz;Q /\Ks61e}_0Q O W Dy x| 4>J s{H(3p9 {Hv;OKq]TbmW=[CXARbEn49o[Rrn ] 1 9nP&,uDHqu]a-Vped'5MAsau"~:>:Okjl#/f=Jrh . eD~ O^0PG6-a#XgEk#77&W7,qCu{Pg &jM&2< Jwk4/QPc|"H(U Gv#4=()w/_p4_OZ.#O#2r%?9,%JUj NQq*W, i+OqRq@Id I) j l])+rg6*e. :[@rFO8fMEZ_15<k $(#|xS# 7NP*6yzbl}Mk_l L{ p5Z/wj{ahMfd!d"&wA^}\DkG'YRp`#hW"b4pqrE/|* ZRVv#C\sduS$dSD' UjrMXP< 42)s8,Y_+Y[Z5~4T(%6fXKz:=:n]F*5<5<\1MnSqVGMmO#*1XDT/1{&E0'e,/L:.A>` /; "aj~pM* 6!2TOZk2 VQhh/^\vO$4"CVh;ID.'w)()) dfNv.7V{^!T-6x#F'<k\+*wuLl rSL_Gj# >MvGt)-{*\7sk7:R:sWOj7mr1g@~S;l2">Xk11NV?$%GyhbDDe|7GIk]LCI6 U]?nB HX HHWj^NWfg GCcq5v_gNAkCf-/YRRBl*4+JQvGb ]V'=NG>ee/X>;o1`b%2#.'.yZyN0]7xv0&No8%`:k^ a)eP.Pm$ >Fsg]c0Q~}Of|{W0E!hrq VqBMg_&br|vQDE=t',L PxK'II~{}2C {SQ_ d!U Xl/#1 [TP:}K&#(#]N'(h0C)<=*Ux0K3R.2,\e f@D*oA7`A>>y0I2R8vJ8s70v/L=Iz$/v88$X|rAu e u 118PO; ZPIG(QD:}.FVWKK<#)) v[u<t!NsT]S''Db:ju Y48    \IY{wxAVLi"RI|* m+H, 5v hEWT4NY~eJ"w`22l^iz0 8y_%;5,[ ]b2Tz 4r*S:r|J  pf*U RN ^iV[nlLevffn=Xj oi#]ie !H ' r7f(Zs&r9cnA! +=;fMlHev%M  v4^b.8~%@^7h#Ji*y#3JG|~j qT@+b ( bA&s C7|82U I67@"`R]LM%g]XVtA12w2%v\zfG.XxztXbum@wy-|2 Af3c 8D\$8lyS)[8>|` cL,a6n62= f"'F+W zh4NFrX?a7pB^o2J,J? J'y)Dm:S*tR 1  PN=@O?o+?(v^315~c0-Bq*[E]M5xC  (r K   d /+e)y .XWG6M ,;pQl27%-Ba3Lst\/C^HXW  zV8AdOmfH %<NW|_wME.H]Nu).Uv fay-&GN%@w[Ly>:l@ Gwuy[al/EG!JT3O,V !%j Ch }uZc ~V9dAn|M^'rPJ'RCg (e^ oRZ1K K3}e?dX413zs!D=xY4)*WC t ;umdq2&,,z {X 8sYBf2M. 6<$Q%o$xi96 pCxH mTiDni/{0):+.qp8i)eXfOc^%ls<  g]nfEaq?  %#S1<j!-r*)z+DY`GY-5yMqL@ "QgJ cr9 /#N;XTo*SZ]' |,(KGN>0>P&me\j5/ *5EF|}&c=p.FE]1>~ ~?* >Dl_w c:-s v V\u|Hkl5cW{B`i1PZOQ|b17w6fg9 W1fc V-}uaX<1yK+]* B9pS|D X}/0ZB _:bq!,*6xb]GUXN{;e WcaL?Z'&qV&c!_G52WR5h}]$Rpv =pxVkG 18 c$_$ S66ZM5f?{GyiYC6w{eGZS{(=2!nW18c`-&t?.I, 7-I[ZFK?fU#F_6}"=Y6/7}Y0)t5-> e #SZ 2 ?v'S(GL ]o0_0@w1.e2:Qp(-'j\/=[!N a\.'S+qq!L+ t<6eUO.$6t9k\f=(2aLmp3WvM (wUm0. yQkU%y-O3=qz7.FCe*Z_@RZIi7,~9t$8xTH3{[ ~ "b%]n'9RXh|km>!@7cuK< WW>ZvEqkU.P(XOvYnky9 &C`S3895W@|~PJ7w|| qiR&l})C+:XioGBZy-7 sgT0e&'u_A}pW]rT u&1>~C2TPpbbhOiyuA]uks:@^8f>AGQ83( A4\[ki/jRUxUg%Xb~]Eh"{WB**z~,$Na:_i#T|TwPs={["PQb{2]|*3;Y9+ 'mu`7 .j8E3 h}{H2 OD u_LvmFK0knq- R*"QHW!K' \\yu56H -F 5 I&wu SmI#;|5:<`O NsqB7c^jt({8  3 l^-r2y {7yAU)k< w.SES=;v+Aleu9|Of'Nu3KERkL-|  {!:hY!*(M<]&!S NNQ(t:\27Q7x2]Bw ` L;,[E;5,4b^\d7b5lSm[Do_=h|Ti^R >[2@C ?^#[ve:x3{`L|fVPy}8OWB/CX`Oy*mSM}(GN-A@9@ c rB.mG F*X; t QYby1"8W &1)Kz62BC] ~0 ;/xN U 1N &\>^ ^^ `9RsI J,z` 0pz;1uJ*dNpT B%cV 1>B8f[u`" ) 2,iQzW#2zZ")-}C!LqrC A ^ 0 _@o9s_. (Dl?SoJ#j:W7Wv n(pN {^H PXCM=/d 2 /'P2 V "9}g : ]- J<NyuG]R + X4e+"CrN&!%Fq5 JxI W --rcOuAX;97 HnjCh}O't+ (qJ).)R HmUx %> QQe,# ;z.<_"Z&")2\.U9 r*q$(L3J]:\HO'8_o[xB"^& <cZZo X5JePOe\nHx^3FG!2"&%q9H"?^# o_f) \ Pf(emF?!8EdB~u#R;c{&?NAJ6f -xE i[{e:S0%_t5=a_ i taGM$Qw9d : ] X  h QyCgh TjYB2{,!z Br}nUquriK-`   w _ ?^@V\)M2Q(O*yIC;^(RrMY{ Rb* y L a im{t ~OlQyJ2OI4PAWZ@U!Z$f_c58n  ^AMo &]o}uZ1ysN!1mtJ2 SdtcfC[4.`?.\n05Ez_ZvoNg7sGJ:FUSwQP>;GxRqpQSd!{880cG"iv>*#Myzbsr\oi=-j#NXS**l,Hls cfG,C@ _DQ$)Mgt{[)Pm#JAD XS|o9%a%pbRK@s:]DxXz2r<DAC7EQ<!sg ,%'yz%ob*:<1;Vs!!v='@& B K3?wqdK3uEv"FbOt jy][Gc- Ix1@LD_'}T-wG3xsxXUweM(Q " ^|Q. ]{\ X><(SW^@$W*XfK0@r 3uX[+4d]'`mt8I9G]D .CNt^BP S*.v}-e->K[N'e2n825~b K'P>z@GRDX>,Qzmu,@5EOzx:D+EErj$q8osfuM+TWbV5t3[vu,'5: Q ulH =Nk!n  u~=odTF?\%W]xKK]BpEB ,,j jI %3"#]k! 0HC5h _2Ft,   M&X,0#<@; |n[ 1v0! D V %^I8:b9e:uSmgvmn=; #a8 Q ' O0 @,.  3{T. (Up=|c7 |~~$$g)cgU*?*d#@B QT:[vNqFm8w+ 6a6m[|| cY ~I7kw.HuCy%zVJH6:ESI _ 5#;9cub}y=VIOe}o2 R )m6JSuy9RFJ5?n@ -'0| #REk%9iO*Kw@CB/ C3tu)3ZqN=\t ;H qT|X BL3/o]9!:s,V>q| NAt'os~wo`(fjSQ| }! +t.&^ `Rj=~VP&vULIS0t  `>2 h'I1tR yxt ;x 3T I!C,Xp%.Y2 R| /$RwECuoKk- j ? @P GFDQ#NT&F_QE4B/ :M:k=M;rLG?`9q%O <j/?iY]aM Cb5LiD[Wt93E.MmND*~2"7 Q b [-eq:Ph FoD  $X0&>e~Ru(} q_ `xnUREX42*x2){q"wjGloM9Q/O o N*|Ev-Ef6E X1oI>.G)kU :\@;('/%u)Y&_f$!Gshe9Xg05O~> W r" Fk#FH"Dfa,Q*#5yONl|4'* ;Hr{Fj @EQ_sG%+e5}ig^(+,mNc@ =#&2T < l~@ ^sr#7|B,#O %,g6%!R Y"~.)0#5H Cgv%FQF4kD p)s   WZ>0 0'ky {^2 |$4g/M ]  Czcs%5 :p8~  :tCN9:wf~S^i Hw|:U[: DB^&bqguf_$Fh-O :M 9vOjm_X=Qvn9)?GX%4*nN,mtOes .65Z.!\VI/G&}+31PU|9>V>yA~E4B<-enBR9\VQ v+R]\5Y|AAVAagjl0SSf5}\/.3o17M|8$e~LkDK_'10xsvE'J; Ukl@AVjsgA,"|pE R`ZP hX> u5:GLpEJ@B&#7C 9"- `Y,M0I) :'+r)HR637ug9(!O4&v5"F_ 8f,.DA ScU" U0I6OAj+vPxiZ5S-+Y.[VVl1?o Xb dA 6B&[1Zls")`B?b BIy2}.nh1t= y?0 M4ff4K]aWD5zJE4AG,E{|w~Q]vt ,GA /` (/Z g a @S 1}mcE . ;  &M1E Cz $X + w;u _ Hy@/Y.e2k7P+Ea #bE6kBe8  xEgLPP F O DJkW^? riG^_Fl{:aF?w ooC(DHQt_fMUcb`,d=fj_k*RyN5kaMQcubD'ATJbX x,V`~ "eiy?)lnF,N6\50f6n"6TM>AebA {~ {o]P+L%d?:'=v hRc=M9upE1o_w al&^u3LfOLmzUO+>*)M 6"{dPk29U1y_M,U *p~1yQ{1p  YnRy15 I5 od@D Q@B7G ,v (gFPHrZ guCI)Y.k`iRKn1r%^qPk#f@t||BTD^-0i 1*Om]0zQvRXK4|1 w|e7\xzgah.RftvM&eg?,eYI}UoXbl 8aX 2*<)C xn"f 0R"}kds{:]V~)8q`7(QL fAs!^3U3 X(<lX`-^s ,oK |vd[z3T ` L J6)}>_u k M`%\P, )dKQD}2-H<#VFeSL 4>} a< [foN>8v/  "~ m'HrPx F(Hq?$*{m1ak r3 u)t k v@j R` K ^ I1j\:J @NSx$yH'w`p J%]!&3n`^R  yJs^ Ye)NP/Z.ws>kODVm@e+:ML   b3622w.Al>=R-?z- 9) Sfy6 #&icn^5O=]7zG3Q1pk[T:CH>Z+7 P5?FtBm#E.d62< f?\E0I  CC{h2ci%8V=!c#`[ OSD b0T#S3 K O\ fZNTL8@}-ZA5@2SxcZ nCVGWd/Z?nY!Ecl$vj>BD>;A^tl5NW a*Oa g$y5nP #>+y~M}z:]mSG+#Fz" V ak]uU:s  L,~btp o;j<v:O&-c^L I>%82&7 "  o+\q*  d_zN2h qHKp #Q?( a8}(2)gPfM*a-" /c Wi\b byGs<Yg!QHk UW.XAsGM5I%#[p$ r^Z9KL{ ?z2Pa[yGhiWHk_41qE6?+-_n 7Rg$t2YMhY,{e#/"YYN x@G3pZ^()*gnu5V{ 9NEOTLr%Rf.[3M9Hq"E8" M'rEkMW$vzUndX2G>0@csG>d9?<>Kg=4lc*k_oD#<>|YUMX\`D=smk-+,Uv[ 9B @7[NU:3%}hg#EW8(D6yc\uT^A2:2{0i`f70t#, W7,U+l%4l(Oby>@` \ zDi%8+|L( j]b@ -_O{IRac!B2P=[w L"V{[Rhy8sM8`bd 7y7 _zoz_JtSsY!zpzg*D ` }~Bfh3Xmg-_#gT  2L/*h4zs [M LU1Pa"j.)d1Cam{:Z7XX J3CJY!3Y<p&1@!)&rji\InpFc4~r\\6G[^jPVQ10:ale+%SAWE].Q~xothjq|cU6@ei+xYA.r1- D,k@EE=ZQ:<FcO`oU-z"|\dr<}wU1N[L(Al5!70&IRiNeo t5(\5\82VHCY"hOprML P J,N ud&aLt[pquak~d}rveZr7*8QOI9WJh-.kB' ziD&1 C&egewcXd' N-]7QIncESWwmYl}0a[KBtF/0Kr!':g\F8LyB,)4, ObrIE74Kwwnsm;qb,_JuK]j[MluV4V0Qu*8+l MXhuK[xhvL}s_{VolLuE .1 yz9xzdd#J O81"q^}k*-pEzw K[V G c>YVuVUGB`2cL m "UXs"=_ 8*'{!~gU3qwQ(a^ #hbQ4CLk0xe&rg,jT9"e;f=$ X6%(m\#Sn/G5]) 5_" DgcIw16<V o<  |O|# j R_/<<1=dySW`}V ]-hfN[!{P JEp\ ?^ =_mLD`.[+}wk+"kn;XPK~&N.S4",[mAb#.|  6X @H5_jzaZpx]bLux]*m3rZR<s ejh4 t' 6 'zl.Nv]]i"CmF/laJzcKwMN~n`j2Pou s3f: :  ~gJ YZldp|Op4| JTEPYjT|)l1H P2j!?VY z 0jqmB k%FR{p,E%Pxf59Z;",gga`V>c2>J Tg9#~ `/Q%)O@ `dahkoe @IF_2f!`  RW f $]cj*G+x3*o]D;,M }EJ MGXTq`@q]>:;b f *  ]ALH2w[B DAE9xRM|Bqjc%zx=j!k KT = uKUmW&J}"cQTBNWvEJ M a R+3p#dC6z P 7"<a?~V PqI ^i=*Vx = q@@ptWom-uFGop!* T evop $ [UO_1|txp2Z %_T kr QRbmTax&t_@pkCQz$=y&r  K :ek c_tH>s/#<T|x32UAs1RwG(1? DD"*; C.w |>V jwI]_Gs1gP Z\8~)Zr N7%w ;xkfS^uoVP6 :n. 6 k 3 n Y eQ W U jRl~oq42XIm }t /K--&&.#b /#U }>Fy= .hO% m Fp K&#h[cp fGL' O)YQF6! / * z\!Zf\,eikc>?r Q-N"O7v@ hnt'x ! |XbP.p uscFLp$GI#QX0#1'zf4@| YNO ] m}+e^#lp4-`t qm-wrr+?bD]#Bc{,yt;35N7 E } "~Bd') 9yJWK`<zyc;<\7^hCoDo MA z*tfq6% D38bdfQOnMf& D- )8sAY:o\#vZRV RX+YPHM)h~by|Y[OLw]9}wo4fejj?AU@,RX"Ms{1a4{  5bu4{)QRMlaCJn_oPA]kq^yE4b5zpNPML3LzWU~V|*a; !r@VM&Ym$ C0#[#.#CGcyopjmndW>6nPKh6_!YR]LDlG:zPnj2t? N)+62G<wVOgjgPL2i&CIc6>\oy[V r_F:~~HuzS3quT7?yk\@^@ B#fjn@&"'xsn>`Trn`rJR{L~Nm%) t0fB>H~Unc+wWaxt[|z^?b8` F8-A /|1M#<3EYRel$zY kg, rMn$)t^0j7dKAH: ;Qz]{`l+VyB0d"3E,+[v(if1y A]7G$3v j JLM1uxgRIMr  !"hK0#yq<; q;V9 G|T=0Aod +'x$? Xg/12|kw4gl.= \GsS\w "M5. 3?*rNew;T)" eX<.i,%S1P Fy_j@0 <:iWl U 1IU$%Vt   " 3aqdd&C/jV /#o,`L96a<78G! _.FFk;'DiY%X=B~x=\DMU9i% Wgv"[E^4M-MUg6 )QiDS+[i6Y+(m"5.cUq`WElZus\^R l; 3T5Yhl>D"4odo+QZY=WaMkH!KPFbD#5T2GIgf%^t~mf^#)LK`O,ymK\q^hImnlp{]cJAlPv(:xL2IF?/AWL`jRufeZkUb' 'n_ TYaak7,`ibyJ's{T7Ce.HQI{x>*#, yskLnjjMm\wfu{Iq3[3O9QkcQ|~|E7wxe!/F\(5^2_DKe"T#r:O8R^@45qs_;#_z]6+e" U{cxA /$EUt;^,x2sBMV/=K^k7L!t3hZOg3VQbsV\e#VLFz!6le>..bEQj$! =HC4S"8'%.!CbkmoF Hv*9*O w.~c5lz$V0w979U8MqnU2*if89if;Hp>TO5J)H6xN`idXW#1;M$:R m`#gl2ww CPI~ pPDBN~'LZNcp1n_aTU.CZe\@ !*j'kwIK_ ayW Vt`L'PkT: g>['qV!&(VMs^4:#/4V "vE uPQkkb;xe $!<:!%4ORHQ2z)):m5q j/+F_` nSjvZ1h6 f:uj f>e'+V$$O>i'TgOt@059)V߼y\LO 9p ^ 4]Ml_ $D b a,Wl#A(TH&PFTKw=,Xm<P Pe 2&E(C W#Imx4z>  uW@F %. 5dCE.w _G<'0$5+S 3g ==A7a <mf0Ki n{om"* .._O$?ph%)  S @Jw= 3 1 ^E`%dT/LoCS9 W U\3IM C^) 5 iQ%m>^Rhb$+4/T,k!:*lR&%t9z%^(W>wzK#+_ht 1![gCq>:# n7 fJYz? J/FuQ"d1 ,U50k3)}4!~`gW\!sIiuH%c)Xr p,3pp[2ru/Za Ny99-qDCKQqio1o<fZR bH2o":-BV2)OQz1u"#)Ehk\}zA 6Zo[M>2Wu6u)IcZ}zl^$_,rP`L1|oM)8LC1 R#nY$wns5xGHj*G 6Z{1`qEH2>vM6JIx  &jZ{BYT&.c+P0'~G n  L +V0 h  xB\89wj:w1vJ:7_HQ dp j  hMv&\Q~VIod_G3#`rO?S Q$_:~e3K!)ktikz>OJh*}u`Q})2;}we8 ?hz4(cLD:ROH8Oxn'D' o]d`N2T22@K '<DG,bm}?LKkqS~H`b]GGEbX_+gBA;lcfjJ#WfmL9N\D yBb%U]H-MX/%BW#!]QZq!~ /'2a0Q@LkfcdAOcUk5;#{Z@&WAph@K%%e RPT^}]IAwLyvxNX^WSy 3lR$y^^B"8X6`aXWW}9jO  0f,&#%ETs@%33pw@L8NZgh7-zL2-VP7%LG^]['fi\M_2N$>noOw lWVXps[hdNBjX\Q1l0B|vt=p!`3&dLei(x {d^VSXL]_rgEMu?zkKPJ?Cd]D^yP_KcPrz}Io|?CMo:GJBj/H4/!:%1[Us<}:1O84h;  YT H[o<qgyen51gORhQT?V@f!4+:D1\k9[\G?\-IKC'?5HaNO"S>WaRx}W!X/4l<b2 Q):-I" 2<\6G_rS4Is|v7['raHw {Iu;#x1.C=GDr178J&Mm]*aq}a!g` 0&fe/5908'y?DK "O-)UB4T$m}.Q5i6bky~`|% lwh<  UEJAfu-sOmg[ ?C@EmT~mG]:UxOGsz& $B 8+ mH9 ^_;fN50,Jnc^Xj8szs-V4N9YP= ;!@b }@)  KYz ynL~V5p;41@^C- VVJc uFz+<> /TT+J<"C$$80  =+GEH^I|=P.f." xKJLu&nN+oYK%8j62/w>ME@Z]]u {bR!" 3xOe aCPR? [) ^[+ U/+ M Em}:=A  @H*$ 6q~ <tjhRs|@# $ ao<n* n$u4KR*k /F{vߦBrm cY5<)# m nb:>ng|A* &xEE \i:Da")y l\. G9'f|U _yj { >YDI6b;{ > PNW\E.Ct?@6L! & $VJ3Todv,f$MX+@,{*o,7`#& '16JoUM+@+DWqX}po.#" OA=`wjwU?}2U5OG0yR~/FLGv G '':5 |>m\{0ws  DUf I/l2  gXVY%j=t=@(G /wTwNp=KgAa)hV16$$ azp~_9 h2h`\ZFq8he &6:ceW>=0W9&'hBC|(V00E5}m Sq e V!h={Lb -/x:,0y.I%@t]]N>7EdM#]k>Jg 9<c(Y@J 8Pc\0K1Gl.!9kE AY*tQ.@b463:|GO["xAytQ>7eJ?HN"fqv+w5] iD Gj_~ pn \pb5Lji2Nl^glcpaCY$Ssec(y^@i;Qy_!#urP"9S92DE-p/ae"n,RUco?; Jk/ysa_u|7 bNY, F {1'1Ru`J?qsY@Vy_pV}`n=t}me!7HXSVMk8d`;x1i UAn u{9X p 9 x*SH J9++?r-qdl&/Oq0m%M rTd8,-A;e84 :VBiG17CW3%sri~ bmW% g w8LDBf^o c4QR[-#5+cr6FJ#-ly]e S\%GpF] v3S7{bU2zDK6O:$ ] az%^mq6 P7 D?j?W]]tKP*")cY%W"  1F4 ! )->LX60&bBO8aJZ{ q |GKQ8xQ,_>Y2,B7*  , qiSY.g_4R&zen IIQk,On8W5 8 8k>! Xu?G  ( o\)h Z2q xi!X-dhP  Olez`QFj]O$L! y  *b'p4k5GxzoY*Pn%<QJ08t%wYF|L$0_iiqA!V''["- Nsy# e9%GJg2 vj(V vX 3}r>H&H r`8 s/ * ?X8 A4-:nG=NJ.6%"ZfO;3  J E! Qw:-8achOb[7 oTlAHU/v(5WAb9I*#!Uv2 O "Niq1R4g=t x?MzRW.}?!!, *6Wpc WsH y&wQ7-GU'*W3!Q$QJ_L~(>nC}JeP8s\<o0p(2}&m]J]}blo^ wE<o1*E~0Kb2)4S zaZJ]C{{gp[zi'$QLsA)! *N}3v|!UyAte"K12 B=p xT r(Rk1I% 9FG&jqdr1NYaGO !Ir{Nb^90$78VYwJu\_m,<,Wt)*T Lda Kg'pZ/a^]{F g J*[4tX nNsQ`^d  [K"o2 -ENpq8b bWbg&ty}o.%G4oxbmow_Dx}41 * _<8*t* T tiLOe^RQ{eA`ZtyTXjK~pM|K>EHn"`4%nJ0/XX}9Ruf7@'(/V!YXUzbqc_5z)\ "'2&/6v+#eu~! r+o.:(a9$m?dt)f=}8bR)=V~F'uXFRHR:=]@qaSS%LD>{#*/QA9uRkS`ei_e+$yiaDf$,cz_67<jpL WpyQ$I?MCAWEpDbnO9fm! Y3 |m?"yD<onI~GCR>=TT>sbf. }{EL{vcPv3-QD28) oL;x6{%t0 &vOlYsdngy ?<2 A6Hp8NnF|<BWDxYk}J v$9I:sBLO 8fsZa 4miWqJ7CdY _, !qr&dXws6V !  zoH:jE:9A>,BQ9aJ;R9NUKUDWY)7E^{`7#0 Ah[@ >  ?U i|r]pS_x4W=|U SofQeQH$x  , E@[[ *,Qsg)gKJgos{&[U{.omS{NF5fRd{WhE3L9d m5 wJ{U>d8T>\F#/$Z^V )}eJ=e$SmS0*`5w$0Bx!9mb,qjn>5g)K/hj*Q-G35w%w-X*87*w1Ko3*TMg.ddcx?ggQvA/[W)%W)P.;XF  |LIMKx}H[czjMytb urc^K!0z:@D2tU0VBCV^0OTdsfEmt>Vx_[|NubMGfC/Nj\w.<k tl|'3?_`9uB`erRnrxOi>M7)d2[yYYk_hT~jurdq3-;;S@m'_;l:$yni'{ah*Z7,nKf &f_85C?651P) ) kp5]0,G=H]>Pke//8ig (~&0Y (#wEPCqufvV*P x UoK"r:QA +L\G=P4\%.,A2~zkiqZg *m`f<eo<M8XK/AA2'T{ q`T{z2vd kvC/M".-)~-OJ'Vq{ppZywwO1)i G!)F"&_Ip|eo@JKG*89IUec#KPN$/@!%>I&\}9Z[ZIXw <\ntLdFv{D*[I- E%lRH,mlm?C/k;DAa6c*xraX5\P}J[d/AAen[Bm`UT]hbZU:~AWdru?_:0M:ZrlL #oT 8]]tZz|5upf\_KuhQ/fDokZ#,u, P`g[OI8!+K LM*Xdh!g>?7b9? xub:N)|ED&^l /gaqa3|->ivAfPF P"PE b *&nAYLqrZ,+ 8!Z]bCUedf=td%n~4.* bKm``vs2nhr]f]#S|-" [v #-Gg { ,\ 3r&QA-D d=v|7iap!c::sShLYpZ(X:_<6]m,K@o*P&_nId  - 8$SOF TOk? Q$6#;}66K,I|Q|/)jFfY T; ;  77EMf:75g.X>" LZ=$~fGUhz(|yH_z"'2J, %[?{=g f|G>C%$$ rfTA*HiZ9%j%{xyUw%5pd ?"&t\6!z2,4(E  Ppc e wE+u5Z>Tx> J"v+bSj}t8 ?iB"T P510.j JD Eys| 8 ; zur/H`~[y!A.VQ Y/7d% e (CL[{XkDY}wfbtc7:~99swLurFS};o(0SA 2&,[\JWx6:9;= la|dIM;U#ccnPWZeui9_xWhaVBe9%_q=.s*4fr6(~v}Gzi~[_N2 ;zeb:UaUo'[))Gy#DNgHGG1s]L,Lo% X`4hE1qs#S}y4Z BoPStEejRJGl?c$ucB@ Gjh8 OnQBje}1Vq3M@3" SCV:=( WF`p0Fa_weq:!Eo`-~hgn|6fnjm&Yl_N10J3Ec TWWuC !Ad$$h} J,Q >Sc:t.T[I[8Z06nT;F3aA%]5}m[$x/A=KyH^Uqh2fkJ>N U>1qK V'nqXZw;20^"{J3rt\ 3FDM,]<#_K5xvFs_& +I:JJ9{~s^e>-23: KT4sQ>teIq`91L_od<GW|rOn|)NO%Q:[(l \\Ub S?IJ1_O4p_@1=0BIZ\2xhqP?)s k((IkVqk$9YT9B6,JyNe5+`BNL:0,S1}|%wOd!bTRkAAHvY^-ZEex\t';U#iHYSlS^NWHXJB)LY \%lWrS;TW&"ApV[R+"YwT) 8G;  :*s7-~h.+#3 =m9]wT   7m4E1K*^![{!\t^{HK>95B%x]kHGXaJq2ItV?Yn(LgQ#F)K_}n:Iwk8#1%G&3|G)m!o{L2DU#x` T   z=@VhO$wIlPn{D ["b)BgPJO]nfJ-<03e/$O  V Io)toXau)rKk.:N@\#xS4B3~:9b~ji~Ao  t J Vsq4n#(/P9wni(vC5,_R(9x#4iDW77 > Lt:^9y9 ^vY Mx L:4X9HENGx"uQ.r>.UHtl9^!|$^_2F=Y6m iG&: kd+&BTJE-"k5j,%FzhD$2"*9:+?hd>WEv D \*a":} l*4s Ot$5]L|F|ith$",h( i } mP>Dm"lx?"}BJ_E('ZY`xWzq-Ni%C7gVp1KC5x#=0;_8ztg;J~sE\"%&J>(pu o_YU[YJG # `pF8-Wo5Ymv[yvhjJQS)R\?LT#OE5uu[CE-)E<_=yQk3s8UD'*~#P?(*F@X+xMB|$#*-.F#v_YpZbxFda'*1XcHiF&Y"* Mv{AU*++3'cqK!Z;5M\alir~J ]9% zj9p2 @F< r<;vW0YO\Q&0_JH- 0<@- ]br8rkhxd L>2)joRC\#a%h[p/ #".6 zKJ%4\e;*]%|yWhH_0Ri8' Ao31,/ZS OokKtb,&#~u/^nLIO\lzzH`t6'0@ylH3\AdlBiy)ibW]C'- z*VVr{*MC-V#3! Uhmz$C `"FG"ftX1|, ~qH-~zyyu2=# /9YO>zNM   = K@g<5(&[N)Cf >^Zg2B&~)ebQq9N,23W3>bdz em FRL%ry9_#t.WFOLvcVL{A SA73~qUA{9e!%w wg6}fa >X4xxhsL<]Op/C#gDFTPW#@'RIe &' ,$[  J;S %m 1/ vzIuZ2jS{4=mEqO{(NEy@-UD6AX6 '"*5 a g*ZYdm + q,c} p#9"O-Ba0(l1weT w65qbNQE{((b ( , ]QbJ ]u+ 8_ 8[0X2fAUA|f+?1%w /B#[!,,*0O* y  U @ " @aC%t C[5 96l:8JH;QZAM,Yw}W ?pzO$uSa"1-{Ms4 C#=s= di!cYNVV6Q- A ~  I :v c M@jl}|X%p#5>'{ }Mf K=\# ~ Wl)0k .AHB6t\` +4~xVaOeMRN pt2(w `s #-2IN .9 q:hN2)lL/YrAJqGrTT7GyNpc>5(~ ZFK|.QUPu< 8 | O >o'`7H74]R V{@#Sz. NEm9vn$'K,HFAX@CZnqEuC  *<, UZ C:N<0T- h Pf,f1PpUR vuiPP(! 0/,$CHJl. ,}_x! u.[6.)D*\.W p:]%ya1ZVu%(>72 t I4%iBG[:X\E1&C=C 0>Z&,1A6ynA:5meOI#a { &f9a e  3sT L k[pO$9BqIWbdd@!#-dE  Fl1$0g= X O2jh*mu z^YZQIw6> 56;#xyQ"s lo  yN&|(& d7x_+_Cn0Ealn^0S&9z2DKq\ [] !B#=H  wy8 ?&p |Ts6#9&+H ;c9g Vm|) 1 fK 7?*FB n(/Ev4e+=3G{2x ~KjM|I?^ayoO0lJcW:)!#U4?$;`zhPqY~ncpsd^Esa=E83;kqaiPmx B1#bi|9}Vf> +4( !z5a'Si Tvpd"}eWTtRm 7{ONq&T:),1) uZtobj8Zd ]{l`&zY&M YGcU58C)^3*LPom%0QbTZ% +y4mqB)FdiC3E,PuT.1|/!LO*XZ6E,&<D@jgtphN[?%atcA2|n{L6-,/k%f6!id_'V_T^=k\nz}PXW }bVM*W}GQ69m"L~=8, 3*]NcGAuQW]`7>%whzi]s! _Ir..*k5hu+po?*3[y/N zkmDTwMr5 *gaMVq/aQ @_[=f9 x D*AA4, :. 7oIj a~ _ {(MB-2>F9j!(Zj qng5e&K=nGnAF5m-JJy!& 2*}g.P/&z{R:i>}AM1xgCkB>@Z&G]KP )`VgK;9C.Xryim`4/at_*dV+c IX<Z{P[bVq io9ZE<!7_hMg{.}Ma&%DL#?arKri5' KqW IK)9F[~JstF!@30a.A5vQ$+S\EK+xObVrFhoI]<{I0 l1P"K8Nu!7DL.rV5#=X5JDwQQ1+zs2 *T5v&nBIC._cvBYi,wkHL/hkq%c]gky%6}{QHt>uMn!7[wJyL!VWTunSRwY 'tJu_Vw-|zSE9)u^( ],z}e Z/'xsyiTEuJtr]|Kb MNCJm1^Vb^/^|s%l#C _|a\=B^Nnm"3817>M@5^Wu:D.mwM/h h WAvuj}C K Asfh\  ):Lk)]<RU@BZ$%:x S-~ i%"7Dts;QQ\H6z /[eY<C<s}Xl_QgUlDi IaY#tnyywE& U|UyZ$'#Een@uurt9[HqGp_vkg!1t wa]y/ztR7H#J4^'!dJNP#55kF >pck'0^J [2'-CE ">NG))0CmrRzi I1z(yTg*h`7 dG Gd +F;9Ete 4b%M&t VHyFz D3b[=BCj\Pv6Czf@qkRhE [<B tj>1 eXfYbI'8Nf#T-n/ t=$ ^`* t /)T: O^# s5 P99QxF\~y3o @xWotr9kIqOyc0CKiRT o1`!N8  />9 '| `TP}+~j}'^[_}ctHK\3 v(tQ;BtmaZ!.9NX eP'? 1)sPl~Dqw u7O =hE? uoB4=dQ 4!UDf3 F ~J ,}l$ O)(V- Z|+CFa b{rtaK)`i^Q]9=#x~`@|0e]*L{",~ar +8+/^( "DptwQI o,#_g0c-tr3o|wQC/ -HD kj*!_,Q>1~RZ2jV! 9s>`EBS- 93.s=| JNZ }p 3Gg*!jJ$ nEv)@sJ1`Mr>"xM>ZI>k^x, 1 6Dz l>h'bEi H(CWwf*PE-pw<) :I[ayk7AZ13 [PSgPyb'Te6 xQ!.,. _u *]hB`Y> UxwDJR);.\Y$Y|5GfTd%fFP$}pXm.PVA:P00vV(hYKreTsly>x@O~ix#Io^7fEa+6pN>j#}Hdy1j1'_n|q#Fu)6#ar}d@sP  ?NC 9d/XOPs1.-Vg&*bH2hq 7T{ns3N.1cM(TkY*B/s2 ttE_8j\]L! f?0 6W#J/dd<C}pZ XpstKH/3l,V@;LPpF96+R=eX!M8Ylvk:T vSlu-[)~, l8/{S(y\9y*& '$gX %!/-T xHA?v0@s)8hy6*KQkx4:4-n@s{\pH$iG8""_hR=k ,!KE8;(I.nX"- V m W" >j,\:6kn (Ql$;z g: |w_W!O6e@}a&Dhl*;*if$:dD oF5GXBT&.fop=4.{{0uL8,XY) 2+xK>c?MC (3/~CNk^0 ~iot_f$2l7ucS1e ?~'.^7 TBjY\b5~ xw\,7*[h( `_(IsO#3l(\~VsZ>WEaeSbcB^Wqr_vpPo?<aG_fiKOX fO8-#wzaK$`X}t#N'8  V {n_fDd|"Ra|mcCG|g@40J?ZhJT'=rIi0]L((c{goD .%bqx;$e267 0ex*k&`' M1LZm gnQ;@Z@L,#oF{O'p2{61-+FQEXxj - 0n[R =Q L i m~AT IK~ kK?}(sl0?#'=K o,Wz*A ] 4V'})f?!ly)*n8[ +m}k  ~.T R:Q  h=^l( t\A](dj2  T^ Xr^~{k2p3;u>[RKL03G*[ tqZ  3 u-mIeTOegs$skdNh}@+6)) /6,y8 &T HlnnJX*E@/WI  wr sv@;x ; 'C(} [g^t,' B K`N- 2p-J;9G#5E% A `zc Uc;a{M " B yWxEFy*=&q9 # pU*.PkB5)oMFGtsVv+ a{[oTEY5$@$: $gQ=*) 2 !Gj:mOS.>U ib\]hj$iS2$  DJ i1umb\\ 6p{G qaYEcc <&1 3X Q:zd (ost i 6GUGQlr|ib@ BV  5  O EOX4Jr~X^Ss6  lz$ V:?f  mhKO(rq-Z3' 3YDEP[80JJ '@H 2 fUH {t Tnj1.P \1`~X,l8`SS>%#UR}Q> ?QD ,0t%z`|2.?$ P ;4zxFgf~HFc &f8a% :1d ,Sb@/63 gh 3LfB!(:!h t# ux);Rgg8o.8J[W z=1OCW(Y 2 s bG9T Hs<sEhyF%%k(EkWk"|`Y,zg 2\ z v/ \jMdKuu]MAm9l  +  \ Pe<A/n tG!a*jM%yyrHf H guTFoG#fHhOYe-d4h]Sy jo bu4Ad  rQ>E7'CM?\= ; \ZBLfO]Wq M-  L lgtt]A$Q  o!3Z(|}Y|Z O#J* K`@n^[ {DguG`)$|(,rzO Su+ pb 1$q+!qv`JBYj4T`#,.h)= K|R 9$ x b w4pM`DRq_O U?F;:g ,^KQ +Z (! ylYI]gw}&G;(BWs?mfZ j &Amp~r]8qknV2%DWy44A An |B{G]VYf5nrV}`e!rHBr @ G7 (w q Fga/7XaL6=v)?Iub*qD>_ : H " 2 6q*`Ms1\L*7JK'uVe]Ns >K}i ,v x oHy=>A;wh"!0 +\-GVC+9K8dgw|& M p c`ZRZ";Sz^$KMLHo88&0xK?5ga@Q/sxJRM^]1:V^7I^o;afxw|;tX9LZRSUR3{ cQvCJ\cv/kQM]!9jt!`Y^L_> D!1HLlT^2 A, 8{a$sW6H: VhqFn>M'9LB67- ~(`jzM^U>}v[K}lxw[o[tzMW_=!L9 Y0*19,H! pK^Imf}}gATd3S}ark^~ F1 $V5,I k}ri_bVKs;|A]U83MgR`OGopL& TXpa`iWI21@=wC&QBbE84tg4ad[#zBD~Wc}P>ex]oub{"sS= |TTLc84U"m6:`_Z\_>SkB|?=$U)s.qkst`s~q}uH 8J 2mj| +QZgs%y m D; vl<7([w$>]/toq'iDp2,x]]P+<ww >-pP]]fT+Rn3is1DLb.X ec$4_=/(W5)jmCM 8 2 A,\rrsJL}$ V( fkI2ZG~cDp0"paQ7`  w q X_~D.E b}x2=F^f1y )r 7l)1V^'J?gH5 7c_&c*yK D< y'|DOC;+dGLM{ $ @ $!jI& \mF6U$L/B;M P&%|k G1I.;[JG 7#"o o4G7V  ? c8CY X+w 1es&5FR5!{ R,Z7޽)CZH0S: ZV H P_y9VT` %=MU OJ6n.cM>7yuajrB! vm P -  }4yYc;;?lJM#heXFisO4   ,'8j aq*%ayP$Sg*r h({ CJ'!hA% N=;-M"u 28#`aj ICE 0;90JS #a@X2*V3 V);C>AU.#/B\HN}qZ'v4 OD y@kْ0  /p QR 7 N" V Id$^"dJ|t<M{*heٯ h p"[AV PL]QC /$em`}AF@h~:V% 8 $5g  `Ps2MhSu7-8FCL0b}J9.9FbY X J T9+ Z7L_Dbn Cz~(VGaT2!) F<<_UKm %#h4 d:L /& Rk ,iIbTfXe.h)a.~bGI'9OSl/ E 4F3 : 7+X4lHNZ1/2rB`fg #pT&kQ#O  oz@{i[ u B 3.p%PnU!} myR5 VP  ;3#+=08GB`jn *R?iV,VJ@Bmy- MkX6]rr1 ; As   MQ( h3?hY ``omXI x^|@9SJ4;1A*J #^<h ~MNYRy6 q7-BRm_r`Q,DFW3&I^WGv3f& !gSfG dQ[Of *8t@0X8#N ute IHU5 !==?W k{)D }-j]k GaN1nXY %LIx5/LA<+F\~M`tmp 1. 3_  T [Y4o&p3FMppCQk KEH+q=:$1Q2] "9:- +,FzZ 6k/zsrts\v<,Y8_Ap9y? 87>y[I /,#?A::&^3yNWil/~Uz !H, c|9 \ 4iC Q u Af2h.2'@+ufni+mBC/E Z>D7B  l I8KSMI <|Me[\h>g(\Mc%W(G>}3-PC+)M8c {e Myy_{#_XYB~j&l{Wj@L6P4YKl)_) n4o/=U8|pZ D6 Zj ,7-~B{/^}ln57R< ng; \o7 =/ 2_^N\ epRFm~}'{ .l]Fu0&<m QAL ?Tn,+(F-.9xNL,"3sRy?g5e} [ o2*\=AL|}p)#5"MtlmNs&T$9/l.Uv PpuR0/ }n>S n.BgRb"]] 2 |V  ~ 7 /Qrg]z_\-r >9MI~*%nr $Z#q n-&*f@_x( 1RxjF 2'P|,@(;JR/Uq+Py*T '! khv> }~I Lrh) JZ4tG8*U *N:lnH,9 %r0_ob )Q[OZ|]H`n= Eep6 } /:07q#z?`@S3x9JL}lt8) $F(6 | h (g~s0 Xl L.*I7U#D[{,wxCu6"vq;;1 LrT?B lx4F/US#GTpx qF|F!R} ^B8 +D1@a), u3o4"0/cZagtcS@F(p)(yvxii!  hD9T2B!Wrh)\W:13t U\5qYsW. -nv,hh Y~BZ5kdbso%*qeml _~}@OT[+g5JU[yR'lJ)wD{AZ. xsd~yK]VNQ* ! [Rqjs`8G^M[ |<~ `Zfj<uLfB[o-Jg8QBEJTP(GzEc[{ Ux! }m rn-CC"@w%g&3wR1BY|QF[. [L&q@iWp  $:r ti B9.A @w]0}f+:B3}&ps>59 f l;\\G#$LA:{2R`S'͌$ ;as%BT j  a xc z wrmm#cKSŒ> D%+BSh _k _ Eb --  5< 6xM m&-œؼW.*-'TO3N%""J ,[67,v/Ji"$7ک p3o5/$M>ج>k o] Y6|ra06Q[]EыC (/+K{imqz - N&Mhd<^MXuh.[enF:" 1$R&!(hxM FZB1g^ &fxerQ \*Be2oH%dQ) 6 u E K 0A {f7#Q 4: -"W3 n6( d0sMR a N\ \Id r g6{Sm'C g :>Aj\& DAjS  3 [(( X4mdm:=% 5 x'5  = oL <\ 9|iOk8v~[ >O1x\\ e5Me R[N+OZ[K   : .XSCU>zVhk>|UXk#&|\ 2)9 / BUwW8qCT0x-DRsi;: ht\(Yxq? F   ( UN&MeV*]g0W8.,! _v  9 /qeO|Fe(io6`G"\X,N7X <g 9  W*V3i,FP6HcLdNsXplD? /- Xc Q.>ceTmO-X mb4NxI.. ;X W` x  F_ hg:]A<.Mh2Lf  / @" sZr&izR1_Qj)V[P+  w d 5 S ?4<Z;!8?d\(Q b;:!\]I%)  ' r% te-UjzgF41LR+?, ]L8 } Y a W  FwI}9.Uuks!{Uj  u  ! r U  z79$0{\*Wbugw6!>=<I: - S jGR1f9-MXR,X.h`t}-< Cn x a / \ .#a )}b}=O#.w \QiY  : gD-w w^q&Zo#xHF%;%r~ p ah  OXb^ ~~<O }=ACZ(y==z?J^T\#@;;; } 6 : \  n YGPJO^sHP)ES_&   3 G YHUxxoGKbC/XS7h o  r vo"0\t !cm7_874 C  L # ;LUB Lr%yHGfZjONNdm70+0 '  =p-Z!4i\O~mw<nJ:Sn;d9-u)W"ky J [ ,/5xu5(tzA CulVtj|y%0  B| c ban{z;K ? diy\>jM N kWp Bo  0  (H~J|mZnw &]=/&3\ARB) u l HCu   !ko<23tRsjptNicZ,"jP|o  T8 N  Y#F@:s%rX( <7_  {q+=qa*r>Co6  W7qy?t4GcwW @Y V |wB|? V }  :9Qg.9i-=ra..XZ 0u   P6,{tSTA\MZT_N e$zKW47{vzWS| 1   0 k~V_ pN G</JC59o2G K9n \  _4n\l NEU(WPD5:]C$[M$% Y m ~ f WV")vI;A1]2So'j)iqjvTiQow; bA4 Z E0g\xEc3=IeSuqcf41T] aDMejkh;MU;M8@={'|w `37rLGxZ :m:z!y}d`/.~=bdC$IU5``R4R]VzvO;5Bg^([s1qM}.:43=J9v'"J*0)0Z3^'~ i|SJ&2 Z&ld/bazt0Q-(_SoS: /`KfB#@B);k@VD`ChL-Mn*=d]Y?qF_ 6 ?J5\VYU)R0__=tSZu.!ak xJVvSnnVI/%.Hv6@X?ec.hNB;W C~x!V@p cfsLa2S9O>q/8!J \oFyZc:=hay<lCkT%Cl0G |3'DR!:lA0AH #znkac I [GCB W ; 2l=\ i UwMyXEc&P%I# '  }'pU6i0Aa>6/ Yf+ S #B: U -4oJgm&=Vk&xB|'C'9 H=5`,t2   ;\lpL-4\F >M*jVIg& #-& y vdYZ4n-bLwoi [/ > s!)]:yI!% i| pnt7*S?+"Ns7 yfP:RGKW,w7  Rl B;7"~[4A }I= ku)gY2G)+*>(  \Sys D xumK@1Z(\?AxaE?$ y Lk6zb^o GE g&w K^Q<  sR g {v U7BE6S !9dT\, 59 eNBJ5<[s#WB E4{,+!lm!C>/. zYA{D}f]y0JLsvq%8m*m/)0{f&iI8!I.:*2#=[OSzA.I   ; _Ti^wD2xh>1eIrLf'L} g=H*O m  h + [ ( /\6B0I1MXGcv%;oRR @u[%!yt s u? D  xyrv4OYCe\ivUzg~_B UztRs Mmd . R lig;SL '7t_SE@A(R[~~W'"A E2C <3F:  B;!t[;p49N' */&\UURkDoOW@ V N? f Z ;9r8_T.*oSQ :WB MK bC. S |F&76 257PrC,jD+z|Is 0  o H!@bf]XW*TD7=KWCoE} P  Qvv%Sda4Q9U1Z/~u:9ztIDB7vhm'U kP C  J N}8-\bvGuO; *1O1mC_/[u3j!_?   ]{~fyI[FyD `wL%]*BAx !aqm ~ .z 'bm&A-} $ O KH+`cc'HBIv| /q ] - -$;-HM&:+.j R1wP2m/9EX6~V "    O! Y>{vcDqI3U DNTn22oR a'f 1f  "N4{[a[7~6h/uWJq*uDV#a^1) U82   l(z  xrb=~Li(a!#076+}K`rh Mxff G3 QU0Z(EJ&-/SpFMd|G.Q3T"V  + w: ]s seoopu-I0!pIB{z!`uD[mM^-@50f    +;_q{4 OIosOW zPV+E_.;#9!4#Md-w i  0 -w Bw__(*rN5{ UDAwk~p0PT6asd9S } l2ws?J>Y`S85LB} # r:5/'\)bH0&.??9  R>{ LTVN.t6 y@8Oy%8Q%DH (niHk\uXtZz3 >v >o%NcP@vbMQJnGeQ_]UUb;s!r= h(@ ~r: O$c%MF /3#r[R??We@:#W;Yy2!& q[)f L#3K5 ]Fi$V2 O rXK_, TmOa}"6l$W\XHlA?+zoMu[dB}DV5Lk&EPk U?>81wl=:Nx-."AkvwM%_OdF/B7-cH*{qD<lk:yQv\QuG4.%nW"BD m?^LL@} 8P?gh'&MS%Q{Y$:gz)lKN\9> y@*.+{4!7og? @2\eha#gYhH^_K75]t@1oKct6xp< LNd,O|SmgYMf/Y tMO>$[rz t bffm 0mR?+Vgo }8 3^2^J_aVV*(vY&1x1px4cDFrp% 8k!q)Qv&Ri{))5u`xt,u!|Jg/;3 5 :uL :I+3 **MD{!tD8~k(4~my k 9g F -mj/1Ia:xoOc_dpiJGf*}{{O`u[  8^t3D\ y=?QK~5  W.e,dX)S y"?d  N fs =-Dk7JGK |y6=a2W LLR@4wmp #atW .~ Sn ZdVlx>u C   etgu n%T\0(a^ j/ #gi jUS 8 nsTku i s&"u9X 6q.L1]e>d:$9$R rHP 5"?  A!K.c]+z -z | A{TQyJ]OdEh./.9t-J AE 0n4{?&q x- $'R3Ye.* L ~q s~ni!UG,S"Hr*>R[$\cE w T_ = t5;R _| TF[5]x)zbCXFp !(:S,o2/:~O 9oD IJ98xF >F ) \I 9TsSOo ['w[+a$+%Q#IZzzR|d-C  S%K^I6  ` Xo!V8]AthL=Z50E)c0 W [N z )S^:n9 / % O'~5i PC+!0x0m lks D-yKJ]bDs NH N*VF|&R@jF-#T(W-V"% ep!mvD ^ r("DP ,Le+tM@1bh@#1]NS# )6F"Mk 4Ys LC[sZ 5 mrL@["x AreEVJ~R!PC%(JxNf] `_jvCT 0 IR| *W}%\u#( U$4X)LD2~F8nJG ]}#sRdvpSH. T m r 8]n>d -^y8SW#b^ Pj\G`  )gch`5) c O.3kJ&'2y/3H71CK?!$w2t N]gB|i hXWB6=I. HMm.DZ?IK/+Id h!< fQEN& % > Q# dTK " <x LLhU?L2+xy9CT );$q%,31i= X> -/` C Z !pmy;pI :5qlBdy`S63# d%J }z d) F,~ -e[hv  G:^*a:A;a% l/'##  -h b } BC=Wl cM y+lSl6 F{/5'99A~K\'8 )'l 9`641iB EQ9)~&UnSMCJ< b3*g5F!ub5zsmn,I `/ EX [uh_@"D9fQw p\\w(G_E?TZ19@ 9T m/  },O^EpSj2(Q8V~ -'J03@g[4 te#e27  p5mJ2J 5zH5H'y0"b "|7\(SEJOK`r?Ko;5Use[0i5Gl$h dC]nNh!{"Nzmiyh.si) ?67*>@}u0  $MyM*Yly9Aw'lw-R:4 q_[F 6h ?7=6#&{8DJLh).Lg/ Awpx\5/ a i &d/lwE^}]{m2 O H!B`K>g 92 {# \ -n{b) l6'yPSqIm{.LPa:0Y@30.&02r8I(yyJ1M Qh^RP7kk?~\~= F\ssFuk*4)be%sB% m{g} hUS%;dpKZ,60p;+\zvNU'| Iw W%T  d% g9uULMIMDz/ G5F;.7Y%JM_uaT6  y:]q$S=cg$FOsI Y*4u"6E 9 ^ f#@<ni/E8N +Z3urE _>/W"Yc+<4:iB eg!gw~lCm25H|$BL;xQ,@t="ek// : *ate 7 c@{[OXZ7d\gq ' mPM EQp%0x_cB\Y:Q[*P;| zCdos dI._{pePL9rlx1A Q : n4s(G4B659+HtgKCt2F|&Ri lFU, f{cHGC pX^/c dGK%g~?h%^$ 4  XgG \e 7"Kq>'AhI |^a |LqY ADWXJ}/tL$)Jg5O d R2xy}D? &crQP  R L7sadk_UJ35 y<"s;2E( h ej Q /Ji;rd>T )=Ly 6n@j] d0`5([_{@6a [tk l$$ C 4A Q uA"QbeS#4A!'"%SFY/6G O5 | .:|X*GoqjG)F $] BBkhT0rlcW1} "E#ta1 9 ybZv*D;*  W p^wUB~jT l L4R65xbJp <  o  2 n7b<  {>IY|G <-/3~I&TIf\ 5 o<w*j =A@} rbz@c8O;<d[|/tw4 v5m*eiVvxn{(-R6{3D#$F  a D*sC9n a wo, 7?{vel), + Vc Z u hpQ 6:i tEm G"-lR%B n,$+Gk;@<>%c %r, ucjzEu#Q5H;  v};zhm]I9{;TMm<X/2\' auMH% @ w@:G ;e U//<m 8 s KH&FT/.H?8\2li(C#tvu F  5 "! %K{' P_ 9i$B{`%~/4.tvDQ;.Sb 4. o Pi\*c* 8 s,Tsaa;:D2N;,K V|rC)V5nUVCHN#83 Q Pa z YjTMvi6DA&\'(0GAQ]pgWn0R\fsA+t/G, D'Y N p PjdKwAamP"l~0=8~#e Ehd/s-]> K`3 5z:HC{"0* TON%']C vs|7HjTRer?&}47M3!:ns RrA-,v0- U ;4X=e=W+v @Eg>{OPQAyxu*h;  #D/&nv ?r'T b Rh $  q71| ga niUu`M0 S=bWK[+ * QM 8D 4O*H"=`, $@l20[')RH f"z\Q-4/JbS0Srv ZCVV@ ] o86<Z6Z bHF:%u)n%3,-mTLDH9(;0[ We X  lku)q  58]   c@ ` ]MB& EOK3 qo@J,Q][  \zK$}-zpr xP]kjhH'wg.1f[CC5P32~m ,m04N0R( - [ 4 ) qN`VUC{^'i^'4y+dt*-KCS}L*+); _^6 _ stG "`n&gq.T\6|^(K~82H>RS'   " ]sh \U 6<A-P4"G. '9D.NW&ztJCJ+%/c c+s` 1 J T& R %e RiR{4F,K d7oK +ED_$8 ( 9i-= j= W +?`q d \BQH/Bs>o:8 2h>u/+Km:e]0~'rp AF   Y80Q,gB "b{!.s50s9jm<)K=zWF`1[6$J\bZ6k+% B89`$<)F~(#v8 Z@moR(G3A>Nl/^H[uaL|s\4(d=*aBql_9xgc>dc\ .UkZ86(Y.$ZQ A{\l/U Ck)X5j}zyj;HoB+T gs_t$[,)d%>7 yxbKA2P%4PU)x kdEh(/<**j/Y{UibJ@Y0~P%=pX'P>2xas3% ILlDs<! 8  S'8;2x$46^O ;dU D}&o19d | S4/KDX]OPQwL'Q =[?h\0u?F\ .$@Jv;4m(N$GMi/W+~ |WA+{AC,w A-=#21eh 2_mL#tGi!<:F(]-vr )'iu'Dh:ir& "v2jTB01~,{3Wz|Z2O'B1OJ~t%nG~ $;I_o,k Zqfn: U}D%e'eDgjd1s' %&co,Z:PkRlsO.[&r{B8`,rH,-M`@Gw!92(GX9P)7[  O7yU(E XlKr7v(qoLlB b+kUoasE`WV 3$p{e?u/ l l@k=3)(w~ O=Wv_be.|b}"F7x};s5(6i\~G-dxOEUC= ; #Nt|es| fyXG8e$3m#B+FZ O [ 5 1Gh3^0,iwI,[`HJ< 0BD-eh-\'Qe|St^V |Vv} " )[}Qe P{rbKuf4h&8.+<Dd2GCF ~ QJ,CUH_|,V,!XI>;|0 (;]x XS [lA5=,6Qn] | e}gFhca*,Q denr*j8fg(2p[uSERJ 1w4_D} Elyg7l)S] Zsg>e 1,]  * gt J ?}SrJ D U Qs<' fy0!S#%b ::h /& -f.o Z:#fq[ b Ha{ Y_69 Nm.P8/2Q ~j7 9()WK%f= /]|(nRG g [;Q? e*j#.;oMP>9'pz& ;E yct/mQ6oq  , VDZ+O<Hf"j=,A c\D=)! k,'kc u ~EZ?K5LGiM1?k.Jxzhp./(*Kl$\ojl <,&GV ch[pqH(Aaf[vSf:?$)2,"[O'Hu  g ClZ)42@ $7sl'W&/D!Rw+n/\$0?EDns l aS/R0 lp$<^A CF2q .d4dSzMpaF(G1o 'rY91J> H gjn.e,FzAkY, ^U (lS7]m:r~u6IY!Yoo ,Hv^  ]D  8CV0<W  z>!|6Ye'p-s"s3-;rs!< U),?Rb<Qn?Z1 G bF;],$9V(~5aR[\ :G/S_>_QFjp?cnt.*e=bh AG| h(U3a]|!.wbL8<A01"]k:uq8/Nw\+U%U)X: uL eDe  ,t4MZJl|kjqW5s3v()a[/^\+AFV&)m"0 J35 Ad6)  dU`VsPt$ ~{t"9I'r-Ve|nn@Xr+" Qk" aVyV U8]  EW8 M. wY#<,8aZ~(#CxVe|R a&?0y'EOM|j9V}MFfnR$"4o6(u;5~c]Z){ )jh1,:yJ"vnv{5C B ^p{unP11@kV ~ jU0w B\.H hv4T)L/q$ J,3j-+ #` s 5t!c9 BpC3w*&. [z-mp]\}3x6M+,;F{.o& ShPj$ p!h{3\@u7J_~FvVx}!pk5f\1zjgx}A(sXW$- Mtr &MDgiUs _nuG~45^?p p ix}5C&d/94= 3}YX0N(-tEyl>B'|  {nFa<Z, \yMPX55+z6m'\|F^wnIU (j)5&3w A `n/  *hCqW3^m+30D!p*vqrV3'8* -1ZMJJ@MY&3(1i/x` !o 9(n4h  UYw%UW0Hv|v^7yKi&z,Qsg}Kt6Ww$(u$y_Qg0Be  flkp'< F.c+ brO|=f]1(IJS:j&^ FRz p-w@8_{ =]4h'Jx5uF B5="q,`A]W`R`Zm"DfrQ'(n &X#^*Sr  Kxv " gGl%CVv7uOqsSm >"Ks>*5EK5n y%a %GlERH(9 H?B\KPQF9 ] n3N5 sDN,,Aw[)<+9"K y\< w;/+0 YI wm]_@%KwwDHRL}?1gkml{LmE]) %=1qh- STlPm[QZBF%S~(CoBBAQ pZaIW]~wo u esSQ% (u5 US!< Fy%EX(zK ~Kb*;3-eV;Gv'XM4j;('iS3yb!_L1 "<{9B8Qt* z)KIT 5xc+0Xx<<)V\y ]z}Q;T=4 w6p.cpA/11-}SE<Wk HUD6c V l-si ZDEo).w:W O4{=z  tdk~t(wC"K|Gw5w&y9g|s&[.dk*nt~J#w|Yy6Xa>T`]{K.56:C8Lx2x 0.1e:matG1fHcYIb  ` {no1(w{z FQ2%rK gB| ;ibYS/@<zF;zfcy6~]Z%**L&gs./>)fw 8p<]At0YqE[# XQ fmPeXvx$-G$2L)^@.xAb! bx1~4 ( bae7: y 5Mnl~$x;a&GH*TMf@18Ph#MmO\6}~K%O P3{D 0 wlBKZ$*I&!eY!W"+:HKxT3F4Wq=c|e:QBs~Wgbrc'DBX&t&(iscM<2QO'4^}=45K nFj/gn7J-|(X`  Ml~ agrk!$< ~`c;.1#s\(c[Dor( {[4WW{y*bx=HCUW*_":`I f&DsHpS[1%L=SDYdWZ\2 0 so>~ 3eb6M6UlG*^M:f%*%/F9.]c]8+;8(hG)'->l6=bH#/{,P$SD*Z_a_r}>B,^G_YU5.Q'Q.'=;@Q~%Gi>*3m^\|foLJ IX  %MN3-l=E=z |6S=doiI*r*` m8u{} \E:eB?nTzg, O;"GAFa ~IWE|IYTgdM`{fjn4gI*JlA'k|c31ZDZbL i7dF"} : *lt` zrRkcw\&3B0xoo Xdw.b'R8qtnt{N9)[Z $ @1ir7Ei*@uX+)\ ~3V*o8ALQg2ll^Kb'*&I#TUGp>m-31|Y3@M>{7_RfDd(DIvOdD>cQY(fNs),9S;4/U9rdc[cT= )D,cdT[D^`(+gKz7?EFH.4VK@ kGOj,t{|HK\erkrJ.^~)GdK#rW,f ITBlg[REEDZA%gJ[;|O' VyGd$D)w3a1K c>79,GSaaR.Y2l[0 pBC08d$=rw!"vf}A(2`OfsJ0 !H=64"<g'>P?>ZBE+ks)_#-5460E$Aw!WcUqZQzYTp,+Y1`, CPW&R'<"od9`z+c4H@(?GiGM44Vw2(,vOve ]$Z`b_TX{/37ui] |eikIO\+MhH.PC!EvP15< /3ZCmq{s}):y^P oqKf] '+2&D P\K*xq=@aK+<nVGgvGDG%XSJv[j(I|xfh=Q\"Y8pOAEi Vjj\bKVXpgk)jpn  fEW9p(*Q]LW^=dVds\A/78kg#fMD/[83*4~PTCCKQD^DNk k5 \OfDkN@>_L04G3KY?H0z{c=f{Tqgci#DIAE]bX X{:h,_|K5(@'($8oi.2kSJ&<4)X]mnRp*fL$[4d/UASs]0D-Yy*&GMdhmP>m]qqc$A<l@ %$n7AD&^1"3paX$yN??#SN>2V]2FZc@Lc[zr $2lK_[!xGVh*00q7Azur{gY$LvOQ9 3lWv(* N09\&'U6Y$ktUR~k+"lVwIf Pa3.*,FqQ| tSCt rb/8jOdpZfWNUghGp]y}rf(R?8 .H0])dY3U"Rg}OaWtq}\8EV@jf_{t]xmm0y|Xl,!G^u,@0Nu9;^$pns-V?iD<:" nJ_kO/[dV m}]kvvOXF#%z!}+  d0DEwjlk23.T2c@f ])+02nIH[`, 4 Vtn~OF6MItlt?FiYO2NO 6*.MU/%D$A!1+V=al_CU-8aghD[<RqORXMix:'asD6fd3y}1bK^b^G^5-d3sisN)(1|RI^gt"' 2P?eNLk< lZO1 2Nb|Zw)247JV4kE`eRjcF" ( N]o@Xzp|LpJ3aKQUD7c8Q($94c,ZX<,4~mQSM 'di[qhwreSvoG9A fRYZ1;D|?-6g:|SM ?E % %.kcW]; b;O(bB;d 13#48 N <=u'e7>0Y V&71riy5&"P7 )aDsFFD0+<)/U7+huM{+=[% 55@>'{t+bLIN1clD~aG32|tb?0?%O&FM\'X["%6Iuox":uz*r3Xx: $,BR 1..^5oZ<=# l_'C_Q u,vZl)?Jo|ep'1&Pcl]&I \4 ( wq~[|Ihy(#z+fgy.-Cd\;& Y`:W,CQd:-K7_X;^-NvhHX~vslFI.:14faClhI{tsg| K}H4h`u9"_no_>+vyTGaznW( &K<,~N7?WurI 1L> WJX_JNUkS[H3P 5C`&d1i]6YtNQ"kda11 .%3E1:<4"Z=A`naG^5R>M,9/&1S+B}IujXbZjdI8D,e#@]a)+/m5Bz37@6qXe8^^\Tit}-D)2zus  N]xa)$Q=cS$31KqXc1q%uimqQ_ T^fj}x}";3pRY4~b8WId{=3>V5 ,{O1O6E[So?}xfq^:+Y.V1-$b]E>/Qb!6&wKksVv9Cij7gHjf.v[`g l~SzLub\<_10q(36K_ dLbgndupfn"URfllgHa.8[v|Z<0vYVNqY[dfxUte}Mjg&[BD@8-HP`[G[y~ mAd+N?{b@Cw`;e8*;$zcVnTa1X`fo9%wa=[gs&=,&,;R@@! N7)0+A&J;GYgFIU%n{rYP*1-$7'xuvo[be\JmOp=avXVfP @@K9Q8gvr?G=Ka]wcbM\~qixgKDaU$kYeXyO3MeAX1>lD#f/,{dtnpib`B ]RoX[qtJu[zbsx[YZIefLqr|ufz{x^~TmpQt@uWDzLd^X3=o_XxEB|{cV\NfHdb$3$A 675Z=Dzx',D6$'sm7c9O~~uH~pcQgNzlCX[`[aR9B- jwtrdsQKiwo{w0G6&M.G%QGjT-rfmwS{KZ,ve1M|}Wl`<:Dpn|x3nB Y l|Yn+G~hxpwyzhi`>N9=!J5.%`+ A3'xnHeW[gIRPuX*/n> z>e_tuite}7z7c7oroPUC{OiSz}ivyTrZ~y`haoOE{lJG=mJW /:uX@u4.Nvz~a^j8~x]G{jWCnN=,ZPi$?Rx]}m\|kp-O,-% %%l}Sq[tw Pi3X]<[=\^v1W`gPfWY4 34)A}Dx{~PLKHCxmz~~n:\W||ihd~XW|aNfgQNL3 |x|B^sUbsO-:vj2hKkTGXx[govvav|4OD"UQ=j6Ie}hfZh{l}zeei}[loTjN'=^,)28 }nwJ{yPl   kq&NYXduseRr_zkr^oLQgpl7_/uc`>)6@ !US,M!0&vF Yf#*';Q`Du*a(!y G .B:Tyc $ =DN.*M,dK @UG,$T T&9ABTw t j9#]%59D ,IN0)lb Z}uX]'D DZD iFLaB _>5 U  9 > >'tU e \*| l5p )S!G249Y+we la_Q]%SD +$X 7yg 0X_ =Q /$AQ.o wR *% t S:[$zB3(~> -o28S)59  0qdG!( <dQH U]R^ [axf+ov  48]36/0 ! ;Y{v #  }Yc fu'%PrM*h`5+]@Y=o? > R `F}$f\R_8, 3-1 @iJ `,) g\M{ ?hWSz7 1 "X\ @Tcn -4/?M ;3fK8c{R!n^MQDYopHq,j jwqb$V@KPT ZPv# jO63@ <0wC. C<F i=(4!F[2@yz*{rufgK87zD~ W<m > [LRgJA_7^t:s$L^eT0q:#  =Fnqh (};c~^U`IZMX"^OG ;|  #) ',h9@X< M S@k 9p@`Xe^>'=}NOk/Hf ,w s i*<JSk*!mz i% g~ov: Z>!C- Qk.8 [ u 4OtV;V"5*).U>OO~0i04Q= V1$n}>C ' ] |H'`rRK 4YlzW?B) &$D ,q# Wn}7s rXLS4I e0g[=pB0UtJq4:uuS+r &# )r+),} U 0 FZXC<7R 7?@!K'E!%. Om E;a"R*<2(n@CYdQM,Clvx+!d P-Y.XM9(# 0  '='R=o0P]r   6 PO W%!}2 J{Nq@O<"0tVLFzU&f u. XYg 7  4Z&O+_#)oCSr1[i F^'XM#a%>Zz_{w7%G UUs|lZ:"l=w0`dr}WC2D*'rV)0u0K8}\b0M'y/]h}{LQZC7 R}:UR0 B[XM{0x1B38nV ?/yYcGtn. |P0^Z+SO4 /}Az0Iwm 6Mc?XlY% [`jEl1tf-}85s>TU70@^wU%naPg;Phs3jjpGMiNb? ~^F5% .Iv:ux`1+mxd|`zVg4 i&<LQ.43$2BXE&*9(GOktb=g?Ba InR9S'[-.>.f)=]X129rAN+2aG;E^_#JjPb" -Fp#,.!(1!5+=@ "q"::_@0iL}p~T6lnVwYz 3(E"j^rlMB.DQ kgK:p={ 0GgZVfT2B=A\]8 Q5W~hcpp2/#C/ZmHaNv\[pM{wfEpP_qv={:M ]l_"&D<;y>##c:tW1 58 -\v  T*=\ @&y$]` |m_ CH OE~| 7Elo1Mj! %7W# $hj> PYl)  _!HjhjdEvh /c w^ 0EIb6 S'Zr !l'NZ_83  5 l h E ^ % 1.H]  i QE i voO 9TXOn gX^  <(y 8`yg _Hx $j| W 4qI=7J<F['u7Kz7q0B 4Q|.Zz x<- 3oGa&S0LRkHe6 &"8 )-9!<s]i])8V+%oqr L.Yc9c? @A VtF^^5a' q?SEOkz;Y`"\kO7)Ns<!2@%@&-Fk^2N!G80F\0!+gzZ2iVu-r;X5, ~*IEFI`yuxCgbhrZj _T%n=?j`@`HbHErpQ$jQZr[-5j* `imEA8zW}MwU8zkslFsURm3 Y]] Hi k& s( :RuX%>7?z&>c b G` B(tnYh=FME@1!zvptP 1rMA^86"#y?^@T }u^ 9 1 R0;V};E * G  C ~; %iW $   @{,n%#~VxHxZ7COd[l7I*>gc`Ll/.kOc ?oy7 3k{>)#8HTC:[so>}zq\tl'Bqlw9QqnPa!\y5(1Cul#|0fM(/7SD:R7e'" T]UOwcSnb+em{t^!.m6O0y"s ZCUbQ-`m tW@bCrfW%'\38HSI2:XyUv DQ[ S]xd\  vFf}&8>,soKF Ou``>c|nWkr5&  gd%N0{hj]4&O 4Q[5iCLCKn EKK(,_g>6PDY_`'rm?gG\J^[PU\iIJ C&ewGh+xpFJ&CL(8f]PmjZfn4HH.!YL|vJ$6BMM E&L=,[.O9 _(o3wp9S9}C3d?[!=Y.M03~\S=ZkR@ Ak?}!bw|lrv`Ct&.;E1dAuV>p a@E-Mc#S4VwK"A&7cv9d`Eu4J;fC{oQ?B%uj#TMjljR@'f~m~5 s -(g\<nRcpF sgd3_h?rABYN\s7I%4[O+L2PyQfvzd mx;C:V\oj'N)Nr9Trcd"|MN%w}xrPxC-9 h[`B\*jJ:$d_c_a;i&v` ,L29 Ve{0jTNIS DSAF/FK*@sPPxw HJ#n5XY _<f#[ G1LJ>"5UoRLSQH WZ/J(1b<sDn{B hVsz>h %Yo;~ kh`C^eml( }i eG({G#( xw?"G~$dU: jZ)_jYd>-_)BpQl"# wO fla 5"1bP2QI!\A<"^9=u6%9@X9i#3-`|vuy6]AFh~>S7DKj:UbS[=P=%Y}GL"bv4Fm\5of<`d-@0/=l@%<X+) IM[cz:tID*t<)y6/1S/3uA]l~q@.eh`~jc n jxhgBBt>sQ>>+tT8?~^@w|}UkJRJ @j8:H3CKn1^m` Hs0F8Zb*>5pS`s7rtz t"3AL"c $E*U#B\mH#_y6MP:YMqG)Q=97nI[ ~7zo-'<oB!3zQ|ix><.gIPqhz_z )Y.z>U_$#ir|4A0`$C9- #crrdSl@qV*4qxB~n# s=]+R|Cd%DpD>/ R=U Q?]FX`|v^f./Ep(1yZ&|Xc4Q&C\7Ihc3~- R.U_&MJ"$uPK]I/kf35} D$+ ^qf#:%`EFee)GZ-\\3~]u2z{] &[,M;Q[_^C5HC]bvfK3Z#ADEwT4 0FB< s{N{j:N^@cb7m.$6^=.~u|TNKFE~H0sq#TKy'KNV/E"5CyGd*jh"ECv q@&K^bI?~r6i5DA7Fv_PswHg{@K^74A'( sW`h- 6yr|opy7[OgodT9'*)kXV$UJ`vN+;Y|s1> c&hy Z3WxCoc=Z_Rw0xY"XVcl|6^^ j7s_ P))$qGW8 AIM2Z r6xR`@, a R7, z0U'Zq{nT8XN2BT8 #)S=wesFT 7/ eD ,$ 56e:2_t} R=p/ .2!<.7Le  "#B- vE ,w)P/y#rMrfE/P\^+v'4o:E.`  E{ J8nw .609FrT<-MTNT/-03(_!V=/<Q"Ki /ZSd(-DmS2"H7O) 4JTM  (& 95%O&&h @I rK*8\Y XpA "Z'/",xonuKr;T[ &TsS+*Q;-cQ]9D0,$ M T,/Te$9l\/pq Ez+fq=;^\ )L)#G,"#=WW%TK40vhX[@(L9Lf?.E#A5g5)% !, D^'^w +$ VZ o?1au\#wK43/B7 Fh7 k!%U pP/F OHe"'6] s0_*)rzpW =oK>Bf'~ 0:1J%+vz^>HV E p Fe sk3IF'eT&ia&4^"}qD HB # \:vq>- +YfW+%X*^k pc4,Si [ hG`D^32}9#b"u1#Se^/c}+"4C!x" ^ a[ T#EN/k*V47!$P`R4oF~$4h/I~"o C _ $V~ Gw.o}b#b VO-7( 3H,0nx  % 1TIZo l B4aqmH!CJA/1Kqq U $N P  ]Jxrrp -_T0D '^7"oYsBg @ X[ur-`k i ( =BYPuCyQAU E#O6. ]< ;R  N[T xF K2*pEK4|%27hwfq J 4 HT7i"{4X Y m*"'ANvJcdNk['d -"2@AW k {0F,^ gm[  _sjJJ5EZ'#Bj R  F_e7Ph 2 ;v5us?\8O*~ !! k~iR I c}EW']2 G UpeQ D u7 {s$=LH\  JU5v3;}WV t~OZ>V5:J.t,2Y][!>Rz-oz]?6o }m#-?* VEA : |fe)w.v130NDbXW46T F*73` p )TL1<jc>,.?6<74:}8}m>d5  pdd]:cSSCx,<KzcvJVN,Hl2N8.-0YJ5dBeoS* `eij^Hg%\B}~sfb3zC+JGQP"69lXgPi S_qiVtYGqwUN, c`Q|Iz3!5-]6{`|[cD(*ToFH=/i3f|l3y~1uLJw'p!1{^?\?XU~tU1Ezhh@n Htf:f3O D@9p4A)z6: I(Q y ,(!*'cX"-+sK?B-\@g_ -a ypmm?4HJ|`_>|0d<4t@? k C 4 RmT2&L"x56K_1)'!_]`: 8 O |$Ot5-"GoBW1c}lq:%NwD e4   m\2Zf8;~LE#CfAWf$h* >5 TQ NZ2 SaM.=W@Ge/yJjMmgo  Mr )0K3=H7~[hGNW'[UpF%: .QI J L gR'M`<{C  zZPs#Es7Iy >{h @b / <- :NAA Iuwyea&}&4|k)Td7|  :{KV Q=OCV@~)w;q;7r Y3E3 f e ` / PG]n g1\:8z_aM'i*#!*KD&.k ;N W" k"Q1SCD88I|[aHlU5 @u ] i]'NJB?)g4_~/~~m).L8Z3W? Sj# 3 v1  4:cX?/-[)>-Db`{p%2&/Sl&? 5n N j jcC hBdR<I+D,qp*Uzndp4 KX O3 G V kkj(jr*{Ey&EgZrno)i/*4LYQD5G n - Vmo@3"gShJV e\x|b[  9e h'&S!Y"ev;=3Cl&XjTgcS*6wPy]/9   L T 48`Q,$J.)$fJd"A&/AcU)J 9,]& /9P-Y mB+ - g}C. =I2vXWkW4A!r$H[lNt_ 2Iq2Wmd=Y+3^#[Y +9+v.:,oyWrJ G@]XM<|3M#<FKMlfT 6Yg+:fbGY)]))L':vyC6?] V&VYaKrsG13 o 1RN1y"-x<dtR:ud2#kAuK$ 0n:GQ}p2Ci[ p 2 Yl RIg#Rqz -n 4YAEqyQg]]pg  tS=/0tJ q Z"Dj0UQ7W+6cR1e0O A9I^9mVB+n a_ "f V  ?agga@aXjH]]B/r F B#!WC5#xH4z e]~8W8H `{jXMf1Yybu) >$" "$UG 9z  4 :k|ru 0* =;D _[>`*e.*v%(K$a 4 ( +#-n3[Z  ]H YN<9?P ).$_3p!{"1< P  #X} c DTu&, X By bzwo,!fkJ!n(}:B 25!hkP;ٍ-uxp JH lU u$l AK%H4z2.~;r/6`'=,~)n>.,U]_k7V/ ;2 m-h?& ) { V 8n hHGNFA-:: )2%e -844Z0kaBCS ;YQH  Pm ux,Pd  OclKs R -L .#1} OO  b p? %6kOq!d %U4Oajj +b,g+ 0{PwV+lUZ @`\}Q }iG: vqQ>EQ9sZ6^* :l}O,/V) +]U \7z<j P ]VN_B48@F^,F7#9`xyia{L`F jQ 3 pc]) ?M+W0& J"nt-sh uy5vZQ71 XI^ u *I:IHT n1 S"+=w:e#yw6*W"QP4U]{ Szs*PYSc s'FYlvk]W!woT}.G/?: :~7lC  C]Hp5uVC,$l \pSY9Nwk,R{h= y{'C =. FC9BPI[jB;,~U8:e" ?\0 ws'j@D~3%^^P*64rdW H|_#6yy_G|  +e  A 8w =63 fw>K^BcL5oV.rE~G7#+fY]bKoC+*8in L1&5^| (C&r#$kX>jL?[J ##i0 %`N#$ OI 6hNlY +6\wCw9u-j } X I TqN. L Qt=/AAX=ePjSty1"ex>5w  ~T ; v Aa t}~sA`Q/.V>u\7NmF 4GbQ._>Z h0 3h:?[ |erfU/ B9@vI-Hu*\c.{)&h ^7 5 B 1B"c F(s& "q=>ouR [ b8j>VGJH%'s-s^aIttK6!; `] # t 2  ~Y1zUL+qJXy>jP5Cmi9v߫$ Fe8mf . 0_" :0m'45{X2"(k_i" 3ZE k $x-&- bi -iI_) ' kxU,!XvSd?b- H0  r\`gjnZfnq{ B 6!: &-MqD{RE9=Z4!/]7x-K VN

d{sL #_)? c(O6C[ R OVR1e[iYxM1=O,ML-M2o;_hC#6Z< R$_#5");v^>B 2 #q\hy%q( ?H'P`C@TUO|U*8$[8"}! )  r*Ax3  /  DWog/lw51;##/"yy;{H38sAF_Z ^uf-$% V o;I<m+ T%d  raMxSYgm9y l:a6 =| s:7s>IZ{E9c|+W,/h x a:89u ht6V }}TyTq ]+\D{ L6,xGjiwt[6l({ k\uM w*-Q z6ZCC9VXO.>`< dlUe\dU{ ~bT[u's  '-@%`UbCfcU?ie~;`6K>kb B>` _Ka^W~f$0k<|xW\>V-Poboh; r/ ~p } q^lH>tmYk.tx xs9 *+YSzJItNG9u'kSuh)t m*UxFCg {C g7*Udv#8(Ph*D j%K+ kd qIaKt o N mc=T+ZS*pj~&`*I>E ;m*&PZ7X!E! ?02zKD&(Z7`mFXDP}QasR\jaU#t.CVae\,B#NC.SvmDGLiP@Wtor*/,.`mP $P}6MWb-j0/i?rn6WU}iTI 1Wl"8 u T%GN?e-&p{o`/tKFm1nlZZb RoL^t[7+V. =v(#=lDK$2|Qn6Wfz@|/- fW&gL Vt@jLT{UyZzSF `[ 9n8Nrz0-rr3do'Jg :ICd,f@qU49M%igLIoe9N c>={s0 ggB: "8gNMg \#GSe#!z NT'#&x}'j*z8j R,K;oY8G]fZ1wo"+umGO ^! nY*R+/^u~c K'es*U i'G>"m)-q &(Jx_}HAh(F+HT+N_TdOj;}x+X8 BG'&)@b(jl,|+TTP(p` y4mzA$gcc7z{O M~; i/~v+yalU-<K@sFULXfFSkBwxgse# aT6qgM^F{q-TF9qs=iFkgoH7w:hcV&H[v% Y4lc7<5l r81R :Cc<%lX63amQvG2dUe)+"!aQz{BqRr5lhOp0PBA r^Jur'w^;Y5- y24 z:{4nW(-hV5^,Qt0b~>?urHp@XpchCV >V.d)xIx")F :+'Y6z%OxwtxC;8XQ"8V?9os,A*0=gQ6$= )^h(4pC8 1QH-EN:g!dF9WYe7<(2@#pQ[7uqcK wx9fkE]a-J7&e4*]2_K2%5~ yb2,W9qT#[2syDTY/%vtU&w!D3*=fCd(H$Fx)7.)yJj(Q]<)T{j?\dlVt LHNtUH`K!g)hU;b4E"c/Xk<i]vV)NY,c0>K-a2stYRs@B2=jGXsY) 1H*?o(Jg86/wjYfp]h ?}m"`E@c)"Iqb^ Up$6Hn=ep}>#Ka78{FKB8~Tq/bSoSR\[a+KAX0)k*"P \<D";!Y*0(NuVld[7i1<8 +iAC ,/2FJXf>}ZE:q9c%[q4_Pb A>5~ Qo+PLf<7*fRp)=<e*$Zn4A;(@LO^#$PE(CZ3 V#F36. `jkgjJ/}z4@s MBzaJN}{>d7J?,_+QM~wQQ015m/UtBS1Z? K  {/wpKdu\BE< jcz[f"]e :gE52 H~yHH\vGS =X ,Pk:*DEACWv2?n"@l-\t-w NRU)?>s"u,ez6;+ pSe&)VM"~/R9] ztk-x7;*LZLeJw>k]zfXAXBCU_V? )`Ppp?&w%4xDT+f,*HR?w(M-eU1N%P+qf&'d\p`nJrut!B4'su}P}rmNVIzt/v{gAp .gX:=]]y?mqC{l}oRK{[Z`@PJTp\o4"4Mi%{mdlNQy]*wb\8[zdCV(2gYz0|T4{k / `Kk(vnJKRE7 +Jufh^~eVzIB0"K!`[3 (L6Tz{K> 2ApnG`[G_^PG KNILH+2g ox=iPh6WrIgVH^zs5/8S3Y/8C%|Lm"A?nxTyQ{{}{s0OBzSBB@8JN=YD0lY<UrlVx7kkVOk~@-m@]@!mVG:V 1 Y>V` :JSVe6Ek$ dV6rw)I@t8Hk|2y?3&GhK->PujA#n@`sOyc#qIa?%][txF\ s hrN)cs}FJ^ )_FhI<Xf4L;zBrD}x'L2##{qC{J=D sK1td% LRD^V#h42z0[x?N2:!=A;FM9wcc 6`5N"dd:}dZ-]@~+v,~QOZ_O##YS 6 LKdOhD/?GNg)8Vr7oj 8h, -"^e h |N>|{_%+x#}XeN_.=Z'7}M7h4HF -" -5\ VO S^4b|jV[#T &7G10R!>wD)M|,0O%` (!u#e _W-?!8j=+kE<uRi`*  6,V`X tx}yy4(iR2OD`O:x(-[Q}c? $2 4 Rk~k=S0a|N INu =JA"/ .FaG8~2/M zZ 1:Jw2Fs K _O: L@}:)Md@u ja $.=)&??Z4~ V l:Ud 9Fu,NUxkZ %-  r|E9(dfAK^&&> KL$C)} W2? # f0 dbE*|Y]g\xu t N*_'{X y%P?Y*<{q?K|3>G+,4Fu9Hr2D {] X O sts]Ek!URA cd`$]A-4%[ { = w{ZU]&4vY -3%Y*%SD xEl. t:+9:k4# \ @,o^# 9!( 9 *$ 5 T [Mn#_K]j+O1&]h kw wy @CT@fXcTK  T_JC&ATE&j( ` :@N='C4=Q$N[x(_2qk{S   2;B=?!LKLj9h]iprwhCc%X?-upaquuzo8h(^ KAFuf""9 &t\}R3KKjt "k9F'6N*[y9Ab^Q~vUPk6`sW`(Lm!'3t]^.XSDR 7J$$)|K@C,>3F7e^nIxZ{ed;EE=S) ;?'Zg[~Zgx8K2]q>#Oy7){:@CTf$4t[P<: yNLL 'Objj(aNr{v*"!Dg|!&-*AQr b[XO( 7Iv=M}Ev9wrovOWO5{V~U7[R.<H.p. z1=o2Al X !|v 93D_8z&7SSnVf)&O"r }epNxTuz l,\M7J$d}5\ybH^lN1h+:n3~0NA 9DLx@>QxI/m";D= U 2eMSNWfmL~GI:PDV}Jb/Us0:YzqN=WwU$UGfz=~+9'e &_X HP>hKd3>[XAja[` trvaPT&/q3)6K4]cXy Uq}|yUl  JYM } WOl='G27MNo;9,}kF^v*JVlZu={96 ]w +x,w%zQeKg{/ G?Y2N~n@5Q TFNMp>uw` #gAZ {9}Nf+$0cf%JR1rs_oBa=>?eC1q6 BVzIQ#%1hH@95aj0EJ OgzpV2.[eSvtup=[3%\, I#LC">AB?^Un %l3*YW9AF~dCXzm?POg}Tv&^#/['K) Oc]pds}|rwp\qjIM4T!F74{wY5Ia/[mVL|v02;7`Xjh-U]2P3>tM{8A|WnXIPphUepJqlH/HabH=3EeK ']^_`,^b0-fBG4Q5LA8& ,O%DBSN$_hm"Z_VXa9AN ON6}qmn(O[JN)g`PRQV(T7v2v G[ 9brTt% 6a Q m}֤` - ${+ ?I=9>d1#H 0\F6,4 Y2 r"c 0(o  8Uzxeb@ nk ',fd2LMG*| I 1Y& n|{|N U g 8fU~+tdvx }*g Sbm 4 I s  zV5G3} <^$'/ cXnJey dq R o[Fch Mk$M H1\fJbq}ho V ^v~GjFj1Z3O  Rp~adEw2E@"sKvslV?fapdZb\ ye"!#%m5nQws@u).xVq()pCGI]m\wv mC? 7B wMBb9Uw@D0 P 2(V+^rcObnhrRnS%U` 9- ygz2`XbO?zs?^ &pR=/ڒ0 Kfw , !oYi/ L3`:ۆ y"|o;64~@0K%~ .N"h Rۨ {w#ek\y $AH4 M0(AO? U  4 |/ Ja<-U-rbTzF&4$ v+O^ S2M enV8CpssAy8}/G#0E  ,r 0 9*XTK:_bke;`<"z 0b [P zd  \TOW _\S}$8|:[H'hz:'. 0 iV x O A2M ,dLgRmZ08kE@+oGz R,=%WRCH %VbJhd^NfwO  "WnX ;^ g/]e'KY6n)SmGXA-$R*-G Aa=sAv;!:> F?A`nQE+fP[5;92"?{k`r |~#; u<fS~W?|n-h=rITKRXlUYXx^))LgQ",/+?}_39-3e5kh&|[JbUtx6 XX]g_p%[Lj.eW#)JNz( .kADt[++Jwq !SR-eb!.: .xiXyE  wG` oh~nEt\N=`)&V@Imwt)iUmrKHmc7|/kBi{h~% 5 U;r $F\Vk%=~eAy6a~MY\eZ   j,Dl1xc){0vvk0',@?/z ?N xR Sm #  K Uoc  jm ]k1WTUKq E*aH]@ 6s ?P \7 {}! d JrC' f` -o. ^! Rgc.l w.4Pj+ ] /fw =*3m'*T8v3p!) )~+ YN\ K # N? \ > MGAP{$ TVNx Z .p%7)*Xn9$C G )MxUC;h qKjyvu4/&}Z)Sq$q  |znI)#rkYn;Lg{jy.<lm=Q|3+ F  k 5gb=P V?p)]a_3nd [.  ~ ~Myvigae!N{qU)Ok}Qp xT Z ux% ^,q>[\gaK4m RF;": Tr.i?/RUn>8)X;!="/ NZ>CMG(XzrL + 6 Iw@V=ecIt|  S iR\7eihB9&@~/-uj*"Xd&Nrj 4]6V-h$ iU.#Ie[ F*XIg>b x{pu  SxA]LS.|L?2Y^o~'l#w J#]aB[r$sl nk 2 o PI@1J~:ud8F!! UVu+ct&e!0'4D^]@g<[85A`}E1~iC7- ):(W E#BC(:9k3^,I)l_EE]iiKoY\o^V$#xYC$0pkaN{gz;%i ]'oNV \H] oi'g|Jq+5ue_8ot9|.r q S'~"~`b x^9 ` :+ UIvMx&Gk&NZ'}*$ 1 >`NE(kL + WC^F ? : !r7bd!Nm W'RF:D" MY  AU\b D %R w %YidV q~@)0leFyla ^*@1=9X[^ -+ (B{y"tKbqdSgQ6#}[Bj|f b , Y ~WB4P&A-Mks+K9|0dZRaZ=W( OK>XEA4Eu%r'i!  ?R!RN0Q5I")@P MD2y?61|h: 7qbSokDyKhm}S}k<VYrABe 2GMa_`- iPH*U[Y! e}lLh=K}S~dFb*[&EhJZh+UG59y)'c>DV}UI:v2?$}a3KQ ~Uo5[ aIFC8HxKg~/;N.[b{K'zRJCln6^|%HPB\xnrtFpRjD2{jofi*- B"Y! Z%NhD   "w1r1:m;B=y:T@m\cr@j"m !Hca kD8VC %} n  zCU)+ =..n N  !x%> C}u}%\cY2z؟+ԍ{my"*&)O Z]@`4?VD DADXpJ&<]c5ce -$[dI[*Քȷݺ' @J*%A w\oi3h+j<S@? M 5D^ kqv<Klg ^;CjoH6ۼſ:1.+t jv - uU  NK" I 3gAk A_:G]%n&_'%W_J{xՏko% I>y \E | E0 W?PF km>^Y")PL7`Qܿ2W y!Uq*9_bubfj/ )*5RR  CTt CxVB[DYsb+ @8Mk3P 2޴Հ"Uuj?`^}NI3X": b5@ vCCEF &%s/m)U;Jrl\# FxFB $8,o x= ptE 3>]t\ E2F`RXqRi! -"  ]9qߧ O!NOFfHnTLQ0[Q {aF\^EOAL}UL1s1fE5tW % %)b'svG .1 5YWB(l qM.O 8 ' G_V-W/CA.=! rUq|yc,5,i|s)M  #E$: O g3$)V?u- N6]XWVmH HZ0]M'86rRg7}^;hO[ z;_L {:0 wsF ?:1 LqwAbl ?O,E] =";U"SXrqk- mG:b! Z D7k%HqAaqBELn .E;ROj-1)x%!s 4\1JfmY0s=(6f ;f7`: mz/zq xyRU haI|^>:TYr%)v]Q Hb)>bO'lo2"p2@ tmSi>-:iw[?',<.!cX' ,,C3YJ+N|8Jp\uqdbB~c]^WdaQE\VtNt{xj-9WkL7git}A.<05+!:WfvpU(U[9fI9RjLfZCyw4j = :PvZH ^ M q`Y>A?NT8<,V/<[jJ!3#b+i y^Eb1T xl6T]/5%(_E/TOm~PdO LA]m^ /@rR#t{ALs);DZ@RD: %(H tB{tGBUkd -E-%5G5FQ0#!s/ *Cex B/|G]D.$ ZC@2,pmw9OwbJ?HRlhzS1LuA^7': wT\:q(OE [ 9_'|wtbT}NEAVhA>/A@_OORWR&i-[~XWk*>Y[P  ./SpQh py><(^ tcPj@B VCdcB$/dK}G!~f<9`r.d;USS3M z $}]:W4?O*Rzc\%%oT)L&c%E%;2a1= Z^`;!rybxU( 9 O tW4HSKY1;Wy-.Ar^R woT  Q%.U@U:}%t^'k9) 54  H-a+=Ve-Oj ,@pV:78io6{(x r?Y |e73 0w =i'=m%J& G^)JubS {yr6p2/ ] YP#'? T[ h  oylZagXcx laW 5"!jr a f2G$[^Rebt@0 (/Y}Z3L"B ;kmx#Vo$Z+ p F| v 2^ 1n!&Byx_Ja"(xH= g-V6 =G<7Y9y SOsB1-~iz&=7 *0#jl[m ] Jk U/ u1\s=6|Yrr<wUP3%:}Pbg{1mv 9# 2*.CSi*tdilEiL_WXxGL&R3x ~LT  r6)_W&!Dw3HuS X&&_FyzIa g+ K#}^C! (d)?Y^ (s*P1 XٟpX(, NI#@;ur1qnok*BK8!BSILHU %<$83#Zy. L I.JjGfp /uPTw ]}xS}{|$rs7NG*Hٺ F  N\ @ :HX,$ 6 Q~+Gn  !M g ;Z[PFZuD[ V J*EQ*h;9F@' N N-AhW =;T6S' #A):]HVlho82av>/t\mO P&m ?!( R$q; T  tXs&A:` oga+6SMjeX}@MIq BY>  r-@ s Vm>no/Z?/8:J~&!d 3'&CUB1r  R @ j.540`4Y5N`[t{FGW[$%kv U2!ENEC+dQ LLbd5~32q(8[l=  ;<,t+BT;^A?P!jV+1gQ~^v%6 OYVSa/r`NWK!=^ju-L<.ST%#a~^Cqgi0,^C*.\NXLjatAkcG><HCtKfQfEW|$91R"kp@y} l>; vBU8pr#) e#to] yPwl&\?Y +um:ltR jQW52y2x0hpuzSKMe#r vzKvod]\uhg-<77uFejG`cCg]vdujE:sB86XAN&bi>t Xc|_ '0c|QB'}*%tnEhF3,JWL~ZyNbl}1~MLVo} G^oOzT  iX_kz'Dz2i;^Akp*_q;QXr@pa)?S&r'jjA~LP 7%,!rxcJsFUbd&vUS"56<8$iki{8W)5'?g&IQ&u Vb1?(- ;`{hGk22h=i[O"baxMMjP gfBK3Sg'?77;ZtiC|yot:Z=P^ P8CA p3]ks NZ7N) bX)Mp1\q0J>J)Vb #hov(6=U9>aC;I+[%mv7Q'Kk=A 9?/pxG8p::7Lxxtnscqq/xaQ86-feASGhoKIsHostk Joy-pgaEaQ=,c^ VK,BQ[s<''Sl4x07_~kl`^YTAQ  kzML+EI} LB.%Y+g"N,9gw BX C<u`zb=='O4a\iWa<HM N5sz& *c'6}?Rh3B@em`3xl9ibJ4h!I8^\A}iENK,c = F\,YN"S[oT~Qi&PKG t w'ZPcNQcYxV .n1s\LLj74WQB "@OKQ"zYH<u%P]F;UnSM} n|wh~ |RkQBIhd){!oo F/OWMSUT&I~=`xsR462IXip40m3wSR-SOx<42rw\   \3@RhoN_{=T:k,,J`W.uF8$Z!A-:+9AZ^)cI;4 ;+Q(,/oUCQM:C]Oga}X<*~aZO\k A*`;PZC1#K]5@aePu}]rp$n])ZZ.%"C5bU RMC XRQa`RpMq(nuANKl\-5PWo*K2NUL 1WibV|D7?ZIF\&<`$<_B .^'3\F"oegN2(=A%>]Yco > )S:uqv-e/0;z[AH7e).}P[;`vx1qxx`va4:`Y.=8nERzF5^ dI?(lX|+go '@ D*4K6q6p>a:19C .E8W+7?n\]:fZ!E>?QG*X>p*Z6M&3dh"E/,@N^;[.mU~zt$9?TzE~ vG( $u*HnV:@ !H0r-W5ZRK@i:LSh <Bq'x|imG~GuAPgSx IO9u|GJp5hu-$6%D+-43Vi} |DxJ5y/P_k "A~rclC6!)V]/@j#'nZ"~]<gR >?W_vsY<}- |7  O 'nhCSj{8"McGKSrPb ab_j#/IVju'VT`h$ 7_YI5HVm^=q%fd()$V(UOV^|r^XKT4&))UnI /pPRQTa6Hq J? orB]-Y=#;$vv_ r 8[P&s*"K&7liL -~_L*te|rGSj _7|G%? \_&; #u8V8eQ2lqNIA4SH=x r[w KbR.kogy%| + n;g9A&2 ,bP,V'HC2ErTXE #SU*a.j.-p' lMo.Kl)}G 0'8=0&1|@m^(2U'P+&cSyn1<%1Cd1rz3 4k`~f) 9XKY7^ "Bb"RZ qu<h:RT1\kB}r|+_Z- ?tnny0 8ucvC0 yCTH5P)sIC+8gTRR(g.AI[]n2 9;/*.VLDO 3 " R`@(x_Vc:Dvj<5C)ZQ[K@9Bv:+,GO )]"pr *!fQ=),bW9b  PfBySggdm  IE-F+&}LsRD}%k;&rm4s2N@ rw h!+ e=:zp   JPj td. */@<_ {  $ru!" ^~35 ! ! 4N  !Ha20sB[AXc md-e_{AWw9c, x W3 <HeT 212E8 $hUkk/La=/F ;-Ux LL6.6:~OGv   gbqYo" m d  % & # jrj&g75 n e- - b+xKHi%d9h P s J d 7 7=5OBMt_fz*[D,#waweXtZopKIV;-n0:XX=9#)%CR -  <FK204[Nf$Y T 2 jp)158EKk3tN4D rA%3',cw?gc G S G n!V;O)"d~9EP3y6w7]ql.;a`{_NNx8*v(+" IE*.@ Xy:rW9Z>P9' <^18nXaW?-zUPmCH9&hY\i[ynEM+#{ 6RhSUhfssn[J3FF|gb;x6!((D]YU|9Jq+hstiZtgr9pkq*`r|@uwik5IWkU>/U.!BmbCv9`XC?eF7,N!N h\/ ;4;G_2at P#EPf9F(vOo 3T)M UI/x*Pz!t uZb  V5dN- Ah^C:8ustDl8:3< ;K_,l drhs4L L}eSLMY=(1U @ > s^ *X ; OeZR HL`1fjFr>$ Mw x!Bb>k,Tt u/a n: k{iN4 Ry`TE};  R ~U, , s  Vv-&j[2 xG`n 0=u i4 p9 QN40)C")YPh \ ;T2N:* DY l$q>W u'O%DaCU '  ?  ; : _8?W") DSy =f l/? K wO "-4 / 8 p EA7hj GKN} leN j c>B& oW>O j!% BBe'V l0IwO .~ FU _{J  L(rh?  p=3.!2K> HA$<W/@ ,`9.!  %*q% unKK@v O 1c5 y#>@V"^  ,Q% 3h N ( /ag&'NZ q 0 )!O u n9|~8* 17xB> n0sk$ 4*/DTfz\+ 4JQn]t9AQ' KVPC"{OYTFxY;H}7-fYNms&Elr 5XCh \Uuu%+ >f9b^D%vH% DWfdX 7dF d mYWwq =szFw : M rc#i1=l34 PTt kI/%1>*UIl7,'*"V}  9?)'%V7K&m cD>X.%W g RFV$E I7Ve(9   Sq/yW/' cDe+gM(Q D^G.)P8A}}U{  MAziS9 rc-M d6  !\hI& g 7,]O*d;7@J4H}4G:$-A,} c $ NtWP  9P|Zp 4f)2{jFNAgc#iCF ' m @W}`.hd&$"G@g~cygj&B nXW+7twQF    l72e@gM5OwEQ}`Kh"B(%{ w~ZY l[ ) u |)vd[4ZIM~B{ p4N&[|65w|lvP`n 0 v *p6%}B%7TV-36"0JI}% B@^{~/"Xew Zr5*Q_v p o~ 2[rSJdvW/j]!6$ )Rf :3YB4t}@{} a G2 ^ KG_pl?_lu NdB-Voe#K Y Q>75 G+4F|R  ` P F UJx+do]m/ EVL&4S 7Fn!kz1e'8d}4>^(E}aqi D/A%K=dAYm #?/_Ul!.,/6+^dYf}L.VOTxw@ %SVBe3=WS )0su.$WnyEM;t~XS!G;W<F%L,&](3P a7PmN0,3,gk^i88^PV@H 97q]v [fy:f.u|/r A&>-YJ!N4:j*T^JARfC 2+]v\FYv  KzWI  fUHTZi}X RZ2S$B:<{ w 99l`8#/_k|QZhM>[&eQRnX,n~ 48` &SzkC15Pt=we:%LHd0  j[D]Z &R70fgUFyNZR\A"! N yV'V-xLk-6*{ 1~17{DEHsZ7bfp|S  Y{Gh}R!< N {|p=J Jsf9wKB bK,v+_Tm 1a06HSew/M{iKtT2@ A(`(Tb8->L9 .KBX -d - : *+I)4M6|k9t;{ Q 4V9M_+R?5fkE{W:L"Fz%V$n_-z7R"M*n-,Kkqm* i `K5@Mz*zR| 9   l4H~3! TcW "J~WbY~J zJ|55~0^'4|6u I K C -~,D.SU ,a2)6w8 8:A }rOvs z    &gyQ=Y@f :L}Y N N lJDr0 nA%e  i>zc4@p6LC#hy!X\@ >e# /  tI |mn\\W `' jc]} 4wb;L54B[BhXJY'_IW  :#LMB}$2) <iJf\@%%g (B7*e]; 8 K C# h9##@{H=YYXC69k20?kqmJp/2JXNj   SAu4a|N}A}]Q-c0]Dq}%H*4g^dRYi%1Z 6< F ryp '.hhYc(`_q7yhh+mSn.nNSt% q  [n7VF&+> 6v.`~4 y1j@7P%3 $=f|c2GZ}n +3@<F$j~Ii7F<. G11XQ2c= jd: "H.J8/1 j!F'*a [t%/5 uCFLM[?*_ H cXD\} R# ]e S1B  A}tgr>hf/s7- 2cT`0D$D4a-;< 9o^sKB,I'& 7"6F{ \QAAQ`#0 m{rRvN1zp-w }nqmc,L)6bIa V5 {3  }.TWz2 Bok Y\#`Zq.  S!%p N0J] eS`+Fk|XDh.,$6EkQ Gg ;M Q# :M 279 ' Mg5PTM 8t6"VY?F(Nk)MD* $ h s X(A.t,~6@w{{xMsw[ivh]0c,hz'b E# ,%D3Bd[# k L,#U>ore+H2 YJZrH <z|Yjzi /Baq%"W0_4 4% &DQ]O%]&xL6W@ 2dc>y A3` {W] J@ i*,F^x9.#ejVz ir$M(`R CETY"CD4MgKJR8Iv})uMs[nPL1l'4L.vivgQf$r '[U9SNXO 3 b J@,GF%XgcJ} Y[q r"V `6 9 HTcFuV BVnrZ lXE:}\\4 1@Nfwkk '_ $ L 5F-T~f y( i }{@X$Fg"B  } .@EEr6FR /gk#Es= v ,j  hAzt 3F$^9xm4<`  jSe](4YMtL u8" ? #xtl.Vvt 5 ^F kpui`l=z;f *[\Nu*eF2kw U'PD   c}K5TWWb=qU.u5*\*vc6-Tm^FN7z)[G|N{)a*u1 oK67zdJ5n#VG6q8jd _b=4&<%]W31^^}cow 9R]Bk_{j/A6#BUR}QNQN?b3=SDt?<\IgP?|,&z|mcdQvbSY|L6}#_lGR4TZHwxAR|wnTc8lZPTs`hV'QW0z+WmozeWD<xP_do>_y_1_kE?H9{KVq R 8-3`r!k\Gt_TY{_h)+)@G@'=nK*}]{|dkv\kcy4|\n^qw>"1>7@$uyMY{p|vTR^@|qe_^'[=_+k`j|k>tppljVapoiTreRmqxRy /BJ4+jEbaVpv]hrBw?h@J8F>_! EQ ISRo[)].|WB-IYl.4m]%5@ Q>SZ8K7T;p]I|W<\91fJS O PqGo 84y(WMCgujS`W u[vZ? 0=+[DmNtAz.wl':@U9O("&qBk-jvc-uJ[Tj:vi8 FInn$l(Srb5Y"VY+-AZ$Q7%"e#=2GzFaM&]i1VXkl)w\UUO4p $#zV%L+h ~ xJUku sHBhqV5 b4 i 9 1,}K#+uG{I k 0^kC;q5 P }MN ql:9;]OO2(E[ 5+vt'rIAjtP E"   NR,6!+ X A1{*lx" 8%au^K{4G 32e+f2 `**QBj& { '!v  *t P U XHeuJ^z_i' |/H8 Fr>*ucBVt&E 1 } 4h7-ca~-? {1>s_p3Lm$!Lt& ?EWCOZX):"j vt 73{ RoL,o /k(| +sD.\u.bp*O~9 N!x=*M&<nb, (u cW4 &~k >9`x|squkh2Qm_NV9j  |p mo vIgMeL R,$ Z:,u j/| _+ (^ w% + =pd)&4J"1=s p\26[p +=-yD <9yJHmf I&\r [ <A i >HYyM?x6Tvs ]u aj`vj4x- 9HZqejEMG# 3X ( UA @$W ::a6zPn.+@CQ 1z\]W; nJ2P?o[kpj qYh1n J)%7HAf)N^VJ<x)>dStZ6 q 2L.z}nzHG&r :Zl$x -J5z}w;aS9#|UmZ'{<JfZj2K0FTP|027`O'j*1ix8uc0.u)[Sy` Q~9.+c{{ufMN/sanYktLWG}Z|3,7SC4dIPZ!5Y`qfHFw ]8<ybcRSVNr,.)C!Yt@\m)An/$h#.rB yDA+fc2V4j"MlN+~o[h&VHZR#*CNq9T>@z@m|Jdw/uhYhgUC1p`Tzw7;fY='6[Lq"1HN~Gn:durDZ|t&j#]]k 2('L Ff;4(/ aSF+|zTjz+e$CRjCbuJxV_Zr6[1,j'y_9h0z]Q)|ClR# {L\2L>vPEejlHiEo^:;p>I%c  0DKuL}`:"rCOrE-$KQq>H .Dp|lzF<DvM`4[~E:i&%&D"P`^` DR"bFcj\)>oawk!enlSJwD4Na\16:6YIQlh[o8.HJex"|AT/^#o(+ 8Ft mH:/U $PK6@ $ (tv!L4n`dFf4,ZEi+#8t ^*DUi)MB 9&}9= 2m+Rw&~=0FX" J{g) 5LY]wu.k9n,@=lKBWv+7=Ge6prm+6=yrH02jSkPw%IQ#j3^0%)#L +  < EFeL$& q/tm*^- z9 !F~'27dlC7+HHT $ j  = C (v{0pM/q`t)VG\J"<*k7q\fJ&T6W.eH3G ^iSb)D_ .<ys^d)j$:]J{:qto o zD@0F> .Q":K. n ,{\3*XDLs&9v` 1!#E'q3| R%svp9  QW JKN4P?zjZv=]zQwNmBmiJje&^!3/.Y1 =4Q%G  HgI8_ ` hli $  x)Ld~dw:vpM_F#$*F!N *"  Y :" >= Zc-75 Z  ||r>z,zl.*yDY1 l||#6_d W98 "b] I"7 A1GX 3e~xvx2F @bbH z: vuZ@h`y{(u{O'e8P]+LFhsj1c Lkd k g}P_^H(0 wve~CwA:].jM\O?RDlnN,. d_zB_wIzv Hf [R1E2Ed-q\Q5;JP$:8hv^ P9&O x]W @Edf;S" f 9|R;hfC9K=ji Btm Ki!/|/my#hHS;csw8$|}IB*/&Plh;Ad/2=KX**)m5.pII%lmciGD@FDo@2KN/'TGQpD"MSs&0^s=h=mY,PcMi!@I l"0bblAk,&/E|Q)ZA[[5zUieK[H2Wf#NA< u EA:s6PG D w !D^KXA'|X Go$ ,TbhWAb_=2 <)?= +1w9u8n_k ,EZxg d?OD`gV_D8<Vre|Fk.5I"! KrB w"|T!XhZ2 `H\)dmGBj22X KKPv  S'  X  n4BI3(t/hi6L(CMI]-Td=S.JI4LS+yZ}0CvEn  A [ J<:y'qF D:.42RO w47.sqfqf mZ F ) Z/b;Au^0ovCeL#O0rVi2_q}?r=9NvP6<5V /o\~?4S-0pY/qla1@qu~k& D-o4r7DTi|+bAy%/`N7do_ AK Ud|X_o0F|8!c_-'__A7In I0%]Qr  fp@a R*z5AfFtG"u3xo+kA=\XqS!@AQ\D'3`3oZ 'x$Wm-M `Z _ LpF,x_i{ $Y-b!C&/+`Q[s$%[  l0d]4$Q 6cR%+@~3^S# _?; xp| # ?w .Q{4 7G=+1U]G5yhinj!y? Zn w. .{"Cr{ z  [id+h<35zR1aP1R 7bg # 3u6Iumc*! OTh.mdc#>'>B$2i gE;M h  3 \Qo="SdYKvE=YUap=FS]pS1#Ke0GqlG8,UAUG#aYL M#H 0aOpd DF="e&c9uIL|XYx?:c]Xrx]R@; A$xTQ bDN(?W2>NZu+QQW[vDLQUX]2 U1vX<a+ UDwcN:},LB`8/IuTBSYS8Rc_GX4!CrIi_ #I.(?C:/S6 [8G[T90@OJc@-s7l/ GT7O36kB\t x-^/K9YG|`|dlN('BU{R?=Wk0;g(rr~M$.EN5}3d^Ao~ps9(:6Y> O3h a~?2%G! Jg| ]G5* ).|8n<noz\rD\jEGu bhn NnO'4wQy:   o ?1P%~_iJ*J7/Ydl z`m5-/xgAwLD!~I}laV4e!1`(L]9J;&-NRz qDG$l?dL>H$RHnW5R:XEHnbon`&8E.u(OUEz#6/j;bQ UbsU|f2]HGO?5+zfu^'wXpHf'( J|h*E[j:\[xI'/?)B7P$pn:[  .NEU  d}#YnFPK:zwfnWy ^\s#JjHl8$(5@ {-Px@y1G8%X+pS#8m>u6?Ip2bVX|b6JhlRCv#*N~$N8zP9%lWue%2opTpoxu>S!I;Bi^}]yo96ywSulx|Z= M qM^ T G'tN"dS.}*sq%LyRY 7)6*3p(Hg1\ 1 Pk+W_Z4eLA,>dWLB 3Hf73W'@y1uoEy 9-~sIrG{R ?7.9zh/VGzok*TA I7\;E[* jc_F[B=se%F<5vW(_m_#-Jxhpk$%I!8:Nz\R]Z2xx$+\n-lb 6Q 7v,zwtTO|A1N{}tm9%LnVuhz^}y@[)`OH]$(%7QH&kB$sWE4IGy{$nPQ2<M/*N@} bTXDRm&Ns.tc5fE`j.Nfhtv1 klrklQOtjWhvs~XQqrQViuS1mV_5V\}%}xz{dv7;WQaoNvAi1j]\LHJB6P$73w26 T&'PY%^lIKl>LibHo{qvd~dsiJD85BFa   mcMjcu+DsITY0#H:g;k[{~ WO<=BL 6mc"`NfSmg'SyZNy=YZJg"56#U6]^[li4wtz}(rcH^^wli]Vb A8<>MiCpPu]Syczd~cztpvR&&3QeGBg[5U-'cN}bB|+eBXfWZ D4)Maxm0Zf}'s^Wh5,I,"<0B(1PC]hvuszlUklv{toIlwk+W\zfN,v,>rh3#3-"bjrtUby=VXn{V\orUc?HY9 5fCkudsD{aB`vYW~YH\2S{y]/.%g6':),DQ.9* 3`s\fUnpxwYw#F*H*>31J4X@Yq`ldz~>-hATY/[4Usz2t_tLcOLOXWzwp .[jP\[Pqx9]#h"q?y#DPAhoXt\oalw>X^{F}V:m*e)<o(,IR7p2aRXY{?GSn~"\;< .lxi9b 7>8Lp1l+=4/h"{Bv([t'><":} eM"gg=HAoQ.+p'6Ax+JklkM<oUO 5 ;@ 0 9| $[=dz"V~lH"|KMY1;uvj~;Kf^z*y7Y bliD*Ct=TGJ44vXoK?[5gYS. ;h wu"3! Is0Z lU\9Q^ZIhBTqRA7.Ni_x>&#;TZ6(x4mgK97g[T%X6\K\,&\'k86VW UeeX]zs " %*>qmk~&-a$ EZ/Q:TL uU#)HdoU9!70ZLP4,70-i]oYwQ+;,Q4GRIQ 4S^\]'yBu0Yi^KySkbm+#i>x2AU#A^o zJt}\J#:L7]?kk?#7SG>EYsS( CK: ^eA|ZO(3$Km!h30Yw(?0s_ 2n<+J :F [_Ui]@zMaEF~;jv[|Hl oz+QP 4&g TtSrs Bfs>-G87KNv^}WH#97NTo1rN4rLD&,wk_vm=<ya5_'nE+=@^9rpvM$VYY3#77g I-RE!4] GfO'y'kLJrf%s0t8FdT?1Lc.rbU('7DZR*Oh G"*L&qDTl)B-JqdID" LS,'inMiWLH1$yHud]*K!9Z{cn.bHZ {I_ Vs% U8hgILTo7vFj;A$rV+ ZK0L/jRG*7cflbPudpLQx<n=Z/\nxf54nPPwa`>~Y ~Q( -Ct8TI4+m !: VyNNN\xp;R]7WJ,Yb( Hr=r" b8*v?g J8;>Y,LtEXu}:hta N>Rs=5(uWJ O;o 'DXHaD+dTko$:8IOWb<9UMq8X,.% f!7Tc;o>)f*5?dU^FgP@vtAov}\ 4%r oCdhC}js VJF'TCp>{GgTt8hdpzd], `# a0/I$26#zzB/(<&2,Cn;Z~7:Bx&V-)t1C'@Y-?9s]eNmGg{l7IV X 0lJ)!Loe)lP_EEW'.9 YE~VP>(i$A`3! myWP1W%.A1N'q n`ZG1G F{ 4| *^Zn} ,@Dc'2$-<a4\^j5o\)6BVl^vd$=D7$l|+\[M  6nq6lx>Q`T$5*6#Zyi k"K ffS6U5#U %;,_u o%+D*".S1Hhx9.O{Ti4U[8/F%~3/@Oi;rs7s Tg2K_G> zo^ Q so   boQ+3  fo y~(<% gblKA$wq6UQlpux <kD z?`=.[ ^j9 =q{ &Yryu]> r~>l`}- x!CH!8-yB:T & iL.CAPWn[tMO}>5k%, o<6lht!7'8<\K35*:m)zL9H-b.m9~3#z s$xw~u[B$ 5~^}2a_q=lfX66Uwk.\_knvlh =5aP,rJ& Z$x\2{7hhZF3u\-gEoGo3Ju@9K~VpwKe*u?sHJ j gf6[/-E6we7)\ ~tnuxJ;b}}Hq2 [ S|(8PWX\I(lgGs%)f,^n^_"xpapZG5(Bm&,DWY@WH;5K^W%dHBQ:(f`i|NU<z>]!DHM*CEqW|SI{O-wwJ`c\p&}M+9HOV:V\-Y0-eq.}mF}hEto>|_QXxkm-|KIddC8E+%;-KO$}:{dJs~|'af%~so'_@n:W;Nnn_jgzg{\p9q\Zzr7e #Om n7,)-q{h~ryuX8- ^50\H6?}G^c_uVXtA[*q!w^HNU$T4Lj-&QD i ?Tkw%.YYc4Ru&Vc7A}t ^hp$ Z xM9^(;nORo2j  (ss%1!Y{47CDQ'xoPWQ*iAHH%ob`e,mD"y /``4$M}R9Xab|rK$,/@.eAr lt~V;P S 5S5y'P5HHOr70~<lNOPcN8U>4nDJYax-son^aFbeRwdVRWJX,[G%2q   7}+v./;'" q Y  c#7B=CcS^+ B+Z})j)QyN U SYo~OR_\/ %HMD*wM͂jTXU ͖*%5Wi  n!&5 i|p6J",VAx1 1 m`?_  I[ p{.C4Hj(-K *Nquv C  G!l.vnZ jO/laVMhXVp; M q|fBoC p. v* Ig TuzRh )S m X`[W+  d? w N(.ks0BTA 5M0t!V3ӆ 8  Ո(M3 G ^5#I admp  W z %j=.=ԗB lM b|  F eB_ K`m*U?0 Ct]X"ZQ6 )/TE.^С:Rcb& ~U $2}o IzgDX<?tuX$i65r:m!$K5@ubv&Ucls%O%- n,pV =w&Jc#eNt,;W F=%P/z gM% xU( O,I6` U c &uAE#&V&C /:O}.!]Z7f4 yZ T  > P<mc~ $?ND{Yȯ\ SDicܑYt P\\? 't =#"4.`:9>V/zPo1߄\}y S[f ~5g^/0 /-.[@;@G=I|nRrYPG@T [ AL -~ S RH32 ] nS wPm:Aiz6ze(tO=_ew 8 'q  `[d (D jyYvChtwb$7P8F#ބԃn }g f w C}c@c zM:kR>N85(3jYG7KL7`v( x fQ5Bb k(+gV^  C 9%h:<^Y,V'TItAMrCID.2ߟ I o I&8l S)eAv1 K FF+<#IkkK[Q^ A<`8H;^JL ZCS s P.j}? )Li^`q #grn`sEJ7<@qs=  5|=w * 9 c 3c nDRw&@3{s"Cx>6 E!GJ(D c-D T : Ml BKgt%=~ 72gT7Qx 5ieL%E% nzv'WWph % vhpB \%AV;:J bC4uCG-F j Vb 28 f, OBK0 _n <4"^j#r[?D93P 6 Szb, JJI6 jgI[_Z!P]|2>u[0ys/LR% 1x%ۗ9E8^ (I c lc[~:O c:eR.Vj'C;RS,o XK0($&]n[gx / Z**$xWd Q%YD^.mO'WSE<$g /.1 uH^ b ^M RN7Pdj1XMt'~*Ea"%"apn+Q 8{39dh.G3p7g-u%#S _4 L94:E}|r6+crjl. G Yr:H }Cx/{]W5%rqF6AO >;sm TdD*C> c  %D]  C8~g;n:?0&BF+DUw[ {ko+& U 6{m%u ^$HnNO dmpe%w B7V'w1R Vqn>:G g <j\ 'sb7Z z2l Kn~ K56&W6 3Z?>#'"Z7 =uX}; gz% x (  EuLd~UbQ5TNeB#&:@ ,x ?S4k^  333 B{ 6Qoaf*r!2}Hgrv|I$G7(Gt H52aB<>H ROK<2;mIk!9Q1`(0AT>%e Wr> ~g\]} i7\1&/" Y .d{o:b,@3v>[N Hg!2=q8 L_N\ 5 G"N6J  (*n<8%.Ar{n !4F <3pSh( 7 &D$pj?v*&m6?:y( O' =/^e T:d*  XDY+| p  eR "(AQ!-.HB?%Bo0@c 9eHL}vKE JJa !#cSzM}LX-XaRJW1E% G~1 g`!Zq @kXkM>M[! I >%`sj>>6KV:@5 KH$4 rG\ %@ b} 10 q  LM+bMW-MQ*dxVvUvH,I Cq 3//redb W>{]I T4myL#MD>4A>kED'j -KV( , F )! ]= 1rZ 15E;t]B 8+p/ v.sLR%M` UY31^'S#dBV G & PfB@ Fqn R,\ W3&1 ! ) |0: "cAT)9Xb#V B2c _AGC*u%-8_ .'O&_pW 0vA}8U=TR *fcxo'Fp-a5L6 (Cb 0ONB  h#~1Wr@i?U<&df[yT v`7K 0f$Jg 4~ G 9ng(}iS=5"< ,KILm d4U] JBC%A$X LTHw:s;M.|jZHq76"B {ya0A UNnh  a @ 8 ) n&KJ/\(dlIW*>8  ^eG @#[@ . 1F'pzC'i_ JB \*2 8JWn @^%g \j>L8d88] r5hl>Z;6::GTyUWn)8Q#k 'd 6+&8# #d .L)VBZaIl#Lne*:so|cYr{Ji!j ^`aLBwf ds2; ,c#-I?\&V;3KcwT Lu+^w zLz}_b FzHu?$'}(&4/+38 %APO^lLk*>b;l;1w7GA2hip^BP-ck_u"8%z;P~q-Pz[Ys4gzOCw5 Iqg GxCw#@a;LZMHw3'%nq BU p%T03+jw\fN@C0Vla^*Kfe7+r.fmIgT6,f2X4]!m - `=j,A ;x}>] ~ [<,Lhztz*W3;FJw23RH#L?j;b >mdG}_S =o`EK(I"=p+2MD~ 1{nn``k 6!o *N|n&i<<aX2s Z:;BB&Heyi> fAN!0*cwtf) \ 7I%6 iji V7Q.Xv}}hcx?Us=if}%3}.maD!s1 ; xs`5 *itg*+N Y :35Mj.5*;28 8[0Y_ &N+nO5RFLr*kNzSe%j6FMe@>I X 'H5#yir Wv)5ezo: !lxW*LXP'ONPeq@hE(h6eo2L;Ipj?< Q'?R UGu-b[dW+KN{1\  5,YOUiZc:.>6hRWY-_vB~cJ\zRu[J9u9AZ)Lk Yl{C 1.zy|PuJ ?zD ^{(v{ 8XZkLc[s2cd -m^dq`WBMNW-Q}*jH ^/VyEds@Qgb"Y7tJQ -RH'<IT 3Kno`)d7Ob({)jWF_)N cX/XTbwq1zQZu06h6Y\ TX/D-lOM8^ MX x1s3keY>a7H  e  THpIUaJ}&ct\J4  Elrb F0 ZH:&BL;cS0 yM2v/k5 xz  <0dy3 f BN$ebf*x"A%%C "VTi\ ;E~ )  k` )F(kJ}@UHguP=#$50e_%oalFni  =)X!g;N = 'F7/hkJ] *\BL/a+o,SA<] 2+ `<.S_ ] H%o=%A;Dh'*F!1K*, ^ea{y a#K; 5FRT<4O{ X8p)WBY&Za;/tK!1'F 3]Qh /x[#lFOo R P-0mJ"S3~8 ; 1E lF*7 Gx7%>8# . uz)gE9",T')  V,j  I <Az.i Z heCsuA2[2Qxi#T5`~ z/&M @/ ~$ vAf |iq4> 8^aJO`yu)Fh: Y |'}9>9 y3rF[Qs|),Z7XPFuit( \(>dFa5 g@'&qh0+ H  JUBh1YR$E;W:ey, o$A "2,oK>1vp35/o 9 k V  b+jCr%yPL)ZD9 eLB]1fAX{PM J! Pg 7  6 H { (\)>Z{"y-~> ~"!hofmX(iD \ k 6 FO'@)ctV^#zD)K0/GAC}bMKY  8 i  lYdDCe LCDd{(HK H(]sw08Y7`#&m0  j \|nDpR\>5-`3CwS.iGL(Oz\gC= z  jztLeuW}]/PE'h(s]DEf1@7#3B sWklHmg- b y |TvRXN(Fq7ggD+*L]Df8XB hYl '0/|| 5.l|.7z7n}6&mr82*W6Ji|:SF "[ >  i?@ ?IzR4hsLQ?YDn9#GZf`;;0 LW8{qwB,R xdPPI/3"JX`LKYh%8@H   \ "TO{-.o),J|;^hFS 1/~IA4P:LgXY<q$%wu0 aZ\DSI60^r;af{7<@4MmW1{;&f::zIu; M37(cC}~4  a^0Y aT+3\%.L#] _uc-!#` 0`"#hjvmMN8E]TolG|E2 0Vat_%F4e.IKQF\v1h<0*17SxI%FT)e* x}Gw[HjlXG[kM`d7|}b6\^z_Kg'^o*}  <-B,Exybyyf9\pw6<9SL^Ar3 *7)z1Q-XsWy+>*rkr?WF"aeHXMUcp{B'x '#-1%`$$FX@$8F7,0^/8h.4x}faVWw@zah?Otnu<4:  q;6zeVbo^XZri+ $s2"/00-8?47YpFuvotNKsHSumfr`On-LL1L% e7  fwueM~(QU?NJf_gkdQXRyrP4? @NjL%lx{J~nQGoxn=DXbD<d/bP7 Vz =Y @m!ro9(uML.a shsa)Gk &#c#_b&Y zO7k9F|ao=11 R&U|kW2 / 1 mJ o \-kLn26 k2dUX5:<L'L )P<IJ-x2&i8'.^UG:@4'a$ <%(dHu|Ch}L@VDLU#mBE$& eAQ\V n Y,s?~7;q  7 uJzn{P-6AV? =l+hC) *o o  (| m cu OV?}(oL5),%  ~!h# W7XL1 l,sR'oaE[-{6SJ3rkc_77B%Jr/f .Iks@}p,[N ]TBX# ]1{6eE= > T;+(R p<Z <M)v"vqoMK %_ ^[F5u3[-W6f*fk03 C' SJ PJ cJ55|,hgP/p""T  /x*ZS=DLPVL#w5c]> }X<| {_Z$Kb B)O!Lm# ,a''y_2G}/70?{  'S%M%_5, _/grnKEZ"Vz1 7) NfS  D >.rC((klYB}xuH=nN9%B7,yC & R:4;df"eWk3 Yq)$;L}t@`{&9H!H@Oe9#h VRw O T+z^zvnC4&80 R tzE.Cx=3W(r}X ?Ss7"#Q< ^ f/ 2= BP~p| ~~oQo|qBb g'64V*\j_k = n%gY q{?[%n$$'w 2>n|%U$KSz/N$$ 1RCT_sQoaAaiK )*)~s' &  " z=Hx/#d-d{m/D"M _WJ\ Yh=dpL{) >TzaepN y6  3! 9(q LT%@jt|zaJ3n>?SjGP y f2>B \,r"Qi:}p!'"mXZ}h h'>A|/h)i`8q tYLi\ %(98Ccls6x+pM_'y1 $T F}u2!o l$u /RIxHiqZnr>,:n y5f3)+<,nqCyfQkme03gS  FP+ *O $TfV= MhffZ. DI8r[/4-+Q B*_fn uRw:XnY(b-O4 v&1 v*mY4{:dLmIY#)q:QEF Rc] #r1 I@E`8M#BJ<{n$7&XEEz|P$;(K6| M$ %lQwWY. $K /k/v ?NGXp!75+! ^v kU9 ToCgT'Bw7]  Z u &PUjg_? P=!;~hs 0,p4{N-Mhv& ;>n[5b \8 ?c8Yk2 !4g}\ V.+O] ]TA* R9aHg X .wq$N\cQK+; Q fMh`UVH3u >w 5(Ih !a|  - RKP5: yFlJ}@r/F5Kg9M",%1 $~]V} =tR&S{]2am I v#LX:SyWWL)\-T3t7 E&n isaU_|%+Yvw 0~:Cbr}rM1if+X'd)#G('H@ svo ^dWy%]@8z y ~Xh#[x>\% 7C/P.D4 bZQQ[ 87GVs =NKF\u % }>"~G i]u,HM N`xq n8lL*c\GE*HuL6= u{w5VzJCUGM ( d7(@NQD5&J$'(KI I='|mU(h 'Gzd}Gm ) 5'jpgp84)*V|(q5qq]0n > SL6  $H'"N{1+ R}~x,]iI%g{n$)e H4'I)QE=Gc  w''Yu=R| qk }^ 8 7YW>f`&}=eK_ Yy&]hZRG/ )/G l]Aa H8F=P Xt!+ Y }Fo|o;2_R1+Fn )gamvX*sgP+YuwS 3  *j^b*d_W*dxhW Y"_ Rjm -2F}@ o }a&Q9j5 %s!" ^q5, p*f\@oTPrlMV38iw3 'LH+P/" I#Vrkfl@(8%Oo K]uE% I q6C(3QF].]q !od[ /*|Ji7l %(8;+M O `gEbUk=5Gn B ~w &&*XZEhO#  + ^U ToSV5sw_:L S6[!t'T_i17,,T|wiCvaKw}b%! '7$  {YH~jot Jo:%Aig/[`f~+0_9eN]=' K ;6p~)6`,l#c)k$< 'HKC_t]w86K ^])I \Zr5 8wZ^& {[?a pG>fV?56?q3q-1LBg0H&t vOj.$;h5T0yR @hHKKYN-WU L#Z)9 sF.x P.G/5$<~ N f[q! ,81e>$ EduB|W[ *;GK~9=kx_5N >I\# nI KQE^ ! ?}g1<G%YNVl5"ry= Ys49QZAFmsw(A5tUIZL(C Uy6_pK` )VM Mqq! 8|/ "I/g'e:ciLH#VdC  #F[ x/.m*0gl}  p-[Dp#(9o+FzV+\  x~Yk_ HwUny&&+ 2[8'{<|m/w)seP Dr]w.& m~tx<"h%,e OBDSHTMLAGZ63Fi0 iqgHg2s8y ",O}>E }bgX-i^s)Kni5x*?O~*)"I:0,|, 7>P=Z@IGAt*k|fM%4Uug# s*7.T' l {Qa^`f6pn]5dau$^Wer~Rubgr4qE/z6+9P@ZH2*K=MFfn{{?.B_m@ ?XR,vg6*9w9tLP% -7Ne8Z!)Uv9dd<-c F SzP[gCa8Mkiy5#0e -nD}Js<1 K4veE*zH 37u]k]7=]rA3 :97 h(}.e 9pV+eqL TbGX;DB|iE'UHy_ bbI,} F<O#^`xDe:6]Ml"N+-Qv; ['"C2{j[]>Z Bvyeux./3 4T cQIY+^gy=ya&5sS)u -urYXO?5"I# c~G#iPI]^NrffaGiRXaC=TM-Er8U?k;u8OX 5^tCe`vU`m)B=XO'!3[W;e0u`x>cpwdP&[SbdZoi_|cjXLMDZAQ2+}Zm~lw\b4m'duJjnbaxnrq#%>IQBZRxzvZcyA'IAL@P<2,"! L[^~5rWmre0$UVb1h1nQ-M'j.|K]2N<X9<S"Gq\9+I!W(X3~)>Y8, ^?(`eLc>}p8,,VT5mm[ UU2e\|@Xfd$:L)*m7 /FDVIahA@~s$J}A EiMaN;2z!].z5wM*QH)W.% Q+i[x|}sP>x# g_%|m^NwG(OM.XNq:SCQ/r\9ltJgFh/2^K`wcBn4 bF@CTB]{mobh`M@c" az2 w eoe[+kaSh dN|r|[tN.L?*oD\y@K ^@a1@eQ.yQ;GniL83!e''^Z^:n z^ j4Fp   '<b.D%VgR:P'8XTIh3 8\Cjz'/Yxy>\`G9zKDf^i>a Qv\TP+XN'bI$7,*J/?S$%Ph\P'h-m7{+m5,.%^s>{ptS*RrMl"qR.?x{l7sRa )&^"؂#r .O%CC@; K [%*0m?CF-,;+ kIM-^QtIq8f?qx="er37Nz UK3Q]3\ c *5<[BYb+c @\ ` Q ;J -; U8lL!=% ) di BI\01 GU]>`H:3*M nl&R,"*9a}`-1>e+ |w5MeT8X k" @P#vIOg S,oHL6% <hs25!$  \{b 4P \ ^'dK N$#+n%L!T+ %+x1 @j $&\m"v H#o%&e uC=%M{$go  s@" yj_rn J( A so%\( m s ?e =R  a  cGH (i H' f 9Biu XH5 J R>~<' =,gX} wqK|m  @ sP K 9$& *?x$OP* ,c8PyH-l44b3'T7Q 6G ^G{ZSc9E~g*&r !3 B1\KiSPU'[[I1Gsp?ag"?(hU o8[;Ip3iH $pebk_,= LbJWM}GVZ  r1p@SIt SuQ % &s!yigVe *^S V toC$ vr H;f3$Cz }Tu=T vS$/W  {j~xc. '0  *a:`2Kll-MO  E%0%p0 ?fAu}4H0(^8a K1MKcQCgc vqr3vwV 1p)U b<  , +lwp Z e4 8 WOMCI+kc;Z5!4 %`%) JO !A  * |Xp2KdiAWo@VX EpF h$Is ux9 Bu S ->Iry ^ ohO0_zD  ;>{f#j WK |f\urS6rjg,@&! -E``Iq 3a v4* N aLMU z Nrd67f k _!d qVY # HJ=RZoLt 7kCV ;LnM{?H0wmxg _j\,, :-J X0(8 HY o  0yhX(F]hceMFHe8 Z_  {9VoBcqk]PVYD0^ zO a:X:*5dyxbW~ B 3 PLbd 2Y:uSd J|DxU0 .]I_&x5ekKeoz*h & + N c U ?@R"M, tGHjy1H((u)*HSpZ<SG: [}, } +Vv g `n2J7)`hyu?p$0n3U\{Ym 60+ivVV =n I < zc\G 7aTHAN_dsw X/v74 f[&$   6 OdnO-cc$a\m50hmUS }\_|Kd+;`Gqu`DG 4 j   i RMw ?mLF]AWViCVZ}$v)e@490~9:@dnf a Z u&edT:UslCSc Hh>N;}/ Bd7N6#g.@a",_mO ~J ! . ; K  <C&jI Igq1)[=n8i:^bQKG&}[A%FRswXm5 3   ) 6Sx ;y/2 7  W J]"IiN\qu:4!t 7U PrWLez'zXB!j?T> K  F V2 `< `@Z[Nr; ,F5 N3 YZ /DPqOK^?Vm`Sr@d`mfz_F^'E=xp$ E7   ix/&uA;d=:![q~2oz<@Bq}T/f}dyI ue h GWC-^#8 :w'|+X &`7FdDn||I|Z+# K I  : [ inRWmWr :P#xA$}BK)OLbKkhp$SkZK ,LE  7 ./sQ1$"gb=M ]tS m]Gt{o=KrRFL^' R  e 9pds=41@G i> 5^?~qRl qby7u Lr ;Ri{p\+ %yIOW xRNZ#UB}-)QE`jT0B!5!$ 6dU~ "AuSqgf @ 1P^ Mk qw[- #RHv72!iTr K .p(#f_ {&klg 2 0(oWTfHYI ,(<T}.T4;xM,[U-!O=66 N7!D&:Am~ W O <@OFs+&pdOuidc^\  T7\;y^HqyRD L e~AbYNI " Jr^p"Ml8|g?9]K_(K [ d  ),6} z kj5K~`[VU~  RZJes>L5?J I}Zl4-n bsX )<oD{F~ = 4 `R5]akXP| =L  9 T!::e#M<c/ spsk#z o,D7;xaGz<_1rq; U7nd5O |mkY60Y05Vc ,2)3h`UA"k ' y :6MZ# ' { [ f*Z@ l#NQi4TyoGAe o 7{cvu 1Qx T  }YYakS gu J=}#ac:k% 'FeA[?4rDQ!/ISm$ HjRLW3 \&6FW 1G7 e TIj` 9 //+Ow a JH;,l4S(_f: ~6 tQ Wso zj`H.7X_`u? DR Mv 1 xliR[.);12Z?W _j< 0Wfgi(b 7Ur,ie{~Bx$U7>%E <[=#X;Ei-/8j}=Wg  v HfO [ iu[l 1c  cyFGop{U92xdgg{pIvQ `"!k *B ~ E]qf|X#~ -hOnTf0vf) }zs&Z~C~fWkyZBx_H|r Pf 33:}Ok:1vti  jbGXY{J}Y*{|(=  ]|"nn}J 5 K`Z^o]1J qYkXH%qVw6Iy L W#h#oN' 'cI<3/50@\g <zZ/ L xWOME G1; IzA0.( ! zeE%2|%eN < ]`F&|,FC%W ZM|AUy }KEl+jn9l d]l% 9 |V0' AH~x|N-Br|a sfe8)4Q\:^aQR9^'2(^@ KmXi yt}4E d 7F1"9H=#  d8 W;0E_M:NvT4!rk N 7(  q > m#'w8/ " ^xQd2-:3mM]p>` J])A>j= &'I /?|P D cEy;fir,y Won *b# 1 T(1&<!rT8*&K >^F) / |=RWiV hB@vikG  J vp0+t `\UDed[o6j HVsSr=-n m X6E  ' xw~t  !q#R:B5j5+G )l>Lw Mw d ~K& =oT39Z]H^^[ :V&_* {A[br1 Jv!z  $`*G k MN+\ g#fW80Q2 7C:5)Y2 !|n e &12 q,nY7y JzJq Tgv Qwo Mr:=6o)%<!:` %JPy ,ddZw XLL:BIY> `wc'~h1&@0x8OjC/L4 G42f)bW wb@v jbz jE` -bq;P%Rr0N[RV'z2! LtX  m8XM!h t&GWFi !g2 N 6w ]N|,h?R %r H{RE #*w:m g@jar Ct'@/dg& (Z+>Vg>87(9EWS|)%xV [$\'2  @wIo]osISkB^++cy<$B   .!w2eN] N3&:| R]>a!;9_4T) o{2o: " *mTzBY9)Lb*@jJ \;#$rb:WZC&pR,R:,j.C`SS}<+a~CX=MaPB(HSW1\V /2!}y$@Ghp'Dtbt#^2KwGL'/lV1.{Lj]Zg1~2Kw+U;YC;.M:5GAIdcU:| mSB 3!,s4PO7[[ 0zc]pp(F"CIsF\H1f\Y=TwP?zsl`|(8N2H%(Fq'8b 5HlSO X E +rz[9Uki^K?Y|[cBhQ&ei^W+#zXbrrzZpdZfc0 hPdJ#NP M={E AcQ)~i%%Hk_99EV{GQME&GfDDM^FmsZq A!4qND`da^Xu:Nv`$GM69145<i:K13YV0EDklmB`'4 7=!0= ;P%IW'2km:p1nm=1&[%/ f /h+osi#\*)nyIS_oMXg0ojh`o`6C;A[cNkV4{foL9TjcF78A8iLepx,0)8Q^rtV-~eThnu3J-;,]T ^)D@U_ ;EzOd}/6Ah2QPP>C bMEzhKcgsoM,h /mjI ZHAO_Q[+0rl?- \&Z_+B$3b';uI5yJkV%XV49Ym+93 :T}Hmcksc%:3<=T\ 9WRbpjY{qR=tXGeeUpfuI' <k +jL9wgYXwdBJ9(4\%mm_e[ [0dnj\D@o{|Y8yR&`BM?z   _hmMfDr6<Sk978z:[g -xBWJGm*wl1 u Bph[xs@^ .WtP*9yQi89#,z C   LNY^ yi9Q?V Z?-]jf-Or, aSNWk1  F j U@ R)jZ^l( (% D` >DL>IpzzN au   3 8?=*Uv,>W ^ V(EmX@ ]2 } m _wy[_AQ&V   2(<9QLnO;{|C1 /z *d x? vB8aH!I ` O  |  MVz` WW/K?:&~s) = zbQt*n D  |*M&* d 9Kam1GY%-B!(P 1 g?N_s? K  Kn.x2TkN^A[l +&j*S +v  /4 ]:7";Rmc"*E~^U#1Q",Q!)7  r!/%@d ; `z-\"W#%"~mWA;S:~u+dfK A $  n Q Tk8f D-mz j_ ]O}y.&P ~zi{/yC]jA S. .et-b AY c  _j#(A"W:Is,'vul `_!2 y #   hDJGzT = ]h  4 BnrZN n@6 C\efXT6=c26 Pl6<3 j$}  <>@0p6x  id@ymlH:G4n";r5C(  {lr@-}!Z 5]y4*%xvhdXd|,X5HKdc-0%8weg~p z gS*h+zO1<K@Rp\> <,UjI v#N6 Qdk( JW&nU/pBYDY\K?hoAK6{ =)8/u __ZG +_/X{C,)p?:,w ^ bF =#E@= f#>C3E?wyRmSl_/'  :y2?vLV+_0B  '5_lo>"5_kjHn{ eFXzl h?})H;%8/YwXaLW~7*b 7C 7 >:^d_ ^ +V-j}3XHIcQY  yw"kJb x '4,) t %W'_?bjoW/ S (YXq_YN;v2nwF>OTq )-v`*4e\: T _ _ u ='p,:v\FpEKH  :?}q7/bSPpyu   A   cH"Pi~rXGmmCYR#U5D  VR e F aN1 H{=>Ic1n>@{%t%PGM& U  0f  vU9hFUC0* f/*pj65M/U +y "  * $Ct5[40V]TwnEVEHff1;?qO\ 0TsBH @ '& i'@ {McTEf<= lktav=9nR+  [ )&5wH#hek1j#M,;6'>(*GPS ( &4`I  N@vLn!"?~uyJ6g:,+gpH6+r  #|U7  *'z9Ork"8h52RnSJc26?yu7LJ]$0   Ke u7yXG*e{*Kd t).Xv)O>o(Z#~HY+7 /S h g  lPPOMf8 ,nP6!j\rl7@@?)J}cTv\2 ~  sd@L&I dUtL+r,-^ooNdKw*m bxl>X  {A  & Q NelnzmMG.lf(<#RS  Z \Fdm jWaN/s` G[ f8Ok"H}"f"/i "h :-e`|L9z_F-Q dx.l} f^h#?":H?:]t|m {VoB^q+~jx\\ |,E gi, X*O%(8 S]>/kXPPJmk[.gHp6 1WH(j @ Le[)cSjb@oF4E'+68_X@HCt(y;7BD(*%{hg{^\H $Of6Vz}5(ink80B@){-h =0#{v~v5 C!o0cdZWj%D^ ]IQ@ ~*|kV_{?Ew:v)lq;d8ZnMZlT S]"@"fMWt&{ln*n]k*X$0 "@{JOFI;ii <3D<}J&d+u6QH*XS9H7<[ 7pIuMW ,:W,spm@ycx3,%;chai #@xZ xm6F U'sX}J4_y]|yce  Z]7n/ c?K^u4 _4%qtK`[_3 =B3*Nrp-Y!DuR~?=II1'/6} a4kw5jQg !d}'j KZZH hQPlsqZ4j]Uu* X 4+Y'TUgyT G_s# w/kIkV.UemXoMC/6 l|I, Pb ,l  EZ[z%YgpO.SNu)LiFX=N'Yr{ N % 'c HmjMX(EM? PV!)=`*;'M.]I  ;Taus#@4H; Iv h}$+Qve;8DY E=<!R$k s0"oBf0  ,y tu n [ wI_}]'1Zp^f-0/$  l\d}RTmV.pS*l / ' Jb  mlm7$#~Gu?F0&dIgGk^H9=7)?"GkaY f m  < (i2.MA=c43?<DzWhSmhx?N8'B,5:[~ i8 eC   !twy*9n[`\9ID" .y  >}qVQc7t8  +  e .;yX=.hrkdNh!A;-n'R:q)AL1IzMb .r  S wX;A.K |  mS_<~_Si>+bHrm:@T}} ,]<]w *  ni qT T%6e:C5m z^43EqRy/k^TMT`^s{Ej] $X: y &wJ 5-9 JTn1jG55lrTlr@Z'ox9 I5 m k \3 \@ VV)|m0^nC~F(wU1j/X)SQIb! iqe2*J   _/OR /.<K_[ )Nr kO3_?g`LgD '{`5@'ry-tU)+qHy} . W |we2h~&]bKGna@6{JNa 4"AQ2`Ap o[ Qu_JU,Su_>z<-tRL}]*zt?", yqQJ^R4.]ns~Y Mg _ vb?|g;q hC5*zNP3ZS/yQ$^ 2Wh{ Es%'g8/:}@]\`>^0Ql142_t+P+TvQ74q 'Keg9#:g$ ,5Y*Sm~GWz:qBb^OwQ6}TYjI8 _Do w)W)2.0!IlO][d\Bw: o:L@K<k\G8LUGMkv Laeb/Vi\jc\PQ^l#)&mf|n}qWI_cQgB9wU #KWMkYf?PRijxr~mHw4@6Nm_yGjv5E(.e1$S G#wpscDfN' rrPPD-^=j XH$#IFx`z}Z(tz L97IT^n?Fiv#c-uENy_n3T\wv{I_$f3Z =Y b ( #zcJ e.p3j Gp!@dOzD8?xM]e+Zu!^+7o3%u  \qM9g wk~o\v eqEm#mA oS t16?fZ-36&M'+;x"@95z"2t r{~H2m\LCMOFYx[h/MoC95|y%Q\ Im?F(kh\0EwTxM4?}M-U{ePOukxOGBeR+C~QCo_yWz'nUy!yC = t@^  ()z1p9TTq J. !j 0 /#OrpCr({5vDI*Y!6(W\[ISuDew)."<OsijDpWwKd` 4)'V%q\Q4@q>=6 0l lPTAj&v: $u 1 46{ ;%D ! !3 q"zxQYS69 B%*%R Xri/e =J  (n 6 O4UKn E  T\K#h(:tq=1%y9AH*6 'J +CqGt=Ih!dRw)hM B % Bl(VN=?VWV] GCB_ uo.nneB T$l~KS%@H\` > x?:Y`I3i }=& D; Y[6bSB^o4` NblH_/ax761y{y&K9{7=9!}1lJv" _HU28"WC`i-+Z/ysOc]t+'`$$ J? [lh%\CpW>vI'f F r  }$gk0c),DGiOSXC6;1Q!g "qpxU7  C!|@Z:AV(,">E*,-P CPA% .5V| 9DiXF>(> M)k!b>4 At./c v!i  =R5TlIw@wb2Y$A %< : M#l=X O1:?h9d 1AO59bM@;=?;'LB9!HK&+Hh ` +2q(apt*^| "UE y Lyi!RR v$QM >FjSS&K @/1 CFw:C7?# ޽FO(6r IoV'SQd6 ZUMe  T.:=:9yg|CLT{$G)*wqy:MLj mYu~  3,S CF[>tPW){sKAK& @ vU jl s9 Nt _ tFc=mYaN51R{ ~dadG5 -,I ri h( 7 V6s\.?h7}_;Yu }^ h QdV %:c6Z.z=jzUL> xCp(bqL9D iS%"32>MWBOt^ S'r 1fwzj#jG *j=/m7Yuu-TX#0;B$ M0u!))Qf`HOo|aZ^ESTmMuiYOA}e@M;yLUDFZ,os~M>-x+e@WPVk;abyf.VamHjIn~n/}oPKLRc7sEyl,&EpxvxJt`\#f[Edc~|rEJx(yu@% '?F4-{h0YbAjhmT#$)H@5B\G+Ls"~vSPm|wKtI(JSA@MqZh?Uz<]A{p8"!qv} B?=  yE 'k$x7OEn .]$}:(%n&Ti ?v($ s77wS(_KxIe3 ~rIs g Gd|>zW_fvq.dRN ?za~A4 U{\5 iYTo5:=iEmphIj^qwN<u2*=  ,/<"x9GiU| Y>^]P1].E9Uyp<;CjN?9XlU(cZ;oT Y[@1{nyGeu@-*(ETv}G0#'[Vr5.$y ax%2p,~&tc2':Eq9lK EE,YNf4gipZNa,Vw5T.[`E+ ' 0IbdY"k\G3$czn4^A@(wD+ P'otIx^_LTKt,\L^Tu_uYp%k?]<]i6;tb/uzZa_2giLkP6``2t8f=R~6Kn=yu^]Bb>)&#_OZoLyuQ"pQEooo8_pOc4iu4TUn?D@uDZbCj/bq%.ZRz@YUaK4@HX@KQc(?,G)o@~ Ub  @A/g M 4g m]+T YDN6>A] n_z w <Rtm 2a ymB z89 U^laNUlV  =Q dDK y+k  b;Ag1 (f'V% yC BWdH|FB4;) %?~=PyV!IK^{ :C uH+4{B@_pT ,7&5}uI9'A,gR YR*;WW+^!?ef=P 2 +[JP3M/  $Z V9A4IytFC ]La &| x!M { Xa{ Pipvb,eE @2 zDO 1 &1$ $5)&und|B$b]E8ifb+!CP~LP-gJ>P8y?wM)Ek.zU"f9EwGbRg_mK)O>r^LmI_bC QlArh8 =  {rlp,%"0ez#' Y|%? j ggY)H;W$$]  B  e:]Z9!u8K^yM E&X 00a c S 8w95Df7"v` 8pyUyb L5OY \oe-,"BV <t-{  )E8~#qiO&+TQ # E|Q 7 r>-R K[ p1{={C|,f 1M mf"oL_p:uni&U ygOH P'pWf +/r@bG } 4 i' ipEL M&N\A+ s _,dqmss xK  9" Q[j^_o8  j u 1SP#;{n'_Tx,e#xy_r 8k , Y=6{S#Kc b au's<  h 65~QCj] $EGx _9_ n77 G r7wpXw!?_]pSW{!d KX W #%Ny B i~+k[3 s(%^ o  i t%h^uML)d q$&JQ>UR)dRSaL4  K rq z< +f{4 2 ' Ao@i7; #F =\X ($B7gtVZ/Rndz5UoHk2B'\m~ E*kSe82 yb] 'C{5 qco`J`>OA[dS-3_E@oG+!}gNlGKi=h\u 5L l j`?tG =3%G+/6rXazv3cd  p*\t*otiR>lDAoJ=68]O (uZ6ImqOM)=t@G9,la ( eJ$1^?)bLzJ~I{3#OQ=?@Mkd /'(,} SW#b5^"Xdc9Yq4H""B " J(>4^H@T  FQ:=ydtwElne ?/5 CdlfG]  +5SDY=_L0|  !sl3S!SS% a p6\@'OT r ld.9g>TWh)V , ] xs%}5/!5  - [1rETR=KPoRL E b  RCMG2!?+  pii]sEsT#N-MffH3|   {1 :$Pzqcs  , "+g j;Z&/1hx$q8D%gw6s$P{[iKy JcX^&D|6FP5Fvo0;#HJ|czPwoJ+<8qQnT8tX5^ WuL+vG k"46{KwwM%3y`Z, u}J`&)wF@,p2. ajSy#}S1_&@E( %d|14`~Mv{De-ANElP@eZP#DYVbzV(?71de%pHKDU6: Kkt'7{yA`kb0}1Zh( ~b  f`KGkb%.!` HKU]io P;Y>QTT-ktRd [ [ vZ0f VC?4T" 7U8-3e- Py-EQKHR;2)oc"B50aeX:3DcjE;~|fySie6=Y#FNk+~ pROQ~85:gF0?A yEOE<\<\X6$2G&m+st:   85K 3r#| >6u8W}E }}w[ W4_TZW9drK( `?}6KsNS-A7luQc$;c%c} nSar`qHvsQFv/P.{9$D[;eE@<]:A{@QDd\|('BMBW;F1Io{hj }WL:KK^[<WX"5L}:X nO7]Z8[t`mew]N +Kb1TD|` ^o)AfM8S4lW&_e]Klb%Wpo@cs3.vlsy<#sKKB2t|-*/'<ef uf h>HN ,?bfRmvYRqlyJP`HoJ3gCTG-Ood6jxA!\K ? ]b&<Y9q)S[\P5 <e:u6)^q3V0+0]z)bk= Sq re(PMf^PJ.E ,UC /$^47`[n8ON^o3wik`*h$7uEY8_Eu=#(7+|6 hk}$Z 7:\dr:OO]\-lnGVh,V/EbI9 j/$ PN= z8hyRm Y gx5YlARmyR,bH'6tP jk 5J?8 VLF<E 1!*66L ? F#!A Z&d&a e.Q!V11uU2  %-SfDT Xgqiay _/F66M5+|.Ue}] ~ MK,_BDh'U  !nMb!V "b ^ HMv % :|5O>\F08Dph,F$u%oQ O 5 {dVGBT8*M8S gC"UT'dF2! xQ.QFfOHs(4 zD^d nnbbkyhtl7#gal s0+,+xqPx D0 z ` DZ_20qI^)E9!d} )-?+T\0fLK .BM -_  >Vv6.sQ^W`37'e +>gL1`n$ ??U&CpHSX?K pxWbM{nPbx+4&D(}L 5W Y[l5XRpl*-L T kh<Sp_>P!hYP-)k)H&S( iGa 5MBj$88]}-"Am&kJ[ xWr/;|!Y[ve/`" 8z/Isx9Tl l*m{nt V%9`n1\wSsJPp^}F9~G` P3 R$4fuqdHVjR\svxEZKKETqf_- K)2K Q?p^@AqU<Pg}YekL~nk=CZ3W:8wQ-j.~b oK fW7{ 8mtA3Z8r%^'N@K`|dwAcj8 0kF ) Z{ %#"-Hdyen c'i>J?&@1Tw,M?R[o1>L--8_ Q`1yO]0gGe;`:qz5( PWYUVk}TE>ndxg*uf58Ubxr N ) e -f'y&^:"mZ*f-iLAmCG 'L#b ir) _!2xF=2O{f[ 06 lgq{ g5p(zn\=)|H"# a# g bHK(fJ/E 7 VH+. WTDR-A[:Pu?<g\* !S$i |,*hO E mU- 90R  6glE[(3+Mv,T!YENQ"5|N ^/Vc< m y2 U YCSK8,Z&WRh?^jAJqA 2W p  YPf~_lwtc #+Xm q=?X jFg  5( J)*t =;p. 0.v)gf UjF #F+V))#i^hd*4[Q-~5->Qia`dhw)I} yP4Lbim8l?n|rszS( qIV"cnXg  m ?6o7 P T z\)/a8OA4a z > /yI .mI. .V@l&.u.@%`iq1e6 4  D V iePtAGlHS?,~${q=@ j vZ v q[ 2n_ 70reu-`5; >gX b?56.3#k$ݢJZ ZXqD^uVu%4 ) um  C>n&E'D_.1 !X&?@ :E M ]Q )Sa!%#: ;|4AGkQB|g 4 8- [y c . f27Y)Y|)^: :F/pV[OT&? /m^+Z Km[E21rpQuU:E9HWE~XX -`s7 q74}xr= 4)Ln TT iF~57eoTz$.!y*dZQ/ R$%;qRt#O`-tP,8=c:#=`r9u+ zRu?0H=Bm}t B& gu%o${knf{(I~83v7a/8AKmb0x"._+rS$f\V7[v,h9)5)j1a#s0W?,UVmbOF] \]P^zgw>\1M^8{ ,twAYx3hm~}KK\exl!VW] 9= Y~uYc][@8>LK_|zY)\F c*lbh S#d`v~ nh`"\9nMn^GEwOfX1inT? B: =  j/HLpLx$:a1G lHKxDH5 |#, yWmjS6Gpek)_.pQg);, I4,1x@d,KT-@J+ s2+J&kVf9ox]O 0n|oS7bL1b:oDka`_h0AQ1EhO).'|HJ=M 9>.-3Mk~VWwf?] 8]( |XTv*J4J@`cX J` q\ oD Kmf=Y { Tih-$ # ULSj4  FtTN030E ) ho O|]P f _ [ ArQtU DsB> APF!y7k S |rYum>He< )&kk -/> e 3HQH!< m0x"l  Gh@p 5&c\[ |^BL$,Ae1FL]XefhcePrc_k C**jmy za:{ .5 &; q6& {:N`pzyy&CO5?Ws St>  H 7B| T2C`N dEF3.OAn fVT6!&4-=oLLOpi>2 me<xv%Dr`4KTw(Hf5L eb[VE6CVUe|C0 j'r`w $7 Eb13G@!pM15 A$8*V0V% Nh<74 >~bkzl;,!%"|Xj w!^EZB ~xni r~hl  /2/>b~:P6':D$'SDuuBA+[HrV'RhphJ#_*& g]mY]K!M^A&_;A9Y%_ F " M_0Z.\ ]WQD^"ieXhiruvLub-N!:S^+lg9 ^_~t&GsjA8V%/S_}q+t_RH ya I\!=+A 2K>CKfEa8RHGT\ mwK[/n'H-<6CsJ A^j9Sw#V+ nqzQ}P!^oj0jcRHfrIX;}7RMJQgQ+RHSB ,4jLO1MI~ G]M^ A-' a i@' ) m=!B.%%G D!!|)) 3['  a| #VvPvw 5pRY T I$73 O0n-|@COv; 0 7 ] 70, p qP<1Mg Qd!a? nJf5, Qc4Okryz nri#c c2qTC 'I C*hXO&QUr;25 z : }LYn` q'=J `"jY76 e.+pw?km^K\;{_>" G' %NQ^9A |r[Kv R4UN R, )_Vx9)+m =!.+aQyCGYZ)fg#N#_F k  " v I.0PFq] 2KpF. u/.VS}>H(rH 3p4ٵ }Ml6- 0>+ k2N Zme;n8% 2 "i Udj[.O} g% $". Odu]JB ( iC *F{>Hw+}@Y?}c@]2K$vk2Yjo'cYt>u,{bk*lu9=#^T.y3_/?<<\[FNuUgGk%o ><xgZ#to@%  qhFv 2w2p7" JH\m"AtiFr xJIv$E;b 9$nG8/s~Fy)8;7wNDyFI2oPLj}:D,D[gLPPicQCYnoeK[&/7OG{/+4bbm]4<bx k`^6M}5f 6E.w~9Fi|~2ub_^YN" E8P[[gs0n|aS#@:MmV+ F1K`/ = JtVj7%6?R j.-t]~ [1R sY<8s4L#r%yTo6tbvU('&RpprMR=2fyJV{U 58G1}K*`iwun(?d$<   a?W,G]X _E>T>?h2NIGl$>_P-"RzCuZ 17OkXVl"hdt?af]3P?O,wSULW~+k}3SP+n*=hXL rB>'VGKY*tD=^`?5F96j508;6/yL7: MUhJw0,lt[  >&le*CNTiI4yXC&f O  %JrtQ><O`gjZkt#|41Y d7x2 (x c#w; i *ray)MT K t&QM9S3[ (m5S%EGV( d8D H ? v69~)VJuId!bO="eS7DNp] 2%  }#>]FtA-s~#!fqaA!strYVF3q(Ck+ cdT3 W1,QSJ rk) UN W^ ^2j %# 62UV.=@9F~W~7}vL,C6BSx_b_X%9vSo\g FD  53nlT0rl)' op*/j# (RO\{}_=q ,gecPPQUaucI A4 [w<Ol0rM}cGI-!E&D{R;1aB Xb 4uB ~(4yLyG%b aO+*yDR~-:eL!<1 834" pzFmdMG+qK#|vqE?lxd DkJ-BZA| hyk5ar 98Cc&gl M 6^L;^q +P|[8t-csK|O/kx93 d hP 0 h6 /5gGRpDR : [ dGhd,_E` q ^e y cdmr Znd). fw`fgphX >Dja*#}O. [ % i u= axI.{n} oju#{@]kEKy5|}2N59 MH)S jA 6V yV t Io8 ^]rIsF z-C0C-,Gd"K"  <TO. ) VqCn2u$`AV %?n(q!G SZcS`Y]Qti & & Z _5KY5> b# Z?8QOM8S/3"? 6` \7,9&>8'^^L<>K6 uN77^:SKUOy*qG x3Ma5TR PcXSex^oZ>lWv+E9qN#qY<Zg~M'r%i*uv3^@)CDbLr<H'!Kg4I0Z+\X^5 V= ?;Nl P  ONZn=Y<{[Jj^H Nf)VP @9 [p6~dH-rXXn:?Le~xaY~vZYeg(XW1D~uR>.hR~PdveoKhEj{K$H<SDpt5:[JJ@oYJzl'S~?KauMC8l$nhi[>b!9SRE6:2Xszu?e5xe8 '|o n|g 2[G~nhGUrRL5{}Ryg^uV_ 9aAQ T1*9d>x_gYT.a.0_]#4K* 4"?W _W\:Lf4/*w&YDc_ ->_LqGD: j77EY[qt;{!= l&D'7]5fJspIoe%m<QF~)N~c*s&)NF- ~"D>80Mb$s1jh)2Hc9 =$Pamc&Dx m(w M&?  2 EpFSwjWu#}! N-u \"1{b j>N?h($3"U a6Z  , }- QBJBz < A_$bO -7^o?,%^XZL- .n@d ~xT 3iFX7 nKT{Jc>|Aylf(+Q [};Q*bh>  e@ p0T =Z&/}/`,)M! 7M~:cM'c  g g@*:c[s}C-laA{IG  913{]Lly0wXk1>*5 ~d.`o >~4g </K2*IM  I .wtZEKf(ZTM+te}2:Xzce [{g wa{$rY l  l$e[E[$@@~Ga=kY2qX;-y9F9>J0;s}Q 8 j 7$O#9U^ j?F;;Ugs}|*V ut :W - M eF]TW@QT :" T'4q _YGur s %lt  SfJC _YoQ[1  U o /bZ ~atc|uC}(km   s|%J   f/(>A  `<qTFh&F}x ,CV3_)'z0ok[wF  o }6h/0~+H)*UvjNo l =  &')|bzJ[" Aq :w_$ k;M @ Z \cI "<3*B5,Z  ,ec> 8  Um> H  P `D{x5qHTC # EE} C%n&lv-r`[6D>)q V}!EfV7Yfh=S3$fZC#OV#EETPt yCUzDzp*?EjY5_8(|jfL|m:ma{:wXt$U-d =##V"jYm9@57[<`9)+g!aCGx ]L :>aK<|)#2~jOF6HY2fWRKmF@k.LF^b)Cbamx9;XZ|7w6I6~S;c-7 &otK[,=(ThK$ u(lYe .{VO7Nw`n}H%16(5dmeVQa&o$k>cp`p6BPd1|rf,|wLP]Dt1[HNP2=dgmbtU3FW^th:XFU"3dG\v-OlJCcj1wZeN}}|@kX;Kjlv`;;\zpi$b>e;@%TP\fvAU?p<*Ov=GwpxahAssihWNaeK+BphC]bA*Cv?2_AVTS7*J8*q8'(iJy ?1:<S^bJ00h\a4Xn {yc4K38|iBgDZ/"_ z=ko fndoJzw$pqHnT3OedmD,,xx)i(&i x05 #d9L?&6VD U h KZ xyDbpX XG7#%VKS}C(.m6,e`+>%GKM UY ce!c [8IVt 5 n 5hVmb9   */]<\JM X|M, "y;uUL`&KEexUKl p^ u N:pe5YS 96 ' O }l1jBsO#)^* x>zmXT{=|:F]g_IxT  W / Rkv{dFU%%E1+OiAPzO#b~^?=-#y^*&&wt5t nUr*.dT@-7vIQ=:V0`_H :tl/^VA"d~0]r D?<[;KU/yeE >j;%fT*zS:v%0n>VenR! ;uy>/^@Ip+Bk Dhr6L8 C]?_s-H6knNAQ* ? $%+;&}R4$=/Y=/z{ 5u<lX|ji7onelU$~xRNLOF ./Nk:@_7:u1,G>^%7bBL+|2apNHQ#7p41 "KCn&NdFN,  N{U8>fI&MY!|-TL*2<b9i3KUt //|m;s[%II2lF?u,~ODK;fJA 65h,j,|Q>0T*$f;l /k5F&~Rk jCoN,WRJ8)NNa/E[& -BvkYN*1g >/k<=kg\_fSPz22@>>s3nhYD(c9lFTNyAy2: iq;:Ex#J"v._^T5{a _`$Y*0* #taJv`^N@Q:Qr;$sCz<z&O:2X<NQJWo8 M9=P(){K56sl_~-2j/FSfqC|8w 4w#;T*Y]B2AH1bbdl2tch'-cDtdd0u^ ' 3RfGRQ\XV2\SX.4TTOZk) fK7_`,d}Is )6r=i*R 6/sWapu@EJq "atE3so|f0jk)<`z$Rh4d{ r%T0SDgT]Gy] h du']L3KHJ-r%P#Y~pvOZtX7yzBE@Q(6OfB%ep -%#\Dr*/ZOD9Q)hC1.Uw=I@a]5 #!I*~|(CX1tf'$kV5Fbq"`'p7m]{ao**- e(2;u;FB% > wgN'CH~|N/9?LUsr6aOXj:-$M?csLMSWgaD;$8:cnx~ =N,OpUktHl?KWf8 >}|]Q"-*vfTIRt= MDcu;1m"[L?n>U?p%+pA:X-oV{"8t oyrZt\2.{.Vk-BrE[X2IUo$N^dsjZ"7'FMP&pZ` Fbi|)|J9b]jR+HL: e 24 T p #aWy9T,~1<SdON` ;YsFGuv,{)\T2* R-V-  8M|U) BoAq4pd *" a"3ST`7S*~x?V}f$V(E'*7H#0 rsH"Kjx8N^E'yKW:%d6m  { @G&U<-=yw2sR lOb4dGl] |4\}]Mm/It oe?o\**kgA3R@0< ?AT?ܿa|A* EvQ ~~(aTqD2g {dsk# Mr< J}@uaOBY{}AQ$nA o]?S 4p,. }pX[gEK =1;kekNP>IF@\56 g  rma~i|?# hX6/d)KF+S $AM@LY-3M [!$D14TbpJ!&?6DA9MbO wz'2SAt}=FRf  8$[8kQOO]3u|U44u,,/1 m2~U6$]BjmQ EuEq<^g V`NZ~1v*o7  Vec>LL~}erP #3 T7]d6wq eor0)&AY8H+$ 3N/-zd# |=}q O ,+=* 0e%LK||]RHSM=~\G"]yhjo-be# -5 w%  5 s $7O: x &sd j\Z2ro0,,9 pEgmyW`K?K#0?r 4:\ ? V4Zw"<( 4 Vj^h*_:jpn4>5OP}wW' t1*.i aV # 5 V ,r FuFu6 q2o1@m,n1); p?@b^;^K,'_o1\; K AdJUMVg 9Q+h), O(:9zKa%kt2=JXXUG} >@+E5Y+)U W'k074)5&xq"IRi DF~;m$3D0(wnPQlYv[r_=fYaa4+U_=dhWX<1b$8fj}ObEEJ 2(7O/Dh+zG!zF*'tKC s\m(bU4yqQ,3g<TKXY4m/iM2vf|0OX?#~e&tww D~">( =Ek 1W+13$?y*`I[ 6eF)RB9tjavDj6.ZA;}}zU{K ~%LH/  G^&'/e5xw`lJY"HCo:Ku%8!,=R-a{Ei7(#A>J]xmbt*cpaPX:Ro]"#98GNc|8Llf'T~R!B5|\.7v,2xr^+Em D S, N,cnu2ec] RI9} )gC@  py%s!Z ^ ^  79`{#w1/NRO 4:(0y B {;(V}lAF F  HxW[_7 PMZs6MD w + ='onzr,:2?#+z%#t 5 C@^ )he~`R#Sb)c3 5>rI nO"y#A97cw l6J?#"5]{ s` yY>G! nyd3pqK6Qb,K&iA`B!  X gh Oj#$  D  n |UY;W &*"cf/{+/nS U6 q_k.=M/o 19%. שZ2ZPlj A 6  l$7 6Bzyvn)*w/WY_](X nVc>kGB I M,PJ< GsgOB{qtd:v%K#0zk '39LrO$ Y 7X5QLiLn7;)OM[a3|W'JU9  <e3 q br's q77L/YT\^yqj b   {[9 _C|{J{r|p4P &E@Ps l ]Gv( '&g9@y{dt !Lb)OMI"z&z K3-eIvM7"JS_h!zASj`g#v' S~%L v  .J8)vlhZ%KlL#--<%^NZw$24m]n(@9%v nfP9o;6\FNRLC<Q<hR N^.r |4yTCUn~s;0( >oV]pQ 9<F!NB4oYQkJ'!>|M:>y4Kz9@18=?#OezUJ"=_Qz'|hQ\U> 86E0BN`8>/=~}B4wty a)q/uy]A*L"< 8_O;lP8. 3. 3/n4Xm[K6qV8 Fz` _6X~fk[oewTg>R& g|KgBQJ.'piu+n% CFN4"@;?%v'IA,<F)7(Xw^J]+jEfc~q)Lrop&%IbqEK/7k<qL'+FJ.\c(qa-5o~ub{:*uN 9 77dV+(Lc,Rfw"s>Gv!qRc>gUTu D{ij*FtO ) WHg<+4' . p2,-o J $I{D2h&I,mZ5!k&  cIW(,g4<?g. W f%pKcb4  9^3|?gS! >guq1Lp 3,gdD ' ; VhX*Q h  5 ~ {UnQVW0 |Ab?v82D_WiX t66}*AX@UI%R>F" ?&~t d E R_2a 4 ! 8 cwJqC Rp6yuH9<}%< k )LcE#  % 8{! njC4#} L)(gpJ(xV=1(q vsom HbP6<F1+5*W93"wQ&.B'T$f   y/~iOsJE<bjEl^9R9ZH}KN;Opav ^pmT]6 THOJvy`61@(}jp4W\[Gw#l{]8|r&tQje`garMi`P8o6Z&+|KwKr`3mmES3Nr FX;VVb+bE5t"rX"H"B?QND/epP<@f)%*$q~-:#Ox+"; mX"YUE tqg/B|1A6H@9o}BkWFY)A9udfxccZM)G6=* -x*o,f"h69Cn/]{bfhH4D'cu9ct!)1ZX P^2ZDn={sU 8Ov"*Z2![okYvKV4tPW0uzVj OgMMuHO, D /)*zJ%tVS`{$9AS;,Ywa kqaknOwR<S s/b }s6{B_ x d 5kB- l3t & E _dVe"Q3+imx V *9 0MnRG ` (l ^'HxtXA&#[p/ fU Q6 & emV H<\;,0gdpw_") pM0]%B; 1o  8w?0-r 5  ij /) zuxV  ~[v ]&B-! ?u]+ S ;}Y oWJ!"' NhY ' = ]t LH"N O2Jv\`  kqUPgr' k`.V 98 m2 @ h<zQ3 5 -hF9"UN)!eh A h8A ] b_; a2 o*j} L{ $Qf2eH\HL=uizCt%'>:OilL 0cisS H/3n|V2mVWN {n#k,kku"+5FjMZ$a vnHw8~b_QAb!0KJeyh |YR);k_x*Egb 9v#=88zB9QcEQax?nOD] `9 =XgpATPgjUJ)FCb@ij(FQ_ntQ4zy4k & ls!~d|KN#r:Q->B2iZ/N-'Fkp,4mo;AI'x%  +1:rF%v:Hr w O4*WCtzaoa WS4yCS*{3 OZm-ozh>a37Jf]<1W)yht KtN}c80cU$;QY'u \KF=8.AT,U29EqoW2hGx M[<*9?oQeEZ ,1S>L0` a  l[[Kdev?bZ'i9 NrPa.`9RB{hBtP=m4 0b{{&_R'5, 1XK/cKJ5v~q7kp|lOo""'S:6&Hncv@--D,6RsX21"8/xl 5PO2(Sx;~kRDH!t\B^y\F#g{g`Amh{@}Vt `D{P8{t=Wbgp&`|T4 PKV?`br~sF & .x}a {1c 2=bhN iyr5:P#o7oB3*Tf8pTZT^i`XF,{}dP?^v4>+r*I23JMJ}N1KE&CKA6R}Eb_PR(0N.|`"LDK%;+}kI$ fp6Z;uB"[(Rs' a6x0z rNT8< \a+f|?N!rs]Q>Us. unL:[DXkt$@&rpJ}DYx]lKBAP2;e.Cat~$x Y(Q *RD+PP+^:6OSa -=`Xlk?oP!.i(rP7qiyWe%A\6&]SivDq<@@v@(K.K"et.*(Qu Hd$/1Z"1\*,wr@7|LJO]vPY&rvV}Zj7}uUV3&~_ %s} ^SG%4ajg~ O<WAu< hYl:7-nytz`D|pC-=o =9{k'\RtcjO.gEO0BXS4]=D<}qwdJJtenFT7ER1Za2jQ0<^W Z^w 2)j^&t2D"&Rf0&u[GS'=p* k7u dG]Ys EHNk@!> w+8cOH>mOA`{ Rrd]C RgOHh6} |87?tW.HsS[mi2.B)s%TO!2,si!j/? cQGFRPI\gG(G|0g5"_c@MQ99:V~]}q~1,^1G8]a#P QHhth*K~$GXGXj%g.$Hkd{`}RF  %qvpyXX+aJW5d*%{W `#3Bg^)u}cq>$ (l j$3YF@_DJJV-k)c)K*W"HKG^e-~M5wM}&:wKxpUXhmM<i89 o$$jSHq#UY PIQX2c/=2-HsIOJB>hOs=d^)PLCz^f`(Db:* TKd`qn`t+: +35:bJTk]L'j^qC"!OX-5 q_Jh(ch mEY3Jpi#TO/ Jag`SIGP~=MW]QReJv{cKya//%_+c uD%zE@cg[b" 5cY@O lu]L?|dY\P 905.%_ B<4! vypk n4gcBjMhA S?iq|A-p"b 9c:YNGZVgyamH|s7^8TeqsSN90.YJz{vqFA_ IF+{buSQ~F!l<OyBnx9}o6bk;EtI$]meC ]HmA.eEkt^m AR[n#O9/iy""]8N~T5wKq Jc>&D)>[`&gZ J'j?%o_dM1 AediC AaH18%VX2u~m[^kD.1<(]j] <x4>< yGOF0n!v+%Xh >S<p>r! ~| ]n/|lvyxc* :'LtmQDcr R~MtH j eiZ M-UW *Q'1X.YdG&^P3`fgMs=o=+wl, =W]?vj'$E W:xO9~nQ@v J'1 C`&2MN%*%:Qxfd7%4_r JN6L72qA/y}`.3D_2^> j q^IP"7s%g|RL' l~Q5yE;$f+"RH8Z;_ ZCNsNh>MM\5}XD}R( V#Uw,>L\Iu?J!""T;ioJ&B$QPCR~_ kf`-ygl]'9QR-4]RxJT %M=QQJ{jg"y5hCXqZ!:%A%? ox x_Ea,a$Bw4D|#QDCuu.iykGY<O[_Q\ a44z;`w'DNGq!NF1x32 )6*>~Cur5Vm }~{.= 49swU#'ro8yX[GATxb:NA1K<6EXL`B@?yS5no8e XV[>2FWz#Fv8FqaUVEtcugsuJZTr>&niI!^n4ea6p@KXP$qyQkM->{|Gty*1,H. _PD{6:'chbezTdn{{e9A?Ndq[o # nwqLf4^:*~5SdXO chR=-@a1]-w2~} KWDshC |mkN` 0C.cX_/z0#i`p4(-;6T6lSaA> >/;7`*-%( L `4L'?$7I,G')!C"QrYEZ}kC?6 p[JI$s&[PF0 5A>a"/]@_uhTqeT,C4]bH3)oVHcUU K7e#]wI3,@y#3{S=ej:>}cC+6Q=bBonR& (g8 ]<M5.AMw  IIqQ Mzz'_}(T@6%&3k 7w U>W%x || eui { > sEMSJcgpQMN<qe5[ +Y~C p bn~vMB{n}:\~gc.|1 @7t ) y= .#aSL`54  Oh+0EYtD48?V/ so :0 ";-@ y .TywyBQ% B PdZy.;=/89f:< f q>&" * hz < x$N jBBR`2%i f/Lw*' pqdL dj*.*TShs5T)Wx&Pi.iN2 3F>w6dX[!M` C -GK\(jQ <}'% yk$3! s7o_ M3Asn(: [<,gM|h_ Fff o'[H7^I_mcf =M +}B2  ?6 ~.3T 'n2\3H)J nW ^^PY!e`?(1d) E>7 *\9 : \gl M <X)5|  C8 URa/?W#Yu~~ +F)L `hK"C !c|qve$y$!{  ;-- }MR}"Ty1 >V! DZT `  R\'46 ">^ /  7U M9=%gT N0Fz dvu [D#.t ݹG  B  ) I#) m #*;<<hIoj'+_z:A`EN(a (KS"3f2|U}( kCZH;' dhx1" H$k@|-jH23-D%%D0 sY/ PF u* Ax(  u7N| IYxv1.'C2(nM 84QE h{T JL?N &\C "hIH  Ll]2J2Qu?%uRW&pmEhtzQ0!c Nu waz >S  K;k D   A< YNAyeq`lww0*#@G":S|Y%V 4Q zT Q CNdn`)% m?F7%5 G  f]} cM(T> sa0y `{4QGbhY `9Z ?/k Q) ^-O L M<Gm`)& w6)rM 0hVKJ2wP@ =$8 F# ^]9 "P  h m ! VL/:cBw :"_D h H S5)Eo6< !1 <LhS} $)B_{B>~aB. eR! fZ <C V.qj#,r"Bs KP^x +"1Xw/h_ g( - c*z:vYDY HQ ] V *& %'a"m"ult![aR24p!%08rsIr ^E 7/STi1  3 >f!x~Or9_]F!j9P<>$?)  R f089yGX/& Q9hoQ:9 QuwEnxb "6#6.Y| U*SK8hdL^GJj</P)LaZ)a$i'{aRlV5U| C   4l1<\2Q08cTuZA,noNw rYC5}Z^+ - K g )nbD$W)NbJF(z >Ctc btQ{M{-@< 2 N (Z/ -Bdw$ue4:>&oO>0gr3hv8]UK[& Sn5  (O  z  (*7]\pE>8pVq[8x5~x\2Kf5aZS'9.V &[/ C8Q Z 0r4bLn!&&oM/AHJ*}&S+ds p\S SX, 6 -s 8P7< y{!#]6lYbZ_M8\p5m1u[!8|8,=Y+$d hm>dMH*IK`iTWbX XspU9I$8p*Z!Bw]R+{AyRl `nWB/|$~A# _OLa ._51N|nR6 "v'nM;gF osc5(u$3$!DF]K4EN\;Ze"eR1e!3hp0m;F2.XBhC"brX\,Jj|.Jm?Do*7>Mxa'$^`[c|.0}_OjeUmA- .P*4E-b?dVtmNM\yvAClT4A cxUm[LT r td3'i =X%coh |fMOH9(D=w2YoN[an?y5X{u'W|4JokffTJPdcgE8`cOVg]62 &0m37dWrMv2]u= tE/Em:L* 8]P$2[ v#pn8Lm5syAiYz0;}I}n_irJ,"P A`sh2Mrx$;volp J -hRN. :0oT=38+[F;y7zCev]`e ID*%fXZc(`2EIE_"O8r|Ii H*Ob pOZbb@ RZXS! w>2TS8_Thab= {]~?p_~MO6+ `QZa@ i* >A Thldh!^B^ i R `1s [Sv0 -j` xUQ#%i6_oZ!/Z}e(fQ(?x,F\*zaS|~yo%].6E\ ] x R#A s8hQSz>7xHZ _1nUg+V fs`_X)4O6V/eO wq %sFL-Cx Dq+ Og9ws&NU\`_&F1[{y;.gxTi]w.COx%lw s~OKE}0O1"^GsD!] D68 s|j~x:v~rL3-{|z$<7"+GMQ/wgF008EfxJ uuD1e.NlRz."| e-"^;t(u [$R 7i*qfRXCDKq?6g#KjutROrq 'S@U!8G Dm.^|(::`xZ 9PS1P~yrD=u;t8n<-VCe kUh ad =]!Wx2 ~ DDHp?-(3r-?7"b,I od~] @ _0g }|,1OA;b_TY-`'^A}6bhohmdY7E  @Tu7|0p:!6jlLj6$-@1r!j, * oEgr AhYE>5/ o$\BKE a,(@(X6Yna kgG$e^TTS- CzD`w;`:Qic" x x =io,Y""Lg!^Zu9zkaG>Q )zu([i[SC ,>tZ +e_|+i6khYx|E:@<g ^ i \0dqVlZ:J(pji#GJQWH1 : bb$\] :k:;o+(Ik(_!:MP6|{MR! @g^ >iDQ!]2Vx?[C|qYM$Rc\< 3 0 t1b *-n1 }\Fw2)jjeu cFUfr$UwG| h Z mR1 pJ\YE9@/s;z;`t -5tWk$  u  }Byta tw5RzW!zOan&$r&V$W0 @ h ZPO"wP04> l~!}9#pN M#3$[(- 1  Ta@ +^j DzoBrS 0 \;W]g";~7a'0 $q(Qvmpk g !;vYX|w. ,%_ s ; (0)* Wd~Z%[!R > ; 4_Vk'p +?3?0<=Pq,'-B f* _   u~(P e ?I, ID]I_CKW t$Y -",A pE irRdz N  m?)_!(Go , /traG5 lr& kG-  ?*%2=,H8+OU*V,R`cICAu,qV ,Ew\c ;mA">{?|EFL@%neZ0SCS#!LjZz_\rJ*u9/kA?fNa\n/)*g ]D0]iUygm2xQ W~h\PJYJTm2u-I-de6xvow2%  < ^%m5G6;jR,a%bfD)QEPRgDdbGA@gi e zC_: m5"I#' GH3PB9`A7,}ty: Q?K  n:0Vvej9*zKfrsiq&  GDfdxH3~be $p  -b:-M.DifIX  EZf;+9qVMz'ykG,x  - G Ci}bQMp  J =7'g9 k " ] n ks6X8XrZZhD mv'%Z/3 Ik1   $u:PES 6bB ;#*ml"`s wzZ2.:'W!A3P^k4eK2kmG Z- f~W~gip  18IHj2:BmY" ^(!  K(oKu;(9 6c O@v2 C <q 3 vX, %wfHW&YNMgdy/&z+ zR TtS IUQ +^4 8$|] E TQ6d9.E)i0va(ha%& #S W , tm{ BA'j_9N-#B!tWBA{}ye v)Pr I ({4 .m}^!AO04x3U^-Qg=`4)K_]a^*|JA wo ~rX '4Y y R '3w4xy UF(bix|NeM Mh n B O]v~L G}J2p 5UA@3D/Ek0a_]h'~ :/" UF wI k W 3`"V+g2 mlg xBDKg]{_/*_N[xpL =  qA. 6v%j(([fC*# V;}5ih~$R>;y \ K t\ b87>U_upv,%  (6Q.6ZZ Q1 >%F'g<AEr4NQ*j01-b! O(zg-$`gTq P%X\+ph[ { z;hX;:yv(< ?W)`8 N!#AHEh4A"~\,- Lm  (pt.uc 7 ~ ~7 w {]u\yz1E\D (x_  &Wq5"fZ:g_ V 7 CvkE.,L }  2_pM>I%{;})'9`0'  f)$$R/11qKw OZw ^ y=|!SolY|3 3C#v`u *~C ]Um]|3c:/b 'T W  :q r }5 c.r0 Vg |_!?.:.N/ZY mb)"V'qPPkFyr!    1PJn A  UyA=;l^zwleU ')^e%i U5y @hfG{iw#e^ t tz <{ xp'Pm7g0c1Y#`)T')$ %'n>mx*$hQJ Rri,x<&R Q . }{*.?"sR\,+ C +f'09-4 V ( KB 0lx.Mc 'j?]BTdQlL00EN.a4p!d'*b )Vga' tK*hF K  ^DrYvSsf 3 = O 6ehG'!r4'NEa|" l-y !|^ Q   JMG`whv A  w (-SjH`yyON ># cB}  +t7x0hm .N@ %e$9B()D4BP q 8eV$i` $ShPR<"V yi_/R @J1 "d%!?K/G9M k ~  H EkRf=NS,bU_m:#m[vZ>uKyb5s_:sx< 3$n  _,zZp%dgtS},sUR3K""i1+(:v7ucn{^ w # &TI_5~C;:M R b|*e P171w_k@UF>X&>_%p6+;J_;CD@\~&$ C& {4 k4,YuB`;RM;f RaF6[;+ZQl'pd&p\/X b &XaN1uG.Z70j-Ax6VtuJ o IK"_WN(4 ]U>?GP#Z1XH7mh5#  F)o+0A`L: gF|rlnJIZkcZBB\ iv"=eIq  9r &S nMW"}I@ }lM6 0@bp<:ZNJh" jwcT T 9p rv K_6:?wk w}l '~ dD!) 8y QjCj( K = d 8/)?q%'4y$_i(k -&ao?8O/~oybs!FEJ  Z  | "Co *>XgdSE;W=EY:H)qOT l#t0 C|eIUN  tVn/X:9~^pb>L%X'r0r!yb\'0 0 E~ .iI4R[[HBjK%.@87hL{k/o.` coM?  P]d':t=`9KClXL tD}7j)+]kEl,sf3 C@ww!KP2 EAp+o]x6*. Y(6"b1Yq# S.m+5a3Z v[PA} eZ7 \mDk_OH]kTqFR m~%UiGrMfSg"a@DL'6FC<aI MT\~DB#P p vJUelr;Z&G7o@ Z= .;I15b'VHf0^1?MfJb,dG  [ Tn?p,%u7Zj9Z>=4J6>g8x_gv+k\k41*G s ="PN0@]j5t;"|%& a:@z$$*6RM Jz}|N O Fih_e@v  T?ZsVC'u,a R{CiY-O+g-2cS*~$dg_( =6?_!Qi 6Y`S 5.sq8KlIweW>o)  ~~|>r`U[IV M<z' N >= Q_kJIN 37]"F76` 5} N9"w` 6*!%IB.jA8H)3QGRA uo}(tn l,25'rc$* D`Y6S5 QG.H?Vmn `bYLbc 5 P=d];`f{q;5;GKaD /('0O!#N6]6: { cc! a \]Q/*~]Y&s@ oI P=p~YF8c8tP)OZ fO &a^aKx5vO=$F}vl5+F|etE_|CH  j$mu(9u  . 1 ^EJ/8:dyJ?U  cj:CLZ1n}\|U74)%h~HE"81%@2IMs;i)+>2(tIT?a"{7u[ov_R^,5PC-nu/[kuB~LzZ_Fki~ )Z"D+ZkW # X gP xJa% 3 b\[:lBftQ- PV28 :m#"zRZVgx8O2CJ8:s4cL'J,I_X6f88 s]X= dtmo?~qFm CB;1~U[VU=qSq~l#Hb[hH",@o d+C"6kj$dMrq`e'rE Y a  v0. hStj^bAGN Rp ,`E>'NYcpq>JzNTw3>**/KGCMX hLLp ?|K]15cI6!/"hixZ9q@D"31&EX2w?Q# 3cF(7a] D{$,U0Lv7CdTA`Zq`~RGJxQ-c+  ~ $v% ++*>\3"+EN{ 8L:^pBJR E l 2 /`ungE318s:706a64Xti<6A O|e0X!"uv "g%Qk+CI C xY g+ulomF".66&FQ>(!a\soW~ 6 1q3| 3 *#oruXM+svqL` A Qx3tMcr\ /UU_\ Z&kd7N6R,FIc qn86di>=UoN,Y`b' Xn H [% aNoX:Ap-eL \LA}1QG=1Rz{GJKQNo3sZ -*L} Mr1[ k-+w +!)hq{ no;]kkkh0 fg n# +{0R1G K`: XV'5OZP$Zoy{l 1b xWgQ#|&  z] >jP'L!N4ANK$?h,LuuDg ta7]'V{W\mkFDW;(\ mzQeQt@z\nsA ,M%*-oY~(+R` MrCCtL$#;l;/kUo^n7i`6Zgqo!_7 5r ZOG^:UI|}hH=QnZl.2H8/Fp4."XCCI @* m5va>L`}0eT>bO[D(=f Ju 5B,s@PX lOu:K&EO1 ~>;Q,:Q [dTz E1"M{+iGz+]m"1 X9cy*vvatG5]H&0X 8.9jz I_md uK!RoIDFK5 b^+w6TthH>gZ Ufy"s'f J3=i,?*%<k)xE 6M_B0PICI 7;?i Z (s9@! y'%1e<{uNYO(bgV1az{).mbGh? gOvB-cXo,U t$2=]*b(;d ^r CNWOm8[ Lm=Lq2HtI.?}$PEE?]O 6Ohn)R<X=   v1P%@h Lo CDg9= K^< NPv@)M>;*VwSlb ) 3z-{! 6ict^P!)?X&Ao?0-Gb Wg-t`%7+E[ j   s4gMg&UD[X;_DwPe[F@8V^2_ %e(ngSZoa  2 l|3&9yEene : H:Zs#%7){u:SauI#.|su c o/xv'|{N  Ee#E,YTje,HbIUf.M' Gz_4' ; } T w9HOFp% '*" Q#Cd6 &q'&LF8 m_@>C c q9vL({YPQA 9 9,U\YG_j-VRGGPK3-' ;h $r6x'ngjV_u^9GS;a6[]LjvL%mNH~$?"*od2g&n SP^n<! wp[o.vOs!WyTZ\LuA Un +(Ql )5MEd0| !@f0$5NrSqOh 7m R =c{qDikRl(qK:6Tz Df f(gd1, d $YtXr^ [b(_},g*Q|"*(~JYEWWzqZ^98$E xG}61,w: U  CCBaQJq]']2,0htI{4d_a?A7f}#J  . <  5 tp?;N`z~t.5R^6 =]?a> spw/ 3}o}F I Foqv ME:QP/)g2XnhYbHz]W:\JU3DPNT 8J ?2$) :i$i-{XC:F|}N\w`.q-X`)9.#5`VE&  W~dDj&  6E " _wo8~02O"66<;9J/fF.* oW TZpa)K=~8 ejnleugTW\ox%J!92eF5z@v@'q-|#}E7_ ^ eBEH&~c 7'H)"'&,I'Xh ~ / =;<|7>7yXbZe5@>PCQ!u4f %LwMO-"[vEAng WM"9:E{t=<OGall\esr:5]u%N =W8SSeK cf:AIx\p85o?U >l"kg~FkP6Ag\RN& oqkyMAKf nTVlZwej ,!GU<@# dJW<2_Bf:yi]_gD]S:`!6+4M`i486/uQWuCY-l+x!.?gsv#&=Uirq=B6%kshZ+d ^u&CKVGoO1adni hlTw!xO0)HOsC4JC|glgwK B>VqY "woKe;Q(*kYhFxh8U*qi'y5 \t8 (Xn)It~hv2tx336n7sc(PpZYmbdRHvzdU!al-`jy=.z`Sr7\;7~p2LHA#b>uPRTFm~3aNDHhbwb#^1IXc0 H6Z`nU86hH`cE&y84"n-#+LC|8!WF WkITo3O4m R4Y<6BK4FX"z @bPQt4Zy5 sP' a-+jK?Z,\t7BJk dFqja]U t A i^6|ky=C$& ]m:eU]#8",6/\[p]%Ntg|&gr4E^P]aiAYheH Zr4z3Y04h^Qcoqb@e81(;NpQ OtqwPr#6qmG [u2*eon%-w4WMu~pIOl@?1tKag=-< (=tv}qAo^_^uW`lLA=EFZsmlX 8#ER=8u}sz`f(b\|&CFV,lZ0; = auT]cQhbfSZWsPd&C8@%3?@M/8Zgur`GhniUX5pU{cwbSZ17,!r7 `]obfpe+xYnR3QCb{8muux}u}"+ :*JWolSMU[fJ`xJMdKe:='GZ.$C 4(#i}s]OTEqSRIc\U^f9EEf@s|oL}O6)?]d[Lch[gn{~3C^tt*CpTb{gaNq@K2FYO6L$z~Fkcj]}{nUSUGnce-@+~9tbOM@]DV:eztYhBfbIgrli=`Fw6/T-VJkM,H-l{]CdDA*`_&_XgYv}CO}^OATlSA g' LjD,==:l|jWTmIPW`rbJQr}GQZb!)Q8'$Uk]n|[5_h;K&C_Fkh]{4tFUeQPXXGj\Ue/Gbbl$&ZqPM;>3nvivqlp`=>2RI] .Is!lDR:K@zb}uiv 3J3*LLsk\mSVKlyn}zfmrm}}T#5e>+^SG.6; -btw{)Iw[|7)b{}dOrq&(%?M9%(5MQB%`J^rCfXOcmer{RUTpbb[vJ ;;tadvtcxydzYmCmX{o-$rdzdfW_('nctO{4\*z:-B(Qlv^6i2G8Ra?2 `'&7g"diRiB : HR2RFo0F`7SO/5~rZ^ dO2^f6h<\[(wv # }v"Ci7waV-:JlLuGp0lMs0ue(CZ``zKURG/$wB.|]X ~I 4lQ/6zAj+/s{C'zFCMQmRF}s;Oo^t5 ( 7mpE roR3i5Jw ce; 5N]OVh e%7Hi}\^h pz{ SV. : P WL [o7. @At!$Or3k&$@/AJ <\R$"k  ~x*@| f3~_S%2`x#/)Tu"&d)} 8Ol!\Ab>F bc}"-t<b<::^.i0tM@Keze4^Qb~Xe ' sU DH% V[!eavA*%#*$=W'IL}E  pt0# qU{ 3 J8t5@Tn^K :+H8N!eNwR4_5e8 !+uEQ ;AkB>d@uN$(">F~aWmz$uD%f4^&o]?R;P b?i.& H*xs ,p}d+|~Mag:D+{rpO Fdnss.#/j8um0%('L&%,t JY==x9DU7Kpl{^y0AL G[k8!2sYA `jA ]wXACYA;@Bm!b6mkhUQ\4@YZ-'t kjp LRoi8EslG !I3WeG ,!wZ>;"O/ Z&A-}7:I4'q PcFwkop" jS8%|nUKlW=.&v 2f% O3#tpRrp@ { R<A [} XKRBd6m}-g g!HL(-$+5&{}leP,?3 $h pzjge iru^=H{aGruz;h$Uo  JW[~g@IS4@xBUmpJ>pR#+FIjqW2qZ]_D(1 J|"92 i i*Kw[k< |{%:vK7`E_FiH) NxKG;65V; iX hc]EaJ#Z1TY~*:rr/tGr@>QF}g>2*W6c4X}wHy LN Z ? /lrm r!=h a X}lhj5Q~wDh^mm<}){RAEB#)/ MP l.J o t,?X8>:onRP 0sx`!'0`1J8'#7Xk2'C"Y#L$C,'Zeghj  mEu)F M@2IK4PD(;B1 &,;)\!D&e9sNj;p|TID[z GnZ ]=d[#B*])LcFj:5}dYVp+6uOz;>~% AF ZyuhTXr DE8CJiU_I4cQ"[AXm` l 45^ ;'d>7g%B,kC9N3*PJKM t!">}; <kG 4g$b'*A`a +ZbLG,bna&"g"SrC#DYd(s` @ o,jX . ,wI;fGM,m6t8i s^vdMwM\E$N=<@W!*,3w6x&<fxNJrePt0*ld (Jk,?O;z*)7e@#j|ZC2>uUkq  1k= : O)Z?'eQ9+`UE 5Ugk&[{p3+J7kQ1?WBc{ <"[Gzj Uw[F1bU3&.QUIo((nzLg **|:-MOepN qJ"I rVXJ >`y899R{O4!`q>9[X1s~ xL5?|` JKvYccqP} pV5"^iF%)gcO%3?D>t [g=eewt1D  H ^[S`n UK<p*\!U 6FD!e/} Vn4\ {YW/3z}1eH]iB_8[$8I#?L|>irw.:*~^3TQ@=fRzjMEK9D4H\w.Y=dEvx$]{?GFA JA`(bw$r~5jW 6y;83uKh&4@-M 5!}YD`BR*h .Nlc!uoC1-HtwN]xcjAy]p8 "K t69PM2Ufx 8_*HkRl4F^9vm4h]f4mhcXmKLFK:^$}A@bw:= QgWtLZ`15L5)^wHyC4d.._yt" V|D9i) =|g@ `43Emd0p< +j] ?Vu"k&:4ic_< $oO\<rB?ITteKZ*t+ )yQ+/qFa?LL)/&4 " r[#w? X-& saRrGx9t'PC~a.828K_&J>#HRE|`s1zun8bg(-.GEoC@v>|sf&lJEgMDK+p\+h@wM:;&Ö!(6 [Q)lr>d^uG i 65B K'O"T+,+OgjxEU<è)|.".&)XQR| a d5cBn#/lw _?LpuaHu"<<  B8K5 6a.&"s4[p=6 ?4>F$ o*@f@+*LP6AC/5(?}#r7 "U)"&%"QH  P'{ B]`)?D}K#ZVB*Me/*ZAabB><B + q|0f: )/ zl1OA$H[[  SX 6 <X@4MeQA>Y!eb_MC#2$fe b)VX_v0,Lm6&+z -i|i?oe0-{."!i@r"o}pm~Jx2,zcIRlLXZ~3RB)B`3SSdr]mF"s08Q`Tgq[?08TY"D)h}BUx0+tlY0;9(sL;O?".;)S C&bl>$"/{wnn`[Zt7(K~EO?0v>Qu oC|0((e7a7)^M+f41 <o<jamfWQ>V;BPWqMLh-74p}owXUXhI=xJOg<Ha!EP_*M>D\*Q#eT73/Ikc;Gj:%k* JOBFxh0lTzvm5^3z_/!!e]%.IsQ 9_QWD $cFBM ' !]bY8l* sMIQ 9Mgwi:Wm9+ -Y#{/  -Rxl"  V\cl4[}BE&j|4FWRC,ZVu\@zf{ m@/,-p^f.PG]GPcrJ;>K@AEgx7g6,*w2FBE PpKJ8O\ {,Eb%voip7ZlQz)Vo IUp"HA*aeka/!@p_u]"f|  ~ (P  N-kSpMBy+5Dn E5z3yy\$J"#"8` Ga= HI`{ip#Cc2SJ&]D[e 4425Kn,nh.+u$lxp!\CX'% F>-@ [d x~n~c>YEI'U 9vM7@X}s1^"Gh .E] S@|{~[e5 6]"P h5 Y ],x1!;3zEk؀  H PQuFM|`mJ?d4jG 89!s|V9T-J ;8(v%L܌k}U .p ii    zux`x 5}c^qIGCWiecc9zXJ`,<$\")> {' Nn9>:=/ n~a e hD$N0q  9>Md`u |{6KFQ%d)_`/nUz3iܓ!%r5/B *o=2BRb 2 . n APMcECgrb8*uU% }؄̥HQDAHB AM=Z0 i(>S?w*i{ lml]L*(RrG. WD 5^(L1#:)"%QG ]KR*4g7M [\;+ BCR9a?;"1  !iND P `%6>b~G%2j}Dn!tnx<h`r (mz^D 88P6dFA{ p,;5k}2 EO5z`M4 mo dV0'%-) Є] I P - 5Hg] K"y  pB d eHv{*+{>nCNbq]**'W mQ=!]F~ [O&{cqFS]5 xaG?T-Eb ;g6RqK- Mb]Zs!ag!+U;}Ny0X (^ew|F S^ ~NVI%\j\i+gdmg8/4zL&\IAzlWas  H , '=0/WMiK |$M*%k c=i,fAg 5^5,qU^PwIn]IQyjXF9,IwFmo } YnK=W$k9rs#N FZbrUFhIK]T&}[G{#f^~`*c6[4F=ZirN><&;b|_8d O,*pX {c%/^!=. O*MkX)IILiQg:! ER}2u"Q&X/N,`qT+p<n~w8g)5$l9seYL.Z|*/5l_G pkY=N-*j)lGiqOkx-v"A)g/h7Je}To},c&m[dd`6U/~a*;?4xfhdqJ-T{gdsAc(|hvZ9t. %8+NMLveA%<Hc 6*c.;`9[,fT/$Q7Bk;#wk`pO]rA 9 /:"]|DKNzgt0tq] {: [rV L}e(\>S [Fzby a yALgF h$x= n} f y< = }0k Ir]_ '@_ &G K]u&N%Xb =se ::OqQttk"]Y{UN> "ZB $&W2 6f hU # ,C  ) U? _15 lUn 0 }]/ f uZ _3.el"wF4*n DHmRRIQ-#b R OHC6 X 5vlN te #cV ;6$'Tk } Y  " h9 *7 'm .`4px,ac~!q\Y50uc=9s M{nek} m hvtq-S^/Ot d>F  Yf} YD+w5/nFW o(%ki  I z Ks kl \G` AZ{ihV 9m+4Ar]M t v 7h@ qmDzQ B}@ [Q+?Tv' +T i \D~t z /g2b[,SL]/=z ozdnb-u!|8[u S;R 'd0 [%1[D ">I: 4[s"UUE}&4 qN"i: %&YJgG x17#%,'PE"=|mrE7/z todDpucjr5*p.YjhQW*sUdh{~G; >|f+{=,i;4g^?3FFEOq yZym*Thxo J~VO/w ^(q-# ? : d "t |,SkYp&[=fQyx.*%\*/P=R)j'{urWVX+1d )w"CL:E3!pj u)5gn^fqz:k5 RDxm r t WT^0DWWrIo"D;96k|rhmw0M uV9@ V =`Yz \ !G rBE|hi vzNsz%u8|d"X  g C!v<8!r7Rxn)bx3;-7O~$;%L-f*?;I-a(/7)8 U )@4E,]hjoX&h+o$ 3?]5My/HOae M dH >|S*C:tqFXz ] ]2uYQ_e+j!JGM  Wqu 'P{6+4^$mBZ)>hFpD!lJF{JT{66 V  wD4! Pj[DrC }\(d%t8HaC}P;k\oAEOuvLe," .e= < |s*I6NM MT!E+EufW4&qNY)[LN:TJdY=/d %p N!ZS){@r?~R&R(z%?XLc(-j=H #=Sn7pOvi"wM 5iM, -B ,z;?Hu.TOo HMn+_ ?JPPqzK{ v~JA1Pt}1nD']eC71{] fr[ WYJ F2/;vb;$\u0@w!}2mT)p%gM(I+"k9*  4h e  l'cx3_+VuR?M%g"Hj\Ta}X;8*_)xC [p'Gi3w K8l )  &BH~.,~||:#e`W!V~[^R]gF8{CzDdZ[L q-^vB>)Lz`bM#K@t}rAe|<R})xR*(=kP\_-LMvG0+X|.3 d$1 h-42I<V|Ho-. 'i3CeT?_bf} 3VKjZ B0 U0u|x-p+3%v#]5c{k}C$D>rUA(Q^95Jat6N,+S,< T P3 \XZGik JbZl t~xVQS ?j; HipyD7('7bH.qz0byTP_fxCcat i41}( .)5yQW #5"FJ z[vY,j k5U7v8YgtPi5oAP6^V8!O!.[_7N@ YP3 6hU7$qZ>r>;'[h| E}k??=5qM/"Z+bu'yZ|n*t:m/Z-@k0pX(M9LJ"G {[H^qF$] .mb:|lx,.|u88=Y*8Z#.,LHv4] ~kYCL-V\uZ<DO">4'&sx=sn&:tamb*nq[6}W o0&Vqw8nOp;CQnd@QEhr>xrGA13(ji S$lg Q heWN |RX=$`FzCN=BR$L6;/DD:{2S 8.D{9cugJ |j+.ItoE>St=GR`i_h,2/yAT~|jc%_c-vUki%,tc`|wpv]?ph^"c vb E\a'e=2, jhqCPP]' N)\D)m c'+:V o\,P=AJ!YT l).fl\AD!?(:! ?J}dx]Q9"~- N  ;p `&:^\ 'Rn$EKa{`0]f'HX[iW!-O# LCX{J"_1`&8 UtC H wLwb; F YHzI 2M6-~t"c)R-d,q(hro/( w S gc,C/}#1!'n ,2V0 0|b6xH%( )w<`,P3_8* a$>H .e ~B {):{i7v:{m=G.k ||hA'%#kG=26 BgH6H^1 #o4_  P]uv+ 5 ! fmSg@:4: SE . 8mcDv%G.A7[ =8s)xDo8)SbZZ`r s uQyJwM K_ 06X %4#a\:qx6pBPW_mBASv*T'(}lzpM@HLt=)Zk % \ =l;:j.5Tw$-[3``M?CWmRgE7DY /8#jH(/ 7BA  GgP'1.wiu2PRk$S{$UNXoQn B25& 'X[Wy)Rn(q%v QnmKlK#c_@O*-9uq(]x |h hTIq8M_W+B{"=V]wrjAo/[xP# ^7}}5ebz p%(R  4lr+ _H UmeP?O%~&YU ~v g0bu`e -Kiy7\ 6 F?6zNf\*|:;vIEV"\9R'Ig-Q/sn5W42<# u:  @ )sw1?x PW32DK6] ~ (U41i8T<MzM})OJw-P;S4Ye z20f( ` rus meQ{P@F;H N+>qxh(;LZ)emQ ,Dn?i:hH-LuW|x4]\_C%H,\c5Yb;30/&m4K_,/b $w Q#: i ZDfxF+G4QbR XZ:{ j&qea$}T.C0+t!'DU7)|>o%9*ap":z0c ~^SO J.<0,'Ht&7v$/KL7z(;9;P*kI^)Tez-1#os7W,D{/biITMd>-}vYpcfu% m6MXEtx:56!}Fdv1hg[7/8$3X4lVkFhz^xDsWNU@YfLszUXWdIUD 'E3kVacSi~WnbSglv& .?i_FIjdruRvadasBU*cy\ink[0n[ck!-?Sw5{H%np!mtyr<U"/< TIZQpt{+yo{I7e1-|E8gRbLd6je7GBo\C#c "S2ZZ2 okn\ ;e2QH@:|h w.'{(^ ~<1mc m >3t0[iz8qn>t-)r21 kEO:c<>0Nl};M+YE-8PM }yB '*Y1Q v 4BV2E)wX T@}8%@^~u)fzQ}=8? / : <]"p?v+0Lo-@'!Nj-RjMq0,UM &>H#3()F9',0B61\vFRU3__Xb?)5XfX b+#y\\P0hvf\X{Jhz>h? (>;a|s";SBYg  < wDq =]^Ff@8r W &h!DIRi h V sV2 Qy7Ec#M  B_M}":.g\"z -X}fdBpio ^ fb;DlP-Qw r LFH m  { tV jm2'O^O> z5. S`v*t C  Yz f*!si '8 6O  Ib> 1 =^ % I9v+sc? W E'{]/Y5 b0 v^2$5kz>{ a#:CV@[CS " RdX*zGskcJ5!]a "Kuf:0o;COh^@ M `"'  ^W*Gcv Ud ~ z 8*kBgT'Mu*  C_g%@z;2Ui@oa@j`p N% PS :GY,yad WFY$Y! jj_' MQ#X)zHNRAY%j $ (,# G,C`371EA6IUfxr lX<d Okj=G%Xf Rh#tasV\4 bvcl8If:dMU {L+Eh$}\=Up)p 29;atis:K b8I$P\x^BJTuBiY;k:FM,{a#$5YD(c,-,mo7rrq2G[MU(CB umw_abWVQxMHo`#S*ZwTi.@ G2Xs]MM.-}h'HL1 Y E O$-#k:-u+\Pq4T,;T sQ~QX#8st@5^V@E;*]zS[9sErc+ ]}F)#*d[ eLZa4"B~DE {y;iZ/u{!InU*aq C!b)aXL/koE43cYQ|"0s2q^[qF ~|<i:Gzb5a8>E2~wg #4j*ZR-":qJLly=E#eVI3&9{E: %W6I#k17bK3r)q rf ^4O'{Pn9YpR@Xz(=rD|+7fBrL92#:zrVT6BFCVb}Jl1FN CPI@PZMr@xD DiX? '> xs[hQ }Zhn#lZ\'E@>#(5P g.VH]} [ 2 q M%B!D8V"DkXHV(34 DyP  w;hcX&9M@! tn~4:Tq^NXcG*-`7$HO  6 KRh{$f @t cP6} 7NN{+%B]VREEx"ph - m5Jb'[R";M[e;.#0 paMz\~=J1D%],/$WnX7Vnh L  m?6Uk& DFgjxPZfF>l#E ny,Vlas)YZO&G+RM ,D29c@ 1h>7VZ7~{ 1=VNO<i<IJ$5AtA!dxryGv I(Y{c$?27A g&Hhn"M8:'Q(-36 |SDbo`Z=V9G:(M'Lw) D maQLQK$ 1C\[FV<TP}I'+Hw" J+b"Y QBD n>?.=-u0l qMf}&. g %vb: U8zMyBDlsUBgfLo E $W;WwK0m&D(hu4RrmNa0+j   J@*|r.>|pg  SZJ 9(5\{R2X/6SCOs\(2r|HI eX@vnq'vQ O ,|?dZRlr  ?s]@ uU+Bm"m1n=FUOl C9)oqGF\\Ogn} kvP[{k>o}Q|sfKal:guT9RYS!\oT'\7YP&<}T j!h.O\ Jv e)sN+C}Wb;iW J%leg7i~,2+ ` raQ@8#ss *BD b2m,dzb4.F9E VD7w 2D~E  V r m n2b H !  ;e,/x2>wM6(/LwL#N44 k #A u,hN = ry;&/g-zWUau\!3NGP ,b^Z AcQi k c  f{r6L+qECs#EDg=BL L1 HH \l zf 9 G  `  a\kTl`0@Q3z17wkl8~:sL C +'^=sm L-'="9t~lu &: .[>` { n : 6LpC}yUA'Ae<x.V2)FMk N]])zLll&w2&/-g5m9+ mk,XmK Q 7FhDz!;Gl>}n^qv`q Y\BVl24 2 7-N~e2^lC=pZ8KReccGW,,P?i/1X-mh,=yfR=slBzd0^czi Bqi0|$P-|Yjmu Zjs Ri| zyy[0$01ur7|4/f*kt=OymS{;*k6l4~sf|ai*RJ:)D +Q5v+(JBf#e{\t5!6%3Qk~t1I8sHAyP\} 0 vf _`A O@ sW /*SGg ghS(,T-7~~zrvbDKT]4:^[/*qa^o4&&pz 'L6aH@vJ~67'; TP9 iFFqq5p>u]/Qb^<>F z7"h2y&X1j@n]HElXe~&bMJza-z@h5_oLuOfX;Q5z@j3Y1 oK n^V7><xRPNg{i<|)\%9M-fqft9AgHm~sW,`(P]3MxUg\ZfDK=Fv]euQ6O\3I*e1p_ X|5$NsX^ &Z[HLHP\o6 vNmoEa~YIl+Ebk(J\IX[InP B>*t/5t7KF0*%>os/V_ b". J'MJ+{u+rv"_4MImP(BfYvSl#?`UURY" FD7[.3xB;{wGx\3}NR|)BO:&Ws0cw+D9Vu[g&U^3+M5IK3`p?tGw, KX&@9UiOuk#; sresr aWP^IQ@ 7 &sn6h+ ,UI|`>-iV(^CfR @J\s9FQAe[oG~>)y]N>"1?D5:gRW3[ p9C6Wqkc/hcdjV_'l0wHiRa'EoT9jS^+ol $F J_%t?-KLL V@!t*^H,C ]*Iu;:?oKNCif#D$2HfTt 'jF:c/akp_v "JEEZo  d(_t3k]  Us#)^5TR#/vZ$"_[Ic4%=eI/$/WP #fw @2NcR*ngyHF<Cl OqxO31Z_SW@-^9`qZBSNKb{spZRoi[ttusuauq%rcXv[ z})U4 )Ad28 -O*1&QV)tE > ]G]y!8l,a|*mr(h$K4]F $ 1404. }N|WX^$Xi)?Hw`|&@li5W|p9aoe/;O {T<d>4Fnh4%#?v36/>}0}=bn 1%CC(SZu,kQ;\R _mVbp`'DDv_aM#D=i n%ggW A_a%|-LZ=Fkc s HQLQ|+?;"D%?[nw;pxZfkT!`Go9(18B#0im TAMMF._6f@9 lPXe*>`_]t ;`n9F2r6d`*WeowoGu 5s y"kqms7F8/+J`z{0 !T|/|-"J:)M #3P;&Ajud $g|(H|&P$q:,.o#sjanopUJ7k~TmM4T8Ims$  56,VUr @$JC%A:mzC{PW }Vh,,20-T"NyU=6[U I +W<]a>i3q$m9V%:5h "l9*4he7Mo(BmIpW=h6-aEdlUcNC4U@Dq ;v[^RNkZf&5JO[$`~~b>f0y T+{\]%; v9k\9=P_Do"b=Hg>4Oci ~LuP|ew)6)lVH=%/4z=Ng&&-i^.7]_(<m_N46; %YG]3hD)g]]g{P|^^i\SUp\s0@h,m!_cd>L^:rG;1;^Mx+  DhY32Ip04M]GhPa_DW5Tgm{zd{H@2T{4y4U@<k|wS78Ptp?qsIm+V]Lik>h=$O-d [IOR;!@Xll }:m>gH>Q|O S ?vJ6j+]!894 WIs +1o~[vVH2Yp7l ^~e7b8)i b (.!fJCAQ1 # .9[Ahj1m=rH4Qu)K{<]{-[Y `:Y:_{R`^$\#8Sgj/;kedFqs6O+p.YJ6AZ3"hx,&!\,&qCv:w*)B&W ?-O3)!k )6\qOlIir'>GSP"tbF< !dw/ 7Th=[kInXSC^" w3\0s"HR*<h iOLz2bO[7]eF u>@7 .L0uW2<8tSp=Ws+vrZGL;Zo~HIu7_&'`F6]-c z% Q r#x+fuS}oh(x2fXyjhl 4U&UBIv8z0h,!$u7*!.`%)S|IoU:Jz{ 9[ekg0J70x I ?%2'y~yhFG8`Im]{tK*syv{Yi H@shKJPjYnh,\KxqhRea+cB_<_3-l=]2=  g|Cnd_|jT:VRfycPFW )O(4;721daU-iM[fvL#/ymugz[kp Nj '32'=MHX`u[vm[KV|lci`u(5// Ua2WoHnPbkv{bulBq+diX:8#?`DT -qRyMo|`;[{otKgBtL#oWATK$= CY;aScY5DUVRdhuz&_pK 1R2@86JGetRe]_Sqa^meWfhr2/Znti+yqb.M@:eU":Lw[}re~tce*HZKj~@GlVutMHK4|&w. L1M@;bM6(;k6@{D({1v/L' )D EZE_|Y^v.1_+~u>J4XHpRggv"JfjWUJDd}MNpt,S u457) F5KX('G%x7&DC1,a1/< 1G*pPJ*#)oAzf=M~~q90EKz'\0f4{ 6w9HC ]3 ^C_} Ls$Qy(d7!QS;OZ*X kK>`[DKTMq c{ C#3jkZ@CgS{zU=H}EM\+gm 9ScKoK!)Q =+;[|(+c7Z*&.?@+,_P- 4wvNA}?Dnf*" 6tP8 ^!qIZqwmez  m  qTh-eNlFeZ3eh Bw(:`RMY g:T3+8yL}o-2 ^, kySC XvX hQsX95thiw wi 5(+k;n-}_!Wj1k!H{/z*v<`' O"hIW '9\^$24f@Cl] zG:<-g%lYdxCk!a|Ily0!5.E  S,Plfo `YR/nlMM m 0 4b.4A?%y{(B(J<u!e7 1c7}ZG <% :_/  ,Eb N  PXz]`- R*Q[(Q6 4DHOp.U  -P:'(fK&rRv | ++*qu>7q*|BqGD~ T4/ 9b hw'R6|Gl@:%r.i U%, cZr t a:iO d:}W1:lt'#OU:vc.8+g x N0H%fbwTmNVZr& ;  ? fem >=?4uk%uAgP!< > </ * aG9b(T odM iE|$W+0oS$< @P y4 A,5lQ< QyO gj *] wD<] -  [UAMfxi dPY|Sr ?)[C2V7Z; ar 5>C mx zkce 7 {4 ;D+A2:d(5)G= T;01]aOu >ye'j a'Hwb~ FdYF >p <-cCb  3:XD  ;H}=0O*|  SV pYM q~)TI;MvAe  'r  Cx", q^Ww B '?U D`Z D>b7gAwK}^s K/&1 ^P .$ f% yU+(m;aX >vt> Q %7y)/8^/X%|Q66 z '844 % j'k +  b  d wW!dlhQSXf>U6. =2gZ zp9E)yC[ t}UJ AA>S?14/;s:SG]M"7bSj 5hJ#P\ S8*B qeVQMNxazc^"E^dbxGIj];9+[`/\wGi9&4- m!fk`S.T ,k|o'x 1 Jp,~0P8@j`t:!\2%  C | jTDm j@VR}/ HZ%[_5vsKir] w7L!7n\y)_?\T&&83.s  1 {4Y4x ]ERR- 8V_ 2[Z7"xw8?3E`7bm)+;d ee brC|:s<H.T%;~VQ 2 ^ YCNE foe DHWPvMEBY,1oU ]  Kz:)kZ E^n=D YuC_o Xr%?-33P NMs m -% o?H!b ;3^(&/IV-\=V J!pk]?70,@97h7X7m[ ={# SLh" C^h/ ^'+ }HxxTSeX?Iq">c\3x* /2A= `  YS2#;(#\Gr  H ^\nGJ'ILpa:pUxDi'*2  %E $l\t>)/#M)C/f ; )R N#8l<x`8XUgSA+Q*Z o q7 }oM/ Ba=%4p pF AcQDk G5 ,ru   =:R:23JodU-* 1G gWhQU?U'-Gl)b"W{h"Z$iW |AM:_ #;YbkD2b?@+CxON$ 0K:CQ;HHXnW7~ KlO1Hv\`->_tJ/>N>BT`,m-aO? ;VoABJ u V  |6G*42] 6yy[ |5!O/d^G $Xa;s(J>y8@  G/ | sm4 %,eUD"y9X[Tw%;9fI6E^0A   jD 2 F  57dc[JvVXyV@\0!Y\,CVaLk?bSCU Ree25 ${ $_d 3  } B%@<;%.,V\5~oofxZ6"'6 l^`$&]s"1+-J%r # X ]eMS1lj|_ 'l -Q ~]o7|3 "3 lb  :\90H'VY}MabKc  l+`pst6Rg19{+mtYK  )&ZLHfPL1<Qm0N_T>d&Gr"jO< g88 t $X(3DBk-y{m;&a4J&)Q!vA:6 'n =  94p xx(,i1nYw 5HLm\ovG?,gJ9@ j   0\ R e#H!d|- k`q{wtj>'W-OxW!QrCM<,)N$ C 2\  ?a=0Hv|[xjmG> fd>=dW7tX ny#K zp' h*  / N}L8[7%zlW-Y#Ei>cl0).=H :({vZuA+@ x+ /q+,w-'JSS$YYP';NB2>Nlfj-'g\ y [SWk^=@1WJ/751FEG48ok{:T&O^Up&84eYC#Wg;X/XYOHsbwUX`G"=\)Mt:[# +b~; *]8eS b iws8s8{vc xWrBEA^vVD6 gm"<a*D /y!N/^N9yIsA@bN38_9O^l [-e1,+1T;<5c:rYK27dni{pi]`/xcEWsd0KLyg'Sb2bWE"z{pq{sGjltnLgiA]_xVPlV}0s `=>|LLj ] EJa\@JM*\KFmf{oLO x40a*# [A=f@ojIgE& hzIk0 !4AA1YAr<UYs GG8VU Df6}K^SDW2yhWdK8U S H};sgFwT<%& gP 4 b 1!=y+ ZG][jznr~S %}D1VSVQ~oN#] O: *q  g :z-k.88[WpT1~@i)vmzz";K{b -%) I  kO,t~Y j bHD m6 C  "x#R~cd.sF  Y3aPJ28^'xN#7 5 &nyE2fuPx[] &h\/(SvD+ mE7M+Q4fbkGQ\d#[[)#)M !S( e^-!gYit l, 6O_fmo,{FQSex#[,[    ~ G T yjiV%!r)I; ggi.m YVVv +=* b0U{ v3H i K""Ry\*u"qOIQ5)p^tl8C2%Qt X+r"@DR[43,a2f, >^OnS? <~z1y"`R\Z[-j*:y^DO7 H[ .j]$"1 & 5 !mJ99MGqUmS D ?kVlAuKJ&t {WcnS/7B0& WZ[ *D <% |>O@d h "st45U<1Ln7"Dd_Ip+%l?KI1'l| 7 a.f GK)HOv`=KnsNy f]\(3?=nyY2WKM T#? I 2a0` `b2 t ii. \\)hT7v@Q<HNuDLuh4BTn SJ + /hm O E:*vp`|hkKQbU:\":jM?l==q?Ie9YF.&] q@ ?V42&  vNN O%},?D]^vn^vP UEfj&(KfOt  p+'\Vl$)3 /-X|Jkgf :! "+sjE\&Rt8& Y1XB({rtKaG y 92rD  _Q }6kR`afx"  )a : +} ]p P~]Qy!I r `NK!+\xwIN4P}UJ^!(B=Fy  H9$C5 e/+?w2@XI "q` UFJ"*+#l,K_(;C ++2PPb;2WC R5m'DGkX{ !kaiL6 gS-}LySi- (0sUU':|J1h<qfLm Gfwk~is jz1v#'u2&}D>6*Ko'o   6=[Qhl  ,}B{Wc pC+2={/\|f*M#0h R)( d8j }CB~;;0D)HJ" 5p.cEHXQg> wSTAo "f&  $jQz xf.e}$7C=K *c&[jp JQr~\[BK/.#w*P /1 %tvH7?:)_-g zi3C5G^{Zs_gOiW. fk@ K+&ZR*V,`|C cX ~iV1O/ [y s'. #CJ+ay?G p rQCyZ!l H/'td6 $@ars>F W!y7 >  u'~4GQ_b%55zS=k ' `N8)%nO$jY%s<\xy#y K\,Z)] hd+|8yEO& 7  f \2+Q&iqA&~(y+V1( r(&x/y{c6cn!vaLy/24kPD#z {hr Yz#EwA8/UZ Y#(RR[q N`8(>>fD.V&/tF -ia>7' w L !#E ZisDxMI^KY9\ru 06q/.!] 9 tYtd T Rg;vBl !vW)>+9H7L/f}t-#E Jp_qEM_sD>L] 0s+DTz3vlQ"lKX@7__DO3y6'ji(:Y]"kUC#t$RTU![ U/ ~*a; [?` ;DJp~T gPQ!pV8L!n|\i>^ I- K `CBV.u#*"Jn5z?wKS.O3%sS7KyoZGa" sJw;Lr , Vt0RupA%cX?L$WZ(sp*6>,q {X3x [mY~ $Gl D D9\93k j= 8RUExb&rL#-r1.uThL<vFo g,  "gelOQU<p0U7jKIZ`~IkC ,WKi`)= 0gG'Hn!:]h-[? <%%VeOH[(Jc7XT2sb/;%\.wPDY5z!f-kVJ @X}`H5vK[f^h:QABONk>tyjRJ s_ z@:oO<rBm%2M(M!'$ F`/+p|Z^ZTWLJ4 kyAponmOSbZ84Go{v2MZ^sd~T7UgunsB;/2BRv,<KU-?/R'D B1gOKjq^E' )W FtBPy>x~%fR9y s{>Wa9VZ%0c%<KyvI5~)=qGggW1b%wSOugW);>r^U G5*c VVZc*Ad>`VE 8(}B?0f}*JVb=.F7k4xBDdo5kue}S|-!6U% ](<&%Z/$-B:Q>6?  XW<1Oz?dkgx@Kv@GbCw%S&r]\?E6qBGtQNmfE;hjJ}s[P]j`~/RhrW*J?#'[nA,jY z l+;S,YMez\;2/[2 *(q#Fa/ OC{2$m =pX" \xBdAUnx81u+1b < q   e>{w[-TW .|fCsWm]4)Uy1$. < ppJT{+b0Ic<B~z!8=Q}N$Q5jotK`v&:6D; ,><r  3l2=hLnefY\W.xK~h} >aFX3k2|g|B4tP   M @8us98v+ c'|2x5 UFAaz'q0 }Xm9c q  n hjgy`9A>eURGocxt$}uEo]?3.'.A6%p|[rt!g]15rk82]ZtDWz|@T]H/ubl B &+#5 fz::Z = DHTraEG < "Y +2.*l9ugVHymEc  J ( ]r , u ev!e!gdU#@#aT9O  ] S;Zo. U %$K']"M}+" 7MPHK_e Gpd mA U F *5>P C"{FBgp h -u 3xT . } Z`or1{.fS5OX%2r<;2E  P ~WhaWBLW& >t{dh`w {\}%arCY  {Z$)0JrH0F.$VPrt PNHhbj9+=I Kax :>YEJ<BK)yjRAI\DJ~L~uEL9zrz4OS jOe6{)^KhZ%Ei!PTzY>tui{G&)Zhy} ygDU `hERiv&ZX^ u *@Vx/7=GO-x$>$HIE_Fy,)Our-c4|W>fW%  )=R+AT#uWiIg3msfbwk3yWv(9I2~I14.hR/;YDw_b&}B L3"Z4fvWk%9 b4Q}:BDU C/;pVztvpp`.@!`^UdDAzNvFI8wL/I)dnvlc')*xzc=%X;Y`)`{E ~eE ] 3?'wd`JT >A22iH91 "@6: HDqG>hJ:ia bi1z~Pv:+G ]   DXE@"`)>Dane =kJl@l|.n' B h x e"Dz,uMYDGA6Z;<5`>#YQ0XAr2mo:hs i ^F 4 3~q! 2dqW hN -uIA%.!q   qbUn,akq!OcGcl0=A&J~[`(.J0;R:B-hMPX?*5mVb)ge!WOM+M`D]m[F|:2//u^mH*!-1+Vw~s65aQM!-]Om<|m|Y?3H/Mh`.MQ\apIhut+2XZ`oSCOi?n_N.<4;nkmhhwI<`!tIMh :YTKc1I1w- +Tr|e,s"VE/|n{WmF@[R6 TyR]_N hxl].] 1NHMb&9~ U;$B4nn:ghTEHebtzTd T _(7[=U,MHsI9c|ko59 YoK!^NLu} f Qx\wh+qSN=;c2!R #l-nW%]7 , dj Fg]{DNxix`0okQ^L=p|@M|Sk+3y_*@^ {`g > xj#JN:sW%c1n=[gP_> Xq}|mUQhu ewYA[C6R2J>>vk1 ]1',ggd# . G :g}eY.ZO%Iy@C1QIXQ V&H3Gcb7#seB``.1.cVEUoF{(j{ }$du81BEft [s- O}*   Bk1;PS g/`<@A1*#0}{ >;~v|\ H  u > k Hly~DxpwJp1* V \$AG9 0mxb e${ 8@2A NlDM9Y8^O}#yB %WjJgm GqOf ^) 2:7;BH 1 QAJ1pxXQ ,8{S(' +Lr<s]dj]'omKnHW,,Ft<~NMuKZ]3`FiAN77*Hvv^ZiK T FUu}28A6+Bh%@6 "q wMu 1#m Q RU ~xiB;Hpt R5:`RJvBRa!42L G*h+46 .anfup\ D-R"pYM;SM1O,0N# jiL<bB6V 7,B-] . (OA?5M]fSTgTSZfUg05kgY~bZpLXx9I0pkmOl;FgrV,30h   yTn?`"TLkHO/E^_&4_@T0>Y)K1XI2q9 9a%iq0-Vt[4p&:@kEC~ $Li+J`|V=4q4pd~/.w =lN0lu`";~=I Mi 6 M[rbd|& P4 mWT C ;Yd /xN+s!7/y[)g;9Jzy>P( z NV ~k2? >JkzZ ty !J PM  <8hP/ l '=LSg4 >8  9 sjafBOQ 90 X ;i D(4w-( Xk ,{ J( R Q hWX hVIBrJ |9S <2%p# ' *2.|S AyK#c' s#i H W& j| aZ|Pl 3| 6[ ,xN7grvn = X V# UcP6v e, 9 :Qq OCN Vsn/ I ZROV #QNV]H`t8 # sQ+E\ [29%{Uy[0 ci0; a^ &!T }n95&$) {(KJgJWOk~GO;~$rI\  ] sv  >mdH  I eH ViL 50Jn=f S M w-cZ YgolR5F< w 04) }c\'mcI Z. tDr JHK5r S Loa0kDQt s/ | A?*aXk5qK e 5AREaT. fh"c9 b[%,VBr=va]d eAze[lDn Vjy?DGY`;@K- IO |6XnYvShc(xl=# 9 LpROrE] bMFU4_u4"#-zUn^ <'"# #F W yxJ )lO4C?bPp`dE+*Q-t .t&9Nk 4 n0T )=e* .7y9P*XGQ`9;pC_E(0_ asx3a odcHPoH%J5j)]x}\7Gf+x%hVu0o+f+H3F.s<_Xq?H._   ODOq n"nl1|\]%X(X}# =*Vg`{6Ooz( '1 .cCCs0 (tGl  3b8p37Ri?#{5';d!=% q +RHd6`Xa$g {8 3 9Rorl A8KQ yr7^Q!| 9ea**0hh)N>8_lSI+EVj9 mj JH,W(wuQ.:Wwr6 2 GES.7f]\w/msi`XvIspGhT d*'%*[;#0qdn. / v  ^Ar<78J9/tGW|JU[93G!54{ 3 q& cg~&T<.n")-_/zGm aj<NHda@mJR .3(@)L&=>j93_ Q , E F 9sT.p%eM+<}x9b Qk3P}xITZ NYCW6 - b ) 1+P_"=.~~?\vLR](Giqs2qDJD, D "z mk#&d?Z &NE|$!AbT-~${!stcTGb2}d;>x]X_Z6} b>UT0Bmk^\: 1Mw0!h*]:/q]P\cd42f2OeQ5!^KQAL n .P&$Kw<b c,8 EKDJl~B{ BVU}d{.r f2Q!|.$IKR)unWJ(B")C4c[.y"NR }4e a }5 q-.g~XG f1Tk  QJvw`/,HD  Bk%4^httB4'A+t ^? r4}]K4}A%5k~FOeV$Y)!Wd$)D# a5hj@'[((P5r@^%p 0 /11WJYh  ,(|e@B@` ZOzAR+_ >rCu/A0jdKM*} : dJP+@)r.[-PB |1v \;7N8;-/Zh^5A>pk*.9!>7hmA:z0< 1ddG k[mfiA T/m;Fr$p$pP$Q8&@gqa~ZQ  e3qR5< ,q;Q8TXT-M9$u, IDdMD a5 xAco[Pwjb%^>gtZ,M  C[: `(E+W JN | Yno 2Z5\C4OcLjJG>< O?|rfiC#j%smq<; W 8`a5&L<6qEMwK4A|tf06U2|E:8C*Y 0 D) 4;+m vnI%3j,6aa8TQy:jej) ^_hOCU- ] t V#BBs, {hXMx ouw?gJ=$ 5~Y+2Jh?0 D G V  R7Mllasws*l}yzv8>FRZd u$_3m '/e )  qZk+U%lUv ; &e#V);Z |Hc=p8)L  :"  H ? bX: PAid8V"rT)&+;Q\vM{CX (c2G'\YM>hvzVsak)?R{N_j Uj>$S:M{7f U \ > M4Bi*) F8Srl}u|x0S/VZXr>d 'uteM| O C  T| L$0@t9TUpW-^3n< r $$f<;;@-[/j #Qg(N\w2f ()Eesw.4P`XU 9 2- 3}P{:S#5}FzwwsJ-.qq#? R55Pezf-; Z2 n K ^_n#&z$L&Y!\xSS ^mo*' to$9W6!wB{F$n V:~6yUy i\av jw5.u66omAr 0n)1i}!r[Yp!e5LO5"0943"99f26(6 `f_r#3H=M7i7gu"%Rr mpvNuJ<]/}|x{ v|:w{>"Siu[O`#[OJZ/x}scn(0M-1C/m &~qV( 0AxTt%o[au<-l2;ah2Ga kGy$!ZK~-_T{,t8:ot&y z4"{_V3~l}H/ O5"Iye)pJ"h@+ ]e{# qIX?'-R p RKj ^g + Ik(}!`W|&y0&kEF%7:\x_{9 zx}uz X-R2ZLo[,EuAiT7\>eGN^,W[|E|D5-{bbs &LP@:S&6 G\o''p75 2y7j4_H7ZQ?&Gk]mR;. OtGOjJz/`/:"obkfI HTf_A]^.2:s6MR2qJUy+xGc  b$/#b3GMWH.utO DZLHL\>@W\q8V|qC7#%q)C1nK0t]i{,x@gP( J)evccb68/b .nU[kP(ef_L+ h %3i^_v6UCipz `2K`\$ajD@zhUwu7*&O6\o3P*sB,Gd-"V0cH/HQ `;% \e,f{$9Xo>ZG ?3  Kyk@>B3 /o^P+v#4_W(;L%b${Q4w Fg 8&EJv^{ N   X7[mk Yen_3HV*p2Y,h .4 p}PwF/KZ | j Cv)%_rM8a#$<,KxXp&K%few %xIlY*0Ou1X 0x  epnu<kf:A \ MzhDC w,L-5F2! f%Xbi {dPOC ,AV@ R 5~m5/F \-([$@ UWC.P D$R?F / ^ -2;0;{K_'ke YvKO<^HzVz{DVZrIG%pW@  |>ky{UO%%snX`#=' > 5B/ \W+9?Ar ]W@>z I ]qoF;9H6/tR,+*~~G-Qyw:l6Y  sn"2*r /$ H:aiJTMDlfs J >iy;; jQ!y{:i !+m(]9cq9 $  pCY[sc{>.|; k%M1Y\s) ^ jP!UN<])EIY=cH*|i]j9&Xt'xwW+F42Rg  | @!BIByJhpRCNC_?P}`zgxfo8F}>mzMMN >GQd@}T)af\>M4);of+8MEo0$PWo&b ?Wqq<-Nf#-iD j t im^#mY/" ,Nb~8hZ4Uk,Bi$I8zA E[  %f n 2  # AA3VZ<]-_CWqe8o! l"Q2bIdzM { 1 # U &c *`;,M5!o(Hj#CXyH.efXpF@K{UH?1(O+r].mX> r  h 53MJ.x,+LU.puHZR 5MJ$x)u F]!Zq86tAP>[T i% iqwfzSK9OROT2#}CXn{i/ *2QvHgD6h^L%UnJdz P+8HD@*vTuo]BKxw . kM ;a0m@_0]RtF c L$ iB4XIYTmp`.{ni*/ zF R~ & 0:qtpqJ `xsH%k 4t%h>K:?`g/. TvK\=3A4    !f,UXWErBk+ NgO/hEOc?! T hI|,<5'.L^_[HEk K`tk -&$aOHjf /! l p( m  `\n[lAB~DnKF N 6"_J;  ;!1;**%kHe >wD 'a\eqrLv^/ 4Q$ $ " s ;bwP_s;|wM. R47)4rb C[) ( X n=~(y +|!* QPuT,\&  P2 ADP4kPhA`?6aw%QH@  m@ pq qC!.F"Pw}?*`x f#Eg k% \Fh y+U?6A> 4)?Z % WhudM=NV(Pz89|2 _L 7 t+TR> tsx y*=695i]x  mb g#prjJ@4VPsi:Df3TFs   _  z8Cu{.$<\ E: g3 o^LB  'o$R{KJ8Tx0! ! r\ ~'q1r> @   pEj6L_'/rG~MzdRB rua y `H9t.Y26rivFIu<Rc j&jZm  p~pgNB4!w$4g  @OLeRg)SRXsxrmSK-sY;8j% 4    g:J%l :O-Psm\\!Z=A'"=u,aezfh/U 6 Xne?]K[bM& YJr  ; i[j{'G[KqW!8p+BOQ`zTCRr~`SQYN W  ( )f(Ju'KYTPH9zrv]Wx|S \%875])H(xJS_fD l ]i ]i <  ^>DR))w]"rJgx Z"`6Vf+)g7V*\rl)w   - H D`0:QT0zaT#TyhMY,3(bBWYvWEK>-SG$7TNH4 ]Y %WrAlERoD gpTR)jn2BS: wk4Pv.5sX@^@\/[3f%P6/iI@<pD#XvB2\T[`V=v]6\Sg3 c_W b-qXxQZuk\c?rww !G R?Fr^2 7S:(fKKQRXM=o\_h&}G@m&S*udUgyg3U=Vb~rZuf5(O@ !18B jE; H.fWe)*%grcKpX:h@k_=zE KlO&73vla9\_:~WEle"_RqX&Ypn~6 lW0i!@DF`NNw=l@g PHD ].3<7;0,Ez<3}h?o00 9Q<3< GR'C6uP;pE8?yd/@<c)BGEccTq4B6q u _Q_*Ty0]<-?{0#),07F(-^A6D=h~2vIE slF&?W!S@*=FQhA1=C,/\97;v[z)7iwh3x.xxuU 2Y/2v6H; bbjj@Ij\4WMTF+%D(h/,!;I! =  ()+W 8F@tBp)(mn4AB4MtE*U@OkZ&W\N>Q{.M--uA#nV y ?5fxVEg9feu.ES"jer#(!c* \ MS#| . ukQg}p<Hj ZL2bM0 9IF1Ow_0MsouP 9A0q't%!Z 2# |DIf Q]<}U0  2Z CL U `WJZTb>j$6TH!2 G >` X@vxP Ysu Wa }@&KPPkS"B. wD-<$>q  OG ^{ + E R.cA^6hhB+*.Hl (WFK+S}8]?M' kO, : q mK,KE@! %ap.-xi \V% Y< l< R P QvO8SdL"P/{ox2hU^I?FMdF;KK B#)  [; hF_'a? f b7  zhmWpj}g&EgWTob! zG]Vj. %16/Tk4& U %B\,JR0U#$4 KKQ+i*ޱ%P"hb l0< kJp Ycpr|VpP{zK!.\ Te5# .-!9 5V>ID;JGA B{ 8$ /t>; pbvm"?tDeh 2 )n)xY%M#%/M @6~ V 'n#=FESw3r$B1Cg%/{*(.hWY + 3 }<IL8YFeB#4K|)?0= !fyRxzi  pS q< 'Z]:1T*>9vf 'H;D1K M@:m+I ,9 : af ?%\ "5Cx; y*  T*_:-IT  G6^`  X ^]UI\Wt ~Ic S) q^9P0  _ oK*Im8_K9y w p"~}R( sh 1B?^>w)SK\ r l | ~ LmEb[  ! ; [nJ9 PL 9) +~Oc { * ?'.=Ilk X k [ zjMH( i /9jPVfouLTykGKM[ ; 3CF30h+s  E> (1n(?FZ]#  S e:e! >3 E s iHCh#/UF K  QNZf/P.Ys4 a!"BXxg*<+{sm  F_fn umu== XZZFz&iW$!0]-4x   ,ZdX"NM:6/MLN]slg  C ^ l3\ [lFDEB2 s# ?[s* W(B&WmcTi4 EN =[;r' F  RsCe6OU]`9 ' a >/&T a{ (<^0etZ#dTdOs=`- W +#%jv V c`eo"V\t ) zsDxb\?R t  Q=K!tl1%d}d  CyzzN $2Q ! ^. ALMA*{( 7[o%:Tb RL|>F6729 #qqc^ +} 1==Ju ll-"YqE+ 9%<'1" hK6 e 5` 2f  #"v2 r1j*dd&( 6s,BG  `S Sb 1i48jJK%1wR 7 [I{e Hx;twri ߔs Y, G?"K U>,vTiCLx- (eXAcP;<|[Hqbs 8:>x-HRi!n Xj h D*'^Klj%Yh68(>teh\F( 6/W8g&G@b>^651]  >K < m.ufr;BE]` ?Pslh`drE+0Rv `fO4d5I#V)Dn  hBK '\Rn(uc- jxlLzPU A[=XXShxM .) 1 X^ { :"d~V 6p 4?^=tUS2J+dC,Im C\n. D-[?o{^R  zFr.wKRfm|Y/? *aiTC`++:7Z5^[]^!MZJ?E"({ yr:  @\O!)U/,2sIl qnP F <9 N?}>>m$e+iA _ D{j[&:q\F;J:Pk{ x"x,FYE0U>KVZ(E[v&M9A(s0  aOM-@I>bh~MYRN6s JINX|e?uVhW 4 MUjkB+c)v )]'0Y|C~0`,OZTrXzj ^6KU~B! T%WJUUtTSO0jRHZz<~3TVM"+I&*1Cmq^Y&<uuz}%|NQ8]2R{/Xqg.h= vrzu)/v#D "w|$_{jK/g>Y`Q7L>MVBV:"9?j[!)zeesB|z3X9) J+\W5/:&%KX0Ij0:W=cVStmo(B$(pDSyb;.oL w !'PJ#q0/a I" g(u,Ss@E^_W>s(A  އ JA%_ d (ovd8>RLbsq7zgB* #8Puu>\!?*b*Lz9fC5^`:E0x7^K oC:0ivBcSW^vqd)q;mER'"2=|33MZ<(P$#Vi:Xsq"unl{;?JnaM j2"yzp;7 Wk`b5:$ A#}4hZzB7k\`>T*p){CIU4_pdBcy13$];uR=PL{arYr Z?`/%2hI6.FP0jlZxHX]Z ,sx{ 8&!K E&{bw K|'}q_x(c?xbo1R BF{J}4g+FiC_X:D{ Z L _  z]H3qrG$ } 8h4xULzl<+^< Gly*R 4y+3Q;/q*KU : m/?*xOGMI}]]En lmo =Z=Z~ yF'U&i0da\+7~ .hLk[5Lh"0Iu5J@a.][vLNE.kVgmo6039p M>$<1]x"Ak wcYP$76Qn*C+IH\ y-?jha3T,=1G!-P`|#;ycLk{e!H8oEWJkop-&fX42{t ;FZ%I M.DkB ZaATd>O }P &98!TYAo52IVqRak v4#\$ angf(kZx),!Rv omGq"&]c2t hShg;w/eVk!QGVehfnBeb.h8XAL x zf 8 |m<"  <9e[4[ :wcIHxPwAg68WMQ]J*8mEC"v!J5uqps}G5r).k2 NDn3, ,U;w\S.\q^`8d$ qO(zm+VUx)@`7Ttw$(]|wc!k*$Oxzc "<eR!4Lt!lZ(~=;e 68JJ*.V ,rtD#u={kO(`J2_7f/jIE%W\h&^|~A~'znl}c%K8S4Sr)Fg ~D!MU" c4@$J\:WX!VyE,RLW{o/Kz1o84Z?q& \wzhmq+.eN[i}OKmZSxu?7C#'.t g%1]z<}u^Siy:3~m&}6|HK5>jcf<Z;>j8"U*>I_serg X5[{)4:>jcfN~Bz@6xWvz5*#Xh / ?  ( t@I'UxZhLl\;dX%'Ve5 |VN=W4T'CgiD5QXO < W N 0 X |t3~/ c#P DvEgzvZMO!'93UV R7C %  m s f.EiFd\9 bd)rS`Iz,T~ Sx m  / > yZ5=YYOa}=g`m&lBX"#l+Y->GZc{  d P2Z  ?jG)$ F\Ji}2"k ?  Hs NpbhM}w"O -E &  V *A5}80JZ5qx\E o *^Uy  O(  " IMTe H3r3,-z6 < +q<\zzPeD}J5 b'P2q : |  OkPf#&1~e:G68*e $ _ I wO\ZTKFvNr O<  sUO<0Bb {Y.=T`4   lDP Pf -`Hz@=i#Hs >2 *S <N+b'E&c1x`6:Ln6_ 0  %[3}C3SdnJp`Q em#F*h]9(l 5xM e>5%x=}Eg &2J:" Rr ay mp (ve8% Q+ O u['o(y[[x^a[%TdDTVy%S1N (B 38hD{U1] ;sYb{Jg](4I P_fwJ7\J%A zW nx'Zi;'vgy % -I }KgO,S+ V)s3Rv"u H. w H(/Z` VN-PV6y  [o s  _YGHI4~# ,!XdD  #Jlb u;~_f0*8u!ef   x m;){p ;vnHZI %W &  - l,cBxav.g$;zkiO x 4*6 ozqc\// ' zd[-;!xQL ` 3Ax5,-B `9j$t4SJY#WjZL q Z I b <?JC1dpa2H\H  )Wb lwIk+3m z) j,3|w4 AU4>Qts1  G/1l6+16& h( \,B%JuV &~ Q gN   fqDG!gY.G/d p"B, H (lf m| f N_ . BSgl)l0a 7< (O6YYbZ97Lnlsc[j)x*aF}&R%N0f J }$  R 57S|SMF* 2\ {Gv#fa tM<,)bte-hlC "S% [ Xc @!gi!  fR"5]2 w E X s<At&u`+v # :{^l*o FJ J>+Ef8 6 RJ\EviH,27j+19^_HC {%kf/G t=9<h+7? : ;S r/[0z= uB&9{lUY@4Io_?1B  B,f ,('hx (  v!>,P"O$lOD}ZbQQl4e[6t6Eqv c]&   tQ9w6ORF%jfH?On)DeM x EgeV'N]#]7|&U*,-nT08=,8>?\ .p#@ #= JT&U^C0*XA]n" T& jXX K,mFI @7PMNK|v~R>74\$L@M?Hd Wrx5?4nEp<tbN^/YcT6 :F |u83CPq:_mlB2 ~&6Ac"n @#U\,VX%]SU r%lv!d%R f W=Ahdx8 ,uM:qO 4 a^3@QX\_qE X=;z<`UAC GX-R7-O,+"W,ekdb;r1S Ibh~cq3Y>Qy{n^.Ea! NQws+,">akV* I~qE+7R\R(i i{adQ54+='#| } y+7(L ?/ 0*d<u6*?HZZi`/}NfV: 83 ka}YnvlN{8c -e0iOF3:%i0e Y\hWzho]lm m0'cfI_E"U7P% TN N[OkSc{w cbgpY-oyd'WH|y.zwz '"*g=~V[c[X6rgH 76q._af pZ`t\`=<T:rY/5mREhh{+9UaW9 ;3LpN$]QC8' g{$>o_geE:@TQ  C!%N]vXMM_gp[i_}PLjp MpE)au3-Xrs,mL3&HKYJ{{Qz p ^cBY$BQ6/$Lq6H%_=/8=Kab=^v ]KyyuJl kU: &G|Z_h0|2q1R"=QVk D Hi}w ] s|BmivXl2"zwlAEDAek/#QHJv.;,kdi,<~  J}R-/N-J_ s c3ILRtH|3etg+D9)5 H&-ocRxiu AzgC)yUjQg1N42*n Q{D_YSD 2l . -1Pl.g2a\MNB$;QnB}29%+Ds7Y](>X \ P  " 4 TllbY+(-b6vM[R AM  mIU~6k~?&,U n4F)?wH-v67i-2W;+>mU3 c':Fka,r) <cMZuR<~[0\+f&*;aluj&anA))N&g;=#rS U XUV=4pGAuIWRDXU\!*-8QYr_d994-w(c ~v|| _ i/R/||p~|eZ)  QU'moP`%j"?^-I1.#-- |[\CB  *yb 8P*@ lf[74 e<>uvTg;yR 31W ]4GQ~J3}*Rv / \}#9$Ld!H AK KoB4)!_i~[o'.31W=-3:#V;S6;,; V>f'%U * `uky_  ()-?I_bn C$z98Kp\HkI0N2!<$b)q/8i3C_P TL 9iR0q4 a72pWKsBw"C)$9?iYje#8po'L"^G. &d'l3.4-T4A|Y~70C{V(<@MXF@;7.u )[*~swQ*'FPfR+F$.G$uyBRz~owq6I R%?/{ !t SjUPKY+,Y7TdE| JJf7t^GM%sG({EY;hb 4) %:$ !An3 i s1h  e~nw?_reY Y",`"d3#>%# WPv@ RDI;yi]8:iOPu@j;kZm` Ml lm4iE)Qn X O)Z ARz>`S!e,8^\C6wH3 x_gib/A}uq/A-1?j(V% Xt#HUxe2Mt4RHJ2bQ|G:/cg`*4S)zXf>/ADo%I[aA>m>,] fB&Ps`0OVuq^ccvRiXNn<(a$`A6+HH0]A0uUA/`!`[k^KPVO 6E^j/ {/u-O?<x"#H%!3 Dkp^t?:j*|)b{$S.p"l 0^tvX6ZM}e  9I%^B=JGFZk+L(P] xd&U>]S Z 7< CzH[v< T x<},qBajK) EbQ1ui gs&37v~#I-Q d2M* N$ct{6 D  V6&c 7;nw .JSE*}+ w][({u< pUJ -: cLfQD ) kMrq$pzVCWe ^THy=  +t|\s}NTU7Q07 'jx  .N=8QY2z?T }uX i5>  lGi) YNHqgcqjl'G"aJ8To/tp(Kkk?.cMRaxaP)h1vQUNmx\f I(KRaM5qiF]$2Z9 Y* U*.L21jnj+vME#cY-(a3/A n(+c H'ly ?&sjRwJrurA:,aa+;(dm#lS* ~gFNuI&u%e$U N2:PD1>O:-z`XLMtq{7 0{YtFbO~w/ UEx5x,,'o > ^;:y# %% P)={XZ  RG? ( ,8@L-Ij"Ic# Q^r'(-L.W;Op ~Hh.KDa$  os~=7B.*A= ;=f8tЬ3E{ug %l.UXvK SOzH0W h& o|:B(oB#mDXh܏\>U+'3[_ [rHY -vXB7=,VaF2\`gׅ2,O6- mUlJ:t4Rm] ; -uzJbb6Z*Iw-DAd 20  3Xs L#F7 r .s/|$~]wlye%np;&R/`D}a zuexJ.^A3c0TgE) L @\ H \ uK!Ca \P1GM %kjp Kg}y @ >Q~^ Y3AD.r!:8EM&U3f#i)7teo? 7Q n'ZyE2p!xZW [/h i0 1j ( Y/,pe,PQwEfM$w *%2@T] ~+"=*j - LaGakzgo;a` * O+ޘX>2z IP@AzM&:_3A\Xxr%hC .   75Ai% 6 'Dm%].FQ75g1=/b eQ c  #fK$6:3 GMOD/"uLd!+HRI (.S /JUc,@z rOE P cz9,dbg#i {/@T2Ul]p0yzF[$ ` Qqb;i{3[p%.W~t]m,i#a3`vW,il[FXjWdv"DMV,)cJcCTX`4%bL ?LNy8-yD;I\G0^mlYUmjTwe#* {>FEzdeI-~VK`@RuskK|lO'&n|H+\`j yvx\Bh BL?~S e6O "*h>Ml\0z?a{Q1uV 7OH~h d >`gN7IV e ,yT#vJXZ[3}qj;;d"u$_he 6)=CZ[5]SeFiq-PyNV@_:;o 5WR/}pW6n[&}(vOYs IA?$:n]* ^Sr9)+#(bS.M I={.d:2QguhU~jf.R  qut*1qib8WowbdaUNXDL+10"ZwI 7R"v$f>arVuW5Tw g}eg$mR(cAE$}AzR&p.l~-d5DY:1.$?LJ1} ^xGZ _T !2R54hGe"` t F`By[FcF.7a#gq+B>e 2R&N;6%v=\$be NP{J1!r8 ^=gm55 )!qNrNj ar|12;:;Tj^i-0# >fc:?}]CmWU"I"7Aj85U{w  jUDtuv2jo  u-H?*V\\dXnoR!!,;U<x5> um f2 0 !7&L a,~SGzK/)34Yc+ |  AWyl}P#fQ9)G< A+mzl]UB#QArkFR *# jvNU^ vNYa f|j'b 2@3 !5I%S! y ~|P^qz=@qV500%G07a[C 0`ol/nzs(N@vSC)O,kB PE4D "WSr/Q]( 8359OtnYc!_|7S PbpzKW "A ,^I<{v$8"g@57fz Z S|`<_[ +@U\Z5 `cGX:DLH-!WeeQ'|&w rH (8$hBg=e\2F#>VsU`L:L+, '76YhJd {EBzNgqC?O<Z:kMvD"[X g~xY^Ee{yb#C&qVmwN2Y?!=Q^QK|xSynvA &K:Zz(?2-eslDw@+^UPfb\X'D "D#W H"ghDbw3#;6;jHM$0Y3Daa'TW0K7n$6p\,(obz"&_ED!07T!#jO3}{ /WmY9[WXtjQ!wk$U~Og#\lHS"X0DZLi,7t9t+Ab1R>UGp}!ULy#}, W ORU?H>vqSlb'Ooo%.LM4Je ehaE:Gt4Bqk 7"6d4kR \gm`,a$QU47>]W1&Z1V0{R+'lI8%\:45\HNUF>j<q-h"@'p0(-]J,RAjbSwc7aT:=#)i-j(7  YV8s,b|sVU;D=(_6@p ?D v;:~.0f?IRPHCZZ[ )ASkBEg_n:ljA1^6C R>?82 :[Gx[xyD%ZgJ5G.uDqZZ2O(IGA~cvwSC*rk1U2P~AR,xTy)pFV =zl"-XZ F\SA k~cV*X-2T_,X'Vw=!BSrB8zHM),0)tq1 Cyv GMH8#n GSW,aq{3!Pw"!QmjY  3$=d`,},E W2ZR,\P~~Yjs#)P"&1g)X%:kV7q^1i#N6yF}TBRZfH]uS%`%aj~`hB804^SOU|!fHZn_^5PCk@(sW#iU6};/qUkJH;u!.b8M'xxRfSyMYt@QJe^oqOQ|'ix+8wX8{B.UdRbU"& i%&@gh^E<_>M/`5{sE59/hG.;a~<,"7xV/)He#/K&mX~@T6t!!dyo[U]u<6ZxgJf\+AYVi\;^0 -q0Gi\{yzGXFse(4c*th}!6[v6m\G1llsa~{6{  ({\cN a:X >E_W9]}} o3bt(X(;al9ec64ceLb9;6lv4 /m Fht J{]@q}a>/_8tW|Y(-aG ?XSg"`sq,hL+>[)KB.Mtc)s:/S:4:5<EHTiv*cGLZ4ARyi:XzF-ffL =\LYCa<rI<0F4m61-DT XliCSr`4L3n *;u]B;tri$8Pf{V>lk:}t'Su6bc^H#[m'V3p?7'\&r}2^g>dpiPyU+{H$QEj_Rl #0}iYYMYpP|d0 lm lhiF'JX{b#sTTd#o@DJYU?C)<.7.FwZGvJ1@*~* {{xwVu!/ 9ajVk 6gS m@; b;sg7R[.'N1JUxJ%w(wR]eD:(,p<<PBa@ &nl_6#-@nV4=M890U$)FXdi<,V@6[]+NOZp]-1W8S;|r>yn;C2 'jwz'74tX"q?"/a <Z1DBW`9=ON2Fb"NpSlFN B QbRc=U/.J .HPH.*!Qk=}>$c P_v:%p E8 LTO +`9fk $A  /lCy*xsx,Z!%s 0b}cVQ?r7r.cb ( .Cb8YZiP kALKkh+9 n=RL5+fMP&L(F&?CI2sj,ajWJE`W"J5"Y =+]=|V=s|qD^h V7!y%pG4pMU8>"Puh Y^,B .eW]sP{9, -/6=4cc~|\jo+[FEf6k`Pd wbm0{Fqk&@<bpOFKutQ$A3//q%4apL|#J1$V gaj]Kg.~.=JxK"v}>0 @Y k"wo8_j WVug,~Bn.:~ccGCk/>\Uz9@&56jsu}:ssu{!vV9vTHZHIY k se_h^vgRM%kwZ} @S\$67|Twa`q)T~OYbfzEj`Pa\OZ5K`t]H8l)T,'-*Ul2@xk~PHOeuwn@q$FWX9dDNLN ` |5#|XO>z?rKsVLfR^NS:4@T#xXhuMxQ.&d$,6*+qae`rw~of h`0>/gv7AR!kh6/5 rto<4`N$[NC: N88;]ank=7t^ 2Q *nwx,nT Ck|p,0LkD>kZ?9"rcaS:&$p]FAC"Up%FwOF0}wb+f}ni"#<2&SWgnR=ke"(F7oD`N.*&WedGwso2oE}m} |*=I_r}.jo4p$ si^U.1jlW (iu{8=p.\"INY(yUu _K, 2&mpVR1O;9V-`KMji! 4}/D5sB gpB9I:,.,.?,6 418[b`)Ug;V9g 0!~8%  =OxPf30OC[t_e W%[dzh1.D(k %+n2 [ )nP,]`6\ V5 )0 p uyT e+lK 3M4t.9(2!~2{lgO/49\?aB N   s ;fJzkf' ;iZ k=J qNS'\J5>{u1E\!%l  XaKz%# Q C K6%4B4(Qc"e(l.b; V%x i yc>KWV) >< {ZgGdYd: a Ex)%trCSO6$WME, & ds85h c!lTF@.## O[Q;w: ABVP;p`Bdiqz !1> ser}gxaqZX#e "$R)$ 7f  y`)\C9 @4VHY i?~DA ~9vtD %4_J D)  V$l/B ~os@;>r nPz:f]l o g0>0h":zq?#Yp)&QS .Jr t?  s%MULYsp} W}y~&P+4 ep(i&(5PSK-3hnO&"5-A1RFdLl": *kB6 WV'Vqk }1wa= j"p?-`O"b(?j^ J5/~ dsx~zU;h 5g^- l < & F f}Kfa yr/( FZ K &)G Ice,0%E >WS% N{SEfj=|q?RHMaBQRh/ U(*p/UC# \[*pmD% [/X\wp}  L 24x?e``]eW?*E~PE: KTS7 vH#|dm)3T d ,7F >dqW.0NPy%0 ! *B 8 7HQ62G9wX +c5)o: xR57yr,~?:;R!!W;H 9t {_'$w W6I  PH+zsXFG 8KQ]%-H*+@%1d K:yf z~C [  .U==Al=_+ H@zo$|+yt3j2:4 NH&^ n lIni f 28)?tw P8^$uU/bT;G2P$,0kt O\jpO'+e,AbkE ]9 @ {^y  _Oj)$0n^5ow` az/*SF:MYt9p,Vvnjle,TtjzsVL  "h$;|GIF'W c h=Hj9B=~\"foId6Y[_z e @n Ns7NW=8%qM-l} }M# k@F.v[Vq3e8"DXn"F ' @ v} Q,@^hJ} 8^{>\HvQEXqcJ'L Rw*Sx^keS9}@ cC  h[ uTD7wlp4I3N*%TAfPqcmwTD 1| OY _  qA!O*-?gt'6W'rM?QY| VLn4iqbVE3To9R^pOjB>iu]&tZ> -  *ib_Bghm7lI_})C-Lz'J,[}R 1 ~^1::>^{j{Z#'dA;Se?2&QEZ(?)[essUxy~b~z0e-w`L`b7?N<^HJ[<B *rto[armizptuoHCsr-*bul9^f_sI|k|dvpvg@/grG%A%A {onjVWU|n\*Z5iC?Ho O"cjQpsDf|bWrnejwuqZ{Wdar_DI:](upOO9LpG~<9Tr%k?V"fU3_IUfBJ-d85(?tfghzcpZ~u i -~@k_bh Q&*[nUM~9+N1&lS:5#FXY,/XzDU`+ 8 s < /G $}C^ c&? B z, D F"`q~'vHUa;i- [W7Y. | ?XId <{]W5b T}+Y2sy-Y;Ov0_`)iIYdp=S? 1 =+x1+ dB u9>Yfe hZ30'02gbt&5sYv#slLuYxTB0C{p(Q R!wfBs-X m KkfG[.1u,m[u. t &-vr3k_c7]!vGCXP*anf" n} "*iC\'Z Wu~B32!<o3xrvG .|WN=IJ)GnhU? (I-gfh -9DVp:1[x: M\M}8uCv:5$bl!+aZaG uW2a{?+ Xc$[RpxvLd9 )%X }bDSA vB<-]k:a(@5BN9,: v?or`C,FJLZ99sjsmY&4A6H/0J(  X"fh11+hohp]%'6N`)|Daf^jFaHpjd!E9z~,& u~W)yP^D"!D]aaYk/;b IOcN# s;'KNle&ZQb>]:-I dd'CB!'~oc/W g\3;X  VkPydn[UG^k`q#"syR 5Pe(he W@f@( ^5P?y6zL%"sP #'?~;uH:Fzp @`~mF?N?hn4*'<Gt,#;+k6=PMvG4'fT=$O? A O{H7|zb 7 ;:p,~+ds(`SIxn<xPn:&*pP:Exf)m@/6Cp=)[ r?PsYO tH!2D'KC_]2"D>a;N'fBT+y?cdgVn):.QiB 4?ye y1(&IXTc/V) t xKaOR;~_ {k,( 7%xpY5 ,yj&]Nezl|ej]"l> -,& 9~x$4(-4 >i%&1ud",)P(yp!8".v. b.{F" 10/CUCJ"v l. pg h  !42RphAKDP ( !.qV=Z= FB(= WZ@' Kw\$q0 V < =g[Q[uKa` E>$Ja(s s;~? i(]G DF]hsh|kdm7 0   J1=;+O+5f!*$:J?#c cR8 pS(aC W uY[s  <Ip){opr\ 5g^}#&+N[*a ?B 6O2fe' M(?L \;i cv5Id@mud^tXWwxn `04 `*M i_:EodQxf2aaI asdQ.H!~;mQpxqS)C]U' pkb Q{$(=+ :mBcC ~rUIl 0ifg X/DJ RyNX_YVK`bBy,|VBl2;*2WF+&*  g07vA E\ghJMNC^qF\TR~H0zu" (D*%AN^Nkr`]D|lDFbWF\N'b3 (d$ok[qukm9tsy}(K:\H:B?ZE@xC'}Ge^cw^scyqev50n BqyosRMbMqIMAMqC~<5=qDjUjYO}nB (=9&\o~Dt]xq4|zzz``EV]zqIVE# ugiwxd`[VC["H E 7{1W: W"+p.Avt?u] AS)]'dNff}(&}  ?2 wI BN_P kI@3Sf!`E;l#@gex8S4BZ 3/T.\Cqh T + ^G68VZ=7e"1\FLYvRQ?b~Pf=M=^EX}>>  [# 3 Aq"*_(v?}C 6k36X}  E '`$>U5[OybO< ero&qjlq'@y P$4''Z6 &T= J  q=OxdN+\GNkOx~G+7h*[u2i V_O=l/Lnz G 7 U^M ^ q7)uDh%w3XNC3@b"?V*b*h`G98cZ.BX%T Z HUyvK tDF6$jw[ez22a>=X1HpN\  u *)8Q''x ^R^,M9-k7]_b2@0VDw Sqcuz [aF 1H  EK Z-T15 omS;DM{\Fy_F3Z| !Y507Vh XwV&a\ /m }CEj ebL`Z \'?nSx>q$"(` 7o N#x?BM " 8 g _KSSx5 (+y|jZ<vL yBFx!U}`_ u_WE[.H1z1 2s  C4 m Vg{T (WStWKb%b! Ho t=:>+m%@ +Q[xAuJ?] ! c  bp7ZP?NRIob\f*1oPK3qWbgi?I|~Y|(4"([6mY 0 WN|(Q&E9eMgdQ2K/h`T:;k`BG/=$6Vs23vHU&{Kh{ N &6 >'FMDH!~^Qh/|FxG(8e*hygt> n  -+|^;m(E^aGk$>rSw+/^S_M" .4'^)Lh, L7WGN ]@Qv-o*O- CC:#nZ_ K21-!?&}c@ev.:,yr?sfx P:rd9f (5,<-Ng#HT pi 0oq51?"Bnj4ro@_cu+j^16_-  ~N {LsB;} {do*/QCu:<2rW5vC~/WDx #&LWHW3lB}rie5Yy = }vu. bivINBS0=<#tdIIq Om3I;DEWs`7PpTQ$I#y=kC|{9#!z=|f#C>E$>g+BKA%R|(KlU\l!oMcGQ_jrI5p41r wr@""(u{SWR:z]@H`5+9X5eC q vz]# O q]C\jnZl ~g,+'&yWzg|c,(zv3@;P-=xYMnMzg';EN\aSyXlK!cc'%bLC~cZF &fM?0G U0Y (gOl}"kCHGfMS]r99 G}I/w@nRgByT.P=?){;l''ujcB^j |)v91qz&3@,YXA^  bjXE9z[(-d`3uas(3d)Nz4~AEhMGb@*XVK-[Mgm^X981kv5o}GhTD0,Q 9SK'RiwSVBts<WKMQ#} ~0 x1`]p:TP+~#L9&53g5 BmsV#>0'hLh^V?l5O6, W A9jW:@J3V )<}o>E$Fe3TI'%~zdr^,M.\F<y4UIK"P=E-c$H&V Ls+yMP\ ,u} m@57 r`aG h~ UoErU^lt ^wWjza;UnU"I82%:hcZCGfj*N DGRBaizeM4 h '"AQq  H_xU9V] vUA7J GjYy}-;$P5`,F%<m?}j>x RElz{ .e x"76H m C)0t%./8 u^*@eheQ %] L<8l:D= " 2ci.mV(M<L -Z$ t|S? .,-SQ U ]:gVs; ?3lrt Z8M|hZxWjW< '( 4`LPMD]jx \j' _TRQS!dl9I1(D{mjhI" ~ B!T}j z=; 5, h<. 4DJtepItj LqEl~ZPV/_6e^tpFd A&Aq0J{ 6l2  "QpUqfe4+|<_ 56\Sqnq2)Dy{Cc5BsY 7/>X9^vbIJWg[9Zz wRG*yF Y^  T  `@8k!FaEf B+ OK_=(sn}tBC i~f{sc1;IrO{RiCPo76Bq:D ]Q Ta dP5YY E-J RKQk3ok\vj p=^s3#" Mz ZOq+<Fd]QyM+M? 'rmw)0/UM .$1$+ >j cEt5b$~l_!.OJ] 240Rj[u9f".`rD u-' h-3| h)!}P$Z+HV :cjw/*YL 0V>EC3 ;XC%;5byK{6Ym `jx@]Vk? goz@V( @&&'HxQG4e 6W )Z3`t q uBk`L k~Sq Hke :G Y^ aQy-mS vd2,o[Vh od6gZ\ZZ 94R:M  /n.  [Te %p'zut" 6Q1`@{ZjB46 "  \ ;+x#Y: >EZDR1p B3Nc1z(&C g #e7:Jf." Tq5(3Dw' Ok O=5Pj' 0r Vdka+x|{s5 'Y |T HkZ@ ?"t ';-Fa5| <z :15&FTUK9;DbGI(Q\-WN'^w^Y-// ]T)UJ\?*) /~QS* z(m1ZMcb.i( cG67>yz1g; @ ]68V! _JMI5lo55 \S2HTS&zm}0vt W ! \% n$g8q   ?'s*dW,1Lw9D!(!0-r!&3'"185!M m r3q #c"P1x/KIO [*#Z4a !>_(\dz M( +  t9i?If=TlV/ $ac33(%7 .:l7JUE } > TTTqHS) uqtyi:Zw]Q [~% $ WOrlvBsd _ { = i:|?"dguc7/!Z-`'<_'s wVx WAg 1) b ~J9 @+!aCb^o*BxfIM  P Fwu p8}c%#%~q>VI.2Sa.,cx , Xb I`q@*:yP { FKB\xK).+'(3Z/X65 t{xFeiW94JeJ#H]tVIgls)(=3 f ! UJ9OTQQyl'M)( Aej5jH3cY& [$%o! If) *GH&nbocjpfJk[#;:ls14?N? # p`CNZ}5{TB&>8A`s-p3t8+_g?jR&  &QJ J^ 3P4eZfCTs(=i$/67 cI it%&?C{flB'rz*aNn03{FuPM&z|- `D !4myU9eFwWw*;*=Y VT {J+/D I MF  .VXbh_xLRq8 H TG@ W#Fe%pH h }ijM3f/Xze^5 IWT&-*K@2)(!h&-rli}-?}  CPX!WYL J6 1 Jsd"}>H j0 qjEboi7GD*s![&Cd  _   ^9oQBH]k An,sblgUH=2BpR?(s93 f:l  =P , -   XMuoo0e3B}+V.\I" M&5VH, $_H L}g Zi  {  2 Ux 2.g;goy<:,4qC2sgVW'aEq(q3FHF+3?x7_#  b H }Pfd0}|k>MEz[Zsn0'{l ;8wag{+S /  D R5oq}pv^nRk foXrt|V2E@f7.1UXdy}0U_o b EXL /}0kuqS[tT5{H[3v}J[?,]  }i> z4*~#k\a2h_LS9;]VnU[F;wd*} 2J'|E{O3o >7aZPA6L87y+DjwW~YhFCPs1zf6P?3 ZM<0y C ~0j+/PTNpO`d`o>B4e<s&J.M'/A]bjBz` xOu[k{O YUxZQ|%:apC[l* ?2w {${ ev;q(MK ;7u,K%L<vP Yqy5 2D\}XKs,_ cTP1yNpXMq6 d5%K}fV6/}%7dah_"hT@V|GRoI_n /a>]=G3Skmk /9y|Gd@Yv@>)mB]Y u C R`c1!WNRm;Fy8\m0K9kV:p=<;m~2!X%t:O@ O )/65~piDhNks8=]a[|ocZAP8.m(v j2^  SfX/@:eNa]tv6(1sSX'dI+xeLiU$ZW(GvU E+ 5#2 (s#U7QSl0ZSog;`OM:H:a#Mh7Ff/w77vbWX /!%\0BXfz3HQY( {[$ -m]2msfT=A@LU}V ~p.IRIW]!f`x'q+Q=K9W<0{ws,bgN,}dtwV9a-PdB2B('g1coX@/ER*;<CvMK8r3N7&6nb&[5Jkgx'U+L5+L$;coJPHiRx.%2jx SXhh1[*:9LUQrB`r3!1D>Tyu,<~2M$@^DhN 1=QF|!=!_oe1?[uOXs^$QIJ*p/~F5IV[s1(:?L!W7Z7ZP1ub6RF1M)~";LPM;_ DF:^C<|@?=44*'jgj>b3*~>!2s{^sa3FkfZ4/jy/-F*`euw|L~|sn39h4,m?{L@9gy>6O`>Fxl _G v-Ar,l6>n}e98@( *3`G(0V m{ uG Ix7)? :-^aBGRm-Oa"9P:`n.xB(A]8z@"6 E-N6,-GP3 ]aR nrH%fD,a~m?/x7Q6)4[`9e%eJPP "|_~t7elRF 2)g"Ss _u|)!RH7^!1\a@t.Anp56"%zUI v"-D> U[ya /)# )fdFFM$zk Z( 1D/8 Ix +y SU"d& S0 XY[sE>~9K.+$ ;F N] dT7n0}D [ % G0jd|e:K4T t5w4 L!UZ|H Gt'=yAg*> %k 8vv'?R&l {VR>&XD9T'FW5yW -"'O>b|f[<omol`6  w=f x1=/yM9-Ma#'IxBv&114ad(?p?(  L/ %}G49kG/xXJQ%CvFn|@GCt,A_5 d T~]4.Z>Dr27XGN[dC"f>Z]AmLOaHhP G. )t,-UnFwpp*LyD{Uyl/U5 RGJyr< Z DrH ,3 } Vx5#C|;3KlwWX-\=J*)QDzt7Un)pAZ=~ZNA3kM!`;cCjk!*ZjmR ;f s'g6p*+_0}} <bBPFIq~XT4 tVMv)_E+91 >=.sQ1 .)iCCgRfD O!9sg Y$S?z./cPbN 5j$Qb "h~ %  :c-zrmSQ:n5~2DEA 5@~( RSt|BGg}%|\IL3e-\hYH[yES{0Ld a&+Y`K<kMN' - )p!x@  7#Pw{~/a/"4\9@;v/]<NgeO uhwu5? 7UWZxD *9nf;i`jd!ht@7]@y  eM # !}Vn+oat*,Z s0+ 4t'Xna Z ZcW k"V?N)9Ay$j^+47dF]cq.+~e3/p A >U m3+ U`>ytLmh!1T@"=ksu 8x$1UfJW2"&? eqOyFx6_]H0du,Q+h2 EF <8-h[K+#4= d  ,*NgqPdPsiGN#rZ]5I#]64Z2 3#| RTU#Lj h]rMG sh*YgUU BOh~mU-l="\/-+V){&] .{/qmcsQqxs y 58*}b_ =v^5j,y Y,~(8g 4j6*il  .H8nrE: =-4VVsVi!dEu~W|%U_o%S|e7>L4s)7 2  -'Qz0Q( >z k-6|<"*?EEdDm,$bw B ~E^?I$hHC?)dq !o ?,S # xgmVA FQ .FL^&-"^!)VL3A ~q\h?:aB bJGP;Zj&V x 08#@ } _,l]@OAB(\$[ 4t}ek\b8&dC$iL sor(m6Sc6A2je;d1_ME-QOf,PD%@j. dc*W8YAK1k7AwMOB>l$[ nK;Pw/3<zK}." 294N/z%ovOjlDT?)Ie9=Yx(b+7G.]yV}uVz6le:8 ]xTsx[iPHz'"( 2?lIikdwffs1sxHEes_}8'yVyI\{#:*)> %2]ys^(VCy/T) {:!T,WY cCP*JIf_z#s2a\u|A13{xt;Q('DV"[n _S&"mmR%t? 8UGc WPRxc23ggWkj81 tX^kq+A j)(gK55Xea$_+82>NM!I4ogyC:.kjtEg!H8je/0Q/r|O:0GQ5=^Ay AGndX>O%w-E/ !O?sEH7*_/bt)krXCN8 @4 -XhgsK x mk0h8&\hN@8%GOsW<`v8(m+yB-{`HdH7  [2 - Pn hh_ZB i1L0d7R Ch5Scx\^<ol UP& !tnX 7 WqHw}p7*| ;7&W.bZit1H'_CI -xa G<sza [WR3OuXnwWdfP S 6C+VP odVrL |1L>  % >{y0ug6'&9o:nK5~{-6| URKyZ7 b!fvFo f1 2:P u,#B<E+,H={F;R_^R 6t"f2 9#"Gp.  mH> o-UN3""e0X`wNk$#p*xJz0"<~+V<s&;c?Fjo I<gF M TA4+JD8LK*!y0o8,\5K"Xl>8"jcPpRn_ER!Lm92o;zD=ie:DeBJHa/3zS3$* Mr ]}o<W 0?clOnDL$#g^K/GS `;JZ/tDV,F."ro `; riQkFT @W2GJ%Lxr|F|OS*A[]&^mSg^3TPAB '; qOTLphrvJyk2#qrLCY0CYVgaCBOTDI4qei^e^F:JOSr}u5GPtAgP=5 ]Y-*DN!R^/oIh#9bO^`\VC ,`  ?J|a$G 'Y.*"23 ]N6TB_VM:5h(~Ufz1zUSn^E(:TB'9e`b. xMyhC9{&6EQ^)? 5$$FEqA'| nO e&c4K*t*dAO{TnC4M3#,*`<f S/ r+ )8 BOVW#o /yx< M]j1kD%|-O:@g hB |z M7F[ zNK&Vq Nu :4 fGL5QN)y[T?e =@L `lDm )u<$.A/EPbTlA'^x w>An= &9rNPTfm0:#.ap. ! 7p 7">#Jm]'Xa91gLM `Ef KC }%EtZ-sg]^AsP;Z+Q%9}@9_  C,%|Jv1%? N''M1lIEzwKmb6}sS, F0,E}:GZ=H%Y`W"eQ =keASR')~>a^z#-()<GP(F\a#Y ' 4O0A+ Mp s)4 qD n>ZI7e_U K 4g)0F"/ 5T%M) Fyt< Bvc6TdV`mrU&!!pb J*dq(owd;% )4& $N>#]Z E E ] ,Pb=eG7AY4EG -  s׮ |JzFA% cry582ljK /V* _E *"X! `&]i qXTTR(e({XhnU, `3pP*s R":.JV y 8MN|mqZ.&6 EvEP N `kw8  e /]4^ V 6GGPA)CV : ]#5 T - p D #vv7x#1He  A'WK6 zc99u}  Q IO&=1{&I{^kfr+lTnN`-.(s6>o) ` JM9H\O^O}sPEx^)((oqaZ ?]B{3(Adh~ &M"bVr<bhw3k!1/_k qK |My0 HKmJ LFZ5-DICEPS^/2iwV@t8Ht1 v4 MT%!s $tO@! 0H!zG_k NTs%4sV1@thslS _b82ps[=I]9|{G'b? zv >VYvrG aqb.n.l2?^9|Q;~RxsEx K=nQ'gQPMz@UAeB;  R!js$be'5Z=aYw#gS y@ U b 1K{ lW  pLX$rR!!]`cv]4=G)*.rl=C*r6@%| Q g3 O[ gHY52fj8RF '8ErL8XiN &1ls/'^?(GYx9 )#l 0 ] GO %#<( IrZQjSQaZYm|#A Kq@h<=G#}9f !,!s2fTDu-?w# Bu?Bf#y.Wk5l>3cc?T5wv=P'$[=C(eff ' E ln}*/6!+ GO 'Ccv E|YRA:,lR>|C~|c   6Y F`A0{I@G$  [SdJ~GS l/tNm $1 mU&;Kl |/;yE9HX \ p }}h@!9  A{y;@b0<29BCiJ_8h{i Hl/^|,t/ :<f L8_?oPCOJ7I"RiqW;+ ]0BuOl)x~G&Jqne_ cz lx,Ku65( GK&}o ph fR]:+j;(5nQhHI}_#-F(5@]w wTpr6 i, 2CH:.j:q!_h|/"zUT^cN-G.'L{yK+]WVKFjiSx.Yd4mev $-^ i\.Rl6GISUjcHA5N{F,'*c->07,?VRNPQD`[x8q@Ac2IA)M~y6XO Pbf65 F#=J3D)?~K 5m!DWBs\JafzguQ1]zv7C6!e6\{UwO,LF^Z%!ROXC^_"'h#@H%ZQm:t*BT_omXaz\ghc~[Py^bJBvrR8+/DTNz5h[2QFAz'y8LREiv I~1.rlX,qzyZqrt=Lu[Y@E[(\.Ke 1cyn6H#a*ML*Og>-RjD+8 +ww1S{ ,[eOfvP\TTq(U{&;<>H[al&<ggd*6/Fv{i]%Lb\t) G(ARuL^Kg6Sc" \l`r4}uX4 X=Y}1N:u!d&{@v%^ w'+Sdo!6M-^Yk71mf|H)zVz;y!oS iR`@6 j)q R8w .p~ ~#bbp g=dU_!.%x'+oL5"n5&Utm$np)rxqw]Sf{ZC1/{3Sw\wANA`)$<NG'S4 =!\rhj!\  R0fvM xjC6y%~;9 ^439N52\%_o(yg[FF7cVUAunL&1V7^.f*t?g9]=k$dkN6&ZA'o||A> J`<_0Oh"  (i C4f7[ t?(s(cc3Rqt =^HaA \ustt /8W,P&Gj;Lzf:b Y<"Hp;Bhz.g]H.8 D*Ffo'QO ,=BX5}:f>ok7vRhE*MtTJLVrS4!W@[y;CT9(3"D'6fo!Z=j_&]?6**lLT9MH#Oo[Y(S'aI_ugfEa*rED0)(EF|S]pP:k9lpCj x/V^:v1xN^wk=QA \ $F 1u-]2p ' ' yYU + n75 =,{ 5ܱK!3 *6 ey2)P g< 063"f0~?C  ;/#9"|6٠tD#xjs=^ Z':P=o%k(dH/*eg[8/Hvp4p}xNնPM   ftz nH8mMsF7yP8 #Vxcu%$xVI.*]A_74,%ajyxzj  K;FR o b@oN'vS P2Ckk7m A}1)h$S5 0e$l} qr q & ~.& 9 _DUr!,-SD:+xYux.UxGfB\k0w+8-8 *0xoo 6 ] qK(M  Z )9=5B*W5sU!+Y <26~PSvm 3d%c)^= ! H lZ K2v 8 }) b;9 ([eng/c V~m)1lyI>]RcEI6WI"=fF'C3,8>Cc 8K ?7 \)`&a4 j$VE%' 4V!=0[Q8C 52yH^X h 6F j ~ ]'f- ZR; \ cQxA(#r&4 5.`GW%>t1~ z,  OY9M UIk0>WU O{dLDen ID 1LP޼2wX | ulHx r2 "GP?L _ }X|.I7on 4Eh.i}/@JuFHi!G< O$=mcs'`x( R@5~Lsu'f3S#%{*#5!(Y W] Zܹ " r FViZ` [BD;!cLQJH "V=:(&.|? y 5:6"wFIak~(52 (K FB.*,+{FXJ^ ]zQ5b# GC.= nG|ygAz,&0y~^9S ?4ZF7O(lI B^ |s!b@rY  l6r7zFiN$d/V=o_; uld RM3OSP-='Kc$O M,= c u|( GiGO9=\Q%AH&`=XV^f~f!_aC\%l~7]kQ3$3&3?98dub?(,z0V;x;B)L]k].$Z,)1S[rK_` I|@J;RC0Rj$"FXl&Aqz6`E9?O_zkP]-KJK|+L(JHkgyZHS$wLmeLU%#TW)7JGad,\B Ta_o~ u|gCKLvEo M`tuqryAsXx[8SDORAfcYw e\ [ujN)GogsN+#W6T-'c>ZEF+YH0&E :||GlA v(ugTS&.XiEt6.0YpSvOUgi(d!qH* Hn}BdGz4yWw &ZZhN =OHfs )nd^SN{t1sVP pMTiby C~ | Z|#_wsuoWdnNt!,4!am(A >v3E BS4Uri- 6K+F}wi j5mK WqW,i&FQ5+.=m_Vt%c!re]oGl $)//[#C) H:HW:)S*:VIS0LmGOs r#~B(^MQ$2(- #GXp DSq3 .s']  S-\ef z,9e0Lx Om $P)P7`$jpA\|vn5RIbI^. "I@C%h|kM!9 sa;~{A@}zFc? /F0pJ}Rf ?j4;5?*T(-jG1X&T  b*IYk6I9-Lx$ #O=%8B] em =9@"v 5 SL0Jra} vs5a(*Mqg6!#gcDgq+=Y6r"|>0jSdxu@#Fuc{\nxtq, 'B?o6"D^Xg[#=9dyPYMl+'r[k4UgC}o9Jq E2SJ6C_i 0)U|^QZN!CzE K5PF(6G 2S.; ou/Wothr9 KC! / 7SY0ta`VJrst<&gF*iW.+:9|wkV&,kk;jf7N2Sk@> !{rxmRJ5x9),5z[/K!Y^ALT^$I#Rz5Ok~j*>av=iU lr,e%.#j  NSc1qRDZ SP5Y=HK('GkH jdf'1X!'.0ky( }v8 #*QLk/J9q T4aBye`E.unylClv &:}g @"X(: .%-5a BIm]< ! MY+ul hW\BZ*73Bdt.P(A$a5XPL1b! -K;"bx/0]YQ H5O@H# MX[}`>I';ID D[)6`Pb~`I}'ch<^K"00;lZ2;KR4Ju\#$}JVHF{s9|aW13  G!:_<.}GXD#O"o d.WCj6f) E,~E1GG !iyWh?T Cfd-_3$=0g )WG+appJ~gu E0WG',<KIG ($k.Z&*&VRy2&_c0|O"62: !+y.P]|A-i^@:9=k8U y jg4odefVV`&+|=m%y8A*X'6 D40_o M@NV99AO-[L:38jR]"g>F^ pR0*EJSlU{HF|1ZBult%:4\U $Y2N(W `R5**bOYir>ux" xa)X(?3J (^ 4o8{tnn D)QP:~lK57'`kOUGN!]\/Djl%+3^{J9 pUh n;&,-O%m:2&J76~K 2-El-}9$rK$h.`a<'oJ^9?J(.Dv8Fa=VuKo^?mh~l6j  IncGsn-x:(YnKr6<lCz%4NWaD+>o\iu/ ;2+OQ VvlmQ UB. wfcH $Qg:w]kx9|B ,.]'czd0_];N}>%+<@!E(r-4W 3KdSj1!C6^ Q *0oJ$yyEp+u,8DOdJ|J^m[zzP3xXW`-W+RRM: snbB) LmqDOC\<9Nb<OJZlI+qqb>\kBSJQNyh*GN[q2!!8fDBdF ^)y'15H!opOt]l*1YJf4$BV ]~!yk}nKajBqqPxC  n_d-TSbk:Z'(s(f^p!87Bj1eGBTS82R6u2+PICihM`Q+ (6!bm O.!gy&Qkl)\EU LkB5 9A& ?hRjFSj5hnUcgLb<3 7[XA=!F <<=b} TRA]"2=U6kNFtP:\* QDITEfrK~l>is%H l1szI$ORJ+['TGGf`uRsYgOzv*zw]|[n{j:Pxt]t~:GkoeIb^fQhTn=`gDc)P!:%we$hb !Viu]jU_r6wkiD]?I;A]Nh`b@fPNf!E1,7?IrleUx8.$ 5{8YxM5S&$3ec]ldaVvqp _uMmnd4-8~e,bhqj}jz]XsxjM2 84&0: +! %%! =@L'bVA~wgTt#& (Z.+jyk_{60hd3iZ<LfkuRm _n`o()sl],cvk}=B;I}DA&`XKr[S||Y:z1xdUrHlI} W1gD_S4~@J|t/7 g$A{2 R!: )j8gy|n[RQA~AHgt,.^>ZZlstIZNm} # 10=0NC}OT?ei0?)|Uz!e0S:,NRaTI16amAJs 13Q=UDJ|xs/%Z a*#S%tn"R>wf{^o8 h DOJR;vP~^ JN4"(se9`"U$Y(XP!NaA\@lFzy# nUcv|Xe,6MW5utq*BQj0a>s6-!b{=*`?#_pJMluI,0_VuQr j?u1, qJhn=zo,Z!S%OgnI, 4op "|$8V61@>GVY iR`djH~0nq$Pvp{.CdU0 ri@~Vxu2Y*,l}7,0+1'O6;~Tj! l)$`SFAn~o*4Z=o>drvu 2|0tRyr.p|L68s#% 9h^1=&hqXrp`boyx+ess *6L>]O Q yE`%Hg,s4%T!.R~}:AJH>W@49z\j.IgA*#-X_JwwKR _ ld^ d^9YhI^<}y-\'csVpb.j emQP%741^TvrLi?s5 $}Uc !1z~hle+t.WOA$mfjI3Wlc d^"[ i $2q ^]< 'AdW {F_b `EG- E$ LY#@%-D;M\}$ d G u;[ 8QZ(  ;H6k } 7& P O o   `J$\  89&oQyoRS >K^HR Y_,- }4VF}yIxt# d m'r Y88 X{w>",(n c@cJR% ׅ C V  0]҉6j\[d2%#uc KC7ƶF1D E Mh!)?21-Y*+A eێ& Env ]&!l . ( # 3wmn4 \%4!g׆ Ҍ$r$!16D93Gj `ُ @"|'6. P#~$ݞ 0#)753  x7#irrw .<aV!..Mw%bwz5 }  (_H'S+P vJ!XyX *sw  C.b|MX `~g[ ׹ 6 [%AYW'mv u rR1Lqc H=U RUhhl,#]`{ Mc.  t* |E cQ 7jG8FxVEX  'ed W TT fNuiDT4X J=`5\{M? S Ukj0  p ]S V"Iq2!G#-& 0 zw<   x,1diM?OD6y<)VI9~# ^KTB ] c% "# 7> r^GdOLք5/N9G -8A ]&7# tDe$eU=7OK+o c<#}5 %; >W"-iR i  -lyYv4.Zv zN m/ T+L$t+ ])hB%]I<);)  gzpW=m60$ $g  1`p\DWN _37//*<#"O }f/jT[9* #Xl b[vLK,c 4"9o aLZ>W_# z Md h[kS%$P(%T8RHXq = uuTN -$#"U*W<v,*.W_5y{C6(.Z_ YI[5B[d  $ (j"G]Qaq+v| ]s xk _?iq ޸4?%T7 "qG{ Ry &w [=|4sT%6,7 'B ` }icJ!c= @ /R jU2/gv jف4^$#Jg np[`v9 gk$p54- Y E n!uF1?x!?.W! /}{)~  `f`c FdU x^?#@zww!2Z& 1 4,z#eebT7%2 J+ Jvg(s$[KCQ=os/>6*R"d v0K%EO7 f%7r|'0H).v)/8fU_5 EL)9,^i@ +k @ G ([ BY j  !&(+JW'gwmCfbA8#5yqOZ!L6XFsyJ T+_^.)5- nu:" \'i)3BL_8|i , _ evQg lU69+kuKsHxjS ?+f"4- k(I{hx\N;p!T h: xe)3#D8=W9FX!QMy< ?   YM.-p;_H.I:C1j/[g  8\g@|.FlGxqmj s A  :Q 3PbO6@JS SAju%9sC  oS>6YiKk1<p5ANb/2X dY s^  1 H8E>Lu?l&nQ/\ !1(F6`AH fLbpdF50W +   C   u0V\u~*8#/N{_D|Z^y7L ;'0x/v >K( #  i wuv|j.> A/9QF3 jq{{BG0!Epe89lP f 2Hze.GXP 09Tu<_6I##gi<~Cf9FLFUL 2j]#6?EP* b5 U<' )q_50$ d*hONs.?R*Kq1V|eqlDC UJcq:448OkaEa a4pVf%EZf"v\O![MJ@a1Q3B0k* | >n wsLR|1%7?( ]4H v lGQ@/U  u{jn4POl? RKlAK)t8;W94Z.v9IGx>o B8N]M-f%e5riBNzRgDas/.Eu0i3+H{~P;oo2w:E\w2gPf *@3~>+\\ n3(j_eD$ %]x1+ .y]B +)`P EK/ 7  -8ob,tH }PBgE8J ^%+- `L1j/rS fa  ,aDFM ns )~iN2s]##)^0 RO^qSg v iV lMW"5LX  + y?.Y.Pf+X#Px"R \ LtrA@ @ k+wZ<:"2W !hr@y`#*N<"B = R6: .[ 3 TW r{ *}x|"20ob^ (mOfl"&rr6FVO.7/:,jf8* [0X:uMwX7Z C!YiV_6x/\~{dvzp{|CS vj78NH3-o#Iu@1qa] 2Qv j tO eoP O/ y!B)\YG= N  K}d|9 A`G`Fq TK hl)q+0D.]9r ]!A6 {" 9GmUBi , L^Do qs&?u2)>E19_ ,Z>y؀߃EV 3 H # k3$ @|xPOOv6L.m5cv[_)MVD5qc2]O j(9sx Cc7 *,A39M!Qsw^ ?x|Z!&0.pm;q(*&e}!7O sU V*DeAh b  `=:G ` j 14o"4Au-o }~f`mT.nmDk p N /% Sxg ?1?([5 J8'S. |LR^Es |h5%  t ab(# U+; 7iVp]Wk8:|kL fKu=37 < jY#d &%zl V7fJm((wRUwnZdufpAJ'/Y_.4tfL 8i? 9>Ta|l` w IyLhy{C\qb>&6|"{n4ou'\k%m}4} D-lYC[UeY2*?vxLc b<vp}0 6@$2qX&](d<+OJf`w N Z  SS.0Bu JX7 I _55.CYN$d g-3  t3u C 3 o^(6]  @u9*a^Krx%b <wg D7%|7v sE @ W $vHA,n% v g 73e645{C267*D,=a ܝtH _bQ}# Z abO2K%o8 F oK.IfMf(nY' 6E# (DB < f|]~ ;%N4  l",5iL @wo_i&W2  , hTYHdi~@j y2< !Ii| YkcjiFAv||M| c Y_ J j'U s s:]yN#]4bk =:4,z=/|7I ( +ftwCcL lZPaAh8o \px>285tx-~K %14A<\  4qw  _ | 3 q|(JB 1eNnbr1q<{|JryLs!o0Z . 9 F ߇!#R,[@ vpbg3j&FJ*  C@[A3i J42qJ sw ,ou)}2 :p&%&}tOh  G [TXMTe bs A#&;#&s/"2~f@ j&Dz#r8w|[GH(_ Lk_|{-tK.G]C\xbFA`:.`6_&TW#HT(u/CCj+@B=@W| b{p.X 0IhxFS?*;J>(9j).Tm '/j+G@@%).I " D a]9Yd\r5$W r$WBD\:ud;5-#L?|'Qw)Lkq6|)gqul<}oIJOy 2By.A IC  yC W8rJ k  wO=..3LAj! 2  eh\8< > } + <V m N9KO`\\G[kΛK$= !q"(Z2"G  > ?/\0|%%T|X,e.,i%;̞$| Z{ ij C56vh *a&p)8~> 03)- %K7:~b%Z 9 }schK~z ' 3wb\j ~C )V?r@W_ > J \K+mPDPkjcPG9Y BJ  ۞B  Z$"c JM  2yaF7 g Y w/ S1 9 t#o%;Xo i qm lj0!al@Y Iw2c%,e%WwDY)!$7 C S1{~(7 s W[EKf&a 7el"_,lC~j 1_S|bk\ a x F[,riPCF9 3\(Mg E?-b =0 N.PN1h_A g   (/PsOZxM~V q `SGIo uRwl0E x k L  !/ R@ [2aZ]OJB~m}H+^o!+)S 8ng RkL7 x |cU |,_~^Np|CntFo6C8wu$zp l[ S,g-'hk($P[+~)z2?{_PR3s "N;,%0ks4-X{y3xW4/&$3-RA{Z"si0?BzF&f`m IL.uG~X1BTmNvlMx9D91-N[t)}"x3KPgjr|P.4)KKWHurdrPYqavl4KN+)@%m!A%}[xk]AY}P7JG*)f?5ds5G+4 2R(uh ?]vaLt75i-_hp?6UH0  K~y{UaUKF>gP(rX5k8B.MUhC^^b`3tbi>T)%$.,T5,b|t@~e4 `@qbQd=pEaK-3;,~ny|`[DNB ,s5/'!$Q) Te`d `=1'1GJbWufrYDWguvlrN@{%KejprV,/}TE'8 ^FG2`xiB?kacn2P-_-fhxxxp) B% #nJWhlzYt\_f[zkcr;g~*OQL)zn_Xp}R6WS'M.V?ArO4K0Hw]H3KbJyZ:m`DJK%hGTGc$T5B2 ` 2oL QuKv7Q ^-}tj+s0_{,B{M./#k+"Yc:xWdcdS ^UgVy /5Py'(D1N2>p_/6Bx^k)~De8! `d$ (,sdGqp = %=V$>M<h Ap,^cmK k}{ege`n -#m5{? d _?~ra`:y i 8hx WxC=9~G0  (3B\IR^F6`4`u 6wo9`u7  ^6D b  A4e!EQ)hHXe%owNHyQDW9-dz0 oN YC - `]U8@La6gC!?F~|7v%3]j@8g' - C  YU  ;87 2 e^[L^(uS \'5qF@ UfS>h`f  O#z  L e q/HD K}$rej]!C_hG| 0W;Gr ) K.X+yP3I+: f&5<0/e A% GMt `:,wtJ@vaD Z;Txwt^Yl;]]| }X:fGKV^m>R!)""m~n~_ r9%${- ~Flr?" C R$qD =!_ V _ n@ze?Br 3,yXpI:6$ u}Vi'%r&" ~0fC:)7YfPd.k +fV_J|wyr`;I3 _`:!ss`3z@AZ"{0ZQ/=A7m/0>;Ty%RDAI:'WQc8#=}\6|Zv,L-tdj) 2Hg<{_;*Y;.8^`6W '@W>d@DhN:@q8>/%ZLb-x s_'!=gNNR@*EguZ7XKZAM"fi0[6=w:hW"X1MWoR~9`:%n=*<=F;,%%\8HYGE|m0}}WC(..v62`XVJ Z? w+tD*j?bRET3<6?%R0:^I i.-V|t=u9BzpA8Ag 9 {b|h]2AU$3 [#$B D)'*=hAyMz!y'RLCc68gK)jDPJjdi y+,+Q'] JNz3P=,'(B&XJ[_G11T@~"rgMYPm~ /s4tOxM;s C& $aFQ mVBhLmH}E vVa*Rl%b]RXW) U::L?i[z,YyV.'gJwkv_Atg\FnK$a}#"?|(h*p<%/TO{|(1h7c)&?7c5;Dmo&0T^QNdC?\Csl&l 0(~ 4VNN/$;9WY{EK8er.l+D;zp)K @. XYos3lo1Fw;,Oqv0W7Am6]xHX| E7O\de >D{F<.n"&Et;|([Zej\}2~u47Lri(x>xj*I|= tXc6&dggIRB]Q8D 9oc/1=8 N8Ma`mc/vS[aO{UO\':o5P?^K}eGxKKf_J5VBEs/}9EA9vD>SWx7>w,8hGovLyir-a9OX*%_xH4,Mq?)@^gu+u} !SM0eAE=gTwaNn*"@ }V ?lkv]]NkXt`f[, T14A rB$"~8J\kQ+MZk"} t`8,N*B}BpO ">>9tB _QOg(l%O3sJ9Fbu<\kF1cL0!P5D9bF$Bv~\&.rf#`_6^EH<KdLgmPbxhb4!3d<+ C:=FE-d?!w'gSpPSWP/&~ /_X 9lHA\x'DS@*#6w*n7Zrgv) CNBSvoA$Nxn Nu+X=oKXO<6(UG\*4 eeWC]GpfwR#U[ R5,(;?C:723 JLA+P7n*DG.t|D |\1qUac mC:H2P'h9%;/ed<0 u&>qv-oQ8z+axu)lC&fm|np~qs_#r6pO,(bN=tZzIyc{``0ccM!EV9B@H<CB>G5M7H`1Q8* s%\ApS(Z0y~)J|C-Lm+PkqzGu0Ir'r%bse}cQoBAkZ;$^EZqOhc$cKli)ID}u{Lr%dWgLom<OSe xNhTTG9sl&UT `=9R}r|Womp.{({|se@VR SzcWc&&#<*9I&9;AYeaQMEZE ~Y0mVX@kuGS/"D/wS<Qv*Y,NH>/8 8!eJ:$HngRs]' O`.aEpr!Jp 3 MTwe_=X}3ATOGeH^d=)!'z931WGA7afpv<K*U+ wKn7yO{#XI)#g (e)7oe&{m /F*jr.gxm!Y_s%= zS6ax1O"HH' (?[wX^(D%F1g5^1}=!*q)$L= UQX2|r S|Jok:5Pd)L)<9{|hRtbn?]` fTMnLRNS ^'}@:0n4b:G:rM$/ivZ&US6u,|{4 gx-Zyv4A`?\$>5~x3C('?U'uC>m-Kowp58(@VAYsF1hy$ M#:iF^9B'{}'z1235Koj' [BLE+}-6#'FX;e'%  ~}[aFviy@506*pOWq/U)t~lyKC#xMYQ\mUnFDUSzMzyLXrpI 5TC0U7wnS\>IY/0tN L^7Yt^31 < jkwn[NoL!mcVzHP Ij-xiHmPy%`$$xXyTplcM`uePixEjwfR1]N[C592 cF b?JZu]LP?*=.KP/CDhMX4qUGZkCl'$9ezZqJmQx:[j;#dqN%9@X}YTnpTPgYrc anACOA A?O#-|~bF}o -"$;9L,rs$7^?f~[rz~zVqwVo>rNX0mW,)hT:5.(`WVy}YGJk\}Kau{]gtt;s[ii|c*&B.?9<9&\^`c|gzZMVsVdtWG*1A*C* 1dP[czHUzrqk@G}XQ|~_S_O[Osw]eunrKrKCKzykiF5XuT  &I 7D&$ r|E+6,,JxaAya;| *~y Nd2[-bce\"4!4'2F%=C>%0w) k|Qt|B^>G^YBaI[3CE@62e&7^tZ0|s6vo 246 X\ITXcftlopkynkgw|}|okt^qN^Lcy MY1CAC#'7#pylw{ms|s]Zite\pho82-PT?hdi}ZFrvntbUz}6A_vY(99&?9J{xFfOkgN~^(Fd]7=Gt52]}fnn!E/<D2UuDlkuIIS~^ ]Kb O f1 3 J uDKeedyBX6!7`|V4 z w2hIf6 |y GP7W"ylW BLy/^ j;^$8rj4<W.6P"9;/ bW6kZ c"vO}P7.r 8JST 5C>a^P6N4OBP\CA!Sv64*G?ZQ{6^`]w]AQ=z)mAEGd)(.HK]|bX&UX#~4QWD0Ast+a'< Xg;Ii6;{WqojVz:KVrny^^ P gT  j += kJem\U*jWDA]j#F`gH./{4uWW=JF{" "y$ { >zp^e 4$>TZYj` KC7C2<c.  b  F=$ )V L>% @Tp59"eDoz<-gvѺSm4 i4)3"V FlA G+]^w i|qY7_AL:f,gKMw9 s{6/l$,XZ zg WVU9kH e \ . wb$p$&QKA<dl 1|* S% 4C&(Jsx hB Q, txh!P1Q@\DAx&' d & &iu`( C t 'Kje?1', 1 JO3, 2dZDH;56s-ZiS H: %2 i u ~`4*ujjN_+1Bz-_$% \ mJ 4G{ N.ShTh,(A"d324 r {W1^K+2 +B  (1Y?zl g]-+kC/]<1c xbl78 ?j=>Db 9 Q:)Th3,/rm*V71 wO@ .,e H ws ]   b ,|!(+$S=Fc ,Rp f v ]vU<Uw?8,%< V Q @k7&;Uq RU "`2 i W~u#+I \rq  H;AT/;vegWq NJ  1 )Q1[h|/$mjaF,%Jo`u\n$DfoV+P C(6D>wb mc{{;9UZ-jW'A@=1^()#9vBA!DZ+{l{9F{:\X^#KYPU[ Z_{TJB MQ8-lPlTL)viHrPl)+TV$AR2LRSpP"P%JU?R(REDfuYzYqvg<~31sUq|Wpm K%!QR4<]+oq<Z>fhJmGf56VKJ?D|?*l!9^~~j~qz8?OWQMm+KLjOLln|M >.]IEB'Pk85\6[o(P(Ac.X2 F) K Ouw9 Bw CiYP> ln) J* gx*1!: !+ 3-]pRQtac;hg~0#tbz"dq FE: RG3,W*nj GptVh2oQ(<(x~7AsOX^o5:ceE OKxsjH3A'` >C} :)$v1Y /GYCWZ6`g!X]BALf%# T@8>98>"k,P f% s& ERxkh: ? N[T  v*;"Fr: q)b+RY v =_sPkP j,RGe81>/D]SHGT\>c[ ibY$,'^|+=4 D 3RGfq7&E ;9NE)jJ l]{!+KSm$*H1};/>  1PP%$,Ek0]ZP/e$b )u]5 lH D-x@\o~X 7 !u BkfF EcA0t5+3Ooi- & 9hn qgH)~l< }Ce&=FlN/to]HR#9abJ  FL  ,kB6-3((1 ? $ d+K+uBrgN q>oNxD 5 a7K S BlwU _?Q< l zMu\ v l d K_*savv{&Hsd?))H.  kCl\Y 0YP9` /8n q %( F$ .9T? Ci!M;H1o 1ts9> K2f 8`w | =UK~z`9Pf EPJdC%ngK{?K0w=_!60B22 1{Z$ OJ8**'O2Nj q~#RL^{r6 Fh;a-rL " % m@" ? hro }5lu<[~,hXTHRqoO;t>Rq\PoVg6  o[8> /HES 0E`pyq 9SqsF D# aK;[qCb7`ePswWWj>Pxs O.$yp^dg- 23<0gh\u3HZll6DCv0rKy~k76B<J5>  5\w>c &{viahT9EdpSldC,Lf~dX-0&(Hd( AK/,b&92invSrM%s0F#K~3&/JY}~1,MRH!dZ! =71B(i hm*AVt}mjG@CS| W9*^r- pqT5Fsme3(@+;S:'&Nu=Rdm*mZ(fN?vR85$P` )ieb{* Vh1+aOb.T.F~h/<UL&b,G\2\qsdhK"V:E-!*rJ"!9MCP? w5N (q 5 u?m m"&0VMyl?}K rm-&9eUYBXO Pa`u@f7g~$  i=fz5U_F_V70PEm 1W i 6hf I8E #L{</4\[{(MN C]@j^P3k|P `Y#P5] `;<,I OStAqk 4 7D' Zc3d |%1aq ZmO >%'|wWGNcAC A  0Pq?D3a[:|5)D D4_!71gqmYP La  2 5eI;0mX_~h(JP&?5C2` jG z$$ejxkL!#T#wf _ :F e <\M|+Bo~(!WW:*0Kv@ x\f5 L GR @_ kD0Vd66\8v5.sD&sEL Jm $l{X- ^/8{)G1l*r-h\r"PD?2d'm6 ,=<@Q?&V|AJq}uKo7:lkkc>y+ #U_1  TJNb($k sf5Vb% x rf7/& $qzYmBAi2k) #  F  GY5 <W 1m:`{@p p(5^ywNms g Y A 'L@9E)&=:epI*  h@B ^1=A_SGN/v8 =  v ' F l1.KM'uNm7s>~bOG~J&. #  !l ?  ^JpVrPFCLG&pU( [e jk^c["MZ.#q@IIbBs1N7EJQS:A ZEw \"y6$/wldOY WGk3}XgQf{ .;% QJU? N%7a\T(Bcw3=-txQKgg\qM 4-{I9=Fyu0H"D_ O)> $S P4 uD[*} )70!Sr"f@sF#l?19`J0[2HUm;X['i*`^H&p )i% |=j.#0Y 3(G]38 n?3ltL|+CXF{h . X +?O+Q)#L[VZ|}?T,lrdwj$SdYlT$ZP~OK^jYf !7M|;DcO<Btlo-gN K.x^x$U[T9-P-\W1?Y w j`eTz {J  ATL$bqEsRzTLnZs78c'N :?F 8Pd&@ VFil^ )OA;:\S^!1-bRuR|rm#BdmfrCI  9M_ 5<  I^X;$VGRm7?K!M|=r t'9X'Yfm $X/zLjqb,n**TA` @_-ZKC$F'/~ [ m< dgHdTK{ >Y.n q<s@:'*03( U@Ml _ i 1o"e l iGTJ f u)t_(- 3D)N Q]$|P6,*O' #2{i  :cbq_ 1"#7h wq0}7 X#z&hie^#?: 1&!* B6cK"XW  :M W"u&.-uyF  $3#b ts#"nmh#aP*:bguJ^^ d fg ,qK 8 3, d\pU$1KLy} zGX %%  XWN(Ry< P,h!hvv.?7Y!a  HPDVyC  y  338Oc;pr2'rW;- >W%R'u6*_$N.iJ2 L 4=X[&Y =< 'rUm8c}_(d9DL|`Urn+ >KH / "h!>5>*-^Hc~c;M@cHJ]3m lgIB 6  I"~{62nf_f`Df g$8YP~_h  O*f)hUg}9i kV,]  8 ze&)\RdrOx:Wqb}3&$r|>cE,zh5yLKZgT_ %rJ0R{2:?0@=Ci2Pwo)%\l{3$u^HjyX~U9U /;jphuYM _vEpF@oS^7 'Wnb['WH z*I^s1*4qq"aSA. U ?l;zEQVVke5)tT'iAC^whW}r\}.]q0C2!.K,jcYqstsW~Gixza_h7ut?FCG/:7"(! }|YbTL\yuk^"hw? v }?8UMaD^ eMQbi[\i?Q Zl8H bQ;!,%T3LgggQs}Q3dp*M rS.RWpmrEUgqpETgYJra$to/JNocbRF.EQ3'B#ZpUuKX T2v!cbXci@eiO~{v9( C> |Frotr[natr~aYgg{U_O3c6y]e;M>|.I_2$zyGOv9ScN^:KFLs`quq,*/Y+I8X5TBcMl;@{^yr`{n{tIVh6ISb BD6uwXGJo+Pue`sYezwt;xwrdy~{15%JD[(WWJUVjgQBvcMy0LGjsPRRf$Z/$9o|Ykmouf=l%s2Lb]wuhzlwvh &(3IS=@aK`zNkawQ{ly{howr:Qe|"?N^3BcC@+OZ3J:hTij{xin'}]{XJk[Z}|Rd08Gb4bsDB?MQvuKnFFb.N?E7!b&DQ (cW$B>2M ?4lyu_|l5%,B_)SVjliy8m) wXAdAf'f*fLw {sS[`U$Y$A*h Rb 5Vhe^JxQ1iGiJQN9?6C"*R+uH -&CY>/SX NwU'u},[` tjPOycV3Q=j3nM}%T!m5U| Ta '  ~6piA{ / .0D__a='Vqj_U ) FB^AxP=zr*=7Z El[=&3i|\% G\Zw0-\Yjhup<  2=[yH qnoStEf| i "   !Ais? Z PY+nQ$OsU  WQ ODoVUxU,ETF' <!v,H Sw1i isq!p.b 1yR? 7az*P@WEo# ) hc-=T|XC EN5J0HjiHuMx ~[AV(r]8t5G!*fh/ 'D n4rb< e -Q>Ld-%OU1af5:3a$xp^p1LY |)%qMSrnX(RV   y  Aniz_CjC=8m?'bj3>Z3 ^ +3"7A4:@?g@Zq&T6? ;-  +[lhZY|k0cI'n*nNA "vYw~h * $E' U<  L#v+i P tAD>XlKq>tvo5'<F8H"od(=]g2/7.6} [t?b_I_ ^/ }RtQEtR[Q[)Qye?Y+ a0b,`8^}fW3z( bwX ;j`4 mo c~Ok6gyB2S<| *-_,XUnr %5I.EA_ { F;Q EK(u$Q&zA  .0G1u5,1&wU?%rl1ddd(G^hm]Iw'|Zn,$XmcO(FH3eI-.AM? v2q|DNPo(m"{ <s1`eP 62ee6u\&Q_%(^@^lg &~mw)ZIL %h.@JL_ x7A&9-|SCN 9%}R^g5Pt]O ^CZ `.zZN(DR@> rvA3Nn)X# Grb; 4Dd0#v0~--2{EmG r ;*'} 7NXb})K-q`hXxfh\qU eDi~{mhrk8@ze`W ? d o *D('2fz) [?)$A&$H!mX*0[J-H9;TH_ BAUcWvaVSolG.mzw5Kr)#* %yu$#$Tz<yrHv +"zE@Yj>gb5}Y vd.K5uc)i8TjF+hqDo 43lbH8k Srib[||N^1J% 7A\) : iAw#j{=3OkM !fo@*y2S @#"UQ G- >Lt3"C'Z%?/&Z`Uc1BK{;2cC>$&Adl+4.00q|z`O#L5P1VF47n+d,3]:iQ,cGEEiixIl4/1Q% /m(SrEZ*8\8 ?_17G N/}C{jtq]a:g.@Vm6Ix}euf<o\ Z&7I1Kw-JA((.- U5yC,iK,oDU$p% E6_p xe4%ug|WJr/(?`M3?K4W*X> !EX4b%=xPJ!j_IP"2YvJTBh^8TYl)0%Y9-f($,NMo%]VW0C,d3y9tfaN=<PZB| 7_r>TL( <":M7~f,#yjF9c+z"WeSa}Z;%46@8nZ!CpfXNCsvW26kWW6*"A70~U_gEWMi} ;Kejs%D{A`jM  nO |#{wB}qTUa\?d3/h>XN)B\N\+,3rfa7dfN_A %Mnjpv/i3("K/n9=T^c`EYZ$HQh>o Xqzb/#[092[!Rk2'toE/@3}]P@z,y_aEP[coh0NYnT:[1[ ECh_utZdp<Uqx^Pz6W8g KeA?Ks/kd4Yhs%M}T/}V+:he2V1,jGlJ &tQ6EU%vL`<llCgw/p[tqkNIat|446I' [CWdtbddFZ WrG'jYF Z:$($80* pLVUC 7b &Jte38'Cw/TL 0E%j1LZ?(R}8dV 8BsAmoP&kLn{a=L'.`QN.u M&-*1Ka7PdC" cxd23|~Vumev7dhkmZrR|?1&`:k,w|BNwYXH):CX[oM=3b.a0.& V9!)6<!&z(_^TyYeEevG|k+@5nkI;7"f+e5n~Ac\{?49J=Fs ET0 q[UM`t,i* }/2(#~4~_nz P0-G2}Of)oU,fh` !sTju3Fr}ii.}Dj3\]f,g$EhKh=M!9KJ{kFFd,$=Zkyd\# A08 >R|=*|w0_ID_Cp&iL :#)ARv2M+,X<;e}Mr?s?sM<9\y8(Y[WSS t YqfV&+3p&.Um2Ij_o4M|(=$vs"lry7d{>c@ /3wx_jvKg gkL1h"Z!TPrm7 mV&L)/ZVTT%{?@90HeCs W D5t2E2C7ZbAP--&3ofALM%w<bX_Vu[r(rw?6Kf7.^ZM^[oxJ|:-0]_fNfJF1=$Clks P{X%!$P1B]N@vrX8VSGV{y_g>>nrgRz}C-BJG`e\`>P9u:Nv` %jx*/3`@exXXP #c(cU6hAj')Zd^'Ov)/@fh22xUJ%J{6yVK 4 +) !lB2WmuEF{oF PO|"z2dJhIAYQ?`x^c`9gzm`Fnph^ekQnQQxvcvf>("J(jVhen\zf`"j:nItqfuoxX?qxz_fk0V)UF}64zNg?j|nuZUzZ8;SKx |  l $nbOC/n;&TNWcv#9H9Wkfs0;Q-26!$nLv ;MbuZC -V {dd%$R.'ZZ!3n}9z la2c2 # y1 .K;r{~fg c42Q`Y[V * m &pf6"gE ]E L,( +7} QR>$/Cf? Q[ <Xa.}rN  5  #d  uA,7H[j SB""f+Fڣ&!-cU+\yP~3OU/U#]%Z50U0F9 N>/HQ "5q SlN w /M.H o |j! ]W8 so+E[-&%;z 2vSX;UX  P~Te 8f9  = q T_<8 n Fh 4iNh6ujKiSJ:O^ $ T _ H &It0i#K EX7^vR%_ #&6DnN|_>7g{AB$rRTB'Q{U1Ye- T<,tI6]EL:}*&8m$ubo17wg6 _XXtiD?2LJf#4|e7 myAd8>K}Ip@9AY^ySk,@~F%^PRM!Wn?)'1)t~nFg#'OX2Tbu7UDc_iKf;t`/N_[l\ jjyE?ev<<~Z@zYJ>Pv;Ik^D=qg@\! f#6gXz7e .k1y0PHUYI)17RJ)DI/T] 4b'L/Kri}d ;Uy\+0^4khGwhy #PEY-]p6zm0){ =0C/eDpGsav[J"nQFf]e~0{J}+3W}( ,jGfqDQ> q 0,~ FxONbno~s$qJP%>P%^?(HN;P y>h:Q bEVqj}(hzKz!fEHH#b>hQ}+Hj;Iej,fx,MSY8=d0JbwXvMxuR+S}c0R'yt|vfEtVF P!)t}qD4)kjSv.*QFzljt%VRpkmh^kO(Fv|zPSNh"NTfD 'IE 7/+e<k5^JXyoDD6oIhJtWy$HD. -Q/[{mZ2X:N=N -KL4u}t`8?se}L~(jkZ )[W1go|Py\!B naw+}vy|qitL1%0p0TvTDAD!R9_&&$n<A?<Kqaw8TMCEHOa YZ#6'eQ7c% fA 1Of>dK38k{>FWk\O%Wm7H=tR$+X`Y| &5vFJrS;rh,UzZd<=&~4n_g(xY%+EV)&E :f%a,uBj7~>7o4 Ix.!45B M : r^v m}l>qiq$9(cK!U>w?}5 PZMZ_( \=qhoLN ^N aJvX;&m)eHcZ_CNmf)@L OHdv=5z g n nS?5E bT9?aJ4$U7VkGdzr.mW>/n%#by]gfAAuFAWK#^j6oH!Xu<IxwxYRSEIG[xoFqC;xM B= / y 82h`  6 $G MYo\  h?=15 3tUq~X:[  ~ i2 q& r x7[& .o LrA 2s _(K'UT+9 ;  Y# n pdcqT0 cF YKw+&sn6 6L@|=[`Iol&؉ +Wa xsg> x}  S`x Z SS @Ym486R 8p9 rI1( 3 al(; zY FX;"a0]1& NpF+^3U P> yq#- 8 9 j H9 ^V$O 0B ([ :VDa1S t a]  Lo" 6 g " ya#oz}J<t0 h? + yZ^,. ET 9 n>fWbdw/ f'@0#0} o  r(.6mYt8SPP _ 5Tg>V S< ! j}a+7 e x #Pse  ." 26dJ|) < d nF} *?EHj>/JH4{Yw\NE|AJ?  )B:R> "f"m  g y")- R  ` l p6Ox<M~ 8A=//"a7DY"cG%b@Df}+ H . M"-a6bl2 ^F8Ayli.3C

L1]Ä0j&kQQ4ۨY>9I=!iJɄdIΞeIX){νN¾=?.fENEF5QjT:ϱjWDL"z\ ASg UJ5̳CLHIߋr\A23TsIqCҍ84g8_sڰ%+kus +D:;k#5rI꺮nv]WvB)TsL*DNX,V<}`ݬ98L5yյ+۷Vtvg,kOV+|-@h!sB<W M絵1).&cHL-eNSǺ1I0_ KN׾|cվų{w,Fw/ɵ,ӊ s-*ɹVҕpIRҵ%KE07Hkیwt+ks-+C&i'Ek1Vtf G/O57鷆 #nZB9ɵ\7TK]Cc$&˗M~ylMɩfN7&\r V.BҴ@K #w"4˽蜺Ե_V!BωVooDnA% >-n,Fe ߍm)ndl#p@Ǯ"dkS\;7WX3X׍eT7bKJ; [n092XsyL!oc [7ڝvϑLLg1Vuu0fЇ\ƚaXfGv˘oF֖+ %E/n2IzW>D/bYw)Fg_YIlLAiT KqMŒ yRw4uڃ_ZcL׀^1S(mcs+ ⻑T ;ܝZ]ҵimmȟB86YuO*xGT]G ^n$K/eeT&59ʤښjvU}*X/M(ܺ:v5+SpF9p)0 U{|7FG?~5{$֗߃Jw㹧uB4;tC7\fxn-jWЫO^Da|M BxԿ;u x@}SyǙTըF5QjTըF5QjTըF5QjTըF5QjTըF5QjTըF5QjTըF5QjTըF5QjTըF5QjTըF5QjTըF5QjTըF5QjTըF5QjTըF5QjTըF5QjTըF5QjTըF54Z,IENDB`PKrgP styles.xml[_o6Tɲ6)- $kAK]I(ʎK}$7CeKumv$ ə!g$>K %;\Yv'wEʫlIhh$V--E=_hڬ`D3ui=:[<#y`2Ը!)NjK&dCߝnUAGWJIϑG:nQYdk&ds͹x6-&"8G*wmr!VK{~N3 8 a% 2nD5_ RYW@B2#,p_z:{sIf2aiPކ$Ib Ky7{ :[)TzŔkVkb.< ?6Xe~M-,;d,RJc7?~L0,~-yIMݼ3FE1MO! -)Ԁ W]J.φPx1{9BWJ<=?#B3OOAtJhjg *.!ASAtGuk zXTϟ7jT!TA> !wEFv),crQH[[JMegr-xZ{T{C&+x:wk1YWS h\لؘ嶵zuQ tD h_>_k Ep٣*:=j= 4[&ގѼA>iv1_O_騽=QʞE"2,nnKAc$˲ ׻7 .&mcuѧ'&kJ◾rFsNctZ`^$UHv,y/YO߉Is()+zX|{w*mMJ^LX}9{ۮ/ ֑gBc {@fTWvMw:FG-` .vλ8HU<\\jE⃅?hR*ܵRR8Zkܭ;Gw?a|TG0*._ J,bzkrA@qUuPKZoF6PKrgPMETA-INF/manifest.xmlSKj0F{KmVEɢP3 >}m'.%Cv3}ݡw:CLaU@ڷH]þ_;7; ,Q +W $ ɬ@ew_NLn!`ˮC?N@jUD8 ~S-Pr`uP0PТ%@T$H : 'ԉ5:d#xMU rM/֞ո v%NN[d (zx*$\@Tb$_,l, /6o0x^l\=zɆӌ5[aE7nxf:ݮСCÿy%' k>0uI-'܎R'k@ѣGm+Տ-[hϼҗ3>>ڎQ(K5n]28egΜYjU_ԄqUMh4ܬfݺDEEEߎVU  Jqʺ_yС1Zܵ\w7[]F˯fi-&&1ik/7[[ۈ^~~֬Y>$gϞ]r%{J[ޞ7Z僬ǧ ><(;9n`X aa]"8)n>88+b6-׬kt"'GVV[L^l}RR[͐olH7Z꫈!H(!᝾1“0 upe6n.ۋV5͙3GZ^QdCڱHRe귻ȉofB9\*;A݊BVV~ 9!8 |4J!#O90ܹJX4o@-b>="%@<4)w'z۾jfpxw(T`߆DWUL=J5I{[gy(0:whKs~tf$l0+==3fe 紏AX/"WNu{l63d5M昛['(aͮd5-?wZl-&`jjrMv2Gn擼ȉ[P81-B1"ivJoֱA}446SRYڽ{7}܅>w.{8Nr(0t'%Bp,,,^zm!tO9--yǏ4>w[xoF:b}yիԞ}3@7ZC77ds֭ds߾}"GFd𛩂v^zuƹv{* ۴kO6maw.;~H }0O7“!ZY{ٚem=PhD]u.NUb\ti/Ჵ0]J6?OplO8볓&}y{6llcPݲ1***WaءFZTO+<\r=,U ;xMqm~odžͫBeF2<'MO<JJ999]ii;pe8a`¾=t]j}N6 ]>'! M?NBt+'~ G4 %=Ll,%xrz}iSĊo٤jjj_.==]GG34mmm~Ѿ v}k#t\{{{63l !uUG2<{0hq#~wzDҊ^FF6dCCa8b@vqiݱcվ0#%;wյOZX,S+;!ɾr'Nn1&!8ۓSTCmQNo\\\Z9]4?P ՆE% ~tm 1Tެ0Y-KsvL* Cbka/s 8)̵kjj6B[23@9K]G@8^EILJi:[ ㌦E&M~@iu[bPlpyVÉX>pC"ِl5o߾vy Fs}m{lN׃̙ӐuoHBv ؼ`lnPl[k/^322^QB(^w,)skwܙދSKLjt9zzb׋/$ ?:! -?,Hck!`/Fm%~XkFxwU.:4+םr0)~][ kA6=~\Jlφ Z3f &Ki2'Y ک2_dчD]8qgz6|+p홓4xe~|ٙ Na;?>~P0!(Q7͙qO6Dih vt5 X3hflC4ok,zS2ދbD59U|\x=thK^ o\e `]HYnI -p|tb׈g 444tsêz3?~tI6C佼ry H`YS{]y,GyH m6*Ck}{4ϐ Cztn+ZZӜmC0!w@MTZi;,4.;gU۠cK&b.l Q&--P9bS@dv{[ePF&@ -}0z&٘}j  ߶ 땞xJ÷#a)J$_jͅ3V!mRvj+e"şIԼ]1Of[S =:֨84xh+f7h-F3)"d & =ji}Cn|tx1`e5Tgx'՞ڟw5~.{SKɅ\>2wa]Fg搲oݩ5QdVr}): Kr0Ƞ xckPARFS:is%׃JHB |_Hc (!Hpu'%#Y =eJV"ɮ4 Btq!LzD o`.-BzjC>BmL>ٖ0+\AnDI?.=#8](T޼Z.xl]lnnb?5 ^3 =5!3iVڡm[LnWNnL"Ν+%u[=c <Pڒ'GNHU}(((Xc `^E"{nY,Z֢3d2{ݥ5Pd3fff}2))Y YgaF14?eEXŮ@ |/_9_.@Qۤi;N`uw>nk>+"eq_eyW\ygJ8 ;sM(XԩS=uC2iGw#-}%* ݖ{f L-R.&L?m?ڻ.E?ܴeh 5Ia^v;vlyyy_0#;Ƞ5RgΜU$`Ozx|x01сr (^bZJ~>=ylookbR(i8`{723eʔ]ZCB*gu0N2{5}?9믽_M1~wThkYYقf==,--">HGGӧOGxhŷ4^}` FV -;~6',NG;2a^:]k8] V]jii}w.VntgC@^y842WO/J7$;ikl-?~=+~uǀM}f@>Qm,z6FXN 3=ӱVJo߿^wȱ#,Ask0hitAVO]ӗR֯_nݺ/M'4{,BRdzKӨE@D|ch>A<y; j@P,+4S w.s)yxx2_s;̏[@it3Nt_[Ќ4ѧȔN%R}xsE`>;Dv)~k&pj$BFp5^3|Tl$*?Ҽ> 8M.u*Y`ܥ]*ӹc KFUMu>V̙s'#WڧXjZ֞?G(""fZSn-x+l6Ew}a厇ñ[RˤGJrȿ,ttN;5&Lyf K!w)>aHNG8@mS[ׯgNOD<Б]yb!p|!頣<"t -`ѐs\x^~ mS]|Ct,Bw>pL6֗mzERIT09%?սGtĉ(ːŲx4̜?3:zדEzS\.h`[kC_r*$W'//l8QxYtwD K%Zps]3yy]QӑV@.+[[ eLj'hK'r^QsC Y*ϳNJ+r?vmIWEtۯ^׳Yvk >;cA\w׿. tҽZxbg7QWHh]nO"07{;=n̆eO7ΰ|*PlEGh*/C)PCByW,?+bq~|zi:JFҒ3p7ol{0l}<4God?%K#CTxRnK1Gak +ߴI'{ut CFYA[!S37}0BaG~G l F_pZ xf F$@t# Roɓ's-ovr^6&_6`'5`MaUo 3-˾8i{Ͽ6l:ozLO$Ŧͩç}έR[F Zϰӧ6yMDGB_)q^XDK2߿Otzv !{I֭[:; : ~Z(*k;IEN*%xƉ^XI"ugA:=)do r0}nj ?p> ID5JI0Y{rHkkXM}A$i.9 :DzjPP]----q!Y;?H<{xZ.$+҅ peGOt)XE9݁x^Xʕ+t?hd[1+^ϒ?$&huX d޽{afz#O^UUi(I1r:Snfn ,,֖qT_X'puFߺdCs -hсǿ'#q /kx{{~0]X6LvڲØO} T2i|i9ò^~=..u> ggt=z_ toIKϨМ1 ^6E}C~'.]iku>DvN=jGč^V4o=~'X>R,#S;σeGb=PWV/**ڇދ&uJe(窼1c$_V>cKFFL]tt¤N}} ) ̰ࢎH^@twwSNfG>|8m4Dt11]zb9Go%H!DB'!${0Iw&s549ýLV#~6CU=s(6ǎh5`6,,Y`#BO/8-OX +v+* |' :DM["tD"G6ֽ`C ;ߴ܇+Jlp]dҷt>=TjO!g![lP( Χt#]2k]a3-D1gN(xB$i)x]C͑}*)~O1 =Q)dAW*9S^u=~qqND 0BBB̗NP~S"PzZ|Q*d2N< }1񠻫G.ʖeϖwmv`Dbx"i8ۦ@WC7 2DXA>,fuرo޼ٷof;zɖs=[lgNETe50u?H59=YMgo{D7|$D0`@III3jF= ~6/*mg'-Ֆ{nm*S!>\ (*_q@g!7 @}ǁaw}.{...۶mCV&ї/_~…^.Z."Q%]OIth p!z쫿 @t>wL*mX1\%5Hvm?HwnZ. .7stw;g]Bu捻^Q Z/Q2ERLC ;SjC{Nqq*MSODlxxr=^(Teݻj fӤxb2KKC<j"ݶ[W|\O_Z?/}ݸݿ@3 Թ״Z6+>,BLqLl(r &KV1GɝG~F8@;n:OM-K_"Zz_,,[Ҕ]^i@\RSţRR$'[*h(٩ PT~ KFū̐{d>F3G?a<2Q ZsϪc)r4Ž.x5Zy/.OӍ?w(Eߌ0g9o{5ymOll~#L#i%WQuOW~0e 1* m_4bbS&+8<Y;cSo3, $}TQ옣oiyLMgSrg\pg`Om3vIG?V (g 0sJxm_w!7-N= 8`p~nk5S? XT$l8cTا[6N&A~#>Ek:FGW$-Ԣ@f0 ɷ!q.D$47-3XKKK>JKKmmmoܸ(o>111 R[[{I$(qA///$@uu6mp __a"ZBA!F?i>īG%3q }A%mvڲi' Nqku+ao㻫3t]M6^9+@\JnsWϲ8d߰|x.8CCrveϐBHԀyaHBHZ`8!ql5 ˸8;Kjȍ4 Ad"ƀ{%7xo̙o7 yZ^/πFiX,9?9^w85|ؽ9***.A=rQcj[ֆ&L+:FYvly8O5MT(`N(D{LWN b8U+((]'j[ktPUUldLGa G0gff޹ӇtR$v3lE?hf˗/s sl߾Qwm 0q wx? yn5cj>;~Dmll\bUPQQ1`0'=@*gU!)_tQ_.Ƿɓ''O\TԲL$%%կbOA'+XZZE?ӧO89g̘j9 VU"y}lsp uŋ) BC?0Iϖʣ+t^kёũ߂Y{|fSK5bFzldojzׯ_fWaS93\*~| TUU? f{IU`ϗD\hQ{Cg+„׈a5o6!kL6?W/Y KGΓ"ϯ6 ^;MOVmsʾʹ;D?IHZi3}ިg~򥄄x#q25M0 r9ׯG?p*GGG Y-b֭wxyOd=5Q@2 3;*O}e2µr#1ywp-C|tIJH!(F iP.޼T|ԩk ܀On_$rBB~{ @z5xqqJ==K}gQ DNr&cS'x ZO2fh&1I)>Ji1 2mޯwBǍkĿAvrpDH?A!`"u=ݢ`;:N4'AS~! [_|MWdT3}ï5;x0@܆Y:]̻ KLvp|/mjaXDq$/M7a QDyHX3WD }CSe/1qJwB5WxrHeT HIIE#Ĉ /y$ax0[SSu0ςp'&nC1xؒeo݋& r}I풆iwY=I^Ocz>s…1cƔ0 4Nd})S2G=lmmǎ˼pfllL[H2]4Mvs±U,ĶgCˎM` 4g֞!Y"ZW ܁_g^CJVYUUuΝe˖]O1&&Q(Ks\xbֱT8֭[w)!HMh(#NiK9;; p*3O;KuUo*\'S?bRS 0N=g< hl㈐UV!n3EpV9[Cg-ņTP޷oEHKK3 2b]gf] %˞!DDh|uZC^W7ה <,e89>ߪo(uHd/[3+p|ۀN#B2*;f]SH/BBj4CeSfY!***YYY`R7&4ة9.=S'0j7@º'NPRR?~sP ҌŹ~%uVӰs۷oA` ìܡ-=\^^Sı -gpD Zu.$02?uI]]/ҹgUp|c @"q.$tibP4w!J$^ooE114{|{\g߁y3`yu^<-iHE`K8\KFE)o"B:2vv+yDjD-]aVinjoˀfE?69cK]QKO@@Ih $$bM~{ &:NFg4M> 395=}1潷ot1Ұ={%"5ht߿N,{Wsi/R!)+ G>r%=췒ʳ7DDD<^UM@ +yы$AR~x5 =D".ؕ+W0b8s指:o޼7otpb"B6/.nx.h3sO6$,&OA/]䄸:_p?x1uWL!0QR}AK MҧMrEwWRR:CgY4XEˡ-,"m4}`0h%ΩVe{GXYꝰxD𤎮54ކC?Q9[|_544˘#BDBm?( JE1Ի C(3Җ\zDȠ ,vkM,GIZ~Xt*s -;GpNV!,a SL~î5c9\R@jhnJsЂB+3Эj|%"Hݟ[YzF̞ 5G"4wjn݂ :ޅFd6>XRPrɫa J0Gjv 9#(Do[BYz|-Iv7>t+(u9vjQ􋳙JCqG}5[x=N<@R23(vgk驗ATabUWOE@-_-|8<֭[!NC[ޱhi 1/,;M}=}!9Rz߸qCKK 7c̝={_w"kVZhV$=2nnaҥ̖@Yxj%?NR {gD۩$*"7'_0"H k8jܗ#G;RMcwJΥQ>'f)T\[RRSz]V)Oow4c/ "/\gҖG|FWߡC+r<#5?@Б3ۃ؎]юsr8#D^LiD5÷_6}EC\xqJMe܁H-xWT!nD#1-F ~$M5 ,/gZiJ6̆"_/>dB; znݝ"3xb}Z%ҷhn*xZe_·!uXv8ujFz7C0c;pơyܣc,X7yǸwy^m9%zԚw0vκ<' A3G/;}}1VbĽ>| ,VYOx'Fixƥ>]x@Su)Dau`d7H))-F/=?&++csgA/ǣŖP.O|sK{YCJSO237&B vzqE\xe:+vc`gz2}Å;YSE-qM3ysvn;! Iw懲ϯX3䫤.9v!EQ~Fqe+saQɉ- UmZݑ6j2qghvA=ADiD|ܶ^;cj %?M)~OpV\\PrXݿWuD)@/T:󚒪?A)QEI ^:sO6 uKv;tЁV|biYƮ~E[|\xQITɋ#juG[ؽ\/fj1wL#i"#e{(~*kytEK?_RAb@ ,ūW'/ 6͕xQ/ IT|tьO#?LT}B6ϊm/>˳*aB$@'ɓ`KI(;Mڄ`\:%=KF k}XWBWE:˕Ĺ)GوN ,TZS ZV*7:<ϟsѤ/w2E*-(`Y j02>gqg-4UD:m>SO GCq3]*BPnD}ʇjm^Ʒ%^@ARqLN,KG1Q jt" qGd9qG=-,' lˠߴ^O@g+2x&߀Ro)5b!_FVs|SBvvYWP()NDk[T:0zP.'\;G;\v7,,%8L}=\vYN(\29@w#~oQKp.sşRfr2Y=`ߝkLeBg/C.HoKH2n7| sejq 'Vb? t~lepٽvv*^q7&'A4z"sBk@M qjγG*WsYw ; E~ t2c 9ZXx>.ȗNS4^oHO=ZtgF`ojAq*.Qo|Na3E$o@׺ 11QEE/++KLLQV^^xĈ-8JJJÇOKKT3m]MJN {N AuDQ)uFc?HFm)IxGCZ7])BӶd0H3o0 8{lRRR?c9qǷM gϞ >}q:SQ3f8x("0*t`vo=u,6-n0JB]J2ĢTrWa.N~6pbpzCC7 ܹs;r4X?{_655w:RW1###`?;ZYN-}YrIF;,*[li??iniB/Oat'6|m֗Ҷ w]DpYlq"""9;M^>=0iچBQQQ իkkka^q\ĬY_=֭*_rGkkLURnhherv==gYȢwﰴ>`o߾AsMt])))\v6'L4DGqϬ^+nr,&VEe!&˃z]3f|Xʽfܹ3gSbV)$x)3@;;;;Mqk9"/\6Q n\ ]~P:wqhrZGG/bn @w7ng1 j\IW:_~~~lC CVYwGY^P6=kda:>AQ"/ta WljqXV>]v`b KNd/:!e1Qrla=?g&lw=#“'O;Y ߿gۙ&QQQ <<<,j ??[+8{lw]2Y;6y|5 pjz ۞Y`V7FÉէLn~Ir(JO%lnn9cZ=annnPP]޼yzjqq~tR*͉'ƕ+WёB`Htpp{… _vZ0^Pf(2ANjٻ} g)Ռi"FQy׈4+8A0gu5ZCo;wO كgO: `\pJz.[#q ̱tXYŬL"e&eTZ-H#+*3q鴠\֫~(2p_)30M[_;Ne 3hOljK]~ep/A-ՊPEwՊoC_QRKY%4p@RjxMkDJaĈ؆Ϟ=yU"͉T x뼼!`ͼN]e5"86#UC^4iӧO99<]tQu*-s/N;766n` JfbYjj^N,X0nحl^Bxi]B_j5*$޴͢k%&nC^W @]K;`:c-D!Rߟ HE0V.*f\|1U4 ZYZ_ߘu oN x;7mx/t!Z` *CP={{.3X{Bm V.]Gh ._t+MCxƄr=8nʕۻFGIz/_DT9vlt$F?IIq@JO>}@F-j7d3㓓5559Cٙ3g:nYQ1hnx1#V-z+6PEO/#""_ADD ϳ ^'eT%ܬ;_>E{.G{ I=..nĉs6lc[KC!k`Q93F%da%MP~4Gv97; 2$:bFٗו#ɔ!v_v?b|nV0Θ7oN3귋4{&46}$NU+tL jd0#o7u vػw/8 Ūv.!|Ҟ}}ƌYYY{.,dS^HHP:"\i̋E$ ,w<є7|/sq+,F F> m#v LX,ŋ SR? G߿:t(Èahhb$lm^aeZz'dh30>3F!eb(7p_%99mmm&mk9cbbd%%_~ ^  WQQ״Çw?(a]?zAR(h0}%O$QhiˮWBiͱ ]=7}`[u- |@Szz_uѣGIh;n܁lSq'&&Μ9ѣ7o? <== X+$ҪUV\6JJJJ=c;#ٵ}XzݦLK2X$>'5a[OBAn)ϒ+=ލݻ5ydSSӭ[- KЎ] K&^X~; a>Db(Y /4uAǍnm5g.2P*W Z55߈-"##òɓ'AAAQQQVVVi,=p)S:>!']'Lkj`@ +W o?1/n0x9w]ށ.)abGnEN >35H#iIF:ueܹt7$J[tù´bŊ~NUÜx*BV@c?w 0`D4A,mz, o| VPuZ^r9-r:RpPRFlXE? ֶ27bnkD~pٽFQLmo@hAE1Ԥ5Gϟcz$*rm{GsmL-nRoup}TXD+HQBJKO?, RK [УtcM@SIAW]եI@' :R92Sq&7Gwڷ (0ٱE*q1+h$F:RkxҒ1u߱3-[RR¨ޱrފA#}:ES"eee/ddAO>iӦTgT5=z4::#,,,$$}nfUҥ[nqRFd7Ɗ SM H% r,?+wx[3 IOhse5 zW]v))) LO;88ŋjnnnbbY-[̟?Š 6_`LLR+W׏~/f3awCJDKf tMGx @766RUUUvv+Mϝ @=P(phR&V[[-ȳϟ:f<(ҕKR?* T934J}I4_{i {cw1jb{%!IWխ46 44Ğ|sdz$6u 1 N,K: 6/uH+T<9Vت,藵$nD%<D3P?qS8ٸFI,XA̱qƖo'bN>aÇh@*wZȑ#`5 | Gwz{xxлwsmŋR#<<|߾}-V _s#Z}ݛ9s&{DD2~]jjj]^J0R `4#0O)]s /_͛l?X6϶*ϟ9gϞ:RȒ#Fo7,f+F4mYX8 D6ӄ _III)PXt]SwX[[3wt6T~KIPDe ,b1cG*3iwަz;Ư[=iͅQ@O ;w;3ivtq Z{nnn 3ڶ:##mgRໝzx~bSٷvǚ?^9Vyg!P@Gz>}0=5nyyy9׭Μ-GB/Q#N2,?0~i&𿳳s\\yxx[ӧ5 007ׯ_wuuJ-'_?"aoi; c,iYoz@m4}ȑ#Z;*^Qdzxqb_< ށ|WN]u.zʦf^MLL?N=+IGG͠4{'VVy>:pSVjn'$B$/:v/FES?\'ywTi6v=_;,HӇL=clfِ7;񾘺#_-nG*3csjjj'p"kxEn- z۞G@[y[KC&BPhZ4!1tϲ_3ꥫ{DDDX<\1wf#&}Nn;x xuoZGܖ,RQ,m11mꊰ+D2)g:Cc߄u($GJ( bI髏9 &F9 ̛7D%mo*Ԧ/VYRvq7a+}&뢽D"IIIKKK ;$̼ 9LϐEwD!r_p8۳fB߾}STZ04h3%%ESSOwiP'bwk¤ʧ/n9cZ.>NII D Tٝ$z||_b+ wupzeSUUh 8[#/:uD]LA*u6\C]zAG  agee1Cy*_{X[`wJy] &w޽_'4 Sd ##4wVϜ5 KX_|+(AIf4!g9zǏYL3f{mqkn@h!h1r(2s?W,[|||.]pʕN;wY&y,Ďd2#'{=\Ԫ#b+0lҢUX:u*&&̌5xEJL*E0[c ph#? DPPC%%A/^ֈY/}6aڈ ~u"h۠~@E! W {]a.g4iRU,|,d:v'̨Fa4yɓOOԖв@(iSddd?aW9傒EwՊoC_v^@,쯫xvwӡ%FsYFj!b %3'>-M_0uѭw@Ќ+n=;4, ӯRIϤ-3/'P2 ЄV*',7և_[/יl|Myza ;&LEB LbZzK>u>r" eҌ2Zu bNt؝K Dn<0S9yaD+/իWst;E;?N܎5 t7_ vXݳpNϙe-4Ҍ$ ֗״X%q>!Ǐw#.ǎV}Wǧ3DW{?|x]~3voq\\>]?$8ǧO;zSSIBBB}қTTwc&82;;;}~Hp##8kg0pN`p:ixY=Uؿ=&K.zeg,l*mCׯ_?`ĶS_BJJJ{PpVwKJJٳwYdoo> u|||pp .\%8؛QQQ݅\ 鋊gܮsn9xopKvޯUci .NV .w. | .+@9a>|-(Ndy#{7!n]l/f. o}cjirN" /NmU_;{ieu$0]kOKVvzxn8s)gƫ-ےW/8yTs85v*S-2ʞ=w^-etY>Z1JR #.ܼd`kAJܦe/ k~*#ju|kFO>Cẉ&ޱ&sA\o??2l..pǃ:Ԋ ˋw~ESZG.ןst{gNd3tKL>Лz(Wis'٥ot^zㅀs.=i]{fG˜e":v,}nf$· { ߝaz J A7Ig'QbDđs|3.IcbMLP$2,AilFFc|fHaNu{}0#VXnaW7e:^x:tW'ѪfL]7T屈ZƬC užڬz"(w% -̲U첄?v5"$@+jӲWC_$6F`ᕥc H#Y!JdKff!蠩V QI\N0hN:6-ko39NgGb*3vx&V㬑ݫǘs;\p\\pWT!$.8ה!;npr咁#Aw.bQ6_Z)%A7\p.!s;\pſ | .ԊG.oI.پnO}~#O~G[mq"EZZΦQ|0<﷎ћa>;Lr"~9MmMmS;NZvr˦+Q+ 8w7[~̱M< V>xR~%հꏲXJ/Iz~1eը7#YIqZS+ HiNG[B )637,',֙=`6Ֆ[Ԙ4P ,7[d߫5\W iTvn-?38(~ޣ%Ĕ<ɂl)([(L:k;*Zw|mH){ ubƬU?`0555YYY.#vuuu^Ȩ0`СCǏÝe455EEEeff:a^^np?(ɥ9 JUSxDtL,'\REU|2DsP g=|8C^Mxiɑ\ 2_}2l9¬׈T+Z$6~*T h%Sj]=| v#]-u7ó|qqI|nݺ 0VUU9sߟ˔!88xժUSΝm6kkk߿߿Ç%$$n޼iffƥ؟{f̘=m4ɻw x,GBXzNb&s2Ʃ+Ԇ_>'5ἡXI-ϋލbnM1]1ILL 8Ǐ\P("""K,!L֙vl9: (5~AiJL6w Q0jr jm80k,))2. |GmXw1oS~5@|bL\KDU6CILyG+SN.5@?\ |Ta\cqzJJ*"5x@avzbtt4W"޿?|p6jw [Z]1}# m$ Gxx} ([%vgAEg.d7inʮ(IJJ+Vxs&%!ћHuϟ?ϲt“Dې%Z;G1##Ғ"v^Mjj\@ 9;;҂L&3仉IǤ B9LL 9rrrY;(dƊ{֛K~vÎ:>i#ˡw bc>7o޼rJf یGoY,u{`Ur6ؕ16lSEL8QAAajJJJVVV\b9Eoa߾}"""UUU-3-nn?fv>{lU"QQц+WwafQ }!FffԌ3߿߲k%%%\2r;[lpϟ?7;x`VcѱL0̍7͛ו9iӦӧOqiG(++۹s'xANNN]91__H.򝳡F$+** 455=<<苋0pB]]ڵktkS4766p֭:::m:K۷os?4: RfԨQ}bbba.zqƯ^/_Ǹ򝳑t#Gr ==z S*KjE NOoV;ػdA9r$gܨz,Xp=@)))N!CWRF2V2"Y[[4,{[riGK@@@ff&Ȟ_`(((zj0aҐ+9@s400HOuU_w 0 8i)|r r6`ĉ鍍-,Lm%K鬡odaaᒒ???.%{}}%[I.0DiiҐ ~+1eGxVoӀ ޫ#Q3W/ly>(á<.\y/^455׀g{J^) ߿Ceoׯ_aaaՀ>qEFeaÇ%%%D"QXX(递@grݝK?"u( ~mQQx/`0  <5&0g zo|nhq}K {SZ(E ]0Q. e^d`R{|Ijh}z7 J+)Vzl2m --'OrаǁဤuV;?~`9zh*zŋ׬Y8nv~%߁UqK vH]? CҎ8>wρC 귲FPrz(O,F}BݽG'Є3.ϛh~#&~#auz*t7>dDž;G@+*LJϟ!!!! .r'2dو1iFFF@r#eeecǎe#h&M:ϟ?(Ew t9Hu=iJJږ+' vPqbȀSaʞO<`mzsǤ|Gd36k콫WfJ:|R/w!f+ JjqDca s[;_ Hg:egN=ͼk\ǍLb% ^V &\_!)Pz>/E\"3/U*!d "IPf̘ŋV n[}YK,M;c{Ş={tuuYÁٵWMLL^;PyD.'PWpp{&Ʀϝ˹w]bbb,M1آsl<(7lxaD?s6WڱcϹ!NK. o_Ͳe<<<ZbᢻPTT%%%v:EIII[u"쌺@Vq~-,,2d/F^ 㾗?*ߍY~ii{>sP98+@ptt#qh].\ZQKH~B`P6=55֖˱Knݺe믦p.1;ɓ'sMsʘ5:A1 Xo@SSs„ ÇoY<;PiJ)$1hV$9v TիWs]hz ?>x/pEŸ#=ryb6 Tҙk囹JK|¶ɹaK̖<v= .=QUjTUUWZŭĕ 2  y}u"Wꀲʂ7nTUUa HqΝ;wĈD"gWY\@4fQ'Lv=F{9o}/0byd$8}.5zj k5}=5bS7{D]sQQӧOMLL:n)SɁȭʕi $ν{[KJJR( kjjYVV&""wޔ.BLL@VTT2d MPRRFT(11D"XW]=XvD]y! z*CX^ )H`*V< #T[@wYVVvذa<<6mx/,|ll,'OL8VVV Th=8=77حd\އ̨Qy}{mddd2g ׯ_c;`7nt,aE 1cΞ=ң Hw*TdIv VPj phb1d G6~>;tV䉺;wڵ+ ̟kcB}ܹ &ٳg֭]7EUo<&zcGZ'Om$)_VkR[UWWmF'''khhpHP7|!3g>9;!6ʁ~38jПMGt1;~k0oNqz< F?~<'xY7k͂Y g 7'2 ^ӾN^+  `Hࢷ}wVWWf`NanQn(m͇PV]{azn>i,555긵)h""Ao`llvRRRo(Ě~Gn~WT.%GWkt0O8xyw;uC ok&22r֬Y \Ymiim*G/2/j^ObvrjQ7n<ӭ_!PU@%:Ҧ.{YVjBm+(Ϙ09sHK@l^,cxJI3r4!~!t@_~eee]~5@a[Y ||ٳgEEE~~~:1|||ԲmfX̦ǎ5;XK6&=I[=c4u'w瀟Ң~XW?ߝ:%FeBc"m&[ϜDS;2=N&}v-ՐpdϖB6 ͛v̙3GIIԓ+9T^^.P׶vq^8ĀI+UfA]Vɾ eeeqļyZ-v̚5+66̫dN^mq"E؂Fi*uWNOM.-j;6"5ZrXw5ёer"e_wF+MWVpnc%P͝YRZ)f%հꏲXzK%֗$ jƛ2SSSyyyNځHt+5^WWammݕΜ9qȑuqiG`0msEHH8ݻ\%<̼9rbn_mEmHD@Dak[5!yA#-Sf.8H' 2eݭWZGM&ؕ]V6i9RC]C1kUdVuuuT\\}} 6MUUՉ'r WWJ.Sy\",,L& mR9>>~߾}>y&<}8Osycc#P̽Y6{=AAWrK?PLTBefYul/NFDb&_YT95F}'kV|sr#?xTjg9*ʶL\\7.\i&=00ёˑ~@vȔC28{xѣ œ9sԀ *))!LdffT^Xd.|69 MMjyFVQ#ѫ2?gTR$( 닙M 姝H7Gj:Y`?.ܷlra4tÇˋ100&3X8jԨ2v@}g#"\o߾ixw@??gd5G`(AA̬pQ ;p䘁`.XNW\ZF-ԾeZjigxV= '+"i߾}ܧaq, W}ݍO/ eiqw \.w2|ͨ^? => iHLLbZ~=} 68qǏly5ӦMkjjJOO߿K~bk-]bWj:*N)Bo͵l՝ƻR#w6Cx7byurNNNҴTL*"mP?OY:XI ]߿MRRˠӧOdi]h6'd Jm\"{1íhhOtY,v/] MNC0o.S_VB/W]N) qǿE+]N%:ν tTux{qhҥS-ܚW@Doi̙O ?P>>111Lx]*'_b40W?i}G8q"c{'x5\"%&W<~ZTTt OwO xUed:cU u֬Y3ϥ;N۷o[ZZ4]Қ k} 7o!{ϟ?oߥWjoo_/&梧N n\3aMSx!}Bjy0Ɵ:vvYWxP+w]9F 1>hҽ]|1Q*n]RKR4ybqTw؝OLː7}_ X^^~]?qƌ/^vוּc=J]ynFp5 DJت9&0ҴKGu{@ /!!!aʕǏg͌?ÇCqY; ۷o\2u_xq͚58.>>_v t>*)?Q7vJQRho3aĠ}ؘ$""`Rbcni6:mQsgx%DPd"+:'/o\~{233X,???_۷og4-ƌ6222Z0pS`(=_n.Um%ƅF9p']SS6<"^ ᢢ@wP)ߛ#輎iC1BeٳgvvvAAA;v`ӧOjjj+Vҭ-RSSQ(ԩSk~0JJJ~pLU֨zJiQ)(7\__hY,5O,;;(G nxk7o/00x^ 00[ccc}a„ @4CGG'-- 1/Lf̙% _~L2^4 $/((Af/^Ne F}BݽG'Є3.ϛhQ #&~=q.++ߕL4@4}RRRaaa7E=YCbK5HIIIjg imm]ήڧ $%r~l q^F㏥eWG? _|KϟO<9''G^^Yg.6O1Nsӆb]zJGg{n0/Aу4_?`̒3l۟#=&;";uɰ_c]0SbQf"DI6tWkpdHN+Y| !XYY^|y.by9lߎZ0:"'[vh`!ʺ"iFE1~)~"s:usN--Dl;rLܬ;џN=|ԹkFOOkll۝Vp'uP˶+.u?4zҤI瑡ĿD+!PֽեᢴtB= Kv+🠲%-:bFMk. խwET`0cwՀs=<h!"3ĭW_WW'** d'+Hii)l :< ri1tCh&5FK}q!5o >Mˋ* cԍ6r?zcȥYgʠh@nnnUO~)7Eg tF@=BBNS'Sd5¨_wIe;8Ƙs l۶ x+ tYڶ"Amy" 1>4TWW9af#X%}ys6M3w^PVV7 L>Ug%ÂՕWt#TWۄzn]8q.CP/^/JJJD2Vո⡫ zw=E93r|Xh/[{9-j{%̈w@.m:kO}IUXd ;CCC̊wvvL򚚚I|l.zg kfcC,9e' : !p;_i$ˢE@`zuUMVVӧOa )!!w@1vDR; ¥"1~7Gw—Zܵ`hO8lUh3 BGGK"ݲ+qEА ۇܣ=$?>tRhۤ4x!DG۱u%} PY֕U.^@jJaa!Ç %<)wG+N| D8M/ #\0ުIOOG"999˗/N @⟁4&*}1N$##9<}m)a 7/x7N; -[Xd G>>ŋ5U? >{C^r??7uG[q*Dk]q QDnL[n`>J N-}܅EpV-\>Z ̛ҒpʪY~۷X޴S4¹r0jVǛ >ê6UV'7.4~\w3s MlGfg)S-%GenCGaGbzHOגMNN>AF9$--ׇ@ `꾝6m222ttt "Q?? \Ĉ?`ys? ^֢2fܛkdS;w5gyzr$SX#I>"Ȥ$*+W}j@_r6w 29BʚFڃ֪V&lܡI٪1S",8#207Vj9GSQBBx^^^bR@^!!!mll(ߙɈ#**jـPK^P ǏMD}!۟YyDyEM}#OgKR[nu:8u3iaI( ڰaþ} VB>|8Ν^__/$$ܜOS0l}&|xVӽtEbIEx}ON9zC/($)((TVV&%%98#***--]\\ ?N ~Ն{z'=bT-߶+_3{)do% `\,0gyY-;K:|zFb}AXzh?z؄UI *D>v(կT&!l}knx&>'NAW9Ww"`>L Oڕbъdf-߷o;BصꟳKVj鄘8xEVnt-rw C>å=8e+Ua"bl?b$3TLbѱH 40?psa֓Vƅ!%bP(ggǏ6J 05#|wY$_2h]3͆"8^?nIws2.8FښBAy%  J2$wWOk(N2#8 Ftt;⯭[s%=D 0&J. ˊ|!yYGÚ~}ED[[TxŁd5dG>FC W#3FOOt~\Dd38z @ljjj:d NtW[R|{ܥ_Rgee]|Tt*> 111؀yyy/_Kb(ihl,;k,=hh4-77.1w\ _ D6 888b<())utt@x}7oGAPH$)84r7<B< 0`适O.T_0` A\6 v ;4n-<y [DJ2(WIENDB`codec2-1.0.1/stm32/doc/sm1000_cn4_cn12.jpg000066400000000000000000001611111412132000500173630ustar00rootroot00000000000000JFIFC    $.' ",#(7),01444'9=82<.342C  2!!22222222222222222222222222222222222222222222222222S" HL"bbP$PA`YA$P@15 1$L A H J@`"`@YDB!e&2dę1,KIDD @" ̈́QdĹ1 L2dJbD"DH@%dsu:9j;83u2^K̎'5х\^ׂ)]%)QrR^9溘Ds -Դ&Ut9nQuTud:s''2zdJk=.m $ #oF{}N6zx[w{x7/<˪g=]rNo<)4[&7یNwnTޕ nkZ6z:s*cv^?:y]l|xs:2D8'.zDIQ2csls',>Lo0q;pdݯnܫ8V.~_{yއ3W˒0כ{'Oqfj32i۫rk ;W5Ѷ};z\z&=G<~iWG*atfv>˓˜Ԋ "bc/|JhV~G6hW.׉o-xx}2՗{3bR3eko^gC7i-6\gj:kʗU}=7>t͵s7)u 9ե;/KղkWJyhߥO}XUC:-swy:9pb-QklgϞ}܎#mc^1?}>7s_1B}~ɩ;ufb5lyڿѝ94,-~]sXutso9GfF1=zL &$"`DDe1Ky;vVϵ'~FVTs&])ν1ǵ+^ݯ{<ձ͍YttYN۔5{8 ի7юWf.`蝗[[]1(ҽ)ݶ6ѿJ>,gLA$!SOqr+N=SMoΕVUw.vXӲo30V@gOJIN:˩&Vyc +wcf{3,k2͜ ƍ79B uiKjSc{t1e__5bZsk/{k߸ת[rʭk[iMZX2emT3ƶvx]چv1ʞV2ZyձKqv:9=,R8n1j;5xk{8P,b6W]tzzhft)8ZV1_E78,13]}^^w׮ftO7WO|/+׏6#eyJוK9ދg)srN^$e1YJ`$BDFC۪9fʲK;hQbߎ7F\^+}ιr1ֱ[ ~祮~~Z|\S si%7SLvyzB}t/~>vVny;tLod@  !#1e&HHb=?^te~z!@PJ0#($Bd2BD%KR $+"@& $La9HJ"SQ ! (LM !0! /f$Ā"BJB`$}!yqvGgdqvGgdqvGgdqvGgdqvGgdqvGgdqvGgdyoEv]s=_r[ynm3<՜k^$!r.9!$6j2lӷQf?BuN9>WyW%Wmەm̰[>tܐծuBDJ"3q2De f9,2Ĝ31Ͼq`:~9ջ[Wu֚=8Ekbc\{{e+v,"Ӿ SuBTXbg.'F[kس/:ϧ=nT6uZRԳ:jE|9&cf6aF[tKuL2P5Cnsee5q2ZJw~=|O#?GF9ѭ^8ԥgDz3ǡBktMDBgIvĢHƱ C"c{&'x} BÞ xnKhGX Zc1֘Lu:i)Y|*;b1֤ZQ֤ XZEiPPN_hX:cXLU*j:َcf:َc=GD2oR!-s ȶn*x8Ô][5`Y[/@ռ2\H$֯YóU LxLʣy݃SJ#$l椴hb5mi|59։tit~|aKuᐥ@44NMt5ZīH ]Z\6/+;p-x:x5 >m%ΨG19CѢZcdp:FӆɹzaTpLg! Wk6J nL' %SFwBv4Sl(N~t.$G/(c$3]tmlVZZdT܄.>V5%[%(F'¤mmCOH[ǣ8H܍ƹ$hCC FJ5R/FXj$FL/rX4~,F'Ԛ2ŔihkR^VZmZ-*w;}QZ!<>|*_yU@t-iOC1Rƌ8 Pv4G 2+.$txח7=hu(4& و(ro,6aT;pQ@¥+!B$}EhLjHgܖ196c;;$[,M>M]!wMk4Q}mC:5t5蔦8 <K[Z42ri~!n~ePD&-ZME eiEqKUP &QT$'Q@I,p̒U[2÷s]julچ]"YTVr XN* yAJfU]?gW$=a]fKU *.H>ku$qC6pi$H)qmsՑOZXE SRoڳnVi]C 姊BP! %c `ya jǚA)!5eL.qy`Л{,a]gLh֑XZ0qð +vtz{X)#Dv[wvX̰]]ݤ1bq0/DD4)1V%CHa1kjJV1EX q $MF KMµP]J9ʢ4ŅKR |OԁWHڎVX Ag}KW mUp;M7dՑZkU&N18 ŧz+z{#r*[k*nw/ L#  <ۢ0R/ICCڡK5Khǜv95Zm Uj4D_ 3]"a¢VGݧNIk*)y'R]Vh4#1j6R"RFd;}!w1*=q[eo-wUH)P ʴkBָ^7'(z/GѭQ9{HK0_&t58I Sl$!26ieGf=P4fn*ƪh4> %E"Q^TqtRuJT]"wz!y̴֮ OB _yA &VQ%)V a СWrAG%6QBF @F j H"»)4Y[,Py/7lb#t)B$tN)I=M9\Zz3Q3 `?)_8:h"6I#zYuxZn*9R=-`ָ~3p+Z/ ,Z+MM;] Aֺ٧=W5"tcUqw)rZL +.K.eoXa{-=@dVұ|.)~1b!mMPOJҐ"+2iqjgֽ+"jt?Ύ6^Z$XfRdVαW$9(ԟn˚kN(3VPǮD<ƪ34fAtoN| d/H܈"rh܋9HӣJT{@-{{G^pg/3>\iK $cK^5qzԜ;-~ L%&[a mN tEm -bJئվ5O&ܡg>WSHRϚP2ƈzC<֟8f+[h).ېV2`(oV`{->>$%L3gLm o6ܒh)]{eeڞ=uR7Aҭ^mm#VT"h7ᛰz|,EA&;`l;Rt?v2O9Zƥu \IIu ԣ=I$ZKilgKO&IB_OJ>cQXtԑ4@Ha&Zk>, [O#[[flBu61Vx7Ҏ73bv,B˨.$(0W4 hiSn[8}:iTf[g"gH^V5y)SQXSLnPBkKֆB'4 >Zg^\whh,Adu$m5ϒW1:y^1 I{؞C:,n;aLB9IOW?v[GDNMݭNp"F%(&knjWB3m$"@ t}P@6ݦ܅]am-m TiX#Ju,[ x#Wڭ ZڶiE(=z:Zt9l-ဤܥ@4god=`F4sR[D V]s;bC"v${%aA{m[ynFqmvږF,",$$,ɶ$+"6C{TuO1IE:t{Rv-= &\';gvl!" і$)IGt K}CW-[#sA u(/kX?8O-,$w\=eo-q@(Sޢn'YCJ>x+Ȗ rYڬ.2)&mQ&V\+KmFh6j 7U2ĚdˊȩUPI">1Qu/o F2̘pS܆NI幟A%#UqFFjZYV(>nEgKk:WUӰ^lQ)A+ѬֻrZUM쵷/mu.եMfL-!>ɣ7R" /U=k4k42&l1~+Ә[LI#d Eb+H10iVZV\bJ\}pVkB֐m9_rU#tk5З!bVmQϮdȘ(̿MVp*nVL{HBHcuoek(:W/oщf 9E\ubz/4N+_IX&V~$Pb}_GtfY B +UP0E4EJ0ZVȦ JGY=+}x=}cbW籈Z+II3u5+RVZcZcqk\X֕oG[Bhv݊b Hf7 ׁc;b\đU\ۛ훯J+PBek+^ZV-yk^ZW_z9Ydݖ?g(;!TסX~F;Oǃ_e?jJ;!Ek)~oFbOЬM S1~ Z)N>F<| CQA{3Y)ns'}V1](êQo/Gi4ɮ)[PoX-nI|'hΡ0I 1A"|< C>d~ƉM>ږ2±QƣAڇ}dQzS!΃5_S/??e~ѨIӧ'I>TaRvgѡ_緁}xߣS{S#hoC#f3$I[L+C)AY$8DZl=G] CfۡZ"׭lHz;%"Ps\eIY/Q֯:?MdQGOg_J_e?ݑ<ׯfb=vO\:W/{1ہ tDOomp/P\=yhO\Wis>-=>A= Cdžob3di "I=*_۪\"I7#)}HZWGl (DS#J6=G熧A}:f?&1[0^zFJ9vtr;ӹ&du#%=DD=x"RR2߄ S2#87f<5xǒJ0;#R|#r^~Sy lS.] UŮ[Y\f&OKCHIR1C<3\tᒋK*c9E۱cD0tK(,;)vRQ5g7+51MĜg~QRL53m5%'bE>N bmmd2OQBdM9b] t{Z|ɨ'Qjj6}tbBJ*Oc<^5|svƒݱjhzsi=HZÓ-72FHRKB/N?s 2$Wr]L/qĒ9||lƊء"w%ASuCX215^N{K*=ba/~"} GOK^.:q*4zz8b؜TA:)([{5U3M v7GEG>q] R/^'mښٶCN5lhBkrsUQ69:&-B3])NEpYDlԆ.dڱ؛gdL wfON?Gw,}*2i5Rۨ] [T]Jڳ`*Re"Ihů){_GwYh1N_ rrOKcっ爮fƜ,F2G"V =x3VYȵÝ;q.G/KCmG(Pkq^r'(FSǓf]ŒG q^].%_/Ѣ((QEQEQEp(aQEQE{ثtxzG-hRrVEkҴZ-|<,\l> !(FN mؑLI3`r٦bOߋQPQQ{{),{'EqY>L^b]|\gz첦&dd6-222393s~Fyp^ɭi6sfeH{}N4z ^) !10@A2"QPa`?ȺN{/[UӪmlߦ=*Ͳv/(jŕS:izԋښ@K1/LhjN4+{ >E-ՕWFKID.ƏDNZ53/E:/ɥ/(ӎ7j:nu:x;gD[Zw1OeD^N3S$u%mӸ̭ω''p W"PI#k%r#O[кݞũ]ձ6ND=4uk:C[uk~ܚף?J;5vi'C='ugJꅹi>OfIз!C縿g$DUL~NwNWCh}Qg; Cdmm7}n&tܝ ,bQ=CS'N[g.-#UI)>i2$~}v7{NY5#!֌Ccd>FtM,*H ̧SULbmO.z"ΨTEwm 5ASf>-G,[٤lԐRB Zd/5&(|l>-w;Ln%f;N5K:g*ڒ$] ,DNEҎ. ك>6|Lycy]+x ~%dY,K%dY,K%dY,K%dY,K%d;K_[/e"*ă-$E%\xt>BE\xh6\xAjѸ]ԘW$g*Vc㾊E\xhFzSjN=ZtNmW$6NI$ZV,[Ps-$}3Zy.YTaAx+3vlS;8MiS璗D̮E+Yb7vR/ jN$~&12Yti(Ȩ1EPU Sʼ# DC ̫ !)rc{S8$3Tb=B}& bae_YhH0)hj*LOunL 䤦'a rV,Sȕj YzS1:2LN3&a(3/j 8('8PEG'g}^]YUWWF郊đd}HEzETRۭvܵJzGF)9 "*ɁtfJnW!KP-Qn.t2Hsܡܧ(p-[;B/˩=(1zw@F&69UP= jv7V{@tR!e5j}Q 9="TYdƷ vܧ7;AFP}5-zE$\(Z(Dbe&y#;J=f rMk==SAϞ++ scV(v^"3,I/8@G8_a2ӭeK'lsާ!!48w6 "n#a\j2! N:;O|uKӀ0 AX'*V Xy[9yb귍YZ(/ '%ⶊ9ܮUFPE k/Zpo:Z{PhIF-7$NcwzsOل(nWnc:8t-:B4a8i0J;nj&[!A"+ܱ:I-GR 31 S?]:9 ٝ91(M ~+:&%;&`Jnv)fC6 &񸐊m)ܴaLb74[!l8[i6f^kOk؆+R6MWF2 غֈ4O^{ћ$8frd_%x[I {a@1 "ָc`:  5+FeMitس rk[{?܌ ,IG/DGz)22Tr>t18PPa;܃k {Qo$[: *\rDQ0T hWQ{S:&4L"/ܲy* 'FNm N#tk1IM"QM\qG(VC٠XxŠ̬ϙH%'N`S{!p X $4;BVK603d5tЪM9W[CҜ3D"G[$40QwrVTZ1~HWhULBkfrQ/my-`$^Bv@4 ܈DԌȸ첷UJDϔ)4jԫ'D]lud,a'{DrOA (ʻ% "o]Z^QEk_֓nKv,)asethuP9Bψc ygb[K3a䌩 5YrDrN,aSNhP͝:U]Rܑ-t@o㢈b6S/`UA<VoYEfVoYE+j,3ժ{ZdjlMB2ZY[?kG0[f}18<&AC5Vز6J[ el5|+<}¨⹚4c*ETSۣ7f3h=k&`L6iPÊnYNqLIϫadUgetv8t9sDaG:+eصQ 6(og/4L֔'/-ʋZ yh=RpD=E4 M@+;vKPSi)ÁkR2J;,`VIZ}a`tb<4($$}PQLVl .Q!5ÿ]VS_f. \7u4Qέ'6]+IV`pWEniG84 NN4X^'Zy4DvywyiNɹ6<4]9HvHqHfYx"*BSzFouj"܌pPT%ܛe0kvgjPam3MА$ L.!͢9v2LA,4E G,.@?鲞VαG ̣:|9JqZǽ[[[NShM!SC{VV|Uڸ. ~~uڲ,ݦT0c֯4&/U1DqC1ܛxUgiE7(PB 3Kh"L ZGj% ˦V&Lf+{se l*emsZt4Ħ 9vR$oS,L7G, J"|8 MR({/zG`Pgִ։sBm7\(V]'(Z@QQmm'{zIBw%)meJoZ\S XAB6,J-oeOTZhv ?U|V䲷 QElV[%d-J+d[%lb=An,p4UXe+dXʚ晕u.%B*R"R*j䵂i cs oʹ[E\U*mrW*6*sVU%+l+hV[EmV[EmV[EmV[Khm[J ̋~|$]J{PGJ'7>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>pњs+s+s+s+s+s+s+s+s+s+s+s+s+s+s+s?'xؿGJ'N0d̠9>qP[I[I[IQzJVVVVVUq}%o%o%o%o%o%o%o%o%o%o%o%o%o%o%o%o%o%o%o%o%o%o%o%o}%o%o%o%o%?W!2"]LWr?c6Dᖸp(jV*KtKvkal-5[ annOG櫃^ku~k[Q em!c1:]T9N ˈr: S{YY[E[Y[M,.̂cxaϖ>t#> EW?~*Gy+'[ev>3>ϖ>e:9x"٘R4SOo7ORFՎuem)*&l?J??4 hngr颩 [>jzq3叹є誑 eOGOV4X4]\~}gs԰V6B(C4vW/([<=| ,}RtQF~X,}h`(: |D2wVMoaF7lyo,0?cVϚz*tHPS*Uv__| >Ly<S0T-sdsTl&.jTnF#PĄa{p >08d (`S?~^o2pyagDK cQ!T' (i`*Pg| ¨쒰]*ڞkq6uK,{ 2KB`I`ZhS_#r^bN셷~o淭[|B[Vx5o7moڶS~AUPa׭;gs׾~푇+T䶊ZupGMì'K\g ;ۥIuR_d^.,['*X.0Lgf+J&W^yqr^V`xxTQu/;Xt_Yzϑ|L?3_CK'\DUoT[=V _*/~Ky#-!UbA:En]Db'cph^,:pBYfTЅ2;bPSEERdid%3tyNSX(MIY :1ñesQ5Fbn٨Z:O:ecFAE2) 6ЩTa㞖e?YE6o>I6Ne+0E^+7!%T3|kXb>!тXqbV阊ڤޕ(+/J+]3</jR18Kz@0qI&4.[׀\+.d+SQCOHHԓ1]+Btnī$j^lWۂ$Ytf7.Pp˺lyR[YgԖ;*1r/0]V~&3`ǗCdPD`ZxWY+i`[֠ݽzNeY੊gYb\rr1*DC^J&f䷘A2QEXӢ0U+ _-8yG%ZKb 1Ћ -. qW-27" B>2[[ eq3fPuuaz± ckB5zzN?*2ƊQuBbXU6uo7ꃔww9 ]O?bcTn%gE\PљJL!hEfImM( 9z *.Q)[ThWR`4r|3b SrJ+yoy_6XN˞dL.M?ݡr3( vI8κKe+hC)uhØvXicr:yxuM5B묣s@UrO{P#&zST+ R>4R/C9a7riDPj&8qx,2 8b[-F TDBz˩++rfңp_ y6-5.0#3r="/HmݪR(s2z3x,B_.j !laJ Aa#J\nY(WxS*ewfӷ-%mm x= "*:OvIߤ4[+f6CAev,PI-j<~jk;nzǠ n.Φz1 ^%@ke5CCVQRʷ5;E[6 C=[ SC%EkNYb[uRUsۗеjD6(q+7;jXw7d[jVX?Bͱ *)bJӟrvJ6zjgĞ$7B-B1zՁظb\*vE[gR.;$VK0d<P}bS%Hextƥ.1 HB鸀n9hPHfcZt"&k )]c1ʄey[/ sKzRgpKLc@~ji xu8jdUloavb}%流ÔJNSm̵[Ɵ/#e_OUImĤ49̠8u6~E Rmd%'Am]}5?y蔷_rV[{).{Av?@=o60%V_yoǥp)cǤJ1Q\M.jZ$> /S%\r=r`<+&!Hq/:֞2+f @`#Cp7gMÚ?SC &E/-58sp I(;(-bSXzTlЦ ߼vs}|7rԮ6=R[1 / V_qγ%Hk "MR.CJ05T BeXpF{ _Ya;婾s&UXe L4كr 8Q䠃{'y:4u]Rv(y?|?A_P0# |%m*^ 1J-h5;MVhPj{8Ġ[lk5Ժ~sS9k&,(1]KH#&aw Pʤ?+TdX`*U*dd l0%sa:Mhp6{yXoko 1CXQuh<%tLgG} "W ,yAe:S(3өj%؛IZ%G!4fѢu) 1 רD>PG7bp+Dzd3ST#PsͼXW7#Z2ndCy[ïQGj\[|˭9 W4!W9ĴN1һ'pwe;{Ghй󘂴h-`pVyܸJ[Qb/)\/4H`T"ڎ xsB\s0vlUK 6!ĥ+gfZjo\!_k ԢEjX8n5[BdhQ؛-L't+;%~+}p`\k@ Pb!gPY"Ϥd30VK [J0]t~p@Q}\~l5虙:Csa|lR̈m,J! .Aq5jkyemlrn`pJW7FIJk#U/.j)WTb{BUYEGMİ/ų~?;=߭F#@[8.Qh MeB3TW-L[VV|s0DaEfUեu=3,"Zx#J{@Ë?S ;⮽e)ܯt ׄzy7w/4s*@`EBˊ* 6.K@x̂ ރfVG':&W|U UZqXp'.yP<8O\ R^8TgSh8Ysx^eq9^l+;.t1aCˀW5ʇ@ _IKQr8:1hFNg^K WNai:Q[[6te+; &jS˪\<*1.& 8YIb_7Ox+]snka %S24q+Vw;r!KgpR嚁c̏Yul:!\Wbxq;5+J |2~7n]Jt*, 1"pK4 S f[L9\ю/j^ԵR/ YnX'nq3LC7yn0n^19Y>n' ~%5ˁzEW&)ks1;efgpBT z!<#llAKXC?.qȀHًZM$& AM#G!w Y\ʌ􀶔'76|1깏KR*fX츮Yu.l;X6hn R'$vт=bVs͸xk\^9uP7;Pm1}eK!gHHȣDTz-s0:832>7$h3nij(傯v81aG7Z8xi]fO|grfZU GDX‰g@ǟ>im7CK.(h‹pRp8AB nYʊ5# ^/tp+v9B6 uTC^zXعɈCEURW,-WU(l"FqD%k(J~*nTO7dQy:/oXl\a`LsYWqioYm7-rqXUKڷ,x!0Ҫ2A}%QvS0#.?yK95!e[6)U,^r֦7t:Bٟ[mQw};:D1p?c)+ѻмx*l$4ib!q[|oLsߤ&|wR\ʙT2N N 1*Űr iOizkWCy_8msirk&?7Y,,+jZX LJ18;ik[ϜD(bq-ϼ0Kiql/(Wsw6#if>幓ny { n5:5=Djpu3$F>PRN@&D ȸdg/sS4e?ܯ_TKטסF3yj|H[(-Q (OoY)8 WpWE] B_F4vXU2= iث'QV~#E\CTXS5]gy8+߉=OHk#$<(eba-LFZ;*J;2Qˣ/hEAAP['rgr>% ꛌUkH"hNcrEIE^e"Gp-%}DoTsytm~e*=z];@7/ , #!hY ;ҹxܸ* ;Cd¥SeZĻ'3ԟg }󗤪(Yxћ>cw`^Sc Ӭ_$wUqJJ߬+ '23%1egWTdU"veTu%ؑ1/7>4ג/t:"eC3zv\Q"8$XeB7[kRZPv q?"%6%.n:<.+)lzD8tqemLbhk4Jҽr%gZjWЫ{!i oy>4.aLCvЂ31bLN$~}/R:I[h}{b.;&LD -H59[8¤8bT)Ԇ ,27YkH)7**SohyD·nA 7\ܽv'hU^b=v/]P/Sq5۳fv"@d᧕ jc00~hm0QE ӢQW!p9C<(a,丨~Y["wM;+Uzz^XB:5⮲|›%aaHT*TJs|@-j'EVmPGA#Pd2HL*Jr>Dga*7fnk`[@rJtbz0!S_2j¥kERFV5=ENnwЋ0%Agu"җ H*]GH 8Uhӕȳ@A* I1,+ 9T.uޣK7v1^Of 6Ch ACȩIʊ )py.cSY]@WP9X+qe ㈵bd9;AoxÅtQBʴ<?WY p/rs>r6q$pj,;5U~VR((QdS}b½Y\:"ځЎ6.kP:=vZ3) w˼7E50 rfG0= 0h-7ܞSng'yRqbO'ҏr?ПO> n:P:džX,H0V)|?܎}g%@ 2[1)[pX&/T̬+'6iL)pJe(WcUJRBOZwFAl.e7KC) 7_w+vYIb3 *W د^v39<8__~|ϟߟ>~|ϗߟ/>_~|}ϗߟ?>_~|}ϗߟ/>~|ϟߟ/>_~|>}ϗߟ>~|>co=Oߟ>~|>=σߟ>~|={7Wo"t;3*}:v*zJqcZ_nG-V[;N|Lψ9g3i{35m|4OۘLw'~_K?COۖ{sϛ۟>n.9sσ۟75>?n|~}r qt"6>I]<؝ i]er\@%,4e(*KoiN;8 ?9z s-:`,_52%ISSFGtn5X r?oX?CDVbYX*)PM=eb5( 4+' -1,V^D\{U:!Lj,*_9^_} d3K(XW`/@?UXEH I^:'d}wd.9s5Ex Jb,D9FV&RF|wxb^+!>J }!  P̠Y U8Ŷw0@tZNGM yz~'c x 2y'_Lj_Sk]!uu]!~&1OBr9}a%A' g)gF~-TJP*TRs7 _ɯ,F . ̻2$[9,CY!@T Qc I$ 3IUs 񱩜%/W2F3}01C&(q dʝDmCEZ9b %J0@ܨ?_aL^9\3"Pb0`aw0V+[1%'72\q{Kʕs1ed}Yea-n;̻I{|M<+\=r"flx6#9xͧ0 G& Xz(JJdCFE[y!ƪ,:F&@u2A;9uۏ rod"2 #Ei24b{aUCq,~+|_>5Ss`&2&YiE wG)\¥bv1lgt!pۏtn$Q1{XhƉJr֝?c P^(jT纆[|8%_8>?O1|G迿< O\WTp!ɀ7('ԗq UxW\?>7.]̞*Zs FnS\/XX<+]LjM|YsL@CtgVP0A䛥N񶯍SK0~q3%bQ%D`L?Ek|%G%M1%1Qhs$4 FИ xVM5}Bc/Su> t=ªzWLx hCvPlS* \~"Mjc26yAK#}A#sQF]+ǽ.T< ^dm9[ Fi?ˇw7\1w큘<.%q\deKl(/ω}#h 3Xu!uL-by,j(| *OYu@:-\:?VZvb]Ųbj!Fɉdbrρ>A ~pF*,7VB(zy:ד.0/}}\=av__6r> aPͅϪ}Ŝ]qODJe>rDKR^^_C.w_sn}1x;DO"c i2u'p[inZK%]`QR@xWğx- 98v^. oY)#(.pVyk_WĦxd_EBf۪!Dz`m`|D< # gTIF3>çZg7{ٯȨQg_a˲;EwxH1 >%)_88|ڧ .Ή(e·م5!rhxroQUC"܍J6m9l>[zHw)YXNҖO7EJ޼(?-|,Ad1f%z}9uRPqYzo=)dn(8lEOޘ:B&&%ucıU &_zHV{]$ݑ霡{[ٻ :(ߘaP@\r,&hBLZCk0qKX Q r=E]_MGy$g v2=',"14 PTG+;bDb42w YtoK6*"PJz h_7qhk.,"$ ,r'Z `=O}?T'IDuoPzrB2 7.A.Nͬ+:T.dU~M)ptNE O!&:zy?w7 =gg|)CyN$ƞH4~]p߰=65 Ѡy"Z[&2xѰ a .Q 1e]}%iH#qG #_B5q`8KޛzSaRe,)1dFWlXjw"$> fy5.Gr8Y);%vRRISL5 bQ\w_~[y \2LP7wōc7Z)D6+A~=ᆡ@F'5cӸäQKE!˴@T'h@n>j_BDU.OyGid0+2Ǻ<Ƚv8y^XQF̰ mo1©Ua-&,S. OgLٯ4GA_4qFe|+~\2%lF*Jٸ3 02IZ@b)Tp,*!fAJA ~0[nX Q A:^bܘ LWNc$Xa<(Z/v#qÈ1DijQϭ.\a4@B-7GdBDaf-ZmT`kQz1+m2.!Svif*g@?z5/Rf#5qUfI-00;@³i XŸKXbO0FvK;\l6b|]2ϜO!1,pԻ<0 9jt)7+Äbq w0W/_RW}maIiħJq)ħJJ%8SN%8SN%8RQ)ĤJq)'RJq)ħJq)ħL(B>iiK%˗/<-=G_.=E"FD,W4[p"*lYFLAIdwC#cG$!RNB_QfwI ~J.wM7 }5讽0X]I!kщ讁A#> K"z4Z nUoPKQ[pX'h)y8>JMFYp}0gәXs^&̦ xx ݣ eE̽G@)Bo0a\>=o)!1 AQa@q0P?o^ oM븿W_S}>}IϦQ?\@?ڦ՘j:DU9B9ubI"n&Fmưa_iV za&|+9*:E4> EZb|wheIV^, <.669GaDj2M! XcT~Zlrl,2hh 3(.G-(H[o*iF{hM?:#j5kG nDtc1Nþu '%B8 t-†ԓ4[~>#93Yc)KB m Gto)DmAA\a-AE7E!!WLnO]]/ 8VwDgcHBTŠykhR$rVjk ȅmLrwE `B<pZt\3l>p' mhmx"O!yWȃGqw8,XW#fִZ'B 0"bzГj[C9ZôXjV>9WEbY"Dz@84'Eh5cBGo?.=B7HWcu3'6 MT6k| |/&w'ȏrJnbQ”ĒpjkGa)ciS ;˶ &dN1LD> ZqM5H2|b\^& ҵF!4NJLeFFij(IF,Dl"t'%Hb4&G,w ?`, ObЋp>n8C"BXIs𺔿%/~K{+-49D3Ye_{< W-!7Z1rL\!146~1%bGL!:!Ln<$}LC{q=Ǹ{q=Ǹ{q=Ǹ{q=Ôr{q=ǸTHW$Ə^F8ֳ 2a[E ТM3xx#G/'#}ʼn&6lGaL#.Cdml]Pk%U"l+_#ACDIZ!0,,iPiPގxYB,4Cw!:B.EIRee]%eQ& KXyHhze$D  LBQ!' QF:MaQQp({EOq2!2bQLL5bnc|:XVF:{tBabû ݄#rw+!1AQaqP `0@?نfyfkzn_iK>}^c<\RcLC-Ŷ\zAܼ.cS[^f}%rup̼.З6\R\Ń #|GQJ]1`Rg2,B2w7^}90s1pj\=1r<̑ץzW}9.fsr`Y2,).ʗ qzKYdKr-Թy :s>g}rN!&!SSȷ3i~\X2̥e&LI4DVSѴw0˗z C/3sO\ cfVei`K7)6ԣ̣+s^f39k2ni6ryJs)+++ ס(g)Gc>.Zn-pr187./2ۡUE?(\CBYW( /lx3cЉ_YQ;5kqy-?It}b@s)97t>Tfss1*'B%Kv}baL)WOԺ(Qu~K_쀨)'nWV~G]~ EȰ`㜶cXɀǙLv}Lų ٻ}X(ۀYSͻ>B Ybu>ŢGL^*?zCMwMfVN,.0Pɿ&&=.{{a{ŊX}2 eգS dk)ut!6j3*)J_Wш E˴" {1FkMEՂ`{/jT*)llt`E"Hp@h!qY03B U.LQsjV89ߤ+^U K1}Y~cH=VLKQjVbcg EDO &dD$t6z hՠ)lT E5l|eʅ6Xe C sY0s]}ݰb*%8lT^<%ª9g6Zso:~\6](TM}s,n )9@^E ln\+BOd a*?KSټË3w` 0M !ax2WH'|~gBPPnnPzZ^ՏFZn ",'Y `7S!̠ %zT!sz32a̾1ֹ \)fT~j`$J99]`ӗ= M#B@A]NܳQm͖sW%֔U  7OW3.,N[|˿x-&;^Ycv?YRӪ+F 3 aG_aC |%|n-Q%0ߕFIbr+9 BWMݣA|GNkj1ʱ W4?阎0`uY" M`Ys&(nEx@bd.`K]9ncI(3#BZt"H&q28lZB0';RiA( ݤ?N(P.W& (9:y1Y 3xf]'M Xakt1䐍aJUҧZL{I]mxkm1¢PZ[%c( fPZC +((\BWe誀9z|%ұv\P6 a~C-MWh-gqzR !K~0 kRl@)í7^ҙ7|~3 Qӟhu(QlC+# g<)Cs}fj(`!E}Ӣiσ:'@+|N2Xi "p@FW?X[*#9eA,oF '\EJNEY TɌܢSj" "ik lhyMSlmlEZ-G0S@!Ĕ+\XLo[egoP9&23L`?EUhwQ[;odE KSY1Pf B#ξX)anIQ&N5)⼃JaۨA1LW8;V9%t;T4JbمDB.Ѵ@ۍSh/ʵJ֣^w:C˔=x$pVt6mM1H.lx_G$ԼtEw ª6p\sa iC֐ݮ=$;܂n p #;[Iwu RvzLLZɏy[rL^%DY7w\Pqń9\qkЄFjM`b!5RyD.3E@Ix8{t"ŒxD6!@9݌B-CbJwD+V@`+CO!`i3ݢ9kfD.+f`{`E#KLJZ{c{/(W&sի3Ka:tvn4r ^mߌ {/¡C )R @dç)%8&Fof }9UWJ^Mr85{էI[ºEEb4T u{ˉFB*-JFs$Cqu Hse+B2k )%|âN iʣHb/7$a$:}p.^LLR?YM!gh‡:wZ設 ij*%k{@҇/W2`Ul(WŰ4,:^%$B,pLIWr⢣*]zm|:Y0\|Ā|`h("M Kn`тQX47<2Vqd:eEwgHCnmQAW E@QK Q,_Xx*<$oQ7(؄ 2g>|sm^%ߘ( { KfQb+_Ԕ\k/Q!Uvw(H_?s?%fsZFZrKy2 0,BJĨD̮uVR`] m`\Ixk* =-镴+ux}9ux* /g'C`LO [+ Fc̥vTYK5+kzPs%{>we[E2 u2HX{\);i94^lGi Z:VaUiJl@_z +!4t|怨TTr  v &^r&*amZJUc>mYz {7Wℝ'1Vdz 1+(8"ȵЭ"Ǵl<Dx$"Vd:R;?,JBGw@>6e]ۦ@QpFUЛt()JU.1@c8ܯCq~%"QF5P9itS%t[Rw)x\,Æ },TǛ wi{9kJmc_ < N2ͼn7Z< wF996uZG{_<5JrsQ6.XA(We r C1rk%-1H.QP] >%ʙrpxH Btf"UlӜ!jGibZ;hlZn2V7͔{~ B L+.)r hBԿ (ߴpc [U7f%:%UvP%er;e%q#E.G %^}?,d{r4:]k ֗c͔m+(Q"TBOxPgИGj1N/5ѻw1lF@΍vܴ- .fYiocXQ׽ԵwA~up3=3u^ @ԭ0Sb஗PبEUYI~%BI]I -yRuwgٗFx.#@⭜fqA|l.shTptDZEE::x9 WpTMSH"d}PնEיmcy,.K#-۝*f~[P*K]3[m^a`H)0RiY0v?:Z,#5yChM#G%˚5s7c0#a3+s&8ku Pe@ Gpbg' mhA 쿯f`h6+}(XfP{s6 : hZ-h~qfP21 5kq6;z~ @I,ت0c/yba DÊK" R*O0EZ`]jgLJ_?~O?FaZ:*zh|:/M ^ ڎ wL }JV'j TAň g#[z[@ZR|FE;ASwY!:*Z+Sl"|QR{3 ,PvhPB:v>Xe\3K TONH@6f!UU_zk7{AaJTf1s9,(&ehXWEJJZ%@:4eiQ4T+A[W@[m+4hZc rȻ{EmNy9ef4;HA!G ̤ }R@:a m`=eg<LnI]SlfpeP]‹Aƙ%SͽU@[ԫ@:B^3DN3FUC ~!K3.\UE*\Kow7AB0yb]r(V4Y2Fa'M{6l+gx `Ǯ%{w9?Cn`<>R/2|%(j sˁ[9`lI)\xB")"r<%ai)WIa4}|FT.Q[Ush(n#SB[|F:۔Yu[bDwġˤ̴Pv69V>eVrMD*|1Z[nwѼ<ʛ^C3jx.6?i ,.WhFG5S ;bt_ 3~n9u3ڦ[(x2s`ʚŵG}76caQK!x .p? hh3XiBYrr ޢv[! ccmBtKiq"hk;w2T̵fM#M~![A*Da]1#4{hԪeFHT"NB*hFrwH84I~xa{Yz-+1$1@VMFtuԹ~\ڨyj7_Xf럘$ XUOȖ-66;siP3r -hR,E=+}XqMP)0{|D Kh77KTC@7kpɈm ]QV zšQ6ɋji?J$ F+k)kpӵe`hv̬׼p][̰XBTvDZCaqC ]1aKp-p:E,3u܈܃k0va*3Plb26!`)UcArrQB)u# BrE+؄0s-~~%G8;]|Jc`A\@2NKU!NiQ[KTW9YUÝ1—f=FB!@7\X{Q ;柈*AhbtndaJg@m/vҷߜAPf ok33xg Ȋq;c023+*\h5dfƣ` [qbxVa(/5ҽ 1qW/b69REt6Έ0䪽 bIF\X虨3NUElHw}t,$b\d0(!3 9Js˴h":Ta6-,DdU}֕" %Sfͨn iANhկ(nҾq鷤-$[Z7 7cX…X7@HӍ\n8Dc\Զn.b "B ,g"$ +Y%J~.)1@U/`XeB(AM^rKF !:ԻQ,@YspM1` xzDPZsEuuV/ua#?QENC^H;U( l1Uhn6^↯Y2pUy,8h׼Ag%K<6bU1ϨܪFP:~Ud0l%y֫7.h/X~-Zr c[a h=vT3E\qJc#0mZdh|ţJϴwAȧ`cԽ2a`28s : PR͜JTls-:fĭ$qXejFflG!;_),3;+fw(b*Ε˞j!k\@ F!jn Twa֌t!`4j`gcQcˋIP`U[[9fVE/w%8˹'%:*LzfȔP}-m;GcǓ+aOkZ0}%Uu2kR@2˩z%^+k4V$Z v׀ 6-{K3^q R]E(U3Cކr =U nn qYzTOe[6j;tt"3km8, L"QºN>N|-V :mmxoRrcR np*dLdSMq6ZslS-G !ðDŐ+6Ab0t ?02*s/2ؑ.I#x--ܯMi+eAp[7@F$f~y".DW@xuTvyB\;XI@s6KC'x =cqe۩eh;. ` r `N:Uby<*g=jaG@EP U*ܷg1PX9әpnA M{Ag JyxY4PEc 5GA73Pw *5կ@avACxVg 6l*&A(RRŠ`UV`(b xn-[lx5@9S2GR;hqpx*t!}LԪ?KU"P /vYLnBfKjMuW:%24 Pcpn5Pa}]9aBA՝F!ejADDy0@,n!{& ei7-p#azU)vp\)op}Gq ~4:t~Ѯ+zu^$ykuQg ~٨.T Bb GR)L U@n ;vBḭĝf 6ˋur9Ewl%P[ ďdfogؕ7LDͰc LWڠ 3ZX|(hg+ZC.;Lϔ~2^Z2M 6R1@FCSN!{b/ZZzYv+m }FŒh>Up񴘧0WvCD-LMKВ3=xuuКm tCwSlUYv\\jw?+m\^̨`mXVm@:^hiiT)Mje*EbÊ< @*9gXF[eZ ]*%XʜHK+1nKK'؜L" rYⳆ 啯"J*)%39硎a"#| Z d JDKUMpA( j,'oJ0cA ͕UZIkAnaoxtaU)l..+|nآ 5UF}{Er?S0w@JR8@?Q5kuqQX\Rʕ|jUZ4-K$>f+yuvaPpX|7)@PVwbW0ƥA#xg)G|V(P/ &"cUsmwrc̵ Ʊ̻/JqYeWaijԮA E {b ~?1Q,a,s_zL=S`SqN U@ ]ьZm5"S[0GodMbe)t@3Pnr aCuRVx}T:#d or uf&Usj~&ІՁB!q/8gUʰ}i{Y UfT(+cQJK*V 2hZ.څ$ PGTc Dg4N9!Z5=iV%ζ`芍1E9Ku Frl1lgh.3+2NKëmC+VDp7BVE"k9(YRsʁx==Ǚ:U#)]·F/F{W<KLXRa_ 3- #,"-R#n+V1_C7/3qu)%% gXh.۞ [AE뙐ed]ZM{/wu:BwIuQfH~Q @3 6nlQ0=[xʹ빗 [tX ѯ7c 2/TY O%^OavBNb^n54A k%c;h z}yF@0F\H4dDck`(rӎQ} eӽ\^zFo$vU̧'Z^|j6QSŤ$<`rvYό]C$zY^eFiTL37i |ŰAfj˯ij1 G0)ls /vLIe0T6, ̬9s`f,#` +[qCE*,Id9%=*Uqy7Lj2a 2(-y5Ґ#kcLIl k%Эуn5X ME.3=e0 Cww7 0hA|9iB/E؁]4Nj HI5$ >GĿB [1-EE(a1} ~ 3Ck.-%3C|bAj2ʥ)A`6=(Ur? UJ:zj;,y/ݔwO/Ar eQ~C5r@oDSB`6,YAE/6`Gu:Cie?DcyY' N pv22wH`QHEu~bZ&nAW/hLZ. Ipƴ!-RH+q*!3(]z8ȋ1X%[Ž[Q10J7A [̮_4X"QoY8JzBg(oˍB+O$T9y` P(lW5.iP7?3~ķ<Ɠ/ $ #0G )BJzBRn*Pyq\Q"m'HC/cRJHJfɢcMz&bWrGѝ)PfW0!OYeJǔ?op'W_?reQ'jiy,ICteDp GE9kiq ZӮy{&0^ADx2|\s >;ǏjF.j1ŎYFkީPQ-6g7p'rWEw-D -VeUh֬Rꗳaߩv_4R Rh%mK?1I΂^[2.*x5rx`qlc6 4g;'ʠ$nw6ZFU d5M% S*g-7bjXb:q5CLЧ(_IKI XpI3*BBEw,s,--GpZEtJ+^ # X83)J e:@ aC`H4VCrZ*wGdF^Z[M" e Yhn,}_xU]ʤNVVB7GFJi=Z@KwUN}jB ꆜm35mi L=%VDNE'r`~',|j G/*mCf^^{h?*#H`*CmxA󍹹lPpKu^G|qjBPWK,yCóW įmENc3 b2`/ 9`4[0L_0h@Vp\( `4MV` Y,9i= ~!w v,BYN~يF~ 9x;ɧ̪ {G% ).4TF1 4wW\X}DiR^رY,tY^+sZnGiyIiJ Z1JV"U0j{&e_$@SJ^@s,]T)s0vd `[2j]U!Nu(lTKH 3byPf.quf r$EYԼ@q cpy{#UjUxhxkcN~ rK!~FGvYfBtKN*^:v@neD0xg7h4Nl;`V8MK8Bm{[8̩p 8"չQ_Xt5rYXEBֱ5WH7 T(c)f3C|/Ud$Ȋּ˂}٫%}-3 gMNj05F,b+Ax\Xv<' ?YѨ(!Iڔb6z.^",/>Y0 p){v]UP:6*)~LuhZj5 x%@q0]W-r*e@99Ġ ~XVe䍣y3(gԪ2AyeHyM5[yF @[;,x9FAat| Z;̥)1X.vr-?0B=O5q1̾ :, %H9"1ʇaC{ Ee-esp:K4ox\_$۾hwd† KG7e]?r/(bR1ځT-yV\Z >T:UM]q'x貜f:qx&=ibnx]uSK{PE*)-p(U5uK9)=WΣKȬ1xja Ĺcd\n ^~8@j1-NfԻE쏕{Z'̫bu!iv;Bۻ~f*cE-F( &L( ]мy9s&] ZQ|la\ P9J3_PjX/Vo\EBǬ´@'rb0&[`%;Bckl_hL"嗊 "nJZZ,&1 B LEU AbPNq+>uy&qu-AK[Xz* 8G ©. 30enCjS}=盈- J6EW3Q+ݙzfS" 1HB tX7QCIu(!+*%@K3b0`K@6JSY1N``PXة"Pұ̦.l+}"۔;+Fʭe񛌑ѿg25CZP *8Kk24=!@e[aka;A]I(\v&naY'5 3*HП_JLp0ZߘBHSj%fb9-Ձ!V ’༑J%*ə-ZWuzks H3`E//f.ж"8tyb/21pG+ڷwQ >m!1 -es`3N!W'HhBm*qn7e!u̠+E Qߨ*!Ci92"FP21ys:xTѨ% 9LڝW>JSAMSUNGSM-T800HHGIMP 2.8.102015:02:27 18:34:42 4 <"'}0220 D X  l t  |      |b  0100XѠ   !  6 2015:02:26 11:11:342015:02:26 11:11:34ddd d" 0100  Z@PASCIIuser commentC0A89043AC0A4F4AA1B926ED2F558FABf R980100 h(?HHJFIFC    $.' ",#(7),01444'9=82<.342C  2!!22222222222222222222222222222222222222222222222222" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?5 $^y'Xv':5F+DɻۚbъRR)iqJ0iÊ\TWӈmyd=P|R=дO2%~IKXZ00 QbyDQ+.\ @}clXWSKn2UP4RV߅uLiGwm## !I( ^ )搜SIs֊oZ(h/zR*QQ\s@ iqKhC2hs@'xvWpbd=~@3amy\r> ૛ͳ_oP]军i"c^u?SޭbUX8S%"\?$B(vtpq8Pvf`\B0xaMF]k=QchN@PHMu^4=㒸 1'L*l\bG O8?5[#,suj|%)Z弅ћq G\Z^Ya`8;lU啝I)dsНia1{Ps2߃4{c6H2m/UU+(ّ<'zWlRG2RVf*$<\>bwTBm@U2@Rg)Y+%k ;Rp,f8_m[Xva7{m[-Бڸ'rI'Mسy&ͳt)\eޔ\Nq-#w={V%@+oFCy6q 53;5`>RZGl4ugJפMQEC ( PDw5Bk?H'Dk% u NB+JHFOV8%7;^ E$6/C1*}@#քmch[ sHgm!3O5e]Jp{SMO-ԬxUsL5,HYT2pyP\{;Rr? -kj$vܳczI>k3d)Tn/z*~d8IE.( >^OEba."9pqW-z'gfX>BW^1GrM31!*eG_ 1WX\gy>ZsJA=*J7zFQK=ioed?TѼ*F ))j E4fŠLњ@.i'EvB@u❚JVѣ4ȶϩu ?,6=5z{7(jњ^ap5$s)..2ľ'{k{vHTcq&;JmlĎ3$M $L& bNw MPSVϹi0sVtTt bE'4P"|+.otsaտ$θ}خ3|s߃!vסvp2O.3 2W?߅ڵƋsKq%(Ul!Oһy%EVF2 VӬY?}Ov{ ULz>ͭ-Ri5KvWN c|:Sۼrjq}ZnVo]H,eN __ M?ӯ^M|^cmLzATCW*KKe]C)fJw5vŊJhhO vM8Jt'3zxKiH3R3=陬Rf4Z-.˫.:'dv;GJ7w|L24HENh''jM@k6OAA5BY ܆(BW*( 0:vCeX@0ii)n3E-KV9bD82#?]~5Tr\ǽvAi(ٞP\Z NSjVu9d̓w[j:O#(3Zd^X\z]YKwc갋W=;+%e .T`:n+e[Ѭr'>߉=;~Ğ lGMUVIx;A'ANm[JF-ڲZgǮF20hӧj rkvg&ݳv+s^mEaxZMui۠E\na,{XlBFF8#ڊ4ZgZr.Inj67k+2VһD,wS@1ѹS/-e8 ?ZƢjt=Ѵ*3cPYcg }{Ʃ]Gkv b4H)te85xYdB33A\pG*ďw#Caz rޔs\h I1" Ȉl?YcPSm(YrGq 1.)qT!1E8Ɗb$FXg1J3]He9m3ZJc"sVMm ֞mSICr]XX1T' 8R '='ß4G-fM1TyDqk1j$mV2X̨` c|_5=._F#PTMV}gVKsn*Hm59V-:{Cg=r:+̴ov3AGckzk>t] ֤׳Mkc'Zstw o2b9W=Gv^Z20\Һh5:ȵ-cn~\VoIZN,j6nu#^{lUL^Ƽ #Yb5j4dT7"|uk=qW&0#[G<ޣl摹&vTIF))ݨ R7ҜivFj$m. ;m֊^Sqyxab2%HE# w4MݪB;RST[ PȮxmjkF9 n7RBOP~VW=_5.M]Yƍ*)ëA7O:!GQAssHV~N<8\yRn72@w%Q<2|='w{[g TO&٭[xG  OG$sIh3I::<܊Pծa\\}?&gguQ m Gnpx !^\,"25]+zhJn)X.7ix@p(! Microsoft Windows Live Photo Gallery 15.4.3555.308 01.00 3 2.497562 1.000000 1.051616 0.000000 0.000000 0.000000 01.00 3 2.497562 1.000000 1.051616 0.000000 0.000000 0.000000 3264 1836 SAMSUNG SM-T800 Top-left 72 72 Inch T800XXU1ANK1 2015:02:26 14:13:18 Centred 2060 bytes undefined data 640 360 JPEG compression Top-left 72 72 Inch 1/30 sec. f/2.4 Normal programme 125 Exif Version 2.2 2015:02:26 11:11:34 2015:02:26 11:11:34 4.91 EV (1/30 sec.) 2.52 EV (f/2.4) 1.82 EV (12.10 cd/m^2) 0.00 EV 2.53 EV (f/2.4) Centre-weighted average CCX  緾r|qMkq!% LeK-ڦK(L*BG"F3ESkP IC1 ( R5 iRc@-N.HYn H6F%" !1D``I B-PdED `#5#G"")"!M0 R R$-/` rL(cfcDʆH2c%J% D"PmB R($t A5) L+m T 6  $Fb KbP&-$ k@ fL:& 0!l}k"' ŗ+Rp8B H DԅXȒ tЅ26Mb"SS-4 N %D SS(  p.S̚~f9S1!ʣ??E[cb@1AC1B)@UH((( h[xi:mL$bӤ@h( K(#NQ Ko4ߴ{;&`" 9ۘLlg7 Ǔ ڀЀht@@c*"b"&؜F`BtRrQCA4ڑXS # .k͝=q&IM>q޷}rBo62pyV:)k5b!AoD!) R-pD$115(0@7C.}ɮM4R9((RD^+>)F^Cŭ Lahز񕟐FMq5PPP,`"~Q3F 0ɑb3iѡX0CrR6:ڹ}W"怄`6Q":,ռgaRވeXfw]$X9☲q{3et1n ۞ΦY TPiBT9j)3N`қFX\5I9>(A6U3[CcˮmA޻#vz]&l Y32K>Kl$LWu7糧wRWodb6 !"hɐ J'rNHmьp=OבP89]lq3:}9jYkY/#7ǓPt~N5vDBT dBj8x6ӚGΠ IMt $Q5)kMڂ+l]aeҾs"&J,Lf՞Ɩ>ѫO~Kqnի{:vz= ~?ln[ֶP w b(NlF?б9޷6 u#R4I$!3`,Kf.(MMmP@@HP`u}[}//m̦Nrg2k];+czV=}L^[eɰ;n{=,uE@J9CǑPơ_7!!5#4B$ptl=थ  5|7~~KwvuzطuvqnثGǷZ]{m80gCqi|K{ד,‚Y"j{o 0,S&RtN咜P7fom;L@BBBp9[^{Ŝmck;wN~}CRC{Ntw4N:ݛKs`~\ͣΗպ|KoS-(H{W{"LGp8~˃ٴw'a($ᔊ2**ۏmc6~;NŖ6wN6l WnnԃQ×M9 2C2&rKMCR6 .F#46N~ϡ/'!(t QBa%@tʛx;:-`"繱F]ϯ8]+:uś%/ PE%B>c?|.傠RBbqX hGj: /ne] THIJd9SB!!"[ ..jr؀B Hˆ0c'-ul`03kf3+bAŗ;Aұ hRii=ooEM6zls}=($RT3T NPԧ : NLXA($anW*OsKնuhCHBp><[5P @5 >v^s'b+[_I_/2 2UHԦIt N( "({Fʇ*g@ B4 ,0nW_6۳ʅ P xp3Ϲi?Gfrc%n.k$"2Nt9*%)U'HRP($(p(DdX̓w^_[p=Eж4 py睌x#Ed>* \˷*z^z?w=^_^U r!T)\Ht BG CP MZ/dx(T5(d#cz?Ȳ2HjrT'c3p&0W7%pu%+}7-ϭL2\G!JBQ*2 )T $RP:ӡB%Egr:e?ߛd~wOa _i_M[`9a TAA) P'T )EI z y~ B`@ԕsu+5~+MjiJb~>7'Ec_i{} :nQMwِLtR U p e.@"*B Zx_8FH1 (xrI.Re; Wm TF-U{|{kV/ĿFq~ٷGn2iv1@ymי>*hd9 D()pܡ! "GAAHPGpN?cǎ^ Y|WB֭^AjǢjF.w_ExJ>)Ο9_)>h|;d7>e!¡ ify=n,w}ްÞ@-ĺ3$#$H$(`oWr8\Kvmd PJL$Ls52ԕ-R{~zG OYzg p^cz{k ,<%t|{ޫXݔ1 @U NC0AX''V ['Uvu~'"4@RhEȹ Co}K/13X|~glPʾhxoB Bcq{gڵWI]%C) t&}/^) i@, KR|i=S&݋.q+K!E 0PoEǸlߜGRa\0AB#i;gǸO)ҵQrw!pdd(b@"ХK=_"xm-$P"|Ly# `Rp6P=.VI]_,NQ`(2ҡ*2<ӾT|;F V"-~{}lOAPQ@VLz{A{ KP EILD業_GU\_sB e0 `%G0r)DhZQJDzN5ې J[[_|c.IoS4zM65!W߭~ɚj}m0MiZӶ) 'wkK/_{Xy(pF.VWKmaC`%QA"Sb%Xœb045$d lKSIYIƚe͏O 2cWwu;躗~}sc ,o_w?<=?~l kYJRH*jeDOwvsYnS(vZGzLq[`P %7fLz~Nq]AP(If5c'Cɳb2r^%HsI5/hkUD,;[B,{6= rSqnWlr^|gشF|)>_Żqo}/W?>cs g"f 5lv{w^1^ɹKّB  %ģ>DtM< 4HLU%2 $B iE*2Z^芜^E6gMs_M/o}Ms!KwxsrzܻnUЂJZ@4 RB2ׇ>#.'2X ,UBEU5vuĒZ CjB9{uOª,k{8x9!jEwtoyߪ|O̧FOM7Џqta<`&m|5M tԩ*횙]z0H) eVrϸkAEˑ"SA2)CFjf$Pjq@ZnZV|xYxvK5Sܶ~~VqdyO>P= -=}p/H/zZwk}GBAJ jZ? R!bHjW7B׫u**6[hELe%d*R!h5ƴIۛz.ITX\o5 !Wf9h/4_MQߒHu_߱}Ogp[m?B?U{/@-z}f v8t,s_"sT i#swI,d9M sTKTQ}J.6Vj2N+$`rxx̕trzrnmhzOo`ߚ}~'xoFR}{z=׽#~Ŭ>-G~uT ݽ ^7H˝YO6 iT XMsL7u77  D` ѲjsϊΌsUș&$~z #}7t̓?Wଢ଼vO;躟:'CKz-׶þ@@) Oo^;2ejlstSmhڸrw,`9-8-X2CiKNH Ͱ-)Z4:Xqz-K9zF] e{D t{*ZB242Xg -SUHY0 @6ZIxȰ<*lժeV8??gx};mD7y^_:cط;>wܝk%5:ܜަML3. M쐸5djXT'R b҂A[D m!rTĴ2JشoBcsN!"R>ם!x o}>g~: o>kn{~$-\_ͦ75.SqqR\P1.Д>e;;0U@ i,-Z(PP)P Q4RX|5Faf%dNOg},~=&Xe_Sp8gwWpup˓ͧ~+-6e\-b@M@74M&cV3z(Ɉ([HƱUK!5h j6Lx[,MV&[\wlP~K'V\Gžv6oCs+%~NNf^1Ȯ7%R$ &,  <`z/alBOn!#X6B`,VLzxY[y s]}gS:F TV,+ ̋YJ"dN0S`#f!ر- ̆De-6O n lR!#ЅIx۳\k1a.UTkK>Hw}ƾ>z;>WGcd3 Id@ս#@5(,.A@jBl)#$(jKx"$R6tERE2  BhեU[LJxZaXәSjTaR/o~s[N0eإݢ! hԢCKVlcS{FFc1!B D)b2J LlIH}7P59MkbN9+ȋ2MqVwmOcjyLn4i[5rӀ%bP0DNa jGAAEd7Le' -UЊ֑L]&@h3xN1 vvSXuW1[L޾| K @BrQ#9V Q=Q-  5 1^$&SHbPT)Vd`¼ LZT LƐlSM(6ڸƧaSj>KgVpsg.q]d`K `@+0bj $5-2$LtbP64!1A "203B5$%4#6C/VهuRWn-apC=Phs V9ᅎ}'C^[I Aptm΃XE )Ȅdz]H ƇV,mNz[Ptra Xtp^L 9Pp.4 )+vmYY-%t{\ޜs+<)J}OJ4XBו)=FR)JQ4Y1T !F榥IJS8fiQhMiGQ5*{kTY`l6ν|;sU*>rF.̺]QQ*ӚJBZ`.(YpVYD2Y !KEY:R׭=|=硯Zz)YI:B 1KLњIģ˜!W WÕ)tJʊH.XC:DIIĞZV%8$zCJ:yBrQǛ"IQj)*V{UNӡS cj`_TW##ޙ΄ ivAl"@o\;eXRU8u%sh}jWa2VÔΈrWIʭPS-{ pj{ W<1.5[91 SJ$s^A~}igka_ DG謢8Ujd0``b.pCou"Ec'#ѣZ"4X%<$ڀ+Ih<|}zH)UUz G!OBQC@jl%PMGj xvi䦕-9J=>j$)<Ņ9Jns0P!6bS:֙t>}|}2Jd1VU1"9zju/C|Cj9Y5~'PX^$t (Y^^}v=~jLrW\rNbyHH@"Ɣǂ[Scѕ"Ɔ:gq,uJVmzDqyN\0GLR0B7 `7f] 0P+r?CuM5~^@+pBb·bk\We p030D8g? F>|1w nlBmZx/yyY:NMCP=C@+yPp)mly"giQ ʝKmyd̺h14cKF~Jt_Ha]W+÷zP06^0Eo; ,i2'AP/ǏLBX]1 ]stODŔD(x[Z7WZu%,ͯ_ G@zL j [ϖYJKZ˜΅rFJ$WZw9 bUላQƇQʩL[ 16ߵP+r.3h%eghL]|tο\yYHoI09Ma_Reur,•TT^UX1aDPӥ3pkT\*kꗼ5e{֭Rdd6509r:?po+)s⃉MnV}CR1l\ iK2yQNJ.Hu) [\I2Mqļ;ϿN9E{,k,c)T)\Y(s(œ jjsAEU  K[}c+J;:vrWK'yhݸC1!0FhǛ)sNzV~ 73)R?KIҙNo Z<[}>䯺"?RBTETC69HQĢ)7?hJi|H^Ui&A+v٨ʰ\ HzxCUj LR<3ΞEU*"IyLhϷm-\:1Ҷa/@e~*jOPA[<} r=K^!ȶէt'"|[pƵƓ gFݬ$cE2̗6lSw(֪}~Kt UOÏ'3*F1V4*ls^}nƇVUB~(LDÖ0`pӖxc,mnJ8 rƛw'08f&1$GKʶs xI^)sTz2=/;jUe"y)^-*-wZGWF6+5[L:LCƩjg n2Y9cjoaeañ rcbC gZJ["dIuhyUWƔ;5bmN: YرäܴjJ5+X4*?CԞJ%eK«X٩$ ][Vto 7sPN r ڽ˗ }N'C0Xd-r8 c*׺%rBICRaJ+(R,G sT#Ja< 3ˋPw`JX@iGn04vmp {ӚQ%((8p`'7+nJuVJlyrݴJ;O&Sfiw&9GtZe^ԯBҲANQTFJĻ "F]+(t=ߧ,<"p6)Lpp t6ӹ ,ix)ý.p:t'(rFܣQ!9]( lM6B!y7׌UM50,iGU.ON۵$+*z *GDenUzL0! PY+ҽrzjO<@(#e88& `_Ր "O`ʉ> ;?L48/Vp7)yb>bLSM 8))lEy@j$:gP;LVq)/BСn HN99Д vhJ+i.ZsIQ!7.$} \P8_nyvIVג-ہ2<8+GmI:rh0H$8spq7[Qhjkt}H 6uJÿ|]1Iő^?dl2M7HJN~TkVOBk &JG! qNQGDiQ8= so~Ӓ! %rc6nFSnVǕKr @bˆ̣)ڜ9),BVKgk%m/xn,Z5jSXx n \O8XC ijnA;v8X疮IY+7< C)-E;s# tq+!Ւwq-v~_O-t0K"KEE: &٭[(`L *Ԍ#k--F ^aB SM8!mh,9YH;Yy$! -ˏEۓ> v\W2Qaڰ02\`J\ IQIhNXb$ Xx[Vڱ-97%*Ĝ;/,9R-ZiJca ŭ+@I ,atչqrwrtGA <"ᓄ2 PNzі@G.NK:*,'AD'A:x~J=?9p!=<>\`BabІZ:].%s0I օe?psӾ;-$XX6B-rkVw#2ܶö×1 pa:Y](TVa*Jvr1_D@A !mMl svQΈG(v7~+n#-Mɧ! 8, pPrC~8O[0D" [HY8M@4-m䅷'g d{VF&N+7I5KȻ,ʅCLk^a414Ϡxݔm+ZO-ǰxZս[q$- %SPNCCmŪP^QGc?g,1DCORST.Aht;I,CZqxL!1AQaq "2#0BR$3brCS4@s%5Tcd?"58HCiنݬ6wDԺaܫz>fՏr']Og5|z7sXrc!Ƭ+ơܩbV4ވCӨs5\Հzj+~)wg\r?41T_ⶬ9jgU 18ZjVsxyJ܅T[*yjW4 Y~s<7X~P\.ZtFV!Y䳟:CVséBU]Eg?=ʷjau-Crb^wςͫ?Uz6 T9~K'(WV+9s X,*.8*9 3z%܍\'#Uvsj>[\QzިTPYE*z bTHm%t&PYJB២g9ׇϨusޫsRX*+mX?%gbUwlVg곝g?uO޷j}QTs8x$-TXjᬯb3=^ ܰ拚(\kzܪPq{w6=OV|\s熬oWB=`jE !r:Fw~3 sV/|YG^ݨ=婪!6V=AoVƹ5%9^7Ѻ'BXKox#[Dg%63<8fVy/h,B)׎W  >Y[ Y^xg ϢqX͟5s%9jaNJ+w s䩝opTO{[h#;"ToFҍ= AhiXaWײl4=Ȏ͇&ǴӚɭbqME&.> uL:jM-jg9ru {sÚVs+媖p[zUqY*ϩkVA 9be 0[?17gNUl9!䱳>c]G[e4Fo'˞ mΆȐcCJ]N{mn)&m40EEmivE|s_j~T NvفsF][jUg?eyEK.VsE6c^ #9U~K8,s5';Rb ?!rgk7"Co4Q&mu(~sݿ;8] PZ?駪VilTm d(⹦Ĉƀ*vE/R"ǗxmVn䳩#,Z߇JėtWGCł-MIѼ Rұ⥤оl<I:o{\=[ cE+5h9[m*6*]DH^xgrlnuYPs]{W.wy `TԮG{CINĒXmiW5/@g8Q\>p_/5韢(ݪTz^Q`U+ݜHn;OyqVܞƘ6RLtL|(qVP)8.qt.%W/]$Xz@{Yhw2KGDz|p%n^ y}=ڈ_҅݀Ot&GdHa]P~F6'|!sm(.hEeᩭ.!Z(0'/]ԠTԼl-7m]^+]$ƌ;`֔偱ME"eGJF<(_$'DΌ8(s"XYuGEV X~hLDܥHma蛥˭6umPe"PTO촱-ΩcZ>7L(AZ[@wgU-Bf3UUU+o}Pa!T :ahjw펔3E vo6:=4Pr8Q$+&hk]h"9#Z+4qU]pDiMA&d#C^-JZai͊Iz:rbQ-u@iZE82= f%uhigISk m`lshѽl`׌E =lR{35-ޝA#wWke- ZRG~pMĝu.wjZabli`ه5RTT50_~ |sVQpVP]뫏S,6(saS4iW8.7i׌nT"Zbƺ>T W%!aBQ-h%D/ǂs(k8p]-DU>>2 ]wˋkmwÓ{/hw[Sbre#>(6]k{tw4}WkcioT$:!q1h"{`vvg{vň7f7]Mvh6&c6]iŻȑ{ʸ 3MK|'û ~tP N imIcLKndm EQ[h,TPt9ɰ^n=ר6a.昭odR6xR,ўJ|5 knw8]F^VT]$ 6Y_'曎~Vr,csj|g:荦2f$Hb 3#a?84o@2vqکэ_F؁u(.Ϛ8osй:- tf̽SJvGO{Ft-8ԚwYܡUcii-'bԴ q6KC#}Z:Aҝ'I0bdƧNNP1,s 5=U9/츒^8wt7 kujZfx6Μx")YGtC0 l Ss0=,7Qu1(דu};h͘gG)#/ R F{,{6 9BYb `mP`;8L/yg7ƈv-q _h"EӰ|1KZ>IonCxϊ[JcC@"ޯyn7!^a +: 9^o4IXⶉqclQ FpI'+aBhuK W hfg j7E(Z}TXnq߇uJ NqPeK uS]5HD 5D 㟒EW^0ZEsɪ?ܸ[[]4(3뉼q `~uzpMkM_# GGiիlo2?) KK˜dX_ӸBl8n|6ln@k*٘7G E7ؒrB.dYZo7!Es"JLNTgV63vj+]BqN6Ms$vLVvm2ưV b[V5k΋Y=Kim|X!m*C ~K xQ^ZMDvlo:>J[r-!Gٕ`1Hl;nEKt8Q\͛ a#_+ 3LSב4Sn1c@C (jp;yQ:#jqUˬu 骙!qNx Ì)-+,Ck +SR_aZa{M͵E1hڛ6FjSNoxnMX[b t6|@><3TF:a`lKٚԻ\#Xb[(_59rsS5mE{.vn犿Ps9+͈WUSP늁+XaiX l7:ujTI8Nى1 M؍cn-ՊÎKK'mpr^58zJ4lA[X P[ h]=Xk :C(7Sdy|7Vso<-;>Z,!=$vZIhڃLJh9 Jв3ډ+C H󪔔dIkkBm6Q^&X5R,N o<l#T`Ecjk8xpNN' BJ!ԥ::xZd$'Ȏc^;mwܥ Ibvȩu8.?E$mʠ4",F+Ay d' 4 䌴FR GTw_l7TRIfOvb7d}5V5 CC>A\ X!*$v.L}m;:>Lw[zcb@9@& f,3VOoOk[sE|QCWs:JAqiM?Ecj~7mnuEq|W|>biK l;s~|L$T4@`ąC8N4&#ǘd>փW }l4S:srnӍQ&ɨe5Ro5J^n^e:kjUrRrSrژ͑E^ȬN.FOT_*c>*#,} 9,C<{g^.ȢhiVuАKl^5gUU @w~WoƑ؃ASi]+M!]D I4t)"@Nc48jkvj9B$T(q}V&+tAl߹ 9סߟ۝ (P)CE&UkQߨrW?t}3x~mGF洼Ӱ^/ZT0ٸإ }Ccbh-R[w>+:]mAbՠa<Ԍ̓8 E4Ћߊ3KZ?Bi]()8];N4'9Yw\:F]Ů!^Xz2n+]i[Pk\}Tұ!MbBF # Ҹׇ56#TSTazIhp\{Mp@sjV@Q[Oziϒ5]z%xr᨝_,A2Qrg6x"7ktCv]1t[ٴ$)bs$cvڝƊ4(bV9akb*-q{/51+= sĆa4kSj1 ֌53C1]/m#vA{ȥ- &ZcEhqlIxeAV8}↔mš4?hhnO 8)9iO+b4qi)^?=7i V)ŢP*(q5[DZ A1}kf$'5hvm]SMKA5f R˩X)q g--lv+JFgEc-6˽ssFkpȱ8[jm5 @  A oP mShQ g_.|\\|ueMUTMBl,7Fк݅Ne٢: GJ 2;,{>N PIC 4K!Շkmo t>B l)XC#: EEhJxD6ij m^iXZWFKE3aF`1a "^hzcBA-oO7$&XopT" :i^%1V48Z89_e"JsQ\ȑ?NFMA .pq |Q:J!#;cxM,4qZ6L]nuӂRtn#C'6 W$(\VUz~< SJNJ>:U'CKZٖ:qq*N~+ #"mF nP ;+B.MiT[3]]X#X?/Tonc~{ݻv+QFb5DLH-)Fņ6i] ʾacvG1-0ZON{=5BǶG75M>蹘0♨PK=mU- sZmT&FJ= N,(M+ogh?iFV# هҖ5R-V] `Le'*/42wKEa'IO0n4Fr-&( l)U0s7#Үh yQ4/݇G6ӆ%MIŘRE4v:!Lcn^vhp l7UM{-3H~HeǖNmbiXfq+qp_mw ~ |Յ߫ $/xsmK)Z轝)n^b, 1{'6P]q<ftGd8dfv<&"D )o bw 5oA 腤~u`6,OUSN*ɑ6N5 Jh3.RyH1-pxrZxf)NJThNE~qQ`u)CU_\86"xz@hPm/?OE訚;-Vj7iTjFym9/U(V[%m}/@kS5ς|Ԝ 9, n׊aRb ^8ZK6{ARkK{=!>3ѸWw mñ) 6 dtp7emq?qW_{̬g6:F9®d"; hZi[(s0g!m6„/j=e2\.ٺ_Zf 9h߲#tx7Fvr¦Eo贶d.sDvG }V5gƱg-c[/KNn%֌?3[Fs܀7䯪><՟G<z]\Vnwg3]胟M@ߨ8ֈ*Tn[ cQ>*bNZn@QέAlZS8f4Tsjm+Hh!5+{PǷuE)B.Op>=} Yxs0#KL0D8SƖ6it>cy*mqq_%ջ7sSZ/{$}a=!uhZj$ 1ݗYmYm.~4/ϊUng725PI&Kmm*k\w X P$3m VxƩE|JoOgkShS9XqbD.ph#i jRd@{vhh@i'';(t07h ; ˕ھEyiDvЏlQQg7%CdHma6(, 6wxx,U2UEk)`[G>ZEɜ:&crɭ" k7xFfҎ앆sB8,y۬|U(ةojl@Q9TlZU@h@JܞƐC{{]G-wwzҞhԕsi V ɸ9я¡M|$@G 'aE y٘3,SWƼ r VGƘcFZT1o' O){ ?^{#~ci.|4sƶy|WQ4$9(F[Z 9޴?- wG_¸o*apl"&vgfĻ#Je,we;'{@SKo[z  Qldg'QXbfLoZ#g'U]F?X>~Y,J<5 . [ xgBh5#r*T]u J\xwz2oj4Xu]qҼ9-%etG\+@M+Lm-q#檿1%&d 'L֚Q(,߲kQx^hC[ v-,;o4ShyU,V0ÙjÆ(LȲsv]4^.]%syM4h" mV|\c&VS, ,_gH;4⅋ PѦj5gbiW܁Uf#ewU(@*.#)W ]V7IHUߡPMK<3:HCVDgeVw iVN]aeŠZEG`@qbBꖂ\ޙMsY^Xvb~|Ul[X(2X]Vf$:LE)&e6eX톷`sK^yԤx fJFu|@gz5-kY:5M2s܈[dz fsܶUoDU]]|Q?u9ҿ\+j Q\j, =Jj[Y)8THs'њW#5, l 4б_L>b] ?xhmlQti,3cZn!Lǜ|ggi&v+?E[==eW/[ߺ͆1pX _j\ֆ_7[ҴކS%'c[踒ICLˁI$FHJ,]4f3h0Bh%1a1+kF9Wz}˿/'*ImI@&PU*9 ZrUV[V^9*~P9 &gPE}3fR\K'^|B7怱gpRz">"ќ-hvs}|A-ɤgP3jzZBd9κ(>7ٝco=r˾6hv9lxQkÆ\X;?>+s'g ,Zl` w,3huhb-t6גs?Fuoh7[iA[TZ>pUFUfs/D~jz:U_T1ETϚ璧J ,Yg+V(c=h|Aꇼoٵԟnl47,y-l(?[{YL֑;Iff\tVѱ[nSs#L¼1݈H z~x1!8`ǹA9W:AٻK))B/sm(E@jr7UUN{$UWVl7#9U^~ nx!UoRsވ[瞮Y5 -$BܬY\sr ިuwe;vg5ꨣ@nxPtFꊎ夽zmDmf o8-5,m.w|LdN7㊖x6Qr4Qݜl,D>UG<5djß߫Ox,ï娬}u^6" D}sT7Pw*5{~y~-͢.z EmF]˖ͫgZ19T7sܫ\~b Q|йܑ;ǹ9j-ڂv=\GϪu}YEA x_H!1AQaq "02B#R$3brC45Scs@?kF K|O?"DNjڙVS%BZpZԒ*kK[*owg~zd!8p\pVs>*kܮuV5g?tVOn|9rjV<oGV_BkED7ڀ9ޮ<ܱ[n95xhx*؉U՟VsX+{u㫞=rV/Lz~^9*F(`@*+<scnTǯUnpG?EsX+w~Uz:bXQלsܸ+V4V?|:!fmG9=`CS 3ߨg9rϪY˗ߏV껩 ^X,!`5g9kqwS-P_%p`#{#>\Vsm X;`zVלjAV\w skߪ,VFWou]UU^țb ';,QSNZEmm.\үלu3z5fxXS9Xj7?ek~US.WgW9^I<8x5 ,>́(3:ؐSAq6ac0hض5ƦF6nݻD8TtjMMR/Hۉj$yBu)k[m@c & 4=E{`NՆĬY]RwMVEnDlD1W}ςt7vmBaQ(ܰXUYs?{Uhsu*uθ0rtEb##ivG{fb iCi#-rpx3MtP6 $I a/kNZZ;cMKdx>b47>"˅n b<&QaĚt R3;1"EkhC\S&> $cbJhf9[ԴߙaWccr/LfHe~S9ɱl@NӇ|"_vocE|‰)2ѻVỾ(u|2֡Aitł/8לu k'Q47-jn}V~`xsu5pM`B*ޚ<76[h"HLlb2=E^loT -ZPm!>[ͦv^)hq*/F$Ub4gA Ҕծ0Mџ5;F{*n,䶙aگd^+?ė5{VӅ34lQʗ)iYw[c-EO|Iigt;Bu,P2V7vlS勡808RJo1:#: r! V,xǒ駦:$2M݇LJF[xgXSӤƴrz[ѧY諫҃<}-|QՂYϚlu)~JsI1sֲ JdʹEkIs 7dǞv{ERF9.ۧhtyY}("Ⱥ!CZm[\j9"Cy sMy'A.c˜vb1g`>#k1R)x%⡷b'sfѴ4j{"WB'[ܣtb9(+Ӳe?׳\'v&D(Ji`5Êq zM9`>&- 6(kNFEֺU .MJӏٝqtR.p,'AyGg0hrsOS ܆>Z8ruZ!FErݟ\7gL6Z>抚pbzG5c~$7skV,uնԏ;b$(X1D9H.uxnQ`>/M0XI,͈)* qpsEs?%,ǖm0"JR(?0&J#̄VN6[SJ;%:s#h*nrEeaAQ@07^,v#KUi>>A ƅDZ oR`D;$Vf/Ć$&zJ֖Zj#11 mKkfEԛq(*nwIY-olFz$(aC~[}R:%fF2h@E6E {=#ݴ^Iw]zՈx*)^N}9FnQտƥE|k /e2Ȅ 9A,whi431]Cc`ZC}NջR·o7g7:>%~hMZ ب]KF~~r ]n`w)!_-+WT7N$GO!8ʷ&ǑٛDRwNM2pl(Bi lj[GKf"h8 *=;zFZݖj+M֩x2= YzfShC 7Gʷb1khMMmSHNĻa8:ڏ%#/&@#8 IXqzH}ָvM6!|ܼB Pdݞ{6+ޠh" gHBr_-S!`+ yqB#N*UoVxP#yrM9=~ޅ_p3[k8,(R5BX~6557kgiՅ*TYG4d1_0fY54Ѳ7EWjZ1Kk}Et6q>ӊ)b[m(Ҫ >niilglPt?GP{ aY_%(K>+jQ@3s@lG\vO@dԭ]+Mb3&&v:(fpGG]2Ɇ0Yo!ZLOd# (ڻjFؑ yi(A*k 扑m0uU_dQF]r@8.DM]G^{Ár}gm>CknoG1Yu8\E+ '.vɭ֎;lhVf`m+-o e; $-jS?}^|= be3j% 7_Z:@wq*%_jz48`Àv G׊4ʶk?t5Y sLKWg67!EQ!Aqi"aÚP6]~g:hch6nQ$@H -R~]=\OQrhe:ChkvEz[!ˣhw9C\:a&A}0W~g[9_gW^sXTIhQ+Po"Hڴһ8Y*Ɉ5tgPWj7kdҴZlǃ]um܆\;O#ؚڐo@\@vF5}~shjB1‚kyoDCdOK Ze- cὤ0գ:^KGr|踊G Vᶎ7Z+nz/QA_Y3z C?DwG;-ٌB}EŽuJDlO3j`Q l$dhT.atʼ~[J~v,xQ F?mNgkZ|sEԻ7/1CET|ixKOYYMw^sz v{(hQ⒡0W_8l9gꉯSV XOP8ZZL\Xmi"/ӵMmi|A rm'LCװ{I5RPtTو1kŎiPVN&:&icbP oQ[Q hGZT.ݚe m/֣a Eߪl: 濥E 5‡*@ E.4X UVs .,Gs0"lF;JoJ*R}yإ`BpƊXi"ƈ.dfTh1%# QB8n/gS:==Bx=KO HNixͲa4¦ţge 0Q5W\wO 7fo@Kll8.=쑆0BnoY=^B5XWj7#r Q*,, 4BT8$8?DCu nꛂ+(X5-1j: È4; h&1ZcrZâs0J:O9eaFZe=8/1͵ M Rs8R3)튊`"m8'Hi8&X@{ u [^Jk o̷3eHo XJsZMbRl‰-\u:70^ݢlfֈNV9ޣxhyYqS  wR<8l8Ein߂S8뮳>z{(уA>5NЩ)g%O<>9^ ՟uk%zs\V+y䫐Êy6 $VB1>FommkF䠈 ¿LQaLnR6$(oBrOF:#>%*x 1ԢyoxQφns.s i-t ;(_dP?ߏUt1afBLǂ-? v Å;)`n" BjFKKkWm\Mo 4,֢ZhN?]VqXz?u&`4;iؕک ~>?o'd]R8*ݞWY(" .TV/r_H>J@a'~OQߟ1_q0g".-h4hh,vM[w>hN50n#"n:4QȀ} )l68QL|=3Ļd?e=W*N"8 [m4QQ"m9(m5F‡\*{'>YF׊ϕgVc-}jZabQm{F屚#b%4/f^&K9,|{! WgyoF߬gwYˈfچVp-p5Sr1^XҘZ=l;rԮuEJ8Gٲ AbsA-݇DzqP*gLع,zZ$^I?|fV{ORQmU)hA0זFUkd"pRӰIh Akx7$M&a&iwR󒳌%c;1,5kGv 0C^k3L|33lV9;$o4pmF |%к7 ,Jy#x?MTEGVsQE!M9/.IۏqSr2?s߶P/*<4a êJ0DtGP(0EJx*k>:r>%Eը⎱*#.5|QK; ǵċ8)CiXM-}[^xޥ Cc5Нq7 *8P%͇dg4`[vI5QtcC^ ĔRzXb),%0װiRZK'$]fm0>`_* KFq2V)k\ۍVįJhgf4:~:7\q[56ݻzHP`-&۔Mqx5wҋF6t:(">kMI>"oUܰ[ '1sC惒;[L {>;4#U=CoLGb%?:>KMZ _uyR1كob,񎐅0Gz7.j2r |l&$Da7q)5vCx?ڟ~1b&HCso&^p۳6@p4|HC4v6 KQ,za::#!ڿ/n@㿚 !FĆaiU~u>θailF56PNL;gQi= 1*DX+-> BmO\l{AR7Jx(V\V>+{2`E8(jWT鿴mRz^FaæoLR؟,E&'A|[=im.Ғmмqǰ۠XN˰v9 :.a+%#vL:f[ڭ>F;CbTmГ6d"a8Lʽና?)n1Z'&Ŧl* WYSl/ bV4tFv{]uԲF[E8ZiσPl~潶T8ۂr^rV 9mfb{.h=}wu ieP_u,sNKL3ُ9&%!p$37.;b\{S?U4NmN7bYS%b;} j5_eɔ>+Ou(Jص8*,;ħ1i-_3tktXD顋 /Ŵ$lЭ'zH?],pJN Z㴴ˤ8|#򃛶5vmp$ih~p#iMhfMiH]&F5¡&ԭ-&iYN u-bv acvjLQ 20k\6`7uIYXZuS'h)4hE ኱ڢԪܝJXC9 *,L5g9T  ۟d@ŝxZ5]PbnA%&z6VՏca^-'%46ǁV$7 {NiK4c8kiN0]tGmD{i^1挣"9`[b"{6ZGwzO@ҍ0g;B3mÒ᪞_t4i024ys\HG5Iif!CI;6-?##5cCPATTTߪEz"‹X846t&4- uohSbĄ 4ؤ$ƆM3m *WHJNmXg {?' L4|C:?mjt'{9j/m3b'o:2z>=;„xEгcGj+;Eh[Jѓ3pA.xaL8cvM ]/fkG i6M-+4ZK"bRuD ]\Ťɧh׽',]gWW_i 6Bt rǦf(Omu uke9?R-ql"ZhqqBpą5 @l߹AvYbGKnPI-wഗ>oD8Ƨǭvl͉UXJju^ iLJ7*bhb;[Qʺ*ܪX`|U 8,35Dj \A jq zӒs5lD6W.iMJJ>^/u{ok{Oybё& 3Mv^7i_CC2a8mkw|YfeѠ Mh4$I3,؍ӶͶ.u(np4rݖwJH9HR.ecXqNGZJ!6?p.6"U*y {[kfoDXsj^Lݟ "C~*jsUע}.U5]gzzj/BڔTr>kcΪOMN j͈<0B)/k [>hSޮRZ^vFQK[a?ܤ #ť淎DwŅeǶL+xiGLD2ouXK,w}G|: !TB7߳ #zE"F5T?91ZצMmAM}9pZDsa{kEn6cNf!FohxTp^gP>kfg򀯞K9zX9(bnsVH<)wfrgr>&G& c(~<_ PFK[Me w"g}ψGح}}GH"< X !1AQaq"2#BRbr $3CS4Dcs%t&E05Tu?RֲZDSyg3`&j=KLNZu{%kڛ^ҿN`Nʌ77oShy)M5ijxo蟆Y <7*#k[ʼrŌɎPnܼ-u\yxP[ªiGF 7l+FUrm+wDjF}fɱrWn*ɰa Ul*ǣ07&|ZݏyaͫVV]U[&`ѯJT[ߣ 6V}j5\Uw5&Uz ҭ7ws!㇓rCʸfʳ;٣U?qhJdѪ4VUW}WۣSms6hńjUZ4jfΪmαsNG͇}YF }Ei٪<վҡE0urO9CD}*n~5qX6F>=kL+=j U1;W{ ްn7xU}[][MVß|`kɲV>^U\Z5/VMחk{UxrͣG]ӖLWZ^[,kɥx4 845qUW.o?FW@M*>mOVJ&`6Uj> 7f{s!*d2x!BlZRTSK6 |tK^efǀ>B0hZ,'>m֕7QhUjw1Fn=Ū70]Ϳ 6UZOֽ~Ur^/{}M0m=jn]WU(WU}oj *hjV 1Jܺ;Pl9& jMU{m]gYɥQUy{g:cC٣}pb*I߻s{h&[&5%G'o #Iґl @=bH)骠gtݤtqecV{0c6 y )~T,҄nMh 1+;;RDͧz}h5WB9PmGt[뗌wk՟ENhU{Ū_^^j I:jkUUEUջ֦ƪƵ-ֹwjͥUBuy7p&ƽ[ܳw4Z-Ŏ{ 10Ű}Z^MV%۽ az5Wŷ}+±shB,cͲrCuW>U 6g |!I`[o(XVK39vn_ب5V}Sk)LQ62f;K#jJP_BO=YDRjh|%X2͂DGa/Ǯ*tڒW0Be͈e|wG[ g[o@UpѵqjHһ^Ū[tJ-vuBUUť3ժGẃBI~\ۃ jp=tMVսgwwI:mtf ͸xxqFѹ^mUX5V:㹏ӗ>L7 ΌԪd7I qWvub;JzU ۅA説ګ?oY.Tt11)ϳv[һwKM՝ݪѵ,-V>]߬yʻgM b`8Or)6#0?"ӣ?(ۏͫRn?zŷW4&^._zcWc:4ڃB-^=ҏNt0Ъo&ݽhC hZUMͽU^a$F- \XiUCVkqUūLō޼YJc|#M;e[]u=!%͙H=\X6m6p(+BaI) ZZYV]!QR p۱th\^Z'XLlٮ{[^6wJH⾨%,ɴ~$6tr:]7Q|&C^ڞY?ZlIw֨'$q0 [V,%?QrAZءHvRI9[QjZD!$,F0@,fdx|p&e#fڿ_Uۜ]M8~w&1<@)ô;4Sh4٠çsb^ln[q]6 koEq1.ZU՝{8wlB"7 j,A;<^x7Jgt#3œqku\ p֫c8wj"b֋޸~;:xc͸W~Uʷyxtk5n8z9qoUUVP k&рuQh>^Vo&R-?m~l[t|(}\xw7zz6W*KeG0=z"m=kR;ͷV*ã&tT+a~hufJ=X@$CRٳ^%:zo=xuwfXz<ڿ*͆VZb`@w;Mn+S9I AH9܁+#Hm`*Fqכ>mb/T]PR_;@!7FZ;%eh(;,{͟hl c{jYuRUڋ=Y[WmO:SYlkFow,R߳mB\yQ,:-h=tht} vazŭ{;7ɂh H* w2_;ee]Ew*k=bmvizVR_\#,@d[GmvխnW;0 $]c%ݧfN~?!ٍv6[U*E=C DЖղY}BlЗ L?"sMgX(ԗjJ4{$:{ <|Dufr&3^;sh랇yy~ t&r gKqe6-z&k!`Ε ]ZlURע#~XNqBղqa)ҐҒeN#qeYг *|!8݆zacPVvWUqHvcm}oеuyU5aIk3Boo|Y~/._TUFCswV {DC;sJt!iRT "2g0!AH3`kF[h5Rnz4jc9ùYf84x }VmjƄ͡·{x8=V{yMŪV+tZSѧ^U(wk&Yqx`:L}ӓ%HUF\KuV:["KwqN\-YtW%^)oHLRLPg{kt%oEU]ʾ jU۪Us KJz5p]*ƫlx٠+N8 yIksV tDc`V:UMxSo&fPs{hx.Hϴ`Ѵ;x2/BWXJR! Yˋud\]*J{SOj I,Ͳ)ZR!GHʲmgzK΄*ʗJTs8v=RbP%1BS?t㠤ؔU]%@J/Ym qfHw/l7X}I]uqR817o?=%=w<#JĽG 5Ӷm*R]. HLi-۴ݳ_y 30 ͭZͱӕ6pZpJJ=B%lĿ^&%0r+w T%6KvYP~e[;Bɴ6b]!H p{)1IG1okgOJT-<}(D@LTM!k;[B۳vWYC-Q`ܽF39oylbĻDayGHpͶ [2Xme]3D:zٗڮic HMU}5\z BU9>RbkΪ1 AYJ Yiyԛōxj8KNHI5ʽc-~ *jW|i>97)/f5Y4`ɳl-KSσ"}jaDn$=\5K38rP! AtPoV>ÚevN]%~q Bo%vT35%((ĉ^t:e\th A<2ڻB}ꞭPzVLW0f k FrRʗi ܣD] !Oî+eX_s7f9,=._\ 7Jl{f99x.-.d":%}cy6^r)*x_U)S˙B`!@Ŝ(kK*\;Z]?o.ITTVJ 3߆vJ)ӷK}%Q(uzN/ސ ݩn5XZ׃UJj͕9VZRTZ'Ż6 ƽz$gUjX/&zJ9Q0j㽡x6UIUG DT{KZ\Wlktx+ң*ZMrϳ%чm|׏U=6MXUq ]S : H7OUEWne;xKJB |m*{qhS31 EY}zePhKVXywӪ, 2{K67%.%ZR@28^L-Ge*Aѻ[ڪ5}z<[ ϣwEV5U«@-s՗gHФ9.\CjJ,`|p-\Tc VqVᇓeJ- >)ѪMJpSj6/|vj놭>ч٪5Ɂxoh5ڊ |k b2?Jȴ~p,řvK`zrÅWуytV \*ZעLLd{0k8Qt)70Lj_(Y_Zë[ëwwUՀ`Lq-[Fiگ ԡ0DoEW"Lʈg6uqt]>+P!OS"1ML@Fe;[m/bvJOWdt,Zva}B]Q=D#CK|u+ɼn#)1tyUrixnjލUCtWwF]56^̩E.$˼DtyWsBcl5Wjqΰjo3qR4c΋U`+ r[c ι45,I$.TNgFwku'hz2|\l3ByVjnrG'[YurEfܚ^ϡ{@9XmOVWa)^-F%j@&qu,\=p~IW`؎1ewݩQxc=BM K nXoTY@./;D>kנew϶c&ToA "s2gn-vzoo CZ}j?U] t %qTwkJ3'9UZeVpjεj5NZ0mN d~Y5`3iZžie^=+զ>Ѯ-/ +մzs$p\٢/Z?ba1d.v):IOaG"8IPoTsjﯵUw^}Ӫ[x7}eΫ>-^^5W&QmRncxֵ}b~2bPyhJؠSNjR^J ՝Ҁ;j%JP6天ϲkz\_UjڲջW.WηM۫MVg ⅾ+.xpK;0/Sg=_Mf?V$BQ#WnJə25^^MUX i5APV RRIժťUɪ}ZFkZݥxAiUPc>~,EQjnUJ 4k6*ոף%۰^)Gg5Embȋ8ܩC|g 6ϳ"΄ V^Q9ɼ7Mj+V㿣h~˽hSݤ>)R"x:nRt Ph@IS(^b#x#ϢףɱѪ1c<'Da Nݮg&jQ$ MɣUbZ|&sUOG6[gߧGv_fʫٻ˳?g9eUZWM+A|3Ҕp9mβ0Cv{vnIH.3y!uY_u/f%$SQٹyI6<*t\Yݨױ7 ,/n_.~rM^mRb AJH{g)˕ٝ/P•)R S D2?x^b(I?a5wjֲQ!'͖J5F%Ff>mUמtZT J ߇=[+ vJG̞8IdEuWX6YA|(?iyRgQ@v1ý}~U?Fhz4؊ݛskm)|6v}o{k]膑,jзFVgDCˬ)3Y$HC %ePmޭTz7,#j~mcR誉tjϦ5U`۽:87V-UQof;95xsje!.˵>%tBw"ٌfϝZ\- |ET/!I F0ɵX3t!+7:e*Cިږ DԂuǖ{;l*Ѵ%]ԕ  CE dۧ2ݡB]$#} YrCK/W *|7TpŖɑ ySoƸ7ÅwVyxrUTBIvD;6 Y;Y5+˳LSZ|_f˕Aݡ^LH߷Zh鯜.:[ׯ i10NWPbA`GZѽ"z!fY"nH(eէ~ųjRzEWXxϋxtwrUxڹםTڱVm^>}<~Ub%N-OTx-ۧ//T] NPgN-Dg*KŽkRSp$ Xg}RuJEWivAiE;8Eg\jzM^hzoG{VPX+A5Yt}t :Ѿj=jiժL# ULݨuwYqx,DX$] HD$ ==cy]mSWP erIQ0ݩؕ՟ T9`Շj7em+>`EVC!.ڝuXDoIDv/ б.8i $ٞS ?Ldzn- v!}T|B De:zh%*BPdD tVjr?Fz[GC`k6/FϢ7k:E&KUV Y,7_xtWEF ŹUBLUjUgPj^3o\Nq#6yVYF4!U/&zooZW6{?bjtag(TաN'&- p 8ɾ^}属' Pm0c-ZZ6aŧn{8m,nSo ,G 6_c߅*]ny`Rw#{BO(&eYv17&)ZT$Db,jRtB!^J: hJE>m|kíub].E̲ܿv#? K8I|ߚ;~HZZlW$ )7u}0b`} OTP!=[!WzP8er-h~c`xV7pl8Qc:ϧm誨4kݸc^-Uܚn5ŏ0Wn7N8n*QD5j95jUڰnN=X5iG;XzbUVNu t5Z6oc^=W6־4NYzrjz1p`xX؃y5H lݜ"aMcWbC76ݘCEdl{skBOm مiL!*ݦ˶AWض;m $gz(Izf/[-@IZݬ;*CuPnߡզ̷-`rzzh`'g؝B-)syJxP%SKd4i֔. >3 kt?Ϳ=GeǓvJuXE1&*lpg4j;ѱk_~iph5ܥ>6ʟ+ g.+X38 ߹Ls9B5oFz]V~0fכc X AFGGwUТxtH@ !E0}{l*v|.=ozT*6B/ 8kݧ6}0Ǐ&O֛"nvOl%F/ |`ϭhYm?rGG:8#䴸siFZOr`mԐ[ZЕ8+^Rg"=HcՕ%1s3-u6 P{/lܿvTt1 l`\[ܒV[Kڬ5UJc\y-W×u\SC%]%1k/U{];^r,oAaQkΖݦnJNbGM6ϣtU}{a>ZׇGןEUQ~zNFjZ0ea>~|N,=m8ƣÓcۆ^xl+w-|{q{ :GiBG  81KZ^sUo~=Ҡ[4QҢՠD7ꔷpcưR>wOKK0ˋl{ۧkKTjͿ dQ,n?h5EJn6.RɆ`(}T3+]v P q f궇hK<ٖµlArՓg=[ v4H?t͒o\,|RO+=+J ]W `&ZaK4_:(pנ"E=`\.&@ 䋤@nQoYP} cDM۸Ha.mI$G\ gKQl|Z7pn{tx5ioUV؃)?0Un}U*mo<.Al柸R},n>==VZ^UXΫF=wo| 'fd52b(BbJ]NkZF0/=[ TQmfa&ߍWIV0˻F=ww}W~- ѱwc< "5"0DC Y֙(l&@;{s+w8y6N,8ڶi%emo@vkR#QݒBږ˱ݭd Et.Բ*Eǰ!xס"bdS֠;Od[_[_vQrTȦٳ/j=t簨ԇvͅ6B5,E|RR÷%Ą<Y5r r وpI_ίQ݄kQI2xǓ|UZZ'|sA3ķ|4ލηKX~ףTŰ}y73 ׌JtiZYTXF;3)cǛm歞xr4@vn"姐)mcR?Ė~6-А?T\I)8~-3vfW=I v``F RE1o\~ivsk_8xveފ7R; %D^f?l#]ra%t))N ҤRwwgKOUnRlv?&ڎч~Rgj}Ρ/CFJD?H`F Aӣ'L>OT$0LDS*줅xe;t{37'CwբN9գ?V;}| <-On UĘJ p|ۨsBxD1\T tT;kʑe>qwnpx=}ro>~0h 0ߟV>RՍT`}Z`F ӞRYqgN>j/ NMg)ůe!#h,o&jd=sZuLqhJudJXbv~э ]CO7@2,y݃l0O\=0sÓMfz/:~RL+A)ю^ ѭyLjɺT&]v=rwB$J;#6Bgxi+tAIʡk͘][gxu czWC*mk{zthz![ŏjaSetfukŵn^ū9}wËOƫT7ixn~h#C0&Oe[t,cۣ61֡=؉Bw* 3׈=F,k9(C-ՁPm&Z m#>ޭ\w¼Yø67v-L}ߊX;-ay6vǘ^MVm;x%"+ nF&/@ #e^7* q kӵ1|Sg*=Zm[Uj~E6T!|]gf2hR+GY׺J+Pz \qe[vzC#1Ƀ!*S0ACsBzUfSt{TN9kw;\=Ȼt g=ĨyT֝[ZٚrYɵNٳ泥CJYkAi8c>&_lZR{M$q,]jf}\>_-s6)*e0X Kԑ8wCVbp .%hvBT OG..i*P]%$!{牼*%oc K2 )d 5ueԭN7/^%'e-[:ԫBiB޸zSzobA&bZ--VkZ]! \A4Y[:.d;MSAh7PDAS281|@`c}hF4v'ẽW ohPh6# [ŃĪꝀ>Sݞ^Y FӲ)[wF.li͝hRR+)7BxG߸zo) I*2kK1-gB)/Q:A`]Umǖl6ҳ *P^0rWwZgm+"_Xۺ"z KIR^FH 6EҮx)՝+PpK!00ckP#iX]g~]fcuߊ[%me(qzL~ݣe%NDx]sicZ6Fʹ,63r][w8^RWv57#c>mdIr |z O[JԤ0ܺ#uzČؿvkM]{ ae b `kTiɔ/`+<pDby^e0':{b|GxjƠa·5W{UV ?]{{9𜛅yo[S ~RL5CvQּZ'I&=0&|u#݈|c>I5ÖOlE!봗b9{%%$!E`$dp.8DGLXn~Tlg o8_#BX^ʶe=.^:[%Ũa( .Ԣ S6t,q6];K-Dm>visipB.#ÍԗZ$]kz$;/,a?ἑ;VkAj/V* K}bxU..ЁA:]uV7L)%*N-٭EŢ̔׊ ?RVZzCJT 0]YSC!η;|!~X&09ϬnI{e?ٴ~̺; ij.Ȳ-O6=uսj]XsL;|7 J,eWܽ(Qsjuyҹ*-}v$Zl؜ vzvI앗d#FtzT+^P04H||ZͰ&)Gť?G^Cǃc3ݼ2ES38xGO *3C<=|ZpSǟ 7LЩ 0 QcΨ7 5 a=|NF&Q?iͷ)Ffҷ33bfI=H7c۳û *LX-]*?jR* q?jҨζxBk!/l݂n!й8@&H\&Ur)`K<X-F9tTѪn|76`hxI1TxrdYQms &>\B/nU/ jVTQ+3ȮcJU->š:2Kݲz}o a׋eTjz1zf"/0p _ Ր$|H8$aq\1Lz֚ѾxF\u%/x`&3~x4?Tq֡3̴5v[ 9oМcu鶑\Z gπ1njG*,@]h4}0>-P@ǎ~ ]8Dg!/1ư4~ok3p,12`a-uOx,a_\XOe׶Ua?>ȹs:Vu;V\?̔=S&毌jqOl/e˵"AK UbaQ| =~]De И=,p/0$ b<>C^~1M@Ya1c8#Qall}#7$EBfEN{5] *3dvX!XԷ@9#-/HRRo ݽգ^]kPK!|&V"LRvqvmɴv}hQM踶~c?AJSC[R̷JYPp} *]+7,D.p_BˋC `w/`=q.~׳rN #e_XeYOUn U=8rOjы%_:O(^DIV;-mi&;w KwLशƶ<$Bn*)U(z:٬djoR]VK۸Aͣ\z%#XrjmUW{k\j ]u,5(5WJ͝TzA"+A3!i.OTRqR琄 篾`5h}1s3-L>` |f496bda{Љ&yp̒ۥ N0zGc4Fף>~F;}'V9 £C~C`#9BR1}&'\=(`jљ^:rѰ9Pisly1ĝNzP&8mFp ;r0r;pЀx6ߘ?O Lb&u#^  ^ J16XkB{qVmX_ UO)P!d@I3~I(.u2fނyu gwPxv(r?([pM8Q G;Mˇn㚗P c{6V֫O[+1K%2!jMZZ"6ó6k|n#hY}}L<Wܥj݊,hyzL# vd!a% 6r̅)vX͵GZ,@ ֋<Ԁ/Uo誋Y,v (NxV^t?V•8R"a:xa!?z:]٭Iz(U:⮬-c}gxh&-CpA&.(-ق* Z~-:ߣnǠ߉;fZ["t*9C*XjKmH6%JHD$0$ պ7lWfdu~gw"h Hhuik k`TG c `10Q? Gt 0l# N2>|9IB5jc3jݬpߔu2׵pښ( G6Dg G߹^B>\ۇM'֢0exŴ,Tmٰ&ΧC"`߄)J; \:Uh5VXK0m2㖱lN5pj֋oѥUQɪ|*4j&K29Iŏˎ{0Gax6GdX1N8s?ѯLx6&Q$Ա"0|c mQ8wnp1ݡ|yОV8faf9Iҧ28i^XDGM9*Ҁ+/,vTJcz !RÖpNMh}d#}gzO27e4A}m;0~%ۆCAC@Fq /Cg_b8Q!!NΕat;eĢ.M΂x F[J^&jr ,xX.Ԙ.iJxHXoL}%+of*HM=jV"%}+m.n29v^z{~ٻAObHr-.?Ch0p]".5Vsnllk݄rٳ:T-(+Rpo\2߾JgFѴι,T]Z;N8B2-Z^mUь;A'.$5Մ΁:Ѱͪ[OjܾڱY=.Q Z0*ݺ>Bq ~;VpG\0o |yjc\ s&M#Scȓߦ wVYc4)uxrZ vlI @q0kv,e Q23dywTP1aÃ|>"]>8#`L/32iQե|~c\4Ґ?׃@OX1>6e܃o#㬧YeSadNjǵ0iwcߋF{?irho9AcL!q8ӏp GG/YŻb_ˌrִeeQղϓx wϹU޹z3F)|kt'A,xɑgڣ0OXvo@=HQ63!*ŶlP#ZbC]K7ѕ疎9L\"b!1v!JjpS|UuHUYq+6a )0emw㭢u.ݗ B(~z~wĴ&5۹joQwJ&xBYeOhطXh?>Xy7ٗŏY S)&;qWrHK56a/FlaJ6dqc# wѣ5IxJuX'ΆMF8V0:͌>` Q8օ#e8XcVx]9VNˏnkxIh0ُ"٪?)&$@ "9w]<J[TT&Rwi_$qixvmA#dR{Qe̻*ԢVgiHWSjtcxDfK-h7lS3ukzJm[5K M̭Rʢo ]A32`߈m_WUc)wd|w$Wz'BRӴ6wܻx?+V{JӴvl((cZn[eRkWW*ZUYܿw~Dzb(Fp*HILDgN|P;{nδkY)W5 4}ڰű֫ůB/U'NҿqT8bYO^TUp@;$D%9`1˄2J53Y4?? cDZg2쉶OA#2ьpp>PcDD%|b0wcdgdЏldcnGw/ A10|%-LZӺ fǘZwCz)̰:5A`4SGY 1xfa(a~~c|r-9W&: z̈́F80lpd  ߆$JfG*2vS G8Mz1>>KMo"z*8F,p&9'wx1h ɠAbrMLǦ8h%(ol!=G"| 7Ɇ;DFY~/S@AMf;U ὫF#)'x]ӮsEm4Jx! .eR6.l0z˅X.Ec!K%GAǂl;.gOiAO.@yt ː UѴE\\vz^^D w +.߾y֘|B+9 Z͵vqB!>UfY+D%B#ǗX[,q,ĥ഑ A_)XJ TI%FzeBb@ߞaZUAgv;;դ=>'rU`# S俳YB:|AK"$yZ9c޺'v`U^d/&pYʊME7SBit" bi8%>"̯d$$O9ZRT;ZBjQ%#9 d-x`Q8)KozMqӒ^7g~M1Cpwrkiw a[͌%w-{"@+I~`%HW ~L3L4\Y7u` DKw}Xbwwoc=+&LF~Q!sPC&xd40>%wi$¢#xM8cc?"+DށT\!Le708wxe?IDnxoh VxduUrŌ6_v>Ym}gOy닿a.@ Y۝gz*aDY+t+J RDŤqt=ugMn؟=cb)Vghxb5j Sgax_:3]Z,Nx0S k^qkxЩy85e&ixfZ]CbT 9ϱ{]~ ?&)^,ZJgO^|!jNn`bNrⳙPaWAZ@@sa@GdžmX"iy5FHi3! el2~n>z{#ʼqm sO)P*bݩ'|N6m\{'yϔ۶wc!ߺ-rkg~ۙŌgt}\;?&iXn^',=>·}y'}sioVq c Fa1XJù9Fp_fJWܻ\>~4mҖ剃] ~صlt5ihۛJU#_Yc+8>GA,J^|!?=tOD JTʴlٶDAŪ'g-rK1b;}`X qmwvR9M*I'FB A {1u*zVo.qү"O[d|DxDK1->Suv%Z LrmR콋i}fv^mGJ,jSNiQ,Vjwq%: %WJ %xQta,Om zPx{#HJue@%#rc@<31"#'Z&g>pi9ǻ%z*"Y nn Ktew(p2HĴx}evp۰پqRODcuD8|-nh-9c<|bKC\a间Xh1 tbtgLpՁ8JbyPCUPp5>LX13ce'3K搌0g 'Rz`Ї>I@i.c2]ǗcѼIf}MjteX}Z2rD1lS'#3eNQc qdž#dDľl6i?Ue<8׋OL*: x\|y09'A#m(KQ@eN!8 EfHx}̘S˿̈́8yB"BCQcWa^QϟK6\p/p+Ӌ*d$p;CS( 869!M `' =1ra馵D̵* GV\Z*`EV(XuK*.iH[Ux.#}A& ?2gxGSF[@sL 7%o,a2p*N&d>掸S)gX9}գK~@δ850\}39=0knx8GĘjqhN+&]Ûii ` Ǐ8DŽ){xaA$?g,cRq#3-&3 zO{$Gogt30F0<#ݗ`~m{ʤDÞ1x7At0X{FB2 ra2j_F XzC,Ya0O.hH)L$/WkG+2ʽx;C-L0,d1`]~O<~) fg,eZ*rßvyhݡ3×;<`9.q,,n<'˄hR' Oa;<7avn/L"8C\رoG x2=!/ohwY۵Ez "Feew`O݊pֻNl'3Up&S9ƴj3́πegRh㾅KV+\drKKԜي}|=>&~e418AtvF{!?z> e-&{Ǜn>_n[BCy. 5>)#Y᪷nd+:н0UF~m1/- qm1:|nM&paN%*%㎍(Ke\xf[i qlai1yvOH0<:(8n&x30^|m"-0L1JZdwND F-1brO=$'G8CNjHn&9hy.ygeҁcGz.y|Z8N(ɣv' C]9DdϏۆ?oL@F2n2!Z70ߏ)3ݖ~#t0)Ĝ'0<2k8B }/8Ϝ13 3II#p#&01FE^n!8wqibxDݦd.qJe#DD!ů<Ūז>?XHS#, SraSL1L,RՠaŻqJeSs_ݏ)_7}[nIK),ݕoO!ÂVf_7/fS3 C eWaɫ{kW(?UFO@C#aavdOc&Gk%͹%ÏȷOY<:?eRXO'!1AQaq ?!dqr F{#łHPJ0 "W)H?+ݏu&hyL##sL Ҁ:P@mOn²$3DπI:(egcnz1y{ At7-2x^]Q M+ZtGoc'2X^ $2<-0b9lZtOM㍤4@Tdlp=Ɍ;m.3Zc>Xlx>r gv&hǺuW?sA 2>7 qL&*AFdy==1S}9`LkzY4f:i {;ez9^0$"ﻎ2i1;^YzSYw7\x?#ϹgRg*W۾ăݕxkD;n,l*u*"l g ĆxIO/zp :I_ؙ.qFWL`O): ]U23.$rOhj>yGxTn 5)yu:R2v~uwϊ K\1/b 6Nr6>:kqUٳٸ3.1V JcYX\_g=N678,z/oɻ |N>Wè^%D6 K.F{s+~!cms;BBUδMDr'j磰g4sزVgXʱ~nIUp}k& 2Y;)1LQ?ȶ1Ӹ{\+󭏃I8 >Cʝw/nیN2 ˓F-nҸJhT j8X[x >-gs)CKN';,]}Ə?xB lQ [\Gp,Fx4hOF$I8e[+f8߸ɛ/7r4M&r1vkt Z:9T8~W޼thz/0®:gC>wv=T-$;%dl^1 ۭΟN {޶$0Y&^'q<sQF(_M&OîI ݛكyKCרa'(.,=W]}c>Ӭ1&R1˜tCsJC `0DƳ)bqsYXn:틺 fdx0ɊvwE''L|:WM޶|.3:N)~K f2ynkZ!iًY>3k0ltGX`wΖcoW@+⯜ERcg ؠ޲5GgeLktXY?EU̳8Ł5sr䫽MPP>>uȍs0e8`N`< 0nccڛ3 lҟ ~\џaэ38F>c_ጚL%"l ILӅɳW |.9*r~]~bZ3v灘(M~pqe, !{)B!zuCх3$dUj]ICIDFag Cktt|=0=Ht2/n3F;|<ۖ&DW: aexk*qR3 {433;zpb[1y38  sїP}*`ok#9A{1Mwq#\%K2߸i7iLhT:}y`[`=8^HV?x &9 kyx'RZ**Ywu,ۀS63'!3'^ƅ5qp.Rx8>QXo,1k7huy- #N= S;L`<3RF5 1L;<|(ܝt`!=U1O N ^eߪ^7I2.3 lm(=#t&{і|er+` 9^\R# |s0xp {A3sT ^ߙ?^dg͓ /YI.;c*~=x ;wuz/J\jF :$覸^=MoFqg~A5Ҵ9;bg;vŚJ'Ac5>gu\ǧ܈9rʮdgPD ѵ˦Z5|es u3S]a>!.,Wyc})+ N_f$jm%X{p3<[EM=ek;q ')fr~*BUtƋiKy S|ܼpJ:6%\:FƷb͚T;Y<Yu`Qӌ3x=;MKׂ^~`f};b:YXg/{U#vгEr3!^mA1`S|iс: If9 Ka;EªB\Qb)Mgy <=Jˈ>-c1JĊS &F "1DϪceve`+<=W`fx\ְD:^0@vL8H8T8.U {~=|fu~Ljnm2fNb}ӎs:tC9IoDwB2gV2̜;)\~xK&m `S|8LPg?|GOe&4d˚b8~S3` cZ1! 51[֞`j&f̉L[֍(C:_ /Y!?D e8ެ愿;>Ȏog;EF^`6O.~DK>$$Jй$Ƙu~I[D—,U0t>weOy:3o+SQeaQs;e&0ہQh+g >diie&1f<#ُͬ󝲘9}.v49dO*93\8|xCj`]d-+3_.sD.6kdx+;v/aj2Qo3 "=Y}NTxdicYrt t¾adlj8pڐM/nd)X&pFJ2MȆ:9d 0yapxuig1c4WS}xnGCV$`{Op!سXټ9j2۴KA3eȏ=b} _Gi8?0g06U)nO`SU>NWJ˳Zf`,¢E0Nl}\r&_^ ӂnk:s֞W]aaiKpd*ꤰﴼD#LFRgށqFr6~ =gRBXg4Θ\Qk,~9H9 7q;)fJoWy=Hal;;ߓd0>]G=pc=@\pL``ninVߊ,~;̄.{됿]6›?)7qƹ0@DD#<|*6dd<˿<:o #ks=Z=pwsϗxy+So<'&}.V Rȅ ̕'b02s!tphYTɔrb?Y8AJ2#5Ų0r:ih2)y6h)+[νI>gIp9RTegHlɟٕ(J㜳hu+6g'hul-N(pmS8%C`T\LfW ͞?L8UGRf/ny2,}2 s+ +_ƿ,l?.̓"t8Pφ˓ uZH4vїlg)87ӹ@>Fd<%!Iuya}k|K{,⌸z2^g MmϦp\suOiMc'^y9.\k:[/һX LFf&o{Όk0X,*~&Ok W(j.t,L6fB#># /q'dUL>4Q0:{M6{Mq ?}gnKބPTƼ8Ojz9̯*E";XBy$2|~N ꁄ.rQJj9uxzn80}~_d6V0;x69.3.AYKUN0O*2&DPyp1y3710MyKh Y(̀;e^7^6{ :u^^^.|Śc<|ߦgcܿzcfx߹>7Hs" N 8ąpp7]oق*ό=xeтIv=S5/|k6,@uE4"&c~y|6FĒD0GpTs2ћfaZ9f>*r<5N .S*.O2ĉV!^vKֹzxMT\fLW%кwT;F3CѸ5󉗛q {=5납SǓ6\7#5 ?,|ߝθC)jB .WL,km.b_È/\ON$X]31żd WrXF,UFd ռ"n F'_J';&Xk\]&;m[o;¾\uu ᛟwӞ{'uדÑ< !PLyfui1Ғ-%=q zqjhA6x"^JgX;] a e:$W"C9-&8󬚿YfC<\<3PxX=92@hB&' oss瑡vZ̑H+Nh0轆r'~noiOIn{~jc.3筫]W'YYHt2iߘ^v={=+:Y\{Fr{ihn92 dĽ8[8)5 -XJ=͉Is_mYJF&"sO].}`ˌ 9O='e!GnszS? _7sĂWu Qz|jD~PVřw &^XBPV3>BxzŶZ(;;&ֈP7pZ T @8ȁ. Jh飐v&-d\P@Fa@po򳢋UEL~PMJ>x]'W4\nWux3Xgo`1x7v d/W7u~b;4V醭1 ޴QG 們 eKNLS1CL|3‡ѣ:2IMF^d8xz\C/272 ?Rup5!\ Ft3huHidG%#Gg6cc:W*+ڭxF $rIl@{3z!̫ر]e8%w>?1LTjwNLBbɋ:Z+Ŋx¾Je vLex îyj2W"ř߫)}CO ;nn^=)+jxӢlzӞp=n;3s˗Iqmvo7j Z*. 8C*MLkzYAd.m,ׇGEf/9EQ.: '4ht3籚r<48BKvBXK٠:De dnr ǑFأnP@+$gL A n"+);HaǍ:G}w^=w3ZrݓY1FcXǿ=c_k-Ɠ^3pr2brfz6f3{87i`5GT|BjuiN3UAbH@jYS[yq[,3kMfg7+\Ms a,Lv #tbY e"`]m{}h:ro!4pm#OH= "nhLGீv05ӄMZc#xM q'jP00t dr~ϭO%PFgYw9=B~>7+?'g|$=9IOw,OI:F'>wƥ*`, Cg/ӂnE}VTXxN!!zz T&%qQ5U2M 'yIiŨAt`T8/AkeTR[Z ʃ2 C /)Y P1ǢBfa\&H! ̛hNy"P)kAWg\؞ּVy2?y{y֦OFqf/Ώ~=2\^߿é.cN?!Fu$voA$|'5[E`(@FllzpbhyjtOnM"pecN~qS#\=.Fd2$ou;:)Dz]Z'MS͝t>PaV̤_eSo8nB[(rR)yJ㭙m'^_5Mɉº.sW>wdЮ\ ^%:J AA,!iL]0au2Lʮ7|0L̓N)!L㘺wW %?8hxpW^zykNyq2D@TY`~H^JnrOxD"-Ah.Hhd.H6a=&-`\kmkQa24xR ;)vuG/E5!(g!DbLn3U!X#ЋjQ)鲕ie =僂*/|9`IĭX ]MUJ.;KJpeWx#N0wAszjuu?W c8=vhs[wܙ^۬ j/e:4O̞ 9KYcEL;7x&ܸ񰚽'irvEg|iq`cPݍsd֙Ð~$-3}8{m|w κs6`^F]/Ěaw!txrl"}l}Sz[D_ *9 =⠲*18uqGN^巗=,3c/_NR¦?ȕt=.e 3{y| )79[c99c:AUVXc;:[\dz/L=eV]CTs) fpsئTJdZE|n` `hGB<'@oB&T#i _gi7'|,2<_zy)։0w:|/z8]G;18nPD9g8뉜ekttO wu!aEVn*",ԭ$S\!xAS5ڝPW4Sڨ#`[ZN2)Ljy2I* 'r](_'ɝ:`玾32BGf~>GICގb Kwn6y;=&i [d1=|K)C$e@q rv28L r]QpJT5#FJ\!"],rlEsx]&˚df8xjh@D;Dʲ9.s)FsCm iQcx:OA3lD8x9xӔՑ?mppA7V#aJf`S&c%@7rm¹v`@"Qڞ?zpziOϏ߭soJCVga{8\:IuϜo8ɟ8~zǓ{erֶ9% s + ̯~>o99ȫӔgD̿Fs=Ntx=՗8Ȯ5YJ-Ʌxd Ce$H<ciy`cn, YƉɜNp(nc1JCL,p8I(s:,Bq tO'ؓxupSut?;5$.`|ũM$?p#/D zy !V j0@8>Tד|1gp Vҝ:m.{R0ٓ'R>3B3#˄'/ K z6Ǔ:ߠbK]l\7zsOG>kg C0 &sׯVތJ=;ey:bLb2?P:z4[ҝ$maΧQjr[fEp KnkE„G DetCO%J4D54{*9k@^Rd%- 6"ף f= 8)j9U%Y p_EZPuh@PL.8 V_%fCxF@@XL)*4:<`r// S$ bEei0X1d3'|Vz `;Fgm?7&wWwq3L5yퟯ8|ǃn'A$!4}eV^;`{.x ?E$'\Ϭk %&o&h2Cћ4OGweyWȀGΦsc@˻S<{*4vaqx|(ͶWɃ:ofFf6 ;c==qI_}WU1hxIZ! D7W*70Nty.d{WNXP0aQAj.wz8BJ!RMP_f7h?C ,r܊tH[:?p!e~ܫo٢#3a 1wTd/a ^oLi9zZx 5 q}blܝѼ)mԄY+G)J.&vz&1:fΰ)0cJrY.omlcZoyH c\`z$ ^`32Sxw;~&w&9Ga`*bF|բ!( uF~ q =CƌO 5 @  Ykr4wztP+S¶9-u%&.58Xc[$ Z:ízMxhi&b}o\Η&4MwORǗgoy|Tg?>xqmMb{'%8e4L%S14&9(yNϷ/R5ѹ-1Vq˥yx6jSRݠ19AC_"2)z yL\4F, !᫚"^+Jùdu;|Ql8K{V"2G_#<")dwI{0|eX3BM!דr\nz\&~H8s/Zoр1N0FY!ʬ%aEP/B!4!%gw/&_?Z{jc_78=1-[wGO[YӅ ѿdzsg 몱ux7bY^3}z.k\u<;'x4aLvg=^2rYߠc[n<$!l;/MeCݻq&)iy 6﬜4c&w$woկ @lFY:7g(^0I1SLIN)d֑#CX2 ]Ѐ^BT^w=|+Uȣ{3~kɑgץپiXc{cM6Z,5 &|ƦXzvJv =w=\O]30v{02]'Mo<7~ꋞ>\ |`M\f;5 3־_7CԸV M7Xْ9j74"|ś%fKXe;L[5ٞ (0}Rw1dK)=LNNÂR7\wLߗԬtᆖY֝3Raն[2awOMk g npOsܗw,w›lۻns5<`WQ||[ \X~W!-qg gD9߶syk_ok~R0oOb_|3߾v⼻W񻛓go2ìG%&߬NמX8s2BZ Sv<^(!OeRXg=nR.2N*raO#[q:gOJcn+R=6߭ɬB]vh~_LëN;Uv7T?~_cSߍý~01u1x\59 y3_~==@@ QW Ye+6_4X߯K[ ]YnDNw>Y6GDfYE\qOA1I*;ٍ2z|1|~jg1z=?lcx\nvn#[{|a0=~O<ɯ-|cǏ[|Cxx ;n;}k\=z?G띘ɮNKLj$Uṷmf,XO"'|29vbdp~Xr>A):|-8AI[VW~QκиJc^M}oUv`yS̬W)4Dߌ #k_!եעSydK2l tr9Rw 2E.ӯ 1ٝfL(Y'{:uJ)!s8+820 S{tb'A ʚ;Ltz:-5<3V*x2X;o\# By}rN{q;9iMȜڭ/`w?{})1` LJzI_ܦ7YUvMgcf51"]olf!sIojOcW>nSΪjdžGg 3u9aGRg7lz{P_&q`ٰ(Sw"C^z*)7?QE 88\xI.Z\4(҃ \)wC,=ϯIَ._WW<7uݻNpi1fO[ ~wχi+a#k׷:xch~z$FV; <1yѰ˅}VΣ~X#|]r{{r'|R5~8Q[m^"2c =zCNk8/zdžxa\oWG54,LNMf&Y? 5XzHV CP]dDZGJBaf D3Wm}NyT=1q)zU.ѮeF+6j_5SG0(y@n5s  " |1?eGn`^ߝC-x3Y߃S2zj8ǟ>a_B}/f_Wޜ}_ %26x{>pμq_9ϊׯ]=oOn<~ssǜ{7ʙ6'޳M kǮ=s}G{McX hדWNudߚx 3ב7ö]ǽ/gˬuyTJ}#e𫂘s N'pCjsU mqXKˏE co`_5U #P4U2}YΫRbx2LӮ}^%p>o5v7 %GJƝc9.3~+,ֱ߉cpx8.fKaGЩ&\>xXdnpPbe۫}q"kf sޯ,AWyw3 (8ː]F?5i/(\b&DFl jF=kfA'wcCU7U +Iן,lXm/1-jr KׇG-;0~Fk ~!o h#LRkyӖU#=-YK<,5!_'yӦPf~͚%^z5W@1-1B ch_d~fgZ|aBi::{iL~ˇg&qsspgb?.8njv?}zV;2f=gY7:+Nm)qngLÃ~ZWs;sD&fOsϢZ^O_{RNnvo,&f'Y/_7qps(%6Yxbt;(qa1'Wɧ80Ck# qu ai=?Y'3Aw뒺ڋ'ˢt` fC36c?oo2wdY;?Mh{K~x3YQ>;)2c}|G跡ߓ^/{PwMr513}uxxTL˸ho x91;>sV~8|sm|K8u臾GT2NtI=xY\F^i)!TrTCVAq&9<yL)X{=c/5uz&vOT3G.0 @r}jw;^9> }|u~8oi[Su4o_?wOWu 1C½:DT;9_ q31BLB| KezJv'P#x )1x4>3Wht_.>j )&YH-0n jd.:u;·!Xhu3i0+\8G܃P 2B +uۮ >j_Q 3(z8J 2wX91=~qŌG|+0ƳΣ/~i' '溡_&'_=\u'.x\Xh0串 9?8~ΩDOaf8Ł/;mc2Ο|bLLc6!t"Ǭ3:w<ӷ@Y<σxo9{|)t}MÅN1kkY6 KYtw^)JNaEɭk'OZ5yQ;sLS24.\WhQ IW&1_7߳C)hL643 ]sl9q\YG|8TM͝?+ms^k偍=f}JRRÈ^W>z̦r%r\4uz6x~opc%a <:xi{KO~3L?Ej\p$F2 EeEVuuߑ AI"HtoJƤ`7R_?>:˹vdgY/ɹ}km;trϘ/|˭~pofᾫ/A*k]+~\[ +31M62鿠զ/χCJۯs29I 8Uü^vݜ-;ŝULc79Y[.wC,S]? 1! yCsOQɚ:U|3W(LG.RTbo:S?9kO 6Y&1|nGXIͪ]`mT<11B^*5ebgѤ$bjwmV`"ۆTQVf8 H*VH<~t7=9o=G v׶sʠi1xْP95z|cz('k 59̴ 8L|/r?<+w\g=8_S}:5>8+7.Izk?G߿9s^A댃MSys/;﫝w@6ޕ̽.4v2Į&9Ƶ{G\7y1FÞ\S:M10>yՎ$]a={ˬ!gX\Lӹyw\3P~e5=_z®<9Son4=~;n>XY|zzNpx^dp\6ٟy3{|}Wﯰ=pkKtzƱr\ 8 î@ʮɇŎLݻR  'x\ 7! <u?׃<{Z' C+-qKjԜ=dȟmݸ#Nc/;od]{RM^n'ZWvy^>.N.G}cp[j@vzg]|펼MqBacZ띟 :Ͽzq˄/o^O:d-;ަiK9WϬ#3S^dʟoOsOjxgnt蝓!F㏁M}qGǟ=wWc~-ζ/&'mL 6>gvC|'6 K=|Y6'nzJ;1o wq<{xyJJΰ^+&FU7N7CoSCN9R$p˨@oyy"$LIk+ mrR3ar>]C; "x{s!34 W75(&FYzTnu*LLǞ˙9]TR.+8{I\|e[BR5!4\uIEX ٷ:4^5@eM(8Q2ھV)76 q-0At/dt2|C특,f'N%<}8.9P_haÜKҘҋWb#f21N8D+Cr$7=a1Sl].H_P9spIu|ϢW'yF%3 Ws N JBZ #Ǘ?9xH#?24 7K;c8nNnYL drOHu2<\ׯא:pIkx8exv>;,fL1=2>&3:鐁rv1?6s1:2pQE@tTn1ͳ@G{]~5s'Sn-OO(QnZ7rS_ߎ1Gcipn{||S.np\tם8] &zKA0^Wpamuf3|[WP?1|k0c2s}\gYO: kٝ16NB%L_jU)>W>;O9uËU5:PL&cX-Ҷd? : d F3O31>2{nzsLE) cdy]´a1^]auTc6f67/z $Hc(6\ KZNvp~Y aA@ =4E|  sjґ  z[YGJkPiSv팎lr{vR̜WƍYkTYc81EL/~7Apgx0.s`ND\3i*њ9 ǃӨ:"Erߌy}aB|s,H-M硼/X3 pCu]++]{|b1G?j|< .2rsL; tC0A^ i^K2$zc:q3gWnxu?iE@|{v4pioDDzUgOa?=XsB7fny|J ?F9j g8̜v/o}y:{Ic_)}_Yy:j>] t3y!xƲlI?^8+=x :WfN/#f?-Γ2J\ ȷ>]S-[CDT|1h) 1$s)DQЈ>. )ۓ)Bk%=dP̥(M;EۉWSr@#P2MǾLw^mnmi)}; \wz:o}:󷀤o`tTTpVdVqd˄\FAt:fGyt@Of yT~ W+w頏Nꆛm6UUDx yg)pglw= P͇züoiwue'k(X_n˩*j 7i P@<3&sFYm.*#ە,B*Ҋ.$2<2z~=<&^5uɉgm7*$MyzY)5:k}3tu`aYd  0)2-ro.X;`] h\/sR[b]o&\b^_@z/e-~=,kNJa\7UM_E[{.Y)'(:r%<[Ŏ .dưyZ-UՌp0/-{VCăDw_ǴS\XX whjx3T廰)K d9z5\blċVz]1+4QSp?М e.AY#s2hV E =bP1iaW*Gfj%7xs* (A.]\4 APG8 ny%UФpchbWڙ`IsRWo &6BbepSY>!Y\ im=siq[tCd|<}ߧĝ;㮮,Q CeMe8lU"⏅ח^I[ʸy1-owy?njs9RЁơ'G #&04%LJPo~q0`^ k Vth#GqBC]88s!wA6IU,+‬I΄͌e$?c<lf p?%6ݎ|=ޒyN &! Oz9XVͨܛRG8?F<ü7ΣSn wA9U1ؗkw~>x4F}>.<+'[u}cw =| r뾽Eq?T0xq90?GOZ ,")5ֽ$}AV-J^g,0Mj8%pyݮf[?O_ϣ1 v+Ǔި=P "# ,8лH@/a(38-69Y]>dχ>:]듒D,/:5B3Mk|Enb3mj}/cîQni۳sɓ|_䲶}ְ=Iԙ߁>-μ4ݿOG\7k o~iSX+|%>i8cs9Ru߭awo) [_'tr:OĎ~5qSgS<&G{&&swB ǟ<Hrx6&60,&^,+Dlfe@f{Hi7Nkkg&&0cp3f }Dz+L7=qqۇ }@$pdM)%'5 âրּFvN'-=+ts˒(%s̼c] Së8B D_fUskbSƯI `rqtbUR֗1=L'ͮ#6```r;`2uaմbwU;^:=< cz;305Hc/|Ԟދq ,!q3o&db*MO 7CZj9AtK6"#-f)cҷ;R8m}Cg/9TXߟ/|{{?=|q6zOf~E|QZI3<_9> uKF d@d8E_+0n'~8NLCF3_ss6s?cM>d4m>G-1mS5 1 cn#ck(a;Ã`B˯Rw,:oZD9;3x2]!0_ag^c8?wІ),EP6ec7pOOn vxpQorׁ+"~+:H\~c 4~ i끽 kSAє 8a]>fױ<0؏͎ǃ8] ˜mL6'/h#Y 'm%F͈ `Li@/pǣNjSgZ)19K\ۘ\,qJ{1;3\LΕCl@љK1"8mwD8,)\GHJ\a8Ef\8,`Q"X$Nc^rik&W2A:hqQd%Q:xZ*@>GxCLѭHR WX`nmX޿W3NL#q-^}{Mҫ[A*=$Sz:a$ysǏ;-sߜwӶ;Ҹ2[.Ԃl/lf}mtq ;eL*B|^{3qк>}oq>\8׍~U͝v&a3soT\.|#Zde^J6!BSQPO :*ǰxbS vr|a6) |5ޒmC)pɚfA~SIk/aV.rDŽzjcž k7 VcX A/o^et-"Qr6UdWsgq^\f 8},bO5sجr-g*˛|vdo:{ {.q|g{uGana8Y#|0@&w)%NR 䢠y.[ \JkxB|nu\Hw%oXG83B F9 â4ZiOAsd`.rl.DBLa.cV(hcCҧN ѵEn|9\.r[I0뽮\e1!G ,Yd| %hd,s0n h0cLz \qQ(>8b^v&f `(h n]h]xy*<':#828M,f|^D`Y˱RJ'.lBNdG&5. :6dT+7̳c0x2+t "ӸRq%Gz^:( [GB~=,R[}LEΧ<攤;Eg #`g|hcVgk(.912& 0*{ ;or>lsFp3tYahNd\:'gw.L%#1d`Nō 9jӟU2W@ Atڈ5]BR ^#1L zpJ92.BD 607qZDW*̉ͪxB2(>fAV9xUebTyČ 58a05x5`A? 1s?fzDUekW&2|*TQIhy@⁹:&&}5)01-0WyJ.=m˧=)㾹q_Ďn>s,s n&+ >̺1Ldc?G-Ƶ-\fu}+&ϕJ6g |S\Hm gNvƝ=FlcxTIfeNa:֙6G 0+K3iOFYx`&[ɇp'FAszLsJh߷ʇZkbo yoA\/G;N}8"F# Q]uּVffaOGt8=b5h }yIɄ) <K ?gfT8/I =5~S3A L\9i̐ [aYy&9 4xR>?@=' ([!9n*LYKh.NK46׆#0Ro7gmiF;WiY\mXmoyɇR,6`Sokn!;qٍ^&VLs/iEвT ,0k&G䉑esBݦ,-8w%$EQ`u1ۘde3Z- ٝkB?,x9lL$>21jmkW ,d*̶o x1pC$2ApFrr Ps+zdR]8ޟkX-Q7#PQ2PLg%E)0WeVʔri9[V3ȖTahF4 ]GV!9a &J\)U)f&ɵ}*g>NPv o(U$ 4pBaȿ'FdL`%r8VFr8J9+ uBNޚ vF 63>C Sx-Y^nwB͸~B\WC:ݐO郕 VMgVq`N13@= # 3: `F.6壼x9';dލGϥls'A2Lz2Ax66>%mؽc&U0CBtȉc.#DJI C9`d}!R@\ 2\ĿgiڀJ!dLYP4WRsp Nw"ܯCwgS]W/^g+n?9>RRFN3#,ӭ*&lņ F%o&axG}_Z.\?|[d3ưnŦz#x虈oa:m{W* 8INVl@(?qc2d^XŀH_3mrLdBxE.<3L!LXJ30qQj ǙIDM*6!z̴n4x)DVp,Mcu0EƎaQ;#sߖS yP CshC∈A.ſW~ּr ``5au{)Ѥ\TR~~l\n3W_믏䄊Ǣ.x/"s1Yq7޹9c{NyG0J;{ϯi W]Z@x.2q\];ۜ %#܇A|g:amlyCR2i͠SJqt p;idkh7|cI 7~oMfּr{޿y4y|c+WJ]83͓&wLT,6Ѓ|\ogft FPU}2!;)t PuP]Jq'J-vE~xz{3ST3.nuZgi0gRx g(1B(7-݆9*#$5E764fM*{5NJy7.k- [^ͮqM7v{޸HW }b(]g0?h2>o¢gnK;eu174Jqe@lp`3჌%&oz E9Yɷ C7t`13vɱ f R9[nMm5GӡM&n{$/_L9`?ʰ(rFyE.ߡ #FNh=F ]Ǡ/b/B /kH  1'̣%O L3IŹԘ$'њ(@'{ ө(\ưj? ؞^6 _K , D,8>غV-AA &!e!lqr qLC TZ+"F&@#B!&7῞hɑ9\,M([[6!8 ckLʪ4lTveIW%YŘc߶1FP"f%!C>'8ۘ^VU(EOT4$*d8 U^o0Ȇ Dx8{*6$TF\pJj=EA1X1s$Ľ̿Lc.\`uDᛥਕREٔMk[| ~cş ,1uNy2u>'^'WqFd%߃~y _Og~b}jJW37jkγtPYwF\S903Lg;Gܟ`0Wg]|O+Qkxb_LrVѾu7w3u10+^8ʻ9Z!H j*tDtBe@0@Nf#V *1wWOUQ6fˡ|44xqݽPXյ]<@׏J)Bm4 8/C@#Aij? C%Ɍ3- f3|,EqZF*z՟5 S0K퓙`C+"VDhٳCD_$.*ـA{8{`Бry$vlt-rY4ݍ-~PtdxʺU19g/dؚnNnS܂=x06/\(U!|-h+M е7@Nf,9PLnPV ±1`YLHt_pphM~LDΰ1U UPpJLov J ^:tMSmC&2y}#@TBu&ܼp3NۘZ;`Ys`2O ` ­4Vhlk8!IKK-3Z?~?,nu==' Ls%xxXbU h*y8gg7!]YΒuٗk:a \7_b8]@mj,:Bghv1f|yg^ٞ gm `vG*|792cXHLly]{فwZL#nrGYk}SZ0ZpJ <a\@AK­; "  # 䂻pTQCI*]:fzQ2Y2ol3< 瘉aUD'*JMi82wr-U ^Uf0f}rg}H21R \eafPsvɞX+McF82fRatvyd l]v[|Uѩe0TxQM5 qe; GJI8^/y֒"aCmyb&Wδ.At2zAa=" `( cA3dL:f-as$ E",,WLܫ[ktn೜mPG٠S%(d$z  fs.q*3d9bmJ Ƃk^@Ȳa636f4p9dp$vx FŦscO1Rr*1HCAs<%9d ̭_m|d]#X=uь $xX;2S x3Nq-qT"=z.3s֩re~3i`Hؑʼn8Ϩ!pzk8̖߯~yq `ǧ\/@ aq`S|N9vB&/3XIяkyK;f R9DLV(tCe=ĊAs\"lJ[h2Y& 4.c-m0l;FL Jŭ'ibl8iϟ0OKRq>—`I{ + mAAP!L $"Ȕn> 02RLĄ0I6*rhuܗ41:C _#WaQAp3KG&;`6AEZ6˗0X&&v`dV]`E,Y`_Tnu5Pz\\c_>z*AW;oDcF0)Yr\}W dJ3﷔5QIj`q 2 0 X 3~3k .qrR,JGF@`&ʙw9@@P3b I\pW)rhL6&.1[F{=GMwjs` ('j"pTh0,Үl+' @W P>¡e GwfDN#k<Rd40W Eqgqw49HHK@0$. 26+& cw>%/c23PQ5XƥsGj{x!\yLt3GX?\O E",k T,HrzE&6l vC/,1 pS@'?Bp7mpءn PhC0`&P,"%F!F^ !%cS.D%R p1e98& PhC+;p[ R\!BbpAة)+̌ e":4pr)t6)$g.n+j02``n#s=O&^. <7! a\͘gigHŒ75IWp3Z.p B S~"9͕&ĖZ(Dl:!x>\v%@#7(8,X6ٺ8ħua$t?,u"1oϮ83c {"/<˶Yt`ȲnzQi_="\cz/r &t>o77\dtMkjhDV!QTWь611gf&[MG/Xj (ɎT&t;|%\P ,Q*óDˇOkK^g)nFBv[C:;Y-"@I m%N:\XyOKHZ&#S@ TȎ %CJ)qʺ_mNŘݡqұ^BN:"(0Z-~ދ?=Gpdܚ2 GŪFxިs0M@S:&q@.1J>1ɵFzO4й ˾yj_WD 5sU.\"~K_˷(B haW_nw|yCE_4<$uKcmei!}^ }| 55\r t-bTIH n,52:2M-b @*`UFq@ʋ]Ӡ8A"nXpQÔ10 r%|TQ[ L2+1Esńz  D pSa 9{eJV8UHb`W(IVE1@gqJo!y*vI$ibL8EyeHJZF.8p @T'Od8BotAQLqC i`j=;R>MrwٚaSf2^JAɂ.L4|(*%1Z^Q ydӤ,ՐTY.,yBTtq`c†! VdnWWqQ"Rxl%އ\24R#ЮySkp9ِFPi""4D\[~ϳ8?25 M_.^U29 H0z'K HGOS~/? 20"[[W9T:悌|221Ch Pz\QVeKz p'ԉ t X$CFЌJeq, ;1L iE;w!VW0Eɡ!{%ybɻ H۟Idkť4%XN>T IR -By==࠾+1a"ðlGdijFV<42dE_#aKJs 8 QM7=7n>v.gACX׭θt~` _CF" ԋ c!|'<MY~\Bɏ잆wpN T3b 61Cr`y{vWښa&*9<`N,X2^ sL5.a[øمQUJ]Aa81G& 5QW!A!3-@1'9צլ6)Ʉp@ٙB@|:J:0׈f-/}6XwZ \.@PaMzlTVa{1_%(h&ZDT#"`",ZʲhhU "LL+:0?..%t9>+|lu'r1WMPc~j=J .8Th90Z v|qNv%aNa#3j.NèOG,ty *O=6LM@:sF(ɢ#r]\1BЦ.87S&;XEBtn2YaYYPakU<"mspѶ!i| 3(˒3#wM:yk^bLȹ7#ryd)38TfNwd35w̱v%vLRZa $T6b[^J.Ny&p@0R3<:"j?xDD)#)=aYJaS[RHV*dd/7_EI^$9;9'vMʢ$,:gɃP!323M@l2h#-ьXfD88O߰ FZ[2(iō%K@hg0 wDo*얆 FW2" R9ش|PNeRҔk2S {3UqRgpxx7zNZʓ`\meq3ϳ;2ك `{ˠt<= sP* ]JC@݇tjEgū䭒0,`blfojBX;^ Iw@=\&;\aKhUz!P% !L0mqq+=MOJ eT%uCY@tufPfdStʩvh'BaJL\dVmnfSL=e~y2rjȷ,l̮aY6NF-@iEqq 01x:d9N[ >HzUkxCе3u_`d#1c#= Ui`Lӷ`&9`+%o48Y[܀FW J(-PT 2T g7|̽L*a;L郧e>b#FS!#9C[0,/Pa H6*ŵbOX #[Ι #r89&CY|VW"I<u c*aKٱk@ qN*R@̀Q*A!8\yhvY2P`H4M6(Meq8Sd4J86!Z8YsS! >]H^3!]xYt:"E& 7B0LrDT˜PfչOmᚓl3U Sì7ٙݜr»Nt&kWQLr&Af>"N)*ɽ \`0 -axFw U=rģR3 yKukC,Hum!ˍF-㌥{o+}ZWLݢ9 64;: oTp a|dTg.(,4z'IATF-u H9dL6`bOD-TAz Tɛ 6Jv;e\|HB%g"[0%n!FJth1me#)E8xy |<.;ֱ4 !~Q8@1lK҈#(/)+uBD6,z$WY9f'ٞ` 3DLL*a<@z4G{Q2r4zNX+t8ăWZ^fgLJS(vtt {8Fc?ڌ* AOJ&uiNH+o 0ɡp:66F9x)V1!q5b(14"Sq ;XPk怰!&Ѥ{gWՆ)qQ}|5ܴSM ]*s zCSyy\sh~ l"H"9!\ [@&6v;+W- RD~(NH("]4Ifr"I\|&Q=$:Uqxp3H8K+>p[ ΡqUVnS!c< (`VE3d0̣m +ImaW@bEpT۠6d3fWx̩lU) &* 0;,[Yp)B-mdj s08H/L? FD1]zmc"<];qd1<&af.eWk9H} hс@bP;%*Vq `y!ؚ2y+ۀ5Ok瀊]12S5N[X%RԼn`[/Iȩ̒VwM0iLm3eL.\k{2+Vha;gnW/Xa[q T`YɁGNfBS˕KLP[UJHKn\qptBI`3H ̽~ptr*蠅H&7v/f&G,A/HS, os*vԑc/EکEΆϐʜHې`x^<ıd9Nfڪf90aG!= cW(_f\uDaaX?2bL=o/Bowh͊ R MPokcZYPrw4MG"9*W8'8&P`1,bQh6"9K *rf%ZJ!a -<i@I5e)3t}2Ψ"CZb B7Q CL`]$O:GkY$}pQws38 FxGj5 erTCK6zIs ]<AǙÝ2aY<.Cl p6یVq. ֚vƟ':p? ~O~8qy~柏Ŀsq͟6~soӚp~G\9s_;7?_<.+9?C?<Eϗvs sÓ/= _5\$m' ć`XM\­߯|Ab%\mmfX[3e6.PO?7t+A?(!X}O]ke ꂴy6 qJl/ 6w]^(e`\jB@{iq?)1ѭVǔ'*w6ԕ~xFewo8մN2Ԏgb4|5Y=Q!6V *W-׫iT„~d $횳?C8'!@YOCȻ`~DZU] vEW+1t ˒*9v}pw1x 6eu*EޣW8+ ;X^w*2xp{g {N(!1AQaq 0?Bz~lN#"PeUzX D9UUWl{e{.1:gQmaJ 뺦<xSA2yȅ1$5dleGLjg4qmzQ^9YhU%Ü9e3f^U}3!zoMf]-gX]6gjf̰^xRM?+ǀ+f<?~>e!bzw=60n ']Grexř;U-lb]lSLF^ެNSmB > Gezj+#ֱYy;ibzȚ0kyC!8'x>E5L9=Kj'۝X}pX:coWxwd4߾VY.SuDN^+w:813 jN6*|3b﷢vC{[(8u:1A3fN.31vf㕇jj_Ρ=G>fqf.gMvc{[NِSP LۈT9oLsL~oŽNge1"5w~&XCNW aʿ_#G:9={Eih=sH 2y|_1Pi߆;\g h Ƴp8L1hpLk> sp.tNpCXw3 u8 4<!/@Zc )\ (E_s|MɦZ}qd1P=j  d3.֛s;`WwG%aeםN]! ;˻|s,{#yMyXzɄIvLN ::;pDeho/|6AQ.-& M ܥ'i>y޼~1`o\+Qywu.KGf/&i|w[UaҥT6Lȷ-4sYx-f\eD-Öx`=d\U^|`:us:3{W%3pEAE9Ǭo>4 VO:W. xs&gA~r3=aֵ7|=o{ΏVw3δr{j1sJ$fI\{+' kﯞ7wnżIk m:7:w}br1,~ e0~1β|c]vnjfeo5LMN96N t{^.oRXN7gUm>c8C&u|:pΠ5E J73R>imؐ.WnSvs:.Jc:֒e EQإ&-13L]!m$erw+fhJ a163,Lt z%J-CdgG-,G`6Dn~6GzMG-~k}gX<=fz-tnYzH9EHk&eJq)mG'3LnxGjo?/Jnk'Lp8f ~'}Xϛl2g>zyEV4]qv3']?z92/O`&Gxq{VbMi* Vfr?hP2dr+[d:G;LFoo]dI~y0%~%þ.nG_>M7>8}>wΒZML߼ ,UClLY>\`F6ML]}dRݷXr_n Ħ! yw?{3kEFc>$qlfi55G?*&x0zL5WrE&F/Ii:SСm?[uqg-)޿f xqƣe&0/FwIsvxXS]XQU3!ш[{cS+Ykus릓,0N]D› ䷼`.d0F[Iۓ.nPY?$?*1(z v\51x V(X뷓X0uugu`Bے@{0?8! 戱7mvS )1Lp2.:%|DѠ3248 cNbkN=eL'B?VNA$qOޣ50.!&す#<[Mf ė}qv+|)Ta'7;!09p* .׽W8ԉ&^3X醧^-oQ|%/i.l7g_L_/ǎZ\?(\JHM$qVq;^L*mJ/N@fxUzxDSLϯ^`Ib(uٗF_A2ħ~\/SWV'̤#82O-A[4LY+7ro:kllZ<5صnڶ5lSǼކfqzxpC6%2я7( {8-B5@‰"A.8IAokC$,ۗ K"VCߧާS0mǞOѦwtGd 2 h=Nϧ WI;zs[+g{3uZ!Iѫ,`73iZ+1[.Y{s:\emcMfc:~N֎Qr搫K\2BN2ҮAxʟFPj€3sNcᄍ "ˌhnčp\f^*e%]<=!ѵ_!\c\h}쯻|RوLXh؍k]ҝxsf4~uk0gezӊmiu rho29xX}&^sgYܘ?$8\5 P\45"@8#W(JɜP`KBMv+k E $ݾb<g jfvdу +b{;-ULXذ nQթH.2a'Ut;:x8m)>^$pnaK=b7vd88L3.y߻ CLۄ˾;#5ouu^v\~uQ>޸oG^#:p1ROCAᵝ)] nUн)>Wu}ǎ geZlnk82@uwy8pOY~kpނ~뮎4?5w=Hf*qڟg"R-U1-Rez qݞ2W&? cE70!3=S4; 'h3;8dHπ:]g!:BzRF,^tS1ąs= ֽmz)q)"Ŗ1ӻ4 6꼬h36gK=휐 dl;>e{!(fmk8,;yn0QE/Zx'nm7xW2H&=ܼ1/BcuuuVIzMwDQMhGI2&q3:| &;Cc(#F8a2f D0|73Ee۫!σ ̘-TzfyƟ; oO;ЎWLm9u?>뙍czHa0P[wHC?PQ .r^x,ls!1.YTWv?QFfʨ^5ScGzԦoL!\rVݦDaEj5L~#dK))u-A-3?t)4{\m(.9j'eN A +L&U{#|@!ERŚ05ugnx.3__$8 묞x 71 v. 23Cm˝:WF8-&0絅#cvx(zE[ΉמwU:FKQqE9MNׂ4ĉئ${@EzatqaX a=D"k:V93Ƒr? `;8 (v];`Ԍ3Hn嘘fVf7  ~@;@RfϾb |3hx/lk. 7hF}kƐzϱtZo 0h>n8޸mNhѥʦJz_ e\RU8+z13C(7'$`!^cX۪mn:~-=;DBc8|@P3gDg~3Da]ow$3׭cBevh3ǹ~ER5ar4= hA׎NK᠓oGs 'a#zFeZӬL(/E`yv;*c.%?o:f r#?&-2!Ta1 4|U5rXm.2]u48.94Bo㿌[ξYY74W` \4WWbf7g3BĊĢD\o1􄧗d (&^r7?o>e0Ssxj ܏XnaH~~B1v|ޜ7M޼@Fc?3Y']ω`cXm^u<~ߜ #i7ye.8_cۍl0U?;Q-.A$,3Z80>&-~o;%)O?|pGPexc;nYW&~Wa=;WwI|(u[7|B#qrHDil18`J뻘Ź9 a ]5LV (3b>VLj HÌ,f# x][\ؽw}1^  :c,FL.Xޙ5a+E1MvÏN>pti'⯚x.,19)WJ3V=&_ 4ʒu:eFqc6棖+7>2qK-r{FW>z>^!v)e}!`+/tG}ϯ>ߟ*Q`oLE϶.;5u}`v~(Xcppv|&pBkg׏}"\1݈G2῅mf\|ylr>D1q"ɎHl[F1_8wZ0/NZ9?ǯ7c_^~~#sc~\pbn=k?|tT\1Of4 2"F.:|Gp&g)D3qh8-xřML$(! x<+Kҝ4}:(aF9\6(#6 )L Dto8\O3[lT1n'fD] ^NB+**d%Me'G%NePsDN3ÔVgY@%8dKSTdd\F9bL$сcv44q{q'L !Q$w%a$,p2$_jv\FłUT7v2~7|MSvtێ"S <:ppTuq`r3̮E˽y.DBRmx)V'awc5b?-fxc8+NK.7cӓwXT51Q@`q.L}70g| G."uo8n]ңBL_w.nXyz0ȞGa3&M>W?ޑ>93xllGY|`žf@yǒ( N[ (cBe#[[ɮ :}6ؿ1|J rd/SnT3}Ļܨ ʖu֯ ycrEĥ>4˵Nz~Jj<~|p+}ߍ?>f1Ȝ1)XsB'y~q֮z=>}{x|1F|~Py:w㿖{X.r_W_yFGkvG:8W~a y Ժ1.SNdgy(Lf Re\flJ-@Ӹ. 0%WTBA3Ys| (Q ㅼDj56!&*%rN Rl"͍ ( pZ(㳙@eB!͹+5l\cM_7_Q1n\SϬmY0|Wm_~0+sZg_)@hi6{Y%~L$0]S #l1<ɀ6g3}97ݛ80]Fqߏ zd"kӎ4~7w \ U_G M;Xc_j~Fm;sdp c>r,vn:gw7Pc2<߬\xϔP3,ef4-[9 H-Weש7+Zfd1vw_;_sۄMo_ઓ5 |#Zh}yl9IP Xn.|q$tyN(l8oaxɽۅrh%"Z.rlr1sg\g<\1\&10mz ֌}~; .\c9$OǜgCr~yn[׳8\^Ko$osXW:fI|q.I_.fp:^I2n C7u5~)0BKT 9彙`RY bX2_&&sn2pu 뮮_Ӄq>-B2\Zq{;da*u S`*Do({ p(*;^:/iM$4*ym>q i1#z9#gθΞ!g8o.:zלn?>Ǽvˇ>5Қ$i|/O?]V`<H;[Lrx<p<ngRu< o\f=dM>^u7c}r78`-P8Qn1;t~21hMe}KrƯ%ɳ-;5"#DPFTsާ]i&f;|1/P3۝_Eq橫MOyBOy<|arĵ :vXy:!n; \8Wè?* ޭf8TrzX ˿f8|޵~SN _me vcEӟd?t{:_)s󣃞Wgim?Z?54`25VK3wVDyM/)ͦ:"/t1=TgdzuǾlζ[q;Y\g> lv0i3uBSfߧd1<>z枆Efݮs2\uj -ӻd( b[ МrU*4sfA-Oo,wo1;G=]m=wBڎ-Ə 3M96&3U.rHyˊ~|rg?\!}`B1o?I22_0{yR8o *|ԫNd3Dsgd{\+2K㝪`^>Ǧ17k=g#A_fS5tu'C--K#tݼdHTT8> W"ghC\aQA%u@oEF,L.XMyUr|OY{_&?'o}}62vC~yH[]qwH-™tW^/(&SnjóOz]rg99HBù|MF+yǫR>8RN eSpvcKs/57u|jx/^ ?ɁmYzVMyr\,:F9TUlswt(03Yܺō>nfϘHM<lD8j D,nf+ ofNp9wwA('YU7IgTc7^=o$jʽ}1 Fnxapl=o,lw$KwR>xDԹq@~oUrPgE7N/K_ tAЎ7s\ q/Ujյ׃ƹA_^|peWJ03N z}1ÞYz';|N4jCD :N &SE} RxY ~K863:əxt|?>O۞?@NMO9@.(ό\#BkcxW+n=|{~ap|ޭ$[=ikF&d18c'7=G7$O~?=s;ց,ǒkYs'0uy>g|hؐiѬax%Pp0-u3\!'Y\}"V_;k;#bۤ+ ηSdh$ yU&n%V@X g'@gЮ&LI~?Z:O=uyzi>,wTޏs-"ozb}mu3c uL|G韅ϝuʢgxŖVǗ˭۝lq</~ٟ/r2fpld}s:?ſ[Ͽ&_G(@]0g&$tm`.dbt@i qP0dQ0#s¼ >fM_s f-3nu#+ߠn/|V}y0  eC﹂MysrfVSTaw2ǿZ$Ü>q:otz^'g;A5|2s5x~kscY`?Jl^>3fJ'gϔg[ʈ͝nG;w$vf")U,=tLc,W!JPޝSF2&c$vp&a?V8 lD:FNy4vy[L4+@VI\fBiRpg]efe{yd.Jc3QIy-XCpCNk=3gPq&_>8Z^ͤg)-&-I3CYn(Ecn9kb{L3}zg;E ?S>뺸 o;ƾ*}g{;}!w^d"dWgӿ渰0&%~r-@QdY *aSA3) @b#C**eG0\e--D3zu@c6bS!Ը# L?BHhu͏T=y|;ٙ5>Qe f|?>r<\=Y< }%Ƴg]X%\~!ٺEt}~uєm΃:}O`u\SYہ QO kt>[qa:ϸ"(vb&;)yU1;O:y|;y-wu\~;|}w]$h s[8n-=coUW3uš  [ə5rW)12A6C9O~>-~G&:@[ɒ~<ɇǝLuqfr8|8oǟ}~߅Xtcɽv~˝p-{$v'g7Uaw߬BCgwe'ly?a_늻@[z ypSlqU.}ɞ'^v~u{M~|҅mOL:į|9ٿ~o^_˼s%h|qwo3|O?+wY Bof<`Dˢܹ'X4|4\K0M&p1LS@Db\a v4)Ɏ9DP%e8HBsFE=gDKqeA\C'o 5:aܙ?<;3@i|r u>ޟ/&{t~cgW>=< GXOq$3ڂ'ľs< xHsm_>92o l1rf-?@~C\qYٛgTU`;ny^9ȩV )'l M"!ipgu"a?Y%y\v`f972~/lΐǴGN7]ּcfvx/Ln&wq;p0+qe[ F8ك-Q*2mppiۆryO1\X;|bיĺM%3xy>ٜɣ}}uқӏhqփxhtt7v}"0Y\PulPRG6:h7n\8]9BRcxwFp.TB0g`Lw3ƁS=kAU֮%MuYnj ߞeAn&Z{P^2.=4t.Kk}fwN޻r+scT1C `I.l_.FM:l\byJm'gNC+ҷ&olワY[|\o[nYp^ ӽ6iټ{}\!ѳewGSm5c q npdp!K 9救f7DNSGak7Xm\e2!֘oh _LLaJ'!;D&M1qo` תNwlr>wo_CICǏ78O1~;wiֺ |JV[\zŲ'qpp| ?@ߟ?ŗhޏo?[2Ǡ9jBPLl „O؎|/|Eb>5q 0Ly۬ƧJ 2dpPD_o'{`߳`|秿3챑O|5{$8e[ 1ϖY,PHX`^ֹ-7{ j?Ϭg&q9j7>4~8uO{CywtWFSx7͘ˈYP0c;7c(ow885L>{Ǧ;32]*hOʸ&tD)D@,Fv |xc0 h%w3LO9#Dɺy ko :}\8Vun/L8)e`&@o_4]{y8B=֎sNU~ɤffus:L/;R}fq8l1K0h T )3K^ζTrߧίs8x$`uk_ګ/;.;l<$Wˑgx7LVQrfQS}7)LbU6'{,ss9qߎߦ]q{q]'l~5=o՗-#,oEqҺ ACXx3 qW\o(rz2EΕ'S2X`JfWe 3' Uڈ;,)_s>~kY}VrҞ}{6ai5LL.Lhp(3k+C8ɉr.gioXշmZ8dK[E<%фޱYF1Bsx8 ;ONۅL,ʗ,WZ#e}@p /_?#(|}M8`E˒i>8wH579;>rpiIdEX`2QEVZq—] I[^cHČG .DkɎVhnlCP QEWeP2wq &qe#LU*RP};N7f7rWaˠ)&f7覞z&S!vxMvS(㊇$!)6o09Oo=g+!?OԿs}5gt.cQxR1`xi׾{?_P6I=g5X'b_ =?睟x~LqB~=rg4Xr7␘KPu#O}y;)G[(.]gb.݅\8Fs_4";n.yF;RӶ9UXV=x͓0"_7Dq$ †=5 ׍h\@OƟ'W '>̾=pRV_/J.? c:#\q˕1/T9uUmu<;fBb o+.Hj .LL2pLFFD3"`vr0󢼶.""QISQ9%- 39WfZ[ⅰ,$ȖɞFf[\nj} *Asu' Y̩ 'JH c`;|#1p﹎LG$~9x7< W6LgMusތa2n@f8rg1ug|\F{7 ^OyM WǯGS>8د38ys<#/OR;Mc/؅?Ha^ >0[O?M|M7<{~O1?o]>e&Y'῭=c盉3:&ܻl1fiG:3ES8_\wˬ&70vpo% l&?D{?}sXĀu5<]dƆx1AxŠlr{i1{Î`u$d@|;naL 8ǃ{]ɍ\j[M.Kg:ru= y:누z7onN;0K3e_=992bs Mx F 1}3wc2M.rOm}&D\g۬ݒ]B;:SOx(_e~׈֮epYR)wN'ei/6•lh3 q[NY\N KK[CW,0hS(yT{1kAkÿzT*&L' (:;H#hr3!VgFӻ|mЎ\ya“뎀ֱ[{Zζ=N~C6bk޺$r\JYJx^(3%P1 )F034Y.a- t35-σb q.FV.m8\ =׎g}c_s}+6Lۮ~K[8w翜7s::X~SJpz׳;J;pL8_Uuz"2VyB#>߽ ^m+72UseƽazV_8W] q)Ķ"d=\41/xy& Pzt.nH$s#8ֳ<ޮq?<%o |?;+e`;ϟ/k7&dˉpQRU!u}P71r&IYq {-g* jJ/EtqoOw6yr\L]Sݣ lֺӳ>fz?gÙìN9]δeq[ =ɭO?V mYgwώҹ\u>)9ܿqfp7Os=^tgnjYsI,Ss/*X͘>qʬ>;C~2޺E?IO@y#ۍsI PpL?|HF&U;u%96r.F۞<!uHC}`Vzxzw~=gXoοl]`*\9Y-=M'iQ7Eٚ 0 hm t z܊dm5k+ Ey㚗Y|s Ϟ^xrϿL4Iǻ}Lke3nbn># plK6wyL^ᄋ:9|ɾ+\Ls1EkgǮV?Vn<Ү !33wXe>Dw3aq\l&fo']d(ьc33ݟ;ozhngf?YL2قRg(&QZ3,CgK[.z^gR'sx1uqFw|O~}i.dۑp7hdi˞[mki)2Nrzŗ}<8a5ֺjE@Ǵ4ϟ9{4h:> x9i/dv `hT-WFqpS6SЀ`N\65U1oH *Q–brHja޴3"o/Je˒3Y1X( g *Rf\@Rɳ!{_362tl#_GZ)3oZ~Ztx;ώ;|'r7tptdlDɏ"=XIqtC 1rYbb(9(1&3ӘO,Xu o˿pX2o4R='-)  33'^y {4=J C?9 0 {!*JRgDH(`a8 2 BZaJ7/Gi `O(mˎȈ,Wta;\OO_ή~^0f0>8>G 똊!ygCd%98%g]dӥrחiB|Pm}<z ;';VZ˚=wluF{3~~>ya;?L _8nGRɘ[ s/<uTw-;.;~Sp2]\a'-Z{Ð8Zos돩Mʘ'Gi1ܕ\SZV@: YLTM飊3>ٕ/W+fr~9,x3ןDžKupǹQ[XHy< Jz{)C!fBUtpµys`t3-S#)1\xC}HMx;ӜPtڒ8P6 2򂋲 ,S^͆NCW ^A2 Dmਃ)_Q@C$}s bƏ2 >MYS%]z΃w<+3N/D:,k oσM\7C3[ 4#׼ï8Yp'W;1|_ߟyoG m_C߶7?TnLk{Yh}g(| `6.+-j5\ 7QnVLM2a_ջxc1ORcy`6nuvoy+tgEh0q'=`Ҁ*IWfi󞸰|5E1W\)4⎀0'AEǝE{1Iș5N "81d(Q~Ōd0\W/2&%j MQ7n*Ȓa Ί ֘dXEQ>6IΨ-BE[0^*֫q.10ֹzPȮQ$ Cap0%236#ESJvJсEN.v) bjӘϥhv#&0U ogo0c]Jpɼq\ڵMby7snWv4k s1r`͏L,*\mfsIЏԥ̘&!C/ hga1kZ a W v43v끐iq92`#?-k0WYg[]MLOAD{2,0FH&.x #6Iu!fa* NM+0DkS2FHIrUև!(β7#qn`e²89-XgbF"q r<3%xTHfX7%ntLd <07,.s0<ce rZv`r=\ՋߺU(rgw,T|3* RweN̝Mo+-4fۛ,+?'@|ΈRo+2^/M ␓@ަ /L =Vr*(q'dYH(қR T q4# rӍC9Շ AaqYnv\}x- 2g>&8 ԑ7:?בoW?{y7F7]:*nsSF}.Vk|-W=o<uFk#Њeӣ|$(* 48! u[[ dED-bˌ ט8V krR2*L$2Эb ,f@#J!x@k#(^T68uDN `n(4692!)ҝwl Up|~x| y[Tu\wC/Lpdܣυ!HcK;Ew4j3P16N5)2Hgmu\݋|E# B9 Jjg5,C4` aNnB Q6Ю noO>YD<[ێvor:c/[\=.znw3-D3=3_= wĩS-J!biۙoZnN>>~w^-{e#{{: 媻lq? APX(6@H tLÁ@TB|uCI*X!AxόwY"QBbVP J>yE\!ɋp$Z7s^̹["Cd.e 8A/n\T6!2wJjxwcoXU7U{.屼dF3K[ ?^Y6e+J.rщϖV7KمΈrFśˍ\pipn>DÝsn`8D153Dz 0zZ(Q.kN\]Ǭ aLxn %eԸ M/yT'\.Wh䋤a*Q1&2o;y 甊0VtͽTg{g2i E'}~]FuP<wX#jB6 g{F5yW}dHTqPN U,"P473.E-;ǯ?oӫ\n:ݼeI੩4oMg@*>7織XwuJTcF{d R|O؀c|nn/&̧gH\Z,"cxh5 oZKn<|(ϕT5_21 \:Vˮw0eC&mƽ|~% rs||tp ]xF69W'w"D  atK?StQBi)m`HF2ngU%fM qyS9߯yPpZ\-3@"d6%)hQflɿ6` $q|G&$OTH_b hģ8`ȣ 0ԱL- m͸ZK]p8ߧ2naמIuL/ͯwߞ;{z{jI~9Y}\}~ZJ7*}v\*ܦђnLAk3|eCѿ?ߗ?;{sy~o[u3<SiɌe+/bSvr{;5Lu4×&EJ gcg(^l>3 3+Ê$&T46!%*bw(X7nr&'YgHW$ 社1BHޱ╄C&m9ٮAJxq]LoXzɹ5zEzy=ߛ|{{$3bW Fsub[{ 8: 7(/Z\g[T\ nLq81 GF'fg$.Vx01u'\ȹEwm⊛s{$eٖ>wqE!'J=D8~.e u6|.{1n˒2GKP:ÇQHsA,)E{i=NXXK"h'PD g&rUf8պ)eMQ#J(PL'U⚻fN Q Z-)E ȩ3ZXSMtpv0,W9H*"S$ RpDr` )SuLga1u:g^xGCL}G}T,3~kߌ2anƛ7);W`v;dsvVnRGuYP0$~S.<.v?lCĕ~i٥zOxq|rXS^|o09 fuMMl]F>pb @[ٜ'[Kvvdvf'~({@IhoX^qLx&ӌ%D1 N/c g rſy>,[=&pӼk M N>\ό27G8;֜F=wyڎNqx]3Q _l }LcwzoXǾߞ?џAԒ{.n~=qSݰL2{!DLc;}Y뿬oUq`{7}&-]T]c@fssa@-JpA 3eڹ3\c1g&CBLeZc~T%fV$L.Weco* ۓN9& ni,QbhDR#;WL֐(Q(=.B36\֫!pi,!ꃊA^L@g sDY9Rh" mPd00qcLoտ)l!|a{>\Mc]@PgKDZ(u0(-VD 15>roSsqzp` s>36hl)-\g [Ġ DT+l}xn"+Eв\/lG!kI|)IYJ{qs-"jRUp:CBQm9c%ae!s󼫞c~\c1¨C8/Gսǯiv%kl^Ui6)%~# 51-ìcuGԻw"*I18_<,sԋg˚ R>}{wj{Ӯn@qagAwgfsTU!2Z{\rfIGk-L4m`y gX@ܚ-tte00*91]93&w(\.O#>}6~_[Ӈ89,׵oX"EMsF:~=NdV6i4 0Lt;w|)zLFxQviѼ8i7 E+boLwF^h2Nnn-F~b[jc.C&Aɋ:sn.8fUjA/_6NN$6FqZ@b0sS@#:1[_Z8?ӷ4w=M-jdqケ [cq7-dvEfkDPi$*(ЕlHAlԚ-R0a&"iYZ3k(xMIف7s7?(S {K @(\}=3 )*`L28̗tef#mv#$/Fۼ :[`3pʰ`Z[CλEErfz?9UcH1̘}o_79W9ySƿ%|} m|g}~3\ACLY|q^ξO0[z傗 Q L}ws'M_gs71髕W߮,?w>p9i`9Z+.,Y+ 4::I1qbf]tfW7l$-ְ>fʦvB⌙tmǐ:9ú8u1k$Ұĥ|c˖ӗdS?fβa52G$i޻{bc8e>%@q *s**\%xblCsW, #!H6ö)b\x1EQ9h27IJQWGGِ'f41K\ ˜k5+.8Rwr r}Bѽgך .h 6c(+ji *2賑Jto^/MLF^+ w]DjeJXou6k)hzKoX!Tswk}Q虘Ϟ@85dllZ9xJ3oݜ“C}. 6ĥ L:}!ٜg^$BV-+(! MSiLs&3>S=9*H a|fIB=.u9PhC{D<ћ @6;τc'D;{=H]Z6;(Jsz@eQۣ'f3.~ǔҙ27̻_ߛS6F9sdc+[q814aښa){~PporŚ< ]-qK^\k8U}vdfM75m}CrޕW7xoR7Q5: +v˜o Q&1Đϕl;q}sT&o/Jߣ/(7 -/~<1ޞ:ܸ 錰~3w/rvggrB+Zou'Ŵ.mG8e|2Lx :8h)~rg |G]S`Wqh75N*WjI5}K%̼ &IfOcW^)1;xYό٫s̀?޴nqe8Ǟ^e<1,hT%ba9heu DTwd6p.tieM^wK|ߟ64@.&Fώely-8LSP<`^ 0fx{sP$]TW1TCZ0*vKWM7Y~|~f\wǪF2A1[nP\ta0(-Hg6'7ax4>O1 C9ǭ)$u^-3}=5gQP%0<{1`4eEPFB&6.@:B+,d0T0N@V<1\hb * y 4^*8(Lš^a`jf BAz֕јdcS!Vc2Q9|&\}-(*@Y`KtXQ :FixEQEVblہ/@rK=(&Cm;5 ;dA}Έ3Zv\@F[1U{V߃+.S5}2L3nx[:s=%c=U]he<{^#lWGxیR3O/%3=Q?ɥYSG^p: .ؓ)z piL]J7Lw I8 'ճ6E\.β9~}Lq,2S&wE=T[[?s'ɰv.sl2Y=ׂNM?Jۓ\=g^ {I@6\QJ "/e1i3RWaaH&n8ټU0f͈$T"fFjfܢj,U2P,U:RpBC W Y0.\v2.fגb^;ܚ|ufr&ۀeS*f4Eu+ȰPy(F%4w~PµϕoB %y\$v[\%WOe4qrqi-А'l^wx p<;:viG6^h>5wWI"my\c}67Osh~uޯz?ǯ=M vL=(|LÖ5q 108#Y{9!< ]Eϸ“z? zە@;Ac0o˜:ࠐ1 {YluyV`$o& s$lꘃXcʖvkRC^<2'Xx 2[Z'op.蹫> Vu2Y^f \|ef8M~YcI9oFLRB =Q|WJ{N1 >locɍU@"`fSnu|&n1iŲF&>W'&0RɬuC4h10..2!4)5E"xP2MEQrItWj@av`# AC65B\EVf &uḪER :L?zgߊ1NüxrAqҰCS&]d3pq+C}K6#q^bq;xUn!qHܔo?>c< ֱ3on[k \y1\d7؞o}犛z>pʼnԹK2W?\~'?ꚝz;=^qToo?<À3Lׯ4|Y(LWP;Rp>~Uf7=rQD3tYU. 1rc5=ϯSY;wwJZ7C2WȇULɵdr޻XYf-,ox­\]#?3@j&ʛ&VGBS;iL#Bg.'gy Fuu2v1`J<ϸW&%3 10(_qź Op>1#,xݹw8ҋER7Kwn@R;L 8 N(`V !W/q*t._xJgՎjkJE=&3׎b{g}Y/fI)Sa_.!31cz#9U'3cˑ3۟"02MjɘcwaGL6R,]/Y) +CWcⴛEɴE#F-!Dt< xɭJSe){VCأ DKl VIm3QO)%ww;LsS"ƴw/ƾ?\XcE?N,|P2C's8Ձp/|vHC˾٪R0IC0a\ ;#_4Ugu |g: ʿ9jbbmwæqfoc~. ug(""k;D-/_ׂ2ψz.S&g?oN5tx*IT!q<9t yz󎻋}?w\΋ɨgkq9m@ĺ;ɬ>z8\jr8pRu[J"L]n=!AI9Ehg&p(EjE\R sgR)$vfx뙢\1'[p7L2y>f9pIt1[aI@+v |I*!:x)}9*VdO8Lp"q q eۘw~>9z"ojN80whd[L^-/ M362I&ns@b/^mO".sN^uբ*).rˏi%pdPEtkAHt{0o?灳#ޝ{д9qf𓲶4Q(^&2aA#KJoztڈd;3DsW9)lݷgHRAqi0a L혯P9*1:nQR\79Pʠ{Le˂h.j? s:+-2.V _:dzwA# Yڞ/>Sm8Ws(`'~/X(B0,\ʓ/{?1%~lEM:Xyo7fuCYə\L"uۿ` c%||orќy^u;i ɏ^Mwy >6T~C@5 z/i!0loN! I gNOӦty_|V=mpdfW=Co7zޱUpeҝ\N*i.j=ܳ0mqcLjL. zF@KOlFAl Ǣ@qZS|s-U k:}dRvfX yS!i[Zaa8j1+}wÓ0vczg:\5Muس8,u1 aAhߕG^0egxnߞѿpOVR6|y|kx<ܿ?)/PˁM_n\Vy#?3% dtX|YWWw(N+w|>83c<^g_E#z8E[}kٓ׹@1|pv2Y6OSpA7 ̈?F>q]6z1Q4bz#6~ߞ aMq׆{w$+֓( .X%z,^y3^ s}s4i{ՎY5 3HS>4f?wܱ78K +-eְL.fbo8 E)}g25 N;^^ы ryqFC 3:T` ȹ\cP֍adVER$B#do s|TaTLI/J/d'т3:uw1yLP"CϛgL&2'6foA)y0Mw}g7%R~渂IleDBu炒uF-#Z&wӒe*o7׼:e n8le fǜ.l&}oi%}LTC+֠N+ޓzNnϼ#շ-,cq?2d1ЈǾi19Vy:V}<q}kgxK2ϊ8޿_>s7牆f.>,[M)I7zuֵޡe=jeGư}VVF0|<uyxņs$:o3g:r?4>? ޜ^C=q\׃矲i5q/_˚?ߛOۏp/_'? ?.?omiqߞ~^4>۝ۏ|sw>ts/?'9e~a_'>_?7`C~j|?{g'!1AQaq ?x L>fFBȨ-VhgA 1[n~7_-/",S":d_w1N L43דX?~7U~+.]琌I:E A=Vُ75$7N|0Ol;?z&mBTr&\\VV'Zދ@a\m+f|k$` ,\`U+c "D)7y0-\LF1:OT/C E錯%Ua W|d#Pc7y .Lݐ?xr8QBf55̠m%8'|YIPΞL*SE뻓b< K>03E^{'q0f5D.W(e^5{W3խ=2ÁcDK'E3f⋢#vs`{LBRoG,S?K&F $J2!-,gw>LfTq&<^9Vĸ~3fa0a}Ӊ%leNshD>=B >OR?=; hsEUݼ%"N0g@lŘ4Q!'.J#86lYJiPUA ad ͯY.5 eLl$E` xa\g0 Wbiaj8Q{$"ժj| TboPj"e8D_xBZ3+} cɎέ3_ġ|0$mDXJ>c5yEf0a3Sfb] q`bbLLFwbsy!q9y+f'6ܾ8tƺ B/kDɕ tYybjGPE] ۉ|f-BDQV1a=VH6.H% 1b"/ԓ4+cwDO\$@&I"Dݳ@IwefO~c㯪׸Qƽ9ϣyY*ie#ZLo}=}ӝ:#=bxd":g(XHa\Trl; &c,JsZj\A$oZwVG:k/34:sI OLMM&{YZX+r1 ML&RGJ׃ou^q}t /YmV! k= a$FawB>cs:dpN>q&J^>/o>fo# |>0㾯!B gDiH5Ycf"'$I?>'\[%cQp-43s>ZΫ0lO[Yu&Wb@<3`N< cs.pηYnua#Gz&:KE 0 scMe>$Y \dL,!> $q0<}JUZ֧$ 2XS#1'suEF1$!Q&z<8\%!Uu\FBi>5@v LĤJ#Rq"4!}f|AĿ3N"{7D\3p93>}Oq&|70AJb>GąVn\ȰD2&2gD1ԓF싘X'=gJq9[#a,p#O H6Koշ#5Ղ+b9VTy!0fd5|2}X=O[f2H=$FkaHaE5X%;{e75™Jqq!m;7|ڟk*aSAw? &+3X|cgQ||xǏC~}2"S}0& #qi8PW>8-01~c˳ ˈ5p2\UlOIHg7숓cHO302cu~h{\%nh S>*f 1~6Yչ(DOE%LRG5Ikb/qcߎY\<g^7!$㛆3+gYdوS/ 1XR#jQSq+@ő-@yŒ1+2p].!)쳔37Kܼ)gM|E e380TL UQ6mD\M91Dn&ǾxS؉1(ʮuOQJ@"|qL<×~" DN'DE`%͟ y{8PlM4{ЌYq~ؾ5J 0I&!|Z¸/RGu 㰨5QNx>{aXW2p bFgfV-\cY8"p^ UБLF3ZXRd&lKXS9)JU^+uW\c,elzWhXŭ"Xtxf!()&uUHM@0>/ 7 0 7i6n7-&`+fIB$0}y G?dQx~WWV=A|-Wo.-^ޫɐUg;8;/K*Hrq'ișTA4VE* I2oˡ]Fa1YKX ũ^πϘ\`Jbٯ|[‘{(WMBAtGcSd72Dzǟ̺;_OLΦ~!/-N?NZ—l [b|Vzhy( .\R#'m. }mQ9b>yMXzMqt@]@5zM28.̬4:#T`1q ft?ٴ~"wɩJ,;HTo H@(MA66I8tb!."Fk|q^77w4MW OQ׎-bzAThvT⚆س* 0}>~֏uqt phMNı&/] M5bK!%F=߽Gy Br Ŗ ݈*6ܤn&d18ddj*UK?~&jWyq"bXۚ7kf8I߄19sH\PN@X:g3vԎHαqu

X]9!ɡZ};l&̙̀RaA%>43j>)"`pM$P6廯5QJD1Śs߳|k6|qF"U3|hCkܑo1iך ڨ2p Ӱ:JJTed^*Y6'8Dͅ HcEv3pCS|\2adC<'I}ГC圿߆\֨zN?G A.?r?dg&¥@3d@iqOJn%wn_\>MUǚ='Rb +7IDs1 AJ#T}=>ڳzH%DE{P6:FN%@%? >s+lZ_5P*.xXsXfZ32Ls!!znPȡ*A/7MtOj@373`{Kԑ!8e vwW<\|L&-&0?em-~fb18n&21j82`I gjH딆p=#t^~g3:zI+%ܪ*BȬd֮38TGz/<#Wc<SXv\PBfϕ^ֻ-95D 1qDBJ!(wh_p dic(o0yݘx 5~,Ecֆwޯ̴z`DK#rjɥKdhGQX4fkk R-BWG,?n&8=qI-z@pDdZJ$F 5/RcpH pԽ)|GB^5&"a,Cǣ=33I!`&gsRh)8B0gC!@L|D_YjK?ɹYK\@VvY3UWLV8l|k{o9n21'#RUV Q.p#?B#ꉓe{dw3ʲ2Ni&'\%ϯU2oGГX ZqT1Y/~^BA9Q)*@p/PG+9 TeN -uȢw~]L-{|I%d}@ԁFhdžy{'S"1OR?bc;AK7SG6TL1.KQ ΊwSȞ1(U -#JKcL!NeSN9eJkw?lv^hbOߞAbIq? 1Yџ_6}u~8~j7B9aD2Ww>$s"!_4`H)lJ$۝+JGnقޥH)N,FJX0q tSv1.AGWw^O]ޤEa{BG,Ʌ, \ff$pCRɶtm6b(q.y) .p>6)f~OŞxxbLe aiL8>cϯ\;0!ϵF&Y2"Jqq5ߟ6O_~~C\\qU*XVj^ FLf< ZTWr1:{ߧ.=_~<~3e'߯@Ft$;*zbxah  C(MR"pd&3Sn D5>-0& .J )F7W$ 8424k&KTrԮ̹Ϲs"&%\/V &#djI,\`= rVq L:.^Jb!VfFb33,Ix-!QjQ$Ry*".c0FmrTIT'2P2E. 1p8hJ(*UMaG$vIJ?Wґ{@ LAjot@'K(WDu$fGWq,'W ?-wRQYWM%$jh緑`g9%Aa80F"#u>QRy剁pI-m.gspjjhn98f;',>!cɬoS0wQ3>x\b"Z^<C=_maH{a%*7+eoHTF,|(GVi@ɩԨaϞw5_n .2HO"Ż :ZR0N,F'ܠHb 26܌v}1%d!/a$NR2$NOU&rg1̑]!ȭ?|?~Ͼj{[Q5 f:UP ]I `* ` 2*6%[:1$dv"jKc!>$E"bE'98KBd>|,J@K|gtA*D&X`FS&IGP ŹL&Z  DLp$Q1V+1ȑːrٌyfD/BS¥En1yQxu+k\$QY~-LBLDeUdl 0IU%bd/ ľ$D 6}sq-8<;NDQ6X/W6ĐEŹ'jwX L+DF"8A郰Zтu5?_ࠅmLDI癆39t|" a6  #fן"QԆgV.$ .!E% $+#9mr%oB;%&H%xH$@lqY31q%TŬ; L\(qtsH<52K 1 bNb ͑;u%q34č#и}}^L2MR!]1ql NRjژHVbRZSQI\ ~{pf n+0.S  4)\R=hRD $FX'=6 \A3o-j3qv:$ ++1brU[<w^~y> (Ɍ/*(]^LD!EdxW(?;`%P$TݡX Y%"fC L $^D|gx L+ 5jAAvȇ"kL"/,0 Jn / 9IbDLx֚u$930l XQ q<-@(V Rª%eHR6fICp`p6eb/% ep뚏^q|>9bG!OŅDvɞgBGD~>LyRm ~Ldp2 0u6|P UbIfVˎ PnB&mECd06|OY7?4?G,nRlYHbg|̴|V f(B I'۞`%`R#m+=kqPa` J,c9x׊C_+<[ gA_/l̬ pVrL 50A0>&eu/cЬ JW#8q6 iºex ;@H'~ -Icq$qQ)#V%0Ĺc'AJE3V 42m51$ #ӊŌ\--"%fUF$#9kxurk4y19"xꦨ+nQ0?za ${vr2PHB2ΏK$%^I{4CS d-K.D[Hob`(Yk7%Q" ̤ι9R {3%<$Ḧ- YR! @<#nB&9vR/b TzdDAnD HSw2v3PBq"(eQ\,9AP- $RFAfM[- DƭQ2ñ.zX?,giz{o/:߯ǾLhyǡS;X M8Cd 1,IE[#)& yC6PHx̾ad!DCOЕ#5\Pme8T 3D%2nI7JCI$yR(qP56I<+o'OzOxpaUq*ԴO]fWr̓iq ![F3":}kƳ{NԒ0XCmr1q~P,4`V&Ǒ#s x( ;"nj֡kM8%  L°D' 1S= <4Cu8lL"Tڅ3 7&7Yb84ߙbsnӃQ#qv4.PyɘEi26"Ԗgfrf)bo|h&Y+^GSEQۙq- >g슘LO]3$&;LR;'l/:!]`q\SύD}Js]ė4׹ŵ5$ķ?Z 8o}Xy:cnԓ̢b 3ݤJs  AI#+73gVTf!Ae':#f |8̺,' -^~9kaD?_| Mf+_Ϲ'Jɸ~X].13Tc߽~$ef,^gK&r,7삸<(f "488nd HH1P ;$A(Kj9U̒%M[L֩ڒbS8& nMfĢfJp&:XY :PPrG%AմqZD fnW8ISw|¡ aT%# ̉4:,،iY* IA~LW\H[#>sg'ֿ q&0<"5tDz -k2# rj3%pI"OLW⫎ZTL0}%7eAy{3E<vMu^hG kv(@蜬K,Nu4f$/S'hZ&$Y,T2NY4j.+̳eS)*Yy?L^oBG箞yMZ1G9 F繩:fh_Xh#WI_3i*tDDMb]"P>jqL8C$VLrDja$cRY-!Vp] Sخ@H_]2DI3Gl&e+d߀J~gY[o_YfhזMLIq5y5.ܾ~̙iL1 a%O\&X1S#ڽV1O߿xN|i珟 TQ2/tBY4$oJ% 1)`R!*칐NC DD_|}dsX,9ɿq_~?a›nh щ|7:Mfb ᷒(F70GNbxPLޱT{yJB@Yp7FP|H$zooLj?WOѣjv=A1˞^3GYgf[gy@Iį k8y=DCvH^c>cq1,DCz/]g bQa|z^bU$ޡew&7/:qzH$f]rG3ܑbPe*\j &}ơ,/1)I߼D;0a6O9=8Ly,{If*}֣l "; Z|H."]x+! sc$:y,I~&#TisyJ 4$ 9N(gfOHN{J-SxecΎ˚2|Nג^67 x7nKu8$|q?~,$]bc{+X6ªW~~A,=_XVOM|uy]ygƳ;?:?{8H_ԮOƸRNqBV`o4H "FHo䔵'Aty)S*'!K!:5$"ؓ_VEԸHhNT?-9 u9-6ۘ@0v,x u˭Q gW> tx 0M8V&x"#(G@W bqۅc^|sgsQdZE`F^.bbS5w#ܛu9w?G%+FOmYmBµWǿ1o^quSmuf-dgH_ĚN%}ΛnɎϚqH ~ /]ÕZ4L cǶS3ON%;a b ~RAgYyy J%L  (VАY4LrML(I7DM;U1]8r_ 0V#c!f=dK&Ddb=})f; f\> Ү—f*YͪV $+ꡘ65[מWةLXP<"_2X,Xߒb}|uf9fgPͳ8H:PaAhHBeQ(j`pK\\wd}|r؊X9yB5bL+׷GKj%h r$I IV Й|@ХC,V'>WU ,:5g.""Kޒi@ P!;j^ͱj.Βd#n'?M,!E"'Srum'Zg+s:nY=kp|OPHKct s{r_Cq\sX7q\?d,a823~cD٤DC=\u4'$G$Gc :2%0ZNy?}~Bmh~ f~R<ޱަ73TgZ de͙OyFvs3`l!Rd +EBjq8l30uĄ9{X`k-A a,|n`A ETQyY1I04AŔ11<3El($! En+!L؞O1v{'9߀%2E7bLt;d1Nw:n3'If?8,]ޠU<DZz|HJaO&}gg$#VU{fE ȳH T,m|j |G :~2x b~?-$xYopfnb""/\ V"âҸ'-YKKI>*P悾H),* X1fR&{~5)ߞSbadbYZBΖW1|[aLZlο1C3=?ą|Xix 5縜j&JtI}8_g8~1]}q<\1N(rqψ/^!q9]^+̑Ή Tjy:ϷɞfQuK%M: 1ɷL#<̬gG1,2/·8/\gM,m2'V,1 Đ*!$rҲli-! 9Y|eS<%$.wa1:wtIVf.kjTbq%ҡ'1-uGYVFHk3R RA!0|(ʉo&c (N*HHOpuHQ OzR@mV)ʎnTdc|nb^O1Sw!6N' -\]x"'MH1=}s2 3aG;oALK0Տ-p.i$!|# ;Wr^G퇾h3d*}ߋvHvYc)+ \>@Y/R(IM9twI,Km8%|s2$!R0zTrq9>:$}?/*kčLC2C$;6b:3$UER̲AaT.0kS6̢;&j. a=zQ6DN]]Gxġ x;3!l mzsQ0j޼UW2U-&jկ&dh%n#sĺ5Reh[ZfiGs|WiGH1Z!=Q`X|B^Jً#(QPƴ`~H4"3: &֤YL;&|y5qV?qaɖiŚAqpLrt;pQ!ID!bX&R#QDP>G3$Sn[-S.Hpؽ j7~`G @T%ȅHB(Ll J5 M!Ν̻W9 ljqr& ``pbbU// j-^YN}XMf;#_x"eGyc8え׸Ϸ Ϟ$7Y|U# d3ֲ?Χy;wp~?fkw|XN`$3dӎۛ`m>R9%\cί>O3k7X^F~N_0{^6jEnhgfĞ*;=M' !3}̞f!*\dϟ<]~Gv雜5NJ-y wC1U.uFJ37=VRY0B Gf{~!Wnﭞ~0Q >|]d}@vc6ac2nWwym}ޏW>}Ԍg|ĎbW~9$9 Sp118&:H gT|B`_zM(Yxh_uE R}tLVGY[(0x! KLY,E/lpABOľ8v  P$d"nRGRnBNI8p $XrŸ[ b1vF\ o"1 MhTۃKF/'2\3 (B5?>0>b}fa+}Jt%1p1u0Ȍquƅ.5{EY̩3n>p?gNF BLxI~fx%J VrGx L8Hc04v3祯?C3س>,7ʵ"./ W QlY,TDPF1Ypzqgϟ~:z"^9<_1xܷ&ɆWZ8nNe!Qg6s>ñDύti~lD.%3s0B̉tOyk Pg9WDyhdde\fX^- I•ߊцVHxO$^#&qlMTURMQ9Dd3&X2ww#S8G 6Vn "l;R `!,{Y`d%V^J*L ?)N@0ǨZ-PP-" @W8.>"wE[gnǯf86!3;i(գ H sj"wDTL=fBn[2 2 NC!e3}I3}>96W9?n0d[$)|Je+^~θ JzGB0I$aV,*oє!T /d@s0CL „ȗ{%vqsq~W# wV|q&?v k?~,.2?H}JA~+!j<~>~ J[HَV\2Rt\wlΕLF!ém0L; .<՛0cn96}17ο\O}y0?݇*ٍM\}/Z2H3e39iK)VeѤ2؍޽¶q>}SC hيRMlwp&1ᛍw}Y [F0D 33TOc?C}l I'f:>8l#oup iOwx9$'Y!'U h_}SQk"ڔ:kH% Ģ=LZVx# 7q Ș@f2(6|%IIbFyX0 U"HΚiX9ዔKQ4А@) R8v@I !e˼H$ T@C*2FDYP R'?O@45+dNzB$]0pf%<;99XFaaybiO=k78RLwStwP8f" rIaT}&qJjD*{dׅ~!|jq18Xz(@[~=#7 O8،3fi˗WN!b2gu0Is98rh4cl >=C$+nHL!`J'12n !@Ϋwx h6& i](Lb:=\^A\Sg'QΎʾQμ*wF?/ڔ}+k"57Y Hd#%c[!)R\rv@D#BYa/XaEVDN`LpTqDGxV1 UaNBBba),4A4V >9R刚،YoRq&Q+'Ip`.O)PY0($aTsEwsz7(Lek|0؃70KL4#TG55<+h@P),ҘBHdyO g{xHXlv _19DR$꞊{}2h{7Y1s'OGg~_ W ZDA/,Ŀ[xUapBI+9]L\6~[#'81{Ҿo &vq\_hLʱzL#4|LRvH֛)O-jFnܑs^Ό?w:_?)>֖ZQP\*g?F^;02C@Glq`;V Am"*+" |VațRȖƝգ  +trه`SDx-=2.!11 15&z\TFRA \َd"RRgˊ9a4}Ic`D=W}"/1dDđfDiL5wl*#ʼn$f&"¾g?%#>0ΠdJ#r) gIJ>\??[ ;0CZ3~H]֕U!549Q}P%ő`@n$e H\E"0dP"da|72TR.sZ䬚Y}bZWnO'sRS_%%RP+~YQˈ2%1`W{E)2n҈Dk6r ̾vN+ 35˩ m[ >R{894>&\<Fˍ;xw~ߞ4ǃ_w|X6GJD$<ګ< $͇kIf npX옖ڶ\^PK},f9fCj_ިJ/_O{]Ai,fcטָ2Dbg5p?~a3P! FWAqo(4WfםL!3>`q _̽-~yu3kSrRI{ʙ!f +=Y0%+h0Om{wAR{!W&1Pf/Dj*/BvM3[%,#}t#VpȨHMMS]@1sMwJGN7\ڥ!I1_g2UD!Djfq.2WIJDA;VZadPI09*3a72n'ܙcD(GbeX A6~* IZw=KG"mQEိo0fO!5BavJ oX ;DU2[ۙ뼵(vPג][8Ջ:dYf&vr0 nZ9hIUDp*Y "nd4$&T@u5 W3(R* Q0(A낐% D3&40HI3&˒bFAacjBq]|3-##'}PʝFfyqb_2&5VrgOdi%#D#ń]቉>cO|LTyXu's#Ih˹Vd"sEvO PK&A*(GI&nndc}G'O?<޲ 1,-ab'@1^VYnCmj+)#U5<s~c)LB2 5Ffw1ଔS1b ǍaY3!PHw3Z E{$bnaZ f83PD+5ŅMμ"*p:VaR{ -%dcr2DM[rOLmHg,WRBGfQ> 6 ⵏoߌjby;D[̺)m \WS(W@P,z|:;]$ x+sfzy DDư`Ɖ,ZE_M " @q '&K+ ,@ eI+MbQVT$PcTU8\d@[&kPqP9%!&QF!ibXWpIpRV r4إB#H -LC 9xVQAhRh1$0*.l ƧG"g\ ~ǮXA$PfG\B!I ̈́/CL@FT,|-^q33"!CX/VvwԵFb|_\t 6<2' u [ e2 DU$-V+$1J1z`Xa K<92Ge J%X_>8VR1LN'E!dar,L_>+LòP |F8ڌD^[-L  |8& Rg zaj+ւsjg Y1$I> %X!XPpX8(17̤\_90Y@=⭚N{:A*_[_lLK:[o3b1U/ 7R%n7x aPXsp 0pTFHI_W0a]0"&7S WFn⟯Qbs`XU‰D,hCpd8Du7q,9*fT&Km7DgN극?a܏ЌOVd|ycnʍf@|LP3/c WV[#钂=c 6o;2$)ғ<(&+#.x@ qoAGr=5iȶ`qQt( H a* D#`=r"jf&!R)V#a^m{j%Zb0+ϖCJ f`Kߝi%Y˂qHeZY9.U#2_l(WnIYv`OCBǻR-w_#;$54-..&vNX L[-)7㌭jlNmYʄzuͲ"C6@?J0z oS& ]!'""f n!؄o ɚ$w[d$ucfXH+fe0XfjQ7O$b@n0'*h f7IBFoќG s54k,GfT/`2MZ絠1xQ@,Z̝ A`z ,5 !ԦHoYIlZ@|YQ)B0ut;@jfChQUɛ$ BxJ-o EjIJ2!DJO1H`ж͌sfU?0\dKa Zy5iĭۂ`(LN" Q\BK )&N1 jj|σrI$$Ix2PP2u~&azБW}靈o.߷O D4qLHVd2'dPP-r8O2 LA%SwLX}xH*>Ujq^e+ T 5!$FLLu otAa[Q8҅Z0Nc%vx!3 *zVI{`uӜqwb, ϵ$UBKscWdqIU>ԦbVV#ݕ,CF`&; \"b~h b{CH3%h_ O3dKRf`᱉BXA3LUPH(PMEJu8#X8&{e : "A^;NN[%"n ^K%c=C-QD B悜X߃So,`=gV}G A 3t,!c/%2WċLXTE)~Z4P׌ =ur20{Gw)w>q;jc'o|5w v7nۆU+x`Ж3 #J HDe-I@Q_(S $!Gvb#!T7Ffc`_%@+ Cušg+P 5/LyfԀ"B e&A|O)>C2Ή7%Yj\Os1: `*"6Y" 'M$!a @!K3v!!L#?#Ħ#aXjf"VS'[3.[ 䄋}CTľ} e"|1&`߿ADWYٓ]GϚ+( o/ _:q%nf#K1:~\}n?qpVş6y%] 0-Vwp% l 2nE7%xQO%pBTCɆ|)2Y1d$'3 |?IKLW1je3%b![*ޣ7$bZ[g!S@Dnz0t(#S~Z9%y,3=u8VK&7r!`%X6F8] LǹR53HQ$rbY"%'UN;‘]F}oslD(`bR `Gcj\Od26aP%Lŗqη4ѫ.bqHCjEg"T3W["Dc8Z<vZDI(>IqV26%i@0MBvfT)PAq1C ||e.s/_ӊI1o `<XKDvN%0Q2WEC2΢*#%W(!c)"L0\dƭ݇'7Kl`wcj "EGB2k%HdQKr.GC1Lxշ8",qjho4rRÌy F@~y(V1. Ab7%}4 [SJ3B HU# QYc(ɢaW k L>#q tՒLu?^|_ۆJ[kU?_ Q5)rm S+T,gHȘD3d,fQ`?4F4Edr* "Yd2(N47.Œn<-(B$M$AU?u+  )<@$*1ah{*{7BKVȣ>⢭)&( жAA6a%0^:`,dH o;fbZ}ΣܶϛKOwa^(|u7ʤ N=q@pRd\N@ r 4Ϯ8u j௙|M oWh]g5`h  1A-k%3"PHϬþ2}+s|+#t&?{`@{(OTcl#511np]#}8R' о@&!z{9$;cGMĭ33>"q,CiIPq|-+aGzY,=+)x_ZMܳE>W!3t4Ob{p ES]cm(T%tjo` wμoR-P@"FB7*gpN aH)A|Kpq?O1X#%UR )*$Q#4,he2&IVP(((̩T IVf'zPaC"g'R]nNJ i1f1,bkE=M?;,'^DQ G٤ a$f$D@ed![^"=Yr2)]{,'fnVET b$!6D I{yg#7bߤ}>DOgݗ@M,l p>|#zp"~%OdOq}8e-ʓSw?WRc1O8U1fQaSUA^3uԮA0Y|1G6r"a&;U'ű MF_8J 1QxYG*`6Mϡ1:ǂ=]LN *8I!U2{i&=<*+!,D@H].s2/6bEE&"\hL53N"L~8$k)4(p]]],hN2y#a &$n" o~-\UVfi xG1y4)8:|d9끶"C_,6PLd'B\'c8c ȮbdCf0r'c vGj`%pٚ9@.ȕi4 sAsҍWqH2G8Xg*3 9FF^lc-cT0z^ 3 a.߬DvsXߑՄ o9A4STלJtQE徻䴋A-Ү!#9snȶbc-X DUꯄ˜Yf+0X"&SQ`i({+3RMD( Teo <"DF^Tq1 qU 2\ 3!*2iMfXai!B쁜O@2D d M_%͒q{റ:,!1P0ĭV%6>Bad5&N&F9dh8s߾JF܆zmNa7D݌?K$n]kQT9e|%^1%ai ؖdɇcw̅RG2wq18ufSY m!>Ia 酈2u egJ9p[LD;&h)yi*`m8b|h•i$Iܖx|IUJmPlP"$(pq &@-""y+Āԩm<؄() l8+3s"'f0EԵ?8<%$R1+2&i^.KHL1hh#ePfZ 0=P\}X̰QG1zM *ҧ*%b>q YVNz@LS,$Za.`If.:.Y=>F8Nk./hg3P`䡊c. o﹓Y0fBS`N"rMM6aࢡ ty9@# z<jQ{ Y#uDStëL.nPtXɚȿVs嫰Ka7 1m0zQPfe-?=#iqczՌ'kˮPɃxyķD9վK+ϸ:Jw'~$[3c9.D7N;Ne<JV#6k ,ZI,d8gA%@ :&ˌO"Xwč%%rpvs+5;f ʅIpɅ+ Iώ&ujTO]De0y 'VV3d63YBT㨐aL3MEaͅE-n晚JhkTjaX;9-q21Y] ̘mL:(e$I B$If"Z)`r ,(@DQTIu4Ѕ0$: ).j3D2\32Ij^ &P,* C$9\'2 @fI2q ,gR 0aa&eգM:rE7sp8pMYvIs0e&LyQ&&w/jD@ @JY@8ϮLML3oS I{Ow:ZmYWQ@baD}6s..ں:x+w#R6ye2cj#R&  MG"A]y57FBLq#sZ4,#]!(g%&R @0ULo;-8k;*n﨨cK2ITÐF%WŤ%NX<')~þ 0>4 LI5 y ıjzh,٬QLKtvR ;y)E툕FS,x!ꬶ3kZj Ln>%y!Gvpf, ZޅS*D݅*O9@EÖF^$ρ-&mWfAuErG?Ir [Es)]iɹD&DY\6yp&(+آBVi b 譀 LO,㕕&2 +l0bYDknD\{ur[ ;K9BSK$JM,(|U<<"ڇMd[Y0C2I!_(f?_F#NЖDOB3ӅnꬌI`C}[Vks+ !{IŭDM!İd,UF@w&ݱHf2꘿wY S:1y f(&<ŧ~ǦJP! n0tۃr dey`8* i>u¹'-= # YapK"!YbuQdIM›1dHfPMI2C+2{uE%TnP6mfg13̍Qry$Jw6y WϙLT-F`&H 36m&ʪ$Л"P0RB8,Kp+3%f&bpf$8AI=ʋT+.|3 d$ӊ31/љ}~?1LLb uqCnwLg|0=JY- 'ooFS=.6=az8mH_E+憎gx]Gvr %ݣ6*7.Dyȡ $4@5l2<#a5q D\9 ݤYe#Σ . FQ 0¾Eg'D Ȩ)$by1 s½wd\z] z ۃ:Kښ*(LލG@#l[[,I&*Kr$4ZsVIW`3 EIMD C2^xN23\q;(Gl D]&(K+7O3 p\2j@ /%u7DKc?fcx} dIozI,MĠKFϕ&RMp|aJ@-&I0D:«f&*f`5X "Cۦ~FQڸN"Q7>%b=cXL@ĸ/lԌIF~YY޿qFi x \{y_F_S\B4f6iiI$Us$N 2O e&*.qc{!v6ScC!S ,3#Ƥ*[;q=!2`f>/dF[ j^MntW= i$w1Q}$5+cdg*{!q-/Fd3dq)".}<&bd٧L b=Й#+`ArBw) 32 Ga ]GҚFzAm]u:EŶb.eKQKlۉί0 fεp@ Enrx@C#tjv-gWq"VP,; &ŏIa !DBh.M B1`g0h'1; Lr2*{S >ApD1GHɋ=, ̢1B *UkP/o-3@D ˼KJp#i}ςgc]߈D*o|#'55uG\2i6{[d9Jc̡"a<\}H$Ђ+lN' DLUC=ARV!+z1'&q,y̕f呈=UY83J4Zݺڡlyğc};"ڙ#7oF8L\/v *zqra|v>0 v:# јbc8VNry!NI/1"#=K*K¤7-FtL:I'gZFsq!sU^ssAYώZBD0`%#lˉDwAfPF=2$r%#'M"@{ΤGtN #dDe3)%p̬e.{Qwf(LL=o{*^޾f5QfA~3$rAq ,"'Mј!juSj7( M8.-n%qK$4y%^hXjf/Yf0ƛI붢z-ޔ_g ކ_{sOU璈\-,LM!89!n+J\ r{n sc#q}i9'6As?[*Y7|o&@7 6K~2HE|} +HpajQV fTj!_x*J',c"VQ9F'Ԋֲ'5S"&xNU #U5q70A*Idf[} yVQ2,j+| z39I_,Q2gpD2q ));gs}]Ibtתbc[_8{ "PVWJ(`m&a<&Gc>qVܱwrrdfl1*Lj1뗂%L$B3u3ex-\_(ғ s*S } S:UqOp&ɛY>%-eDγ<8ks!as* Nuxɑ]븉|x0B1sIP.V5+fr`7յK|`{3Ueۊ\IPDu'%khH$)dsC93(jʊ\dLzRNI~l&$]>៾~L)Yen(;{!u=U_ʯ0nKOys7\q1|_q_}??'?q~'ˇq1cq3﷘QS0/i^ @@("[B]8%* tȒA {e D0!(<lB CFj @ 8*zPR{@*t`IlhR HHM& U`"]7B@("UShČS*@Tqg=@]S$e‚Ֆ lq bnF7)V <7&AQPD"@ .A;C`1iHAq+4"<D_4򛄊Eh V*d RDPPjL(1QANθhO)pHqlBʀiW`0}AjP\TV/`1CCֲ~#BЅ=C)E%a cԈ@HH y@#AB}H((86W UE5B&0FbHzCQ`鵪!  Pϥ(el5j z9*F2(uvhϠATATo "JT" C8H4'M{b"8J6!S*b*"0pHdT$!!}(ҭEW@$ŘTx&B/Lza)D KJVEj 8tE @JNJ *E-pևbBT((fH5Bݪa,AQe0*bd4= L%i&C ihUXonǘ, ) MA]B V08 Ϩ޴D Ƃ$ HS% KH0P)9)1&@%qVHp],*fD&0TP,hV)APٶBOD&KocJEE BTW,&R H@c 4i'@[-6Uf\PuDJ04j")ąZ8P&#}%`$ 0DBБ!AvH1B'(-GT * @b* q>1aJ)XPa[Th( 9b"b[$('$ҁeE =csb Bt䰕P2B$@!_+#0D RRQw z|*a`FEVL!Wl%A1p{ S@H$"cAt@CThޢF4FVu(: @.=QKTFFH&}DRLٓX)¬a+~B_ TW:1w`e W`ꈲ` a X"MXq $TGA2T&QQ])QKĭH8%kZ4h#t}IgM7\Z&-hĮ@T* ,"`8Z(nDAġB5H/D`pd@ 6ATzdw d.-@(P˫<4D bFBh1v0_m iR5j**hPa&WTc@Hmv(#h:$7EO0HhZP)Fk+R7ZDV04qBP]Drr rC0qD:A-ςP:] H$vRV\LDV"DUH]QOPU۱ VD}?1+)apˣW\H*0R9NP}*x@RA 'O J'ʙтPiMB+5JTbTţ0PAӛ " @ҰEHJCIw"<& E"D#4JI 0AS\nj+Na@FS2@Lsi6\P$PҧHERQ 0B=,Kz-l. WRt-3# ҄ D򰈃`c` VƬMMC kpȇXX]$դCRSP0+TH}]Dj4QT S֙BQ""K@dK@ned( +SE( R] !0@~ hIȠ('TB `1 Mh Q5!PQ0 u)бDJ$(Jr'1HBz b7@Mԉ-Z(bF Q hM $Ҿ \I"-JHh mD*`\A Pb"xLPDX?L4H|pр:$"A!°+ %%$-[Ne YY' ( $k"% āƎ Sn [?S(h["۴ *k"`(:v֨N ]iH™KvG$(%3*aD"J*~ )B$`4CAUUΙpZPƥiH"E%dP 0@R ( & |["4\0ĝu A&U`!WE*{ATP@b*{>a Ы(m ӭ@`AEyҡ >/G^QBP&j` T ?9J )1@X]2ф |C!*'W&Ѡx,PD M ՠ,FFITjX:fM%H>BPh@t*#CBJjx4KYACB(4~UC1IfC$crE4Lc]A>|鬢~(9L)!-gN$;ʐmDRAs^C1, *@Q9r Řgr  B+S2n5` R`TbM%6 p)BjdP@DΆb@@v*yPUĠTKBPf!!*ADV 7@)4`/28]X^ҕ4(@p&*:~kcBájP@yq5.5ټ88 f ]"OO`J" z ! aEE(_Τ%Q(pHcXqVq&̑!tȆ# JDD53@ڑX+x۩*R`rT(|4m=Kc, M n EZpȑA7p|P\PM G(<trh#&"¦,A^0 @(P-FV?LJf @@"@iU/ĕo΄ݾ0[Z$a5|\xmC}E-'I0Y6JWPƔGeA)9mL|P&Tqٳڭt@*  *a OB-5XLHV_pH#<(AaD/`l (!Qj*0n‰ H%!JACu;'btE `J "xT\` `Hb(7lU~<^?({ˊ JJL K<.((A͊אT< 4\K@TE UF %Ȑ5R &Rd , E0v $%t!@x`h%l2j9pF-_$@BF`tU,Q GBNPj=z0d2e=6R_Sd f ȯh{yP9[Bb 8*l) RuhQEE[$yLBLE HmJ")PF p նp㧡y[~reMC`3Z+=,i+ai *G `焠BLZ3GDGZ"ʼn20bۑD!O0P Q n(֊”D*ϐI:m+@ ? q"`(q$ TI@ԅDvWxGT LLJA J VClzTHDR6 PtXXLQD "O: P:BO_DC@H< %>ȭj** *e*T[", txA  8و,,B ϝya, } N QR~ˠ`Cj*Yh !oE]Dd|BAf6*`jlJ}9V)N@D5ɂRтP4.o$E+$dT"X h Ba ~KQ1eND 2J.ƅj(095E(Keu2B[@#cEHrZ/y8]AZ2 #{fz017ݱ\6*dT!̠*( BE &i@} ay EMm-agJ$d"A*>Jh={A`%JU4TO ? } Wn)xǢ*v:5V˜>T C!bL-+IʠR%4BíU PsAA 1gFkNnCw鼌?b(fP)u@0HhP>`/F  .FRS.ʞ\xd4bX ԅ ja@1F \-Q( @4SԳ/Q@zmt1VبnKS * t{HodxgR4I *0- #ȈX!?BQwAe@o@7@P$7J'p1ah$NQA kTa"(8r҈c`{bCVCHaZ"`RC$pb$8R> b4 4-t4mWGRCC$THHo.~ @PB"H ӆ$ K B j)(TcoCj\7 EsB4HX 'T`zƮ+ aE Zad>AuDA, VYN4]НU"aDHK V20.D !T8CU^ l*xuWנr4T.+V"& R0e2e `CM@ԡA(u8 )$RHJCU!X C A4$?J8(+>(WU a/V$6wT0 LRj!_E* 4!zX* (ƜZVtEx LÐ,1zʼnB1(` B*ĀÀd?XU'NJN*248RJPG@S`hTEJ0>%IDFĚL{*0]ؠ|JH0lNY l\i 'rϫBiH&=Fϳ [Pq:F"eHB# JY &ɱK{XpAT0>U Vs([ E8φ ThG4*jyLCF+D(3!dM`I 2r`(x(%5N׋>@'6%PIGl2 N@@0z=~CH8Ap ,fnSD3U*6@ XՑQf E=U`aV0?K a_hY@SX8p DG CI~Gh0Tt+PaXqgQhYZ :_Z@IXO16*_9&Z,k/,ʇO]b $J,PhYNIt|J1PRp T*"")G`YU@AI#C AL rAtbwLJt,)m1:3P44PdDžvH=StJQ]$/7 b&)Gt c=Dp>RD蘁@ .XA bK``^#!=`!V Q l:E*&UhaAeB{U&}#B@PR@ p$K]%y ԐDElUDHI(B@W @థ`picPIT)TbR "[ q`!k#z™ڒ"G~k("@$!:QZPRea\ > R@@hWP y8̨@:@FP@ 2FRAi T M >*@*b='dqz`3PY,eK%ˆBw ^WN 4i&Mc{,bbo@U0Aq[IIL @Hd%Bːt<(p'XC0\! b# Pq{XP[= =!S?p ce5| W8W5M9tN\VhzIQstX3V(@j@HxaET\*@"*QM)Ģi4RyM?a65%EL AJA9)fDEOTjA&IW 5a!Q4*`EzVJ5PDX H8tDeN& iao& T+$*@!X.A"=@"T}Y D,UAU}d"z^D$›h, KD0l4{M!5>L/$C-R>$aI"B Z$X*#*t}%A3T%mTyh.  R,z)+Y0 nWD􈠢eo<;V ' N PMDi6 bP .d vr&&ϠAA=!BiHՆs~PioF0 QGk`<`X&.tqQ| h,.0"UsDQ:P!@ (T]RU+rгPQyKHʊHTPeQ]@ij~D9k y z@}ʢ6Qk6p`ђ̀.X%' #St/jM Ț%|e0]rl0<(:2eie֪j[DYXBܧ.x12ݝAY,q`HȀ<5ji;{r.3o\W:2 ȟ0$ $є (ZFD1hĤ0*4qMX$A$!-]JV(0g⁅E)=Y F!CF xCd!PBBEJ-@+\JJ*"#z`"1(VDEY3fh모T">NJ)e2 pQ #H {MuYT%4%mfP&&I({4x h*9r /hFJH߰ D( xsvS4d}FAeᅨ"h'Ŭ?sV zхh@ d 2.55R躑CFƢ7 d'LȽ0@€RH-P b2"%0 "^( xk"J@ HX €߽xv$gl%%0$RgBNBB1$X!" UD7u@HB(_PثDC6Ri=f7y l ԫ–J_V@8c)J% "8ƕ% Ain(T608)/V<֬AP@Q[R `e3lwHPa\tnNpF1 P]{ɢ7@P?P2 3)4u-(9_'M>hi8H`QrWJwtl0/$g+,.hab)Gd$b- {Җd`"T;Pl*Y%!v5^u> @  Q f" n8\E T$PEUAbъDT10xU^6(6(V(ԉЃD,ĂDQAL`MN\k |$Cq~U F$uJ5C *A0 - <UUhβeJ6$@pb\0X4k4d=y,IAX?t"%e$ UQB* )QDTp_)IbP@ƃ Vº"JURPR"RV&V+\QB-a Plx|j"_'5d(+-ZoQFS ++8=ܮ d[ R\;AQx&˛lƚ߱nΰk}e #'="@QSoX6^Vid$˚u DF9B"!BXU-h7e,X H2b)hIs%LL8"o(ZhȠEyѡ.H}J$t"jJLHdI EҠVEPA\}n#ax`D >"LG J^Bi Y/U%  [D (8BW1NP"cAVTt]]_92*Q Z@x jҊ40fV,8&b]ALTP9MVB X "\4Ưfu'PANCF+ p"@QZ9 l#Ҿ] 0< Qhӣ _BdCC8Q:%B%Z fp_eQ#sKxIytRG@>7LAV_L,UI=S`FAF'OAn$  XJ$P J8 04a#DWP@b0Q8qV U*SWj%@j$hB8*vP.Qda@"@fJ^_Cx'Oƀ[*VR$ДS\4*tDD$@QN& dC)QTCT9P'ȥ8L{MFS"[ .1,W;>V0'i)vƔ$PGD(h ]:IFL6,) .Ri< 4kR5ABN<0:9eaE? u 2Ёk9-Q @L B9rȁ)F &hdPH~ E0H-"B )!TX4(V J%I=~+T5DCM jjtC h!E~^ ý\/E@ (s"` `*X8PU Uz R*y!.%mrYK5*P^4 XKpc`4 Y'e@TEhey, b)[T&(ՈD"8ME:4aPBfR F <R@8ZITX  "Ԑ| ^}DLD^MT4} *#ZkjKp6D]8DT*P4 %`UQ,3F0 !,Zc  Pj@ԔŎ azZE#PO!,i 4*>4 !0RTDiU#q`DdIjD1$@::*]3Xe$/)BrH0(2`/ KA" bTȎDw\aH uʈihLN@tHG H+vuT\IjXjDHt4K!YO|^.jV5J@UB6PUqb0T6R-4Ȩ!$qBiPd@D{(- [A#@<eGo@R5"Z"HH)r(n "p'@6XKO"b#2%)M)B`G#%`@(R-@&(8|xD =BFOeAiJOOтZ=D (+PZUʦÉy=\":1TDIٗ! 2s<&%<Բd/|' QEC"c`Eec:H+u^bДSFP}ľ *~" >⪢!-PIB DT)W<@R )룠Y%5[\4Ih ߸UK[RRB0pv!S O58P^ġ!{eC?,LVeAQ0%$#Ud) j@tM0,d1Qg^  Z1QȽ/-M9L"* H 4"hSxZ?R"ȳA չ;oOo1ERU *BC" #a1pRdjI Z*]zpQ5OE9ЏLA"#(|JBjxm$-x>!e *" E@dQUR,4Z:Ag-P҃#JHғNZdqkdPi"UV.EBJ-(aI*_ -*+ 8``X}`Dt=ag*9⹝B"5φ8,I6zv%NdD)d 1@/QW`NF (HU( ,eHx !()¶❇ @R c6#KA_ 1#ִĥJD \ZkiFRG"- BUⓟl P֗`#-!菑`(`-~p" UNEA@gEj0x"DDjyC  [:[ =PCvPF \`S@֊ImBc%$1P@TAgR]!8B1)hB3K%  F)M3LLI4#j ԻT45/xI 65G ,T `\_YB406ȉf7#B퉼40G W|=^ Pj  ^ 9eFi Keh2 X! (RM-0E L/[&E@öQSM<4Qy'4` H]R$? ȥC xZN^TAikMl$P ZB(+F a\ŨϠQ/ @|ZJ"M(QLJcÔD,glTQQ7|W[(S)hMبI*0H08!!R(@T *<" 4AhFP"(&@E(G@RIT 24UT,5L҅kdDEJD HDXh5Pyedk2O")h"čSٔېHkr^l7 0wh! }JdPh jM4;l-AV YV ‡Aj fj&H<7v. R#i wQdM @@1 FmVbuoKB$ЩZ"Pgu5T@$T AIZ)`!XAKFEAEH=*Ā hlA8|0E d0^N $>je/P#pof`A-Y>R%‘S  9ND00x0dI)FT!  Q@H[ȅE A?tSŷT1(;5B!%L`PbZRb8d &T#F8 AE A 0#cV)f$ ĜY|P)hB(;ilQ>l SR""Tj@ j@jRh8a .y*Ti IbN ,5!Q%I]ښh@DH(-5HX (H,XFPQgUpTA l] _`VJ\`PĂb, 0W@ޟꑶNaH۴.'W:Td•X< QE6.TvF!TB bBALy* EU( =\%ӭR|! X$(=mUI*L:$WE\D!@ 9Br$) `)=#hJ )-v0 oA0xD+"B`EUe+m DBTTI*@U老7ࡈE(@$J.bVy*0b BIUH#e{E L 0BTH0"6 &QH@d 0k)cgHiF .jaH QB!j 4SK1UDTtjȣL,|-(a8`tEQۈb_BM 0Hkhb`G ,C(6th R0)`(00GX5Q|)@`EZc@T豪:l$A{ 8P8"#"[@8,#JRbj#%-t I <ન"TVVR44PE*qX%}EhiZQ3 QJ8@`@ u` ƥ~R% H(3CDLx !Q.YgR$ Q#$* * S[U r .P GI2;"lS(Jdhck)bq"`TȰ @@!B20RIdP"-kJCRdΧb"=s*j"=\`ވϗ*FUQ` zȴI3sy rFEBM2x$BDB!@Z1 Jh@jyj$PQhU\d8V [0(qi ʰW#ϣ̃@ԥb>u*_͘z L\PEg a!p  Ԟ@-QC ) ej=>&E_&B]PEpdi7(X1 zn[=SJᐡ嵔Hه75 S*8Cz?Yu A'b`QR"""jx7@ӑlP 7L͈(PDXDP* "A FJ'Cj A%M#3"]1$8)C@zȠKKC,R)O2 XT]P:4jhFR$TC!%- PsRU  iتdJ"JO, A OѰ.)Rb" E<\Lـj"QQb)F 5@)BK8”"TBB8PTC@&fM 4SA 4E F@ULNFDJ$,i"CEM*'#D ERB$,C8t 0hi$V PDADS ̋+%R@Z@B8@44X="y,Ke(EEAU S+DuCdudLj,R=W-!bL{Ch*{W~>8R>i N+EqBKk0%r)DV5V|C̡?$=z@$DҠ # JQ Px#]4!,ʒFJ0*MŅI[AAn=!0U؀NA]l0 Z (#D: YHKC&Jj) m,%m>&854h0Rb*4UR4ԌP_0"֨iH P 0Y]KpY$7vP"kqXpB»9@-jj-UR) bKH%O ʾP %M6wYu0)̄A<S*FAUElݍ8" h"~!h]P-Bįb` :b"0J'06+a*W(CsUjL*KP|otV2~Ep 5uPD]|ZA,d% kdA!7q!@!hQ*'" b$5ZH$, ;Qtj"KCBmH Cф*}r1z_,%8R@p@C CAMA~ЌK t`'P@$^fh1-H2^!0!"AkU@R uM%MDT昐)@bU"?4$:0uiAP"Nm!BACT m DD jtP@8ETM M *l`HjC@uEb'h-1M`P HNZ>J") I( *Q$`@B,+Z,Ӗr¿W2;&J Nzej2ЗF4 2袕@r_v7r72M. pF읣P $59(Jn*Ax%i %'0%RbUA*v P&U4ɰ  AJZ (@H2ӝU^6(}'d5T@bSumڐ4whX^&K@Upz qu,, AP5h A@D!#H&Oi EHVC 쁠 u` H8HUbQ Fb.D5qEqM(0Bd]ElJ\SF`~eDBcH**78Ax@)Ax &P/Zf%l#*E! ְ Y/Qh!q*bG;TyX"6(V14E JK IoD>Adib B!HI)Y>$(.c:Π0SVWŶ!HdA. * 5HKx!dT5AQ%$Z -/l> h QM )@1("PQYPA rV:)014-E B0E&iF]$ URHJrE"r4pb bk BGZ)il(PPv8+Ј 2}l Z(("9?OV%NTLS0*es8'aH.F$ ĩP*TQ. جy d2BT}/,R_#R)[kA#A ZQrN1dB*~M(]%AO@`AD/МXB@,hȡ&!?"Ҍ) XO` YPp) JfC'$T(] BP\@I D`\h hVtq㖝 U3B3t*$VBP (ES ,@ɬC(hHFf`B%L#")d҅U ]20AANbƐ$`,Y4ǁ%QJj?₹L 5vց_hAn8I>'.2OMơHUA>U Fx \ZC 6|L"ݧMR"%h ' z 0Z$ R0\|dy*@AI&n2`Љ I0@t*R^lex!f>k`D@Х-Pc ^ + ĕdA (,mKt1 oAXN(C@6 b ( "ŐyPTb))BQ:?+A/By}@  D,XrR R* C RuV( Kޔk MA(⨐ }F)xZedFDE5U*Xuр9 s> [TRBYPC[j `gHŌP]"-%C"Ab LrGs !Zhbl1GD(Pql&A8rtVJ5@fTUjJAD6SM{g證 Bʀ%zQd~h) _p:& 2B8A-j}8zZ` Yl1ր( *=虞ں4a !#dkŰ!LB1%"T/C@P@4X (W> 0$@\ED`(2BhٱtC,@FLD?(OQ*j&*NhԘ>9UhUD`F,@e@"VVXE‘AJRM= s(A@WƏcK e>± P}!HV?FZmWiRO(PR뺱T(zπpiE$, }'+@4 KURLVP" U@.Iz]Kt*JU 4NaG]dҮ\FeT},5*XDD2%/֔@ CQak 5(9rFڑ= @J( $"$TArAsrmp,)tC3DђBD^b*JGY' T"T"ȅHq(GB4)WpC`"@!}̊)U9Qv;bdO @ߎT2>5DTVM9Q&+Ux@D5.0^)im DbR*^+ʀ؜h"BSG1P|"Y,Rh:@ԢH%U"O:3lzZC05Md#)w0Ee1iOW{ $5D(RdE0;h8=UrQ\B9q! EBE*´[JheV%RppPXC*-+5fI4*ׄO,V0"l ph?#6LN"X,<0  0ƠLiw@2Hr㶨*(M@V j(z(tC`q@( N⨠ "pyr: "肪#"U,ER"*r2BjPV>MADVX0DJ+phV5KA:`iP ETUU{$cTy#@*5p"ݚA@ QڂCQEHP+$^`\I*I"HP(AD%Av%  6SbBDL <_8\VEsqMA{N@7$cW^( $z84T K \%H$chȧ] J< FK@J@uL:XEQ n*It\`D6P) ʐ> j']YIRVh@r?˴B!IS\\ʓ1u2Ul  U0U t"5BwLA$DU0phPEA1d;TpqF9Vk 2)J_;$0QD/LBiQ8KjGFaOP̠DdIkid)k5Uh@R R9 QpDZS 'Q_BQm0!N DPu o*!INwh wi;s0جj8$FMШ%Q릟A\TU@@b#, Rzj΂>I0U@>Gli(onldpFBʀ H%@ RmTI*"Jaxf nEq. Il(*E0[O@P(1WsE UBP<"Fh>1֊R˔Nq(RȖ( QmI4BDfԅ44 `J!I PA06_DPTbK b4:+@IBF DڀQA~%! t XH 'TPeq nP@R2,cL^cH¦X7 ˬP(ht"U>rlH#b&O! F`TDZ^ ܅(=A%_ H@-BC)Ed 4 /w&l Y<Dܯ)OK8=x+(I*""$>!F)T6͂+RFT$z[AS:S<*/[K@ ae`ܡZx@**<4h$eC\  9t)dm =n fB,1Cb dǁʴ^~yT1]P*j1(@ ,r|:`|D?#AU(JѱVM!B+-}'PYt>[A@3dR{[\/(',ߪ;Pg4" < ȯCN* C tSQJ**NL, tAh)UUԠAT-3ᕊ$Z$S4%BB@k #eS pȥZ E@~ҍ}) )Q&(*Y!B ATS EDpԊ hP댕H@ PGVJ[#_1NTѠF"tJTK"\PD :#Hh) p){  O$ГLJ QŰ  0 >.&p- -%S ՛9|5`Z](E cȃ2J$#IhPMHSakKdAySڠ@$^2UQiYXAQ"N`Р[K(`4Q6k*Z1Ф O U kXhlCr6QZA tCaAH-XDE!Y_ݤpϽP) |4$XXC1D1BA 搴 !ۇ1Df`*BS0-G}"L=AcAP@$!aLARP[ JRpED@ea#'"R ЕPWκІC0rD_]K76i=ibB:92jyz # A E, H'P}| *ˊ[QƑi RsJN H:P< !hE#]#%SX t0.|B6Ԉ >b3ԨP(>:Wh rU@cP0xU о1 b., ! t8R"0C caTڛ=uė!4 ! 7K %$a@5b|J%iV˦@%EMO$D9tA`") @AQPIp(Aen--i3:S"O&݁Z>CEG d J 8amI҅r8"qf[`":$ҡ` `bR) Dd6DJ* ` GR@KRB80{ʐq^Q6$(QV@B ?#Ʒ$,$rHQTU!a₁[#g0hF!^B56hIH1[ `@ͽQ ndՂ 7Im@CScЄ_K P)&iZ#&@ViM,,"$P)_()I& =aEKDI@AjvVpH,Y+^Y@*@-4Z=y$$*~`/)]1Gb,DoeJ΀A9BHiGUGI@IiJM} {H-  4(KQ*-P' %DABu;0!L2 X IW/5wEAa2DbUU`\SRqGHpP* CDDMAek~xOL@†A~bVi44Ma@K(ц:2PU%51jp ůz8KG5U,FIe ALjSł@"o`R C]M>R%E 9 O3Јq 2V !G@B %hhtL @FV $*THޛܚ!:g"+=F24* 1CGTD$BL)@#U:E0P]P$_(*+5XE Hȸ@ i{F(Y(TbN&dhp@'H$qDBiMĖa 5 +M J UTr d`sM<63qX)p#-Uw [PzD6X*a ڡb!RӚA/:0(V8[ )行Phj=#XՀ(yW  )% X*$9 KX!FX0yfOG,$( XE<^)(PzA{K3=H_JҜwB*tY{۫CX BF/$ӶV2+Jh/(+9\NN<&[`%c6 "ANe   HE5gT^8a&WP-@b|NjӢ0C3S(hZdF(Ʉ0@D14H 2C:dZ"uj%0PR(䝠 C_F5 }+x.=j,*!юo'$()^рz1tq fX"'zsb@b, 1ྥ6|J+@<h%WPUf,Hd %@tK} " T^8x1D|(K C@*?솀$D ~ (Cl 3" B) Ji,w'jä-`jwj:!0R2C'3.n,D/~LVEwS˛ge31l#%@2 IE jmb*];x=րR<V0z@($V <@ Mj*YZE*$iP BLK`LyJo@d@UY!Kzp1l(@jHL(@Y R::bFIKbT @ɡE0[0Ũ9KDGG 73 a A"ta!iHJISfR^}X@թ<]@xtѷybA:ۏBldKLdƋo֤9]/ 4RJ!_%HqQFk"VI,@_n, j%|`^jve5G `|Tw)"H܈Ql ɮ @`V*'¬ 6QDa 91"@,-"4B-kT!%)M+@ !VdDZ%1ĤQ悢 xs%)0*Z Iۀؽ%W) _+kRuXk!@zL-Wa|!Ҁ: 맹;bB2 GaPE"CamDVA@; -sYQA bZ*20!Lh* `$jBuB.V ;RdP!{(JH'Fn.LJse @(*_P"Vn+68  QW`CEZ5LJB G]@b``bI!=$!\0d.`sGi'b49JQIiq#` 8IR,d EEL,d6ŪC-2+x 8Ե5 cb aCth8X_*# l&_A@耋Xx@P0HsH%* ZȫtDDAi̠S4@@V|̧P)B QFjp.")kO{8 4`$,5;GF𾴵 YdT;H+:J@yj\\YJ;7fv)i9<[)+7-m*棄i!ܹbhP= t)0E{%>B*(2;#c~OP!0(xǁ| HT # u]v4$,?RP!* Ң%  PǴE)A:W) DX@ WEHҸhbx@ AA Yzz|00֔=l &јJy@a(t^C aaPWeP5`$IS@( dRR 짠JYT @Dm!m$vEAP@<)$KfedD "JJ! N/´p AVUq+'YG\a|h#P=E iӔ(W(!w $PX۠}u|S@JWЂp@p@ލ\P.+QB*9ɡ T H#0$BF7n0rg5j8NF`T  [$}d CU$ĊwvS4c=M\;ѵV ^ J0r0U^d XÎF 90dCQi p"*Kdž oJSE$cVeǸ!IK;vf@y@,0Dma=FLMi,W1=DGS LSPʫ,@c@@(+fEFYWI 'T [D1U BҢ `KX4iWV& 6I&^+ |Ч {68XHйb--nBDAH24<d<$A63iD&3$(Z"4@ ӏ0z\E6 @cHG(PПlr:BD8 )̱d+obkXyRˉ@EdE{Cɝ;VugӨLC~h꧋ `EP,Y|V K\Y7B ! H `*t)N%L$m!9. )BDy"&}z ]`IDB% "51i[uԺRufmIhI-DbAQJ0]́ lPH*B"hOXVBB60b38XK 0@J>*b2ĉ(Ѕ"P4bPb{Jv@Zrp*a) uN^M)NHDp#hL(&MB `rr9?J㎎r`zMka:8j5DGL0<(^ JZ2m>,k1Ѐ%mPI VpWf!@ILZ<"FŠ ka.$&MFe@  8Q]EV/)d@!AqUE PP! xރ%:)Vb^$ДKS$ R0lE!M! $J(h*I)@(VN)oC qoI AIɯCQ(wZe,P5T\ pWeMqzڔY tdֹQ<.EPBfp-)ZJנ#V؂0B (gŇ`NPf e" 0rG2ieH (cNY14Eu6(C`'"cI8+ 2 `b Ш5J>*EΒB0 T1-ނUJ0tm"hTDd0oBbq +:Q bM@$R#l0VQbԴ@7&š*΅)j'T ) `mg'R13)( "!2‘@A\R**tAV1ZCDI B+FF;j +ҠJ%uԶxa^j6Uf"9H c#zCœ"cW> Tq%W_r P 6:ފD%lNt=^uV]Q}2ȀYPLɺ#>CdbC3XvL"!`X LBmW% 4I'TϿ0p1(UJ)Sup *"=Q]JЈ/c.פJjsS#A,"; &E)E!iE`]D),$Qؐ)F_,J`B-B!'Q 5 E&`WoiQhQUUP Mȝj#` D@N"!$+N!C#E uj6˸))!6hFKaTPTi)ʬ" qp1@P/|@X>V˶Ai cmjy(%7R JrXL~!A>6ip !:la$EU^$Sa7$}4 *AA> ՈJ} L dX$VRؠБ4=S1Oe(8RbWU"h{c`!H_P2KX$hOWaѺ".p` x1`/ \@ d (&㍲-F sa_KZ]JqD}%XH%FAZL@x  &mҘ PV9@4 Scϩj_L$b"*P"*0jm,(2PH+ǩ2JkDAB+ ZǪ764Ql(9sF&GS\E(M@G I( & d qVjlgQA,j%Wq"XY^֨XW[2jx)h' J- 55;+ATE@d,wő'-Hl>@Y*v#v y{'OޙTbY; WBW~hA)A4E=~#ZnH(`{H E#((u)`HmjD@ LOh²=BTSNR_I"RQHHT QXTc*˴.@aHkPAw#ց`D`U+pWh CDDtg51BZB-9H9&a.Zdo+%Z љ0y a)8[/B{B x"QLJ/PH` 4K0(؉JRMB\u",rZySM0Ep ePWP P!Y}!Z`B6Q鱨aaH!8؂^aoqh RѢl\QJ*-* rtHHI0 5?}֍HKr!P < /0L:eHX M ! ݉6fˌaQS'kQM_,bjjPD@c|P`^^&G*%1 Apqz Dt^\0N =,Rddp) "H 5z,Yr~ *-b](:!#b)m񺈫33U  ZuC[P¢0qa͘RO)JV2t M>XF\J ?cN4 n"8] Kg, !@A3(BYAv]Ű2G G/_t@VlHzm!`͠* "$4i $7@S^cP0%]pHU"a(UUT@#;HVPؗXZ" D'B^؍*?%w@S h69R!h Q  %Y82@\FJ:8UWV 7(PJaPБBE ѽ?0=aQbI10-CGr%RFC̖\uһIDDCP4Xy}!#A-,$EH_@j^gM lP.o9 ^MP'Jȱ6!Ta!|+hPz]@͍&R8ޥ#:D '(H2,C$HU_QAeUZM@BFUP`Ҡ L`M/;X!ch"VN63o@ LV hh4Z{t䩕uTU @&V-hs^0!$&EpŠ 3jU'"bdb`LجTp(:!h,i>0>П%S F e AjM}5nPC%ĄP"75T: @dH[!"4R ]ĒA@^ b,`xPLPU RhՃVN Bi=ҕq h@BJV6ܣKUY1/n$p{L q b')CPV(FpF] @#$6X(Lf9EG%V%bƙ=(dX(AJjIC_jRD sxn͠0"0UPAQbWM@< XD@S C]2a=@`4+)0:C (k=$FU DI-L h!%] Had#Z8d k \H@ÖxBbTC@B+Y(VQe*Ҁ!h8D<DU0([qO @#047u(T@ i'9"}>@zbUQ 5%@ZV2Ve P%u0$"j~` t`R{`0-!2!*"$$G~vin( `+P `>!"^De}t$k;?YញNԎh@%U.DMF+cZBe xУf_Bn~ tAxB y#6":6CrXUvxS=79Ys@4 ?AW9IaiIW!z$bD. 0*p-`TZPK.s'!Z[ՠ{`,X`%J \+ƥfx@7(FRѪZE[D U}TI[TB3J2hP ,%UaSpDp)4JS4N@CEb=JƲ4T7Pqj$/FC&% ʵrW =0Hԉs!AB= Tx M@h,)H J(&KGq--Iר1  Æe EG+dp%@,&BT X^bIG̠Z J2QMDv jUp*G 8GH"DPk`|T QSLS+4htQx(W@ [KQҭ؀?a ("8j(A)B`VluFNyƬ51k *& DHXőܤ+v C2yDLaK[Puӌ*0 * kĀ-0I"% NCeJ1VȬQpB̢34)*hy ԣd+8$,#THNuqbC@ &T==RXa||AQ$@AC@:K})Ӭ쾱(U<ֻlE Bbg}E2`FD]4R!A J!j 2 WN NQ{YB5E,ʳJ\n-aIJ"aU>d@#RZZ? y\ & "=Yp9v4ʱpPrx`Q8-]a=y0BWA; 9V܅a+ &i*pL *(S@/z Cf5zUK CQoC4қ(C p&Y(Z'G)#nC)I!XԊBdPg/(V Pt"J(QWuP˺ * EG)`yn +!FEЊ*h(@10  Kwl8r%1̀"(fY D`'E:JMDBUT TBB#5 #!D "8[p WM]_$$!#|QZmG4bG. :[ fD頨tJv4>h2 E?mlڨBA΁ Ղ4 h(/'4 QCYL I(ǀ.JMU ?xC3Vr4]}d^Fo2|.@((v417 R^4+6J]Qr$ LT k=C ӻ2}Ќە V:U݂H]-uG6Ԛr8]DטK D!Pe}8jF*C`"!)@IB ?UNmE0NSAd!nq@΋J4T 2 #i FFKu J @A4RЎSY D#*brր.=t\.Wrt $ufB6ܣZPfjI hbubfW%"@m" %\^ 'P BbB MEЊ~1QN5zxֿEC ]eĕa ̪UE2P+%a04H& Fkމz~l[ɞΡfŀ4+[Q0V_b*VSwK:35Q*Q+E>*4d)%!~ *V"pSa u2 POH0\ ѽ#.Rh@T EJp},@"Ƃ;;ുTC3]Љ 9@$UNk.N+) L$H%6تXBc)Hc}3 pR(M, $E%b(xSzAL#@BRD4'ƈ01OA!K@yqQ*HTjX%`!R+$d>N)5R Df8-6i*Oը8 hH2:  $T  BXNAE*!C$E)T<(p< s-K0+I3 L99 8ȎQz(U6> 9h@VZ'PPHࠔ%Q7aPժP{Q\J^pKA8 a38$eL@TCk)Aؠ:dUD1qjBǘi-CjA(PBz hT&ʇ*C2* xa#&]zD 'PWI5&!JDACZ m AH80.AT.Mm ll"KAeΚ :M< ٰ奄ĭYj ׆kAҷ .GгʲVR&g` !+R&"0@FPB H7Ŭ B| D ObXUFL*BྐN'q"\&oԒQEaCIBb#DuZm v[jNjS sS j^$&aI\FD._ԛC5SUdh w@z(!JDQe, ԓ ROpA:6=G?ȄQ7 S"ߡ8鉡q e@EUS?ħ:4 ۤ0=D@ 䊾6wQk15R$d!.Ǯu@"U*PGQ"R! 1VX)3 "Az6XI!ԂXZV!!QH,+ `H0SXRJ\*: M^ј {WCg0nQ"V Td>s ` Hd x!(Dx.[&l!@$ L,InBSAGxP!ha'=@$ Õ3a4 Ed=R0_}_B"$oZY04尖AfۀRGO.I)rBLP@mDzr) HB mՠQ BFEbCBxB"md`C |NQs| o-P ڊ S*0]QBSI*P*%Hz 2 'HddJ@BE+e\$IuDAB@ZpHZQD@z}7H8 X'&Thi 8 C tH,| 6ޚH @ZqP)I PYT4 $btS; c# mC%`,x0< TE%Dlg Rذ_(?j " vtXazHsi AEAH6dD7C%$A"h 0rlQ"Qa e&,@`V T 9R*|?5Rl3QT RXj+)ȧc"b˛HcaXud38 "[D2L*)d( *O 5PT@ыlAD# J@z⥥ )J#Xu $"}4X(R,_Jjeψ1jyS;yh&4z+UKD6@P@6Dp'TUWQTa1*$PńXG@p j u Ee8J`R @ ,Ai|-B& {䒋:t'WiQ>>H:FPbc6 M;@$GgS7$D:l "Dq&ˆS֤ B@ԖKlaB'@ ub)zE 5W4@HDoLO1T}0 .{E+C*C4ASuP,#@KW4 e;:To}$$fTOУbB!;VDLRpB#΢'' iDry׀z/T15$"0 q0^Ra,6A IPPǪ"E,Zh|"Er…"M0H%6U@,*R4&*0qXlֈ,,Q0 Ԁ&H4J  X!ଐ(0: G@5Dd66Ȃ=>I=aQЕphSE^QVTDx?ART;O!PtDZVc8Qi=%/(l#hxQJPI.BdHWF\@(zPB^+jdlE h )EWs@ EaɊXBvEpB EX'ap`)aY $!fPG{%gU 0V¦#"0JUT#Ȩ`8BفDN?n?qglx?ӽ_q:7<_?<1 }Nߣ{_B&G#_?U>_?Ecodec2-1.0.1/stm32/doc/sm1000_manual.md000066400000000000000000000317071412132000500171600ustar00rootroot00000000000000# SM1000 Manual ![SM1000 front view](sm1000_enc_sm.jpg) # Getting Started 1. Connect 12V, set the volume to half way and power on. You will hear morse playing the firmware version number (e.g. "V4") and the current mode. 1. The SELECT button steps through the mode: + Analog pass through (ANA) + FreeDV 1600 (1600) + FreeDV 700D (700D) + FreeDV 700E (700E) 1. Select 1600 mode. 1. Connect the SM1000 ***Rig SPKR 3.5mm connector*** to your PC or laptop 3.5mm headphone socket. 1. Download and play the [ve9qrp_1600.wav](https://github.com/drowe67/freedv-gui/tree/master/wav) sample from your PC or laptop to the SM1000. 1. Adjust ***RIG SPKR Trimmer*** on the top of the SM1000 with a screwdriver until the clip/error LED on the front stops blinking. Occasional blinks are OK. If it blinks all the time you are clipping. 1. If all is well you will hear decoded speech from the SM1000 speaker. 1. Change modes to 700D with SELECT and try the [ve9qrp_700d.wav](https://github.com/drowe67/freedv-gui/tree/master/wav) sample. # Connection to your Radio This is the hardest part of SM1000 set up and will take some time. ***Sorry, we do not have specific instructions for your radio***. Study the wiring of you radio, the [SM1000 schematic](https://svn.code.sf.net/p/freetel/code/smartmic/SM1000-F/MFG-SM1000-F/SCH-SM1000-F.pdf) **Rig Interface** section, and this section of the manual. Draw a schematic or wiring diagram. Take it slowly. Connect one part of the interface at at time and test. For example start with PTT. When that is working, connect receive audio and test, then transmit audio. 1. You can connect the SM1000 to your radio using the 3.5mm sockets or the RJ45 connector. The RIG MIC, RIG SPKR and RIG PTT signals are connected in parallel to the 3.5mm sockets and the RJ45. ![](3dot5mm_cable_config.png) 1. Stereo 3.5mm plugs should be used if possible. The stereo 3.5mm SM1000 sockets are wired to use the sleeve for ground and tip for signal, with ring unconnected. 1. RJ45 connection to your radio – The CN12 Patch Panel is configured to connect the audio and PTT connections to your radio. You only need to configure the CN12 Patch Panel if you are using the RJ45. If you are using the 3.5mm connectors you do not need to configure the CN12 Patch Panel. Here is an example for a Yaesu radio: ![](sm1000_cn12_rev2.png) ![](sm1000_cn4_cn12.jpg) 1. All grounds are floating (unconnected) by default, but can be connected together using the extra ground connections on CN12. In the Yaesu example above all grounds are connected together using the wires between pins 10-13 and 11-12. Some radios have a separate microphone ground. 1. Some radios have reversed numbering for their RJ45. 1. Use 5cm lengths of 24GA (0.5mm) maximum diameter solid core wire for the patch panel. Using wire greater than 24GA (0.5mm) may damage the patch panel sockets. Insert one end of the wire at a time using needle nose pliers. 1. For level set up, you can adjust the RIG SPKR, MIC GAIN, and RIG MIC trimmers through holes in the SM1000 top cover. 1. On receive, adjust the radio volume (AF gain) and/or SM1000 RIG SPKR trimmer R52 so the clip/error led is not blinking. The receive level is not critical. It doesn’t work better with a louder signal. FreeDV 1600 and 700D use phase shift keying so are level insensitive. Constant clipping on the audio is bad, when this happens you’ll see the error led blink. 1. Press PTT, and adjust MIC GAIN trimmer R42 so that the clip led just blinks occasionally, at the peaks of yr speech. Once again, this is not very critical, as it’s Digital Voice. A louder microphone signal won’t make your signal stronger. However a badly clipped mic signal will sound bad. Note on some versions MIC GAIN increases when turned anticlockwise. 1. Jumper J5 selects high or low range RIG MIC level. Add J5 if your radio requires a “line level” mic input of several hundred mVpp. Remove J5 for low, mV level mic input into your radio. Then finely adjust the RIG MIC level with R47 (next step). Prior to Rev E it is possible to solder a resistor onto your SM1000 to achieve the same boost in mic input level. 1. The RIG MIC trimmer R47 is the most critical. This controls the level of the modem signal sent to your radio on transmit. With PTT pressed and your radio transmitting adjust RIG MIC so that your radio ALC is just moving. Too much transmit drive will lead to a distorted modem signal, splatter on adjacent frequencies, and bit errors. Your Digital Voice signal will not be improved! Over driving transmitters when using digital voice is the most common mistake for new users! For finer adjustment use a 2nd receiver to monitoring your FreeDV transmission. Connect this receiver to the x86 PC version of FreeDV to monitor the spectrum and scatter plot. Here is a blog post and video [describing](http://www.rowetel.com/?p=3109) scatter plots and how they can be used to tune your FreeDV transmission. 1. External Microphone – Jumper J3 provides electret microphone DC bias. Remove J3 if you do not want DC bias. 1. External Speaker – The SM1000 3.5mm sockets are wired to use stereo or mono plugs. If you wish to use a mono plug for Ext Spkr (CN8) remove the jumper J2 on the PCB. This prevents a mono plug shorting the speaker amplifier output to ground resulting in no audio. Note the first production SM1000 (Rev D) did not have jumper J2 and should only be used with a stereo plug. # Morse Menus The SM1000 has a comprehensive menu system with morse code prompts developed by Stuart, VK4MSL. There are two buttons for UI operation, SELECT and BACK. Outside of the menu, these simply cycle between the available modes. The current mode is announced (morse code) after a short delay. Holding down SELECT puts you in menu mode. The POWER LED will now flash to indicate this. To navigate, press the SELECT and BACK buttons momentarily to move up and down in the menu. Again, after a pause the item will be read out. Holding SELECT or BACK either chooses the option, or backs out. Pressing PTT while in a menu exits the entire menu tree without saving changes to flash storage. The menu structure looks like this: ``` -> Root menu: |---> "MODE": Boot-up Operating mode | |---> "ANA": Analogue mode | |---> "1600": FreeDV 1600 | |---> "700D": FreeDV 700D | '---> "700E": FreeDV 700E | |---> "TOT": Time-out timer | |---> "TIME": Total time-out period (0 == disabled) | | 0-10 minutes in 5 second steps | '---> "WARN": Warning beep period (0 == disabled) | 0-${TIME} seconds in 5 second steps | '---> "UI": User interface options |---> "FREQ": Morse frequency | 50-2000 Hz in 50Hz steps |---> "WPM": Morse send speed (PARIS standard) | 5-60 WPM in 5 WPM steps '---> "VOL": Menu volume 1-15 units. ``` Settings are saved when you hold down BACK to leave the root menu. # Flashing Your SM1000 You can program the flash memory on your SM1000 via USB using a Windows or Linux PC. Download the latest SM1000 firmware here: Version | Date | Download .bin | Download .dfu | Release Notes :---: | --- | --- | --- | --- | 1 | May 2015 | [sm1000.bin](http://www.rowetel.com/downloads/codec2/smartmic/sm1000.bin) | | Original release with FreeDV 1600 2 | July 2019 | [sm1000v2.bin](http://www.rowetel.com/downloads/codec2/smartmic/sm1000v2.bin) | [sm1000v2.dfu](http://www.rowetel.com/downloads/codec2/smartmic/sm1000v2.dfu) | FreeDV 700D and morse menus 3 | March 2020 | [sm1000v3.bin](http://www.rowetel.com/downloads/codec2/smartmic/sm1000v3.bin) | [sm1000v3.dfu](http://www.rowetel.com/downloads/codec2/smartmic/sm1000v3.dfu) | Menu bug fixes, 700D modem improvements & automatic Mic EQ 4 | May 2020 | [sm1000v4.bin](http://www.rowetel.com/downloads/codec2/smartmic/sm1000v4.bin) | [sm1000v4.dfu](http://www.rowetel.com/downloads/codec2/smartmic/sm1000v4.dfu) | 700D sync logic to reduce stop burbling with no signal 5 | August 2021 | [sm1000v5.bin](http://www.rowetel.com/downloads/codec2/smartmic/sm1000v5.bin) | [sm1000v5.dfu](http://www.rowetel.com/downloads/codec2/smartmic/sm1000v5.dfu) | FreeDV 700E and Tx band pass filter for 700D & E ## Windows Find and install the **DfuSeDemo** software by searching on the [ST web site](http://www.st.com). For Windows use the ```.dfu``` firmware file provided above: 1. Connect the SM1000 USB to a Windows PC. 1. Run the ```DfuSeDemo``` Application. 1. Apply power with PTT held down, then release PTT. 1. The ```Available DFU Devices``` window should show ```STM Device in DFU Mode```. If not, use the arrow to select that option. Verify it shows a ```Vender ID``` of 0483, and a ```Product ID``` of DF11. 1. In the lower right quadrant of the screen, under ```Upgrade or Verify Action``` select ```Choose```. 1. Locate your DFU file you want to program into the SM1000, and press ```Open```. 1. Select ```Verify after download``` option. 1. Select ```Upgrade``` and confirm ```Yes``` when asked, and the firmware procedure will commence. 1. A message when complete that it was successful. If the message returns that it was unsuccessful, then first try the ```Upgrade``` again. If the upgrade fails twice, you may have to start this complete procedure again. Power cycle the SM1000 and the new firmware will run. ## Linux 1. Apply power with PTT held down, then release PTT. 1. Connect the SM1000 to a Ubuntu Linux PC and type “dmesg”. You should see a STM32F4 boot device. 1. To flash the SM1000 ``` $ sudo apt-get install dfu-util $ sudo dfu-util -d 0483:df11 -c 1 -i 0 -a 0 -s 0x08000000 -D sm1000v5.bin ``` After about 10 seconds you will be returned to the command line. 1. Power cycle the SM1000 and the new firmware will run. # Tips 1. A sound blaster record input connected to RIG MIC CN7 is a good way to test if the SM1000 is transmitting a signal. You can receive your FreeDV signal on the bench using FreeDV GUI on your PC. No radio is required for this test. 1. Small external speakers and an external mic tend to make FreeDV sound better. A low cost analog headset works well. 1. You may notice background noise from the SM1000 with no signal connected, especially at high volume levels. This becomes inaudible when the SM1000 is connected to a SSB radio in either analog or digital mode. 1. The squelch threshold is fixed at 2dB for FreeDV 1600 and is off for 700D to optimise low SNR reception. However 700D will squelch if the Forward Error Correction (FEC) fails to decode. # Building the Firmware and Development 1. [The SM1000 source code](https://github.com/drowe67/codec2/blob/master/stm32/README.md) 1. You can use a STM32F4 Discovery board as an emulator pod for tetsing SM1000 firmware. 1. [Comprehensive unit test system](https://github.com/drowe67/codec2/blob/master/stm32/unittest/README_unittest.md), thanks Don W7DMR. 1. The SM1000 has a 115200 bit/s serial output from the 3 pin CN11 connector that dumps debug information as it runs. ## Factory Reset To perform a factory reset, hold down BACK whilst powering the device on. A loud beep should be heard and the SYNC LED should flash. Release, and the device should boot up with factory defaults. # References 1. [Support - Codec 2 Mailing List](https://lists.sourceforge.net/lists/listinfo/freetel-codec2). 1. [Buy a SM1000](http://rowetel.com/sm1000.html) - Your purchase supports FreeDV development 1. [SM1000 Ref F Schematic](https://svn.code.sf.net/p/freetel/code/smartmic/SM1000-F/MFG-SM1000-F/SCH-SM1000-F.pdf) 1. [SM1000 Hardware Design](https://svn.code.sf.net/p/freetel/code/smartmic) 1. [Series of blog posts on the SM1000 development](http://www.rowetel.com/?page_id=6172) (2014 section of archive) 1. Nice write up of a mobile [Codan NGT SM1000 installation](http://rfhead.net/?p=582) by Mark VK5QI including tips on testing and debugging a microphone level problem. 1. [Sample wiring](http://rowetel.com/downloads/freedv/vk5kx_radio_sm1000_connections_model.pdf) diagrams for several radios from Peter, VK5KX. These are not tested and provided as examples only. # Credits The SM1000 hardware was developed by David Rowe VK5DGR and Rick Barnich KA8BMA. It is being manufactured, tested and shipped by our good friend Edwin at Dragino in Shenzhen, China. Steve (K5OKC) helped develop the fine OFDM modem used for FreeDV 700D. Don (W7DMR), spearheaded the port of FreeDV 700D to the SM1000, including code optimisation and a comprehensive unit test system. Don, Danilo (DB4PLE), and Richard (KF5OIM) have done some fantastic work on the cmake build and test system for the stm32 port of 700D. Stuart VK4MSL developed the morse menu system for the SM1000. Mooneer, K6AQ, ported FreeDV 700E to the SM1000. Thanks also to the many Hams who kindly helped out with testing new firmware releases. This is an open source/open hardware project, developed by Hams - for Hams. Thanks! codec2-1.0.1/stm32/inc/000077500000000000000000000000001412132000500143555ustar00rootroot00000000000000codec2-1.0.1/stm32/inc/debugblinky.h000066400000000000000000000021331412132000500170240ustar00rootroot00000000000000/*---------------------------------------------------------------------------*\ FILE........: debugblinky.h AUTHOR......: David Rowe DATE CREATED: 12 August 2014 Configures Port E GPIO pins used for debug blinkies, and control lines for SM2000 +12V switching. \*---------------------------------------------------------------------------*/ /* Copyright (C) 2014 David Rowe All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 2.1, as published by the Free Software Foundation. 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 Lesser General Public License along with this program; if not, see . */ #ifndef __DEBUGBLINKY__ #define __DEBUGBLINKY__ void init_debug_blinky(void); void txrx_12V(int state); #endif codec2-1.0.1/stm32/inc/gdb_stdio.h000066400000000000000000000030071412132000500164640ustar00rootroot00000000000000/*---------------------------------------------------------------------------*\ FILE........: gdb_stdio.h AUTHOR......: David Rowe DATE CREATED: April 23 2013 Some stdio I/O functions that perform I/O on the host using gdb. \*---------------------------------------------------------------------------*/ /* Copyright (C) 2013 David Rowe All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 2.1, as published by the Free Software Foundation. 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 Lesser General Public License along with this program; if not, see . */ #ifndef __GDB_STDIO__ #define __GDB_STDIO__ #include #include void gdb_stdio_fprintf(FILE *file, const char *format, ...); void gdb_stdio_printf(const char *format, ...); FILE *gdb_stdio_fopen(char file_name[], char mode[]); void gdb_stdio_fclose(FILE *file); int gdb_stdio_fwrite(void *ptr, int size, int nmemb, FILE *file); int gdb_stdio_fread(void *ptr, int size, int nmemb, FILE *file); #define printf gdb_stdio_printf #define fopen gdb_stdio_fopen #define fclose gdb_stdio_fclose #define fread gdb_stdio_fread #define fwrite gdb_stdio_fwrite #endif codec2-1.0.1/stm32/inc/iir_duc.h000066400000000000000000000023401412132000500161430ustar00rootroot00000000000000 /*---------------------------------------------------------------------------*\ FILE........: iir_duc.h AUTHOR......: Brady O'Brien DATE CREATED: 6 Mar 2015 Interapolator/Filter for IF upconversion \*---------------------------------------------------------------------------*/ /* Copyright (C) 2015 Brady O'Brien All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 2.1, as published by the Free Software Foundation. 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 Lesser General Public License along with this program; if not, see . */ #ifndef __IIR_DUC_H #define __IIR_DUC_H #include "comp.h" void iir_upconv(float modin[],unsigned short dac_out[]); void iir_upconv_fixp(int modin[], unsigned short dac_out[]); void upconv_48c_80r(COMP comp_8[],int real_80[],int count); void upconv_8c_80r(COMP comp_8[],float real_80[],int count); #endif codec2-1.0.1/stm32/inc/iir_tuner.h000066400000000000000000000022021412132000500165220ustar00rootroot00000000000000/*---------------------------------------------------------------------------*\ FILE........: iir_tuner.h AUTHOR......: David Rowe DATE CREATED: 20 Feb 2015 Header file for IIR tuner function. \*---------------------------------------------------------------------------*/ /* Copyright (C) 2015 David Rowe All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 2.1, as published by the Free Software Foundation. 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 Lesser General Public License along with this program; if not, see . */ #ifndef __IIR_TUNER__ #define __IIR_TUNER__ #define IIR_TUNER_DEC_50_10_FILT_MEM 100 void iir_tuner(float dec_50[], unsigned short adc_buf[]); void iir_tuner_dec_50_to_10(float dec_10[], float dec_50[], int n); #endif codec2-1.0.1/stm32/inc/memtools.h000066400000000000000000000005541412132000500163710ustar00rootroot00000000000000/* memtools.h June 2019 Tools for anlysing and debugging memory on stm32. See also debug_alloc.h */ #ifndef __MEMTOOLS__ #define __MEMTOOLS__ void memtools_find_unused( int (*printf_func)(const char *fmt, ...) ); register char * memtools_sp asm ("sp"); void memtools_isnan(float *vec, int n, char *label, int (*printf_func)(const char *fmt, ...)); #endif codec2-1.0.1/stm32/inc/menu.h000066400000000000000000000051001412132000500154660ustar00rootroot00000000000000#ifndef _MENU_H #define _MENU_H /*! * Callback driven menu handler. * * The following is an implementation of a callback-driven menu system. * It supports arbitrary levels of menus (limited by size of return stack) * and supports arbitrary user events. * * Author Stuart Longland * Copyright (C) 2015 FreeDV project. * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU Lesser General Public License version 2.1, * as published by the Free Software Foundation. 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 Lesser General Public * License along with this program; if not, see * . */ #include #define MENU_STACK_SZ 8 /*!< Size of the menu return stack */ #define MENU_EVT_ENTERED 0 /*!< Menu item has been entered */ #define MENU_EVT_RETURNED 1 /*!< We have returned from a submenu */ /*! Menu state structure */ struct menu_t { /*! The last seen menu item */ const struct menu_item_t* last; /*! Currently selected item index */ uint32_t current; /*! Current menu item stack */ struct menu_stack_item_t { const struct menu_item_t* item; uint32_t index; } stack[MENU_STACK_SZ]; /*! Present depth of the stack */ uint8_t stack_depth; }; /*! Menu item structure */ struct menu_item_t { /*! Morse-code label for the menu item */ const char* label; /*! Event callback pointer for menu item */ void (*event_cb)( struct menu_t* const menu, uint32_t event); /*! Children of this menu item */ const struct menu_item_t** const children; uint32_t num_children; /*! Arbitrary data */ union menu_item_data_t { /*! Arbitrary pointer */ const void* p; /*! Arbitrary unsigned integer */ uintptr_t ui; /*! Arbitrary signed integer */ intptr_t si; } data; }; /*! * Return the Nth item on the stack. */ const struct menu_item_t* const menu_item( const struct menu_t* const menu, uint8_t index); /*! * Enter a (sub)-menu. * @retval -1 Stack is full * @retval 0 Success */ int menu_enter(struct menu_t* const menu, const struct menu_item_t* const item); /*! Return from a (sub)-menu */ void menu_leave(struct menu_t* const menu); /*! * Execute the callback for the current item with a user-supplied event. */ void menu_exec(struct menu_t* const menu, uint32_t event); #endif codec2-1.0.1/stm32/inc/morse.h000066400000000000000000000034521412132000500156570ustar00rootroot00000000000000#ifndef _MORSE_H #define _MORSE_H /*! * Morse code library. * * This implements a state machine for playing back morse code messages. * * Author Stuart Longland * Copyright (C) 2015 FreeDV project. * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU Lesser General Public License version 2.1, * as published by the Free Software Foundation. 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 Lesser General Public * License along with this program; if not, see * . */ #include "sfx.h" /*! * Maximum length of a morse symbol, including gaps and termination. * Allowing for 8 actual sub-symbols (dahs and dits), that's up to * 8 gaps between plus a terminator. */ #define MORSE_SYM_LEN (17) /*! * Morse code playback state machine */ struct morse_player_t { /*! Symbol being transmitted */ struct sfx_note_t sym[MORSE_SYM_LEN]; /*! * Pointer to the string being emitted. Playback is finished * when this is NULL. */ const char* msg; /*! Sound effect player state machine */ struct sfx_player_t sfx_player; /*! "Dit" period in milliseconds */ uint16_t dit_time; /*! Tone frequency */ uint16_t freq; }; /*! * Play a morse code message. * @param morse_player Morse code player state machine * @param msg Message to play back (NULL == stop) */ void morse_play(struct morse_player_t* const morse_player, const char* msg); /*! * Retrieve the next sample to be played. */ int16_t morse_next(struct morse_player_t* const morse_player); #endif codec2-1.0.1/stm32/inc/new_i2c.h000066400000000000000000000051021412132000500160520ustar00rootroot00000000000000/* * File: new_i2c.h * Author: leon (zs6lmg@gmail.com or leon@lrlabs.com) * * Created on March 17, 2016, 6:09 PM * * GNU license apply. * */ /* Copyright (C) 2016 Leon All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 2.1, as published by the Free Software Foundation. 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 Lesser General Public License along with this program; if not, see . */ #ifndef NEWI2C_H #define NEWI2C_H #include // // I2C1 device Enable // #define I2C_D1 0 // I2C1 only PORTB // SCL - B6 or B8 // SDA - B7 or B9 #if I2C_D1 #define I2C_DEVICE I2C1 #define I2C_DX_P_SCK GPIOB #define I2C_DX_P_SDA GPIOB #define I2C_DX_SCK 6 #define I2C_DX_SDA 9 // could not get macro expansion in gcc to play with us #define I2C_DX_CLK_SCK RCC_AHB1Periph_GPIOB #define I2C_DX_CLK_SDA RCC_AHB1Periph_GPIOB #endif // // I2C2 device Enable // #define I2C_D2 0 // I2C2 on PORTB, PORTF and PORTH // SCL - B10 F1 H4 // SDA - B11 F0 H5 #if I2C_D2 #define I2C_DEVICE I2C2 #define I2C_DX_P_SCK GPIOB #define I2C_DX_P_SDA GPIOB #define I2C_DX_SCK 10 #define I2C_DX_SDA 11 // could not get macro expansion in gcc to play with us #define I2C_DX_CLK_SCK RCC_AHB1Periph_GPIOB #define I2C_DX_CLK_SDA RCC_AHB1Periph_GPIOB #endif // // I2C3 device Enable // #define I2C_D3 1 // I2C2 on PORTA and PORTH // SCL - A8 H7 // SDA - C9 H8 #if I2C_D3 #define I2C_DEVICE I2C3 #define I2C_DX_P_SCK GPIOA #define I2C_DX_P_SDA GPIOC #define I2C_DX_SCK 8 #define I2C_DX_SDA 9 // could not get macro expansion in gcc to play with us #define I2C_DX_CLK_SCK RCC_AHB1Periph_GPIOA #define I2C_DX_CLK_SDA RCC_AHB1Periph_GPIOC #endif #define I2C_SPEED 100000 #define I2C_STIMEOUT ((uint32_t)0x1000) #define I2C_LTIMEOUT ((uint32_t)(300 * 0x1000)) // software I2C model for testing // #define I2Cmodel 1 //void I2C_GPIO_Init(void); void I2C_Setup(void); uint32_t I2C_NewWriteRegister(uint8_t Addr,uint8_t Register,uint8_t Value); uint32_t I2C_NewWriteRegisterN(uint8_t Addr,uint8_t Register,uint8_t *Value,uint8_t N); uint32_t I2C_NewReadRegister(uint8_t Addr,uint8_t Register); uint32_t I2C_NewReadRegisterN(uint8_t Addr,uint8_t Register,uint8_t *buffer, uint8_t N); #endif /* NEWI2C_H */ codec2-1.0.1/stm32/inc/sfx.h000066400000000000000000000032661412132000500153350ustar00rootroot00000000000000#ifndef _SFX_H #define _SFX_H /*! * Sound effect player library. * * This implements a state machine for playing back various monophonic * sound effects such as morse code symbols, clicks and alert tones. * * Author Stuart Longland * Copyright (C) 2015 FreeDV project. * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU Lesser General Public License version 2.1, * as published by the Free Software Foundation. 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 Lesser General Public * License along with this program; if not, see * . */ #include "tone.h" /*! * A sound effect "note" */ struct sfx_note_t { /*! Note frequency. 0 == pause */ uint16_t freq; /*! Note duration in msec. 0 == end of effect */ uint16_t duration; }; /*! * Sound effect player state machine */ struct sfx_player_t { /*! * Pointer to the current "note". When this is NULL, * playback is complete. */ const struct sfx_note_t* note; /*! Tone generator state machine */ struct tone_gen_t tone_gen; }; /*! * Start playing a particular effect. * @param sfx_player Effect player state machine * @param effect Pointer to sound effect (NULL == stop) */ void sfx_play(struct sfx_player_t* const sfx_player, const struct sfx_note_t* effect); /*! * Retrieve the next sample to be played. */ int16_t sfx_next(struct sfx_player_t* const sfx_player); #endif codec2-1.0.1/stm32/inc/si53xx.h000066400000000000000000000247451412132000500157050ustar00rootroot00000000000000/*------------------------------------------------------------------------------ * * Ported to stm32F4xx non c++ by Leon Lessing leon@lrlabs.com or zs6lmg@gmail.com * * * Copyright (C) 2015-2016 Jason Milldrum * Dana H. Myers * * Many defines derived from clk-si5351.h in the Linux kernel. * Sebastian Hesselbarth * Rabeeh Khoury * * do_div() macro derived from /include/asm-generic/div64.h in * the Linux kernel. * Copyright (C) 2003 Bernardo Innocenti * * 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 . * * *------------------------------------------------------------------------------ */ #ifndef SI53XX_H_ #define SI53XX_H_ #include #define SI5351_BUS_BASE_ADDR 0x60 #define SI5351_XTAL_FREQ 25000000 #define SI5351_PLL_FIXED 90000000000ULL #define SI5351_FREQ_MULT 100ULL #define SI5351_DEFAULT_CLK 1000000000ULL #define SI5351_PLL_VCO_MIN 600000000 #define SI5351_PLL_VCO_MAX 900000000 #define SI5351_MULTISYNTH_MIN_FREQ 1000000 #define SI5351_MULTISYNTH_DIVBY4_FREQ 150000000 #define SI5351_MULTISYNTH_MAX_FREQ 160000000 #define SI5351_MULTISYNTH_SHARE_MAX 112500000 #define SI5351_MULTISYNTH67_MAX_FREQ SI5351_MULTISYNTH_DIVBY4_FREQ #define SI5351_CLKOUT_MIN_FREQ 8000 #define SI5351_CLKOUT_MAX_FREQ SI5351_MULTISYNTH_MAX_FREQ #define SI5351_CLKOUT67_MAX_FREQ SI5351_MULTISYNTH67_MAX_FREQ #define SI5351_PLL_A_MIN 15 #define SI5351_PLL_A_MAX 90 #define SI5351_PLL_B_MAX (SI5351_PLL_C_MAX-1) #define SI5351_PLL_C_MAX 1048575 #define SI5351_MULTISYNTH_A_MIN 6 #define SI5351_MULTISYNTH_A_MAX 1800 #define SI5351_MULTISYNTH67_A_MAX 254 #define SI5351_MULTISYNTH_B_MAX (SI5351_MULTISYNTH_C_MAX-1) #define SI5351_MULTISYNTH_C_MAX 1048575 #define SI5351_MULTISYNTH_P1_MAX ((1<<18)-1) #define SI5351_MULTISYNTH_P2_MAX ((1<<20)-1) #define SI5351_MULTISYNTH_P3_MAX ((1<<20)-1) #define SI5351_DEVICE_STATUS 0 #define SI5351_INTERRUPT_STATUS 1 #define SI5351_INTERRUPT_MASK 2 #define SI5351_STATUS_SYS_INIT (1<<7) #define SI5351_STATUS_LOL_B (1<<6) #define SI5351_STATUS_LOL_A (1<<5) #define SI5351_STATUS_LOS (1<<4) #define SI5351_OUTPUT_ENABLE_CTRL 3 #define SI5351_OEB_PIN_ENABLE_CTRL 9 #define SI5351_PLL_INPUT_SOURCE 15 #define SI5351_CLKIN_DIV_MASK (3<<6) #define SI5351_CLKIN_DIV_1 (0<<6) #define SI5351_CLKIN_DIV_2 (1<<6) #define SI5351_CLKIN_DIV_4 (2<<6) #define SI5351_CLKIN_DIV_8 (3<<6) #define SI5351_PLLB_SOURCE (1<<3) #define SI5351_PLLA_SOURCE (1<<2) #define SI5351_CLK0_CTRL 16 #define SI5351_CLK1_CTRL 17 #define SI5351_CLK2_CTRL 18 #define SI5351_CLK3_CTRL 19 #define SI5351_CLK4_CTRL 20 #define SI5351_CLK5_CTRL 21 #define SI5351_CLK6_CTRL 22 #define SI5351_CLK7_CTRL 23 #define SI5351_CLK_POWERDOWN (1<<7) #define SI5351_CLK_INTEGER_MODE (1<<6) #define SI5351_CLK_PLL_SELECT (1<<5) #define SI5351_CLK_INVERT (1<<4) #define SI5351_CLK_INPUT_MASK (3<<2) #define SI5351_CLK_INPUT_XTAL (0<<2) #define SI5351_CLK_INPUT_CLKIN (1<<2) #define SI5351_CLK_INPUT_MULTISYNTH_0_4 (2<<2) #define SI5351_CLK_INPUT_MULTISYNTH_N (3<<2) #define SI5351_CLK_DRIVE_STRENGTH_MASK (3<<0) #define SI5351_CLK_DRIVE_STRENGTH_2MA (0<<0) #define SI5351_CLK_DRIVE_STRENGTH_4MA (1<<0) #define SI5351_CLK_DRIVE_STRENGTH_6MA (2<<0) #define SI5351_CLK_DRIVE_STRENGTH_8MA (3<<0) #define SI5351_CLK3_0_DISABLE_STATE 24 #define SI5351_CLK7_4_DISABLE_STATE 25 #define SI5351_CLK_DISABLE_STATE_MASK 3 #define SI5351_CLK_DISABLE_STATE_LOW 0 #define SI5351_CLK_DISABLE_STATE_HIGH 1 #define SI5351_CLK_DISABLE_STATE_FLOAT 2 #define SI5351_CLK_DISABLE_STATE_NEVER 3 #define SI5351_PARAMETERS_LENGTH 8 #define SI5351_PLLA_PARAMETERS 26 #define SI5351_PLLB_PARAMETERS 34 #define SI5351_CLK0_PARAMETERS 42 #define SI5351_CLK1_PARAMETERS 50 #define SI5351_CLK2_PARAMETERS 58 #define SI5351_CLK3_PARAMETERS 66 #define SI5351_CLK4_PARAMETERS 74 #define SI5351_CLK5_PARAMETERS 82 #define SI5351_CLK6_PARAMETERS 90 #define SI5351_CLK7_PARAMETERS 91 #define SI5351_CLK6_7_OUTPUT_DIVIDER 92 #define SI5351_OUTPUT_CLK_DIV_MASK (7 << 4) #define SI5351_OUTPUT_CLK6_DIV_MASK (7 << 0) #define SI5351_OUTPUT_CLK_DIV_SHIFT 4 #define SI5351_OUTPUT_CLK_DIV6_SHIFT 0 #define SI5351_OUTPUT_CLK_DIV_1 0 #define SI5351_OUTPUT_CLK_DIV_2 1 #define SI5351_OUTPUT_CLK_DIV_4 2 #define SI5351_OUTPUT_CLK_DIV_8 3 #define SI5351_OUTPUT_CLK_DIV_16 4 #define SI5351_OUTPUT_CLK_DIV_32 5 #define SI5351_OUTPUT_CLK_DIV_64 46 #define SI5351_OUTPUT_CLK_DIV_128 7 #define SI5351_OUTPUT_CLK_DIVBY4 (3<<2) #define SI5351_SSC_PARAM0 149 #define SI5351_SSC_PARAM1 150 #define SI5351_SSC_PARAM2 151 #define SI5351_SSC_PARAM3 152 #define SI5351_SSC_PARAM4 153 #define SI5351_SSC_PARAM5 154 #define SI5351_SSC_PARAM6 155 #define SI5351_SSC_PARAM7 156 #define SI5351_SSC_PARAM8 157 #define SI5351_SSC_PARAM9 158 #define SI5351_SSC_PARAM10 159 #define SI5351_SSC_PARAM11 160 #define SI5351_SSC_PARAM12 161 #define SI5351_VXCO_PARAMETERS_LOW 162 #define SI5351_VXCO_PARAMETERS_MID 163 #define SI5351_VXCO_PARAMETERS_HIGH 164 #define SI5351_CLK0_PHASE_OFFSET 165 #define SI5351_CLK1_PHASE_OFFSET 166 #define SI5351_CLK2_PHASE_OFFSET 167 #define SI5351_CLK3_PHASE_OFFSET 168 #define SI5351_CLK4_PHASE_OFFSET 169 #define SI5351_CLK5_PHASE_OFFSET 170 #define SI5351_PLL_RESET 177 #define SI5351_PLL_RESET_B (1<<7) #define SI5351_PLL_RESET_A (1<<5) #define SI5351_CRYSTAL_LOAD 183 #define SI5351_CRYSTAL_LOAD_MASK (3<<6) #define SI5351_CRYSTAL_LOAD_0PF (0<<6) #define SI5351_CRYSTAL_LOAD_6PF (1<<6) #define SI5351_CRYSTAL_LOAD_8PF (2<<6) #define SI5351_CRYSTAL_LOAD_10PF (3<<6) #define SI5351_FANOUT_ENABLE 187 #define SI5351_CLKIN_ENABLE (1<<7) #define SI5351_XTAL_ENABLE (1<<6) #define SI5351_MULTISYNTH_ENABLE (1<<4) /* Macro definitions */ #define RFRAC_DENOM ((1L << 20) - 1) /* * Based on former asm-ppc/div64.h and asm-m68knommu/div64.h * * The semantics of do_div() are: * * uint32_t do_div(uint64_t *n, uint32_t base) * { * uint32_t remainder = *n % base; * *n = *n / base; * return remainder; * } * * NOTE: macro parameter n is evaluated multiple times, * beware of side effects! */ # define do_div(n,base) ({ \ uint64_t __base = (base); \ uint64_t __rem; \ __rem = ((uint64_t)(n)) % __base; \ (n) = ((uint64_t)(n)) / __base; \ __rem; \ }) /* Enum definitions */ /* * enum si5351_variant - SiLabs Si5351 chip variant * @SI5351_VARIANT_A: Si5351A (8 output clocks, XTAL input) * @SI5351_VARIANT_A3: Si5351A MSOP10 (3 output clocks, XTAL input) * @SI5351_VARIANT_B: Si5351B (8 output clocks, XTAL/VXCO input) * @SI5351_VARIANT_C: Si5351C (8 output clocks, XTAL/CLKIN input) */ enum si5351_variant {SI5351_VARIANT_A, SI5351_VARIANT_A3, SI5351_VARIANT_B, SI5351_VARIANT_C}; enum si5351_clock {SI5351_CLK0, SI5351_CLK1, SI5351_CLK2, SI5351_CLK3, SI5351_CLK4, SI5351_CLK5, SI5351_CLK6, SI5351_CLK7, SI5351_CLKNONE}; enum si5351_pll {SI5351_PLLA, SI5351_PLLB}; enum si5351_drive {SI5351_DRIVE_2MA, SI5351_DRIVE_4MA, SI5351_DRIVE_6MA, SI5351_DRIVE_8MA}; enum si5351_clock_source {SI5351_CLK_SRC_XTAL, SI5351_CLK_SRC_CLKIN, SI5351_CLK_SRC_MS0, SI5351_CLK_SRC_MS}; enum si5351_clock_disable {SI5351_CLK_DISABLE_LOW, SI5351_CLK_DISABLE_HIGH, SI5351_CLK_DISABLE_HI_Z, SI5351_CLK_DISABLE_NEVER}; enum si5351_clock_fanout {SI5351_FANOUT_CLKIN, SI5351_FANOUT_XO, SI5351_FANOUT_MS}; enum si5351_pll_input{SI5351_PLL_INPUT_XO, SI5351_PLL_INPUT_CLKIN}; /* Struct definitions */ struct Si5351RegSet { uint32_t p1; uint32_t p2; uint32_t p3; }; struct Si5351Status { uint8_t SYS_INIT; uint8_t LOL_B; uint8_t LOL_A; uint8_t LOS; uint8_t REVID; }; struct Si5351IntStatus { uint8_t SYS_INIT_STKY; uint8_t LOL_B_STKY; uint8_t LOL_A_STKY; uint8_t LOS_STKY; }; typedef struct { struct Si5351Status dev_status; struct Si5351IntStatus dev_int_status; uint64_t plla_freq; uint64_t pllb_freq; uint64_t clk0_freq; uint64_t clk1_freq; uint64_t clk2_freq; uint8_t clk0_int_mode, clk1_int_mode, clk2_int_mode; int32_t ref_correction; uint8_t lock_plla, lock_pllb; uint32_t xtal_freq; uint32_t I2C_ErrorCode; uint8_t I2C_add; } T_Si5351_data; T_Si5351_data Si5351_Config; /* private routines */ void si5351_write(uint8_t REGaddr, uint8_t data); void si5351_write_bulk(uint8_t REGaddr, uint8_t bytes, uint8_t *data); uint8_t si5351_read(uint8_t REGaddr); uint64_t si5351_multisynth_calc(uint64_t freq, uint64_t pll_freq, struct Si5351RegSet *reg); void si5351_set_ms_source(enum si5351_clock clk, enum si5351_pll pll); void si5351_set_ms(enum si5351_clock clk, struct Si5351RegSet ms_reg, uint8_t int_mode, uint8_t r_div, uint8_t div_by_4); void si5351_set_pll(uint64_t pll_freq, enum si5351_pll target_pll); void si5351_ms_div(enum si5351_clock clk, uint8_t r_div, uint8_t div_by_4); void si5351_set_int(enum si5351_clock clk, uint8_t enable); uint64_t si5351_pll_calc(uint64_t freq, struct Si5351RegSet *reg, int32_t correction); uint8_t si5351_select_r_div(uint64_t *freq); /* public routines */ void si5351_init(uint8_t I2C_Address, uint8_t xtal_load_c, uint32_t ref_osc_freq); void si5351_pll_reset(enum si5351_pll target_pll); void si5351_set_clock_pwr(enum si5351_clock clk, uint8_t pwr); void si5351_set_clock_invert(enum si5351_clock clk, uint8_t inv); uint8_t si5351_set_freq(uint64_t freq_in_Hz_times_100, uint64_t pll_freq, enum si5351_clock clk); #endif codec2-1.0.1/stm32/inc/sine.h000066400000000000000000000032011412132000500154600ustar00rootroot00000000000000/*---------------------------------------------------------------------------*\ FILE........: sine.h AUTHOR......: David Rowe DATE CREATED: 1/11/94 Header file for sinusoidal analysis and synthesis functions. \*---------------------------------------------------------------------------*/ /* Copyright (C) 2009 David Rowe All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 2.1, as published by the Free Software Foundation. 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 Lesser General Public License along with this program; if not, see . */ #ifndef __SINE__ #define __SINE__ #include "defines.h" #include "comp.h" #include "kiss_fft.h" void make_analysis_window(kiss_fft_cfg fft_fwd_cfg, float w[], COMP W[]); float hpf(float x, float states[]); void dft_speech(kiss_fft_cfg fft_fwd_cfg, COMP Sw[], float Sn[], float w[]); void two_stage_pitch_refinement(MODEL *model, COMP Sw[]); void estimate_amplitudes(MODEL *model, COMP Sw[], COMP W[], int est_phase); float est_voicing_mbe(MODEL *model, COMP Sw[], COMP W[], COMP Sw_[],COMP Ew[], float prev_Wo); void make_synthesis_window(float Pn[]); void synthesise(kiss_fft_cfg fft_inv_cfg, float Sn_[], MODEL *model, float Pn[], int shift); #define CODEC2_RAND_MAX 32767 int codec2_rand(void); #endif codec2-1.0.1/stm32/inc/sm1000_leds_switches.h000066400000000000000000000047661412132000500204030ustar00rootroot00000000000000/*---------------------------------------------------------------------------*\ FILE........: sm1000_leds_switches.h AUTHOR......: David Rowe DATE CREATED: 18 July 2014 Functions for controlling LEDs and reading switches on SM1000. \*---------------------------------------------------------------------------*/ /* Copyright (C) 2014 David Rowe All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 2.1, as published by the Free Software Foundation. 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 Lesser General Public License along with this program; if not, see . */ #ifndef __LEDS_SWITCHES__ #define __LEDS_SWITCHES__ #include void sm1000_leds_switches_init(void); #define LED_ON 1 /*!< Turn LED on */ #define LED_OFF 0 /*!< Turn LED off */ #define LED_INV -1 /*!< Invert LED state */ void led_pwr(int state); void led_ptt(int state); void led_rt(int state); void led_err(int state); void not_cptt(int state); int switch_ptt(void); int switch_select(void); int switch_back(void); int ext_ptt(void); #define DEBOUNCE_DELAY 50 /*!< Delay to wait while switch bounces */ #define SW_STEADY 0 /*!< Switch is in steady-state */ #define SW_DEBOUNCE 1 /*!< Switch is being debounced */ /*! Switch debounce and logic handling */ struct switch_t { /*! Debounce/hold timer */ uint32_t timer; /*! Current/debounced observed switch state */ uint8_t sw; /*! Raw observed switch state (during debounce) */ uint8_t raw; /*! Last steady-state switch state */ uint8_t last; /*! Debouncer state */ uint8_t state; }; /*! Update the state of a switch */ void switch_update(struct switch_t* const sw, uint8_t state); /*! Acknowledge the current state of the switch */ void switch_ack(struct switch_t* const sw); /*! Return how long the switch has been pressed in ticks. */ uint32_t switch_pressed(const struct switch_t* const sw); /*! Return non-zero if the switch has been released. */ int switch_released(const struct switch_t* const sw); /*! Count the tick timers on the switches. */ void switch_tick(struct switch_t* const sw); void ColorfulRingOfDeath(int code); #endif codec2-1.0.1/stm32/inc/sounds.h000066400000000000000000000021631412132000500160430ustar00rootroot00000000000000#ifndef _SOUNDS_H #define _SOUNDS_H /*! * Sound effect library. * * This provides some sound effects for the SM1000 UI. * * Author Stuart Longland * Copyright (C) 2015 FreeDV project. * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU Lesser General Public License version 2.1, * as published by the Free Software Foundation. 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 Lesser General Public * License along with this program; if not, see * . */ #include "sfx.h" /*! Start-up tune / selected tune */ extern const struct sfx_note_t sound_startup[]; /*! Returned tune */ extern const struct sfx_note_t sound_returned[]; /*! Click sound */ extern const struct sfx_note_t sound_click[]; /*! Death march tune */ extern const struct sfx_note_t sound_death_march[]; #endif codec2-1.0.1/stm32/inc/stm32f4_adc.h000066400000000000000000000025661412132000500165500ustar00rootroot00000000000000/*---------------------------------------------------------------------------*\ FILE........: stm32f4_adc.h AUTHOR......: David Rowe DATE CREATED: 30 May 2014 Two channel FIFO buffered ADC driver module for STM32F4. \*---------------------------------------------------------------------------*/ /* Copyright (C) 2014 David Rowe All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 2.1, as published by the Free Software Foundation. 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 Lesser General Public License along with this program; if not, see . */ #ifndef __STM32F4_ADC__ #define __STM32F4_ADC__ #define ADC_BUF_SZ 320 /* divisors for various sample rates */ #define ADC_FS_8KHZ 10500 #define ADC_FS_16KHZ 5250 #define ADC_FS_48KHZ 1750 #define ADC_FS_96KHZ 875 void adc_open(int fs_divisor, int fifo_sz, short *buf1, short *buf2); int adc1_read(short buf[], int n); /* ADC1 Pin PA1 */ int adc2_read(short buf[], int n); /* ADC2 Pin PA2 */ int adc1_samps(); int adc2_samps(); #endif codec2-1.0.1/stm32/inc/stm32f4_adc_tuner.h000066400000000000000000000026101412132000500177530ustar00rootroot00000000000000/*---------------------------------------------------------------------------*\ FILE........: stm32f4_adc_tuner.h AUTHOR......: David Rowe DATE CREATED: 19 Feb 2015 Single channel ADC driver module for STM32F4 that samples pin PA1 at 2 MHz and down converts to 50 kHz, with "tuning" centred at 500 kHz. \*---------------------------------------------------------------------------*/ /* Copyright (C) 2015 David Rowe All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 2.1, as published by the Free Software Foundation. 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 Lesser General Public License along with this program; if not, see . */ #ifndef __STM32F4_ADC_TUNER__ #define __STM32F4_ADC_TUNER__ #define ADC_TUNER_M 45 /* decimation rate */ #define ADC_TUNER_N 160 #define ADC_TUNER_BUF_SZ (ADC_TUNER_M*ADC_TUNER_N) void adc_open(int fifo_sz); int adc1_read(short buf[], int n); /* ADC1 Pin PA1 */ void adc_set_tuner_en(short flag); /* disable tuner to get raw ADC samples written to fifo */ #endif codec2-1.0.1/stm32/inc/stm32f4_dac.h000066400000000000000000000026141412132000500165420ustar00rootroot00000000000000/*---------------------------------------------------------------------------*\ FILE........: stm32f4_dac.h AUTHOR......: David Rowe DATE CREATED: 1 June 2013 Two channel FIFO buffered DAC driver module for STM32F4. \*---------------------------------------------------------------------------*/ /* Copyright (C) 2013 David Rowe All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 2.1, as published by the Free Software Foundation. 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 Lesser General Public License along with this program; if not, see . */ #ifndef __STM32F4_DAC__ #define __STM32F4_DAC__ #define DAC_BUF_SZ 320 /* divisors for various sample rates */ #define DAC_FS_8KHZ 10500 #define DAC_FS_16KHZ 5250 #define DAC_FS_48KHZ 1750 #define DAC_FS_96KHZ 875 void dac_open(int fs_divisor, int fifo_sz, short *buf1, short *buf2); int dac1_write(short buf[], int n, int limit); /* DAC1 pin PA4 */ int dac1_free(); int dac2_write(short buf[], int n, int limit); /* DAC2 pin PA5 */ int dac2_free(); #endif codec2-1.0.1/stm32/inc/stm32f4_dacduc.h000066400000000000000000000025261412132000500172400ustar00rootroot00000000000000/*---------------------------------------------------------------------------*\ FILE........: stm32f4_dac.h AUTHOR......: David Rowe DATE CREATED: 1 June 2013 Two channel FIFO buffered DAC driver module for STM32F4. DAC1 is fixed at Fs=2Mhz \*---------------------------------------------------------------------------*/ /* Copyright (C) 2013 David Rowe All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 2.1, as published by the Free Software Foundation. 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 Lesser General Public License along with this program; if not, see . */ #ifndef __STM32F4_DAC__ #define __STM32F4_DAC__ #define DUC_N 160 #define DUC_M 25 #define DUC_48N 96 //This is 3/5th DUC_N #define DAC_DUC_BUF_SZ DUC_M*DUC_N #define DAC_BUF_SZ 2048 void fast_dac_open(int dac1_fifo_size,int dac2_fifo_size); int dac1_write(short buf[], int n); /* DAC1 pin PA4 */ int dac2_write(short buf[], int n); /* DAC2 pin PA5 */ #endif codec2-1.0.1/stm32/inc/stm32f4_usart.h000066400000000000000000000021021412132000500171410ustar00rootroot00000000000000/*---------------------------------------------------------------------------*\ FILE........: stm32f4_usart.h AUTHOR......: David Rowe DATE CREATED: May 2019 Basic USART tty support for the stm32. \*---------------------------------------------------------------------------*/ /* Copyright (C) 2019 David Rowe All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 2.1, as published by the Free Software Foundation. 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 Lesser General Public License along with this program; if not, see . */ #ifndef __STM32F4_USART__ #define __STM32F4_USART__ void usart_init(); void usart_puts(const char s[]); int usart_printf(const char *fmt, ...); #endif codec2-1.0.1/stm32/inc/stm32f4_usb_vcp.h000066400000000000000000000011011412132000500174420ustar00rootroot00000000000000/*---------------------------------------------------------------------------*\ FILE........: stm32f4_usb_vcp.h AUTHOR......: David Rowe DATE CREATED: 4 Sep 2014 USB Virtual COM Port (VCP) module. \*---------------------------------------------------------------------------*/ #ifndef __STM32F4_USB_VCP__ #define __STM32F4_USB_VCP__ #include void usb_vcp_init(void); int VCP_get_char(uint8_t *buf); int VCP_get_string(uint8_t *buf); void VCP_put_char(uint8_t buf); void VCP_send_str(uint8_t* buf); void VCP_send_buffer(uint8_t* buf, int len); #endif codec2-1.0.1/stm32/inc/stm32f4_vrom.h000066400000000000000000000045721412132000500170030ustar00rootroot00000000000000#ifndef _STM32F4_VROM_H_ #define _STM32F4_VROM_H_ /*! * STM32F4 Virtual EEPROM driver * * This module implements a crude virtual EEPROM device stored in on-board * flash. The STM32F405 has 4 16kB flash sectors starting at address * 0x80000000, followed by a 64kB sector, then 128kB sectors. * * The Cortex M4 core maps these all to address 0x00000000 when booting * from normal flash, so the first sector is reserved for interrupt * vectors. * * Everything else however is free game, and so we use these smaller * sectors to store our configuration. * * Author Stuart Longland * Copyright (C) 2015 FreeDV project. * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU Lesser General Public License version 2.1, * as published by the Free Software Foundation. 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 Lesser General Public * License along with this program; if not, see * . */ #include #include /*! * Read data from a virtual EEPROM. * @param rom ROM ID to start reading. * @param offset Address offset into ROM to start reading. * @param size Number of bytes to read from ROM. * @param out Buffer to write ROM content to. * @returns Number of bytes read from ROM. * @retval -ENXIO No valid data found for address. * @retval -ESPIPE Offset past end of ROM. */ int vrom_read(uint8_t rom, uint16_t offset, uint16_t size, void* out); /*! * Write data to a virtual EEPROM. * @param rom ROM ID to start writing. * @param offset Address offset into ROM to start writing. * @param size Number of bytes to write to ROM. * @param in Buffer to write ROM content from. * @returns Number of bytes written to ROM. * @retval -EIO Programming failed * @retval -ENOSPC No free blocks available */ int vrom_write(uint8_t rom, uint16_t offset, uint16_t size, const void* in); /*! * Erase a virtual EEPROM. * @param rom ROM ID to erase. * @returns Number of bytes written to ROM. * @retval -EIO Programming failed * @retval -ENOSPC No free blocks available */ int vrom_erase(uint8_t rom); #endif codec2-1.0.1/stm32/inc/stm32f4xx_conf.h000066400000000000000000000071601412132000500173210ustar00rootroot00000000000000/** ****************************************************************************** * @file stm32f4xx_conf.h * @author MCD Application Team * @version V1.0.0 * @date 19-September-2011 * @brief Library configuration file. ****************************************************************************** * @attention * * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE * TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY * DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING * FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. * *

© COPYRIGHT 2011 STMicroelectronics

****************************************************************************** */ /* Define to prevent recursive inclusion -------------------------------------*/ #ifndef __STM32F4xx_CONF_H #define __STM32F4xx_CONF_H #if defined (HSE_VALUE) /* Redefine the HSE value; it's equal to 8 MHz on the STM32F4-DISCOVERY Kit */ #undef HSE_VALUE #define HSE_VALUE ((uint32_t)8000000) #endif /* HSE_VALUE */ /* Includes ------------------------------------------------------------------*/ /* Uncomment the line below to enable peripheral header file inclusion */ #include "stm32f4xx_adc.h" #include "stm32f4xx_can.h" #include "stm32f4xx_crc.h" #include "stm32f4xx_cryp.h" #include "stm32f4xx_dac.h" #include "stm32f4xx_dbgmcu.h" #include "stm32f4xx_dcmi.h" #include "stm32f4xx_dma.h" #include "stm32f4xx_exti.h" #include "stm32f4xx_flash.h" #include "stm32f4xx_fsmc.h" #include "stm32f4xx_hash.h" #include "stm32f4xx_gpio.h" #include "stm32f4xx_i2c.h" #include "stm32f4xx_iwdg.h" #include "stm32f4xx_pwr.h" #include "stm32f4xx_rcc.h" #include "stm32f4xx_rng.h" #include "stm32f4xx_rtc.h" #include "stm32f4xx_sdio.h" #include "stm32f4xx_spi.h" #include "stm32f4xx_syscfg.h" #include "stm32f4xx_tim.h" #include "stm32f4xx_usart.h" #include "stm32f4xx_wwdg.h" #include "misc.h" /* High level functions for NVIC and SysTick (add-on to CMSIS functions) */ /* Exported types ------------------------------------------------------------*/ /* Exported constants --------------------------------------------------------*/ /* If an external clock source is used, then the value of the following define should be set to the value of the external clock source, else, if no external clock is used, keep this define commented */ /*#define I2S_EXTERNAL_CLOCK_VAL 12288000 */ /* Value of the external clock in Hz */ /* Uncomment the line below to expanse the "assert_param" macro in the Standard Peripheral Library drivers code */ /* #define USE_FULL_ASSERT 1 */ /* Exported macro ------------------------------------------------------------*/ #ifdef USE_FULL_ASSERT /** * @brief The assert_param macro is used for function's parameters check. * @param expr: If expr is false, it calls assert_failed function * which reports the name of the source file and the source * line number of the call that failed. * If expr is true, it returns no value. * @retval None */ #define assert_param(expr) ((expr) ? (void)0 : assert_failed((uint8_t *)__FILE__, __LINE__)) /* Exported functions ------------------------------------------------------- */ void assert_failed(uint8_t* file, uint32_t line); #else #define assert_param(expr) ((void)0) #endif /* USE_FULL_ASSERT */ #endif /* __STM32F4xx_CONF_H */ /******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/ codec2-1.0.1/stm32/inc/tm_stm32f4_gpio.h000066400000000000000000000350231412132000500174510ustar00rootroot00000000000000/** * @author Tilen Majerle * @email tilen@majerle.eu * @website http://stm32f4-discovery.com * @link http://stm32f4-discovery.com/2015/03/library-53-gpio-for-stm32f4 * @version v1.5 * @ide Keil uVision * @license GNU GPL v3 * @brief GPIO Library for STM32F4xx devices * @verbatim ---------------------------------------------------------------------- Copyright (C) Tilen Majerle, 2015 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 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 . ---------------------------------------------------------------------- @endverbatim */ #ifndef TM_GPIO_H #define TM_GPIO_H 150 /** * @addtogroup TM_STM32F4xx_Libraries * @{ */ /** * @defgroup TM_GPIO * @brief TM GPIO Library for STM32F4xx - http://stm32f4-discovery.com/2015/03/library-53-gpio-for-stm32f4 * @{ * * GPIO library can be used for GPIO pins. * * It features fast initialization methods as well pin input/output methods. * * It can be used as replacement for STD/HAL drivers GPIO library. * * \par Changelog * @verbatim Version 1.5 - June 10 2015 - Added 2 new functions for getting used GPIO pins Version 1.4 - April 28, 2015 - Added support for PORT locking Version 1.3 - March 23, 2015 - Totally independent from HAL / SPD drivers - Library can be used with any drivers or totally itself Version 1.2 - March 10, 2015 - Added functions TM_GPIO_SetPinAsInput and TM_GPIO_SetPinAsOutput - Added functions TM_GPIO_GetPortSource and TM_GPIO_GetPinSource 0 Version 1.1 - March 09, 2015 - Added function to deinit pin. Pin is set to analog input which allows lowest current consumption Version 1.0 - March 08, 2015 - Initial release @endverbatim * * \par Dependencies * @verbatim - STM32F4xx - STM32F4xx GPIO - defines.h @endverbatim */ #include "stm32f4xx.h" #include "stm32f4xx_gpio.h" #include "defines.h" /* C++ detection */ #ifdef __cplusplus extern "C" { #endif /** * @defgroup TM_GPIO_Macros * @brief GPIO Library macros * @{ */ /** * @brief GPIO Pins declarations * @note For HAL drivers compatibility */ #ifndef GPIO_PIN_0 #define GPIO_PIN_0 ((uint16_t)0x0001) #define GPIO_PIN_1 ((uint16_t)0x0002) #define GPIO_PIN_2 ((uint16_t)0x0004) #define GPIO_PIN_3 ((uint16_t)0x0008) #define GPIO_PIN_4 ((uint16_t)0x0010) #define GPIO_PIN_5 ((uint16_t)0x0020) #define GPIO_PIN_6 ((uint16_t)0x0040) #define GPIO_PIN_7 ((uint16_t)0x0080) #define GPIO_PIN_8 ((uint16_t)0x0100) #define GPIO_PIN_9 ((uint16_t)0x0200) #define GPIO_PIN_10 ((uint16_t)0x0400) #define GPIO_PIN_11 ((uint16_t)0x0800) #define GPIO_PIN_12 ((uint16_t)0x1000) #define GPIO_PIN_13 ((uint16_t)0x2000) #define GPIO_PIN_14 ((uint16_t)0x4000) #define GPIO_PIN_15 ((uint16_t)0x8000) #define GPIO_PIN_ALL ((uint16_t)0xFFFF) #endif /** * @brief GPIO Pins declarations * @note For STD Periph drivers compatibility */ #ifndef GPIO_Pin_0 #define GPIO_Pin_0 ((uint16_t)0x0001) #define GPIO_Pin_1 ((uint16_t)0x0002) #define GPIO_Pin_2 ((uint16_t)0x0004) #define GPIO_Pin_3 ((uint16_t)0x0008) #define GPIO_Pin_4 ((uint16_t)0x0010) #define GPIO_Pin_5 ((uint16_t)0x0020) #define GPIO_Pin_6 ((uint16_t)0x0040) #define GPIO_Pin_7 ((uint16_t)0x0080) #define GPIO_Pin_8 ((uint16_t)0x0100) #define GPIO_Pin_9 ((uint16_t)0x0200) #define GPIO_Pin_10 ((uint16_t)0x0400) #define GPIO_Pin_11 ((uint16_t)0x0800) #define GPIO_Pin_12 ((uint16_t)0x1000) #define GPIO_Pin_13 ((uint16_t)0x2000) #define GPIO_Pin_14 ((uint16_t)0x4000) #define GPIO_Pin_15 ((uint16_t)0x8000) #define GPIO_Pin_All ((uint16_t)0xFFFF) #endif /** * @} */ /** * @defgroup TM_GPIO_Typedefs * @brief GPIO Typedefs used for GPIO library for initialization purposes * @{ */ /** * @brief GPIO Mode enumeration */ typedef enum { TM_GPIO_Mode_IN = 0x00, /*!< GPIO Pin as General Purpose Input */ TM_GPIO_Mode_OUT = 0x01, /*!< GPIO Pin as General Purpose Output */ TM_GPIO_Mode_AF = 0x02, /*!< GPIO Pin as Alternate Function */ TM_GPIO_Mode_AN = 0x03, /*!< GPIO Pin as Analog */ } TM_GPIO_Mode_t; /** * @brief GPIO Output type enumeration */ typedef enum { TM_GPIO_OType_PP = 0x00, /*!< GPIO Output Type Push-Pull */ TM_GPIO_OType_OD = 0x01 /*!< GPIO Output Type Open-Drain */ } TM_GPIO_OType_t; /** * @brief GPIO Speed enumeration */ typedef enum { TM_GPIO_Speed_Low = 0x00, /*!< GPIO Speed Low */ TM_GPIO_Speed_Medium = 0x01, /*!< GPIO Speed Medium */ TM_GPIO_Speed_Fast = 0x02, /*!< GPIO Speed Fast */ TM_GPIO_Speed_High = 0x03 /*!< GPIO Speed High */ } TM_GPIO_Speed_t; /** * @brief GPIO pull resistors enumeration */ typedef enum { TM_GPIO_PuPd_NOPULL = 0x00, /*!< No pull resistor */ TM_GPIO_PuPd_UP = 0x01, /*!< Pull up resistor enabled */ TM_GPIO_PuPd_DOWN = 0x02 /*!< Pull down resistor enabled */ } TM_GPIO_PuPd_t; /** * @} TM_GPIO_Typedefs */ /** * @defgroup TM_GPIO_Functions * @brief GPIO Functions * @{ */ /** * @brief Initializes GPIO pins(s) * @note This function also enables clock for GPIO port * @param GPIOx: Pointer to GPIOx port you will use for initialization * @param GPIO_Pin: GPIO pin(s) you will use for initialization * @param GPIO_Mode: Select GPIO mode. This parameter can be a value of @ref TM_GPIO_Mode_t enumeration * @param GPIO_OType: Select GPIO Output type. This parameter can be a value of @ref TM_GPIO_OType_t enumeration * @param GPIO_PuPd: Select GPIO pull resistor. This parameter can be a value of @ref TM_GPIO_PuPd_t enumeration * @param GPIO_Speed: Select GPIO speed. This parameter can be a value of @ref TM_GPIO_Speed_t enumeration * @retval None */ void TM_GPIO_Init(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin, TM_GPIO_Mode_t GPIO_Mode, TM_GPIO_OType_t GPIO_OType, TM_GPIO_PuPd_t GPIO_PuPd, TM_GPIO_Speed_t GPIO_Speed); /** * @brief Initializes GPIO pins(s) as alternate function * @note This function also enables clock for GPIO port * @param GPIOx: Pointer to GPIOx port you will use for initialization * @param GPIO_Pin: GPIO pin(s) you will use for initialization * @param GPIO_OType: Select GPIO Output type. This parameter can be a value of @ref TM_GPIO_OType_t enumeration * @param GPIO_PuPd: Select GPIO pull resistor. This parameter can be a value of @ref TM_GPIO_PuPd_t enumeration * @param GPIO_Speed: Select GPIO speed. This parameter can be a value of @ref TM_GPIO_Speed_t enumeration * @param Alternate: Alternate function you will use * @retval None */ void TM_GPIO_InitAlternate(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin, TM_GPIO_OType_t GPIO_OType, TM_GPIO_PuPd_t GPIO_PuPd, TM_GPIO_Speed_t GPIO_Speed, uint8_t Alternate); /** * @brief Deinitializes pin(s) * @note Pins(s) will be set as analog mode to get low power consumption * @param GPIOx: GPIOx PORT where you want to set pin as input * @param GPIO_Pin: Select GPIO pin(s). You can select more pins with | (OR) operator to set them as input * @retval None */ void TM_GPIO_DeInit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin); /** * @brief Sets pin(s) as input * @note Pins HAVE to be initialized first using @ref TM_GPIO_Init() or @ref TM_GPIO_InitAlternate() function * @note This is just an option for fast input mode * @param GPIOx: GPIOx PORT where you want to set pin as input * @param GPIO_Pin: Select GPIO pin(s). You can select more pins with | (OR) operator to set them as input * @retval None */ void TM_GPIO_SetPinAsInput(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin); /** * @brief Sets pin(s) as output * @note Pins HAVE to be initialized first using @ref TM_GPIO_Init() or @ref TM_GPIO_InitAlternate() function * @note This is just an option for fast output mode * @param GPIOx: GPIOx PORT where you want to set pin as output * @param GPIO_Pin: Select GPIO pin(s). You can select more pins with | (OR) operator to set them as output * @retval None */ void TM_GPIO_SetPinAsOutput(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin); /** * @brief Sets pin(s) as analog * @note Pins HAVE to be initialized first using @ref TM_GPIO_Init() or @ref TM_GPIO_InitAlternate() function * @note This is just an option for fast analog mode * @param GPIOx: GPIOx PORT where you want to set pin as analog * @param GPIO_Pin: Select GPIO pin(s). You can select more pins with | (OR) operator to set them as analog * @retval None */ void TM_GPIO_SetPinAsAnalog(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin); /** * @brief Sets pin(s) as alternate function * @note For proper alternate function, you should first init pin using @ref TM_GPIO_InitAlternate() function. * This functions is only used for changing GPIO mode * @param GPIOx: GPIOx PORT where you want to set pin as alternate * @param GPIO_Pin: Select GPIO pin(s). You can select more pins with | (OR) operator to set them as alternate * @retval None */ void TM_GPIO_SetPinAsAlternate(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin); /** * @brief Sets pull resistor settings to GPIO pin(s) * @note Pins HAVE to be initialized first using @ref TM_GPIO_Init() or @ref TM_GPIO_InitAlternate() function * @param *GPIOx: GPIOx PORT where you want to select pull resistor * @param GPIO_Pin: Select GPIO pin(s). You can select more pins with | (OR) operator to set them as output * @param GPIO_PuPd: Pull resistor option. This parameter can be a value of @ref TM_GPIO_PuPd_t enumeration * @retval None */ void TM_GPIO_SetPullResistor(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin, TM_GPIO_PuPd_t GPIO_PuPd); /** * @brief Sets pin(s) low * @note Defined as macro to get maximum speed using register access * @param GPIOx: GPIOx PORT where you want to set pin low * @param GPIO_Pin: Select GPIO pin(s). You can select more pins with | (OR) operator to set them low * @retval None */ #define TM_GPIO_SetPinLow(GPIOx, GPIO_Pin) ((GPIOx)->BSRRH = (GPIO_Pin)) /** * @brief Sets pin(s) high * @note Defined as macro to get maximum speed using register access * @param GPIOx: GPIOx PORT where you want to set pin high * @param GPIO_Pin: Select GPIO pin(s). You can select more pins with | (OR) operator to set them high * @retval None */ #define TM_GPIO_SetPinHigh(GPIOx, GPIO_Pin) ((GPIOx)->BSRRL = (GPIO_Pin)) /** * @brief Sets pin(s) value * @note Defined as macro to get maximum speed using register access * @param GPIOx: GPIOx PORT where you want to set pin value * @param GPIO_Pin: Select GPIO pin(s). You can select more pins with | (OR) operator to set them value * @param val: If parameter is 0 then pin will be low, otherwise high * @retval None */ #define TM_GPIO_SetPinValue(GPIOx, GPIO_Pin, val) ((val) ? TM_GPIO_SetPinHigh(GPIOx, GPIO_Pin) : TM_GPIO_SetPinLow(GPIOx, GPIO_Pin)) /** * @brief Toggles pin(s) * @note Defined as macro to get maximum speed using register access * @param GPIOx: GPIOx PORT where you want to toggle pin value * @param GPIO_Pin: Select GPIO pin(s). You can select more pins with | (OR) operator to toggle them all at a time * @retval None */ #define TM_GPIO_TogglePinValue(GPIOx, GPIO_Pin) ((GPIOx)->ODR ^= (GPIO_Pin)) /** * @brief Sets value to entire GPIO PORT * @note Defined as macro to get maximum speed using register access * @param GPIOx: GPIOx PORT where you want to set value * @param value: Value for GPIO OUTPUT data * @retval None */ #define TM_GPIO_SetPortValue(GPIOx, value) ((GPIOx)->ODR = (value)) /** * @brief Gets input data bit * @note Defined as macro to get maximum speed using register access * @param GPIOx: GPIOx PORT where you want to read input bit value * @param GPIO_Pin: GPIO pin where you want to read value * @retval 1 in case pin is high, or 0 if low */ #define TM_GPIO_GetInputPinValue(GPIOx, GPIO_Pin) (((GPIOx)->IDR & (GPIO_Pin)) == 0 ? 0 : 1) /** * @brief Gets output data bit * @note Defined as macro to get maximum speed using register access * @param GPIOx: GPIOx PORT where you want to read output bit value * @param GPIO_Pin: GPIO pin where you want to read value * @retval 1 in case pin is high, or 0 if low */ #define TM_GPIO_GetOutputPinValue(GPIOx, GPIO_Pin) (((GPIOx)->ODR & (GPIO_Pin)) == 0 ? 0 : 1) /** * @brief Gets input value from entire GPIO PORT * @note Defined as macro to get maximum speed using register access * @param GPIOx: GPIOx PORT where you want to read input data value * @retval Entire PORT INPUT register */ #define TM_GPIO_GetPortInputValue(GPIOx) ((GPIOx)->IDR) /** * @brief Gets output value from entire GPIO PORT * @note Defined as macro to get maximum speed using register access * @param GPIOx: GPIOx PORT where you want to read output data value * @retval Entire PORT OUTPUT register */ #define TM_GPIO_GetPortOutputValue(GPIOx) ((GPIOx)->ODR) /** * @brief Gets port source from desired GPIOx PORT * @note Meant for private use, unless you know what are you doing * @param GPIOx: GPIO PORT for calculating port source * @retval Calculated port source for GPIO */ uint16_t TM_GPIO_GetPortSource(GPIO_TypeDef* GPIOx); /** * @brief Gets pin source from desired GPIO pin * @note Meant for private use, unless you know what are you doing * @param GPIO_Pin: GPIO pin for calculating port source * @retval Calculated pin source for GPIO pin */ uint16_t TM_GPIO_GetPinSource(uint16_t GPIO_Pin); /** * @brief Locks GPIOx register for future changes * @note You are not able to config GPIO registers until new MCU reset occurs * @param *GPIOx: GPIOx PORT where you want to lock config registers * @param GPIO_Pin: GPIO pin(s) where you want to lock config registers * @retval None */ void TM_GPIO_Lock(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin); /** * @brief Gets bit separated pins which were used at least once in library and were not deinitialized * @param *GPIOx: Pointer to GPIOx peripheral where to check used GPIO pins * @retval Bit values for used pins */ uint16_t TM_GPIO_GetUsedPins(GPIO_TypeDef* GPIOx); /** * @brief Gets bit separated pins which were not used at in library or were deinitialized * @param *GPIOx: Pointer to GPIOx peripheral where to check used GPIO pins * @retval Bit values for free pins */ uint16_t TM_GPIO_GetFreePins(GPIO_TypeDef* GPIOx); /** * @} */ /** * @} */ /** * @} */ /* C++ detection */ #ifdef __cplusplus } #endif #endif codec2-1.0.1/stm32/inc/tm_stm32f4_mco_output.h000066400000000000000000000123101412132000500207030ustar00rootroot00000000000000/** * @author Tilen Majerle * @email tilen@majerle.eu * @website http://stm32f4-discovery.com * @link http://stm32f4-discovery.com/2014/10/library-40-output-clocks-stm32f4/ * @version v1.1 * @ide Keil uVision * @license GNU GPL v3 * @brief MCO Output for STM32F4xx * @verbatim ---------------------------------------------------------------------- Copyright (C) Tilen Majerle, 2015 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 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 . ---------------------------------------------------------------------- @endverbatim */ #ifndef TM_MCOOUTPUT_H #define TM_MCOOUTPUT_H 110 /** * @addtogroup TM_STM32F4xx_Libraries * @{ */ /** * @defgroup TM_MCO * @brief MCO Output clock for STM32F4xx - http://stm32f4-discovery.com/2014/10/library-40-output-clocks-stm32f4/ * @{ * * This library allows you to output different frequencies. They are split into 2 different output sections. * * \par MCO1 output = PA8 * * MCO1 output * - Pin PA8 * - HSI: High Speed Internal clock, 16MHz RC oscillator * - HSE: High Speed External clock, external crystal or user clock * - LSE: External 32738Hz low-speed oscillator or ceramic resonator * - PLLCLK: Output from PLL * * \par MCO2 output = PC9 * * MCO2 output * - Pin PC9 * - SYSCLK: Output system core clock * - PLLI2SCLK: Accurate clock for high-quality audio performance in I2S and SAI interfaces * - HSE: High Speed External clock, external crystal or user clock * - PLLCLK: Output from PLL * * \par Changelog * @verbatim Version 1.1 - March 11, 2015 - Support for my new GPIO library Version 1.0 - First release @endverbatim * * \par Dependencies * @verbatim - STM32F4xx - STM32F4xx RCC - defines.h - TM GPIO @endverbatim */ #include "stm32f4xx.h" #include "stm32f4xx_rcc.h" #include "defines.h" #include "tm_stm32f4_gpio.h" /* C++ detection */ #ifdef __cplusplus extern "C" { #endif /** * @defgroup TM_MCO_Typedefs * @brief Library Typedefs * @{ */ /** * @brief Prescaler values for output clock */ typedef enum { TM_MCOOUTPUT_Prescaler_1, /*!< Output original value of clock on MCO pin */ TM_MCOOUTPUT_Prescaler_2, /*!< Output clock is original / 2 */ TM_MCOOUTPUT_Prescaler_3, /*!< Output clock is original / 3 */ TM_MCOOUTPUT_Prescaler_4, /*!< Output clock is original / 4 */ TM_MCOOUTPUT_Prescaler_5 /*!< Output clock is original / 5 */ } TM_MCOOUTPUT_Prescaler_t; /** * @brief Possible output clocks on MCO1 pin */ typedef enum { TM_MCOOUTPUT1_Source_HSI, /*!< High Speed Internal clock, 16MHz RC oscillator */ TM_MCOOUTPUT1_Source_HSE, /*!< High Speed External clock, external crystal or user clock */ TM_MCOOUTPUT1_Source_LSE, /*!< External 32738Hz low-speed oscillator or ceramic resonator */ TM_MCOOUTPUT1_Source_PLLCLK /*!< Output from PLL */ } TM_MCOOUTPUT1_Source_t; /** * @brief Possible output clocks on MCO2 pin */ typedef enum { TM_MCOOUTPUT2_Source_SYSCLK, /*!< System core clock */ TM_MCOOUTPUT2_Source_PLLI2SCLK, /*!< Accurate clock for high-quality audio performance in I2S and SAI interfaces */ TM_MCOOUTPUT2_Source_HSE, /*!< High Speed External clock, external crystal or user clock */ TM_MCOOUTPUT2_Source_PLLCLK /*!< Output from PLL */ } TM_MCOOUTPUT2_Source_t; /** * @} */ /** * @defgroup TM_MCO_Functions * @brief Library Functions * @{ */ /** * @brief Initializes and prepares MCO1 pin to output clock * @param None * @retval None */ void TM_MCOOUTPUT_InitMCO1(void); /** * @brief Sets output for MCO1 pin * @param Source: Clock source to output. This parameter can be a value of @ref TM_MCOOUTPUT1_Source_t enumeration. * @param Prescaler: Prescaler used for clock. This parameter can be a value of @ref TM_MCOOUTPUT_Prescaler_t enumeration. * @retval None */ void TM_MCOOUTPUT_SetOutput1(TM_MCOOUTPUT1_Source_t Source, TM_MCOOUTPUT_Prescaler_t Prescaler); /** * @brief Initializes and prepares MCO2 pin to output clock * @param None * @retval None */ void TM_MCOOUTPUT_InitMCO2(void); /** * @brief Sets output for MCO2 pin * @param Source: Clock source to output. This parameter can be a value of @ref TM_MCOOUTPUT2_Source_t enumeration. * @param Prescaler: Prescaler used for clock. This parameter can be a value of @ref TM_MCOOUTPUT_Prescaler_t enumeration. * @retval None */ void TM_MCOOUTPUT_SetOutput2(TM_MCOOUTPUT2_Source_t Source, TM_MCOOUTPUT_Prescaler_t Prescaler); /** * @} */ /** * @} */ /** * @} */ /* C++ detection */ #ifdef __cplusplus } #endif #endif codec2-1.0.1/stm32/inc/tone.h000066400000000000000000000051011412132000500154700ustar00rootroot00000000000000#ifndef _TONE_H #define _TONE_H /*! * Fixed-point tone generator. * * The code here implements a simple fixed-point tone generator that uses * integer arithmetic to generate a sinusoid at a fixed sample rate of * 16kHz. * * To set the initial state of the state machine, you specify a frequency * and duration using tone_reset. The corresponding C file embeds a * sinusoid look-up table. The total number of samples is computed for * the given time and used to initialise 'remain', 'time' is initialised * to 0, and 'step' gives the amount to increment 'time' by each iteration. * * The samples are retrieved by repeatedly calling tone_next. This * advances 'time' and decrements 'remain'. The tone is complete when * 'remain' is zero. * * Author Stuart Longland * Copyright (C) 2015 FreeDV project. * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU Lesser General Public License version 2.1, * as published by the Free Software Foundation. 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 Lesser General Public * License along with this program; if not, see * . */ #include /*! Tone sampling rate in Hz. */ #define TONE_FS 16000 /*! * Tone generator state. This holds the current state of the tone * generator in order to decide what sample to release next. */ struct tone_gen_t { /*! Current sample. (Q12) */ uint32_t sample; /*! * Time remaining in samples. (integer) Playback is finished * when this reaches zero. */ uint16_t remain; /*! * Subsample step (Q12). This is the number of samples (or part * thereof) to advance "sample". Special case: when zero, sample * is not advanced, silence is generated instead. */ uint16_t step; }; /*! * Re-set the tone generator. * * @param tone_gen Tone generator to reset. * @param freq Frequency in Hz, 0 = silence. * @param duration Duration in milliseconds. 0 to stop. */ void tone_reset( struct tone_gen_t* const tone_gen, uint16_t freq, uint16_t duration); /*! * Retrieve the next sample from the tone generator. * @param tone_gen Tone generator to update. */ int16_t tone_next( struct tone_gen_t* const tone_gen); /*! * Retrieve the current time in milliseconds. */ uint32_t tone_msec(const struct tone_gen_t* const tone_gen); #endif codec2-1.0.1/stm32/inc/tot.h000066400000000000000000000050461412132000500153410ustar00rootroot00000000000000#ifndef _TOT_H #define _TOT_H /*! * Time-out timer. * * This is a simple time-out timer for ensuring a maximum transmission * time is observed. The time-out timer is configured with a total time * in "ticks", which get counted down in an interrupt. * * When the "warning" level is reached, a flag is repeatedly set permit * triggering of LEDs/sounds to warn the user that time is nearly up. * * Upon timeout, a separate flag is set to indicate timeout has taken * place. * * Author Stuart Longland * Copyright (C) 2015 FreeDV project. * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU Lesser General Public License version 2.1, * as published by the Free Software Foundation. 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 Lesser General Public * License along with this program; if not, see * . */ #include /*! * Time-out timer state machine */ struct tot_t { /*! * Number of ticks remaining, if non-zero, transmission is * in progress. */ uint32_t remaining; /*! * Number of ticks remaining, before next warning. */ uint32_t warn_remain; /*! * Timeout timer tick period. Used to reset the ticks counter. */ uint32_t tick_period; /*! * Number of ticks between the remaining warnings. */ uint16_t remain_warn_ticks; /*! * Event tick timer. Used to slow down the source timer. */ uint16_t ticks; /*! * Event flags. */ uint16_t event; }; /*! * Time-out timer has been started. */ #define TOT_EVT_START (1 << 0) /*! * Start of warning period reached. */ #define TOT_EVT_WARN (1 << 1) /*! * Next warning is due. */ #define TOT_EVT_WARN_NEXT (1 << 2) /*! * Time-out reached. */ #define TOT_EVT_TIMEOUT (1 << 3) /*! * Timer sequence complete */ #define TOT_EVT_DONE (1 << 4) /*! * Reset the time-out timer. This zeroes the counter and event flags. */ void tot_reset(struct tot_t * const tot); /*! * Start the time-out timer ticking. */ void tot_start(struct tot_t * const tot, uint32_t tot_ticks, uint16_t warn_ticks); /*! * Count a time-out timer tick. */ static inline void tot_tick(struct tot_t * const tot) { if (tot->ticks) tot->ticks--; } /*! * Update the time-out timer state. */ void tot_update(struct tot_t * const tot); #endif codec2-1.0.1/stm32/src/000077500000000000000000000000001412132000500143735ustar00rootroot00000000000000codec2-1.0.1/stm32/src/adc_rec.c000066400000000000000000000042001412132000500161130ustar00rootroot00000000000000/*---------------------------------------------------------------------------*\ FILE........: adc_rec.c AUTHOR......: David Rowe DATE CREATED: 30 May 2014 Records a 16 kHz sample rate raw file from one of the ADC channels, which are connected to pins PA1 (ADC1) and PA2 (ADC2). Note the semi-hosting system isn't fast enough to transfer 2 16 kHz streams at once. ~/stlink$ sudo ./st-util -f ~/codec2-dev/stm32/adc_rec.elf ~/codec2-dev/stm32$ ~/gcc-arm-none-eabi-4_7-2013q1/bin/arm-none-eabi-gdb adc_rec.elf (when finished) $ play -r 16000 -s -2 ~/stlink/adc.raw adc1 -> "from radio" adc2 -> "mic amp" \*---------------------------------------------------------------------------*/ /* Copyright (C) 2014 David Rowe All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 2.1, as published by the Free Software Foundation. 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 Lesser General Public License along with this program; if not, see . */ #include #include "stm32f4_adc.h" #include "gdb_stdio.h" #include "stm32f4xx_gpio.h" #define REC_TIME_SECS 10 #define N (ADC_BUF_SZ*6) #define FS 16000 extern int adc_overflow1; extern int adc_overflow2; int main(void){ short buf[N]; FILE *fadc; int i, bufs; fadc = fopen("adc.raw", "wb"); if (fadc == NULL) { printf("Error opening input file: adc.raw\n\nTerminating....\n"); exit(1); } bufs = FS*REC_TIME_SECS/N; printf("Starting!\n"); adc_open(ADC_FS_16KHZ, 4*N, NULL, NULL); for(i=0; i PA1 -> "from radio" ADC2 -> PA2 -> "mic amp" I used this to record: $ sudo dd if=/dev/ttyACM0 of=test.raw count=100 \*---------------------------------------------------------------------------*/ /* Copyright (C) 2015 David Rowe All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 2.1, as published by the Free Software Foundation. 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 Lesser General Public License along with this program; if not, see . */ #include #include #include "stm32f4_adc.h" #include "stm32f4_usb_vcp.h" #include "sm1000_leds_switches.h" #define N (ADC_BUF_SZ*6) /* test tone parameters */ #define FREQ 999.0 /* make sure no alignment with frame boundaries */ #define FS 16000.0 #define AMP 10000.0 extern int adc_overflow1; extern int adc_overflow2; int main(void){ short buf[N]; #ifdef TEST_TONE float phase = 0.0; float sam; int i; #endif usb_vcp_init(); adc_open(ADC_FS_96KHZ, 4*N, NULL, NULL); sm1000_leds_switches_init(); /* set up test buffer, lets us test USB comms indep of ADC, record to a file then play back/examine waveform to make sure no clicks */ while(1) { while(adc1_read(buf, N) == -1); #ifdef TEST_TONE for(i=0; i. */ #include #include #include "stm32f4_adc.h" #include "stm32f4_dac.h" #include "gdb_stdio.h" #define REC_TIME_SECS 10 #define N (ADC_BUF_SZ*4) #define FS 16000 static float calc_sd(short x[], int n) { float sum, mean, sum_diff, sd; int i; sum = 0.0; for(i=0; i. */ #include #include #include "gdb_stdio.h" #include "stm32f4_dac.h" #include "stm32f4_adc_tuner.h" #include "iir_tuner.h" #include "sm1000_leds_switches.h" #include "../src/codec2_fm.h" #include "stm32f4xx.h" #define BUFS 10 #define FS 2E6 #define N 1024 extern int adc_overflow1; int main(void) { unsigned short unsigned_buf[N]; short buf[N]; int sam; int i, j, fifo_sz; FILE *fadc; fadc = fopen("adc.raw", "wb"); if (fadc == NULL) { printf("Error opening output file: adc.raw\n\nTerminating....\n"); exit(1); } fifo_sz = ADC_TUNER_BUF_SZ; printf("Starting! bufs: %d %d\n", BUFS, fifo_sz); adc_open(fifo_sz); adc_set_tuner_en(0); /* dump raw samples, no tuner */ sm1000_leds_switches_init(); for (i=0; iODR |= (1 << 3); fwrite(buf, sizeof(short), N, fadc); GPIOE->ODR &= ~(1 << 3); } fclose(fadc); printf("Finished!\n"); } codec2-1.0.1/stm32/src/adcdac_ut.c000066400000000000000000000037621412132000500164560ustar00rootroot00000000000000/*---------------------------------------------------------------------------*\ FILE........: adcdac_ut.c AUTHOR......: David Rowe DATE CREATED: May 31 201310 Aug 2014 Echoes ADC2 input (mic) to DAC2 output (speaker) on SM1000. \*---------------------------------------------------------------------------*/ /* Copyright (C) 2013 David Rowe All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 2.1, as published by the Free Software Foundation. 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 Lesser General Public License along with this program; if not, see . */ #include #include "stm32f4_dac.h" #include "stm32f4_adc.h" #include "sm1000_leds_switches.h" #define SINE_SAMPLES 32 /* 32 sample sine wave which at Fs=16kHz will be 500Hz. Note samples are 16 bit 2's complement, the DAC driver convertsto 12 bit unsigned. */ short aSine[] = { -16, 6384, 12528, 18192, 23200, 27232, 30256, 32128, 32752, 32128, 30256, 27232, 23152, 18192, 12528, 6384, -16, -6416, -12560, -18224, -23184, -27264, -30288, -32160, -32768, -32160, -30288, -27264, -23184, -18224, -12560, -6416 }; int main(void) { short buf[SINE_SAMPLES]; int i; dac_open(ADC_FS_16KHZ,4*DAC_BUF_SZ, 0, 0); adc_open(ADC_FS_16KHZ, 4*ADC_BUF_SZ, 0, 0); sm1000_leds_switches_init(); while (1) { /* keep DAC FIFOs topped up */ while(adc2_read(buf, SINE_SAMPLES) == -1); if (!switch_select()) { for(i=0; i. */ #include #include #include #include #include "stm32f4xx_conf.h" #include "stm32f4xx.h" #include "gdb_stdio.h" #include "codec2.h" #include "dump.h" #include "sine.h" #include "machdep.h" #ifdef __EMBEDDED__ #define printf gdb_stdio_printf #define fopen gdb_stdio_fopen #define fclose gdb_stdio_fclose #define fread gdb_stdio_fread #define fwrite gdb_stdio_fwrite #endif static void c2demo(int mode, char inputfile[], char outputfile[]) { struct CODEC2 *codec2; short *inbuf, *outbuf; unsigned char *bits; int nsam, nbit; FILE *fin, *fout; int frame; PROFILE_VAR(enc_start, dec_start); codec2 = codec2_create(mode); nsam = codec2_samples_per_frame(codec2); outbuf = (short*)malloc(nsam*sizeof(short)); inbuf = (short*)malloc(nsam*sizeof(short)); nbit = codec2_bits_per_frame(codec2); bits = (unsigned char*)malloc(nbit*sizeof(char)); fin = fopen(inputfile, "rb"); if (fin == NULL) { printf("Error opening input file: %s\n\nTerminating....\n",inputfile); exit(1); } fout = fopen(outputfile, "wb"); if (fout == NULL) { printf("Error opening output file: %s\n\nTerminating....\n",outputfile); exit(1); } #ifdef DUMP dump_on("stm32f4"); #endif frame = 0; while (fread(inbuf, sizeof(short), nsam, fin) == nsam) { PROFILE_SAMPLE(enc_start); codec2_encode(codec2, bits, inbuf); PROFILE_SAMPLE_AND_LOG(dec_start, enc_start, " enc"); codec2_decode(codec2, outbuf, bits); PROFILE_SAMPLE_AND_LOG2(dec_start, " dec"); PROFILE_SAMPLE_AND_LOG2(enc_start, " enc & dec"); fwrite((char*)outbuf, sizeof(short), nsam, fout); printf("frame: %d\n", ++frame); machdep_profile_print_logged_samples(); } #ifdef DUMP dump_off("sm32f4"); #endif fclose(fin); fclose(fout); free(inbuf); free(outbuf); free(bits); codec2_destroy(codec2); } #define SPEED_TEST_SAMPLES 24000 static void c2speedtest(int mode, char inputfile[]) { struct CODEC2 *codec2; short *inbuf, *outbuf, *pinbuf; unsigned char *bits; int nsam, nbit, nframes; FILE *fin; int f, nread; codec2 = codec2_create(mode); nsam = codec2_samples_per_frame(codec2); nframes = SPEED_TEST_SAMPLES/nsam; outbuf = (short*)malloc(nsam*sizeof(short)); inbuf = (short*)malloc(SPEED_TEST_SAMPLES*sizeof(short)); nbit = codec2_bits_per_frame(codec2); bits = (unsigned char*)malloc(nbit*sizeof(char)); fin = fopen(inputfile, "rb"); if (fin == NULL) { printf("Error opening input file: %s\nTerminating....\n",inputfile); exit(1); } nread = fread(inbuf, sizeof(short), SPEED_TEST_SAMPLES, fin); if (nread != SPEED_TEST_SAMPLES) { printf("error reading %s, %d samples reqd, %d read\n", inputfile, SPEED_TEST_SAMPLES, nread); } fclose(fin); pinbuf = inbuf; for(f=0; fODR = (1 << 13); codec2_encode(codec2, bits, pinbuf); pinbuf += nsam; GPIOD->ODR &= ~(1 << 13); codec2_decode(codec2, outbuf, bits); } free(inbuf); free(outbuf); free(bits); codec2_destroy(codec2); } void gpio_init() { RCC->AHB1ENR |= RCC_AHB1ENR_GPIODEN; // enable the clock to GPIOD GPIOD->MODER = (1 << 26); // set pin 13 to be general // purpose output } int main(int argc, char *argv[]) { gpio_init(); machdep_profile_init (); printf("Starting c2demo\n"); /* File I/O test for profiling or (with #define DUMP) dumping states for optimisation and tiuning */ c2demo(CODEC2_MODE_1600, "stm_in.raw", "stm_out.raw"); printf("Starting c2 speed test\n"); /* Another test of execution speed. Look at PD13 with a oscilliscope. On time is enc, off is dec */ c2speedtest(CODEC2_MODE_1600, "stm_in.raw"); printf("Finished\n"); return 0; } codec2-1.0.1/stm32/src/dac_it.c000066400000000000000000000120471412132000500157660ustar00rootroot00000000000000/** ****************************************************************************** * @file DMA/DMA_FLASHToRAM/stm32f4xx_it.c * @author MCD Application Team * @version V1.1.0 * @date 18-January-2013 * @brief Main Interrupt Service Routines. * This file provides template for all exceptions handler and * peripherals interrupt service routine. ****************************************************************************** * @attention * *

© COPYRIGHT 2013 STMicroelectronics

* * Licensed under MCD-ST Liberty SW License Agreement V2, (the "License"); * You may not use this file except in compliance with the License. * You may obtain a copy of the License at: * * http://www.st.com/software_license_agreement_liberty_v2 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * ****************************************************************************** */ int interrupts; /* Includes ------------------------------------------------------------------*/ #include "dac_it.h" /** @addtogroup STM32F4xx_StdPeriph_Examples * @{ */ /** @addtogroup DMA_FLASHToRAM * @{ */ /* Private typedef -----------------------------------------------------------*/ /* Private define ------------------------------------------------------------*/ /* Private macro -------------------------------------------------------------*/ /* Private variables ---------------------------------------------------------*/ /* Private function prototypes -----------------------------------------------*/ /* Private functions ---------------------------------------------------------*/ /******************************************************************************/ /* Cortex-M4 Processor Exceptions Handlers */ /******************************************************************************/ /** * @brief This function handles NMI exception. * @param None * @retval None */ void NMI_Handler(void) { } /** * @brief This function handles Hard Fault exception. * @param None * @retval None */ void HardFault_Handler(void) { /* Go to infinite loop when Hard Fault exception occurs */ while (1) { } } /** * @brief This function handles Memory Manage exception. * @param None * @retval None */ void MemManage_Handler(void) { /* Go to infinite loop when Memory Manage exception occurs */ while (1) { } } /** * @brief This function handles Bus Fault exception. * @param None * @retval None */ void BusFault_Handler(void) { /* Go to infinite loop when Bus Fault exception occurs */ while (1) { } } /** * @brief This function handles Usage Fault exception. * @param None * @retval None */ void UsageFault_Handler(void) { /* Go to infinite loop when Usage Fault exception occurs */ while (1) { } } /** * @brief This function handles SVCall exception. * @param None * @retval None */ void SVC_Handler(void) { } /** * @brief This function handles Debug Monitor exception. * @param None * @retval None */ void DebugMon_Handler(void) { } /** * @brief This function handles PendSVC exception. * @param None * @retval None */ void PendSV_Handler(void) { } /** * @brief This function handles SysTick Handler. * @param None * @retval None */ void SysTick_Handler(void) { } /******************************************************************************/ /* STM32F4xx Peripherals Interrupt Handlers */ /* Add here the Interrupt Handler for the used peripheral(s) (PPP), for the */ /* available peripheral interrupt handler's name please refer to the startup */ /* file (startup_stm32f40xx.s/startup_stm32f427x.s). */ /******************************************************************************/ /** * @brief This function handles DMA Stream interrupt request. * @param None * @retval None */ void DMA1_Stream6_IRQHandler(void) { /* Transfer half empty interrupt */ if(DMA_GetITStatus(DMA1_Stream6, DMA_IT_HTIF6) != RESET) { /* fill first half from fifo */ fifo_read(DMA1_Stream6_fifo, dac_buf, DAC_BUF_SZ/2); /* Clear DMA Stream Transfer Complete interrupt pending bit */ DMA_ClearITPendingBit(DMA1_Stream6, DMA_IT_HTIF6); interrupts++; } /* Transfer complete interrupt */ if(DMA_GetITStatus(DMA1_Stream6, DMA_IT_TCIF6) != RESET) { /* fill second half from fifo */ fifo_read(DMA1_Stream6_fifo, &dac_buf[DAC_BUF_SZ/2], DAC_BUF_SZ/2); /* Clear DMA Stream Transfer Complete interrupt pending bit */ DMA_ClearITPendingBit(DMA1_Stream6, DMA_IT_TCIF6); interrupts++; } } /** * @} */ /** * @} */ /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ codec2-1.0.1/stm32/src/dac_play.c000066400000000000000000000032631412132000500163170ustar00rootroot00000000000000/*---------------------------------------------------------------------------*\ FILE........: dac_play.c AUTHOR......: David Rowe DATE CREATED: 1 June 2013 Plays a 16 kHz sample rate raw file to the STM32F4 DACs. DAC1 is connected to pin PA4, DAC2 is connected to pin PA5. \*---------------------------------------------------------------------------*/ /* Copyright (C) 2013 David Rowe All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 2.1, as published by the Free Software Foundation. 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 Lesser General Public License along with this program; if not, see . */ #include #include "stm32f4_dac.h" #include "gdb_stdio.h" #define N (5*DAC_BUF_SZ) int main(void) { short buf[N]; FILE *fplay; dac_open(DAC_FS_16KHZ, 2*N, NULL, NULL); while(1) { fplay = fopen("stm_in.raw", "rb"); if (fplay == NULL) { printf("Error opening input file: stm_in.raw\n\nTerminating....\n"); exit(1); } printf("Starting!\n"); while(fread(buf, sizeof(short), N, fplay) == N) { while(dac1_write(buf, N, 0) == -1); while(dac2_write(buf, N, 0) == -1); } printf("Finished!\n"); fclose(fplay); } /* let FIFO empty */ while(1); } codec2-1.0.1/stm32/src/dac_ut.c000066400000000000000000000033661412132000500160060ustar00rootroot00000000000000/*---------------------------------------------------------------------------*\ FILE........: dac_ut.c AUTHOR......: David Rowe DATE CREATED: May 31 2013 Plays a 500 Hz sine wave sampled at 16 kHz out of PA5 on a Discovery board, or the speaker output of the SM1000. \*---------------------------------------------------------------------------*/ /* Copyright (C) 2013 David Rowe All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 2.1, as published by the Free Software Foundation. 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 Lesser General Public License along with this program; if not, see . */ #include #include "stm32f4_dac.h" #define SINE_SAMPLES 32 /* 32 sample sine wave which at Fs=16kHz will be 500Hz. Note samples are 16 bit 2's complement, the DAC driver convertsto 12 bit unsigned. */ short aSine[] = { -16, 6384, 12528, 18192, 23200, 27232, 30256, 32128, 32752, 32128, 30256, 27232, 23152, 18192, 12528, 6384, -16, -6416, -12560, -18224, -23184, -27264, -30288, -32160, -32768, -32160, -30288, -27264, -23184, -18224, -12560, -6416 }; int main(void) { dac_open(DAC_FS_16KHZ, 4*DAC_BUF_SZ, 0, 0); while (1) { /* keep DAC FIFOs topped up */ dac1_write((short*)aSine, SINE_SAMPLES, 0); dac2_write((short*)aSine, SINE_SAMPLES, 0); } } codec2-1.0.1/stm32/src/dac_ut_fast.c000066400000000000000000000022341412132000500170140ustar00rootroot00000000000000/*---------------------------------------------------------------------------*\ FILE........: dac_ut_fast.c AUTHOR......: David Rowe DATE CREATED: Sep 2015 Plays a Fs/4 sine wave sampled out of PA5 on a Discovery board, used for testing high speed DAC operation, e.g. for IF/RF generation. \*---------------------------------------------------------------------------*/ /* Copyright (C) 2015 David Rowe All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 2.1, as published by the Free Software Foundation. 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 Lesser General Public License along with this program; if not, see . */ #include #include "stm32f4_dac.h" int main(void) { dac_open(4*DAC_BUF_SZ); while (1); } codec2-1.0.1/stm32/src/debugblinky.c000066400000000000000000000035111412132000500170360ustar00rootroot00000000000000/*---------------------------------------------------------------------------*\ FILE........: debugblinky.c AUTHOR......: David Rowe DATE CREATED: 12 August 2014 Configures GPIO pins used for debug blinkies \*---------------------------------------------------------------------------*/ /* Copyright (C) 2014 David Rowe All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 2.1, as published by the Free Software Foundation. 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 Lesser General Public License along with this program; if not, see . */ #include "stm32f4xx.h" void init_debug_blinky(void) { GPIO_InitTypeDef GPIO_InitStruct; /* PE0-3 used to indicate activity, PE4-5 for SM2000 +12V rail switching */ RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOE, ENABLE); GPIO_InitStruct.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_3 | GPIO_Pin_4 | GPIO_Pin_5; GPIO_InitStruct.GPIO_Mode = GPIO_Mode_OUT; GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStruct.GPIO_OType = GPIO_OType_PP; GPIO_InitStruct.GPIO_PuPd = GPIO_PuPd_NOPULL; GPIO_Init(GPIOE, &GPIO_InitStruct); } /* SM2000: 0 for +12V RX power, 1 for +12V TX power */ void txrx_12V(int state) { if (state) { GPIOE->ODR &= ~(1 << 5); /* +12VRXENB off */ GPIOE->ODR |= (1 << 4); /* +12VTXENB on */ } else { GPIOE->ODR &= ~(1 << 4); /* +12VTXENB off */ GPIOE->ODR |= (1 << 5); /* +12VRXENB on */ } } codec2-1.0.1/stm32/src/fast_dac_ut.c000066400000000000000000000073421412132000500170210ustar00rootroot00000000000000/*---------------------------------------------------------------------------*\ FILE........: dac_ut.c AUTHOR......: David Rowe DATE CREATED: May 31 2013 Plays a 500 Hz sine wave sampled at 16 kHz out of PA5 on a Discovery board, or the speaker output of the SM1000. \*---------------------------------------------------------------------------*/ /* Copyright (C) 2013 David Rowe All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 2.1, as published by the Free Software Foundation. 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 Lesser General Public License along with this program; if not, see . */ #include #include #include "stm32f4_dacduc.h" #include "iir_duc.h" #include "stm32f4xx.h" #include #include #include "gdb_stdio.h" #include "comp.h" #include //#include "gmsk_test_dat_m4.h" #define SINE_SAMPLES 32 /* 32 sample sine wave which at Fs=16kHz will be 500Hz. Note samples are 16 bit 2's complement, the DAC driver convertsto 12 bit unsigned. */ short aWave[] = {4095,0,4095,0,4095,0,4095,0,4095,0,4095,0,4095,0,4095,0,4095,0,4095,0,4095,0,4095,0,4095,0,4095,0,4095,0,4095,0, 4095,0,4095,0,4095,0,4095,0,4095,0,4095,0,4095,0,4095,0,4095,0,4095,0,4095,0,4095,0,4095,0,4095,0,4095,0,4095,0,}; short aSine[] = {1600, 3200, 1601, 0, 1600, 3200, 1601, 0, 1600, 3200, 1601, 0, 1600, 3200, 1601, 0, 1600, 3200, 1601, 0, 1600, 3200, 1601, 0, 1600, 3200, 1600, 0, 1600, 3200, 1601, 0 }; //Sine at Fs/4 float f4sine[] = {1,0,-1,0,1,0,-1,0,1,0,-1,0,1,0,-1,0,1,0,-1,0,1,0,-1,0,1,0,-1,0,1,0,-1,0,1,0,-1,0,1,0,-1,0,1,0,-1,0,1,0,-1,0, 1,0,-1,0,1,0,-1,0,1,0,-1,0,1,0,-1,0,1,0,-1,0,1,0,-1,0,1,0,-1,0,1,0,-1,0,1,0,-1,0,1,0,-1,0,1,0,-1,0,1,0,-1,0, 1,0,-1,0,1,0,-1,0,1,0,-1,0,1,0,-1,0,1,0,-1,0,1,0,-1,0,1,0,-1,0,1,0,-1,0,1,0,-1,0,1,0,-1,0,1,0,-1,0,1,0,-1,0, 1,0,-1,0,1,0,-1,0,1,0,-1,0,1,0,-1,0,1,0,-1,0,1,0,-1,0,1,0,-1,0,1,0,-1,0,}; //Intermediate 80k real before tx int tx_imm[DUC_N]; //Complex input to chain #define COMP_IN_SZ (DUC_48N) COMP comp_in[COMP_IN_SZ]; unsigned short outbuf[DAC_DUC_BUF_SZ]; void setup_timer() { RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE); TIM_TimeBaseInitTypeDef timerInitStructure; timerInitStructure.TIM_Prescaler = 84; timerInitStructure.TIM_CounterMode = TIM_CounterMode_Up; timerInitStructure.TIM_Period = 0x8FFFFFFF; timerInitStructure.TIM_ClockDivision = 0; timerInitStructure.TIM_RepetitionCounter = 0; TIM_TimeBaseInit(TIM2, &timerInitStructure); TIM_Cmd(TIM2, ENABLE); } int main(void) { int tstart,tup,tend,cyc,i; memset((void*)outbuf,0,sizeof(short)*DAC_DUC_BUF_SZ); setup_timer(); fast_dac_open(2*DAC_DUC_BUF_SZ,2*DAC_BUF_SZ); tstart=tend=tup=cyc=0; //Initalize complex input with signal at zero for(i=0;iGMSK_TEST_LEN) // cyc=0; if(cyc%10000==0){ printf("48c80r takes %d uSecs\n",tup-tstart); printf("iir upconvert takes %d uSecs\n",tend-tup); } tstart = TIM_GetCounter(TIM2); upconv_48c_80r(comp_in,tx_imm,1); tup = TIM_GetCounter(TIM2); iir_upconv_fixp(tx_imm,outbuf); tend = TIM_GetCounter(TIM2); //Sit and spin until we can get more samples into the dac while(dac1_write((short*)outbuf,DAC_DUC_BUF_SZ)<0); } } codec2-1.0.1/stm32/src/fdmdv_dump_rt.c000066400000000000000000000112601412132000500173710ustar00rootroot00000000000000/*---------------------------------------------------------------------------*\ FILE........: fdmdv_dump_rt.c AUTHOR......: David Rowe DATE CREATED: 9 Sep 2014 Runs the fdmdv demod in real time for a few seconds then dumps some modem info to a text file for plotting in Octave. Way to verify the "from radio" SM1000 hardware, ADC, and demod on the SM1000. Requires FreeDV signal to be sent to CN6 of SM1000. Octave: load scatter.txt l=length(scatter) plot(scatter(:,1:2:l),scatter(:,2:2:l),'+') \*---------------------------------------------------------------------------*/ /* Copyright (C) 2014 David Rowe All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 2.1, as published by the Free Software Foundation. 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 Lesser General Public License along with this program; if not, see . */ #include #include #include #include #include #include #include "stm32f4_adc.h" #include "stm32f4_dac.h" #include "freedv_api.h" #include "codec2_fdmdv.h" #include "sm1000_leds_switches.h" #include "gdb_stdio.h" #ifdef __EMBEDDED__ #define printf gdb_stdio_printf #define fprintf gdb_stdio_fprintf #define fopen gdb_stdio_fopen #define fclose gdb_stdio_fclose #define fread gdb_stdio_fread #define fwrite gdb_stdio_fwrite #endif #define FREEDV_NSAMPLES_16K (2*FREEDV_NSAMPLES) #define START_LOG_FRAMES 100 #define LOG_FRAMES 10 #define STOP_LOG_FRAMES (START_LOG_FRAMES+LOG_FRAMES) #define NC 16 int main(void) { struct freedv *f; short adc16k[FDMDV_OS_TAPS_16K+FREEDV_NSAMPLES_16K]; short dac16k[FREEDV_NSAMPLES_16K]; short adc8k[FREEDV_NSAMPLES]; short dac8k[FDMDV_OS_TAPS_8K+FREEDV_NSAMPLES]; int nin, nout, i, j, frames, lines; COMP *symb, *psymb; /* init all the drivers for various peripherals */ sm1000_leds_switches_init(); dac_open(4*DAC_BUF_SZ); adc_open(4*ADC_BUF_SZ); f = freedv_open(FREEDV_MODE_1600); /* clear filter memories */ for(i=0; itotal_bit_errors = 0; if (adc1_read(&adc16k[FDMDV_OS_TAPS_16K], 2*nin) == 0) { GPIOE->ODR = (1 << 3); fdmdv_16_to_8_short(adc8k, &adc16k[FDMDV_OS_TAPS_16K], nin); nout = freedv_rx(f, &dac8k[FDMDV_OS_TAPS_8K], adc8k); fdmdv_8_to_16_short(dac16k, &dac8k[FDMDV_OS_TAPS_8K], nout); dac2_write(dac16k, 2*nout); led_ptt(0); led_rt(f->fdmdv_stats.sync); led_err(f->total_bit_errors); GPIOE->ODR &= ~(1 << 3); #define TMP1 #ifdef TMP1 if (f->fdmdv_stats.sync) frames++; if ((frames >= START_LOG_FRAMES) && (lines < LOG_FRAMES)) { for(i=0; i<=f->fdmdv_stats.Nc; i++) psymb[i] = f->fdmdv_stats.rx_symbols[i]; psymb += (f->fdmdv_stats.Nc+1); lines++; } if (frames >= STOP_LOG_FRAMES) { FILE *ft = fopen("scatter.txt", "wt"); assert(ft != NULL); printf("Writing scatter file....\n"); for(j=0; jfdmdv_stats.Nc; i++) { fprintf(ft, "%f\t%f\t", (double)symb[j*(f->fdmdv_stats.Nc+1)+i].real, (double)symb[j*(f->fdmdv_stats.Nc+1)+i].imag); printf("line: %d\n", j); } fprintf(ft, "\n"); } fclose(ft); printf("SNR = %3.2f dB\nfinished!\n", (double)f->fdmdv_stats.snr_est); while(1); } #endif } } /* while(1) ... */ } codec2-1.0.1/stm32/src/fdmdv_profile.c000066400000000000000000000115651412132000500173670ustar00rootroot00000000000000/*---------------------------------------------------------------------------*\ FILE........: fdmdv_profile.c AUTHOR......: David Rowe DATE CREATED: 18 July 2014 Profiling FDMDV modem operation on the STM32F4. \*---------------------------------------------------------------------------*/ /* Copyright (C) 2014 David Rowe All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 2.1, as published by the Free Software Foundation. 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 Lesser General Public License along with this program; if not, see . */ #include #include #include #include #include #include "stm32f4xx_conf.h" #include "stm32f4xx.h" #include "gdb_stdio.h" #include "codec2_fdmdv.h" #include "dump.h" #include "sine.h" #include "machdep.h" #ifdef __EMBEDDED__ #define printf gdb_stdio_printf #define fopen gdb_stdio_fopen #define fclose gdb_stdio_fclose #define fread gdb_stdio_fread #define fwrite gdb_stdio_fwrite #endif #define TEST_FRAMES 25 #define CHANNEL_BUF_SIZE (10*FDMDV_NOM_SAMPLES_PER_FRAME) static int channel_count = 0; static COMP channel[CHANNEL_BUF_SIZE]; static void channel_in(COMP tx_fdm[], int nout) { int i; /* add M_PITCH tx samples to end of buffer */ assert((channel_count + nout) < CHANNEL_BUF_SIZE); for(i=0; i Refer
* \link arm_fft_bin_example_f32.c \endlink * */ /** \example arm_fft_bin_example_f32.c */ #include "arm_math.h" #include "gdb_stdio.h" #include "machdep.h" #include "kiss_fft.h" #define TEST_LENGTH_SAMPLES 1024 /* ------------------------------------------------------------------- * External Input and Output buffer Declarations for FFT Bin Example * ------------------------------------------------------------------- */ extern float32_t testInput_f32_10khz[2048]; static float32_t testOutput[TEST_LENGTH_SAMPLES/2]; static float32_t kiss_complex_out[TEST_LENGTH_SAMPLES]; /* ------------------------------------------------------------------ * Global variables for FFT Bin Example * ------------------------------------------------------------------- */ uint32_t fftSize = TEST_LENGTH_SAMPLES/2; uint32_t ifftFlag = 0; uint32_t doBitReverse = 1; /* Reference index at which max energy of bin ocuurs */ uint32_t refIndex = 213, testIndex = 0; /* ---------------------------------------------------------------------- * Max magnitude FFT Bin test * ------------------------------------------------------------------- */ void SystemInit(void); int main(void) { arm_status status; arm_cfft_radix2_instance_f32 S; float32_t maxValue; unsigned int fft_start, kiss_fft_start; kiss_fft_cfg fft_fwd_cfg; SystemInit(); machdep_profile_init(); fft_fwd_cfg = kiss_fft_alloc(fftSize, 0, NULL, NULL); kiss_fft_start = machdep_profile_sample(); kiss_fft(fft_fwd_cfg, (kiss_fft_cpx *)testInput_f32_10khz, (kiss_fft_cpx *)kiss_complex_out); machdep_profile_sample_and_log(kiss_fft_start, " kiss_fft"); status = ARM_MATH_SUCCESS; /* Initialize the CFFT/CIFFT module */ status = arm_cfft_radix2_init_f32(&S, fftSize, ifftFlag, doBitReverse); /* Process the data through the CFFT/CIFFT module */ fft_start = machdep_profile_sample(); arm_cfft_radix2_f32(&S, testInput_f32_10khz); machdep_profile_sample_and_log(fft_start, " fft"); machdep_profile_print_logged_samples(); /* Process the data through the Complex Magnitude Module for calculating the magnitude at each bin */ arm_cmplx_mag_f32(testInput_f32_10khz, testOutput,fftSize); /* Calculates maxValue and returns corresponding BIN value */ arm_max_f32(testOutput, fftSize, &maxValue, &testIndex); if(testIndex != refIndex) { status = ARM_MATH_TEST_FAILURE; } /* ---------------------------------------------------------------------- ** Loop here if the signals fail the PASS check. ** This denotes a test failure ** ------------------------------------------------------------------- */ if( status != ARM_MATH_SUCCESS) { while(1); } while(1); /* main function does not return */ return 0; } /** \endlink */ /* ---------------------------------------------------------------------- Test Input signal contains 10KHz signal + Uniformly distributed white noise ** ------------------------------------------------------------------- */ float32_t testInput_f32_10khz[2048] = { -0.865129623056441, 0.000000000000000, -2.655020678073846, 0.000000000000000, 0.600664612949661, 0.000000000000000, 0.080378093886515, 0.000000000000000, -2.899160484012034, 0.000000000000000, 2.563004262857762, 0.000000000000000, 3.078328403304206, 0.000000000000000, 0.105906778385130, 0.000000000000000, 0.048366940168201, 0.000000000000000, -0.145696461188734, 0.000000000000000, -0.023417155362879, 0.000000000000000, 2.127729174988954, 0.000000000000000, -1.176633086028377, 0.000000000000000, 3.690223557991855, 0.000000000000000, -0.622791766173194, 0.000000000000000, 0.722837373872203, 0.000000000000000, 2.739754205367484, 0.000000000000000, -0.062610410524552, 0.000000000000000, -0.891296810967338, 0.000000000000000, -1.845872258871811, 0.000000000000000, 1.195039415434387, 0.000000000000000, -2.177388969045026, 0.000000000000000, 1.078649103637905, 0.000000000000000, 2.570976050490193, 0.000000000000000, -1.383551403404574, 0.000000000000000, 2.392141424058873, 0.000000000000000, 2.858002843205065, 0.000000000000000, -3.682433899725536, 0.000000000000000, -3.488146646451150, 0.000000000000000, 1.323468578888120, 0.000000000000000, -0.099771155430726, 0.000000000000000, 1.561168082500454, 0.000000000000000, 1.025026795103179, 0.000000000000000, 0.928841900171200, 0.000000000000000, 2.930499509864950, 0.000000000000000, 2.013349089766430, 0.000000000000000, 2.381676148486737, 0.000000000000000, -3.081062307950236, 0.000000000000000, -0.389579115537544, 0.000000000000000, 0.181540149166620, 0.000000000000000, -2.601953341353208, 0.000000000000000, 0.333435137783218, 0.000000000000000, -2.812945856162965, 0.000000000000000, 2.649109640172910, 0.000000000000000, -1.003963025744654, 0.000000000000000, 1.552460768755035, 0.000000000000000, 0.088641345335247, 0.000000000000000, -2.519951327113426, 0.000000000000000, -4.341348988610527, 0.000000000000000, 0.557772429359965, 0.000000000000000, -1.671267412948494, 0.000000000000000, 0.733951350960387, 0.000000000000000, 0.409263788034864, 0.000000000000000, 3.566033071952806, 0.000000000000000, 1.882565173848352, 0.000000000000000, -1.106017073793287, 0.000000000000000, 0.154456720778718, 0.000000000000000, -2.513205795512153, 0.000000000000000, 0.310978660939421, 0.000000000000000, 0.579706500111723, 0.000000000000000, 0.000086383683251, 0.000000000000000, -1.311866980897721, 0.000000000000000, 1.840007477574986, 0.000000000000000, -3.253005768451345, 0.000000000000000, 1.462584328739432, 0.000000000000000, 1.610103610851738, 0.000000000000000, 0.761914676858907, 0.000000000000000, 0.974541361089834, 0.000000000000000, 0.686845845885983, 0.000000000000000, 1.849153122025191, 0.000000000000000, 0.787800410401453, 0.000000000000000, -1.187438909666279, 0.000000000000000, -0.754937911044720, 0.000000000000000, 0.084373858395232, 0.000000000000000, -2.600269011710521, 0.000000000000000, -0.962982842142644, 0.000000000000000, -0.369328108540868, 0.000000000000000, 0.810791418361879, 0.000000000000000, 3.587016488699641, 0.000000000000000, -0.520776145083723, 0.000000000000000, 0.640249919627884, 0.000000000000000, 1.103122489464969, 0.000000000000000, 2.231779881455556, 0.000000000000000, -1.308035392685241, 0.000000000000000, 0.424070304330106, 0.000000000000000, -0.200383932651189, 0.000000000000000, -2.365526783356541, 0.000000000000000, -0.989114757436628, 0.000000000000000, 2.770807688959777, 0.000000000000000, -0.444172737462307, 0.000000000000000, 0.079760979374078, 0.000000000000000, -0.005199118412183, 0.000000000000000, -0.664712668309527, 0.000000000000000, -0.624171857561896, 0.000000000000000, 0.537306979007338, 0.000000000000000, -2.575955675497642, 0.000000000000000, 1.562363235756780, 0.000000000000000, 1.814069369848895, 0.000000000000000, -1.293428583392509, 0.000000000000000, -1.026188449495686, 0.000000000000000, -2.981771815588717, 0.000000000000000, -4.223468103075124, 0.000000000000000, 2.672674782004045, 0.000000000000000, -0.856096801117735, 0.000000000000000, 0.048517345512563, 0.000000000000000, -0.026860721136222, 0.000000000000000, 0.392932277758187, 0.000000000000000, -1.331740855093099, 0.000000000000000, -1.894292129477081, 0.000000000000000, -1.425006468460681, 0.000000000000000, -2.721772427617057, 0.000000000000000, -1.616831100216806, 0.000000000000000, 3.551177651488947, 0.000000000000000, -0.069685667896087, 0.000000000000000, -3.134634907409102, 0.000000000000000, -0.263627598944639, 0.000000000000000, -1.650469945991350, 0.000000000000000, -2.203580339374399, 0.000000000000000, -0.872203246123242, 0.000000000000000, 1.230782812607287, 0.000000000000000, 0.257288860093291, 0.000000000000000, 1.989083106173137, 0.000000000000000, -1.985638729453261, 0.000000000000000, -1.416185105842892, 0.000000000000000, -1.131097688325772, 0.000000000000000, -2.245130805416057, 0.000000000000000, -1.938873996219074, 0.000000000000000, 2.043608361562645, 0.000000000000000, -0.583727989880841, 0.000000000000000, -1.785266378212929, 0.000000000000000, 1.961457586224753, 0.000000000000000, 1.139400099963223, 0.000000000000000, -1.979519343363991, 0.000000000000000, 2.003023322818429, 0.000000000000000, 0.229004069076829, 0.000000000000000, 3.452808862193135, 0.000000000000000, 2.882273808365857, 0.000000000000000, -1.549450501844438, 0.000000000000000, -3.283872089931876, 0.000000000000000, -0.327025884099064, 0.000000000000000, -0.054979977136430, 0.000000000000000, -1.192280531479012, 0.000000000000000, 0.645539328365578, 0.000000000000000, 2.300832863404618, 0.000000000000000, -1.092951789535240, 0.000000000000000, -1.017368249363773, 0.000000000000000, -0.142673056169787, 0.000000000000000, 0.831073544881250, 0.000000000000000, -2.314612531587064, 0.000000000000000, -2.221456299106321, 0.000000000000000, 0.460261143885226, 0.000000000000000, 0.050585301888595, 0.000000000000000, 0.364373329183988, 0.000000000000000, -1.685956552069538, 0.000000000000000, 0.050664512351055, 0.000000000000000, -0.193355783902718, 0.000000000000000, -0.158660446046828, 0.000000000000000, 2.394156453841953, 0.000000000000000, -1.562965718554525, 0.000000000000000, -2.199750600869900, 0.000000000000000, 1.544984022381773, 0.000000000000000, -1.988307216807315, 0.000000000000000, -0.628240722541046, 0.000000000000000, -1.436235771505429, 0.000000000000000, 1.677013691147313, 0.000000000000000, 1.600741781678228, 0.000000000000000, -0.757380959134706, 0.000000000000000, -4.784797439515566, 0.000000000000000, 0.265121462834569, 0.000000000000000, 3.862029485934378, 0.000000000000000, 2.386823577249430, 0.000000000000000, -3.655779745436893, 0.000000000000000, -0.763541621368016, 0.000000000000000, -1.182140388432962, 0.000000000000000, -1.349106114858063, 0.000000000000000, -2.287533624396759, 0.000000000000000, -0.028603745188423, 0.000000000000000, -1.353580755934427, 0.000000000000000, 0.461602380352937, 0.000000000000000, -0.059599055078928, 0.000000000000000, -0.929946734342228, 0.000000000000000, 0.065773089295561, 0.000000000000000, 1.106565863102982, 0.000000000000000, 4.719295086373593, 0.000000000000000, -2.108377703544395, 0.000000000000000, -2.226393620240159, 0.000000000000000, 1.375668397437521, 0.000000000000000, -0.960772428525443, 0.000000000000000, -2.156313465390571, 0.000000000000000, 1.126060012375311, 0.000000000000000, 2.756485137030720, 0.000000000000000, 0.739639690862600, 0.000000000000000, 3.914769510295006, 0.000000000000000, 1.685232785586675, 0.000000000000000, 4.079058040970612, 0.000000000000000, -1.174598301660513, 0.000000000000000, -2.885776587275580, 0.000000000000000, -0.241073635188767, 0.000000000000000, 3.080489872502403, 0.000000000000000, -2.051244183999421, 0.000000000000000, 0.664330486845139, 0.000000000000000, -1.697798999370016, 0.000000000000000, 1.452369423649782, 0.000000000000000, -1.523532831019280, 0.000000000000000, 0.171981186587481, 0.000000000000000, -4.685274721583927, 0.000000000000000, -1.336175835319380, 0.000000000000000, 1.419070770428945, 0.000000000000000, -0.035791601713475, 0.000000000000000, 2.291937971632081, 0.000000000000000, -1.962559313450293, 0.000000000000000, -4.831595589339301, 0.000000000000000, -1.857055284000925, 0.000000000000000, 2.606271522635512, 0.000000000000000, -0.576447978738030, 0.000000000000000, 0.082299166967720, 0.000000000000000, 1.888399453494614, 0.000000000000000, -3.564705298046079, 0.000000000000000, -0.939357831083889, 0.000000000000000, -1.903578203697778, 0.000000000000000, -2.642492215447250, 0.000000000000000, -0.182990405251017, 0.000000000000000, 3.742026478011174, 0.000000000000000, 0.104295803798333, 0.000000000000000, 1.848678195370347, 0.000000000000000, -1.887384346896369, 0.000000000000000, 0.365048973046045, 0.000000000000000, -0.889638010354219, 0.000000000000000, 1.173877118428863, 0.000000000000000, -1.178562827540109, 0.000000000000000, 0.610271645685184, 0.000000000000000, 1.831284815697871, 0.000000000000000, 0.449575390102283, 0.000000000000000, 1.597171905253443, 0.000000000000000, 3.918574971904773, 0.000000000000000, 0.868104027970404, 0.000000000000000, 0.582643134746494, 0.000000000000000, 2.321256382353331, 0.000000000000000, -0.238118642223180, 0.000000000000000, -2.890287868054370, 0.000000000000000, 0.970995414625622, 0.000000000000000, 0.666137930891283, 0.000000000000000, -0.202435718709502, 0.000000000000000, 2.057930200518194, 0.000000000000000, 3.120583443719949, 0.000000000000000, -0.863945271701041, 0.000000000000000, 0.906848893874630, 0.000000000000000, -1.434124930222570, 0.000000000000000, 0.754659384848783, 0.000000000000000, -5.224154442713778, 0.000000000000000, 2.330229744098967, 0.000000000000000, 1.113946320164698, 0.000000000000000, 0.523324920322840, 0.000000000000000, 1.750740911548348, 0.000000000000000, -0.899333972913577, 0.000000000000000, 0.228705845203506, 0.000000000000000, -1.934782624767648, 0.000000000000000, -3.508386237231303, 0.000000000000000, -2.107108523073510, 0.000000000000000, 0.380587645474815, 0.000000000000000, -0.476200877183279, 0.000000000000000, -2.172086712642198, 0.000000000000000, 1.795372535780299, 0.000000000000000, -2.100318983391055, 0.000000000000000, -0.022571122461405, 0.000000000000000, 0.674514020010955, 0.000000000000000, -0.148872569390857, 0.000000000000000, 0.298175890592737, 0.000000000000000, -1.134244492493590, 0.000000000000000, -3.146848422289455, 0.000000000000000, -1.357950199087602, 0.000000000000000, 0.667362732020878, 0.000000000000000, -3.119397998316724, 0.000000000000000, -1.189341126297637, 0.000000000000000, -1.532744386856668, 0.000000000000000, -1.672972484202534, 0.000000000000000, -2.042283373871558, 0.000000000000000, -1.479481547595924, 0.000000000000000, -0.002668662875396, 0.000000000000000, 0.262737760129546, 0.000000000000000, 2.734456080621830, 0.000000000000000, -0.671945925075102, 0.000000000000000, -3.735078262179111, 0.000000000000000, -0.161705013319883, 0.000000000000000, 0.748963512361001, 0.000000000000000, 1.128046374367600, 0.000000000000000, 0.649651335592966, 0.000000000000000, 1.880020215025867, 0.000000000000000, -1.095632293842306, 0.000000000000000, 1.197764876160487, 0.000000000000000, 0.323646656252985, 0.000000000000000, -1.655502751114502, 0.000000000000000, 3.666399062961496, 0.000000000000000, -0.334060899735197, 0.000000000000000, -2.119056978738397, 0.000000000000000, 3.721375117275012, 0.000000000000000, 0.044874186872307, 0.000000000000000, -2.733053897593234, 0.000000000000000, 1.590700278891042, 0.000000000000000, 3.215711772781902, 0.000000000000000, -1.792085012843801, 0.000000000000000, -0.405797188885475, 0.000000000000000, -0.628080020080892, 0.000000000000000, -1.831815840843960, 0.000000000000000, 2.973656862522834, 0.000000000000000, -0.212032655138417, 0.000000000000000, 0.372437389437234, 0.000000000000000, -1.614030579023492, 0.000000000000000, -0.704900996358698, 0.000000000000000, 1.123700273452105, 0.000000000000000, -0.136371848130819, 0.000000000000000, 3.020284357635585, 0.000000000000000, -0.550211350877649, 0.000000000000000, 5.101256236381711, 0.000000000000000, 3.367051512192333, 0.000000000000000, -4.385131946669234, 0.000000000000000, -3.967303337694391, 0.000000000000000, -0.965894936640022, 0.000000000000000, 0.328366945264681, 0.000000000000000, 0.199041562924914, 0.000000000000000, 1.067681999025495, 0.000000000000000, -1.939516091697170, 0.000000000000000, -1.092980954328824, 0.000000000000000, 0.273786079368066, 0.000000000000000, -0.040928322190265, 0.000000000000000, -0.118368078577437, 0.000000000000000, 1.766589628899997, 0.000000000000000, 1.738321311635393, 0.000000000000000, -2.895012794321649, 0.000000000000000, 1.213521771395142, 0.000000000000000, 0.922971726633985, 0.000000000000000, 1.091516563636489, 0.000000000000000, 3.226378465469620, 0.000000000000000, 1.149169778666974, 0.000000000000000, -1.695986327709386, 0.000000000000000, -0.974803077355813, 0.000000000000000, -4.898035507513607, 0.000000000000000, 1.622719302889447, 0.000000000000000, 0.583891313586579, 0.000000000000000, -1.677182424094957, 0.000000000000000, -1.915633132814685, 0.000000000000000, -1.980150370851616, 0.000000000000000, 0.604538269404190, 0.000000000000000, 0.939862406149365, 0.000000000000000, -1.266939874246416, 0.000000000000000, -1.494771249200063, 0.000000000000000, 0.278042784093988, 0.000000000000000, 0.326627416008916, 0.000000000000000, -1.914530157643303, 0.000000000000000, 1.908947721862196, 0.000000000000000, 0.531819285694044, 0.000000000000000, 3.056856632319658, 0.000000000000000, -0.389241827774643, 0.000000000000000, -2.418606606780420, 0.000000000000000, 0.915299238878703, 0.000000000000000, -0.098774174295283, 0.000000000000000, -0.906199428444304, 0.000000000000000, 0.316716451217743, 0.000000000000000, -4.367700643578311, 0.000000000000000, 1.491687997515293, 0.000000000000000, -1.962381126288365, 0.000000000000000, -0.700829196527045, 0.000000000000000, 3.028958963615630, 0.000000000000000, -2.313461067462598, 0.000000000000000, -1.431933239886712, 0.000000000000000, -0.831153039725342, 0.000000000000000, 3.939495598250743, 0.000000000000000, 0.342974753984771, 0.000000000000000, -2.768330763002974, 0.000000000000000, -2.744010370019008, 0.000000000000000, 3.821352685212561, 0.000000000000000, 4.551065271455856, 0.000000000000000, 3.270136437041298, 0.000000000000000, -3.188028411950982, 0.000000000000000, -0.777075012417436, 0.000000000000000, 0.097110650265216, 0.000000000000000, 1.221216137608812, 0.000000000000000, -1.325824244541822, 0.000000000000000, -2.655296734084113, 0.000000000000000, -1.074792144885704, 0.000000000000000, 2.770401584439407, 0.000000000000000, 5.240270645610543, 0.000000000000000, 0.108576672208892, 0.000000000000000, -1.209394350650142, 0.000000000000000, 1.403344353838785, 0.000000000000000, -0.299032904177277, 0.000000000000000, 4.074959450638227, 0.000000000000000, 1.718727473952107, 0.000000000000000, -3.061349227080806, 0.000000000000000, -1.158596888541269, 0.000000000000000, 3.381858904662625, 0.000000000000000, 0.957339964054052, 0.000000000000000, 0.179900074904899, 0.000000000000000, -3.909641902506081, 0.000000000000000, 0.805717289408649, 0.000000000000000, 2.047413793928261, 0.000000000000000, -1.273580225826614, 0.000000000000000, -2.681359186869971, 0.000000000000000, -0.721241345822093, 0.000000000000000, -1.613090681569475, 0.000000000000000, 0.463138804815955, 0.000000000000000, 0.377223507800954, 0.000000000000000, 2.046550684968141, 0.000000000000000, 0.178508732797712, 0.000000000000000, -0.477815330358845, 0.000000000000000, 3.763355908332053, 0.000000000000000, 1.300430303035163, 0.000000000000000, -0.214625793857725, 0.000000000000000, 1.343267891864081, 0.000000000000000, -0.340007682433245, 0.000000000000000, 2.062703194680005, 0.000000000000000, 0.042032160234235, 0.000000000000000, 0.643732569732250, 0.000000000000000, -1.913502543857589, 0.000000000000000, 3.771340762937158, 0.000000000000000, 1.050024807363386, 0.000000000000000, -4.440489488592649, 0.000000000000000, 0.444904302066643, 0.000000000000000, 2.898702265650048, 0.000000000000000, 1.953232980548558, 0.000000000000000, 2.761564952735079, 0.000000000000000, 1.963537633260397, 0.000000000000000, -2.168858472916215, 0.000000000000000, -4.116235357699841, 0.000000000000000, 4.183678271896528, 0.000000000000000, 0.600422284944681, 0.000000000000000, -0.659352647255126, 0.000000000000000, -0.993127338218109, 0.000000000000000, -2.463571314945747, 0.000000000000000, 0.937720951545881, 0.000000000000000, -3.098957308429730, 0.000000000000000, -2.354719140045463, 0.000000000000000, -0.417285119323949, 0.000000000000000, 2.187974075975947, 0.000000000000000, 1.101468905172585, 0.000000000000000, -3.185800678152109, 0.000000000000000, 2.357534709345083, 0.000000000000000, 0.246645606729407, 0.000000000000000, 4.440905650784504, 0.000000000000000, -2.236807716637866, 0.000000000000000, -2.171481518317550, 0.000000000000000, -2.029571795072690, 0.000000000000000, 0.135599790431348, 0.000000000000000, -1.277965265520191, 0.000000000000000, -1.927976233157507, 0.000000000000000, -5.434492783745394, 0.000000000000000, -2.026375829312657, 0.000000000000000, 1.009666016819321, 0.000000000000000, 0.238549782367247, 0.000000000000000, -0.516403923971309, 0.000000000000000, -0.933977817429352, 0.000000000000000, 0.155803015935614, 0.000000000000000, -0.396194809997929, 0.000000000000000, -0.915178100253214, 0.000000000000000, 0.666329367985015, 0.000000000000000, -1.517991149945785, 0.000000000000000, 0.458266744144822, 0.000000000000000, -1.242845974381418, 0.000000000000000, 0.057914823556477, 0.000000000000000, 0.994101307476875, 0.000000000000000, -2.387209849199325, 0.000000000000000, 0.459297048883826, 0.000000000000000, 0.227711405683905, 0.000000000000000, 0.030255073506117, 0.000000000000000, -1.323361608181337, 0.000000000000000, -4.650244457426706, 0.000000000000000, 0.062908579526021, 0.000000000000000, 3.462831028244432, 0.000000000000000, 1.303608183314856, 0.000000000000000, -1.430415193881612, 0.000000000000000, -1.672886118942142, 0.000000000000000, 0.992890699210099, 0.000000000000000, -0.160814531784247, 0.000000000000000, -1.238132939350430, 0.000000000000000, -0.589223271459376, 0.000000000000000, 2.326363810561534, 0.000000000000000, -4.433789496230785, 0.000000000000000, 1.664686987538929, 0.000000000000000, -2.366128834617921, 0.000000000000000, 1.212421570743837, 0.000000000000000, -4.847914267690055, 0.000000000000000, 0.228485221404712, 0.000000000000000, 0.466139765470957, 0.000000000000000, -1.344202776943546, 0.000000000000000, -1.012053673330574, 0.000000000000000, -2.844980626424742, 0.000000000000000, -1.552703722026340, 0.000000000000000, -1.448830983885038, 0.000000000000000, 0.127010756753980, 0.000000000000000, -1.667188263752299, 0.000000000000000, 3.424818052085100, 0.000000000000000, 0.956291135453840, 0.000000000000000, -3.725533331754662, 0.000000000000000, -1.584534272368832, 0.000000000000000, -1.654148210472472, 0.000000000000000, 0.701610500675698, 0.000000000000000, 0.164954538683927, 0.000000000000000, -0.739260064712987, 0.000000000000000, -2.167324026090101, 0.000000000000000, -0.310240491909496, 0.000000000000000, -2.281790349106906, 0.000000000000000, 1.719655331305361, 0.000000000000000, -2.997005923606441, 0.000000000000000, -1.999301431556852, 0.000000000000000, -0.292229010068828, 0.000000000000000, 1.172317994855851, 0.000000000000000, 0.196734885241533, 0.000000000000000, 2.981365193477068, 0.000000000000000, 2.637726016926352, 0.000000000000000, 1.434045125217982, 0.000000000000000, 0.883627180451827, 0.000000000000000, -1.434040761445747, 0.000000000000000, -1.528891971086553, 0.000000000000000, -3.306913135367542, 0.000000000000000, -0.399059265470646, 0.000000000000000, -0.265674394285178, 0.000000000000000, 3.502591252855384, 0.000000000000000, 0.830301156604454, 0.000000000000000, -0.220021317046083, 0.000000000000000, -0.090553770476646, 0.000000000000000, 0.771863477047951, 0.000000000000000, 1.351209629105760, 0.000000000000000, 3.773699756201963, 0.000000000000000, 0.472600118752329, 0.000000000000000, 2.332825668012222, 0.000000000000000, 1.853747950314528, 0.000000000000000, 0.759515251766178, 0.000000000000000, 1.327112776215496, 0.000000000000000, 2.518730296237868, 0.000000000000000, 0.764450208786353, 0.000000000000000, -0.278275349491296, 0.000000000000000, -0.041559465082020, 0.000000000000000, 1.387166083167787, 0.000000000000000, 2.612996769598122, 0.000000000000000, -0.385404831721799, 0.000000000000000, 2.005630016170309, 0.000000000000000, -0.950500047307998, 0.000000000000000, -1.166884021392492, 0.000000000000000, 1.432973552928162, 0.000000000000000, 2.540370505384567, 0.000000000000000, -1.140505295054501, 0.000000000000000, -3.673358835201185, 0.000000000000000, -0.450691288038056, 0.000000000000000, 1.601024294408014, 0.000000000000000, 0.773213556014045, 0.000000000000000, 2.973873693246168, 0.000000000000000, -1.361548406382279, 0.000000000000000, 1.409136332424815, 0.000000000000000, -0.963382518314713, 0.000000000000000, -2.031268227368161, 0.000000000000000, 0.983309972085586, 0.000000000000000, -3.461412488471631, 0.000000000000000, -2.601124929406039, 0.000000000000000, -0.533896239766343, 0.000000000000000, -2.627129008866350, 0.000000000000000, 0.622111169161305, 0.000000000000000, -1.160926365580422, 0.000000000000000, -2.406196188132628, 0.000000000000000, -1.076870362758737, 0.000000000000000, -1.791866820937175, 0.000000000000000, -0.749453071522325, 0.000000000000000, -5.324156615990973, 0.000000000000000, -1.038698022238289, 0.000000000000000, -2.106629944730630, 0.000000000000000, 0.659295598564773, 0.000000000000000, 0.520940881580988, 0.000000000000000, -0.055649203928700, 0.000000000000000, 0.292096765423137, 0.000000000000000, -4.663743901790872, 0.000000000000000, -0.125066503391666, 0.000000000000000, -2.452620252445380, 0.000000000000000, -0.712128227397468, 0.000000000000000, -0.048938037970968, 0.000000000000000, -1.821520226003361, 0.000000000000000, 0.810106421304257, 0.000000000000000, -0.196636623956257, 0.000000000000000, -0.701769836763804, 0.000000000000000, 2.460345045649201, 0.000000000000000, 3.506597671641116, 0.000000000000000, -2.711322611972225, 0.000000000000000, -0.658079876600542, 0.000000000000000, -2.040082099646173, 0.000000000000000, 2.201668355395807, 0.000000000000000, 1.181507395879711, 0.000000000000000, -1.640739552179682, 0.000000000000000, -1.613393726467190, 0.000000000000000, -1.156741241731352, 0.000000000000000, 2.527773464519963, 0.000000000000000, -0.497040638009502, 0.000000000000000, -0.975817112895589, 0.000000000000000, -2.866830755546166, 0.000000000000000, 1.120214498507878, 0.000000000000000, 5.986771654661698, 0.000000000000000, 0.398219252656757, 0.000000000000000, -3.545606013198135, 0.000000000000000, 0.312398099396191, 0.000000000000000, -2.265327979531788, 0.000000000000000, 0.792121001107366, 0.000000000000000, -3.736145137670100, 0.000000000000000, 0.762228883650802, 0.000000000000000, 2.283545661214646, 0.000000000000000, 3.780020629583529, 0.000000000000000, 3.117260228608810, 0.000000000000000, -2.011159255609613, 0.000000000000000, 0.279107700476072, 0.000000000000000, 2.003369134246936, 0.000000000000000, -1.448171234480257, 0.000000000000000, 0.584697150310140, 0.000000000000000, 0.919508663636197, 0.000000000000000, -3.071349141675388, 0.000000000000000, -1.555923649263667, 0.000000000000000, 2.232497079438850, 0.000000000000000, -0.012662139119883, 0.000000000000000, 0.372825540734715, 0.000000000000000, 2.378543590847629, 0.000000000000000, 1.459053407813062, 0.000000000000000, -0.967913907390927, 0.000000000000000, 1.322825200678212, 0.000000000000000, -1.033775820061824, 0.000000000000000, -1.813629552693142, 0.000000000000000, 4.794348161661486, 0.000000000000000, 0.655279811518676, 0.000000000000000, -2.224590138589720, 0.000000000000000, 0.595329481295766, 0.000000000000000, 3.364055988866225, 0.000000000000000, 1.863416422998127, 0.000000000000000, 1.930305751828105, 0.000000000000000, -0.284467053432545, 0.000000000000000, -0.923374905878938, 0.000000000000000, 1.922988234041399, 0.000000000000000, 0.310482143432719, 0.000000000000000, 0.332122302397134, 0.000000000000000, -1.659487472408966, 0.000000000000000, -1.865943507877961, 0.000000000000000, -0.186775297569864, 0.000000000000000, -1.700543850628361, 0.000000000000000, 0.497157959366735, 0.000000000000000, -0.471244843957418, 0.000000000000000, -0.432013753969948, 0.000000000000000, -4.000189880113231, 0.000000000000000, -0.415335170016467, 0.000000000000000, 0.317311950972859, 0.000000000000000, 0.038393428927595, 0.000000000000000, 0.177219909465206, 0.000000000000000, 0.531650958095143, 0.000000000000000, -2.711644985175806, 0.000000000000000, 0.328744077805156, 0.000000000000000, -0.938417707547928, 0.000000000000000, 0.970379584897379, 0.000000000000000, 1.873649473917137, 0.000000000000000, 0.177938226987023, 0.000000000000000, 0.155609346302393, 0.000000000000000, -1.276504241867208, 0.000000000000000, -0.463725075928807, 0.000000000000000, -0.064748250389500, 0.000000000000000, -1.725568534062385, 0.000000000000000, -0.139066584804067, 0.000000000000000, 1.975514554117767, 0.000000000000000, -0.807063199499478, 0.000000000000000, -0.326926659682788, 0.000000000000000, 1.445727032487938, 0.000000000000000, -0.597151107739100, 0.000000000000000, 2.732557531709386, 0.000000000000000, -2.907130934109188, 0.000000000000000, -1.461264832679981, 0.000000000000000, -1.708588604968163, 0.000000000000000, 3.652851925431363, 0.000000000000000, 0.682050868282879, 0.000000000000000, -0.281312579963294, 0.000000000000000, 0.554966483307825, 0.000000000000000, -0.981341739340932, 0.000000000000000, 1.279543331141603, 0.000000000000000, 0.036589747826856, 0.000000000000000, 2.312073745896073, 0.000000000000000, 1.754682200732425, 0.000000000000000, -0.957515875428627, 0.000000000000000, -0.833596942819695, 0.000000000000000, 0.437054368791033, 0.000000000000000, -0.898819399360279, 0.000000000000000, -0.296050580896839, 0.000000000000000, -0.785144257649601, 0.000000000000000, -2.541503089003311, 0.000000000000000, 2.225075846758761, 0.000000000000000, -1.587290487902002, 0.000000000000000, -1.421404172056462, 0.000000000000000, -3.015149802293631, 0.000000000000000, 1.780874288867949, 0.000000000000000, -0.865812740882613, 0.000000000000000, -2.845327531197112, 0.000000000000000, 1.445225867774367, 0.000000000000000, 2.183733236584647, 0.000000000000000, 1.163371072749080, 0.000000000000000, 0.883547693520409, 0.000000000000000, -1.224093106684675, 0.000000000000000, -1.854501116331044, 0.000000000000000, 1.783082089255796, 0.000000000000000, 2.301508706196191, 0.000000000000000, -0.539901944139077, 0.000000000000000, 1.962315832319967, 0.000000000000000, -0.060709041870503, 0.000000000000000, -1.353139923300238, 0.000000000000000, -1.482887537805234, 0.000000000000000, 1.273732601967176, 0.000000000000000, -3.456609915556321, 0.000000000000000, -3.752320586540873, 0.000000000000000, 3.536356614978951, 0.000000000000000, 0.206035952043233, 0.000000000000000, 5.933966913773842, 0.000000000000000, -0.486633898075490, 0.000000000000000, -0.329595089863342, 0.000000000000000, 1.496414153905337, 0.000000000000000, 0.137868749388880, 0.000000000000000, -0.437192030996792, 0.000000000000000, 2.682750615210656, 0.000000000000000, -2.440234892848570, 0.000000000000000, 1.433910252426186, 0.000000000000000, -0.415051506104074, 0.000000000000000, 1.982003013708649, 0.000000000000000, 1.345796609972435, 0.000000000000000, -2.335949513404370, 0.000000000000000, 1.065988867433025, 0.000000000000000, 2.741844905000464, 0.000000000000000, -1.754047930934362, 0.000000000000000, 0.229252730015575, 0.000000000000000, -0.679791016408669, 0.000000000000000, -2.274097820043743, 0.000000000000000, 0.149802252231876, 0.000000000000000, -0.139697151364830, 0.000000000000000, -2.773367420505435, 0.000000000000000, -4.403400246165611, 0.000000000000000, -1.468974515184135, 0.000000000000000, 0.664990623095844, 0.000000000000000, -3.446979775557143, 0.000000000000000, 1.850006428987618, 0.000000000000000, -1.550866747921936, 0.000000000000000, -3.632874882935257, 0.000000000000000, 0.828039662992464, 0.000000000000000, 2.794055182632816, 0.000000000000000, -0.593995716682633, 0.000000000000000, 0.142788156054200, 0.000000000000000, 0.552461945119668, 0.000000000000000, 0.842127129738758, 0.000000000000000, 1.414335509600077, 0.000000000000000, -0.311559241382430, 0.000000000000000, 1.510590844695250, 0.000000000000000, 1.692217183824300, 0.000000000000000, 0.613760285711957, 0.000000000000000, 0.065233463207770, 0.000000000000000, -2.571912893711505, 0.000000000000000, -1.707001531141341, 0.000000000000000, 0.673884968382041, 0.000000000000000, 0.889863883420103, 0.000000000000000, -2.395635435233346, 0.000000000000000, 1.129247296359819, 0.000000000000000, 0.569074704779735, 0.000000000000000, 6.139436017480722, 0.000000000000000, 0.822158309259017, 0.000000000000000, -3.289872016222589, 0.000000000000000, 0.417612988384414, 0.000000000000000, 1.493982103868165, 0.000000000000000, -0.415353391377005, 0.000000000000000, 0.288670764933155, 0.000000000000000, -1.895650228872272, 0.000000000000000, -0.139631694475020, 0.000000000000000, 1.445103299005436, 0.000000000000000, 2.877182243683429, 0.000000000000000, 1.192428490172580, 0.000000000000000, -5.964591921763842, 0.000000000000000, 0.570859795882959, 0.000000000000000, 2.328333316356666, 0.000000000000000, 0.333755014930026, 0.000000000000000, 1.221901577771909, 0.000000000000000, 0.943358697415568, 0.000000000000000, 2.793063983613067, 0.000000000000000, 3.163005066073616, 0.000000000000000, 2.098300664513867, 0.000000000000000, -3.915313164333447, 0.000000000000000, -2.475766769064539, 0.000000000000000, 1.720472044894277, 0.000000000000000, -1.273591949275665, 0.000000000000000, -1.213451272938616, 0.000000000000000, 0.697439404325690, 0.000000000000000, -0.309902287574293, 0.000000000000000, 2.622575852162781, 0.000000000000000, -2.075881936219060, 0.000000000000000, 0.777847545691770, 0.000000000000000, -3.967947986440650, 0.000000000000000, -3.066503371806472, 0.000000000000000, 1.193780625937845, 0.000000000000000, 0.214246579281311, 0.000000000000000, -2.610681491162162, 0.000000000000000, -1.261224183972745, 0.000000000000000, -1.165071748544285, 0.000000000000000, -1.116548474834374, 0.000000000000000, 0.847202164846982, 0.000000000000000, -3.474301529532390, 0.000000000000000, 0.020799541946476, 0.000000000000000, -3.868995473288166, 0.000000000000000, 1.757979409638067, 0.000000000000000, 0.868115130183109, 0.000000000000000, 0.910167436737958, 0.000000000000000, -1.878855115563720, 0.000000000000000, 1.710357104174161, 0.000000000000000, -1.468933980990902, 0.000000000000000, 1.799544171601169, 0.000000000000000, -4.922332880027887, 0.000000000000000, 0.219424548939720, 0.000000000000000, -0.971671113451924, 0.000000000000000, -0.940533475616266, 0.000000000000000, 0.122510114412152, 0.000000000000000, -1.373686254916911, 0.000000000000000, 1.760348103896323, 0.000000000000000, 0.391745067829643, 0.000000000000000, 2.521958505327354, 0.000000000000000, -1.300693516405092, 0.000000000000000, -0.538251788309178, 0.000000000000000, 0.797184135810173, 0.000000000000000, 2.908800548982588, 0.000000000000000, 1.590902251655215, 0.000000000000000, -1.070323714487264, 0.000000000000000, -3.349764443340999, 0.000000000000000, -1.190563529731447, 0.000000000000000, 1.363369471291963, 0.000000000000000, -1.814270299924576, 0.000000000000000, -0.023381588315711, 0.000000000000000, 1.719182048679569, 0.000000000000000, 0.839917213252626, 0.000000000000000, 1.006099633839122, 0.000000000000000, 0.812462674381527, 0.000000000000000, 1.755814336346739, 0.000000000000000, 2.546848681206319, 0.000000000000000, -1.555300208869455, 0.000000000000000, 1.017053811631167, 0.000000000000000, 0.996591039170903, 0.000000000000000, -1.228047247924881, 0.000000000000000, 4.809462271463009, 0.000000000000000, 2.318113116151685, 0.000000000000000, -1.206932520679733, 0.000000000000000, 1.273757685623312, 0.000000000000000, 0.724335352481802, 0.000000000000000, 1.519876652073198, 0.000000000000000, -2.749670314714158, 0.000000000000000, 3.424042481847581, 0.000000000000000, -3.714668360421517, 0.000000000000000, 1.612834197004014, 0.000000000000000, -2.038234723985566, 0.000000000000000, 1.470938786562152, 0.000000000000000, 2.111634918450302, 0.000000000000000, 1.030376670151787, 0.000000000000000, -0.420877189003829, 0.000000000000000, -1.502024800532894, 0.000000000000000, 0.452310749163804, 0.000000000000000, -1.606059382300987, 0.000000000000000, -4.006159967834147, 0.000000000000000, -2.152801208196508, 0.000000000000000, 1.671674089372579, 0.000000000000000, 1.714536333564101, 0.000000000000000, -1.011518543005344, 0.000000000000000, -0.576410282180584, 0.000000000000000, 0.733689809480836, 0.000000000000000, 1.004245602717974, 0.000000000000000, 1.010090391888449, 0.000000000000000, 3.811459513385621, 0.000000000000000, -5.230621089271954, 0.000000000000000, 0.678044861034399, 0.000000000000000, 1.255935859598107, 0.000000000000000, 1.674521701615288, 0.000000000000000, -1.656695216761705, 0.000000000000000, 1.169286028869693, 0.000000000000000, 0.524915416191998, 0.000000000000000, 2.397642885039520, 0.000000000000000, 2.108711400616072, 0.000000000000000, 2.037618211018084, 0.000000000000000, -0.623664553406925, 0.000000000000000, 2.984106170984409, 0.000000000000000, 1.132182737400932, 0.000000000000000, -2.859274340352130, 0.000000000000000, -0.975550071398723, 0.000000000000000, -1.359935119997407, 0.000000000000000, -2.963308211050121, 0.000000000000000, -0.228726662781163, 0.000000000000000, -1.411110379682043, 0.000000000000000, 0.741553355734225, 0.000000000000000, 0.497554254758309, 0.000000000000000, 2.371907950598855, 0.000000000000000, 1.063465168988748, 0.000000000000000, -0.641082692081488, 0.000000000000000, -0.855439878540726, 0.000000000000000, 0.578321738578726, 0.000000000000000, 3.005809768796194, 0.000000000000000, 1.961458699064065, 0.000000000000000, -3.206261663772745, 0.000000000000000, -0.364431989095434, 0.000000000000000, -0.263182496622273, 0.000000000000000, 1.843464680631139, 0.000000000000000, -0.419107530229249, 0.000000000000000, 1.662335873298487, 0.000000000000000, -0.853687563304005, 0.000000000000000, -2.584133404357169, 0.000000000000000, 3.466839568922895, 0.000000000000000, 0.881671345091973, 0.000000000000000, 0.454620014206908, 0.000000000000000, -1.737245187402739, 0.000000000000000, 2.162713238369243, 0.000000000000000, -3.868539002714486, 0.000000000000000, 2.014114855933826, 0.000000000000000, -0.703233831811006, 0.000000000000000, -3.410319935997574, 0.000000000000000, -1.851235811006584, 0.000000000000000, 0.909783907894036, 0.000000000000000, 0.091884002136728, 0.000000000000000, -2.688294201131650, 0.000000000000000, -0.906134178460955, 0.000000000000000, 3.475054609035133, 0.000000000000000, -0.573927964170323, 0.000000000000000, -0.429542937515399, 0.000000000000000, 0.991348618739939, 0.000000000000000, 1.974804904926325, 0.000000000000000, 0.975783450796698, 0.000000000000000, -3.057119549071503, 0.000000000000000, -3.899429237481194, 0.000000000000000, 0.362439009175350, 0.000000000000000, -1.124461670265618, 0.000000000000000, 1.806000360163583, 0.000000000000000, -2.768333362600288, 0.000000000000000, 0.244387897900379, 0.000000000000000, 0.908767296720926, 0.000000000000000, 1.254669374391882, 0.000000000000000, -1.420441929463686, 0.000000000000000, -0.875658895966293, 0.000000000000000, 0.183824603376167, 0.000000000000000, -3.361653917011686, 0.000000000000000, -0.796615630227952, 0.000000000000000, -1.660226542658673, 0.000000000000000, 1.654439358307226, 0.000000000000000, 2.782812946709771, 0.000000000000000, 1.418064412811531, 0.000000000000000, -0.819645647243761, 0.000000000000000, 0.807724772592699, 0.000000000000000, -0.941967976379298, 0.000000000000000, -2.312768306047469, 0.000000000000000, 0.872426936477443, 0.000000000000000, 0.919528961530845, 0.000000000000000, -2.084904575264847, 0.000000000000000, -1.972464868459322, 0.000000000000000, -1.050687203338466, 0.000000000000000, 1.659579707007902, 0.000000000000000, -1.820640014705855, 0.000000000000000, -1.195078061671045, 0.000000000000000, -1.639773173762048, 0.000000000000000, 1.616744338157063, 0.000000000000000, 4.019216096811563, 0.000000000000000, 3.461021102549681, 0.000000000000000, 1.642352734361484, 0.000000000000000, -0.046354693720813, 0.000000000000000, -0.041936252359677, 0.000000000000000, -2.393307519480551, 0.000000000000000, -0.341471634615121, 0.000000000000000, -0.392073595257017, 0.000000000000000, -0.219299018372730, 0.000000000000000, -2.016391579662071, 0.000000000000000, -0.653096251969787, 0.000000000000000, 1.466353155666821, 0.000000000000000, -2.872058864320412, 0.000000000000000, -2.157180779503830, 0.000000000000000, 0.723257479841560, 0.000000000000000, 3.769951308104384, 0.000000000000000, -1.923392042420024, 0.000000000000000, 0.644899359942840, 0.000000000000000, -2.090226891621437, 0.000000000000000, -0.277043982890403, 0.000000000000000, -0.528271428321112, 0.000000000000000, 2.518120645960652, 0.000000000000000, 1.040820431111488, 0.000000000000000, -4.560583754742486, 0.000000000000000, -0.226899614918836, 0.000000000000000, 1.713331231108959, 0.000000000000000, -3.293941019163642, 0.000000000000000, -1.113331444648290, 0.000000000000000, -1.032308423149906, 0.000000000000000, 1.593774272982443, 0.000000000000000, -1.246840475090529, 0.000000000000000, -0.190344684920137, 0.000000000000000, -1.719386356896355, 0.000000000000000, -2.827721754659679, 0.000000000000000, -0.092438285279020, 0.000000000000000, -0.565844430675246, 0.000000000000000, -1.077916121691716, 0.000000000000000, -1.208665809504693, 0.000000000000000, -2.996014266381254, 0.000000000000000, 2.888573323402423, 0.000000000000000, 2.829507048720695, 0.000000000000000, -0.859177034120755, 0.000000000000000, -1.969302377743254, 0.000000000000000, 0.777437674525362, 0.000000000000000, -0.124910190157646, 0.000000000000000, 0.129875493115290, 0.000000000000000, -4.192139262163992, 0.000000000000000, 3.023496047962126, 0.000000000000000, 1.149775163736637, 0.000000000000000, 2.038151304801731, 0.000000000000000, 3.016122489841263, 0.000000000000000, -4.829481812137012, 0.000000000000000, -1.668436615909279, 0.000000000000000, 0.958586784636918, 0.000000000000000, 1.550652410058678, 0.000000000000000, -1.456305257976716, 0.000000000000000, -0.079588392344731, 0.000000000000000, -2.453213599392345, 0.000000000000000, 0.296795909127105, 0.000000000000000, -0.253426616607643, 0.000000000000000, 1.418937160028195, 0.000000000000000, -1.672949529066915, 0.000000000000000, -1.620990298572947, 0.000000000000000, -1.085103073196045, 0.000000000000000, 0.738606361195386, 0.000000000000000, -2.097831202853255, 0.000000000000000, 2.711952282071310, 0.000000000000000, 1.498539238246888, 0.000000000000000, 1.317457282535915, 0.000000000000000, -0.302765938349717, 0.000000000000000, -0.044623707947201, 0.000000000000000, 2.337405215062395, 0.000000000000000, -3.980689173859100, 0.000000000000000, }; codec2-1.0.1/stm32/src/freedv_rx_profile.c000066400000000000000000000074401412132000500202500ustar00rootroot00000000000000/*---------------------------------------------------------------------------*\ FILE........: freedv_rx_profile.c AUTHOR......: David Rowe DATE CREATED: 13 August 2014 Profiling freedv_rx() operation on the STM32F4. \*---------------------------------------------------------------------------*/ /* Copyright (C) 2014 David Rowe All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 2.1, as published by the Free Software Foundation. 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 Lesser General Public License along with this program; if not, see . */ #define PROFILE #include #include #include #include #include #include "stm32f4xx_conf.h" #include "stm32f4xx.h" #include "gdb_stdio.h" #include "freedv_api.h" #include "machdep.h" #include "codec2_fdmdv.h" #ifdef __EMBEDDED__ #define printf gdb_stdio_printf #define fopen gdb_stdio_fopen #define fclose gdb_stdio_fclose #define fread gdb_stdio_fread #define fwrite gdb_stdio_fwrite #define fprintf gdb_stdio_fprintf #endif #define FREEDV_NSAMPLES_16K (2*FREEDV_NSAMPLES) int main(int argc, char *argv[]) { struct freedv *f; FILE *fin, *fout, *ftotal; int frame, nin_16k, nin, i, nout = 0; int n_samples, n_samples_16k; int sync; float snr_est; PROFILE_VAR(fdmdv_16_to_8_start, freedv_rx_start, fdmdv_8_to_16_start); machdep_profile_init(); f = freedv_open(FREEDV_MODE_1600); n_samples = freedv_get_n_speech_samples(f); n_samples_16k = 2*n_samples; short adc16k[FDMDV_OS_TAPS_16K+n_samples_16k]; short dac16k[n_samples_16k]; short adc8k[n_samples]; short dac8k[FDMDV_OS_TAPS_8K+n_samples]; // Receive --------------------------------------------------------------------- frame = 0; fin = fopen("mod_16k.raw", "rb"); if (fin == NULL) { printf("Error opening input file\n"); exit(1); } fout = fopen("speechout_16k.raw", "wb"); if (fout == NULL) { printf("Error opening output file\n"); exit(1); } ftotal = fopen("total.txt", "wt"); assert(ftotal != NULL); /* clear filter memories */ for(i=0; i. */ #include #include #include #include #include "stm32f4xx_conf.h" #include "stm32f4xx.h" #include "gdb_stdio.h" #include "freedv_api.h" #include "machdep.h" #ifdef __EMBEDDED__ #define printf gdb_stdio_printf #define fopen gdb_stdio_fopen #define fclose gdb_stdio_fclose #define fread gdb_stdio_fread #define fwrite gdb_stdio_fwrite #endif int main(int argc, char *argv[]) { struct freedv *f; FILE *fin, *fout; int frame, n_samples; PROFILE_VAR(freedv_start); machdep_profile_init(); f = freedv_open(FREEDV_MODE_1600); n_samples = freedv_get_n_speech_samples(f); short inbuf[n_samples], outbuf[n_samples]; // Transmit --------------------------------------------------------------------- fin = fopen("stm_in.raw", "rb"); if (fin == NULL) { printf("Error opening input file\n"); exit(1); } fout = fopen("mod.raw", "wb"); if (fout == NULL) { printf("Error opening output file\n"); exit(1); } frame = 0; while (fread(inbuf, sizeof(short), n_samples, fin) == n_samples) { PROFILE_SAMPLE(freedv_start); freedv_tx(f, outbuf, inbuf); PROFILE_SAMPLE_AND_LOG2(freedv_start, " freedv_tx"); fwrite(outbuf, sizeof(short), n_samples, fout); printf("frame: %d\n", ++frame); machdep_profile_print_logged_samples(); } fclose(fin); fclose(fout); return 0; } codec2-1.0.1/stm32/src/gdb_stdio.c000066400000000000000000000063141412132000500165010ustar00rootroot00000000000000/*---------------------------------------------------------------------------*\ FILE........: gdb_stdio.c AUTHOR......: David Rowe DATE CREATED: April 23 2013 Some stdio I/O functions that perform I/O on the host using gdb. \*---------------------------------------------------------------------------*/ /* Copyright (C) 2013 David Rowe All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 2.1, as published by the Free Software Foundation. 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 Lesser General Public License along with this program; if not, see . */ #include #include #include #include "gdb_stdio.h" #define MAX_STR 2048 /* command codes we use to signal host */ #define GDB_STDIO_PRINTF 1 #define GDB_STDIO_FOPEN 2 #define GDB_STDIO_FCLOSE 3 #define GDB_STDIO_FWRITE 4 #define GDB_STDIO_FREAD 5 #define GDB_STDIO_FPRINTF 6 /* globals we use to communicate with host */ volatile int gdb_stdio_func = 0; volatile int gdb_stdio_ret; volatile char *gdb_stdio_pstr1; volatile char *gdb_stdio_pstr2; volatile int gdb_stdio_strlen1; volatile int gdb_stdio_strlen2; volatile FILE *gdb_stdio_file; volatile void *gdb_stdio_ptr; volatile int gdb_stdio_size; volatile int gdb_stdio_nmem; void gdb_stdio_fprintf(FILE *file, const char *format, ...) { va_list arg; char str[MAX_STR]; va_start(arg, format); vsnprintf(str, MAX_STR, format, arg); va_end(arg); gdb_stdio_file = file; gdb_stdio_pstr1 = str; gdb_stdio_strlen1 = strlen(str); gdb_stdio_func = GDB_STDIO_FPRINTF; while(gdb_stdio_func); } void gdb_stdio_printf(const char *format, ...) { va_list arg; char str[MAX_STR]; va_start(arg, format); vsnprintf(str, MAX_STR, format, arg); va_end(arg); gdb_stdio_pstr1 = str; gdb_stdio_strlen1 = strlen(str); gdb_stdio_func = GDB_STDIO_PRINTF; while(gdb_stdio_func); } FILE *gdb_stdio_fopen(char file_name[], char mode[]) { gdb_stdio_pstr1 = file_name; gdb_stdio_pstr2 = mode; gdb_stdio_strlen1 = strlen(file_name); gdb_stdio_strlen2 = strlen(mode); gdb_stdio_func = GDB_STDIO_FOPEN; while(gdb_stdio_func); return (FILE*)gdb_stdio_ret; } void gdb_stdio_fclose(FILE *file) { gdb_stdio_file = file; gdb_stdio_func = GDB_STDIO_FCLOSE; while(gdb_stdio_func); } int gdb_stdio_fwrite(void *ptr, int size, int nmem, FILE *file) { gdb_stdio_ptr = ptr; gdb_stdio_size = size; gdb_stdio_nmem = nmem; gdb_stdio_file = file; gdb_stdio_func = GDB_STDIO_FWRITE; while(gdb_stdio_func); return gdb_stdio_ret; } int gdb_stdio_fread(void *ptr, int size, int nmem, FILE *file) { gdb_stdio_ptr = ptr; gdb_stdio_size = size; gdb_stdio_nmem = nmem; gdb_stdio_file = file; gdb_stdio_func = GDB_STDIO_FREAD; while(gdb_stdio_func); return gdb_stdio_ret; } codec2-1.0.1/stm32/src/iir_duc.c000066400000000000000000000350531412132000500161630ustar00rootroot00000000000000 /*---------------------------------------------------------------------------*\ FILE........: iir_duc.c AUTHOR......: Brady O'Brien DATE CREATED: 6 Mar 2015 Interapolator/Filter for IF upconversion Unit testing: ~/codec2-dev/stm32$ gcc -D__UNITTEST__ -Iinc src/iir_duc.c -o iir_duc -lm -Wall -I../src/ ~/codec2-dev/stm32$ ./iir_duc \*---------------------------------------------------------------------------*/ /* Copyright (C) 2015 Brady O'Brien All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 2.1, as published by the Free Software Foundation. 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 Lesser General Public License along with this program; if not, see . */ #include "stm32f4_dacduc.h" #include "iir_duc.h" #define BETA1 0.99002 // B1MUL/(2**B1SHFT) #define B1MUL 32441 #define B1SMUL -38328 #define B1SHFT 15 // 10 bits gives us plenty of headroom between 31 bits of int and 14 bits of ADC #define B2MUL 24593 // This actually matches BETA2 exactly with the supplied BETA1 #define B2SHFT 15 // 10 is also the lowest we can go without beta1=1 #define BETA2 (1.0 - (1.0-BETA1)*DUC_M) // B2MUL/(2**B2SHFT) #define IN_SCALE 2.0 //Input scaling factor. Should be as large as the amplitude of the incoming samples #define DAC_SCALE 4096 //Maximum output to DAC #define DAC_SCALE_2 2040 //IIR and FIR filter states. Global for go fast. float f_1,f_2,f; int n_1,n_2,n,m_1,m_2,m; /* Upconvert and bandpass filter a chunk of spectrum from Fs/M to Fs. We're going for 700khz here. modin needs to be DUC_N long and dac_out needs to be DUC_N*DUC_M long. This */ void iir_upconv(float modin[], unsigned short dac_out[]){ int i,j,k; int m; k=0; //Iterate through input samples and apply pre-eq FIR, interpolate, and apply BPF IIR for(i=0;i>B1SHFT) - ((B1MUL*n_2)>>B1SHFT); //Apply one cycle of IIR. This feeds the fir-ed sample into the output filter n_2 = n_1; n_1 = n; dac_out[k]=(unsigned short)(n+DAC_SCALE_2); k++; //now do the rest of the filtering. Because we're zero-stuffing we can neglect the sample from the fir filter. for(j=1;j>B1SHFT) - ((B1MUL*n_2)>>B1SHFT); n_2 = n_1; n_1 = n; dac_out[k]=(unsigned short)((n)+DAC_SCALE_2); } } } /* Upconvert and bandpass filter a chunk of spectrum from Fs/M to Fs. We're going for 700khz here. modin needs to be DUC_N long and dac_out needs to be DUC_N*DUC_M long. This */ void iir_upconv_fixp(int modin[], unsigned short dac_out[]){ int i,j,k; int l; k=0; //Iterate through input samples and apply pre-eq FIR, interpolate, and apply BPF IIR for(i=0;i>4; m = l+((m_2*B2MUL)>>B2SHFT); m_2 = m_1; m_1 = l; //Scale fir output and convert to fixed. //m = (int)((f/(IN_SCALE))*DAC_SCALE_2); //Scale fir output and convert to fixed n = m + ((B1SMUL*n_1)>>B1SHFT) - ((B1MUL*n_2)>>B1SHFT); //Apply one cycle of IIR. This feeds the fir-ed sample into the output filter n_2 = n_1; n_1 = n; dac_out[k]=(unsigned short)(n+DAC_SCALE_2); k++; //now do the rest of the filtering. Because we're zero-stuffing we can neglect the sample from the fir filter. for(j=1;j>B1SHFT) - ((B1MUL*n_2)>>B1SHFT); n_2 = n_1; n_1 = n; dac_out[k]=(unsigned short)((n)+DAC_SCALE_2); } } } #define F48C80R_LEN 25 #define F48C80R_MUL 4096 static int js3 = 0; //Index for downsampling static int js5 = 0; //Index for upsampling static unsigned int w48c80r; //Phase for real to comp conversion static int ptr_48c80r; //Pointer in fir delay lines static int fir_48c80r[]; //Fir filter coeffs static int fir_48c80r_re[F48C80R_LEN*2]; //Real delay line. Can probably be made much smaller. static int fir_48c80r_im[F48C80R_LEN*2]; //Imag delay line. Can probably be made much smaller. static int * sel_48c80r[2] = {fir_48c80r_re,fir_48c80r_im}; //Selector used to optimize out branches in inner loops /* Interpolate and shift from 48k complex to 80k real, centered on Fs/4. comp_8 - Input samples - 8Kc complex - must be DUC_48N*count long upout - Output samples - must be DUC_N*count long count - how many chunks of samples must be processed */ void upconv_48c_80r(COMP comp_48[],int real_80[],int count){ int i,j,k; //Loop counters int ret; //Temp vars int nr,ni; //Temp vars int inidx = 0; //Input index int outidx = 0; int ncs_48c80r[3]; for(i=0;i=F48C80R_LEN) ptr_48c80r-=F48C80R_LEN; } if(js3==0){ //Downsample by 3 ni=0; /*This loop computes the FIR filter. It only computes from either the re or the im delay line, depending on comp->re phase It also skips all 'zeros' in the delay line */ for(k=js5;k>14; //Scale back result; should probably just return int outidx++; js3=3; w48c80r+=3; } ptr_48c80r++; js3--; js5--; } } } #define F8C80R_LEN 42 //Number of taps in the 8C80R filters #define F8C80R_MUL 4096 static int int1r,int2r,int3r,int4r,int5r,cmb1r,cmb2r,cmb3r,cmb4r,cmb5r; //States for re combs and integrators static int int1i,int2i,int3i,int4i,int5i,cmb1i,cmb2i,cmb3i,cmb4i,cmb5i; //States for im combs and integrators static int ptr_8c80r; //circular buffer ptr fir_8c80r_re static int w8c80r = 0; //Omega for upconversion static int fir_8c80r_cic_i[]; //FIR Coeffs static int fir_8c80r_re[F8C80R_LEN*2]; //FIR delay line for re static int fir_8c80r_im[F8C80R_LEN*2]; //FIR delay line for im /* Interpolate and shift from 8k complex to 80k real, centered on Fs/4. comp_8 - Input samples - 8Kc complex - must be (DUC_N/10)*count long upout - Output samples - must be DUC_N*count long count - how many chunks of samples must be processed */ void upconv_8c_80r(COMP comp_8[],float real_80[],int count){ int i,j,k; //Loop indices float ret; //Temporary variables int nr,ni; int cmbr,cmbi,cmbrr,cmbii,rein,imin; //More temporaries int inidx = 0; //Index of input int outidx = 0; //Index of output for(i=0;i>14; ni+=(fir_8c80r_cic_i[k]*fir_8c80r_im[ptr_8c80r+k])>>14; } ptr_8c80r++; //Spin the dealy line index if(ptr_8c80r>=F8C80R_LEN) ptr_8c80r=0; rein=nr; imin=ni; cmbr = rein - cmb1r; cmb1r = rein; //Comb 1 real cmbrr = cmbr - cmb2r; cmb2r = cmbr; //Comb 2 real cmbr = cmbrr - cmb3r; cmb3r = cmbrr; //Comb 3 real cmbrr = cmbr - cmb4r; cmb4r = cmbr; //Comb 4 real cmbr = cmbrr - cmb5r; cmb5r = cmbrr; cmbi = imin - cmb1i; cmb1i = imin; //Comb 1 im cmbii = cmbi - cmb2i; cmb2i = cmbi; //Comb 2 im cmbi = cmbii - cmb3i; cmb3i = cmbii; //Comb 3 im cmbii = cmbi - cmb4i; cmb4i = cmbi; //Comb 4 im cmbi = cmbii - cmb5i; cmb5i = cmbii; //Comb 4 im //Do first cycle of integration int1r = cmbr + int1r; //Integrator stage 1 re int2r = int1r + int2r; //Integrator stage 2 re int3r = int2r + int3r; //Integrator stage 3 re int4r = int3r + int4r; //Integrator stage 4 re int5i = int4i + int5i; int1i = cmbi + int1i; //Integrator stage 1 im int2i = int1i + int2i; //Integrator stage 2 im int3i = int2i + int3i; //Integrator stage 3 im int4i = int3i + int4i; //Integrator stage 4 im int5r = int4r + int5r; //Convert this complex into real and cancel out the gain from CIC //This should probably spit out integers instead of going back to float switch(w8c80r&0x3){ //Do comp->real conversion by hand case 0:ret=(float)(-int5i>>7);break; case 1:ret=(float)(int5r>>7);break; case 2:ret=(float)(int5i>>7);break; case 3:ret=(float)(-int5r>>7);break; } real_80[outidx] = ret/8192; //Divide by 4096 to cancel out gain outidx++; w8c80r++; //spin omega //Next 4 stages of integration. Stage 1 can be ignored because of zero stuffing. for(k=1;k<5;k++){ int2r = int1r + int2r; //Integrator stage 2 re int3r = int2r + int3r; //Integrator stage 3 re int4r = int3r + int4r; //Integrator stage 4 re int5r = int4r + int5r; int2i = int1i + int2i; //Integrator stage 2 im int3i = int2i + int3i; //Integrator stage 3 im int4i = int3i + int4i; //Integrator stage 4 im int5i = int4i + int5i; switch(w8c80r&0x3){ //Do comp->real conversion by hand case 0:ret=(float)(-int5i>>7);break; case 1:ret=(float)(int5r>>7);break; case 2:ret=(float)(int5i>>7);break; case 3:ret=(float)(-int5r>>7);break; } real_80[outidx] = ret/8192; //Cancel out gain from all that. outidx++; w8c80r++; } } } } #ifdef __UNITTEST__ #include #include #include #include #define FS 80000 #define AMP_MAX 1 #define NOUT_BUFS 500 #define NIN (NOUT_BUFS*DUC_N) #define NOUT (NIN*DUC_M) void synth_line(float us[], float f, float amp, int n) { float w, sam; int i; w = 2*M_PI*f/(float)FS; for(i=0; i. */ #ifdef __UNITTEST__ #include #include #include #endif #include "stm32f4_adc_tuner.h" #include "iir_tuner.h" /* Filter coefficients of IIR tuner (BETA1) and FIR equaliser (BETA2). Note neat trick to relate BETA2 to BETA1 by the decimation rate */ #define BETA1 .9990234375 // B1MUL/(2**B1SHFT) #define B1MUL 1023 #define B1SMUL 1204 #define B1SHFT 10 // 10 bits gives us plenty of headroom between 31 bits of int and 14 bits of ADC #define B2MUL 979 // This actually matches BETA2 exactly with the supplied BETA1 #define B2SHFT 10 // 10 is also the lowest we can go without beta1=1 #define BETA2 (1.0 - (1.0-BETA1)*ADC_TUNER_M)// B2MUL/(2**B2SHFT) #define FIXED_IIR //Define this to compile a fixed point IIR filter /* filter states - we keep them global due to the need for speed */ #ifdef FIXED_IIR int n_2, n_1, o_2, o_1; #else float y_2, y_1, z_2, z_1; #endif /* ADC -> signed conversion - IIR BPF - Decimate - FIR Equaliser -> FIFO */ void iir_tuner( float dec_50[], // ADC_TUNER_N/2 output samples unsigned short adc_buf[] // ADC_TUNER_BUF_SZ/2 input samples ) { int i, j, k; #ifndef FIXED_IIR float x, y, z; #endif int n, m, o; for(i=0, j=0; i>B1SHFT) - ((B1MUL*n_2)>>B1SHFT); n_2 = n_1; n_1 = n; #else x = (int)adc_buf[i] - 32768; y = x - (BETA1*y_2); y_2 = y_1; y_1 = y; #endif } /* Equaliser FIR filter, notch at Fs/(4*ADC_TUNER_M) to smooth out IIR BPF passband response */ #ifdef FIXED_IIR o = n + ((B2MUL*o_2)>>B2SHFT); dec_50[j] = (float)o; o_2 = o_1; o_1 = n; #else z=y+BETA2*z_2; dec_50[j] = z; z_2 = z_1; z_1 = y; #endif } } /* BPF at 12.5 kHz +/- 2000 Hz, and decimate down to Fs = 10kHz */ static float fir_50_to_10[]; void iir_tuner_dec_50_to_10(float dec_10[], float dec_50[], int n) { int i,j,k; float acc; for(i=0,k=0; i Fs=10kHz short ---------------------------------------------*/ for(i=0; i #include #include "memtools.h" /* startup_stm32f4xx.s has been modified to fill RAM segment from bss up with 0x0x55555555 */ void memtools_find_unused( int (*printf_func)(const char *fmt, ...) ) { int32_t *p, *start; int found = 0; (*printf_func)("chunks of RAM segment > 256 bytes containing start up pattern:\n"); /* count down from top of memory through stack, empty memory, then to heap */ for (p =(int32_t*)0x20000000; p<(int32_t*)0x20020000; p++) { if (found == 0) { if (*p == 0x55555555) { start = p; found = 1; } } if (found == 1) { if (*p != 0x55555555) { found = 0; int bytes = (void*)p - (void*)start; if (bytes >= 0x100) (*printf_func)(" start: 0x%x end: 0x%x bytes: %d\n", (int) start, (int)p, bytes); } } } } void memtools_isnan(float *vec, int n, char *label, int (*printf_func)(const char *fmt, ...)) { int count = 0; for(int i=0; i * Copyright (C) 2015 FreeDV project. * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU Lesser General Public License version 2.1, * as published by the Free Software Foundation. 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 Lesser General Public * License along with this program; if not, see * . */ #include "menu.h" #include /*! * Return the Nth item on the stack. */ static const struct menu_stack_item_t* const menu_stack( const struct menu_t* const menu, uint8_t index) { if (menu->stack_depth <= index) return NULL; return &(menu->stack[menu->stack_depth - index - 1]); } /*! * Return the Nth item on the stack. */ const struct menu_item_t* const menu_item( const struct menu_t* const menu, uint8_t index) { const struct menu_stack_item_t* const current = menu_stack(menu, index); if (!current) return NULL; return current->item; } /*! * Enter a (sub)-menu. */ int menu_enter(struct menu_t* const menu, const struct menu_item_t* const item) { if (menu->stack_depth == MENU_STACK_SZ) return -1; menu->stack[menu->stack_depth].item = item; menu->stack[menu->stack_depth].index = menu->current; menu->stack_depth++; (item->event_cb)(menu, MENU_EVT_ENTERED); return 0; } /*! * Return from a (sub)-menu. */ void menu_leave(struct menu_t* const menu) { if (!menu->stack_depth) return; /* Already out of the menu */ menu->last = menu_item(menu, 0); menu->stack_depth--; const struct menu_stack_item_t* current = menu_stack(menu, 0); if (current && current->item) { menu->current = current->index; (current->item->event_cb)(menu, MENU_EVT_RETURNED); } } /*! * Execute the callback for the current item with a user-supplied event. */ void menu_exec(struct menu_t* const menu, uint32_t event) { const struct menu_item_t* item = menu_item(menu, 0); if (item && item->event_cb) (item->event_cb)(menu, event); } codec2-1.0.1/stm32/src/morse.c000066400000000000000000000114431412132000500156670ustar00rootroot00000000000000/*! * Morse code library. * * This implements a state machine for playing back morse code messages. * * Author Stuart Longland * Copyright (C) 2015 FreeDV project. * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU Lesser General Public License version 2.1, * as published by the Free Software Foundation. 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 Lesser General Public * License along with this program; if not, see * . */ #include #include "morse.h" #include /*! Symbol table element definition */ struct morse_sym_table_t { uint8_t code; uint8_t len; }; /*! Symbol table: "digits" */ static const struct morse_sym_table_t morse_digits[] = { { .code = 0xf8, .len = 5 }, /* 0: ----- */ { .code = 0x78, .len = 5 }, /* 1: .---- */ { .code = 0x38, .len = 5 }, /* 2: ..--- */ { .code = 0x18, .len = 5 }, /* 3: ...-- */ { .code = 0x08, .len = 5 }, /* 4: ....- */ { .code = 0x00, .len = 5 }, /* 5: ..... */ { .code = 0x80, .len = 5 }, /* 6: -.... */ { .code = 0xc0, .len = 5 }, /* 7: --... */ { .code = 0xe0, .len = 5 }, /* 8: ---.. */ { .code = 0xf0, .len = 5 }, /* 9: ----. */ }; /*! Symbol table: "letters" */ static const struct morse_sym_table_t morse_letters[] = { { .code = 0x40, .len = 2 }, /* A: .- */ { .code = 0x80, .len = 4 }, /* B: -... */ { .code = 0xa0, .len = 4 }, /* C: -.-. */ { .code = 0x80, .len = 3 }, /* D: -.. */ { .code = 0x00, .len = 1 }, /* E: . */ { .code = 0x20, .len = 4 }, /* F: ..-. */ { .code = 0xc0, .len = 3 }, /* G: --. */ { .code = 0x00, .len = 4 }, /* H: .... */ { .code = 0x00, .len = 2 }, /* I: .. */ { .code = 0x70, .len = 4 }, /* J: .--- */ { .code = 0xa0, .len = 3 }, /* K: -.- */ { .code = 0x40, .len = 4 }, /* L: .-.. */ { .code = 0xc0, .len = 2 }, /* M: -- */ { .code = 0x80, .len = 2 }, /* N: -. */ { .code = 0xe0, .len = 3 }, /* O: --- */ { .code = 0x60, .len = 4 }, /* P: .--. */ { .code = 0xd0, .len = 4 }, /* Q: --.- */ { .code = 0x40, .len = 3 }, /* R: .-. */ { .code = 0x00, .len = 3 }, /* S: ... */ { .code = 0x80, .len = 1 }, /* T: - */ { .code = 0x20, .len = 3 }, /* U: ..- */ { .code = 0x10, .len = 4 }, /* V: ...- */ { .code = 0x60, .len = 3 }, /* W: .-- */ { .code = 0x90, .len = 4 }, /* X: -..- */ { .code = 0xb0, .len = 4 }, /* Y: -.-- */ { .code = 0xc0, .len = 4 }, /* Z: --.. */ }; static void morse_next_sym(struct morse_player_t* const morse_player) { struct sfx_player_t* sfx_player = &(morse_player->sfx_player); if (!morse_player->msg) { sfx_play(sfx_player, NULL); return; } uint8_t sym_rem = 0; uint8_t sym_code = 0; const struct morse_sym_table_t* sym = NULL; const char* c = morse_player->msg; while(!sym) { if ((*c >= 'A') && (*c <= 'Z')) /* Play a letter. (capitals) */ sym = &morse_letters[*c - 'A']; else if ((*c >= 'a') && (*c <= 'z')) /* Play a letter. (lowercase) */ sym = &morse_letters[*c - 'a']; else if ((*c >= '0') && (*c <= '9')) /* Play a digit. */ sym = &morse_digits[*c - '0']; else if (*c == 0) { morse_player->msg = NULL; return; } c++; } morse_player->msg = c; struct sfx_note_t* note = morse_player->sym; sym_rem = sym->len; sym_code = sym->code; while(sym_rem) { note->freq = morse_player->freq; if (sym_code & 0x80) /* Play a "dah" */ note->duration = morse_player->dit_time*3; else /* Play a "dit" */ note->duration = morse_player->dit_time; note++; sym_code <<= 1; sym_rem--; /* A gap follows */ note->freq = 0; if (sym_rem) { /* More of the character */ note->duration = morse_player->dit_time; note++; } } /* What comes next? */ if (*c == ' ') { /* End of word */ note->duration = morse_player->dit_time*7; note++; } else if (*c) { /* End of character */ note->duration = morse_player->dit_time*3; note++; } /* Terminate the sequence */ note->freq = 0; note->duration = 0; /* Set the player up */ sfx_play(sfx_player, morse_player->sym); } /*! * Start playing a particular effect. * @param sfx_player Effect player state machine * @param effect Pointer to sound effect (NULL == stop) */ void morse_play(struct morse_player_t* const morse_player, const char* msg) { morse_player->msg = msg; morse_next_sym(morse_player); } /*! * Retrieve the next sample to be played. */ int16_t morse_next(struct morse_player_t* const morse_player) { if (!morse_player) return(0); if (!morse_player->sfx_player.note) morse_next_sym(morse_player); return sfx_next(&(morse_player->sfx_player)); } codec2-1.0.1/stm32/src/new_i2c.c000066400000000000000000000335171412132000500160760ustar00rootroot00000000000000/* * File: new_i2c.h * Author: leon (zs6lmg@gmail.com or leon@lrlabs.com) * * Created on March 17, 2016, 6:09 PM * * GNU license apply. * */ /* Copyright (C) 2016 Leon All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 2.1, as published by the Free Software Foundation. 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 Lesser General Public License along with this program; if not, see . */ #include "stm32f4xx.h" #include "stm32f4xx_conf.h" #include "new_i2c.h" //#include "cds_i2s.h" // // // #define CONCAT_(x,y) x##y #define CONCAT(x,y) CONCAT_(x,y) // // // // // // // #define I2C_SDA_AFPIN_ID CONCAT(GPIO_PinSource,I2C_DX_SDA) #define I2C_SCK_AFPIN_ID CONCAT(GPIO_PinSource,I2C_DX_SCK) #define I2C_SDA_PIN_ID CONCAT(GPIO_Pin_,I2C_DX_SDA) #define I2C_SCK_PIN_ID CONCAT(GPIO_Pin_,I2C_DX_SCK) /* definition to expand macro then apply to pragma message */ // Verify that my shortcuts are actually working //#define VALUE_TO_STRING(x) #x //#define VALUE(x) VALUE_TO_STRING(x) // //#define VAR_NAME_VALUE(var) #var "=" VALUE(var) //#pragma message(VAR_NAME_VALUE(I2C_SCK_AFPIN_ID)) //#pragma message(VAR_NAME_VALUE(I2C_SDA_AFPIN_ID)) /* * @brief Setup I2C interface pins * PB6 is SCL * PB9 is SDA * * @param None * * @return None */ void I2C_Setup(void) { I2C_InitTypeDef I2C_Init_S; GPIO_InitTypeDef GPIO_Init_P; // setup the clock for the GPIO device RCC_AHB1PeriphClockCmd(I2C_DX_CLK_SCK|I2C_DX_CLK_SDA, ENABLE); // enable clock for the i2c device #if I2C_D1 RCC_APB1PeriphClockCmd(RCC_APB1Periph_I2C1, ENABLE); // Performing a Reset //RCC_APB2PeriphClockCmd(RCC_APB2Periph_SYSCFG, ENABLE); //RCC_APB1PeriphResetCmd(RCC_APB1Periph_I2C1, ENABLE); //RCC_APB1PeriphResetCmd(RCC_APB1Periph_I2C1, DISABLE); #elif I2C_D3 RCC_APB1PeriphClockCmd(RCC_APB1Periph_I2C3, ENABLE); #else #error "Problem on I2C" #endif // setup the pins GPIO_Init_P.GPIO_Pin=I2C_SDA_PIN_ID; GPIO_Init_P.GPIO_Mode=GPIO_Mode_AF; GPIO_Init_P.GPIO_Speed=GPIO_Speed_50MHz; GPIO_Init_P.GPIO_OType=GPIO_OType_OD; GPIO_Init_P.GPIO_PuPd=GPIO_PuPd_NOPULL; GPIO_Init(I2C_DX_P_SDA, &GPIO_Init_P); // // GPIO_Init_P.GPIO_Pin=I2C_SCK_PIN_ID; GPIO_Init(I2C_DX_P_SCK, &GPIO_Init_P); // assign alternate functions #if I2C_D1 GPIO_PinAFConfig(I2C_DX_P_SDA, I2C_SDA_AFPIN_ID, GPIO_AF_I2C1); GPIO_PinAFConfig(I2C_DX_P_SCK, I2C_SCK_AFPIN_ID, GPIO_AF_I2C1); #elif I2C_D3 GPIO_PinAFConfig(I2C_DX_P_SDA, I2C_SDA_AFPIN_ID, GPIO_AF_I2C3); GPIO_PinAFConfig(I2C_DX_P_SCK, I2C_SCK_AFPIN_ID, GPIO_AF_I2C3); #else #error "Device not defined" #endif // I2C_Cmd(I2C_DEVICE, DISABLE); I2C_DeInit(I2C_DEVICE); // // I2C_Init_S.I2C_Mode=I2C_Mode_I2C; I2C_Init_S.I2C_DutyCycle=I2C_DutyCycle_2; I2C_Init_S.I2C_Ack=I2C_Ack_Enable; I2C_Init_S.I2C_OwnAddress1=0x00; I2C_Init_S.I2C_AcknowledgedAddress=I2C_AcknowledgedAddress_7bit; I2C_Init_S.I2C_ClockSpeed=I2C_SPEED; I2C_Cmd(I2C_DEVICE, ENABLE); I2C_Init(I2C_DEVICE, &I2C_Init_S); } uint32_t I2C_timeout(uint32_t retval) { I2C_GenerateSTOP(I2C_DEVICE, ENABLE); I2C_SoftwareResetCmd(I2C_DEVICE, ENABLE); I2C_SoftwareResetCmd(I2C_DEVICE, DISABLE); I2C_DeInit(I2C_DEVICE); I2C_Setup(); return(retval); } /** * @brief Writes a Byte to a given register through the control interface (I2C) * @param Addr: I2C address to write to. * @param Register: Register inside device to write to. * @param Value: the Byte value to be written into destination register. * @return 0 all ok. * 0x101 i2c busy. * 0x102 master mode not selected. * 0x103 master transmitter mode. * 0x104 send data failed. * 0x105 no reply from device. */ uint32_t I2C_NewWriteRegister(uint8_t Addr, uint8_t Register, uint8_t Value) { uint32_t result = 0; /* check if bus is busy */ __IO uint32_t Timeout = I2C_LTIMEOUT; while (I2C_GetFlagStatus(I2C_DEVICE, I2C_FLAG_BUSY )) { if ((Timeout--) == 0) return 0x101; } I2C_GenerateSTART(I2C_DEVICE, ENABLE); Timeout = I2C_STIMEOUT; while (!I2C_CheckEvent(I2C_DEVICE,I2C_EVENT_MASTER_MODE_SELECT)) { if ((Timeout--) == 0) return 0x102; } I2C_Send7bitAddress(I2C_DEVICE,Addr,I2C_Direction_Transmitter); Timeout = I2C_STIMEOUT; while (!I2C_CheckEvent(I2C_DEVICE,I2C_EVENT_MASTER_TRANSMITTER_MODE_SELECTED)) { if ((Timeout--) == 0) return 0x103; } I2C_SendData(I2C_DEVICE, Register); Timeout = I2C_STIMEOUT; while (!I2C_CheckEvent(I2C_DEVICE,I2C_EVENT_MASTER_BYTE_TRANSMITTING)) { if ((Timeout--) == 0) return 0x104; } I2C_SendData(I2C_DEVICE, Value); // Wait for reply Timeout = I2C_LTIMEOUT; while (!I2C_GetFlagStatus(I2C_DEVICE, I2C_FLAG_BTF)) { if ((Timeout--) == 0) return 0x105; } I2C_GenerateSTOP(I2C_DEVICE, ENABLE); return result; } /** * @brief Writes more than 1 bytes to a given register through the control interface (I2C) * @param Addr: I2C address to write to. * @param Register: Register inside device to write to. * @param Value: the Byte(s) to be written into destination register. * @param N: Number of byte(s) to write * @return 0 all ok. * 0x101 i2c busy. * 0x102 master mode not selected. * 0x103 master transmitter mode. * 0x104 send data failed. * 0x105 no reply from device. */ uint32_t I2C_NewWriteRegisterN(uint8_t Addr, uint8_t Register, uint8_t *Value, uint8_t N) { uint32_t result = 0; /* check if bus is busy */ __IO uint8_t i; __IO uint32_t Timeout = I2C_LTIMEOUT; while (I2C_GetFlagStatus(I2C_DEVICE, I2C_FLAG_BUSY )) { if ((Timeout--) == 0) return 0x101; } I2C_GenerateSTART(I2C_DEVICE, ENABLE); Timeout = I2C_STIMEOUT; while (!I2C_CheckEvent(I2C_DEVICE,I2C_EVENT_MASTER_MODE_SELECT)) { if ((Timeout--) == 0) return 0x102; } I2C_Send7bitAddress(I2C_DEVICE,Addr,I2C_Direction_Transmitter); Timeout = I2C_STIMEOUT; while (!I2C_CheckEvent(I2C_DEVICE,I2C_EVENT_MASTER_TRANSMITTER_MODE_SELECTED)) { if ((Timeout--) == 0) return 0x103; } I2C_SendData(I2C_DEVICE, Register); Timeout = I2C_STIMEOUT; while (!I2C_CheckEvent(I2C_DEVICE,I2C_EVENT_MASTER_BYTE_TRANSMITTING)) { if ((Timeout--) == 0) return 0x104; } for (i = 0; i < N; i++) { I2C_SendData(I2C_DEVICE, *(Value++)); // Wait for reply Timeout = I2C_LTIMEOUT; while (!I2C_GetFlagStatus(I2C_DEVICE, I2C_FLAG_BTF)) { if ((Timeout--) == 0) return 0x105; } } I2C_GenerateSTOP(I2C_DEVICE, ENABLE); return result; } /** * @brief Reads a Byte to a given register via I2C * @param Addr: I2C address. * @param Register: Register inside device to read. * @return value read. * 0x101 i2c busy. * 0x102 master mode not selected. * 0x103 master transmitter mode. * 0x104 send data failed. * 0x105 no reply from device. * 0x106 direction receive. * 0x107 data register not empty. * 0x108 waiting data. */ uint32_t I2C_NewReadRegister(uint8_t Addr,uint8_t Register) { uint32_t result = 0; __IO uint32_t Timeout = I2C_LTIMEOUT; while (I2C_GetFlagStatus(I2C_DEVICE,I2C_FLAG_BUSY)) { if ((Timeout--) == 0) return I2C_timeout(0x101); } I2C_GenerateSTART(I2C_DEVICE, ENABLE); #if (I2Cmodel == 1) Timeout = I2C_STIMEOUT; while (!I2C_GetFlagStatus(I2C_DEVICE,I2C_FLAG_SB)) { if ((Timeout--) == 0) return I2C_timeout(0x102); } I2C_AcknowledgeConfig(I2C_DEVICE, DISABLE); I2C_Send7bitAddress(I2C_DEVICE, Addr, I2C_Direction_Transmitter); Timeout = I2C_STIMEOUT; while (!I2C_GetFlagStatus(I2C_DEVICE, I2C_FLAG_ADDR)) { if ((Timeout--) == 0) return I2C_timeout(0x103); } (void) I2C_DEVICE->SR2; Timeout = I2C_STIMEOUT; while (!I2C_GetFlagStatus(I2C_DEVICE, I2C_FLAG_TXE)) { if ((Timeout--) == 0) return I2C_timeout(0x104); } I2C_SendData(I2C_DEVICE, Register); Timeout = I2C_STIMEOUT; while ( (!I2C_GetFlagStatus(I2C_DEVICE, I2C_FLAG_TXE)) || (!I2C_GetFlagStatus(I2C_DEVICE, I2C_FLAG_BTF)) ) { if ((Timeout--) == 0) return I2C_timeout(0x105); } I2C_GenerateSTART(I2C_DEVICE, ENABLE); Timeout = I2C_STIMEOUT; while (!I2C_GetFlagStatus(I2C_DEVICE, I2C_FLAG_SB)) { if ((Timeout--) == 0) return I2C_timeout(0x106); } I2C_Send7bitAddress(I2C_DEVICE, Addr, I2C_Direction_Receiver); Timeout = I2C_STIMEOUT; while (I2C_GetFlagStatus(I2C_DEVICE, I2C_FLAG_ADDR) == RESET) { if ((Timeout--) == 0) return I2C_timeout(0x107); } (void) I2C_DEVICE->SR2; while (!I2C_GetFlagStatus(I2C_DEVICE, I2C_FLAG_RXNE)) { if ((Timeout--) == 0) return I2C_timeout(0x108); } I2C_GenerateSTOP(I2C_DEVICE, ENABLE); Timeout = I2C_STIMEOUT; result = I2C_ReceiveData(I2C_DEVICE ); Timeout = I2C_STIMEOUT; while (I2C_DEVICE ->CR1 & I2C_CR1_STOP ) { if ((Timeout--) == 0) return I2C_timeout(0x109); } I2C_AcknowledgeConfig(I2C_DEVICE, ENABLE); I2C_ClearFlag(I2C_DEVICE, I2C_FLAG_AF ); #else Timeout = I2C_STIMEOUT; while (!I2C_CheckEvent(I2C_DEVICE,I2C_EVENT_MASTER_MODE_SELECT)) { if ((Timeout--) == 0) return 0x102; } I2C_Send7bitAddress(I2C_DEVICE,Addr,I2C_Direction_Transmitter); Timeout = I2C_STIMEOUT; while (!I2C_CheckEvent(I2C_DEVICE,I2C_EVENT_MASTER_TRANSMITTER_MODE_SELECTED)) { if ((Timeout--) == 0) return 0x103; } I2C_SendData(I2C_DEVICE, Register); Timeout = I2C_STIMEOUT; while (I2C_GetFlagStatus(I2C_DEVICE,I2C_FLAG_BTF) == RESET) { if ((Timeout--) == 0) return 0x104; } I2C_GenerateSTART(I2C_DEVICE, ENABLE); Timeout = I2C_STIMEOUT; while (!I2C_CheckEvent(I2C_DEVICE,I2C_EVENT_MASTER_MODE_SELECT)) { if ((Timeout--) == 0) return 0x105; } I2C_Send7bitAddress(I2C_DEVICE,Addr,I2C_Direction_Receiver); Timeout = I2C_STIMEOUT; while (I2C_GetFlagStatus(I2C_DEVICE, I2C_FLAG_ADDR) == RESET) { if ((Timeout--) == 0) return 0x106; } I2C_AcknowledgeConfig(I2C_DEVICE,DISABLE); (void) I2C_DEVICE->SR2; I2C_GenerateSTOP(I2C_DEVICE, ENABLE); Timeout = I2C_STIMEOUT; while (I2C_GetFlagStatus(I2C_DEVICE,I2C_FLAG_RXNE) == RESET) { if ((Timeout--) == 0) return 0x107; } result = I2C_ReceiveData(I2C_DEVICE ); Timeout = I2C_STIMEOUT; while (I2C_DEVICE ->CR1 & I2C_CR1_STOP ) { if ((Timeout--) == 0) return 0x108; } I2C_AcknowledgeConfig(I2C_DEVICE, ENABLE); I2C_ClearFlag(I2C_DEVICE, I2C_FLAG_AF ); #endif return result; } /** * @brief Reads more than one byte from a given register via I2C * @param Addr: I2C address. * @param Register: Register inside device to read. * @return value read. * 0x101 i2c busy. * 0x102 master mode not selected. * 0x103 master transmitter mode. * 0x104 send data failed. * 0x105 no reply from device. * 0x106 direction receive. * 0x107 data register not empty. * 0x108 waiting data. */ uint32_t I2C_NewReadRegisterN(uint8_t Addr,uint8_t Register,uint8_t *buffer, uint8_t N) { uint32_t result = 0; uint8_t cnt; __IO uint32_t Timeout = I2C_LTIMEOUT; if ( (N==0)||(N>64) ) return 0x109; while (I2C_GetFlagStatus(I2C_DEVICE,I2C_FLAG_BUSY)) { if ((Timeout--) == 0) return 0x101; } I2C_GenerateSTART(I2C_DEVICE, ENABLE); Timeout = I2C_STIMEOUT; while (!I2C_CheckEvent(I2C_DEVICE,I2C_EVENT_MASTER_MODE_SELECT)) { if ((Timeout--) == 0) return 0x102; } if(N==1) { // ACK disable I2C_AcknowledgeConfig(I2C_DEVICE, DISABLE); } else { // ACK enable I2C_AcknowledgeConfig(I2C_DEVICE, ENABLE); } I2C_Send7bitAddress(I2C_DEVICE,Addr,I2C_Direction_Transmitter); Timeout = I2C_STIMEOUT; while (!I2C_CheckEvent(I2C_DEVICE,I2C_EVENT_MASTER_TRANSMITTER_MODE_SELECTED)) { if ((Timeout--) == 0) return 0x103; } (void) I2C_DEVICE->SR2; Timeout = I2C_STIMEOUT; while (!I2C_GetFlagStatus(I2C_DEVICE, I2C_FLAG_TXE)) { if ((Timeout--) == 0) return I2C_timeout(0x104); } I2C_SendData(I2C_DEVICE, Register); Timeout = I2C_STIMEOUT; while ( (!I2C_GetFlagStatus(I2C_DEVICE, I2C_FLAG_TXE)) || (!I2C_GetFlagStatus(I2C_DEVICE, I2C_FLAG_BTF)) ) { if ((Timeout--) == 0) return I2C_timeout(0x105); } I2C_GenerateSTART(I2C_DEVICE, ENABLE); Timeout = I2C_STIMEOUT; while (!I2C_GetFlagStatus(I2C_DEVICE, I2C_FLAG_SB)) { if ((Timeout--) == 0) return I2C_timeout(0x106); } I2C_Send7bitAddress(I2C_DEVICE, Addr, I2C_Direction_Receiver); Timeout = I2C_STIMEOUT; while (I2C_GetFlagStatus(I2C_DEVICE, I2C_FLAG_ADDR) == RESET) { if ((Timeout--) == 0) return I2C_timeout(0x107); } (void) I2C_DEVICE->SR2; for (cnt=0; cnt= N) { // ACK disable I2C_AcknowledgeConfig(I2C_DEVICE, DISABLE); // Stop-Sequenz I2C_GenerateSTOP(I2C_DEVICE, ENABLE); } Timeout = I2C_STIMEOUT; while (!I2C_GetFlagStatus(I2C_DEVICE, I2C_FLAG_RXNE)) { if ((Timeout--) == 0) return I2C_timeout(0x108); } result=I2C_ReceiveData(I2C_DEVICE); Timeout = I2C_STIMEOUT; while (I2C_DEVICE ->CR1 & I2C_CR1_STOP ) { if ((Timeout--) == 0) return I2C_timeout(0x109); } *buffer=(uint8_t)(result & 0xff); buffer++; Timeout = I2C_STIMEOUT; } I2C_AcknowledgeConfig(I2C_DEVICE, ENABLE); //I2C_ClearFlag(I2C_DEVICE, I2C_FLAG_AF ); if (result<0x100) result=0; return result; } codec2-1.0.1/stm32/src/power_ut.c000066400000000000000000000076321412132000500164130ustar00rootroot00000000000000/*---------------------------------------------------------------------------*\ FILE........: power_ut.c AUTHOR......: David Rowe DATE CREATED: 30 May 2014 Runs Codec 2, ADC, and DAC, to fully exercise STM32C so we can a feel for run-time power consumption for SM1000 and hence dimension regulators. \*---------------------------------------------------------------------------*/ /* Copyright (C) 2014 David Rowe All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 2.1, as published by the Free Software Foundation. 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 Lesser General Public License along with this program; if not, see . */ #include #include #include #include #include "stm32f4xx_conf.h" #include "stm32f4xx.h" #include "stm32f4_adc.h" #include "stm32f4_dac.h" #include "gdb_stdio.h" #include "codec2.h" #include "dump.h" #include "sine.h" #include "machdep.h" #ifdef __EMBEDDED__ #define printf gdb_stdio_printf #define fopen gdb_stdio_fopen #define fclose gdb_stdio_fclose #define fread gdb_stdio_fread #define fwrite gdb_stdio_fwrite #endif #define SPEED_TEST_SAMPLES 24000 /* modification of test used to measure codec2 execuation speed. We read/write ADC/DAC but dont do anything with the samples, as they are at 16 kHz and codec needs 8 kHz. Just trying to exercise everything to get a feel for power consumption */ static void c2speedtest(int mode, char inputfile[]) { struct CODEC2 *codec2; short *inbuf, *outbuf, *pinbuf, *dummy_buf; unsigned char *bits; int nsam, nbit, nframes; FILE *fin; int f, nread; codec2 = codec2_create(mode); nsam = codec2_samples_per_frame(codec2); nframes = SPEED_TEST_SAMPLES/nsam; outbuf = (short*)malloc(nsam*sizeof(short)); inbuf = (short*)malloc(SPEED_TEST_SAMPLES*sizeof(short)); nbit = codec2_bits_per_frame(codec2); bits = (unsigned char*)malloc(nbit*sizeof(char)); dummy_buf = (short*)malloc(2*nsam*sizeof(short)); fin = fopen(inputfile, "rb"); if (fin == NULL) { printf("Error opening input file: %s\nTerminating....\n",inputfile); exit(1); } printf("reading samples ....\n"); nread = fread(inbuf, sizeof(short), SPEED_TEST_SAMPLES, fin); if (nread != SPEED_TEST_SAMPLES) { printf("error reading %s, %d samples reqd, %d read\n", inputfile, SPEED_TEST_SAMPLES, nread); } fclose(fin); pinbuf = inbuf; for(f=0; fODR = (1 << 13); codec2_encode(codec2, bits, pinbuf); pinbuf += nsam; GPIOD->ODR &= ~(1 << 13); //printf("Codec 2 dec\n"); codec2_decode(codec2, outbuf, bits); //printf("write to DAC\n"); while(dac1_write(dummy_buf, nsam*2) == -1); /* runs at Fs = 16kHz */ //printf("."); } free(inbuf); free(outbuf); free(bits); codec2_destroy(codec2); } void gpio_init() { RCC->AHB1ENR |= RCC_AHB1ENR_GPIODEN; // enable the clock to GPIOD GPIOD->MODER = (1 << 26); // set pin 13 to be general // purpose output } int main(int argc, char *argv[]) { SystemInit(); gpio_init(); machdep_profile_init (); adc_open(4*DAC_BUF_SZ); dac_open(4*DAC_BUF_SZ); printf("Starting power_ut\n"); c2speedtest(CODEC2_MODE_1600, "stm_in.raw"); printf("Finished\n"); return 0; } codec2-1.0.1/stm32/src/sfx.c000066400000000000000000000035231412132000500153420ustar00rootroot00000000000000/*! * Sound effect player library. * * This implements a state machine for playing back various monophonic * sound effects such as morse code symbols, clicks and alert tones. * * Author Stuart Longland * Copyright (C) 2015 FreeDV project. * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU Lesser General Public License version 2.1, * as published by the Free Software Foundation. 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 Lesser General Public * License along with this program; if not, see * . */ #include #include "sfx.h" static void sfx_next_tone(struct sfx_player_t* const sfx_player) { struct tone_gen_t* tone_gen = &(sfx_player->tone_gen); const struct sfx_note_t* note = sfx_player->note; if (!note) { tone_reset(tone_gen, 0, 0); } else { tone_reset(tone_gen, note->freq, note->duration); if (!note->duration) /* We are done */ sfx_player->note = NULL; else /* Move to next note */ sfx_player->note++; } } /*! * Start playing a particular effect. * @param sfx_player Effect player state machine * @param effect Pointer to sound effect (NULL == stop) */ void sfx_play(struct sfx_player_t* const sfx_player, const struct sfx_note_t* effect) { sfx_player->note = effect; sfx_next_tone(sfx_player); } /*! * Retrieve the next sample to be played. */ int16_t sfx_next(struct sfx_player_t* const sfx_player) { if (!sfx_player) return(0); if (!sfx_player->tone_gen.remain) sfx_next_tone(sfx_player); return tone_next(&(sfx_player->tone_gen)); } codec2-1.0.1/stm32/src/si5351_ut.c000066400000000000000000000025771412132000500162130ustar00rootroot00000000000000/*---------------------------------------------------------------------------*\ FILE........: si5351_ut.c AUTHOR......: David Rowe DATE CREATED: June 2016 Generates a 10MHz signal on CLK0 ouput of Si5351, should be visible in attenuated form on SP7/SP7 of SM2000. \*---------------------------------------------------------------------------*/ /* Copyright (C) 2016 David Rowe All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 2.1, as published by the Free Software Foundation. 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 Lesser General Public License along with this program; if not, see . */ #include #include "new_i2c.h" #include "si53xx.h" //#include "gdb_stdio.h" //#define printf gdb_stdio_printf int main(void) { //printf("starting\n"); I2C_Setup(); si5351_init(0, SI5351_CRYSTAL_LOAD_6PF, 0); si5351_set_freq(1000000000ULL, 0, SI5351_CLK0); // int ret = si5351_set_freq(1000000000ULL, 0, SI5351_CLK0); //printf(" ret = %d\n", ret); while(1); } codec2-1.0.1/stm32/src/si53xx.c000066400000000000000000000711151412132000500157070ustar00rootroot00000000000000/*------------------------------------------------------------------------------ * * Ported to stm32F4xx non c++ by Leon Lessing leon@lrlabs.com or zs6lmg@gmail.com * * * Copyright (C) 2015-2016 Jason Milldrum * Dana H. Myers * * Many defines derived from clk-si5351.h in the Linux kernel. * Sebastian Hesselbarth * Rabeeh Khoury * * do_div() macro derived from /include/asm-generic/div64.h in * the Linux kernel. * Copyright (C) 2003 Bernardo Innocenti * * 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 . * * *------------------------------------------------------------------------------ */ #include "stm32f4xx.h" #include "stm32f4xx_conf.h" //#include "system.h" #include "new_i2c.h" //#include "inc/xprintf.h" #include "stdlib.h" #include "string.h" #include "math.h" #include "si53xx.h" void si5351_write(uint8_t REGaddr, uint8_t data) { // ignoring errors // Waiting for the bite Si5351_Config.I2C_ErrorCode=I2C_NewWriteRegister(Si5351_Config.I2C_add, REGaddr, data); /* printf(" si5351_write: REGaddr: 0x%02x data...: 0x%02x", REGaddr, data); if (Si5351_Config.I2C_ErrorCode > 0xff) printf(" ErrorCode: 0x%02x\n", Si5351_Config.I2C_ErrorCode); else printf("\n"); */ } void si5351_write_bulk(uint8_t REGaddr, uint8_t bytes, uint8_t *data) { Si5351_Config.I2C_ErrorCode=I2C_NewWriteRegisterN(Si5351_Config.I2C_add, REGaddr, data, bytes); } uint8_t si5351_read(uint8_t REGaddr) { uint8_t reg_val; Si5351_Config.I2C_ErrorCode=I2C_NewReadRegister(Si5351_Config.I2C_add,REGaddr); //printf(" si5351_read.: REGaddr: 0x%02x", REGaddr); if (Si5351_Config.I2C_ErrorCode>0xff) { reg_val=0; //printf(" ErrorCode: 0x%02x\n", Si5351_Config.I2C_ErrorCode); } else { reg_val=(uint8_t)(Si5351_Config.I2C_ErrorCode & 0xff); Si5351_Config.I2C_ErrorCode=0; //printf(" reg_val: 0x%02x\n", reg_val); } return reg_val; } /*------------------------------------------------------------------------------ * @brief si5351_init(uint8_t xtal_load_c, uint32_t ref_osc_freq) * Setup communications to the Si5351 and set the crystal * load capacitance. * * @param I2C_Address - enter I2C address here, use 0 to use .h file defined value * * @param xtal_load_c - Crystal load capacitance. Use the SI5351_CRYSTAL_LOAD_*PF * defines in the header file * * @param ref_osc_freq - Crystal/reference oscillator frequency in 1 Hz increments. * Defaults to 25000000 if a 0 is used here. * *------------------------------------------------------------------------------ */ void si5351_init(uint8_t I2C_Address, uint8_t xtal_load_c, uint32_t ref_osc_freq) { //printf("si5351_init\n"); Si5351_Config.clk0_freq=0; Si5351_Config.lock_plla = SI5351_CLKNONE; Si5351_Config.lock_pllb = SI5351_CLKNONE; Si5351_Config.clk0_int_mode = 0; Si5351_Config.clk1_int_mode = 0; Si5351_Config.clk2_int_mode = 0; Si5351_Config.plla_freq = 0; Si5351_Config.pllb_freq = 0; Si5351_Config.clk0_freq = 0; Si5351_Config.clk1_freq = 0; Si5351_Config.clk2_freq = 0; Si5351_Config.xtal_freq = SI5351_XTAL_FREQ; Si5351_Config.I2C_add = SI5351_BUS_BASE_ADDR << 1; if (I2C_Address != 0) Si5351_Config.I2C_add=I2C_Address << 1; // Set crystal load capacitance uint8_t reg_val = 0x12; // 0b010010 reserved value bits reg_val |= xtal_load_c; si5351_write(SI5351_CRYSTAL_LOAD, reg_val); // DR: test of I2C reg_val = si5351_read(SI5351_CRYSTAL_LOAD); //printf("reg_val: 0x%02x\n", reg_val); // Change the ref osc freq if different from default // Divide down if greater than 30 MHz if (ref_osc_freq != 0) { uint8_t reg_val; reg_val = si5351_read(SI5351_PLL_INPUT_SOURCE); // // Clear the bits first reg_val &= ~(SI5351_CLKIN_DIV_MASK); if(ref_osc_freq <= 30000000) { Si5351_Config.xtal_freq = ref_osc_freq; reg_val |= SI5351_CLKIN_DIV_1; } else if(ref_osc_freq > 30000000 && ref_osc_freq <= 60000000) { Si5351_Config.xtal_freq = ref_osc_freq / 2; reg_val |= SI5351_CLKIN_DIV_2; } else if(ref_osc_freq > 60000000 && ref_osc_freq <= 100000000) { Si5351_Config.xtal_freq = ref_osc_freq / 4; reg_val |= SI5351_CLKIN_DIV_4; } si5351_write(SI5351_PLL_INPUT_SOURCE, reg_val); } // Initialize the CLK outputs according to flowchart in datasheet // First, turn them off si5351_write(16, 0x80); si5351_write(17, 0x80); si5351_write(18, 0x80); // Turn the clocks back on... si5351_write(16, 0x0c); si5351_write(17, 0x0c); si5351_write(18, 0x0c); // Then reset the PLLs si5351_pll_reset(SI5351_PLLA); si5351_pll_reset(SI5351_PLLB); } /*------------------------------------------------------------------------------ * @brief si5351_set_freq(uint64_t freq, uint64_t pll_freq, enum si5351_clock output) * Sets the clock frequency of the specified CLK output * * @param freq - Output frequency in 0.01 Hz increments, so for 10MHz * use 1000000000ULL * * @param pll_freq - Frequency of the PLL driving the Multisynth * Use a 0 to have the function choose a PLL frequency * * @param clk - Clock output * (use the si5351_clock enum) *------------------------------------------------------------------------------ */ uint8_t si5351_set_freq(uint64_t freq, uint64_t pll_freq, enum si5351_clock clk) { struct Si5351RegSet ms_reg; enum si5351_pll target_pll; uint8_t write_pll = 0; uint8_t r_div = SI5351_OUTPUT_CLK_DIV_1; uint8_t int_mode = 0; uint8_t div_by_4 = 0; //printf("si5351_set_freq:\n"); // PLL bounds checking if(pll_freq != 0) { if ((pll_freq < SI5351_PLL_VCO_MIN * SI5351_FREQ_MULT) || (pll_freq > SI5351_PLL_VCO_MAX * SI5351_FREQ_MULT)) { return 1; } } //printf("freq: 0x%0x 0x%0x\n", (uint32_t)(freq >> 32), (uint32_t)(freq & 0xffffffff)); // Lower bounds check if(freq < SI5351_CLKOUT_MIN_FREQ * SI5351_FREQ_MULT) { freq = SI5351_CLKOUT_MIN_FREQ * SI5351_FREQ_MULT; } // Upper bounds check if(freq > SI5351_MULTISYNTH_MAX_FREQ * SI5351_FREQ_MULT) { freq = SI5351_MULTISYNTH_MAX_FREQ * SI5351_FREQ_MULT; } //printf("freq: 0x%0x 0x%0x\n", (uint32_t)(freq >> 32), (uint32_t)(freq & 0xffffffff)); // Select the proper R div value r_div = si5351_select_r_div(&freq); // Calculate the synth parameters // If pll_freq is 0 and freq < 150 MHz, let the algorithm pick a PLL frequency if ((pll_freq) && (freq < SI5351_MULTISYNTH_DIVBY4_FREQ * SI5351_FREQ_MULT)) { si5351_multisynth_calc(freq, pll_freq, &ms_reg); write_pll = 0; div_by_4 = 0; int_mode = 0; switch(clk) { case SI5351_CLK0: Si5351_Config.clk0_freq = freq; break; case SI5351_CLK1: Si5351_Config.clk1_freq = freq; break; case SI5351_CLK2: Si5351_Config.clk2_freq = freq; break; default: break; } } else { // The PLL must be calculated and set by firmware when 150 MHz <= freq <= 160 MHz if(freq >= SI5351_MULTISYNTH_DIVBY4_FREQ * SI5351_FREQ_MULT) { pll_freq = si5351_multisynth_calc(freq, 0, &ms_reg); write_pll = 1; div_by_4 = 1; int_mode = 1; } // Determine which PLL to use // CLK0 gets PLLA, CLK1 gets PLLB // CLK2 gets PLLB if necessary // Only good for Si5351A3 variant at the moment switch(clk) { case SI5351_CLK0: //printf("case SI5351_CLK0\n"); pll_freq = si5351_multisynth_calc(freq, 0, &ms_reg); target_pll = SI5351_PLLA; write_pll = 1; si5351_set_ms_source(SI5351_CLK0, SI5351_PLLA); //printf("pll_freq: 0x%0x 0x%0x\n", (uint32_t)(pll_freq >> 32), (uint32_t)(pll_freq & 0xffffffff)); //printf("freq: 0x%0x 0x%0x\n", (uint32_t)(freq >> 32), (uint32_t)(freq & 0xffffffff)); Si5351_Config.plla_freq = pll_freq; Si5351_Config.clk0_freq = freq; break; case SI5351_CLK1: // Check to see if PLLB is locked due to other output being < 1.024 MHz or >= 112.5 MHz if(Si5351_Config.lock_pllb == SI5351_CLK2) { // We can't have a 2nd output < 1.024 MHz or >= 112.5 MHz on the same PLL unless exact same freq, so exit if((freq >= SI5351_MULTISYNTH_SHARE_MAX * SI5351_FREQ_MULT || freq < SI5351_CLKOUT_MIN_FREQ * SI5351_FREQ_MULT * 128) && freq != Si5351_Config.clk2_freq) { Si5351_Config.clk1_freq = 0; return 1; } else { // Else, set multisynth to same PLL freq as CLK2 pll_freq = Si5351_Config.pllb_freq; si5351_multisynth_calc(freq, pll_freq, &ms_reg); write_pll = 0; si5351_set_ms_source(SI5351_CLK1, SI5351_PLLB); } } else { Si5351_Config.pllb_freq = pll_freq; pll_freq = si5351_multisynth_calc(freq, 0, &ms_reg); write_pll = 1; si5351_set_ms_source(SI5351_CLK1, SI5351_PLLB); } if(freq >= SI5351_MULTISYNTH_SHARE_MAX * SI5351_FREQ_MULT || freq < SI5351_CLKOUT_MIN_FREQ * SI5351_FREQ_MULT * 128) { Si5351_Config.lock_pllb = SI5351_CLK1; // Recalc and rewrite the multisynth parameters on CLK2 if(Si5351_Config.clk2_freq != 0) { struct Si5351RegSet ms_temp_reg; r_div = si5351_select_r_div(&Si5351_Config.clk2_freq); si5351_multisynth_calc(Si5351_Config.clk2_freq, \ Si5351_Config.pllb_freq, &ms_temp_reg); si5351_set_ms(SI5351_CLK2, ms_temp_reg, 0, r_div, 0); } } else { Si5351_Config.lock_pllb = SI5351_CLKNONE; } target_pll = SI5351_PLLB; Si5351_Config.clk1_freq = freq; break; case SI5351_CLK2: // Check to see if PLLB is locked due to other output being < 1.024 MHz or >= 112.5 MHz if(Si5351_Config.lock_pllb == SI5351_CLK1) { // We can't have a 2nd output < 1.024 MHz or >= 112.5 MHz on the same PLL unless exact same freq, so exit if((freq >= SI5351_MULTISYNTH_SHARE_MAX * SI5351_FREQ_MULT || freq < SI5351_CLKOUT_MIN_FREQ * SI5351_FREQ_MULT * 128) && freq != Si5351_Config.clk2_freq) { Si5351_Config.clk2_freq = 0; return 1; } else { // Else, set multisynth to same PLL freq as CLK1 pll_freq = Si5351_Config.pllb_freq; si5351_multisynth_calc(freq, pll_freq, &ms_reg); write_pll = 0; si5351_set_ms_source(SI5351_CLK2, SI5351_PLLB); } } else { // need to account for CLK2 set before CLK1 Si5351_Config.pllb_freq = pll_freq; pll_freq = si5351_multisynth_calc(freq, 0, &ms_reg); write_pll = 1; si5351_set_ms_source(SI5351_CLK2, SI5351_PLLB); } if(freq >= SI5351_MULTISYNTH_SHARE_MAX * SI5351_FREQ_MULT || freq < SI5351_CLKOUT_MIN_FREQ * SI5351_FREQ_MULT * 128) { Si5351_Config.lock_pllb = SI5351_CLK2; if(Si5351_Config.clk1_freq != 0) { // Recalc and rewrite the multisynth parameters on CLK1 struct Si5351RegSet ms_temp_reg; r_div = si5351_select_r_div(&Si5351_Config.clk1_freq); si5351_multisynth_calc(Si5351_Config.clk1_freq, Si5351_Config.pllb_freq, &ms_temp_reg); si5351_set_ms(SI5351_CLK1, ms_temp_reg, 0, r_div, 0); } } else { Si5351_Config.lock_pllb = SI5351_CLKNONE; } target_pll = SI5351_PLLB; Si5351_Config.clk2_freq = freq; break; default: return 1; } } // Set multisynth registers (MS must be set before PLL) si5351_set_ms(clk, ms_reg, int_mode, r_div, div_by_4); // Set PLL if necessary if (write_pll == 1) { si5351_set_pll(pll_freq, target_pll); } return 0; } /*------------------------------------------------------------------------------ * @brief si5351_set_pll(uint64_t pll_freq, enum si5351_pll target_pll) * * Set the specified PLL to a specific oscillation frequency * * @param pll_freq - Desired PLL frequency * * @param target_pll - Which PLL to set * (use the si5351_pll enum) *------------------------------------------------------------------------------ */ void si5351_set_pll(uint64_t pll_freq, enum si5351_pll target_pll) { struct Si5351RegSet pll_reg; si5351_pll_calc(pll_freq, &pll_reg, Si5351_Config.ref_correction); // Derive the register values to write // Prepare an array for parameters to be written to uint8_t *params; uint8_t buffer[20]; uint8_t i = 0; uint8_t temp; params = (uint8_t *)&buffer; // Registers 26-27 temp = ((pll_reg.p3 >> 8) & 0xFF); params[i++] = temp; temp = (uint8_t)(pll_reg.p3 & 0xFF); params[i++] = temp; // Register 28 temp = (uint8_t)((pll_reg.p1 >> 16) & 0x03); params[i++] = temp; // Registers 29-30 temp = (uint8_t)((pll_reg.p1 >> 8) & 0xFF); params[i++] = temp; temp = (uint8_t)(pll_reg.p1 & 0xFF); params[i++] = temp; // Register 31 temp = (uint8_t)((pll_reg.p3 >> 12) & 0xF0); temp += (uint8_t)((pll_reg.p2 >> 16) & 0x0F); params[i++] = temp; // Registers 32-33 temp = (uint8_t)((pll_reg.p2 >> 8) & 0xFF); params[i++] = temp; temp = (uint8_t)(pll_reg.p2 & 0xFF); params[i++] = temp; // Write the parameters if (target_pll == SI5351_PLLA) { si5351_write_bulk(SI5351_PLLA_PARAMETERS, i, params); } else if (target_pll == SI5351_PLLB) { si5351_write_bulk(SI5351_PLLB_PARAMETERS, i, params); } } /*------------------------------------------------------------------------------ * @brief si5351_pll_reset(enum si5351_pll target_pll) * target_pll - Which PLL to reset * (use the si5351_pll enum) * * Apply a reset to the indicated PLL. * @param SI5351_PLL_RESET_A or SI5351_PLL_RESET_B * * @return none *------------------------------------------------------------------------------ */ void si5351_pll_reset(enum si5351_pll target_pll) { if(target_pll == SI5351_PLLA) { si5351_write(SI5351_PLL_RESET, SI5351_PLL_RESET_A); } else if(target_pll == SI5351_PLLB) { si5351_write(SI5351_PLL_RESET, SI5351_PLL_RESET_B); } } /*------------------------------------------------------------------------------ * @brief set_int(enum si5351_clock clk, uint8_t int_mode) * Set the indicated multisynth into integer mode. * * @param clk - Clock output * (use the si5351_clock enum) * * @param enable - Set to 1 to enable, 0 to disable * *------------------------------------------------------------------------------ */ void si5351_set_int(enum si5351_clock clk, uint8_t enable){ uint8_t reg_val; reg_val = si5351_read(SI5351_CLK0_CTRL + (uint8_t)clk); if(enable == 1) { reg_val |= (SI5351_CLK_INTEGER_MODE); } else { reg_val &= ~(SI5351_CLK_INTEGER_MODE); } si5351_write(SI5351_CLK0_CTRL + (uint8_t)clk, reg_val); // Integer mode indication switch(clk) { case SI5351_CLK0: Si5351_Config.clk0_int_mode = enable; break; case SI5351_CLK1: Si5351_Config.clk1_int_mode = enable; break; case SI5351_CLK2: Si5351_Config.clk2_int_mode = enable; break; default: break; } } /*------------------------------------------------------------------------------ * @brief si5351_set_clock_pwr(enum si5351_clock clk, uint8_t pwr) * Enable or disable power to a clock output (a power * saving feature). * * @param clk - Clock output * (use the si5351_clock enum) * * @param pwr - Set to 1 to enable, 0 to disable * *------------------------------------------------------------------------------ */ void si5351_set_clock_pwr(enum si5351_clock clk, uint8_t pwr) { uint8_t reg_val; reg_val = si5351_read(SI5351_CLK0_CTRL + (uint8_t)clk); if(pwr == 1) { reg_val &= 0b01111111; } else { reg_val |= 0b10000000; } si5351_write(SI5351_CLK0_CTRL + (uint8_t)clk, reg_val); } /*------------------------------------------------------------------------------ * @brief si5351_set_clock_invert(enum si5351_clock clk, uint8_t inv) * Enable to invert the clock output waveform. * * @param clk - Clock output * (use the si5351_clock enum) * * @param inv - Set to 1 to enable, 0 to disable * * ----------------------------------------------------------------------------- */ void si5351_set_clock_invert(enum si5351_clock clk, uint8_t inv) { uint8_t reg_val; reg_val = si5351_read(SI5351_CLK0_CTRL + (uint8_t)clk); if(inv == 1) { reg_val |= (SI5351_CLK_INVERT); } else { reg_val &= ~(SI5351_CLK_INVERT); } si5351_write(SI5351_CLK0_CTRL + (uint8_t)clk, reg_val); } /*------------------------------------------------------------------------------ * @brief si5351_set_ms(enum si5351_clock clk, struct Si5351RegSet ms_reg, * uint8_t int_mode, uint8_t r_div, uint8_t div_by_4) * * Set the specified multisynth parameters. Not normally needed, but public for advanced users. * * @param clk - Clock output * (use the si5351_clock enum) * * @param int_mode - Set integer mode * Set to 1 to enable, 0 to disable * * @param r_div - Desired r_div ratio * * @param div_by_4 - Set Divide By 4 mode * Set to 1 to enable, 0 to disable *------------------------------------------------------------------------------ */ void si5351_set_ms(enum si5351_clock clk, struct Si5351RegSet ms_reg, uint8_t int_mode, uint8_t r_div, uint8_t div_by_4) { uint8_t *params; uint8_t buffer[20]; uint8_t i = 0; uint8_t temp; uint8_t reg_val; params = (uint8_t *)&buffer; // Registers 42-43 for CLK0 temp = (uint8_t)((ms_reg.p3 >> 8) & 0xFF); params[i++] = temp; temp = (uint8_t)(ms_reg.p3 & 0xFF); params[i++] = temp; // Register 44 for CLK0 reg_val = si5351_read((SI5351_CLK0_PARAMETERS + 2) + (clk * 8)); reg_val &= ~(0x03); temp = reg_val | ((uint8_t)((ms_reg.p1 >> 16) & 0x03)); params[i++] = temp; // Registers 45-46 for CLK0 temp = (uint8_t)((ms_reg.p1 >> 8) & 0xFF); params[i++] = temp; temp = (uint8_t)(ms_reg.p1 & 0xFF); params[i++] = temp; // Register 47 for CLK0 temp = (uint8_t)((ms_reg.p3 >> 12) & 0xF0); temp += (uint8_t)((ms_reg.p2 >> 16) & 0x0F); params[i++] = temp; // Registers 48-49 for CLK0 temp = (uint8_t)((ms_reg.p2 >> 8) & 0xFF); params[i++] = temp; temp = (uint8_t)(ms_reg.p2 & 0xFF); params[i++] = temp; // Write the parameters switch (clk) { case SI5351_CLK0: si5351_write_bulk(SI5351_CLK0_PARAMETERS, i, params); break; case SI5351_CLK1: si5351_write_bulk(SI5351_CLK1_PARAMETERS, i, params); break; case SI5351_CLK2: si5351_write_bulk(SI5351_CLK2_PARAMETERS, i, params); break; case SI5351_CLK3: si5351_write_bulk(SI5351_CLK3_PARAMETERS, i, params); break; case SI5351_CLK4: si5351_write_bulk(SI5351_CLK4_PARAMETERS, i, params); break; case SI5351_CLK5: si5351_write_bulk(SI5351_CLK5_PARAMETERS, i, params); break; case SI5351_CLK6: si5351_write_bulk(SI5351_CLK6_PARAMETERS, i, params); break; case SI5351_CLK7: si5351_write_bulk(SI5351_CLK7_PARAMETERS, i, params); break; case SI5351_CLKNONE: return; } si5351_set_int(clk, int_mode); si5351_ms_div(clk, r_div, div_by_4); } void si5351_ms_div(enum si5351_clock clk, uint8_t r_div, uint8_t div_by_4) { uint8_t reg_val, reg_addr; switch(clk) { case SI5351_CLK0: reg_addr = SI5351_CLK0_PARAMETERS + 2; break; case SI5351_CLK1: reg_addr = SI5351_CLK1_PARAMETERS + 2; break; case SI5351_CLK2: reg_addr = SI5351_CLK2_PARAMETERS + 2; break; case SI5351_CLK3: reg_addr = SI5351_CLK3_PARAMETERS + 2; break; case SI5351_CLK4: reg_addr = SI5351_CLK4_PARAMETERS + 2; break; case SI5351_CLK5: reg_addr = SI5351_CLK5_PARAMETERS + 2; break; case SI5351_CLK6: return; case SI5351_CLK7: return; case SI5351_CLKNONE: return; default: return; } reg_val = si5351_read(reg_addr); // Clear the relevant bits reg_val &= ~(0x7c); if(div_by_4 == 0) { reg_val &= ~(SI5351_OUTPUT_CLK_DIVBY4); } else { reg_val |= (SI5351_OUTPUT_CLK_DIVBY4); } reg_val |= (r_div << SI5351_OUTPUT_CLK_DIV_SHIFT); si5351_write(reg_addr, reg_val); } /*------------------------------------------------------------------------------ * @brief set_ms_source(enum si5351_clock clk, enum si5351_pll pll) * Set the desired PLL source for a multisynth. * * @param clk - Clock output * (use the si5351_clock enum) * * @param pll - Which PLL to use as the source * (use the si5351_pll enum) * *------------------------------------------------------------------------------ */ void si5351_set_ms_source(enum si5351_clock clk, enum si5351_pll pll) { uint8_t reg_val; reg_val = si5351_read(SI5351_CLK0_CTRL + (uint8_t)clk); if(pll == SI5351_PLLA) { reg_val &= ~(SI5351_CLK_PLL_SELECT); } else if (pll == SI5351_PLLB) { reg_val |= SI5351_CLK_PLL_SELECT; } si5351_write(SI5351_CLK0_CTRL + (uint8_t)clk, reg_val); } uint64_t si5351_multisynth_calc(uint64_t freq, uint64_t pll_freq, struct Si5351RegSet *reg) { uint64_t lltmp; uint32_t a, b, c, p1, p2, p3; uint8_t divby4; uint8_t ret_val = 0; // Multisynth bounds checking if (freq > SI5351_MULTISYNTH_MAX_FREQ * SI5351_FREQ_MULT) { freq = SI5351_MULTISYNTH_MAX_FREQ * SI5351_FREQ_MULT; } if (freq < SI5351_MULTISYNTH_MIN_FREQ * SI5351_FREQ_MULT) { freq = SI5351_MULTISYNTH_MIN_FREQ * SI5351_FREQ_MULT; } divby4 = 0; if (freq >= SI5351_MULTISYNTH_DIVBY4_FREQ * SI5351_FREQ_MULT) { divby4 = 1; } if(pll_freq == 0) { // Find largest integer divider for max // VCO frequency and given target frequency if(divby4 == 0) { lltmp = SI5351_PLL_VCO_MAX * SI5351_FREQ_MULT; do_div(lltmp, freq); a = (uint32_t)lltmp; } else { a = 4; } b = 0; c = 1; pll_freq = a * freq; } else { // Preset PLL, so return the actual freq for these params instead of PLL freq ret_val = 1; // Determine integer part of feedback equation a = pll_freq / freq; if (a < SI5351_MULTISYNTH_A_MIN) { freq = pll_freq / SI5351_MULTISYNTH_A_MIN; } if (a > SI5351_MULTISYNTH_A_MAX) { freq = pll_freq / SI5351_MULTISYNTH_A_MAX; } b = (pll_freq % freq * RFRAC_DENOM) / freq; c = b ? RFRAC_DENOM : 1; } // Calculate parameters if (divby4 == 1) { p3 = 1; p2 = 0; p1 = 0; } else { p1 = 128 * a + ((128 * b) / c) - 512; p2 = 128 * b - c * ((128 * b) / c); p3 = c; } reg->p1 = p1; reg->p2 = p2; reg->p3 = p3; if(ret_val == 0) { return pll_freq; } else { return freq; } } uint64_t si5351_pll_calc(uint64_t freq, struct Si5351RegSet *reg, int32_t correction) { uint64_t ref_freq = Si5351_Config.xtal_freq * SI5351_FREQ_MULT; uint32_t a, b, c, p1, p2, p3; uint64_t lltmp, denom; // Factor calibration value into nominal crystal frequency // Measured in parts-per-billion ref_freq = ref_freq + (int32_t)((((((int64_t)correction) << 31) / 1000000000LL) * ref_freq) >> 31); // PLL bounds checking if (freq < SI5351_PLL_VCO_MIN * SI5351_FREQ_MULT) { freq = SI5351_PLL_VCO_MIN * SI5351_FREQ_MULT; } if (freq > SI5351_PLL_VCO_MAX * SI5351_FREQ_MULT) { freq = SI5351_PLL_VCO_MAX * SI5351_FREQ_MULT; } // Determine integer part of feedback equation a = freq / ref_freq; if (a < SI5351_PLL_A_MIN) { freq = ref_freq * SI5351_PLL_A_MIN; } if (a > SI5351_PLL_A_MAX) { freq = ref_freq * SI5351_PLL_A_MAX; } // Find best approximation for b/c = fVCO mod fIN denom = 1000ULL * 1000ULL; lltmp = freq % ref_freq; lltmp *= denom; do_div(lltmp, ref_freq); b = (((uint64_t)(freq % ref_freq)) * RFRAC_DENOM) / ref_freq; c = b ? RFRAC_DENOM : 1; // Calculate parameters p1 = 128 * a + ((128 * b) / c) - 512; p2 = 128 * b - c * ((128 * b) / c); p3 = c; // Recalculate frequency as fIN * (a + b/c) lltmp = ref_freq; lltmp *= b; do_div(lltmp, c); freq = lltmp; freq += ref_freq * a; reg->p1 = p1; reg->p2 = p2; reg->p3 = p3; return freq; } uint8_t si5351_select_r_div(uint64_t *freq) { uint8_t r_div = SI5351_OUTPUT_CLK_DIV_1; // Choose the correct R divider if((*freq >= SI5351_CLKOUT_MIN_FREQ * SI5351_FREQ_MULT) && (*freq < SI5351_CLKOUT_MIN_FREQ * SI5351_FREQ_MULT * 2)) { r_div = SI5351_OUTPUT_CLK_DIV_128; *freq *= 128ULL; } else if ((*freq >= SI5351_CLKOUT_MIN_FREQ * SI5351_FREQ_MULT * 2) && (*freq < SI5351_CLKOUT_MIN_FREQ * SI5351_FREQ_MULT * 4)) { r_div = SI5351_OUTPUT_CLK_DIV_64; *freq *= 64ULL; } else if ((*freq >= SI5351_CLKOUT_MIN_FREQ * SI5351_FREQ_MULT * 4) && (*freq < SI5351_CLKOUT_MIN_FREQ * SI5351_FREQ_MULT * 8)) { r_div = SI5351_OUTPUT_CLK_DIV_32; *freq *= 32ULL; } else if ((*freq >= SI5351_CLKOUT_MIN_FREQ * SI5351_FREQ_MULT * 8) && (*freq < SI5351_CLKOUT_MIN_FREQ * SI5351_FREQ_MULT * 16)) { r_div = SI5351_OUTPUT_CLK_DIV_16; *freq *= 16ULL; } else if ((*freq >= SI5351_CLKOUT_MIN_FREQ * SI5351_FREQ_MULT * 16) && (*freq < SI5351_CLKOUT_MIN_FREQ * SI5351_FREQ_MULT * 32)) { r_div = SI5351_OUTPUT_CLK_DIV_8; *freq *= 8ULL; } else if ((*freq >= SI5351_CLKOUT_MIN_FREQ * SI5351_FREQ_MULT * 32) && (*freq < SI5351_CLKOUT_MIN_FREQ * SI5351_FREQ_MULT * 64)) { r_div = SI5351_OUTPUT_CLK_DIV_4; *freq *= 4ULL; } else if ((*freq >= SI5351_CLKOUT_MIN_FREQ * SI5351_FREQ_MULT * 64) && (*freq < SI5351_CLKOUT_MIN_FREQ * SI5351_FREQ_MULT * 128)) { r_div = SI5351_OUTPUT_CLK_DIV_2; *freq *= 2ULL; } return r_div; } codec2-1.0.1/stm32/src/sine.c000066400000000000000000000425271412132000500155070ustar00rootroot00000000000000/*---------------------------------------------------------------------------*\ FILE........: sine.c AUTHOR......: David Rowe DATE CREATED: 19/8/2010 Sinusoidal analysis and synthesis functions. \*---------------------------------------------------------------------------*/ /* Copyright (C) 1990-2010 David Rowe All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 2.1, as published by the Free Software Foundation. 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 Lesser General Public License along with this program; if not, see . */ /*---------------------------------------------------------------------------*\ INCLUDES \*---------------------------------------------------------------------------*/ #include #include #include #include "defines.h" #include "sine.h" #include "kiss_fft.h" #define HPF_BETA 0.125 /*---------------------------------------------------------------------------*\ HEADERS \*---------------------------------------------------------------------------*/ void hs_pitch_refinement(MODEL *model, COMP Sw[], float pmin, float pmax, float pstep); /*---------------------------------------------------------------------------*\ FUNCTIONS \*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*\ FUNCTION....: make_analysis_window AUTHOR......: David Rowe DATE CREATED: 11/5/94 Init function that generates the time domain analysis window and it's DFT. \*---------------------------------------------------------------------------*/ void make_analysis_window(kiss_fft_cfg fft_fwd_cfg, float w[], COMP W[]) { float m; COMP wshift[FFT_ENC]; COMP temp; int i,j; /* Generate Hamming window centered on M-sample pitch analysis window 0 M/2 M-1 |-------------|-------------| |-------|-------| NW samples All our analysis/synthsis is centred on the M/2 sample. */ m = 0.0; for(i=0; iWo + 5; pmin = TWO_PI/model->Wo - 5; pstep = 1.0; hs_pitch_refinement(model,Sw,pmin,pmax,pstep); /* Fine refinement */ pmax = TWO_PI/model->Wo + 1; pmin = TWO_PI/model->Wo - 1; pstep = 0.25; hs_pitch_refinement(model,Sw,pmin,pmax,pstep); /* Limit range */ if (model->Wo < TWO_PI/P_MAX) model->Wo = TWO_PI/P_MAX; if (model->Wo > TWO_PI/P_MIN) model->Wo = TWO_PI/P_MIN; model->L = floor(PI/model->Wo); } /*---------------------------------------------------------------------------*\ FUNCTION....: hs_pitch_refinement AUTHOR......: David Rowe DATE CREATED: 27/5/94 Harmonic sum pitch refinement function. pmin pitch search range minimum pmax pitch search range maximum step pitch search step size model current pitch estimate in model.Wo model refined pitch estimate in model.Wo \*---------------------------------------------------------------------------*/ void hs_pitch_refinement(MODEL *model, COMP Sw[], float pmin, float pmax, float pstep) { int m; /* loop variable */ int b; /* bin for current harmonic centre */ float E; /* energy for current pitch*/ float Wo; /* current "test" fundamental freq. */ float Wom; /* Wo that maximises E */ float Em; /* mamimum energy */ float r, one_on_r; /* number of rads/bin */ float p; /* current pitch */ /* Initialisation */ model->L = PI/model->Wo; /* use initial pitch est. for L */ Wom = model->Wo; Em = 0.0; r = TWO_PI/FFT_ENC; one_on_r = 1.0/r; /* Determine harmonic sum for a range of Wo values */ for(p=pmin; p<=pmax; p+=pstep) { E = 0.0; Wo = TWO_PI/p; /* Sum harmonic magnitudes */ for(m=1; m<=model->L; m++) { b = (int)(m*Wo*one_on_r + 0.5); E += Sw[b].real*Sw[b].real + Sw[b].imag*Sw[b].imag; } /* Compare to see if this is a maximum */ if (E > Em) { Em = E; Wom = Wo; } } model->Wo = Wom; } /*---------------------------------------------------------------------------*\ FUNCTION....: estimate_amplitudes AUTHOR......: David Rowe DATE CREATED: 27/5/94 Estimates the complex amplitudes of the harmonics. \*---------------------------------------------------------------------------*/ void estimate_amplitudes(MODEL *model, COMP Sw[], COMP W[], int est_phase) { int i,m; /* loop variables */ int am,bm; /* bounds of current harmonic */ int b; /* DFT bin of centre of current harmonic */ float den; /* denominator of amplitude expression */ float r, one_on_r; /* number of rads/bin */ int offset; COMP Am; r = TWO_PI/FFT_ENC; one_on_r = 1.0/r; for(m=1; m<=model->L; m++) { den = 0.0; am = (int)((m - 0.5)*model->Wo*one_on_r + 0.5); bm = (int)((m + 0.5)*model->Wo*one_on_r + 0.5); b = (int)(m*model->Wo/r + 0.5); /* Estimate ampltude of harmonic */ den = 0.0; Am.real = Am.imag = 0.0; offset = FFT_ENC/2 - (int)(m*model->Wo*one_on_r + 0.5); for(i=am; iA[m] = sqrtf(den); if (est_phase) { /* Estimate phase of harmonic, this is expensive in CPU for embedded devicesso we make it an option */ model->phi[m] = atan2(Sw[b].imag,Sw[b].real); } } } /*---------------------------------------------------------------------------*\ est_voicing_mbe() Returns the error of the MBE cost function for a fiven F0. Note: I think a lot of the operations below can be simplified as W[].imag = 0 and has been normalised such that den always equals 1. \*---------------------------------------------------------------------------*/ float est_voicing_mbe( MODEL *model, COMP Sw[], COMP W[], COMP Sw_[], /* DFT of all voiced synthesised signal */ /* useful for debugging/dump file */ COMP Ew[], /* DFT of error */ float prev_Wo) { int i,l,al,bl,m; /* loop variables */ COMP Am; /* amplitude sample for this band */ int offset; /* centers Hw[] about current harmonic */ float den; /* denominator of Am expression */ float error; /* accumulated error between original and synthesised */ float Wo; float sig, snr; float elow, ehigh, eratio; float sixty; sig = 1E-4; for(l=1; l<=model->L/4; l++) { sig += model->A[l]*model->A[l]; } for(i=0; iWo; error = 1E-4; /* Just test across the harmonics in the first 1000 Hz (L/4) */ for(l=1; l<=model->L/4; l++) { Am.real = 0.0; Am.imag = 0.0; den = 0.0; al = ceil((l - 0.5)*Wo*FFT_ENC/TWO_PI); bl = ceil((l + 0.5)*Wo*FFT_ENC/TWO_PI); /* Estimate amplitude of harmonic assuming harmonic is totally voiced */ offset = FFT_ENC/2 - l*Wo*FFT_ENC/TWO_PI + 0.5; for(m=al; m V_THRESH) model->voiced = 1; else model->voiced = 0; /* post processing, helps clean up some voicing errors ------------------*/ /* Determine the ratio of low freqency to high frequency energy, voiced speech tends to be dominated by low frequency energy, unvoiced by high frequency. This measure can be used to determine if we have made any gross errors. */ elow = ehigh = 1E-4; for(l=1; l<=model->L/2; l++) { elow += model->A[l]*model->A[l]; } for(l=model->L/2; l<=model->L; l++) { ehigh += model->A[l]*model->A[l]; } eratio = 10.0*log10f(elow/ehigh); /* Look for Type 1 errors, strongly V speech that has been accidentally declared UV */ if (model->voiced == 0) if (eratio > 10.0) model->voiced = 1; /* Look for Type 2 errors, strongly UV speech that has been accidentally declared V */ if (model->voiced == 1) { if (eratio < -10.0) model->voiced = 0; /* A common source of Type 2 errors is the pitch estimator gives a low (50Hz) estimate for UV speech, which gives a good match with noise due to the close harmoonic spacing. These errors are much more common than people with 50Hz3 pitch, so we have just a small eratio threshold. */ sixty = 60.0*TWO_PI/FS; if ((eratio < -4.0) && (model->Wo <= sixty)) model->voiced = 0; } //printf(" v: %d snr: %f eratio: %3.2f %f\n",model->voiced,snr,eratio,dF0); return snr; } /*---------------------------------------------------------------------------*\ FUNCTION....: make_synthesis_window AUTHOR......: David Rowe DATE CREATED: 11/5/94 Init function that generates the trapezoidal (Parzen) sythesis window. \*---------------------------------------------------------------------------*/ void make_synthesis_window(float Pn[]) { int i; float win; /* Generate Parzen window in time domain */ win = 0.0; for(i=0; i 10ms sound poor. The effect can also be seen when synthesising test signals like single sine waves, some sort of amplitude modulation at the frame rate. Another possibility is using a larger FFT size (1024 or 2048). */ #define FFT_SYNTHESIS #ifdef FFT_SYNTHESIS /* Now set up frequency domain synthesised speech */ for(l=1; l<=model->L; l++) { //for(l=model->L/2; l<=model->L; l++) { //for(l=1; l<=model->L/4; l++) { b = (int)(l*model->Wo*FFT_DEC/TWO_PI + 0.5); if (b > ((FFT_DEC/2)-1)) { b = (FFT_DEC/2)-1; } Sw_[b].real = model->A[l]*cosf(model->phi[l]); Sw_[b].imag = model->A[l]*sinf(model->phi[l]); Sw_[FFT_DEC-b].real = Sw_[b].real; Sw_[FFT_DEC-b].imag = -Sw_[b].imag; } /* Perform inverse DFT */ kiss_fft(fft_inv_cfg, (kiss_fft_cpx *)Sw_, (kiss_fft_cpx *)sw_); #else /* Direct time domain synthesis using the cos() function. Works well at 10ms and 20ms frames rates. Note synthesis window is still used to handle overlap-add between adjacent frames. This could be simplified as we don't need to synthesise where Pn[] is zero. */ for(l=1; l<=model->L; l++) { for(i=0,j=-N+1; iA[l]*cos(j*model->Wo*l + model->phi[l]); } for(i=N-1,j=0; i<2*N; i++,j++) Sw_[j].real += 2.0*model->A[l]*cos(j*model->Wo*l + model->phi[l]); } #endif /* Overlap add to previous samples */ for(i=0; i. */ #define _CPTT GPIO_Pin_10 #define LED_PWR GPIO_Pin_12 #define LED_PTT GPIO_Pin_13 #define LED_RT GPIO_Pin_14 #define LED_ERR GPIO_Pin_15 #define SWITCH_PTT GPIO_Pin_7 #define SWITCH_SELECT GPIO_Pin_0 #define SWITCH_BACK GPIO_Pin_1 #define EXT_PTT GPIO_Pin_8 #include #include #include "sm1000_leds_switches.h" void sm1000_leds_switches_init(void) { GPIO_InitTypeDef GPIO_InitStruct; RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOD, ENABLE); /* output pins */ GPIO_InitStruct.GPIO_Pin = LED_PWR | LED_PTT | LED_RT | LED_ERR | _CPTT; GPIO_InitStruct.GPIO_Mode = GPIO_Mode_OUT; GPIO_InitStruct.GPIO_Speed = GPIO_Speed_2MHz; GPIO_InitStruct.GPIO_OType = GPIO_OType_PP; GPIO_InitStruct.GPIO_PuPd = GPIO_PuPd_NOPULL; GPIO_Init(GPIOD, &GPIO_InitStruct); /* input pins */ GPIO_InitStruct.GPIO_Pin = SWITCH_PTT | SWITCH_SELECT | SWITCH_BACK; GPIO_InitStruct.GPIO_Mode = GPIO_Mode_IN; GPIO_InitStruct.GPIO_Speed = GPIO_Speed_2MHz; GPIO_InitStruct.GPIO_PuPd = GPIO_PuPd_NOPULL; /* we have our own external pull ups */ GPIO_Init(GPIOD, &GPIO_InitStruct); GPIO_InitStruct.GPIO_Pin = EXT_PTT; GPIO_InitStruct.GPIO_Mode = GPIO_Mode_IN; GPIO_InitStruct.GPIO_Speed = GPIO_Speed_2MHz; GPIO_InitStruct.GPIO_PuPd = GPIO_PuPd_UP; /* use internal pull up */ GPIO_Init(GPIOD, &GPIO_InitStruct); } void led_pwr(int state) { if (state > 0) GPIOD->ODR |= (1 << 12); else if (state < 0) GPIOD->ODR ^= (1 << 12); else GPIOD->ODR &= ~(1 << 12); } void led_ptt(int state) { if (state > 0) GPIOD->ODR |= (1 << 13); else if (state < 0) GPIOD->ODR |= (1 << 13); else GPIOD->ODR &= ~(1 << 13); } void led_rt(int state) { if (state > 0) GPIOD->ODR |= (1 << 14); else if (state < 0) GPIOD->ODR ^= (1 << 14); else GPIOD->ODR &= ~(1 << 14); } void led_err(int state) { if (state > 0) GPIOD->ODR |= (1 << 15); else if (state < 0) GPIOD->ODR ^= (1 << 15); else GPIOD->ODR &= ~(1 << 15); } void not_cptt(int state) { if (state) GPIOD->ODR |= (1 << 10); else GPIOD->ODR &= ~(1 << 10); } int switch_ptt(void) { return GPIOD->IDR & (1 << 7); } int switch_select(void) { return GPIOD->IDR & (1 << 0); } int switch_back(void) { return GPIOD->IDR & (1 << 1); } int ext_ptt(void) { return GPIOD->IDR & (1 << 8); } /* FUNCTION: ColorfulRingOfDeath() AUTHOR..: xenovacivus Colourful ring of death, blink LEDs like crazy forever if something really nasty happens. Adapted from USB Virtual COM Port (VCP) module adapted from code I found here: https://github.com/xenovacivus/STM32DiscoveryVCP Call this to indicate a failure. Blinks the STM32F4 discovery LEDs in sequence. At 168Mhz, the blinking will be very fast - about 5 Hz. Keep that in mind when debugging, knowing the clock speed might help with debugging. */ int mycode; /* examine this with debugger if it dies */ void ColorfulRingOfDeath(int code) { mycode = code; uint16_t ring = 1; while (1) { uint32_t count = 0; while (count++ < 5000000); GPIOD->BSRRH = (ring << 12); ring = ring << 1; if (ring >= 1<<4) { ring = 1; } GPIOD->BSRRL = (ring << 12); } } void HardFault_Handler(void) { ColorfulRingOfDeath(1); } void MemManage_Handler(void) { ColorfulRingOfDeath(2); } void BusFault_Handler(void) { ColorfulRingOfDeath(3); } void UsageFault_Handler(void){ ColorfulRingOfDeath(4); } void switch_tick(struct switch_t* const sw) { if (sw->sw != sw->raw) { /* State transition, reset timer */ if (sw->state == SW_STEADY) sw->last = sw->sw; sw->state = SW_DEBOUNCE; sw->timer = DEBOUNCE_DELAY; sw->sw = sw->raw; } else if (sw->state == SW_DEBOUNCE) { if (sw->timer > 0) { /* Steady so far, keep waiting */ sw->timer--; } else { /* Steady state reached */ sw->state = SW_STEADY; } } else if (sw->sw) { /* Hold state. Yes this will wrap, but who cares? */ sw->timer++; } } void switch_update(struct switch_t* const sw, uint8_t state) { sw->raw = state; if (sw->raw == sw->sw) return; if (sw->state == SW_STEADY) sw->last = sw->sw; sw->timer = DEBOUNCE_DELAY; sw->sw = sw->raw; sw->state = SW_DEBOUNCE; } uint32_t switch_pressed(const struct switch_t* const sw) { if ((sw->state == SW_STEADY) && sw->sw) return sw->timer; return 0; } int switch_released(const struct switch_t* const sw) { if (sw->state != SW_STEADY) return 0; if (!sw->last) return 0; if (sw->sw) return 0; return 1; } void switch_ack(struct switch_t* const sw) { if (sw->state == SW_STEADY) sw->last = sw->sw; } codec2-1.0.1/stm32/src/sm1000_leds_switches_ut.c000066400000000000000000000023171412132000500211120ustar00rootroot00000000000000/*---------------------------------------------------------------------------*\ FILE........: sm1000_leds_switches_ut.c AUTHOR......: David Rowe DATE CREATED: August 5 2014 Unit Test program for the SM1000 switches and LEDs driver. \*---------------------------------------------------------------------------*/ /* Copyright (C) 2014 David Rowe All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 2.1, as published by the Free Software Foundation. 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 Lesser General Public License along with this program; if not, see . */ #include #include "sm1000_leds_switches.h" int main(void) { sm1000_leds_switches_init(); while(1) { led_pwr(switch_select()); led_ptt(switch_ptt()); led_rt(switch_back()); led_err(!switch_back()); } } codec2-1.0.1/stm32/src/sm1000_main.c000066400000000000000000001421111412132000500164630ustar00rootroot00000000000000/*---------------------------------------------------------------------------*\ FILE........: sm1000_main.c AUTHOR......: David Rowe DATE CREATED: August 5 2014 Main program for SM1000. \*---------------------------------------------------------------------------*/ /* Copyright (C) 2014 David Rowe All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 2.1, as published by the Free Software Foundation. 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 Lesser General Public License along with this program; if not, see . */ #include "stm32f4_adc.h" #include "stm32f4_dac.h" #include "stm32f4_vrom.h" #include "stm32f4_usart.h" #include "freedv_api.h" #include "codec2_fdmdv.h" #include "sm1000_leds_switches.h" #include "memtools.h" #include #include #include #include #include #include #include "sfx.h" #include "sounds.h" #include "morse.h" #include "menu.h" #include "tot.h" #define VERSION "V5" #define FORTY_MS_16K (0.04*16000) /* 40ms of samples at 16 kHz */ #define FREEDV_NSAMPLES_16K (2*FREEDV_NSAMPLES) #define CCM (void*)0x10000000 /* start of 64k CCM memory */ #define CCM_LEN 0x10000 /* start of 64k CCM memory */ #define MENU_LED_PERIOD 100 #define ANNOUNCE_DELAY 1500 #define HOLD_DELAY 1000 #define MENU_DELAY 1000 #define STATE_RX 0x00 /*!< Receive state: normal operation */ #define STATE_TX 0x10 /*!< Transmit state: normal operation */ #define STATE_RX_TOT 0x01 /*!< Receive state: after time-out */ #define STATE_MENU 0x20 /*!< Menu state: normal operation */ /*! * State machine states. We consider our state depending on what events * are in effect at the start of the main() loop. For buttons, we have * the following events: * * PRESS: Short-succession down-and-up event. (<1 second) * DOWN: Button press event with no release. * UP: Button release event. * HOLD: Button press for a minimum duration of 1 second without * release. * * We also have some other state machines: * TOT: * IDLE: No time-out event * WARN: Warning period reached event * WARN_TICK: Next warning tick due event * TIMEOUT: Cease transmit event * * We consider ourselves to be in one of a few finite states: * * STATE_RX: Normal receive state. * Conditions: !PTT.DOWN, !SELECT.HOLD * * We receive samples via the TRX ADC and pass those * to SPEAKER DAC after demodulation/filtering. * * On SELECT.HOLD: go to STATE_MENU * On SELECT.PRESS: next mode, stay in STATE_RX * On BACK.PRESS: prev mode, stay in STATE_RX * On PTT.DOWN: reset TOT, go to STATE_TX * * STATE_TX: Normal transmit state. * Conditions: PTT.DOWN, !TOT.TIMEOUT * * We receive samples via the MIC ADC and pass those * to TRX DAC after modulation/filtering. * * On PTT.UP: reset TOT, go to STATE_RX * On TOT.WARN_TICK: play tick noise, * reset WARN_TICK event, * stay in STATE_TX * On TOT.TIMEOUT: play timeout tune, * reset TIMEOUT event * go to STATE_RX_TOT. * * STATE_RX_TOT: Receive after time-out state. * Conditions: PTT.DOWN * * We receive samples via the TRX ADC and pass those * to SPEAKER DAC after demodulation/filtering. * * On PTT.UP: reset TOT, go to STATE_RX * * STATE_MENU: Menu operation state. Operation is dictated by * the menu state machine, when we exit that state * machine, we return to STATE_RX. * * On SELECT.HOLD: select the current menu entry, * if it is a submenu then make that the currnet level * On SELECT.PRESS: next entry in the current menu level * On BACK.PRESS: prev mode in the current menu level * On BACK.HOLD: go up to the previous menu * save any changes to NV memory * This may exit the menu system * On PTT.DOWN: Exit menu system, do not save to NVM * * See the "Menu data" section of this file for the menu structure * */ uint8_t core_state = STATE_RX; #define MAX_MODES 4 #define ANALOG 0 #define DV1600 1 #define DV700D 2 #define DV700E 3 struct switch_t sw_select; /*!< Switch driver for SELECT button */ struct switch_t sw_back; /*!< Switch driver for BACK button */ struct switch_t sw_ptt; /*!< Switch driver for PTT buttons */ struct tot_t tot; /*!< Time-out timer */ unsigned int announceTicker = 0; unsigned int menuLEDTicker = 0; unsigned int menuTicker = 0; unsigned int menuExit = 0; uint32_t ms = 0; /* increments once per ms */ /*! * User preferences */ static struct prefs_t { /*! Serial number */ uint64_t serial; /*! Time-out timer period, in seconds increment */ uint16_t tot_period; /*! Time-out timer warning period, in seconds increment */ uint16_t tot_warn_period; /*! Menu frequency */ uint16_t menu_freq; /*! Menu speed */ uint8_t menu_speed; /*! Menu volume (attenuation) */ uint8_t menu_vol; /*! Default operating mode */ uint8_t op_mode; } prefs; /*! Preferences changed flag */ int prefs_changed = 0; /*! Number of preference images kept */ #define PREFS_IMG_NUM (2) /*! Base ROM ID for preferences */ #define PREFS_IMG_BASE (0) /*! Minimum serial number */ #define PREFS_SERIAL_MIN 8 /*! Maximum serial number */ #define PREFS_SERIAL_MAX UINT64_MAX /*! Preference serial numbers, by slot */ static uint64_t prefs_serial[PREFS_IMG_NUM]; struct tone_gen_t tone_gen; struct sfx_player_t sfx_player; struct morse_player_t morse_player; void SysTick_Handler(void); /*! Menu item root */ static const struct menu_item_t menu_root; #define MENU_EVT_NEXT 0x10 /*!< Increment the current item */ #define MENU_EVT_PREV 0x11 /*!< Decrement the current item */ #define MENU_EVT_SELECT 0x20 /*!< Select current item */ #define MENU_EVT_BACK 0x21 /*!< Go back one level */ #define MENU_EVT_EXIT 0x30 /*!< Exit menu */ /*! * Software-mix two 16-bit samples. */ int16_t software_mix(int16_t a, int16_t b) { int32_t s = a + b; if (s < INT16_MIN) return INT16_MIN; /* Clip! */ if (s > INT16_MAX) return INT16_MAX; /* Clip! */ return s; } /*! Compare current serial with oldest and newest */ void compare_prefs(int* const oldest, int* const newest, int idx) { if (newest && prefs_serial[idx]) { if ((*newest < 0) || (prefs_serial[idx] > prefs_serial[*newest]) || ((prefs_serial[idx] == PREFS_SERIAL_MIN) && (prefs_serial[*newest] == PREFS_SERIAL_MAX))) *newest = idx; } if (oldest) { if ((*oldest < 0) || (!prefs_serial[idx]) || (prefs_serial[idx] < prefs_serial[*oldest]) || ((prefs_serial[idx] == PREFS_SERIAL_MAX) && (prefs_serial[*oldest] == PREFS_SERIAL_MIN))) *oldest = idx; } } /*! Find oldest and newest images */ void find_prefs(int* const oldest, int* const newest) { int i; if (newest) *newest = -1; if (oldest) *oldest = -1; for (i = 0; i < PREFS_IMG_NUM; i++) compare_prefs(oldest, newest, i); } /*! Load preferences from flash */ int load_prefs() { struct prefs_t image[PREFS_IMG_NUM]; int newest = -1; int i; /* Load all copies into RAM */ for (i = 0; i < PREFS_IMG_NUM; i++) { int res = vrom_read(PREFS_IMG_BASE + i, 0, sizeof(image[i]), &image[i]); if (res == sizeof(image[i])) { prefs_serial[i] = image[i].serial; compare_prefs(NULL, &newest, i); } else { prefs_serial[i] = 0; } } if (newest < 0) /* No newest image was found */ return -ENOENT; /* Load from the latest image */ memcpy(&prefs, &image[newest], sizeof(prefs)); return 0; } void print_prefs(struct prefs_t *prefs) { usart_printf("serial: %d\n", (int)prefs->serial); usart_printf("tot_period: %d\n", (int)prefs->tot_period); usart_printf("tot_warn_period: %d\n", (int)prefs->tot_warn_period); usart_printf("menu_freq: %d\n", (int)prefs->menu_freq); usart_printf("menu_speed: %d\n", (int)prefs->menu_speed); usart_printf("menu_vol: %d\n", (int)prefs->menu_vol); usart_printf("op_mode: %d\n", (int)prefs->op_mode); usart_printf("prefs_changed: %d\n", prefs_changed); } struct freedv *set_freedv_mode(int op_mode, int *n_samples) { struct freedv *f = NULL; switch(op_mode) { case ANALOG: usart_printf("Analog\n"); *n_samples = FORTY_MS_16K/4; f = NULL; break; case DV1600: usart_printf("FreeDV 1600\n"); f = freedv_open(FREEDV_MODE_1600); assert(f != NULL); *n_samples = freedv_get_n_speech_samples(f); break; case DV700D: usart_printf("FreeDV 700D\n"); f = freedv_open(FREEDV_MODE_700D); assert(f != NULL); freedv_set_snr_squelch_thresh(f, -2.0); /* squelch at -2.0 dB */ freedv_set_squelch_en(f, 1); freedv_set_eq(f, 1); /* equaliser on by default */ /* Clipping and TXBPF nice to have for 700D. */ freedv_set_clip(f, 1); freedv_set_tx_bpf(f, 1); *n_samples = freedv_get_n_speech_samples(f); break; case DV700E: usart_printf("FreeDV 700E\n"); f = freedv_open(FREEDV_MODE_700E); assert(f != NULL); freedv_set_snr_squelch_thresh(f, 0.0); /* squelch at 0.0 dB */ freedv_set_squelch_en(f, 1); freedv_set_eq(f, 1); /* equaliser on by default */ /* Clipping and TXBPF needed for 700E. */ freedv_set_clip(f, 1); freedv_set_tx_bpf(f, 1); *n_samples = freedv_get_n_speech_samples(f); break; } return f; } int process_core_state_machine(int core_state, struct menu_t *menu, int *op_mode); int main(void) { struct freedv *f; int nin, nout, i; int n_samples, n_samples_16k; usart_init(); usart_printf("SM1000 VERSION: %s\n", VERSION); usart_printf("SM1000 main()... stack 0x%x (%d)\n", &n_samples_16k, (uint32_t)0x2001ffff - (uint32_t)&n_samples_16k); memtools_find_unused(usart_printf); /* Menu data */ struct menu_t menu; /* Outgoing sample counter */ int spk_nsamples = 0; /* Current runtime operation mode */ int op_mode = ANALOG; /* init all the drivers for various peripherals */ SysTick_Config(SystemCoreClock/1000); /* 1 kHz SysTick */ sm1000_leds_switches_init(); /* Enable CRC clock */ RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_CRC, ENABLE); /* Briefly open FreeDV 700D to determine buffer sizes we need (700D has the largest buffers) */ f = freedv_open(FREEDV_MODE_700D); int n_speech_samples = freedv_get_n_speech_samples(f); int n_speech_samples_16k = 2*n_speech_samples; int n_modem_samples = freedv_get_n_max_modem_samples(f); int n_modem_samples_16k = 2*n_modem_samples; freedv_close(f); f = NULL; usart_printf("n_speech_samples: %d n_modem_samples: %d\n", n_speech_samples, n_modem_samples); /* both speech and modem buffers will be about the same size, but choose the largest and add a little extra padding */ if (n_speech_samples_16k > n_modem_samples_16k) n_samples_16k = n_speech_samples_16k; else n_samples_16k = n_modem_samples_16k; n_samples_16k += FORTY_MS_16K; usart_printf("n_samples_16k: %d storage for 4 FIFOs: %d bytes\n", n_samples_16k, 4*2*n_samples_16k); /* Set up ADCs/DACs and their FIFOs, note storage is in CCM memory */ short *pccm = CCM; usart_printf("pccm before dac/adc open: %p\n", pccm); n_samples = n_samples_16k/2; dac_open(DAC_FS_16KHZ, n_samples_16k, pccm, pccm+n_samples_16k); pccm += 2*n_samples_16k; adc_open(ADC_FS_16KHZ, n_samples_16k, pccm, pccm+n_samples_16k); pccm += 2*n_samples_16k; usart_printf("pccm after dac/adc open: %p\n", pccm); assert((void*)pccm < CCM+CCM_LEN); short *adc16k = pccm; pccm += FDMDV_OS_TAPS_16K+n_samples_16k; short *dac16k = pccm; pccm += n_samples_16k; short adc8k[n_samples]; short dac8k[FDMDV_OS_TAPS_8K+n_samples]; usart_printf("pccm after buffers: %p\n", pccm); assert((void*)pccm < CCM+CCM_LEN); /* clear buffers */ for(i=0; i n_samples_16k) dac_rem = n_samples_16k; for (i = 0; i < dac_rem; i++) dac16k[i] = tone_next(&tone_gen); dac2_write(dac16k, dac_rem, 0); } if (!menuLEDTicker) { menuLEDTicker = MENU_LED_PERIOD; led_rt(LED_INV); } } /* Button released, do an EEPROM erase */ for (i = 0; i < PREFS_IMG_NUM; i++) vrom_erase(i + PREFS_IMG_BASE); } led_rt(LED_OFF); tone_reset(&tone_gen, 0, 0); tot_reset(&tot); usart_printf("loading preferences from flash....\n"); /* Try to load preferences from flash */ if (load_prefs() < 0) { usart_printf("loading default preferences....\n"); /* Fail! Load defaults. */ memset(&prefs, 0, sizeof(prefs)); prefs.op_mode = ANALOG; prefs.menu_vol = 2; prefs.menu_speed = 60; /* 20 WPM */ prefs.menu_freq = 800; prefs.tot_period = 0; /* Disable time-out timer */ prefs.tot_warn_period = 15; } print_prefs(&prefs); /* Set up time-out timer, 100msec ticks */ tot.tick_period = 100; tot.remain_warn_ticks = 10; /* Clear out switch states */ memset(&sw_select, 0, sizeof(sw_select)); memset(&sw_back, 0, sizeof(sw_back)); memset(&sw_ptt, 0, sizeof(sw_ptt)); /* Clear out menu state */ memset(&menu, 0, sizeof(menu)); morse_player.freq = prefs.menu_freq; morse_player.dit_time = prefs.menu_speed; morse_player.msg = NULL; op_mode = prefs.op_mode; /* default op-mode */ f = set_freedv_mode(op_mode, &n_samples); n_samples_16k = 2*n_samples; /* play VERSION and op mode at start-up. Morse player can't queue so we assemble a concatenated string here */ char startup_announcement[16]; if (op_mode == ANALOG) snprintf(startup_announcement, 16, VERSION " ANA"); else if (op_mode == DV1600) snprintf(startup_announcement, 16, VERSION " 1600"); else if (op_mode == DV700D) snprintf(startup_announcement, 16, VERSION " 700D"); else if (op_mode == DV700E) snprintf(startup_announcement, 16, VERSION " 700E"); morse_play(&morse_player, startup_announcement); usart_printf("entering main loop...\n"); uint32_t lastms = ms; while(1) { /* Read switch states */ switch_update(&sw_select, (!switch_select()) ? 1 : 0); switch_update(&sw_back, (!switch_back()) ? 1 : 0); switch_update(&sw_ptt, (switch_ptt() || (!ext_ptt())) ? 1 : 0); /* Update time-out timer state */ tot_update(&tot); /* iterate core state machine based on switch events */ int prev_op_mode = op_mode; int prev_core_state = core_state; core_state = process_core_state_machine(core_state, &menu, &op_mode); /* Acknowledge switch events */ switch_ack(&sw_select); switch_ack(&sw_back); switch_ack(&sw_ptt); /* if mode has changed, re-open freedv */ if (op_mode != prev_op_mode) { usart_printf("Mode change prev_op_mode: %d op_mode: %d\n", prev_op_mode, op_mode); if (f) { freedv_close(f); } f = NULL; f = set_freedv_mode(op_mode, &n_samples); n_samples_16k = 2*n_samples; usart_printf("FreeDV f = 0x%x n_samples: %d n_samples_16k: %d\n", (int)f, n_samples, n_samples_16k); /* clear buffers */ for(i=0; iODR = (1 << 3); /* clipping indicator */ led_err(0); for (i=0; i 28000) led_err(1); } fdmdv_16_to_8_short(adc8k, &adc16k[FDMDV_OS_TAPS_16K], n_samples); if (op_mode == ANALOG) { for(i=0; iODR &= ~(1 << 3); } break; case STATE_RX: case STATE_RX_TOT: /* Receive --------------------------------------------------------------------------*/ not_cptt(1); led_ptt(0); /* ADC1 is the demod in signal from the radio rx, DAC2 is the SM1000 speaker */ if (op_mode == ANALOG) { if (ms > lastms+5000) { usart_printf("Analog\n"); lastms = ms; } if (adc1_read(&adc16k[FDMDV_OS_TAPS_16K], n_samples_16k) == 0) { fdmdv_16_to_8_short(adc8k, &adc16k[FDMDV_OS_TAPS_16K], n_samples); for(i=0; i lastms+5000) { usart_printf("Digital Voice\n"); lastms = ms; } /* 1600 or 700D/E DV mode */ nin = freedv_nin(f); nout = nin; freedv_set_total_bit_errors(f, 0); if (adc1_read(&adc16k[FDMDV_OS_TAPS_16K], 2*nin) == 0) { GPIOE->ODR = (1 << 3); fdmdv_16_to_8_short(adc8k, &adc16k[FDMDV_OS_TAPS_16K], nin); nout = freedv_rx(f, &dac8k[FDMDV_OS_TAPS_8K], adc8k); fdmdv_8_to_16_short(dac16k, &dac8k[FDMDV_OS_TAPS_8K], nout); spk_nsamples = 2*nout; led_rt(freedv_get_sync(f)); led_err(freedv_get_total_bit_errors(f)); GPIOE->ODR &= ~(1 << 3); } } break; default: break; } /* Write audio to speaker output */ if (spk_nsamples || sfx_player.note || morse_player.msg) { /* Make a note of our playback position */ int16_t* play_ptr = dac16k; if (!spk_nsamples) spk_nsamples = dac2_free(); /* * There is audio to play on the external speaker. If there * is a sound or announcement, software-mix it into the outgoing * buffer. */ if (sfx_player.note) { int i; if (menu.stack_depth) { /* Exclusive */ for (i = 0; i < spk_nsamples; i++) dac16k[i] = sfx_next(&sfx_player) >> prefs.menu_vol; } else { /* Software mix */ for (i = 0; i < spk_nsamples; i++) dac16k[i] = software_mix(dac16k[i], sfx_next(&sfx_player) >> prefs.menu_vol); } if (!sfx_player.note && morse_player.msg) announceTicker = ANNOUNCE_DELAY; } else if (!announceTicker && morse_player.msg) { int i; if (menu.stack_depth) { for (i = 0; i < spk_nsamples; i++) dac16k[i] = morse_next(&morse_player) >> prefs.menu_vol; } else { for (i = 0; i < spk_nsamples; i++) dac16k[i] = software_mix(dac16k[i], morse_next(&morse_player) >> prefs.menu_vol); } } while (spk_nsamples) { /* Get the number of samples to be played this time around */ int n_rem = dac2_free(); if (spk_nsamples < n_rem) n_rem = spk_nsamples; /* Play the audio */ dac2_write(play_ptr, n_rem, 0); spk_nsamples -= n_rem; play_ptr += n_rem; } /* Clear out buffer */ memset(dac16k, 0, n_samples_16k*sizeof(short)); } } /* while(1) ... */ } /* * SysTick Interrupt Handler */ void SysTick_Handler(void) { ms++; switch_tick(&sw_select); switch_tick(&sw_back); switch_tick(&sw_ptt); if (menuTicker > 0) { menuTicker--; } if (menuLEDTicker > 0) { menuLEDTicker--; } if (announceTicker > 0) { announceTicker--; } tot_tick(&tot); } int process_core_state_machine(int core_state, struct menu_t *menu, int *op_mode) { /* State machine updates */ switch(core_state) { case STATE_RX: { uint8_t mode_changed = 0; if (!menuTicker) { if (menuExit) { /* We've just exited a menu, wait for release of BACK */ if (switch_released(&sw_back)) menuExit = 0; } else if (switch_pressed(&sw_ptt)) { /* Cancel any announcement if scheduled */ if (announceTicker && morse_player.msg) { announceTicker = 0; morse_play(&morse_player, NULL); } /* Start time-out timer if enabled */ if (prefs.tot_period) tot_start(&tot, prefs.tot_period*10, prefs.tot_warn_period*10); /* Enter transmit state */ core_state = STATE_TX; } else if (switch_pressed(&sw_select) > HOLD_DELAY) { /* Enter the menu */ led_pwr(1); led_ptt(0); led_rt(0); led_err(0); not_cptt(1); menu_enter(menu, &menu_root); menuTicker = MENU_DELAY; core_state = STATE_MENU; prefs_changed = 0; usart_printf("Entering menu ...\n"); print_prefs(&prefs); } else if (switch_released(&sw_select)) { /* Shortcut: change current mode */ *op_mode = (*op_mode + 1) % MAX_MODES; mode_changed = 1; } else if (switch_released(&sw_back)) { /* Shortcut: change current mode */ *op_mode = *op_mode - 1; if (*op_mode < 0) { // Loop back around to the end of the mode list if we reach 0. *op_mode = MAX_MODES - 1; } mode_changed = 1; } if (mode_changed) { /* Announce the new mode */ if (*op_mode == ANALOG) morse_play(&morse_player, "ANA"); else if (*op_mode == DV1600) morse_play(&morse_player, "1600"); else if (*op_mode == DV700D) morse_play(&morse_player, "700D"); else if (*op_mode == DV700E) morse_play(&morse_player, "700E"); sfx_play(&sfx_player, sound_click); } } } break; case STATE_TX: { if (!switch_pressed(&sw_ptt)) { /* PTT released, leave transmit mode */ tot_reset(&tot); core_state = STATE_RX; } else if (tot.event & TOT_EVT_TIMEOUT) { /* Time-out reached */ sfx_play(&sfx_player, sound_death_march); tot.event &= ~TOT_EVT_TIMEOUT; core_state = STATE_RX_TOT; } else if (tot.event & TOT_EVT_WARN_NEXT) { /* Re-set warning flag */ tot.event &= ~TOT_EVT_WARN_NEXT; /* Schedule a click tone */ sfx_play(&sfx_player, sound_click); } } break; case STATE_RX_TOT: if (switch_released(&sw_ptt)) { /* PTT released, leave transmit mode */ tot_reset(&tot); core_state = STATE_RX; } break; case STATE_MENU: if (!menuTicker) { /* We are in a menu */ static uint8_t press_ack = 0; uint8_t save_settings = 0; if (press_ack == 1) { if ((sw_select.state == SW_STEADY) && (!sw_select.sw)) press_ack = 0; } else if (press_ack == 2) { if ((sw_back.state == SW_STEADY) && (!sw_back.sw)) press_ack = 0; } else { if (switch_pressed(&sw_select) > HOLD_DELAY) { menu_exec(menu, MENU_EVT_SELECT); press_ack = 1; menuTicker = MENU_DELAY; } else if (switch_pressed(&sw_back) > HOLD_DELAY) { menu_exec(menu, MENU_EVT_BACK); press_ack = 2; menuTicker = MENU_DELAY; usart_printf("Leaving menu ... stack_depth: %d \n", menu->stack_depth); print_prefs(&prefs); if (!menu->stack_depth) save_settings = prefs_changed; } else if (switch_released(&sw_select)) { menu_exec(menu, MENU_EVT_NEXT); menuTicker = MENU_DELAY; } else if (switch_released(&sw_back)) { menu_exec(menu, MENU_EVT_PREV); menuTicker = MENU_DELAY; } else if (switch_released(&sw_ptt)) { while(menu->stack_depth > 0) menu_exec(menu, MENU_EVT_EXIT); sfx_play(&sfx_player, sound_returned); } /* If exited, put the LED back */ if (!menu->stack_depth) { menuLEDTicker = 0; menuTicker = 0; led_pwr(LED_ON); morse_play(&morse_player, NULL); menuExit = 1; if (save_settings) { int oldest = -1; int res; /* Copy the morse settings in */ prefs.menu_freq = morse_player.freq; prefs.menu_speed = morse_player.dit_time; /* make sure we have same op mode as power on prefs */ *op_mode = prefs.op_mode; /* Increment serial number */ prefs.serial++; /* Find the oldest image */ find_prefs(&oldest, NULL); if (oldest < 0) oldest = 0; /* No current image */ /* Write new settings over it */ usart_printf("vrom_write\n"); res = vrom_write(oldest + PREFS_IMG_BASE, 0, sizeof(prefs), &prefs); if (res >= 0) prefs_serial[oldest] = prefs.serial; } /* Go back to receive state */ core_state = STATE_RX; } } } break; default: break; } return core_state; } /* ---------------------------- Menu data --------------------------- * * MENU - * |- "MODE" Select operating mode * | |- "ANA" - Analog * | |- "DV1600" - FreeDV 1600 * | |- "DV700D" - FreeDV 700D * | |- "DV700E" - FreeDV 700E * | * |- "TOT" Timer Out Timer options * | |- "TIME" - Set timeout time (a sub menu) * | | |- - SELECT.PRESS add 5 sec * | | |- - BACK.PRESS subtracts 5 sec * | | * | |- "WARN" - Set warning time (a sub menu) * | | |- - SELECT.PRESS add 5 sec * | | |- - BACK.PRESS subtracts 5 sec * | * |- "UI" UI (morse code announcments) parameters * | |- "FREQ" - Set tone * | | |- - SELECT.PRESS add 50 Hz * | | |- - BACK.PRESS subtracts 50 Hz * | | * | |- "WPMQ" - Set speed * | | |- - SELECT.PRESS add 5 WPM * | | |- - BACK.PRESS subtracts 5 WPM * | | * | |- "VOL" - Set volume * | | |- - SELECT.PRESS -> quieter * | | |- - BACK.PRESS -> louder */ /*! * Default handler for menu callback. */ static void menu_default_cb(struct menu_t* const menu, uint32_t event) { /* Get the current menu item */ const struct menu_item_t* item = menu_item(menu, 0); uint8_t announce = 0; switch(event) { case MENU_EVT_ENTERED: sfx_play(&sfx_player, sound_startup); /* Choose first item */ menu->current = 0; case MENU_EVT_RETURNED: announce = 1; break; case MENU_EVT_NEXT: sfx_play(&sfx_player, sound_click); menu->current = (menu->current + 1) % item->num_children; announce = 1; break; case MENU_EVT_PREV: sfx_play(&sfx_player, sound_click); if (menu->current == 0) { menu->current = item->num_children - 1; } else { menu->current = menu->current - 1; } announce = 1; break; case MENU_EVT_SELECT: /* Enter the sub-menu */ menu_enter(menu, item->children[menu->current]); break; case MENU_EVT_BACK: /* Exit the menu */ sfx_play(&sfx_player, sound_returned); case MENU_EVT_EXIT: menu_leave(menu); break; default: break; } if (announce) { /* Announce the label of the selected child */ morse_play(&morse_player, item->children[menu->current]->label); } } /* Root menu item forward declarations */ static const struct menu_item_t* menu_root_children[]; /* Root item definition */ static const struct menu_item_t menu_root = { .label = "MENU", .event_cb = menu_default_cb, .children = menu_root_children, .num_children = 3, }; /* Child declarations */ static const struct menu_item_t menu_op_mode; static const struct menu_item_t menu_tot; static const struct menu_item_t menu_ui; static const struct menu_item_t * menu_root_children[] = { &menu_op_mode, &menu_tot, &menu_ui, }; /* Operation Mode menu forward declarations */ static void menu_op_mode_cb(struct menu_t* const menu, uint32_t event); static struct menu_item_t const* menu_op_mode_children[]; /* Operation mode menu */ static const struct menu_item_t menu_op_mode = { .label = "MODE", .event_cb = menu_op_mode_cb, .children = menu_op_mode_children, .num_children = 4, }; /* Children */ static const struct menu_item_t menu_op_mode_analog = { .label = "ANA", .event_cb = NULL, .children = NULL, .num_children = 0, .data = { .ui = ANALOG, }, }; static const struct menu_item_t menu_op_mode_dv1600 = { .label = "1600", .event_cb = NULL, .children = NULL, .num_children = 0, .data = { .ui = DV1600, }, }; static const struct menu_item_t menu_op_mode_dv700D = { .label = "700D", .event_cb = NULL, .children = NULL, .num_children = 0, .data = { .ui = DV700D, }, }; static const struct menu_item_t menu_op_mode_dv700E = { .label = "700E", .event_cb = NULL, .children = NULL, .num_children = 0, .data = { .ui = DV700E, }, }; static struct menu_item_t const* menu_op_mode_children[] = { &menu_op_mode_analog, &menu_op_mode_dv1600, &menu_op_mode_dv700D, &menu_op_mode_dv700E, }; /* Callback function */ static void menu_op_mode_cb(struct menu_t* const menu, uint32_t event) { const struct menu_item_t* item = menu_item(menu, 0); uint8_t announce = 0; switch(event) { case MENU_EVT_ENTERED: sfx_play(&sfx_player, sound_startup); /* Choose current item */ switch(prefs.op_mode) { case DV1600: menu->current = 1; break; case DV700D: menu->current = 2; break; case DV700E: menu->current = 3; break; default: menu->current = 0; } case MENU_EVT_RETURNED: /* Shouldn't happen, but we handle it anyway */ announce = 1; break; case MENU_EVT_NEXT: sfx_play(&sfx_player, sound_click); menu->current = (menu->current + 1) % item->num_children; announce = 1; break; case MENU_EVT_PREV: sfx_play(&sfx_player, sound_click); if (menu->current == 0) { menu->current = item->num_children - 1; } else { menu->current = menu->current - 1; } announce = 1; break; case MENU_EVT_SELECT: /* Choose the selected mode */ prefs.op_mode = item->children[menu->current]->data.ui; /* Play the "selected" tune and return. */ sfx_play(&sfx_player, sound_startup); prefs_changed = 1; menu_leave(menu); break; case MENU_EVT_BACK: /* Exit the menu */ sfx_play(&sfx_player, sound_returned); case MENU_EVT_EXIT: menu_leave(menu); break; default: break; } if (announce) { /* Announce the label of the selected child */ morse_play(&morse_player, item->children[menu->current]->label); } } /* Time-out timer menu forward declarations */ static struct menu_item_t const* menu_tot_children[]; /* Operation mode menu */ static const struct menu_item_t menu_tot = { .label = "TOT", .event_cb = menu_default_cb, .children = menu_tot_children, .num_children = 2, }; /* Children */ static const struct menu_item_t menu_tot_time; static const struct menu_item_t menu_tot_warn; static struct menu_item_t const* menu_tot_children[] = { &menu_tot_time, &menu_tot_warn, }; /* TOT time menu forward declarations */ static void menu_tot_time_cb(struct menu_t* const menu, uint32_t event); /* TOT time menu */ static const struct menu_item_t menu_tot_time = { .label = "TIME", .event_cb = menu_tot_time_cb, .children = NULL, .num_children = 0, }; /* Callback function */ static void menu_tot_time_cb(struct menu_t* const menu, uint32_t event) { uint8_t announce = 0; switch(event) { case MENU_EVT_ENTERED: sfx_play(&sfx_player, sound_startup); /* Get the current period */ menu->current = prefs.tot_period; case MENU_EVT_RETURNED: /* Shouldn't happen, but we handle it anyway */ announce = 1; break; case MENU_EVT_NEXT: sfx_play(&sfx_player, sound_click); /* Adjust the frequency up by 50 Hz */ if (prefs.tot_period < 600) prefs.tot_period += 5; announce = 1; break; case MENU_EVT_PREV: sfx_play(&sfx_player, sound_click); if (prefs.tot_period > 0) prefs.tot_period -= 5; announce = 1; break; case MENU_EVT_SELECT: /* Play the "selected" tune and return. */ sfx_play(&sfx_player, sound_startup); prefs_changed = 1; menu_leave(menu); break; case MENU_EVT_BACK: /* Restore the mode and exit the menu */ sfx_play(&sfx_player, sound_returned); case MENU_EVT_EXIT: prefs.tot_period = menu->current; menu_leave(menu); break; default: break; } if (announce) { /* Render the text, thankfully we don't need re-entrancy */ static char period[6]; snprintf(period, 6, "%d", prefs.tot_period); /* Announce the period */ morse_play(&morse_player, period); } }; /* TOT warning time menu forward declarations */ static void menu_tot_warn_cb(struct menu_t* const menu, uint32_t event); /* TOT warning time menu */ static const struct menu_item_t menu_tot_warn = { .label = "WARN", .event_cb = menu_tot_warn_cb, .children = NULL, .num_children = 0, }; /* Callback function */ static void menu_tot_warn_cb(struct menu_t* const menu, uint32_t event) { uint8_t announce = 0; switch(event) { case MENU_EVT_ENTERED: sfx_play(&sfx_player, sound_startup); /* Get the current period */ if (prefs.tot_warn_period < prefs.tot_period) menu->current = prefs.tot_warn_period; else menu->current = prefs.tot_period; case MENU_EVT_RETURNED: /* Shouldn't happen, but we handle it anyway */ announce = 1; break; case MENU_EVT_NEXT: sfx_play(&sfx_player, sound_click); /* Adjust the frequency up by 50 Hz */ if (prefs.tot_warn_period < prefs.tot_period) prefs.tot_warn_period += 5; announce = 1; break; case MENU_EVT_PREV: sfx_play(&sfx_player, sound_click); if (prefs.tot_warn_period > 0) prefs.tot_warn_period -= 5; announce = 1; break; case MENU_EVT_SELECT: /* Play the "selected" tune and return. */ sfx_play(&sfx_player, sound_startup); prefs_changed = 1; menu_leave(menu); break; case MENU_EVT_BACK: /* Restore the mode and exit the menu */ sfx_play(&sfx_player, sound_returned); case MENU_EVT_EXIT: prefs.tot_warn_period = menu->current; menu_leave(menu); break; default: break; } if (announce) { /* Render the text, thankfully we don't need re-entrancy */ static char period[6]; snprintf(period, 6, "%d", prefs.tot_warn_period); /* Announce the period */ morse_play(&morse_player, period); } }; /* UI menu forward declarations */ static struct menu_item_t const* menu_ui_children[]; /* Operation mode menu */ static const struct menu_item_t menu_ui = { .label = "UI", .event_cb = menu_default_cb, .children = menu_ui_children, .num_children = 3, }; /* Children */ static const struct menu_item_t menu_ui_freq; static const struct menu_item_t menu_ui_speed; static const struct menu_item_t menu_ui_vol; static struct menu_item_t const* menu_ui_children[] = { &menu_ui_freq, &menu_ui_speed, &menu_ui_vol, }; /* UI Frequency menu forward declarations */ static void menu_ui_freq_cb(struct menu_t* const menu, uint32_t event); /* UI Frequency menu */ static const struct menu_item_t menu_ui_freq = { .label = "FREQ", .event_cb = menu_ui_freq_cb, .children = NULL, .num_children = 0, }; /* Callback function */ static void menu_ui_freq_cb(struct menu_t* const menu, uint32_t event) { uint8_t announce = 0; switch(event) { case MENU_EVT_ENTERED: sfx_play(&sfx_player, sound_startup); /* Get the current frequency */ menu->current = morse_player.freq; case MENU_EVT_RETURNED: /* Shouldn't happen, but we handle it anyway */ announce = 1; break; case MENU_EVT_NEXT: sfx_play(&sfx_player, sound_click); /* Adjust the frequency up by 50 Hz */ if (morse_player.freq < 2000) morse_player.freq += 50; announce = 1; break; case MENU_EVT_PREV: sfx_play(&sfx_player, sound_click); if (morse_player.freq > 50) morse_player.freq -= 50; announce = 1; break; case MENU_EVT_SELECT: /* Play the "selected" tune and return. */ sfx_play(&sfx_player, sound_startup); prefs_changed = 1; menu_leave(menu); break; case MENU_EVT_BACK: /* Restore the mode and exit the menu */ sfx_play(&sfx_player, sound_returned); case MENU_EVT_EXIT: morse_player.freq = menu->current; menu_leave(menu); break; default: break; } if (announce) { /* Render the text, thankfully we don't need re-entrancy */ static char freq[6]; snprintf(freq, 6, "%d", morse_player.freq); /* Announce the frequency */ morse_play(&morse_player, freq); } }; /* UI Speed menu forward declarations */ static void menu_ui_speed_cb(struct menu_t* const menu, uint32_t event); /* UI Speed menu */ static const struct menu_item_t menu_ui_speed = { .label = "WPM", .event_cb = menu_ui_speed_cb, .children = NULL, .num_children = 0, }; /* Callback function */ static void menu_ui_speed_cb(struct menu_t* const menu, uint32_t event) { uint8_t announce = 0; /* Get the current WPM */ uint16_t curr_wpm = 1200 / morse_player.dit_time; switch(event) { case MENU_EVT_ENTERED: sfx_play(&sfx_player, sound_startup); /* Get the current frequency */ menu->current = morse_player.dit_time; case MENU_EVT_RETURNED: /* Shouldn't happen, but we handle it anyway */ announce = 1; break; case MENU_EVT_NEXT: sfx_play(&sfx_player, sound_click); /* Increment WPM by 5 */ if (curr_wpm < 60) curr_wpm += 5; announce = 1; break; case MENU_EVT_PREV: sfx_play(&sfx_player, sound_click); if (curr_wpm > 5) curr_wpm -= 5; announce = 1; break; case MENU_EVT_SELECT: /* Play the "selected" tune and return. */ sfx_play(&sfx_player, sound_startup); prefs_changed = 1; menu_leave(menu); break; case MENU_EVT_BACK: /* Restore the mode and exit the menu */ sfx_play(&sfx_player, sound_returned); case MENU_EVT_EXIT: morse_player.dit_time = menu->current; menu_leave(menu); break; default: break; } if (announce) { /* Render the text, thankfully we don't need re-entrancy */ static char wpm[5]; snprintf(wpm, 5, "%d", curr_wpm); /* Set the new parameter */ morse_player.dit_time = 1200 / curr_wpm; /* Announce the words per minute */ morse_play(&morse_player, wpm); } }; /* UI volume menu forward declarations */ static void menu_ui_vol_cb(struct menu_t* const menu, uint32_t event); /* UI volume menu */ static const struct menu_item_t menu_ui_vol = { .label = "VOL", .event_cb = menu_ui_vol_cb, .children = NULL, .num_children = 0, }; /* Callback function */ static void menu_ui_vol_cb(struct menu_t* const menu, uint32_t event) { uint8_t announce = 0; switch(event) { case MENU_EVT_ENTERED: sfx_play(&sfx_player, sound_startup); /* Get the current volume */ menu->current = prefs.menu_vol; case MENU_EVT_RETURNED: /* Shouldn't happen, but we handle it anyway */ announce = 1; break; case MENU_EVT_NEXT: sfx_play(&sfx_player, sound_click); if (prefs.menu_vol > 0) prefs.menu_vol--; announce = 1; break; case MENU_EVT_PREV: sfx_play(&sfx_player, sound_click); if (prefs.menu_vol < 14) prefs.menu_vol++; announce = 1; break; case MENU_EVT_SELECT: /* Play the "selected" tune and return. */ sfx_play(&sfx_player, sound_startup); menu_leave(menu); prefs_changed = 1; break; case MENU_EVT_BACK: /* Restore the mode and exit the menu */ sfx_play(&sfx_player, sound_returned); case MENU_EVT_EXIT: prefs.menu_vol = menu->current; menu_leave(menu); break; default: break; } if (announce) { /* Render the text, thankfully we don't need re-entrancy */ static char vol[5]; snprintf(vol, 5, "%d", 15 - prefs.menu_vol); /* Announce the volume level */ morse_play(&morse_player, vol); } }; codec2-1.0.1/stm32/src/sounds.c000066400000000000000000000035411412132000500160550ustar00rootroot00000000000000/*! * Sound effect library. * * This provides some sound effects for the SM1000 UI. * * Author Stuart Longland * Copyright (C) 2015 FreeDV project. * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU Lesser General Public License version 2.1, * as published by the Free Software Foundation. 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 Lesser General Public * License along with this program; if not, see * . */ #include "sounds.h" const struct sfx_note_t sound_startup[] = { {.freq = 600, .duration = 80}, {.freq = 800, .duration = 80}, {.freq = 1000, .duration = 80}, {.freq = 0, .duration = 0} }; const struct sfx_note_t sound_returned[] = { {.freq = 1000, .duration = 80}, {.freq = 800, .duration = 80}, {.freq = 600, .duration = 80}, {.freq = 0, .duration = 0} }; const struct sfx_note_t sound_click[] = { {.freq = 1200, .duration = 10}, {.freq = 0, .duration = 0} }; const struct sfx_note_t sound_death_march[] = { {.freq = 340, .duration = 400}, {.freq = 0, .duration = 80}, {.freq = 340, .duration = 400}, {.freq = 0, .duration = 80}, {.freq = 340, .duration = 400}, {.freq = 0, .duration = 80}, {.freq = 420, .duration = 400}, {.freq = 0, .duration = 80}, {.freq = 400, .duration = 300}, {.freq = 0, .duration = 80}, {.freq = 340, .duration = 120}, {.freq = 0, .duration = 80}, {.freq = 340, .duration = 120}, {.freq = 0, .duration = 80}, {.freq = 300, .duration = 200}, {.freq = 0, .duration = 80}, {.freq = 340, .duration = 400}, {.freq = 0, .duration = 0}, }; codec2-1.0.1/stm32/src/startup_stm32f4xx.s000066400000000000000000000464401412132000500201330ustar00rootroot00000000000000/** ****************************************************************************** * @file startup_stm32f4xx.s * @author MCD Application Team * @version V1.0.0 * @date 30-September-2011 * @brief STM32F4xx Devices vector table for Atollic TrueSTUDIO toolchain. * This module performs: * - Set the initial SP * - Set the initial PC == Reset_Handler, * - Set the vector table entries with the exceptions ISR address * - Configure the clock system and the external SRAM mounted on * STM324xG-EVAL board to be used as data memory (optional, * to be enabled by user) * - Branches to main in the C library (which eventually * calls main()). * After Reset the Cortex-M4 processor is in Thread mode, * priority is Privileged, and the Stack is set to Main. ****************************************************************************** * @attention * * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE * TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY * DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING * FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. * *

© COPYRIGHT 2011 STMicroelectronics

****************************************************************************** */ .syntax unified .cpu cortex-m3 .fpu softvfp .thumb .global g_pfnVectors .global Default_Handler .global EndofMain /* start address for the initialization values of the .data section. defined in linker script */ .word _sidata /* start address for the .data section. defined in linker script */ .word _sdata /* end address for the .data section. defined in linker script */ .word _edata /* start address for the .bss section. defined in linker script */ .word _sbss /* end address for the .bss section. defined in linker script */ .word _ebss /* stack used for SystemInit_ExtMemCtl; always internal RAM used */ /** * @brief This is the code that gets called when the processor first * starts execution following a reset event. Only the absolutely * necessary set is performed, after which the application * supplied main() routine is called. * @param None * @retval : None */ .section .text.Reset_Handler .weak Reset_Handler .type Reset_Handler, %function Reset_Handler: /* Copy the data segment initializers from flash to SRAM */ movs r1, #0 b LoopCopyDataInit CopyDataInit: ldr r3, =_sidata ldr r3, [r3, r1] str r3, [r0, r1] adds r1, r1, #4 LoopCopyDataInit: ldr r0, =_sdata ldr r3, =_edata adds r2, r0, r1 cmp r2, r3 bcc CopyDataInit ldr r2, =_sbss b LoopFillZerobss /* Zero fill all memory from bss up */ FillZerobss: movs r3, #0 str r3, [r2], #4 LoopFillZerobss: ldr r3, = _ebss cmp r2, r3 bcc FillZerobss /* Zero memory from bss up with a sentinal value */ b LoopFillsentinel Fillsentinel: ldr r3, = 0x55555555 /* sentinel value we put in memory */ str r3, [r2], #4 LoopFillsentinel: ldr r3, = 0x2001fffc /* end of ram */ cmp r2, r3 bcc Fillsentinel /* Call the clock system intitialization function.*/ bl SystemInit /* Call static constructors */ bl __libc_init_array /* Call the application's entry point.*/ bl main EndofMain: bl . .size Reset_Handler, .-Reset_Handler /** * @brief This is the code that gets called when the processor receives an * unexpected interrupt. This simply enters an infinite loop, preserving * the system state for examination by a debugger. * @param None * @retval None */ .section .text.Default_Handler,"ax",%progbits Default_Handler: Infinite_Loop: b Infinite_Loop .size Default_Handler, .-Default_Handler /****************************************************************************** * * The minimal vector table for a Cortex M3. Note that the proper constructs * must be placed on this to ensure that it ends up at physical address * 0x0000.0000. * *******************************************************************************/ .section .isr_vector,"a",%progbits .type g_pfnVectors, %object .size g_pfnVectors, .-g_pfnVectors g_pfnVectors: .word _estack .word Reset_Handler .word NMI_Handler .word HardFault_Handler .word MemManage_Handler .word BusFault_Handler .word UsageFault_Handler .word 0 .word 0 .word 0 .word 0 .word SVC_Handler .word DebugMon_Handler .word 0 .word PendSV_Handler .word SysTick_Handler /* External Interrupts */ .word WWDG_IRQHandler /* Window WatchDog */ .word PVD_IRQHandler /* PVD through EXTI Line detection */ .word TAMP_STAMP_IRQHandler /* Tamper and TimeStamps through the EXTI line */ .word RTC_WKUP_IRQHandler /* RTC Wakeup through the EXTI line */ .word FLASH_IRQHandler /* FLASH */ .word RCC_IRQHandler /* RCC */ .word EXTI0_IRQHandler /* EXTI Line0 */ .word EXTI1_IRQHandler /* EXTI Line1 */ .word EXTI2_IRQHandler /* EXTI Line2 */ .word EXTI3_IRQHandler /* EXTI Line3 */ .word EXTI4_IRQHandler /* EXTI Line4 */ .word DMA1_Stream0_IRQHandler /* DMA1 Stream 0 */ .word DMA1_Stream1_IRQHandler /* DMA1 Stream 1 */ .word DMA1_Stream2_IRQHandler /* DMA1 Stream 2 */ .word DMA1_Stream3_IRQHandler /* DMA1 Stream 3 */ .word DMA1_Stream4_IRQHandler /* DMA1 Stream 4 */ .word DMA1_Stream5_IRQHandler /* DMA1 Stream 5 */ .word DMA1_Stream6_IRQHandler /* DMA1 Stream 6 */ .word ADC_IRQHandler /* ADC1, ADC2 and ADC3s */ .word CAN1_TX_IRQHandler /* CAN1 TX */ .word CAN1_RX0_IRQHandler /* CAN1 RX0 */ .word CAN1_RX1_IRQHandler /* CAN1 RX1 */ .word CAN1_SCE_IRQHandler /* CAN1 SCE */ .word EXTI9_5_IRQHandler /* External Line[9:5]s */ .word TIM1_BRK_TIM9_IRQHandler /* TIM1 Break and TIM9 */ .word TIM1_UP_TIM10_IRQHandler /* TIM1 Update and TIM10 */ .word TIM1_TRG_COM_TIM11_IRQHandler /* TIM1 Trigger and Commutation and TIM11 */ .word TIM1_CC_IRQHandler /* TIM1 Capture Compare */ .word TIM2_IRQHandler /* TIM2 */ .word TIM3_IRQHandler /* TIM3 */ .word TIM4_IRQHandler /* TIM4 */ .word I2C1_EV_IRQHandler /* I2C1 Event */ .word I2C1_ER_IRQHandler /* I2C1 Error */ .word I2C2_EV_IRQHandler /* I2C2 Event */ .word I2C2_ER_IRQHandler /* I2C2 Error */ .word SPI1_IRQHandler /* SPI1 */ .word SPI2_IRQHandler /* SPI2 */ .word USART1_IRQHandler /* USART1 */ .word USART2_IRQHandler /* USART2 */ .word USART3_IRQHandler /* USART3 */ .word EXTI15_10_IRQHandler /* External Line[15:10]s */ .word RTC_Alarm_IRQHandler /* RTC Alarm (A and B) through EXTI Line */ .word OTG_FS_WKUP_IRQHandler /* USB OTG FS Wakeup through EXTI line */ .word TIM8_BRK_TIM12_IRQHandler /* TIM8 Break and TIM12 */ .word TIM8_UP_TIM13_IRQHandler /* TIM8 Update and TIM13 */ .word TIM8_TRG_COM_TIM14_IRQHandler /* TIM8 Trigger and Commutation and TIM14 */ .word TIM8_CC_IRQHandler /* TIM8 Capture Compare */ .word DMA1_Stream7_IRQHandler /* DMA1 Stream7 */ .word FSMC_IRQHandler /* FSMC */ .word SDIO_IRQHandler /* SDIO */ .word TIM5_IRQHandler /* TIM5 */ .word SPI3_IRQHandler /* SPI3 */ .word UART4_IRQHandler /* UART4 */ .word UART5_IRQHandler /* UART5 */ .word TIM6_DAC_IRQHandler /* TIM6 and DAC1&2 underrun errors */ .word TIM7_IRQHandler /* TIM7 */ .word DMA2_Stream0_IRQHandler /* DMA2 Stream 0 */ .word DMA2_Stream1_IRQHandler /* DMA2 Stream 1 */ .word DMA2_Stream2_IRQHandler /* DMA2 Stream 2 */ .word DMA2_Stream3_IRQHandler /* DMA2 Stream 3 */ .word DMA2_Stream4_IRQHandler /* DMA2 Stream 4 */ .word ETH_IRQHandler /* Ethernet */ .word ETH_WKUP_IRQHandler /* Ethernet Wakeup through EXTI line */ .word CAN2_TX_IRQHandler /* CAN2 TX */ .word CAN2_RX0_IRQHandler /* CAN2 RX0 */ .word CAN2_RX1_IRQHandler /* CAN2 RX1 */ .word CAN2_SCE_IRQHandler /* CAN2 SCE */ .word OTG_FS_IRQHandler /* USB OTG FS */ .word DMA2_Stream5_IRQHandler /* DMA2 Stream 5 */ .word DMA2_Stream6_IRQHandler /* DMA2 Stream 6 */ .word DMA2_Stream7_IRQHandler /* DMA2 Stream 7 */ .word USART6_IRQHandler /* USART6 */ .word I2C3_EV_IRQHandler /* I2C3 event */ .word I2C3_ER_IRQHandler /* I2C3 error */ .word OTG_HS_EP1_OUT_IRQHandler /* USB OTG HS End Point 1 Out */ .word OTG_HS_EP1_IN_IRQHandler /* USB OTG HS End Point 1 In */ .word OTG_HS_WKUP_IRQHandler /* USB OTG HS Wakeup through EXTI */ .word OTG_HS_IRQHandler /* USB OTG HS */ .word DCMI_IRQHandler /* DCMI */ .word CRYP_IRQHandler /* CRYP crypto */ .word HASH_RNG_IRQHandler /* Hash and Rng */ .word FPU_IRQHandler /* FPU */ /******************************************************************************* * * Provide weak aliases for each Exception handler to the Default_Handler. * As they are weak aliases, any function with the same name will override * this definition. * *******************************************************************************/ .weak NMI_Handler .thumb_set NMI_Handler,Default_Handler .weak HardFault_Handler .thumb_set HardFault_Handler,Default_Handler .weak MemManage_Handler .thumb_set MemManage_Handler,Default_Handler .weak BusFault_Handler .thumb_set BusFault_Handler,Default_Handler .weak UsageFault_Handler .thumb_set UsageFault_Handler,Default_Handler .weak SVC_Handler .thumb_set SVC_Handler,Default_Handler .weak DebugMon_Handler .thumb_set DebugMon_Handler,Default_Handler .weak PendSV_Handler .thumb_set PendSV_Handler,Default_Handler .weak SysTick_Handler .thumb_set SysTick_Handler,Default_Handler .weak WWDG_IRQHandler .thumb_set WWDG_IRQHandler,Default_Handler .weak PVD_IRQHandler .thumb_set PVD_IRQHandler,Default_Handler .weak TAMP_STAMP_IRQHandler .thumb_set TAMP_STAMP_IRQHandler,Default_Handler .weak RTC_WKUP_IRQHandler .thumb_set RTC_WKUP_IRQHandler,Default_Handler .weak FLASH_IRQHandler .thumb_set FLASH_IRQHandler,Default_Handler .weak RCC_IRQHandler .thumb_set RCC_IRQHandler,Default_Handler .weak EXTI0_IRQHandler .thumb_set EXTI0_IRQHandler,Default_Handler .weak EXTI1_IRQHandler .thumb_set EXTI1_IRQHandler,Default_Handler .weak EXTI2_IRQHandler .thumb_set EXTI2_IRQHandler,Default_Handler .weak EXTI3_IRQHandler .thumb_set EXTI3_IRQHandler,Default_Handler .weak EXTI4_IRQHandler .thumb_set EXTI4_IRQHandler,Default_Handler .weak DMA1_Stream0_IRQHandler .thumb_set DMA1_Stream0_IRQHandler,Default_Handler .weak DMA1_Stream1_IRQHandler .thumb_set DMA1_Stream1_IRQHandler,Default_Handler .weak DMA1_Stream2_IRQHandler .thumb_set DMA1_Stream2_IRQHandler,Default_Handler .weak DMA1_Stream3_IRQHandler .thumb_set DMA1_Stream3_IRQHandler,Default_Handler .weak DMA1_Stream4_IRQHandler .thumb_set DMA1_Stream4_IRQHandler,Default_Handler .weak DMA1_Stream5_IRQHandler .thumb_set DMA1_Stream5_IRQHandler,Default_Handler .weak DMA1_Stream6_IRQHandler .thumb_set DMA1_Stream6_IRQHandler,Default_Handler .weak ADC_IRQHandler .thumb_set ADC_IRQHandler,Default_Handler .weak CAN1_TX_IRQHandler .thumb_set CAN1_TX_IRQHandler,Default_Handler .weak CAN1_RX0_IRQHandler .thumb_set CAN1_RX0_IRQHandler,Default_Handler .weak CAN1_RX1_IRQHandler .thumb_set CAN1_RX1_IRQHandler,Default_Handler .weak CAN1_SCE_IRQHandler .thumb_set CAN1_SCE_IRQHandler,Default_Handler .weak EXTI9_5_IRQHandler .thumb_set EXTI9_5_IRQHandler,Default_Handler .weak TIM1_BRK_TIM9_IRQHandler .thumb_set TIM1_BRK_TIM9_IRQHandler,Default_Handler .weak TIM1_UP_TIM10_IRQHandler .thumb_set TIM1_UP_TIM10_IRQHandler,Default_Handler .weak TIM1_TRG_COM_TIM11_IRQHandler .thumb_set TIM1_TRG_COM_TIM11_IRQHandler,Default_Handler .weak TIM1_CC_IRQHandler .thumb_set TIM1_CC_IRQHandler,Default_Handler .weak TIM2_IRQHandler .thumb_set TIM2_IRQHandler,Default_Handler .weak TIM3_IRQHandler .thumb_set TIM3_IRQHandler,Default_Handler .weak TIM4_IRQHandler .thumb_set TIM4_IRQHandler,Default_Handler .weak I2C1_EV_IRQHandler .thumb_set I2C1_EV_IRQHandler,Default_Handler .weak I2C1_ER_IRQHandler .thumb_set I2C1_ER_IRQHandler,Default_Handler .weak I2C2_EV_IRQHandler .thumb_set I2C2_EV_IRQHandler,Default_Handler .weak I2C2_ER_IRQHandler .thumb_set I2C2_ER_IRQHandler,Default_Handler .weak SPI1_IRQHandler .thumb_set SPI1_IRQHandler,Default_Handler .weak SPI2_IRQHandler .thumb_set SPI2_IRQHandler,Default_Handler .weak USART1_IRQHandler .thumb_set USART1_IRQHandler,Default_Handler .weak USART2_IRQHandler .thumb_set USART2_IRQHandler,Default_Handler .weak USART3_IRQHandler .thumb_set USART3_IRQHandler,Default_Handler .weak EXTI15_10_IRQHandler .thumb_set EXTI15_10_IRQHandler,Default_Handler .weak RTC_Alarm_IRQHandler .thumb_set RTC_Alarm_IRQHandler,Default_Handler .weak OTG_FS_WKUP_IRQHandler .thumb_set OTG_FS_WKUP_IRQHandler,Default_Handler .weak TIM8_BRK_TIM12_IRQHandler .thumb_set TIM8_BRK_TIM12_IRQHandler,Default_Handler .weak TIM8_UP_TIM13_IRQHandler .thumb_set TIM8_UP_TIM13_IRQHandler,Default_Handler .weak TIM8_TRG_COM_TIM14_IRQHandler .thumb_set TIM8_TRG_COM_TIM14_IRQHandler,Default_Handler .weak TIM8_CC_IRQHandler .thumb_set TIM8_CC_IRQHandler,Default_Handler .weak DMA1_Stream7_IRQHandler .thumb_set DMA1_Stream7_IRQHandler,Default_Handler .weak FSMC_IRQHandler .thumb_set FSMC_IRQHandler,Default_Handler .weak SDIO_IRQHandler .thumb_set SDIO_IRQHandler,Default_Handler .weak TIM5_IRQHandler .thumb_set TIM5_IRQHandler,Default_Handler .weak SPI3_IRQHandler .thumb_set SPI3_IRQHandler,Default_Handler .weak UART4_IRQHandler .thumb_set UART4_IRQHandler,Default_Handler .weak UART5_IRQHandler .thumb_set UART5_IRQHandler,Default_Handler .weak TIM6_DAC_IRQHandler .thumb_set TIM6_DAC_IRQHandler,Default_Handler .weak TIM7_IRQHandler .thumb_set TIM7_IRQHandler,Default_Handler .weak DMA2_Stream0_IRQHandler .thumb_set DMA2_Stream0_IRQHandler,Default_Handler .weak DMA2_Stream1_IRQHandler .thumb_set DMA2_Stream1_IRQHandler,Default_Handler .weak DMA2_Stream2_IRQHandler .thumb_set DMA2_Stream2_IRQHandler,Default_Handler .weak DMA2_Stream3_IRQHandler .thumb_set DMA2_Stream3_IRQHandler,Default_Handler .weak DMA2_Stream4_IRQHandler .thumb_set DMA2_Stream4_IRQHandler,Default_Handler .weak ETH_IRQHandler .thumb_set ETH_IRQHandler,Default_Handler .weak ETH_WKUP_IRQHandler .thumb_set ETH_WKUP_IRQHandler,Default_Handler .weak CAN2_TX_IRQHandler .thumb_set CAN2_TX_IRQHandler,Default_Handler .weak CAN2_RX0_IRQHandler .thumb_set CAN2_RX0_IRQHandler,Default_Handler .weak CAN2_RX1_IRQHandler .thumb_set CAN2_RX1_IRQHandler,Default_Handler .weak CAN2_SCE_IRQHandler .thumb_set CAN2_SCE_IRQHandler,Default_Handler .weak OTG_FS_IRQHandler .thumb_set OTG_FS_IRQHandler,Default_Handler .weak DMA2_Stream5_IRQHandler .thumb_set DMA2_Stream5_IRQHandler,Default_Handler .weak DMA2_Stream6_IRQHandler .thumb_set DMA2_Stream6_IRQHandler,Default_Handler .weak DMA2_Stream7_IRQHandler .thumb_set DMA2_Stream7_IRQHandler,Default_Handler .weak USART6_IRQHandler .thumb_set USART6_IRQHandler,Default_Handler .weak I2C3_EV_IRQHandler .thumb_set I2C3_EV_IRQHandler,Default_Handler .weak I2C3_ER_IRQHandler .thumb_set I2C3_ER_IRQHandler,Default_Handler .weak OTG_HS_EP1_OUT_IRQHandler .thumb_set OTG_HS_EP1_OUT_IRQHandler,Default_Handler .weak OTG_HS_EP1_IN_IRQHandler .thumb_set OTG_HS_EP1_IN_IRQHandler,Default_Handler .weak OTG_HS_WKUP_IRQHandler .thumb_set OTG_HS_WKUP_IRQHandler,Default_Handler .weak OTG_HS_IRQHandler .thumb_set OTG_HS_IRQHandler,Default_Handler .weak DCMI_IRQHandler .thumb_set DCMI_IRQHandler,Default_Handler .weak CRYP_IRQHandler .thumb_set CRYP_IRQHandler,Default_Handler .weak HASH_RNG_IRQHandler .thumb_set HASH_RNG_IRQHandler,Default_Handler .weak FPU_IRQHandler .thumb_set FPU_IRQHandler,Default_Handler /******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/ codec2-1.0.1/stm32/src/stm32f4_adc.c000066400000000000000000000212441412132000500165530ustar00rootroot00000000000000/*---------------------------------------------------------------------------*\ FILE........: stm32f4_adc.c AUTHOR......: David Rowe DATE CREATED: 4 June 2013 Two channel ADC driver module for STM32F4. Pin PA1 connects to ADC1, pin PA2 connects to ADC2. \*---------------------------------------------------------------------------*/ /* Copyright (C) 2013 David Rowe All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 2.1, as published by the Free Software Foundation. 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 Lesser General Public License along with this program; if not, see . */ #include #include #include #include "stm32f4xx_adc.h" #include "stm32f4xx_gpio.h" #include "stm32f4xx_rcc.h" #include "codec2_fifo.h" #include "stm32f4_adc.h" #include "debugblinky.h" struct FIFO *adc1_fifo; struct FIFO *adc2_fifo; unsigned short adc_buf[ADC_BUF_SZ]; int adc_overflow1, adc_overflow2; int half,full; #define ADCx_DR_ADDRESS ((uint32_t)0x4001204C) #define DMA_CHANNELx DMA_Channel_0 #define DMA_STREAMx DMA2_Stream0 #define ADCx ADC1 void adc_configure(); static void tim2_config(int fs_divisor); // You can optionally supply your own storage for the FIFO buffers bu1 and buf2, // or set them to NULL and they will be malloc-ed for you void adc_open(int fs_divisor, int fifo_sz, short *buf1, short *buf2) { if (buf1 == NULL) { adc1_fifo = codec2_fifo_create(fifo_sz); adc2_fifo = codec2_fifo_create(fifo_sz); } else { adc1_fifo = codec2_fifo_create_buf(fifo_sz, buf1); adc2_fifo = codec2_fifo_create_buf(fifo_sz, buf2); } tim2_config(fs_divisor); adc_configure(); init_debug_blinky(); } /* n signed 16 bit samples in buf[] if return != -1 */ int adc1_read(short buf[], int n) { return codec2_fifo_read(adc1_fifo, buf, n); } /* n signed 16 bit samples in buf[] if return != -1 */ int adc2_read(short buf[], int n) { return codec2_fifo_read(adc2_fifo, buf, n); } /* Returns number of signed 16 bit samples in the FIFO currently */ int adc1_samps(){ return codec2_fifo_used(adc1_fifo); } /* Returns number of signed 16 bit samples in the FIFO currently */ int adc2_samps(){ return codec2_fifo_used(adc2_fifo); } static void tim2_config(int fs_divisor) { TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; /* TIM2 Periph clock enable */ RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE); /* -------------------------------------------------------- TIM2 input clock (TIM2CLK) is set to 2 * APB1 clock (PCLK1), since APB1 prescaler is different from 1 (see system_stm32f4xx.c and Fig 13 clock tree figure in DM0031020.pdf). Sample rate Fs = 2*PCLK1/TIM_ClockDivision = (HCLK/2)/TIM_ClockDivision ----------------------------------------------------------- */ /* Time base configuration */ TIM_TimeBaseStructInit(&TIM_TimeBaseStructure); TIM_TimeBaseStructure.TIM_Period = fs_divisor - 1; TIM_TimeBaseStructure.TIM_Prescaler = 0; TIM_TimeBaseStructure.TIM_ClockDivision = 0; TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure); /* TIM2 TRGO selection */ TIM_SelectOutputTrigger(TIM2, TIM_TRGOSource_Update); /* TIM2 enable counter */ TIM_Cmd(TIM2, ENABLE); } void adc_configure(){ ADC_InitTypeDef ADC_init_structure; GPIO_InitTypeDef GPIO_initStructre; DMA_InitTypeDef DMA_InitStructure; NVIC_InitTypeDef NVIC_InitStructure; // Clock configuration RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1,ENABLE); RCC_AHB1PeriphClockCmd(RCC_AHB1ENR_GPIOAEN,ENABLE); RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_DMA2, ENABLE); // Analog pin configuration ADC1->PA1, ADC2->PA2 GPIO_initStructre.GPIO_Pin = GPIO_Pin_1 | GPIO_Pin_2; GPIO_initStructre.GPIO_Mode = GPIO_Mode_AN; GPIO_initStructre.GPIO_PuPd = GPIO_PuPd_NOPULL; GPIO_Init(GPIOA,&GPIO_initStructre); // ADC structure configuration ADC_DeInit(); ADC_init_structure.ADC_DataAlign = ADC_DataAlign_Left; ADC_init_structure.ADC_Resolution = ADC_Resolution_12b; ADC_init_structure.ADC_ContinuousConvMode = DISABLE; ADC_init_structure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_T2_TRGO; ADC_init_structure.ADC_ExternalTrigConvEdge = ADC_ExternalTrigConvEdge_Rising; ADC_init_structure.ADC_NbrOfConversion = 2; ADC_init_structure.ADC_ScanConvMode = ENABLE; ADC_Init(ADCx,&ADC_init_structure); // Select the channel to be read from ADC_RegularChannelConfig(ADCx,ADC_Channel_1,1,ADC_SampleTime_144Cycles); ADC_RegularChannelConfig(ADCx,ADC_Channel_2,2,ADC_SampleTime_144Cycles); //ADC_VBATCmd(ENABLE); /* DMA configuration **************************************/ DMA_DeInit(DMA_STREAMx); DMA_InitStructure.DMA_Channel = DMA_CHANNELx; DMA_InitStructure.DMA_PeripheralBaseAddr = (uint32_t)ADCx_DR_ADDRESS; DMA_InitStructure.DMA_Memory0BaseAddr = (uint32_t)adc_buf; DMA_InitStructure.DMA_DIR = DMA_DIR_PeripheralToMemory; DMA_InitStructure.DMA_BufferSize = ADC_BUF_SZ; DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_Disable; DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Enable; DMA_InitStructure.DMA_PeripheralDataSize = DMA_PeripheralDataSize_HalfWord; DMA_InitStructure.DMA_MemoryDataSize = DMA_MemoryDataSize_HalfWord; DMA_InitStructure.DMA_Mode = DMA_Mode_Circular; DMA_InitStructure.DMA_Priority = DMA_Priority_High; DMA_InitStructure.DMA_FIFOMode = DMA_FIFOMode_Disable; DMA_InitStructure.DMA_FIFOThreshold = DMA_FIFOThreshold_HalfFull; DMA_InitStructure.DMA_MemoryBurst = DMA_MemoryBurst_Single; DMA_InitStructure.DMA_PeripheralBurst = DMA_PeripheralBurst_Single; DMA_Init(DMA_STREAMx, &DMA_InitStructure); /* Enable DMA request after last transfer (Single-ADC mode) */ ADC_DMARequestAfterLastTransferCmd(ADCx, ENABLE); /* Enable ADC1 DMA */ ADC_DMACmd(ADCx, ENABLE); /* DMA2_Stream0 enable */ DMA_Cmd(DMA_STREAMx, ENABLE); /* Enable DMA Half & Complete interrupts */ DMA_ITConfig(DMA2_Stream0, DMA_IT_TC | DMA_IT_HT, ENABLE); /* Enable the DMA Stream IRQ Channel */ NVIC_InitStructure.NVIC_IRQChannel = DMA2_Stream0_IRQn; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0; NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0; NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; NVIC_Init(&NVIC_InitStructure); // Enable and start ADC conversion ADC_Cmd(ADC1,ENABLE); ADC_SoftwareStartConv(ADC1); } /* This function handles DMA Stream interrupt request. */ void DMA2_Stream0_IRQHandler(void) { int i, j, sam; short signed_buf1[ADC_BUF_SZ/2]; short signed_buf2[ADC_BUF_SZ/2]; GPIOE->ODR |= (1 << 0); /* Half transfer interrupt */ if(DMA_GetITStatus(DMA2_Stream0, DMA_IT_HTIF0) != RESET) { half++; /* convert to signed */ for(i=0, j=0; iODR &= ~(1 << 0); } codec2-1.0.1/stm32/src/stm32f4_adc_tuner.c000066400000000000000000000205741412132000500177750ustar00rootroot00000000000000/*---------------------------------------------------------------------------*\ FILE........: stm32f4_adc_tuner.c AUTHOR......: David Rowe DATE CREATED: 19 Feb 2015 Single channel ADC driver module for STM32F4 that samples pin PA1 at 2 MHz and down converts to 50 kHz, with "tuning" centred at 500 kHz. See codec2-dev/octave.m for a simulation model. \*---------------------------------------------------------------------------*/ /* Copyright (C) 2015 David Rowe All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 2.1, as published by the Free Software Foundation. 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 Lesser General Public License along with this program; if not, see . */ #include #include #include #include "stm32f4xx_adc.h" #include "stm32f4xx_gpio.h" #include "stm32f4xx_rcc.h" #include "codec2_fifo.h" #include "stm32f4_adc_tuner.h" #include "debugblinky.h" #include "iir_tuner.h" struct FIFO *adc1_fifo; unsigned short adc_buf[ADC_TUNER_BUF_SZ], *padc_buf; int adc_overflow1; int half,full; static short tuner_en = 1; #define ADCx_DR_ADDRESS ((uint32_t)0x4001204C) #define DMA_CHANNELx DMA_Channel_0 #define DMA_STREAMx DMA2_Stream0 #define ADCx ADC1 void adc_configure(); static void tim2_config(void); //#define DUMMY_SIGNAL #ifdef DUMMY_SIGNAL unsigned short sine[ADC_TUNER_BUF_SZ]; #endif void adc_open(int fifo_sz) { adc1_fifo = codec2_fifo_create(fifo_sz); assert(adc1_fifo != NULL); tim2_config(); adc_configure(); init_debug_blinky(); } /* n signed 16 bit samples in buf[] if return != -1 */ int adc1_read(short buf[], int n) { return codec2_fifo_read(adc1_fifo, buf, n); } void adc_set_tuner_en(short flag) { tuner_en = flag; } static void tim2_config(void) { TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; /* TIM2 Periph clock enable */ RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE); /* -------------------------------------------------------- TIM2 input clock (TIM2CLK) is set to 2 * APB1 clock (PCLK1), since APB1 prescaler is different from 1 (see system_stm32f4xx.c and Fig 13 clock tree figure in DM0031020.pdf). Sample rate Fs = 2*PCLK1/)TIM_ClockDivision+1) = (HCLK/2)/(TIM_ClockDivision+1) Note from David: The +1 was discovered empirically, still not sure if it's right. ----------------------------------------------------------- */ /* Time base configuration */ TIM_TimeBaseStructInit(&TIM_TimeBaseStructure); TIM_TimeBaseStructure.TIM_Period = 41; TIM_TimeBaseStructure.TIM_Prescaler = 0; TIM_TimeBaseStructure.TIM_ClockDivision = 0; TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure); /* TIM2 TRGO selection */ TIM_SelectOutputTrigger(TIM2, TIM_TRGOSource_Update); /* TIM2 enable counter */ TIM_Cmd(TIM2, ENABLE); } void adc_configure() { ADC_InitTypeDef ADC_init_structure; GPIO_InitTypeDef GPIO_initStructre; DMA_InitTypeDef DMA_InitStructure; NVIC_InitTypeDef NVIC_InitStructure; // Clock configuration RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1,ENABLE); RCC_AHB1PeriphClockCmd(RCC_AHB1ENR_GPIOAEN,ENABLE); RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_DMA2, ENABLE); // Analog pin configuration ADC1->PA1 GPIO_initStructre.GPIO_Pin = GPIO_Pin_1; GPIO_initStructre.GPIO_Mode = GPIO_Mode_AN; GPIO_initStructre.GPIO_PuPd = GPIO_PuPd_NOPULL; GPIO_Init(GPIOA,&GPIO_initStructre); // ADC structure configuration ADC_DeInit(); ADC_init_structure.ADC_DataAlign = ADC_DataAlign_Left; ADC_init_structure.ADC_Resolution = ADC_Resolution_12b; ADC_init_structure.ADC_ContinuousConvMode = DISABLE; ADC_init_structure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_T2_TRGO; ADC_init_structure.ADC_ExternalTrigConvEdge = ADC_ExternalTrigConvEdge_Rising; ADC_init_structure.ADC_NbrOfConversion = 1; ADC_Init(ADCx,&ADC_init_structure); // Select the channel to be read from ADC_RegularChannelConfig(ADCx,ADC_Channel_1,1,ADC_SampleTime_3Cycles); /* DMA configuration **************************************/ DMA_DeInit(DMA_STREAMx); DMA_InitStructure.DMA_Channel = DMA_CHANNELx; DMA_InitStructure.DMA_PeripheralBaseAddr = (uint32_t)ADCx_DR_ADDRESS; DMA_InitStructure.DMA_Memory0BaseAddr = (uint32_t)adc_buf; DMA_InitStructure.DMA_DIR = DMA_DIR_PeripheralToMemory; DMA_InitStructure.DMA_BufferSize = ADC_TUNER_BUF_SZ; DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_Disable; DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Enable; DMA_InitStructure.DMA_PeripheralDataSize = DMA_PeripheralDataSize_HalfWord; DMA_InitStructure.DMA_MemoryDataSize = DMA_MemoryDataSize_HalfWord; DMA_InitStructure.DMA_Mode = DMA_Mode_Circular; DMA_InitStructure.DMA_Priority = DMA_Priority_High; DMA_InitStructure.DMA_FIFOMode = DMA_FIFOMode_Disable; DMA_InitStructure.DMA_FIFOThreshold = DMA_FIFOThreshold_HalfFull; DMA_InitStructure.DMA_MemoryBurst = DMA_MemoryBurst_Single; DMA_InitStructure.DMA_PeripheralBurst = DMA_PeripheralBurst_Single; DMA_Init(DMA_STREAMx, &DMA_InitStructure); /* Enable DMA request after last transfer (Single-ADC mode) */ ADC_DMARequestAfterLastTransferCmd(ADCx, ENABLE); /* Enable ADC1 DMA */ ADC_DMACmd(ADCx, ENABLE); /* DMA2_Stream0 enable */ DMA_Cmd(DMA_STREAMx, ENABLE); /* Enable DMA Half & Complete interrupts */ DMA_ITConfig(DMA2_Stream0, DMA_IT_TC | DMA_IT_HT, ENABLE); /* Enable the DMA Stream IRQ Channel */ NVIC_InitStructure.NVIC_IRQChannel = DMA2_Stream0_IRQn; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0; NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0; NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; NVIC_Init(&NVIC_InitStructure); // Enable and start ADC conversion ADC_Cmd(ADC1,ENABLE); ADC_SoftwareStartConv(ADC1); padc_buf = adc_buf; #ifdef DUMMY_SIGNAL int i; /* Fs/4 sine wave, right in the middle of the pass band ! */ for(i=0; iODR |= (1 << 0); /* Half transfer interrupt */ if(DMA_GetITStatus(DMA2_Stream0, DMA_IT_HTIF0) != RESET) { half++; if (tuner_en) { iir_tuner(dec_buf, padc_buf); /* write first half to fifo. Note we are writing ADC_TUNER_N/2 floats, which is equivalent to ADC_TUNER_N shorts. */ if (codec2_fifo_write(adc1_fifo, (short*)dec_buf, ADC_TUNER_N) == -1) { adc_overflow1++; } } else // note: we dump signed shorts when tuner off codec2_fifo_write(adc1_fifo, (short*)padc_buf, ADC_TUNER_BUF_SZ/2); /* Clear DMA Stream Transfer Complete interrupt pending bit */ DMA_ClearITPendingBit(DMA2_Stream0, DMA_IT_HTIF0); } /* Transfer complete interrupt */ if(DMA_GetITStatus(DMA2_Stream0, DMA_IT_TCIF0) != RESET) { full++; if (tuner_en) { iir_tuner(dec_buf, &padc_buf[ADC_TUNER_BUF_SZ/2]); /* write second half to fifo */ if (codec2_fifo_write(adc1_fifo, (short*)dec_buf, ADC_TUNER_N) == -1) { adc_overflow1++; } } else codec2_fifo_write(adc1_fifo, (short*)&padc_buf[ADC_TUNER_BUF_SZ/2], ADC_TUNER_BUF_SZ/2); /* Clear DMA Stream Transfer Complete interrupt pending bit */ DMA_ClearITPendingBit(DMA2_Stream0, DMA_IT_TCIF0); } GPIOE->ODR &= ~(1 << 0); } codec2-1.0.1/stm32/src/stm32f4_dac.c000066400000000000000000000330741412132000500165570ustar00rootroot00000000000000/*---------------------------------------------------------------------------*\ FILE........: stm32f4_dac.c AUTHOR......: David Rowe DATE CREATED: 1 June 2013 DAC driver module for STM32F4. DAC1 is connected to pin PA4, DAC2 is connected to pin PA5. \*---------------------------------------------------------------------------*/ /* Copyright (C) 2013 David Rowe All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 2.1, as published by the Free Software Foundation. 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 Lesser General Public License along with this program; if not, see . */ #include #include #include #include "stm32f4xx.h" #include "codec2_fifo.h" #include "stm32f4_dac.h" #include "debugblinky.h" /* write to these registers for 12 bit left aligned data, as per data sheet make sure 4 least sig bits set to 0 */ #define DAC_DHR12R1_ADDRESS 0x40007408 #define DAC_DHR12R2_ADDRESS 0x40007414 #define DAC_MAX 4096 /* maximum amplitude */ /* y=mx+c mapping of samples16 bit shorts to DAC samples. Table: 74 of data sheet indicates With DAC buffer on, DAC range is limited to 0x0E0 to 0xF1C at VREF+ = 3.6 V, we have Vref=3.3V which is close. */ #define M ((3868.0-224.0)/65536.0) #define C 2047.0 static struct FIFO *dac1_fifo; static struct FIFO *dac2_fifo; static unsigned short dac1_buf[DAC_BUF_SZ]; static unsigned short dac2_buf[DAC_BUF_SZ]; static void tim6_config(int fs_divisor); static void dac1_config(void); static void dac2_config(void); int dac_underflow; // You can optionally supply your own storage for the FIFO buffers bu1 and buf2, // or set them to NULL and they will be malloc-ed for you void dac_open(int fs_divisor, int fifo_size, short *buf1, short *buf2) { memset(dac1_buf, 32768, sizeof(short)*DAC_BUF_SZ); memset(dac2_buf, 32768, sizeof(short)*DAC_BUF_SZ); /* Create fifos */ if ((buf1 == NULL) && (buf2 == NULL)) { dac1_fifo = codec2_fifo_create(fifo_size); dac2_fifo = codec2_fifo_create(fifo_size); } else { dac1_fifo = codec2_fifo_create_buf(fifo_size, buf1); dac2_fifo = codec2_fifo_create_buf(fifo_size, buf2); } /* Turn on the clocks we need -----------------------------------------------*/ /* DMA1 clock enable */ RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_DMA1, ENABLE); /* GPIOA clock enable (to be used with DAC) */ RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE); /* DAC Periph clock enable */ RCC_APB1PeriphClockCmd(RCC_APB1Periph_DAC, ENABLE); /* GPIO Pin configuration DAC1->PA.4, DAC2->PA.5 configuration --------------*/ GPIO_InitTypeDef GPIO_InitStructure; GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4 | GPIO_Pin_5; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AN; GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL; GPIO_Init(GPIOA, &GPIO_InitStructure); /* Timer and DAC 1 & 2 Configuration ----------------------------------------*/ tim6_config(fs_divisor); dac1_config(); dac2_config(); init_debug_blinky(); } /* Call these functions to send samples to the DACs. For your convenience they accept signed 16 bit samples. You can optionally limit how much data to store in the fifo */ int dac1_write(short buf[], int n, int limit) { /* artificial limit < FIFO size */ if (limit) { if ((codec2_fifo_used(dac1_fifo) + n) <= limit) return codec2_fifo_write(dac1_fifo, buf, n); else return -1; } /* normal operation */ return codec2_fifo_write(dac1_fifo, buf, n); } int dac2_write(short buf[], int n, int limit) { /* artificial limit < FIFO size */ if (limit) { if ((codec2_fifo_used(dac2_fifo) + n) <= limit) return codec2_fifo_write(dac2_fifo, buf, n); else return -1; } /* normal operation */ return codec2_fifo_write(dac2_fifo, buf, n); } int dac1_free() { return codec2_fifo_free(dac1_fifo); } int dac2_free() { return codec2_fifo_free(dac2_fifo); } static void tim6_config(int fs_divisor) { TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; /* TIM6 Periph clock enable */ RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM6, ENABLE); /* -------------------------------------------------------- TIM6 input clock (TIM6CLK) is set to 2 * APB1 clock (PCLK1), since APB1 prescaler is different from 1 (see system_stm32f4xx.c and Fig 13 clock tree figure in DM0031020.pdf). Sample rate Fs = 2*PCLK1/TIM_ClockDivision = (HCLK/2)/TIM_ClockDivision ----------------------------------------------------------- */ /* Time base configuration */ TIM_TimeBaseStructInit(&TIM_TimeBaseStructure); TIM_TimeBaseStructure.TIM_Period = fs_divisor - 1; TIM_TimeBaseStructure.TIM_Prescaler = 0; TIM_TimeBaseStructure.TIM_ClockDivision = 0; TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; TIM_TimeBaseInit(TIM6, &TIM_TimeBaseStructure); /* TIM6 TRGO selection */ TIM_SelectOutputTrigger(TIM6, TIM_TRGOSource_Update); /* TIM6 enable counter */ TIM_Cmd(TIM6, ENABLE); } static void dac1_config(void) { DAC_InitTypeDef DAC_InitStructure; DMA_InitTypeDef DMA_InitStructure; NVIC_InitTypeDef NVIC_InitStructure; /* DAC channel 1 Configuration */ /* This line fixed a bug that cost me 5 days, bad wave amplitude value, and some STM32F4 periph library bugs caused triangle wave geneartion to be enable resulting in a low level tone on the SM1000, that we thought was caused by analog issues like layour or power supply biasing */ DAC_StructInit(&DAC_InitStructure); DAC_InitStructure.DAC_Trigger = DAC_Trigger_T6_TRGO; DAC_InitStructure.DAC_WaveGeneration = DAC_WaveGeneration_None; DAC_InitStructure.DAC_OutputBuffer = DAC_OutputBuffer_Enable; DAC_Init(DAC_Channel_1, &DAC_InitStructure); /* DMA1_Stream5 channel7 configuration **************************************/ /* Table 35 page 219 of the monster data sheet */ DMA_DeInit(DMA1_Stream5); DMA_InitStructure.DMA_Channel = DMA_Channel_7; DMA_InitStructure.DMA_PeripheralBaseAddr = (uint32_t)DAC_DHR12R1_ADDRESS; DMA_InitStructure.DMA_Memory0BaseAddr = (uint32_t)dac1_buf; DMA_InitStructure.DMA_DIR = DMA_DIR_MemoryToPeripheral; DMA_InitStructure.DMA_BufferSize = DAC_BUF_SZ; DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_Disable; DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Enable; DMA_InitStructure.DMA_PeripheralDataSize = DMA_PeripheralDataSize_HalfWord; DMA_InitStructure.DMA_MemoryDataSize = DMA_MemoryDataSize_HalfWord; DMA_InitStructure.DMA_Mode = DMA_Mode_Circular; DMA_InitStructure.DMA_Priority = DMA_Priority_High; DMA_InitStructure.DMA_FIFOMode = DMA_FIFOMode_Disable; DMA_InitStructure.DMA_FIFOThreshold = DMA_FIFOThreshold_HalfFull; DMA_InitStructure.DMA_MemoryBurst = DMA_MemoryBurst_Single; DMA_InitStructure.DMA_PeripheralBurst = DMA_PeripheralBurst_Single; DMA_Init(DMA1_Stream5, &DMA_InitStructure); /* Enable DMA Half & Complete interrupts */ DMA_ITConfig(DMA1_Stream5, DMA_IT_TC | DMA_IT_HT, ENABLE); /* Enable the DMA Stream IRQ Channel */ NVIC_InitStructure.NVIC_IRQChannel = DMA1_Stream5_IRQn; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0; NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0; NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; NVIC_Init(&NVIC_InitStructure); /* Enable DMA1_Stream5 */ DMA_Cmd(DMA1_Stream5, ENABLE); /* Enable DAC Channel 1 */ DAC_Cmd(DAC_Channel_1, ENABLE); /* Enable DMA for DAC Channel 1 */ DAC_DMACmd(DAC_Channel_1, ENABLE); } static void dac2_config(void) { DAC_InitTypeDef DAC_InitStructure; DMA_InitTypeDef DMA_InitStructure; NVIC_InitTypeDef NVIC_InitStructure; /* DAC channel 2 Configuration (see notes in dac1_config() above) */ DAC_StructInit(&DAC_InitStructure); DAC_InitStructure.DAC_Trigger = DAC_Trigger_T6_TRGO; DAC_InitStructure.DAC_WaveGeneration = DAC_WaveGeneration_None; DAC_InitStructure.DAC_OutputBuffer = DAC_OutputBuffer_Enable; DAC_Init(DAC_Channel_2, &DAC_InitStructure); /* DMA1_Stream6 channel7 configuration **************************************/ DMA_DeInit(DMA1_Stream6); DMA_InitStructure.DMA_Channel = DMA_Channel_7; DMA_InitStructure.DMA_PeripheralBaseAddr = (uint32_t)DAC_DHR12R2_ADDRESS; DMA_InitStructure.DMA_Memory0BaseAddr = (uint32_t)dac2_buf; DMA_InitStructure.DMA_DIR = DMA_DIR_MemoryToPeripheral; DMA_InitStructure.DMA_BufferSize = DAC_BUF_SZ; DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_Disable; DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Enable; DMA_InitStructure.DMA_PeripheralDataSize = DMA_PeripheralDataSize_HalfWord; DMA_InitStructure.DMA_MemoryDataSize = DMA_MemoryDataSize_HalfWord; DMA_InitStructure.DMA_Mode = DMA_Mode_Circular; DMA_InitStructure.DMA_Priority = DMA_Priority_High; DMA_InitStructure.DMA_FIFOMode = DMA_FIFOMode_Disable; DMA_InitStructure.DMA_FIFOThreshold = DMA_FIFOThreshold_HalfFull; DMA_InitStructure.DMA_MemoryBurst = DMA_MemoryBurst_Single; DMA_InitStructure.DMA_PeripheralBurst = DMA_PeripheralBurst_Single; DMA_Init(DMA1_Stream6, &DMA_InitStructure); /* Enable DMA Half & Complete interrupts */ DMA_ITConfig(DMA1_Stream6, DMA_IT_TC | DMA_IT_HT, ENABLE); /* Enable the DMA Stream IRQ Channel */ NVIC_InitStructure.NVIC_IRQChannel = DMA1_Stream6_IRQn; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0; NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0; NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; NVIC_Init(&NVIC_InitStructure); /* Enable DMA1_Stream6 */ DMA_Cmd(DMA1_Stream6, ENABLE); /* Enable DAC Channel 2 */ DAC_Cmd(DAC_Channel_2, ENABLE); /* Enable DMA for DAC Channel 2 */ DAC_DMACmd(DAC_Channel_2, ENABLE); } /******************************************************************************/ /* STM32F4xx Peripherals Interrupt Handlers */ /* Add here the Interrupt Handler for the used peripheral(s) (PPP), for the */ /* available peripheral interrupt handler's name please refer to the startup */ /* file (startup_stm32f40xx.s/startup_stm32f427x.s). */ /******************************************************************************/ /* This function handles DMA1 Stream 5 interrupt request for DAC1. */ void DMA1_Stream5_IRQHandler(void) { int i, j, sam; short signed_buf[DAC_BUF_SZ/2]; GPIOE->ODR |= (1 << 1); /* Transfer half empty interrupt - refill first half */ if(DMA_GetITStatus(DMA1_Stream5, DMA_IT_HTIF5) != RESET) { /* fill first half from fifo */ if (codec2_fifo_read(dac1_fifo, signed_buf, DAC_BUF_SZ/2) == -1) { memset(signed_buf, 0, sizeof(short)*DAC_BUF_SZ/2); dac_underflow++; } /* convert to unsigned */ for(i=0; iODR &= ~(1 << 1); } /* This function handles DMA1 Stream 6 interrupt request for DAC2. */ void DMA1_Stream6_IRQHandler(void) { int i, j, sam; short signed_buf[DAC_BUF_SZ/2]; GPIOE->ODR |= (1 << 2); /* Transfer half empty interrupt - refill first half */ if(DMA_GetITStatus(DMA1_Stream6, DMA_IT_HTIF6) != RESET) { /* fill first half from fifo */ if (codec2_fifo_read(dac2_fifo, signed_buf, DAC_BUF_SZ/2) == -1) { memset(signed_buf, 0, sizeof(short)*DAC_BUF_SZ/2); dac_underflow++; } /* convert to unsigned */ for(i=0; iODR &= ~(1 << 2); } codec2-1.0.1/stm32/src/stm32f4_dacduc.c000066400000000000000000000322441412132000500172510ustar00rootroot00000000000000/*---------------------------------------------------------------------------*\ FILE........: stm32f4_dac.c AUTHOR......: David Rowe DATE CREATED: 1 June 2013 DAC driver module for STM32F4. DAC1 if fixed at Fs of 2Mhz. \*---------------------------------------------------------------------------*/ /* Copyright (C) 2013 David Rowe All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 2.1, as published by the Free Software Foundation. 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 Lesser General Public License along with this program; if not, see . */ #include #include #include #include "stm32f4xx.h" #include "codec2_fifo.h" #include "stm32f4_dacduc.h" #include "debugblinky.h" /* write to these registers for 12 bit left aligned data, as per data sheet make sure 4 least sig bits set to 0 */ #define DAC_DHR12R1_ADDRESS 0x40007408 #define DAC_DHR12R2_ADDRESS 0x40007414 #define DAC_MAX 4096 /* maximum amplitude */ /* y=mx+c mapping of samples16 bit shorts to DAC samples. Table: 74 of data sheet indicates With DAC buffer on, DAC range is limited to 0x0E0 to 0xF1C at VREF+ = 3.6 V, we have Vref=3.3V which is close. */ #define M ((3868.0-224.0)/65536.0) #define C 2047.0 static struct FIFO *dac1_fifo; static struct FIFO *dac2_fifo; static unsigned short dac1_buf[DAC_DUC_BUF_SZ]; static unsigned short dac2_buf[DAC_BUF_SZ]; static void tim6_config(void); static void tim7_config(void); static void dac1_config(void); static void dac2_config(void); int dac_underflow; void fast_dac_open(int dac1_fifo_size,int dac2_fifo_size) { memset(dac1_buf, 32768, sizeof(short)*DAC_DUC_BUF_SZ); memset(dac2_buf, 32768, sizeof(short)*DAC_BUF_SZ); /* Create fifos */ dac1_fifo = codec2_fifo_create(dac1_fifo_size); dac2_fifo = codec2_fifo_create(dac2_fifo_size); assert(dac1_fifo != NULL); assert(dac2_fifo != NULL); /* Turn on the clocks we need -----------------------------------------------*/ /* DMA1 clock enable */ RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_DMA1, ENABLE); /* GPIOA clock enable (to be used with DAC) */ RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE); /* DAC Periph clock enable */ RCC_APB1PeriphClockCmd(RCC_APB1Periph_DAC, ENABLE); /* GPIO Pin configuration DAC1->PA.4, DAC2->PA.5 configuration --------------*/ GPIO_InitTypeDef GPIO_InitStructure; GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4 | GPIO_Pin_5; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AN; GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL; GPIO_Init(GPIOA, &GPIO_InitStructure); /* Timer and DAC 1 & 2 Configuration ----------------------------------------*/ tim7_config(); tim6_config(); dac1_config(); dac2_config(); init_debug_blinky(); } /* Call these puppies to send samples to the DACs. For your convenience they accept signed 16 bit samples. */ int dac1_write(short buf[], int n) { return codec2_fifo_write(dac1_fifo, buf, n); } int dac2_write(short buf[], int n) { return codec2_fifo_write(dac2_fifo, buf, n); } static void tim6_config(void) { TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; /* TIM6 Periph clock enable */ RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM6, ENABLE); /* -------------------------------------------------------- TIM6 input clock (TIM6CLK) is set to 2 * APB1 clock (PCLK1), since APB1 prescaler is different from 1 (see system_stm32f4xx.c and Fig 13 clock tree figure in DM0031020.pdf). Sample rate Fs = 2*PCLK1/TIM_ClockDivision = (HCLK/2)/TIM_ClockDivision ----------------------------------------------------------- */ /* Time base configuration */ TIM_TimeBaseStructInit(&TIM_TimeBaseStructure); TIM_TimeBaseStructure.TIM_Period = 5250; TIM_TimeBaseStructure.TIM_Prescaler = 0; TIM_TimeBaseStructure.TIM_ClockDivision = 0; TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; TIM_TimeBaseInit(TIM6, &TIM_TimeBaseStructure); /* TIM6 TRGO selection */ TIM_SelectOutputTrigger(TIM6, TIM_TRGOSource_Update); /* TIM6 enable counter */ TIM_Cmd(TIM6, ENABLE); } /* Sets up tim7 to run at a high sample rate */ void tim7_config(void) { /* Set up tim7 */ TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; /* TIM7 Periph clock enable */ RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM7, ENABLE); /* -------------------------------------------------------- TIM7 input clock (TIM7CLK) is set to 2 * APB1 clock (PCLK1), since APB1 prescaler is different from 1 (see system_stm32f4xx.c and Fig 13 clock tree figure in DM0031020.pdf). Sample rate Fs = 2*PCLK1/TIM_ClockDivision = (HCLK/2)/TIM_ClockDivision ----------------------------------------------------------- */ /* Time base configuration */ TIM_TimeBaseStructInit(&TIM_TimeBaseStructure); TIM_TimeBaseStructure.TIM_Period = 41; TIM_TimeBaseStructure.TIM_Prescaler = 0; TIM_TimeBaseStructure.TIM_ClockDivision = 0; TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; TIM_TimeBaseInit(TIM7, &TIM_TimeBaseStructure); /* TIM7 TRGO selection */ TIM_SelectOutputTrigger(TIM7, TIM_TRGOSource_Update); /* TIM7 enable counter */ TIM_Cmd(TIM7, ENABLE); } static void dac1_config(void) { DAC_InitTypeDef DAC_InitStructure; DMA_InitTypeDef DMA_InitStructure; NVIC_InitTypeDef NVIC_InitStructure; /* DAC channel 1 Configuration */ /* This line fixed a bug that cost me 5 days, bad wave amplitude value, and some STM32F4 periph library bugs caused triangle wave geneartion to be enable resulting in a low level tone on the SM1000, that we thought was caused by analog issues like layour or power supply biasing */ DAC_StructInit(&DAC_InitStructure); DAC_InitStructure.DAC_Trigger = DAC_Trigger_T7_TRGO; DAC_InitStructure.DAC_WaveGeneration = DAC_WaveGeneration_None; /*External buffering is needed to get nice square samples at Fs=2Mhz. See DM00129215.pdf */ DAC_InitStructure.DAC_OutputBuffer = DAC_OutputBuffer_Disable; DAC_Init(DAC_Channel_1, &DAC_InitStructure); /* DMA1_Stream5 channel7 configuration **************************************/ /* Table 35 page 219 of the monster data sheet */ DMA_DeInit(DMA1_Stream5); DMA_InitStructure.DMA_Channel = DMA_Channel_7; DMA_InitStructure.DMA_PeripheralBaseAddr = (uint32_t)DAC_DHR12R1_ADDRESS; DMA_InitStructure.DMA_Memory0BaseAddr = (uint32_t)dac1_buf; DMA_InitStructure.DMA_DIR = DMA_DIR_MemoryToPeripheral; DMA_InitStructure.DMA_BufferSize = DAC_DUC_BUF_SZ; DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_Disable; DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Enable; DMA_InitStructure.DMA_PeripheralDataSize = DMA_PeripheralDataSize_HalfWord; DMA_InitStructure.DMA_MemoryDataSize = DMA_MemoryDataSize_HalfWord; DMA_InitStructure.DMA_Mode = DMA_Mode_Circular; DMA_InitStructure.DMA_Priority = DMA_Priority_High; DMA_InitStructure.DMA_FIFOMode = DMA_FIFOMode_Disable; DMA_InitStructure.DMA_FIFOThreshold = DMA_FIFOThreshold_HalfFull; DMA_InitStructure.DMA_MemoryBurst = DMA_MemoryBurst_Single; DMA_InitStructure.DMA_PeripheralBurst = DMA_PeripheralBurst_Single; DMA_Init(DMA1_Stream5, &DMA_InitStructure); /* Enable DMA Half & Complete interrupts */ DMA_ITConfig(DMA1_Stream5, DMA_IT_TC | DMA_IT_HT, ENABLE); /* Enable the DMA Stream IRQ Channel */ NVIC_InitStructure.NVIC_IRQChannel = DMA1_Stream5_IRQn; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0; NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0; NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; NVIC_Init(&NVIC_InitStructure); /* Enable DMA1_Stream5 */ DMA_Cmd(DMA1_Stream5, ENABLE); /* Enable DAC Channel 1 */ DAC_Cmd(DAC_Channel_1, ENABLE); /* Enable DMA for DAC Channel 1 */ DAC_DMACmd(DAC_Channel_1, ENABLE); } static void dac2_config(void) { DAC_InitTypeDef DAC_InitStructure; DMA_InitTypeDef DMA_InitStructure; NVIC_InitTypeDef NVIC_InitStructure; /* DAC channel 2 Configuration (see notes in dac1_config() above) */ DAC_StructInit(&DAC_InitStructure); DAC_InitStructure.DAC_Trigger = DAC_Trigger_T6_TRGO; DAC_InitStructure.DAC_WaveGeneration = DAC_WaveGeneration_None; DAC_InitStructure.DAC_OutputBuffer = DAC_OutputBuffer_Enable; DAC_Init(DAC_Channel_2, &DAC_InitStructure); /* DMA1_Stream6 channel7 configuration **************************************/ DMA_DeInit(DMA1_Stream6); DMA_InitStructure.DMA_Channel = DMA_Channel_7; DMA_InitStructure.DMA_PeripheralBaseAddr = (uint32_t)DAC_DHR12R2_ADDRESS; DMA_InitStructure.DMA_Memory0BaseAddr = (uint32_t)dac2_buf; DMA_InitStructure.DMA_DIR = DMA_DIR_MemoryToPeripheral; DMA_InitStructure.DMA_BufferSize = DAC_BUF_SZ; DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_Disable; DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Enable; DMA_InitStructure.DMA_PeripheralDataSize = DMA_PeripheralDataSize_HalfWord; DMA_InitStructure.DMA_MemoryDataSize = DMA_MemoryDataSize_HalfWord; DMA_InitStructure.DMA_Mode = DMA_Mode_Circular; DMA_InitStructure.DMA_Priority = DMA_Priority_High; DMA_InitStructure.DMA_FIFOMode = DMA_FIFOMode_Disable; DMA_InitStructure.DMA_FIFOThreshold = DMA_FIFOThreshold_HalfFull; DMA_InitStructure.DMA_MemoryBurst = DMA_MemoryBurst_Single; DMA_InitStructure.DMA_PeripheralBurst = DMA_PeripheralBurst_Single; DMA_Init(DMA1_Stream6, &DMA_InitStructure); /* Enable DMA Half & Complete interrupts */ DMA_ITConfig(DMA1_Stream6, DMA_IT_TC | DMA_IT_HT, ENABLE); /* Enable the DMA Stream IRQ Channel */ NVIC_InitStructure.NVIC_IRQChannel = DMA1_Stream6_IRQn; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0; NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0; NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; NVIC_Init(&NVIC_InitStructure); /* Enable DMA1_Stream6 */ DMA_Cmd(DMA1_Stream6, ENABLE); /* Enable DAC Channel 2 */ DAC_Cmd(DAC_Channel_2, ENABLE); /* Enable DMA for DAC Channel 2 */ DAC_DMACmd(DAC_Channel_2, ENABLE); } /******************************************************************************/ /* STM32F4xx Peripherals Interrupt Handlers */ /* Add here the Interrupt Handler for the used peripheral(s) (PPP), for the */ /* available peripheral interrupt handler's name please refer to the startup */ /* file (startup_stm32f40xx.s/startup_stm32f427x.s). */ /******************************************************************************/ /* This function handles DMA1 Stream 5 interrupt request for DAC1. */ void DMA1_Stream5_IRQHandler(void) { GPIOE->ODR |= (1 << 1); /* Transfer half empty interrupt - refill first half */ if(DMA_GetITStatus(DMA1_Stream5, DMA_IT_HTIF5) != RESET) { /* fill first half from fifo */ codec2_fifo_read(dac1_fifo, (short*)dac1_buf, DAC_DUC_BUF_SZ/2); /* Clear DMA Stream Transfer Complete interrupt pending bit */ DMA_ClearITPendingBit(DMA1_Stream5, DMA_IT_HTIF5); } /* Transfer complete interrupt - refill 2nd half */ if(DMA_GetITStatus(DMA1_Stream5, DMA_IT_TCIF5) != RESET) { /* fill second half from fifo */ codec2_fifo_read(dac1_fifo, (short*)(dac1_buf+DAC_DUC_BUF_SZ/2), DAC_DUC_BUF_SZ/2); /* Clear DMA Stream Transfer Complete interrupt pending bit */ DMA_ClearITPendingBit(DMA1_Stream5, DMA_IT_TCIF5); } GPIOE->ODR &= ~(1 << 1); } /* This function handles DMA1 Stream 6 interrupt request for DAC2. */ void DMA1_Stream6_IRQHandler(void) { int i, j, sam; short signed_buf[DAC_BUF_SZ/2]; GPIOE->ODR |= (1 << 2); /* Transfer half empty interrupt - refill first half */ if(DMA_GetITStatus(DMA1_Stream6, DMA_IT_HTIF6) != RESET) { /* fill first half from fifo */ if (codec2_fifo_read(dac2_fifo, signed_buf, DAC_BUF_SZ/2) == -1) { memset(signed_buf, 0, sizeof(short)*DAC_BUF_SZ/2); dac_underflow++; } /* convert to unsigned */ for(i=0; iODR &= ~(1 << 2); } codec2-1.0.1/stm32/src/stm32f4_dacloduc.c000066400000000000000000000220421412132000500175770ustar00rootroot00000000000000/*---------------------------------------------------------------------------*\ FILE........: stm32f4_dacloduc.c AUTHOR......: David Rowe DATE CREATED: Sep 2015 Experimental DAC driver module for STM32F4 that includes a low IF Digital Up Converter (DUC). The Fs=96kHz signal is mixed up by a (real) 24 kHz (Fs/4) local oscillator, then output by DAC1. DAC1 is connected to pin PA4. \*---------------------------------------------------------------------------*/ /* Copyright (C) 2015 David Rowe All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 2.1, as published by the Free Software Foundation. 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 Lesser General Public License along with this program; if not, see . */ #include #include #include #include #include "stm32f4xx.h" #include "codec2_fifo.h" #include "stm32f4_dac.h" #include "debugblinky.h" /* write to these registers for 12 bit left aligned data, as per data sheet make sure 4 least sig bits set to 0 */ #define DAC_DHR12R1_ADDRESS 0x40007408 #define DAC_MAX 4096 /* maximum amplitude */ /* y=mx+c mapping of samples16 bit shorts to DAC samples. Table: 74 of data sheet indicates With DAC buffer on, DAC range is limited to 0x0E0 to 0xF1C at VREF+ = 3.6 V, we have Vref=3.3V which is close. */ #define M ((3868.0-224.0)/65536.0) #define C 2047.0 static struct FIFO *dac1_fifo; static unsigned short dac1_buf[DAC_BUF_SZ]; static void tim6_config(void); static void dac1_config(void); int dac_underflow; short signed_buf[DAC_BUF_SZ/2]; #define MAX_AMP 32767 void dac_open(int fifo_size) { memset(dac1_buf, 32768, sizeof(short)*DAC_BUF_SZ); /* Create fifo */ dac1_fifo = codec2_fifo_create(fifo_size); assert(dac1_fifo != NULL); /* Turn on the clocks we need -----------------------------------------------*/ /* DMA1 clock enable */ RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_DMA1, ENABLE); /* GPIOA clock enable (to be used with DAC) */ RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE); /* DAC Periph clock enable */ RCC_APB1PeriphClockCmd(RCC_APB1Periph_DAC, ENABLE); /* GPIO Pin configuration DAC1->PA.4 configuration --------------------------*/ GPIO_InitTypeDef GPIO_InitStructure; GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AN; GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL; GPIO_Init(GPIOA, &GPIO_InitStructure); /* Timer and DAC 1 Configuration --------------------------------------------*/ tim6_config(); dac1_config(); init_debug_blinky(); } /* Call these puppies to send samples to the DACs. For your convenience they accept signed 16 bit samples. */ int dac1_write(short buf[], int n) { return codec2_fifo_write(dac1_fifo, buf, n); } static void tim6_config(void) { TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; /* TIM6 Periph clock enable */ RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM6, ENABLE); /* -------------------------------------------------------- TIM6 input clock (TIM6CLK) is set to 2 * APB1 clock (PCLK1), since APB1 prescaler is different from 1 (see system_stm32f4xx.c and Fig 13 clock tree figure in DM0031020.pdf). Sample rate Fs = 2*PCLK1/TIM_ClockDivision = (HCLK/2)/TIM_ClockDivision = 84E6/TIM_ClockDivision (usually) ----------------------------------------------------------- */ /* Time base configuration */ TIM_TimeBaseStructInit(&TIM_TimeBaseStructure); TIM_TimeBaseStructure.TIM_Period = 875-1; /* 96 kHz */ TIM_TimeBaseStructure.TIM_Prescaler = 0; TIM_TimeBaseStructure.TIM_ClockDivision = 0; TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; TIM_TimeBaseInit(TIM6, &TIM_TimeBaseStructure); /* TIM6 TRGO selection */ TIM_SelectOutputTrigger(TIM6, TIM_TRGOSource_Update); /* TIM6 enable counter */ TIM_Cmd(TIM6, ENABLE); } static void dac1_config(void) { DAC_InitTypeDef DAC_InitStructure; DMA_InitTypeDef DMA_InitStructure; NVIC_InitTypeDef NVIC_InitStructure; /* DAC channel 1 Configuration */ /* This line fixed a bug that cost me 5 days, bad wave amplitude value, and some STM32F4 periph library bugs caused triangle wave generation to be enable resulting in a low level tone on the SM1000, that we thought was caused by analog issues like layout or power supply biasing */ DAC_StructInit(&DAC_InitStructure); DAC_InitStructure.DAC_Trigger = DAC_Trigger_T6_TRGO; DAC_InitStructure.DAC_WaveGeneration = DAC_WaveGeneration_None; DAC_InitStructure.DAC_OutputBuffer = DAC_OutputBuffer_Enable; DAC_Init(DAC_Channel_1, &DAC_InitStructure); /* DMA1_Stream5 channel7 configuration **************************************/ /* Table 35 page 219 of the monster data sheet */ DMA_DeInit(DMA1_Stream5); DMA_InitStructure.DMA_Channel = DMA_Channel_7; DMA_InitStructure.DMA_PeripheralBaseAddr = (uint32_t)DAC_DHR12R1_ADDRESS; DMA_InitStructure.DMA_Memory0BaseAddr = (uint32_t)dac1_buf; DMA_InitStructure.DMA_DIR = DMA_DIR_MemoryToPeripheral; DMA_InitStructure.DMA_BufferSize = DAC_BUF_SZ; DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_Disable; DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Enable; DMA_InitStructure.DMA_PeripheralDataSize = DMA_PeripheralDataSize_HalfWord; DMA_InitStructure.DMA_MemoryDataSize = DMA_MemoryDataSize_HalfWord; DMA_InitStructure.DMA_Mode = DMA_Mode_Circular; DMA_InitStructure.DMA_Priority = DMA_Priority_High; DMA_InitStructure.DMA_FIFOMode = DMA_FIFOMode_Disable; DMA_InitStructure.DMA_FIFOThreshold = DMA_FIFOThreshold_HalfFull; DMA_InitStructure.DMA_MemoryBurst = DMA_MemoryBurst_Single; DMA_InitStructure.DMA_PeripheralBurst = DMA_PeripheralBurst_Single; DMA_Init(DMA1_Stream5, &DMA_InitStructure); /* Enable DMA Half & Complete interrupts */ DMA_ITConfig(DMA1_Stream5, DMA_IT_TC | DMA_IT_HT, ENABLE); /* Enable the DMA Stream IRQ Channel */ NVIC_InitStructure.NVIC_IRQChannel = DMA1_Stream5_IRQn; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0; NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0; NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; NVIC_Init(&NVIC_InitStructure); /* Enable DMA1_Stream5 */ DMA_Cmd(DMA1_Stream5, ENABLE); /* Enable DAC Channel 1 */ DAC_Cmd(DAC_Channel_1, ENABLE); /* Enable DMA for DAC Channel 1 */ DAC_DMACmd(DAC_Channel_1, ENABLE); } /******************************************************************************/ /* STM32F4xx Peripherals Interrupt Handlers */ /* Add here the Interrupt Handler for the used peripheral(s) (PPP), for the */ /* available peripheral interrupt handler's name please refer to the startup */ /* file (startup_stm32f40xx.s/startup_stm32f427x.s). */ /******************************************************************************/ /* This function handles DMA1 Stream 5 interrupt request for DAC1. */ void DMA1_Stream5_IRQHandler(void) { int i, j, sam; short signed_buf[DAC_BUF_SZ/2]; GPIOE->ODR |= (1 << 1); /* Transfer half empty interrupt - refill first half */ if(DMA_GetITStatus(DMA1_Stream5, DMA_IT_HTIF5) != RESET) { /* fill first half from fifo */ if (codec2_fifo_read(dac1_fifo, signed_buf, DAC_BUF_SZ/2) == -1) { memset(signed_buf, 0, sizeof(short)*DAC_BUF_SZ/2); dac_underflow++; } for(i=0; iODR &= ~(1 << 1); } codec2-1.0.1/stm32/src/stm32f4_machdep.c000066400000000000000000000046311412132000500174260ustar00rootroot00000000000000 /*---------------------------------------------------------------------------*\ FILE........: stm32f4_machdep.c AUTHOR......: David Rowe DATE CREATED: May 2 2013 STM32F4 implementation of the machine dependant timer functions, e.g. profiling using a clock cycle counter.. \*---------------------------------------------------------------------------*/ /* Copyright (C) 2013 David Rowe All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 2.1, as published by the Free Software Foundation. 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 Lesser General Public License along with this program; if not, see . */ #include #include "machdep.h" #ifdef SEMIHOST_USE_STDIO #include "stdio.h" #else #include "gdb_stdio.h" #define printf gdb_stdio_printf #endif volatile unsigned int *DWT_CYCCNT = (volatile unsigned int *)0xE0001004; volatile unsigned int *DWT_CONTROL = (volatile unsigned int *)0xE0001000; volatile unsigned int *SCB_DEMCR = (volatile unsigned int *)0xE000EDFC; #define CORE_CLOCK 168E6 #define BUF_SZ 4096 static char buf[BUF_SZ]; void machdep_profile_init(void) { static int enabled = 0; if (!enabled) { *SCB_DEMCR = *SCB_DEMCR | 0x01000000; *DWT_CYCCNT = 0; // reset the counter *DWT_CONTROL = *DWT_CONTROL | 1 ; // enable the counter enabled = 1; } *buf = 0; } void machdep_profile_reset(void) { *DWT_CYCCNT = 0; // reset the counter } unsigned int machdep_profile_sample(void) { return *DWT_CYCCNT; } /* log to a buffer, we only call printf after timing finished as it is slow */ unsigned int machdep_profile_sample_and_log(unsigned int start, char s[]) { char tmp[80]; float msec; unsigned int dwt = *DWT_CYCCNT - start; msec = 1000.0*(float)dwt/CORE_CLOCK; snprintf(tmp, sizeof(tmp), "%s %5.2f msecs\n",s,(double)msec); if ((strlen(buf) + strlen(tmp)) < BUF_SZ) strncat(buf, tmp, sizeof(buf)-1); return *DWT_CYCCNT; } void machdep_profile_print_logged_samples(void) { printf("%s", buf); *buf = 0; } codec2-1.0.1/stm32/src/stm32f4_pwm.c000066400000000000000000000176621412132000500166400ustar00rootroot00000000000000/*---------------------------------------------------------------------------*\ FILE........: stm32f4_pwm.c AUTHOR......: David Rowe DATE CREATED: 26 June 2013 PWM driver module for STM32F4. TODO: \*---------------------------------------------------------------------------*/ /* Copyright (C) 2013 David Rowe All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 2.1, as published by the Free Software Foundation. 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 Lesser General Public License along with this program; if not, see . */ #include #include #include #include "gdb_stdio.h" #include "stm32f4xx_gpio.h" #include "stm32f4xx_rcc.h" #define TIM1_CCR3_ADDRESS 0x4001003C //#define TIM1_CCR3_ADDRESS 0x4001223C #define SINE_SAMPLES 32 TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; TIM_OCInitTypeDef TIM_OCInitStructure; uint16_t uhTimerPeriod; uint16_t aSRC_Buffer[SINE_SAMPLES] = {0, 0, 0}; /* 32 sample sine wave which at Fs=16kHz will be 500Hz. Not sampels are 16 bit 2's complement, the DAC driver convertsto 12 bit unsigned. */ short aSine[SINE_SAMPLES] = { -16, 6384, 12528, 18192, 23200, 27232, 30256, 32128, 32752, 32128, 30256, 27232, 23152, 18192, 12528, 6384, -16, -6416, -12560, -18224, -23184, -27264, -30288, -32160, -32768, -32160, -30288, -27264, -23184, -18224, -12560, -6416 }; void Timer1Config(); #define FS 16000 int main(void){ Timer1Config(); while(1); } /* DR: TIM_Config configures a couple of I/O pins for PWM output from Timer1 Channel 3. Note I dont think any of this is needed, except perhaps to check timer frequency. Can be removed down the track. */ /** * @brief Configure the TIM1 Pins. * @param None * @retval None */ static void TIM_Config(void) { GPIO_InitTypeDef GPIO_InitStructure; /* GPIOA and GPIOB clock enable */ RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA | RCC_AHB1Periph_GPIOB, ENABLE); /* GPIOA Configuration: Channel 3 as alternate function push-pull */ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10 ; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz; GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP ; GPIO_Init(GPIOA, &GPIO_InitStructure); GPIO_PinAFConfig(GPIOA, GPIO_PinSource10, GPIO_AF_TIM1); /* GPIOB Configuration: Channel 3N as alternate function push-pull */ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_15; GPIO_Init(GPIOB, &GPIO_InitStructure); GPIO_PinAFConfig(GPIOB, GPIO_PinSource15, GPIO_AF_TIM1); #ifdef DR_OFF /* DMA clock enable */ RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_DMA2 , ENABLE); DMA_DeInit(DMA2_Stream6); DMA_InitStructure.DMA_Channel = DMA_Channel_6; DMA_InitStructure.DMA_PeripheralBaseAddr = (uint32_t)(TIM1_CCR3_ADDRESS) ; DMA_InitStructure.DMA_Memory0BaseAddr = (uint32_t)aSRC_Buffer; DMA_InitStructure.DMA_DIR = DMA_DIR_MemoryToPeripheral; DMA_InitStructure.DMA_BufferSize = SINE_SAMPLES; DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_Disable; DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Enable; DMA_InitStructure.DMA_PeripheralDataSize = DMA_PeripheralDataSize_HalfWord; DMA_InitStructure.DMA_MemoryDataSize = DMA_PeripheralDataSize_HalfWord; DMA_InitStructure.DMA_Mode = DMA_Mode_Circular; DMA_InitStructure.DMA_Priority = DMA_Priority_High; DMA_InitStructure.DMA_FIFOMode = DMA_FIFOMode_Disable; DMA_InitStructure.DMA_FIFOThreshold = DMA_FIFOThreshold_Full; DMA_InitStructure.DMA_MemoryBurst = DMA_MemoryBurst_Single; DMA_InitStructure.DMA_PeripheralBurst = DMA_PeripheralBurst_Single; DMA_Init(DMA2_Stream6, &DMA_InitStructure); #endif } void Timer1Config() { /* TIM Configuration */ TIM_Config(); /* TIM1 example ------------------------------------------------- TIM1 input clock (TIM1CLK) is set to 2 * APB2 clock (PCLK2), since APB2 prescaler is different from 1. TIM1CLK = 2 * PCLK2 PCLK2 = HCLK / 2 => TIM1CLK = 2 * (HCLK / 2) = HCLK = SystemCoreClock TIM1CLK = SystemCoreClock, Prescaler = 0, TIM1 counter clock = SystemCoreClock SystemCoreClock is set to 168 MHz for STM32F4xx devices. The objective is to configure TIM1 channel 3 to generate complementary PWM signal with a frequency equal to F KHz: - TIM1_Period = (SystemCoreClock / F) - 1 The number of this repetitive requests is defined by the TIM1 Repetion counter, each 3 Update Requests, the TIM1 Channel 3 Duty Cycle changes to the next new value defined by the aSRC_Buffer. Note: SystemCoreClock variable holds HCLK frequency and is defined in system_stm32f4xx.c file. Each time the core clock (HCLK) changes, user had to call SystemCoreClockUpdate() function to update SystemCoreClock variable value. Otherwise, any configuration based on this variable will be incorrect. -----------------------------------------------------------------------------*/ /* Compute the value to be set in ARR regiter to generate signal frequency at FS */ #ifdef TMP uhTimerPeriod = (SystemCoreClock / FS ) - 1; //gdb_stdio_printf("uhTimerPeriod = %d\n", uhTimerPeriod); /* Compute CCR1 values to generate a duty cycle at 50% */ for(i=0; i #include #include #include #include #include "stm32f4_usart.h" #define MAX_FMT_SIZE 256 void usart_init(void){ GPIO_InitTypeDef GPIO_InitStructure; USART_InitTypeDef USART_InitStructure; /* enable peripheral clock for USART3 */ RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART3, ENABLE); /* GPIOB clock enable */ RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOB, ENABLE); /* GPIOA Configuration: USART3 TX on PB10 */ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP ; GPIO_Init(GPIOB, &GPIO_InitStructure); /* Connect USART3 pins to AF2 */ // TX = PB10 GPIO_PinAFConfig(GPIOB, GPIO_PinSource10, GPIO_AF_USART3); USART_InitStructure.USART_BaudRate = 115200; USART_InitStructure.USART_WordLength = USART_WordLength_8b; USART_InitStructure.USART_StopBits = USART_StopBits_1; USART_InitStructure.USART_Parity = USART_Parity_No; USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None; USART_InitStructure.USART_Mode = USART_Mode_Tx; USART_Init(USART3, &USART_InitStructure); USART_Cmd(USART3, ENABLE); // enable USART3 } void usart_puts(const char s[]) { for (int i=0; i * Copyright (C) 2015 FreeDV project. * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU Lesser General Public License version 2.1, * as published by the Free Software Foundation. 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 Lesser General Public * License along with this program; if not, see * . */ #include #include #include "stm32f4_vrom.h" #include "stm32f4xx_flash.h" #include "stm32f4xx_crc.h" #define VROM_SECT_SZ (16384) /*!< Size of a flash sector */ #define VROM_SECT_CNT (3) /*!< Number of sectors */ #define VROM_BLOCK_SZ (256) /*!< Size of a flash block */ /*! * Starting address for the flash area */ #define VROM_START_ADDR (0x08004000) /*! * Number of blocks we can fit per sector, including the index block. */ #define VROM_BLOCK_CNT (VROM_SECT_SZ / VROM_BLOCK_SZ) /*! * Number of application blocks we can fit per sector. */ #define VROM_SECT_APP_BLOCK_CNT (VROM_BLOCK_CNT - 1) /*! * Total number of application blocks we can fit in flash. */ #define VROM_APP_BLOCK_CNT (VROM_SECT_CNT * VROM_SECT_APP_BLOCK_CNT) /*! * Maximum number of erase cycles per sector. * Table 42 (page 109) of STM32F405 datasheet (DocID022152 Rev 5). */ #define VROM_MAX_CYCLES (10000) /*! * EEPROM block header. */ struct __attribute__ ((__packed__)) vrom_block_hdr_t { /*! * CRC32 checksum of the data, offset, size and ROM ID. * A CRC32 of 0x00000000 indicates an obsoleted block. * A CRC32 of 0xffffffff indicates an erased block. */ uint32_t crc32; /*! * ROM ID. */ uint8_t rom; /*! * Block number in the virtual EEPROM. */ uint8_t idx; /*! * Number of bytes from the virtual EEPROM stored in this block. */ uint8_t size; /*! * Reserved for future use. */ uint8_t reserved; }; /*! * The size of a block header in bytes. */ #define VROM_BLOCK_HDR_SZ (sizeof(struct vrom_block_hdr_t)) /*! * The amount of data available for application use. */ #define VROM_DATA_SZ (VROM_BLOCK_SZ - VROM_BLOCK_HDR_SZ) /*! * EEPROM data block. */ struct __attribute__ ((__packed__)) vrom_data_block_t { /*! Block header */ struct vrom_block_hdr_t header; /*! Block data */ uint8_t data[VROM_DATA_SZ]; }; /*! * The first block in a sector is the sector index block. This indicates * the used/free state of the entire block and counts the number of * erase cycles for the sector. The index block has no header. */ struct __attribute__ ((__packed__)) vrom_sector_idx_t { /*! * Number of erase cycles remaining for the sector. * 0xffffffff == unprogrammed. */ uint32_t cycles_remain; /*! * Block metadata flags. One for each data block in the sector. * Does not include the index block. */ uint16_t flags[VROM_SECT_APP_BLOCK_CNT]; }; #define VROM_SFLAGS_USED (1 << 0) /*!< Block in use */ /*! * Return the address of a virtual EEPROM sector header. */ static const struct vrom_sector_idx_t* vrom_get_sector_hdr(uint8_t sector) { return (const struct vrom_sector_idx_t*)( VROM_START_ADDR + (VROM_SECT_SZ * sector)); } /*! * Return the address of a virtual EEPROM block. */ static const struct vrom_data_block_t* vrom_get_block( uint8_t sector, uint8_t block) { return (const struct vrom_data_block_t*)( (void*)vrom_get_sector_hdr(sector) + (VROM_BLOCK_SZ * (block + 1))); } /*! * Compute the CRC32 of a block. */ static uint32_t vrom_crc32( const struct vrom_data_block_t* const block) { struct vrom_data_block_t temp_block; uint32_t size = sizeof(temp_block); const uint8_t* in = (const uint8_t*)(&temp_block); uint32_t tmp; uint32_t crc; memcpy(&temp_block, block, sizeof(temp_block)); temp_block.header.crc32 = 0; CRC_ResetDR(); while(size) { tmp = 0; if (size) { tmp |= (uint32_t)(*(in++)) << 24; size--; } if (size) { tmp |= (uint32_t)(*(in++)) << 16; size--; } if (size) { tmp |= (uint32_t)(*(in++)) << 8; size--; } if (size) { tmp |= (uint32_t)(*(in++)); size--; } crc = CRC_CalcCRC(tmp); } return crc; } /*! * Find the block storing the given index. */ static const struct vrom_data_block_t* vrom_find(uint8_t rom, uint8_t idx) { int sector, block; for (sector = 0; sector < VROM_SECT_CNT; sector++) { const struct vrom_sector_idx_t* sect_hdr = vrom_get_sector_hdr(sector); if (sect_hdr->cycles_remain == UINT32_MAX) /* unformatted */ continue; for (block = 0; block < VROM_SECT_APP_BLOCK_CNT; block++) { const struct vrom_data_block_t* block_ptr; if (sect_hdr->flags[block] == UINT16_MAX) /* unformatted */ continue; if (sect_hdr->flags[block] == 0) /* obsolete */ continue; block_ptr = vrom_get_block(sector, block); /* Verify the content */ if (vrom_crc32(block_ptr) != block_ptr->header.crc32) /* corrupt */ continue; if (block_ptr->header.rom != rom) /* different ROM */ continue; if (block_ptr->header.idx != idx) /* wrong index */ continue; return block_ptr; } } return NULL; } /*! * Get the sector number of a given address. */ static uint8_t vrom_sector_num(const void* address) { /* Get the offset from the base address */ uint32_t offset = (uint32_t)address - VROM_START_ADDR; return offset / VROM_SECT_SZ; } /*! * Get the block number of a given address. */ static uint8_t vrom_block_num(const void* address) { /* Get the sector number */ uint8_t sector = vrom_sector_num(address); /* Get the offset from the sector base */ uint32_t offset = (uint32_t)(address - (const void*)vrom_get_sector_hdr(sector)); offset /= VROM_BLOCK_SZ; return offset - 1; } /*! * (Erase and) Format a sector. * * @retval -EIO Erase failed * @retval -EPERM Erase counter depleted. */ static int vrom_format_sector(const struct vrom_sector_idx_t* sector) { uint8_t sector_num = vrom_sector_num(sector); uint32_t cycles_remain = VROM_MAX_CYCLES; if (sector->cycles_remain != UINT32_MAX) { if (sector->cycles_remain == 0) /* This sector is exhausted */ return -EPERM; /* This sector has been formatted before */ cycles_remain = sector->cycles_remain - 1; if (FLASH_EraseSector(sector_num + 1, VoltageRange_3)) /* Erase failed */ return -EIO; } /* Program the new sector cycle counter */ if (FLASH_ProgramWord((uint32_t)sector, cycles_remain) == FLASH_COMPLETE) return 0; /* All good */ /* If we get here, then programming failed */ return -EIO; } /*! * Find the next available block. */ static const struct vrom_data_block_t* vrom_find_free(uint8_t run_gc) { int sector; if (run_gc) { for (sector = 0; sector < VROM_SECT_CNT; sector++) { uint8_t block; uint8_t used = 0; const struct vrom_sector_idx_t* sect_hdr = vrom_get_sector_hdr(sector); if (sect_hdr->cycles_remain == UINT32_MAX) /* Already erased */ continue; if (sect_hdr->cycles_remain == 0) /* Depleted */ continue; for (block = 0; block < VROM_SECT_APP_BLOCK_CNT; block++) { if (sect_hdr->flags[block]) { used = 1; break; } } if (!used) { /* We can format this */ vrom_format_sector(sect_hdr); } } } for (sector = 0; sector < VROM_SECT_CNT; sector++) { uint8_t block; const struct vrom_sector_idx_t* sect_hdr = vrom_get_sector_hdr(sector); if (sect_hdr->cycles_remain == UINT32_MAX) { /* Unformatted sector. */ if (vrom_format_sector(sect_hdr)) /* Couldn't format, keep looking */ continue; } for (block = 0; block < VROM_SECT_APP_BLOCK_CNT; block++) { if (sect_hdr->flags[block] == UINT16_MAX) /* Success */ return vrom_get_block(sector, block); } } /* No blocks free, but have we done garbage collection? */ if (!run_gc) return vrom_find_free(1); /* If we get here, then we weren't able to find a free block */ return NULL; } /*! * Set flags for a block */ static int vrom_set_flags(const struct vrom_data_block_t* block, uint16_t flags) { const struct vrom_sector_idx_t* sector = vrom_get_sector_hdr(vrom_sector_num(block)); uint8_t block_num = vrom_block_num(block); /* Compute the new flags settings */ flags = sector->flags[block_num] & ~flags; /* Write them */ if (FLASH_ProgramHalfWord( (uint32_t)(&(sector->flags[block_num])), flags) != FLASH_COMPLETE) return -EIO; return 0; } /*! * Mark a block as being obsolete */ static int vrom_mark_obsolete(const struct vrom_data_block_t* block) { /* Blank out the CRC */ if (FLASH_ProgramWord((uint32_t)(&(block->header.crc32)), 0) != FLASH_COMPLETE) return -EIO; /* Blank out the ROM ID */ if (FLASH_ProgramByte((uint32_t)(&(block->header.rom)), 0) != FLASH_COMPLETE) return -EIO; /* Blank out the index */ if (FLASH_ProgramByte((uint32_t)(&(block->header.idx)), 0) != FLASH_COMPLETE) return -EIO; /* Blank out the size */ if (FLASH_ProgramByte((uint32_t)&(block->header.size), 0) != FLASH_COMPLETE) return -EIO; /* Blank out the reserved byte */ if (FLASH_ProgramByte((uint32_t)&(block->header.reserved), 0) != FLASH_COMPLETE) return -EIO; /* Blank out the flags */ return vrom_set_flags(block, -1); } /*! * Write a new block. */ static int vrom_write_block(uint8_t rom, uint8_t idx, uint8_t size, const uint8_t* in) { /* Find a new home for the block */ const struct vrom_data_block_t* block = vrom_find_free(0); struct vrom_data_block_t new_block; uint8_t* out = (uint8_t*)(block); uint32_t rem = sizeof(new_block); int res; if (!block) return -ENOSPC; /* Prepare the new block */ memset(&new_block, 0xff, sizeof(new_block)); new_block.header.rom = rom; new_block.header.idx = idx; new_block.header.size = size; memcpy(new_block.data, in, size); new_block.header.crc32 = vrom_crc32(&new_block); /* Start writing out the block */ in = (uint8_t*)(&new_block); rem = VROM_BLOCK_SZ; while(rem) { if (*out != *in) { if (FLASH_ProgramByte((uint32_t)out, *in) != FLASH_COMPLETE) /* Failed! */ return -EIO; } in++; out++; rem--; } res = vrom_set_flags(block, VROM_SFLAGS_USED); if (res < 0) return res; return size; } /*! * Re-write the given block if needed. */ static int vrom_rewrite_block(const struct vrom_data_block_t* block, uint8_t size, const uint8_t* in) { uint8_t obsolete = 0; uint8_t rom = block->header.rom; uint8_t idx = block->header.idx; const uint8_t* cmp_block = block->data; const uint8_t* cmp_in = in; uint8_t cmp_sz = size; int res; while(cmp_sz) { if (*cmp_block != *cmp_in) { obsolete = 1; break; } cmp_sz--; cmp_block++; cmp_in++; } if (!obsolete) /* The block is fine, leave it be. */ return size; /* Mark the block as obsolete */ res = vrom_mark_obsolete(block); if (res) return res; return vrom_write_block(rom, idx, size, in); } /*! * Overwrite the start of a block. */ static int vrom_overwrite_block( const struct vrom_data_block_t* block, uint8_t offset, uint8_t size, const uint8_t* in) { uint8_t data[VROM_DATA_SZ]; uint16_t block_sz = block->header.size; int res; if (!offset && (size >= block->header.size)) /* Complete overwrite */ return vrom_rewrite_block(block, size, in); if (offset) { /* Overwrite end of block, possible expansion */ block_sz = offset + size; if (block_sz > VROM_DATA_SZ) block_sz = VROM_DATA_SZ; memcpy(data, block->data, offset); memcpy(&data[offset], in, block_sz - offset); } else { /* Overwrite start of block, no size change */ memcpy(data, in, size); memcpy(&data[size], &(block->data[size]), block_sz - size); } res = vrom_rewrite_block(block, block_sz, data); if (res < 0) return res; return block_sz; } /*! * Write data to the virtual EEPROM. */ static int vrom_write_internal(uint8_t rom, uint16_t offset, uint16_t size, const uint8_t* in) { /* Figure out our starting block and offset */ uint8_t block_idx = offset / VROM_DATA_SZ; uint8_t block_offset = offset % VROM_DATA_SZ; int count = 0; /* Locate the first block */ const struct vrom_data_block_t* block = vrom_find(rom, block_idx); uint8_t block_sz = VROM_DATA_SZ; if (block_sz > (size + block_offset)) block_sz = size + block_offset; if (!block) { /* Create a new block */ uint8_t data[VROM_DATA_SZ]; int res; memset(data, 0xff, sizeof(data)); memcpy(&data[block_offset], in, block_sz-block_offset); res = vrom_write_block(rom, block_idx, block_sz, data); if (res < 0) return res; } else { /* Overwrite block */ int res = vrom_overwrite_block(block, block_offset, block_sz, in); if (res < 0) return res; count += block_sz; } block_idx++; size -= block_sz - block_offset; while(size) { /* Work out how much data to write */ if (size < VROM_DATA_SZ) block_sz = size; else block_sz = VROM_DATA_SZ; int res; /* Is there a block covering this range? */ block = vrom_find(rom, block_idx); if (block) res = vrom_overwrite_block( block, 0, block_sz, in); else res = vrom_write_block(rom, block_idx, block_sz, in); if (res < 0) return res; /* Successful write */ count += res; size -= res; in += res; offset += res; } return count; } /*! * Read data from a virtual EEPROM. * @param rom ROM ID to start reading. * @param offset Address offset into ROM to start reading. * @param size Number of bytes to read from ROM. * @param out Buffer to write ROM content to. * @returns Number of bytes read from ROM. * @retval -ENXIO ROM not found * @retval -ESPIPE Offset past end of ROM. */ int vrom_read(uint8_t rom, uint16_t offset, uint16_t size, void* out) { /* Figure out our starting block and offset */ uint8_t block_idx = offset / VROM_DATA_SZ; uint8_t block_offset = offset % VROM_DATA_SZ; uint8_t block_sz; int count = 0; uint8_t* out_ptr = (uint8_t*)out; /* Locate the first block */ const struct vrom_data_block_t* block = vrom_find(rom, block_idx); if (!block) return -ENXIO; if (block_offset >= block->header.size) return -ESPIPE; /* Copy the initial bytes */ block_sz = block->header.size - block_offset; if (block_sz > size) block_sz = size; memcpy(out_ptr, &(block->data[block_offset]), block_sz); out_ptr += block_sz; size -= block_sz; count += block_sz; if (size) { /* Look for the next block */ block = vrom_find(rom, ++block_idx); while(size && block) { if (block->header.size <= size) block_sz = block->header.size; else block_sz = size; memcpy(out_ptr, block->data, block_sz); out_ptr += block_sz; size -= block_sz; count += block_sz; block = vrom_find(rom, ++block_idx); } } return count; } /*! * Write data to a virtual EEPROM. * @param rom ROM ID to start writing. * @param offset Address offset into ROM to start writing. * @param size Number of bytes to write to ROM. * @param in Buffer to write ROM content from. * @returns Number of bytes written to ROM. * @retval -EIO Programming failed * @retval -ENOSPC No free blocks available */ int vrom_write(uint8_t rom, uint16_t offset, uint16_t size, const void* in) { int res; FLASH_Unlock(); FLASH_ClearFlag(FLASH_FLAG_EOP | FLASH_FLAG_OPERR | FLASH_FLAG_WRPERR | FLASH_FLAG_PGAERR | FLASH_FLAG_PGPERR | FLASH_FLAG_PGSERR); res = vrom_write_internal(rom, offset, size, in); FLASH_Lock(); return res; } /*! * Erase a virtual EEPROM. * @param rom ROM ID to erase. * @returns Number of bytes written to ROM. * @retval -EIO Programming failed * @retval -ENOSPC No free blocks available */ int vrom_erase(uint8_t rom) { int sector, block; FLASH_Unlock(); FLASH_ClearFlag(FLASH_FLAG_EOP | FLASH_FLAG_OPERR | FLASH_FLAG_WRPERR | FLASH_FLAG_PGAERR | FLASH_FLAG_PGPERR | FLASH_FLAG_PGSERR); for (sector = 0; sector < VROM_SECT_CNT; sector++) { const struct vrom_sector_idx_t* sect_hdr = vrom_get_sector_hdr(sector); if (sect_hdr->cycles_remain == UINT32_MAX) /* unformatted */ continue; for (block = 0; block < VROM_SECT_APP_BLOCK_CNT; block++) { int res; const struct vrom_data_block_t* block_ptr; if (sect_hdr->flags[block] == UINT16_MAX) /* unformatted */ continue; if (sect_hdr->flags[block] == 0) /* obsolete */ continue; block_ptr = vrom_get_block(sector, block); /* Verify the content */ if (vrom_crc32(block_ptr) != block_ptr->header.crc32) /* corrupt */ continue; if (block_ptr->header.rom != rom) /* different ROM */ continue; /* * Block is valid, for the correct ROM. Mark it * obsolete. */ res = vrom_mark_obsolete(block_ptr); if (res) return res; } } return 0; } codec2-1.0.1/stm32/src/system_stm32f4xx.c000066400000000000000000000517571412132000500177440ustar00rootroot00000000000000/** ****************************************************************************** * @file system_stm32f4xx.c * @author MCD Application Team * @version V1.0.1 * @date 10-July-2012 * @brief CMSIS Cortex-M4 Device Peripheral Access Layer System Source File. * This file contains the system clock configuration for STM32F4xx devices, * and is generated by the clock configuration tool * stm32f4xx_Clock_Configuration_V1.0.1.xls * * 1. This file provides two functions and one global variable to be called from * user application: * - SystemInit(): Setups the system clock (System clock source, PLL Multiplier * and Divider factors, AHB/APBx prescalers and Flash settings), * depending on the configuration made in the clock xls tool. * This function is called at startup just after reset and * before branch to main program. This call is made inside * the "startup_stm32f4xx.s" file. * * - SystemCoreClock variable: Contains the core clock (HCLK), it can be used * by the user application to setup the SysTick * timer or configure other parameters. * * - SystemCoreClockUpdate(): Updates the variable SystemCoreClock and must * be called whenever the core clock is changed * during program execution. * * 2. After each device reset the HSI (16 MHz) is used as system clock source. * Then SystemInit() function is called, in "startup_stm32f4xx.s" file, to * configure the system clock before to branch to main program. * * 3. If the system clock source selected by user fails to startup, the SystemInit() * function will do nothing and HSI still used as system clock source. User can * add some code to deal with this issue inside the SetSysClock() function. * * 4. The default value of HSE crystal is set to 25MHz, refer to "HSE_VALUE" define * in "stm32f4xx.h" file. When HSE is used as system clock source, directly or * through PLL, and you are using different crystal you have to adapt the HSE * value to your own configuration. * * 5. This file configures the system clock as follows: *============================================================================= *============================================================================= * Supported STM32F4xx device revision | Rev A *----------------------------------------------------------------------------- * System Clock source | PLL (HSE) *----------------------------------------------------------------------------- * SYSCLK(Hz) | 168000000 *----------------------------------------------------------------------------- * HCLK(Hz) | 168000000 *----------------------------------------------------------------------------- * AHB Prescaler | 1 *----------------------------------------------------------------------------- * APB1 Prescaler | 4 *----------------------------------------------------------------------------- * APB2 Prescaler | 2 *----------------------------------------------------------------------------- * HSE Frequency(Hz) | 8000000 *----------------------------------------------------------------------------- * PLL_M | 8 *----------------------------------------------------------------------------- * PLL_N | 336 *----------------------------------------------------------------------------- * PLL_P | 2 *----------------------------------------------------------------------------- * PLL_Q | 7 *----------------------------------------------------------------------------- * PLLI2S_N | 352 *----------------------------------------------------------------------------- * PLLI2S_R | 2 *----------------------------------------------------------------------------- * I2S input clock(Hz) | 176000000 * | * To achieve the following I2S config: | * - Master clock output (MCKO): OFF | * - Frame wide : 16bit | * - Error % : 0,0000 | * - Prescaler Odd factor (ODD): 1 | * - Linear prescaler (DIV) : 14 | *----------------------------------------------------------------------------- * VDD(V) | 3,3 *----------------------------------------------------------------------------- * Main regulator output voltage | Scale1 mode *----------------------------------------------------------------------------- * Flash Latency(WS) | 5 *----------------------------------------------------------------------------- * Prefetch Buffer | OFF *----------------------------------------------------------------------------- * Instruction cache | ON *----------------------------------------------------------------------------- * Data cache | ON *----------------------------------------------------------------------------- * Require 48MHz for USB OTG FS, | Enabled * SDIO and RNG clock | *----------------------------------------------------------------------------- *============================================================================= ****************************************************************************** * @attention * * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE * TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY * DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING * FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. * *

© COPYRIGHT 2011 STMicroelectronics

****************************************************************************** */ /** @addtogroup CMSIS * @{ */ /** @addtogroup stm32f4xx_system * @{ */ /** @addtogroup STM32F4xx_System_Private_Includes * @{ */ #include "stm32f4xx.h" /** * @} */ /** @addtogroup STM32F4xx_System_Private_TypesDefinitions * @{ */ /** * @} */ /** @addtogroup STM32F4xx_System_Private_Defines * @{ */ /************************* Miscellaneous Configuration ************************/ /*!< Uncomment the following line if you need to use external SRAM mounted on STM324xG_EVAL board as data memory */ /* #define DATA_IN_ExtSRAM */ /*!< Uncomment the following line if you need to relocate your vector Table in Internal SRAM. */ /* #define VECT_TAB_SRAM */ #define VECT_TAB_OFFSET 0x00 /*!< Vector Table base offset field. This value must be a multiple of 0x200. */ /******************************************************************************/ /************************* PLL Parameters *************************************/ /* PLL_VCO = (HSE_VALUE or HSI_VALUE / PLL_M) * PLL_N */ #define PLL_M 8 #define PLL_N 336 /* SYSCLK = PLL_VCO / PLL_P */ #define PLL_P 2 /* USB OTG FS, SDIO and RNG Clock = PLL_VCO / PLLQ */ #define PLL_Q 7 /* PLLI2S_VCO = (HSE_VALUE Or HSI_VALUE / PLL_M) * PLLI2S_N I2SCLK = PLLI2S_VCO / PLLI2S_R */ #define START_I2SCLOCK 0 #define PLLI2S_N 352 #define PLLI2S_R 2 /******************************************************************************/ /** * @} */ /** @addtogroup STM32F4xx_System_Private_Macros * @{ */ /** * @} */ /** @addtogroup STM32F4xx_System_Private_Variables * @{ */ uint32_t SystemCoreClock = 168000000; __I uint8_t AHBPrescTable[16] = {0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 4, 6, 7, 8, 9}; /** * @} */ /** @addtogroup STM32F4xx_System_Private_FunctionPrototypes * @{ */ static void SetSysClock(void); #ifdef DATA_IN_ExtSRAM static void SystemInit_ExtMemCtl(void); #endif /* DATA_IN_ExtSRAM */ /** * @} */ /** @addtogroup STM32F4xx_System_Private_Functions * @{ */ /** * @brief Setup the microcontroller system * Initialize the Embedded Flash Interface, the PLL and update the * SystemFrequency variable. * @param None * @retval None */ void SystemInit(void) { /* FPU settings ------------------------------------------------------------*/ #if (__FPU_PRESENT == 1) && (__FPU_USED == 1) SCB->CPACR |= ((3UL << 10*2)|(3UL << 11*2)); /* set CP10 and CP11 Full Access */ #endif /* Reset the RCC clock configuration to the default reset state ------------*/ /* Set HSION bit */ RCC->CR |= (uint32_t)0x00000001; /* Reset CFGR register */ RCC->CFGR = 0x00000000; /* Reset HSEON, CSSON and PLLON bits */ RCC->CR &= (uint32_t)0xFEF6FFFF; /* Reset PLLCFGR register */ RCC->PLLCFGR = 0x24003010; /* Reset HSEBYP bit */ RCC->CR &= (uint32_t)0xFFFBFFFF; /* Disable all interrupts */ RCC->CIR = 0x00000000; #ifdef DATA_IN_ExtSRAM SystemInit_ExtMemCtl(); #endif /* DATA_IN_ExtSRAM */ /* Configure the System clock source, PLL Multiplier and Divider factors, AHB/APBx prescalers and Flash settings ----------------------------------*/ SetSysClock(); /* Configure the Vector Table location add offset address ------------------*/ #ifdef VECT_TAB_SRAM SCB->VTOR = SRAM_BASE | VECT_TAB_OFFSET; /* Vector Table Relocation in Internal SRAM */ #else SCB->VTOR = FLASH_BASE | VECT_TAB_OFFSET; /* Vector Table Relocation in Internal FLASH */ #endif } /** * @brief Update SystemCoreClock variable according to Clock Register Values. * The SystemCoreClock variable contains the core clock (HCLK), it can * be used by the user application to setup the SysTick timer or configure * other parameters. * * @note Each time the core clock (HCLK) changes, this function must be called * to update SystemCoreClock variable value. Otherwise, any configuration * based on this variable will be incorrect. * * @note - The system frequency computed by this function is not the real * frequency in the chip. It is calculated based on the predefined * constant and the selected clock source: * * - If SYSCLK source is HSI, SystemCoreClock will contain the HSI_VALUE(*) * * - If SYSCLK source is HSE, SystemCoreClock will contain the HSE_VALUE(**) * * - If SYSCLK source is PLL, SystemCoreClock will contain the HSE_VALUE(**) * or HSI_VALUE(*) multiplied/divided by the PLL factors. * * (*) HSI_VALUE is a constant defined in stm32f4xx.h file (default value * 16 MHz) but the real value may vary depending on the variations * in voltage and temperature. * * (**) HSE_VALUE is a constant defined in stm32f4xx.h file (default value * 25 MHz), user has to ensure that HSE_VALUE is same as the real * frequency of the crystal used. Otherwise, this function may * have wrong result. * * - The result of this function could be not correct when using fractional * value for HSE crystal. * * @param None * @retval None */ void SystemCoreClockUpdate(void) { uint32_t tmp = 0, pllvco = 0, pllp = 2, pllsource = 0, pllm = 2; /* Get SYSCLK source -------------------------------------------------------*/ tmp = RCC->CFGR & RCC_CFGR_SWS; switch (tmp) { case 0x00: /* HSI used as system clock source */ SystemCoreClock = HSI_VALUE; break; case 0x04: /* HSE used as system clock source */ SystemCoreClock = HSE_VALUE; break; case 0x08: /* PLL used as system clock source */ /* PLL_VCO = (HSE_VALUE or HSI_VALUE / PLL_M) * PLL_N SYSCLK = PLL_VCO / PLL_P */ pllsource = (RCC->PLLCFGR & RCC_PLLCFGR_PLLSRC) >> 22; pllm = RCC->PLLCFGR & RCC_PLLCFGR_PLLM; if (pllsource != 0) { /* HSE used as PLL clock source */ pllvco = (HSE_VALUE / pllm) * ((RCC->PLLCFGR & RCC_PLLCFGR_PLLN) >> 6); } else { /* HSI used as PLL clock source */ pllvco = (HSI_VALUE / pllm) * ((RCC->PLLCFGR & RCC_PLLCFGR_PLLN) >> 6); } pllp = (((RCC->PLLCFGR & RCC_PLLCFGR_PLLP) >>16) + 1 ) *2; SystemCoreClock = pllvco/pllp; break; default: SystemCoreClock = HSI_VALUE; break; } /* Compute HCLK frequency --------------------------------------------------*/ /* Get HCLK prescaler */ tmp = AHBPrescTable[((RCC->CFGR & RCC_CFGR_HPRE) >> 4)]; /* HCLK frequency */ SystemCoreClock >>= tmp; } /** * @brief Configures the System clock source, PLL Multiplier and Divider factors, * AHB/APBx prescalers and Flash settings * @Note This function should be called only once the RCC clock configuration * is reset to the default reset state (done in SystemInit() function). * @param None * @retval None */ static void SetSysClock(void) { /******************************************************************************/ /* PLL (clocked by HSE) used as System clock source */ /******************************************************************************/ __IO uint32_t StartUpCounter = 0, HSEStatus = 0; /* Enable HSE */ RCC->CR |= ((uint32_t)RCC_CR_HSEON); /* Wait till HSE is ready and if Time out is reached exit */ do { HSEStatus = RCC->CR & RCC_CR_HSERDY; StartUpCounter++; } while((HSEStatus == 0) && (StartUpCounter != HSE_STARTUP_TIMEOUT)); if ((RCC->CR & RCC_CR_HSERDY) != RESET) { HSEStatus = (uint32_t)0x01; } else { HSEStatus = (uint32_t)0x00; } if (HSEStatus == (uint32_t)0x01) { /* Select regulator voltage output Scale 1 mode, System frequency up to 168 MHz */ RCC->APB1ENR |= RCC_APB1ENR_PWREN; PWR->CR |= PWR_CR_VOS; /* HCLK = SYSCLK / 1*/ RCC->CFGR |= RCC_CFGR_HPRE_DIV1; /* PCLK2 = HCLK / 2*/ RCC->CFGR |= RCC_CFGR_PPRE2_DIV2; /* PCLK1 = HCLK / 4*/ RCC->CFGR |= RCC_CFGR_PPRE1_DIV4; /* Configure the main PLL */ RCC->PLLCFGR = PLL_M | (PLL_N << 6) | (((PLL_P >> 1) -1) << 16) | (RCC_PLLCFGR_PLLSRC_HSE) | (PLL_Q << 24); /* Enable the main PLL */ RCC->CR |= RCC_CR_PLLON; /* Wait till the main PLL is ready */ while((RCC->CR & RCC_CR_PLLRDY) == 0) { } /* Configure Flash prefetch, Instruction cache, Data cache and wait state */ FLASH->ACR = FLASH_ACR_ICEN |FLASH_ACR_DCEN |FLASH_ACR_LATENCY_5WS; /* Select the main PLL as system clock source */ RCC->CFGR &= (uint32_t)((uint32_t)~(RCC_CFGR_SW)); RCC->CFGR |= RCC_CFGR_SW_PLL; /* Wait till the main PLL is used as system clock source */ while ((RCC->CFGR & (uint32_t)RCC_CFGR_SWS ) != RCC_CFGR_SWS_PLL) { asm("nop"); } } else { /* If HSE fails to start-up, the application will have wrong clock configuration. User can add here some code to deal with this error */ } /******************************************************************************/ /* I2S clock configuration */ /******************************************************************************/ #if START_I2SCLOCK /* PLLI2S clock used as I2S clock source */ RCC->CFGR &= ~RCC_CFGR_I2SSRC; /* Configure PLLI2S */ RCC->PLLI2SCFGR = (PLLI2S_N << 6) | (PLLI2S_R << 28); /* Enable PLLI2S */ RCC->CR |= ((uint32_t)RCC_CR_PLLI2SON); /* Wait till PLLI2S is ready */ while((RCC->CR & RCC_CR_PLLI2SRDY) == 0) { } #endif } /** * @brief Setup the external memory controller. Called in startup_stm32f4xx.s * before jump to __main * @param None * @retval None */ #ifdef DATA_IN_ExtSRAM /** * @brief Setup the external memory controller. * Called in startup_stm32f4xx.s before jump to main. * This function configures the external SRAM mounted on STM324xG_EVAL board * This SRAM will be used as program data memory (including heap and stack). * @param None * @retval None */ void SystemInit_ExtMemCtl(void) { /*-- GPIOs Configuration -----------------------------------------------------*/ /* +-------------------+--------------------+------------------+------------------+ + SRAM pins assignment + +-------------------+--------------------+------------------+------------------+ | PD0 <-> FSMC_D2 | PE0 <-> FSMC_NBL0 | PF0 <-> FSMC_A0 | PG0 <-> FSMC_A10 | | PD1 <-> FSMC_D3 | PE1 <-> FSMC_NBL1 | PF1 <-> FSMC_A1 | PG1 <-> FSMC_A11 | | PD4 <-> FSMC_NOE | PE3 <-> FSMC_A19 | PF2 <-> FSMC_A2 | PG2 <-> FSMC_A12 | | PD5 <-> FSMC_NWE | PE4 <-> FSMC_A20 | PF3 <-> FSMC_A3 | PG3 <-> FSMC_A13 | | PD8 <-> FSMC_D13 | PE7 <-> FSMC_D4 | PF4 <-> FSMC_A4 | PG4 <-> FSMC_A14 | | PD9 <-> FSMC_D14 | PE8 <-> FSMC_D5 | PF5 <-> FSMC_A5 | PG5 <-> FSMC_A15 | | PD10 <-> FSMC_D15 | PE9 <-> FSMC_D6 | PF12 <-> FSMC_A6 | PG9 <-> FSMC_NE2 | | PD11 <-> FSMC_A16 | PE10 <-> FSMC_D7 | PF13 <-> FSMC_A7 |------------------+ | PD12 <-> FSMC_A17 | PE11 <-> FSMC_D8 | PF14 <-> FSMC_A8 | | PD13 <-> FSMC_A18 | PE12 <-> FSMC_D9 | PF15 <-> FSMC_A9 | | PD14 <-> FSMC_D0 | PE13 <-> FSMC_D10 |------------------+ | PD15 <-> FSMC_D1 | PE14 <-> FSMC_D11 | | | PE15 <-> FSMC_D12 | +-------------------+--------------------+ */ /* Enable GPIOD, GPIOE, GPIOF and GPIOG interface clock */ RCC->AHB1ENR = 0x00000078; /* Connect PDx pins to FSMC Alternate function */ GPIOD->AFR[0] = 0x00cc00cc; GPIOD->AFR[1] = 0xcc0ccccc; /* Configure PDx pins in Alternate function mode */ GPIOD->MODER = 0xaaaa0a0a; /* Configure PDx pins speed to 100 MHz */ GPIOD->OSPEEDR = 0xffff0f0f; /* Configure PDx pins Output type to push-pull */ GPIOD->OTYPER = 0x00000000; /* No pull-up, pull-down for PDx pins */ GPIOD->PUPDR = 0x00000000; /* Connect PEx pins to FSMC Alternate function */ GPIOE->AFR[0] = 0xc00cc0cc; GPIOE->AFR[1] = 0xcccccccc; /* Configure PEx pins in Alternate function mode */ GPIOE->MODER = 0xaaaa828a; /* Configure PEx pins speed to 100 MHz */ GPIOE->OSPEEDR = 0xffffc3cf; /* Configure PEx pins Output type to push-pull */ GPIOE->OTYPER = 0x00000000; /* No pull-up, pull-down for PEx pins */ GPIOE->PUPDR = 0x00000000; /* Connect PFx pins to FSMC Alternate function */ GPIOF->AFR[0] = 0x00cccccc; GPIOF->AFR[1] = 0xcccc0000; /* Configure PFx pins in Alternate function mode */ GPIOF->MODER = 0xaa000aaa; /* Configure PFx pins speed to 100 MHz */ GPIOF->OSPEEDR = 0xff000fff; /* Configure PFx pins Output type to push-pull */ GPIOF->OTYPER = 0x00000000; /* No pull-up, pull-down for PFx pins */ GPIOF->PUPDR = 0x00000000; /* Connect PGx pins to FSMC Alternate function */ GPIOG->AFR[0] = 0x00cccccc; GPIOG->AFR[1] = 0x000000c0; /* Configure PGx pins in Alternate function mode */ GPIOG->MODER = 0x00080aaa; /* Configure PGx pins speed to 100 MHz */ GPIOG->OSPEEDR = 0x000c0fff; /* Configure PGx pins Output type to push-pull */ GPIOG->OTYPER = 0x00000000; /* No pull-up, pull-down for PGx pins */ GPIOG->PUPDR = 0x00000000; /*-- FSMC Configuration ------------------------------------------------------*/ /* Enable the FSMC interface clock */ RCC->AHB3ENR = 0x00000001; /* Configure and enable Bank1_SRAM2 */ FSMC_Bank1->BTCR[2] = 0x00001015; FSMC_Bank1->BTCR[3] = 0x00010603; FSMC_Bank1E->BWTR[2] = 0x0fffffff; /* Bank1_SRAM2 is configured as follow: p.FSMC_AddressSetupTime = 3; p.FSMC_AddressHoldTime = 0; p.FSMC_DataSetupTime = 6; p.FSMC_BusTurnAroundDuration = 1; p.FSMC_CLKDivision = 0; p.FSMC_DataLatency = 0; p.FSMC_AccessMode = FSMC_AccessMode_A; FSMC_NORSRAMInitStructure.FSMC_Bank = FSMC_Bank1_NORSRAM2; FSMC_NORSRAMInitStructure.FSMC_DataAddressMux = FSMC_DataAddressMux_Disable; FSMC_NORSRAMInitStructure.FSMC_MemoryType = FSMC_MemoryType_PSRAM; FSMC_NORSRAMInitStructure.FSMC_MemoryDataWidth = FSMC_MemoryDataWidth_16b; FSMC_NORSRAMInitStructure.FSMC_BurstAccessMode = FSMC_BurstAccessMode_Disable; FSMC_NORSRAMInitStructure.FSMC_AsynchronousWait = FSMC_AsynchronousWait_Disable; FSMC_NORSRAMInitStructure.FSMC_WaitSignalPolarity = FSMC_WaitSignalPolarity_Low; FSMC_NORSRAMInitStructure.FSMC_WrapMode = FSMC_WrapMode_Disable; FSMC_NORSRAMInitStructure.FSMC_WaitSignalActive = FSMC_WaitSignalActive_BeforeWaitState; FSMC_NORSRAMInitStructure.FSMC_WriteOperation = FSMC_WriteOperation_Enable; FSMC_NORSRAMInitStructure.FSMC_WaitSignal = FSMC_WaitSignal_Disable; FSMC_NORSRAMInitStructure.FSMC_ExtendedMode = FSMC_ExtendedMode_Disable; FSMC_NORSRAMInitStructure.FSMC_WriteBurst = FSMC_WriteBurst_Disable; FSMC_NORSRAMInitStructure.FSMC_ReadWriteTimingStruct = &p; FSMC_NORSRAMInitStructure.FSMC_WriteTimingStruct = &p; */ } #endif /* DATA_IN_ExtSRAM */ /** * @} */ /** * @} */ /** * @} */ /******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/ codec2-1.0.1/stm32/src/timer_ut.c000066400000000000000000000145611412132000500163760ustar00rootroot00000000000000/*---------------------------------------------------------------------------*\ FILE........: timer_ut.c AUTHOR......: David Rowe DATE CREATED: 3 Jan 2014 Unit test STM32F4 timer hardware. \*---------------------------------------------------------------------------*/ /* Copyright (C) 2014 David Rowe All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 2.1, as published by the Free Software Foundation. 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 Lesser General Public License along with this program; if not, see . */ #include #include #include #include "stm32f4xx_gpio.h" #include "stm32f4xx_rcc.h" #include "gdb_stdio.h" #define TIM1_CCR3_ADDRESS 0x4001223C TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; TIM_OCInitTypeDef TIM_OCInitStructure; TIM_BDTRInitTypeDef TIM_BDTRInitStructure; uint16_t uhTimerPeriod; uint16_t aSRC_Buffer[3] = {0, 0, 0}; void Timer1Config(); #define FS 3500000 int main(void){ Timer1Config(); } /* DR: TIM_Config configures a couple of I/O pins for PWM output from Timer1 Channel 3. Note I dont think any of this is needed, except perhaps to check timer frequency. Can be removed down the track. */ /** * @brief Configure the TIM1 Pins. * @param None * @retval None */ static void TIM_Config(void) { GPIO_InitTypeDef GPIO_InitStructure; /* GPIOA and GPIOB clock enable */ RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA | RCC_AHB1Periph_GPIOB, ENABLE); /* GPIOA Configuration: Channel 3 as alternate function push-pull */ /* Discovery board pin PA10 */ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10 ; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz; GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP ; GPIO_Init(GPIOA, &GPIO_InitStructure); GPIO_PinAFConfig(GPIOA, GPIO_PinSource10, GPIO_AF_TIM1); /* GPIOB Configuration: Channel 3N as alternate function push-pull */ /* Discovery board pin PB15 */ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_15; GPIO_Init(GPIOB, &GPIO_InitStructure); GPIO_PinAFConfig(GPIOB, GPIO_PinSource15, GPIO_AF_TIM1); } void Timer1Config() { /* TIM Configuration */ TIM_Config(); /* TIM1 example ------------------------------------------------- TIM1 input clock (TIM1CLK) is set to 2 * APB2 clock (PCLK2), since APB2 prescaler is different from 1. TIM1CLK = 2 * PCLK2 PCLK2 = HCLK / 2 => TIM1CLK = 2 * (HCLK / 2) = HCLK = SystemCoreClock TIM1CLK = SystemCoreClock, Prescaler = 0, TIM1 counter clock = SystemCoreClock SystemCoreClock is set to 168 MHz for STM32F4xx devices. The objective is to configure TIM1 channel 3 to generate complementary PWM signal with a frequency equal to F KHz: - TIM1_Period = (SystemCoreClock / F) - 1 The number of this repetitive requests is defined by the TIM1 Repetion counter, each 3 Update Requests, the TIM1 Channel 3 Duty Cycle changes to the next new value defined by the aSRC_Buffer. Note: SystemCoreClock variable holds HCLK frequency and is defined in system_stm32f4xx.c file. Each time the core clock (HCLK) changes, user had to call SystemCoreClockUpdate() function to update SystemCoreClock variable value. Otherwise, any configuration based on this variable will be incorrect. -----------------------------------------------------------------------------*/ /* Compute the value to be set in ARR regiter to generate signal frequency at FS Hz */ uhTimerPeriod = (SystemCoreClock / FS ) - 1; /* Compute CCR1 value to generate a duty cycle at 50% */ aSRC_Buffer[0] = (uint16_t) (((uint32_t) 5 * (uhTimerPeriod - 1)) / 10); /* Compute CCR1 value to generate a duty cycle at 37.5% */ aSRC_Buffer[1] = (uint16_t) (((uint32_t) 375 * (uhTimerPeriod - 1)) / 1000); /* Compute CCR1 value to generate a duty cycle at 25% */ aSRC_Buffer[2] = (uint16_t) (((uint32_t) 25 * (uhTimerPeriod - 1)) / 100); /* TIM1 Peripheral Configuration -------------------------------------------*/ /* TIM1 clock enable */ RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1, ENABLE); /* Time Base configuration */ TIM_DeInit(TIM1); TIM_TimeBaseStructure.TIM_Prescaler = 0; TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; TIM_TimeBaseStructure.TIM_Period = uhTimerPeriod; TIM_TimeBaseStructure.TIM_ClockDivision = 0; TIM_TimeBaseStructure.TIM_RepetitionCounter = 0; TIM_TimeBaseInit(TIM1, &TIM_TimeBaseStructure); /* Channel 3 Configuration in PWM mode */ /* I think we just ned to enable channel 3 somehow, but without (or optionally with) actual ouput to a GPIO pin. */ TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM2; TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; TIM_OCInitStructure.TIM_OutputNState = TIM_OutputNState_Enable; TIM_OCInitStructure.TIM_Pulse = aSRC_Buffer[0]; TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_Low; TIM_OCInitStructure.TIM_OCNPolarity = TIM_OCNPolarity_Low; TIM_OCInitStructure.TIM_OCIdleState = TIM_OCIdleState_Set; TIM_OCInitStructure.TIM_OCNIdleState = TIM_OCIdleState_Reset; TIM_OC3Init(TIM1, &TIM_OCInitStructure); /* Enable preload feature */ TIM_OC3PreloadConfig(TIM1, TIM_OCPreload_Enable); /* Automatic Output enable, Break, dead time and lock configuration*/ TIM_BDTRInitStructure.TIM_OSSRState = TIM_OSSRState_Enable; TIM_BDTRInitStructure.TIM_OSSIState = TIM_OSSIState_Enable; //TIM_BDTRInitStructure.TIM_LOCKLevel = TIM_LOCKLevel_1; TIM_BDTRInitStructure.TIM_DeadTime = 11; //TIM_BDTRInitStructure.TIM_Break = TIM_Break_Enable; //TIM_BDTRInitStructure.TIM_BreakPolarity = TIM_BreakPolarity_High; TIM_BDTRInitStructure.TIM_AutomaticOutput = TIM_AutomaticOutput_Enable; TIM_BDTRConfig(TIM1, &TIM_BDTRInitStructure); /* TIM1 counter enable */ TIM_Cmd(TIM1, ENABLE); /* Main Output Enable */ TIM_CtrlPWMOutputs(TIM1, ENABLE); } codec2-1.0.1/stm32/src/tm_stm32f4_gpio.c000066400000000000000000000156161412132000500174700ustar00rootroot00000000000000/** * |---------------------------------------------------------------------- * | Copyright (C) Tilen Majerle, 2015 * | * | 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 * | 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 . * |---------------------------------------------------------------------- */ #include "tm_stm32f4_gpio.h" /* Private function */ static uint16_t GPIO_UsedPins[11] = {0,0,0,0,0,0,0,0,0,0,0}; /* Private functions */ void TM_GPIO_INT_EnableClock(GPIO_TypeDef* GPIOx); void TM_GPIO_INT_DisableClock(GPIO_TypeDef* GPIOx); void TM_GPIO_INT_Init(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin, TM_GPIO_Mode_t GPIO_Mode, TM_GPIO_OType_t GPIO_OType, TM_GPIO_PuPd_t GPIO_PuPd, TM_GPIO_Speed_t GPIO_Speed); void TM_GPIO_Init(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin, TM_GPIO_Mode_t GPIO_Mode, TM_GPIO_OType_t GPIO_OType, TM_GPIO_PuPd_t GPIO_PuPd, TM_GPIO_Speed_t GPIO_Speed) { /* Check input */ if (GPIO_Pin == 0x00) { return; } /* Enable clock for GPIO */ TM_GPIO_INT_EnableClock(GPIOx); /* Do initialization */ TM_GPIO_INT_Init(GPIOx, GPIO_Pin, GPIO_Mode, GPIO_OType, GPIO_PuPd, GPIO_Speed); } void TM_GPIO_InitAlternate(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin, TM_GPIO_OType_t GPIO_OType, TM_GPIO_PuPd_t GPIO_PuPd, TM_GPIO_Speed_t GPIO_Speed, uint8_t Alternate) { uint32_t pinpos; /* Check input */ if (GPIO_Pin == 0x00) { return; } /* Enable GPIOx clock */ TM_GPIO_INT_EnableClock(GPIOx); /* Set alternate functions for all pins */ for (pinpos = 0; pinpos < 0x10; pinpos++) { /* Check pin */ if ((GPIO_Pin & (1 << pinpos)) == 0) { continue; } /* Set alternate function */ GPIOx->AFR[pinpos >> 0x03] = (GPIOx->AFR[pinpos >> 0x03] & ~(0x0F << (4 * (pinpos & 0x07)))) | (Alternate << (4 * (pinpos & 0x07))); } /* Do initialization */ TM_GPIO_INT_Init(GPIOx, GPIO_Pin, TM_GPIO_Mode_AF, GPIO_OType, GPIO_PuPd, GPIO_Speed); } void TM_GPIO_DeInit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin) { uint8_t i; uint8_t ptr = TM_GPIO_GetPortSource(GPIOx); /* Go through all pins */ for (i = 0x00; i < 0x10; i++) { /* Pin is set */ if (GPIO_Pin & (1 << i)) { /* Set 11 bits combination for analog mode */ GPIOx->MODER |= (0x03 << (2 * i)); /* Pin is not used */ GPIO_UsedPins[ptr] &= ~(1 << i); } } } void TM_GPIO_SetPinAsInput(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin) { uint8_t i; /* Go through all pins */ for (i = 0x00; i < 0x10; i++) { /* Pin is set */ if (GPIO_Pin & (1 << i)) { /* Set 00 bits combination for input */ GPIOx->MODER &= ~(0x03 << (2 * i)); } } } void TM_GPIO_SetPinAsOutput(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin) { uint8_t i; /* Go through all pins */ for (i = 0x00; i < 0x10; i++) { /* Pin is set */ if (GPIO_Pin & (1 << i)) { /* Set 01 bits combination for output */ GPIOx->MODER = (GPIOx->MODER & ~(0x03 << (2 * i))) | (0x01 << (2 * i)); } } } void TM_GPIO_SetPinAsAnalog(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin) { uint8_t i; /* Go through all pins */ for (i = 0x00; i < 0x10; i++) { /* Pin is set */ if (GPIO_Pin & (1 << i)) { /* Set 11 bits combination for analog mode */ GPIOx->MODER |= (0x03 << (2 * i)); } } } void TM_GPIO_SetPinAsAlternate(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin) { uint8_t i; /* Set alternate functions for all pins */ for (i = 0; i < 0x10; i++) { /* Check pin */ if ((GPIO_Pin & (1 << i)) == 0) { continue; } /* Set alternate mode */ GPIOx->MODER = (GPIOx->MODER & ~(0x03 << (2 * i))) | (0x02 << (2 * i)); } } void TM_GPIO_SetPullResistor(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin, TM_GPIO_PuPd_t GPIO_PuPd) { uint8_t pinpos; /* Go through all pins */ for (pinpos = 0; pinpos < 0x10; pinpos++) { /* Check if pin available */ if ((GPIO_Pin & (1 << pinpos)) == 0) { continue; } /* Set GPIO PUPD register */ GPIOx->PUPDR = (GPIOx->PUPDR & ~(0x03 << (2 * pinpos))) | ((uint32_t)(GPIO_PuPd << (2 * pinpos))); } } void TM_GPIO_Lock(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin) { uint32_t d; /* Set GPIO pin with 16th bit set to 1 */ d = 0x00010000 | GPIO_Pin; /* Write to LCKR register */ GPIOx->LCKR = d; GPIOx->LCKR = GPIO_Pin; GPIOx->LCKR = d; /* Read twice */ (void)GPIOx->LCKR; (void)GPIOx->LCKR; } uint16_t TM_GPIO_GetPinSource(uint16_t GPIO_Pin) { uint16_t pinsource = 0; /* Get pinsource */ while (GPIO_Pin > 1) { /* Increase pinsource */ pinsource++; /* Shift right */ GPIO_Pin >>= 1; } /* Return source */ return pinsource; } uint16_t TM_GPIO_GetPortSource(GPIO_TypeDef* GPIOx) { /* Get port source number */ /* Offset from GPIOA Difference between 2 GPIO addresses */ return ((uint32_t)GPIOx - (GPIOA_BASE)) / ((GPIOB_BASE) - (GPIOA_BASE)); } /* Private functions */ void TM_GPIO_INT_EnableClock(GPIO_TypeDef* GPIOx) { /* Set bit according to the 1 << portsourcenumber */ RCC->AHB1ENR |= (1 << TM_GPIO_GetPortSource(GPIOx)); } void TM_GPIO_INT_DisableClock(GPIO_TypeDef* GPIOx) { /* Clear bit according to the 1 << portsourcenumber */ RCC->AHB1ENR &= ~(1 << TM_GPIO_GetPortSource(GPIOx)); } void TM_GPIO_INT_Init(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin, TM_GPIO_Mode_t GPIO_Mode, TM_GPIO_OType_t GPIO_OType, TM_GPIO_PuPd_t GPIO_PuPd, TM_GPIO_Speed_t GPIO_Speed) { uint8_t pinpos; uint8_t ptr = TM_GPIO_GetPortSource(GPIOx); /* Go through all pins */ for (pinpos = 0; pinpos < 0x10; pinpos++) { /* Check if pin available */ if ((GPIO_Pin & (1 << pinpos)) == 0) { continue; } /* Pin is used */ GPIO_UsedPins[ptr] |= 1 << pinpos; /* Set GPIO PUPD register */ GPIOx->PUPDR = (GPIOx->PUPDR & ~(0x03 << (2 * pinpos))) | ((uint32_t)(GPIO_PuPd << (2 * pinpos))); /* Set GPIO MODE register */ GPIOx->MODER = (GPIOx->MODER & ~((uint32_t)(0x03 << (2 * pinpos)))) | ((uint32_t)(GPIO_Mode << (2 * pinpos))); /* Set only if output or alternate functions */ if (GPIO_Mode == TM_GPIO_Mode_OUT || GPIO_Mode == TM_GPIO_Mode_AF) { /* Set GPIO OTYPE register */ GPIOx->OTYPER = (GPIOx->OTYPER & ~(uint16_t)(0x01 << pinpos)) | ((uint16_t)(GPIO_OType << pinpos)); /* Set GPIO OSPEED register */ GPIOx->OSPEEDR = (GPIOx->OSPEEDR & ~((uint32_t)(0x03 << (2 * pinpos)))) | ((uint32_t)(GPIO_Speed << (2 * pinpos))); } } } uint16_t TM_GPIO_GetUsedPins(GPIO_TypeDef* GPIOx) { /* Return used */ return GPIO_UsedPins[TM_GPIO_GetPortSource(GPIOx)]; } uint16_t TM_GPIO_GetFreePins(GPIO_TypeDef* GPIOx) { /* Return free pins */ return ~GPIO_UsedPins[TM_GPIO_GetPortSource(GPIOx)]; } codec2-1.0.1/stm32/src/tm_stm32f4_mco_output.c000066400000000000000000000065761412132000500207350ustar00rootroot00000000000000/** * |---------------------------------------------------------------------- * | Copyright (C) Tilen Majerle, 2014 * | * | 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 * | 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 . * |---------------------------------------------------------------------- */ #include "tm_stm32f4_mco_output.h" void TM_MCOOUTPUT_InitMCO1(void) { /* Enable PA8 */ TM_GPIO_Init(GPIOA, GPIO_PIN_8, TM_GPIO_Mode_AF, TM_GPIO_OType_PP, TM_GPIO_PuPd_NOPULL, TM_GPIO_Speed_High); } void TM_MCOOUTPUT_InitMCO2(void) { /* Enable PC9 */ TM_GPIO_Init(GPIOC, GPIO_PIN_9, TM_GPIO_Mode_AF, TM_GPIO_OType_PP, TM_GPIO_PuPd_NOPULL, TM_GPIO_Speed_High); } void TM_MCOOUTPUT_SetOutput1(TM_MCOOUTPUT1_Source_t Source, TM_MCOOUTPUT_Prescaler_t Prescaler) { uint32_t presc = 0, src = 0; /* Get prescaler */ switch (Prescaler) { case TM_MCOOUTPUT_Prescaler_1: presc = RCC_MCO1Div_1; break; case TM_MCOOUTPUT_Prescaler_2: presc = RCC_MCO1Div_2; break; case TM_MCOOUTPUT_Prescaler_3: presc = RCC_MCO1Div_3; break; case TM_MCOOUTPUT_Prescaler_4: presc = RCC_MCO1Div_4; break; case TM_MCOOUTPUT_Prescaler_5: presc = RCC_MCO1Div_5; break; default: break; } /* Get source */ switch (Source) { case TM_MCOOUTPUT1_Source_HSE: src = RCC_MCO1Source_HSE; /* Enable RCC HSE oscillator */ RCC_HSEConfig(RCC_HSE_ON); break; case TM_MCOOUTPUT1_Source_HSI: src = RCC_MCO1Source_HSI; break; case TM_MCOOUTPUT1_Source_PLLCLK: src = RCC_MCO1Source_PLLCLK; break; case TM_MCOOUTPUT1_Source_LSE: src = RCC_MCO1Source_LSE; /* Start LSE clock if available */ RCC_LSEConfig(RCC_LSE_ON); break; default: break; } /* Set source and prescaler */ RCC_MCO1Config(src, presc); } void TM_MCOOUTPUT_SetOutput2(TM_MCOOUTPUT2_Source_t Source, TM_MCOOUTPUT_Prescaler_t Prescaler) { uint32_t presc = 0, src = 0; /* Get prescaler */ switch (Prescaler) { case TM_MCOOUTPUT_Prescaler_1: presc = RCC_MCO2Div_1; break; case TM_MCOOUTPUT_Prescaler_2: presc = RCC_MCO2Div_2; break; case TM_MCOOUTPUT_Prescaler_3: presc = RCC_MCO2Div_3; break; case TM_MCOOUTPUT_Prescaler_4: presc = RCC_MCO2Div_4; break; case TM_MCOOUTPUT_Prescaler_5: presc = RCC_MCO2Div_5; break; default: break; } /* Get clock source */ switch (Source) { case TM_MCOOUTPUT2_Source_SYSCLK: src = RCC_MCO2Source_SYSCLK; break; case TM_MCOOUTPUT2_Source_PLLI2SCLK: src = RCC_MCO2Source_PLLI2SCLK; break; case TM_MCOOUTPUT2_Source_HSE: src = RCC_MCO2Source_HSE; break; case TM_MCOOUTPUT2_Source_PLLCLK: src = RCC_MCO2Source_PLLCLK; break; default: break; } /* Set source and prescaler */ RCC_MCO2Config(src, presc); } codec2-1.0.1/stm32/src/tone.c000066400000000000000000000102071412132000500155040ustar00rootroot00000000000000/*! * Fixed-point tone generator. * * The code here implements a simple fixed-point tone generator that uses * integer arithmetic to generate a sinusoid at a fixed sample rate of * 16kHz. * * To set the initial state of the state machine, you specify a frequency * and duration using tone_reset. The corresponding C file embeds a * sinusoid look-up table. The total number of samples is computed for * the given time and used to initialise 'remain', 'time' is initialised * to 0, and 'step' gives the amount to increment 'time' by each iteration. * * The samples are retrieved by repeatedly calling tone_next. This * advances 'time' and decrements 'remain'. The tone is complete when * 'remain' is zero. * * Author Stuart Longland * Copyright (C) 2015 FreeDV project. * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU Lesser General Public License version 2.1, * as published by the Free Software Foundation. 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 Lesser General Public * License along with this program; if not, see * . */ #include "tone.h" /*! Fixed-point shift factor */ #define TONE_SHIFT (12) /*! Static compiled quarter-sinusoid. */ static const int16_t partial_sine[] = { 830, 2488, 4140, 5781, 7407, 9014, 10598, 12155, 13681, 15171, 16623, 18031, 19394, 20707, 21967, 23170, 24314, 25395, 26411, 27360, 28238, 29043, 29774, 30429, 31006, 31503, 31919, 32253, 32504, 32672, 32756 }; /*! Length of quarter-sinusoid in samples */ #define TONE_PART_SINE_LEN (sizeof(partial_sine)\ /sizeof(partial_sine[0])) /*! Total length of sinusoid */ #define TONE_SINE_LEN ((TONE_PART_SINE_LEN*4)+4) /*! * Generate a sine from the quarter-waveform. */ static int16_t tone_sine(uint8_t sample) { /* Key points */ if ((sample % (TONE_SINE_LEN/2)) == 0) /* Zero crossings */ return 0; if (sample == TONE_SINE_LEN/4) /* Maximum */ return INT16_MAX; if (sample == (3*TONE_SINE_LEN)/4) /* Minimum */ return INT16_MIN; if (sample < TONE_SINE_LEN/4) /* First quarter of sine wave */ return partial_sine[sample-1]; if (sample < (TONE_SINE_LEN/2)) /* Second quarter */ return partial_sine[(TONE_SINE_LEN/2)-sample-1]; if (sample < ((3*TONE_SINE_LEN)/4)) /* Third quarter */ return -partial_sine[(sample-3) % TONE_PART_SINE_LEN]; if (sample < TONE_SINE_LEN) /* Final quarter */ return -partial_sine[TONE_SINE_LEN-sample-1]; /* We should not get here */ return 0; } /*! * Re-set the tone generator. * * @param tone_gen Tone generator to reset. * @param freq Frequency in Hz, 0 = silence. * @param duration Duration in milliseconds. 0 to stop. */ void tone_reset( struct tone_gen_t* const tone_gen, uint16_t freq, uint16_t duration) { if (freq) /* Compute the time step */ tone_gen->step = (((2*freq*TONE_SINE_LEN) << TONE_SHIFT) / ((2*TONE_FS) + 1) + 1); else /* DC tone == silence */ tone_gen->step = 0; /* Compute remaining samples */ tone_gen->remain = (uint16_t)( ((uint32_t)(TONE_FS * duration)) / 1000); /* Initialise the sample counter */ tone_gen->sample = 0; } /*! * Retrieve the next sample from the tone generator. * @param tone_gen Tone generator to update. */ int16_t tone_next( struct tone_gen_t* const tone_gen) { if (!tone_gen) return 0; if (!tone_gen->remain) return 0; if (!tone_gen->step) { /* Special case, emit silence */ tone_gen->remain--; return 0; } /* Compute sample index */ uint16_t sample_int = ((tone_gen->sample) >> TONE_SHIFT) % TONE_SINE_LEN; /* Advance tone generator state */ tone_gen->sample += tone_gen->step; tone_gen->remain--; return tone_sine(sample_int); } /*! * Retrieve the current time in milliseconds. */ uint32_t tone_msec(const struct tone_gen_t* const tone_gen) { uint64_t ms = tone_gen->sample; ms *= 1000; ms /= TONE_FS; return ms >> TONE_SHIFT; } codec2-1.0.1/stm32/src/tot.c000066400000000000000000000044541412132000500153540ustar00rootroot00000000000000/*! * Time-out timer. * * This is a simple time-out timer for ensuring a maximum transmission * time is observed. The time-out timer is configured with a total time * in "ticks", which get counted down in an interrupt. * * When the "warning" level is reached, a flag is repeatedly set permit * triggering of LEDs/sounds to warn the user that time is nearly up. * * Upon timeout, a separate flag is set to indicate timeout has taken * place. * * Author Stuart Longland * Copyright (C) 2015 FreeDV project. * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU Lesser General Public License version 2.1, * as published by the Free Software Foundation. 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 Lesser General Public * License along with this program; if not, see * . */ #include "tot.h" /*! * Reset the time-out timer. This zeroes the counter and event flags. */ void tot_reset(struct tot_t * const tot) { tot->event = 0; tot->remaining = 0; tot->warn_remain = 0; tot->ticks = 0; } /*! * Start the time-out timer ticking. */ void tot_start(struct tot_t * const tot, uint32_t tot_ticks, uint16_t warn_ticks) { tot->event = TOT_EVT_START; tot->warn_remain = tot_ticks - warn_ticks; tot->remaining = tot_ticks; tot->ticks = tot->tick_period; } /*! * Update the time-out timer state. */ void tot_update(struct tot_t * const tot) { if (!tot->event) /* We are not active */ return; if (tot->event & TOT_EVT_DONE) /* We are done, do not process */ return; if (tot->ticks) /* Wait for a tick to pass */ return; /* One "tick" has passed */ if (!tot->remaining) { /* Time-out reached, reset all flags except timeout */ tot->event |= TOT_EVT_TIMEOUT | TOT_EVT_DONE; return; } else { tot->remaining--; } if (!tot->warn_remain) { /* Warning period has passed */ tot->event |= TOT_EVT_WARN | TOT_EVT_WARN_NEXT; tot->warn_remain = tot->remain_warn_ticks; } else { tot->warn_remain--; } tot->ticks = tot->tick_period; } codec2-1.0.1/stm32/src/tuner_ut.c000066400000000000000000000073711412132000500164140ustar00rootroot00000000000000/*---------------------------------------------------------------------------*\ FILE........: tuner_ut.c AUTHOR......: David Rowe DATE CREATED: 20 Feb 2015 Unit test for high speed ADC radio tuner, samples signal centred at 500kHz using Fs=2 MHz and uploads to host at Fs=10 kHz. \*---------------------------------------------------------------------------*/ /* Copyright (C) 2015 David Rowe All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 2.1, as published by the Free Software Foundation. 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 Lesser General Public License along with this program; if not, see . */ #include #include #include "gdb_stdio.h" #include "stm32f4_dac.h" #include "stm32f4_adc_tuner.h" #include "iir_tuner.h" #include "sm1000_leds_switches.h" #include "../src/codec2_fm.h" #include "stm32f4xx.h" #define REC_TIME_SECS 10 #define FS 50000 #define N 5000 extern int adc_overflow1; int main(void) { float tuner_out[IIR_TUNER_DEC_50_10_FILT_MEM+N/2]; float fm_out[N/2]; //float dec_10[(N/2)/5]; short dec_10_short[(N/2)]; int bufs, i, j, k, fifo_sz, bn; FILE *ftuner; struct FM *fm; ftuner = fopen("tuner.raw", "wb"); if (ftuner == NULL) { printf("Error opening input file: tuner.raw\n\nTerminating....\n"); exit(1); } bufs = FS*REC_TIME_SECS/N; fifo_sz = ((4*N/ADC_TUNER_N)+1)*ADC_TUNER_N; printf("Starting! bufs: %d %d\n", bufs, fifo_sz); //dac_open(DAC_BUF_SZ); adc_open(fifo_sz); sm1000_leds_switches_init(); fm = fm_create(N/2); fm->Fs = 44400.0; fm->fm_max = 3000.0; fm->fd = 5000.0; fm->fc = fm->Fs/4; i = 0; bn = 0; while(1) { /* wait for buffer of Fs=50kHz tuner output samples */ while(adc1_read((short *)&tuner_out[IIR_TUNER_DEC_50_10_FILT_MEM], N) == -1); /* The semi-hosting system can only handle Fs=16kHz and below so resample down to Fs=10 kHz and convert to shorts */ #ifdef SSB iir_tuner_dec_50_to_10(dec_10, &tuner_out[IIR_TUNER_DEC_50_10_FILT_MEM], N/2); for(j=0; jODR |= (1 << 3); /* for(j=0; jODR &= ~(1 << 3); for(j=0,k=0; j #include "stm32f4_usart.h" void Delay(uint32_t nCount) { while(nCount--) { } } int main(void){ usart_init(); while(1){ usart_puts("Hello, World\n"); Delay(0x3FFFFF); } } codec2-1.0.1/stm32/src/usb_vcp_ut.c000066400000000000000000000047271412132000500167220ustar00rootroot00000000000000/*---------------------------------------------------------------------------*\ FILE........: usb_vcp_ut.c AUTHOR......: xenovacivus DATE CREATED: 31 August 2014 USB Virtual COM Port (VCP) unit test that I found here: https://github.com/xenovacivus/STM32DiscoveryVCP Remarkably, it compiled and ran first time, and even the LEDs blink as advertised, they just happen to match the LEDs on the SM1000! However the speed was capped at about 130 kB/s. After a lot of messing around I found suggestions in the comments from a similar library here: http://stm32f4-discovery.com/2014/08/library-24-virtual-com-port-vcp-stm32f4xx/ The key was changing APP_RX_DATA_SIZE in usbd_conf.h to 10000. I guess the previous size of 2048 was constraing the length of USB packets, and the USB overhead meant slow throughput. I could achieve a max of 450 kB/s with this change, about 1/3 of the theoretical 1.5 MB/s max for USB FS (12 Mbit/s). I used this to test grabbing data from the STM32F4 Discovery: $ sudo dd if=/dev/ttyACM0 of=/dev/null count=100 4+96 records in 44+1 records out 22615 bytes (23 kB) copied, 0.150884 s, 150 kB/s However I occasionally see: $ sudo dd if=/dev/ttyACM0 of=/dev/null count=100 dd: failed to open ‘/dev/ttyACM0’: Device or resource busy Googling found some suggestion that this is due to "modem manager", however I removed MM and the problem still exists. \*---------------------------------------------------------------------------*/ #include #include #include "stm32f4_usb_vcp.h" #include "sm1000_leds_switches.h" volatile uint32_t ticker, buf_ticker; #define N 640*6 short buf[N]; int main(void) { int i; for(i=0; i 500) { GPIOD->BSRRH = GPIO_Pin_13; } if (ticker > 1000) { ticker = 0; GPIOD->BSRRL = GPIO_Pin_13; } /* Every 40ms send a buffer, simulates 16 bit samples at Fs=96kHz */ if (buf_ticker > 40) { buf_ticker = 0; led_pwr(1); VCP_send_buffer((uint8_t*)buf, sizeof(buf)); led_pwr(0); } } return 0; } /* * Interrupt Handler */ void SysTick_Handler(void) { ticker++; buf_ticker++; } codec2-1.0.1/stm32/src/usb_vsp_ut.c000066400000000000000000000075161412132000500167410ustar00rootroot00000000000000 #define HSE_VALUE ((uint32_t)8000000) /* STM32 discovery uses a 8Mhz external crystal */ #include "stm32f4xx_conf.h" #include "stm32f4xx.h" #include "stm32f4xx_gpio.h" #include "stm32f4xx_rcc.h" #include "stm32f4xx_exti.h" #include "usbd_cdc_core.h" #include "usbd_usr.h" #include "usbd_desc.h" #include "usbd_cdc_vcp.h" #include "usb_dcd_int.h" volatile uint32_t ticker, downTicker; /* * The USB data must be 4 byte aligned if DMA is enabled. This macro handles * the alignment, if necessary (it's actually magic, but don't tell anyone). */ __ALIGN_BEGIN USB_OTG_CORE_HANDLE USB_OTG_dev __ALIGN_END; void init(); void ColorfulRingOfDeath(void); /* * Define prototypes for interrupt handlers here. The conditional "extern" * ensures the weak declarations from startup_stm32f4xx.c are overridden. */ #ifdef __cplusplus extern "C" { #endif void SysTick_Handler(void); void NMI_Handler(void); void HardFault_Handler(void); void MemManage_Handler(void); void BusFault_Handler(void); void UsageFault_Handler(void); void SVC_Handler(void); void DebugMon_Handler(void); void PendSV_Handler(void); void OTG_FS_IRQHandler(void); void OTG_FS_WKUP_IRQHandler(void); #ifdef __cplusplus } #endif int main(void) { /* Set up the system clocks */ SystemInit(); /* Initialize USB, IO, SysTick, and all those other things you do in the morning */ init(); while (1) { /* Blink the orange LED at 1Hz */ if (500 == ticker) { GPIOD->BSRRH = GPIO_Pin_13; } else if (1000 == ticker) { ticker = 0; GPIOD->BSRRL = GPIO_Pin_13; } /* If there's data on the virtual serial port: * - Echo it back * - Turn the green LED on for 10ms */ uint8_t theByte; if (VCP_get_char(&theByte)) { VCP_put_char(theByte); GPIOD->BSRRL = GPIO_Pin_12; downTicker = 10; } if (0 == downTicker) { GPIOD->BSRRH = GPIO_Pin_12; } } return 0; } void init() { /* STM32F4 discovery LEDs */ GPIO_InitTypeDef LED_Config; /* Always remember to turn on the peripheral clock... If not, you may be up till 3am debugging... */ RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOD, ENABLE); LED_Config.GPIO_Pin = GPIO_Pin_12 | GPIO_Pin_13| GPIO_Pin_14| GPIO_Pin_15; LED_Config.GPIO_Mode = GPIO_Mode_OUT; LED_Config.GPIO_OType = GPIO_OType_PP; LED_Config.GPIO_Speed = GPIO_Speed_25MHz; LED_Config.GPIO_PuPd = GPIO_PuPd_NOPULL; GPIO_Init(GPIOD, &LED_Config); /* Setup SysTick or CROD! */ if (SysTick_Config(SystemCoreClock / 1000)) { ColorfulRingOfDeath(); } /* Setup USB */ USBD_Init(&USB_OTG_dev, USB_OTG_FS_CORE_ID, &USR_desc, &USBD_CDC_cb, &USR_cb); return; } /* * Call this to indicate a failure. Blinks the STM32F4 discovery LEDs * in sequence. At 168Mhz, the blinking will be very fast - about 5 Hz. * Keep that in mind when debugging, knowing the clock speed might help * with debugging. */ void ColorfulRingOfDeath(void) { uint16_t ring = 1; while (1) { uint32_t count = 0; while (count++ < 500000); GPIOD->BSRRH = (ring << 12); ring = ring << 1; if (ring >= 1<<4) { ring = 1; } GPIOD->BSRRL = (ring << 12); } } /* * Interrupt Handlers */ void SysTick_Handler(void) { ticker++; if (downTicker > 0) { downTicker--; } } void NMI_Handler(void) {} void HardFault_Handler(void) { ColorfulRingOfDeath(); } void MemManage_Handler(void) { ColorfulRingOfDeath(); } void BusFault_Handler(void) { ColorfulRingOfDeath(); } void UsageFault_Handler(void){ ColorfulRingOfDeath(); } void SVC_Handler(void) {} void DebugMon_Handler(void) {} void PendSV_Handler(void) {} void OTG_FS_IRQHandler(void) { USBD_OTG_ISR_Handler (&USB_OTG_dev); } void OTG_FS_WKUP_IRQHandler(void) { if(USB_OTG_dev.cfg.low_power) { *(uint32_t *)(0xE000ED10) &= 0xFFFFFFF9 ; SystemInit(); USB_OTG_UngateClock(&USB_OTG_dev); } EXTI_ClearITPendingBit(EXTI_Line18); } codec2-1.0.1/stm32/stlink/000077500000000000000000000000001412132000500151105ustar00rootroot00000000000000codec2-1.0.1/stm32/stlink/elfsym.c000066400000000000000000000074101412132000500165550ustar00rootroot00000000000000/* elfsym.c Read symbol adresses from a .elf file. Based on libelf-howto.c from: http://em386.blogspot.com Unit test with: gcc elfsym.c -o elfsym -D__UNITTEST__ -Wall -lelf ./elfsym elf_file.elf */ #include #include #include #include #include #include #include #include #include #include "elfsym.h" #define ERR -1 int elfsym_open(char file[]) { int fd; /* File Descriptor */ char *base_ptr; /* ptr to our object in memory */ struct stat elf_stats; /* fstat struct */ if((fd = open(file, O_RDWR)) == ERR) { printf("couldnt open %s\n", file); return ERR; } if((fstat(fd, &elf_stats))) { printf("could not fstat %s\n", file); close(fd); return ERR; } if((base_ptr = (char *) malloc(elf_stats.st_size)) == NULL) { fprintf(stderr, "could not malloc\n"); close(fd); return ERR; } if((read(fd, base_ptr, elf_stats.st_size)) < elf_stats.st_size) { fprintf(stderr, "could not read %s\n", file); free(base_ptr); close(fd); return ERR; } /* Check libelf version first */ if(elf_version(EV_CURRENT) == EV_NONE) { fprintf(stderr, "WARNING Elf Library is out of date!\n"); } free(base_ptr); return fd; } void elfsym_close(int fd) { close(fd); } unsigned int elfsym_get_symbol_address(int fd, char symbol_name[]) { Elf_Scn *scn; /* Section Descriptor */ Elf_Data *edata; /* Data Descriptor */ GElf_Sym sym; /* Symbol */ GElf_Shdr shdr; /* Section Header */ Elf *elf; /* Our Elf pointer for libelf */ unsigned int symbol_address; int symbol_count; int i; /* Iterate through section headers, stop when we find symbols, and check for match */ elf = elf_begin(fd, ELF_C_READ, NULL); if (elf == 0) { fprintf(stderr, "could not elf_begin\n"); } symbol_address = 0; scn = NULL; while((scn = elf_nextscn(elf, scn)) != 0) { gelf_getshdr(scn, &shdr); // When we find a section header marked SHT_SYMTAB stop and get symbols edata = NULL; if(shdr.sh_type == SHT_SYMTAB) { // edata points to our symbol table edata = elf_getdata(scn, edata); // how many symbols are there? this number comes from the size of // the section divided by the entry size symbol_count = shdr.sh_size / shdr.sh_entsize; // loop through to grab all symbols for(i = 0; i < symbol_count; i++) { // libelf grabs the symbol data using gelf_getsym() gelf_getsym(edata, i, &sym); if (strcmp(symbol_name, elf_strptr(elf, shdr.sh_link, sym.st_name)) == 0) { symbol_address = sym.st_value; } } } } return symbol_address; } #ifdef __UNITTEST__ int main(int argc, char *argv[]) { int fd; unsigned int flag_addr, ptr_addr, file_addr, len_addr; fd = elfsym_open(argv[1]); flag_addr = elfsym_get_symbol_address(fd, "syscalls_gdb_flag"); ptr_addr = elfsym_get_symbol_address(fd, "syscalls_gdb_ptr"); file_addr = elfsym_get_symbol_address(fd, "syscalls_gdb_file"); len_addr = elfsym_get_symbol_address(fd, "syscalls_gdb_len"); elfsym_close(fd); printf("flag_addr: 0x%x\n", flag_addr); printf("ptr_addr: 0x%x\n", ptr_addr); printf("file_addr: 0x%x\n", file_addr); printf("len_addr: 0x%x\n", len_addr); return 0; } #endif codec2-1.0.1/stm32/stlink/elfsym.h000066400000000000000000000003501412132000500165560ustar00rootroot00000000000000/* elfsym.h Read symbol adresses from a .elf file. */ #ifndef __ELFSYM__ #define __ELFSYM__ int elfsym_open(char file[]); void elfsym_close(int fd); unsigned int elfsym_get_symbol_address(int fd, char symbol_name[]); #endif codec2-1.0.1/stm32/stlink/stlink.patch000066400000000000000000000320551412132000500174420ustar00rootroot00000000000000diff --git Makefile.am Makefile.am index a315dd7..7406216 100644 --- Makefile.am +++ Makefile.am @@ -7,7 +7,7 @@ bin_PROGRAMS = st-flash st-util noinst_LIBRARIES = libstlink.a st_flash_SOURCES = flash/main.c -st_util_SOURCES = gdbserver/gdb-remote.c gdbserver/gdb-remote.h gdbserver/gdb-server.c mingw/mingw.c mingw/mingw.h +st_util_SOURCES = gdbserver/gdb-remote.c gdbserver/gdb-remote.h gdbserver/gdb-server.c gdbserver/elfsym.c mingw/mingw.c mingw/mingw.h CFILES = \ src/stlink-common.c \ @@ -24,14 +24,14 @@ HFILES = \ libstlink_a_SOURCES = $(CFILES) $(HFILES) -libstlink_a_CPPFLAGS = -std=gnu99 -Wall -Wextra -O2 +libstlink_a_CPPFLAGS = -std=gnu99 -Wall -Wextra -g libstlink_a_LIBADD = $(LIBOBJS) st_flash_LDADD = libstlink.a -st_flash_CPPFLAGS = -std=gnu99 -Wall -Wextra -O2 -I$(top_srcdir)/src -I$(top_srcdir)/mingw +st_flash_CPPFLAGS = -std=gnu99 -Wall -Wextra -g -I$(top_srcdir)/src -I$(top_srcdir)/mingw -st_util_LDADD = libstlink.a -st_util_CPPFLAGS = -std=gnu99 -Wall -Wextra -O2 -I$(top_srcdir)/src -I$(top_srcdir)/mingw +st_util_LDADD = libstlink.a -lelf +st_util_CPPFLAGS = -std=gnu99 -Wall -Wextra -g -I$(top_srcdir)/src -I$(top_srcdir)/mingw EXTRA_DIST = autogen.sh diff --git gdbserver/Makefile gdbserver/Makefile index bd5c73d..6763388 100644 --- gdbserver/Makefile +++ gdbserver/Makefile @@ -1,12 +1,11 @@ PRG := st-util -OBJS = gdb-remote.o gdb-server.o +OBJS = gdb-remote.o gdb-server.o elfsym.o CFLAGS+=-g -Wall -Werror -std=gnu99 -I../src LDFLAGS=-L.. -lstlink # libusb location -LDFLAGS+=`pkg-config --libs libusb-1.0` -CFLAGS+=`pkg-config --cflags libusb-1.0` +LDFLAGS+=`pkg-config --libs libusb-1.0` -lelfCFLAGS+=`pkg-config --cflags libusb-1.0` all: $(PRG) diff --git gdbserver/gdb-server.c gdbserver/gdb-server.c index f92fc05..e54d136 100644 --- gdbserver/gdb-server.c +++ gdbserver/gdb-server.c @@ -1,11 +1,12 @@ /* -*- tab-width:8 -*- */ -#define DEBUG 0 +//#define DEBUG 0 /* Copyright (C) 2011 Peter Zotov Use of this source code is governed by a BSD-style license that can be found in the LICENSE file. */ +#include #include #include #include @@ -20,14 +21,29 @@ #include #include #endif +#include +#include +#include #include #include "gdb-remote.h" +#include "elfsym.h" #define DEFAULT_LOGGING_LEVEL 50 #define DEFAULT_GDB_LISTEN_PORT 4242 +/* stdio command codes from target */ + +#define GDB_STDIO_PRINTF 1 +#define GDB_STDIO_FOPEN 2 +#define GDB_STDIO_FCLOSE 3 +#define GDB_STDIO_FWRITE 4 +#define GDB_STDIO_FREAD 5 +#define GDB_STDIO_FPRINTF 6 + +#define MAX_STR 256 + #define STRINGIFY_inner(name) #name #define STRINGIFY(name) STRINGIFY_inner(name) @@ -46,11 +62,12 @@ typedef struct _st_state_t { // "/dev/serial/by-id/usb-FTDI_TTL232R-3V3_FTE531X6-if00-port0" is only 58 chars char devicename[100]; int logging_level; - int listen_port; + int listen_port; + char elf_filename[255]; } st_state_t; -int serve(stlink_t *sl, int port); +int serve(stlink_t *sl, int port, char *elf_filename); char* make_memory_map(stlink_t *sl); @@ -76,13 +93,14 @@ int parse_options(int argc, char** argv, st_state_t *st) { " -p 4242, --listen_port=1234\n" "\t\t\tSet the gdb server listen port. " "(default port: " STRINGIFY(DEFAULT_GDB_LISTEN_PORT) ")\n" + " -f \tenable File I/O of target executable elf_filename" ; int option_index = 0; int c; int q; - while ((c = getopt_long(argc, argv, "hv::d:s:1p:", long_options, &option_index)) != -1) { + while ((c = getopt_long(argc, argv, "hv::d:s:1p:1f:", long_options, &option_index)) != -1) { switch (c) { case 0: printf("XXXXX Shouldn't really normally come here, only if there's no corresponding option\n"); @@ -110,25 +128,29 @@ int parse_options(int argc, char** argv, st_state_t *st) { strcpy(st->devicename, optarg); } break; - case '1': - st->stlink_version = 1; - break; - case 's': - sscanf(optarg, "%i", &q); - if (q < 0 || q > 2) { - fprintf(stderr, "stlink version %d unknown!\n", q); - exit(EXIT_FAILURE); - } - st->stlink_version = q; - break; - case 'p': - sscanf(optarg, "%i", &q); - if (q < 0) { - fprintf(stderr, "Can't use a negative port to listen on: %d\n", q); - exit(EXIT_FAILURE); - } - st->listen_port = q; - break; + case '1': + st->stlink_version = 1; + break; + case 's': + sscanf(optarg, "%i", &q); + if (q < 0 || q > 2) { + fprintf(stderr, "stlink version %d unknown!\n", q); + exit(EXIT_FAILURE); + } + st->stlink_version = q; + break; + case 'p': + sscanf(optarg, "%i", &q); + if (q < 0) { + fprintf(stderr, "Can't use a negative port to listen on: %d\n", q); + exit(EXIT_FAILURE); + } + st->listen_port = q; + break; + case 'f': + sscanf(optarg, "%s", st->elf_filename); + printf("-f arg; %s\n", st->elf_filename); + break; } } @@ -162,7 +184,7 @@ int main(int argc, char** argv) { sl = stlink_v1_open(state.logging_level); if(sl == NULL) return 1; break; - } + } printf("Chip ID is %08x, Core ID is %08x.\n", sl->chip_id, sl->core_id); @@ -177,7 +199,7 @@ int main(int argc, char** argv) { } #endif - while(serve(sl, state.listen_port) == 0); + while(serve(sl, state.listen_port, state.elf_filename) == 0); #ifdef __MINGW32__ winsock_error: @@ -625,7 +647,179 @@ error: return error; } -int serve(stlink_t *sl, int port) { +static unsigned int func_addr, ret_addr, pstr1_addr, pstr2_addr; +static unsigned int strlen1_addr, strlen2_addr, file_addr, ptr_addr; +static unsigned int size_addr, nmem_addr; + +static void write_buffer(stlink_t *sl, int target_addr, char* buf, size_t size) { + /* write the buffer right after the loader */ + size_t chunk = size & ~0x3; + size_t rem = size & 0x3; + + if (chunk) { + memcpy(sl->q_buf, buf, chunk); + stlink_write_mem32(sl, target_addr, chunk); + } + if (rem) { + memcpy(sl->q_buf, buf+chunk, rem); + stlink_write_mem8(sl, target_addr+chunk, rem); + } +} + +static void read_buffer(stlink_t *sl, int target_addr, char* buf, size_t size) { + unsigned adj_start = target_addr % 4; + unsigned count_rnd = (size + adj_start + 4 - 1) / 4 * 4; + size_t i; + + stlink_read_mem32(sl, target_addr - adj_start, count_rnd); + + for(i=0; iq_buf[i + adj_start]; +} + +static void fileio(stlink_t *sl) +{ + int func, pstr1, pstr2, strlen1, strlen2, ptr, size, nmem; + int ret = 0; + FILE *file; + char file_name[MAX_STR]; + char mode[MAX_STR]; + char *buf; + + stlink_read_mem32(sl, func_addr, 4); + func = read_uint32(sl->q_buf, 0); + + /* func != 0 means target has requested a system call */ + + switch(func) { + + case GDB_STDIO_PRINTF: + stlink_read_mem32(sl, pstr1_addr, 4); + pstr1 = read_uint32(sl->q_buf, 0); + stlink_read_mem32(sl, strlen1_addr, 4); + strlen1 = read_uint32(sl->q_buf, 0); + buf = (char*)malloc(strlen1+1); + assert(buf != NULL); + read_buffer(sl, pstr1, buf, strlen1); + buf[strlen1] = 0; + #ifdef DEBUG + //printf("gdb_stdio printf pstr1: 0x%0x strlen1: %d buf: %s\n", pstr1, strlen1, buf); + #endif + fputs(buf, stdout); + free(buf); + + break; + + case GDB_STDIO_FPRINTF: + stlink_read_mem32(sl, file_addr, 4); + file = (FILE*)read_uint32(sl->q_buf, 0); + stlink_read_mem32(sl, pstr1_addr, 4); + pstr1 = read_uint32(sl->q_buf, 0); + stlink_read_mem32(sl, strlen1_addr, 4); + strlen1 = read_uint32(sl->q_buf, 0); + buf = (char*)malloc(strlen1+1); + assert(buf != NULL); + read_buffer(sl, pstr1, buf, strlen1); + buf[strlen1] = 0; + #ifdef DEBUG + //printf("gdb_stdio fprintf pstr1: 0x%0x strlen1: %d buf: %s file: 0x%x\n", pstr1, strlen1, buf, (unsigned int)file); + #endif + fputs(buf, file); + free(buf); + + break; + + case GDB_STDIO_FOPEN: + stlink_read_mem32(sl, pstr1_addr, 4); + pstr1 = read_uint32(sl->q_buf, 0); + stlink_read_mem32(sl, strlen1_addr, 4); + strlen1 = read_uint32(sl->q_buf, 0); + assert(strlen1 < MAX_STR); + read_buffer(sl, pstr1, file_name, strlen1); + file_name[strlen1] = 0; + + stlink_read_mem32(sl, pstr2_addr, 4); + pstr2 = read_uint32(sl->q_buf, 0); + stlink_read_mem32(sl, strlen2_addr, 4); + strlen2 = read_uint32(sl->q_buf, 0); + assert(strlen2 < MAX_STR); + read_buffer(sl, pstr2, mode, strlen2); + mode[strlen2] = 0; + + file = fopen(file_name, mode); + + ret = (int)file; + #ifdef DEBUG + printf("gdb_stdio fopen file_name: %s mode: %s file: 0x%x\n", file_name, mode, (unsigned int)file); + #endif + break; + + case GDB_STDIO_FCLOSE: + stlink_read_mem32(sl, file_addr, 4); + file = (FILE*)read_uint32(sl->q_buf, 0); + fclose(file); + + #ifdef DEBUG + printf("gdb_stdio fclose file: 0x%x\n", (unsigned int)file); + #endif + break; + + case GDB_STDIO_FWRITE: + stlink_read_mem32(sl, ptr_addr, 4); + ptr = read_uint32(sl->q_buf, 0); + stlink_read_mem32(sl, size_addr, 4); + size = read_uint32(sl->q_buf, 0); + stlink_read_mem32(sl, nmem_addr, 4); + nmem = read_uint32(sl->q_buf, 0); + stlink_read_mem32(sl, file_addr, 4); + file = (FILE*)read_uint32(sl->q_buf, 0); + + buf = (char*)malloc(size*nmem); + assert(buf != NULL); + read_buffer(sl, ptr, buf, size*nmem); + ret = fwrite(buf, size, nmem, file); + free(buf); + #ifdef DEBUG + printf("gdb_stdio fwrite ptr: 0x%x size: %d nmem: %d file: 0x%x\n", + ptr, size, nmem, (unsigned int)file); + #endif + break; + + case GDB_STDIO_FREAD: + stlink_read_mem32(sl, ptr_addr, 4); + ptr = read_uint32(sl->q_buf, 0); + stlink_read_mem32(sl, size_addr, 4); + size = read_uint32(sl->q_buf, 0); + stlink_read_mem32(sl, nmem_addr, 4); + nmem = read_uint32(sl->q_buf, 0); + stlink_read_mem32(sl, file_addr, 4); + file = (FILE*)read_uint32(sl->q_buf, 0); + + buf = (char*)malloc(size*nmem); + assert(buf != NULL); + ret = fread(buf, size, nmem, file); + write_buffer(sl, ptr, buf, size*nmem); + free(buf); + + #ifdef DEBUG + printf("gdb_stdio fread ptr: 0x%x size: %d nmem: %d file: 0x%x\n", + ptr, size, nmem, (unsigned int)file); + #endif + break; + } + + if (func) { + memcpy(sl->q_buf, &ret, sizeof(int)); + stlink_write_mem32(sl, ret_addr, 4); + + func = 0; + memcpy(sl->q_buf, &func, sizeof(int)); + stlink_write_mem32(sl, func_addr, 4); + } +} + + +int serve(stlink_t *sl, int port, char *elf_filename) { int sock = socket(AF_INET, SOCK_STREAM, 0); if(sock < 0) { perror("socket"); @@ -650,7 +844,33 @@ int serve(stlink_t *sl, int port) { perror("listen"); return 1; } - + + /* init for file I/O */ + + func_addr = ret_addr = pstr1_addr = pstr2_addr = strlen1_addr = strlen2_addr = 0; + file_addr = ptr_addr = size_addr = nmem_addr = 0; + + printf("elf_filename: %s----------------------------------\n", elf_filename); + if (*elf_filename != 0) { + int fd = elfsym_open(elf_filename); + if (fd == -1) + exit(0); + func_addr = elfsym_get_symbol_address(fd, "gdb_stdio_func"); + ret_addr = elfsym_get_symbol_address(fd, "gdb_stdio_ret"); + pstr1_addr = elfsym_get_symbol_address(fd, "gdb_stdio_pstr1"); + pstr2_addr = elfsym_get_symbol_address(fd, "gdb_stdio_pstr2"); + strlen1_addr = elfsym_get_symbol_address(fd, "gdb_stdio_strlen1"); + strlen2_addr = elfsym_get_symbol_address(fd, "gdb_stdio_strlen2"); + file_addr = elfsym_get_symbol_address(fd, "gdb_stdio_file"); + ptr_addr = elfsym_get_symbol_address(fd, "gdb_stdio_ptr"); + size_addr = elfsym_get_symbol_address(fd, "gdb_stdio_size"); + nmem_addr = elfsym_get_symbol_address(fd, "gdb_stdio_nmem"); + elfsym_close(fd); + #ifdef DEBUG + printf("func_addr: 0x%x\n", func_addr); + #endif + } + start_again: stlink_force_debug(sl); stlink_reset(sl); @@ -924,8 +1144,13 @@ start_again: if(sl->core_stat == STLINK_CORE_HALTED) { break; } + + /* file I/O if enabled */ + + if (*elf_filename != 0) + fileio(sl); - usleep(100000); + usleep(10000); } reply = strdup("S05"); // TRAP codec2-1.0.1/stm32/stm32_flash.ld000066400000000000000000000072701412132000500162600ustar00rootroot00000000000000ENTRY(Reset_Handler) /* Highest address of the user mode stack */ _estack = 0x20020000; /* end of 128K RAM on AHB bus*/ /* Generate a link error if heap and stack don't fit into RAM */ _Min_Heap_Size = 0; /* required amount of heap */ _Min_Stack_Size = 0x400; /* required amount of stack */ /* Specify the memory areas */ MEMORY { /* ISR vectors *must* be placed here as they get mapped to address 0 */ VECTOR (rx) : ORIGIN = 0x08000000, LENGTH = 16K /* Virtual EEPROM area, we use the remaining 16kB blocks for this. */ EEPROM (rx) : ORIGIN = 0x08004000, LENGTH = 48K /* The rest of flash is used for program data */ FLASH (rx) : ORIGIN = 0x08010000, LENGTH = 960K /* Backup memory area */ BKPSRAM (rwx) : ORIGIN = 0x40024000, LENGTH = 4K /* Memory area */ RAM (rwx) : ORIGIN = 0x20000000, LENGTH = 128K /* Core Coupled Memory */ CCM (rwx) : ORIGIN = 0x10000000, LENGTH = 64K } SECTIONS { .isr_vector : { . = ALIGN(4); KEEP(*(.isr_vector)) . = ALIGN(4); } >VECTOR .eeprom : { . = ALIGN(4); KEEP(*(.eeprom)) /* special section for persistent data */ . = ORIGIN(EEPROM) + LENGTH(EEPROM) - 1; BYTE(0xFF) . = ALIGN(4); } >EEPROM = 0xff .bkpsram : { . = ALIGN(4); KEEP(*(.bkpsram)) . = ALIGN(4); } > BKPSRAM .text : { . = ALIGN(4); *(.text) /* .text sections (code) */ *(.text*) /* .text* sections (code) */ *(.rodata) /* .rodata sections (constants, strings, etc.) */ *(.rodata*) /* .rodata* sections (constants, strings, etc.) */ *(.glue_7) /* glue arm to thumb code */ *(.glue_7t) /* glue thumb to arm code */ *(.eh_frame) KEEP (*(.init)) KEEP (*(.fini)) . = ALIGN(4); _etext = .; /* define a global symbols at end of code */ _exit = .; } >FLASH .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } >FLASH .ARM : { __exidx_start = .; *(.ARM.exidx*) __exidx_end = .; } >FLASH .preinit_array : { PROVIDE_HIDDEN (__preinit_array_start = .); KEEP (*(.preinit_array*)) PROVIDE_HIDDEN (__preinit_array_end = .); } >FLASH .init_array : { PROVIDE_HIDDEN (__init_array_start = .); KEEP (*(SORT(.init_array.*))) KEEP (*(.init_array*)) PROVIDE_HIDDEN (__init_array_end = .); } >FLASH .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(.fini_array*)) KEEP (*(SORT(.fini_array.*))) PROVIDE_HIDDEN (__fini_array_end = .); } >FLASH /* used by the startup to initialize data */ _sidata = .; /* Initialized data sections goes into RAM, load LMA copy after code */ .data : AT ( _sidata ) { . = ALIGN(4); _sdata = .; /* create a global symbol at data start */ *(.data) /* .data sections */ *(.data*) /* .data* sections */ . = ALIGN(4); _edata = .; /* define a global symbol at data end */ } >RAM /* Uninitialized data section */ . = ALIGN(4); .bss : { /* This is used by the startup in order to initialize the .bss secion */ _sbss = .; /* define a global symbol at bss start */ __bss_start__ = _sbss; *(.bss) *(.bss*) *(COMMON) . = ALIGN(4); _ebss = .; /* define a global symbol at bss end */ __bss_end__ = _ebss; } >RAM /* User_heap_stack section, used to check that there is enough RAM left */ ._user_heap_stack : { . = ALIGN(4); PROVIDE ( end = . ); PROVIDE ( _end = . ); . = . + _Min_Heap_Size; . = . + _Min_Stack_Size; . = ALIGN(4); } >RAM .ccm (NOLOAD) : { . = ALIGN(4); _sccmram = .; *(.ccm) . = ALIGN(4); _eccmram = .; } >CCM } codec2-1.0.1/stm32/stm32_ram.ld000066400000000000000000000055521412132000500157430ustar00rootroot00000000000000ENTRY(Reset_Handler) /* Highest address of the user mode stack */ _estack = 0x20020000; /* end of 128K RAM on AHB bus*/ /* Generate a link error if heap and stack don't fit into RAM */ _Min_Heap_Size = 0; /* required amount of heap */ _Min_Stack_Size = 0x400; /* required amount of stack */ /* Specify the memory areas */ MEMORY { FLASH (rx) : ORIGIN = 0x08000000, LENGTH = 1024K RAM (rwx) : ORIGIN = 0x20000000, LENGTH = 128K CCM (rwx) : ORIGIN = 0x10000000, LENGTH = 64K } SECTIONS { .isr_vector : { . = ALIGN(4); KEEP(*(.isr_vector)) . = ALIGN(4); } >RAM .text : { . = ALIGN(4); *(.text) /* .text sections (code) */ *(.text*) /* .text* sections (code) */ *(.rodata) /* .rodata sections (constants, strings, etc.) */ *(.rodata*) /* .rodata* sections (constants, strings, etc.) */ *(.glue_7) /* glue arm to thumb code */ *(.glue_7t) /* glue thumb to arm code */ *(.eh_frame) KEEP (*(.init)) KEEP (*(.fini)) . = ALIGN(4); _etext = .; /* define a global symbols at end of code */ _exit = .; } >RAM .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } >RAM .ARM : { __exidx_start = .; *(.ARM.exidx*) __exidx_end = .; } >RAM .preinit_array : { PROVIDE_HIDDEN (__preinit_array_start = .); KEEP (*(.preinit_array*)) PROVIDE_HIDDEN (__preinit_array_end = .); } >RAM .init_array : { PROVIDE_HIDDEN (__init_array_start = .); KEEP (*(SORT(.init_array.*))) KEEP (*(.init_array*)) PROVIDE_HIDDEN (__init_array_end = .); } >RAM .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(.fini_array*)) KEEP (*(SORT(.fini_array.*))) PROVIDE_HIDDEN (__fini_array_end = .); } >RAM /* used by the startup to initialize data */ _sidata = .; /* Initialized data sections goes into RAM, load LMA copy after code */ .data : AT ( _sidata ) { . = ALIGN(4); _sdata = .; /* create a global symbol at data start */ *(.data) /* .data sections */ *(.data*) /* .data* sections */ . = ALIGN(4); _edata = .; /* define a global symbol at data end */ } >RAM /* Uninitialized data section */ . = ALIGN(4); .bss : { /* This is used by the startup in order to initialize the .bss secion */ _sbss = .; /* define a global symbol at bss start */ __bss_start__ = _sbss; *(.bss) *(.bss*) *(COMMON) . = ALIGN(4); _ebss = .; /* define a global symbol at bss end */ __bss_end__ = _ebss; } >RAM /* User_heap_stack section, used to check that there is enough RAM left */ ._user_heap_stack : { . = ALIGN(4); PROVIDE ( end = . ); PROVIDE ( _end = . ); . = . + _Min_Heap_Size; . = . + _Min_Stack_Size; . = ALIGN(4); } >RAM } codec2-1.0.1/stm32/support/000077500000000000000000000000001412132000500153205ustar00rootroot00000000000000codec2-1.0.1/stm32/support/hex2dfu.py000077500000000000000000000111771412132000500172510ustar00rootroot00000000000000#!/usr/bin/env python2 # # Intel HEX to ST microelectronics DfuSe file converter # Copyright (C)2015 Thomas Kindler # # 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 . # import os import struct import argparse from zlib import crc32 from intelhex import IntelHex def load_hex(): """ Load hex or binary file. :return: intelhex object """ if args.verbose: print "Loading %s..." % args.source try: ih = IntelHex() if args.format == "hex": ih.loadhex(args.source) else: ih.loadbin(args.source, args.start_addr) except Exception, e: print e exit(1) if args.verbose: print " Start: 0x%08x" % ih.minaddr() print " End : 0x%08x" % ih.maxaddr() return ih def save_dfu(ih): """ Save as STMicroelectronics DfuSe file. see UM0391 - DfuSe File Format Specification :param ih: intelhex object """ if args.verbose: print "Saving %s..." % args.target print " Device ID: 0x%04x:0x%04x" % (args.vid, args.pid) print " Target name: %s" % args.target_name # Image element # image_data = ih.tobinstr() data = struct.pack( " end: start, end = end, start return start, end def tobinarray(self, start=None, end=None, pad=_DEPRECATED, size=None): ''' Convert this object to binary form as array. If start and end unspecified, they will be inferred from the data. @param start start address of output bytes. @param end end address of output bytes (inclusive). @param pad [DEPRECATED PARAMETER, please use self.padding instead] fill empty spaces with this value (if pad is None then this method uses self.padding). @param size size of the block, used with start or end parameter. @return array of unsigned char data. ''' if not isinstance(pad, _DeprecatedParam): print "IntelHex.tobinarray: 'pad' parameter is deprecated." if pad is not None: print "Please, use IntelHex.padding attribute instead." else: print "Please, don't pass it explicitly." print "Use syntax like this: ih.tobinarray(start=xxx, end=yyy, size=zzz)" else: pad = None return self._tobinarray_really(start, end, pad, size) def _tobinarray_really(self, start, end, pad, size): if pad is None: pad = self.padding bin = array('B') if self._buf == {} and None in (start, end): return bin if size is not None and size <= 0: raise ValueError("tobinarray: wrong value for size") start, end = self._get_start_end(start, end, size) for i in xrange(start, end+1): bin.append(self._buf.get(i, pad)) return bin def tobinstr(self, start=None, end=None, pad=_DEPRECATED, size=None): ''' Convert to binary form and return as a string. @param start start address of output bytes. @param end end address of output bytes (inclusive). @param pad [DEPRECATED PARAMETER, please use self.padding instead] fill empty spaces with this value (if pad is None then this method uses self.padding). @param size size of the block, used with start or end parameter. @return string of binary data. ''' if not isinstance(pad, _DeprecatedParam): print "IntelHex.tobinstr: 'pad' parameter is deprecated." if pad is not None: print "Please, use IntelHex.padding attribute instead." else: print "Please, don't pass it explicitly." print "Use syntax like this: ih.tobinstr(start=xxx, end=yyy, size=zzz)" else: pad = None return self._tobinstr_really(start, end, pad, size) def _tobinstr_really(self, start, end, pad, size): return asstr(self._tobinarray_really(start, end, pad, size).tostring()) def tobinfile(self, fobj, start=None, end=None, pad=_DEPRECATED, size=None): '''Convert to binary and write to file. @param fobj file name or file object for writing output bytes. @param start start address of output bytes. @param end end address of output bytes (inclusive). @param pad [DEPRECATED PARAMETER, please use self.padding instead] fill empty spaces with this value (if pad is None then this method uses self.padding). @param size size of the block, used with start or end parameter. ''' if not isinstance(pad, _DeprecatedParam): print "IntelHex.tobinfile: 'pad' parameter is deprecated." if pad is not None: print "Please, use IntelHex.padding attribute instead." else: print "Please, don't pass it explicitly." print "Use syntax like this: ih.tobinfile(start=xxx, end=yyy, size=zzz)" else: pad = None if getattr(fobj, "write", None) is None: fobj = open(fobj, "wb") close_fd = True else: close_fd = False fobj.write(self._tobinstr_really(start, end, pad, size)) if close_fd: fobj.close() def todict(self): '''Convert to python dictionary. @return dict suitable for initializing another IntelHex object. ''' r = {} r.update(self._buf) if self.start_addr: r['start_addr'] = self.start_addr return r def addresses(self): '''Returns all used addresses in sorted order. @return list of occupied data addresses in sorted order. ''' aa = self._buf.keys() aa.sort() return aa def minaddr(self): '''Get minimal address of HEX content. @return minimal address or None if no data ''' aa = self._buf.keys() if aa == []: return None else: return min(aa) def maxaddr(self): '''Get maximal address of HEX content. @return maximal address or None if no data ''' aa = self._buf.keys() if aa == []: return None else: return max(aa) def __getitem__(self, addr): ''' Get requested byte from address. @param addr address of byte. @return byte if address exists in HEX file, or self.padding if no data found. ''' t = type(addr) if t in (int, long): if addr < 0: raise TypeError('Address should be >= 0.') return self._buf.get(addr, self.padding) elif t == slice: addresses = self._buf.keys() ih = IntelHex() if addresses: addresses.sort() start = addr.start or addresses[0] stop = addr.stop or (addresses[-1]+1) step = addr.step or 1 for i in xrange(start, stop, step): x = self._buf.get(i) if x is not None: ih[i] = x return ih else: raise TypeError('Address has unsupported type: %s' % t) def __setitem__(self, addr, byte): """Set byte at address.""" t = type(addr) if t in (int, long): if addr < 0: raise TypeError('Address should be >= 0.') self._buf[addr] = byte elif t == slice: if not isinstance(byte, (list, tuple)): raise ValueError('Slice operation expects sequence of bytes') start = addr.start stop = addr.stop step = addr.step or 1 if None not in (start, stop): ra = range(start, stop, step) if len(ra) != len(byte): raise ValueError('Length of bytes sequence does not match ' 'address range') elif (start, stop) == (None, None): raise TypeError('Unsupported address range') elif start is None: start = stop - len(byte) elif stop is None: stop = start + len(byte) if start < 0: raise TypeError('start address cannot be negative') if stop < 0: raise TypeError('stop address cannot be negative') j = 0 for i in xrange(start, stop, step): self._buf[i] = byte[j] j += 1 else: raise TypeError('Address has unsupported type: %s' % t) def __delitem__(self, addr): """Delete byte at address.""" t = type(addr) if t in (int, long): if addr < 0: raise TypeError('Address should be >= 0.') del self._buf[addr] elif t == slice: addresses = self._buf.keys() if addresses: addresses.sort() start = addr.start or addresses[0] stop = addr.stop or (addresses[-1]+1) step = addr.step or 1 for i in xrange(start, stop, step): x = self._buf.get(i) if x is not None: del self._buf[i] else: raise TypeError('Address has unsupported type: %s' % t) def __len__(self): """Return count of bytes with real values.""" return len(self._buf.keys()) def write_hex_file(self, f, write_start_addr=True): """Write data to file f in HEX format. @param f filename or file-like object for writing @param write_start_addr enable or disable writing start address record to file (enabled by default). If there is no start address in obj, nothing will be written regardless of this setting. """ fwrite = getattr(f, "write", None) if fwrite: fobj = f fclose = None else: fobj = open(f, 'w') fwrite = fobj.write fclose = fobj.close # Translation table for uppercasing hex ascii string. # timeit shows that using hexstr.translate(table) # is faster than hexstr.upper(): # 0.452ms vs. 0.652ms (translate vs. upper) if sys.version_info[0] >= 3: table = bytes(range(256)).upper() else: table = ''.join(chr(i).upper() for i in range(256)) # start address record if any if self.start_addr and write_start_addr: keys = self.start_addr.keys() keys.sort() bin = array('B', asbytes('\0'*9)) if keys == ['CS','IP']: # Start Segment Address Record bin[0] = 4 # reclen bin[1] = 0 # offset msb bin[2] = 0 # offset lsb bin[3] = 3 # rectyp cs = self.start_addr['CS'] bin[4] = (cs >> 8) & 0x0FF bin[5] = cs & 0x0FF ip = self.start_addr['IP'] bin[6] = (ip >> 8) & 0x0FF bin[7] = ip & 0x0FF bin[8] = (-sum(bin)) & 0x0FF # chksum fwrite(':' + asstr(hexlify(bin.tostring()).translate(table)) + '\n') elif keys == ['EIP']: # Start Linear Address Record bin[0] = 4 # reclen bin[1] = 0 # offset msb bin[2] = 0 # offset lsb bin[3] = 5 # rectyp eip = self.start_addr['EIP'] bin[4] = (eip >> 24) & 0x0FF bin[5] = (eip >> 16) & 0x0FF bin[6] = (eip >> 8) & 0x0FF bin[7] = eip & 0x0FF bin[8] = (-sum(bin)) & 0x0FF # chksum fwrite(':' + asstr(hexlify(bin.tostring()).translate(table)) + '\n') else: if fclose: fclose() raise InvalidStartAddressValueError(start_addr=self.start_addr) # data addresses = self._buf.keys() addresses.sort() addr_len = len(addresses) if addr_len: minaddr = addresses[0] maxaddr = addresses[-1] if maxaddr > 65535: need_offset_record = True else: need_offset_record = False high_ofs = 0 cur_addr = minaddr cur_ix = 0 while cur_addr <= maxaddr: if need_offset_record: bin = array('B', asbytes('\0'*7)) bin[0] = 2 # reclen bin[1] = 0 # offset msb bin[2] = 0 # offset lsb bin[3] = 4 # rectyp high_ofs = int(cur_addr>>16) b = divmod(high_ofs, 256) bin[4] = b[0] # msb of high_ofs bin[5] = b[1] # lsb of high_ofs bin[6] = (-sum(bin)) & 0x0FF # chksum fwrite(':' + asstr(hexlify(bin.tostring()).translate(table)) + '\n') while True: # produce one record low_addr = cur_addr & 0x0FFFF # chain_len off by 1 chain_len = min(15, 65535-low_addr, maxaddr-cur_addr) # search continuous chain stop_addr = cur_addr + chain_len if chain_len: ix = bisect_right(addresses, stop_addr, cur_ix, min(cur_ix+chain_len+1, addr_len)) chain_len = ix - cur_ix # real chain_len # there could be small holes in the chain # but we will catch them by try-except later # so for big continuous files we will work # at maximum possible speed else: chain_len = 1 # real chain_len bin = array('B', asbytes('\0'*(5+chain_len))) b = divmod(low_addr, 256) bin[1] = b[0] # msb of low_addr bin[2] = b[1] # lsb of low_addr bin[3] = 0 # rectype try: # if there is small holes we'll catch them for i in range(chain_len): bin[4+i] = self._buf[cur_addr+i] except KeyError: # we catch a hole so we should shrink the chain chain_len = i bin = bin[:5+i] bin[0] = chain_len bin[4+chain_len] = (-sum(bin)) & 0x0FF # chksum fwrite(':' + asstr(hexlify(bin.tostring()).translate(table)) + '\n') # adjust cur_addr/cur_ix cur_ix += chain_len if cur_ix < addr_len: cur_addr = addresses[cur_ix] else: cur_addr = maxaddr + 1 break high_addr = int(cur_addr>>16) if high_addr > high_ofs: break # end-of-file record fwrite(":00000001FF\n") if fclose: fclose() def tofile(self, fobj, format): """Write data to hex or bin file. Preferred method over tobin or tohex. @param fobj file name or file-like object @param format file format ("hex" or "bin") """ if format == 'hex': self.write_hex_file(fobj) elif format == 'bin': self.tobinfile(fobj) else: raise ValueError('format should be either "hex" or "bin";' ' got %r instead' % format) def gets(self, addr, length): """Get string of bytes from given address. If any entries are blank from addr through addr+length, a NotEnoughDataError exception will be raised. Padding is not used.""" a = array('B', asbytes('\0'*length)) try: for i in xrange(length): a[i] = self._buf[addr+i] except KeyError: raise NotEnoughDataError(address=addr, length=length) return asstr(a.tostring()) def puts(self, addr, s): """Put string of bytes at given address. Will overwrite any previous entries. """ a = array('B', asbytes(s)) for i in xrange(len(a)): self._buf[addr+i] = a[i] def getsz(self, addr): """Get zero-terminated string from given address. Will raise NotEnoughDataError exception if a hole is encountered before a 0. """ i = 0 try: while True: if self._buf[addr+i] == 0: break i += 1 except KeyError: raise NotEnoughDataError(msg=('Bad access at 0x%X: ' 'not enough data to read zero-terminated string') % addr) return self.gets(addr, i) def putsz(self, addr, s): """Put string in object at addr and append terminating zero at end.""" self.puts(addr, s) self._buf[addr+len(s)] = 0 def dump(self, tofile=None): """Dump object content to specified file object or to stdout if None. Format is a hexdump with some header information at the beginning, addresses on the left, and data on right. @param tofile file-like object to dump to """ if tofile is None: tofile = sys.stdout # start addr possibly if self.start_addr is not None: cs = self.start_addr.get('CS') ip = self.start_addr.get('IP') eip = self.start_addr.get('EIP') if eip is not None and cs is None and ip is None: tofile.write('EIP = 0x%08X\n' % eip) elif eip is None and cs is not None and ip is not None: tofile.write('CS = 0x%04X, IP = 0x%04X\n' % (cs, ip)) else: tofile.write('start_addr = %r\n' % start_addr) # actual data addresses = self._buf.keys() if addresses: addresses.sort() minaddr = addresses[0] maxaddr = addresses[-1] startaddr = int(minaddr>>4)*16 endaddr = int((maxaddr>>4)+1)*16 maxdigits = max(len(str(endaddr)), 4) templa = '%%0%dX' % maxdigits range16 = range(16) for i in xrange(startaddr, endaddr, 16): tofile.write(templa % i) tofile.write(' ') s = [] for j in range16: x = self._buf.get(i+j) if x is not None: tofile.write(' %02X' % x) if 32 <= x < 127: # GNU less does not like 0x7F (128 decimal) so we'd better show it as dot s.append(chr(x)) else: s.append('.') else: tofile.write(' --') s.append(' ') tofile.write(' |' + ''.join(s) + '|\n') def merge(self, other, overlap='error'): """Merge content of other IntelHex object into current object (self). @param other other IntelHex object. @param overlap action on overlap of data or starting addr: - error: raising OverlapError; - ignore: ignore other data and keep current data in overlapping region; - replace: replace data with other data in overlapping region. @raise TypeError if other is not instance of IntelHex @raise ValueError if other is the same object as self (it can't merge itself) @raise ValueError if overlap argument has incorrect value @raise AddressOverlapError on overlapped data """ # check args if not isinstance(other, IntelHex): raise TypeError('other should be IntelHex object') if other is self: raise ValueError("Can't merge itself") if overlap not in ('error', 'ignore', 'replace'): raise ValueError("overlap argument should be either " "'error', 'ignore' or 'replace'") # merge data this_buf = self._buf other_buf = other._buf for i in other_buf: if i in this_buf: if overlap == 'error': raise AddressOverlapError( 'Data overlapped at address 0x%X' % i) elif overlap == 'ignore': continue this_buf[i] = other_buf[i] # merge start_addr if self.start_addr != other.start_addr: if self.start_addr is None: # set start addr from other self.start_addr = other.start_addr elif other.start_addr is None: # keep existing start addr pass else: # conflict if overlap == 'error': raise AddressOverlapError( 'Starting addresses are different') elif overlap == 'replace': self.start_addr = other.start_addr #/IntelHex class IntelHex16bit(IntelHex): """Access to data as 16-bit words. Intended to use with Microchip HEX files.""" def __init__(self, source=None): """Construct class from HEX file or from instance of ordinary IntelHex class. If IntelHex object is passed as source, the original IntelHex object should not be used again because this class will alter it. This class leaves padding alone unless it was precisely 0xFF. In that instance it is sign extended to 0xFFFF. @param source file name of HEX file or file object or instance of ordinary IntelHex class. Will also accept dictionary from todict method. """ if isinstance(source, IntelHex): # from ihex8 self.padding = source.padding self.start_addr = source.start_addr # private members self._buf = source._buf self._offset = source._offset elif isinstance(source, dict): raise IntelHexError("IntelHex16bit does not support initialization from dictionary yet.\n" "Patches are welcome.") else: IntelHex.__init__(self, source) if self.padding == 0x0FF: self.padding = 0x0FFFF def __getitem__(self, addr16): """Get 16-bit word from address. Raise error if only one byte from the pair is set. We assume a Little Endian interpretation of the hex file. @param addr16 address of word (addr8 = 2 * addr16). @return word if bytes exists in HEX file, or self.padding if no data found. """ addr1 = addr16 * 2 addr2 = addr1 + 1 byte1 = self._buf.get(addr1, None) byte2 = self._buf.get(addr2, None) if byte1 != None and byte2 != None: return byte1 | (byte2 << 8) # low endian if byte1 == None and byte2 == None: return self.padding raise BadAccess16bit(address=addr16) def __setitem__(self, addr16, word): """Sets the address at addr16 to word assuming Little Endian mode. """ addr_byte = addr16 * 2 b = divmod(word, 256) self._buf[addr_byte] = b[1] self._buf[addr_byte+1] = b[0] def minaddr(self): '''Get minimal address of HEX content in 16-bit mode. @return minimal address used in this object ''' aa = self._buf.keys() if aa == []: return 0 else: return min(aa)>>1 def maxaddr(self): '''Get maximal address of HEX content in 16-bit mode. @return maximal address used in this object ''' aa = self._buf.keys() if aa == []: return 0 else: return max(aa)>>1 def tobinarray(self, start=None, end=None, size=None): '''Convert this object to binary form as array (of 2-bytes word data). If start and end unspecified, they will be inferred from the data. @param start start address of output data. @param end end address of output data (inclusive). @param size size of the block (number of words), used with start or end parameter. @return array of unsigned short (uint16_t) data. ''' bin = array('H') if self._buf == {} and None in (start, end): return bin if size is not None and size <= 0: raise ValueError("tobinarray: wrong value for size") start, end = self._get_start_end(start, end, size) for addr in xrange(start, end+1): bin.append(self[addr]) return bin #/class IntelHex16bit def hex2bin(fin, fout, start=None, end=None, size=None, pad=None): """Hex-to-Bin convertor engine. @return 0 if all OK @param fin input hex file (filename or file-like object) @param fout output bin file (filename or file-like object) @param start start of address range (optional) @param end end of address range (inclusive; optional) @param size size of resulting file (in bytes) (optional) @param pad padding byte (optional) """ try: h = IntelHex(fin) except HexReaderError, e: txt = "ERROR: bad HEX file: %s" % str(e) print(txt) return 1 # start, end, size if size != None and size != 0: if end == None: if start == None: start = h.minaddr() end = start + size - 1 else: if (end+1) >= size: start = end + 1 - size else: start = 0 try: if pad is not None: # using .padding attribute rather than pad argument to function call h.padding = pad h.tobinfile(fout, start, end) except IOError, e: txt = "ERROR: Could not write to file: %s: %s" % (fout, str(e)) print(txt) return 1 return 0 #/def hex2bin def bin2hex(fin, fout, offset=0): """Simple bin-to-hex convertor. @return 0 if all OK @param fin input bin file (filename or file-like object) @param fout output hex file (filename or file-like object) @param offset starting address offset for loading bin """ h = IntelHex() try: h.loadbin(fin, offset) except IOError, e: txt = 'ERROR: unable to load bin file:', str(e) print(txt) return 1 try: h.tofile(fout, format='hex') except IOError, e: txt = "ERROR: Could not write to file: %s: %s" % (fout, str(e)) print(txt) return 1 return 0 #/def bin2hex def diff_dumps(ih1, ih2, tofile=None, name1="a", name2="b", n_context=3): """Diff 2 IntelHex objects and produce unified diff output for their hex dumps. @param ih1 first IntelHex object to compare @param ih2 second IntelHex object to compare @param tofile file-like object to write output @param name1 name of the first hex file to show in the diff header @param name2 name of the first hex file to show in the diff header @param n_context number of context lines in the unidiff output """ def prepare_lines(ih): from cStringIO import StringIO sio = StringIO() ih.dump(sio) dump = sio.getvalue() lines = dump.splitlines() return lines a = prepare_lines(ih1) b = prepare_lines(ih2) import difflib result = list(difflib.unified_diff(a, b, fromfile=name1, tofile=name2, n=n_context, lineterm='')) if tofile is None: tofile = sys.stdout output = '\n'.join(result)+'\n' tofile.write(output) class Record(object): """Helper methods to build valid ihex records.""" def _from_bytes(bytes): """Takes a list of bytes, computes the checksum, and outputs the entire record as a string. bytes should be the hex record without the colon or final checksum. @param bytes list of byte values so far to pack into record. @return String representation of one HEX record """ assert len(bytes) >= 4 # calculate checksum s = (-sum(bytes)) & 0x0FF bin = array('B', bytes + [s]) return ':' + asstr(hexlify(bin.tostring())).upper() _from_bytes = staticmethod(_from_bytes) def data(offset, bytes): """Return Data record. This constructs the full record, including the length information, the record type (0x00), the checksum, and the offset. @param offset load offset of first byte. @param bytes list of byte values to pack into record. @return String representation of one HEX record """ assert 0 <= offset < 65536 assert 0 < len(bytes) < 256 b = [len(bytes), (offset>>8)&0x0FF, offset&0x0FF, 0x00] + bytes return Record._from_bytes(b) data = staticmethod(data) def eof(): """Return End of File record as a string. @return String representation of Intel Hex EOF record """ return ':00000001FF' eof = staticmethod(eof) def extended_segment_address(usba): """Return Extended Segment Address Record. @param usba Upper Segment Base Address. @return String representation of Intel Hex USBA record. """ b = [2, 0, 0, 0x02, (usba>>8)&0x0FF, usba&0x0FF] return Record._from_bytes(b) extended_segment_address = staticmethod(extended_segment_address) def start_segment_address(cs, ip): """Return Start Segment Address Record. @param cs 16-bit value for CS register. @param ip 16-bit value for IP register. @return String representation of Intel Hex SSA record. """ b = [4, 0, 0, 0x03, (cs>>8)&0x0FF, cs&0x0FF, (ip>>8)&0x0FF, ip&0x0FF] return Record._from_bytes(b) start_segment_address = staticmethod(start_segment_address) def extended_linear_address(ulba): """Return Extended Linear Address Record. @param ulba Upper Linear Base Address. @return String representation of Intel Hex ELA record. """ b = [2, 0, 0, 0x04, (ulba>>8)&0x0FF, ulba&0x0FF] return Record._from_bytes(b) extended_linear_address = staticmethod(extended_linear_address) def start_linear_address(eip): """Return Start Linear Address Record. @param eip 32-bit linear address for the EIP register. @return String representation of Intel Hex SLA record. """ b = [4, 0, 0, 0x05, (eip>>24)&0x0FF, (eip>>16)&0x0FF, (eip>>8)&0x0FF, eip&0x0FF] return Record._from_bytes(b) start_linear_address = staticmethod(start_linear_address) class _BadFileNotation(Exception): """Special error class to use with _get_file_and_addr_range.""" pass def _get_file_and_addr_range(s, _support_drive_letter=None): """Special method for hexmerge.py script to split file notation into 3 parts: (filename, start, end) @raise _BadFileNotation when string cannot be safely split. """ if _support_drive_letter is None: _support_drive_letter = (os.name == 'nt') drive = '' if _support_drive_letter: if s[1:2] == ':' and s[0].upper() in ''.join([chr(i) for i in range(ord('A'), ord('Z')+1)]): drive = s[:2] s = s[2:] parts = s.split(':') n = len(parts) if n == 1: fname = parts[0] fstart = None fend = None elif n != 3: raise _BadFileNotation else: fname = parts[0] def ascii_hex_to_int(ascii): if ascii is not None: try: return int(ascii, 16) except ValueError: raise _BadFileNotation return ascii fstart = ascii_hex_to_int(parts[1] or None) fend = ascii_hex_to_int(parts[2] or None) return drive+fname, fstart, fend ## # IntelHex Errors Hierarchy: # # IntelHexError - basic error # HexReaderError - general hex reader error # AddressOverlapError - data for the same address overlap # HexRecordError - hex record decoder base error # RecordLengthError - record has invalid length # RecordTypeError - record has invalid type (RECTYP) # RecordChecksumError - record checksum mismatch # EOFRecordError - invalid EOF record (type 01) # ExtendedAddressRecordError - extended address record base error # ExtendedSegmentAddressRecordError - invalid extended segment address record (type 02) # ExtendedLinearAddressRecordError - invalid extended linear address record (type 04) # StartAddressRecordError - start address record base error # StartSegmentAddressRecordError - invalid start segment address record (type 03) # StartLinearAddressRecordError - invalid start linear address record (type 05) # DuplicateStartAddressRecordError - start address record appears twice # InvalidStartAddressValueError - invalid value of start addr record # _EndOfFile - it's not real error, used internally by hex reader as signal that EOF record found # BadAccess16bit - not enough data to read 16 bit value (deprecated, see NotEnoughDataError) # NotEnoughDataError - not enough data to read N contiguous bytes # EmptyIntelHexError - requested operation cannot be performed with empty object class IntelHexError(Exception): '''Base Exception class for IntelHex module''' _fmt = 'IntelHex base error' #: format string def __init__(self, msg=None, **kw): """Initialize the Exception with the given message. """ self.msg = msg for key, value in kw.items(): setattr(self, key, value) def __str__(self): """Return the message in this Exception.""" if self.msg: return self.msg try: return self._fmt % self.__dict__ except (NameError, ValueError, KeyError), e: return 'Unprintable exception %s: %s' \ % (repr(e), str(e)) class _EndOfFile(IntelHexError): """Used for internal needs only.""" _fmt = 'EOF record reached -- signal to stop read file' class HexReaderError(IntelHexError): _fmt = 'Hex reader base error' class AddressOverlapError(HexReaderError): _fmt = 'Hex file has data overlap at address 0x%(address)X on line %(line)d' # class NotAHexFileError was removed in trunk.revno.54 because it's not used class HexRecordError(HexReaderError): _fmt = 'Hex file contains invalid record at line %(line)d' class RecordLengthError(HexRecordError): _fmt = 'Record at line %(line)d has invalid length' class RecordTypeError(HexRecordError): _fmt = 'Record at line %(line)d has invalid record type' class RecordChecksumError(HexRecordError): _fmt = 'Record at line %(line)d has invalid checksum' class EOFRecordError(HexRecordError): _fmt = 'File has invalid End-of-File record' class ExtendedAddressRecordError(HexRecordError): _fmt = 'Base class for extended address exceptions' class ExtendedSegmentAddressRecordError(ExtendedAddressRecordError): _fmt = 'Invalid Extended Segment Address Record at line %(line)d' class ExtendedLinearAddressRecordError(ExtendedAddressRecordError): _fmt = 'Invalid Extended Linear Address Record at line %(line)d' class StartAddressRecordError(HexRecordError): _fmt = 'Base class for start address exceptions' class StartSegmentAddressRecordError(StartAddressRecordError): _fmt = 'Invalid Start Segment Address Record at line %(line)d' class StartLinearAddressRecordError(StartAddressRecordError): _fmt = 'Invalid Start Linear Address Record at line %(line)d' class DuplicateStartAddressRecordError(StartAddressRecordError): _fmt = 'Start Address Record appears twice at line %(line)d' class InvalidStartAddressValueError(StartAddressRecordError): _fmt = 'Invalid start address value: %(start_addr)s' class NotEnoughDataError(IntelHexError): _fmt = ('Bad access at 0x%(address)X: ' 'not enough data to read %(length)d contiguous bytes') class BadAccess16bit(NotEnoughDataError): _fmt = 'Bad access at 0x%(address)X: not enough data to read 16 bit value' class EmptyIntelHexError(IntelHexError): _fmt = "Requested operation cannot be executed with empty object" codec2-1.0.1/stm32/support/intelhex/bench.py000066400000000000000000000215331412132000500205750ustar00rootroot00000000000000#!/usr/bin/python # (c) Alexander Belchenko, 2007, 2009 """Benchmarking. Run each test 3 times and get median value. Using 10K array as base test time. Each other test compared with base with next formula:: Tc * Nb q = --------- Tb * Nc Here: * Tc - execution time of current test * Tb - execution time of base * Nb - array size of base (10K) * Nc - array size of current test If resulting value is ``q <= 1.0`` it's the best possible result, i.e. time increase proportionally to array size. """ from cStringIO import StringIO import gc import sys import time import intelhex def median(values): """Return median value for the list of values. @param values: list of values for processing. @return: median value. """ values.sort() n = int(len(values) / 2) return values[n] def run_test(func, fobj): """Run func with argument fobj and measure execution time. @param func: function for test @param fobj: data for test @return: execution time """ gc.disable() try: begin = time.time() func(fobj) end = time.time() finally: gc.enable() return end - begin def run_readtest_N_times(func, hexstr, n): """Run each test N times. @param func: function for test @param hexstr: string with content of hex file to read @param n: times to repeat. @return: (median time, times list) """ assert n > 0 times = [] for i in xrange(n): sio = StringIO(hexstr) times.append(run_test(func, sio)) sio.close() t = median(times) return t, times def run_writetest_N_times(func, n): """Run each test N times. @param func: function for test @param n: times to repeat. @return: (median time, times list) """ assert n > 0 times = [] for i in xrange(n): sio = StringIO() times.append(run_test(func, sio)) sio.close() t = median(times) return t, times def time_coef(tc, nc, tb, nb): """Return time coefficient relative to base numbers. @param tc: current test time @param nc: current test data size @param tb: base test time @param nb: base test data size @return: time coef. """ tc = float(tc) nc = float(nc) tb = float(tb) nb = float(nb) q = (tc * nb) / (tb * nc) return q def get_test_data(n1, offset, n2): """Create test data on given pattern. @param n1: size of first part of array at base address 0. @param offset: offset for second part of array. @param n2: size of second part of array at given offset. @return: (overall size, hex file, IntelHex object) """ # make IntelHex object ih = intelhex.IntelHex() addr = 0 for i in xrange(n1): ih[addr] = addr % 256 addr += 1 addr += offset for i in xrange(n2): ih[addr] = addr % 256 addr += 1 # make hex file sio = StringIO() ih.write_hex_file(sio) hexstr = sio.getvalue() sio.close() # return n1+n2, hexstr, ih def get_base_10K(): """Base 10K""" return get_test_data(10000, 0, 0) def get_100K(): return get_test_data(100000, 0, 0) def get_100K_100K(): return get_test_data(100000, 1000000, 100000) def get_0_100K(): return get_test_data(0, 1000000, 100000) def get_1M(): return get_test_data(1000000, 0, 0) class Measure(object): """Measure execution time helper.""" data_set = [ # (data name, getter) ('base 10K', get_base_10K), # first should be base numbers ('100K', get_100K), ('1M', get_1M), ('100K+100K', get_100K_100K), ('0+100K', get_0_100K), ] def __init__(self, n=3, read=True, write=True): self.n = n self.read = read self.write = write self.results = [] def measure_one(self, data): """Do measuring of read and write operations. @param data: 3-tuple from get_test_data @return: (time readhex, time writehex) """ _unused, hexstr, ih = data tread, twrite = 0.0, 0.0 if self.read: tread = run_readtest_N_times(intelhex.IntelHex, hexstr, self.n)[0] if self.write: twrite = run_writetest_N_times(ih.write_hex_file, self.n)[0] return tread, twrite def measure_all(self): for name, getter in self.data_set: data = getter() times = self.measure_one(data) self.results.append((name, times, data[0])) def print_report(self, to_file=None): if to_file is None: to_file = sys.stdout base_title, base_times, base_n = self.results[0] base_read, base_write = base_times read_report = ['%-10s\t%7.3f' % (base_title, base_read)] write_report = ['%-10s\t%7.3f' % (base_title, base_write)] for item in self.results[1:]: cur_title, cur_times, cur_n = item cur_read, cur_write = cur_times if self.read: qread = time_coef(cur_read, cur_n, base_read, base_n) read_report.append('%-10s\t%7.3f\t%7.3f' % (cur_title, cur_read, qread)) if self.write: qwrite = time_coef(cur_write, cur_n, base_write, base_n) write_report.append('%-10s\t%7.3f\t%7.3f' % (cur_title, cur_write, qwrite)) if self.read: to_file.write('Read operation:\n') to_file.write('\n'.join(read_report)) to_file.write('\n\n') if self.write: to_file.write('Write operation:\n') to_file.write('\n'.join(write_report)) to_file.write('\n\n') HELP = """\ Usage: python _bench.py [OPTIONS] Options: -h this help -n N repeat tests N times -r run only tests for read operation -w run only tests for write operation If option -r or -w is not specified then all tests will be run. """ def main(argv=None): """Main function to run benchmarks. @param argv: command-line arguments. @return: exit code (0 is OK). """ import getopt # default values test_read = None test_write = None n = 3 # number of repeat if argv is None: argv = sys.argv[1:] try: opts, args = getopt.getopt(argv, 'hn:rw', []) for o,a in opts: if o == '-h': print(HELP) return 0 elif o == '-n': n = int(a) elif o == '-r': test_read = True elif o == '-w': test_write = True if args: raise getopt.GetoptError('Arguments are not used.') except getopt.GetoptError, msg: txt = str(msg) print(txt) return 1 if (test_read, test_write) == (None, None): test_read = test_write = True m = Measure(n, test_read, test_write) m.measure_all() m.print_report() return 0 if __name__ == '__main__': sys.exit(main(sys.argv[1:])) """ Some Results ************ 21/04/2007 revno.40 Python 2.5 @ Windows XP, Intel Celeron M CPU 430 @ 1.73GHz Read operation: base 10K 0.031 100K 0.360 1.161 1M 3.500 1.129 100K+100K 0.719 1.160 0+100K 0.360 1.161 Write operation: base 10K 0.031 100K 0.297 0.958 1M 2.953 0.953 100K+100K 1.328 2.142 0+100K 0.312 1.006 21/04/2007 revno.46 Python 2.5 @ Windows XP, Intel Celeron M CPU 430 @ 1.73GHz Read operation: base 10K 0.016 100K 0.203 1.269 1M 2.000 1.250 100K+100K 0.422 1.319 0+100K 0.203 1.269 Write operation: base 10K 0.031 100K 0.297 0.958 1M 2.969 0.958 100K+100K 1.328 2.142 0+100K 0.312 1.006 22/04/2007 revno.48 Python 2.5 @ Windows XP, Intel Celeron M CPU 430 @ 1.73GHz Read operation: base 10K 0.016 100K 0.187 1.169 1M 1.891 1.182 100K+100K 0.406 1.269 0+100K 0.188 1.175 Write operation: base 10K 0.031 100K 0.296 0.955 1M 2.969 0.958 100K+100K 1.328 2.142 0+100K 0.312 1.006 19/08/2008 revno.72 Python 2.5.2 @ Windows XP, Intel Celeron M CPU 430 @ 1.73GHz Read operation: base 10K 0.016 100K 0.171 1.069 1M 1.734 1.084 100K+100K 0.375 1.172 0+100K 0.172 1.075 Write operation: base 10K 0.016 100K 0.156 0.975 1M 1.532 0.957 100K+100K 0.344 1.075 0+100K 0.156 0.975 """ codec2-1.0.1/stm32/support/intelhex/compat.py000066400000000000000000000037061412132000500210030ustar00rootroot00000000000000# Copyright (c) 2011, Bernhard Leiner # All rights reserved. # # Redistribution and use in source and binary forms, # with or without modification, are permitted provided # that the following conditions are met: # # * Redistributions of source code must retain # the above copyright notice, this list of conditions # and the following disclaimer. # * Redistributions in binary form must reproduce # the above copyright notice, this list of conditions # and the following disclaimer in the documentation # and/or other materials provided with the distribution. # * Neither the name of the author nor the names # of its contributors may be used to endorse # or promote products derived from this software # without specific prior written permission. # # 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 OWNER OR CONTRIBUTORS 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. '''Compatibility functions for python 2 and 3. @author Bernhard Leiner (bleiner AT gmail com) @version 1.0 ''' __docformat__ = "javadoc" import sys if sys.version_info[0] >= 3: def asbytes(s): if isinstance(s, bytes): return s return s.encode('latin1') def asstr(s): if isinstance(s, str): return s return s.decode('latin1') else: asbytes = str asstr = str codec2-1.0.1/stm32/support/intelhex/test.py000066400000000000000000001615411412132000500205010ustar00rootroot00000000000000#!/usr/bin/python # Copyright (c) 2005-2013, Alexander Belchenko # All rights reserved. # # Redistribution and use in source and binary forms, # with or without modification, are permitted provided # that the following conditions are met: # # * Redistributions of source code must retain # the above copyright notice, this list of conditions # and the following disclaimer. # * Redistributions in binary form must reproduce # the above copyright notice, this list of conditions # and the following disclaimer in the documentation # and/or other materials provided with the distribution. # * Neither the name of the author nor the names # of its contributors may be used to endorse # or promote products derived from this software # without specific prior written permission. # # 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 OWNER OR CONTRIBUTORS 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. """Test suite for IntelHex class.""" import array from cStringIO import StringIO import os import sys import tempfile import unittest from compat import asbytes, asstr import intelhex from intelhex import IntelHex, \ IntelHexError, \ HexReaderError, \ AddressOverlapError, \ HexRecordError, \ RecordLengthError, \ RecordTypeError, \ RecordChecksumError, \ EOFRecordError, \ ExtendedSegmentAddressRecordError, \ ExtendedLinearAddressRecordError, \ StartSegmentAddressRecordError, \ StartLinearAddressRecordError, \ DuplicateStartAddressRecordError, \ InvalidStartAddressValueError, \ _EndOfFile, \ BadAccess16bit, \ hex2bin, \ Record __docformat__ = 'restructuredtext' ## # Data for tests hex8 = '''\ :1004E300CFF0FBE2FDF220FF20F2E120E2FBE6F396 :1004F3000A00FDE0E1E2E3B4E4E5BAE6E7B3BFE80E :10050300E9EAEBECEDEEEFF0F1F2F3F4F5F6F7F8E0 :10051300F9FCFEFF00C0C1C2C3A5C4C5AAC6C7B2C9 :10052300AFC8C9CACBCCCDCECFD0D1D2D3D4D5D6F8 :07053300D7D8D9DCDEDF00A0 :10053A0078227C007D007BFF7A0479F57E007F2398 :10054A0012042F78457C007D007BFF7A0579187E9E :10055A00007F2212042F759850438920758DDDD2B1 :10056A008ED2996390017BFF7A0479E31200658049 :01057A00FE82 :030000000205A254 :0C05A200787FE4F6D8FD75817A02053AF6 :10035F00E709F608DFFA8046E709F208DFFA803E80 :10036F0088828C83E709F0A3DFFA8032E309F6086D :10037F00DFFA8078E309F208DFFA807088828C83D5 :10038F00E309F0A3DFFA806489828A83E0A3F60889 :10039F00DFFA805889828A83E0A3F208DFFA804C63 :1003AF0080D280FA80C680D4806980F2803380103A :1003BF0080A680EA809A80A880DA80E280CA8033A3 :1003CF0089828A83ECFAE493A3C8C582C8CCC5831B :1003DF00CCF0A3C8C582C8CCC583CCDFE9DEE780EB :1003EF000D89828A83E493A3F608DFF9ECFAA9F06A :1003FF00EDFB2289828A83ECFAE0A3C8C582C8CCC0 :10040F00C583CCF0A3C8C582C8CCC583CCDFEADED8 :10041F00E880DB89828A83E493A3F208DFF980CC3A :10042F0088F0EF60010E4E60C388F0ED2402B40433 :10043F000050B9F582EB2402B4040050AF232345DA :06044F0082239003AF734D :10000300E576246AF8E60576227867300702786A8F :10001300E475F0011204AD0204552000EB7F2ED2EB :10002300008018EF540F2490D43440D4FF30040BD5 :10003300EF24BFB41A0050032461FFE57760021573 :1000430077057AE57A7002057930070D7867E475EC :10005300F0011204ADEF02049B02057B7403D20787 :100063008003E4C207F5768B678A688969E4F577CC :10007300F579F57AE57760077F2012003E80F57504 :1000830078FFC201C200C202C203C205C206C2088F :1000930012000CFF700D3007057F0012004FAF7A7E :1000A300AE7922B4255FC2D5C20412000CFF24D05E :1000B300B40A00501A75F00A787730D50508B6FFF0 :1000C3000106C6A426F620D5047002D20380D924E3 :1000D300CFB41A00EF5004C2E5D20402024FD2019A :1000E30080C6D20080C0D20280BCD2D580BAD205ED :1000F30080B47F2012003E2002077401B5770040D0 :10010300F1120003FF12003E020077D208D20680EC :1001130095120003FB120003FA120003F94A4B7015 :100123000679207A037BFF20022EE577602A7E0082 :100133008E8275830012046E60060EEE657870F091 :10014300C2D5EBC0E0EAC0E0E9C0E0EE120296D00F :10015300E0F9D0E0FAD0E0FB120455FF60AAEBC04F :10016300E0EAC0E0E9C0E012003ED0E02401F9D0AB :10017300E03400FAD0E0FBE5780460DCD578D98080 :10018300877BFF7A027992D202809C791080027970 :1001930008C206C2088008D2D5790A8004790AC247 :1001A300D5E578047002F578E4FAFDFEFF1200034A :1001B300FC7B08200113120003FD7B1030000A12A0 :1001C3000003FE120003FF7B20EC3382D592D5504F :1001D30013C3E43000069FFFE49EFEE42001039D69 :1001E300FDE49CFCE4CBF8C201EC700CCFCECDCC8B :1001F300E824F8F870F38017C3EF33FFEE33FEED16 :1002030033FDEC33FCEB33FB994002FB0FD8E9EBF6 :10021300300105F8D0E0C448B201C0E00AEC4D4E0D :100223004F78207B0070C2EAB5780040BCC0E01272 :100233000298D0F0D0E0200104C4C0E0C4B201C0F1 :10024300F0120027D0F0D5F0EB0200771204BD01C5 :100253001453018E5800E54C00E14201924F019A7C :0F02630044019A4900FA4301A0550184460184E1 :100272004501844703405000E92D00ED2E01102B6B :1002820000F123010E2003292A00A94800000108D9 :100292003F3F3F00790AA2D5200314300509B91067 :1002A200020404B9080104A2D52006025001042068 :1002B20002689202B577005034C0E07F2030031903 :1002C2007F30A20272067205500F1202EFC202C202 :1002D20006C205C2087F30800F300503E9C0E01274 :1002E200003E300503D0E0F9D0E0B577CC300517F9 :1002F2007F30B9100C12003E7F583004077F78809F :1003020003B9080312003E3002057F2D02003E7F32 :10031200202008F87F2B2006F322920280CF286E3D :10032200756C6C2900D2011200033001F8C2017809 :100332007730D50108F60200A92D50434958120022 :10034200032403B405004001E490033B9312002F01 :0D035200743A12002FD20375770402018E59 :10045500BB010689828A83E0225002E722BBFE02A5 :09046500E32289828A83E49322D8 :10046E00BB010CE58229F582E5833AF583E0225043 :10047E0006E92582F8E622BBFE06E92582F8E2228D :0D048E00E58229F582E5833AF583E49322A7 :10049B00BB010689828A83F0225002F722BBFE0140 :0204AB00F3223A :1004AD00FAE6FB0808E6F925F0F618E6CA3AF62250 :1004BD00D083D082F8E4937012740193700DA3A3CE :1004CD0093F8740193F5828883E4737402936860E2 :0604DD00EFA3A3A380DFE2 :10057B00EFB40A07740D120586740A309811A89906 :10058B00B8130CC2983098FDA899C298B811F630E0 :07059B0099FDC299F59922B8 :00000001FF ''' bin8 = array.array('B',[2, 5, 162, 229, 118, 36, 106, 248, 230, 5, 118, 34, 120, 103, 48, 7, 2, 120, 106, 228, 117, 240, 1, 18, 4, 173, 2, 4, 85, 32, 0, 235, 127, 46, 210, 0, 128, 24, 239, 84, 15, 36, 144, 212, 52, 64, 212, 255, 48, 4, 11, 239, 36, 191, 180, 26, 0, 80, 3, 36, 97, 255, 229, 119, 96, 2, 21, 119, 5, 122, 229, 122, 112, 2, 5, 121, 48, 7, 13, 120, 103, 228, 117, 240, 1, 18, 4, 173, 239, 2, 4, 155, 2, 5, 123, 116, 3, 210, 7, 128, 3, 228, 194, 7, 245, 118, 139, 103, 138, 104, 137, 105, 228, 245, 119, 245, 121, 245, 122, 229, 119, 96, 7, 127, 32, 18, 0, 62, 128, 245, 117, 120, 255, 194, 1, 194, 0, 194, 2, 194, 3, 194, 5, 194, 6, 194, 8, 18, 0, 12, 255, 112, 13, 48, 7, 5, 127, 0, 18, 0, 79, 175, 122, 174, 121, 34, 180, 37, 95, 194, 213, 194, 4, 18, 0, 12, 255, 36, 208, 180, 10, 0, 80, 26, 117, 240, 10, 120, 119, 48, 213, 5, 8, 182, 255, 1, 6, 198, 164, 38, 246, 32, 213, 4, 112, 2, 210, 3, 128, 217, 36, 207, 180, 26, 0, 239, 80, 4, 194, 229, 210, 4, 2, 2, 79, 210, 1, 128, 198, 210, 0, 128, 192, 210, 2, 128, 188, 210, 213, 128, 186, 210, 5, 128, 180, 127, 32, 18, 0, 62, 32, 2, 7, 116, 1, 181, 119, 0, 64, 241, 18, 0, 3, 255, 18, 0, 62, 2, 0, 119, 210, 8, 210, 6, 128, 149, 18, 0, 3, 251, 18, 0, 3, 250, 18, 0, 3, 249, 74, 75, 112, 6, 121, 32, 122, 3, 123, 255, 32, 2, 46, 229, 119, 96, 42, 126, 0, 142, 130, 117, 131, 0, 18, 4, 110, 96, 6, 14, 238, 101, 120, 112, 240, 194, 213, 235, 192, 224, 234, 192, 224, 233, 192, 224, 238, 18, 2, 150, 208, 224, 249, 208, 224, 250, 208, 224, 251, 18, 4, 85, 255, 96, 170, 235, 192, 224, 234, 192, 224, 233, 192, 224, 18, 0, 62, 208, 224, 36, 1, 249, 208, 224, 52, 0, 250, 208, 224, 251, 229, 120, 4, 96, 220, 213, 120, 217, 128, 135, 123, 255, 122, 2, 121, 146, 210, 2, 128, 156, 121, 16, 128, 2, 121, 8, 194, 6, 194, 8, 128, 8, 210, 213, 121, 10, 128, 4, 121, 10, 194, 213, 229, 120, 4, 112, 2, 245, 120, 228, 250, 253, 254, 255, 18, 0, 3, 252, 123, 8, 32, 1, 19, 18, 0, 3, 253, 123, 16, 48, 0, 10, 18, 0, 3, 254, 18, 0, 3, 255, 123, 32, 236, 51, 130, 213, 146, 213, 80, 19, 195, 228, 48, 0, 6, 159, 255, 228, 158, 254, 228, 32, 1, 3, 157, 253, 228, 156, 252, 228, 203, 248, 194, 1, 236, 112, 12, 207, 206, 205, 204, 232, 36, 248, 248, 112, 243, 128, 23, 195, 239, 51, 255, 238, 51, 254, 237, 51, 253, 236, 51, 252, 235, 51, 251, 153, 64, 2, 251, 15, 216, 233, 235, 48, 1, 5, 248, 208, 224, 196, 72, 178, 1, 192, 224, 10, 236, 77, 78, 79, 120, 32, 123, 0, 112, 194, 234, 181, 120, 0, 64, 188, 192, 224, 18, 2, 152, 208, 240, 208, 224, 32, 1, 4, 196, 192, 224, 196, 178, 1, 192, 240, 18, 0, 39, 208, 240, 213, 240, 235, 2, 0, 119, 18, 4, 189, 1, 20, 83, 1, 142, 88, 0, 229, 76, 0, 225, 66, 1, 146, 79, 1, 154, 68, 1, 154, 73, 0, 250, 67, 1, 160, 85, 1, 132, 70, 1, 132, 69, 1, 132, 71, 3, 64, 80, 0, 233, 45, 0, 237, 46, 1, 16, 43, 0, 241, 35, 1, 14, 32, 3, 41, 42, 0, 169, 72, 0, 0, 1, 8, 63, 63, 63, 0, 121, 10, 162, 213, 32, 3, 20, 48, 5, 9, 185, 16, 2, 4, 4, 185, 8, 1, 4, 162, 213, 32, 6, 2, 80, 1, 4, 32, 2, 104, 146, 2, 181, 119, 0, 80, 52, 192, 224, 127, 32, 48, 3, 25, 127, 48, 162, 2, 114, 6, 114, 5, 80, 15, 18, 2, 239, 194, 2, 194, 6, 194, 5, 194, 8, 127, 48, 128, 15, 48, 5, 3, 233, 192, 224, 18, 0, 62, 48, 5, 3, 208, 224, 249, 208, 224, 181, 119, 204, 48, 5, 23, 127, 48, 185, 16, 12, 18, 0, 62, 127, 88, 48, 4, 7, 127, 120, 128, 3, 185, 8, 3, 18, 0, 62, 48, 2, 5, 127, 45, 2, 0, 62, 127, 32, 32, 8, 248, 127, 43, 32, 6, 243, 34, 146, 2, 128, 207, 40, 110, 117, 108, 108, 41, 0, 210, 1, 18, 0, 3, 48, 1, 248, 194, 1, 120, 119, 48, 213, 1, 8, 246, 2, 0, 169, 45, 80, 67, 73, 88, 18, 0, 3, 36, 3, 180, 5, 0, 64, 1, 228, 144, 3, 59, 147, 18, 0, 47, 116, 58, 18, 0, 47, 210, 3, 117, 119, 4, 2, 1, 142, 231, 9, 246, 8, 223, 250, 128, 70, 231, 9, 242, 8, 223, 250, 128, 62, 136, 130, 140, 131, 231, 9, 240, 163, 223, 250, 128, 50, 227, 9, 246, 8, 223, 250, 128, 120, 227, 9, 242, 8, 223, 250, 128, 112, 136, 130, 140, 131, 227, 9, 240, 163, 223, 250, 128, 100, 137, 130, 138, 131, 224, 163, 246, 8, 223, 250, 128, 88, 137, 130, 138, 131, 224, 163, 242, 8, 223, 250, 128, 76, 128, 210, 128, 250, 128, 198, 128, 212, 128, 105, 128, 242, 128, 51, 128, 16, 128, 166, 128, 234, 128, 154, 128, 168, 128, 218, 128, 226, 128, 202, 128, 51, 137, 130, 138, 131, 236, 250, 228, 147, 163, 200, 197, 130, 200, 204, 197, 131, 204, 240, 163, 200, 197, 130, 200, 204, 197, 131, 204, 223, 233, 222, 231, 128, 13, 137, 130, 138, 131, 228, 147, 163, 246, 8, 223, 249, 236, 250, 169, 240, 237, 251, 34, 137, 130, 138, 131, 236, 250, 224, 163, 200, 197, 130, 200, 204, 197, 131, 204, 240, 163, 200, 197, 130, 200, 204, 197, 131, 204, 223, 234, 222, 232, 128, 219, 137, 130, 138, 131, 228, 147, 163, 242, 8, 223, 249, 128, 204, 136, 240, 239, 96, 1, 14, 78, 96, 195, 136, 240, 237, 36, 2, 180, 4, 0, 80, 185, 245, 130, 235, 36, 2, 180, 4, 0, 80, 175, 35, 35, 69, 130, 35, 144, 3, 175, 115, 187, 1, 6, 137, 130, 138, 131, 224, 34, 80, 2, 231, 34, 187, 254, 2, 227, 34, 137, 130, 138, 131, 228, 147, 34, 187, 1, 12, 229, 130, 41, 245, 130, 229, 131, 58, 245, 131, 224, 34, 80, 6, 233, 37, 130, 248, 230, 34, 187, 254, 6, 233, 37, 130, 248, 226, 34, 229, 130, 41, 245, 130, 229, 131, 58, 245, 131, 228, 147, 34, 187, 1, 6, 137, 130, 138, 131, 240, 34, 80, 2, 247, 34, 187, 254, 1, 243, 34, 250, 230, 251, 8, 8, 230, 249, 37, 240, 246, 24, 230, 202, 58, 246, 34, 208, 131, 208, 130, 248, 228, 147, 112, 18, 116, 1, 147, 112, 13, 163, 163, 147, 248, 116, 1, 147, 245, 130, 136, 131, 228, 115, 116, 2, 147, 104, 96, 239, 163, 163, 163, 128, 223, 207, 240, 251, 226, 253, 242, 32, 255, 32, 242, 225, 32, 226, 251, 230, 243, 10, 0, 253, 224, 225, 226, 227, 180, 228, 229, 186, 230, 231, 179, 191, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 252, 254, 255, 0, 192, 193, 194, 195, 165, 196, 197, 170, 198, 199, 178, 175, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 220, 222, 223, 0, 120, 34, 124, 0, 125, 0, 123, 255, 122, 4, 121, 245, 126, 0, 127, 35, 18, 4, 47, 120, 69, 124, 0, 125, 0, 123, 255, 122, 5, 121, 24, 126, 0, 127, 34, 18, 4, 47, 117, 152, 80, 67, 137, 32, 117, 141, 221, 210, 142, 210, 153, 99, 144, 1, 123, 255, 122, 4, 121, 227, 18, 0, 101, 128, 254, 239, 180, 10, 7, 116, 13, 18, 5, 134, 116, 10, 48, 152, 17, 168, 153, 184, 19, 12, 194, 152, 48, 152, 253, 168, 153, 194, 152, 184, 17, 246, 48, 153, 253, 194, 153, 245, 153, 34, 120, 127, 228, 246, 216, 253, 117, 129, 122, 2, 5, 58]) hex16 = """:020000040000FA :10000000000083120313072055301820042883169C :10001000031340309900181598168312031318160D :1000200098170800831203138C1E14281A0808005E :0C003000831203130C1E1A28990008000C :00000001FF """ bin16 = array.array('H', [0x0000, 0x1283, 0x1303, 0x2007, 0x3055, 0x2018, 0x2804, 0x1683, 0x1303, 0x3040, 0x0099, 0x1518, 0x1698, 0x1283, 0x1303, 0x1618, 0x1798, 0x0008, 0x1283, 0x1303, 0x1E8C, 0x2814, 0x081A, 0x0008, 0x1283, 0x1303, 0x1E0C, 0x281A, 0x0099, 0x0008, 0x3FFF, 0x3FFF]) hex64k = """:020000040000FA :0100000001FE :020000040001F9 :0100000002FD :00000001FF """ data64k = {0: 1, 0x10000: 2} hex_rectype3 = """:0400000312345678E5 :0100000001FE :00000001FF """ data_rectype3 = {0: 1} start_addr_rectype3 = {'CS': 0x1234, 'IP': 0x5678} hex_rectype5 = """:0400000512345678E3 :0100000002FD :00000001FF """ data_rectype5 = {0: 2} start_addr_rectype5 = {'EIP': 0x12345678} hex_empty_file = ':00000001FF\n' hex_simple = """\ :10000000000083120313072055301820042883169C :10001000031340309900181598168312031318160D :1000200098170800831203138C1E14281A0808005E :0C003000831203130C1E1A28990008000C :00000001FF """ hex_bug_lp_341051 = """\ :020FEC00E4E738 :040FF00022E122E1F7 :00000001FF """ ## # Test cases class TestIntelHexBase(unittest.TestCase): """Base class for all tests. Provide additional functionality for testing. """ def assertRaisesMsg(self, excClass, msg, callableObj, *args, **kwargs): """Just like unittest.TestCase.assertRaises, but checks that the message is right too. Borrowed from Ned Batchelder Blog. See: http://www.nedbatchelder.com/blog/200609.html#e20060905T064418 Typical usage:: self.assertRaisesMsg(MyException, "Exception message", my_function, (arg1, arg2)) """ try: callableObj(*args, **kwargs) except excClass, exc: excMsg = str(exc) if not msg: # No message provided: any message is fine. return elif excMsg == msg: # Message provided, and we got the right message: it passes. return else: # Message provided, and it didn't match: fail! raise self.failureException( "Right exception, wrong message: got '%s' expected '%s'" % (excMsg, msg) ) else: if hasattr(excClass, '__name__'): excName = excClass.__name__ else: excName = str(excClass) raise self.failureException( "Expected to raise %s, didn't get an exception at all" % excName ) def assertEqualWrittenData(self, a, b): return self.assertEquals(a, b, """Written data is incorrect Should be: %s Written: %s """ % (a, b)) #/class TestIntelHexBase class TestIntelHex(TestIntelHexBase): def setUp(self): self.f = StringIO(hex8) def tearDown(self): self.f.close() del self.f def test_init_from_file(self): ih = IntelHex(self.f) for addr in xrange(len(bin8)): expected = bin8[addr] actual = ih[addr] self.assertEqual(expected, actual, "Data different at address " "%x (%x != %x)" % (addr, expected, actual)) def test_hex_fromfile(self): ih = IntelHex() ih.fromfile(self.f, format='hex') for addr in xrange(len(bin8)): expected = bin8[addr] actual = ih[addr] self.assertEqual(expected, actual, "Data different at address " "%x (%x != %x)" % (addr, expected, actual)) def test_unicode_filename(self): handle, fname = tempfile.mkstemp(u'') os.close(handle) try: self.assertTrue(isinstance(fname, unicode)) f = open(fname, 'w') try: f.write(hex8) finally: f.close() ih = IntelHex(fname) self.assertEqual(0, ih.minaddr()) self.assertEqual(len(bin8)-1, ih.maxaddr()) finally: os.remove(fname) def test_tobinarray_empty(self): ih = IntelHex() ih.padding = 0xFF # set-up explicit padding value and don't use pad parameter self.assertEqual(array.array('B', []), ih.tobinarray()) self.assertEqual(array.array('B', []), ih.tobinarray(start=0)) self.assertEqual(array.array('B', []), ih.tobinarray(end=2)) self.assertEqual(array.array('B', [255,255,255]), ih.tobinarray(0,2)) def test_tobinarray_with_size(self): ih = IntelHex(self.f) self.assertEqual(array.array('B', [2, 5, 162, 229, 118, 36, 106, 248]), ih.tobinarray(size=8)) # from addr 0 self.assertEqual(array.array('B', [120, 103, 48, 7, 2, 120, 106, 228]), ih.tobinarray(start=12, size=8)) self.assertEqual(array.array('B', [2, 5, 162, 229, 118, 36, 106, 248]), ih.tobinarray(end=7, size=8)) # addr: 0..7, 8 bytes self.assertEqual(array.array('B', [120, 103, 48, 7, 2, 120, 106, 228]), ih.tobinarray(end=19, size=8)) # addr: 12..19, 8 bytes self.assertRaises(ValueError, ih.tobinarray, start=0, end=7, size=8) self.assertRaises(ValueError, ih.tobinarray, end=3, size=8) self.assertRaises(ValueError, ih.tobinarray, size=0) self.assertRaises(ValueError, ih.tobinarray, size=-1) def test_tobinstr(self): ih = IntelHex(self.f) s1 = ih.tobinstr() s2 = asstr(bin8.tostring()) self.assertEqual(s2, s1, "data not equal\n%s\n\n%s" % (s1, s2)) def test_tobinfile(self): ih = IntelHex(self.f) sio = StringIO() ih.tobinfile(sio) s1 = sio.getvalue() sio.close() s2 = asstr(bin8.tostring()) self.assertEqual(s2, s1, "data not equal\n%s\n\n%s" % (s1, s2)) # new API: .tofile universal method sio = StringIO() ih.tofile(sio, format='bin') s1 = sio.getvalue() sio.close() s2 = asstr(bin8.tostring()) self.assertEqual(s2, s1, "data not equal\n%s\n\n%s" % (s1, s2)) def test_write_empty_hexfile(self): ih = intelhex.IntelHex() sio = StringIO() ih.write_hex_file(sio) s = sio.getvalue() sio.close() self.assertEqualWrittenData(hex_empty_file, s) def test_write_hexfile(self): ih = intelhex.IntelHex(StringIO(hex_simple)) sio = StringIO() ih.write_hex_file(sio) s = sio.getvalue() sio.close() self.assertEqualWrittenData(hex_simple, s) # new API: .tofile universal method sio = StringIO() ih.tofile(sio, format='hex') s = sio.getvalue() sio.close() self.assertEqualWrittenData(hex_simple, s) def test_write_hex_bug_341051(self): ih = intelhex.IntelHex(StringIO(hex_bug_lp_341051)) sio = StringIO() ih.tofile(sio, format='hex') s = sio.getvalue() sio.close() self.assertEqualWrittenData(hex_bug_lp_341051, s) def test_write_hex_first_extended_linear_address(self): ih = IntelHex({0x20000: 0x01}) sio = StringIO() ih.write_hex_file(sio) s = sio.getvalue() sio.close() # should be r = [Record.extended_linear_address(2), Record.data(0x0000, [0x01]), Record.eof()] h = '\n'.join(r) + '\n' # compare self.assertEqual(h, s) def test_tofile_wrong_format(self): ih = IntelHex() sio = StringIO() self.assertRaises(ValueError, ih.tofile, sio, {'format': 'bad'}) def test_todict(self): ih = IntelHex() self.assertEquals({}, ih.todict()) ih = IntelHex(StringIO(hex64k)) self.assertEquals(data64k, ih.todict()) ih = IntelHex() ih[1] = 2 ih.start_addr = {'EIP': 1234} self.assertEquals({1: 2, 'start_addr': {'EIP': 1234}}, ih.todict()) def test_fromdict(self): ih = IntelHex() ih.fromdict({1:2, 3:4}) self.assertEquals({1:2, 3:4}, ih.todict()) ih.fromdict({1:5, 6:7}) self.assertEquals({1:5, 3:4, 6:7}, ih.todict()) ih = IntelHex() ih.fromdict({1: 2, 'start_addr': {'EIP': 1234}}) self.assertEquals({1: 2, 'start_addr': {'EIP': 1234}}, ih.todict()) # bad dict self.assertRaises(ValueError, ih.fromdict, {'EIP': 1234}) self.assertRaises(ValueError, ih.fromdict, {-1: 1234}) def test_init_from_obj(self): ih = IntelHex({1:2, 3:4}) self.assertEquals({1:2, 3:4}, ih.todict()) ih.start_addr = {'EIP': 1234} ih2 = IntelHex(ih) ih[1] = 5 ih.start_addr = {'EIP': 5678} self.assertEquals({1:2, 3:4, 'start_addr': {'EIP': 1234}}, ih2.todict()) self.assertNotEqual(id(ih), id(ih2)) def test_dict_interface(self): ih = IntelHex() self.assertEquals(0xFF, ih[0]) # padding byte substitution ih[0] = 1 self.assertEquals(1, ih[0]) del ih[0] self.assertEquals({}, ih.todict()) # padding byte substitution def test_len(self): ih = IntelHex() self.assertEquals(0, len(ih)) ih[2] = 1 self.assertEquals(1, len(ih)) ih[1000] = 2 self.assertEquals(2, len(ih)) def test__getitem__(self): ih = IntelHex() # simple cases self.assertEquals(0xFF, ih[0]) ih[0] = 1 self.assertEquals(1, ih[0]) # big address self.assertEquals(0xFF, ih[2**32-1]) # wrong addr type/value for indexing operations def getitem(index): return ih[index] self.assertRaisesMsg(TypeError, 'Address should be >= 0.', getitem, -1) self.assertRaisesMsg(TypeError, "Address has unsupported type: %s" % type('foo'), getitem, 'foo') # new object with some data ih = IntelHex() ih[0] = 1 ih[1] = 2 ih[2] = 3 ih[10] = 4 # full copy via slicing ih2 = ih[:] self.assertTrue(isinstance(ih2, IntelHex)) self.assertEquals({0:1, 1:2, 2:3, 10:4}, ih2.todict()) # other slice operations self.assertEquals({}, ih[3:8].todict()) self.assertEquals({0:1, 1:2}, ih[0:2].todict()) self.assertEquals({0:1, 1:2}, ih[:2].todict()) self.assertEquals({2:3, 10:4}, ih[2:].todict()) self.assertEquals({0:1, 2:3, 10:4}, ih[::2].todict()) self.assertEquals({10:4}, ih[3:11].todict()) def test__setitem__(self): ih = IntelHex() # simple indexing operation ih[0] = 1 self.assertEquals({0:1}, ih.todict()) # errors def setitem(a,b): ih[a] = b self.assertRaisesMsg(TypeError, 'Address should be >= 0.', setitem, -1, 0) self.assertRaisesMsg(TypeError, "Address has unsupported type: %s" % type('foo'), setitem, 'foo', 0) # slice operations ih[0:4] = range(4) self.assertEquals({0:0, 1:1, 2:2, 3:3}, ih.todict()) ih[0:] = range(5,9) self.assertEquals({0:5, 1:6, 2:7, 3:8}, ih.todict()) ih[:4] = range(9,13) self.assertEquals({0:9, 1:10, 2:11, 3:12}, ih.todict()) # with step ih = IntelHex() ih[0:8:2] = range(4) self.assertEquals({0:0, 2:1, 4:2, 6:3}, ih.todict()) # errors in slice operations # ih[1:2] = 'a' self.assertRaisesMsg(ValueError, 'Slice operation expects sequence of bytes', setitem, slice(1,2,None), 'a') # ih[0:1] = [1,2,3] self.assertRaisesMsg(ValueError, 'Length of bytes sequence does not match address range', setitem, slice(0,1,None), [1,2,3]) # ih[:] = [1,2,3] self.assertRaisesMsg(TypeError, 'Unsupported address range', setitem, slice(None,None,None), [1,2,3]) # ih[:2] = [1,2,3] self.assertRaisesMsg(TypeError, 'start address cannot be negative', setitem, slice(None,2,None), [1,2,3]) # ih[0:-3:-1] = [1,2,3] self.assertRaisesMsg(TypeError, 'stop address cannot be negative', setitem, slice(0,-3,-1), [1,2,3]) def test__delitem__(self): ih = IntelHex() ih[0] = 1 del ih[0] self.assertEquals({}, ih.todict()) # errors def delitem(addr): del ih[addr] self.assertRaises(KeyError, delitem, 1) self.assertRaisesMsg(TypeError, 'Address should be >= 0.', delitem, -1) self.assertRaisesMsg(TypeError, "Address has unsupported type: %s" % type('foo'), delitem, 'foo') # deleting slice del ih[0:1] # no error here because of slicing # def ihex(size=8): ih = IntelHex() for i in xrange(size): ih[i] = i return ih ih = ihex(8) del ih[:] # delete all data self.assertEquals({}, ih.todict()) ih = ihex(8) del ih[2:6] self.assertEquals({0:0, 1:1, 6:6, 7:7}, ih.todict()) ih = ihex(8) del ih[::2] self.assertEquals({1:1, 3:3, 5:5, 7:7}, ih.todict()) def test_addresses(self): # empty object ih = IntelHex() self.assertEquals([], ih.addresses()) self.assertEquals(None, ih.minaddr()) self.assertEquals(None, ih.maxaddr()) # normal object ih = IntelHex({1:2, 7:8, 10:0}) self.assertEquals([1,7,10], ih.addresses()) self.assertEquals(1, ih.minaddr()) self.assertEquals(10, ih.maxaddr()) def test__get_start_end(self): # test for private method _get_start_end # for empty object ih = IntelHex() self.assertRaises(intelhex.EmptyIntelHexError, ih._get_start_end) self.assertRaises(intelhex.EmptyIntelHexError, ih._get_start_end, size=10) self.assertEquals((0,9), ih._get_start_end(start=0, size=10)) self.assertEquals((1,10), ih._get_start_end(end=10, size=10)) # normal object ih = IntelHex({1:2, 7:8, 10:0}) self.assertEquals((1,10), ih._get_start_end()) self.assertEquals((1,10), ih._get_start_end(size=10)) self.assertEquals((0,9), ih._get_start_end(start=0, size=10)) self.assertEquals((1,10), ih._get_start_end(end=10, size=10)) class TestIntelHexLoadBin(TestIntelHexBase): def setUp(self): self.data = '0123456789' self.f = StringIO(self.data) def tearDown(self): self.f.close() def test_loadbin(self): ih = IntelHex() ih.loadbin(self.f) self.assertEqual(0, ih.minaddr()) self.assertEqual(9, ih.maxaddr()) self.assertEqual(self.data, ih.tobinstr()) def test_bin_fromfile(self): ih = IntelHex() ih.fromfile(self.f, format='bin') self.assertEqual(0, ih.minaddr()) self.assertEqual(9, ih.maxaddr()) self.assertEqual(self.data, ih.tobinstr()) def test_loadbin_w_offset(self): ih = IntelHex() ih.loadbin(self.f, offset=100) self.assertEqual(100, ih.minaddr()) self.assertEqual(109, ih.maxaddr()) self.assertEqual(self.data, ih.tobinstr()) def test_loadfile_format_bin(self): ih = IntelHex() ih.loadfile(self.f, format='bin') self.assertEqual(0, ih.minaddr()) self.assertEqual(9, ih.maxaddr()) self.assertEqual(self.data, ih.tobinstr()) class TestIntelHexStartingAddressRecords(TestIntelHexBase): def _test_read(self, hexstr, data, start_addr): sio = StringIO(hexstr) ih = IntelHex(sio) sio.close() # test data self.assertEqual(data, ih._buf, "Internal buffer: %r != %r" % (data, ih._buf)) self.assertEqual(start_addr, ih.start_addr, "Start address: %r != %r" % (start_addr, ih.start_addr)) def test_read_rectype3(self): self._test_read(hex_rectype3, data_rectype3, start_addr_rectype3) def test_read_rectype5(self): self._test_read(hex_rectype5, data_rectype5, start_addr_rectype5) def _test_write(self, hexstr, data, start_addr, write_start_addr=True): # prepare ih = IntelHex(None) ih._buf = data ih.start_addr = start_addr # write sio = StringIO() ih.write_hex_file(sio, write_start_addr) s = sio.getvalue() sio.close() # check self.assertEqualWrittenData(hexstr, s) def _test_dont_write(self, hexstr, data, start_addr): expected = ''.join(hexstr.splitlines(True)[1:]) self._test_write(expected, data, start_addr, False) def test_write_rectype3(self): self._test_write(hex_rectype3, data_rectype3, start_addr_rectype3) def test_dont_write_rectype3(self): self._test_dont_write(hex_rectype3, data_rectype3, start_addr_rectype3) def test_write_rectype5(self): self._test_write(hex_rectype5, data_rectype5, start_addr_rectype5) def test_dont_write_rectype5(self): self._test_dont_write(hex_rectype5, data_rectype5, start_addr_rectype5) def test_write_invalid_start_addr_value(self): ih = IntelHex() ih.start_addr = {'foo': 1} sio = StringIO() self.assertRaises(InvalidStartAddressValueError, ih.write_hex_file, sio) class TestIntelHex_big_files(TestIntelHexBase): """Test that data bigger than 64K read/write correctly""" def setUp(self): self.f = StringIO(hex64k) def tearDown(self): self.f.close() del self.f def test_readfile(self): ih = intelhex.IntelHex(self.f) for addr, byte in data64k.items(): readed = ih[addr] self.assertEquals(byte, readed, "data not equal at addr %X " "(%X != %X)" % (addr, byte, readed)) def test_write_hex_file(self): ih = intelhex.IntelHex(self.f) sio = StringIO() ih.write_hex_file(sio) s = sio.getvalue() sio.close() self.assertEqualWrittenData(hex64k, s) class TestIntelHexGetPutString(TestIntelHexBase): def setUp(self): self.ih = IntelHex() for i in xrange(10): self.ih[i] = i def test_gets(self): self.assertEquals('\x00\x01\x02\x03\x04\x05\x06\x07', self.ih.gets(0, 8)) self.assertEquals('\x07\x08\x09', self.ih.gets(7, 3)) self.assertRaisesMsg(intelhex.NotEnoughDataError, 'Bad access at 0x1: ' 'not enough data to read 10 contiguous bytes', self.ih.gets, 1, 10) def test_puts(self): self.ih.puts(0x03, 'hello') self.assertEquals('\x00\x01\x02hello\x08\x09', self.ih.gets(0, 10)) def test_getsz(self): self.assertEquals('', self.ih.getsz(0)) self.assertRaisesMsg(intelhex.NotEnoughDataError, 'Bad access at 0x1: ' 'not enough data to read zero-terminated string', self.ih.getsz, 1) self.ih[4] = 0 self.assertEquals('\x01\x02\x03', self.ih.getsz(1)) def test_putsz(self): self.ih.putsz(0x03, 'hello') self.assertEquals('\x00\x01\x02hello\x00\x09', self.ih.gets(0, 10)) class TestIntelHexDump(TestIntelHexBase): def test_empty(self): ih = IntelHex() sio = StringIO() ih.dump(sio) self.assertEquals('', sio.getvalue()) def test_simple(self): ih = IntelHex() ih[0] = 0x12 ih[1] = 0x34 sio = StringIO() ih.dump(sio) self.assertEquals( '0000 12 34 -- -- -- -- -- -- -- -- -- -- -- -- -- -- |.4 |\n', sio.getvalue()) ih[16] = 0x56 ih[30] = 0x98 sio = StringIO() ih.dump(sio) self.assertEquals( '0000 12 34 -- -- -- -- -- -- -- -- -- -- -- -- -- -- |.4 |\n' '0010 56 -- -- -- -- -- -- -- -- -- -- -- -- -- 98 -- |V . |\n', sio.getvalue()) def test_minaddr_not_zero(self): ih = IntelHex() ih[16] = 0x56 ih[30] = 0x98 sio = StringIO() ih.dump(sio) self.assertEquals( '0010 56 -- -- -- -- -- -- -- -- -- -- -- -- -- 98 -- |V . |\n', sio.getvalue()) def test_start_addr(self): ih = IntelHex() ih[0] = 0x12 ih[1] = 0x34 ih.start_addr = {'CS': 0x1234, 'IP': 0x5678} sio = StringIO() ih.dump(sio) self.assertEquals( 'CS = 0x1234, IP = 0x5678\n' '0000 12 34 -- -- -- -- -- -- -- -- -- -- -- -- -- -- |.4 |\n', sio.getvalue()) ih.start_addr = {'EIP': 0x12345678} sio = StringIO() ih.dump(sio) self.assertEquals( 'EIP = 0x12345678\n' '0000 12 34 -- -- -- -- -- -- -- -- -- -- -- -- -- -- |.4 |\n', sio.getvalue()) class TestIntelHexMerge(TestIntelHexBase): def test_merge_empty(self): ih1 = IntelHex() ih2 = IntelHex() ih1.merge(ih2) self.assertEquals({}, ih1.todict()) def test_merge_simple(self): ih1 = IntelHex({0:1, 1:2, 2:3}) ih2 = IntelHex({3:4, 4:5, 5:6}) ih1.merge(ih2) self.assertEquals({0:1, 1:2, 2:3, 3:4, 4:5, 5:6}, ih1.todict()) def test_merge_wrong_args(self): ih1 = IntelHex() self.assertRaisesMsg(TypeError, 'other should be IntelHex object', ih1.merge, {0:1}) self.assertRaisesMsg(ValueError, "Can't merge itself", ih1.merge, ih1) ih2 = IntelHex() self.assertRaisesMsg(ValueError, "overlap argument should be either " "'error', 'ignore' or 'replace'", ih1.merge, ih2, overlap='spam') def test_merge_overlap(self): # error ih1 = IntelHex({0:1}) ih2 = IntelHex({0:2}) self.assertRaisesMsg(intelhex.AddressOverlapError, 'Data overlapped at address 0x0', ih1.merge, ih2, overlap='error') # ignore ih1 = IntelHex({0:1}) ih2 = IntelHex({0:2}) ih1.merge(ih2, overlap='ignore') self.assertEquals({0:1}, ih1.todict()) # replace ih1 = IntelHex({0:1}) ih2 = IntelHex({0:2}) ih1.merge(ih2, overlap='replace') self.assertEquals({0:2}, ih1.todict()) def test_merge_start_addr(self): # this, None ih1 = IntelHex({'start_addr': {'EIP': 0x12345678}}) ih2 = IntelHex() ih1.merge(ih2) self.assertEquals({'start_addr': {'EIP': 0x12345678}}, ih1.todict()) # None, other ih1 = IntelHex() ih2 = IntelHex({'start_addr': {'EIP': 0x12345678}}) ih1.merge(ih2) self.assertEquals({'start_addr': {'EIP': 0x12345678}}, ih1.todict()) # this == other: no conflict ih1 = IntelHex({'start_addr': {'EIP': 0x12345678}}) ih2 = IntelHex({'start_addr': {'EIP': 0x12345678}}) ih1.merge(ih2) self.assertEquals({'start_addr': {'EIP': 0x12345678}}, ih1.todict()) # this != other: conflict ## overlap=error ih1 = IntelHex({'start_addr': {'EIP': 0x12345678}}) ih2 = IntelHex({'start_addr': {'EIP': 0x87654321}}) self.assertRaisesMsg(AddressOverlapError, 'Starting addresses are different', ih1.merge, ih2, overlap='error') ## overlap=ignore ih1 = IntelHex({'start_addr': {'EIP': 0x12345678}}) ih2 = IntelHex({'start_addr': {'EIP': 0x87654321}}) ih1.merge(ih2, overlap='ignore') self.assertEquals({'start_addr': {'EIP': 0x12345678}}, ih1.todict()) ## overlap=replace ih1 = IntelHex({'start_addr': {'EIP': 0x12345678}}) ih2 = IntelHex({'start_addr': {'EIP': 0x87654321}}) ih1.merge(ih2, overlap='replace') self.assertEquals({'start_addr': {'EIP': 0x87654321}}, ih1.todict()) class TestIntelHex16bit(TestIntelHexBase): def setUp(self): self.f = StringIO(hex16) def tearDown(self): self.f.close() del self.f def test_init_from_file(self): ih = intelhex.IntelHex16bit(self.f) def test_init_from_ih(self): ih = intelhex.IntelHex(self.f) ih16 = intelhex.IntelHex16bit(ih) def test_default_padding(self): ih16 = intelhex.IntelHex16bit() self.assertEqual(0x0FFFF, ih16.padding) self.assertEqual(0x0FFFF, ih16[0]) def test_minaddr(self): ih = intelhex.IntelHex16bit(self.f) addr = ih.minaddr() self.assertEqual(0, addr, 'Error in detection of minaddr (0 != 0x%x)' % addr) def test_maxaddr(self): ih = intelhex.IntelHex16bit(self.f) addr = ih.maxaddr() self.assertEqual(0x001D, addr, 'Error in detection of maxaddr ' '(0x001D != 0x%x)' % addr) def test_getitem(self): ih = intelhex.IntelHex16bit(self.f) ih.padding = 0x3FFF for addr, word in enumerate(bin16): self.assertEqual(word, ih[addr], 'Data mismatch at address ' '0x%x (0x%x != 0x%x)' % (addr, word, ih[addr])) def test_not_enough_data(self): ih = intelhex.IntelHex() ih[0] = 1 ih16 = intelhex.IntelHex16bit(ih) self.assertRaisesMsg(BadAccess16bit, 'Bad access at 0x0: ' 'not enough data to read 16 bit value', lambda x: ih16[x], 0) def test_write_hex_file(self): ih = intelhex.IntelHex16bit(self.f) sio = StringIO() ih.write_hex_file(sio) s = sio.getvalue() sio.close() fin = StringIO(s) ih2 = intelhex.IntelHex16bit(fin) self.assertEqual(ih.tobinstr(), ih2.tobinstr(), "Written hex file does not equal with original") def test_bug_988148(self): # see https://bugs.launchpad.net/intelhex/+bug/988148 ih = intelhex.IntelHex16bit(intelhex.IntelHex()) ih[0] = 25 sio = StringIO() ih.write_hex_file(sio) def test_setitem(self): ih = intelhex.IntelHex16bit(self.f) old = ih[0] ih[0] = old ^ 0xFFFF self.assertNotEqual(old, ih[0], "Setting new value to internal buffer failed") def test_tobinarray(self): ih = intelhex.IntelHex16bit() ih[0] = 0x1234 ih[1] = 0x5678 self.assertEqual(array.array('H', [0x1234,0x5678,0xFFFF]), ih.tobinarray(start=0, end=2)) # change padding ih.padding = 0x3FFF self.assertEqual(array.array('H', [0x1234,0x5678,0x3FFF]), ih.tobinarray(start=0, end=2)) #/class TestIntelHex16bit class TestIntelHexErrors(TestIntelHexBase): """Tests for custom errors classes""" def assertEqualExc(self, message, exception): return self.assertEqual(message, str(exception)) def test_IntelHexError(self): self.assertEqualExc('IntelHex base error', IntelHexError()) def test_IntelHexError_message(self): self.assertEqualExc('IntelHex custom error message', IntelHexError(msg='IntelHex custom error message')) self.assertEqualExc('IntelHex base error', IntelHexError(msg='')) def test_HexReaderError(self): self.assertEqualExc('Hex reader base error', HexReaderError()) def test_HexRecordError(self): self.assertEqualExc('Hex file contains invalid record at line 1', HexRecordError(line=1)) def test_RecordLengthError(self): self.assertEqualExc('Record at line 1 has invalid length', RecordLengthError(line=1)) def test_RecordTypeError(self): self.assertEqualExc('Record at line 1 has invalid record type', RecordTypeError(line=1)) def test_RecordChecksumError(self): self.assertEqualExc('Record at line 1 has invalid checksum', RecordChecksumError(line=1)) def test_EOFRecordError(self): self.assertEqualExc('File has invalid End-of-File record', EOFRecordError()) def test_ExtendedSegmentAddressRecordError(self): self.assertEqualExc( 'Invalid Extended Segment Address Record at line 1', ExtendedSegmentAddressRecordError(line=1)) def test_ExtendedLinearAddressRecordError(self): self.assertEqualExc('Invalid Extended Linear Address Record at line 1', ExtendedLinearAddressRecordError(line=1)) def test_StartSegmentAddressRecordError(self): self.assertEqualExc('Invalid Start Segment Address Record at line 1', StartSegmentAddressRecordError(line=1)) def test_StartLinearAddressRecordError(self): self.assertEqualExc('Invalid Start Linear Address Record at line 1', StartLinearAddressRecordError(line=1)) def test_DuplicateStartAddressRecord(self): self.assertEqualExc('Start Address Record appears twice at line 1', DuplicateStartAddressRecordError(line=1)) def test_InvalidStartAddressValue(self): self.assertEqualExc("Invalid start address value: {'foo': 1}", InvalidStartAddressValueError(start_addr={'foo': 1})) def test_AddressOverlapError(self): self.assertEqualExc('Hex file has data overlap at address 0x1234 ' 'on line 1', AddressOverlapError(address=0x1234, line=1)) def test_NotEnoughDataError(self): self.assertEqualExc('Bad access at 0x1234: ' 'not enough data to read 10 contiguous bytes', intelhex.NotEnoughDataError(address=0x1234, length=10)) def test_BadAccess16bit(self): self.assertEqualExc('Bad access at 0x1234: ' 'not enough data to read 16 bit value', BadAccess16bit(address=0x1234)) #/class TestIntelHexErrors class TestDecodeHexRecords(TestIntelHexBase): """Testing that decoding of records is correct and all errors raised when needed """ def setUp(self): self.ih = IntelHex() self.decode_record = self.ih._decode_record def tearDown(self): del self.ih def test_empty_line(self): # do we could to accept empty lines in hex files? # standard don't say anything about this self.decode_record('') def test_non_empty_line(self): self.assertRaisesMsg(HexRecordError, 'Hex file contains invalid record at line 1', self.decode_record, ' ', 1) def test_short_record(self): # if record too short it's not a hex record self.assertRaisesMsg(HexRecordError, 'Hex file contains invalid record at line 1', self.decode_record, ':', 1) def test_odd_hexascii_digits(self): self.assertRaisesMsg(HexRecordError, 'Hex file contains invalid record at line 1', self.decode_record, ':0100000100F', 1) def test_invalid_length(self): self.assertRaisesMsg(RecordLengthError, 'Record at line 1 has invalid length', self.decode_record, ':FF00000100', 1) def test_invalid_record_type(self): self.assertRaisesMsg(RecordTypeError, 'Record at line 1 has invalid record type', self.decode_record, ':000000FF01', 1) def test_invalid_checksum(self): self.assertRaisesMsg(RecordChecksumError, 'Record at line 1 has invalid checksum', self.decode_record, ':0000000100', 1) def test_invalid_eof(self): self.assertRaisesMsg(EOFRecordError, 'File has invalid End-of-File record', self.decode_record, ':0100000100FE', 1) def test_invalid_extended_segment(self): # length self.assertRaisesMsg(ExtendedSegmentAddressRecordError, 'Invalid Extended Segment Address Record at line 1', self.decode_record, ':00000002FE', 1) # addr field self.assertRaisesMsg(ExtendedSegmentAddressRecordError, 'Invalid Extended Segment Address Record at line 1', self.decode_record, ':020001020000FB', 1) def test_invalid_linear_address(self): # length self.assertRaisesMsg(ExtendedLinearAddressRecordError, 'Invalid Extended Linear Address Record ' 'at line 1', self.decode_record, ':00000004FC', 1) # addr field self.assertRaisesMsg(ExtendedLinearAddressRecordError, 'Invalid Extended Linear Address Record ' 'at line 1', self.decode_record, ':020001040000F9', 1) def test_invalid_start_segment_addr(self): # length self.assertRaisesMsg(StartSegmentAddressRecordError, 'Invalid Start Segment Address Record at line 1', self.decode_record, ':00000003FD', 1) # addr field self.assertRaisesMsg(StartSegmentAddressRecordError, 'Invalid Start Segment Address Record at line 1', self.decode_record, ':0400010300000000F8', 1) def test_duplicate_start_segment_addr(self): self.decode_record(':0400000312345678E5') self.assertRaisesMsg(DuplicateStartAddressRecordError, 'Start Address Record appears twice at line 2', self.decode_record, ':0400000300000000F9', 2) def test_invalid_start_linear_addr(self): # length self.assertRaisesMsg(StartLinearAddressRecordError, 'Invalid Start Linear Address Record at line 1', self.decode_record, ':00000005FB', 1) # addr field self.assertRaisesMsg(StartLinearAddressRecordError, 'Invalid Start Linear Address Record at line 1', self.decode_record, ':0400010500000000F6', 1) def test_duplicate_start_linear_addr(self): self.decode_record(':0400000512345678E3') self.assertRaisesMsg(DuplicateStartAddressRecordError, 'Start Address Record appears twice at line 2', self.decode_record, ':0400000500000000F7', 2) def test_addr_overlap(self): self.decode_record(':0100000000FF') self.assertRaisesMsg(AddressOverlapError, 'Hex file has data overlap at address 0x0 ' 'on line 1', self.decode_record, ':0100000000FF', 1) def test_data_record(self): # should be no exceptions self.decode_record(':0100000000FF\n') self.decode_record(':03000100000102F9\r\n') self.decode_record(':1004E300CFF0FBE2FDF220FF20F2E120E2FBE6F396') def test_eof(self): # EOF should raise special exception self.assertRaises(_EndOfFile, self.decode_record, ':00000001FF') #/class TestDecodeHexRecords class TestHex2Bin(unittest.TestCase): def setUp(self): self.fin = StringIO(hex8) self.fout = StringIO() def tearDown(self): self.fin.close() self.fout.close() def test_hex2bin(self): ih = hex2bin(self.fin, self.fout) data = array.array('B', asbytes(self.fout.getvalue())) for addr in xrange(len(bin8)): expected = bin8[addr] actual = data[addr] self.assertEqual(expected, actual, "Data different at address " "%x (%x != %x)" % (addr, expected, actual)) class TestDiffDumps(unittest.TestCase): def test_simple(self): ih1 = IntelHex({1:0x30, 20:0x31, 40:0x33}) ih2 = IntelHex({1:0x30, 20:0x32, 40:0x33}) sio = StringIO() intelhex.diff_dumps(ih1, ih2, sio) result = sio.getvalue() extra = ' ' if sys.version_info[0] >= 3 or sys.version >= '2.7': extra = '' shouldbe = ( "--- a%(extra)s\n" "+++ b%(extra)s\n" "@@ -1,3 +1,3 @@\n" " 0000 -- 30 -- -- -- -- -- -- -- -- -- -- -- -- -- -- | 0 |\n" "-0010 -- -- -- -- 31 -- -- -- -- -- -- -- -- -- -- -- | 1 |\n" "+0010 -- -- -- -- 32 -- -- -- -- -- -- -- -- -- -- -- | 2 |\n" " 0020 -- -- -- -- -- -- -- -- 33 -- -- -- -- -- -- -- | 3 |\n" ) % dict(extra=extra) self.assertEquals(shouldbe, result) class TestBuildRecords(TestIntelHexBase): def test__from_bytes(self): self.assertEqual(':00000001FF', intelhex.Record._from_bytes([0,0,0,1])) def test_data(self): self.assertEqual(':011234005663', intelhex.Record.data(0x1234, [0x56])) self.assertEqual(':0312340056789059', intelhex.Record.data(0x1234, [0x56, 0x78, 0x90])) def test_eof(self): self.assertEqual(':00000001FF', intelhex.Record.eof()) def test_extended_segment_address(self): self.assertEqual(':020000021234B6', intelhex.Record.extended_segment_address(0x1234)) def test_start_segment_address(self): self.assertEqual(':0400000312345678E5', intelhex.Record.start_segment_address(0x1234, 0x5678)) def test_extended_linear_address(self): self.assertEqual(':020000041234B4', intelhex.Record.extended_linear_address(0x1234)) def test_start_linear_address(self): self.assertEqual(':0400000512345678E3', intelhex.Record.start_linear_address(0x12345678)) class Test_GetFileAndAddrRange(TestIntelHexBase): def test_simple(self): self.assertEqual(('filename.hex', None, None), intelhex._get_file_and_addr_range('filename.hex')) self.assertEqual(('f', None, None), intelhex._get_file_and_addr_range('f')) self.assertEqual(('filename.hex', 1, None), intelhex._get_file_and_addr_range('filename.hex:1:')) self.assertEqual(('filename.hex', None, 10), intelhex._get_file_and_addr_range('filename.hex::A')) self.assertEqual(('filename.hex', 1, 10), intelhex._get_file_and_addr_range('filename.hex:1:A')) self.assertEqual(('filename.hex', 1, 10), intelhex._get_file_and_addr_range('filename.hex:0001:000A')) def test_bad_notation(self): self.assertRaises(intelhex._BadFileNotation, intelhex._get_file_and_addr_range, 'filename.hex:') self.assertRaises(intelhex._BadFileNotation, intelhex._get_file_and_addr_range, 'filename.hex:::') self.assertRaises(intelhex._BadFileNotation, intelhex._get_file_and_addr_range, 'C:\\filename.hex:', True) def test_drive_letter(self): self.assertEqual(('C:\\filename.hex', None, None), intelhex._get_file_and_addr_range('C:\\filename.hex', True)) self.assertEqual(('C:\\filename.hex', 1, None), intelhex._get_file_and_addr_range('C:\\filename.hex:1:', True)) self.assertEqual(('C:\\filename.hex', None, 10), intelhex._get_file_and_addr_range('C:\\filename.hex::A', True)) self.assertEqual(('C:\\filename.hex', 1, 10), intelhex._get_file_and_addr_range('C:\\filename.hex:1:A', True)) self.assertEqual(('C:\\filename.hex', 1, 10), intelhex._get_file_and_addr_range('C:\\filename.hex:0001:000A', True)) ## # MAIN if __name__ == '__main__': unittest.main() codec2-1.0.1/stm32/unittest/000077500000000000000000000000001412132000500154635ustar00rootroot00000000000000codec2-1.0.1/stm32/unittest/README_unittest.md000066400000000000000000000207031412132000500207030ustar00rootroot00000000000000# README Codec2 STM32 Unit Test Don Reid 2018/2019 This is the unittest system for the stm32 implementation of codec2/FreeDV which runs on Linux systems. It requires a STM32F4xx processor development board connected to/having a ST-LINK, e.g. a STM32F4 Discovery board. ## Quickstart Requirements: * python3/numpy * arm-none-eabi-gdb install and in your path (see codec2/stm32/README.md) * STM32F4xx_DSP_StdPeriph_Lib_V1.8.0 (see codec2/stm32/README.md) * build openocd from source and have it in your path (see below) Build codec2 for x86 Linux and run the ctests. This generates several artifacts required for the stm32 tests: ``` $ cd ~/codec2 $ mkdir build_linux && cd build_linux && cmake .. && make && ctest ``` Now build for the stm32, and run the stm32 ctests: ``` $ cd ~/codec2/stm32 && mkdir build_stm32 && cd build_stm32 $ cmake -DCMAKE_TOOLCHAIN_FILE=../cmake/STM32_Toolchain.cmake -DPERIPHLIBDIR=~/Downloads/STM32F4xx_DSP_StdPeriph_Lib_V1.8.0 .. $ make $ sudo apt install python3-numpy libncurses5 $ ctest -V ``` You should see tests executing (and passing). They are slow to execute (30 to 180 seconds each), due to the speed of the semihosting system. ## If a Test fails Explore the files in ```codec2/stm32/unittest/test_run/name_of_test``` When each test runs, a directory is created, and several log files generated. ## Running the stm32 Unit Tests 1. Tests can be run using the ctest utility (part of cmake) ``` $ cd ~/codec2/stm32/build_stm32 $ ctest ``` You can pass -V to see more output: ``` $ ctest -V ``` You can pass -R to run test matching . Please note, that some test have dependencies and will have to run other tests before being executed ``` $ ctest -R ofdm ``` To list the available ctests: ``` $ ctest -N ``` 1. To run a single test. This test exercises the entire 700D receive side, and measures CPU load and memory: ``` $ cd ~/codec2/stm32/unittest $ ./scripts/run_stm32_tst tst_ofdm_api_demod 700D_AWGN_codec ``` In general: ``` $ ./scripts/run_stm32_test ``` 1. To run a test set (example): ``` $ cd ~/codec2/stm32/unittest $ ./scripts/run_all_ldpc_tests ``` In general: (codec2, ofdm, ldpc): ``` $ ./scripts/run_all__tests ``` ## When tests fail 1. If a test fails, explore the files in the ```test_run``` directory for that test. 1. Try building with ALLOC_DEBUG can be helpful with heap issues: ``` $ CFLAGS=-DEBUG_ALLOC cmake -DCMAKE_TOOLCHAIN_FILE=../cmake/STM32_Toolchain.cmake \ -DPERIPHLIBDIR=~/Downloads/STM32F4xx_DSP_StdPeriph_Lib_V1.8.0 .. ``` ## Sequence of a Test Consider the example: ``` build_stm32$ ctest -R tst_ldpc_dec_noise ``` 1. The test is kicked off based on `src/CMakeLists.txt`, which calls `scipts/run_stm32_tst` 1. `run_stm32_tst` calls the test setup script, e.g. `tst_ldpc_dec_setup`. Typically, this will run a host version to generate a reference. 1. `run_stm32_tst` runs the stm32 executable on the Discovery, e.g. `tst_ldpc_dec`, the source is in `src/tst_ldpc_dec.c` 1. The steup and check scripts can handle many sub cases, e.g. `ideal` and `noise`. 1. `run_stm32_tst` calls the test check script, e.g. `tst_ldpc_dec_check` which typically compares the host generated reference to the output from the stm32. 1. As the test runs, various files are generated in `test_run/tst_ldpc_dec_noise` 1. When debugging it's useful to run the ctest with the verbose option: ``` $ ctest -V -R tst_ldpc_dec_noise ``` Set the `-x` at the top of the scripts to trace execution: ``` #!/bin/bash -x # # tst_ldpc_enc_check ``` ## Directory Structure | Path | Description | | --- | --- | | `scripts` | Scripts for unittest system | `src` | stm32 C sources | `\src\CMakeLists.txt` | ctests are defined here | `lib/python`| Python library files | `lib/octave`| Octave library files | `test_run` | Files created by each test as it runs ## Running the tests remotely If the stm32 hardware is connected on a different pc with linux, the tests can be run remotely. Test will run slower, roughly 3 times. 1. You have to build OpenOCD on the remote machine with the STM32 board. It must be built from (https://github.com/db4ple/openocd.git). 1. You don't need OpenOCD installed on your build pc. 1. You have to be able to run ssh with public key authentication using ssh-agent so that you can ssh into the remote machine without entering a password. 1. You have to call ctest with the proper UT_SSH_PARAMS settings, e.g. ``` UT_SSH_PARAMS="-p 22 -q remoteuser@remotemachine" ctest -V ``` ## Debug and Semihosting These tests required a connection from the arm-none-eabi-gdb debugger to the stm32 hardware. For this we use a recent version of OpenOCD. Running tests with the stm32 hardware connected to a remote machine via ssh is possible. This works only with a patched (fixed) OpenOCD, see below. ## OpenOCD We recommend OpenOCD instead of stlink. Most linux distributions use old packages for openocd, so you should build it from the git source. If your test runs fail with error messages regarding SYS_FLEN not support (see openocd_stderr.log in the test_run directories), your openocd is too old. Make sure to have the right openocd first in the PATH if you have multiple openocd installed! It is strongly recommended to build OpenOCD from sources, see below. ## Building OpenOCD OpenOCD needs to be built from the source. If you want to use openocd remotely via SSH, you have to use currently the patched source from (https://github.com/db4ple/openocd.git) instead of the official repository. 1. The executable is placed in /usr/local/bin ! Make sure to have no other openocd installed (check output of `which openocd` to be /usr/local/bin) ```Bash sudo apt install libusb-1.0-0-dev libtool pkg-config autoconf automake texinfo git clone https://git.code.sf.net/p/openocd/code openocd-code cd openocd-code ./bootstrap ./configure sudo make install which openocd sudo cp contrib/60-openocd.rules /etc/udev/rules.d/ sudo udevadm control --reload-rules {un plug/plug-in stm32 Discovery} ``` 2. Plug in a stm32 development board and test: ``` $ openocd -f board/stm32f4discovery.cfg Open On-Chip Debugger 0.10.0+dev-00796-ga4ac5615 (2019-04-12-21:58) Licensed under GNU GPL v2 For bug reports, read http://openocd.org/doc/doxygen/bugs.html Info : The selected transport took over low-level target control. The results might differ compared to plain JTAG/SWD adapter speed: 2000 kHz adapter_nsrst_delay: 100 none separate srst_only separate srst_nogate srst_open_drain connect_deassert_srst Info : Listening on port 6666 for tcl connections Info : Listening on port 4444 for telnet connections Info : clock speed 2000 kHz Info : STLINK V2J33S0 (API v2) VID:PID 0483:3748 Info : Target voltage: 2.871855 Info : stm32f4x.cpu: hardware has 6 breakpoints, 4 watchpoints Info : Listening on port 3333 for gdb connections ``` ## st-util (deprecated) Most distributions don't have stutil included. Easiest way is to build it from the github sources. The source can be downloaded from: (https://github.com/texane/stlink) After compiling it can be installed anywhere, as long as it is in the PATH. The program is in `build/Release/src/gdbserver/st-util`. The newlib stdio functions (open, fread, fwrite, flush, fclose, etc.) send some requests that this tool does not recognize and those messages will appear in the output of st-util. They can be ignored. 1. Build from github ```Bash git clone https://github.com/texane/stlink cd stlink make sudo cp ./etc/udev/rules.d/49-stlinkv2.rules /etc/udev/rules.d/ sudo udevadm control --reload-rules ``` 3. Add the st-util util to your $PATH, if not installed in the default location ( /usr/local/bin ) 4. Plug in a stm32 development board and test: ``` $ st-util st-util 1.4.0-47-gae717b9 2018-12-29T06:52:16 INFO usb.c: -- exit_dfu_mode 2018-12-29T06:52:16 INFO common.c: Loading device parameters.... 2018-12-29T06:52:16 INFO common.c: Device connected is: F4 device, id 0x10016413 2018-12-29T06:52:16 INFO common.c: SRAM size: 0x30000 bytes (192 KiB), Flash: 0x100000 bytes (1024 KiB) in pages of 16384 bytes 2018-12-29T06:52:16 INFO gdb-server.c: Chip ID is 00000413, Core ID is 2ba01477.G 2018-12-29T06:52:16 INFO gdb-server.c: Listening at *:4242... ``` # vi:set ts=3 et sts=3: codec2-1.0.1/stm32/unittest/lib/000077500000000000000000000000001412132000500162315ustar00rootroot00000000000000codec2-1.0.1/stm32/unittest/lib/octave/000077500000000000000000000000001412132000500175125ustar00rootroot00000000000000codec2-1.0.1/stm32/unittest/lib/octave/ofdm_demod_check.m000066400000000000000000000025341412132000500231260ustar00rootroot00000000000000% ofdm_demod_check.m % % Load results from reference and stm32 run and compare addpath("../../lib/octave") % Constants (would prefer paramters) err_limit = 0.001; % Reference load("ofdm_demod_ref_log.txt"); % DUT load("ofdm_demod_log.txt"); % Eliminate trailing rows of all zeros (unused) sums_ref = sum(payload_syms_log_c, 2); last_ref = find(sums_ref, 1, 'last'); sums_dut = sum(payload_syms_log_stm32, 2); last_dut = find(sums_dut, 1, 'last'); last_all = max(last_ref, last_dut); syms_ref = payload_syms_log_c(1:last_all,:); syms_dut = payload_syms_log_stm32(1:last_all,:); % error values err = abs(syms_ref - syms_dut); err_max = max(max(err)); printf("MAX_ERR %f\n", err_max); err_vals = err - err_limit; err_vals(err_vals<0) = 0; errors = err_vals > 0; num_errors = nnz(errors); %% TODO, print errors info (count locations,...) if (num_errors > 0) printf("%d ERRORS\n", num_errors); else printf("PASSED\n"); end % EVM evm = sqrt(meansq(err, 2)); evm_avg = mean(evm); printf("AVG_EVM %f\n", evm_avg); evm_max = max(evm); printf("MAX_EVM %f\n", evm_max); % Standard deviation sdv = std(err, 0, 2); sdv_max = max(sdv); printf("MAX_SDV %f\n", sdv_max); % Plot figure(1) figure(1, "visible", true) scatter(real(syms_ref), imag(syms_ref), "g", "+") hold on scatter(real(syms_dut), imag(syms_dut), "b", "o") print(1, "syms_plot.png", "-dpng") hold off codec2-1.0.1/stm32/unittest/lib/python/000077500000000000000000000000001412132000500175525ustar00rootroot00000000000000codec2-1.0.1/stm32/unittest/lib/python/sum_profiles.py000077500000000000000000000030421412132000500226350ustar00rootroot00000000000000#!/usr/bin/env python3 """ sum_profiles """ def sum_profiles(fin, frames): data = {} total_time = 0.0 active = False for line in fin: if (not active): active = line.startswith("Start Profile Data") elif line.startswith("End Profile Data"): active = False else: words = line.strip().split() if (len(words) == 3): part = words[0] time_str = words[1] time = float(time_str) total_time += time if (not part in data): data[part] = 0.0 data[part] += time # end else # end for line data_sorted = [(p, data[p]) for p in sorted(data, key=data.get, reverse=True)] print("Total time = {:.1f} ms".format(total_time)) if (frames): print("{:.1f} ms per frame".format(total_time / frames)) print("") for part, time in data_sorted: percent = int(100*(time / total_time)) print('{:2d}% - {:10.3f} - {}'.format(percent, time, part)) return(data) # end sum_profiles() ######################################## if __name__ == "__main__": import argparse #### Options argparser = argparse.ArgumentParser() argparser.add_argument("-f", "--frames", action="store", type=int, default=0, help="Number of frames") argparser.add_argument("file", metavar="FILE", help="file to read") args = argparser.parse_args() fin = open(args.file, "r") sum_profiles(fin, args.frames) codec2-1.0.1/stm32/unittest/lib/ut_travis.enc000066400000000000000000000006201412132000500207360ustar00rootroot00000000000000\|4Aj1 j&tyԖBR2خsa e Lؠ{{6_%eF`*YH{{xnR0wM#qe: _9 /+G 21B%+ZY؏2/}^t("(#Y7sJ[*Ȁ|2˜ֺ" _1t+tqaj!dvr+rg F[U{*U_Wl ~$pC+X>1 0 196{}I)/*pHg'O t$,x{w (_Sz2B;ve""codec2-1.0.1/stm32/unittest/scripts/000077500000000000000000000000001412132000500171525ustar00rootroot00000000000000codec2-1.0.1/stm32/unittest/scripts/check_ram_limit000077500000000000000000000013571412132000500222200ustar00rootroot00000000000000#!/bin/bash # # Compare the amount of RAM used in all stm32 programs to a # threshold. The idea is trap changes to x86 code that will # cause out of memory issues on the stm32 # # This can be run from the command line or via a ctest, it doesn't # require stm32 hardware. # # usage: # cd ~/codec2/stm32/build_stm32 # ./check_ram_limit [threshold] echo "Checking end of used RAM in all stm32 programs......." thresh=0x20006000 [[ $# -gt 0 ]] && thresh=$1 map_files=`find . -name '*.map'` for f in $map_files do ram_used=`cat $f | grep bss_end | sed 's/^.*\(0x[a-f0-9]*\).*/\1/'` printf "%-40s 0x%x\n" $f $ram_used [[ $ram_used -gt $thresh ]] && echo -e "\n ***** FAIL - LIMIT is $thresh !!! *****\n" && exit 1 done echo "PASS" exit 0 codec2-1.0.1/stm32/unittest/scripts/kill_run_stm32_tst000077500000000000000000000003261412132000500226420ustar00rootroot00000000000000#!/bin/bash list_descendants () { local children=$(ps -o pid= --ppid "$1") for pid in $children do list_descendants "$pid" done echo $children } kill $(list_descendants $(pidof -x run_stm32_tst)) codec2-1.0.1/stm32/unittest/scripts/plot_ofdm_demod_syms000077500000000000000000000027411412132000500233120ustar00rootroot00000000000000#!/usr/bin/env python3 """ plot_ofdm_demod_syms Plot QPSK constelations of reference demods. Later read stm32 log...... """ import numpy as np import os import sys ############################################################################## # Read Octave text file ############################################################################## def read_octave_text(fname): data = {} with open(fname, "r") as f: for line in f: if (line[0:8] == '# name: '): var = line.split()[2] print('found {}'.format(var)) line = next(f) if (line.startswith('# type: matrix')): line = next(f) rows = int(line.split()[2]) line = next(f) cols = int(line.split()[2]) print(' matrix({}, {})'.format(rows, cols)) data[var] = np.empty((rows, cols), np.float32) # Read rows one at a time for row in range(rows): line = next(f) data[var][row] = np.fromstring(line, np.float32, cols, ' ') # end while True # end with return(data) ############################################################################## # Main ############################################################################## ### Text not supported!!! ref_data = sio.loadmat('ofdm_demod_ref_log.mat') ref_data = read_octave_text('ofdm_demod_ref_log.txt') import pprint pp = pprint.PrettyPrinter(indent=4) pp.pprint(ref_data) codec2-1.0.1/stm32/unittest/scripts/run_all_codec2_tests000077500000000000000000000011271412132000500231760ustar00rootroot00000000000000#!/bin/bash # # run_all_codec2_tests # Find the scripts directory SCRIPTS="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null && pwd )" # Setup common variables source $SCRIPTS/run_tests_common.sh declare -i Fails=0 run_stm32_tst tst_codec2_enc 1300 "$@" || Fails+=1 run_stm32_tst tst_codec2_enc 700C "$@" || Fails+=1 run_stm32_tst tst_codec2_dec 1300 "$@" || Fails+=1 run_stm32_tst tst_codec2_dec 700C "$@" || Fails+=1 if (( $Fails == 0 )); then echo -e "\nAll Codec2 Tests PASSED" else echo -e "\n$Fails Codec2 Tests FAILED!" fi exit $Fails # vi:set ts=4 et sts=4: codec2-1.0.1/stm32/unittest/scripts/run_all_ldpc_tests000077500000000000000000000010061412132000500227550ustar00rootroot00000000000000#!/bin/bash # # run_all_ldpc_tests # Find the scripts directory SCRIPTS="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null && pwd )" # Setup common variables source $SCRIPTS/run_tests_common.sh declare -i Fails=0 run_stm32_tst tst_ldpc_enc "$@" || Fails+=1 run_stm32_tst tst_ldpc_dec ideal "$@" || Fails+=1 run_stm32_tst tst_ldpc_dec noise "$@" || Fails+=1 if (( $Fails == 0 )); then echo -e "\nAll LDPC Tests PASSED" else echo -e "\n$Fails LDPC Tests FAILED!" fi exit $Fails # vi:set ts=4 et sts=4: codec2-1.0.1/stm32/unittest/scripts/run_all_ofdm_tests000077500000000000000000000015211412132000500227620ustar00rootroot00000000000000#!/bin/bash # # run_all_ofdm_tests # Find the scripts directory SCRIPTS="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null && pwd )" # Setup common variables source $SCRIPTS/run_tests_common.sh declare -i Fails=0 run_stm32_tst tst_ofdm_mod plain "$@" || Fails+=1 run_stm32_tst tst_ofdm_mod ldpc "$@" || Fails+=1 run_stm32_tst tst_ofdm_demod quick "$@" || Fails+=1 run_stm32_tst tst_ofdm_demod ideal "$@" || Fails+=1 run_stm32_tst tst_ofdm_demod AWGN "$@" || Fails+=1 run_stm32_tst tst_ofdm_demod fade "$@" || Fails+=1 run_stm32_tst tst_ofdm_demod ldpc "$@" || Fails+=1 run_stm32_tst tst_ofdm_demod ldpc_AWGN "$@" || Fails+=1 run_stm32_tst tst_ofdm_demod ldpc_fade "$@" || Fails+=1 if (( $Fails == 0 )); then echo -e "\nAll ODFM Tests PASSED" else echo -e "\n$Fails ODFM Tests FAILED!" fi exit $Fails # vi:set ts=4 et sts=4: codec2-1.0.1/stm32/unittest/scripts/run_all_stm32_tests000077500000000000000000000007471412132000500230160ustar00rootroot00000000000000#!/bin/bash # # run_all_codec2_tests # Find the scripts directory SCRIPTS="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null && pwd )" # Setup common variables source $SCRIPTS/run_tests_common.sh declare -i Fails=0 run_all_codec2_tests "$@" || Fails+=1 run_all_ofdm_tests "$@" || Fails+=1 run_all_ldpc_tests "$@" || Fails+=1 if (( $Fails == 0 )); then echo -e "\nAll STM32 Tests PASSED" else echo -e "\n$Fails STM32 Tests FAILED!" fi exit $Fails # vi:set ts=4 et sts=4: codec2-1.0.1/stm32/unittest/scripts/run_stm32_prog000077500000000000000000000043011412132000500217610ustar00rootroot00000000000000#!/bin/bash ####################################### # Parse command line options # Options (starting with "--") are stored in $ARGS. # Non-options are taken as the test name (last one sticks). declare -A ARGS for arg in "$@"; do if [[ ${arg} == --* ]] ; then ARGS[${arg}]=true else ELF=${arg} fi done # Add the parameters for connecting via ssh to # your machine with an stm32 connected to # UT_SSH_PARAMS # e.g. # UT_SSH_PARAMS="-p 22 user@host_with_stm32" if [ -z "$UT_SSH_PARAMS" ]; then UT_SSH="" UT_SLEEP=${UT_SLEEP:=1} UI_SH_FIO="disable" else UT_SSH="ssh -f -L 3333:localhost:3333 $UT_SSH_PARAMS" UT_SLEEP=${UT_SLEEP:=4} UT_SH_FIO="enable" fi rm -f gdb_cmds if [ ! ${ARGS[--st-util]+_} ] ; then # OpenOCD if [ -n "$UT_SSH" ]; then cat <<-EEOOFF >> gdb_cmds shell ${UT_SSH} killall -q openocd\; sleep 1\; openocd -d0 -f board/stm32f4discovery.cfg 2> >(tee stderr.log >&2) | tee stdout.log & EEOOFF else cat <<-EEOOFF >> gdb_cmds shell killall -q openocd shell openocd -d0 -f board/stm32f4discovery.cfg 2> >(tee stderr.log >&2) | tee stdout.log & EEOOFF fi cat <<-EEOOFF >> gdb_cmds shell sleep ${UT_SLEEP} target remote :3333 monitor arm semihosting enable monitor arm semihosting_fileio $UT_SH_FIO EEOOFF SHUTDOWN="monitor shutdown" else # ST-Util echo "---------------------- STARTING gdb/st-util ------------------------------" cat <<-EEOOFF >> gdb_cmds shell st-util --verbose=0 --semihosting 2>stutil_stderr.log >stutil_stdout.log & shell sleep ${UT_SLEEP} target remote :4242 EEOOFF SHUTDOWN="" fi if [ ! ${ARGS[--noload]+_} ] ; then cat <<-EEOOFF >> gdb_cmds load EEOOFF fi cat <<-EEOOFF >> gdb_cmds monitor reset halt monitor adapter speed 4000 break EndofMain break abort EEOOFF if [ -z ${ARGS[--debug]+_} ] ; then cat <<-EEOOFF >> gdb_cmds shell printf "\n----------------------------STARTING PROGRAM-------------------------\n\n" continue set confirm off $SHUTDOWN quit EEOOFF arm-none-eabi-gdb -batch -x gdb_cmds ${ELF} else arm-none-eabi-gdb -x gdb_cmds ${ELF} fi codec2-1.0.1/stm32/unittest/scripts/run_stm32_tst000077500000000000000000000031011412132000500216210ustar00rootroot00000000000000#!/bin/bash # # run_stm32_tst [--noload] [--st-util] # Find the scripts directory SCRIPTS="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null && pwd )" # Setup common variables source $SCRIPTS/run_tests_common.sh declare -i Fails=0 ##################################################################### LOAD=${ARGS[--noload]:+--noload} STUTIL=${ARGS[--st-util]:+--st-util} RUN_DIR="${UNITTEST_BASE}/test_run/${FULL_TEST_NAME}" echo -e "test full name: ${FULL_TEST_NAME}" setup_common "${RUN_DIR}" if [ ! -f "${SCRIPTS}/${TEST}_setup" ]; then echo -e "\nERROR: scripts/${TEST}_setup not found!" echo "Test name correct?" echo "valid test names:" cd scripts; ls tst*setup | sed 's/_setup//' exit 1 fi # Call setup - run - check scripts ${TEST}_setup ${TEST} ${TEST_OPT} --clean || { echo "ERROR in ${TEST}_setup! Exiting..."; exit 1; } cd "${RUN_DIR}" run_stm32_prog ${UNITTEST_BIN}/${TEST}.elf ${LOAD} ${OPENOCD} | tee gdb.log [ ! ${PIPESTATUS[0]} -eq 0 ] && { echo "ERROR in run_stm32_prog! Exiting..."; exit 1; } # stop now if we see an assert() fire, no point running check phase grep -q assertion gdb.log && exit 1 ${TEST}_check ${TEST} ${TEST_OPT} 2>&1 | tee check.log if [ ! "${PIPESTATUS[0]}" -eq 0 ]; then let Fails=($Fails + 1) fi sleep 5 # Delay for st-util to close if (( $Fails == 0 )); then echo -e "\nTest ${FULL_TEST_NAME} PASSED" else echo -e "\nTest ${FULL_TEST_NAME} FAILED!" cat ${RUN_DIR}/check.log echo -e "\n -> look at log files in: ${RUN_DIR}:" ls ${RUN_DIR} fi exit $Fails # vi:set ts=4 et sts=4: codec2-1.0.1/stm32/unittest/scripts/run_tests_common.sh000066400000000000000000000042051412132000500231050ustar00rootroot00000000000000# This file must be "sourced" from a parent shell! # # run_tests_common.sh # # This is a collection of common variable settings for stm32 unit tests. # # The variable $SCRIPTS must be set when this is called. if [ -z ${SCRIPTS+x} ]; then echo "Error, run_tests_common.sh requires that \$SCRIPTS be set!" exit 1 fi ####################################### # Set default directories based on the parent of the SCRIPTS variable. set -a #UNITTEST_BASE - Location of STM32 Unittests and files UNITTEST_BASE="$( cd "$( dirname "${SCRIPTS}" )" >/dev/null && pwd )" # STM32_BASE - Base directory of Stm32 files STM32_BASE="$( cd "$( dirname "${UNITTEST_BASE}" )" >/dev/null && pwd )" # STM32_BUILD - Build directory of Stm32 files STM32_BUILD="${STM32_BASE}/build_stm32" # UNITTEST_BIN - Location of STM32 unittest binaries UNITTEST_BIN="${STM32_BUILD}/unittest/src" # CODEC2_BASE - Base directory of Codec2 CODEC2_BASE="$( cd "$( dirname "${STM32_BASE}" )" >/dev/null && pwd )" # CODEC2_BIN - Location of x86 utiliy programs for Codec2 CODEC2_BIN="${CODEC2_BASE}/build_linux/src" # CODEC2_UTST - Location of x86 utiliy programs for Codec2 unittest CODEC2_UTST="${CODEC2_BASE}/build_linux/unittest" set +a ####################################### # Add directories to PATH export PATH=${PATH}:${SCRIPTS}:${CODEC2_BIN}:${CODEC2_UTST} ####################################### # Parse command line options # Options (starting with "--") are stored in $ARGS. # Non-options are taken as the test name, then as a test option (optional) declare -A ARGS unset TEST unset TEST_OPT for arg in "$@"; do if [[ ${arg} == --* ]] ; then ARGS[${arg}]=true else if [ -z ${TEST+x} ]; then TEST=${arg} else TEST_OPT=${arg} fi fi done # Prepend the common test name to the option if given if [ -n "$TEST_OPT" ] ; then FULL_TEST_NAME="${TEST}_${TEST_OPT}" else FULL_TEST_NAME="${TEST}" fi ####################################### # A function for setup setup_common () { if [ ${ARGS[--clean]+_} ] ; then if [ -d "${1}" ] ; then rm -rf "${1}"; fi fi # Make run directory if needed if [ ! -d "${1}" ] ; then mkdir -p "${1}"; fi } codec2-1.0.1/stm32/unittest/scripts/setup.sh000066400000000000000000000010561412132000500206500ustar00rootroot00000000000000# This file must be "sourced" from a parent shell! # # setup.sh # # This is a collection of common variable settings for manually running # stm32 unit tests. # # This assumes it is called from the "stm32/unittests" directory!!! SCRIPTS="${PWD}/scripts" # Setup common variables source $SCRIPTS/run_tests_common.sh ####################################### # Add directories to PATH(s) export PATH=${SCRIPTS}:${PATH} export PATH=${CODEC2_BIN}:${CODEC2_UTST}:${CODEC2_UTST_BIN}:${CODEC2_SCRIPT}:${PATH} export LD_LIBRARY_PATH=${CODEC2_BIN}:${LD_LIBRARY_PATH} codec2-1.0.1/stm32/unittest/scripts/stm_stderr.txt000066400000000000000000000000561412132000500221020ustar00rootroot00000000000000semihosting test - stderr Error 2 opening fin codec2-1.0.1/stm32/unittest/scripts/stm_stdout.txt000066400000000000000000000000321412132000500221130ustar00rootroot00000000000000semihosting test - stdout codec2-1.0.1/stm32/unittest/scripts/sum_profiles000066400000000000000000000024511412132000500216060ustar00rootroot00000000000000#!/usr/bin/env python3 """ sum_profiles """ def sum_profiles(fin, frames): data = {} total_time = 0.0 for line in fin: words = line.strip().split() if (len(words) == 3): part = words[0] time_str = words[1] time = float(time_str) total_time += time if (not part in data): data[part] = 0.0 data[part] += time data_sorted = [(p, data[p]) for p in sorted(data, key=data.get, reverse=True)] print("Total time = {:.1f} ms".format(total_time)) if (frames): print("{:.1f} per frame".format(total_time / args.frames)) print("") for part, time in data_sorted: percent = int(100*(time / total_time)) print('{:2d}% - {:10.3f} - {}'.format(percent, time, part)) return(data) # end sum_profiles() ######################################## if __name__ == "__main__": import argparse #### Options argparser = argparse.ArgumentParser() argparser.add_argument("-f", "--frames", action="store", type=int, default=0, help="Number of frames") argparser.add_argument("file", metavar="FILE", help="file to read") args = argparser.parse_args() fin = open(args.file, "r") sum_profiles(fin, args.frames) codec2-1.0.1/stm32/unittest/scripts/tst_api_demod_check000077500000000000000000000167611412132000500230630ustar00rootroot00000000000000#!/bin/bash # # tst_api_demod_check # # Setup input and reference data for one of several versions of this test. # Find the scripts directory SCRIPTS="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null && pwd )" # Setup common variables source $SCRIPTS/run_tests_common.sh # RUN_DIR - Directory where test will be run RUN_DIR="${UNITTEST_BASE}/test_run/${FULL_TEST_NAME}" # Call common setup function to make the directory setup_common "${RUN_DIR}" # Change to test directory cd "${RUN_DIR}" # way of performing a rough comparsion of two output speech files that are not exactly the same function compare_energy() { energy_ref=$(python -c "import numpy as np; x=np.fromfile(\"ref_demod.raw\",dtype=\"int16\").astype(float); print(10*np.log10(np.dot(x,x)))") energy_target=$(python -c "import numpy as np; x=np.fromfile(\"stm_out.raw\",dtype=\"int16\").astype(float); print(10*np.log10(np.dot(x,x)))") printf "ref energy: %f target energy: %f\n" $energy_ref $energy_target python -c "import sys; sys.exit(1) if abs($energy_ref-$energy_target) < 1 else sys.exit(0)" if [[ $? -eq 1 ]]; then echo "energy compare OK"; else echo "energy compare BAD"; let Fails=($Fails + 1) fi } ##################################################################### ## Test CHECK actions: declare -i Fails=0 case "${TEST_OPT}" in 700D_plain_test) echo "Check reference decode" p1=$(grep '^BER\.*: 0.000' ref_gen.log | wc -l) p2=$(grep '^Coded BER: 0.000' ref_gen.log | wc -l) if [[ $p1 -eq 1 && $p2 -eq 1 ]]; then echo "OK"; else echo "BAD"; let Fails=($Fails + 1) fi # echo "Check target decode" p1=$(grep '^BER\.*: 0.000' stderr.log | wc -l) p2=$(grep '^Coded BER: 0.000' stderr.log | wc -l) if [[ $p1 -eq 1 && $p2 -eq 1 ]]; then echo "OK"; else echo "BAD"; let Fails=($Fails + 1) fi ;; 700D_AWGN_test) echo "Check reference decode" uber_ref=$(cat ref_gen.log | sed -n "s/^BER.*: \([0-9..]*\).*Tbits.*/\1/p") cber_ref=$(cat ref_gen.log | sed -n "s/^Coded BER.*: \([0-9..]*\).*Tbits.*/\1/p") printf "REF uncoded BER: %f coded BER: %f\n" $uber_ref $cber_ref # As per notes in tst_api_demod_setup, coded BER is unreliable # for such a short test, so we'll just sanity check the # reference uncoded BER here. Bash can't compare floats # .... so use return code of some python script python -c "import sys; sys.exit(1) if $uber_ref < 0.1 else sys.exit(0)" if [[ $? -eq 1 ]]; then echo "OK"; else echo "BAD"; let Fails=($Fails + 1) fi echo "Check target decode" uber_target=$(cat stderr.log | sed -n "s/^BER.*: \([0-9..]*\).*Tbits.*/\1/p") cber_target=$(cat stderr.log | sed -n "s/^Coded BER.*: \([0-9..]*\).*Tbits.*/\1/p") printf "TARGET uncoded BER: %f coded BER: %f\n" $uber_target $cber_target python -c "import sys; sys.exit(1) if $uber_target < 0.1 and abs($cber_ref-$cber_target) < 0.01 else sys.exit(0)" if [[ $? -eq 1 ]]; then echo "OK"; else echo "BAD"; let Fails=($Fails + 1) fi ;; 700D_AWGN_codec) # 1/ The two output files sound OK, and when plotted look very # similar, but they don't match on a sample-sample basis. # 2/ Suspect some small state difference, or perhaps random # number generator diverging, sampling codec2_rand() at the # end of the x86 and stm32 test programs might show up any # differences. # 3/ At this stage - we can't make sample by sample automatic # tests work. However there is value in running the test # to ensure no asserts are hit and the code doesn't crash # (e.g. due to an out of memory issues). A simple energy # comparison is used on the output speech files, which # will trap any large errors. # 4/ We can also manually evaulate the ouput decoded speech by # listening to the output speech files. compare_energy; # make sure execution time stays within bounds execution_time=mktmp cat stdout.log | sed -n "s/.*freedv_rx \([0-9..]*\) msecs/\1/p" > $execution_time python -c "import sys; import numpy as np; x=np.loadtxt(\"$execution_time\"); print(\"execution time max:: %5.2f mean: %5.2f ms\" % (np.max(x), np.mean(x))); sys.exit(1) if np.max(x) < 80.0 else sys.exit(0)" if [[ $? -eq 1 ]]; then echo "execution time OK"; else echo "BAD"; let Fails=($Fails + 1) fi ;; 700E_plain_test) echo "Check reference decode" p1=$(grep '^BER\.*: 0.000' ref_gen.log | wc -l) p2=$(grep '^Coded BER: 0.000' ref_gen.log | wc -l) if [[ $p1 -eq 1 && $p2 -eq 1 ]]; then echo "OK"; else echo "BAD"; let Fails=($Fails + 1) fi # echo "Check target decode" p1=$(grep '^BER\.*: 0.000' stderr.log | wc -l) p2=$(grep '^Coded BER: 0.000' stderr.log | wc -l) if [[ $p1 -eq 1 && $p2 -eq 1 ]]; then echo "OK"; else echo "BAD"; let Fails=($Fails + 1) fi ;; 700E_AWGN_test) echo "Check reference decode" uber_ref=$(cat ref_gen.log | sed -n "s/^BER.*: \([0-9..]*\).*Tbits.*/\1/p") cber_ref=$(cat ref_gen.log | sed -n "s/^Coded BER.*: \([0-9..]*\).*Tbits.*/\1/p") printf "REF uncoded BER: %f coded BER: %f\n" $uber_ref $cber_ref # As per notes in tst_api_demod_setup, coded BER is unreliable # for such a short test, so we'll just sanity check the # reference uncoded BER here. Bash can't compare floats # .... so use return code of some python script python -c "import sys; sys.exit(1) if $uber_ref < 0.1 else sys.exit(0)" if [[ $? -eq 1 ]]; then echo "OK"; else echo "BAD"; let Fails=($Fails + 1) fi echo "Check target decode" uber_target=$(cat stderr.log | sed -n "s/^BER.*: \([0-9..]*\).*Tbits.*/\1/p") cber_target=$(cat stderr.log | sed -n "s/^Coded BER.*: \([0-9..]*\).*Tbits.*/\1/p") printf "TARGET uncoded BER: %f coded BER: %f\n" $uber_target $cber_target python -c "import sys; sys.exit(1) if $uber_target < 0.1 and abs($cber_ref-$cber_target) < 0.01 else sys.exit(0)" if [[ $? -eq 1 ]]; then echo "OK"; else echo "BAD"; let Fails=($Fails + 1) fi ;; 700E_AWGN_codec) # 1/ The two output files sound OK, and when plotted look very # similar, but they don't match on a sample-sample basis. # 2/ Suspect some small state difference, or perhaps random # number generator diverging, sampling codec2_rand() at the # end of the x86 and stm32 test programs might show up any # differences. # 3/ At this stage - we can't make sample by sample automatic # tests work. However there is value in running the test # to ensure no asserts are hit and the code doesn't crash # (e.g. due to an out of memory issues). A simple energy # comparison is used on the output speech files, which # will trap any large errors. # 4/ We can also manually evaulate the ouput decoded speech by # listening to the output speech files. compare_energy; # make sure execution time stays within bounds execution_time=mktmp cat stdout.log | sed -n "s/.*freedv_rx \([0-9..]*\) msecs/\1/p" > $execution_time python -c "import sys; import numpy as np; x=np.loadtxt(\"$execution_time\"); print(\"execution time max:: %5.2f mean: %5.2f ms\" % (np.max(x), np.mean(x))); sys.exit(1) if np.max(x) < 80.0 else sys.exit(0)" if [[ $? -eq 1 ]]; then echo "execution time OK"; else echo "BAD"; let Fails=($Fails + 1) fi ;; 1600_plain_codec) compare_energy; ;; *) printf "ERROR: invalid test option. Valid options are:\n 700D_plain_test\n 700D_AWGN_test\n 700D_plain_codec\n 1600_plain_codec\n" exit 1 esac if (( $Fails == 0 )); then echo -e "\nTest PASSED" else echo -e "\nTest FAILED!" fi exit $Fails codec2-1.0.1/stm32/unittest/scripts/tst_api_demod_setup000077500000000000000000000120451412132000500231350ustar00rootroot00000000000000#!/bin/bash # # tst_api_demod_setup # # Setup input and reference data for one of several versions of this test. # Find the scripts directory SCRIPTS="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null && pwd )" # Setup common variables source $SCRIPTS/run_tests_common.sh # RUN_DIR - Directory where test will be run RUN_DIR="${UNITTEST_BASE}/test_run/${FULL_TEST_NAME}" # Call common setup function to make the directory setup_common "${RUN_DIR}" # Change to test directory cd "${RUN_DIR}" ##################################################################### ## Test SETUP actions: case "${TEST_OPT}" in 700D_plain_test ) # Config is , echo "71000010" > stm_cfg.txt # # Copy N frames of a raw audio file to stm_in.raw. dd bs=1280 count=100 if=../../../../raw/hts1.raw of=spch_in.raw \ > setup.log 2>&1 freedv_tx 700D spch_in.raw stm_in.raw --testframes --txbpf 0 \ >> setup.log 2>&1 # # Reference freedv_rx 700D stm_in.raw ref_demod.raw -v --testframes \ > ref_gen.log 2>&1 ;; 700D_AWGN_test ) # Config is , echo "71000010" > stm_cfg.txt # # Copy N frames of a raw audio file to stm_in.raw. dd bs=1280 count=96 if=../../../../raw/hts1.raw of=spch_in.raw \ > setup.log 2>&1 freedv_tx 700D spch_in.raw mod_bits.raw --testframes --txbpf 0 \ >> setup.log 2>&1 cohpsk_ch mod_bits.raw stm_in.raw -20 --Fs 8000 -f -5 2>&1 | tee setup.log # Reference: - When the OFDM modem initially syncs, it often # has residual freq offset that causes abnormally # high LDPC decoder bit errors forthe first few # seconds. This leads to a high coded BER being # reported for short duration tests. This # settles down after a few seconds, and we get # the expected coded BER when averaging over # longer periods (e.g. 60s). However this # particular test is necessarily short due to the # slow speed of the semihosting system. It is # therefore sufficient to check that the # performance is similar to the x86 C verison, # rather than expecting a low coded BER for a # short run. freedv_rx 700D stm_in.raw ref_demod.raw -v --testframes 2>&1 --discard | tee ref_gen.log ;; 700D_AWGN_codec ) # Config is , echo "70000020" > stm_cfg.txt # # Copy N frames of a raw audio file to stm_in.raw. dd bs=1280 count=48 if=../../../../raw/hts1.raw of=spch_in.raw \ > setup.log 2>&1 freedv_tx 700D spch_in.raw mod_bits.raw --txbpf 0 \ >> setup.log 2>&1 # # Reference - give it a hard time with some noise to exercise the LDPC codec and get us to max CPU cohpsk_ch mod_bits.raw stm_in.raw -20 --Fs 8000 -f -5 2>&1 | tee setup.log freedv_rx 700D stm_in.raw ref_demod.raw -v \ > ref_gen.log 2>&1 ;; 700E_plain_test ) # Config is , echo "81000010" > stm_cfg.txt # # Copy N frames of a raw audio file to stm_in.raw. dd bs=1280 count=100 if=../../../../raw/hts1.raw of=spch_in.raw \ > setup.log 2>&1 freedv_tx 700E spch_in.raw stm_in.raw --testframes --txbpf 1 \ >> setup.log 2>&1 # # Reference freedv_rx 700E stm_in.raw ref_demod.raw -v --testframes \ > ref_gen.log 2>&1 ;; 700E_AWGN_test ) # Config is , echo "81000010" > stm_cfg.txt # # Copy N frames of a raw audio file to stm_in.raw. dd bs=1280 count=96 if=../../../../raw/hts1.raw of=spch_in.raw \ > setup.log 2>&1 freedv_tx 700E spch_in.raw mod_bits.raw --testframes --txbpf 1 \ >> setup.log 2>&1 cohpsk_ch mod_bits.raw stm_in.raw -22 --Fs 8000 -f -5 2>&1 | tee setup.log freedv_rx 700E stm_in.raw ref_demod.raw -v --testframes 2>&1 --discard | tee ref_gen.log ;; 700E_AWGN_codec ) # Config is , echo "80000020" > stm_cfg.txt # # Copy N frames of a raw audio file to stm_in.raw. dd bs=1280 count=48 if=../../../../raw/hts1.raw of=spch_in.raw \ > setup.log 2>&1 freedv_tx 700E spch_in.raw mod_bits.raw --txbpf 1 \ >> setup.log 2>&1 # # Reference - give it a hard time with some noise to exercise the LDPC codec and get us to max CPU cohpsk_ch mod_bits.raw stm_in.raw -20 --Fs 8000 -f -5 2>&1 | tee setup.log freedv_rx 700E stm_in.raw ref_demod.raw -v \ > ref_gen.log 2>&1 ;; 1600_plain_codec ) # Config is , echo "00000010" > stm_cfg.txt # # Copy N frames of a raw audio file to stm_in.raw. dd bs=320 count=100 if=../../../../raw/hts1.raw of=spch_in.raw > setup.log 2>&1 freedv_tx 1600 spch_in.raw stm_in.raw >> setup.log 2>&1 # # Reference freedv_rx 1600 stm_in.raw ref_demod.raw -v \ > ref_gen.log 2>&1 ;; *) printf "ERROR: invalid test option. Valid options are:\n 700[DE]_plain_test\n 700[DE]_AWGN_test\n 700[DE]_AWGN_codec\n 1600_plain_codec\n" exit 1 ;; esac codec2-1.0.1/stm32/unittest/scripts/tst_api_mod_check000077500000000000000000000051471412132000500225460ustar00rootroot00000000000000#!/bin/bash # # tst_api_mod_check # # Setup input and reference data for one of several versions of this test. # Find the scripts directory SCRIPTS="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null && pwd )" # Setup common variables source $SCRIPTS/run_tests_common.sh # RUN_DIR - Directory where test will be run RUN_DIR="${UNITTEST_BASE}/test_run/${FULL_TEST_NAME}" # Call common setup function to make the directory setup_common "${RUN_DIR}" # Change to test directory cd "${RUN_DIR}" ##################################################################### ## Test CHECK actions: declare -i Fails=0 case "${TEST_OPT}" in 700D_TEST) # echo -e "\nReference check" if freedv_rx 700D ref_mod.raw ref_rx.raw --testframes; then echo "Passed" else echo "Failed" let Fails=($Fails + 1) fi # echo -e "\nTarget check" if freedv_rx 700D stm_out.raw stm_rx.raw --testframes; then echo "Passed" else echo "Failed" let Fails=($Fails + 1) fi # echo -e "\nCompare output binary data" if compare_ints -s -b2 -t4 ref_mod.raw stm_out.raw; then echo "Passed" else echo "Failed" let Fails=($Fails + 1) fi ;; 700D_CODEC) # echo -e "\nCompare output binary data" if compare_ints -s -b2 -t4 ref_mod.raw stm_out.raw; then echo "Passed" else echo "Failed" let Fails=($Fails + 1) fi ;; 700E_TEST) # echo -e "\nReference check" if freedv_rx 700E ref_mod.raw ref_rx.raw --testframes; then echo "Passed" else echo "Failed" let Fails=($Fails + 1) fi # echo -e "\nTarget check" if freedv_rx 700E stm_out.raw stm_rx.raw --testframes; then echo "Passed" else echo "Failed" let Fails=($Fails + 1) fi # echo -e "\nCompare output binary data" if compare_ints -s -b2 -t4 ref_mod.raw stm_out.raw; then echo "Passed" else echo "Failed" let Fails=($Fails + 1) fi ;; 700E_CODEC) # echo -e "\nCompare output binary data" if compare_ints -s -b2 -t4 ref_mod.raw stm_out.raw; then echo "Passed" else echo "Failed" let Fails=($Fails + 1) fi ;; esac if (( $Fails == 0 )); then echo -e "\nTest PASSED" else echo -e "\nTest FAILED!" fi exit $Fails codec2-1.0.1/stm32/unittest/scripts/tst_api_mod_setup000077500000000000000000000043471412132000500226320ustar00rootroot00000000000000#!/bin/bash # # tst_api_mod_setup # # Setup input and reference data for one of several versions of this test. # Find the scripts directory SCRIPTS="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null && pwd )" # Setup common variables source $SCRIPTS/run_tests_common.sh # RUN_DIR - Directory where test will be run RUN_DIR="${UNITTEST_BASE}/test_run/${FULL_TEST_NAME}" # Call common setup function to make the directory setup_common "${RUN_DIR}" # Change to test directory cd "${RUN_DIR}" ##################################################################### ## Test SETUP actions: case "${TEST_OPT}" in 700D_TEST ) # Config is , , , echo "71000000" > stm_cfg.txt # # Copy N frames of a raw audio file to stm_in.raw. dd bs=1280 count=48 if=../../../../raw/hts1.raw of=stm_in.raw \ > setup.log 2>&1 # # Reference freedv_tx 700D stm_in.raw ref_mod.raw --testframes --txbpf 0 \ > ref_gen.log 2>&1 ;; 700D_CODEC ) # Config is , , , echo "70000000" > stm_cfg.txt # # Copy N frames of a raw audio file to stm_in.raw. dd bs=1280 count=48 if=../../../../raw/hts1.raw of=stm_in.raw \ > setup.log 2>&1 # # Reference freedv_tx 700D stm_in.raw ref_mod.raw --txbpf 0 \ > ref_gen.log 2>&1 ;; 700E_TEST ) # Config is , , , echo "81110000" > stm_cfg.txt # # Copy N frames of a raw audio file to stm_in.raw. dd bs=1280 count=48 if=../../../../raw/hts1.raw of=stm_in.raw \ > setup.log 2>&1 # # Reference freedv_tx 700E stm_in.raw ref_mod.raw --testframes --txbpf 1 --clip 1 \ > ref_gen.log 2>&1 ;; 700E_CODEC ) # Config is , , , echo "80110000" > stm_cfg.txt # # Copy N frames of a raw audio file to stm_in.raw. dd bs=1280 count=48 if=../../../../raw/hts1.raw of=stm_in.raw \ > setup.log 2>&1 # # Reference freedv_tx 700E stm_in.raw ref_mod.raw --txbpf 1 --clip 1 \ > ref_gen.log 2>&1 ;; *) printf "ERROR: invalid test option. Valid options are:\n 700D_TEST\n 700D_CODEC\n 700E_TEST\n 700E_CODEC\n" exit 1 ;; esac exit 0 codec2-1.0.1/stm32/unittest/scripts/tst_codec2_dec_check000077500000000000000000000015201412132000500230770ustar00rootroot00000000000000#!/bin/bash # # tst_codec2_dec_check # # Setup input and reference data for one of several versions of this test. # Find the scripts directory SCRIPTS="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null && pwd )" # Setup common variables source $SCRIPTS/run_tests_common.sh # RUN_DIR - Directory where test will be run RUN_DIR="${UNITTEST_BASE}/test_run/${FULL_TEST_NAME}" # Call common setup function to make the directory setup_common "${RUN_DIR}" # Change to test directory cd "${RUN_DIR}" ##################################################################### ## Test CHECK actions: declare -i Fails=0 #case "${TEST_OPT}" in # 1300) # 700C) # esac echo -e "\nMust manually listen to this!" aplay -f S16_LE stm_out.raw if (( $Fails == 0 )); then echo -e "\nTest PASSED" else echo -e "\nTest FAILED!" fi exit $Fails codec2-1.0.1/stm32/unittest/scripts/tst_codec2_dec_setup000077500000000000000000000025611412132000500231700ustar00rootroot00000000000000#!/bin/bash # # tst_codec2_dec_setup # # Setup input and reference data for one of several versions of this test. # Find the scripts directory SCRIPTS="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null && pwd )" # Setup common variables source $SCRIPTS/run_tests_common.sh # RUN_DIR - Directory where test will be run RUN_DIR="${UNITTEST_BASE}/test_run/${FULL_TEST_NAME}" # Call common setup function to make the directory setup_common "${RUN_DIR}" # Change to test directory cd "${RUN_DIR}" ##################################################################### ## Test SETUP actions: case "${TEST_OPT}" in 1300 ) # Config is , echo "41000000" > stm_cfg.txt # # Copy N frames of a raw audio file to stm_in.raw. dd bs=2560 count=30 if=../../../../raw/hts1.raw of=spch_in.raw \ > setup.log 2>&1 c2enc 1300 spch_in.raw stm_in.raw >> setup.log 2>&1 # # Reference c2dec 1300 stm_in.raw ref_dec.raw > ref_gen.log 2>&1 ;; 700C ) # Config is , echo "81000000" > stm_cfg.txt # # Copy N frames of a raw audio file to stm_in.raw. dd bs=2560 count=30 if=../../../../raw/hts1.raw of=spch_in.raw \ > setup.log 2>&1 c2enc 700C spch_in.raw stm_in.raw >> setup.log 2>&1 # # Reference c2dec 700C stm_in.raw ref_dec.raw > ref_gen.log 2>&1 ;; esac codec2-1.0.1/stm32/unittest/scripts/tst_codec2_enc_check000077500000000000000000000023651412132000500231210ustar00rootroot00000000000000#!/bin/bash # # tst_codec2_enc_check # # Setup input and reference data for one of several versions of this test. # Find the scripts directory SCRIPTS="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null && pwd )" # Setup common variables source $SCRIPTS/run_tests_common.sh # RUN_DIR - Directory where test will be run RUN_DIR="${UNITTEST_BASE}/test_run/${FULL_TEST_NAME}" # Call common setup function to make the directory setup_common "${RUN_DIR}" # Change to test directory cd "${RUN_DIR}" ##################################################################### ## Test CHECK actions: declare -i Fails=0 case "${TEST_OPT}" in 1300) echo -e "\nCompare output binary data" compare_ints -b1 -c ref_enc.raw stm_out.raw error_count=$? if [[ $error_count -le 2 ]]; then echo "Passed" else echo "Failed" let Fails=($Fails + 1) fi ;; 700C) echo -e "\nCompare output binary data" if compare_ints -b1 ref_enc.raw stm_out.raw; then echo "Passed" else echo "Failed" let Fails=($Fails + 1) fi ;; esac if (( $Fails == 0 )); then echo -e "\nTest PASSED" else echo -e "\nTest FAILED!" fi exit $Fails codec2-1.0.1/stm32/unittest/scripts/tst_codec2_enc_setup000077500000000000000000000024151412132000500232000ustar00rootroot00000000000000#!/bin/bash # # tst_codec2_enc_setup # # Setup input and reference data for one of several versions of this test. # Find the scripts directory SCRIPTS="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null && pwd )" # Setup common variables source $SCRIPTS/run_tests_common.sh # RUN_DIR - Directory where test will be run RUN_DIR="${UNITTEST_BASE}/test_run/${FULL_TEST_NAME}" # Call common setup function to make the directory setup_common "${RUN_DIR}" # Change to test directory cd "${RUN_DIR}" ##################################################################### ## Test SETUP actions: case "${TEST_OPT}" in 1300 ) # Config is , echo "40000000" > stm_cfg.txt # # Copy N frames of a raw audio file to stm_in.raw. dd bs=2560 count=30 if=../../../../raw/hts1.raw of=stm_in.raw \ > setup.log 2>&1 # # Reference c2enc 1300 stm_in.raw ref_enc.raw \ > ref_gen.log 2>&1 ;; 700C ) # Config is , echo "80000000" > stm_cfg.txt # # Copy N frames of a raw audio file to stm_in.raw. dd bs=2560 count=30 if=../../../../raw/hts1.raw of=stm_in.raw \ > setup.log 2>&1 # # Reference c2enc 700C stm_in.raw ref_enc.raw \ > ref_gen.log 2>&1 ;; esac codec2-1.0.1/stm32/unittest/scripts/tst_ldpc_dec_check000077500000000000000000000032271412132000500226700ustar00rootroot00000000000000#!/bin/bash # # tst_ldpc_enc_check # # Setup input and reference data for one of several versions of this test. # Find the scripts directory SCRIPTS="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null && pwd )" # Setup common variables source $SCRIPTS/run_tests_common.sh # RUN_DIR - Directory where test will be run RUN_DIR="${UNITTEST_BASE}/test_run/${FULL_TEST_NAME}" # Call common setup function to make the directory setup_common "${RUN_DIR}" # Change to test directory cd "${RUN_DIR}" ##################################################################### ## Test CHECK actions: declare -i Fails=0 case "${TEST_OPT}" in ideal) BER_LIMIT_RAW=0.0 BER_LIMIT_CODED=0.0 ;; noise) BER_LIMIT_RAW=0.15 BER_LIMIT_CODED=0.015 ;; esac echo -e "\nCompare output binary data" if compare_ints -b1 ref_out.raw stm_out.raw; then echo "Passed" else echo "Failed" let Fails=($Fails + 1) fi # echo -e "\nReference BER values" n=$(grep 'Raw.*BER:' ref_gen.log | awk '{print $7}') p1=$(echo $n '<=' ${BER_LIMIT_RAW} | bc) n=$(grep 'Coded.*BER:' ref_gen.log | awk '{print $7}') p2=$(echo $n '<=' ${BER_LIMIT_CODED} | bc) if [[ $p1 -eq 1 && $p2 -eq 1 ]]; then echo "Pass"; else echo "Fail"; let Fails=($Fails + 1); fi # echo -e "\nTarget BER values" n=$(grep 'Raw.*BER:' stderr.log | cut -d ' ' -f 7) p1=$(echo $n '<=' ${BER_LIMIT_RAW} | bc) n=$(grep 'Coded.*BER:' stderr.log | cut -d ' ' -f 7) p2=$(echo $n '<=' ${BER_LIMIT_CODED} | bc) if [[ $p1 -eq 1 && $p2 -eq 1 ]]; then echo "Pass"; else echo "Fail"; let Fails=($Fails + 1); fi if (( $Fails == 0 )); then echo -e "\nTest PASSED" else echo -e "\nTest FAILED!" fi exit $Fails codec2-1.0.1/stm32/unittest/scripts/tst_ldpc_dec_setup000077500000000000000000000024651412132000500227560ustar00rootroot00000000000000#!/bin/bash # # tst_ldpc_dec_setup # # Setup input and reference data for one of several versions of this test. # Find the scripts directory SCRIPTS="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null && pwd )" # Setup common variables source $SCRIPTS/run_tests_common.sh # RUN_DIR - Directory where test will be run RUN_DIR="${UNITTEST_BASE}/test_run/${FULL_TEST_NAME}" # Call common setup function to make the directory setup_common "${RUN_DIR}" # Change to test directory cd "${RUN_DIR}" ##################################################################### ## Test SETUP actions: case "${TEST_OPT}" in ideal ) # # Config is , , , # echo "00000000" > stm_cfg.txt ldpc_enc /dev/zero stm_in.raw --sd --code HRA_112_112 --testframes 6 \ > setup.log 2>&1 ldpc_dec stm_in.raw ref_out.raw --sd --code HRA_112_112 --testframes \ > ref_gen.log 2>&1 ;; noise ) # # Config is , , , # echo "00000000" > stm_cfg.txt ldpc_enc /dev/zero enc_out.raw --sd --code HRA_112_112 --testframes 24 \ > setup.log 2>&1 ldpc_noise enc_out.raw stm_in.raw 1 \ >> setup.log 2>&1 ldpc_dec stm_in.raw ref_out.raw --sd --code HRA_112_112 --testframes \ > ref_gen.log 2>&1 ;; esac exit 0 codec2-1.0.1/stm32/unittest/scripts/tst_ldpc_enc_check000077500000000000000000000025621412132000500227030ustar00rootroot00000000000000#!/bin/bash # # tst_ldpc_enc_check # # Setup input and reference data for one of several versions of this test. # Find the scripts directory SCRIPTS="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null && pwd )" # Setup common variables source $SCRIPTS/run_tests_common.sh # RUN_DIR - Directory where test will be run RUN_DIR="${UNITTEST_BASE}/test_run/${FULL_TEST_NAME}" # Call common setup function to make the directory setup_common "${RUN_DIR}" # Change to test directory cd "${RUN_DIR}" ##################################################################### ## Test CHECK actions: declare -i Fails=0 #case "${TEST_OPT}" in # # plain) # ;; # esac ##### TODO: ldpc_dec should be able to check this outputs, ##### it currently reports Tbits = 0! #echo -e "\nReference check" #if ofdm_demod ref_mod_out.raw ref_ofdm_demod.raw --testframes ${LDPC}; then # echo "Passed" #else # echo "Failed" # let Fails=($Fails + 1) #fi ## #echo -e "\nTarget check" #if ofdm_demod mod.raw stm_demod.raw --testframes ${LDPC}; then # echo "Passed" #else # echo "Failed" # let Fails=($Fails + 1) #fi ## echo -e "\nCompare output binary data" if compare_ints -b1 ref_out.raw stm_out.raw; then echo "Passed" else echo "Failed" let Fails=($Fails + 1) fi # if (( $Fails == 0 )); then echo -e "\nTest PASSED" else echo -e "\nTest FAILED!" fi exit $Fails codec2-1.0.1/stm32/unittest/scripts/tst_ldpc_enc_setup000077500000000000000000000016341412132000500227650ustar00rootroot00000000000000#!/bin/bash # # tst_ldpc_enc_setup # # Setup input and reference data for one of several versions of this test. # Find the scripts directory SCRIPTS="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null && pwd )" # Setup common variables source $SCRIPTS/run_tests_common.sh # RUN_DIR - Directory where test will be run RUN_DIR="${UNITTEST_BASE}/test_run/${FULL_TEST_NAME}" # Call common setup function to make the directory setup_common "${RUN_DIR}" # Change to test directory cd "${RUN_DIR}" ##################################################################### ## Test SETUP actions: #case "${TEST_OPT}" in # # plain ) # # Config is , , , # echo "00000000" > stm_cfg.txt ofdm_get_test_bits --out stm_in.raw --frames 6 --verbose \ > setup.log 2>&1 ldpc_enc stm_in.raw ref_out.raw --code HRA_112_112 \ > ref_gen.log 2>&1 # ;; # # esac exit 0 codec2-1.0.1/stm32/unittest/scripts/tst_ofdm_demod_check000077500000000000000000000426551412132000500232400ustar00rootroot00000000000000#!/usr/bin/env python3 """ tst_ofdm_demod_check Testing for tst_ofdm_demod_* tests Usage tst_ofdm_demod_check quick|ideal|AWGN|fade|profile|ldpc|ldpc_AWGN|ldpc_fade Checks are different for each option, but similar - Convert stm32 output to octave text foramt (stm32 does not have memory for this) - ... """ import numpy as np import math import argparse import struct import os import sys if ("UNITTEST_BASE" in os.environ): sys.path.append(os.environ["UNITTEST_BASE"] + "/lib/python") else: sys.path.append("../../lib/python") # assume in test run dir import sum_profiles Nbitsperframe = 238 ############################################################################## # Read Octave text file ############################################################################## def read_octave_text(f): if (args.verbose): print('read_octave_text()') data = {} for line in f: if (line[0:8] == "# name: "): var = line.split()[2] if (args.verbose): print(' var "{}"'.format(var)) line = next(f) if (line.startswith("# type: matrix")): line = next(f) rows = int(line.split()[2]) line = next(f) cols = int(line.split()[2]) if (cols > 0): data[var] = np.empty((rows, cols), np.float32) # Read rows one at a time for row in range(rows): try: line = next(f) data[var][row] = np.fromstring(line, np.float32, cols, " ") except: print("Error reading row {} of var {}".format(row, var)) raise elif (line.startswith("# type: complex matrix")): line = next(f) rows = int(line.split()[2]) line = next(f) cols = int(line.split()[2]) if (cols > 0): data[var] = np.empty((rows, cols), np.complex64) # Read rows one at a time for row in range(rows): try: line = next(f) # " (r,i) (r,i) ..." col = 0 for tpl in line.split(): real, imag = tpl.strip("(,)").split(",") data[var][row][col] = float(real) + (1j * float(imag)) col += 1 except: print("Error reading row {} of var {}".format(row, var)) raise # end for line in f return(data) ############################################################################## # Read stm32 diag data, syms, amps for each frame ############################################################################## def read_tgt_syms(f): # TODO: don't use hardcoded values... syms = np.zeros((100, 112), np.complex64) amps = np.zeros((100, 112), np.float32) row = 0 while True: # syms buf = f.read(112 * 8) if (len(buf) < (112 * 8)): break row_lst = struct.unpack("<224f", buf) ary = np.array(row_lst, np.float32) ary.dtype = np.complex64 syms[row] = ary # amps buf = f.read(112 * 4) if (len(buf) < (112 * 4)): break row_lst = struct.unpack("<112f", buf) ary = np.array(row_lst, np.float32) amps[row] = ary # row += 1 if (row >= 100): break # end While True return(syms, amps) # end read_stm_syms() ############################################################################## # Write out in octave text format as 2 matricies ############################################################################## def write_syms_as_octave(syms, amps): with open("ofdm_demod_log.txt", "w") as f: # syms rows = syms.shape[0] cols = syms.shape[1] f.write("# name: payload_syms_log_stm32\n") f.write("# type: complex matrix\n") f.write("# rows: {}\n".format(rows)) f.write("# columns: {}\n".format(cols)) for row in range(rows): for col in range(cols): f.write(" ({},{})".format( syms[row][col].real, syms[row][col].imag )) f.write("\n") # amps rows = amps.shape[0] cols = amps.shape[1] f.write("\n") f.write("# name: payload_amps_log_stm32\n") f.write("# type: matrix\n") f.write("# rows: {}\n".format(rows)) f.write("# columns: {}\n".format(cols)) for row in range(rows): for col in range(cols): f.write(" {}".format( amps[row][col] )) f.write("\n") # end write_syms_as_octave() ############################################################################## # Main ############################################################################## #### Options argparser = argparse.ArgumentParser() argparser.add_argument("-v", "--verbose", action="store_true") argparser.add_argument("test", action="store") argparser.add_argument("test_opt", action="store", choices=["quick", "ideal", "AWGN", "fade", "profile", "ldpc", "ldpc_AWGN", "ldpc_fade" ]) args = argparser.parse_args() # Use ENV value of UNITTEST_BASE from upper level shell script (default to .) if ('UNITTEST_BASE' in os.environ): run_dir = os.environ['UNITTEST_BASE'] + "/test_run/" run_dir += args.test + "_" + args.test_opt print(run_dir) os.chdir(run_dir) #### Settings # Defaults, (for tests without channel degradation, results should be close to ideal) max_ber = 0.001 # Max BER value in Target max_ber2 = 0.001 # Max Coded BER value in Target compare_ber = 1 # Compare Target to Reference? # Used if compare_ber: tolerance_ber = 0.001 # Difference from reference for BER tolerance_ber2 = 0.001 # Difference from reference for Coded BER tolerance_tbits = 0 tolerance_terrs = 1 # compare_output = 1 # Compare Target to Reference? # Used if compare_output: tolerance_output_differences = 0 tolerance_syms = 0.01 tolerance_amps = 0.01 # # Per test settings if (args.test_opt == "quick"): pass elif (args.test_opt == "ideal"): pass elif (args.test_opt == "AWGN"): # Still close enough to compare BERs loosely max_ber = 0.1 max_ber2 = 0.1 tolerance_ber = 0.01 tolerance_ber2 = 0.005 tolerance_tbits = 1000 tolerance_terrs = 50 tolerance_output_differences = 2 compare_output = 0 elif (args.test_opt == "fade"): max_ber = 0.1 max_ber2 = 0.1 tolerance_ber = 0.01 tolerance_ber2 = 0.005 tolerance_tbits = 1000 tolerance_terrs = 200 tolerance_output_differences = 5 compare_output = 0 pass elif (args.test_opt == "profile"): tolerance_output_differences = 1 pass elif (args.test_opt == "ldpc"): pass elif (args.test_opt == "ldpc_AWGN"): max_ber = 0.1 max_ber2 = 0.01 compare_ber = 0 compare_output = 0 elif (args.test_opt == "ldpc_fade"): max_ber = 0.1 max_ber2 = 0.01 compare_ber = 0 compare_output = 0 pass else: print("Error: Test {} not recognized".format(args.test_opt)) sys.exit(1) #### Check that we are in the test directory: #### TODO::: #### Read test configuration - a file of '0' or '1' characters with open("stm_cfg.txt", "r") as f: config = f.read(8) config_verbose = (config[0] == '1') config_testframes = (config[1] == '1') config_ldpc_en = (config[2] == '1') config_log_payload_syms = (config[3] == '1') config_profile = (config[4] == '1') #### fails = 0 if (config_testframes): #### BER checks - log output looks like this, for non-ldpc: # BER......: 0.1951 Tbits: 14994 Terrs: 2926 # BER2.....: 0.2001 Tbits: 10234 Terrs: 2048 # # Or this, for ldpc: # BER......: 0.0000 Tbits: 15008 Terrs: 0 # Coded BER: 0.0000 Tbits: 7504 Terrs: 0 # # HACK: store "Coded BER" info as BER2. print("\nBER checks") # Read ref log print("Reference") with open("ref_gen_log.txt", "r") as f: for line in f: if (line[0:4] == "BER2"): print(line, end="") _, ref_ber2, _, ref_tbits2, _, ref_terrs2 = line.split() elif (line[0:3] == "BER"): print(line, end="") _, ref_ber, _, ref_tbits, _, ref_terrs, _, ref_tpackets, _, ref_snr3k = line.split() elif (line[0:9] == "Coded BER"): print(line, end="") _, _, ref_ber2, _, ref_tbits2, _, ref_terrs2 = line.split() # Strings to integers ref_ber = float(ref_ber) ref_tbits = int(ref_tbits) ref_terrs = int(ref_terrs) ref_ber2 = float(ref_ber2) ref_tbits2 = int(ref_tbits2) ref_terrs2 = int(ref_terrs2) # Read stm log print("Target") with open("stdout.log", "r") as f: for line in f: if (line[0:4] == "BER2"): print(line, end="") _, tgt_ber2, _, tgt_tbits2, _, tgt_terrs2 = line.split() elif (line[0:3] == "BER"): print(line, end="") _, tgt_ber, _, tgt_tbits, _, tgt_terrs = line.split() elif (line[0:9] == "Coded BER"): print(line, end="") _, _, tgt_ber2, _, tgt_tbits2, _, tgt_terrs2 = line.split() # Strings to integers tgt_ber = float(tgt_ber) tgt_tbits = int(tgt_tbits) tgt_terrs = int(tgt_terrs) tgt_ber2 = float(tgt_ber2) tgt_tbits2 = int(tgt_tbits2) tgt_terrs2 = int(tgt_terrs2) # simple hack to tolerate zero bits > NAN if (math.isnan(ref_ber2)): ref_ber2 = 0 if (math.isnan(tgt_ber2)): tgt_ber2 = 0 ## Max BER values if ((tgt_ber > max_ber) or (tgt_ber2 > max_ber2)): fails += 1 print("FAIL: max BER") else: print("PASS: max BER") ## Compare BER values if (compare_ber): chk_tolerance_ber = abs(ref_ber - tgt_ber) chk_tolerance_tbits = abs(ref_tbits - tgt_tbits) chk_tolerance_terrs = abs(ref_terrs - tgt_terrs) chk_tolerance_ber2 = abs(ref_ber2 - tgt_ber2) chk_tolerance_tbits2 = abs(ref_tbits2 - tgt_tbits2) chk_tolerance_terrs2 = abs(ref_terrs2 - tgt_terrs2) passes = True if (chk_tolerance_ber > tolerance_ber): print("fail tolerance_ber {} > {}". format(chk_tolerance_ber, tolerance_ber)) passes = False if (chk_tolerance_tbits > tolerance_tbits): print("fail tolerance_tbits {} > {}". format(chk_tolerance_tbits, tolerance_tbits)) passes = False if (chk_tolerance_terrs > tolerance_terrs): print("fail tolerance_terrs {} > {}". format(chk_tolerance_terrs, tolerance_terrs)) passes = False if (ref_tbits2 == 0): if (chk_tolerance_ber2 > tolerance_ber2): print("fail tolerance_ber2 {} > {}". format(chk_tolerance_ber2, tolerance_ber2)) passes = False if (chk_tolerance_tbits2 > tolerance_tbits): print("fail tolerance_tbits2 {} > {}". format(chk_tolerance_tbits2, tolerance_tbits)) passes = False if (chk_tolerance_terrs2 > tolerance_terrs): print("fail tolerance_terrs2 {} > {}". format(chk_tolerance_terrs2, tolerance_terrs)) passes = False if (passes): print("PASS: BER compare") else: fails += 1 print("FAIL: BER compare") # end Compare BER # end BER checks #### Output differences if (compare_output): print("\nOutput checks") # Output is a binary file of bytes whose values are 0x00 or 0x01. with open("ref_demod_out.raw", "rb") as f: ref_out_bytes = f.read() with open("stm_out.raw", "rb") as f: tgt_out_bytes = f.read() if (len(ref_out_bytes) != len(tgt_out_bytes)): fails += 1 print("FAIL Output, length mismatch") else: output_diffs = 0 for i in range(len(ref_out_bytes)): fnum = math.floor(i/Nbitsperframe) bnum = i - (fnum * Nbitsperframe) # Both legal values?? if (ref_out_bytes[i] > 1): print("Error: Output frame {} byte {} not 0 or 1 in reference data".format(fnum, bnum)) fails += 1 if (tgt_out_bytes[i] > 1): print("Error: Output frame {} byte {} not 0 or 1 in target data".format(fnum, bnum)) fails += 1 # Match?? if (ref_out_bytes[i] != tgt_out_bytes[i]): print("Output frame {} byte {} mismatch: ref={} tgt={}".format( fnum, bnum, ref_out_bytes[i], tgt_out_bytes[i])) output_diffs += 1 # end for i if (output_diffs > tolerance_output_differences): print("FAIL: Output Differences = {}".format(output_diffs)) fails += 1 else: print("PASS: Output Differences = {}".format(output_diffs)) # end not length mismatch #### Syms data if (config_log_payload_syms): print("\nSyms and Amps checks") fref = open("ofdm_demod_ref_log.txt", "r") fdiag = open("stm_diag.raw", "rb") ref_data = read_octave_text(fref) (tgt_syms, tgt_amps) = read_tgt_syms(fdiag) fdiag.close() write_syms_as_octave(tgt_syms, tgt_amps) # for manual debug... # Find smallest common subset hgt = min(tgt_syms.shape[0], ref_data["payload_syms_log_c"].shape[0]) wid = min(tgt_syms.shape[1], ref_data["payload_syms_log_c"].shape[1]) ref_syms = ref_data["payload_syms_log_c"][:hgt][:wid] ref_amps = ref_data["payload_amps_log_c"][:hgt][:wid] tgt_syms= tgt_syms[:hgt][:wid] tgt_amps= tgt_amps[:hgt][:wid] # Eliminate trailing rows of all zeros # Sum the rows to find rows of all zeros row_sums = ref_syms.sum(axis=1) + tgt_syms.sum(axis=1) nonzeros = row_sums.nonzero() last_nonzero = nonzeros[0][-1] # stop index is 1 past the last!! # and use the Magnitude of the complex values ref_syms = np.abs(ref_syms[:last_nonzero+1]) ref_amps = np.abs(ref_amps[:last_nonzero+1]) tgt_syms = np.abs(tgt_syms[:last_nonzero+1]) tgt_amps = np.abs(tgt_amps[:last_nonzero+1]) # Differences - Syms #diffs_syms = np.abs(ref_syms - tgt_syms) # This is the mag of complex diffs_syms = np.abs(np.divide((ref_syms - tgt_syms), ref_syms, where=(ref_syms!=0))) print("Minimum syms difference = {:.6f}".format(np.amin(diffs_syms))) print("Maximum syms difference = {:.6f}".format(np.amax(diffs_syms))) print("Average syms difference = {:.6f}".format(np.average(diffs_syms))) if (args.verbose): # Print top 10 differences diffs_syms_sorted_indexes = (diffs_syms).argsort(axis=None)[::-1] print(" Top 10 differences") for i in range(10): j = diffs_syms_sorted_indexes[i] print(" #{} @{}: {} {} = {:.6f}".format( i, j, ref_syms.flatten()[j], tgt_syms.flatten()[j], diffs_syms.flatten()[j]) ) # Errors are differences > tolerance_syms errors_syms = diffs_syms - tolerance_syms errors_syms[errors_syms < 0.0] = 0.0 num_errors_syms = np.count_nonzero(errors_syms) error_rows_syms = np.amax(errors_syms, axis=1) num_error_rows_syms = np.count_nonzero(error_rows_syms) print("") print("{} symbol errors on {} rows".format(num_errors_syms, num_error_rows_syms)) # Differences - Amps diffs_amps = np.abs(np.divide((ref_amps - tgt_amps), ref_amps, where=(ref_amps!=0))) print("Minimum amps difference = {:.6f}".format(np.amin(diffs_amps))) print("Maximum amps difference = {:.6f}".format(np.amax(diffs_amps))) print("Average amps difference = {:.6f}".format(np.average(diffs_amps))) if (args.verbose): # Print top 10 differences diffs_amps_sorted_indexes = (diffs_amps).argsort(axis=None)[::-1] print(" Top 10 differences") for i in range(10): j = diffs_amps_sorted_indexes[i] print(" #{} @{}: {} {} = {:.6f}".format( i, j, ref_amps.flatten()[j], tgt_amps.flatten()[j], diffs_amps.flatten()[j]) ) # Errors are differences > tolerance_syms errors_amps = diffs_amps - tolerance_amps errors_amps[errors_amps < 0.0] = 0.0 num_errors_amps = np.count_nonzero(errors_amps) error_rows_amps = np.amax(errors_amps, axis=1) num_error_rows_amps = np.count_nonzero(error_rows_amps) print("") print("{} Amplitude errors on {} rows".format(num_errors_amps, num_error_rows_amps)) # End compare_output #### Profile if (config_profile): print("\nProfile:") with open("stdout.log", "r") as f: sum_profiles.sum_profiles(f, 100) print("\nStack:") with open("stdout.txt", "r") as f: for line in f: if (line.startswith("Max stack")): print(line) #### Print final status message if (fails): print("\nTest FAILED!") else: print("\nTest PASSED") sys.exit(fails) codec2-1.0.1/stm32/unittest/scripts/tst_ofdm_demod_setup000077500000000000000000000100741412132000500233110ustar00rootroot00000000000000#!/bin/bash # # tst_ofdm_demod_setup # # Setup input and reference data for one of several versions of this test. # Find the scripts directory SCRIPTS="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null && pwd )" # Setup common variables source $SCRIPTS/run_tests_common.sh # RUN_DIR - Directory where test will be run RUN_DIR="${UNITTEST_BASE}/test_run/${FULL_TEST_NAME}" # Call common setup function to make the directory setup_common "${RUN_DIR}" # Change to test directory cd "${RUN_DIR}" ##################################################################### ## Test SETUP actions: case "${TEST_OPT}" in quick ) # Config is , , , echo "01000000" > stm_cfg.txt ofdm_mod --in /dev/zero --out stm_in.raw --testframes 10 > setup.log 2>&1 ofdm_demod --in stm_in.raw --out ref_demod_out.raw --log ofdm_demod_ref_log.txt \ --testframes --verbose 1 > ref_gen_log.txt 2>&1 ;; ideal ) # Config is , , , echo "01000000" > stm_cfg.txt ofdm_mod --in /dev/zero --out stm_in.raw --testframes 10 > setup.log 2>&1 ofdm_demod --in stm_in.raw --out ref_demod_out.raw --log ofdm_demod_ref_log.txt \ --testframes --verbose 1 > ref_gen_log.txt 2>&1 ;; AWGN ) # Config is , , , echo "11000000" > stm_cfg.txt ofdm_mod --in /dev/zero --out mod_bits.raw --testframes 10 > setup.log 2>&1 cohpsk_ch mod_bits.raw stm_in.raw -20 --Fs 8000 -f -5 \ --raw_dir ${CODEC2_BASE}/raw >> setup.log 2>&1 ofdm_demod --in stm_in.raw --out ref_demod_out.raw --log ofdm_demod_ref_log.txt \ --testframes --verbose 1 > ref_gen_log.txt 2>&1 ;; fade ) # Config is , , , echo "11000000" > stm_cfg.txt ofdm_mod --in /dev/zero --out mod_bits.raw --testframes 60 > setup.log 2>&1 cohpsk_ch mod_bits.raw stm_in.raw -24.5 --Fs 8000 -f -10 --mpp \ --raw_dir ${CODEC2_BASE}/raw >> setup.log 2>&1 ofdm_demod --in stm_in.raw --out ref_demod_out.raw --log ofdm_demod_ref_log.txt \ --testframes --verbose 1 > ref_gen_log.txt 2>&1 ;; profile ) # Config is , , , echo "00001000" > stm_cfg.txt ofdm_mod --in /dev/zero --out mod_bits.raw --testframes 100 > setup.log 2>&1 cohpsk_ch mod_bits.raw stm_in.raw -20 --Fs 8000 -f -10 --fast \ --raw_dir ${CODEC2_BASE}/raw >> setup.log 2>&1 ofdm_demod --in stm_in.raw --out ref_demod_out.raw --log ofdm_demod_ref_log.txt \ --testframes --verbose 1 > ref_gen_log.txt 2>&1 ;; ldpc ) # Config is , , , echo "01110000" > stm_cfg.txt ofdm_mod --in /dev/zero --out stm_in.raw --testframes 1 --ldpc 1 > setup.log 2>&1 ofdm_demod --in stm_in.raw --out ref_demod_out.raw --log ofdm_demod_ref_log.txt \ --testframes --ldpc 1 --verbose 1 > ref_gen_log.txt 2>&1 ;; ldpc_AWGN ) # Config is , , , echo "01110000" > stm_cfg.txt ofdm_mod --in /dev/zero --out mod_bits.raw --testframes 30 --ldpc 1 > setup.log 2>&1 cohpsk_ch mod_bits.raw stm_in.raw -20 --Fs 8000 -f -10 \ --raw_dir ${CODEC2_BASE}/raw >> setup.log 2>&1 ofdm_demod --in stm_in.raw --out ref_demod_out.raw --log ofdm_demod_ref_log.txt \ --testframes --ldpc 1 --verbose 1 > ref_gen_log.txt 2>&1 ;; ldpc_fade ) # Config is , , , echo "01110000" > stm_cfg.txt ofdm_mod --in /dev/zero --out mod_bits.raw --testframes 120 --ldpc 1 > setup.log 2>&1 cohpsk_ch mod_bits.raw stm_in.raw -30 --Fs 8000 -f -10 --mpp \ --raw_dir ${CODEC2_BASE}/raw >> setup.log 2>&1 ofdm_demod --in stm_in.raw --out ref_demod_out.raw --log ofdm_demod_ref_log.txt \ --testframes --ldpc 1 --verbose 1 > ref_gen_log.txt 2>&1; ;; esac codec2-1.0.1/stm32/unittest/scripts/tst_ofdm_mod_check000077500000000000000000000024641412132000500227210ustar00rootroot00000000000000#!/bin/bash -x # # tst_ofdm_mod_check # # Setup input and reference data for one of several versions of this test. # Find the scripts directory SCRIPTS="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null && pwd )" # Setup common variables source $SCRIPTS/run_tests_common.sh # RUN_DIR - Directory where test will be run RUN_DIR="${UNITTEST_BASE}/test_run/${FULL_TEST_NAME}" # Call common setup function to make the directory setup_common "${RUN_DIR}" # Change to test directory cd "${RUN_DIR}" ##################################################################### ## Test CHECK actions: declare -i Fails=0 case "${TEST_OPT}" in plain) LDPC="";; ldpc) LDPC="--ldpc";; esac echo -e "\nReference check" if ofdm_demod --in ref_mod_out.raw --out ref_ofdm_demod.raw --testframes ${LDPC}; then echo "Passed" else echo "Failed" let Fails=($Fails + 1) fi # echo -e "\nTarget check" if ofdm_demod --in mod.raw --out stm_demod.raw --testframes ${LDPC}; then echo "Passed" else echo "Failed" let Fails=($Fails + 1) fi # echo -e "\nCompare output binary data" if compare_ints -s -b2 -t3 ref_mod_out.raw mod.raw; then echo "Passed" else echo "Failed" let Fails=($Fails + 1) fi # if (( $Fails == 0 )); then echo -e "\nTest PASSED" else echo -e "\nTest FAILED!" fi exit $Fails codec2-1.0.1/stm32/unittest/scripts/tst_ofdm_mod_setup000077500000000000000000000022761412132000500230050ustar00rootroot00000000000000#!/bin/bash # # tst_ofdm_mod_setup # # Setup input and reference data for one of several versions of this test. # Find the scripts directory SCRIPTS="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null && pwd )" # Setup common variables source $SCRIPTS/run_tests_common.sh # RUN_DIR - Directory where test will be run RUN_DIR="${UNITTEST_BASE}/test_run/${FULL_TEST_NAME}" # Call common setup function to make the directory setup_common "${RUN_DIR}" # Change to test directory cd "${RUN_DIR}" ##################################################################### ## Test SETUP actions: case "${TEST_OPT}" in plain ) # Config is , , , echo "00000000" > stm_cfg.txt ofdm_get_test_bits --out stm_in.raw --frames 10 --verbose > setup.log 2>&1 ofdm_mod --in stm_in.raw --out ref_mod_out.raw --verbose 1 > ref_gen_log.txt 2>&1 ;; ldpc ) # Config is , , , echo "00100000" > stm_cfg.txt ofdm_get_test_bits --out stm_in.raw --frames 10 --length 112 --verbose > setup.log 2>&1 ofdm_mod --in stm_in.raw --out ref_mod_out.raw --ldpc --verbose 1 > ref_gen_log.txt 2>&1 ;; esac codec2-1.0.1/stm32/unittest/src/000077500000000000000000000000001412132000500162525ustar00rootroot00000000000000codec2-1.0.1/stm32/unittest/src/CMakeLists.txt000066400000000000000000000157221412132000500210210ustar00rootroot00000000000000set(STM32F4_SYSTEM_SRCS ../../src/system_stm32f4xx.c ../../src/memtools.c ../../src/stm32f4_machdep.c startup_stm32f4xx.s ) list(APPEND SEMIHOSTING_SRCS semihosting.c ${STM32F4_SYSTEM_SRCS}) list(APPEND SEMIHOSTING_PROFILE_LIBS codec2_prof stm32f4 CMSIS rdimon) list(APPEND SEMIHOSTING_LIBS codec2 stm32f4 CMSIS rdimon) macro(profiledSemihostedBin target) add_mapped_executable(${target} ${target}.c ${SEMIHOSTING_SRCS}) target_link_libraries(${target} ${SEMIHOSTING_PROFILE_LIBS}) target_compile_definitions(${target} PRIVATE "-DPROFILE -DSEMIHOST_USE_STDIO --specs=rdimon.specs") elf2bin(${target}) endmacro() macro(semihostedBin target) add_mapped_executable(${target} ${target}.c ${SEMIHOSTING_SRCS}) target_link_libraries(${target} ${SEMIHOSTING_LIBS}) target_compile_definitions(${target} PRIVATE "-DSEMIHOST_USE_STDIO --specs=rdimon.specs") elf2bin(${target}) endmacro() semihostedBin(tst_api_tx) semihostedBin(tst_codec2_enc) semihostedBin(tst_codec2_dec) semihostedBin(tst_ofdm_mod) profiledSemihostedBin(tst_ofdm_demod) semihostedBin(tst_ldpc_enc) semihostedBin(tst_ldpc_dec) semihostedBin(tst_api_mod) profiledsemihostedBin(tst_api_demod) semihostedBin(tst_semihost) semihostedBin(tst_codec2_fft_init) add_test(NAME check_ram_limit COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/../scripts/check_ram_limit WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}) add_test(NAME tst_ldpc_enc COMMAND sh -c "./run_stm32_tst tst_ldpc_enc ${UT_PARAMS}" WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/../scripts) add_test(NAME tst_ldpc_dec_ideal COMMAND sh -c "./run_stm32_tst tst_ldpc_dec ideal ${UT_PARAMS}" WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/../scripts) add_test(NAME tst_ldpc_dec_noise COMMAND sh -c "./run_stm32_tst tst_ldpc_dec noise ${UT_PARAMS}" WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/../scripts) set_tests_properties(tst_ldpc_dec_noise PROPERTIES DEPENDS tst_ldpc_dec_ideal) add_test(NAME tst_ofdm_mod_plain COMMAND sh -c "./run_stm32_tst tst_ofdm_mod plain ${UT_PARAMS}" WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/../scripts) add_test(NAME tst_ofdm_mod_ldpc COMMAND sh -c "./run_stm32_tst tst_ofdm_mod ldpc ${UT_PARAMS}" WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/../scripts) set_tests_properties(tst_ofdm_mod_ldpc PROPERTIES DEPENDS tst_ofdm_mod_plain) add_test(NAME tst_ofdm_demod_quick COMMAND sh -c "./run_stm32_tst tst_ofdm_demod quick ${UT_PARAMS}" WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/../scripts) add_test(NAME tst_ofdm_demod_ideal COMMAND sh -c "./run_stm32_tst tst_ofdm_demod ideal ${UT_PARAMS}" WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/../scripts) set_tests_properties(tst_ofdm_demod_ideal PROPERTIES DEPENDS tst_ofdm_demod_quick) add_test(NAME tst_ofdm_demod_AWGN COMMAND sh -c "./run_stm32_tst tst_ofdm_demod AWGN ${UT_PARAMS}" WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/../scripts) set_tests_properties(tst_ofdm_demod_AWGN PROPERTIES DEPENDS tst_ofdm_demod_quick) add_test(NAME tst_ofdm_demod_fade COMMAND sh -c "./run_stm32_tst tst_ofdm_demod fade ${UT_PARAMS}" WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/../scripts) set_tests_properties(tst_ofdm_demod_fade PROPERTIES DEPENDS tst_ofdm_demod_quick) add_test(NAME tst_ofdm_demod_ldpc COMMAND sh -c "./run_stm32_tst tst_ofdm_demod ldpc ${UT_PARAMS}" WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/../scripts) set_tests_properties(tst_ofdm_demod_ldpc PROPERTIES DEPENDS tst_ofdm_demod_quick) add_test(NAME tst_ofdm_demod_ldpc_AWGN COMMAND sh -c "./run_stm32_tst tst_ofdm_demod ldpc_AWGN ${UT_PARAMS}" WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/../scripts) set_tests_properties(tst_ofdm_demod_ldpc_AWGN PROPERTIES DEPENDS tst_ofdm_demod_quick) add_test(NAME tst_ofdm_demod_ldpc_fade COMMAND sh -c "./run_stm32_tst tst_ofdm_demod ldpc_fade ${UT_PARAMS}" WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/../scripts) set_tests_properties(tst_ofdm_demod_ldpc_fade PROPERTIES DEPENDS tst_ofdm_demod_quick) add_test(NAME tst_codec2_enc_1300 COMMAND sh -c "./run_stm32_tst tst_codec2_enc 1300 ${UT_PARAMS}" WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/../scripts) add_test(NAME tst_codec2_enc_700C COMMAND sh -c "./run_stm32_tst tst_codec2_enc 700C ${UT_PARAMS}" WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/../scripts) set_tests_properties(tst_codec2_enc_700C PROPERTIES DEPENDS tst_codec2_enc_1300) add_test(NAME tst_codec2_dec_1300 COMMAND sh -c "./run_stm32_tst tst_codec2_dec 1300 ${UT_PARAMS}" WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/../scripts) add_test(NAME tst_codec2_dec_700C COMMAND sh -c "./run_stm32_tst tst_codec2_dec 700C ${UT_PARAMS} " WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/../scripts) set_tests_properties(tst_codec2_dec_700C PROPERTIES DEPENDS tst_codec2_dec_1300) add_test(NAME tst_api_mod_700D_TEST COMMAND sh -c "./run_stm32_tst tst_api_mod 700D_TEST ${UT_PARAMS}" WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/../scripts) add_test(NAME tst_api_mod_700D_CODEC COMMAND sh -c "./run_stm32_tst tst_api_mod 700D_CODEC ${UT_PARAMS}" WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/../scripts) add_test(NAME tst_api_mod_700E_TEST COMMAND sh -c "./run_stm32_tst tst_api_mod 700E_TEST ${UT_PARAMS}" WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/../scripts) add_test(NAME tst_api_mod_700E_CODEC COMMAND sh -c "./run_stm32_tst tst_api_mod 700E_CODEC ${UT_PARAMS}" WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/../scripts) add_test(NAME tst_api_demod_700D_plain_test COMMAND sh -c "./run_stm32_tst tst_api_demod 700D_plain_test ${UT_PARAMS}" WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/../scripts) add_test(NAME tst_api_demod_700D_AWGN_test COMMAND sh -c "./run_stm32_tst tst_api_demod 700D_AWGN_test ${UT_PARAMS}" WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/../scripts) add_test(NAME tst_api_demod_700D_AWGN_codec COMMAND sh -c "./run_stm32_tst tst_api_demod 700D_AWGN_codec ${UT_PARAMS}" WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/../scripts) add_test(NAME tst_api_demod_700E_plain_test COMMAND sh -c "./run_stm32_tst tst_api_demod 700E_plain_test ${UT_PARAMS}" WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/../scripts) add_test(NAME tst_api_demod_700E_AWGN_test COMMAND sh -c "./run_stm32_tst tst_api_demod 700E_AWGN_test ${UT_PARAMS}" WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/../scripts) add_test(NAME tst_api_demod_700E_AWGN_codec COMMAND sh -c "./run_stm32_tst tst_api_demod 700E_AWGN_codec ${UT_PARAMS}" WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/../scripts) add_test(NAME tst_api_demod_1600_plain_codec COMMAND sh -c "./run_stm32_tst tst_api_demod 1600_plain_codec ${UT_PARAMS}" WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/../scripts) codec2-1.0.1/stm32/unittest/src/Makefile000066400000000000000000000757061412132000500177310ustar00rootroot00000000000000# Makefile for stm32f4 Codec 2 unittest programs # Include local definitions if they exist. -include local.mak ################################################### FLOAT_TYPE=hard ################################################### CROSS_COMPILE ?= arm-none-eabi- CC=$(BINPATH)$(CROSS_COMPILE)gcc AS=$(BINPATH)$(CROSS_COMPILE)as OBJCOPY=$(BINPATH)$(CROSS_COMPILE)objcopy SIZE=$(BINPATH)$(CROSS_COMPILE)size SUDO ?= sudo ################################################### CFLAGS = -std=gnu11 -O2 -g -Wall -DSTM32F40_41xxx -DCORTEX_M4 CFLAGS += -mlittle-endian -mthumb -mthumb-interwork -nostartfiles -mcpu=cortex-m4 -Wno-unused-function ifeq ($(FLOAT_TYPE), hard) CFLAGS += -fsingle-precision-constant -Wdouble-promotion CFLAGS += -fdata-sections -ffunction-sections -Xlinker --gc-sections CFLAGS += -mfpu=fpv4-sp-d16 -mfloat-abi=hard -D__FPU_PRESENT=1 -D__FPU_USED=1 else CFLAGS += -msoft-float endif #CFLAGS += -DDEBUG_ALLOC ################################################### # STM32F4 Standard Peripheral Library PERIPHLIBDIR ?= STM32F4xx_DSP_StdPeriph_Lib CMSIS = $(PERIPHLIBDIR)/Libraries/CMSIS STM32F4LIB = $(PERIPHLIBDIR)/Libraries/STM32F4xx_StdPeriph_Driver STM32F4TEMPLATE = $(PERIPHLIBDIR)/Project/STM32F4xx_StdPeriph_Templates DSPLIB = $(PERIPHLIBDIR)/Libraries/CMSIS/DSP_Lib CFLAGS += -DUSE_STDPERIPH_DRIVER -I$(STM32F4LIB)/inc -I$(STM32F4TEMPLATE) CFLAGS += -I$(CMSIS)/Include -I$(CMSIS)/Device/ST/STM32F4xx/Include CFLAGS += -DARM_MATH_CM4 CFLAGS += -DFDV_ARM_MATH CFLAGS += -DSEMIHOST_USE_STDIO # Precious files that should be preserved at all cost! .PRECIOUS: dl/$(PERIPHLIBZIP) STM32F4LIB_SRCS=\ $(STM32F4LIB)/src/misc.c\ $(STM32F4LIB)/src/stm32f4xx_adc.c\ $(STM32F4LIB)/src/stm32f4xx_can.c\ $(STM32F4LIB)/src/stm32f4xx_cec.c\ $(STM32F4LIB)/src/stm32f4xx_crc.c\ $(STM32F4LIB)/src/stm32f4xx_cryp_aes.c\ $(STM32F4LIB)/src/stm32f4xx_cryp.c\ $(STM32F4LIB)/src/stm32f4xx_cryp_des.c\ $(STM32F4LIB)/src/stm32f4xx_cryp_tdes.c\ $(STM32F4LIB)/src/stm32f4xx_dac.c\ $(STM32F4LIB)/src/stm32f4xx_dbgmcu.c\ $(STM32F4LIB)/src/stm32f4xx_dcmi.c\ $(STM32F4LIB)/src/stm32f4xx_dma2d.c\ $(STM32F4LIB)/src/stm32f4xx_dma.c\ $(STM32F4LIB)/src/stm32f4xx_exti.c\ $(STM32F4LIB)/src/stm32f4xx_flash.c\ $(STM32F4LIB)/src/stm32f4xx_flash_ramfunc.c\ $(STM32F4LIB)/src/stm32f4xx_fmpi2c.c\ $(STM32F4LIB)/src/stm32f4xx_fsmc.c\ $(STM32F4LIB)/src/stm32f4xx_gpio.c\ $(STM32F4LIB)/src/stm32f4xx_hash.c\ $(STM32F4LIB)/src/stm32f4xx_hash_md5.c\ $(STM32F4LIB)/src/stm32f4xx_hash_sha1.c\ $(STM32F4LIB)/src/stm32f4xx_i2c.c\ $(STM32F4LIB)/src/stm32f4xx_iwdg.c\ $(STM32F4LIB)/src/stm32f4xx_ltdc.c\ $(STM32F4LIB)/src/stm32f4xx_pwr.c\ $(STM32F4LIB)/src/stm32f4xx_qspi.c\ $(STM32F4LIB)/src/stm32f4xx_rcc.c\ $(STM32F4LIB)/src/stm32f4xx_rng.c\ $(STM32F4LIB)/src/stm32f4xx_rtc.c\ $(STM32F4LIB)/src/stm32f4xx_sai.c\ $(STM32F4LIB)/src/stm32f4xx_sdio.c\ $(STM32F4LIB)/src/stm32f4xx_spdifrx.c\ $(STM32F4LIB)/src/stm32f4xx_spi.c\ $(STM32F4LIB)/src/stm32f4xx_syscfg.c\ $(STM32F4LIB)/src/stm32f4xx_tim.c\ $(STM32F4LIB)/src/stm32f4xx_usart.c\ $(STM32F4LIB)/src/stm32f4xx_wwdg.c STM32F4LIB_OBJS = $(STM32F4LIB_SRCS:.c=.o) CMSIS_SRCS=\ $(CMSIS)/DSP_Lib/Source/BasicMathFunctions/arm_abs_f32.c\ $(CMSIS)/DSP_Lib/Source/BasicMathFunctions/arm_abs_q15.c\ $(CMSIS)/DSP_Lib/Source/BasicMathFunctions/arm_abs_q31.c\ $(CMSIS)/DSP_Lib/Source/BasicMathFunctions/arm_abs_q7.c\ $(CMSIS)/DSP_Lib/Source/BasicMathFunctions/arm_add_f32.c\ $(CMSIS)/DSP_Lib/Source/BasicMathFunctions/arm_add_q15.c\ $(CMSIS)/DSP_Lib/Source/BasicMathFunctions/arm_add_q31.c\ $(CMSIS)/DSP_Lib/Source/BasicMathFunctions/arm_add_q7.c\ $(CMSIS)/DSP_Lib/Source/BasicMathFunctions/arm_dot_prod_f32.c\ $(CMSIS)/DSP_Lib/Source/BasicMathFunctions/arm_dot_prod_q15.c\ $(CMSIS)/DSP_Lib/Source/BasicMathFunctions/arm_dot_prod_q31.c\ $(CMSIS)/DSP_Lib/Source/BasicMathFunctions/arm_dot_prod_q7.c\ $(CMSIS)/DSP_Lib/Source/BasicMathFunctions/arm_mult_f32.c\ $(CMSIS)/DSP_Lib/Source/BasicMathFunctions/arm_mult_q15.c\ $(CMSIS)/DSP_Lib/Source/BasicMathFunctions/arm_mult_q31.c\ $(CMSIS)/DSP_Lib/Source/BasicMathFunctions/arm_mult_q7.c\ $(CMSIS)/DSP_Lib/Source/BasicMathFunctions/arm_negate_f32.c\ $(CMSIS)/DSP_Lib/Source/BasicMathFunctions/arm_negate_q15.c\ $(CMSIS)/DSP_Lib/Source/BasicMathFunctions/arm_negate_q31.c\ $(CMSIS)/DSP_Lib/Source/BasicMathFunctions/arm_negate_q7.c\ $(CMSIS)/DSP_Lib/Source/BasicMathFunctions/arm_offset_f32.c\ $(CMSIS)/DSP_Lib/Source/BasicMathFunctions/arm_offset_q15.c\ $(CMSIS)/DSP_Lib/Source/BasicMathFunctions/arm_offset_q31.c\ $(CMSIS)/DSP_Lib/Source/BasicMathFunctions/arm_offset_q7.c\ $(CMSIS)/DSP_Lib/Source/BasicMathFunctions/arm_scale_f32.c\ $(CMSIS)/DSP_Lib/Source/BasicMathFunctions/arm_scale_q15.c\ $(CMSIS)/DSP_Lib/Source/BasicMathFunctions/arm_scale_q31.c\ $(CMSIS)/DSP_Lib/Source/BasicMathFunctions/arm_scale_q7.c\ $(CMSIS)/DSP_Lib/Source/BasicMathFunctions/arm_shift_q15.c\ $(CMSIS)/DSP_Lib/Source/BasicMathFunctions/arm_shift_q31.c\ $(CMSIS)/DSP_Lib/Source/BasicMathFunctions/arm_shift_q7.c\ $(CMSIS)/DSP_Lib/Source/BasicMathFunctions/arm_sub_f32.c\ $(CMSIS)/DSP_Lib/Source/BasicMathFunctions/arm_sub_q15.c\ $(CMSIS)/DSP_Lib/Source/BasicMathFunctions/arm_sub_q31.c\ $(CMSIS)/DSP_Lib/Source/BasicMathFunctions/arm_sub_q7.c\ $(CMSIS)/DSP_Lib/Source/CommonTables/arm_common_tables.c\ $(CMSIS)/DSP_Lib/Source/CommonTables/arm_const_structs.c\ $(CMSIS)/DSP_Lib/Source/ComplexMathFunctions/arm_cmplx_conj_f32.c\ $(CMSIS)/DSP_Lib/Source/ComplexMathFunctions/arm_cmplx_conj_q15.c\ $(CMSIS)/DSP_Lib/Source/ComplexMathFunctions/arm_cmplx_conj_q31.c\ $(CMSIS)/DSP_Lib/Source/ComplexMathFunctions/arm_cmplx_dot_prod_f32.c\ $(CMSIS)/DSP_Lib/Source/ComplexMathFunctions/arm_cmplx_dot_prod_q15.c\ $(CMSIS)/DSP_Lib/Source/ComplexMathFunctions/arm_cmplx_dot_prod_q31.c\ $(CMSIS)/DSP_Lib/Source/ComplexMathFunctions/arm_cmplx_mag_f32.c\ $(CMSIS)/DSP_Lib/Source/ComplexMathFunctions/arm_cmplx_mag_q15.c\ $(CMSIS)/DSP_Lib/Source/ComplexMathFunctions/arm_cmplx_mag_q31.c\ $(CMSIS)/DSP_Lib/Source/ComplexMathFunctions/arm_cmplx_mag_squared_f32.c\ $(CMSIS)/DSP_Lib/Source/ComplexMathFunctions/arm_cmplx_mag_squared_q15.c\ $(CMSIS)/DSP_Lib/Source/ComplexMathFunctions/arm_cmplx_mag_squared_q31.c\ $(CMSIS)/DSP_Lib/Source/ComplexMathFunctions/arm_cmplx_mult_cmplx_f32.c\ $(CMSIS)/DSP_Lib/Source/ComplexMathFunctions/arm_cmplx_mult_cmplx_q15.c\ $(CMSIS)/DSP_Lib/Source/ComplexMathFunctions/arm_cmplx_mult_cmplx_q31.c\ $(CMSIS)/DSP_Lib/Source/ComplexMathFunctions/arm_cmplx_mult_real_f32.c\ $(CMSIS)/DSP_Lib/Source/ComplexMathFunctions/arm_cmplx_mult_real_q15.c\ $(CMSIS)/DSP_Lib/Source/ComplexMathFunctions/arm_cmplx_mult_real_q31.c\ $(CMSIS)/DSP_Lib/Source/ControllerFunctions/arm_pid_init_f32.c\ $(CMSIS)/DSP_Lib/Source/ControllerFunctions/arm_pid_init_q15.c\ $(CMSIS)/DSP_Lib/Source/ControllerFunctions/arm_pid_init_q31.c\ $(CMSIS)/DSP_Lib/Source/ControllerFunctions/arm_pid_reset_f32.c\ $(CMSIS)/DSP_Lib/Source/ControllerFunctions/arm_pid_reset_q15.c\ $(CMSIS)/DSP_Lib/Source/ControllerFunctions/arm_pid_reset_q31.c\ $(CMSIS)/DSP_Lib/Source/ControllerFunctions/arm_sin_cos_f32.c\ $(CMSIS)/DSP_Lib/Source/ControllerFunctions/arm_sin_cos_q31.c\ $(CMSIS)/DSP_Lib/Source/FastMathFunctions/arm_cos_f32.c\ $(CMSIS)/DSP_Lib/Source/FastMathFunctions/arm_cos_q15.c\ $(CMSIS)/DSP_Lib/Source/FastMathFunctions/arm_cos_q31.c\ $(CMSIS)/DSP_Lib/Source/FastMathFunctions/arm_sin_f32.c\ $(CMSIS)/DSP_Lib/Source/FastMathFunctions/arm_sin_q15.c\ $(CMSIS)/DSP_Lib/Source/FastMathFunctions/arm_sin_q31.c\ $(CMSIS)/DSP_Lib/Source/FastMathFunctions/arm_sqrt_q15.c\ $(CMSIS)/DSP_Lib/Source/FastMathFunctions/arm_sqrt_q31.c\ $(CMSIS)/DSP_Lib/Source/FilteringFunctions/arm_biquad_cascade_df1_32x64_init_q31.c\ $(CMSIS)/DSP_Lib/Source/FilteringFunctions/arm_biquad_cascade_df1_32x64_q31.c\ $(CMSIS)/DSP_Lib/Source/FilteringFunctions/arm_biquad_cascade_df1_f32.c\ $(CMSIS)/DSP_Lib/Source/FilteringFunctions/arm_biquad_cascade_df1_fast_q15.c\ $(CMSIS)/DSP_Lib/Source/FilteringFunctions/arm_biquad_cascade_df1_fast_q31.c\ $(CMSIS)/DSP_Lib/Source/FilteringFunctions/arm_biquad_cascade_df1_init_f32.c\ $(CMSIS)/DSP_Lib/Source/FilteringFunctions/arm_biquad_cascade_df1_init_q15.c\ $(CMSIS)/DSP_Lib/Source/FilteringFunctions/arm_biquad_cascade_df1_init_q31.c\ $(CMSIS)/DSP_Lib/Source/FilteringFunctions/arm_biquad_cascade_df1_q15.c\ $(CMSIS)/DSP_Lib/Source/FilteringFunctions/arm_biquad_cascade_df1_q31.c\ $(CMSIS)/DSP_Lib/Source/FilteringFunctions/arm_biquad_cascade_df2T_f32.c\ $(CMSIS)/DSP_Lib/Source/FilteringFunctions/arm_biquad_cascade_df2T_f64.c\ $(CMSIS)/DSP_Lib/Source/FilteringFunctions/arm_biquad_cascade_df2T_init_f32.c\ $(CMSIS)/DSP_Lib/Source/FilteringFunctions/arm_biquad_cascade_df2T_init_f64.c\ $(CMSIS)/DSP_Lib/Source/FilteringFunctions/arm_biquad_cascade_stereo_df2T_f32.c\ $(CMSIS)/DSP_Lib/Source/FilteringFunctions/arm_biquad_cascade_stereo_df2T_init_f32.c\ $(CMSIS)/DSP_Lib/Source/FilteringFunctions/arm_conv_f32.c\ $(CMSIS)/DSP_Lib/Source/FilteringFunctions/arm_conv_fast_opt_q15.c\ $(CMSIS)/DSP_Lib/Source/FilteringFunctions/arm_conv_fast_q15.c\ $(CMSIS)/DSP_Lib/Source/FilteringFunctions/arm_conv_fast_q31.c\ $(CMSIS)/DSP_Lib/Source/FilteringFunctions/arm_conv_opt_q15.c\ $(CMSIS)/DSP_Lib/Source/FilteringFunctions/arm_conv_opt_q7.c\ $(CMSIS)/DSP_Lib/Source/FilteringFunctions/arm_conv_partial_f32.c\ $(CMSIS)/DSP_Lib/Source/FilteringFunctions/arm_conv_partial_fast_opt_q15.c\ $(CMSIS)/DSP_Lib/Source/FilteringFunctions/arm_conv_partial_fast_q15.c\ $(CMSIS)/DSP_Lib/Source/FilteringFunctions/arm_conv_partial_fast_q31.c\ $(CMSIS)/DSP_Lib/Source/FilteringFunctions/arm_conv_partial_opt_q15.c\ $(CMSIS)/DSP_Lib/Source/FilteringFunctions/arm_conv_partial_opt_q7.c\ $(CMSIS)/DSP_Lib/Source/FilteringFunctions/arm_conv_partial_q15.c\ $(CMSIS)/DSP_Lib/Source/FilteringFunctions/arm_conv_partial_q31.c\ $(CMSIS)/DSP_Lib/Source/FilteringFunctions/arm_conv_partial_q7.c\ $(CMSIS)/DSP_Lib/Source/FilteringFunctions/arm_conv_q15.c\ $(CMSIS)/DSP_Lib/Source/FilteringFunctions/arm_conv_q31.c\ $(CMSIS)/DSP_Lib/Source/FilteringFunctions/arm_conv_q7.c\ $(CMSIS)/DSP_Lib/Source/FilteringFunctions/arm_correlate_f32.c\ $(CMSIS)/DSP_Lib/Source/FilteringFunctions/arm_correlate_fast_opt_q15.c\ $(CMSIS)/DSP_Lib/Source/FilteringFunctions/arm_correlate_fast_q15.c\ $(CMSIS)/DSP_Lib/Source/FilteringFunctions/arm_correlate_fast_q31.c\ $(CMSIS)/DSP_Lib/Source/FilteringFunctions/arm_correlate_opt_q15.c\ $(CMSIS)/DSP_Lib/Source/FilteringFunctions/arm_correlate_opt_q7.c\ $(CMSIS)/DSP_Lib/Source/FilteringFunctions/arm_correlate_q15.c\ $(CMSIS)/DSP_Lib/Source/FilteringFunctions/arm_correlate_q31.c\ $(CMSIS)/DSP_Lib/Source/FilteringFunctions/arm_correlate_q7.c\ $(CMSIS)/DSP_Lib/Source/FilteringFunctions/arm_fir_decimate_f32.c\ $(CMSIS)/DSP_Lib/Source/FilteringFunctions/arm_fir_decimate_fast_q15.c\ $(CMSIS)/DSP_Lib/Source/FilteringFunctions/arm_fir_decimate_fast_q31.c\ $(CMSIS)/DSP_Lib/Source/FilteringFunctions/arm_fir_decimate_init_f32.c\ $(CMSIS)/DSP_Lib/Source/FilteringFunctions/arm_fir_decimate_init_q15.c\ $(CMSIS)/DSP_Lib/Source/FilteringFunctions/arm_fir_decimate_init_q31.c\ $(CMSIS)/DSP_Lib/Source/FilteringFunctions/arm_fir_decimate_q15.c\ $(CMSIS)/DSP_Lib/Source/FilteringFunctions/arm_fir_decimate_q31.c\ $(CMSIS)/DSP_Lib/Source/FilteringFunctions/arm_fir_f32.c\ $(CMSIS)/DSP_Lib/Source/FilteringFunctions/arm_fir_fast_q15.c\ $(CMSIS)/DSP_Lib/Source/FilteringFunctions/arm_fir_fast_q31.c\ $(CMSIS)/DSP_Lib/Source/FilteringFunctions/arm_fir_init_f32.c\ $(CMSIS)/DSP_Lib/Source/FilteringFunctions/arm_fir_init_q15.c\ $(CMSIS)/DSP_Lib/Source/FilteringFunctions/arm_fir_init_q31.c\ $(CMSIS)/DSP_Lib/Source/FilteringFunctions/arm_fir_init_q7.c\ $(CMSIS)/DSP_Lib/Source/FilteringFunctions/arm_fir_interpolate_f32.c\ $(CMSIS)/DSP_Lib/Source/FilteringFunctions/arm_fir_interpolate_init_f32.c\ $(CMSIS)/DSP_Lib/Source/FilteringFunctions/arm_fir_interpolate_init_q15.c\ $(CMSIS)/DSP_Lib/Source/FilteringFunctions/arm_fir_interpolate_init_q31.c\ $(CMSIS)/DSP_Lib/Source/FilteringFunctions/arm_fir_interpolate_q15.c\ $(CMSIS)/DSP_Lib/Source/FilteringFunctions/arm_fir_interpolate_q31.c\ $(CMSIS)/DSP_Lib/Source/FilteringFunctions/arm_fir_lattice_f32.c\ $(CMSIS)/DSP_Lib/Source/FilteringFunctions/arm_fir_lattice_init_f32.c\ $(CMSIS)/DSP_Lib/Source/FilteringFunctions/arm_fir_lattice_init_q15.c\ $(CMSIS)/DSP_Lib/Source/FilteringFunctions/arm_fir_lattice_init_q31.c\ $(CMSIS)/DSP_Lib/Source/FilteringFunctions/arm_fir_lattice_q15.c\ $(CMSIS)/DSP_Lib/Source/FilteringFunctions/arm_fir_lattice_q31.c\ $(CMSIS)/DSP_Lib/Source/FilteringFunctions/arm_fir_q15.c\ $(CMSIS)/DSP_Lib/Source/FilteringFunctions/arm_fir_q31.c\ $(CMSIS)/DSP_Lib/Source/FilteringFunctions/arm_fir_q7.c\ $(CMSIS)/DSP_Lib/Source/FilteringFunctions/arm_fir_sparse_f32.c\ $(CMSIS)/DSP_Lib/Source/FilteringFunctions/arm_fir_sparse_init_f32.c\ $(CMSIS)/DSP_Lib/Source/FilteringFunctions/arm_fir_sparse_init_q15.c\ $(CMSIS)/DSP_Lib/Source/FilteringFunctions/arm_fir_sparse_init_q31.c\ $(CMSIS)/DSP_Lib/Source/FilteringFunctions/arm_fir_sparse_init_q7.c\ $(CMSIS)/DSP_Lib/Source/FilteringFunctions/arm_fir_sparse_q15.c\ $(CMSIS)/DSP_Lib/Source/FilteringFunctions/arm_fir_sparse_q31.c\ $(CMSIS)/DSP_Lib/Source/FilteringFunctions/arm_fir_sparse_q7.c\ $(CMSIS)/DSP_Lib/Source/FilteringFunctions/arm_iir_lattice_f32.c\ $(CMSIS)/DSP_Lib/Source/FilteringFunctions/arm_iir_lattice_init_f32.c\ $(CMSIS)/DSP_Lib/Source/FilteringFunctions/arm_iir_lattice_init_q15.c\ $(CMSIS)/DSP_Lib/Source/FilteringFunctions/arm_iir_lattice_init_q31.c\ $(CMSIS)/DSP_Lib/Source/FilteringFunctions/arm_iir_lattice_q15.c\ $(CMSIS)/DSP_Lib/Source/FilteringFunctions/arm_iir_lattice_q31.c\ $(CMSIS)/DSP_Lib/Source/FilteringFunctions/arm_lms_f32.c\ $(CMSIS)/DSP_Lib/Source/FilteringFunctions/arm_lms_init_f32.c\ $(CMSIS)/DSP_Lib/Source/FilteringFunctions/arm_lms_init_q15.c\ $(CMSIS)/DSP_Lib/Source/FilteringFunctions/arm_lms_init_q31.c\ $(CMSIS)/DSP_Lib/Source/FilteringFunctions/arm_lms_norm_f32.c\ $(CMSIS)/DSP_Lib/Source/FilteringFunctions/arm_lms_norm_init_f32.c\ $(CMSIS)/DSP_Lib/Source/FilteringFunctions/arm_lms_norm_init_q15.c\ $(CMSIS)/DSP_Lib/Source/FilteringFunctions/arm_lms_norm_init_q31.c\ $(CMSIS)/DSP_Lib/Source/FilteringFunctions/arm_lms_norm_q15.c\ $(CMSIS)/DSP_Lib/Source/FilteringFunctions/arm_lms_norm_q31.c\ $(CMSIS)/DSP_Lib/Source/FilteringFunctions/arm_lms_q15.c\ $(CMSIS)/DSP_Lib/Source/FilteringFunctions/arm_lms_q31.c\ $(CMSIS)/DSP_Lib/Source/MatrixFunctions/arm_mat_add_f32.c\ $(CMSIS)/DSP_Lib/Source/MatrixFunctions/arm_mat_add_q15.c\ $(CMSIS)/DSP_Lib/Source/MatrixFunctions/arm_mat_add_q31.c\ $(CMSIS)/DSP_Lib/Source/MatrixFunctions/arm_mat_cmplx_mult_f32.c\ $(CMSIS)/DSP_Lib/Source/MatrixFunctions/arm_mat_cmplx_mult_q15.c\ $(CMSIS)/DSP_Lib/Source/MatrixFunctions/arm_mat_cmplx_mult_q31.c\ $(CMSIS)/DSP_Lib/Source/MatrixFunctions/arm_mat_init_f32.c\ $(CMSIS)/DSP_Lib/Source/MatrixFunctions/arm_mat_init_q15.c\ $(CMSIS)/DSP_Lib/Source/MatrixFunctions/arm_mat_init_q31.c\ $(CMSIS)/DSP_Lib/Source/MatrixFunctions/arm_mat_inverse_f32.c\ $(CMSIS)/DSP_Lib/Source/MatrixFunctions/arm_mat_inverse_f64.c\ $(CMSIS)/DSP_Lib/Source/MatrixFunctions/arm_mat_mult_f32.c\ $(CMSIS)/DSP_Lib/Source/MatrixFunctions/arm_mat_mult_fast_q15.c\ $(CMSIS)/DSP_Lib/Source/MatrixFunctions/arm_mat_mult_fast_q31.c\ $(CMSIS)/DSP_Lib/Source/MatrixFunctions/arm_mat_mult_q15.c\ $(CMSIS)/DSP_Lib/Source/MatrixFunctions/arm_mat_mult_q31.c\ $(CMSIS)/DSP_Lib/Source/MatrixFunctions/arm_mat_scale_f32.c\ $(CMSIS)/DSP_Lib/Source/MatrixFunctions/arm_mat_scale_q15.c\ $(CMSIS)/DSP_Lib/Source/MatrixFunctions/arm_mat_scale_q31.c\ $(CMSIS)/DSP_Lib/Source/MatrixFunctions/arm_mat_sub_f32.c\ $(CMSIS)/DSP_Lib/Source/MatrixFunctions/arm_mat_sub_q15.c\ $(CMSIS)/DSP_Lib/Source/MatrixFunctions/arm_mat_sub_q31.c\ $(CMSIS)/DSP_Lib/Source/MatrixFunctions/arm_mat_trans_f32.c\ $(CMSIS)/DSP_Lib/Source/MatrixFunctions/arm_mat_trans_q15.c\ $(CMSIS)/DSP_Lib/Source/MatrixFunctions/arm_mat_trans_q31.c\ $(CMSIS)/DSP_Lib/Source/StatisticsFunctions/arm_max_f32.c\ $(CMSIS)/DSP_Lib/Source/StatisticsFunctions/arm_max_q15.c\ $(CMSIS)/DSP_Lib/Source/StatisticsFunctions/arm_max_q31.c\ $(CMSIS)/DSP_Lib/Source/StatisticsFunctions/arm_max_q7.c\ $(CMSIS)/DSP_Lib/Source/StatisticsFunctions/arm_mean_f32.c\ $(CMSIS)/DSP_Lib/Source/StatisticsFunctions/arm_mean_q15.c\ $(CMSIS)/DSP_Lib/Source/StatisticsFunctions/arm_mean_q31.c\ $(CMSIS)/DSP_Lib/Source/StatisticsFunctions/arm_mean_q7.c\ $(CMSIS)/DSP_Lib/Source/StatisticsFunctions/arm_min_f32.c\ $(CMSIS)/DSP_Lib/Source/StatisticsFunctions/arm_min_q15.c\ $(CMSIS)/DSP_Lib/Source/StatisticsFunctions/arm_min_q31.c\ $(CMSIS)/DSP_Lib/Source/StatisticsFunctions/arm_min_q7.c\ $(CMSIS)/DSP_Lib/Source/StatisticsFunctions/arm_power_f32.c\ $(CMSIS)/DSP_Lib/Source/StatisticsFunctions/arm_power_q15.c\ $(CMSIS)/DSP_Lib/Source/StatisticsFunctions/arm_power_q31.c\ $(CMSIS)/DSP_Lib/Source/StatisticsFunctions/arm_power_q7.c\ $(CMSIS)/DSP_Lib/Source/StatisticsFunctions/arm_rms_f32.c\ $(CMSIS)/DSP_Lib/Source/StatisticsFunctions/arm_rms_q15.c\ $(CMSIS)/DSP_Lib/Source/StatisticsFunctions/arm_rms_q31.c\ $(CMSIS)/DSP_Lib/Source/StatisticsFunctions/arm_std_f32.c\ $(CMSIS)/DSP_Lib/Source/StatisticsFunctions/arm_std_q15.c\ $(CMSIS)/DSP_Lib/Source/StatisticsFunctions/arm_std_q31.c\ $(CMSIS)/DSP_Lib/Source/StatisticsFunctions/arm_var_f32.c\ $(CMSIS)/DSP_Lib/Source/StatisticsFunctions/arm_var_q15.c\ $(CMSIS)/DSP_Lib/Source/StatisticsFunctions/arm_var_q31.c\ $(CMSIS)/DSP_Lib/Source/SupportFunctions/arm_copy_f32.c\ $(CMSIS)/DSP_Lib/Source/SupportFunctions/arm_copy_q15.c\ $(CMSIS)/DSP_Lib/Source/SupportFunctions/arm_copy_q31.c\ $(CMSIS)/DSP_Lib/Source/SupportFunctions/arm_copy_q7.c\ $(CMSIS)/DSP_Lib/Source/SupportFunctions/arm_fill_f32.c\ $(CMSIS)/DSP_Lib/Source/SupportFunctions/arm_fill_q15.c\ $(CMSIS)/DSP_Lib/Source/SupportFunctions/arm_fill_q31.c\ $(CMSIS)/DSP_Lib/Source/SupportFunctions/arm_fill_q7.c\ $(CMSIS)/DSP_Lib/Source/SupportFunctions/arm_float_to_q15.c\ $(CMSIS)/DSP_Lib/Source/SupportFunctions/arm_float_to_q31.c\ $(CMSIS)/DSP_Lib/Source/SupportFunctions/arm_float_to_q7.c\ $(CMSIS)/DSP_Lib/Source/SupportFunctions/arm_q15_to_float.c\ $(CMSIS)/DSP_Lib/Source/SupportFunctions/arm_q15_to_q31.c\ $(CMSIS)/DSP_Lib/Source/SupportFunctions/arm_q15_to_q7.c\ $(CMSIS)/DSP_Lib/Source/SupportFunctions/arm_q31_to_float.c\ $(CMSIS)/DSP_Lib/Source/SupportFunctions/arm_q31_to_q15.c\ $(CMSIS)/DSP_Lib/Source/SupportFunctions/arm_q31_to_q7.c\ $(CMSIS)/DSP_Lib/Source/SupportFunctions/arm_q7_to_float.c\ $(CMSIS)/DSP_Lib/Source/SupportFunctions/arm_q7_to_q15.c\ $(CMSIS)/DSP_Lib/Source/SupportFunctions/arm_q7_to_q31.c\ $(CMSIS)/DSP_Lib/Source/TransformFunctions/arm_bitreversal.c\ $(CMSIS)/DSP_Lib/Source/TransformFunctions/arm_cfft_f32.c\ $(CMSIS)/DSP_Lib/Source/TransformFunctions/arm_cfft_q15.c\ $(CMSIS)/DSP_Lib/Source/TransformFunctions/arm_cfft_q31.c\ $(CMSIS)/DSP_Lib/Source/TransformFunctions/arm_cfft_radix2_f32.c\ $(CMSIS)/DSP_Lib/Source/TransformFunctions/arm_cfft_radix2_init_f32.c\ $(CMSIS)/DSP_Lib/Source/TransformFunctions/arm_cfft_radix2_init_q15.c\ $(CMSIS)/DSP_Lib/Source/TransformFunctions/arm_cfft_radix2_init_q31.c\ $(CMSIS)/DSP_Lib/Source/TransformFunctions/arm_cfft_radix2_q15.c\ $(CMSIS)/DSP_Lib/Source/TransformFunctions/arm_cfft_radix2_q31.c\ $(CMSIS)/DSP_Lib/Source/TransformFunctions/arm_cfft_radix4_f32.c\ $(CMSIS)/DSP_Lib/Source/TransformFunctions/arm_cfft_radix4_init_f32.c\ $(CMSIS)/DSP_Lib/Source/TransformFunctions/arm_cfft_radix4_init_q15.c\ $(CMSIS)/DSP_Lib/Source/TransformFunctions/arm_cfft_radix4_init_q31.c\ $(CMSIS)/DSP_Lib/Source/TransformFunctions/arm_cfft_radix4_q15.c\ $(CMSIS)/DSP_Lib/Source/TransformFunctions/arm_cfft_radix4_q31.c\ $(CMSIS)/DSP_Lib/Source/TransformFunctions/arm_cfft_radix8_f32.c\ $(CMSIS)/DSP_Lib/Source/TransformFunctions/arm_dct4_f32.c\ $(CMSIS)/DSP_Lib/Source/TransformFunctions/arm_dct4_init_f32.c\ $(CMSIS)/DSP_Lib/Source/TransformFunctions/arm_dct4_init_q15.c\ $(CMSIS)/DSP_Lib/Source/TransformFunctions/arm_dct4_init_q31.c\ $(CMSIS)/DSP_Lib/Source/TransformFunctions/arm_dct4_q15.c\ $(CMSIS)/DSP_Lib/Source/TransformFunctions/arm_dct4_q31.c\ $(CMSIS)/DSP_Lib/Source/TransformFunctions/arm_rfft_f32.c\ $(CMSIS)/DSP_Lib/Source/TransformFunctions/arm_rfft_fast_f32.c\ $(CMSIS)/DSP_Lib/Source/TransformFunctions/arm_rfft_fast_init_f32.c\ $(CMSIS)/DSP_Lib/Source/TransformFunctions/arm_rfft_init_f32.c\ $(CMSIS)/DSP_Lib/Source/TransformFunctions/arm_rfft_init_q15.c\ $(CMSIS)/DSP_Lib/Source/TransformFunctions/arm_rfft_init_q31.c\ $(CMSIS)/DSP_Lib/Source/TransformFunctions/arm_rfft_q15.c\ $(CMSIS)/DSP_Lib/Source/TransformFunctions/arm_rfft_q31.c\ CMSIS_OBJS = $(CMSIS_SRCS:.c=.o) $(CMSIS)/DSP_Lib/Source/TransformFunctions/arm_bitreversal2.o ################################################### # Codec 2 CODEC2_DIR = ../../.. CODEC2_SRC = $(CODEC2_DIR)/src CODEC2_BLD = $(CODEC2_DIR)/build_linux CODEC2_SRCS=\ $(CODEC2_SRC)/lpc.c \ $(CODEC2_SRC)/nlp.c \ $(CODEC2_SRC)/postfilter.c \ $(CODEC2_SRC)/sine.c \ $(CODEC2_SRC)/codec2.c \ $(CODEC2_SRC)/codec2_fft.c \ $(CODEC2_SRC)/cohpsk.c \ $(CODEC2_SRC)/linreg.c \ $(CODEC2_SRC)/kiss_fft.c \ $(CODEC2_SRC)/kiss_fftr.c \ $(CODEC2_SRC)/interp.c \ $(CODEC2_SRC)/lsp.c \ $(CODEC2_SRC)/mbest.c \ $(CODEC2_SRC)/newamp1.c \ $(CODEC2_SRC)/phase.c \ $(CODEC2_SRC)/quantise.c \ $(CODEC2_SRC)/pack.c \ $(CODEC2_SRC)/codebook.c \ $(CODEC2_SRC)/codebookd.c \ $(CODEC2_SRC)/codebookjvm.c \ $(CODEC2_SRC)/codebookge.c \ $(CODEC2_SRC)/codebooknewamp1.c \ $(CODEC2_SRC)/codebooknewamp1_energy.c \ $(CODEC2_SRC)/dump.c \ $(CODEC2_SRC)/fdmdv.c \ $(CODEC2_SRC)/freedv_api.c \ $(CODEC2_SRC)/filter.c \ $(CODEC2_SRC)/varicode.c \ $(CODEC2_SRC)/golay23.c \ $(CODEC2_SRC)/fsk.c \ $(CODEC2_SRC)/fmfsk.c \ $(CODEC2_SRC)/freedv_vhf_framing.c \ $(CODEC2_SRC)/freedv_data_channel.c \ $(CODEC2_SRC)/ofdm.c \ $(CODEC2_SRC)/phi0.c \ $(CODEC2_SRC)/mpdecode_core.c \ $(CODEC2_SRC)/gp_interleaver.c \ $(CODEC2_SRC)/interldpc.c \ $(CODEC2_SRC)/HRA_112_112.c \ CFLAGS += -D__EMBEDDED__ CFLAGS += -I$(CODEC2_SRC) CFLAGS += -I$(CODEC2_BLD) ################################################### # Codec2/STM32 CODEC2_STM32_DIR := ../.. CODEC2_STM32_SRC = $(CODEC2_STM32_DIR)/src CODEC2_STM32_HDR = $(CODEC2_STM32_DIR)/inc CFLAGS += -I$(CODEC2_STM32_HDR) CFLAGS += -T$(CODEC2_STM32_DIR)/stm32_flash.ld #enable this for dump files to help verify optimisation #CFLAGS += -DDUMP ASFLAGS += $(CFLAGS) ################################################### ROOT=$(shell pwd) # Library paths LIBPATHS = # Libraries to link # Standard ARM semihosting LIBS = -lg -lrdimon -lm --specs=rdimon.specs # startup file SRCS += startup_stm32f4xx.s SRCS += init.c SRCS += stm32f4_machdep.c SRCS += $(CODEC2_STM32_SRC)/system_stm32f4xx.c all: libstm32f4.a \ tst_codec2_enc.bin tst_codec2_dec.bin \ tst_ofdm_mod.bin tst_ofdm_demod.bin \ tst_ldpc_enc.bin tst_ldpc_dec.bin \ tst_api_mod.bin tst_api_demod.bin \ tst_semihost.bin \ tst_codec2_fft_init.bin libstm32f4.a: $(CMSIS_OBJS) $(STM32F4LIB_OBJS) find -L $(PERIPHLIBDIR) -type f -name '*.o' -exec $(AR) crs libstm32f4.a {} ";" # Kludgy target to build a file with CFLAGS -DPROFILE %.profile.o: %.c $(CC) $(CPPFLAGS) $(CFLAGS) -DPROFILE -c -o $@ $< # Rule for building .bin files from a .elf %.bin: %.elf $(OBJCOPY) -O binary $< $@ #####%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#### ##### Used for debugging stdio (with semihosting) : ## ## TMP_NEWLIB_INCS = -INewlib ## TMP_NEWLIB_DEFS = -DARM_RDI_MONITOR ## TMP_NEWLIB_OBJS = Newlib/fread.o Newlib/refill.o Newlib/syscalls.o Newlib/stdio.o Newlib/readr.o Newlib/fclose.o Newlib/fflush.o ## ## Newlib/fread.o: Newlib/fread.c ## $(CC) -c $(CFLAGS) $^ -o Newlib/fread.o $(TMP_NEWLIB_INCS) $(TMP_NEWLIB_DEFS) ## ## Newlib/refill.o: Newlib/refill.c ## $(CC) -c $(CFLAGS) $^ -o Newlib/refill.o $(TMP_NEWLIB_INCS) $(TMP_NEWLIB_DEFS) ## ## Newlib/syscalls.o: Newlib/syscalls.c ## $(CC) -c $(CFLAGS) $^ -o Newlib/syscalls.o $(TMP_NEWLIB_INCS) $(TMP_NEWLIB_DEFS) ## ## Newlib/stdio.o: Newlib/stdio.c ## $(CC) -c $(CFLAGS) $^ -o Newlib/stdio.o $(TMP_NEWLIB_INCS) $(TMP_NEWLIB_DEFS) ## ## Newlib/readr.o: Newlib/readr.c ## $(CC) -c $(CFLAGS) $^ -o Newlib/readr.o $(TMP_NEWLIB_INCS) $(TMP_NEWLIB_DEFS) ## #####%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#### #################################################### # Test Programs # ----------------------------------------------- TST_API_TX_SRCS=\ tst_api_tx.c \ semihosting.c \ $(CODEC2_STM32_SRC)/system_stm32f4xx.c TST_API_TX_SRCS += $(CODEC2_SRCS) TST_API_TX_SRCS += $(SRCS) tst_api_tx.elf: $(TST_API_TX_SRCS:.c=.profile.o) libstm32f4.a $(CC) $(CFLAGS) -DPROFILE $^ -o $@ $(LIBPATHS) $(LIBS) # ----------------------------------------------- TST_CODEC2_ENC_SRCS=\ tst_codec2_enc.c \ semihosting.c \ $(CODEC2_STM32_SRC)/system_stm32f4xx.c # TST_CODEC2_ENC_SRCS += $(CODEC2_SRCS) TST_CODEC2_ENC_SRCS += $(SRCS) # tst_codec2_enc.elf: $(TST_CODEC2_ENC_SRCS:.c=.profile.o) libstm32f4.a $(CC) $(CFLAGS) -DPROFILE $^ -o $@ $(LIBPATHS) $(LIBS) -Wl,-Map=tst_codec2_enc.map # ----------------------------------------------- TST_CODEC2_DEC_SRCS=\ tst_codec2_dec.c \ semihosting.c \ $(CODEC2_STM32_SRC)/system_stm32f4xx.c # TST_CODEC2_DEC_SRCS += $(CODEC2_SRCS) TST_CODEC2_DEC_SRCS += $(SRCS) # tst_codec2_dec.elf: $(TST_CODEC2_DEC_SRCS:.c=.profile.o) libstm32f4.a $(CC) $(CFLAGS) -DPROFILE $^ -o $@ $(LIBPATHS) $(LIBS) # ----------------------------------------------- TST_API_MOD_SRCS=\ tst_api_mod.c \ semihosting.c \ $(CODEC2_STM32_SRC)/system_stm32f4xx.c # TST_API_MOD_SRCS += $(CODEC2_SRCS) TST_API_MOD_SRCS += $(SRCS) # tst_api_mod.elf: $(TST_API_MOD_SRCS:.c=.profile.o) libstm32f4.a # $(TMP_NEWLIB_OBJS) $(CC) $(CFLAGS) -DPROFILE $^ -o $@ $(LIBPATHS) $(LIBS) # ----------------------------------------------- # TST_API_MOD_700D_PROFILE # TST_API_MOD_700D_PROFILE_SRCS=\ tst_api_mod_700d_profile.c \ semihosting.c \ $(CODEC2_STM32_SRC)/system_stm32f4xx.c # TST_API_MOD_700D_PROFILE_SRCS += $(CODEC2_SRCS) TST_API_MOD_700D_PROFILE_SRCS += $(SRCS) # tst_api_mod_700d_profile.elf: $(TST_API_MOD_700D_PROFILE_SRCS:.c=.profile.o) libstm32f4.a $(CC) $(CFLAGS) -DPROFILE $^ -o $@ $(LIBPATHS) $(LIBS) # ----------------------------------------------- # TST_API_DEMOD TST_API_DEMOD_SRCS=\ tst_api_demod.c \ semihosting.c \ $(CODEC2_STM32_SRC)/system_stm32f4xx.c ## (for debug use) sbrk_dbg.c \ # TST_API_DEMOD_SRCS += $(CODEC2_SRCS) TST_API_DEMOD_SRCS += $(SRCS) # tst_api_demod.elf: $(TST_API_DEMOD_SRCS:.c=.o) libstm32f4.a $(CC) $(CFLAGS) -DPROFILE $^ -o $@ $(LIBPATHS) $(LIBS) -Wl,-Map=tst_api_demod.map # ----------------------------------------------- # TST_API_DEMOD_700D_PROFILE api_demod_700d_in_10f: # Each frame of OFDM is 160ms which is 1280 speech samples of 2 bytes each. # dd bs=2560 count=100 if=../../../raw/hts1.raw of=tmp_spch_in.raw cohpsk_ch tmp_spch_in.raw tmp_modout.raw -20 -Fs 8000 -f -5 --raw_dir ../../../raw freedv_tx 700D tmp_modout.raw api_demod_700d_in_10f --txbpf 0 # api_demod_700d_in_10f.c: api_demod_700d_in_10f xxd -i api_demod_700d_in_10f > api_demod_700d_in_10f.c # TST_API_DEMOD_700D_PROFILE_SRCS=\ tst_api_demod_700d_profile.c \ semihosting.c \ $(CODEC2_STM32_SRC)/system_stm32f4xx.c ## (for debug use) sbrk_dbg.c \ # tst_api_demod_700d_profile.profile.o: tst_api_demod_700d_profile.c api_demod_700d_in_10f.c $(CC) $(CPPFLAGS) $(CFLAGS) -DPROFILE -c -o $@ $< # TST_API_DEMOD_700D_PROFILE_SRCS += $(CODEC2_SRCS) TST_API_DEMOD_700D_PROFILE_SRCS += $(SRCS) # tst_api_demod_700d_profile.elf: $(TST_API_DEMOD_700D_PROFILE_SRCS:.c=.profile.o) libstm32f4.a $(CC) $(CFLAGS) -DPROFILE $^ -o $@ $(LIBPATHS) $(LIBS) # ----------------------------------------------- TST_OFDM_MOD_SRCS=\ tst_ofdm_mod.c \ semihosting.c \ $(CODEC2_SRC)/ofdm.c \ $(CODEC2_STM32_SRC)/system_stm32f4xx.c TST_OFDM_MOD_SRCS += $(CODEC2_SRCS) TST_OFDM_MOD_SRCS += $(SRCS) tst_ofdm_mod.elf: $(TST_OFDM_MOD_SRCS:.c=.profile.o) libstm32f4.a $(CC) $(CFLAGS) -DPROFILE $^ -o $@ $(LIBPATHS) $(LIBS) # ----------------------------------------------- TST_OFDM_DEMOD_SRCS=\ tst_ofdm_demod.c \ semihosting.c \ $(CODEC2_SRC)/ofdm.c \ $(CODEC2_STM32_SRC)/system_stm32f4xx.c # TST_OFDM_DEMOD_SRCS += $(CODEC2_SRCS) TST_OFDM_DEMOD_SRCS += $(SRCS) # tst_ofdm_demod.elf: $(TST_OFDM_DEMOD_SRCS:.c=.profile.o) libstm32f4.a $(CC) $(CFLAGS) $^ -o $@ $(LIBPATHS) $(LIBS) -Wl,-Map=tst_ofdm_demod.map # ----------------------------------------------- # TST_OFDM_MOD_STACK # ofdm_mod_ref_10f: $(CODEC2_BLD)/src/ofdm_mod /dev/zero ofdm_mod_ref_10f --testframes 1 --ldpc # ofdm_mod_ref_10f.c: ofdm_mod_ref_10f xxd -g2 -e -i ofdm_mod_ref_10f > ofdm_mod_ref_10f.c # tst_ofdm_mod_stack.profile.o: tst_ofdm_mod_stack.c ofdm_mod_ref_10f.c $(CC) $(CPPFLAGS) $(CFLAGS) -DPROFILE -c -o $@ $< # TST_OFDM_MOD_STACK_SRCS=\ tst_ofdm_mod_stack.c \ function_trace.c \ $(CODEC2_SRC)/ofdm.c \ $(CODEC2_STM32_SRC)/system_stm32f4xx.c # TST_OFDM_MOD_STACK_SRCS += $(CODEC2_SRCS) TST_OFDM_MOD_STACK_SRCS += $(SRCS) # tst_ofdm_mod_stack.elf: $(TST_OFDM_MOD_STACK_SRCS:.c=.o) libstm32f4.a $(CC) $(CFLAGS) $^ -o $@ $(LIBPATHS) $(LIBS) -Wl,-Map=tst_ofdm_mod_stack.map # ----------------------------------------------- # TST_OFDM_DEMOD_STACK ofdm_demod_in_10f: $(CODEC2_BLD)/src/ofdm_get_test_bits - -f 10 | \ $(CODEC2_BLD)/src/ofdm_mod - ofdm_demod_in_10f # ofdm_demod_in_10f.c: ofdm_demod_in_10f xxd -i ofdm_demod_in_10f > ofdm_demod_in_10f.c # ofdm_demod_ref_10f: ofdm_demod_in_10f $(CODEC2_BLD)/src/ofdm_demod ofdm_demod_in_10f ofdm_demod_ref_10f # ofdm_demod_ref_10f.c: ofdm_demod_ref_10f xxd -i ofdm_demod_ref_10f > ofdm_demod_ref_10f.c # tst_ofdm_demod_stack.o: ofdm_demod_in_10f.c ofdm_demod_ref_10f.c # TST_OFDM_DEMOD_STACK_SRCS=\ tst_ofdm_demod_stack.c \ $(CODEC2_SRC)/ofdm.c \ $(CODEC2_STM32_SRC)/system_stm32f4xx.c # TST_OFDM_DEMOD_STACK_SRCS += $(CODEC2_SRCS) TST_OFDM_DEMOD_STACK_SRCS += $(SRCS) # tst_ofdm_demod_stack.elf: $(TST_OFDM_DEMOD_STACK_SRCS:.c=.o) libstm32f4.a $(CC) $(CFLAGS) $^ -o $@ $(LIBPATHS) $(LIBS) -Wl,-Map=tst_ofdm_demod_stack.map # ----------------------------------------------- # Not working yet! TST_LDPC_ENC_SRCS= \ tst_ldpc_enc.c \ semihosting.c \ $(CODEC2_STM32_SRC)/system_stm32f4xx.c # TST_LDPC_ENC_SRCS += $(CODEC2_SRCS) TST_LDPC_ENC_SRCS += $(SRCS) # TST_LDPC_ENC_HDR= \ $(CODEC2_INC)/mpdecode_code_test.h # tst_ldpc_enc.elf: $(TST_LDPC_ENC_SRCS:.c=.profile.o) libstm32f4.a $(TST_LDPC_ENC_HRDS) $(CC) $(CFLAGS) -DPROFILE $^ -o $@ $(LIBPATHS) $(LIBS) # ----------------------------------------------- # Not working yet! TST_LDPC_DEC_SRCS= \ tst_ldpc_dec.c \ semihosting.c \ $(CODEC2_STM32_SRC)/system_stm32f4xx.c # TST_LDPC_DEC_SRCS += $(CODEC2_SRCS) TST_LDPC_DEC_SRCS += $(SRCS) # TST_LDPC_DEC_HDR= \ $(CODEC2_INC)/mpdecode_code.h # tst_ldpc_dec.elf: $(TST_LDPC_DEC_SRCS:.c=.profile.o) libstm32f4.a $(TST_LDPC_DEC_HRDS) $(CC) $(CFLAGS) -DPROFILE $^ -o $@ $(LIBPATHS) $(LIBS) -Wl,-Map=tst_ldpc_dec.map # ----------------------------------------------- TST_SEMIHOST_SRCS=\ tst_semihost.c \ semihosting.c \ $(CODEC2_STM32_SRC)/system_stm32f4xx.c # TST_SEMIHOST_SRCS += $(CODEC2_SRCS) TST_SEMIHOST_SRCS += $(SRCS) # tst_semihost.elf: $(TST_SEMIHOST_SRCS:.c=.o) libstm32f4.a #$(TMP_NEWLIB_OBJS) $(CC) $(CFLAGS) $^ -o $@ $(LIBPATHS) $(LIBS) # ----------------------------------------------- TST_CODEC2_FFT_INIT_SRCS=\ tst_codec2_fft_init.c \ semihosting.c \ $(CODEC2_STM32_SRC)/system_stm32f4xx.c # TST_CODEC2_FFT_INIT_SRCS += $(CODEC2_SRCS) TST_CODEC2_FFT_INIT_SRCS += $(SRCS) # tst_codec2_fft_init.elf: $(TST_CODEC2_FFT_INIT_SRCS:.c=.o) libstm32f4.a $(CC) $(CFLAGS) $^ -o $@ $(LIBPATHS) $(LIBS) ################################################### clean: rm -f *.elf *.bin rm -f libstm32f4.a rm -f $(CMSIS_OBJS) $(STM32F4LIB_OBJS) $(CODEC2_SRC)/*.o find . -type f -name '*.o' | xargs rm -f codec2-1.0.1/stm32/unittest/src/init.c000066400000000000000000000001261412132000500173600ustar00rootroot00000000000000/* * Dummy function to avoid compiler error */ void _init() { } void _fini() { } codec2-1.0.1/stm32/unittest/src/semihosting.c000066400000000000000000000005111412132000500207440ustar00rootroot00000000000000#include #include #include #include #include "semihosting.h" extern void initialise_monitor_handles(void); extern int errno; int semihosting_init(void) { initialise_monitor_handles(); setvbuf(stderr, NULL, _IOLBF, 256); return(0); } /* vi:set ts=4 et sts=4: */ codec2-1.0.1/stm32/unittest/src/semihosting.h000066400000000000000000000002051412132000500207510ustar00rootroot00000000000000#ifndef SEMIHOSTING_H #define SEMIHOSTING_H extern int semihosting_init(void); #endif // SEMIHOSTING_H /* vi:set ts=4 et sts=4: */ codec2-1.0.1/stm32/unittest/src/startup_stm32f4xx.s000066400000000000000000000463531412132000500220150ustar00rootroot00000000000000/** ****************************************************************************** * @file startup_stm32f4xx.s * @author MCD Application Team * @version V1.0.0 * @date 30-September-2011 * @brief STM32F4xx Devices vector table for Atollic TrueSTUDIO toolchain. * This module performs: * - Set the initial SP * - Set the initial PC == Reset_Handler, * - Set the vector table entries with the exceptions ISR address * - Configure the clock system and the external SRAM mounted on * STM324xG-EVAL board to be used as data memory (optional, * to be enabled by user) * - Branches to main in the C library (which eventually * calls main()). * After Reset the Cortex-M4 processor is in Thread mode, * priority is Privileged, and the Stack is set to Main. ****************************************************************************** * @attention * * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE * TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY * DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING * FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. * *

© COPYRIGHT 2011 STMicroelectronics

****************************************************************************** */ .syntax unified .cpu cortex-m3 .fpu softvfp .thumb .global g_pfnVectors .global Default_Handler .global EndofMain /* start address for the initialization values of the .data section. defined in linker script */ .word _sidata /* start address for the .data section. defined in linker script */ .word _sdata /* end address for the .data section. defined in linker script */ .word _edata /* start address for the .bss section. defined in linker script */ .word _sbss /* end address for the .bss section. defined in linker script */ .word _ebss /* stack used for SystemInit_ExtMemCtl; always internal RAM used */ /** * @brief This is the code that gets called when the processor first * starts execution following a reset event. Only the absolutely * necessary set is performed, after which the application * supplied main() routine is called. * @param None * @retval : None */ .section .text.Reset_Handler .weak Reset_Handler .type Reset_Handler, %function Reset_Handler: /* Copy the data segment initializers from flash to SRAM */ movs r1, #0 b LoopCopyDataInit CopyDataInit: ldr r3, =_sidata ldr r3, [r3, r1] str r3, [r0, r1] adds r1, r1, #4 LoopCopyDataInit: ldr r0, =_sdata ldr r3, =_edata adds r2, r0, r1 cmp r2, r3 bcc CopyDataInit ldr r2, =_sbss b LoopFillZerobss /* Zero fill the bss segment. */ FillZerobss: movs r3, #0 str r3, [r2], #4 LoopFillZerobss: ldr r3, = _ebss cmp r2, r3 bcc FillZerobss /* Fill stack area with a fix pattern for observince max stack use */ mov r2, r3 ldr r3, = _estack ldr r4, =0x55555555 b LoopFillStack FillStack: str r4, [r2], #4 LoopFillStack: cmp r2, r3 bcc FillStack /* Call the clock system intitialization function.*/ bl SystemInit /* Call static constructors */ bl __libc_init_array /* Call the application's entry point.*/ bl main EndofMain: bl . .size Reset_Handler, .-Reset_Handler /** * @brief This is the code that gets called when the processor receives an * unexpected interrupt. This simply enters an infinite loop, preserving * the system state for examination by a debugger. * @param None * @retval None */ .section .text.Default_Handler,"ax",%progbits Default_Handler: Infinite_Loop: b Infinite_Loop .size Default_Handler, .-Default_Handler /****************************************************************************** * * The minimal vector table for a Cortex M3. Note that the proper constructs * must be placed on this to ensure that it ends up at physical address * 0x0000.0000. * *******************************************************************************/ .section .isr_vector,"a",%progbits .type g_pfnVectors, %object .size g_pfnVectors, .-g_pfnVectors g_pfnVectors: .word _estack .word Reset_Handler .word NMI_Handler .word HardFault_Handler .word MemManage_Handler .word BusFault_Handler .word UsageFault_Handler .word 0 .word 0 .word 0 .word 0 .word SVC_Handler .word DebugMon_Handler .word 0 .word PendSV_Handler .word SysTick_Handler /* External Interrupts */ .word WWDG_IRQHandler /* Window WatchDog */ .word PVD_IRQHandler /* PVD through EXTI Line detection */ .word TAMP_STAMP_IRQHandler /* Tamper and TimeStamps through the EXTI line */ .word RTC_WKUP_IRQHandler /* RTC Wakeup through the EXTI line */ .word FLASH_IRQHandler /* FLASH */ .word RCC_IRQHandler /* RCC */ .word EXTI0_IRQHandler /* EXTI Line0 */ .word EXTI1_IRQHandler /* EXTI Line1 */ .word EXTI2_IRQHandler /* EXTI Line2 */ .word EXTI3_IRQHandler /* EXTI Line3 */ .word EXTI4_IRQHandler /* EXTI Line4 */ .word DMA1_Stream0_IRQHandler /* DMA1 Stream 0 */ .word DMA1_Stream1_IRQHandler /* DMA1 Stream 1 */ .word DMA1_Stream2_IRQHandler /* DMA1 Stream 2 */ .word DMA1_Stream3_IRQHandler /* DMA1 Stream 3 */ .word DMA1_Stream4_IRQHandler /* DMA1 Stream 4 */ .word DMA1_Stream5_IRQHandler /* DMA1 Stream 5 */ .word DMA1_Stream6_IRQHandler /* DMA1 Stream 6 */ .word ADC_IRQHandler /* ADC1, ADC2 and ADC3s */ .word CAN1_TX_IRQHandler /* CAN1 TX */ .word CAN1_RX0_IRQHandler /* CAN1 RX0 */ .word CAN1_RX1_IRQHandler /* CAN1 RX1 */ .word CAN1_SCE_IRQHandler /* CAN1 SCE */ .word EXTI9_5_IRQHandler /* External Line[9:5]s */ .word TIM1_BRK_TIM9_IRQHandler /* TIM1 Break and TIM9 */ .word TIM1_UP_TIM10_IRQHandler /* TIM1 Update and TIM10 */ .word TIM1_TRG_COM_TIM11_IRQHandler /* TIM1 Trigger and Commutation and TIM11 */ .word TIM1_CC_IRQHandler /* TIM1 Capture Compare */ .word TIM2_IRQHandler /* TIM2 */ .word TIM3_IRQHandler /* TIM3 */ .word TIM4_IRQHandler /* TIM4 */ .word I2C1_EV_IRQHandler /* I2C1 Event */ .word I2C1_ER_IRQHandler /* I2C1 Error */ .word I2C2_EV_IRQHandler /* I2C2 Event */ .word I2C2_ER_IRQHandler /* I2C2 Error */ .word SPI1_IRQHandler /* SPI1 */ .word SPI2_IRQHandler /* SPI2 */ .word USART1_IRQHandler /* USART1 */ .word USART2_IRQHandler /* USART2 */ .word USART3_IRQHandler /* USART3 */ .word EXTI15_10_IRQHandler /* External Line[15:10]s */ .word RTC_Alarm_IRQHandler /* RTC Alarm (A and B) through EXTI Line */ .word OTG_FS_WKUP_IRQHandler /* USB OTG FS Wakeup through EXTI line */ .word TIM8_BRK_TIM12_IRQHandler /* TIM8 Break and TIM12 */ .word TIM8_UP_TIM13_IRQHandler /* TIM8 Update and TIM13 */ .word TIM8_TRG_COM_TIM14_IRQHandler /* TIM8 Trigger and Commutation and TIM14 */ .word TIM8_CC_IRQHandler /* TIM8 Capture Compare */ .word DMA1_Stream7_IRQHandler /* DMA1 Stream7 */ .word FSMC_IRQHandler /* FSMC */ .word SDIO_IRQHandler /* SDIO */ .word TIM5_IRQHandler /* TIM5 */ .word SPI3_IRQHandler /* SPI3 */ .word UART4_IRQHandler /* UART4 */ .word UART5_IRQHandler /* UART5 */ .word TIM6_DAC_IRQHandler /* TIM6 and DAC1&2 underrun errors */ .word TIM7_IRQHandler /* TIM7 */ .word DMA2_Stream0_IRQHandler /* DMA2 Stream 0 */ .word DMA2_Stream1_IRQHandler /* DMA2 Stream 1 */ .word DMA2_Stream2_IRQHandler /* DMA2 Stream 2 */ .word DMA2_Stream3_IRQHandler /* DMA2 Stream 3 */ .word DMA2_Stream4_IRQHandler /* DMA2 Stream 4 */ .word ETH_IRQHandler /* Ethernet */ .word ETH_WKUP_IRQHandler /* Ethernet Wakeup through EXTI line */ .word CAN2_TX_IRQHandler /* CAN2 TX */ .word CAN2_RX0_IRQHandler /* CAN2 RX0 */ .word CAN2_RX1_IRQHandler /* CAN2 RX1 */ .word CAN2_SCE_IRQHandler /* CAN2 SCE */ .word OTG_FS_IRQHandler /* USB OTG FS */ .word DMA2_Stream5_IRQHandler /* DMA2 Stream 5 */ .word DMA2_Stream6_IRQHandler /* DMA2 Stream 6 */ .word DMA2_Stream7_IRQHandler /* DMA2 Stream 7 */ .word USART6_IRQHandler /* USART6 */ .word I2C3_EV_IRQHandler /* I2C3 event */ .word I2C3_ER_IRQHandler /* I2C3 error */ .word OTG_HS_EP1_OUT_IRQHandler /* USB OTG HS End Point 1 Out */ .word OTG_HS_EP1_IN_IRQHandler /* USB OTG HS End Point 1 In */ .word OTG_HS_WKUP_IRQHandler /* USB OTG HS Wakeup through EXTI */ .word OTG_HS_IRQHandler /* USB OTG HS */ .word DCMI_IRQHandler /* DCMI */ .word CRYP_IRQHandler /* CRYP crypto */ .word HASH_RNG_IRQHandler /* Hash and Rng */ .word FPU_IRQHandler /* FPU */ /******************************************************************************* * * Provide weak aliases for each Exception handler to the Default_Handler. * As they are weak aliases, any function with the same name will override * this definition. * *******************************************************************************/ .weak NMI_Handler .thumb_set NMI_Handler,Default_Handler .weak HardFault_Handler .thumb_set HardFault_Handler,Default_Handler .weak MemManage_Handler .thumb_set MemManage_Handler,Default_Handler .weak BusFault_Handler .thumb_set BusFault_Handler,Default_Handler .weak UsageFault_Handler .thumb_set UsageFault_Handler,Default_Handler .weak SVC_Handler .thumb_set SVC_Handler,Default_Handler .weak DebugMon_Handler .thumb_set DebugMon_Handler,Default_Handler .weak PendSV_Handler .thumb_set PendSV_Handler,Default_Handler .weak SysTick_Handler .thumb_set SysTick_Handler,Default_Handler .weak WWDG_IRQHandler .thumb_set WWDG_IRQHandler,Default_Handler .weak PVD_IRQHandler .thumb_set PVD_IRQHandler,Default_Handler .weak TAMP_STAMP_IRQHandler .thumb_set TAMP_STAMP_IRQHandler,Default_Handler .weak RTC_WKUP_IRQHandler .thumb_set RTC_WKUP_IRQHandler,Default_Handler .weak FLASH_IRQHandler .thumb_set FLASH_IRQHandler,Default_Handler .weak RCC_IRQHandler .thumb_set RCC_IRQHandler,Default_Handler .weak EXTI0_IRQHandler .thumb_set EXTI0_IRQHandler,Default_Handler .weak EXTI1_IRQHandler .thumb_set EXTI1_IRQHandler,Default_Handler .weak EXTI2_IRQHandler .thumb_set EXTI2_IRQHandler,Default_Handler .weak EXTI3_IRQHandler .thumb_set EXTI3_IRQHandler,Default_Handler .weak EXTI4_IRQHandler .thumb_set EXTI4_IRQHandler,Default_Handler .weak DMA1_Stream0_IRQHandler .thumb_set DMA1_Stream0_IRQHandler,Default_Handler .weak DMA1_Stream1_IRQHandler .thumb_set DMA1_Stream1_IRQHandler,Default_Handler .weak DMA1_Stream2_IRQHandler .thumb_set DMA1_Stream2_IRQHandler,Default_Handler .weak DMA1_Stream3_IRQHandler .thumb_set DMA1_Stream3_IRQHandler,Default_Handler .weak DMA1_Stream4_IRQHandler .thumb_set DMA1_Stream4_IRQHandler,Default_Handler .weak DMA1_Stream5_IRQHandler .thumb_set DMA1_Stream5_IRQHandler,Default_Handler .weak DMA1_Stream6_IRQHandler .thumb_set DMA1_Stream6_IRQHandler,Default_Handler .weak ADC_IRQHandler .thumb_set ADC_IRQHandler,Default_Handler .weak CAN1_TX_IRQHandler .thumb_set CAN1_TX_IRQHandler,Default_Handler .weak CAN1_RX0_IRQHandler .thumb_set CAN1_RX0_IRQHandler,Default_Handler .weak CAN1_RX1_IRQHandler .thumb_set CAN1_RX1_IRQHandler,Default_Handler .weak CAN1_SCE_IRQHandler .thumb_set CAN1_SCE_IRQHandler,Default_Handler .weak EXTI9_5_IRQHandler .thumb_set EXTI9_5_IRQHandler,Default_Handler .weak TIM1_BRK_TIM9_IRQHandler .thumb_set TIM1_BRK_TIM9_IRQHandler,Default_Handler .weak TIM1_UP_TIM10_IRQHandler .thumb_set TIM1_UP_TIM10_IRQHandler,Default_Handler .weak TIM1_TRG_COM_TIM11_IRQHandler .thumb_set TIM1_TRG_COM_TIM11_IRQHandler,Default_Handler .weak TIM1_CC_IRQHandler .thumb_set TIM1_CC_IRQHandler,Default_Handler .weak TIM2_IRQHandler .thumb_set TIM2_IRQHandler,Default_Handler .weak TIM3_IRQHandler .thumb_set TIM3_IRQHandler,Default_Handler .weak TIM4_IRQHandler .thumb_set TIM4_IRQHandler,Default_Handler .weak I2C1_EV_IRQHandler .thumb_set I2C1_EV_IRQHandler,Default_Handler .weak I2C1_ER_IRQHandler .thumb_set I2C1_ER_IRQHandler,Default_Handler .weak I2C2_EV_IRQHandler .thumb_set I2C2_EV_IRQHandler,Default_Handler .weak I2C2_ER_IRQHandler .thumb_set I2C2_ER_IRQHandler,Default_Handler .weak SPI1_IRQHandler .thumb_set SPI1_IRQHandler,Default_Handler .weak SPI2_IRQHandler .thumb_set SPI2_IRQHandler,Default_Handler .weak USART1_IRQHandler .thumb_set USART1_IRQHandler,Default_Handler .weak USART2_IRQHandler .thumb_set USART2_IRQHandler,Default_Handler .weak USART3_IRQHandler .thumb_set USART3_IRQHandler,Default_Handler .weak EXTI15_10_IRQHandler .thumb_set EXTI15_10_IRQHandler,Default_Handler .weak RTC_Alarm_IRQHandler .thumb_set RTC_Alarm_IRQHandler,Default_Handler .weak OTG_FS_WKUP_IRQHandler .thumb_set OTG_FS_WKUP_IRQHandler,Default_Handler .weak TIM8_BRK_TIM12_IRQHandler .thumb_set TIM8_BRK_TIM12_IRQHandler,Default_Handler .weak TIM8_UP_TIM13_IRQHandler .thumb_set TIM8_UP_TIM13_IRQHandler,Default_Handler .weak TIM8_TRG_COM_TIM14_IRQHandler .thumb_set TIM8_TRG_COM_TIM14_IRQHandler,Default_Handler .weak TIM8_CC_IRQHandler .thumb_set TIM8_CC_IRQHandler,Default_Handler .weak DMA1_Stream7_IRQHandler .thumb_set DMA1_Stream7_IRQHandler,Default_Handler .weak FSMC_IRQHandler .thumb_set FSMC_IRQHandler,Default_Handler .weak SDIO_IRQHandler .thumb_set SDIO_IRQHandler,Default_Handler .weak TIM5_IRQHandler .thumb_set TIM5_IRQHandler,Default_Handler .weak SPI3_IRQHandler .thumb_set SPI3_IRQHandler,Default_Handler .weak UART4_IRQHandler .thumb_set UART4_IRQHandler,Default_Handler .weak UART5_IRQHandler .thumb_set UART5_IRQHandler,Default_Handler .weak TIM6_DAC_IRQHandler .thumb_set TIM6_DAC_IRQHandler,Default_Handler .weak TIM7_IRQHandler .thumb_set TIM7_IRQHandler,Default_Handler .weak DMA2_Stream0_IRQHandler .thumb_set DMA2_Stream0_IRQHandler,Default_Handler .weak DMA2_Stream1_IRQHandler .thumb_set DMA2_Stream1_IRQHandler,Default_Handler .weak DMA2_Stream2_IRQHandler .thumb_set DMA2_Stream2_IRQHandler,Default_Handler .weak DMA2_Stream3_IRQHandler .thumb_set DMA2_Stream3_IRQHandler,Default_Handler .weak DMA2_Stream4_IRQHandler .thumb_set DMA2_Stream4_IRQHandler,Default_Handler .weak ETH_IRQHandler .thumb_set ETH_IRQHandler,Default_Handler .weak ETH_WKUP_IRQHandler .thumb_set ETH_WKUP_IRQHandler,Default_Handler .weak CAN2_TX_IRQHandler .thumb_set CAN2_TX_IRQHandler,Default_Handler .weak CAN2_RX0_IRQHandler .thumb_set CAN2_RX0_IRQHandler,Default_Handler .weak CAN2_RX1_IRQHandler .thumb_set CAN2_RX1_IRQHandler,Default_Handler .weak CAN2_SCE_IRQHandler .thumb_set CAN2_SCE_IRQHandler,Default_Handler .weak OTG_FS_IRQHandler .thumb_set OTG_FS_IRQHandler,Default_Handler .weak DMA2_Stream5_IRQHandler .thumb_set DMA2_Stream5_IRQHandler,Default_Handler .weak DMA2_Stream6_IRQHandler .thumb_set DMA2_Stream6_IRQHandler,Default_Handler .weak DMA2_Stream7_IRQHandler .thumb_set DMA2_Stream7_IRQHandler,Default_Handler .weak USART6_IRQHandler .thumb_set USART6_IRQHandler,Default_Handler .weak I2C3_EV_IRQHandler .thumb_set I2C3_EV_IRQHandler,Default_Handler .weak I2C3_ER_IRQHandler .thumb_set I2C3_ER_IRQHandler,Default_Handler .weak OTG_HS_EP1_OUT_IRQHandler .thumb_set OTG_HS_EP1_OUT_IRQHandler,Default_Handler .weak OTG_HS_EP1_IN_IRQHandler .thumb_set OTG_HS_EP1_IN_IRQHandler,Default_Handler .weak OTG_HS_WKUP_IRQHandler .thumb_set OTG_HS_WKUP_IRQHandler,Default_Handler .weak OTG_HS_IRQHandler .thumb_set OTG_HS_IRQHandler,Default_Handler .weak DCMI_IRQHandler .thumb_set DCMI_IRQHandler,Default_Handler .weak CRYP_IRQHandler .thumb_set CRYP_IRQHandler,Default_Handler .weak HASH_RNG_IRQHandler .thumb_set HASH_RNG_IRQHandler,Default_Handler .weak FPU_IRQHandler .thumb_set FPU_IRQHandler,Default_Handler /******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/ codec2-1.0.1/stm32/unittest/src/tst_api_demod.c000066400000000000000000000157231412132000500212410ustar00rootroot00000000000000/*------------------------------------------------------ FILE........: tst_api_demod.c AUTHOR......: David Rowe, Don Reid DATE CREATED: 7 July 2018 Test and profile OFDM de-modulation on the STM32F4. -------------------------------------------------------*/ /* Copyright (C) 2014 David Rowe All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 2.1, as published by the Free Software Foundation. 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 Lesser General Public License along with this program; if not, see . */ /* Typical run, using internal testframes: # Input # Copy N frames of a raw audio file to stm_in.raw. dd bs=2560 count=30 if=../../../../raw/hts1.raw of=spch_in.raw freedv_tx 700D spch_in.raw stm_in.raw --testframes # Reference freedv_rx 700D stm_in.raw ref_demod.raw --testframes # Create config echo "71000010" > stm_cfg.txt # Run stm32 run_stm32_prog ../../src/tst_api_demod.elf --load */ #include #include #include #include #include #include #include #include #include #include #include #include "freedv_api.h" #include "modem_stats.h" #include "codec2.h" #include "semihosting.h" #include "stm32f4xx_conf.h" #include "stm32f4xx.h" #include "machdep.h" #include "memtools.h" struct my_callback_state { //FILE *ftxt; }; void my_put_next_rx_char(void *callback_state, char c) { //fprintf(stdout, "text msg: %c\n", c); } void my_put_next_rx_proto(void *callback_state,char *proto_bits){ //fprintf(stdout, "proto chars: %.*s\n",2, proto_bits); } /* Called when a packet has been received */ void my_datarx(void *callback_state, unsigned char *packet, size_t size) { //size_t i; // //fprintf(stdout, "data (%zd bytes): ", size); //for (i = 0; i < size; i++) { // fprintf(stdout, "0x%02x ", packet[i]); //} //fprintf(stdout, "\n"); } /* Called when a new packet can be send */ void my_datatx(void *callback_state, unsigned char *packet, size_t *size) { /* This should not happen while receiving.. */ fprintf(stderr, "datarx callback called, this should not happen!\n"); *size = 0; } #define SPARE_RAM 10000 int main(int argc, char *argv[]) { char dummy[SPARE_RAM]; int f_cfg, f_in, f_out; struct freedv *freedv; struct my_callback_state my_cb_state; int frame; int nread, nin, nout; int sync; float snr_est; // Force test to fail unless we have this much spare RAM (adjusted by experiment) memset(dummy, 0, SPARE_RAM); semihosting_init(); PROFILE_VAR(freedv_rx_start); machdep_profile_init(); //////// // Test configuration, read from stm_cfg.txt int config_mode; // 0 int config_testframes; // 1 int config_verbose; // 6 //int config_profile; // 7 char config[8]; f_cfg = open("stm_cfg.txt", O_RDONLY); if (f_cfg == -1) { fprintf(stderr, "Error opening config file\n"); exit(1); } if (read(f_cfg, &config[0], 8) != 8) { fprintf(stderr, "Error reading config file\n"); exit(1); } config_mode = config[0] - '0'; if (config_mode == 8) { // For the purposes of the UT system, '8' is 700E. config_mode = FREEDV_MODE_700E; } config_testframes = config[1] - '0'; config_verbose = config[6] - '0'; //config_profile = config[7] - '0'; close(f_cfg); printf("config_mode: %d config_verbose: %d\n", config_mode, config_verbose); //////// freedv = freedv_open(config_mode); assert(freedv != NULL); memtools_find_unused(printf); freedv_set_test_frames(freedv, config_testframes); freedv_set_verbose(freedv, config_verbose); freedv_set_snr_squelch_thresh(freedv, -100.0); freedv_set_squelch_en(freedv, 0); short speech_out[freedv_get_n_speech_samples(freedv)]; short demod_in[freedv_get_n_max_modem_samples(freedv)]; freedv_set_callback_txt(freedv, &my_put_next_rx_char, NULL, &my_cb_state); freedv_set_callback_protocol(freedv, &my_put_next_rx_proto, NULL, &my_cb_state); freedv_set_callback_data(freedv, my_datarx, my_datatx, &my_cb_state); //////// // Streams f_in = open("stm_in.raw", O_RDONLY); if (f_in == -1) { perror("Error opening input file\n"); exit(1); } f_out = open("stm_out.raw", (O_CREAT | O_WRONLY), 0644); if (f_out == -1) { perror("Error opening output file\n"); exit(1); } frame = 0; //////// // Main loop nin = freedv_nin(freedv); while((nread = read(f_in, demod_in, (sizeof(short) * nin))) == (nin * sizeof(short))) { fprintf(stderr, "frame: %d, %d bytes read\n", frame, nread); PROFILE_SAMPLE(freedv_rx_start); nout = freedv_rx(freedv, speech_out, demod_in); PROFILE_SAMPLE_AND_LOG2(freedv_rx_start, " freedv_rx"); machdep_profile_print_logged_samples(); fprintf(stderr, " %d short speech values returned\n", nout); if (nout) write(f_out, speech_out, (sizeof(short) * nout)); if (sync == 0) { // discard BER results if we get out of sync, helps us get sensible BER results freedv_set_total_bits(freedv, 0); freedv_set_total_bit_errors(freedv, 0); freedv_set_total_bits_coded(freedv, 0); freedv_set_total_bit_errors_coded(freedv, 0); } freedv_get_modem_stats(freedv, &sync, &snr_est); int total_bit_errors = freedv_get_total_bit_errors(freedv); fprintf(stderr, "frame: %d demod sync: %d nin: %d demod snr: %3.2f dB bit errors: %d\n", frame, sync, nin, (double)snr_est, total_bit_errors); frame++; nin = freedv_nin(freedv); } ////// if (freedv_get_test_frames(freedv)) { int Tbits = freedv_get_total_bits(freedv); int Terrs = freedv_get_total_bit_errors(freedv); fprintf(stderr, "BER......: %5.4f Tbits: %5d Terrs: %5d\n", (double)Terrs/Tbits, Tbits, Terrs); if (config_mode == FREEDV_MODE_700D || config_mode == FREEDV_MODE_700E) { int Tbits_coded = freedv_get_total_bits_coded(freedv); int Terrs_coded = freedv_get_total_bit_errors_coded(freedv); fprintf(stderr, "Coded BER: %5.4f Tbits: %5d Terrs: %5d\n", (double)Terrs_coded/Tbits_coded, Tbits_coded, Terrs_coded); } } printf("Done\n"); close(f_in); close(f_out); memtools_find_unused(printf); printf("\nEnd of Test\n"); } /* vi:set ts=4 et sts=4: */ codec2-1.0.1/stm32/unittest/src/tst_api_demod_700d_profile.c000066400000000000000000000067011412132000500235070ustar00rootroot00000000000000/*------------------------------------------------------ FILE........: tst_api_demod.c AUTHOR......: David Rowe, Don Reid DATE CREATED: 7 July 2018 Test and profile OFDM de-modulation on the STM32F4. -------------------------------------------------------*/ /* Copyright (C) 2014 David Rowe All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 2.1, as published by the Free Software Foundation. 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 Lesser General Public License along with this program; if not, see . */ #include #include #include #include #include #include #include #include #include #include "freedv_api.h" #include "modem_stats.h" #include "codec2.h" #include "semihosting.h" #include "stm32f4xx_conf.h" #include "stm32f4xx.h" #include "machdep.h" /* Input and Reference data */ const #include "api_demod_700d_in_10f.c" struct my_callback_state { //FILE *ftxt; }; void my_put_next_rx_char(void *callback_state, char c) { //fprintf(stdout, "text msg: %c\n", c); } void my_put_next_rx_proto(void *callback_state,char *proto_bits){ //fprintf(stdout, "proto chars: %.*s\n",2, proto_bits); } /* Called when a packet has been received */ void my_datarx(void *callback_state, unsigned char *packet, size_t size) { //size_t i; // //fprintf(stdout, "data (%zd bytes): ", size); //for (i = 0; i < size; i++) { // fprintf(stdout, "0x%02x ", packet[i]); //} //fprintf(stdout, "\n"); } /* Called when a new packet can be send */ void my_datatx(void *callback_state, unsigned char *packet, size_t *size) { /* This should not happen while receiving.. */ fprintf(stderr, "datarx callback called, this should not happen!\n"); *size = 0; } int main(int argc, char *argv[]) { struct freedv *freedv; struct my_callback_state my_cb_state; int frame; int nin, nout; //////// PROFILE_VAR(prof_freedv_rx); machdep_profile_init(); semihosting_init(); //////// freedv = freedv_open(FREEDV_MODE_700D); freedv_set_snr_squelch_thresh(freedv, -100.0); freedv_set_squelch_en(freedv, 0); short speech_out[freedv_get_n_speech_samples(freedv)]; freedv_set_callback_txt(freedv, &my_put_next_rx_char, NULL, &my_cb_state); freedv_set_callback_protocol(freedv, &my_put_next_rx_proto, NULL, &my_cb_state); freedv_set_callback_data(freedv, my_datarx, my_datatx, &my_cb_state); frame = 0; //////// // Main loop nin = freedv_nin(freedv); int in_ptr = 0; while(in_ptr < api_demod_700d_in_10f_len) { PROFILE_SAMPLE(prof_freedv_rx); nout = freedv_shortrx(freedv, speech_out, (short *)&api_demod_700d_in_10f[in_ptr], 1.0f); PROFILE_SAMPLE_AND_LOG2(prof_freedv_rx, "freedv_rx"); //if (nout) write(f_out, speech_out, (sizeof(short) * nout)); frame++; in_ptr += nin * 2; } machdep_profile_print_logged_samples(); fclose(stdout); fclose(stderr); } /* vi:set ts=4 et sts=4: */ codec2-1.0.1/stm32/unittest/src/tst_api_mod.c000066400000000000000000000176351412132000500207340ustar00rootroot00000000000000/*---------------------------------------------------------------------------*\ FILE........: tst_api_mod.c AUTHOR......: David Rowe, Don Reid DATE CREATED: August 2014, Oct 2018 Test modem modulation via freedv API on the STM32F4. \*---------------------------------------------------------------------------*/ /* Copyright (C) 2014 David Rowe All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 2.1, as published by the Free Software Foundation. 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 Lesser General Public License along with this program; if not, see . */ /* Typical run, using internal testframes: # Copy N frames of a raw audio file to stm_in.raw. # N=6, count = 6 * 1280 * 2 = 15360 dd bs=1 count=15360 if=../../../../raw/hts1.raw of=stm_in.raw # Reference freedv_tx 700D stm_in.raw ref_mod.raw --testframes # Create config echo "71000000" > stm_cfg.txt # Run stm32 run_stm32_prog ../../src/tst_api_mod.elf --load # Check output freedv_rx 700D ref_mod.raw ref_rx.raw --testframes freedv_rx 700D stm_out.raw stm_rx.raw --testframes #optional: ofdm_demod ref_mod.raw ref_demod.raw --ldpc --testframes #optional: ofdm_demod stm_out.raw stm_demod.raw --ldpc --testframes compare_ints -s -b 2 ref_mod.raw stm_out.raw */ #include #include #include #include #include #include #include #include #include #include #include "freedv_api.h" #include "codec2.h" #include "semihosting.h" #include "stm32f4xx_conf.h" #include "stm32f4xx.h" #include "machdep.h" #include "memtools.h" struct my_callback_state { char tx_str[80]; char *ptx_str; int calls; }; char my_get_next_tx_char(void *callback_state) { struct my_callback_state* pstate = (struct my_callback_state*)callback_state; char c = *pstate->ptx_str++; //fprintf(stderr, "my_get_next_tx_char: %c\n", c); if (*pstate->ptx_str == 0) { pstate->ptx_str = pstate->tx_str; } return c; } void my_get_next_proto(void *callback_state,char *proto_bits){ struct my_callback_state* cb_states = (struct my_callback_state*)(callback_state); snprintf(proto_bits,3,"%2d",cb_states->calls); cb_states->calls = cb_states->calls + 1; } /* Called when a packet has been received */ void my_datarx(void *callback_state, unsigned char *packet, size_t size) { /* This should not happen while sending... */ fprintf(stderr, "datarx callback called, this should not happen!\n"); } /* Called when a new packet can be send */ void my_datatx(void *callback_state, unsigned char *packet, size_t *size) { static int data_toggle; /* Data could come from a network interface, here we just make up some */ data_toggle = !data_toggle; if (data_toggle) { /* Send a packet with data */ int i; for (i = 0; i < 64; i++) packet[i] = i; *size = i; } else { /* set size to zero, the freedv api will insert a header frame */ *size = 0; } } int main(int argc, char *argv[]) { struct freedv *freedv; int f_cfg, f_in, f_out; int frame; int num_read; //struct CODEC2 *c2; struct my_callback_state my_cb_state; semihosting_init(); memtools_find_unused(printf); //////// // Test configuration, read from stm_cfg.txt int config_mode; // 0 int config_testframes; // 1 int use_clip = 0; // 2 int use_txbpf = 0; // 3 //int config_verbose; // 6 //int config_profile; // 7 char config[8]; f_cfg = open("stm_cfg.txt", O_RDONLY); if (f_cfg == -1) { fprintf(stderr, "Error opening config file\n"); exit(1); } if (read(f_cfg, &config[0], 8) != 8) { fprintf(stderr, "Error reading config file\n"); exit(1); } config_mode = config[0] - '0'; if (config_mode == 8) { // For the purposes of the UT system, '8' is 700E. config_mode = FREEDV_MODE_700E; } config_testframes = config[1] - '0'; use_clip = config[2] - '0'; use_txbpf = config[3] - '0'; //config_verbose = config[6] - '0'; //config_profile = config[7] - '0'; close(f_cfg); //int use_codectx = 0; //int use_datatx = 0; //int use_testframes = 0; int use_ext_vco = 0; //////// //PROFILE_VAR(freedv_start); //machdep_profile_init(); //////// freedv = freedv_open(config_mode); assert(freedv != NULL); fprintf(stderr, "freedv opened %p\n", freedv); freedv_set_test_frames(freedv, config_testframes); int n_speech_samples = freedv_get_n_speech_samples(freedv); short *speech_in = (short*)malloc(sizeof(short)*n_speech_samples); int n_nom_modem_samples = freedv_get_n_nom_modem_samples(freedv); short *mod_out = (short*)malloc(sizeof(short)*n_nom_modem_samples); fprintf(stderr, "n_speech_samples: %d n_nom_modem_samples: %d\n", n_speech_samples, n_nom_modem_samples); fprintf(stderr, "mod_out: %p\n", mod_out); /* // This is "codectx" operation: int c2_mode; if (config_mode == FREEDV_MODE_700) { c2_mode = CODEC2_MODE_700; } else if ((config_mode == FREEDV_MODE_700B) || (config_mode == FREEDV_MODE_800XA)) { c2_mode = CODEC2_MODE_700B; } else if ((config_mode == FREEDV_MODE_700C) || (config_mode == FREEDV_MODE_700D)) { c2_mode = CODEC2_MODE_700C; } else { c2_mode = CODEC2_MODE_1300; } c2 = codec2_create(c2_mode); int bits_per_codec_frame = codec2_bits_per_frame(c2); int bytes_per_codec_frame = (bits_per_codec_frame + 7) / 8; int codec_frames = freedv_get_n_codec_bits(freedv) / bits_per_codec_frame; int inbuf_size = bytes_per_codec_frame * codec_frames; unsigned char inbuf[inbuf_size]; */ freedv_set_snr_squelch_thresh(freedv, -100.0); freedv_set_squelch_en(freedv, 1); freedv_set_clip(freedv, use_clip); freedv_set_tx_bpf(freedv, use_txbpf); freedv_set_ext_vco(freedv, use_ext_vco); freedv_set_eq(freedv, 1); memtools_find_unused(printf); // set up callback for txt msg chars sprintf(my_cb_state.tx_str, "cq cq cq hello world\r"); my_cb_state.ptx_str = my_cb_state.tx_str; my_cb_state.calls = 0; freedv_set_callback_txt(freedv, NULL, &my_get_next_tx_char, &my_cb_state); // set up callback for protocol bits freedv_set_callback_protocol(freedv, NULL, &my_get_next_proto, &my_cb_state); // set up callback for data packets freedv_set_callback_data(freedv, my_datarx, my_datatx, &my_cb_state); //////// // Streams f_in = open("stm_in.raw", O_RDONLY); if (f_in == -1) { perror("Error opening input file\n"); exit(1); } f_out = open("stm_out.raw", (O_CREAT | O_WRONLY), 0644); if (f_out == -1) { perror("Error opening output file\n"); exit(1); } frame = 0; fprintf(stderr, "starting main loop\n"); //////// // Main loop while ((num_read = read(f_in, speech_in, (sizeof(short) * n_speech_samples))) == (sizeof(short) * n_speech_samples)) { fprintf(stderr, "frame: %d\r", frame); freedv_tx(freedv, mod_out, speech_in); write(f_out, mod_out, (sizeof(short) * n_nom_modem_samples)); frame++ ; //machdep_profile_print_logged_samples(); } printf("Done\n"); close(f_in); close(f_out); printf("\nEnd of Test\n"); return(0); } /* vi:set ts=4 et sts=4: */ codec2-1.0.1/stm32/unittest/src/tst_api_mod_700d_profile.c000066400000000000000000000110231412132000500231670ustar00rootroot00000000000000/*---------------------------------------------------------------------------*\ FILE........: tst_api_mod.c AUTHOR......: David Rowe, Don Reid DATE CREATED: August 2014, Oct 2018 Test modem modulation via freedv API on the STM32F4. \*---------------------------------------------------------------------------*/ /* Copyright (C) 2014 David Rowe All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 2.1, as published by the Free Software Foundation. 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 Lesser General Public License along with this program; if not, see . */ /* This is a test implementation of the Freev API Modulation function. * It is used for profiling performance. * * The input is generated within the test. * The output is ignored. */ #include #include #include #include #include #include #include #include #include "freedv_api.h" #include "codec2.h" #include "semihosting.h" #include "stm32f4xx_conf.h" #include "stm32f4xx.h" #include "machdep.h" struct my_callback_state { char tx_str[80]; char *ptx_str; int calls; }; char my_get_next_tx_char(void *callback_state) { struct my_callback_state* pstate = (struct my_callback_state*)callback_state; char c = *pstate->ptx_str++; if (*pstate->ptx_str == 0) { pstate->ptx_str = pstate->tx_str; } return c; } void my_get_next_proto(void *callback_state,char *proto_bits){ struct my_callback_state* cb_states = (struct my_callback_state*)(callback_state); snprintf(proto_bits,3,"%2d",cb_states->calls); cb_states->calls = cb_states->calls + 1; } /* Called when a packet has been received */ void my_datarx(void *callback_state, unsigned char *packet, size_t size) { /* This should not happen while sending... */ assert(0); } /* Called when a new packet can be send */ void my_datatx(void *callback_state, unsigned char *packet, size_t *size) { static int data_toggle; /* Data could come from a network interface, here we just make up some */ data_toggle = !data_toggle; if (data_toggle) { /* Send a packet with data */ int i; for (i = 0; i < 64; i++) packet[i] = i; *size = i; } else { /* set size to zero, the freedv api will insert a header frame */ *size = 0; } } int main(int argc, char *argv[]) { struct freedv *freedv; int i; struct my_callback_state my_cb_state; int use_clip = 0; int use_txbpf = 0; int use_ext_vco = 0; //////// PROFILE_VAR(prof_freedv_tx); machdep_profile_init(); semihosting_init(); //////// freedv = freedv_open(FREEDV_MODE_700D); int n_speech_samples = freedv_get_n_speech_samples(freedv); short *speech_in = (short*)malloc(sizeof(short)*n_speech_samples); int n_nom_modem_samples = freedv_get_n_nom_modem_samples(freedv); short *mod_out = (short*)malloc(sizeof(short)*n_nom_modem_samples); freedv_set_snr_squelch_thresh(freedv, -100.0); freedv_set_squelch_en(freedv, 1); freedv_set_clip(freedv, use_clip); freedv_set_tx_bpf(freedv, use_txbpf); freedv_set_ext_vco(freedv, use_ext_vco); // set up callback for txt msg chars sprintf(my_cb_state.tx_str, "cq cq cq hello world\r"); my_cb_state.ptx_str = my_cb_state.tx_str; my_cb_state.calls = 0; freedv_set_callback_txt(freedv, NULL, &my_get_next_tx_char, &my_cb_state); // set up callback for protocol bits freedv_set_callback_protocol(freedv, NULL, &my_get_next_proto, &my_cb_state); // set up callback for data packets freedv_set_callback_data(freedv, my_datarx, my_datatx, &my_cb_state); int frame = 0; for (i=0; i. */ #include #include #include #include #include #include "semihosting.h" #include "codec2_ofdm.h" #include "ofdm_internal.h" #include "interldpc.h" #include "gp_interleaver.h" #include "stm32f4xx_conf.h" #include "stm32f4xx.h" #include "freedv_api.h" #include "machdep.h" int main(int argc, char *argv[]) { struct freedv *f; FILE *fin, *fout; int frame, n_samples; semihosting_init(); //PROFILE_VAR(freedv_start); //machdep_profile_init(); f = freedv_open(FREEDV_MODE_1600); n_samples = freedv_get_n_speech_samples(f); short inbuf[n_samples], outbuf[n_samples]; freedv_set_test_frames(f, 1); // Transmit --------------------------------------------------------------------- fin = fopen("stm_in.raw", "rb"); if (fin == NULL) { printf("Error opening input file\n"); exit(1); } fout = fopen("mod.raw", "wb"); if (fout == NULL) { printf("Error opening output file\n"); exit(1); } frame = 0; while (fread(inbuf, sizeof(short), n_samples, fin) == n_samples) { //PROFILE_SAMPLE(freedv_start); freedv_tx(f, outbuf, inbuf); //PROFILE_SAMPLE_AND_LOG2(freedv_start, " freedv_tx"); fwrite(outbuf, sizeof(short), n_samples, fout); printf("frame: %d\n", ++frame); //machdep_profile_print_logged_samples(); } fclose(fin); fclose(fout); return 0; } /* vi:set ts=4 et sts=4: */ codec2-1.0.1/stm32/unittest/src/tst_codec2_dec.c000066400000000000000000000077261412132000500212760ustar00rootroot00000000000000/*------------------------------------------------------ FILE........: tst_codec2_dec.c AUTHOR......: David Rowe, Don Reid DATE CREATED: 30 May 2013, Oct 2018 Test Codec 2 decoding on the STM32F4. -------------------------------------------------------*/ /* Copyright (C) 2014 David Rowe All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 2.1, as published by the Free Software Foundation. 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 Lesser General Public License along with this program; if not, see . */ /* Typical run, using internal testframes: # Input # Copy N frames of a raw audio file to stm_in.raw. dd bs=2560 count=30 if=../../../../raw/hts1.raw of=spch_in.raw c2enc 700C spch_in.raw stm_in.raw # Reference c2dec 700C stm_in.raw ref_dec.raw # Create config echo "81000000" > stm_cfg.txt # Run stm32 run_stm32_prog ../../src/tst_codec2_dec.elf --load # Compare outputs compare_ints -s -b 2 ref_dec.raw stm_out.raw # Manual play (and listen) aplay -f S16_LE ref_dec.raw # aplay -f S16_LE stm_out.raw */ #include #include #include #include #include #include #include #include #include #include #include "codec2.h" #include "semihosting.h" #include "stm32f4xx_conf.h" #include "stm32f4xx.h" #include "machdep.h" static char fin_buffer[1024]; static __attribute__ ((section (".ccm"))) char fout_buffer[4*8192]; int main(int argc, char *argv[]) { int f_cfg; int frame; void *codec2; short *buf; unsigned char *bits; int nsam, nbit, nbyte; semihosting_init(); //////// // Test configuration, read from stm_cfg.txt int config_mode; // 0 int config_gray; // 1 //int config_verbose; // 6 //int config_profile; // 7 char config[8]; f_cfg = open("stm_cfg.txt", O_RDONLY); if (f_cfg == -1) { fprintf(stderr, "Error opening config file\n"); exit(1); } if (read(f_cfg, &config[0], 8) != 8) { fprintf(stderr, "Error reading config file\n"); exit(1); } config_mode = config[0] - '0'; config_gray = config[1] - '0'; //config_verbose = config[6] - '0'; //config_profile = config[7] - '0'; close(f_cfg); //////// // Setup codec2 = codec2_create(config_mode); assert(codec2 != NULL); codec2_set_natural_or_gray(codec2, config_gray); nsam = codec2_samples_per_frame(codec2); nbit = codec2_bits_per_frame(codec2); buf = (short*)malloc(nsam*sizeof(short)); nbyte = (nbit + 7) / 8; bits = (unsigned char*)malloc(nbyte*sizeof(char)); //////// // Streams FILE* fin = fopen("stm_in.raw", "rb"); if (fin == NULL) { perror("Error opening input file\n"); exit(1); } setvbuf(fin, fin_buffer,_IOFBF,sizeof(fin_buffer)); FILE *fout = fopen("stm_out.raw", "wb" ); if (fout == NULL) { perror("Error opening output file\n"); exit(1); } setvbuf(fout, fout_buffer,_IOFBF,sizeof(fout_buffer)); frame = 0; //////// // Main loop int bytes_per_frame = (sizeof(char) * nbyte); while (fread(bits, 1, bytes_per_frame, fin) == (size_t)bytes_per_frame) { codec2_decode_ber(codec2, buf, bits, 0.0); fwrite(buf, sizeof(short) , nsam, fout); frame ++; } fclose(fin); fclose(fout); printf("\nEnd of Test\n"); fclose(stdout); fclose(stderr); } /* vi:set ts=4 et sts=4: */ codec2-1.0.1/stm32/unittest/src/tst_codec2_enc.c000066400000000000000000000104431412132000500212760ustar00rootroot00000000000000/*---------------------------------------------------------------------------*\ FILE........: tst_codec2_enc.c, (derived from codec2_profile.c) AUTHOR......: David Rowe, Don Reid DATE CREATED: 30 May 2013, Oct 2018 Test Codec 2 encoding on the STM32F4. \*---------------------------------------------------------------------------*/ /* Copyright (C) 2014 David Rowe All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 2.1, as published by the Free Software Foundation. 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 Lesser General Public License along with this program; if not, see . */ /* This is a unit test implementation of the Codec2_encode function. * * Typical run: # Copy N frames of a raw audio file to stm_in.raw. dd bs=2560 count=30 if=../../../../raw/hts1.raw of=stm_in.raw # Run x86 command for reference output c2enc 700C stm_in.raw ref_enc.raw # Create config echo "80000000" > stm_cfg.txt # Run stm32 run_stm32_prog ../../src/tst_codec2_enc.elf --load # Compare outputs comare_ints -b 1 ref_enc.raw stm_out.raw # Manual play (and listen) c2dec 700C ref_enc.raw ref_dec.raw aplay -f S16_LE ref_out.raw # c2dec 700C stm_out.raw stm_dec.raw aplay -f S16_LE stm_dec.raw */ #include #include #include #include #include #include #include #include #include "codec2.h" #include "stm32f4xx_conf.h" #include "stm32f4xx.h" #include "semihosting.h" #include "machdep.h" static __attribute__ ((section (".ccm"))) char fin_buffer[8*8192]; char fout_buffer[1024]; int main(int argc, char *argv[]) { int f_cfg; struct CODEC2 *codec2; short *buf; unsigned char *bits; int nsam, nbit, nbyte; int gray; int frame; //////// // Semihosting semihosting_init(); //////// // Test configuration, read from stm_cfg.txt int config_mode; // 0 //int config_verbose; // 6 //int config_profile; // 7 char config[8]; f_cfg = open("stm_cfg.txt", O_RDONLY); if (f_cfg == -1) { fprintf(stderr, "Error opening config file\n"); exit(1); } if (read(f_cfg, &config[0], 8) != 8) { fprintf(stderr, "Error reading config file\n"); exit(1); } config_mode = config[0] - '0'; //config_verbose = config[6] - '0'; //config_profile = config[7] - '0'; close(f_cfg); //////// //PROFILE_VAR(freedv_start); //machdep_profile_init(); //////// codec2 = codec2_create(config_mode); nsam = codec2_samples_per_frame(codec2); nbit = codec2_bits_per_frame(codec2); buf = (short*)malloc(nsam*sizeof(short)); nbyte = (nbit + 7) / 8; bits = (unsigned char*)malloc(nbyte*sizeof(char)); gray = 1; //softdec = 0; //bitperchar = 0; codec2_set_natural_or_gray(codec2, gray); //////// // Streams FILE* fin = fopen("stm_in.raw", "rb"); if (fin == NULL) { perror("Error opening input file\n"); exit(1); } setvbuf(fin, fin_buffer,_IOFBF,sizeof(fin_buffer)); FILE* fout = fopen("stm_out.raw", "wb"); if (fout == NULL) { perror("Error opening output file\n"); exit(1); } frame = 0; int bytes_per_frame = (sizeof(short) * nsam); while (fread(buf,1, bytes_per_frame, fin) == bytes_per_frame) { //PROFILE_SAMPLE(enc_start); codec2_encode(codec2, bits, buf); //PROFILE_SAMPLE_AND_LOG2(, enc_start, " enc"); fwrite(bits, 1, (sizeof(char) * nbyte), fout); printf("frame: %d\n", ++frame); //machdep_profile_print_logged_samples(); } codec2_destroy(codec2); free(buf); free(bits); fclose(fin); fclose(fout); printf("\nEnd of Test\n"); fclose(stdout); fclose(stderr); return(0); } /* vi:set ts=4 et sts=4: */ codec2-1.0.1/stm32/unittest/src/tst_codec2_fft_init.c000066400000000000000000000052501412132000500223330ustar00rootroot00000000000000/*---------------------------------------------------------------------------*\ FILE........: tst_codec2_fft_init.c, AUTHOR......: David Rowe, Don Reid DATE CREATED: 30 May 2013, Oct 2018, Feb 2018 Test FFT Window initialization in Codec2_create \*---------------------------------------------------------------------------*/ /* Copyright (C) 2014 David Rowe All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 2.1, as published by the Free Software Foundation. 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 Lesser General Public License along with this program; if not, see . */ #include #include #include #include #include "codec2.h" #include "codec2_internal.h" #include "defines.h" #include "stm32f4xx_conf.h" #include "stm32f4xx.h" #include "semihosting.h" #include "machdep.h" static const float expect_w[] = { 0.004293, 0.004301, 0.004309, 0.004315, 0.004320, 0.004323, 0.004326, 0.004328, 0.004328, 0.004328, 0.004326, 0.004323, 0.004320, 0.004315, 0.004309, 0.004301}; static const float expect_W[] = { -0.002176, 0.002195, 0.004429, -0.008645, -0.012196, 0.065359, 0.262390, 0.495616, 0.601647, 0.495616, 0.262390, 0.065359, -0.012196, -0.008645, 0.004429, 0.002195}; int float_cmp(float a, float b) { if ( fabsf(a - b) < 1e-6f ) return 1; else return 0; } int main(int argc, char *argv[]) { struct CODEC2 *codec2; int i, j; //////// // Semihosting semihosting_init(); //////// codec2 = codec2_create(CODEC2_MODE_700C); j = (codec2->c2const.m_pitch / 2) - 8; for (i=0; i<16; i++) { printf("w[%d] = %f", j+i, (double)codec2->w[j+i]); if (!float_cmp(codec2->w[j+i], expect_w[i])) { printf(" Error, expected %f", (double)expect_w[i]); } printf("\n"); } printf("\n"); j = (FFT_ENC / 2) - 8; for (i=0; i<16; i++) { printf("W[%d] = %f", j+i, (double)codec2->W[j+i]); if (!float_cmp(codec2->W[j+i], expect_W[i])) { printf(" Error, expected %f", (double)expect_W[i]); } printf("\n"); } codec2_destroy(codec2); printf("\nEnd of Test\n"); fclose(stdout); fclose(stderr); return(0); } /* vi:set ts=4 et sts=4: */ codec2-1.0.1/stm32/unittest/src/tst_ldpc_dec.c000066400000000000000000000136471412132000500210600ustar00rootroot00000000000000/* FILE...: ldpc_dec.c AUTHOR.: Matthew C. Valenti, Rohit Iyer Seshadri, David Rowe, Don Reid CREATED: Sep 2016 Command line C LDPC decoder derived from MpDecode.c in the CML library. Allows us to run the same decoder in Octave and C. The code is defined by the parameters and array stored in the include file below, which can be machine generated from the Octave function ldpc_fsk_lib.m:ldpc_decode() The include file also contains test input/output vectors for the LDPC decoder for testing this program. If no input file "stm_in.raw" is found then the built in test mode will run. If there is an input is should be encoded data from the x86 ldpc_enc program. Here is the suggested way to run: ldpc_enc /dev/zero stm_in.raw --sd --code HRA_112_112 --testframes 6 ldpc_dec stm_in.raw ref_out.raw --sd --code HRA_112_112 --testframes cmp -l ref_out.raw stm_out.raw << Check BER values in logs >> */ #include #include #include #include #include #include #include #include #include "mpdecode_core.h" #include "ofdm_internal.h" #include "semihosting.h" #include "stm32f4xx_conf.h" #include "stm32f4xx.h" #include "machdep.h" /* generated by ldpc_fsk_lib.m:ldpc_decode() */ /* Machine generated consts, H_rows, H_cols, test input/output data to change LDPC code regenerate this file. */ #include "HRA_112_112.h" int testframes = 1; static char fin_buffer[1024]; static __attribute__ ((section (".ccm"))) char fout_buffer[8*8192]; int main(int argc, char *argv[]) { int CodeLength, NumberParityBits; int i, parityCheckCount; uint8_t out_data[HRA_112_112_CODELENGTH]; struct LDPC ldpc; int data_bits_per_frame; FILE *fout; int iter, total_iters; int Tbits, Terrs, Tbits_raw, Terrs_raw; int nread, frame; semihosting_init(); fprintf(stderr, "LDPC decode test and profile\n"); PROFILE_VAR(ldpc_decode); machdep_profile_init(); ldpc.max_iter = HRA_112_112_MAX_ITER; ldpc.dec_type = 0; ldpc.q_scale_factor = 1; ldpc.r_scale_factor = 1; ldpc.CodeLength = HRA_112_112_CODELENGTH; ldpc.NumberParityBits = HRA_112_112_NUMBERPARITYBITS; ldpc.NumberRowsHcols = HRA_112_112_NUMBERROWSHCOLS; ldpc.max_row_weight = HRA_112_112_MAX_ROW_WEIGHT; ldpc.max_col_weight = HRA_112_112_MAX_COL_WEIGHT; ldpc.H_rows = (uint16_t *)HRA_112_112_H_rows; ldpc.H_cols = (uint16_t *)HRA_112_112_H_cols; CodeLength = ldpc.CodeLength; NumberParityBits = ldpc.NumberParityBits; data_bits_per_frame = ldpc.NumberRowsHcols; unsigned char ibits[data_bits_per_frame]; unsigned char pbits[NumberParityBits]; // // Allocate common space which can be shared with other functions. // int size_common; // uint8_t *common_array; // ldpc_init(&ldpc, &size_common); // fprintf(stderr, "ldpc needs %d bytes of shared memory\n", size_common); // common_array = malloc(size_common); testframes = 1; total_iters = 0; if (testframes) { uint16_t r[data_bits_per_frame]; ofdm_rand(r, data_bits_per_frame); for(i=0; i 16384; } encode(&ldpc, ibits, pbits); Tbits = Terrs = Tbits_raw = Terrs_raw = 0; } FILE* fin = fopen("stm_in.raw", "rb"); if (fin == NULL) { fprintf(stderr, "Error opening input file\n"); fflush(stderr); exit(1); } setvbuf(fin, fin_buffer,_IOFBF,sizeof(fin_buffer)); fout = fopen("stm_out.raw", "wb"); if (fout == NULL) { fprintf(stderr, "Error opening output file\n"); fflush(stderr); exit(1); } setvbuf(fout, fout_buffer,_IOFBF,sizeof(fout_buffer)); float *input_float = calloc(CodeLength, sizeof(float)); nread = CodeLength; fprintf(stderr, "CodeLength: %d\n", CodeLength); frame = 0; while(fread(input_float, sizeof(float) , nread, fin) == nread) { fprintf(stderr, "frame %d\n", frame); if (testframes) { char in_char; for (i=0; i cmp -l ref_out.raw stm_out.raw */ #include #include #include #include #include #include #include "mpdecode_core.h" #include "semihosting.h" #include "stm32f4xx_conf.h" #include "stm32f4xx.h" #include "machdep.h" /* generated by ldpc_fsk_lib.m:ldpc_decode() */ #include "HRA_112_112.h" static __attribute__ ((section (".ccm"))) char fin_buffer[8*8192]; char fout_buffer[1024]; int opt_exists(char *argv[], int argc, char opt[]) { int i; for (i=0; i. */ /* This is a unit test implementation of the OFDM Demod function. * It is used for several tests: * * tst_ofdm_demod_ideal Simple 10 frames with no degradation. * tst_ofdm_demod_AWGN Just AWGN in channel. * tst_ofdm_demod_fade AWGN and fading in channel. * tst_ofdm_demod_profile Profile, disable verbose logging. * * See tst_ofdm_demod_setup and tst_ofdm_demod_check scripts for details. * * This program reads a file "stm_cfg.txt" at startup to configure its options. * * This program is intended to be run using input data, typically * Codec2 frames, which may have had simulated RF degredation applied. * For example: * * ofdm_get_test_bits - 10 | * ofdm_mod - - | \ * cohpsk_ch - stm_in.raw -20 -Fs 8000 -f -5 * * Reference data can be created by running the same input through the x86 * ofdm_demod tool. * * ofdm_demod stm_in.raw ref_demod_out.raw -o ofdm_demod_ref_log.txt --testframes * * Comparison of the results to the reference will depend on the test conditions. * Some small differences are expected due to differences in implementation. * */ #include #include #include #include #include #include #include #include #include "semihosting.h" #include "codec2_ofdm.h" #include "ofdm_internal.h" #include "mpdecode_core.h" #include "ldpc_codes.h" #include "interldpc.h" #include "gp_interleaver.h" #include "test_bits_ofdm.h" #include "debug_alloc.h" #include "stm32f4xx_conf.h" #include "stm32f4xx.h" #include "machdep.h" #define NDISCARD 20 extern const uint8_t payload_data_bits[]; extern const int test_bits_ofdm[]; static struct OFDM_CONFIG *ofdm_config; static int ofdm_bitsperframe; static int ofdm_rowsperframe; static int ofdm_nuwbits; static int ofdm_ntxtbits; static int ofdm_nin; static char fout_buffer[4*4096]; static __attribute__ ((section (".ccm"))) char fdiag_buffer[4*8192]; static __attribute__ ((section (".ccm"))) char fin_buffer[4096*8]; static char *statemode[] = { "search", "trial", "synced" }; static FILE *fout, *fdiag; void flush_all(void) { fflush(fout); fflush(fdiag); fflush(stdout); fflush(stderr); } int main(int argc, char *argv[]) { struct OFDM *ofdm; FILE *fcfg; int nin_frame; struct LDPC ldpc; // Test configuration, read from stm_cfg.txt int config_verbose; int config_testframes; int config_ldpc_en; int config_log_payload_syms; int config_profile; int i; int Nerrs, Terrs, Tbits, Terrs2, Tbits2, frame_count; int Tbits_coded, Terrs_coded; semihosting_init(); fprintf(stdout, "OFDM Demod test\n"); // Read configuration - a file of '0' or '1' characters char config[8]; fcfg = fopen("stm_cfg.txt", "r"); if (fcfg == NULL) { fprintf(stderr, "Error opening config file\n"); exit(1); } if (fread(&config[0], 1, 8, fcfg) != 8) { fprintf(stderr, "Error reading config file\n"); exit(1); } config_verbose = config[0] - '0'; config_testframes = config[1] - '0'; config_ldpc_en = config[2] - '0'; config_log_payload_syms = config[3] - '0'; config_profile = config[4] - '0'; fclose(fcfg); int Nerrs_raw = 0; int Nerrs_coded = 0; int iter = 0; int parityCheckCount = 0; PROFILE_VAR(ofdm_demod_start, ofdm_demod_sync_search, ofdm_demod_demod, ofdm_demod_diss, ofdm_demod_snr); ofdm_demod_start = 0; ofdm_demod_sync_search = 0; ofdm_demod_demod = 0; ofdm_demod_diss = 0; ofdm_demod_snr = 0; if (config_profile) machdep_profile_init(); ofdm = ofdm_create(NULL); assert(ofdm != NULL); /* Get a copy of the actual modem config */ ofdm_config = ofdm_get_config_param(ofdm); ldpc_codes_setup(&ldpc, "HRA_112_112"); ofdm_bitsperframe = ofdm_get_bits_per_frame(ofdm); ofdm_rowsperframe = ofdm_bitsperframe / (ofdm_config->nc * ofdm_config->bps); ofdm_nuwbits = (ofdm_config->ns - 1) * ofdm_config->bps - ofdm_config->txtbits; ofdm_ntxtbits = ofdm_config->txtbits; ofdm_nin = ofdm_get_nin(ofdm); ofdm_set_verbose(ofdm, config_verbose); int Nmaxsamperframe = ofdm_get_max_samples_per_frame(ofdm); int data_bits_per_frame = ldpc.data_bits_per_frame; int coded_bits_per_frame = ldpc.coded_bits_per_frame; int coded_syms_per_frame = ldpc.coded_bits_per_frame/ofdm->bps; short rx_scaled[Nmaxsamperframe]; int rx_bits[ofdm_bitsperframe]; char rx_bits_char[ofdm_bitsperframe]; uint8_t rx_uw[ofdm_nuwbits]; short txt_bits[ofdm_ntxtbits]; int f = 0; Nerrs = Terrs = Tbits = Terrs2 = Tbits2 = Terrs_coded = Tbits_coded = frame_count = 0; float snr_est_smoothed_dB = 0.0; float EsNo = 3.0f; // Constant from ofdm_demod.c COMP payload_syms[coded_syms_per_frame]; float payload_amps[coded_syms_per_frame]; COMP codeword_symbols[coded_syms_per_frame]; float codeword_amps[coded_syms_per_frame]; FILE* fin = fopen("stm_in.raw", "rb"); if (fin == NULL) { fprintf(stderr, "Error opening input file\n"); exit(1); } setvbuf(fin, fin_buffer,_IOFBF,sizeof(fin_buffer)); fout = fopen("stm_out.raw", "wb"); if (fout == NULL) { fprintf(stderr, "Error opening output file\n"); exit(1); } setvbuf(fout, fout_buffer,_IOFBF,sizeof(fout_buffer)); fdiag = fopen("stm_diag.raw", "wb"); if (fdiag == NULL) { fprintf(stderr, "Error opening diag file\n"); exit(1); } setvbuf(fdiag, fdiag_buffer,_IOFBF,sizeof(fdiag_buffer)); nin_frame = ofdm_get_nin(ofdm); int num_read; while((num_read = fread(rx_scaled, sizeof(short) , nin_frame, fin)) == nin_frame) { int log_payload_syms_flag = 0; if (config_profile) PROFILE_SAMPLE(ofdm_demod_start); /* demod */ if (config_profile) PROFILE_SAMPLE_AND_LOG2(ofdm_demod_start, " ofdm_demod_start"); if (ofdm->sync_state == search) { if (config_profile) PROFILE_SAMPLE(ofdm_demod_sync_search); ofdm_sync_search_shorts(ofdm, rx_scaled, (OFDM_PEAK/2)); if (config_profile) PROFILE_SAMPLE_AND_LOG2(ofdm_demod_sync_search, " ofdm_demod_sync_search"); } if ((ofdm->sync_state == synced) || (ofdm->sync_state == trial) ) { if (config_profile) PROFILE_SAMPLE(ofdm_demod_demod); ofdm_demod_shorts(ofdm, rx_bits, rx_scaled, (OFDM_PEAK/2)); if (config_profile) PROFILE_SAMPLE_AND_LOG2(ofdm_demod_demod, " ofdm_demod_demod"); if (config_profile) PROFILE_SAMPLE(ofdm_demod_diss); ofdm_extract_uw(ofdm, ofdm->rx_np, ofdm->rx_amp, rx_uw); ofdm_disassemble_qpsk_modem_packet(ofdm, ofdm->rx_np, ofdm->rx_amp, payload_syms, payload_amps, txt_bits); if (config_profile) PROFILE_SAMPLE_AND_LOG2(ofdm_demod_diss, " ofdm_demod_diss"); log_payload_syms_flag = 1; /* SNR estimation and smoothing */ if (config_profile) PROFILE_SAMPLE(ofdm_demod_snr); float EsNodB = ofdm_esno_est_calc((complex float*)payload_syms, coded_syms_per_frame); float snr_est_dB = ofdm_snr_from_esno(ofdm, EsNodB); snr_est_smoothed_dB = 0.9f * snr_est_smoothed_dB + 0.1f *snr_est_dB; if (config_profile) { PROFILE_SAMPLE_AND_LOG2(ofdm_demod_snr, " ofdm_demod_snr"); } // LDPC if (config_ldpc_en) { // was llr_en in orig /* first few symbols are used for UW and txt bits, find start of (224,112) LDPC codeword and extract QPSK symbols and amplitude estimates */ assert((ofdm_nuwbits + ofdm_ntxtbits + coded_bits_per_frame) == ofdm_bitsperframe); /* newest symbols at end of buffer (uses final i from last loop) */ for(i=0; i < coded_syms_per_frame; i++) { codeword_symbols[i] = payload_syms[i]; codeword_amps[i] = payload_amps[i]; } /* run de-interleaver */ COMP codeword_symbols_de[coded_syms_per_frame]; float codeword_amps_de[coded_syms_per_frame]; gp_deinterleave_comp (codeword_symbols_de, codeword_symbols, coded_syms_per_frame); gp_deinterleave_float(codeword_amps_de, codeword_amps, coded_syms_per_frame); float llr[coded_bits_per_frame]; if (config_ldpc_en) { uint8_t out_char[coded_bits_per_frame]; if (config_testframes) { Terrs += count_uncoded_errors(&ldpc, ofdm_config, codeword_symbols_de, 0); Tbits += coded_bits_per_frame; } symbols_to_llrs(llr, codeword_symbols_de, codeword_amps_de, EsNo, ofdm->mean_amp, coded_syms_per_frame); iter = run_ldpc_decoder(&ldpc, out_char, llr, &parityCheckCount); //fprintf(stderr,"iter: %d pcc: %d\n", iter, parityCheckCount); if (config_testframes) { /* construct payload data bits */ uint8_t payload_data_bits[data_bits_per_frame]; ofdm_generate_payload_data_bits(payload_data_bits, data_bits_per_frame); Nerrs_coded = count_errors(payload_data_bits, out_char, data_bits_per_frame); Terrs_coded += Nerrs_coded; Tbits_coded += data_bits_per_frame; } fwrite(out_char, sizeof(char), data_bits_per_frame, fout); } else { /* lpdc_en == 0, external LDPC decoder, so output LLRs */ symbols_to_llrs(llr, codeword_symbols_de, codeword_amps_de, EsNo, ofdm->mean_amp, coded_syms_per_frame); fwrite(llr, sizeof(double), coded_bits_per_frame, fout); } } else { // !llrs_en (or ldpc_en) /* simple hard decision output for uncoded testing, all bits in frame dumped inlcuding UW and txt */ for(i=0; i 16384; //fprintf(stderr,"%d %d ", r[i], tx_bits_char[i]); } uint8_t txt_bits[ofdm_ntxtbits]; for(i=0; i= NDISCARD) { Terrs2 += Nerrs; Tbits2 += ofdm_bitsperframe; } } // config_testframes ... frame_count++; } // state "synced" or "trial" nin_frame = ofdm_get_nin(ofdm); ofdm_sync_state_machine(ofdm, rx_uw); /* act on any events returned by state machine */ if (ofdm->sync_start) { Terrs = Tbits = Terrs2 = Tbits2 = Terrs_coded = Tbits_coded = frame_count = Nerrs_raw = Nerrs_coded = 0; } if (config_testframes && config_verbose) { fprintf(stderr, "%3d st: %-6s", f, statemode[ofdm->last_sync_state]); fprintf(stderr, " euw: %2d %1d f: %5.1f eraw: %3d ecdd: %3d iter: %3d pcc: %3d\n", ofdm->uw_errors, ofdm->sync_counter, (double)ofdm->foff_est_hz, Nerrs_raw, Nerrs_coded, iter, parityCheckCount); } if (config_log_payload_syms) { if (! log_payload_syms_flag) { memset(payload_syms, 0, (sizeof(COMP)*coded_syms_per_frame)); memset(payload_amps, 0, (sizeof(float)*coded_syms_per_frame)); } fwrite(payload_syms, sizeof(COMP), coded_syms_per_frame, fdiag); fwrite(payload_amps, sizeof(float), coded_syms_per_frame, fdiag); } f++; } // while(fread(.., fin)) flush_all(); // To make sure this function is included in binary. fclose(fin); fclose(fout); fclose(fdiag); if (config_testframes) { printf("BER......: %5.4f Tbits: %5d Terrs: %5d\n", (double)Terrs/Tbits, Tbits, Terrs); if (!config_ldpc_en) { printf("BER2.....: %5.4f Tbits: %5d Terrs: %5d\n", (double)Terrs2/Tbits2, Tbits2, Terrs2); } if (config_ldpc_en) { printf("Coded BER: %5.4f Tbits: %5d Terrs: %5d\n", (double)Terrs_coded/Tbits_coded, Tbits_coded, Terrs_coded); } } if (config_profile) { printf("\nStart Profile Data\n"); machdep_profile_print_logged_samples(); printf("End Profile Data\n"); } printf("\nEnd of Test\n"); fclose(stdout); fclose(stderr); return 0; } /* vi:set ts=4 et sts=4: */ codec2-1.0.1/stm32/unittest/src/tst_ofdm_mod.c000066400000000000000000000153031412132000500210760ustar00rootroot00000000000000/*---------------------------------------------------------------------------*\ FILE........: tst_ofdm_mod.c AUTHOR......: David Rowe, Don Reid DATE CREATED: 25 June 2018 Test and profile OFDM modulation on the STM32F4. \*---------------------------------------------------------------------------*/ /* Copyright (C) 2014 David Rowe All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 2.1, as published by the Free Software Foundation. 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 Lesser General Public License along with this program; if not, see . */ /* This is a unit test implementation of the OFDM Mod function. * * Typical run: ofdm_gen_test_bits stm_in.raw 6 --rand ofdm_mod stm_in.raw ref_mod_out.raw echo "00000000" > stm_cfg.txt compare_ints -s -b2 ref_mod_out.raw mod.raw ofdm_demod ref_mod_out.raw ref_ofdm_demod.raw --testframes ofdm_demod mod.raw stm_demod.raw --testframes * For LDPC use: ofdm_gen_test_bits stm_in.raw 6 --rand --ldpc ofdm_mod stm_in.raw ref_mod_out.raw --ldpc echo "00100000" > stm_cfg.txt ofdm_demod ref_mod_out.raw ref_ofdm_demod.raw --ldpc --testframes ofdm_demod mod.raw stm_demod.raw --ldpc --testframes */ #include #include #include #include #include #include #include #include #include "semihosting.h" #include "codec2_ofdm.h" #include "ofdm_internal.h" #include "ldpc_codes.h" #include "interldpc.h" #include "gp_interleaver.h" #include "stm32f4xx_conf.h" #include "stm32f4xx.h" #include "machdep.h" #include "debug_alloc.h" int main(int argc, char *argv[]) { struct OFDM *ofdm; FILE *fcfg; struct LDPC ldpc; // Test configuration, read from stm_cfg.txt int config_verbose; // int config_testframes; int config_ldpc_en; // int config_log_payload_syms; int config_profile; int Nbitsperframe, Nsamperframe; int frame = 0; int i; semihosting_init(); printf("OFDM_mod test and profile\n"); // Read configuration - a file of '0' or '1' characters char config[8]; fcfg = fopen("stm_cfg.txt", "r"); if (fcfg == NULL) { fprintf(stderr, "Error opening config file\n"); exit(1); } if (fread(&config[0], 1, 8, fcfg) != 8) { fprintf(stderr, "Error reading config file\n"); exit(1); } config_verbose = config[0] - '0'; // config_testframes = config[1] - '0'; config_ldpc_en = config[2] - '0'; // config_log_payload_syms = config[3] - '0'; config_profile = config[4] - '0'; fclose(fcfg); PROFILE_VAR(ofdm_mod_start); if (config_profile) machdep_profile_init(); struct OFDM_CONFIG *ofdm_config; ofdm = ofdm_create(NULL); assert(ofdm != NULL); /* Get a copy of the actual modem config */ ofdm_config = ofdm_get_config_param(ofdm); ldpc_codes_setup(&ldpc, "HRA_112_112"); Nbitsperframe = ofdm_get_bits_per_frame(ofdm); int Ndatabitsperframe; if (config_ldpc_en) { Ndatabitsperframe = ldpc.data_bits_per_frame; } else { Ndatabitsperframe = ofdm_get_bits_per_frame(ofdm) - ofdm->nuwbits - ofdm->ntxtbits; } Nsamperframe = ofdm_get_samples_per_frame(ofdm); // int ofdm_nuwbits = (ofdm_config->ns - 1) * ofdm_config->bps - ofdm_config->txtbits; if (config_verbose) { ofdm_set_verbose(ofdm, config_verbose); fprintf(stderr, "Nsamperframe: %d, Nbitsperframe: %d \n", Nsamperframe, Nbitsperframe); } int ofdm_ntxtbits = ofdm_config->txtbits; uint8_t tx_bits_char[Ndatabitsperframe]; int16_t tx_scaled[Nsamperframe]; uint8_t txt_bits_char[ofdm_ntxtbits]; for(i=0; i< ofdm_ntxtbits; i++) { txt_bits_char[i] = 0; } if (config_verbose) { ofdm_print_info(ofdm); } int sin = open("stm_in.raw", O_RDONLY); if (sin < 0) { printf("Error opening input file\n"); exit(1); } int sout = open("mod.raw", O_WRONLY|O_TRUNC|O_CREAT, 0666); if (sout < 0) { printf("Error opening output file\n"); exit(1); } while (read(sin, tx_bits_char, sizeof(char) * Ndatabitsperframe) == Ndatabitsperframe) { fprintf(stderr, "Frame %d\n", frame); if (config_profile) { PROFILE_SAMPLE(ofdm_mod_start); } if (config_ldpc_en) { complex float tx_sams[Nsamperframe]; ofdm_ldpc_interleave_tx(ofdm, &ldpc, tx_sams, tx_bits_char, txt_bits_char); for(i=0; i=3) { fprintf(stderr, "\ntx_bits:\n"); for (i = 0; i < Nbitsperframe; i++) { fprintf(stderr, " %3d %8d\n", i, tx_bits[i]); } } COMP tx_sams[Nsamperframe]; ofdm_mod(ofdm, tx_sams, tx_bits); if (config_verbose >=3) { fprintf(stderr, "\ntx_sams:\n"); for (i = 0; i < Nsamperframe; i++) { fprintf(stderr, " %3d % f\n", i, (double)tx_sams[i].real); } } for(i=0; i #include #include #include #include #include #include "semihosting.h" #include "stm32f4xx_conf.h" #include "stm32f4xx.h" #include "machdep.h" #define min(a, b) ((a < b) ? (a) : (b)) int main(int argc, char *argv[]) { semihosting_init(); printf("semihosting test - stdout\n"); fprintf(stderr, "semihosting test - stderr\n"); uint8_t buf[128]; int count; int i; FILE *fin = fopen("stm_in.raw", "rb"); if (!fin) { fprintf(stderr, "Error %d opening fin\n", errno); } setbuf(fin, NULL); FILE *fout = fopen("stm_out.raw", "wb"); if (!fout) { fprintf(stderr, "Error %d opening fout\n", errno); } setbuf(fout, NULL); // Unrolled while loop for simpler debugging: // Pass 0: expect 16 bytes 00-0f printf("Pass 0: feof(fin) = %d\n", feof(fin)); count = fread(&buf[0], 1, 16, fin); printf("read %d bytes: ", count); for (i=0; i
© COPYRIGHT 2011 STMicroelectronics
****************************************************************************** */ /* Includes ------------------------------------------------------------------*/ #include "usb_bsp.h" #include "usbd_conf.h" #include "stm32f4xx_conf.h" #include "stm32f4xx_gpio.h" #include "stm32f4xx_exti.h" #include "stm32f4xx_rcc.h" #include "misc.h" void USB_OTG_BSP_ConfigVBUS(USB_OTG_CORE_HANDLE *pdev) { } void USB_OTG_BSP_DriveVBUS(USB_OTG_CORE_HANDLE *pdev,uint8_t state) { } /** * @brief USB_OTG_BSP_Init * Initilizes BSP configurations * @param None * @retval None */ void USB_OTG_BSP_Init(USB_OTG_CORE_HANDLE *pdev) { GPIO_InitTypeDef GPIO_InitStructure; #ifndef USE_ULPI_PHY #ifdef USB_OTG_FS_LOW_PWR_MGMT_SUPPORT EXTI_InitTypeDef EXTI_InitStructure; NVIC_InitTypeDef NVIC_InitStructure; #endif #endif #ifdef USE_USB_OTG_FS RCC_AHB1PeriphClockCmd( RCC_AHB1Periph_GPIOA , ENABLE); /* Configure SOF VBUS ID DM DP Pins */ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8 | GPIO_Pin_9 | GPIO_Pin_11 | GPIO_Pin_12; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF; GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL ; GPIO_Init(GPIOA, &GPIO_InitStructure); GPIO_PinAFConfig(GPIOA,GPIO_PinSource8,GPIO_AF_OTG1_FS) ; GPIO_PinAFConfig(GPIOA,GPIO_PinSource9,GPIO_AF_OTG1_FS) ; GPIO_PinAFConfig(GPIOA,GPIO_PinSource11,GPIO_AF_OTG1_FS) ; GPIO_PinAFConfig(GPIOA,GPIO_PinSource12,GPIO_AF_OTG1_FS) ; /* this for ID line debug */ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10; GPIO_InitStructure.GPIO_OType = GPIO_OType_OD; GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP ; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz; GPIO_Init(GPIOA, &GPIO_InitStructure); GPIO_PinAFConfig(GPIOA,GPIO_PinSource10,GPIO_AF_OTG1_FS) ; RCC_APB2PeriphClockCmd(RCC_APB2Periph_SYSCFG, ENABLE); RCC_AHB2PeriphClockCmd(RCC_AHB2Periph_OTG_FS, ENABLE) ; #else // USE_USB_OTG_HS #ifdef USE_ULPI_PHY // ULPI RCC_AHB1PeriphClockCmd( RCC_AHB1Periph_GPIOA | RCC_AHB1Periph_GPIOB | RCC_AHB1Periph_GPIOC | RCC_AHB1Periph_GPIOH | RCC_AHB1Periph_GPIOI, ENABLE); GPIO_PinAFConfig(GPIOA,GPIO_PinSource3, GPIO_AF_OTG2_HS) ; // D0 GPIO_PinAFConfig(GPIOA,GPIO_PinSource5, GPIO_AF_OTG2_HS) ; // CLK GPIO_PinAFConfig(GPIOB,GPIO_PinSource0, GPIO_AF_OTG2_HS) ; // D1 GPIO_PinAFConfig(GPIOB,GPIO_PinSource1, GPIO_AF_OTG2_HS) ; // D2 GPIO_PinAFConfig(GPIOB,GPIO_PinSource5, GPIO_AF_OTG2_HS) ; // D7 GPIO_PinAFConfig(GPIOB,GPIO_PinSource10,GPIO_AF_OTG2_HS) ; // D3 GPIO_PinAFConfig(GPIOB,GPIO_PinSource11,GPIO_AF_OTG2_HS) ; // D4 GPIO_PinAFConfig(GPIOB,GPIO_PinSource12,GPIO_AF_OTG2_HS) ; // D5 GPIO_PinAFConfig(GPIOB,GPIO_PinSource13,GPIO_AF_OTG2_HS) ; // D6 GPIO_PinAFConfig(GPIOH,GPIO_PinSource4, GPIO_AF_OTG2_HS) ; // NXT GPIO_PinAFConfig(GPIOI,GPIO_PinSource11,GPIO_AF_OTG2_HS) ; // DIR GPIO_PinAFConfig(GPIOC,GPIO_PinSource0, GPIO_AF_OTG2_HS) ; // STP // CLK GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5 ; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF; GPIO_Init(GPIOA, &GPIO_InitStructure); // D0 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3 ; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF; GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL ; GPIO_Init(GPIOA, &GPIO_InitStructure); // D1 D2 D3 D4 D5 D6 D7 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_5 | GPIO_Pin_10 | GPIO_Pin_11| GPIO_Pin_12 | GPIO_Pin_13 ; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF; GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL ; GPIO_Init(GPIOB, &GPIO_InitStructure); // STP GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 ; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF; GPIO_Init(GPIOC, &GPIO_InitStructure); //NXT GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF; GPIO_Init(GPIOH, &GPIO_InitStructure); //DIR GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11 ; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF; GPIO_Init(GPIOI, &GPIO_InitStructure); RCC_AHB1PeriphClockCmd( RCC_AHB1Periph_OTG_HS | RCC_AHB1Periph_OTG_HS_ULPI, ENABLE) ; #else #ifdef USE_I2C_PHY RCC_AHB1PeriphClockCmd( RCC_AHB1Periph_GPIOB , ENABLE); /* Configure RESET INTN SCL SDA (Phy/I2C) Pins */ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_10 | GPIO_Pin_11; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF; GPIO_Init(GPIOB, &GPIO_InitStructure); GPIO_PinAFConfig(GPIOB,GPIO_PinSource0,GPIO_AF_OTG2_FS) ; GPIO_PinAFConfig(GPIOB,GPIO_PinSource1,GPIO_AF_OTG2_FS) ; GPIO_PinAFConfig(GPIOB,GPIO_PinSource10,GPIO_AF_OTG2_FS) ; GPIO_PinAFConfig(GPIOB,GPIO_PinSource11,GPIO_AF_OTG2_FS); RCC_AHB1PeriphClockCmd( RCC_AHB1Periph_OTG_HS, ENABLE) ; #else RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOB , ENABLE); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12 | GPIO_Pin_13 | GPIO_Pin_14 | GPIO_Pin_15; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF; GPIO_Init(GPIOB, &GPIO_InitStructure); GPIO_PinAFConfig(GPIOB,GPIO_PinSource12, GPIO_AF_OTG2_FS) ; GPIO_PinAFConfig(GPIOB,GPIO_PinSource13,GPIO_AF_OTG2_FS) ; GPIO_PinAFConfig(GPIOB,GPIO_PinSource14,GPIO_AF_OTG2_FS) ; GPIO_PinAFConfig(GPIOB,GPIO_PinSource15,GPIO_AF_OTG2_FS) ; RCC_AHB1PeriphClockCmd( RCC_AHB1Periph_OTG_HS, ENABLE) ; #endif #endif // USE_ULPI_PHY #endif //USB_OTG_HS /* enable the PWR clock */ RCC_APB1PeriphResetCmd(RCC_APB1Periph_PWR, ENABLE); /* Configure the Key button in EXTI mode */ //STM_EVAL_PBInit(BUTTON_USER, BUTTON_MODE_EXTI); #ifdef USB_OTG_FS_LOW_PWR_MGMT_SUPPORT EXTI_ClearITPendingBit(EXTI_Line18); EXTI_InitStructure.EXTI_Line = EXTI_Line18; EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt; EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising; EXTI_InitStructure.EXTI_LineCmd = ENABLE; EXTI_Init(&EXTI_InitStructure); EXTI_ClearITPendingBit(EXTI_Line18); NVIC_InitStructure.NVIC_IRQChannel = OTG_FS_WKUP_IRQn; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0; NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0; NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; NVIC_Init(&NVIC_InitStructure); EXTI_ClearITPendingBit(EXTI_Line18); #endif #ifdef USB_OTG_HS_LOW_PWR_MGMT_SUPPORT EXTI_ClearITPendingBit(EXTI_Line20); EXTI_InitStructure.EXTI_Line = EXTI_Line20; EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt; EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising; EXTI_InitStructure.EXTI_LineCmd = ENABLE; EXTI_Init(&EXTI_InitStructure); EXTI_ClearITPendingBit(EXTI_Line20); NVIC_InitStructure.NVIC_IRQChannel = OTG_HS_WKUP_IRQn; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 2; NVIC_InitStructure.NVIC_IRQChannelSubPriority = 2; NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; NVIC_Init(&NVIC_InitStructure); EXTI_ClearITPendingBit(EXTI_Line20); #endif EXTI_ClearITPendingBit(EXTI_Line0); } /** * @brief USB_OTG_BSP_EnableInterrupt * Enabele USB Global interrupt * @param None * @retval None */ void USB_OTG_BSP_EnableInterrupt(USB_OTG_CORE_HANDLE *pdev) { NVIC_InitTypeDef NVIC_InitStructure; NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1); #ifdef USE_USB_OTG_HS NVIC_InitStructure.NVIC_IRQChannel = OTG_HS_IRQn; #else NVIC_InitStructure.NVIC_IRQChannel = OTG_FS_IRQn; #endif NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1; NVIC_InitStructure.NVIC_IRQChannelSubPriority = 3; NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; NVIC_Init(&NVIC_InitStructure); #ifdef USB_OTG_HS_DEDICATED_EP1_ENABLED NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1); NVIC_InitStructure.NVIC_IRQChannel = OTG_HS_EP1_OUT_IRQn; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1; NVIC_InitStructure.NVIC_IRQChannelSubPriority = 2; NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; NVIC_Init(&NVIC_InitStructure); NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1); NVIC_InitStructure.NVIC_IRQChannel = OTG_HS_EP1_IN_IRQn; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1; NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1; NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; NVIC_Init(&NVIC_InitStructure); #endif } /** * @brief USB_OTG_BSP_uDelay * This function provides delay time in micro sec * @param usec : Value of delay required in micro sec * @retval None */ void USB_OTG_BSP_uDelay (const uint32_t usec) { uint32_t count = 0; const uint32_t utime = (120 * usec / 7); do { if ( ++count > utime ) { return ; } } while (1); } /** * @brief USB_OTG_BSP_mDelay * This function provides delay time in milli sec * @param msec : Value of delay required in milli sec * @retval None */ void USB_OTG_BSP_mDelay (const uint32_t msec) { USB_OTG_BSP_uDelay(msec * 1000); } /** * @} */ /** * @} */ /** * @} */ /******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/ codec2-1.0.1/stm32/usb_conf/usb_bsp.h000066400000000000000000000042561412132000500172170ustar00rootroot00000000000000/** ****************************************************************************** * @file usb_bsp.h * @author MCD Application Team * @version V2.0.0 * @date 22-July-2011 * @brief Specific api's relative to the used hardware platform ****************************************************************************** * @attention * * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE * TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY * DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING * FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. * *

© COPYRIGHT 2011 STMicroelectronics

****************************************************************************** */ /* Define to prevent recursive inclusion -------------------------------------*/ #ifndef __USB_BSP__H__ #define __USB_BSP__H__ /* Includes ------------------------------------------------------------------*/ #include "usb_core.h" #include "stm32f4xx.h" /** @addtogroup USB_OTG_DRIVER * @{ */ /** @defgroup USB_BSP * @brief This file is the * @{ */ /** @defgroup USB_BSP_Exported_Defines * @{ */ /** * @} */ /** @defgroup USB_BSP_Exported_Types * @{ */ /** * @} */ /** @defgroup USB_BSP_Exported_Macros * @{ */ /** * @} */ /** @defgroup USB_BSP_Exported_Variables * @{ */ /** * @} */ /** @defgroup USB_BSP_Exported_FunctionsPrototype * @{ */ void BSP_Init(void); void USB_OTG_BSP_Init (USB_OTG_CORE_HANDLE *pdev); void USB_OTG_BSP_uDelay (const uint32_t usec); void USB_OTG_BSP_mDelay (const uint32_t msec); void USB_OTG_BSP_EnableInterrupt (USB_OTG_CORE_HANDLE *pdev); #ifdef USE_HOST_MODE void USB_OTG_BSP_ConfigVBUS(USB_OTG_CORE_HANDLE *pdev); void USB_OTG_BSP_DriveVBUS(USB_OTG_CORE_HANDLE *pdev,uint8_t state); #endif /** * @} */ #endif //__USB_BSP__H__ /** * @} */ /** * @} */ /******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/ codec2-1.0.1/stm32/usb_conf/usb_conf.h000066400000000000000000000220111412132000500173450ustar00rootroot00000000000000/** ****************************************************************************** * @file usb_conf.h * @author MCD Application Team * @version V2.0.0 * @date 22-July-2011 * @brief general low level driver configuration ****************************************************************************** * @attention * * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE * TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY * DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING * FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. * *

© COPYRIGHT 2011 STMicroelectronics

****************************************************************************** */ /* Define to prevent recursive inclusion -------------------------------------*/ #ifndef __USB_CONF__H__ #define __USB_CONF__H__ /* Includes ------------------------------------------------------------------*/ #include "stm32f4xx.h" /** @addtogroup USB_OTG_DRIVER * @{ */ /** @defgroup USB_CONF * @brief USB low level driver configuration file * @{ */ /** @defgroup USB_CONF_Exported_Defines * @{ */ /* USB Core and PHY interface configuration. Tip: To avoid modifying these defines each time you need to change the USB configuration, you can declare the needed define in your toolchain compiler preprocessor. */ #ifndef USE_USB_OTG_FS //#define USE_USB_OTG_FS #endif /* USE_USB_OTG_FS */ #ifndef USE_USB_OTG_HS //#define USE_USB_OTG_HS #endif /* USE_USB_OTG_HS */ #ifndef USE_ULPI_PHY //#define USE_ULPI_PHY #endif /* USE_ULPI_PHY */ #ifndef USE_EMBEDDED_PHY //#define USE_EMBEDDED_PHY #endif /* USE_EMBEDDED_PHY */ #ifndef USE_I2C_PHY //#define USE_I2C_PHY #endif /* USE_I2C_PHY */ #ifdef USE_USB_OTG_FS #define USB_OTG_FS_CORE #endif #ifdef USE_USB_OTG_HS #define USB_OTG_HS_CORE #endif /******************************************************************************* * FIFO Size Configuration in Device mode * * (i) Receive data FIFO size = RAM for setup packets + * OUT endpoint control information + * data OUT packets + miscellaneous * Space = ONE 32-bits words * --> RAM for setup packets = 10 spaces * (n is the nbr of CTRL EPs the device core supports) * --> OUT EP CTRL info = 1 space * (one space for status information written to the FIFO along with each * received packet) * --> data OUT packets = (Largest Packet Size / 4) + 1 spaces * (MINIMUM to receive packets) * --> OR data OUT packets = at least 2*(Largest Packet Size / 4) + 1 spaces * (if high-bandwidth EP is enabled or multiple isochronous EPs) * --> miscellaneous = 1 space per OUT EP * (one space for transfer complete status information also pushed to the * FIFO with each endpoint's last packet) * * (ii)MINIMUM RAM space required for each IN EP Tx FIFO = MAX packet size for * that particular IN EP. More space allocated in the IN EP Tx FIFO results * in a better performance on the USB and can hide latencies on the AHB. * * (iii) TXn min size = 16 words. (n : Transmit FIFO index) * (iv) When a TxFIFO is not used, the Configuration should be as follows: * case 1 : n > m and Txn is not used (n,m : Transmit FIFO indexes) * --> Txm can use the space allocated for Txn. * case2 : n < m and Txn is not used (n,m : Transmit FIFO indexes) * --> Txn should be configured with the minimum space of 16 words * (v) The FIFO is used optimally when used TxFIFOs are allocated in the top * of the FIFO.Ex: use EP1 and EP2 as IN instead of EP1 and EP3 as IN ones. *******************************************************************************/ /******************************************************************************* * FIFO Size Configuration in Host mode * * (i) Receive data FIFO size = (Largest Packet Size / 4) + 1 or * 2x (Largest Packet Size / 4) + 1, If a * high-bandwidth channel or multiple isochronous * channels are enabled * * (ii) For the host nonperiodic Transmit FIFO is the largest maximum packet size * for all supported nonperiodic OUT channels. Typically, a space * corresponding to two Largest Packet Size is recommended. * * (iii) The minimum amount of RAM required for Host periodic Transmit FIFO is * the largest maximum packet size for all supported periodic OUT channels. * If there is at least one High Bandwidth Isochronous OUT endpoint, * then the space must be at least two times the maximum packet size for * that channel. *******************************************************************************/ /****************** USB OTG HS CONFIGURATION **********************************/ #ifdef USB_OTG_HS_CORE #define RX_FIFO_HS_SIZE 512 #define TX0_FIFO_HS_SIZE 512 #define TX1_FIFO_HS_SIZE 512 #define TX2_FIFO_HS_SIZE 0 #define TX3_FIFO_HS_SIZE 0 #define TX4_FIFO_HS_SIZE 0 #define TX5_FIFO_HS_SIZE 0 #define TXH_NP_HS_FIFOSIZ 96 #define TXH_P_HS_FIFOSIZ 96 //#define USB_OTG_HS_LOW_PWR_MGMT_SUPPORT //#define USB_OTG_HS_SOF_OUTPUT_ENABLED //#define USB_OTG_INTERNAL_VBUS_ENABLED #define USB_OTG_EXTERNAL_VBUS_ENABLED #ifdef USE_ULPI_PHY #define USB_OTG_ULPI_PHY_ENABLED #endif #ifdef USE_EMBEDDED_PHY #define USB_OTG_EMBEDDED_PHY_ENABLED #endif #ifdef USE_I2C_PHY #define USB_OTG_I2C_PHY_ENABLED #endif //#define USB_OTG_HS_INTERNAL_DMA_ENABLED #define USB_OTG_HS_DEDICATED_EP1_ENABLED #endif /****************** USB OTG FS CONFIGURATION **********************************/ #ifdef USB_OTG_FS_CORE #define RX_FIFO_FS_SIZE 128 #define TX0_FIFO_FS_SIZE 64 #define TX1_FIFO_FS_SIZE 128 #define TX2_FIFO_FS_SIZE 0 #define TX3_FIFO_FS_SIZE 0 #define TXH_NP_FS_FIFOSIZ 96 #define TXH_P_FS_FIFOSIZ 96 //#define USB_OTG_FS_LOW_PWR_MGMT_SUPPORT //#define USB_OTG_FS_SOF_OUTPUT_ENABLED #endif /****************** USB OTG MODE CONFIGURATION ********************************/ //#define USE_HOST_MODE #define USE_DEVICE_MODE //#define USE_OTG_MODE #ifndef USB_OTG_FS_CORE #ifndef USB_OTG_HS_CORE #error "USB_OTG_HS_CORE or USB_OTG_FS_CORE should be defined" #endif #endif #ifndef USE_DEVICE_MODE #ifndef USE_HOST_MODE #error "USE_DEVICE_MODE or USE_HOST_MODE should be defined" #endif #endif #ifndef USE_USB_OTG_HS #ifndef USE_USB_OTG_FS #error "USE_USB_OTG_HS or USE_USB_OTG_FS should be defined" #endif #else //USE_USB_OTG_HS #ifndef USE_ULPI_PHY #ifndef USE_EMBEDDED_PHY #ifndef USE_I2C_PHY #error "USE_ULPI_PHY or USE_EMBEDDED_PHY or USE_I2C_PHY should be defined" #endif #endif #endif #endif /****************** C Compilers dependant keywords ****************************/ /* In HS mode and when the DMA is used, all variables and data structures dealing with the DMA during the transaction process should be 4-bytes aligned */ #ifdef USB_OTG_HS_INTERNAL_DMA_ENABLED #if defined (__GNUC__) /* GNU Compiler */ #define __ALIGN_END __attribute__ ((aligned (4))) #define __ALIGN_BEGIN #else #define __ALIGN_END #if defined (__CC_ARM) /* ARM Compiler */ #define __ALIGN_BEGIN __align(4) #elif defined (__ICCARM__) /* IAR Compiler */ #define __ALIGN_BEGIN #elif defined (__TASKING__) /* TASKING Compiler */ #define __ALIGN_BEGIN __align(4) #endif /* __CC_ARM */ #endif /* __GNUC__ */ #else #define __ALIGN_BEGIN #define __ALIGN_END #endif /* USB_OTG_HS_INTERNAL_DMA_ENABLED */ /* __packed keyword used to decrease the data type alignment to 1-byte */ #if defined (__CC_ARM) /* ARM Compiler */ #define __packed __packed #elif defined (__ICCARM__) /* IAR Compiler */ #define __packed __packed #elif defined ( __GNUC__ ) /* GNU Compiler */ #define __packed __attribute__ ((__packed__)) #elif defined (__TASKING__) /* TASKING Compiler */ #define __packed __unaligned #endif /* __CC_ARM */ /** * @} */ /** @defgroup USB_CONF_Exported_Types * @{ */ /** * @} */ /** @defgroup USB_CONF_Exported_Macros * @{ */ /** * @} */ /** @defgroup USB_CONF_Exported_Variables * @{ */ /** * @} */ /** @defgroup USB_CONF_Exported_FunctionsPrototype * @{ */ /** * @} */ #endif //__USB_CONF__H__ /** * @} */ /** * @} */ /******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/ codec2-1.0.1/stm32/usb_conf/usbd_conf.h000066400000000000000000000057031412132000500175220ustar00rootroot00000000000000/** ****************************************************************************** * @file usbd_conf.h * @author MCD Application Team * @version V1.0.0 * @date 22-July-2011 * @brief USB Device configuration file ****************************************************************************** * @attention * * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE * TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY * DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING * FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. * *

© COPYRIGHT 2011 STMicroelectronics

****************************************************************************** */ /* Define to prevent recursive inclusion -------------------------------------*/ #ifndef __USBD_CONF__H__ #define __USBD_CONF__H__ /** @defgroup USB_CONF_Exported_Defines * @{ */ #define USBD_CFG_MAX_NUM 1 #define USBD_ITF_MAX_NUM 1 #define USB_MAX_STR_DESC_SIZ 100 /** @defgroup USB_VCP_Class_Layer_Parameter * @{ */ #define CDC_IN_EP 0x81 /* EP1 for data IN */ #define CDC_OUT_EP 0x01 /* EP1 for data OUT */ #define CDC_CMD_EP 0x82 /* EP2 for CDC commands */ /* CDC Endpoints parameters: you can fine tune these values depending on the needed baudrates and performance. */ #ifdef USE_USB_OTG_HS #define CDC_DATA_MAX_PACKET_SIZE 512 /* Endpoint IN & OUT Packet size */ #define CDC_CMD_PACKET_SZE 8 /* Control Endpoint Packet size */ #define CDC_IN_FRAME_INTERVAL 40 /* Number of micro-frames between IN transfers */ #define APP_RX_DATA_SIZE 2048 /* Total size of IN buffer: APP_RX_DATA_SIZE*8/MAX_BAUDARATE*1000 should be > CDC_IN_FRAME_INTERVAL*8 */ #else #define CDC_DATA_MAX_PACKET_SIZE 64 /* Endpoint IN & OUT Packet size */ #define CDC_CMD_PACKET_SZE 8 /* Control Endpoint Packet size */ #define CDC_IN_FRAME_INTERVAL 5 /* Number of frames between IN transfers */ //#define APP_RX_DATA_SIZE 2048 /* Total size of IN buffer: */ #define APP_RX_DATA_SIZE 10000 #endif /* USE_USB_OTG_HS */ #define APP_FOPS VCP_fops /** * @} */ /** @defgroup USB_CONF_Exported_Types * @{ */ /** * @} */ /** @defgroup USB_CONF_Exported_Macros * @{ */ /** * @} */ /** @defgroup USB_CONF_Exported_Variables * @{ */ /** * @} */ /** @defgroup USB_CONF_Exported_FunctionsPrototype * @{ */ /** * @} */ #endif //__USBD_CONF__H__ /******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/ codec2-1.0.1/stm32/usb_conf/usbd_desc.c000066400000000000000000000203561412132000500175070ustar00rootroot00000000000000/** ****************************************************************************** * @file usbd_desc.c * @author MCD Application Team * @version V1.0.0 * @date 19-September-2011 * @brief This file provides the USBD descriptors and string formating method. ****************************************************************************** * @attention * * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE * TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY * DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING * FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. * *

© COPYRIGHT 2011 STMicroelectronics

****************************************************************************** */ /* Includes ------------------------------------------------------------------*/ #include #include "usbd_core.h" #include "usbd_desc.h" #include "usbd_req.h" #include "usbd_conf.h" #include "usb_regs.h" /** @addtogroup STM32_USB_OTG_DEVICE_LIBRARY * @{ */ /** @defgroup USBD_DESC * @brief USBD descriptors module * @{ */ /** @defgroup USBD_DESC_Private_TypesDefinitions * @{ */ /** * @} */ /** @defgroup USBD_DESC_Private_Defines * @{ */ #define USBD_VID 0x0483 #define USBD_PID 0x5740 /** @defgroup USB_String_Descriptors * @{ */ #define USBD_LANGID_STRING 0x409 #define USBD_MANUFACTURER_STRING "STMicroelectronics" #define USBD_PRODUCT_HS_STRING "STM32 Virtual ComPort in HS mode" #define USBD_SERIALNUMBER_HS_STRING "00000000050B" #define USBD_PRODUCT_FS_STRING "STM32 Virtual ComPort in FS Mode" #define USBD_SERIALNUMBER_FS_STRING "00000000050C" #define USBD_CONFIGURATION_HS_STRING "VCP Config" #define USBD_INTERFACE_HS_STRING "VCP Interface" #define USBD_CONFIGURATION_FS_STRING "VCP Config" #define USBD_INTERFACE_FS_STRING "VCP Interface" /** * @} */ /** @defgroup USBD_DESC_Private_Macros * @{ */ /** * @} */ /** @defgroup USBD_DESC_Private_Variables * @{ */ USBD_DEVICE USR_desc = { USBD_USR_DeviceDescriptor, USBD_USR_LangIDStrDescriptor, USBD_USR_ManufacturerStrDescriptor, USBD_USR_ProductStrDescriptor, USBD_USR_SerialStrDescriptor, USBD_USR_ConfigStrDescriptor, USBD_USR_InterfaceStrDescriptor, }; #ifdef USB_OTG_HS_INTERNAL_DMA_ENABLED #if defined ( __ICCARM__ ) /*!< IAR Compiler */ #pragma data_alignment=4 #endif #endif /* USB_OTG_HS_INTERNAL_DMA_ENABLED */ /* USB Standard Device Descriptor */ __ALIGN_BEGIN uint8_t USBD_DeviceDesc[USB_SIZ_DEVICE_DESC] __ALIGN_END = { 0x12, /*bLength */ USB_DEVICE_DESCRIPTOR_TYPE, /*bDescriptorType*/ 0x00, /*bcdUSB */ 0x02, 0x00, /*bDeviceClass*/ 0x00, /*bDeviceSubClass*/ 0x00, /*bDeviceProtocol*/ USB_OTG_MAX_EP0_SIZE, /*bMaxPacketSize*/ LOBYTE(USBD_VID), /*idVendor*/ HIBYTE(USBD_VID), /*idVendor*/ LOBYTE(USBD_PID), /*idVendor*/ HIBYTE(USBD_PID), /*idVendor*/ 0x00, /*bcdDevice rel. 2.00*/ 0x02, USBD_IDX_MFC_STR, /*Index of manufacturer string*/ USBD_IDX_PRODUCT_STR, /*Index of product string*/ USBD_IDX_SERIAL_STR, /*Index of serial number string*/ USBD_CFG_MAX_NUM /*bNumConfigurations*/ } ; /* USB_DeviceDescriptor */ #ifdef USB_OTG_HS_INTERNAL_DMA_ENABLED #if defined ( __ICCARM__ ) /*!< IAR Compiler */ #pragma data_alignment=4 #endif #endif /* USB_OTG_HS_INTERNAL_DMA_ENABLED */ /* USB Standard Device Descriptor */ __ALIGN_BEGIN uint8_t USBD_DeviceQualifierDesc[USB_LEN_DEV_QUALIFIER_DESC] __ALIGN_END = { USB_LEN_DEV_QUALIFIER_DESC, USB_DESC_TYPE_DEVICE_QUALIFIER, 0x00, 0x02, 0x00, 0x00, 0x00, 0x40, 0x01, 0x00, }; #ifdef USB_OTG_HS_INTERNAL_DMA_ENABLED #if defined ( __ICCARM__ ) /*!< IAR Compiler */ #pragma data_alignment=4 #endif #endif /* USB_OTG_HS_INTERNAL_DMA_ENABLED */ /* USB Standard Device Descriptor */ __ALIGN_BEGIN uint8_t USBD_LangIDDesc[USB_SIZ_STRING_LANGID] __ALIGN_END = { USB_SIZ_STRING_LANGID, USB_DESC_TYPE_STRING, LOBYTE(USBD_LANGID_STRING), HIBYTE(USBD_LANGID_STRING), }; /** * @} */ /** @defgroup USBD_DESC_Private_FunctionPrototypes * @{ */ /** * @} */ /** @defgroup USBD_DESC_Private_Functions * @{ */ /** * @brief USBD_USR_DeviceDescriptor * return the device descriptor * @param speed : current device speed * @param length : pointer to data length variable * @retval pointer to descriptor buffer */ uint8_t * USBD_USR_DeviceDescriptor( uint8_t speed , uint16_t *length) { *length = sizeof(USBD_DeviceDesc); return USBD_DeviceDesc; } /** * @brief USBD_USR_LangIDStrDescriptor * return the LangID string descriptor * @param speed : current device speed * @param length : pointer to data length variable * @retval pointer to descriptor buffer */ uint8_t * USBD_USR_LangIDStrDescriptor( uint8_t speed , uint16_t *length) { *length = sizeof(USBD_LangIDDesc); return USBD_LangIDDesc; } /** * @brief USBD_USR_ProductStrDescriptor * return the product string descriptor * @param speed : current device speed * @param length : pointer to data length variable * @retval pointer to descriptor buffer */ uint8_t * USBD_USR_ProductStrDescriptor( uint8_t speed , uint16_t *length) { if(speed == 0) { USBD_GetString ((uint8_t*)USBD_PRODUCT_HS_STRING, USBD_StrDesc, length); } else { USBD_GetString ((uint8_t*)USBD_PRODUCT_FS_STRING, USBD_StrDesc, length); } assert(*length < USB_MAX_STR_DESC_SIZ); return USBD_StrDesc; } /** * @brief USBD_USR_ManufacturerStrDescriptor * return the manufacturer string descriptor * @param speed : current device speed * @param length : pointer to data length variable * @retval pointer to descriptor buffer */ uint8_t * USBD_USR_ManufacturerStrDescriptor( uint8_t speed , uint16_t *length) { USBD_GetString ((uint8_t*)USBD_MANUFACTURER_STRING, USBD_StrDesc, length); assert(*length < USB_MAX_STR_DESC_SIZ); return USBD_StrDesc; } /** * @brief USBD_USR_SerialStrDescriptor * return the serial number string descriptor * @param speed : current device speed * @param length : pointer to data length variable * @retval pointer to descriptor buffer */ uint8_t * USBD_USR_SerialStrDescriptor( uint8_t speed , uint16_t *length) { if(speed == USB_OTG_SPEED_HIGH) { USBD_GetString ((uint8_t*)USBD_SERIALNUMBER_HS_STRING, USBD_StrDesc, length); } else { USBD_GetString ((uint8_t*)USBD_SERIALNUMBER_FS_STRING, USBD_StrDesc, length); } assert(*length < USB_MAX_STR_DESC_SIZ); return USBD_StrDesc; } /** * @brief USBD_USR_ConfigStrDescriptor * return the configuration string descriptor * @param speed : current device speed * @param length : pointer to data length variable * @retval pointer to descriptor buffer */ uint8_t * USBD_USR_ConfigStrDescriptor( uint8_t speed , uint16_t *length) { if(speed == USB_OTG_SPEED_HIGH) { USBD_GetString ((uint8_t*)USBD_CONFIGURATION_HS_STRING, USBD_StrDesc, length); } else { USBD_GetString ((uint8_t*)USBD_CONFIGURATION_FS_STRING, USBD_StrDesc, length); } assert(*length < USB_MAX_STR_DESC_SIZ); return USBD_StrDesc; } /** * @brief USBD_USR_InterfaceStrDescriptor * return the interface string descriptor * @param speed : current device speed * @param length : pointer to data length variable * @retval pointer to descriptor buffer */ uint8_t * USBD_USR_InterfaceStrDescriptor( uint8_t speed , uint16_t *length) { if(speed == 0) { USBD_GetString ((uint8_t*)USBD_INTERFACE_HS_STRING, USBD_StrDesc, length); } else { USBD_GetString ((uint8_t*)USBD_INTERFACE_FS_STRING, USBD_StrDesc, length); } assert(*length < USB_MAX_STR_DESC_SIZ); return USBD_StrDesc; } /** * @} */ /** * @} */ /** * @} */ /******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/ codec2-1.0.1/stm32/usb_conf/usbd_desc.h000066400000000000000000000063271412132000500175160ustar00rootroot00000000000000/** ****************************************************************************** * @file usbd_desc.h * @author MCD Application Team * @version V1.0.0 * @date 19-September-2011 * @brief header file for the usbd_desc.c file ****************************************************************************** * @attention * * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE * TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY * DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING * FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. * *

© COPYRIGHT 2011 STMicroelectronics

****************************************************************************** */ /* Define to prevent recursive inclusion -------------------------------------*/ #ifndef __USB_DESC_H #define __USB_DESC_H /* Includes ------------------------------------------------------------------*/ #include "usbd_def.h" /** @addtogroup STM32_USB_OTG_DEVICE_LIBRARY * @{ */ /** @defgroup USB_DESC * @brief general defines for the usb device library file * @{ */ /** @defgroup USB_DESC_Exported_Defines * @{ */ #define USB_DEVICE_DESCRIPTOR_TYPE 0x01 #define USB_CONFIGURATION_DESCRIPTOR_TYPE 0x02 #define USB_STRING_DESCRIPTOR_TYPE 0x03 #define USB_INTERFACE_DESCRIPTOR_TYPE 0x04 #define USB_ENDPOINT_DESCRIPTOR_TYPE 0x05 #define USB_SIZ_DEVICE_DESC 18 #define USB_SIZ_STRING_LANGID 4 /** * @} */ /** @defgroup USBD_DESC_Exported_TypesDefinitions * @{ */ /** * @} */ /** @defgroup USBD_DESC_Exported_Macros * @{ */ /** * @} */ /** @defgroup USBD_DESC_Exported_Variables * @{ */ extern uint8_t USBD_DeviceDesc [USB_SIZ_DEVICE_DESC]; extern uint8_t USBD_StrDesc[USB_MAX_STR_DESC_SIZ]; extern uint8_t USBD_OtherSpeedCfgDesc[USB_LEN_CFG_DESC]; extern uint8_t USBD_DeviceQualifierDesc[USB_LEN_DEV_QUALIFIER_DESC]; extern uint8_t USBD_LangIDDesc[USB_SIZ_STRING_LANGID]; extern USBD_DEVICE USR_desc; /** * @} */ /** @defgroup USBD_DESC_Exported_FunctionsPrototype * @{ */ uint8_t * USBD_USR_DeviceDescriptor( uint8_t speed , uint16_t *length); uint8_t * USBD_USR_LangIDStrDescriptor( uint8_t speed , uint16_t *length); uint8_t * USBD_USR_ManufacturerStrDescriptor ( uint8_t speed , uint16_t *length); uint8_t * USBD_USR_ProductStrDescriptor ( uint8_t speed , uint16_t *length); uint8_t * USBD_USR_SerialStrDescriptor( uint8_t speed , uint16_t *length); uint8_t * USBD_USR_ConfigStrDescriptor( uint8_t speed , uint16_t *length); uint8_t * USBD_USR_InterfaceStrDescriptor( uint8_t speed , uint16_t *length); #ifdef USB_SUPPORT_USER_STRING_DESC uint8_t * USBD_USR_USRStringDesc (uint8_t speed, uint8_t idx , uint16_t *length); #endif /* USB_SUPPORT_USER_STRING_DESC */ /** * @} */ #endif /* __USBD_DESC_H */ /** * @} */ /** * @} */ /******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/ codec2-1.0.1/stm32/usb_conf/usbd_usr.c000066400000000000000000000053171412132000500174020ustar00rootroot00000000000000/** ****************************************************************************** * @file usbd_usr.c * @author MCD Application Team * @version V1.0.0 * @date 19-September-2011 * @brief This file includes the user application layer ****************************************************************************** * @attention * * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE * TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY * DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING * FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. * *

© COPYRIGHT 2011 STMicroelectronics

****************************************************************************** */ #include "usbd_usr.h" #include "usbd_ioreq.h" USBD_Usr_cb_TypeDef USR_cb = { USBD_USR_Init, USBD_USR_DeviceReset, USBD_USR_DeviceConfigured, USBD_USR_DeviceSuspended, USBD_USR_DeviceResumed, USBD_USR_DeviceConnected, USBD_USR_DeviceDisconnected, }; /** * @brief USBD_USR_Init * Displays the message on LCD for host lib initialization * @param None * @retval None */ void USBD_USR_Init(void) { } /** * @brief USBD_USR_DeviceReset * Displays the message on LCD on device Reset Event * @param speed : device speed * @retval None */ void USBD_USR_DeviceReset(uint8_t speed ) { switch (speed) { case USB_OTG_SPEED_HIGH: break; case USB_OTG_SPEED_FULL: break; default: break; } } /** * @brief USBD_USR_DeviceConfigured * Displays the message on LCD on device configuration Event * @param None * @retval Staus */ void USBD_USR_DeviceConfigured (void) { } /** * @brief USBD_USR_DeviceConnected * Displays the message on LCD on device connection Event * @param None * @retval Staus */ void USBD_USR_DeviceConnected (void) { } /** * @brief USBD_USR_DeviceDisonnected * Displays the message on LCD on device disconnection Event * @param None * @retval Staus */ void USBD_USR_DeviceDisconnected (void) { } /** * @brief USBD_USR_DeviceSuspended * Displays the message on LCD on device suspend Event * @param None * @retval None */ void USBD_USR_DeviceSuspended(void) { /* Users can do their application actions here for the USB-Reset */ } /** * @brief USBD_USR_DeviceResumed * Displays the message on LCD on device resume Event * @param None * @retval None */ void USBD_USR_DeviceResumed(void) { /* Users can do their application actions here for the USB-Reset */ } codec2-1.0.1/stm32/usb_lib/000077500000000000000000000000001412132000500152235ustar00rootroot00000000000000codec2-1.0.1/stm32/usb_lib/cdc/000077500000000000000000000000001412132000500157545ustar00rootroot00000000000000codec2-1.0.1/stm32/usb_lib/cdc/usbd_cdc_core.c000066400000000000000000000600151412132000500207000ustar00rootroot00000000000000/** ****************************************************************************** * @file usbd_cdc_core.c * @author MCD Application Team * @version V1.0.0 * @date 22-July-2011 * @brief This file provides the high layer firmware functions to manage the * following functionalities of the USB CDC Class: * - Initialization and Configuration of high and low layer * - Enumeration as CDC Device (and enumeration for each implemented memory interface) * - OUT/IN data transfer * - Command IN transfer (class requests management) * - Error management * * @verbatim * * =================================================================== * CDC Class Driver Description * =================================================================== * This driver manages the "Universal Serial Bus Class Definitions for Communications Devices * Revision 1.2 November 16, 2007" and the sub-protocol specification of "Universal Serial Bus * Communications Class Subclass Specification for PSTN Devices Revision 1.2 February 9, 2007" * This driver implements the following aspects of the specification: * - Device descriptor management * - Configuration descriptor management * - Enumeration as CDC device with 2 data endpoints (IN and OUT) and 1 command endpoint (IN) * - Requests management (as described in section 6.2 in specification) * - Abstract Control Model compliant * - Union Functional collection (using 1 IN endpoint for control) * - Data interface class * @note * For the Abstract Control Model, this core allows only transmitting the requests to * lower layer dispatcher (ie. usbd_cdc_vcp.c/.h) which should manage each request and * perform relative actions. * * These aspects may be enriched or modified for a specific user application. * * This driver doesn't implement the following aspects of the specification * (but it is possible to manage these features with some modifications on this driver): * - Any class-specific aspect relative to communication classes should be managed by user application. * - All communication classes other than PSTN are not managed * * @endverbatim * ****************************************************************************** * @attention * * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE * TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY * DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING * FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. * *

© COPYRIGHT 2011 STMicroelectronics

****************************************************************************** */ /* Includes ------------------------------------------------------------------*/ #include "usbd_cdc_core.h" #include "usbd_desc.h" #include "usbd_req.h" /** @addtogroup STM32_USB_OTG_DEVICE_LIBRARY * @{ */ /** @defgroup usbd_cdc * @brief usbd core module * @{ */ /** @defgroup usbd_cdc_Private_TypesDefinitions * @{ */ /** * @} */ /** @defgroup usbd_cdc_Private_Defines * @{ */ /** * @} */ /** @defgroup usbd_cdc_Private_Macros * @{ */ /** * @} */ /** @defgroup usbd_cdc_Private_FunctionPrototypes * @{ */ /********************************************* CDC Device library callbacks *********************************************/ static uint8_t usbd_cdc_Init (void *pdev, uint8_t cfgidx); static uint8_t usbd_cdc_DeInit (void *pdev, uint8_t cfgidx); static uint8_t usbd_cdc_Setup (void *pdev, USB_SETUP_REQ *req); static uint8_t usbd_cdc_EP0_RxReady (void *pdev); static uint8_t usbd_cdc_DataIn (void *pdev, uint8_t epnum); static uint8_t usbd_cdc_DataOut (void *pdev, uint8_t epnum); static uint8_t usbd_cdc_SOF (void *pdev); /********************************************* CDC specific management functions *********************************************/ static void Handle_USBAsynchXfer (void *pdev); static uint8_t *USBD_cdc_GetCfgDesc (uint8_t speed, uint16_t *length); #ifdef USE_USB_OTG_HS static uint8_t *USBD_cdc_GetOtherCfgDesc (uint8_t speed, uint16_t *length); #endif /** * @} */ /** @defgroup usbd_cdc_Private_Variables * @{ */ extern CDC_IF_Prop_TypeDef APP_FOPS; extern uint8_t USBD_DeviceDesc [USB_SIZ_DEVICE_DESC]; #ifdef USB_OTG_HS_INTERNAL_DMA_ENABLED #if defined ( __ICCARM__ ) /*!< IAR Compiler */ #pragma data_alignment=4 #endif #endif /* USB_OTG_HS_INTERNAL_DMA_ENABLED */ __ALIGN_BEGIN uint8_t usbd_cdc_CfgDesc [USB_CDC_CONFIG_DESC_SIZ] __ALIGN_END ; #ifdef USB_OTG_HS_INTERNAL_DMA_ENABLED #if defined ( __ICCARM__ ) /*!< IAR Compiler */ #pragma data_alignment=4 #endif #endif /* USB_OTG_HS_INTERNAL_DMA_ENABLED */ __ALIGN_BEGIN uint8_t usbd_cdc_OtherCfgDesc [USB_CDC_CONFIG_DESC_SIZ] __ALIGN_END ; #ifdef USB_OTG_HS_INTERNAL_DMA_ENABLED #if defined ( __ICCARM__ ) /*!< IAR Compiler */ #pragma data_alignment=4 #endif #endif /* USB_OTG_HS_INTERNAL_DMA_ENABLED */ __ALIGN_BEGIN static __IO uint32_t usbd_cdc_AltSet __ALIGN_END = 0; #ifdef USB_OTG_HS_INTERNAL_DMA_ENABLED #if defined ( __ICCARM__ ) /*!< IAR Compiler */ #pragma data_alignment=4 #endif #endif /* USB_OTG_HS_INTERNAL_DMA_ENABLED */ __ALIGN_BEGIN uint8_t USB_Rx_Buffer [CDC_DATA_MAX_PACKET_SIZE] __ALIGN_END ; #ifdef USB_OTG_HS_INTERNAL_DMA_ENABLED #if defined ( __ICCARM__ ) /*!< IAR Compiler */ #pragma data_alignment=4 #endif #endif /* USB_OTG_HS_INTERNAL_DMA_ENABLED */ __ALIGN_BEGIN uint8_t APP_Rx_Buffer [APP_RX_DATA_SIZE] __ALIGN_END ; #ifdef USB_OTG_HS_INTERNAL_DMA_ENABLED #if defined ( __ICCARM__ ) /*!< IAR Compiler */ #pragma data_alignment=4 #endif #endif /* USB_OTG_HS_INTERNAL_DMA_ENABLED */ __ALIGN_BEGIN uint8_t CmdBuff[CDC_CMD_PACKET_SZE] __ALIGN_END ; uint32_t APP_Rx_ptr_in = 0; uint32_t APP_Rx_ptr_out = 0; uint32_t APP_Rx_length = 0; uint8_t USB_Tx_State = 0; static uint32_t cdcCmd = 0xFF; static uint32_t cdcLen = 0; /* CDC interface class callbacks structure */ USBD_Class_cb_TypeDef USBD_CDC_cb = { usbd_cdc_Init, usbd_cdc_DeInit, usbd_cdc_Setup, NULL, /* EP0_TxSent, */ usbd_cdc_EP0_RxReady, usbd_cdc_DataIn, usbd_cdc_DataOut, usbd_cdc_SOF, NULL, NULL, USBD_cdc_GetCfgDesc, #ifdef USE_USB_OTG_HS USBD_cdc_GetOtherCfgDesc, /* use same cobfig as per FS */ #endif /* USE_USB_OTG_HS */ }; #ifdef USB_OTG_HS_INTERNAL_DMA_ENABLED #if defined ( __ICCARM__ ) /*!< IAR Compiler */ #pragma data_alignment=4 #endif #endif /* USB_OTG_HS_INTERNAL_DMA_ENABLED */ /* USB CDC device Configuration Descriptor */ __ALIGN_BEGIN uint8_t usbd_cdc_CfgDesc[USB_CDC_CONFIG_DESC_SIZ] __ALIGN_END = { /*Configuration Descriptor*/ 0x09, /* bLength: Configuration Descriptor size */ USB_CONFIGURATION_DESCRIPTOR_TYPE, /* bDescriptorType: Configuration */ USB_CDC_CONFIG_DESC_SIZ, /* wTotalLength:no of returned bytes */ 0x00, 0x02, /* bNumInterfaces: 2 interface */ 0x01, /* bConfigurationValue: Configuration value */ 0x00, /* iConfiguration: Index of string descriptor describing the configuration */ 0xC0, /* bmAttributes: self powered */ 0x32, /* MaxPower 0 mA */ /*---------------------------------------------------------------------------*/ /*Interface Descriptor */ 0x09, /* bLength: Interface Descriptor size */ USB_INTERFACE_DESCRIPTOR_TYPE, /* bDescriptorType: Interface */ /* Interface descriptor type */ 0x00, /* bInterfaceNumber: Number of Interface */ 0x00, /* bAlternateSetting: Alternate setting */ 0x01, /* bNumEndpoints: One endpoints used */ 0x02, /* bInterfaceClass: Communication Interface Class */ 0x02, /* bInterfaceSubClass: Abstract Control Model */ 0x01, /* bInterfaceProtocol: Common AT commands */ 0x00, /* iInterface: */ /*Header Functional Descriptor*/ 0x05, /* bLength: Endpoint Descriptor size */ 0x24, /* bDescriptorType: CS_INTERFACE */ 0x00, /* bDescriptorSubtype: Header Func Desc */ 0x10, /* bcdCDC: spec release number */ 0x01, /*Call Management Functional Descriptor*/ 0x05, /* bFunctionLength */ 0x24, /* bDescriptorType: CS_INTERFACE */ 0x01, /* bDescriptorSubtype: Call Management Func Desc */ 0x00, /* bmCapabilities: D0+D1 */ 0x01, /* bDataInterface: 1 */ /*ACM Functional Descriptor*/ 0x04, /* bFunctionLength */ 0x24, /* bDescriptorType: CS_INTERFACE */ 0x02, /* bDescriptorSubtype: Abstract Control Management desc */ 0x02, /* bmCapabilities */ /*Union Functional Descriptor*/ 0x05, /* bFunctionLength */ 0x24, /* bDescriptorType: CS_INTERFACE */ 0x06, /* bDescriptorSubtype: Union func desc */ 0x00, /* bMasterInterface: Communication class interface */ 0x01, /* bSlaveInterface0: Data Class Interface */ /*Endpoint 2 Descriptor*/ 0x07, /* bLength: Endpoint Descriptor size */ USB_ENDPOINT_DESCRIPTOR_TYPE, /* bDescriptorType: Endpoint */ CDC_CMD_EP, /* bEndpointAddress */ 0x03, /* bmAttributes: Interrupt */ LOBYTE(CDC_CMD_PACKET_SZE), /* wMaxPacketSize: */ HIBYTE(CDC_CMD_PACKET_SZE), #ifdef USE_USB_OTG_HS 0x10, /* bInterval: */ #else 0xFF, /* bInterval: */ #endif /* USE_USB_OTG_HS */ /*---------------------------------------------------------------------------*/ /*Data class interface descriptor*/ 0x09, /* bLength: Endpoint Descriptor size */ USB_INTERFACE_DESCRIPTOR_TYPE, /* bDescriptorType: */ 0x01, /* bInterfaceNumber: Number of Interface */ 0x00, /* bAlternateSetting: Alternate setting */ 0x02, /* bNumEndpoints: Two endpoints used */ 0x0A, /* bInterfaceClass: CDC */ 0x00, /* bInterfaceSubClass: */ 0x00, /* bInterfaceProtocol: */ 0x00, /* iInterface: */ /*Endpoint OUT Descriptor*/ 0x07, /* bLength: Endpoint Descriptor size */ USB_ENDPOINT_DESCRIPTOR_TYPE, /* bDescriptorType: Endpoint */ CDC_OUT_EP, /* bEndpointAddress */ 0x02, /* bmAttributes: Bulk */ LOBYTE(CDC_DATA_MAX_PACKET_SIZE), /* wMaxPacketSize: */ HIBYTE(CDC_DATA_MAX_PACKET_SIZE), 0x00, /* bInterval: ignore for Bulk transfer */ /*Endpoint IN Descriptor*/ 0x07, /* bLength: Endpoint Descriptor size */ USB_ENDPOINT_DESCRIPTOR_TYPE, /* bDescriptorType: Endpoint */ CDC_IN_EP, /* bEndpointAddress */ 0x02, /* bmAttributes: Bulk */ LOBYTE(CDC_DATA_MAX_PACKET_SIZE), /* wMaxPacketSize: */ HIBYTE(CDC_DATA_MAX_PACKET_SIZE), 0x00 /* bInterval: ignore for Bulk transfer */ } ; #ifdef USE_USB_OTG_HS #ifdef USB_OTG_HS_INTERNAL_DMA_ENABLED #if defined ( __ICCARM__ ) /*!< IAR Compiler */ #pragma data_alignment=4 #endif #endif /* USB_OTG_HS_INTERNAL_DMA_ENABLED */ __ALIGN_BEGIN uint8_t usbd_cdc_OtherCfgDesc[USB_CDC_CONFIG_DESC_SIZ] __ALIGN_END = { 0x09, /* bLength: Configuation Descriptor size */ USB_DESC_TYPE_OTHER_SPEED_CONFIGURATION, USB_CDC_CONFIG_DESC_SIZ, 0x00, 0x02, /* bNumInterfaces: 2 interfaces */ 0x01, /* bConfigurationValue: */ 0x04, /* iConfiguration: */ 0xC0, /* bmAttributes: */ 0x32, /* MaxPower 100 mA */ /*Interface Descriptor */ 0x09, /* bLength: Interface Descriptor size */ USB_INTERFACE_DESCRIPTOR_TYPE, /* bDescriptorType: Interface */ /* Interface descriptor type */ 0x00, /* bInterfaceNumber: Number of Interface */ 0x00, /* bAlternateSetting: Alternate setting */ 0x01, /* bNumEndpoints: One endpoints used */ 0x02, /* bInterfaceClass: Communication Interface Class */ 0x02, /* bInterfaceSubClass: Abstract Control Model */ 0x01, /* bInterfaceProtocol: Common AT commands */ 0x00, /* iInterface: */ /*Header Functional Descriptor*/ 0x05, /* bLength: Endpoint Descriptor size */ 0x24, /* bDescriptorType: CS_INTERFACE */ 0x00, /* bDescriptorSubtype: Header Func Desc */ 0x10, /* bcdCDC: spec release number */ 0x01, /*Call Management Functional Descriptor*/ 0x05, /* bFunctionLength */ 0x24, /* bDescriptorType: CS_INTERFACE */ 0x01, /* bDescriptorSubtype: Call Management Func Desc */ 0x00, /* bmCapabilities: D0+D1 */ 0x01, /* bDataInterface: 1 */ /*ACM Functional Descriptor*/ 0x04, /* bFunctionLength */ 0x24, /* bDescriptorType: CS_INTERFACE */ 0x02, /* bDescriptorSubtype: Abstract Control Management desc */ 0x02, /* bmCapabilities */ /*Union Functional Descriptor*/ 0x05, /* bFunctionLength */ 0x24, /* bDescriptorType: CS_INTERFACE */ 0x06, /* bDescriptorSubtype: Union func desc */ 0x00, /* bMasterInterface: Communication class interface */ 0x01, /* bSlaveInterface0: Data Class Interface */ /*Endpoint 2 Descriptor*/ 0x07, /* bLength: Endpoint Descriptor size */ USB_ENDPOINT_DESCRIPTOR_TYPE, /* bDescriptorType: Endpoint */ CDC_CMD_EP, /* bEndpointAddress */ 0x03, /* bmAttributes: Interrupt */ LOBYTE(CDC_CMD_PACKET_SZE), /* wMaxPacketSize: */ HIBYTE(CDC_CMD_PACKET_SZE), 0xFF, /* bInterval: */ /*---------------------------------------------------------------------------*/ /*Data class interface descriptor*/ 0x09, /* bLength: Endpoint Descriptor size */ USB_INTERFACE_DESCRIPTOR_TYPE, /* bDescriptorType: */ 0x01, /* bInterfaceNumber: Number of Interface */ 0x00, /* bAlternateSetting: Alternate setting */ 0x02, /* bNumEndpoints: Two endpoints used */ 0x0A, /* bInterfaceClass: CDC */ 0x00, /* bInterfaceSubClass: */ 0x00, /* bInterfaceProtocol: */ 0x00, /* iInterface: */ /*Endpoint OUT Descriptor*/ 0x07, /* bLength: Endpoint Descriptor size */ USB_ENDPOINT_DESCRIPTOR_TYPE, /* bDescriptorType: Endpoint */ CDC_OUT_EP, /* bEndpointAddress */ 0x02, /* bmAttributes: Bulk */ 0x40, /* wMaxPacketSize: */ 0x00, 0x00, /* bInterval: ignore for Bulk transfer */ /*Endpoint IN Descriptor*/ 0x07, /* bLength: Endpoint Descriptor size */ USB_ENDPOINT_DESCRIPTOR_TYPE, /* bDescriptorType: Endpoint */ CDC_IN_EP, /* bEndpointAddress */ 0x02, /* bmAttributes: Bulk */ 0x40, /* wMaxPacketSize: */ 0x00, 0x00 /* bInterval */ }; #endif /* USE_USB_OTG_HS */ /** * @} */ /** @defgroup usbd_cdc_Private_Functions * @{ */ /** * @brief usbd_cdc_Init * Initilaize the CDC interface * @param pdev: device instance * @param cfgidx: Configuration index * @retval status */ static uint8_t usbd_cdc_Init (void *pdev, uint8_t cfgidx) { uint8_t *pbuf; /* Open EP IN */ DCD_EP_Open(pdev, CDC_IN_EP, CDC_DATA_IN_PACKET_SIZE, USB_OTG_EP_BULK); /* Open EP OUT */ DCD_EP_Open(pdev, CDC_OUT_EP, CDC_DATA_OUT_PACKET_SIZE, USB_OTG_EP_BULK); /* Open Command IN EP */ DCD_EP_Open(pdev, CDC_CMD_EP, CDC_CMD_PACKET_SZE, USB_OTG_EP_INT); pbuf = (uint8_t *)USBD_DeviceDesc; pbuf[4] = DEVICE_CLASS_CDC; pbuf[5] = DEVICE_SUBCLASS_CDC; /* Initialize the Interface physical components */ APP_FOPS.pIf_Init(); /* Prepare Out endpoint to receive next packet */ DCD_EP_PrepareRx(pdev, CDC_OUT_EP, (uint8_t*)(USB_Rx_Buffer), CDC_DATA_OUT_PACKET_SIZE); return USBD_OK; } /** * @brief usbd_cdc_Init * DeInitialize the CDC layer * @param pdev: device instance * @param cfgidx: Configuration index * @retval status */ static uint8_t usbd_cdc_DeInit (void *pdev, uint8_t cfgidx) { /* Open EP IN */ DCD_EP_Close(pdev, CDC_IN_EP); /* Open EP OUT */ DCD_EP_Close(pdev, CDC_OUT_EP); /* Open Command IN EP */ DCD_EP_Close(pdev, CDC_CMD_EP); /* Restore default state of the Interface physical components */ APP_FOPS.pIf_DeInit(); return USBD_OK; } /** * @brief usbd_cdc_Setup * Handle the CDC specific requests * @param pdev: instance * @param req: usb requests * @retval status */ static uint8_t usbd_cdc_Setup (void *pdev, USB_SETUP_REQ *req) { uint16_t len = 0; uint8_t *pbuf; switch (req->bmRequest & USB_REQ_TYPE_MASK) { /* CDC Class Requests -------------------------------*/ case USB_REQ_TYPE_CLASS : /* Check if the request is a data setup packet */ if (req->wLength) { /* Check if the request is Device-to-Host */ if (req->bmRequest & 0x80) { /* Get the data to be sent to Host from interface layer */ APP_FOPS.pIf_Ctrl(req->bRequest, CmdBuff, req->wLength); /* Send the data to the host */ USBD_CtlSendData (pdev, CmdBuff, req->wLength); } else /* Host-to-Device requeset */ { /* Set the value of the current command to be processed */ cdcCmd = req->bRequest; cdcLen = req->wLength; /* Prepare the reception of the buffer over EP0 Next step: the received data will be managed in usbd_cdc_EP0_TxSent() function. */ USBD_CtlPrepareRx (pdev, CmdBuff, req->wLength); } } else /* No Data request */ { /* Transfer the command to the interface layer */ APP_FOPS.pIf_Ctrl(req->bRequest, NULL, 0); } return USBD_OK; default: USBD_CtlError (pdev, req); return USBD_FAIL; /* Standard Requests -------------------------------*/ case USB_REQ_TYPE_STANDARD: switch (req->bRequest) { case USB_REQ_GET_DESCRIPTOR: if( (req->wValue >> 8) == CDC_DESCRIPTOR_TYPE) { #ifdef USB_OTG_HS_INTERNAL_DMA_ENABLED pbuf = usbd_cdc_Desc; #else pbuf = usbd_cdc_CfgDesc + 9 + (9 * USBD_ITF_MAX_NUM); #endif len = MIN(USB_CDC_DESC_SIZ , req->wLength); } USBD_CtlSendData (pdev, pbuf, len); break; case USB_REQ_GET_INTERFACE : USBD_CtlSendData (pdev, (uint8_t *)&usbd_cdc_AltSet, 1); break; case USB_REQ_SET_INTERFACE : if ((uint8_t)(req->wValue) < USBD_ITF_MAX_NUM) { usbd_cdc_AltSet = (uint8_t)(req->wValue); } else { /* Call the error management function (command will be nacked */ USBD_CtlError (pdev, req); } break; } } return USBD_OK; } /** * @brief usbd_cdc_EP0_RxReady * Data received on control endpoint * @param pdev: device device instance * @retval status */ static uint8_t usbd_cdc_EP0_RxReady (void *pdev) { if (cdcCmd != NO_CMD) { /* Process the data */ APP_FOPS.pIf_Ctrl(cdcCmd, CmdBuff, cdcLen); /* Reset the command variable to default value */ cdcCmd = NO_CMD; } return USBD_OK; } /** * @brief usbd_audio_DataIn * Data sent on non-control IN endpoint * @param pdev: device instance * @param epnum: endpoint number * @retval status */ static uint8_t usbd_cdc_DataIn (void *pdev, uint8_t epnum) { uint16_t USB_Tx_ptr; uint16_t USB_Tx_length; if (USB_Tx_State == 1) { if (APP_Rx_length == 0) { USB_Tx_State = 0; } else { if (APP_Rx_length > CDC_DATA_IN_PACKET_SIZE){ USB_Tx_ptr = APP_Rx_ptr_out; USB_Tx_length = CDC_DATA_IN_PACKET_SIZE; APP_Rx_ptr_out += CDC_DATA_IN_PACKET_SIZE; APP_Rx_length -= CDC_DATA_IN_PACKET_SIZE; } else { USB_Tx_ptr = APP_Rx_ptr_out; USB_Tx_length = APP_Rx_length; APP_Rx_ptr_out += APP_Rx_length; APP_Rx_length = 0; } /* Prepare the available data buffer to be sent on IN endpoint */ DCD_EP_Tx (pdev, CDC_IN_EP, (uint8_t*)&APP_Rx_Buffer[USB_Tx_ptr], USB_Tx_length); } } return USBD_OK; } /** * @brief usbd_audio_DataOut * Data received on non-control Out endpoint * @param pdev: device instance * @param epnum: endpoint number * @retval status */ static uint8_t usbd_cdc_DataOut (void *pdev, uint8_t epnum) { uint16_t USB_Rx_Cnt; /* Get the received data buffer and update the counter */ USB_Rx_Cnt = ((USB_OTG_CORE_HANDLE*)pdev)->dev.out_ep[epnum].xfer_count; /* USB data will be immediately processed, this allow next USB traffic being NAKed till the end of the application Xfer */ APP_FOPS.pIf_DataRx(USB_Rx_Buffer, USB_Rx_Cnt); /* Prepare Out endpoint to receive next packet */ DCD_EP_PrepareRx(pdev, CDC_OUT_EP, (uint8_t*)(USB_Rx_Buffer), CDC_DATA_OUT_PACKET_SIZE); return USBD_OK; } /** * @brief usbd_audio_SOF * Start Of Frame event management * @param pdev: instance * @param epnum: endpoint number * @retval status */ static uint8_t usbd_cdc_SOF (void *pdev) { static uint32_t FrameCount = 0; if (FrameCount++ == CDC_IN_FRAME_INTERVAL) { /* Reset the frame counter */ FrameCount = 0; /* Check the data to be sent through IN pipe */ Handle_USBAsynchXfer(pdev); } return USBD_OK; } /** * @brief Handle_USBAsynchXfer * Send data to USB * @param pdev: instance * @retval None */ static void Handle_USBAsynchXfer (void *pdev) { uint16_t USB_Tx_ptr; uint16_t USB_Tx_length; if(USB_Tx_State != 1) { if (APP_Rx_ptr_out == APP_RX_DATA_SIZE) { APP_Rx_ptr_out = 0; } if(APP_Rx_ptr_out == APP_Rx_ptr_in) { USB_Tx_State = 0; return; } if(APP_Rx_ptr_out > APP_Rx_ptr_in) /* rollback */ { APP_Rx_length = APP_RX_DATA_SIZE - APP_Rx_ptr_out; } else { APP_Rx_length = APP_Rx_ptr_in - APP_Rx_ptr_out; } #ifdef USB_OTG_HS_INTERNAL_DMA_ENABLED APP_Rx_length &= ~0x03; #endif /* USB_OTG_HS_INTERNAL_DMA_ENABLED */ if (APP_Rx_length > CDC_DATA_IN_PACKET_SIZE) { USB_Tx_ptr = APP_Rx_ptr_out; USB_Tx_length = CDC_DATA_IN_PACKET_SIZE; APP_Rx_ptr_out += CDC_DATA_IN_PACKET_SIZE; APP_Rx_length -= CDC_DATA_IN_PACKET_SIZE; } else { USB_Tx_ptr = APP_Rx_ptr_out; USB_Tx_length = APP_Rx_length; APP_Rx_ptr_out += APP_Rx_length; APP_Rx_length = 0; } USB_Tx_State = 1; DCD_EP_Tx (pdev, CDC_IN_EP, (uint8_t*)&APP_Rx_Buffer[USB_Tx_ptr], USB_Tx_length); } } /** * @brief USBD_cdc_GetCfgDesc * Return configuration descriptor * @param speed : current device speed * @param length : pointer data length * @retval pointer to descriptor buffer */ static uint8_t *USBD_cdc_GetCfgDesc (uint8_t speed, uint16_t *length) { *length = sizeof (usbd_cdc_CfgDesc); return usbd_cdc_CfgDesc; } /** * @brief USBD_cdc_GetCfgDesc * Return configuration descriptor * @param speed : current device speed * @param length : pointer data length * @retval pointer to descriptor buffer */ #ifdef USE_USB_OTG_HS static uint8_t *USBD_cdc_GetOtherCfgDesc (uint8_t speed, uint16_t *length) { *length = sizeof (usbd_cdc_OtherCfgDesc); return usbd_cdc_OtherCfgDesc; } #endif /** * @} */ /** * @} */ /** * @} */ /******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/ codec2-1.0.1/stm32/usb_lib/cdc/usbd_cdc_core.h000066400000000000000000000074721412132000500207150ustar00rootroot00000000000000/** ****************************************************************************** * @file usbd_cdc_core.h * @author MCD Application Team * @version V1.0.0 * @date 22-July-2011 * @brief header file for the usbd_cdc_core.c file. ****************************************************************************** * @attention * * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE * TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY * DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING * FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. * *

© COPYRIGHT 2011 STMicroelectronics

****************************************************************************** */ /* Includes ------------------------------------------------------------------*/ #ifndef __USB_CDC_CORE_H_ #define __USB_CDC_CORE_H_ #include "usbd_ioreq.h" /** @addtogroup STM32_USB_OTG_DEVICE_LIBRARY * @{ */ /** @defgroup usbd_cdc * @brief This file is the Header file for USBD_cdc.c * @{ */ /** @defgroup usbd_cdc_Exported_Defines * @{ */ #define USB_CDC_CONFIG_DESC_SIZ (67) #define USB_CDC_DESC_SIZ (67-9) #define CDC_DESCRIPTOR_TYPE 0x21 #define DEVICE_CLASS_CDC 0x02 #define DEVICE_SUBCLASS_CDC 0x00 #define USB_DEVICE_DESCRIPTOR_TYPE 0x01 #define USB_CONFIGURATION_DESCRIPTOR_TYPE 0x02 #define USB_STRING_DESCRIPTOR_TYPE 0x03 #define USB_INTERFACE_DESCRIPTOR_TYPE 0x04 #define USB_ENDPOINT_DESCRIPTOR_TYPE 0x05 #define STANDARD_ENDPOINT_DESC_SIZE 0x09 #define CDC_DATA_IN_PACKET_SIZE *(uint16_t *)(((USB_OTG_CORE_HANDLE *)pdev)->dev.pConfig_descriptor + 57) #define CDC_DATA_OUT_PACKET_SIZE *(uint16_t *)(((USB_OTG_CORE_HANDLE *)pdev)->dev.pConfig_descriptor + 64) /*---------------------------------------------------------------------*/ /* CDC definitions */ /*---------------------------------------------------------------------*/ /**************************************************/ /* CDC Requests */ /**************************************************/ #define SEND_ENCAPSULATED_COMMAND 0x00 #define GET_ENCAPSULATED_RESPONSE 0x01 #define SET_COMM_FEATURE 0x02 #define GET_COMM_FEATURE 0x03 #define CLEAR_COMM_FEATURE 0x04 #define SET_LINE_CODING 0x20 #define GET_LINE_CODING 0x21 #define SET_CONTROL_LINE_STATE 0x22 #define SEND_BREAK 0x23 #define NO_CMD 0xFF /** * @} */ /** @defgroup USBD_CORE_Exported_TypesDefinitions * @{ */ typedef struct _CDC_IF_PROP { uint16_t (*pIf_Init) (void); uint16_t (*pIf_DeInit) (void); uint16_t (*pIf_Ctrl) (uint32_t Cmd, uint8_t* Buf, uint32_t Len); uint16_t (*pIf_DataTx) (uint8_t* Buf, uint32_t Len); uint16_t (*pIf_DataRx) (uint8_t* Buf, uint32_t Len); } CDC_IF_Prop_TypeDef; /** * @} */ /** @defgroup USBD_CORE_Exported_Macros * @{ */ /** * @} */ /** @defgroup USBD_CORE_Exported_Variables * @{ */ extern USBD_Class_cb_TypeDef USBD_CDC_cb; /** * @} */ /** @defgroup USB_CORE_Exported_Functions * @{ */ /** * @} */ #endif // __USB_CDC_CORE_H_ /** * @} */ /** * @} */ /******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/ codec2-1.0.1/stm32/usb_lib/cdc/usbd_cdc_vcp.c000066400000000000000000000164211412132000500205420ustar00rootroot00000000000000/** ****************************************************************************** * @file usbd_cdc_vcp.c * @author MCD Application Team * @version V1.0.0 * @date 22-July-2011 * @brief Generic media access Layer. ****************************************************************************** * @attention * * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE * TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY * DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING * FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. * *

© COPYRIGHT 2011 STMicroelectronics

****************************************************************************** */ #ifdef USB_OTG_HS_INTERNAL_DMA_ENABLED #pragma data_alignment = 4 #endif /* USB_OTG_HS_INTERNAL_DMA_ENABLED */ /* Includes ------------------------------------------------------------------*/ #include "usbd_cdc_vcp.h" #include "stm32f4xx_conf.h" #include "stm32f4xx_usart.h" /* Private variables ---------------------------------------------------------*/ LINE_CODING linecoding = { 115200, /* baud rate*/ 0x00, /* stop bits-1*/ 0x00, /* parity - none*/ 0x08 /* nb. of bits 8*/ }; USART_InitTypeDef USART_InitStructure; /* These are external variables imported from CDC core to be used for IN transfer management. */ extern uint8_t APP_Rx_Buffer[]; /* Write CDC received data in this buffer. These data will be sent over USB IN endpoint in the CDC core functions. */ extern uint32_t APP_Rx_ptr_in; /* Increment this pointer or roll it back to start address when writing received data in the buffer APP_Rx_Buffer. */ /* Private function prototypes -----------------------------------------------*/ static uint16_t VCP_Init(void); static uint16_t VCP_DeInit(void); static uint16_t VCP_Ctrl(uint32_t Cmd, uint8_t* Buf, uint32_t Len); static uint16_t VCP_DataTx(uint8_t* Buf, uint32_t Len); static uint16_t VCP_DataRx(uint8_t* Buf, uint32_t Len); CDC_IF_Prop_TypeDef VCP_fops = { VCP_Init, VCP_DeInit, VCP_Ctrl, VCP_DataTx, VCP_DataRx }; /* Private functions ---------------------------------------------------------*/ /** * @brief VCP_Init * Initializes the Media on the STM32 * @param None * @retval Result of the opeartion (USBD_OK in all cases) */ static uint16_t VCP_Init(void) { return USBD_OK; } /** * @brief VCP_DeInit * DeInitializes the Media on the STM32 * @param None * @retval Result of the opeartion (USBD_OK in all cases) */ static uint16_t VCP_DeInit(void) { return USBD_OK; } /** * @brief VCP_Ctrl * Manage the CDC class requests * @param Cmd: Command code * @param Buf: Buffer containing command data (request parameters) * @param Len: Number of data to be sent (in bytes) * @retval Result of the opeartion (USBD_OK in all cases) */ static uint16_t VCP_Ctrl(uint32_t Cmd, uint8_t* Buf, uint32_t Len) { switch (Cmd) { case SEND_ENCAPSULATED_COMMAND: /* Not needed for this driver */ break; case GET_ENCAPSULATED_RESPONSE: /* Not needed for this driver */ break; case SET_COMM_FEATURE: /* Not needed for this driver */ break; case GET_COMM_FEATURE: /* Not needed for this driver */ break; case CLEAR_COMM_FEATURE: /* Not needed for this driver */ break; case SET_LINE_CODING: /* Not needed for this driver */ break; case GET_LINE_CODING: Buf[0] = (uint8_t) (linecoding.bitrate); Buf[1] = (uint8_t) (linecoding.bitrate >> 8); Buf[2] = (uint8_t) (linecoding.bitrate >> 16); Buf[3] = (uint8_t) (linecoding.bitrate >> 24); Buf[4] = linecoding.format; Buf[5] = linecoding.paritytype; Buf[6] = linecoding.datatype; break; case SET_CONTROL_LINE_STATE: /* Not needed for this driver */ break; case SEND_BREAK: /* Not needed for this driver */ break; default: break; } return USBD_OK; } /** * @brief putchar * Sends one char over the USB serial link. * @param buf: char to be sent * @retval none */ void VCP_put_char(uint8_t buf) { VCP_DataTx(&buf, 1); } void VCP_send_str(uint8_t* buf) { uint32_t i = 0; while (*(buf + i)) { i++; } VCP_DataTx(buf, i); } void VCP_send_buffer(uint8_t* buf, int len) { VCP_DataTx(buf, len); } /** * @brief VCP_DataTx * CDC received data to be send over USB IN endpoint are managed in * this function. * @param Buf: Buffer of data to be sent * @param Len: Number of data to be sent (in bytes) * @retval Result of the opeartion: USBD_OK if all operations are OK else VCP_FAIL */ static uint16_t VCP_DataTx(uint8_t* Buf, uint32_t Len) { uint32_t i = 0; while (i < Len) { APP_Rx_Buffer[APP_Rx_ptr_in] = *(Buf + i); APP_Rx_ptr_in++; i++; /* To avoid buffer overflow */ if (APP_Rx_ptr_in == APP_RX_DATA_SIZE) { APP_Rx_ptr_in = 0; } } return USBD_OK; } /** * @brief VCP_DataRx * Data received over USB OUT endpoint are sent over CDC interface * through this function. * * @note * This function will block any OUT packet reception on USB endpoint * until exiting this function. If you exit this function before transfer * is complete on CDC interface (ie. using DMA controller) it will result * in receiving more data while previous ones are still not sent. * * @param Buf: Buffer of data to be received * @param Len: Number of data received (in bytes) * @retval Result of the opeartion: USBD_OK if all operations are OK else VCP_FAIL */ #define APP_TX_BUF_SIZE 128 uint8_t APP_Tx_Buffer[APP_TX_BUF_SIZE]; uint32_t APP_tx_ptr_head; uint32_t APP_tx_ptr_tail; static uint16_t VCP_DataRx(uint8_t* Buf, uint32_t Len) { uint32_t i; for (i = 0; i < Len; i++) { APP_Tx_Buffer[APP_tx_ptr_head] = *(Buf + i); APP_tx_ptr_head++; if (APP_tx_ptr_head == APP_TX_BUF_SIZE) APP_tx_ptr_head = 0; if (APP_tx_ptr_head == APP_tx_ptr_tail) return USBD_FAIL; } return USBD_OK; } int VCP_get_char(uint8_t *buf) { if (APP_tx_ptr_head == APP_tx_ptr_tail) return 0; *buf = APP_Tx_Buffer[APP_tx_ptr_tail]; APP_tx_ptr_tail++; if (APP_tx_ptr_tail == APP_TX_BUF_SIZE) APP_tx_ptr_tail = 0; return 1; } int VCP_get_string(uint8_t *buf) { if (APP_tx_ptr_head == APP_tx_ptr_tail) return 0; while (!APP_Tx_Buffer[APP_tx_ptr_tail] || APP_Tx_Buffer[APP_tx_ptr_tail] == '\n' || APP_Tx_Buffer[APP_tx_ptr_tail] == '\r') { APP_tx_ptr_tail++; if (APP_tx_ptr_tail == APP_TX_BUF_SIZE) APP_tx_ptr_tail = 0; if (APP_tx_ptr_head == APP_tx_ptr_tail) return 0; } int i = 0; do { *(buf + i) = APP_Tx_Buffer[i + APP_tx_ptr_tail]; i++; if ((APP_tx_ptr_tail + i) == APP_TX_BUF_SIZE) i = -APP_tx_ptr_tail; if (APP_tx_ptr_head == (APP_tx_ptr_tail + i)) return 0; } while (APP_Tx_Buffer[APP_tx_ptr_tail + i] && APP_Tx_Buffer[APP_tx_ptr_tail + i] != '\n' && APP_Tx_Buffer[APP_tx_ptr_tail + i] != '\r'); *(buf + i) = 0; APP_tx_ptr_tail += i; if (APP_tx_ptr_tail >= APP_TX_BUF_SIZE) APP_tx_ptr_tail -= APP_TX_BUF_SIZE; return i; } /** * @brief EVAL_COM_IRQHandler * * @param None. * @retval None. */ void EVAL_COM_IRQHandler(void) { } /******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/ codec2-1.0.1/stm32/usb_lib/cdc/usbd_cdc_vcp.h000066400000000000000000000051251412132000500205460ustar00rootroot00000000000000/** ****************************************************************************** * @file usbd_cdc_vcp.h * @author MCD Application Team * @version V1.0.0 * @date 22-July-2011 * @brief Header for usbd_cdc_vcp.c file. ****************************************************************************** * @attention * * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE * TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY * DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING * FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. * *

© COPYRIGHT 2011 STMicroelectronics

****************************************************************************** */ /* Define to prevent recursive inclusion -------------------------------------*/ #ifndef __USBD_CDC_VCP_H #define __USBD_CDC_VCP_H /* Includes ------------------------------------------------------------------*/ #include "stm32f4xx_conf.h" #include "usbd_cdc_core.h" #include "usbd_conf.h" #include /* Exported typef ------------------------------------------------------------*/ /* The following structures groups all needed parameters to be configured for the ComPort. These parameters can modified on the fly by the host through CDC class command class requests. */ typedef struct { uint32_t bitrate; uint8_t format; uint8_t paritytype; uint8_t datatype; }LINE_CODING; /* Exported constants --------------------------------------------------------*/ /* The following define is used to route the USART IRQ handler to be used. The IRQ handler function is implemented in the usbd_cdc_vcp.c file. */ #ifdef USE_STM322xG_EVAL #define EVAL_COM_IRQHandler USART3_IRQHandler #elif defined(USE_STM3210C_EVAL) #define EVAL_COM_IRQHandler USART2_IRQHandler #endif /* USE_STM322xG_EVAL */ void VCP_put_char(uint8_t buf); void VCP_send_str(uint8_t* buf); int VCP_get_char(uint8_t *buf); int VCP_get_string(uint8_t *buf); void VCP_send_buffer(uint8_t* buf, int len); #define DEFAULT_CONFIG 0 #define OTHER_CONFIG 1 /* Exported macro ------------------------------------------------------------*/ /* Exported functions ------------------------------------------------------- */ #endif /* __USBD_CDC_VCP_H */ /******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/ codec2-1.0.1/stm32/usb_lib/core/000077500000000000000000000000001412132000500161535ustar00rootroot00000000000000codec2-1.0.1/stm32/usb_lib/core/usbd_core.c000066400000000000000000000246241412132000500202740ustar00rootroot00000000000000/** ****************************************************************************** * @file usbd_core.c * @author MCD Application Team * @version V1.0.0 * @date 22-July-2011 * @brief This file provides all the USBD core functions. ****************************************************************************** * @attention * * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE * TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY * DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING * FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. * *

© COPYRIGHT 2011 STMicroelectronics

****************************************************************************** */ /* Includes ------------------------------------------------------------------*/ #include "usbd_core.h" #include "usbd_req.h" #include "usbd_ioreq.h" #include "usb_dcd_int.h" #include "usb_bsp.h" /** @addtogroup STM32_USB_OTG_DEVICE_LIBRARY * @{ */ /** @defgroup USBD_CORE * @brief usbd core module * @{ */ /** @defgroup USBD_CORE_Private_TypesDefinitions * @{ */ /** * @} */ /** @defgroup USBD_CORE_Private_Defines * @{ */ /** * @} */ /** @defgroup USBD_CORE_Private_Macros * @{ */ /** * @} */ /** @defgroup USBD_CORE_Private_FunctionPrototypes * @{ */ static uint8_t USBD_SetupStage(USB_OTG_CORE_HANDLE *pdev); static uint8_t USBD_DataOutStage(USB_OTG_CORE_HANDLE *pdev , uint8_t epnum); static uint8_t USBD_DataInStage(USB_OTG_CORE_HANDLE *pdev , uint8_t epnum); static uint8_t USBD_SOF(USB_OTG_CORE_HANDLE *pdev); static uint8_t USBD_Reset(USB_OTG_CORE_HANDLE *pdev); static uint8_t USBD_Suspend(USB_OTG_CORE_HANDLE *pdev); static uint8_t USBD_Resume(USB_OTG_CORE_HANDLE *pdev); #ifdef VBUS_SENSING_ENABLED static uint8_t USBD_DevConnected(USB_OTG_CORE_HANDLE *pdev); static uint8_t USBD_DevDisconnected(USB_OTG_CORE_HANDLE *pdev); #endif static uint8_t USBD_IsoINIncomplete(USB_OTG_CORE_HANDLE *pdev); static uint8_t USBD_IsoOUTIncomplete(USB_OTG_CORE_HANDLE *pdev); /** * @} */ /** @defgroup USBD_CORE_Private_Variables * @{ */ USBD_DCD_INT_cb_TypeDef USBD_DCD_INT_cb = { USBD_DataOutStage, USBD_DataInStage, USBD_SetupStage, USBD_SOF, USBD_Reset, USBD_Suspend, USBD_Resume, USBD_IsoINIncomplete, USBD_IsoOUTIncomplete, #ifdef VBUS_SENSING_ENABLED USBD_DevConnected, USBD_DevDisconnected, #endif }; USBD_DCD_INT_cb_TypeDef *USBD_DCD_INT_fops = &USBD_DCD_INT_cb; /** * @} */ /** @defgroup USBD_CORE_Private_Functions * @{ */ /** * @brief USBD_Init * Initailizes the device stack and load the class driver * @param pdev: device instance * @param core_address: USB OTG core ID * @param class_cb: Class callback structure address * @param usr_cb: User callback structure address * @retval None */ void USBD_Init(USB_OTG_CORE_HANDLE *pdev, USB_OTG_CORE_ID_TypeDef coreID, USBD_DEVICE *pDevice, USBD_Class_cb_TypeDef *class_cb, USBD_Usr_cb_TypeDef *usr_cb) { /* Hardware Init */ USB_OTG_BSP_Init(pdev); USBD_DeInit(pdev); /*Register class and user callbacks */ pdev->dev.class_cb = class_cb; pdev->dev.usr_cb = usr_cb; pdev->dev.usr_device = pDevice; /* set USB OTG core params */ DCD_Init(pdev , coreID); /* Upon Init call usr callback */ pdev->dev.usr_cb->Init(); /* Enable Interrupts */ USB_OTG_BSP_EnableInterrupt(pdev); } /** * @brief USBD_DeInit * Re-Initialize th deviuce library * @param pdev: device instance * @retval status: status */ USBD_Status USBD_DeInit(USB_OTG_CORE_HANDLE *pdev) { /* Software Init */ return USBD_OK; } /** * @brief USBD_SetupStage * Handle the setup stage * @param pdev: device instance * @retval status */ static uint8_t USBD_SetupStage(USB_OTG_CORE_HANDLE *pdev) { USB_SETUP_REQ req; USBD_ParseSetupRequest(pdev , &req); switch (req.bmRequest & 0x1F) { case USB_REQ_RECIPIENT_DEVICE: USBD_StdDevReq (pdev, &req); break; case USB_REQ_RECIPIENT_INTERFACE: USBD_StdItfReq(pdev, &req); break; case USB_REQ_RECIPIENT_ENDPOINT: USBD_StdEPReq(pdev, &req); break; default: DCD_EP_Stall(pdev , req.bmRequest & 0x80); break; } return USBD_OK; } /** * @brief USBD_DataOutStage * Handle data out stage * @param pdev: device instance * @param epnum: endpoint index * @retval status */ static uint8_t USBD_DataOutStage(USB_OTG_CORE_HANDLE *pdev , uint8_t epnum) { USB_OTG_EP *ep; if(epnum == 0) { ep = &pdev->dev.out_ep[0]; if ( pdev->dev.device_state == USB_OTG_EP0_DATA_OUT) { if(ep->rem_data_len > ep->maxpacket) { ep->rem_data_len -= ep->maxpacket; if(pdev->cfg.dma_enable == 1) { /* in slave mode this, is handled by the RxSTSQLvl ISR */ ep->xfer_buff += ep->maxpacket; } USBD_CtlContinueRx (pdev, ep->xfer_buff, MIN(ep->rem_data_len ,ep->maxpacket)); } else { if((pdev->dev.class_cb->EP0_RxReady != NULL)&& (pdev->dev.device_status == USB_OTG_CONFIGURED)) { pdev->dev.class_cb->EP0_RxReady(pdev); } USBD_CtlSendStatus(pdev); } } } else if((pdev->dev.class_cb->DataOut != NULL)&& (pdev->dev.device_status == USB_OTG_CONFIGURED)) { pdev->dev.class_cb->DataOut(pdev, epnum); } return USBD_OK; } /** * @brief USBD_DataInStage * Handle data in stage * @param pdev: device instance * @param epnum: endpoint index * @retval status */ static uint8_t USBD_DataInStage(USB_OTG_CORE_HANDLE *pdev , uint8_t epnum) { USB_OTG_EP *ep; if(epnum == 0) { ep = &pdev->dev.in_ep[0]; if ( pdev->dev.device_state == USB_OTG_EP0_DATA_IN) { if(ep->rem_data_len > ep->maxpacket) { ep->rem_data_len -= ep->maxpacket; if(pdev->cfg.dma_enable == 1) { /* in slave mode this, is handled by the TxFifoEmpty ISR */ ep->xfer_buff += ep->maxpacket; } USBD_CtlContinueSendData (pdev, ep->xfer_buff, ep->rem_data_len); } else { /* last packet is MPS multiple, so send ZLP packet */ if((ep->total_data_len % ep->maxpacket == 0) && (ep->total_data_len >= ep->maxpacket) && (ep->total_data_len < ep->ctl_data_len )) { USBD_CtlContinueSendData(pdev , NULL, 0); ep->ctl_data_len = 0; } else { if((pdev->dev.class_cb->EP0_TxSent != NULL)&& (pdev->dev.device_status == USB_OTG_CONFIGURED)) { pdev->dev.class_cb->EP0_TxSent(pdev); } USBD_CtlReceiveStatus(pdev); } } } } else if((pdev->dev.class_cb->DataIn != NULL)&& (pdev->dev.device_status == USB_OTG_CONFIGURED)) { pdev->dev.class_cb->DataIn(pdev, epnum); } return USBD_OK; } /** * @brief USBD_Reset * Handle Reset event * @param pdev: device instance * @retval status */ static uint8_t USBD_Reset(USB_OTG_CORE_HANDLE *pdev) { /* Open EP0 OUT */ DCD_EP_Open(pdev, 0x00, USB_OTG_MAX_EP0_SIZE, EP_TYPE_CTRL); /* Open EP0 IN */ DCD_EP_Open(pdev, 0x80, USB_OTG_MAX_EP0_SIZE, EP_TYPE_CTRL); /* Upon Reset call usr call back */ pdev->dev.device_status = USB_OTG_DEFAULT; pdev->dev.usr_cb->DeviceReset(pdev->cfg.speed); return USBD_OK; } /** * @brief USBD_Resume * Handle Resume event * @param pdev: device instance * @retval status */ static uint8_t USBD_Resume(USB_OTG_CORE_HANDLE *pdev) { /* Upon Resume call usr call back */ pdev->dev.usr_cb->DeviceResumed(); pdev->dev.device_status = USB_OTG_CONFIGURED; return USBD_OK; } /** * @brief USBD_Suspend * Handle Suspend event * @param pdev: device instance * @retval status */ static uint8_t USBD_Suspend(USB_OTG_CORE_HANDLE *pdev) { pdev->dev.device_status = USB_OTG_SUSPENDED; /* Upon Resume call usr call back */ pdev->dev.usr_cb->DeviceSuspended(); return USBD_OK; } /** * @brief USBD_SOF * Handle SOF event * @param pdev: device instance * @retval status */ static uint8_t USBD_SOF(USB_OTG_CORE_HANDLE *pdev) { if(pdev->dev.class_cb->SOF) { pdev->dev.class_cb->SOF(pdev); } return USBD_OK; } /** * @brief USBD_SetCfg * Configure device and start the interface * @param pdev: device instance * @param cfgidx: configuration index * @retval status */ USBD_Status USBD_SetCfg(USB_OTG_CORE_HANDLE *pdev, uint8_t cfgidx) { pdev->dev.class_cb->Init(pdev, cfgidx); /* Upon set config call usr call back */ pdev->dev.usr_cb->DeviceConfigured(); return USBD_OK; } /** * @brief USBD_ClrCfg * Clear current configuration * @param pdev: device instance * @param cfgidx: configuration index * @retval status: USBD_Status */ USBD_Status USBD_ClrCfg(USB_OTG_CORE_HANDLE *pdev, uint8_t cfgidx) { pdev->dev.class_cb->DeInit(pdev, cfgidx); return USBD_OK; } /** * @brief USBD_IsoINIncomplete * Handle iso in incomplete event * @param pdev: device instance * @retval status */ static uint8_t USBD_IsoINIncomplete(USB_OTG_CORE_HANDLE *pdev) { pdev->dev.class_cb->IsoINIncomplete(pdev); return USBD_OK; } /** * @brief USBD_IsoOUTIncomplete * Handle iso out incomplete event * @param pdev: device instance * @retval status */ static uint8_t USBD_IsoOUTIncomplete(USB_OTG_CORE_HANDLE *pdev) { pdev->dev.class_cb->IsoOUTIncomplete(pdev); return USBD_OK; } #ifdef VBUS_SENSING_ENABLED /** * @brief USBD_DevConnected * Handle device connection event * @param pdev: device instance * @retval status */ static uint8_t USBD_DevConnected(USB_OTG_CORE_HANDLE *pdev) { pdev->dev.usr_cb->DeviceConnected(); return USBD_OK; } /** * @brief USBD_DevDisconnected * Handle device disconnection event * @param pdev: device instance * @retval status */ static uint8_t USBD_DevDisconnected(USB_OTG_CORE_HANDLE *pdev) { pdev->dev.usr_cb->DeviceDisconnected(); pdev->dev.class_cb->DeInit(pdev, 0); return USBD_OK; } #endif /** * @} */ /** * @} */ /** * @} */ /******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/ codec2-1.0.1/stm32/usb_lib/core/usbd_core.h000066400000000000000000000045361412132000500203010ustar00rootroot00000000000000/** ****************************************************************************** * @file usbd_core.h * @author MCD Application Team * @version V1.0.0 * @date 22-July-2011 * @brief Header file for usbd_core.c ****************************************************************************** * @attention * * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE * TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY * DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING * FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. * *

© COPYRIGHT 2011 STMicroelectronics

****************************************************************************** */ /* Define to prevent recursive inclusion -------------------------------------*/ #ifndef __USBD_CORE_H #define __USBD_CORE_H /* Includes ------------------------------------------------------------------*/ #include "usb_dcd.h" #include "usbd_def.h" #include "usbd_conf.h" /** @addtogroup STM32_USB_OTG_DEVICE_LIBRARY * @{ */ /** @defgroup USBD_CORE * @brief This file is the Header file for usbd_core.c file * @{ */ /** @defgroup USBD_CORE_Exported_Defines * @{ */ typedef enum { USBD_OK = 0, USBD_BUSY, USBD_FAIL, }USBD_Status; /** * @} */ /** @defgroup USBD_CORE_Exported_TypesDefinitions * @{ */ /** * @} */ /** @defgroup USBD_CORE_Exported_Macros * @{ */ /** * @} */ /** @defgroup USBD_CORE_Exported_Variables * @{ */ /** * @} */ /** @defgroup USBD_CORE_Exported_FunctionsPrototype * @{ */ void USBD_Init(USB_OTG_CORE_HANDLE *pdev, USB_OTG_CORE_ID_TypeDef coreID, USBD_DEVICE *pDevice, USBD_Class_cb_TypeDef *class_cb, USBD_Usr_cb_TypeDef *usr_cb); USBD_Status USBD_DeInit(USB_OTG_CORE_HANDLE *pdev); USBD_Status USBD_ClrCfg(USB_OTG_CORE_HANDLE *pdev, uint8_t cfgidx); USBD_Status USBD_SetCfg(USB_OTG_CORE_HANDLE *pdev, uint8_t cfgidx); /** * @} */ #endif /* __USBD_CORE_H */ /** * @} */ /** * @} */ /******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/ codec2-1.0.1/stm32/usb_lib/core/usbd_def.h000066400000000000000000000112531412132000500201010ustar00rootroot00000000000000/** ****************************************************************************** * @file usbd_def.h * @author MCD Application Team * @version V1.0.0 * @date 22-July-2011 * @brief general defines for the usb device library ****************************************************************************** * @attention * * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE * TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY * DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING * FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. * *

© COPYRIGHT 2011 STMicroelectronics

****************************************************************************** */ /* Define to prevent recursive inclusion -------------------------------------*/ #ifndef __USBD_DEF_H #define __USBD_DEF_H /* Includes ------------------------------------------------------------------*/ #include "usbd_conf.h" /** @addtogroup STM32_USB_OTG_DEVICE_LIBRARY * @{ */ /** @defgroup USB_DEF * @brief general defines for the usb device library file * @{ */ /** @defgroup USB_DEF_Exported_Defines * @{ */ #ifndef NULL #define NULL 0 #endif #define USB_LEN_DEV_QUALIFIER_DESC 0x0A #define USB_LEN_DEV_DESC 0x12 #define USB_LEN_CFG_DESC 0x09 #define USB_LEN_IF_DESC 0x09 #define USB_LEN_EP_DESC 0x07 #define USB_LEN_OTG_DESC 0x03 #define USBD_IDX_LANGID_STR 0x00 #define USBD_IDX_MFC_STR 0x01 #define USBD_IDX_PRODUCT_STR 0x02 #define USBD_IDX_SERIAL_STR 0x03 #define USBD_IDX_CONFIG_STR 0x04 #define USBD_IDX_INTERFACE_STR 0x05 #define USB_REQ_TYPE_STANDARD 0x00 #define USB_REQ_TYPE_CLASS 0x20 #define USB_REQ_TYPE_VENDOR 0x40 #define USB_REQ_TYPE_MASK 0x60 #define USB_REQ_RECIPIENT_DEVICE 0x00 #define USB_REQ_RECIPIENT_INTERFACE 0x01 #define USB_REQ_RECIPIENT_ENDPOINT 0x02 #define USB_REQ_RECIPIENT_MASK 0x03 #define USB_REQ_GET_STATUS 0x00 #define USB_REQ_CLEAR_FEATURE 0x01 #define USB_REQ_SET_FEATURE 0x03 #define USB_REQ_SET_ADDRESS 0x05 #define USB_REQ_GET_DESCRIPTOR 0x06 #define USB_REQ_SET_DESCRIPTOR 0x07 #define USB_REQ_GET_CONFIGURATION 0x08 #define USB_REQ_SET_CONFIGURATION 0x09 #define USB_REQ_GET_INTERFACE 0x0A #define USB_REQ_SET_INTERFACE 0x0B #define USB_REQ_SYNCH_FRAME 0x0C #define USB_DESC_TYPE_DEVICE 1 #define USB_DESC_TYPE_CONFIGURATION 2 #define USB_DESC_TYPE_STRING 3 #define USB_DESC_TYPE_INTERFACE 4 #define USB_DESC_TYPE_ENDPOINT 5 #define USB_DESC_TYPE_DEVICE_QUALIFIER 6 #define USB_DESC_TYPE_OTHER_SPEED_CONFIGURATION 7 #define USB_CONFIG_REMOTE_WAKEUP 2 #define USB_CONFIG_SELF_POWERED 1 #define USB_FEATURE_EP_HALT 0 #define USB_FEATURE_REMOTE_WAKEUP 1 #define USB_FEATURE_TEST_MODE 2 /** * @} */ /** @defgroup USBD_DEF_Exported_TypesDefinitions * @{ */ /** * @} */ /** @defgroup USBD_DEF_Exported_Macros * @{ */ #define SWAPBYTE(addr) (((uint16_t)(*((uint8_t *)(addr)))) + \ (((uint16_t)(*(((uint8_t *)(addr)) + 1))) << 8)) #define LOBYTE(x) ((uint8_t)(x & 0x00FF)) #define HIBYTE(x) ((uint8_t)((x & 0xFF00) >>8)) /** * @} */ /** @defgroup USBD_DEF_Exported_Variables * @{ */ /** * @} */ /** @defgroup USBD_DEF_Exported_FunctionsPrototype * @{ */ /** * @} */ #endif /* __USBD_DEF_H */ /** * @} */ /** * @} */ /******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/ codec2-1.0.1/stm32/usb_lib/core/usbd_ioreq.c000066400000000000000000000121271412132000500204560ustar00rootroot00000000000000/** ****************************************************************************** * @file usbd_ioreq.c * @author MCD Application Team * @version V1.0.0 * @date 22-July-2011 * @brief This file provides the IO requests APIs for control endpoints. ****************************************************************************** * @attention * * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE * TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY * DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING * FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. * *

© COPYRIGHT 2011 STMicroelectronics

****************************************************************************** */ /* Includes ------------------------------------------------------------------*/ #include "usbd_ioreq.h" /** @addtogroup STM32_USB_OTG_DEVICE_LIBRARY * @{ */ /** @defgroup USBD_IOREQ * @brief control I/O requests module * @{ */ /** @defgroup USBD_IOREQ_Private_TypesDefinitions * @{ */ /** * @} */ /** @defgroup USBD_IOREQ_Private_Defines * @{ */ /** * @} */ /** @defgroup USBD_IOREQ_Private_Macros * @{ */ /** * @} */ /** @defgroup USBD_IOREQ_Private_Variables * @{ */ /** * @} */ /** @defgroup USBD_IOREQ_Private_FunctionPrototypes * @{ */ /** * @} */ /** @defgroup USBD_IOREQ_Private_Functions * @{ */ /** * @brief USBD_CtlSendData * send data on the ctl pipe * @param pdev: device instance * @param buff: pointer to data buffer * @param len: length of data to be sent * @retval status */ USBD_Status USBD_CtlSendData (USB_OTG_CORE_HANDLE *pdev, uint8_t *pbuf, uint16_t len) { USBD_Status ret = USBD_OK; pdev->dev.in_ep[0].total_data_len = len; pdev->dev.in_ep[0].rem_data_len = len; pdev->dev.device_state = USB_OTG_EP0_DATA_IN; DCD_EP_Tx (pdev, 0, pbuf, len); return ret; } /** * @brief USBD_CtlContinueSendData * continue sending data on the ctl pipe * @param pdev: device instance * @param buff: pointer to data buffer * @param len: length of data to be sent * @retval status */ USBD_Status USBD_CtlContinueSendData (USB_OTG_CORE_HANDLE *pdev, uint8_t *pbuf, uint16_t len) { USBD_Status ret = USBD_OK; DCD_EP_Tx (pdev, 0, pbuf, len); return ret; } /** * @brief USBD_CtlPrepareRx * receive data on the ctl pipe * @param pdev: USB OTG device instance * @param buff: pointer to data buffer * @param len: length of data to be received * @retval status */ USBD_Status USBD_CtlPrepareRx (USB_OTG_CORE_HANDLE *pdev, uint8_t *pbuf, uint16_t len) { USBD_Status ret = USBD_OK; pdev->dev.out_ep[0].total_data_len = len; pdev->dev.out_ep[0].rem_data_len = len; pdev->dev.device_state = USB_OTG_EP0_DATA_OUT; DCD_EP_PrepareRx (pdev, 0, pbuf, len); return ret; } /** * @brief USBD_CtlContinueRx * continue receive data on the ctl pipe * @param pdev: USB OTG device instance * @param buff: pointer to data buffer * @param len: length of data to be received * @retval status */ USBD_Status USBD_CtlContinueRx (USB_OTG_CORE_HANDLE *pdev, uint8_t *pbuf, uint16_t len) { USBD_Status ret = USBD_OK; DCD_EP_PrepareRx (pdev, 0, pbuf, len); return ret; } /** * @brief USBD_CtlSendStatus * send zero lzngth packet on the ctl pipe * @param pdev: USB OTG device instance * @retval status */ USBD_Status USBD_CtlSendStatus (USB_OTG_CORE_HANDLE *pdev) { USBD_Status ret = USBD_OK; pdev->dev.device_state = USB_OTG_EP0_STATUS_IN; DCD_EP_Tx (pdev, 0, NULL, 0); USB_OTG_EP0_OutStart(pdev); return ret; } /** * @brief USBD_CtlReceiveStatus * receive zero lzngth packet on the ctl pipe * @param pdev: USB OTG device instance * @retval status */ USBD_Status USBD_CtlReceiveStatus (USB_OTG_CORE_HANDLE *pdev) { USBD_Status ret = USBD_OK; pdev->dev.device_state = USB_OTG_EP0_STATUS_OUT; DCD_EP_PrepareRx ( pdev, 0, NULL, 0); USB_OTG_EP0_OutStart(pdev); return ret; } /** * @brief USBD_GetRxCount * returns the received data length * @param pdev: USB OTG device instance * epnum: endpoint index * @retval Rx Data blength */ uint16_t USBD_GetRxCount (USB_OTG_CORE_HANDLE *pdev , uint8_t epnum) { return pdev->dev.out_ep[epnum].xfer_count; } /** * @} */ /** * @} */ /** * @} */ /******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/ codec2-1.0.1/stm32/usb_lib/core/usbd_ioreq.h000066400000000000000000000052561412132000500204700ustar00rootroot00000000000000/** ****************************************************************************** * @file usbd_ioreq.h * @author MCD Application Team * @version V1.0.0 * @date 22-July-2011 * @brief header file for the usbd_ioreq.c file ****************************************************************************** * @attention * * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE * TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY * DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING * FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. * *

© COPYRIGHT 2011 STMicroelectronics

****************************************************************************** */ /* Define to prevent recursive inclusion -------------------------------------*/ #ifndef __USBD_IOREQ_H_ #define __USBD_IOREQ_H_ /* Includes ------------------------------------------------------------------*/ #include "usbd_def.h" #include "usbd_core.h" /** @addtogroup STM32_USB_OTG_DEVICE_LIBRARY * @{ */ /** @defgroup USBD_IOREQ * @brief header file for the usbd_ioreq.c file * @{ */ /** @defgroup USBD_IOREQ_Exported_Defines * @{ */ /** * @} */ /** @defgroup USBD_IOREQ_Exported_Types * @{ */ /** * @} */ /** @defgroup USBD_IOREQ_Exported_Macros * @{ */ /** * @} */ /** @defgroup USBD_IOREQ_Exported_Variables * @{ */ /** * @} */ /** @defgroup USBD_IOREQ_Exported_FunctionsPrototype * @{ */ USBD_Status USBD_CtlSendData (USB_OTG_CORE_HANDLE *pdev, uint8_t *buf, uint16_t len); USBD_Status USBD_CtlContinueSendData (USB_OTG_CORE_HANDLE *pdev, uint8_t *pbuf, uint16_t len); USBD_Status USBD_CtlPrepareRx (USB_OTG_CORE_HANDLE *pdev, uint8_t *pbuf, uint16_t len); USBD_Status USBD_CtlContinueRx (USB_OTG_CORE_HANDLE *pdev, uint8_t *pbuf, uint16_t len); USBD_Status USBD_CtlSendStatus (USB_OTG_CORE_HANDLE *pdev); USBD_Status USBD_CtlReceiveStatus (USB_OTG_CORE_HANDLE *pdev); uint16_t USBD_GetRxCount (USB_OTG_CORE_HANDLE *pdev , uint8_t epnum); /** * @} */ #endif /* __USBD_IOREQ_H_ */ /** * @} */ /** * @} */ /******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/ codec2-1.0.1/stm32/usb_lib/core/usbd_req.c000066400000000000000000000442021412132000500201250ustar00rootroot00000000000000/** ****************************************************************************** * @file usbd_req.c * @author MCD Application Team * @version V1.0.0 * @date 22-July-2011 * @brief This file provides the standard USB requests following chapter 9. ****************************************************************************** * @attention * * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE * TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY * DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING * FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. * *

© COPYRIGHT 2011 STMicroelectronics

****************************************************************************** */ /* Includes ------------------------------------------------------------------*/ #include "usbd_req.h" #include "usbd_ioreq.h" #include "usbd_desc.h" /** @addtogroup STM32_USB_OTG_DEVICE_LIBRARY * @{ */ /** @defgroup USBD_REQ * @brief USB standard requests module * @{ */ /** @defgroup USBD_REQ_Private_TypesDefinitions * @{ */ /** * @} */ /** @defgroup USBD_REQ_Private_Defines * @{ */ /** * @} */ /** @defgroup USBD_REQ_Private_Macros * @{ */ /** * @} */ /** @defgroup USBD_REQ_Private_Variables * @{ */ #ifdef USB_OTG_HS_INTERNAL_DMA_ENABLED #if defined ( __ICCARM__ ) /*!< IAR Compiler */ #pragma data_alignment=4 #endif #endif /* USB_OTG_HS_INTERNAL_DMA_ENABLED */ __ALIGN_BEGIN uint32_t USBD_ep_status __ALIGN_END = 0; #ifdef USB_OTG_HS_INTERNAL_DMA_ENABLED #if defined ( __ICCARM__ ) /*!< IAR Compiler */ #pragma data_alignment=4 #endif #endif /* USB_OTG_HS_INTERNAL_DMA_ENABLED */ __ALIGN_BEGIN uint32_t USBD_default_cfg __ALIGN_END = 0; #ifdef USB_OTG_HS_INTERNAL_DMA_ENABLED #if defined ( __ICCARM__ ) /*!< IAR Compiler */ #pragma data_alignment=4 #endif #endif /* USB_OTG_HS_INTERNAL_DMA_ENABLED */ __ALIGN_BEGIN uint32_t USBD_cfg_status __ALIGN_END = 0; #ifdef USB_OTG_HS_INTERNAL_DMA_ENABLED #if defined ( __ICCARM__ ) /*!< IAR Compiler */ #pragma data_alignment=4 #endif #endif /* USB_OTG_HS_INTERNAL_DMA_ENABLED */ __ALIGN_BEGIN uint8_t USBD_StrDesc[USB_MAX_STR_DESC_SIZ] __ALIGN_END ; /** * @} */ /** @defgroup USBD_REQ_Private_FunctionPrototypes * @{ */ static void USBD_GetDescriptor(USB_OTG_CORE_HANDLE *pdev, USB_SETUP_REQ *req); static void USBD_SetAddress(USB_OTG_CORE_HANDLE *pdev, USB_SETUP_REQ *req); static void USBD_SetConfig(USB_OTG_CORE_HANDLE *pdev, USB_SETUP_REQ *req); static void USBD_GetConfig(USB_OTG_CORE_HANDLE *pdev, USB_SETUP_REQ *req); static void USBD_GetStatus(USB_OTG_CORE_HANDLE *pdev, USB_SETUP_REQ *req); static void USBD_SetFeature(USB_OTG_CORE_HANDLE *pdev, USB_SETUP_REQ *req); static void USBD_ClrFeature(USB_OTG_CORE_HANDLE *pdev, USB_SETUP_REQ *req); static uint8_t USBD_GetLen(uint8_t *buf); /** * @} */ /** @defgroup USBD_REQ_Private_Functions * @{ */ /** * @brief USBD_StdDevReq * Handle standard usb device requests * @param pdev: device instance * @param req: usb request * @retval status */ USBD_Status USBD_StdDevReq (USB_OTG_CORE_HANDLE *pdev, USB_SETUP_REQ *req) { USBD_Status ret = USBD_OK; switch (req->bRequest) { case USB_REQ_GET_DESCRIPTOR: USBD_GetDescriptor (pdev, req) ; break; case USB_REQ_SET_ADDRESS: USBD_SetAddress(pdev, req); break; case USB_REQ_SET_CONFIGURATION: USBD_SetConfig (pdev , req); break; case USB_REQ_GET_CONFIGURATION: USBD_GetConfig (pdev , req); break; case USB_REQ_GET_STATUS: USBD_GetStatus (pdev , req); break; case USB_REQ_SET_FEATURE: USBD_SetFeature (pdev , req); break; case USB_REQ_CLEAR_FEATURE: USBD_ClrFeature (pdev , req); break; default: USBD_CtlError(pdev , req); break; } return ret; } /** * @brief USBD_StdItfReq * Handle standard usb interface requests * @param pdev: USB OTG device instance * @param req: usb request * @retval status */ USBD_Status USBD_StdItfReq (USB_OTG_CORE_HANDLE *pdev, USB_SETUP_REQ *req) { USBD_Status ret = USBD_OK; switch (pdev->dev.device_status) { case USB_OTG_CONFIGURED: if (LOBYTE(req->wIndex) <= USBD_ITF_MAX_NUM) { pdev->dev.class_cb->Setup (pdev, req); if((req->wLength == 0)&& (ret == USBD_OK)) { USBD_CtlSendStatus(pdev); } } else { USBD_CtlError(pdev , req); } break; default: USBD_CtlError(pdev , req); break; } return ret; } /** * @brief USBD_StdEPReq * Handle standard usb endpoint requests * @param pdev: USB OTG device instance * @param req: usb request * @retval status */ USBD_Status USBD_StdEPReq (USB_OTG_CORE_HANDLE *pdev, USB_SETUP_REQ *req) { uint8_t ep_addr; USBD_Status ret = USBD_OK; ep_addr = LOBYTE(req->wIndex); switch (req->bRequest) { case USB_REQ_SET_FEATURE : switch (pdev->dev.device_status) { case USB_OTG_ADDRESSED: if ((ep_addr != 0x00) && (ep_addr != 0x80)) { DCD_EP_Stall(pdev , ep_addr); } break; case USB_OTG_CONFIGURED: if (req->wValue == USB_FEATURE_EP_HALT) { if ((ep_addr != 0x00) && (ep_addr != 0x80)) { DCD_EP_Stall(pdev , ep_addr); } } pdev->dev.class_cb->Setup (pdev, req); USBD_CtlSendStatus(pdev); break; default: USBD_CtlError(pdev , req); break; } break; case USB_REQ_CLEAR_FEATURE : switch (pdev->dev.device_status) { case USB_OTG_ADDRESSED: if ((ep_addr != 0x00) && (ep_addr != 0x80)) { DCD_EP_Stall(pdev , ep_addr); } break; case USB_OTG_CONFIGURED: if (req->wValue == USB_FEATURE_EP_HALT) { if ((ep_addr != 0x00) && (ep_addr != 0x80)) { DCD_EP_ClrStall(pdev , ep_addr); pdev->dev.class_cb->Setup (pdev, req); } USBD_CtlSendStatus(pdev); } break; default: USBD_CtlError(pdev , req); break; } break; case USB_REQ_GET_STATUS: switch (pdev->dev.device_status) { case USB_OTG_ADDRESSED: if ((ep_addr != 0x00) && (ep_addr != 0x80)) { DCD_EP_Stall(pdev , ep_addr); } break; case USB_OTG_CONFIGURED: if ((ep_addr & 0x80)== 0x80) { if(pdev->dev.in_ep[ep_addr & 0x7F].is_stall) { USBD_ep_status = 0x0001; } else { USBD_ep_status = 0x0000; } } else if ((ep_addr & 0x80)== 0x00) { if(pdev->dev.out_ep[ep_addr].is_stall) { USBD_ep_status = 0x0001; } else { USBD_ep_status = 0x0000; } } USBD_CtlSendData (pdev, (uint8_t *)&USBD_ep_status, 2); break; default: USBD_CtlError(pdev , req); break; } break; default: break; } return ret; } /** * @brief USBD_GetDescriptor * Handle Get Descriptor requests * @param pdev: device instance * @param req: usb request * @retval status */ static void USBD_GetDescriptor(USB_OTG_CORE_HANDLE *pdev, USB_SETUP_REQ *req) { uint16_t len; uint8_t *pbuf; switch (req->wValue >> 8) { case USB_DESC_TYPE_DEVICE: pbuf = pdev->dev.usr_device->GetDeviceDescriptor(pdev->cfg.speed, &len); if ((req->wLength == 64) ||( pdev->dev.device_status == USB_OTG_DEFAULT)) { len = 8; } break; case USB_DESC_TYPE_CONFIGURATION: pbuf = (uint8_t *)pdev->dev.class_cb->GetConfigDescriptor(pdev->cfg.speed, &len); #ifdef USB_OTG_HS_CORE if((pdev->cfg.speed == USB_OTG_SPEED_FULL )&& (pdev->cfg.phy_itface == USB_OTG_ULPI_PHY)) { pbuf = (uint8_t *)pdev->dev.class_cb->GetOtherConfigDescriptor(pdev->cfg.speed, &len); } #endif pbuf[1] = USB_DESC_TYPE_CONFIGURATION; pdev->dev.pConfig_descriptor = pbuf; break; case USB_DESC_TYPE_STRING: switch ((uint8_t)(req->wValue)) { case USBD_IDX_LANGID_STR: pbuf = pdev->dev.usr_device->GetLangIDStrDescriptor(pdev->cfg.speed, &len); break; case USBD_IDX_MFC_STR: pbuf = pdev->dev.usr_device->GetManufacturerStrDescriptor(pdev->cfg.speed, &len); break; case USBD_IDX_PRODUCT_STR: pbuf = pdev->dev.usr_device->GetProductStrDescriptor(pdev->cfg.speed, &len); break; case USBD_IDX_SERIAL_STR: pbuf = pdev->dev.usr_device->GetSerialStrDescriptor(pdev->cfg.speed, &len); break; case USBD_IDX_CONFIG_STR: pbuf = pdev->dev.usr_device->GetConfigurationStrDescriptor(pdev->cfg.speed, &len); break; case USBD_IDX_INTERFACE_STR: pbuf = pdev->dev.usr_device->GetInterfaceStrDescriptor(pdev->cfg.speed, &len); break; default: #ifdef USB_SUPPORT_USER_STRING_DESC pbuf = pdev->dev.class_cb->GetUsrStrDescriptor(pdev->cfg.speed, (req->wValue) , &len); break; #else USBD_CtlError(pdev , req); return; #endif /* USBD_CtlError(pdev , req); */ } break; case USB_DESC_TYPE_DEVICE_QUALIFIER: #ifdef USB_OTG_HS_CORE if(pdev->cfg.speed == USB_OTG_SPEED_HIGH ) { pbuf = (uint8_t *)pdev->dev.class_cb->GetConfigDescriptor(pdev->cfg.speed, &len); USBD_DeviceQualifierDesc[4]= pbuf[14]; USBD_DeviceQualifierDesc[5]= pbuf[15]; USBD_DeviceQualifierDesc[6]= pbuf[16]; pbuf = USBD_DeviceQualifierDesc; len = USB_LEN_DEV_QUALIFIER_DESC; break; } else { USBD_CtlError(pdev , req); return; } #else USBD_CtlError(pdev , req); return; #endif case USB_DESC_TYPE_OTHER_SPEED_CONFIGURATION: #ifdef USB_OTG_HS_CORE if(pdev->cfg.speed == USB_OTG_SPEED_HIGH ) { pbuf = (uint8_t *)pdev->dev.class_cb->GetOtherConfigDescriptor(pdev->cfg.speed, &len); pbuf[1] = USB_DESC_TYPE_OTHER_SPEED_CONFIGURATION; break; } else { USBD_CtlError(pdev , req); return; } #else USBD_CtlError(pdev , req); return; #endif default: USBD_CtlError(pdev , req); return; } if((len != 0)&& (req->wLength != 0)) { len = MIN(len , req->wLength); USBD_CtlSendData (pdev, pbuf, len); } } /** * @brief USBD_SetAddress * Set device address * @param pdev: device instance * @param req: usb request * @retval status */ static void USBD_SetAddress(USB_OTG_CORE_HANDLE *pdev, USB_SETUP_REQ *req) { uint8_t dev_addr; if ((req->wIndex == 0) && (req->wLength == 0)) { dev_addr = (uint8_t)(req->wValue) & 0x7F; if (pdev->dev.device_status == USB_OTG_CONFIGURED) { USBD_CtlError(pdev , req); } else { pdev->dev.device_address = dev_addr; DCD_EP_SetAddress(pdev, dev_addr); USBD_CtlSendStatus(pdev); if (dev_addr != 0) { pdev->dev.device_status = USB_OTG_ADDRESSED; } else { pdev->dev.device_status = USB_OTG_DEFAULT; } } } else { USBD_CtlError(pdev , req); } } /** * @brief USBD_SetConfig * Handle Set device configuration request * @param pdev: device instance * @param req: usb request * @retval status */ static void USBD_SetConfig(USB_OTG_CORE_HANDLE *pdev, USB_SETUP_REQ *req) { static uint8_t cfgidx; cfgidx = (uint8_t)(req->wValue); if (cfgidx > USBD_CFG_MAX_NUM ) { USBD_CtlError(pdev , req); } else { switch (pdev->dev.device_status) { case USB_OTG_ADDRESSED: if (cfgidx) { pdev->dev.device_config = cfgidx; pdev->dev.device_status = USB_OTG_CONFIGURED; USBD_SetCfg(pdev , cfgidx); USBD_CtlSendStatus(pdev); } else { USBD_CtlSendStatus(pdev); } break; case USB_OTG_CONFIGURED: if (cfgidx == 0) { pdev->dev.device_status = USB_OTG_ADDRESSED; pdev->dev.device_config = cfgidx; USBD_ClrCfg(pdev , cfgidx); USBD_CtlSendStatus(pdev); } else if (cfgidx != pdev->dev.device_config) { /* Clear old configuration */ USBD_ClrCfg(pdev , pdev->dev.device_config); /* set new configuration */ pdev->dev.device_config = cfgidx; USBD_SetCfg(pdev , cfgidx); USBD_CtlSendStatus(pdev); } else { USBD_CtlSendStatus(pdev); } break; default: USBD_CtlError(pdev , req); break; } } } /** * @brief USBD_GetConfig * Handle Get device configuration request * @param pdev: device instance * @param req: usb request * @retval status */ static void USBD_GetConfig(USB_OTG_CORE_HANDLE *pdev, USB_SETUP_REQ *req) { if (req->wLength != 1) { USBD_CtlError(pdev , req); } else { switch (pdev->dev.device_status ) { case USB_OTG_ADDRESSED: USBD_CtlSendData (pdev, (uint8_t *)&USBD_default_cfg, 1); break; case USB_OTG_CONFIGURED: USBD_CtlSendData (pdev, &pdev->dev.device_config, 1); break; default: USBD_CtlError(pdev , req); break; } } } /** * @brief USBD_GetStatus * Handle Get Status request * @param pdev: device instance * @param req: usb request * @retval status */ static void USBD_GetStatus(USB_OTG_CORE_HANDLE *pdev, USB_SETUP_REQ *req) { switch (pdev->dev.device_status) { case USB_OTG_ADDRESSED: case USB_OTG_CONFIGURED: if (pdev->dev.DevRemoteWakeup) { USBD_cfg_status = USB_CONFIG_SELF_POWERED | USB_CONFIG_REMOTE_WAKEUP; } else { USBD_cfg_status = USB_CONFIG_SELF_POWERED; } USBD_CtlSendData (pdev, (uint8_t *)&USBD_cfg_status, 1); break; default : USBD_CtlError(pdev , req); break; } } /** * @brief USBD_SetFeature * Handle Set device feature request * @param pdev: device instance * @param req: usb request * @retval status */ static void USBD_SetFeature(USB_OTG_CORE_HANDLE *pdev, USB_SETUP_REQ *req) { USB_OTG_DCTL_TypeDef dctl; uint8_t test_mode = 0; if (req->wValue == USB_FEATURE_REMOTE_WAKEUP) { pdev->dev.DevRemoteWakeup = 1; pdev->dev.class_cb->Setup (pdev, req); USBD_CtlSendStatus(pdev); } else if ((req->wValue == USB_FEATURE_TEST_MODE) && ((req->wIndex & 0xFF) == 0)) { dctl.d32 = USB_OTG_READ_REG32(&pdev->regs.DREGS->DCTL); test_mode = req->wIndex >> 8; switch (test_mode) { case 1: // TEST_J dctl.b.tstctl = 1; break; case 2: // TEST_K dctl.b.tstctl = 2; break; case 3: // TEST_SE0_NAK dctl.b.tstctl = 3; break; case 4: // TEST_PACKET dctl.b.tstctl = 4; break; case 5: // TEST_FORCE_ENABLE dctl.b.tstctl = 5; break; } USB_OTG_WRITE_REG32(&pdev->regs.DREGS->DCTL, dctl.d32); USBD_CtlSendStatus(pdev); } } /** * @brief USBD_ClrFeature * Handle clear device feature request * @param pdev: device instance * @param req: usb request * @retval status */ static void USBD_ClrFeature(USB_OTG_CORE_HANDLE *pdev, USB_SETUP_REQ *req) { switch (pdev->dev.device_status) { case USB_OTG_ADDRESSED: case USB_OTG_CONFIGURED: if (req->wValue == USB_FEATURE_REMOTE_WAKEUP) { pdev->dev.DevRemoteWakeup = 0; pdev->dev.class_cb->Setup (pdev, req); USBD_CtlSendStatus(pdev); } break; default : USBD_CtlError(pdev , req); break; } } /** * @brief USBD_ParseSetupRequest * Copy buffer into setup structure * @param pdev: device instance * @param req: usb request * @retval None */ void USBD_ParseSetupRequest( USB_OTG_CORE_HANDLE *pdev, USB_SETUP_REQ *req) { req->bmRequest = *(uint8_t *) (pdev->dev.setup_packet); req->bRequest = *(uint8_t *) (pdev->dev.setup_packet + 1); req->wValue = SWAPBYTE (pdev->dev.setup_packet + 2); req->wIndex = SWAPBYTE (pdev->dev.setup_packet + 4); req->wLength = SWAPBYTE (pdev->dev.setup_packet + 6); pdev->dev.in_ep[0].ctl_data_len = req->wLength ; pdev->dev.device_state = USB_OTG_EP0_SETUP; } /** * @brief USBD_CtlError * Handle USB low level Error * @param pdev: device instance * @param req: usb request * @retval None */ void USBD_CtlError( USB_OTG_CORE_HANDLE *pdev, USB_SETUP_REQ *req) { if((req->bmRequest & 0x80) == 0x80) { DCD_EP_Stall(pdev , 0x80); } else { if(req->wLength == 0) { DCD_EP_Stall(pdev , 0x80); } else { DCD_EP_Stall(pdev , 0); } } USB_OTG_EP0_OutStart(pdev); } /** * @brief USBD_GetString * Convert Ascii string into unicode one * @param desc : descriptor buffer * @param unicode : Formatted string buffer (unicode) * @param len : descriptor length * @retval None */ void USBD_GetString(uint8_t *desc, uint8_t *unicode, uint16_t *len) { uint8_t idx = 0; if (desc != NULL) { *len = USBD_GetLen(desc) * 2 + 2; unicode[idx++] = *len; unicode[idx++] = USB_DESC_TYPE_STRING; while (*desc != NULL) { unicode[idx++] = *desc++; unicode[idx++] = 0x00; } } } /** * @brief USBD_GetLen * return the string length * @param buf : pointer to the ascii string buffer * @retval string length */ static uint8_t USBD_GetLen(uint8_t *buf) { uint8_t len = 0; while (*buf != NULL) { len++; buf++; } return len; } /** * @} */ /** * @} */ /** * @} */ /******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/ codec2-1.0.1/stm32/usb_lib/core/usbd_req.h000066400000000000000000000045621412132000500201370ustar00rootroot00000000000000/** ****************************************************************************** * @file usbd_req.h * @author MCD Application Team * @version V1.0.0 * @date 22-July-2011 * @brief header file for the usbd_req.c file ****************************************************************************** * @attention * * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE * TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY * DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING * FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. * *

© COPYRIGHT 2011 STMicroelectronics

****************************************************************************** */ /* Define to prevent recursive inclusion -------------------------------------*/ #ifndef __USB_REQUEST_H_ #define __USB_REQUEST_H_ /* Includes ------------------------------------------------------------------*/ #include "usbd_def.h" #include "usbd_core.h" #include "usbd_conf.h" /** @addtogroup STM32_USB_OTG_DEVICE_LIBRARY * @{ */ /** @defgroup USBD_REQ * @brief header file for the usbd_ioreq.c file * @{ */ /** @defgroup USBD_REQ_Exported_Defines * @{ */ /** * @} */ /** @defgroup USBD_REQ_Exported_Types * @{ */ /** * @} */ /** @defgroup USBD_REQ_Exported_Macros * @{ */ /** * @} */ /** @defgroup USBD_REQ_Exported_Variables * @{ */ /** * @} */ /** @defgroup USBD_REQ_Exported_FunctionsPrototype * @{ */ USBD_Status USBD_StdDevReq (USB_OTG_CORE_HANDLE *pdev, USB_SETUP_REQ *req); USBD_Status USBD_StdItfReq (USB_OTG_CORE_HANDLE *pdev, USB_SETUP_REQ *req); USBD_Status USBD_StdEPReq (USB_OTG_CORE_HANDLE *pdev, USB_SETUP_REQ *req); void USBD_ParseSetupRequest( USB_OTG_CORE_HANDLE *pdev, USB_SETUP_REQ *req); void USBD_CtlError( USB_OTG_CORE_HANDLE *pdev, USB_SETUP_REQ *req); void USBD_GetString(uint8_t *desc, uint8_t *unicode, uint16_t *len); /** * @} */ #endif /* __USB_REQUEST_H_ */ /** * @} */ /** * @} */ /******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/ codec2-1.0.1/stm32/usb_lib/core/usbd_usr.h000066400000000000000000000055551412132000500201640ustar00rootroot00000000000000/** ****************************************************************************** * @file usbd_usr.h * @author MCD Application Team * @version V1.0.0 * @date 22-July-2011 * @brief Header file for usbd_usr.c ****************************************************************************** * @attention * * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE * TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY * DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING * FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. * *

© COPYRIGHT 2011 STMicroelectronics

****************************************************************************** */ /* Define to prevent recursive inclusion -------------------------------------*/ #ifndef __USBD_USR_H__ #define __USBD_USR_H__ /* Includes ------------------------------------------------------------------*/ #include "usbd_core.h" /** @addtogroup USBD_USER * @{ */ /** @addtogroup USBD_MSC_DEMO_USER_CALLBACKS * @{ */ /** @defgroup USBD_USR * @brief This file is the Header file for usbd_usr.c * @{ */ /** @defgroup USBD_USR_Exported_Types * @{ */ extern USBD_Usr_cb_TypeDef USR_cb; extern USBD_Usr_cb_TypeDef USR_FS_cb; extern USBD_Usr_cb_TypeDef USR_HS_cb; /** * @} */ /** @defgroup USBD_USR_Exported_Defines * @{ */ /** * @} */ /** @defgroup USBD_USR_Exported_Macros * @{ */ /** * @} */ /** @defgroup USBD_USR_Exported_Variables * @{ */ void USBD_USR_Init(void); void USBD_USR_DeviceReset (uint8_t speed); void USBD_USR_DeviceConfigured (void); void USBD_USR_DeviceSuspended(void); void USBD_USR_DeviceResumed(void); void USBD_USR_DeviceConnected(void); void USBD_USR_DeviceDisconnected(void); void USBD_USR_FS_Init(void); void USBD_USR_FS_DeviceReset (uint8_t speed); void USBD_USR_FS_DeviceConfigured (void); void USBD_USR_FS_DeviceSuspended(void); void USBD_USR_FS_DeviceResumed(void); void USBD_USR_FS_DeviceConnected(void); void USBD_USR_FS_DeviceDisconnected(void); void USBD_USR_HS_Init(void); void USBD_USR_HS_DeviceReset (uint8_t speed); void USBD_USR_HS_DeviceConfigured (void); void USBD_USR_HS_DeviceSuspended(void); void USBD_USR_HS_DeviceResumed(void); void USBD_USR_HS_DeviceConnected(void); void USBD_USR_HS_DeviceDisconnected(void); /** * @} */ /** @defgroup USBD_USR_Exported_FunctionsPrototype * @{ */ /** * @} */ #endif /*__USBD_USR_H__*/ /** * @} */ /** * @} */ /** * @} */ /******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/ codec2-1.0.1/stm32/usb_lib/otg/000077500000000000000000000000001412132000500160145ustar00rootroot00000000000000codec2-1.0.1/stm32/usb_lib/otg/usb_core.c000066400000000000000000001567651412132000500200050ustar00rootroot00000000000000/** ****************************************************************************** * @file usb_core.c * @author MCD Application Team * @version V2.0.0 * @date 22-July-2011 * @brief USB-OTG Core Layer ****************************************************************************** * @attention * * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE * TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY * DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING * FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. * *

© COPYRIGHT 2011 STMicroelectronics

****************************************************************************** */ /* Includes ------------------------------------------------------------------*/ #include "usb_core.h" #include "usb_bsp.h" /** @addtogroup USB_OTG_DRIVER * @{ */ /** @defgroup USB_CORE * @brief This file includes the USB-OTG Core Layer * @{ */ /** @defgroup USB_CORE_Private_Defines * @{ */ /** * @} */ /** @defgroup USB_CORE_Private_TypesDefinitions * @{ */ /** * @} */ /** @defgroup USB_CORE_Private_Macros * @{ */ /** * @} */ /** @defgroup USB_CORE_Private_Variables * @{ */ /** * @} */ /** @defgroup USB_CORE_Private_FunctionPrototypes * @{ */ /** * @} */ /** @defgroup USB_CORE_Private_Functions * @{ */ /** * @brief USB_OTG_EnableCommonInt * Initializes the commmon interrupts, used in both device and modes * @param pdev : Selected device * @retval None */ static void USB_OTG_EnableCommonInt(USB_OTG_CORE_HANDLE *pdev) { USB_OTG_GINTMSK_TypeDef int_mask; int_mask.d32 = 0; /* Clear any pending USB_OTG Interrupts */ #ifndef USE_OTG_MODE USB_OTG_WRITE_REG32( &pdev->regs.GREGS->GOTGINT, 0xFFFFFFFF); #endif /* Clear any pending interrupts */ USB_OTG_WRITE_REG32( &pdev->regs.GREGS->GINTSTS, 0xFFFFFFFF); /* Enable the interrupts in the INTMSK */ int_mask.b.wkupintr = 1; int_mask.b.usbsuspend = 1; #ifdef USE_OTG_MODE int_mask.b.otgintr = 1; int_mask.b.sessreqintr = 1; int_mask.b.conidstschng = 1; #endif USB_OTG_WRITE_REG32( &pdev->regs.GREGS->GINTMSK, int_mask.d32); } /** * @brief USB_OTG_CoreReset : Soft reset of the core * @param pdev : Selected device * @retval USB_OTG_STS : status */ static USB_OTG_STS USB_OTG_CoreReset(USB_OTG_CORE_HANDLE *pdev) { USB_OTG_STS status = USB_OTG_OK; __IO USB_OTG_GRSTCTL_TypeDef greset; uint32_t count = 0; greset.d32 = 0; /* Wait for AHB master IDLE state. */ do { USB_OTG_BSP_uDelay(3); greset.d32 = USB_OTG_READ_REG32(&pdev->regs.GREGS->GRSTCTL); if (++count > 200000) { return USB_OTG_OK; } } while (greset.b.ahbidle == 0); /* Core Soft Reset */ count = 0; greset.b.csftrst = 1; USB_OTG_WRITE_REG32(&pdev->regs.GREGS->GRSTCTL, greset.d32 ); do { greset.d32 = USB_OTG_READ_REG32(&pdev->regs.GREGS->GRSTCTL); if (++count > 200000) { break; } } while (greset.b.csftrst == 1); /* Wait for 3 PHY Clocks*/ USB_OTG_BSP_uDelay(3); return status; } /** * @brief USB_OTG_WritePacket : Writes a packet into the Tx FIFO associated * with the EP * @param pdev : Selected device * @param src : source pointer * @param ch_ep_num : end point number * @param bytes : No. of bytes * @retval USB_OTG_STS : status */ USB_OTG_STS USB_OTG_WritePacket(USB_OTG_CORE_HANDLE *pdev, uint8_t *src, uint8_t ch_ep_num, uint16_t len) { USB_OTG_STS status = USB_OTG_OK; if (pdev->cfg.dma_enable == 0) { uint32_t count32b= 0 , i= 0; __IO uint32_t *fifo; count32b = (len + 3) / 4; fifo = pdev->regs.DFIFO[ch_ep_num]; for (i = 0; i < count32b; i++, src+=4) { USB_OTG_WRITE_REG32( fifo, *((uint32_t *)src) ); } } return status; } /** * @brief USB_OTG_ReadPacket : Reads a packet from the Rx FIFO * @param pdev : Selected device * @param dest : Destination Pointer * @param bytes : No. of bytes * @retval None */ void *USB_OTG_ReadPacket(USB_OTG_CORE_HANDLE *pdev, uint8_t *dest, uint16_t len) { uint32_t i=0; uint32_t count32b = (len + 3) / 4; __IO uint32_t *fifo = pdev->regs.DFIFO[0]; for ( i = 0; i < count32b; i++, dest += 4 ) { *(uint32_t *)dest = USB_OTG_READ_REG32(fifo); } return ((void *)dest); } /** * @brief USB_OTG_SelectCore * Initialize core registers address. * @param pdev : Selected device * @param coreID : USB OTG Core ID * @retval USB_OTG_STS : status */ USB_OTG_STS USB_OTG_SelectCore(USB_OTG_CORE_HANDLE *pdev, USB_OTG_CORE_ID_TypeDef coreID) { uint32_t i , baseAddress = 0; USB_OTG_STS status = USB_OTG_OK; pdev->cfg.dma_enable = 0; /* at startup the core is in FS mode */ pdev->cfg.speed = USB_OTG_SPEED_FULL; pdev->cfg.mps = USB_OTG_FS_MAX_PACKET_SIZE ; /* initialize device cfg following its address */ if (coreID == USB_OTG_FS_CORE_ID) { baseAddress = USB_OTG_FS_BASE_ADDR; pdev->cfg.coreID = USB_OTG_FS_CORE_ID; pdev->cfg.host_channels = 8 ; pdev->cfg.dev_endpoints = 4 ; pdev->cfg.TotalFifoSize = 320; /* in 32-bits */ pdev->cfg.phy_itface = USB_OTG_EMBEDDED_PHY; #ifdef USB_OTG_FS_SOF_OUTPUT_ENABLED pdev->cfg.Sof_output = 1; #endif #ifdef USB_OTG_FS_LOW_PWR_MGMT_SUPPORT pdev->cfg.low_power = 1; #endif } else if (coreID == USB_OTG_HS_CORE_ID) { baseAddress = USB_OTG_HS_BASE_ADDR; pdev->cfg.coreID = USB_OTG_HS_CORE_ID; pdev->cfg.host_channels = 12 ; pdev->cfg.dev_endpoints = 6 ; pdev->cfg.TotalFifoSize = 1280;/* in 32-bits */ #ifdef USB_OTG_ULPI_PHY_ENABLED pdev->cfg.phy_itface = USB_OTG_ULPI_PHY; #else #ifdef USB_OTG_EMBEDDED_PHY_ENABLED pdev->cfg.phy_itface = USB_OTG_EMBEDDED_PHY; #else #ifdef USB_OTG_I2C_PHY_ENABLED pdev->cfg.phy_itface = USB_OTG_I2C_PHY; #endif #endif #endif #ifdef USB_OTG_HS_INTERNAL_DMA_ENABLED pdev->cfg.dma_enable = 1; #endif #ifdef USB_OTG_HS_SOF_OUTPUT_ENABLED pdev->cfg.Sof_output = 1; #endif #ifdef USB_OTG_HS_LOW_PWR_MGMT_SUPPORT pdev->cfg.low_power = 1; #endif } pdev->regs.GREGS = (USB_OTG_GREGS *)(baseAddress + \ USB_OTG_CORE_GLOBAL_REGS_OFFSET); pdev->regs.DREGS = (USB_OTG_DREGS *) (baseAddress + \ USB_OTG_DEV_GLOBAL_REG_OFFSET); for (i = 0; i < pdev->cfg.dev_endpoints; i++) { pdev->regs.INEP_REGS[i] = (USB_OTG_INEPREGS *) \ (baseAddress + USB_OTG_DEV_IN_EP_REG_OFFSET + \ (i * USB_OTG_EP_REG_OFFSET)); pdev->regs.OUTEP_REGS[i] = (USB_OTG_OUTEPREGS *) \ (baseAddress + USB_OTG_DEV_OUT_EP_REG_OFFSET + \ (i * USB_OTG_EP_REG_OFFSET)); } pdev->regs.HREGS = (USB_OTG_HREGS *)(baseAddress + \ USB_OTG_HOST_GLOBAL_REG_OFFSET); pdev->regs.HPRT0 = (uint32_t *)(baseAddress + USB_OTG_HOST_PORT_REGS_OFFSET); for (i = 0; i < pdev->cfg.host_channels; i++) { pdev->regs.HC_REGS[i] = (USB_OTG_HC_REGS *)(baseAddress + \ USB_OTG_HOST_CHAN_REGS_OFFSET + \ (i * USB_OTG_CHAN_REGS_OFFSET)); } for (i = 0; i < pdev->cfg.host_channels; i++) { pdev->regs.DFIFO[i] = (uint32_t *)(baseAddress + USB_OTG_DATA_FIFO_OFFSET +\ (i * USB_OTG_DATA_FIFO_SIZE)); } pdev->regs.PCGCCTL = (uint32_t *)(baseAddress + USB_OTG_PCGCCTL_OFFSET); return status; } /** * @brief USB_OTG_CoreInit * Initializes the USB_OTG controller registers and prepares the core * device mode or host mode operation. * @param pdev : Selected device * @retval USB_OTG_STS : status */ USB_OTG_STS USB_OTG_CoreInit(USB_OTG_CORE_HANDLE *pdev) { USB_OTG_STS status = USB_OTG_OK; USB_OTG_GUSBCFG_TypeDef usbcfg; USB_OTG_GCCFG_TypeDef gccfg; USB_OTG_GI2CCTL_TypeDef i2cctl; USB_OTG_GAHBCFG_TypeDef ahbcfg; usbcfg.d32 = 0; gccfg.d32 = 0; ahbcfg.d32 = 0; if (pdev->cfg.phy_itface == USB_OTG_ULPI_PHY) { gccfg.d32 = USB_OTG_READ_REG32(&pdev->regs.GREGS->GCCFG); gccfg.b.pwdn = 0; if (pdev->cfg.Sof_output) { gccfg.b.sofouten = 1; } USB_OTG_WRITE_REG32 (&pdev->regs.GREGS->GCCFG, gccfg.d32); /* Init The ULPI Interface */ usbcfg.d32 = 0; usbcfg.d32 = USB_OTG_READ_REG32(&pdev->regs.GREGS->GUSBCFG); usbcfg.b.physel = 0; /* HS Interface */ #ifdef USB_OTG_INTERNAL_VBUS_ENABLED usbcfg.b.ulpi_ext_vbus_drv = 0; /* Use internal VBUS */ #else #ifdef USB_OTG_EXTERNAL_VBUS_ENABLED usbcfg.b.ulpi_ext_vbus_drv = 1; /* Use external VBUS */ #endif #endif usbcfg.b.term_sel_dl_pulse = 0; /* Data line pulsing using utmi_txvalid */ usbcfg.b.ulpi_utmi_sel = 1; /* ULPI seleInterfacect */ usbcfg.b.phyif = 0; /* 8 bits */ usbcfg.b.ddrsel = 0; /* single data rate */ usbcfg.b.ulpi_fsls = 0; usbcfg.b.ulpi_clk_sus_m = 0; USB_OTG_WRITE_REG32 (&pdev->regs.GREGS->GUSBCFG, usbcfg.d32); /* Reset after a PHY select */ USB_OTG_CoreReset(pdev); if(pdev->cfg.dma_enable == 1) { ahbcfg.b.hburstlen = 5; /* 64 x 32-bits*/ ahbcfg.b.dmaenable = 1; USB_OTG_WRITE_REG32(&pdev->regs.GREGS->GAHBCFG, ahbcfg.d32); } } else /* FS interface (embedded Phy or I2C Phy) */ { usbcfg.d32 = USB_OTG_READ_REG32(&pdev->regs.GREGS->GUSBCFG);; usbcfg.b.physel = 1; /* FS Interface */ USB_OTG_WRITE_REG32 (&pdev->regs.GREGS->GUSBCFG, usbcfg.d32); /* Reset after a PHY select and set Host mode */ USB_OTG_CoreReset(pdev); /* Enable the I2C interface and deactivate the power down*/ gccfg.d32 = 0; gccfg.b.pwdn = 1; if(pdev->cfg.phy_itface == USB_OTG_I2C_PHY) { gccfg.b.i2cifen = 1; } gccfg.b.vbussensingA = 1 ; gccfg.b.vbussensingB = 1 ; #ifndef VBUS_SENSING_ENABLED gccfg.b.disablevbussensing = 1; #endif if(pdev->cfg.Sof_output) { gccfg.b.sofouten = 1; } USB_OTG_WRITE_REG32 (&pdev->regs.GREGS->GCCFG, gccfg.d32); USB_OTG_BSP_mDelay(20); /* Program GUSBCFG.OtgUtmifsSel to I2C*/ usbcfg.d32 = USB_OTG_READ_REG32(&pdev->regs.GREGS->GUSBCFG); if(pdev->cfg.phy_itface == USB_OTG_I2C_PHY) { usbcfg.b.otgutmifssel = 1; } USB_OTG_WRITE_REG32 (&pdev->regs.GREGS->GUSBCFG, usbcfg.d32); if(pdev->cfg.phy_itface == USB_OTG_I2C_PHY) { /*Program GI2CCTL.I2CEn*/ i2cctl.d32 = USB_OTG_READ_REG32(&pdev->regs.GREGS->GI2CCTL); i2cctl.b.i2cdevaddr = 1; i2cctl.b.i2cen = 0; i2cctl.b.dat_se0 = 1; i2cctl.b.addr = 0x2D; USB_OTG_WRITE_REG32 (&pdev->regs.GREGS->GI2CCTL, i2cctl.d32); USB_OTG_BSP_mDelay(200); i2cctl.b.i2cen = 1; USB_OTG_WRITE_REG32 (&pdev->regs.GREGS->GI2CCTL, i2cctl.d32); USB_OTG_BSP_mDelay(200); } } /* case the HS core is working in FS mode */ if(pdev->cfg.dma_enable == 1) { ahbcfg.d32 = USB_OTG_READ_REG32(&pdev->regs.GREGS->GAHBCFG); ahbcfg.b.hburstlen = 5; /* 64 x 32-bits*/ ahbcfg.b.dmaenable = 1; USB_OTG_WRITE_REG32(&pdev->regs.GREGS->GAHBCFG, ahbcfg.d32); } /* initialize OTG features */ #ifdef USE_OTG_MODE usbcfg.d32 = USB_OTG_READ_REG32(&pdev->regs.GREGS->GUSBCFG); usbcfg.b.hnpcap = 1; usbcfg.b.srpcap = 1; USB_OTG_WRITE_REG32(&pdev->regs.GREGS->GUSBCFG, usbcfg.d32); USB_OTG_EnableCommonInt(pdev); #endif return status; } /** * @brief USB_OTG_EnableGlobalInt * Enables the controller's Global Int in the AHB Config reg * @param pdev : Selected device * @retval USB_OTG_STS : status */ USB_OTG_STS USB_OTG_EnableGlobalInt(USB_OTG_CORE_HANDLE *pdev) { USB_OTG_STS status = USB_OTG_OK; USB_OTG_GAHBCFG_TypeDef ahbcfg; ahbcfg.d32 = 0; ahbcfg.b.glblintrmsk = 1; /* Enable interrupts */ USB_OTG_MODIFY_REG32(&pdev->regs.GREGS->GAHBCFG, 0, ahbcfg.d32); return status; } /** * @brief USB_OTG_DisableGlobalInt * Enables the controller's Global Int in the AHB Config reg * @param pdev : Selected device * @retval USB_OTG_STS : status */ USB_OTG_STS USB_OTG_DisableGlobalInt(USB_OTG_CORE_HANDLE *pdev) { USB_OTG_STS status = USB_OTG_OK; USB_OTG_GAHBCFG_TypeDef ahbcfg; ahbcfg.d32 = 0; ahbcfg.b.glblintrmsk = 1; /* Enable interrupts */ USB_OTG_MODIFY_REG32(&pdev->regs.GREGS->GAHBCFG, ahbcfg.d32, 0); return status; } /** * @brief USB_OTG_FlushTxFifo : Flush a Tx FIFO * @param pdev : Selected device * @param num : FO num * @retval USB_OTG_STS : status */ USB_OTG_STS USB_OTG_FlushTxFifo (USB_OTG_CORE_HANDLE *pdev , uint32_t num ) { USB_OTG_STS status = USB_OTG_OK; __IO USB_OTG_GRSTCTL_TypeDef greset; uint32_t count = 0; greset.d32 = 0; greset.b.txfflsh = 1; greset.b.txfnum = num; USB_OTG_WRITE_REG32( &pdev->regs.GREGS->GRSTCTL, greset.d32 ); do { greset.d32 = USB_OTG_READ_REG32( &pdev->regs.GREGS->GRSTCTL); if (++count > 200000) { break; } } while (greset.b.txfflsh == 1); /* Wait for 3 PHY Clocks*/ USB_OTG_BSP_uDelay(3); return status; } /** * @brief USB_OTG_FlushRxFifo : Flush a Rx FIFO * @param pdev : Selected device * @retval USB_OTG_STS : status */ USB_OTG_STS USB_OTG_FlushRxFifo( USB_OTG_CORE_HANDLE *pdev ) { USB_OTG_STS status = USB_OTG_OK; __IO USB_OTG_GRSTCTL_TypeDef greset; uint32_t count = 0; greset.d32 = 0; greset.b.rxfflsh = 1; USB_OTG_WRITE_REG32( &pdev->regs.GREGS->GRSTCTL, greset.d32 ); do { greset.d32 = USB_OTG_READ_REG32( &pdev->regs.GREGS->GRSTCTL); if (++count > 200000) { break; } } while (greset.b.rxfflsh == 1); /* Wait for 3 PHY Clocks*/ USB_OTG_BSP_uDelay(3); return status; } /** * @brief USB_OTG_SetCurrentMode : Set ID line * @param pdev : Selected device * @param mode : (Host/device) * @retval USB_OTG_STS : status */ USB_OTG_STS USB_OTG_SetCurrentMode(USB_OTG_CORE_HANDLE *pdev , uint8_t mode) { USB_OTG_STS status = USB_OTG_OK; USB_OTG_GUSBCFG_TypeDef usbcfg; usbcfg.d32 = USB_OTG_READ_REG32(&pdev->regs.GREGS->GUSBCFG); usbcfg.b.force_host = 0; usbcfg.b.force_dev = 0; if ( mode == HOST_MODE) { usbcfg.b.force_host = 1; } else if ( mode == DEVICE_MODE) { usbcfg.b.force_dev = 1; } USB_OTG_WRITE_REG32(&pdev->regs.GREGS->GUSBCFG, usbcfg.d32); USB_OTG_BSP_mDelay(50); return status; } /** * @brief USB_OTG_GetMode : Get current mode * @param pdev : Selected device * @retval current mode */ uint32_t USB_OTG_GetMode(USB_OTG_CORE_HANDLE *pdev) { return (USB_OTG_READ_REG32(&pdev->regs.GREGS->GINTSTS ) & 0x1); } /** * @brief USB_OTG_IsDeviceMode : Check if it is device mode * @param pdev : Selected device * @retval num_in_ep */ uint8_t USB_OTG_IsDeviceMode(USB_OTG_CORE_HANDLE *pdev) { return (USB_OTG_GetMode(pdev) != HOST_MODE); } /** * @brief USB_OTG_IsHostMode : Check if it is host mode * @param pdev : Selected device * @retval num_in_ep */ uint8_t USB_OTG_IsHostMode(USB_OTG_CORE_HANDLE *pdev) { return (USB_OTG_GetMode(pdev) == HOST_MODE); } /** * @brief USB_OTG_ReadCoreItr : returns the Core Interrupt register * @param pdev : Selected device * @retval Status */ uint32_t USB_OTG_ReadCoreItr(USB_OTG_CORE_HANDLE *pdev) { uint32_t v = 0; v = USB_OTG_READ_REG32(&pdev->regs.GREGS->GINTSTS); v &= USB_OTG_READ_REG32(&pdev->regs.GREGS->GINTMSK); return v; } /** * @brief USB_OTG_ReadOtgItr : returns the USB_OTG Interrupt register * @param pdev : Selected device * @retval Status */ uint32_t USB_OTG_ReadOtgItr (USB_OTG_CORE_HANDLE *pdev) { return (USB_OTG_READ_REG32 (&pdev->regs.GREGS->GOTGINT)); } #ifdef USE_HOST_MODE /** * @brief USB_OTG_CoreInitHost : Initializes USB_OTG controller for host mode * @param pdev : Selected device * @retval status */ USB_OTG_STS USB_OTG_CoreInitHost(USB_OTG_CORE_HANDLE *pdev) { USB_OTG_STS status = USB_OTG_OK; USB_OTG_FSIZ_TypeDef nptxfifosize; USB_OTG_FSIZ_TypeDef ptxfifosize; USB_OTG_HCFG_TypeDef hcfg; #ifdef USE_OTG_MODE USB_OTG_OTGCTL_TypeDef gotgctl; #endif uint32_t i = 0; nptxfifosize.d32 = 0; ptxfifosize.d32 = 0; #ifdef USE_OTG_MODE gotgctl.d32 = 0; #endif hcfg.d32 = 0; /* configure charge pump IO */ USB_OTG_BSP_ConfigVBUS(pdev); /* Restart the Phy Clock */ USB_OTG_WRITE_REG32(pdev->regs.PCGCCTL, 0); /* Initialize Host Configuration Register */ USB_OTG_InitFSLSPClkSel(pdev , HCFG_48_MHZ); /* in init phase */ hcfg.d32 = USB_OTG_READ_REG32(&pdev->regs.HREGS->HCFG); hcfg.b.fslssupp = 0; USB_OTG_WRITE_REG32(&pdev->regs.HREGS->HCFG, hcfg.d32); /* Configure data FIFO sizes */ /* Rx FIFO */ #ifdef USB_OTG_FS_CORE if(pdev->cfg.coreID == USB_OTG_FS_CORE_ID) { /* set Rx FIFO size */ USB_OTG_WRITE_REG32(&pdev->regs.GREGS->GRXFSIZ, RX_FIFO_FS_SIZE); nptxfifosize.b.startaddr = RX_FIFO_FS_SIZE; nptxfifosize.b.depth = TXH_NP_FS_FIFOSIZ; USB_OTG_WRITE_REG32(&pdev->regs.GREGS->DIEPTXF0_HNPTXFSIZ, nptxfifosize.d32); ptxfifosize.b.startaddr = RX_FIFO_FS_SIZE + TXH_NP_FS_FIFOSIZ; ptxfifosize.b.depth = TXH_P_FS_FIFOSIZ; USB_OTG_WRITE_REG32(&pdev->regs.GREGS->HPTXFSIZ, ptxfifosize.d32); } #endif #ifdef USB_OTG_HS_CORE if (pdev->cfg.coreID == USB_OTG_HS_CORE_ID) { /* set Rx FIFO size */ USB_OTG_WRITE_REG32(&pdev->regs.GREGS->GRXFSIZ, RX_FIFO_HS_SIZE); nptxfifosize.b.startaddr = RX_FIFO_HS_SIZE; nptxfifosize.b.depth = TXH_NP_HS_FIFOSIZ; USB_OTG_WRITE_REG32(&pdev->regs.GREGS->DIEPTXF0_HNPTXFSIZ, nptxfifosize.d32); ptxfifosize.b.startaddr = RX_FIFO_HS_SIZE + TXH_NP_HS_FIFOSIZ; ptxfifosize.b.depth = TXH_P_HS_FIFOSIZ; USB_OTG_WRITE_REG32(&pdev->regs.GREGS->HPTXFSIZ, ptxfifosize.d32); } #endif #ifdef USE_OTG_MODE /* Clear Host Set HNP Enable in the USB_OTG Control Register */ gotgctl.b.hstsethnpen = 1; USB_OTG_MODIFY_REG32( &pdev->regs.GREGS->GOTGCTL, gotgctl.d32, 0); #endif /* Make sure the FIFOs are flushed. */ USB_OTG_FlushTxFifo(pdev, 0x10 ); /* all Tx FIFOs */ USB_OTG_FlushRxFifo(pdev); /* Clear all pending HC Interrupts */ for (i = 0; i < pdev->cfg.host_channels; i++) { USB_OTG_WRITE_REG32( &pdev->regs.HC_REGS[i]->HCINT, 0xFFFFFFFF ); USB_OTG_WRITE_REG32( &pdev->regs.HC_REGS[i]->HCGINTMSK, 0 ); } #ifndef USE_OTG_MODE USB_OTG_DriveVbus(pdev, 1); #endif USB_OTG_EnableHostInt(pdev); return status; } /** * @brief USB_OTG_IsEvenFrame * This function returns the frame number for sof packet * @param pdev : Selected device * @retval Frame number */ uint8_t USB_OTG_IsEvenFrame (USB_OTG_CORE_HANDLE *pdev) { return !(USB_OTG_READ_REG32(&pdev->regs.HREGS->HFNUM) & 0x1); } /** * @brief USB_OTG_DriveVbus : set/reset vbus * @param pdev : Selected device * @param state : VBUS state * @retval None */ void USB_OTG_DriveVbus (USB_OTG_CORE_HANDLE *pdev, uint8_t state) { USB_OTG_HPRT0_TypeDef hprt0; hprt0.d32 = 0; /* enable disable the external charge pump */ USB_OTG_BSP_DriveVBUS(pdev, state); /* Turn on the Host port power. */ hprt0.d32 = USB_OTG_ReadHPRT0(pdev); if ((hprt0.b.prtpwr == 0 ) && (state == 1 )) { hprt0.b.prtpwr = 1; USB_OTG_WRITE_REG32(pdev->regs.HPRT0, hprt0.d32); } if ((hprt0.b.prtpwr == 1 ) && (state == 0 )) { hprt0.b.prtpwr = 0; USB_OTG_WRITE_REG32(pdev->regs.HPRT0, hprt0.d32); } USB_OTG_BSP_mDelay(200); } /** * @brief USB_OTG_EnableHostInt: Enables the Host mode interrupts * @param pdev : Selected device * @retval USB_OTG_STS : status */ USB_OTG_STS USB_OTG_EnableHostInt(USB_OTG_CORE_HANDLE *pdev) { USB_OTG_STS status = USB_OTG_OK; USB_OTG_GINTMSK_TypeDef intmsk; intmsk.d32 = 0; /* Disable all interrupts. */ USB_OTG_WRITE_REG32(&pdev->regs.GREGS->GINTMSK, 0); /* Clear any pending interrupts. */ USB_OTG_WRITE_REG32(&pdev->regs.GREGS->GINTSTS, 0xFFFFFFFF); /* Enable the common interrupts */ USB_OTG_EnableCommonInt(pdev); if (pdev->cfg.dma_enable == 0) { intmsk.b.rxstsqlvl = 1; } intmsk.b.portintr = 1; intmsk.b.hcintr = 1; intmsk.b.disconnect = 1; intmsk.b.sofintr = 1; intmsk.b.incomplisoout = 1; USB_OTG_MODIFY_REG32(&pdev->regs.GREGS->GINTMSK, intmsk.d32, intmsk.d32); return status; } /** * @brief USB_OTG_InitFSLSPClkSel : Initializes the FSLSPClkSel field of the * HCFG register on the PHY type * @param pdev : Selected device * @param freq : clock frequency * @retval None */ void USB_OTG_InitFSLSPClkSel(USB_OTG_CORE_HANDLE *pdev , uint8_t freq) { USB_OTG_HCFG_TypeDef hcfg; hcfg.d32 = USB_OTG_READ_REG32(&pdev->regs.HREGS->HCFG); hcfg.b.fslspclksel = freq; USB_OTG_WRITE_REG32(&pdev->regs.HREGS->HCFG, hcfg.d32); } /** * @brief USB_OTG_ReadHPRT0 : Reads HPRT0 to modify later * @param pdev : Selected device * @retval HPRT0 value */ uint32_t USB_OTG_ReadHPRT0(USB_OTG_CORE_HANDLE *pdev) { USB_OTG_HPRT0_TypeDef hprt0; hprt0.d32 = USB_OTG_READ_REG32(pdev->regs.HPRT0); hprt0.b.prtena = 0; hprt0.b.prtconndet = 0; hprt0.b.prtenchng = 0; hprt0.b.prtovrcurrchng = 0; return hprt0.d32; } /** * @brief USB_OTG_ReadHostAllChannels_intr : Register PCD Callbacks * @param pdev : Selected device * @retval Status */ uint32_t USB_OTG_ReadHostAllChannels_intr (USB_OTG_CORE_HANDLE *pdev) { return (USB_OTG_READ_REG32 (&pdev->regs.HREGS->HAINT)); } /** * @brief USB_OTG_ResetPort : Reset Host Port * @param pdev : Selected device * @retval status * @note : (1)The application must wait at least 10 ms (+ 10 ms security) * before clearing the reset bit. */ uint32_t USB_OTG_ResetPort(USB_OTG_CORE_HANDLE *pdev) { USB_OTG_HPRT0_TypeDef hprt0; hprt0.d32 = USB_OTG_ReadHPRT0(pdev); hprt0.b.prtrst = 1; USB_OTG_WRITE_REG32(pdev->regs.HPRT0, hprt0.d32); USB_OTG_BSP_mDelay (10); /* See Note #1 */ hprt0.b.prtrst = 0; USB_OTG_WRITE_REG32(pdev->regs.HPRT0, hprt0.d32); USB_OTG_BSP_mDelay (20); return 1; } /** * @brief USB_OTG_HC_Init : Prepares a host channel for transferring packets * @param pdev : Selected device * @param hc_num : channel number * @retval USB_OTG_STS : status */ USB_OTG_STS USB_OTG_HC_Init(USB_OTG_CORE_HANDLE *pdev , uint8_t hc_num) { USB_OTG_STS status = USB_OTG_OK; uint32_t intr_enable = 0; USB_OTG_HCGINTMSK_TypeDef hcintmsk; USB_OTG_GINTMSK_TypeDef gintmsk; USB_OTG_HCCHAR_TypeDef hcchar; USB_OTG_HCINTn_TypeDef hcint; gintmsk.d32 = 0; hcintmsk.d32 = 0; hcchar.d32 = 0; /* Clear old interrupt conditions for this host channel. */ hcint.d32 = 0xFFFFFFFF; USB_OTG_WRITE_REG32(&pdev->regs.HC_REGS[hc_num]->HCINT, hcint.d32); /* Enable channel interrupts required for this transfer. */ hcintmsk.d32 = 0; if (pdev->cfg.dma_enable == 1) { hcintmsk.b.ahberr = 1; } switch (pdev->host.hc[hc_num].ep_type) { case EP_TYPE_CTRL: case EP_TYPE_BULK: hcintmsk.b.xfercompl = 1; hcintmsk.b.stall = 1; hcintmsk.b.xacterr = 1; hcintmsk.b.datatglerr = 1; hcintmsk.b.nak = 1; if (pdev->host.hc[hc_num].ep_is_in) { hcintmsk.b.bblerr = 1; } else { hcintmsk.b.nyet = 1; if (pdev->host.hc[hc_num].do_ping) { hcintmsk.b.ack = 1; } } break; case EP_TYPE_INTR: hcintmsk.b.xfercompl = 1; hcintmsk.b.nak = 1; hcintmsk.b.stall = 1; hcintmsk.b.xacterr = 1; hcintmsk.b.datatglerr = 1; hcintmsk.b.frmovrun = 1; if (pdev->host.hc[hc_num].ep_is_in) { hcintmsk.b.bblerr = 1; } break; case EP_TYPE_ISOC: hcintmsk.b.xfercompl = 1; hcintmsk.b.frmovrun = 1; hcintmsk.b.ack = 1; if (pdev->host.hc[hc_num].ep_is_in) { hcintmsk.b.xacterr = 1; hcintmsk.b.bblerr = 1; } break; } USB_OTG_WRITE_REG32(&pdev->regs.HC_REGS[hc_num]->HCGINTMSK, hcintmsk.d32); /* Enable the top level host channel interrupt. */ intr_enable = (1 << hc_num); USB_OTG_MODIFY_REG32(&pdev->regs.HREGS->HAINTMSK, 0, intr_enable); /* Make sure host channel interrupts are enabled. */ gintmsk.b.hcintr = 1; USB_OTG_MODIFY_REG32(&pdev->regs.GREGS->GINTMSK, 0, gintmsk.d32); /* Program the HCCHAR register */ hcchar.d32 = 0; hcchar.b.devaddr = pdev->host.hc[hc_num].dev_addr; hcchar.b.epnum = pdev->host.hc[hc_num].ep_num; hcchar.b.epdir = pdev->host.hc[hc_num].ep_is_in; hcchar.b.lspddev = (pdev->host.hc[hc_num].speed == HPRT0_PRTSPD_LOW_SPEED); hcchar.b.eptype = pdev->host.hc[hc_num].ep_type; hcchar.b.mps = pdev->host.hc[hc_num].max_packet; if (pdev->host.hc[hc_num].ep_type == HCCHAR_INTR) { hcchar.b.oddfrm = 1; } USB_OTG_WRITE_REG32(&pdev->regs.HC_REGS[hc_num]->HCCHAR, hcchar.d32); return status; } /** * @brief USB_OTG_HC_StartXfer : Start transfer * @param pdev : Selected device * @param hc_num : channel number * @retval USB_OTG_STS : status */ USB_OTG_STS USB_OTG_HC_StartXfer(USB_OTG_CORE_HANDLE *pdev , uint8_t hc_num) { USB_OTG_STS status = USB_OTG_OK; USB_OTG_HCCHAR_TypeDef hcchar; USB_OTG_HCTSIZn_TypeDef hctsiz; USB_OTG_HNPTXSTS_TypeDef hnptxsts; USB_OTG_HPTXSTS_TypeDef hptxsts; USB_OTG_GINTMSK_TypeDef intmsk; uint16_t len_words = 0; uint16_t num_packets; uint16_t max_hc_pkt_count; max_hc_pkt_count = 256; hctsiz.d32 = 0; hcchar.d32 = 0; intmsk.d32 = 0; /* Compute the expected number of packets associated to the transfer */ if (pdev->host.hc[hc_num].xfer_len > 0) { num_packets = (pdev->host.hc[hc_num].xfer_len + \ pdev->host.hc[hc_num].max_packet - 1) / pdev->host.hc[hc_num].max_packet; if (num_packets > max_hc_pkt_count) { num_packets = max_hc_pkt_count; pdev->host.hc[hc_num].xfer_len = num_packets * \ pdev->host.hc[hc_num].max_packet; } } else { num_packets = 1; } if (pdev->host.hc[hc_num].ep_is_in) { pdev->host.hc[hc_num].xfer_len = num_packets * \ pdev->host.hc[hc_num].max_packet; } /* Initialize the HCTSIZn register */ hctsiz.b.xfersize = pdev->host.hc[hc_num].xfer_len; hctsiz.b.pktcnt = num_packets; hctsiz.b.pid = pdev->host.hc[hc_num].data_pid; USB_OTG_WRITE_REG32(&pdev->regs.HC_REGS[hc_num]->HCTSIZ, hctsiz.d32); if (pdev->cfg.dma_enable == 1) { USB_OTG_WRITE_REG32(&pdev->regs.HC_REGS[hc_num]->HCDMA, (unsigned int)pdev->host.hc[hc_num].xfer_buff); } hcchar.d32 = USB_OTG_READ_REG32(&pdev->regs.HC_REGS[hc_num]->HCCHAR); hcchar.b.oddfrm = USB_OTG_IsEvenFrame(pdev); /* Set host channel enable */ hcchar.b.chen = 1; hcchar.b.chdis = 0; USB_OTG_WRITE_REG32(&pdev->regs.HC_REGS[hc_num]->HCCHAR, hcchar.d32); if (pdev->cfg.dma_enable == 0) /* Slave mode */ { if((pdev->host.hc[hc_num].ep_is_in == 0) && (pdev->host.hc[hc_num].xfer_len > 0)) { switch(pdev->host.hc[hc_num].ep_type) { /* Non periodic transfer */ case EP_TYPE_CTRL: case EP_TYPE_BULK: hnptxsts.d32 = USB_OTG_READ_REG32(&pdev->regs.GREGS->HNPTXSTS); len_words = (pdev->host.hc[hc_num].xfer_len + 3) / 4; /* check if there is enough space in FIFO space */ if(len_words > hnptxsts.b.nptxfspcavail) { /* need to process data in nptxfempty interrupt */ intmsk.b.nptxfempty = 1; USB_OTG_MODIFY_REG32( &pdev->regs.GREGS->GINTMSK, 0, intmsk.d32); } break; /* Periodic transfer */ case EP_TYPE_INTR: case EP_TYPE_ISOC: hptxsts.d32 = USB_OTG_READ_REG32(&pdev->regs.HREGS->HPTXSTS); len_words = (pdev->host.hc[hc_num].xfer_len + 3) / 4; /* check if there is enough space in FIFO space */ if(len_words > hptxsts.b.ptxfspcavail) /* split the transfer */ { /* need to process data in ptxfempty interrupt */ intmsk.b.ptxfempty = 1; USB_OTG_MODIFY_REG32( &pdev->regs.GREGS->GINTMSK, 0, intmsk.d32); } break; default: break; } /* Write packet into the Tx FIFO. */ USB_OTG_WritePacket(pdev, pdev->host.hc[hc_num].xfer_buff , hc_num, pdev->host.hc[hc_num].xfer_len); } } return status; } /** * @brief USB_OTG_HC_Halt : Halt channel * @param pdev : Selected device * @param hc_num : channel number * @retval USB_OTG_STS : status */ USB_OTG_STS USB_OTG_HC_Halt(USB_OTG_CORE_HANDLE *pdev , uint8_t hc_num) { USB_OTG_STS status = USB_OTG_OK; USB_OTG_HNPTXSTS_TypeDef nptxsts; USB_OTG_HPTXSTS_TypeDef hptxsts; USB_OTG_HCCHAR_TypeDef hcchar; nptxsts.d32 = 0; hptxsts.d32 = 0; hcchar.d32 = USB_OTG_READ_REG32(&pdev->regs.HC_REGS[hc_num]->HCCHAR); hcchar.b.chen = 1; hcchar.b.chdis = 1; /* Check for space in the request queue to issue the halt. */ if (hcchar.b.eptype == HCCHAR_CTRL || hcchar.b.eptype == HCCHAR_BULK) { nptxsts.d32 = USB_OTG_READ_REG32(&pdev->regs.GREGS->HNPTXSTS); if (nptxsts.b.nptxqspcavail == 0) { hcchar.b.chen = 0; } } else { hptxsts.d32 = USB_OTG_READ_REG32(&pdev->regs.HREGS->HPTXSTS); if (hptxsts.b.ptxqspcavail == 0) { hcchar.b.chen = 0; } } USB_OTG_WRITE_REG32(&pdev->regs.HC_REGS[hc_num]->HCCHAR, hcchar.d32); return status; } /** * @brief Issue a ping token * @param None * @retval : None */ USB_OTG_STS USB_OTG_HC_DoPing(USB_OTG_CORE_HANDLE *pdev , uint8_t hc_num) { USB_OTG_STS status = USB_OTG_OK; USB_OTG_HCCHAR_TypeDef hcchar; USB_OTG_HCTSIZn_TypeDef hctsiz; hctsiz.d32 = 0; hctsiz.b.dopng = 1; hctsiz.b.pktcnt = 1; USB_OTG_WRITE_REG32(&pdev->regs.HC_REGS[hc_num]->HCTSIZ, hctsiz.d32); hcchar.d32 = USB_OTG_READ_REG32(&pdev->regs.HC_REGS[hc_num]->HCCHAR); hcchar.b.chen = 1; hcchar.b.chdis = 0; USB_OTG_WRITE_REG32(&pdev->regs.HC_REGS[hc_num]->HCCHAR, hcchar.d32); return status; } /** * @brief Stop the device and clean up fifo's * @param None * @retval : None */ void USB_OTG_StopHost(USB_OTG_CORE_HANDLE *pdev) { USB_OTG_HCCHAR_TypeDef hcchar; uint32_t i; USB_OTG_WRITE_REG32(&pdev->regs.HREGS->HAINTMSK , 0); USB_OTG_WRITE_REG32(&pdev->regs.HREGS->HAINT, 0xFFFFFFFF); /* Flush out any leftover queued requests. */ for (i = 0; i < pdev->cfg.host_channels; i++) { hcchar.d32 = USB_OTG_READ_REG32(&pdev->regs.HC_REGS[i]->HCCHAR); hcchar.b.chen = 0; hcchar.b.chdis = 1; hcchar.b.epdir = 0; USB_OTG_WRITE_REG32(&pdev->regs.HC_REGS[i]->HCCHAR, hcchar.d32); } /* Flush the FIFO */ USB_OTG_FlushRxFifo(pdev); USB_OTG_FlushTxFifo(pdev , 0x10 ); } #endif #ifdef USE_DEVICE_MODE /* PCD Core Layer */ /** * @brief USB_OTG_InitDevSpeed :Initializes the DevSpd field of DCFG register * depending the PHY type and the enumeration speed of the device. * @param pdev : Selected device * @retval : None */ void USB_OTG_InitDevSpeed(USB_OTG_CORE_HANDLE *pdev , uint8_t speed) { USB_OTG_DCFG_TypeDef dcfg; dcfg.d32 = USB_OTG_READ_REG32(&pdev->regs.DREGS->DCFG); dcfg.b.devspd = speed; USB_OTG_WRITE_REG32(&pdev->regs.DREGS->DCFG, dcfg.d32); } /** * @brief USB_OTG_CoreInitDev : Initializes the USB_OTG controller registers * for device mode * @param pdev : Selected device * @retval USB_OTG_STS : status */ USB_OTG_STS USB_OTG_CoreInitDev (USB_OTG_CORE_HANDLE *pdev) { USB_OTG_STS status = USB_OTG_OK; USB_OTG_DEPCTL_TypeDef depctl; uint32_t i; USB_OTG_DCFG_TypeDef dcfg; USB_OTG_FSIZ_TypeDef nptxfifosize; USB_OTG_FSIZ_TypeDef txfifosize; USB_OTG_DIEPMSK_TypeDef msk; USB_OTG_DTHRCTL_TypeDef dthrctl; depctl.d32 = 0; dcfg.d32 = 0; nptxfifosize.d32 = 0; txfifosize.d32 = 0; msk.d32 = 0; /* Restart the Phy Clock */ USB_OTG_WRITE_REG32(pdev->regs.PCGCCTL, 0); /* Device configuration register */ dcfg.d32 = USB_OTG_READ_REG32( &pdev->regs.DREGS->DCFG); dcfg.b.perfrint = DCFG_FRAME_INTERVAL_80; USB_OTG_WRITE_REG32( &pdev->regs.DREGS->DCFG, dcfg.d32 ); #ifdef USB_OTG_FS_CORE if(pdev->cfg.coreID == USB_OTG_FS_CORE_ID ) { /* Set Full speed phy */ USB_OTG_InitDevSpeed (pdev , USB_OTG_SPEED_PARAM_FULL); /* set Rx FIFO size */ USB_OTG_WRITE_REG32(&pdev->regs.GREGS->GRXFSIZ, RX_FIFO_FS_SIZE); /* EP0 TX*/ nptxfifosize.b.depth = TX0_FIFO_FS_SIZE; nptxfifosize.b.startaddr = RX_FIFO_FS_SIZE; USB_OTG_WRITE_REG32( &pdev->regs.GREGS->DIEPTXF0_HNPTXFSIZ, nptxfifosize.d32 ); /* EP1 TX*/ txfifosize.b.startaddr = nptxfifosize.b.startaddr + nptxfifosize.b.depth; txfifosize.b.depth = TX1_FIFO_FS_SIZE; USB_OTG_WRITE_REG32( &pdev->regs.GREGS->DIEPTXF[0], txfifosize.d32 ); /* EP2 TX*/ txfifosize.b.startaddr += txfifosize.b.depth; txfifosize.b.depth = TX2_FIFO_FS_SIZE; USB_OTG_WRITE_REG32( &pdev->regs.GREGS->DIEPTXF[1], txfifosize.d32 ); /* EP3 TX*/ txfifosize.b.startaddr += txfifosize.b.depth; txfifosize.b.depth = TX3_FIFO_FS_SIZE; USB_OTG_WRITE_REG32( &pdev->regs.GREGS->DIEPTXF[2], txfifosize.d32 ); } #endif #ifdef USB_OTG_HS_CORE if(pdev->cfg.coreID == USB_OTG_HS_CORE_ID ) { /* Set High speed phy */ if(pdev->cfg.phy_itface == USB_OTG_ULPI_PHY) { USB_OTG_InitDevSpeed (pdev , USB_OTG_SPEED_PARAM_HIGH); } else /* set High speed phy in Full speed mode */ { USB_OTG_InitDevSpeed (pdev , USB_OTG_SPEED_PARAM_HIGH_IN_FULL); } /* set Rx FIFO size */ USB_OTG_WRITE_REG32(&pdev->regs.GREGS->GRXFSIZ, RX_FIFO_HS_SIZE); /* EP0 TX*/ nptxfifosize.b.depth = TX0_FIFO_HS_SIZE; nptxfifosize.b.startaddr = RX_FIFO_HS_SIZE; USB_OTG_WRITE_REG32( &pdev->regs.GREGS->DIEPTXF0_HNPTXFSIZ, nptxfifosize.d32 ); /* EP1 TX*/ txfifosize.b.startaddr = nptxfifosize.b.startaddr + nptxfifosize.b.depth; txfifosize.b.depth = TX1_FIFO_HS_SIZE; USB_OTG_WRITE_REG32( &pdev->regs.GREGS->DIEPTXF[0], txfifosize.d32 ); /* EP2 TX*/ txfifosize.b.startaddr += txfifosize.b.depth; txfifosize.b.depth = TX2_FIFO_HS_SIZE; USB_OTG_WRITE_REG32( &pdev->regs.GREGS->DIEPTXF[1], txfifosize.d32 ); /* EP3 TX*/ txfifosize.b.startaddr += txfifosize.b.depth; txfifosize.b.depth = TX3_FIFO_HS_SIZE; USB_OTG_WRITE_REG32( &pdev->regs.GREGS->DIEPTXF[2], txfifosize.d32 ); /* EP4 TX*/ txfifosize.b.startaddr += txfifosize.b.depth; txfifosize.b.depth = TX4_FIFO_HS_SIZE; USB_OTG_WRITE_REG32( &pdev->regs.GREGS->DIEPTXF[3], txfifosize.d32 ); /* EP5 TX*/ txfifosize.b.startaddr += txfifosize.b.depth; txfifosize.b.depth = TX5_FIFO_HS_SIZE; USB_OTG_WRITE_REG32( &pdev->regs.GREGS->DIEPTXF[4], txfifosize.d32 ); } #endif /* Flush the FIFOs */ USB_OTG_FlushTxFifo(pdev , 0x10); /* all Tx FIFOs */ USB_OTG_FlushRxFifo(pdev); /* Clear all pending Device Interrupts */ USB_OTG_WRITE_REG32( &pdev->regs.DREGS->DIEPMSK, 0 ); USB_OTG_WRITE_REG32( &pdev->regs.DREGS->DOEPMSK, 0 ); USB_OTG_WRITE_REG32( &pdev->regs.DREGS->DAINT, 0xFFFFFFFF ); USB_OTG_WRITE_REG32( &pdev->regs.DREGS->DAINTMSK, 0 ); for (i = 0; i < pdev->cfg.dev_endpoints; i++) { depctl.d32 = USB_OTG_READ_REG32(&pdev->regs.INEP_REGS[i]->DIEPCTL); if (depctl.b.epena) { depctl.d32 = 0; depctl.b.epdis = 1; depctl.b.snak = 1; } else { depctl.d32 = 0; } USB_OTG_WRITE_REG32( &pdev->regs.INEP_REGS[i]->DIEPCTL, depctl.d32); USB_OTG_WRITE_REG32( &pdev->regs.INEP_REGS[i]->DIEPTSIZ, 0); USB_OTG_WRITE_REG32( &pdev->regs.INEP_REGS[i]->DIEPINT, 0xFF); } for (i = 0; i < pdev->cfg.dev_endpoints; i++) { USB_OTG_DEPCTL_TypeDef depctl; depctl.d32 = USB_OTG_READ_REG32(&pdev->regs.OUTEP_REGS[i]->DOEPCTL); if (depctl.b.epena) { depctl.d32 = 0; depctl.b.epdis = 1; depctl.b.snak = 1; } else { depctl.d32 = 0; } USB_OTG_WRITE_REG32( &pdev->regs.OUTEP_REGS[i]->DOEPCTL, depctl.d32); USB_OTG_WRITE_REG32( &pdev->regs.OUTEP_REGS[i]->DOEPTSIZ, 0); USB_OTG_WRITE_REG32( &pdev->regs.OUTEP_REGS[i]->DOEPINT, 0xFF); } msk.d32 = 0; msk.b.txfifoundrn = 1; USB_OTG_MODIFY_REG32(&pdev->regs.DREGS->DIEPMSK, msk.d32, msk.d32); if (pdev->cfg.dma_enable == 1) { dthrctl.d32 = 0; dthrctl.b.non_iso_thr_en = 1; dthrctl.b.iso_thr_en = 1; dthrctl.b.tx_thr_len = 64; dthrctl.b.rx_thr_en = 1; dthrctl.b.rx_thr_len = 64; USB_OTG_WRITE_REG32(&pdev->regs.DREGS->DTHRCTL, dthrctl.d32); } USB_OTG_EnableDevInt(pdev); return status; } /** * @brief USB_OTG_EnableDevInt : Enables the Device mode interrupts * @param pdev : Selected device * @retval USB_OTG_STS : status */ USB_OTG_STS USB_OTG_EnableDevInt(USB_OTG_CORE_HANDLE *pdev) { USB_OTG_STS status = USB_OTG_OK; USB_OTG_GINTMSK_TypeDef intmsk; intmsk.d32 = 0; /* Disable all interrupts. */ USB_OTG_WRITE_REG32( &pdev->regs.GREGS->GINTMSK, 0); /* Clear any pending interrupts */ USB_OTG_WRITE_REG32( &pdev->regs.GREGS->GINTSTS, 0xFFFFFFFF); /* Enable the common interrupts */ USB_OTG_EnableCommonInt(pdev); if (pdev->cfg.dma_enable == 0) { intmsk.b.rxstsqlvl = 1; } /* Enable interrupts matching to the Device mode ONLY */ intmsk.b.usbsuspend = 1; intmsk.b.usbreset = 1; intmsk.b.enumdone = 1; intmsk.b.inepintr = 1; intmsk.b.outepintr = 1; intmsk.b.sofintr = 1; intmsk.b.incomplisoin = 1; intmsk.b.incomplisoout = 1; #ifdef VBUS_SENSING_ENABLED intmsk.b.sessreqintr = 1; intmsk.b.otgintr = 1; #endif USB_OTG_MODIFY_REG32( &pdev->regs.GREGS->GINTMSK, intmsk.d32, intmsk.d32); return status; } /** * @brief USB_OTG_GetDeviceSpeed * Get the device speed from the device status register * @param None * @retval status */ enum USB_OTG_SPEED USB_OTG_GetDeviceSpeed (USB_OTG_CORE_HANDLE *pdev) { USB_OTG_DSTS_TypeDef dsts; enum USB_OTG_SPEED speed = USB_SPEED_UNKNOWN; dsts.d32 = USB_OTG_READ_REG32(&pdev->regs.DREGS->DSTS); switch (dsts.b.enumspd) { case DSTS_ENUMSPD_HS_PHY_30MHZ_OR_60MHZ: speed = USB_SPEED_HIGH; break; case DSTS_ENUMSPD_FS_PHY_30MHZ_OR_60MHZ: case DSTS_ENUMSPD_FS_PHY_48MHZ: speed = USB_SPEED_FULL; break; case DSTS_ENUMSPD_LS_PHY_6MHZ: speed = USB_SPEED_LOW; break; } return speed; } /** * @brief enables EP0 OUT to receive SETUP packets and configures EP0 * for transmitting packets * @param None * @retval USB_OTG_STS : status */ USB_OTG_STS USB_OTG_EP0Activate(USB_OTG_CORE_HANDLE *pdev) { USB_OTG_STS status = USB_OTG_OK; USB_OTG_DSTS_TypeDef dsts; USB_OTG_DEPCTL_TypeDef diepctl; USB_OTG_DCTL_TypeDef dctl; dctl.d32 = 0; /* Read the Device Status and Endpoint 0 Control registers */ dsts.d32 = USB_OTG_READ_REG32(&pdev->regs.DREGS->DSTS); diepctl.d32 = USB_OTG_READ_REG32(&pdev->regs.INEP_REGS[0]->DIEPCTL); /* Set the MPS of the IN EP based on the enumeration speed */ switch (dsts.b.enumspd) { case DSTS_ENUMSPD_HS_PHY_30MHZ_OR_60MHZ: case DSTS_ENUMSPD_FS_PHY_30MHZ_OR_60MHZ: case DSTS_ENUMSPD_FS_PHY_48MHZ: diepctl.b.mps = DEP0CTL_MPS_64; break; case DSTS_ENUMSPD_LS_PHY_6MHZ: diepctl.b.mps = DEP0CTL_MPS_8; break; } USB_OTG_WRITE_REG32(&pdev->regs.INEP_REGS[0]->DIEPCTL, diepctl.d32); dctl.b.cgnpinnak = 1; USB_OTG_MODIFY_REG32(&pdev->regs.DREGS->DCTL, dctl.d32, dctl.d32); return status; } /** * @brief USB_OTG_EPActivate : Activates an EP * @param pdev : Selected device * @retval USB_OTG_STS : status */ USB_OTG_STS USB_OTG_EPActivate(USB_OTG_CORE_HANDLE *pdev , USB_OTG_EP *ep) { USB_OTG_STS status = USB_OTG_OK; USB_OTG_DEPCTL_TypeDef depctl; USB_OTG_DAINT_TypeDef daintmsk; __IO uint32_t *addr; depctl.d32 = 0; daintmsk.d32 = 0; /* Read DEPCTLn register */ if (ep->is_in == 1) { addr = &pdev->regs.INEP_REGS[ep->num]->DIEPCTL; daintmsk.ep.in = 1 << ep->num; } else { addr = &pdev->regs.OUTEP_REGS[ep->num]->DOEPCTL; daintmsk.ep.out = 1 << ep->num; } /* If the EP is already active don't change the EP Control * register. */ depctl.d32 = USB_OTG_READ_REG32(addr); if (!depctl.b.usbactep) { depctl.b.mps = ep->maxpacket; depctl.b.eptype = ep->type; depctl.b.txfnum = ep->tx_fifo_num; depctl.b.setd0pid = 1; depctl.b.usbactep = 1; USB_OTG_WRITE_REG32(addr, depctl.d32); } /* Enable the Interrupt for this EP */ #ifdef USB_OTG_HS_DEDICATED_EP1_ENABLED if((ep->num == 1)&&(pdev->cfg.coreID == USB_OTG_HS_CORE_ID)) { USB_OTG_MODIFY_REG32(&pdev->regs.DREGS->DEACHMSK, 0, daintmsk.d32); } else #endif USB_OTG_MODIFY_REG32(&pdev->regs.DREGS->DAINTMSK, 0, daintmsk.d32); return status; } /** * @brief USB_OTG_EPDeactivate : Deactivates an EP * @param pdev : Selected device * @retval USB_OTG_STS : status */ USB_OTG_STS USB_OTG_EPDeactivate(USB_OTG_CORE_HANDLE *pdev , USB_OTG_EP *ep) { USB_OTG_STS status = USB_OTG_OK; USB_OTG_DEPCTL_TypeDef depctl; USB_OTG_DAINT_TypeDef daintmsk; __IO uint32_t *addr; depctl.d32 = 0; daintmsk.d32 = 0; /* Read DEPCTLn register */ if (ep->is_in == 1) { addr = &pdev->regs.INEP_REGS[ep->num]->DIEPCTL; daintmsk.ep.in = 1 << ep->num; } else { addr = &pdev->regs.OUTEP_REGS[ep->num]->DOEPCTL; daintmsk.ep.out = 1 << ep->num; } depctl.b.usbactep = 0; USB_OTG_WRITE_REG32(addr, depctl.d32); /* Disable the Interrupt for this EP */ #ifdef USB_OTG_HS_DEDICATED_EP1_ENABLED if((ep->num == 1)&&(pdev->cfg.coreID == USB_OTG_HS_CORE_ID)) { USB_OTG_MODIFY_REG32(&pdev->regs.DREGS->DEACHMSK, daintmsk.d32, 0); } else #endif USB_OTG_MODIFY_REG32(&pdev->regs.DREGS->DAINTMSK, daintmsk.d32, 0); return status; } /** * @brief USB_OTG_EPStartXfer : Handle the setup for data xfer for an EP and * starts the xfer * @param pdev : Selected device * @retval USB_OTG_STS : status */ USB_OTG_STS USB_OTG_EPStartXfer(USB_OTG_CORE_HANDLE *pdev , USB_OTG_EP *ep) { USB_OTG_STS status = USB_OTG_OK; USB_OTG_DEPCTL_TypeDef depctl; USB_OTG_DEPXFRSIZ_TypeDef deptsiz; USB_OTG_DSTS_TypeDef dsts; uint32_t fifoemptymsk = 0; depctl.d32 = 0; deptsiz.d32 = 0; /* IN endpoint */ if (ep->is_in == 1) { depctl.d32 = USB_OTG_READ_REG32(&(pdev->regs.INEP_REGS[ep->num]->DIEPCTL)); deptsiz.d32 = USB_OTG_READ_REG32(&(pdev->regs.INEP_REGS[ep->num]->DIEPTSIZ)); /* Zero Length Packet? */ if (ep->xfer_len == 0) { deptsiz.b.xfersize = 0; deptsiz.b.pktcnt = 1; } else { /* Program the transfer size and packet count * as follows: xfersize = N * maxpacket + * short_packet pktcnt = N + (short_packet * exist ? 1 : 0) */ deptsiz.b.xfersize = ep->xfer_len; deptsiz.b.pktcnt = (ep->xfer_len - 1 + ep->maxpacket) / ep->maxpacket; if (ep->type == EP_TYPE_ISOC) { deptsiz.b.mc = 1; } } USB_OTG_WRITE_REG32(&pdev->regs.INEP_REGS[ep->num]->DIEPTSIZ, deptsiz.d32); if (pdev->cfg.dma_enable == 1) { USB_OTG_WRITE_REG32(&pdev->regs.INEP_REGS[ep->num]->DIEPDMA, ep->dma_addr); } else { if (ep->type != EP_TYPE_ISOC) { /* Enable the Tx FIFO Empty Interrupt for this EP */ if (ep->xfer_len > 0) { fifoemptymsk = 1 << ep->num; USB_OTG_MODIFY_REG32(&pdev->regs.DREGS->DIEPEMPMSK, 0, fifoemptymsk); } } } if (ep->type == EP_TYPE_ISOC) { dsts.d32 = USB_OTG_READ_REG32(&pdev->regs.DREGS->DSTS); if (((dsts.b.soffn)&0x1) == 0) { depctl.b.setd1pid = 1; } else { depctl.b.setd0pid = 1; } } /* EP enable, IN data in FIFO */ depctl.b.cnak = 1; depctl.b.epena = 1; USB_OTG_WRITE_REG32(&pdev->regs.INEP_REGS[ep->num]->DIEPCTL, depctl.d32); if (ep->type == EP_TYPE_ISOC) { USB_OTG_WritePacket(pdev, ep->xfer_buff, ep->num, ep->xfer_len); } } else { /* OUT endpoint */ depctl.d32 = USB_OTG_READ_REG32(&(pdev->regs.OUTEP_REGS[ep->num]->DOEPCTL)); deptsiz.d32 = USB_OTG_READ_REG32(&(pdev->regs.OUTEP_REGS[ep->num]->DOEPTSIZ)); /* Program the transfer size and packet count as follows: * pktcnt = N * xfersize = N * maxpacket */ if (ep->xfer_len == 0) { deptsiz.b.xfersize = ep->maxpacket; deptsiz.b.pktcnt = 1; } else { deptsiz.b.pktcnt = (ep->xfer_len + (ep->maxpacket - 1)) / ep->maxpacket; deptsiz.b.xfersize = deptsiz.b.pktcnt * ep->maxpacket; } USB_OTG_WRITE_REG32(&pdev->regs.OUTEP_REGS[ep->num]->DOEPTSIZ, deptsiz.d32); if (pdev->cfg.dma_enable == 1) { USB_OTG_WRITE_REG32(&pdev->regs.OUTEP_REGS[ep->num]->DOEPDMA, ep->dma_addr); } if (ep->type == EP_TYPE_ISOC) { if (ep->even_odd_frame) { depctl.b.setd1pid = 1; } else { depctl.b.setd0pid = 1; } } /* EP enable */ depctl.b.cnak = 1; depctl.b.epena = 1; USB_OTG_WRITE_REG32(&pdev->regs.OUTEP_REGS[ep->num]->DOEPCTL, depctl.d32); } return status; } /** * @brief USB_OTG_EP0StartXfer : Handle the setup for a data xfer for EP0 and * starts the xfer * @param pdev : Selected device * @retval USB_OTG_STS : status */ USB_OTG_STS USB_OTG_EP0StartXfer(USB_OTG_CORE_HANDLE *pdev , USB_OTG_EP *ep) { USB_OTG_STS status = USB_OTG_OK; USB_OTG_DEPCTL_TypeDef depctl; USB_OTG_DEP0XFRSIZ_TypeDef deptsiz; USB_OTG_INEPREGS *in_regs; uint32_t fifoemptymsk = 0; depctl.d32 = 0; deptsiz.d32 = 0; /* IN endpoint */ if (ep->is_in == 1) { in_regs = pdev->regs.INEP_REGS[0]; depctl.d32 = USB_OTG_READ_REG32(&in_regs->DIEPCTL); deptsiz.d32 = USB_OTG_READ_REG32(&in_regs->DIEPTSIZ); /* Zero Length Packet? */ if (ep->xfer_len == 0) { deptsiz.b.xfersize = 0; deptsiz.b.pktcnt = 1; } else { if (ep->xfer_len > ep->maxpacket) { ep->xfer_len = ep->maxpacket; deptsiz.b.xfersize = ep->maxpacket; } else { deptsiz.b.xfersize = ep->xfer_len; } deptsiz.b.pktcnt = 1; } USB_OTG_WRITE_REG32(&in_regs->DIEPTSIZ, deptsiz.d32); if (pdev->cfg.dma_enable == 1) { USB_OTG_WRITE_REG32(&pdev->regs.INEP_REGS[ep->num]->DIEPDMA, ep->dma_addr); } /* EP enable, IN data in FIFO */ depctl.b.cnak = 1; depctl.b.epena = 1; USB_OTG_WRITE_REG32(&in_regs->DIEPCTL, depctl.d32); if (pdev->cfg.dma_enable == 0) { /* Enable the Tx FIFO Empty Interrupt for this EP */ if (ep->xfer_len > 0) { { fifoemptymsk |= 1 << ep->num; USB_OTG_MODIFY_REG32(&pdev->regs.DREGS->DIEPEMPMSK, 0, fifoemptymsk); } } } } else { /* OUT endpoint */ depctl.d32 = USB_OTG_READ_REG32(&pdev->regs.OUTEP_REGS[ep->num]->DOEPCTL); deptsiz.d32 = USB_OTG_READ_REG32(&pdev->regs.OUTEP_REGS[ep->num]->DOEPTSIZ); /* Program the transfer size and packet count as follows: * xfersize = N * (maxpacket + 4 - (maxpacket % 4)) * pktcnt = N */ if (ep->xfer_len == 0) { deptsiz.b.xfersize = ep->maxpacket; deptsiz.b.pktcnt = 1; } else { ep->xfer_len = ep->maxpacket; deptsiz.b.xfersize = ep->maxpacket; deptsiz.b.pktcnt = 1; } USB_OTG_WRITE_REG32(&pdev->regs.OUTEP_REGS[ep->num]->DOEPTSIZ, deptsiz.d32); if (pdev->cfg.dma_enable == 1) { USB_OTG_WRITE_REG32(&pdev->regs.OUTEP_REGS[ep->num]->DOEPDMA, ep->dma_addr); } /* EP enable */ depctl.b.cnak = 1; depctl.b.epena = 1; USB_OTG_WRITE_REG32 (&(pdev->regs.OUTEP_REGS[ep->num]->DOEPCTL), depctl.d32); } return status; } /** * @brief USB_OTG_EPSetStall : Set the EP STALL * @param pdev : Selected device * @retval USB_OTG_STS : status */ USB_OTG_STS USB_OTG_EPSetStall(USB_OTG_CORE_HANDLE *pdev , USB_OTG_EP *ep) { USB_OTG_STS status = USB_OTG_OK; USB_OTG_DEPCTL_TypeDef depctl; __IO uint32_t *depctl_addr; depctl.d32 = 0; if (ep->is_in == 1) { depctl_addr = &(pdev->regs.INEP_REGS[ep->num]->DIEPCTL); depctl.d32 = USB_OTG_READ_REG32(depctl_addr); /* set the disable and stall bits */ if (depctl.b.epena) { depctl.b.epdis = 1; } depctl.b.stall = 1; USB_OTG_WRITE_REG32(depctl_addr, depctl.d32); } else { depctl_addr = &(pdev->regs.OUTEP_REGS[ep->num]->DOEPCTL); depctl.d32 = USB_OTG_READ_REG32(depctl_addr); /* set the stall bit */ depctl.b.stall = 1; USB_OTG_WRITE_REG32(depctl_addr, depctl.d32); } return status; } /** * @brief Clear the EP STALL * @param pdev : Selected device * @retval USB_OTG_STS : status */ USB_OTG_STS USB_OTG_EPClearStall(USB_OTG_CORE_HANDLE *pdev , USB_OTG_EP *ep) { USB_OTG_STS status = USB_OTG_OK; USB_OTG_DEPCTL_TypeDef depctl; __IO uint32_t *depctl_addr; depctl.d32 = 0; if (ep->is_in == 1) { depctl_addr = &(pdev->regs.INEP_REGS[ep->num]->DIEPCTL); } else { depctl_addr = &(pdev->regs.OUTEP_REGS[ep->num]->DOEPCTL); } depctl.d32 = USB_OTG_READ_REG32(depctl_addr); /* clear the stall bits */ depctl.b.stall = 0; if (ep->type == EP_TYPE_INTR || ep->type == EP_TYPE_BULK) { depctl.b.setd0pid = 1; /* DATA0 */ } USB_OTG_WRITE_REG32(depctl_addr, depctl.d32); return status; } /** * @brief USB_OTG_ReadDevAllOutEp_itr : returns OUT endpoint interrupt bits * @param pdev : Selected device * @retval OUT endpoint interrupt bits */ uint32_t USB_OTG_ReadDevAllOutEp_itr(USB_OTG_CORE_HANDLE *pdev) { uint32_t v; v = USB_OTG_READ_REG32(&pdev->regs.DREGS->DAINT); v &= USB_OTG_READ_REG32(&pdev->regs.DREGS->DAINTMSK); return ((v & 0xffff0000) >> 16); } /** * @brief USB_OTG_ReadDevOutEP_itr : returns Device OUT EP Interrupt register * @param pdev : Selected device * @param ep : end point number * @retval Device OUT EP Interrupt register */ uint32_t USB_OTG_ReadDevOutEP_itr(USB_OTG_CORE_HANDLE *pdev , uint8_t epnum) { uint32_t v; v = USB_OTG_READ_REG32(&pdev->regs.OUTEP_REGS[epnum]->DOEPINT); v &= USB_OTG_READ_REG32(&pdev->regs.DREGS->DOEPMSK); return v; } /** * @brief USB_OTG_ReadDevAllInEPItr : Get int status register * @param pdev : Selected device * @retval int status register */ uint32_t USB_OTG_ReadDevAllInEPItr(USB_OTG_CORE_HANDLE *pdev) { uint32_t v; v = USB_OTG_READ_REG32(&pdev->regs.DREGS->DAINT); v &= USB_OTG_READ_REG32(&pdev->regs.DREGS->DAINTMSK); return (v & 0xffff); } /** * @brief configures EPO to receive SETUP packets * @param None * @retval : None */ void USB_OTG_EP0_OutStart(USB_OTG_CORE_HANDLE *pdev) { USB_OTG_DEP0XFRSIZ_TypeDef doeptsize0; doeptsize0.d32 = 0; doeptsize0.b.supcnt = 3; doeptsize0.b.pktcnt = 1; doeptsize0.b.xfersize = 8 * 3; USB_OTG_WRITE_REG32( &pdev->regs.OUTEP_REGS[0]->DOEPTSIZ, doeptsize0.d32 ); if (pdev->cfg.dma_enable == 1) { USB_OTG_DEPCTL_TypeDef doepctl; doepctl.d32 = 0; USB_OTG_WRITE_REG32( &pdev->regs.OUTEP_REGS[0]->DOEPDMA, (uint32_t)&pdev->dev.setup_packet); /* EP enable */ doepctl.d32 = USB_OTG_READ_REG32(&pdev->regs.OUTEP_REGS[0]->DOEPCTL); doepctl.b.epena = 1; doepctl.d32 = 0x80008000; USB_OTG_WRITE_REG32( &pdev->regs.OUTEP_REGS[0]->DOEPCTL, doepctl.d32); } } /** * @brief USB_OTG_RemoteWakeup : active remote wakeup signalling * @param None * @retval : None */ void USB_OTG_ActiveRemoteWakeup(USB_OTG_CORE_HANDLE *pdev) { USB_OTG_DCTL_TypeDef dctl; USB_OTG_DSTS_TypeDef dsts; USB_OTG_PCGCCTL_TypeDef power; if (pdev->dev.DevRemoteWakeup) { dsts.d32 = USB_OTG_READ_REG32(&pdev->regs.DREGS->DSTS); if(dsts.b.suspsts == 1) { if(pdev->cfg.low_power) { /* un-gate USB Core clock */ power.d32 = USB_OTG_READ_REG32(pdev->regs.PCGCCTL); power.b.gatehclk = 0; power.b.stoppclk = 0; USB_OTG_WRITE_REG32(pdev->regs.PCGCCTL, power.d32); } /* active Remote wakeup signaling */ dctl.d32 = 0; dctl.b.rmtwkupsig = 1; USB_OTG_MODIFY_REG32(&pdev->regs.DREGS->DCTL, 0, dctl.d32); USB_OTG_BSP_mDelay(5); USB_OTG_MODIFY_REG32(&pdev->regs.DREGS->DCTL, dctl.d32, 0 ); } } } /** * @brief USB_OTG_UngateClock : active USB Core clock * @param None * @retval : None */ void USB_OTG_UngateClock(USB_OTG_CORE_HANDLE *pdev) { if(pdev->cfg.low_power) { USB_OTG_DSTS_TypeDef dsts; USB_OTG_PCGCCTL_TypeDef power; dsts.d32 = USB_OTG_READ_REG32(&pdev->regs.DREGS->DSTS); if(dsts.b.suspsts == 1) { /* un-gate USB Core clock */ power.d32 = USB_OTG_READ_REG32(pdev->regs.PCGCCTL); power.b.gatehclk = 0; power.b.stoppclk = 0; USB_OTG_WRITE_REG32(pdev->regs.PCGCCTL, power.d32); } } } /** * @brief Stop the device and clean up fifo's * @param None * @retval : None */ void USB_OTG_StopDevice(USB_OTG_CORE_HANDLE *pdev) { uint32_t i; pdev->dev.device_status = 1; for (i = 0; i < pdev->cfg.dev_endpoints ; i++) { USB_OTG_WRITE_REG32( &pdev->regs.INEP_REGS[i]->DIEPINT, 0xFF); USB_OTG_WRITE_REG32( &pdev->regs.OUTEP_REGS[i]->DOEPINT, 0xFF); } USB_OTG_WRITE_REG32( &pdev->regs.DREGS->DIEPMSK, 0 ); USB_OTG_WRITE_REG32( &pdev->regs.DREGS->DOEPMSK, 0 ); USB_OTG_WRITE_REG32( &pdev->regs.DREGS->DAINTMSK, 0 ); USB_OTG_WRITE_REG32( &pdev->regs.DREGS->DAINT, 0xFFFFFFFF ); /* Flush the FIFO */ USB_OTG_FlushRxFifo(pdev); USB_OTG_FlushTxFifo(pdev , 0x10 ); } /** * @brief returns the EP Status * @param pdev : Selected device * ep : endpoint structure * @retval : EP status */ uint32_t USB_OTG_GetEPStatus(USB_OTG_CORE_HANDLE *pdev ,USB_OTG_EP *ep) { USB_OTG_DEPCTL_TypeDef depctl; __IO uint32_t *depctl_addr; uint32_t Status = 0; depctl.d32 = 0; if (ep->is_in == 1) { depctl_addr = &(pdev->regs.INEP_REGS[ep->num]->DIEPCTL); depctl.d32 = USB_OTG_READ_REG32(depctl_addr); if (depctl.b.stall == 1) Status = USB_OTG_EP_TX_STALL; else if (depctl.b.naksts == 1) Status = USB_OTG_EP_TX_NAK; else Status = USB_OTG_EP_TX_VALID; } else { depctl_addr = &(pdev->regs.OUTEP_REGS[ep->num]->DOEPCTL); depctl.d32 = USB_OTG_READ_REG32(depctl_addr); if (depctl.b.stall == 1) Status = USB_OTG_EP_RX_STALL; else if (depctl.b.naksts == 1) Status = USB_OTG_EP_RX_NAK; else Status = USB_OTG_EP_RX_VALID; } /* Return the current status */ return Status; } /** * @brief Set the EP Status * @param pdev : Selected device * Status : new Status * ep : EP structure * @retval : None */ void USB_OTG_SetEPStatus (USB_OTG_CORE_HANDLE *pdev , USB_OTG_EP *ep , uint32_t Status) { USB_OTG_DEPCTL_TypeDef depctl; __IO uint32_t *depctl_addr; depctl.d32 = 0; /* Process for IN endpoint */ if (ep->is_in == 1) { depctl_addr = &(pdev->regs.INEP_REGS[ep->num]->DIEPCTL); depctl.d32 = USB_OTG_READ_REG32(depctl_addr); if (Status == USB_OTG_EP_TX_STALL) { USB_OTG_EPSetStall(pdev, ep); return; } else if (Status == USB_OTG_EP_TX_NAK) depctl.b.snak = 1; else if (Status == USB_OTG_EP_TX_VALID) { if (depctl.b.stall == 1) { ep->even_odd_frame = 0; USB_OTG_EPClearStall(pdev, ep); return; } depctl.b.cnak = 1; depctl.b.usbactep = 1; depctl.b.epena = 1; } else if (Status == USB_OTG_EP_TX_DIS) depctl.b.usbactep = 0; } else /* Process for OUT endpoint */ { depctl_addr = &(pdev->regs.OUTEP_REGS[ep->num]->DOEPCTL); depctl.d32 = USB_OTG_READ_REG32(depctl_addr); if (Status == USB_OTG_EP_RX_STALL) { depctl.b.stall = 1; } else if (Status == USB_OTG_EP_RX_NAK) depctl.b.snak = 1; else if (Status == USB_OTG_EP_RX_VALID) { if (depctl.b.stall == 1) { ep->even_odd_frame = 0; USB_OTG_EPClearStall(pdev, ep); return; } depctl.b.cnak = 1; depctl.b.usbactep = 1; depctl.b.epena = 1; } else if (Status == USB_OTG_EP_RX_DIS) { depctl.b.usbactep = 0; } } USB_OTG_WRITE_REG32(depctl_addr, depctl.d32); } #endif /** * @} */ /** * @} */ /** * @} */ /******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/ codec2-1.0.1/stm32/usb_lib/otg/usb_core.h000066400000000000000000000274451412132000500200020ustar00rootroot00000000000000/** ****************************************************************************** * @file usb_core.h * @author MCD Application Team * @version V2.0.0 * @date 22-July-2011 * @brief Header of the Core Layer ****************************************************************************** * @attention * * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE * TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY * DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING * FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. * *

© COPYRIGHT 2011 STMicroelectronics

****************************************************************************** */ /* Define to prevent recursive inclusion -------------------------------------*/ #ifndef __USB_CORE_H__ #define __USB_CORE_H__ /* Includes ------------------------------------------------------------------*/ #include "usb_conf.h" #include "usb_regs.h" #include "usb_defines.h" /** @addtogroup USB_OTG_DRIVER * @{ */ /** @defgroup USB_CORE * @brief usb otg driver core layer * @{ */ /** @defgroup USB_CORE_Exported_Defines * @{ */ #define USB_OTG_EP0_IDLE 0 #define USB_OTG_EP0_SETUP 1 #define USB_OTG_EP0_DATA_IN 2 #define USB_OTG_EP0_DATA_OUT 3 #define USB_OTG_EP0_STATUS_IN 4 #define USB_OTG_EP0_STATUS_OUT 5 #define USB_OTG_EP0_STALL 6 #define USB_OTG_EP_TX_DIS 0x0000 #define USB_OTG_EP_TX_STALL 0x0010 #define USB_OTG_EP_TX_NAK 0x0020 #define USB_OTG_EP_TX_VALID 0x0030 #define USB_OTG_EP_RX_DIS 0x0000 #define USB_OTG_EP_RX_STALL 0x1000 #define USB_OTG_EP_RX_NAK 0x2000 #define USB_OTG_EP_RX_VALID 0x3000 /** * @} */ #define MAX_DATA_LENGTH 0xFF /** @defgroup USB_CORE_Exported_Types * @{ */ typedef enum { USB_OTG_OK = 0, USB_OTG_FAIL }USB_OTG_STS; typedef enum { HC_IDLE = 0, HC_XFRC, HC_HALTED, HC_NAK, HC_NYET, HC_STALL, HC_XACTERR, HC_BBLERR, HC_DATATGLERR, }HC_STATUS; typedef enum { URB_IDLE = 0, URB_DONE, URB_NOTREADY, URB_ERROR, URB_STALL }URB_STATE; typedef enum { CTRL_START = 0, CTRL_XFRC, CTRL_HALTED, CTRL_NAK, CTRL_STALL, CTRL_XACTERR, CTRL_BBLERR, CTRL_DATATGLERR, CTRL_FAIL }CTRL_STATUS; typedef struct USB_OTG_hc { uint8_t dev_addr ; uint8_t ep_num; uint8_t ep_is_in; uint8_t speed; uint8_t do_ping; uint8_t ep_type; uint16_t max_packet; uint8_t data_pid; uint8_t *xfer_buff; uint32_t xfer_len; uint32_t xfer_count; uint8_t toggle_in; uint8_t toggle_out; uint32_t dma_addr; } USB_OTG_HC , *PUSB_OTG_HC; typedef struct USB_OTG_ep { uint8_t num; uint8_t is_in; uint8_t is_stall; uint8_t type; uint8_t data_pid_start; uint8_t even_odd_frame; uint16_t tx_fifo_num; uint32_t maxpacket; /* transaction level variables*/ uint8_t *xfer_buff; uint32_t dma_addr; uint32_t xfer_len; uint32_t xfer_count; /* Transfer level variables*/ uint32_t rem_data_len; uint32_t total_data_len; uint32_t ctl_data_len; } USB_OTG_EP , *PUSB_OTG_EP; typedef struct USB_OTG_core_cfg { uint8_t host_channels; uint8_t dev_endpoints; uint8_t speed; uint8_t dma_enable; uint16_t mps; uint16_t TotalFifoSize; uint8_t phy_itface; uint8_t Sof_output; uint8_t low_power; uint8_t coreID; } USB_OTG_CORE_CFGS, *PUSB_OTG_CORE_CFGS; typedef struct usb_setup_req { uint8_t bmRequest; uint8_t bRequest; uint16_t wValue; uint16_t wIndex; uint16_t wLength; } USB_SETUP_REQ; typedef struct _Device_TypeDef { uint8_t *(*GetDeviceDescriptor)( uint8_t speed , uint16_t *length); uint8_t *(*GetLangIDStrDescriptor)( uint8_t speed , uint16_t *length); uint8_t *(*GetManufacturerStrDescriptor)( uint8_t speed , uint16_t *length); uint8_t *(*GetProductStrDescriptor)( uint8_t speed , uint16_t *length); uint8_t *(*GetSerialStrDescriptor)( uint8_t speed , uint16_t *length); uint8_t *(*GetConfigurationStrDescriptor)( uint8_t speed , uint16_t *length); uint8_t *(*GetInterfaceStrDescriptor)( uint8_t speed , uint16_t *length); } USBD_DEVICE, *pUSBD_DEVICE; typedef struct USB_OTG_hPort { void (*Disconnect) (void *phost); void (*Connect) (void *phost); uint8_t ConnStatus; uint8_t DisconnStatus; uint8_t ConnHandled; uint8_t DisconnHandled; } USB_OTG_hPort_TypeDef; typedef struct _Device_cb { uint8_t (*Init) (void *pdev , uint8_t cfgidx); uint8_t (*DeInit) (void *pdev , uint8_t cfgidx); /* Control Endpoints*/ uint8_t (*Setup) (void *pdev , USB_SETUP_REQ *req); uint8_t (*EP0_TxSent) (void *pdev ); uint8_t (*EP0_RxReady) (void *pdev ); /* Class Specific Endpoints*/ uint8_t (*DataIn) (void *pdev , uint8_t epnum); uint8_t (*DataOut) (void *pdev , uint8_t epnum); uint8_t (*SOF) (void *pdev); uint8_t (*IsoINIncomplete) (void *pdev); uint8_t (*IsoOUTIncomplete) (void *pdev); uint8_t *(*GetConfigDescriptor)( uint8_t speed , uint16_t *length); #ifdef USB_OTG_HS_CORE uint8_t *(*GetOtherConfigDescriptor)( uint8_t speed , uint16_t *length); #endif #ifdef USB_SUPPORT_USER_STRING_DESC uint8_t *(*GetUsrStrDescriptor)( uint8_t speed ,uint8_t index, uint16_t *length); #endif } USBD_Class_cb_TypeDef; typedef struct _USBD_USR_PROP { void (*Init)(void); void (*DeviceReset)(uint8_t speed); void (*DeviceConfigured)(void); void (*DeviceSuspended)(void); void (*DeviceResumed)(void); void (*DeviceConnected)(void); void (*DeviceDisconnected)(void); } USBD_Usr_cb_TypeDef; typedef struct _DCD { uint8_t device_config; uint8_t device_state; uint8_t device_status; uint8_t device_address; uint32_t DevRemoteWakeup; USB_OTG_EP in_ep [USB_OTG_MAX_TX_FIFOS]; USB_OTG_EP out_ep [USB_OTG_MAX_TX_FIFOS]; uint8_t setup_packet [8*3]; USBD_Class_cb_TypeDef *class_cb; USBD_Usr_cb_TypeDef *usr_cb; USBD_DEVICE *usr_device; uint8_t *pConfig_descriptor; } DCD_DEV , *DCD_PDEV; typedef struct _HCD { uint8_t Rx_Buffer [MAX_DATA_LENGTH]; __IO uint32_t ConnSts; __IO uint32_t ErrCnt[USB_OTG_MAX_TX_FIFOS]; __IO uint32_t XferCnt[USB_OTG_MAX_TX_FIFOS]; __IO HC_STATUS HC_Status[USB_OTG_MAX_TX_FIFOS]; __IO URB_STATE URB_State[USB_OTG_MAX_TX_FIFOS]; USB_OTG_HC hc [USB_OTG_MAX_TX_FIFOS]; uint16_t channel [USB_OTG_MAX_TX_FIFOS]; USB_OTG_hPort_TypeDef *port_cb; } HCD_DEV , *USB_OTG_USBH_PDEV; typedef struct _OTG { uint8_t OTG_State; uint8_t OTG_PrevState; uint8_t OTG_Mode; } OTG_DEV , *USB_OTG_USBO_PDEV; typedef struct USB_OTG_handle { USB_OTG_CORE_CFGS cfg; USB_OTG_CORE_REGS regs; #ifdef USE_DEVICE_MODE DCD_DEV dev; #endif #ifdef USE_HOST_MODE HCD_DEV host; #endif #ifdef USE_OTG_MODE OTG_DEV otg; #endif } USB_OTG_CORE_HANDLE , *PUSB_OTG_CORE_HANDLE; /** * @} */ /** @defgroup USB_CORE_Exported_Macros * @{ */ /** * @} */ /** @defgroup USB_CORE_Exported_Variables * @{ */ /** * @} */ /** @defgroup USB_CORE_Exported_FunctionsPrototype * @{ */ USB_OTG_STS USB_OTG_CoreInit (USB_OTG_CORE_HANDLE *pdev); USB_OTG_STS USB_OTG_SelectCore (USB_OTG_CORE_HANDLE *pdev, USB_OTG_CORE_ID_TypeDef coreID); USB_OTG_STS USB_OTG_EnableGlobalInt (USB_OTG_CORE_HANDLE *pdev); USB_OTG_STS USB_OTG_DisableGlobalInt(USB_OTG_CORE_HANDLE *pdev); void* USB_OTG_ReadPacket (USB_OTG_CORE_HANDLE *pdev , uint8_t *dest, uint16_t len); USB_OTG_STS USB_OTG_WritePacket (USB_OTG_CORE_HANDLE *pdev , uint8_t *src, uint8_t ch_ep_num, uint16_t len); USB_OTG_STS USB_OTG_FlushTxFifo (USB_OTG_CORE_HANDLE *pdev , uint32_t num); USB_OTG_STS USB_OTG_FlushRxFifo (USB_OTG_CORE_HANDLE *pdev); uint32_t USB_OTG_ReadCoreItr (USB_OTG_CORE_HANDLE *pdev); uint32_t USB_OTG_ReadOtgItr (USB_OTG_CORE_HANDLE *pdev); uint8_t USB_OTG_IsHostMode (USB_OTG_CORE_HANDLE *pdev); uint8_t USB_OTG_IsDeviceMode (USB_OTG_CORE_HANDLE *pdev); uint32_t USB_OTG_GetMode (USB_OTG_CORE_HANDLE *pdev); USB_OTG_STS USB_OTG_PhyInit (USB_OTG_CORE_HANDLE *pdev); USB_OTG_STS USB_OTG_SetCurrentMode (USB_OTG_CORE_HANDLE *pdev, uint8_t mode); /*********************** HOST APIs ********************************************/ #ifdef USE_HOST_MODE USB_OTG_STS USB_OTG_CoreInitHost (USB_OTG_CORE_HANDLE *pdev); USB_OTG_STS USB_OTG_EnableHostInt (USB_OTG_CORE_HANDLE *pdev); USB_OTG_STS USB_OTG_HC_Init (USB_OTG_CORE_HANDLE *pdev, uint8_t hc_num); USB_OTG_STS USB_OTG_HC_Halt (USB_OTG_CORE_HANDLE *pdev, uint8_t hc_num); USB_OTG_STS USB_OTG_HC_StartXfer (USB_OTG_CORE_HANDLE *pdev, uint8_t hc_num); USB_OTG_STS USB_OTG_HC_DoPing (USB_OTG_CORE_HANDLE *pdev , uint8_t hc_num); uint32_t USB_OTG_ReadHostAllChannels_intr (USB_OTG_CORE_HANDLE *pdev); uint32_t USB_OTG_ResetPort (USB_OTG_CORE_HANDLE *pdev); uint32_t USB_OTG_ReadHPRT0 (USB_OTG_CORE_HANDLE *pdev); void USB_OTG_DriveVbus (USB_OTG_CORE_HANDLE *pdev, uint8_t state); void USB_OTG_InitFSLSPClkSel (USB_OTG_CORE_HANDLE *pdev ,uint8_t freq); uint8_t USB_OTG_IsEvenFrame (USB_OTG_CORE_HANDLE *pdev) ; void USB_OTG_StopHost (USB_OTG_CORE_HANDLE *pdev); #endif /********************* DEVICE APIs ********************************************/ #ifdef USE_DEVICE_MODE USB_OTG_STS USB_OTG_CoreInitDev (USB_OTG_CORE_HANDLE *pdev); USB_OTG_STS USB_OTG_EnableDevInt (USB_OTG_CORE_HANDLE *pdev); uint32_t USB_OTG_ReadDevAllInEPItr (USB_OTG_CORE_HANDLE *pdev); enum USB_OTG_SPEED USB_OTG_GetDeviceSpeed (USB_OTG_CORE_HANDLE *pdev); USB_OTG_STS USB_OTG_EP0Activate (USB_OTG_CORE_HANDLE *pdev); USB_OTG_STS USB_OTG_EPActivate (USB_OTG_CORE_HANDLE *pdev , USB_OTG_EP *ep); USB_OTG_STS USB_OTG_EPDeactivate(USB_OTG_CORE_HANDLE *pdev , USB_OTG_EP *ep); USB_OTG_STS USB_OTG_EPStartXfer (USB_OTG_CORE_HANDLE *pdev , USB_OTG_EP *ep); USB_OTG_STS USB_OTG_EP0StartXfer(USB_OTG_CORE_HANDLE *pdev , USB_OTG_EP *ep); USB_OTG_STS USB_OTG_EPSetStall (USB_OTG_CORE_HANDLE *pdev , USB_OTG_EP *ep); USB_OTG_STS USB_OTG_EPClearStall (USB_OTG_CORE_HANDLE *pdev , USB_OTG_EP *ep); uint32_t USB_OTG_ReadDevAllOutEp_itr (USB_OTG_CORE_HANDLE *pdev); uint32_t USB_OTG_ReadDevOutEP_itr (USB_OTG_CORE_HANDLE *pdev , uint8_t epnum); uint32_t USB_OTG_ReadDevAllInEPItr (USB_OTG_CORE_HANDLE *pdev); void USB_OTG_InitDevSpeed (USB_OTG_CORE_HANDLE *pdev , uint8_t speed); uint8_t USBH_IsEvenFrame (USB_OTG_CORE_HANDLE *pdev); void USB_OTG_EP0_OutStart(USB_OTG_CORE_HANDLE *pdev); void USB_OTG_ActiveRemoteWakeup(USB_OTG_CORE_HANDLE *pdev); void USB_OTG_UngateClock(USB_OTG_CORE_HANDLE *pdev); void USB_OTG_StopDevice(USB_OTG_CORE_HANDLE *pdev); void USB_OTG_SetEPStatus (USB_OTG_CORE_HANDLE *pdev , USB_OTG_EP *ep , uint32_t Status); uint32_t USB_OTG_GetEPStatus(USB_OTG_CORE_HANDLE *pdev ,USB_OTG_EP *ep); #endif /** * @} */ #endif /* __USB_CORE_H__ */ /** * @} */ /** * @} */ /******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/ codec2-1.0.1/stm32/usb_lib/otg/usb_dcd.c000066400000000000000000000220251412132000500175640ustar00rootroot00000000000000/** ****************************************************************************** * @file usb_dcd.c * @author MCD Application Team * @version V2.0.0 * @date 22-July-2011 * @brief Peripheral Device Interface Layer ****************************************************************************** * @attention * * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE * TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY * DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING * FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. * *

© COPYRIGHT 2011 STMicroelectronics

****************************************************************************** */ #include "usb_conf.h" #ifdef USE_DEVICE_MODE /* Includes ------------------------------------------------------------------*/ #include "usb_dcd.h" #include "usb_bsp.h" /** @addtogroup USB_OTG_DRIVER * @{ */ /** @defgroup USB_DCD * @brief This file is the interface between EFSL ans Host mass-storage class * @{ */ /** @defgroup USB_DCD_Private_Defines * @{ */ /** * @} */ /** @defgroup USB_DCD_Private_TypesDefinitions * @{ */ /** * @} */ /** @defgroup USB_DCD_Private_Macros * @{ */ /** * @} */ /** @defgroup USB_DCD_Private_Variables * @{ */ /** * @} */ /** @defgroup USB_DCD_Private_FunctionPrototypes * @{ */ /** * @} */ /** @defgroup USB_DCD_Private_Functions * @{ */ void DCD_Init(USB_OTG_CORE_HANDLE *pdev , USB_OTG_CORE_ID_TypeDef coreID) { uint32_t i; USB_OTG_EP *ep; USB_OTG_SelectCore (pdev , coreID); pdev->dev.device_status = USB_OTG_DEFAULT; pdev->dev.device_address = 0; /* Init ep structure */ for (i = 0; i < pdev->cfg.dev_endpoints ; i++) { ep = &pdev->dev.in_ep[i]; /* Init ep structure */ ep->is_in = 1; ep->num = i; ep->tx_fifo_num = i; /* Control until ep is actvated */ ep->type = EP_TYPE_CTRL; ep->maxpacket = USB_OTG_MAX_EP0_SIZE; ep->xfer_buff = 0; ep->xfer_len = 0; } for (i = 0; i < pdev->cfg.dev_endpoints; i++) { ep = &pdev->dev.out_ep[i]; /* Init ep structure */ ep->is_in = 0; ep->num = i; ep->tx_fifo_num = i; /* Control until ep is activated */ ep->type = EP_TYPE_CTRL; ep->maxpacket = USB_OTG_MAX_EP0_SIZE; ep->xfer_buff = 0; ep->xfer_len = 0; } USB_OTG_DisableGlobalInt(pdev); /*Init the Core (common init.) */ USB_OTG_CoreInit(pdev); /* Force Device Mode*/ USB_OTG_SetCurrentMode(pdev, DEVICE_MODE); /* Init Device */ USB_OTG_CoreInitDev(pdev); /* Enable USB Global interrupt */ USB_OTG_EnableGlobalInt(pdev); } /** * @brief Configure an EP * @param pdev : Device instance * @param epdesc : Endpoint Descriptor * @retval : status */ uint32_t DCD_EP_Open(USB_OTG_CORE_HANDLE *pdev , uint8_t ep_addr, uint16_t ep_mps, uint8_t ep_type) { USB_OTG_EP *ep; if ((ep_addr & 0x80) == 0x80) { ep = &pdev->dev.in_ep[ep_addr & 0x7F]; } else { ep = &pdev->dev.out_ep[ep_addr & 0x7F]; } ep->num = ep_addr & 0x7F; ep->is_in = (0x80 & ep_addr) != 0; ep->maxpacket = ep_mps; ep->type = ep_type; if (ep->is_in) { /* Assign a Tx FIFO */ ep->tx_fifo_num = ep->num; } /* Set initial data PID. */ if (ep_type == USB_OTG_EP_BULK ) { ep->data_pid_start = 0; } USB_OTG_EPActivate(pdev , ep ); return 0; } /** * @brief called when an EP is disabled * @param pdev: device instance * @param ep_addr: endpoint address * @retval : status */ uint32_t DCD_EP_Close(USB_OTG_CORE_HANDLE *pdev , uint8_t ep_addr) { USB_OTG_EP *ep; if ((ep_addr&0x80) == 0x80) { ep = &pdev->dev.in_ep[ep_addr & 0x7F]; } else { ep = &pdev->dev.out_ep[ep_addr & 0x7F]; } ep->num = ep_addr & 0x7F; ep->is_in = (0x80 & ep_addr) != 0; USB_OTG_EPDeactivate(pdev , ep ); return 0; } /** * @brief DCD_EP_PrepareRx * @param pdev: device instance * @param ep_addr: endpoint address * @param pbuf: pointer to Rx buffer * @param buf_len: data length * @retval : status */ uint32_t DCD_EP_PrepareRx( USB_OTG_CORE_HANDLE *pdev, uint8_t ep_addr, uint8_t *pbuf, uint16_t buf_len) { USB_OTG_EP *ep; ep = &pdev->dev.out_ep[ep_addr & 0x7F]; /*setup and start the Xfer */ ep->xfer_buff = pbuf; ep->xfer_len = buf_len; ep->xfer_count = 0; ep->is_in = 0; ep->num = ep_addr & 0x7F; if (pdev->cfg.dma_enable == 1) { ep->dma_addr = (uint32_t)pbuf; } if ( ep->num == 0 ) { USB_OTG_EP0StartXfer(pdev , ep); } else { USB_OTG_EPStartXfer(pdev, ep ); } return 0; } /** * @brief Transmit data over USB * @param pdev: device instance * @param ep_addr: endpoint address * @param pbuf: pointer to Tx buffer * @param buf_len: data length * @retval : status */ uint32_t DCD_EP_Tx ( USB_OTG_CORE_HANDLE *pdev, uint8_t ep_addr, uint8_t *pbuf, uint32_t buf_len) { USB_OTG_EP *ep; ep = &pdev->dev.in_ep[ep_addr & 0x7F]; /* Setup and start the Transfer */ ep->is_in = 1; ep->num = ep_addr & 0x7F; ep->xfer_buff = pbuf; ep->dma_addr = (uint32_t)pbuf; ep->xfer_count = 0; ep->xfer_len = buf_len; if ( ep->num == 0 ) { USB_OTG_EP0StartXfer(pdev , ep); } else { USB_OTG_EPStartXfer(pdev, ep ); } return 0; } /** * @brief Stall an endpoint. * @param pdev: device instance * @param epnum: endpoint address * @retval : status */ uint32_t DCD_EP_Stall (USB_OTG_CORE_HANDLE *pdev, uint8_t epnum) { USB_OTG_EP *ep; if ((0x80 & epnum) == 0x80) { ep = &pdev->dev.in_ep[epnum & 0x7F]; } else { ep = &pdev->dev.out_ep[epnum]; } ep->is_stall = 1; ep->num = epnum & 0x7F; ep->is_in = ((epnum & 0x80) == 0x80); USB_OTG_EPSetStall(pdev , ep); return (0); } /** * @brief Clear stall condition on endpoints. * @param pdev: device instance * @param epnum: endpoint address * @retval : status */ uint32_t DCD_EP_ClrStall (USB_OTG_CORE_HANDLE *pdev, uint8_t epnum) { USB_OTG_EP *ep; if ((0x80 & epnum) == 0x80) { ep = &pdev->dev.in_ep[epnum & 0x7F]; } else { ep = &pdev->dev.out_ep[epnum]; } ep->is_stall = 0; ep->num = epnum & 0x7F; ep->is_in = ((epnum & 0x80) == 0x80); USB_OTG_EPClearStall(pdev , ep); return (0); } /** * @brief This Function flushes the FIFOs. * @param pdev: device instance * @param epnum: endpoint address * @retval : status */ uint32_t DCD_EP_Flush (USB_OTG_CORE_HANDLE *pdev , uint8_t epnum) { if ((epnum & 0x80) == 0x80) { USB_OTG_FlushTxFifo(pdev, epnum & 0x7F); } else { USB_OTG_FlushRxFifo(pdev); } return (0); } /** * @brief This Function set USB device address * @param pdev: device instance * @param address: new device address * @retval : status */ void DCD_EP_SetAddress (USB_OTG_CORE_HANDLE *pdev, uint8_t address) { USB_OTG_DCFG_TypeDef dcfg; dcfg.d32 = 0; dcfg.b.devaddr = address; USB_OTG_MODIFY_REG32( &pdev->regs.DREGS->DCFG, 0, dcfg.d32); } /** * @brief Connect device (enable internal pull-up) * @param pdev: device instance * @retval : None */ void DCD_DevConnect (USB_OTG_CORE_HANDLE *pdev) { #ifndef USE_OTG_MODE USB_OTG_DCTL_TypeDef dctl; dctl.d32 = USB_OTG_READ_REG32(&pdev->regs.DREGS->DCTL); /* Connect device */ dctl.b.sftdiscon = 0; USB_OTG_WRITE_REG32(&pdev->regs.DREGS->DCTL, dctl.d32); USB_OTG_BSP_mDelay(3); #endif } /** * @brief Disconnect device (disable internal pull-up) * @param pdev: device instance * @retval : None */ void DCD_DevDisconnect (USB_OTG_CORE_HANDLE *pdev) { #ifndef USE_OTG_MODE USB_OTG_DCTL_TypeDef dctl; dctl.d32 = USB_OTG_READ_REG32(&pdev->regs.DREGS->DCTL); /* Disconnect device for 3ms */ dctl.b.sftdiscon = 1; USB_OTG_WRITE_REG32(&pdev->regs.DREGS->DCTL, dctl.d32); USB_OTG_BSP_mDelay(3); #endif } /** * @brief returns the EP Status * @param pdev : Selected device * epnum : endpoint address * @retval : EP status */ uint32_t DCD_GetEPStatus(USB_OTG_CORE_HANDLE *pdev ,uint8_t epnum) { USB_OTG_EP *ep; uint32_t Status = 0; if ((0x80 & epnum) == 0x80) { ep = &pdev->dev.in_ep[epnum & 0x7F]; } else { ep = &pdev->dev.out_ep[epnum]; } Status = USB_OTG_GetEPStatus(pdev ,ep); /* Return the current status */ return Status; } /** * @brief Set the EP Status * @param pdev : Selected device * Status : new Status * epnum : EP address * @retval : None */ void DCD_SetEPStatus (USB_OTG_CORE_HANDLE *pdev , uint8_t epnum , uint32_t Status) { USB_OTG_EP *ep; if ((0x80 & epnum) == 0x80) { ep = &pdev->dev.in_ep[epnum & 0x7F]; } else { ep = &pdev->dev.out_ep[epnum]; } USB_OTG_SetEPStatus(pdev ,ep , Status); } /** * @} */ /** * @} */ /** * @} */ #endif /******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/ codec2-1.0.1/stm32/usb_lib/otg/usb_dcd.h000066400000000000000000000104161412132000500175720ustar00rootroot00000000000000/** ****************************************************************************** * @file usb_dcd.h * @author MCD Application Team * @version V2.0.0 * @date 22-July-2011 * @brief Peripheral Driver Header file ****************************************************************************** * @attention * * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE * TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY * DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING * FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. * *

© COPYRIGHT 2011 STMicroelectronics

****************************************************************************** */ /* Define to prevent recursive inclusion -------------------------------------*/ #ifndef __DCD_H__ #define __DCD_H__ /* Includes ------------------------------------------------------------------*/ #include "usb_core.h" /** @addtogroup USB_OTG_DRIVER * @{ */ /** @defgroup USB_DCD * @brief This file is the * @{ */ /** @defgroup USB_DCD_Exported_Defines * @{ */ #define USB_OTG_EP_CONTROL 0 #define USB_OTG_EP_ISOC 1 #define USB_OTG_EP_BULK 2 #define USB_OTG_EP_INT 3 #define USB_OTG_EP_MASK 3 /* Device Status */ #define USB_OTG_DEFAULT 1 #define USB_OTG_ADDRESSED 2 #define USB_OTG_CONFIGURED 3 #define USB_OTG_SUSPENDED 4 /** * @} */ /** @defgroup USB_DCD_Exported_Types * @{ */ /******************************************************************************** Data structure type ********************************************************************************/ typedef struct { uint8_t bLength; uint8_t bDescriptorType; uint8_t bEndpointAddress; uint8_t bmAttributes; uint16_t wMaxPacketSize; uint8_t bInterval; } EP_DESCRIPTOR , *PEP_DESCRIPTOR; /** * @} */ /** @defgroup USB_DCD_Exported_Macros * @{ */ /** * @} */ /** @defgroup USB_DCD_Exported_Variables * @{ */ /** * @} */ /** @defgroup USB_DCD_Exported_FunctionsPrototype * @{ */ /******************************************************************************** EXPORTED FUNCTION FROM THE USB-OTG LAYER ********************************************************************************/ void DCD_Init(USB_OTG_CORE_HANDLE *pdev , USB_OTG_CORE_ID_TypeDef coreID); void DCD_DevConnect (USB_OTG_CORE_HANDLE *pdev); void DCD_DevDisconnect (USB_OTG_CORE_HANDLE *pdev); void DCD_EP_SetAddress (USB_OTG_CORE_HANDLE *pdev, uint8_t address); uint32_t DCD_EP_Open(USB_OTG_CORE_HANDLE *pdev , uint8_t ep_addr, uint16_t ep_mps, uint8_t ep_type); uint32_t DCD_EP_Close (USB_OTG_CORE_HANDLE *pdev, uint8_t ep_addr); uint32_t DCD_EP_PrepareRx ( USB_OTG_CORE_HANDLE *pdev, uint8_t ep_addr, uint8_t *pbuf, uint16_t buf_len); uint32_t DCD_EP_Tx (USB_OTG_CORE_HANDLE *pdev, uint8_t ep_addr, uint8_t *pbuf, uint32_t buf_len); uint32_t DCD_EP_Stall (USB_OTG_CORE_HANDLE *pdev, uint8_t epnum); uint32_t DCD_EP_ClrStall (USB_OTG_CORE_HANDLE *pdev, uint8_t epnum); uint32_t DCD_EP_Flush (USB_OTG_CORE_HANDLE *pdev, uint8_t epnum); uint32_t DCD_Handle_ISR(USB_OTG_CORE_HANDLE *pdev); uint32_t DCD_GetEPStatus(USB_OTG_CORE_HANDLE *pdev , uint8_t epnum); void DCD_SetEPStatus (USB_OTG_CORE_HANDLE *pdev , uint8_t epnum , uint32_t Status); /** * @} */ #endif //__DCD_H__ /** * @} */ /** * @} */ /******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/ codec2-1.0.1/stm32/usb_lib/otg/usb_dcd_int.c000066400000000000000000000522421412132000500204420ustar00rootroot00000000000000/** ****************************************************************************** * @file usb_dcd_int.c * @author MCD Application Team * @version V2.0.0 * @date 22-July-2011 * @brief Peripheral Device interrupt subroutines ****************************************************************************** * @attention * * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE * TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY * DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING * FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. * *

© COPYRIGHT 2011 STMicroelectronics

****************************************************************************** */ #include "usb_conf.h" #ifdef USE_DEVICE_MODE /* Includes ------------------------------------------------------------------*/ #include "usb_dcd_int.h" /** @addtogroup USB_OTG_DRIVER * @{ */ /** @defgroup USB_DCD_INT * @brief This file contains the interrupt subroutines for the Device mode. * @{ */ /** @defgroup USB_DCD_INT_Private_Defines * @{ */ /** * @} */ /** @defgroup USB_DCD_INT_Private_TypesDefinitions * @{ */ /** * @} */ /** @defgroup USB_DCD_INT_Private_Macros * @{ */ /** * @} */ /** @defgroup USB_DCD_INT_Private_Variables * @{ */ /** * @} */ /** @defgroup USB_DCD_INT_Private_FunctionPrototypes * @{ */ /* static functions */ static uint32_t DCD_ReadDevInEP (USB_OTG_CORE_HANDLE *pdev, uint8_t epnum); /* Interrupt Handlers */ static uint32_t DCD_HandleInEP_ISR(USB_OTG_CORE_HANDLE *pdev); static uint32_t DCD_HandleOutEP_ISR(USB_OTG_CORE_HANDLE *pdev); static uint32_t DCD_HandleSof_ISR(USB_OTG_CORE_HANDLE *pdev); static uint32_t DCD_HandleRxStatusQueueLevel_ISR(USB_OTG_CORE_HANDLE *pdev); static uint32_t DCD_WriteEmptyTxFifo(USB_OTG_CORE_HANDLE *pdev , uint32_t epnum); static uint32_t DCD_HandleUsbReset_ISR(USB_OTG_CORE_HANDLE *pdev); static uint32_t DCD_HandleEnumDone_ISR(USB_OTG_CORE_HANDLE *pdev); static uint32_t DCD_HandleResume_ISR(USB_OTG_CORE_HANDLE *pdev); static uint32_t DCD_HandleUSBSuspend_ISR(USB_OTG_CORE_HANDLE *pdev); static uint32_t DCD_IsoINIncomplete_ISR(USB_OTG_CORE_HANDLE *pdev); static uint32_t DCD_IsoOUTIncomplete_ISR(USB_OTG_CORE_HANDLE *pdev); #ifdef VBUS_SENSING_ENABLED static uint32_t DCD_SessionRequest_ISR(USB_OTG_CORE_HANDLE *pdev); static uint32_t DCD_OTG_ISR(USB_OTG_CORE_HANDLE *pdev); #endif /** * @} */ /** @defgroup USB_DCD_INT_Private_Functions * @{ */ #ifdef USB_OTG_HS_DEDICATED_EP1_ENABLED /** * @brief USBD_OTG_EP1OUT_ISR_Handler * handles all USB Interrupts * @param pdev: device instance * @retval status */ uint32_t USBD_OTG_EP1OUT_ISR_Handler (USB_OTG_CORE_HANDLE *pdev) { USB_OTG_DOEPINTn_TypeDef doepint; USB_OTG_DEPXFRSIZ_TypeDef deptsiz; doepint.d32 = USB_OTG_READ_REG32(&pdev->regs.OUTEP_REGS[1]->DOEPINT); doepint.d32&= USB_OTG_READ_REG32(&pdev->regs.DREGS->DOUTEP1MSK); /* Transfer complete */ if ( doepint.b.xfercompl ) { /* Clear the bit in DOEPINTn for this interrupt */ CLEAR_OUT_EP_INTR(1, xfercompl); if (pdev->cfg.dma_enable == 1) { deptsiz.d32 = USB_OTG_READ_REG32(&(pdev->regs.OUTEP_REGS[1]->DOEPTSIZ)); /*ToDo : handle more than one single MPS size packet */ pdev->dev.out_ep[1].xfer_count = pdev->dev.out_ep[1].maxpacket - \ deptsiz.b.xfersize; } /* Inform upper layer: data ready */ /* RX COMPLETE */ USBD_DCD_INT_fops->DataOutStage(pdev , 1); } /* Endpoint disable */ if ( doepint.b.epdisabled ) { /* Clear the bit in DOEPINTn for this interrupt */ CLEAR_OUT_EP_INTR(1, epdisabled); } /* AHB Error */ if ( doepint.b.ahberr ) { CLEAR_OUT_EP_INTR(1, ahberr); } return 1; } /** * @brief USBD_OTG_EP1IN_ISR_Handler * handles all USB Interrupts * @param pdev: device instance * @retval status */ uint32_t USBD_OTG_EP1IN_ISR_Handler (USB_OTG_CORE_HANDLE *pdev) { USB_OTG_DIEPINTn_TypeDef diepint; uint32_t fifoemptymsk, msk, emp; msk = USB_OTG_READ_REG32(&pdev->regs.DREGS->DINEP1MSK); emp = USB_OTG_READ_REG32(&pdev->regs.DREGS->DIEPEMPMSK); msk |= ((emp >> 1 ) & 0x1) << 7; diepint.d32 = USB_OTG_READ_REG32(&pdev->regs.INEP_REGS[1]->DIEPINT) & msk; if ( diepint.b.xfercompl ) { fifoemptymsk = 0x1 << 1; USB_OTG_MODIFY_REG32(&pdev->regs.DREGS->DIEPEMPMSK, fifoemptymsk, 0); CLEAR_IN_EP_INTR(1, xfercompl); /* TX COMPLETE */ USBD_DCD_INT_fops->DataInStage(pdev , 1); } if ( diepint.b.ahberr ) { CLEAR_IN_EP_INTR(1, ahberr); } if ( diepint.b.epdisabled ) { CLEAR_IN_EP_INTR(1, epdisabled); } if ( diepint.b.timeout ) { CLEAR_IN_EP_INTR(1, timeout); } if (diepint.b.intktxfemp) { CLEAR_IN_EP_INTR(1, intktxfemp); } if (diepint.b.intknepmis) { CLEAR_IN_EP_INTR(1, intknepmis); } if (diepint.b.inepnakeff) { CLEAR_IN_EP_INTR(1, inepnakeff); } if (diepint.b.emptyintr) { DCD_WriteEmptyTxFifo(pdev , 1); CLEAR_IN_EP_INTR(1, emptyintr); } return 1; } #endif /** * @brief STM32_USBF_OTG_ISR_Handler * handles all USB Interrupts * @param pdev: device instance * @retval status */ uint32_t USBD_OTG_ISR_Handler (USB_OTG_CORE_HANDLE *pdev) { USB_OTG_GINTSTS_TypeDef gintr_status; uint32_t retval = 0; if (USB_OTG_IsDeviceMode(pdev)) /* ensure that we are in device mode */ { gintr_status.d32 = USB_OTG_ReadCoreItr(pdev); if (!gintr_status.d32) /* avoid spurious interrupt */ { return 0; } if (gintr_status.b.outepintr) { retval |= DCD_HandleOutEP_ISR(pdev); } if (gintr_status.b.inepint) { retval |= DCD_HandleInEP_ISR(pdev); } if (gintr_status.b.modemismatch) { USB_OTG_GINTSTS_TypeDef gintsts; /* Clear interrupt */ gintsts.d32 = 0; gintsts.b.modemismatch = 1; USB_OTG_WRITE_REG32(&pdev->regs.GREGS->GINTSTS, gintsts.d32); } if (gintr_status.b.wkupintr) { retval |= DCD_HandleResume_ISR(pdev); } if (gintr_status.b.usbsuspend) { retval |= DCD_HandleUSBSuspend_ISR(pdev); } if (gintr_status.b.sofintr) { retval |= DCD_HandleSof_ISR(pdev); } if (gintr_status.b.rxstsqlvl) { retval |= DCD_HandleRxStatusQueueLevel_ISR(pdev); } if (gintr_status.b.usbreset) { retval |= DCD_HandleUsbReset_ISR(pdev); } if (gintr_status.b.enumdone) { retval |= DCD_HandleEnumDone_ISR(pdev); } if (gintr_status.b.incomplisoin) { retval |= DCD_IsoINIncomplete_ISR(pdev); } if (gintr_status.b.incomplisoout) { retval |= DCD_IsoOUTIncomplete_ISR(pdev); } #ifdef VBUS_SENSING_ENABLED if (gintr_status.b.sessreqintr) { retval |= DCD_SessionRequest_ISR(pdev); } if (gintr_status.b.otgintr) { retval |= DCD_OTG_ISR(pdev); } #endif } return retval; } #ifdef VBUS_SENSING_ENABLED /** * @brief DCD_SessionRequest_ISR * Indicates that the USB_OTG controller has detected a connection * @param pdev: device instance * @retval status */ static uint32_t DCD_SessionRequest_ISR(USB_OTG_CORE_HANDLE *pdev) { USB_OTG_GINTSTS_TypeDef gintsts; USBD_DCD_INT_fops->DevConnected (pdev); /* Clear interrupt */ gintsts.d32 = 0; gintsts.b.sessreqintr = 1; USB_OTG_WRITE_REG32 (&pdev->regs.GREGS->GINTSTS, gintsts.d32); return 1; } /** * @brief DCD_OTG_ISR * Indicates that the USB_OTG controller has detected an OTG event: * used to detect the end of session i.e. disconnection * @param pdev: device instance * @retval status */ static uint32_t DCD_OTG_ISR(USB_OTG_CORE_HANDLE *pdev) { USB_OTG_GOTGINT_TypeDef gotgint; gotgint.d32 = USB_OTG_READ_REG32(&pdev->regs.GREGS->GOTGINT); if (gotgint.b.sesenddet) { USBD_DCD_INT_fops->DevDisconnected (pdev); } /* Clear OTG interrupt */ USB_OTG_WRITE_REG32(&pdev->regs.GREGS->GOTGINT, gotgint.d32); return 1; } #endif /** * @brief DCD_HandleResume_ISR * Indicates that the USB_OTG controller has detected a resume or * remote Wake-up sequence * @param pdev: device instance * @retval status */ static uint32_t DCD_HandleResume_ISR(USB_OTG_CORE_HANDLE *pdev) { USB_OTG_GINTSTS_TypeDef gintsts; USB_OTG_DCTL_TypeDef devctl; USB_OTG_PCGCCTL_TypeDef power; if(pdev->cfg.low_power) { /* un-gate USB Core clock */ power.d32 = USB_OTG_READ_REG32(pdev->regs.PCGCCTL); power.b.gatehclk = 0; power.b.stoppclk = 0; USB_OTG_WRITE_REG32(pdev->regs.PCGCCTL, power.d32); } /* Clear the Remote Wake-up Signaling */ devctl.d32 = 0; devctl.b.rmtwkupsig = 1; USB_OTG_MODIFY_REG32(&pdev->regs.DREGS->DCTL, devctl.d32, 0); /* Inform upper layer by the Resume Event */ USBD_DCD_INT_fops->Resume (pdev); /* Clear interrupt */ gintsts.d32 = 0; gintsts.b.wkupintr = 1; USB_OTG_WRITE_REG32 (&pdev->regs.GREGS->GINTSTS, gintsts.d32); return 1; } /** * @brief USB_OTG_HandleUSBSuspend_ISR * Indicates that SUSPEND state has been detected on the USB * @param pdev: device instance * @retval status */ static uint32_t DCD_HandleUSBSuspend_ISR(USB_OTG_CORE_HANDLE *pdev) { USB_OTG_GINTSTS_TypeDef gintsts; USB_OTG_PCGCCTL_TypeDef power; USB_OTG_DSTS_TypeDef dsts; USBD_DCD_INT_fops->Suspend (pdev); dsts.d32 = USB_OTG_READ_REG32(&pdev->regs.DREGS->DSTS); /* Clear interrupt */ gintsts.d32 = 0; gintsts.b.usbsuspend = 1; USB_OTG_WRITE_REG32(&pdev->regs.GREGS->GINTSTS, gintsts.d32); if((pdev->cfg.low_power) && (dsts.b.suspsts == 1)) { /* switch-off the clocks */ power.d32 = 0; power.b.stoppclk = 1; USB_OTG_MODIFY_REG32(pdev->regs.PCGCCTL, 0, power.d32); power.b.gatehclk = 1; USB_OTG_MODIFY_REG32(pdev->regs.PCGCCTL, 0, power.d32); /* Request to enter Sleep mode after exit from current ISR */ SCB->SCR |= (SCB_SCR_SLEEPDEEP_Msk | SCB_SCR_SLEEPONEXIT_Msk); } return 1; } /** * @brief DCD_HandleInEP_ISR * Indicates that an IN EP has a pending Interrupt * @param pdev: device instance * @retval status */ static uint32_t DCD_HandleInEP_ISR(USB_OTG_CORE_HANDLE *pdev) { USB_OTG_DIEPINTn_TypeDef diepint; uint32_t ep_intr; uint32_t epnum = 0; uint32_t fifoemptymsk; diepint.d32 = 0; ep_intr = USB_OTG_ReadDevAllInEPItr(pdev); while ( ep_intr ) { if (ep_intr&0x1) /* In ITR */ { diepint.d32 = DCD_ReadDevInEP(pdev , epnum); /* Get In ITR status */ if ( diepint.b.xfercompl ) { fifoemptymsk = 0x1 << epnum; USB_OTG_MODIFY_REG32(&pdev->regs.DREGS->DIEPEMPMSK, fifoemptymsk, 0); CLEAR_IN_EP_INTR(epnum, xfercompl); /* TX COMPLETE */ USBD_DCD_INT_fops->DataInStage(pdev , epnum); if (pdev->cfg.dma_enable == 1) { if((epnum == 0) && (pdev->dev.device_state == USB_OTG_EP0_STATUS_IN)) { /* prepare to rx more setup packets */ USB_OTG_EP0_OutStart(pdev); } } } if ( diepint.b.ahberr ) { CLEAR_IN_EP_INTR(epnum, ahberr); } if ( diepint.b.timeout ) { CLEAR_IN_EP_INTR(epnum, timeout); } if (diepint.b.intktxfemp) { CLEAR_IN_EP_INTR(epnum, intktxfemp); } if (diepint.b.intknepmis) { CLEAR_IN_EP_INTR(epnum, intknepmis); } if (diepint.b.inepnakeff) { CLEAR_IN_EP_INTR(epnum, inepnakeff); } if ( diepint.b.epdisabled ) { CLEAR_IN_EP_INTR(epnum, epdisabled); } if (diepint.b.emptyintr) { DCD_WriteEmptyTxFifo(pdev , epnum); CLEAR_IN_EP_INTR(epnum, emptyintr); } } epnum++; ep_intr >>= 1; } return 1; } /** * @brief DCD_HandleOutEP_ISR * Indicates that an OUT EP has a pending Interrupt * @param pdev: device instance * @retval status */ static uint32_t DCD_HandleOutEP_ISR(USB_OTG_CORE_HANDLE *pdev) { uint32_t ep_intr; USB_OTG_DOEPINTn_TypeDef doepint; USB_OTG_DEPXFRSIZ_TypeDef deptsiz; uint32_t epnum = 0; doepint.d32 = 0; /* Read in the device interrupt bits */ ep_intr = USB_OTG_ReadDevAllOutEp_itr(pdev); while ( ep_intr ) { if (ep_intr&0x1) { doepint.d32 = USB_OTG_ReadDevOutEP_itr(pdev, epnum); /* Transfer complete */ if ( doepint.b.xfercompl ) { /* Clear the bit in DOEPINTn for this interrupt */ CLEAR_OUT_EP_INTR(epnum, xfercompl); if (pdev->cfg.dma_enable == 1) { deptsiz.d32 = USB_OTG_READ_REG32(&(pdev->regs.OUTEP_REGS[epnum]->DOEPTSIZ)); /*ToDo : handle more than one single MPS size packet */ pdev->dev.out_ep[epnum].xfer_count = pdev->dev.out_ep[epnum].maxpacket - \ deptsiz.b.xfersize; } /* Inform upper layer: data ready */ /* RX COMPLETE */ USBD_DCD_INT_fops->DataOutStage(pdev , epnum); if (pdev->cfg.dma_enable == 1) { if((epnum == 0) && (pdev->dev.device_state == USB_OTG_EP0_STATUS_OUT)) { /* prepare to rx more setup packets */ USB_OTG_EP0_OutStart(pdev); } } } /* Endpoint disable */ if ( doepint.b.epdisabled ) { /* Clear the bit in DOEPINTn for this interrupt */ CLEAR_OUT_EP_INTR(epnum, epdisabled); } /* AHB Error */ if ( doepint.b.ahberr ) { CLEAR_OUT_EP_INTR(epnum, ahberr); } /* Setup Phase Done (control EPs) */ if ( doepint.b.setup ) { /* inform the upper layer that a setup packet is available */ /* SETUP COMPLETE */ USBD_DCD_INT_fops->SetupStage(pdev); CLEAR_OUT_EP_INTR(epnum, setup); } } epnum++; ep_intr >>= 1; } return 1; } /** * @brief DCD_HandleSof_ISR * Handles the SOF Interrupts * @param pdev: device instance * @retval status */ static uint32_t DCD_HandleSof_ISR(USB_OTG_CORE_HANDLE *pdev) { USB_OTG_GINTSTS_TypeDef GINTSTS; USBD_DCD_INT_fops->SOF(pdev); /* Clear interrupt */ GINTSTS.d32 = 0; GINTSTS.b.sofintr = 1; USB_OTG_WRITE_REG32 (&pdev->regs.GREGS->GINTSTS, GINTSTS.d32); return 1; } /** * @brief DCD_HandleRxStatusQueueLevel_ISR * Handles the Rx Status Queue Level Interrupt * @param pdev: device instance * @retval status */ static uint32_t DCD_HandleRxStatusQueueLevel_ISR(USB_OTG_CORE_HANDLE *pdev) { USB_OTG_GINTMSK_TypeDef int_mask; USB_OTG_DRXSTS_TypeDef status; USB_OTG_EP *ep; /* Disable the Rx Status Queue Level interrupt */ int_mask.d32 = 0; int_mask.b.rxstsqlvl = 1; USB_OTG_MODIFY_REG32( &pdev->regs.GREGS->GINTMSK, int_mask.d32, 0); /* Get the Status from the top of the FIFO */ status.d32 = USB_OTG_READ_REG32( &pdev->regs.GREGS->GRXSTSP ); ep = &pdev->dev.out_ep[status.b.epnum]; switch (status.b.pktsts) { case STS_GOUT_NAK: break; case STS_DATA_UPDT: if (status.b.bcnt) { USB_OTG_ReadPacket(pdev,ep->xfer_buff, status.b.bcnt); ep->xfer_buff += status.b.bcnt; ep->xfer_count += status.b.bcnt; } break; case STS_XFER_COMP: break; case STS_SETUP_COMP: break; case STS_SETUP_UPDT: /* Copy the setup packet received in FIFO into the setup buffer in RAM */ USB_OTG_ReadPacket(pdev , pdev->dev.setup_packet, 8); ep->xfer_count += status.b.bcnt; break; default: break; } /* Enable the Rx Status Queue Level interrupt */ USB_OTG_MODIFY_REG32( &pdev->regs.GREGS->GINTMSK, 0, int_mask.d32); return 1; } /** * @brief DCD_WriteEmptyTxFifo * check FIFO for the next packet to be loaded * @param pdev: device instance * @retval status */ static uint32_t DCD_WriteEmptyTxFifo(USB_OTG_CORE_HANDLE *pdev, uint32_t epnum) { USB_OTG_DTXFSTSn_TypeDef txstatus; USB_OTG_EP *ep; uint32_t len = 0; uint32_t len32b; txstatus.d32 = 0; ep = &pdev->dev.in_ep[epnum]; len = ep->xfer_len - ep->xfer_count; if (len > ep->maxpacket) { len = ep->maxpacket; } len32b = (len + 3) / 4; txstatus.d32 = USB_OTG_READ_REG32( &pdev->regs.INEP_REGS[epnum]->DTXFSTS); while (txstatus.b.txfspcavail > len32b && ep->xfer_count < ep->xfer_len && ep->xfer_len != 0) { /* Write the FIFO */ len = ep->xfer_len - ep->xfer_count; if (len > ep->maxpacket) { len = ep->maxpacket; } len32b = (len + 3) / 4; USB_OTG_WritePacket (pdev , ep->xfer_buff, epnum, len); ep->xfer_buff += len; ep->xfer_count += len; txstatus.d32 = USB_OTG_READ_REG32(&pdev->regs.INEP_REGS[epnum]->DTXFSTS); } return 1; } /** * @brief DCD_HandleUsbReset_ISR * This interrupt occurs when a USB Reset is detected * @param pdev: device instance * @retval status */ static uint32_t DCD_HandleUsbReset_ISR(USB_OTG_CORE_HANDLE *pdev) { USB_OTG_DAINT_TypeDef daintmsk; USB_OTG_DOEPMSK_TypeDef doepmsk; USB_OTG_DIEPMSK_TypeDef diepmsk; USB_OTG_DCFG_TypeDef dcfg; USB_OTG_DCTL_TypeDef dctl; USB_OTG_GINTSTS_TypeDef gintsts; uint32_t i; dctl.d32 = 0; daintmsk.d32 = 0; doepmsk.d32 = 0; diepmsk.d32 = 0; dcfg.d32 = 0; gintsts.d32 = 0; /* Clear the Remote Wake-up Signaling */ dctl.b.rmtwkupsig = 1; USB_OTG_MODIFY_REG32(&pdev->regs.DREGS->DCTL, dctl.d32, 0 ); /* Flush the Tx FIFO */ USB_OTG_FlushTxFifo(pdev , 0 ); for (i = 0; i < pdev->cfg.dev_endpoints ; i++) { USB_OTG_WRITE_REG32( &pdev->regs.INEP_REGS[i]->DIEPINT, 0xFF); USB_OTG_WRITE_REG32( &pdev->regs.OUTEP_REGS[i]->DOEPINT, 0xFF); } USB_OTG_WRITE_REG32( &pdev->regs.DREGS->DAINT, 0xFFFFFFFF ); daintmsk.ep.in = 1; daintmsk.ep.out = 1; USB_OTG_WRITE_REG32( &pdev->regs.DREGS->DAINTMSK, daintmsk.d32 ); doepmsk.b.setup = 1; doepmsk.b.xfercompl = 1; doepmsk.b.ahberr = 1; doepmsk.b.epdisabled = 1; USB_OTG_WRITE_REG32( &pdev->regs.DREGS->DOEPMSK, doepmsk.d32 ); #ifdef USB_OTG_HS_DEDICATED_EP1_ENABLED USB_OTG_WRITE_REG32( &pdev->regs.DREGS->DOUTEP1MSK, doepmsk.d32 ); #endif diepmsk.b.xfercompl = 1; diepmsk.b.timeout = 1; diepmsk.b.epdisabled = 1; diepmsk.b.ahberr = 1; diepmsk.b.intknepmis = 1; USB_OTG_WRITE_REG32( &pdev->regs.DREGS->DIEPMSK, diepmsk.d32 ); #ifdef USB_OTG_HS_DEDICATED_EP1_ENABLED USB_OTG_WRITE_REG32( &pdev->regs.DREGS->DINEP1MSK, diepmsk.d32 ); #endif /* Reset Device Address */ dcfg.d32 = USB_OTG_READ_REG32( &pdev->regs.DREGS->DCFG); dcfg.b.devaddr = 0; USB_OTG_WRITE_REG32( &pdev->regs.DREGS->DCFG, dcfg.d32); /* setup EP0 to receive SETUP packets */ USB_OTG_EP0_OutStart(pdev); /* Clear interrupt */ gintsts.d32 = 0; gintsts.b.usbreset = 1; USB_OTG_WRITE_REG32 (&pdev->regs.GREGS->GINTSTS, gintsts.d32); /*Reset internal state machine */ USBD_DCD_INT_fops->Reset(pdev); return 1; } /** * @brief DCD_HandleEnumDone_ISR * Read the device status register and set the device speed * @param pdev: device instance * @retval status */ static uint32_t DCD_HandleEnumDone_ISR(USB_OTG_CORE_HANDLE *pdev) { USB_OTG_GINTSTS_TypeDef gintsts; USB_OTG_GUSBCFG_TypeDef gusbcfg; USB_OTG_EP0Activate(pdev); /* Set USB turn-around time based on device speed and PHY interface. */ gusbcfg.d32 = USB_OTG_READ_REG32(&pdev->regs.GREGS->GUSBCFG); /* Full or High speed */ if ( USB_OTG_GetDeviceSpeed(pdev) == USB_SPEED_HIGH) { pdev->cfg.speed = USB_OTG_SPEED_HIGH; pdev->cfg.mps = USB_OTG_HS_MAX_PACKET_SIZE ; gusbcfg.b.usbtrdtim = 9; } else { pdev->cfg.speed = USB_OTG_SPEED_FULL; pdev->cfg.mps = USB_OTG_FS_MAX_PACKET_SIZE ; gusbcfg.b.usbtrdtim = 5; } USB_OTG_WRITE_REG32(&pdev->regs.GREGS->GUSBCFG, gusbcfg.d32); /* Clear interrupt */ gintsts.d32 = 0; gintsts.b.enumdone = 1; USB_OTG_WRITE_REG32( &pdev->regs.GREGS->GINTSTS, gintsts.d32 ); return 1; } /** * @brief DCD_IsoINIncomplete_ISR * handle the ISO IN incomplete interrupt * @param pdev: device instance * @retval status */ static uint32_t DCD_IsoINIncomplete_ISR(USB_OTG_CORE_HANDLE *pdev) { USB_OTG_GINTSTS_TypeDef gintsts; gintsts.d32 = 0; USBD_DCD_INT_fops->IsoINIncomplete (pdev); /* Clear interrupt */ gintsts.b.incomplisoin = 1; USB_OTG_WRITE_REG32(&pdev->regs.GREGS->GINTSTS, gintsts.d32); return 1; } /** * @brief DCD_IsoOUTIncomplete_ISR * handle the ISO OUT incomplete interrupt * @param pdev: device instance * @retval status */ static uint32_t DCD_IsoOUTIncomplete_ISR(USB_OTG_CORE_HANDLE *pdev) { USB_OTG_GINTSTS_TypeDef gintsts; gintsts.d32 = 0; USBD_DCD_INT_fops->IsoOUTIncomplete (pdev); /* Clear interrupt */ gintsts.b.incomplisoout = 1; USB_OTG_WRITE_REG32(&pdev->regs.GREGS->GINTSTS, gintsts.d32); return 1; } /** * @brief DCD_ReadDevInEP * Reads ep flags * @param pdev: device instance * @retval status */ static uint32_t DCD_ReadDevInEP (USB_OTG_CORE_HANDLE *pdev, uint8_t epnum) { uint32_t v, msk, emp; msk = USB_OTG_READ_REG32(&pdev->regs.DREGS->DIEPMSK); emp = USB_OTG_READ_REG32(&pdev->regs.DREGS->DIEPEMPMSK); msk |= ((emp >> epnum) & 0x1) << 7; v = USB_OTG_READ_REG32(&pdev->regs.INEP_REGS[epnum]->DIEPINT) & msk; return v; } /** * @} */ /** * @} */ /** * @} */ #endif /******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/ codec2-1.0.1/stm32/usb_lib/otg/usb_dcd_int.h000066400000000000000000000056051412132000500204500ustar00rootroot00000000000000/** ****************************************************************************** * @file usb_dcd_int.h * @author MCD Application Team * @version V2.0.0 * @date 22-July-2011 * @brief Peripheral Device Interface Layer ****************************************************************************** * @attention * * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE * TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY * DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING * FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. * *

© COPYRIGHT 2011 STMicroelectronics

****************************************************************************** */ /* Define to prevent recursive inclusion -------------------------------------*/ #ifndef USB_DCD_INT_H__ #define USB_DCD_INT_H__ /* Includes ------------------------------------------------------------------*/ #include "usb_dcd.h" /** @addtogroup USB_OTG_DRIVER * @{ */ /** @defgroup USB_DCD_INT * @brief This file is the * @{ */ /** @defgroup USB_DCD_INT_Exported_Defines * @{ */ typedef struct _USBD_DCD_INT { uint8_t (* DataOutStage) (USB_OTG_CORE_HANDLE *pdev , uint8_t epnum); uint8_t (* DataInStage) (USB_OTG_CORE_HANDLE *pdev , uint8_t epnum); uint8_t (* SetupStage) (USB_OTG_CORE_HANDLE *pdev); uint8_t (* SOF) (USB_OTG_CORE_HANDLE *pdev); uint8_t (* Reset) (USB_OTG_CORE_HANDLE *pdev); uint8_t (* Suspend) (USB_OTG_CORE_HANDLE *pdev); uint8_t (* Resume) (USB_OTG_CORE_HANDLE *pdev); uint8_t (* IsoINIncomplete) (USB_OTG_CORE_HANDLE *pdev); uint8_t (* IsoOUTIncomplete) (USB_OTG_CORE_HANDLE *pdev); uint8_t (* DevConnected) (USB_OTG_CORE_HANDLE *pdev); uint8_t (* DevDisconnected) (USB_OTG_CORE_HANDLE *pdev); }USBD_DCD_INT_cb_TypeDef; extern USBD_DCD_INT_cb_TypeDef *USBD_DCD_INT_fops; /** * @} */ /** @defgroup USB_DCD_INT_Exported_Types * @{ */ /** * @} */ /** @defgroup USB_DCD_INT_Exported_Macros * @{ */ #define CLEAR_IN_EP_INTR(epnum,intr) \ diepint.d32=0; \ diepint.b.intr = 1; \ USB_OTG_WRITE_REG32(&pdev->regs.INEP_REGS[epnum]->DIEPINT,diepint.d32); #define CLEAR_OUT_EP_INTR(epnum,intr) \ doepint.d32=0; \ doepint.b.intr = 1; \ USB_OTG_WRITE_REG32(&pdev->regs.OUTEP_REGS[epnum]->DOEPINT,doepint.d32); /** * @} */ /** @defgroup USB_DCD_INT_Exported_Variables * @{ */ /** * @} */ /** @defgroup USB_DCD_INT_Exported_FunctionsPrototype * @{ */ uint32_t USBD_OTG_ISR_Handler (USB_OTG_CORE_HANDLE *pdev); /** * @} */ #endif // USB_DCD_INT_H__ /** * @} */ /** * @} */ /******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/ codec2-1.0.1/stm32/usb_lib/otg/usb_defines.h000066400000000000000000000146461412132000500204660ustar00rootroot00000000000000/** ****************************************************************************** * @file usb_defines.h * @author MCD Application Team * @version V2.0.0 * @date 22-July-2011 * @brief Header of the Core Layer ****************************************************************************** * @attention * * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE * TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY * DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING * FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. * *

© COPYRIGHT 2011 STMicroelectronics

****************************************************************************** */ /* Define to prevent recursive inclusion -------------------------------------*/ #ifndef __USB_DEF_H__ #define __USB_DEF_H__ /* Includes ------------------------------------------------------------------*/ #include "usb_conf.h" /** @addtogroup USB_OTG_DRIVER * @{ */ /** @defgroup USB_DEFINES * @brief This file is the * @{ */ /** @defgroup USB_DEFINES_Exported_Defines * @{ */ /** * @} */ /** @defgroup _CORE_DEFINES_ * @{ */ #define USB_OTG_SPEED_PARAM_HIGH 0 #define USB_OTG_SPEED_PARAM_HIGH_IN_FULL 1 #define USB_OTG_SPEED_PARAM_FULL 3 #define USB_OTG_SPEED_HIGH 0 #define USB_OTG_SPEED_FULL 1 #define USB_OTG_ULPI_PHY 1 #define USB_OTG_EMBEDDED_PHY 2 #define USB_OTG_I2C_PHY 3 /** * @} */ /** @defgroup _GLOBAL_DEFINES_ * @{ */ #define GAHBCFG_TXFEMPTYLVL_EMPTY 1 #define GAHBCFG_TXFEMPTYLVL_HALFEMPTY 0 #define GAHBCFG_GLBINT_ENABLE 1 #define GAHBCFG_INT_DMA_BURST_SINGLE 0 #define GAHBCFG_INT_DMA_BURST_INCR 1 #define GAHBCFG_INT_DMA_BURST_INCR4 3 #define GAHBCFG_INT_DMA_BURST_INCR8 5 #define GAHBCFG_INT_DMA_BURST_INCR16 7 #define GAHBCFG_DMAENABLE 1 #define GAHBCFG_TXFEMPTYLVL_EMPTY 1 #define GAHBCFG_TXFEMPTYLVL_HALFEMPTY 0 #define GRXSTS_PKTSTS_IN 2 #define GRXSTS_PKTSTS_IN_XFER_COMP 3 #define GRXSTS_PKTSTS_DATA_TOGGLE_ERR 5 #define GRXSTS_PKTSTS_CH_HALTED 7 /** * @} */ /** @defgroup _OnTheGo_DEFINES_ * @{ */ #define MODE_HNP_SRP_CAPABLE 0 #define MODE_SRP_ONLY_CAPABLE 1 #define MODE_NO_HNP_SRP_CAPABLE 2 #define MODE_SRP_CAPABLE_DEVICE 3 #define MODE_NO_SRP_CAPABLE_DEVICE 4 #define MODE_SRP_CAPABLE_HOST 5 #define MODE_NO_SRP_CAPABLE_HOST 6 #define A_HOST 1 #define A_SUSPEND 2 #define A_PERIPHERAL 3 #define B_PERIPHERAL 4 #define B_HOST 5 #define DEVICE_MODE 0 #define HOST_MODE 1 #define OTG_MODE 2 /** * @} */ /** @defgroup __DEVICE_DEFINES_ * @{ */ #define DSTS_ENUMSPD_HS_PHY_30MHZ_OR_60MHZ 0 #define DSTS_ENUMSPD_FS_PHY_30MHZ_OR_60MHZ 1 #define DSTS_ENUMSPD_LS_PHY_6MHZ 2 #define DSTS_ENUMSPD_FS_PHY_48MHZ 3 #define DCFG_FRAME_INTERVAL_80 0 #define DCFG_FRAME_INTERVAL_85 1 #define DCFG_FRAME_INTERVAL_90 2 #define DCFG_FRAME_INTERVAL_95 3 #define DEP0CTL_MPS_64 0 #define DEP0CTL_MPS_32 1 #define DEP0CTL_MPS_16 2 #define DEP0CTL_MPS_8 3 #define EP_SPEED_LOW 0 #define EP_SPEED_FULL 1 #define EP_SPEED_HIGH 2 #define EP_TYPE_CTRL 0 #define EP_TYPE_ISOC 1 #define EP_TYPE_BULK 2 #define EP_TYPE_INTR 3 #define EP_TYPE_MSK 3 #define STS_GOUT_NAK 1 #define STS_DATA_UPDT 2 #define STS_XFER_COMP 3 #define STS_SETUP_COMP 4 #define STS_SETUP_UPDT 6 /** * @} */ /** @defgroup __HOST_DEFINES_ * @{ */ #define HC_PID_DATA0 0 #define HC_PID_DATA2 1 #define HC_PID_DATA1 2 #define HC_PID_SETUP 3 #define HPRT0_PRTSPD_HIGH_SPEED 0 #define HPRT0_PRTSPD_FULL_SPEED 1 #define HPRT0_PRTSPD_LOW_SPEED 2 #define HCFG_30_60_MHZ 0 #define HCFG_48_MHZ 1 #define HCFG_6_MHZ 2 #define HCCHAR_CTRL 0 #define HCCHAR_ISOC 1 #define HCCHAR_BULK 2 #define HCCHAR_INTR 3 #define MIN(a, b) (((a) < (b)) ? (a) : (b)) /** * @} */ /** @defgroup USB_DEFINES_Exported_Types * @{ */ typedef enum { USB_OTG_HS_CORE_ID = 0, USB_OTG_FS_CORE_ID = 1 }USB_OTG_CORE_ID_TypeDef; /** * @} */ /** @defgroup USB_DEFINES_Exported_Macros * @{ */ /** * @} */ /** @defgroup USB_DEFINES_Exported_Variables * @{ */ /** * @} */ /** @defgroup USB_DEFINES_Exported_FunctionsPrototype * @{ */ /** * @} */ /** @defgroup Internal_Macro's * @{ */ #define USB_OTG_READ_REG32(reg) (*(__IO uint32_t *)reg) #define USB_OTG_WRITE_REG32(reg,value) (*(__IO uint32_t *)reg = value) #define USB_OTG_MODIFY_REG32(reg,clear_mask,set_mask) \ USB_OTG_WRITE_REG32(reg, (((USB_OTG_READ_REG32(reg)) & ~clear_mask) | set_mask ) ) /******************************************************************************** ENUMERATION TYPE ********************************************************************************/ enum USB_OTG_SPEED { USB_SPEED_UNKNOWN = 0, USB_SPEED_LOW, USB_SPEED_FULL, USB_SPEED_HIGH }; #endif //__USB_DEFINES__H__ /** * @} */ /** * @} */ /******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/ codec2-1.0.1/stm32/usb_lib/otg/usb_regs.h000066400000000000000000000524021412132000500200010ustar00rootroot00000000000000/** ****************************************************************************** * @file usb_regs.h * @author MCD Application Team * @version V2.0.0 * @date 22-July-2011 * @brief hardware registers ****************************************************************************** * @attention * * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE * TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY * DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING * FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. * *

© COPYRIGHT 2011 STMicroelectronics

****************************************************************************** */ /* Define to prevent recursive inclusion -------------------------------------*/ #ifndef __USB_OTG_REGS_H__ #define __USB_OTG_REGS_H__ /* Includes ------------------------------------------------------------------*/ #include "usb_conf.h" /** @addtogroup USB_OTG_DRIVER * @{ */ /** @defgroup USB_REGS * @brief This file is the * @{ */ /** @defgroup USB_REGS_Exported_Defines * @{ */ #define USB_OTG_HS_BASE_ADDR 0x40040000 #define USB_OTG_FS_BASE_ADDR 0x50000000 #define USB_OTG_CORE_GLOBAL_REGS_OFFSET 0x000 #define USB_OTG_DEV_GLOBAL_REG_OFFSET 0x800 #define USB_OTG_DEV_IN_EP_REG_OFFSET 0x900 #define USB_OTG_EP_REG_OFFSET 0x20 #define USB_OTG_DEV_OUT_EP_REG_OFFSET 0xB00 #define USB_OTG_HOST_GLOBAL_REG_OFFSET 0x400 #define USB_OTG_HOST_PORT_REGS_OFFSET 0x440 #define USB_OTG_HOST_CHAN_REGS_OFFSET 0x500 #define USB_OTG_CHAN_REGS_OFFSET 0x20 #define USB_OTG_PCGCCTL_OFFSET 0xE00 #define USB_OTG_DATA_FIFO_OFFSET 0x1000 #define USB_OTG_DATA_FIFO_SIZE 0x1000 #define USB_OTG_MAX_TX_FIFOS 15 #define USB_OTG_HS_MAX_PACKET_SIZE 512 #define USB_OTG_FS_MAX_PACKET_SIZE 64 #define USB_OTG_MAX_EP0_SIZE 64 /** * @} */ /** @defgroup USB_REGS_Exported_Types * @{ */ /** @defgroup __USB_OTG_Core_register * @{ */ typedef struct _USB_OTG_GREGS //000h { __IO uint32_t GOTGCTL; /* USB_OTG Control and Status Register 000h*/ __IO uint32_t GOTGINT; /* USB_OTG Interrupt Register 004h*/ __IO uint32_t GAHBCFG; /* Core AHB Configuration Register 008h*/ __IO uint32_t GUSBCFG; /* Core USB Configuration Register 00Ch*/ __IO uint32_t GRSTCTL; /* Core Reset Register 010h*/ __IO uint32_t GINTSTS; /* Core Interrupt Register 014h*/ __IO uint32_t GINTMSK; /* Core Interrupt Mask Register 018h*/ __IO uint32_t GRXSTSR; /* Receive Sts Q Read Register 01Ch*/ __IO uint32_t GRXSTSP; /* Receive Sts Q Read & POP Register 020h*/ __IO uint32_t GRXFSIZ; /* Receive FIFO Size Register 024h*/ __IO uint32_t DIEPTXF0_HNPTXFSIZ; /* EP0 / Non Periodic Tx FIFO Size Register 028h*/ __IO uint32_t HNPTXSTS; /* Non Periodic Tx FIFO/Queue Sts reg 02Ch*/ __IO uint32_t GI2CCTL; /* I2C Access Register 030h*/ uint32_t Reserved34; /* PHY Vendor Control Register 034h*/ __IO uint32_t GCCFG; /* General Purpose IO Register 038h*/ __IO uint32_t CID; /* User ID Register 03Ch*/ uint32_t Reserved40[48]; /* Reserved 040h-0FFh*/ __IO uint32_t HPTXFSIZ; /* Host Periodic Tx FIFO Size Reg 100h*/ __IO uint32_t DIEPTXF[USB_OTG_MAX_TX_FIFOS];/* dev Periodic Transmit FIFO */ } USB_OTG_GREGS; /** * @} */ /** @defgroup __device_Registers * @{ */ typedef struct _USB_OTG_DREGS // 800h { __IO uint32_t DCFG; /* dev Configuration Register 800h*/ __IO uint32_t DCTL; /* dev Control Register 804h*/ __IO uint32_t DSTS; /* dev Status Register (RO) 808h*/ uint32_t Reserved0C; /* Reserved 80Ch*/ __IO uint32_t DIEPMSK; /* dev IN Endpoint Mask 810h*/ __IO uint32_t DOEPMSK; /* dev OUT Endpoint Mask 814h*/ __IO uint32_t DAINT; /* dev All Endpoints Itr Reg 818h*/ __IO uint32_t DAINTMSK; /* dev All Endpoints Itr Mask 81Ch*/ uint32_t Reserved20; /* Reserved 820h*/ uint32_t Reserved9; /* Reserved 824h*/ __IO uint32_t DVBUSDIS; /* dev VBUS discharge Register 828h*/ __IO uint32_t DVBUSPULSE; /* dev VBUS Pulse Register 82Ch*/ __IO uint32_t DTHRCTL; /* dev thr 830h*/ __IO uint32_t DIEPEMPMSK; /* dev empty msk 834h*/ __IO uint32_t DEACHINT; /* dedicated EP interrupt 838h*/ __IO uint32_t DEACHMSK; /* dedicated EP msk 83Ch*/ uint32_t Reserved40; /* dedicated EP mask 840h*/ __IO uint32_t DINEP1MSK; /* dedicated EP mask 844h*/ uint32_t Reserved44[15]; /* Reserved 844-87Ch*/ __IO uint32_t DOUTEP1MSK; /* dedicated EP msk 884h*/ } USB_OTG_DREGS; /** * @} */ /** @defgroup __IN_Endpoint-Specific_Register * @{ */ typedef struct _USB_OTG_INEPREGS { __IO uint32_t DIEPCTL; /* dev IN Endpoint Control Reg 900h + (ep_num * 20h) + 00h*/ uint32_t Reserved04; /* Reserved 900h + (ep_num * 20h) + 04h*/ __IO uint32_t DIEPINT; /* dev IN Endpoint Itr Reg 900h + (ep_num * 20h) + 08h*/ uint32_t Reserved0C; /* Reserved 900h + (ep_num * 20h) + 0Ch*/ __IO uint32_t DIEPTSIZ; /* IN Endpoint Txfer Size 900h + (ep_num * 20h) + 10h*/ __IO uint32_t DIEPDMA; /* IN Endpoint DMA Address Reg 900h + (ep_num * 20h) + 14h*/ __IO uint32_t DTXFSTS;/*IN Endpoint Tx FIFO Status Reg 900h + (ep_num * 20h) + 18h*/ uint32_t Reserved18; /* Reserved 900h+(ep_num*20h)+1Ch-900h+ (ep_num * 20h) + 1Ch*/ } USB_OTG_INEPREGS; /** * @} */ /** @defgroup __OUT_Endpoint-Specific_Registers * @{ */ typedef struct _USB_OTG_OUTEPREGS { __IO uint32_t DOEPCTL; /* dev OUT Endpoint Control Reg B00h + (ep_num * 20h) + 00h*/ __IO uint32_t DOUTEPFRM; /* dev OUT Endpoint Frame number B00h + (ep_num * 20h) + 04h*/ __IO uint32_t DOEPINT; /* dev OUT Endpoint Itr Reg B00h + (ep_num * 20h) + 08h*/ uint32_t Reserved0C; /* Reserved B00h + (ep_num * 20h) + 0Ch*/ __IO uint32_t DOEPTSIZ; /* dev OUT Endpoint Txfer Size B00h + (ep_num * 20h) + 10h*/ __IO uint32_t DOEPDMA; /* dev OUT Endpoint DMA Address B00h + (ep_num * 20h) + 14h*/ uint32_t Reserved18[2]; /* Reserved B00h + (ep_num * 20h) + 18h - B00h + (ep_num * 20h) + 1Ch*/ } USB_OTG_OUTEPREGS; /** * @} */ /** @defgroup __Host_Mode_Register_Structures * @{ */ typedef struct _USB_OTG_HREGS { __IO uint32_t HCFG; /* Host Configuration Register 400h*/ __IO uint32_t HFIR; /* Host Frame Interval Register 404h*/ __IO uint32_t HFNUM; /* Host Frame Nbr/Frame Remaining 408h*/ uint32_t Reserved40C; /* Reserved 40Ch*/ __IO uint32_t HPTXSTS; /* Host Periodic Tx FIFO/ Queue Status 410h*/ __IO uint32_t HAINT; /* Host All Channels Interrupt Register 414h*/ __IO uint32_t HAINTMSK; /* Host All Channels Interrupt Mask 418h*/ } USB_OTG_HREGS; /** * @} */ /** @defgroup __Host_Channel_Specific_Registers * @{ */ typedef struct _USB_OTG_HC_REGS { __IO uint32_t HCCHAR; __IO uint32_t HCSPLT; __IO uint32_t HCINT; __IO uint32_t HCGINTMSK; __IO uint32_t HCTSIZ; __IO uint32_t HCDMA; uint32_t Reserved[2]; } USB_OTG_HC_REGS; /** * @} */ /** @defgroup __otg_Core_registers * @{ */ typedef struct USB_OTG_core_regs //000h { USB_OTG_GREGS *GREGS; USB_OTG_DREGS *DREGS; USB_OTG_HREGS *HREGS; USB_OTG_INEPREGS *INEP_REGS[USB_OTG_MAX_TX_FIFOS]; USB_OTG_OUTEPREGS *OUTEP_REGS[USB_OTG_MAX_TX_FIFOS]; USB_OTG_HC_REGS *HC_REGS[USB_OTG_MAX_TX_FIFOS]; __IO uint32_t *HPRT0; __IO uint32_t *DFIFO[USB_OTG_MAX_TX_FIFOS]; __IO uint32_t *PCGCCTL; } USB_OTG_CORE_REGS , *PUSB_OTG_CORE_REGS; typedef union _USB_OTG_OTGCTL_TypeDef { uint32_t d32; struct { uint32_t sesreqscs : 1; uint32_t sesreq : 1; uint32_t Reserved2_7 : 6; uint32_t hstnegscs : 1; uint32_t hnpreq : 1; uint32_t hstsethnpen : 1; uint32_t devhnpen : 1; uint32_t Reserved12_15 : 4; uint32_t conidsts : 1; uint32_t Reserved17 : 1; uint32_t asesvld : 1; uint32_t bsesvld : 1; uint32_t currmod : 1; uint32_t Reserved21_31 : 11; } b; } USB_OTG_OTGCTL_TypeDef ; typedef union _USB_OTG_GOTGINT_TypeDef { uint32_t d32; struct { uint32_t Reserved0_1 : 2; uint32_t sesenddet : 1; uint32_t Reserved3_7 : 5; uint32_t sesreqsucstschng : 1; uint32_t hstnegsucstschng : 1; uint32_t reserver10_16 : 7; uint32_t hstnegdet : 1; uint32_t adevtoutchng : 1; uint32_t debdone : 1; uint32_t Reserved31_20 : 12; } b; } USB_OTG_GOTGINT_TypeDef ; typedef union _USB_OTG_GAHBCFG_TypeDef { uint32_t d32; struct { uint32_t glblintrmsk : 1; uint32_t hburstlen : 4; uint32_t dmaenable : 1; uint32_t Reserved : 1; uint32_t nptxfemplvl_txfemplvl : 1; uint32_t ptxfemplvl : 1; uint32_t Reserved9_31 : 23; } b; } USB_OTG_GAHBCFG_TypeDef ; typedef union _USB_OTG_GUSBCFG_TypeDef { uint32_t d32; struct { uint32_t toutcal : 3; uint32_t phyif : 1; uint32_t ulpi_utmi_sel : 1; uint32_t fsintf : 1; uint32_t physel : 1; uint32_t ddrsel : 1; uint32_t srpcap : 1; uint32_t hnpcap : 1; uint32_t usbtrdtim : 4; uint32_t nptxfrwnden : 1; uint32_t phylpwrclksel : 1; uint32_t otgutmifssel : 1; uint32_t ulpi_fsls : 1; uint32_t ulpi_auto_res : 1; uint32_t ulpi_clk_sus_m : 1; uint32_t ulpi_ext_vbus_drv : 1; uint32_t ulpi_int_vbus_indicator : 1; uint32_t term_sel_dl_pulse : 1; uint32_t Reserved : 6; uint32_t force_host : 1; uint32_t force_dev : 1; uint32_t corrupt_tx : 1; } b; } USB_OTG_GUSBCFG_TypeDef ; typedef union _USB_OTG_GRSTCTL_TypeDef { uint32_t d32; struct { uint32_t csftrst : 1; uint32_t hsftrst : 1; uint32_t hstfrm : 1; uint32_t intknqflsh : 1; uint32_t rxfflsh : 1; uint32_t txfflsh : 1; uint32_t txfnum : 5; uint32_t Reserved11_29 : 19; uint32_t dmareq : 1; uint32_t ahbidle : 1; } b; } USB_OTG_GRSTCTL_TypeDef ; typedef union _USB_OTG_GINTMSK_TypeDef { uint32_t d32; struct { uint32_t Reserved0 : 1; uint32_t modemismatch : 1; uint32_t otgintr : 1; uint32_t sofintr : 1; uint32_t rxstsqlvl : 1; uint32_t nptxfempty : 1; uint32_t ginnakeff : 1; uint32_t goutnakeff : 1; uint32_t Reserved8 : 1; uint32_t i2cintr : 1; uint32_t erlysuspend : 1; uint32_t usbsuspend : 1; uint32_t usbreset : 1; uint32_t enumdone : 1; uint32_t isooutdrop : 1; uint32_t eopframe : 1; uint32_t Reserved16 : 1; uint32_t epmismatch : 1; uint32_t inepintr : 1; uint32_t outepintr : 1; uint32_t incomplisoin : 1; uint32_t incomplisoout : 1; uint32_t Reserved22_23 : 2; uint32_t portintr : 1; uint32_t hcintr : 1; uint32_t ptxfempty : 1; uint32_t Reserved27 : 1; uint32_t conidstschng : 1; uint32_t disconnect : 1; uint32_t sessreqintr : 1; uint32_t wkupintr : 1; } b; } USB_OTG_GINTMSK_TypeDef ; typedef union _USB_OTG_GINTSTS_TypeDef { uint32_t d32; struct { uint32_t curmode : 1; uint32_t modemismatch : 1; uint32_t otgintr : 1; uint32_t sofintr : 1; uint32_t rxstsqlvl : 1; uint32_t nptxfempty : 1; uint32_t ginnakeff : 1; uint32_t goutnakeff : 1; uint32_t Reserved8 : 1; uint32_t i2cintr : 1; uint32_t erlysuspend : 1; uint32_t usbsuspend : 1; uint32_t usbreset : 1; uint32_t enumdone : 1; uint32_t isooutdrop : 1; uint32_t eopframe : 1; uint32_t intimerrx : 1; uint32_t epmismatch : 1; uint32_t inepint: 1; uint32_t outepintr : 1; uint32_t incomplisoin : 1; uint32_t incomplisoout : 1; uint32_t Reserved22_23 : 2; uint32_t portintr : 1; uint32_t hcintr : 1; uint32_t ptxfempty : 1; uint32_t Reserved27 : 1; uint32_t conidstschng : 1; uint32_t disconnect : 1; uint32_t sessreqintr : 1; uint32_t wkupintr : 1; } b; } USB_OTG_GINTSTS_TypeDef ; typedef union _USB_OTG_DRXSTS_TypeDef { uint32_t d32; struct { uint32_t epnum : 4; uint32_t bcnt : 11; uint32_t dpid : 2; uint32_t pktsts : 4; uint32_t fn : 4; uint32_t Reserved : 7; } b; } USB_OTG_DRXSTS_TypeDef ; typedef union _USB_OTG_GRXSTS_TypeDef { uint32_t d32; struct { uint32_t chnum : 4; uint32_t bcnt : 11; uint32_t dpid : 2; uint32_t pktsts : 4; uint32_t Reserved : 11; } b; } USB_OTG_GRXFSTS_TypeDef ; typedef union _USB_OTG_FSIZ_TypeDef { uint32_t d32; struct { uint32_t startaddr : 16; uint32_t depth : 16; } b; } USB_OTG_FSIZ_TypeDef ; typedef union _USB_OTG_HNPTXSTS_TypeDef { uint32_t d32; struct { uint32_t nptxfspcavail : 16; uint32_t nptxqspcavail : 8; uint32_t nptxqtop_terminate : 1; uint32_t nptxqtop_timer : 2; uint32_t nptxqtop : 2; uint32_t chnum : 2; uint32_t Reserved : 1; } b; } USB_OTG_HNPTXSTS_TypeDef ; typedef union _USB_OTG_DTXFSTSn_TypeDef { uint32_t d32; struct { uint32_t txfspcavail : 16; uint32_t Reserved : 16; } b; } USB_OTG_DTXFSTSn_TypeDef ; typedef union _USB_OTG_GI2CCTL_TypeDef { uint32_t d32; struct { uint32_t rwdata : 8; uint32_t regaddr : 8; uint32_t addr : 7; uint32_t i2cen : 1; uint32_t ack : 1; uint32_t i2csuspctl : 1; uint32_t i2cdevaddr : 2; uint32_t dat_se0: 1; uint32_t Reserved : 1; uint32_t rw : 1; uint32_t bsydne : 1; } b; } USB_OTG_GI2CCTL_TypeDef ; typedef union _USB_OTG_GCCFG_TypeDef { uint32_t d32; struct { uint32_t Reserved_in : 16; uint32_t pwdn : 1; uint32_t i2cifen : 1; uint32_t vbussensingA : 1; uint32_t vbussensingB : 1; uint32_t sofouten : 1; uint32_t disablevbussensing : 1; uint32_t Reserved_out : 10; } b; } USB_OTG_GCCFG_TypeDef ; typedef union _USB_OTG_DCFG_TypeDef { uint32_t d32; struct { uint32_t devspd : 2; uint32_t nzstsouthshk : 1; uint32_t Reserved3 : 1; uint32_t devaddr : 7; uint32_t perfrint : 2; uint32_t Reserved13_17 : 5; uint32_t epmscnt : 4; } b; } USB_OTG_DCFG_TypeDef ; typedef union _USB_OTG_DCTL_TypeDef { uint32_t d32; struct { uint32_t rmtwkupsig : 1; uint32_t sftdiscon : 1; uint32_t gnpinnaksts : 1; uint32_t goutnaksts : 1; uint32_t tstctl : 3; uint32_t sgnpinnak : 1; uint32_t cgnpinnak : 1; uint32_t sgoutnak : 1; uint32_t cgoutnak : 1; uint32_t Reserved : 21; } b; } USB_OTG_DCTL_TypeDef ; typedef union _USB_OTG_DSTS_TypeDef { uint32_t d32; struct { uint32_t suspsts : 1; uint32_t enumspd : 2; uint32_t errticerr : 1; uint32_t Reserved4_7: 4; uint32_t soffn : 14; uint32_t Reserved22_31 : 10; } b; } USB_OTG_DSTS_TypeDef ; typedef union _USB_OTG_DIEPINTn_TypeDef { uint32_t d32; struct { uint32_t xfercompl : 1; uint32_t epdisabled : 1; uint32_t ahberr : 1; uint32_t timeout : 1; uint32_t intktxfemp : 1; uint32_t intknepmis : 1; uint32_t inepnakeff : 1; uint32_t emptyintr : 1; uint32_t txfifoundrn : 1; uint32_t Reserved08_31 : 23; } b; } USB_OTG_DIEPINTn_TypeDef ; typedef union _USB_OTG_DIEPINTn_TypeDef USB_OTG_DIEPMSK_TypeDef ; typedef union _USB_OTG_DOEPINTn_TypeDef { uint32_t d32; struct { uint32_t xfercompl : 1; uint32_t epdisabled : 1; uint32_t ahberr : 1; uint32_t setup : 1; uint32_t Reserved04_31 : 28; } b; } USB_OTG_DOEPINTn_TypeDef ; typedef union _USB_OTG_DOEPINTn_TypeDef USB_OTG_DOEPMSK_TypeDef ; typedef union _USB_OTG_DAINT_TypeDef { uint32_t d32; struct { uint32_t in : 16; uint32_t out : 16; } ep; } USB_OTG_DAINT_TypeDef ; typedef union _USB_OTG_DTHRCTL_TypeDef { uint32_t d32; struct { uint32_t non_iso_thr_en : 1; uint32_t iso_thr_en : 1; uint32_t tx_thr_len : 9; uint32_t Reserved11_15 : 5; uint32_t rx_thr_en : 1; uint32_t rx_thr_len : 9; uint32_t Reserved26_31 : 6; } b; } USB_OTG_DTHRCTL_TypeDef ; typedef union _USB_OTG_DEPCTL_TypeDef { uint32_t d32; struct { uint32_t mps : 11; uint32_t reserved : 4; uint32_t usbactep : 1; uint32_t dpid : 1; uint32_t naksts : 1; uint32_t eptype : 2; uint32_t snp : 1; uint32_t stall : 1; uint32_t txfnum : 4; uint32_t cnak : 1; uint32_t snak : 1; uint32_t setd0pid : 1; uint32_t setd1pid : 1; uint32_t epdis : 1; uint32_t epena : 1; } b; } USB_OTG_DEPCTL_TypeDef ; typedef union _USB_OTG_DEPXFRSIZ_TypeDef { uint32_t d32; struct { uint32_t xfersize : 19; uint32_t pktcnt : 10; uint32_t mc : 2; uint32_t Reserved : 1; } b; } USB_OTG_DEPXFRSIZ_TypeDef ; typedef union _USB_OTG_DEP0XFRSIZ_TypeDef { uint32_t d32; struct { uint32_t xfersize : 7; uint32_t Reserved7_18 : 12; uint32_t pktcnt : 2; uint32_t Reserved20_28 : 9; uint32_t supcnt : 2; uint32_t Reserved31; } b; } USB_OTG_DEP0XFRSIZ_TypeDef ; typedef union _USB_OTG_HCFG_TypeDef { uint32_t d32; struct { uint32_t fslspclksel : 2; uint32_t fslssupp : 1; } b; } USB_OTG_HCFG_TypeDef ; typedef union _USB_OTG_HFRMINTRVL_TypeDef { uint32_t d32; struct { uint32_t frint : 16; uint32_t Reserved : 16; } b; } USB_OTG_HFRMINTRVL_TypeDef ; typedef union _USB_OTG_HFNUM_TypeDef { uint32_t d32; struct { uint32_t frnum : 16; uint32_t frrem : 16; } b; } USB_OTG_HFNUM_TypeDef ; typedef union _USB_OTG_HPTXSTS_TypeDef { uint32_t d32; struct { uint32_t ptxfspcavail : 16; uint32_t ptxqspcavail : 8; uint32_t ptxqtop_terminate : 1; uint32_t ptxqtop_timer : 2; uint32_t ptxqtop : 2; uint32_t chnum : 2; uint32_t ptxqtop_odd : 1; } b; } USB_OTG_HPTXSTS_TypeDef ; typedef union _USB_OTG_HPRT0_TypeDef { uint32_t d32; struct { uint32_t prtconnsts : 1; uint32_t prtconndet : 1; uint32_t prtena : 1; uint32_t prtenchng : 1; uint32_t prtovrcurract : 1; uint32_t prtovrcurrchng : 1; uint32_t prtres : 1; uint32_t prtsusp : 1; uint32_t prtrst : 1; uint32_t Reserved9 : 1; uint32_t prtlnsts : 2; uint32_t prtpwr : 1; uint32_t prttstctl : 4; uint32_t prtspd : 2; uint32_t Reserved19_31 : 13; } b; } USB_OTG_HPRT0_TypeDef ; typedef union _USB_OTG_HAINT_TypeDef { uint32_t d32; struct { uint32_t chint : 16; uint32_t Reserved : 16; } b; } USB_OTG_HAINT_TypeDef ; typedef union _USB_OTG_HAINTMSK_TypeDef { uint32_t d32; struct { uint32_t chint : 16; uint32_t Reserved : 16; } b; } USB_OTG_HAINTMSK_TypeDef ; typedef union _USB_OTG_HCCHAR_TypeDef { uint32_t d32; struct { uint32_t mps : 11; uint32_t epnum : 4; uint32_t epdir : 1; uint32_t Reserved : 1; uint32_t lspddev : 1; uint32_t eptype : 2; uint32_t multicnt : 2; uint32_t devaddr : 7; uint32_t oddfrm : 1; uint32_t chdis : 1; uint32_t chen : 1; } b; } USB_OTG_HCCHAR_TypeDef ; typedef union _USB_OTG_HCSPLT_TypeDef { uint32_t d32; struct { uint32_t prtaddr : 7; uint32_t hubaddr : 7; uint32_t xactpos : 2; uint32_t compsplt : 1; uint32_t Reserved : 14; uint32_t spltena : 1; } b; } USB_OTG_HCSPLT_TypeDef ; typedef union _USB_OTG_HCINTn_TypeDef { uint32_t d32; struct { uint32_t xfercompl : 1; uint32_t chhltd : 1; uint32_t ahberr : 1; uint32_t stall : 1; uint32_t nak : 1; uint32_t ack : 1; uint32_t nyet : 1; uint32_t xacterr : 1; uint32_t bblerr : 1; uint32_t frmovrun : 1; uint32_t datatglerr : 1; uint32_t Reserved : 21; } b; } USB_OTG_HCINTn_TypeDef ; typedef union _USB_OTG_HCTSIZn_TypeDef { uint32_t d32; struct { uint32_t xfersize : 19; uint32_t pktcnt : 10; uint32_t pid : 2; uint32_t dopng : 1; } b; } USB_OTG_HCTSIZn_TypeDef ; typedef union _USB_OTG_HCGINTMSK_TypeDef { uint32_t d32; struct { uint32_t xfercompl : 1; uint32_t chhltd : 1; uint32_t ahberr : 1; uint32_t stall : 1; uint32_t nak : 1; uint32_t ack : 1; uint32_t nyet : 1; uint32_t xacterr : 1; uint32_t bblerr : 1; uint32_t frmovrun : 1; uint32_t datatglerr : 1; uint32_t Reserved : 21; } b; } USB_OTG_HCGINTMSK_TypeDef ; typedef union _USB_OTG_PCGCCTL_TypeDef { uint32_t d32; struct { uint32_t stoppclk : 1; uint32_t gatehclk : 1; uint32_t Reserved : 30; } b; } USB_OTG_PCGCCTL_TypeDef ; /** * @} */ /** @defgroup USB_REGS_Exported_Macros * @{ */ /** * @} */ /** @defgroup USB_REGS_Exported_Variables * @{ */ /** * @} */ /** @defgroup USB_REGS_Exported_FunctionsPrototype * @{ */ /** * @} */ #endif //__USB_OTG_REGS_H__ /** * @} */ /** * @} */ /******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/ codec2-1.0.1/unittest/000077500000000000000000000000001412132000500145135ustar00rootroot00000000000000codec2-1.0.1/unittest/CMakeLists.txt000066400000000000000000000064121412132000500172560ustar00rootroot00000000000000add_definitions(-DFLOATING_POINT -DVAR_ARRAYS) include_directories(../src) add_executable(tfdmdv tfdmdv.c ../src/fdmdv.c ../src/kiss_fft.c ../src/octave.c) target_link_libraries(tfdmdv codec2) add_executable(tcohpsk tcohpsk.c ../src/cohpsk.c ../src/octave.c) target_link_libraries(tcohpsk codec2) add_executable(tfsk tfsk.c ../src/kiss_fft.c ../src/kiss_fftr.c ../src/octave.c ../src/modem_probe.c) target_link_libraries(tfsk m) add_executable(tfreedv_data_channel tfreedv_data_channel.c ../src/freedv_data_channel.c) add_executable(tfmfsk tfmfsk.c ../src/octave.c ../src/modem_probe.c) target_link_libraries(tfmfsk m) add_executable(tdeframer tdeframer.c) target_link_libraries(tdeframer m codec2) add_definitions(-DMODEMPROBE_ENABLE -DXXXXX) add_executable(tofdm tofdm.c ../src/octave.c) target_link_libraries(tofdm m codec2) add_executable(tofdm_acq tofdm_acq.c ../src/octave.c) target_link_libraries(tofdm_acq m codec2) add_executable(tesno_est tesno_est.c) target_link_libraries(tesno_est m codec2) if(UNIX) # Uses pthreads add_executable(tfifo tfifo.c ../src/codec2_fifo.c) target_link_libraries(tfifo codec2 ${CMAKE_THREAD_LIBS_INIT}) endif() add_executable(fdmdv_mem fdmdv_mem.c) add_executable(ofdm_mem ofdm_mem.c ../src/ofdm.c ../src/octave.c ../src/kiss_fft.c ../src/modem_probe.c ../src/mpdecode_core.c ../src/phi0.c ../src/filter.c) target_link_libraries(ofdm_mem m) add_library(function_trace STATIC ../unittest/function_trace.c) add_executable(ofdm_stack ofdm_stack.c ../src/ofdm.c ../src/octave.c ../src/kiss_fft.c ../src/modem_probe.c ../src/mpdecode_core.c ../src/phi0.c ../src/filter.c) if (CMAKE_C_COMPILER MATCHES "gcc$") target_link_libraries(ofdm_stack function_trace m -no-pie "-Wl,-Map=ofdm_stack.map") target_compile_options(ofdm_stack PUBLIC -fstack-usage -finstrument-functions) else() target_link_libraries(ofdm_stack function_trace m -no-pie) target_compile_options(ofdm_stack PUBLIC -finstrument-functions) endif() add_definitions(-D__UNITTEST__) add_executable(tnewamp1 tnewamp1.c ../src/quantise.c ../src/newamp1.c ../src/mbest.c ../src/kiss_fft.c ../src/sine.c ../src/nlp.c ../src/dump.c ../src/octave.c ${CODEBOOKS}) target_link_libraries(tnewamp1 codec2) add_executable(compare_ints compare_ints.c) add_executable(compare_floats compare_floats.c) add_executable(test_phi0 test_phi0.c ../src/phi0.c) target_link_libraries(test_phi0 m) add_executable(tst_codec2_fft_init tst_codec2_fft_init.c) target_link_libraries(tst_codec2_fft_init m codec2) add_executable(tvq_mbest tvq_mbest.c) add_executable(tfreedv_800XA_rawdata tfreedv_800XA_rawdata.c) target_link_libraries(tfreedv_800XA_rawdata codec2) add_executable(tfreedv_2400A_rawdata tfreedv_2400A_rawdata.c) target_link_libraries(tfreedv_2400A_rawdata codec2) add_executable(tfreedv_2400B_rawdata tfreedv_2400B_rawdata.c) target_link_libraries(tfreedv_2400B_rawdata codec2) add_executable(tfsk_llr tfsk_llr.c) target_link_libraries(tfsk_llr codec2 m) add_executable(thash thash.c) target_link_libraries(thash codec2 m) add_executable(tqam16 tqam16.c) target_link_libraries(tqam16 codec2 m) add_executable(t16_8 t16_8.c ../src/fdmdv.c ../src/kiss_fft.c) target_link_libraries(t16_8 codec2) add_executable(t16_8_short t16_8_short.c ../src/fdmdv.c ../src/kiss_fft.c) target_link_libraries(t16_8_short codec2) codec2-1.0.1/unittest/compare_floats.c000066400000000000000000000037451412132000500176660ustar00rootroot00000000000000/* compare floats - a test utility */ #include #include #include #include #include #include /* Declarations */ /* Globals */ /* Main */ int main(int argc, char *argv[]) { char usage[] = "Usage: %s [-t tolerance] file1 file2\n"; float tol = .001; int opt; while ((opt = getopt(argc, argv, "t:")) != -1) { switch (opt) { case 't': tol = atof(optarg); break; default: fprintf(stderr, usage, argv[0]); exit(1); } } if ((optind + 2) > argc) { fprintf(stderr, usage, argv[0]); exit(1); } char *fname1 = argv[optind++]; char *fname2 = argv[optind++]; FILE *f1 = fopen(fname1, "rb"); if (f1 == NULL) { fprintf(stderr, "Error opening file1 \"%s\": ", fname1); perror(NULL); exit(1); } FILE *f2 = fopen(fname2, "rb"); if (f2 == NULL) { fprintf(stderr, "Error opening file2 \"%s\": ", fname2); perror(NULL); exit(1); } float data1, data2; int count = 0; int errors = 0; double rms_sum = 0; while (fread(&data1, sizeof(float), 1, f1)) { if (!fread(&data2, sizeof(float), 1, f2)) { fprintf(stderr, "Error: file2 is shorter!"); exit(1); } float err = fabsf((data1 - data2) / data1); if (err > tol) { errors ++; printf("%d %g %g %g\n", count, data1, data2, err); } rms_sum += (err * err); count ++; } if (fread(&data2, sizeof(float), 1, f2)) { fprintf(stderr, "Error: file1 is shorter\n"); exit(1); } if (errors) { printf("Fail: %d errors\n", errors); printf(" rms error = %g\n", ((double)rms_sum/count)); exit(1); } else printf("Pass\n"); exit(0); } // main /* vi:set ts=4 et sts=4: */ codec2-1.0.1/unittest/compare_ints.c000066400000000000000000000075201412132000500173460ustar00rootroot00000000000000/* compare ints - a test utility */ #include #include #include #include #include /* Declarations */ /* Globals */ /* Functions */ int get_data(FILE *f, int64_t *dd, int signed_flag, int bytes) { int res; int8_t d_8; int16_t d_16; uint8_t d_u8; uint16_t d_u16; // TODO Loop on reads until, but catch EOF!! if (signed_flag) { switch (bytes) { case 1: res = fread(&d_8, bytes, 1, f); *dd = d_8; break; case 2: res = fread(&d_16, bytes, 1, f); *dd = d_16; break; default: fprintf(stderr, "Error: unsupported size %d bytes\n", bytes); exit(1); } } else { // unsigned switch (bytes) { case 1: res = fread(&d_u8, bytes, 1, f); *dd = d_u8; break; case 2: res = fread(&d_u16, bytes, 1, f); *dd = d_u16; break; default: fprintf(stderr, "Error: unsupported size %d bytes\n", bytes); exit(1); } } if (res != 1) return(0); else return(1); } /* Main */ int main(int argc, char *argv[]) { char usage[] = "Usage: %s [-b size_in_bytes] [-c] [-s] [-t tolerance] [-n numerrorstoexit] file1 file2\n"; int bytes = 1; int count_errors = 0; int signed_flag = 0; int tol = 1; int numerrorstoexit = -1; int opt; while ((opt = getopt(argc, argv, "b:cst:n:")) != -1) { switch (opt) { case 'b': bytes = atoi(optarg); break; case 'c': count_errors = 1; break; case 's': signed_flag = 1; break; case 'n': numerrorstoexit = atoi(optarg); break; case 't': tol = atof(optarg); break; default: fprintf(stderr, usage, argv[0]); exit(1); } } if ((optind + 2) > argc) { fprintf(stderr, usage, argv[0]); exit(1); } char *fname1 = argv[optind++]; char *fname2 = argv[optind++]; FILE *f1 = fopen(fname1, "rb"); if (f1 == NULL) { fprintf(stderr, "Error opening file1 \"%s\": ", fname1); perror(NULL); exit(1); } FILE *f2 = fopen(fname2, "rb"); if (f2 == NULL) { fprintf(stderr, "Error opening file2 \"%s\": ", fname2); perror(NULL); exit(1); } // Convert inputs to SIGNED long values int64_t data1, data2; int count = 0; int errors = 0; int rms_sum = 0; while (get_data(f1, &data1, signed_flag, bytes)) { if (!get_data(f2, &data2, signed_flag, bytes)) { fprintf(stderr, "Error: file2 is shorter\n"); exit(1); } uint64_t err = llabs(data1 - data2); if (err > tol) { errors ++; printf("%d %lld %lld\n", count, data1, data2); if (numerrorstoexit != -1) if (errors > numerrorstoexit) { printf("reached errors: %d, bailing!", numerrorstoexit); exit(1); } } rms_sum += (err * err); count ++; } if (get_data(f2, &data2, signed_flag, bytes)) { fprintf(stderr, "Error: file1 is shorter\n"); exit(1); } if (count_errors) exit(errors); else { if (errors) { printf("Fail: %d errors\n", errors); printf(" rms error = %f\n", ((double)rms_sum/count)); exit(1); } else printf("Pass\n"); exit(0); } } // main /* vi:set ts=4 et sts=4: */ codec2-1.0.1/unittest/fdmdv_mem.c000066400000000000000000000046521412132000500166240ustar00rootroot00000000000000/*---------------------------------------------------------------------------*\ FILE........: fdmdv_mem.c AUTHOR......: David Rowe DATE CREATED: 25 June 2014 Prints out the memory used by the FDMDV modem states. Used to optimise memory use for thw STM32F4 port. \*---------------------------------------------------------------------------*/ /* Copyright (C) 2014 David Rowe All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 2.1, as published by the Free Software Foundation. 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 Lesser General Public License along with this program; if not, see . */ #include #include #include #include #include #include "fdmdv_internal.h" extern float pilot_coeff[]; int main(int argc, char *argv[]) { struct FDMDV *fdmdv; printf("struct FDMDV..........: %ld\n", sizeof(struct FDMDV)); printf("prev_tx_symbols.......: %ld\n", sizeof(fdmdv->prev_tx_symbols)); printf("tx_filter_memory......: %ld\n", sizeof(fdmdv->tx_filter_memory)); printf("phase_tx..............: %ld\n", sizeof(fdmdv->phase_tx)); printf("freq..................: %ld\n", sizeof(fdmdv->freq)); printf("pilot_lut.............: %ld\n", sizeof(fdmdv->pilot_lut)); printf("pilot_baseband1.......: %ld\n", sizeof(fdmdv->pilot_baseband1)); printf("pilot_baseband2.......: %ld\n", sizeof(fdmdv->pilot_baseband2)); printf("pilot_lpf1............: %ld\n", sizeof(fdmdv->pilot_lpf1)); printf("pilot_lpf2............: %ld\n", sizeof(fdmdv->pilot_lpf2)); printf("S1....................: %ld\n", sizeof(fdmdv->S1)); printf("S2....................: %ld\n", sizeof(fdmdv->S2)); printf("phase_rx..............: %ld\n", sizeof(fdmdv->phase_rx)); printf("rx_fdm_mem............: %ld\n", sizeof(fdmdv->rx_fdm_mem)); printf("rx_filter_mem_timing..: %ld\n", sizeof(fdmdv->rx_filter_mem_timing)); printf("phase_difference......: %ld\n", sizeof(fdmdv->phase_difference)); printf("prev_rx_symbols.......: %ld\n", sizeof(fdmdv->prev_rx_symbols)); return 0; } codec2-1.0.1/unittest/function_trace.c000066400000000000000000000010201412132000500176530ustar00rootroot00000000000000#include static FILE *fp_trace; void __attribute__ ((constructor)) trace_begin (void) { fp_trace = fopen("function_trace.out", "w"); } void __attribute__ ((destructor)) trace_end (void) { if(fp_trace != NULL) { fclose(fp_trace); } } void __cyg_profile_func_enter (void *func, void *caller) { if(fp_trace != NULL) { fprintf(fp_trace, "e %p %p\n", func, caller); } } void __cyg_profile_func_exit (void *func, void *caller) { if(fp_trace != NULL) { fprintf(fp_trace, "x %p %p\n", func, caller); } } codec2-1.0.1/unittest/hts1a.h000066400000000000000000001262261412132000500157150ustar00rootroot00000000000000short hts1a_raw[] = { -14, -14, -8, -7, -11, -15, -14, -16, -24, -26, -25, -26, -22, -22, -24, -19, -19, -19, -26, -28, -28, -21, -16, -14, -19, -19, -18, -18, -16, -18, -26, -28, -35, -28, -19, -12, -12, -14, -15, -21, -16, -12, -9, -11, -5, -8, -7, -5, -8, -8, -7, 3, 3, -1, -2, -5, -1, -7, -5, -4, -4, -7, -5, -9, -8, -12, -21, -21, -28, -28, -24, -25, -29, -29, -31, -32, -28, -31, -35, -26, -35, -31, -28, -32, -26, -21, -22, -16, -15, -14, -18, -12, -19, -12, -12, -16, -15, -16, -16, -16, -12, -15, -12, -18, -18, -15, -19, -18, -16, -14, -15, -16, -16, -16, -14, -16, -11, -4, -8, -8, -9, -8, -15, -12, -11, -12, -9, -11, -8, -11, -14, -11, -18, -16, -14, -14, -9, -5, -8, -15, -16, -14, -16, -18, -15, -31, -32, -19, -15, -12, -16, -15, -18, -14, -12, -12, -16, -24, -25, -19, -18, -22, -21, -19, -16, -16, -14, -16, -24, -24, -19, -24, -24, -19, -21, -24, -25, -28, -25, -25, -26, -18, -12, -22, -25, -26, -25, -24, -24, -22, -21, -19, -16, -15, -12, -12, -14, -8, -12, -11, -5, -1, 0, 0, -1, -4, -4, -5, -7, -7, -11, -8, -11, -5, -4, -2, -8, -5, -12, -14, -14, -14, -12, -12, -7, -16, -21, -22, -22, -25, -28, -24, -31, -32, -33, -33, -35, -31, -29, -32, -36, -36, -35, -35, -32, -26, -35, -29, -22, -18, -11, -16, -14, -14, -11, -8, -8, -12, -11, -24, -25, -12, -8, -7, -9, -5, -9, -8, -4, -7, -5, -11, -11, -4, -5, -5, -8, -4, -8, -4, -8, -14, -8, -9, -12, -11, -15, -22, -21, -19, -22, -15, -22, -18, -15, -16, -18, -12, -14, -21, -19, -16, -19, -21, -22, -21, -25, -19, -26, -21, -19, -21, -19, -16, -15, -18, -9, -8, -9, -8, -14, -19, -15, -16, -16, -16, -12, -11, -12, -11, -11, -7, -19, -18, -14, -28, -28, -26, -28, -31, -31, -24, -25, -26, -29, -28, -31, -28, -24, -21, -19, -21, -16, -24, -24, -18, -16, -19, -12, -9, -12, -14, -12, -7, -9, -9, -5, -5, -9, -7, -5, -5, -4, -21, -25, -12, -5, 5, 10, 10, -1, -2, 3, -4, -7, -8, -5, -11, -12, -25, -26, -24, -33, -32, -29, -35, -36, -33, -38, -42, -38, -38, -36, -36, -33, -32, -38, -32, -28, -22, -18, -14, -9, -15, -9, -8, -11, -2, -2, -5, -2, 3, -2, -1, -4, -7, -12, -12, -12, -16, -15, -11, -11, -8, -7, -5, -9, -12, -12, -18, -19, -26, -26, -22, -22, -24, -21, -15, -12, -14, -18, -16, -15, -26, -26, -28, -26, -26, -25, -28, -25, -14, -12, -14, -18, -24, -14, -9, -5, -7, -9, -7, -8, -14, -11, -8, -15, -8, -7, -5, -2, -5, -5, -8, -15, -15, -16, -33, -35, -25, -15, -14, -18, -22, -18, -22, -24, -29, -31, -32, -33, -31, -36, -31, -25, -31, -33, -28, -26, -22, -25, -25, -16, -18, -16, -15, -15, -14, -11, -7, -5, -4, -8, -4, -5, -8, -4, 0, -7, -1, -1, -9, -11, -12, -14, -15, -9, -8, -7, -5, -11, -12, -12, -19, -15, -16, -16, -12, -18, -19, -19, -18, -15, -19, -24, -19, -25, -28, -26, -26, -26, -28, -26, -22, -21, -25, -19, -16, -16, -9, -9, -12, -7, -11, -7, -12, -15, -18, -24, -16, -16, -12, -19, -18, -16, -25, -24, -22, -25, -21, -25, -24, -24, -19, -15, -26, -19, -14, -19, -16, -18, -26, -28, -16, -4, 10, 15, 12, 13, 10, 8, 8, -7, -11, -19, -29, -31, -33, -29, -26, -26, -26, -22, -15, -16, -15, -19, -18, -19, -12, -15, -21, -21, -24, -22, -19, -19, -15, -16, -16, -24, -18, -25, -24, -24, -26, -21, -22, -22, -18, -16, -19, -22, -22, -19, -24, -19, -16, -19, -15, -16, -12, -4, -9, -19, -12, -15, -19, -16, -16, -15, -14, -12, -12, -11, -8, -9, -9, -12, -11, -11, -8, -9, -5, 5, -1, -1, -4, -8, -8, -8, -9, -8, -7, -11, -19, -19, -18, -26, -21, -24, -24, -26, -35, -32, -36, -31, -26, -28, -26, -25, -22, -26, -35, -35, -36, -45, -45, -33, -28, -19, -16, -9, -14, -12, -5, -11, -8, -7, -5, -5, 2, -2, -5, 0, -7, -5, -11, -14, -14, -8, -8, -7, -9, -11, -11, -15, -15, -14, -12, -14, -18, -16, -9, -12, -12, -14, -16, -22, -25, -26, -31, -29, -26, -29, -25, -22, -19, -18, -24, -21, -24, -19, -12, -15, -15, -16, -15, -14, -16, -15, -16, -24, -19, -22, -26, -24, -19, -18, -19, -15, -11, -5, -2, -2, -4, -7, -4, -8, -8, -11, -15, -11, -9, -7, -9, -4, 2, -8, -1, -2, -12, -9, -15, -21, -31, -38, -32, -32, -35, -31, -28, -33, -32, -35, -33, -33, -36, -36, -42, -45, -43, -33, -29, -25, -21, -14, -12, -11, -16, -15, -12, -14, -15, -15, -9, -2, -2, 0, -5, -4, -2, 0, 8, 9, 10, 12, 3, 6, 5, 9, 3, -7, -9, -25, -32, -25, -11, -1, 2, -1, -9, -15, -12, -15, -21, -29, -35, -39, -39, -31, -33, -33, -26, -28, -29, -31, -33, -26, -24, -22, -24, -21, -18, -15, -18, -26, -25, -22, -18, -21, -24, -26, -35, -28, -26, -26, -24, -22, -16, -18, -22, -15, -22, -24, -16, -14, -11, -4, 3, 5, 3, 8, 8, 6, 0, 6, 3, -5, 0, 6, -5, -5, -8, -11, -14, -19, -21, -24, -25, -28, -28, -22, -28, -38, -38, -26, -26, -22, -32, -31, -26, -18, -12, -11, -9, -16, -21, -19, -16, -16, -18, -12, -12, -8, -7, -15, -16, -16, -19, -21, -22, -22, -22, -25, -32, -29, -35, -32, -33, -33, -29, -25, -18, -15, -16, -12, -12, -8, -2, 0, 6, 2, 0, 5, 2, -5, -1, -5, -8, -8, -8, -9, -15, -12, -11, -5, -9, -18, -19, -22, -16, -14, -11, -2, -2, -8, -16, -21, -22, -19, -24, -24, -16, -16, -12, -7, -8, -5, -8, -16, -24, -29, -35, -36, -36, -38, -41, -38, -43, -41, -39, -35, -32, -31, -32, -32, -28, -24, -24, -19, -16, -18, -12, -2, -1, 5, 5, -9, -25, -21, -15, -14, -15, -14, -18, -16, -12, -11, -5, -2, -7, -11, -7, -18, -11, -5, -2, 0, -2, 0, 0, -5, -11, -14, -12, -14, -14, -16, -18, -18, -29, -38, -38, -42, -46, -38, -35, -32, -31, -16, -5, 0, 12, 19, 20, 17, 20, 20, 16, 16, 12, 5, -7, -15, -14, -22, -25, -26, -26, -32, -38, -43, -45, -49, -55, -56, -52, -56, -48, -39, -33, -28, -31, -24, -29, -32, -26, -16, -7, -14, -11, -11, -16, -18, -29, -28, -24, -14, -11, -15, -4, -11, -12, -5, -2, 3, 5, 2, 10, 5, 6, 2, -1, -7, -7, -12, -14, -16, -22, -21, -18, -19, -22, -11, -1, 3, 2, 2, 3, 6, -2, -7, -15, -18, -24, -26, -31, -38, -41, -39, -36, -39, -33, -26, -24, -18, -19, -21, -19, -18, -16, -21, -21, -15, -14, -18, -24, -25, -31, -38, -43, -45, -46, -43, -39, -33, -28, -19, -11, -8, -4, 5, 12, 12, 17, 16, 9, 9, 10, 6, 8, -4, 3, 0, -5, -11, -14, -28, -26, -15, -24, -32, -32, -28, -32, -28, -18, -22, -22, -15, -15, -24, -25, -26, -25, -16, -16, -18, -22, -21, -26, -29, -25, -22, -19, -16, -9, -4, 2, 6, 10, 3, 2, 0, -7, -7, -14, -16, -15, -22, -26, -29, -25, -25, -22, -29, -35, -25, -19, -14, -15, -12, -15, -26, -24, -29, -28, -26, -26, -29, -32, -38, -42, -38, -33, -29, -25, -25, -21, -14, -5, 5, 6, 8, 6, 2, 0, -1, -9, -16, -18, -19, -22, -22, -21, -15, -18, -22, -11, -8, -11, -7, 5, 2, -2, -4, -5, -7, -5, 6, -7, -9, -8, -19, -22, -24, -26, -29, -33, -29, -25, -24, -21, -21, -24, -29, -28, -26, -25, -21, -26, -26, -25, -31, -31, -38, -39, -38, -33, -21, -9, -5, -4, 5, 3, -2, -7, -8, -9, -15, -16, -16, -22, -21, -24, -24, -16, -22, -21, -24, -26, -22, -16, -9, -11, -2, 6, 2, -4, -9, -16, -21, -21, -21, -24, -22, -22, -19, -18, -16, -12, -14, -12, -4, -2, -4, -8, -5, -5, -11, 0, 2, -7, -8, -12, -14, -19, -24, -25, -28, -9, -5, -29, -33, -22, -22, -21, -15, -18, -24, -21, -26, -29, -25, -33, -29, -29, -29, -31, -28, -28, -25, -24, -21, -25, -14, -7, -5, -16, -19, -21, -28, -33, -38, -36, -26, -25, -22, -8, -5, 0, 5, 10, 16, 13, 10, 8, 5, -4, -1, -7, -11, -18, -28, -31, -42, -43, -38, -38, -22, -11, -8, -7, 6, 6, 3, 13, 8, -7, -2, -9, -16, -11, -15, -18, -24, -28, -24, -25, -22, -25, -28, -25, -38, -39, -35, -36, -14, -25, -42, -16, -9, -29, -28, -26, -31, -29, -39, -29, -12, -7, -1, -2, -4, 0, 2, -5, -15, -21, -35, -32, -22, -19, -18, -19, -5, 6, 0, -14, -26, -11, 0, -19, -24, -24, -25, -25, -31, -35, -32, -19, -5, -7, -1, 0, 6, 8, 0, -8, -5, 9, 9, 6, 2, 9, 13, -7, -26, -36, -35, -42, -56, -49, -42, -42, -36, -28, -12, -12, -21, -18, -24, -19, -22, -25, -24, -21, -18, -15, -15, -8, -7, 3, -4, -11, -22, -22, -16, -24, -21, -7, -22, -31, -16, -21, -11, -12, -21, -26, -28, -19, -28, -31, -25, -38, -38, -29, -33, -38, -33, -9, 10, 19, 5, -4, -4, -1, -12, -21, -18, -16, -16, -19, -8, -5, -7, -2, 0, 12, 16, 15, 2, -14, -12, -22, -29, -42, -36, -25, -16, -18, -19, -12, 6, 2, 2, 9, -4, -11, -19, -25, -24, -28, -35, -43, -35, -25, -41, -45, -42, -39, -35, -41, -33, -29, -18, -2, -19, -32, -12, 3, -8, -11, -26, -35, -29, -29, -24, -15, -9, -8, -1, 2, 0, -1, -2, 2, -1, -8, -9, -18, -21, -26, -32, -35, -26, -15, -9, -7, -2, -2, 2, 13, 12, -2, -11, -15, -18, -28, -29, -24, -28, -32, -31, -28, -15, -9, -21, -4, 10, -7, -5, -14, -18, -9, -21, -25, -29, -32, -36, -31, -16, -24, -18, -18, -22, -25, -32, -31, -12, -8, -8, 2, -2, 15, 9, -14, -9, -9, 0, -1, -22, -24, -18, -32, -29, -29, -39, -33, -24, -41, -33, -18, -33, -28, -32, -28, -24, -35, -32, -24, -21, -14, -21, -25, -18, -9, -8, -11, 0, 3, 5, -5, -14, -19, -15, -9, 2, -2, 0, 12, 10, 19, 22, 8, -2, -5, -9, -22, -16, -5, -16, -21, -19, -16, -16, -26, -29, -28, -25, -1, -2, -15, -19, -29, -35, -35, -38, -36, -38, -29, -46, -56, -38, -45, -62, -55, -48, -33, -42, -79, -93, 33, 207, 203, 112, 30, -29, -28, -70, -148, -176, -96, -69, -87, -32, -45, -24, 46, 64, 76, 46, 43, 60, 39, 20, 12, 6, -35, -26, -28, -67, -8, -18, -55, 6, -38, -75, -24, -5, -5, -25, -25, -35, 22, 93, 23, -28, -55, -83, -42, -83, -103, -56, -22, 44, 3, -33, 6, 8, 12, 17, -5, -131, -189, 100, 265, 40, 49, 135, -59, 12, 51, -123, -87, -182, -298, -226, -192, -205, -198, -49, 30, 39, 183, 238, 183, 141, 187, 132, 83, 176, 16, -116, -90, -118, -138, -189, -123, -137, -147, -9, -28, 49, 125, 66, 29, 43, 46, -70, -100, -75, -121, -117, -109, -58, -28, 29, 77, 74, 128, 118, 63, 12, 56, 158, 90, 0, -29, -127, -103, -33, -137, -140, -18, -43, -66, -7, -45, -73, 6, 42, -35, -111, -104, -92, -147, -526, -1264, -1575, -765, 438, 997, 1207, 1339, 1320, 1748, 2310, 2055, 1176, 299, -434, -1009, -1257, -1632, -2439, -2960, -2928, -2615, -2054, -1308, -736, -303, 445, 1377, 2112, 2587, 2728, 2464, 2061, 1838, 1525, 888, 182, -511, -1203, -1516, -1425, -1447, -1556, -1386, -1076, -642, -16, 437, 547, 662, 915, 1092, 1055, 883, 519, 53, -259, -472, -771, -1037, -1070, -981, -814, -511, -203, 2, 251, 519, 616, 631, 648, 582, 476, 391, 271, -18, -305, -348, -399, -478, -389, -348, -351, -222, -121, -386, -1735, -3442, -2533, 573, 2049, 2601, 3434, 2708, 2736, 4175, 4209, 2551, 296, -1119, -2477, -3494, -3361, -4179, -5485, -5636, -4580, -3316, -2031, -22, 1181, 1763, 3271, 4874, 5510, 5224, 4612, 3186, 1425, 652, -147, -1598, -2834, -3484, -3818, -3613, -2537, -1594, -1278, -574, 734, 1997, 2818, 3281, 3233, 2488, 1960, 1561, 520, -672, -1616, -2288, -2651, -2450, -2115, -2137, -1772, -998, -341, 312, 891, 1208, 1322, 1574, 1687, 1285, 810, 427, -18, -404, -664, -1030, -1306, -1064, -656, -397, -182, -16, 170, 514, 922, 1023, 956, 915, 626, -42, -1701, -4508, -5074, -1033, 2559, 2488, 3256, 3525, 2940, 5224, 6208, 3992, -50, -2480, -3034, -4628, -4714, -5427, -7560, -7667, -5645, -2855, -1414, 621, 2572, 3066, 5038, 7469, 7951, 6155, 4438, 2841, 544, -373, -1233, -3376, -5177, -5271, -4414, -3653, -2121, -788, -392, 720, 2701, 3972, 4022, 3914, 3451, 2206, 1426, 796, -632, -2163, -3381, -4159, -4113, -3045, -1776, -1312, -743, 275, 1098, 1851, 2335, 2131, 1527, 1259, 1200, 713, 73, -516, -1176, -1677, -1755, -1672, -1670, -1336, -625, 37, 718, 1435, 1620, 1412, 1445, 1137, 438, 388, 645, 505, 194, -907, -3965, -7195, -5524, 1111, 4509, 3145, 3535, 3294, 3846, 7424, 7315, 3111, -1601, -3095, -3366, -4972, -5281, -7332, -9647, -8219, -4862, -1956, -808, 1125, 2677, 3750, 7120, 9202, 7949, 5515, 3979, 2538, 716, -4, -1881, -5029, -6072, -5264, -4448, -3573, -2254, -1472, -802, 1513, 3981, 4536, 4289, 4083, 3336, 2484, 2141, 963, -1417, -3088, -3937, -4523, -3991, -2694, -2023, -1694, -593, 580, 1431, 2310, 2417, 1777, 1433, 1598, 1241, 374, -69, -753, -1490, -1449, -1357, -1625, -1628, -1176, -845, -356, 723, 1418, 1370, 1530, 1663, 1222, 1057, 1140, 345, -576, -628, -1435, -4343, -6010, -2139, 2712, 2651, 2832, 3744, 2781, 5433, 7295, 4184, 117, -2377, -2990, -4553, -4853, -5022, -7143, -6439, -4074, -2314, -1340, -260, 822, 720, 2570, 4741, 4967, 4932, 4619, 4026, 2856, 2222, 1221, -911, -1898, -2510, -2962, -2593, -1870, -1447, -1553, -1085, -648, -342, 240, 418, 505, 623, 1054, 1416, 1337, 1193, 544, -101, -348, -407, -426, -604, -573, -519, -297, 9, -235, -589, -927, -952, -563, -310, 9, 168, 219, 369, 245, 40, -235, -451, -287, 46, 415, 683, 836, 842, 670, 489, 316, 166, 54, -36, -65, 36, -96, -883, -1693, -1570, -756, -117, 340, 975, 1918, 2596, 2086, 1068, 199, -509, -625, -662, -529, 71, -33, -597, -1067, -1512, -1670, -1870, -1901, -1547, -974, -269, 142, 260, 272, 56, -164, -24, 509, 1019, 1292, 1496, 1616, 1660, 1613, 1357, 966, 660, 605, 597, 480, 275, -134, -671, -1134, -1376, -1473, -1534, -1564, -1496, -1237, -812, -402, -128, 64, 267, 431, 522, 479, 332, 320, 468, 565, 548, 407, 180, -63, -264, -455, -638, -685, -574, -358, -32, 238, 328, 329, 371, 427, 438, 448, 424, 383, 441, 482, 29, -1189, -2337, -1898, -396, 261, 599, 1708, 2529, 2347, 1500, 312, -430, -148, 278, 227, 432, 471, -532, -1710, -2265, -2405, -2323, -2014, -1597, -1182, -690, -406, -567, -617, -358, -89, 343, 1088, 1780, 1952, 1833, 1659, 1418, 1391, 1493, 1446, 1302, 1180, 911, 415, -45, -492, -962, -1186, -1142, -1095, -1100, -1196, -1422, -1556, -1353, -995, -586, -59, 257, 287, 287, 197, 3, -36, 156, 418, 737, 932, 759, 427, 165, -84, -252, -225, -148, -84, 34, 39, -96, -169, -168, -72, 63, 179, 360, 539, 485, -67, -1439, -2707, -1793, 379, 1014, 1030, 2144, 2711, 2106, 1211, -4, -525, 364, 955, 628, 584, 170, -1432, -2769, -2892, -2525, -2075, -1551, -1390, -1363, -1025, -944, -1087, -615, 145, 594, 1099, 1758, 1969, 1712, 1453, 1289, 1384, 1843, 2083, 1800, 1387, 975, 400, -86, -260, -446, -681, -781, -918, -1183, -1481, -1768, -1877, -1558, -1020, -515, -28, 192, 9, -261, -322, -178, 98, 444, 706, 805, 761, 492, 145, -5, 6, 20, 53, 81, 27, -103, -249, -325, -219, -9, 139, 291, 473, 547, 400, 42, -904, -2367, -2330, -46, 1336, 924, 1518, 2371, 1895, 1372, 564, -271, 454, 1397, 1020, 578, 328, -986, -2542, -2821, -2398, -1994, -1564, -1564, -1956, -1922, -1598, -1434, -879, 175, 771, 983, 1429, 1726, 1615, 1534, 1616, 1721, 2049, 2369, 2073, 1426, 888, 304, -192, -219, -94, -284, -630, -961, -1359, -1618, -1696, -1748, -1454, -778, -324, -128, -18, -195, -423, -382, -226, 70, 483, 701, 628, 428, 210, 10, -22, 114, 227, 272, 257, 169, 25, -75, -138, -118, 102, 328, 287, 159, 135, -135, -1224, -2588, -2139, 243, 1339, 861, 1548, 2238, 1746, 1333, 575, 20, 917, 1538, 977, 662, 405, -964, -2463, -2640, -2228, -1890, -1544, -1616, -1970, -1980, -1750, -1567, -867, 258, 771, 834, 1153, 1445, 1448, 1465, 1600, 1732, 2025, 2283, 1981, 1387, 883, 305, -131, -60, 112, -138, -472, -713, -1204, -1632, -1686, -1616, -1274, -676, -513, -574, -314, -246, -516, -545, -349, -28, 512, 853, 680, 427, 319, 192, 159, 289, 343, 264, 254, 193, -29, -143, -148, -107, 152, 371, 271, -62, -913, -2303, -2531, -572, 992, 788, 1179, 2054, 1888, 1608, 1079, 285, 625, 1391, 1211, 911, 815, -239, -1829, -2473, -2303, -1946, -1557, -1548, -1949, -2143, -1976, -1775, -1202, -178, 458, 614, 910, 1272, 1374, 1395, 1466, 1518, 1745, 2114, 2090, 1680, 1224, 657, 53, -175, -52, -45, -203, -454, -892, -1329, -1492, -1447, -1204, -814, -655, -631, -406, -247, -334, -468, -526, -358, 83, 466, 547, 455, 343, 228, 230, 309, 335, 371, 394, 352, 231, 64, -60, -48, 104, 202, -11, -747, -2004, -2576, -1166, 550, 643, 737, 1650, 1868, 1642, 1375, 674, 546, 1071, 1077, 943, 1115, 595, -841, -1963, -2249, -2154, -1810, -1444, -1523, -1822, -1890, -1813, -1512, -726, 32, 333, 650, 1095, 1306, 1343, 1429, 1450, 1429, 1627, 1802, 1692, 1440, 1016, 360, -106, -130, -84, -157, -290, -645, -1068, -1270, -1301, -1210, -984, -715, -532, -436, -353, -370, -471, -464, -363, -165, 206, 496, 517, 400, 306, 192, 166, 284, 373, 383, 386, 383, 319, 224, 135, 127, 115, -491, -1799, -2388, -1161, 363, 522, 420, 1024, 1442, 1559, 1517, 1026, 750, 863, 628, 452, 800, 684, -348, -1405, -1942, -2143, -2044, -1704, -1476, -1461, -1526, -1621, -1422, -716, 5, 325, 585, 1013, 1288, 1380, 1476, 1487, 1409, 1382, 1354, 1255, 1174, 968, 519, 129, -52, -240, -438, -441, -399, -604, -941, -1258, -1284, -315, 394, -628, -1085, -532, -675, -126, -277, -1573, -522, 598, 237, 407, 805, 1075, 653, 318, 362, -59, -56, -240, -233, 312, -489, -2514, -4669, -4202, -712, 2020, 3805, 4136, 2529, 3440, 5718, 5515, 3867, 1626, -647, -2193, -2176, -1803, -3276, -5465, -7012, -7661, -6402, -3818, -2200, -1338, 105, 1535, 3292, 5837, 7231, 6633, 5443, 4310, 3120, 2167, 863, -1674, -4124, -5139, -5305, -4852, -3473, -1936, -1080, -52, 1583, 2812, 3833, 4309, 3278, 2191, 1920, 1330, 168, -1132, -2559, -3548, -3413, -3045, -3000, -2440, -1105, 424, 1562, 2003, 1718, 1409, 1794, 1922, 959, -191, -649, -329, -22, -2232, -7587, -10133, -6123, 3815, 11010, 10048, 7655, 4465, 7798, 10768, 5766, -1615, -9642, -12287, -10166, -6666, -6229, -9606, -9109, -5832, -1326, 4475, 7162, 6468, 5722, 6975, 8255, 7576, 5333, 919, -3576, -5125, -4751, -4305, -4140, -4257, -4346, -2541, 1238, 4948, 7386, 6832, 4496, 3434, 2708, 1527, -206, -3454, -6091, -5990, -4237, -2710, -1963, -1253, -324, 1191, 2740, 2787, 2061, 1796, 1911, 1408, -65, -1632, -2642, -2612, -2111, -2132, -2119, -703, 1824, 2113, -3052, -10217, -9285, 2474, 15080, 14696, 9168, 3569, 1871, 8840, 7733, -863, -10981, -16373, -12835, -7172, -2606, -4832, -7242, -3728, 1232, 7185, 9862, 7265, 2730, 1101, 4013, 4560, 2412, -866, -5642, -6610, -3630, -702, 380, 20, -726, -825, 2400, 6645, 7202, 4332, 728, -1582, -1799, -535, -1312, -4539, -5701, -4256, -1013, 2246, 2495, 1214, 859, 1630, 1894, 788, -715, -1510, -1008, -797, -1376, -2139, -2347, -1166, 64, 874, 1826, 2927, 1167, -7529, -13865, -7119, 8693, 17405, 11376, 5806, -706, 3910, 12384, 4898, -5841, -15567, -15268, -9199, -2915, -2, -6828, -7298, -645, 4931, 9593, 8510, 3404, -1029, 1545, 5927, 3179, 704, -3058, -7267, -5092, -1456, 523, 578, 803, 476, 128, 4503, 7132, 4843, 2484, -314, -2661, -1629, -312, -2667, -4845, -4645, -3556, -106, 3033, 2307, 815, 1327, 2202, 1608, 238, -1347, -2299, -1676, -1349, -2026, -2123, -993, 185, 601, 1363, 2536, 1356, -6385, -14216, -8118, 9341, 18113, 10028, 5714, -662, 2201, 13868, 5555, -6998, -16122, -13932, -7484, -3936, -511, -7031, -7875, 1569, 7356, 9852, 7233, 2382, -812, 2168, 7258, 2096, -2579, -3745, -6101, -3546, -123, 70, -1707, -134, 2587, 1895, 4233, 5028, 2090, 1861, 1389, -720, -1444, -1278, -3112, -4277, -3164, -2898, -1520, 861, 1640, 1528, 1967, 2726, 1695, 329, -492, -1697, -1969, -1929, -2346, -2041, -600, 480, 449, 1232, 2001, -2082, -11654, -11999, 3894, 17853, 11683, 5279, 1994, -1245, 12112, 9934, -5184, -14616, -13918, -5837, -3437, -2238, -7345, -9704, 1457, 9286, 8837, 4980, 1010, 1222, 4271, 7312, 1819, -5336, -4002, -3308, -1866, -985, -3300, -3466, -199, 5187, 4104, 1751, 2997, 2126, 3600, 3670, -678, -3106, -1891, -1261, -2368, -2264, -3919, -3476, 176, 1251, 1354, 400, 691, 2138, 1896, 1695, -373, -2231, -1989, -1816, -1622, -1393, -557, -261, 839, 1234, -6099, -13830, -6704, 12207, 17650, 5219, 4873, 2652, 5438, 14840, 2038, -11781, -14722, -7010, -2482, -5104, -8182, -11393, -3796, 9197, 8387, 2298, 752, 2771, 7659, 8564, 3986, -5080, -5073, 893, -749, -2984, -6554, -6884, -950, 4891, 4912, -866, 561, 5333, 7261, 5833, -1037, -4326, -1758, 1554, -393, -5394, -5454, -3454, 179, 2665, -1061, -2457, 677, 3635, 4058, 1347, -451, -846, -346, -403, -2221, -2535, -1778, -671, 454, -2159, -10071, -12945, -179, 17116, 12061, 403, 7550, 7610, 11287, 11279, -5843, -14361, -7034, -1442, -6719, -11613, -12495, -8241, 4100, 9619, -682, -1891, 5146, 9786, 11057, 5758, -974, -3229, 3852, 2712, -6304, -8209, -8290, -4368, 1412, 1119, -2455, -1243, 5528, 8521, 7421, 3537, -1505, 772, 3590, -341, -4257, -4940, -4165, -2414, -583, -3011, -4147, 39, 2313, 2528, 2055, 1207, 1947, 2715, 1007, -2408, -2377, -414, -1230, -1867, -3633, -9724, -12863, -3041, 14045, 10335, -2909, 9310, 13964, 12254, 12191, -3180, -10105, -345, -192, -11763, -16662, -13357, -7749, 648, 2417, -6327, -892, 9776, 11498, 8643, 4306, 4143, 5477, 7138, 935, -8335, -6130, -4015, -5890, -6088, -6166, -3580, 1133, 4766, 3210, 4129, 8211, 5810, 3999, 3155, 502, -186, -1683, -4503, -5169, -3667, -3607, -4424, -3364, -1626, 496, 2096, 1967, 2167, 3503, 3642, 1586, -283, -332, -32, -1544, -4229, -7899, -12648, -8414, 7338, 10181, -4368, 4177, 17458, 13517, 13236, 4243, -5162, 1964, 2892, -11114, -17844, -12323, -7832, -6496, -4604, -7565, -3331, 7284, 7605, 3611, 5653, 10209, 9934, 7845, 4885, -679, -230, -329, -7610, -9785, -6780, -5146, -4804, -3114, -808, 1753, 6140, 6461, 4152, 5323, 6386, 4387, 857, -710, -1095, -2162, -3546, -6282, -6035, -3066, -2787, -2956, -1881, 510, 2940, 3258, 2654, 2028, 2429, 2474, 1033, -233, -2762, -7034, -11056, -7771, 4646, 5433, -5715, 3990, 16374, 11856, 10648, 5494, -18, 5462, 1544, -10835, -12677, -6704, -7160, -10246, -8169, -7359, -3156, 2089, -420, 260, 6647, 8892, 6911, 7202, 8552, 5729, 4090, 1688, -3204, -3246, -3532, -7259, -7538, -4539, -3069, -2792, -884, 932, 3421, 5464, 3526, 3536, 5345, 4133, 2168, 584, -281, -1044, -2500, -4101, -4951, -3804, -3109, -3549, -2503, -910, 410, 1643, 2037, 1937, 2188, 2788, 2315, -572, -6503, -9657, -1302, 7699, -1541, -6680, 9781, 13307, 6279, 7430, 3430, 3365, 5749, -4342, -10037, -4328, -4039, -10940, -9452, -4717, -5445, -3381, -2392, -2448, 2723, 4173, 2037, 4710, 9437, 7904, 4223, 5554, 4404, 1385, -43, -3303, -4253, -3654, -5194, -5691, -3290, -1456, -2081, -498, 1909, 2226, 3394, 3325, 2560, 4033, 3472, 1280, 1159, 354, -1428, -2003, -2912, -3889, -3756, -3522, -3245, -2163, -801, -58, 556, 1671, 2327, 2137, 1292, -3214, -7879, -365, 8792, -2058, -6971, 10764, 11376, 2080, 7475, 5194, 2926, 4953, -5039, -7315, -715, -5646, -12680, -6937, -1755, -6613, -5901, -2174, -1343, 2238, 575, -682, 5661, 9086, 4503, 2478, 7910, 6936, 1933, 1266, -19, -835, -2541, -5805, -4897, -2034, -3317, -5455, -1761, 1654, -167, -301, 2165, 3287, 3091, 2318, 1799, 3063, 3081, -334, -481, 970, -1720, -3691, -3239, -2820, -2991, -3206, -2470, -811, 529, 173, 716, 2623, 1564, -3845, -6581, 2529, 8041, -5370, -4499, 13582, 7503, -109, 8820, 5684, 4438, 3673, -6724, -2925, 1272, -9126, -12206, -2956, -2350, -9067, -5194, -1653, -1288, 390, -2551, 530, 6921, 4657, 798, 5477, 10107, 4739, 2049, 4361, 2961, 561, -2843, -4325, -1612, -2273, -6381, -5260, -109, -1162, -3773, -522, 1928, 1069, 328, 1702, 3025, 2946, 2046, 955, 2895, 2338, -1672, -1136, -243, -2378, -3644, -2902, -1987, -2112, -1495, -920, 270, 1683, 595, -992, -4240, -4096, 5163, 3365, -8693, 2644, 13871, 721, 2637, 10991, 4279, 5176, 1215, -4254, 1188, -1917, -10538, -7706, -284, -6409, -9875, -1970, -2217, -3228, -2424, -2575, 1869, 3423, 1156, 1937, 7458, 7611, 2627, 5239, 6736, 2968, 897, -186, -48, -1270, -3511, -4529, -2943, -1507, -4284, -3616, -532, -870, -1332, -877, 1520, 2161, 605, 2045, 3158, 2852, 1636, 554, 1527, 479, -1720, -2091, -1287, -1420, -2853, -1994, -642, -702, -651, -305, 809, -1228, -6310, -3284, 6444, 57, -9694, 6692, 12322, -2264, 4655, 10553, 3995, 5217, -66, -1294, 2509, -3061, -9247, -4914, 871, -7968, -9271, -1035, -3443, -5114, -3791, -1539, 1162, 829, 660, 2385, 7135, 5285, 1660, 6675, 7080, 2594, 1368, 2909, 2358, -1581, -2121, -1548, -1810, -3079, -4944, -2309, -1422, -3854, -2656, -14, 115, -634, 735, 2188, 2383, 1821, 1231, 2298, 1998, 6, -378, 210, -244, -1924, -1735, -317, -1118, -1969, -886, 5, -368, -410, -812, -3948, -5540, 1489, 4735, -7002, -3001, 13628, 3594, -3100, 10227, 7590, 2375, 2916, 1211, 1479, -631, -3134, -6350, -1802, -978, -10207, -6177, -1046, -4499, -6925, -3423, 1443, -1421, -584, 2444, 2882, 5009, 3294, 3499, 5559, 5411, 3077, 1096, 4451, 2750, -1703, -631, 383, -1183, -4035, -2959, -1350, -3069, -3804, -2694, -236, -904, -1864, 513, 1545, 1463, 455, 1019, 2475, 970, 230, 551, 798, 211, -916, -468, -216, -352, -1036, -1298, -138, -232, -750, -580, 40, -1001, -5521, -4688, 5193, 3492, -9220, 1094, 13917, 1137, -3168, 7172, 9020, 2400, -2739, 3367, 3104, -2930, -2350, -4632, -2215, -2432, -6993, -6593, -3793, 228, -5689, -6176, 2457, 1840, -1003, -1275, 4305, 5439, 333, 2841, 4258, 4558, 3512, 1238, 3254, 2559, 1884, -421, -1639, 1150, -1170, -3158, -3000, -1500, -1025, -3848, -2200, -277, -804, -1328, -773, 1228, 162, -96, 884, 812, 1234, 386, 645, 708, 381, 633, -624, -126, 146, -872, -957, -586, 223, -698, -781, 544, 261, 200, -328, -2742, -4169, 1605, 6106, -3718, -5298, 7649, 6832, -1261, -1390, 4067, 6767, -470, -1764, 1864, -38, 257, -2297, -3900, -2558, -1958, -1561, -6583, -4334, 516, -2266, -3226, -2200, 2206, 1794, -1454, 1915, 2658, 3157, 2576, 1949, 3410, 1896, 3450, 2310, 117, 1588, 1002, 917, -1493, -1639, 129, -2106, -2237, -2421, -1808, -1254, -2307, -727, -923, -651, 449, 46, 471, 268, 1098, 710, -117, 1031, 362, -192, -90, 398, 471, -775, -349, 271, 125, -277, -403, -31, 162, 682, -104, -477, 441, 534, 682, 136, -219, 114, -447, -2159, -2436, 1852, 1779, -2721, -567, 1960, 1799, 1184, -179, 1457, 1266, 629, 1852, -82, -866, -345, 61, -696, -3194, -1676, -726, -1898, -1857, -1936, -516, -494, -253, 808, -301, 554, 1218, 1193, 1286, 398, 1408, 1364, 843, 1215, 506, 400, 94, 496, 632, -447, -192, -387, -386, -505, -1087, -390, -591, -458, -196, -703, -257, -225, 87, 90, -470, 210, 258, -121, -270, -150, 267, -203, -43, 302, -101, 47, 244, 209, 63, 142, 353, 64, -158, -79, 312, -121, -985, -253, 224, -389, -603, -351, -28, 56, 376, 220, -222, 353, 635, 478, 441, 85, -219, -768, -570, 876, 771, -478, -189, 482, 529, 329, 211, 618, 210, -94, 575, 101, -511, -508, -454, -437, -1064, -996, -845, -1071, -617, -593, -579, -382, -58, 471, 253, 135, 289, 926, 1221, 374, 432, 626, 645, 834, 325, 203, 84, -69, -36, -344, -247, -287, -308, -257, -498, -158, -109, -198, 51, -60, -96, -138, -56, 98, -11, 54, -73, -188, -216, -209, -5, -219, -244, -28, -33, 68, -84, -84, 80, 73, 119, -16, 66, 277, 234, 102, -55, -16, 47, 2, -93, -193, -113, -55, 50, -53, -307, -24, 213, 98, 37, -31, -7, 158, 335, 243, 22, -138, -114, 100, -46, -12, 59, -209, -89, -387, -869, -338, 349, 214, -232, 57, 417, 335, 312, 414, 604, 151, 63, 478, 22, -329, -402, -315, -355, -754, -553, -526, -538, -332, -424, -199, -28, 5, -42, 94, 415, 271, 316, 136, 90, 485, 233, 202, 189, -7, 119, 61, 238, 200, -237, -254, -49, 136, 64, -79, 20, 129, 93, 9, 163, 95, -203, -49, -24, -295, -223, -110, -223, -396, -499, -400, -240, -33, 98, -1, 54, 179, 134, 97, 78, 77, 83, 197, 296, 85, 70, 180, -124, -99, 192, -128, -218, 57, -193, -181, 74, -113, -140, -164, -338, -179, 243, 366, -42, -277, -104, 326, 618, -14, -451, -82, 427, 529, -158, -205, 119, 80, 131, -334, -213, 29, -440, -203, -304, -836, -890, -169, 646, -67, -447, 172, 636, 871, 527, 643, 608, 262, 642, 401, -199, -569, -523, 23, -393, -1005, -848, -468, -303, -376, -237, -406, -287, 127, -24, 32, 107, 294, 410, 155, 369, 735, 1157, 894, 228, 386, 77, -355, -358, -547, -555, -441, -222, -250, -179, 108, 136, 345, 287, 162, -33, -328, -152, -376, -598, -557, -479, -116, -18, -29, -179, -58, 306, 129, 206, 138, 67, 337, 284, 462, 255, 127, 401, 97, 33, -124, -90, 194, -120, -174, -185, -107, -46, -546, -587, -11, 101, -488, -414, -205, -223, 604, 237, -778, -128, 197, -56, 346, -42, -471, 543, 625, 42, 398, 270, 352, 612, 226, -97, -545, -986, -945, 180, 328, -916, -487, 557, 1254, 725, -351, 751, 1211, 679, 478, -325, -431, -253, -48, -569, -1721, -1248, -523, -457, -1384, -1587, 255, 138, -553, -114, -66, 592, 657, 497, 609, 570, 1263, 1060, 490, 405, 734, 1057, -32, -239, 210, 68, -104, -819, -495, -219, -666, -557, -737, -389, -352, -536, -222, -397, 50, 74, -90, 59, -155, 548, 417, -70, 325, 411, 649, 248, 204, 645, 186, 219, 112, -70, -109, -446, -278, -542, -702, -586, -596, -352, -617, -462, -216, -222, 25, -247, -18, 456, 500, 543, 379, 531, 935, 1053, 335, 25, 672, 318, -28, -816, -2456, -1516, 306, -121, -1684, -1292, 1694, 2342, 236, 60, 2252, 3274, 1020, -188, 1232, 1227, -252, -1636, -1516, -904, -1924, -2779, -2848, -2019, -1439, -2150, -1854, -683, 309, 118, -339, 1142, 2092, 1617, 1234, 1834, 2791, 2007, 1289, 1677, 1789, 1272, 289, 217, 270, -317, -828, -1357, -1162, -1102, -1626, -1775, -1529, -903, -1022, -1267, -600, -113, -67, -274, 162, 766, 571, 349, 359, 1031, 1385, 534, 396, 1299, 1418, 144, -242, 669, 265, -870, -965, -404, -662, -1479, -1228, -777, -889, -1008, -862, -344, 42, 110, 54, 404, 1167, 1098, 571, 942, 1528, 1010, 363, 766, 584, -897, -1931, -1206, -25, -637, -1718, -533, 1422, 900, -67, 1286, 2403, 1732, 659, 1009, 1558, 228, -802, -877, -925, -1503, -2632, -2514, -2009, -2026, -2343, -2281, -906, -525, -892, -334, 718, 1351, 805, 1249, 2375, 2283, 1903, 1872, 2457, 2290, 1439, 1279, 1129, 860, 43, -607, -550, -942, -1455, -1851, -1708, -1513, -1901, -1768, -1313, -951, -920, -816, -144, 112, 93, 227, 495, 816, 757, 554, 582, 1324, 1474, 458, 711, 1433, 798, -86, 145, 626, -513, -1102, -339, -651, -1347, -1325, -907, -1033, -1323, -828, -642, -444, -113, -33, 411, 789, 969, 827, 980, 1337, 1112, 1075, 727, 374, 27, -933, -1200, -696, -79, -913, -1343, 905, 997, -110, 963, 1732, 1617, 723, 866, 1238, 71, -341, -839, -1040, -1214, -2238, -2186, -1978, -1808, -2140, -2121, -819, -845, -894, -189, 489, 830, 605, 1397, 1894, 1789, 1928, 1903, 2286, 2038, 1530, 1394, 1204, 891, -12, -249, -227, -934, -1386, -1439, -1292, -1607, -1796, -1363, -1213, -1135, -1015, -678, -307, -260, -90, 165, 466, 520, 431, 665, 667, 502, 727, 1115, 806, 367, 1021, 1166, 173, 83, 558, -42, -816, -562, -464, -1091, -1190, -917, -975, -1025, -924, -692, -450, -291, -193, 142, 595, 626, 686, 970, 1082, 990, 805, 867, 843, 319, 17, -195, -859, -952, -270, -365, -1005, -184, 815, 199, 328, 1211, 1085, 894, 789, 633, 384, -89, -576, -976, -924, -1469, -2074, -1662, -1558, -1801, -1713, -1090, -713, -758, -223, 244, 524, 791, 986, 1443, 1626, 1612, 1636, 1802, 1817, 1365, 1225, 1156, 713, 267, 23, -169, -603, -894, -988, -1146, -1236, -1325, -1250, -1073, -1022, -940, -717, -448, -366, -295, -28, 160, 192, 305, 522, 591, 553, 554, 502, 492, 703, 751, 373, 354, 735, 388, -164, 102, 87, -564, -675, -444, -706, -992, -816, -678, -750, -689, -505, -259, -150, -116, 176, 438, 465, 560, 815, 880, 638, 615, 851, 466, -58, 207, 19, -777, -959, -577, -66, -379, -678, 444, 939, 363, 565, 1241, 1237, 565, 407, 598, 155, -564, -972, -849, -1078, -1833, -1883, -1422, -1428, -1737, -1373, -620, -553, -545, 46, 621, 725, 734, 1186, 1600, 1530, 1380, 1579, 1777, 1428, 1053, 1111, 992, 452, 61, 49, -175, -716, -967, -907, -1025, -1335, -1370, -1115, -1063, -1161, -979, -622, -477, -475, -219, 156, 240, 243, 503, 785, 734, 650, 795, 826, 557, 315, 452, 605, 60, -329, 190, 153, -550, -494, -135, -389, -811, -593, -314, -597, -669, -386, -167, -210, -266, 78, 299, 187, 206, 471, 554, 353, 455, 582, 393, 261, 217, 119, -53, -186, -361, -647, -732, -604, -236, -86, -325, 388, 1004, 599, 871, 1273, 1200, 945, 645, 653, 224, -325, -740, -1025, -1149, -1776, -1976, -1733, -1752, -1781, -1622, -985, -698, -570, 27, 500, 829, 990, 1336, 1726, 1749, 1748, 1770, 1867, 1667, 1258, 1130, 910, 447, -38, -286, -509, -991, -1326, -1383, -1461, -1615, -1615, -1384, -1196, -1080, -838, -482, -175, -14, 216, 546, 721, 771, 874, 1017, 977, 800, 710, 674, 476, 139, 50, 37, -290, -491, -485, -547, -501, -539, -647, -450, -303, -443, -355, 5, 6, -121, 158, 337, 213, 237, 445, 488, 373, 371, 309, 216, 257, 166, -93, -67, -25, -487, -577, -237, -757, -1373, -832, -334, -368, -174, 226, 1135, 1470, 1102, 1724, 2099, 1709, 1214, 900, 893, -62, -961, -1193, -1544, -2098, -2837, -2650, -2327, -2490, -2272, -1748, -890, -508, -179, 742, 1418, 1785, 1945, 2451, 2852, 2549, 2342, 2263, 2071, 1439, 723, 422, -70, -780, -1397, -1652, -1795, -2228, -2373, -2126, -1836, -1672, -1380, -736, -179, 146, 496, 999, 1399, 1449, 1470, 1602, 1565, 1249, 881, 663, 364, -144, -546, -764, -1006, -1224, -1274, -1323, -1236, -962, -746, -407, -120, 80, 463, 721, 747, 843, 993, 900, 669, 618, 533, 236, -48, -107, -201, -458, -556, -542, -529, -465, -437, -307, -188, -438, -662, -305, -39, -849, -1609, -263, 1428, 228, -375, 2323, 3098, 1664, 1745, 2553, 2535, 1112, 77, -77, -756, -1720, -3222, -3587, -2878, -3439, -4100, -3459, -1755, -1227, -1445, 83, 1728, 2314, 2379, 2965, 3941, 3821, 3266, 2732, 2490, 2154, 755, -389, -760, -1169, -2230, -3181, -2864, -2619, -2872, -2717, -1946, -927, -441, 68, 922, 1777, 2357, 2318, 2405, 2664, 2408, 1643, 895, 553, -104, -1131, -1816, -2166, -2399, -2609, -2615, -2416, -1697, -736, -598, 40, 1632, 2103, 1854, 2137, 2549, 2345, 1456, 902, 564, -128, -821, -1510, -1762, -1629, -1827, -1897, -1407, -639, -298, -256, 342, 1237, 1516, 948, 881, 1300, 285, -601, -106, -1005, -2152, -765, 366, -225, 105, 1800, 2667, 2263, 2358, 2609, 1902, 1309, 383, -1178, -2028, -2431, -3415, -4550, -4205, -3344, -3426, -2845, -1330, 27, 949, 1939, 3073, 3622, 4112, 4210, 3486, 2987, 2535, 1477, 2, -942, -1447, -2432, -3129, -3225, -3139, -2816, -2288, -1557, -826, 190, 1229, 1697, 2171, 2713, 2848, 2494, 1998, 1574, 810, -38, -777, -1573, -2133, -2414, -2554, -2640, -2453, -1750, -916, -403, 165, 1489, 2218, 1984, 2950, 3358, 1847, 1268, 1173, 3, -1163, -1755, -2176, -2690, -2518, -1972, -1908, -1192, 22, 618, 1019, 1695, 2107, 1666, 1636, 2010, 1092, 94, -263, -1376, -1768, -457, -1731, -5151, -3981, 955, 2337, -400, 750, 5303, 6160, 5173, 3503, 1711, 2310, 1724, -1812, -6147, -6323, -3861, -5816, -7464, -5990, -3493, -1001, 97, 1540, 2770, 5367, 7786, 5898, 4386, 4606, 4302, 1937, -1267, -2217, -3112, -3790, -4215, -5298, -4526, -2551, -773, -546, -32, 2599, 3965, 3955, 3518, 3064, 2937, 2131, 893, -1169, -2477, -2268, -2844, -3763, -3940, -2899, -1616, -1023, -181, 607, 1586, 2617, 3023, 3070, 2914, 2991, 2172, 623, -310, -1374, -2183, -2752, -3338, -3214, -2667, -1629, -816, -278, 799, 1765, 2420, 2415, 2095, 1811, 1020, 509, 175, -542, -1258, -1676, -1622, -1721, -1740, -1068, -852, -2054, -2617, 929, 5290, 4343, 2568, 4316, 5511, 5146, 3002, -412, -2276, -2717, -3204, -6159, -8896, -7253, -4846, -3602, -2969, -1694, 1159, 3995, 6267, 6021, 4739, 5447, 5599, 3839, 720, -1621, -2390, -3349, -4039, -4975, -5170, -3395, -1315, 139, 701, 2083, 4056, 4738, 4561, 3559, 2429, 1602, 507, -1149, -3232, -4042, -3810, -3787, -3580, -3000, -1677, -99, 1293, 2238, 2416, 2580, 2706, 3382, 4128, 2082, -743, -502, -239, -2169, -3426, -3827, -3585, -2181, -999, -751, -658, 1255, 3304, 2794, 1816, 1619, 1680, 1241, 8, -1322, -2153, -1180, -321, -1526, -2302, -1478, -72, 363, -230, -426, -82, -103, -77, 2541, 4581, 3326, 3631, 4197, 3161, 2512, 785, -1567, -3641, -4417, -4491, -6115, -6640, -5357, -3878, -2181, -630, 1004, 2187, 3811, 5725, 5413, 4276, 3600, 2869, 1625, -298, -1819, -3206, -3817, -3270, -3022, -2734, -1844, -175, 1408, 2225, 2944, 3158, 3145, 3144, 2440, 1057, -421, -1236, -1857, -2701, -3165, -3225, -2780, -1898, -937, -298, -206, 87, 1419, 3719, 4816, 3523, 2068, 1482, 881, -351, -2295, -3896, -4219, -3195, -2016, -1842, -1410, 9, 1300, 1732, 1636, 1591, 1442, 1292, 1060, 905, 951, 40, -693, -286, -671, -1437, -1264, -383, 371, 148, 623, 1538, -1352, -5744, -4090, 1312, 2921, 1799, 1479, 2488, 5347, 7009, 4782, 210, -1976, -191, -607, -4050, -6603, -6961, -5451, -3585, -2599, -3395, -3123, 320, 3569, 4271, 3628, 3813, 4892, 5331, 4548, 2148, -569, -1301, -1040, -1894, -3494, -4162, -3511, -2160, -805, -235, -93, 737, 2313, 3162, 2711, 2027, 1466, 942, 786, 684, -712, -2331, -1677, -1330, -2395, -1867, -539, -52, -62, 434, 820, 233, 735, 1092, -206, -628, -8, 124, -546, -681, -390, -814, -535, 90, -5, -80, 381, 1054, 919, 810, 759, 221, 373, 445, -358, -1278, -1213, 15, 517, 240, 469, 618, 117, -366, -1994, -3771, -679, 3229, 1528, -90, 1057, 1545, 2429, 2774, 1183, -1064, -1624, 94, -409, -2670, -2848, -2292, -1846, -1057, -812, -1316, -1070, 454, 1003, 468, 747, 1275, 1268, 1598, 1792, 975, 808, 942, 410, 441, -32, -622, -261, -436, -603, -474, -709, -641, -368, -305, -310, -242, -165, -29, 114, 107, 193, 187, 158, 287, 194, 100, 51, -28, -31, -70, -19, -33, -143, -165, -225, -240, -244, -273, -283, -269, -118, -7, 34, 68, 94, 196, 267, 258, 202, 136, 102, 29, -72, -179, -281, -298, -274, -227, -161, -15, 162, 227, 236, 268, 332, 335, 237, 132, 8, -77, -130, -179, -220, -267, -270, -218, -159, -65, 46, 111, 144, 187, 226, 197, 129, 56, -14, -93, -179, -259, -280, -256, -236, -198, -168, -134, -41, 51, 66, 42, 50, 76, 107, 156, 168, 144, 124, 110, 76, -5, -50, -72, -130, -219, -284, -253, -181, -118, -75, -56, -9, 77, 144, 175, 176, 206, 247, 240, 187, 85, -15, -79, -158, -240, -274, -283, -257, -178, -96, -36, 44, 131, 196, 206, 180, 175, 134, 61, -26, -116, -179, -195, -188, -215, -250, -209, -137, -97, -62, -22, -5, 32, 84, 114, 93, 100, 142, 135, 84, 33, 3, -8, -9, -22, -60, -79, -50, -5, 17, 2, -1, 6, 23, 40, 43, 25, 26, 42, 29, -15, -55, -104, -134, -147, -203, -244, -220, -175, -118, -58, -5, 44, 95, 136, 135, 134, 132, 115, 60, -4, -46, -72, -110, -124, -135, -159, -145, -93, -46, -21, 44, 107, 141, 151, 132, 111, 110, 100, 44, -15, -43, -67, -92, -107, -110, -96, -80, -58, -15, 13, 44, 67, 68, 42, 23, 19, -15, -49, -86, -101, -121, -131, -141, -159, -165, -152, -120, -92, -52, 13, 67, 107, 139, 151, 141, 117, 76, 36, 10, -16, -35, -73, -75, -56, -46, -49, -58, -46, -15, 17, 40, 43, 53, 59, 49, 34, 12, -9, -19, -43, -79, -116, -130, -134, -123, -100, -96, -77, -48, -12, 30, 44, 59, 60, 47, 40, 25, 20, 22, 15, 6, -14, -24, -29, -35, -36, -43, -45, -41, -33, -18, -9, 3, 6, -2, -4, 3, 9, 17, 20, 17, 10, 3, 5, 3, -12, -24, -31, -36, -45, -52, -48, -55, -59, -60, -55, -53, -53, -63, -65, -60, -50, -43, -48, -35, -24, -25, -35, -41, -39, -33, -16, -2, 12, 27, 42, 57, 68, 66, 61, 51, 44, 25, 0, -9, -31, -49, -53, -52, -36, -39, -41, -7, 27, 25, 15, 27, 32, 23, 20, 5, -18, -26, -36, -39, -50, -62, -63, -62, -55, -50, -41, -33, -25, -14, -1, 5, 9, 15, 5, -7, -18, -26, -33, -46, -56, -73, -82, -66, -67, -50, -38, -22, -7, 17, 30, 37, 36, 29, 19, 13, 12, -7, -25, -41, -42, -38, -49, -49, -35, -26, -8, 6, 0, 0, -2, -5, -1, -4, -2, -12, -12, -15, -16, -19, -24, -35, -39, -48, -46, -35, -25, -4, 13, 25, 27, 3, 2, 30, 27, -1, -1, -16, -25, -18, -36, -42, -48, -62, -56, -48, -53, -46, -36, -26, -15, -8, 12, 23, 29, 25, 13, 5, 5, 0, -16, -12, -19, -25, -24, -29, -29, -39, -33, -25, -33, -19, -5, -11, -22, -24, -18, -25, -32, -39, -39, -32, -41, -36, -43, -39, -18, -11, -7, -12, -8, -4, -7, 0, 5, -4, 2, 6, -2, -5, -19, -25, -29, -33, -39, -36, -25, -24, -12, -7, 5, 13, 16, 34, 29, 3, -1, -1, -14, -16, -18, -19, -19, -26, -22, -32, -26, -26, -28, -14, -11, -5, -2, -4, 0, -9, -15, -16, -28, -28, -32, -48, -56, -52, -55, -56, -56, -48, -41, -31, -22, -8, -2, -1, 9, 10, -1, 3, -7, -1, 0, 2, -1, -11, -16, -28, -38, -45, -41, -42, -24, -15, 5, 9, -9, -19, -62, -192, -328, 125, 1057, 514, -579, 277, -138, -1499, -18, 595, -276, 67, -332, -853, 761, 1310, -301, -237, 513, 762, 540, -164, 57, -1481, -1500, 396, -1350, -365, 1445, -933, 136, 1200, -686, 876, 1901, 166, -349, -244, -198, -1073, -1085, 187, -481, 294, 893, -877, -4, 659, -7, -7, -178, 73, -62, 463, 223, -523, 500, 209, 318, 199, -818, 398, -28, -508, 320, -635, -127, 226, -688, 83, -65, -426, 214, -318, -297, 425, 134, 29, 311, -21, 115, 316, -417, -84, 127, -294, 407, 219, -470, -110, 221, -148, -176, 231, -189, 180, 194, -562, 172, 71, 110, 90, -645, 107, -58, 267, 646, -467, 349, 628, -366, -205, -16, -235, -386, -322, -31, 22, 54, 316, -226, 219, 689, -186, 272, -288, -679, 37, -351, 17, -284, -130, 95, -312, 347, -15, 563, 439, -696, 54, -113, -233, -212, -246, 190, -33, 91, -76, -106, 192, 88, 117, 196, 432, 56, -100, 279, 0, -65, -243, -412, -49, -193, -361, 121, 104, -280, 102, -89, -120, 488, -7, -145, 194, 261, -270, -314, 396, -185, -93, 271, 81, 134, -317, 13, -158, -549, 445, 388, -53, -2, -550, -332, 88, -237, -131, -45, 36, 386, -128, -243, 90, 145, 686, -259, -511, 217, -213, 422, -318, -277, 809, -339, 131, -73, -577, 354, 296, 527, -158, -488, -89, -196, 203, -252, -86, 146, -242, 264, -39, 56, 287, -470, -624, -666, 71, 632, 221, 292, 189, 390, 39, -600, -80, -182, -79, 182, 44, -33, -700, 101, 319, -417, 895, 459, -155, 550, -325, -645, -325, -94, -491, -460, 284, -193, 182, 669, 325, -58, 122, 520, -504, -423, 169, 169, 360, -165, -195, -404, -161, 42, -1156, -581, 449, 434, 301, -41, 405, 544, 298, -87, -716, 46, 322, -460, -590, -164, -28, -530, -140, 141, 138, 776, 514, -121, -461, 380, 1170, 257, -32, 10, -174, -114, -369, -771, -925, 148, 571, -413, -89, 539, 17, -87, 6, -716, -392, 683, 124, -436, 233, 473, 66, -198, -329, -478, -26, 588, 0, -475, 362, 483, -189, -145, -310, -516, -4, 63, -461, -269, 413, 360, 507, 805, 291, 447, 580, -383, -723, -312, -141, -270, -638, -824, -416, -89, -277, -126, 476, 1006, 1010, 898, 1040, 320, -185, -148, -794, -989, -1019, -972, -450, -210, 17, -31, 83, 90, -138, 415, 219, -162, 597, 1156, 1003, 108, -376, -202, -291, -216, -644, -1095, -404, 282, 248, -150, 145, 371, -104, 305, 261, -512, -267, -101, -549, -553, 59, 260, 350, 557, -114, -223, 495, 388, 278, 414, 177, 22, 23, 29, -12, -65, 90, -250, -756, -60, 533, 142, -76, -157, -181, 193, -77, -1185, -1054, 54, 333, -124, -750, -431, 700, 1449, 1017, -877, -1236, 415, 277, -586, -126, 373, 326, 85, 410, 132, -361, 185, -293, -440, 915, 1344, 155, -698, 262, 519, -270, -431, -678, -693, -556, -294, 78, -182, -325, -478, -675, -55, 248, -404, -395, 415, 907, 614, -206, -14, 699, 387, -135, -276, 192, 759, 456, -263, -420, 340, 585, -128, -208, -114, 111, 781, 93, -675, -99, -7, -560, -835, -647, -638, -199, 853, 291, -198, 666, 439, -127, -266, -457, -229, -134, -103, -678, -1277, -120, 782, 461, -101, 124, 985, 421, -76, -128, -329, 493, 806, 653, 363, 349, 687, -593, -945, -67, -495, -1020, -1158, -869, -436, 359, 757, -753, -1234, 42, 680, 217, -504, -137, 609, 934, 333, -750, -252, 867, 632, -327, -104, 951, 1184, 548, -529, -618, 565, 969, -179, -967, -184, 680, 735, -87, -1227, -985, 125, -7, -1102, -794, 676, 669, -28, -332, -1333, -1237, 513, 1204, 335, 318, 1758, 420, -2489, -1776, 76, -359, -1987, -1489, 925, 2204, 2995, 2332, 306, 1254, 3049, 1171, -1367, -1189, -468, -1397, -2357, -2116, -1536, -1060, -750, -790, -788, -75, 638, 683, 699, 383, 91, 642, 911, 258, -376, -362, -271, -167, 241, 296, 308, 650, 945, 999, 883, 953, 946, 418, -453, -808, -461, -706, -1258, -988, -434, -52, 66, -123, 151, 679, 428, -481, -509, 771, 714, -512, -1035, -1486, -726, -31, -1281, -1212, 1309, 2854, -717, -5541, -2528, 4411, 4364, -965, -2135, 1605, 6128, 6542, 901, -2670, 955, 3056, -1970, -6739, -4304, -1117, -2714, -3398, -2501, -995, 1508, 2242, 360, -608, 1734, 2558, 452, -246, 119, -35, -26, 448, 260, 60, 1385, 1602, 292, 541, 1344, 673, -386, -482, -556, -744, -250, -352, -906, -236, 1023, 238, -1847, -1223, 598, 466, 107, 156, 44, 587, 1174, 431, -1296, -1827, -647, -169, -780, -1298, -1319, -43, 2335, 3246, 1074, -2402, -6047, -7079, -1059, 4745, 1480, -734, 4822, 9405, 9224, 5118, -67, -1939, -822, -1629, -6357, -8638, -5218, -2163, -2139, -2847, -1910, 727, 2801, 3025, 1442, 682, 1915, 2640, 1630, -328, -1203, -831, -587, -253, 102, 145, 388, 1416, 1997, 1157, 750, 902, 285, -634, -968, -935, -1489, -1441, -559, -307, 98, 255, -79, 393, 757, 383, -92, 224, 977, 612, -250, -768, -1037, -1196, -1434, -1257, -528, 53, -83, 128, 1382, 1759, 1323, -341, -8125, -13054, -157, 15976, 6087, -6341, 5951, 14103, 11032, 4159, -6743, -10446, -3027, 1775, -9133, -16626, -6476, 3326, 1674, -3781, -1209, 4156, 6635, 7114, 2682, -1791, 1685, 5147, 898, -4427, -3907, -1369, -1268, -375, -530, -1009, 1666, 3818, 2716, 1439, 2971, 2807, -334, -836, 548, -1022, -3429, -2739, -1867, -1887, -494, 346, 44, 972, 2167, 1438, -239, -396, -202, -971, -1043, -826, -696, 13, 401, -335, -805, 129, 226, -515, 410, 1208, 717, 88, -5350, -13627, -8527, 10641, 17424, -276, -2734, 12987, 14423, 8109, -1717, -11484, -8209, -128, -4410, -16396, -14255, -1867, 5154, 1136, -2316, 3394, 8584, 10376, 6841, -603, -2497, 2138, 1684, -4646, -7354, -4663, -2188, -675, 945, 795, 1892, 5103, 6024, 3291, 1198, 1634, 500, -1851, -2889, -3691, -3739, -1530, 228, -833, -215, 2780, 3205, 1946, 1246, 642, -103, -849, -1823, -3171, -2957, -1587, -1554, -1490, -322, 710, 1122, 1530, 1998, 1508, 689, 476, 669, 754, -720, -4025, -6837, -7325, -6367, -2698, 6174, 12964, 9699, 7442, 11835, 10703, 3935, -2704, -7836, -10023, -10369, -10922, -12144, -10017, -3153, 3001, 3870, 4798, 9021, 10308, 7988, 4810, 1285, -1649 }; codec2-1.0.1/unittest/hts1a_1300.h000066400000000000000000001226621412132000500163600ustar00rootroot00000000000000short hts1a_1300[] = { 0, 1, 1, 2, 2, 3, 2, 2, 2, 3, 2, 4, 2, 2, -1, 0, -2, 0, 2, 2, -3, -2, -5, -2, -4, -1, -5, -5, -10, -11, -15, -9, -8, 0, -4, -5, -10, -5, 0, 1, -3, 7, 3, 2, 0, 6, 10, 12, 5, 8, 9, 7, 13, 13, 5, 19, 23, 14, 3, 0, 7, 10, 9, 0, -11, -18, -15, -16, -15, -27, -37, -46, -40, -37, -49, -80, -73, -65, -43, -10, 39, 72, 88, 82, 82, 66, 57, 34, 38, 32, 28, 17, 28, 7, 1, -12, -1, -13, -2, -9, -11, -24, -16, -26, -16, -24, -11, -17, -11, -21, -14, -26, -11, -9, 6, -11, -3, -9, 2, -5, 10, 11, 23, 2, 8, 5, 24, 14, 29, 9, 21, 14, 21, 11, 12, 9, 22, 4, 16, 0, 5, -2, -1, -12, 2, -6, -13, -29, -22, -37, -25, -32, -29, -42, -45, -60, -51, -59, -45, -19, 23, 57, 80, 69, 65, 49, 40, 34, 38, 20, 10, 5, 5, -6, -5, -10, -3, -7, -15, -20, -21, -16, -9, -17, -18, -21, -20, -9, -5, -5, -7, -19, -15, -4, 2, 6, -3, -3, 1, 8, 7, 16, 12, 7, 3, 5, 15, 22, 15, 17, 12, 16, 6, 13, -3, 8, 12, 9, 1, 7, -1, 6, -5, -1, -7, -9, -20, -17, -20, -3, -8, -1, -27, -35, -46, -36, -34, -21, -23, 2, 20, 43, 41, 52, 41, 37, 36, 41, 24, 16, 7, 1, -18, -14, -22, -6, -4, -5, -8, -7, -15, -14, -20, -10, -21, -13, -3, -2, -7, 0, 1, -4, -10, -3, -1, -1, -4, -2, 4, 13, 15, 11, 3, -4, 3, 4, 2, 7, 13, 9, 9, 9, 6, 0, 1, -1, -1, 3, 5, 1, 0, -5, -2, -12, 4, -7, -3, -11, -8, -6, -10, -14, -8, -16, -12, -19, -19, -20, -3, 0, 10, 23, 25, 27, 45, 30, 28, 19, 24, 13, 0, -15, -20, -17, -4, -9, -6, -5, -10, -9, 0, -1, -7, -14, -14, -6, -6, 4, 0, -5, 1, 4, 6, 4, -1, 3, -8, -4, 1, 11, 9, 12, 6, 1, 1, 10, 6, -2, -3, 9, 7, 4, 4, 0, -8, 0, -3, -1, -2, -1, -6, -19, -10, -18, -13, -15, -14, -11, -6, -4, 0, 7, 18, 16, 38, 34, 32, 23, 17, 7, -6, -24, -17, -16, -9, -6, -5, -12, -3, -12, -5, -6, -5, -15, -6, -3, 2, 1, 13, 0, 4, 0, 0, -1, 7, 6, 11, 4, 2, 4, 9, 5, 7, -4, -1, 0, 7, -1, -7, 1, 1, 1, 0, -5, -10, -9, -9, -6, -13, -13, -9, -7, -10, -5, -3, 10, 12, 27, 21, 26, 17, 13, 9, 2, -4, 5, -10, -4, -18, -11, -15, -5, -6, 2, -9, -5, -17, -15, -4, 13, 0, 0, 4, 15, 7, 2, -4, 0, -7, 10, 5, 13, 11, 8, 4, 8, 0, -1, 0, 3, -2, 1, -3, 0, 0, -12, -14, -18, -15, -14, -15, -16, -7, 3, 9, 7, 12, 17, 24, 25, 27, 16, 10, -8, -2, -8, -8, -14, -10, -13, -2, -7, 2, -12, -4, -9, 3, -2, 4, -2, 13, 1, 7, -9, 1, 0, 13, 6, 11, 0, 9, -2, 6, -9, 3, -9, 10, -5, -7, -4, 5, -22, -8, -28, -14, -23, -11, -16, 7, 13, 31, 24, 35, 27, 33, 16, 20, 5, 3, -20, -6, -13, -2, -17, -10, -18, -2, -7, 1, -10, -5, -12, -2, -6, 4, -5, 6, -3, -2, -9, -1, -5, 1, 0, 3, -8, 0, -5, 0, -6, -13, -11, 3, -4, -10, -18, -4, 0, 6, 4, 17, 26, 35, 38, 35, 34, 24, 15, 6, -2, 0, 0, 5, 0, -6, -10, -13, -12, -6, -10, -6, -2, -3, -13, -13, -8, -9, -9, -4, -10, -10, -8, -7, -15, -8, -8, -14, -11, -8, -9, -4, -20, -13, -3, -4, -11, -19, -16, 1, 4, 15, 21, 39, 45, 56, 49, 48, 30, 26, 8, 4, -4, -5, -3, 1, -5, -7, -17, -8, -4, -2, -11, -1, -5, -4, -9, -10, -7, -9, -13, -7, -2, -8, -10, -14, -19, -12, -4, -6, -10, -11, -11, -14, -9, -11, -4, -8, -5, -11, -17, -16, -6, -3, 15, 15, 38, 45, 56, 53, 49, 32, 31, 11, 14, -7, -5, -10, 1, -10, -8, -22, -5, -10, -7, -21, -2, -12, 2, -13, -1, -11, -4, -17, 4, 0, 1, -7, 0, -6, 11, 5, 4, -7, 2, -10, 1, -8, -3, -7, 1, -11, -13, -26, -16, -29, -11, -12, 2, 11, 27, 32, 37, 32, 43, 27, 25, 12, 9, -4, -11, -25, -20, -18, -11, -13, -8, -8, -8, -16, -14, -5, 4, 6, 10, 5, 8, 7, 4, 16, 8, 2, 4, 9, 13, 15, 4, 0, 0, -3, -1, -2, -7, -6, -1, -6, -12, -20, -21, -29, -29, -16, -14, -3, 9, 16, 26, 31, 43, 37, 31, 23, 15, 7, -5, -22, -23, -23, -18, -18, -16, -18, -5, -10, -9, -16, -7, -6, 7, 1, 12, 7, 18, 9, 11, 0, 5, 0, 15, 8, 23, 8, 7, -6, 3, -8, 10, -4, 6, -10, 2, -18, -1, -12, -13, -32, -24, -28, -15, -29, 1, -6, 15, 21, 45, 41, 47, 32, 31, 14, 12, -11, -9, -19, -15, -23, -16, -28, -10, -15, -5, -19, -12, -11, 3, -4, 4, 1, 7, 7, 1, -1, 4, 6, 16, 10, 14, 13, 11, 8, 7, 5, 7, 5, 3, 4, 1, -9, -7, -8, -15, -11, -20, -22, -26, -26, -28, -23, -17, -2, 5, 30, 39, 56, 47, 46, 29, 23, 3, 7, -7, -1, -22, -22, -33, -25, -30, -19, -17, -11, -22, -2, -5, 0, -6, 12, 2, 19, 2, 11, 8, 16, 13, 16, 4, 14, 5, 13, 0, 7, -1, 5, -3, 7, -1, -2, -6, -4, -16, -6, -12, -7, -13, -12, -23, -22, -30, -20, -23, -6, -1, 15, 18, 29, 33, 42, 36, 44, 36, 34, 21, 7, -7, -11, -19, -28, -32, -23, -25, -16, -25, -23, -26, -25, -12, -4, -1, 0, 3, 7, 4, 7, 7, 12, 14, 4, 15, 16, 15, 15, 14, 5, 8, 4, 6, 4, 6, 11, 4, 6, 5, -4, -10, -9, -4, -5, -8, -12, -17, -24, -30, -28, -30, -32, -28, -22, -16, -5, 6, 15, 27, 44, 52, 61, 50, 46, 36, 31, 17, 1, -5, -9, -15, -18, -28, -26, -34, -34, -32, -25, -24, -19, -17, -12, -9, 0, -6, 7, 0, 13, 9, 15, 12, 16, 10, 14, 13, 22, 14, 17, 0, 9, 1, 7, 7, 16, 4, 9, -7, -2, -7, 4, -2, 3, -3, -4, -22, -9, -18, -11, -19, -4, -16, -22, -33, -31, -40, -29, -32, -14, -8, 17, 26, 51, 45, 57, 53, 60, 53, 53, 36, 31, 16, 12, -7, -18, -32, -36, -44, -39, -45, -36, -41, -35, -31, -24, -28, -17, -14, -2, -6, 0, 8, 18, 18, 19, 24, 18, 11, 19, 12, 15, 18, 20, 19, 18, 13, 9, 4, 8, 6, 5, 0, 1, -5, 0, 3, 4, 6, 4, 6, 3, -5, -7, -16, -18, -19, -12, -4, -7, -14, -24, -32, -42, -39, -43, -39, -30, -29, -25, -20, -5, 3, 16, 33, 49, 68, 79, 81, 84, 77, 70, 58, 41, 26, 9, -1, -16, -30, -39, -49, -53, -50, -52, -51, -46, -40, -41, -36, -33, -27, -18, -10, 3, 9, 9, 16, 13, 14, 10, 14, 14, 11, 7, 10, 21, 23, 19, 16, 12, 7, 2, 3, 7, 8, 7, 10, 10, 15, 14, 6, 2, -5, -1, -4, -3, -3, -3, 1, -1, -2, -3, -12, -16, -18, -12, -11, -10, -6, -3, -12, -19, -19, -23, -24, -22, -22, -34, -39, -33, -31, -18, -2, 21, 51, 69, 82, 92, 87, 86, 77, 61, 42, 19, 0, -11, -21, -33, -43, -46, -50, -54, -59, -53, -47, -42, -34, -26, -16, -10, -1, 0, -2, -1, 9, 10, 15, 22, 27, 16, 3, 7, 2, 11, 16, 15, 16, 11, 10, 4, 3, 8, 4, 10, 6, 6, 8, 3, 0, -1, 2, -1, -2, -4, -4, -3, 0, -3, -6, -7, -8, -13, -15, -13, -12, -14, -12, -15, -17, -24, -32, -36, -41, -40, -26, -12, 7, 25, 41, 63, 79, 80, 82, 70, 63, 50, 24, 7, -6, -17, -35, -38, -33, -38, -40, -45, -45, -31, -30, -24, -17, -18, -13, -5, 3, 3, 6, 5, 8, 7, 10, 11, 9, 11, 9, 8, 6, 5, 10, 11, 10, 10, 10, 4, 6, 7, 6, 5, 7, 11, 9, 9, 11, 9, 4, 1, -2, -3, 3, 4, 0, -6, -13, -15, -22, -26, -25, -25, -19, -18, -22, -27, -28, -35, -36, -35, -19, -1, 21, 39, 64, 69, 73, 70, 64, 47, 34, 15, 1, -13, -16, -31, -30, -39, -32, -29, -17, -19, -21, -17, -3, -16, -7, -8, 3, -2, 4, -4, 0, -12, 0, 6, 5, 0, 7, 4, 9, 0, 17, 6, 8, 7, 12, 8, 17, 2, 5, 1, 6, 5, 7, 5, 6, -2, -3, -3, 0, -11, 0, 1, 0, -6, -9, -18, -6, -8, -9, -14, -4, -14, -19, -29, -28, -29, -23, -22, -7, 3, 25, 39, 59, 66, 68, 59, 51, 30, 16, -2, -14, -25, -26, -40, -24, -25, -12, -16, -13, -17, -10, -21, -10, -14, -1, -9, 3, 0, 1, -8, 5, -8, -2, -3, 14, 6, 17, 1, 11, 5, 4, -10, 15, 3, 12, 7, 14, 8, 15, 2, 8, -4, 9, 0, 5, -5, 8, -6, 0, -6, 0, -15, -10, -23, -15, -15, -6, -20, -12, -20, -17, -27, -18, -14, 7, 13, 32, 42, 56, 43, 45, 34, 26, 10, -2, -14, -10, -25, -21, -22, -12, -18, -11, -9, -17, -12, -7, -15, -1, 0, -1, -1, 1, -12, -8, 2, 8, 12, 7, 9, 4, 4, 3, 7, 4, 12, 6, 10, 15, 15, 3, -3, -5, 3, 6, 6, 0, 1, -4, -3, -9, -13, -10, -9, -9, -4, -9, -12, -20, -23, -26, -27, -26, -12, 2, 19, 38, 45, 48, 54, 44, 26, 15, 6, -5, -10, -17, -21, -18, -18, -21, -16, -12, -14, -9, -9, -16, -7, 3, 2, 0, 1, -3, 9, 12, 1, -3, 0, 3, 16, 10, 8, 10, 13, 4, 2, 7, 15, 5, 5, 3, 1, -6, 1, -4, -6, -7, -3, -20, -7, -17, -12, -18, -14, -21, -25, -34, -20, -22, -2, 18, 44, 52, 70, 50, 47, 22, 4, -6, -12, -21, -17, -20, -10, -18, -16, -15, -10, -11, -9, -5, 0, -8, -2, 0, -4, -3, -1, 4, 7, 13, 12, 8, 0, 7, 5, 10, 5, 9, 9, 6, -9, -1, 0, 7, -1, 7, -5, 0, -18, -14, -14, 2, -2, -9, -34, -27, -34, -18, -22, 4, 9, 47, 47, 67, 53, 50, 20, 11, -18, -2, -33, -14, -16, -5, -14, 2, -21, 0, -11, 0, -21, 0, -11, -1, -10, 5, -17, 5, -8, 13, -3, 9, -1, 17, -1, 18, 2, 16, 2, 21, 1, 18, -5, 10, -7, 9, -12, 8, -17, -5, -29, -14, -31, -3, -27, -16, -35, -11, -9, 32, 16, 54, 43, 46, 14, 20, -19, 3, -11, 5, -25, -2, -17, -4, -25, 7, -17, 2, -19, 1, -6, 11, -17, 0, -9, 28, 1, 16, -9, 9, 2, 23, 7, 20, 0, 13, -3, 14, -7, 9, -4, 3, -14, 0, -21, 3, -11, -12, -23, -17, -42, -20, -45, -46, -39, -24, -22, 11, -2, 39, 89, 134, 120, 101, 57, 24, 3, 1, -50, -71, -68, -47, -53, -38, -30, -33, -19, -9, -27, -3, -3, -14, -9, 11, 12, 13, 0, 19, 29, 13, 16, 25, 19, 18, 18, 24, 15, 23, 26, 13, 16, 18, 11, 3, -4, -2, -3, -28, -30, -22, -42, -41, -34, -50, -35, -34, -69, -66, -76, -101, -94, -109, -80, 16, 103, 192, 318, 337, 259, 220, 156, 64, 6, -55, -127, -185, -195, -185, -182, -146, -143, -137, -71, -18, 3, 22, 42, 46, 58, 66, 57, 53, 44, 30, 21, 11, 8, -1, 6, 7, 15, 24, 30, 33, 39, 42, 40, 47, 63, 59, 47, 31, 14, -5, -19, -28, -45, -46, -55, -55, -65, -72, -87, -100, -97, -100, -99, -127, -147, -166, -184, -204, -177, -157, -17, 398, 737, 863, 867, 696, 510, 337, 155, -43, -288, -535, -694, -732, -710, -658, -558, -493, -392, -178, 40, 186, 298, 359, 366, 397, 439, 372, 242, 150, 30, -79, -127, -173, -207, -219, -151, -86, -12, 69, 136, 170, 198, 223, 227, 212, 183, 145, 68, 8, -23, -56, -76, -84, -104, -137, -199, -222, -219, -193, -154, -109, -85, -48, -34, -45, -79, -106, -163, -189, -284, -388, -491, -520, -528, -492, -334, -181, 337, 1588, 2517, 2790, 2658, 2100, 1398, 804, 193, -514, -1413, -2214, -2762, -2872, -2689, -2341, -1805, -1254, -671, 197, 1134, 1850, 2271, 2443, 2238, 1863, 1564, 1131, 361, -457, -1179, -1843, -2236, -2234, -2109, -1937, -1485, -755, -24, 787, 1557, 2039, 2226, 2373, 2324, 1994, 1476, 844, 37, -724, -1258, -1640, -1935, -1977, -1798, -1435, -968, -344, 216, 675, 1089, 1400, 1518, 1429, 1249, 876, 412, -33, -430, -785, -1070, -1170, -1277, -1314, -1269, -1110, -978, -804, -609, -641, -697, -651, -552, -494, -325, 135, 500, 2215, 5495, 6796, 6052, 5042, 3147, 1215, 116, -1002, -3144, -5589, -6520, -6317, -5735, -4288, -2890, -2091, -759, 1408, 3363, 4471, 4948, 4826, 3928, 3044, 2389, 1098, -649, -2099, -3161, -3899, -4013, -3612, -3199, -2637, -1418, 9, 1187, 2276, 3095, 3361, 3341, 3278, 2863, 1960, 1001, 31, -1000, -1789, -2155, -2455, -2552, -2271, -1698, -1070, -305, 507, 1062, 1471, 1806, 1930, 1752, 1427, 964, 339, -303, -834, -1274, -1591, -1681, -1594, -1359, -1020, -649, -326, -41, 192, 413, 493, 346, -75, -535, -949, -1245, -1428, -1321, -980, -317, 2528, 6139, 7000, 6364, 5218, 3303, 1706, 628, -795, -3546, -5920, -6498, -6545, -6103, -4835, -3917, -3066, -1293, 1199, 3039, 3927, 4666, 4768, 4350, 4274, 3789, 2220, 377, -1035, -2202, -3198, -3586, -3753, -3980, -3515, -2339, -1137, -45, 1100, 2067, 2672, 3234, 3600, 3294, 2586, 1853, 987, 2, -850, -1499, -2112, -2413, -2256, -1928, -1532, -945, -262, 366, 972, 1480, 1667, 1590, 1400, 1114, 714, 239, -184, -534, -877, -1107, -1193, -1275, -1284, -1066, -770, -586, -439, -277, -199, -166, -58, -137, -537, -864, -1068, -1254, -1350, -1073, -581, 291, 3441, 7266, 8090, 7061, 5406, 3345, 1467, 10, -1669, -4631, -6887, -6956, -6475, -5812, -4678, -3607, -2441, -531, 2202, 3894, 4422, 4836, 4817, 4194, 3508, 2578, 947, -906, -1956, -2704, -3506, -3806, -3708, -3506, -2837, -1548, -261, 710, 1659, 2504, 2934, 3179, 3249, 2844, 2061, 1358, 616, -247, -975, -1414, -1790, -1969, -1781, -1391, -1000, -548, 140, 701, 1053, 1344, 1397, 1199, 923, 652, 241, -257, -572, -828, -1058, -1161, -1162, -1141, -996, -631, -296, -10, 279, 423, 307, 137, -64, -363, -676, -897, -1239, -1631, -1853, -1864, -1797, -1355, -681, 342, 2668, 6898, 9692, 9193, 7285, 4881, 2444, 230, -1644, -4223, -7340, -8228, -7415, -6573, -5662, -4441, -2955, -1304, 1388, 3742, 4299, 4524, 4932, 4858, 4111, 3152, 1788, -254, -1512, -2051, -2934, -3781, -3890, -3579, -3057, -1982, -708, -11, 683, 1632, 2286, 2472, 2621, 2660, 2229, 1872, 1752, 1188, 366, -264, -774, -1311, -1553, -1552, -1748, -1830, -1453, -964, -523, -8, 474, 765, 1050, 1356, 1343, 1042, 833, 623, 350, 90, -155, -527, -898, -1037, -1049, -1037, -957, -808, -603, -439, -291, -303, -458, -601, -511, -491, -695, -960, -1106, -1124, -1013, -616, -129, 1213, 5183, 8228, 7688, 5918, 3998, 2165, 464, -1063, -2909, -5096, -5447, -4841, -4942, -5007, -4437, -3402, -1980, -204, 1295, 1952, 2731, 3668, 3893, 3588, 3107, 2463, 1659, 952, 248, -785, -1655, -2032, -2130, -2199, -2108, -1876, -1482, -1012, -360, 102, 458, 793, 1145, 1295, 1284, 1138, 1002, 843, 739, 622, 451, 377, 481, 375, 155, -17, -117, -238, -274, -402, -593, -772, -748, -776, -836, -809, -643, -500, -319, -144, 7, 123, 323, 472, 579, 574, 458, 214, -122, -464, -744, -859, -976, -1160, -1370, -1517, -1518, -1444, -982, -524, 1029, 4637, 6859, 5961, 4565, 3378, 2129, 1090, -15, -1187, -2183, -2343, -2444, -3464, -4397, -4442, -4000, -3218, -2264, -1375, -581, 369, 1273, 1793, 2064, 2506, 2839, 2890, 2653, 2186, 1589, 1011, 404, -166, -700, -1027, -1311, -1499, -1686, -1744, -1678, -1455, -1118, -694, -282, 102, 418, 670, 812, 971, 1153, 1304, 1331, 1250, 1065, 836, 544, 266, -3, -156, -180, -268, -519, -707, -805, -809, -840, -840, -795, -698, -521, -314, -146, -32, 10, 49, -12, -107, -245, -376, -365, -344, -348, -490, -668, -736, -795, -556, -286, 348, 2825, 5387, 5002, 3315, 2393, 1505, 702, 211, -402, -751, -684, -948, -2080, -3432, -3953, -3680, -3103, -2450, -1818, -1127, -419, -9, 145, 370, 965, 1734, 2356, 2572, 2423, 2145, 1741, 1238, 753, 441, 293, 89, -239, -724, -1212, -1515, -1602, -1528, -1360, -1120, -814, -541, -344, -138, 109, 394, 709, 981, 1141, 1192, 1141, 1008, 851, 720, 599, 454, 287, 95, -114, -311, -473, -583, -621, -636, -712, -775, -779, -784, -771, -761, -763, -783, -811, -779, -618, -374, -158, -116, -126, -142, -180, -17, 183, 843, 2996, 4968, 4288, 2646, 1929, 1208, 464, 249, 54, 97, 424, -99, -1685, -3049, -3497, -3422, -3049, -2480, -1883, -1313, -971, -995, -1134, -862, -44, 911, 1655, 2068, 2191, 2109, 1843, 1522, 1281, 1239, 1303, 1226, 867, 312, -232, -667, -949, -1075, -1019, -885, -784, -781, -840, -844, -719, -468, -182, 102, 358, 515, 586, 572, 552, 521, 510, 525, 508, 444, 316, 152, -43, -233, -378, -474, -520, -567, -643, -757, -884, -985, -1056, -1022, -850, -637, -464, -411, -391, -371, -257, 90, 368, 1460, 3843, 4975, 3682, 2294, 1470, 670, 290, 146, -168, -205, -298, -1151, -2520, -3381, -3395, -2867, -2241, -1657, -1224, -844, -576, -415, -281, 229, 991, 1680, 2012, 2055, 1855, 1640, 1354, 1090, 820, 679, 499, 236, -195, -618, -944, -1077, -1123, -1024, -908, -695, -525, -369, -278, -117, 80, 334, 530, 688, 723, 751, 652, 579, 443, 379, 294, 223, 63, -111, -338, -485, -601, -615, -630, -594, -629, -644, -725, -794, -872, -788, -650, -486, -471, -540, -571, -526, -364, -37, 309, 1862, 4190, 4600, 3152, 2067, 1274, 715, 616, 523, 145, -155, -547, -1396, -2551, -3151, -3128, -2715, -2181, -1744, -1572, -1324, -954, -541, -102, 497, 1104, 1662, 1956, 2016, 1834, 1620, 1420, 1287, 1066, 814, 492, 208, -116, -426, -722, -859, -916, -843, -804, -724, -686, -553, -410, -212, -34, 169, 325, 453, 488, 492, 437, 464, 415, 396, 282, 183, 3, -131, -280, -386, -526, -568, -646, -701, -839, -898, -980, -910, -809, -687, -610, -516, -430, -315, -150, 167, 562, 2306, 4506, 4563, 3127, 2021, 1106, 548, 416, 226, -298, -721, -1105, -1838, -2796, -3160, -2969, -2491, -1878, -1259, -868, -516, -136, 260, 592, 1021, 1463, 1763, 1817, 1633, 1225, 923, 715, 559, 317, 100, -186, -453, -747, -894, -966, -885, -728, -518, -383, -221, -79, 98, 282, 440, 522, 588, 604, 577, 468, 399, 310, 258, 162, 39, -141, -279, -357, -398, -430, -458, -513, -578, -673, -753, -848, -811, -683, -575, -540, -541, -543, -532, -355, -14, 501, 2415, 4789, 4874, 3247, 1809, 813, 340, 298, 5, -896, -1698, -2031, -2557, -3148, -3246, -2873, -2215, -1395, -706, -313, 16, 617, 1239, 1719, 2007, 2086, 1953, 1662, 1308, 898, 448, 0, -343, -637, -864, -1045, -1159, -1080, -895, -587, -272, 58, 315, 587, 663, 658, 714, 798, 799, 685, 474, 191, -66, -284, -456, -592, -671, -709, -692, -605, -521, -430, -361, -321, -307, -343, -402, -452, -385, -431, -538, -653, -767, -798, -722, -333, 74, 2319, 6417, 7237, 4578, 1893, 80, -534, -305, -518, -2023, -3525, -3760, -3773, -3936, -3578, -2753, -1490, 63, 1233, 1601, 1711, 2132, 2565, 2695, 2518, 1948, 1219, 528, -152, -810, -1410, -1721, -1920, -1947, -1724, -1397, -867, -186, 379, 817, 1180, 1475, 1649, 1664, 1540, 1277, 916, 479, 9, -409, -756, -979, -1131, -1198, -1176, -971, -620, -254, 26, 163, 125, 128, 93, -31, -292, -478, -635, -953, -1380, -1583, -1644, -1419, -1152, -399, 251, 4499, 10959, 10640, 5605, 940, -1797, -1900, -912, -1437, -4530, -6791, -6083, -4884, -3823, -2752, -1802, -493, 1411, 3196, 3629, 3332, 3298, 3084, 2571, 1731, 518, -743, -1456, -1563, -1716, -1912, -1821, -1440, -688, 139, 720, 993, 1170, 1393, 1542, 1498, 1215, 727, 218, -303, -680, -897, -986, -982, -935, -801, -570, -336, -50, 215, 398, 461, 412, 177, -178, -514, -799, -1120, -1238, -1446, -1914, -2206, -2069, -1724, -1218, -675, 403, 1587, 10391, 17960, 12996, 4106, -3204, -5756, -3983, -2049, -4025, -10017, -11376, -7444, -3275, -60, 751, 750, 1933, 5097, 7442, 6069, 3469, 1246, 87, 103, -526, -2235, -4086, -4202, -2776, -1238, -34, 354, 956, 2050, 2908, 3065, 2242, 1311, 557, -49, -425, -1171, -1757, -1790, -1290, -594, -357, -284, -212, 122, 809, 1042, 818, 168, -69, 474, 421, -452, -1605, -2380, -2274, -1574, -1230, -2216, -2752, -2511, -1407, -640, 312, 676, 4389, 19943, 23784, 11922, -2128, -11491, -10505, -5286, -2405, -8670, -16588, -12890, -4652, 2789, 5901, 4161, 3109, 5802, 10495, 9957, 4443, -427, -3507, -3885, -3529, -4689, -6813, -7109, -4011, -349, 1936, 2980, 3045, 3496, 4643, 5230, 4065, 1849, -118, -1173, -1445, -2042, -2893, -3375, -2894, -1254, 274, 1038, 1307, 2290, 2781, 2132, 1267, 106, -630, -884, -1637, -2480, -3193, -3014, -2220, -1334, -981, -1771, -2146, -1551, -431, 200, 527, 742, 3176, 17053, 21910, 10382, -1289, -7789, -6810, -3716, -4452, -11521, -16921, -10358, -1918, 2356, 3087, 1882, 3618, 8258, 11358, 8237, 2385, -273, -1011, -759, -2180, -5560, -7378, -5592, -2185, -744, -524, 8, 1316, 3802, 5109, 4298, 2707, 1756, 1418, 649, -450, -1740, -2189, -1271, -1100, -1679, -1844, -1360, -592, -325, -144, 133, 745, 1554, 1549, 852, 513, 308, -135, -795, -1430, -1921, -2655, -3667, -3859, -3421, -2082, -855, 743, 1367, 11088, 21800, 14144, 3001, -2687, -3697, -1984, -3637, -10176, -15992, -11894, -4093, -1757, -1223, -662, 2685, 8279, 10945, 8109, 3635, 2661, 2783, 892, -2400, -6211, -7154, -4982, -2746, -2283, -2438, -971, 1750, 3884, 4493, 3457, 2951, 3329, 2881, 1281, -590, -1789, -2085, -2185, -2296, -2621, -2183, -1219, -538, -59, 510, 1243, 1925, 1929, 1515, 982, 511, -433, -1173, -1845, -2172, -2228, -2871, -3663, -3279, -2056, -670, 256, 1334, 2850, 15158, 19429, 7039, -384, -1970, -1342, -1607, -6796, -13500, -14145, -6652, -2427, -3188, -2202, 996, 6164, 9815, 8518, 5061, 3964, 4637, 2691, -1290, -4764, -6237, -5122, -3867, -4382, -4340, -2171, 954, 2885, 3430, 3650, 4302, 5176, 4711, 2169, 3, -958, -1485, -2344, -3327, -3815, -3159, -1939, -888, -331, 405, 1484, 2494, 2693, 2133, 1396, 838, -47, -874, -1956, -2849, -2975, -3277, -3840, -3478, -2275, -834, 246, 1425, 2537, 15180, 18376, 5188, 410, 802, 554, -1236, -7656, -13700, -12256, -5313, -3930, -5878, -3184, 1356, 6062, 8660, 6908, 5229, 6261, 6295, 2669, -1615, -3864, -4683, -4685, -5191, -6164, -4786, -1257, 803, 1647, 2717, 4277, 5751, 5444, 3534, 1693, 788, 240, -1209, -2868, -3856, -3683, -2945, -2398, -2127, -1237, 221, 1625, 2252, 2363, 2177, 2139, 1646, 747, -682, -1592, -1973, -2640, -4154, -4457, -3691, -2213, -1609, 358, 9, 8796, 19973, 8801, 323, 3725, 4003, 1287, -4158, -11215, -12123, -6560, -4893, -8680, -7000, -1262, 2843, 5584, 5846, 5210, 7061, 8286, 5502, 1735, 34, -1179, -2711, -4369, -6004, -5869, -4326, -3324, -2591, -387, 2387, 3383, 4066, 4520, 4303, 4319, 3839, 1928, -212, -929, -1713, -3166, -3950, -4068, -3727, -2636, -1732, -858, 429, 1712, 2271, 2567, 2489, 2242, 1508, 525, -534, -1480, -3190, -4176, -4399, -3711, -3319, -1318, -1529, 5824, 18263, 8980, 1129, 6565, 5402, 1529, -2393, -8897, -9751, -5403, -5862, -10492, -7777, -1518, 366, 2076, 3696, 4427, 7644, 8718, 5220, 2988, 3238, 1518, -1549, -3359, -4583, -5273, -4773, -4814, -4600, -2655, -692, 471, 2320, 4827, 5642, 5031, 4951, 4328, 3095, 1691, -433, -2141, -2810, -3720, -4751, -4605, -3658, -2743, -1551, -321, 614, 1792, 2448, 2382, 2240, 1606, 743, 87, -1379, -3091, -3718, -3446, -3437, -2448, -1598, 213, 13754, 13943, 1573, 6057, 9324, 2801, -23, -4927, -8617, -5726, -5704, -11215, -10704, -3695, -2220, -2605, 1165, 3401, 5816, 8504, 6316, 4585, 6307, 4747, 594, -1023, -1896, -3709, -4527, -5028, -5585, -4224, -2220, -1274, 293, 1942, 2965, 3680, 4734, 4718, 3363, 2892, 2290, 475, -716, -1845, -2946, -3263, -3337, -3567, -3026, -1758, -982, -436, 702, 1028, 1410, 1741, 899, 309, 291, -996, -2445, -3047, -2952, -3078, -1523, -2030, 2577, 15559, 9454, 1329, 10378, 8861, 812, -178, -5162, -7416, -4607, -8367, -13138, -8360, -2930, -5048, -4060, 1923, 3453, 5460, 7466, 5185, 6214, 8049, 3818, 813, 1270, -554, -3504, -4259, -4876, -4876, -3386, -3386, -3113, -156, 1431, 1404, 2648, 3661, 3690, 3786, 3546, 2712, 1647, 1033, -233, -1897, -2276, -2634, -3387, -2877, -2404, -2222, -1388, -525, -72, 513, 771, 515, 361, 372, -1054, -2250, -2155, -2433, -2983, -1100, -1463, 1833, 14674, 9493, 994, 11938, 10503, -113, 849, -2621, -6603, -4210, -8873, -13590, -7446, -3923, -8350, -5775, 1855, 2051, 2889, 6569, 5468, 6885, 9044, 3845, 1981, 4585, 840, -3160, -2258, -3339, -4931, -3915, -4280, -4171, -1115, -336, -844, 1792, 3382, 2470, 3089, 3456, 2413, 2294, 1580, -213, -464, -689, -2154, -2373, -1735, -1924, -1759, -1042, -263, -271, -470, 311, 122, -736, -585, -908, -1820, -2145, -2413, -2727, -1706, -627, -619, 4874, 12214, 7923, 4151, 10217, 8801, 1832, -249, -2252, -3941, -5356, -8809, -10597, -8087, -4985, -7232, -7340, -455, 1766, 511, 3545, 5644, 6035, 7060, 5689, 3666, 4528, 4075, -346, -2183, -702, -2923, -5332, -3956, -3938, -3891, -1722, -1618, -1007, 2233, 3124, 2092, 3473, 4677, 3158, 2354, 2344, 896, 13, -353, -1920, -2500, -1876, -2429, -2904, -1931, -1548, -1647, -1143, -884, -587, -356, -508, -603, -570, -880, -1604, -1523, -1037, -233, 392, 246, 7721, 12282, 3714, 4320, 10768, 5362, -326, -905, -1597, -3500, -6473, -8522, -9139, -6295, -5259, -8560, -4871, 1286, 254, -49, 3842, 6419, 5774, 5068, 5505, 4977, 4533, 3102, -292, -514, 212, -2991, -5293, -3514, -2846, -4594, -4048, -1929, -1453, -380, 842, 1019, 2564, 4031, 2872, 2666, 4105, 3307, 1387, 1469, 1130, -486, -1134, -1432, -2295, -2313, -2289, -2707, -2354, -1718, -2015, -1659, -910, -1114, -1046, -671, -781, -696, -1066, -920, -494, 630, -299, 2946, 11838, 6153, 756, 9967, 9690, 956, -307, 1845, -422, -4869, -5636, -7078, -7135, -4922, -8414, -8790, -2391, -1148, -3767, -1233, 4544, 4553, 2606, 5319, 6810, 5740, 4969, 3580, 2641, 2352, 620, -2410, -2839, -1672, -3703, -5513, -3556, -2440, -3208, -2349, -432, 345, 1085, 2191, 2337, 2745, 3717, 2847, 1849, 2422, 2079, 335, -214, -200, -1094, -1711, -1872, -2344, -2092, -1723, -2328, -2458, -1317, -1102, -1879, -1257, -123, -629, -738, -453, -109, 594, 1436, 277, 2464, 11940, 6632, -1004, 8264, 10307, 345, -2750, 2361, 611, -7160, -6461, -5327, -7288, -6340, -7520, -7649, -3079, -742, -3018, -1572, 5171, 5207, 1733, 5350, 8233, 5364, 3687, 4600, 3696, 1606, 583, -1252, -2373, -1724, -3315, -5337, -3644, -2214, -3828, -3650, -742, 30, -493, 992, 2447, 2577, 2805, 3105, 2993, 3033, 2781, 1472, 929, 1016, -326, -1571, -1491, -1549, -2321, -2736, -2195, -1921, -2231, -2236, -1424, -1151, -1565, -1131, -567, -966, -660, -647, -512, 129, 1163, -39, 2185, 9519, 3970, 1406, 8300, 7218, 904, 922, 4135, -220, -3955, -2012, -3738, -5164, -4935, -5977, -5533, -3731, -3711, -4401, -1222, 1074, -614, 576, 3421, 3648, 2696, 3423, 4231, 3550, 2987, 2061, 1263, 1521, 290, -1497, -1411, -887, -2235, -3156, -2033, -1655, -2231, -1780, -914, -406, -37, 398, 721, 1364, 1844, 1608, 1558, 1991, 1915, 1263, 920, 1012, 455, -182, -375, -600, -1079, -1270, -1304, -1347, -1242, -1019, -991, -693, -437, -596, -480, 54, -152, -430, -113, 13, -468, -500, -521, -375, -321, 46, -615, 1857, 5276, 1047, 1304, 5364, 3720, 427, 969, 2866, 60, -1980, -856, -1994, -2713, -2620, -3138, -3432, -2515, -1677, -2598, -1889, 111, 16, -190, 914, 1912, 1649, 1546, 2185, 1917, 1525, 1621, 1180, 585, 440, 444, -330, -841, -637, -867, -1331, -1271, -1064, -1109, -1007, -648, -539, -378, 38, 310, 399, 644, 932, 1043, 1017, 1087, 1034, 896, 724, 493, 249, 71, -7, -260, -565, -549, -526, -607, -669, -547, -426, -399, -283, -164, -120, -9, 41, 53, -42, -73, -112, -179, -342, -426, -469, -497, -554, -574, -701, -484, -266, -66, -354, 757, 2832, 1417, 142, 2007, 3958, 2079, 28, 1105, 1712, 464, -647, -819, -992, -1518, -1511, -1828, -2259, -1935, -1445, -1378, -1419, -869, -216, -39, 212, 606, 932, 966, 1093, 1317, 1159, 923, 869, 781, 471, 155, 48, -163, -431, -536, -624, -717, -739, -679, -574, -466, -297, -136, 0, 162, 282, 383, 443, 478, 521, 500, 418, 335, 257, 194, 91, 7, -59, -114, -170, -186, -240, -312, -257, -154, -145, -165, -121, -32, -7, 24, 81, 90, 89, 174, 205, 111, 67, 89, 81, -9, -51, -70, -155, -284, -278, -327, -429, -396, -341, -381, -430, -352, -310, -272, -204, -85, -150, 80, 662, 335, -1, 222, 524, 319, 344, 1942, 1990, 525, 363, 1053, 1318, 421, 50, 91, -476, -747, -661, -791, -1278, -1465, -1063, -965, -1033, -768, -502, -304, -172, 154, 401, 463, 596, 731, 746, 683, 622, 562, 404, 269, 151, -16, -163, -270, -338, -409, -413, -369, -398, -358, -250, -188, -222, -97, 60, 158, 174, 248, 307, 329, 325, 354, 295, 217, 162, 154, 78, 0, -66, -86, -97, -93, -119, -104, -35, -4, -11, -6, -69, -43, 38, 41, -7, -37, 0, -13, -85, -68, -68, -80, -107, -81, -82, -74, -86, -66, -92, -61, -61, -33, -59, -71, -122, -126, -181, -217, -254, -236, -270, -342, -315, -291, -285, -153, -35, 78, 89, 1837, 2562, 831, 424, 1316, 1760, 754, -120, 26, -317, -593, -716, -1095, -1379, -1373, -1018, -1002, -1129, -762, -415, -179, -2, 243, 478, 604, 784, 838, 751, 682, 608, 504, 280, 35, -118, -205, -323, -476, -579, -561, -566, -544, -427, -292, -179, -49, 98, 231, 332, 430, 482, 485, 478, 442, 392, 283, 178, 82, 18, -77, -143, -208, -211, -224, -225, -227, -167, -112, -45, -15, 50, 114, 161, 178, 204, 219, 205, 162, 106, 66, -23, -155, -194, -192, -254, -307, -314, -257, -247, -184, -157, -118, -48, 35, 34, 9, 0, 53, -15, -101, -126, -139, -229, -321, -431, -343, -225, -136, -203, 155, 2249, 2043, 292, 680, 1780, 1723, 370, -146, 104, -212, -411, -968, -1471, -1388, -1103, -1045, -1383, -1195, -536, -254, -126, -31, 344, 710, 860, 881, 800, 822, 866, 599, 316, 112, 0, -205, -447, -592, -660, -669, -626, -625, -510, -331, -112, 20, 154, 307, 459, 557, 569, 515, 492, 464, 383, 189, 70, 5, -88, -218, -281, -289, -290, -312, -254, -188, -103, -18, 89, 160, 201, 248, 324, 334, 307, 255, 201, 125, 47, -41, -146, -175, -214, -290, -298, -398, -399, -262, -234, -263, -198, -20, 69, 41, 17, 59, 80, 37, -109, -163, -139, -217, -396, -489, -464, -241, -223, -132, -266, 1765, 2822, 428, 325, 1911, 2224, 731, -466, 58, 90, -363, -1061, -1848, -1478, -1048, -1188, -1626, -1425, -500, -126, -120, 29, 427, 983, 1016, 846, 890, 1003, 968, 621, 321, 168, 11, -203, -507, -673, -695, -714, -741, -820, -670, -416, -267, -153, 14, 262, 468, 551, 629, 658, 705, 676, 571, 452, 333, 200, 49, -106, -193, -336, -439, -444, -440, -429, -382, -296, -193, -87, 17, 78, 148, 237, 288, 278, 282, 280, 243, 162, 95, 67, 6, -62, -121, -174, -228, -261, -278, -309, -330, -301, -278, -304, -342, -329, -283, -302, -329, -278, -238, -245, -244, -269, -78, 41, 242, 97, 1291, 2890, 1483, 993, 1982, 2135, 1016, 98, 475, 68, -777, -1112, -1511, -1531, -1717, -1782, -1761, -1558, -1042, -930, -723, -176, 262, 536, 698, 1069, 1263, 1231, 1250, 1085, 901, 696, 423, 113, -206, -382, -622, -836, -909, -938, -898, -852, -708, -503, -323, -82, 121, 340, 520, 672, 780, 820, 838, 808, 714, 614, 452, 309, 124, -30, -158, -280, -378, -437, -465, -459, -439, -386, -330, -247, -164, -94, -30, 20, 75, 97, 72, 38, 66, 56, 10, 7, 24, -3, -44, -31, 2, -17, -43, -11, -33, -65, -125, -208, -261, -399, -523, -590, -648, -749, -865, -727, -583, -399, -359, 937, 2246, 1545, 1816, 2823, 2789, 1815, 1425, 1819, 907, 22, -344, -736, -1228, -1916, -2187, -2283, -2317, -2281, -2329, -1779, -1327, -1049, -609, -9, 603, 799, 1139, 1566, 1672, 1679, 1543, 1538, 1309, 954, 658, 360, 66, -293, -625, -752, -945, -1055, -1136, -1060, -938, -895, -698, -484, -262, -79, 125, 365, 533, 654, 779, 859, 933, 880, 852, 803, 690, 555, 394, 291, 92, -95, -230, -373, -524, -625, -691, -729, -764, -719, -680, -583, -469, -351, -222, -73, 79, 170, 274, 392, 423, 419, 417, 393, 254, 117, -36, -207, -402, -607, -734, -940, -1034, -1216, -1324, -1241, -1034, -923, -557, 1060, 1737, 1615, 2842, 3811, 3578, 2905, 3300, 3178, 1690, 955, 455, -292, -1483, -2319, -2502, -3018, -3353, -3562, -3301, -2792, -2659, -2195, -1426, -640, -142, 273, 1167, 1653, 1841, 2078, 2310, 2408, 2044, 1855, 1622, 1205, 717, 206, -131, -533, -952, -1217, -1401, -1429, -1527, -1467, -1251, -1021, -781, -507, -138, 199, 419, 710, 910, 1082, 1144, 1180, 1166, 1090, 978, 809, 614, 444, 219, 4, -204, -352, -515, -653, -746, -776, -825, -810, -804, -699, -617, -494, -373, -190, -34, 102, 214, 357, 438, 477, 469, 458, 394, 225, 28, -148, -353, -602, -785, -934, -1033, -1142, -1203, -1058, -874, -612, -427, 838, 1786, 1645, 2459, 3425, 3408, 2808, 2738, 2832, 1691, 673, 137, -499, -1435, -2395, -2637, -2831, -3168, -3261, -2988, -2361, -2064, -1671, -864, -100, 419, 790, 1411, 1924, 1941, 1943, 2017, 1964, 1554, 1104, 872, 496, -29, -470, -717, -911, -1231, -1365, -1308, -1196, -1146, -992, -667, -350, -150, 119, 446, 714, 840, 956, 1107, 1132, 1064, 940, 850, 690, 445, 212, 24, -154, -367, -514, -588, -630, -683, -664, -595, -502, -438, -322, -194, -88, -28, 67, 160, 192, 218, 246, 253, 204, 150, 101, 1, -96, -193, -284, -376, -455, -555, -575, -631, -659, -679, -651, -615, -644, -561, -425, -228, -130, 276, 1386, 1613, 1695, 2525, 2972, 2674, 2279, 2336, 2011, 997, 342, -163, -758, -1590, -2268, -2448, -2639, -2927, -2968, -2601, -2099, -1895, -1414, -663, -21, 374, 827, 1410, 1787, 1850, 1929, 2002, 1916, 1555, 1215, 942, 563, 49, -358, -646, -900, -1218, -1356, -1331, -1269, -1215, -1025, -714, -425, -201, 114, 419, 671, 789, 948, 1040, 1053, 955, 865, 756, 580, 352, 185, 22, -143, -317, -395, -475, -535, -564, -500, -483, -398, -319, -195, -106, -11, 86, 152, 199, 219, 243, 221, 140, 94, 32, -51, -104, -140, -202, -240, -263, -294, -345, -390, -409, -483, -545, -577, -602, -626, -699, -643, -557, -392, -292, 114, 1059, 1328, 1501, 2285, 2720, 2562, 2319, 2336, 2078, 1242, 591, 88, -507, -1320, -2026, -2257, -2474, -2759, -2782, -2435, -1979, -1679, -1182, -459, 126, 549, 972, 1433, 1694, 1699, 1649, 1588, 1338, 953, 553, 236, -157, -557, -827, -994, -1099, -1142, -1070, -878, -648, -389, -78, 231, 532, 746, 930, 1044, 1084, 1028, 909, 732, 516, 277, 1, -263, -479, -645, -807, -871, -828, -761, -639, -472, -236, -29, 175, 347, 507, 612, 652, 641, 584, 501, 346, 180, 22, -131, -285, -416, -501, -560, -574, -595, -565, -495, -437, -411, -363, -258, -217, -226, -211, -226, -253, -363, -472, -483, -424, -340, -341, 552, 1617, 1454, 1874, 2855, 3002, 2514, 2085, 2061, 1390, 268, -528, -1234, -1750, -2502, -3167, -3146, -2930, -2789, -2584, -1872, -901, -282, 308, 1085, 1794, 2213, 2289, 2307, 2303, 1969, 1401, 756, 267, -269, -938, -1423, -1683, -1786, -1828, -1744, -1412, -955, -474, -38, 439, 953, 1308, 1472, 1559, 1581, 1441, 1132, 752, 391, -3, -410, -793, -1044, -1157, -1200, -1179, -984, -695, -328, -29, 350, 698, 959, 1087, 1108, 1083, 927, 662, 339, 41, -276, -572, -826, -957, -1012, -1024, -912, -762, -514, -289, -55, 187, 332, 428, 429, 397, 275, 14, -231, -469, -727, -1018, -1174, -1020, -786, -613, -228, 1364, 2799, 2457, 2788, 3873, 3684, 2460, 1383, 960, -70, -1527, -2538, -3408, -3453, -3426, -3769, -3360, -2146, -960, -415, 314, 1728, 2548, 2696, 2764, 2677, 2528, 1897, 899, -2, -669, -1177, -1992, -2608, -2448, -2195, -1980, -1628, -901, 1, 661, 1183, 1643, 2036, 2295, 2105, 1691, 1346, 916, 309, -359, -841, -1115, -1364, -1512, -1455, -1159, -790, -458, -64, 400, 781, 977, 1072, 1176, 1113, 902, 624, 333, 67, -243, -501, -741, -848, -834, -819, -831, -736, -485, -307, -216, -73, 114, 244, 355, 353, 266, 237, 286, 158, -288, -453, -492, -814, -1143, -1383, -1324, -1111, -815, -615, 442, 3114, 3953, 3029, 3919, 4941, 3971, 1878, 374, -455, -1974, -3286, -4552, -5650, -4570, -3342, -3483, -2641, -269, 1946, 2478, 2830, 4030, 4214, 3803, 2888, 1228, 136, -491, -1700, -3203, -3856, -3201, -2821, -2817, -1903, -637, 581, 1606, 2167, 2553, 2896, 3040, 2593, 1551, 807, 272, -605, -1460, -2042, -2202, -2015, -1775, -1386, -876, -132, 665, 1150, 1393, 1651, 1797, 1694, 1299, 803, 318, -107, -513, -923, -1298, -1358, -1289, -1153, -1084, -838, -447, -41, 243, 441, 656, 958, 981, 839, 682, 511, 236, -52, -445, -778, -1174, -1308, -1352, -1558, -1649, -1547, -1278, -879, -382, 161, 644, 3348, 6104, 4816, 3648, 4808, 4552, 2078, -784, -2182, -3265, -4352, -4702, -5791, -6030, -3554, -1612, -1271, -443, 1928, 3939, 4107, 4000, 4064, 3257, 2711, 1724, -334, -2045, -2530, -2818, -3814, -4286, -3290, -2251, -1389, -186, 846, 1714, 2703, 3331, 3093, 2464, 2180, 1666, 523, -508, -1187, -1812, -2159, -2176, -2015, -1810, -1193, -271, 366, 829, 1396, 1903, 2099, 1994, 1626, 1124, 566, 139, -409, -1054, -1436, -1468, -1292, -1136, -1026, -684, -200, 225, 501, 562, 625, 732, 705, 523, 230, -65, -282, -465, -752, -1154, -1418, -1247, -1238, -1499, -1622, -1520, -1164, -695, -34, 403, 1638, 5931, 7958, 5384, 4240, 4911, 3894, 836, -2312, -4068, -5473, -5637, -5363, -6650, -6603, -3512, -852, -104, 663, 2831, 4675, 5137, 5106, 4149, 2660, 2205, 1551, -531, -2750, -3254, -2848, -3218, -3660, -3123, -2255, -1075, 296, 1020, 1242, 1997, 3202, 3380, 2502, 1924, 1596, 954, 119, -773, -1635, -2079, -1966, -1815, -1949, -1750, -932, -103, 443, 899, 1332, 1814, 2147, 2079, 1638, 1083, 677, 232, -448, -1163, -1623, -1755, -1731, -1606, -1448, -1105, -692, -98, 367, 706, 901, 1041, 1012, 803, 544, 56, -557, -990, -1031, -1320, -1806, -2086, -1988, -1453, -840, -107, 286, 2824, 8161, 9177, 5513, 3632, 3567, 2327, -794, -3932, -6200, -7500, -6227, -4761, -5838, -5877, -2578, 1103, 2615, 3068, 4186, 5094, 5568, 5778, 4142, 1250, -132, -349, -1662, -3998, -5143, -4834, -4300, -3396, -2216, -1395, -256, 1793, 3508, 3851, 3570, 3620, 3451, 2651, 1641, 418, -868, -1653, -1907, -2339, -2754, -2446, -1671, -1065, -478, 139, 677, 1196, 1665, 1890, 1696, 1486, 1340, 988, 343, -254, -685, -994, -1246, -1391, -1430, -1328, -1092, -793, -525, -158, 205, 559, 744, 829, 829, 758, 439, 9, -296, -447, -813, -1334, -1615, -1731, -1694, -1559, -1055, -694, 360, 3442, 5109, 3607, 2189, 2785, 4015, 3152, 868, -642, -1512, -1742, -1879, -2998, -4294, -4178, -2538, -1395, -1552, -1371, -211, 1144, 1968, 2197, 2053, 1917, 2172, 2349, 1636, 410, -250, -406, -763, -1506, -2096, -2271, -2112, -1695, -1288, -1062, -671, 160, 1038, 1398, 1487, 1588, 1643, 1513, 1173, 665, 72, -358, -595, -820, -1083, -1209, -1030, -748, -424, -140, 137, 405, 691, 869, 882, 764, 636, 514, 322, 62, -196, -408, -528, -545, -548, -555, -450, -265, -90, 79, 217, 343, 400, 391, 378, 302, 180, 41, -105, -226, -375, -435, -459, -428, -381, -321, -222, -149, -79, 24, 158, 248, 183, 112, 63, 27, -49, -119, -233, -176, 64, 185, -62, -229, -261, -200, -123, -85, 126, 1087, 1992, 1942, 1470, 1327, 1169, 695, -37, -706, -1358, -1547, -1428, -1460, -1608, -1364, -798, -192, 143, 449, 713, 959, 1160, 1184, 857, 537, 313, 121, -207, -539, -789, -843, -801, -670, -573, -439, -208, 123, 325, 448, 530, 617, 602, 526, 364, 173, -17, -133, -269, -377, -447, -423, -353, -257, -159, -41, 67, 202, 275, 321, 314, 294, 244, 180, 84, -28, -95, -131, -186, -185, -179, -147, -95, -25, 31, 51, 111, 150, 135, 146, 122, 78, 61, 43, -4, -43, -51, -74, -81, -66, -69, -64, -40, -19, -7, 4, 16, 29, 27, 30, 28, 8, 6, 6, -7, 0, 12, 6, -13, -22, -26, -42, -54, -51, -62, -59, -32, -21, -21, -11, 4, 12, 7, 3, -21, -56, -46, -42, -68, -89, -95, -84, -68, -46, -32, -22, 67, 214, 276, 221, 144, 119, 94, 30, -43, -81, -46, 51, 136, 177, 210, 244, 262, 213, 106, -21, -133, -221, -299, -373, -413, -380, -299, -201, -98, 23, 134, 230, 301, 309, 268, 224, 184, 103, -21, -121, -166, -189, -204, -211, -207, -174, -96, -10, 44, 72, 99, 126, 137, 126, 96, 48, 17, -6, -40, -68, -83, -75, -69, -73, -58, -29, -1, 14, 24, 41, 47, 41, 39, 38, 37, 23, 0, -10, -6, -1, -1, -4, -3, -1, 5, 7, 7, 15, 11, -1, -3, 6, -6, -8, 0, -6, -5, 6, 17, -1, -7, 5, 4, -3, -6, -10, -26, -43, -37, -28, -21, -18, -28, -29, -15, -3, -2, -17, -22, -13, -31, -36, -27, -33, -57, -43, -15, 5, 20, 60, 107, 165, 197, 199, 172, 144, 102, 51, -28, -94, -131, -139, -157, -158, -149, -117, -87, -39, -7, 22, 43, 67, 67, 56, 40, 44, 25, 13, -12, -28, -31, -23, -25, -18, -12, -8, -6, 14, 12, 6, 19, 35, 25, 16, 5, 0, 9, 7, 2, 16, 18, 3, -4, 8, 18, 3, 9, 5, 10, -3, -10, -12, -10, -13, -19, -29, -10, -17, -18, -24, -27, -27, -10, -24, -29, -43, -35, -39, -31, -33, -21, -30, -8, 21, 53, 65, 103, 117, 128, 120, 119, 68, 36, 2, -23, -55, -71, -94, -88, -81, -67, -63, -48, -34, -8, 6, 11, 10, 30, 25, 15, 27, 26, 15, -1, 0, 3, -6, -5, 9, 3, 7, 4, 8, -2, 9, 12, 27, 13, 6, -2, 6, -17, 5, -4, 0, -9, 4, -16, -16, -26, -10, -36, -18, -30, -26, -33, -19, -50, -38, -43, -25, -16, 24, 27, 71, 92, 108, 94, 97, 64, 52, 16, -6, -33, -36, -57, -57, -68, -43, -43, -37, -46, -20, -10, 3, -7, 10, 10, 11, 13, 12, -1, 19, 3, 4, 12, 20, 12, 10, 15, 14, -2, 15, 19, 5, 2, 2, 1, -5, -16, -1, -8, -16, -8, -13, -29, -24, -27, -28, -28, -37, -30, -24, -8, 26, 58, 75, 81, 73, 59, 51, 30, 6, 3, -5, -24, -22, -15, -23, -34, -38, -30, -21, -10, -8, -4, 0, 4, -12, -15, -6, -9, 13, 22, 18, 28, 30, 15, 10, 5, 6, -13, -36, -34, -42, -47, -25, -14, -21, -17, 22, 26, -5, 4, 2, -24, -32, -4, 5, 11, 25, 7, 6, 15, 23, 26, 6, 11, 43, 21, 8, 39, 4, 21, 40, 22, 60, 75, 83, 122, 95, 73, 26, -23, -27, -92, -119, -104, -92, -41, -4, -4, -6, 6, 15, 38, 34, 23, 31, 14, 9, -15, -37, -33, -83, -120, -100, -81, -97, -64, -11, 8, 10, 41, 15, 46, 174, 106, 55, 99, 1, -18, -30, -61, -61, -67, -39, -33, -12, 13, -1, 5, 19, 3, 9, -1, -5, -25, -26, -15, -37, -14, -3, -10, 5, 15, 22, 26, 39, 40, 33, 37, 30, 18, 22, 7, 7, 0, -5, -6, -15, -11, -19, -17, -21, -23, -27, -27, -30, -35, -27, -49, -45, -64, -56, -74, -28, -13, 15, 429, 417, 80, 188, 29, -101, -111, -167, -162, -171, -56, -91, -72, 42, -18, 15, 45, 11, 31, 1, 23, -7, -5, 21, -21, 28, 12, 5, 28, 7, 26, 7, 15, 25, 5, 25, 10, 10, 22, -9, 10, -17, -5, -16, -17, -9, -8, -21, -11, -39, -23, -46, -30, -46, -26, -51, -67, -76, -90, -80, -63, 39, -30, 635, 818, 46, 147, -11, -278, -216, -248, -194, -242, -6, -63, -100, 131, -11, 44, 91, 17, -18, -58, -5, -49, 21, -33, 34, 160, 61, 42, 32, -2, -113, -120, -192, -75, 174, -143, -100, -10, 1, 79, 135, 266, -1, 116, 120, -89, 154, -22, 10, -58, -38, -202, -307, 432, 240, -80, 320, -182, -285, -252, -618, -269, -89, 401, 459, 347, 472, 26, -18, -47, -376, -223, -199, -46, -93, 22, 219, 196, 46, -326, -160, 115, -210, 144, 129, -141, -8, 140, 433, -12, -87, 20, -10, 30, -307, -261, -690, -238, 822, 469, 415, 320, -6, 185, -219, -145, -246, -420, -115, -157, -84, -87, 221, 0, -23, 530, 4, -15, 89, 9, -58, -197, -96, -421, -165, -13, -452, 55, 171, 130, 110, 311, 464, -39, 43, 10, -65, 28, -164, 62, -60, -209, -362, -272, 244, -103, 209, 819, 167, 68, -34, -230, -100, -10, 105, 170, 423, 632, 119, -199, 42, -178, -85, -74, -344, -439, -339, -216, 311, 678, 582, 435, -158, -175, 73, -80, -464, -815, -203, -323, -664, -21, 26, 433, 441, 246, 333, 142, 171, -387, -263, 148, 23, 149, -126, 30, 51, 117, 188, -539, 29, 205, -123, 155, 131, 104, 19, 145, -289, -431, 0, -420, -218, 56, 91, 195, -103, 87, -3, 343, 207, -281, 35, -148, 138, 93, -334, 63, 36, 78, -302, -526, -427, -660, -238, -298, 21, 790, 448, 472, 757, 856, 389, -389, 69, 103, -63, -13, -557, -170, 125, -4, -352, -410, 315, -48, -97, -124, -527, 246, 647, 71, -235, -228, -451, -306, 363, 382, -74, 108, 28, -341, 37, 162, -66, 183, 454, 227, 187, 517, 471, -139, -228, 63, -170, -150, 244, -64, -456, -54, 461, 195, -309, -326, -89, 49, 50, -323, -210, 435, 988, 820, 218, -165, -192, -175, -579, -567, -365, -146, 141, -662, -1223, -704, 227, 269, -448, 337, 931, 673, 437, -205, -176, -156, -299, -386, -496, 142, 116, -154, -355, -491, 17, -203, -499, -298, 546, 1489, 516, -241, 67, 90, -223, -616, -622, -157, 616, 1075, 610, 288, 676, 659, 150, -342, -244, -86, -320, -220, -278, -543, -80, 488, 247, -54, -153, -207, -283, -198, -170, -266, 60, 153, -215, -72, 120, 76, 56, -87, 22, 64, 141, 73, -37, 277, 136, -169, -203, -127, -17, -145, -140, -241, -175, 15, -195, -212, -100, -52, -12, -178, -183, -149, -57, -117, -392, -91, 48, -216, -271, -469, -397, -181, 516, 777, 1001, 3479, 4115, 1347, -222, -177, -240, -1385, -1635, -1006, -1541, -520, 485, -557, -748, -38, 644, 246, -252, 468, 74, -220, 342, -5, -595, -393, 152, 8, -347, 106, -23, -344, 218, 493, 39, -291, 56, 296, -170, -123, -127, -256, 22, 115, -152, -373, 40, 424, 4, -81, 71, 149, 196, 108, -52, -140, 178, 398, 119, -134, -9, 219, 92, 44, -49, 5, 156, 240, 44, -224, -7, 198, 46, -57, -75, 82, 53, 94, -147, -214, 10, 142, -60, -192, -55, 4, 13, -20, -153, -107, -17, -1, -264, -153, 125, 109, -43, -215, -368, -192, -77, -270, -476, -241, 3, -343, -672, -840, -735, -154, 520, -118, 638, 5110, 5318, 313, -1333, -315, -312, -1728, -2948, -3283, -1999, 2484, 2536, -2013, -1675, 2109, 2863, 441, -940, -163, 507, 1163, 406, -2538, -2285, 789, 1005, -1405, -2044, 21, 1110, 607, 143, -524, -70, 1636, 1329, -636, -1084, 522, 978, -127, -706, -462, -31, 667, 392, -639, -636, 527, 949, 183, -322, -7, 503, 716, 348, -298, -269, 355, 505, -116, -541, -312, 179, 305, -33, -464, -280, 277, 425, -204, -549, -279, 129, 80, -348, -630, -332, 214, 54, -792, -987, -88, -51, -616, -1227, -1268, -659, -335, -81, -718, 4376, 11477, 5778, -1970, -272, 1642, -973, -5351, -7281, -6891, -2672, 3193, -7, -4939, 911, 7202, 4919, 629, 214, 1744, 2296, 1588, -2183, -6087, -2879, 1197, -1255, -4385, -1998, 1583, 2244, 1509, 876, 599, 2229, 3512, 715, -1625, -209, 943, -848, -2156, -1329, -394, 36, 502, 56, -46, 1476, 2086, 549, -412, 521, 1004, -234, -1188, -1288, -1050, -434, -346, -644, -305, 722, 1109, 337, -280, -52, 5, 78, -1079, -2736, -2774, -1980, -1476, -1451, -969, 245, 1501, 10820, 16134, 3358, -4437, 1229, 2611, -3693, -10270, -10079, -5371, -873, 1188, -4267, -5509, 6273, 12488, 6174, 732, 1904, 4303, 3430, -849, -7991, -10784, -3524, 1056, -4652, -7465 }; codec2-1.0.1/unittest/ofdm_check000077500000000000000000000040551412132000500165270ustar00rootroot00000000000000#! /bin/bash # ofdm_check # # A series of checks of the ofdm functions, mostly decode. # # This uses ofdm_mod to supply test data to ofdm_demod and mosty # assumes that the encode function is correct. # Define macros to (later) allow testing alternate versions. alias OFDM_MOD=ofdm_mod alias OFDM_DEMOD=ofdm_demod shopt -s expand_aliases # PATH PATH=$PATH:../src PASS=1 ############################### echo echo "Simple test, plain, ideal" OFDM_MOD --in /dev/zero --testframes 100 | OFDM_DEMOD --out /dev/null --testframes --verbose 1 2> tmp cat tmp p1=$(grep '^BER\.*: 0.000' tmp | wc -l) p2=$(grep '^BER2\.*: 0.000' tmp | wc -l) if [[ $p1 -eq 1 && $p2 -eq 1 ]]; then echo "OK"; else echo "BAD"; PASS=0; fi ############################### echo echo "Simple test, plain, AWGN" OFDM_MOD --in /dev/zero --testframes 100 | cohpsk_ch - - -20 -Fs 8000 -f -5 --raw_dir ../../raw | OFDM_DEMOD --out /dev/null --testframes --verbose 1 2>tmp cat tmp n=$(grep '^BER\.*:' tmp | cut -d ' ' -f 2) p1=$(echo $n '<=' 0.10 | bc) n=$(grep '^BER2\.*:' tmp | cut -d ' ' -f 2) p2=$(echo $n '<=' 0.10 | bc) if [[ $p1 -eq 1 && $p2 -eq 1 ]]; then echo "OK"; else echo "BAD"; PASS=0; fi ############################### echo echo "Simple test, LDPC, ideal" OFDM_MOD --in /dev/zero --ldpc --testframes 100 | OFDM_DEMOD --out /dev/null --ldpc --testframes --verbose 1 2>tmp cat tmp p1=$(grep '^BER\.*: 0.000' tmp | wc -l) p2=$(grep '^Coded BER: 0.000' tmp | wc -l) if [[ $p1 -eq 1 && $p2 -eq 1 ]]; then echo "OK"; else echo "BAD"; PASS=0; fi ############################### echo echo "Simple test, LDPC, AWGN" OFDM_MOD --in /dev/zero --ldpc --testframes 100 | cohpsk_ch - - -20 -Fs 8000 -f -5 --raw_dir ../../raw | OFDM_DEMOD --out /dev/null --ldpc --testframes --verbose 1 2>tmp cat tmp n=$(grep '^BER\.*:' tmp | cut -d ' ' -f 2) p1=$(echo $n '<=' 0.10 | bc) n=$(grep '^Coded.*BER\.*:' tmp | cut -d ' ' -f 3) p2=$(echo $n '<=' 0.01 | bc) if [[ $p1 -eq 1 && $p2 -eq 1 ]]; then echo "OK"; else echo "BAD"; PASS=0; fi echo if [[ $PASS == 1 ]]; then echo "PASSED"; else echo "FAILED"; fi codec2-1.0.1/unittest/ofdm_fade.sh000077500000000000000000000017001412132000500167540ustar00rootroot00000000000000#!/bin/bash -x # # David June 2019 # Tests 700D OFDM modem fading channel performance, using a simulated channel results=$(mktemp) # generate fading file if [ ! -f ../raw/fast_fading_samples.float ]; then echo "Generating fading files ......" cmd='cd ../octave; pkg load signal; cohpsk_ch_fading("../raw/fast_fading_samples.float", 8000, 1.0, 8000*60)' octave --no-gui -qf --eval "$cmd" [ ! $? -eq 0 ] && { echo "octave failed to run correctly .... exiting"; exit 1; } fi pwd # BER should be around 4% for this test (it's better for larger interleavers but no one uses interleaving in practice) ofdm_mod --in /dev/zero --ldpc 1 --testframes 60 --txbpf | cohpsk_ch - - -24 --Fs 8000 -f -10 --mpp --raw_dir ../raw | ofdm_demod --out /dev/null --testframes --verbose 2 --ldpc 1 2> $results cat $results cber=$(cat $results | sed -n "s/^Coded BER.* \([0-9..]*\) Tbits.*/\1/p") python -c "import sys; sys.exit(0) if $cber<=0.05 else sys.exit(1)" codec2-1.0.1/unittest/ofdm_fade_dpsk.sh000077500000000000000000000020061412132000500177750ustar00rootroot00000000000000#!/bin/bash -x # # David Sep 2019 # Tests 2020 OFDM modem fading channel performance in DPSK mode, using a simulated faster (2Hz) high SNR fading channel RAW=$PWD/../raw results=$(mktemp) # generate fading file if [ ! -f ../raw/faster_fading_samples.float ]; then echo "Generating fading files ......" cmd='cd ../octave; pkg load signal; cohpsk_ch_fading("../raw/faster_fading_samples.float", 8000, 2.0, 8000*60)' octave --no-gui -qf --eval "$cmd" [ ! $? -eq 0 ] && { echo "octave failed to run correctly .... exiting"; exit 1; } fi pwd # Coded BER should be < 1% for this test ofdm_mod --in /dev/zero --testframes 300 --mode 2020 --ldpc --verbose 1 -p 312 --dpsk | \ cohpsk_ch - - -40 --Fs 8000 -f 10 --ssbfilt 1 --mpd --raw_dir $RAW --multipath_delay 2 | \ ofdm_demod --out /dev/null --testframes --mode 2020 --verbose 1 --ldpc -p 312 --dpsk 2> $results cat $results cber=$(cat $results | sed -n "s/^Coded BER.* \([0-9..]*\) Tbits.*/\1/p") python -c "import sys; sys.exit(0) if $cber<=0.05 else sys.exit(1)" codec2-1.0.1/unittest/ofdm_mem.c000066400000000000000000000112611412132000500164430ustar00rootroot00000000000000/*---------------------------------------------------------------------------*\ FILE........: ofdm_mem.c AUTHOR......: Don Reid DATE CREATED: 11 June 2018 Prints out the memory used by the OFDM modem states. Used to optimise memory use for thw STM32F4 port. \*---------------------------------------------------------------------------*/ /* Copyright (C) 2018 Don Reid All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 2.1, as published by the Free Software Foundation. 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 Lesser General Public License along with this program; if not, see . */ #include #include #include #include #include #include #include "codec2_ofdm.h" #include "ofdm_internal.h" int main() { struct OFDM_CONFIG *ofdm_config; struct OFDM *ofdm; ofdm = ofdm_create(NULL); assert(ofdm != NULL); /* Get a copy of the actual modem config */ ofdm_config = ofdm_get_config_param(ofdm); int ofdm_m = (int) (ofdm_config->fs / ofdm_config->rs); /* 144 */ int ofdm_ncp = (int) (ofdm_config->tcp * ofdm_config->fs); /* 16 */ int ofdm_bitsperframe = (ofdm_config->ns - 1) * (ofdm_config->nc * ofdm_config->bps); int ofdm_rowsperframe = ofdm_bitsperframe / (ofdm_config->nc * ofdm_config->bps); int ofdm_samplesperframe = ofdm_config->ns * (ofdm_m + ofdm_ncp); int ofdm_rxbuf = 3 * ofdm_samplesperframe + 3 * (ofdm_m + ofdm_ncp); int ofdm_nuwbits = (ofdm_config->ns - 1) * ofdm_config->bps - ofdm_config->txtbits; int used = 0; printf("struct OFDM.................: %zd\n", sizeof(struct OFDM)); printf("config......................: %zd\n", sizeof(struct OFDM_CONFIG)); used += sizeof(struct OFDM_CONFIG); printf("pilot_samples...............: %zd\n", sizeof (complex float) * (ofdm_m + ofdm_ncp)); used += sizeof (complex float) * (ofdm_m + ofdm_ncp); printf("rxbuf.......................: %zd\n", sizeof (complex float) * ofdm_rxbuf); used += sizeof (complex float) * ofdm_rxbuf; printf("pilots......................: %zd\n", sizeof (complex float) * (ofdm_config->nc + 2)); used += sizeof (complex float) * (ofdm_config->nc + 2); size_t rxsym_size = sizeof (complex float) * (ofdm_config->ns + 3) * (ofdm_config->nc + 2); printf("rx_sym......................: %zd\n", rxsym_size); used += rxsym_size; printf("rx_np.......................: %zd\n", sizeof (complex float) * (ofdm_rowsperframe * ofdm_config->nc)); used += sizeof (complex float) * (ofdm_rowsperframe * ofdm_config->nc); printf("rx_amp......................: %zd\n", sizeof (float) * (ofdm_rowsperframe * ofdm_config->nc)); used += sizeof (float) * (ofdm_rowsperframe * ofdm_config->nc); printf("aphase_est_pilot_log........: %zd\n", sizeof (float) * (ofdm_rowsperframe * ofdm_config->nc)); used += sizeof (float) * (ofdm_rowsperframe * ofdm_config->nc); printf("tx_uw.......................: %zd\n", sizeof (int) * ofdm_nuwbits); used += sizeof (int) * ofdm_nuwbits; printf("sync_state..................: %zd\n", sizeof (State)); used += sizeof (State); printf("last_sync_state.............: %zd\n", sizeof (State)); used += sizeof (State); printf("sync_state_interleaver......: %zd\n", sizeof (State)); used += sizeof (State); printf("last_sync_state_interleaver.: %zd\n", sizeof (State)); used += sizeof (State); // add in non-array sizes int single = 0; single += 8 * sizeof(int); single += 13 * sizeof(float); single += 1 * sizeof(complex float); single += 1 * sizeof(float *); single += 4 * sizeof(bool); printf("single values...............: %d\n", single); used += single; printf("Total used .................: %zd\n", (size_t) used); ofdm_destroy(ofdm); return 0; } codec2-1.0.1/unittest/ofdm_phase_est_bw.sh000077500000000000000000000024771412132000500205340ustar00rootroot00000000000000#!/bin/bash -x # # ofdm_phase_est_bw.sh # David August 2019 # Tests 2020 OFDM modem phase est bandwidth mode option. Locking the # phase est bandwidth to "high" is useful for High SNR channels with # fast fading or high phase noise. In this test we show that with # high bandwidth phase est mode, the BER is < 5% for the "--mpp" (1 # Hz fading) channel model on a fairly high SNR channel. # # To run manually outside of ctest: # $ cd codec2/unittest # $ PATH=$PATH:../build_linux/src ./ofdm_phase_est_bw.sh results=$(mktemp) # generate fading file if [ ! -f ../raw/fast_fading_samples.float ]; then echo "Generating fading file ......" cmd='cd ../octave; pkg load signal; cohpsk_ch_fading("../raw/fast_fading_samples.float", 8000, 1.0, 8000*60)' octave --no-gui -qf --eval "$cmd" [ ! $? -eq 0 ] && { echo "octave failed to run correctly .... exiting"; exit 1; } fi pwd # BER should be < 5% for this test ofdm_mod --in /dev/zero --testframes 300 --mode 2020 --ldpc -p 312 --verbose 0 | \ cohpsk_ch - - -40 --Fs 8000 -f 10 --ssbfilt 1 --mpp --raw_dir ../raw | \ ofdm_demod --out /dev/null --testframes --mode 2020 --verbose 2 --ldpc -p 312 --bandwidth 1 2> $results cat $results cber=$(cat $results | sed -n "s/^Coded BER.* \([0-9..]*\) Tbits.*/\1/p") python -c "import sys; sys.exit(0) if $cber<=0.05 else sys.exit(1)" codec2-1.0.1/unittest/ofdm_stack.c000066400000000000000000000136651412132000500170040ustar00rootroot00000000000000#include #include #include #include #include #include #include "comp.h" #include "ofdm_internal.h" #include "codec2_ofdm.h" #include "test_bits_ofdm.h" /* payload_data_bits */ #include "mpdecode_core.h" #define MAX_ERRORS 32 static int ofdm_bitsperframe; static int ofdm_rowsperframe; static int ofdm_nuwbits; static int ofdm_ntxtbits; static int ofdm_rx_offset; static int ofdm_data_bitsperframe; static int ofdm_samplesperframe; static int ofdm_max_samplesperframe; static int ofdm_rxbuf; static int ofdm_m; static int ofdm_ncp; // Forwards void run_modem(struct OFDM *ofdm, int tx_bits[], int rx_bits[], COMP tx_rx[]); void dummy_code(); ///////////////////////////////////////////////////////////// /// MAIN() int main(int argc, char *argv[]) { // Options int f, i, opt; int dummy = 0; // flag to use dummy code int frames = 1; // how many frames int print = 0; // flag to print all bits struct OFDM *ofdm; struct OFDM_CONFIG *ofdm_config; ofdm = ofdm_create(NULL); assert(ofdm != NULL); /* Get a copy of the actual modem config */ ofdm_config = ofdm_get_config_param(ofdm); ofdm_m = (int) (ofdm_config->fs / ofdm_config->rs); ofdm_ncp = (int) (ofdm_config->tcp * ofdm_config->fs); ofdm_bitsperframe = ofdm_get_bits_per_frame(ofdm); ofdm_rowsperframe = ofdm_bitsperframe / (ofdm_config->nc * ofdm_config->bps); ofdm_samplesperframe = ofdm_get_samples_per_frame(ofdm); ofdm_max_samplesperframe = ofdm_get_max_samples_per_frame(ofdm); ofdm_rxbuf = 3 * ofdm_samplesperframe + 3 * (ofdm_m + ofdm_ncp); ofdm_nuwbits = (ofdm_config->ns - 1) * ofdm_config->bps - ofdm_config->txtbits; ofdm_ntxtbits = ofdm_config->txtbits; ofdm_rx_offset = (ofdm_nuwbits + ofdm_ntxtbits); ofdm_data_bitsperframe = (ofdm_bitsperframe - ofdm_rx_offset); int tx_bits[ofdm_data_bitsperframe]; int rx_bits[ofdm_data_bitsperframe]; COMP tx_rx[ofdm_samplesperframe]; while ((opt = getopt(argc, argv, "df:p")) != -1) { switch (opt) { case 'd': dummy = 1; break; case 'f': frames = atoi(optarg); break; case 'p': print = 1; break; default: fprintf(stderr, "Usage: %s [-e] [-f ] [-p]\n", argv[0]); } } for (f = 0; f < frames; f++) { //////// // Prep inputs for(i=0; itx_uw[i]; } for(i=ofdm_nuwbits; irxbuf[ofdm_rxbuf-nin+i] = tx_rx[prx].real + tx_rx[prx].imag * I; } for (i=ofdm_samplesperframe ; irxbuf[ofdm_rxbuf-nin+i] = 0.0 + 0.0 * I; } /* disable estimators for initial testing */ ofdm_set_verbose(ofdm, false); ofdm_set_timing_enable(ofdm, true); ofdm_set_foff_est_enable(ofdm, true); ofdm_set_phase_est_enable(ofdm, true); ofdm->mean_amp = 1.0; nin = ofdm_get_nin(ofdm); /* Insert samples at end of buffer, set to zero if no samples available to disable phase estimation on future pilots on last frame of simulation. */ if ((Nsam-prx) < nin) { lnew = Nsam-prx; } else { lnew = nin; } for(i=0; i/dev/null > $onerun fi; if [ "$1" = "2020" ]; then ofdm_demod --mode 2020 --in ../wav/david4.wav --out /dev/null --verbose 2 --ldpc -p 312 \ --start_secs $start_secs --len_secs 5 2>/dev/null > $onerun fi; [ ! $? -eq 0 ] && { echo "error running ofdm_demod"; exit 1; } cat $onerun | sed -n "s/time_to_sync: \([0-9..]*\)/\1/p" >> $results done # a pass is we never take longer than 5 secs to sync (mean is much smaller) python3 -c " import sys; import numpy as np x=np.loadtxt(\"$results\") fails=sum(x == -1) print(\"fails: %d mean: %5.2f var: %5.2f \" % (fails, np.mean(x), np.var(x))) sys.exit(0) if fails==0 else sys.exit(1) " codec2-1.0.1/unittest/ota_auto.sh000077500000000000000000000006631412132000500166720ustar00rootroot00000000000000#!/bin/bash -x # ota_auto.sh # # Run a single automated test and log results timestamp=$(date +"%F-%T") mkdir -p $timestamp start_dir=$(pwd) cd $timestamp ../ota_test.sh "$@" >> log.txt 2>&1 cd $start_dir kiwi_sdr=$(head -n 1 ${timestamp}/log.txt) mode=$(head -n 2 ${timestamp}/log.txt | tail -n 1) result=$(awk '/FrmGd/{getline; print}' ${timestamp}/log.txt) printf "%s %-25s %s %s\n" $timestamp $kiwi_sdr $mode "$result" >> log.txt codec2-1.0.1/unittest/ota_last.sh000077500000000000000000000023111412132000500166550ustar00rootroot00000000000000#!/bin/bash # # Present summary info from the n-th latest OTA HF data test function print_help { echo echo "Summary of last automated Over The Air (OTA) test" echo echo " usage ./ota_last.sh [options]" echo echo " -a show scatter diagram" echo " -p play the received wave file" echo " -n N select N-th from last file" echo " -s display spectrogram" } show_spec=0 show_scatter=0 play_file=0 N=1 while [[ $# -gt 0 ]] do key="$1" case $key in -n) N="$2" shift shift ;; -a) show_scatter=1 shift ;; -s) show_spec=1 shift ;; -p) play_file=1 shift ;; -h) print_help ;; esac done # cat the log from the selected test directory=$(ls -td 2021* | head -n ${N} | tail -n 1) echo ${directory} cat ${directory}/log.txt # optionally show a few plots if [ $show_spec -eq 1 ]; then if [ -f ${directory}/spec.png ]; then eog ${directory}/spec.png else eog ${directory}/spec.jpg fi fi if [ $show_scatter -eq 1 ]; then eog ${directory}/scatter.png fi if [ $play_file -eq 1 ]; then play ${directory}/rx.wav fi codec2-1.0.1/unittest/ota_summary.sh000077500000000000000000000023371412132000500174170ustar00rootroot00000000000000#!/bin/bash # # Summarise tests to date CODEC2=${HOME}/codec2 function print_help { echo echo "Automated Over The Air (OTA) data test for FreeDV OFDM HF data modems" echo echo " usage ./ota_summary.sh [-t]" echo echo " -t create/update thumbnail directory" exit 0 } thumbnails=0 while [[ $# -gt 0 ]] do key="$1" case $key in -t) thumbnails=1 shift ;; -h) print_help ;; esac done total_bytes=$(cat log.txt | tr -s ' ' | cut -f6 -d' ' | awk '$0==($0+0)' | paste -sd+ | bc) printf "total bytes: %'d\n" ${total_bytes} # collect SNR averages from log.txt and generate a histogram ota_snrs=mktemp cat log.txt | tr -s ' ' | cut -f7 -d' ' | awk '$0==($0+0)'| sed '/-nan/d' > ${ota_snrs} echo "warning('off', 'all'); \ snr=load('${ota_snrs}'); \ hist(snr); \ print('snr_hist.png','-dpng'); \ quit" | octave-cli -qf > /dev/null # option to put small versions of spec/scatter in one dir if [ $thumbnails -ne 0 ]; then mkdir -p thumbnails spec_files=$(find . -name spec.jpg -o -name spec.png) for f in $spec_files do d=$(echo $f | sed -r 's/\.(.*)\//\1_/') echo $f thumbnails${d} cp $f thumbnails${d} done fi codec2-1.0.1/unittest/ota_test.sh000077500000000000000000000076311412132000500167030ustar00rootroot00000000000000#!/bin/bash # ota_test.sh # # Automated Over The Air (OTA) data test for FreeDV OFDM HF data modems # # 1. Build codec2 # 2. Install kiwclient: # cd ~ && git clone git@github.com:jks-prv/kiwiclient.git # 3. Install Hamlib cli tools PATH=${PATH}:${HOME}/codec2/build_linux/src:${HOME}/kiwiclient CODEC2=${HOME}/codec2 kiwi_url="" port=8073 freq_kHz="7177" tx_only=0 Nbursts=5 mode="datac0" model=361 function print_help { echo echo "Automated Over The Air (OTA) data test for FreeDV OFDM HF data modems" echo echo " usage ./ota_test.sh [-d] [-f freq_kHz] [-t] [-n Nbursts] [-o model] [-p port] kiwi_url" echo echo " -d debug mode; trace script execution" echo " -o model select radio model number ('rigctl -l' to list)" echo " -m mode datac0|datac1|datac3" echo " -t Tx only, useful for manually observing SDRs which block multiple sessions from one IP" echo exit } function run_rigctl { command=$1 model=$2 echo $command | rigctl -m $model -r /dev/ttyUSB0 > /dev/null if [ $? -ne 0 ]; then echo "Can't talk to Tx" exit 1 fi } POSITIONAL=() while [[ $# -gt 0 ]] do key="$1" case $key in -d) set -x shift ;; -f) freq_kHz="$2" shift shift ;; -o) model="$2" shift shift ;; -m) mode="$2" shift shift ;; -n) Nbursts="$2" shift shift ;; -p) port="$2" shift shift ;; -t) tx_only=1 shift ;; -h) print_help ;; *) POSITIONAL+=("$1") # save it in an array for later shift ;; esac done set -- "${POSITIONAL[@]}" # restore positional parameters if [ $tx_only -eq 0 ]; then if [ $# -lt 1 ]; then print_help fi kiwi_url="$1" echo $kiwi_url fi # create test Tx file echo $mode freedv_data_raw_tx -q --framesperburst 1 --bursts ${Nbursts} --testframes ${Nbursts} ${mode} /dev/zero test_datac0.raw usb_lsb=$(python3 -c "print('usb') if ${freq_kHz} >= 10000 else print('lsb')") if [ $tx_only -eq 0 ]; then echo -n "waiting for KiwiSDR " # start recording from remote kiwisdr kiwi_stdout=$(mktemp) kiwirecorder.py -s $kiwi_url -p ${port} -f $freq_kHz -m ${usb_lsb} -r 8000 --filename=rx --time-limit=300 >$kiwi_stdout & kiwi_pid=$! # wait for kiwi to start recording timeout_counter=0 until grep -q -i 'Block: ' $kiwi_stdout do timeout_counter=$((timeout_counter+1)) if [ $timeout_counter -eq 10 ]; then echo "can't connect to ${kiwi_url}" exit 1 fi echo -n "." sleep 1 done echo fi # transmit using local SSB radio echo "Tx data signal" freq_Hz=$((freq_kHz*1000)) usb_lsb_upper=$(echo ${usb_lsb} | awk '{print toupper($0)}') run_rigctl "\\set_mode PKT${usb_lsb_upper} 0" $model run_rigctl "\\set_freq ${freq_Hz}" $model run_rigctl "\\set_ptt 1" $model aplay --device="plughw:CARD=CODEC,DEV=0" -f S16_LE test_datac0.raw 2>/dev/null run_rigctl "\\set_ptt 0" $model if [ $tx_only -eq 0 ]; then sleep 2 echo "Stopping KiwiSDR" kill ${kiwi_pid} wait ${kiwi_pid} 2>/dev/null echo "Process receiver sample" # generate spectrogram echo "pkg load signal; warning('off', 'all'); \ s=load_raw('rx.wav'); \ plot_specgram(s, 8000, 500, 2500); print('spec.jpg', '-djpg'); \ quit" | octave-cli -p ${CODEC2}/octave -qf > /dev/null # attempt to demodulate freedv_data_raw_rx -q --framesperburst 1 --testframes ${mode} -v --scatter scatter.txt --singleline rx.wav /dev/null # render scatter plot (if we get any frames) scatter_sz=$(ls -l scatter.txt | cut -f 5 -d' ') if [ $scatter_sz -ne 0 ]; then echo "pkg load signal; warning('off', 'all'); pl_scatter('scatter.txt'); quit" | octave-cli -p ${CODEC2}/octave -qf > /dev/null fi fi codec2-1.0.1/unittest/ota_voice_auto.sh000077500000000000000000000015771412132000500200640ustar00rootroot00000000000000#!/bin/bash -x # ota_voice_auto.sh # # Run a single automated voice test, files are put in a time stamped directory, and summarised in single line # in the log file log_voice.txt. Designed to be from cron. # use crontab -e to edit cron for currrent user, sample entry: # m h dom mon dow command # */10 6-12 24 4 * cd codec2/unittest; ./ota_voice_auto.sh ~/your_speech_file.s16 your.kiwi.sdr timestamp=$(date +"%F-%T") mkdir -p $timestamp start_dir=$(pwd) cd $timestamp ../ota_voice_test.sh "$@" > log.txt 2>&1 cd $start_dir kiwi_sdr=$(head -n 1 ${timestamp}/log.txt) mode=$(head -n 2 ${timestamp}/log.txt | tail -n 1) Nsync=$(cat ${timestamp}/log.txt | grep Nsync | tr -s ' ' | cut -d' ' -f2) SNRav=$(cat ${timestamp}/log.txt | grep SNRav | tr -s ' ' | cut -d' ' -f2) printf "%s %-25s %s %3d %5.2f\n" $timestamp $kiwi_sdr $mode $Nsync $SNRav >> log_voice.txt codec2-1.0.1/unittest/ota_voice_summary.sh000077500000000000000000000025311412132000500206000ustar00rootroot00000000000000#!/bin/bash # # Summarise tests to date into one directory to allow easy browsing dir=voice_summary mkdir -p ${dir} time_snr_files=$(find . -name time_snr.jpg | sort) p=$(pwd) serial=0 for f in $time_snr_files do d=$(echo $f | sed -r 's/\.\/(.*)\/time_snr.jpg/\1/') sdr_url=$(head ${d}/log.txt -n 1) sdr="unk" case $sdr_url in "kiwisdr.areg.org.au") sdr="areg" ;; "sdr-amradioantennas.com") sdr="am" ;; "vk6qs.proxy.kiwisdr.com") sdr="vk6qs" ;; "sdr.ironstonerange.com") sdr="iron" ;; "kk6pr.ddns.net") sdr="kk6pr" ;; "kiwisdr.owdjim.gen.nz") sdr="marahau" ;; "kiwisdrzl1kfm.ddns.net") sdr="zl1kfm" ;; *) echo "Unknown Kiwi SDR" ;; esac mode=$(head ${d}/log.txt -n 2 | tail -n 1) serial_str=$(printf "%04d" $serial) echo $serial_str $d $sdr $mode cp ${d}/spec.jpg ${dir}/${serial_str}_${d}_${sdr}_${mode}_spec.jpg cp ${d}/time_snr.jpg ${dir}/${serial_str}_${d}_${sdr}_${mode}_time_snr.jpg cp ${d}/rx.wav ${dir}/${serial_str}_${d}_${sdr}_${mode}_rx.wav cp ${d}/rx_freedv.wav ${dir}/${serial_str}_${d}_${sdr}_${mode}_rx_freedv.wav serial=$((serial + 1)) done codec2-1.0.1/unittest/ota_voice_test.sh000077500000000000000000000155751412132000500200760ustar00rootroot00000000000000#!/bin/bash # ota_test.sh # # Automated Over The Air (OTA) voice test for FreeDV HF voice modes # # 1. Build codec2 # 2. Install kiwclient: # cd ~ && git clone git@github.com:jks-prv/kiwiclient.git # 3. Install Hamlib cli tools MY_PATH=`dirname $0` BUILD_PATH=`echo $MY_PATH/../build_*/src` PATH=${PATH}:${BUILD_PATH}:${HOME}/kiwiclient CODEC2=${MY_PATH}/.. kiwi_url="" port=8073 freq_kHz="7177" tx_only=0 Nbursts=5 mode="700D" model=361 gain=6 serialPort="/dev/ttyUSB0" rxwavefile=0 soundDevice="plughw:CARD=CODEC,DEV=0" txstats=0 function print_help { echo echo "Automated Over The Air (OTA) voice test for FreeDV HF voice modes" echo echo " usage ./ota_voice_test.sh [options] SpeechFile [kiwi_url]" echo " or:" echo " usage ./ota_voice_test.sh -r rxWaveFile" echo echo " -c dev The sound device (in ALSA format on Linux, CoreAudio for macOS)" echo " -d debug mode; trace script execution" echo " -g SSB (analog) compressor gain" echo " -m mode 700c|700d|700e" echo " -o model select radio model number ('rigctl -l' to list)" echo " -r Rx wave file mode: Rx process supplied rx wave file" echo " -s port The serial port (or hostname:port) to connect to for TX, default /dev/ttyUSB0" echo " -t Tx only, useful for manually observing SDRs" echo " -x Generate tx.wav file and exit" echo exit } # Approximation of Hilbert clipper type compressor. Could do with some HF boost function analog_compressor { input_file=$1 output_file=$2 gain=$3 cat $input_file | cohpsk_ch - - -100 --Fs 8000 2>/dev/null | \ cohpsk_ch - - -100 --Fs 8000 --clip 16384 --gain $gain 2>/dev/null | \ # final line prints peak and CPAPR for SSB cohpsk_ch - - -100 --Fs 8000 --clip 16384 | # manually adjusted to get similar peak levels for SSB and FreeDV sox -t .s16 -r 8000 -c 1 -v 0.85 - -t .s16 $output_file } function run_rigctl { command=$1 model=$2 echo $command | rigctl -m $model -r $serialPort > /dev/null if [ $? -ne 0 ]; then echo "Can't talk to Tx" exit 1 fi } function clean_up { echo "killing KiwiSDR process" kill ${kiwi_pid} wait ${kiwi_pid} 2>/dev/null exit 1 } function process_rx { echo "Process receiver sample" rx=$1 # generate spectrogram echo "pkg load signal; warning('off', 'all'); \ s=load_raw('${rx}'); \ plot_specgram(s, 8000, 200, 3000); print('spec.jpg', '-djpg'); \ quit" | octave-cli -p ${CODEC2}/octave -qf > /dev/null # attempt to decode freedv_rx ${mode} ${rx} - -v --highpassthroughgain 2>rx_stats.txt | sox -t .s16 -r 8000 -c 1 - rx_freedv.wav cat rx_stats.txt | tr -s ' ' | cut -f5 -d' ' | awk '$0==($0+0)' > sync.txt cat rx_stats.txt | tr -s ' ' | cut -f10 -d' ' | awk '$0==($0+0)' > snr.txt # time domain plot of output speech, SNR, and sync echo "pkg load signal; warning('off', 'all'); \ s=load_raw('rx_freedv.wav'); snr=load('snr.txt'); sync=load('sync.txt'); \ subplot(211); plot(s); subplot(212); x=1:length(sync); plotyy(x,snr,x,sync); \ ylim([-5 15]); ylabel('SNR (dB)'); grid; \ print('time_snr.jpg', '-djpg'); \ printf('Nsync: %3d\n', sum(sync)); \ snr_valid = snr(find(snr != -5.0)); \ if length(snr_valid) printf('SNRav: %5.2f\n', mean(snr_valid)); else printf('SNRav: %5.2f\n', -5); end; quit" | octave-cli -p ${CODEC2}/octave -qf } POSITIONAL=() while [[ $# -gt 0 ]] do key="$1" case $key in -d) set -x shift ;; -f) freq_kHz="$2" shift shift ;; -g) gain="$2" shift shift ;; -o) model="$2" shift shift ;; -m) mode="$2" shift shift ;; -p) port="$2" shift shift ;; -t) tx_only=1 shift ;; -r) rxwavefile=1 shift ;; -x) txstats=1 shift ;; -c) soundDevice="$2" shift shift ;; -s) serialPort="$2" shift shift ;; -h) print_help ;; *) POSITIONAL+=("$1") # save it in an array for later shift ;; esac done set -- "${POSITIONAL[@]}" # restore positional parameters if [ $rxwavefile -eq 1 ]; then process_rx $1 exit 0 fi speechfile="$1" if [ ! -f $speechfile ]; then echo "Can't find ${speechfile}!" exit 1 fi if [ $tx_only -eq 0 ]; then if [ $# -lt 1 ]; then print_help fi kiwi_url="$2" echo $kiwi_url fi # create Tx file ------------------------ echo $mode # create compressed analog speech_comp=$(mktemp) speech_freedv=$(mktemp) analog_compressor $speechfile $speech_comp $gain # create modulated FreeDV, with compressor enabled freedv_tx $mode $speechfile $speech_freedv --clip 1 cat $speech_comp $speech_freedv > tx.raw sox -t .s16 -r 8000 -c 1 tx.raw tx.wav if [ $txstats -eq 1 ]; then # cohpsk_ch just used to monitor observe peak and RMS level cohpsk_ch $speech_freedv /dev/null -100 # time domain plot of tx signal echo "pkg load signal; warning('off', 'all'); \ s=load_raw('tx.raw'); plot(s); \ print('tx.jpg', '-djpg'); \ quit" | octave-cli -p ${CODEC2}/octave -qf > /dev/null exit 0 fi # kick off KiwiSDR ---------------------------- usb_lsb=$(python3 -c "print('usb') if ${freq_kHz} >= 10000 else print('lsb')") if [ $tx_only -eq 0 ]; then # clean up any kiwiSDR processes if we get a ctrl-C trap clean_up SIGHUP SIGINT SIGTERM echo -n "waiting for KiwiSDR " # start recording from remote kiwisdr kiwi_stdout=$(mktemp) kiwirecorder.py -s $kiwi_url -p ${port} -f $freq_kHz -m ${usb_lsb} -r 8000 --filename=rx --time-limit=300 >$kiwi_stdout & kiwi_pid=$! # wait for kiwi to start recording timeout_counter=0 until grep -q -i 'Block: ' $kiwi_stdout do timeout_counter=$((timeout_counter+1)) if [ $timeout_counter -eq 10 ]; then echo "can't connect to ${kiwi_url}" kill ${kiwi_pid} wait ${kiwi_pid} 2>/dev/null exit 1 fi echo -n "." sleep 1 done echo fi # transmit using local SSB radio echo "Tx data signal" freq_Hz=$((freq_kHz*1000)) usb_lsb_upper=$(echo ${usb_lsb} | awk '{print toupper($0)}') run_rigctl "\\set_mode PKT${usb_lsb_upper} 0" $model run_rigctl "\\set_freq ${freq_Hz}" $model run_rigctl "\\set_ptt 1" $model if [ `uname` == "Darwin" ]; then AUDIODEV="${soundDevice}" play -t raw -b 16 -c 1 -r 8000 -e signed-integer --endian little tx.raw else aplay --device="${soundDevice}" -f S16_LE tx.raw 2>/dev/null fi run_rigctl "\\set_ptt 0" $model if [ $tx_only -eq 0 ]; then sleep 2 echo "Stopping KiwiSDR" kill ${kiwi_pid} wait ${kiwi_pid} 2>/dev/null process_rx rx.wav fi codec2-1.0.1/unittest/reliable_text_fade.sh000077500000000000000000000020311412132000500206500ustar00rootroot00000000000000#!/bin/bash -x # # Tests reliable_text fading channel performance, using a simulated channel results=$(mktemp -d) mode=$1 snr=$2 min_text_packets=$3 clip=$4 build_folder=$5 rx=$build_folder/freedv_rx tx=$build_folder/freedv_tx # generate fading file if [ ! -f ../raw/fast_fading_samples.float ]; then echo "Generating fading files ......" cmd='cd ../octave; pkg load signal; cohpsk_ch_fading("../raw/fast_fading_samples.float", 8000, 1.0, 8000*(60+53)' octave --no-gui -qf --eval "$cmd" [ ! $? -eq 0 ] && { echo "octave failed to run correctly .... exiting"; exit 1; } fi if [ $clip -eq 1 ]; then clip_args="--txbpf 1 --clip 1" else clip_args= fi $tx $mode ../raw/ve9qrp.raw - --reliabletext AB1CDEF $clip_args | $build_folder/cohpsk_ch - - $snr --mpp --Fs 8000 -f -5 --raw_dir ../raw/ > $results/reliable_fade.raw $rx $mode $results/reliable_fade.raw /dev/null --txtrx $results/reliable_fade.txt --reliabletext if [ `cat $results/reliable_fade.txt | wc -l` -ge $min_text_packets ]; then exit 0 else exit -1 fi codec2-1.0.1/unittest/sd.c000066400000000000000000000044251412132000500152720ustar00rootroot00000000000000/*--------------------------------------------------------------------------*\ FILE........: sd.c AUTHOR......: David Rowe DATE CREATED: 20/7/93 Function to determine spectral distortion between two sets of LPCs. \*--------------------------------------------------------------------------*/ /* Copyright (C) 2009 David Rowe All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 2.1, as published by the Free Software Foundation. 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 Lesser General Public License along with this program; if not, see . */ #define MAX_N 2048 /* maximum DFT size */ #include #include "four1.h" #include "comp.h" #include "sd.h" /*---------------------------------------------------------------------------*\ FUNCTION....: spectral_dist() AUTHOR......: David Rowe DATE CREATED: 20/7/93 This function returns the soectral distoertion between two sets of LPCs. \*---------------------------------------------------------------------------*/ float spectral_dist(float ak1[], float ak2[], int p, int n) /* float ak1[]; unquantised set of p+1 LPCs */ /* float ak2[]; quantised set of p+1 LPCs */ /* int p; LP order */ /* int n; DFT size to use for SD calculations (power of 2) */ { COMP A1[MAX_N]; /* DFT of ak1[] */ COMP A2[MAX_N]; /* DFT of ak2[] */ float P1,P2; /* power of current bin */ float sd; int i; for(i=0; i. */ #ifndef __SD__ #define __SD__ float spectral_dist(float ak1[], float ak2[], int p, int n); #endif /* __SD__ */ codec2-1.0.1/unittest/sum_debug_alloc000077500000000000000000000041541412132000500175710ustar00rootroot00000000000000#!/usr/bin/env python3 """ sum_debug_alloc Sum lines reported from codec2-dev/src/debug_alloc.h and report Lines like: CALLOC: run_ldpc_decoder(112, 32) MALLOC: other_func(238) """ import fileinput by_func = {} by_addr = {} def new_func(): rec = {} rec['cur'] = 0 rec['max'] = 0 return(rec) def new_addr(): rec = {} rec['func'] = 0 # Where allocated, may not be same as where free'd! rec['size'] = 0 return(rec) for line in fileinput.input(): if ((line.startswith("MALLOC:")) or (line.startswith("CALLOC:"))): if (line.startswith("MALLOC:")): words = line.translate( str.maketrans("()", " ") ).strip().split() func = words[1] addr = words[2] size = int(words[3]) elif (line.startswith("CALLOC:")): words = line.translate( str.maketrans("(,)", " ") ).strip().split() func = words[1] addr = words[2] size = int(words[3]) * int(words[4]) #print("Alloc: {} to {} in {}".format(size, addr, func)) if (not (func in by_func)): by_func[func] = new_func() data = by_func[func] data['cur'] += size if (data['cur'] > data['max']): data['max'] = data['cur'] if (addr in by_addr): print("Error: duplicate allocation to {} in {}".format(addr, func)) else: by_addr[addr] = new_addr() by_addr[addr]['func'] = func by_addr[addr]['size'] = size elif (line.startswith("FREE:")): words = line.translate( str.maketrans("(,)", " ") ).strip().split() func = words[1] addr = words[2] if (addr in by_addr): func_a = by_addr[addr]['func'] by_func[func_a]['cur'] -= by_addr[addr]['size'] del(by_addr[addr]) else: print("Error: free of unallocated location {} in {}".format(addr, func)) #print("Free: {}:{} in {} to {}".format(func_a, addr, func, by_func[func_a]['cur'])) ##### total = 0 for func, sum in by_func.items(): max = by_func[func]['max'] print("{} = {}".format(func, max)) total += max print("Total = {}".format(total)) codec2-1.0.1/unittest/t16_8.c000066400000000000000000000046231412132000500155250ustar00rootroot00000000000000/* t16_8.c David Rowe May 10 2012 Unit test for 16 <-> 8 kHz sample rate conversion functions. I Evaluated output by plotting using Octave and looking for jaggies: pl("../unittest/out16.raw",1,3000) pl("../unittest/out8.raw",1,3000) Listening to it also shows up anything nasty: $ play -s -2 -r 16000 out16.raw $ play -s -2 -r 8000 out8.raw */ #include #include #include #include #include "codec2_fdmdv.h" #define N8 159 /* processing buffer size at 8 kHz (odd number deliberate) */ #define N16 (N8*FDMDV_OS) #define FRAMES 50 #define TWO_PI 6.283185307 #define FS 16000 #define SINE int main() { float in8k[FDMDV_OS_TAPS_8K + N8]; short in8k_short[N8]; float out16k[N16]; short out16k_short[N16]; FILE *f16; float in16k[FDMDV_OS_TAPS_16K + N16]; float out8k[N16]; short out8k_short[N8]; FILE *f8, *f8in; int i,f,t,t1; float freq = 800.0; f16 = fopen("out16.raw", "wb"); assert(f16 != NULL); f8 = fopen("out8.raw", "wb"); assert(f8 != NULL); f8in = fopen("in8.raw", "wb"); assert(f8in != NULL); /* clear filter memories */ for(i=0; i 8 kHz sample rate conversion functions. I evaluated output by plotting using Octave and looking for jaggies: pl("../unittest/out16_short.raw",1,3000) pl("../unittest/out8.raw",1,3000) Listening to it also shows up anything nasty: $ play -s -2 -r 16000 out16_short.raw $ play -s -2 -r 8000 out8.raw */ #include #include #include #include #include "codec2_fdmdv.h" #define N8 159 /* procssing buffer size at 8 kHz */ #define N16 (N8*FDMDV_OS) #define FRAMES 100 #define TWO_PI 6.283185307 #define FS 16000 #define SINE int main() { short in8k_short[FDMDV_OS_TAPS_8K + N8]; short out16k_short[N16]; FILE *f16; short in16k_short[FDMDV_OS_TAPS_16K + N16]; short out8k_short[N16]; FILE *f8, *f8in; int i,f,t,t1; float freq = 800.0; f16 = fopen("out16_short.raw", "wb"); assert(f16 != NULL); f8 = fopen("out8_short.raw", "wb"); assert(f8 != NULL); f8in = fopen("in8_short.raw", "wb"); assert(f8in != NULL); /* clear filter memories */ for(i=0; i #include #include #include #include "t_helpers.h" void test(char * tfn) { fn = tfn; printf("========================================\n"); printf("test function: %s\n", fn); printf("========================================\n"); } void test_failed() { printf("Failed to calculate %s.\n", fn); exit(1); } void test_failed_s(char * expected, char * res) { printf("Failed to calculate %s.\n", fn); printf("expected: %s\ngot: %s\n", expected, res); exit(1); } void test_failed_f(float expected, float res) { printf("Failed to calculate %s.\n", fn); printf("expected: %f\ngot: %f\n", expected, res); exit(1); } codec2-1.0.1/unittest/t_helpers.h000066400000000000000000000022031412132000500166460ustar00rootroot00000000000000/*---------------------------------------------------------------------------*\ FILE........: t_helpers.c AUTHOR......: Phil Ayres DATE CREATED: July 2017 * Simple helper functions for unit tests * \*---------------------------------------------------------------------------*/ /* Copyright David Rowe 2017 All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 2.1, as published by the Free Software Foundation. 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 Lesser General Public License along with this program; if not, see . */ #ifndef T_HELPERS_H #define T_HELPERS_H void test(char * tfn); void test_failed(); void test_failed_s(char * expected, char * res); void test_failed_f(float expected, float res); char *fn; #endif /* T_HELPERS_H */ codec2-1.0.1/unittest/tcohpsk.c000066400000000000000000000276011412132000500163400ustar00rootroot00000000000000/*---------------------------------------------------------------------------*\ FILE........: tcohpsk.c AUTHOR......: David Rowe DATE CREATED: March 2015 Tests for the C version of the coherent PSK FDM modem. This program outputs a file of Octave vectors that are loaded and automatically tested against the Octave version of the modem by the Octave script tcohpsk.m \*---------------------------------------------------------------------------*/ /* Copyright (C) 2015 David Rowe All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 2.1, as published by the Free Software Foundation. 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 Lesser General Public License along with this program; if not, see . */ #include #include #include #include #include #include "fdmdv_internal.h" #include "codec2_fdmdv.h" #include "codec2_cohpsk.h" #include "cohpsk_defs.h" #include "cohpsk_internal.h" #include "octave.h" #include "comp_prim.h" #include "noise_samples.h" #define FRAMES 30 /* LOG_FRAMES is #defined in cohpsk_internal.h */ #define SYNC_FRAMES 12 /* sync state uses up extra log storage as we reprocess several times */ #define FRAMESL (SYNC_FRAMES*FRAMES) /* worst case is every frame is out of sync */ #define FOFF 58.7 #define DFOFF (-0.5/(float)COHPSK_FS) #define ESNODB 8 #define PPM -1500 extern float pilots_coh[][PILOTS_NC]; int main(int argc, char *argv[]) { struct COHPSK *coh; int tx_bits[COHPSK_BITS_PER_FRAME]; COMP tx_symb[NSYMROWPILOT][COHPSK_NC*ND]; COMP tx_fdm_frame[COHPSK_M*NSYMROWPILOT]; COMP ch_fdm_frame[COHPSK_M*NSYMROWPILOT]; //COMP rx_fdm_frame_bb[M*NSYMROWPILOT]; //COMP ch_symb[NSYMROWPILOT][COHPSK_NC*ND]; float rx_bits_sd[COHPSK_BITS_PER_FRAME]; int rx_bits[COHPSK_BITS_PER_FRAME]; int tx_bits_log[COHPSK_BITS_PER_FRAME*FRAMES]; COMP tx_symb_log[NSYMROWPILOT*FRAMES][COHPSK_NC*ND]; COMP tx_fdm_frame_log[COHPSK_M*NSYMROWPILOT*FRAMES]; COMP ch_fdm_frame_log[COHPSK_M*NSYMROWPILOT*FRAMES]; COMP ch_fdm_frame_log_out[(COHPSK_M*NSYMROWPILOT+1)*FRAMES]; //COMP rx_fdm_frame_bb_log[M*NSYMROWPILOT*FRAMES]; //COMP ch_symb_log[NSYMROWPILOT*FRAMES][COHPSK_NC*ND]; COMP ct_symb_ff_log[NSYMROWPILOT*FRAMES][COHPSK_NC*ND]; float rx_amp_log[NSYMROW*FRAMES][COHPSK_NC*ND]; float rx_phi_log[NSYMROW*FRAMES][COHPSK_NC*ND]; COMP rx_symb_log[NSYMROW*FRAMES][COHPSK_NC*ND]; int rx_bits_log[COHPSK_BITS_PER_FRAME*FRAMES]; FILE *fout; int f, r, c, log_r, log_data_r, noise_r, ff_log_r, i; double foff; COMP foff_rect, phase_ch; struct FDMDV *fdmdv; //COMP rx_filt[COHPSK_NC*ND][P+1]; //int rx_filt_log_col_index = 0; //float env[NT*P]; //float __attribute__((unused)) rx_timing; COMP tx_onesym[COHPSK_NC*ND]; //COMP rx_onesym[COHPSK_NC*ND]; //int rx_baseband_log_col_index = 0; //COMP rx_baseband_log[COHPSK_NC*ND][(M+M/P)*NSYMROWPILOT*FRAMES]; float f_est_log[FRAMES], sig_rms_log[FRAMES], noise_rms_log[FRAMES]; int f_est_samples; int log_bits; float EsNo, variance; COMP scaled_noise; int reliable_sync_bit; int ch_fdm_frame_log_index, nin_frame, tmp, nout; coh = cohpsk_create(); fdmdv = coh->fdmdv; assert(coh != NULL); cohpsk_set_verbose(coh, 1); /* these puppies are used for logging data in the bowels on the modem */ coh->rx_baseband_log_col_sz = (COHPSK_M+COHPSK_M/P)*NSYMROWPILOT*FRAMESL; coh->rx_baseband_log = (COMP *)malloc(sizeof(COMP)*COHPSK_NC*ND*coh->rx_baseband_log_col_sz); coh->rx_filt_log_col_sz = (P+1)*NSYMROWPILOT*FRAMESL; coh->rx_filt_log = (COMP *)malloc(sizeof(COMP)*COHPSK_NC*ND*coh->rx_filt_log_col_sz); coh->ch_symb_log_col_sz = COHPSK_NC*ND; coh->ch_symb_log = (COMP *)malloc(sizeof(COMP)*NSYMROWPILOT*FRAMESL*coh->ch_symb_log_col_sz); coh->rx_timing_log = (float*)malloc(sizeof(float)*NSYMROWPILOT*FRAMESL); /* init stuff */ log_r = log_data_r = noise_r = log_bits = ff_log_r = f_est_samples = 0; phase_ch.real = 1.0; phase_ch.imag = 0.0; foff = FOFF; /* each carrier has power = 2, total power 2Nc, total symbol rate NcRs, noise BW B=Fs Es/No = (C/Rs)/(N/B), N = var = 2NcFs/NcRs(Es/No) = 2Fs/Rs(Es/No) */ EsNo = pow(10.0, ESNODB/10.0); variance = 2.0*COHPSK_FS/(COHPSK_RS*EsNo); //fprintf(stderr, "doff: %e\n", DFOFF); /* Main Loop ---------------------------------------------------------------------*/ for(f=0; ftx_filter_memory, fdmdv->phase_tx, fdmdv->freq, &fdmdv->fbb_phase_tx, fdmdv->fbb_rect); } cohpsk_clip(tx_fdm_frame, COHPSK_CLIP, NSYMROWPILOT*COHPSK_M); /* --------------------------------------------------------*\ Channel \*---------------------------------------------------------*/ for(r=0; rframe = f; //printf("nin_frame: %d\n", nin_frame); assert(ch_fdm_frame_log_index < COHPSK_M*NSYMROWPILOT*FRAMES); tmp = nin_frame; cohpsk_demod(coh, rx_bits_sd, &reliable_sync_bit, &ch_fdm_frame_log_out[ch_fdm_frame_log_index], &nin_frame); for(i=0; isync == 1) { for(r=0; rct_symb_ff_buf[r][c]; } } for(r=0; ramp_[r][c]; rx_phi_log[log_data_r][c] = coh->phi_[r][c]; rx_symb_log[log_data_r][c] = coh->rx_symb[r][c]; } } memcpy(&rx_bits_log[COHPSK_BITS_PER_FRAME*log_bits], rx_bits, sizeof(int)*COHPSK_BITS_PER_FRAME); log_bits++; f_est_log[f_est_samples] = coh->f_est; sig_rms_log[f_est_samples] = coh->sig_rms; noise_rms_log[f_est_samples] = coh->noise_rms; f_est_samples++;; } assert(log_r <= NSYMROWPILOT*FRAMES); assert(noise_r <= NSYMROWPILOT*COHPSK_M*FRAMES); assert(log_data_r <= NSYMROW*FRAMES); printf("\r [%d]", f+1); } printf("\n"); /*---------------------------------------------------------*\ Dump logs to Octave file for evaluation by tcohpsk.m Octave script \*---------------------------------------------------------*/ fout = fopen("tcohpsk_out.txt","wt"); assert(fout != NULL); fprintf(fout, "# Created by tcohpsk.c\n"); octave_save_int(fout, "tx_bits_log_c", tx_bits_log, 1, COHPSK_BITS_PER_FRAME*FRAMES); octave_save_complex(fout, "tx_symb_log_c", (COMP*)tx_symb_log, NSYMROWPILOT*FRAMES, COHPSK_NC*ND, COHPSK_NC*ND); octave_save_complex(fout, "tx_fdm_frame_log_c", (COMP*)tx_fdm_frame_log, 1, COHPSK_M*NSYMROWPILOT*FRAMES, COHPSK_M*NSYMROWPILOT*FRAMES); octave_save_complex(fout, "ch_fdm_frame_log_c", (COMP*)ch_fdm_frame_log_out, 1, nout-1, nout-1); //octave_save_complex(fout, "rx_fdm_frame_bb_log_c", (COMP*)rx_fdm_frame_bb_log, 1, M*NSYMROWPILOT*FRAMES, M*NSYMROWPILOT*FRAMES); octave_save_complex(fout, "rx_baseband_log_c", (COMP*)coh->rx_baseband_log, COHPSK_NC*ND, coh->rx_baseband_log_col_index, coh->rx_baseband_log_col_sz); octave_save_complex(fout, "rx_filt_log_c", (COMP*)coh->rx_filt_log, COHPSK_NC*ND, coh->rx_filt_log_col_index, coh->rx_filt_log_col_sz); octave_save_complex(fout, "ch_symb_log_c", (COMP*)coh->ch_symb_log, coh->ch_symb_log_r, COHPSK_NC*ND, COHPSK_NC*ND); octave_save_float(fout, "rx_timing_log_c", (float*)coh->rx_timing_log, 1, coh->rx_timing_log_index, coh->rx_timing_log_index); octave_save_complex(fout, "ct_symb_ff_log_c", (COMP*)ct_symb_ff_log, NSYMROWPILOT*FRAMES, COHPSK_NC*ND, COHPSK_NC*ND); octave_save_float(fout, "rx_amp_log_c", (float*)rx_amp_log, log_data_r, COHPSK_NC*ND, COHPSK_NC*ND); octave_save_float(fout, "rx_phi_log_c", (float*)rx_phi_log, log_data_r, COHPSK_NC*ND, COHPSK_NC*ND); octave_save_complex(fout, "rx_symb_log_c", (COMP*)rx_symb_log, log_data_r, COHPSK_NC*ND, COHPSK_NC*ND); octave_save_int(fout, "rx_bits_log_c", rx_bits_log, 1, COHPSK_BITS_PER_FRAME*log_bits); octave_save_float(fout, "f_est_log_c", &f_est_log[1], 1, f_est_samples-1, f_est_samples-1); octave_save_float(fout, "sig_rms_log_c", sig_rms_log, 1, f_est_samples, f_est_samples-1); octave_save_float(fout, "noise_rms_log_c", noise_rms_log, 1, f_est_samples, f_est_samples); #ifdef XX #endif fclose(fout); cohpsk_destroy(coh); return 0; } codec2-1.0.1/unittest/tcontphase.c000066400000000000000000000104641412132000500170340ustar00rootroot00000000000000/*---------------------------------------------------------------------------*\ FILE........: tcontphase.c AUTHOR......: David Rowe DATE CREATED: 11/9/09 Test program for developing continuous phase track synthesis algorithm. However while developing this it was discovered that synthesis_mixed() worked just as well. \*---------------------------------------------------------------------------*/ /* Copyright (C) 2009 David Rowe All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 2.1, as published by the Free Software Foundation. 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 Lesser General Public License along with this program; if not, see . */ #define N 80 /* frame size */ #define F 160 /* frames to synthesis */ #define P 10 /* LPC order */ #include #include #include #include #include "sine.h" #include "dump.h" #include "synth.h" #include "phase.h" int frames; float ak[] = { 1.000000, -1.455836, 1.361841, -0.879267, 0.915985, -1.002202, 0.944103, -0.743094, 1.053356, -0.817491, 0.431222 }; /*---------------------------------------------------------------------------*\ switch_present() Searches the command line arguments for a "switch". If the switch is found, returns the command line argument where it ws found, else returns NULL. \*---------------------------------------------------------------------------*/ int switch_present(sw,argc,argv) char sw[]; /* switch in string form */ int argc; /* number of command line arguments */ char *argv[]; /* array of command line arguments in string form */ { int i; /* loop variable */ for(i=1; i. */ /* BER of test */ #define TESTBER 0.01 /* Frame count */ #define FRCNT 1500 /* Random bits leading frame */ #define LRCNT 44 #include #include #include #include #include #include /* The main loop of the test driver */ int main(int argc,char *argv[]){ uint8_t * bit_buffer; uint8_t c2_buffer[10]; struct freedv_vhf_deframer * fvd; int i,p,k; int bitbufferlen; int fsize; int ftype; int first_tol; if(argc<2){ fprintf(stderr,"Usage: %s [A|B]\n",argv[0]); exit(1); } if(strcmp(argv[1],"A")==0){ ftype = FREEDV_VHF_FRAME_A; first_tol = 2; }else if(strcmp(argv[1],"B")==0){ ftype = FREEDV_HF_FRAME_B; first_tol = 5; }else{ fprintf(stderr,"Usage: %s [A|B]\n",argv[0]); exit(1); } srand(1); golay23_init(); /* Set up the deframer */ fvd = fvhff_create_deframer(ftype,1); fsize = fvhff_get_frame_size(fvd); bitbufferlen = (LRCNT+fsize*FRCNT); /* Allocate bit buffer */ bit_buffer = (uint8_t *) malloc(sizeof(uint8_t)*bitbufferlen); p = 0; /* Fill out front of buffer */ for(i=0; i>8 )&0xFF; c2_buffer[0] = (k>>16)&0x7F; /* Frame the bits */ fvhff_frame_bits(ftype, &bit_buffer[p+(i*fsize)], c2_buffer,NULL,NULL); } /* Flip bits */ for(i=0; i>11; printf("%d,\t",p); total_extract++; if(first_extract==0) first_extract=p; } } printf("\n"); float measured_ber = (float)err_count/(float)(23*total_extract); printf("First extracted frame %d\n",first_extract); printf("Extracted %d frames of %d, %f hit rate\n",total_extract,FRCNT,((float)total_extract/(float)FRCNT)); printf("Bit error rate %f measured from golay code\n",measured_ber); printf("Bit error rate %f measured by deframer\n",fvd->ber_est); printf("Bit error rate %f measured by deframer\n",(float)fvd->total_uw_err/(float)fvd->total_uw_bits); /* Check test condition */ if(first_extract #include #include #include #include "ofdm_internal.h" int main(int argc, char *argv[]) { FILE *fin = fopen(argv[1],"rb"); assert(fin != NULL); size_t nsym = atoi(argv[2]); assert(nsym >= 0); complex float rx_sym[nsym]; size_t nread = fread(rx_sym, sizeof(complex float), nsym, fin); assert(nread == nsym); fclose(fin); float EsNodB = ofdm_esno_est_calc(rx_sym, nsym); printf("%f\n",EsNodB); return 0; } codec2-1.0.1/unittest/test_700c_eq.sh000077500000000000000000000007171412132000500172540ustar00rootroot00000000000000#!/bin/bash # test_700c_eq.sh # make sure 700C EQ is reducing VQ distortion results=$(mktemp) c2enc 700C ../raw/kristoff.raw /dev/null --var 2> $results var=$(cat $results | sed -n "s/.*var: \([0-9..]*\) .*/\1/p") c2enc 700C ../raw/kristoff.raw /dev/null --var --eq 2> $results var_eq=$(cat $results | sed -n "s/.*var: \([0-9..]*\) .*/\1/p") printf "var: %5.2f var_eq: %5.2f\n" $var $var_eq python -c "import sys; sys.exit(0) if $var_eq<=$var else sys.exit(1)" codec2-1.0.1/unittest/test_phi0.c000066400000000000000000000031741412132000500165630ustar00rootroot00000000000000/* FILE...: test_phi0.c AUTHOR.: Matthew C. Valenti, Rohit Iyer Seshadri, David Rowe, Don Reid CREATED: Sep 2018 Compare new generated phi0 function to what was originally in mpdecode_core.c */ #include #include #include #include "phi0.h" /* Original Phi function */ static float phi0_orig( float x ) { float z; if (x>10) return( 0 ); else if (x< 9.08e-5 ) return( 10 ); else if (x > 9) return( 1.6881e-4 ); /* return( 1.4970e-004 ); */ else if (x > 8) return( 4.5887e-4 ); /* return( 4.0694e-004 ); */ else if (x > 7) return( 1.2473e-3 ); /* return( 1.1062e-003 ); */ else if (x > 6) return( 3.3906e-3 ); /* return( 3.0069e-003 ); */ else if (x > 5) return( 9.2168e-3 ); /* return( 8.1736e-003 ); */ else { z = (float) exp(x); return( (float) log( (z+1)/(z-1) ) ); } } //////////////////////////////////////////////////// // Main int main(void) { float xf; float error; int errsum = 0; int errsum2 = 0; int errcnt = 0; for (xf=10.5f; xf>5e-5f; xf = xf * 0.9) { float orig = phi0_orig(xf); float new = phi0(xf); error = new - orig; printf("%10.4f: %10.6f - %10.6f = %10.6f", xf, new, orig, error); if ((error >= 0.001) && (error >= (orig * 0.1))) printf(" ****"); printf("\n"); errsum += error; errsum2 += error * error; errcnt ++; } printf("Net error %f\n", (double)errsum); printf("avg error %f\n", (double)errsum/errcnt); printf("rms error %f\n", (double)sqrt(errsum2/errcnt)); return(0); } /* vi:set ts=4 et sts=4: */ codec2-1.0.1/unittest/tfdmdv.c000066400000000000000000000267051412132000500161550ustar00rootroot00000000000000/*---------------------------------------------------------------------------*\ FILE........: tfdmdv.c AUTHOR......: David Rowe DATE CREATED: April 16 2012 Tests for the C version of the FDMDV modem. This program outputs a file of Octave vectors that are loaded and automatically tested against the Octave version of the modem by the Octave script tfmddv.m \*---------------------------------------------------------------------------*/ /* Copyright (C) 2012 David Rowe All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 2.1, as published by the Free Software Foundation. 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 Lesser General Public License along with this program; if not, see . */ #include #include #include #include #include #include "fdmdv_internal.h" #include "codec2_fdmdv.h" #include "octave.h" #define FRAMES 35 #define CHANNEL_BUF_SIZE (10*M_FAC) extern float pilot_coeff[]; int main(int argc, char *argv[]) { struct FDMDV *fdmdv; int tx_bits[FDMDV_BITS_PER_FRAME]; COMP tx_symbols[FDMDV_NC+1]; COMP tx_fdm[M_FAC]; float channel[CHANNEL_BUF_SIZE]; int channel_count; COMP rx_fdm[M_FAC+M_FAC/P]; float foff_coarse; int nin, next_nin; COMP rx_fdm_fcorr[M_FAC+M_FAC/P]; COMP rx_fdm_filter[M_FAC+M_FAC/P]; COMP rx_filt[NC+1][P+1]; float rx_timing; float env[NT*P]; COMP rx_symbols[FDMDV_NC+1]; int rx_bits[FDMDV_BITS_PER_FRAME]; float foff_fine; int sync_bit, reliable_sync_bit; int tx_bits_log[FDMDV_BITS_PER_FRAME*FRAMES]; COMP tx_symbols_log[(FDMDV_NC+1)*FRAMES]; COMP tx_fdm_log[M_FAC*FRAMES]; COMP pilot_baseband1_log[NPILOTBASEBAND*FRAMES]; COMP pilot_baseband2_log[NPILOTBASEBAND*FRAMES]; COMP pilot_lpf1_log[NPILOTLPF*FRAMES]; COMP pilot_lpf2_log[NPILOTLPF*FRAMES]; COMP S1_log[MPILOTFFT*FRAMES]; COMP S2_log[MPILOTFFT*FRAMES]; float foff_coarse_log[FRAMES]; float foff_log[FRAMES]; COMP rx_fdm_filter_log[(M_FAC+M_FAC/P)*FRAMES]; int rx_fdm_filter_log_index; COMP rx_filt_log[NC+1][(P+1)*FRAMES]; int rx_filt_log_col_index; float env_log[NT*P*FRAMES]; float rx_timing_log[FRAMES]; COMP rx_symbols_log[FDMDV_NC+1][FRAMES]; COMP phase_difference_log[FDMDV_NC+1][FRAMES]; float sig_est_log[FDMDV_NC+1][FRAMES]; float noise_est_log[FDMDV_NC+1][FRAMES]; int rx_bits_log[FDMDV_BITS_PER_FRAME*FRAMES]; float foff_fine_log[FRAMES]; int sync_bit_log[FRAMES]; int sync_log[FRAMES]; int nin_log[FRAMES]; FILE *fout; int f,c,i,j; fdmdv = fdmdv_create(FDMDV_NC); next_nin = M_FAC; channel_count = 0; rx_fdm_filter_log_index = 0; rx_filt_log_col_index = 0; printf("sizeof FDMDV states: %zd bytes\n", sizeof(struct FDMDV)); for(f=0; fprev_tx_symbols, tx_bits, &fdmdv->tx_pilot_bit, 0); memcpy(fdmdv->prev_tx_symbols, tx_symbols, sizeof(COMP)*(FDMDV_NC+1)); tx_filter_and_upconvert(tx_fdm, FDMDV_NC , tx_symbols, fdmdv->tx_filter_memory, fdmdv->phase_tx, fdmdv->freq, &fdmdv->fbb_phase_tx, fdmdv->fbb_rect); /* --------------------------------------------------------*\ Channel \*---------------------------------------------------------*/ nin = next_nin; // nin = M_FAC; // when debugging good idea to uncomment this to "open loop" /* add M_FAC tx samples to end of buffer */ assert((channel_count + M_FAC) < CHANNEL_BUF_SIZE); for(i=0; ifbb_phase_rx, nin); /* freq offset estimation and correction */ // fdmdv->sync = 0; // when debugging good idea to uncomment this to "open loop" foff_coarse = rx_est_freq_offset(fdmdv, rx_fdm, nin, !fdmdv->sync); if (fdmdv->sync == 0) fdmdv->foff = foff_coarse; fdmdv_freq_shift(rx_fdm_fcorr, rx_fdm, -fdmdv->foff, &fdmdv->foff_phase_rect, nin); /* baseband processing */ rxdec_filter(rx_fdm_filter, rx_fdm_fcorr, fdmdv->rxdec_lpf_mem, nin); down_convert_and_rx_filter(rx_filt, fdmdv->Nc, rx_fdm_filter, fdmdv->rx_fdm_mem, fdmdv->phase_rx, fdmdv->freq, fdmdv->freq_pol, nin, M_FAC/Q); rx_timing = rx_est_timing(rx_symbols, FDMDV_NC, rx_filt, fdmdv->rx_filter_mem_timing, env, nin, M_FAC); foff_fine = qpsk_to_bits(rx_bits, &sync_bit, FDMDV_NC, fdmdv->phase_difference, fdmdv->prev_rx_symbols, rx_symbols, 0); //for(i=0; iprev_rx_symbols[i].real, fdmdv->prev_rx_symbols[i].imag, fdmdv->phase_difference[i].real, fdmdv->phase_difference[i].imag); //if (f==1) // exit(0); snr_update(fdmdv->sig_est, fdmdv->noise_est, FDMDV_NC, fdmdv->phase_difference); memcpy(fdmdv->prev_rx_symbols, rx_symbols, sizeof(COMP)*(FDMDV_NC+1)); next_nin = M_FAC; if (rx_timing > 2*M_FAC/P) next_nin += M_FAC/P; if (rx_timing < 0) next_nin -= M_FAC/P; fdmdv->sync = freq_state(&reliable_sync_bit, sync_bit, &fdmdv->fest_state, &fdmdv->timer, fdmdv->sync_mem); fdmdv->foff -= TRACK_COEFF*foff_fine; /* --------------------------------------------------------*\ Log each vector \*---------------------------------------------------------*/ memcpy(&tx_bits_log[FDMDV_BITS_PER_FRAME*f], tx_bits, sizeof(int)*FDMDV_BITS_PER_FRAME); memcpy(&tx_symbols_log[(FDMDV_NC+1)*f], tx_symbols, sizeof(COMP)*(FDMDV_NC+1)); memcpy(&tx_fdm_log[M_FAC*f], tx_fdm, sizeof(COMP)*M_FAC); memcpy(&pilot_baseband1_log[f*NPILOTBASEBAND], fdmdv->pilot_baseband1, sizeof(COMP)*NPILOTBASEBAND); memcpy(&pilot_baseband2_log[f*NPILOTBASEBAND], fdmdv->pilot_baseband2, sizeof(COMP)*NPILOTBASEBAND); memcpy(&pilot_lpf1_log[f*NPILOTLPF], fdmdv->pilot_lpf1, sizeof(COMP)*NPILOTLPF); memcpy(&pilot_lpf2_log[f*NPILOTLPF], fdmdv->pilot_lpf2, sizeof(COMP)*NPILOTLPF); memcpy(&S1_log[f*MPILOTFFT], fdmdv->S1, sizeof(COMP)*MPILOTFFT); memcpy(&S2_log[f*MPILOTFFT], fdmdv->S2, sizeof(COMP)*MPILOTFFT); foff_coarse_log[f] = foff_coarse; foff_log[f] = fdmdv->foff; /* rx filtering */ for(i=0; iphase_difference[c]; } /* qpsk_to_bits() */ memcpy(&rx_bits_log[FDMDV_BITS_PER_FRAME*f], rx_bits, sizeof(int)*FDMDV_BITS_PER_FRAME); for(c=0; csig_est[c]; noise_est_log[c][f] = fdmdv->noise_est[c]; } foff_fine_log[f] = foff_fine; sync_bit_log[f] = sync_bit; sync_log[f] = fdmdv->sync; } /*---------------------------------------------------------*\ Dump logs to Octave file for evaluation by tfdmdv.m Octave script \*---------------------------------------------------------*/ fout = fopen("tfdmdv_out.txt","wt"); assert(fout != NULL); fprintf(fout, "# Created by tfdmdv.c\n"); octave_save_int(fout, "tx_bits_log_c", tx_bits_log, 1, FDMDV_BITS_PER_FRAME*FRAMES); octave_save_complex(fout, "tx_symbols_log_c", tx_symbols_log, 1, (FDMDV_NC+1)*FRAMES, (FDMDV_NC+1)*FRAMES); octave_save_complex(fout, "tx_fdm_log_c", (COMP*)tx_fdm_log, 1, M_FAC*FRAMES, M_FAC*FRAMES); octave_save_complex(fout, "pilot_lut_c", (COMP*)fdmdv->pilot_lut, 1, NPILOT_LUT, NPILOT_LUT); octave_save_complex(fout, "pilot_baseband1_log_c", pilot_baseband1_log, 1, NPILOTBASEBAND*FRAMES, NPILOTBASEBAND*FRAMES); octave_save_complex(fout, "pilot_baseband2_log_c", pilot_baseband2_log, 1, NPILOTBASEBAND*FRAMES, NPILOTBASEBAND*FRAMES); octave_save_float(fout, "pilot_coeff_c", pilot_coeff, 1, NPILOTCOEFF, NPILOTCOEFF); octave_save_complex(fout, "pilot_lpf1_log_c", pilot_lpf1_log, 1, NPILOTLPF*FRAMES, NPILOTLPF*FRAMES); octave_save_complex(fout, "pilot_lpf2_log_c", pilot_lpf2_log, 1, NPILOTLPF*FRAMES, NPILOTLPF*FRAMES); octave_save_complex(fout, "S1_log_c", S1_log, 1, MPILOTFFT*FRAMES, MPILOTFFT*FRAMES); octave_save_complex(fout, "S2_log_c", S2_log, 1, MPILOTFFT*FRAMES, MPILOTFFT*FRAMES); octave_save_float(fout, "foff_log_c", foff_log, 1, FRAMES, FRAMES); octave_save_float(fout, "foff_coarse_log_c", foff_coarse_log, 1, FRAMES, FRAMES); octave_save_complex(fout, "rx_fdm_filter_log_c", (COMP*)rx_fdm_filter_log, 1, rx_fdm_filter_log_index, rx_fdm_filter_log_index); octave_save_complex(fout, "rx_filt_log_c", (COMP*)rx_filt_log, (FDMDV_NC+1), rx_filt_log_col_index, (P+1)*FRAMES); octave_save_float(fout, "env_log_c", env_log, 1, NT*P*FRAMES, NT*P*FRAMES); octave_save_float(fout, "rx_timing_log_c", rx_timing_log, 1, FRAMES, FRAMES); octave_save_complex(fout, "rx_symbols_log_c", (COMP*)rx_symbols_log, (FDMDV_NC+1), FRAMES, FRAMES); octave_save_complex(fout, "phase_difference_log_c", (COMP*)phase_difference_log, (FDMDV_NC+1), FRAMES, FRAMES); octave_save_float(fout, "sig_est_log_c", (float*)sig_est_log, (FDMDV_NC+1), FRAMES, FRAMES); octave_save_float(fout, "noise_est_log_c", (float*)noise_est_log, (FDMDV_NC+1), FRAMES, FRAMES); octave_save_int(fout, "rx_bits_log_c", rx_bits_log, 1, FDMDV_BITS_PER_FRAME*FRAMES); octave_save_float(fout, "foff_fine_log_c", foff_fine_log, 1, FRAMES, FRAMES); octave_save_int(fout, "sync_bit_log_c", sync_bit_log, 1, FRAMES); octave_save_int(fout, "sync_log_c", sync_log, 1, FRAMES); octave_save_int(fout, "nin_log_c", nin_log, 1, FRAMES); fclose(fout); fdmdv_destroy(fdmdv); return 0; } codec2-1.0.1/unittest/tfifo.c000066400000000000000000000040651412132000500157730ustar00rootroot00000000000000/* tfifo.c David Rowe Nov 19 2012 Tests FIFOs, in particular thread safety. */ #include #include #include #include "codec2_fifo.h" #define FIFO_SZ 1024 #define WRITE_SZ 10 #define READ_SZ 8 #define N_MAX 100 #define LOOPS 1000000 int run_thread = 1; struct FIFO *f; void writer(void); void *writer_thread(void *data); pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER; #define USE_THREADS //#define USE_MUTEX int main() { pthread_t awriter_thread; int i,j; short read_buf[READ_SZ]; int n_out = 0; int success; f = codec2_fifo_create(FIFO_SZ); #ifdef USE_THREADS pthread_create(&awriter_thread, NULL, writer_thread, NULL); #endif for(i=0; i WRITE_SZ) { for(i=0; i. */ //#define MODEMPROBE_ENABLE #include "modem_probe.h" #include /* Note: This is a dirty hack to force fsk.c to compile with modem probing enabled */ #include "fmfsk.c" #define ST_BITS 10000 #define ST_FS 48000 #define ST_RS 2400 #define ST_EBNO 8 #define TEST_SELF_FULL 1 /* No-arg self test */ #define TEST_MOD 2 /* Test modulator using in and out file */ #define TEST_DEMOD 3 /* Test demodulator using in and out file */ int main(int argc,char *argv[]){ struct FMFSK *fmfsk; int Fs,Rs; FILE *fin,*fout; uint8_t *bitbuf = NULL; float *modbuf = NULL; uint8_t *bitbufp; float *modbufp; size_t bitbufsize = 0; size_t modbufsize = 0; int test_type; int i; fin = NULL; fout = NULL; /* Set up full self-test */ if(argc == 1){ test_type = TEST_SELF_FULL; modem_probe_init("fmfsk","fmfsk_tfmfsk_log.txt"); Fs = ST_FS; Rs = ST_RS; } else if (argc<7){ /* Not running any test */ printf("Usage: %s [(M|D) SampleRate BitRate InputFile OutputFile OctaveLogFile]\n",argv[0]); exit(1); } else { /* Running stim-drivin test */ /* Mod test */ if(strcmp(argv[1],"M")==0 || strcmp(argv[1],"m")==0) { test_type = TEST_MOD; /* Demod test */ } else if(strcmp(argv[1],"D")==0 || strcmp(argv[1],"d")==0) { test_type = TEST_DEMOD; } else { printf("Must specify mod or demod test with M or D\n"); exit(1); } /* Extract parameters */ Fs = atoi(argv[2]); Rs = atoi(argv[3]); /* Open files */ fin = fopen(argv[4],"r"); fout = fopen(argv[5],"w"); if(fin == NULL || fout == NULL){ printf("Couldn't open test vector files\n"); exit(1); } /* Init modem probing */ modem_probe_init("fmfsk",argv[6]); } srand(1); /* set up FSK */ fmfsk = fmfsk_create(Fs,Rs); /* Modulate! */ if(test_type == TEST_MOD || test_type == TEST_SELF_FULL){ /* Generate random bits for self test */ if(test_type == TEST_SELF_FULL){ bitbufsize = ST_BITS; bitbuf = (uint8_t*) malloc(sizeof(uint8_t)*ST_BITS); for(i=0; inbit,fin) == fmfsk->nbit){ i++; bitbufp+=fmfsk->nbit; /* Make sure we don't break the buffer */ if(i*fmfsk->nbit > bitbufsize){ bitbuf = realloc(bitbuf,sizeof(uint8_t)*(bitbufsize+fmfsk->nbit)); bitbufsize += fmfsk->nbit; } } } /* Allocate modulation buffer */ modbuf = (float*)malloc(sizeof(float)*(bitbufsize/fmfsk->nbit)*fmfsk->N*4); modbufsize = (bitbufsize/fmfsk->nbit)*fmfsk->N; /* Do the modulation */ modbufp = modbuf; bitbufp = bitbuf; while( bitbufp < bitbuf+bitbufsize){ fmfsk_mod(fmfsk, modbufp, bitbufp); modbufp += fmfsk->N; bitbufp += fmfsk->nbit; } /* For a mod-only test, write out the result */ if(test_type == TEST_MOD){ fwrite(modbuf,sizeof(float),modbufsize,fout); free(modbuf); } /* Free bit buffer */ free(bitbuf); } /* Add channel imp here */ /* Now test the demod */ if(test_type == TEST_DEMOD || test_type == TEST_SELF_FULL){ free(modbuf); modbuf = malloc(sizeof(float)*(fmfsk->N+fmfsk->Ts*2)); bitbuf = malloc(sizeof(uint8_t)*fmfsk->nbit); /* Demod-only test */ if(test_type == TEST_DEMOD){ //fprintf(stderr,"%d\n",(fmfsk->N+fmfsk->Ts*2)); while( fread(modbuf,sizeof(float),fmfsk_nin(fmfsk),fin) == fmfsk_nin(fmfsk) ){ fmfsk_demod(fmfsk,bitbuf,modbuf); fwrite(bitbuf,sizeof(uint8_t),fmfsk->nbit,fout); } } /* Demod after channel imp. and mod */ else{ bitbufp = bitbuf; modbufp = modbuf; while( modbufp < modbuf + modbufsize){ fmfsk_demod(fmfsk,bitbuf,modbuf); modbufp += fmfsk_nin(fmfsk); } } free(bitbuf); } modem_probe_close(); if(test_type == TEST_DEMOD || test_type == TEST_MOD){ fclose(fin); fclose(fout); } fmfsk_destroy(fmfsk); exit(0); } codec2-1.0.1/unittest/tfreedv_2400A_rawdata.c000066400000000000000000000066611412132000500206000ustar00rootroot00000000000000/*---------------------------------------------------------------------------*\ FILE........: tfreedv_2400A_rawdata.c AUTHOR......: Jeroen Vreeken DATE CREATED: 24 May 2020 FreeDV 2400A rawdata test. \*---------------------------------------------------------------------------*/ /* Copyright (C) 2020 Jeroen Vreeken This 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. This 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 this program; if not, see . */ #include #include "freedv_api.h" #include "assert.h" int main(int argc, char **argv) { struct freedv *f; int i; printf("freedv_api tests for mode 2400A\n"); printf("freedv_open(FREEDV_MODE_2400A) "); f = freedv_open(FREEDV_MODE_2400A); assert(f != NULL); printf("Passed\n"); printf("freedv_get_mode() "); int mode = freedv_get_mode(f); assert(mode == FREEDV_MODE_2400A); printf("Passed\n"); printf("freedv_get_n_max_modem_samples() "); int max_samples = freedv_get_n_max_modem_samples(f); assert(max_samples == 2040); printf("%d Passed\n", max_samples); printf("freedv_get_n_nom_modem_samples() "); int nom_samples = freedv_get_n_nom_modem_samples(f); assert(nom_samples == 2000); printf("%d Passed\n", nom_samples); printf("freedv_get_n_speech_samples() "); int speech_samples = freedv_get_n_speech_samples(f); assert(speech_samples == 320); printf("%d Passed\n", speech_samples); printf("freedv_get_n_bits_per_codec_frame() "); int codec_bits = freedv_get_bits_per_codec_frame(f); assert(codec_bits == 52); printf("%d Passed\n", codec_bits); printf("freedv_get_n_bits_per_modem_frame() "); int frame_bits = freedv_get_bits_per_modem_frame(f); assert(frame_bits == 52); printf("%d Passed\n", frame_bits); printf("freedv_rawdatatx()/freedv_rawdatarx() "); int frames = 0; int fails = 0; { short mod[nom_samples * 10]; /* Note: A codec frame is only 6.5 bytes! so the seventh byte will be half empty! */ unsigned char payload[7] = { 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x70 }; for (i = 0; i < 10; i ++) { freedv_rawdatatx(f, mod + i * nom_samples, payload); } int nin = 0; for (i = 0; i < nom_samples * 9; i += nin) { nin = freedv_nin(f); unsigned char payload_rx[7] = {0}; int r = freedv_rawdatarx(f, payload_rx, mod + i); if (r) { int b; for (b = 0; b < 7; b++) { if (payload[b] != payload_rx[b]) { printf("Received codec bits 0x%02x do not match expected 0x%02x\n", payload_rx[b], payload[b]); fails++; } } frames++; } } } if (!frames) { printf("Did not decode any frames successfully\n"); goto fail; } printf("Tests passed\n"); return 0; fail: printf("Test failed\n"); return 1; } codec2-1.0.1/unittest/tfreedv_2400B_rawdata.c000066400000000000000000000066611412132000500206010ustar00rootroot00000000000000/*---------------------------------------------------------------------------*\ FILE........: tfreedv_2400B_rawdata.c AUTHOR......: Jeroen Vreeken DATE CREATED: 24 May 2020 FreeDV 2400B rawdata test. \*---------------------------------------------------------------------------*/ /* Copyright (C) 2020 Jeroen Vreeken This 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. This 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 this program; if not, see . */ #include #include "freedv_api.h" #include "assert.h" int main(int argc, char **argv) { struct freedv *f; int i; printf("freedv_api tests for mode 2400B\n"); printf("freedv_open(FREEDV_MODE_2400B) "); f = freedv_open(FREEDV_MODE_2400B); assert(f != NULL); printf("Passed\n"); printf("freedv_get_mode() "); int mode = freedv_get_mode(f); assert(mode == FREEDV_MODE_2400B); printf("Passed\n"); printf("freedv_get_n_max_modem_samples() "); int max_samples = freedv_get_n_max_modem_samples(f); assert(max_samples == 1930); printf("%d Passed\n", max_samples); printf("freedv_get_n_nom_modem_samples() "); int nom_samples = freedv_get_n_nom_modem_samples(f); assert(nom_samples == 1920); printf("%d Passed\n", nom_samples); printf("freedv_get_n_speech_samples() "); int speech_samples = freedv_get_n_speech_samples(f); assert(speech_samples == 320); printf("%d Passed\n", speech_samples); printf("freedv_get_n_bits_per_codec_frame() "); int codec_bits = freedv_get_bits_per_codec_frame(f); assert(codec_bits == 52); printf("%d Passed\n", codec_bits); printf("freedv_get_n_bits_per_modem_frame() "); int frame_bits = freedv_get_bits_per_modem_frame(f); assert(frame_bits == 52); printf("%d Passed\n", frame_bits); printf("freedv_rawdatatx()/freedv_rawdatarx() "); int frames = 0; int fails = 0; { short mod[nom_samples * 10]; /* Note: A codec frame is only 6.5 bytes! so the seventh byte will be half empty! */ unsigned char payload[7] = { 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x70 }; for (i = 0; i < 10; i ++) { freedv_rawdatatx(f, mod + i * nom_samples, payload); } int nin = 0; for (i = 0; i < nom_samples * 9; i += nin) { nin = freedv_nin(f); unsigned char payload_rx[7] = {0}; int r = freedv_rawdatarx(f, payload_rx, mod + i); if (r) { int b; for (b = 0; b < 7; b++) { if (payload[b] != payload_rx[b]) { printf("Received codec bits 0x%02x do not match expected 0x%02x\n", payload_rx[b], payload[b]); fails++; } } frames++; } } } if (!frames) { printf("Did not decode any frames successfully\n"); goto fail; } printf("Tests passed\n"); return 0; fail: printf("Test failed\n"); return 1; } codec2-1.0.1/unittest/tfreedv_800XA_rawdata.c000066400000000000000000000106301412132000500206410ustar00rootroot00000000000000/*---------------------------------------------------------------------------*\ FILE........: tfreedv_800XA_rawdata.c AUTHOR......: Jeroen Vreeken DATE CREATED: 24 May 2020 FreeDV 800XA rawdata test. \*---------------------------------------------------------------------------*/ /* Copyright (C) 2020 Jeroen Vreeken This 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. This 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 this program; if not, see . */ #include #include "freedv_api.h" #include "assert.h" int main(int argc, char **argv) { struct freedv *f; int i; printf("freedv_api tests for mode 800XA\n"); printf("freedv_open(FREEDV_MODE_800XA) "); f = freedv_open(FREEDV_MODE_800XA); assert(f != NULL); printf("Passed\n"); printf("freedv_get_mode() "); int mode = freedv_get_mode(f); assert(mode == FREEDV_MODE_800XA); printf("Passed\n"); printf("freedv_get_n_max_modem_samples() "); int max_samples = freedv_get_n_max_modem_samples(f); assert(max_samples == 660); printf("%d Passed\n", max_samples); printf("freedv_get_n_nom_modem_samples() "); int nom_samples = freedv_get_n_nom_modem_samples(f); assert(nom_samples == 640); printf("%d Passed\n", nom_samples); printf("freedv_get_n_speech_samples() "); int speech_samples = freedv_get_n_speech_samples(f); assert(speech_samples == 640); printf("%d Passed\n", speech_samples); printf("freedv_get_n_bits_per_codec_frame() "); int codec_bits = freedv_get_bits_per_codec_frame(f); assert(codec_bits == 28); printf("%d Passed\n", codec_bits); printf("freedv_get_n_bits_per_modem_frame() "); int frame_bits = freedv_get_bits_per_modem_frame(f); assert(frame_bits == 56); printf("%d Passed\n", frame_bits); /* Note: A codec frame is only 3.5 bytes! so the fourth and eight bytes will be half empty! */ unsigned char payload[8] = { 0x12, 0x34, 0x56, 0x70, 0x89, 0xab, 0xcd, 0xe0 }; unsigned char payload_tx[7] = { 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde }; printf("freedv_codec_frames_from_rawdata() "); unsigned char codec_frames[8] = { 0 }; freedv_codec_frames_from_rawdata(f, codec_frames, payload_tx); int fails = 0; for (i = 0; i < 8; i++) { if (codec_frames[i] != payload[i]) { printf("byte %d: 0x%02x does not match expected 0x%02x\n", i, codec_frames[i], payload[i]); fails++; } } if (fails) goto fail; printf("Passed\n"); printf("freedv_rawdata_from_codec_frames() "); unsigned char rawdata[7] = { 0 }; freedv_rawdata_from_codec_frames(f, rawdata, payload); fails = 0; for (i = 0; i < 7; i++) { if (rawdata[i] != payload_tx[i]) { printf("byte %d: 0x%02x does not match expected 0x%02x\n", i, rawdata[i], payload_tx[i]); fails++; } } if (fails) goto fail; printf("Passed\n"); printf("freedv_rawdatatx()/freedv_rawdatarx() "); int frames = 0; fails = 0; { short mod[nom_samples * 10]; for (i = 0; i < 10; i ++) { freedv_rawdatatx(f, mod + i * nom_samples, payload_tx); } int nin = 0; for (i = 0; i < nom_samples * 9; i += nin) { nin = freedv_nin(f); unsigned char payload_rx[8] = {0}; int r = freedv_rawdatarx(f, payload_rx, mod + i); if (r == 7) { int b; for (b = 0; b < 7; b++) { if (payload_tx[b] != payload_rx[b]) { printf("Received codec bits 0x%02x do not match expected 0x%02x\n", payload_rx[b], payload_tx[b]); fails++; } } frames++; } } } if (!frames) { printf("Did not decode any frames successfully\n"); goto fail; } if (fails) goto fail; printf("Passed\n"); printf("Tests passed\n"); return 0; fail: printf("Test failed\n"); return 1; } codec2-1.0.1/unittest/tfreedv_data_channel.c000066400000000000000000000225151412132000500210040ustar00rootroot00000000000000/*---------------------------------------------------------------------------*\ FILE........: tfreedv_data_channel AUTHOR......: Jeroen Vreeken DATE CREATED: May 3 2016 Tests for the data channel code. Data channel frame behaviour is tested with test vectors. \*---------------------------------------------------------------------------*/ /* Copyright (C) 2016 Jeroen Vreeken All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 2.1, as published by the Free Software Foundation. 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 Lesser General Public License along with this program; if not, see . */ #include "freedv_data_channel.h" #include #include unsigned char test_header[] = { 0x11, 0x22, 0x33, 0x44, 0x55, 0x66 }; unsigned char bcast_header[] = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff }; struct testvec { char *testname; unsigned char *data; size_t data_size; size_t frame_size; unsigned char *frame_data; size_t frame_data_size; unsigned char *flags; } testvec[] = { { "Regular packet, does not match header and no broadcast", (unsigned char[]){ 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12 }, 0x12, 8, (unsigned char[]){ 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x47, 0x6e }, 0x14, (unsigned char[]){ 0x00, 0x00, 0x04 }, }, { "Header", NULL, 0, 8, (unsigned char[]){ 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x5a, 0x60 }, 0x08, (unsigned char[]){ 0x08 }, }, { "Broadcast packet", (unsigned char[]){ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11 }, 0x19, 8, (unsigned char[]){ 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x3c, 0xbe }, 0x0f, (unsigned char[]){ 0xc0, 0x07 }, }, { "Broadcast packet, header does not match", (unsigned char[]){ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xaa, 0x22, 0xbb, 0xcc, 0xdd, 0xee, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11 }, 0x19, 8, (unsigned char[]){ 0xaa, 0x22, 0xbb, 0xcc, 0xdd, 0xee, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x1a, 0x68 }, 0x15, (unsigned char[]){ 0x40, 0x00, 0x05 }, }, { "Header 6 bytes", NULL, 0, 6, (unsigned char[]){ 0x11, 0x22, 0x33, 0x44, 0x55, 0x66 }, 0x06, (unsigned char[]){ 0x2f }, }, { "Broadcast packet (6 byte frames)", (unsigned char[]){ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11 }, 0x19, 6, (unsigned char[]){ 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x3c, 0xbe }, 0x0f, (unsigned char[]){ 0xc0, 0x00, 0x03 }, }, { "Broadcast packet, header does not match (6 byte frames)", (unsigned char[]){ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xaa, 0x22, 0xbb, 0xcc, 0xdd, 0xee, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11 }, 0x19, 6, (unsigned char[]){ 0xaa, 0x22, 0xbb, 0xcc, 0xdd, 0xee, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x1a, 0x68 }, 0x15, (unsigned char[]){ 0x40, 0x00, 0x00, 0x03 }, }, }; static int ret = 0; static int vector = 0; static size_t frame_data_pos = 0; static int rx_done = 0; void *tx_cb_arg = (void*)0xaa55; void *rx_cb_arg = (void*)0xbb44; void tfreedv_data_callback_tx(void *arg, unsigned char *packet, size_t *size) { if (tx_cb_arg != arg) { ret++; printf("FAIL: %s called with wrong argument value\n", __func__); } printf("--------------------------------------\n"); printf("TX callback called for test %zd bytes data for test %d:\n'%s'\n", testvec[vector].data_size, vector, testvec[vector].testname); memcpy(packet, testvec[vector].data, testvec[vector].data_size); *size = testvec[vector].data_size; return; } void tfreedv_data_callback_rx(void *arg, unsigned char *packet, size_t size) { if (rx_cb_arg != arg) { ret++; printf("FAIL: %s called with wrong argument value\n", __func__); } printf("RX callback called with %zd bytes\n", size); if (testvec[vector].data_size) { size_t data_size = testvec[vector].data_size; if (data_size != size) { printf("FAIL: Received size does not match test vector: %zd != %zd\n", size, data_size); ret++; } else { size_t i; for (i = 0; i < data_size; i++) { if (packet[i] != testvec[vector].data[i]) { printf("FAIL: byte %zd does not match 0x%02x != 0x%02x\n", i, packet[i], testvec[vector].data[i]); ret++; } } } } else { if (size != 12) { printf("FAIL: Received header is not 12 bytes: %zd\n", size); ret++; } else { if (memcmp(packet, bcast_header, 6)) { printf("FAIL: Header is not a broadcast!\n"); ret++; } if (memcmp(packet+6, test_header, 6)) { printf("FAIL: Header does not match!\n"); ret++; } } } rx_done = 1; } int main(int argc, char **argv) { struct freedv_data_channel *fdc; fdc = freedv_data_channel_create(); freedv_data_set_header(fdc, test_header); freedv_data_set_cb_tx(fdc, tfreedv_data_callback_tx, tx_cb_arg); freedv_data_set_cb_rx(fdc, tfreedv_data_callback_rx, rx_cb_arg); while (vector < sizeof(testvec)/sizeof(struct testvec)) { size_t frame_size = testvec[vector].frame_size; unsigned char frame[frame_size]; int from, bcast, crc, end; int i; size_t check_size; unsigned char flags; int nr_frames; freedv_data_channel_tx_frame(fdc, frame, frame_size, &from, &bcast, &crc, &end); check_size = frame_size; if (frame_data_pos + check_size > testvec[vector].frame_data_size) check_size = testvec[vector].frame_data_size - frame_data_pos; flags = from * 0x80 + bcast * 0x40 + crc * 0x20 + end; printf("0x%02x:", flags); for (i = 0; i < check_size; i++) { if (frame[i] != testvec[vector].frame_data[frame_data_pos + i]) { printf(" [0x%02x!=0x%02x]", frame[i], testvec[vector].frame_data[frame_data_pos + i]); ret++; } else { printf(" 0x%02x", frame[i]); } } printf("\n"); if (flags != testvec[vector].flags[frame_data_pos / frame_size]) { printf("FAIL: Flags byte does not match 0x%02x != 0x%02x\n", flags, testvec[vector].flags[frame_data_pos / frame_size]); ret++; } freedv_data_channel_rx_frame(fdc, frame, frame_size, from, bcast, crc, end); frame_data_pos += frame_size; nr_frames = freedv_data_get_n_tx_frames(fdc, frame_size); if (frame_data_pos >= testvec[vector].frame_data_size) { if (nr_frames) { printf("FAIL: nr_frames is not zero: %d\n", nr_frames); ret++; } vector++; frame_data_pos = 0; if (!rx_done) { printf("FAIL: RX callback not executed\n"); ret++; } rx_done = 0; } else { int vec_frames = (testvec[vector].frame_data_size - frame_data_pos); vec_frames /= frame_size; vec_frames++; if (nr_frames != vec_frames) { printf("FAIL: nr_frames != vec_frames: %d != %d\n", nr_frames, vec_frames); ret++; } } } freedv_data_channel_destroy(fdc); printf("--------------------------------------\n"); printf("tfreedv_data_channel test result: "); if (ret) { printf("Failed %d\n", ret); } else { printf("Passed\n"); } return ret; } codec2-1.0.1/unittest/tfsk.c000066400000000000000000000164401412132000500156330ustar00rootroot00000000000000/*---------------------------------------------------------------------------*\ FILE........: tfsk.c AUTHOR......: Brady O'Brien DATE CREATED: 20 January 2016 C test driver for fsk_mod and fsk_demod in fsk.c. Reads a file with input bits/rf and spits out modulated/demoduladed samples and a dump of internal state. To run unit test, see octave/tfsk.m \*---------------------------------------------------------------------------*/ /* Copyright (C) 2016 David Rowe All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 2.1, as published by the Free Software Foundation. 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 Lesser General Public License along with this program; if not, see . */ //#define MODEMPROBE_ENABLE #include "modem_probe.h" #include /* Note: This is a dirty hack to force fsk.c to compile with modem probing enabled */ #include "fsk.c" #define ST_BITS 10000 #define ST_FS 8000 #define ST_RS 100 #define ST_F1 1200 #define ST_Fs 400 #define ST_EBNO 8 #define ST_M 2 #define TEST_SELF_FULL 1 /* No-arg self test */ #define TEST_MOD 2 /* Test modulator using in and out file */ #define TEST_MOD_H 3 /* Test modulator using in and out file */ #define TEST_DEMOD 4 /* Test demodulator using in and out file */ #define TEST_DEMOD_H 5 /* Test demodulator using in and out file */ int main(int argc,char *argv[]){ struct FSK *fsk; int Fs,Rs,f1,fs,M, lock_nin; FILE *fin,*fout; uint8_t *bitbuf = NULL; float *modbuf = NULL; uint8_t *bitbufp; float *modbufp; size_t bitbufsize = 0; size_t modbufsize = 0; int test_type; int i; fin = NULL; fout = NULL; /* Set up full self-test */ if(argc == 1){ test_type = TEST_SELF_FULL; modem_probe_init("fsk2","fsk2_tfsk_log.txt"); Fs = ST_FS; Rs = ST_RS; f1 = ST_F1; fs = ST_Fs; M = ST_M; lock_nin = 0; } else if (argc<10){ /* Not running any test */ printf("Usage: %s [(M|D|DX) Mode TXFreq1 TXFreqSpace SampleRate SymbolRate lock_nin InputFile OutputFile OctaveLogFile]\n",argv[0]); exit(1); } else { /* Running stim-drivin test */ /* Mod test */ if(strcmp(argv[1],"MX")==0){ test_type = TEST_MOD_H; } else if(strcmp(argv[1],"M")==0 || strcmp(argv[1],"m")==0) { test_type = TEST_MOD; /* Demod test */ } else if(strcmp(argv[1],"DX")==0) { test_type = TEST_DEMOD_H; } else if(strcmp(argv[1],"D")==0 || strcmp(argv[1],"d")==0) { test_type = TEST_DEMOD; } else { printf("Must specify mod or demod test with M or D\n"); exit(1); } /* Extract parameters */ M = atoi(argv[2]); f1 = atoi(argv[3]); fs = atoi(argv[4]); Fs = atoi(argv[5]); Rs = atoi(argv[6]); lock_nin = atoi(argv[7]); /* Open files */ fin = fopen(argv[8],"r"); fout = fopen(argv[9],"w"); if(fin == NULL || fout == NULL){ printf("Couldn't open test vector files\n"); exit(1); } /* Init modem probing */ modem_probe_init("fsk",argv[10]); } srand(1); /* set up FSK */ if(test_type == TEST_DEMOD_H || test_type == TEST_MOD_H){ fsk = fsk_create_hbr(Fs,Rs,M,10,FSK_DEFAULT_NSYM,f1,fs); if(test_type == TEST_DEMOD_H) test_type = TEST_DEMOD; else test_type = TEST_MOD; }else{ fsk = fsk_create(Fs,Rs,M,f1,fs); } fsk_set_freq_est_limits(fsk, 300, 2800); fsk->lock_nin = lock_nin; /* Modulate! */ if(test_type == TEST_MOD || test_type == TEST_SELF_FULL){ /* Generate random bits for self test */ if(test_type == TEST_SELF_FULL){ bitbufsize = ST_BITS; bitbuf = (uint8_t*) malloc(sizeof(uint8_t)*ST_BITS); for(i=0; iNbits,fin) == fsk->Nbits){ i++; bitbufp+=fsk->Nbits; /* Make sure we don't break the buffer */ if(i*fsk->Nbits > bitbufsize){ bitbuf = realloc(bitbuf,sizeof(uint8_t)*(bitbufsize+fsk->Nbits)); bitbufsize += fsk->Nbits; } } } /* Allocate modulation buffer */ modbuf = (float*)malloc(sizeof(float)*(bitbufsize/fsk->Nbits)*fsk->N*4); modbufsize = (bitbufsize/fsk->Nbits)*fsk->N; /* Do the modulation */ modbufp = modbuf; bitbufp = bitbuf; while( bitbufp < bitbuf+bitbufsize){ fsk_mod(fsk, modbufp, bitbufp, fsk->Nbits); modbufp += fsk->N; bitbufp += fsk->Nbits; } /* For a mod-only test, write out the result */ if(test_type == TEST_MOD){ fwrite(modbuf,sizeof(float),modbufsize,fout); free(modbuf); } /* Free bit buffer */ free(bitbuf); } /* Now test the demod */ if(test_type == TEST_DEMOD || test_type == TEST_SELF_FULL){ free(modbuf); modbuf = malloc(sizeof(float)*(fsk->N+fsk->Ts*2)); bitbuf = malloc(sizeof(uint8_t)*fsk->Nbits); /* Demod-only test */ if(test_type == TEST_DEMOD){ while( fread(modbuf,sizeof(float),fsk_nin(fsk),fin) == fsk_nin(fsk) ){ int n = fsk_nin(fsk); COMP modbuf_comp[n]; for(i=0; iNbits,fout); } } /* Demod after channel imp. and mod */ else{ bitbufp = bitbuf; modbufp = modbuf; while( modbufp < modbuf + modbufsize){ int n = fsk_nin(fsk); COMP modbuf_comp[n]; for(i=0; i #include #include "mpdecode_core.h" #define M 4 #define BPS 2 #define NSYM 5 #define V_EST 2 #define SNR_EST 10 /* Generated test vectors with: octave:100> init_cml('~/cml/'); octave:101> rx_filt=[1 0 0 0; 0 1 0 0; 0 0 1 0; 0 0 0 1] octave:102> symL = DemodFSK(rx_filt,10,1); -Somap(symL) */ /* one col per symbol: 0 1 2 3 4 */ float rx_filt[] = { 1.0, 0.0, 0.0, 0.0, 1.0, /* filter 0 */ 0.0, 1.0, 0.0, 0.0, 0.0, /* filter 1 */ 0.0, 0.0, 1.0, 0.0, 0.0, /* filter 2 */ 0.0, 0.0, 0.0, 1.0, 0.0 /* filter 3 */ }; float llrs_target[] = { 7.3252, 7.3252, /* bit 0, 1 */ 7.3252, -7.3252, /* 2, 3, ... */ -7.3252, 7.3252, -7.3252, -7.3252, 7.3252, 7.3252 }; int main(void) { float llrs[BPS*NSYM] = {0}; fsk_rx_filt_to_llrs(llrs, rx_filt, V_EST, SNR_EST, M, NSYM); float error = 0.0; for(int i=0; i #include "freedv_api.h" int main(void) { printf("%s\n", freedv_get_hash()); return 0; } codec2-1.0.1/unittest/tnc1_high_snr.sh000077500000000000000000000055251412132000500176070ustar00rootroot00000000000000#!/bin/bash -x # tnc1_high_snr.sh # # HF TNC use case test 1 # + Send unidirectional frames at high SNR over an alsa loopback virtual sound card # + Using the sound card can take some time, so implemented as a service to run automatically in background NAME=tnc1 CODEC2_PATH=${HOME}/codec2 PIDFILE_TX=/tmp/${NAME}_tx.pid PIDFILE_RX=/tmp/${NAME}_rx.pid LOGFILE=${NAME}.log PATH=${CODEC2_PATH}/build_linux/src:${PATH} DELAY="${DELAY:-500}" MAX_RUN_TIME=3600 # in this version we use single frame bursts, so BURSTS==FRAMES BURSTS=$2 function run_tx { bursts=$1 delay=$2 freedv_data_raw_tx DATAC1 /dev/zero - --testframes 1 --bursts ${bursts} --delay ${delay} | aplay --device="plughw:CARD=CHAT2,DEV=1" -f S16_LE } function start_rx_background { arecord --device="plughw:CARD=CHAT2,DEV=0" -f S16_LE -d $MAX_RUN_TIME | freedv_data_raw_rx DATAC1 - /dev/null --framesperburst 1 --vv --testframes & echo $!>${PIDFILE_RX} } function stop_service { echo "service stopping - bye!" 1>&2 if [ -e ${PIDFILE_RX} ]; then pid_rx=$(cat ${PIDFILE_RX}) rm ${PIDFILE_RX} kill ${pid_rx} fi if [ -e ${PIDFILE_TX} ]; then pid_tx=$(cat ${PIDFILE_TX}) rm ${PIDFILE_TX} kill ${pid_tx} fi } function check_running { if [ -e ${PIDFILE_TX} ]; then echo "Tx already running... pid: ${PIDFILE_TX}" exit 1 fi if [ -e ${PIDFILE_RX} ]; then echo "Rx already running... pid: ${PIDFILE_RX}" exit 1 fi } function check_alsa_loopback { lsmod | grep snd_aloop >> /dev/null if [ $? -eq 1 ]; then echo "ALSA loopback device not present. Please install with:" echo echo " sudo modprobe snd-aloop index=1,2 enable=1,1 pcm_substreams=1,1 id=CHAT1,CHAT2" exit 1 fi } case "$1" in start) check_running check_alsa_loopback ( start_rx_background && sleep 1 && run_tx ${BURSTS} ${DELAY} && stop_service ) 2>${LOGFILE} & echo $!>${PIDFILE_TX} echo "Results in ${LOGFILE}" ;; start_verbose) check_running check_alsa_loopback # Show all outputs and log output to stderr rather than logfile verbose=1 start_rx_background && sleep 1 && run_tx ${BURSTS} ${DELAY} && stop_service ;; stop) stop_service ;; restart) $0 stop $0 start ;; status) if [ -e ${PIDFILE_TX} ]; then echo ${NAME} is running, pid=`cat ${PIDFILE_TX}` else echo$ {NAME} is NOT running exit 1 fi ;; *) echo "Usage: $0 {start|start_verbose|stop|restart|status} NumFrames" echo " $0 start_verbose 1 - 1 frame packet verbose, logs to stderr" echo " $0 start 5 - 5 frames, run as service in background, logs sent to ${LOGFILE}" esac exit 0 codec2-1.0.1/unittest/tnc4_high_snr_ping.sh000077500000000000000000000064731412132000500206320ustar00rootroot00000000000000#!/bin/bash -x # tnc4_high_snr_ping.sh # # HF TNC use case test 4 # + Terminal 1 sends frames to Terminal 2 # + Terminal 2 receives frames and re-transmits them back to Terminal 1 # + Terminal 1 and 2 count number of frames received (see logfiles) # + The modem samples are sent over virtual sound cards, this runs in real time, which # can be slow for tests involving many packets. Therefore this test is implemented as a # service script. NAME=tnc4 CODEC2_PATH=${HOME}/codec2 PIDFILE_TX1=/tmp/${NAME}_tx1.pid PIDFILE_RX1=/tmp/${NAME}_rx1.pid PIDFILE_RX2=/tmp/${NAME}_rx2.pid LOGFILE1=${NAME}_1.log LOGFILE2=${NAME}_2.log PATH=${CODEC2_PATH}/build_linux/src:${PATH} DELAY="${DELAY:-500}" MAX_RUN_TIME=3600 # in this version we use single frame bursts, so BURSTS==FRAMES BURSTS=$2 MODE=DATAC0 function tx1 { freedv_data_raw_tx ${MODE} /dev/zero - --testframes 1 --bursts ${BURSTS} --delay ${DELAY} | aplay --device="plughw:CARD=CHAT2,DEV=1" -f S16_LE } function rx2_background { # re-transmit any frames we receive ( arecord --device="plughw:CARD=CHAT2,DEV=0" -f S16_LE -d $MAX_RUN_TIME | \ freedv_data_raw_rx ${MODE} - - --framesperburst 1 --vv --testframes | \ freedv_data_raw_tx ${MODE} - - --delay ${DELAY} | \ aplay --device="plughw:CARD=CHAT1,DEV=1" -f S16_LE ) 2>${LOGFILE2} & # killing arecord kills the entire pipeline echo $(pidof arecord)>${PIDFILE_RX2} } function rx1_background { arecord --device="plughw:CARD=CHAT1,DEV=0" -f S16_LE -d $MAX_RUN_TIME | freedv_data_raw_rx ${MODE} - /dev/null --framesperburst 1 --vv --testframes & echo $!>${PIDFILE_RX1} } function stop_process { if [ -e ${1} ]; then pid=$(cat ${1}) rm ${1} kill ${pid} fi } function stop_service { echo "service stopping - bye!" 1>&2 stop_process ${PIDFILE_RX1} stop_process ${PIDFILE_RX2} stop_process ${PIDFILE_TX1} } function check_running { if [ -e ${PIDFILE_TX1} ]; then echo "Tx already running... pid: ${PIDFILE_TX1}" exit 1 fi if [ -e ${PIDFILE_RX1} ]; then echo "Rx1 already running... pid: ${PIDFILE_RX1}" exit 1 fi if [ -e ${PIDFILE_RX2} ]; then echo "Rx2 already running... pid: ${PIDFILE_RX2}" exit 1 fi } function check_alsa_loopback { lsmod | grep snd_aloop >> /dev/null if [ $? -eq 1 ]; then echo "ALSA loopback device not present. Please install with:" echo echo " sudo modprobe snd-aloop index=1,2 enable=1,1 pcm_substreams=1,1 id=CHAT1,CHAT2" exit 1 fi } case "$1" in start) check_running check_alsa_loopback rx2_background ( rx1_background && sleep 1 && tx1 && sleep 5 && stop_service ) 2>${LOGFILE1} & echo $!>${PIDFILE_TX1} echo "Results for terminal 1 in ${LOGFILE1} and terminal 2 in ${LOGFILE2}" ;; stop) stop_service ;; restart) $0 stop $0 start ;; status) if [ -e ${PIDFILE_TX1} ]; then echo ${NAME} is running, pid=`cat ${PIDFILE_TX1}` else echo ${NAME} is NOT running exit 1 fi ;; *) echo "Usage: $0 {start|start_verbose|stop|restart|status} NumFrames" echo " $0 start 5 - test ping over 5 frames; logs sent to ${LOGFILE1} and ${LOGFILE2}" esac exit 0 codec2-1.0.1/unittest/tnewamp1.c000066400000000000000000000247261412132000500164260ustar00rootroot00000000000000/*---------------------------------------------------------------------------*\ FILE........: tnewamp1.c AUTHOR......: David Rowe DATE CREATED: Jan 2017 Tests for the C version of the newamp1 amplitude modelling used for 700c. This program outputs a file of Octave vectors that are loaded and automatically tested against the Octave version of the modem by the Octave script tnewamp1.m \*---------------------------------------------------------------------------*/ /* Copyright (C) 2017 David Rowe All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 2.1, as published by the Free Software Foundation. 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 Lesser General Public License along with this program; if not, see . */ #include "defines.h" #include "codec2_fft.h" #include "sine.h" #include "nlp.h" #include "dump.h" #include "octave.h" #include "newamp1.h" #include "quantise.h" #define FRAMES 300 int main(int argc, char *argv[]) { int Fs = 8000; C2CONST c2const = c2const_create(Fs, N_S); int n_samp = c2const.n_samp; int m_pitch = c2const.m_pitch; short buf[n_samp]; /* input/output buffer */ float Sn[m_pitch]; /* float input speech samples */ COMP Sw[FFT_ENC]; /* DFT of Sn[] */ codec2_fft_cfg fft_fwd_cfg; /* fwd FFT states */ float w[m_pitch]; /* time domain hamming window */ float W[FFT_ENC]; /* DFT of w[] */ MODEL model; void *nlp_states; codec2_fft_cfg phase_fft_fwd_cfg, phase_fft_inv_cfg; float pitch, prev_f0; int i,m,f,k; if (argc != 2) { printf("usage: ./tnewamp1 RawFile\n"); exit(1); } nlp_states = nlp_create(&c2const); prev_f0 = 1.0/P_MAX_S; fft_fwd_cfg = codec2_fft_alloc(FFT_ENC, 0, NULL, NULL); make_analysis_window(&c2const,fft_fwd_cfg, w, W); phase_fft_fwd_cfg = codec2_fft_alloc(NEWAMP1_PHASE_NFFT, 0, NULL, NULL); phase_fft_inv_cfg = codec2_fft_alloc(NEWAMP1_PHASE_NFFT, 1, NULL, NULL); for(i=0; i Octave float rate_K_surface[FRAMES][K]; // rate K vecs for each frame, form a surface that makes pretty graphs float rate_K_surface_no_mean[FRAMES][K]; // mean removed surface float rate_K_surface_no_mean_[FRAMES][K]; // quantised mean removed surface float mean[FRAMES]; float mean_[FRAMES]; float rate_K_surface_[FRAMES][K]; // quantised rate K vecs for each frame float interpolated_surface_[FRAMES][K]; // dec/interpolated surface //int voicing[FRAMES]; int voicing_[FRAMES]; float model_octave_[FRAMES][MAX_AMP+2]; COMP H[FRAMES][MAX_AMP]; int indexes[FRAMES][NEWAMP1_N_INDEXES]; float se = 0.0; float eq[K]; for(k=0; k= M) { for(i=0; i tnewamp1(\"../path/to/build_linux/src/hts1a\", \"../path/to/build_linux/unittest\")\n"); return 0; } codec2-1.0.1/unittest/tnlp.c000066400000000000000000000102231412132000500156320ustar00rootroot00000000000000/*---------------------------------------------------------------------------*\ FILE........: tnlp.c AUTHOR......: David Rowe DATE CREATED: 23/3/93 Test program for non linear pitch estimation functions. \*---------------------------------------------------------------------------*/ /* Copyright (C) 2009 David Rowe All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 2.1, as published by the Free Software Foundation. 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 Lesser General Public License along with this program; if not, see . */ #include #include #include #include #include "defines.h" #include "dump.h" #include "sine.h" #include "nlp.h" #include "kiss_fft.h" int frames; /*---------------------------------------------------------------------------*\ switch_present() Searches the command line arguments for a "switch". If the switch is found, returns the command line argument where it ws found, else returns NULL. \*---------------------------------------------------------------------------*/ int switch_present(sw,argc,argv) char sw[]; /* switch in string form */ int argc; /* number of command line arguments */ char *argv[]; /* array of command line arguments in string form */ { int i; /* loop variable */ for(i=1; i. */ #include #include #include #include #include #include #include #include #include "ofdm_internal.h" #include "codec2_ofdm.h" #include "octave.h" #include "test_bits_ofdm.h" #include "comp_prim.h" #include "mpdecode_core.h" #include "HRA_112_112.h" /* generated by ldpc_fsk_lib.m:ldpc_decode() */ #define NFRAMES 10 #define SAMPLE_CLOCK_OFFSET_PPM 100 #define FOFF_HZ 0.5f #define ASCALE (2E5f * 1.1491f / 2.0f) /* scale from shorts back to floats */ #define CODED_BITSPERFRAME 224 /* number of LDPC codeword bits/frame */ /* QPSK constellation for symbol likelihood calculations */ static COMP S_matrix[] = { { 1.0f, 0.0f}, { 0.0f, 1.0f}, { 0.0f, -1.0f}, {-1.0f, 0.0f} }; /* constants we use a lot and don't want to have to deference all the time */ static float ofdm_tx_centre; /* TX Center frequency */ static float ofdm_rx_centre; /* RX Center frequency */ static float ofdm_fs; /* Sample rate */ static float ofdm_ts; /* Symbol cycle time */ static float ofdm_rs; /* Symbol rate */ static float ofdm_tcp; /* Cyclic prefix duration */ static float ofdm_timing_mx_thresh; /* See 700D Part 4 Acquisition blog post and ofdm_dev.m routines for how this was set */ static int ofdm_nc; /* NS-1 data symbols between pilots */ static int ofdm_ns; static int ofdm_bps; /* Bits per symbol */ static int ofdm_m; /* duration of each symbol in samples */ static int ofdm_ncp; /* duration of CP in samples */ static int ofdm_ftwindowwidth; static int ofdm_bitsperframe; static int ofdm_rowsperframe; static int ofdm_samplesperframe; static int ofdm_samplespersymbol; static int ofdm_max_samplesperframe; static int ofdm_nrxbuf; static int ofdm_ntxtbits; /* reserve bits/frame for auxillary text information */ static int ofdm_nuwbits; /* Unique word, used for positive indication of lock */ /*---------------------------------------------------------------------------*\ FUNCTION....: fs_offset() AUTHOR......: David Rowe DATE CREATED: May 2015 Simulates small Fs offset between mod and demod. (Note: Won't work with float, works OK with double) \*---------------------------------------------------------------------------*/ static int fs_offset(COMP out[], COMP in[], int n, float sample_rate_ppm) { double f; double tin = 0.0; double step = 1.0 + sample_rate_ppm/1E6; int t1, t2; int tout = 0; while (tin < (double) (n-1)) { t1 = (int) floor(tin); t2 = (int) ceil(tin); assert(t2 < n); f = tin - (double) t1; out[tout].real = ((double)1.0-f)*(double)in[t1].real + f*(double)in[t2].real; out[tout].imag = ((double)1.0-f)*(double)in[t1].imag + f*(double)in[t2].imag; tin += step; tout++; //printf("tin: %f tout: %d f: %f\n", tin, tout, f); } return tout; } /*---------------------------------------------------------------------------*\ FUNCTION....: freq_shift() AUTHOR......: David Rowe DATE CREATED: 26/4/2012 Frequency shift modem signal. The use of complex input and output allows single sided frequency shifting (no images). \*---------------------------------------------------------------------------*/ static void freq_shift(COMP rx_fdm_fcorr[], COMP rx_fdm[], float foff, COMP *foff_phase_rect, int nin) { float temp = (TAU * foff / ofdm_fs); COMP foff_rect = { cosf(temp), sinf(temp) }; int i; for (i = 0; i < nin; i++) { *foff_phase_rect = cmult(*foff_phase_rect, foff_rect); rx_fdm_fcorr[i] = cmult(rx_fdm[i], *foff_phase_rect); } /* normalise digital oscillator as the magnitude can drift over time */ float mag = cabsolute(*foff_phase_rect); foff_phase_rect->real /= mag; foff_phase_rect->imag /= mag; } int main(int argc, char *argv[]) { int opt_Nc = 0; int ldpc_enable = 1; struct OFDM *ofdm; struct OFDM_CONFIG *ofdm_config; static struct option long_options[] = { {"nc", required_argument, 0, 'n'}, {"noldpc", no_argument, 0, 'l'}, {0, 0, 0, 0} }; int opt_index = 0; char c; while ((c = getopt_long (argc, argv, "n:l", long_options, &opt_index)) != -1) { switch (c) { case 'n': opt_Nc = atoi(optarg); fprintf(stderr, "Nc = %d\n", opt_Nc); break; case 'l': ldpc_enable = 0; fprintf(stderr, "LDPC disabled\n"); break; default: fprintf(stderr,"usage: %s [Options]:\n [-l --noldpc]\n [-n --nc NumberoFCarriers]\n", argv[0]); exit(1); } } // init once to get a copy of default config params ofdm = ofdm_create(NULL); assert(ofdm != NULL); struct OFDM_CONFIG ofdm_config_default; memcpy(&ofdm_config_default, ofdm_get_config_param(ofdm), sizeof(struct OFDM_CONFIG)); ofdm_destroy(ofdm); // now do a little customisation on default config, and re-create modem instance if (opt_Nc) ofdm_config_default.nc = opt_Nc; //printf("ofdm_create() 2\n"); ofdm = ofdm_create(&ofdm_config_default); assert(ofdm != NULL); ofdm_config = ofdm_get_config_param(ofdm); ofdm_set_tx_bpf(ofdm, false); // same levels as Octave sim ofdm->amp_scale = 1.0; // make local copies for convenience ofdm_tx_centre = ofdm_config->tx_centre; ofdm_rx_centre = ofdm_config->rx_centre; ofdm_fs = ofdm_config->fs; ofdm_ts = ofdm_config->ts; ofdm_rs = ofdm_config->rs; ofdm_tcp = ofdm_config->tcp; ofdm_timing_mx_thresh = ofdm_config->timing_mx_thresh; ofdm_nc = ofdm_config->nc; ofdm_ns = ofdm_config->ns; ofdm_bps = ofdm_config->bps; ofdm_m = (int) (ofdm_config->fs / ofdm_config->rs); ofdm_ncp = (int) (ofdm_config->tcp * ofdm_config->fs); ofdm_ftwindowwidth = ofdm_config->ftwindowwidth; ofdm_bitsperframe = ofdm_get_bits_per_frame(ofdm); ofdm_rowsperframe = ofdm_bitsperframe / (ofdm_config->nc * ofdm_config->bps); ofdm_samplesperframe = ofdm_get_samples_per_frame(ofdm); ofdm_samplespersymbol = (ofdm->m + ofdm->ncp); ofdm_max_samplesperframe = ofdm_get_max_samples_per_frame(ofdm); ofdm_nrxbuf = ofdm->nrxbuf; ofdm_ntxtbits = ofdm_config->txtbits; ofdm_nuwbits = ofdm_config->nuwbits; int tx_bits[ofdm_samplesperframe]; COMP tx[ofdm_samplesperframe]; /* one frame of tx samples */ int rx_bits[ofdm_bitsperframe]; /* one frame of rx bits */ printf("Nc = %d ofdm_bitsperframe: %d\n", ofdm_nc, ofdm_bitsperframe); /* log arrays */ int tx_bits_log[ofdm_bitsperframe*NFRAMES]; COMP tx_log[ofdm_samplesperframe*NFRAMES]; COMP rx_log[ofdm_samplesperframe*NFRAMES]; COMP rxbuf_in_log[ofdm_max_samplesperframe*NFRAMES]; COMP rxbuf_log[ofdm_nrxbuf*NFRAMES]; COMP rx_sym_log[(ofdm_ns + 3)*NFRAMES][ofdm_nc + 2]; float phase_est_pilot_log[ofdm_rowsperframe*NFRAMES][ofdm_nc]; COMP rx_np_log[ofdm_rowsperframe*ofdm_nc*NFRAMES]; float rx_amp_log[ofdm_rowsperframe*ofdm_nc*NFRAMES]; float foff_hz_log[NFRAMES]; int rx_bits_log[ofdm_bitsperframe*NFRAMES]; int timing_est_log[NFRAMES]; int timing_valid_log[NFRAMES]; float timing_mx_log[NFRAMES]; float coarse_foff_est_hz_log[NFRAMES]; int sample_point_log[NFRAMES]; float symbol_likelihood_log[ (CODED_BITSPERFRAME/ofdm_bps) * (1<tx_uw[i]; } for(i=ofdm_nuwbits; i 16384; uint8_t txt_bits[ofdm_ntxtbits]; for (i = 0; i < ofdm_ntxtbits; i++) txt_bits[i] = 0; uint8_t tx_bits_char[ofdm_bitsperframe]; ofdm_assemble_qpsk_modem_packet(ofdm, tx_bits_char, payload_bits, txt_bits); for(i=0; irxbuf[ofdm_nrxbuf-nin+i] = rx_log[prx].real + rx_log[prx].imag * I; } #endif int nin_tot = 0; /* disable estimators for initial testing */ ofdm_set_verbose(ofdm, false); ofdm_set_timing_enable(ofdm, true); ofdm_set_foff_est_enable(ofdm, true); ofdm_set_phase_est_enable(ofdm, true); //#define TESTING_FILE #ifdef TESTING_FILE FILE *fin=fopen("~/codec2-dev/octave/ofdm_test.raw", "rb"); assert(fin != NULL); int Nbitsperframe = ofdm_bitsperframe; int Nmaxsamperframe = ofdm_max_samplesperframe; short rx_scaled[Nmaxsamperframe]; #endif /* start this with something sensible otherwise LDPC decode fails in tofdm.m */ ofdm->mean_amp = 1.0; for(f=0; frx_np[j]); ldpc_codeword_symbols[i].imag = cimagf(ofdm->rx_np[j]); } float *ldpc_codeword_symbol_amps = &ofdm->rx_amp[(ofdm_nuwbits+ofdm_ntxtbits)/ofdm_bps]; Demod2D(symbol_likelihood, ldpc_codeword_symbols, S_matrix, EsNo, ldpc_codeword_symbol_amps, ofdm->mean_amp, CODED_BITSPERFRAME/ofdm_bps); Somap(bit_likelihood, symbol_likelihood, 1<rxbuf[i]); rxbuf_log[ofdm_nrxbuf*f+i].imag = cimagf(ofdm->rxbuf[i]); } for (i = 0; i < (ofdm_ns + 3); i++) { for (j = 0; j < (ofdm_nc + 2); j++) { rx_sym_log[(ofdm_ns + 3)*f+i][j].real = crealf(ofdm->rx_sym[i][j]); rx_sym_log[(ofdm_ns + 3)*f+i][j].imag = cimagf(ofdm->rx_sym[i][j]); } } /* note corrected phase (rx no phase) is one big linear array for frame */ for (i = 0; i < ofdm_rowsperframe*ofdm_nc; i++) { rx_np_log[ofdm_rowsperframe*ofdm_nc*f + i].real = crealf(ofdm->rx_np[i]); rx_np_log[ofdm_rowsperframe*ofdm_nc*f + i].imag = cimagf(ofdm->rx_np[i]); } /* note phase/amp ests the same for each col, but check them all anyway */ for (i = 0; i < ofdm_rowsperframe; i++) { for (j = 0; j < ofdm_nc; j++) { phase_est_pilot_log[ofdm_rowsperframe*f+i][j] = ofdm->aphase_est_pilot_log[ofdm_nc*i+j]; rx_amp_log[ofdm_rowsperframe*ofdm_nc*f+ofdm_nc*i+j] = ofdm->rx_amp[ofdm_nc*i+j]; } } foff_hz_log[f] = ofdm->foff_est_hz; timing_est_log[f] = ofdm->timing_est + 1; /* offset by 1 to match Octave */ timing_valid_log[f] = ofdm->timing_valid; timing_mx_log[f] = ofdm->timing_mx; coarse_foff_est_hz_log[f] = ofdm->coarse_foff_est_hz; sample_point_log[f] = ofdm->sample_point + 1; /* offset by 1 to match Octave */ float EsNodB = ofdm_esno_est_calc(ofdm->rx_np, ofdm_rowsperframe*ofdm_nc); snr_log[f] = ofdm_snr_from_esno(ofdm, EsNodB); mean_amp_log[f] = ofdm->mean_amp; memcpy(&rx_bits_log[ofdm_bitsperframe*f], rx_bits, sizeof(rx_bits)); if (ldpc_enable) { for(i=0; i<(CODED_BITSPERFRAME/ofdm_bps) * (1<pilot_samples, 1, ofdm_samplespersymbol, ofdm_samplespersymbol); octave_save_int(fout, "tx_bits_log_c", tx_bits_log, 1, ofdm_bitsperframe*NFRAMES); octave_save_complex(fout, "tx_log_c", (COMP*)tx_log, 1, ofdm_samplesperframe*NFRAMES, ofdm_samplesperframe*NFRAMES); octave_save_complex(fout, "rx_log_c", (COMP*)rx_log, 1, ofdm_samplesperframe*NFRAMES, ofdm_samplesperframe*NFRAMES); octave_save_complex(fout, "rxbuf_in_log_c", (COMP*)rxbuf_in_log, 1, nin_tot, nin_tot); octave_save_complex(fout, "rxbuf_log_c", (COMP*)rxbuf_log, 1, ofdm_nrxbuf*NFRAMES, ofdm_nrxbuf*NFRAMES); octave_save_complex(fout, "rx_sym_log_c", (COMP*)rx_sym_log, (ofdm_ns + 3)*NFRAMES, ofdm_nc + 2, ofdm_nc + 2); octave_save_float(fout, "phase_est_pilot_log_c", (float*)phase_est_pilot_log, ofdm_rowsperframe*NFRAMES, ofdm_nc, ofdm_nc); octave_save_float(fout, "rx_amp_log_c", (float*)rx_amp_log, 1, ofdm_rowsperframe*ofdm_nc*NFRAMES, ofdm_rowsperframe*ofdm_nc*NFRAMES); octave_save_float(fout, "foff_hz_log_c", foff_hz_log, NFRAMES, 1, 1); octave_save_int(fout, "timing_est_log_c", timing_est_log, NFRAMES, 1); octave_save_int(fout, "timing_valid_log_c", timing_valid_log, NFRAMES, 1); octave_save_float(fout, "timing_mx_log_c", timing_mx_log, NFRAMES, 1, 1); octave_save_float(fout, "coarse_foff_est_hz_log_c", coarse_foff_est_hz_log, NFRAMES, 1, 1); octave_save_int(fout, "sample_point_log_c", sample_point_log, NFRAMES, 1); octave_save_complex(fout, "rx_np_log_c", (COMP*)rx_np_log, 1, ofdm_rowsperframe*ofdm_nc*NFRAMES, ofdm_rowsperframe*ofdm_nc*NFRAMES); octave_save_int(fout, "rx_bits_log_c", rx_bits_log, 1, ofdm_bitsperframe*NFRAMES); octave_save_float(fout, "symbol_likelihood_log_c", symbol_likelihood_log, (CODED_BITSPERFRAME/ofdm_bps) * (1< #include #include #include #include #include #include "ofdm_internal.h" #include "codec2_ofdm.h" #include "octave.h" #define MAX_FRAMES 500 int main(int argc, char *argv[]) { struct OFDM *ofdm; struct OFDM_CONFIG ofdm_config; ofdm_init_mode("datac0", &ofdm_config); ofdm = ofdm_create(&ofdm_config); ofdm->data_mode = "burst"; ofdm->verbose = 2; ofdm->timing_mx_thresh = 0.15; ofdm->postambledetectoren = 1; assert(ofdm != NULL); int nin = ofdm_get_nin(ofdm); int rxbufst = ofdm->rxbufst; FILE *fin = fopen(argv[1],"rb"); assert(fin != NULL); short rx_scaled[ofdm_get_max_samples_per_frame(ofdm)]; int f = 0; float timing_mx_log[MAX_FRAMES]; int ct_est_log[MAX_FRAMES]; float foff_est_log[MAX_FRAMES]; int timing_valid_log[MAX_FRAMES]; int nin_log[MAX_FRAMES]; while (fread(rx_scaled, sizeof (short), nin, fin) == nin) { fprintf(stderr, "%3d ", f); ofdm_sync_search_shorts(ofdm, rx_scaled, ofdm->amp_scale / 2.0f); if (f < MAX_FRAMES) { timing_mx_log[f] = ofdm->timing_mx; ct_est_log[f] = ofdm->ct_est; foff_est_log[f] = ofdm->foff_est_hz; timing_valid_log[f] = ofdm->timing_valid; nin_log[f] = ofdm->nin; } f++; // reset these to defaults, as they get modified when timing_valid asserted ofdm->nin = nin; ofdm->rxbufst = rxbufst; } fclose(fin); /*---------------------------------------------------------*\ Dump logs to Octave file for evaluation by tofdm_acq.m Octave script \*---------------------------------------------------------*/ FILE *fout = fopen("tofdm_acq_out.txt","wt"); assert(fout != NULL); fprintf(fout, "# Created by tofdm_acq.c\n"); octave_save_complex(fout, "tx_preamble_c", (COMP*)ofdm->tx_preamble, 1, ofdm->samplesperframe, ofdm->samplesperframe); octave_save_complex(fout, "tx_postamble_c", (COMP*)ofdm->tx_postamble, 1, ofdm->samplesperframe, ofdm->samplesperframe); octave_save_float(fout, "timing_mx_log_c", timing_mx_log, 1, f, f); octave_save_float(fout, "foff_est_log_c", foff_est_log, 1, f, f); octave_save_int(fout, "ct_est_log_c", ct_est_log, 1, f); octave_save_int(fout, "timing_valid_log_c", timing_valid_log, 1, f); octave_save_int(fout, "nin_log_c", nin_log, 1, f); fclose(fout); ofdm_destroy(ofdm); return 0; } codec2-1.0.1/unittest/tprede.c000066400000000000000000000017241412132000500161460ustar00rootroot00000000000000/* tpre_de.c David Rowe Sep 24 2012 Unit test to generate the combined impulse response of pre & de-emphasis filters. pl("../unittest/out48.raw",1,3000) pl("../unittest/out8.raw",1,3000) Listening to it also shows up anything nasty: $ play -s -2 -r 48000 out48.raw $ play -s -2 -r 8000 out8.raw */ #include #include #include #include #include "lpc.h" #define N 10 #define F 10 int main() { FILE *fprede; float Sn[N], Sn_pre[N], Sn_de[N]; float pre_mem = 0.0, de_mem = 0.0; int i, f; fprede = fopen("prede.txt", "wt"); assert(fprede != NULL); for(i=0; i #include #include "ofdm_internal.h" int main(void) { int c; for(c=0; c<16; c++) { int tx_bits[4], rx_bits[4]; for(int i=0; i<4; i++) tx_bits[i] = (c >> (3-i)) & 0x1; complex float symbol = qam16_mod(tx_bits); qam16_demod(symbol, rx_bits); if (memcmp(tx_bits, rx_bits, 4)) { fprintf(stderr, "FAIL on %d!\ntx_bits: ",c); for(int i=0; i<4; i++) fprintf(stderr, "%d ", tx_bits[i]); fprintf(stderr, "%f %f\nrx_bits: ", creal(symbol), cimag(symbol)); for(int i=0; i<4; i++) fprintf(stderr, "%d ", rx_bits[i]); fprintf(stderr, "%f %f\n", creal(symbol), cimag(symbol)); return 1; } } fprintf(stderr, "%d tested OK...\nPASS!\n", c); return 0; } codec2-1.0.1/unittest/tst_codec2_fft_init.c000066400000000000000000000050431412132000500205740ustar00rootroot00000000000000/*---------------------------------------------------------------------------*\ FILE........: tst_codec2_fft_init.c, AUTHOR......: David Rowe, Don Reid DATE CREATED: 30 May 2013, Oct 2018, Feb 2018 Test FFT Window initialization in Codec2_create \*---------------------------------------------------------------------------*/ /* Copyright (C) 2014 David Rowe All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 2.1, as published by the Free Software Foundation. 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 Lesser General Public License along with this program; if not, see . */ #include #include #include #include #include "codec2.h" #include "codec2_internal.h" #include "defines.h" #include "machdep.h" static const float expect_w[] = { 0.004293, 0.004301, 0.004309, 0.004315, 0.004320, 0.004323, 0.004326, 0.004328, 0.004328, 0.004328, 0.004326, 0.004323, 0.004320, 0.004315, 0.004309, 0.004301}; static const float expect_W[] = { -0.002176, 0.002195, 0.004429, -0.008645, -0.012196, 0.065359, 0.262390, 0.495616, 0.601647, 0.495616, 0.262390, 0.065359, -0.012196, -0.008645, 0.004429, 0.002195}; int float_cmp(float a, float b) { if ( fabsf(a - b) < 1e-6f ) return 1; else return 0; } int main(int argc, char *argv[]) { struct CODEC2 *codec2; int i, j; //////// codec2 = codec2_create(CODEC2_MODE_700C); j = (codec2->c2const.m_pitch / 2) - 8; for (i=0; i<16; i++) { printf("w[%d] = %f", j+i, (double)codec2->w[j+i]); if (!float_cmp(codec2->w[j+i], expect_w[i])) { printf(" Error, expected %f", (double)expect_w[i]); } printf("\n"); } printf("\n"); j = (FFT_ENC / 2) - 8; for (i=0; i<16; i++) { printf("W[%d] = %f", j+i, (double)codec2->W[j+i]); if (!float_cmp(codec2->W[j+i], expect_W[i])) { printf(" Error, expected %f", (double)expect_W[i]); } printf("\n"); } codec2_destroy(codec2); printf("\nEnd of Test\n"); fclose(stdout); fclose(stderr); return(0); } /* vi:set ts=4 et sts=4: */ codec2-1.0.1/unittest/tvq_mbest.c000066400000000000000000000013751412132000500166710ustar00rootroot00000000000000/* tvq_mbest.c David Rowe Dec 2019 Generate some test vectors to exercise misc/vq_mbest.c */ #include #include #include void write_float_file(char fn[], float *values, int n) { FILE *f=fopen(fn,"wb"); assert(f != NULL); assert(fwrite(values, sizeof(float), n, f) == n); fclose(f); } int main(void) { float target[] = {1.0,1,0}; write_float_file("target.f32", target, 2); float vq1[] = {0.9,0.9, /* this will be a better match on first stage */ 0.8,0.8}; /* but after second stage should choose this */ write_float_file("vq1.f32", vq1, 4); float vq2[] = {0.3,0.3, 0.2,0.2}; /* 0.8+0.2 == 1.0 so best 2nd stage entry */ write_float_file("vq2.f32", vq2, 4); return 0; } codec2-1.0.1/wav/000077500000000000000000000000001412132000500134315ustar00rootroot00000000000000codec2-1.0.1/wav/all.wav000066400000000000000000033707141412132000500147370ustar00rootroot00000000000000RIFF WAVEfmt @>data                       !plP.@L.+<' ], }Cd (1 3J@3:'SvCwm1}B+.MJv? 8Zwt*m;( +Nyp a@ .xMoY~#Ds5(+5hwFq"{"~9=) j Oq (SZ  hr md `n8{*&*lhpsJr[d. | h@P&x zm - V /ix J{ J; SIhs%xz%TqulWI ' _\Q\eu #  [Hp 2@ ]wUizbD q >v.WhZ!tYe [   9XuR7 b6 gD ( q2nYxo9 iV aH q(=.DJ<6$c T~$ &,jGz28\ P|MM]Uza?(+n@  L@5$9SHIs[tW + 8RlR'"bNjW@){o>^Trl"'WX?ham{` :ltHh/#PRK h3#kBWja7 Nb%5Q%##*x8C g\4uBH&6\~fOPA x0@%?`,R=YFt rvfHy8;] 5?j8.8( p VZyo4hi ?C0 w_vG op/  2$HxAwH]k+@'qv*VJzk8{DZ?? q/_Tj 25sjU wA Aػ۪ :h9# O"5 p&a Ml .B|*` "E`  [^f5r@j"o 1!Cp,>F`0"/1\ܝT~{Cy%>!L 'k P B#   //HtYS LxJ}$F,'Rj,6=!|&AN xZ0_+&FUz g*Em0\K]h I_Owz!6E-#P/&Ƣ3BOڱF$"t(^'v9C NVZ(lJZhI;G-/Dc \ >9~ƞN ,#  t!(/}XfJ01]"wi g3C=mSaoMB/~,,-dž^1%V:&1+~2c  `ߞ_i%I! _='  b26_(^$6//ا@ ˻q I0&,!/eqQ8m ! S Fmi0w :2{%"ߪ'Q2D43L Lhst'&YFل<=8#Y:&vmt| ^ } 6ԥ&9?P.)vV{A)\""h!a|R4E] X %xH<$#9rk G5&3f % u 9Dۓp Mf$4ic&PuB  bl-T>S, Y r9X" *p, 3Jn YQm5x%+?V~# S vYu    HYQzZ? K im5Ot"4VYZRtܶ  1e{'  1tvC-H O " x =)hS p+% T /6M *8bmNWdM_ "C wP F IODq]V $ d*Ht6~Bu)4Z,,9"$"0(/9)a g1=Q |" X] 6 rsO  |9Of\G<5 'G d 2.!ms B  # Hc Ya=q$zx  'l,(v(oI F]6q<#` M' Y?/ 0?M   \[~nH$ht,}yCF JEzNo*HZI&fhR{b U  R hz  u4+C)eu. Jj@}m#%rA|<_Mu<=Ht*p(*TK^xA@}~z6h2l& < Dx|%aU5vv,Q*  !vy ;]gi ;lj94*n6J;kHuJJc c!.'vG%G oP i\+RQTIhpp]0*F,ruu~D;9X3vHoQbGBBvFC>]ufor{ZaC Z[&oS.0Zk1dL>?Sr:%cK?=HH/H=~y0dCO7 ! ZLd U W$,T3@1 O)*ub\fW]D> ZOj0/p~gSAZk55V4rl7.m@d+W=1Q49uw-#%%:-;]<y{c~Y.N+*aFwFy$WgH;( 'F=8Kj!KTQ"j 2% y>EQus5 RoN3}?WF ,M $ & Lx MwBqlp8,>iPKj76/KDJj   XM Hj}%5[S K e j{oJcfaGD5  e h h k)_ (`7>Y ) 4Vqnik 6 1 nf: &r RYg{ &*k*lm  7u%~*LXj;dD^7=s! p5  MH[a j " W2NR ' }s y S}oS$MK_29 b |oy@rt o /tG4  dc|@ݫgb{G9# } B`65Hs p  6 "  {n Sd :kV  /eY u{]%5 Yz:2RQ V I H ![,sg$W2W q ~ d7 $(Kacso i  aHA.5@ ,dZI Z 8s4D2|WzZ}*uCju6EY ! } ^g >(L&;[rkd3q[ "D^ fM_ LO~M$&a.o8M:Xz3B*2Lk|nL~%KMUbN,=M=D)/w Tr]dT!(+*zm5 $Q,_s<yao,kond, ,CD*}sa[h CkuL$ (+5;1" ~z,;</(   *9DB=3,  %$     "  @}!v%SC\97$[Rlm :&}NI>@PSV7s<_*lPCGnZ{k -]t3~6<FY%~_[3H6, [Xu8 d?yhfoGQ bX}$ Z+)b(b<8*fGx$'J,De?_e&{4?EzYh[=l_*|- *4.B4\t3| Rc;c4x|LB:"L%jCo?3h%#D-s`@Gl#4>.SZv^Ul6(|ljs1;^-!Z cK_6MQ,uFUH@FQZKNJ"]luf2y\TI0o ]]y9U#:7zZ|&k]OzLg.*waMcx$5M9H5'}+O>GL=/  2 [,~[Y(4s;3>$NB2*D& 3[ ; ;E N0f;h  w<iB$@~v9Vk,KyW 2aY"$$m+Bޞ {P ^Mf8Y/_bdTf5f+Cch>;?7+?2-S ;G<z    $MZ,wt65H Xʱޑ)DR2W8K$߀Qȵ"pB !(?ZFt]d be) s.b0GKc!v2%;.)_pdVՐد =#D(49u3orD7HdJ2IBa $6~ P[ 0;[6r7(L"" 8w״Q [(j"@\?1Z$`T@ c%3 |r)wl  |#</ky "y2)8 'ӫS!VJ~XnI }j $!V %\H>  W%p3# '!] FK{Da .t7c! _ GP2d4L!*K)Y,A#wd oI5D#ZO4  &lU% & GF,X&/,X!qaR3PMUnfG7FCSY7i?$5r  2fSa/\n!,GHYCET([z/PGeNw. 7 7ESsUC7Mp /bk<iTT\v'=MM5(8JT[= jF[ T^ZG.6@1,"{YMYsW[hGAPv5Fin_F  '2,3..@?;;!('+!  6 }.'Z. G:.Mfak^BS' 8G!!(    ,.$   (      zN >6}!8$PYF;f xmbJnnSc9qAhdOB[u9%P3M ,,{G |S!CHV%TbYHA<>,z # vSQ.]=XZl5(8PB!]JhxX&TLKpRa[=FEY;xv"s'z=a~`;^"qs9a(w p6iM++ ( =X*I'(    %             "  $ yP[_k8GpW@:K};=QkiIP9/5 + p@U@6T.*~szISM9M &0 f}'[M$'*LqI; $3t ;45d G-pe~PxF V y IdhGD45g.b./y8:/Tv Xw:5M  ! v>jR4xx= xi 4w*Y T .%xLYWT $C!WZ,'X10m')s~|NK ~&(N&z,_ ] ? "9 tWA l q  TBNn 6",0VI "P@)Nku 5  _~.SJ N h F `>'bHIB\3wjFM 0 G n  w]#HL  Zth  fJv<Pr}A  kq_C'[*(fV&6x EQlNEJ0}3   8V s `!hR]azV~ + u![\dl+qd~'CSoY;g   @}jHe"T4Ej foOM#Dp a={ GM(F H& r7X6e#-Ji4?o=+q\Af xp|xc1Hd{8*'e\Ns[ACl@N3wEj/$*9"A^#_Y:N5B15EimY:!.i@%}*=[<,1 l? "Ri!CC?L'}C"[U88(iP!'bsZvvysQGniIUfMoR6 :^z 'FrvpZQF1vTfQS[/@! DD3eZw<;k*}XC"5PmPse<vmM8M%96M "kF2+ee^UYzhchq$1Nk]%sWU_: (=G_{vs"MsZJ1sv~vty $<^r; 6rCv< /=KPh2TzhD. {v*Fdu3iDCeS[({W5)7MR[myq}8hk[PD3~wmq '@P^rupfUD/bXa~T|_%lURMUilz.^|lfdN<,GS9' 1FC5+2C@8(+<CI;*} $/258BB=@?/31222'  ""           },:QFyYu#}iJh98NR.p+6bYMnq/I)X7fb<KetzZ&sGh"jS)b-h(KHslY?,4RWU#/LJqNy_3z?:ouk; q^wLFG9\RWr-m'1LDR 9#w-QZNIToeMMX6dNro9*v4Y&q_ 2w$U>.Eb0S=UnNvwOFWu=X&XF0b E0dBBkpOFQ7n9}*ZBy+x&2V!L*2cb]5pya| h8G@~p|Sr(H7j4E3+Rk @ K s , =_TrA(V\9.PSq}SwJTC$.*Lj"e   4N]+,|_8 | YwE)Ni 3*^ޤo&!)P frc\3dyO|] sc9:5 \TQ08a7i#GMX+z A%=0-xm@XS L29^5, s9 iUf B4 jWD(A9a]E H&VPk@- d;tD2*SaT?  )"D [q  p >Q^  Jx0Hxtb&Z05 nk4xՎDJS1:E%s(U"M:50FS%lHA 31^K%$  (&.:>c> Y^23jqB4Od>*g z`0ٞߘY6;.(lpRw&B m9'Bz iVz<w|fV9eZl&ݍڙ(!L.B-(ج2O|I5u@_,$."y2] -(0aqgI 8o8\ P3iq,"NI2؂ AL8-%}^(C9Zgz)^+.%,@Qag r$ }w u8+ ^<3..J?-Q=^_:[>)* ݿ1 #.B$!pL%#:i9 GK-\l ! zyzHwcDru_!܁6K=(e`Ф %"X67P$xyx \0&FGHp#w`k^&JT_wv {ToQlUUQxlՉ$(G=)3 CYio #*fMu <TY{GJ# f,t]FF`U60  |= .@O4-9-^  kJ/=ZH : X .sq  V!`LhziTUFnE[d$ oߴbfd&tYsG C *UF HBZRNqhx3$Ou9cDr5}J:f);W (UG h &[-L0}vwW-nw;O~z7^Fo|01e^Fn]Lunp] d_ }V?-ps7WNtW4dP?_Y>;|hBkc+S`;,y[ \olN){Wrdxo!\@[ ALCJ@RDd*=ake?:/* Obf;$M9QzN`Yc@\p,60^ @ LB\8p{{;D9H:>(X5J(3f] lxDIAuL#Y n&-dM@7A*n]I@68[w|*]S &7r U !<  '9 %zx 6 vLf3 m!]: Pu*<2-hYc# kX 9 ld  l  ]8UNU=0B LNU>tx:N|9mh]*en2swID,|i[^3bn'B +/;!pp!8 }(*/"'!  i?e|U'@0rbpJ       W0har!K?F^z/0BTHFh+#.p9 ]\loQ6bI55d}(w2*qrX[[[ ~P =)b{)U uW Z|Gz :g7& o I _dKnTH ,'+J~u$(P[EC,{W Id "` =C4;d h [r sZ5pA_ 3  k +cx \N 5YP$^O_7F8p+8Pf B0 KNpnG_tS "6 4CzlCf$ iKTz~,VO[%94vD:*7UNRM3QR~ q' v G }{2@YB6Xu 1  * W Fh2^wHls v~Ljn`~}LuMc1+q~Miz]1>qi?BVQ95u(3 Eku. !pU l nY/29D@qm &U.b F|NSfL' ~l[yG-n] :m#D4&36Ah " {6&i8)9/w)D/dFqiUIqD"Y=3gf6Vh[\4#)yDZj+\AFf+7925^A ;W4}X(+.H^J]&-4SJiNQlWj ]a A5;X:>&4?v<[ns_GT?Jba6S W=_(o -; '&Ix2<;n*:BZ[-&txX^zF7J=Yp<FSzJ ti^3mC0FvZoBl9N^9Rz@"g#M<tT,_[_5bk{.?'@;JMTXxQd k)S4, v! ]ln,f+ 993a.5Qdzk2~}it~j%FSePNP5@6 z.=JF2%=Qnh9j12|XJf  blZM}qhI*`s%cM q+%BwM7,R12|v"gV^"MKT+ }X p<k,HC7 RyYep0y7-w@w?{Kc&Lpav,lI}l_X\ +s,J()),X;ngd:,4oI#JOw:q]:*FG.~% fj  f'vLM"{4 =5uz-IR3,}%Ln!qm:,^V$XdW[U^c qL{8XgC@2-EJ g$GO!+L'f;`69&y=[b2&b|0 (+<-~lV{)z&4R%F^;$XvJb{A}x2WmCB98yf22t~_FpIBK$ /*[6-aMn{t[92*ky61. F#b~2K yb)>Ldp$,hm,vjpUo"UX }A>s0[Jy</A5F W\_ mHN.w*7UA*D:%D$$J [F. .u'"-Zzcm-J0Fn ojiI)<[m,^,s*G#C*>bT6 2:jLdEEsC=+s|:`{NZIYN[jeLR|gIp%$grv0 Dql@W"; k("b5 {3 X<^'wUQuW M4sD7 ]Z*FD>RBboa[ 20[P .%V/6GC2C6/T}'  W9)>i"WU[, 15  _fqzMf+!0 dI<B/}<B'ao vB[ fM2 *J "Z?6!' !                                                                       !"  !*+                      (* (,/9<9232(sf[RNT^hz (/8'*3n!]&!$/;N.f!SxyjeW&oh \Z]$+;m5z%Gs$BYaB ]^5ld;2n$G# E?!eWuqeV0p1D @u8H.+3mbiJw.e!9I@72n@TMi _o.Y&JzI(FII;8c^lvWl.D9Wi 9f n,t^jXe;sW,i0  0C^}"_[!w'JQ@2waTA@MRWTcwhGMUh[%XC,77)2i͗f =((' }:@,tQ 6;#4 "Miȇ5}#&)7'r?P =CF}.,s|G)Ƶo4G$$)&'] m=%[9 1):cE &o# E: $9oZ ݩz\"{ $usX3  .+u% qPܯ@G[ j,b/ o + \f %)3:4`] ##V{e^y K# / b&EߩtJm  CWV ;#m'|b`ZCf\ Mh-4"<VSBRtxOH M; wsD\dVDf B q O fuw=E q^Uzi9 # ? 4 Y"S=YF !#!48Fw<_ cp&a]Q  :Zc w9cO)g&, Ny !  IQ\W w ]Ap#Y8$y C<`  , 3Pk y n krwD; /]~ D j eU'GI!L av+ - {( V`_ `-Qt L  $b]3># #|/o r` o ="I~}9M8=#o2 p 4+U7 _ w{-D w4 w{ pz+^We/s*h G E$  guE{(}MJ O)- |K E 9 V|B(>te] &r ~*R VoFGO&pZ(L? U 1 . ||9LB" ]  |;v ws)D}v?WS D~ . mlG JfeF>@L I 'x  Y+DIS1   5 M?|2MC   C x f * _9 k d *"UHBoB%M   N v 3 DGh:d.&  $ X;vp(Po =  ju{uN8i;xw.ajbR;'+]@}90\k;A:/M96wr&?74N0 V(ii ]-w)E%,Gj ~Se67~) bCq ;i+sRLWZ]Ao,`>-H0WB74{FY%,DkbS|5b^9k*h!)6jDY Knn8Fn[,?FLD}I#yQDR,[ e(HbM'9D$YoT|Pm>v1pIuJ *#O",4/-0#RZ (`\o{fs.??Bm_@fc9oaWS.P'G%w8} BoM%3SaNu2(Jw('9 !;1+"         ''  Wz""dP sus#MrX"iz5H6t*Hnqn&u0a1[D=_zVr 6!T(SHTm~qUAZLv:&-}nRK=lR)}b{TV:( ,UR |m9{ . ey%.n l x V:bInK( 0%& 0PI g b,#P5!$!hd3q= Yr #>  *NS[B^ %*K(&c82ء48 7t ;(t \) .U0(PH +">1% bxRֻoecc  v3r cysyRTDjD%^(*  |ik  aw YK tR.t %V v *y&dAF w\to uN|o]3B\  7b^ H/V X&nK d>z+ N3}]fW  / `4sxY8d qR~C   AD6r p > mKR{L}3V2V3q^ \ %i%a+bc1 F -f1fJ&X<  ( 6zg'Bd=  6>_ PL5}{tE 1 $t  rztq+ln 5>  QQK@dj<,Ff s X zpM L g  nFEj%Y7jgo@ \ |/M,nz   1+]2$}C(Thg 1  [I  0rjtM/ .  T u/~ Yy6 Z 5 ws\)b_=%&O a0>#x[!#  =i 3B=[HiLT@Kd ^BgIps,6 #  3e J8+]zKu3: T BZH(x+ Q-SfIp} 3  *`?S?cR EDfdK;:ITt _VV7yot[FjL 6 ""0lP<H4X: L{.k`ptw&pAGm; |sypE5JzwnoxqF4I."0^Y*`S31#R7ibuEdopWF UXeh<e2[jXWed^[<]o,Po%IiW f7 ?Z'j ~X$|ei90' @D$<Cpd21 [' jo:t9'*_~I} v;t dI! |Bie^ Z ?=iiivfh13XBQ@tskUN5 oXDJ=dw)&U +s*+' (UO+~:($%dRis0Q(Gpta]3hzfG_EY6I][q@U]y|Wd~.ez{B7t"b=bFZb  =;;^m4V|0g@mY8JO@ 9Fz.&JscXuk?"{X3G%08izhk$ 2 NSMGz9BCG* /NQC;! *,,*  %33+! " ! !  V+"InQfc U/^US>/ UO*?E[K@ @n8+V&%X C9R5Lp F R5wf Q T  vfTWrCWO*3YG Q",LB $0e}'5 u?={bgMI(]E}74l{`zl1_, ye h1h`G #%f>[ۙ}Yx 7 A _   6W  / "E2{   <;'EaL<  \Xw"H8?hAG)^Xd  ]M) tLu'W'*|aqd0&jDv<`{Lsz3J;L9_6J7S,*V58~mu i$ULB^~ h >',`$P$1vMN M7+PYjp&FyCmR9r+ xn xW: :h"s "-p v%/ yQ ? 3o\ o [~} 8P.cEo( |7sJoO@ .S<P0op INDe6o:R@2*tb 2,xxrs`X0mVQUo65Y1  iSS_ _:+~B [ dX;X+a''A RJf3:X%STbv5N{.,"~` ~lUZf LH0Ohx_o/pSp r i  UE`&n S jB  #l  " PMT ;N  g G Ob3~ 6ky pX@c@p,b :hKs0Ujo(2Y5|?mF Hu lQ6Y(h!/AX3R?@|ZM/^UG{'XZbMiMDQaBdvQ*}T6Qjw6_us^G"UQG7MbPe~vs{3lX@hiXU*mURMo/I^vryk2w\fp*<XuzrX5vjN[ynu/NF+[Xbvl3*6h@M2%Cia5N^ 9zQ8.zC$%@aMFaf9; F[H.1_R$d2+JH%rYm ?{L ~]:&s+MKVoW6 w<^pMvcdx(5T.b3Dw&TK+y{+1Jr%fPxB=SG&.HU!$t$GL=DQ@Q;LLC/YhS% pO@*>bYyNuZ 5?a j77{_bcHrr\}fYhJ{<;u{Y. , {[K;@|^O! U RV/J ncf Szx8 5Ut f fxx|Z dH   uY1{l9 J Vv9fJf \ 5+B *" > C QLv%CyS|MeTmwE 9 ;ch& kOmjB & e Y0-sCp P_Z&( |ep_Q  hT_{I7T}A , BxYAc||(K q 49K HTf"n k"^WFK ^ *bgtcwY  U rV*  &Hx0$)) <i&|h)vmD v  2 ;?l@{<  /~}Ch c0= N0T dD 3FXb*_l  G U T%MIkwqDFG\i.V[ C B LnAQLQG Z C4!yJ S%a&;X6sj )d@bdU~P^2:__WJ,v\Oa;H.,U f!zF;aLNd tY)| WU)HG5]fz6[c!:OK\?|W* hF"Wbr"MXov"BU [<'B!Z, 6M"Hjlooj7J CDyzz$(GiY(u3,{/)t.vh. *@W3M tt$ ",Nle|3B"h/#k$'Hs5wWilDJwDfk_L'&oFHw\*j?C2d7"|}@"4O6~A@PtiX{CaM'<(}mUodv-:83_4}TxbhIz  x  *Fj/"DJ s P'dS<9qc5bi[f @- HX)CC K  x>UN`a\!"<$+j y-  9y_6^V +I` C2 * B$(aH wZD/{U+ 5gIU '7Yh~= [j " h)|h{RV%K" $ (`\{|-U^ pV c =<67@^c79iTq({r UL 5T z jO] UMFWO>[`  xpY[@K|k g  g6H3ec(.v  / w9zhHW j ^ ]&jfxh<^2WR6qj  eULIo2 ? n  )5w/^u_3]n LIwt ' co1 DF  Y E f pay,KOk 5: U* x; \  f t;pBo! 2MG; sFS   m {V*@kg-N  6 e e I9D5T*o@ ZS W 1  ](>>$C>[ {  LKC_5: ] w`Bgx+N'[Pj_6|yshU=_X^7-PU5?dRypX\c>NhmHzq0`dI3Puz' Z'.X_.R"dP}FxJFlR}h@$l=T~x7bw18nz ;ki2m_rM_j@[#4(c1e{0fKhxv Qep>-?& !WS}/[Q{HsF>*7>OGQq?qy |+}D90L LaJ.9 H1OA7yW\yw9.VZa#H)u{tY \ ?6my-K/]v^c|EmglTEBs-3M8UB](1+a$Sbn1b<hE2I9C~g<  Hvhz:#n9$o~$ X `o3ul4ZON@G,"~*9<s  ap! "i/ CD&C63 A p  ZmLE6Qs!Z) 2~ Lv %   _N_ysD1 oE~3 `${epmeK~ ft_>3 yG *I , [o E6:` H8 sC8fO ]ݪ7q; -P$~#'Z ; ;_P )c. &g"ܿoeP R HF )pw WFi r2>sg
`  zN*&9  3 [K C]y c2zA g a K 1I4h G !&=E1 OB; 4 = SyL YQJ^#\DV*L!N 4 P R-f:OwE Tq&t  Ji&u   a cz3=(6#R 5b ^Q ! 7f|RJy6; G} ] $& b9 jji,  (]l%|  PT e XOG  #Y  H  (pcF4  { k V( $9BiKRX QHX<= ) m Gt7[y K!Z  enXI['( k -rM_/'o)>NkX\N  &  . ]vDd/FN  1d2AA ;H(JhCnL iX L) gF|J / NN'1I X@ [Fo  :w`cWqO~d; | Wn;G. + oWqlV5  kOu*=  ZmTP2 u#J _ w #p$ F?@ >,, &Bx 3AOs'cd g2 UleFoX 8 h"=7B"}{S  `fiO[t'" R/67xg  oUe  OaW/hE B? Kz l @ZjI0>W tY |t BI[V'*d } y 9?0iR8  N~W R6S(k p?XS +8 O1+Wxf^ q c Rx*^QUsH e,^Wwmn! ` s  MWD,j"RR/6 zb,&n#k8f u   ;)sSLcQ \\kR*O   sr~pTxh  Nb%%u{FFox%{ )M$i<URXf63NCX>kuJB!)H%(2`vx^a yei?TPu8eB"7^bQk}xQ#%yHCpl^%&fHNVq.j.a|r^=/',=6,PoT K!5PwJwwnT;* {U)?Xu/{{6NUQI3Y%Az12_|Z*%=TW?"N:6Cj"?'.<WTWssuhUG}sh=Hp@[T9LdupU, *13<BLNPM2'6I@/ "''"   (  "%+% '/*     "        ,GB]7o$i%Hx<C/ 9]d}&+o"|'X~nu3z|/7@2CF?aG0PNh&P]yP$Fb+1"6~]9 !<Cos 5~\ SI5 6}+aetx i~!Q{= 8[j2rFf0)gb_$xT%R9` c cni*`q{ R OO)}FoX 1 * rWxUT1 h / Q  w9z}sjF_)hZk  r J{a ]eBlLdqbv  S 2O'{h{Y B  oPm*+%%<  jye3 @  ~ B WOeEZ3]O:w|V l1 s \ WI| N] m h@O)V+oZ6vQ . G 7mdAG%&Yd$ 0 {V!C}ZR4nv)d | D& _/Oeq|(} p j ;vq^Tm  b< .K*  m * ; =T17I  H  HG}4QS   GyH=1J m + cL?{ewPM YP D | 6>r=/%q3{:  * &#: [=_1  4 C @nzB_<  " qn|^{yD  M $G;uoR )^ jU"hk Am/&ruaL]A5]PhH  ,?7;&C=?;DIODh&V7e. ]},{p_Y;(SAL'ndA2sRsZ`hu.7m; p A'&)Ds>v&o7FG?yHJ)|5 aH0!l:%CdV(F2w3QQ2v0Rj_aA(o3sk_\e@Z3}h,*w5zDvjs+%9/@}oN ro(!8 [(b~85=W%"(v[zDs3A9=r17i+*CPP*F3^M(,XM;}QJPD^q6u+R=2_`ffx/R~}*&h"'dYkM,8iI~oD;zwH ?,r%?+DdIdx[ IE,>`d`v$%8!2=naD JK91-usB jq \^K#cZ&L|3k!ZFq C}an}8~dk.7CcB8.3SCA;/@oI9*@&];Cr<LyzDzvqIb][ {c_S`WH5# ;^h`6x|$pFoL *+DBD*Q^XS9 s =K \R5<oQ]jz)$.nzY YI]oRI  uV~y / EV~P!|yG2pp'#7rp@J$Dm*pxRI5hg{atv#Dg g ;Z9 V8+TpV(`!owoBPhD_ ``^p0va0'J ;1|@xpL$u 2~9B Z6=h5_i=W>2p7WS(w9;{> 3mh}}}>;0=dKwG7\ aBMjE{ko#UIFZ/;* $( nx: W Wba l v]X]C.t)YFc^^ v38Ag )hl]c cu H Ub3 ~nv ~ ` 41 =X/~r~:Lcu>Hww4twQJ mJ9Z&*s 1|! 6 | Dj#%1@u  D !U5 Gv;)H 9 P^9 23r?  w-  h 6y 9_HF@|8fX%1P+| e i MWgzn GpsIl Z ,c{}(")@$aIJTS +~i_U]rr d; TNj19rLD=cU Z$ }Hd@ wjf]W*OnoppaI1l"SM]q3G} _j.D}(L@ B)oa^} "{ 2;!N(@o~;<-B{0|}qV{Vu5:-t7]MwBn*'FKpD;uIq}oa&+;d;(.f-x# YNh@^x59{??m J|!0vP).W0[a=QH"CHQkkuw[s5R_:9s6z|v[=jlL.(NJZ[So,@P2j/5P J( M!f9(  +*XXJ"/  +/  L / ."=21("%~!* We,@!IN(5' *=@2F6I( , M5+"/M*Cd.;+ ." % 6+<B5 z"  *'(5 %.'I69J/8UL  !"82 ,B6  $ (<2~DZe]66M?    '. <Zh9~y T[@WZh %,_.61   @T=5          ","   //    $   $%+",1% !*9L<y{ ?*1kb$LU1$byCw~ 3!v~%$ ?N=DT@BI9 ,1$5+ +3/*2%   (. "   .,+ +/"                              ! (*                              !%$%.-/...3-')   (;E[mzprrP*eO:  3e.N<W,(^$^q0P0c(1J0ou2neKF5k0Nb(94b' 6,;WM J`9T/fYws],wV }xaK1z1m ddO G` :[Q 9O F  ~ ZS=ka!y Aq RZc $ Z w  T:hG<YA _+9_LKh #"%,DEs[HN A% d>qMtX W: :"4r a8#o$ lHN z( DJm 7lw" -' P[u>YE'  NA4- x[z R$8 5H*Z J x7,}sB | vM! Gd[^5N_[C,Ms6| ~ u6c~] e  + m`Z%@W},yq&cx +- A )O6p~7l M&$<}!  M_Z v+o4N%zE#82{ L 6Xbj h$(-rKk\hL~g %B<W'tQ! (v{D޵ l  'ph {x9$v+ LhD a-9cyO/d#b  Lfk1l  , r >.575Q&QbsmW>,     \b SX/]lZ1 /o[k*>1+!* $7-)%/di~5&   \G8P3%#"$-/#. !%3*J6" % $       )   '* & &, '!0  #                      &11")9& .'*-*   & &31+$'3'  * *#B3<?.,'"  6.& 4)$ !7"(! 32L&! ,-+'' S$Q >uBI? 36x =@m;IoJ9AK CJ7f_=UjQ_ClhT3;Euw$?N`? ! . vD>.D8}4_RT5  xm0@wvhDKq*A E6B{l]2Ww "ZNO5YO {z] vB~>, }\p:U _ q'p)Ck݇ R  1dkw w q% ` yjZ~ ]&O(I\ W A 'M J: ;+gU 'a$|B7F!--Xoڊ3 $> XhdUw `g3n2O|I  5 .24"t+H_  ]8} /< +iv XZur  1-2A( '\,]! b_mҙ Ac BV# =&D XWXx'9f~ R (K'vDU'D)) &[eQ "`(*8 Ue~ - V?W`YsK U $?%! Ǒ٬7)+" T1_H (b$Mw()% ~ X25LEjWrp0 A  L%$:@4= O$),(DatL&p%)"ثp  4 2UE@~]NA | A `"!r E aC̐<(o+m U /G * 7R09x, ~HbM D!s"U"a͈ٳSQ$)!Y@dd%cuKvCXx_ `  t/ o{ ? U#fu9+3OwZ[()_ .$ !+-Sw Q=t /w{52Qli!F@!O%%'˦B?'?, g ;hEj,xCi @ s |p>n[2|Y]- ,"U]uQ !*%+g6'CTxP 12TXK7 %#)[<:U "7-d'bwQlMN3>a~%HC&Q{@6 qqkLm%*$ƶdF !.*7L`2}6A <T-MLh r:XG~=w(>,]250\" u]*17&EDYCKsSd #*$i%;RqcgM@ #J,(n)w/l1I@2q)0G$9zt" t$"}9*$f3mA?R3uzkc)=-)ɧ+ !,2* N+p N^#$3?,tx6> %Eg%z+$pVt'w--?")"8)cTe <v$ t)W]#=FfR;[8 3'!,(%.-̾ S .#!'`E t"C`*E O Dd&V&L5 uU S''$IȘ-2!#- @t)W1߳e4! YY3%g9 C :V <7Cl>u{zeUH"%($aWϤHj\ 8% TY+NWS`=K t[Dbdr:W *!`J23TO  % 1n5*R } Kmh88, o 0- v7iUHp& 7H"2!C, 2   Y ki0|%/ RKFWiFNYo/6 K hML dXricl Q n.; /l6HzF.( lPn HI . ,5,b) oAsRzAthwq__xBl!F{ \H 0yuDR 6id7?@^!hC+YE3mh2tH"%3 9 lUR!|^i\OB!FMOK 0ni_`|DA]Zv FI Il6 MV}_$GOTXg|;h]|wnsU%Wc8(6Q_qfQ6 "2Mw+EY`cjtw|%i*BOY[6b!?X+ %9EBHPK?)$ 0Lm4K]nv '`!/-$z1g.oK% #,../&$ :Pj3JbtEw-0|,c#_5  (=Tw %=Sf|;s I}C ~T1  &%((& !.BSj'8JZl~ +_v7QpR1!6DO]ekka`\UOTTSSQTbjv)?M^l} )Hpj2f;{]>&  "2BR_msu||}}|}(9I^j~:]0AkD776) 4@EISar}x!2BWiy $Gh~{X,{N)v\E4$'1@R[l )7DQ]hx5DNWRC-oO*xfUI92/0/0:GPT`nw}'6:BOZ`fpy}dL7 |pe`YY\Z[Y`b`chnpw{~{.=a5.%CqMI|Z{cEhr]#yF8]i84^X-Yf:mYT @pD{|,[+iMmp$ o*GMD~gVxWgT%@}bfREW=nL P=y(c;ZI5kTg}'(8d=(j+Z}ZsU,S8aqMA]ZxXN:r%q[ 8wbi4Vy~r5=Q^_?st+fgHV1Fqid:u 4$P|'W`}x%S   !m@ u\(Fn<#l?awuW~R#BcOaW  @  1({{IkYq)}lV!~Wreu2vAh>~rUY? n E:v hY tgCr: +z1@KAF^{S4E.+`c U[ D!6 ro~36sp ![v;Ficx !%m%P=B : /86i 8 %z q'"fHL38;Q3P~o %p d\t:KP,& x *s!qb~y+/.R5s`Ir]{  %/"s \4KnC+TL  '{;j]* x|tbogv r1V$a uXCbLKN $ .&.?SG[ bU`*> Ksygbajn}B f W=uo jO;^9zExTzf`q P rs)sJ/b$sYke=.c/~G0wkiIz!<@' T {lEC44Rt"!XIFOAg- @:+Hu Ix"9gWkti{I )rUuiWS3 AO'9p+`r$a+Fillu,&wW xJ/tKA' -OnwfOjH+ "X QspG'KQ=P* 5(]P^h<5(;2 .W_iZ@y=qTv;BX3QI, 4=7D',@SG>2/&8Shy9fw:I!x6ESr';n $6"/ Svc3I0zK{C;uNsl1&!A0IS Jznmr(PCf$wV6 aG+.9DWekgePHCFS\tG^`a[E6+,0LxuibgmttslZC.jZZcm ;O]^\nvoW2>RpxvmYA9+%'*-30&)88/' )*)371-("  (,,+#',)%       %;3"61(   !$$$'%&'%$$"$&" %3&&lAaw]G78QSy&`#a>-~&B"6,D;S0y88^0cA($ZN+C@=-/sy|5 r<aH`B1>|; @ 2t^R9C>7lHAQt4@2>}VKc[ig(544u^ qYZM5&lE=3[ o j>Oa&~snnfxY|}k^rLVOi~pGB$Ee\`J\]?(I@X^`imfII3- 4*;^kv^!$4A?O8) 9/373A,$      % #DaHMOG?$4.  "%=4%7%<6&W,9<C  ).2% )&2.?\]p.a#=8tGOt^b9#oYj]_|Tq1VmxL\R 4w6 *_WjnNH Getwx}_[_(Wm-)Zw~dCe~ec<^~P+r<Y6A !Y9f+29oXK#stxfaH^=mUYs}I8{<P`uKOLd(]VAOxE=/~|,RL`!^NV(p 'n ,/C@SD%J;xMGn~ 7[V0,Rgc,_9-H52 P Zw4_]C*j54(~ :_LmRD+?\@`dC i hW!SQL707gl-B,I  L,\P1 ! K7-$-EPxOK""/Jjg/E_q2C0_)=>7UA~ u/ oY{!2q:,|j<S;f8r> (Kq{9S X d$@KnZ<ZL2&j.m>Mli7ptW {r m  Dr^*< /-]d7?&pc!`N:Pj!dsIh3SDB "h sE.bg @_;1RnYdi;zrBZ@ 6  Z P?x \ Ps_;(Ce Gqgo 3? tq] id ^u"[%khl]Ko7 mDBLyw ! (nYPYi6y$}gBeioi6,wN}jOg?Tq$6fl)$*u}I0DLNPD FFCh]&)Bg|O{q)Qs}VOO}vBGXP??GeT\hn_YKO_p}ty~)Ox1nbWk`1@G@2z!\c=UK~,MiDjR>! Q]%mpUSc?FZ|5:qfJKWI4~\:MJ !X {gC%-b1&$fl0qYlQe:\(rE?_6WPF&)-  Hi17ZLU2SR!IqDEe 7l<7(N:%($ 1L 8 11p}Gn$cG&\j]PU|Oy!mra&m z={%oDIwrqW<&@s^@:9@9zGvCXECe- h< s)@>3q~%5iNT6B iOGQ=6ha  ]%}+P y  NMEM;=D_ ]_R$zI(GY{a'XMBf_( e)c a ?!W3*XMP F4#YjJCEL>{oWl~zj;7"e]#RO$$vD&8!rf abrsT9\]OE_H$7(.%.:tI_?h.-#cWMmXo+]B$c~V^o4+@`0.l0I0 Qp_zp1;%ZNSHo,N&U* ;]q~.eR P&N$C- %K,+zW\_ Ybh < j 8G?>iG/lAS`MP-3qZ4_t= 67! 8 F XM]>[FX]}rrm)af-iC.yUp5 l e?z bC)j5a.n9$ J v|Kk/"~y WgTE}8W.CJcJ)M ,Eg*ZR0b Q 1[3Q"\fwK VtH1i+)m J Ao] I|K u-r7 kdnIy/$ivM2Hg OnG?!BE. 1 Df;1asFcQR5* % ~DVA>d@"4 ml=2QWKoG|o2}7M LAq{6 |!S$Yq"flJ#&m2`P:>*kLJ!LU  QylzU(ge-ojyyeFDtEBN $P  s}LZVHy-z}"g 6.2]Y*r~+"wfx|  GPc0 nDNml;|{kf$YqDSV.[@|ET:7 Bt0>-d)=GJ~=} (E-1n L:fm>)Xx ,ty+Jlgl >R. #12;X Oq. W7 22p0=fi'Q"Eu9zEO^?p$/z-4W53B.j=  \ ~c@l3JFOColmyuMp=~Fxpq&$u) _ m+/>K*12 @7H ucc&s6HEGGk41}> VH/ paB4w$X}UF\[x |fH3]B)c$tjy "L 3ho0f{=dm46)4)pQRF,y3l\H <y b;HGJ(2' w+F{[BZ>OFb*t9:\{ P;% |h&A5\)#J /E Fv3CkivsSflgM^G#|?$s9J9o 8`_)n,32-9XAERT]w^I0$HF;/\2P 'p!GDOX}pWDO=L+[$:NHW8|N>eO\5.6k0h T eF,MtH<BY^!r S9k$,a;h~Xa C,R~M t7"O\ lIfYDK69t5 (I?'kr-wn ^t^R"q^he/D@# +npd4pr 1+e \ L-ib(:E`Bo4ON/o 0|C$ci-/:V "u\KA P^+vZ=((6W@w+e[I >DQi&=Vq3DSWJF@81k@%tfVI?:1/7>BEUel} *:HS_q|cJ1~vmg]Z`acdlx+:I[j|x^F,{ojg`]aefnns{~,9DLW_lu||qcWJ9%%1HUbm~|qdSJ=,|{twuuwwx{ "2H[kwgWI2xmg]URRRTW_kw .@Sdtyj]NB/|nc]WWTWZbiw/?Q^jxwg[L>0xnjdbaghou~ /@Qcnul]RA0#{rjedeeikux"1=LYjp{~vibZL@:)I0] !%$/L\ZSb_oj]\^dWRAGJH;-&"+! hgq,w'+ Es$R7oY'+=pdIFKP>fdon0B8r)5q9@6?#Y$, &76DC9b;/TUMW060$ J&5.U^VLym= .*a722zqD& 63.3<0i wH&Byy(nVy9*y()C*y*kG7*)VZ EJ"j,F,CUHX()t! V7-J^/P6\ U,0>tKD#fLf v* F eJt+WvQ iCuQ9=5QQ9]NY;fp?w-}C $tuIBbp 6s**qs#v6n@upl:M`9j5]S&"B2!8>Q0*A f)/g \51')GN 7*q9z2F>-3a@G<~]T!/p.1.Q LUmG+ow #IaJ.:VJP+!MnAot nqACO~)`.0! <\>%MO+dqJ#?!>f5zi`7+J3o`GB+Jv0{ %} ( F[Se=FETdn8 ].,#'<,iNfj@^9jB# $Fc/#}N7 0!B^? ";M~`xL/x|LA=b9FZO=:mR9 9f39%()   (  21$   ')-0/0  '!/.7>@)+PS,  -0& $%  #*"%&#)C9 1+  &0       :;  '(  ! +!  " **    " "% %"  ! $&      !#!             "##') ,./*+($%#   ;+3@"qh/-4-P5 Y T.GT6AZ Edwzcbk)/Opx,?H 9+'l#D x- a])gY!3e6p{b A _G9;:"eBSdve b7- +^6F #CDo(  2/qQ*z&o/Naw/Qh" %CE=2re ޞ PF(gL Y"tD 4 K 7 Hg@8n !C6Vϥ8 0} MI}߾"iU,n!SI9* &)6  kIj-)GB`cq8M 2)7Op*4b{8%  ~$>) e ` 5c!; qJ%M"%gLX~d{-8$tM^k   OPndCrt.%[ZQ_mݦEq &7L'Qf[P] G*a&+Sv5bG.(6%QWY9 j -w}~ K0!.YZW(z^ȗ%R6c0|+H ff 2;E<#[Y+MųFy+)]  d 9do\wwyu*a@X*^*K (%$pvl 3 i_OAOKp_;[H}Anz/4 lL t6]voG`T .IO7`ʻδ yN $C݅ u |uiue=J3<'O\?mWƕ p)hGtWFYR@Tr>/ 6NiC} ǭ8 U )% {egzJgUErL88JbăwP  l~?debk4=n 5BI{@߀.r :N 9 "auQXgf8?.Rr k  y Blvv khYw#n77&#W= "oy^ D* L'1z ( 72h.  \ ; %"x YO $~Aq,~/ ۉݏ  B Q1 1 lfS*%'#w*#/ & Y >3KE M:|j S%#$hg!W7 t $Uy6m6V&9 ( Ng)WBnsE^t"U 4nt"'&s4#J3\}6fP2Tl`+v(/5 MW( vS>)N{g|?#XWy})GOs%MtxL~ tJaGjCLG<^~refA^Yfvq~<am~tYG?:6% (=R]fimqlxnkc\]SVMB5*  '>D>;94$Lk^C$Xe" z7vW \O$:C>){efheZ82axz N<ec/20, 4Rbj}cJ3! &&(( #%  '%%!    !!      (E6PKvYp5eDUL!=_dz[n&d^q4?#KcHmuw .\}ql!Tc  U[j!sL?;\R" ^+e782`xoGK;9_Yx,B r;q1%Zd@"fu43"J*ilz_7EznM|cNAH"`$)z l$"[W{ @#!e Q (E9:#2xWd~t\_B$^(4v KbFKwZ$R;OxJV>?bA:Ljm?iB4)$Fi*WVjD ':i@i)C f ! @]iVe$1&nJ[gU ek!n m(K $3y, /nIQ 22R),a  JV_p=whx}/gZjn= TH 4 a 5dj# A$""B+3HI(Jt. _d yi&(CgzsEJ 2bm g o> gy $j. l7e B 9   }q R00/{1T9 { @ UUj@:wOm 74 NNL6 {' #% b`t@Y(Uy3x>O( hC 4 !K"m&.J8   A?#p+[ ;D ,?dy p Gwu '1LA<)Q(p+ OQKKkV 5QE?+?'1sb!!Z  :4;QumS'NJJ'NE4J\w!%X)F h2  ! `g6+VPSIv#UFڙ=7U#`' A\ \n) ,<XEN1 +]^ '"b 'SS]U%_q L@D ,MiD#ݥhڕv 'KJ UeO &&W 5+NI@ $`]p%ݟ( T$M WHqa ZH6.@Q AD.k3d > KC*"D |(p ,%4B?*v:_Kgi {) P" ~3Eq 0A6#7b|7ܓZJm El d!7\ ): 4l%2fiؐ2X`{ gx KB) i }wm3fW`|2/&3 =!޲%t5<>#!^X ;)&I^.aw t NM_g?dL6[h#d[^ a6|QU2W ^Fs lCJ|;Va0EI0 /&f o)h1w{  / d vZYyI7g\ P: "Z?TJ>#ae)(g<]] s2w`q*( 4^s*,$Y8{I#\vY<\xOk-k?-  1H`{(:Tj~}obMB4+  !$ %# ! ! $"#!!$ ) &#         " # ""(%$$%&+),06868;;;?781&'$    X *Wr} f769QAL %d;o5YwMW]Ga*;3j io"5byRaZe=FZ:X|"&E Bn dk$jz "sC t =$C!\R=M {VxN%VE[ d] :dv{"uO5v_a.qDWtuBiw> Bt!\M,2[4Y3'0  E8Dh1W Q^U_I30f` ]SN'}cJD)2zEdr/l &[TUza\ 'AiVcy{(OFq?4$NIN.b[/uO#S@ mfb[3?b9A.%}WZY]y*DN8$m) 4< 0 (R2%(x-LviMrb_z ei=MOf~-xh-PwcQ`PmCb2OK+ir!fk vFxjLH^%~YGFnd4_& .D 4J'i\sf[c!?FIV '" aZl &' ?6"bYG)'iD1 J zN(`$R}0Y.lj(ݑv ;GFP-0qEE`_-2{ 4~  K \ pM;/m4%6sߒ!Y e;4 uC,nf(%;4 W֪mr Rq4 v$3zi+,E(5GspHgS|  U"E+*-|?ID)Mjr2{H IB6< R P El;Hwz#ԑ͆"Oxs${n   J: E]W@JKpW~йR%\u5L T9 CFP:hC(:M9!eչ΃ &} i MA= SH7L F^\ v97O#{1Jo'isp }7i Sm <+Ym@ ~q/ZdBMGς). - ~ kMkA'.&LV5Mt@nMhq)9 Io xP55 8Kou 1Q Yň R J [@ k-UT>_`7MB`P=Ђxpe%3  bFb__yD4l*O3 E6צ ' =E#" g tH p]UF/G)| սɡ9qh<%4b < Y Izz JU-i1thq 2v~t~MDXs{+}O! ixQ uVB`=De{R6 >$Oxue Z@!Q8(pg}.z{ro] #9 '7& H7a~19`>vcuIB %8 w6 } c{8qd_iHd&lJ _ ]"_:7V3sWKDs`*V; c&i4 [ V\t-H mP j#fA ) F AiWI:AE4  YNX35|$p!.|p c e s )% LJ"GgX- %-l z x = K$FVRbA G#}c wlFye'Mfh$S(td> "ZkI>4 @T_PF!L/ ( YPfx M"c[xQ6)+ Ofxj+,XGo2[[`hLJ ze Aq ujwCm{H P_Mmc[He*' z !qG siCUG rtX,1+Leh:aTn~L2[h~IaeN*pd9k;6L1A]25}s'5#~Zl)"GL NL g;Zl~ NT0x%C3?liH{Fj}GnX)S&,_ > mW0y({u37'CT-u_#;72$hflEu{-f,5B%.)[;v1d#Xk9S~v )#i=Xa3 V\ 0$2"OLb)  hl)"3UrPC$@s|_.E  hzYXk=2Mbxa#)tkVL  @ Z&N)kVV6'QJ1  O<# m  0'7Z]%9d  6 tovubgZ<` &6-0{Qn5,(&SHASO@X^IC3[|=*D  K}w{b5F b* 6t# ?=z?1#_^[\ZxaL(HTKb8 e;NXa-. <k 1=}>m_dZJ=WKa)D eN]jM_l,y_aJZ7>JKvP?qrt%L{/tbu"yu8n HOy$CE$2_ye;l5z?HimDFu\=Ctl?s:K.(Htpco|WG.;wo d|&} ?Cs;rESmyt>s L_7}h 2N It! PlT3u6x7|b[:Fb>cL0F+k' 55R/?=/~jtE0xRof2&Ho>4r/.bVPo^jD~>QY;1o Hgi[HpjSD[ >IiTNU&B,({Oy<GcLQ+#e.hQe;r2sd~Z&^k\el9uCj;;`vBb5bg;+~VsDp0Pa*Qs9oEu'B}si^>$%'< ("  & (</1  %+##      $9E>&7\hBr:.7\72{_B l18 ;=4UnHTE3Ul_zZz"E"PbVq{TlM\('99`^VK)0p7w"`Z+<z;Y?y 0KPl%Jg;X5< XS>jljM^a UgAZ_D%W@?i cu 4 FI=jo%dp3u2i!ANqq1$`8 Xh(Bc E]oj-,:yr3 4Hla:&6Xm =;Eu:> ? R~$635,  Y\*F>)] + TA `ML.oU1 B* \ 3 3y+N 6>]=c_B=7nz}`T z.&A  8v^#ky75L7 Cq DI%gGfgO 28 YU ~A_-T$qv W lGXW3c2T@SZ"  z0$Feb N *2q ^z@ $S ,geJ7T s,!~6g)]7$$U _ nE  {F '?)S >4-j$|$351w {)=CS R!oy?$* D n x v^exuU x!"sv '3p d g 0 )l9\ao3*Q-$2tV = g - 3/3grk]FV0!)l"_Tth h  ?< Y>Wz>D[8 _ nmLCN F Qr< (O-=64"z=-Q&# 7 f !F$}kF=N\H$Z +g$Md4 0 f _N?-_g> 5+C@5 W F/ . k?X o e {u0]xR}E#!C]CHOvz1 tUpN 9 H!H&1!#.X o+/ 1. ?RQy( |7ss;!N*''Z<" O" '-5m /BA7"4ed*Wol DE\Ue) a ^'$   <YA XH!5\-za'P^kWRf 8^YX $h e  j:Ld!X=):Z}Q-7"YLVaKX2EFRE?I8%)           "$176:BDHKEJMLCEB@?<=+(    &*048BHPST]\T\ZTNB=>;41)'    !$()))))+',+'%$#!"            D;)."*#:>?9;7;COKDD<;;95,00/7<?DMSU\^]UVb`UUWVVUTQOGCEDIMPOSMIJLLKOOIGJHEGLIEA?;:91+)%%#%0*#'"  +1 3H#$ $//; $"3%C$ F( ,+# e +?)+3 ; !"%H"9?<-J,1G48 #!@; E3 *!"  &O#*H)* $LV. :<L>B8 4 JP #D55 6D!;E/  $BD 7 4"=8 G$D.&J% &;(E$/ 'Q0C $73 %) K6#-  / !   (N  $4 -& " &   < "A C32* !/II#B#$B"`*4+-%. A)('" )J/Yx6JA;TE3) 9 2S;>ZP=I$:%$ + 6S8=GE!.6+>&$4 $:3  V3 a(?S %1608f.&A!$*3# :31!)7&"$% '* 1'&<A;.+%0$? #[&M( G:2#(*2(B " DE3:1 'E&)! %$ ~! 0 (#  NLO<1cY "+ (1$- 4 %  8-C 6)%"+'@3#i"0( 5 =:1&(" (N>*4)+ "JH LM34:% 4AA%:Y4%4 /.D"L U (:69+ \.]&@ %:[J [H< ,x `6 ta$#%R- 8:/<9*2,#,((i51"& !    R;   ';$;L** 9Z)B# -#)* 4:.+$''/Z 3 @ Y*4# /4%1]FS ."    (#&+/'IR)?.D1B$?" " :'#. 45#+, <0& #a-!&(!  H-8+!  7 <8&((?:E#) `Q2 CP@`!/& >2  7'@. =/F0=V&V PD2N@;3A7+5%'!& c W:-  c)|slq2)3%."V<;D*387( 9 !!( +%-&& 1 2B:<iGC)e$&;!z.7nVT9(3R16'_/-I*+ $38.)(-># 4A2>O Uns RKOL. LF ? M %!  " " 1."!-/$9+/ !BU!' /)F5 Q D   4X 3A%E!G` $$-3 .+.F$#+ EI)< #6A=(>C3' # ]:9%\NP4/DX@*->GQ4 f.,w 'F 2  "-G .^&"5 1` p;7CoC5 &RY;31c/d%=dEA<,[~X&=CSS<UW=]B,#V-PiGCHsj}-~S *$a8 /KC^*h94e GJ})z2k-7 !cBRA?xS*hw)H|c,W RM;U(? =tR<4a?~J,L%AFQ&iHW~5HD1u<sxhO*cZb2^z7 ^4{ N w >bfZ$ C6mC;0jJ< G-z41I=Vlz+ h]|5Xnar3a@oRM^l JScvE~r"dFrBE_A`w&Ud\` hbOg I"zH :3Xu$>oX}|5*yArtf HUK/y~Y;9 C=[BsB)(AEG]^]PR0sI}jdU! ;!K4?Us3A9/T!~CCeLk:"p~e94JRR`>| &0$&A^?Ll8w{IUs[7`i#n{urnvSSX|Bjx$UOU ! *K A>ZS`#hM&WX'M||8edz7m/2lU%}yq>$<<4!1H#Sp~BeJxIxsU-41;Ljv\h4z_mxzB}h*mVa>\HU76U.B`vK;WB F>>2 (y-(JI^2S5I3%y>}bMw2~ !Kv(0  `c"f6aW@COL\^M^`bD A'97w1u)h$gt](COwUWKQ3P:C M'J}~(bLHg%cv$kj,1#C@HJU$ nNnamS&>02(HLkrcV5K^['j<k93LL66ww $FTdO.]GQ~qaRWb7_0#i*b:]rU? P PtIZ 5oY|mVGAwc?UQ  }!kY7 v5gG |R _ g/rR3*"Y/~@  QmgzXmC gTP7 "0_1|#-~p "et@pVIe l YPZ5QbO  Hz2Af  wJ4@t&n!GVaD&e_ ?&X {&Jl %aogK@%qU r@Y}X._c4. N W bEh"`p3QaSkK(!zhoe?3/4.P4e~ b i G a)9 jrITu? -)\`>f3/GAks_ l< ) n[J_93d,Qhhh f kRQ\N !j] $v_<^ f\ |P sT%8S`K'UuGz35 y vlxk:l;n = 'Z%"#GfF-. qz (>Y9WC[UxL< ~j%Sz{9Y"+{^k% (%Tij:!;|    d $(o A=!p N+ FBrD{{f^-$1|0b*wBG}F"8 q m*92{  j 4H2*o'AsE <,J  b*o \!Ym4b=E Z$1.xU8+G: Zq7v+J4?<X3u`~ $=.,[8 g.u> r/=^zv9W s ]*Dr\qQ4 J Pm)jsvuIIM/ښ*B& ["%%Tg"CGO=>&S< H6y"{Rl6n : NSPzNd%4*q;&C-, A weN]W g_I `sxe{P:{2T1{+ "1.I5*cs 3RHYUP}5}ED GX X] e 'OBC^$' }+Pa T /WedKV[A7 y " o b8$cI !S~ ~pyOS  , : $@=Sb S| zTcACC?,PsZ0|gZkD$M9t4$WKn`5TCdV^zntYXK3aO}P}:qej)Y!#x6XHk9jeNJ63SqY*rD3;PPdB. HZTAYvS)pr3[c`mI@X']nE[7-c21T[cy;I4; G>c2K0r QcI/^|pP6=4Hd?4_f|=wyVmhi8dF.]1,srL# 3#"pkqn [Ux.wloCh[]jo2;#M*IHis&rgogxmD wG1 .q7(ihT"V_N|WlywK ] ZUL=ka" 0EFH1s* a71.av 2'%] OUtWfotDag3Xt40\ =4_  ;$Y|4BeYM94/Jo6PG] } JhTd*!6+Bn%8 ZLj|KO' k | q'Z-kq9HFsD?.B( uxjDvY~Q!E!j|2<5p!/=2\/? U2cZTXLjy6d:VHM[cv{q9 @M:- *Z "y'b~j[ H s] M%X 2O<>s F:OGC'eWj?_F D1  ~)|L@F  yV&6 /gN6FGo G5/bV7[e}4M#GBNES01d>1j iL&b{\OQ O,d Pr -F1oUjBkj.~SDd `PO 8qAVh  R bzI K7FK= !vY UZ,.%I)QA܎Jf D!e/Y pW K @Z| hQ ! O$c B8+n1(4 d)Y@H"I+VPSz$66<? ic ipS\cc; abx = *UD-[ X}} 4-MGT@ _wR;q%BiM c   z 8o R +R?geL PP')FB Kftw") HD= dbWB5#V g9l "9/>fA.Ztj\ )6%17lLm ]  ; ~ad3%;  NR&z^.7 2 > 6R<VZq )5/ m@Pqe9.@3MA2 v BC5 2 7kMdoMW{mVF2*Xmk8'8`)C_sNLiqdf .jm ^Pb vvkS.![|Wo|$".( A   Sn1zo *K"&-<RQ  YTEsNQ K{/Ib{(F/2]# _ E\kLw6 3WKOW4Z k"x; =ud_8iB&X3{%ui1}0 YۨZe [{?|vS2{> o,<1Pv*   |n :"1? 7y &q]L).X Jnp'1" W;6 3R re 20_AssF}x=PJBp:l;(-trF`f\u! FV{z1 VRo| lJqwwu5:3f MCoPM$!_mQ30O'`>  !&Lo;[ Nb=gk S2/52B8m\wPo61P'7D!\j'iB$9X2\="=}l-cW -Bc E  P4zg7} : S>}2"X^m<]  Lm Kz=$@,-E.  F3Kr$KRuhTxf(Rv%@H%-<(15V<J6 h! afX#tS=VQ8nIBLX,SnxJt0Cw14}%%Wg=+Ork,'CR495#Rpxj }=l ]k. jAL,p$fMC$M|DRfRs9gAb@ q;"" u?uDpVC7Sg`xwlN>  ioe_Du$_).rI-?B xf6Fndtzj+Qp4]vE})\$'4D|M`<b ,2jn"C}k? Y5ftKB+v>1 FG9![e:x ?tc+4jIpY_sNMCqU"U|UHmfa0wX:(w,=  idy5=1%Gi;?b#n' SqhcpC5&x.k>f< dg2JXP<^@$l_RG5' ! 'Zvok0@km&Mnd\zlJ$,ac"\u=8[<?8+_qR1pd?AbEm80Y;Q\k5H^>-,`ao{6Y#a' pp0h"}/V73ephf{&]>W$y)jb\`*U`W_99uaay:'h (D+)-8mPj |b]*"uQ.q?p7,K:OQ L.SlY3lycMc(^K;F l8&2Bo[:=Z8tRKAoB$m{VD ealGuY ]>UY! oKL{\;%PK}'Q'/CNz?3E0O4]x 0_tN_^[b95~p'*?;@q#)  %h 9 7% b e'e~D>w1= 9=Ozd?~;bMPh_q)E+iCVKGWK$W2<U.9!i+(vGk{1%]9irEJ2tc_Hzg7*;8AY^H:/q p\VH3L&@8 d_|AHD;"z/W ! L));JF: B# hqguC~z_Y(j3C- G yrb{Xjd =( FpjEUn`= z 4PG "y@'Uj{uiQWyZ P = (bj'#M.em5~XI@U)XqtI^V-0A Bh: |i. aE5 2 r'Ld#_['cNI3N76sJM\$7W] xlLk F)xwbBvAY(+w@$2A iQjW aP M=%+ ?M='@n`h[jl}!?"S `[NL uIeD2Ito#Ci2e+_$1Kl=c  {gPElqn[.KW'@H"m|KyMjO|P|-w~Ypp1G% #e-J.rix r(9MKeDcNk78F  "4:3iTpH \# ei'B  &]mX,&$o3m_:tKc%-a |wV  D{{["  rL88$=: RzJj\.+D1f#r' nemK.;2N S  l 9g*,li# J { Sy:+/T$\QMu&:   i H-g(< !l4( i. m HV]"` PxF% wX=f`1^j aA w=0jRvX[~b,U CZVo^7WsqVk :Q)\NC%;lSRg o(4C% 30< [j)qFY- n _ (m6j M G;z=,%USh``P+5! ~ ^ iTto)?.yhBd <u 4~X;$ , } 72d]\='L*Gt N?-Vh5tv0O]?NZ%e13aWF({S6X]P.S3W Y)rd KyWz9TG@j)V5%Cn3{7|IYUF CE}x OqXOHVb/h.N3O;GU!01J1S~)~H3Ta9'Gq=!FZkQ8* ]u>c&VMzQGvB1W.1A=#"|F86+ d%Ll{96Iz,i RA-G~cZ`5TcN:;Ter/{VD`p#'GJU^S 2@}arw m?Bip$|N6a[-1 ;Cwj9w+q o  2s_u _E|+m  ]HQsbRh#J*8T ]V/Be@ Z:WQw E[ww  g:Z38NQAQrakK#E%9 . Bhm3B1.8/ jMA!6GEd8fDC&[!JSR@3'/trpq"XP![ qV O1;LXha =\ pz&?m 3 HL!Wg4:-3/ HS  P}>H?]s|g [aFuL2 V@Dn BP rjOt7FLq=}:Qz aq= EV k ?<<{nD]L'Z?#O, bn-z-'Y=M y:8  Ot S6|b /AC1 c`-)ys y\Y  m9]*jd> W  p  8 r~b9?bqd9(zq 0'}$7k$L;U?#N Yy% I j$P63a.T P mbM[9#:IHET<f+, z /j\x8 aDxXP Vk3L :'Yy9<FK;o3+|E6;]?n8 wb_ aiz swj$a^(}01R&PXw7 Bd*7l"c 3/.7ltV4etF Ea&~q&U{a/ P6 f=y*[_y"S9b+^m2| =}e@Z!r+]#|cX2 Bviv%(_ kF%}0O@Dad05zCz!8w,`Z:+\p+U~iUjp8G x@Pf}I(O,-A+/ 8I,YH:Lv _1GpL 2q  X|x+G" j/}=0Ao bmc?7n  >g y!/hR03P85ANF 0o/YQyZ3!^e TQ1 o z 09 =)_n+ k(v=-LVKl X\#L  a9: xw > >X H0 ,He0_WU{V]@zH|!\G^G%VFe{@("nI)(2{}$x.C vEO+msJ?l " 0U 2)WyqKG$= X G -#Ar ;Kd A! f1w n" 9=rTpo'fJj fMH$m 8>pwn,r>xy+q: #?L1/TWu a/csE9Gz A4b+8R F,6j4i hzb8+WyG|(mbp^m Z%gyZ(,h/$j+q6ZTaVC <{Dy R{7q ]gN7k!/rvkWLRzxT~bby%%*?-l qF0>jA$lI=YA)jh<+o|"dY%9gc._- ia6zjR`^5igH(Pi2o<*^Y;4g?K;fzO3M57MMJ>L^NGQ_g u  2Y?DK6 y  KL*M9- $K V& A !1?v  } r tP}$t 9IAO/ Oo|KZHk' +( Bb$-6 ] $  z`RbY*F1 9 ?/;mT4N   u} :[]#w n \Ysyk7E 3 -I : eD>,46-G  iIpO N l  q-b71tES eZ , ;]mXj*O>E   kwN>SDsmqWgV'n@3 nE " fE ] $tj+=Y7I _]k(G( J Y 4R)F:Gt4= #hcarjC} , ]   Tw&CFw[h/s j _ KZU+4(n Ysp5   5oC~js8H R _J7 L~g.D> ] {2'l$O E(tn  {rhMMc1'Y  wl. ;t(ICk,H ? 8 x"7H Xd D  ep)f|L+KtUX/RFg; Z5;bR/ s )+ Fq Q& dln3{ q#OZ] Kb^M? D  "r kj 5~"8\|quJ1 C4YYODM];gf t3 O /aWlXo4[-M_[=2YtBsQim^.V})*G!Dm&z=o1 (Gr4a?,-yONjLfn@ %=!&tV%|oR% +9DCt4&hs`KEkSD 4hD5z|=e@zGDMe(W 5E"U"k'Pfj/]wB)aNre}:shk*GrfJZ 7WxHvM\$Y7VaY@S:|woQVj\H}I~{hPf8XF>![[*+ go>IB85N%<&3YQFN;,VT o6OZ.K]ndfp0 U: ZuBn[ ;@oo/ tMH4DF k# xRb]9 w  BRWo>;#d*#kN1AY]D~g F] W?lx*  e=Rv,8%BA0 f}V1/|_1?mPc |XWB|d 5~d }s]Z6+k[1L:H=T fkEGfAr\XZJ #y`<*}Ky zh w \S|YGRK:]2 0J Od.SS_Y!%V" !K&)Z$5}   q gL( %D=6I Td{yf|uSk~s+h&~d" 0+% %}]| ?^f (s[4sO j@kw+#RmyzKk`}LlFQ!q)Ps >x1  2HP 7  zEJGHtx; 5& Dn9IC@yikqt>hJ -jk  (fYI o (;4 aJseEE&K<LZM o %]~'Eq  X> ;}T1+?  8H@WyBOT<0_(kD2O,K_kj U. La! v!<  E|YyFW  B ?r@/>}w 3 *_M|\ Z> '6Q b6iN#7)82s-R@ 0TnE$84 oaS^) '1r#Y&M%f=IxC *8Vm z T7$ m|VH }l%Pu `:Tys75 SK*_z P rT4 T l8E^a1l\ S ),i-1dwb;mCU `de^^cKe2" #} iR).@<J* [P b ?hg MTh) $J+ NJ / 7u"5,*^!W/e M&\%#_7^ h  | 7g_D  = Q{ 9 Uk zN_|8 Q1 P} !hG@F;Rf5%} |'k K-Gi o i4R 4;<&K  81 _Z@ ![-XbVp1R^|M#i!oN 7%_A  [29t  O; @ .t  @ f ~ lYJy:i*?TQBtz"1qaVS4X  [ g QvUO  ?.RPavZ m q G JM9o'\Y+TF(; "O Q :*C{ ;L  0Np1K`1b0FMp  WpF(]`*era3!a(A#:Z_6 {jTYCk5Cly b [  `@,1zDGKL t.' y |gY 8NcYj4640[}+~22" V( o) f c#RQL2 bF*j M lyzEHZZtlCG. 8// .?- aFQ9!! L/%{9=}.<7TB; 46MNm2)o@k|)V/H8NL,u  J~tkH$-Y;Yc.jOhh3F)S/]Se2>I\20d~a;U 1^ nxE~HKO2w@89|q6 9Gh0~1t9cC xO!|x} !Huq7"6!_`u~bxgY Ja  ?)5@:RhBf-MI=m@@qvVV7*/A-8i'y( WJdTsZ9)2L7U.@D<<BnPdt^ZCeoQ Ca0{zHb;CVPu;JMN?M3$0FpI Q'L^}iS\xC0E+S /~Pf{u7qh~_m5  5JMMQiK8/%7^( rp2cA{B8MP?!DC"o$Rn3- 0FOVQ{ sYw|&hl<k_Yb-?}\n^ `6h)\01cs,' `P1bskk-|A}Jw5e7[ fSp<0 Giw4Jk _1)RCLxBC'>lUAB 8<Dm8xk(V\d) Pl$_k( I ,p w2C -a*.4#t5Omy9D[M>V  wM JckjR(p?9o&3`&" ] ?DO|byE)>%pN_&. |IZ;$aW(Y~ m n2cO4O&W>]R@MI"dK1Bb/W6PWM9vr.[lo arE-S2c z'Z9V=)~H qEE9QL!&7VNKR uFm7j8kao=}^-%DZM_:{2ELdO0h74Jygtx1C&#2Ih LZb@GvXo&g*$WG(.2gG[D`2srKSNT7~zi5W8p1b<='nh6O_31&%}m_`/F>t#Cn7T?ulWtc_x:9@ i6J\*l>d Ep# 9%;b,o+1`$>pZTh"0l;(Pvj#jnr_Z{O1o>Fz5e|e*UU"7rB=m#x_)mO-Djo]C_Z9+sqJm$:jy;fAkuGL8s>b6{!NJ`szmD=4<7l gE!Gx.$Wtvs 7CR Uj+*B6w5z]u@~&#nw&($"Tpq&gbFd-[w%X+:4T$61pS7L-9WK+P\-Zc&0[b|_DP_Hd1;! C:XngdMCeYjePG8|Qu;8,k> $RgY+;6 &K$W5yN" ?S//b!Dp3% }2qW bG3 8uW08iT*~? Q{[4Wfwc3*.lr:pr+1cF:Et  'Ry2q-+6l!H<9 ~95};}i'\0#,L^*[$_ ) Sz /#>BIQ aIa $LX< +;4CQ'  j?fW  O{1u_2`Qii#kTyZhj$  #(\y>RpJx!E+:2CZ8t+b   t#Ho/ z<$RZ&C  op 4 u^:6j[w! _ |" <O1Vd Mz?X6!Er|\*F=22%cZ&= ZfaB[62GmY {/ACNp oALx> 3tkz, ~xpO c]|A{ /DB *iJ&[0qWv]T$>' !F/r-M@ E4.[i(Eia-KSQv'y-"`l&3x_}3z ;8& n|gE8_!C%th  o {_NwL["  >yAa >2 ;$] K| mX1h<K C s|%EO!6"xT\i}uSJOhB  2ek c7iIA{dS8'(1JI"en^4 X CA+,JXNe[[] t ;k"z *c ,:d8*h`8|yRCDDln#1-iel|Q5W7sJz G8 4Ko8^tA _DP`$T A T_XkXqL>xSp ~=087qt(5=eWeeNL~r|r8\1v Zw9_L8]2fEKsnEJ7c{eNIK1DOEOnhL&!^;u[{YWBz|2KJ1QqR'fy!{0&^iF01CC^on`cS0?13sg%(]^6,6& wuOq8wn ,B!\#t:-_:_{ZK]% 7OV =b9zNM T*s _Y<5=MM\x>0Hx4-\>iz8P yyuBb>fjGs1>R17nM7Br ){_&-6 z;tYznU MX4?^|MC8o,dWS62SZ--/O_AI W!Y$wD7~3uM]L&/.HEvd,* ~-U^'9qCJ# !w6o,KL 131%|HgqDf1wL/L PeilhbFwPC8j$$;/3 <k +A xCp+KuQHa f /b%q';v#&%fW*aM%py - x@kr4TXQq {lN {P|:9 ]nBur4mkD#8 @jDJ/y}]e~uf2H_SI> *v 3 RA)cKv[FPt2{[d iXI}: daR MsXge:*9W;5@.NK6>lD[(H+k< 0=RT!Z`i< M* w Y4rFZ`?{ZRXP ~gG.a'kB69Sd#M>6| 5k:W]Sj#fRZ;b5y|2`c@J7H)}R3?;iPNtQ8)b(,=PSZz&i$1hj?O2D:c P`"Z{D=%9rWk83uB*D.> ]+DqbLS%/h>BqpRPMoBYeOPmu 3h>n &uHNP<|QS@d3d6 f.^5>~qnL< "ZLo@Eo!rQ|81 TWT>OM?gXxw9Tr7~gIKM(dGE_f^>1pvQ`2n"p[n?l|7@{+W\xy_%N~mfVms]`{I%^qQ@7gR# x?vu4(o:>@N]\P0 JWunyT)W}MY~y{sd7n5tk m&(O+ 25qZez]Xb~gN`&j@! 8y)J:(\-E-% .ZO"m}K  cQ ud[nc~vS ,:n z S[ /B^D3w*2 ^%(Q;K j /omO z\g "3( Y]+ jK2 R~/r'B1[D e.eCzzQ[H38F87I%]6 V"E v D.*dC6:g7lL8zN|7?` ~,2-&|W"g ;Q x :\$V?k! z]j~k?.^f@&a)n3.ot.YD}l` [ L+c:2!>S#uEMbv %5W96`8QBs'NHDp:X8=?g{ r V:9H D Ow.lD6Cz(u [^ nz Df%D>!Qi8 QO; HQHb # 6 V[rqch;Jp*}648% :t1`[Z=zc^F!.KS \S;EXT^%QU7f_:7 32~p7U30jyMYA , K+l T ? y H  dgtsmi"embWza.'aHX5Q6eo/;l1)d@$ 5# jU6=+/CvN`]K`xPL9q@Id0.8&QN@c^ 3x v> |r\9 >4N.7VwFgj: y(RGy;4@lh=l*wyl#GRnS"]t6bkd^TxG4Q^[n:YM;YR7WiqnlL>82Z4QmF}. ,&4]1TQm !x:qIe~>`~I*w!Tl)~j!Fw~%22r{b|~{!0nK '# e^kxO_#cO@vxw[wJi2Kyj{Im!/3j'wT_,hX( r `c,RbwcJdVYC!:XT:zi*Z\6y.]oi6'' Z`}Ta B'~?l[Vb ]sL@puK7 L2S9PM ,(R3 J?4?y 49M7 IWr[Wh:<7xBOUlmog {)&'HkTa]o  jjRN\.=uq |_lO ~xEs&\RiG~t]P\iiC|vMJ Y 5?C .T 2?c`Olxp6BR6/:qpeqQ QWxYE MjC*Ja{0B>;JuRzNY"hTb*%gj(zEFu#(fDO O~n2Dzy Zm'U{2s }m9WH:VXZqpe@DZE3w@/IZcVS`mgMlP2?F!vyZOPQ@vd%6BRMoS~_BX~,-^GM/~9@TJ5*  t8z=,u6%LV CYi$roh!\xJK<<$!N$?_/?|tkKabk0SP4pP.saRzA >PBg f6={ t] a^, G(^ x^5Hw  \ ;M _r %f=+tt)OpI!n>Xik \WfS82>jK]J @,48eOE?TDu'3=pvZ'!aYH!S+" d-;/.]p b-LR/RxGkoQa(&H!o z9up!T  C iq& v y p =`@#9(Rk' &^):%8)xq   ZvHD y ? J_OHN+R W)B4^%d#s.BoP O   {b.m !*\?q5(bMa$.Nzv}@P{{X- ^   z;["E[BL.*^sCY ]`G9tf$lNx k ZK"^WQ|JH # z Zs unjJ f':/R\gRNV> ZID   % YoL.AVe%w3"^3PeeS`~ [ d %'~Cr501k d5' ~RY y s u0y|6\UH8".P c7`n =+vI2E5Da jZ *3hd9Q )aS xh"W5N~8V&AImPnK;" *_ w DS wXkPEX>"p|[e miDzB}d)w, k     OK=PwuZf)5iKLB)rA+uI=lhyN,m&@o 2  i v x:D"I;DB;1;!?UwwNr^\{jP>"uJ p} M8 Bu (Q_v+D[3d*gtp0PM&w 1)I{y J.pl*JOJV"_t  [y-W5hqp%mr )A`yw ' 8B+nW A'PgP\ZF4D| Pq3#m8MW=/?lkC pU17 `@T*3^ "S HCw E\#48SmSB\(n-3QckDhi)qj Z ?{C] omZm   zB_v*X Ws9oX *- )6,i%&dZg *?=/ u )KB^$M~ ;fmhZz?@\)hJy+, K6 .wS :n39zY`;2YMjy@?L|)r{<N-4B# h  ^ ]`]Lh2C $JG r;"%p) sx7hkSMDTSk>r"V^"*5PE /$ V g$x|e9^&RD)3o0<1  m rdo2ip^lpBz#} 3a'D&!! s P Hr%D# $nRRdcloxZlEJ }Rk8 /C=r ]MHuN]T *>o XM&Hgc'{ ,)/TJ]!p:$aW+[U .2sk-A}%Mp $y8Z lz=o*wF`=) `W40 -i HoBs dx)\1;~<,/vX 0b5 ;3*(1 F8}'k@4R:\2$6HwIbK t-` [: 3f aW3uT=e" lF:Yb5{z'v))G-}9$,> LTd'dn { K9"` YDOY2~u{0DEW }R,jOO d ` CmK k-? %OJPp+3e.v'G82o!VyF$8y#uJo{%! ^P#iw?>"jD 7rQIB_ai b'cf"~')bqr3G]X,~, \  % =P\ykJZe~;mPCnn]^F#'Txx08bEA0"* f7) .,F^e@a,13S"aQ3ZX ci+[P{uZ* Y U a_Kngw  !;iq!L^z"/kq"]p*p { eaSqy31 EJr  G8cP$jtA~cpkG#XWFx5@wR8 fER-3,F16%0~ e i>VS_3:l? J_Zs4+n& ]5&e7^:Qq ?ewZa}HFiHEy:Ct4&Zo]`#oKXZ{z=(3{  z1\o*PolbYufQ:YIK"&sC'+\Ne{0bBzX Vy <9%vR6><cH4 -, N[TU9 *'iz|/U"mhM#hDDU/~- Ch}y%TN ~?^&OGCKKTZ~hg4WK! "2p{ *%rM}[gov{ QS;Os@PiuZi ~!N8qR(f3Estj'XxZ}g}lGm],X:G@14'[:}SUfgRUGqaBr^{9JuC2fsr?`Cslb*QngUa5mzTg~752`R)J&m;hl2>WIx +28xH_7YGCm`xC &&)..1RL^zxP)@ ^N +E*<^[qG!xm g/(>z@dJY~G@ZJ^m;eUDpg.Zlr5}?F/] ;# q;rw  1Tvrp+ ]i}jb3(mw6tLs#& :e>_S38gCr~8Gr6IAA;||\P y5As? cnln4U<k%b<CK wA6?j^ } o KX'' yp5J52~`s \ H][/kvC3he .%h}7 z`%8+dGA-SP``Vs!9Zx9WTtK&g{q`UYU6SaNV|Am6rF.?HvbVp(agY?N`u'K9cI35~,`v\rVWnUk-^{2#Lazv6_Ex{gXQvK9#CZB"?ac2ls-N3`}< _!b<yd>lPe;+ J;Cc *d>diT" _2e:qm\!nLN/O"@1d.9gR EJ *mj(g7UEk[KNAv* yi %;3 ]&?>u T Z1vWhA ? wQK~ v g{[:x5o.zf \ T}9U_NY&40C|,"m IGh8N&@I\1C9YH G5 !>[ j 1NU 2L 3|*VJ &8 CzU d-_IIs>2u`z71 j ^)"om!],*'T ^M;0B$ W\!R7 !< 3D ky"tZ" *0jX1T4 sV&\CQJ.qb ~kU~})^\.R.* 8G Oh E q X;sh `Qhl9 )/fQc5 , B~ \ QtbQN*%b WL>b$vOTV qgP:u(k\uuUN |={]y$0Mf+j0Co- ;_ +V >LjJpzwtJ$P>]8;J:Z?<(@SL>~|*%KznqV]`Ja =5o Y}V-. ,=rE:trOC$CP0T8k/1@qvCydT]r ;$o k-o^HWj|Iat W8,i+j"dQ #kYTy|(tyu#hl+Bt{Hz0s&=/,d9E'96w%>Ibwv7D:;_npoD#ytj^I{q$@fN2&+ex;2j `$N/Bf'1I-=tgUI$0IPi(LO`#R,.@<r>6%BV; H5gb?fI>ub|gV]A#.1_"'AR fxRT4-ayf..@=~dGA( q[ao\!U4(dW5O+.|\TDbg`;cQNYYboA^{  stjE&i*T+ A6}$-GLq9CwAmPaX&:6wJ6fog#HBCl.Bg)w,Pa17ty#^lE .u:<zzrx VyB;#~6Z1(ORa{--B.Gsy!#h$p$f6dM i/M ?Azuyn >4YNE22i9z-Q;R m R~qxf0s>Po#y8=daetgn)+1\WZ0 i2cU~QWnR0Hu0)c11e!NiZjQw bA*0|<s6er2C=W%TQA  ?M+5.Nuw WJD4b%[ 1-6q!>N5b>d1 y'hLx=u:Qe4[yF M-K\jpsEG5{0]/d]KPzV^"L%\tB1. 7 &&[;}Fiv I g ZH;ES1k+VS](LL!P)x=n,j[`@|_fuq> 9F9C) t~tAqJ *pc9n(b 5P!pVo GVn P);d~\a6 ' +N}I-naJEo\<(`B)#>@m|n >C-gJohL[ UBSy?  "~f=ZZt)mg`Mm/|=EJhP=%+Pl&_9;J- = =rNAj ^ BeLJ"dTLNm )SKMG>SQkg@_4 $ $YsFg6kW^47 Zt JNg  :3:fm1{_MGm`\w3*|AV#zI(Vj*m7XR0*j\}qAU`/NvH G JPP< Ax~iU;%ND  7Eb_:8^&$STa.)eLWS-7lKq Z| 71 )C}MwI6[]q/e=.b3<qcjv"wkK0;!2;H& T ^ TS J eGLZh(YL BZ E_5ofvw&@SJx}OqN!d|:D >A*!Z\sV 26u%Qhf&`Mvy !gF%$-A xz Oiy(_i2b5_u=o E _<pj{r"n:d:El*1;_Nq]i? ^"Cw Z&5_*Y RC:/=P^jrGHdjWu oi M"Z Ng=Rr%1 FD  yhE' kz~ RaUGa 4 VHTJ, Q n zF Zv cjUJaq;|[v 'y t 6 4HbjZE' 6>cQ6f9^'IivI<3N!?^cE ; Y]$/" <5Rq2$CHZE9I.t4k?6$ng*U6>r#2m,K;I<\>\Jog6FETO`s$EF y==a]!T)cj_s--Z{et1?P@c6[(^X7^l?mx|;x#}Oo)),+2 M;VUw)X cdecy_c~tkc\NoxeW1Z;7F\l_xPYyvXFr2:I:Rz}dQ.1Y_x?q2!~D!hGSp EjidBXmRtSY*g2& u ODqI+{"+Ns9@ sXogWmN10gt=AG^*9?'rHv@qVZl(C,*okt/RMOd?&oLt7kv8l:NyH'S{.7Np!90q7-fW*#y;rZ{o*225Qk!\7MILPyy-MZ:B_*Q3Q EdD;= |QqA6FL#hwm}(Sg2a<Y 9QQ<a.c_;~D6u)&17K+>iw7Rc`t0Q?ckBV8;\Av0Oe;*+ %nTr$8 *jg15[w!@nD%(Rt Q+w]i$o~ :o@9U>QKV Sh K~22D6/>N0X 8 " iJ2 ,]q5pa,5+:="O$ 2|ySHakSLG(g'56A)B 1U!Y {t7 'p|eY:J8kw_ntr/w=MZZ.R Pp:=`Q%P2| 347#;շi d!>l]!~+6Nn2Q}(ZQ1-E y!S+1AqDGTZr)#e6+/ e `' hnHro :E8kqL27Z )lpd-W*| l OT)T6vH>"zN*Z0$ #sc< rA hC;)$ :17yX6 z ,Wd IZoO(.owZb4|J~! ^G3 q r%*2 :݋XM W f7JI|qLk?OM  #J<X:&iX$B)j.2a)uWeASm7K ->g,.l43ioY>6NQY+/]($V"5~(D ?% /TAD^OWDFV eA6%4[}BjW4[ J S E,8IE"-DZ031-VLuJ.j2 EvKJnkt}El+QZ\9o9Y6\Lu}6J =m$!GK gGb k]P/0NDaih:PUm1rSJ,uNi7 Q$o4 #Z&\iK$ jXIcwQqFdDE7(-9sly!}) z\65F-t< F>=_Rg?}Cx} %x<H!sUk)'KB4>qx<"V;*h_y=$Z BjX2Yh(`ReJ:VR,Z'zU{p1c_z &0Vy MMFdJ  ${7BTFLR6#B")M(@G i t}Q;i<3qivu I}J>=y36 C$$(gY1WUI^ X wL$~o9+[ZKV`&9EW :Z16IHtX]oKI;$lLSEd;")#auK*/ &z3l]61P>p /?C;Q\|{ & %W{Sda bWJ[bU> W>=ZY($|i> IF @l r r+.! }!B^Ph* Ly)>Ny&..uAC=Gq(@y^BK>.!|EOl E L HY(UQ/=0mFp |cASL  OzK[dHy}:LSHG(V<rq9S rq lUxpOZMG L C K8x7BD2V- \ q@Dwq|HT| &:/Y@w>hbrcP[j$CiIB#  p'bd^x1]r~nqM6^! 9gF$5 :fAtV5.h`u mmM*9 N~/L ehx`ZFI]"tNK4$c|!qY:tj`S$^_/!E9'q^2{-u{"O 1+uoSTNHBY-6z?'Xc7 5y;QrF q^UKdcu0/a9NN#j6 V 1.cqq& %^~l`]|j)|`/V\=B4 WRQsh7AhHDde.mR/JYq@`:.JT}UsFd90Tz_hA?tDH{Sx;>e(fp(00pN" , e^iCkmGgBCdlVR@8Dqxp|().1L 7K?QLC` s ;wXFPg7D* 3CSx,SeVI.;~\e)cfK(y_r3@ KnUng:NT\RXzzXop}^BA]Gut9A />dQtrFWvK{rcX]yr@}boLjOyzd?l,U W;KT3g:GY{SjwIc{_[{xfisEuGo`cB\6W?W[ZE2plXR{p"zoN} ua(Q(3+[>.|cYWs*>Ut%^iXX#G P}7v[K_NV"Gn.}S{RDC> hC0(To5Et 0So%? O> fHUs;7GXG QT3 u g>b{zP7A\M K$ AM1';]@~vTw}fx/F'4EtNW';)RdA qMq@f!1;[-JH 4A&qR}ibnz hC 3"5\KGb0dz'/N ":0F$y(Z+~<'  4Pp;1X&g`P%NY2~hS8vt =W]lTtCm'xQ@yC?]Yao>dYQapZ8E.jwC GMH' .oY U|f*YTs(JfAo{>Y4bbmp S "YNBFZFUD|[Vr.*NF%$'N.c_dz9@4Dbh|E>YJ NhxN0Q+X?luHEB<i>;h;O)](Gl;|Y58f{g#VhA2 )(Eqzbq;2I~ r)(\5Z!`5"#/@=sVxFh'x{{IHC8{uPN?=s^l^i4_`wZ6(U^p>f C %#Nblv,W%O(-YxoM-w1$r,ic rUhBrj  dk5j$lya- GS=) '%1 +h^dO:D d]NwB "KxW5:' %$AW!\Z8Q)c.9O!00)n{:IVT:;3rG~{;4/ wIk}?2w8E^w , ?HV,h4ry`LFj3g=`+5g Is4mH:>c`-<V|]M\?-* #6ydo8LbCf<p\mA6&~3|&5.bg\;,Ep<gZB?.21jz`? $PMxx32d6S{%veh,w{bGHa+KV7I!(x w26C.4~E)d> OU5'g-E 8A0ivef"h6@`U lXex-aZ9AQ+~?K)7][~y7eQAQtAh> wcjJU>JlV1 r`D(Eu# x3|N5wEM7^7l6bFIMv?jET3;OF^xkh,iN] mSCF\]3E*+4Q|:S8sazsj{( ZSi Zbk:'u kFdJb ~ &yUXomn2 .Y "03_?:5xPxx[$`i? }  9S;[{AW@w}"2T(y1}l!%Os> R$O/).T&m]Yv#TK![C-/fGpLTEw&j n  TUXu +@G|YCYk%B'V(A>/\Cu)X d6d#nfoOy @ -4#a@y}`E^ ["x<j|vh!b[]'/""2`JGvb?c64hF^s)&bG.bs V7KHZ,Jn~`w*~4 LH>m~7?,Y@3WY]zg~ Qf e-F:m8un.)j8Z$$d8EeZLc.B m9I.Qc5M&JC}o~':,RfC '&'Q:z0{Fju^8y*3~Qua1sH,~Fqnx8))cu778 p;=>d:-6xjZ?..vs s=vbn>2eaJv&6&6cW\,Bm\rj&'"{.Ko,4fyV7>aVIvH I2{$_&wjDg~in0*9 JxFeVPP9+:xRGfpwfE{C\#>Lul2PF&n<qgv BLBQ.>SD4gPl@kB|H8nT3\h\y PH.xo^Un5*e_xp.Prb'\]Y;+Q] p&o =^ Anf;K{u6iH w<'PsXUpFUE $'W-\g%R <0 2MY&\wnb0DAu],)<ZnYEy,f p l?w]~inV"~s*eh}IW],"0i:B|A5 V9QzF%.5(^5Uz1[6V8N87zoN:%9 2kww_DnjnGWtrU>2bBcmG<&:+-?0TS^SSLtmQsUlCbV'MltQD3JGScG\0Dz#xlz<F<|M~>tkP=-0;{0qvkldz C:ll~E7CM|Os)d:]`^G^g [!XQ!~(hxvGDM"VvjR,|,{ Fw lD#h.rc8iN/Qe-Ox:5<<po>K SUSWSi AW91 guNLA ]N7m`:I|J/(;%B4[F@s{>*<$^3hyZc33ZOnPaW!34A)z&i\sSbO1Me=L%pFA'yLb>'hXFNKuP,AHo]QEEf%bE\zV{["p17%7aF8lC|UGk5\`p & 4bi>KRg%/fO>'.5 sF+l~/F<%n{$=2LBE}Ijs ;i_l\F|m|Sd+"?W=zN*]kgvPE_Q@I.eThT/sYo )E++~2F  8x05_-**'/u;<tY3Ndptd|zbo,%zc9dK*g-Q !Rnq{:n_ teZ0 K3EkrN*\f=Q/d2cru;>~4p>]AO:!<e,C89o$-D4c,_3hB[t1;(R3"D,Q(BJNP%-SuCoteAyWHpS_ CFI;snJl ur%vl{YOvC%Eggc&(7D >M (pZn=v-$+RC,!.2)k-79[\uQp:3fV7\ |*LxUYKY?DqM.tAX9O.~e.htO*| w8G=-2v{U_AMPTg#`(~ byFNIOqt|Rne1>fpJ Y,2Yn^<qxK I s1AB:[gc=tf/88$ov))@4C\*6 (;CQIM/?MP 2Qz^G%u|AliSV be)2(S[+GwN@Y>=<Wzt;]duUPR-cFXG\Xq}#v.JL@~-S2l)MQs{O;7 X\=]jWEH/^l[P"?fkQD>#ojE-01y:Zvg=R]ah?0Tf.ByO -2# 9[Zi>E cw|~[uF8z5 13i~s);(\QlW%gv5*l` GhoZC B"f]U 1E]NHqq&8!>Dx4tQC- cff!ycl}zL4G,'JmfuQH1+[vu p'"Ou%;doOAla?>}uQ/ri~4|}E.i_=c~TM cSz,Z/KKX]aoM~m0F`ujQ~[0j >S%O`{.pxiz:Z{\PC#]@!+wl$Sqsrv.iX |b>EvkxN!rqm#~l'%ObR'LOtm|icYlx4=5u]`PCP 0\hn6ZLTl,i.$#`-]t?| Q[m:'5>Cyd%Vhip^FC;ND/#qTa+[Mv5kguONjQgo~`O$5(7hFTk~F:Gapc13uuC >2c*gf]\s*ky#)d uuu@NgBsng9riPYJZ))0n 7Pe|"OzGU9F]sJH&u.|Fnm(WlMwz92j[fuUGt7d2:&rV#l"o:F^y)d3Z;X%o\TBN9 T^iH7-AH UCYSCBCr?b!A2\]yQ wy1D7Oc"4mxNCP@_i_Zh  g s S] , BM@W3C*K[F9)%T$y5}$&E ? \ $:+ʩT& koc~=tlżυ Z3)4h/r ' f NlZ[TDLwM:S  +BsV4(55 uh:}c<= N qL#hУ4%2)X ;FaP 0s]^ͻ?*L #^ tF@I+xI^ .)cHVXB|u0 ,&"j 9 o0"P { G   # UK lNc׉?4'PH5B6  o#PB#g:0jX34'*FRWkt@QOIHQadK}\ 5*: 2WMڏЬ>C=[AT)s  fw U /] :" cy GguWO^>ectDN.0h}0$@z Xcsh1,8]ޫV;\Y8iB{S;J @b w: i  )@_g;BnUy' &1Q6;cp O <noc 9me8je{!0a Qz! 0T9E@_`Xt '=^(NhGjLf%a*,\*G H=`O[}g  on+M f7w; lN v%@_#/ RS1" _wGYE,L:;,  s `JfKijKvnA|& ($R hS T;3nvJar WJ2?5 Ws $ ;D QOmBE67}+Md.0O+(0Wn)U+ JS}jq3 V3e t g_$>  0 ! }%ETYr'3C u(GK  ߭  f+qw fmL2P0 dc3HOA(>~7#I$/- |xD P z'p5 Xi ( "fy,7bX +L)X4~  0kD; [ z DuJ4yN   o90 x}c9x=9:06 [ WvjSgnQJUNO.d /Ck_;E>Aj@ 4g ;pT e  W : | p.4@{fT*.A7[%D:wC5> hQn[Vh} U wX#bcWx su{[MyT  , g* Q= kSy@[,[ ;R zcL. id sD^LTVV*(]/g x n> C 1  >\Yn2t  Gi 4m b" HB0#Z VE8 H   Z {KR +'vZ \]4)a  U<M = f^m g+c5 C, HzPuaEf[1k w JoL| Sf~[&/doR5R \nk  \_\6FtT&zy[Fe&C.<e}aU*:SN\TyssqiC *F g-g ]pI}e9IF40Z_`S;mHropI-$>Gns]e}TeE^|wF Wi~.`AL ]W$tfqW?22uoYZ;a_~:; &{mC14!]/)rRehDxvn=z+n {_,.RQvl=Iho; (mNhB]|K r^M'(! E r}M@{o#kynjU 4)bdQr #4rv  6 ? J t >.jUx dZv!^i VH>Yx Oc=E+`A{j`R,vt%"\/ K6'I ) V;zU 7dz^^vV  njJ 3r{/JO='8W$%EH@SS`T" 6)l Q I Xg734L + e @Ci <T ~ _ `%$6% r N{ g S G9|  !XBvwj{5( Ff -,l@- ! sw ;h6F ;+- -6TkiU!PR+VY OpR&9 [R#B+zWti>!qQ 1>- l'8;=NݗkaAK2t)yX.   '| z7n0jcf2pk\N0;J&y3@TMiې! `qX$  `L/Wx ZAhsn>C*aHa# fT3Z;n=L#w/q *9' _At8~EehS~-V1_ݍ)?@U# HcWZKՒtb13%*>] 2d`]('sXOd 8w ~/> R=(Ac kv: $ !^+ 6 @?(FFx= !B-A 32& q  &V%+2FV78GG'/#!;D{ D!g: 60\:F( $XEw[r~ : DGDDp1n8  <%&},?C]l 8&  J]Cl`nBn.!{,W&$bXJ@ TQ8;{_SF+R  2V j P-O?mpNa p / gK'Pl\ cK.#7Wu } ht c E^.^_S[Gg4 -BF V i M(~ZigQ@R h  K  Ow yCdsKM||OkF@mV?1yI}cM95t`^|]#8QC" K*O2 E5-%` j]A  1q W Wp  3 ]! }u]'oJ7A  D:O VpRU\Xze3 , YR O h(CgmL%Xk :; ^x }L% o[! < g|[.[K+ 7ad PZ) $U, ~;A  o;aA ,I~ @ `Jo, T=Re%E d9-'3 G5 i6 = Vwz"2 2?=I -@/a)q  kSB bK{7[(pv+ zfW(D-kt " % y  Qo13H>uO   q>p _=/x 8 8\ / *) mla FyFOj5tkIF BP6w /eM z 0 u?1 Df 1(}@rhXet \7!He4. |q1_3gUw6"cRX5 )h )MLn /E ]$vQKB3 ; 30[ <0^9Z[ -LS<D n3D{ Sv!S( jO z  )2l| >>6S| }" f#&m F j H R6bMXG \Sf7a"tH J 9 ) Bhv9%AQNQE  N9 .h@>) qe^G /b; ! x  qYS|)H;U?  8 {a hPe.=,VvN] RU]G> 7.n ATy d ug Xak >,"ݰL^zx *& y vQ G 8 ~.M%UY z 6 i~]{x ?p; d^4J| +|v HW hY QA jA`{Oc- E0,|lf# f i5 m*42y \C J)"& K %@cah=A*U@[QXy9Sh +r 't^ 3+p Y %| +Z TTOk@ ] Q1 j=[yWk. ac9 +I >-K oe" S P >C  V5 l 6Q72[M  ) e I  V "l) }$  " F zYgPg u;7IrDWz6 0n3q5U167x  5 $} 7va A)c~|I /)U 31T`0J v1IB"# . 1cBk v? IvPNtE@ @~ J5=*D 4U]. pn> 12U -TCqJ5!MRPn k Y Fe \k9|d oM&q2~UDm >p M C}B( | 6cx7xC1 T | h ^ & 1d7V'x 44IZ SCd^C} _ " D 9b 5J;(Z@;8 E1S z@%;\mLI .dY4Kbv Q,[R {-J@AH.` T]X*S+W&}`z@i;7{DMx!9$o?Wtj*LEU%@nC ;TB{FNo64Q'ByjqQ-e\1H|R6c}Zg?>9ACyV_*;)a+bU"F\; YYGO{"YD/|x8p>(hYx2rS0b4Y _HV|y7b0F`7p#0]SjY`i1Ht[*IeB|d??t"((<"m9`$AB69DV;t>)"Z{V#V5&I'1<xG0J\JG vjaF/1/)-G4tI@0-4KR\dBrF>2*IE3+.55x/ad"0i? y<#a :$%X UU1aoN6W1AS.pP+PZElH9FnB<aUGlZ?AR8P*M]e+d=ffg4g.URO_}[@jAeuy GrxDgV *gS-L~{J;HBBkN~==.9H TOQ6T85K|.IS-V-_I4 O  H`%0mt\*(0TT KJ+ pj|2T9- jx>W9t@qkuFp| EtgStp(s; V|wy};0l$% |2N_ #.9 HTYH  h#*kgi`"2t 2n[ 55V= xPWe 0J-nFY8 Ro $#]' I \W-"6%pNs4 4 *pT~\IO)7uU D@6h!B; ښacڍGO!E+  BeUsn H0|s ]x tXX:9|V@4 C}& Lk DX.|!D ;k$ 6wo Tb  c }k,2  uQ#pN\Y1Qg2(.Z&y{_b`q = pBJGn ' w_?Y  CS e a5 y?*{ * Mb[/-'in<k _g} %jS a8D-"D>T6 bB;5wL%U#'+iQ](G|H|I4mpNDS)p,dH 31$')dg#odS GZQhq0 ps_'Xk:KN,1= O%+tPXpG'-1|(]K .q@c %B c6nSC 8_l?8rZ |Y6P]2+5^3',߫.G  khlZ9 N ;P4[E!h?61[k \?Y"0l;>~EGk(" NcJ 1F'}z-k cJyCOc||O@<eAU:2^X0P7@Ku ST; yQbXYtic @ c/ sC eklvp|b qSuv MCFG(h` abx 2mfd|SBEBM3EEV( s?P >91 %LJe T`O LM7 L- N77DO y $LDf;e->\.$qaGpRO   p2QAd&  L CO,4/:dqN zOM'` OX'd(1#8 @#8A iGt2Pc?XO,&;$;i ]lwtTb_x2(5  U [?SLGc &=G:Y'rGtnMe RWC]O L.3iiweP[h"dh&4JDCGH/9 nJnsfnUt* B!gL +-"do$M^rK3=44aHf}6Y@A#0;c1z^] |r qmM9Vp42bt&-L-1xJ{sIVyjP-R'F >KjH1qO _b<1I+|SM  }L1!fjZPxf:`ZK"'"qRThQU b Iqi@x W2J[tF OM D+zMMObGLV%35CD$ &r$(b. D 4#XX  }4BZ 7 hwE6[m'qY} {><h;s[TZY Ma[Wi#~%#z80P5: Z?u/jV+O. Ne|cPncE) c$N_u` "a"I i#J,C = n8 DV8s-W TEZ'cE " U\2 WCxm"5=K$k48vKWY Rp}| fvKJ e7/!'< A9IS:ZV1f_L!nGhI_F~J "%s:  qo=oV!n0F}{.u- O*N 7geQ:6#t`r^ h2K  p] 6m_<WpIps  zup>WcA1q<RFL"Em aU? S KG}%zQ# > OzOc  R\O0-mto # vs>#r  #"5dQTe{PhX)J(UKpR#i VQ"$;nq>3/Wjv9& xIMebDX  v# IU? bkcE;:i:N64/ybxU$dwSA* e N@* 89 T DfbJ\\B\kbt'H[2 |0?g*;y7[u)Y 4`'a$v Dq/FH|(F?C?7+;0,6vo8OSN " >-W):\l y*Kx4DIR[Vi00D: 3 .VBGv*oz8P( $%'GA>%#FdE67:tMxyc_n0l5 ZT"Bd=g{Vuc !X.Q/Qm8brw''sqRC` X.mM17KLuSYSa"hL!1GuMSy"W^D-pVNRp8D 7 UKwQ/eW=42}RzBs3tXLsu@'L.6}NN[7L4 9^_X iD+V OuJf;uZT "Gbs}bJ4 L]/S 6  T] p! xt kMQ"o$w/Cu1*f-y]Wz6sS";s1A_ |NR*0 Pd\"@,6p$sO ;!72; Ktm-Q6 W_#7Z :y.V]i LF\\%/Z=SmY^\afVS}x#w*fTEKceSIVEU-Z\HE/3j |rZ'fK>V2k88fazA"ux+s\2%!fFnVO92kS5dq3'Sg@ 4&uX_n `\9*4J$!Ae/x  ^!v($.Zi$czw|9W*@z*Jn2l^^\]Ny MR^Xyc>;#kPb_&yK^7RY05mO5F<i5o*  {"KcMVW-K} \K{wfxqkEB G.VjZexV K.p$*Pe )f_m\Z}[LAig2_88LmHEqOX=; ^Vg`?JdT`v1 @_I qL06FKac[&5 CayRsXc!B oTqEmbL6,l,uyi1<-tA[?R_$7D! # Tmp#jN\R<XTe6R'(B" HSx Gqb;D= }- KnD[6#RgA|sV,x/k;>@N lS@p@e% Eb2^<75@,5u4&'<(I`!h@p^isF:"Tt {%qK H/#!0x_mo#P;io+#ValmaU">5D+:MFH:5qA1nfJeF H^_ O=K%ou@'^ SYBXKoVabyZM>JGisR"a5BTqkmS 6p@(ic @9Lc,vV8@%BBs)YYA#"4 kp 5VGXFWD<wV_{W7DlQ%t**in?2sqN'20 zP+k69|C S@fOt+B_Zz/g VGojrDVH ]#?UnTJo7 s ZD 18Y2EHfC)#U$TdPAvXw?qzbN " Z M  zZAXIPXG`bW'hsb-  0 U]ZqrG3s @r8H b  <P85>-T;q`3m.LqCpPeLt|)aFZ|HaB)I*\HYX6# @):1'LN28/gw K-=jUG:NHUz.m$ \B)1x+@e%V Y# E ]Lf<G  [&A KHQ :  : <] .X X0:o$-LL{:(P'+38 ztK4 q]K i5% ~1q w Y{\m0m6Cos9rEBU$-# dI{6)h)}(`edwJ2T+ G4{}WEAK^zB>+t*-9mne P z8mK#%n("B!_' v  pP&0T!cog3;, (kh y 2$X XTH.=8<Q+&, iZCdll7@W e    ['C  1|i7AQF.#{' N2 [dznoys4^{ h  c Q WM(48Wfgx]y% 3JyG:T[utc% L:}VYgW_ Jl w3 6s5vhlTIMo_4K z:1 ?FVqP~=zSb5 E   S j1V(}yZR)T s W` Ca CP"i;>Fg2occB0 H T F8 Pj+-W^gR@p{XE:d|Ov =q W}yD`Q912;~ubao )  P d {9 $j m|O-NC{y=R 9 9M;{i$GYB kyp1b_jZ z ot iIq L -N/c,~6)  a \:[WT @"NHk]9X[38 v M ( IcE76}DVZ7FgcD2h vxEz=_1i}T\.0G(4{gz%ua, cW ?>VkS^*3lBLA } zc7>MRv,&;2o> Ccn  1soX-"\? Sn _  y #h,!." Y S| L<Epm;|p L9R2+[T  -uJDz0P`= B;ufi 1P?6/V6rxVsa ja 5W`m_F<  ` e)AamxZdh 3% __*  d%xghPFJ=RRQ!.[-ta)N C L YOH1e5{'4fzrc$X<3 r e73S/2q nm&Vgs + 9cT B*E$< 90D?{U _dA-3 *\k @-Fqe i2itD _KUCaSn{ Y\0L .  2^l%G`"# HW#be*xF vr|Ff z>KMB3U?wRs"PIz`>i] JRL q-pPI  l\j!U=|nSF1%6%X TCV:#m:P{y](_JTP fD&(|e1DmKTZ}wB|h;GT@LAYm2\GZ}Q!y~NbVpSX9Hp#R,C mZ#6j>\;T<B#,QR#X DO~u&fPXT>QC Qz"zo$ }(!mu1c zU?M gN{];]LIl}i~rRw6;-_ S&@,-dG,nlk}et%RUw[ r[ =p=*_b.p$\<* CXg,KInm: W_YXFKl&<d u<!H sY~;JJe%  0(S4f5-Y&`mc$>>kXq 22+?yG K W BKX>IF]-NQx*| . ;%OOXZY&%?~%9.;U?2 Xsm8%7<'.<:;niCw5wq )~lUxkY =~'GaVs 6O/Xmqz%9$lt0 q  ];4^ *EjnoMpV7(>h~n P J @ j=|~Emj~&SmS[nR:yy;OLW2nSu/TT{G<4u ' Q 3cK bi7Rv'Ss^hsY s 6`nba?$$l23Ie?,5[ S ^h5drC7$Co3mqHn3A]Yj$tR:+Exi ! lq Y!i \\Df/qd\:-`$O| Ry?!x// MB+P] `v yh P _mS.'1u FH*4r Ptf  cE ^_cy  _  V;W/_Qo@u:V)&yj/ [ S  ^:L9S0]^;1~27< V ^*NDY |+ ?C^5\ ,$t'Z<.o( `m K+Dm]&f uU]I:u5F eyIiRM&Y : & "oJZ~f ,s>:.la2)Pq$$9k[ `K/\1|oKFfMN:!u ' QFe<`3@R2(& %U8Cn2xwcW  W(^Vi~ /V)/q`&UjWscJ Qxu9?Mo[r4x o}\=6 9 az;$y|[s2>+345%^p_Qh#T,,O>,r5)T!{/2Ut!NJlTxd-F3Ha^W|$`&(N;|p/t Hb~?193ctWxA rx!9W,wzAX$Qh2 .ri ibEhV7&rRxW GM@'3Y-]iL{JcOh%:|"BNMfh4zv47]V-Z?3Kt9&'b<6NTymX-fjN^P]jQ^E|?,+WJ7US;$D6(\D^T%2k:g=K7\iT.a:M!TecAWo46mjE8Uai}am^2s%]|idCu%`N8q}6B=?_uMCh F."n> t?0Y ~,Sob+TgRp`we:H(bh>PgHVM{d<9I6Gc5N (dN[?*%AI7INNI? ^d$8_]F8"p:V H i] M]QloEC}W7Y^Vm#W]=F2t@iER&Xv:(} b\hy8`9xot:"Bsk(nrfkD{fG6K%]5Z$RW/8% 4[-0zL7`/AS@|_eQF2mM+q sao!Asd5vS-VG*]{C e2Jb*:KP"&|5wT !wz/EN/TJfNa:% c -CW(o4#83H;m skFSIcF$j HR* |u=.5XbV4 }50j 3gL<-%(m'LNq`xUib %Fj  +l p@`m#"VvG^C.bBpMI j{0/76k| DhMwXnG$%$]Va M3m>S-O%xo"fI*o@Q Q /xL?EA SJ7e T eG/$k]%t4\Q"6t j1r j9XH~:]s$F1.2lFG*4a `>Ns^D)c+we- !kZv#Ky- %5&Bxd ^W;o xNC{lPk_pro!z 448zXJd*5%6R{> R_N]*[ohB]"X 2&\hX`6NVMT"mL zx {ttLW}IhVbjQcvQPF ]#;Ifi[|z3P8 67 JD}  yU TEs %# & V;,pJ\XooQn+=ExD|rc?rfCjn\&yeXq2( _6^ SWo~$fHe #w SB 3D uXp-"4j$QDn;8de#>cv]" 4_oL /yi hsK9=Nc prqT^V $ bC{ p$UKFIIO;#=Gpk^Cvw` 6x$6UW `gz2?qbKPC662C&4{!.L"[u.iBHggGQb f(yAOX2n !znht(Erc Vt>-.P-+Q|)`xpubtS&r'^vs=<d{p`>FCij(|TPxb)Z)6X4xJ3T,ih}wd(,Ovna-wtL'{(.] ?=xZ4j 6M7ef4pWW$&=dW[3ILTMeeC ]J?3ov^ Cy9[_ IW o<`bc^-e h9  <} r,1 _/3/ 9}$R  +}d7VQlZ"x 099tCv=t@C{\j VG0 ]vWU-!|vOb,3=_}:)J4 u+`SUEc R ^#UiE,^,A3|cth<-"7x|  (S#hX@LQ(~H|NsHF\;K2CFt'>K*$ . o" v5xD2>W0:uI"[qh_(=Hg03It# C,5$RzZHDK$ B \BU* Hr?O xG)5;V5E4 *B6W^,bJ7w! z> dL ,g&. 'OqVb-sHHTy=/mM8n΂;^@}+_h*!K*R's5{Kguv C&NE 4Csf/ t ` f 4sc&-E/# ZW|zVM%S$w1~vh'$,R$)5#  uAqM #;:+oP%q_8Eu?UOwyz8@QRx[e|d)tM^.:.a(lF8P^OW  [ZNcZ@_ cTvg@\.c6LV$|t#-:>v>ZW$P`5 st w(ztK`J6-\Y :@KV_.^K> hJS&;Gt8 "w` H@-v [j ' jsAr%w " d|=~ m818G ?hV0C$0*q7h $+} = d_'Q)D g; z P6ig1.BpG H~_9+]n AYF (-PU l| 99G C MP7;W!k> $JZbxK^QA{C`l.3>=&@,n/K }X _ ;E, tn) p; foMgF=w. M[@S D\ XH 60GU~9"66jt n y >b#V9Jw(epL_H0YL`O[5 5$ K0 OAG e[q  W: 0St j  y +Pz]_bO:1&~r#&1 !J"|&\,`f!jg" O% 5'e*B$` 30J !OVRvmZ U  R' WI6m1"c#  d7R2W6lxz{>&2F 1%ZKyU% Ckfe{*6g0U rVV' + ?ouP Dc^(]9$K$qo% ^=vN*J5Ns 0T[,t?P t9SK`2|O,'%g{SA xg z(<ڑzw7 h!X'w?'R  ,-voa B W[NS/62Yph <% k-b+hs:5 m{g$H  a lg@(0LA Jo-IYC$~(ˉr *s c'G * 5>:j6NR<} A:! Y SAP.k;.z2Zo2 6tu(Cl- ^%R8f:!fap&0} 42 e-i$r; b6kCi"7&=%oz80߳|  `g|'Su~o}g KDU#@[a=Q6ق\=" +FJYp NS a (B pZ q #>6 aTBU_ctdtwT(6C&sl`y,}v, /F6/ M Ey spY j ]{10 bF-y>/b r(+ ,LDC v uy!2+g}NS9+V-E r k p #x0Uif:<t!FZ? e3PZw3{.uU>{JkKY fdTCT,]"CelpHZ_otfLz`4,n_ WVN:&@nza;>n+eqqQ.hMyJB~U E_wn(Xw5Q sVpePwJPSw 9{nBoEMa'9.c.1cI9HWP@c^YYOL= ^Q"JlUx&(c~JwY$o)R e( ( [|4~s  <Jll\f sry o ;m w)|$ #h  24vS7,O],p *#ZpY5 n[BhUX]Z7F/};=1RA*Ru;K9$ {j|PB5(n 33~$@y9zM<89nkw5.0)SGfOEQ'9a2  +7:L RR42#/9C0r CY: ^vON|-( 1[d(I\ 86Oe|93-~w4e0f%"ip 8 ,p vHfm%W= :/!by50\i%)~6Ndqdot-\; b S y%B}&uo_E-($ks%c#+utc A8g$[># P^1rJ]SS :3Hdk}=a Q|wm M06Nx 2}U@s?*}I^gJr7:m&QDK*9>23Z(  o\=Dx  X fLI=\xB}5+";Yh ek\_ J=J,2CP (  -5 REN] Iu: N4#d {NBtz OZ=WQ,+R^JeeWS<B*0H Y;7.D4 w'~Js~0U6AE/6-8UG ` [ a^35L_N&e Oo 42mu;n>f1Hg1q%[ }V 5 !vlPc]b]L+D95: NzN*3J;_^;~")4 l  T e 'o}*D2**g|qU y(- %o >]Y9z^vbhJbz#O={nxr1m * c S B[z 0 G79{mdnUc9)IY8gxC-nV~_3GS9P$slv0o &8Lz (c>C8+$ oYxAN-BV:_Xz- RfK4$n1oM> Vb /  X 5P42n|7 |`Gf$G/Mm _a>?\dOEy mb Eh !Xmx#H5RAw5=^}]w}2/X#jC<7U<Zze{\A45:<WPxlZV h Y+o ft 2 < Z O%8W6U#2";;yNLCkt1aR[0&1|~#b s _  H ;m?lnio!GDfv~ a#t^Fq:/{J>8LtOjy?v= P u  SfVIvtK?fJn+L~9w+j"_/V\gr im>lBQq UQ o[-}3b4W{|A ]s@XF({FvNNG{f  / H4TX00DD8 ( ($$$ | 84@$0H h||||$ `x(LLl,0,Lht,@PXd`h0\p$lpp x0th8 D ` (h(p LP,,0`( p<  80p@x0\  t@LdpdL جX|t(PtT  PPLP 8  XT<|h4H,t,L( X  H  xp <|ڐ8T d@X ߰t$ x < H8 p<t`HH Ph P0L0@p, l 0Dhd!#&'%, p$8$݄ݴ< | D<$8 DTDp`P Ld@t 4 T `TPh@ %P8(XHh<4l `P8@4 D\<th08pxxxX  80dt!$#p@0X(hP`Xlߴ( x 40\(8$H8(XT(T\ `$ H 0 , (  (8tX <<8|<٠0p Pd`H@ ,0D H|LDXD$h@XP(X\(< ,  Lلьpפp0@| $ ph $  |4XDX$4@h x$8 (XX\ L,,@$PLH XXtրՐܬ@P,p L  TX4tx<0 L`tLpp8@ 8 T 8 dH,xdp$\<ϼX(ڐP  | @d\DpTht,PD,4|,Tp h (`Ll`| \0hҠlLTd   P< x,<@tCQPMQ8ApLp ̪@L(dl  8,x,P!p=<14$)$, XXL 4TMVTZ`P$:\QET|T$( 11*t70/8"d HXڼ4hh8@ \ x@%)2d>hHO.7,|4)l $(HP|ל@HP|lp @<h&48:DQYfHgQG\$0pT(<|LԜT0p0$T=8|8\-&h18pl 4 ސژ,D 8 , 0 X d H8&)9HQ[Tflx\\G`? xܬ̍lxLTh$Hd68l;(/(X<8 ФdXh$   p8 )0t<IV8gij8TV_4$t@$d `ʼ(|(P%+486|<"Lxd <|,\0(T`  , @D"0>IXHgll4Z@X^x,t(`HԐȖЮT' ,$/ 62h7!4Lx  PtD` <  x\&3C0O^ i4llS]Y"(dĔL|l0D,\h ,H.53/.L(߸ܔΘd   p\'3@HP8`\ilhnZxXd[+׈藘@Ԋ$Դ*hTT` Tp$$X D  ltDٰ<рd (@(#%'d)X-.H/36; ElPK:8 0D|(ȈTThl@,8 hHx\ װӄ`(|\ `!()+P/<23(7 =@FNPE96'`t\(ı౨l  Dݘ؄hh$+.1D4594@$ETHMHD71D% ,hǔ̷tضH@   LX\ۨܠd, !)`.$0d284H6:>DEE90)P@,P8D xX,߀\ `"L*|.`24h68dhAA@<3'!ll0و8PθLt X@lL@4`|Hht%,+.024<7:?@|> ;|. %(T p@ <\ɴӰL4 P T `8dt8@Xp t< %+4,P-$124d7;9P84&|hԼ`̾4\P̠X4 ` 8\(@ (t8#4%&&X)*P-.p1x22L1D)ppXհdt0$`,@,48xX (44 |T 0 P!""8&),+x- /T1-D%  LT, dxTx˔Ӹ`@\dLP@` xT|h\"&0)'|+.)$ (@0Մΰp(l(@8`L0Ũd$h א !+,4+& $\\x(TXD4P`D4\(t t d`x p')),%0h p h|ð(Pط$ϴפ  $ %h7$)D4 t XpL D0X @DXx|0 P ,D,D$$"$#TX" ( 4LМllDhǠlxh 3'H8 h @4@$hG@PZhKhKg8d'5 ؄p$ܝАH,4@X ` 0/7//8d0,@4 $ |PHt! \' 6:PGUX LO fAh$`4\Ld`dtDhD䡬x8T؄ 8d+5x7.*6!0H|L4 4Ϡ8X8 p#L((-8BP[KPK`jN$/ % @H|DX#0>P8< (2$*Tlp4hD8X0@ T xP@%|&.,:E,W_I(JoH )x ̰Ŭ|4x䠐׌l% (@+?L:X *#htD8׀pڰtJ,`bDIUx`VFRI/$xؠt0̘̘D8͜4 !p*-p'*0X0`hLDݨ T<  $D0'|)0l;GR] WI|R IT3 ް˼dtXȫ$ x &,,,' *d.P dPdpPtްh  \%'/`:|B0KhXTH@MF3! <,`dн؈ d!'%'+h  D 8ج٤Dݤ0<\h@ L 4l#P(H*1:(FNU`NDG=-@ݔH@<|μ d$X'%)8'|(X ڄl <#%*`2:BOSH@Fp8#|xD`dԫ((ќ @%((0,&,lx-h\0̘ɨĴ|t$ L!40\`hl \ tl #"!T-,$-3%*0| P8@мxӔ<̜Ӝ@ ,lL8PD(h , @T%$H'4,-2`0t,@),X!0 xдH˘$ʹ,  8Th lhH 8(,T("$"% !"%$ p| Ldє̜ʔ$lTdt h$@ ddX xt 0`(|l0\04 \ 4Xppl8tD80@4`T |x | 4 ( X D ThD,$(x4d(L,h88P x@84 @L ٌ 8 lHĜ,ؼ`| 4&h$d"H|hlh |t@X|x< 48dd Xd  , @ H H $t&(/\/0l'\||8$ǐHĈ`ƸѠ,t|$`, \h   Tx(< 0< 0 T$ $,0L| $ X( ,48(p D ,4@Ʉd̰L< ,t<p4|,` `  4HL|phh<\@4@@0 $pP ( $ <  , 8X|H(הdɨXh8ݠHX ll | `4   <h P lP`dXDhpDd X ,<  t Hp,t| , T0d40݌@\,<d < h `$Hd d ` H \ (\4tl p d  4 P | l lx,d d h P( PۼPD  d ` <Tl ` |4`lpH4 |HPPpX   \ t 8 0 $(<4|Hp< @4`< L @4h T 8,d4(xxt\@ d( , H D p dp(T<  l tlx4dhlހhD 4  0<|40 8 tHthX 8(,4 p0(lT 8 8\\\ < P 4 X@hppxۤ\<\<` p H D  H 0400\d`HLd$p`Xx4TT ,  @$Xx4@ 4 | `4  t;4p砿(Ш@|0Дp\lP, \ 4"<@@||4/ |Ծ@TրHh`T=3T\\ڬPԲ<0P& XT\P$4 \DDTDt| lH$L hlhXh0\ @ @ t\, hxh$T'('%,X lҸרh|$,dX,D$(X""$'#ld` 0|$|pL|44 P Xl!"0"#$(%'('# H8Ąˤΰ4T|TL$ldl\  LtP$ 44 P<<@P@08,Ph,D p\8|#4(<.,% (8ӄ͠TPXl8d(x $ 4 <DP <p| \|d4PPT(hT h p "  884ݠ8 |(\ H8D $ h8$X@,X<00 0PL4d ( H @(,4,\lDd D TX H XXP H   L@,tt@l0Hd4htl$@8h$,P pP,X @ P, , <`(8PLp x8T H h <l4@ @ p D(X$< L0X|x$@$p h d TH8#x\dېlLx@H|xH P Pp(`$ `D t htTxxhlx8|(Pd<HD0h<@,4 8l `xl(@ PXdP((0$T\,P@lH(,@0X4tH8p<88l|t`D @ ( 8 d p\ (lH0XPLP|8\<DT xT<x( Tl44`@X4,@\pd4@4  txt` 8 T`Lh|\TLhD @TP,@<\X\|Px p\l\,$L\h4lp$|<,XXpD<pLlp(,0H $ xP l(x,4h$h|L 4l|Tl4`lD |T, p,<hP0(44 hl DX@4|P`|H`Hh $ \($h|xtD4 D(h,8xTth,(8< 0t`H,(|`lTt<< T|pt `thd@ttT`X4|d\|0\lH`Hl$`\p hL@ \tHXPpTD4|l4T LLL$88D|<p$  ,4pp8hh`, d`LTx X\TP4<0 TP`@ @   `8ӐlՌPXP8PHXT @ X<X D0 $\ D8 0 x ,(,  $| ԜΠҸ|ll,<tApAA<5!p ttӐՀL״h,,LH , (dp$x(DNOYgn{LMlt}vxm]SJ;* jMNMPMW\kx}|}~ )5J`j ! zqaTI<1 plRB16.;AOSKaftw  *2AO[ae{^LjemqtePJ=B-$ vob<1'))3LTc`i{xt !9:MV]rpwlWyxzrpf_HGA-%meWD  #,10=IJOU^[\lopsxZEEQTa`}}y|~sps"5G\mx '/77>C;9691,& qm_N;2'~prkyeoiqrqinjkihqluvd0&&;BJLibz~|#4C]kx~ *@ER`bjljjkcdVPF82#}kcWE6% t|tol`b^[NHFD:B8=9<=**.:JU\lo*54DNew[B\gpw|beSJ,*yursj`iZRSXHM=4?DAOTc`oqy~hyp}vxuutpxpqlf_dm +7I\`u}|   zphca+adI>KMOK]XdikhIZ_[pw{~uwn{idd^[VWe_b`TLWcm16NTaq~&,47840580%'s\TC4(w}uuyptmhWZGN@LDB<8HE-,/=AL_iv+0B\\fzcU {jWZOF+ phkUTivo{  |ztzqwpb_oo 2:JZ`ru}  jfQP6& qeOQNWOhVelhut}Nlldq|zy}pr^ib_d^e]RQTZgy!<O_g{|q zm[K7% ls][UYafhuuivvi|ltjj`^WUTGVIVOUYPTXQ`i|t -1IFZbqz^vzvfZR='j[VGOHSL\_`]onyz{pHZ]Zvm||vjxumpvkXX^pw 3AS]dtyz$(04>5,931&xr`S>(}pnoqmy~|}|XYdNim~y|&<F]gu%/3.35#%|b]W5% ury|~vvlulloe\UK4EJT`kw*/FLUuxVd{y rcXAB,~ovtvvx}ddaYR?B=81/(& $1AAT]rz'>[F& "-'KNjr~wylfaQJ?,yfH@B4>CFDZ`auv}z}zxrihcmnkoqtpeees|4<G`xu[M4 ypULIC<7,.!$,%*))872F^<]'5SenW2WGgo0gs=#FY}|6M~>}Wj]A?,8(#ef`bB7F?/HU ,BFPJ\qjh6,9Hn<JM@UEM96LE2} +q}{s Fke`\  !}|sn6/bNF h{,(%E2<>=La;PsPeX + ,z~}`{uu -1.Cdhy{MpsnjvjR^)CGC93( drtE*@2:,xht`@sZgt|ssQ}pkN6(!*BZ+'BOp5Fr "3P<@UK*;+~}p`S.7  k@-&;L<)=aqUJert`bTcWwjD"0R\iufq^_OgABE84BU@?< 6@(9G3DdeVjm}7PCts,=)C7Tx7P3KC)/Q:* %!#onE?>!y]QNMJjbUou}ixc`hvb&-& .1:G@&% 0%I\]z*K0/7D8Bp~wj9#,?24@+?D&7nBFP3 /nfllpws kj|}`b`rx^:K~pZ~ >/2>/=1^S|f>WuPum{t`U[K1+$]Ka\aVXap[to`mr_\akq`dNaxU`O5-#0QZSz$eQxzr"(QU7Q[_%6X/2-( \R@)-quni]Z<^bgdm^ouOz~}~{xlicsp`Vcuz03OKec__\|{ki  o~aLC58xg_O73N_IFcnkQ_p{ '&0    b_inpYGvoaey@-,.<A`h`[$M3F[bajd[sT@>MXJt6$JADB:MWvv #-&.,?5( f[`r\ROjylQd FEIZsv "% kn_P8 nKuu]^]q|l\lz(& )49acmwqf}nysi^[DI31{gO-zhN-OV{;[{};:66hFiTFg\Piwujf[aU>9?2hT6 v]NG|}lko8 v|{w ?RaxQ6Llqrnk]P<3 uq^7666"!&(+232>MHVsw}`imlxq{kjmnsd`fhm~v4RWax-8MLIGPPA#!~hUG2oVTGE;HTblu~{n`wn|xyvld_VIQP^anim]L][` !:Hg{s|y  5:58@EMIC+" |lV-&uxqniaixxxuzSN[P]_w|ynnhkilg]`xy '=Zjr.9@2&   |}g^MC& unx|~}~n^eXdty~uhi_XWUREcJ2G(4% ./9HWlm !(2LYRA"8H^o`fh[PB1~| vzoiXQVCMCJLA<9>Nbbn/.=Ocqshs .0<3=4*~vcbVB1(HCQHaaq|}ruk`fSb]ocst{~~x#0A_qt$0082C>686"}k`N=2s]QKCH?MITceqx{tvn}{{|YKXAYcox 9G_o $&5AHLW\b_ORL>:#~se^LC6(d[NIDDF?QFQPPYbg_mdez{v}Y-EF2]=t}{vpefciXXPHCA=HDOSqz}e#!'#leKH;~wtrmXHBC>?ACGH9>>)!$*/5@FU^o @;$"7A[^k{zpicTG=1# ',7=EHZ\cl|{O. -0/DRVmbpmnifh`[TJ89+ qokkrffN==GFNINWbehn#-<?PNOc^]`^MMG?.+' {{uW?>8FDZf 2J7 '*MCSflhhthmmtkfccZLB@%# .5JRel{s^qpo|lukZYQD:3#yOS4& 2@UZn 1GWlr",)9ACa`>'&,9=VN^kumtrji`PA?3* tgN?/,|iWM3  !'8;FS[zzR 208Yr  z" .2?B^xoJ*KN>c^|}wd^OA0"teUOEG<=RRc_dljpvp}yo[mrt~ 0)FHbrxg~nyl`IA;(" {oc[: %10;KJUL^`]cvxeVkfuyvupptpzmc[ck.DYj~~-,%0..#w^YNB5'~p}{Wc^Xu ,2CZgz(,iQ> %7%/DBAUFBPc`dfhaSXG]ffpyQL70+(%<4uoDPm}'zffbXsd%< ,MCVwr}( 0"]x |t5{;sW]E!3Pf0"bAn79zL;Jwu,u4vUbm@>+O%d! DyQc!8bGn }Lg=/kD!,bAzJ yDG=V$P_\LnL8pO}/XYz" R"nPzLU.(:X`M+0ES|L]H5 &ux [.ynz, SBB;K-|@#4U ] e r _  pb 5 7 &#[e dw\K sN!z  D5O _(2k  N . ?  2sk@;}2<`C&_< Pd ,'(eV- ?E a X t-@0Ah f?^ X J ,_ <2 UC?Sx O & f = D~ ~@0i9Қɩ*V =S9!Y' }W n],]7ۋ& #%*' w  2 '1,- )- \;gP<&ݕ8ŎzM<o N|'W=| :%2('/^; B a ?v#!&NU af  -m{ƞy.'9.o5"\b2Fq3A/h6d{& 3?4o%R4wzjlnwc kҋ9sSl5 ,C0cgno2;S=5er2Y710+=~PDS]7ԋц s&'&32ݑ7@";C&# z%"\$=>4&Z i gWN- U4=""&%eGG ֦B/(AN;# 28>02)Q*:), yGWku/a.K3 _6$S :8͝׋+5v44:@Y(/.G61" >2 Z hMZEԬ-y"!>_"e(1#-$7#e { *)/;9'K M lf`@3Ck¢Fj& |%Q 4' $0)*Se( 4n<2T 4 F UY w=^rD;׫^ɥȹ#Ei( m=5G f*X1,v'oc #(5`mYi3b:JMlY)[`x#o 5<)*`"_8n!352G8=_rrL%m~o\Irp>6$tUM  | %*&7H.47kG !9,Xl^^WG`PXV'Xx W?%cnj&JUz:;&t  }4HVNZQ/o iUMmE?j2Hy@#XI;,'0\)r\Z)NO +|$d)x8QpW^4\z}1 x+:   i A @."# *) B [ 5giB?y{I; |B9B \riV t,w\ii:PUB,Y9#6P `[?t!^E gIQK#GRgx*Ek\!_tah{a`y}k3~tEAT;vBp$h`T@IN C1>U.C~ekwcup1:hR)d;_P-c @:(*$-9SA(=dY-2WXK@GbJ)  &9.Jb`zfUDzak'i4&}/ @RNsr[ G@XfukT#tP-c>E[O@@[6JuHf ,x[H670=hJSY,|`21/kAOJ!%8?UZSd!R_!#';?WtzofH(|{ &.@McqZUiPZbiqz}ikeM2" pb]G5+xnrhr]}|}lkYE4<9=@1>@D;JIR[`q -TYK/9X`~+N]tt}d]QA1,oiX:% "'/7;IC@9:' Pgj[vowkdT>0. !=e3^6BU'YU\ t7q6U-szT!>jGC0LO2~?>?b U8H%H\|m^m| M/l:\.owIC, XTbJr'j dC eI3k[3,CMSW_dWRRuBz^cjm3Xo\%<0}3?+<-Wg#2(09R&3fS-  h Gk2%fnRM<"u f$}mO_o;6(aQA72Af273}z&rg(:ML!R"Y 8|c~4}r''  $@9.zd9Sh aj[Uarmir!8a8 (O !XD1R`^Ui{9 z{]S |&zR4f]n 4c(z&.x8] | e k k~ 9pv0T.l Kw msY\24 Rhk(%M2?.2_{OX3Mx4s | R 8 S] 0 q n } ] \ a 5  b<_!Mn&QMh5u;l[cYW%sXN^"Y =K: '^/M q ^ ;cVnt:XC8x6hs603PI5  S e jTr+nO6v9 -%# /OB;z`C )X} ~m%q5wpNm,sԇg& U!Kn$.+!b C  i Rw oO ^%l_ {6)0:_*=y/qݮ׽. h*)1"v. gN /3 kp"I dFK[O: U 2//yf14 qrNTw5(eU~(&399A^Hi` q|?,W 9Yu9  8t  N -)a$Z3 g8'9-bJe$/chnnw? [Lyp; Q } f ^ ] {snQ_nA szu#ac6x}YNCSLUHx #LZm3Iip12]t[Y4][7g~K3bBnWweZvphVcC(/ec:, ~o}zZ5 !&D8F>BMJ=H$%5*$2>"E.MH[RMdn_eiOX:MFTVfoBFNHjt}s,& zlD?6~q}| 5) %WiG8t R &/S6T{v`Y#%i  fe;]d'*DjR4K=WY6PWx/RK)4<K_[O *L8&w+wb&B!8g/57UijMcG,Muah_ aGV6`v.M[qmvr{- [ }pR I k  tja_Ft= ϴw 3,:'r"e-1*#Um uSF {#f  t+5gC C w|lvtCl+d,wѤYŒh'G10($'(FB91c4Cy!#%6b .nA@V]1'l Ϋ׻B&[ (2 8)7+).H"i[u2;0G%,&Hsx ; Eq x/dVO7_4)g) }'&o# %!CGXR)JI .[$\,%!&&4 +gS>kYEZ,zߢ7ٮZ>~"K%G06=4\125z/Z98/-m5)!T! 2WfeT e5(>w36ۨ҅¸ 2G1$*'1'.' <7xQOr `(.(+20'@!K R m9q3LU`tq5fC235:1=3 (tP+F@ { * "Y!&(#f w J  .^I fܵޱݫ٫֎ֲxs0 v v4rA 5 $ p`k#p FjA;r ,bM^XٓH/~R.?kSWq ( L +   8( /=   >P$/%\P}K,z*I G mgk 9m,mYI6u{W%4 JRwUMs%] W47J 3,e Gt 4>! gx TJThi}Ml=MS/;<_rqX0~F  M 5 Z`  h  Hp*P!=v)4  |E 1  1 w   G f  }~     L(h(.g*_ix?!vEU ]|>K3`{^a?O;TesEZxiW>H7%hvG1= Pi!q:/GI<#/Yv9j g_k tiXzz~}'nz2&DM M6T1h[7L#]U[h;W. (B61"Ee7BQbc6Ps(Mc/.|Dp!Q#X0XR#>%-w4Z EU79bDl (5  })qN ePS \3*YXe_MeW-jdsI e?ab7Eqd Z(Gh^} }PqT "v@ o6 1 Sh4xA?1g2 H X " s^K&^ M ^+N Ls 0 9  H y|X]\K^ܻV\ԽPќϼ͇9ΤfEp*yV %qW E cDxe|RRD gL.P܉>֩MmV 0a  +8A$d(%$:!P2  Q!ѕŀ>G'p-m4 <8r+0U^= l#h+W-(}:: Yw3-. C b($`#qTܭt͌\,!4"g+W~ q:$(v&L "&/   ~ ~ 1]psqU`g1Z.#$-*6*WH-3-  e& U&*)U"/D wKP w#+\f2wȄć% F9!H! d  R%6(&! _g1e K Oɤƪ*@"!&/׀-pfJ"k&**0 '=#-N777E*y !N dr0$ѩ@M#Z <sy5"r&$~ +P>  үbuӣw_41*"\#T[}Ղ#-y,(( i$!$ (2-,  Hp@g5`ѾSC!b;p& Mvs)8 "!$;!w!%!C3 l. J r-NGEȻ ++X:))'bҔkR(/2-"(&FsW]:u 1"+10$0' , q/<>[ycZnQ߂xDOSQ~X2!I# /m? "#7R3< q e^@޷l-زߥ}ͷD!*/{ }$[ H3 zH HZ\> g#bI!^;dߑeM {g F I~B2  + ' W F ( \yd#~ * A V c3aS޹aC4XG!~Ng x (mO3 < YGr 'X:`\"Gpy7:(0 Zm-}{9|F Q iX ]AI l < X  ] + t vvpG[ j0f cE ~ x1\0yr-}Dw+Avzb<#Ab ';_ >l*k0/ >  w{k 55Yoz+_cp\-HDv!  G XhhQn T A m g  !,q_+Bt%'X:Y]BoU4@8A[97 BG\j1fVLX&2*g`scQO P 2Mz 7B 2  = 9 B A e  :ft}CRG[1 fKHqp_0i:9 ' (AuChU H ? A)A;aVZcur 6 yl0bYCB+z,M \[,S$ /2NYdvZ{VGG4ags29 K5L1lY 8 f2[   $  4 u%oyTIwA  idId`zK }4M"|`5/clQo |4>?  uxmged7 % W% CW& 1c`\{e$lc 2z.U9KD ^ l b +kN ]paTyfk6y;HY ` ;c4d  t_6L;G=u=nv/XTdbi%hJu@p)G-u*e +]CY4r i VC5b ! J | |_D:Lot.>Ha|%Qz? o " !3#i$g##" a=f >i'dmzQ()&:-hOaNeLa,l yZsUHW2b pce!<!n#>%&&)'&V%,$'"Qf "PXՔ6ҊѱD$_Ԫ@ZT,AOR I&K`SYgd=8Wz IL  ;f7Y UGN1EwUKl @ dvsJW z 1Dutr9/ y T%cw!7\k;or 9  5 ; B ]27rYd0Vkr=insn&HPxZICCt&S+wIXS5~ /;w)}Sa}WshUH nqfY$`/^+S%pH`M1 ?E\!$&%()X**** *)'%$"X  p8,76b$,}imJx?O#k?zO:#L   C  ; x R    2 w  -G9v:1Pk )f() pX@3S:yo? JUbo=# O5^x @] yZ[b0}7HEAXP>M(AA `N[i0Voap B36q-,l(!t?gS^aB-@YUGq5i]7PHX<[{n3PoD g[U f9S_!Qf\kX^=^mmk*#ER"P9l>j>2w*#;Z (>7Ci{^IFSfy|cnxrfoblVfFG1N)"C) <-3s~km40uaW|SXdhSCGp|V<C:%,F")jyf*(a2_?/03g2 N9E)16h0:+ C`GNEBy,FsWagF8H<Z5$9]u6B)|73{S'kkkvJ{*fF ?#AN ^Ck~B>S[d{4P[4^Zt#>=,f!e}g11nXbEH\f<"<.=!c}bixZQdPmv=Rm|GbX%@~=sIL$7z3<0 ;@^ |X[P5 ':.Ky `>s 9 0JJzS$ tW?+&l/2p9.-COhn=!5y\]PcJJ+;[wo[d3L|r4*Cs)Ebg3 zk*Su+&es[eaBhL;o~!-b7foh'_RfJf x4 aB1L4!c!Q'b=%0oN_tt6m]5[ Xm\*^yj"&?+SL-$>yv4tsuU@O)74pg8PS&167[\^wWHbh?lyjd] DiV";d&eF.a?(v?l86?xoi&Z+  9 W {} wq1r00,(P^/k'l#$\4qnwMngOkT!wBV[4JZ'WD1]1 AAXA1h Ewa9lkIz0Oc[:_ e [h9g] w B Jfx F>"qUzr|]P-(E{m}5pCWeX{e{n-5d L6EX*pn-7 @3nmp+t4li0RO,mO, "!3PAXAKXxI[61?CRo{us04UVjj%E>evw (9$Q8JB@i:Q8S8C,.$ ]oBG5(zxs{sz  [gM<>"2)"&'HC^v2Dcp  &Q:X>VDNbTm9ehFJI-)tGJDWO! P}7 oypJ.RM7RG~ 1 czA>JJc[T y>xt,_{X"^![#<kJ6?f;$h' kb7F}B2wu<e'_^mz7uC74_}p, uxsfOE@s##*\]K2@WKq34 /q=>SόN 3 $u*!TY &-3v ,y&_:w&JqkxF.ft}Y~rg,LsM"cEF[N 5;f9 @m2 7A+&U1 osJhcb@mM5 li7r2 .(a =/7O},YhJ*K?v)WyruR,EcYI,CxNP T 5b"\3dD7}TDr35XoNJ`I.()$hP6hFE@(> _  =p 4GrE.qvKB78p!v[ Za7pFI,DHTK-?nb}UlU _c$TJ^Tv. yCXH v7%|H]q_d mJn r !~ dr axcz   ,XVM) 8R3ksh3fD>"͛tPb !~nc' d3 q 3 23 * ghY\}4^0t-Y/ Q&[/e4 Ow}| !")+ J1P \ i +g% NH T SX97Bk z'{ u !jER[Y`Y<v=; JRfVR [Uq-X A3 O : g L  &P7bW{ &2@(oj(,VsdrfMu@ct h>R .A: a{&LG6?$mXw[5 F[D'{# S(A81F'a  $ }q@wF<t*]a 5>FI7$gt1;!aJ^ ! %,STc t k 9 < ' BMl)^Q 7{ 90 .~E:O)s#p-#?VZ6QF;Q4"^jsTTi1Vj# `&!y]3:ezkcaUEENoIHSa0"(8{-()(R(St!"Hnnt"nI8?n 7qZW _}P:>/'+I\q1KY?9 %IF_H<;cD F6Q^A4 S'T  P 4Pq}N60OVM6]k^z(јָ%!A ? HDP  cJ w 4 ETR|rhLGPp|>U8 ;#I_8 96*u؟  m^r@y; D 4  {Q04c{%r5]7rl>h~2b|"Ko\#~ f[] ]c7 \b *c`X} }Dt5i/#'&J/'F` Z TG/0]du lcV2K"p'&\R& '.)- qV=W8[EmW7MG& s-PVr # F KBfh2T_6; +vwUvn'x)eu:{YnS+O 4@}r*Kn 4ky]{+H-A\ }K%yl$>\m4|7[+Nt]oFa2M q|2 Bz2dMF]\o%y l\ N|n3F-lU<cE23i5k  X6/>Pj:#M-ST};9w% :gtFh-nP#/o<Q U 9  yx4&2lT9#5pOiFwj}_Y&/vJxI,V%/GR)Y\=]^_^\ ZUCOQIF_DB>A;6 1e+b'$ e 2m׈Ѫdˎy=t cʹɝ  '?i7{#L>] : - / ?mfq  <)#-*j0K^3MYi _}mb, 1 v4 jdB7] '1"X d%;|l+t,`3) f> Rwug+J?55J  D '*q|ke|NXW<@A K;UcI2) byJ%3; ##5&$Y%m('#1Jal[ Zfm k7y)`\u + w7bN*K'8?t<\UH:_/Zތ/%b2?5]430+& !G+ll_Cw ? )/J[5y9( De'WSEkTV,#\&ez2+hwܸ{4}B0Ha) e F I !  V_:'RNt}0U1&;;Ae) R Ap>ڹ8K e#j# }  /"H_UK I X`]4a1\<6t0h']w rH+R=J\5Hd&@m\&?O  "Q52"Gdp6h VY6ZNI!U^eM=|lD29,tj9P)( vk ! nw |2 'd 0wDafM~`:&#=a.!l}o  20(K)4+  L/ht"|s*eJgUcZp7#!Ej Y\Pu~hT#fP  y  *PV ",\MSh6~Ws )B'&*3)"/TKZ4% | Gc DeG6E`NIm!OGc"$!!b q;W dF)Azn $^ }WBM]H+Eh*EY3 ?G9S0npڿ;סt)13*I'  5X N *OAy-?W h-36mrO+[H.Z$Z~ kHPݬZc.",,%B J_ :LB} Pn K "}Z |fkEvbo}A@r1]Z{ʵO )"=$6r"%U UvZ"#G Z^a [ b 12 , Ihy) qNRuvE_BߏNȢ<ӑ!n91-.g [(hkJ !'1I'E i | * Bc2 0 6!9/OL2ְЋ+71] *+0*] L6C fO$  F tx 8 1 H-j|U;[KݝӀͣȠT<%--LiN |%\'j Z"G "I   ]":VO 7 MAl0n } 1v\ r H%q 2F \ i d CFnS2=EkU1R" gFr9 jPQdl}   / >i0 jMZDKld\,]P(0 qx0n IG&F9x,y\ MXog"8]x)H;xONYpjU '^ 2^?I\ H3B2O8t QgK k$WgWJT>[HEmj=;t, <.~'m Rh[mjf R {  U 0=:2^#0p-~rL00,J^ < L3{zUp N 6Vb~) d ,NY2x(D{1 dwDp\$ߌhF? >No; $"d S   X$]\4TM8nR'p?:24.  h"!  Aek]X yNa i } sC~ i'q4q "m= ~ٶۃS [|+N u 7 G '"h1- m 8>ehf = 2&6?#< X5K:OI:) w ށ }&k"S FX %!! ~M is~0 usd &7 V*(@5f9 ?jy8:o9܌_"]'B 4 U# LW D* 4* _ Z& T =-s&& SMKq< o-.$-%P l6 d+GX^5 { e Jx*9HNRaC;dl )"fVV0TڝvW%#1),"yR] );$-igLq Bgu-^!)hipL>M  t,&fr@iE=>hx &M6J2/ LI _ 2~DrG{ r21S P7 m-Z{Q%@}=]w.%S@s7I.2qܐ pW!0/2g&#  4 d {VxN >}Jm_EtfPqe;Wph8-4lx]^nB KL o17j#. N"Gsy&!T&7 e-J/\s=_X`C4aYk"V8rNZkC~AvXCw_!I%X#OQ @92^w;=2AS7 S<G/q21#Ah&FZ(;Lg:Tc:0ck~-Dl!uqE8<?::yF3!y[D28 ?Zje5>%JzrFF66^]^qH+\T:H'{&j[12kV 9r;I{IkL%{f)0 ~  q 3 )#{X<ZKwIq:HlEUeGT[/iz~t?kHAEG+,>KqJ1pE|AKBHG-z / tGMm_]vT gtZ6*ME!1 /b x T ]*L s Y V  :  irlm 'g=1BN6!HYK("TJ.#rX]$r<I^py#>) ]?jCaXK6([a$2hkq80imH#-Ki|lbb]1M5#J5MPBY,@ ? y @ ` x2fO0%mxu"+ll>R4 i]+ ^ ( `_m1{Ue`+f1~;0*} c9j*JCzwtKO c@@qImQCng0kw6-Dsl+90]tAg{]d9 I D}eq !&" i 33  ( 2 |T*rnZ4 +;j6u7)DLSj@Fx>H9K#X6L8.Y)!nSn"_V *{ N1=m.Pj48^ Z |&G-azMNN`DqZ,A* & :X{ hlUMA T % z|yF(   @ :T~P_[aAA&hr[SG 6)1'!Ei|b) < 87 2 BW "Ov8e ~w(=7@gY7&XV +`%7 $#V>\ {rU )Gt 1 $IH u|0g^E # d}n"1MNCXf+4%uۼ ieb"+'8"##W RAks bBA2vmn  =jbbKMTjtd^0yf$D`tfyN tLr=TlXc  BNp  & lf s"U0~Ef.V NK  N=mJMK@JtEMu A!!ho wio> a 9 IR:r[05_mdS+SLFa_  ooG1ZcsM@w4Gi__$'&!F) 5 ) K h `qCP & w } BbScO#zA@/`_U@B8C`^6] %%"UXQ A (:  1 <7Hk%H_I9FYX>y2A'd*&h$F"L! MzS @zR l*w Cf4 U-w7 +,TWj] c tQz>2hv:f dg M'H+J%."T"@l ^9:_~ z t| NE~gLoy2(OZ;0[zg'jNgb{,_"#-e) {oH H4[l :( DH ?4g0{/1KD3jBc:/V9'&I';'"*|9 T s v( xQ  ? < myJLV:K'?5dirR cU6DFfjNb8l_ " Mo- H q % 8 $ %VskM)"'Or@anmwR(0Dy<$m\wN5 -HE Y (S@tdC {uAU%a_L (Dg*E#IA>\ ?{nY^v  B 1 4.knhH;'fiOl*]fzF ^-!EO+J]QG' _7 v >HB2~R '}iA~nWj%9uYd0au.X:a{#ne7} ;:;  Q%i,V+;,=GawUjOIRO>Fgt60P4{M' k-   J9S:*3wP)W:v-[.mzP) tO,h0O OQ{/ r $u! C=\5 o H ]T FsA 4.a"n5.n~+}Y5v"Y =T JaU tU5HM]Pf3yZ.q'Y 9R;Q,S }j4h-'.?  @  >YUamDuj2I2o%S\hi,JJ{KVTUgLI://i F aC4d@ U!AM ztSF(IU/-X .a\iJ ?Q]bG6.#m. z j'sa " !5 {1$ _{tp+p2ovcA8cO=u4-0w VPa 1l>%y߈-RM!! z e /  u 1  } Xl4jcB`N+^.juVAy%u}(]|8n e"&% 1 16- ( 7 8 ( Q6|u2g8ZpHCmj I)p%ev FM+G_gb9W 0+<12j j%x^8Q1HwQN?(,SUl}J?I#E H&@@#(UF]iiI(xgu"csW*l.n\v $*cD6 @ m  7  x   )5f {"$`Itv:hMU)4z`oSlN 5)Y8- B{}yTXt<7^k|6c 3  _ / g>!g{ s ZBcjIdBvXH-}2`|sU\MK)WQ[s3t`%q2V&sK)NcsRL3(<,-Y`bjzE yWB4{<;X k6qNb<3)+JNi7Fzo31-40Y5?L#h}i}LI7{'\^s*Q6V{'I':ejv %C4M\xY0T'q,T}=@<qd-9 BCV W - S ~mI!AJ"24{dK4d4w_r2w)Z!A!IE%$h9z_ XWCvN"$'9A9ptݚܜ$6*R2N-L :< P6!~!,),-S!B ! 'LrF 2'-iMd Kh,J'L4`hR4'd5=h4u_ +V!kvL I V,evP_gY&߈t'ص4O8P4"R-e:W?2xBs`Q}% )2! D7 _ } ~zmlS$30)%%.DD/+g nx{(?0223)UcG v" o"b. z G(Vn8=3pA;j)?EJ'5S+&y2iD#R/)3t-|kZ1a Tacp  :{vX~o8S-O4*e{4y;61hK5|C9M# u{%+aj&+(e = D>LO[u1-k&1s[vjwQ4݋8 !34z( s7j-!o L 5wL SYiq pGAK) /C=H!l]5ZUe b  { |  9K0,]J*[$Q2NcD\nV*+ FjKMQN$V3(5Nz)0Lsq`RFB:9BSV vIbTWRTx3L .l>QV5 < ;zZyrbxj~c}#{?0W2K4!#-V]~e6~2?+Eg"(D~\S D<-cj ZH(}h3V#qtM\7f/1sr=e(Tv+28}|kSV'[Yd GgAq~  n(!VH9? RIV=O{F*#>$27>G|anFT{Wl|u~@g"Eqt:`Y2|*u[?EE:4@=,re&_VNOukx 9@M8GTLT7KT ^Rq`ewJ`<zm&Itp6z'Z~filr eKZGWT.i4EG/^tE[.vDDM ?eT(< < hh8!x"B9*<n3DM} .UN ! IVb r+eZ.d@ )EvYsa%i}cf)(_wn1N:&sd&n;=$xFkK<"E)j;K~fK~vr,=@;[+3n.z1jtV]9=Kz-{'L;;3S0&X8nJcmd-Q,a V^/44YhB=G"kpV(6: xRu+t-|3:>@ 5wFt=': n%5M3e0yKZLKAj:L1oI#S'O4d)e$#8h1T#S#J1dU0%Z&WeAl`HZ<g|~c EwoZ*%Q{dU/|Gbhdd.Q?[a~:.vslylSwkd , ,6J%c2 0;(, x~B2Y :>NP {nUfIkF?3,XPn|v=OY(2eexRZ7_/QlUkXuQGV&C226hTtg:y]sxBNOsQU WLI/N:7!MYCNhLvl}}MY[QPHqpwywre[XLB<@H@6 fQJXMP>+()34:C@L`]\PIDHSUT^`G  zzqwmww}r7Lt (FTk.5FYiswh\H6$}tS4!|f;!-AXnO6KXh #1BGRcepv~~~ynprdk[^_VIHKB85:>BJU\jtu   ~hfUE/"we^\T\OWbjmttz|x}~qPRaUjk~|n|kqrurxzmdadv 4:DZn~(%  yxncQ>9! tv{z{a`ZbUTUOI>@D@CHJMK=CUbj~?Sek%,-0-0'"0j[J8,tdEC7<>=P\jy^ihXlxurspwlsdQUic`\SIRLXhep 49CLNj!*"$-/.)~saO82ofolgLY|xuzYNfWc}x~uyg|fn\q~}^x5:WrF #}yra7:#I> uXXFRh.B-HD:EGDopzl~TH19*7[A |cik[Fo83GZJly1PvvtokroJr}*?2b#)TAlrV<9MGA]C=CcmK2P7S[%@[xub9$Y9 r"'AB@=OdmC|o_~AEl`wg|aKKRkfr[An{0N@5!WQL< \{_bDfok&&hZ'$=f +=zQ%DTvU}Oy{TYoSgF]P4!*7.{\XTy~D<U^3JKGsS.$DwT)r7Ck|FUq+X^*E^US (-,ImP8sU:G cQbt|}m6 WG}+oBI%?+?;RK6Azk3r4\% rGH0QR/Y~75|lQ<GSZ20%e_F 0O4> $k#*Z Ok}k{`U2a|Zb$jFri&E7'yscgEU{@ URAJ'=nF 6]|rWv+WcsO-]hwcTTHFa')ED_l-~sE]4Ui'68![R8kv}nQIiUUuQI~u $*avPIO?B/LIZV6#h[K_ / ,v|u$Ew\t2@nGL;?4p8bJ";BY)Mc D\8Ivr13R!%ZA~Mceq@oTn'$BlosIodtlF/U|d:fw:X)3%(8?,h?VUmy 1.22;j,s4Q~#Bg&tyql5Jr]Z+7=!$2br/+Z VxZ$9tik 1eCN\&+25Uu>/p'c1d%=`rqSCPrl8 rTt2/OG9;Zwlv70 "q S^vaDs^}u(}d?$U\m`mm )4#i/H6bCv~cI[yZdZ,b/**KANrPImS 1rmBUfB]SY`=X8wzhYn~'>}Am/@C\ygsLEvVbcMJ%W}H,r, P2u4DqjhF. >G# 9WZ"!)Vfp(kp xetcljYrR+?un]d_pXXMkG\ Zsuw^S(I\#bY_icR;P{dRqw`bWY9tvcBSLW|L;@*oji*7.]gX' !\$H}zteZN3kPhQ}UTZWYv|oBE`jH&o^xewaamcO!fV#cIz!sLUN@6K[JEhT WXYzo)Ywch{Ik`$gMP<aE:_ |.ZJf#{\KYdp[]iL>_ wv:YFfXcAPQPor?cKpQO2Hm"eY76Hg^KMxX@BB7-Q -T\GMxQ3$|\IID9p@ 8cGl L|2'vzT1l;t:5^w;o+Smh9nPre~sb%3"uqa{xG--@H5nC '(bbfiyi|2)!9cF!I6 $. !$$ 5 "!Aq\A@$rg(m/T[Nosrz  ~M}i_jy{avxOc\@c[M<fM)Fc%|h`{<I wRh}m{]IQ1 >7B(?EY GDG45::/dTKV~ b/8q#IJPK jvsQjy.9) ,-6 0kaA/bk%~'DilrYWjpZZCgSfYS9E03S>IPZ4<:(.Y:Y5""$r;)f}c "w"<K217K$ /N>J:3:h76IGWU^0)AvJ/$:8GTBYnkZf%CbQO`;^u'2JH0() 4< +aMQrr*Ah\M\e#(Wf6\I. |}oaf]g~~qrvQej" +ED*$*F~ gnvLxdVnfUgsA )Rf9K47f*(XrxSF@rb+nmrd:i`Ma}a:`G2.))3JivlOVP<0 GaYUJqIT36nI/Pj&MpXVaE" ' #[f/ %"+{biVwQo:7A4-.-K4# YgQFJnvV[yx}}wlOg9%=)).R;2(  =G#CLA=11U=6 K, 9%26#sU\ `ebYDffCux~\)Sm /2A?*S- 3C4C>=C5szwSmx !!, ,\< )HpF!K._o]j;Ris? 2O LN`cjHNpgZFe]* CE)  tm[_tu""( .!0'TbNULE*Af[L??6?OYoG$@cmC+ } :BHNKrvWFQWIM-E[I.!{yq?,0LKH).5lhfiy{wvl^to" $E[ (/$HPB?|m4l}pRF4315tJj_c. 3/ 5$=03)8DZf0,V[D> 6RpyKMo3;ABJFQ>$@iC+( ;S7#;pCM~ptB-qptaL3+LXVB$!25H4 NL7@J7Oj:9EPazeSBVwy`f]TM-:;( $%3'3HA8!\ez@Xze)G\=?bUYIBGj}X9EN?GhceswxxK[{dhgCZH %%Yg?qVRdz,( +) %nt='!2Dwx}ieOLFLAdnZC1 *69KA\xvyzmtZ>a~zUF9BN0R]':<63,4FUG&<;'iobTX~M7;.phhDC^U@HNhl2?Wx , +?Q_I2(whbNaq|zizgMP7]    r"CeDZC 2,-8*EJ_fkbKKNo[2Mp@Suphi}cdl[~gJ_p|bN>.)'Cz`kcH4;.^jmn\[=SO21+ 14*=N:FTDDA@5+*% D)k`S}{h[h_NdD*4'3JPkbsaB#& cJDZUM[G5bkCMDG,KH:%<Gz~k[--> ,% 2L;$&'!JcV@2 x\]zvVTP>Jj   ;)>ao8Mt{{|C_=3EYi\|_Xd;2)CV1+(OI!   /1]VztEJw}jLJE[PpxKfhrra_E.>8a9 *" 'A=a`F5MW3,!':5R7Mw|^bUe?4@oNL^d|txt45xI[q}( -: % XiYyi8 [p`Yn}]pvXakl ypxRG?6@I_[hmp_SDMH>FC/E35'AbnyZeL04BaqU48YSgonG5190A{g~x9#!<A$!IX5 $XWD;wa?O+B3AaZB,AV4/)dtU\WTf[YVd;8^)* rzt`GJ oxluoz[GNTZ|b'%$)=TADX1 .!}lHWN&B7%GD911/*?J,y*pg8AC/.17(@K**! :ETqS7%/dzU^RXePPwzqr|YtYPQ[Dyg=>PJ*&HJN,AaVpb^^KBaSR-,fCLXaWx{k}{p<aYK,"G9O\9#>ISL>19-*+B_Xtt^|s{Ju\`tj# >?E5 +wa/AOPbV$>_A%,$ /&!, 6Qf]C-1GQTl{qe]_dA;>!#2BwhW]HOcbX*ARKM-6t{|lEadCKF@Arkyg\rR<KRK>F\d}oMC:F-8TDM- &F`RV\7,Ma-:A89"":D!wbt~zktBpx{\2QU! GeMV\SK}c~YqeP< 97JA% 1Nuz_yxrzn%+C4"3*h}p~swl} 7McME8 ;3-+) b: ;4 (" Q8)"7NK8bppi}hE7  [Y6ZkjLKn3(@AioGIlr_qaoZ|oqLVu{rnhv> .,CPuu4:#.XCMUbt0+!M5 '!' #[4<I/Pe<LXwwd2"/<;0  %79K^^?'RM[8MmHCNISklwmwjkV??S88!/ '"742hu[FlsST_<IHPU5=Vg *-'MPB4 aY=+=ATbpgbVek97]W.O:+UPrPGpt{]Rup<C]L7.%"AbcUyl--(D8yj02?K% dh^47ufZl{o\yrsvx8$ bwku<=coR8J@@R~la?ES`nkz}D'.N}iUKnsY^t@lnznvp@P3 K$&JV~OGRUdeaJ&/@Wk\nvUntywxjjgG5WWKavp<=rnk_&|Z'0JS+ .EFE Q]  $X' &CRuM<>8 5L+>mv!y_uoA`p0A= z( 7*<+O{_3L2 G:G?Be<OrL[^UL- @:0@5 s~p\nXmkNcdb/6:(,6$/PP>ZZ^jbus~^2Vj|vE}\uhG&qppnzktdmN3N' "1Evs{w~Y;>]}~CIw~bXru>:]6A?4212-&ZRfxBqfk;)?H(T@9<skvSo{YgkXyM0DntxgUg_au]_VOyg20nE) -I(alcyWRglq`u~yUgK+Ffdgx # E gU3woNcp|/LWqg3AW<ziT{y!<?D!,5L* zxOozu!5501 /  5s!ewZX)&2eafP!@5 S&8V~Ysu}v|om :9$/ns&tXsHwpi("?X`@Vm!boG gQ/&Ph+bvxQU 7g9,!J s RP:`7xc+ZA9*( 9jRSy|LsZ  t 'mF sZK GR`h[gqR.-1"iOp<#v$<  su0 C E0Kq9: w,=5} (r ==6A@x iN!rlwR" *XA~7C, U+(D|bHOi>B|I0E_R1|/*R1 J & \[<Tvm 2LVrJ4/2. o?c)O [&1UIv"fb n  8Y P  [  8na6P_r X~oY;"|ck@9Fgl x\{)twwrUyC[xI+Zxgz-xXQ2DY< _+10h"5<!vL@>93 ~G p!#F{VqKf*-irnd{N.$,kXI]&,D" fL: J+N3 >iwE /jY}]8)\i??L[*>cLu>1id+$8P8dd2YI:lT3|Q3\tA> ZLO4y].@: R6nv=f4Jt5Mj7xuTJ)s}pUHyKs{E5(<2[ROmecEbqq0S|! }c'p*;#b?8.&)<!=qf'WS2!y$ZxJYT8>cCAc1Q2p0HhoJrtX/]UDOvqFV;5N.$GEykbK`8GxF? o  Sipv-MbMIh%A6v os= # D F1Sw9c*HZO&{UXs[+hT Xc / U CW zX] m4,'q='DQ4%~RrjC.>lR_ R\*M.w0.d. G h O9Ysk${!;Q S %)Vt Wu c Y |y(^FgSGvDNBC0 eGK1F2 Q;w] *X  p]bp]He?c77iYB$@  l`?&bhms12wc ~ ~ >?oFTBx@B[QnuYf+r{ V SZ c.i& Q P 1~Mo%q].w;*C7tgWM !D d ao Z??[ .= / K 3;\#Kh(:vkO>Efw e %rXoH)+p;mG t , nx=o"let9!  c^J*F]'  ;d r4ET' ,#M9F6UV +|_uL t]!(c = 9 R#q'->\@ r"*2 d <`Fj/ ~>-k)My &g [JenHSgJy5je==n im(j  ~(f'O.8<[xYIq XOl/883PL];PF #  O+f3z,gVgD>~CV0o-w]D 5 'VQ.,_4 s " XHy9}gL.ySw09($c9#]_eE& S 5&= W \aF *#DfA'i[nt {q@Rjf2ui9I7  G R 6 2 \K HJ^6#`->dJj8;=JDp<M||qP-(4.ycifu: !5Smn, nC:\W+|2?RA>4rgqRXa %s $,x3HSpjX n(m3fYL;*(Nz(WDz@E5UdVM5ux('+g[4ZS@Z;/TNFF)W-u{i8[:e5G#Edmg>lrSclCtF" W TTk\H&  + * ucnXc'$=D$R/hbW*'!73L9{NKU+5u`b t OGT8 c>OE KR3oX!!fBnI#Eh '  `Q"L-o"(`WUx|f:+ohQhunN-J +7`T0dj2 m1&B)\O|okO :d6PbShX%5jy (.n@ S=NF , W=OPr H0M pX7aHNwwXr V H` k Kep[:!Bdjcm03=>hxL# U&" $ iZZBXh%:mM~m>j]6~#@>MEbTCj$q@"%KK,If`'d[!&j,8')-3t !0g: #:jz0Hoby^Z+*Q; CPbqeO,S9~tbV3eA{rya.+~2#?O$3B^AE6  XvB)7r c[ltz,D'PlhZV~c18I0IX[lgK$EU^=<[D25StfFVS]oSPE!1 Xxe)`LFlZVSRgc>?!, %^[15TvbO'NuI=M_,:jvhcj|}wbrhXVsxT3(LjSC(/32EA '{jY/,) 'AmqA/C<L<6#B5 vdelPXdz] q ya nT5]^~  m_.]p }bJ ]1y3v G*srj iOzXf*# { A  qsih~7Fp ; 0P32HO |X >FsMEAK ;Xv%:yF[ o5  8* i_ : FSmtnzZ*% M; t =IV f`>R cjuz'Kis O Mx(6B4wC5Y :\I'* 5p4) 0s8 2U:  tqx6?nt^JA= [\!  ,`EO * BZJ_[A/ a (dI*ui6=u'9  xMiu( ? )  PtCMv  N7!aq"Uk:. U GJ @B|4ER# CC Q z 6eko- I, /;O PTFq8Ph( 1Th+!tyf q P .U(V`7 <HV~)A78705 %&- 1`@+(^[zs4   8&sis{HJxc:)r59j/lXlOP6'@mc: j 8 nk(*^;C;eK +B4H"c5Ikr<.U li {`3-qfO.(&1"EBkHb=7&g45I8d_7(*&0iq53.g9-5j Xif8&[MPJErt]Y| vlgi?ln<XDE* /2p rtoG[~raOKLUHPo}cmjboXoa1"12#" =oe~8SfBbxjeHU/~ *<CsxCCV68gzE*"8oamqgZ[*$4cFNl~VUTb) 7?9M)0@glxJ:<+cA xTXTORJ31/ 4KWr_7Yvmy\`O\rmwoj!1fgspi[u`/[(2"=i42I|M2md-5:CU<)9D!</'Xogd'>\%`hMX$aS@ ;YWFLJ^*LbU4 +L4"%EQutx~X^r.M0*C@!zhEAvPD4[,Lxj"/M^XXJ=c!:{&0X[h_ 8:HZ'rqglFd)TSxfl{s//Qw?c|\t'zdv Y51Kui0aAn-Bu4gs0 I,aX'pNp"jV%O((BH+e=\V1\a.EcN:wU`;#Oz5j]'|j)!B+fO-?h&';1~2QWw3.oi(53Pf~tWu&pIC] FJp1aHDEb4k/@b6o#'!\aC@eWnCiNaj c}Ij`>c.R[]ch3+DeB;)DnM- ,D/ wolnGSgfZlnBJS K<8F^ggBEF5WO~.]\ y%SR8]WtVee O`g?Acd{OTE]~vqM<bL`A'CjRSUl5PWl'<@ d\Z@g|g)ZH3 JYrgt {M+nWfv$2ZAN4q>J8g+I @( w,V`U['f0 n}ef7k^?*KB2a_. cCQ R5Hz BXb@J? 7S?  ;f\9c}6vN# J  ~;H1x )/ouJ]E6 pq/ c l>-XTi { taP2+_nMP22Z% NQ 9I fHwab;};U{.J k"Kzx3 lN@a s W e<5X%$Z#Z4v=S:f u] 7ZD% D s  {6.Yk#>om/ !d[!8  IO0'(T ^ p  S Dl2A. *iwhmS0%  ( NO0j) 5nP=ZW o  }6M.3b' N ; ! 43Zu z)`K(k2s lM llwsH.\) 4  61uA\8v`>b \  \KbO=~m7  j R?LR|3 v|De4j b*P /+J5f`U lN0&a_{'mTwcz@Dvw +O .N ]B2.#qK}p%Qt'%e)tEv.]= :f@/ p80Dyp&_EN|`] E8a9 R :or$Z.U! * bKDRd1R2"IOMhqn*{n Hho1pVY"5 ; : -fvu iHgfK`$V\/ X#x NX?d=:>] i ,XW, g-8MBw"!z?Lk"]- P;^b6m&0 4  %Xl Bu UNVg #0TD \>= k}t gzO #geXY l  sO*IVrI AGezQ x>!O>k_%% D6]e k+4z 3 oRXpRMH]9x?A*zG .%"\ Y8>\2 q| f FD^unOZi#&I 05e `?a,[Kz "5$+ 5݁#SkQ Uu$ ;c M- #q l"U=HTdz:Mr%irR   "Sv}ٳKY][r% 9E*ޅ7G" oD(L8bz J S'Zo lp3(T"Np ? e A.} 76^  (` tx2IM NSk~k;r!= gh f/=<G ݜ U wfY% [X0CKSsmzYY| !l cۓx-;Iu DCS I>:{  Rd"cySri# ~*/!!Xxa& k* %4_4 Pk\mnK#^  =m3xx12, &~C I!AXY߇V$q 5 =A4c- g _X@Vx<69CgCp !w!=Pkb^6e   >'kIR2x 7\ M\2tP . t. [. w _"1_:u "8se_  -[B< |n\NC 4668%}0>+ *"!mSqQg ''  qsR"-GaAeb/: b3{ ?O {2x9  }  g9B3,n2H %[ tfAE  / , q 6^ }BB0R)hD 5@$ z(6S`f *  ` l_2 c  ie\%Voz8fnX7 [4-4 ;;xZZr A DAM|t{`i {&|:IDKv%P3a`n bf, _N f:  vDC> c?j>EO:t@)q3q2CF Nbw "+UDR w d{HD \o+,!aH(|Y|=-i$\ 4X. *bAE"\je * m8!EmW_P,oIS R,gG   ^S>Y0$8 >!Cp)q?'DN `b9?j5 e    Q`${ujki!#<"4;O\-jiQJ\PaYD"7EpUN.8|I8ulv QoG*/Jg!yRlK@5LjTn=5 vA|k1&A@ExvMnd;/\*peRh`| _x:KA_ncur7b]QT);)#bni.#$t@I fM0[88< JH!tDs&>{2*59YmeW`zeb6BQ5a@BC[g3YC+9a%\EPhECFx GVFQ1yR_/L@mwcd=b6mj`*Cc]MhUM/k3B{8aqYmF'^#}E g\,yW3R3[q ;U7d p]pOQ`qE7tB]7h4 vT_&$,YzSv# |;<$E,VPNKQfKN 2oy&>jCy+B. As/3n (47v  2_@11|nv;JpV:H`y"-J(~@y)1YZqBp(|d-mUV456yY/UFTu)W!}_0RN?&|[{:$eLX>gw{1e&7e8zNp zM<{\8: NOaU&)hey2{f^; jf"l,6r>8_a AD^ K{Q-=}|zT'$fh7Y)EQ>Px 1aiA jE[t>0-|Wo UPBJ;%#<"Qi\=s:w!$yPsxz`V|U4iioxcEczL%Ci/> nFN2~WQW[}(l4E7NlDv4*$7x$m2C c7 D@mM } Mu:=zC/[^"bRBgJ 7ޙTG7^LI0E 6 G)HxwdeNCix1$Dh s yK3_ $E Qb (] \ G ]H  MEmYN%W}o ?g .^ !& ]qK89q % Y3a f s!ai%c_;< 5xqe6Dc Qh Q %DYn(  zJ3 V z ;)AGn zwnzmL Q+/mQcW3e yzP[ >P 6 B@1$[7xs> 9 G'` ,U%#V  FSX y R[[tCG?M = :G T@7 \u '1 \ Drk  YZsh06H_`l(  ??2O O03 t Mo2VR" s 2 6wU{9K j W x{ cTC1sG ":A3# ];r (4 ndyw |s FL @ nFloN'- I$Qn8!nx ; ?gC N?_K?% Q |_)C(+Lg G@qFHO)\Z H,+3 q13E$ e >([1 $0:8ZrYj vdU32xp ]|",B>!V l): fSncB|y}\>s1/ bjf}%U aX J Ly_ R I) ?nn0*|S,liAsCm 1ly Y`T f9~ H s L -l g<`s(C 1JBF^J[ Qm.f[TI4 r}!!wQ`p'(- Ao0 X+bJ`8(Ey@ Hw8)W 4?eq H J8y/  >;~dWmT c PJ  a qas@Y M E v%EI| 0 7+ vV1j R_b `oL9/w#U< 1nZD ~ / - =}Q JN;}G [ =B$^" @ tbg<  A MN#k%n}^+/('Wcuvu hu0uoY qf + ~ !w.q@ ` njba]p*yS3e2 3#)F | st[1  XW4  k  cxS(N:@0X B&t `6  e:x) j _kqG'% c Hz!}U"cW P @J:C4Kg { @jz$NpK%)znlP >c6B.J: [ kO\ N, R~'"!cue+^ <[+ Lv;9 "\q7) $ | !k]6: q X`^UVy|oI  7* B!=t|9 vTl[- h 5 b FUu VQ}pP Yr  "> I('@5> *=d :*. ^W3k )Txekm N*!"r#His {0 O]*F~_N6`WSB|UoJcH"!EK#4/2V4lbb%.  22C9| PE}:p$ab4lu * $ ,j^3\9CqLhv= 6 X  L o1+"&S 9r"Y/ >w =tzn 7z @e I:0b2\ + E;:n ( (%HWm[ M+&f=C<'D>ay=+`Px Pud4 | D%   IQf~. Q =M }Hy ) xY&1i9av' * x% i |8l1tHs?Z7RaN<$2~E  Gc:d&Q  HE%Cjz6j]FDZqYP/!v^}B e Q MAA "A!b\#fSP|TAI0Y=haq7<#4hQJcj,)Z,7m PwneN 9Vn A\K^#wreE>1W\Q8\ lmD1zsU>2d_ZW\  PudRwc^+- "q.5Yj>aQXT)mYqg? ~J8vf4oR t"bWoc jI Uz7D @_M}y\g,,W'>y1Y)>8E.dVT\(-K()gv+sO$ _4cD1Yk+!Xv}'mzMu^Ufh*3F)'t2nh)K9=g@(VIW4{TXe @Gt{gCmuzXy0]8QXAii&017CQ=<)Jv}R&. LtjMS@?1225gpt(#-(Ui6 5URdouqncZzt_1Ku' 6/   i`Yne`VW[E HYdry"F>~wD2T/!2 HW7"  #-:!>OM^qb{tWsgwpn> ,>?VF( )9T=O<$NN"HryiJJU|g}mq $bCEt]F9pK<E:)^^rxL@&9|k}^ii*<B]~-9YQGG(R ~4)(>YnO<mZz& hhe'ttw=TC8,.J`TV]7)CeSHkM9Z`~OmJ<'DhCzr- '7/ +%/&#1mJ4y}m':_sY0! AU{xS-("U|u{#}Vr Ae Tcv5}}m5gU[;_Jez1'7Q& yyb)Ny#z-R:\ MZ#Vlrs ETKZ u`bg\R{6'D_lOq)($gT~#Ho'D`*6t&$5axpjz=5Di,Q:]Kk.^ %we*%UhWU.f!6Zme8 1B(ZSe;2l;+eo'3 MNQP5jQE> =[QN{w?Xj!)eh'|1 u`)[Cb_l{5@I?P]ue^pr5UYwz^5n g||#(atDonqDnX&z r!H/,?)Z6B [^s ac-bJ,0X$1/ L[8E2Co}#}xCD{j$ u  Ek8~-S >) '%bmG i 8 HP{v}Q`(]8 2ki s0 Y F>^@Sx >tm5.,!C5kk8X  (= }0;} F|3  !h-Kjdgw 0?\$ - xUO(: n~ o+8nGXc ] 8O3p\\-1Jrbb )^_<@9  5@KA d  ;S l*TTN; Br,9g 4Qgj 5N/P* - y n9XeBV|b_R UOoV) f ^a , , "}( 06lM*Y 8WC5j@KKkvm{)QFgtMOdgXa^J550[N/k@i6lt.iq:@HfhNHe:"`[0)eY,D} [Q]cG<gB(j%<Mw+(54j RIjB17NVpT}ll p(0H5CZ*o`FEJ~H'DY"JM 3BF7 Ch 1YJ?,Kjhq]zF! 2m#R &X\M$' 6IUGW /wC!l_).COR:v[b .HclyvmA=DbJB`X';_6mHSrOh`OmL3)~z{fGbe`B2(6=ijLur4Asvx.#syo"V_1 }#_Tsh(KoH3es/kF[c"s<JUbf~cV[}S c1S2&4 Xud@= $ b`&I K' L C Au>]3] P%&heylL7 yQBCj* Dh     TXhz03 Y ,SM^R$;*E4{6t0tu jY(T3F  V (+"Q\79+I"$ CZz31$J V jn ?D]%^G 09 v%#&BLd aX$gQ\\ X |Y,aZ/  7:#"F~" 0 r X?q (E9G /!"%H"KE=V- ne>^bJ0 e00%U*<!<vWl0k _(lgi&F>a  F X,_  b"|,54Np@@mQ '&X`:5iu I 2 y L76CE 3j;XNi?';@(-  P4$O:C5-~tP^9# 6 6  ?;= vvn{F.u{R26+Tnad% AG`N+(    ~pyt5Z9<=Mq{xrN QD:  1+,hxmwh.v^eyy}q+*WWHb]lM$MVR?"  "Yr3Nj.DE !wzRID4NSFBEA\AD>N1;2&ILbo$ 2Yw|a K 7AI7J;/OO/n? >2*jr$U~mdZo8-R6%yzQtOVC7VZDaigRVvtFx\hCu[$ Zlwano(a&%O/atTFWOe-81*O1*PbO* k\xq/Gh6_Y#|fiH Lcx "o nFxpkIqKt\lCc-C | JVB-x"SY3&,Rm=ED $=aKr~S` Bw6}!hcxQ7  Mc ZH*P#eT5$U2U]NM S|].*95@F 0nqi_Le2%a`n++jm3' -g.*}RCbRn]wZz/A>hKwQS@Rp:@fQH:TaD:%c%$bpshG'dKbY"V}r{!8"}}ALuIf" t_g7%[5O-?Q*dU'd7y3P<0(5Q}2+Is&}~! EB2^2rW`MDQRH]F1,,^sHR-juV-.Agx.1]eCzZjzA3^S"%uyWp(Usy\\_#0#!L@nlr`k2/dxO4Txck__~`iDTpIWX5 hwdJe! cq-: FZoJ+# 5.Wq 6(?bX[FE'wag} -& < .2)%(lu:}wWbo_vZ;WbKFV]SM6Uex3yh2.']@1O9RpSbnvh8wqn}U_iPcRmmH>QaPB4;8O]X71I@1!0[O`lKkxR%$)CYRhrqPPb??}iTlrlyxsXGGgUM\b\I3,Esz~}k5'*I( 89/%!><wmsjlapsikb@D0AF<<ZvVkm)N`7" 3)(H4#*U6622fuY[{iL+S_\xwUhthf<@oliWgi]Y/1LWLEZqtYJX4LbAZY_F "0%:Xwb"NNPI;l ~ 81LH;buCCSVN;:.TkE?#-<O4vafm *mV _EZjW_."driN+ <2Swqfy~gi}`C:A^kcO\m(;C[D2yOuQ`D;S+{ )(#2M73#%rnTy}x@xiH,OhJxz8 v\ ? },1<]?GH{m^8Dt53o;zC}o W /{ 4 j 1Wn%7VC3NRHB*T.FQ,4-7K2E66Ra#  N   ' z`m/?4MIO5$O'h`t'*P8Q-4[ K3M;C(j[QLxWRJBUoal% Yv?_\$MK+B*Ls,~j*d6<x1vue3NUJ0 ;cAw i|e+/)A}/liSO,zAC^z$},s6HT&O.'AgMU-nxN!20Dbs2o9I]j!ywnlr_<fYgW4 7 jwHkLB<4"VG3rzM WcaEH}C*> I;f%B}$6J5DML, Vv/q` ]gW &tv("_b\L<w62omAy%-;TPt0 ~YVkY/^x'vx[WC`G1z># t7ZRqD%}"5U}_4ylrhK d  e7J[Q3\;l/mD";t"O H m+cLjP4M [!76\[ulmPz 6ex|C 1B| . Rx 4N.<x49A | Npik?nW )')"31*K1 9G  CT c`t _ y ]:C^Q0\~Y he ]&*E%2D ay?sZc.j -( K ) CO00z b~?"(F''4y_z CTR mC, u 3 yXdtyqFd" m%,% sDsi@xG  7- >m }4,%M|}-Y f )r`'n` d  zE= !f|( /S4l=c4vvI DyoU*iV]jyV 1 Y +Ew.%tru)IXB #$8/^[ u(0I El8A\ Y &QbZp O V  D c|1<=5p=l !N[  zj=7e . Lt Eyd${\ &sx(\  r  $c#4 ?-b .ug"!JFPauTb  } \ , e;&J 5 F(v %[FN)s wF3n@ Vt g m.iC5*=D o7'))5|P] zhB jJ !-z pK _5&-$bt[#O:mF L K M h) 5dB Q RE{ V5^`r 8 Z% j!N&c VJ+P=FB>F'{qF\x^Iq-^)d.O>3 G N E>C <Bn,G5z=  -%a3!)Km  ]E d du = 9 LR!v.{r!c2P.l fg D]B @ uRrE&9 R a"q)V{*8 h m < EGArW^y^F4`L c2=_ x j K2MS5CD$qi=E(^+#oZk6Y!?{lf{|!IZ H(/ma SUMb?GB!^;8VU+:F #!:j>]kuKgtugPrU uH?wqHT](dzUQaRE)K0 ![t9uX3cJP s>WryNrGK kYHL?sLRb9Cb/;2MvvG&>:fB2?gD z{Q5$q7[?J-.) $ ;7Fb 0A=z2&0[Exv NEHAf^o@bs7W$"A<(<`+_(2nXVF`eSy)jRg!A,H%O{3-WF-d:f2O,=,PB:a<j_p4;n D)FWU zUQ-7h.F-FEqag2jc/4PscJBP^Zs=H~T7Ykf=  ! !P Axr 8 m yr8W\<h h YUnbj }I Lt   ( :u xq gV6 2 VJc % L! *SPt.(H6  % Z  i &Yll1o [ _ PLG AdtS3`Dusa- 3V >u;}C$|MI\izHc!Qq4,6v-s( +DL[/y~R>PL( #F8#{:$*I  U48E=b6Q\cIe[NhyHZ+;5@gQOqvglWHe_hY}q>pn'%~ZmkLR\cesyJEx}QXveJ_ys{dkp$6U=6cbE6SUY\gr43VTQkmwmXSNUQozqyghj^g4PdT<$c}xMnnqR%.ZvcT   0gp\45}^h1,4 cLIA;B )FHG243 MaP.#4.Y^/ !-Yh ("=L\MAFA+OG]u{jaUx$J-*0<.7 2" % ,  5, DGC]{jPZvc^yE]p\1-(;$u|la?FB S>4^XmI!uS$`e$3G  (a&`P\5mkv84 iUpN3:X#Ryn+8Ep:Tj$ 9  2V+knCayX;z|ws9m>?> P vA| ^ Q )qGqW"/Ms(o09z-A3"n9C^C~&| u\ S>kW[%~I~,8}o!7Ab@%3i(_j9 <Lv' -n(m*B 6F^nw@P.W~3w'%wri#:$ w%~F C>  Iszi r z(~WP$0^pWta N0WN _)DRn P  ol@q_s qP&_=w^^e2+xG>k 08&?N [p}fd9 0H @sXAdw s go{wN, A&]u q+ *[|/T~Fqf[l   Q9Qu_ElY"e}0hl[l& m #-g> -uN8K  k HD1ce%bsWQ?&DdJrV+? CJ2+Lm71 u Z ?9'V DPD_ ^yKPzqrW A~T:]PXZ0 ^Y <x@F%`>E:ki>B;gjzx $BN:W-! 7 q rY})ElQb!pn P)3L|1NB:nHbIASc/]u?  Ne8TkwUD_/^R6[D2(u&'#8sd[<E-@jN4aK(L1)YkFU ZL~q$H4  3  ='>.Zr@=82YdZKFCjnWIUX=-(-=EX0*0";0 BKLSfmST/+-fSq}ixxhfwwpn7PsYkcG=sw^W`vhVB5*$2EI!  yjKTW:["#;SOhtn]R[QY-L8 yk ! # &</>(<B":P 5 )qw 9 B2*-,,.ZG) 3HmlkF0$$OiOThrKMaJXATSH n}||KUf;zoB^vYwyJ32Kh}i^AjMo\HL kq x0KpQ*GK7  +QyHup1n6 vRyEw2Tr}>iRwbpTe}YF 5|sIA*49/G]/A(,2|ueq 4y%3GsK{k'oC9"j)bR@s:k6I+SKV17As\ lD+G;QxbU#.&jli[4 `FSi2F&eA]gKR,ON_, Unht^~-891 ]\fo0y (X:WhV~&F*JI,YFTSWl&4B}I(/VL:%mX ok`vf9,,7$HtJDR %sJel!JE18n%7f^hdz]|e#MA~1no4TU0wMofx9B3%BjZ vS2< 2I dV5WWd0CDqA~, p  5b^C! I[iYU5j_ ?ndW/I!U  'VB >^ f*x!aZ  yaTW9`e;3QS7Zrohz?qOC#J} iw j[$Jv5 J, _E8gVjlj-/-'WW+Y{  Kbui@y 8T>u&|~kR6Yw[c#BBK | f1>&  M.D!MQL*o[498\J_PD5eP v( kG +>DXNg,DCH-)RVg :l6n5sJ h/"_.O  Z SGDH I]#"d%ACL9G_ N\ (ep( zJD0pewJ \J \dK$N:LDoJk[h` m,&f b     m%j Qq:M`&EN $ > U%>Wp6J  '  D G-A#N '^;/h4_~C> JH  /L OjC   2"-=0A, /) {A} <>e W 6 }=lp^&ZJq A|f\T7R%  sy[*~cT9]@ws /:;tVfR W  XM&|< 6& @:%[@ : 0C6hTR0J.S" v=6\ Sdi>oX vxN BS   ,]\~b~J`7}{X;Ev=Mp y v7G @$6/Kz aB /,um4J ",A+_ 9 7UOc/rI @W!nw s4Kv#0t<57 e ( m _] . L &}4F7vV em@.kEkV~ E@ &CWu^\ d <#9!%3\?CK&=pa'5 \N >`u% J Gf7fJ0|d)- R! R 4J|?R| &rv|T 5^O()xixB6}YC:X"6  y I 4  z 0 Bq$,mLeO(]te}?*.I9%BOK~ 8c`^Mo_T AzrQr^q&M|+G \6"}d6 3!c'02P8oq\&9 ,}i3+!C.07 *zQB14$*cPL?. rX4 __{8o@ucTk$o vb$7< (yNz6EISa (Me:6)AsuW2? .$ 5Th,)G ^w_x@S?/na+c7 OI#VE Zc+R})Ses)9:,2`^f0nB+tK=0#;qvs$x`'bqH) xP]c:@YTOoj>EXd5PF<[ bsH"XFM <U^%RFL!9 2^HnuA{oDP]@)`&aC:ZY+TNk7-k{2C ^s~QN 9"VMq&v3>)chEX3`H@-Kgn2N<ivY]~$iFXZ/6R|WUjglH)SQFg ? V@M#sFwY H8w10l6'LRqpWRcJ K%6v=3[Za"69S>qWgx<AxVW6@VZ\>9n^u YcdAQ &Fo#F9$eofFW7LPU8mu^<%NC9'hvlEg R[=".<f!QaU P*JX|Y-8wE9}Z 0qR`AYd#p>zL3C/6m 4Yf./BDBn   3~M8pTNT=bX6":|;X[h-X\c[,&Za{|";J ?1%|do/Uig~@af-SV# ) 0 dn< hG:Iw/S2p^G51<~S?j8'L@[ O\Uu_:W_ `u60]sa0*bTUuN2t6i(  h+{3t4ER-Bv#9bK|?n[J"1n48 ,HN c^DB#6$'=| f]:,}rq4oX|!1?x!8 Tީ h % wju0Hxq yC FP7*\m*gkl neC eG 2;HN|6 KAbJ  cC %@Y4`S9!Mf|b>N?C o&" YP|zP ~/FFy <w PJ/l3"Ik\ Fu1o 8m Qd<8*c  (ez0$VTwh]DqreaM R$LRd_ n[ks3I)E  @eC3x,!d8a#:vg/N F#^Y `t"  urlkr8 w  pe9EQ+1^LTD#A{abC~>!cDk/~L: $ K%_t/a6zI]1> 5~o9+t 3!.CD}pc(mqs Kz%%F^} pVH JKzj bhk0q\ $ *s7bB+,pCAz2 } ?% h=P^R#M  k)+k (F@=q d9uwff7vg"!yH&6w/X  }IKve&%fLx#Q` T b("? i?? g  \o M%4VR`Le;:Q YY=d Oxh!I2 6 I WcMXXw Roc*9 2!|7A#D bY gA ^[?Y( Z Yx#d^"Yi 0Bo NtkY[hl $CS#_ 2FQ-Jh-,)M'Ve9 @M ) $!q| *i JA _D P03*\ |/F^T{JkY6 d qAC \M  gaK H'/ {i"hhpGE = gj Kc 0aOdN [?p7".qJsg-wD 8;r` w; n X 8 %= m h% zBb E<Ff?\} 8}k(%L :7#?F9b~ $ ^U  NO"BZl~pWYond)w%| co"T cJY   b 4+d}?6>:ax?*6K\m9n%7T B.!B9Qsh f z d  #y]<,2ek+ VP:cQ rS-&Q _  9 vA_Dvz%yOtj794 1kng|NzM;; ^  .Q0 86367-Q )]]:J &8@Wp  zqo D 0 kdWZGBOgsTYmKW  c O$#sk2`%r@_Z1<( @>CG lGYoA~.B%IwPd4!'3/ qte{_VzuMEF)Y)iWD1OTbEyG&)M Xzrltd TJ{g%QT[YI+B,$u.TPW 4)bh/=5K(& {QaVB&o;c=#/0J8P.$nP_m ~JP.fxhJ/JFNAV`!]aGz~1iF %6bAJ^%Wc =ddMznU;?{@QU3CA38X/+d3=ST_2 [[eHnSbxU'k.\>)" |s {}tb$)   "0EoC<"lrovM:Tfx|ysgrH ! *  %[^kv#9}x ' S?9}($ xXjo}qXQB#&.Hw\^]p{kU/.PcwvxK9bvwRB.#$&8LV[}i'%  #HVH@;X|=6_|l<+Dy[9$.<$-;;/  &0)*N>iz3 0G1>72:>xvYO8m]hsznzmJ95%Nxe,1BRd=$(- ,K1  !D4Uyr`E]w8ErutstO6=H7[=N_q{z_5WfmcE''.. #3ZI'!)0%6@=:>qm**MRW:3B/;}Y=ag. #''\)*ZbpY0((5;D? "_+XHq 5gQxHnB+s`O*VB-wE7)Ak|se0Jb="zy~M)vJA .LcI&Dei8H*/  m7\FX7q\;hPNB)%:6x4U=q>D@n3M7q7 rm &OqK7|4[,hyHwY~q@=r{9 'PE>Kh ox,`3gyk"d&V\ O.wfj8pAC't)Vn2`5ul%HM;iq!S$ea[ JJ3$c}G61DX(M=c4"2 `DRh#o5_0$h31hR 1OM E! zux\x+]VZRlm-l|C<aiWJY%OU j7a$n_,\)ZxXsJjYoV2{CC2+vg`$vqKgCH:@V_'<- ;!CXx+ \NV*9!E]?R= BA1H6[m`IS~Xs  x  \5'GRmdsoVtb>A  & n ] Y zae666){~T$ Vr 3&->pI M \D +Y ! {2cPo" Gc11LDM?9 + i dfI ><`?FO  GR|L  F+rj/';@ i% vQ  Pj,{o zA  'B(H 2yI&]yr9fH~>k}U9f|{wzP6(/2:YWYVq`3RpdEREL:T7V})2OnO>n)7@Lrg:+2=a5iF"v+4I\q5`S~nIQb_H-L1aV[>3109PXPG]OERjbb`$"[A'"GTn^f& +%5(  ' 0EW9DqmGTW@!uc]ep}~M/mFQCWL4nDA V<7m&X>${~ *E8KA +n-UibJV?B W.0B\#e!mn=m=\gt4 "a:hP < 19.)rTlO!vM&\^}V N 4K 985'  t 3` *IVA&s`*sJ!H{.t : b +2&'9 E 6]]p.bO U.d1SY`GB]hd*qQ'o 8{]0 ]Vx & t];B}  iT 7wdI w$IbPo) ]jT!9m]6& ]> P HNtT(  g[.~Z_ihT7g Fz < + B3y5 9 28LA.?+Qv3 ]A,joI=5  sAilL 2 !V{:H6$ HA h!uX_'yo  > OOV `x;zI?B $ U D !: C2[&}r4\r2  H}W$nk> w ?!Hs e}B wGS] W?B AgtM0S.]1I1q.Q \ q A -p !^qLi=1D|_AE&{eQ/$ Qkrv[4-p^bz{ +7y1 ?8W0 #oVndr R&pe!BdJT, &$G(GJ92O*C,B  ZWMz=BF!pH- POu|w~{d#>FA]2 l/Dbq[a1%c|'K%^Wb/\uhkz`;5/%tOBmjU(r4Tl^3=w4 v/t8V %p jak3Lp WoWiNYd0hQq{hk8quAy}lEOu7tTStHE JFi},7tXaA.:}| /s7@uGQf?vJK3&x/Us41j]m ^|"b^a]8mz0<$?TP]ia -Bve(`AK$~C-70KX8ONJ?;Z#;N}=m *^3>2X<?)Ch9jMSwM+h/yQV_G)d8dP4OYXX+-omkJh7v<>d9iW#Q[ er^dy+$D.C|g|]>8E-2J\`k1YfE  2P'J@,]S-_NOM >xUyN5^:ZQ :@4IaN6QSR:jZ90% &2j{b[|yD7hO v|}m ,&Ls[X@2;XGwyh9!3 '3/<8A2! -_u )wAB/,sN;`ak)(Io.|f+[^m19aVoIR62, `Fp|EiHO7)]b@8:L7^vJZ.}{*<&5G1mGfBklGU>`-+4[S2[ rGv}RnJK>f 0+\2C?@XtfY]i1 _w<Z-964FI!kW(|c#]"J*wrMgN'uy\QQVe1/9(fE o  2K !8,sITb]~| uG8%~VLAwQ.~ Y Z vD } +},tP6e;DeLxa+37*Gk-*eMt`<Az -VJ #-P9` fN8w$u_J12|2n#< C (  c92  9L`A/gOT/^3}CT  < Ws  &p[*2N]=  N '0cxQq{(| G ic ._fW ?iD`@NE/!M3(rxjsJ1^VMYX%b5&&)5oF~UXPcax_t}zCC-`jaoiI#r4s,F .gudsas7* <OXAl~pvHY{{ +`a92z{vu,>CB*;)M/' K_UCf) (X& ?E5k'y.tE Y96[<`m #8. ""Hgi{2 g+2io9 z{VT`ATJYp-7ajO]$38xL%J\a:(]g// $CT_) hM<6$[_mcmQkOf&EA`#nsPy0jI2|P3y2zRz$;th;m|t{V l.tAyXrK&w !pLo/!d.[Car3wa[ZR k{;Cy3JzmaBJ}XM~~asB?dPs+g) (iv0zKWw zw}/ AD8)Fx?u0T9O`~LG,*S?>C*tY2C|0^m b7Lu N<cG }5-u7 \qGQ^)fIKb,vI  Ou )E/xSx5M45 WtS/!=YGP-acZ KKWlWb G T ! 1m/Gw;P_`Trq 0 w nT^>)iWm,<9Oj<&G#5~} &9'WEq z  DPb)" 'cl I q1l~?Y`Hb/5S1nBY!HyA>RE;#YC\:>(%o 7 _ I DW"(gy~Noc@{@ScZJC3@sL~fdwe_sF 3> b,r,*< Tv0TjpJq,VcuQ&#~XIdg40 k$<][.xx<8 zz] KhpE9O^= 8 4__dN8]p[f Y R - QbR*(BF _ b dl6d-:E1.DuS1cu^(rIh a|.6Gz)r` U (X  \QR V  D6ic9c2$~ m p}F %'i- b  H AlPtCPu,Z bo-zB3zT g!!t[ 3G[ E  rB}X|=M[\Vkp*3%~.   er D # Jag+c-*cbj N@[ 0x *AcL! A 9 $l9 P|I=61X'j.[rSb = cH&{?l`MLqO , s?je57X7_ )1KG4aU(VY/NU H4j #`v_ M$p* ,`iY4P#hoUJ( ^ {' }Q%Y%aB 2=1BklfrsrZscaX;*gP} F1>%c L7 pk$=:dWt<sc[KSQ!CIcR4m AR (?t!Glo)RX  Nlk/r>OTRu/KEx"R l l Y\ -={d 81~0R<>SoD[;&<*H _) qs:D \ T/3)EZ[Qq^zv-.'@Zt9 U QYV  q?&+`f_14bygp6"cE6hiS,N!DRnN`y2vFnk9%2&!/e~k:'qpx9Fe/CZa4'7,+>2C!5Z x.'% ;ZeUg~zb9#/:4Evo '095. -#  6dg{|]xbrlvnI*/("TcLCGp[S!.DK4 4 k]}u}heWti9qzinaNSY6PX]Yb}t}pdL$*4:7Fd`AGmwtqoq`nhtF0Utd/7BX4LrXB:+dXl* N ZIKo ^ vEXg-W >~{ df!x:opj~&&(I lB;m{{ SQ U Z }7 9@M:LZwHkC'|"!y 0* b_# d  =:+'nkzg Yv=\ueiM!I6   7L+x qkDu1n*zks2OqIvw I )~k  fw0H|5UkBF>3R8),;(RU>&_oO $ 1r   87x0gAC}+.X>+"<3[9/r-w^"t:BC*r&Ls3,VnME+V(~0]2C<\@Y I%OEA?.SS;zF#|rDzssL8<F,C_d_obB?[XAS]UiL%+ AkEag94 gRZ e& Nf RR  .eQ5&'vn' ,`9ronL_mVBJ*(Jh31``;B tm9;Sq9e<-?igAfY5tv:TkW:A U%e~aPEWkU; @5eDSw<]JS_ ~0l%l<Vv[&Lvf`z.5woK\] LI2vNebE5$AJUG zF'?S1,pGY^yJiE2 emO = L KKR^wdFS 2gK$-Ma|2yNa?n) - #  G2J}7B.nSz<+'ah CgSyJ } h R !Uv &M]r]]&V]nE0n%qfrBt>dmreO_kv V mcy $8N_*_oE"(B(* aAbf_Rl p * "%J8yX;f_LwMm.F'&&10q<i F t carvCf@F+=ga#h`TVurq3+v ZSNv5.s0= UG }hF"_/W~-qw bwrH!,i9/n xHQ<#ioR-lB]k3!) M9A; INC > 1 ]H3*jg_~J]P2N2]1 d+q'8+bCL^)RQ J   }sJ q):R^~)YJ"}$!K 3;+TC}}9; ? ^ H v 0c;B<`5`XL7F2DZ{w"k)Mb{l K } &}~K A6yn,A.$$K-hM u70eF4$ r#ltRFby+|4 'qBL gXfp^af&/}fA  s'ccurPea^8N y@[Z~u z)Ks_pjp?qR$K&}hNfzsI;).SJyS"NWDi:LlW]}w!P0Q{pk N\hl{kmtz} }|[UuOEBMRu-EB+ &8::6+*ipNNVUb`{{ "xQUnt^^S &Itl^2(4B3,fs{qnYeoE":1C; tK6XH$ sssYr\R~s\XM_GD% ZqP/L;=m_6  !,HWxp_MQhRXyx"efq0o6j/F)EXqdoV3HWM{ px.lV}M(O_|js`8E%.Duv<(ER*G/V0 Ix:O8$2/NPW 30v9evJs'"Yh/)+25}Z5nn#vNm2nP"g eI(OF4 {ZJT#Q9:e<cd`Q&ep,6>{3z3WO.t;2+L}|@f5GwJ-[xC ^Q1C "G1 "ns<)ST&3cYl'f4i#FR_efU_H@;]:>L [Tvl\eGHa8|y3.!y!r@=SAQLPQDHFnw h tny\I !51'3K.CtZS{e+wd nbZA.z1n"%~iK'{<S4bJ&+3aR1b9W%3Bf_g)Qa+v"%-og5|0 }SI9 5U*Fq`Qs~N&AltHI%!Hf-@i@8[\c(ik\bPq-T#eGY6KnT`8  #,"b&2\i!f[GIr GiQu5u}.1.-c=di#OlMc{0 U\l'DkuG>lva,n~]VTLwK(Mn2q&1",hn)sb" sT> YaI:dqN3,a.g=Y{?:UNM"7SL%OB=AHdoozfxwBe [ 06=\l |.G4w1>6<S 8h;]1t*-WPDkCFnl- awHcoCO[5Gvr&\]pQ'cf'A:)u m|1(NT axTE.m@M.S8MGfLL%w-D! ',n;ED[ dmM!bu}Tf{)zT_w05'^rYXaBTg \'T*T;V{9EHq e j*<6u.6C.c%C]n-)'.iF`e%Ywq',v`h*h*NWvklw]3'/=~=b|ZBOXBMU0,M>I*wrctu~H>R)sz0N'nc~`x%y:H\~tfn%TH+\7F{g !Kd>}MWjn@"ns^NJuC>bW|Mp{9`{]$g'a} l"`>2Fw~B -y0^pgm/W+a,pb37A.G g+sE^~yl$4}Z@GjzFR{v\t<> 5.\nY"gCU 4"#lF)jHBQ[,-N,>$Fo y|+&13>TohyUANE@w{`0W?VI^EJ#46-pI(@Uq\V;O?wwC5FmzMfyi''l>>>%}uUT.rE #8]uO6P.7PeJ&)/?V=OqN7 -wl}c}uq{ 80I&ilo=iwh9H=%74$#77OHKxt\kV%#4jY57ABF^w f~qhnQUKJ-)^R[T\594^GC%ldSVbPB|^<C8/@2+2 0$.7@K=yK>Ua`aezq G. D<   .% 0@`yyYwezH%J/B/{\vtf@:W.=3@F(>;g}IUy}U1K:)D9=Bnh*5wU@}ta~NQmyzgtinzm5C9s ,*]`;GB) &HC%!~xh=-7<6c%9hBK )\T3<-/"WXi   TWxuH& 86:ag0P(+1 b)DW*4 li]Nb4_bNue?i/ Ad31tS V~X~wOp1.1-7Zeci+Vf=a@v @&Fiz f>]@5\{:)Oips$6.oAX;)I2<Rf ]s #+?O<)z{ ?~V1 uoXRis 2  Z>R8O|>4F&e43),'jwHctP S{ke4  uw) L KB1uVxdjSOWcOF T}P~qPvVE.4wXVf q 7a \~\R~bLse~g@dZ1ts! e|BlEJ GB v>P - B@V=w%c<hBuspXC+Mf9L Yczf 8  ! / *y"Q\=.(>L',  >0KTNI/O0L'   k]B#7:B_#%- ,WxSr[? X;r$  cX  hTB;v_n E=B@HNN^bPv'?VX Djgo g & d a+YhF$ll>Pu~ncIOF (  %Q\ Q 0Kk|<*nTp+dJ(cwaSW0g%y\,=)[p5ISqZsGb |uTG'}up<X *07{8403t!6z/i)sh-.w_GI($VjEr19OT&M2-O)g[sPp ZZhTa:x7psDM'M4q_ :L)SZd)D FVv0KK %e;!fSbCIU c~kA7G{I[g7\Vb,#s3YVRa>o;.{>:U4'#=p}nW _fSTZvH2N"DtI\\q h|sJa|~ q:Zp '(M. ?mylw(P>$IAp*>Jk;OZYIOf4JiV$LE2^0\1, iG"!Xl/y=>ezMY6(aWcR_F"n9Q?e8K($_ D$w|#tzW2jo=P$7FX5.Q/snxK:*2)Mt^(rgqHEz:,$M  h@a L` {R ~ {z&s6'2;Ygy*"'#L? 1}I kSE/*U;IuS tQ[]@x]_VINe : 2 YB#sig T|yH%o0> w7 Z|gu`f@SoE,O \ %I  ab+LI8GLk= <NEmd&?lot {u$RZ>1u "9!e l5 A_w ]-X)q =Uw;MD@OPhMz4@RgHK%b`pcehJ;I!xk 1Cj`7l7S;+p;[ <28%fmDU"rF']R~ZHQEnEqf/Hj ':0l#G[fvOGgzs*tp5V"?:x Nw*^+A"#="?d_" '1Zc8]@c'Yfh7Cxm-<c^q[#uX=@CXW{`H>?GOjpWD%5(|>Z$2yU>a<xJZ51[d CXycZ [ KG j>]4ZU=k>zTrY,NfG`lnJJR7fBT=Lj,IecPe9IyVsh I !8g5}&\LRtP,TWkFJ$nr8BohA}iaVAfRbFos@ eW Sikeol] R<IT[vlrbaU]x%_CvP8=w0B&x -mjBRj8nX9ecY*b&IaGz.$bp & ]xL7LNI.j;).: =j?y8`e#Ak)TIBB>{i'9t(?<bG>*%, .\F.h'Sj3] @y`[mN^Ho!:_"3S x_xVf b0ldo8h[2@h67&,R12MeL#]SzwY4gu)}z&lbC^I|uSHp]C.  5=km^'XxgUnS/WgwHit0,Gv0=LJ.]Z[MoOe\KIwz_A#m!LD:[*ry-"j}q "j9N9Kd9giaYIFGPt=5aL`D q />gC!)2z7DiLn{\?WL8~;02'*me ,  Z|Y#>K]0g@N}X75i@*Na0N}E  kgC[%4gYb5U}~pK)= ) ZT 'f@ >=qoCV=rZQ7w~cL-A} r? >^*&  L6 r ]^kt !q% '2Z 2@ $isd  5L8{l( R r3YWi>JuK\CMES%2 P9r3rPt(  TtkwBvZf0v5d$^&w g W/ U.Wv GK0vU #5]5'(=]S)i3y'k ` hiBy$8^`(2I '~ A^)'Lvl c0I&~5Rjf(MTn SQo0  R T*0MZ }|t af95N[gNo-]L_N]J*>? j h !R#g$QK )Wxf")zY! Gg>I%eur=   y \. X1b=91 ? W2&>EY @0|cZ q 2# kf4FY`Y;,t]Bq D[QTu2v ;N A8(,{YoB_dS[` AO8b/Q{{n v 1  |\CC| 9c^gG)sO-L@^} ,5y 2 9dO-;QlwItg|^",=F0swS!I1x "?. T ,fsSW?{Q;TAV={Y8A,] y56b&k8I3!vX A g X Ry]|]gqJj'b,=V.o$M)lr Rp]YJ~d:  X*vfa Dhk|fV4 2 S r F+ } FKkZ 1Z=hD!]K 79v9DI4h .dI> <}WIr;5]>\ {%qmF + x1m1 TkB x ! Q Q 6N_?pZn\9C.?L5`=`kW!39yL E Z,_w 2^JMC-h~=5Uwy 9G*g2MSdKTy h =  t 0^4Q^,\L7'hS"uq(Yfldk#$ 8 : i : 3 & C 6H)'h ri>M7mM#SIYH6@]xr\USCo_y<t}^@utiRO;NbWH|yvE~V5No d=CnKRZ _F^7f B{q=, =<@mH*\xI=@b/wa"wn3&<ElfC0C \/C6&> g,Au"l{h$ oHxwH6},q_D?(bU_0 i+8V>aU4?7|XX<dfmS,5Ft\FKj"EVX^Z?e*G3GPjOgRb vzIr-7^ [( R^- Y")Md ^z PuP}X0\W+ @P{a/ !Jf2 )Dj/bg< 5hBw>,w=HS}C{vUaxl{1Y;0zz@T$mr"UAs,]!W/vrjw7eP6f9;./l6yL}=-- 1a:$1vDi%HTjfn6vg :NOQ~m)1 Eg` oj S?^uEJKr>1(Xy {i=B,^v=Glxg"faRko6?\L?sM$4o[4;cR&9R#S"!mY$y>_5 m+a"Vj&o nFOs m $ 'bMQa O@[5U_sQ? GEUL@cT1tpu4xHy1 t [qw Wmiufdd= D@_lLD R >U|S5Q}KN 6 #= wyhR p d1NiI:P ~"m P; NZs?ibIx ] C 5 >d tD9l  x3Ld# ' JfQO;6A'L7sz MlL xV q-xW EfL i} zN4RW ^z C  V }Fc@ye 8 < F(0i7D :?M!a  T]q`+gx0.3=9AW [ [RR K 7 ;|HdLnV}udD " x{qz}h tPFFh~8Z5|O: U  {Re l2cmq{ S).+X.-t?dUtSsz6u 8 !hCP  DL,IP2'I s  P19-|`L]N  Jr \!N 1  ^ sW w i -G>ODY+ :8O8   ! 8pz7h x%v58B&? [  : 6VOZUXyNA5N;<,eO a 9 !Vie) " w c#Q$cL ) nON7b  5uZR=n!{_  Jw am2  x >Ml c / |  G{CWI]@9E W#` 1 H ^_0z.n<V 61`h W6r ![E>mHX ,  YC R A+ 3@uV%2 n {] }eC#T/,0+eT=R N   M G +6 S49s6z!UZZ{8h*8E=}|-z(=,#WD?DOV0JMyQPxv@[PevF+JOjt|; =v[T5m,G&ean8 e#QXtL67on!jo N]v)%&9 wh 4bjo+nkb WR>q+%kqn:)oNv0rKdrFCXe-S86= ;GAoU1 +$Q6q{_D,5fBo`# ,wf0eu4Mb~Fofj7?JRlI[(6?l'5xf)m-ow45p@LliGtX v:ebJYY +J ` ua-0GQZ 8BP:odU;gFE,b`tdfG5|@[8j%a4{;w,N*D47\T0{? Fy>*P!-gb]6.t]sL{Vu>3;hrA5<L|N[APvrQ4j]8}6K(C }w~*5-+KrO`8 :;4NQC>1Nt{^n0 v:x\ *-cXu+e\ ;?2%j *_kXq{8z-~1~Cl10 sge'rT(P&aP\W'I/D"~P&O:LcSfj}se)yq)8>e@;'p&?|41M U|Tvq,^W|lfCS~mYlZ6h6Dl2 4jL][;E@:kD /E2+p Q &] L? Gf}SfIvHVp Az=Z!5LYJENTcs;s,@$}1~4pHkxQlILH#dJ'}&S,*nT6mp3,M/V.UQwg!:B Y {T<B+w$ K:sNm|/`.TWd|mX%W R I g<  jHCV}`>)&="%]ci `- '4NHEWLv( 5u'2wg^;"%vIp# fj !jٞӆ#V%Q|C,hATY3r  eb.l,{faKhKI/4 y y!K )n#>vh)D  L @ >V!k7iK29g{4{++X n| he<(H% .? wo Y_ g }iZ$z DK>C5 ? Ki#<&[>3JEf Tj]Ir|--aO '#]6 K4N,#j ucdS9+E a(R7V%Z Iys& ?|4(?0&C"bY o $$(p P JWk{9 aC|s)ITXsw 0hWyP =C*4{Q ] <aT3:To3 fNFu Q)~ {Z 2f&1/Y7 CG|Ct2xZ: %% Y-n'xT FM,ElN 9Z |>W]F9NhS-jl AKl (, UwGrt)n[ Q qX7` /P4)(^'h^  yEqvv&63 i=p*  Oe A@+<iw#i ,uc0x&J F&6[HK{yjd- -b/tq[+O  m9i%) kBzxGl# b  b Z^( e:sfMH J! f H.07kh0Se) Oc O zf?eBeFj ]6 Y w ?1M* `C9tL e2 ^|`Yg? K.  &&3 [g & IM/ FIR=Maz_]&x a S cu!^ ~6 I _`.Y E^ EerY" P H(%4 ;Qn ;} `s&pQ9v$ bS)` fkVIU*SD09@  [w) fo j|w`%ygmHM*Sndw '3!Wg OS)M8!w > O T~i Wi:Qs9{8w&  ;L@LA w?i- CI4i{" L nQU{Ay]amuqWx-5,|[ I% JPNo+tJ w>,Q% 6rEKaf7CX`}9)1or XlN{BnA4 o{SKZ!6?zi17 o0$Vh . N t  F24o -J0^n27?q[p33-v 30 7.>- pH AmxorH'13b<[FnS46\w{iUhfV3_? h ! [ H A9NVT ) JB+ W 4"i?_XqC(ucW ,VW>cBAR$wO#~   p@g8+]zo/SG \B$|756) okyD c}Bu!w}THuC@_c$'U;CJ a YHZy E% k0NB?  efX&gl+ ! \p3CPgo n&SErh2JsCr@ qPN  c rj'+nqKH#4V7 :\j}gEx,p;}U -,u =HR\UYhD &r !$A.}`NhiDvEk G>P "5 AWs =X` 3dqgmT_$j%U TrkV+PCunseS]&: lO SM6N)  OowZ4hLwH&<[EXWD<-v ZPjd h m(HQJ}2D@m)P`5Q9U+.}HxKk=|s ^v\UO/ Lu }I&Krj 68zB<`Y SLt }2nw urz  ` [Aw Uo8u!4ZpN" T  T%\m TNic! zl:> #}s1'lf O [b% s eR G|6RT)T;J4 /cR =Z?O7 $VUE }l  j[ vc+#,ba|\bz K|:U/ _ (Z!j x!XCh^ b|8C`L-e)a&pg'XET?v 0 6Owz{r*AW\k eA7+P.U?B"wGG! # 9?g4 , .Qj+DPLsNdTVrdt@f3_P  ^ m@<k4(-x/l!ePj/AYrrVd1QZmyv , a QF](>nV+%DcmG$74 E vXk7_p.nhV'1Zoo0kK]0,#-6:e'_&Oeccs `k')N+zc:;O{5NE  7<7j;esvXe.VjoE2JGbw/oY6ad!+#n(]0ms~+eWK'Zx1kc4G 9WI/zhH74H&({tr /3YD=kF*QH;dM6lmqnsiJ{~,LcXjLRXQs+-S*-X~gz2AuHtx:JyOOmpsizK8fN,;GIO0>X6dceHi%/6--IqgH9I&gvn{j[U]9XrjachZ8"(%4udM.)EQvvX9'0+TK,)"gH1Gadh~jS:Jd8KFUstt$3R3.&ADCCtyhcrlux&-7S{]?=?^{t{IKSZnCNaFY];*%Mvanxdo@CK9$K.%4o{kS#+,-<)-<QW?aPLf_stid{rrkbm;c|z|q}{gh_R- ){VSc[MUXC2Lk}~ew| ht0 8 ##!3 #%7EvCHgGa[ip:(<GDmzputkkhH`vJ $@Q8M^P&U9Y`HxMEyoyvQkvpdob\oX:*i1Z~:AkhRiFfT{q9'5@bIcd\)zH|lQ-1=*B'+d`!6JTq Y[ N3JeP;`ZmuOoW' {dPl< Wi~GU]<2/DY3/ysw(!LtcQs, wL:#n+)i-E_>*(11CFKdF.rdLI';AcIC{FW,/,T 6%NP-u'$L'Y`3w\UdfPq7 IF u7K/(@YY P5QzsTDV?dCr#)F[UyhEkY 2c,OTTIdZP]|A@Nr9! --*UMWGfF*.H3v(F ]/:&j& F^?I2{6Hl0xQ$(}K3VR8n!}T; 3-V )H+no(>`YW 8- 7LuANy+WU}ui)5yQO@/._xnnY4t#+`[3:6aD1I5jpIkh^.am2.*?w5oqXxljMyvH@neR~|;{ha^~*r<fX?SU8un KH%"uP`rpsL1X-@C0T<;kIzfp#.>5S,=00C$F[-WSOI;*rNF@c`Tq}xBFSWB#e3gA';I}E\t8FH"=9-6wo7I[8b5H#?b^ 5_!f@$P1:D"(8|9?bA! Lb4s>W@^?"9LkQgF`tyBV}?5|xYon4+%1X$4H#X*SP9Qh/:)-E-@LLeI)L&Fgk\&D D[ -..y;6H=K.z\6n~SZ[9A5,iC .+:Iv|[?G0OHLbcKOt? +%&Ht` (.J.&~^5V[:nX$NC;*.Pe") ormsfyk"4~p$3V>Fk  :.(MZO+P@ U1.?h@(=+)8 2ML4GOc<53."X2?AG>tLSLyZ,2" /:EG&:=4NR<.n}jjX +@"ctYYUYg=$".0"(#JVF* !8,BgfF wrtovgq~xqtw>L-Rlw_Ok>/vPOEWOwrqL&[`i}]*"A&:.1 :IEAJ]Nazd{t`"0 -&*QpvsZ>1!0)MD0 6ZqntlPke.Kq^>7DDxaP!(!}ocS4:/-SU@UU1N[Kj^HtC3C&$4EI<'C28HE3CB%'2?UH0@>8Q7/C-.p_Igh[OSqil~|87Rq|%AI!B2" 1)  3/;@2*/&$RCIH":3(7%% E.;+1ox`dX-'*4>?30_knT7B;;9Tgs9D[jvwB`r[\^|zt^Qt~dYJyyq\{ 6>"[N6IRTngW]yIC\LAVMQsN[}gnVJ<1g}dvpnb>Hgbeqcx  7E#QlQa=! 7,1?6  #/%3 oX^B-Z<Iar?09(<OFCJ9T\&#-?:nNFe`xb4&k} +1<Z9VlHF -&98;!+y{wg@ @Q6,&-G*L:$ *QIR_lc>83yiJl(0rHN_F T !4  9- :v [  xN2Px*%mBV2# BE_*drmrB RZ2dgX|.O%.@9dngEgNZX{HI^ [Z[`k N\+Zt BiHWlAf`:EzabD  I 5rd&s u40Z}hos~/]{  hjY ;A^NeYWGT~2W t _i`< +0 }n48J ^ TM ; WF}<#X1 f )Jw|. #j]OG>J! o h6n+NA&e 1CIW8<Q   e6=E:co}K < V7x!g@|;s[ <s |H3BW L"/7 *>z{n 7jaOIn%@9  r2CGjJ9YAj ,LMQ `$@x-(<L 75 F ,{z-RQ`WeM]dJQk1L#c RJ)d < %olk DO; E\o?,(qqLW-i48Ca? * k:j;okgLt ?@ x&$2 { Ml& uGb f(~$Hq=Syb nz*m^7>X )+q.du Pc d]mmN =<~ B -IVnkLlwm=})ic\uQO}Q')(m _nd! N {[,2lO)`"k) u: J&UFe$xb -  |SC6" - *X@M_ \ ISF5+  H%'gAIH kZ ~"D_nQ{ ||  d&T}'. I)K=}' g26cg/'I2XU}/v!5  h+(  # c8<H##UT&ws skq(q~Mg] C " N 6/_qu "eBa| r H.O ,q  JuqTZ\ \+  Ur  Jj$#a3X/pj RW-s+*{"B *j K /U f%w3@a:QL8~VuprHH7DCyk 'aQS DLJGP `v? ~oW'sT%6BbTw6wrp{GRG!! S 3  Kk  /d`+ ; 5`XjY< L>:n}ePcm=kHwU!i B rQ j0 W0O2ee]UZ' "xSRx j@v-U_%SBj<   \  |1x  0(+=XH Y-e"09I#YoTw[f?G* E ( jP Ld^:l 8"cOK1],#fqi/}k40=j7IaE Z i L K</40)Ea_B NoxNgoKa0u% !  B3z\;W  j)B8Xuu ijf9#"eu GD_ ? ? / .|(\O 1 .goB </D8`JEAuV{;j1{r#ze [3~TP&4S w,8sx` <^P?$cQB a7 { )mRI#8p#3BM{XBN, !G,2 ?OC . @#w @~*,]Nc SE]Xg>ct1pF`9"X,L^r{ d }J0;F<C']HEr';/ au".^"c{m !>e<_IklT :T&p82\B,#/9QN *(B*46Xmh5308pB"]<.7 ~?BG%9b#U R< fJ4Ids ! IV^04>{K@%z^kN)GM@& DL:Hr /QeEI#>r8q3/(~\k_Y?z}J nl#8ng#%>C ,(<9nI{|&W&z+2tUeG4|ql-i"KU)+! a>sQ,BBV <g@TgD]a';('aKRbnm 8JYhY%ItW{JZqZUYfk)[V[gB|Zl1:K-F)A6m$vz75XfO>@N='N1P)rI PR]QfB$SaysXU]9a siJZQoVg/,?L>P+s<$* {^pC,/}sX|_Ct{quc M6QM ;{ &M3zwqT|P < ]pv6gyD<_z\=+k&M&g+O5e>zRCn~p5%w ;5h!?AD6c<G}_nY7 :U(!@'C(4@Zk-6wS"qYB#!myoGA,R8" -k(GgltT=M^~}{W4!&4=?F >OGUm,Uynkm^o?2r d-km_K5K jEulrj4?p5ndNv6|jLjlD h,*!f+_IUfR;Vkl('QCwQ.O+W]?zuvv~?@Ni4[-f*F8o"T!'`H m$Jz7hSc mOg*1BO*!@| ]Ac#Q[i8;\`p5F05"}+bpcN; !~E[3`kBwTC3' {c|KHn&kp=Y =5kp-reZhMmKvrehlI.& C(b)yb x22ZM 3 z _=Em`I; ymir4/C%z[ ~ >~fy ` z2NF9| / & * )%I:ujw 0 V Fjs;^ r J,9Af;*jm D w~geaJz Xb6  ~ "# CA= V 4pueb 0[ LJt,lT-T]Tv) / la(OasV L l1BISTH f[ v^|5}J.cRSy M UeQ %`Djx+YO( 8ek2M}:+ y `erV #f3+$G X B5%i us SQIq|8?AU  B"zDe4dEe  T X< v5 e)#Q~ z Hr2?W7A,kS\2B] k &F^j| L :FbjNB   wX:]8g  O #NUti 1 (sIT)sVb4/ X A2rkfZu lZ*,W, z &1 $-F W: Y ^ ^_N\/IL)+ nU|f y e Z x ^]MOZ t ?af4/ U  m*63|1[*aR)s;   u #= F ~|Z   S,~$#GWUiz-Z k m Ng R?l|S\^C)O  ;ATl@wF|e2O$  / .N GUx2i" _.@o? hs;$ aqu%-%IW]e < g:.1|  [B ~;21{ _ u &1;nYfp| ( g&# G8b 89 vxh> < E>nx&*Y]D;c-G8 XS(  # 6#_3_ny 0 Wu78Tj- + a]7vn_1.lpId[sN L L  ]K ~Vj GG)x  0|}1ULCWASO1^'RW  WY.ZM0@ D  R" f*_ 'feEh&*r:Imxc!{i%l[(r *% N++ I a11 V,RW?~-FP V#)~O B " yRN*4 z = bhF4t5y'c#[yR4}| <E r2^ + @&tL Rmh?kgM"}3 A;< H ) " +>!2fS5 #V.y&6p&J}_3'>R[*NmBq  ~ #mxEQ}5$o:#X#yZk+9CGfFa05Oo2|"oOwLbDQ X:DTm lM-`52]/N\v/~QyeB\n 7KlON907s](O\K`{va|43j-2$s22sh>w}Nm^4;# Y{I87nSL\6Rs#uJ zo|`.Y2("=M}C#Qg+ Spa>'7KdZ9#32hp`ya8T*F+'sIq"wW[G*:`{|1 M/a`4%q:uxr]>EL@7\uxuLqA!!y vL5FG 0Nj*Y V,[rac4P'xA+c:d2;*|We9S*o l3IP  (d;s~:k{C"h"BE 8(5aT[VFBbSVyAgu>3,V8>X_Nkg4HM4i_cPz][Nf[0BZX6]S}Idvv=l^:2z1kY3p:4s L'=Oc_PVG2r,QMRC}MD'Kv-F+9UYd)I-GXZ*j`FuQ0,# ymzFG-O_ 3X2(eA3itXF$(}%@[u "+D!&1PSb ."LLX8"GH_ K 8p#PW5GG 0FmPt;4f$toM7A UHcDm@aLF\ (zn\|? y )_{' /bUcpj9W*ZL%(tjB!R-0+^c0KLhKU%%f"sa<r J|h{NM-ohAY]o7hb:<H4*=T5mcn.hL]p|\"S3=,PK`Qhb{R/<~/Bf55PI.-Z#xj,mhKEzz >J HB-b3Q.qR ?q t2%Pu7evBmp,:~WN#Mljm'Z[,Rc]9oSp5 o&1kLr9@[G%/wK)!!6` V5 _4X{1Pbl4j/ ,*:bR$kus1%;wLAxjx2-*LVSD A:EZCG, Kunyb>a~~0E=FQ#dsQ"d c!l7 Z*%\8wfv[sid-A/Q W 4t2J`C_Vd.!I Y~0"k#5%3rvXO  i|y+*G$*s-IfR  2gXRhh bOyK a  $ ! F{Y?!^~h%6HyF! *IfX8JAFr 6BhbS#{Dp   z@B?.kUNE[R46o".' !|39l 4 *hX BTCt*( & lR\ '?Uw,)+0=83 ^7dZy? is Y;">&nT l'ko G q}zs?z"50Ruc ~  A". |7]O: E{h}NU.B@A: I76#N $_  1IFQE l M 4xMi9_$g l  z uI3~  D.]zvy ':J,^x :)W-U1 4 ' [LB ?t #N/`=ouI$wYP1zve!EP6 l l pWJ*54J3 < uSC[.0}s!9nXPb,|:Q  S  Zx*qM4L#?&"6CpQ? 1so ) 4 s cv7eXPot(UW'Oa=H@EZ9IIgkpyJ}u V  ` ^|`,<cmObj[ccAn4 !  d]u:Rr?!jk<p_EV`>LxjA>TXtV] .U$>"78d&h.z^plW37wlmP% 0F *bOYdtU8US*gymXi+(b|Y l]M{  E\\cjRVLVM~JcG(+3(}DFX0Vd*vZE&W>99( ($  efX^EK5TZKUr""F#?O8K2v& ?\KKO$A%#~huYRYgqN@=B)>/(M_-ks|{"E$)274*II. ,`XA&?G1:,214HG3 G44D{Q1OKB? $*8SB mj{0<iiNe^@chZTTr[0G<FpwytnvHO'  | LUKg{bn n J]c[h.c^9N 6-M<7>])g]pF/o]VAXzGpzeA` h4qU?k5n%(hido;J`F<SC# > sl? hi79 ib4X8O.}`viN XOG/;;E=$q1LL+ )binr%]@ MedtjhKn uGeVhmtW79JATXw4q{#G>h,\S~%$EOpJ,kKI o!QN) y 4(lP5)%5.Si^IAN =Ne)2;Y-ZAK)8f2c5P},u]KO:X=-zE[[_DIxDLL'![1of0!<C.[E^)NF|wu5@ieEgltB;nIP*5R+pCF4'iGxY$_LYPH!Jj,xczN$Oih vm#hN z~jeNZ/v"~eBe M-)P\h>w7* K1 7,(oQMA|@!,@J} R b~Wt@i, 9xn^2?L*xe5E'f>h 2(prnzxe?6a#} BkMiq& ";g0f|q3w4lN!i05H,Z@_n3GW3vbE:e5 VIZ]AG/t_}.p j W#rez6qoeq%**RUePiyt4LWt76zuaGGs 1Z++D$Y!P An~?W`F9x;QJ3xn&s}Qr]j11Nm%(vyY(H> -=3 6BI,;vr{2U%Ge 6@kDf g1ABW6  a 4 _ rop5h)!&YI:kW[ u^<*+ MLC#"Z >&Q x  Rj Zm2I\tNI-d /w)jE,1",y//} uG   @ ; h O '?H<6 lPj&| 6v9F9;p2k^"g(et T y V q ~( koyYM dm$ o1w(|`$Yj(D V " ,r Z P{R@f+I\BVtoLV -;5M2vS'Qh * < O j"l'n_^PkgLT5` N5AQlX3 n N/; BmyM,pw(/-|p0; fu{g|4Bt- wt u  7 =_Kzp;iM=jmp@_&ITxed xB6G,z)ti  n i  &? =_UH>#HFQW'?B1U;*[nx@Wl> d   m xN=Qea_[}l AY/.G9eBa~(r}\5 3   {^ IAbcN@|f:!E@T+ cNo\}^'C !iRO 5BrkP #  j]l`{@{g%-&o+Bgi4.iR_3 7#5e~g"8y%:7L2EJLZUbM E7SwcP\rM  ] 5d 1}"?}R%InRb<a?bUf9m*H1?y9 gmH0  i [ F1/-9ncnK9#")}nj*9ht]_  | Z x 8[VA~Z| Q\>Nz;Y)#7HCeJ!V] T ) O  \jT:{"V?c38qY'm$=@8)zz# \dR]e b Q y \~ }@#G H8=/LaZcuxC|:><n)\ F_u v s GAN[M/P!,E%BpBz}|N;84+;  !d4T y1`nFvN`95/<Zge8Wm[})Kcx^mU*E;Fu9ZNgpB 7 L1V?l*N6gcRXm\ /q{i [L=b,FKR : in@ rFO "r5r IneLN9QNAW(wB}'r l'3 Q)]nJMl}rn _r233nmpz)=_\\;2>V2`Xc03:w;tTu97@L_ ];5s+eSnon 0d?vN.V$jc1UUTNE L $ r&AnkYRn,AxIZW_tx_zGJERO`;]ZS(Ob a ?@'+R`!4o]gnsxS:.z gvFrZ-5 ' E O F:K7kMs{gVQO\ .5w5!)^F.GD !gI>Gi5E:^Dy&evqr k|^_Y$Y(ji$Si^m!Ful "bkt>q]Ud ^&AgE.e ^W 0]"*8KF vxw<*+Zbmc~76o7NS_N{MN x sWRLRA9rwQFPD)HBB"d#R\uP/S|d$+z=\l?kNSJ>do1KV$A[WvyL6g'o$W3_?]#]7| Ss7# $Fdt+aTtalbmX/SxpJU_RH)S^!V?[M82) !P, G,rQNvK|5 O6{Q(S=L|xw,[}3 PF[rh>#w(4CkI53 )Sa;}G&PVTnAKjN\Ya^?:NLLF(">!UV_>@.C<1!-F'150+.RTf[QE9\pks%Z>@WPH6A5{71 t|V^/rl{>uqZ58<_7smvSN&? .JMj2FE nz$}a\* .>"&}IX|U6#d?twUHX)n L{Mk s|E'oFLOm,MJ,=}&S%6L:B)}lFj1# #AKWqlI'"IIXgUfiJ0{ADEI|bK9+2JDy&' JovBC&:^{fV_,! RL2{l AB.oy[{5 M)wU$-$PmM&$V}tXle &uML?0G=Wkp Cv*.CKe:Bfeh'+{p]T,JSjQxf".ZIdoS>GA|9)I;5qKq>],Q{CZ adMpy]?Lf 5]g|w]wt8s'f{YJ9\u%D Yis|% u =:;9<Z<Te u~{f.@((g[/:k;(:RW;5RC .jM8g5E~x?;mjro1h[tT4Wz`I4t2e&,:|6rs jCa'Wd{HF (qj#K$SVx ?zZ^s@%W52)Ov*(jGW{ 8i =czh| L53 (&3%f%Pz-}/=I &w33PaVxT-fieblnt>7yrF,gU=:MrS%Yg*tK2'/'X~Ed 9F!YWFy_GbxBov[~%w9]_aq"u):h<2p}%`2#UT9q"k4Z%B|`X(t [ 0>mO8Q5< O !R@'55:@fnhK+hT q.T&[ ~   5,k:06EOC;7Do(q\E&KHh-_;11 JycP <0jSH9`M)k;hokIYe0  ; L Jdot]:@=rYKO~~LPH+ah_pLQ8L=} Z  j  Jx\ n ~ Nm-zv FnZEgD#25 Qk5Ug)r)#^E6 ( NcK . \`Z MetWVH4 #NA {. CpI'ns 6  0e! B;5a;#9 1g^6~emc@&`cLUc.Stq> @  :UIQ Sd }r91t-saQ| D!n  T  ) /qnH jtZ x . ?X y{A "p#hGkZlZdxUv9 /_p yK_/u geSahxYW?0#J]! > Km]&"}yYxA* g]1: E S Xs /aRk^\tjB 7 3 j_6R; S _&;(&Wbv<}b1 a K%J  /b;4M ;@26I$#2XDggyAQ H(   |RB#4zk pyITf! B Pq xU$Zk#WXb[UH5u K m x deNb < =6K -yzuC?@N+l7'i(G]U2 hAI =ppoFfQi M* O-^y@kWd>lVKx Y Z nA xES4:-YN`/;R029eIybM\]f=U@]JiYM , f / + t%t:BQs7pSs;qac7ow!Pv 5 ] 4 & ,Ox$v;F8 >Z0a6xCj\~DJEYq|hbbT`lqI f C +D Bw+X\a8vQqxsY;,b8!+DJzhQ^53Lc4yw.n  oT-3k-@d]UunmvhQ+t-gD}OHu}ky  c ( t r6^G~ ]6y(E'{>V Hqn{q"$:s+GQA!6n0nnK< M d J8^YI vW Lcc <' 8-.;4IDpZjE4fby%==lKCV/>6cRf(Og>ekTSb2Ne()op=:8+E hE Eu%\AfjV$CsibN8g WP q'Y YhLLG.)^{^ 5s#6P^1z M+ &_Y55"LX<R2%s.E<WWi`T]X1S i[S@5?G X[}KAHO@ H Dt#4]vCsVC %,RHnf5q<K0>&'\n3F22QbL~ZB0w0 %6/p%SCZUj1`d9uLvK'* e^:p@ 7`FbbtOnR-P3^TzqpO^n8)78cMC T~+;@vj*k ,ygtiy0Hlay-,4,E<3hL+ =Llq8: %Pf",N=2 0&@< 6?qxK&/TQzdzjww%BvC #4Ja]HRxE54@/40J'DrN>1`|{?vj{xQb?_rHt#?  ,'.48"tbZE LD/|gTSyuY^nhiMjgkiRjiI$"XSC %   7{>-V <cUMA21'&*`iG(c9P=2;S:$"Gwhxyz^lG\awxd5"  T<[5:Lz #J]lW|snhX|yWgQ"-//)G<#Dr_:4NaI[HZlwG?]@%/&4Rs]LN% {#EXc|? .M+.D,,CuU,&.#TeYO'BU$7gf`l,L|]}iZus_{w|%8G_K%">)OM1Fimmv~rqxm:"R- /(JjX/'&0$86T:7T:)E!EeFOv[B3@ 7CG=4 Dg@GciRJ}pbet`=&.E}\=YzmzqWgXQaTY9"[M@V7< 4 !\VNhl|vwml*)75=ycbzl~ooLcbnH<xuL-=B=,D60@Nw}nRHp_&YfCr"]P'<.   .)(>$Tsr{N( x|m 4>U[QJ^F0Kg7+0$HzylN!4' !1C4In8,GO1z}lw__B6:Rfw^ji{R:vxi~bny`TO-DC4 (5D}wl~jy<2C_UI2otQ[@(NG>+%D" <2SlG+V4 @=Ifb?,ZU::8=)"&G137"Koj6A\V\r{zDI%PtOsdeT:Rc\^0 ":*lQ\S:?_(;e|m~{~yfX]]$* NFeqU>oynjS)@XLV) /$5stbZWno$ %&YM@"!YO"!B=% %;46`}`9 6L XVG^QTG'&PJ;(?vqdqyrzz{{~wP )+&04:90cQf=4`XVB/_ymX52DV9+# }wwQ=DCZqutms.!A37L:"/!0(,vvv2M6CDGewwy`q~cz|2:$+d8dtf[BB@R ?xef^r]OYWB%?m0@#(HnG)X}wEBXvurr~:.?DJ1ALGOC/N}s?6;4#2_V/%Kalj[uzi[mlJE#")2  F\NK[g}eFL@1>" /$J#*,8B" 016<'' ( 76!M`T9>\_7U`:40BM$=-20 ?znE7- 2% "Gahu/)lk{qJ+>90G8)o7ZzRI; 2<( 32=@g\}xqk|tv?uW+&PY:A8%/5# /Gaw^J2&;!%( D"34)9C`qkKSaj[B!  ,A bOKD dTL1+:;0 !@<#ko\{rnz@>gne)C!+bI"$!%R|jMU}FVQ^k{k{ugdSd@JD=QXI7 $#2 +"# 1UFOTpd+&.d="G0:NJ0!>XYcj}wt^ 'HO qufY]`KOQ_z}ibTCerQV[h}w\TB/J: ,H2'EQRZue( mNrZ]VCkv}^]NJI6_jjlr(''EdKWQnOhX@CFxbcyL_w\wM=lh[o{lV<# ,6N@#"OP$WV/ &JtquthMbo>LU1% ,5((*%]RPUL[bR;5(5($N{pYP<kuXWxf]7;/@RdvlU9J;%ac$P>)2?\du,.0!2)7 LWkm23vksaWt|xIHQzGVVge<!>0|vj76S, F|b:5Aknfwec{5wT]c{ef^n_bbJRHY`WoJSrplSq[itn!&n|<<;FQ.) 5.0,wo^TW\>fjI'3?oS}^&Qgr( D=[jvC 6;" I( [R"U^jjlawjJP$.AEW7UfCcY]mA]hF>F_D%7fL6#*O">x{ihC9+7etcbKm *r\=L^F(Q]HRSI>I.5MPOE'Z1D( 9"&.qo~wc97R>4 $!}d{)#qomv}sZW_K-)RVW^J8620DP@QrbXc_|#$&*Q>'75"7%'FXgEd=/=//.C>  .M?C*6|I6?=881.%" W+%DjNs{h<; oqiV^eN599L Gne2SOdgVE7QA )UYz|[V -:;)0c2#'AGMDRl}mzq|(}`"Gl'aE)[4wo<N,0}h.VO LzVE=1 uYuYP34O>KN/545PZQO0ev4._~lda|`tjWVLYSULTcrxk~k|hu{ON/%.'H6;(<[WZA3"*.0% -J?{my}.6 #SXi\F]gtwokX.;A>K( U]rtMt|X`yyh_YdMT_VH^PP|Z3LN$Br2@}WIN=>4   ".!-,N@)/0M. xhnfZorzcnzn\} #85EN(O0$D (P'6BH<P_@E-%/-1%# )('0pw%H>%5+**( 7HRbQHYF-*(*/++3</'09F;<NXZF39:! 7#&!0NO?B<"!}afjwppr|&1?BQGJmw|u^=&.-*?IEMOPUE, ~  ! <NacNO[N6) >=6X`tostrzaI?")-OZjm\UZj]::8-02+" 4CT=  #XnlU**Rk^P`lC&'*IdQOmuf`R56G5(%:'"A?*)0'$  .O_I2,!'}cTQ\sfXVD>Hnnhx!&3- +(1:LC35 $' $% xsj}z*'EK>P]eX# vhncVy|U^plW?FNVgiw%<'$@DGNGNJ@Pnq``86@OIDHAZrldjoxtgtsS;BH6 ~x2L>"  % (@6).>$ [Sil5;Alxxy`RWyjK@!&)'#.3-.Fzx~hwpru4F.42IV+-874}XXceX(gfu:F2J  ;D_lt~ipI<;IJ[^JQ;PF[@N(5 }e1&4*.;G:?\ +*>, _m~)W^DgweW3 .@>BNgiK)#34'AC&mEGV//Jk"&$4YnlveT?  *24WT iO=Vf_a]s~39*!)um`g!1BLB=JF;&(0 )B0+DW[>5B=`g\^VRLA% -!1>%tk`HKWX_ruuqdleH6`et|jDC$+>>U`S: Jf?~z0LQUABB>^wvq{uaKisnuqO<q^HROOG y}s|U6;PWR=&/Sl>5!1RurH(L25OFOxmVB#( -=aX) LjzwHNKqw{nQ4[wQ1KN E>:KGz|ks]Uwo%J9Auuz<4?!Za@E, (\:"RNuV 3J Q\^9R_2MB, \uqq8\jXL`rdfym$?jCmM`fK%XtuoT0U1  0VB'[ 6l-Ccxm_WH=sn:'!o81!jRJ9s2Ba">x.$_DI-ps=dMg qJRs!+{$2QbZxE5MI 7Y\]Iot(Ro "qN.= Q:wff1yd}aUw}a\.8N.GEe}{B%)9>ZhwtAY-$Gv>< eza1.4*flmCW+~u1JAA{^}-f>JlTp=NnN 0KVVujl2!.\$BJJ^hW!s)"0Vik~y@ .kwKO\uX^v[""/HZ%m ' dHHP`HyoOSYj;kchn%7/`+B6s%CXZ?V d Xz*Ge;YP8wr_}g8v{rZu"%e:a, u5)q[UE 0DYz*3u~ag&G GM0mPRI9c,XnD{H*&Km7Na*<p7%JO1UL.o]%Y>pu"GfqKygxH %j(iD4hlUIiBT@[ouA: -Hbpv5mdo:yAeo7 \*vt. Ia&4@aa_-HHY0 6^]In4tr\@+) =bL'^?(gfYtBT(cb,\<#k2^yI[ejAH /{uk~ir6nRe=AEI^P^':_0M=8rJD_zBcW\lrlx?4cq&U 2V\# 9j+y?5#U:3A*! A3C=XRZp#yR8}!f/9-syv6K%oH_A7MA>4OQd?&he}@ jU#y](tyv8YAM[rrRaa:uHV4)Yi6%(t6B4]S:QfU0G5!S>'m%5<:Z@'-;w#pk0+~ t6-e?'X Mm\.LL.)Yd %)8$hT_#=bQ,}O)4Elh`0{ ;5"VH9McOex J*\% 1)FT W)"u=K 0~eVkuJ]6sOtflahcf<8?'@0G4f`5l:(B D cZo(J]a=4/ Ni"d%\a|i ;@9;P56?SX> 6R_RV]'0-&K#MG]<;+ /$$<#'%@EDy[au[suqzRH 28# 2O%*8F>>UnlO=?;J>AP1.0+<U[I:Ve<KjLHUH/ +$&'*B/NeA &<:1023:-"",/1&+FN4,IK5-(%&-,4:31-6<&" '"&' (+B3.@?9GU^`Y]cgibeimidro_[YOPUXt|p{qtvw{oq|tv{v[TUFIZUDB@>4 }^MT[UNYviSc[T\^fhQMmrrt[dmXf $ $ |mfrsf\ROJ:0 (" 4D]aXm"+.8=IQRJ3. +"#0- /377::(*0&$64 {zqotvnwtp|rxs} 0<P\Yetzomw|^c|x{jSH>'+.'6JZS8.@E9&7>:SU`w"=,Ju}f)6l@^B" 9W( &h[Qc0U$y#3,\*wb|S>nyp 4` ^{S?  o  U}sj E %KTUp~&WZOJM A@.Mx~2 ^K #!LDdsB>6dZArT + j d)o!F%u(*C,'#Z LDwK*1(1V29sv~iHh7%# `x!#&P,/34+& V;_ gMpPK&K'=l"Ca& [\"v#"%n(*+.0#nEջ$#dA<u6aw%QDEzpSsYN&Tn ?,Rm !V&"$L#<%E%N'&}#(*=eA) w޿4^܁f^`ka|sfs'%OuD3)<I eF 5 Xx  F1ZWNPO~`Xv|NhuuOoXM-1 Pa  xb^EN iWg|8/ >d *fAj D ,da P 4aACHzZ+{YXci'hW?&20'bV["VFca[,po8b,4dBOQ FW A_$^efsNGKV6-[m V qA>`E"'0irFW,5W #R/IGC   /z|}@Uea2pw+  8f*8D|=<{8NE\K6 G R   ! vh $ m,K\h]Q?[.@ +  x1qj c0*luCiYV ) FY .I~ 8 \p 4E =;HhAB"b1`:XfQ&?m:^,c G D)*{ :C'r ' c  :  vM~ h 3 GEkj(t]af6v@zB/t ]U!  a 1 e+ 7 xI!  HWxlv -3VDubcXuw`u!-Als 4 (z'  ^B   b ;C'T N}C0nvxTErIBP9]O^Bc\B'* Z.1#  ` qy ! I 5 NRL q'ite-wwf9$wxj y-!t~|3P  a Q2  1 t Lm k  &|;uB B[l5` r0*p9)Xy)) E+[ ?IT\w  RPG K ^k ^8 @ +5+lZ#59qW*vc?!g08 ]aKonD$11:[f| C&,LWv%   {  !,N9iWRqqf U: a|gk (jJ?ZEn<r `M^ |  L< DB tpR" T\ 9khGޤj/o;o-F u#?9H2Xu&m6o8Q>De">I[5 N s" > %*E'&!"RKl !Q/&N*us X!1c`:h{pF`_(B{1#U}& ,r@ 1+%R1"/+_0{$r#/(*Jqd+hAް6* QFg)A-kICmW;nALJBkz)qc-k /x (l.?=bhORM  +Y hb  1 8+zM{er~$DgD iCZs@-s::2DE)r> [:6 e  K11:Y 0 | %*243>MQKPE_^vUE92*y.,h&s, vޗsӬˠ°qհ,ʡRqD{ِ-ݥuϔխtFRf1o- (Q4=|@?IMvIiQTQSXUPO6PJDH@3BatID20㹅ܦ߫)UnX<;!Bމc׸Nݛr}1 UFV Ŏj-'?.ll{yJ9&)t/21<9/@5@P:ARiA0 @ݤ ş&|A#"qWxtn;xm;k .'1\mo4#w[B%xLy}T[lm[epnT* Z.3_&M : :$ %Kd.E1gGh\K3@pr~8\M^/<5*4ryJ+\Rs,xvm.T/V  T U ty8`kK BfT    {Fcr.Zz 2  {SJX2AIoMa/) *"#, ( R  ;3.6C#:0 -q'r1)"$8O& xaf;Pj> Jxxuj9|W.vov vsx{PJ  7 hbvk5a,+#gJ(`.(&+g $:+Wuox0s^?If@=R$X BQ5I IXx9_7 "i .utT!?*5$>'3qKA,Q݄fX wk_f?p:#EB?%F-o zMBW~ !/NxE8QHZa]5\I6xX"mk94~vw1~?.ag=hc r  n )IF@XM Zxe kkE?Sp<;Y,ao=w|zwj;&[:8!jsfl$KX p(UFjaur@ZN~-nTmR4=$T  Q  %  lN?r ^PL[![3;b@}#9)M~vU/RX6Qz&A{L8+>so.G8egUTewn`Iu|B@v_3K:@ay%?!4,o%nG^-O8u@M, qkA=r`*39-)2|"!'=Ble0MQ4}s?vi;QFSyn.m"ww ppNX@:k^C^{kf 4%, [Me]$B{Rf~qtx !Dw0'qX2Z@W?0B>h.&"R7H L!r@\ @w1ws(<}ZfxnC(`*g\3,u@NCKnCS<-F*s7( [}7@d F8/O4XiVV`iAs[!*&|C.|vs-{?Z3\:@|$$*]Vl52M2RMr.At5224R^cjX! y;k$l\b (6CQQI 38 [YGHqG  pw~\#~'+!s)ێ< q 2 '  '[OEqs:&+lJyy -4R%,\*%Cxy Į残ɂ ^V}!OeG*Zk`i&cr3rV^,<_']Da >  jaa"@#'0V666a/()H5yH͡k#P.3!/ j d @Q] +8 7!P E V~0;S0q[  W [<&"0^y^!& )4.0{0g1n, H÷!si%+"mQY<P:evNp . 2k.:.z@xV+N!jw ni1 r O{Kk% #D[ %'<--q U$6`$ZB{.%  2vp;,/WI4X6ZZ' GUY 1j,q H9%AyC !m;0buD $>$n_-[K  I .SQzH% )4Of]cVR e 1 F = J^PT {.9~Z ]О&v%{B\.9D qd C -!9]VxxF{)bL9PjAK  Pl < d|~G[@kܤa I M1h6 T ? qd$s6g@eO`&8W| i R }(S.c L Mn A  AfnĒ>os;mBp  HmLW uBsabp2>3t !WQMu=/_  F< ' SW}HGv]J z;}T v˄ nCu&Os" #x]"5+Lbj`P~jv8X$<T 3K -  4 5 M7X1  ?FҘ 7H?kh=>+ {r &/[F% +'yk o Z 6+0,.4 o g}KڰعhONOF7X|# 2"1O2"p^2v !Z [Y vmi    m x{nYS\wa0Ug>P0*Q{PO.?D*, rM`UQSZ|WuUIi~  `U c    < 7 m : c nw(zN/e_0$VXxc7G(qDRVm%Rrr_`h:RrK?{ 8K?v%5bvtP.xaO:5YE&<6/2'*Bo $=LB@S_grw{prsqirq{{{w}t]`YdqN=ILA%&5:Tfb_NDJCJ_XIVYMaYFDGQIN^evmd{s{gn[WSIM[^plPMGQdLMb_UNKMYEID;@/ &+ ('6?10-7E..FEII:@C7FNV_TE9*4>;@FFEK4-* +1(! !ALDUS]b[`\XX^f[QR>.&("  ].KoR~>%O534G<y_x"[! ?c2jjrItC[  * f og6'$(6(e7  < )]0sO-I0}u~$E{s>?$d+yl{cTq\~hCG[*m bs%w|H .RdH H C, s4] z 77Zxn/E(Pr :n    \ g T @mz|n}D %!<$X: wGտ;>՗_ۃLOH1/3nI0eM_:&(2#`,d c s"&y $8 Z#&#&' +%*J-:'9+8Nrޏ^ۂ )b d 0 (00:=wu#^= A9/zmFv ;5F! Z  u""&;#m&8u[؏oc-pis. b, 6AT'bQU?(lG .!3r0&\ oQ9<\O/sl U--&LF6hv' M}1T %Pcw TWqlEc  & JxoF!;PB.yk "6& `\f=f^rlRrSf^M3  f_8#y  >jGbw:zJfI  &N4w RqTf-aHfI!'zE 31W:?E7<h I8O,\[ah&WFqs}@@"&DqKcOTrg 1W}^9j?ZO$ZA _L\3T  #~T1l:h&oMZ aE"\h_Rpwbr|e J]1B=G}n ;df#X./kV~J9$4A-YLrs"u Vu~w1K{oiH#RTAzN@5B$y R?Nh!I7\F7,M6TIMObgD>+le@ 2]UqNQn^F(85&W >*Hg'UY6=/L 7J*>r P~Tw -&k82L+h9;hUqtsKS ['Fv}jpb /rcr Y`bi[5<o]C j9Z!U :+ @D_ a lA 9 ~ ep yV*_  #w ~ >\wm"3B e >~zuOU[tPAN\ 7 ~ mrXZV< C  '  }H}@>q:@bC./Wf~2KYF '<-'| "w}f=" 9t:*! Q)06<}}sP|P J >\CK|aO _'P7dVE:^)KS.P%A 5A_^FP d )Qg|d6 m r%[z8ZsH d^JLUBien;PWL[0L'8G! U  Z %  \ R 0 gt/~_n߼/omzZ[(?C` !'$yNPPm`i[_9vct r}s>$c5YvY<kk PL> *{uRMlB,>CZwX#%`KcoA"_Of_ t,]W8~ ; CKrO;`u!>5w#i((y}Ipda^8=^= (]M*9) E=H ! k@ ?MP@ k6!`M f;(oمw,>;  _l[UtUR?k*v\*00WyQ(b1aSxJh= -"]R%$s "^E$#3A." ;- yL!͒֜_j ? .JQHYk :]+ tK ]6@ v b <U!|)A:\#`' 2#*@n2-7/=q/}ϥ%ޜ+NR~ {w7%WRR lcd m@vD<ݝpk6u wJ E1 !*!" Y"%d%,)*0S3T$1fF#)܋@~2 G!ܩ+ۗ'6L $( NZU'* $xUi0p8BT,Q Z<[n?!,'&`(.d1..,(D*p'T#W'1ڮE?fNV.\<[|$ J{r36GwsW>y-",H+mN()yj0(i#*V#((?#]$12"7/Xٽ||\bi:@yܭg }Ky!EP+4Gb'kS fV% "R Z Y!!2i$(',-3 vτS"6` tsslUS3W2Ltx^16YmP=A2pmF.z q=O 6V5x (-"z"Z/2H&?̷x#z -j^Oe(  {;O .U5#,/ad7I0o<|l S mcn Ry ?&`'" P *+E _1 SۜM!G8){XW,2&LR-s ][DJE!E- n  OvI8IʲrBUe vczf@ij9vGFz1m]XMZ-f^YB(bZ`p}B  @SA,t}>-t!#  hi< l'j4CQECKa{ |_ }1')D-;`<(3.  @  V,#0;(*Pt vzȴ%7r4["i6FDP}6P}X44Q%#lTZOg` ; ec 'vML" B8w{! gqg lVOF(OtPyGi<4i73<_4B -lNBi +DOa/.9hw'_L ' f "  8xrf + 2^V+gF( ~!jsq=@[$@2,Br:4'LY a!7  f&  Mҗ>[;6)  k.vQB!Vj4",TcX$@dq_K"NXIvrldWqdc3  0 Y|<7vw|T# oË~C<gqi?{-)u* FR2xc@vRPl3?5Ie1.^R"<'}D 5 ls'}`#FDpF1HM+}jA2mzwME:}p   P k0p :)fj-[l<^ +pjYm K>`1'.I0CA bUgvq\C| w  0 S ) /  [R*X x.X\txa ="D^nP0J?pY7S/wI*JE~kg92R5 yaE-DSRM-|4jA [f>U#@;s1*R%T!@^[f`DQCqbx ?z w:Mp|6[Z$Rp})d57>.[/aaRNDXJ[b60}oKKmM%c-0"#!|_^fW}`R1j;B)S*kxCF %xU)OR{#'#pebIctJfRzcCUcd'0y1I^5 >i={ x*mW=HL.D@GHN}b}F"0mpc{.;el#NRB~RjJ8[ d*V6daK:g4*lpG/'XOwrV^Lol($LS0jBD;jJ!h51Q UIYyu(/ %`jf2 [Y=Ovq*&+-Rt3uc65v%yMv~,z<z %dRTUE5KV[jfH#W"36 xTzGv{ln7%`,Fx0  8} o6  c  NS>')LgFyI9QD|V 2O  w o,  F0#)k12w0d4{032v,G.:@/C@_0#) p̲$KB [ ,a+޿ߕ\K2"&_ݪSܮL+X"UnDi 9!k#)<(+2*7AqKR"6,Yr׾φu{ij . o W (Lm;݈:'!X WzAhȆ̀ȧ۔>= oa z I #Q **+?E:?3mǰΚ*  GABe > ")O!F4  #B.L)B`X w _*  !}##" c'#\"a p/RyUe?P% U4 Va s:@ $1EgNt*Su&$0)Oz V{  n  vF )n f  Y v; f!hxe8dvC $golhyGoIg\2su5]]seSpYp:#jNc3gz|?3);t<TLcrzSa2CRicOD@=6N 'SvgeML% 3&(<srr}PT^5W{ -?Bi{mwa^;+_Q,PG! jokB7\Y?E8J]Oac2?b3/i/9dlez|PNt|lD@n}c]o}t!56<:--"!- 06EYy~su{zR@L?'675TfZUwlb}y~psk`mxppqsvv~eKvGKO+yz !)8ZSEO11&#1-( .A7' tdhcf~ ).*->B*"&$$"'IDACESRF6(!3$> GJ, uF=+5 1S0 ok^jf9pw>47kbW,_aG\/V|f+;qCG(~`~*GqUmro 'VgR HB 7z- B IV ffZ;B BP5k>0~ahcj(hscY{$uQ,= y@aLCNz\!%Luo0%[s3@iQ lOR6r  <=4L!&(zvݞ׀:C[ ,zr|[8SDVtB`,>Ko$wh _Z5Qe(zGy>Mp Qa{ #&f(-0,/ ܸk;(4  K;+oENi)*NbD6KT*Js4bps9AxRKg`^  Y .%2'h#)w,ۓQ-2'% polgtXNwJsz'J4;;mi:zyi'.'{`Szy(  (:c  ^ ? 7 fy b w:p:6}JPoNV~Fw4:zYf% BvY*us/R*%VJS\E,v+n8~GA `o~b3#A]l-lpL IzuO3uSljE-cflcgfLGP)2z/>eRQG qarfjj[dZUcuzzzojhbMYipweu  .o3=O!j}zt-6%%'& !# *2( 59#'J-C\82pKc0]Sepcde2jU%50<;ILH#Kb vkWvJz(@yw .0,FLx}&be9x8es#W)!#2EKTUrZ{+!Ne!-=E=}~{ Ue:2u[<bBip*XUmp4oC P5\Bc Yk)+ U*EXJ2B4LvV.|6$(3s 9Ge={FgrX ?:\lwZm}X$l ^?7Xy=q~MCUDG'Qxau&nX7Id}Du ~j p1lp=   U %+ ]aX70R4WAHD1fU~~jw`9r:"jygq e , ) *4E&H~ )IDG=#DFg $]  [' o B 4;.J!% C,R: R ^ wc_$R*"(+h,c-5?MD | ?2)Mdk5ymyZBQL Ff]w ) bO$')",H.,R8T97Y47 >i{`p݇tZ ~ 2:qQk02Wydh> ZXUH8ee/,n J#(*+B-,.5/J6P8c' FWߞǛڝ6G*r nyR"`>zT%t70TTS WA|!@#)/r);*:8;_5CGv6 <&CӰխ!dO!h6]}Gn}~ %3> JHjoc6:)aE.% v W(`$"$-4)},Bn>_;oD"9P8$Gcs\r  x J 9K=tS; MPZNoeP''E# x@dj6)b5 7k ! !(.<'$0 o k I 1dc ;} s 6oYCTIPt{,Ue?Pm{ N/QXT{${|zn iyb) 8Sa}.'lYF oFau785 Ada4_DEnUrLY= %~?wm^@J 33J *t;A/~y[Iin7knv* b`m=} ?9@f [W{3aFVu/@jA57hBY&l@VZ-&? Bv  1k~2?} p yF"694Qp5[dw/Y2]a4m7 E&a"D> y _j  8 , o ^ uu -yZߔߌC{ , 2 8Rx7oY2V}xi_x#|M]9A7)4IH  9 j[, a-Zs Rp"  ~S%yܙ/nw; 2C-z ?zgCShrCV#aat3\bJ"[-,N^  M I  & 92(1 OFOT DܐH8]E 'y^>k^u  -^oL&c@M|1j'z $2#w|;(Hd Z V W` M V}<G -z0BC T-}uOAh \8 KMb@ w(fCRF2{E|PDiAx%y9h,ZNH&] r    G2fMZ f y:) u XnJ?L?S, QNVdRM!ye:#p yqe3E^zm 6 6 Al 3G; #%"ma 'ؑ] gBW0 " X"H400xcBV\rlfD @ yd 9A^x Jߔ1B\ " [1 u+~OzLR!*KXXG57 c8qYJanYE U0[} P !b}H rg( t^<&_?Vry:*<&6K2T\$`7^fJF T}fb-MD:is  7x9 QWB}b{p%s`HdlGZPx q-"/ eT8jD;. .J) NGq@:ANn$}pp-6@;,b-rK(I[Gh&v1-4,+ s? b@Z?SVzO~LV(V!+`-<y} K^l9s[7Nk'^~/iT+o_"d Kmo1sZc S8'%M8f6kz. <b|']*(> F2E}v&a{_`yt^6Lvg_~fhe$jTlj^e7NO<9Q( B=|8l 9&&!_>#-46h-1S  i }E$$in"ay0Fopyqz?YQ+dDs!+ , k /?LKOA[=?} $d'oBOS;zhmw.wj}G|:ٻI{g UR vy('M4 -`;JUK0gچּ69(c>́)N'j iyR/v K$0$n | V"m~ȃ5VABh ^ Ve[c88%C-,_+&b $-08p - A@ܨI+Q Z Q EGF /xv !"/_'a1f-G ƼCR=>"F|J]J5"P *;L@c\D&>5 X~ > } D N, } 18f 8 ;!̑ [$]ZuY*6vEvF>i6QUC9K.2dd/,8-$3 SxtY<h+ j  A 0! ? #-z ` S Wn Nτ@]t!r Gnks?y {8?rK ! d"WV"OAD* ] _r~g `}   ) a O~ F !O}* m  b٬' be ,={;jPOz= ziK  m])<[9^ ! ^ x ] ( c ~  5#G ZZ1ڀ> H8m JB*<Cqc ~/JMu^fm;@7*;Zlbn/X3{X!>~6Z/k, +-n"Fy) xaqf?G=W9XkS`20B8OU1`J?\uVoNL gF3 w#@)S6.zJ_ICrCCD k L-#S@k10e/E}fy:5wXUK.6de;8z"5SFs}C/I,|  }$|.X~!)&%YB0#|3(sO@ k '_cXnBRP L222s.(Y? *KcnlN M|SI=Yv#Bh '+#$/ ~~S||a6<b>G/sN|T ~@A9wRmdK!  $*$!&2*    ;GCNZVZeX\Y5&)/-13-8KibV[bV^njjbU]\TMI?@OQKTbficifaE 15" %! ``\cf}}q|ynzob_p    !$%$,+#-56AP^gbXLE66B@EE9,    x~tiniqww~xm^Wl{h^|rd6 Pt2YO<Wa - Jp7$>E)v/Or I:rSRa5 kV  s4e 4;s Nc c&xY DkT f _s  @Swb R F . d 6  v Q 4"C=e 3 2+ <"_#q.iNY 'qa ]M W J- NS YGG C ~C yP s B9ԛt|ړuR> Tpf"Ia a}G?D  Tnmm #A0}/S.*/SƯSE߽C A<{ڝ%*(Qu) \M#Wqp h  _"'%%|*- +0+-//27341k6IyRlIECV?/*ܮոcɁWZ`*B<}qoCʩ Npl{Nfw!ݒv% 8UJՠPivm&1 Z=");.-"++,m,{)0* ,-346;098W<>1DIT)AuiR[  :n`ؗް+|9Y  ܗh Xx7;ͼ-Ԧjm4a}Q IB!M#%&8$ #$-102}21u9=V7^7 AMK#1ʧa"48("'FֆθoeMZ 4a[ 1a3 7C<>pѻ&χ<~\f H:2b 9 = %S +5c5*$%<)-g2T69e;ur62@A1_ izu ! H}=r"O Xjs٦W`f3LINP" +n"##!_, &g(Y$-#Mϐn#Zi% > ~`KY ` +Y,+np...qVimygs:nW8f7:G{ @;WMlVYQxW B O ~D+b :eQm)Wu2xG }a}J[2N P:; ElY~NlJpz;mzm`n*7U{[eUu =rbs$#&Y.$Z }OoHU&#` ^|!-L n U b  )xA iu, I`"*4ka8fVl%Cz# S0u=5$t;M-Ug2`i>T !U$Ucd^#tSV}57] j4Jz6AyaH"0gA k-q~ +_3_?fe  `i E  ` #Ro yYAl",TYbh]m!&x#!jb4D; 3lb P D? }t #zJq 3i G;Ra| -Bw=Rtm! '}DcoPM-OU+wb & :! 6 ] /D D : Ikt[ b>1\J_6^tG"cx6 +nv9*m6l8(gWe%8w.E2|gvb&HU}=TJkpZ(an# ty4sGIi~- !4 zU^G>ST9"|'3Tr+ <7d+fM:GF (u+xYMG/ >`[b(P$?QIH[bY@! +>I($-$FFdl\alxG@US20IC<KpW:52.HM2AilTQbjtZA*$~ftznyy *<DJT\_ie[QH;;B>K?! ..' byaY^[m{dn9$AkBk:n6bg:ORs;Au#]"]u{s>o%*@>f 7 W4CPpZhZe]x'/(&qD$c lNbf> M!ZiVC^}VQC C@k" F_efOrm^6Q{I'--4k=R d})D0i 4tes:@bq!z_y=  vG 2pK G@Jl Y4 " v ڊMgak xPhc5)t( ?5ؾd 9r&$ ^J e } /}zD (\:k4ĉ{0 X7$ x1<.\ \}@x0)LlP]ڵyc/aZ9 z wyqi +$(!*?$K71ʅ͂8C b VjVNf7m6*$j|:GdV\LDIU M)q"I7z  `'[ c<!D {, jQ ]*/DQ8 n j ht1JleJ[QhP mADvv L v? (za    y@ `ՏѴ# P[u^n# ' .QH+h"}.IO sqf6 p  d \ y v + H I 5>b']R zMC= fps{ttEC mQ}/h| IhumrIE%dA/Uf!t l  G &K # F U T mN Ժw 5 SI | } +'Ddy ~9i\RD*A^"LBT X> p M^t>J<( 7[3 c0;VO`//RZ% E=$kMeOij;<G p3 dm  r ^ ej | %  b ` N1 )U i4,Nz3T 9;hj_b|\,]Q>vBSLqOR) =iwb`WBN2o|+)&AmnVr4c/#.eBDvu] 1k@u]i}LJYi ,\h9/r]I/oCC w;(R H]Z`~t0a3ua]! ,kl^3{R' 6~].KGC mU~bX 'Kavu)LkB ]fZKtK6{:,SXiAHO:xj>3|D$nLlm e3 [7VJmc6!j5jqqxe,B_W"GUr_0Zk2A}\p?p&8=ukgP[_N8cU< `jZNm#A Jk`xY2B3S|j+tq<#`;QZhO#59DArd!oY<O1]}.-&K:BzzFc1},fo%>g:oj!]7OWc&W:Qwuv!?d#WJrCBf{*ri_"U/&s%j?.K4V2k$j*DNM7GAv=u?v?:^;404VX&zfL^-^+V"QMNY 82)q8DNM;&c!fLea%`1hr4:;WEvK0v\[b!D:fJd}$3<0Uuv | y ( p a V #]")%Gc w-  D:Gg^"0ZnqX~X]XH(B mn*2( (e&,&w} C՗~ {5 S;mk9`*\ w ]%Psu"oG1:Wiu1u C=4iB I.4l.'x*S&{¯@ ^ U>2%  :cb>,A;, &9޼Rlj\5 MBzH  ?RJ@W2`8,"%.ܰ]e -g > -3yjq%&QbW.5(qy$| GGaXP %&P#'l..%+66'  X:NM. .QB:}.:q%PKfgWa (A+Ur2p%1%0`$ %" ?1"}8_G I)N$ j{eg2173<8r7\!Ztz%7&~"'+$ RdZh<;?YJ^x l U gcUeich#]q~r [9  sSc9>%#/,UmӗMAtم]^|Z gs H .h\qNa4U#B\ Q-vYV|22$#N%O-/iuoUsGH(*j7 4 \:mbEWI$8YF`PF h*Yt !B!0U; e m %  v @ 9 <{D?DNNҨE%8I;( ';b  g *%kY7& 7E;5 T>BGI@!; rL;!&|,0y2p5F75[30`-'[H0z@wм.hѨk<5Yz, YMX}ސݢۄ(%ܾݖf $2\OK 3F | T~&g=%cbL]o L|G_ T@˓bK7 !:!XY.{ KQ Z \IZ:.sm^w 9^:!#'%&'(L)(B((N)(%)%&'P(0('}' c `@N,/W ?r!""!2 Dx j5wzr)zJ$K0cH; : jEF!G#$&9'()))),_/1369w8- `xјO}ֹqYVF X )lHj-H7KIW @<w  no4%$IoqDL,B81B@s. vj"%y*.a/021/2.D+.*&x-.+262O1'0Śʉiԟߥ#> 9QF n F;|4rmU ^3e #)BF Kr#$()(*R)'(2(8#&&%v&%3,40/3h*"OTȺ#MѝF ZGvVT #x?j3 _X5(}5a:D@hJ|P Nl$!!b#]%t$#P#!! n!" r"h!G##))'-,y/:JߊdyMZ c   , >MLDW:}tB@. \O  _'^w&a6f !9r$+ / (&$$(&$Q b *Y2 h\l]i 9  |P"ti{  D 2 +O2 x sJC.t h[PE7C!$!"ܖ?]RO O 3)l>'J>'Kg h ej<@-@0k0 Jgg aX^XAG T!;/#"nݦK&$h480   ?7+G8[   [YT6k(RC <i y Fkx$ !"3}k`BO\@5el/O W}T|Gdwc E1 /\d.`v7NY&MAg > V.$, 4m[~ ;֫)KD@j?Bse dX%L @ [ $ .Cniu5$cE#B,T,~*d8 B4QX92AZ%Dg1 7Y(}/& tEf4 q  I9 '  &$N LSS gU~ n >xE]i4^(Cym8xhE \*VjBJ8]7( `\'isW#a#,sX_j d 7_~ 3 ? 2"!?L 2 v( BV{gk7hLuWKK @])SUeZJvX LqR*8=kA r3S8P]p%:(3?`;\U&!m2$_U Cws*4Fj=TuOP7l  | .k;z#qH>zQ!T9Kz5<f[\;CK9^]H4mvM3\p_L9u5b>&x.TEd-^B=N_` m .0  fd h7:A . ]s?b./,gu0[@UkUV='(EbQa\bcT"  q OZ1=dX D! 2"/y:BEIZ]a[ r%Ld+ke:^;{yZ03n<3|pQlF/DCWjl-,ZoD<;gD+!8n`^`s<Onb&o?VBs W`T_:#aUfu5JE#Kcq'^nr*iD C`R*EA\%&.MHf5|e EK7H$L,@292J Aa/+{ 'F<6cF6Hk3 !  c m s_Jo>qcHs1Z%LSW x$0BboEGUcMtYsb&zc,-HhaymhhBN -x&P|-s\g|#Syxw1LA\$V:?` ( s QPz) Vm5demQOV`]+JI$yhp`3n<P#gO|8A=ys~O+p>D;^Hv{+Xv|K2<:.3EI[v{vfls`UA*wv^IE18B?+",  .9=Zpz~wrtzkcumjwzFYr}j]?9~>@vY ~is1/fH_`p+|6@uMZ|r.P^h!a$3:Zur-M/O|~N>Rg8M_.2e'~n3@0mQ(\g>2r<UkH_z3sf1h<*x9O|vUf`W#aCOO, )xWPGEVUcjT.q& H!x}QCTR)9`zTDuDaQD43aH6W]QN|H)jU6*$od9w<o"uxkO(s2,[q!p7LKKs(=4g &*qv:9PA:"t/)\e.7m1Ow*DL/!K#;fV$N?=  491w<&N$S!*DN-tAPE|b831 Tt}@)'" z5>^Y7','DcY#h)'&i&' `}xd*~L~T!s@HPb(~BK?oX_>{60w|WKIg\qnU0Sr-Uz64et5 S5z>Z_BG7[f9h3+m9b0fHOg?Y}f3 7J>m%}n-z7V$!T'|>/N6Wnw[!]n74|%qsA"eI# ho<we?f?6]@<s#?DQ @qG -p&_+t+(h~=*vXQ>~oBr_Bs]'C;x% $& {B Cix%YxVDo?(&(s}s4s)3KTu~wR&K|ae6v'y:&$ f#Io9>Afj+" ScXG\x42>5`Bb'MmUmoa8TKC#!new3GE\OeS[alMp6B"!+KLmFW06b{%N_3 WYd9Nz~!:]Xf~p}xSRp o U~w{\Xma`nAn15c3%7Pm}wJ9cC/tGa Ssq^x{BZ:;{sBNy#  %R<~vnLMK55.&-pOA>FP; }jS6xiR::<9*"y+>]3oX742? Bo '9_K3/1UV`y SNRA')#!-53 -4  '5=Tcl}$.3/8<FGC\qp]]rmouilqgt||z~y{vxkTWS:1-"'&!    "(&,3('11GZD>6@VOBJ_cZSWVPF<:;GVNKDHIGHBJLNVkuf`^`YJEJ=$wtvdT^ehkv~x|%;C@65CFUbfhUKTUTY[_PL[RT[c[NUV[ZJQ^J2 $254h6f@Q lpDn-YC4Wm " M ^ E H1o.  9  b# Bi,1-j.3Z0 7TK9>m!M.,=cSa #8^vv1o8T-xdmL! ]z ^7I: ,+V p O!_CH&SSQ[2y]=w8 o=k?2" 9 #_/$ ?{ajwODY  v[% H` sb O  K ]  g( Wz-ye ~mAbCZ+9{5[ }#hJ   m W o PD3"7#ED-X\B; P]O Xb | XTo'w9~RJ  |.1F\q Nht% GD "v6E¶ %rX״gZE[. Vz(X24659sCCIO[itpkw zZ#%3vjȧ=QAҮʣȝr{Nax?³enaϊ͇f``[S*BT 2`:o@P]-a.eiqsv\||S}^2KԺĐ : _{+ֳ_>DxѢ""ًgbN$B_ #G,)4nC>CrL*Q,X \cgbq~{tms9T-=e9 INR VTBخܚӉֽ x4/J t!'(z/5?C<3FPJLMNZj[o=)=q̓ѻBnyW}yS2~ wQ:ܷMۏj=-ٛJ@rg "#f)9/ /Y.13/*)157C(E75)?>4/C:Mލ[y܀eXOcܨ ݹ&]DGDyh  4"$ ? D#X""(<%/#uM: *9(aC %LM,&}!&`-v@#!v V L    $ g ^FoP_=MXS*=e[b^.$N]fb| 18o"" ?H  ' b@)2` Z|Nr]-2T gYG}gzT:0Y   ) .c<5xF [N^ R:G_ #v`^0  _S4gg4 ]eDck Q wk}  4q5IEOWuwtGU%G$<XX' A= [ g  65HJ02z[z>c S61V?^J2Y if jh MpjZ5c?a#r=!h1 L8J:Q_Ic$A]lSN/X:J)p-ht,qdHlq1{ .fZ,`}MTS)$!ec!^pP td2aQc,PD4_\Y_`Z*C[jvQ.YU8CmvGMt`HEMau<]qe[hsv{v_obJPGU[F><<-"J%R_fyKOMMoBc &DLE4OYeW`Z?GDYTPuJ`||w}{Y{LhN?!.1:1VJH8B#04mW p_<"I(y S62Ji l(xDp&)IGK( T>y:s &eJ[ bY \_" Ka7ui`^]q9D$Mc %J\0(Lp 9B/l JI 1 EC=0@b$_Lfa?lDhdeZV[FOz}%DBA*B$o,4b,=s_wI_7:]}t 8*F=j;7oGroN?[l1X1\Ok>%$iAY8,)+LLyu*,31ENuX~tm(&2H^p8)I4K)!npgu{{2D X  KI3_  $] @HT+ 9M 9.HJcb j( >5*qDlw:we,l+ X'^78%"#"%$J&*O%&w+#&+Q&ԳFv  I*/R0Gfo0zd<+~%&a: g Q 'L"hs.Twx"!f  }S=uٛVr,/P['GQ6){Dl79 >7<OrZEmA! t_ E ?oR$m.PBL * /]w   ) V  e KY6ex~1C2R$D3J sv 4EYinalD%ukk1-H~7'y9TX{[@*ND[-sU17S"a 2Y<IqqVR3m(gyP>>f  pI4!#!)Q2 m4T8[ QM _ 1c RsjhT_D$ 2^/mW#y98dgPnRQjMp 0|&OQFxQ y.lnqNPkb 9 a \zLD)4BZ68&t11m-wCrqd29)kxJlcUW?J  (s""&*`.0/4:+@GK9F690) w(Ӣz$lV%i$ C 7 =H{ ]/jOog%k-I|7BIf^*XZZWeJB~aUi-ۯ-WH! 8 1I   +2^{_ e@"Ea3 udneg On|O.F t '3oS?#%',14;9A) Q `OϚѶТ6:x ^ q 5 T$4 5?v{ ] 9 Vw3$Au ?)B[w 4 : U`qQ#D ~  8"%&bF Dr}"Ϻ|yQl X i 9m"q K e"T d t4 :-s$6oED$%U# " . a   c /G}]fN! AN+݂ڑee{?2Zn/MWV ,p1&GOR~Jo4 wiQQ9 ^$l4w ){jivlog90!#L%#7 Z 95.rݳݮO0. iq = . - c"2/'\o?_NWj? uީaS(_~ ^G-VLa w p 9 y^^<(zH$ ].6ެTݙ`sY = O C> Np0!60FI L:eliZa> 2k WM&riH';tcPݜܴܴl.cd[$ $#i | yv>Z^$FP>IR|0[M 3  F   * e _' O7ysJJki:q q4vp 8IzGlAl%nwV;6O r}+'1 p4kPzs  v I y ` +% @luwl ? 'Z-}P Vxhk ~ OG, $bS^;  + @ Eg  X#'5+*$. ާ:рDW{w g   NyFWR>sfh9$`&VQ.2y['s #$#h!JoP* tx&H.431)%lrYz}'B{(3܄ k./X V  m;b%%.A  J (,($ IvM ,> zN~&+.1.> נ2r Ԡ̔{ D L1?2BGK )3 WܥԲ֣P`y، ,U Z@9%<  !n]>Q ;'Y-//.0K&k ~2%A 1w}~v/Q + d^T)4%TrX^+ )h.iً%oMj"l!q  cmod&=)7+/-rbӁ10R˦-ޘ@ Q aF3 o; )<,V) | Cigvehخ(fZ|n:  1a "L<7 -F lh^ a ##%))e2) gNG * JW %M%} euz>qZ8eHTV BY "#bq { >$u"%,.p)L#$ LNIJtۣAs &D $)n-z1 F%F-*?7+ܙ {| @&id  0"|#&&+5&7#Q ZCgo vہ PG qE 9Jj`DmG^r JjKH 0(U`gF0l)$  e@LRg < OCr%g0R1E/-,׼Ţռ 44 3ކߚس]+z E@ v0!l4,<]qWS  SO6_ko f ys3e!\A|:"~'Y*/R3/[D#d~; ސa+ q xUPB+s iMu 8GF!V 1 b i G  !P"8~ "%T%%!-a4,&UjVTr21J  z 6akq(P4&2c)g4 Q;o,{!%')/++(&&'q%k!A !""$&&o(-2n611"Y${ /Sdqоָ=m &8a p lAF_XvhIe_,a܈S |TJ!#$$#g#"!T!0!d 66 !L#A$$)`/00$0u-&n#ZJcWϟUϮe٫ާp^8` z Y{Q&6XN#,JziHb/ "jNw ./!""""O!C G-VwJ7"l"# y ՟8Q˱Τ܉3Wkk  l$S%#>2rBj } VI ~C!"!h!!!+s*[Ob n:@Ѐ̎˗Bj^?n#H=Bh tC5O.o:`i^( /S ^98Yu_1{a`e/;R N܏Rɝ=2XJTl  J at&&L|  7  ME$FJb0/JAW &!m3wZ + S* G Z%jp_+խI~ʸʦ̜cUI{DD+; 8  r Mc=  u2 ]+5~ Yvq82W#\Z'X Q  7 \j S kz_:[lUSɴ%5(֊N;SFU K U6c M w @ z ( 8@LF5F0SdP& oFTE[^Y|  U  O  (  ZAB"jѮˋƴm2]Et?B $ { P 5 :AJ9 [ =BWfW;^;-; D )==7 > NmN&W+zhŮ_>AF{Etb  O>{ds@yy{$Q  ?r&8. C < \C  3 \fau7gF5 Mvu۲I 6  ,NH[ U ~ ? ^7> 9&w43 J  ? . V he/j^cH/3uS#c5RNlO ?{ pc#j.gk_odYdLGcmz tL xT1&%:^rrzrUC!}40QZNU$T iX&2D8 QgFrQ-7v L b4e JxJ.  /+ok-6:VL>x-[ jkGVkS Y <A8 -bt\p}3G ^  , &ik  L~fW.l1}XsxMp[P,[!3;AB | O.}S Vl#[$UQ7^G) "!u PQ h  l Gh KIUhg s7 at) E > ?|Qt)\} q#ck m) QDqr`^M [.Q*Xu 7eD  9 a?QqBnb_j ?  U2_  gTO 5a`hs_w ? @P <  y?A $*!56#7oG l f 9Q { S=h E M"t"$&7c ~ 2 YTpys ʞrwk1BX5rn 5}"T>1pS hSI] (1%V3]߿ӭ_жZJ 1. F-F%fݥ۩ޟvW4~  +n`v#>.L-.7V05>38%F1AzABϬ[E"KnaـF+&) f E=bcY!eYP4ri-x7bsY4߼q Y3. } m$y&&$++)p,//*n3<;D= A7L #b  6ȃk%K{ / {!SnB.`i- =N{\Ao/=$a?R6*5cW8. f'f%*('@+*)p)<)--'39@K7350O74yeQpnjPҎi1   # r n-6;J7Lbv&m znpv{B: uV~"$ &# &{*$,7/+Ap;m$ێuܔiu 9g?[Xle <Z`7/yp E5B7 ^CM! j "N!|!#"%-/-+1}T+ lבj0`H nl x +I-}Ea|M'NN 8]AvpjD7;c) "GdlkBA@t{ l"AY#)&"'$x& 2)LܝU޿ 2 ~ H n 't=-t7z4zW1`XPHo5hH| Jd  4d4)"\$v!#"#!$I  " 9pp+  O HO-/6rpg4P`vr>XVD7bab"9+ j nO J/ $!x E#a Tx=݂1?hy k " x kP5T`ljA|8&}!d V&lFjNVrV4 3 lqq!#"%*$|Jb׎fjru Y  [=#O'=r: @w%kE}z(P#0"g e :H_"1#v%\ *hLJz){@ d ]ye[y4r?$j 1 S,HywoIm?.dg<'CkRa s /y|FlOg_5 Biٜ5b1[r.Jy tR%q!42-/Zx:nIEe D&S hX D I(S6b{j#1H ?"U4xEހe(J/P3T/*C] \ 0S|UQ8[22<)W1#1We#7jOWMIPZ, ^h_ a < v c Q l ! 4 %u a ^kxyzf['(+^MCrE0pPBS*B_@6e.Ai<x|Z1h>J^/bG)S%/@6T5Uzp47M"Jw`XOCqPPMs;b4cd-]^z|WD  V6F_iFCHBG3&viKL,~PC"C#aMT^YxpODS*XD #17S %zBRQ< ]ktiy[r_ 0OS2R,uEpHY48Q}Np3gxi[=U.O4bZ!3FsHfd/Q{z$|MyLT@ *7i_Dg">uT_>s"Truc {mg8}-~IXEl~H5! -bQTDUs"h:!}QUa3[Dv| &cDL=L :}{{$:1y[:U!Z^G FRgNs|kG(=LMtgxmYn`@GkRf[&t9e*seaGD,w);V=y]L}j1{m|X0ux`7G`i AV)eU'wDi;p*r* V|6yK|k #02!]Z?YBJR)aAu{p 4  '#+EBtZSDRsnNR4OB+A uJk4_. S!0   b SI  n  oc /ZT-8` f'N^b =lje*A y+g Twb5@}j'<3I!TdXv ] w 5 JS )2p^_ n =>QC $UZ 9 7(GE JI)^> "D'rjk8FR  keW ujEj sytEBOEqv oY <;pW8>?P/t } P Yb mI ffM1Wtz ][ C ciY(=U}A;# I | X wF-roo &.u.m?]G=\)T2C;{!CfY(Ar ] Y # = p eh5&/ l SV _.H1XGYwDC^P  MH+V .:.ٕٳK\h&KYM*Cj] kh _ `Bm j e -_r#1(?( z 8TV̇b Ifqkg(Kg 5JJ$G@ UU;{zSj \7`T8 #$%#!&170.jmXr݇_SK_C b/&~D1[n[C<{/M-eiTD>u\V>  !`$9_(^53,! 2DFbZL| # P )zW|MjNG{d'VO!y$V3oG T )PegeMV!"S"/19/#"p 7Dݺ,9w   /6;z[% Mz !#}Gh?h0 u /mj@?]8i%-(# )!1 6`܍gcd < J Q >jS1!1UD Lo1/m7CS<+ 0 5|_Nj9=>$!(*:&]`Y LWPg)<+ O  E39T: 6~4|}YEZv .<J7ie/HEqO X#'$cy/ݞhp(% - * #@2BP,p-Z,C%>)GmzG}P (z8 vG;,>B@_6l +jkL](iXDk"LyPNI[b<^ 2Q[ 4Rq nE=u . 5oqWlsI  YF.RkWJ!A`mpDkOM[6=S!5^R__HM? 6"=na3Y} a /E/t#x  m y \WH_S Ru%*ae8 *y,MssnWo,S}1/P9#gia r fp33Q p"S k \ 4d1 q#9Y $$i $o.`Z4kzi0Z(1,nl&9(:{,mf *ec:cU5k  ^1t6Y"]W)lWg`M_p"X= , Y:muAX'M]~]T 9e,7i>Wp\z75>-GltK+(+.xb/L,`'FwE!#Fu'p85;;i sK]N~0$8RUy <iRXU eDvh#a7{`K <Ko. m_q)S1T%~=^:= yi ! p e$ \   ! ^  AI-D70CWc pYWzUI-IU3f^4kX  / l zhrSM~K'u,Z abA-'syZ|Pr(Q7Ewc ^vC4wArb_/.w lX~o#"~*UT7&q*|5,Z#aem9_  7  B> .U U"s)3}2Vkhb_0p52L   #&V"'_g!P Ru76 *d]c`6';J ݯwP{F&  E [j o  H k6 " B<Azk5j ^ v4 [` ! i7@Zwq/ B)- E*#s&pg#,chj{'1 jlW1T՛?T  a ~fH[fVtKG;JV4 5-/)M, Zd "cM#G]^:0(z B_Ti*3Yb mT Ums^TQ 7sa 1?sO6 v  BVY8!`H$0<LD 9& ׭Yܔ/ *U8& Z~d5nCNk<10'Tm'\dQcc + \ f + cB0YKTz͒VT\n(a e dO S\0!jz^Mx;&2Usf9lb  D W J?  \!#%!GUͧ3%:&#?j h(  5sP60MP r)Hh81IGQF2t <".gTc ` 3 G e 0 u 2 ,^, P VĞŷӖ# |y3r6rn,Z  tBgh0 m<9c`=t(s& 6.`1cYh sl4 U ('6^Z$ Aa a< +!PM 0nt T4/lir3,1ar8h-tw4 U!E_; h+]( j ' b 4  ( U|ӓ4AQ;tD]'f v.WM:=cRl5?gT:rdM-^LKl`xF2 v p  z &ly" qY?^ Uhl Yz )+ 'MRi=K7>AWIZ9Q9NCqut|@ R3nBIEyij5}+:=Xh u \ J 6"a6vREMR BSp\}8 ]v`:S:(Y* AZFNMv =Q Q h y|   @   ߠ;NN- 8 }fk4_Q}(E8mDD6`Kc^`M++3J<>.a~`I;$ xI_>M w2bI50Mi}[HSJ-D:}E_WZ{=sJt/X *h=QQ[Q%UvxY5m.B/ j%_c$F)l&k8@%Le#Kc[kr+%94&Rk/]+j{kdu63+6xo).pEWbdv/8t*dR;^6wK8A-xDKu_v5Z; VaMy3 2 %Z`^~#E@bASes[$ JxXBZ'R2ai^VPi&ie_LMHEPBL;l4_Wmdy__/+r|C`uX] |YU#Gg8#-X(\j*ih[NB<#M,`s {t96|1yR xAL`/YJQG` NY%2 }=+Y9f^Q!2uWS]&ip=9#IK@s/L<<ddnF_"z!PvfxdY`'\{(.r~_DY;_69 cG =R <xU%7[zV dy{ N}$KW:(~Ofc<$l_FEHnR*0zcn@mr,e1^pm)9-zdKT8zO3?(I5f -Rf }z6 #Xsk#hRb~;f?MI[-}^7, Hilhk(F@KH(R|ppu2t>3 ]IK,{RTg;O4|S_[zhDv1'ZwnujnjOZM9 aSj,25M\RrG+$~~L|cu\QnV+g/ !370>i3 T%5t @ U ~b\#%(*)!&F˯ G =6 Py$ C.z&$ACr q q i( q  $/BZiHP't bNO,xU^ȞR3*s% Zcܶ.,h Z[S }c0F'7ŅCIct܄6 sM J $(& C0$3|FVYVÇA,,-Wb-7gN^36/B.tU sak  o' YlFZ=Oϴ"~0܉ V p ; sb %%k*8g>$@?+~(⓿[HW7C$EܷnHXw$"b Za M ,{=DT 9b_Uw&s_ K8؀OV rB # d -!9,4^3.-+%.ݞ|mNO1Y%X~!Kݨ{ qh ]P  ({ RbCՃ()ݫ-Z-7n r7? e}\'*l*D$")+2m_/ eHANu+=JsLj>.f9D 'f &Vn6 سԵ R: Zl""v K.UQ fEpo w'*L+%t9(^G5A818{ = k+A5[V7CtFoRkEU,8): ]'  [$ ^GCS5#'&?WZxp/%> }ؼ-  "kBDP T [{@R 8~YYwHEk]nHs-LK ?|    ]>Z g[  ! %! ݾO0-r_9_ e%!-g~+k q>t~[4<\eZ?w ) ^ k %  X Q 9k  j :$F!T+  72/F  ^GHsDBX)QhEV_u w.[{1r#8,h_|0L F 'X{CW m=Q Yn ;uO ~Iݑ  OO0 8Z $ HG#])okdY+v!L" 9&58Gg 'ejw  IV ;C9 1Up9qM!7sd(7 Gz,/] 5"$?dG}X{ 4Ah 4tf - N 5 3`"H l t % n  !  *# f cI PT^ :D "3 ^d+k!50=b)X5m #a>S' RI2Otgjr5e+;[Orhu"&.p ( 43s.n8* J}?u0HDv%8oZ&os@.l/Gh*;< h%PqOsD}.D a2XB (XY@ F S CwDI?3C`S -{T_{bE, ]:RzuI%Ok@QQm'2Yl_dz\Y^m*>DSf )j I7<eXp=+;>-3xh"|;W+H@W*jqY.zD%^uYRI1iYc 1~5xU#QXW:AfPdTTYBy[(V8rH',0^IE"F-u_UC+E+tK8F<Rh)1|?dr5\[::{1Qpk9=;$J]R+yHZe4DW)c[b!cDluvrjs6>|** '1!m[GZswuUS k_b'S0\L#TD%9}:Bi^ Q 9QS}?# SX|_<v"PV{pT);"6.d[1o8(<~gk?h_zXAE;r] +o1CLv\$|v?s Q+1mRL^ '.b%X/G>uTl>( FldOV^/ajhMnP_F]}5 li)c8qw-OVrxnQ))U&x2fJ=B32?,n]7~KF^ETg3E|_H5x(H7*^0 j]]Sg,at`I -r7M7vFaYmI O lkBD BoA1% EuERm4^1( @;d %$xB'?{m{=m8hF 9 9 D  W o!C1p\zE1l&OFy4*r3!.#Kp7h>qS<$|g )szxx9[x4n1/1 o F J i ' @9/!lmw`$#\1lftpndl> e 9"tqd&c(~/8, Ke^G<'M2^j , q^!<&s73 F$-JڱބW>  mS5n C5N'_x^w$FhNkS <?U ^Ok?zBl\z"v,Px?c2wq#F,:4!O J#k~yGPo9co4|9t j Zip$6c5i  `j8m |IP^U#^D g5FzJM?*9HLltjkfhl`]aPBJWE@O1' *(&(37BFKS^bTH1(%#+(.30%  '.%1=/%+3/ )/,2:M0/8+9>+?=$6=(#$==-(2:7@D>;,0"*)2>.(#    &Z W6 vZMF6>QO*,fMN'y`p)jwQN[c BZ*6yT{,[y0 # EoQet pu$(]2!#Q'iv`7H7_th>&J6uo5oU UJ y r>b|7:'Uedh="r* Fa u-T/co{i0qv*0)IJP^sT`Ylb6beS" e]%s2`-&^83v8_&qJ3H|MT .[1xH, C3Z[bJny3"+nN{rCr/dr9>pttIf>w!:<X+lm5g_8b%#\x%=W/aF1l' [AGu7,>m :}#} i/?vj txg`CT?E?#"^%3i )sYO ?pG?'M6&s'WpX]<SLW#zlasCl,} ^ ;:6d( Z^KvP'rU:?-c _;c!8ULrK *baLQc8\KSD`ZNM*ecyR)4RRZ5ig DVC#Yp#AU63NdaoB@Sh8;?Mc#ihU&ey"_D+lz# r J}'yFR_h J7<!?C_F SVaevG7(u[\#f?USEh1Lar~`\8v(u}@ lfASyB^P>Ra@0SpFR5qIHF>__y /D#By :T4d z^At KO >Erp$&LdC./,qe(. J)][6rezU:K5f@#01_L{K2Jp0H"_ ;d^E'h}'BV2ST%/nJA" 9']E\g:c@;,#zi%_Pw`u@d~3!B.&nrUG~8?HB19! )hr'_W]9 >#U)9*X-Li\ӚNݱv G k E"} ! le\qJ  /aCn 8:_#)2?6 CϿ~4   4  |e5yg"%D,s@Cs8u!i {d]~Gn  H Cp|A\Bg$0 09"`1̶PGih8; v 8?KXp:l}eyU8+EGCVF! lel  Ic C dC BO%#Z"f#*Z% ԍH tcy3Y  u/s~1y:y  \(q{H0p;n4HY` NEYSEZv w% ;?2J0mm#T'w? V#G|Q?:Pa^=m!Mh,9O><tx,m>9vh 4M q,}2] nsCDp j z~xNNMID#W}cS%nap)8  mab|X^vd#QiH#ry-*X:RFYvs$:e,+O K 4o_( M @ ? 1 O /l5"yMzU {1)nznI<6o,!D+ rWiju-q,,%LK' #b|ZN d? g |g ,C/ܬڵ\ܻ ]zoR ]H 8 sv(CZkaZ bYje,oxIr,[\V ?oHyFM 4uMO/4 ] n9 Y LG?9-k #l !- WB}Q;t<j3p  S 1 r *S,)7$. x&MQ 8aY73P {F kyyݴ{1Z}KU| $ Br7(Oga?Bb(l>mCh&rBPA 8# q1h)*q N H gVM_zrsEbrq r $jWV,KlVkpAc1DU{tS{k  ] gn`!"MG`PK20`xHp?M` ^Sx*/.wrDfE@6Mq_! y>Fknt6 i]VD64?Pr3BFFG2uoszl;^Jo g cB +E!(~v]<#hs[ ; \ K \=*!, E{\ngsJy{s9dW8:l$?rbx0Z  )b8+,DP7!kN/-0G] mMr&N,avU"[blUNfMRI0J|Zth-/M[: 27*BJ/ aXw1'; . %* %6,335@3% %1HOUVIA@@@<;9/*(  !  %!#%! #5B@?@G/  2709^Q}f!^)HJ]8C1XRt`%I87'T! _,''(!!"+GOZ_CAIGZUmymnaEMW_|hgq[TBIG*2o}ajidrmUI^apxaoa13;AH7:6 1.( / *)'##2$'%]5 M6q5U4N}Y_k ^ CEe v P yGet![h :C[GlB)u0++ISjXeO2!fF| a|TRKo_JV%X k 3 g C A @ "s7o\^Z:Po+ xoUY"_I2@6 %jiXUo-L tG|%4zI'3 o3" * j L 4  U)vP_EfX$X# H4w:DS:]8[i :B\<m 'c. @ * s|v_ C ( DAHyv2c`riS 8nV@~u-B`!Fk-sTUdVn6Tv[F J ' i z ?  q (T\}&e~N"4uMxQ6w2C-K"gXUD;L 7U?1 w_ "  s p1 D< g-U!,`&L'@(sv{-B=! MD"%_Y0=lLo y G Fh/ ,at"%PK|c@|2H_GW1S9|D :DJ' DK\W2 ! B0h^DLA]J ڌ pCz7RSK/E6yGU3;k~cwIA4+&_)>/>7Ye(A c Q %{Hj$$E>$GP]ޏ5zFHwak_`FTC{"w =H;`/$x[=\h!@N&Fro78 &\|E4Uufn_V>*>| $I;$^3YxB%? dE][2 i2\}vK lRS/Jjc7$2kZ:>  + `X$ 42m(]@UNObXr}lm &)""=cy{kffF'$$?:D][XM.$(%     F*"6(#BUcocvg\b\FOaSTY`lcez~t_>:Q45XjmdUA99.(+:;'3<&* %!&$  -  ),1*,9#" #,&#--75 &"%, (-6:.1*!"$1996J[XUYW^aV^olg_B8A9.,%      "    ~|Oj >~ AL# \ *W0 $ b s#s4N!~Y <?>H!d5h TD R!s14CRS@. GAttaK~Q){<=BH78/)&toq~  A k*>rS QG/KB &Ge` \(F5#)|8BDPKi4V}KiO>? x><  cum 5< a_,[M`6rO0.L*\4oZE(w@b| + ~ Z.?\cg #1h vިU]f >   hygIw{&}.TdK$^A7/ #?qQ  @ > 3 v v B 6 h ; @ 4 V " v {k -   9q/%M},?xji Mp2 4%5BN(4AJ\\9~' 6 | ?+uI  2 M " B 7 * h l9rL + POk*?DV#Z  / ) dfj~^,B2}d & h Yz&4R;r) [ R W*O5 C @r C([q,6ڎ$"1 k & G E %T?{@4zo}0>c>k/  K C  K+[ @"GZ ^-'k"Ut  o  K{,zFenr{&?Pi5 &\Z^<^_Jv Kd=4\a l 9 \ t 4j3ֱ"8}+ f "$w$#$#!~ ^  ^ Y  @ U&cv - 9g_ p;: 2bN42JH rztko!j, h*/ Xhs9yw! (}Vg 3z;lGis  #.P  _O ^} 113c;1] #yr%{Szi9ʪwڑm gBr ?(Vt U!h ! IlfnCaf ;)Y!z!!0 x 2y B I & UW #*.8-m"ݳ};fۓߍ/ :)$&Y)yisN.t7ʯbYagP% D[&&AYGL9 xYVp$ !!7# TBe'uyg ,@2dpmdA >vkaT.ߘe/~hy G #; 7rU kj$s\  m S (3b\$z :fӹ .Si_x v{=ca3~TKNAbUSL'l7u9?2 VQ  A   # M+bC J .0 T\x [J%  DNj v 7 +Y R C310>iVh; >7dTe ?] > y 098 P D>; -Q~+ ;Jaqtٹw>"L*G>yVDia j1&  :h5)n{- > qY@D_*Pi(9 / +)  Tm-& c. | 4b0qc[BlmN \<&PlC0 ?_X J<+* \])fM?I; + l  f   1dBX  d m@zy ov= v @fMSE /+ Bs*;p/]ZkG@.6%hTkD*f75 ~ J< Q &e_Q G w ` \, [ <g@Bu"8K_A q(8^#5egxZBV?]W:uG#a}   D j  + ' g5  > g " k `  TUs3u*l eW)"*Yz7p=popTHEhzxj yns ^V Y fg  uy p    * <*loOZg[ v%c= _p$%9|@J2wd5T9 W%KL' /)ag p * X v IJ-WO }Rn?lz2]7lB,)\ Fl*^3l$`\CIXx*Q $}kv N"  ^ > aT |  K ;L *A{\y!jHedsC'fPBPL]}4 2:e!py+]/z#& C v  x D  A  & Q] DU~Obj-ks1bZ _2j]n2os1i.zxTa U d 9 X  o ~ E ~ r  2 S n8)M_o_T'L"cXeV]^$4+!, 1"T[c<7! Q =  e 6 eW@<x f_\JXB?!AF : m-iNQv/+Anl;:,_Fzj!gb> G3@ v  [ 2 z tKL+D#k Sm cHL(  ", )R'(J.3p=ECy15 X ! #  2 K / G l i % V>jy0 1  q!{TWr/AWP_H1qmf ," 1d'2Ed9w$ZKB6 /  S[f4K #Z*-Ucq $jW iLEOGzV=v=*WebE6  q 9  R L L IC=7VM]{-l>w+ ;qi!."pr3[.%40/%7A vPQuA1 LqK z  V A g # t  XQipPw]!E5u]dk0mpQ} <^i<2k7.$@Gt4=P6sUN[j;"@JHC0K8&)7 UCYG " (3<;4CJ7IfcUZzs~ukeG3\LL`:Axk;> *.?mm>283" ,:x\9nm9}J9Lb_brrjtGG8fRANPP@TaC/   "#6GLME=?KF@Pev_Su{``fjomtxuki|vxlstpcoX8IUL`qds}po}vrw}xraktq|hfeKPV;.8Oga`mrr@oM8:!_4 pFw| R=>u  5 lt '8  hE!T@kA [\PJc_m6VVulI E { p^ |o^##VKA>+Xro !kv wH!Y"1 9cA%#H Ee5A#@<{gY&2P!#vMh!4G7g!qlmn  % U>\JP #?g6  5 'Y 2go`XQF7{O3,,o izwHbOgZX>)#Rv]/V ;NG}:lBTtEkT.B{\Pgs_vg/[>  AC3bJ6c(3 Nf_,nTI{HNRW Yut[J("<e$m=)21<%"2*#B`__,m!z /0\6:k]\R L=e @( NusH ]  -  ' {N %r!in_=VDxh8i#]7G.>3x 4]od2m~' p c $K!( 1 *[Xrw~}  ('|7- *A5g y INO; f HHB_i& +$|17 fhlNYG$JNv  SHe_9O PrF0]Hs&]A&A+ 6OKCUm'd%X.8eJdur0]mQ\G5.( uXe1 b R |5 = dy1 : RN  Q ! / B G Z?|d*B+35 %3JL~SI 3gZ<{+E! :CSlVk-~E    \ W ' [ Y  JT99qD?C z7/)U hpG|"M~]Piv36c 7& 2n T : R # S   ,  i?>W-3.Jlt<{/%psw4&'R-jMCS)+Oq$}E p4k N S o A \ e [ 39i! & x :  m]l~t1C[X_YNp?#7d]2t;V)3-@oen_${vwMH-{["+HF;f HvvZCgou?;FkLO=8 zO\ uHJ"3jC]kbY.UxFxd= )?~v0.$KZ1=[YH+7\KD,+G"b(( \ 2 H P  %  F B g t  m ( F o b ?9`>L?;`/WH#5xPp#M32&nQkjIrMF^)>Pt4BEN;_k~7'k:=y =k[e3OXoX\bVGFi(- Ebx004y'Mi(0E7U m l&  e8l+NDjP%}&j? M < +-8XdBh I> h 1svFijlXc 9kWYR ! W Z Ea]M7  *+r;v1&T'([<om}$@]#(L4 _B[Ap3Z[\}>UE)6w_ Ftp.}zcl{QN!; wlM!4kj1g rRYN$c={ehy;Bu-f )ot*/& WIFm_-K~b f|vh:n%0>A3)!5(-F[bEe b.R^[XTZX>& c=%3Ut%$+wf{ #1Ko 2BHL_p}{{zks{~upjfhdclijWKXUN7vUMMIHF:268.22#3B;-$,4:EKSbW=;ROBJKMPPTckq{z| ##(7:/*)+0)%%! /8,4=8C_YYsroz!#$23;0$ -;B2$&9?*(7* %)8;C\`adbntj`LVd[cbcv}('"yfzv~#c5ngmag5St^991,( 414C?DcvhmkTSkX?Wq*;uotU6#~|Z@[w_UbeaG+%<P4Z* /&3SGdv>Y|<9 RM3$1W, espR&$9)or[5M`=tKujwhrk/ioE!!amull{liWqE;NLW\rvi83J Jd}h.k9 'BSl#R$B 55R$S|z~t/<siQLmtY!<ZE2(=$vD>:;WG 99,.)8$#~yli~r> ykTQ8i|F]aLU5$M -[cu9^+aA;[pt~OPT ^y<% M,<[D[QI6 +R)# U,BS) KP&Qd}XozY>yfO5~WlF6Y& XMcU! +rk+Bto>P+O]y& La<v^0;+ -le%b?ZL${!p>S8k|4[y2>2B#^lc])w%o~#cj_ 1dj*WJjQ6|JLBwh+kc=6R_s>zU6s{jL3$&AesQHn\aYR0xk8sqK-UA\[DOy%J[fN,ZI?FQLz@ <)CfPWDZ  {ILGN'0Zk/6GHqn L[V&J CK}*9-(Av<dnQ/.-MRzZXDzJF&)?mf)o|{6uD|}E ?HTt9)N>^\[oS@ Y0im4AP\dsDEfEoTWqt<y&e{q7QC?{o#4\ogDaNkR$H ]"R 2L@WDrHpNa Fz`hCM [v EE,7@DO$RwE:-**,9$'ltz*6[J~I 2qYZ*o Ji m:x@ce>=PL~D<p)h$[(@" PL%zu-A!4i.,],4\xtNM(]}|DsmU1ZcIw"VKnQ_8W?Y<|4Au,euf,W>aV -7?>v4|e 8OL>PaO{4Z![y< 0~3*Xm8*Mnv8#z >Z&4qE9Y+57 *qi/4#4&r LEn[9-Qb\U"@/Y]45LIPr2LO?~~Kex@I71w_?*eNx+@E>K,7z _sCL~rf] (/<{*>v+YwIgf)D A=Sh5qix[xZ]q- UVD,,If5_US[W73X`H.L5 B5Af  k_LNd =H{CT\JXII .$E.$9& E&KaByG#n$\$^TU>yh_33rlZFsJ]4 44#@|z1lB(" %_2 xyQhhg^B ++AE ' AE $#y e;:`2O4IvmC,'>t#AS(F()877S._+^)jsa|yGSOe+pCfTbs m7%wU7N'1;'"tkU=1^|uJv"; Q0 T#L|pnEcodec2-1.0.1/wav/big_dog.wav000066400000000000000000001161541412132000500155520ustar00rootroot00000000000000RIFFdWAVEfmt @>data@                                                      #8FVZ_gchWA9& Qec>X! jbx_< !xu#-'T 4 "}0745$- *2 V}nE*HhoE)N lfn=>eZ3+4KUu:yM~Kh2RRMxf~ lC9%0/o|~ N`/n) KIL/}NuK.< <'`Tz n S{uDkr )R]G:!HhN0N[Z9(6Nk>IU?a~YCzEJ d  # ?$ ABnpx5< LCfF5({mCN\Fay{=PA5GhKJa-tfF&#T #SswdUXWVI+  $':AH]eI)}trx$2??FT_XI@8/            $R8L$#(]9f k{lKk{m*~Va{pVm1'_m$bic_o"b?al+wW~IHPBibn$G$\n zQ +Y@pH2+56KS4 o7N|A5L  y{)Zuj ~v"$-4fy  nR Pf9+ [fXz Q6] mNjim M 8"Ip& 4pB׊'w'!m67H l8Ba|. M{MKTM4muS/#'B' DӃX1Y ?xv m0( O 4]e#.P8V#jE3S\7 zb<7eB=WcXi lY|j^]nQoD)KXHS Ytluf]j0lXeppy ftznX2^lxsu!?RivfZE+" Gu~wT5y||{+>UfgkpncRF3Ha~oV> )2AILJKH:2#   &LevxdQ8" 1;;:>>4/' (8Vnw|l]K6" +307884(!$ !LS8  $51.7654-"   $6HTXTZTTPA5 (52)'   6Fa6x%?{@5w]<(,&5G`R(3kD0?o(f1ro,?q /4 +UjT 4IL:X0G|&4t7/yLN<L7sbbHE f@Jg^6~ 8:R   <.v!,C3 AVzPaEU4yDo:O9k"A+9! !ۿr:_ kQYZT G,X x Su{W6YRfpx7t5$'TMe$ Л7`~"}!J+ !.!n kA> ^#fq9 RKw0XT1?@0+oޕIӗkR+/,6> \#oi_ G kdPޏ%' ^: w l8 UYA'E?x+'5ۑaݔ %:T/bj+ץ/ '  Z1K < ^ X! f)fN ~T8y /MaGQ+UU?E -B3YLZSE"*0j$ x #"TsUj5 }/Z Z w?C{TBF@΂Y;fE. vr`1S3r'.BE9 j(d#Lp{x $b!2u?M) ,T[d z-TOT&6dM24T .HK>)AYڡ1I9-7 + Z`J'(-(LS#!#1d'>PA2]yS|"MaZEgB!Ϝ[SfK'bFE"g/ܪeD.7* x;n)$&NH$#YAZU"  FHq hTDS;aߏڝ%<^ڧF&')    jA ;s= f @f$E=! dX >Rc#&x 8 ,W(ؐn n  U U {Fp|brP*1y0 d H,]Pd+"zN65MN"֛! c  gt  c F bz-U R  [8cYVlM,rba $%$Pk gi\%ul   >~ tg / d+\+H: @ nXM;= Fr@RqwGhtw Vg % UkS 2 d6@iBTLrrZ-qJFGFfFf<5uKJ7r) b2dG+YIyh~_fZQ`Nq]=7Vhvnna7+56X(\'nu jkM`Q{rfyn`AzYXq=j[: gK2031/:hz;z%J|PF\uq[Rg,RmLqt}3Tiw}}s5w<;QSi|9*vZHLZxJeiwUu(Em{*^d^X]p}l^J0.4)hT=.% |$@]s^".a 4i[>$$FZ]N.20LzQ +=yDGxHC>QqyI)LYcov~ vr}%rLcT2* 3Hc -5'x-pksH6 B T I.8Mj9hPZb bglgv{@N3I= Dv+Y[eT!>  |F%`g SH9"dp +Pi&MH=qLm;g07[M_  bHU$==*?]@"aW(bOoc! o"74g%M_Cm z('\/Xlg oSW9 j} % l j\:mw!G4C5? '1.#q FZf X!T 8 XLl(Y d, MWI Dv ` U A 1 AHb\>Gw,$6T.req#! yEL 9 .GL z)<L9  T 3)ora~ M}b78(c5$%"w ; C ]EAGN:0?sp[&:W  V>$} FSF DQjh; @ 29.X:ԨB D!XZ =܁ې  "x(@*f7 : eQ 0692$4:-*'dلٝEkTtf <"MK=  YW<> } :Pi\~#0 Q)1."y XunCTkc 9EY`tERN?u= aW` G )Dk+\ O r?|&Iks"+ [- *R!deP3 @ '#J&! aU> pof"}\|$5@ - |:2W$.wOM1/{ z cTjSJ6L;f]kroLZ Se/8FAjZX1G`J<,.E|NPepK!sr+`YZ`ln ))CLHT).b^; % *+'0 >+ ;6 ~jpU<!  - 8         MFIL4p&g%;Dw/(VEj.Nu>(1fF^&UT*Hy+{gf@\?Ct]a1c|+:yD @=;I'CW^7cU$=8 D[Yu| g. (^PqVg *"q]bl[l\ #n<D&6ip!xPqKB-=6WK!B61%=~OW%M{3]T15hT#Xj[rV`4c>qInf9k\ 't &+ d:EnAGVQ6 '$*d^G7=2)'&34/11' &;9.(-8><-##           ,?KD"P3& #)7FL*) !^9oWfiuS{n c| h?vB'RgGU)IC scUL) e%[ F.DSE}vA*tuC*1o?V 8v*A:f1u3tu1[aw$k+eQw  `*aF7#uT&|Z+Z6bQ*`;MeB`MCb9YBj5`sD bS<T8]G'q1*_ew_V47#w<$K+ u<"Vd~.,3*p9U4+5CM$0]\M&7#k8D&Q2 (4$MS(@3n7cURu2h^n-ub25~[ T&U_&0!s??~(Z0O`$) JGv[xBL-kzD, l} rD_ `FEE3"(\y ,QU` AclGEDp e*v$*ezQ>8_ASa`r, wJ|OQ Xwh#@f73rM;1v!F.8e44   e|bG=}cQmRM'Lp0$}}s}A]_xg E!OV +:ROd{D` Z6TO?:_IS"=b] l:^?=k> )x + t }  CD/  tcV8#QMjE&*bk"%S YG -N $;xJ vtR  ?|dbl6m}7WPzvW)7T F :;(48'Zm,}/F.(\ ;eVrlF};ex%QN:5 )<{vS1 TlE)^.x{,r3/"r<} 2d? pY0;u^;=M.KR gv])|Mmry jA23@7SihA,U^2 > 7G,nT ~pD~3'R(/[g4Ri8>q#^vG15y$$}]o\@vqwO]VwJ$6b4Xe/Tdq'C~%~cM?~SA:Bb7mst$m37f]' &6Z.Smyjfz#RqfFn v>Lq.zZ[O@{UgR8ZG +7 j [9" h I$a3Y$weI5@ Y;k~ls(eo-|>eq 'g Z>x1j|1>1'q/T+ , gq\|jvKJUbT,(>0t:vgq\ 2,K1rBKG+K@3s  Ds"\L9fE,G|yM4FfMwvHi])+!DLwbpLXNvzo^o n# b BZ&EC`,$#Ba%GVj.^HC+KbSyVOlLi0GC?2E|t!x }Q7Uc%X awg  ; B ) b%s| >q/BSO $B _T|CmC7Rp;L El9 oYm JqiV# 9 p?y^Yf2|#Jg.5a IImI?RtF5XZo'"LC9dlEG . 'sF bn?$=+r^CrqBSf \-Xv'/%wHGx:FJYTZ(?E6  [+A~^ ]ljdj5W2Qf!Vqq:,YG QP;h6 o>x A7 eb/9XU g 2 #"=h p5nHmZd;Pj jYOUrm$ aoT U~kL :M sf^^\R7 Q rjEgt>63te  b +Nw xY~ 3u0ZY% yrF #=k&)Z % -A#4 DYC/jkPdNv.(fE 7g/,HF~3Q5"p ?(u> ANo @ k J1, {j*Z$ pBW S4h~ > 1;'EQIWu%FJ&z Ku03- =nY$h=N4+Rs)LMOYYk& .sLqu}Iu< 6pv ?[g(b\j __xx;]=1oi=aIE~ Jf$8-4yi&A*!cJ(6)^J  :!8A&uA; w;"P lnjY!#eEyQJ=jtxMh&0Ik{Dt Qgg{pP V _-6KU/KEOnoq @+"n}'Q'Tg4v^PA 7cd"6Fq _oaMg6b='?.~KKs%&I@tQ4^NSK6jp3 ] hC?i@)vq\.~NM+-xXP,-^~V#Z-um+l+_7tTTI(x5Nyk?ic a1Z>D#btqw&)Tb}Ov`@7?i^a^T4 @q3 ewuOL- u -B4zOmP^_G=51W(P[Jo+?HCU- 4HD .w*`sduTh] U j,8zf9A0.T@$F\='4o>=Hic* (RD73  rc P6Bc |k k;q#L a-  OunN     %#a>,nN.{ A.S=6a' t_wVh.2 N _6 P.mRp >bW[ 0 bcpQjX?n wb$^Q/_4*!JA<(2_zyv hk XETUww; clZp:m V *Jhg f=j 7 g5* %SlCG K+%%A Y?j x\ ? f9> o b |B%V;  kV yy#E  MZ:O L  n(" 9D  "9g 4A Zs ? 2*1 o<M \y qBNf} k Q! R:F Bk8]b0^" r u  y$4 l9g$1 P p9 i ] 9qiO1 LV w0. p`Hi2bx8y%~`uP t  t Z K ai=1 p )IAYPuW  4 V JD  +E1`E B^ }Q sC0q a b c:6~nc P=FLrgM$=MJ{iZOFKtlYS@Y7 W f [(q kO s v7Y - , sBoB-?X[Bh!*i+ B~Y@ M1qX7V+"})+6%  C7(}D Cq~w@ustm)^io%A0Ubjx/A#$a- s+kl6_J 6 l lQaMV e-%n]&l;jhiv~x5_RiHAKYR0Ef0 h^e8?wXN;j#k|;4ni[#6-qtIlN`Cc?+Ey{+!fJ@T}:t'6^tm6<:sw44GpoB2z} -ZzlhIQO&kdz~%al_,omYSS[t|1VjwbJ, 4AWckqfZO?' ,Ssz_?$!5PV_jkcVL9( 'Farj4 -=HTd^VSG6! *3202+  '-@ESacg^WO>)   "0AHTWRVRF9%  2K\izxfV>$ *?@A>5-$ %++# BRa:$^In{h~ 3<O;?2p[O\4)T >11U&chPP'X"}| [ q H)Arc F] Ew*& s+\`g /)_~UY L-849E7 &1 (w~\_ + #s3 ^!j >PuY< 2`cO U2xSl  eOH gG&M7gYMP(2&m }s! *g! GdX$ Gt  [MEFC  nZfQ o |s Ab_ hDq:6 'EdI]YD105$5L6#R[*#)SX 8PS߬ / w4, 5 :vR ]  ^sz & cV 3![e!7f5cE b%Y(ԋK f@nݜ$&xa 27vCF)[ v tLU3e gx4#jpA`qkI_P 78?#I1oώ$VF !'BtӚL D+mܰ >` N_ e 0~.nP7* KXL J 6Mcr G aWezHqtE?!56#jSϓԵ }%m߂ 0 X?`t> s>0Mk4 AK!8g  t+4m~zt$nx]sx09+" +jW:z s"!M|~p ?2 ߾n_"f. eY?w Fy%d,> =j=M!m'3,5҇AK S ^vWjb 1 pe'~7J~ 9:0pyqU j$tWnE  " W==e+tSq+.w"H~ؽ֐|t b?۫ښ l  =D65jkx~/g]S 6 5QG Bx `Rb$ mI+ $D2+D.mh !KI@v ntBa"N l psHMS i \ }?h,3A~YKr hq'6&rS 7zQ 6 :yGEv E?$3EV+ gW B& % > ;y5-&^&Ms&:;caFGE5 'W&L:n0?W ~ ps, 7h DnnYpN}lr' #! Bw SiOXD =%iS $UiR|,ur^Fy& sݏY Q q mPj D[X,  *R  "9/KrYz ,k!06k\gU,`S*g"%Zc ݿe}  A  WG_" JSP]F " !kj" O>ND< k.X_2T2./KmlF#D" y0k+  vJ9(PY=4ay5SxK-DTGbFHLE g'w5czy{PT/a5 ha^4uW4/It*JeL3:';DlY.eu`5#`(bZ +uw h]>)GWyl$7i0 b?\gj5)C'JhSsA(ul-A(/R qY0w= C>m~?w.Z7$0?tqr3oBC21fu[o0I!/{oa+CZ%|FaGMm!W9Ik /@Pazhr9c nV2 RQXI&+ROU'?:yAeGsuz|~@+wvCuI TDPG\!]}f<A`!V80\5\E<aC&vMZqo* 6cNz1 ?:1=Lhsp^ (f +xj]6l bDR`aPT4$Qa[tdB Oa,lGU'bub D\\DbS f?^`IL!D\ez;7?Tov$-RoWN)i{bCwS%*tSwXX1nu2yz\|#45 DZ#?4. )SO/ZkF!UA+DP-a1|YRuQlL<$tL{pf1DJ/ ?>"qGd1 _q=NptOtRg,*D(<T5+P4}7<g~8k,r3oS8 (4L nccxT0~(vO}`Ypvu B|WP3`}_J"U-9p_bg+ <co|L\r!&`?,x"+x=-#7Z~6vA] *Rt#5H? dCVf0&,jmf9QfAP,cJ[@V0El2$V;),IaiU% B$>(t4"B$f\eNycI7\qN!g~<`7+! s7?EgZF/ $zB,HP1>(:Q(&<:80$h5($7?JQBOm$O,zRLDV_MMF]0)>@E5kZN%nQ-]hLJMF1- ;O11qNo *aE]R#F[\ck#V^ dNme=`H&/U;$! y9afE >ze()_Nx?Z6*qU[2SE" %*l2A   @9PxOfa#&ft, <y% 06G [Ah0*G63/>7td 'ISeXBP): "Y9# %+ F82!`d^/'E?"Ynd1 ,>[O)Mfi74a[& 0:,- #=B.!DIH1 .6./H9??  ,+#QT _h<>QB6W^N.?21G@,G- &LW7.-9 /E?0 $)& 3%$&",% "#1D;'(,$9?% !#$ -A>MM4E/3.   '0 @B4 +/  '*"(% R]O0*G3), &&F{p8   $977)0I3&95  58'/I*,1 -0() +'"  +4""%)?U<&!     & "!  #92 +LL5   0HI>-"    $ "                            codec2-1.0.1/wav/cross.wav000066400000000000000000000567721412132000500153220ustar00rootroot00000000000000RIFF]WAVEfmt @@fact]data]~~~~~}~|}}}~|~~|}||~}}}~~~~~}~z}{}}~~~~|~}}}}}}{|}||}||}|}}}}}}}~~}}|}||}~~~~}~}~|}|{~~~~|||{{{~}{||~~}~~~}~|}}||{}|~~}{~~~~~|z|{~~~||}|}~~}}}}~}}{}|~z|}}~|{y|{{yz}|}||}}|~|}|}|}}{{|{x{|{~|z{{{{zzx||{||}{~~|~}~{|}}{}~~~~~~}||}~}~}{{}}z{{{{}|zy{|{|zyz|{{z{{|~}|}|||~~}}|~~~}{}~}~}{~}}}}~}||~{}}~~}|~~~~~~|}|}}~}~}{~{|}{|}}||~}~}~~{~|{z|{z{{z|{y{z{|~}}~~~~~}~~~~~~}~}}~}~~~~~}~~~~}~~}~~~~~|~|}~|~~~}~~~}~~}}}|||~}}~~}}{{{}|~~~~~~~~|}|}~~~~}|~}~}}{|}~}~}~}}}|~}|{|~|}{}~~~}~}~}~}~~~|~~}}z}}}|}}~|{~~}}}}}~~{zzy{yzyy{zyyy~~~}~~}}|}}~~}~}}~~~~|~~}||~~~~|}~}}~}}~~~~|}~}~}~~~{}|{~}~~|}}|}}|}|{||}}}~~~~~}~~{|z{x||}}||}{}~~{yy{|{|~~}~~}~}}~~~}}}~~|}~}~~}}|||{xwwvtsqqpponooppqquuwy{z~{unjgb`^[ZXWVUUTTTTUVWY[\^__^]^dowqg`\XWUUWXZ]_elxzoib^[XWTSRQRRTUVXZ\^`chmuwyvvvtgcgoz~tg_]]]^]^_eimmo|{nh`]ZVSOONNNNMNORUVXZ^^\^gtylea_]\[[]^_beint}rmha]ZWTQOOONNOORSUVY[\]__^[^go{vmga__`_]^`filikmnrokjgda]YWUSRPPOOPPQSTWYZ[]^][^kyuicdc`^\]_a_^_cedcb`__][YXVUTQQPOPPQRSTUWXZ[^\[]izsjfffa_]__cbbadgba__^][YXXVTSSRRPOPQRTSUYY\]__\_nqdifj__\\XQLɽeLQNGIVOTLKMXPONLOSMKNLQQPNWWVOK[ķgqrxsplijikhncmrg[_RTOMNNMKLIIIJHJJMMNHGGB67Nw_\ZYn_SA954698689::5212.(:ղM,'=_H-%*1hʹK@5./9FXOKF7/,062.-/--%!"'ӫ;>6%>:7.%#5MY4("*Dn͵@//*)()-61-126)9ж-#o_5'$2L\+'*;ORϭq@:.$#)+-*177031 (^窯V)&ϰJ(%*8:66K).-*.EǸT2*(('&),*-,4+ ./^5#$:Lo3);;-'2DH3''6?JhC98-((,))($/, .)-/8K09D8*280D~I;003ATUNuO;6942/*-')%R/!O+(>GZn<)*IJ]VKYB796+(+.*-0/1'%V2ɮWH\dJAⶴƽȼYKVe]maVA5042(+0((2(OкPfC9NFJW̼WNEMALS]LWL>=<>7060)' /*GOLj>HA8?BSEjɻYPBFGD>B>;;>A:;=8.).(4?;NX>?=C;<<.%;4":Q=?ȺpICN?BTm¼jKFH@7<>9;|bLA?JMM_YiG?UC=O\ZETPHM~jOkwqgeh`mqTW~fSmV[z[]\jo~VQq^dnLVhwnk~phcgZ]yn]n~]i\cW|g_`wj`b~[^UZ~m]UkbZng~TYh]r_}oxu~[XW\^UTNTJB?GOHBDMG=9>958<721526;60047:72/-,+--3?-*6k۴oH98EįkPMOVPD9324:<;82,)+(7I,%.MθvMH=57OaIBDF?:5019?@=3,)()ǢI+*7IU[Ʊa\QGEMjϿfE=:984/.3;>>5.+!&HxBEXYJKG^˲ZNQbh\OO\QA;9862116:==;98.,3?ͽe[of^_ptna\XY[ZWQNLLMONNMKKLMNNMMNORTWXZ\^`ekot|}ywtqqponnmlklkjihiihhgfhhkmntyyuurpononoppqrrrstqorpooonnnnmmonnoostvwy{{zz|{||~}|}|{{{|||yyy{yzuuywyst}y{vrtw{|wxuwz{}zz|~~~||{|z{{z{xzyywuuxstrttvvxxwvyywvuyvtvvtrrrourrsruuvwvwwwvxwtutsvtvuvtvuutstttsrqsqoopqpsqvtrtttuxxwtvttxuuvuvxxwwvwy{z{zyz|}{xxz|~~}}|zyvyxy{{{zz{z{{}z{|{zyyzzzwyzzxxwxzyyyxuywvxvxxx{vxwtvyxx|}~|}~|~|xrnjhefedfghkmosv}}~}zyxuvsuspoooonnmllkkkkjlkllkllmllmmmnnnnmnnnoooqsppqrqqrttuvtxwxyxyzywz|zzyx||z{{~}|}}~}~}}f\jzrvwynpn}~w|~u{{wzz|golltvznusysysqxvownzW[ZLKZVLrskk\b}ii^eriq]VOοvjXt}M_aXapWgxNDOa}k^hfaoss{dieSfej[[TR^_b\NOHKNJ?=3.Aźp^EDWἲrD9:BNOSLO]PD;;964//0.+()(/ӭyJA7A?HmE?;6?;;J?B=5:=RQKOˮt?66?k|fhWD;5497/.,*,+'ά<@YOJB>5//332.%(MĽWJkǼaIFKeo}ZMMMLF?<;<>CEDCCGLT\[VRT[ejc_cp|jc_]ZXVWY]`dghlnnnga]\\[ZYXXY[\\[[Z[[\\]^_ejpz{xxtvvvwzz{}zxzwssppooqorvy}|zxvtwwuwvxvtvtvsssrnnnlmjiijhiijihiijkkmnmnqstruuwxxzxxxxyyzxz|~~~~}|{~~}~~~}}|}||{yzyyy}{{~|}}}}}|~~~}|~~|~}||}~~|~~}}}~{{||{}{||{}|zxxxxwwwwyyyz{z{||{||{{}}|}}}|~}z~zwqstw{~zbO\kbdnm[ONP]y`X]t~VLQljSQXjrQP]m__u[PUkq^hb[xlSOxhX[xg[_d[ejcevjfmw{n^ONTjt|xsae_kj]j_RUXjn[IL_TGBTXPW]OMY}`YO^qKMpt`S_[JUied]_qae`f_hl]kyU`UM^[RiRZyZ\y[WevX[^iw}eX\l|\Rmg[ZajhWWsWaZ[eWj|ri]\ngU\ZWjTK^i\ho^mxd]\gnefdiZWkwb^htnxlvgmeeomifhl{}oxm[Uaszf\\j{vWOWft[OQcwjikmmsn^fih~wd_[VRRY[XUWVROMLLMIEDFLPRS[`N6+-KNQ׾RBBPk`LEFHFDC@<9;BE<3//2459>6!KͿ<5VA6GkSO\oeQNbL<648@LH90../13)#LN>/:ǫ`ux>25\[JNOKLXla?44;EI?7/,,./&/1@H91=Ь97;>@?/.5JjM=747?G;/+),15*9$+̻ͽI307BO?99<@<3-.47EF=!}"&2¯L%(D·UECDLQH<9:;;842557=?A?<94689=<:+ 6'#7<'%4ڭXA99K͸`>89ADE?;8415;=;;4&7#5ʮM.*;ձclٻN65Dиa>9=HNI=:7538:767;2.M%3W7-7͸aM?|I34M[@;>31L'$@tZ;5FmuJKǰ95FϹOCEEA?97:99:75759:5$-0+SZIC^½^KXj88MλN@@?>=:887876657795%"1@;iiToϻNALuPGB@=;8689<:3047=>9'&5tm꾼|yXIWjoRGDA?;958;<=8555:EE;)&+>¿qblxnmi_c]PKC><:;<<<<==;69>KZL7./8ažſ_[]^`_QOMHMKGE?>>=>>?@>BBDGOXujZUIGCMg¾¾l~_eXKTabLK@SNE_KJJHBLMMbDLNXMThklVXviolpgpt`gJZ`J^PlYSY\U\ePLF:?fX_}^VOKCKaQNYia~vYj[WV}fp[OxSoZTOzeK[gsaM|_aNPkU[[cb~^Yt]o`]~eubqefNZUKNTOQTSgd`N[}|nZLXZfdU]r_Ynz_]X[XZtZD<>FHS^c_S`x|mYiPLSLSi[ZYK??AKMORZcpefURFCDHLNP\r\h^`dkMMzvXE?MR>;>FOReXXOOSPU[nyaNB>BJNOjhUq`YYlgtvmjWGHYmlkfiu}m`~kli{oakj}tnlabkrmsxzpitsjjh||YOOe`diki~fptxyzrrc_]`gcbb`lvomjyoko{{s{}swz}{|v|z|x~w{ztqzz|}y~}ywzx}{{|~}~|}~|z{{||yz|{z{yyz{{}}~~}~}~}~~||}}~}}}}~|}~~~~}~~~}~~~}|~|}|~}~~}{~}~~~wzyxzjZ[nLPY^cmjjpsjonoplummmmhavpZ`gns~sjTB˷޿`cDYUb{dpibX[|c_MyP`T^FL[g\HKIR\QcrJPatjymWbj[I\d]f\o_YoNV|q^PhVMbwzSRcXJFHRhPP_SNgWOUOFFhqgPLolfviud]_X_\ZGHIHLJPHOJMD=AF[UT[YD25PömǿYRTLA>>?FD>>@>=;>ݮuu`jfMPh^SY\DBGE?><95226>G>689;8:JL0=>:]uJgɿ|lk[Up|QC@A???>;625BQD9858:7@H,ğ?D祛[?imhtKJɼu__NA<<>CE?969AIC:;9895<4DTmHAG=BӵFXpZc¸dXb^eemK;8B?97<8336:)]FⲪ>GZLZPεQJWcOWjV=7Ti=VMLZI@=:69<6312.4D7Y̾7?Zγp;9ZxMFոV@Jh`L\eI<:>KMIA???:99879772!6;ݬD3A{´U7;YZxźQDHYd]PHA>>BJMJC?=;;;9:9863-&16봹J17Yſ?:C¿~aLVκI@FVejoZI?=?GMPJEA>:9:;<;94/&GB+8į?.2YN>>]ǻ_I?M˸J?BNZ^jQC==DMSLC?<;;:;<9972- +2*?E/1O[bOELR?=:6585-8,*F6/;ϮC=OPMsrwÿjB>Fc_B:;CLMF>=?CEC=98:?A<830+ &H/,=¦U;6N°>9?`l]lm]IEHRkTD=;>CHHEB?>===>>=;9:98.#%8>-/Qc==J̲C46Eݿ^DNؼO<BED@?ABCA?==;<>=>><8(!)F?.-WXEDp<35IǿZB:>XO:339DMOI?<:;>ADA><9::9.%'7>-6̨nV~wQXzͻE76=UR?;=L_>535??===<1'$,U9/El^bwUOUkɼJ;8;KzƾqD;8=R_A845:?INKGA><989ACGHIF?:669=AA8+'-JoMظZ>;>Qо\NLNZWLOŷ_@88@TpnWKEA?=:9;=BHJG?;868<>>LѺLE>CILKGGKNI@:58;?EFFA=:;=>>>?<2.6[hTVainfYY\o`URaf\VQMIIJLLJGEDEEDB@?@AAACEGGILNKD>EUV]Ͽx^VNJGFGHEDEHKOms[UKD?<;<;:::<>>@BGLOPTXZUJK\ba¼i_ZUPMJIFEEGJMNUfdUMHD?=<;;;;;<>?ABFIKNNNPLFO[ZlʾdYWTOMIHGDFHJMOMX\TNHC><<=<<;<>@ACEFKNORUQMJQ\]oʿmYUOLLKIGFEHJLTX^`UMGC@>==<==>?ACFIKOUX]_ad[QZbV[ÿ^YRJIHFEEDEIKNU\ocUMHB?><<;<<=>@CGKNT\ak|jakcZ_wž}^UMIFECCCBDHJMT]q|bTMHC?><<<<<=?AEILRYarrjuiZOJFDBAAACFHLR[m}dWOJEA?==<<=>?CGKO[g}z¾lZQLIECCBDFHLPYc|uh^VNIFDBBBCCEHLPW]j~i\UOMKKJKLMPTZ_fo{wmd^YVRONMMMMNORUZ^fnpib_][YYZZ[\^_aeghghiigfc`^][YYWVUUVVWXZ\^_dims}wplhecbb``a`_aaaa`_^^]]]\[ZZYZYYXYY[\]^`cfjmsx|unkjhfeddcdcbbaa`___^^^\\\[[[Z[[\\\^_`bdgkpu{vomigfddbba`a``__^^]]\[ZZYYWXWWWXXYZ\\_`cgjnw{tmhc_^\\\[[[\[\\[\\ZZZYXUVTUTTSTSN?Wbjl}]TUZ\VTOM\Ľ`UY^fmWLLMOUbu~`OGA@@?ACDDEB>=821/)!5Ɲ>2*-EI1&(-DǴ;-,/CoZ<0*,1:>=83:<:8-$@.4*#(,WU4+&'&*cV6*.55?nJ78?J?>93:<;;;59<85)#頎4"*%&.R?*&'&.5ΤM+ (1o4)+5MI6./6B`K=1)$! 3/ (,'2U1%%)+3F3#*:Ĥ3&$+@J6*).Nǥ:&(1NR6+/8APG7...8?:72&G.#/2Gn& *?߻4&&3KJǮ>/4;SmOO5.28@F@8895756994#9"/:>֬+ (?ѿ9)'3]XQ۳C55<@SX<4148;=?C?<87795.#ėj("&G^]l|}wXDCNXH/-8EJ513>GǽTFJTh~g^ptN@LQF@BGMn\D=?DHLJGGD?@BMlF97?MWF1%5rIJE鳤TJCLc̺]MPQLKSkoUFHɽ[JEBHeqKC??ADLSPF>:>JU]^VMI@?HNVD0#([{E?ٱNBD[zWKJJX`nlXKUɽ_ONGIZeLHFEDDFLIDBBFKJIMVd[KIJJTVL=+*;˭Kd^JO]ZSUYVRUOaÿpuXONMbtXOFGE>>BDILDGGIKNLYjbZVVV[XkmU99Iώʾ}imZQOXajZ_]]ZTOSMIFCACCEGEKKJMPNW\Xjp_smgxavr\zyvs_}kdbaU^^^eLZWXGMLXN\JR_MWM[WcM_lX\h|f_wfing^wy{_^ZcqrafjmkX|]dnfr|{tcbklikT~yuukY~kvsmN]_^vkt^joXg[T`w}_f]i[^kj_[tov]c^Yb^]d}}|SXdv~^^^_xvhgfbzkmq{g[rzgbczji]n]^hlezsyuf~cY\fn]lv[klw`R][U^\frmgwjof[Z_hxml^ZUV_^bnzvooqxttvo~xxvkyuingtl~tihlmwro^x^h~kdb_njemn_frrhbm]Zetze{ptjpro^lgxwljjcZr^_Zcyr~fnc^ZVVby[LKJQ]qquq{m]ad_oke_l]e[Xt}pnfljx|r\o^`fhxaaoig]_wz^}b[VZvl{{lj]k_ZTRNR`_b[`^[jfdUOZTIHQTbhpkiZ^tpmj\Z[y_oz}fttp{n_rbNILRbt~ljb[Vefnf^Z^hnmn{_hotmdzzsnp]^^^WYd_bjeXemldibaKLGDKm]FHILR][Xe|i{rhdtlb}c]V\ai|hfmrn|hoqWYli}ko{kbVPKIONLIGKOTXondXQMMMXgbilxTMNKMiaZV^vzofg[[wnmu~nltz{jemnpdawiUX\Xcwnhqplqcoba]c`zlyb_liVYY_jgaZ\aqmmuvnold|z~uqkmxvnhrgZWT]ibm`ONUZcnn_cz{m{uqtp|xoqikqimk~vlWSUOLOUUa\[^XOUfgUSQVY[_b]XV_xk]fignxiacigz|m^fgltmafgjo|vfjqh]bes~ohfmw~{nwxjx{jorl`\`c[RUOKLOZagv~rusuvwqcZXZZ]]XSW`ngozrh[[dmmrwdkovkh\]WOMTgpWPNP[jqx^XQMLNOU`rvvohfotxsg_Z\Z^_\exmxm[QRYanxim~n`Y\|d\YaowigmzxoogdRTSY[ak}eWV`qm_]Y_ziVT]]NMM^\O\yi^]jsdukZY_gWoxYMNko_\[^_lqlU^_]\jhnXm\YY`ZYMPnac]]tnWYe_k{utaXy}jmhqzmxu}po|oxlkYhkgn`q_oepi]`]oy\vhkihig|ancgonhtncyqpoi_m^Zmkz_eY~rjhdvnnnxhlo~~qpp|yltimvx}fvq|wpymrzz{k}nyhkrkxjm}qus~~moq~unu~~x}qw|trx}{tws}{{wzx|xtuss}pqovuyyzvz{~~wzuxwnvz|~z}zvq}|}~}}}~|}}~}}|}~}~}zzz|}}{z|}~~}ywz|~~|yzz{|}~{}z{}~}zz}{~}|}~}||{}~~}~~z{y{||}~~~}{~||{}z|zz{z{{yz{zz}|}~}~~~~}}}}~~}}~~~~}|}}y{~}}}}}}}|{~}~~~}|~~~~}~~~~~~}~}}}}~}~~|~|~}~~~~|~|}zyzy|{y{yxxzyvwwvxywwxvwxxwxyzyzzx||{z{}{{}|}{{{{yy{|y}xx~{{~~~~~~}~~{~|~}{|}}~~{{~{}}~~~~}|~~~~}}|}{|y||}}~|zz~|}}~~~}zz{|}}|z}}}}}|~~||}}~~~~~}~}}}~|~~||||||}~|}|{z{y{z|}}~zyyz{|||zwz{yzyxxw|}~|{x{|~|~{~~~~~|{{~~~|}~}}}{{|~~~}}}~|~~|{~{{{x}~{{{{~~||~|{x}|}~~~}~~}}|}~~}{xy}yuxz{~}}zz{yy{|{}~{z{x}}{||{~~~}~~|~}~{|}~~~}}~}||~~|~}}}~~~}~}~~~~~~~}~}~~~~}}}}~}}}~|~~}~~||~|z{~~}}{{~}}~~~}}}}~~~|~{x{z|~}|{~~}}}|~~}~~||~~}~}|~}}~||}~|~|y|~~~~~}~~}}||~~}|}}~{}||zw}}}~~}~~}}}~~}~~}}}~~}~~~~~~~}~~|{{yz{{zz{}zz{z|~~}~~}}~}~|~}~}|{~{~~~}}|}}~~}~~|~~~~~}}~|}}}}~~~{}|~}}~~}}~|~~}~}}}~|}|}~{~|}}{{|}{|{|}yz{{|xy{{{}{}~}|~~}|}~~~~~~~}~}~~~}|{}}|}}~~}}~~~~~~~~}}}{}}{{zzz{z|z}z{|{|{{|}{{{|}}}~}}}}|||||}~~~~~~~~~~~~~~~~{|}~~~~}~~||~}}|||~~}}~~~~~||||}~~~|~}~~~}}}~}~~~~~}}}}}}z~}~}~}}}|}{~~}~~}}~~~|}~}~~~}}}|~|}~~|}~}|}}}}{{|}~|||~~~~~}}}||{~}}~}~~~|~~~~~~|~~}~~~~~{~|}~~~~|~~~~}~~}}}~~~~zyyyyzzz{{||}~~~~~}}{zzz{|~~|{z{|~}{yyyz{}~~zxxy{~}}|}}~~}{ywwvuvvvwxyz|}}}|{ywuuutttttuvxxz{|}}}{{zyxwuuuvvvvvwxxyyzzzzz{|}}~}~~}}||{||zzyyz|||||||~}}{zzz||}{ywusrrsttxy{|{{zxwwvwxxyxzz||~~~~~~}|{ywxxxxxxxyyz|}}}}|{zyxy{|}}~~}}|}}}~~~~}}}}|||}~{{{||}~~~zvuvz}{{|||}~}{ywvvvwy}|||~~~}~~~~~~~}{zy{||zyy{}}zyyyz{|}}}}|{xwvuuuuvvwxyz{{ywusrsrrqqqrtvy{|~~}||||{{yxxwwvuutuvxz{|}}}}}||{|}~~~~~~~~|{zywvutuwy{}~~}}||{yyyxxyzz{||{|{zyyxvuuvwxy{||}}~~~~~~|}|{|{|}~}{yyyyyxwusqooqswy|~|xwvvvvtsssuwyzzyzyywvtsstvwxyzyyxwusrrrtttsrqpopqstuuuwxz{}}~~~|zyxyzz{}}~~||zzyyyxyzz{{zzyzzz{{{{|}~~~}|{zywusstvyz{zxwwwxyz{{{{zzz|||}{zyyyz{|}~~}}}~}|{{{||||||}~~}}~~~~~~}|}||{{zyyy{{||}~~}{{zyxyy{}}{||}}~~~}}}}}~~~||||||}|{{z{zz|~}}||{}}~}}||{z{{{{{{{{zzyyyyzz|}}}~~~}||{|~~}}|{|~~~~codec2-1.0.1/wav/david4.wav000066400000000000000000016514541412132000500153430ustar00rootroot00000000000000RIFF$SWAVEfmt @>dataSe. }VG  X(@KٝE"^o Df]"q*N@zwM C#'y O " A /%}U )]/H(/x r7q e#Wc4)}8~!$ 1W  l\r 3&8&-w #d-A S @"G2$/ i$rP R Xa`"15 #; Xvj $Rɚ VwwQ!Z٬b j  _6x/4L+HbKb% ]Ev o ;*lO "  oHhj|i64< ͋ UJI>iFl#ox8._]}3S3aۿR)! vޯ tK?xA Tl Ws B4Q },)Ԝ] w u# VD%;d+Ts-g|DT_1VL ( ^rsx9'<֮I}  -9V(ry\%x0?NrQ-Clw'_ ޳A_v/ VC'Uי%T n < &gv9+ oT, dl])BiX\# ^"a"U3q  g<qdq\/!4{d9ܿ8.}&V bTIm) p   hE_X'(K R* t`7,n s%{g 0 d /%x^ S b$-$BT*Uءt -l] uK9, 0/~Q%7D )vU2,![xP9 qv}"z^  0# h,zXj'0+b )eh^ ${ 4 oOs Z UDN+("Ah'X l>fMJ#^ !ݶ̝9! Fי " 5ZVj;e\:L٠]'G)yɄvPs1RV Ӗ‰+H `H$+.~KG$9##\ *fx-y֞'%ܔZ M7,D0"\@dw1 @ A &+kmU8J4N?q2TC+T%= X- H@xu Rи&n%10`m   YZ  sM 02G/5< :.0$Y5VN`e.+$E''qXS bx}C&JV)&%g5'= e$.rF% +^*eۤ!$V p)2[lSE I: E33/'L=  I3b"1"k C>"* j6 )b C?j xb y [Vh9-1ee^H3C2'TL**/  @q1x x)݃7PA|;  gD9[J!2c t)ЫԀ'0v5 l[#2!bp'rV]L. -uC^7r ML i< 4 *mX  `,A`&'QSrm 0QπV @$ Y  qYt T r 3* (Y0 4)Db4]:oO x:4#Υ#.@k  'ih5r0h_f95\f]z{4iڌel)]Bݾc  } 0=1 !KT5Qc$9g wp9`. %1 ] } ( uJ BsM ;5]U&~&*r 1 ~kE c5ߗf [;|$m-έB$Jm`O*,`$ u!2#E *5 MT "zW޹IU86; :G~c Woh-9Ru U]# %)2 AkA rdb/ $tۛF!E<   i/"[ r7|P.N; 9OQ`$f `I yu{;Ǔ) i%0 zzPfD?pyD7t-]G_ۀ&("t`  A5]ܑ6 ZD 6Xi 1'8 G? d=P")v$==F z!?Eގ>'ܨ<   +Afʹݍ3`W g hm-؃ 0 N&$ x7ڕ4!߾@e ,شz 4qz-[")r_ vB RC$AP^; 38"2 <.'?3:/x >x0k  8[ %J4da)"/ޣn yx Bdl]"Q3 `T My L) )Ϝ~=44S ήؔ"jh x0g"zGW#,0 E _Zv F)Leɷ|  @ OFv"NmSOL{ٞO!h#mR56(|{  kyX&!Y/rĀΤ u >83o 4 's! 6=&6/!z w-0Hu  \#5@}}2 "wQq c n?v"ݞ+!m5 A +`ݨ W f [O_* Px|Tu(2)BL G(6W?' Zpߡ4,fݭ{`$eU ے- P)   Ie2X ] 3(JsSyWU Wg%Z6Bdʵ, 9 gq "0 ]- .'G &/ Z}&*[M D 5>) 3 &#^R= G; %[^m*w g:  `  !|k hw!8)C@ Y2(' ڻ.#& r= c,D@(*c>$C# ؑۘQc0#'x;~d1zG1,h,~<kBuWMrW B3 VE}L 6o{! pO!K $K3 L>\} y~4jZw h %` s' [/&U 3v%s7 g}>@` l>wZ$^C@ylq E/>Z9,+ W <*/x؜r /=@ Tc Zj:#-F#Z Y"2*1 e/VW/]3(K'3 (aPu Jg,%r8: ?ٸp| ?lF zQ +#q% v G%b'#0 )'I#ż$[ea 3#G uu 8 T-*/m*ϖ  Uh_ DB,ݹY1 ?mX.q{n3 N!8/T{ p1u qA[ X5R84N2 i_7HѶ -ɽ}/ B( qE_Ry{% D_` |ޜ,"8(3jR'SyDhTFNk g7L 2d2i=" lLGK2} iB ;HDh`" QE ڟω(~բ|%m,)_af١2]'y#4`η#71G{ P4C$B1L 5 ~1 KވB47U,"uB-0 4o.  \mkG0.Rx s?.  i/e R"0 ~ ZZdyx c  m#X.w٬7к  Q.g2#96Eۙ s} 3wy55%a=Ú 0 ]{ z  ,]HX.P7e X %L^{ /d'=w7݊a ,,Odo-#;2 q,5"CF2di?c0k_: *h :5:  snfk z L  $u M  @^ N; "9/ 8$r&'x*xb^&))4c.7"P'wɧdUtf$Yu#`*2)vc*;XZ֗>%Н  ^ `!"Y9< rY 7'@. $E  JAu& ^v3+('"h  m;T  8Yt X|##G &z1 TZWl%Im):B(  qYOF=@N ;Ok&!}=_ I-xtu0V= 2Yռcs}  LVd-B%  _؝-^%HgU) "`iQ1"OeEq\\I- CU t >O\)qVTm1BH.Ml!@IQѣ+"'{D0d)u"d}2-P0/1߻?KSV^ 8@}O d$0=-=/Cqx 4" T Q!ׯӖn  'isc6zZ C" A]T_uz_;Tn-^ {kv1)r) %] S-Igao<2 3e4  Y*_e o]D0A(RLwk6$" F 8g٧ӎ T[ 0DCe ]k7c f~kp h5 zv _-'֩ m-L"%l},t+:`,lM !:YʿkHGc9 cF oi|L׃*(<SMG#r$/O) @>\,$ 7] oy n t8} R6Y ~)%&Z}P$ 1CM8)wϭ) Zfٟ' /NЈ! E]~ xOW27"L ~ N$52M!ߢd !83q$ݿ *=tB'P/k8 Pz;%7 I ejJ At$Q /<  9O=+? ;%2Xߚ<s-Y]sq K j V7^'r$ʵ @ LXh@)X& . Q  aK]I ,cT r. @.@*s B@ݥ P vtJ? Q 2Hߘߒx .f 0 :kg '7^;(*J(\]n- % :"fO), 'f\tk- =2c5@u@w| 3  SAi`o6ng5E-"k8_$q I  Qg/}L5( U0 Z k "'Ty5Y&6 !,%? $01 RI*   3z}b@M"+ U<SZd]d *T +~r ?3th w 0'l <kC7N3um VP1# +*R ߲,^Uq8%ݥ  H t | I2b$߯9 p9 !z.!x4 k,/@ %e%A'[   q%:l, m4 /m}#V!Um * ,YP/PXZ 7S"f  21P  w޾p| ]9؈(L a Q YsGILސ& H/7cw 2 Jg"!@ݒV xV cXi5 c o?ԯ-T8\H7v %i]Lv!LոB O;O o (!Wp/I" o[$$q֋%K~V'f%75()3` YPL^ 5 7z3? 9 ,`p F )+ z> h A= uT'} LR{~ =S'5fM 3A 9ngi /N{Rg"+\N7 $m n4dalR9=V%WWM3 [J L>_U )  8x,ބN Xx' A N YP|4 ^wL =!A? z2 ,H c-0 Ѷ 2z]r)t6RF*0B8>1 )u r  AQWA  jO4R ldW !b$d? {@&"٧ X:,{Bޱ=)$F XV %s(K 0 z:>lM%% F FM4gu q@. 4 OҨ1i  l~C IA v,Gv& oI ep7jڎ "51/<+'A1-& 7= Qd |jD'( gA| 5m Fsq 2Z:Uړ.r b&y*Y\%^w ]!CڎZ '} *7 $ ]++l0P6F* EW "!\ Oي`rV $./ !Q Y6S!2h\V$m-b0IO4-]C "{p@m? l=Y8y&~ c/R7U  =pG  Qs+T$ sٮ l-(ýc2d2$ X? Y:vA ^6r ]  C& WIݠ @*қR+kJ6 f67*aqc2, =5(;U#F 8# FܔےmRR86Pz+ OU A  Ktd &?  }!.&U/UY2 'G yAhQe[Qc WB\ AN Uc'brs { P2+_',?=s2[aF 6n #h1 7]-G 9m L ~bO 5VkL );"" !S ! IH\Z \ p& `BbHh8+~Kva"B9H #l3 ]Yf e.$j 09 ?h} 92 $B!Ζ4 JB( U+!Lό 4 MK8  t$|Zc*%W!a, | jE&#"M&q;lue:ָYK !Wߋ,TM)4&K/ DA } A& 2g6>l%7 ,VҢY0"x> I7% 8 cVx  f ?,M+Re2#۫N_ 0ڈ* C 2^V *# $U "7@O7d 6 \CZ*$p$n t$p. .ڎ۳d(o"(8_ 9 AR)jE!C6R;  ?%O,$z'a yk e1 b,2?&n-~h  Z!L0WHZ-yrX >)5, 8+T6Ǔ+I4 O_Z} +m4'k([2!IL۸3;m0QaN!p%9{&}XXQB*ys b M yUU?\!"3q!m} v f \, ":LUݗJ y8!'ޟ-< Kmh F 7ߴ xW7љ nܰMԺpj@R cX $)[˃"[{PpqO^Χ Z&9,%&x  zbb_.m-m "A 9'&JoO;L%$|6 ?> - +-!d7ZBg&Eu& @03E[1>7-t+ |+2؛ǘW ! xJx(dr qE*H2cy_J [A R9)6I ?! % (, xy/ȫX2# &6^'X'+r&Zf{Ka( w r2:~da,5h &  +qٔ;1-(+҆_%2u՛a!57K "DSDjh" 5> @je 6v4#BCDm~Q29&^_\T  , ?8݉5'>)> R N/(js LxP! nB kۆ( 9F)εC: K*:  #ZKvJ9 F) -g{(ޒ#jAw Sc (F*C *nYiDaVn Q vڋ,5= ~aY C 3 nN!  !3, 1f(yWF"_ / c . G&<=c&.q RuTh!jj%+ z[2=A[3F q'Ogg(mqN&]X{;[3!&X֏2 ^'D}jnlcO#I@3z O uZ?3W w)<՝#4^$/qٓZ= Yc'Wn5ZCCaI)}b F |{%@3%O8 tqqI4ڧ(7T$LY1//8d"f  ,B߉4.x^|"? Se& 1(OpR *!*/VQ*%Q  2vV"abcW+u#cfݬ/-9- X.,?f C#)׺ya*+ xn2J@I\F*# 7)h {N+F{ 9 T&Q ,&,yx+Kwhj"H$= k9z>! 4/YIۙ RAh. dJ6 ԟ5h r$7V fzSz) g(J~ND O1DFp` 6 gdA 1" #- .tmfgn2k". n%mw!'suhWd%,~ P0q3w'SO?ݢXcmKk*7DRK p()773VbQ/OZ^T4l6!B" 8Mc' \*"n$LyT WP6ס+<%ҕ+,  bxX~b&~@}7Nߓ/y uc1 yb !(:S#sW3j 40{LPw\cHEp';ɡަ G&F-,WH- 8` )f+c,L6} O ;'Rիp)j[x8$  D $-.q*I$l]b +-ٔ ]0< i`S  t =5 m JFe*Йs x i`jy/ q J2+/wɣ0 u$ؓW T\51408:xQ.] gZ E6~-ؽϣJ+gYax!xXߐشV#YPN[J 'C p}; /  # c3=%1$ -I If. G h>~ 1 dbF " M u ix{!~;{!#7#SH|nn"  NP%}"\W 7= a_.#p 4;ҿބt& .  8 t}6 rV: ^uqZMC  V}% @KVH<5\" . 2$5 Qk 93) BT4 {f] z Es+J0;O0Zs_~V:  s Qqn+=[]"  aew(} X; `vU x{a,"N+ C}:MIk|) b;dE qro=M&.$hs@o `&3 Lڠ1qM}/.ud,Kv vDV %x &2\ v l  %7 @"dcRnG$JAb  RU 0"-S;&p /J~ RpY(׊=AUI~1/؅Ĝ'S*&_ H}UI(* omo k^ݦKDJYE\ V*:\  /;,m|u 6Zc : -+c'*@|> : ,ځ5#" g IjZnC<-\)U , (Hv9<s{$O?3L 7|8xgF q*k  @1rK#U t܅"B8J8`#e _y4!Vb}b0B2} %3j  hMoRV4Sn bts 9/ߣ\P^@qN "&P"D@: | Z- 1C&+K<I-#j$ LCS+F֯v B M d$]&@U* m 2@~ j  7u.4q0A# n0cX c^_x` qE! ,Dv "W_I $B ,Q4zH] { 6l E*/w, k;(z/"1c9F* W>l.BvUּgsJ] t0 Ykމ7$s >  Chk O S^nO,e^r ωt#iD7! &>_@ +_bb (a{!~HyZ"=t{Y TW4Id ˚$6 B *u(P) a]t+ '?܅kXf   EU WQ | jxo#-(fȒ٘"4wA=R38l#`"RSoAan6 xD* h!S- -cZ{^ 4D6E,z`Z[ n R6E#) "%GUqXw6 x4'! |K!  [nH @zQ' 7U}* 8*]П- Eb"W>'''YNF jA, ч  ayVK`(u8/u9a<U\yL(:f{2 4[#%X% 84&o*)$H"LB݈8fW ++.~'0#Lcd B0#  i: -  b1G?pu #\ DHoЍ %:Lc~k-Ғ_LHk i=Vq+Z49}tmN8$ d1ojP, b Ql& ^(갷A xwZ+ ';=ܸ lq3i BB wj8 j D|Յ y$2bpsՊ='; X,L; pfP:r r C  &oiKSx[aگ 5 sW&@a,(tf :Y6 . e ]16>h.d;+^M `  % a "f] " NP-VY% IqYP 3v kW!Ri٨ VSf mnu3X r1IA?ܩ]h_"  2~ dl&(2&-: N ;asC)dP4 +kX Z" .BdV4 4G**r̳*)  ,Tx#D u0s>']",40BE&> ($iT6<#'˼T&Ngܣ%X_r% N38$&+spG2"/) ZRXI[%$/5)Nv a u 1.0[Mq ) JZ} K6"-zݜE c.Ў`C@4E `$(Z"k9K  :a] $g!4kl 7ӱމ  {P l r#Y# D>!&(2 ' qe']& J'=Xv4 4 #c 7/K>*V1V&>\_  ( ] %\Ys c||*8ޫr8rY*&p8Jg\Tx?aNu=g3+і&Bp (u }M{2G[)Mf\BΩG)( h8[7;&7/1pX2!;%҂!4KCGE kO\({djz _K wdc z:<J<@'ut%O5f&&m/}+ \R - ?z_&< ءۉ {' A=zg X&T eNIG!bGxgv6c m b~@+dlw!\ߙ>&*7-=j5&$ ^(9"]( )A X_@&fr rJ`:^ p%gr0I1!b F@;{)%w1W{{%s} | A D( )'۞  0>ܻ3*fT/t8Pq J*s`"C2*oM" Ҍ\I7HOz3*bLfp[=C.4 A I:aA2!5{s: #T%^.d(A5E- Rֈ s  bgƃ' (ؾ=:(2R &!+%7X[\2[0/.MbTK6 R r<'{8   ozkbxgxC^H_p%w D [> KYnkIPzq2[{` L8L3%h"ܙ/ &8qNx+ O%-#  hS ]b ޴c[ (#{7X9+xsh*3WKKmT~!I >K#ZW=H]J^_ 81`H% e ߅ QR E `1s pX\ ^m a= O 3#%< ySM e%{ u5   c 4s41N ox,"|.a'f~7Ћ k:g4!DB5 y<q)M 6X0 )2ߛ} j a7~q [kdrV12mL .! XTkh%^n N e{N5߭"yCN  ~ 0JB;l*\P"P\l _<bHX#p *z[L!z>* !  %@'K0+*z!Ah >ٯ6=(! jy'P0ED#5 ٌ8 M M TGt[ RBlzS3 ^ [jOEJ  R2l bVL Ec7= &3kQVC 6f` LA0&G 1_em>` l5{)A=UXX}Y UV u,XGC7 e+%^ZvUNo g8 SB7ibH;G[QT ap';YN|3͖'6#^y<]~}O@R(7ވǡ}0nT7%1g] &/4 PdLh#fV-hgR,%S G $R & 6-$+-}OSjǞ'mwUw3=v Jx lCi,l1Ql jc$, =V+Fۺ+ | b, Vw sW 2E ;b!r4!K2,+37"M#D : bJ7i $6g{3ZxC% 5DfN +zi-A 0 VșM-0s(V9R8@*] 3lx i7Vz'0S ,9By r>vtD+_f&c3ݴ- BV 9 @& (a jp =4C;.|,i޼5#" ! 8b(uҀp #&@BvI\Ot(?~G 'N ' `<Y vzz,_8e\|M M j ^'Yi zlN+,1`CMJ Z "1 p> -4ܫ#0 g)#YM`up B&t:PU,Z.=#Wu  o'QߩFLti3T)"((%4hKtSO v)5+[ݧ T-cy> ,g 7>(p x /)r$vf @{U</#~w#oV) ,I-Gb8\L.5" P $hKD 1igCOUc 9v\bPm9%'"]=';N*oF) 2/p^)G1 > X"# )n##?q Nf7+:Ԟv1\c2$cڂM0  Z  #.+ ` Fw }v 7s [DsAG(=WzL1Z Eju !״=. &y>*'#rl T%5*3!A c}M yLb M)HoS:MZv6' O x(I_aPJ 2 ("#], \T3++U3,)le [ g w)i_ L6 7 Jv*VSOQx Q?R,HLj@&]z@#u#;{@]Vs'&(Y3;$ US4FUD"Q eb qʍ. ! D (.pi  ' _:o 0ptsA+3"K |EM mY1 / s$}]e_D}B#Z\q'B+2$_ Hey<T!B+#7Z=> ?&&%M[! v k}.ݦ6)[2O Eɸ5Rϲc-a LnP#| Oa+ Iҹ:Z *o% >V ;gi Y'9lFG  ,Ԝ~ !0-S * W[Tos ̛ mF> ]P< /$חݍ(8# @S:V"3 C'0%e DtQ< xD IS x g ; VߠSr }:$:!0|m4|7~;# 4$W#JXcEZ( "3aM=-tkX_' \3'= G#2  k _<&.< P>)]A% l#Y\^ 524'V s<4!""6v@*!855LtU ? >K*p|Lx3_ Z2(coPo| #9̎"se_. g5J$ !"dj*_508y aI@k 3 V QXz$vZ{ C>6leaX!J; , /./T Z9 7$&"D; ,A+${Xڢ3@ h[v b<c& ޵اY*$V T*]S,d#-/%C{(` >9F{ $@?$=8m1 :@sU u! T*; 73P[p%!!$HӮJ~. U 0_)ܩ14R*:ǂ p`>8GQCjlh P+:JB0y o1*_.#u& 5@cU= e$ c2e+q\ ^Z nz+E[Z&tZnnVz4-1$. qM:2G՞f+\'J)Gh0F Z Y{/< UQ]nՊ>< st#\j5).J mBTml(9?Q  p"%j  R( q"H]6j, lc ~X t& %S T]ٻo-dc2y58) # rW  ;nN + ] W(rden"^}8e)0n^$eEF &3I( B %n+U2G F/ @~=V+TG)'# V%C[PB SX Wr+2V~k۽6 6k@I)P41h >(]qtSw+}5#vű!$*p= F5 m 2׏ @+ Vΰ9{֖O)4_J- 8׿c16z^*60p hqP`ubJ׽-|. >O<sjo Sh}/q-D$*fem"  rҌD$66QF)0#|i0  - D<Wg .Bl kڀ G 087zK ާ'y5 @׍E Hu Dl}` M4s-sA5Ng  98ߤ ! @IR(D| -G2xˁM_ uMf! 2P9+9.wr *_phLA 7'D@ lEv . DP+\U)w.0ٝ ,. Hfx.j%tCm r`dqڎ<#X h#T+sd"v  )\Lf(w'k $"| u] _ *sm#\" S(u?L^: m5Kk j1 ; [ .{v //DnY 3*6jߟO$_G   {#&$T! z'? ZVؤ  2 b/w I mEV P ^ #> r#U; (2{3:'fNJ+7g")ǘk 9o%ا9 R(|&  Ot F[,I\Y _ e! e' A$T.(Mv(Zz ,8n r߽|+G~KW+ ҋ# %M5xtEk8.>E E &E& j | k oApa-dѨAu9w2H6 - Ah +G('juW[0j#d/ )|D <%^ [ @v%zGGd Ef[ >x0".g(.!$  &47&,9-Mj8Ta Dvkh0*Pn9\C \jc{; *M*{% "Sk.&Sm F@ p#C @.&%tmܤ%%  qOg A m! TdPR1#`)U*eX 6 XZl/# P * ax,k   ݼQh 9+τ$& ؉h{A`A/OV  4qFyJ= %  E 3&>u 4x (~ a 4 &">oku,4 Q. 'A@* wQyc.kP.eҚӇ'5 "!@ {W qY U "YO6 ֐! 3 bUarg7tQ 3 Z]l @G $Ne <2?;- ݉IWu8"^S 01 $- u#Zڴ g!*x}I 4g0Qd G,^bv.*h5)ο@"XSH{J <_*p3E`7'1Z'r#R >$( ZDbHB#!#ĺ "{ /W3<%9%5{ 4qF t\XN4r*)K9 UO %_&Ďh.~<p5w1HL'h*'"x 9O 3xp'oiI uQb2ah7-0 Ua PJV+j.r Y1X8  ˶֍b ufX6Dy'ξn9.dNR ob U*L)լO(rw Ig!* /8 q Ve%Np5Պ 2kr  uFw,v; *!=x[{!#>{ x֪5 X3%b'_!- Pc V {7EIf +l.3aMhE>{i/g he _kX]( tRv f ^m'RCfߞqOxsio7@2"PGPz)֋PLb31.">6):# ]J4f7 / `[jp'*o fZCgX` 0f %/aTs$[ ;20*x Bt+ KEer$ '1&;Tm|pconi]Ki'Kut{W, .cN eH  $ bNl O {#`5 ?p',|/X&TߺU#k&Bg؄T<!+ aqO XB".ߊB$k8 zd ]Y`|;.Ud 9):~:6f,3zfR_F1aHn> 8 M S$5pJ$\ )_6v8J__"ast/4s >I=OH "^% p׋+*{ t߯ JB"b & 72uoPvS03K  *Qs*C]V_[H $ SYwuD\, WY"gPm' #$$!")2  V,oC0#*w j6< 80?@& ma25(ح|S/d> Arch eͫK' ., X 8 b ?4?(Pd cR-Ob#Z/ $n}+ lj: 2Ҭb + (5\k-> ] % 6S < i$Y! f m*SFE ;+b+>9>AmWV@F"#($4y=k.(ϘoZ#q B R*8[ZNI&%YFQ س7' j;s)gSߏj VxB,yNOy (  U?~2g.[ ) tM؟! i (5!%UثJ&&=N*?f w. %2c x?}8 $Bс޵0IDD rwR _e g [?):mܿ/cـkTx.е\&e1C~ x_h yjp ~?t yXʂ U_V E# )ab-KC%!5  `|KL%7 +O3o I%#) 1TR 4`M* VklL1iV  d;` M| 7:+ӞX Cwk&&$ ~\ d C Ix/}ˑa ? *9/B8=M~ 4 S o &7X) r"<ܯcEe Q[/g -] Yt {jL ,I80GN:B -Yu |># X4s XĒ3+$ * sn5g۽ 3r ,kcE|0ݲ>. 6ڵ leA%M 7m %= / 8u V= ^Our,pՀ >Xo \]`)"$7BDp}:&B;0 ](1mK1&o0zJs p o,,B1p jmHPK *)< 'JT; D.c|B OU4- mTwst s +#m ;;ph* Q "\ZO])7x .4G&Z  w,M~KPQ gE @J0\ W7'! cPP -dߞ%0awza6n+4q̣( OQz|N/' 2 mx{_ tI # C 8/r4#*  {@Jv 35ujaa(Gce |3%fm n Z{(1d"ޭ6=L T3$Hq.X!C%dn#sd,!UI1 ,)1 d $. T! *9aT  .(DC ' 61m%J< UΌ0z(  r 2xcט79~!9UHvJ1!r s$O %ʒTo(EV}s LZ)=ի2) c`OO-P159V 0 $ 8  |w V =*( JZ _ [1!U  Z Y:pI''Wp%? c\)W"POІ _00E :6Y|DhEbM;Wk_6Z<ٹ!z 1i<݃ 2gE)exx1k &"9 k3qt~ h!\E WR-K7( rk N (`. 'o BS  vGR%[+Zُ=, K I ot 9 iW7"6 1]J-n; z?|?3 1MxjT *X+ P 1.$?3 ,w Vs& O(~"{h7#.$K? ] a2.'@v#XZ xos niBk1*7im NNP*،L&K =`epNZE&Y &AҎGw 0W&*/55<B$-F PgL4p!8pTVmV nsB&?I  d& x~.mMXhM= 6,?-cO D 7$+K& gQ<o>[y B'D{ c, ]rC';(; 1R !<~.PO ZD.(uGzo!j ] J?% 6m$JQAL> s# @8W6N3"m8koF 4'ATW50qQrV`G5x 8('"`h&dg" 8u  Ji$31. w݂  "#o^e2#r  0xF{@QwBѫ$ hC$"#@"e#o "eC 6[tp_y8( (ߗ'ڴ (?y <}ߤ*&k3"Q&Lin ) #n) ۽S) :X7u&C" 3G YOw1!Uꚽ@ e1)$slӔ EDD C!+7Q z##$f[#> %l2P Ѳl+`";Q6N#3#4 $6$4 y ~ }- X # Xs_rYS B 6, O*$}M ڛ8\$k"WYC'<1 '%% X[m4w | t/8}#(,(LG$ 8&d5-ls? $.R"ة|dm1O Exb9 d'X9ݫB u c,y%`٪RU fU?)O#1w7^yk6g?bM/87v".x?>/(b|c0z%Ҹ`VuU$8W)2/jIǮ3s X$.|!u :s KX lY^*5)6#KrGm  (E,]قZsۗ  - S׾e+ <-, +$2mN{R @D;18 L xB (0rԫf(jHQ<"#he:c 0 B8(]v [@# Z e=g, Ft/#v*P2ߵO# ԏl&i. 4m K3fd7W7o (k&V c 5Ԓf3(=xD _^, c0`%:ϗ.# a+?fC v w ͏e. Eyu $.;)4\:q$1/7(/\e& ! μ-X mI& C}eqqIPo 3(^| F!|21!'j6,> 9>#h+U% 2  DaW1"yEF c2p i UDl6#_vu:%Zݍ$+>5%7 ` 2 BZ ]0]4ZPDЂٸ+B-+Zh ( "7~ D#h_ɽ<". Ҍ(z' ~#fS y);ZA+ ?n/Tv^} k`+-2˷Uk~rN /8z(i e)5 c 1B-5u W &"r{ף6%jS *]![҄(pU F(f" i??zV{(GߑKpMSK0] ~- ) !MD+{7, ]/(l Y,] .w"_ H. _r4y'jhx b9,9%%3߆^ (`&ա$hY_2VK`7S (P C@$ WMbX.'B= '* ܂s~2"o2l"K!LٲFp~c ^@1 MY  { 8;.#ωP48 X |}5qpw #C{%ʴ#!  u^#g)Nyc8&t`ݷI(_zR_)p| - .Yk%J  RUQ Ij! _( ,~ qb ($l -@ v>Z.T}''ic TLrB'^K!<-?+pR!(Z3'!/LLMT Ӂ8h$,w& '֮'5;ۉ. n#'$  { \e/N<0? qI O i-z yR eC - UHq6 D  X'_` r| 0 H' !{mھ< p ~S>*=J]G%LN g{{"({)E- ? N7˚+ 0G%x  jMJV9-S ' &%8 ^NhE( a&FmzTb gm  AM@ R0T#%)L, Y  Oڃ%_mg o\! f( $'ٹ]G >  %UXk}k o%)ԉtK r1\l92.~ ߥ.#w*k{w'd fIzEO>=!T{ wt L1 .Q JїS w*( cn^2*@݂4 ~A YiRb KN5hskBj W_Rovr B'"y|=c  x5jYJf FRl:S/e$!(eln dd91Fd 7A dT O10)ՉӔ]\H, +qI(x*D H5. g,$U1qM#FScŽ%!\'JGI'A1^KLV"x uv} kI% 5 8M(t_Vky py48.P x Q0$,tx97n mmR  tp$" 8i&:  % p54z$PRF#>F u cw~ 'y,J K<)f^$qiE _w#N[?\"Ѽ4 o _A Mi TF v/&Pj[5y /x3\ouّ$mVf!d#o۩zk >%k{v 2aRt.; Z@׋4  Jq,bN4,  H c<] `  Dhd֞C3,'X" | h&.}R+ Yeb 7#2,m v W*) 12 oX^*r׏''><' T(H$7Ŭ&AxPD ~0 d= x_=#[iӑ ߵ{# X\3  7K hP:} , Z1 8 c R+a[ Z52h.|-  "JcΙJ.,FQU),S&.@^ߏʬm& s & E %p$ V !& 8!!) G0 " R4 ^̤ gL/ru)F f.$lR -!3 .4>RU&q; Vܹ 4/&i2g<&!r`$d:a ` NS1|"#DD#>(ޮ0ӗ+ ))2 Iwq;&  d i(6z܎&`~rfF 9n! IG|*Yy=6I . 'm"|([ZYNh[c(xsp &"eؖ  X/k*/+ho5܉ *.K FB?@Z  qNs9f0 LY+G8 & 9l" KFS ^ ):Q$/)Z8 # vyfqРM S/)q Sv !1Q̺<UX^ vymu؃s&': 8 , Мo/ "tf)ɾ3) i }Qzg>%'&0pgqA aC):"g$! jn ,Q0SE),[)t)L#je7E *.zK Xr} Jei= +- ڎZg ц?q.U [#'5@s! r &L2<T2^D?Z_5N [gX9 uݡw?3 pR |6Y3+k3A y,qg;CC/3 lZ4G[ v$UB n? <, ~.7qO!r. *"o>:h d*"*n# < fM($..b3?Nj 6#%YJ9d ts !*e  " w ND 6o,5y_5wR P6mpaQ0"7)s )1 ; 3< "|('%} )')q Z[uD=M%&7d^Da[;dc !i:j i8`5Y q!1C  W : ʂ.Y$E(ܜ.3+"f r"y͜^]1?  < !x[hf6~.h!CZ;D1p!E!G*WӁ0.>XU=W> tn_( P/j! NV}LG ]j $?"J  +-/C_qH AA  QA}30prhx&X, G ; yF L HeԷJ;~<2  jaX%^ a 6 `q2kl x y 8e\t W  .;^ tPhlCA _* \C N_\w x} ;p 0$g7 5^- #uj\&;X. Z/u3}ya#qC_!R!Q+xYK6u M4{0^m#1 i' sb}@A'm} /e" 0+,)m r,b(3m*ן܍R ݥo/@xD- .#et-ZkyW F * 5A-CB: SfW` +o >.!fJ I2Q%%o-!(@"̢,%=. ֢$-|PQ5k Y2 LC {G|Rk \. Dvu+  5'VoԹ pt  ^ 3)(gjQ,7#V I:{6tg :Ee nA{M.! N etR{/9O "HZ .$ C nY܋* G l ! pB;STy*)y" %lQLʩq3!v{ q@ #6HwP^-bhN-N E>8 1j&PjR0$z!M39ٝݥ@""%} ߪ 0@[i  WW,?ފEX& =2׫O p pXَu7 W E 1ݱI l~ b  R\M_./Yl~4 e  L(qd)-w ޳ar|"*8Ӻ!g~d Xi J' cP6\!];Fb *b $fF  #$a~J bSH2 ("i0Wrj3 b #B8C]rqGC_!CJ <OxGE5 W P]чY*E ̰6"ܹ3&)wN$dPF IF / mPVX8܍'/ I< %* O&;&/  GǞs$n/4)N"/3 +)p?+= dVv? p  { Abߒp\5@߳4g Uj+7 e @TH+UJ = "t  H C~A#iFՂ1t'&AKY j ?6z%ޮ+=e311 v wyMT$]2[ o"IJt޸> ם l)>(m" N ?k KQݬlE9 >ĺ5(p0cv .+6 UM au8aY&)`#+B[?nlCO ;iCո U/%)~w8/*Pٜ#?4)mLL [ C_^  ' "O T&R 1$e!Y1$ۋd,3g; _= pI N8'!u p[ *$Z 3u }oyG4 s^ t vKii W/[`r$ %P̈́I7 44i  Jt_& ](c o^L2 m7@tMb/4b";5 >ְP c|/ B=#w #!6w!|&X/,/;|hA_pRS40 ^N)$ H {P۩t#^p  3M"#DP d.4`JVs _^0Lr /4#r r ' t-'ؒXs%SE2& e>' +/ϨH8 |գj<%Dځs 5# /Z;D)g N EzlS(nmC6c#׉ 2_AԆC0`|, I5fWjBPeeB y : oO|8] Rֶm!]צ/NCmK[-i ( ,N> N #h ^U /A7 GH ee6}. &!U !N k 6Z4 y-10m]ܤ-+~D ( :Q n 0gݻ4*T C/[ * FLR2QiݾQO%$(SK {iO,݇+(O> F} 'a0ݞ֦C^u-, ӎo ܷuM@x- @"ձJ &&r\ E' c@# c1S/6 |Hd'd V "tf[ = TmS}D&2-w 3,fb[ +!4$ iޔ>7 xYG hv& ?߈"7<Ǡ!2h < K FM x!CA\C@ IdI q Zmv <@vRCm.Y ݞVNOzE".*W.L >0a)" U7q8u)i9 ]~ 2 #,!K XKLH&@/z0 ^|W -\9O#a T:t=kM(! 6 W ohgٮLZ*":N[|&x 1p0ivK0Y5 f 1 %RS 99Xm`l =b OMU3ac %9ϴ} gXz $(G!R=L a HI (?T,9 YZ6y'hr h { TS :!ܢfv O,vaid A1')up|#/ U1=tΑD" Md>)S#!C+"=?\B; R{Eu+,^%(/+ c#G=/{`| A (?o  p 5 (=?i} a'3 s ^b :$&LJm4 5   4y  e0 7ܵx x$1@6(r#=ڈl\x'S)` E& >M+o 9p=V5[Ru@+u ޟ..~ߺ(xP8ZI{wI$ ۱c)8M'LOٛ0,. X`y9J7`aUh 9u^,d9-45g 1"/J 8yyh{)z`FSC((  /Dq. ""P CS4 vk@jbXF1" JD`S1,e @R Z Z Bʹ^ ;˩=!4hQ)FHWސ\-cBf yE#n S %;-=>= 2r&u) bUc)s ۾$$s ,(%Rw]W9Ei"6 h\ )V=   phc#'4|'ڼ*@-5X; _JդaCh 8+v 4' !3231I 3U>[ EC#s] %z *8Zګ~ T t.NQR|B) SSiXM&/ _#PM  /:P)* %u23]Qeb K}2.!|L'! gڒ-(fGv? W,_ؔ w% g_ (?Y  K W'v{%aD<7:})A'1$ڲaXW,f8;6B ;+  ?ѹ!quR ߠ b]Ƀ gM"A g/`4 5%|iY -}),} $ͨ8 y 619C B p-X %! Mؑe'`6ؤ=?u;E&RcreY(ݡ#Ba_ o=_*`/ٓ h)   7L#A%  8I/*~"Q q_+L V2 wqF0mԻ !@ a 8 Q_/)U9  D[%6+NtCX63< G88u# ^9] b,E 60GD܌ +# SROE  ]Ё01f9j ],0${gFMGkl 7ݫ]&i lZ#q" V [-z` # Xv7uA& )8Jw%40 i nyE$q <fݞ w*F"ILwT b)(JUJ~hI$) q  of70%P5EL`'vmv|}^`?gVl 0D_'R;+IOO1V=_+(=)[ nuNf۟05XTk%9b)B  o@ M*9k0R!+PWr(v~  S\!)J 6ST1"mIZh d =o SR.usWkUD+T!.'KD_޺ ,k_ڋVu vS޸ ;&|7  ?ށ1+ C` 7b  d.Z !> kBkJ( >Y6$:zy  = W(6D$1I**)R7>0R'-w%}_}T   RN  N%c`:+ hn.YNY=!% TCj4!,9|q Odךx }'VB pY)  /WO %d&54 & =AX# 2 } IJT, 2U |y'6w M., 'Ob<epq2C##$x'FQ#a[mȘݴ"@i&LDH5JS uJP ,  B.10 |" 6G;#q 8y aQeA1& %r5mkǕկAIz )syoi D!& R!Bu ez< 4i h+4`*zV-F0d` wTu:h gRw-u k1uVRw,4G K ܘ@l,%_ڝ$USH1E qJޏ +eG )# ޼+ lP*C{ q#8) 2 KRI  pa cRW]"x*zX > .B0!bc gW ' ۜ~%ޤ F> ,6< A S g&1 }"!$Rc& HYS#k!>^* ,L ׹B,*A%w Q)+ 3& ~ANQ =3ujt 7 lh a{1 "ڇ A  P I_ b!G4s; _&@T"u GGM Tm0o'Cٝ"mrH~D-X '#] ;P32& Aܴhs K*'#t,E&G  |!x-G< C"IDK&iVFku Nd}T6D=b [  N;A" R c#iDA~  fiz%#k W (2tS ,J6*`4|b 7u7<~ (h Xp% q!p.#~V S*"scpd|)4} -y[: # G 6i-$8 r) {'k   _ WN@\ yvp E Rp0T dTj2 8tYc>E Wj~27ӷu qhDߪ."v +rQr 5(Xe ,4N 1  bZ ^r'6*54eE ې])G4=e H"KvWVpM  e0]Ja WF c  \ hGbvT,{=YF #g& Q/2T`ɕ'(Obdj FR( u#fQ+S RIy74ZI i=S% upɩ N&d& ~^ e,2mʷ ~)pI22M1;U*o4EW] |UQ b5N&)bE+(޳<) -N3ѐe$y{ݢ-4q@TM*HuJ6nD DE"m^ \ Oe/9Ѽԑ/u4#*YZaP qyjS TE #:<oh{Vk@!y/(raw ! Yysws:2 ٘%qe(1W-.%a3a:<j @ a 1G ohwL$I*ڿ"pߓ~% hKTu `q0 of6 &NF<N *3,1 Y^%  qM\:rFQ6x-w` jM-/d8YVv_ }t `3#1= {ɗ2"4Y"65 ʪ.c)` ԏj&L^ g 6m0 ]t94$FvPEW]M _` %7}$Հ<9*d 69 X07ߋj(\J#8$ UGr $EQ #U%7"Yb;{n cuHa+ -5պ " A2o,O ++*%&!P 99ig%qE 4Nx> h`^^~(Z  E&SͼG 2 ' bB٧h!$^ޢh`R[yz ` >!+c nTp۸$1NH. h! ˑܥ" |p@2&7,M1sݣ* (Ԭ *|  2 2 =lZ F C ] aJ!y b\.#GHKRi =g[nW9Z ,  FOsj&v_ a۟`5 3i6^> +  ?D}m MLCe]" ;x?  ! ,fځT, !Ϝs   >(=v}5 %iۉ):]x./>F b v Be k"f5 O  njgX_  B V* Uh I p۬%1= ', qY"b" m4%r(#f$%c _s &EzkkNe"Y!?? ]PM y_!0{h (29=At\R l5@z, <"G{_4 -k 6֟6p V\ZL&x,W.6; $#X  |"lpR*-.f{#R  KH %TkJ dKT.{o ܓݭi@ G ZaC’ V # U` 5 o%Ar H H~h| !A hc Xn##eǀc[p 6 C$  {" }-7܌3hD .Gk I".; 2#^lT͉'T"\> G" Q 'ۻ=8 H\c '!?"ޜ- J" >U@.%9G a݇8 c O \ V P 74U2]xC BK4bm}fߕ , Gq ?ph@q #SނYL<T}L _6v }Wt KFe c+) %Z(#h-!"[p Y P6<{* 4Tu p]0 Z,F*ݴ"c6> l' d*4h yhͨj#N*g<9') Od C %fq0A)OkwAq q &s/fU>^] iި%MV!n"6=.fG|B{3F)#X(X1 -CDq I`}Jnu]=&'FXD(&n# .J%n!YK,]a< `\6,. +o7M,mF &0+5 xor C!` _V#+ Fe5e_7 0s+d;P33^$>EC+ux* -I$(%$V\L{5;Q Y:>(*LS l ipL-r n4p% N('.%$KE`~ߣ3 ?%#EU _$6-*K!=HGI ) w%YV$# &$X2]*)%Wt }l cHR'I(N2Oـp*'J9w^ ?#/ ; ]  "W }k N KVE+Kؓs ng/ kPo -JB? v0!(eboJUb {i*&]AFJ$pH$ce٣ ] v/&U%j;;3%g58 ABE `c g)]T DSs. ;k"P 1$ D(I;!!ϧK YӔ){%[PbC, %c Y]x!u`]% B uG B<!&. : ݊ !* ,ה")a) W,"ۦ23} 4{D%Vp׃p %z {Z߄N ! 1Q/ӥ#fZ Ɂ";u*f-) ~DP?W Bbٜ |:#֏&&j3|f]:'&߃!4,RXG  D;c Q<"UwwZ  , Q^?_b" 0$#o[!"y#h LB 93?'3-1T aAP@g/-\Tv G-yb_'tl `5~8 7ݮ!m=/<4#@'Jx22u 5 [ +I9Wtlh ''0'1Y &-9ْ ! Z b 3oz޹T| g'Wr"<fX$_'ҼIekԳq zܘ,k݉F[ "-8%V7#~7<7 Z= :X%R%aG:u@5:ubŝ6!w:Ec"71@ #}*oޤ n|[s>*ޡ w! 8rN ' &*Y4 b-J{nj" 6r8 X xcG8+~C oz@  #!)9 X (mDߑR8/ ,* x? 7+ L F ak(6`4:;t "r<+ ) ) ) w!_ԛR#%( ?7N J`$ f o ,x,?!1 Y^u .> B ^ .>&}[; UWhK SL>%sUƹc k ڎ#)" .x]EXx# Yb$fd^v u4 gh הK'3η^ hc,?9u|/| p;PT01 d%e'ؔ;?%i(Z f6 Xm! a\{_(W-";Nr& ۈ- !*| G R0Ya &4Tz"%P<õ#+>7$ J9 q {> %C k_"l"p .1ۼ#$ A%yn*D7~da#8e1a"3A[ x^a{=1uFy7)" >kX $_{P80QHگD`   L%\"~m/0+!o)sQmxAѮM;%,7_\}dN LF$kP vQ? U V Iw   b 3@?,:,ua+ e+^2 =>KS ֮#iZ.$ +%KY d I%5vG1E Y!A9 Ws "T*-K-%vK( X%\^sW Z"\W  2G&w)b0ɭ\H% yPݕR[ b ^V[ N v+ 6r"n }c fo]O x Z t F jA 2)/; P",-הڴ"#VI% " NG6(.H# +&9ۇN'2F &% N\Ydq4 tlJ"T[C  ")7  N V-%X@ d !}ݤ(F"`$(D N7" PVfD{nPLDu }e/;$+n#q5 CO#m̫g'*' 9&YaIe},qpߔ)V~b޹G,?#iтy2$ 8?Bh#M.zQy JؗMG#_#j21$brT(8 rGHRU  Z K` Wfp =m@z%  hZl P_'Vc%* yG#!se~a3mKTu B" |EҒ7 E(!֧A' / NccB A 3to^Fh2( Fz 2e$կփ;T4%ԙQ  J")Q% *7[1b8 +*`+vE vq!~K/)C vAym I `U[+'P7_fH{( (>XCJ Y6aE J +c~lZhd }q%0v%g @e k؆= e%F J2   58u`!-",R2:B4! AH =)|<, ta$01;%a]+O/!4+Ԩ,ѝ^&1ɡ`'u7wY Q5 h3q l?`Y  }Y(D,nG$H"PC!` ()Y( /ʟ {]R`M;(o D 'Tߍ( ~efp \uC3SQD !f_RDRe+!2[}I\X,e*; b'/ Zj &DYKz@Z.G|F iX1 6NCdj-.9ɡ  %dL~  jڏDRj5w |9 K-YJ`5 +[|y x g H %R=:#'Y&.*gѾ Y y* VA=>'zdo!&< v$w2E EJ!2=2-JgFvԇa7eX 5b/*pԸb ;c 1j -P u 'jR._U-M<"h!W` <2;Fb_ I@'xh CY R _ ~EJضc/A= {4 MN$w34l  c 3Y/]pi ^ .*Aa"maIQ rߛ  %MIP7 km+= ܹل#a'[ !X3^ 9 -Ave3N Wb M 0[$ U #9ؘ 2Qkޅ}G !+jh8 +./+  F  l 4,9W ]b$'-1- 7T3d?? ~LN UjW]_V ;eާ & }% Ko!}8~VS}Vs[d%0'~hR!QH)J% ! )^O\'Y D t  _=BcxW2(*C ݣ1\ v\#(1F!ѷ(F1( /zd#%+v zeJqmLTIvyr+Lm.u$:\ k\} T!V>Zs =(x%b,W;  - h/>G6kϳs`=A" # jq g(!~~c  D ft J< n*fa;gjUwӴA W x%G B2-ݝ7oJ{DG).9!P Wq*L. 8~Ye1  ?i:)2 'k߮Ύ}j#JM@3 ( >76k p%2! t 4# &D)ާ   ]G YGGXI qRkU9' %=E> hE<4nۨj15W_Q@$;9ˡf#o $xX| \ x!d>024]Z %"Ek9f-])jreL10~#QԝfZ\ v-+ ]-uK za6*Zf i~& u.< {  5L v,dO& N/\Aڳ׽ m!B`;oi*w1RlHT*Aq  C8S  %J m cE/M  +z*&&w)) gXx Vο*E:diw rE/Q R4t)פ<%G kA&4 Wz ]F G$+u Q'W –! ,N.d<'@gZ0m 2ޢ#C <jHx.p nS vqQ?Yv  A EX*EL } 3n3|8e(#5Q;=)O.j~T8  OWqX$ ܘo#2: C037 Y /F A 5N+  d. (# v,V T f^/s p N~@ ic!f BR^ؚ3k (|o->{]f !.Jxnh" k lFL/ ;e+ Fdj p=؃((Lo kd v#M I /(=.U n\]q8yOx T{Pi /n W!ߐ. E ;Mh\ l~5/&sG۾}ݙ7q&ݱ gD  D?fՀL!%>DE 7 W#K,&jR)` /]Wt, %:ّi0h[nޫlK4 N C0 Pjbwe -wػ~ ^P( Z -n8J:E147Ө =@a  |gp]E  DAb;nLݏ ?3E vԘ <Gx{% ;+xX +'P%& 9KO^]B \0z\ # x {i ]\ ۀ :c @X .*.6ׅ +ۂ% 71r w (d " & 8  $]ʀ<U[M̠",ML0LM2/v$:Z  jq/ ' }Xo &%J& +$3`M4 j9;@=ߡb5"7!0 ݥm3 \)WQң'0S)E*' t7MxYYYk_w#. 1q M |Ι0U t%vJ C ZbBmI viiPz7*.)A4$&! j8DR b?U%  t  O D!$%]6ex1D\vI4'#EˈgWv!  c`}<A)09SҫdP i 0zP8 U LHbl`YeaG /9'$>޼C} o Q *f޵ 9U^W1*(y, 6Rn y^ t Pzw.:uڟ {-a% Q ,$< 25"=(ͭ! Eg'oV\&4%+ .+}8p]EF( Oׄ! . h\F,j%e C 61-Ug ;E<-& kJA.+]Mf KKTpz^? o>'%+.i2`6z hft _|7׫0Oh^j ;߭ zݸ #HK583 Q   ;ʟ$@`i`ߥ%< r  yk-!g|oݘ_+H) 1 ~Eh! 11&Є@(."%-PWM:U) l &yX| R sP  " ~ $A=YP!VGq*т:v|(* .P $`ӹq-("5#5~} &"<~~ h;C%W )k ) &1v =\Gm @&'$϶7.'tׂ6=:zOނr=#F,Wbk* R@}"*; 8h0L,K!ZRBw}\P1i z:#ڪt 9C: 'q;e 9'8P 0!  _ W 1nj 'r m p 7 ou =zEokQ&%ezWBc qZm.o#V o `a#~ h߉DE0. Bq"$&3' 0aO^ 5d8wK&#Z9 - )$X io > nXojdھ hzĕ)(-["BVs  ="T- e*!Ĩ%Տ,b 9+!9P3}$& U`$- oA|8 is JBB,k &$,7Xǁ) *( |=$mc)G) ׫f+I p= =  Zx"(F@b>;`8D$;n UW Eׯ9 42)hgSrDOk \ ?X]Q&v` ?N| #~,yx!=0yʤl!BmW' ol:^":-(ՎYE <  -NZ W*  5?)"dg\M`H B-u 2D-d8 (  cE`Е%0&3S1 %Ҋ!S&" + , sQ'`.+|6~Vwr  nd I e] c Tz hSl 1b #0'  +`%5͢<i 8j'`mfU-+)~%C` { X| tE9-iDd1 ~ -6sJb>3 D%-5!% =nT~UO32EZ9= F"B?p 8_0#3F W;HSA/x k _ $X3) )sx۱+O խ,8}-S-(=/',*C&g 3%'k1wnz D|#~);).'A K?D 7%71 FZ : z-+ {\ي*w+8qgz88 <<&X c v } srAG/EFa )f =Y fG D׈ #hV=y$}p/Pz)6\!mqB& p%jYZ h~g5Y"S2"y Jq n|F+#3  x&M!/wb#q5G/^"h.n[&P " vX OjsM -0͢9@B _> C( ?4[- OLT e '$ .d86 34b[ty(]Z}""# T f.Xw1=9t|tQOb>'KLa +F 6XIP1ؼ  ^޿_ q y &y!hTa ;v ׻BI5 tvY  dKb kvt. +" J -11*&' 6$Y+ p7O*:= '"DY3X  ![2? 'Pk?[r =#ޚw$[: &[j #z = kT*r{݋[@?Y-"-&gΏٗ(S#, \iX 8YK#XNPl#J0 t .J0K0y=uLv,$! /4Zעݿ@a!j \t^C>'_  l @  2m!.( mpv2LGs=*)BqO ]!yM|`ve f%U1qH_B5_> Yh5^v? w9x ] e ڶV,aAc W&z,c| x(?< >4*&J m%-|79 ODc yqFG,!b RqxXQ0W ri tx QI '7M#!%?FJ1 B ]d,mpU;l*! %$ | 8 OP_͕i&|Khb? Rj=2 MaC>%g?jiD3 x h +3A1 )@3$ -F2}(.{X*nyUM)*^*Pdm=$})7B&'?%[]ފ+n4 `L;qs*]'U3F _ InxIU &J;"D^Jzar08m Q{ 2s{1k߰ @C%n*߷3Rv: : >(*8gD.љq"U;(܋R&d۱ &o u:@9 E(* Hdr)=b9 Wm`!Hgq"Z ^s*?o7 Azo Һ &%H?j3W v $=(]si .%v &6+׉L]9-0o,d(pY]X:Z &Ţ<-(/   Dlk * ><E|s'x<  k&|w ".Iu4V&Kҵ  Mp FٿGU1 ~;5x  Ztm kCC]' <ցvT W Q?r.{ (pdrb"D0? X gzj )a+R2w ( ^m VO C<"P o ][ @ 26ڀ  p#p2;"V&`Ƿ!Og 0kk{ F& Hl]"#|l R=,Mv  _wb*A x{ v k2m 9`'vu>N Xf}h mG.VF t_ } }k. κ 2ϰ$"6H$7qi 'z7.lV 3D$L+IS 5|~ ^9 * j&7 D $" Th@۽q# ՙ9By^o )~ u$و#eD`d xO+;1G!$L D YWR ʈ 4OӡK9q 6V/(o  %( \Qma Rug H1>0?n~.6 Yٖ ZLg # Jl1 |fRDwq +- P[[uBo ] ;<89]: $ ޮ7]̖p5r #z oNAZybls yg]IBU*f .{2d&~T-!n2S !m ^ *Ζ'w/s> OtF G `/& ?C}%r gkz  qO o G 'c B6"݆|0( )  r* >%"r1h)mDHw D)ez r\~SV6K yj " Z'<" %"m޾Q : $5MSf,W1-5dS:)]_}+%,+! mwI]3 $ P%/% 2 e)]f5SP%97b92 R5 VQi 1 /& Dcgd8l] E:-]W~~?B{{*5$#X +@Q 1+18eLJzvu id lY5 ?P;-O ( v2J @D. $ '2"Sc z V0q([ $xp/_ f` UT26~TB5 5e' 2k, _H 7Ś`:ì/ )#3j lZ ?d8;-i; v  I y֣# G!G ~x=AJqD j"3 [P##M3- f#>n *6_ -\ H[G2^  ]95(*hcwDyN |4$Z( "XV34݂yGI)%݋!C9aV 1 '* #-4=W _  9 {+,wB Dd.d"ٱtz -6[m% s~](\eZ ~38 X_ 6 ):-!6tep ` 9:cMk88~f v#k(5!)z  F(TG -  r5 RR !2PAU |x1j A2S" 2Lu9G _ V%Oa r+[ "> +l97u"s8]񭻀ND, M ; nG ) #ZC "R" H/L\D gK#dy 1 lG F E@%sw7Q0!) 4#u< z4 # xP' pT *ՙ'&wd1mM (Ku|Fq7 bqH'zgP&1J!.Q2)"5b <M~o5 {-ut.G,.D?:/v% O*0Z h+D( @'`|W v6Nl.~_eYЫ(8c&2Z.z  m- 2;} D >ndl60%uۯ3O#(Yl z$Y{yYNC'&p' $R 'H -9E "  A W'"^+4Q p5$X8#( P8E*7@ɕ'T |Ar6Gߤi N"~  +cx-0G Z. l1G"'yP;N:,'YK "j+UX$Vץ,/,Kc),;s=Nފ l ,uW%C&G\0k%C l )ւċ 9\!s-/!8$H9CS -+tyo  P Q J!F t!(X %n3 v[4$ $  M ]b S;27-UgX*aV D _Y4 + z!OһB\,I)-kYaKP` + R !mer֜ Hl[S%K< )h%3=m A(nv8 n3,?su d 5<&QK <=%2jy0+=]? Wd J F#1 *: pC"e#7ܥվ7|GނZ9b T9=ޗO,6EʖG2<.l  ,sLI3 7\Wq@2W:$;! %13+\v "C!c(;y6 4Q ogM" $_1"md +%~z R ^Iq"ӥ *)1/4 2sU}g&m@0 N {) a+  1I)V''Y`9h"!0K)̻a1V<1ڙݞ Z]G˷ܣ /g_h,}^҉Mrd~#o ^ q%#liya, 3`s.J\#~+tfqDPVL4aJ[I!IW_K8@m* z%aEgLu- J%!U  o,b۰ S/ '$޲w-7{b=W //,#C'\1Bt,uK Um-b(p}< ' | yz4 dDv x M K.t z!x0 U  htP  =8pW Y _:] }` ZZ ,+כ R*!aY |8,e2'M ,lG v +CG$u/92  !haD1 x S Z {dT%%՝@QH[ w#P$W m! %?!޵ v Y6x4qkM Qz;Z %M$֣A#<K SV[ !o k=3 ' \Tޫ >} ^ qJ'1# ,{P g + -E2I ,')$4hi7}3d  v2q +f/ә*$=7 z Kx*ć)r h)Tjv|T& 5e]{EAv&49;eUA Mq l;N\BHu5[`^v! %5&]d "*"= Zo^Q+  UD E[V dWauG*~<$|;c@,7  > w(""-Yb8=k p{-!k+9S 81M,V7>^ !4JFK0~ E;_5ΉUO2!a ,* &'d uKy eRi;/+ .cQr "Q xL݆ S- }OO|COEllOh8 k$E  V (Ek v t rp%ϡ$ ' P|  ( h 7\rob Xa b" ?L 2 k E!Z7&/ bF  \w i <`[[n $ UnLu =  A^ 5ט&r,Z^ 41q<&dKV|. {S OQى 4 Y +G Uq'~ <b !!-iBo'#w^s z_ &SܳW #Z ? } ``^ %\׹}3 { r8fET 4%ш7&/ y#BfvwD!( {J}} > ?2#' z]u! `y ,eu)nc]5E y|?r4 z$ՕY X,: )$ӛ W"( '%;(LG J0Xk%};4eaIϼ&Y)KҢ $3 h $1B ImJ? ['II(Tۢ ~3B'|ZB5 (Ih)T sb" p =)W\~Whs: ##k(bi[ _@ ^ l& --Z&[!< Jsp/H-)ܟX *SfJ݂( OZ 0K PٷRw%_Kb^F z .7"ޠ*m!! Xҟ# 77vb  НZB $em3O3 !~MV  \9 &Ls]'CTmlox]tJM5SnvP),ݢ ޺-"'w֪)9@8h4T v1 ] SA)EֆuwoN6B|߰Z 2*,#/sķ=/K7[׀2bW?p ; ;6t$X $,F5  o*2lu!#O' 8i %iT v E #z:N < YLM@^ cZ21$~WD ADD >(ZMLiR )(mts aF-TX{'b4 &A40#` W@( B LV*)+;h`S \! =1s:$GN +F.V8i3$$?YUNC  J# -XI*Y >I($tHY1RL M 2q - Z#P9:N Z>#%` ܊q0 {>T:S Ew@[8$EsT < g$apM+ܡ݇6S>Z""T? KӮ$1X3FS"7p $bQnk<& T% k ,lh ShqI0 j`b+$^.*l F4z1D9sm'hK *J T;z>w 8 : C 0,ʫO 1J p0sEq"v.i> 2=^&(l `5' "ΗU_L29 i<܂h'.g`A  *wxe JA]H @zx<*rϵ f XO% U4 / {]w9mx ?C#2[ .Bu%!ӓf(ndn';1o"|I/S :PA5U D# 2Ĭ  d~ G+ 2j 1%TIFd$'ْHt:]< v۰4JH3'(Pj0 eZ5=< TRh=@yYgo2  O> v nn ^3@uCwHg <i"[H3 x ^o db z*G;r$2k>XKI6 &Ce B{Z R  @e? ;3 H b : 0<SU(~ u ӆ| !+O?X Iٵ}$lӽ)-rC .^^)`(3{YpQrW; mmS<* y W!g2L? }Cr nZ 3I*gl <ۛM#wk.o2#  {  @df(5!@9Z 5e!~BwJU5H /}Qtc( u+|5u e9'" ށw3cwӾ#h/O߰нEm zݕ 2~#+܉ B QXLV:V J 'I" 0 $!kس "GRm"B=V gMl 0 ;IhFe!d(y#f o\ , eD%N .) %W'Yli4yvq%$P,j *5, '6BqKۏ+eJis zy hL%I- Pezzb#)FA2@f>$eM Eb'+(p(Wd&Nr< vֶݵ{*&  ad3%K 9Ed5-q0+#Д?QGC2e& Dd} {JAx { ʓ="-u6 T&\[m(P c $x 3B.3tb=zb`~'3&#b0K l=% CKY 431E=FX,67j [y+f$*#L6~w9( 8 4&[?=hFB >Q?u # pbs> $zHrW*e[('.2S' s}t*]M2Ы H)hWZRo,sޟWM9}[C  {'<3E/g{ |CLft% s3ہ$$(wi,:+ q= % \*EvٮW 3&θY.6k  {#Zޓ N ;ޮ;( !T&$M*)kE,*Tie  : [Hk^6*ϓܦw, a z  > ;u&!dZ gZJH|tj 73/xS&'n #@gi,Ivv**;w `: $K1K1Mz%޷#UE6 $# U8<< | ~ > "j50gyF(r'X!c }GXolJ = #&m&2!) ) "RT2& g>i $ cx_$tF G t|= wX~X#3C [<M4 bg x;դ9L$/W I47h& y_!  #J*<8 \ 섽J!A^ n!ܶgT6 _y^ @c'? ҈l!xMZ T D]? HO9;:%)ޔZ#coًP6&& !oa1cOEG t},(R'T'dDC  > TX? :ލT,CO޻VӆD&Pɚ#\;p P b&.8Cז?bDEm@kk l' ; qA !&0wsZ N&'t & )Gu+tK؁lf36{^` zOY Q2]= @'WjT N 3 n%]Zkuy! *tf$|)L 5 7b SH*[#vX& |mJ Sa\+*) a !(Ay #0k kc  fK!0 6,@a$I 6w@ ( -Wuv|+. M$a'h^  u$E !11_ )3?.I.l$s~ J&7=Y~H!9= Gh7ߌ8.% dj<"` TyDtXm?6  H ـ!l=>؁K4.F=Xp k&> tx+@K8;w ujUoxSB_X?\A W!# V__E $ E'52mH`"r !*#SZ B.NԦ3Og&xF'J 3Xa 0[k> L~ enr FO@5 #8;St R m51CbjU t * +b4)5ztB" -" @&T,!6ҋ : 8):90' KYr'c Y@ K =@+ۃ4%!>5>!~!{7*g /fRe J7E>}%-E ۟'jO ;kf3 yn.'8?t*_14#8/u /2"$q  R׼ 'l4}i( \ %/ 9 >L}%&Y7a(% kl [8|H Q -3# >i5&FbQH  SXI _ 2  .Yؑ#;F"3Nk'r?%r?E3  #*~S CZ~?~ W=c `;z1"8$]vƳq1(~yQH(p t61.Q.8 XF7j Q5u<c\P )jWD/}$  Un+Qk e#6(c1F}? #94܊+4n 8M Ksr YW')S :S %0қR$'  J W x p+IW׏P6' _\7*y7ּ\p ZiJ">">  j 7]~ wq"_6D R!P z3qYy5tt"9 'oL$ fo8=.C68 DX ʼn` j~a3 31J{&շ%FoH-gy&,6`ͪp&dZ ?Y-D8n[*' .@#؂>Լܒ(o_ X]qnx -  J"*A4!!uEuE s722 0 sJ*!EE*sCNQڣ8" /w E >K ߏ(_%}Zi\< X0!. 3<K%&DWzcp ]Pb $Bl'LfD. ާ*o # > C]#(m(TA[L;!V  Wln F`D1O)Q1fcS rV/N-$"t ZWx 4!SE͢?~O"|< |'_׏J (d, Ay XZ/w S Ԭ,`*^7[.! !8Hl8%ؓ$'G2 4L  ;4# 2 ? $h"i8߯E  m}FN(+p ' 9 VނT-;50+p bz )#* !@'DP %fO =:r# 2_AF |J D*[`X4 q^mQw #~ni. 8 !9#u,.F_u? >A)(JS /*Y  _Cw8UP , J#  ) Bѥq P(/] 9, R F KHoT3o 1}_!l$kYھ,\&0;Y)s U$˪] @o+t( WHH(:) Q o x'x* 3])i,"0Us 2'[YBҋo?#L H '1iRW>u%"w~Ϥ$&!?: ߺWe8 S"#zjJw 4W46 /i 4 WN(^_L B o H >wQ}t YZ] w89[ Eiic >*00ڀ7 i i ll YW [SQAdkyc&'-T/l-9V j SE3+VMCC |}T-_#]/}p51uJ l! 3W^i3n H|. ?d}O#&85<rm+L>#Qg =^] ,1s Kh)x v '( =XF6ll&@.l|$;tܻa$= L~u( #q2Ӝ 4Yp/5:@<^ YsP  }.4 $h ;N 9   x1pbmW&@: * w+,۳OK M x; m , e2)Y^8c>eq+,Fy(~' md_  *(ޝ sZ- RKU)u)Y 5// ݴհo(D\/C{ToWpDh;C$|ZL V _ ذ ' ѿ! &*SG/1 {%0 <M'KffخFLp#߬  T \%{M *~4 /R A &Bn 6IFi[ %) r zX@Mi `("` `5 T $y ,*^2C:5PN&tJ] & ^O m*i ka @hV[r^,!p-FBY.$_$d 7+3  V/7L-}9%64_n ҈$.m9 B T+w߅#"(>9CL T'2r 6) Rk?&1$s *:l"o5{+Lv*E$ᔻ: 8Ni6>8.Gt րH  G^So T"8U]uw"eG6 ;)\$wU6"$1 `{c*(4"c"wt0OMr lE@+ X8C 'neeCkJH_> )22 77c  ۠FR'T 2't0R }FlZ^S3 d ]9( Ӌ'; !1HV/׃ڤ|. AQk4>~؉'.K~ Ft"Aѝ `"YoHh8U8k]n/ [nNzl Xk߹p 5g\/R_R Xp{'A}; 1t 1i  6S-{,\5  / =-&EO#J Ho 43sQnv %( <lݑq [ c#L>%Jko 9d E qEK6 =]s % Xܨ \ cM 9 _N/#w f (W z", c  v.7S}q/- 1  [f* y=lh+-AVبj |Y@}z BTp ` Qڱ*\\is rZ 6} Fy6O[<$-3 9)# $~gY -&G|K!b ˥_Uw(v&/D E$0oF=  o zA2 5BIwM- [بa^_\Z O)*q! p% | xݣR ! b2;b*% /\ fvx xހLB0#F:ծdv=ucHQ8O8/ZE n7zS F^4 Tv t] #2% Gt $Kx2(R&We;e z X1@!AOI3 v@y+9-8 :;0-$I@F>!"  q6  sG  tN 3[ ~fnߗb BM %^ {S2-)sՉ"ؾ Y&NO$H.8 $ : }y1_pF  3w z.yNԑw x`"|>O&" Ӟ2M57d]3 a 0)+yf) t 6E-5^ߑ^/ !< r?[3W^Q >I 3Fr6ؗ.)NS M P-'e2,w H% Q5x p,yo3K + Yݓ 'j\ !v, )9f (JEr/;h8?i xh>dQ>1 /J [)&3_  <wW Bh?v _ZCq u% <$g G֗ & BA.` ƅEn Q-t60{#=gOk]s bWL) 5x#QMO \ 5Q2jQ m?cD29 v~6+ 9}w;$drv&m% ,, }j 0k7D0&yޫ| zZ @w \ "]ѿ% ~d{ـ#-y׸S9e c4ޞ# -"]1B$9Oz  t# r  +ހ:H 1e)$|*V.H^ZQ %g)NeѲ4 hҤ_.P&Y"V :B S $F$.xL%Z D#b"V0Bl #5r eBf ' ^H@ E > L6q! ` {ƖG'&$^sE8(>uh0dV8MDRnwJ9 k C!9~)z d10!&V # '8/e  -CC?1z7Uy0  Qtp4)6N,  Ry 5:* s luBkh2 |  ԣ>|-t9;i-}HIPA (q{*4D&<wϰU"${z>e @w,pG2r^& 92/5V k" >3#6%TV ګ__ T Iy32^b,  5 ')rXY؞یqs > z!x" k s  sn'"L ! '0 |jXZ^m )!GO5aTs"=na &ƫq!@ tS8FHD)Sb4R& 4) T$ Whï61 Zu.= &  !5wPْ*V a F  XLi-K}rh'( Q   m{ oa) )(?! @+ > ?Dή/, 9 $9z o'kp |J%3 Hu 8U7ѵe+i?  $r / R[tlRXN}2 C%t [-fp;@O($]"ک!.'. O *,h ;sUB) I Lbh M3-cvt +n_H%5;* "(S8OMKEΉ( X5 &//0x#uEKp +aыu1 q! bm6-f)-_w oWC$߸" [2 ?:PZ "T٥ړ> c l8C)8 \qn3&_0| {?G" ZDc'"(,ZvX G YI"(YCRvE;  Ks}$*k,-I> Y+\am;(#r * P.D` F =b՝#$"" &l+0Ԝ7i7}bO8HPyo+H%q rAkn  }9 /K[ep(g  ^ +d& _CBֽgL,- K>Z!vR } xs&X׹=EfmWcy ՈM" h).1%Y Oy< **Nk}C%#(ԡ..p!Y E -Gڗ$J([dߣ$[Ft zX~ #'&:* 7 ;xV J~oR %|J#G  y#ؘ0'T ]@tK 10,] &TL #4&nN!:~*2c3yi >V N$ &265̴֙1 oZB E;"iV޾ 5%7|<;-G J(xD J.4>%p~t8!U! /b#  E~+NO^e' ;$!ٚݒ.&M\ hr|u3!)8[b]*`"~2Qtzd!&,!a(04eNH ޾e0rl==]3!V( L e#I4vdBi,2"@@-k2<T'`eS* C/ױrQ 6% L+{+)1 Jq4>8[I  ) Pj.!ZS 2<Lyj2p/g(J)Z<3L, tm8F"*p&-e#fG};m ? 8%z@1&!` xUmoO\GZA a._# y h b^s~ 2(0ϼ^ R ;8wb ` $"PR:E,P -/U%op!:2+??ԵU 0{ 'nKebz$ %P /raܸ+~m<,FҡP1df 'G9Q9!p/mdP\0K UcM \,M"M`0= < [S g" ;U8x O( bXp9oEO  M%<'g8f:#&}(+J v0P^O+,ްR qm05,*v[o%+ $! %u-W+pu 6XJWk.pF#   Xݲb<R):ݛZ -F+ed n$Qqak YdGї" e&-K4Upwr^8'; $$ #9)9,e-8R -\'ѐt  QZ~'x6 ::-:5I%f*`]tg-ԾBf  =֜2.=fw EEl97K+#.,T!u  "b |e }!1ڍ~ sOv (Et _"xhL od  o] \);gy5d ~u$p !$o 6/;y^!Y ,zfv.V+  6 /xTT&P.#Xݐsn; y u-Wʆ 3*]e 'B m ,ԍ6%Sb<;~%V\ g m#_9 k~"^;%&)g:j- s tF<#L9s4ۓ)ZQ? nұ΁ ,N $A /lT** Ҳ$) Q BG \) xԧ | ֬.-YsWۤ;4״ߋGa#'6֢""d` V[D,Jb5<з  /h0r&'k LS5ZmZ6i[*r!"Iep(*W) 3-q}P0*ֺ \n\q b tkmG)40$ˣWfL!W&_"(%( UU$ 6tuv| DV } _ 4.W#zs=A@iU4JK{"<D.O xFu }w+#hIh#bke#lU)̘F EX s}a1& a'vj O>WҗIf.{3 Cm -2+0p &Yj +s&Ds, !\8 5*>XX  hpJ-iF"G:,] %Hq ISWP@%B>, |"w(٘lX+ %)D,(6%8C' G ' S\Yjӳ ? :۷eZrK(!7 $ Gv .eb?!95ۖ|8}W on{ I = *@!Z]͐]I U*#!u "ދy5W-6 $= ~|p I# )P p y%n4 G ${3& 8XAC /٫ @ meV?zf~ E 6L\_-PZv\ @7 ~ !c2)$:T_F 5LJnV %%:V\ (wtC N\ w~jI P$u -h gIֳF B7:Q)U!6pn\ 5[<-?bK C!K8 R N ,bZ@<  mBe1  *\9.CO x\_;&/B) ~WiI qp4q-=/n )4eI231&A A%" 5sp$]!ĺ Z#4 /E߮ܬ,9(Dw zjm4V.$N@JA"J [x DR -Ruj # J l4Bت7$j~)X)hҶ30%35 /׫ x9 T($[ 4 .%QN 4~C%=XNDi)p׏c #xx%3  (> }d91+cp bn : k/oQ*)Z C;z!eЗ%M0, 70l K &|) zf ,1v&1)< yt kfo :(d*-$-R^g {"Y.߿8go Z L$o|KKZU 9G  (7 >SiB R! H=BٮE=.]3? 5  7mn2=3Z4 <ߑI ] Rj;/i1O"5< ycmu# MDB$/{ 6ߔ:  v;#7^ .ͱL #Z 1% h^i:܋!2 =ܤ NS!B MY6n߅i"1N5s%3,%^ : IӅ` . 0Y0t1nG @jMm:M)Pe +2Ed)pDSժ2.L1}  {NE ? gxQ/v޿(I p^D;'l]K4 B)s'FW.bw & /ڈ% S09MF vm?q dK J٢ So 8z"}mCo+--:G&}1q!Rօѫ -a&pT/r0ARo9Be iqS4uO<iGAI{ϝb J/[x3 4 *ү(#;u*(#>Q~ov F e)k4 d j]! s3J aZM8 *![H~=J1;/k j <A 4C0֬E "Ag'C"D 6 8  $bh2 n< `  ݙRG Bzd% @F^P\] ^x-1JH`whO+&&޵V p z yq 1.c _Zy*~N. y Kpذ_;*d e#fGjcn t8^ח igZ!em.Y.f @+w\'{92m/%HO!( q0^&')v+'bD:@>b M /Z, f `Jg $ %bf] ;8 $<,o#hC (.xA ~D}C. =Q2{އ  |IR]Ԯ7 /YIС1 FsnzKeNuueTح :)!/.ҝÀ#>)s|^wG yE . _&~Q " ؤ W(Iά%+ -w ii WG:ܧ,lԎ:[ +nƍh1@C1(D)nJ & 1_a,_ۈ2}!2O C&=Q5 3f}2KԼ -C |!5f/%Э nLL0( ~-M 7y ]$  `-z&0nd!c=w$&C$#-jlp 8t f- ;ab. |;!.P+cj:H2ЗXWR$+.-K(ߋmBXx[7\D,%E is 4$΍ȵ"7a IΪ ./a1?]g3Uf`D b)xcmoF@&.)&/t$ :Vr-y7 73'Ty i`\k| v| $ azI/dT՜ihjzqo~^Y)H `PbV4T_. r ;,$yۣ=d[i HbYH) 0Q&9  P  u*ָE/bHs!5Y_A 3wl %DڍDSthjy_Y // rn*E-'!DI  gfvx` ӿhbkh{*ѡoQ ߮](36gam9a &$VYj qZr,#))D:OY1s5nE u %g4x& 6\fc;aP_  /`l{=xL ,?݊?cRM;&C }6R.Y!^_H" kW \ X*dE) h.7 `"~$F$##FX[,TǨ79,R Gh1^hy= %,f  i1'X4r AeGp)"#R. 77Z< 2c _i8%z ,xFlE j?  E4]+9L'r D =+S)5%U>x92 N~J1*@ % "% %V { 2 -K.#27?y8#2 t}6`s&fm%$C-|VF7goC~^V7RǹS!M F7uZ_ 'L nZ*3| `x##6  y8JҌVq F h$8ކ? Z1X`--q~:}o1r. q!ش])4 k18]Y7\Q&?, ܬ%ά /&xu?tSW W1IOp^  D.G :j9Oo %3`ȏ'* M" !! #4/su?F\[a-f(\T{ " 5tj _b|E  {d Zj P XI@ q?#Q"OK\qx>Qs) Key-nŷ/݋ 4T /K%]!-rq-h>0y s!y;9 r `ވ U^oA }SR;G@e'z$ oipFq7#*1D䡽̤y$,fBH5#>K !9&]#eB {.o;( ~ }G  \6/ ['kv&*{"x Cx{_!# xޝ!OPN n#py' pOI|"豿$((bڴE*2E&d `:*= ju 6 # yS" Ц=M(b' Zbu& SN/z2 #n dl7Z+%0ȱ>89 avCNZ'd-%)1\+H-i q 1&:KЏ jZ/{e&^E&j8Y_ : _ C/ j`yJ =(8 Mu6 eݲW!gi 4OVs91"9  ~szy*/vj9 eN] !`cP&fkX]k%bZ*v P gt = lR G ]y #-K;4 #"3  NT%i /ׂ%f;MhEUGKL ,9G f,: ; Z$ ; 9ߺ# !~6  7As]3E ,) +   Qk-sUF5k "  %W*A> Y Y wۉ a:'%'S} , k   AX%l@ d# JA@2' /4g>1 _ e .Nm$&GGF ThS <;{CQlͫXyOX "e #p IhB&=. " t*/8"ߝ߾*K 6;I\u3$8 NQ#6!~eH N"bҸ '`k, 6e0X%/Tv] ?(k7Nld ,oS=h P[ J /=qh,* ?b(.YU^'ܚb)H Hzz)W#݉5& z/ܯ 5Ǟ1=Jwj 4*g &m~>^Z,oR5_ (<; y+<m }Yk{B4@XL"b `pE vD)*Fӄ 'J,(m) $KJ@yH>}w3= "&c /L )j[+[G #@ GaO3! >#=4=OK Se(eZFQ2;_`% I cvB'm8v W ڥ  XuyևTK )Nh%C~% zI|+ ԯ7V32$paW#ur"<@EMHC=)PM I  |!{ & 2|ycMZ " ^ P**ϴ@>׎L /. 3[5-}ӨZ H +hih߁ J*Rc|@B%G kI hy 3ԏ%3jbB/P&5jgk- ipgO,%t D[ }9m{H qX%+71 {)f "l ӯp#,,A xu ^F!qևɞ%6 . z }h n( 6w& BvVFhwۖ`)d&W >!wgH u<%'re (bS(&f+k k&j Y1&> RV ?b$# StQ Ob\_޽r $W 7T1 t"B,-r ~p]G1 &_b &: %QQ&!:*e%ڶk x^z!]!|7\ E [~ r'!R< #L KL< _!2BhBHs 4D" {ٶ M(~ %$6P  Q TQJ7p SW2I%:ݿ '4܄#] `ߨd s_k" YGjG)7߭ M&4 g&rX6 I2jސL7 u )`N ~ 3&׶j'D\1 b8 6 H 49!$LX^ 6l2- Mٸ0' N$+%  ޺Q{ 5+ un Vw Ha7)7U:`V) &"1 ^% >xH; p3/ l y^1z$bC| -=7)  OW5,(J3W=! $&:7 1;DԪ5֞FM>> ]aEW+8X"I']6 5 ~3 t׿^!$K %$|ҳcVz"2US Q [}*pOY~hg2X #e D wra ML4o~ O2  dة*o &+'ܢ ,&Mxw.  \]#;k&aj .ac eV`  CUQ,tQ V'x3& ] wE$Aq`%(gj K8I L8KST|r9#%*'mA M `޽+oJZ + -Z"ff ;vkس~.^ *6 5 0YjO! kW0` + _n}F3 Zy%! 0m:C "1фe,2ry;1 e* Ud4}':CKXwQ : KxdV:UL\2m %WQmm- 7ѣL,Mܕt(!)n"(3Y/YTkm/ 4jD 9f6 7dY lK @ir3!<#h& |.i 0 b 3nb,+@;> :"m#9Ez A "5) tG%L@IS $mEp # S| ߞ*K#%[,7  s4 b&,z"E=)ݑs V `M.ã  De 'l  E C (Kpޒ@[ j)<ԉgT3F\]- Y?Ep@ , B6 & A+,oU! YEZi`o wQ7s$ ٙ & . $+2g `)ի%-U$ :K{ +x.!  [z.tR=[l H܎j%7HCi x u w Fr<2 &:S`0ICpH ~=gFv/`GCQ26Q |( /(V Xl@} kD \p+Ly %e#|I%$+&"S9"(W,;qkc}') ;0 "]Y* #{3Rgy_ bK-5w,Vl#Z+ FQJo wйݯJڴ#+u-r+l.ag~: *0HS=A %C+4ƞR1%@ ? 52m=) 8.q>()0t-% p#K$D$0Vڌ$^!Uzpr֢z%5.Og%D)|%  w  :| HS!&  9 (` u (X "8)=,3* W<-Iڏ"+; =>l =@.M5 Ƕ9 F| D r|dgރ S!4!шw :Uv<wz"_+!8+XTm!' X^  OBi +'M  I!Xo3.F |a^)-t޲K1?DùE  U!P C a%[(߸ӹ1)$b>%J"% Z3a' e 3;3 >zh L̫\ }9fe '*Oer \' (J 6/ [ޙ 0yn(I++ ,u Uf L 17'3,; hzVm(R :24X % :\ ,c QpK1$/0~Oqj4yD ^ , #@![8s< ^>*iMXjL=$#1 }y /N 66)E=<ڨv!/V('^kx%YDbMu{"_ D ":Ռ]uJ7a gZ q(I)v[ :mw VhN<7 < "2j4 >zGK c4 iY S) F&.tQ" *OYSX-g ^?xb-)"$ܜ D*(L):K s D |GoT _Wq  p $x t_(q  }  p<܁י*%xtE#~6 y? g-!8و Fyځ-1F' ܅rY%0?ޮ1@ [Le{pj^2% Yzca(p =3-."p&; 1o]K9 R+b /Q0= R_n H },ub 0AJ6; 4 $Ӝ % J3-SM!i "kqݚ/l1~ Nt@ UjB'GPD` jQ cE!M(Co%"͋8{$]~J.d ! ˺(+'$nDg%"^vaTSX3.+Yf 1jU"!ڮ `5#8s_X%]L1QBC : L$WqL; (!,%)fiS 1"]V3H! 0RQ10 +c{9r<  ]9 q= P?} i4)9c0&wت!hvE E ӨB#. {6$L,#* = "~j1ieH(NY V}7fA o#'Wz( 5 $3D8 3 XI7 @%i  ' pHC&g d  gaIP&{'o|e1/ l} j  fRLuD)rGH-\m+ D_44 հyp+dӵwJ i.- Yp ` a0\ a 3j%/SQ P\1 $UC!7 ./(oh{:+-zT,ޡ_)NWxm0(.@6 4 ]/ `i hV mD;~{ gX0b -" UY iS/ 'ݗwwx "1j+ӹ%:W cdY9 \d"  y o1  =;'yAIVoB0 GB,Q5 } `|f5D^,c!~,0E )޹*Jy'-%y"#$s25@3  2PHP " ؂99l#*be+ @  ]t{9 b2 f Q$XlG F )P }  $BIt9^ 1] %P!qx+_ ,[  2|y뀿Lvo5ϱ$@(~p=H#2z&J^& ]b R. 0 N[+ 2o2r5#88 Rx u$#0rJ 0YHO  KݽCG,r,%syI2  l~ǝ";*Dh8 "#j΁LBT+<Կ@N2l,x(Mm p" 94(^z12$n%D V. "!_ 0lbQ'Pc$KO  ׳M S &?:zN(>*' ,_, ?& *!&LN$W64 F`#s?#IӤ-6'xD"R, b&+zB }k YqRuw:` e  J j (4 ,W ?][i_ Wp rN 6>$?@Э y7 #P^3 =/HQ H.Tj~LR7}DM* +$E} `M } BU%4u($)4b4  p"!s gh ,""}{l "k, `2Az qʈGs lO. 5`/.b> g4 b Q 81Z 3 3Ȧq9'g $E zM;zS D`1jq' 3S &ԛZ+.C ~J`m.Q O 0:H   1-1*M FRc0 M; 9^f gM܃7 T]", $! Ax&c)*߰9-x*~ORx[[+;HJ #-mdNN9 H+[s5d&j4/ u: y {h;y!v:'tʭߴj7Rφ9q#^#*ś3Aqq5 `t} (IE"Y ,]Jdf",g Kt) !\3& 7`g | ((2Z`'InA?9!];1 =Я%!!ܢ hS\M't4k + S~ F ~s*)s,M"w `N, Bӿ+e"a ^e 0!lr8#! v' ]j.5p % XV\Zd xJxZ9,Xc!i8[3 B*/jrCY P^ .. YW;թ ߩKyI( s0i 2 SAKC>h%?xGnjph ^hgy6  @xsqM@ )޼@ O W$j!kl8$Y-f@ / &Z۸31= !X6k  aA:^ xCj' }-HwCP#" L 3g#ufΎ;c_  Z V , |g yTN5 Ra %pwRFQ  xܟ&D2!$g-(: J(G QH&sT ,)hӾf|H\0  "} ښ6)B'l# !&d7Fd=.t,&+5| cH { qC} R/q !~K(؏s$sVʥ2/ +e9Km A d-Ƣ~0ۙ1!u5 O!UGP8d bc@s.{~kY K Z _h+&(Qu':.z!a`n 4Fm4Z qsg  *`0Q^z %yh'OOo L}m IXV 4 sD&5G ϋUR.J3  A9+Ri-'dօK+N: @*-h h^g/L.!l8$+ Ft$G: |Ԉ .-Ahz :? {B %'\)( "+!Ak!.Q0 y b aBt9 vآKJמۮ ,ծ"Hf> +Gp 1"1(Wo_ zIj$f0l Hv [0_^@  MKzzmgu33a;2e1@[!PXy#qv[:#4, R']  &6-;9 "Z ,`%YA<fthSl %qn=&2,ݩqsm$%8L \ {J(d )mMr&W!ek_qND hTC_&x-&=/Zl!%HM 3-"Y126?"CkbOQLt @  Y(^ cg(+b0 $wu9U ?Z Y 5Mn&P3by! y%*_!!f  t [ 4k.!F^<+"i cTjVQ8bl Wz_ 9l4| ~61,jj$nm L4ax%)x9kCyVy om+RRR %Uv?eVM1{.{H Iq6ϮmJ n Lgo;vЕ$!QQ . MD|#y 1$,[  29{@&o2 j%I HCA I 5n gx^ ;*jZي5Ye__gC! uN NWA{Mܚ nA' *`!q$' />k/l('1&m * C' 4U]Q$\w Dw-/, !-q." +U i&j mA aPp {,O *6'%W#3:.{ )@pK4RB/  Rd$0"5Ś< #B1;ch"l/Z G UAY9 iuQ l~ XfT(Pf SQRܑ",&[4~)OX ^  (Y^'X) /; ރ3,Q ܏uG _XU*L]+ZW  2 9A ~!Or^rs)K ٸ j6)} l6O[-D`QJ tH XP #&L P?m;2fu(6 -,/um%;2}-/ ?o( k"A\ q|A$ \3//2' > Dan-<:B*߄\cxdF60DMObs a h7q[S (_ 7/գn#[4x Ae#/8}%Vq+Z5V. / *_  Ag5G 3{ geW e "I!Ph6ٝ;(Y 5D.2  P.-X^7 q , !]c`(0  |F*ib`19UpBec;4Gz$(K8 c^% GZ/g[@ kp5 &MW[bQ _6 :+e}F*n>l e " Sj] egߎ(5cNv!+z5X/ڿ$?4 U~i h  cFà n 1__ j*p ~ڿ :!ޡ\ )Q,YW  Rט A2~!  T\W [,XT P;8u  \ip1M{x!+k3L ,4flڷ `(M! mX,S s,v0ۗ A, m U#)M}1T0;5sw TO|%&  v8+v05JSG\$bil,$ o͠ E+1e7d3x]j2'S~ܻ  Q !б1 -D7  (_[L qH!5Yg2V &Ƒ+.wf>R)l  ;l -@ / Pe xm!Zf& u !W.% lUkC zy#M/(2%S] V e%/["  yA B ?%**5:fNډP# @ T'T釽Bb K^y1J6R_[H7  ^W"&2X!7ٲ- Ce`ݛ+׍FPl(<jGSK 5>!YP 8zXU bm D #.#'Z [8Dc L!bUHp6qM&y%ؑ(#cʾg~ 'Fۿ7Jʑ#U _v 36P f~Uf MAfT ho *&xIw^g-  U{T Q 4Mi >H RG)MKL* 6[ަ0 XkB # {5ӄ1 &t1 H]PM9 3yfYHO {[Cr% خB);yT̞p"~6fnd i4xT(  1%Ĕ~>"ݡ;$z bD~!(c0{K~!c +7iL = S } n]-6I71,! ҋpkB7q  OY; eR ߀- slI` 05U$!*x=9*> v &f&r  ($.j+˛!D5p,F9/G  6F;{I ; ~ UI XC F(i PEeQ)0<% N ձr dn{b) ]fr }vWSfHOW rb !Kb K ! Y 9*u6t$ ,!`D</oqI': ׽3,lb}M+< yTE.u."مȫY7 /- -O. \$oF "0 !sS8  k@ t 4P!umH 4 d!V 4q<1` 5 *$"tq?8,Uk9m, gl MPs);q,! dI mS vLN;/$(U + l *#1 % ZkW5K6w - V.h5  pi҆h33U@6 ^ (A#;&|(&n.] G \v40eՂF!TX/ Pt('%Ȥtg\nc& 0Ƕ~*fQ3 _ T[+8 0 V T J=9$ a )U%L !c~%l>!+ P3t 2 Y6O!&"$ "i;G m'qz=7F ] V1K""us *3 Ozr ) +nr'sP% (4|t!^kC*HcR} g ,:"fpHaoxc g Hp,x d hL@=~$CT$tla i 9xp i U1 1#  A 7Y :(' Ք84]z8 16 KU" oN )r"L 4 ]3_ %F 1Q rGQ_2 i܊4<o 2"  B-jN  (vTՕc0Y4Y b( jirG9 .<RU =?-  tp pB"-{$ 5Z$?( wG g K Rf q_IuDKN)V ۂ% Tpqb(\!ZT6%q3 H?$ _4|uؒ  wp)Y e(XQ Z 6yd ttRKuLܮZeQ /` _ s@ 7vF&p ռ$$n t>_0t75M4Ax@+g"1%//'}( [8 " ɂ18] gZCݙ\ 6z!])G=O y v '$ rZ Y Jy6J3x)9$} f:Cs0 e:AܦdhE1pP9q+l5H 1 lV>8# *zbQ %E) r7Ӑ jA%2w w& 9q*TcF$(EXM w 8I$> v-r)qfC o׽=-9C3|=[Jeey ^5%Ba0_ s*B U˜غTӦҧg>$0 ( 3`vV[ e!)$^i !|M(X " ogkI` WW c, 5.C z5.(v՜ U!ݱյynA_ Z7 #~9t'ZбG e!)+"&iXk 7Z#<nc;L# m=,[!cw %Qn k!Y&{Gq)(ݗ/42j~z3 & .mߗ]Ok_&  ]'cFfd E.#pɽF0.*j, ןY6w0 |#5-=)j};i^5PN_SlQxWRj5= L?\ j\1w u [jR<~o V c &ϋA9%dD,|e, ًh$6h,{.D 2S_()I7 )*ay o-9.-Dkؗ!1ooib3y9/nj'CW,nQnt sb dC+g'O' 4%\x"2:-]>k/Zqeؒ!+:\4 _ B7SF  T7  MUl* . #6L 7 D?". pg%w<ԅНxe3A+X'4 ][0 N҂j[B. u%Tja2, <W<&0hR+5D`&1 Bdk&o C3Fnd u$ej] Kd,J EۍB2 $E{ ' J' a4 ?]s| 6 IR Cao)J~$'*pBOwD !XoozDt [ /o:!(bAxxL0 :1Cj(XH6LV %[o:  "rRH%N^ [ 4 )@4NZ$9K i+et/9V VPr [ %;+ 6-ӓ::ZC E$  Er  cX< Xt/vx0 Lb~v&:(894 ӕ:#@v|W M 9d*enNҺ /;a#Dε L%h._ -DGol/gLZ`֙+* x  ;] p4 Ӱ ;"! +/ Jxu=0' _ cI>u8 8~};rN 5GN*C g&o :/Ob @\ W 6&c =0"UzB ^ R-2x5:<$t' 1eIK#!ݕ 1 ^ۙ t!=y>G 'i K n3y R1~ Y3?: / n&  ^J"-v82`9)%ASa>(i6(H Zy 5 hiz&1^wQ.bp"K%\h$7  'M!\NB)) %P  >pY T -a w V$&Pw {a AHCX M $ {$ p% mfW= '8h' + -u6Jb3`1ʍ! ULkB eYK ޾ NNt (8xZ5e0 v(%$D$M*Z 3-X?p]*j,7h)!8x/o h4 PE|*4L%S {/:8C -+^ wlsx z oh Dqh7 3a-A , k8D'#DN u=_ !sALF #! =X"^ >B "hK b(W3C]ok)Q:^)" 9 a c6 ܨ D.N;# 7 g)ݠ_^ks! i D  j=  ",R22#х"v+W~ {Q8 $U%EmA=~&8x }xdc "L9i4Zv MXt)Y ~ r_v'O#C ;&skKp53~ McЅ\ zfp-(UKXnQk NKs  TG%j`9d#D 9g > ;ެyJ-b ekjMx#% P ֛mǚۈ#F1j Bc <p) Mؿ.!(O3V J4 =3e /M 42 Y  9b,&ߘ 1;* W:ݖ&MB3'` ' C?~Q5^/-bJ1V^OP uVs.S\ q=qlG' ە~C"|ʼn !ZRKd 5t` g1# iS ='# 5 TdVbd62&J/N*  /7`l K!dKeO!3t֚+1,=+-(?iK yɖ&f_'Dи$e'0b`/\4YmD"d%J f.y7@&x~e\ | +CI\,% .w!$ ^&"$|>P$~hzI #'C Ӛ++Bl F8 : } 2 e h#dPZ sUj6#(/ҝ "t T?+HDj 0 >#q1 _0#A lG l-b c&% F}cM_ c : ,(w 6S v"A .%55 js_ X?] +{z{t5b)|%%VH.@ %Oubd.._X)/> T]A3W:=N CsiQ i I |J+]y!hv1&@pu MJI/H % . %%N  $݉'%Y?e2 8֦F @% ]#^fNe/&Z  /.mOe%iy#=#+:=[o *D` jb+Q %5`3, !(-R~\|]> { y LM hw |^L?V! e EyIJ1$_ 1Eޠ @I;H tJX q H7_ G0.K!CrOa }qZ/[~S%bC~X? *_ ;io % <;5-+w9yQA yלbl8S >m-Ly- l9 MX  4 n%5[+cX ?=$ 4!1)&3Qv H+s# .PKԾ'/8T>3JMf)X+ kߠu% j==R^ zYN t;_ %n[;4G pձPxfCwA b}t$* U  wde,! k ku sx vj7 !^B!qI*6B b o?A^(D4 {z %֟D'Uay") s e Hj!=  [$اV>ML+<$ܿ26'&ml   Yւ('1ֳ!1$!-4my"'1 .%}H +#D ;!q 8ݳU MJ e 6 &#4=6-~}hi3*Z7 !SJT$CM*B$۶U*cT\Vz B2;)ar6(O G$b?!!Q vr"J15 qn F) >4 1'.ؔն&G'ڐ|Q)jCP 2%&+N +* #Bh8g4, o@%P(Nf/  ~,B[)L9 ZIܖ&*7Z{C( ;!۴.md)j)qFk$ b&5%ն"XDYs ,oH'a eTS*Q ?h ; hfM pQa$Ϳ-T5Kt ~q'Q&Áa+ Az sr fT~t NCIZu}O @Pw #(  ~IZ# jSK1 yi S7.H"nFFlY\  [~4oOOA y c(&J :m9  !MOLi ( !$MI"/.@$k"(dcnV5'*hw &q2)K/wdK g% WCf 5#a<M&oF/k0</*.X c9 4j6c t#a HlۦM]x Jdz ;Jn}s;~5 T1 ',)? ,Ol<F @jƪ֭a&J\RAM [y 'QV ?&,t]=,!31v5.c+&Wk('$]C ): $vm`!l,s Hr)Q7}I3 qW& ٘01_$U ;Z'J   J ,QiW&-{9 L E,rWs*O'@ AtZܭU:)x%!:04{0] ڎM#( f6|FߋM'/zG٬V]61͇w6 o_A+9L(t6H͏ Y9 _&rm tK}r P`$!-] fDX] xvq+M  '!9[X!eOQ xܭm(m,a j|(N/ +\ 0W+ d/J mcI [-8aawӳE r2 #%[A1 +Z %  !w+@o@Eg o!Er!Kf8f(y#.jDk '` cO lR H &vZ Nt c9:VEcN!1 <>%c9DPќ5%bR/2HG #qX 4/ޝ4 W/+ A 8 4 # ,VB K#7i7 Mh@i pu 2W  ޔs ݤ?!= okj \%*R;F0  *nxj'QK2 k Kr`ɢ&}SD Lض?v/x#(5ˮ~$> ޚ4 :6 @aGlk1BD  ͹("lScW_ #A A m8c{l m8\W 12dՐ.|j&$ P'* :0,24|):V ң*u OM  { e"9#?%"Lr  ڱ"yje$Q8 ; Yp;Ex 9٤ R~t2# #  B p. N:%#jBәV gu@/ ^hS,L hXظ8)[V0 $~!_; &s{ s F7 ),ѺҜb y 3ump94L5 u$c'hev-H 0yG)!|; j )!Ro Dw  Ha jvO5 > 60Jy.Jp;R&) 1Dt M  >!5 @ * ٲ+*> 3!"V ",'SY\ Dc#| };I TS&= f\~8R'l B$ 0MԮ}lfs 4wMn=\ a UG3I<m  V 2/ -Dm^ Z-I8# c N8"(\ Cjѵ+? &v X4p"A f;%&5 M*/P} ; Lxm O Դ'6 3~qq+S.uZ \j9u>& $F8hFTiDPd&ZR@I j):Y6Rw!k B X!A!MU.+>-]('M"8$&iEڌ &%OA@!{ N Y@J I.6V|>z  9QVK}  ڽ,*2Sр b-$ԅ$"`4 k:!@0B^q{P<U j#T A *..ʾ= 4 *I c~ K._ $7 &20'jb#~TO%wDo gE$ >BdݍW .~]YSJ(@L Agrd 7[ 91; j1N 7= MIYs "nת 9 q*x yVJ 4q_GS\Px Js!);5TW4'wk D:Q   zI+(#jHX2"y -]1Z .!*/ ^A@rv'R)/>$0&Y!pر1 e?CS2$ARij33g) $* ]4Եs1JW74/zB t "2 /aF Si۽^ NdRh Ay-F/ш /%Bwljr P5+!e9h (1Py^< t0b  ?9gTu p&  X =24v28 ,  l,""k P-O} .h2#_!>Uu !*S ɉ9 xS})Llu #) PQ aT3# #ar k)p|0[LUj1. wl% H/TR',%_ s>E[3 4. G "yB1q( )_ u K!(@pܠ m&i)؄X P#vّ `.11!Wę " 1|C2Rn9-1q0z.?%[~ wQ #  ?h& 5w +jvkw<  LZ t`rG EyZ+Dd ^9ZQR"A57wCuC _!\$ Z] 0 ' E* 5 v= bX"((7&g#^ّ{ONbcy!06I;2Y'D +hߪHs.0A@ S% r5C!  , !& nR9 MR B918.άJ< ]d)J'Eޝ}%I =BSqny ^\ I1g xb ?Н!') ͔J88u }5rܒm "R B 7rq f `& |B^* _  *  '*$ L )* ku ]w.6ܦ `p <$--jj'4RQUB Am<^G] Es,c/!NCN}%Pq oP_ ; v3ba*6(#A(3 H pe3PtHm u '>`) s !@kXy)(D  _]yMWi mMO&GR6;3#x$f   f= Hm6 1q2&k k9#3<0  \9  4c;S Vd 2߯*X: `VwhC M5% [ z_uX ݻ# 5?M+&& !~ ~7*"o(pQ 2jw-PA  d ! Ih. 6]$G6#N .ijYB^OF 0YX64- W  Uj+D'N'dD$(lgsI$؄?K X*r ݢ q (Qh I&kٱ _ \z  JGd, J\ :# `Y Q :S> Ys e g vo=@%I\`WRNlUw JX cx\(%8y Y% @y '}Ld$.!) bg2iM2{ 4?p %d>Lgz_bHm P/KO a-P19@>|%_#?'s$uA */Wt"#)LYE"8a 'xW, @5>#(,bo!!G - n-isNyuy  )( \@iZ#Y+ ; 5 LD5J ߳OT!~B;W'%2B\ "m" ԜҪ'+ X `ۑ0L s/+܋ 45 ) *~x L Tnm( 2\  B=~ J ,2/v9ݛ(+l- C~,m%j8 8y a4#?EronoS%^$ZfA)   , tO0=C( RI8/ " IAZXql|J&%ELP2Y&  H 6&%@ 6~ ٹ +7D *(EL +~13+AM* R+m +c{Pc-#_yψ$$ԊJoҜ^/g[is':@  D cf> ^\ Id+BAJ =g1A+; i"p$=- 2D]ݤY ~$t"5 }#/ WJ  :?{  =)! J(.Z5&{ ܩǢ>*wFN yAF*Nt1Ub~+1s/K q e 1@q*> "_Y3CA\#rUHbF))+QԱj"e#5!eZ%Cam/;⹽ߧ&l K >   U!"!֧gO gpvvl A /=W9g8%wR#^5/s.j_ 6Ӟy u/SupI)j _ ;) 0 >oK,0ݶ ~ _OU(P'k &$5K$Ѕ'JEB'C u^"6r6  J'35#ݫ/ :` L%Z'[ߋ j[ %:<S_QUA&Gߠ74% J!&^57;!ޒ I |,TXy;&" a ohқ1F132#0u-cY 7#6_(M~ 49  J] #'-t?݂z VfGT\I7 ,rp+1՜03ԬHvX >a  tO&-:t2e v 6bP&_ =[e'>X k `W #<uCPl דi L(^>8  d E?0 SxF)}5k Ib%c  V|f ZNr'"~'J|4" (Y ڑP[-3 7+fb!\' {B 5  IX *(  \I޽   y$G [Oo #;W˅u 92 fWnRIٮQ)Q__d3d.&V,7.y 8u@DDQ< O f\ TX@!RPܮ  _^Ptj ߎ, uK0!4Ow a  $sޗ -I)FJJ8/*Kg{["xg "#`(f*Yq ?W|  ; E!io }mr+F.S#09Q ; 6q );  Qak*&eء"!(i Z)H 9 @8a&Z pQT l<]?(W,1ax3!(@R߯@U p J-V*٩*+kqNC)25 NV޷޿!T,;Es'O(`p,OFyr I j= m i$ \=XW(\pO GQU s#7BZ ?0 jCh[+z^21Oٚѓ+F, WNdA;$91 5$SΙ( 5d{&bs+/F Eu"īN"; b ,) U 0451-1wd4;1 'ET q YN0O  p~N H@)NuL{opZ 4,tT')A!l'8.Րe ~k >Jph3{ ?uh&K; " ;0; YsAAC /nߍb$.UULL>UJ 7@"< X SmXoD |ٰ0 $/ulR &@HԖ _Op /yխ C/gHǹ/%޳IPO wR]6 X  <k=Bޠ$K) K N% f&N<5\9kN#'&G/D_r%|jGK $^*BV v@kd JSD }NZD{Rn F AM)V/?AGUh. Zӳpn ;/+kR X(`w)*X@7,\= ݂}  U0@ "I-ERj`N[ K/ H0 >S)T W -B$n \I qk $gT S +"/Ԧ%-w.nI,)9+DMK@%n %} w4X%;"(Ud t -2#s+D*gԇ! U Vva ]LiPs )0x, V yYAq {h~3 lBj0%&%IgI._ڞ:$*!ٸ2"% ^ "v Q",@!7>@ (-) Rm)' EX g-#a/ ־ ! Z4) KJv :QQfZ  )*ä3&+tEkƿ X  D,j"?= B ! " QpI0#wxܤ ^ 87ef<%!6Z[UM~ݓ0">q(IZ }fQ|Y + '&@T~3 Tw f v͙" Y L*-l9T(\"$+.i7)H(NG/.$m _ h&aA t>oz % B q  O]8M"H+ 9} x~a ) @dsO34\  Q(o w?eM FGkWD1 rU ,:ىt !"O (bFd 8y / f+&5P + GuQa(n ,5!%$3l;p0*Q7u!0W+Jha 4n/  KP+D2>ސ(0s#O}`p-1V^,Q.'WH{ dD fB%n5Ę5/+I \8 ۙ`$d"%"&W. tT!." f=3Iq( }MW%I3*d Ҟ6 ItbT&!V pD\, _ 0"}<+:J:w :Q:/3)+e~ PFDW!M X & < &H $ '\y \d AZ 4XU  Vn}sE A0-/A!<J[#_[J)ަ /1QݔT+i }SW!]&  ==^HF&ڰEtc H / XB#437"04[+h J:Q P5Y~#da1qoU-TU/Q6VBis  BzIb  2*N1k.{E ] P`9 &vY"3/H Q%ܑ 2WN R-}"ec.e vmxLl1l~Y-8$ :-Y72GPq7s"X 7" -~ if-" ˹Y8 ' g0 =I ,K%| ptv"RGwg+(S4QY&#u q'!ݣ5d(L#(D IrP QL"( }_" \Iv1 $ #$GSi 3|4~.2MK CW1^ l1 W^# "\ k( +cQ(Ho 1 8 f3C+ׯn E-qS%DMO'TS  jq( _G׫4Ӆ+mT*>)9 :f ۮ[v8KU]̢*% #K.ՄG$;%%3n D kP; :& 6 Hxf(7 evi>S3o!aCQX, 5@"_.W wyuQ(J"_R.'&\ٰ,-@%k ver.'Cg]ˍ/5tD֒#) q|-e 41#WNK w`6 /.9%V~(_ jZ h=7% -]vecL#CeI] Cd%eI "41a 1XjV Hs{`u   9{ 6 ֆO`K u\ /!N7C4QlJ En B<ڀ c R\+M 0 8l^n L ;.$YO$ kީ< D,p'<? ݌`2 Z$r &Փ7%? R%&Y U| 0KukF( PS&LDH'1s8 c#x$ </vd%i p.#=OyUCh5-?ߪ80pCL OXݬ55"> 5"/} zѲ8l!Ҁ! Bc% H!Y%^ZM) 4CP* [ J`o*kb < J6%kwr)`&_ e+? ߁$ 6.+Tߟ@ )XY)I)>(0 u$İ5+Udw] UqWn1U 9ER,ZO iM #$Iٸ E ugspJb{ C~QjT!w" a\#~ER29 `R+L)#A  Y}+{IYZ5QMc7o&NX j ^YiE&!2v&*0] ]pce:#"`9 PEBJ"D] } QSA+ B j: 7N3%Sϲ &  ), 4j3 6 &#,[ 1 ,44֋|=y%[ 7 &#yݶG &PYJ V  vN Ir IRtc%2z-1$(Ӽn`"'.- H#ND!H / .?g2DSP} |^%U6,? 23h! y #u&! 7B6%;%0l8DpdQ  )LЧ"Qܳ [ 2--M49^u^; a&y/ !}UwoaK )qyf 7@n7Ro8K~E=& K/1Wp<!#Q\ ؄w (Ab.My n T! B ) V8Wp/q)GrW*m0̩~  Ce Q-!kHLJ    Mʻf fݘq5 Ib jZLt { 0zl1|M bQ \KP  ? @c ) 'O |/R9 ܲ#TST Nvg@ Yς$ G`[}(:+#X؞= 5k-d#P` @ 6 :-0Ί6/&& fYG&[ UD#S*=#} G.&پʿ B@ C< vL+"!, tލ$.ݿ 5g _M V=dn/fx$]#!4J`! L  _}8nsT@aC]uO NZ \˙˪`fQ F![(t(Ԅ"yqMsOU !bA#ة*!PGRa F]VY w{Y?{' 7 $ z |y^" {h'd t@  ~-ws49 &lr !p" i} )] UA٥ T 9\0){]J!})!o "Sl{F Ts|h$ ݺ.` ?TZ   4R #.0(@': 8%'!4*  :$ $))Ԕhi7mm˖) i  G -x ZaM}WE, 4< q0J>4i  $ ]T\ܶ*:}zB V5T  ,uDcX$  ^ f+ և (!0$ڄ am   e, y O ?O $S {@Yզ C x- Z ^jBA.| enNq'd˫$!ZlN*_C6E'$>d-p" {xK 8?4._ŊA$) {y~]: . : BdЈ@,t-% -  h>3 bL MTsS GuM00E|v2 U&{!!A%E9kwpe D \8x?Ot LiI2^kٳ APgS9c !"E [٣)#E 0)Q| fBcIS Xw 98A d ]D]_1. Q0Eϸ9Q $ 3ѝb("@#k3jc'Z dX }$ 5-2.qo'Xjr .Mh*^4%8ك}#t SZ,Y7{1`d $&ݾ#@ \fBX ny- {)0LT @ d?VH!  iB;{Z9k'}IVY vi[z1אN 28w)^cV1Fvh8zoUE6(|VL!SH D/% "~ ]X#'oǞ#$*nۀ&vS. Լy3)T>+L HQe3Y0rgFg&)s5 _N ,!ÿ(4 _"BԈK 0# "2G$" 1>X '5.LO Dc0:d*rN 'tu;& z'y 2+ FB! 1R-*yԸf :u9 49"G'$piNOl O  5Fy22tytjnyBl) E|$ ؚG~TTdV 8[ 7a8 19ޡ-GTj:& ' 9К S ? s2g a-& tY9L H;"U BB ,cTU8/g )f  $k&t!d$/ q&#Q--5x \ǷN^ % F9`] d>;)Lnc% m 5V$& op$P|{UY XAmj [= >L$89(ڃi ' vWW7K[pfV X>a5g|xF"d80 c0$'W 16G"`J&Jo5O'9 pg.  k],$vRݨ!OfB'81|#_3Cޠ$%sB !G< A9 fY uQ-;_e (9f> +Jurj XV'$}A|@(i->X$S"H ]Mݭ%kav*lACԽKJ!z0T |s#[{L r j ѳ65s 7,RUc+1#. &ܴ Iݝwl.c1abraG %X-A| s O_`Fu3 n*q7 N I{!Dd3/NMډ ;P >atu 1a;..WBRAR_-9+U(y Uh]:R5 +Jʟ ,# R, 5n., E/% 3:X i=<u:2R-}!]#bTӒf\rڸ #V '%1ڿ(aC;5kS,F9  A|= N" K/Q[|c E &*݋׊D4q I?DI>L I# 1UbضRyP `-t8F8}," q~$ 6 )&&)[+.lLO y#? `   [>(. &w"ۯ MDf#ie YM[ mP!_ j 'g"0fuD!E 8K/8R Cf sIn ^IU]g Q&W ,= F ?P # +N:boj& ޗ˃@%RdA 31 0o +եB)Y ` f#"&z mf1 rk;M%M /mg &K m]I} `C "5oC  Q l B=+-,Zi)2Mő2 4r0Q  6"1 YM 7 GC?-X F_?mM}l "$j7 9AE/=ui#,'l pټ -Oq`(1YBaXj$L #%L-}L:  8c5!)\Կ> 0v} Z>mT D.I>1$l% 5-QP1M k)AbX$o Ns*"$s 1]F4F Zv1c 6&b2N * 3qd-fj@Ճ %SS"7  `Mp.Pi* $@&7::/rd3b gޭr'~](Yb*|y,##&JNS{ '#wƶ߭j E ]A)uI&g'>\O)[Ua< S6. i 5  ? 2 Exج0D^.=\D ',V680{ a Ws!  s @$(,߆z jc^Wl+ _=pQ#>&aٮ G79?>N<; M* ܻ4 A S H.aNR X"- 9e( /NA;?"@eKJ" FkO  e`GW> O?*  'D -jb_NV~JxD" {ޣ N q DT"  jL9(hN7];ߡ)  L ^*;M  $)r .mU R+m/W/ fՇlO{>!ؓ5 CGr&*w A ^23(.?WG- NJ<3 ] Ti(i$=n5*> o(- <6:/7!Kh %-ܴ ,b = C NV~<})6&=De7^R;6| VC ) a +"Cqd&+%r)s R0 /C ڗ`_$ (  B ugsG -s^YZ|TG}igBt04*] ӧ &t۟ ;M"Jj:aX94.Ήϖ<3 OU'q/]mhc c/r-` i4IAyt/./,  &M! D w qcQ5 6>'Q?]f h $ kMXܸ'Qs *"5 ^ $>ۑ(-!*q |r R y ̾.3X% IT/7f M &?+CEd3>_Vބ 81X -" ~o  zK>?`#h &@z6 e) >G+^@g(z FN[e ^m wO5Dn P:$l\ ~L %i% G C3+,={i odp:L$ o ]7T{'+y=iMXW# F] s}~# םQ  o>/PA :$b';VQ odM- a &GF+hb vҘ,ac%3 ч(!& JFVTP _.*EM? ( '^?w(utWow V/i&ރ  /B{0F#Nܞ)*](Á"(l& 7 -[zW18j7   j$Z >"u.3nKI){nt uK1M'}P spe< sg + ߲ J{s Ѡ2Bԙ]%@ fS.KJC 6o^ @nN)D v/1{A /QU <OR@ UK?1\v|2-P[% pna,yR : =[DppW:j 95TK qsh._? 2b,+p!#c 2Hƽt = 0&>v8 o&=k G ;0f(lVvK *H  o%iDg8lIF3JT d+ MU,,jAաg3&-syJT#39E'v2UcY J! !HKOR! |6}A!_r+P#|Q΅N [mTwwu Vx t,j1^T{oLT9T.7d_ "{ >E te +nk~I[Qj8s+ N ] [:$JP-q $Qgi.%L?( hf['@b (l|$a3'* Kp5 m U ~g YXc 6BM@1 !dVc%(>0 D;8] z=1 7 +~r \s   x|Xdi7%0;dr%Dq- ? dX،^.۶ F tkb@Y MD  X5eڰ0/H|&A4C .!> u/ai6(;kn>*)uR'˱-6/  /'A. $XR, T{a_]fD%#V (  "vt%)&oq(#Dڴ [p' Vw v t #q#U JM% > H  Cz$kn -܇,-9(h:#!s*hZRR&(KOj*d :oq? ^ g2rkt uj#wW{ B A  ު ( z()rs0#)GZ #U*a"sZBIJfV"636 (@|V4 }K: ]'' x. { Z+ N:Q NmR 6bڈ< |{ H  P5v.ȿ2- T {, >#@Z|)/\ ;"Dۚ !&ie #)mGal}޴3.X̩b " SPr9l; D[<5r) ItAZy= e#-5yu TiT S3'ˉ" I &*b>0F ^ v ' ]w Pc Y Dn#- 6 c;~ Ajt UIL& # 8{"c 3E, BS%W#!ܴKxC' A Z $_T` IxBW#Tq7"x#BD& _)( S&g!+_[ D=7 dV6[iMT d   k {J1E( [X?19܂=r|&ޤШX] $E* $Y %_ +e {iN&^d 4' J \W$ 9 YiOuX X * GGDz+T2| 6& Z0S]/   #Ԓ=U' my0*0[Td)y`. Z'( 7PP0%@+ 'i hnL o  ?4T ^N/gߥ:h N0px :ғ#^ȯv!I"}A*3k\M- 'f3M B &B1!"-9%\X}  l$2U N T090mo* ? 1 mТ-lh%z' a !yJ5  AQ o \0. v1'  B21(ԏڃa"1 UX2&:&KRJ xVҫ0 ! KsHu<|3R6aD+֬  !P.&#R[( &5X R ]Nvt  pWq &^rG']b85 ~NyKG?%n0 LS1? *;$'SߗoK= B>- ɀTJ!$B2w 2e 1 mUy-?pp@$! ,|( UU'FB12;\$ q(&S l$/(sE  l #0]L$#*h " nճ#91#O9ô'Ui؎ Jly#8 % a CUC[ _n] XC? j 5P8! iw' "476 !݈B>#f9J R QEh 7 Yt#*. *@m9| g!!ϋ "ۤ`2B xE*#D(OLT+IP 4.RS! GLT8\~ '_W(hDP0' &,n8}ۨ-]N3oM ! A#EHZd x 1[ kd c-6# # f qJ _C 1j>] z'  bl 54p ` 1, c"(@ )eQ.#Kn!X  |.e8%@#n%!p3u1)0ܩ.&H {3 <7#V2&"qT! dɑ U $"x-;*14Y [:9 p 3̨ݣ6oä$1rߺ"ĢZ36f٧oRG! aC[{ݧ#0F"wh2 1jҬ?+5x 'Pbg9*J' No.!; op\X\"2 c> Q'% غ2O.PGeM /@4Ȳ5AU[<2(#3#-M# l U*&-yIF D YvkCU.^LGS%uƩ!Ijڰ0T?.D&M* Ej T IQNcP;SZ 11.&"H T If?&] "ar(5\'bC-S Yo"!tZ<Xb-\V rU  E ^G0C>_ - v ' hYk$" ala1i q 9 ^ EX!@x L%?;!11٩5 !Wvz#5% /My+D gE 9Wy*/!v_G0$5 2{. S_ W= By  _|$$ZY!,ض**H8 4xecsg$vVr.(2S3+Qu -"&!:3-)JܚLs Uon_ɶX% CG Hi8@yjV5 V =[6/#' y)D3+S佽;(ݚR ; dvhZ#j<Ln%Vhj&";?nr.|Kp3/)N"wfG1NOvJ%WZ5#6!? )6i 31((g _ x Z@rV B54ACs Ϫ1X J%t !O <\''9v"*i3:ߊWN imHj. [*4'67 fg)AG ;$0 7 /D_  C? S{A $C ~mW$V/ - 9u!66҉q@26{W U  X< aטݸ -p$$@!/ po]Oϊ9-'JT(5;t\1/ ca!0-H ,e|_ 28) % grm07(Y!%` i 9V^B#4/tB>>C-y :2.;4 Y}˘+"< :| r DD\/y .5b2%nL1 0 F/ g  !H+v Cܬ<  E:$ :;rjϠ !-6 Xbޟnk g 2eل$.%!^Ѣ*n  90!0ȓv+x!Oy; ) L?H xT"VB}F K~ @D! uY1 f;5+/B fm|^,2M K܎ނO/ڠ Zp !J%wM5 >ҏ% U, P/ } ޵ !;qln ++Qk  ! ~̐)m WAD\ _ h %+) p<V4?j>/f .#y/^ ^B9 /*=eE&N HL 6&s %/rEEp (])7 0?_t8ErJT~j l&qC{ hJ6Z<|8 fh(1O+ ?[  _^v"Amo'S+&Ssn !* 8?D!; GijX { @ &KNW JP[@L,j#{%_{1Vi8:0:-5gO9 V6 }-eJi % !Ua- - ieތ eqj id[ߌDKM HS B7]mh13Q -ä2T%FU  {$/Q Q)%Hrg<d +)-@ٌۖ2L] $S7o/9sX F $2ovsg   ,ɱs1 0ǿy.(zG/W , )= ݟ? lT Q,<ĺ+ &^ i;w &"_|%9c &5) +  } ;C wa #-e@ ,G($و"K A;-r!$CPS>;-ڸ.lw?}7<nUހo N"K )  `z3) Cr=~FpL z45e^R J# Diu3 5~ uQ_bc <1"E* DlK%txN\ b3[7|7F1-F βPUN$[!' xn2Q# Zb l=+ݓ |O 4\P6?j/BGxFZN\#07+kk !$! R WL/rJf* u"uM`ZK \.I'Sy | ?#&,جM|A u&H*!ӹ$ 4c|1.ؼ$ m-#sRO 4J Nqٜr^.1{,-~*ҿ#,0`%|Fo^}S e"@) 1( |m=v= P!Kհyb$@Y N݋-t+ڂ- ED ` ]g%&q & BWE] ]z2<[7w"`1ԠT yn*Ooc. b~1Z+HS71+ 4 Oӌb)/FO d[|}ڦK#.Mi5D QZA-)3UU+7+̀/ h\ل/I 0aR'o [ / dzPC ;  kҖ&z K {dwh3FVݵ)$2vL= +A "C?XEm|4qBg"s #hށl l/ eQ nCݵ\&ztABpv9J WuC([}#$vM  {)\b~Mk=e op | rt ~ !' ez60^l>hW,k!=r7nyt$&9zMԕx/f)07p  rp CU7b(i!<]$_r'2 x% j!/R}\ ` ~}"(#Cc  dj7-5 !jn`4&3!{%n7:.$Cr eWB^2@j!)%  ?Dl0DwsNR" v!T U a]Id6* *@t -D́.[$b( =/ :3rUVIP gL=]?J%%J+ Za P*!nh"]=; "G ^CEVyZ h;A K  (xX7` 1 $v!&~vX Ax b EBCB t > D jJP+#Xm N  ?|( OZfJD x#l%&?Q ,B(X՚P# ja\eh aѭ/Pf9 (3'v#O ?,bSt:-.  7 w V Zg #=_6pHxM (L3.e'|d{u< jJ/c ujk1m`0t:xlW ' Tpq O fC] uBhG li } m._& ` >S%Z۫ d</}!3ej 4Cr߄ OfZMc_.&bWk   xP'~e/* ,*=1!!!2R 'M =u Z($].T 2 O"w W9< 1B@ aϰJ 6- VA(@Xٺ+Y;,C]X6598~hK 1 C J:,~||!-P^N3-z  c? "*R! $g+ %_w #mz  zT%  *T o0Oэ M~'O *F3%db0lA?BNxk `8'$z+ AD#ApxH*>t I'cc ]%I)jt NN)(49Bq* =* N3п*b*:2gw; .GS+X\!v#-j#4T @ %yk<~ ^(.+QVṈ,<0'x.MԟbE rr"M  5r#7F_ tJ K #? s?u  bpD fs~ x,3׹' .!n4}=|/ ;\XI@zkC!#@ =rEh < &,>$EUc2B b];m9ق({)+P &+p K)4l_}Jqjf !x8 =Q}j+h ,6ن3. 9<b%<(,g <Kc {7" .ePfRKޤI%js~߹5!ڢ&f @_ [x:ڳW(*  `8:ؾ)*O ߠ+05EIw> L -UZf0 Z _ܽ 3R@.Z;w s* 0 #2%/ M@4h!! aڊ G(DKk7Fޝ [ !CJ5?Ml5 ]:X> T`0"ie{>Wѩ$3 P!"mֈջ^, 2 D6!jDL,;6m[ \K# wX & /B8 C ״H W@M7aO e[ :N m7_ -  #s 9ݪo,_:0+2~'' fM*m;fP"[ W!rQXb 9 *&{ daH6\%*1kʲɪ% V fkuaZ $ 8S^24H\ ^ c!_EZ  \S݈\cJvl  e (UϚ; &Q] %2& ߽k$L?~EQ C [ M hN `Q_3`-C-r,h޲(I"UUuav!f(  !# .Ye72W SQ%A* - brn^ V +J>_Urn 7}+ZB</3wX ;p+ '.pHbK.e%1'0d?o"wg#X? C;H N8 J6O   y!pDQy;%F_D 9_kcI( E`P k^ !vs>UJO%'nA Ucqc"3-طx7t M ߋ47 O) 2k% VH% _#*on 9I+3[/{۞ ggj=x1a.X] c  N:ܼ.gO5V {u-, t{ * E7 |qnR? a+? N{.)`E~#V'a-JwCQT2m  Q"@k :t؝ +)E%#hD o07%j /Ӥ 0WT%:`)3زI;/>-h$@: aF zx]a,x5$-U r7c/R~x @A8(ME .%i3;1+eW!*TL] 4k5C!,Y67E @ 69+$pםM%&,Lط p n 2NP:W~ڄ&_B+C  +  >M"`Ԯ+ M; %Т!8FU1F1N  GZ ,/~s e( /5`h"C{ _Si-e4"{&>FK."N7?~Z{kd;(q Cz~A=>#*W`okr <KLJec02qKکo 7 j7`{) s5'd_g}EB%xg; $pLkU iWl~+i_/N g+22")mM'_, _@ 7 ]3 fh&zyBL @DN^ yRy4"/tu8*y!2O c,&[ $W(a+5ܗE!C5 oX@=%$tR5  RIR,{F 3"-23M G$A T=a;,(Y8N4z#:&s^z jib XT#CA,=a0FH\tr m޲)ZM|>$4v@ 6&ۍ} |"#e0] 6*N̨c( Ws$} 8p+et#*p $w'U limփ2E4V %:OR:E' eu . ZhUv>f ǟ1WOg K\VpX"A*blhp1/B ; u` (( ^`/50kf o :zk!e Ax @ 1s Bi lD 9 ~ rr^ .%v&]*ݖo8)CDD>C! E16|I^"1%'#B1} ZO& ~#_ƓI!K0-x4!ZDc6IGro2 (2÷M6n5kߋ> &84 ,l@'"dC(vC {#f G|S |   Z ESC S+h 0 1@ /c' t/J ( <]C. ?O.E'q B] . ["]cWiiz7vXPEWKN9T V2 "& h :CAc 70=˸;  I to)B%UY/1xpϿJ BB66{6 'nbh  Ո37y:Nj04tK"5!Ă.$v"bͫȑ]%dirT#g߬"9yJ B PNj< _R   ",#' (;6 ?2:> ,b[cpV G    NKSn`  I  S B (W EC 3 A vn(2]ζszU zv S?Z)G$ 0$| pal >vM3s|ݱ* 8}N3nX"&T֣ 'ng'a(5?o: M@};-qO)OC o %M 'H4%Y g& { - z|Ze(RK *6lK!\)V8yaa E a!h-v 9W|/ [!c@5Y H^T; C*#Rl{ m :w)fqZ-b LIߝ<2 f1X&p#5d   \xF+w&>ɜls)pDEgx >q%$|c"% qZ wR6,<#4iB=}#LG   ;/=rB~k 1s7j !;G9;aQ!a) > 1q 0 }aL^1<| 'T0nE!  o d]5 S1'CBdeMm?E5zb fݱǺ)4FnsQItx&c dѶ!.4(W peHdݩ le%M?s&>e J,2ɹ Y +N45՞N  *BQ!2k"~[ZLx5}k<(%^Ջbpp 4| ]7"pb-H хs5PC9F{8j߽T Nߖ8*,_$(&Juc 3N *L.\Qi U]=<N-R% w8;++~(6}qW Q9T@ʜq(8&f:_ &WEq [ *+[j#"?ޮB 'ia2 6I3\d52K ,(]0w  B /Z/ G/O C=q 2N7'3n$g79 ط (N#&-J$ G +Eϒ/2+*+ axOP ;Z >y3( z b(dF HU^<.( o C[_+ם]~<y>w9 a( /pc+ZBhw {4 sF`i71g uH ̚*.bx'$s_ !/ '# lE*  He qd!^tQB% %+ S dr  [$)w$! " (9 l&rPFx F/\s' }0*;ba4ze8I,E%s~ _  JYOk* 9 "!-I! ް,>T޽X:+Z( ދ( Vb6AL/=,t [` d)ķ\Q+#%:##32osU 3DJ Kx_ <%f `atg~9S 1T T& F7cH zB!'ۧT3  ]2 }1޲U W }, U  6H&KU]  ylj $z s+djN(L}V GX%a wCzf r4g ʤXN+N <J W[\ iA;*8 hR a( #I n 08 egw~8'N^-U_6ީ=-X"p"Sl u u  t[ Tk( 4?8 K 0b!&c!:c*Q=THuD9"@J_SaF # U| a ^s p R&Y _,Ս?( :`&~:t C` R.G{mk M! E ),*O C |@!ݨ,:p B&|.,w$6 <R)NckR'e!V܂01 " ~W P>C \L=W "|UO^<.+ w>Ա=n!y=maYtr"xE*n\&/ 6 w%/o;; -938 f@6 W- B>| fAv ClyoYp] "X(r^ op 8)+ x): ;.= =#L!] D2 [3'AhEk7 ̋J w'>82*"\; !Ox؄>+ߍb#n {` pD2 6 Ͱ)0dbC jD-w&O Z F\c}u= 4|9"= nh~ "V aC%ig ? l)` =%V t{ OJ<%,ϤF > (O50ho_,U'rF+ Igx:fK:0%tn')b4 ]&"N\,S$*< kiLX + {T k*8Sr(H% %j# iep)_) = (.߁%=wjm(k{P ]D{hA%Eځh oo^LZF a9"!a:?+g H@+ ǥ| 3X[Jy)*s 5';? يڐ vLas  ,όЋ! rb2 ]8Skݗ/<9Ϲ. + B$n(o_ mz 7lR r  gCجj \pa *ib? +P wU  ,$: n#T) H[-  yie-P t2 %6n$h:I k5\;nE- \ -k4 VG <0"Hܽ͵'+#J,?Eu54 i dUn$ Q' J%/7 5d{)e *Sc2 Fqk.  TJ a J +n {,!. of': khm0W`zG\(& % )dh=0!X$#t((.d6spT',x[ });z}"p[!>jMi  ^m i?-> k-S&En4 W ͗)Ek8 .)z<ׯ.T 23 s 64h&SVk\B2L{& 8B.R+ZAm ٝo !v֛+nn ؄n i ܂fM}$" I4 r ۯh&Pwnb;Ύ:($yoE)-NU yU Bm Cޓ/&TȄR0 yfa v4 ' B`$( i*XS q$X$~v#<C iLP (V5! HgD4!)==% cH7 <&kW- ߉[  ^vՍU!nK]&p= V L'.x*0W F>j-@ % x iBj*SRFx )' >M Rm_u4>- >TQ j= $3(:J#?2Yejt+'Y67%"ޤT q koz^k3 }* 5yr -60Ϗ e>_4 (~O/^ b{'F<z zqK68NDdPrI|!M&|E6' /$6z6z5I7vl1"z9] C"Xhk /pH7 A#L 62g q~/%V"h3 Z0/RW*'y7$g IP8 wׇ;#b jZZ b\_ q-!,}" [ϓZ Wo!#/  bڛ||-  Le%.ܥՒv%+&TXغm<G- ` {  pIpb7e[ p>O;!S%x*5=GaYq0\))A>' >h(C۳1"afh J[h&=$ TvM u@Z w`-|Hb ;E\8 $!ߪlS  jME>o:9 n+[;(5`Ukn - 'B K3 b ,8#2g+^')$wKZ)8; ي (O={  "us\y 7ߞ"; tT@[/v/ ;L#Fe aVk _Y,V) ^6GK[}ثjl k$C(˯#qNTf/Y1| u\sܔx:8NK  Vh[5 c AsK "(~A7  s 3E,ZΕU gL b8,= ej (?!:=&r ^ B?݋t ` V 3`xe<h!.f#  tc4 Ojh(`kYZ h#V]#T%j$jFB *$*'lW4)]$o etXv}24A. 9E!sS u\MX!G* E d!-A&K$6  !QW}#.*:,$% !ά- ?<w$ .pmfU H sU H*~(2P# #84Jgh7޸0+T1ʲ-$I'*7 &w AS)gN =P"2 ]&!9ŔYRTv HB*@7@ e0R"J \S$1L7$ă!v*ZsP 5g"T8@!Y qrV yO@ 1 F|!/'n8& P  ~֢ 5:&>ofZ( , `V"XF :eap D+ {_  #3(L0! x4 j!c%Tc g`oN-s C2@3P " 8Kذ 6q e*AٙOC& +L#eb4^o ["X.RiW x%3rLo3L0.^%#8b#R$kܾ)EYP Np.   *4U Bۄ >#? A@2 nE" "%? m)$zgW0+M|n" O+ f%~ +H^s IxNv',`*[oP ]e38 m6 !.7~Au [/ PG 3} V H}+vJMt J   }xݽ0 *Q1P: '{Y/HgYOо%(!σۃ  j 'ʩcF_Е! `X] ]$ i Tx `+ p/ 33[wPZvF::% `5 feL7` (aFK2 ws  {) @j D|f X GX]S W)T;56P j6q~ oOw$$h)" "P$OЗ X2#m+T& GB= eksյ"EvҘ- ].[wZ3#1'9ic~ m'SXAq BH] Z Lbљ6n!wQEU!  q` %| ~mQ+g1A# HnS:2 kYw4&5HD;5D'  ""C X eS`P# e%WV>a>S`[}sį7j61DlHx, e<}e~ - i. :7b)' nu)_J R$ Z+a' N$Y!ٗ)p"(nէxl | M8 bw],̆-'+W D  z$ԱY  d~!IkF)&e % %CcQ0| Cvh\t8з$ uPΌ0aH+bm4Ԕ /# 5>!CX T [ fE\78#++{˚=w(-F&]v@ Ga -e ) VAG; H qc.ښe4 #: d0gb 'ۇ *r Fb b *n G_%&p͛܂Xs:F(o27+s0ܧ /'0v3 ch* Ӥ1{) =CZ_S ym5 Cu?% Mڿ%1 ?t> +%lg&+*79҅Y |G>&{i &|:>\`w(5 4$QQ#v,gڕ"i!<\#X# b>Y*CѬ< r % 0 da R ~H+h D2hNk\# R-} m.B&J /]V !Foy&4ץ|1LN J T+Ks5y\3Y#60 r  b^cd_xh+W7M -c'y3npo vMPoJܐK ܮs4j.7 v y!kڵ" 26< ^Z` CX̲u z& 5` < %1^Yс*m{79|Vn E * k*O;(h L{U d wbkVU6 *"t)Ub#bP$!-_I~$ {? *hڣ !4h" m * w_G?RQ"Y۠U avbO1'y#Ոh@%x1-24[n !wԹ4`dYT>}[ڣc'L^|kc O^ < = o 4 A$PC Wfip= 70V xqUn] N'$!#{ ܚ (OOh OW #!w lTJg 4,hYW4r(pC $(@Y+ @+4Ss,>2=!+ZxUsX,/&/-r 3 $ق׃*y?_M֞= a8i;Vt Q*VK dI0 x7l k -F_ w b8|ۅn)L6/['dbot y  = ~3l(LO"ZW{;.Qb;m  1' *.0+X}0,w"%(C Y o}y TzwPn) n,'sM  Da@QxW ;08,< n5AP #x0cD *4&͡L jtaoK qO)$ 'w f<2_EXk^Y$Cl ))h,Cf7.Af!jٟl U!g 9m#)}N8 4f7 /.-(֝   axRW݇! +ۖ >< r 9+;XUaF gR'P%U2 +!rI$ N''c !&i k .*z &x] #5l,} D& H!Z !: _ (b"*O4JIϒO,&6f 82[&/ P2z ]L6J  I5lJ}<zA,2 sR9 SR w mu lyDF *)"Q9\3 V8E  ڧ&"aE+< Y:&($'4:- h8+JWlIY"1. 8 |f pc3I!т$"R4+   zL#T z*%m u2Z z{  7 2ŭ$ l Njy; j&REFg `!̾(K b} #Jj#1@C G  ' 4w4TjaZ 4 m4O-cN1'"*G?a0vxzn} <+~5 RGD$o& 2 70'+#Dw &K[K+.(!{ Q1wry 0 psM|u!e|f( Q`oL+scc9>~%n&#VV;ۓ 44 "t#sAV> .[34F/ #=?* #l$Y .*#eJ Mg Bc T(M"n 0uBI""<  b]>r0*F:[2Zֹˬ&L  Z;.P#*!kVKpA Hh٦#.(Ž42_1 yr eҽ$ %@%m ' ' ,M+gדթ5)%t Q٭S$4hޖ| !UWn-jOg҃`(N6 +(pI0k/}4"|]" k?G3$ڝ_mY3u]gI$&7 K!0A W Ka֥߾'  3a"QʙK5'p|Ӹ I bb ,A_*5a_  % eɷ2)iJs BcVZ z 2 _p'+Mưt}, J  F|_3u#| !' zY/r4$ a >:Tk" BSbb O (F +? (-SΎ1&+=IqѤ1  (R ۥ֘ME ,e )i&C ]C I Ex$8AKVR a-b- l ^iE  H ,"PQCv '66 Urkܩ/ mq |a >'o!Xk%Hw:@6# qA-׷ DQ G cD%M"6 !pP,|o . YNo898 [#5,`k5;f w[MFN56M $8i &o;:{+*YA6['_@+"?BG #w~e>-KT > = 6B 6  kS<MJ %A m P \IO$I kN ^ bz!m9Ka1 = $i%'׽$-x;ًƻ/$dq@n5Y h4<\USA  E@<p oYT J_  K(pqW"1. sl 7 QE&( ܮm*e"is| m  ] @mOQUQ $];D Hӣ#)0!!ҏe}"19;fj#BmV ,Ap+ | S-`nI' 3% u>=$ f+1G7v  gw((%ݯsQaOW'T*NJ &c%y%!51 "/IT Ee}%3Sf}c P^F ɦ(.G-?4[@, Ek x \ha* #I 2 G[0( Y F ! '0iz@)T]0#E Uhew5/ nM. ٬&QM)bC 4aQ w $ &$ 5`1 d}$!t Ab/1oH| 8 W3(x$! 0 W # In lr+  Ede-hK5+ t ,5~.9 rJ )v ݰH6G"WlI/+G >KA,k J 0ܛ- Ru]gB j " }0 5M #q!B ^`=\U O( n0I1& Y*]/'-\w'@/ʉLt;  BU1M.(5x 8=1 "-[R (iZr#;Y C3z fuX6)%k^ѓ2%d >شM&A/ K,iBm="e fM\|50IT4niW B4'L l[p$64cIشA<4?^ >u " [ CCN'Y}X [1r`m `$ vi; ~^  ?l@& wul $a]I}H. `(%\& ' E%|#e He\( 2wAR u V:V |) t\!#N-ۣR0 ; [L< u=9|:i(r!ޅ ,Zg)8SO/}Ku"ff t%)715[HFV\ $t WiP@!eucP!!cem[[!E)`5|! -_[$s 6u I\}Sޠ6 =09*Ly0!)rw f6 } "FffaG,b'3N$ a(/ v sy# f  rOS^ O';(<^&a   -Kߓu%֢*}6|̒x#y% #n);ˍ;,kR0H. G z >{:}0&O;x y Y  U-y6+%AOβ@H2(g.$K O K1( d:[)pC ߅ 6W8 b Gc7!y)3%( qr[U"Ib*A5߈ B?PiS%+!gI-%W":*ٷ - ]y U) oi'(]IdQRr1g WTO")*wSJKz#/"'xd <t"[{" '"+3ʸ%nQ݌ )CS2 \,A ,Ji)Ou a#6bcjԭٲ T  LH )N } i||lV+0{ǧ&'$! gIh  # \,T# B t'T:}r 9  *5 8<4% }ީ!eAxA^1 bi| 8 w$D I(|5s $SVm w6` yӋ 6  ^^$ ~/mbO[Uf0InIm N˓6 Q&2H*̯߮  o6舿M(!߳d *Bk$-cRSI_Mw  lv6 ,(8tYa"W<٥@ m { Fh*=bcO;c͞%)f|a]a ="6!%j  3^>W{Z #N27f$HGaN 0]&Mbfg !cfQH]׋ t \4+;bc[:yZW ZW!%ޓz^/ !Z2F$!Tܱ*]JK#d J\?++iDBX$ݟ M&8QTHYO $$ 9&  _<h'LL(5 5#?mP qQ Z  l EAJ-! hw5'q.= ,0u[?(N?Xu] 5=St @4s0 i} RiZ! ]58 W @zV9'B")E Jle2 EM<G ^, v  Qo7]!*$mh #W ME,V9V ee#Y#;"I!0=ӊ[8gWް5Q d DO /? b&e K M<0!Ȍc& YY=ޱջd 28,`E{ =e #CƠԠL5`[9 p? A3?ƨ o i Bݩ+| lux  j;X rL 5 gMZ+jwXnwɕ%* *]RFh2g,3,2fG[H,M`pz<14_+6~d$a&[/L&Zln FȦ-&C]|0џt&""U/7]}]`< ,sFw/k %#.S3tfWIl  el9! a m 0+mJ d<V 3TaAy6>. {0,y)@ ;m iJJ#' C%QE_)m  [ "l0 T9:m  l/w}0C( CSe #91#xգy%nڌ*qΚjn >s5q_B0eܸU4 5&п_ 71=)kZ8B}& kUWS A %,DW Usm M$x4%+8yߣV EE <; g' :Yf%iS*C|1#A+iBswZ [NJ 0n RL,W6  g!b) ڲ<w )VK $^% !6-ѥI X$/tMEY A B܄@$5p{MӋ."X4 6|Yh| 1 wKAn*# d t vAد~0'j >(w(,q&,'rc  _ tnOq" L &/ Zz Vb=G eO~B@F*u=|0 .>fkh #wʫ `h"dg@ۓ1\:5$W o .x-J$oG G6٠-$=nSvPe&l 7ls /  6c|8!  !!Ei _ ;b|mH%""ϥ&iͰ7#ZΡͲ)e<A z iR4 kD ( (U k po(B!nI6{%OLmvI)"|2,\|4P,_%g14B%h j#.T֍PD aD T^yC] _`u& 52#`cE|2T8%/0 =bx+UҞ_?]ߢP: t3\Y& %WU2.fPm NU )=͚ zlڽ> g)E b YJ"\Q}!yFe%U Pl{=t<(YfR k\+k &!$ vb xz;]!3q] _fP!%ʁTL-&u%(UD ec /R W a(c϶wK<4x' t  ZE4?T A Y 7t- P* vG 6"*@u AB@$ F"u<F4 e6IoK2' Gl<J M \O,/ovބ ,(Kpt 9+8!a)s w 9%I ).7$JN FCP8Yx D`vRJu0$&۹2^f VTYH  lYF ^/)(e P'&APZ!4h)&_waO _U $&r$$3 y<J}<V*>l3K{4k !)eFo"O*>=%X 5W;]v ' Lbx$'-O R ?7')! 7}U7*B#  "*)4dϋ wdC\7v xxt! Th 7 nx= (7 WݵЦ!<tf `W8'5 =;Zԕz #K v#q2kJ /Q.wގp( ) # q-1/ʧvn o9c#JLID?(Rac3 by| n* /YX vP2e@v #rRe L"?Q)E / ݰ8 6 " ؾϽz0H +&    @{ % X C xUaiDD7/" & X} fA 6$Q_ oLj?ѩ$H 3u  Kp{2&2 - n)/~*Ɋ) #XZ'SP'N~ Mrk{+ٛW =X<+՘ DX3e-Ź&p,]P1> #SKW"$ qN߾^%4c 55"mPYW}F>6.nז!` -[M* :X ȼ7 $ Wu z3h g;^K5'+p*F-'܋ #8+7  9 ) =sMGwm rY8 ~ +`Bʷ( w0~u';(x. aTʣ? FDh([V.ܕp!.A۩ }OF cN/ s$_""X3  cR-'ft=G FW $G  ; ۃ,0%p2/PC F [YVF#3 RX$4t, -K 4h G-Qi;e {S#It36Be8Dyw"' A 4M _XORYoJXk*U 1^?q1@T1: [ , Md# y6L BQF   hC ;MD'XRqZ Vb/z /&8 +P  g= j? W2 QSU5۪E /L &#D[g<r Mxq|%?ާ897A t *W#  28~ K * &\'\. {Fc RcX*Ï 5{hN!of~. LgM'<!}  `.\<ʆ'a* v } q]ہzy W E!A'0&5 ue >C 5p^ Xq zGфی2g/, E Oa /h 7)\*߹Loj# jګ -%1*aW'mbT$^u޸*P'ާkM - 94H  -R$Kzm OY)lz;,X= }u 8SnS <Wj = X  cMU` hSjd e' `D `F!l[54  I|ti+FHz* c~ ^Q0=+#< i4in c a 66jOEU n bQ  [w G ^{#%? ۩ȾW4$sfy  C+֘Zv" )!m#mUk $/&m [ |D"}[;Fp]E9] 02(i\Z"rן+C WA  1 [$-]D'70[W p|2B g{SSs1("3]J {#^?' C n 20*O "4 :)AYZYh#Bd 0 8H-   c! @/8R / a< L B];y$bOj  ً < X#L 'A ֩V- w Y+&i~)Fa /  cyO|L4?[M :<;} xPUrOj & /؍r"a<^#y4Iyy ` ܌ޡP-ekC '+:D8 jmJ "gނǻ (u " ;t@'* h - I [ 4&YQr3+$2T"7Q 18X#W 4 - h}U'ض/}%7: j_Y#z  H9}vGU  "| ) Tugt!' bX^9 >t;.uP|\^Rh{f@SB w=f` b 'r0H{w4!L\* 1.)'  Ro>-27>"k! m9 $]t #IY ` 8hP_#j%0շ<"JNR= Hz1~ a9AJwSM  y #T:'TJ9c:!~!IsUs^,%H&  @%=Cy Ua3NCl! XW"Lֻz>,؇i[. r#9 @t&S8 =`s +E4'lB׵:Avz<;X 8 Na_0$|5R(97B=X A ϘӼH 6eR&))4؄ClV5^/S/ )_ tgf1 JFP#" Yߙ0(SQ  x@$+܇i< &#4A+ [\x % 41 6h,~iG: ~x >Xt%2nձ` Ly-i?jǞ'"i.ZS Y  rZ "d(dl{  LW S D=J#3͙` Ew~ E@[rnY"K  ޑq;**"Ŕ 'Mh6?Jr # t  |۷+3m l*1- X.6+ h)v&LF#>ZZ "]; s+T}}> KKzQ{ P|r \S t ua]F"͞ z:$V  3C-I" %z ve$1!/'-&*tƚ,s" f vxw}FG 2C- k?  ' ;Od)> #w'J3m$/+ݹ/ ofOd~(b5bG9 Rs* <J RB\( & 4U.S2gŻ$ 4Rv,*!8Ub~ =IU#) P-r` bf$ L $cim.M.$  N'odUBg(' v>/j ! V  S2+%[CS w@y,_?-RӾ 4 m(M*\W3l &/ $ HZ׶ "R).Hy wR" ,_g߰3*R]ΐ|A$ؘ&@\H  Fz> _ 1d+%* q 6 j:ߐCp.Bp F%#M z  Hjڽϑ0< }vlN(6} H#? c'w'#&s'7! YV E y3o &$0 + U P Xn-D ej [.p%CY6rfi;g  2_ ^!n7(\( H .4գr8T4!#2ի1QtRfY1,3( v~-2 Uj, lO} I>33ьR#~kw U ME8J|}@n0&nl1 #6*" y&,Wu% -Z7 h% :r4uUt`{j D |zZ;.i-O(sT 83p%(am1z#/\ZoSlh G? 5ߍPLRW0%F ;v!6G A < E"w $( /l +:9*ՙ, ?}_# )GfӼOTR$J nvFE ' g q!%F1Xe `vpP 6%p ;\ !-L? m*bw JObD%Yt >{߾8*"+(*$UpY91"ߪxv5Q*.n.`4vz \ ~s ^|K I k 1-|<@ׯ (9Kw>=( @G R~ 60 & @g#`q @[RK(+m<'נ%-wb *$*6k n}<*$ /ΒΕ`d TX[ "hBp6#B &W-#R^ dXl: /!-acY!o ?qm+ ݤ /BS S ^ g! >'rXLu'-:=(׊r#!o? 4pp. Q(? ӆ"O% cC #!p'S(K|+&,"Z 8$A ~"f8k)^ j!LC a]{o R Fs)؁+ YwX=9p}53'!<@ / yW=Q:X7%4~^TV9C Ph'_ (SdXuA X]u h 8`=ޖd%m 2~Q="׈,_ $^h9 2z #/&wG!+D& u.L[ p ?My ?9  ~o v  @ ]3זb2$ (T u'ҼN M RUư4$78>t:XhcJ.-F D}b " vtNXM=y`5 ,B <& |-Pg 7q , -CN C7 !;b k"BDN Yۭ2\t'!>!r8N guE ٷVb#B"Y&6uk(˄8 (܋ ]vI/l!r FH4 TWsx N1N a*e 7($"c ERZfr  fVp}5m{%.v Y!(d/W)mLu#^|SL2l#H#Y%\fGr(JnWu/D۴$&"t,A7g HG`{^V'.L  KhN& "1 E")K&3$E *8߽P\-8 c'.f\72=xz^jS$TBrKJ|6*N٭ DWv| IB4O 1H $ !#9l!]$>&F3AĀ'/:e 83"k)mw9~!q fD.1H  S@[ u 0x ϙӆ 7  = q63x5ҏ k-a1(#N bU `}&;p_ Bd* 5' n'/~i u !=K,o{:39NHG kCv0wEuo=IN A+N:VAQRB TzE 8 a c %pwz-=r,2&c`xd6"  3l->B."4fsC! mN$\Eڟ"6;P Dd ez* E2o <7.T*/BfY׽Q1' Zw4j P'e 'N !@~ 9VI{9 8$Lo xvi ,8` ^XHTB+v2 !R;݊|:. o%2lY 3b֒ -#YK ` ̰a+$3X7 D I|NJo 5 q߅<)\N; =?+p q0eKQn ,"!Tkk{W+ٞI%3߰K-$uL&k |%Q#R (~$9 :gV׹y(% Y-p oh 3n$W߬ ,W3RL{T0 =~x>-~ 7 *8N+>bۏr 1 SФ,7ljո9Kv UhDf,<dE|/cN= 'wbd/KSu 2 /IP-rN5Y0 !X0 pb8΀ h32 XYUM  D~%& EXtFH 9t*+c$zJE=^&P s&~ +EyE@{Q)?>pPU co_`/ܞ*   A" &!R<ckӇ t0'%AX'b3)Nܰ  =eA YQbZ&!CE1S*\35El 5#Rտ !rB0=bH4KLa)^U((%uͯb wGlݫt]/'c% #i >:1= #$$d-L6:F7g'L E7X:\m $t41S3OkNafA~RDG݈MCA T(J d1 IM {X#%/CD$ G - | G%dT,! g׾^%e*Fv FE@`V (&*0 V96 vՁؔ .M/10U*p0'J؎- ?D63" )$"-  !>JRsp/#0Ѿ -)"tR-L5+ 6Q($'P u< > )S .Փ6?.y/{)o k/I # q% <3mG ~|& L+ *,]2gV|O 26 ;T(k CUgSF 'N/ \1 =Ji|Q@^] p:.>_) =gLMe&[ K$ҿn ?.Y:UѹhMDO-* %e>]?0+ fCg Y-'~8q4mF!R0$i E p+ aA<KKr W)0 0 9u'W!;-> p (9Fwnl 9Y =L# hD~| %o, ?$h ?U+ ^O.1 R A߭i9S $:B(ɴU. *߂#;̈.; m jbCJ@&8OHX' y;'w$#lV5[G w]/*]E+3ĢՑ |"nb!BV2kKG/SEO)#AI/[# %m ނ, s+%ѾRR.h2L>! O%ӜDNXkuz| bܲ5".2Y!F +6G%2*-AP/b ( %(?1%%M < !x"!&Owyr ;$ Ң + j yEI>8+Htt xu !1$-1 ہܞudw BW-E? %]'%74=-1JO0-"pҧ׷'H+A#qgH=}?"f1UwJw !q 99r7+e0 JrIz-b !A{X ou* z̔}3,z2 zr$^ vp z $e4ZfucQ {W %3\T n9 $>E+G6-&=!G x4X s+ ;P w/Hj۠ 4F 20D5d +=. XE1a%4+ӵ Rit)&+o& i7EyN9Yy"K 1 ʢ+p%` 5C :I s5rKP"Bߟ q F# b"j:n } q'w%~ 3Dc߮$ i  #@:`IKrRj ;u W  /ځӚ^}x?fkӝ'E ~j) 7+ O&.um`EB 4m(2 +P>c] E> n" S(i&Y! /@|ky&=&@|3.,;,f!S\<0y " 7o{ W+!|'>?H ɰ  ?R3S-B  ӿ3+2& %ž7@on Nw~oJx PxZk,NJ]* m v7`7 -FS0rK#)b9]% 84i~wӼ&+o\sA|C : H \NQ)I [A+&S׿'xT uyK { >+/cH# Flq!y1eKX25'I ,ݺN#ai  ߀X '>W"[SkЧ/ [%V2 := g1>H\WB  >Y3|Jb&{*]!%$d0 WIڪ S&%=$~]3n( ! l9 R' +ϊ#H)&[xR+=?<Z& c5l ,7 "?SJyϜ8)8=!\  zzSp}0] Ӻq[!rFv("y ܴ '-jUF:,n9] w/&+c< +J S0u/ έd! kMJ޶3VZ %&#Rs8. m" =Z p{cOD M ~v,]w0D !~bYu G  Z Dm b W@4V % Nv  C+:Յҷ;oM^Rc8ISZ "hD r i'$Br(GI"7 %݋ "+,}Y#R k$N_*X;n0*?; :U .S+'Fx! &$W)]J,A  >F A ]U%"{Ѓb( $ 02 by {LQ(Tx #e'4 I֊ce@ op  v0#U b9!T3EZ+" ll m  O2 OD!.t`0tֲ&S01̦ L NfߢB0wI)Pn2j 2k8xpz  &!Cc3 9O ֈ[%rtR.S A7$`i  : X&H )(q) )5_f`&f& , +44gܐ  }'[ B`j 3\WC S,]2  */Fu'z*5e@e9q_)) CcF"<7TA&R.ZR3 tPrG  4f$8q? XNO݆v x_,qpe#!,{"D#GMZd389   |/ A' `&*ip *s9g  u_kphA|Wn!-{ '|#Xxۆc( FL](61a&є"@ ` N%!`c(>E)~~B E 6d"ΝqHp?$3luܡ  S m '  7d#i݁(e.]!?(P* U Z^IJ~,8I A$XeӸ'" P>E/nRڂ"q *7 [Q0=/ + sB S!*Cu_טQ $q"SododO EF}#a 5Q [V >'p 1Kc8vf#1Bn7ko xHU&1#%y)*i ,U" (iR!?  Oi @'F 1 (o*ԗ#!%8& 5  dI{ Zk3 2 :L&)  ޗ^ >)fcb!T ?!!5ͺ 4;}nq'V ~ QS X6h64p3 ! @`Y= "&Q54 '[ I E@j%  +ݺ'=-!|ۭp p&$?O0 ?.cC~ c UMh m/R\l @%hy 9 %n +/O &A\hK݄{*S)wfU UxhE#eiD k !h ;bk4vw{\r d9: !k 6OBI۱ Pp"Rj &6)&ԉ#. KT?C4; JC  K )#?-lYCr $ۯ* 7u'0ϖƥ=M%_= -Cs$5%/e x$Sj&8 Q,>x֛ ZЕ*ޘ /^0l8G={R # n * m  3 E"8M a8 2I (45Rt$#ƭt b "2]Q*,0J|cEn R@c  љΚ!MyA*O FYR1ے#.*( _ Ekn n-0 (wp9N:"&U ߈3 ^S(! hW+#*"c٘tqph eh&%߸ G?>ߎ+MTK 1mA#F&$=uJgaFqt$;Mhq(u$Nu߾w< 7 { op%28PԲ/d o l9hn(gH545Z V TG; g-s`\^8MAڒi%d#)0Z&W+lb/' \j! %dJ$1"&a tre X[{5>   O:Dr̩Ɲ+(? WP \ rNGL(\r 'Z ܘߓ N wϩ+/moVeB!5<7ܥ 4 ;B "]-< gb_c-Ye l8  bOQ)MjHk.o< ' +Tv ( Ux {. ߻BE<|$A '!A&[|B2BJiF#~{5 Am(#K4'$w#5sB-m!ޜЍ-bv{)  =AAN߶F1  !8 w12qe߭ 6&215E#r4%65LIP6* [pF )&%:БeB$a.7c !t*t Y ~uJ ["8FO5 4)\#6,YsHE1'N^~0KJ*q+0<( {.#(*Ȍ.''xhӁ&[WV5 B f{# n r">lJjBM*/ }' $~52 ?2G%bz\{#"i o U݃,!3J Z[$_h<*z%1!(jTUN)+:[3r+!!t$1GCNק J)$e  Skh.Nvwwk F 2i Ly _bXQ+e δ,I z^I" ] 7 2  _A_Q1-uY%W!h/k[}eVIm ^Tc@)^E $B:Н` #YH ' ( })ڸ ;)[%!vE^OBp&&J̙'GZ1Y/ Ao Y (>hO F:C" fzZT'!q=`=_צw==٬rG&HϽ _4Ky'"Rؾb!Q,`1k^$ P<  g6W w ""o1v < & aU$%ier,<cV< 6 &Hf_'ac@4wYnDk/6//bZ.'8 P"!a:=&('BA%  ORG uQyծV/~ i%+H2D7 2 >g l$]%S sѢ 267v  ($/b]e  ]h6*_\Wtp! x `W-ML @i+D0_1(  5H'p[*Ls IU Jpco<}Ix X)"91{ X*%6" ӘV{+*Hl\~  +ե˄7'K1  0$ H*-FT?= n >ա+&;vyt3 DGT /z bPs'[Ҵ=QU ($w./U =\LP( & Ңf%@ qdH= )э73"8uKSD\}z{Z Vo% YP-RuH<m{r$"Jf} V&  &{p!ۆK {{u qoBR 8!?)9|"K' (E4a |""- !"1])B9# GONh!p2  z ! V$`՝ںx*:~' s a%J(""k@   %/;ޠHUOd>Q !ߦ " M(4Ef _fEq@i )0RH]1|fU>ڞ& lA Nm2 uRA : L2g-%_  omQ nw/S) Ui }@%Wd= s'\+`1T rC) \zw4}&) L}rϠ4 qFjM BW$ YDT-GN; _6%y I cxO4bQwkP A"Wcl Dq9 + /$  &nY* eV(({t ' >! |\G r/zI.Q(  Z5 4 6 43 Dۓ=1 .  "Ǎݤ 53X4KX ~B4x-p$aۄ})?aNmyMO@.c!Tl'6L} s R93r$/ײ'!ԋ0Z$4>ͣ, XcaM 8W,Go2#)p3]ZDJp0>.o j_i2 D x+!u<]*Z8\=C*#5'*˶"1  @ ,wo~n &K5ݚH?A7 o\ w!C Epֿ ,>@- p >He+ _ -B:ŕ&A#,:Oj(FE+H3e.K WG@]:qYDD)^ }%4myV L"[4 "?i}) x3 ~@5#Ф'K߇[k: 9^j8:C{,91 f1*XE5 V'|'EOx} . z eb5-" ѵE( Cl$(w\lZʍ5ip ۧM%x.ߖ3 pw@P a;cq 1O#F 5{( 8LƊLQX* Fkp$ m? zN !M#7]ܸ:N5!5']ž f-.OF; ,N3"&^^* H!f8 C1/ӥӠ l1 mH[5 <C93$8%P x}u֏d'I2F شE  2 uzQ *x oG|&rK b!PU? >ePv($hN[Uv Fs&R5R; e '&& УT_jN)Fo |i;QiA9[ k"<:+OW$3 es )#ޖaO"O }ST 9D^Q%] K u} H ^ %Bh Q`cS .u}x# `*7 EkϬ Kiөv *;{M v)-F#WY,Aw <3 & C rG@ln >T'=1 #B ^`T!GzJQ #=-5 . י% & ;:A jϑs(.}#| j&߂MU-'  87 j7 [UY 1 U;.esU& B+(1A(ъ> u =G)rb )2 )no .3j"o(7#Kg޹6:'* ;!Bc!SD vS / 3KA('$O y)Cf .^LL%,^ ?# GG&s6\ M"I4>z߇;24:a  Gץ&)KqOO& : |lj 0y)fvm]+QkeY 3|# =_pT #F /kQ  g#D Z=Q,G |P\;Jmc- 8 (*7+%Yհ%Z='"X߷7m҈'<]B7A-[ [lX iyu9~ Ѧ l !3u9 x GZC; q C,.sb""y>-  /(8Byv < M P 0Er3 _SV܅o hQ`l\ԯ":i`Џ^  $`݂i"lV a)QO# ,.vb5 %Q x4)N;#APS sd nm$ci j \g 6&Di' .P r _ J4 t}l8 F x  O- G" @)R&$V7R) W}0# Kӷ56~ >*{  J3 b&<l $s X{T Bl&:4U+I,V tS! s$U-&\XUǐ;$i# a 8F kHV /!Q2 G" } 5㮶ޝ LYz oii{BP4: Muq& (~]-o|qiF42 U0 &fB1"- 4 vkU2\_gBq }[kJ-1! ^mϻ%f8]oӼ< -f x8>Ȩ\ 37 Jq <L 0h(Хޗ\<@LHmڇs2eIv"Qѳ* ")3z|R oLyZ> 1wk]|xjc[[I.2Fl 3!- $ ^Q; 1"` G/ "b {(f! f0_& Vmsa ^mH4u1P o ! # cs T7#AJVi1r*E&!Sm |ZW HtX~j(+`r  w-v O(kѻES J % $<%H` |A[ 27<@x0d 2= B %U:#R߭(u") 0r'& BUj |b& ! z+2(gf)s- mgE{f "$^#;<\&U))"wa 4nd =k(l!8ݵ֫?h%8ZN Am szڞ!O9M8 *>*.|x< 5$q$,J t'aZ i $>i'"/Q,3"Eֳ͞= 7$6k_OD=00]'!\ ~? DG S\ CL k'CIt"_ v ~Z=K̮4*8L3Xuֻ\JR:JI.:BW!f2ݥD '-J(!j)6rn#} !G B 1" d0 +b.-3 ^L9tEk }pЙZJD&{]XujHyBS 4 zf '~n!ׇW2C-$v? %?Hͤ$ %, u%b% V)$*oqe_ޮ&wN TRxG*[H m KUd#: Uu5״$n86X{}y)+  S,a P X9! ngTFYc!8!kEE -6 q#c<^ $# D 'R(?4 JxNJ 8 C DA sq%&-L%pK :p)T@ bB SݿP4 G: Z Z^bi .kel8(Є;8&0R[54B 8k4b-' jAuyAyە$A! ZC #-& ,, ='q=?' *$-_ f@Ssj1 Ahx7" g>0+ySUECy , *2B/qK\ = tE7F>{ osC' (Q 97 L3pcؾura;[g # ,t$M0Zhj  kaWDwc~U5Z$cQTMVNisbrF(fS $]4++ N?")7ْ>/1R#jك ,10 37*MsA J9~!$G zp D:L%g8l a$ ,XO4t#P`(Ft* X .,܁ 64Dwn+ !*Պ@74"@ԟ,B:WK<  "θ $H2 p1C9 o ~=GZH W .2xR5g.;e6EbCZVI"=1 mY--S/7a'ow< pܒ{wt M% ,#-$Tr #YK> )5'q E"^t|a )[('Vėv .U  8ZB 4 ' xy*w/ Tk4o<1g*<!ݎ a`4 eo#7=Y TxAV 1"-$-|7 0YI-  G#ێ{^c%ݨl$RM_'c$ӎDV]~  k  b$D:: L 5sp++U3 , & /o .R #.!V- %ӯMa 0Ҹ#UUf$۔P$./h&>+l k u-x\>KnPB6Jzl 06!!`A[ ;%;3+r& (܍d mgi^n. 5V {6  `5A!*  L - 7L!deV}-B;g2#L a$7 9F%rpV uk*1?&>c"{  OP>,T?1JU <8 h'% - S_ AW4+E#j8!բZKyt.`ϗ. ~+ xvq  *(6 uU+ s  Ң5e %8 ? fr/%ܮX Mi0B f 2ګ hLc k;~l I V '0#%W " ܑ)'eu l ̽Y! omѕoW {.)ySmZ34"d՘u &6~/ 8l HBєq2dԳ| 9> 4  y4JU% i( ! 9 a|cX uc ^ <`"hNg&*֙٣%={3[[eL 9~9ު 5n׸$/<*sdO:]G@G { ,R?#Z q BQ*I]Lݨ5qhOdI ~!W =ߕIjSD^GڧD Rv'WPp!@`f& 8P$ 8uڡvF4!J:9/N&m|fW j}hVkK 5Bdع"2m.DKp >B{rH-hM<ث/Y-%a a <՞"# 3y 8 '# &I,Y&E,h 6\M= ( *V(m M -mY""0U-No(c+"|M2U XVxT')4 &)6$*B 33P*`.)'Fݸ  e;=W n 82N"f*A@~ur ٟ#iZ( Es_ܯBPhon-UX N $i;Z4QGyN qh !TZp4zaSdo"7 9+5`Rlu Y^ 'Zlk[ ym hc? PBet / pfF.\ &A;9[&ee'4F͆ " fؼ )/ٛ IGTX3ټdowJ.  φb..% 6"C8'#g&tdNzu_ G dY_T(`3@g| :pB#- 8uCpv hm k 2dP(#\6 2$A S14(v`/u(_f eP"kuB v bl_w 0.{KQ !|"V* .$T$N\G.   +~b #'Jڛ^ t  c ^m 5d c*UǸ(]4(b!"*1 7-o2z~K}* #RP D6Aq}n!<̏)N9@Gwo k@ WC$k':TdߌP 8k9 )^ + a^-OZ X scL+w'Ċ2,$Cn2$#5Kqkt 1|dm0^~xjd W1$?F %WR H+0  4  (8! jute< :s6q .%u=}z B8ݽ, #'{|q) g t p a73,[ Fee{uh kd" MAr F @y )XA, neeo ?N7 abu7f/ .  ),.h3YD?9Q|6s 9 +]ԸGy djQ/ ʹʢ *lD: ~+1-B*ېY>3΃ $KWqE/!)׎ j%2_TP7"^2 I 80 n-dO:Ϙ0^G3#G6(,Z=S#K Z8<  K9i\Mհ-{30 ,b"Vx#*-#;+џw~ :E^(9MT!Bڌv8thO<_U msB1ǔ &D^=4 $| 0' J:0 f;% WGY WNo H@ٿDaI/ ق$ ( n1  iD#Gݣ 6g־- uCi %,#JT%RV$A(d5S*-cbs: &HpN ,g!ssz8 XH b^ &=tT]A Q  D g ;/vf@M'%ZC+"3?}q$$&'j :HT)5?>7 k٧e"1 S? GKeyV#p-u@f aD2 &@> T+2?hI. @ *9Yߢ6(F+6- s̅0B`fi-PW/#Ս P s2( S|,D E=Yz-+)=P>|C@) :b+KDt?lg%. o f˛$# !Ia< gj E{By w0P> $2$w %hЄ G LH Q&2PH"\i%P `ph)[t 5 ? CS-Q&iV H^'}&S /o Ɂ S  ROyr0 a/1+\ۿ2`+*=4K6/bdvz "x8ާ{#Y zv'!6י-%!i&H u /P pҊq'o "U RgO5w* 8 c$s@G%6bruM +qB- mRރw0 Ջk3Dݎ )YZ@D ')M)^\wA_ V.u, GLm A O y|0A }])n0Niia5 kkWm #}jk 4}\ 6h8j4cl|)6]yA!5Yt9d.!e 1G xvO s" fў$BV2O rEm ] ${ } 3.ܥ+)'F@}B l +H#m, VP wCx)/8)F n !8M/8YV?H  hG\!/ dX-oG Pu ;qA  6هx6K O 5 Fu 0_ 9W  G$|6ˌp 8~7*b+\/ t'FI > Q  +Fv3> /PΗ5:;; yys> "Jqֺ+? $|5# 7}d$yâuT/ Iv W fg&m4/+dy ڇԟ B^J4 S B -=G?7!dR{ Hf=I*=%ԣ<za@O[ ߣ H | U:21 yq*T|n$VdUr! ;ʊ#C ` 6t<4V ٖ5sZX C"=J + v ?ޔ4 t։-1I q : 5#7Q%C)0e}MW p~8 ,0(#]F r {+ ^;5)OKx5 yZOH|IP^A ! M%/( .:,*+ p7-%)Զ d s}  70t{ UNG  ]wK -[O$U}Ki*, 1'EK;ϨRC? T0a3{5t!WGk 3} ;r^T;dB 5" . IC7m.QEA$1 x9ۨ M;d t.a3SB  |g36^]OJ pU )+?~!%U8;G Vz7D)+r9W#' 3!O'~#5 s , o  &r1#ޛL G Y KfU( at% 6jͮ:-V` =61B;A wt-}?.V $ e#kgf ۲ f!Z  ] 6 eE S # <dԅ } WM /3N 1ؐ q Zd Jm/>0QXu  n % O}2[ a03rZ/SԞ2> N u{b ? 5 eX#L*\ilbu oIa w@56m M^g_ m d֪n{ - p!'+္:+xT- y*@>1"*#Wb.1v_V0H%4o; l"P %g]h" b*HH G6 7B ! % N+~_')u  S>]S+Y  4=[ !Y?)Q`[r"bo ]  Y٭ D7r0VD#  (&ߦ<*D,0Z T*{)..c<It[=Ta> A0 G6rg 8C :1[΍T 2"a)   (| UR!/4F-<Q&_ u{#aSW2o ;v dynl=:R 5 ua+1na۵& r{,r7 ۗ+%#  lߑ8W&t,l("T΂l %'w9*&؊5R?I+{G.aPdSQ 4  Ð&7^f:-#mE   =&ۡ&g LTDp[ q7WN#;ۃ,%uF(~+T6?jR"'DeD[ &jM*~Xƺw!.2> 8 wJdAnj * m UO ] wJ6c |We'0)^$<Mo" NC6eUEө. i F2bi6cFR2$4ǣܯ|#Q 7 XS#2@^;> &J{ &t xҏͯ x3r>q% Ь j7,2W K |)$< U#]A+*l72`W\, A ;ڀg#' ޜ\mk@D &9!%ܥ܈6 ._K$!ۃޯ/4d@/  IXso FXPy|ps B( (0| A% F24c h>T p= $ E)!,v bZ PibE:'ٺD!=y|! g r/'$c ! _]8v/E%-|I8c<B4<}P[} a3I+RFWC&B"[|//go,D\v+* P+`x;bk4);$-ͫ"q  lJ i!C8}# `>;cچe0N _L0'x i(' .#RGFK7  ?ӵ'QZrkwEgv"(+ E)5 ޔo*UWs}r W,!سϣ (epj^l0+<5 e(=r)J= lK+ r`  ue  pXׅh2NPgy1]p*8N ( Ulh7#  e=rld"~8<3%o%y/cn$I~"'Q "`"V ޝa%IBcg wVF Z ?xW;"!], v0+e3M[Γ8 O'~ !Pl# Հe+u" O.' MU6ik , T B [U/&l U r /"B%%S%y6& &R(g= #׊k"q$`%lw"!$, $f7 c#,$'td {;$ BT H=.F)u% y ϰ%$ t $xDC3%8?\s *"S!׸7) tAos!8%?.Gq]  r`0 )$PA sO O%1JT\Sld?4"3 > *%K. y|* 3@.| IE$A\2 ZP bX'jx;-G*QTYߓ ;/9 N ]\B+ & ?8LAKSEL!"ڿ Bz&a8T*HxpBr)"~gzou$ F[AU ,P u \@!Z\]{[ bh$ ]Vnj vO;*lbq'1 `r@67:>^&9 D%k ljMPWhJ m%b= %)9.A z @gNpG D1 5o- B i3 WgtL($ QWLl"R7er9(A}q 1}B` X, [ [eڅ($ QHA$?i%z g Ew r zy!پg>G ]],cT!!u])Jo!#(n gu4C^)2**(k0{u i"#CP+2֏#tJbݕ -8<;m)/wg"t ? r*O Q1ۢ%/^>e0 tf916^] ~K`  ?j2[0ӝJ%e a\19 s?#;!.Ehؤ%6Ub'Bqx$1Bca4 ;" /  (k%R B v4g5 sN2c@V,u /Zb>' k EH;qFBu 8kQjBq(*P&n+b1 L EhfJ_0 *2h` +VFD N <.a 2 .Wh ?r*fӿ< X4?'ٹ!ggbU=)x " A/&~i@~ ~%. q0MGB!| {{cNRX Xd=Va~!Z$ #n  w k 4uϵ v]] ^w.@" @j`> Vh 8, R x M[UtRrwtR wZwt i J: pj3j 6/d_h J48hM=ij- tH$o ;Y 3 a'- O0}UeL_+m Hz)[Yם _5nAuf~ ) !O Q@ -"ʠkg B/-%NP}a !hJ{mh$Onc('!@2 {!  u =^2&jl =rBs6A JfܧJ r OD_H; ^`', weqԂ6:,62t+#/p6!] vJ-y {=W"-ʘ @':+ĽpQ,\#m( yk(?ٺ I&{Fts!cJb|KyUHXYXl1]?  p?@TCC 0 \vh %%0 2 )t*MK2 ejܖ _4.Kn?ە> }S  g5GLb . M=@Tat,6z ;"mT%q w=)g)#,PYCLS m|@,5 ?~JH @pA΅3k/I[ /)  *5 m 8 @gs rR56+ϽT Gl  nRٰ߹^8 .()i# XkpQ ''I;H/T-82B   #5 Q 'iA m6  [ Jh6!вVJ * Os ^w1q =uvځd6^`ҊG"$7-ڟY/>>gr%5Oy& A)w 7{ydh!,{ U8 Ei7(w ۢ!&S*7:Sө)1gT=6 d z=7S.WDI > ``  &p MDD\')j~ nm S'8#`LI,Aj'[vgNo ^ )GA kA`~S'Rh1{iSFv#ksM*X e>j,3  btC!'pK?@ #ѓ{ 6o F\ -#HwݨL ~%"CD"kE3WaZ '6i3ixw w"! hMU O5AZ^ ?% IjDv.?lLBDˏ1,$ sp@pl%4<"&z^ %>ܴ JfpHi["'   '_=w#d 8LyM 1j ' ;48`J1 YD-` R h%$^PRN%%F{ $K"4 VӸ}01/X& RJԑ ԑg(%Fl IG_fD bQ( ݢؕ1ujc I&#ea:z?-|7NkRTbnn AÅ'$2޵ g \ub!*!g Y10"=^ Su=5> 0"*!lR &TU .R (֕Yr m $$|hbJ7" Ї1V  ] lDY|CP eV E / !Ma{ I< H2s .?HW(8x=v*w8t(-+la@`B͜\' f,!<v[a3(W*Bt KC^<4e Im@ FnbA({q8y ^ %ys>s; N g}/ 3AոcL"FP F GR'O{$ DoҌO Ez RuFT8 j't G, |!'% it\:,l ݃ TO ^'.Hu! +z7 >JL+`naZ ii\ _jp:1: p GsWO JE".QqX$yO- WI\ lb#xPB V %q\ wRQc$ h#E 44d d4)sݏ4s % / ڕݷ&.^ , |]qJLvo': f/lc~ >R1 2 #>:ކ*;2UM˒w#F(4.  [~1t x#*m*H# "Qo  aٛ O _ex&Y3~n]' X8x4,-WI) JͶ =+o4Y^DHZct ;i.!&X8em 5B2F, l,j!o޷N "M*$G Yd  b n Dv{7  $2$4Iߚ2#XD)+"7I$%X(Im, T 39) 5gc<(1 ?.  A{<sM#y$5=Ӄ M& :~ pׂ>"v#L!΄ vE 4 0& ;2" my.O ۑϣ , x, f:b%2[xĈ; D[ W dm)~t1< ,}݋d @$"3$F7 #"8# E| h> 8 |I#8!C e3Xٺr[+E CfX E= d5gw9E.*`j4 .g"c-ٌn{9*Q $0I##L l tJf $ eb rmo M\xH1'Zo,hUZ| !S 2#'J{f OU V' 6h}h5$$T[6saR>+& r&?r$1 MŊWk1|> C"[U!0J'@:! [0!C <O&$7Nx'B ؆"qJr-m"Wԯa N - INi>%P6g)8LZ[׉CtCZPS2B-8"LZ  e;u _\-+5UlhG8 gFH|'YN,s.*#| >=++_Ny (Ӥ#Q7Owܾ$s y: \ԧ3A׍, `fS# d  Z*w+W kd#+~ gUf` 'lk"-)Bd &!w|#( &7 G Ha+ `R%4A tS "e1k݄~Dݬ.?!7jJ! H 8Lڀo 1 D}O d -ny > ، Z>(D-S &~]8Vo8 px=H q CP"IO 6.Zv u7j %K%}':1 m DYPFuPݎ_%4L9f+i a ,v"hWMo<Q, kٽI bM'g(`1gB P,;c%stb ?rC&kj {I $7FQ _n/'r 3 h]jd;oQ k E  HH   J ^tV k*W$c   P ZH;$fY, M % P_ *"7 Y $ Dg o  n MŽh0 cG^!a^$( Ŕܐ f > mH "n .o(U%-OՒ p &H -4'%v# I?gmb$bZ`Gz & gHXcF ܕ*Eyvi`d̩9Mj&ܻQ\ W+( ;T n"h%n`er,7Fل N<#bAq1h:#ջWca E  ܟ&+$RP-& ! [=#)4E^j /Dq| % XIx [ d {c"(s qy|p52 (  ^Ct"{g3- Ko cp N bsݚ$ daf+\rN=sJ #SĄBm'a=:N  `]׀+ 4VKYL%7|h(Mٶ62-7$Eg1% ,mq& cIS)1֗WS)y0?G!/gC| HHұ*:)ZHݐC 1jfv(pΉūf k# +|)#'j.&:iܪ )39 S 7"C a_._"' ;U,'mZ&jp  , JUU= VD ud5 $ C Cm&{125ƈ +,,3G-W 9*/ 5M4 sa FN 0A m(L00##x\jy=lHRk  8s^KF yq+sפO7ZJ0tN{(  ED1l{ l+ ^{80d % $ v# -#,F: @ `~ p-1?R m7% ֓- j' /:~.s/ +>:| `=i!s%D"x}@8 2ߤ-1!Lظ'<MiyrOap {bRlօ$" 0B;  F*+x %XI*^.ڽ =U dmƌ:U!)gF453Oa)  ?|^)Q>t:h mq=٧D0r"I 3 w 9 !` O3 bAЙ& t]Hlܐ+RK&FJ#%'DE 84rg N@.S=Mii#KAf2( ] 7߹ .@gQjY"4n2HO^#Jʐ# keB83a `Pi w GkP,! |Qz ks0Wޟ7m!3t 193V[ܩc+zޱH溿 ?։<> -^_Ax>]yۦZ@y80K!Hc^CpODpnEc"Om+ /jFF ja>?A} x5,SN Y׾ 2|٣;$?T*o2 (O(I 4 !ta![.Q1Aӕ<Yf& H" bO=߈z2QJ ( |&N-#p(6v  Ft"H7 X0o WB{JT\ qt5 5J"! G5 | $ QY N_s |rf !_V ȥ0)-B Y4d Nއ& /' 3x)1{'fg~ժ) A |;6tXJ Y1 6)bUi&o644 }( 0B~;1z\ v >O #eS:7M"DN^ c^p\ 0F_8s']M Wp'xw`2d3 ۰ uIyf}x K_[qWtv'  A/9C'_M A{$ 'Un`-M p߹ b' ag0# nˉ+HR\# $T!?  ּ&ު %3"Zb#Z3؅[o@TGۅӫ;:P"mlMn &$q h-_'\&F&:ֱ*"X#ӯW [m 4P$vRuK,^FMi ch | Q 5Mk}D G 4(O'\Y KϾ (3K{s: 9 D[ YN1)1.b"+$N" ?N׫ e - : , ڣH*"\"5IA f ?ۣ"4@z(ܪZ1'| N \"Q S2q Z|/ 5 ^(J(#*Db 0} W z/ 1 anBld}( 5 Q>Ju!d=hee#_j7 eͲ 9mg' + -Q X e} 1cn"!!g " ~ aA  6 *2#ZU ?0 vUr'>(%) ۣP:V56O#+%ެ~(;1c(p .IX QA1s%gk2Ja-d kn94 6"k4 /4\  4$<,e m.&:(#(6Ϡ 5)AS ; h XSx 3 ^dEn3=E3OR L9m(+޳F*s#[ٔP(J#unb8@ D+ 7| ={I 5TQyAnKTW9"#x 0i` <+(^ޗ ;!(7n2j  :d #"Dƣ5Ga >5 a+b$?x/%wHLl,*O#7I h Z{)Z aF3. a fF lG/b xM{M ,(nj Р w/>uk { I?|c F! ~s > GEt? 3 e> 0${o Q> ZB 8TY:ko B .!C {aM9R"gF hvF^21ѬۋS4#!Z&/"^ P)SAFZ:װzp#P߲~fq #S" } ! [I< 0# (%  ,+%Vr6(! yG7$ ;fa@5 _'.Kc%i= 0Ex : 0Qa3K^M _I#  N $6785ϰ(i @f >d0 =&}B -[3F$","|}  2OP$`%imݘ`!M OB  :&zL7 Y tB CYN% 4} WfG ~(&n 8 \!f7MV$$I )lN2S]ݳIg+2/  (`i4 wn ˣ@m^C;2 7@"0_, foMFvzm=R6,<"ukn"3T~#qt<k@"lro`  !iʒ ,m E l~qK L ~&$] ^]͞ W6\ B9g S!m&T -,D SU E0& | #c"^CzLdT ,5<~ i = o.0r3 !|e6(;%E&*)-0R  Td **C׏5 (2] hEo  @>-sB#tcT+>(ڤ6 Dy,6+ 6 "'8 gF (-80ZO :( JWȽj$1Rɑ~0) )ftڹ&0hZ%0m<P"by{a 6p HC !,%h m6U .gzԊq,{ x֡D07[u>06#% Gs ]{ ~Y 7y T&6IY__6f .T"Xʽ.sE VWt--h^Pz5 $ t\TG'f B KYV#0Ea:gn +E\ >#R,+?А:"[KG&%#dB# *:!ݳWK8 j-'Fߞ|W$W)F)B ' _*/6Q&6 L\ف  cKh6 K0Su vz0 0 .Q %s,:&4$:̒  t t--sXodaD5j& )YWK%!`Юڕc* 6F 0Qo1' ~ &&ް,Az^"#B|6: Dޔ7`:0}ު>$ 7$?{_Bu v=(4^Lu jo7 K#0}t %܇.)I/[PI U uY|^?7(v 1e a6S!n#`kv ,CU N( [tyx E%O [##ŝX{'j  q;p~:ky$]Q ] dP  )$]u 0yM'|&~L GZ sQ2;t +Je!!n$+* -jsV}18 @X&kڞ  4Zq X%ٍ7}!PU;^+0Wm( #eտ" :38[#Da@`-ɳ.R ) FZ wGo 3 6l9z e =>6ki n4An~Yp׷-l 6 Y/  "aݞF /C=~ A2'$0-4۾#;U X @pV4:m,x fl"X>,`(qwJ eQeUQB776@^ H O.,D4".E %]`F $7HHb3 ?{HOd\NG D &"tD 'ӡZIldn!F m'w^  ZQYe3M69^jg#y26xu: -M"gK0G"-;j#hDwJM&2D/, zYlv^4n{&m;& ~ (kF٦1;z \r3kV q U "~ L z&u##5xFD H:&j@Yu kqx26(6e?J!>- Yn'ZNwUMg$5t_<2vX.0ռ'mdp| ? y S S{ \F% T@c 9U) +ռ*| ¿b* kt`,= n# hLto "Z%.?aQ> o#zz<q;+&{ME Xd)z( Nzl 2Emcҍ,#  7NmZ3,5V n  klaMWe#490V%` : ?b!,#RAg ~  L\` hIW &OA_l'A&g;k)Q4{}K (,.e%" Gh 3!k(Q|IF-?/   5EPJz !  "  3ws)vk>~`!&l Q   , <3J[qJ !e@  4 ܆  w mS|(  o,!(ӭLk[0W2|S ]΍ 7v׾$To|e8.m^Q<=V.}E9C`5NJ Ӧ 8;d.,z)(.%ٯhw "bg~}K2! $ u@  d( ^ `nhD!mm Y< |@z  c-3)E$"@՝/_vs G|!RW VO>c+DjQ.+շAcT3TGp*9ـ֌,&%lL /Dl _&R*0V$ *:?U AEsiD.%XPޞ iz H iR)eVg}`mل _M R y=K1 d<Em ߌ 5r [ tk;_esehB y\8[ J_xKsYl V  {xB2 a1c[z+l C4!s"Q&' nܧCi ~4  r(C=&M+03|sc18P(9-թn#iF][R9 1@h2Z, |(O%8a#'+Lh U8ߝ + "Je0 @=s A|W IM׀'_3 أ WQ7%f ShcJ8`p B"A :\XJ e\U$ v: s-h,qɾץG')ca*nۜ$ S0'L< shf?N) !`n :Oxϟ%H< ,8j=:4fCWA5 ^ Hi!MO މ//= R%'AC8B#e=// mS!IY؇ z@jݳ  [z@ee?+  ݢO$ /E_~;G(R I *EU&!.'S <!% g$^"h,EK |i ڌ(T`+uk=nq ^4+07$`; S "?W? k-܌6AG8ى:E Wqbdz \9t'+ & 5'^ r#"(t ; f![ GEe޻ 9 + MIR uB2%}UU;#r @7(:tM q|F<aI& ].M7+z: gu9̧.evh/"u+(ʘ)'*-`14_ F k]/h 3 ) @6c(hA(D3"RiR;4Y"Ի+%m%{_,"?LUTx@  U&:3|l2 j '2'UW\rT!$kG~,w )]n Zj &-  WK_3-'/52  p\ "K%Blj$oִjqg)gV 00zWi >|~X aTj`=g<ʂ$guU'z e8H P p a $ , #g,p. Tk )y)-/۶M` :2 ?܈ 2%\2ջk3#(t>P9V 2b&#y'DGJ6 Qz<2#v~D޲Y D*'z_8 |0V@*=9!5:~U MXq*'G=^i] xl+ -+%! Ax. fѬ$ !O1,&Hرˊ !T'4 Al'f-Oט DPx[ s  j/W|F0 %Xx-6; D1 <` 9&U - R] '$#-rf[y [>T' 3 }GA A60  4ae> _ǝ$(, $V*dT,$qfOn=ODuC9 [ ړU !0 3+ (mw)Ut,] 3%%k<[[@ݨ< :44$ "K%:u#!6h0^Y{ 1eg4XW 1D)8k2kߔ:LLp g(TD Zq)<h8Ղ%e ]:aמ7) M -.alh*&$E. Z6'RZ "am7=!4`*be CW6r-/` 2l#2%Z2Hx (Bj)= "Jf5R \ ~ o(Cz6:ܷs+).E I`2խ ވQ_'} (%בI3$\ &7 *ch)\F 6Bawڤ> 1ߏKdH oY M-P$- x_j0e8Tbh')sG<T 4bGJ! j k #+!}\8wݥ3R.y !b#>#T(?A "<(!&Ro%% R*'=_1pAtiy56S _TV5 g+U &,x["(#}ؑ$)=mf&Qk"0[0 dChc)x#8| |z#= v. | w@ \ !G<ͳ '` B%h34 [ݷ~' Z%w ?2;Z{'@AA>E]@ezK y$5ulvBg$5p 33yI9/7 "z* 7(ݙi'm'o۩ [;/ m0W |[h_Y*Op " ح &;s h,/ `M1.-_5WA E҇>?.F7p tvx )PU ; [:Ӄ{2 f' Is,!A n! 4>dO7 NL@ mdq[  '8.2#n&Zn L;p[6$$ت T 5"b$d\G'!d|a3]|\5 & JO'9ߙߎ= 4ۊP"w*!0T5#Uh_W y'#~"$ s$!Vnl eq Xh $ w:52Eef,f?&2~N+ lm WT :6-2B1$>K{1Ju 2 r: E, 4lvN_7"%3U-1%zfPk+#V' ^s' b{  (e%Qs~rA=~{n:7$2"|qP9t%8.-5Z; f 5# E]~&I#!"@ 6 >j V ID :# >2E~eA_@O "B/o!\R (e){"1)5v J 25co 4!EX x) + X*$4`  (!d1ٞ k)@ :i(40a_W; O#)c $MJJ  U݀.HUnt  b2V :[Z  T?  H "&{#f\x߽% 5h[Ռڤ&TcN$#" -/ d(| (K бӢS&S %2` <ܑ0 ] E Aܯ D;ףo&fPj= ߽Ӯa,V  X-c<Ѫ #4H _ ) } eAYN }W+O%*Ong+` Ve%en:[|/UBq -cv3. !Z";5# h*N,A `h;l >| ^V G &biW } 4[c/  2 צz(Rڞ &AItn s+" qԜ+*iŧ1z  z~/ !3 s 7G [}1]k68 #$t`#K#b ١H6;@!M8P u ]E ;7 Ito'i Q: U`fL2~ W׈ ,_7@; 9%Ʃ()^(W :) 0͸ 5& Z +}DF' % Ptd~zT 4$!2Y r 1 *A6' x%idяv#G5 Uq*!$ RO! 87$6 u|c AAڍ7a$է #| "ګ(]\ )g h,` .T)] 3!}`m X)S ې A }K&"S&.Nf6% o  :JD'O2"" =j=  M, I "3J#n Fj _E:%ea=D : }-V]d@%%b;-L'\ mhR'H 7qjBB  W" ޡS :%w3޳ ,lbh {v 9!`OBS }T ,^?0% $'  GFrXNq_,4ӕ7{2.uHOkN!wd.1mhH ; Q ]{d L#k_&e&Q)G(}[50 &@Qx (~ =w>K<$N1x B\ 7%[ A ofTL xTC `~,u ˞ !u9q  B csB 2pt0_gM>u(]\HD 3 B &8LD %:* 2*Q.d6:TP 2 =>'v$"WGPM C[*v;.>%+۰ڷ& qy#tL(j(\/ 0-  e !&nGҽo+l!'5nb a R=Q U 7h /n^rL$c6' +">DG% , 19{K{M jj\ |UiOh_:: N׶ #s'!"ؾ5+ 4 C- ub,A*=#  V ,` ~ 5` 2m-U^ X,E' )2`& 6Dע?ݤQA<4Sr    gA m?W6m5)/)!S*8 :ho5,pAP _^@  ETfw "" G A )%xgWʜ)h 2@jeNP [%, AY<1O" 4"P o_]}Vl K h8P[ /;5{ߏl#Vpj4eiޘo y $M0+(4QE !}w תo 78]iox0C$l  + w-'&0{ZͶ:^6A1DvDf I3`y3$RG#K mG.PW "TT[17&Z$A#Ay-yJ*i0 aKߺ& yR3- m r AyF`H  '#YU>  W,*'"sxp G8(+#_  8S Jh-"2z ޶ߞ5+ LOxU-cF:yGު( g`\~ VWG H:?L#\/ sd  ЮvT  Z 2s- r+wc . @Y w Ane B KalOZ(;@"׮x4J, Hf!xRzظ.&9 /Z  ݞ<~ yAq2; "@R 7-X8o!EZ8!chg2j #* O wU_mUr%}L> Â$u :_O: m5D   7 A+Yܚ9 b^R0%2xv} _`w/c  k2_ _|$ Na&Z= 1O0n3$! DA  yx_; kI[ VEM 2Toޛ" uF_N&4"A` N#Q%h #X v(;Ac f6sT  =^H  9;L X S)^ cP - =5"^/  Ӡ16q   Z)/!w:k=E/ ,| 9w&9s_ߡ!1هm#\CpRyF,,2B#&:Wr!z "Ld%'W߱g"6s\G  yy)_ZP ~+ެ3q"L&fvT I! EPFw O>a(s%1S`IV 0PkL, ث+iy2.\O)+36r2t `BCSl +=e<;V q=N^k)-1x.em;3 * zk` vp!z#8  &Me=   d:&%k.ss  U ?@ ~L!.&, !j+ vF 'a=]" El Kj2N uz@?Zr(nCyEmq0Apy4VO7  c c3$*T  m 4 *S&a#:; KE)i%/T'*5# O%c9׉~I7 vf [`@$!5ۢ93D!Fה'6-&VH  5#Azp{0%Ck$,wNB dkz!3vTojSrb7 1vF ֐p/G_U0%1jZa2!@zPW<5JCz$\]r@XOmn Z 1( fg' Pΐ$'>:-ErCET/4gM6 #(S _. x#M"yyi CA&p/`8wYgؤ'u-X݇gu E( m&ּE8 Zp 7sMW)[G <)X/VfN [ ]ׇ$(w^b:= &, !\b  G R|H#q"#"!7 ! R Zث- Tj [ iP%>[|һ9 g56"@ښgm\E3K"x Ѐ/6 R {'-w=rECU~$]<.l-O+;)$+;E< 4%$m I=$D pI\ a; &h1 :M*8yx%BaK Cߵ%pۗ  ,PG;X+;; GYa %wW Dx ioqzz_-{~M"II/ѓi 9"' :'U% U )>xקڒG ( $I'__n\{ p # 8}42 XlFtj3A~+,e Nv$5):g9g!(RB  Ϣ1,Myg:  S#A9rs0 >f ' CyG϶&P/:N9 $B  ]' Eh:?V&t1"4-$,A|j0$?h vqKM k؛$&hW?q 0{QsE֧ 3:}<6h37 D ̕,u!ijڋ 2*'&' N# Y3I35B&v~0 T Vpo IeA1Ae 7$+a[MI'+/צK   ';e< D D=dk \)u"@[Mp 'pf''=e EF# ߔO\d[ =2'D٠LzizC uVb "V}["v".t 2>&ϩ5& l\`x) # #Jwd0W.۪%@+&#|~ llwH g:B#JC?!JdH ",&.4OLB [= #A TѼм 7* ID 56) i'J*#0*(qؿ\sλ.: `#z7Y@yfr" &;7A}/*ox3}mn$ n BS=Dt DYz)S1ܥY /Σ P% /ak,s=#b;_(Б# U ( SE ߫Pi 002e*05td<7M'* *0-r8!QuI&= 8 r \ K' Y Q%7r#^ .)T'@ Z#V'%߂]"+o_-  = jRT]  o \(,&Σ {/e 1zU <^.X; -.E-Q0"! .T*'f] j_ A 3>F ߭GY #r5Y^ Ra= 9ZsW_3 V \O LT%h٩3 C<}00 ?  HԊ; 7mp: ULRB /#lbg v 1Zr[4v?`-< 9:m\3 kU]nJ1 " Rr>#3"EtP 3t H` dz%T#")o1P! "N =REh,9 {R'q fgYf;l9_ x 5ϛ֍;usڢ0= JA=9/w :go `U/RxhAT ?U Q e%Q'r1^@h:EBU^tN+ xIZ*H/ o Jw8~ %2K(M<  _ wI9 [^ 0sVY>! P+U. DZ eަل! m=[ #:mA mVT8'KK UCN5ެ*]e8. 8 .PwZ+p wdJy!  q80XZh  &$ J2 !94k"52oQ)5B3x{EE=.1S;i |/+#s-͔") h7 Y)k 8 Z"aSkʿ :t 2P0-E? (H {ߨ|21s8n 8F})V7E9_% B) w9ٝ-|E mi >^ =MW By (TR*o5 ${ !%-0$_r^v0!]2p iRr MT y #2: ( (D o .u a\s% "9}% !xF }L#F` 8W e)2ӜrC UP )rr1 1)lGXY>  19!$(<U |mU2;5 \ .Ilm54$կPl % 6"2Q9 }d9![sd!)t  Q+ \5!_C4&*PpSZG>6 _,n $]d+ٌ L- uv;+&L S  7/j#I H[bv `|c F7( iM>j! E0=QU tK-! (aܲ= <|*C :-] < Z]F9U#+L ’%Ol FχDy 9iN4t#,Fyz n@T*֟ icM9n{  'Kle- ]<oT ~@! H>hWC$- 2wbc3v H>N z ({&**+! DC N boTk`5@'y1Y < r _}T'(a +:+а' P>} ~udeb: -" [rAW .3W ve2 a ۑm*o/i 5/'*87yc 5,$RIܣ[Q1'2XcxC]^0/:~, L 1hY!/ 6c6Ԉ_.]Uw2_ $*. NDԻYN b Ym9P$x.x/ 3SF. *M+AusR@ AnۮS.-M E ^h9#,/9g3wP RMT\  ?nikkRD\ l3^63=P[I0q5^Z0Yuޥ ;3}iq.#9;51a)C#Ub&8!X&V < (&}@ yXM au 0  r {Fj A  e)$: `XU,4G'J Iwi  Qo\VW~ (oDPh!+K W ,0hUF7, `gЀ*[Mt L`W k@O -$ hȌ/ЬM(=&-ӷV!-u(2+R-)IT/ }FXr =&JY% Z?_"K;orD"~ lKEH3y- "mHkSP nټ$U!$d =,ҾT19ٌ W$q%5x,38Xer#nd)R7\3٧ Ct`;# 4 @AY(mo5C PExܯ *X.1 ~ u "^-+z9f̕)0m%T0[-=o"&{>oU  [ * 6X":B@sS\.TMob $(!.Lp^ [:/#2YKQ(29 'M9 /m =+mz <B DTm!A"* / )$nH  &PX-{3'8{ NJ} e 8e -&z3\t$N zz%'L۷Q  9KwV S% 7֙$)#19`^1)$j%)*0 zPDA $ 10+N~"OjVEit2BJ#8 2{؜ VQr QR08V kjEP }RZf*41=!!Eэ%RWU!\ &4#my Vi2R-D D p #n -S#Ht$"~ 60e ~5(jG3^{f*@0' W zE{!5B ["x P1*|pfސk~n {?g9 .. @DZ" f9le4=Tk]x) 2u A=(J߹X57 W *|2&>I L~'~) W # Q%7 R r@y#'%qXj "6 &ƙ*bsV hXx Q )YH }z5d!j߆a}W  1x1'*OvIS&.D>J9 '! N? )s%Jj 8CcA .H )B 2 Z'et$)~X - {v ^WH( O5M3_1'*M4 +L ##(̑&P D \33;~@ K%4 ? 4VR|]MHl߂`1"CKv"] r/Z.2k)" w\ "OKm>$#j/2Lrd Rv7-|sIV d  $HgIgq B qP%~^]~ 4}>g/*&/12?uq@rqq }>P 9V(('s % |Ll/3cIwa EQ=x%3$!p 4^ DI"E!60Wxj k;/  5y7%:S C0J JQi  _83JR*lqq)qd-%*´%;|C !4F G.KT۞]   -oW{ c K %F1F ] Z`=!gs , ݉b vZչ!(hDM  ><*t| ;D6 Q$9bMS P{Ff v Qۋ( '|% ]So 5;}Dc @ )4o@  e 47<}!T1(ٶ u~)Chsԉ(`J)AsJ25cI;" "y<)9S}1ܿ@voQ| c-CQ DP9 CxtqJr -O$ԟ S3XAg FW  aH1HC,@  ]Ua% >lg( }% $eq(dLQ yߨW5/M   K".2u 1f?j >\^26 SP J+#N܈"{j( :o  vcNN\4t f^i6 @$laG_|m*B V g)'U  /GD4FU'\CPX Y/Qt!4^)oHRI1>WD WR6F. 8(hGbTg ڦ ,  !ffj!LS ;\3٠ߦh B\(~ `Wp"U))"' 4!2=R_ 5<  1?%Xm, ٗc{%uˮ3 Ljh -y" k'Y*/!a]K a&cW4Ly6 q$p)Gb`kW"̤  U %5 :Y@Y1Sq%zG? v< #UOg*}Sj '=%^ /9!ԯS0 G HF2k%I(> U_iQZX1&p 'S~> Wo&ASS=Љl na ^5 !ݎ[82 msؘ$f+" f DHU, Rl '="=8Oݦ(./ eh @c >"`773{ڦ+W+q?LqRm(Rea5 3*Xnay5 c=ez) x s"B ){3V;EZP&q~;7Vy1 \P ͬx!|7=?L 9Az[ _c ! _  " ~ jM O(, $7x   l-+ ,  N l ,OX) ,?eMZ Mo+ca KA YH2 ޕW "2o:5 \ f > wAm Ѡ^/] J# +jO" dy#6 Q{*u2BZ  YaBu} $[~UO4л 1 )>Bͬј ;Wtڌ̳& %G K $[v6 m)R Ez n{"6> ,# - z)*}rW'(%S k >X{Y  xJ2ۏ<& n% &=e(pi͑ @SE1U%P B"] \Fb  10W >WZ5va Fv=+9>'J DcZV%(+5^/ )"+((%- Ҩ7*6 d}3 L~ll$ ?+^/+  ~&PB )ޭ2, 2R=۳~* X}Wp$ +*- }# c^M#H p>I#,e3[ݱdO IiQ~{ (x)n`B+ʜ_ 0nt5%9 ZAVG R%7\bw?U 9( Ku |% }7c.ېw1 $.2ߩ9] ,U @fk#QT,!NЛR- & jˇi$ Ex s V R,(ҍY $*-T,E)u--L_ t",K$v@g ) B6=\} %8U %o$ ڟ8 ) ȧ'?8+Z%{=~  Bg*Fv + [ 1r>u&% q mIN`) qn 3sgn3 c\ 3tέ|  ]e u.=g  2Dz >P:-S1t(?ؐ!3 :,2e*Q\!:)e`h1ժ+EE(#35؈ o 7 >W4  f f*%u*Lb WTrU&Z?  %-SpE ]"i+Up,T2! )XA 4 |M n.7 + tև"2; '6z +Vτ* 8+u~0.%fH#_69EIQ jh!P1*"(R wԆ+'e "sO rdy6 wZKE}N12Z 9f ) 7, IDg'\ KltfZ|ߛ ng  qo8ߑ0P 5Q' 8NL\=#9݊$hp R W k t HQr)( X,3#Ir(-Q$KK[; j$1{{2 ςCf ~S]24m##o4s' % H3Pf UHD\Ha<.]#OPg6 au!]شB!:1G(G" +=,r b %" գ5#Wi $aχc, m)S *sIcC \I{( 0p%ɇ0/O,1!Tr%a HR`O !qz| hl4ڪS sxn's?q#ߴV,hM4C0ӡ (k;~1`(+ A $tC"[hfԒ.r!wbNnh$&8#V!^k k  ,GiNMg% OQzh#M߫B2 o(3,t" ߚFA 3.8Z &k ;RuK~0A8 ?12RVGD|I), #(2$ n-X [lQ4/*j"K&X> b j-o%>HcD 9V 7eNi ;l < ~pu_F ~\E~SԜߏN8 }W8L5[~5A (if -ƕt0g!UԼz6~;7L)$9~,9N iqI0J1jy cc " 7 M8"3S(  aהQf^2/l3%nz Xԙ5 {@hn1: 8bD-$ <\} wSf: bPA}k&p/79 =': xaz)Q:I)A t! y 1`-%Uhp ! ,DK,A"KH_ K%q .d% nn#'o !^  ܈O b{ 6 7 [ @V5# ~ 2 Sd֭'Lݸr \5,W@.ϧ)\}8E)! +ʬ3= ת-X>zR -x di)hJU(?" c߸ : 3|+ 69m[ɭ qZ c'i6)ۥ %Gsc[v_ciUsP p~**Q!w`M(#  j9]/ 1"< !)!Bj$ bEKl 9xu dae 7 5d<{1oݏWp ( s zy@%>(`'lOVnv3EC H6t vԃ!yr&Xm y}X .* 6'E*'m"~v!>Q%V' pd q$zdxS 9 \ '8'. _<V T%i-:^13uӐS=)&sWޭnB j6 2E$)u!2%6 V#Mbv e ` `vVJ U?[<sVwWvTaGtRN)Ooh r-+*" * F A /{1(lRR nh'(- ;"!% ;Rk Dyl ޞ,p 7 `v +{3JLr'? pѮ& DA%2 7'L{ z/Vtx {L LqY X&+# 3"$޵̥ j ?|H>h^< H " 4?!G RX 6~G >Ȗ!Y'705{&v}wg"&(ӵ77 NAjV1 u+J[7 F -XO0lm"/&q a# w L]n8U] c/L.sS#^]t&?(λ~H|f 'ɼ۾R6 [S Z \ht@3S!$1Hd( M8i\.^~4 * &OrB BVI)8oIЫd mg~(^1%Y ,~J7 6&SdKҽ$y+Dg" *-\|)( L{ d *? - 5Յ) +Q( _ݝ+57< c&E 9m_tjmI J d\N w 7&y-yW !b{h/5w c҉ƒ)du,  mJ}#  f'_' \@]I kj kEYH o";sQH%&Ҟ/ 8sڀ_ /rO  ePW?AeMmp0a.N f9OqO96[1x![xf! ͣ ;lg^M8 +y >9 ʵ %&m. Ҫr &2  q ]} Y4 b%1 ]j)/ ==sv;߀8)s'? ^OCkCrS! ި#Oz<g5 jY=L2DS 99?fXCFcp&E #{"~:ӑ ^4 rR ^ uf <$-q) @6 &)ܝ4e* 8֯r2WA'K6 } d*n,gJ-U7`Aq- bAP >kobu+?)   R233 8E/S$WHT WS:mjiB !4_bO?-IփE : U*@֝$++UG= 4+ Ea'JK g # yYDi!<睷r('}%ՖQv(. xTR sV=U$|".)O \0's#A 5 82{_ */$_b o tS)  L  kU=~7 U2'+jf($gXj5 $-l 5 b , [ aP(Q $@Lj k$6 hۆ )#N q~'Ob{CfU_H0"& aJo$S(m# k,-4tz{*=#}m *xf e]% SCO YA^4 &x?`6%\+/ͼprQ$', PN*$r;0I_xVo bm(@MWt'N"( &Hj& ߃w/T . ӌE"9/ ( ~wKw U׺l+uiVx&02*Y^rANAݹiebK)0 4t*g O(=O) MfXށ~'Dn")#%S )GjG!D^z=,rR jRR 3pT RRJ'j]  w :5 Fu3˾0%"^߻:5~~%P,\޽`ma"~& : qV  zl L^ ObM (sޘ#"|$rfu+q[ ?F~\Qj4.LKڍL',EY@@!I '(#h 4|7[; "iP r=ߤ Ř oXhj' %`Y &3 Io+@L?.N { MH |$GlKgWw|X1Gl2ǖ)t+PI8AT#aCm<j_)P ]V׹*:OyE Aң֯ Zu 8N!1iRWi S;0 #g# G; T o , ` v"p)YE#qN26 R+#hcU1*<(22`CL)v| 'xh!%8nKLv vj#@| oR !Zܱ+1.,9 A, 8~ v C*9E$Ap-^%0Ӯ1 x % 7;R(.-_* w)yY HL<J -t~d/ [#zd @c5|E#2  %G קƁ>* 1d)~ U V)7r60%b8"n2jIMqjχ#O90 Es,b)"' |Ii% )Ԩ[ C ;.A 8qҺ m\?u |U>F 43AW #!_Qw*6ZS+.-O 7"SD(*11S~^T< >1 +?yN_K) OHl U 6` -} - }Lh} xV\S'f3mCa=21 VԔ  LA?(L%^aX 0 U A>m^D@"Vx(N Gs,o[g >RKL+$R9W3( P -@"K=V#F"c b a!/!t)Мw{ vT W,WtLk o'K0xC<$n zn@ ]$05 H #W }:۲'(YF!E &t K0 c- Jq!8 gO`Ӂ..\ E% ! bnd\ 2L.3% vy# ?! K Q Hs$Kٶ%  ߵD+.t՞? v _eSk_0[#N۹/rY"}MFe ;' * \(&(R {Q#? &c4c# _=r) !H`BQ5&2)D GX $/Vf-k ) xSk{\>)_Բg18: vFFw bm 8$j ?'ebW%q} y'#<_TYs A(V.:Uo6p}H  G%#_G| " ߗX$B@p  \%'&ӧ3)XaP'iG6 jgFp&A1zf2Y M3  I:oiR ^W8/qIh qSn&  Y45R Y ~ + 1: W> *8.?a-l,| Mh@i E 0 >Cn? s}k %a '/pb)+ ;%,<5E[# {Y_2^F8 N ܀؍( !e+k  : mnpQՓ*$xD/ 72@(aܬFQ bK"sk < a"P anӨ) R~  y@l i \g+jϩ,*%|"bV #m3+HG!(z w) 0a}2[Q߈a D6RH"zB]l > ^߰%n+Q*#* ~C WZ#_'"@׷fa+h  9`(5p Gz{%7wYBh( 9 ;޺ MSU&/  ? F[&(P3ME7 A [ka0) *Q. ojf&G(y)[s;j A "p 1- Co # 0|  /c%k"P(d"_7  ! pgfJPW|]2) 3ehd#) K1o%Z;ݾuC@J#@RQ  3 4))NXCw / PO3 7ң[MIp K`Up 1 { /a7?K x !w PV%E   ! ܊׌*EH"/}z#/_*lFԝ3A"Xp)3.'e{iF3<)=^T7 }RgVE-"G H %} }If XXH~A&/;l.xc "A&*XFض"Z4 ?^0P%' _*5/`Uz EMU v g _"B e)n-ԥp H ԩ-  'V{G>;H@$ c =!$4 SWa6Q *e ; [7";L)> QM"ڳNX<' 3')8  16+z B*^--*`ٿG(: "$hd,2L$ *Sԑ +#D 6<I5'^]~ e&=# Q\4W".WU AA j 2_%7/~ \Kn/!P }2d#Q 5&0~  mp+ v  ߖ%*n $0V[aUZ Z~J R7,s+ R c*?0,^Ä{4rT"|jćb&*/{,"#/j1& f,(~! ?, -#v a LΙ +)r6cWyl.5 M@u %YH[ A Y'3F N9|IZ1 ](]|?$1 VB9"oX#:#cI BPUc & >P 6 \hbM>/4Zbe7+#"d ]M $ gX1T W ^I I \KN gwT1g  @~fD zܳY WQe$ yRx: P  UU% cii mж~  : w@FbJa*$"2 W  W8" ϫ2$QcjS "y R >v"} >Si? M<=_qk V-P6 #q D`;{luk C ||#,8Vmn N7 g(yڃRm"u 1gR$l cZ ~ D"F n]r `c?i". [ ] W* lGV 4J ;?yX\^qd,u j! ^M_0Fv)\V.4#VD9U(#g< l Tjr6%/d- 9# ne F"1_K% J r r+Lp? S LC+D~K"*//%:0' ?  T3 G%,4 +> -  c?g  " 3XXA b!Lp [J< . >' i nD yW [;r ث0 F8/D/W Se Q"[p TuLo)@zgA%m Sos[) STP5(P#۫ +1 V:Aڰu3N(!P 4U *dR(F.< g||ux[ + &~G+Ķ;:?Ǔ\) %q4P _U.P(&cc%*8>d[P#u!̿3$m]1֛3/   y`O:]cw&.}ŲA'-(,c%"9`z9|dr\O|4 )g 7ʟvn1g *  Xʣޫ/ S% c{ O;M"w,( o5. ^d (1ݘ% ?$8 ط{ x# |H@t6*Io׉)X'|]Â'"8. 1%/ e)A7} #7 (4r k,$h0!i7F goc-$#(ߌWS&6ڃšQ1K*B7 3D%F c=~e|Y5Q-!J2P~ b1 48 (ֆڐSD_ 1 [e* "&wv7&Ǣ߶ Y IsIJ vZ(7 ? j <Mj2 4 S8  '$v| "'2  G K  U{ A P YM x,>xK = -~Q s\~ *Bs,;7RhFB |ݣ(Z/u [S6MU"r l`('2m% YEq#ؤ |xb $~Bu٩4yL 7^RV%y:q9&W$> ɞ%+v Uؾ Fwj $X[=fIh\bT ~s.J d: ?-) M~ -!~V|1ɵ/)4Uu PH%+'+^C-8 {xx@d  uai9 !/jE)=3 O y fw $ ^ Y6 5GOϗd"qY,V)3,], { f( ?Zs {%OJ X CgLww Qދ':T^R_j@&q&ޔ 5k , -QUB޶"%QL;j}7wځ /M "}>9e ""i'$p[ ֌n..X^w(b `'$|OysPO0: 1 F2& #gRZ `d7BKߏ4r$0yܸҽW ;A~ &-C  6(Ri vc|* qV ]. Z"d0 X&- B_!1 Q 66+~bv\"ٱ8w 4f&Gmј 0;?p4. iSH %}" >YA. ͪgu\hBE 56X+ P`n0/2-6-k4: 0 d-?D8.gz#~")+)w&>4 8$ 8 P.fm /  ` @ -ZU 0( P!]~\XufE  m / "(Lx%.k$/['_+ ]2A( #rK : ,[(Ng 2!d4t=&ox|J.M%ct 9B8&ߖ 91)1^f4x9i= ~ 4;#?-֜s5~*#Dn\S 6'b-=8_ R|N!30({_B!d *0|(%EE?<#&uAz2 i YvC6fՊN&%[ o O( VXn:f ' => e τmc |!q[ K_"f$ y3ߎ? 7L^N:_ tCLr؜^h{!/-D #  m%N-Eȫ'/) T>pk, .B&,n*KIW׋E%G X&b!leZ 8:sDH &?U ,`u-4$} W}0d3 [G S%~'Ojq9B &+ \ ΨL^p P bBl,0^oO r} Y sQLԡ] Uߛ IE*H m E  j=c '!E!MS5f!(-ߗ(c0 c Q U n Q CY]& W'.wa"^CQ\C<& K = t[y =5 x', ]S? ce 0 5'z1-!%; '?pm7) fu#+ 'm@%n *Vc-E7 aF Q FC24 bݽ D LRg/Yi'c3"1 y.T|6%t,ܧG `/9TZ .zp ; } `% ' *o* N ]#=-V yO}B_ )VHqD.W !hu,Z f,R@ [?l[!Jis DTp k I$%(  q Nxe/j7O ,nO~+l/.[ 8 :Id֣ޗs RX;<R3_\ HROo۱ p8'1lT x+Z oI /\ b, [v؜ l' 3F 6Q$^ G? O 9ڊW,N IX"  <G`1 V E[rn \1"6"!>C~&6W)Zz" k,s;} NYW?jkL"V D   6 )?[= )P2 8N3 Ͻݪ $M):cȼ'*~Kj i}ڤP\$ `pp( .E %E f#)#? ebEr\?R}b We8 #6* c7)φ׆_R~HB$8wHq }'X e|*&a` !rb~,GB46wz@=fC.F Zj8'B#,#U2x  " 3/f ?k 9 jJfZ sj0݆Kֆ%{#  2D!s) \D1 &V!r=]_n I 7M @=^#d1*k==vs.'6 _U ܵ3$7  5Q^Rس5+9NE"/_Th!L  !Qo/ʕ s24Ӟ 5 G#X"a/w-f{ s cyy#h#Ut^,w&L}4Ls*3HS32}A*))۹ N z nV[A+8fޕ" }Q50 5b% :P"s"5 6%Pns0g o!  $b'g+1!<p+$9q m%v @`l[X pg P ;^ )r1B, ; f? Q$q:{y& sO) tk[19Lk id5 S b:c  b # 61+f() %)ϐ )`>WGzZ.Ui $] r3 '9L -5muY ,T-TllG(I[̳  ^c\+9D! ) 6]Z58Y$>  no~T "Ws gf!$r_: k DpW-; o_L&3 sߩ+$t2 }KeL >/ y-~psr8's C;''!&y $!@ gLf AwyJ ;[D/`M%,JUe~ I=y/rݔ3((T" Te r2" v >I &^GtkpGEd % D&0 + G  K~  9c*(6 =hq& zU$uWz$ J%Ry HD| iޡ" $ > ' ZA t&!&[\;O_7FA#% UPۜ ) eOr) 1 \ZWB  wgoD.*%1 &^ YH,a XE je * &f A[ *LQT  &En+?IG [] 8i&7=Ik cZw*)ؗA ( +h=) EfZA$3&z9"[!Qu%4|Mv: [vC r ;nv rbElg )S  SfG  Cw qRcӻqj)&"+1?F$RXl &;qT_5" d NIi qJc$ XR"vW;y7LΪS?*"M Q P~&71[L@F%y(p6tsM C2j.FS >#D5! e_Y'R" ss P.!{Q E.\S 7 8~@d(z -}M |_sM W-EǴPggd8z skg C; X$!}hm{ E O}Q C%}\ ,$];l#N55U=d_Z'fQ*% 7#I~5ܟ$l>|9Gz1#;&2 yYolܰZ b9܋dc! gA!U9 'P 6&JcP vS1lܩܢ m(f F ݺTe\ )1c^A SJxpr " uָdX6h ?as"9ADG^X *.5D HFKS ~ V1~_F" V% qF} Dyp++#-;4br4طnYT=0- ,v !K#Gy 5 E#(0V 6ـ#j RA} fsEH< kx / I*@#Ğ %!/[7 i "E4  !:U.Ճ+"!g2 5% @<ŗ<i q Sugռ%1$ E!htF} n Gd tA  6'% y1d K-կv{ )$; %bF~ t .!*8  )F>آn P >$< THh F&4߽]k"Tj4 ~'5* *$ v{ .RJi  4 !11 = Cx Eg Et."ޑd IV\)#R 2w "=G19d2 4*0#- KA 9  "f UA'*2XL wCo)c,8rd%1r?%$LxL;2gXЃFT&(Y ;&2R2R,EMg V'3@ ! &mL}y22R Kc%W  wI[|Db}'Lv/ vI!dK R'؁@#B'ֱ$% Y :s'6 ےfK jU#Ա|EV wQ&v -L: *r8;hp  B>DK^.-$N]WXiqL!.ɐ7 x/* t-h]͙" <4=' W> ("hڕD(S:) ON[w "g<'IQ bX8<1s*c2 }E'/D$`>߽$)PLS֙h*cŊ'u)B0]& 7{fH #Y4y"v[K! (k PHv?4}}$Ez!A Hg k>{6v~:Ǻz# -($c9 !Rߢ #Pc.S , -ۤG @"Xn ]_2IJ ^ r&.Z  (4 N\C!'4P>Nc!"N"z   ' V`ERGP//]׉܇'^E^>%y( i  NԋpO!<dS) v* ;'tu x v7_V* ;ɾlz$ApWp,u e 6  lՑm'(K t_~'Kc W1u]5~?\z HQ$iI e ަEtc jW4@d؈v2"'/ z/Rk O-߿.N( \3`#mb k!&lbZ:h Yf..K # s d@  tLBr&}d8u%!(QǺ*+}3  t y%TO-M:! );HK tgVsg  |Aa9N&+ p**Sv"@ -f[:ٗkv sJ2 Y[_fw2/he: D ~TCv@Tm#Nyٜ y6 p/r ~P" oV , uխl]:[_:`r Q/T138 Yn@*.n/ ](P> C ёp-MW wDe  yam H'v3b< $# oݻ*%%8V ܢ(*;@v5AJy 4)GNVX uz H' ~ג("m1.!"jmT#[4 & &_G.:RwS# 6SQvPtez 1  [ߨ&H/}K '<5 (rVk|  uv4>x9.(7utb ^3/zxO] Y 7+0Q')&ұru*Watv( ] 9To#^ |[X@ J Gr F#I (o N ^t>*%CSPx1 =BZOA z| X/ _Q_!=I p<l %I\a c j8? };Kq M> e$&ߖTC45@ ub_IkeH ov o 6im,;f / 82A0F:'/Ib b!ݷ<%wi%r U#z60 rH ^59rT +(~gAc--K 9 Jz 6 Ӄ - sx)X۶֪53*= **#Ye2 < &j3821x-'7׀_D#(XBN YMy m3+{!  Hvj hY qEkۥ 0t]^ =z~:'ESݲ&0H ~Nl <-iePI;} f,w|mf/ P&1T?) R K L[W ?x T7 Ej`k.i5  *<4c *T 25Z r|΃جpd[F_zկ~0 P@ 6mMwo!X$ S .7ŷ$UK+;d &)kG)w.C@E $[yg?21Dt=y2UT Y 4&$FP!t% 1'dD f jSt~ ~ ?< cGY % z 5'  Uۜh.e$ h[/0=# j3 0*2/n?f~UL\  ,&f??'^o v./ N%p~aS9A Iem As b ~ޖ!?޲̞22@zi4h#o~t"P%'r} /*PH*X04݄E+"6EZ%1b 0[`92%|! ׌a'6ޜ@lH-{/[tߓ oֲC!Wװٱ1 2 # I Nn \F\?A zGZ%kLHM<}PtS, 7? dF[<lM2ZAՁ- %H&a< MH, mu? _" B +]Nqi4us-( ,S3  #y  SZNev3>g} 3Q>eƋy)o7T:=hߠPg4M tj%VUO_ ?eGU' xZ@oV*qL,?%$0]_ U2 7xk10F U ?Ԉ22S%/ڶ  !H""Zz ކ8+[& {kZ^nV&uvGp  U6M#&gvePw G*; UZ6 MI˹ # n  4s = };!W,$Y^ 8' 0|e/OOq~n Za#AmrYBwx" ה%#)$*q jHI9k|e[?K3\Rml~6 jlp Z KK6 `|NN(iQ  O `b-L2wSWpwy K /@' %s8  R:01 & *w s6+&'qٚ" S(o!}/6_ Z~ <|(0% '$GQQq < T K cA:#@S^ o ?4T2d zr FcrT"c ߙ<u_y (]5czJ$ 9jYޏM =m]qR; ^Q&dV(ɸo/ $v   ,L!sVE'zx ( B ZI-9۴G 2a2##\Gt h{q/ E ,è&* u 0 BMZ ;\U$ )* #Z/(Z:U]: lE;t΁P0 )60s+ }|t !S K)3  }y`e1ާ*yQ^)5v:# Z D$i% ^-!aXK +6+#[)]iZڡ2m1_r#$&13,\n Fs!1 h\U/I–3; )Fy !;QT'  Мl n. :1;=5&^V0!3،9R tI"g" Ή} #f! n W8i%^Sb%#H`n< ? qG1)sE`6nL) cL)U$s_j Omr yI1C m {_"S^0cJ  V6"J 4mo8+$ x`*sUYq S eLU '8lm  )0}{9XU9Ҋ5MoaS#;UB*.-Ԟw& M4 1.)1."U W1|S@ E2oW)e PB:) V e՚RF7:^ #" Lw'wu< L @+tL C  !,/ 1c 9O m 7 |C"#t?-֑D  WKh:C=-?"]9e.o}ӓD)-F 9:[K ;r߉s?޻ Z  @td+$TG !$80RE0_> no:3(6zّEj[!/sRF; lUJ5ON !|@B jF 4 #^ vbtއ)= ۥ(N^ԝ xD"Gm [< (PuNvSҙ ($uA!J xt zHEBZ R |f''F)k -i@ $ugYEO{p D hHzm{js@2;)WX'M < ^/ZN${Ҡ af]$f+GI  KT b0#,:ߪoL'pcvk`10F j t y LR3pho .b@>Qh3Sc NM.g -u=]ڽ &'Ho )#S%[/)یM e"O # w7aQ4%7 g )-B  "ٍ(D?Hb%.+OIUͫ+7M $ =m) 47SuSyޙ #\ِnrj^Hy #}d3J!!h۷  GL+1aIj,n/x$ yuof ~%YO,^{& h3 d"Y6y#_O^R m%r!:8ڪq/ Q& (5 sץ 2 t5*hϋYR  U*[RLoD 4 .FاU$?  o 3Dp+N-x{ - ! 3C v| ?&Y vMٝ G.D6%5 v 3#31XU6r",Ngx2 n  oJw  b(p1'T"1D{oae,p&",~:0ה_Z $2'hg Hn/ b%ef'u"Tݑq-  O kϵoP 2A+^ -Q#h$P:};9 YL?= { :8J#Y A3R0 Z VW QVKM' ]: <#3/USDm brUAC d h =ހE')1yz J&_փ/|ַ%U,. <=e#^l; _; g^،*]NtzKb5 MF(7 sݠE O&^]܈T A&oK!J#,8E% C#&SCxA0B;YC~  3 s׍W5ޞg' ?n \/%b26/} $: *Wi N/ {:+ 58S#7JtS +1F WK{yC7A )FU cS܂g67Fv N Ge: &-!ZW i4 v q2 1 jL/g6[: 1kVN* |z՘dB D FC~v#>( tSr[4 "un 1 6{Z#8EAq%|$J. 4ugG:V9jL#P1֣ s>xc IW(Tld0 4ZQ۴+x^ 1=#(R( +Ix0Ur>*4 :% v?(204hv 3 6@r,grP^Z*v2 D  ؃6#v2)uضY(9  M _me;"Эe$>71R ],| .  t -cF7&!N+_QC>QQ,<n ".|P*A@  usq@8Lʸ1%r Fݷ".) eЩ|!! bQA5vw\ $kn ! '6PRb(B'dJ]P(# '_ } V@ 9l( e' 6KC" Cz&*k8K1j#4=puM w6" 0:"*&v06 Dv( +9 5SVHV< 6"?];"gD+H V Ju+.2nv5` *\ o!)+7mW  Z+%` 2U `MS@B j7 w0j݃bvSY { K= ' 4b #p>h gwD,$#rbȟס7~ 3у6r'%  &@Kb lo{Tvn"5p@  " Z(8 E _+LC0jYNgzc I;ٹ 1#%r[*JHrSc,3X oK} '`1 p` \p7ܔś7 &J׾ qF! 8Fk@ v$%>N_co%`%7λ7), Tj 5]S$':l&{ e O_ Vz Pn%l22O't|%qyC1(Tuf/i/.HLh5$} E3%: u m[u"  C( Ȕ)$m/t ( F.  Y S lV lkO]h$$.;yLenES s)u;(6 C@1O k`#Tqk/ Pp<ؕ/,_Յ /#. 4T xIkoE b U6>*#*R$l +X >yh7 Ժ,c >M{x B#{3"BYg 6 AV3)'66^G[3ӷ 6V3$ ` IA@_ ;FVf5*0Z>g)$lhE#'9:KOf;< !Cq7 LguN wXqBNeT?oRo@ 0 jgUq4${j4+ $ $ w^9 m{ jF5֒9Ki`r3L%{~iTXQ AT 8%f 'bMj+Ph6 RQu l' !  o x)|B| j bIT*fQC&3]ɥ(- tj&qӤ!hH< #aAS4& & [R !\'z6PX4 v !'̓ t]'j8R*!rCЁ  99 2-`$ zc5Rta D2xF)m \Bza|" 7 .l'\m.133hοy' "d|M#o!!pE ,:y: G7  T{k 12H /Id !e:#-a}7y*jBQQ&u6=#)I wT'u\+- ZmHzD-:׍)-ƥ7kMU2 *ˮ! 0.V %@:R$f tӲ E !  wf) bm~03#cH7$5Fs\\^% ,5 }QK u PW (p _?6Htf^U&2D#*qNCQS ؖx0U 'vӒ ݗH rci, :% H  9$-S w+T   @%ߙd%kSF+@( IVK0(טaBO2k< {RNd,`2e+;@ wOF|K%6'+$ \ 3c;8TJ#`s wP .Qt< A8 0:`2tRpm( 2f6r> ^bELuF,,:iII@<*=<yѽW v_4  j-q (880 0#= =,  MQݯ u vS3 X CUiGVMOX*H|$+4e6*)p  {  Y Ny &+ϛ ! lawV qA{,=` :-VB  xݶI t9$7܉Q&2, ! oUcI Kߜ { ;TWcGߟr +'= T~(>>$1 Dhso y Pg$(z}_  VETU ֕P  *P=L1)B x q( P s ~ fEHp .`B,uJD v 7"Uz - u K0O% e4 t%N* <!H"\< ,+$[ -J( 1n"^$V2ٞ#y/Qv +#58T[ߚ>$If J S3W[aN .q(V)2* A(ק1 40 C 813w`^! OnD hj\ \D1 ڎi &*Ob( CR nC r e/+-5U |FB(&~#68;$z$) P&4 ZHP !!G zfh۝t2ܣ ` / v@ <a!a3/1Iw3WnWybkA> ך0!j> (d3) pR d l- & 84& j~kSha9 [CD  ?ޙ; >1ZrS)?8Vn%XP b 2O \ . pZb^g+ˢzG,I~@UQ2GcH@U6e 5?(T2-]c~q x$&ة#:c y r ڙu"85'W2چ  c >s K.*9 ?M 3ْ F5*unn3 +*i&H  f$+b+[ QgL9s ! ^  .6?  n) 37x `La-,,)g BX,ԽN8" d(֕+"17^t { :)V\&n ?Fzs/  7ztB Ap F+ ߌ u >RE  J$ =p Dc0OHo50C%e(  6 _ײb 78wR`"'P &.6_.bqO= hW +7 *3״e!T'595cbs v2#QIO݀F,9Z}OC2 Fُ0"zxPr$VKτ8hT<B*< _ Br .2+v- `1; yK  Z}s S:o  \Ai75  N#u $o$E1Fۣ4 la2kܐ~>b!]%[S VL8 m G]< C}#)/0J"U*JX1d.0bg5q ; s 8 ݝ˞W%N,"#&R 68JP3* x9K*e60"YÑ/Smb3k> si Z/ EuA r FtR 5@J; k ~B ~~?vn[-pt S`KPQ l^r'!~z`LVoZZ\X +*sH (O*3n ]8u\8 {n3YѕT#,lf Nx OGU-h%5Q Ifv @v) & lWs g^ tqyx> dwg>_1:-= X+&eM%*Q BB}; x^Uq (F? $6'NlX/q@ $躼F/\>p ". 6q3mGZ {)g -#I DjI_ZO@q $ T vVc ~( Dy<R""f iW ;&4 7X,^3 d.@$`nrH 2 _ e\2ܵ \u32r JE{HO x @qާ.hvv?#Eo߹.- psO XOhBQa|"u!O4sL )  ݣ!cw (W]<r p'd {)q| F*W+ 4br0?##I #c(4yݧ*? H[1Utܱ" Ov )L< 7' VgŘA%7['=΢am -k Rb'^ ami9NF<q= zJ >Yn`E/f&S O  %d6Ç؇!!~f }\vX&^ݹ_ l#lu/ ]($܆ Ab  19n #߲s  u mn'΁,{htӄx;hcO-|z)h =7iQW('# g6k }|kFX"' HT ( ڢ'+^p6*g()'Y J5 3#p @P@e>&,903-4\ iA.&1C&mL. =;8~"[$u6̒- Lm f! 9# A^L X& ebPӶru/ m !o   Gh &/U @ ?$"+O  Q e7{dow, YI ]5J\/E ٌfOD&:*P N&^** H٠ * "w 0.]h<#CMkj  U 5nw%Lw &Cn&; 0<ܟ{> 6 ٩&&6tB>c  /W1Cqr{ %x:eu Z 2 @! r _> m4 "Fl W6]R\*'a 74 ) {(,X7Jż'$)sBnX49~c[HWW*)ߖg7 r 2+ u;+ >0E& tZ^mA+(o Gwv U o%w_ h a {ZX 2z /\^#J)z01nk'BC-7X$dڌ#ooj(!"F9R>8Z< bO@l$Mw ) v>L ˸HY^S-)A||"cD+,hV{=JAPWbBˈ5+2yXg !QP2T-u1NQ գ ԛ'=VQ"ޙ$ h.)ڸ2 )|db"*c[0.2+ v j" w"!ێ7W!7QQ7,) ٍ6 JV]#b|q gyl 8+t HKO~xL;%]0|M:{ <y ST<%)@YsgY*")7d !(heF0zL! 8.Em) {~Qn P b 5% }ONL +J .Ѻ/Q%@~f!s FH E~ !COev6  a, &g޶D (*M@Օ$ f| $; !B WMνY3%# W ' /L% d$Z3XCAf"&v8AC*#R'#)ܤ˼+=&=w4z>g T)v@*ir_} [. '*r0 . )xQx "o~ b D9 iߜפv+ O !] #ڼ]n6n h~"7z @- _Wh*r/BڝSOZ E3v( =՜d$*%!A( ITiVtK8 ۊ0%`F1F ' WZ2T A^|+ ~V y~Gnۍ;5>M X  w; A199C  Dg 1^+m9֘Қ'!8kO& Cim>5dH 5٧e#q$r@&!)r KgD)V4 :p7| N 3 uR,)0O-p0( HyY;AG/9 7xD ,$?0" d܀ oYk/ Y-` cUBx # R | eW|٭4/x8 f?r j7y/&,7"  Z&@c.*N߅7   K*6t iv_Ы\L\ !:1˄c'2O_ (݃ U xB!"B6֔ 91 BDK@^ /<U ZPSx `/  7K} qF&=n :o޽k4{>%_7/U0+ aZD&!:޲)-@P6L/br fg !+*VX~2 P+hl' k g ޴ >T'*PI8_?<^ r/,&(,zAL $qVbH3 |9"<H d; g[ HDm40 V? |ނ(o g 1Sj <0# r|+gp7zh)C ׶VN%K! 4x7h&WרTROR $ F#1PK9W{hy4) (+[>Vfdoabdڑ*, HQ"R 8 3 i$ 3t!Z9!њN<k q/ 5 "kZ Uc%&N2,.kn7! Uo} ۶ KZ<`'sIP\! J̃6,/~ <ެz3,I /o 8,|= Gp&!^Z)jy G N  =Ж$C8"b !\[ 9U,[ 0ct])1:3'$Yq=gynPSqs' S 3՚O+';"D, jӅ5OBlqB PI>  VwF!h&SGv.5 l $x ʌ'&ݐ P`. >`$+1#'aVmx0#)C* G4]Dno* $i/ ԜxVoQy D ry},Cm ` ,eIs߁0 2ܾ.)La:3͐_D g`,` 0 ]uK{ qG)S  6CtqJР(>0l> ~\ˆY S! >)$1ZSpj ` U}Ah|`Y& + x{ ) g+ W q0V?? &u#1bұe #Iz&3^*P.P!:#coy #" D*2 ,^f HW' s *MS;~+@sa8F (  ۋ&jD[ڐ ~ g.D.v/e  XՖ3')> W϶/,L n+v9ޙ5lK O۠{ (8n'_]{ b_6z y$X/B+7CY%Ou U 8|bOB Z39 :r$ϸ z72 u#{-GߧыE#0ں&ie9 , zH^&v \x 5ޭ51v& 1|=?cRX< ? yCI5  <)C$c? %E0f= y}Lv> T {A6E %BMC5A. ^%I_t" {a0 3)޸ $ENӿ~wMZ (WPu[ >&-6y65{ @l)O6 'M 0%^rX?:ˊ|*| mi '*u!!q>6hY֕,1 9 ͙4z2rL8 b"~ Rf**$$*4K.eTh{a S]\YHlS VW Sg>OYӭ  Z( (c o iJY|t% R 0\ 9C ^$w( B kۢ * 9(_1 +- $EP[{,t"Y&#:4c Rc '!PӼ/?&~W0} D%vgޫ'R S =Kǽ#zuQO? l4whp>I a- Op!?]P:6׭ 4r^n iU+kl;% ++w]lL<  {==( y9 $U-Oۑ˙/7f Dj L9?  nIM Jg 2 `1߰M_{ym+^P"1AP f SKA fwaUL=|s b(,X 3hqx)'Oir>"= _N# PHJ 2Hbc gB`g| }lA ( *?TxE.<ۻT M //^ YJ'A;0CP. UmRL! #Kj&.6WMb2X p7Xe yU,(@6*ޤF2,V >]&JBl2^Jp #3N!Æ3x2 UHYZsrvݠ"O8"I.b %8Ir&hkƢ? Ժ k{zc@D!  [Q]9VRx ^ S6' _-3F0N [9B<0%Q]/{.6 E9  |S rWkS4# ZzuG'xS \p `vn"w7m [= UxOY a d g%d#_5 R ;!;Qv~  3 4'?  w th \!#p_ [Gn:@d>'`-Q yH= OYYj ,{Fm#:J~s h4Cj vߵ'6Sן ed5qp#֪L3) $hu Y@9~MX*9wa"Ŵp w\ B&ԋ1b>(&_:ܚ:i3 ƚ %2Y `s 8 S,>Oؠʈ=3f,n7n{ V;w  X$Y-u-r 5[< 8p^&" !%+<܂ #Tۍ 4(clH s }A #Q$,*t_."/Td ; wK %݂;zK.\ 7Ks1sNM*-h_+%B>mob##  uYl5{ r!ץ"b(L"]%& o. t&q$<$qzx )):f -Q {R{h#PT"3*-J/X [?/Szb8$qN-Ag5/$[ F@"Z w? |'3X ':  . 3 y!^ g\,o%$1ix%G` %7ooߪ.\"K S1&)|bUw4ip G<)g$@ W Z!: d1&%2(:A""~# Y JqbxZ fi h%OMFRz2 E ^ s? >YT!(v37OѼP %Gey`k ' &n ۠z(hQ \3 ^: ;-(4I2f S lU? ޶'q&meFl< -,d %> u(R?%S h[8 E<,]ZЕͬ c&FC I1 [~ d-i wj6'+F)tݖv$ut5N \;YsDV^T;  /1ן>6YZLJ& 3)!E\! ߈X9f/b. d wΟF"2#kX(cLEtY_S 6Vb qc&/sj%J*Jh & P#;בk_Ω^ 3(l1 s+*o VM? _|2 g 8MxSX3{k9.4&,;~ ZBS  -!e" I\1= QQ  =?"^ A5~OB10g%py | ڥ Q p d$3 ,/J 3;CfBrW!LV ob b 'R,d-! s "&}&R\'d"'\9F# 3<]N` J KY} &# X  ?Eo O%S<,0 : 1 XB$!& 3KrK Xn[ @ x +5r%c 2(2H!/?S{2 W ap"=ܓ4@"3( X 61oU\O_" A=i{ 9 |JnUMhj( iLݲ" _9r Q jsl !?)?( )+l\k&r" BC = Ug@ +<@ ~Q I%*fo6 z uw-`, ۝=/ Wޝ 3T=^{mg f BA~r52L" ",H:jc E ! tm+r6*}R !  q rCLl ?N pq  '7* 'F w?WW% SSK1A,&ޯ & *Mؓo"0lnx  8q"F* #!٭Yt +K[&_چ`$rgd/  l(j  n i֦B!"H H\ u2e_kK['^̉~(q5avQ$mN05G4 ue oL;'1'G t 9F5)bմZB _97  : ^@+Qu Q_!=MyR;4 !6#0KӞ(03$H U2 DOpHz-icܡ)p(= 04'{&z5 0ۮIdk&_v׍Nw\+E U&|Zk',&G -yzMg< </M Ew#I Z'ݚ+1)L+uV3dvڠ/ +"I,   WYs b4  -ؼJ>'Z}#K$9W 7 FOܴ !1] oSދg/4׊y Q.HEVm6x<&t  ,! `( wn4YJ<{J WNem ; "a QqcOx eJ8/`~^\Om `k-OijjI'*T]| 0 `ʏdEf]8 z|2 :&-,Mu 3 iFR 3ϰ#&=ҡ8/Sƍ<`~w$&ˢ>(" @ 0'GI}~ ߁ M1e*"Q$WA"w ޣ04"[AMf/rZ#G dWYnr6>n!J X ,V=}"* "F( =O }]  Zc#qBӧCp # ; #&Z4-  z 1? 6r*! Oe %7%i. $`kfsc|  %)ם 3(ٸyT JWۋ v }`,/wU /M+2܋ \ @ ;_xPܫp+9NTNb @QSzX<ݮq4`"v5,1@j SR-yWM }u@ `6o1\!' W2 ML-7'P2>,Ӿ,+ iSk-= d 3K]%+ KR&,.8:Dcr!K:M8|"HX'#N} {=-/^'6і0Iq _% D  :jt h )K5O da^ ~ "X ~ ~%lcC  6+Cs7ݶb+#$-@m%yg4+>(;RP{u#d''U/&o=˚"+k  6R^K?[4WH)=-> 7:= P& >y]f#Yzy!xiS!vJ "2GM 'Zmmjq2.~ߢ/f u  & Z  !D"vx* S3@s/9kI; i ?zRQ:-=Lf6"  |^ lRK% ZS{q  )$ 5 bJn Y/ݗz5$ ?F9~O|=? %#Qq 99_ zJ x_<E'%R \ [V0%("LRʬ=)p18474((ݼ Al"u,hY|&HmE _m 6 +tB6* \k!4 \-((BC](n~G !n24"+0gH*4 7# 7o"x ,~# ] 9' xW# *o%.38=a6F PǘL(,d_-Ud H5~ }& )Fqk9֓p,o%#RoRJJ7 ߎ*(f\??f;zv i=i$26PA01B5STU GZN z4)5[c<fDТ% up=-Z՞Q| &<IR{ L^T"z j'o[-erZ ,6f1nr!p091kܕ$1#Nnf!=P b߷15(ѳ(Z*)IS}0ѻ͎;(> dMjh'Yr33ߵC{` ? wG !p }7 C 0u$`&Fl Z/&nr*/ S(-SVF6{T :H)e ,yyjzoMby w): Z!?7n6;~o 1,. ( . !7WydGt /_*8f10 C~: };\/< EQPxD'l!i ;=k} KO[ # FحHFT )R1y)l \[i1s 0me uZ:%}',2- S"7 4 $ s%F IӮ Vk-si)4KaN@={F:1`dX JF;!j `=u/ j_ y >3-( O$Q:  H T_r9F l|= ! :rz K ۞ <iF|; ,[F  K{w R.f&+ n j_ AWLUV%g E.!Ex"1xr?! p:/ =^fVKj 9v o E1:S!~D  `$$! 'XQF$)F  jYA !. g t  wLm,5%hSf|3 I *gF00D <iimq bEPMs-L\A[8eB^ 98 YZa J{M$eb !xni ' " N:!x " UG5Zs7( $a'AU< A/X2) 3x^6 %9 T\!-Y""yDT .=e`*1e:"Z>JayP %KQ$8_uR ]PphW"G$eR_ -b |Uf@3zh" vO s< ^< z1ew#4w !ayg}5e K1+U;CYՌ.'gԗ(44"06ת#C4n.- U1_fߛy!(BBd^wx !Zm#0ߴ1fݺz.u X >)R `Fl ~"E2  r6~"`{s,< ;Q3`L1@3&vZ\%A`<2;.J0!-iЂ$\\`s";3.[l Ki^F1!QnVN @\r_j C O0Zє5jk8&l,ghZnQ&? 74Bf9C) V!g"f: Ev  &?^تp" \ $< 3 LW{"S v"ƿ5 %[+ 4%wh Mf m *u{*f߳p{S)*  #qHӑs!!` % )'ν B [@l 7 `('Dn_!D#ec]I%U1 3n^YJ*{a-&'_kԽ5p քv8' k o<'LYFG^CtdL% +4R,+ Wm! D`M *Xa1.j_`(2 bfdrfv ji Г=J#},C7*!z3 s\|h*.Iވ)Ch 8$tM djW p)c#&F'%+#;* s,7ؗTnF Jhj Q&a.@rݟJ a ns NF<΍ Sl1$CHd jk D;JZ : ADo (2Y*/zy-$EK =~iz   ئ-jKt~gE<1h6J  X߷y&iUp* "tږ+-#!}l'<yFl6O$.$QՀ4)+$ i 6Z? Ll&"'t  &>J֦!D F!Ld8 C:k `>?+q"9VCM s>) X b`e/v `$v7D n< }g \k V{ 1 %ޝ-e.S? 2I t&J6 SС$Q& J0k4B'|#=$ ,n$C%][S ?Q y 4}V!?Lج#-Mu@ Q!xb Nr=CL 3&! ï :roSAbkU^JңU"v* <7 # OU RdmM^ ?WPXQk 1'xy!:d*)6[&] @D jM0ȸd 5O &Z (F# H 9*N$"$g"ފ bal#A+/h pjI+g/!0 + nN+i'N NZkN 5Ks HQ )co @~&S$p2n#*ӘO[ FjדW  T$ahP Hr'x ؗ )ޡ1k p3GU(^l0 צI+.%')"'>V@ V2Q= y ,cq g !Rk v J?v? W &l! !-8"WL"TRݪK<p o 2skvD3 1% 9m :1</ҋʅ;8" ;MH umGD4_I? & m$.hMer^d $5d &/ ^-q3e' H= "7 =M^]l)+t:*]T<$%s%/&  N$+-_&,2ѿ}frb  ,PAMOR$10H8-X;%R0V. X>m#)Sp?r5y$qb{v"=̦YBj$X u|4'Fc#YKh % n+lkX^>VK" J.&gSrL(;~J%-{&A ͭ ,UWߣ,. M$> p? OՈԇf i14ֆf9qِZ.&(FS $C&3x-fy~;5Xk]o(8o[ ,x+g--);`ZZUl 6-رij؆/ 5&alf4%Q1} 9I׳u$4} RK;0]2T Ne{ ] O/{O%'\ް !ֺ 2sCJ/ n)ya |1]E&\ Q?u4Z!Fa{4 :#Z -IY/RTmE[1M0܇w,qH' GobnS:j/AeNP $ێS$ #gڔ**/ # F$JO N>  P  ( ,F7m-5/bUL-*%V Ƿ,:n 0{8Sp4իHBv)#4  &Ҋߨ)%*t0Dhi >+ 6 8.y'L2;W^> rWJ'2 LG@'!sޫa #_[sLBݷI"U !Y(.Si J_ UL%@L/T!1v;.!%̮h)%_a| l<V9 22f[ s` eL/ ( 2H% K4ix|,fV \Xz)- 7"?E d 70A#r-O\O (h3'U@ NeJ8o .@LO̐Y v OT&Q6j4pg%<roS}$p}&6y? {<.qR[%i }~- 2k){'`Ү6] :v%53)8#s)@'4 #@ L g +H:f(3 !oBK H"S hL| Hz }u1&H|jG.@E #IwR *P 9 N$1$_ڂI)*ZK^((34ܜ 7G S8 Q/ w!& Ec:^#X @< ( 5$c< O;Ct. /Qkfis·&) -~`k4?d w [[ )frXJ H1:  J /aV2IyQPDEkZB-g[) K8u0}Nn"~qztG,)?\; XYm /e#Dxh <L oLjZ. ' #K mr"/о ZW -w@Jf,G 6#K ; u+۠o9V+R #n el_J1 1ʅ$mZ;b "csdF5iw\ ,'"!6)NX }o:R 1?x*ao(Q 7}w 'nJ UV= E# )Z &% ջ }hnM;@ })L]4*1L  _f '# lP"9Wt*qhtmD73[ T 8b PPXU TtI  U h A&r+|F\-( }Κ"Co{ JT a 9d"%R܎ KT P [rsW4t(J_! z 7_Ton?{ ? s~ 8#B26 P KX(Q _E4{ mFUn4 ֠"%, Lv @:h kʯ .1 {z0!aaO'w P#T V6}B zUF ~<ݮs-?I2QW ,t/ qq$X9`6. ,+ D,T=\x q a #Arr Mo&3 Lc v_+ \ n1t KD <: ## +; [b pNoN8vN Ѡvpvۨ#"+0/)9cbG j4{j?9=I͏(sO *c>ʍ[ r 0.#*B!5 ϱ',+Ex\fx('#o$""4$])/Ic & `V8.  ,z\n^*v$  G I ނ#0%܀& /$/~2H~V7i15:&!8{ۺDA c 7.#Ѓմ#N"pd>'qh'* #%M_- go|&o>vZ. 9̀ *,- H  V , Yn1 9ڮ\ W.[# # FJ ve?e<-6' \'%!.G~{ >fY2  Uu >I2L&ޱzKI} NL2LQ)( 0i "ٍ//YJ7 S,TR.- ]u /C# (%ӥ u wA VJ9rz5-r9,sFtf,(/ֶ'o DFHR+ +5̊ < E go`:'\+) ( (n+n{T^v ,r{\:}I!Mm/aY(E  hm7YZde u"o.(#$( ^tJnw׫@& u2[0a+=-F DDQkw!9 LJq%7 8Yt7 D R\ ?a#Hhu~ K + \.غtܹ  "N25]ۅ J^j$d W-J "gӗ"6@v$@>d ` L5 u_%3  Q UB 5>BxW~;k= ;\'$* W'l P#;tM!  R 3C1K)U W#O= weo}G#&t!"(Gԭ Z=&>^r. Ec! l! C0$! [߸ : g<[go 4*݌bg |ڑS n( od:& / ke{( n!3P C"ANT)^K>tQ)%%  rx* =݁o &+ ! T-'lL#(={R}pWx/o͆($:aDߧE^v"%)x#$ $*mL9R%mb msBf(# XH <}  a #J| =m@kx((-0#]y ' #SҹhK+Q6ء">9 jzI TTm S5>("6w$7E."=M sg8{&Ay*{ jex :Q_{xk r  UH =T]"־(- /& RׅaD (^-Rc/*9 (v ;U'$Vjܤ-Q S %)&z rT I>s |+ԀA#!{0B]^I w P'+g F аpGgO3VW]R [# /  . Jw (ӌv,*4.0+]HzP"Uc& XHQA Ӥw$ s]r)V"hO $R 'gD C1{ Ts% E{: Nf%!| \a)\`F=&sR@':n"_+:II [ZsJ#c#uf ! )6 Ղwv,fOJ h/WG$N ]WAv.c#yxFi;Ri!p|7h u4XUB}ilc RL!fbHEw!>UH5tr6lx45 &cjY#}f[ NeCBQj =&m{Tl2 h:~% 3@ 8,0K !=Y"ٳNLD 8A A iq!T'B-!/f 8?hm#*S^r UZ/ B= n 52̠FB/ F[ \K*9r!R'6L.^"S"*C '(j{ % [Q HdrS9 c9[ӑP I !MP T $rv#4Ov D!Ԕ _#-v4y$޹ Re3$w֕,X "ڧ +3-$ jΒ"6~ϡT J cat ".YIRW84 $  QrhRm8&HJ''6A_!P*Mn %9)^ 5hnJ^}Zt%n kr^ (o$P-Yxu ?; 2i"ۺ;8,!,T׵Jӛ#t')|P~!A&(. ikr$ 6`. #54 j ] HO  EQ4jgPW/t`B!"[ T  [כiCz }6#1) j b^ -^j '0 *L (HKy0XzeU  `qg3p uТ $d7!G OaOj2 ,U"_ ~~NAL~   S !سޖ  (,+  XG] 7 &, hg _*դ )k0sDFG 6#?`x -n cs&Faa"q2@P@-..sU Yݪ, /7, daY  )&0#lp>5]WbL w*!Rq#?; H"|p} .+Y&XF%;CvF[0yC_ wv H Dlp  &'xAT7s| _* ]2 ۴VT4щ!"l)h%"Iahg i))(v 1<rIy##.7m{,;E9}0*j,uw kFI -O  "T_H{#lN)g5d;WqS z&jQlM3(xiK* U)%N܇(! BjK $5 K" S"j؎"e<е,H 1{{*Qh:M9t%lAq m h (@~  7|Tv6x Q)l 9 .gɻ['  &R IG[ zэc0g- #Dz2{$;l&mأP^ 'sLl U<3؟X -K ޡzFP'{ ځVH)$*q)n!~3ؓ#u !Yv(KXJvZ Y]$6A Al \ ԅd:yD M1y|QAz ^lE(9[D2 "#"!?QdH[~ &&&;  @Yc't4@1"7_4l'3 Ij E  .C'$D?jwoVI5g^z+ Op4Y- 25Ҏ'(V>iW  La9 )N  70(Bi; v uZqBkږ 8b&=*xki++4E H"{%Lgg0h2k cWr _s t&. ,L ] 1$ta,/9.݆\' *~\af!>ҽ,xK N]! wY(3-m YB4dNMGN 3 H)MF!`8w Tw /\'!M&[J/M Da9]2&H V 'Vq # 8 YnQ $ J9uF 5!Al0Qv 4 P8.#3p-_ FD n L0 9ZTH [ &I& ! #cC*f4yzSl= !6BkqW%#EO6- X=L cٴ&OZ(XJ +W'' IH%0Nb"\':+d A^'$  x3% 6zۋ 2 =U?  3`"x'*uV +?lԅ;CC@%jptM]zJS v1'ϙ <y66` 2c,9<֌S' j 6i/ Nk -Jl $'=Vp S 'c$+-(ܣ&*@n ]64 N J&. ˅2pW,pA&D 4  ro=z]xu?1.0cq$$!6Y̓z):5;_qKO* w*~ =urw1tB(~8`)V mXV {YϦt6:'2$R8%Sh% 2%JFm5Y^d # 0 I-$.i\9 *&| > -$I.85ʪ4O;C("> *S)e%J Szz! .P+ wjuk? 51iE'  4OsJ} .m : \S).{_S@!'`@'R(S#  R L RKݏ) %]B)mq'#A]TX*"٘/ יw%,{ޗF * I!rn 7{- E8DU E4I  LcoW)wY? E C= A 6 . qgj}(b+kWv 9ac >4q~#= ).h o"+l Y" [  S I4gUI"( sL*]X"#x% e~0w7 *0i^!&FM2 6]5   --([:& lH"4' 'o0l %a n!ثb'Fir[s* ( 40)&j%xd6NS>6O3  I Y' ܳ#3y9Lj[ sՎ *6 Mo_BڨJuzbwZc&` 4!-t9\^.Ds*/MTG/H}7j ;(,Ȉ8E#%У>)5{i$7!)r ~$/7 l; y7n{n /٬?#Y$%s1xސP +O S?NFW.srҨ ~d@ ,\V 6'w XxDC= q O )(D w+F ?_҆({RiY? ( U\' S44'j-;Dn dQ!g4fd;G$y#9bs0,n9 T pJDHHOWXQӃ>/R:x[ P!v 0'C%0Y +Cb4%?S Z$1j(u0vq8+Ȭ"#j >  8L* Yd pM \&,K**y P|g!#??| $Fi1 Iޚz0<Krer  ,>\M c (+ V n*yt11p!(9ZP" F<(L{$ ) yO>kb W  ZVm*/-&W15p ")*ԡC  Zά؈X-:i A/v4 \ "z"_,m=(V0* WЮP$sE,Y_aO/kٯ"h  `'b * r '8DZ\ / ;]Imw4<xEqi% 7==nT&x, DƉ',: p1Q2 p Z&`'\ v*mJ!!E , 74ެ9&" m4֮`Y/;ײG! JOXD Q/")&}Sz"  K7N o W?0 7"t"Ԧ;QSq Y~i&] SovW8Upd 7\LW5Luj.j(xۗAj7J^ _jmxpq [# vI*fZYP "  NcI]a % rf!> } ,L(O7"#m9~5:л3}#$=,]P߽t+]w Puc|<#9`= &< A+@Z S&B e D'} S  t`~ (J#<' :sG R~ u4c 5h xUg%(M8  I #,060ڝX)<ܣf~zhS # {u%>ߔ Z^ }#d`ۑ], fE/ !s: !7f2'zXLz ߌn2a05/ 3)X J4=  =>Q XN RR _'Y-hJ{ i\mXX/d:%t̛_u b(',N q|=O H ^ ݅  v &[ !/y F x$T_Z ;Gg W'Ww*dmL)SC"zWH( V[$'՞#: 0E(_-l=9k&20>&a7> T=SH@S0N M-eV >2h - ll!e'6Aa 'J! #H^I"T9g  ~lx,v_q.`޸&2 /WHXjׁgXy4?t *a M  k* #1ak^pӞ4ޜ+K~9=3pApD c  FN&v B;Vdx O. '݂0,&mM*f5wm x :KH*=q"G? M ׳ =## L w%Eaڕ $jm !L-MUuS<="'.ɓju[  ܬ !Em ;ujuO P\8&3um * Z 2P/#V*z;y{h B%'Ւ F&FxטAW e.5]J[*%06!2Y {,%i ]hR# >"^B D"  HlgZ`-2, PT0 H}+=;K  i( `+-# e.y:&I'Kg>s2<  .,X*Mh7U B 4oC twdYI1< u:E\<'=9 *@w.r ?^]\*88#A [z>!!?8AR*aN*)u a#w  0^K ^0g!'؟Է AkZwt 8!- &@QݘVjv'=*1 c٣  3X,o)%&gr)jKG 7qQ ?A QI=&x(h*srH trb+rH67"<& Gs`z$k|] $26F`V]Ffto!h< tB~_-. @! C}l-#u}ד- 01 @E E ft 4u-LD0 /# iq֌Q(DT r 1. \0If*S,(1`!B\R K Hio ZOǘ!lxւ"J(E+*7+TEJ*mX@ɤ1 h 3.S[  "J `NGC [{{)1=/߅-EDҙ #+K v%?4H4t+hdd6$TA 2F gs  ;q W =uuҺz)r o e}J!<z՗xFnY\ -a S,I[9 dy&u ~T#_lA2s>HC@Z_= 8 %  }#6? >dbl^FԘ'3(& )*czC0D?K gOI UZT 5# /AAETL_"Dzg1 !!g"r m?L*8hLW/ E$ Qd-, E&{DC8:Y @J7D 8EW}~ ++ *rMqh+3g! 70 ~4  ڽ #m $Ɠ u,4f 07% ?_)a-1 "$[5Wu^V: /Aa#7,3]Z K Dwm[ _#d U x d!~ؐ6 ,<Xs'w$Ɲ?{sD * )aE J-'V F W,fO(%7O};YT֤ *)<cd"$Ψ :U,'Kq&`E 7Y ,<:r"NΏ՟ d{`Rr eY/3 +J!a c<6#f!]Ry w6׃ 8  1(l^ . dI #H/C9{ |6P !;c_) =kO,:]X7 gl Vqu%;UY' d<B ?SjE7t,ZCԭ/ OiX Y'&B y#cx֬ v_ )z+8kje>C + k $4-~4  vd0#"KTT3#Ӓu^W |" &3Rh7Rp$!\JF%/XInemϗrL(s` _T `6 YgCԤ$u](D;sDCE quxQ _7h r7 NT @' 3e# j?)>D O n">NR# b E,K~zd8U/$>/0}(")'|-ez9Ko Wz\A lCZb?# (XF d:Oc1E>Z #~m^": 2#1<  M #r To2 ~ 9 ,Hߪ43zbSL}[ kXJ#Lx YWCW = U)y ̹ %6k .M 8 n;heXݛ2-tVB!C7Oqb \s\p5[    _ ::%lx 48! < }9 7"T1  / Z,۵ D5vAq| blz AR"$D>0/4%.6 &f I ;V?V _#JcZ`T# l+#Q0w[.o?"flS+3Nji-l7 "Ҿ" rr28Tߑ79 QTmmT0 SjOw $ ׇ[HI  0`E(K,+p3f4Ul. UkU 9m/!+ ,6r`DBe ;E0tGShR gRf(4@; 2y%p lϏ"s!$ -3(4 Fa\*g \5 !1 k Pl_9@ \k `? KW jQp! P{h 6"& s{&Ã'f{ pn)u x0sva  0ВD)  DD]XTT#(ӭm## (04/J7d (bbHfW~3#?yq#mR&"+  &6 < Zk ml $L q 0!Q{WZoEs! rc |[ >Fu-l.XK20 cJC &( $#!fx4  .m$m(.\J4  '%N 7:9\"ƘЮ sR(& ~1J<V>  _pMB bN-L sq/ G,\JA q+:~CGH s l!`e&i ^/ (u6ZN /}4I/ zi=$d$ A !U z\N|P^ZC{m) 2E[N[lR K5N`++9~K U,T-0R yt3 rEp ]%5TqnOOq 7"8;\Z6VU*o#Uɟ &|#7C1W1$,rJ*!  VAgII kHT2o8~32z=^/Ҫi}8 6#_8H* d % S;JT _h.B)Pr(V ط Mn!vHiB1 2J RXbZv[4 \lnج;u!aZ',X9"'G^_sDEj.%Jށa  & x xzl)׀^ 61 So{'\5T N V&K f G0t#O հ 4N/@ $K 2E h&M e9>* zW5xJ Y&YWQhKwc,I! gK mML zL />#WV:|nk}Ze߰,-_#U) &9_ YΡϗg? ' ֗Zu <c(h79ӰQTK!&x}   fY9  3_m7at@!nI )g V4  &|dܢQ**.Tq e  sX BrYK6+ ib bt[Bڢb RqX q  \ IBp A ma8.Q: 7zG2]Go { 1O"0T1a- 4 rr J FB3&^mD-b oSf=/"s"̳.S0]%) /zJ )< AK 3 *lf F Dd8 <JG1nkOe &$ڴZE <zY@2H":!8]%2]  ~) g-w'fa T 9&d }')* } ھ!( bK*wvxZ, TG&8)AC,iZ =" ( ;Lw }% GZtK vt>p  ޱƙ#%+ EZ)83 iin  :p8/$Vs EBN ߖ+~%ly ,RqYxC !wmpu!* + NcVl1'o! o#s 4lA}P y,Uif4V2M>+]K6kR.bQA $vJAon ihŽ !%ihxc::-eU qWQ_O   < ڀ k *W@$k] h$}7$1G ϷzP #W,.w=0 x$Q  =8 "$M]z&59z s~`d- E R|Q-j0p.2 / m60#S %& J Hq>:$93Mib0s Sp !DR0R C[$l5 j˓ Q 4uSB ! FOtzh*~( *49fV"2ؙgX> aM12?o3H"K\2 f* SBS: hўs6u݂& W_(1+Ht#N=0g E+|h(¤J#T$ TB d V#z x9E A m> ~zQmiJY*0+0VSQ ކݫ]1/A,N@!&MEkF!|b5k/v&r unp3 yxyV GjltAb{Wm +g0 4K  A Zx?LzF$X  R8+ E _mdD+(| $:JY"d"}l XMs8p-{%3 8|< 7_+Z w`D"y'ĉ+#dWVr DM\z,s h (%0F1?&"Qpj cq *>f } \GLfft (NX2m0Ns26/jb>d4r%ӓ4Ai :`$#,Vq#%aRIS$AS*c#[K ( ӎ(>o."8 )Ÿ<%#φθ%&! mIw 5"YP8 z!J# &oYK0$-NA`%=Xvq&R!%4 3>7Og(,G,#*i_=m] ]Y Ws(m%y'XW;  E5fTG h M!@ ,\w  r! aAT"!%AX*[j y3_ 3RcG F 0VC[L #S*L#*B@ Zp[Mu#- \FrT S7 53f} uwqlMf::63 k1Nݦ $B Z6 =-- T0:ڠ# 1|~H&Q<w: & _1:MT? R8WTP>`E +dR$&' !e_-P0}܇b E pz($ \zg@Q[+yy{/ }/o XTn x | 6 XJ'88 ~pҴ jGt&&SA0RٳA u 0oHJl[@,=w|DxBf$ Db Z)s.,щ& 6 hXd3hd]  $0U)+\0 oh0'gi  ;%%q4nޤ1p*+x[֜ J%8Ƙ Q G*+ GDoY$]B ٬:+ P g F8 $5y V& s &8[lPT*+o{!R| .:)ҔF "&|!  :*&Y $t :X/e%iC-Q5'b{%, <rn .e r#% ' #!'myߍ(#[ j9\/& `Zz .ߛ60+1#uR+ +re s5qY4 r D >u0 u (ai\*{pG IƳv)5~` lC1OӲ`}Dr E-YD %"E+L.2p4 = ?E~!s& ~ l} ,k`+cMAl x mh;| g1 9) 2VEIZ~ )@ ;) Yo&L:" u `-D @M{e)!r*98*aRj *-F125 +*_q UHmZs$s  $Y$.&S6%v!"jf g+?%b:$z#&?;   6Tރ )F 0CZd 3zPu   & +M11&t AA: Ho?N Q 4{ 0L5"2D! F ),I U9 W1o  -ҝK$#Xw ED~41 $<X+ Hv5py%92H]U 2 )\  B B* Վ3 codec2-1.0.1/wav/f2400.wav000066400000000000000000000661161412132000500147150ustar00rootroot00000000000000RIFFFlWAVEfmt @>data"l                             "15pamsop^vhP;/X,1`V'CvEI[Qn{TnYP'Z9F % U cbq*R)ZJA1l~ 'Dc$,]&z$0E,2c  AqOTg) { =Uuhw 3 ~g" > . dp=.W : y 7 ] c`y !o&Z&/ R* g*  ]#+ |'6! ;=:[' 7 Ir.D | 4^T{ݥ +! e$ ")! ҤBM;&=h#i/)& -"(uq0|(&DٔL' '.=iaߡ)5.!n 9/e$*=h+܂,FS5:`'[*@wQBTH&4(eڿD` s;C+]Jϙ۬-"!"OOQ, o& k3ݍ$jm g[51& ֕48 ' Brd{\g'J`q3/i GW &<x0p .~ Eܬ2D  6'P ٮʩn(Y 3EjݭJgeU60#2uB,h x CTO 9na -'"@=MS.R,3"dޫ#|f\ $ R΅t+#VnE)#*4<&Hѭb݃]=2Gu%n_ٚc&j *A~ V%."|tX?0:aPI {߲kY},>Wfm'#Sk  lp ހ}o i% Q :V^D: rc} P-  C+ m.C2 I j v . /X ~:1yx <[ B#D q x 5ezMp5- ` E(;AS  ltW54. sZxH9APcvM{kEEopU&M- fJKVc5=kq<2xNo~@V>2y!ovVE6A/Mr FF;P!g|wt8yU, *<Q_ZNZpQ! +$r^_gtiNBKp$.-CZijjdN@FYXF/ -IOJDK^nyxn]I3pt{o{*K^~aH/ %BOOSYb[G1!"3- {u(ekG2O; (97%/[|{lR9+%$!0?@. 5;) )BE6""8=,(R]_[5 5F<$ /#         *  G[?>h!:$`\/.- | 4v2q@D Bo[4ZcL ;,X?Y*qCu4Y4byv.36v;u[XhS?VG060y@e%/thv |`87-)]}]Kz'r5Rpew`CT$Ob=wRp/yP1t}-}.*tEX;WQ MKt'1l[C)NUzV%Bj7/6%){o]*ky7"&T HYO%xMA-yI0|b{y>4EeM[F)rqQa2CO%:bi5mQ+X <3ub7/5yh]? s |^*# zc{7NuZ qu4  |Sl/6-u  G % k Gku Y mvgkG 3i j   }{Y egPC l@ 1q?D/7\W/e FLI_mUYd 2Hݑt &W!J" ,GB + <C 3r) <z,2T$ho#,j#oM & ]y S *ޤݐ  -7(;yE_ x ,0#>* G5ޱf:;"/$ !m1r W*[T h :}R"[/ -+5m;`U 2o3PO#+HH .+f3^Dif3 3 5SZ 6  Jo / %03}{Id1 1vGK( V ]En4 jN'/sA:,!p$"$C q!#xQ1 `"/"F\!vBE. ( %0G^ `|^~޾0y %6)g.^]VA&)66~X9 8hK 27).cݤxسV3")T!i  FXxL[5 vA$]/#  H&I%6 rri(,N; 7 w{~).4 nr&#L+e2x|yw_ ( N)Q.w=V #" 'yCvUjycsl, W%-"q 6kI!8 Ta# v1}@ C,Hur nv)i)d(Vߚwyn? P Ds [p?U[&P )X#_%{_R z#  U id3@V&!\24x q"Q|f gnT $.Y/J% P6 dA2w K]ni4d !Yz g 1y O?%:MvV cI t5*=Yj6b P +t/toEfnwh%3 l 0 @Ew, = "U*J q/ bbAU,j>_.' +J.Od.,[1S!O5[r*rFoA;#U0*Z5=,)'|@_a -C' Kqe6"3M=n GGDrk"w mu5BDDRcjsvvqcRA-       8GWIJ6$6*?,qiBuo;KUl25-r"pv6k I/5y+QxG:)kW5=j# 8Lik-Y'nb7E9+ :!xe[t=|.+t2FBxT"!|qpU+O!kx26Pw}VCX#k!Gg5=jqmwubV@&1)h^da&Uxd[xewxm)g;7yCn4`8o::Gv$DjM3CSd||9 NAt^V6-iv3azf?p4/ Q$N+ Bg$+}3Dh_x?q[`udwy} d!RQL<?/HExGBUy] )i*=orPeWG]QRW$RP8dJ%J![4Awg;'xcx gs %NB9h)YDW/EB?9$6(w v m^a^[.p.fM}td^ 2{7>IIZ  oE[/ C<}c7F@giBWfwo+YJ  g}TG]crh77|K tSHy%7t|;@m-  l!b4Tp,L m@_=$X[Z, M Jfo&ao @#* 9z@tM t7q " 5 h  l8wFb46iG &  vt Ww"r [A ( & Kz1" s@l  %(FmO"=8 3 +k7K ql_9a,&HJ'bKb?L" g( mIqeFxm 0% 0?40pZ )Rn# P '$v~'$ WQ!N y6Lp) aXWkUM $$ 3 X Va?UQ{,NJܸqHG+A {X :t o{ 2Kyه ?#' ' g=PEl036.'aFT~OY w c8>UF5U3/R\ v1T9,R 9! ).Lu U6I~ Ǚϲ(71,V08{2%4nW H"}>}p'H/Yf߀2, 1n^4$ -py)O Z=?e RZ)5fc).  nx`3 t7 6\N:EOv]$C(Ռ˳")#t{y QN: #Rm*9bMZ,8N ^A1 *b wE XP <$",&q"\ 6Ol ;e  x@`9pGR 1&<=GVl MP4AD=W> tuAKSC5 QB<^ DN#S,<09{<(Lh p W@=  <;2n^ a{Y]< cZ{X0N-   +Ele- gA@,H= S  p *3Nv. a B  u>>rW7 1<)o )]ti gn[qjT!1tNmx|R"Az(QYM  0?=V S`?ej1 4jf 1 =?j'B @@Y"BcH2vnPD1Z<'x #1fy OSk-&V< X\"5f%@%<DNea^pqDIR|Q"py HH',l02C>"Q2 1 $z ) .Vj r(X^6fA!d^ ?AY fu7 ^j,"2?;mKQ2W#7fGa- X@ODV#rT_1 PTTI%wB)V#EVI{EcAD{=4swXEg.UezMYMo <]r+E EM;E@h3^v. OpBn)h] nWa#+wY jz 0VrX(J@K7%^%-J(6wD#<. ^n;+0_"#LH \/1`t3 .xN d}*&5JAdhb"Cev0:jcUGB`RzHRs|:HiBzKP;CM$  `VVhRB? N8D b TmsEtZ P i P"gc;wTvd n #Ed7PgC .Xzz6 Y k A  .!` JN K2 z a*gY %  pRDcT 7  (1 kU} yke en` ! j sr;zJ1 Am% - { J x Sjq q {l&6)c]4}< ( }7QU AmP=2F6N#-+> ? F wag= m 'uP@km 5&F  P {d\  Z4~S-maq }&PO L N KR0  tX_Cbc6LVO #sh"Psa.NhnYD^M:Y i\6 = X C7F  nws=@$M x YtH u </@_  %aYs 2ikU6>GX4?& / `tq2*RxlPN-e{`I?L#jX \d[zAUVi\9%geC_SO4Tk+;" g$~Hfb ,p<t x,r[)0|`(eH,+<e:=p aqMl=9J]=b|z:[%x0y=GG),xv=bXk; s 8H@{R{\7m?8Q\7gkLL$"IQW5ZIhc`jPNj7-!/R|B9y/S6e#QJtzt`pj/r *UT_6~(//}gKoU z=r;fU8E\yu,`O?;},VW% StuC<EldT<wV*% BT6lfp Qns1p?%quK|(ho]R0(a J.$#(\Q#*?s:9s,}pex^3Va7$kQ21~t2%/8aJL,= -3" k7 ~5R{&!|KD_S"L &!I.BFGM;*Mlz c 1):.,/jcD4{sWoC;m(wg6Y7G {2:[pM26Upx)Tu! 7(&1J=q vW\krL{Q&P:H>\6$^ETC vu_8cS-!<~*gEKA 15jEMEO@%&V} fvh'X 2`CAJVXq#X3" W *!r^A$;` k()1M*5 W%c-*F zRG6 "3= , 4?ZxS73!IA_$7}V3.Ah`  !           B/! D[!Y%CLN8x^.Sx}e p{kXad; lo[Pc\h>q[;-1 htEqVhQ+gwTubz <c]_}4pVgS 0?JL&v][maas =>he+_E DNbow'HA*cc\qTauMt\WZNZ3U`AR|z4 p9uK77&g,Wwr;J+p05>'JH@Y#%y%*ND@S "TOT# u dh3&BgS!iV#<# hd^.% x~>3iy`!}*0 QvZWr02 Q'QW^5X]ftUs_;G mMg  v ' 3(J1=^%[x{RKQF+yczw 6D092pyGC[ps^6 ' =u_t3L^yl:M,<&>03|Mcpwkk&%6 [GrS#U`lw]%}E(L| ^96Dl uzf?/iF3R`H%nD wFLWIy6*u Z_ >?|UT >c "vE,d4 ?*LO;Y?5 xB 9{BH F: +I n+w,`i+ V >BRLc| S (0  Zg{xS WMw 1& ; Bx # AwSv~ v6>dYbqXv.-C 3[&> wfaV.T,R DBpj u XZ b]| tH-?W7 9AcwCw r " D 3R/% - ~/}h 9  M*LZT i H }wJ!I7  *(C l w  }>0{tL i -_7jvpt mX|VD'4j W)p F K~1?2 {5  giQDL v & U?' 8 S }E(W SVzJU Tn X<7z2Px6^8!u  ~ w) 4t IKe?G eUtVvD)yM  $3F@4W )7 # OV _Hh xVlrEw )fvd}&  { 9GCmV{R^E  b] + A o=p7;9B!=Wo  7 ]2sV \ % +N\\i8VH(IEhbxP)7> ^? ${ R  )1AP <KEZQ`T^hr <^{0'-s=oo E,7eP-tJ#^shw T 0*N[X4w # ? Tt%wcqZvD/!}^oA"V~ | # + Prq R-We. [k{n3>@Q  q g "W 1ERxJ94uL T2O,  Z!A 3[Z(6sBgdC ,/AlW S \(`JjT%?5CdQ}V-X={ t.BWZx   G8JU]0fvV?`pN/{R!%Oq}`oM z'!Gr.d:=)`ZlIzbwU<@IQ/N^L>L]\@T:?qvxtvF{]$"(7pzBdx-P} x`T5j " OB0^5j'^/hVPBGxpsj<a\yi\U/  #"     $*-.(*("        codec2-1.0.1/wav/forig.wav000066400000000000000000000612641412132000500152670ustar00rootroot00000000000000RIFFbWAVEfmt @>datab     !#!             "##') ,./*+($%#   ;+3@"qh/-4-P5 Y T.GT6AZ Edwzcbk)/Opx,?H 9+'l#D x- a])gY!3e6p{b A _G9;:"eBSdve b7- +^6F #CDo(  2/qQ*z&o/Naw/Qh" %CE=2re ޞ PF(gL Y"tD 4 K 7 Hg@8n !C6Vϥ8 0} MI}߾"iU,n!SI9* &)6  kIj-)GB`cq8M 2)7Op*4b{8%  ~$>) e ` 5c!; qJ%M"%gLX~d{-8$tM^k   OPndCrt.%[ZQ_mݦEq &7L'Qf[P] G*a&+Sv5bG.(6%QWY9 j -w}~ K0!.YZW(z^ȗ%R6c0|+H ff 2;E<#[Y+MųFy+)]  d 9do\wwyu*a@X*^*K (%$pvl 3 i_OAOKp_;[H}Anz/4 lL t6]voG`T .IO7`ʻδ yN $C݅ u |uiue=J3<'O\?mWƕ p)hGtWFYR@Tr>/ 6NiC} ǭ8 U )% {egzJgUErL88JbăwP  l~?debk4=n 5BI{@߀.r :N 9 "auQXgf8?.Rr k  y Blvv khYw#n77&#W= "oy^ D* L'1z ( 72h.  \ ; %"x YO $~Aq,~/ ۉݏ  B Q1 1 lfS*%'#w*#/ & Y >3KE M:|j S%#$hg!W7 t $Uy6m6V&9 ( Ng)WBnsE^t"U 4nt"'&s4#J3\}6fP2Tl`+v(/5 MW( vS>)N{g|?#XWy})GOs%MtxL~ tJaGjCLG<^~refA^Yfvq~<am~tYG?:6% (=R]fimqlxnkc\]SVMB5*  '>D>;94$Lk^C$Xe" z7vW \O$:C>){efheZ82axz N<ec/20, 4Rbj}cJ3! &&(( #%  '%%!    !!      (E6PKvYp5eDUL!=_dz[n&d^q4?#KcHmuw .\}ql!Tc  U[j!sL?;\R" ^+e782`xoGK;9_Yx,B r;q1%Zd@"fu43"J*ilz_7EznM|cNAH"`$)z l$"[W{ @#!e Q (E9:#2xWd~t\_B$^(4v KbFKwZ$R;OxJV>?bA:Ljm?iB4)$Fi*WVjD ':i@i)C f ! @]iVe$1&nJ[gU ek!n m(K $3y, /nIQ 22R),a  JV_p=whx}/gZjn= TH 4 a 5dj# A$""B+3HI(Jt. _d yi&(CgzsEJ 2bm g o> gy $j. l7e B 9   }q R00/{1T9 { @ UUj@:wOm 74 NNL6 {' #% b`t@Y(Uy3x>O( hC 4 !K"m&.J8   A?#p+[ ;D ,?dy p Gwu '1LA<)Q(p+ OQKKkV 5QE?+?'1sb!!Z  :4;QumS'NJJ'NE4J\w!%X)F h2  ! `g6+VPSIv#UFڙ=7U#`' A\ \n) ,<XEN1 +]^ '"b 'SS]U%_q L@D ,MiD#ݥhڕv 'KJ UeO &&W 5+NI@ $`]p%ݟ( T$M WHqa ZH6.@Q AD.k3d > KC*"D |(p ,%4B?*v:_Kgi {) P" ~3Eq 0A6#7b|7ܓZJm El d!7\ ): 4l%2fiؐ2X`{ gx KB) i }wm3fW`|2/&3 =!޲%t5<>#!^X ;)&I^.aw t NM_g?dL6[h#d[^ a6|QU2W ^Fs lCJ|;Va0EI0 /&f o)h1w{  / d vZYyI7g\ P: "Z?TJ>#ae)(g<]] s2w`q*( 4^s*,$Y8{I#\vY<\xOk-k?-  1H`{(:Tj~}obMB4+  !$ %# ! ! $"#!!$ ) &#         " # ""(%$$%&+),06868;;;?781&'$    X *Wr} f769QAL %d;o5YwMW]Ga*;3j io"5byRaZe=FZ:X|"&E Bn dk$jz "sC t =$C!\R=M {VxN%VE[ d] :dv{"uO5v_a.qDWtuBiw> Bt!\M,2[4Y3'0  E8Dh1W Q^U_I30f` ]SN'}cJD)2zEdr/l &[TUza\ 'AiVcy{(OFq?4$NIN.b[/uO#S@ mfb[3?b9A.%}WZY]y*DN8$m) 4< 0 (R2%(x-LviMrb_z ei=MOf~-xh-PwcQ`PmCb2OK+ir!fk vFxjLH^%~YGFnd4_& .D 4J'i\sf[c!?FIV '" aZl &' ?6"bYG)'iD1 J zN(`$R}0Y.lj(ݑv ;GFP-0qEE`_-2{ 4~  K \ pM;/m4%6sߒ!Y e;4 uC,nf(%;4 W֪mr Rq4 v$3zi+,E(5GspHgS|  U"E+*-|?ID)Mjr2{H IB6< R P El;Hwz#ԑ͆"Oxs${n   J: E]W@JKpW~йR%\u5L T9 CFP:hC(:M9!eչ΃ &} i MA= SH7L F^\ v97O#{1Jo'isp }7i Sm <+Ym@ ~q/ZdBMGς). - ~ kMkA'.&LV5Mt@nMhq)9 Io xP55 8Kou 1Q Yň R J [@ k-UT>_`7MB`P=Ђxpe%3  bFb__yD4l*O3 E6צ ' =E#" g tH p]UF/G)| սɡ9qh<%4b < Y Izz JU-i1thq 2v~t~MDXs{+}O! ixQ uVB`=De{R6 >$Oxue Z@!Q8(pg}.z{ro] #9 '7& H7a~19`>vcuIB %8 w6 } c{8qd_iHd&lJ _ ]"_:7V3sWKDs`*V; c&i4 [ V\t-H mP j#fA ) F AiWI:AE4  YNX35|$p!.|p c e s )% LJ"GgX- %-l z x = K$FVRbA G#}c wlFye'Mfh$S(td> "ZkI>4 @T_PF!L/ ( YPfx M"c[xQ6)+ Ofxj+,XGo2[[`hLJ ze Aq ujwCm{H P_Mmc[He*' z !qG siCUG rtX,1+Leh:aTn~L2[h~IaeN*pd9k;6L1A]25}s'5#~Zl)"GL NL g;Zl~ NT0x%C3?liH{Fj}GnX)S&,_ > mW0y({u37'CT-u_#;72$hflEu{-f,5B%.)[;v1d#Xk9S~v )#i=Xa3 V\ 0$2"OLb)  hl)"3UrPC$@s|_.E  hzYXk=2Mbxa#)tkVL  @ Z&N)kVV6'QJ1  O<# m  0'7Z]%9d  6 tovubgZ<` &6-0{Qn5,(&SHASO@X^IC3[|=*D  K}w{b5F b* 6t# ?=z?1#_^[\ZxaL(HTKb8 e;NXa-. <k 1=}>m_dZJ=WKa)D eN]jM_l,y_aJZ7>JKvP?qrt%L{/tbu"yu8n HOy$CE$2_ye;l5z?HimDFu\=Ctl?s:K.(Htpco|WG.;wo d|&} ?Cs;rESmyt>s L_7}h 2N It! PlT3u6x7|b[:Fb>cL0F+k' 55R/?=/~jtE0xRof2&Ho>4r/.bVPo^jD~>QY;1o Hgi[HpjSD[ >IiTNU&B,({Oy<GcLQ+#e.hQe;r2sd~Z&^k\el9uCj;;`vBb5bg;+~VsDp0Pa*Qs9oEu'B}si^>$%'< ("  & (</1  %+##      $9E>&7\hBr:.7\72{_B l18 ;=4UnHTE3Ul_zZz"E"PbVq{TlM\('99`^VK)0p7w"`Z+<z;Y?y 0KPl%Jg;X5< XS>jljM^a UgAZ_D%W@?i cu 4 FI=jo%dp3u2i!ANqq1$`8 Xh(Bc E]oj-,:yr3 4Hla:&6Xm =;Eu:> ? R~$635,  Y\*F>)] + TA `ML.oU1 B* \ 3 3y+N 6>]=c_B=7nz}`T z.&A  8v^#ky75L7 Cq DI%gGfgO 28 YU ~A_-T$qv W lGXW3c2T@SZ"  z0$Feb N *2q ^z@ $S ,geJ7T s,!~6g)]7$$U _ nE  {F '?)S >4-j$|$351w {)=CS R!oy?$* D n x v^exuU x!"sv '3p d g 0 )l9\ao3*Q-$2tV = g - 3/3grk]FV0!)l"_Tth h  ?< Y>Wz>D[8 _ nmLCN F Qr< (O-=64"z=-Q&# 7 f !F$}kF=N\H$Z +g$Md4 0 f _N?-_g> 5+C@5 W F/ . k?X o e {u0]xR}E#!C]CHOvz1 tUpN 9 H!H&1!#.X o+/ 1. ?RQy( |7ss;!N*''Z<" O" '-5m /BA7"4ed*Wol DE\Ue) a ^'$   <YA XH!5\-za'P^kWRf 8^YX $h e  j:Ld!X=):Z}Q-7"YLVaKX2EFRE?I8%)           "$176:BDHKEJMLCEB@?<=+(    &*048BHPST]\T\ZTNB=>;41)'    !$()))))+',+'%$#!"            D;)."*#:>?9;7;COKDD<;;95,00/7<?DMSU\^]UVb`UUWVVUTQOGCEDIMPOSMIJLLKOOIGJHEGLIEA?;:91+)%%#%0*#'" codec2-1.0.1/wav/hts1a.wav000066400000000000000000001356541412132000500152060ustar00rootroot00000000000000RIFFWAVEfmt @>data                      !plP.@L.+<' ], }Cd (1 3J@3:'SvCwm1}B+.MJv? 8Zwt*m;( +Nyp a@ .xMoY~#Ds5(+5hwFq"{"~9=) j Oq (SZ  hr md `n8{*&*lhpsJr[d. | h@P&x zm - V /ix J{ J; SIhs%xz%TqulWI ' _\Q\eu #  [Hp 2@ ]wUizbD q >v.WhZ!tYe [   9XuR7 b6 gD ( q2nYxo9 iV aH q(=.DJ<6$c T~$ &,jGz28\ P|MM]Uza?(+n@  L@5$9SHIs[tW + 8RlR'"bNjW@){o>^Trl"'WX?ham{` :ltHh/#PRK h3#kBWja7 Nb%5Q%##*x8C g\4uBH&6\~fOPA x0@%?`,R=YFt rvfHy8;] 5?j8.8( p VZyo4hi ?C0 w_vG op/  2$HxAwH]k+@'qv*VJzk8{DZ?? q/_Tj 25sjU wA Aػ۪ :h9# O"5 p&a Ml .B|*` "E`  [^f5r@j"o 1!Cp,>F`0"/1\ܝT~{Cy%>!L 'k P B#   //HtYS LxJ}$F,'Rj,6=!|&AN xZ0_+&FUz g*Em0\K]h I_Owz!6E-#P/&Ƣ3BOڱF$"t(^'v9C NVZ(lJZhI;G-/Dc \ >9~ƞN ,#  t!(/}XfJ01]"wi g3C=mSaoMB/~,,-dž^1%V:&1+~2c  `ߞ_i%I! _='  b26_(^$6//ا@ ˻q I0&,!/eqQ8m ! S Fmi0w :2{%"ߪ'Q2D43L Lhst'&YFل<=8#Y:&vmt| ^ } 6ԥ&9?P.)vV{A)\""h!a|R4E] X %xH<$#9rk G5&3f % u 9Dۓp Mf$4ic&PuB  bl-T>S, Y r9X" *p, 3Jn YQm5x%+?V~# S vYu    HYQzZ? K im5Ot"4VYZRtܶ  1e{'  1tvC-H O " x =)hS p+% T /6M *8bmNWdM_ "C wP F IODq]V $ d*Ht6~Bu)4Z,,9"$"0(/9)a g1=Q |" X] 6 rsO  |9Of\G<5 'G d 2.!ms B  # Hc Ya=q$zx  'l,(v(oI F]6q<#` M' Y?/ 0?M   \[~nH$ht,}yCF JEzNo*HZI&fhR{b U  R hz  u4+C)eu. Jj@}m#%rA|<_Mu<=Ht*p(*TK^xA@}~z6h2l& < Dx|%aU5vv,Q*  !vy ;]gi ;lj94*n6J;kHuJJc c!.'vG%G oP i\+RQTIhpp]0*F,ruu~D;9X3vHoQbGBBvFC>]ufor{ZaC Z[&oS.0Zk1dL>?Sr:%cK?=HH/H=~y0dCO7 ! ZLd U W$,T3@1 O)*ub\fW]D> ZOj0/p~gSAZk55V4rl7.m@d+W=1Q49uw-#%%:-;]<y{c~Y.N+*aFwFy$WgH;( 'F=8Kj!KTQ"j 2% y>EQus5 RoN3}?WF ,M $ & Lx MwBqlp8,>iPKj76/KDJj   XM Hj}%5[S K e j{oJcfaGD5  e h h k)_ (`7>Y ) 4Vqnik 6 1 nf: &r RYg{ &*k*lm  7u%~*LXj;dD^7=s! p5  MH[a j " W2NR ' }s y S}oS$MK_29 b |oy@rt o /tG4  dc|@ݫgb{G9# } B`65Hs p  6 "  {n Sd :kV  /eY u{]%5 Yz:2RQ V I H ![,sg$W2W q ~ d7 $(Kacso i  aHA.5@ ,dZI Z 8s4D2|WzZ}*uCju6EY ! } ^g >(L&;[rkd3q[ "D^ fM_ LO~M$&a.o8M:Xz3B*2Lk|nL~%KMUbN,=M=D)/w Tr]dT!(+*zm5 $Q,_s<yao,kond, ,CD*}sa[h CkuL$ (+5;1" ~z,;</(   *9DB=3,  %$     "  @}!v%SC\97$[Rlm :&}NI>@PSV7s<_*lPCGnZ{k -]t3~6<FY%~_[3H6, [Xu8 d?yhfoGQ bX}$ Z+)b(b<8*fGx$'J,De?_e&{4?EzYh[=l_*|- *4.B4\t3| Rc;c4x|LB:"L%jCo?3h%#D-s`@Gl#4>.SZv^Ul6(|ljs1;^-!Z cK_6MQ,uFUH@FQZKNJ"]luf2y\TI0o ]]y9U#:7zZ|&k]OzLg.*waMcx$5M9H5'}+O>GL=/  2 [,~[Y(4s;3>$NB2*D& 3[ ; ;E N0f;h  w<iB$@~v9Vk,KyW 2aY"$$m+Bޞ {P ^Mf8Y/_bdTf5f+Cch>;?7+?2-S ;G<z    $MZ,wt65H Xʱޑ)DR2W8K$߀Qȵ"pB !(?ZFt]d be) s.b0GKc!v2%;.)_pdVՐد =#D(49u3orD7HdJ2IBa $6~ P[ 0;[6r7(L"" 8w״Q [(j"@\?1Z$`T@ c%3 |r)wl  |#</ky "y2)8 'ӫS!VJ~XnI }j $!V %\H>  W%p3# '!] FK{Da .t7c! _ GP2d4L!*K)Y,A#wd oI5D#ZO4  &lU% & GF,X&/,X!qaR3PMUnfG7FCSY7i?$5r  2fSa/\n!,GHYCET([z/PGeNw. 7 7ESsUC7Mp /bk<iTT\v'=MM5(8JT[= jF[ T^ZG.6@1,"{YMYsW[hGAPv5Fin_F  '2,3..@?;;!('+!  6 }.'Z. G:.Mfak^BS' 8G!!(    ,.$   (      zN >6}!8$PYF;f xmbJnnSc9qAhdOB[u9%P3M ,,{G |S!CHV%TbYHA<>,z # vSQ.]=XZl5(8PB!]JhxX&TLKpRa[=FEY;xv"s'z=a~`;^"qs9a(w p6iM++ ( =X*I'(    %             "  $ yP[_k8GpW@:K};=QkiIP9/5 + p@U@6T.*~szISM9M &0 f}'[M$'*LqI; $3t ;45d G-pe~PxF V y IdhGD45g.b./y8:/Tv Xw:5M  ! v>jR4xx= xi 4w*Y T .%xLYWT $C!WZ,'X10m')s~|NK ~&(N&z,_ ] ? "9 tWA l q  TBNn 6",0VI "P@)Nku 5  _~.SJ N h F `>'bHIB\3wjFM 0 G n  w]#HL  Zth  fJv<Pr}A  kq_C'[*(fV&6x EQlNEJ0}3   8V s `!hR]azV~ + u![\dl+qd~'CSoY;g   @}jHe"T4Ej foOM#Dp a={ GM(F H& r7X6e#-Ji4?o=+q\Af xp|xc1Hd{8*'e\Ns[ACl@N3wEj/$*9"A^#_Y:N5B15EimY:!.i@%}*=[<,1 l? "Ri!CC?L'}C"[U88(iP!'bsZvvysQGniIUfMoR6 :^z 'FrvpZQF1vTfQS[/@! DD3eZw<;k*}XC"5PmPse<vmM8M%96M "kF2+ee^UYzhchq$1Nk]%sWU_: (=G_{vs"MsZJ1sv~vty $<^r; 6rCv< /=KPh2TzhD. {v*Fdu3iDCeS[({W5)7MR[myq}8hk[PD3~wmq '@P^rupfUD/bXa~T|_%lURMUilz.^|lfdN<,GS9' 1FC5+2C@8(+<CI;*} $/258BB=@?/31222'  ""           },:QFyYu#}iJh98NR.p+6bYMnq/I)X7fb<KetzZ&sGh"jS)b-h(KHslY?,4RWU#/LJqNy_3z?:ouk; q^wLFG9\RWr-m'1LDR 9#w-QZNIToeMMX6dNro9*v4Y&q_ 2w$U>.Eb0S=UnNvwOFWu=X&XF0b E0dBBkpOFQ7n9}*ZBy+x&2V!L*2cb]5pya| h8G@~p|Sr(H7j4E3+Rk @ K s , =_TrA(V\9.PSq}SwJTC$.*Lj"e   4N]+,|_8 | YwE)Ni 3*^ޤo&!)P frc\3dyO|] sc9:5 \TQ08a7i#GMX+z A%=0-xm@XS L29^5, s9 iUf B4 jWD(A9a]E H&VPk@- d;tD2*SaT?  )"D [q  p >Q^  Jx0Hxtb&Z05 nk4xՎDJS1:E%s(U"M:50FS%lHA 31^K%$  (&.:>c> Y^23jqB4Od>*g z`0ٞߘY6;.(lpRw&B m9'Bz iVz<w|fV9eZl&ݍڙ(!L.B-(ج2O|I5u@_,$."y2] -(0aqgI 8o8\ P3iq,"NI2؂ AL8-%}^(C9Zgz)^+.%,@Qag r$ }w u8+ ^<3..J?-Q=^_:[>)* ݿ1 #.B$!pL%#:i9 GK-\l ! zyzHwcDru_!܁6K=(e`Ф %"X67P$xyx \0&FGHp#w`k^&JT_wv {ToQlUUQxlՉ$(G=)3 CYio #*fMu <TY{GJ# f,t]FF`U60  |= .@O4-9-^  kJ/=ZH : X .sq  V!`LhziTUFnE[d$ oߴbfd&tYsG C *UF HBZRNqhx3$Ou9cDr5}J:f);W (UG h &[-L0}vwW-nw;O~z7^Fo|01e^Fn]Lunp] d_ }V?-ps7WNtW4dP?_Y>;|hBkc+S`;,y[ \olN){Wrdxo!\@[ ALCJ@RDd*=ake?:/* Obf;$M9QzN`Yc@\p,60^ @ LB\8p{{;D9H:>(X5J(3f] lxDIAuL#Y n&-dM@7A*n]I@68[w|*]S &7r U !<  '9 %zx 6 vLf3 m!]: Pu*<2-hYc# kX 9 ld  l  ]8UNU=0B LNU>tx:N|9mh]*en2swID,|i[^3bn'B +/;!pp!8 }(*/"'!  i?e|U'@0rbpJ       W0har!K?F^z/0BTHFh+#.p9 ]\loQ6bI55d}(w2*qrX[[[ ~P =)b{)U uW Z|Gz :g7& o I _dKnTH ,'+J~u$(P[EC,{W Id "` =C4;d h [r sZ5pA_ 3  k +cx \N 5YP$^O_7F8p+8Pf B0 KNpnG_tS "6 4CzlCf$ iKTz~,VO[%94vD:*7UNRM3QR~ q' v G }{2@YB6Xu 1  * W Fh2^wHls v~Ljn`~}LuMc1+q~Miz]1>qi?BVQ95u(3 Eku. !pU l nY/29D@qm &U.b F|NSfL' ~l[yG-n] :m#D4&36Ah " {6&i8)9/w)D/dFqiUIqD"Y=3gf6Vh[\4#)yDZj+\AFf+7925^A ;W4}X(+.H^J]&-4SJiNQlWj ]a A5;X:>&4?v<[ns_GT?Jba6S W=_(o -; '&Ix2<;n*:BZ[-&txX^zF7J=Yp<FSzJ ti^3mC0FvZoBl9N^9Rz@"g#M<tT,_[_5bk{.?'@;JMTXxQd k)S4, v! ]ln,f+ 993a.5Qdzk2~}it~j%FSePNP5@6 z.=JF2%=Qnh9j12|XJf  blZM}qhI*`s%cM q+%BwM7,R12|v"gV^"MKT+ }X p<k,HC7 RyYep0y7-w@w?{Kc&Lpav,lI}l_X\ +s,J()),X;ngd:,4oI#JOw:q]:*FG.~% fj  f'vLM"{4 =5uz-IR3,}%Ln!qm:,^V$XdW[U^c qL{8XgC@2-EJ g$GO!+L'f;`69&y=[b2&b|0 (+<-~lV{)z&4R%F^;$XvJb{A}x2WmCB98yf22t~_FpIBK$ /*[6-aMn{t[92*ky61. F#b~2K yb)>Ldp$,hm,vjpUo"UX }A>s0[Jy</A5F W\_ mHN.w*7UA*D:%D$$J [F. .u'"-Zzcm-J0Fn ojiI)<[m,^,s*G#C*>bT6 2:jLdEEsC=+s|:`{NZIYN[jeLR|gIp%$grv0 Dql@W"; k("b5 {3 X<^'wUQuW M4sD7 ]Z*FD>RBboa[ 20[P .%V/6GC2C6/T}'  W9)>i"WU[, 15  _fqzMf+!0 dI<B/}<B'ao vB[ fM2 *J "Z?6!' !                                                               codec2-1.0.1/wav/hts2a.wav000066400000000000000000001356541412132000500152070ustar00rootroot00000000000000RIFFWAVEfmt @>data        !"  !*+                      (* (,/9<9232(sf[RNT^hz (/8'*3n!]&!$/;N.f!SxyjeW&oh \Z]$+;m5z%Gs$BYaB ]^5ld;2n$G# E?!eWuqeV0p1D @u8H.+3mbiJw.e!9I@72n@TMi _o.Y&JzI(FII;8c^lvWl.D9Wi 9f n,t^jXe;sW,i0  0C^}"_[!w'JQ@2waTA@MRWTcwhGMUh[%XC,77)2i͗f =((' }:@,tQ 6;#4 "Miȇ5}#&)7'r?P =CF}.,s|G)Ƶo4G$$)&'] m=%[9 1):cE &o# E: $9oZ ݩz\"{ $usX3  .+u% qPܯ@G[ j,b/ o + \f %)3:4`] ##V{e^y K# / b&EߩtJm  CWV ;#m'|b`ZCf\ Mh-4"<VSBRtxOH M; wsD\dVDf B q O fuw=E q^Uzi9 # ? 4 Y"S=YF !#!48Fw<_ cp&a]Q  :Zc w9cO)g&, Ny !  IQ\W w ]Ap#Y8$y C<`  , 3Pk y n krwD; /]~ D j eU'GI!L av+ - {( V`_ `-Qt L  $b]3># #|/o r` o ="I~}9M8=#o2 p 4+U7 _ w{-D w4 w{ pz+^We/s*h G E$  guE{(}MJ O)- |K E 9 V|B(>te] &r ~*R VoFGO&pZ(L? U 1 . ||9LB" ]  |;v ws)D}v?WS D~ . mlG JfeF>@L I 'x  Y+DIS1   5 M?|2MC   C x f * _9 k d *"UHBoB%M   N v 3 DGh:d.&  $ X;vp(Po =  ju{uN8i;xw.ajbR;'+]@}90\k;A:/M96wr&?74N0 V(ii ]-w)E%,Gj ~Se67~) bCq ;i+sRLWZ]Ao,`>-H0WB74{FY%,DkbS|5b^9k*h!)6jDY Knn8Fn[,?FLD}I#yQDR,[ e(HbM'9D$YoT|Pm>v1pIuJ *#O",4/-0#RZ (`\o{fs.??Bm_@fc9oaWS.P'G%w8} BoM%3SaNu2(Jw('9 !;1+"         ''  Wz""dP sus#MrX"iz5H6t*Hnqn&u0a1[D=_zVr 6!T(SHTm~qUAZLv:&-}nRK=lR)}b{TV:( ,UR |m9{ . ey%.n l x V:bInK( 0%& 0PI g b,#P5!$!hd3q= Yr #>  *NS[B^ %*K(&c82ء48 7t ;(t \) .U0(PH +">1% bxRֻoecc  v3r cysyRTDjD%^(*  |ik  aw YK tR.t %V v *y&dAF w\to uN|o]3B\  7b^ H/V X&nK d>z+ N3}]fW  / `4sxY8d qR~C   AD6r p > mKR{L}3V2V3q^ \ %i%a+bc1 F -f1fJ&X<  ( 6zg'Bd=  6>_ PL5}{tE 1 $t  rztq+ln 5>  QQK@dj<,Ff s X zpM L g  nFEj%Y7jgo@ \ |/M,nz   1+]2$}C(Thg 1  [I  0rjtM/ .  T u/~ Yy6 Z 5 ws\)b_=%&O a0>#x[!#  =i 3B=[HiLT@Kd ^BgIps,6 #  3e J8+]zKu3: T BZH(x+ Q-SfIp} 3  *`?S?cR EDfdK;:ITt _VV7yot[FjL 6 ""0lP<H4X: L{.k`ptw&pAGm; |sypE5JzwnoxqF4I."0^Y*`S31#R7ibuEdopWF UXeh<e2[jXWed^[<]o,Po%IiW f7 ?Z'j ~X$|ei90' @D$<Cpd21 [' jo:t9'*_~I} v;t dI! |Bie^ Z ?=iiivfh13XBQ@tskUN5 oXDJ=dw)&U +s*+' (UO+~:($%dRis0Q(Gpta]3hzfG_EY6I][q@U]y|Wd~.ez{B7t"b=bFZb  =;;^m4V|0g@mY8JO@ 9Fz.&JscXuk?"{X3G%08izhk$ 2 NSMGz9BCG* /NQC;! *,,*  %33+! " ! !  V+"InQfc U/^US>/ UO*?E[K@ @n8+V&%X C9R5Lp F R5wf Q T  vfTWrCWO*3YG Q",LB $0e}'5 u?={bgMI(]E}74l{`zl1_, ye h1h`G #%f>[ۙ}Yx 7 A _   6W  / "E2{   <;'EaL<  \Xw"H8?hAG)^Xd  ]M) tLu'W'*|aqd0&jDv<`{Lsz3J;L9_6J7S,*V58~mu i$ULB^~ h >',`$P$1vMN M7+PYjp&FyCmR9r+ xn xW: :h"s "-p v%/ yQ ? 3o\ o [~} 8P.cEo( |7sJoO@ .S<P0op INDe6o:R@2*tb 2,xxrs`X0mVQUo65Y1  iSS_ _:+~B [ dX;X+a''A RJf3:X%STbv5N{.,"~` ~lUZf LH0Ohx_o/pSp r i  UE`&n S jB  #l  " PMT ;N  g G Ob3~ 6ky pX@c@p,b :hKs0Ujo(2Y5|?mF Hu lQ6Y(h!/AX3R?@|ZM/^UG{'XZbMiMDQaBdvQ*}T6Qjw6_us^G"UQG7MbPe~vs{3lX@hiXU*mURMo/I^vryk2w\fp*<XuzrX5vjN[ynu/NF+[Xbvl3*6h@M2%Cia5N^ 9zQ8.zC$%@aMFaf9; F[H.1_R$d2+JH%rYm ?{L ~]:&s+MKVoW6 w<^pMvcdx(5T.b3Dw&TK+y{+1Jr%fPxB=SG&.HU!$t$GL=DQ@Q;LLC/YhS% pO@*>bYyNuZ 5?a j77{_bcHrr\}fYhJ{<;u{Y. , {[K;@|^O! U RV/J ncf Szx8 5Ut f fxx|Z dH   uY1{l9 J Vv9fJf \ 5+B *" > C QLv%CyS|MeTmwE 9 ;ch& kOmjB & e Y0-sCp P_Z&( |ep_Q  hT_{I7T}A , BxYAc||(K q 49K HTf"n k"^WFK ^ *bgtcwY  U rV*  &Hx0$)) <i&|h)vmD v  2 ;?l@{<  /~}Ch c0= N0T dD 3FXb*_l  G U T%MIkwqDFG\i.V[ C B LnAQLQG Z C4!yJ S%a&;X6sj )d@bdU~P^2:__WJ,v\Oa;H.,U f!zF;aLNd tY)| WU)HG5]fz6[c!:OK\?|W* hF"Wbr"MXov"BU [<'B!Z, 6M"Hjlooj7J CDyzz$(GiY(u3,{/)t.vh. *@W3M tt$ ",Nle|3B"h/#k$'Hs5wWilDJwDfk_L'&oFHw\*j?C2d7"|}@"4O6~A@PtiX{CaM'<(}mUodv-:83_4}TxbhIz  x  *Fj/"DJ s P'dS<9qc5bi[f @- HX)CC K  x>UN`a\!"<$+j y-  9y_6^V +I` C2 * B$(aH wZD/{U+ 5gIU '7Yh~= [j " h)|h{RV%K" $ (`\{|-U^ pV c =<67@^c79iTq({r UL 5T z jO] UMFWO>[`  xpY[@K|k g  g6H3ec(.v  / w9zhHW j ^ ]&jfxh<^2WR6qj  eULIo2 ? n  )5w/^u_3]n LIwt ' co1 DF  Y E f pay,KOk 5: U* x; \  f t;pBo! 2MG; sFS   m {V*@kg-N  6 e e I9D5T*o@ ZS W 1  ](>>$C>[ {  LKC_5: ] w`Bgx+N'[Pj_6|yshU=_X^7-PU5?dRypX\c>NhmHzq0`dI3Puz' Z'.X_.R"dP}FxJFlR}h@$l=T~x7bw18nz ;ki2m_rM_j@[#4(c1e{0fKhxv Qep>-?& !WS}/[Q{HsF>*7>OGQq?qy |+}D90L LaJ.9 H1OA7yW\yw9.VZa#H)u{tY \ ?6my-K/]v^c|EmglTEBs-3M8UB](1+a$Sbn1b<hE2I9C~g<  Hvhz:#n9$o~$ X `o3ul4ZON@G,"~*9<s  ap! "i/ CD&C63 A p  ZmLE6Qs!Z) 2~ Lv %   _N_ysD1 oE~3 `${epmeK~ ft_>3 yG *I , [o E6:` H8 sC8fO ]ݪ7q; -P$~#'Z ; ;_P )c. &g"ܿoeP R HF )pw WFi r2>sg`  zN*&9  3 [K C]y c2zA g a K 1I4h G !&=E1 OB; 4 = SyL YQJ^#\DV*L!N 4 P R-f:OwE Tq&t  Ji&u   a cz3=(6#R 5b ^Q ! 7f|RJy6; G} ] $& b9 jji,  (]l%|  PT e XOG  #Y  H  (pcF4  { k V( $9BiKRX QHX<= ) m Gt7[y K!Z  enXI['( k -rM_/'o)>NkX\N  &  . ]vDd/FN  1d2AA ;H(JhCnL iX L) gF|J / NN'1I X@ [Fo  :w`cWqO~d; | Wn;G. + oWqlV5  kOu*=  ZmTP2 u#J _ w #p$ F?@ >,, &Bx 3AOs'cd g2 UleFoX 8 h"=7B"}{S  `fiO[t'" R/67xg  oUe  OaW/hE B? Kz l @ZjI0>W tY |t BI[V'*d } y 9?0iR8  N~W R6S(k p?XS +8 O1+Wxf^ q c Rx*^QUsH e,^Wwmn! ` s  MWD,j"RR/6 zb,&n#k8f u   ;)sSLcQ \\kR*O   sr~pTxh  Nb%%u{FFox%{ )M$i<URXf63NCX>kuJB!)H%(2`vx^a yei?TPu8eB"7^bQk}xQ#%yHCpl^%&fHNVq.j.a|r^=/',=6,PoT K!5PwJwwnT;* {U)?Xu/{{6NUQI3Y%Az12_|Z*%=TW?"N:6Cj"?'.<WTWssuhUG}sh=Hp@[T9LdupU, *13<BLNPM2'6I@/ "''"   (  "%+% '/*     "        ,GB]7o$i%Hx<C/ 9]d}&+o"|'X~nu3z|/7@2CF?aG0PNh&P]yP$Fb+1"6~]9 !<Cos 5~\ SI5 6}+aetx i~!Q{= 8[j2rFf0)gb_$xT%R9` c cni*`q{ R OO)}FoX 1 * rWxUT1 h / Q  w9z}sjF_)hZk  r J{a ]eBlLdqbv  S 2O'{h{Y B  oPm*+%%<  jye3 @  ~ B WOeEZ3]O:w|V l1 s \ WI| N] m h@O)V+oZ6vQ . G 7mdAG%&Yd$ 0 {V!C}ZR4nv)d | D& _/Oeq|(} p j ;vq^Tm  b< .K*  m * ; =T17I  H  HG}4QS   GyH=1J m + cL?{ewPM YP D | 6>r=/%q3{:  * &#: [=_1  4 C @nzB_<  " qn|^{yD  M $G;uoR )^ jU"hk Am/&ruaL]A5]PhH  ,?7;&C=?;DIODh&V7e. ]},{p_Y;(SAL'ndA2sRsZ`hu.7m; p A'&)Ds>v&o7FG?yHJ)|5 aH0!l:%CdV(F2w3QQ2v0Rj_aA(o3sk_\e@Z3}h,*w5zDvjs+%9/@}oN ro(!8 [(b~85=W%"(v[zDs3A9=r17i+*CPP*F3^M(,XM;}QJPD^q6u+R=2_`ffx/R~}*&h"'dYkM,8iI~oD;zwH ?,r%?+DdIdx[ IE,>`d`v$%8!2=naD JK91-usB jq \^K#cZ&L|3k!ZFq C}an}8~dk.7CcB8.3SCA;/@oI9*@&];Cr<LyzDzvqIb][ {c_S`WH5# ;^h`6x|$pFoL *+DBD*Q^XS9 s =K \R5<oQ]jz)$.nzY YI]oRI  uV~y / EV~P!|yG2pp'#7rp@J$Dm*pxRI5hg{atv#Dg g ;Z9 V8+TpV(`!owoBPhD_ ``^p0va0'J ;1|@xpL$u 2~9B Z6=h5_i=W>2p7WS(w9;{> 3mh}}}>;0=dKwG7\ aBMjE{ko#UIFZ/;* $( nx: W Wba l v]X]C.t)YFc^^ v38Ag )hl]c cu H Ub3 ~nv ~ ` 41 =X/~r~:Lcu>Hww4twQJ mJ9Z&*s 1|! 6 | Dj#%1@u  D !U5 Gv;)H 9 P^9 23r?  w-  h 6y 9_HF@|8fX%1P+| e i MWgzn GpsIl Z ,c{}(")@$aIJTS +~i_U]rr d; TNj19rLD=cU Z$ }Hd@ wjf]W*OnoppaI1l"SM]q3G} _j.D}(L@ B)oa^} "{ 2;!N(@o~;<-B{0|}qV{Vu5:-t7]MwBn*'FKpD;uIq}oa&+;d;(.f-x# YNh@^x59{??m J|!0vP).W0[a=QH"CHQkkuw[s5R_:9s6z|v[=jlL.(NJZ[So,@P2j/5P J( M!f9(  +*XXJ"/  +/  L / ."=21("%~!* We,@!IN(5' *=@2F6I( , M5+"/M*Cd.;+ ." % 6+<B5 z"  *'(5 %.'I69J/8UL  !"82 ,B6  $ (<2~DZe]66M?    '. <Zh9~y T[@WZh %,_.61   @T=5          ","   //    $   $%+",1% !*9L<y{ ?*1kb$LU1$byCw~ 3!v~%$ ?N=DT@BI9 ,1$5+ +3/*2%   (. "   .,+ +/"                              ! (*           codec2-1.0.1/wav/m2400.wav000066400000000000000000001016041412132000500147140ustar00rootroot00000000000000RIFF|WAVEfmt @>dataX   vgl+z^^Xs@KR'b. >b)z tW(9 B.Wg%i2W*1"4=Bh@K\MJ6:nG-_c~X+atOs}F-421G4\"L)n(Pc  2 @ 5W@/2<9t6 j f(2$ \1O 462"Pn } R Z pv^h-). i  `f : Y f 2ty|O $H4t w DV"ex?'q@7S  F@GG  v` -h R5 {ow>2/u3P !G hN}'j?V P kR\up  D}P ^V;a{EH?g# [ ZJ+A9Yl +; P`, @a< r%"SsC}9l S !$2z-iQ5"g`Su eL }@T=bX['[k$JDEd,bdwBܥ9M&w "Z,rz39k@ yS`JZ- fT jf;RBh+%  )k- 6CMߴ׃%+}  1 : X)7 i  QgnV/V LSi !3iIP C=ne| #l H1oW^D JZa 6FBS>+?"=8ew }1! u_`n"+s R at7j O (-X>[i JHB?1-"Q:Q " Hcd%N,_r MHi4A@,#6^ s ,?a@W t He& )~ _ TEz+jq{D<S2n =%vtM}qo' #@ ~ o&%FT'WogBG!\wIP]{h?f 3K`P *llyW]@<ij->_ vXu ,:N+_C4 ~@O]C 3 _ 1mn$DUK@h8kOf0 T"Ko[;E$VRwI;%8rP(3{8T=>iEvZ?=1GLrz'cv9xqT+mTz?oX?Ape?fkP++,5("  )16897410-+*%!#-4996430+&%#"!!             9J3 0"$% -0$(   6E 'VWD6@R\NB5[Q( 44>3  @A $ &                                   % *56 %!" !:"09,--=ZR -9&#HP@( @K<% & $$B  %%! %T1E*/LD OA5XRP1 / :W] /Wt & *eg, '8??Xa, Lqb~z7{2+zI((Qr!{/(RNO'A ,iKGQ<  Z +c8co  [ -WCZ=vW E gW  Ec53j UbJ m"h0"z\2d3u@WP"A <&f3,l \zdqdah;#W"[{IA> AxPW{O 9 P((r} ^'vLE !K'%FYb$/8X $O ~Bm(k+ +ؼ Ml ~!k  MS-yj g!&$ /bWK. (apgq,)1V,E '{ӯ  "o߯| }pp"?"A4i8- Eo 7n>K** 0 z0a4Z+i!Jck ! .( 4ֵ GzR%`J^C i +Z3/ ]jX i+w/&(@jS Twow[ۄ~j\  )T:|Jf 0Sd'I|$n&O)#оkz:}Y ;  Q oOAL ?^us^slyn$$I ;ӹݡN;e; Ne$ gg o dOPcH fmi -$z#2?ۍMF -r TV ;rR 3 8Q" $Y2r* #!S נE|*>  5*X AdZ,h V 2{jsM*- v!#niTپe<? 6 |e%1NjVeN$"`9FnC;"^3Jvn!G'/Yys'( 2#t]( D3@e< d$vv~.  QBkwγ ќT-4,?m 8h  %)Mi V"Y b)<^[;y~N]  ׵ 'v*!0{$ 0DhH mm0#wE7 i=ksoc0Xt ;ǔXs-0#" B{ J8 # 4m$ /j'/z!Sm;M?ap.SL A>V*@ũ &0*R2oCa` a|snh ZIXV^T  2شZ{*, | jMnd sBz8r Jeo ZWaJ8# эA '!&5Q2[H0a&kS $ lfx\wYc[t%|6  d$g"| Qbb!p:[uTh1P4 g (+ ,9 RcZqb | uOޒԡC9&9Kq0 F+Z^o  LHksiy:z,*A H (0 ' D 0 hF uv ~J'!` &IReR4[SVW^G(^ J o&fNwu^ E X  {0_ W.:k\yQ$7 T B=* F F8c ;sX.h t84IE*$``0Ku Mv P N  ?}Nq||4vZ*UlmL` Ko,K _JV>p*^V\r:,!?0?%x/k dA1(4>neXAe=Fmk FU`"? IfLf3D!Q Jqs[L9?X;2@j'7#KULFl0_S$Np8Qc\jn- {VUkxbFDQ`e9hQIW{J 0?JLKJFK[w 3Y|zW/l<W5.f {R$$Hf#6KgNd7vAqU2 $W&\;""#(7=J^ef`XI/ 3Mc~ #8_.VosU/d8 pN7(&%7IauvaL>.$$.:DUgx&Aa5EQ[^ZSD3Z3 cI7..;NhpaUH>=>ADLYer1Mk%4?JVYS@+Y2uQ?96#GYFKSO8)5D_d`l"-Gk4JLNZc\H+Z*zZ>._d__R<069B@HTaw%Fb/G[]QIKRI*>r;&#(0GvtibXH9-,@LYj*IWH2]I>uV ~ nrDs-_!5t >Nw L7,e[B"</?($xue!b>KN:lxNBZr*?c\&@ =K,h)mbv']$|md|m d8b*A){b5BvE#KuB"EW;qi[D x!`goaMKx)':nyUCCX}*PSAdOkB*DiI:DL_ VRK|7HEIP\|AF'(h}bu<>xs<APQ`3@ ++u(*YPdaf`%c?t1Tth~ZW9l45tw/%s~I)1Gz O\^(;~Y\\y > I:.W 9 k XZn(}J+f XO{OYN l J VF28 7( j / t "2'}FisQ Mi ^z9w n 2 1 r`9^  @ ^@n! FyeOrTb&-&> Q17{UK U %Slvgn!8 Z Y \ +*8+sCui1'l  Hg8! l C :  5 usGN 7 VDi_W'[2ZW?NiS8mwE'go sj 4S|<MvJ8A Bd?E~P n , R j=KoWfUo rW2dk_eoq(J!5 .*AF41o' E J]T ` g RI T` NbR4_ms' e%38 5);B9\60 W  vD " L >  S7rr( c ,0]O4/O!xU K + v1> MVCh M D~. F6rg 1 \+.}.P_ dFp5Q"F)%Ob 5 .S,Lwzf=df~XvNio. 17Y)t4 *  IYNRL 0sS (Lk)'x[eD$q]q # Jo2e`}#pKn11fxW bJr%K'K0o6yUBD|X)+}X ]%I{_c8K0||lYY[5Zi2-LPlC#*( #[K6&Wb()d~ &M 74g!J{e8I_aZJ*.wkGs5L&.{s,:j.~(_Rl!K^W6 6p)]l0! bu;sC?]x4~0& ,<InnPviF]|7bB$ lN@l7&0gL~Cezq_M/yS1ynn%C.'^YW;/%7Sq -OylR=)!3;0nf^afp~/BXmz~~m_TJ9+  (+'1:CJOQZaffjje^SND>6-'!        -7?DCG>#Mly__>\R_dCDZ3&b{ TgnImY q]Y0Td-LZqY+BVjbl*6}384sMP\c *[X]A[^r3 YBlxw QW-\N've'kA~kB5:izW'~ c))]R}'Eqyz25!v?HJ/I(MT=ZZ,Re\*b*J>{C-50v.(  49IGU_K!\UJA7.! {D. 2D#1?7%# ":K+ *# (%.+'2* $:?MK>  372! %AIA             #5E>&02'&,#6; 'H%2 ?.  C+  7IW:EqI,&Ke) SK8p#mSnOD>VI#67w%s7'=^Das]9`4{ fBXc :qJeZj%kBN.3 d^n#xaZLyc^a3:zPt +_8)C>V U1E!48~?O"8PyF|QJ7Zn2ws1>5f qAPtHbKJrK4xu< Qi\%,5#zkL"t1b&]E~Vq& >[#s=\\fXu;t|guQ-<y^YKs<ROY~N(\Ui KTr~VpB3){`GCyJ; <pLASA(cTm\>YaUr:HNJS>M  ^P]/R/Ts:Se5@,f S.3ov5D[wUE>l9 5Q QyI~zjT#X2 5TnzC\%N~L50W: lC|0=mvP" F g3W|An+y(o2qAM^SGoy;gz .F_(o/8< Gw@vD i\_SfA$+?E;j=)2BYhm/[@csY>e<W/sc8[z  "\> V\'7_{5[9*H.EvusteUs~]@J2=v(#?o G\!#)RUrE_g{ S?z@o|.V;"b35)aaTN%J#.rB[Va ;s'#Io1L  ax2|7;1  G[VHnfWX1jR4a)5&C^0uD#`Q$kg,aJ I  i@'po*FXX;{^ls|C)v/8u?JGA/H+_u`p C(G`> DCw^dl Hl )71Nm3J$w:,dO1K|mg%PwGSF#:0i-E|,>C'K6Hp5Ak#{T7 >w'VxI'+ fl@"Q_&zkY/N/a- #CSVo'1>d}"g!jgA:}mmr\JEHo0 R_L<HxvotZMJ\E7RS&j3V':V!'EVpK|3.%,0xD?~2cIb{1?H!sr&WCCW mf $4[gf&QL#!b ,z!(.eH8ucLaS7  - +{W4;4E[{t B k-U}b7*9&ZbPKBP5r4a=T! H ` l0 v*H l J /=5| | < V 7/q^YhGP.g yDyop.&2 $ 5 | 5!L0 , J-8G,6;w=k r qC#D_j7 0  6 bV7y8w=6~ N k<|TA_U"v fTV= 0]),K @ %gusIuouT Y >Z-5MFPD~mi  rw1t4i{I4SAi t B  X([j ^ ; R R-Pt.bt= ?DexC#h~ %MB}e ? x.sS #H<'BN o5M1EV O0W.h-3{~[Cndoh\4v(Y,6ky @y V 3f %7;  ,ZLID/:-\*M 3jl}QvU&$_@*g% ?w;,9 1Gj,,\ei ZI_pR#)=;6])c,w3}5lJ2>\f kz:M`QOi  EIN1!vo2Kh_Tt GyKt[x R<( r]QNbWpxyIqv`U}VP~9n\R@.$r+(6([n>;Gz V1A~yQ}K`FNBgqCEkg]7o Yr;F Q F.&PD }/MLd fFWrVI]1%V{ ^SR L"RN`OtXO,W_q#2jm(}tp$[Hta )   $VF|g"MNd<%b@ s)|^f&x+QpW P7w-#q^JS2wG=u\D!4.0&!- Uja)/kLUu$`tFt^Eh[>BE<sMvj*sv'G-"Q(+Oe"a)Jzq@F LUJkQy'/<4C;?{kxU:ojyBHt*V?y$NS\Y +:Xb4t%HGz<#>=%" DZ5(bxE 'a cT^Tj2;/SBX"_\bG="'" 4N \5`i<8U`m@W*8PP-<-|St ~X 1? k "ZpS.<B0A~5LG[(P7'5gcD/S#^p{E 2[~M&!fEg al9BA0Bbyle]WUu'6>x9F  9cIDTcd#Zg/d\A6)r>k+[553Qu]LY_gp&TnEi;sN*9z 9IMH:0 U:  2JYh 4@^s|mWK3#ukqg_ZZ\aofk~ $1Kb|u_G-}voib][YWUZ[\\_fhpsz(@Tj iO7zumid^YTSSQPPRTV[`cgnv #8Nc{xaG6"xolc]XSQNLLMNQRV^`eku|3G[rmTB/"~zsokgc]\YZWTVWYYY\acgnu| !5J^stbR>+tf]QH@>9899?FLYgu-C[rraP9#vl`YQKIHFFHKR\iz2Iaxzk}eD5xxVdT\NDo} AQ/<BRmf:22D 2r.a}eS-wmem=9`xM[l:Tv_Xfb(XM'/VfY i "IPD^4K57CDK,u!DC!dV7FKT5:`:kI9xD6oGH}+p)NdvC+-A`m7$=tC'&T:}4l5rJ>6^ L)Pa0 C8SVBYqT^TJylR4j0M9 O8  WK<7PN*uGM.%uL*ds~AG1@|mh= p<0'?_Cf\o0/ J ; i:UJ2 t[*W&S@fsDLrb [AA[f@h ?n #AjD6c[bKXS q8\7{y eN\JK Hr L(hID$Wag+ktlr~}OXg*1E-'/0.,0F#+9#zvJ; #{}G }D $=}g&=YuPf"+I(Y}m1uxU>|y9 /2 [pl u(eK76 1"$! /"6AT0!''; .8 $/!-5*2cLV?3aoA+C) #$  ,$     1-"#  *2&  %.&  %.  $       $  !                   %%      codec2-1.0.1/wav/mmt1.wav000066400000000000000000001750541412132000500150420ustar00rootroot00000000000000RIFF$WAVEfmt @>data`"h4$@\l:hfF@P.hl<BP*@np>H"hLFh4ZlXNjt\DxDn> ~~6dTj4tdvrP$~6 ,~Zz@ ~>xPjD`l hH8TTbX",$2|zttr,L.\r*:l6(~xtl$>lf:fr&hX>T8b<LZZ f.(nhj2x2V0L^&N*Bf(,Z80F6&6f.l|rV>~Rj|.\THPbJ4\~ .|tjV:RR6Pv4\`,Z4BF~f\0Dj(bV|V FHj^>b,xRj>jT.\BXP6fvJ> hznFnr8 r`$L^4`v.R,b Ffn"<Rh*"^\x bN h`h|4p>$r^DRdP@df 4^&~ VvH$x>XZx~@t|&\hxfzNH0f. J8<L*l` |6>HN*p@`>lPj$j\00`2| &vXLhVHbpzfn|D L& nH.&j:j`.\&Hd&(0@`""n:|$x|2l:8HltR^, |Hzf <nt~t(4BLP$P ^|~(@f8Vx<^L8jXj4B("8f(T  H~Z:HlPtz|"^ T2TF"Fj$T\zN(Fr~J0HLv|, &^&v60*<~>$NFJt0p6|$<*n~b`< <bZF,@^",VfnH0`(`PF0(4 ^0xp nVxBBT,&X 6Bd fxF(vDB"2f 2(zh x$6tP\NTbl2*Z" Zj:z 4~2F~FtXt0<tRNp<6~b(Z$rJx&^&^:"NFX|t<:B,2*"l`LxVb(@|blBbD LP,(<^H46p|`$z~.lvJ^>Zl< $Lh\fl(Z&R8(r>Z&f0Dv"Pb(*RD>\<lbRH4v  FJ*X@lRVV2n> tbp >P 0Dj`\HD~~~ \dL(0BxL8> Z<P(jd0>x(t $&\|4@jv0^B:|0z*j6(|:, `PF\ *>:BL ,tvP.\>DbJNhTN>`b`l|dV2&z< d&HbL:B:\0dR^6rPfN4h 0x& ~ F hBj~P:"PJ`BHv4ZPB ^B:8.tdXVLZ|"B`r(|J,\rd H2|$6\~4Vv^$Vtr<b f"6(f: V.dTtHl@|HbHx  6H^0`h"xLtPT >tfRHlb J0DVZ`828Xn 8&(D.D0RPTL$&2 p&^XNv"v<xd2`HrpHj&lx ,0>P\"|8$jJ@D&F0 TnDdf vFrz>$Lr&|"(,,HF&VBZn^~.6$Jt6d`Lz\.^\nV r jdrdvLj H`P&f~N$Z(xZ0tj 2hF^&lxr: v:>~2`z:HP|L0>@F<,l^$6JZ0,P.<@Rtx>>`^T^LT2bR04(8 "^t&B ^t:@>(Xbt dVPD$ (*8@@|r 2@nb N.Ll^Z,x>r.6Trd@X|ZnL,.H&PxZzddZ*tFVn>x|(FjvFP:,p(\l*4hNlr6fdJB.v8H:  x*Z@n4>~vrp"R<FH4Rd`$6@F ft0 ,86LhfFLzLn~"`$^~Z4l :n(p~pz~BFl,& $FHvJB\dhD88( b2nV dVz(| JD.`Rv Lxz||vfV >zjRvj4n8 .v"lRl4xNb*Z~z6Z:b^BX.2xZ:\Db,$*B~JPl<8b@0:<|Z2 6z @t6v@ rzJff,"X02>R LfNDhHd,xrj|\2 h42fx$\R42`hl.6rf(< pzj`lT  r2LBhHX (nB"X@*|&,^>T**tlRr,66xB8fDvfr6F<(Rh< *LBrrblnh0RJZffFf|R* 8"l@d|4<@ X :,hXz:LjHBzpl8>^:8<X:& l0Dzhz$&H|  R80jXp`"txT l|p(xx4z&P4Z&n(Z^^"X`"@H*n|Z zRNZd:\V8FJ dxbVZ N`R0:xd>ZB@lrp(b,v Bj08dD4|xp":Ndf h~^dhJhZjj :<|\2>6D"R&.,*Tp^l*>6|j$ d6j* l $$xLL4 Z xh~p X(p>vb Dv F f~>4$0`T``8tBVf~jpR4$.xn88>v hB>8*0`@~" BL&`,^0tppJ j^>4Rd.VPRpbR"ZnB>l~.,,@*NV||pxJzJTht"f2PJn4.\@n~ @ ^&R<>rJNN22r >hx8\$4pJP"pT*xhn@~DX20HR(fZRp(z(R*,P:rn:ThH b,x|"vP zF|&T.\$H@&>Dzr ~>tN:Jrp20lNJ VllRJjN$<`T,2&<TRZ.ffB Jn|,88lrF<>H(Xv>hJ| xLPh*6pr.xFX:,@ZhJ(d"V6Xb> zR>V&Llr4b"L$:<>,PR^ZtFhn\v:^80$62fT:X b x.BlP&Fn,fVd*vF.R06T(bz:jdPd>|bJZ@$z@2&lJ8@@(.8jdzp,n^, PD~rZD&H~6N>JD h~\t^f^X@..:LL frX *\6txZJ >  l\@XZh>  Z8z|:*nP,f ~ 6 p*>`.&\  D 8Tb  < N d>8nZ,@B 8zT\J@<z&r,hPj Xt ^:Zbl>8 l|  >z `f,x48*4 . :LL48.<(!\NZ'L ^2 .2J 4l  vz~P.~"x 62tdp 8(nD.@' ,L~z$'FHl   z J"0B ^r* , 0^ ~x4Ѧ)nT^r b B|:dV T 8<t ,  @D@\Zd 8<4 0lV` N+V#tDtZN\lh XD Bvl  J  L*L&0> ^J <N(v`HZH>^VTdJflP n.ZxHR Xj b hj  T "b4lHhTf |Fv > T6f`r nz X&  N "dLf < $ bd  p V$>PzZ L,P 4~tt*FfXl4(`VDnj| 86NF:lTZtZB6nd|b0r"flfFtv`BRvP*xJFD*84@P@ZZ.24jL>|"J>.6j4nTtXPj^~hf>DZh<042ZLTz<f88R.: nZ\V&tL`(&P|NBd|RL$DbP "$<t"j,2^,>pH&jJ.6 "~@,n\v&t:TFt8|0 Tnx~ t  .( F&>tNLN8lzjBhVdX |H> 't , Fr.H(8 2z v VpH P,xL 2 (n  r`XD>D`4T<.t Bf"  z"pxR"&&*6*bxtF (RT V @ @< \ ~N 8  ~\n62J\"^#D|.(>2Hz..4@zHn dD >lrT&4F   ~L &hnb`l0RV ~~f  ~\D< pxNzVBd ~XT "@`,@.  & Rpp  \"P&bz 2j,^b| D ( b$d6"VL 6 r 80lXh^L.6*"&j&rJ.xb0 Nj>. t rL2fLdd~t,Hd|.v |>~<HVlrfX@V>,d V&zPXf\t^dHJ,L~(`>>lxp&T@\Bn|Dh.`j v N`@$~&|p\tb.8z4^ZD&DRn$B0|$~RXVHDZ$4@plj|NDnJb.N lr8x@6p^nDT`r8&jxrLfTP8,Xf`d6l>H28* vV6pH^>RHR::> bV:^Dz"b:(0D| hBNrv`FZHFv\fZD.B`:x\(TL ~>BNjNzD8.R jd>B f8$^$n~xxjb4\h0 TT:NP:ZF~ @Zh4<^F> <T0zr`  ~pzVr HP  0 VHFn *8 ^$  P^*>\~JdV p*vV8*2H$ (h>DdZ>@P ~x d" ~xVF zHHFf |pH 4 D LZF ,^.H4z D  LP>h X&~d .Pb 6@ D0nZbd 8v (FPl2.$ffjD|8l6| 8j2*~@vDDf*J" J2<0vR8<J:z0V(BH|~ ~0T\2PLv8dJ&n4XjxbTvXth"dpv"((TDP\fb$&`L&v^^djJ|lL4>22,^h (T ^   $6&X2|06hr.^J>t<t,0Fn>2npln^v t2j Lzb&\:J8(26``fNhhR  x>0L~nfNn.JF PXH :lt&>> F <$,f,|H. ~ N vh4z*<,Vf 8T4Xd~@8(Zj"`*Z$ XH>@:.$vn8(|F.@V&86Z&V "*.^t2T4R*L6N`>F &t2RpXLlF.dPh\8fVF|Tt,v($B(&VnTBn0Tf\vN2*FF>.|(hLzHH"drlxn L*V2lv0Tlx ,2dH>L:JNt<BZ2"N` R&6| RhNHd|f&8ffDjjl|XN8,^<"X&J "d$~<*`Zx r: :pdnfdJ.b2 \ LPvfp|``H:dT <|" .:  F,Rt RPP.(^>@&rzz.n$rLV 2~N`dV 0|4.Tl, .d"FRFxhD>B(T <:(@n B ^`h2v4B vR2. J Z2>xBP x<hv < 0vnP x nf T~4|&"", .rj,vFP > ~vx|  pv&4nF 84 t  :~.P>R`FF4~D6v*v<>0f  $'hnrNhF HXf FV,dlBH @ $#& &-~:F^& l r fH~B~, jPp4Z`|Xh%R;( <"&.b:|&bB R 6 p~ 2. d6 jxxb R)28f~:t+FvBȊpݲ 7\,!rFО|N^.5) \h*xrzVB8Nf(پ C&HP1F2$ |J 4h 6 <n'*R+*T6Ū j1X5LVt 0(EF"2|Z&5PH# f2ػ!X1)p^n$ɴv d|v"&$p@@B&J8Rx;NA"- Z*0F¼>"(>@5z! *Hڞ׼ %&@.0fpB "pv" " X5<ʨN602B>D0;!Bķxʪ8E<'T \ЎNdx+t=`2r J(^`(nzN || KX"Rɔ> hJ/>:r:֪.$)4:(Nz*  %x/2+@vʖۄ(f &*P: h@ !K,^RL %Dx+f9=@f(,t"|%*,`$2D""ܐ.("x!4ZBd> 0%x~p84@ t .^Ф^B`B.7N5BF²r+R9D1|۔ϒ 9<-0~t^L & >Btbd6$X  6 x,!  R 04%0@!l ,JN 5vD1l' fH2/.,"Lռ"Fv @dl: "  "Z `\ dvLV:,zVJ6jL  4zL,t2 .:,,",:0(.n^ |!  Lph:dfP 2x0   4|L$8pL $ZZr "V)^+&>$J22 ^ v\ݖBX\ 8:XR|Dnpx h 8B4bd&r>:^$4J24" ht$ $d,) bRFp(. hN VV*V fDr t f`(F@(D @ $:02p r Rjxz8d%.(tn*ܮ@D ^ z Hd<  nl\v zB ^02J f H|$,V D0p*B !, >6  b>btFN2|PT &t0\F  @4d ,VR& J >\llL(d.bp\ތh(2Z 2 hfp`D Hv6  &n,$ <> x fݨV &H% ( h@:v V> (:R\. 4 (" 2$*TfbT&vB0 ~Brd'&T4^0R(80  Jx|l \4B> (PF$ j > \ *V@L8~2P X xj *& ^  Vh(>  tR^t:b JV n |2t |L Fft`2 L 6L@,||@ dHjPxb Rr F B>b(l >bl .Z&PH |z& V,*t>xL`TdPR \,2 n & 8 x~dFB>l~ Z T LXnDVL\ d ~pXF  @0 vDPRR`(lX  nJ\HPP^$BJLD6FHxJldX\<~>p`x D FZ H|$p2N&`DH (`x \|V\db<F|:nj*<\nL L8><@p^8d0  |8D.$"*06d$4X >n|^tF\B|nzhln|H> N. d8Jn \@ ` :6vBn|nVV t6:0.&D" : V66>zt ^ (B\jDZJTH$ ZfBh8N\(F H4zX"b2R    @&`  , Bz~fzdFH fF2*~00Br<.Fl4 H0 > .,n2"~B<rv`|X&FrT\h| n|F~,ZvFzl|l&bTn`8rD:,(lX@"0Rv~XtX4tlD0vR>vLLFvf&vP", B. L`(,F$d(HD vt|<pBxRD*8: HDF4BLX|b<Np&D^t~8NBZlRvJB"`fbL& zd&"j.zZnRz ^X>L@rj\,*T6*2 PjJJ4," @>P<Z8N<*bxf\d8hX^^v2"BjTr6vR.RN>bP Dl B8@\86~@\Fb. X:~Bbhtl6^`~0 \"b:(p~N4@&xxxL@NT$0(RlpjT`F\hjp8vXDxzl Zv$ x(|fn4ZD XjHPl^bJ~*R~v<<fFf*F.`nf \^ZLr\dFp`p|*nnV`n~p\`D|6zvv>8\vJ|r0Fv6h^Zz NN"$":dBzdD 0@jf.PJ8nFVt R:(<RZb l<*<V@dN$~X(zjv6(vt HF<~J,8 Xz&$(>||fH&0LZL` h|n&DF 8RN22Xh\@~:N 0 Pr~B,@ F d$d6LR| l.:```,h@ Z~"R2`,HpPzblzt$B. '$J3.%bNlפ>,8Rt .V4rt0<~  8 *r Hl> >8l  N f6Hxh -Tz D < ~z9((xR $^ՊntLp lv" t > v l.>xjJ ^ J 48pTr%(޲@7׀Fz$J;pZ $HH ) Jr#6 BhXT "FVFRN| 'BpzFF\TDh& J4*Rb\j\4Pp: ,&DHpLb8zDd8t`): #8 v@: Bv^ z48> l :2J @>  n 4 &Lp N @ >Tt`T&jB H |J|Xb8h4@rD6\8Bh|&T$ fX$*>zB .$8Z.4"<^ *FfV4J02V4Px6Bv$~N"@tlD6B&fjTd(\2"JP@*Ft:.xtlrD2`~"tf,T`vLX"JzHP tddV2&H:4\L6\@0 NH< lZ,^^zj~zJVF,LBRndD&bn(4v@PZfX ` @L f\f*6|.>D4~ H`R4tl Ft82TZp8tlR$z:tH>r,BTT8lzF z,DxP"f~HH xLp&dxD|,*FPDX&zHR<B|Jv2J`JffX>@4NH8|$*xfX 8.R~T 4T`bvl  hb"NfF,&`>&8h(n>lD($ fD`"zdzPhdf>,nZ.~x|*H` vN~,&Z6V`"N f>4BxjDV`zF8&`>B"@* 4l4H~BJBBNH6PDPn$T`H@v BRFN(4h~8|D*"x`*<6|>,,J2 *(<,~jr><48\~$0RT&Z,bHDTx|0bn$*V0.D0F4tN*(dPP6^f,LN:\6tDZ~vB~fPff4|<&B4^fd0tT(>F$0Bb bfp"|D\(84$L^N|FxN.(v:2(*BFz*N~F T &@0n$hr|*bV*6^j&H6^pdfx"r^\:,>><Ffz @Zr*bL4Z(0ptn&nb@ZR,82F 0vp2\Tt*^H<"^nP$.vn^^Fd>| "$Z$>@L( 2BbR*vbBXFfBX &2rxN>Pp>t|bF>d( "^`D.BPh.vJ|.f6:BXHF(f ><T><DHhR|vb.*dBR$zt\$( D<>lP.Xx"HFXJ(|$j2 D<$|d"t2.h`H  l@LF"VlzTb64&.>P< 4nF@hNfh:|lh"Zhf" vP| "R* FR  dl |  N"T$ .l ^|Vr^ Rr:l:v 8>D&L>@\&fZr`&tnl^N>L" n vB:|hZ^R ^*: d&  V :2t 8*,F @DL< 8 @xf$Fj^j* j,t f,@ 8!0#vXB>܄ݤ ,H 8~X6jZr2t p*^xJ^0hB`  6ٚׄTJ%+\$"JD^"6rr* <&$V( \,& LR66"NF RPB`n^x$x  $hf <)* h 6.z ,F | 4 0 4 : ,h   Xt.\"\Vb*|&fZvrn  >t8@B"HHNt::&V(\Z6ljv6Z^8N *b tFprvhj"hz.v`XN&$TF,Nx@@tp:TD@~jf4xfzh .h~>@@*drFHnt0pN<x0v* \6zT>8zNxHR0N~B txx\<j dr(Jf$ V0V^<|"*24~<&vh66VFRd.>bdNXp~.$,BZ  n &J:vjv |8 xz(RFd6 d&,6VvvX:< ~ f(z>~L$ >L|LbT88~ v Plrn &*BDF^r6>:D"X:bfR&nxZ&vt8 xd ~.f@ J rl$*& F: z&p r Z0 $@D`<6x.2*N$ lR0X@4@z.0h .`8. &J | |8V$xlz((t:b8DJ!|< vXz&$( D 06vTZp \" Fnl$ݴ F'H\P|"B6r"v2$ dH^v BVF Rt&`xf< Zd^@h\ Pjbp<D. 8"*8Vn( P2L>6|b"X ,< F2&j>~dhpL "h|.< 6HRL6P2*hD8zL`4 N 88dPt>*:r J jxp" 6H@L2h*,H$RnRVzXN. JLHl ,F0 "4N420hRVhhxL t "Z:r ~<FPx:<,d(88XV ~@vtl $l\Bh2\^t.f(v<l*2>4r&H6x(`Pp8>*$rdV^d0*H$l 4 v"R6R b8b8,^zl 0T$P|,V b6L\Vj(@h >2@j@NRP4>f0*RDZHd~~`rNDt:^t < n8:6xvV<, :>"xb:| V& "&lfrfNFjnFz 6 < (zDB: pB j ~nfVN>H(F:P6>`.vFZ\&lHh  2  828 6|*ZPJzB >$Hvdl\~ \ x L&JbfJ`Lr~ vvT*6x L \v6p8zf BFF L P:\db<~ -v68-$Dn2J݊~"Z@`d߆۰ x &1T8 ƒh" LAI1N  >p&"BD;-(-Z* vz¶۾$B*&#\Fd0F@ \  Zdj JEP2d~Zj޼355-&)<  D؞ޜF# 4H@4<"@>#$;(V(\6:"ξP$=.P  8:|cTlڰrD=Q1+(&#Bȗ«&8">0& I"YP/PZ@.҈0 T. 0t";1n((/D.N 7N,>?hrϸ6ݦR24f%68%LT*Zx -*R:ݠT$ rp  U4. v 2N6b:2&59 &̺>n$P2^-N#BT,ͼ̂x$^x,Xp . n N6,. xft`Xz DC9 4 f2 $L,3pl^jjNZ($X%=t!BV*ܲHnn*)-T0,@*ո(Pfx"fҤbH'1 $l0. >\<\<12$ v4@,j,*  |% ztj6 ,( 2 04RvfJ\2b,^Lj Z:*$$ l *.( vH22ۦ L< ,Zn$L db JxZ.dp  H&2FNVl &B *dl~^,|`ؠlB8 ~-N#ܦr#h8|& txzVvn 48.$jV \ p "d\xR  z &6 (8 @0:>zB 0xR>J~p H \pf:  B ( F0H :Dp >R | $P*Xt <^"|^xx80`$T.F*P^L| V 4Z f RL H `$DZ  D0brF`4r"0|NP$Xh\8pL Rd$Zڜl:>|\ ~2XfNxZ!RXVF. ^rfx ,X.rZr 8 \RDBtn$R&B^`n:V$B&fT@(64 N|D 0PP`Rl`d@~ nVNl & j2~ hD ,0~j6NBZ P vtf&bN`X 0$<*VNNXBrVbLzh6r^dtz|> ~<& X>Pn \D P~&j|N  `  r\l8d ~ R\vx >^>p  J@H$T0rBn>~jxn.|"j4\V$vtb$T"  H|v.2 4f"N|2>dp RHjz0pn@*T*j0 L6$j22 ,ZH"`v8dXVV>v@@ Pp,.4 D. P :H>>~0dt | h0h6`"P<|zLb* p6^h h~|4VPVffL\~^RTjLX~(vlfX8nl ~  $FZHX ,^B H.2jT,hv>0 p`T8~:.d@$*L~JRd:t8~@*d.lL>X"Rj,fRX6fF2 rtZz.<j  "lThl &0z2&Bb6Pt~nH Lt (4$B:\@0>X`h&jZn,f .p`bZ6LZtJ D@rDR  VVBzh,"d@ $  r8V N.hNt(^0nz@:LL 6vX2~&`,R: nXxnhx>(f.xH`ZhZXn,xHd&@ddtJ^68F f 0| ^R <hP"P(lJ8*v TnhZ8vJ~@n2 ~xdd>`:bX(r^jJJ20\2HRDj&\vxHv6F,P $VtJ j FRJNxzp6|$Ldlz<*> P l2Tf6L&"$n|XP &l&L^d`rpbrj`06dFpJRVdh:>RF>~~8BTB,F ,pZT<~t:,,.$&l2h4Pj^(Vp4  l"PfnNpV8n<FV\h&\PVn,hj|6,&.t2tl~DJ.$8lL> Tv.rr<<tvf`l(vh@ZvF\pvh>:z|z n<tdf\Z0z&bhLbH2: dxL` j(*2j^0&DX ,DF0^^hP&6^L (~X|TL,$*.xjXdR60`lp(\FnV(Vr^v$h l.6vl28F:P:Nln:T\XB &`F&$ (| @P < Hb4RhPxLtlX"v" PnZz,>Z|vn``<~ntlht`26\BB~X\B R^$2fL6HZ0l$H:&N0 TTz6xL^:dlvN0`x$V0zTbZF^BFl~0L"Xfh>4|,2n8>FVT Z2rnZLn68bPZrx&P0l$JzRTJdvtJF> @*X>x,|bRv F46l$<2V(&J4 h |*>X|&b&4`TT(4 ~ |Tv^zz:b&dJFd<"@:~x<&4NRjNN`^p"80z>nP8|,|| \>VHd8j,@V0T~RBNfh0.tpd*l f ~8tL*(>0F4JB&.:|HzzHLF fhdP HRb$ XlfN.>~Z@Rtxf`Z:(*Vl dHB:L:\tx*r0Tx808`T*0NdZ~|F,NbzHDb6 ^>N*,R xxx4FX6tzf(|bZzh02nx,&B:j .dXp,dh*BfDj@4 Php0LZBp&`*j|rZl>l(| R:n,@xH\Ph0n8zZlLLr4Z" <&,6zZ<.Tt*v\T T&^(pR^j<(\.08rBhDTB~:*|L:LXLBxrTZn ( Htp@&hZJR(h\Z$b$jlLB@ Nl 88  Ff,@x|Br.\4f@bl>B F ldr(B.Bj~~hxd\,RH4LHl$pHL\` J:^2\@ ^V:<pV~V|&,l,P$t.*Z`ZZX&T::`:^(~nRr~~pnB6^xhjPjfnz"Z<0>j>@ll~xj0(vfnd$*TFZzT2z@26".,0$R`6 \. n~  ftxLz<B.T(&t>t*pbX4J\hBB$`Jh2r|2zt\ ~6Ff^(>BH@BH $Brlzpd^Pnzx~z4rDP>PBH<0HZ&Bh$\ T2*8LRDHv D$f8R8jv~n*4`hb<.r~f,jlDHx  `Ll P\,>(:b"Ld@~~ F8~z^<^p @DTZf"nX6z,Xh .tFTvn(l8 d 40~8P>~Fh(R *j $rVLZ>~T:0xhz*hL$,b><n.(j."0prT:(jtj<thNJ0zJ62(PDJ0L&@R:.nnt bp$Dl"p&RDV:fF.> \j:(^xNB(Z@.,dpD &VvN jB6L||6tz:*4\~HlFn~|p\0RHp~`h8x6H JJ,DNt,>rjD ^: RXNN4t46T.jnpVPhBZF>T *$,D$0P PP&:j62d*ZBdvxr2jdD^~ 0L, rTTT& J h|^LvvP<B4hp&4> :HLV&6n  2fTpF.tR(JTnh>~@Zx(,z.v*XfJ"fv`p^N:TN@.tT~**f@6( Hv(Ntlx"|:r P>D*"&v>&$n,HHRtlVVbxLzX"$rTdtP<X(zh(6 .>PHhRv0pp"20:^B<8fdX.^`*pntpv\d2J"tDrLH.d~DDNZ(ff~N>8>R,6^2ZdR8b ~6Bz8tlL8Vb n@j>J>$t |rBJx,hL@d&$<8hhl"f8Rr^$Xl0f "R$("J.,\:l`"JZ lt:Dz8l P4p*z~>t.Bh\`Tz`*:Vf(DBZ.dL. LTDL2D.@0 n|00zdLV(48>@XLz2$\"B\f~,$jv&0>l*xDxFzz$2` XP~6F\<:2^@$T&>@<4VX$((lJxJzx@dp@rthl 4`:d<H\j"8n \\Xz:B0DP42X z8DXb$n4,t$rBN`@F<|$X^*6`$X>Tfn6\fPdX~48.>`N,Z",N *d\LTl,P&~<Hhj6dp.D>"NrDXH(L>jNB f:\HB`J>Z6<`zRBHL824 j("P|B0P 84 RPT8D:nz ($*bj&p@4 P T:>08RB$XvBr:dt~b\ 4j.TFr>N8~dh<<00DL8zfp$*| vd "fD2~BH0,,j4<npF,R&n0*6:4 28( 0|NTp\@ff`l*4r*$4\vVpLvt`~vl\@\b*>r0:,nf\<| PZh\0T:^PV^<RF^t``zhL8\HVtRZ6Bt,L>zHrfF0:6Dr^Drhltx ~Bn ,> (D& NtHdzx<b,JB6x~z2" |P@DDbJ.&N\6T"2L VL|nb>D@N\,  n&J*.2~8Hf||4<@l|"n*(FXFTZ."T(jT2l$ 4przbX ($.tP~$n@LT$^ (|l*n.v,:bRVfV6z\NB@06^J$$L H2h@(zh`V8$H`0D\::tHxL .Z:2@8>Z `*h^XhrDLz(2"~zXr:LfF<4 hvh,d:X.vLv~"Ll0N,Zfrtp|$.l>0~hh z|dhPf j"NJR*L:pP@b<LR@:Bzx0Nz2dr|,th"dF.Nxdh.&tn2x~n|hd&JFtNJF @dnNZHzBjVV4H&R.TT:0,f^p$>fvD x\b2Xnff"DL6Nzh ~@DD^fv6<lHXN>*^Bx0\"$J\z<Tzp@r"hzF`rd>xvx*b  Dp\B|\,4x.DFx>4>&fFF<L \.@hvtj Zh RP|tX(2HVh2$ $fRn 0R `2X|D~V$:^`D|6,l:P bnNR:&0*Nb|dh@^@X|,Nl<b6Hf^ X,d&6PXF$0x~`D:2^R `@D$>ptzdhvX:0|8^ >N8>0&j:R|B,FV"6tFt.NFZ:$xjJTPXN.4z~Fz@^*:RZvZ*j^fbVV"Rf:6(D`^fzx~zH>"P8$FDz@*r~^Nrt86`Jf n`"|6.: 0n*|J~"2h<@(fVdh :@FxX(n: LZ"FxNJ2`.b\Hh@f ,D~VPzzd4J|z@P,L<B hltd|TB8 6H0lL .0b :&J<V(>@(pZ0~R<|.HNBz&Ld6*t8n.|b< 04|~B>V:fhX\|,HnF  Pfd8T0d4&H tPzT\~<<\rxZ* 0nNJ4T<~**"@|vH\~L^P*T,"4"vD6*L0J8pDPLT`8:hrHdz`~dPtVj(pzZT(4jx(HVb.th:"V>~p6~B@\D|2l&N|xjH.jBn B^hR^",R2@&TN"ntT(nFBF\.P>R2<8|R4v4blP<:pjRt8p:6,@~>lD\~P8L :0<*Jv:,P&(6Bp~ZLl.0F HJ.v8>XF 6:Vh(<^>fV<dvl2T>6xt"J 2(Z@$"(F*b  NNh@Zf2(R *4Db~ >,6h\~^F6bbVZXF^2&~2R>p(lFBRh0f&h( R*&^@r0n@.":(\0\0PblN4$2lX( Z^4@FB*.d^Vcodec2-1.0.1/wav/morig.wav000066400000000000000000000765441412132000500153050ustar00rootroot00000000000000RIFF\}WAVEfmt @>data8}                   !%$%.-/...3-')   (;E[mzprrP*eO:  3e.N<W,(^$^q0P0c(1J0ou2neKF5k0Nb(94b' 6,;WM J`9T/fYws],wV }xaK1z1m ddO G` :[Q 9O F  ~ ZS=ka!y Aq RZc $ Z w  T:hG<YA _+9_LKh #"%,DEs[HN A% d>qMtX W: :"4r a8#o$ lHN z( DJm 7lw" -' P[u>YE'  NA4- x[z R$8 5H*Z J x7,}sB | vM! Gd[^5N_[C,Ms6| ~ u6c~] e  + m`Z%@W},yq&cx +- A )O6p~7l M&$<}!  M_Z v+o4N%zE#82{ L 6Xbj h$(-rKk\hL~g %B<W'tQ! (v{D޵ l  'ph {x9$v+ LhD a-9cyO/d#b  Lfk1l  , r >.575Q&QbsmW>,     \b SX/]lZ1 /o[k*>1+!* $7-)%/di~5&   \G8P3%#"$-/#. !%3*J6" % $       )   '* & &, '!0  #                      &11")9& .'*-*   & &31+$'3'  * *#B3<?.,'"  6.& 4)$ !7"(! 32L&! ,-+'' S$Q >uBI? 36x =@m;IoJ9AK CJ7f_=UjQ_ClhT3;Euw$?N`? ! . vD>.D8}4_RT5  xm0@wvhDKq*A E6B{l]2Ww "ZNO5YO {z] vB~>, }\p:U _ q'p)Ck݇ R  1dkw w q% ` yjZ~ ]&O(I\ W A 'M J: ;+gU 'a$|B7F!--Xoڊ3 $> XhdUw `g3n2O|I  5 .24"t+H_  ]8} /< +iv XZur  1-2A( '\,]! b_mҙ Ac BV# =&D XWXx'9f~ R (K'vDU'D)) &[eQ "`(*8 Ue~ - V?W`YsK U $?%! Ǒ٬7)+" T1_H (b$Mw()% ~ X25LEjWrp0 A  L%$:@4= O$),(DatL&p%)"ثp  4 2UE@~]NA | A `"!r E aC̐<(o+m U /G * 7R09x, ~HbM D!s"U"a͈ٳSQ$)!Y@dd%cuKvCXx_ `  t/ o{ ? U#fu9+3OwZ[()_ .$ !+-Sw Q=t /w{52Qli!F@!O%%'˦B?'?, g ;hEj,xCi @ s |p>n[2|Y]- ,"U]uQ !*%+g6'CTxP 12TXK7 %#)[<:U "7-d'bwQlMN3>a~%HC&Q{@6 qqkLm%*$ƶdF !.*7L`2}6A <T-MLh r:XG~=w(>,]250\" u]*17&EDYCKsSd #*$i%;RqcgM@ #J,(n)w/l1I@2q)0G$9zt" t$"}9*$f3mA?R3uzkc)=-)ɧ+ !,2* N+p N^#$3?,tx6> %Eg%z+$pVt'w--?")"8)cTe <v$ t)W]#=FfR;[8 3'!,(%.-̾ S .#!'`E t"C`*E O Dd&V&L5 uU S''$IȘ-2!#- @t)W1߳e4! YY3%g9 C :V <7Cl>u{zeUH"%($aWϤHj\ 8% TY+NWS`=K t[Dbdr:W *!`J23TO  % 1n5*R } Kmh88, o 0- v7iUHp& 7H"2!C, 2   Y ki0|%/ RKFWiFNYo/6 K hML dXricl Q n.; /l6HzF.( lPn HI . ,5,b) oAsRzAthwq__xBl!F{ \H 0yuDR 6id7?@^!hC+YE3mh2tH"%3 9 lUR!|^i\OB!FMOK 0ni_`|DA]Zv FI Il6 MV}_$GOTXg|;h]|wnsU%Wc8(6Q_qfQ6 "2Mw+EY`cjtw|%i*BOY[6b!?X+ %9EBHPK?)$ 0Lm4K]nv '`!/-$z1g.oK% #,../&$ :Pj3JbtEw-0|,c#_5  (=Tw %=Sf|;s I}C ~T1  &%((& !.BSj'8JZl~ +_v7QpR1!6DO]ekka`\UOTTSSQTbjv)?M^l} )Hpj2f;{]>&  "2BR_msu||}}|}(9I^j~:]0AkD776) 4@EISar}x!2BWiy $Gh~{X,{N)v\E4$'1@R[l )7DQ]hx5DNWRC-oO*xfUI92/0/0:GPT`nw}'6:BOZ`fpy}dL7 |pe`YY\Z[Y`b`chnpw{~{.=a5.%CqMI|Z{cEhr]#yF8]i84^X-Yf:mYT @pD{|,[+iMmp$ o*GMD~gVxWgT%@}bfREW=nL P=y(c;ZI5kTg}'(8d=(j+Z}ZsU,S8aqMA]ZxXN:r%q[ 8wbi4Vy~r5=Q^_?st+fgHV1Fqid:u 4$P|'W`}x%S   !m@ u\(Fn<#l?awuW~R#BcOaW  @  1({{IkYq)}lV!~Wreu2vAh>~rUY? n E:v hY tgCr: +z1@KAF^{S4E.+`c U[ D!6 ro~36sp ![v;Ficx !%m%P=B : /86i 8 %z q'"fHL38;Q3P~o %p d\t:KP,& x *s!qb~y+/.R5s`Ir]{  %/"s \4KnC+TL  '{;j]* x|tbogv r1V$a uXCbLKN $ .&.?SG[ bU`*> Ksygbajn}B f W=uo jO;^9zExTzf`q P rs)sJ/b$sYke=.c/~G0wkiIz!<@' T {lEC44Rt"!XIFOAg- @:+Hu Ix"9gWkti{I )rUuiWS3 AO'9p+`r$a+Fillu,&wW xJ/tKA' -OnwfOjH+ "X QspG'KQ=P* 5(]P^h<5(;2 .W_iZ@y=qTv;BX3QI, 4=7D',@SG>2/&8Shy9fw:I!x6ESr';n $6"/ Svc3I0zK{C;uNsl1&!A0IS Jznmr(PCf$wV6 aG+.9DWekgePHCFS\tG^`a[E6+,0LxuibgmttslZC.jZZcm ;O]^\nvoW2>RpxvmYA9+%'*-30&)88/' )*)371-("  (,,+#',)%       %;3"61(   !$$$'%&'%$$"$&" %3&&lAaw]G78QSy&`#a>-~&B"6,D;S0y88^0cA($ZN+C@=-/sy|5 r<aH`B1>|; @ 2t^R9C>7lHAQt4@2>}VKc[ig(544u^ qYZM5&lE=3[ o j>Oa&~snnfxY|}k^rLVOi~pGB$Ee\`J\]?(I@X^`imfII3- 4*;^kv^!$4A?O8) 9/373A,$      % #DaHMOG?$4.  "%=4%7%<6&W,9<C  ).2% )&2.?\]p.a#=8tGOt^b9#oYj]_|Tq1VmxL\R 4w6 *_WjnNH Getwx}_[_(Wm-)Zw~dCe~ec<^~P+r<Y6A !Y9f+29oXK#stxfaH^=mUYs}I8{<P`uKOLd(]VAOxE=/~|,RL`!^NV(p 'n ,/C@SD%J;xMGn~ 7[V0,Rgc,_9-H52 P Zw4_]C*j54(~ :_LmRD+?\@`dC i hW!SQL707gl-B,I  L,\P1 ! K7-$-EPxOK""/Jjg/E_q2C0_)=>7UA~ u/ oY{!2q:,|j<S;f8r> (Kq{9S X d$@KnZ<ZL2&j.m>Mli7ptW {r m  Dr^*< /-]d7?&pc!`N:Pj!dsIh3SDB "h sE.bg @_;1RnYdi;zrBZ@ 6  Z P?x \ Ps_;(Ce Gqgo 3? tq] id ^u"[%khl]Ko7 mDBLyw ! (nYPYi6y$}gBeioi6,wN}jOg?Tq$6fl)$*u}I0DLNPD FFCh]&)Bg|O{q)Qs}VOO}vBGXP??GeT\hn_YKO_p}ty~)Ox1nbWk`1@G@2z!\c=UK~,MiDjR>! Q]%mpUSc?FZ|5:qfJKWI4~\:MJ !X {gC%-b1&$fl0qYlQe:\(rE?_6WPF&)-  Hi17ZLU2SR!IqDEe 7l<7(N:%($ 1L 8 11p}Gn$cG&\j]PU|Oy!mra&m z={%oDIwrqW<&@s^@:9@9zGvCXECe- h< s)@>3q~%5iNT6B iOGQ=6ha  ]%}+P y  NMEM;=D_ ]_R$zI(GY{a'XMBf_( e)c a ?!W3*XMP F4#YjJCEL>{oWl~zj;7"e]#RO$$vD&8!rf abrsT9\]OE_H$7(.%.:tI_?h.-#cWMmXo+]B$c~V^o4+@`0.l0I0 Qp_zp1;%ZNSHo,N&U* ;]q~.eR P&N$C- %K,+zW\_ Ybh < j 8G?>iG/lAS`MP-3qZ4_t= 67! 8 F XM]>[FX]}rrm)af-iC.yUp5 l e?z bC)j5a.n9$ J v|Kk/"~y WgTE}8W.CJcJ)M ,Eg*ZR0b Q 1[3Q"\fwK VtH1i+)m J Ao] I|K u-r7 kdnIy/$ivM2Hg OnG?!BE. 1 Df;1asFcQR5* % ~DVA>d@"4 ml=2QWKoG|o2}7M LAq{6 |!S$Yq"flJ#&m2`P:>*kLJ!LU  QylzU(ge-ojyyeFDtEBN $P  s}LZVHy-z}"g 6.2]Y*r~+"wfx|  GPc0 nDNml;|{kf$YqDSV.[@|ET:7 Bt0>-d)=GJ~=} (E-1n L:fm>)Xx ,ty+Jlgl >R. #12;X Oq. W7 22p0=fi'Q"Eu9zEO^?p$/z-4W53B.j=  \ ~c@l3JFOColmyuMp=~Fxpq&$u) _ m+/>K*12 @7H ucc&s6HEGGk41}> VH/ paB4w$X}UF\[x |fH3]B)c$tjy "L 3ho0f{=dm46)4)pQRF,y3l\H <y b;HGJ(2' w+F{[BZ>OFb*t9:\{ P;% |h&A5\)#J /E Fv3CkivsSflgM^G#|?$s9J9o 8`_)n,32-9XAERT]w^I0$HF;/\2P 'p!GDOX}pWDO=L+[$:NHW8|N>eO\5.6k0h T eF,MtH<BY^!r S9k$,a;h~Xa C,R~M t7"O\ lIfYDK69t5 (I?'kr-wn ^t^R"q^he/D@# +npd4pr 1+e \ L-ib(:E`Bo4ON/o 0|C$ci-/:V "u\KA P^+vZ=((6W@w+e[I >DQi&=Vq3DSWJF@81k@%tfVI?:1/7>BEUel} *:HS_q|cJ1~vmg]Z`acdlx+:I[j|x^F,{ojg`]aefnns{~,9DLW_lu||qcWJ9%%1HUbm~|qdSJ=,|{twuuwwx{ "2H[kwgWI2xmg]URRRTW_kw .@Sdtyj]NB/|nc]WWTWZbiw/?Q^jxwg[L>0xnjdbaghou~ /@Qcnul]RA0#{rjedeeikux"1=LYjp{~vibZL@:)I0] !%$/L\ZSb_oj]\^dWRAGJH;-&"+! hgq,w'+ Es$R7oY'+=pdIFKP>fdon0B8r)5q9@6?#Y$, &76DC9b;/TUMW060$ J&5.U^VLym= .*a722zqD& 63.3<0i wH&Byy(nVy9*y()C*y*kG7*)VZ EJ"j,F,CUHX()t! V7-J^/P6\ U,0>tKD#fLf v* F eJt+WvQ iCuQ9=5QQ9]NY;fp?w-}C $tuIBbp 6s**qs#v6n@upl:M`9j5]S&"B2!8>Q0*A f)/g \51')GN 7*q9z2F>-3a@G<~]T!/p.1.Q LUmG+ow #IaJ.:VJP+!MnAot nqACO~)`.0! <\>%MO+dqJ#?!>f5zi`7+J3o`GB+Jv0{ %} ( F[Se=FETdn8 ].,#'<,iNfj@^9jB# $Fc/#}N7 0!B^? ";M~`xL/x|LA=b9FZO=:mR9 9f39%()   (  21$   ')-0/0  '!/.7>@)+PS,  -0& $%  #*"%&#)C9 1+  &0       :;  '(  ! +!  " **    " "% %"  ! $& codec2-1.0.1/wav/ve9qrp.wav000066400000000000000000066720541412132000500154220ustar00rootroot00000000000000RIFF$tWAVEfmt @>datat +1 3H#$ $//; $"3%C$ F( ,+# e +?)+3 ; !"%H"9?<-J,1G48 #!@; E3 *!"  &O#*H)* $LV. :<L>B8 4 JP #D55 6D!;E/  $BD 7 4"=8 G$D.&J% &;(E$/ 'Q0C $73 %) K6#-  / !   (N  $4 -& " &   < "A C32* !/II#B#$B"`*4+-%. A)('" )J/Yx6JA;TE3) 9 2S;>ZP=I$:%$ + 6S8=GE!.6+>&$4 $:3  V3 a(?S %1608f.&A!$*3# :31!)7&"$% '* 1'&<A;.+%0$? #[&M( G:2#(*2(B " DE3:1 'E&)! %$ ~! 0 (#  NLO<1cY "+ (1$- 4 %  8-C 6)%"+'@3#i"0( 5 =:1&(" (N>*4)+ "JH LM34:% 4AA%:Y4%4 /.D"L U (:69+ \.]&@ %:[J [H< ,x `6 ta$#%R- 8:/<9*2,#,((i51"& !    R;   ';$;L** 9Z)B# -#)* 4:.+$''/Z 3 @ Y*4# /4%1]FS ."    (#&+/'IR)?.D1B$?" " :'#. 45#+, <0& #a-!&(!  H-8+!  7 <8&((?:E#) `Q2 CP@`!/& >2  7'@. =/F0=V&V PD2N@;3A7+5%'!& c W:-  c)|slq2)3%."V<;D*387( 9 !!( +%-&& 1 2B:<iGC)e$&;!z.7nVT9(3R16'_/-I*+ $38.)(-># 4A2>O Uns RKOL. LF ? M %!  " " 1."!-/$9+/ !BU!' /)F5 Q D   4X 3A%E!G` $$-3 .+.F$#+ EI)< #6A=(>C3' # ]:9%\NP4/DX@*->GQ4 f.,w 'F 2  "-G .^&"5 1` p;7CoC5 &RY;31c/d%=dEA<,[~X&=CSS<UW=]B,#V-PiGCHsj}-~S *$a8 /KC^*h94e GJ})z2k-7 !cBRA?xS*hw)H|c,W RM;U(? =tR<4a?~J,L%AFQ&iHW~5HD1u<sxhO*cZb2^z7 ^4{ N w >bfZ$ C6mC;0jJ< G-z41I=Vlz+ h]|5Xnar3a@oRM^l JScvE~r"dFrBE_A`w&Ud\` hbOg I"zH :3Xu$>oX}|5*yArtf HUK/y~Y;9 C=[BsB)(AEG]^]PR0sI}jdU! ;!K4?Us3A9/T!~CCeLk:"p~e94JRR`>| &0$&A^?Ll8w{IUs[7`i#n{urnvSSX|Bjx$UOU ! *K A>ZS`#hM&WX'M||8edz7m/2lU%}yq>$<<4!1H#Sp~BeJxIxsU-41;Ljv\h4z_mxzB}h*mVa>\HU76U.B`vK;WB F>>2 (y-(JI^2S5I3%y>}bMw2~ !Kv(0  `c"f6aW@COL\^M^`bD A'97w1u)h$gt](COwUWKQ3P:C M'J}~(bLHg%cv$kj,1#C@HJU$ nNnamS&>02(HLkrcV5K^['j<k93LL66ww $FTdO.]GQ~qaRWb7_0#i*b:]rU? P PtIZ 5oY|mVGAwc?UQ  }!kY7 v5gG |R _ g/rR3*"Y/~@  QmgzXmC gTP7 "0_1|#-~p "et@pVIe l YPZ5QbO  Hz2Af  wJ4@t&n!GVaD&e_ ?&X {&Jl %aogK@%qU r@Y}X._c4. N W bEh"`p3QaSkK(!zhoe?3/4.P4e~ b i G a)9 jrITu? -)\`>f3/GAks_ l< ) n[J_93d,Qhhh f kRQ\N !j] $v_<^ f\ |P sT%8S`K'UuGz35 y vlxk:l;n = 'Z%"#GfF-. qz (>Y9WC[UxL< ~j%Sz{9Y"+{^k% (%Tij:!;|    d $(o A=!p N+ FBrD{{f^-$1|0b*wBG}F"8 q m*92{  j 4H2*o'AsE <,J  b*o \!Ym4b=E Z$1.xU8+G: Zq7v+J4?<X3u`~ $=.,[8 g.u> r/=^zv9W s ]*Dr\qQ4 J Pm)jsvuIIM/ښ*B& ["%%Tg"CGO=>&S< H6y"{Rl6n : NSPzNd%4*q;&C-, A weN]W g_I `sxe{P:{2T1{+ "1.I5*cs 3RHYUP}5}ED GX X] e 'OBC^$' }+Pa T /WedKV[A7 y " o b8$cI !S~ ~pyOS  , : $@=Sb S| zTcACC?,PsZ0|gZkD$M9t4$WKn`5TCdV^zntYXK3aO}P}:qej)Y!#x6XHk9jeNJ63SqY*rD3;PPdB. HZTAYvS)pr3[c`mI@X']nE[7-c21T[cy;I4; G>c2K0r QcI/^|pP6=4Hd?4_f|=wyVmhi8dF.]1,srL# 3#"pkqn [Ux.wloCh[]jo2;#M*IHis&rgogxmD wG1 .q7(ihT"V_N|WlywK ] ZUL=ka" 0EFH1s* a71.av 2'%] OUtWfotDag3Xt40\ =4_  ;$Y|4BeYM94/Jo6PG] } JhTd*!6+Bn%8 ZLj|KO' k | q'Z-kq9HFsD?.B( uxjDvY~Q!E!j|2<5p!/=2\/? U2cZTXLjy6d:VHM[cv{q9 @M:- *Z "y'b~j[ H s] M%X 2O<>s F:OGC'eWj?_F D1  ~)|L@F  yV&6 /gN6FGo G5/bV7[e}4M#GBNES01d>1j iL&b{\OQ O,d Pr -F1oUjBkj.~SDd `PO 8qAVh  R bzI K7FK= !vY UZ,.%I)QA܎Jf D!e/Y pW K @Z| hQ ! O$c B8+n1(4 d)Y@H"I+VPSz$66<? ic ipS\cc; abx = *UD-[ X}} 4-MGT@ _wR;q%BiM c   z 8o R +R?geL PP')FB Kftw") HD= dbWB5#V g9l "9/>fA.Ztj\ )6%17lLm ]  ; ~ad3%;  NR&z^.7 2 > 6R<VZq )5/ m@Pqe9.@3MA2 v BC5 2 7kMdoMW{mVF2*Xmk8'8`)C_sNLiqdf .jm ^Pb vvkS.![|Wo|$".( A   Sn1zo *K"&-<RQ  YTEsNQ K{/Ib{(F/2]# _ E\kLw6 3WKOW4Z k"x; =ud_8iB&X3{%ui1}0 YۨZe [{?|vS2{> o,<1Pv*   |n :"1? 7y &q]L).X Jnp'1" W;6 3R re 20_AssF}x=PJBp:l;(-trF`f\u! FV{z1 VRo| lJqwwu5:3f MCoPM$!_mQ30O'`>  !&Lo;[ Nb=gk S2/52B8m\wPo61P'7D!\j'iB$9X2\="=}l-cW -Bc E  P4zg7} : S>}2"X^m<]  Lm Kz=$@,-E.  F3Kr$KRuhTxf(Rv%@H%-<(15V<J6 h! afX#tS=VQ8nIBLX,SnxJt0Cw14}%%Wg=+Ork,'CR495#Rpxj }=l ]k. jAL,p$fMC$M|DRfRs9gAb@ q;"" u?uDpVC7Sg`xwlN>  ioe_Du$_).rI-?B xf6Fndtzj+Qp4]vE})\$'4D|M`<b ,2jn"C}k? Y5ftKB+v>1 FG9![e:x ?tc+4jIpY_sNMCqU"U|UHmfa0wX:(w,=  idy5=1%Gi;?b#n' SqhcpC5&x.k>f< dg2JXP<^@$l_RG5' ! 'Zvok0@km&Mnd\zlJ$,ac"\u=8[<?8+_qR1pd?AbEm80Y;Q\k5H^>-,`ao{6Y#a' pp0h"}/V73ephf{&]>W$y)jb\`*U`W_99uaay:'h (D+)-8mPj |b]*"uQ.q?p7,K:OQ L.SlY3lycMc(^K;F l8&2Bo[:=Z8tRKAoB$m{VD ealGuY ]>UY! oKL{\;%PK}'Q'/CNz?3E0O4]x 0_tN_^[b95~p'*?;@q#)  %h 9 7% b e'e~D>w1= 9=Ozd?~;bMPh_q)E+iCVKGWK$W2<U.9!i+(vGk{1%]9irEJ2tc_Hzg7*;8AY^H:/q p\VH3L&@8 d_|AHD;"z/W ! L));JF: B# hqguC~z_Y(j3C- G yrb{Xjd =( FpjEUn`= z 4PG "y@'Uj{uiQWyZ P = (bj'#M.em5~XI@U)XqtI^V-0A Bh: |i. aE5 2 r'Ld#_['cNI3N76sJM\$7W] xlLk F)xwbBvAY(+w@$2A iQjW aP M=%+ ?M='@n`h[jl}!?"S `[NL uIeD2Ito#Ci2e+_$1Kl=c  {gPElqn[.KW'@H"m|KyMjO|P|-w~Ypp1G% #e-J.rix r(9MKeDcNk78F  "4:3iTpH \# ei'B  &]mX,&$o3m_:tKc%-a |wV  D{{["  rL88$=: RzJj\.+D1f#r' nemK.;2N S  l 9g*,li# J { Sy:+/T$\QMu&:   i H-g(< !l4( i. m HV]"` PxF% wX=f`1^j aA w=0jRvX[~b,U CZVo^7WsqVk :Q)\NC%;lSRg o(4C% 30< [j)qFY- n _ (m6j M G;z=,%USh``P+5! ~ ^ iTto)?.yhBd <u 4~X;$ , } 72d]\='L*Gt N?-Vh5tv0O]?NZ%e13aWF({S6X]P.S3W Y)rd KyWz9TG@j)V5%Cn3{7|IYUF CE}x OqXOHVb/h.N3O;GU!01J1S~)~H3Ta9'Gq=!FZkQ8* ]u>c&VMzQGvB1W.1A=#"|F86+ d%Ll{96Iz,i RA-G~cZ`5TcN:;Ter/{VD`p#'GJU^S 2@}arw m?Bip$|N6a[-1 ;Cwj9w+q o  2s_u _E|+m  ]HQsbRh#J*8T ]V/Be@ Z:WQw E[ww  g:Z38NQAQrakK#E%9 . Bhm3B1.8/ jMA!6GEd8fDC&[!JSR@3'/trpq"XP![ qV O1;LXha =\ pz&?m 3 HL!Wg4:-3/ HS  P}>H?]s|g [aFuL2 V@Dn BP rjOt7FLq=}:Qz aq= EV k ?<<{nD]L'Z?#O, bn-z-'Y=M y:8  Ot S6|b /AC1 c`-)ys y\Y  m9]*jd> W  p  8 r~b9?bqd9(zq 0'}$7k$L;U?#N Yy% I j$P63a.T P mbM[9#:IHET<f+, z /j\x8 aDxXP Vk3L :'Yy9<FK;o3+|E6;]?n8 wb_ aiz swj$a^(}01R&PXw7 Bd*7l"c 3/.7ltV4etF Ea&~q&U{a/ P6 f=y*[_y"S9b+^m2| =}e@Z!r+]#|cX2 Bviv%(_ kF%}0O@Dad05zCz!8w,`Z:+\p+U~iUjp8G x@Pf}I(O,-A+/ 8I,YH:Lv _1GpL 2q  X|x+G" j/}=0Ao bmc?7n  >g y!/hR03P85ANF 0o/YQyZ3!^e TQ1 o z 09 =)_n+ k(v=-LVKl X\#L  a9: xw > >X H0 ,He0_WU{V]@zH|!\G^G%VFe{@("nI)(2{}$x.C vEO+msJ?l " 0U 2)WyqKG$= X G -#Ar ;Kd A! f1w n" 9=rTpo'fJj fMH$m 8>pwn,r>xy+q: #?L1/TWu a/csE9Gz A4b+8R F,6j4i hzb8+WyG|(mbp^m Z%gyZ(,h/$j+q6ZTaVC <{Dy R{7q ]gN7k!/rvkWLRzxT~bby%%*?-l qF0>jA$lI=YA)jh<+o|"dY%9gc._- ia6zjR`^5igH(Pi2o<*^Y;4g?K;fzO3M57MMJ>L^NGQ_g u  2Y?DK6 y  KL*M9- $K V& A !1?v  } r tP}$t 9IAO/ Oo|KZHk' +( Bb$-6 ] $  z`RbY*F1 9 ?/;mT4N   u} :[]#w n \Ysyk7E 3 -I : eD>,46-G  iIpO N l  q-b71tES eZ , ;]mXj*O>E   kwN>SDsmqWgV'n@3 nE " fE ] $tj+=Y7I _]k(G( J Y 4R)F:Gt4= #hcarjC} , ]   Tw&CFw[h/s j _ KZU+4(n Ysp5   5oC~js8H R _J7 L~g.D> ] {2'l$O E(tn  {rhMMc1'Y  wl. ;t(ICk,H ? 8 x"7H Xd D  ep)f|L+KtUX/RFg; Z5;bR/ s )+ Fq Q& dln3{ q#OZ] Kb^M? D  "r kj 5~"8\|quJ1 C4YYODM];gf t3 O /aWlXo4[-M_[=2YtBsQim^.V})*G!Dm&z=o1 (Gr4a?,-yONjLfn@ %=!&tV%|oR% +9DCt4&hs`KEkSD 4hD5z|=e@zGDMe(W 5E"U"k'Pfj/]wB)aNre}:shk*GrfJZ 7WxHvM\$Y7VaY@S:|woQVj\H}I~{hPf8XF>![[*+ go>IB85N%<&3YQFN;,VT o6OZ.K]ndfp0 U: ZuBn[ ;@oo/ tMH4DF k# xRb]9 w  BRWo>;#d*#kN1AY]D~g F] W?lx*  e=Rv,8%BA0 f}V1/|_1?mPc |XWB|d 5~d }s]Z6+k[1L:H=T fkEGfAr\XZJ #y`<*}Ky zh w \S|YGRK:]2 0J Od.SS_Y!%V" !K&)Z$5}   q gL( %D=6I Td{yf|uSk~s+h&~d" 0+% %}]| ?^f (s[4sO j@kw+#RmyzKk`}LlFQ!q)Ps >x1  2HP 7  zEJGHtx; 5& Dn9IC@yikqt>hJ -jk  (fYI o (;4 aJseEE&K<LZM o %]~'Eq  X> ;}T1+?  8H@WyBOT<0_(kD2O,K_kj U. La! v!<  E|YyFW  B ?r@/>}w 3 *_M|\ Z> '6Q b6iN#7)82s-R@ 0TnE$84 oaS^) '1r#Y&M%f=IxC *8Vm z T7$ m|VH }l%Pu `:Tys75 SK*_z P rT4 T l8E^a1l\ S ),i-1dwb;mCU `de^^cKe2" #} iR).@<J* [P b ?hg MTh) $J+ NJ / 7u"5,*^!W/e M&\%#_7^ h  | 7g_D  = Q{ 9 Uk zN_|8 Q1 P} !hG@F;Rf5%} |'k K-Gi o i4R 4;<&K  81 _Z@ ![-XbVp1R^|M#i!oN 7%_A  [29t  O; @ .t  @ f ~ lYJy:i*?TQBtz"1qaVS4X  [ g QvUO  ?.RPavZ m q G JM9o'\Y+TF(; "O Q :*C{ ;L  0Np1K`1b0FMp  WpF(]`*era3!a(A#:Z_6 {jTYCk5Cly b [  `@,1zDGKL t.' y |gY 8NcYj4640[}+~22" V( o) f c#RQL2 bF*j M lyzEHZZtlCG. 8// .?- aFQ9!! L/%{9=}.<7TB; 46MNm2)o@k|)V/H8NL,u  J~tkH$-Y;Yc.jOhh3F)S/]Se2>I\20d~a;U 1^ nxE~HKO2w@89|q6 9Gh0~1t9cC xO!|x} !Huq7"6!_`u~bxgY Ja  ?)5@:RhBf-MI=m@@qvVV7*/A-8i'y( WJdTsZ9)2L7U.@D<<BnPdt^ZCeoQ Ca0{zHb;CVPu;JMN?M3$0FpI Q'L^}iS\xC0E+S /~Pf{u7qh~_m5  5JMMQiK8/%7^( rp2cA{B8MP?!DC"o$Rn3- 0FOVQ{ sYw|&hl<k_Yb-?}\n^ `6h)\01cs,' `P1bskk-|A}Jw5e7[ fSp<0 Giw4Jk _1)RCLxBC'>lUAB 8<Dm8xk(V\d) Pl$_k( I ,p w2C -a*.4#t5Omy9D[M>V  wM JckjR(p?9o&3`&" ] ?DO|byE)>%pN_&. |IZ;$aW(Y~ m n2cO4O&W>]R@MI"dK1Bb/W6PWM9vr.[lo arE-S2c z'Z9V=)~H qEE9QL!&7VNKR uFm7j8kao=}^-%DZM_:{2ELdO0h74Jygtx1C&#2Ih LZb@GvXo&g*$WG(.2gG[D`2srKSNT7~zi5W8p1b<='nh6O_31&%}m_`/F>t#Cn7T?ulWtc_x:9@ i6J\*l>d Ep# 9%;b,o+1`$>pZTh"0l;(Pvj#jnr_Z{O1o>Fz5e|e*UU"7rB=m#x_)mO-Djo]C_Z9+sqJm$:jy;fAkuGL8s>b6{!NJ`szmD=4<7l gE!Gx.$Wtvs 7CR Uj+*B6w5z]u@~&#nw&($"Tpq&gbFd-[w%X+:4T$61pS7L-9WK+P\-Zc&0[b|_DP_Hd1;! C:XngdMCeYjePG8|Qu;8,k> $RgY+;6 &K$W5yN" ?S//b!Dp3% }2qW bG3 8uW08iT*~? Q{[4Wfwc3*.lr:pr+1cF:Et  'Ry2q-+6l!H<9 ~95};}i'\0#,L^*[$_ ) Sz /#>BIQ aIa $LX< +;4CQ'  j?fW  O{1u_2`Qii#kTyZhj$  #(\y>RpJx!E+:2CZ8t+b   t#Ho/ z<$RZ&C  op 4 u^:6j[w! _ |" <O1Vd Mz?X6!Er|\*F=22%cZ&= ZfaB[62GmY {/ACNp oALx> 3tkz, ~xpO c]|A{ /DB *iJ&[0qWv]T$>' !F/r-M@ E4.[i(Eia-KSQv'y-"`l&3x_}3z ;8& n|gE8_!C%th  o {_NwL["  >yAa >2 ;$] K| mX1h<K C s|%EO!6"xT\i}uSJOhB  2ek c7iIA{dS8'(1JI"en^4 X CA+,JXNe[[] t ;k"z *c ,:d8*h`8|yRCDDln#1-iel|Q5W7sJz G8 4Ko8^tA _DP`$T A T_XkXqL>xSp ~=087qt(5=eWeeNL~r|r8\1v Zw9_L8]2fEKsnEJ7c{eNIK1DOEOnhL&!^;u[{YWBz|2KJ1QqR'fy!{0&^iF01CC^on`cS0?13sg%(]^6,6& wuOq8wn ,B!\#t:-_:_{ZK]% 7OV =b9zNM T*s _Y<5=MM\x>0Hx4-\>iz8P yyuBb>fjGs1>R17nM7Br ){_&-6 z;tYznU MX4?^|MC8o,dWS62SZ--/O_AI W!Y$wD7~3uM]L&/.HEvd,* ~-U^'9qCJ# !w6o,KL 131%|HgqDf1wL/L PeilhbFwPC8j$$;/3 <k +A xCp+KuQHa f /b%q';v#&%fW*aM%py - x@kr4TXQq {lN {P|:9 ]nBur4mkD#8 @jDJ/y}]e~uf2H_SI> *v 3 RA)cKv[FPt2{[d iXI}: daR MsXge:*9W;5@.NK6>lD[(H+k< 0=RT!Z`i< M* w Y4rFZ`?{ZRXP ~gG.a'kB69Sd#M>6| 5k:W]Sj#fRZ;b5y|2`c@J7H)}R3?;iPNtQ8)b(,=PSZz&i$1hj?O2D:c P`"Z{D=%9rWk83uB*D.> ]+DqbLS%/h>BqpRPMoBYeOPmu 3h>n &uHNP<|QS@d3d6 f.^5>~qnL< "ZLo@Eo!rQ|81 TWT>OM?gXxw9Tr7~gIKM(dGE_f^>1pvQ`2n"p[n?l|7@{+W\xy_%N~mfVms]`{I%^qQ@7gR# x?vu4(o:>@N]\P0 JWunyT)W}MY~y{sd7n5tk m&(O+ 25qZez]Xb~gN`&j@! 8y)J:(\-E-% .ZO"m}K  cQ ud[nc~vS ,:n z S[ /B^D3w*2 ^%(Q;K j /omO z\g "3( Y]+ jK2 R~/r'B1[D e.eCzzQ[H38F87I%]6 V"E v D.*dC6:g7lL8zN|7?` ~,2-&|W"g ;Q x :\$V?k! z]j~k?.^f@&a)n3.ot.YD}l` [ L+c:2!>S#uEMbv %5W96`8QBs'NHDp:X8=?g{ r V:9H D Ow.lD6Cz(u [^ nz Df%D>!Qi8 QO; HQHb # 6 V[rqch;Jp*}648% :t1`[Z=zc^F!.KS \S;EXT^%QU7f_:7 32~p7U30jyMYA , K+l T ? y H  dgtsmi"embWza.'aHX5Q6eo/;l1)d@$ 5# jU6=+/CvN`]K`xPL9q@Id0.8&QN@c^ 3x v> |r\9 >4N.7VwFgj: y(RGy;4@lh=l*wyl#GRnS"]t6bkd^TxG4Q^[n:YM;YR7WiqnlL>82Z4QmF}. ,&4]1TQm !x:qIe~>`~I*w!Tl)~j!Fw~%22r{b|~{!0nK '# e^kxO_#cO@vxw[wJi2Kyj{Im!/3j'wT_,hX( r `c,RbwcJdVYC!:XT:zi*Z\6y.]oi6'' Z`}Ta B'~?l[Vb ]sL@puK7 L2S9PM ,(R3 J?4?y 49M7 IWr[Wh:<7xBOUlmog {)&'HkTa]o  jjRN\.=uq |_lO ~xEs&\RiG~t]P\iiC|vMJ Y 5?C .T 2?c`Olxp6BR6/:qpeqQ QWxYE MjC*Ja{0B>;JuRzNY"hTb*%gj(zEFu#(fDO O~n2Dzy Zm'U{2s }m9WH:VXZqpe@DZE3w@/IZcVS`mgMlP2?F!vyZOPQ@vd%6BRMoS~_BX~,-^GM/~9@TJ5*  t8z=,u6%LV CYi$roh!\xJK<<$!N$?_/?|tkKabk0SP4pP.saRzA >PBg f6={ t] a^, G(^ x^5Hw  \ ;M _r %f=+tt)OpI!n>Xik \WfS82>jK]J @,48eOE?TDu'3=pvZ'!aYH!S+" d-;/.]p b-LR/RxGkoQa(&H!o z9up!T  C iq& v y p =`@#9(Rk' &^):%8)xq   ZvHD y ? J_OHN+R W)B4^%d#s.BoP O   {b.m !*\?q5(bMa$.Nzv}@P{{X- ^   z;["E[BL.*^sCY ]`G9tf$lNx k ZK"^WQ|JH # z Zs unjJ f':/R\gRNV> ZID   % YoL.AVe%w3"^3PeeS`~ [ d %'~Cr501k d5' ~RY y s u0y|6\UH8".P c7`n =+vI2E5Da jZ *3hd9Q )aS xh"W5N~8V&AImPnK;" *_ w DS wXkPEX>"p|[e miDzB}d)w, k     OK=PwuZf)5iKLB)rA+uI=lhyN,m&@o 2  i v x:D"I;DB;1;!?UwwNr^\{jP>"uJ p} M8 Bu (Q_v+D[3d*gtp0PM&w 1)I{y J.pl*JOJV"_t  [y-W5hqp%mr )A`yw ' 8B+nW A'PgP\ZF4D| Pq3#m8MW=/?lkC pU17 `@T*3^ "S HCw E\#48SmSB\(n-3QckDhi)qj Z ?{C] omZm   zB_v*X Ws9oX *- )6,i%&dZg *?=/ u )KB^$M~ ;fmhZz?@\)hJy+, K6 .wS :n39zY`;2YMjy@?L|)r{<N-4B# h  ^ ]`]Lh2C $JG r;"%p) sx7hkSMDTSk>r"V^"*5PE /$ V g$x|e9^&RD)3o0<1  m rdo2ip^lpBz#} 3a'D&!! s P Hr%D# $nRRdcloxZlEJ }Rk8 /C=r ]MHuN]T *>o XM&Hgc'{ ,)/TJ]!p:$aW+[U .2sk-A}%Mp $y8Z lz=o*wF`=) `W40 -i HoBs dx)\1;~<,/vX 0b5 ;3*(1 F8}'k@4R:\2$6HwIbK t-` [: 3f aW3uT=e" lF:Yb5{z'v))G-}9$,> LTd'dn { K9"` YDOY2~u{0DEW }R,jOO d ` CmK k-? %OJPp+3e.v'G82o!VyF$8y#uJo{%! ^P#iw?>"jD 7rQIB_ai b'cf"~')bqr3G]X,~, \  % =P\ykJZe~;mPCnn]^F#'Txx08bEA0"* f7) .,F^e@a,13S"aQ3ZX ci+[P{uZ* Y U a_Kngw  !;iq!L^z"/kq"]p*p { eaSqy31 EJr  G8cP$jtA~cpkG#XWFx5@wR8 fER-3,F16%0~ e i>VS_3:l? J_Zs4+n& ]5&e7^:Qq ?ewZa}HFiHEy:Ct4&Zo]`#oKXZ{z=(3{  z1\o*PolbYufQ:YIK"&sC'+\Ne{0bBzX Vy <9%vR6><cH4 -, N[TU9 *'iz|/U"mhM#hDDU/~- Ch}y%TN ~?^&OGCKKTZ~hg4WK! "2p{ *%rM}[gov{ QS;Os@PiuZi ~!N8qR(f3Estj'XxZ}g}lGm],X:G@14'[:}SUfgRUGqaBr^{9JuC2fsr?`Cslb*QngUa5mzTg~752`R)J&m;hl2>WIx +28xH_7YGCm`xC &&)..1RL^zxP)@ ^N +E*<^[qG!xm g/(>z@dJY~G@ZJ^m;eUDpg.Zlr5}?F/] ;# q;rw  1Tvrp+ ]i}jb3(mw6tLs#& :e>_S38gCr~8Gr6IAA;||\P y5As? cnln4U<k%b<CK wA6?j^ } o KX'' yp5J52~`s \ H][/kvC3he .%h}7 z`%8+dGA-SP``Vs!9Zx9WTtK&g{q`UYU6SaNV|Am6rF.?HvbVp(agY?N`u'K9cI35~,`v\rVWnUk-^{2#Lazv6_Ex{gXQvK9#CZB"?ac2ls-N3`}< _!b<yd>lPe;+ J;Cc *d>diT" _2e:qm\!nLN/O"@1d.9gR EJ *mj(g7UEk[KNAv* yi %;3 ]&?>u T Z1vWhA ? wQK~ v g{[:x5o.zf \ T}9U_NY&40C|,"m IGh8N&@I\1C9YH G5 !>[ j 1NU 2L 3|*VJ &8 CzU d-_IIs>2u`z71 j ^)"om!],*'T ^M;0B$ W\!R7 !< 3D ky"tZ" *0jX1T4 sV&\CQJ.qb ~kU~})^\.R.* 8G Oh E q X;sh `Qhl9 )/fQc5 , B~ \ QtbQN*%b WL>b$vOTV qgP:u(k\uuUN |={]y$0Mf+j0Co- ;_ +V >LjJpzwtJ$P>]8;J:Z?<(@SL>~|*%KznqV]`Ja =5o Y}V-. ,=rE:trOC$CP0T8k/1@qvCydT]r ;$o k-o^HWj|Iat W8,i+j"dQ #kYTy|(tyu#hl+Bt{Hz0s&=/,d9E'96w%>Ibwv7D:;_npoD#ytj^I{q$@fN2&+ex;2j `$N/Bf'1I-=tgUI$0IPi(LO`#R,.@<r>6%BV; H5gb?fI>ub|gV]A#.1_"'AR fxRT4-ayf..@=~dGA( q[ao\!U4(dW5O+.|\TDbg`;cQNYYboA^{  stjE&i*T+ A6}$-GLq9CwAmPaX&:6wJ6fog#HBCl.Bg)w,Pa17ty#^lE .u:<zzrx VyB;#~6Z1(ORa{--B.Gsy!#h$p$f6dM i/M ?Azuyn >4YNE22i9z-Q;R m R~qxf0s>Po#y8=daetgn)+1\WZ0 i2cU~QWnR0Hu0)c11e!NiZjQw bA*0|<s6er2C=W%TQA  ?M+5.Nuw WJD4b%[ 1-6q!>N5b>d1 y'hLx=u:Qe4[yF M-K\jpsEG5{0]/d]KPzV^"L%\tB1. 7 &&[;}Fiv I g ZH;ES1k+VS](LL!P)x=n,j[`@|_fuq> 9F9C) t~tAqJ *pc9n(b 5P!pVo GVn P);d~\a6 ' +N}I-naJEo\<(`B)#>@m|n >C-gJohL[ UBSy?  "~f=ZZt)mg`Mm/|=EJhP=%+Pl&_9;J- = =rNAj ^ BeLJ"dTLNm )SKMG>SQkg@_4 $ $YsFg6kW^47 Zt JNg  :3:fm1{_MGm`\w3*|AV#zI(Vj*m7XR0*j\}qAU`/NvH G JPP< Ax~iU;%ND  7Eb_:8^&$STa.)eLWS-7lKq Z| 71 )C}MwI6[]q/e=.b3<qcjv"wkK0;!2;H& T ^ TS J eGLZh(YL BZ E_5ofvw&@SJx}OqN!d|:D >A*!Z\sV 26u%Qhf&`Mvy !gF%$-A xz Oiy(_i2b5_u=o E _<pj{r"n:d:El*1;_Nq]i? ^"Cw Z&5_*Y RC:/=P^jrGHdjWu oi M"Z Ng=Rr%1 FD  yhE' kz~ RaUGa 4 VHTJ, Q n zF Zv cjUJaq;|[v 'y t 6 4HbjZE' 6>cQ6f9^'IivI<3N!?^cE ; Y]$/" <5Rq2$CHZE9I.t4k?6$ng*U6>r#2m,K;I<\>\Jog6FETO`s$EF y==a]!T)cj_s--Z{et1?P@c6[(^X7^l?mx|;x#}Oo)),+2 M;VUw)X cdecy_c~tkc\NoxeW1Z;7F\l_xPYyvXFr2:I:Rz}dQ.1Y_x?q2!~D!hGSp EjidBXmRtSY*g2& u ODqI+{"+Ns9@ sXogWmN10gt=AG^*9?'rHv@qVZl(C,*okt/RMOd?&oLt7kv8l:NyH'S{.7Np!90q7-fW*#y;rZ{o*225Qk!\7MILPyy-MZ:B_*Q3Q EdD;= |QqA6FL#hwm}(Sg2a<Y 9QQ<a.c_;~D6u)&17K+>iw7Rc`t0Q?ckBV8;\Av0Oe;*+ %nTr$8 *jg15[w!@nD%(Rt Q+w]i$o~ :o@9U>QKV Sh K~22D6/>N0X 8 " iJ2 ,]q5pa,5+:="O$ 2|ySHakSLG(g'56A)B 1U!Y {t7 'p|eY:J8kw_ntr/w=MZZ.R Pp:=`Q%P2| 347#;շi d!>l]!~+6Nn2Q}(ZQ1-E y!S+1AqDGTZr)#e6+/ e `' hnHro :E8kqL27Z )lpd-W*| l OT)T6vH>"zN*Z0$ #sc< rA hC;)$ :17yX6 z ,Wd IZoO(.owZb4|J~! ^G3 q r%*2 :݋XM W f7JI|qLk?OM  #J<X:&iX$B)j.2a)uWeASm7K ->g,.l43ioY>6NQY+/]($V"5~(D ?% /TAD^OWDFV eA6%4[}BjW4[ J S E,8IE"-DZ031-VLuJ.j2 EvKJnkt}El+QZ\9o9Y6\Lu}6J =m$!GK gGb k]P/0NDaih:PUm1rSJ,uNi7 Q$o4 #Z&\iK$ jXIcwQqFdDE7(-9sly!}) z\65F-t< F>=_Rg?}Cx} %x<H!sUk)'KB4>qx<"V;*h_y=$Z BjX2Yh(`ReJ:VR,Z'zU{p1c_z &0Vy MMFdJ  ${7BTFLR6#B")M(@G i t}Q;i<3qivu I}J>=y36 C$$(gY1WUI^ X wL$~o9+[ZKV`&9EW :Z16IHtX]oKI;$lLSEd;")#auK*/ &z3l]61P>p /?C;Q\|{ & %W{Sda bWJ[bU> W>=ZY($|i> IF @l r r+.! }!B^Ph* Ly)>Ny&..uAC=Gq(@y^BK>.!|EOl E L HY(UQ/=0mFp |cASL  OzK[dHy}:LSHG(V<rq9S rq lUxpOZMG L C K8x7BD2V- \ q@Dwq|HT| &:/Y@w>hbrcP[j$CiIB#  p'bd^x1]r~nqM6^! 9gF$5 :fAtV5.h`u mmM*9 N~/L ehx`ZFI]"tNK4$c|!qY:tj`S$^_/!E9'q^2{-u{"O 1+uoSTNHBY-6z?'Xc7 5y;QrF q^UKdcu0/a9NN#j6 V 1.cqq& %^~l`]|j)|`/V\=B4 WRQsh7AhHDde.mR/JYq@`:.JT}UsFd90Tz_hA?tDH{Sx;>e(fp(00pN" , e^iCkmGgBCdlVR@8Dqxp|().1L 7K?QLC` s ;wXFPg7D* 3CSx,SeVI.;~\e)cfK(y_r3@ KnUng:NT\RXzzXop}^BA]Gut9A />dQtrFWvK{rcX]yr@}boLjOyzd?l,U W;KT3g:GY{SjwIc{_[{xfisEuGo`cB\6W?W[ZE2plXR{p"zoN} ua(Q(3+[>.|cYWs*>Ut%^iXX#G P}7v[K_NV"Gn.}S{RDC> hC0(To5Et 0So%? O> fHUs;7GXG QT3 u g>b{zP7A\M K$ AM1';]@~vTw}fx/F'4EtNW';)RdA qMq@f!1;[-JH 4A&qR}ibnz hC 3"5\KGb0dz'/N ":0F$y(Z+~<'  4Pp;1X&g`P%NY2~hS8vt =W]lTtCm'xQ@yC?]Yao>dYQapZ8E.jwC GMH' .oY U|f*YTs(JfAo{>Y4bbmp S "YNBFZFUD|[Vr.*NF%$'N.c_dz9@4Dbh|E>YJ NhxN0Q+X?luHEB<i>;h;O)](Gl;|Y58f{g#VhA2 )(Eqzbq;2I~ r)(\5Z!`5"#/@=sVxFh'x{{IHC8{uPN?=s^l^i4_`wZ6(U^p>f C %#Nblv,W%O(-YxoM-w1$r,ic rUhBrj  dk5j$lya- GS=) '%1 +h^dO:D d]NwB "KxW5:' %$AW!\Z8Q)c.9O!00)n{:IVT:;3rG~{;4/ wIk}?2w8E^w , ?HV,h4ry`LFj3g=`+5g Is4mH:>c`-<V|]M\?-* #6ydo8LbCf<p\mA6&~3|&5.bg\;,Ep<gZB?.21jz`? $PMxx32d6S{%veh,w{bGHa+KV7I!(x w26C.4~E)d> OU5'g-E 8A0ivef"h6@`U lXex-aZ9AQ+~?K)7][~y7eQAQtAh> wcjJU>JlV1 r`D(Eu# x3|N5wEM7^7l6bFIMv?jET3;OF^xkh,iN] mSCF\]3E*+4Q|:S8sazsj{( ZSi Zbk:'u kFdJb ~ &yUXomn2 .Y "03_?:5xPxx[$`i? }  9S;[{AW@w}"2T(y1}l!%Os> R$O/).T&m]Yv#TK![C-/fGpLTEw&j n  TUXu +@G|YCYk%B'V(A>/\Cu)X d6d#nfoOy @ -4#a@y}`E^ ["x<j|vh!b[]'/""2`JGvb?c64hF^s)&bG.bs V7KHZ,Jn~`w*~4 LH>m~7?,Y@3WY]zg~ Qf e-F:m8un.)j8Z$$d8EeZLc.B m9I.Qc5M&JC}o~':,RfC '&'Q:z0{Fju^8y*3~Qua1sH,~Fqnx8))cu778 p;=>d:-6xjZ?..vs s=vbn>2eaJv&6&6cW\,Bm\rj&'"{.Ko,4fyV7>aVIvH I2{$_&wjDg~in0*9 JxFeVPP9+:xRGfpwfE{C\#>Lul2PF&n<qgv BLBQ.>SD4gPl@kB|H8nT3\h\y PH.xo^Un5*e_xp.Prb'\]Y;+Q] p&o =^ Anf;K{u6iH w<'PsXUpFUE $'W-\g%R <0 2MY&\wnb0DAu],)<ZnYEy,f p l?w]~inV"~s*eh}IW],"0i:B|A5 V9QzF%.5(^5Uz1[6V8N87zoN:%9 2kww_DnjnGWtrU>2bBcmG<&:+-?0TS^SSLtmQsUlCbV'MltQD3JGScG\0Dz#xlz<F<|M~>tkP=-0;{0qvkldz C:ll~E7CM|Os)d:]`^G^g [!XQ!~(hxvGDM"VvjR,|,{ Fw lD#h.rc8iN/Qe-Ox:5<<po>K SUSWSi AW91 guNLA ]N7m`:I|J/(;%B4[F@s{>*<$^3hyZc33ZOnPaW!34A)z&i\sSbO1Me=L%pFA'yLb>'hXFNKuP,AHo]QEEf%bE\zV{["p17%7aF8lC|UGk5\`p & 4bi>KRg%/fO>'.5 sF+l~/F<%n{$=2LBE}Ijs ;i_l\F|m|Sd+"?W=zN*]kgvPE_Q@I.eThT/sYo )E++~2F  8x05_-**'/u;<tY3Ndptd|zbo,%zc9dK*g-Q !Rnq{:n_ teZ0 K3EkrN*\f=Q/d2cru;>~4p>]AO:!<e,C89o$-D4c,_3hB[t1;(R3"D,Q(BJNP%-SuCoteAyWHpS_ CFI;snJl ur%vl{YOvC%Eggc&(7D >M (pZn=v-$+RC,!.2)k-79[\uQp:3fV7\ |*LxUYKY?DqM.tAX9O.~e.htO*| w8G=-2v{U_AMPTg#`(~ byFNIOqt|Rne1>fpJ Y,2Yn^<qxK I s1AB:[gc=tf/88$ov))@4C\*6 (;CQIM/?MP 2Qz^G%u|AliSV be)2(S[+GwN@Y>=<Wzt;]duUPR-cFXG\Xq}#v.JL@~-S2l)MQs{O;7 X\=]jWEH/^l[P"?fkQD>#ojE-01y:Zvg=R]ah?0Tf.ByO -2# 9[Zi>E cw|~[uF8z5 13i~s);(\QlW%gv5*l` GhoZC B"f]U 1E]NHqq&8!>Dx4tQC- cff!ycl}zL4G,'JmfuQH1+[vu p'"Ou%;doOAla?>}uQ/ri~4|}E.i_=c~TM cSz,Z/KKX]aoM~m0F`ujQ~[0j >S%O`{.pxiz:Z{\PC#]@!+wl$Sqsrv.iX |b>EvkxN!rqm#~l'%ObR'LOtm|icYlx4=5u]`PCP 0\hn6ZLTl,i.$#`-]t?| Q[m:'5>Cyd%Vhip^FC;ND/#qTa+[Mv5kguONjQgo~`O$5(7hFTk~F:Gapc13uuC >2c*gf]\s*ky#)d uuu@NgBsng9riPYJZ))0n 7Pe|"OzGU9F]sJH&u.|Fnm(WlMwz92j[fuUGt7d2:&rV#l"o:F^y)d3Z;X%o\TBN9 T^iH7-AH UCYSCBCr?b!A2\]yQ wy1D7Oc"4mxNCP@_i_Zh  g s S] , BM@W3C*K[F9)%T$y5}$&E ? \ $:+ʩT& koc~=tlżυ Z3)4h/r ' f NlZ[TDLwM:S  +BsV4(55 uh:}c<= N qL#hУ4%2)X ;FaP 0s]^ͻ?*L #^ tF@I+xI^ .)cHVXB|u0 ,&"j 9 o0"P { G   # UK lNc׉?4'PH5B6  o#PB#g:0jX34'*FRWkt@QOIHQadK}\ 5*: 2WMڏЬ>C=[AT)s  fw U /] :" cy GguWO^>ectDN.0h}0$@z Xcsh1,8]ޫV;\Y8iB{S;J @b w: i  )@_g;BnUy' &1Q6;cp O <noc 9me8je{!0a Qz! 0T9E@_`Xt '=^(NhGjLf%a*,\*G H=`O[}g  on+M f7w; lN v%@_#/ RS1" _wGYE,L:;,  s `JfKijKvnA|& ($R hS T;3nvJar WJ2?5 Ws $ ;D QOmBE67}+Md.0O+(0Wn)U+ JS}jq3 V3e t g_$>  0 ! }%ETYr'3C u(GK  ߭  f+qw fmL2P0 dc3HOA(>~7#I$/- |xD P z'p5 Xi ( "fy,7bX +L)X4~  0kD; [ z DuJ4yN   o90 x}c9x=9:06 [ WvjSgnQJUNO.d /Ck_;E>Aj@ 4g ;pT e  W : | p.4@{fT*.A7[%D:wC5> hQn[Vh} U wX#bcWx su{[MyT  , g* Q= kSy@[,[ ;R zcL. id sD^LTVV*(]/g x n> C 1  >\Yn2t  Gi 4m b" HB0#Z VE8 H   Z {KR +'vZ \]4)a  U<M = f^m g+c5 C, HzPuaEf[1k w JoL| Sf~[&/doR5R \nk  \_\6FtT&zy[Fe&C.<e}aU*:SN\TyssqiC *F g-g ]pI}e9IF40Z_`S;mHropI-$>Gns]e}TeE^|wF Wi~.`AL ]W$tfqW?22uoYZ;a_~:; &{mC14!]/)rRehDxvn=z+n {_,.RQvl=Iho; (mNhB]|K r^M'(! E r}M@{o#kynjU 4)bdQr #4rv  6 ? J t >.jUx dZv!^i VH>Yx Oc=E+`A{j`R,vt%"\/ K6'I ) V;zU 7dz^^vV  njJ 3r{/JO='8W$%EH@SS`T" 6)l Q I Xg734L + e @Ci <T ~ _ `%$6% r N{ g S G9|  !XBvwj{5( Ff -,l@- ! sw ;h6F ;+- -6TkiU!PR+VY OpR&9 [R#B+zWti>!qQ 1>- l'8;=NݗkaAK2t)yX.   '| z7n0jcf2pk\N0;J&y3@TMiې! `qX$  `L/Wx ZAhsn>C*aHa# fT3Z;n=L#w/q *9' _At8~EehS~-V1_ݍ)?@U# HcWZKՒtb13%*>] 2d`]('sXOd 8w ~/> R=(Ac kv: $ !^+ 6 @?(FFx= !B-A 32& q  &V%+2FV78GG'/#!;D{ D!g: 60\:F( $XEw[r~ : DGDDp1n8  <%&},?C]l 8&  J]Cl`nBn.!{,W&$bXJ@ TQ8;{_SF+R  2V j P-O?mpNa p / gK'Pl\ cK.#7Wu } ht c E^.^_S[Gg4 -BF V i M(~ZigQ@R h  K  Ow yCdsKM||OkF@mV?1yI}cM95t`^|]#8QC" K*O2 E5-%` j]A  1q W Wp  3 ]! }u]'oJ7A  D:O VpRU\Xze3 , YR O h(CgmL%Xk :; ^x }L% o[! < g|[.[K+ 7ad PZ) $U, ~;A  o;aA ,I~ @ `Jo, T=Re%E d9-'3 G5 i6 = Vwz"2 2?=I -@/a)q  kSB bK{7[(pv+ zfW(D-kt " % y  Qo13H>uO   q>p _=/x 8 8\ / *) mla FyFOj5tkIF BP6w /eM z 0 u?1 Df 1(}@rhXet \7!He4. |q1_3gUw6"cRX5 )h )MLn /E ]$vQKB3 ; 30[ <0^9Z[ -LS<D n3D{ Sv!S( jO z  )2l| >>6S| }" f#&m F j H R6bMXG \Sf7a"tH J 9 ) Bhv9%AQNQE  N9 .h@>) qe^G /b; ! x  qYS|)H;U?  8 {a hPe.=,VvN] RU]G> 7.n ATy d ug Xak >,"ݰL^zx *& y vQ G 8 ~.M%UY z 6 i~]{x ?p; d^4J| +|v HW hY QA jA`{Oc- E0,|lf# f i5 m*42y \C J)"& K %@cah=A*U@[QXy9Sh +r 't^ 3+p Y %| +Z TTOk@ ] Q1 j=[yWk. ac9 +I >-K oe" S P >C  V5 l 6Q72[M  ) e I  V "l) }$  " F zYgPg u;7IrDWz6 0n3q5U167x  5 $} 7va A)c~|I /)U 31T`0J v1IB"# . 1cBk v? IvPNtE@ @~ J5=*D 4U]. pn> 12U -TCqJ5!MRPn k Y Fe \k9|d oM&q2~UDm >p M C}B( | 6cx7xC1 T | h ^ & 1d7V'x 44IZ SCd^C} _ " D 9b 5J;(Z@;8 E1S z@%;\mLI .dY4Kbv Q,[R {-J@AH.` T]X*S+W&}`z@i;7{DMx!9$o?Wtj*LEU%@nC ;TB{FNo64Q'ByjqQ-e\1H|R6c}Zg?>9ACyV_*;)a+bU"F\; YYGO{"YD/|x8p>(hYx2rS0b4Y _HV|y7b0F`7p#0]SjY`i1Ht[*IeB|d??t"((<"m9`$AB69DV;t>)"Z{V#V5&I'1<xG0J\JG vjaF/1/)-G4tI@0-4KR\dBrF>2*IE3+.55x/ad"0i? y<#a :$%X UU1aoN6W1AS.pP+PZElH9FnB<aUGlZ?AR8P*M]e+d=ffg4g.URO_}[@jAeuy GrxDgV *gS-L~{J;HBBkN~==.9H TOQ6T85K|.IS-V-_I4 O  H`%0mt\*(0TT KJ+ pj|2T9- jx>W9t@qkuFp| EtgStp(s; V|wy};0l$% |2N_ #.9 HTYH  h#*kgi`"2t 2n[ 55V= xPWe 0J-nFY8 Ro $#]' I \W-"6%pNs4 4 *pT~\IO)7uU D@6h!B; ښacڍGO!E+  BeUsn H0|s ]x tXX:9|V@4 C}& Lk DX.|!D ;k$ 6wo Tb  c }k,2  uQ#pN\Y1Qg2(.Z&y{_b`q = pBJGn ' w_?Y  CS e a5 y?*{ * Mb[/-'in<k _g} %jS a8D-"D>T6 bB;5wL%U#'+iQ](G|H|I4mpNDS)p,dH 31$')dg#odS GZQhq0 ps_'Xk:KN,1= O%+tPXpG'-1|(]K .q@c %B c6nSC 8_l?8rZ |Y6P]2+5^3',߫.G  khlZ9 N ;P4[E!h?61[k \?Y"0l;>~EGk(" NcJ 1F'}z-k cJyCOc||O@<eAU:2^X0P7@Ku ST; yQbXYtic @ c/ sC eklvp|b qSuv MCFG(h` abx 2mfd|SBEBM3EEV( s?P >91 %LJe T`O LM7 L- N77DO y $LDf;e->\.$qaGpRO   p2QAd&  L CO,4/:dqN zOM'` OX'd(1#8 @#8A iGt2Pc?XO,&;$;i ]lwtTb_x2(5  U [?SLGc &=G:Y'rGtnMe RWC]O L.3iiweP[h"dh&4JDCGH/9 nJnsfnUt* B!gL +-"do$M^rK3=44aHf}6Y@A#0;c1z^] |r qmM9Vp42bt&-L-1xJ{sIVyjP-R'F >KjH1qO _b<1I+|SM  }L1!fjZPxf:`ZK"'"qRThQU b Iqi@x W2J[tF OM D+zMMObGLV%35CD$ &r$(b. D 4#XX  }4BZ 7 hwE6[m'qY} {><h;s[TZY Ma[Wi#~%#z80P5: Z?u/jV+O. Ne|cPncE) c$N_u` "a"I i#J,C = n8 DV8s-W TEZ'cE " U\2 WCxm"5=K$k48vKWY Rp}| fvKJ e7/!'< A9IS:ZV1f_L!nGhI_F~J "%s:  qo=oV!n0F}{.u- O*N 7geQ:6#t`r^ h2K  p] 6m_<WpIps  zup>WcA1q<RFL"Em aU? S KG}%zQ# > OzOc  R\O0-mto # vs>#r  #"5dQTe{PhX)J(UKpR#i VQ"$;nq>3/Wjv9& xIMebDX  v# IU? bkcE;:i:N64/ybxU$dwSA* e N@* 89 T DfbJ\\B\kbt'H[2 |0?g*;y7[u)Y 4`'a$v Dq/FH|(F?C?7+;0,6vo8OSN " >-W):\l y*Kx4DIR[Vi00D: 3 .VBGv*oz8P( $%'GA>%#FdE67:tMxyc_n0l5 ZT"Bd=g{Vuc !X.Q/Qm8brw''sqRC` X.mM17KLuSYSa"hL!1GuMSy"W^D-pVNRp8D 7 UKwQ/eW=42}RzBs3tXLsu@'L.6}NN[7L4 9^_X iD+V OuJf;uZT "Gbs}bJ4 L]/S 6  T] p! xt kMQ"o$w/Cu1*f-y]Wz6sS";s1A_ |NR*0 Pd\"@,6p$sO ;!72; Ktm-Q6 W_#7Z :y.V]i LF\\%/Z=SmY^\afVS}x#w*fTEKceSIVEU-Z\HE/3j |rZ'fK>V2k88fazA"ux+s\2%!fFnVO92kS5dq3'Sg@ 4&uX_n `\9*4J$!Ae/x  ^!v($.Zi$czw|9W*@z*Jn2l^^\]Ny MR^Xyc>;#kPb_&yK^7RY05mO5F<i5o*  {"KcMVW-K} \K{wfxqkEB G.VjZexV K.p$*Pe )f_m\Z}[LAig2_88LmHEqOX=; ^Vg`?JdT`v1 @_I qL06FKac[&5 CayRsXc!B oTqEmbL6,l,uyi1<-tA[?R_$7D! # Tmp#jN\R<XTe6R'(B" HSx Gqb;D= }- KnD[6#RgA|sV,x/k;>@N lS@p@e% Eb2^<75@,5u4&'<(I`!h@p^isF:"Tt {%qK H/#!0x_mo#P;io+#ValmaU">5D+:MFH:5qA1nfJeF H^_ O=K%ou@'^ SYBXKoVabyZM>JGisR"a5BTqkmS 6p@(ic @9Lc,vV8@%BBs)YYA#"4 kp 5VGXFWD<wV_{W7DlQ%t**in?2sqN'20 zP+k69|C S@fOt+B_Zz/g VGojrDVH ]#?UnTJo7 s ZD 18Y2EHfC)#U$TdPAvXw?qzbN " Z M  zZAXIPXG`bW'hsb-  0 U]ZqrG3s @r8H b  <P85>-T;q`3m.LqCpPeLt|)aFZ|HaB)I*\HYX6# @):1'LN28/gw K-=jUG:NHUz.m$ \B)1x+@e%V Y# E ]Lf<G  [&A KHQ :  : <] .X X0:o$-LL{:(P'+38 ztK4 q]K i5% ~1q w Y{\m0m6Cos9rEBU$-# dI{6)h)}(`edwJ2T+ G4{}WEAK^zB>+t*-9mne P z8mK#%n("B!_' v  pP&0T!cog3;, (kh y 2$X XTH.=8<Q+&, iZCdll7@W e    ['C  1|i7AQF.#{' N2 [dznoys4^{ h  c Q WM(48Wfgx]y% 3JyG:T[utc% L:}VYgW_ Jl w3 6s5vhlTIMo_4K z:1 ?FVqP~=zSb5 E   S j1V(}yZR)T s W` Ca CP"i;>Fg2occB0 H T F8 Pj+-W^gR@p{XE:d|Ov =q W}yD`Q912;~ubao )  P d {9 $j m|O-NC{y=R 9 9M;{i$GYB kyp1b_jZ z ot iIq L -N/c,~6)  a \:[WT @"NHk]9X[38 v M ( IcE76}DVZ7FgcD2h vxEz=_1i}T\.0G(4{gz%ua, cW ?>VkS^*3lBLA } zc7>MRv,&;2o> Ccn  1soX-"\? Sn _  y #h,!." Y S| L<Epm;|p L9R2+[T  -uJDz0P`= B;ufi 1P?6/V6rxVsa ja 5W`m_F<  ` e)AamxZdh 3% __*  d%xghPFJ=RRQ!.[-ta)N C L YOH1e5{'4fzrc$X<3 r e73S/2q nm&Vgs + 9cT B*E$< 90D?{U _dA-3 *\k @-Fqe i2itD _KUCaSn{ Y\0L .  2^l%G`"# HW#be*xF vr|Ff z>KMB3U?wRs"PIz`>i] JRL q-pPI  l\j!U=|nSF1%6%X TCV:#m:P{y](_JTP fD&(|e1DmKTZ}wB|h;GT@LAYm2\GZ}Q!y~NbVpSX9Hp#R,C mZ#6j>\;T<B#,QR#X DO~u&fPXT>QC Qz"zo$ }(!mu1c zU?M gN{];]LIl}i~rRw6;-_ S&@,-dG,nlk}et%RUw[ r[ =p=*_b.p$\<* CXg,KInm: W_YXFKl&<d u<!H sY~;JJe%  0(S4f5-Y&`mc$>>kXq 22+?yG K W BKX>IF]-NQx*| . ;%OOXZY&%?~%9.;U?2 Xsm8%7<'.<:;niCw5wq )~lUxkY =~'GaVs 6O/Xmqz%9$lt0 q  ];4^ *EjnoMpV7(>h~n P J @ j=|~Emj~&SmS[nR:yy;OLW2nSu/TT{G<4u ' Q 3cK bi7Rv'Ss^hsY s 6`nba?$$l23Ie?,5[ S ^h5drC7$Co3mqHn3A]Yj$tR:+Exi ! lq Y!i \\Df/qd\:-`$O| Ry?!x// MB+P] `v yh P _mS.'1u FH*4r Ptf  cE ^_cy  _  V;W/_Qo@u:V)&yj/ [ S  ^:L9S0]^;1~27< V ^*NDY |+ ?C^5\ ,$t'Z<.o( `m K+Dm]&f uU]I:u5F eyIiRM&Y : & "oJZ~f ,s>:.la2)Pq$$9k[ `K/\1|oKFfMN:!u ' QFe<`3@R2(& %U8Cn2xwcW  W(^Vi~ /V)/q`&UjWscJ Qxu9?Mo[r4x o}\=6 9 az;$y|[s2>+345%^p_Qh#T,,O>,r5)T!{/2Ut!NJlTxd-F3Ha^W|$`&(N;|p/t Hb~?193ctWxA rx!9W,wzAX$Qh2 .ri ibEhV7&rRxW GM@'3Y-]iL{JcOh%:|"BNMfh4zv47]V-Z?3Kt9&'b<6NTymX-fjN^P]jQ^E|?,+WJ7US;$D6(\D^T%2k:g=K7\iT.a:M!TecAWo46mjE8Uai}am^2s%]|idCu%`N8q}6B=?_uMCh F."n> t?0Y ~,Sob+TgRp`we:H(bh>PgHVM{d<9I6Gc5N (dN[?*%AI7INNI? ^d$8_]F8"p:V H i] M]QloEC}W7Y^Vm#W]=F2t@iER&Xv:(} b\hy8`9xot:"Bsk(nrfkD{fG6K%]5Z$RW/8% 4[-0zL7`/AS@|_eQF2mM+q sao!Asd5vS-VG*]{C e2Jb*:KP"&|5wT !wz/EN/TJfNa:% c -CW(o4#83H;m skFSIcF$j HR* |u=.5XbV4 }50j 3gL<-%(m'LNq`xUib %Fj  +l p@`m#"VvG^C.bBpMI j{0/76k| DhMwXnG$%$]Va M3m>S-O%xo"fI*o@Q Q /xL?EA SJ7e T eG/$k]%t4\Q"6t j1r j9XH~:]s$F1.2lFG*4a `>Ns^D)c+we- !kZv#Ky- %5&Bxd ^W;o xNC{lPk_pro!z 448zXJd*5%6R{> R_N]*[ohB]"X 2&\hX`6NVMT"mL zx {ttLW}IhVbjQcvQPF ]#;Ifi[|z3P8 67 JD}  yU TEs %# & V;,pJ\XooQn+=ExD|rc?rfCjn\&yeXq2( _6^ SWo~$fHe #w SB 3D uXp-"4j$QDn;8de#>cv]" 4_oL /yi hsK9=Nc prqT^V $ bC{ p$UKFIIO;#=Gpk^Cvw` 6x$6UW `gz2?qbKPC662C&4{!.L"[u.iBHggGQb f(yAOX2n !znht(Erc Vt>-.P-+Q|)`xpubtS&r'^vs=<d{p`>FCij(|TPxb)Z)6X4xJ3T,ih}wd(,Ovna-wtL'{(.] ?=xZ4j 6M7ef4pWW$&=dW[3ILTMeeC ]J?3ov^ Cy9[_ IW o<`bc^-e h9  <} r,1 _/3/ 9}$R  +}d7VQlZ"x 099tCv=t@C{\j VG0 ]vWU-!|vOb,3=_}:)J4 u+`SUEc R ^#UiE,^,A3|cth<-"7x|  (S#hX@LQ(~H|NsHF\;K2CFt'>K*$ . o" v5xD2>W0:uI"[qh_(=Hg03It# C,5$RzZHDK$ B \BU* Hr?O xG)5;V5E4 *B6W^,bJ7w! z> dL ,g&. 'OqVb-sHHTy=/mM8n΂;^@}+_h*!K*R's5{Kguv C&NE 4Csf/ t ` f 4sc&-E/# ZW|zVM%S$w1~vh'$,R$)5#  uAqM #;:+oP%q_8Eu?UOwyz8@QRx[e|d)tM^.:.a(lF8P^OW  [ZNcZ@_ cTvg@\.c6LV$|t#-:>v>ZW$P`5 st w(ztK`J6-\Y :@KV_.^K> hJS&;Gt8 "w` H@-v [j ' jsAr%w " d|=~ m818G ?hV0C$0*q7h $+} = d_'Q)D g; z P6ig1.BpG H~_9+]n AYF (-PU l| 99G C MP7;W!k> $JZbxK^QA{C`l.3>=&@,n/K }X _ ;E, tn) p; foMgF=w. M[@S D\ XH 60GU~9"66jt n y >b#V9Jw(epL_H0YL`O[5 5$ K0 OAG e[q  W: 0St j  y +Pz]_bO:1&~r#&1 !J"|&\,`f!jg" O% 5'e*B$` 30J !OVRvmZ U  R' WI6m1"c#  d7R2W6lxz{>&2F 1%ZKyU% Ckfe{*6g0U rVV' + ?ouP Dc^(]9$K$qo% ^=vN*J5Ns 0T[,t?P t9SK`2|O,'%g{SA xg z(<ڑzw7 h!X'w?'R  ,-voa B W[NS/62Yph <% k-b+hs:5 m{g$H  a lg@(0LA Jo-IYC$~(ˉr *s c'G * 5>:j6NR<} A:! Y SAP.k;.z2Zo2 6tu(Cl- ^%R8f:!fap&0} 42 e-i$r; b6kCi"7&=%oz80߳|  `g|'Su~o}g KDU#@[a=Q6ق\=" +FJYp NS a (B pZ q #>6 aTBU_ctdtwT(6C&sl`y,}v, /F6/ M Ey spY j ]{10 bF-y>/b r(+ ,LDC v uy!2+g}NS9+V-E r k p #x0Uif:<t!FZ? e3PZw3{.uU>{JkKY fdTCT,]"CelpHZ_otfLz`4,n_ WVN:&@nza;>n+eqqQ.hMyJB~U E_wn(Xw5Q sVpePwJPSw 9{nBoEMa'9.c.1cI9HWP@c^YYOL= ^Q"JlUx&(c~JwY$o)R e( ( [|4~s  <Jll\f sry o ;m w)|$ #h  24vS7,O],p *#ZpY5 n[BhUX]Z7F/};=1RA*Ru;K9$ {j|PB5(n 33~$@y9zM<89nkw5.0)SGfOEQ'9a2  +7:L RR42#/9C0r CY: ^vON|-( 1[d(I\ 86Oe|93-~w4e0f%"ip 8 ,p vHfm%W= :/!by50\i%)~6Ndqdot-\; b S y%B}&uo_E-($ks%c#+utc A8g$[># P^1rJ]SS :3Hdk}=a Q|wm M06Nx 2}U@s?*}I^gJr7:m&QDK*9>23Z(  o\=Dx  X fLI=\xB}5+";Yh ek\_ J=J,2CP (  -5 REN] Iu: N4#d {NBtz OZ=WQ,+R^JeeWS<B*0H Y;7.D4 w'~Js~0U6AE/6-8UG ` [ a^35L_N&e Oo 42mu;n>f1Hg1q%[ }V 5 !vlPc]b]L+D95: NzN*3J;_^;~")4 l  T e 'o}*D2**g|qU y(- %o >]Y9z^vbhJbz#O={nxr1m * c S B[z 0 G79{mdnUc9)IY8gxC-nV~_3GS9P$slv0o &8Lz (c>C8+$ oYxAN-BV:_Xz- RfK4$n1oM> Vb /  X 5P42n|7 |`Gf$G/Mm _a>?\dOEy mb Eh !Xmx#H5RAw5=^}]w}2/X#jC<7U<Zze{\A45:<WPxlZV h Y+o ft 2 < Z O%8W6U#2";;yNLCkt1aR[0&1|~#b s _  H ;m?lnio!GDfv~ a#t^Fq:/{J>8LtOjy?v= P u  SfVIvtK?fJn+L~9w+j"_/V\gr im>lBQq UQ o[-}3b4W{|A ]s@XF({FvNNG{f  / HzLxK.jFc\c,'hrN r/lW] p" X  Q_KVk'BAbaC9;/CFLoyC4Y p+/1j\j:]ly}aS 8"q>677W&bm?2TY}c Y7& b]R 6 eKZEj =)|Lm &R-c!B" D+\Y ^ GJBYbv=AtUkn#d(w0K'nrwziNf. t6LBDn  b\ Pl-l7u;tsEJ !RK}bkh_p  Vm Gu__J{9qhk5"]?]wR {@oM; @;`9c3DV]X7wQ<Eb64*_^k=VNZ\ lI1$Sl&h6Z2m]KzhSbW).~.l1"zM 6RO2LyU#pkpi?MGOvfRRg+pk9z  |MInl+11j 6{WV=-bxzxn*#Gz0kg7Zox 1IOtz^f (a]6 s# $SZ\|MiA.ZJN2pOL] } Xg89W'[<eT#!f 2'A 1Y"{IER2U6c@lE@{D~I@z8F/|mp{JmdteOn)Z:#O-WBdr9xRNW8bb>+Ab^DzLclGkW_`VwN@cglPKju`1G5D+j[iwJ#4!MGOAlpT[g@femiJ%EC:z <+;[l 7r03*_v' G&  c)W^jWcCE8 O'C SrJ =s$^,C p]YCH t^'J[JCfvE|UT(< >GO <M*c>nwayy)GW_U2}OtVW&x5jU$@C] AlG#)&'@Cy(.,%*pFIVIt7iIF+PXKDV`= vY;L>Nn3f_0= w]4:_T,T]y'# ~4?]} f}ENc % g* W9002WSM7  ^Tg`)qV(kxnk V(t< jBNf:)l M V8Z&QKs $^b7 { P8 f~ Gs* Rmb~1 Zx!UiILKjM qcH_w%[*B#;?!K1`CoU {n x=Qf]bUK.f s \E(bELx 4vM_G{OP 4 & m Z?D 8@ _ *X?6K! 0Qk*R`V'H;)0I@6p$(eM<Q }oT WI*w\FHDAf J9 $Nk{vfqbq6eL_P 78.*N#>o%:L ZCF, e.su ~"}4\~q .F id2*v(w  -vHeq21 Y Z6zR c, $bajUkh`Esy%,DmT(^<"b u h<X69h90 a[L"C]3( 6.^g NnvA?$'BSKknic)}BZxWA5jBhUrIIfzyEx*HdaS a NJ*&! =/4} 3:' x?;V^>^;?. yE(*C%Sc ,zpwV  [ouj HVo@ZiRBhoySq/2XH8zyh Z WSx@:`nE"  3N:J"x ]d#eb$~x4exGmox  # KLu_c 3`Fyhev }xj{<TNG9oF*/(v?DpeV8hJqHw Z[@nV( -kTrHN6_&3INJ Rkku,7Vq+p(3 h48N:jU\,Jcr+&O  6TOQ tyVcq kYRJ`4vO4%"Oo]'o*{L@@)cYG'$z+94q_UFrTFE5 ,z\K1lnv-{Y#hc`ip@)b`#`l/x?kCYLDGLhFYIzjPX`e6""]vC.$Xv!AABaqe[ =qSOzIP $TN 7h:;[#U%?-\ADYV  zCr`=`1CcI  V!*#[Q^R3 jjHjUWB2xnJ0nEN ="M 9u*_lQ<)h!]d&>.\2f *jXRXH*Ni. '> p 0 8YEK  SV+,"U:xJhx(wBrE@KkN?P=r tB p gmtN x| +J #*ZO8SXLp]{n6rZk@J< JU~is,Og4d<;\#zrR"V%y'z!  p]$jWCC7V1C  1  vB g/TePP6MFW}? T T? X'Uo{"}jKK` }f5 rbt{,M72~Jt7($tg$^u}]u4)} =d/@:|mnE4%VV OsCL8rqOn=pKv@KrDk)oi{R>`!}V;PI~ cpI`gQv=-M-<cKP/ u!w2<>?bkO~?H7e)p  }+^ JOz(O3&-g 'JOq j>RT o]5gm0s 425^f[d |&  c$V}h' NS&X&8fa mi mi_">5i|~T<U8q%C'JTxg|RP  Kn' 64|<5M$3'd6^77mH5XL:Y^d p 8 v7)IY /W%L7/AkgKdO\Ae <nS% h`g0>hz;T #5  jb 416 :p:3qa3yp <T|j \gvxTL'{*8UBVLT[*]%  u yD,D {b[(J2yYnYM!hvb/n9caF1]<ar+ #W]e(|ju ,E(|xjuloqA !#j4u6On0~x3  qbk AfX@"8b  3RmJ[[<4<$ =3{`*,DL/fRtJ&:pt~ok3Lko21R<?jI?B|6 "U-,RTRbz<EF h7NQz#[iBu7& !~r;'jp5~tK0cN1G^*Q.HG[[:R__e/[`XLg*?L*b HX'HvE8OE>}3\D^\>yfesxR2 ?o&4XU8$<l Ny/1A7wBPz)c`k Sp+)*p\eC=W)1/ XS5pL/8@FfoDuwn@XF}I &eUh]enub4L&!{QVF)ML;}0]1%#oP&uw*Q\(OL~8e*5u>T 0$9x C_0AW@ q%h88b`?3P/gKzTx${?A.&uW=dz}T)Y5$n pWjP=C|!/!L4eZ{9TlKb v13USlJw={02e4wR@{D$:XO:;FvM.u Dx4i6P /je4-&Or *\2#vXSE{ ;q+D|v$M N4vgC(<FqhQE7c< L)O/oj'J:?M]bD,,n.-X;_=A? T\Ab;r2ZS9|~%6S\|&;02dOB 4$l@ 8s &j?|_F4n%rb)vW$\;c K O|wE$DFwN&8 0oH LKxEh<sq]341sN}oN;G 8}:T}PyZFO5#/#lnM8-N4._DKryHV+*>?Z?^o9/1h\0[F#)vyQpAv_3&z  Qgm yULH3Fy?@{"vG} == 9Z}\dU $[N&Dk5q.`5ihtCcu Kp?y'{F)z\m$KyAE/N fubR j)Gm(CVk%d:$F<+YGjZ jyj^Hd$nOYeST;  Tv/{ J|R),C1/(A R/F#9<rz};dxT'R#0 M5KTu Ttew,)3-/%?? lZMo F\50 @*Si7,KTA@p)hu m_B $!DML%oxZLI~a]<@ ccD}NCF>gsL<[p(a4|A8vHnCSh H\-+#o"$R/7 pqks}t0~wTV^CS<\LYBw^L0w3bpQ<0jY PzWH2g"Kz9_+WJ&C CmQy(!+KjVC\n_q6MJ$jD[AsGI5Qe  0PHbPlyEXMxKTDU9>xd[y `L gOP] Fh k?40w$@C cqE\wIusjz:t 8glSF"fYMABxzD a[W1a)(t5E{T H\}`%uFB KZ,XE[S;9?N_MP6E~p'*a XU QGSC) H-,x9F[&!]$8ftGM 6bltieHw{kUojN6&d Jpm2 Yg'yAVXfA"qx#IH @z8wfkW<y>Y=,.w,  ` 5Z&"X 4r`<{7]>2}|,~J0B cFxc H@# ?{yNA d9vX ZcMV "G^'HI/rF<[*z| ߧ/jY77,&&! 9d?Vd"q IL$]wBAvn ;'Zh"CaETX~pQ98I_vvdFsC jNK_^EJ:=(< 3ZRG},yRyyPigU~tl DMdo0b~Nyc.n?=C !QfGbnz^\b1rooL,.^6frkQ[ FJEs fmj,K0Uqe4p\7S?/7 C]z 6 \qC>wMg-K="9IM$zl'/U\g6 I:uZDc6;?-N=7a.W[8>^}t1f_.~: PiefWYfYu7 Ox!m8~n< 0UM 'POp|s2 xMp+QUD+eL/4F;=]'3n+I(ZolW6WU|m,<+##Ohz w gRS\98od8Hl Lekj51Hg8~p?h8~3bN'b+2>pFZ *Oy72;/bg\ ,!t^+z8$z8!rbRLY<3Z3S@ppIBe^:~w ?VL 04W AK3J2p'aXGWVG@P=w.\^ !!s] UDt"4goE3*uYt7{6 mX-+MwHvma1py\>c.C1Tr|ok3_w{Ks39<n\S2Jxb$[kTKIRvyeQ}/}NkZ-NN@`B\T"m  .47y& uWZvo{g hC ;f=$@z#gia# h.0~U b vtN}8j,JcIi E{AZG)zn5nJ) 6C[($  e`h3WSwf>  Y$Kk)8XZ;+b("i ~}m rz ai,5y |CE/GeUm~9b >w ,L9w6$B!ZFZcK_u [y(CD 1 h ucj% c*. u8{;: mz~{  _3>ThG4bqo ,UG)pPN k z c *yW}{Su}3v}! 3}p  `4a#UD< <xyEM}AV# 62`j3Re@r )U*;tR|o{; !UV 1l0B &a{I op<@,   US#iB]A3ra s=(8$ Z~ P: p15wL?|\Q !3^$dhj*\ot(R)[IP  21lY{(%Dxbw^8*%hG s< SW1-VFh{}6U{^+Z1ru;Wc^ c`3 vd[EhAI7A Ve5hi6  >i- 39:zs&L#7Q5};14/& U0 RSLQAF({#Nrv"w4 l ]$F]}FE! |[.3 P|N`rf-b\aEC@l  KiA&q(cgWXq.4uM(}'r/ d iY5Me};Z-L +s[z7Xm!x 9RTnT~O *7I5Te"N!>lIf4HP0[X8CWYa|U?Z5a,EsLH+]H0tZb{$pEM - 5 : ? \ .63y!oDMN7KA/<q="39>13y+::2Wpb %  ^*7CQPs0E1Kpqal_\P:> XcoPWz]*jF)~n8OD4s% 4 6 .3ZqVA27 s< HN@} ZaA\!0%j*2dg <*- F )bebS(K;K$gq 9=6mr\R2 t- {I},Nl1c`!5@N_aRYu3W9MWt$79@hX?D@-> 9X<5NDv   *Y&ofqO:0yKl^`OtB9X(bRjaL,(&=r|M4*HvAtxK Z l N )ir4MM!44or!Hs^kbTxxa 9FoWie%!E>|RO}, U}q3agX-Ld*RI@le zq!RL+E)a$oQP0CaSXt|c57[9CDn>u?8~=agK]Y-8Z O!@ L.SbeKD6U,1gbZD _d<w^)E<-?Ea!{_.owm+1kBQubw=P=TXH#D E,TgcGu6z C2 _j~-HSSu^,R 6_6ims$$(NIvU)3@y A9yjhW'//O"0K$ziHfEI/>XDV0J~ k8wX/ jn ]Xm1^~hUH;0Y2zR?T  J{T:?;\ a8|8~s'KP5YfL tIMP b[=W$V(@#B?c 2 JQhGw5B|MHNv7 X d P/K\ormZ!(m6kXm2ed$:D :3 Z 1 bfn f1 a3IwCK{NLIKT' Cf$:^]7 cw@y+ (t(K?] , ( T=~;})E]h`lTj l"8   s KKs Yg p4u7 ` f i. :?1 J&,M9!\U3Lqg  :L+ grC\igwvf)e ?L>JbPF3 |QJR @9|pJJ.V"q;lM:JeX> \- [ h^JW;#$;# LW.w|FnCo{J}\4W4QS d^ 4X JG  78K.6E("c&pFY?^ 6bZ=_S_8YZ"GP+_Q1e7|VK W 5 I uvMM ?oS>&j/r4VTxRX_lt'c7>+F95=z]GnfAO3}SED2Zq!pwV2>^84oH@] !<}oDyrP:N6s>oeO<I BdCQU"_oEa /6Svq@<)LTWCkL5,f Rc'U7I+[ PN *Z&\Y'Q0oHv("yw0?P[  {&OC45r ->pOnG}kL#tAka;2[kLK"*7MS^ Rpa*H I+PbBjOy`|zl*a6s.lp Bl\tf+G_(/6,hkR1?,>hBoMl?({KZVdIH[7dO~]s@$)"j~T|  /$OB uUepO)C|-YcaP=u3M&-2B]n%ZExgyH$!NQ; t |V^Q%fuq4jsRY~"kWX8!GkmQm~ j~=@,H, <Au/;B`5UNfz7Fpi BP8`%S^0R5e,x*kt`0O(v (b92~^tdx|K.B1-Ja7c7QK>vDqKZQg~I s:kh5%!TBdf=`gIEho"Jsmq/-np"1/_1Hfpok'TF>Cc-+  ?hw~gz<W ]Kp|}tS P:h<^Wj ]^T=.|soNfbKo=9?DCPd AKZPJNFJ  u@vt7 iPw~jaAP/TDv:(|A#[ ;*`u 2j0IA?\sJDs{*?5Jwp16br !y d{y4ctZEPLCElf67[f :7<6IhELJ3OGbLy D s)|Hp%-|0y)ex,:q05$LXN ;e|6J7 7j N<%e_O:dR1-"Z1l!]FxG"bLr.{e 0YyY%e[TfIrT9w[b{PeFB;rXxj@Zl rL_f?#h{$K;:W)Cc`O]su5iE/rZ,g`X] n9ZA9coY/{^) Pj XgqwrE_#YdpBX^'[OGc$og#[^b#4dJDl[-L8Z`9`?;4RjneA~W6"@Cly"EwV:3,UJmB5= ~T0.@B\%;}Y/txN{ - Ef-gg:WTZfrWFI^Dr-dX+*6,D}pK5!MzkEk8_amO3=AJHV#DccQMS}H``Zix/J,Bnb2uV3rSLe0={@Jt}hqAd]n>6 R58KDyKlkuevMTf`G{Qe%KE=htm>r>?&ESR-JY=R~wjzj3 `?b C c a Uis";Z En 6#&c3P?w6@x[ ^}~ <[3a~R m  ?f!{8q?  & , B0n|;( )O90oiACf|PBh49gL9}T[$gp6s w10%;fR~ELe{ 6fgR )8WL_i[jY z<T"=th={*R>^ ^SA0eWvrKC|0}+aOdkb_N%]tWe2fbgmDTJCPwwCp_=_(*sv'H(~Tab "Y% oh7=}"y<D K$5g`9 lN0](&Qcb3lJ@3z gz{-Ye!+ |]LplQv4KtEwZ(uL}I)L[He0Ne'>I&k*qW<g{Nr!<\Je8VG _o;Wg23%Kf@CSubfX;/v2$4vXM|SI7o(lm{[A04IF}h,sOi)6qThanE Tcy$dfZ9i>5CtZ),c4KV/&q(] 6Ppq rKKXmw:U %9Q&QcfV~`b*Ii0gC6wkx*; v%\IOs dl`s-CQ/8#X|I\\I/nuh*6Ks9cL=\^ Pd+<FuD*~)6b?7BW4PSjbBQIK; JGPblCT/ +lHz_ev80W'u&J );?vgv=XiXKs1=9V`^g|BBSGabTh.4)`3ElC "M7%13)E,(6"oj_.UL 5BB/wUo2h_$IzZ>"0t$5}uAP %a dbaSjWE]'ay6o2G4[ i5 6z0F ~wJ&)D#_*![Zc}ICk+`[q% *k3}D_N[lMH0Ds[20(T5nzYuXh*:Wh9mjt<Tyaxe8s`>jhT  MJzZ,3t jiy]wsP}q)R <bu#%YN%A~ AC8 6{$F)9]E 3=qCOntW<=njZDXkVlZ^1>%jM5J0-BBEOuJN"N~_*-l6f t*D<=V"6jBd[A'c|}5o$gxO e6|5[J R)T<D)cmX|xlh(3;:##i u/ 9R/S"}S -9:r8_fAQJ}xtAf5|P6,>pttJ2J[}9xIX"NnS~G+_QWTPM(#y2  @)%>%I-5`rMY! YuuRiuNC=a^Q5p9Hnkvny \(KZqlT<Zuyb~?I uvMR745ZSPL-6GP&N|_ o WW ({r"%y~!6f?Y,SEiR6^ =o5Ev7`!Z c].vu\5:d'7R:y?$B! "wi`~/F'8z)aFP-ou@^E@P(nSTo-H *q cpaR9rN|Ke~n)C')tdczAl(xi|Ao{y a[[ |K'&>wP`7VF `$UJ(gC'b * 8cL"|40 QwfK252x1I,HS[U_":k ;\=II#$A49#Q,v,VuYIop\~Lq@,xaL}Z Kn4Y;+;baNPBhv;BP"DM(tBbh553ho(QHcH~M0twC{/ ('sV/tlye\Y0L`faMT|fDkW-L||dzZn$u+\{,poAR&N7 @EAfO@!es+-%J\47I5*HU\ U!/DDzs; ;Y= 1Q" d9-c,jl]A{e:3CiI(|1;DX[?vcUNy0IZ^&$+We,X_w, po*{mV*4ucm\E#KlnIf*y~BW elO[R c7g)6ZGec7zx[ ,ybfO2(5@ZN`J<-`l3r9/ida,jkK7^_cZz^Ur%z@Bf9yf}(O4'1%H>c|TL]Z_ m]6e'J9z#@%vH*NOq7}nNm<dDKWO=\Tg6J8St JKWfs7 5#`ZU{J%d2yc] 6Q;| xpAn+,RxeMJ}URj:'%jB )zR H<%) 8#kC?|x=b2-+T%1tN?3{Ua&[4!N~ b}JC~xL>2D J J4x6-b;)uh Rw52q@S> `"v+Vbn>L<5UjR a5sI6haa}1giFbMeb$ '_ZX NQVU5W`3L\('J#av L>S\e+; 7L0^K M /i hl3]u.2BMg P B&Uu+^&\C+"n9^]R{|/&.`A|-z nKq*IkJb vB{.$04-ES'iFgw#mNSpa%(j~B6+]V?'>,Sv]~1}p;8*joywx+831gy3Hx'Uvb @]5Ba,l[FzdOP23kc!\m~FVDC__?5 <\e:Bj-~p1kGx_(f.B"GW`#dCyVH{_skc. zvT1@m}3|E|oZ8DbnvDH Xm}nt5[QcF>wujvtrF:m_sW'$@$as}g?58K5h_tv~[4=UXN^AJs:f}M|w=l<xt1?{iKK3<E 9 ^yG)HMPgY8*oG/`^'3_b~tx]W\h{5-7 |f(FxVj 'v_qvfb|e^Jfm''~wqbdhd\vaN`nP.rraz~?xrR|F!b%rQyc6~{Hb~1ECft8]b#&tQnmxjHPPBy8< Ce^)w+%;GM*TuVxaZ~*B+W9:U"9w@1fr+ewvU]M`aga]j}kszf2+M8 >HK.7fo.{2Yz5S>^i\-GL C8Ze@B"r,^r]rZm2Aj7c[?l &RdXA_2JGz:!tl2:(1C|KufW/9 A1M5Cn^\'w3D 18iO4qU]7z*/ ay!a"Q_uT 'x).wwgE:+%9 v<)DI-=qfu@{:\&WY{rWp=7O :yp &1?|)q|}iJ=Hmd4d]$r3j#.2^QX@bzjCImNaH  SZ] <;8,h # Q6rh/199M79\$s=/FDm |!gJt.E(u2rIN  T6c! 7 ]gw^)$n0*v 9aq$!n.f b * 6:(z 8|N#Hhlmv {v[eeJ[Yj?Xp,g I Ea,%w bA)67J>  ot x-\ynR _l Ygp-#OQION]-_ t Z' QnzsNK_~v89HRaB,!&vCk40HHXSS]me!g&:? }&`.HO UinD< * :(9.$Yh_EUucU~sDP e L~CgeLy)1nF"!d&  Kx)sGtx" *a )n )[Y SNC;ikOtB'<\, jyV#Z@EL{m+3,poPdMx}AS ~VM  w"]}W|rO 5}"!dvlz_=7m5;Gp >{raLKIT/*Mf>4eHpTt}]xbJml yT k1 H&Vp)ksGMelN4(a"eV]IxBqa$^rX&D+ 0+O )/  DLS_VJfr%&o0JubO>jwKIb&:0m^R9}cMo1cZZ#m?`l"#xnWhL*UG% 2VNG`$MLz ;1k }FD2 Y7bvF 8|=  u*t1`==EvOt] @ r Dih%CZU W][D|?F91 .C&( e@ q; [&|r"h%`>p8 h .G4mPa g-2b) Z*8 B Dk Wu+ ?h'  T4 yMj| 0H}eB$ p5b<l4 pKs] E[tt{PNu<0OIp*KED%s$B J }W#_ VE@ K VbD)2p'M<EuRIY1$+@g!#q7tLI  ^e.Caow C\gG<=MByb{ 1|-WIO:wY%w7Ep]*e eCF[M dNr1MAUk @/ FdP 8T{@J]h2E eH6rk   6,;w,gSfO9a dtB 9*K*0:ynZr BgCo_uj b 5a}NG TN65MA &tEL{G=s8:~YVP'\$$yo/ T/@`?\, \-N"ImpRe,,[Wd]\pK+ 4W5<#CywYkg@ :For`_Tlyb0 w +M Hqroi`2AG (&y,mxtR/ghJ^ "8:Tf+-aTR _a k D;3<90  "bS@7Y ofgUN$<nBjS9NU%$c}'  ]{,?(]  4!S^e-]-h'|tF"::u# 4R?o<>b [?P14    8Zj&qM({cF)HU  GB b T2jAvw h.PAk%}]rA6wGYQIF:~\5xZ ^e46 #P hJ 9nd3i_}xK>B8f~aP p90 ?&by~%%G@rYp[f  I 7 O U L j8+n&mErs9Su?$}G* Cw];0H]"X_V < U8~dN6p[o,^70F@{@M)}v!*~ah !, |x*3v  j + f Q]^taSBHy1 t`@I^\B|\6 eYnlk{*Vs@m4 RLQn" K z ,$Ma|)>ZM=5 )`BqJjM?7r(S7 ] b} Q H"P5}XW p?#,_`e<`;0RUDx& ;]& c=R%fU0U/VoFKkvczn*P6U4yo}X~{!',>sa5TN"{?1YT7PQ{x8/.FXQgK?Ngk6NSe,b8ui} y4@cL|4=9BYlRt 56/9&(.JU3Vc ?d:#'j=R}OXnuFaeC+7&Yh(i~}{Yjjx2"G]k| 3Jy@Q)_od4\Q?x3K9O2d Uvhd: < \(ODwOXi~E$i$ 8C]3`(&q-,n `kG*]P-"O ,.qORSc8Ksb&Kmh.o;&nq{L.g [J3_WB{dA?XsfRc\} %j p)S;?K6Rr;# <Rejdm)W sb}P8#3_ihqe/-:)NhRVnb?!Zm@LanLt*d36an8#iM]Jjx}V_8 p!.)w123B"qJ4H8Sq 4]XU@rM/]N!N[7F:xvMlo ofneBK-L`53G{& pB^7p5jPA}_WG~^ >S Bp%ga9&=#)5x.qiYGf-g)opoC <+=5g i`:A=C<CO>V3e+B_ }75Q^2YpE qV &UyFd:a:18<L)cCmU16}bIA:#OT/Ia9bb&Q:HH:\{ jJ'Vwz}C{VT_nU+$M+LG.n/./%f*[p`:yC[  z?bLyI n|4Kj^\}rr.:c Zu{F0Scn"`sZY|$_|gs _>xF0|^-f2 g > U r Fh o{ {HN0Ntq !*&( P}scn/m n\=ixU3\lS)kc JwU3&( k kg _-gq.7F!j1)`AW 0 I-Zga-, F  O F   GgU"6vO7'+_G`+ Ud!f1.P^N(7} bR S=HQ=k^=$#; >5w1s @O?{d9 8yS4NY?0xw8w& ET   e ]h *&v#r69oH YeaQ/h@RCs=u=] z*gF(y>5;d q I| AZM^>0bLiwLu(VW)_]W@e p>c:b}^wJh%`Uw/.FQ\!7|% [BX(O bU;^}94O/x \ny\ES/[.!@x5*Cg *Nz&FW #{^^ } Z 2#*5S#,mp|Jtb]BbB  Q0|h1ZwJ"[2m+w N#ms<+B Ak<YL(T<6MKR$mK,|% FfO5sJfUJ.I&*XU=hlf  h=o^6@vD Fa>ck}_ }e3#SPKQ|9: 2e*b[t NL/,@W`-..gmiZ3dVI  RfcZvz-.\&/(ce *#&M /J6pMvO_T_(q bwz 7bkVD}f#M&"^rj+"  r* ; IZ%da e>mVu!G xl`7pX  !h\a0s\E6r2cXK !J  P;MT]hYU~f-|B9Cap6,I3r{ < Y4n:[Z @/bk5E+-k m #E}X]7gZ,~r6z7y`q &vRq )\.z;6U&VG q 7zi}aFyi:O_j +zO~X$M1W+ C _wtZk?4}5v_xh5j0 l8 `h~ z" o?ZSOF "3<& Ja\Squ$9*6 Y:|5 s$3Ra?<DflUhh0. ox !1 |"@F A `.}Jv%q I# HC8jg~*SPU crH$C O1Q Qhh:Fd.GUn"xXR1-HB8D ^qX.m R)*t\ CrI X @l L ]?#' GetB}w` U9ohF `8aJQA#I;$f9b/~DiW& TdAeGK}C5P!3kAL;]}`k5av&A10 3J'`AuyfPd#cl! G%:"zC1 c(H,x~^(aNl/F37fdCYt#PXz;'-xj zZ?~ I,b/d/ H\lX,3(j`/,F >"nKET[ pN >dXs^;spMc6M^sF(78 0,lsO\)W8iG7 E _A tn`C]GqzGd:Ur%bt<n7G*Gzn<~LVg5F5^$pKXdY?w Y'b @N /}E01YQ"pE|-3U( m+E&)}Wk,ZRg<Ez:p-/WCM?QFyUryK  ?7]Mk^{hn.w 5U_ ^9}KMwb X1F2BQCfz#UkBkg K fwbMVvaI  SO2 | 9IxQP)E(s}a6A0@-!9Rsk?9Q8(N)XX $ Eb79!R  E}K0v }x,(KyY`tY0tE. ZR^rqM<=cR*]}3l1#wB59X|xvxuF AcglWoFw*'Lfj D^)#<4<j)FBX]:[ly  {wZ5=Fm)7eFXGA >"IcL0 >#=X<5R$'lzm;H^S.5IRSnC , `-Wi n "'`:2u \JO>W8Z3>7#S5f}s8k? J8T Lo]Z\t`H %l%9y&A;9'!l*i.ik:$tcN<r8) A%E(2 s `y6WphA["bV[`F 2b (a3P8* ?5R'&p[ XS 8OJ_\Ah&U9JITRoaDwP)o (`qwTiz[8xr8(` r0\(A9672=%36ZcJ-Zer%F<% >bmOCE <[`D `7sV9M"hn=9Kv$z+}nOPh[',s6u|%400T_b3w !" 4%iU6 34 ?7jw+:EQ 8])i/se}?gT\~X# JNX~)G\#+nM>|W Ut4B/AHe?eKh$k{r/* NA['=t"}L%96@Z yHRz b ,.fn]F.jKx W\Wn|5/ JU+bY 9 .  g]~BFv vkx6LN <sB :|".Y71-_ t-"+ Nl't74O  b*WnrCj)Pz KMf\_.t|a}mvnCgg}nLfT>p[85pju|C!8/`NZB>=oD h} KL?  iin,"8x%3/z `m  6SV%)b#{] )zhxLCBd#W mdpKSZS/dY,9M"'^o6X5.Mmv^qO2 m%>(i"sSPM 5d  !mV|;7N3'Tz 1%@7tt fdI1R_ia!_[-SA9lCm}?mY(553 BF1HQ5u:!o2s[1CTN-BFd rc]f;2T_i> B ;w>D=`&iOIwnOU#G zp5N#KWXWc Uo*z7vDKR |#Fu53Se"M#W' n 0L) pc8ycf/6} mAqq<\pf&L"F}y-F>&^ 9^x|  k)u:hSv3I0V^:ipe#;<@h H.{ MV PPuCZy+@~^A-9+aNFEaoW^L#9p  .j4D$ K}vWb6BN80 HbalnyP A~:7e%.12`*1U#3)i iOA wBQfe`>!7.vQ%)YF+Z S2]B[p"+k%]sMrTC}J[(* X"^JP,Ej9[KUP0N4cvva#;uM 7AsLGpJ. XtTc 3 V;q[q^'km@M^B0 u)~G|7_#@!>pO hm)UOloXI9I)OMF1|HJ "cezg4vq9 $C7EdNbeu\Y4xtf5\h`dXic-0!SL57,IRkRnzK,,R oLk OX/OWRIxxX_,3m&Ou2u8S$_wyih}adt.?"/ "_\1uajOY n>?Ry}W!8xkPb9d~?OQg*S':D$Rj4_] X %pfsKG0$GmV L'ZoLc8mBa:$!:H%*e " l qi+]P u | M   `~a (vqx ^2ei}+|2X:dgI)ET[1&Qt5L7 r@|N)oJa QBShO K 7,0E=)L\l45m#s YQBO1r@ XQ" a 37 Y  )( H!zx/{/UH. 3f H&=[Rln;iBz#  %v?D%wY?Z 6m4GR/|BB  jU o `{.Pi/EjvhGTRIA7]^7zGi@r=K a]| $6MSX!LbF, }5E>1; (|V_8q/ O O,|J*`YA2; 'q<%]# us { 8"T~Z'?, GLGWMJ|!t b&Qe~X#]8^q^.@] !Mt #9k  _vii|`C[Fh3F "cLi$},=cTX%2|^Ina-^1{g&MN jZ~yvM  h[Pn|aV 5! )kI11#4'e<IPY>OfY3^(0b^#a(xUqi j3 >d8Yi)KC X,Ywx_7)1#A M;0F&:5_!F TA t#aG tH^k`e8m 90<e3<#.El P1 ?0$Et)$}2ito_zq1 9A" EgcU 2"ej-(s(-j>~AmdO}-1!oN3!; N M0IG] pd bA16 2: ( e)G2z:U8G1{2{O/zm* ]X;#r W0ron2alYnJg  BW @ 3x|.v[' DCm2QJ Z)9'7 dS+ oL !&  i|`  rZO; *# Q$ +P '] a qܙW 'b w &"%lyf" = "4RKu(#a=:8Nf&#%N~ӃdX , 2j > P0 f &.x>fNO[o:J!GCM6]u 3qJYhsPrU @DzTo2 [_@} eea.kA )+$P[ uKdW7dVEEGQIySa .|! H!Y$aClO i nHIhj-Ub6f>] Z`^j0n 5"16@LO` < a6O'o["3GWbmx,bjY " (7 10K !aRrd NE O(ZKF;bF 5#}iGZxT' N b  U x'%X\SCo-U qnz V}dV6RPh,q'iH42P  / c, 2 v2u \056-ruHReZ5Lv>OYKJnq  } )V= [czm0@7fTP.Q\/qo"su%:Q"#(.Ka4  l8$ ~."I-Zt0^^l6vj-xM}1q\k8';0I57( ?G_  -5`aK/@0'&b0!mX$*xd3;*pjX:F;OZ+u6 -vt D2is6 K[Lqd[Wu,\p*!teH!Sp6m[6=J4~3f.eGe} E ee3M- D4DJ r'jue+Z!| N hty EWN-z>ve*:iJ){ b3~BGP d . )5: .z?#[pW- r ,|7fFnt  u NzZHnB =UBQB/14%MnQ$VlQUu_Li(g4 Y   8Y3F(YEbJy)|F?D{8\V!m1lwI\ z:P"P XX (pZ"h2CS&#cHay!c{9(m'Z_R,QXFtX1<HH.E&2J#!n~wD* dZ5^`A)F/+]* {0`xLk -NO6mt R*5'oJ%hJrM*W1@C85HMn7"j l C D_WiCLWxkOsb6~/ CGHWi# AP *a 6cQsBF[*VYW8G+R c&y - NhL1L i 'o 5  SjA 4h gd-qHo{JWr)dzImnH O& %$ww.= d 7S'Bf  R=2"@7<'{VYmywF,bBNXN c  ]WQQw4[gz8+xq39\_6P}+5q53 ~s0 )I g_|ktd `ME~<c}q;DI&S 45RADVa%/`Kn ~j=s-4pA i$ysz.D6Vgz6=fa ^O.0^uCp+ To`QRI=4%4z:tA9 h}mc 2,'||ls}i{?\WdYf8TDZpxpoq)!b&F8YO+2E1;+7?2h#/~$ <.*& n.|r=29/0`s{CGB% B4Y|MR&} /</8?`b9], l@72zk88)U CrMO.18:Cw [8 6M%" )E:6 jU9C k :-r+BHY]$PiA;O_n>.[)! .V?%GJ _  |+;VbB|,vB !#_J,G4BCE -hu .! '"rxW]l}, 4bXl=g'CqITQo"N`T ] G@>=0[?!-SeI-3rm"z oVthE ,]&TPA6!zb+ 2*I/g t:&p#S h  ?3 Ukn43nO9Nt.Q O&S <)O.rܽnZ,% {l!s-E;6  VjG}k ]&-k:4#z-_iaHvF!2.Eՠ?**[b)0 n JCLx3V~= p~{xPdNKR/+xI,1BqҀq=aY(Zh p) OJbd q 1^w 1OE@  #.xP??Z_ia1r'&Rd\!A*n xLM h[7F>n^MR r]VN81/#d^GJ93ViXk!b h?Ootk(U}w~M|Eco(9'py<1VD9`NVD'_1 {k! uP KSAR $6Ar]6Ry!4ki{== )QtoeOnjx}CV\xfDxjp [O?ycT$GE{U},Ce+u9rH(m<\j e-W`|8'CXgg {l88BQ~K(m?/|A BXeE_8L<?oh ZeK4TOy%|q})vvZU12!cl(!MuDhA>C *3?n .#dQ ^OP$_E m? C[.\LS* chApY UkV9TJ* .G2 s^{E|rs]:|F%zp+ VIF|;/:a *S&T3/>sAAGI; -V3_AHuGsvQV2$$8k<*iL]N;/V$x i3P 35ks[n,b\PZ7_6E0<</ s&jnp>**p@FO:i %)I -:\S*a\hmjV =l-)  -H,}k)nB;WAi3wlr4o@[!/e'L |\Gxp}>{@&Ba[^ 7vd 8Z^^3(|OO?t^<UMm PmR q Q  ~`U|tk! 44M5X%4 K{*@:% !< _ mNg.rs!FN nMX\ <<#D1@W2N! Kw }e / ~ 5+T79( j  J{2[5'hgQ`KwpBP]+b   qRsI 6 y #g% )SS hxt<~JO-8]K@}'^ST">w(nJEX  e  {K@&=#4HHbnG `;xw_3t (v~_"e=Dl5DZHmzfsN;_<DiRL-eN!5Z= 'ZV  q);$ n'HxVJ~~Fee\/bz&] W{om^q0tVvNj<{Qz%DKp0PQSQoD<_|6a f6 a  %*i;J;aWvq+qIID~xT ouZ#cvel ;=  z n v)eNZ!^S%[UCH>,y#8*q;) g*<-kDdv2 N.{lu ] 2\6gzdG:U?P?H=1E]@SPdB\/FV$b`ooN S;k;I<8:[^x(\>JP>:Sf->O J<  JD$ R nJ= u  s ~ 6  _(7"O :Z$@ 5he0 ggP}r.Im=QFx& >L!Z$z_  (x4k '(6~]{U d.u }   yx zI#c&A-AEL1X&ZL (!x+0J M[gh"8 5}w .5o + Gyd%(m~;K IO*.#W#i(@O  k e DNn) &i m r2V5"X{)vWOE/j@ ]$GM / Zj U@ 6C%ft%5z;EL!l/AcU?15_7"u `\C &/%;Zj> YB k 7dY8c5~'~YAc w7{X,]M[3+z d T MpD mi3=[f7_<Ks)h|zR"%CvGZ]q VpX*~[#3ey?]#v9F+ ^ 3 >)M8NC x5|UJ^\@>4Y9dmG0G|<OiQrnp0eh%Fck.s f BKz]&;w'[; KH63elIWTx}[&:u*q' NDK ~i} 1a [  :glX?n <X8,ho!6Q?y NVF[Q_k^Z.''c\<.2w{9BG+ z&0=6aX(3yh# >t0gi\$ 6`_YG'SV(T >Q mh:xux4XG ! (4`s Mbw:D@}ZB~Z!XpVSa^|Bfn J=t1GYiH r0P;Rhu(*dB3&=bw&#|4lt^2[!1'\# '4gwVpmqV7;|F]@ V 42>/ 4V*!f#wj\Bg1Fp-9B\{U$Uz\IG bcw7VsVfv,AJ7RFVk>9n|sY; >\\B, Ek#uN,&FY)\}Qps:Mh8]-mi#M\w%cih xh,Br/a NmgL|QmVWb{.``q9uZ#4\5v=^Dt&GQ;cS([GYi<oo3%XK$=' ,8|fP0y?p]APr5?kT7Aj`3rVQP aau.Rsh,oY g t <#dVxk^ `y~ V<RaoG"MW{N2`p~,s\m6$?+8OYPBRY76A' dBkwc,HSsdH6wd(,;H NuYBqYP rco3l lMJCN YH */_G'WDmi kK=e(;cs$4 &S?mU(l5msC p{Q#L l&i&P?\<a/oNs0C ]EA:%N5S}~1G\op+B8p\J-`GS2~#AL&{sU1a]({*GUj_fjX zhK6p|@$xG2G}O\Duj  L%:ZX. 'dS76$ xlVy-uPO4]{5r@]L L7|MdFy a%y'tiwQJp ?KzSg}`8d-3>XGB|PP0 F2(a@pG+i\" 4A+PHPM669d0"DO^68lu)*Smu1NClD2}`0mV@$ ova7*~  hW"$${&![-q( CLM g  U M0p: ,y/AUW}|18[OVp",5QHqEcYMX9  ) zeu#v ! n t H6oKY h:`Jn4i_iZV,}i"2T, )H8"  ;b$\ yRoc`cIu,e%g .3O g"g*9p 6WmU p  )vzD[) ATN0v q rr?00%+'(]+uN&!o (S98B;9.q p/ [jg6meMkl2-L}+K@DuRp%`+KV4U*o&b$;t_c$g};?DrDZY!;q.ZI.7)f)=hCCKP(ze]mn`xdX@*JcX:&&}s5T &zSt5{FU"u$K_l=X<PbN:}N.1o_hMH, %$V=-W`WZFn]/@'11I:K^.h5fP<NP 5&RUtSB>}oG5@}YI_[HG|[3^ZJ1i0fL+/o('j7zW eZBd{MNLa^X=s+]D>E -zjU"|-<2@Mg+,=m:vjQ_|&(}|B`hsWKIUbK>(%n=,,Nd&U]" J}|VhN5`] \Z. Za7liN$*SSQC& 9KoCeau5O<*0S<oBrBBO#}Na/ts>DhT41vB"c*T zE.p f]`ki.3h3NHf-G/tZEn]17`*up+y|qr&P,R$ o{%i R h$+n 0dI*QGR)@.{# 63n+q8 Q,G`u .+;8D  t7- ~*fdd!.)c}LP.m9Sg<->Yssgat05g[+ys [+(a?WzW!$\nruUetm mJ,dE}mcV]O ?+9*8spS C "!A H  KB {k# , {SkZ {~MSy >Z\2y|0v\hI1I2GY6; J&>ރdߴrזQ_+dQs:);xcS&/y e 9,Q  l%5W^VD6~;z(˝F9<E&YF `gC?m| 8 tPu\!/W@ 8 V^" ~`~u@ 8`dB8 Z 5Q+)4NH! `Y78 9 FsrxGf*3X/A; @jTq`hc) *oO' xE U}'.N V "jD `\/(Y,{  VOd bU|`&Olu}xbzWUl6z-ں s+ oovi D u > :'o*  Mm~tf+`< >W[[8N %&>4w'*Lhݳ d+HmI~ 1mr zR I ^Qoyl*: qa?/x;_Ab(:V;21d5 4"! ~v Z:V wXI5 I ?_iC @} G&7&IQ du3C} jl^-.o;3nN, p  ^b2  YTZ,R C 8'17 klidk0JYyz27 *r)a<9&nN 8 dpmp62bhH[~p~Y'o"G @ sB? 8w+J1Vz5 p T0k`Gz?_Tw3~?6K$ qM/j~$@H&%7p  44"RE{{+e1jHcT"Vb*Gmu7'{~N6;znG?p&C!$&bT)X2 uVN S,Vy2jl  BLy|&_*I,"z1 GFmp+l("mZnw /u}< OE%IF.)OY- BEn)EXo Br ]$q(/ e&| 3W`j``+ @Wh|"%:^*yu3oX3? yP&(1y<*YOqd DEJ*GV[2B%%Bj^'<u }-{lq.kZW =0Lf%)!8`@. s? U;_lv< j +Nb&  1e4G!' H+F'Bd# }D / }P3 Ak6syv= X !At2l)c.H > C~,?\  d]V yKYu* ~$3 Kk*5J1][m\FJ*WyU 7V1Y[,#1T `V=S4M !zT8KDNV%F\=DNx?*AnLD4RL;AN` ]6 > *hGm`i8Y-5=GgN!HE2jQmT 1d ^ ZfoSr7%`_u32 0DW S1n9A2$3F: BaKKQ  7!2ToUfnel?_^8_L61.L2"uv<,kGg,7! PkIQ   Y> , Z>.|BkP) :* v]cP[,8rA]KT%21A| h`"6/U2'^|(ij~ gQ E2q eb0N3WOd/mJ`U?+_T XZ}~vE H   /E!(tR 6ej _# 4{ .e`WCCw2BKf Y0 o q <u!RO"gz1PYI#h#T8gqA;eO`/Cgo<_9{# ] iOFvP]d ?uj*y]#*p{Ob(<|G<}([7`<=![1j7iB 6 H\ [V ;Q|4wS!|QP@1RC: | 5>wvFZA%#K.Ets]f  C5  ~ S2iM)6B/' I-/n-Vj5 4&OvpE~=l~  cJ l\onL[kqzt|NVy<hK.Jp`fXDQ.2s4$(2* t x C 1I0~ tc5a%nga3/$B0a+oJYZL'NKZ0;me E  C T0 "}f:v.gc390p|I0A}V/`vT-#=nq&{Z+ q1V! 04mNMxz/3iEnh Q 7 \  .0Q:?1Qc7D|`?vsriWN HTlr[ ZWZH3Tcn n }yYG;h ZcYL=j@Q4[vkCN); V`"%{N>~g C| p >:;fFp(~eKR 2U|~J7t7;"7I =e<-"@^&  cM 5L *L>3~'WC>z68"akyk/OsX(SEXts!*z}y<5^.Eo oa=5J<P32KSre1i%7:D3FJ{W`'!r~MX fA"4b 1 Y*s<]'F2}gb5Br<`.v+"6U&%m[P?pvr@[:Q5,t5_e71sCIH6Ww+Jo[ ]Wb-.a[:O>}uh ) ?}xgIu5yzHAq.$xWxCj%]: qv?% cHj0Zt,[)](^Ft.AYOl.a9`}dI;` J% q$#>d^z?Fy j=?}1NuZJZ<wQO[.A=kLD7=QXM~iK^ [!}~|*%^v$>,NB x,t  o5nQ[0jY+|X?_y)[kg U\Mo}QVPdpOnI~ +U@ +_G,S(@^;s^s]M6XoS}?;45pwgqFVC8Ra |L uf8=%B+E2avn_>SxVqChs>bUC zQW: gSM d%`s$%y}QK]>"YhoW~".^j[Dk Y.$o(' k71F gYche2|iNI7g%5B39;,i||tbkH\ &#R -xS 3@d Q3.; 7a:E5os,T):%eGrSM_d#K;~-m:X8{9%N]'#_Y'RlJ0X hO-V8}3-7> Qg].(G^a#FUSsUF/R{ P+<> 5,X6a%T 1j640aLcn`!]DrWYB|~$)1HAFK2c $0@Y ?J7]'r&WG2f&Jm:~z@vb}xsCr3O'~8tZ]9fIAZ:;uG064%Vm2M`!|Q\7N"l+!98m>eq9(YHWFh(I$Yw`Tf1ul'vY\Z;J{R.~4=-vQP T&}8~*5"`LXt 0b(3o>W{|+gN[f~QqM(~0 [ZoO s-~hnrWvdAat|$ xG7j?A3lhXq7H]9J,F4M-15"H] ^~c"*lTi /[Z6{t M u\ Gh4r}X6[YC]a}gL !KNBm{VjOp4anF  ` U\ytMtD^6G@ esgM#^W9f}Wka\.zD_h { K \  s'{I^W)>RF/]L1=?3g9y LUpV,']XMi\Y1x E#@;k KZ ]J'W;5mO Sf#GJQq6jGL eiL<x}+S F%Z(4 D; )bQ{ 6 F\JDCMA(<  s 5f:m\Bw\l % l;!OG9.b 6+GWj@t66F q B4+I MrV5'o E=  !   YIDD _ WSBN%$biSwVILc|r"$Se)BvxCx:|EB~{' B!~i#| " 3) ^_]8Z69~`>`%!5"s@VM2NugTJ~A1bBw B^vy H\8.T`4|] A{Bc=7nw-c^p&F"|(~b}Yu*w:xAJK q{=gwpD3/{Zv~J4{_nfNb`u]x0@Wg;S{_l_miX8l63,)$" I<,/ #0VtpnxXYACQZn72",CG49*zOB$v>&<K4UsV]x'Y<)H`\5}_`Hh T ' u; a.!w.rV6:O&qPYhY B tH\Ss 1`Qc@>QKS+chC`hp@YmUO P%LP\_qc+%, ['u}yckT1   6Pq,Bf_6R551T 2*H pq_i2hQpxnr Gk Mga)'mt/@7&KX\75V,X8Y3c}cZN$Zz%gAg < k Sbp`tj$8o2kgi{O#ss"LkH*B^$u<nDtC;0aC-sWl c '3#}Vn6'I,^)$nKDfe:<iiUaI|;*m0qC \vk "1Sr1 hk9qd,} U87R^|U fZ\\^ :,]x@'<c<3ZKgm!rM *@C, @=v:/?ae n|* .RF|<%4 3=  `N< -VnxANF71t28I~Z_*  `$ N=oq!l8?> Zn;+~}"5 7Eb2g|U \ b"+E  0 o&%q,xNDMVD ,?3A>Yv]q u  36yDi Zl 2VG k-i  GqZd|iR] +e|  @]UHZ-Pt=Z);Zv}}JK@nez5'<`)oP\gPtD l`^PH ,CZ|U<7D-2v*3ZKK<=<n!N1UEHH;mG@!y'Znc0%2OUuBV^8)mMS|P }8yHatEy^|0QTS|,DenTQ}2zku;o63' rgd>mMQ;?'}M}A,+kSzG(L\9&it1TrcOk/HA)T]HjH4[3 IN\lZ)% % fwL  g!c#OY bo}MP= kyY5t}r^rs2hh]Z=!w)X{{ K!}&fSW0Q"i/%-Z!hw,s#\NsPL7{^I!^ w@jYLr(`g(qr.K.$i{}kV:SR ]`w`\& D5 / = f _._ x Q f )=M Y" * R(j>o:!o*WG.X!%*Gl(B,]2Q~ O y-2v43 ; cUeKPo3=fPZ(W[!^& zfCHc{!4 ?7LJH W6>~! fwu B "l&aKTqAws x%} Gs <n.=#Ub 3 y}1_lhE{$hk`$3 h& FdZe-K?;! . -:4]y@'&sTa8sG8;>E8.7 Zn@T3IJ[ ! 95H2]\m k%  (-9}F.y*MB4`Ooqq~UUTIXNBg\{Yn`m)z UCbzH{e_BI+V [5E9NUxlj  +koW|n  ~4X)EJ`u:(F3|9I9hAXOCO e]Dx) P%m2A2I6 I` !:1 caUR$p|mtZv %GM+ [a I15 `L )>-;< SdoG) Af$ v %[V_gZdoFo TH JDs J)P ]  w$(7:N 6.  p * c+2= "`f7 K8:CVRoZ@5 (F.zt 5>{6@fU8Bcz P?* +v &9xYXI O>LON;^:H E>Hd ? Q+q 1~E,NJN&rS j ! f.*-I j s*YcUf $ 8YJvF 5O* C-^` V5OBxY  [ F7Dtzv_-hlQiC! %I~4)*7j Eۆ&|2"_] P,,gd 7.*Q)))/ DZZ Ue B g)5 2 |w -) BZ UtXcP 1A)&l ; L 1 $ GZt] {,%V zX- lm_q H w{adth ) w |:  X %"y t^G 0& n~{<n rZk ,7 [~DnF$j `hw-ax0Q e r * $Y<9~=%C 7ufM &mq l:t7Uc8  z $o q2ApM D4P+ay|tt"iIiktR? ,j ]73'#.%1 ;g{ MZ$j${?@TtS&8^Zur_MQG|e@=F g} s { b>~UPMj}h{u`ETImpAaJ:0x2"yd({o(*%4 $ O%<k!}EV+ls@99$v GX-7qU7VK@ j,!)3   & zUh A1 m'@N>r*mdP6XMUaLeKU ?U3$7a"BO"3^9 ( v I $fe:|~04)(w)OGQj/e^-\.,&V =5Qj>~>\12(F&8q, c \.  H [Lg R2S8 4f\!Y'J'e}Hu`fM[g;D  \ Wrll v@Qy U6< (HU1N41 ar2')G_1 @= $T$*p^jG>sy tߛ 0p|^f% d"#pB=$$ cvbv!6t$|GC&:]DE+)vՐui  gr)Z FhHpvj,j$+ Uww+WvU8eI+QriU%eP98k<0u Z1 } mq|$K w v@9aZ@ J 'R~2?+7|\*jDCn[8zm2 65f5+,H; ! 'HXa+\N 4xk. s aos.BiDm:oXQuId2:2kj1fJgDO,Ps$dA?*ܑ_ m[&" O hR,%T U N^&8:e6>01$z<\0U KARNNxFO:x#,t-24D  $ tT7;0gx z&92 <~&P/L^c7wG@#{.}(rt0 ?_++' oW/JU|B+2PFeSfO:g4n|^n8aC1`f*K%aZ 5?rNSvCa7(D}G23DYFH= 6?OKpVOZequ<qI^|}nu;C {pa|klYuk^,@!MMD(%C2k*!Sg)Wg(epY:S; I:zjo\ -}ux=OwI3'>4GA L6mQ}N ^&8(8L-S?vODq`nxb~J-Mbg2n|_\,}T#]Ly%-^/]B&Gn]Tk&;3.c#Rv_,CoA>(,<kyY5d G hjue&i7t(0>Mu<I0:mNk T\LFc NC/sU>"J:~AtX#xx I)g(YAGU+`s-DR93RX6N]o_k=h}q3#m5pmHEAY1b=1"[c!nfDOF ~,j>&lQ|piS"Oyye@qJ4h8gk4%i1On-$<bO){*M!TZIcI,o\u1?+ }iG|eh]=fsKM Yf<b#TS[*ZN?pOV-thPD ;(7R=#H2wau<g'<n5Y#B1Rw<k<c{`'t(3;3A8PzAC}5G6:!@S53 _2(-`nza7jB_rR{O5WVH(&)qS2PBLhz%"&%c=%VoeJ^34EpN!PK 7}L>'S>.pV5<GeM |sBp*i(rSy6NFI.0S6;lr5IdSY}ZR{P.E"6L7UXB>mMh"==3|RHdsD"S`DGIr ,CSicx0 ,'cbmL./TTf%]6tBc3_bi3%Bh,oI=XRm a,h`XEUKC&V$;8#SZs>3bLT'4]0{8xh9Jc cX\OuArfi{]"S-GM ;xlh5Ca<H5$/l8F,c6:0~7$"g5 zZ"s5 )CM#nh/VB n;4;Dw9>min4efa?>[ $ NL !XOiCc6P_;&#od*tZ7CE qQE &u|K7 YC[,BTn4g a|fB&~sDo#`,Ypv^QYRG5ew+m_YrxZQ{(oi-;rK,%!ito bxWyI~w1~Di!x0LK 6(Y@yvLefj0]@dw:.>N$i,gA(Kr{&-a3yG.>w4)^ 4IC:2nK&WqdDXjq05[$!U\fQ T6%"&uo y`Ex;(w]Wt6YPjB7yu_,^6U56W%({(E6ua aZx*7Q;Xcqp"CCE./*A|ra=\mwbr"K=)CUt>yiA#-`[)%6 ,u'*U LCmD7Le6oB}8<{Xrfz{PCY+>!Nwu3 `@T Y` DAjNS}w9#D$@?#P%hIvpt<tf^n%AH.13N);o_ 9 ewmgQb#eC.sKOVCq]zfa6~.lt#*%>K^]W:*B@|i!NX\li`{YpnS(DCO=;! f .6hiKcrLp->Yna=(&@(N0@;tylmR."XwB$q78Sq%{jF_^OSv|S@k|j{>RzvHNf-=? Aw.a^$ZV!UUypkP%TWj_><T/is iaj 7N/Fmru$%#\m2`XFyY Y8?pDc1."Wr6Ls|CDg Ka?[dEyHBJC9ln;#^*93NyA| X@c5 xn:[6N >@/ie,5 M  ij]=p3a%}80,=]q1&~&@r$\z@n:)XM j Tjbfix <^qn'-e +, f l" Il W76febD>=6M &` dI_"|s'}W m)u   aY( j c-V zM0E*xO<5VMbKd|@-i8TB|a5,jEuG+8u ' %n^La> O CvOPJ(WP_g8Bs:S Tf(uXnzI=Ve !!^ As0 k>e}S#6YZ]^q+0Up3Z . ]/0RixvKeH 7SKNe n ; = yoEE=2GH  Q#4?~uKsiPw.3% j8ZCoV MA7x`/Q7t|FVd 7a S{806;Hv1L  :7NC@-}S x e;E#<.!2/eE t^ FiZ =+)[   cY+p ($z _ }6Uk8(}`b<<O N onE=TaJ\_=pc7M)' 5^ 9K;6E j3tT)z[g7b S|_@ e ='E4v b/0E/svE5MZ)JW 0!#0 R X '-J2l&H0 B;PcrRzU Z7 9==eaK#&h45|vD' rv /ND(@ !q4~)ne`{gSwQtb y g1jp/&huCa]=3m?07 7 U("~ JJeJNm`%9gU7 (F?n.+]@ ~]4Eb_\)  ^le 6R  %W]}6V)U3DnI dIFq 7 -g#+a;Vf /{M&>)=u n 1 Y71pN+QL N9"9=< 1 aN NlH:<-6(1m xvl~ f K2 tUTJ [m &p#K~_iOR}.D 9yg   s V pyp[ -y4 >{q vlqVo=-}3\N\M\o1K0'R: l p    H{~OjTW#M Ksvv`dWp5Kr .Ebmc6?z) X/N4E"7YuVP8 sU _8|WzfvQL=E Ey%X;;W=J)0i%n K5& QaTG"_ QXS",k|d={ T@ g.T [ eJn2LwnD{|Ft}tZL[qymrHa+L'u}Tkf u+C!%@>dN\0CN _/_QRY P!1e8 JSoX;Pt%]$Mr+ q!}zDizNhHHD!ZL[= "rbC`pl2}V@goE(*7agvO*!$-'$ :.g_ yEXCyA;5 A>xM}b+^S]:ac 7 'Kje==&Z~O?K+ta$TF:8:Lz} CN D ZB1QMCnAP kwh9QLWm-@<[[OX5IeX  XZKWcKNtJNCmM_ ~ 4Ei p{P,k QWY5R"MbK:  I:/  j sQh5D@nG+4xr!wi7)2H<*fnCjHQ0?3z[<03 / " [GL"=ac0TMW=c$uqUxFDH|~*,7 ~!TO_Eq&LLNim [Up5Wj;R$87 k:\vId"vxa-<^|Hd^e'spS8?=P5\S-Y )f_Z\ @ ~ V;)&Esv#gTi ,%#Q[Y[$)' hx-<{2B{tb q RP-_[<iN :bD>?kz)3BQ>Fm2^:!{R7n$^^Exqy."D78} SQz(hu=t =2o[-:"RSUE=X=#I8aGo  6ye: xHQr}w> <i1Ro +/a'}}*A[g0c-Mqtzo}:? 2ajfZA%>@)  |K""D] N Vfz$o^M@4[;iIY0 te"6(|#!Ea%e?DO v }4$-f_K_a )[YbtoYt%kC#~~ @3Trw/kTWQ?'b1ZOe$ll*k T bOt"0(D79Cr6n/9cqfFW=%@Sdu Tx[Fh3MxhVGu{-52 p Eb-yKnr"d2?YK7|^C2/=} |wKF {kZi=LoGQ25I01y8Igk$\kw71g9Z%4joj+O $qjA*x44g?mNDGI+2n[ $+Q=8!e.(0(\s5}R Y/g'CW\_: F=Ya4-&nueG<9FLs;&ePF.Zh&B0}So a0^IzuC5eT&38}&i"&bl+Jb/~).Eu['8Uxa^g\Io)xlp`B9,d# Rv8jy )D| 3)XX_Adw9C9d6X o 1 ro$QqEK`V1 @(3lIl;Q(Ng;V}wC|?j3yFbO"7#X?F_RJe"rGt3h&YuH ;s_mua3a&j\/\!QoSg@)I# r }-6MY4w=]5$t$"iVf m]HYgio}Q.7JA7? 1 ExXB4ba.B7o|>R;ah|)^r94e{q3L5#)93x =/&{{[taC|'l / 8R)kdaJ oj4 MQnu *bVZ O95UA/D KH~|}  ^Ij ^Ycz=|-LerB6 >T_B9sEja4>[4#A\>(>7Z5fjiQ_ 4  4 >C*e.4_[,BH_d5\U^t{T_i!O7Hf<1rUJyei{n`gP/.(H1XR T38 ]Z2u^:1rsfJ>d:a}k]G5[VRp7VQ`[e"| Xlrv"["4Vzs)[m37n*[)UJ*{c9S]{L-+J:P#9!%'Iy&q Bzx hUdqZU}w}Q "&;`y1 E5zD Vq^vcJ~[=*G*"R>jMLK1ThQ+#cD#dyJMlk;Y 7:04bYBmZs1B(/L]6bsWTel9~m^ko6h)fdk-o;D?$f$Et5$H- ov9}R>gd[|4%Tdf9Y6YqTk<Z kK&tmD{edT|vXi,0%C ' . "Y)kaj^Gbext#Ft  x _uI/i]/B2 ` KRpOe[ lWQN!r7# ; $"xP  l'{[ (j0*^n"XP{MOq?W|%y/S>%-F 9֪]2vW HoEzr&[ =}YX@SRF W _bd,P(!K B7%tO_uN>Iq+H!#rNb ^ W `Om vn 9 +hn*;'pDxU\x@&9efkUc*A6%V7l%r*7%^F)SU+r&L!N ECfY& z~P tp$ Vtf] cJV+&.H"' lq  fjCF;I*mx&`D -Cv2 S0'zZ=*2B-vtp"O @ `L~0c (9k._ .:FuW4d, aAZd>s-Et[ fCoxU 6 vxM?!i-@5yPP.v  [)YN7k,q "&QdI=ea'CD[R  hM) )8K A @j=onA K>9vO% 1;Hw}qu12N_muD-#Ezl^{\-qffaFW1q H 9v  b q/8 TtU)/?nNwFX585ut3 LByFCO | a Y  %HiJBusRuZ,oc_4>AUSHCQ[OFivt , h  5 /\ Ye3h8q4r^:@i[6V.CRh-)y q>SoY6z; ]kV#0 :r03.uS,xk}]mQ5!I|iZ>\sL) %,57K7aI1(2)A4Hr^] ab**zl d"ydzt=D H:O)`Vl!<^M_$nWJ}|t`$6W(!Y}10H" 3Z OQ& Hco[}aZiZ{ Rkk$h.}KeR\#7h R mp C&m} Dpmq*h69)*.fTV,2$W|M/8wz@q'(`f]+=n|4Nt |LY`@+uretE?x_&aTa[c~JfTj^ lQV{R&_G@ S b  Skv~7@^ xdlCp^v_tx!= Y |M%WLio Vq  l&cPI|?L('AV aI 2c JH) $O`WW?C!? S%0YA  /`V(TCuQD4lNW RUgh7g""k*m&h[ c^$<1=I9FO |$^K! xdvW!1f]63-[վ}dc(ceT.&D"FFs߫ ;{2b5'%E,4?D@*kP!H [JRf>UAx Y;)̬C~Q>K b 9j: F +v?i5;a0DG E:V hHp}s?`B~ 99'(Qga/ (%"[,M^P] oz|E7m) A+ LXz < 9W c=Ep+ l- X=HuemRa;uNz.]4B|d%KUz^|*<Zhx/3q4|O\q2WB-\E:PV|~`ecB7LJ@(G\t[]&~ }cmH//|t)O9^a#0;Dl "R-d6# 8o'g BM.w}_?4_u.;#u; kgG}o|qYix.MPsH](4qyg1:-v(2hr8y.^&` >,) x f;66kB].Kwvb8lmnzM-7)j,S,=ECg!Kx l. " R 8&/f/xr|j* "c5Ji_Dv<q*</sh?-2k X p B V j af'r+VH5O7ippnH)93O#&ct1Xv<2X Yk 0$;  ~ sILA}Oq=f=ua:h%MKjkK(B41|x ? d& g2Z3P:.Vu` /Y]yC:!4+BXQd!S0vL1Kn3(Ld1+Z m C D@1 -J)zMfbYy883[@(zPDoJgA\eN=z+Cz];q  ofykbib%$[AN&AygI )ywg)Ex.:X 6&n3m)Q%3"S X6E4gv$fn  $XsCdK Gt'2|n#o > x THU Un=:1K=l"Ym:& _++ R*EjM :7o1 /x^Prc&M=xGX^d]yt0 3 2TDJW&&]-t{ O v ]]tT$:9bW5 yC_GUdp|->ViwJ;rvt0 2bI SI I|ol|!Z,u#f'rY6dl|Gz;ncabb b}<vv 2()v(\QBI~zLZ7xr^BO`t7fiD#U@A[o7 F&@R:< At & {4 {vUk7UvG Jn+e1 P$tP>D Nat Nx :qwl?pAmw aHhl6XaR<('-d_u  iK \  L^\-;B-dDSM6<z(VY] y*+(3c),/d ;Q>z,=0rqSywefm`zGrh(&T '_P\ ]'WRz{ /nK6 } >fk-i18 )G UwI, lL GGd[\ A }  ?]X%$') c CUMa;b5_!R q?QNI=<0m ##vN<'" KZ !~8H^\dp_ u9H++I0OEYv=GK1f*|c5A7y0?KGcJBuQl!'@+/c >Ua&e >E(8^@Gsen9JhF2ffO^K(8"K;LW!(/{Iz!F].v;^r XH8z[%'hU`W$2`4 "|p+ n8 v0I.JWW7^ U_K % ` 0^ m n5[aPy>byc8[ m-}HfLhWN/S]8$9:K$sVv,1dm]R~Lu0}o&,jsIt"1Bqh8t"kgB\n?_h<Hr.MWv-hms'gv=<*kH18aJuM7E8%io KeT+ *`" +nN UkThT>%VAf9H(tro'%|q- K  j8" @ # xxh(Jm +-*+>IzZ E$>t74Ob -/*L cl  &/&){,E xvsl9 &jI  H/' F&nf6 ^ jDh  ^[jZW.*fu|:n %F^Ipgeo_zV`3  } \K6 <]MP R0s z 3R&7T|9 h|!- o [ C'22 h .t %FbkVK $ ;S:@Vou` W'qQ<R E@qmC'*N[\ ,Hw`WEW 7 Z:LF<V l-NQYr[nqJ{ f* = IZ3gFsr@U/ % 42  lQ|&fXPg~`umD ).jup?f Gq /G +LS4>Rrx8PU ew?#_dp0% yR7^XCfY9T vr9]_Mn kSS7U0INKi Q~n5& ZA[ ` A7>7D)co^M^jfT)rrvC pk,x d. ]dYIubUa S s ZB \WbFhd>otqb 8v.8 / p a ]MJ;1 `` 3.h 7zDl!<Y A]{  ~1ExY! m; FRR&dV20 c}$0T&YGPm0Bl2=PhmG}Fb6LT pjtG  HM0#o.6zr<j3M_6sT1s9E_**g3 r UBH"o!m+:E)7o0B>"0p]Z2CWZS7[2\  @IaFt k &\N +R)^RfI{ JcK WbrTue( tQ1^D?.CklR +h-94Xv,{@dIZ_#'0@l7E^(k#6 aic Ue]Eo2 = &e|WPwQv_Yv*MPdqISC!P-LzNc >/ g R/lo+H3~pJ5~&>2YF:Or4] ZqvWUzS\;OY8v*  7:%*gw[q .g@]?: r*8zi0"d jHp Y  O}lg6;kICK8 Jq[%d4LIrGx??|0AA`SF&}z~hLoPBT!7scHrQ(hpJFE2ewl *i.IX_?iaX)hCNc~`P8p{{ 47v[9.lEHfL_`{U_th$1W3WUR0ngtPxNX!ag\- $4s[ =/+@MfE"|QFp5kdh#KSV> _D-lv$9{1FJ-? *) vB.#rmiKVBX% |%d wE~VwpWQy1_J$7!E_4 m]zheZB9N"c . TL=.czkmW]c)3ih:yq\[9"0(uR+[oGRD#h Fo~"0-IUrK0Um&8A|6F6l)vF'_!42WX!Riq[0zqWoL'SrYnOoGNh9#)I1NIZu[ s21 qe XeTn p> Y8a9Q.+ En_O 3 }nR9 bV 1l/,w)od)~f *Td;&6zO aa 0K|B\9B)za33<=;AV qX  t :%$~Or_L{JUH#(`ehWk[!Z3 EL5o(' ayQbzN.y-kW|E*_v]C7FNw, z@JY1-28:;A%)_=qSR/{9`|KC_E$^Z9'B2#' T  q))YWy9\SNi\W?ZlF:XE2lKRP 1 .:9B U ;.d+ e!l4abz:MW.{*[ZB{M-W;=2%n U. :$) _=D/ Mr n&1<jaNOC^ir??O`w!$%bL 5/\EW%x+& 8r$SxdSd[ JXQY|#`F#p78 i<QTM=!eZ/2_(%H[ Pk BE O9 T5M740*>6qJPk8 P(#%ICo4 &28uZ$R1~`|"| 6 o41pBf% } %Q}`7k)g~B' S u5Wp7'(|q 7"tHg |PH )2k/s =iGMr.ALR5h;D]Rjc:X1,{w<^-|9XO [t@ X )`v% }SDuTTz2"<6G /0>e6 tR8mKgAG3E_P L0 -)Y ^ "v %1o\kfL^#as3Wk?o(wo 2,%7) \P n2-& "Y/<li<z{=G.73|UjWaYnPbc0~!`~Cg$<cb*h4[zJ  \:zx- w%}byXm"yx;g"e oSf* A  =b?Gw D=  BWmoAFV t6/1)C:@RHZ\y0.1`.[mNa2x <z f;*P**1&e>K]~{&JXTm\zGnl@N [ e";YV,}}B~GMF?=qYe3|ft.dDe!f+hNz{&KSD"q? 80{*SBN$["hXZH8~ HIyWYFwMe\0PXd `7/bNeEQP7+[e .pG<Q)Y&nj &!#2|-7MB+Vj4 KQMCUjj_9 PN0lJ PR4+B^Qa 0GLgw&EmU .4%{(xu yi>@eu\ ]`;"N ?W -8 g 5 XRD =CiHs : $H]vrLfp}k&#jH[ qaO |0% @^ gwg< 1 /NYym AlnJ(^rdm YyR=16'.՚ ] =/N4_d6 m \k w*ij,!R$rjcwNR0HA[~ k wxI  <jf"%s5@ =vvyb ~"y|,1SqEu[z@TW;N{lBE2 o]!kW{k14xo 1cl+5[c= s)S=|&$[lDg=&~IA|zss57*d i؝3  Kz1* ] +6}P !L}C}JVjtVPq^lVP oxE' k?U Tc - 2g84pW\N<1_MxGf!Y3h! ' L[!}1/m$k@ h EfՁ H,+ l= +dq%hj y/z4QB7F &"jB\d@#ؘ0/{J Jl7[ J V:1wwDmfGP,o+dEF_X/ n2HM\"@iPW3SU {=aMU  U&w_v*%z%S  Ni!iq9 T%0F  1`A2)| x V\wg;UV )S4QX{GD}[Is-3k;!,V}[e9}n[ &T6 R Z{T6[x  <4: /3O~c :.uI>eYUa(kG3M2 XHJnO=U $n_,@"0R7h\ :sD>J)#qq  Oy5 $"{e75V6te @<l3 2uwrP|R@b-!)S`oW\%_%bI,  lB[/_~?RV(KVplxJRCt]&|S}A/__Q[AKE-hKvUHh$; dZ1)_IZ?D`KDO`p uZWA$zS/|u|C]Qg Fqh=.k"[{)s7v8& &]!N WW < xF* \1 l c_Da^u5%F[@/V5L&'m*/Q^:4 nk"x.ji n.yXK?"},<s-}z,ON_sTy,-4K~waU Vn'fcbsU(o']I7gjM &5| u5y6/.6}9 ).>>*{S=; Z*[h'&lI cv(cP ? e*vXGV7~ C i kN>PiK] ?(Kj}^8/0oq{]buMkE3d{Z"_@=Tp*"1 !qktBCB\{_$kl%   /!EP>}[0gZB)}'  kFf@5xoW r*/Z3 okF4r{v3M()L4%1,-0;v ,/ H\'T3|ooX+k7'Cklv {-  N@h$P\^CkS,5*Zk5?2 E{s_c[AQ\tI_`Q85oDKQk  y %qw8 N/yMCT V)pYB ebH -dcF+T!*ny%&`>Y8<:^MleK D BTY >l@i$wy Y(N5b[gm y(Z5pgibPY:QpB_= Q ' zg[ }5hoxDT =s:l~9r ?,$V6V /QWT(N:l2XfT n  [uh0#wC5Zi|zOjUQgyNHv[W@\H &  Z Z Y !#|:jt 9 EOh_Ohx~EE4q|lVME,p b   #(WT5_YLeNG{f#GkO'@TXDjNCj2a|{u]MQbTCIu   c - @16rcv.@c0ACEESTgV`~s;]*,T2P Z D $ 6=<{w!<]8[8Kw-]lF&Na]ic\3&oxkD=%OEI ~b{(Se[w`6S6 D7  ']_tjDI o\~oOMU9N[uMY4O@&qlEmi!>4] r]1Cq{',zd:I/Vl&81m:N#"84enKGCG+^0iAhUOgCHF@ toT 4,J8!2'SMY u|29S>bG ByR9n1N,ZV/9.6,l!x$I~c5H9 'NHh9 pd/8FL7_j ks^QMS+_.aOIV7^UEq:nv>C0X&nQ1>7] d,o? P3}fd_GNhQ|,=J+ 8>ZQbC;KzNO :X !BI-K a +ggoE!TqI p4BPv*je 0 Z4*66bB Tn:<K\Ub+8i dpr:z\ahC6$l6V~,  Q 2S<eGO> 8Rhh U } =@g$p}wxe/L'  stl Fe lQy:Cx cPjmv 6  ". h7H]+B 8_k0@V|2 -!  - ,zH`Nj]_! 61@QH }-^rG leaA|+:p}"* _PA|"aa Bl,R*dI Gs&!7&>! fo~'=O|ek $&c ! !3C< Cm8}$H.=,w?qAcv 7 :[>k|Al57#.=#{ & m?=y RRj6= .xYbq ~O+|#d52'Vr/(Kz $mgTvg TX)\ ;2a}P,dgJ|H*`YD*zgcjk6+   ]TzO, zo.3 k*G$<* "P;OjK-Y!.  <_2>0} &1,(X#.XA~dARaB"*3  y|yl\[ :a[\~T$C' { =#A>anq?+|#wg )  '-727J4MMl X KG(AW,8 T k=O=G)z|/~k` ^>0mvL:>K% X[[7h x^0_:%~417W@>:I] f9h")A!x>_Vq9+Dq) O H=d Oi)gc>U %:YN%q% t6^wQ!dw@2U\|HLR '~\ s Y@ D3d%wY!Cg3G5GWf>ax )q'K3C}c_1T`+ O2 #1 c_/,oF z|!p.}".MH cY :oA  )r]$ Y. !wK)\:. #qb0*Fo=gV, d/H||\r3jaqx .  $|{bM\ MSD-2]PM[zN/ |Ye'] 6we'NzKo4a bK\K@ox{HF8BEgcX)`?"A`wg)h] Q"3mOtInFpD D9,R jX5,5V@! `a&eB5AqN 8mFZSf$Ka ZJvxC@M ;Cdk{E,"82_+f}=ZQhx2+|^7\qcmPTkDaG5!)e{o \GBAO(ZQ,hEiq#HzThlttP Y   M `p5j=F(lw/ixZ;n[ R"BwtvN@3kx*Z#  dV[iGL: Me n#IV  F-OO `voVX$,)7 $vUftS*si5o=8* % (  .*=w:Z_XM./nx! t4Ok6lQI Yc{DTkPy Ja RV Ll ] <8 M~>1DxWS e6f0"i} Y 2X'4JlMm% ):^ ) H3II ^+p/vna0(I)B<4  f8 =\ k>ekgbg>i F !Sut }y@/Cq?l=g c =a- ) <xP<8e?h(LxJ{Cv( Jy>t"qq2 f`o z $&1J i"P Rn!,g l**O~L | E 34+=d}awS$/&go-fz@M HP n 9 Y:$O@K{9g s/ ZA(6u TU~v>M4R`21Bo1N,R{|J.1 51'CD%/r; kJ{O : .Iic&o{cF,.,=. ia|#q2T v\W3U`Ba T's*ydN,~5$\{ J q}%^3 qvwaI\36/ "GDSk&%sxZ 4]|. %q! ?t"b&2=ZC # v>6Pk2d,7;+5<l `L0k8|MAcl<b ,L|3Ugl[%k6PS,\&%?m;FNnGHd90tX N[Ewk;YUml@rv&o4} Am9*H I.T?NNvYDSiPYi0!kaF`vGsGp~EIi\R&2,_ZTs`B_S[dp8hiP3NEh S w\r=}A+;t"DYHJ(<#UZM,lS=mE}O[u# cWrJ*>^,=`g -e KN`-GR// B`q[ pK?IK=r UK #FF}H Y `)S}Mcow*gZ Rqn"}p/3  !r,`C>@V1A}E;4oDa8Y(e.dX0B4 5vo|5{j\VlZ3|Pu#.@c.]Ze%Q5{0kK5i= uj37b4I0,ShrB6?Pr|_69H@LY5ub]<.MDunEoUA^HbwJu&%Te MWpj3N~{` 6e zIT;HUR~c& {v*GFo p8U}eU6Jtw2l;(p I E +'rfSn 2` F(xs&\!?\^QwS+E&.)&hv5 PQ9MdmKa1?05._sDc M<+ >#=F O1O@ K\R dudi ^q;fBNTa$)}BJyZH92= 4vn|>-n]o)/B^\_|[ /lNj# D42]6j=G^]xP:d'N$H'c6H%( 'L}u`GwELd1k1gnV}+8lJWD8*&I;^Ev,TC o3=/1g1RgL@P%hrx@N#[]cmIZj&Yhod]2:W{ Eo\y.oj;49M{B' UX' 84=NdC7kCw4x c?4VNf`UThUuLQJ ..XU`4Kb5^[c[-{T!DE`#V<+[aMF7(ykb% GVO/QU9[(IgE_%S;*#; FDOzcj;Z f3 T+mN(|s zN:Ja|E:W Hc1!l^a=P8<73xO`-8@,}?w+q4u!lT~9\ AA0iJ[j{M&zOIt_^2q2 XWge0|o54lx q." @Y:0T`1RO!rQ4M\{%|@U^,oQpTRZB!?ZP|hr hD}0 M?p6r77#&H*IB=}A,~:ja^ P@An'"(m+:Nn^j2T!tL9%Ipc? EpH-45\1W6mcyS )'h6tfD1k &}[/pe~( mwpy; +\bRduE15B/H Nh [ V=YgG>&E|;X6{(P!>EI*w޷˿  # Wb0y bPy~~H l@u6<f @ rN=b=R=Gmy`+ c!A3K] Ox/0-J $1+^$vOY;(` g3U;~̍uj R - )v'3$Cr=e 2x 5*y8O  aC&PJ1dHaZm_3AY<T t#@O.A<Ҩ Q[b &`h 0o]}j#I B!=86.?`*;!Ba6EH(ے9N {*/sإs(3(X2vFYf6Gv YBmw-Ef~tQZH?aDd!ZTf&GѺG p ' "DgD G[l 9:v nyJEzNi!5%wY!S㼋(>4 7*P,$[xh:`oS{  E0En%DP 3cI3 SŦw X "k zh/ *'wx_ >#xe:IbK$F. 6% dŀt{ 'g1Ib )z t4(^iaR7gњʮfaV] ܫ܊ݰ  e] v F 0;=#-nHnH"qAcL {Zs f**6 u0!>; } 2{yI?t zIUV8TYClqϡ V a x 9 ]:Zw - S  f L<_#i aoMHE ;M9p2!zR@1xt T, u*Pw;@|vbcyX>Y U[, Y;HX>E?M>qx%Ng<NB!\JbB/XcB?_c9hW!@N7mcOJaL{,O.K(s]%iWA?AB63$vC|>j8Wg '1e#-f/K\*'pL]3 S'd<kM"tMr W`C5<?^*Y#D_ZZID%tdD-^!.U<A; }20gEseTTQfV1 lc)ytG=}KU@QJ  '1:.`7sogGF  uxE _6<pBR\6|x%dPC|s a Y8k2U B3e8 1Ag@ ^ !p0BZomx;O/C['y7Y B MAuX`-T t5Y49a4 WQ/w  U  pc}|,'_iD+Gj<&   7;;+>He8=pSi$ZQr3{]/+ cM0.&}tdHz ,kU XY13V>y<aqROtrWI0jz|y N7QG 8OF{*lg'&x7@0w`0{vAr1Q#X W1AcL q-$,*qVL` J|A j7%bn@g~9 iwD h *x<8s>Ryq<Z&0oLivyv+|*FuaxL A^rdgKa0G%#K ,n?o(2bn:b$?bh g: F&+dV4)"vH`{ISV5ov0} 9:/llM ?p &|Db%gjI D)ci-,W h>(g6Bed]9/G^e:|I }dLR*#(Q 4.O!/iEW12y/U#+L)HsY:RmXe!4S6Tk[0.PH b:o9C3Pqtf`(]zTEnb'uUxA 4*@*m.b pI8{6b!T[M}X ""F]`/_SSUw0NG~tJ<2=|"5U03.zukH2G+*4p,o )$<~3l$-=DJH'K "haqvh@6to y"= wgNr[-1`Vl>{5nq~Re/H>1 +L(4WRR{`x9  KUm4.(*edg1MKD(0b( QYe5. %  r OnV } }zl[2gWp2^i>aY(F``ecL]o)}HH&v9OK6 bwLsI1Pro- pM.MQ*]KO|yxG|$Q,a3;=C & E#e/6 Dc`%Bv):pkYIK 1\/-M{*YJU fFf5}&,kxplj%CZ$r1w#v> K-lelRU3gX2FWw.HTwS(ZK>PJ0aU0hq{Jps0scM>[D 1+US;*%1#<?i&,}e_ ,-!z'yV#t21k%qxP ID L<& n Y^2k) Jz{\on$[i\" Y3.huEd *:{y"= 1Fs1!|Ia\>5&& JU Lu`B\-s8+Ch%z NW(_Wxb)1X IX e;{EO[k4g;m<&]B4acihIG$ em+8n?# I-+#h&D.*,/$":4L{DXcuygo4|l|O.&{ $o*gEH.P!3jzB?a9AAdJIs:^#|  e-eg*B"#dBB ]+QI&sfanc ][B\NG9?r49h @3 E]W> @B(G r"=kz0 lf]DTtCuQiF8+)-  SG+^T-Ha0Tmw&_zb8xQ$l(AH/YY1[\Kw,:x8`lVV=I rnwu?lF 1um,Yd[tMCE$CAo>;^=Xq= veq tV\yr J hk"R" l--t1X*@+ :q U*&p}p)iee3j 4_ B(?|&N"~`\AU9uOgq@p3Cwiv$Q0K3 ^wN!Oo qck[bF#Y:R$lH5Ow!/PF+RLEBNmZ@KG,-X< qQ$VF.(je{ VDey"tLobIbgLLOe;Vj~f<wp[3W*(ixN4%AVgukjnT6+_[bwM+fMZ UPH{U)M+SW6)W-Tu +G*U[3^*HW |=}o&e>VWZt3X}tZJ.7sfpZyl1QA{0d$vvX:*cF}^rg)}99+xE? =La[{-(I^XCtX2_LU,~4nR~4EYf?-ejR?42( b=%eGNvsLcFostNVZbb<\?Yng%:-Uw7H[+kh_! lM}XGiGn#jq{RqZurd=#.6!:Z}MiS#zUgL3`EJ:OpnsL-" ^ IQiTbk2rg4hs2|G?bGXTv'=| $%z@fu{PxvLIps@fK U>|F'g4a8`oM*^{i.ZCiq{mhug>xoimswJ~Fl%FSb!U  uzcMiN;WPUd!NsvCKJ8YW[xBYja)A3Vs-H58xf 8 ;Yjnn[[!k1jF%xhW F2-"5 ,r]SynnZ[?OcK7&Si{`Phg|pFnh5PJ(RftnZt~R~3pk:F>96*71!eit)rOZ=RlT Z3tRfMG#6LDVFyL?~SRhj6'+:. UsiMNqc7` n )9<a)!{G-r(sUonaCEUvAVDSTwnubs8x,j6[/sDyQPs>d^aNKx.|Pn_{s-#.eoMoX2]LgyaU/#f'"X}aMsiL n+E2d y{bcw: EEIqn4aDfNjm@X,YxgksAC^YBk52pRFSgi4X^Ix\pyx&X.VQ^D'&V9D`$IP_30:>t,l!Q #@g,_ D4h%v#JD:<;@zL8?Qt'sVr7c(}WT.fTe.e("M~y\K{s^&,&+gt\# fa-Go e"V5l7/\_yihir=fgV "OI1ye6}EBb3Syn{?Ux6;J&3Sub&' ^?$T\z6Blk/3: |\jsl4@ -8+2A8)'/|/uztDLjqJ pCmw[SfaV@`tv:-sZrFxT =}-g4t?a.e~`7v"H ep(Je/'5D]|'>::^LA vJo2 h[0@~D1'Y_wEPvi"K]gIH:|20fP\WGA~Rmnk[&AxB,LN]?]&R|am(xh# 7 V 161 j|3p*T(": z][<]mI6s6Aq~910039$Um;zTi "8cb\LQd?Q]DQ* kCm /$m`}Fn$5<E4@`z )1Y( qMl\ [ xQw7 [;y[[m8 3XmoX20)QkP/+BfN-1 yM5r y9%+5! U4xpL`*4C|`{>d\ 5qN^C  B(eQm9UYy>E-z1lb?1YzyziIsv'l+ 7^/9iP)}&8j`7/yGeBF`W?9yz)iy!#WJ-A#W+lO (L3ub88t{HR]Pp,@Lk%Q<& Y@0?Doh:5,2tvYzHzv\6-mI`\uVb53|&Mj*l"A?.#9$ VD`$,m .~f# KBYJ3&.,Pd;vpXoJ6RlOENiJm0\>.Bdr`B| :_a97=%8l!+39?FF EB5~GoHKx4Ji!(4@sH??Rp769<^Pnk =`)?F0f1G-<q}%BWLFCpfH\NfCnLO9]/^uHLeq[\%[)8q]{SP+Cb|}f[W_lPz 7>PVCXH7Q#XAKg;TPC#}y!Lna~`yLV/ja}2G]5`I #c!}f#n/ mfve^wVcol'g'jXqYor}cP>;|z7JIv0::Ge33.gvTdLa^n&{=:xC5;j!h%oVS$?( UxLSWWC[Xt%7NY S apEm0~w<}Dz)EJ@2ir)+W36rZD e K\OF>%Zq}7, z:0)G- $fh:*e.p&^1It' mj?4;0W\1(ffO"IFLUcQa. $~H%1f[mD nqpZGgdqYRZBUkx&!uSbvB**u P N?651nLidnPh$>:S;z_{3,,r wt#ocZh\.Ud QTD:-niQ}DQJZ*r>F{psmJupj8LuK@&8 KvH8u'pn* .H!6+eCh0fbI*H!P:l(G,&qS7%_uqeb 1NnEeGs& !oW3ScO HhKuYkk+nSGYr?3hX]{c%h@iM5K6=;P<@Nxy?9iQo_.Lf/P }"$N EbK6)~J{:v\h}iMz%jkwnZZj5JI:@{Q.?fY'(k'4mASQC;dk^Ihzq#2=KAh\U Xx\N62umheY]Zg:(8[\(Tc)g33F\R;4v.BU.xO2's7m6^Ze_H2S6 ll|b%v^ l$`cZr 7fhZ ~Ub;b =rjkD<, C nL` 6L4+;s$u37a)uXZU Z=*&Eu*O(8I $ Ewv['KtC XQg34O  be<Drjq8<2K+(!_pC .tChS7E@ 0 pSc(2 m 6hF *2mtY*T:-4Hl>.)HK^-F2"t 2 |JFC9 Z  ePx[l |*XEGLQWz#M R"K|+_ ;^  A. :xX7g~an\\ .O[ VBD)A5Pqv\K&jaFd>% ;om?:  Y h#JS0[9|.7 I|?0LU{B]Rdl`psv /F /42j 3D^4=ppNNj P} 5kS:~Jn`J?Cl*cc^P|!m*6xAx :8W \`MAX Xg> OBY* nq_iSEq XoL/}OR5PQ:<i SM )Q c Al~mh o,"X u [x: e D"|#=7(U>nH48V{W 6=FY K !W |:k 9D |+% )` K sfq /64BwfzlLhG*AO< HM& K T oO]  b[enA K7fE 4 \oGgIYK`Np>  4ZWf$: il \v Y|s+Pp,+4]^ 1opu O (lvm KQOED`I@L8*j1I*[k  Wzch+'C k]!9%-N {Zf,f   >c Y&.Meb/K =zUNq c Ybn6MreR> M "a  ua(/Yy7m mVY[y`,:*?;c^  o6 ?M1]E #l?Zm {;_o u#.'.y0)$l5N>6\f@gcQX4)u@l'I"u0(E&L2 :X ,K CAO0n'cx:bbtD :U5d0 /  3 : sc,y(0@s ;Q~ g6 U_!N?mcO"&H=i:o6 . s tlM  <p;El0xy[ Jva3o7:w1?|Y?r+nlScg4O|! [f A *S<8V>ZM:cO#YL$cAt[1o&UFLB8?$g0:]z;?sjA  , & >8 ik" X*7[PV^D.|{3Q{]ZP*N 6 <@-[nkvml\*uyE_bCDj;]EQl`28dKyOqb]H.<@0 __~J!o(W%QS< X ory*JRKl;1O9IzQ\[TY821Ix m/W`o d |m}L wdW8} To" UF'N4=QfzOxZq. -Xs}`Yh{j9S55/bm??< R\ $ g5 4+a(9U)* {) (r+qyajOEO:|2Lyw-& 82 3wIaW $gf1>0  r< &l ^@$$E2FQ:|w,L} mueIy(w ZFMݝ8: }Qx Ob40 7 W $Z (%  C }DMh.Bj070zMV6HN8.PϪ  "%8;4$z d ZwF| l2iz * zj`  4aZIPH99g3B#K9G 2 9,Q }d? 3! |,R<K 6. "D*Qr* (Gq 7Q ; Q*% ;lk|kP= 85hnBl Q- + dypmt '?xBk u{F f^ v] ZHK.S #c1}Ll-k+\{ c  S vb4jVR8=EhagP97}/-&C/1F sY lW:ZjC  r 5w[17u I% 1 S]&j\  h " Z3AC*n+8A?7\-E ]!z e  +b!^ uKR.{oq v  NW)KzlMsc^v*oK!cg1 ,w  N6CH`, ~v)-cR?D S qkdZ$r`U7m)oufX WL4  Q 3DW ~54s J Cgx"(v4Du> JF-R/Z!C+\>@5Z1n1xۄ hYzxm q!_r YqYG9J %[G.d]HN{ "i < cp_LmkicW'l*G6P0v/i-0]^#9T+@Z/@*"* &$@(nPy )}daHN mEzQ7}&c] J|YX*SL{YyZYEwaux>A<  8]<fTm0y6a*Ra=lJl2#VWTUQRV 0)p1X~%ra0vvC!4N_B<Wysg B=$`4~ O!\nYQDQ^[hH5e,.D.fsO@;oCj>A,b3u#"daSu_"H,!;ll& 3.%* Ut|hUXfsx8{in(H_^ ^KPKjO~_nG{\XK58?#R`e"*gE>n+_ D H"<)3T "_<s T zM+"UYcU:dB\ROm_[8/Oaj"^_kx3\Lz@rei R6]V8&JE|70yr%Ohm{ W,,g"Da6YI  he=|(EWi^66OK{ELO!`|[:ZuK$W2A427m* (7V1)>5FI?tY8!@Ix2"s_E&f $ H. m(cg 6Bg5T 5`vYBU"# <>u'ne98 vڷ)* j ;Ov M  B[~Rv  :A4^Y_`&hy YJٿknqV_{b&Y /&0D [x[7-hH~K {bBN/%71 GD(6@2 <Hr!WJZii1 $ Lj]x < e`%T7qQ50R~;5 JB2`hu# )`FZ6|O 7Z,8Qdo nk"U8+= qk[R :P7K# pk,((Dm/|ntq9Ljb 2Ts*k4 m ?.S3 @gi`%E"2NaXo\]fKKFy\xz~T #m[  1 R: 'c(Q m'?_TO1V#*%3MLIA a o Qsq p FL )\u,#4G.1 + t.0+Ev  E W%  Sa _ep G0  >Hr3I@ Q w u @ :2.{<@=1!DBn7k?UwDr-*<c]{&]g98. sB;~M[rZb@m? W,9R$S5+>-ZC= ~?tb"mt/MseiXx.{NarH[z6zXo,HlPT#PB_dtot9GU]}sC_4 6(a4}sze0;7sM %!J4 )i!%jl+*-qOjPBFyz7?.sOp _iFv6n*3V*h0\)lWxYv/39q%"~[830TpN}(X[lR{y c !H(Yk#Sfq3 Ot( 9[q(IUk +8e]wow|!$R dj=-f 05 VMuB$.-& ]6H."|Es<0|J:P :FWV(HZ S+($BxFW0RQ_V>9mDWVhZD"r# >4ao;7165t94xUhNu v;~Od}F*HyQqD D/F<y4>;g Sxc/v;#RdjID9V42`z ]!}As!Lj_`CiYJe{=SQ#$mZLt2[6_ QwWi2;LV1Y){PdKk4BMry"/jx zf_.Uy6av0 VURgmTKgJ_ca1)c-Gj;S-Z. 0>l>p!I!Ns QMAS v Sz H r\w77 ">n+Y'%A}e0W?:m 2 i ;|'  L p{q2B\t^RF;a2,'Bb ;*i  `: |~zz:i2dy R iGkh-,5I^D*1 - &5?uQ8 q  4 r ^].`@c Bq %"H3 ~_?9? w+('LX.Vp  r tF' J ;tr5lNl;Wyb#C~&# & q tc=  " `Fi T25#m>'S`p\_/?G"!5(R tL. B ~,nrd1 k V X%>,3[8 0o`"x;**9i7 %31 O&0X?1 7  zY%FbLo>1u n !/'(ZlK knAVTsr4^Ua({R{jx,SE+\wqp"L\qK`" X9$Y.f +9DfrQ Y^ -uU44Fi% "nsyj\J `$)GsDgb`-is%vyG'>Eq 3,HP2"4  kIU-|  &s/SF(k_Fp^ "/MwV(jit=@v3*DlM"^! ?M.^W % 9 F^y2 I: Q\GL:}L #qdC0AAeL%B; FZZ  c _=ocaBz ul(9n:Eu3hE<1|!i%% Z j]cy` O2&/x!HK*}Uh  4e{K}C0 .zAjV  -`a>L v 3suxZLt@H tg~1MFq2 3$\ #!"'FJ   4K\6" ?Y#^~yq#   BZjx?YPzf.;~|K~g6   s[cl G n F;)Kia8 I{1S,ji W\ EE f- nM7zJ  5aQ[`A<'\t< nYD-WL{,[<##d7 dJ qE[Y~jToAsbp-L{G>fKbuW(i,yg JG"r'@ s{p<]r X ] p 6k0e^  ;Qm?yO;M} Y V 7l(/ Pna#8KY" O % 4 A 1{  +ca1-{y&9 ,6<ezq4"RR +Jy + b >hxmO71 {I*7u"!q"Irq:LG!=xsEpq~r=hk/%c3Yu  ]Na ur?BOB2n tb*TH&  r Tb  pptL RQ,3v8/'M,ZbXuskoe|=R( /$z:vfyw>- 1|\cY^3ji% qUFi C2=6> &8(rskqkdh7z##G>9Fynt\h/ithxI\]PSbaOp,>[cexL4EMoB?XZb?0xnto|: R=Cf/WW2IP x;qwc=Q\tr!yjWkW.C=]UB{KKc[$`HJ#|25ZWVVd'D=1H+5k+^svY`cHax(UPqrC[Unj ?w oi*2Qy"X.f"H7!V[E4&gMA}_@Ge^bzU   C Y 8m ~.!-lPoPb?0BZ)dyp# (]+HUsK\Dfv   F_-_4K v 3/UE _3] 9s A ?p{Hk!{UF&J)WA. 2+   &5iqZ? &p S%& !g0vb *U C Voi m= M& ' H="^wk $od G:?Qm5 wrB0,BPp|;"&TesI{  -  * Tr$Rn7zT ? IcU  z: 26rT>LJ^MV}[a @  l2LC6:?  h9 W*oqMAF [ !Z 3l%<0UP*=;h #T  r*byJ ~ ; G*c"X"ML u >DL_y[VzN j =.lGWei6 s0{%)K  Z+9K#]z __ PHL _   <rH K \/B*/jq0"j$H!o5ocK/hT]W+ { b wUt{<6i8y   J8E<< ({iiw1r(MyMd7pQ-  ;F [m)o) xzf >i-J wu4R]GaL#bH0eNpJJv(?eDPcUR 7@2 c -x svL{2D m#E[Ti*69>thu37) e2z Rx 4 V }:+u>(Vn]+tD cxbK]'sj>Cp   Y]\M=c- h <bc#rn#x6`.F( Zf>=b .$#:AL1?'|*i- m  +S|;rZ99R t 8!C$MFlf_0)-w(v ,g(b(f3#`%1 ; ( \Ugv ?T#  6duG@s8N1]C7HyUwB-D\> Q 4v .!Dvjc J F2F#45VvoEr9u%N~k4yc4I =R=25U c [4 5l>9> ;3RxY=pJs'Uym<1!* =6#052$  F"Vil{O "K/+FM~SyuGsi|kk/"65Y0 2  (  VH?| @ [Y  j?[:XAx q mX] "z2KQ ; hUg Aq?K,[C DPyn\bJT sL0.$78`sH"#{?}(Y ;  q2 h /dWegI ["%+ Yx}VQ<# G] K N1I| "7 5%i@P> =1EzpWQO!,TgDH.nNB n'\4NTfsTxu<  Y8  cw] Bu8u=)PO@!^/1*V\`n9MwK#dEDuD2ao^[q6c 1) ) *tWL',0.y+OuK(CFejFQWPAN:&{lL_<Q|"<l9v2YJ!jfy1_| l['.WCI}l9\zUFSL 0_IJW^CQq]nNw'I{0c, 7/:$;mat [6"yL`#Z cyBzUHpUl9a@0!=e=]F$J>{nWJzBi;#b_FeQ`(l1v,6Gvm&rJm!-L@Q?KWU"R]D&O@/L04qAa<>VM2"~_aeQ+tN&EZzhJ}>c"g^O) p4EMS4Ak 7Fs?`d:&S7F(H6]S!uG#MA,;qs, Iyu(WJ lW=8z=#i& i|r}_F5+}h3c 4,Oh}?re>M 8v;z)]\M0mLl)WC;tb"}0xX8[LFE5 8yq:FSPY*[ 6BkM'\TU*avn" .PWT)"%Zj1$0I-*_om %:Wa8s%X#/]}=Xy5}zdI:XPM -E}pJRMS*-PSv".jO7SU%)%ysqdVTM EF[=q"{Pu|Ka{J(Tz ^Ju{8s^wVk:J>TajT(P C=gK{*\4"`'J9I^L^3(|684Gg L v,_>TV0w^3e~!yB.yWa8hLXE}XPlxOkh&ELny[t.mhZ{] &*4{z5s,`JavE$ >aa+y#u-F~C/t]LOwHV r)rK_l ^2A,@\JA CZ/5 1$oTH+J8(SlaFG0;@g{WDh#,2h&']=bt%RC^=:G\hHm S,t&P}w_pam>!>pP4F0}-3e+M)/cRj^*475'Z @+9 ]W FK[}&T nj_Mgdti^\yBWwzg'#UhP _h$vd^mA]q/]v4-OTMs{b()D BA!V {p Bxfh~K}_Tzj^=_jl#I%W9`/ylx q:x!!uz\6FNUgt4}o%U J}DDp$OL3G *) r71%VfVeEv-=G|7iw2/vyjcrCB3Mz9(=K ^`]@)$   g_ g_6mLUcI| FL p'PPk42 t 0/%sy* * }=gy0HgtL&pFe%VeMe*.Z\^tl:yC&eD^b[3QPTp[U6sj6ggS i3ggGg9Ih}uN "s-]iao^)*qjMGh3#9qZ+0] P` z{J*}NR<B_m*,MO2aUi 4F> #RyQ.*)#lpD'z o,^ []}ZvJ>MS1T oo*2;_wT S 0 gfWv'::?"Fauh +UtF KSC  7!vNCy*aC.V ) _K2 00(yx%a 0c01$3&,XT?Xk}uD5(x a1c^[#TU_[  Ug,l~\~}'&wtw+`b\- ppXuu1Z:p7 5v4E mSu YEqukh Ou}^S-b\Q&{BA9}VC5D}<|7 f%!cXQ B K:T on:X W6a^`BhQ;f,Gl>, oQ:uhft#c {Z2O,zN gS7G }9R  /SB ErL734uMHGnSt$c"IbL* : " y$ykWUmKv261 )v'w~GGrqm=&Sl GTaZ N Cc != LP+WUex5^ x=AD|)0<~'MM1@! U : GZT?c4<[ UQ!Z 3jr (V??   Dg =   +KEC(k S\2'\*Cr1? 8c% b  pGKk=NC!2 Y ! 0H+> liSk [sL3w!/k{a1Y .  D2)I t a6X 3Oyp~_uE VxXTkV (|h}}  ^  4tE 2 ^B8-7eCwbTI@3|]i{yo9/mN(l ss P 29B=mxmZ ` !wwbH; 3qtq6w[*Y@zCcwt"U (  w uRo2Ky4AC @c9jl/ = nc-SC"#<[Rj[9c&p  et s]y{g5r25!l atCm_>{qBvmy9p#8.ukwfo<   0 B ,;lJ>/LZ-HxDNz$W Q2 v[o9A *Vgh 3p =eFK=`v|aUeN 71KzeUOK^;qzB 01=XZr_W+*{km  _ }Un|:,(8sthY7"fnfh9F}.eT?xpY%iI 7ZZ/ y g 2?i#Tm ^-;ZVXV w{v"jP4OH2u"2N8y1 j  M\@@[,LyX4w-rT=SO29z#1X<3 OB | Ftge,ofENLc`PFSO^3DhDV qUNa,V?[/;N \ h Z;5)\~p=Ow"PD&r#rUwx`BKkD4%aM   Q - ?~) 6eFgD?v7iY&HD-` 9Qg:Nu*| mIp }d   ziP|Qu4 VsK5yznYaaY|U9kw2XyMurlCG9~llY   I g>wo\ekn- ~~z[LO/T+6ul]Mg|Ydp9k9c "Q"1 R  m 0@f(qz|]8l;EF!Fv`k*^-KA0A3,5SGPy O- 5 1; 77> &+ 3j7h;NT@o1M.; 2,S%=d1c"[aC . Ty5 ]B7P}  bjr'_ (Vnj+z(Z yd(}f:S9M`ed .UH* _hU"K]O_SVZ>h^uOG6CZf%nVK)|H; A.d?f 5bGBs?\v|/G0l#HmwP<Z =k .j+"{R J-OBxK>`q]G""^s!kY W~p<r$Z2bda\  D~%=C>?FLQT*ep 7V2X|N61^a|v|)% .Nhg8Owxv4J 3w/3p{VyW1x|>DLjCXf731 ]%D"eIcbLO&F{6@Py\71EF#8=%I^BZw @mNF4gG33 #)C lZot$l 8Sv7UYA{wAAx0C= /80OZC>xl RV/yt3Yq-E5)3XZ[k@)YO Z[bEqW\SX1(akg~#D$!y`Z]BZdsHu ed=2-vxp 0gefZm.X:: `?'Lp_Nt|D u&w<-L;J_bW4InwTCy ptMIz)?H+ H;u`2ZYg:<1DB&4P+}Fvw}:qS>\~d7z)3}-G^A? '8 ^oK{#:<_H<PyXW?"JM9G;$Tr4FJ<y-4E]}}q+ybD 2M%Xi>%Z:n7BAI{nN&oj uB bl6DDl`=paTO Tf aA WZpAUJO>[FzeYJMal xRn.*h+(-5s|-w(G 0Pm;gI/Ne2Y^oeNp?`$IMJm ?Ju=w _Nl }7p(X`y<)H2-Jb&.a _- @G`wxr9JGWy*ff(,rQJ/Rpi]0lt}xt,|"M #wRRg<WkZ].a$ ^ bp`.$@;rCvl&>Q 0U1%d vcS3!#7G5&&|tq ^Z> 4d 0 l:2/T`8|[i6W4^>tGo|Jw~ -2]P{- Q# m  <jq~T3R wi Oo/PGgoa"rpVi j@ { 2 T}O{!FL }4 AzkrDkEv0G)HGr  Zv ] }PL2I?jIzpdy W(k0et)2 \3 ' D[P uRZ<jE-Xy,  =tNi>5G * a BN/&7%{J&%=.d uK j;n$^} Yg DP:[*8([w_cA.=+eq%,5D!DC-Kx= "F  x-Qg+I`[`3I5b8_sYQ"Q6TLI Wp= wKm% tH6e/J}gtQx,~G>3m&&h5 H[Jd kk`A!2P_PW|&1draI!yM;[j_kqQfZs?Eo`lsmHF6z,0f&a D(V#K.?^">M/l77U Xp$E^JM0LML{H 2&*)v*0z_QYaWpgq0&^" UFETBwh!lXI:*YIR/MTX0L$e 5*jk k~  g $X n"Tr.c>=b|.zjkh'(4 1% `?uigR^L\3<E jD 4<i 1*0J)-# H *d[xSz Nbwd="6f1(M|rjLf(GnTW?v #2$8ON 6tPzWT!btm1BST *>b(-q6lI;z.E-J:YV N# B >{j3$;_%G77@vi:="gc%SFGTV0 zVe}rT]WH_JZN} 9`^XD/u#+gRq7<ag &}7E|E< !F@kzeY1lbf\o:`YS~TE{P\N a_ V. +[\0  %ZyZ{"l aZ5r" (+w+Jxu"Zk %|}Nq o\vt h@hl]2- ""UAUF*M3+4(0GDu5s gG& eD L jn, l0R;Kt~t:lou^?Z:,y>.fB6h4+ 2'GfsJ[P <*+D`QW8u B=CHxUK9k$^6toX]I]KvBV?v K\:=v{i'PBI)&P~(mOf9vMdZEHt9pu. N,=o%% 0[X0IO8 pt]P9gI$wm _ 9f$x5nrKIV8u1tO WkP;`p)=a431DwO9OG\  Oh w2X|MMx;:dnT;b1gUcO@]-4/] <fO/ @ t sWj/~K:g61*$_wzluO%}qQx\#7=gNK8y # [ 1 T Z:$c1-0y]Ln3R7Y7,AQ.fE&1wd \ $ ( \*"%+blqwGh!.^Lf_vtyNAd 5d=A f\QvaAms $ # 41e =MC{^d|HFX&-oU@ 8R n n^Bo5L,>9s"c$ /k&@M~?= uq ~0\w  ,O N1tEU4D@rj:jH3U"|0 F8V|~RZrk / `cWzmx3HHyaGp+F+UC_ *(V%M;r!n #\Hm$T I2W29 @xsvgJ 4(sX=Y1k5@PJdR3 AZ!8$qUQS yHLPR~ 9BV4Vg >?u[>-?3/@I?x/fif g< CqqF$(uhC|`q\j~ Pypor^j =s76M76 g=tI03|}QY686[S:jDa>rD z TVBCTc&/kAN W ] 9#neS!!cw_4< b;Htz]ucsC  Lav[g ]Nl-CHe/]{?(>P)`2a<ja49`hOc=k/'o6L"{;a SJTl U | + = &Q?QR=1( K~ $A8Jh8S_4 "M u O, s 1 Wtf]&`: D L } SpKFK;!GZpapEp]#"Z '=>pa /^^)&^ x\ }   @()I`v`#r U>f)n3Gql'V FM-k1E U (}H4B%:8 ;2  5SQfQtTd"45EWH7P~[#~tfg#~U5:2 ~ V ;8 wL#3X(0 sDqo"!i;oJ:x {67~& 0`l[Y=IBY 2{:# O ! G$2_S H Mw ]/76  N. uv&:lH_o +A%  } a}WX3v w Q} `, u[|A _p R|\ ?#4 zX ..mfE U[FPo|B#&4dr ~wjm5z, 4 1) jMhfY03300 g % zLvn| b89|3}: T XfTn an~IR-|;Yy{ & F I/. ;oO3wKSCvlu2Ui$ vN } N2K g 6q8 =  &eh F ^ ;?/[NK_ ~J = ? mR 7 6$\.1yv} Z |5  }tQQ, A <x'![@NT I v %cJ =j e6 d 1I 'n|.Fj |XB"" v0BL`KRXa^*tA) z -kR H!B -:Z+ rop{ ;Fkcy ypqxVICy=QxHe^s+lx3m k<AJ.U!M N$=1F)PxT)eDoxcK:AE0p~VRt& X)6J[| `$ [(h.wnzwV0d   9/>Rhx%Na.ht4xM*W&;}8 qR{X[+O:?~'1,ztZ6"mRb%AR@?`'u<CqCjx?q0VOkUc$}  2*k6x/vZ;)dv4m8Cqqx_0BU3O5f=") ;4 g5V'|I2}T[0d'( "(m^XkLZX++[ZPA [ ^ t\_ X5\5 *Mt=G2b U WXxYvvc! 3R? e p$)U$ap` X~x-gaFFyc#LLVN';dn% iE NN<) `,Sl y_2=v>SjiL {S\UMh Lb2Y.@B_u a  [Oi&VCICL#E<v/|R7 |>]=Z x im  _" FXLDSn{OtTN;+ FF!p\sh!?Yt,C{ wf,Ifm7YJ~2e/t{Gk2D1} '.7X9=ZdB>ZXATD#u/S%8l69yKtT/+YT_g)"n=OV6ZX&D L<B }pX@'H{$6!x-(}C :{%UwYm'O6#-c+&Eef:QjFCN:=SA|r  Z" jj? yq-b 8 (A0 44-[Af\T9g,uV7'U'D4R0"LIvZu@h1` j!.H&<!}T*(Tw 6|Yfb6 |@!"! 81n]S^*+p0:7~o9)}FANqG[h0Y~r{KQ$uEnw!V6 G]NT&;ff 5.Cjm;ADsiAO>W  E[:5lpq (xd47A( a7/ddorJ6o4j[gwmsg x.$(Vx uCxyUi297vdRb<KI=> }RS(-Q. m XdcVBT +h}+*7\8v9"sv Y)oE3rXjr@3 X;:>v%.UyKKh7nV6aR9 4 " O+ <[GpV 8N<WEtGA?9jTkqU;/jv:4?P# -)xL 1 -qa; e*!1 yEevF(~4H"ytpq->GM*P 'o G7XA k\Pfp 2=1'jHPL ioxUA;lL887fe% A E&?3 @{F\ U=bP:$!Gjp,qWsIXa,jL"D3-pA$^ac  8C135W64Yd%G=Ioz9nZ:|m~cz7v< | K!Uh N w%d1$TrB)<-" {0NPY(|)QzbuLGRkTMTq+ . \Rzw8p 5KZ DKIFx7 Q;"`U (e?xS@%?UP9#QARe.BoMSvalU #j*6m P {  . >6~ ;m b>m?yHNP1^_%io0F |2 tG|kL a2(%"~bbpL-czj>>~Z[VpmZ A?OJQez"i~x ~uCh Es! D SgE;a3 ^,d&fQW7] #d! ^827 <*E$2t& %U{o=Z[1_h=*|}Zy &GUj2?"SOFX:1z"g!Lx"] 6gbT78+GD 9`Z)ef#rm] ?"bFHl&? bFFgl# X gDf7Xdiy8~gc "6UshQ|n"g>Fv.ew fu} 4SGlQ8/eN% sH0j=9M soc%S:p c|  } :97 j+4 jPqA76j]5  M xLVT&w?#%a9"SnLYXp^$ H & ++ k _qB38#f~LSd&Kp WE ? 9 y4$ s:~:1r/q4CB3F 7| .-e U T@ S]K@v) O,Dh~t^USBR # N* `} eiH-!xdNc.PK\7O:SVLzj&;cC4'~fKOn" h}#Oh|VUA?;n W$wC**y&\#qK(IXcC&|c 2wDt0d,h,G=vxVA*29J~eBa&il2D<7+!' =4jCR+ ~[rUN<' ZW$g]Z%v[ V=?Cht) ~Yd?Lr2csv/ O L. 9R =#6W2S[ HMqm]^=o 5zlgg9d+9jxtd,iY6  m t$ qnM6/q>3Y[,|| K;Vkl`0`)_{g0<+FK#Y~7 2p? $Q"+I?S OgRK@,Ja5a0&`_ZVM86\R!x`VK*aR@JQ G>&vQv#XAkH0T`zo|&;@b0yahTy^2ug0H|YZIgO6BC "5ETrO*Cm[glrQMZWolAW5Cf 2T4/x0c"*OiWvLIhF#5e}s6nne^eA)6j?0hWws%DK{=,_5% uXEUX]]FDoP2fJTVssBWIdP5Y!VqSt_aSFbKOe!\fSzP%A_8^.RZmqE=?<M05EE\Y$31/AfB\SY4S`v6OKzTJ]Zoz741c [)&LBl;[v1G4[WzYP:e*Dv9 C twv0z>`8Pmrt_xTjMRs&saD xze-FGav1}^niZXKZRnC[/1A+Z^A . 5+Tz;J0 _.mY7 5E~qp*fj9}+? |z[uZ*Alf& ]-FgeW%9YB&g#hxqtEj(kyGX 5%fZ=p@mT\r/i9u#b=1q3:+So++d?cII:kiI  c?%Zb[{9QsTm1Q!*Q+mU]zR~0K!6f)CsyrT0 iAHTy4i9l'M\ai5'CnRN|C]o5VU/-izOF=!s1yU2BJ:tr?=5!x%hGlN}i,`>qV$"{6 G\!t(Y2~eGDFyS($)cjMEi:o8]c . [Y;Lh9-fwx6+IFUCoThNJ|aVyxO Q =vt+-RMW4$^v=yyO}P#{Lw jZ; 9< RY&awu^M4O"8Li;p$bSRSSa_VtJy":]x eX.!TmgIz4 JA<X) k,TGBf{B|g#S$ N;a`%JR:QD9dJu|(F4;7%h&l^iD V${F+P f# {WA 0 b&RuH;>^I#Y  ` g fw-zD0g@Lhm-cmS4jAZMXviO'+{/3d@mM@cGu s c (]v= 1. m<Qu^xz;-A|>L -K *fP_Dm}:s-=< PEr i~As jU ezi `#uYI+r{TOE417U*Lp=v 0Io  p:+>"~HC]804-I@^6M)DMZ 3xT D jI\L!T0iVs42C/ JRYsa >.I'B_yG,p tn  48 Ij[4!hFf(WEWm\)=sC)}.Zy !a*w 3If=!1L{J~ \{T g|^, j O Iz]kbf\K X*.)jL~PrH_g3J [a-etMG7a=OpEgys> P]NB,p,]wQ]8$gYiYv eZ05|^u68}a[dy1pU+:lI]#,O?[(_XNf" |<A*Hs @}Y+4_:M\K1aJW4}V}A4 rUGr6X"5^Bu iZan=B"_p1;3t ^1lSOokfHQ32 *G@.(h`G{_*6 _L`ORX$NFJ /Fe%e@ qm* wx'D!|<2'tal7Z z~IjA;S4g@Mj|^NzSt]$.A82yaYzlis4;Z .{] l  b} $El4< I ZsGw= s {d[a i[vIo=8#VlM!zv.#3Fk:vm,?Sd3nGt'4x:%|=&1[G[^PEf8N!;JC+Oz]}~VZW`A P!/<_d7-p?#[KlN~G\e+OG.lpO@fhN[qZ/^Q>BJNhxT*)[5aZqj056J<r4VH~xkbuPBqml%q>Z`buab? >x'  n6U%  JauQn,o;b1AvAy4t~JS<H>+.x ? a< +R!DGQjb@DBL+ OaTSUyS{/! . OLiEG { G ,8.9}pnGnRidC=N;<BJ/T$-!O!&;k } { F 9#D1 O77>!2QL,V\VS/!U#$V `؀nd  "2c-O95yE.j0+&\E[*)ngݝ- s 3nFRs t K28'N&e5! 4zoeBF h} VV c'= !~_6k252 Vy^bw}cR9/V $`O^ N7 x h 4Y\St-o=&O<R'gud"]4S,U o=f80GP} _* RnhDwrKE|nE-'gVY`ym M/N+xgN9Z3(&EE#np AqUa7PD}?sR0 OkxfW'7p+/HJS<d$Oh&MQ@nzimg&k = mv_KRa^Z :Lb]; 0^^yWj A 7L  E]_"FbBPRO{Y tVe0\Q#Q 5nMf+$ueK5` 0`3lqp: 5mX8!3)6n?m $kG5Ua5pMT:[\j ivs[t _/yJ/:a) _,7cOpKl_0YW!uND 6&h ~9 e4Fw \#peB6})c|+)mJ @|Z?~0#u3F} ('1ak+*,b5Z)f-hDv8f1NFM<V):C LnjiZm EM22e\bLW#&>S _  6 U_  "fh@wu S W4- $+ c.+& k-P _^ | M  f^Z vt_flD 6u;w Q6SV M>eBwf-*:t3r\8 f) N VwA%  }.vxF !m F7zoh]`B14/8K#r \ Q > 8;"^{K! i:'P8 lI_B%+)`MDmP%5G3$+  w  ` Zm59 )r }H^:SLl0eU/O\qo#I5FW1<5IXT"L nTfEnPGTJ"  #XUj";.R _Hbx4kB]2/$#TDz_B'SO#X}QY-k$`G=3H39#9 YB ^> 8P A ht % ra$S EaN "="YO%m.,rwYF he  G%* u/a[e) kk|3}Lu3s \ 7czJ4E$ m *_ 5^hT[>2 L C(x i wz2nSp' 4vStHD o ]&zk ]n {)D d=<IK$jLxp/5P`J1Ez;jKOfP gY`NgUw(w3`AyY1 s{S%4zNxtWE%ZlxsXd h [w 6  [%?\DY E cBA3B)Fu;X^MY tjfD a /a HwU_% _b1r)G.&`D </ /| B/ b #x5nU J= __M5dp$fA:[M VhJ OHklYt  E>.u w0 H?=+ROm5p7{!nnEMs4c BX 2IG=WYV22dMBn\|MU O_ AD vUCELN2v%<K[:)=ZbSP tS W~ hIz#zdmMmI6sm"vE]I?e d 8a,{26_G [jOY+ `$l>Dha 7 [nk2=*B0k`&[M<2i{iS_RPVUV"hV}rgsdf D uwFUo*)kD*_,={eNu[7|=T}t7nO^?yuC "gDxz'k3y_5Xd(`%5Y0%5;^*8\yc%/_],% |=l~&_\2C/ T:d@ .jgn$ '-4}c)uOMh;H_+[%iQ~Him-PCipc;x6P:yn0aTm2h Q3.3]Cu S+xU Mq+ ;%z' ; % C_6#d7 x)m @r S X~E7$VGQ?s ?XVNGaN1r zZWJwD bM " #, |H ,p!ML NJ Z  C}J5P t|~Waf :c'qb*|F+`cP:T:4gK 8N4wY>9Ri=]qT' 6< !f9<oH/r2F$[#fJ5>t%A+#R[V>CnJGFA!1&C n6/$t/AP[&)c+fE0thk1j*qlWc-&n90&ZM GZ\px?=iKYlFZ >DI[8j,p(*=y !<qe`Xw?cZf%{tjJ O 8;]$m465YP?NCLFB7m~.HDM>rsngDpWF$N<, fh b7g6vT3Uy%Uq4-/>X\^Mq 2 &oZS$?|}Az qfZ<^3^"/ RVC/SY64]-h`tQ;f-Xw(H h^y4ozDt6"`p#ONq"Bg x.n<Wafd)UL7h{ +v JHjHz~ LLf*5s0:mV7Q(O g{7 $9xy$HKxN&Cx80 oCy^_5]k)2F~q)?\c#e@/dsv]Rr0vUvWnIxi? B _}Ksk `{Pqw)O'IC kjY?U(wT|&&)_)X ciJQ0 oo%A0&oS}(3#XXD20A=Z'PKf)\soUJI#%"hy&C3>?-E<KR/]pX3ixntvu^A!piN\eJJ=n`G/8k4B>vu>_by+Xx{w0Op8[U#-d!3#'4CUH$ek4g)&V!8eZ/KHX-AF7i%TI<HP fZpnEpE-l(k^wxkz*Q?!Z\ )'<[&dql5:7o>h^_41@AnCk#2AgMYm*a /'N/T4gV{Pho)#n,}3<e8ooMgOKmqXL%eZXk4 )w<$"h[o=(ea/Y+ Oa}N:V; fO 1-CO+_eWU5Ke`HUW2<f%GS[BO"9%]({r4r:QdZz`oTJ_eSNyGj</CJ$,,3<]?<a pfw8fQ{T"TFG b#6B5D5bUG2"uT,CW^~[U~l*zZY?g#7P#f6.,l:iN:*]43Nrnp5OSHo.+!b bW!%.M9,AsOBNm=|^6m|>1:$f"t}M=;Zr@r)An?[UW8XNWgvj`!+|{%$0>gY<6/mk$E }2y=bH8FePaF.+Y O*-5OFf'V|eJAT#VEc ~1:/S{;MJJjeKEgc_CH9syPHcq%ei* \-3%9_sq= ' Ih|]3bpw %,eZ S wYoi 6@^n3 h 9USUiLG< ^; >x=<ZWx_h& . V h -7!cy*!5 D"Ey )=>kN]+,$?*n&4Yky0L45  (u* SyS$\^}Jy(+L  R\.gX+.me _`( h )u SA2CG=Sf,Kb)m\ =  'mgk2j *TFT6"iZ #3 u@ { *B@YA w +_Cx9FGz3M #&f @Nl#Y VZZ  ? X'~(n ~C aO#H") Kf4'5*#In u>܏^A "" ID)XerRDiL;C1 k6%:=_ n=mX;$j/k s:'}L=KrsJrf\>  r%Rރ  - aW ' _/  LU f)kD|xed} !v+cUh"!D܍Q)/R߁3jQsb % )a +/6 Fi' e"l&&޷W E =(/*~ (8p' :v'S/ T~9& TaSK !hݱ7͙."36 : n HKl F ^ u,C  VKOw! Yz=( # .cok Dui S ;R / bz-{70=Z#[b)ah)9bP3ug M xW 8!y <dW6O `nu8 Q:?UP2v!8X3$TD7lfuS  po7|FG)I=>$HO38 l! [PJfads6VicM4Gb3(/0K2H]+)m~S6 QR'oih^ _h, |E k%onp8 m||) BM* {z)',D(B"pI )g YesE3e0 iQ*y-:;#LR+ 1 O<:@  MAiT, !1`pRaT{ y4i6[W)C*В [^]S/!v8Efi? 6 WYQeCHgS%16v\+/.Ԫ N ؈\#c $T|UJ vb w(6-@SWjZ/4!j5ۛOg6S `}j9%'I S D!] #{KR& (,7!y EыhJSdH yNWa|V-6$(;[2|-!  !nY (0  Ja55 ; *$vm u~/0o   XA< f4Y Y$J5i 0H8%bn  4(]&6<}%.yCoE#t#V+xNQq%G  q &N,|}KU&(FzRcU|YFZL  a5< 7elz{(>R/ * V]1j^/h[JJG'x@MJG  JI K  Y w:}c"8- y;pNmbO{+TZ>-4 \ -  9 Y+PkP  Wq 9{j/" o_@  7RS;  Kk oz ey  H$ Nw pX.SrNqJ [ _! \VDPJX K lF EHUDo{ N { b.:i G! ^9$ }d L>j! b\]q ,D[e  `V"  w6 f7 )]A >9y %V9?fL =4S-A.  k,f-N =){XEa!8 f p 96D&mb! z"> - *qLc/CJe"O x~ 1q|~ A  (5 Iii L]z}bl<'NdGU.BC vN6z \R|P D 4RY4Q68s**ye:x8h%)eDmxqCPd01`+:$?8 2"[5sp|/6 DnMg\EmRr@8.#HDKia\!0]7{^;g=RNK+6/1_BO. >G /9h ![!kG 0H*M#_n-\:Ow5P],.+J%E)`_YM.E%%0Jo2nK&flhI:ddtSGR$( ^b 9 g!1R `Ye 02bw c(%( G$k6Pn(EAX*aD5C Cg0_E f"":%c"03@TtQ<EJ;"O$Rj/uhIA6+:p~/r''}`8^,Cc<&C(M? dav`W!hMVokjuj-0hl;!"aM>Fx|tiS3gufTW+pQ=$!vIp rB&HqE~])[awt } UW{p9B)Qd- 9sN_o[b0BO/i{3Er ,oQ *A{FYyNK ?]O-lhj^?][x>HzZ\nY_V F  _f)r=r :LHMH Z']whq:3& el,^L0$$2c/ ;G N OrT , R<k 5y &Lt= MXK}E 4 7 !O D    7@F{^:A g1 2 @#6&czF3S Z7][AZ'C:!GHLC 0:$i ukB d 9t]J;2 !}V q./ P/tS[zzW?Y V%hKa7- ^f>G /k3tQVQy5|#`W F Rc}$jo&]''2+8M*_KCIz,W  PI&,hC6MEB)R^wK gysE1#gElFL 90LY.--Q o &rAzx0*fmwi5 U2I;..$p"R;k_NZ;Hz `45 $P/s5Z$.* p Z  s W%XI k9V;l%w'$&&@Y ;Y= l3G!rXBWQZ~OZ#fM9r|~h/# !XUw'; +Ht~EQz8 +ldR!2Dz?6:XXX / :'xwjcE j.:#@ TSZ FW3 >f A5=m(g/5*,ASWy. @a/#zR`EF} 2dUm4`; " @S&UTZGOyXn.<Ic6;kowv#"G"=LO&):L5D6 oKp wcb^0`$T388[NO|=.N O e _0X dI|$xN;juIGV81%=4bMwC5PjH)nIuV6 BJyY% :AAtOsRi>HV~8r)YtO{v S1vL P[R` 19$pBJc$RAb W 'z*?`@Vq( l>c{C^F2G%XFa*RK?( ,Rl g# Z1R>2R>([~W ~g^@X>L}1;F'JUC/5>a`rS^oT&% b' Hk#SIh7T}M1,GWO\oZq2#g>wz@E!`|xlQ|9F E `]<E72uPRgk|V YVVJSMl18%zlNY ]\bLux{A 1zGQoa&+%g Bk6~crp0, .7kG![uf~t 9OT M rJUSJV@Ks<1=_ydRphXh ~YH} )dx9nz2?9D"ZDOqT ZUzil{8$" EgU \}dOU!-7ey;r R1)[ %\VVUY4f _BPK]?w(BCeU<YysH^!({X:-{ M.+TAH{geY`zc&FY; {y $p+Wg} Go^z ron+;&~w?0.2 il2 ?r]g1 CF {ijB?k'O#F/XWb'e2;B<0W</kF 4c\4T']H  A\ m!3ub}K \(R8?  $qh[; Dlck%9ElZ[HNk@i 3S  ] ,=u08M*U=#"tNkCO:j <1l>}\[ 2a 7 Z ; )Qv:84ux BvP4y]:oh!UI7iqw:jBO:~W^ !E-YB" c4%[vEH P/51C$SsA>:d$l_XNh5d6SCpvo\T%K"Hs< OD9=|Q?G3c+0{5FO4~/_}OJ6X7PIOA+tX,LBfDIK[_d 2>)#GNz(4 ID:I7GVU)Oju+ |Iv+`W Dg? b{9E /h906m}O/yD/#:}o?i [}fCIm }f<D&vr1X7ZuGzaYI+Ny4`O?wiYFE-3, id_Em7Ew.U{v5c+{d EWb8Tj<)K.{'>l*sTxinXDVk(TR8nVm_9qLESs( c$vz #7LerN4 `FHJh+/Fe-*v+:#:_}RnUm^h|9$^{$G+>N4pVlS;cfuxoTPLA{,'X] vxb1m6^tM%Y5fn<*/Xj4+aCW?q8"-pbs!DNbo|caB$wyI@"nA<AmvIQz65X3SItKqG-x`d8 lRNw9W3U(Nb\Q{ ~mwv, q{\h_B=vFEMj8?7NZ |jRD2sT4;d>`80yN`:3yu B{)eLH*DXU\1ECqO2~s*&Q+,=M?N;9)G; pnN+ ?$(Qo&VM0q2:s>5 bAc9Oa:4t[8UN8t|!5fs}ytew}'359 }JFaJe@GyxT P]jrusA^$8PZ::S.K@;"vGI;m|A L-$ " W='x}Dj[1zJ1"fAk D$xP=&;.39)M@[wj,G-~Nv),|-Pk^jerH}V|g}nF2JS%1MtgU/jmV&$K?~Fbo";*`+qYGPBGbAZ wqY=h"8?[Y*Y&nHygim]X*m=JaBn!i4u'y6cDsQ1F1YA~\~Ujma 'oG1]{!fltAC'z 9eU f;AHDFl/8w FzQ7?>Tx*5Ct3D%]U!AY3" aG 8   e|,# ),bRZr*eAQurGqa]n,ydJ64c OmD@KMZja [5 d  K!  NnzpFa6|+osL" O@W" w8\yUQz"r"f v j #  N ^i247H0Rh K.Jk&;m05 - 8.Pm'F^xSI :    BS.^Z4N0/B/%x Q*/;EWM/hfA>h>GP @Q  Ou5Xl$+@"*0:wjtK:l ! 4fEGJ]`"T5$J=`\ 2  & 7Y Uh A5?3% | 0  fx s Lh-eaP.KNY h g , ?\3z~D| $0)lSc0L TBCRg,>)q_T#,IO+.Rc*m u Ilyj. >dPQ@kOtcZp[} j5;; #sY;w!Vo4;}K;9cn_b+1n(H>H%Q^pdAe9vxU=xe]54g =|nrN;XC1"U XdgvZ: 6L+NuO0oO_~ fOV+0hixj0G|@1FRiX 6+/T'jm0!#Nuwz ?@ZfavVs; ze eDa^m!<g=Kq88OD.*:=!?2N^02.%>(3&-1s:!<~yxqpm-# o!$BTvPnb.N#.ri;%#]dKkmHf{M7*JVUR/gHetdeh  DLUh  !R kLe Q n:k 1 ;'eA1P6;B]/U J:v6VP:% ,U '}q]S1zx?en@'NR aG J, &6x-f>Q<s[Z Yd{T|Qaz>^)xw 0_q;xwtq{Mg_pp)3|uzd25opZWidM'WjmgMa9wvi+w^<NjEJ(RJCDo8dBgk"#.#*m< iq _dgS  ^3 wl K)6IA < 6&oa_GMgD.LA/ B%p[jXS(cPPWxw w>~y Y. zf^(Pi2UThG]w/fffNVQ9sunDCE<m{MX o<  ?  4.t1ua|y~'SmI--DC* u`8||$q)4,!&UV{_ i  zA2(Aja/ h"^| Ks@^o#Dx Zz0`{GcbRG Ql7@m4x0ZDP`  huI )5V^7BhV%UBLY+l03Te,(I2#t_K\lX48n!cm\ 1c K18 AO]7~)Bs9,VMVQ9_*Km8cs '=W]yfQ"s%M+bQT m)j 7@h`d28Vi~1I{0i}a-:5@s 2s?U+Bx |C:5-i5$nu2_& Aa /# M 6EoGRuHPG ,"|\oQ>Z;s.o[vk&h\'rDJ=y)VX> n \ wU-;2oJ}fQ BB:S9*,.C$&]Ko09`S Fg[8BBYO.-d[ #X `FUQ~z!E/g "X;=fBM/p!}CR86hs TsoJG6E-j+]+MuzD680~2+tT+ t=DJd VYOr.CRVq;"q7-FHM:iv>tvwr ;1 unWt`~|Px`" M%e`D1S/eP]Zwyo? GbLJS6+nSzD3:qm &VN^UNNH^ $~8uc)b[V IAP R0`xlMSoo*k[jo?FhnIgKq**5s;/kG mPr3BjpbCVZLvkqokJ_# WcyqYXX9-}+O(&si=^N2Co`/y_7CEYHV}U]e_\wTOVg8&gh}QJut  Bcc6N*.8A FdSvd[[0 "3 3i|kn6JZ!k"~#!WN':SW((R\ 0 OfN@/|TSMd#k@RF_nAlBtDpM4:~6ju!y>SPIIr1,/%OXK$*XyV%~F^(B"!<'i^Z u` qv2yZ8 _\"g EhQ7} G}toyzG;s>^O,>fSDbz-n^3\tx)=m1R?{^"hRTQUP=+VyDH pXl0"Uwc98~R>AM% i!M~isvW=?2w}1 LOX*!Q !`u(1p 0v"}vp TI*k(]aG(#%!XwN ^K62Mgi]Iww# u?Zo82G(.#_]BK*QUnm'Z[VQ+Jo0vSm0l Wn ^W M7 ^ I`9 x&mjw-l;PW gOsk3P S5Sw3N~VtJC]w#6uV2<5):"5mL!Q07 NVq9n&h'&E/'NnxC8'oevydaMUHO#'Vn!~rjLNBsdVI]]feyo]>J\mrjfWOR|# <I20C0|rTMnXdvg_T~*GL@wU}\== >dBG&3"69U! b|Ujh~MiXm{w %.%X_I*<@j-R(D|p^;U\bO1yn}=,C^J*#eSd4sljdWikUhP|w6psv@87OK*7V`wq2d9.^I[T=r3H 4,,kE;z>wzL6wZmc[]efXDUh_Cwsvp~|6 9(%RDb`[7! .' ^SdV6_]su]>$P%@X3`MZ|p[=K/"#)+Xl5h?].F}$#Aau} 3!8 BnZWQ_d$Bh~IE%eF)dm^;{*TDIg^XH00] :h:xjq  zp&  ]?(brZSJHfN{lNWqRL1GKNC :c'tW J 6& pFm \S #SejR1VA,Oa<cFi9QKV|y{vm ->l/JVN)Z] +9 !bX*P"5tQXZg=? AF%^> <GKqEb`n] V ';%,Xe6cN$ndV2x9" %Q$?9`vE]RMI"@ PvVZ89"{`^TM2T P?gh_Z8} 9nY zeZD={tYG_W8R>;~J=-+ry8K6^^dPxQR[v:Q X/0b@wA=JJpAXBJJ8p'O<mB/*C`_Ici}3kNI R 1]}>r,\#s1[ds(A$: t*zj10F asb[[bug Gb:'@7 ;wWg[C(-x:&Dk]! %>Z v]F@$K  @~ >|  J <g<*e}pCUdSd 1 C}@;8Q;zqi icDUk,Q |z4Xd[?TTF)h,6|{0F#gYgx[U$  !#o+2rEg<5R*>! xx W^ PhNFqgFgb"6{ Pa|mu|,#Ne)BlDK9=@KM o*[7uUsxh EVF8I.+Ww& C>j2 7 oN^s X;s+@:" TOK* B Z7_hGqN Q~+TG E=~|d&D0W,y5P\7>:#> "@&* G 9bF BFs@v  (D B! 92ua>? hetB+9Z j<7 h 5+h7$/': AVTmQF$00Z-5D@mSQKbSy X ty-; l}Q"5`q(:\ T%fFe(2M:ZAm Gju6(Q5/P8+nv% 8vgc.*$WCasjQ gTB?(RxTM{\(kB,Y>o@&]7LQaOi;fRQ6Uaiy;>/+*Dp='uA8mk|| C^ddI9Q= AMpl(uWYx>&N(`J=(m4z'7 Kc nCdF}O-i+tF.SjW1c".: W6pn2PQ Ty6\cL*:w h }}mmr(fqT|> zG uQFax3g^j4nwMA mK<:b*`*I%O}/DAy-8X=OJC:zy7l (Y>n$R.ke_zpi Yd@2Wkb&niRa `AJ w7N%+bnYdiC.JfGCv| &'cDU1O=(me<` )5 /9q%@Iwj{6n Id0~<cnMwv7R.Y)*>kHBl  9 6 *'y",657@iiA}s0XCkD(!0'&dGk*_dFw> U$U#I{MX M!U >Z  &y;bW Hbp$:N*{0O=|ea8g<@U:=h~]D D]bn}y3@\ ] :&mz `~UpR6E0&Fa !SIXt_hhE i2_2&F*$w1{rdyh `C5U{xK}dhx `evVRad|${Bd}7pe6&>DvnC{}!KFnFj3a[a9_#w2TnbsYKn@jvK9L x ^ 4u>4U)sZZ4{iQyS~5 3[ /+|1E VZ1eG GvE 2GCQH < j I EX: k zU9_4tCqU.raN2oO6YSR @Mg*_  `'7/ XbFD!M!]5O{i%*@ d.jHB q.FU9.o2)JHC '~F6w>6hkSn{^CzES;i5d!,p`hrM$ XW@ {vP @ b T9FJ)Z Rb@Ig24[R?{eP5x{o#% K Z]k[5<} /K0-RBR(#f 4}SAIO$R sF X 7C=_z|Z,}Y;>d[tGRDq,rL!C]p5(BBlx?)shZNBirV3,_w]'Z8W9EX3Lg`b GXWe=>,h< :]CC`E%){Y)M~\v ?%=EG$<]," 9B~^`XMDNBy">4 U^k nor}qRDC .??NM| 0^[f/M/{rRodRd[nN7b} "Dgrh@T3qqs5'  6x_&mviSHQFUw}->a2RA5_|FSYl)jpBkrlWP{o^[O\?Qw0\qV2k6_, (aHm/|qq_F22)hcHus^tvWT1La>s@U]?,1bzbuizb@r-T'HAhTy6>3~<@l-FY_D[OD$]wOF yUUXO]<_dy +eO1-MW*Mq09DA]X9fLQt(7EK{kGcuG~sgH b( J+Lp:p2HY_LUUZDBf_lm5;qMJ%[V{@ a| = H=_`P~ 21 {c$n rU27Cd{w<cEmO  O%M 8g %dq#x< ,Ug gKPcvxt)Sx7'b.nwei)3GNeWF^|)iO:G@7AyYQqsQ10!qW ;w@DeXo; )6<\,(1A]Gs.EVE,uN#|5o.?dAF~Nsb "t9~}e]ms*w&/8bi2Z**!x?^,{nu''mlD>b NyR5gYFQzaW*"Z-w D^,8X?u=pc1?aN`4|8M,wb.|pIX${TJ'B|<Ia`Rad(ihSYBg'7aN9 CU#{d+tJRINOFq_QSC7 |G.[qQ%t ?HwH.wLHPn! .">|f2Br*b!O^B(.=1sxV][:82<ai t\y`q~~pS.Ho,?3*x.W}`HQh!1*i*Op9T8xTx6[Cj|\&u7<h+_VZUvRTgKmjgqMyaj9VKnqWgF2;)E%j1M!eCqaIy8T$lSOo1Id6;6{OMely Z]yv ?hf}nyl!ep5vT7AdMf4@*4ZmlQ./vai5x@[ H4XcQ[IMy@\<&YLLv)R2*[F Q~39!,^k9Z"2)r _3 9s*6 t_dE1`5Pc|5+;FkSL#wz %"#@2]9 >qymk+L w^`~,/Q_IyiWS1'GT7%) MO8N vcDL8M\<I @BZuE|$W3f(i0 Kl*K:;<8`gJ)L`3!mc1Jg&Ow^ R&hYQV#~ Q _#<{J0c JVL D[9<!\!@ #iXi })g/jl)[ =e tEf$^fBL$ 4Ge'*QR38.|f o$_(qF\2/X-s R @7fXA,3j)MqhUlBz Z TGDK|bn z'sRZhX%L2P(? bQ! v</~.],D^}h[jn;b S9:L%<!Fhfyn II1b4B-s^zKK5ZA+h6l=:=zr5z  .%YStD_+v'x:rOj{qle p.>V.- ~AuF#u:~ac>uMG8., T;)ZSSW"JabJa 5$i 3yME`vNjDP 4 W.0CMP%]W@<5n- %f!9.p z+^}| >~]p!=(X8AP gS -FyhsP])]V+Ak\9t}vV$r&%:C^(^6]eoq#B(MAUmi'iL"  #OhN g(*Ura 7a|1F Bm0 p+p7:tMol> Tsf$HCwze4amX$5S) Rn5BX$ LZ lI ]vM'~|{' APj1=hhBW2[[ktAE`< }Uu {sP.<Fl',xPM5.Vl cO  &914b |WP)Ow+ fC`Y$MQ{5[~% *CvI5LKz`CL]pXq]#^Da?QWOV>sp(]A\0{jew0FZ+oROh=ZQm!*d9| hG;&YE@k.K<D\CGd#zJ3 ?giRY.fbh? 6^ 2@KAJWrgM #T*pA7 ,qKA6*?c\`_dd8Y{kqV9"84wa8Fz\-3.W340! 3h `:0g =pr{R}"Ld(OYUXj  p+~g  ;Yc? bBSmB,L~wxl'C5#;goKa)IZ^Qca4&"{<~':3 +8`Q6M(C CM`&G#Or[2/ HR*Zs0YhH[A+$Z6z=a 1`nh]2ykc9he,5-QSX5pz/k(_!S2{(~@%, }JIx~BGuNa$f&LLE Rf,{RKbxeURC( q*.SJxXx{uu.I;a6M`;]/@+VKl * L1|{q/ ^0dT~je(>o)0F&OG[n7d>GWKM&(o{o^  j3 ju.=<*XxtWrEVeV-eS<o:>>L>=i (h)le-jK:H\j1'}x\B) 5tx48Ul<k 3]JmY3+^^GWP2]:0`/"+#sER`~%u[u_{ 1;F2Nz?mO~1xJyH Kz dz}wb/Cw3t!sY~B_Y7Wx:<Zz2w ul"s]}1\ZtQo$Zb%qMJ+ 4=.."=d |^i`[Pc=_ ?nK1Ml!53`CY0o/._hy.S[]N(' Wva YH5]`g7dVj#/{ Ec(BqsLpe"cmJ"=bw3YKYfzt U(!,IDS/xWymau&JXupIvt EWr8YG B>T1ep >W>=?Zk2r3\ uwB4z0Dc^5[bZ#EW ?dD5K<_:3 nAJO"t_1U5VQkXIi9 J>-y.DfpUF3r592jSYClS>:2WHyq4s=G )k-PNtx~e Uqjo29`e!NSw/SR0exV ]W?@1k`L*_@VH{iX~;``)XvVGs5o<w*CNt}dr^v1XHRrX2u~8Pk~Ay>z\w[Ek'98 # s#tJ2s^zuj}Kv<B&'ZMsHI rLp:<VBL T9\vk X3}MeFL3N&O!hL/0`0EnA %{* "cgd&s`EdRi$6G|ESTVz@*eFWefr;#E9z7Kg?{ovcw\uZqn arAzP :s[ W|#x _Rbq-,1#{o(_{ [C4UH>In\ *)K#! c6#3xXs~%m]=Q0yxe=%Yv.NOO7Zh"T^N nBTr`6VS`!*4q--Bncd% QIJp8 )vlZaY3nunCvegf~7*2!46\*9/BWjW.9 =+wEfP:/5 q-|/*;)mD9m[ pV>(]b}NBY6E&WD+-6dcb]d~ @IKaFw'97_L{\ Z eq yOF#:+G4<k_.2:(D6|[)Vf$;xZe {[r2/k Q3 v2 fi viY @:KQAHPf;)z B %w"w 5D2kBBb= pH=/7J6lG  [ pGEdo`SAvD)4W>yo\  $qFK)]5C2Ugw =  q'q\d@=bk~XK3~'K  ?|:?0[:wT*dz3!:i'' [f2b ^ cfh6Z@xCff_o3xNw%o?fxo][:04+ 2.Ec|=G}O"w<77E5m *v]Ci.}}<EW,YZ8A'\e"vOut]Z-1@}P7}@2mys^c?M*'4dMvg25it$C!w]e67-Rmc\vi^M(q!)hl A[sVxwPUX[$L Y!A_0|~\H+S5^j iP5pI-BKSW`KNfxC ^(&E!-W!oJx*1v5{W!s)L_PNG O5I+/41/5_^ (v'ql=[%20{(9;:EiLK A5))W .!&Gd {#@:aN"}r  OZ5S;AjX8 TACIN> C 't^ Q|rur3m z^T px*v2,   = ) V9y& o  a%(Hu?zcmR3ZiDj37FV&S ,h\U/7 j D j G+xUN  T &j2i!4:LFXC(yms"0m"I lOcX ,  ? vm3ba"1x'=f&~[T1 Gn fX,/q. D_9 ,*V Q^ 1.n_o j h8r H|  Wa_cyC frvMVF^ y$&%*(2?  &(=CtLa 8 9{ _1 4Pf"+mtNzs;. v'{_NE!}ZA* V `aUj)w;I]jto RC Fln"g-[xgU P c  b"e^1= ? k \,`@G2  M*/H !-d.,*BR3eM7|a*'h%/M ZJ\ !PU'DWM m2kz8/+T6M)R 0bld#"#aQZ {h&@  v g .0[x} Ta6PT+H%4j"5vuB^PG#s k:Q7p/ n H #.S [}&Gp$rP W~/0J }s1= !r^S-$LIMX^  cD^oo-h O\V?K2jY}L vVfpQ4ct5.Gv SJj &!9ZI ?&VkbDO' x0dRxmntzPb G| ny~ C+ttF? w85.OICXyzX>$tAdFg+(,J@R _ > M{@0aY7{3>n2@:nE_@CDIMK hwNDJcc6tSi2'GBJ4)L *_aT}-j_QeDs{fz&.Ln(v$;\G-*S`;EGin?0c{JMdEu/8&,cD[K`pll,\::  i RygHGQjLH9GL# @8T v>6~?C&gfEL`\R s9jx#3/AWT uC~ B23E"J,4n]b:*gj" W\Fybvum3.kVn J<(T, ( 2%cWY&x*}.3XZ",wS\Ea;vwfX/y]F2@J !  W(f&Vq7VlJ 3*g 6Y:W4X W7|DMYu &Y ! 6. F00v\G?_9eA B vZ$^IN pI(Yk9af  &RVN{FDA ~SG(5icS ` XW 53V- B% # 5]"4D; u[}i12yzr?{M2_]Kw4}HQ?8WcK }%D>Vmxe) c0ef'pFM6 `+q]]q{X4 |coe6 w'5 JOk^@T2aI0&p I-J=]CCT>9@q uMR#3 z7iYj  XT@T`y0E 0 S*+#kEz 15z5VvIgXiD 0# U/% FFG%58 _TW=BZ8\Q h2e.W+j h'3&%E225i6tAXT3S Aa 3,{Mm^7AZp PlI.Jh;A01L e@Y_Cqa{bX$tmoH&;Zx<73*X5S!Jc)ZG[l4.Umg& 67&v3UI! ;Z16;x>'d_n!yQ7StCrtCs__wCka]f iv; u 3 q*=E}:a)si2H%%,|1o5YViQWU3_r ylfw,HxֈEB ":R Ay |K L'm _U o | 6Vqj` k4#A?I#e `s u ;{hq38MN  "}nY.G(2SKE/  .Ei\y;llPkpzwTZ:A_%?bOVW3("Y8$GKOU4V yHWMgp55i0"#7rn+C&(8mn&;q?HN J f Ym$D{zY,&);ShCt(E! 7/<6'ye&fPtQl^  t%Y >%eFO&fgpqYr1'JK)H xNrCYGj@? y  LcEllqZfZH!\"BEA"g;m}RrEC=}FXHg{.71*< ; \uNhpl;h3rri93[B&xn `TBpv@3-a}p V @ * v `gP&tM`C'~R~{~k-V"eS:~Nu_fT!M2'a My k wNr.j&?. Ss/>@p}h"wL6;]+]]_{4p<dv ou> M FM,S~`kjunKIi{|rrVc H'kFqfs9Yw 1^<52RX;>.)+D!.  wg8|E Bmpj  ,4-)ocRRpgNZ BC+wr<[*% ^ =&v*8!OPBYr5H*OO ] V=9M'j4fA> eM){RnU ; p.q* Jr~/TxV.WzE,b bXE du Wr]8K# q M9OTZ |6bImx[T:A)^o4q i  o o* Lae~I%{Z-^R}-? x EoToX Uc-Ntvw821cL'+z{#m" b $C2D5_Qa*0>=HgU ,p8bM =M~i6=_TMMyH@p #8h:"t n& %D(mu4ryp>uZ( HH/N-u2UprV;F\z834)=Hu , pw2^@nY5P\ !9#qvja3,^"|?Tzl8G~q(\  !,x* $Zmu>6pyR\6#GS7M:*;Q+IKEmw}N\\T -zhj?}zGd_T(nY&3hR\939jrjP0'N\+ @[lvt7hMfe09Q\5Y_L[Etl>G. r/.@ 2]<,.c Uj\4 |O. Qh?H<tf S 1j ^NJ S  c_ hA 1| rT` v +e34B <,Pib  !{1 G m)CyL] (Z o<89 @vJc \/ 2p ^2pm9]"%@  9bQu}aX f J q >O a W qW $P%% )P} +6sZ b "Y "K 9Yoz$w m i j@ } hQUw % ') NZ Ux2) &f _T6t8s2TUi >\c3t \Y _v 1* .|l5?K379 #B Zs]R @%)%lBMW6 imH|- A^k ' ?C]  atL5 l/j ]@m[-  dB3 |f[2  ~!`Le\ L/>Io `D ,< 5f dQq ,VecpOS f z u; lH _3p\{  {C>f G x( WKx&. ^ ^& I [ia x {bzO:E.g#x]BDs,IA*;u*Ic7MDFqbnu~!o0Yfz!F  W< W{]:iM]:5"$Px~p9Kf)-l# k6A#/yM<#sp*i<y"{I^\4ANGg6g?\8p4-9L=Q `A{kb:Us 4d1S!~TDG7|B%#Mrg~_OR0RddPt; {Pvt5@*eD'-jTxZpAC"7 ]uOK {E#&Y,/WE=vaPeCh}\cSQ$l*ap)H]u/>E=kZP>6A\[ : !NTO{Vy(p?y'sFgeI$(FM]a/897m[&cxi7xve qx}xSx?B~;H_xDL0f$@dr@g8A.P#a?!Pq \ N()[J JNN`l`@>9/1 x5,UF.:!29KP:XJ^?rO$>-En%J Gp% r3Sl^16u9m-,GPUr?C;<j{ vZW.c4)_-u.(s hxm&o@iq]]aG8;"fJ'S0;^N'~V ~DhM-K%x+%. @XA,`cc=rcQjwk=\CUujgOx#WDmq`"&sSp/giZqIIj&ep na) H im0` Cu1Yi.yq3f Z&6@f>zV!Rr4U9n#} 5; A~}5Q.@[ugKh}L"<+Z}Q V<(kr:l@ ;gLP3vdD%i ; +Ps Z & 14"?%'9AwM X\'W .e?etKW!RNhb*5m2$Nf # U P - )%)4kI%wn E^+ne9+ 39(5,"->J!|1 7 o8kq {`j0r79,hk}YNvz Lbblt!YE/kBl_CXc Rc7KJ1W\y|:1b6\lg;m ?%5NnJ-g [_5D aJMz~,3C&A#sF% j L;S1HL_KIvr51j3mkdF]K1.K@Nb%2y93U("Z;dHo ,qO_""}p #r!  \eJr |SRk 9 yc)cC;d6CMe.,.Gk2TVEzCEG(d}Sbf+}gf=~i8 \7m= e,)qx9tVt9_xK;/dI9(&1[tZxG*t`x\"L=yq]MIAF^wn -#|kVl%GsKnhtP=v>4~|[yD|Ykd>BFf)SY_Z;H0.F`L! gnzP|Vc}AN6dBmrrUwnjc$3z8RwxT0qzxlMC7Q"jdM{Avp\XLHF &b#~k#+dLl} %9bd+Il,)]R;>)B1S}QjxF=x4 am1-A Li=eu2`'C' !4DF2Je>nc jfkH{%EGKX._dN'|0L. bD]hmXAg9 6" o-z\1 s24]1=)J?/S$f=Fbw29fk}}U%,qEJ\W_j]g!X1}]k ^%Hsk[Qq 7H  ;v[*6Cl68:s$acTXF k ]@GqrP{iU 2R77e/|N(-_#UC.>=Wn5O\NG{n(J|];e3]YOp;gwc BwCAZ_YK}] ' 1^MwW>US^Q _.yQAo\/VLwo%syG_- *s4<VsGY wM$2()9V&,MS("~5=[+6K_tf`>-g@fTy%~R[~8a :MUVe`Cx-1Ft=S0c _(X(mu8#h38NkN4(r -(g8\rI{093$7Ya"JsV,h@,v8{q!wUcqwxoA+RYSQF{ CO `@$kqd8ADAEQ~iz^iptQ=l l_St#_ ;aKyw uH.nN@Y?lh3Q\J0$;5DJKV%-$1A^EGJ&g, p, Sm^GQ A@{MN?j;FId8~Ak!Vd!x{R>{?3. WH e B | {+8SF7Qr2|6*/9I!I-{NVN%'//8]fH >E"At#: asP$.>;J$jv; A->}B`eNC0 o/C5,]d-~RyXt*CCn#^f2|LkDdpt|5Kyc m3 IGaJK?el Dg0H?KRn!k'$^( ;2$^yHw(4ty,h4$&hV2?C#O7J+z,J5 '-6.R@U>12 _N*&8+M7}{A"GGg^!,f~&+xB#J BQv#P=${ @-V8}2xv4:d [e_}cw wi{ *Y K|z*C mFnk1`4hJ{m0X2hl<(hM0@Qc{-N* O]IoUei;%plEG(HZ&y"gA_D!m av0SLcA$iZjR]-a  w)m04ki\A 8J(OD \T{O0* LmTH`U'&/8&rV .M|_\}j:(."GQKb]5rA 6o*W3eioFt,N$ fO:)j-m w_N_w>jTraJ [w kVEwuP!$=.:YbWtgptVPslMC {:]]ZG=1EIX#.jH-HksN\"{u%[jSBp%oF \VYpSF_FK_ yi0 Nlj'-49x(s}n.KHc|kuFKrl&6!9|qAwu=F#fr$_\V}6}fIH8X,d;hg$3T t9*w#fO~DE\34ZbcFg-eNmx/F@ H&,1edE.|YC7>U?n,bnlzj1f aXhlwAhF8U7suEzN3G*U/D &wO YCEbJ_t<BY]l|pm~6sYM9vHHj;A eR~]>IXuv{Zeuv\t[`px 3*.C(RbY.-bVM>1j]f{{\ekNp0Q}^sC'@ffaj!|szy{^xG;h[G%/9DLv 7X/mT3}N?wSoj}qy~{`R gD@0++pO,nK$~k@uM]cmensP`XHkw`]  M-XT#*6,hkWjdhsVqcw(bKsFw<b3;m$hAB Uo}y|Iw]iIGzo2f`FRK]mM|} }3U"m{KI{YkG#|BkT-h_8C >\4 / FT}\uIP} p|Y]p1_D];:\9s[N X' ]%PWc@^ _'`cSnl$' ?Lo~$\ mdd_zP2+ 6n  }mMcw8sf/kgR:&NJ7k!Z2TsɊ1"(!ޝ)z" ޿ -T;&h I TspXy Q RdP]x1 z uYYyGsFx vtjXY$(] 9';>G!f x6~0كg+ 3;`%{i0z#     E}[7o^{Xp4I*T:7Y}:2b83&a"WI NvZL<X!U|Ln'Gf3`X>A6C 7Om!m1` SB&[ r&1k4{,| D?|JH;TJXv jAxNf(+Ch>88w[D5Kyo &O~Ω?GK0 {J F'KC M x.w;%Tr-@\;YU=GH@A t (7sш[ + " WaHMj< 6Vd{B eoQrj!}'SJ-fIGE qn:FW'xGVns( C M jR*J> ISojbH wl9wXLGz K5Fo#]GRh!   j9s 8(  Y$] n~Z[wFGUVZ,{{>  GB^V6+$F0 1>Outi^2pi?9[Glv~"t{Z%D+K;x #KC:  qS)Ed)5Gx6o #T g { %W=HUjMK*f5 G$@6Ce:A]ml's/@{(h_g 1OyKHan63B-BTO ;ARG  'gX\ M\Q1G:`| lk64qI3|@PL#!R;Z tO'r ( lfZ*6^$>)C{p0QXLf[~=K.k- Z.G1^"hr Ml]%2ptuFi? ^pZJqRNf+ 2en*L%z^c7-$[`X<Ii96S&^6UCUa;@,<r4B* vSQ*-zqo/;&)+*>^ _B!xZjWKm8>.$Q'!*Y-D" (u)LawzTK@0V;LN@ Q@0@vHX ?)a4vl&kywk w>;Q)NX L- wt <Q_*3p6X &cd')WF2-sJ=`y{@4>FUF&Q +IBO CFv~C?*h7kfwF bLX>~kh hnT!1 K!mEwjmfuw_A-fHq|>Y%)&hM_y1[^yeb]=c0#`e7 Ynb@Ks&C2EnYt2S&Gc`nE6Y-u6g J 0E(M5{l@!al1qNNbj,a,@%wo$a>^ *ul>ZoZPuDehPx[RK1Ja :o$J=;9Y|cE}#.eC78CRP~!Twcq/i-v>w~(>Y]\tWRDx\rh`svuT+oct>Fu"nfdTyyUvTh(C~++3'a mUmQA"2QO5.(8O0>x[$M50H]f1.f{$ 8|2!l)={E-g"**JVa%@d,h%]- " VW;kHxDGH4Y${z3Xq;&UuOF4W%T IgIcVT4  ' N6vsh&c bvGDvie pzt6:ov`6*f_-a./!:"nm)!,?*U p &kvW" iUlOH.Zj1\^a. W;IB{8E!h]~E/~lS^}ae B +!18?s\:[b=&Y6" Uc.k=~>YO :6b9, 5}]DU-c&&qw-e*0w{}sXmCg( 0&m!O Zj\V!B{(|I"FSg-M ! ` u}98yb9LkZxuNR?;h6,u q^rK?]OePrw ==C6  )KkNsgOk1f8eC8[j^l-i9e#6 uk! R   t 8/ o+WO]\'bgVom]4dpz>/Zh&MT93g%AX  2gzR%qj?Y%d3Zj+'&`?d a]=fXWH 0n;J}qc}3=~Nouk/N!zxU-7u @lP]XyjA';5DT;I=Dn*JWUn :dljGb768"Wcv7/HO`msKh <%q[Q blL rqv=({y/T]6XXu;Jr@g>^'|i-GwU3I#_HAYl4%N2^$h.2!{2$;/BH[0ydS2b7*StM~HKA.Jg fU  ~]-{hi25D{/ee/+p< ;s q>gH[s 5Oz}^tJZ!_-b[]B'<yY8ex+e!3nL#^g=m;. >"?%Q`a-^ r\@ U:fg>|-/ 5<0 ,#"L@:PSN066Gw=Gb`C8K#Sc *?[\f# |  G H+3 uvf(OD.LGW0<H\LT2_c9'""<W&<f!d150-R=DS`<M Si@F0Wi1h4,Y^pR8r:M r r Y\sA ;@fAlws /{sE )&B_.M*eZyg Vk,sNAnLz,w)f r K T=0)m[.Z\d~?E;M'~n|dt=5 Y.'E{D}s2` ?V\4e@E9_0- ;_!Qz]a~w>0L} zFO,WkDw"bqdx<esEk@Zm[;?&Bz [EM7[JrE0Mrlbd-]N^S(:c\N;V/ 73w.4 Qs}`Zd!#VoYQvLnq%Py{?HXy<)OW2.7kgg/b;_ ^mf)G[mO,j7LdBs:*2&88lI?VVMSzMO "+bYQ+ HsS88?!;'VS)22>zv9CY7s[+ 1eIZ}T j)a'Iq7>Bg&~yIUh./w/X<$R(kBk[&]`PkkJR'Q _=`:>6~m#gC8;3c!|2 qX3$F!c,% u$?P 3 sZWt7EY1&7z-'^|SEH_=!l4lY&:Zr$"8N:XD8- 9? ~>2&Gm89s>YTY-M^4Su)}0iOp9^]~r2a\| "vRI+g$=},4A63*`#MDY8$'&el5qxJkPK|i;5D J?^ed{_r5YU[9HQc0VZHa_r BiXr  k1B@ L wkZ4SC97ZEfYT8"%Fw"AuyGWB~_ pIIY'W"*zw:.rC'Sq_}6C:;Wuuc[=6#2PJz95#?n+ufJ NYlvn+zZ?z TQx 49/)ViT#Wrr6M c+;2n$vk(AR=51^{*oUv;21Y/DY  HFa9/w[Fnyb }L}Rid#fN=~bw>L/ u(].M%^ zBTG2{p^W4{i$TgCRB*5|F={6T 9!H`y{nqmg|os%)g5&U SpJHREe1{_c-r66% pe>-I&/ 8*wbFcw Si}N> TD9 =C28UIEa|6x0Orz|_ prpuEhsiFW<5[B#p<nkycpvU'A6BnBj$?:o`qUQ|}Px]ku6]8o0n+}QTDwd !unR|3P_H?$" +$8M {f?Ow_qgxZDric;keSb4u{m3)7 ).sg0_jr.Az$IXyRpzOZjKpTTw.4E8)9h:?bS%)D"`pN`Y=CuA5["QX9QA`4dG~ AF%iM0z[\ 6{eM?^Lzoayr^^z&e}q@^e_s]b LPE3nlht@$y;t7o|BnM{]8lT}ZRQg oY,Ig5^NV EgZRehf 'vz"?Rxea_5HRxQUBrcmu|rVdfedBWfBACbjXg_lc~\k+q ]L(R<6u[d0}8NwaXQTHl(wrDLvz{e:((O~U9NArDk?a:q;\lN1^DwaDO%= Phce>+mRAi`qm2^zaY]=2-ctswM$$0A.HlO>lFqOhuDv~yl|hljD4}dyHgxfsQ6=OW5#|fAdhx{79?C3m:CzgY|Fzkwcl^~,0H-0B*H7 B)]&v\xwU-LHx}uzD%w J .7~fm'(l.'Q_ uQFz`wkH*TjJNn(90.d?6 bDa=:M5pf;Jb"=dsrV6\6s::UH`I^8m5x|G+M9r||ZoJ8 )[6QymNay?@<41c6o.h=;gX7'4\E,b-'rZ>E*Byneqt|w  Q_i]&z5\o? ]cpnT3L @L$4U\4G8.Kws[_Y]u-$e0>YZZT3aaa}lcyu{.h:HD/^P nGdZQ(,FKV \P2c&Fm{~#?[N{iP&>&0\hgd{skOehwnnZy)5x"#[_C@;WkSzfd4[UEI=b|=hn Fbpbwa3{an%(MSP?6szvtmw_jZ^rma$UJ/JS3X@FMRA}[\M?oUciGPvXRH{Ss)ow-1bv^V$eoAlwq Kx?:-Q\pLWGuoqRMnYu$V#h>D8ILoO65[kzAbwv ^E)"mnPRZ@nrVzssrx[fN|ryQI(B)Q-Y%0NLog/3 P keXVRd$KG 5^eY0"GLU_^^mi_/$Q;U+@Tq:3qa_cjk&PtSTiSac^HnFMTSSQC9X[E)0#xErMtugllafbVY`~?>=AUa`0xzRKaF6^tlruxlWw215FvU ;atw@85,R.'HmMHG"BN:~)D$)AW-f|_re_s]QP2M4N:kyrktZuwg\s]m/N14[ob`Kgyd )-<':DY%-3QksO ]: A%R7!LA@o+qwu}`qxy/WOuiX;VOC bfb89Ru4"WeJDwxtBNUw-5omk3'B XO6&:uFberIx^]a}stjihhrK6HfeQT<dYjTZ&?jp52( 5>=kxfLL6~lydTe/ &>(;_,kBn?nmnLrpbc}wz}n~a{x[/<&)%[3^&{{;:k,b'7 / d_10L% 'BgxBSMgK|%Mlx`AVPZJ~dzlZtodX8Lmjvq{Mei$^AVu,$&gTty]=m7uPprKKztwC !)'Nd?$uif_{Gu|jy_Jc~jUv8Q>H-KM5!= ]RlQM nl>cys|0oJpa<)"RB&`*`=Mdk(ikwn[ilsYg}s?ccj!j$msol7_mvYwp>q1 6E =EgI)(CHhbsu|VOgqwdloO'S[UmVb=p}lT %QJ z{mB*]sb^PZqYdnK]@h~'87='2U7T+E+=?c$4|ieL`vzS1i8'c3 04$ iozBx_PNSGNe On%$~Y9Me*k]O8iVqn}|.*qg*5{y4l `j&VI)_sOC$)YX 'Kr^<cS9k\~{I-*}8519S"[8BwW|{sC6p\^>c^5,82BJly=NsW[{ DhD'+ e`kOumK}z~vqzrme}ZTIvLSsRHp\:79;.sy}K]dsq}I^tEhpzYFvelaA$BTJ4 Oh2iT:KrhdyvJc]k^|qz,&IS=s&u' K%rztcZdoK[]Bkyf;{psen3{$Y&63' #U85|KW{gm}{eZ$E'`1+@ "S/# GaIuuGzoUg!:~6jjmN?k`IS <Im~BE#/w:/8syaVq{aygZREXYYqT 1n.}zLT{\p[HroCfmrIk3DVosg?x!@&C"fg]WNf`i=d7[V5F_;g3&. hbxhRCs\#tc5d@gDL;|=IF`;2'B>X:"v&i!8`(,bm{Q{iza^c`^E>H&?.Ueyl4zA@+oC>Y8:2*{C:11Mg[kHw}Sz^DB"]iJPQHxk{O~q] j}t?Rypt|k?s;Ua^VeYr}i5dx12}ajbTXoh[r#%2+;AmNtl\7lxb]UTjv~[dclq}pt}9,]!(~`]EawmeoHH{SS]M7]wnBcjOd'Fmqne,=&[]fF(:IUwBR]6taDyhxbi}^HWLYZPM8:s3aJ# 8N qMnkUj|X_Ipgry}u =/+ yiC%qCor^O|tqsn8e]pqt{|un^uaLI2lC$= MV^c_d{y?>h3d -ty^"_xB,:k=TlE5 M1etu{{vvy[!p5r4Vq@?:rC,/&,{Sznlfb2>r)[tdS}O+Aa 4pa`{% V:2j4 }UlCikyb`'|u0/m,[D\oj(0=/iyf_sRV`;Ml^Pko=j5{>W=wmo$& A /8&05Ch\3aXyvii$o mNKTfX9f[~%621!T3/qFWBnMHh?EwY}KSwdX. % `nS";EesdmND`{lNx_qKkP E_F15!|7roqlQ\/FWgcprk2xh~Cs{6 z'Id(fajgZni}lvVNQ5iGQX$F~8-5 %cHTpsJcQDg([OdF@fj>ysV1=TSqe%acnwwtKsUfl{wn78F6lmBbz:`A4Io+N|Q8[37z:i9,LMi+'d{D|{ku{W|y;-MP/,O?GikU+}EhlK]}at-SGPuaKXylotO2wj}Cdbd>dPcjpviaY]n`v,OTG=IS)@"a}xzw`aVjOo4*F ;^QJX^yo% 6 M\2[WSMurs^]rV6sc4/q@/3Zb RRfzl^oxYb6YfEf8?C2RpuZKjqVmw 3!-JF*ON-pywLbwVo^0)_Hn;1] &eND(  yyh[`ZY0'CF[<&@QPXN\OR).dvsl)Q5?W=W\evU{ZH{k]C{H\a4&{t]rnj[X;}`%R6tS;,NELZn5>]xvvU#(&;iMh!=^@=Gx6RztiV^ihOkJjs;5n|wcm5ITUD uYgDD'D?hs@X2LHy]OxXn D= ]H(pNisp}y_y\zfxB`z0Uc_:N!61wC@|F`@vwaEZY]zZ]oCDNSk{",1r;e1aUEzvUNmi%L|}qzphpYjG(x JJaHH0+%iXjuj#06m}T5M$Vb6nNSw<xbhK(}FNWF;Ev2,\!kf[LE*~d&vE=1 [Sh1S yMeb wlxKY$Wvj}|PdT zn?gi]7Q21ZT1N^k>dy"uoi{6gVZ:2v @YpEYX`lR,#OkP}eu 6!6:4IG2SsiWd](m}<dU+~lh[ .:eHW, >O' JrqW]zmy\r^dU^[VcXXuxAs|70(9N[R*%Q]V<vn;KR=v av0 }^5*4!5xx[moxI?roLB[YfbOZ`^ZTjR>*K;MCafY7Hx|MyBPp{ym]h~rh\F/fXPb/ !I${fu[CevBEQaIN=Ib9gfZh QI*I'0hBsy&cqvdH^kAHujW5mghmIb}?y[z\>9tID)r!W!aj~bLo4:*]wIhwes(ECJ'DvaRMnhyhaAz 5@h,dII"]9TRpK2pQBjV`q%4=0$[zthq[YrN?Mo0,_dl\; !5 r;C^\H,1' W 4hDl;9!#]34:.e;XWc8eYiwb$ >HN:{.eSEGm\b.61b  @n)GpCILEaGk/m5 g9o3GLB_dB0kP''l./o maxu&jF-%|_XWt@bYD6g6T~d=iw67\wSB cb.^n7_g<6ahpRaAp `< Y@[g=@'D"ERqa2hxH~P[7.$S  c;Ae:YyH`h.&KuR?]uml z[nVP-5 x)g! W1I[3. }GqVkB(!!=Jq(PA 7[|{'l9tRkkBeB^Z[s`!  2<,&F0I?LL (`'pkBGHEr t "7f,?/nEt\tRBfTRn " XasDR@x1(Q5%c'12=i +m{P0:iKJl[[z7n#=krPG?Jr 1xDAystOX|-nI#\;.XvP!lGK%_ 1"/j7OH g; Wk Y9 #ڙot+8@-zMz 1$]Sp;|Wy6$3C_#z`ئMH? RӪ^]3l>\.- P[ߙe M\ z Qg1( (IVUec/(GoKIڂk&i!I$P6 W_OS7'Q=JcWo3E^8\cIz!D>0 ) > 4$TlZ#N#g>& Y*Pm  "EJ;- ?99'`%qe"Ŵ a 1C>/Bfc&#O ^$jsGF`<Vybu0Wj0I<|K |ÿv T65Kޜkڴ 9cQ"*$'zF TWX2 (1`tYItF %X(qRO9۴x8&a-=P%= 8>1oN5e/[G d,^~:2|FyEprX4lPIeM֌ t'"U'mn By W!a| z : `B|jEk!d0YP$8r ?Gjev9c{dM u$" {dd  f p$ c9 ;5]G6 k0r q5}mB=HzpMU4NNF .l*00 7.7QO L4 3_<:x {x30-$}&jZ c  M4 %D"S> \ hytyCrqwB =u,A 6Պ *['#+%H LmzP^4;; { "w!<NA1x'P3$.v g-Q]ijwU7  V1 ) AϴA \7 | r~ Hq 1  /!+Thp SYWBQb g s)jOi. ~{h(~"m Zߧ LQ 1 ]"~&hj%^2:iw#G+QHs % cz: P "*% ~XB mq3E' F {2${P &y:]K({W ` CUK|H8UDslo Y-;'}-(O١nW W)D(Sv  !qG  9~(a;rT_'p[4l]+9\#񴒻}0f ?s%I."C`_m#? #sV0o S -> I?V=7&}D8A(E!Pq6_sf,Q% JiK%bQf]Y -#)\ B B G pe  `X|K)xK }^k v\Dǣ 2"0"'M<3fRPfݗf  + DNy 8BST~'WxS L 5 uq,*"r #,9&g ["t<  jn13 R  <UBal+#).|VZn #ķg '&<tךВz7wGddT Azy'Gx%\\_W)Wnd]t1zea}2 m"Jo>͟ zRZ H" a B!V<2LujO}DR5f>R0|^"865i V#({ @ Z*Bt _% ]c2>2,N$L6p3G >JYf gC W:!' t~ԞZX#9 E_7/@ "Qp ~ pl~'Ǹն 8'8! :Ζ_G[h Gx0 2v Y ]_eF " 2$O0l6778[Q{X%*M%>Ы6=mO$sB.  t= ^&s hJPo r,E0y9XiiX"o  9!z* E-ѐ%\C<xV7t O g U >6* W$Zwe*lk 5q}#a4?zGoai &(!IAս* ihd *."7  ?JM'=tv ,xLU0sl -{~wd"ʵn UM$&-W{'G  ` .A \MvL6 m'{I!U|>: }͜\ ++%Wۜ׾2 E s TO p  y@f H  1NP:#Q| 0 &JyC%%ȧiu db#,&+ۅ(f !hst -[%SZ._ 'R`(tKnS@EoL`+7U +޸0[3 "*5[rvQ?NI ", oj6",)&'X:'2:Q L33)4p- ^&foz;dԓ|Y u3( J.=/p? |N.UA 6fD_:JXd3t\v%W;xwc0T];] D^%&r(#73R 5Itx lJUI1 Udr0#&}dXN}3&>[ +T+O%R * u1g`Q % VME1u}gDk8^e_<\rlXRVY8=N~:&O"rTcl& b  T#FQ3(KV~_L/uA_]V57 Oy<x+{& g6=H  % _@d$Jwd RqdX1hN2 ~ޡ8. x+pR`v*D2$a`rH Tw"/\=TW-h&fTU@<]A@Nz+$ jYG~ )JK)OGa{,atjZmf fSN u%x$OU 3m)g$]a   G+fr?6 ZuC nN$PFV,SO(`J}?5Hx r9 | vOXfhg +, c+OK+ ;}= RG|-n+,VC"8Fضb@8 7 0h^^F LcVC[%@ HhR`Z.4=TGG D6@X M\YN&gVZFj(p Hr>" C( Z `lM=^u?t|cCHW^g3Q*isc {   I[1    q::*me=Blg[-(*iM7kA2 pj@mINM#  } ?]OClZ5|1z76UB *}R=)DJHE-3fu!+NO. n wu Z@U Z"=Ph I$|^@KksT*]MfgE&;mUxf j]ot |{ @W x we&u=/^Zq|*f- C y^VXKlhn c03|y O Y0h!"ik_2 r [ k  ( sB~(MpfF8o*?mX++cYx_;D'8Z~5X|z l4u[ZI [FIugrFZQ2"w@F0}t}uP2OY@|XwT0u isDxE]xo  #U,!h d4gkY#d0y."[4W@rB<NH|h@XR9^SKRb4dTRr$>WKOOTg nH4  %S5=pO5+cR?,Gf fU Q,^(ym`MK=${K|>~6l)xyTT;=HM%S`.r>Xi#X|N3Zid)^FGE{Fr&z2ISV;n|72_N{!(E>tzbXA{dG x:Z)fEj_*JEy1?u}8PZCA( hhps;eft!0),RUGq*V'4u-wwYF(u5:Ps_i}%8'2=8 V~YOc(NpyF.=JM.QzfvRlq J,hGN$\tY_0d b{*T/ /jX8!<#{VCpbj :plHK!SIt /3&iY0\Qv9\n^/C$( CtRj}i >gy))@MJet9]BC hd#vsH7|6v0_\~M /Gb_>{kO\@dnA3 x#BTj#DA ]uMu>lm)mu0 iX7pBiMdiv%<\O-pj:SRP cRWj1k2]5ZN qU8i!wdhRJ%U}UOO=[:D|Bqz_2o+.UUfx~~F(^ekrb *56RBl t *._g'K+Y\&!Re,Fk wW).}7(nDskSQ'FYxnPP$_RPx%1klYqKm>,B{*jJDs7k5D@xSf_e\*#+Z^7+[h}g;9@*DiqH?F*8p=dc=?XEx ; > / S 0o$TzCHY]v1tHgc,V [?x]+D$HQ%j#)Ye}TM7 T)${/ +| Ibj \g'@ Ru# MoN]B5M |,<#R(J% } So%ty, l MDq,<4] !"05H'"kG3/-DBMhoE`/ I \\"1b?L<ybp=&)Zn )]"nkDFZ7u2V 7 ? 3{cv3XaE[T HtNgx:gR+ 6%y O{D#zRc8 | q< h n<HN;]6ic* re N. $ G:} i0yUm, m a!R`J}qVPAxx!U6( k \ kuzK` $     4dlC0-reV_ Wj8 $ L I K f xVv~,9fm2Q: wr#EJL_mW$QL%l1P h O ~3]XP9] Z15=dP $7G)a !5~HT24 &J 7 !H `/T tS%p|R3`T)\  f wxl;Avk!I R]l .@`\ 8 #< _P r V 3 vy6Rt+qhX~w S4"b2R&$Jd56YL{?UN"W;*2yl~ YU=c@K='IY=g=1E: l ,! Pd (_ { g] H3! w;.93\pO)AP!,@" e3" D  V "e 7`OuHKh>F1[$=7"W^QC~ 5_X   TT=;ugziqHJSPF!b>o+(d3]HKzVfx#$  * k$xt:kGi>Ny 3 r>=F )`k *L,$6/_N>zN ]> +t +i 6 '>6WO a(Of7-R*b"9 N @Cnq5 ^80k"xrNMcm a s  4x>] $=aXtci{cC58qR%!.,  r]|+Ts58 / . vzE;oN | % }12D]~aEQBi 7Qa u y91,& yuw M8  e I3H  Q$kt; #p.f<;{igHN99)#'(AkX M  '~o<   f .M%lg=M`$28X67%m;?2Gv   %a }q FYSM `=%zjO8AG~p3%VR "c)ۢ: >Bl21 ZjM{ *  87IX=4 T2$6Q;sR9c([J jfU8ޞP jgyXh C "^nr$Y3Er47`![gCeN_Lw9 ky {ab@X(o [|1 N  '~fF\.*e'1v,U+ NSDfwR V}Ι[ &* aKS9 W9  K J= + WC ;%9,"?+GYln nR /7 3Y ?ݷ* {e~f/ n b 2 ,m++$~[8S#Kon3v0Xݟθ0/|  *ٲs0 &_:d  ov&"U&a"$-Ts.8,^Oo : 9,9 -. K c  VuYhd F Tkl%qd<V}aA!.,[(?C|) *'9;w+mc۹$ WYR>{ z  RJ[3Li?U9&tqO= V8n9ͱ(S6=k =h$I#3}Dj~W\8 f] Y0J pd/GL<=V =s )_L04%n9115 U"׬M  6CisMe\g/l"+>b^={\?\W1O[?6݊ /'k01 P*2ߕ! V xp'_0 $f l(&i >V{n>.Z% hOLdXkσ31+Y ^[f2 X F5[,A+A=g@D! >  zE  hs+Sp._f 81D=veSV| *8(@HVT;W߻LFMG$3hg Tl{BxXxl  'l# cG3 >pD[VTcb('x  rq W;Gu7O p:  {h._R 80< 5Z&Չl%;$ y*U]vj ^  UM {  !_=d D n$DM{OY ('! [fjUX 5)6by S  RJgIs wQ bn| OxJ3[" mk t  X0"][  w'-\ {Px^1YTLY=9S m?iF}BwO w  N &O x(xv2Ks 8Y h'!) : G<k kUd]GLvm0'Le& gvhO I}x8 _ n/$dwhL dA =-< Er%7H~71u"!X $Q%fx_!732C{) MNk B Xt  xkz_ hj;kLet%WOC0F kq5Գ _!q Mh 4tgu `~zB  ,L$ 7cr#Rjc J9XN8P{5X /UE &Nq/G b$E|I y\DZ3g'3q@ls(1SkSb@uKi(x2<4(WY|[ F 25*axwpl#$   =_!R g iX EmRBgds hz.} P@7J2#ڱQ < | b}.s _RmM   n#na<  1[DZ6`9C*36N6 CU   bF \ N|fbYF{"  $[:1!fpWHST7Jz:jDY 1>%S UP\H ? m=#87KmRZl54x M k'/&H uOI2CMyR5v3H4>5  :zc#a{P <m w, 3au` }@Tc%M A Nn'?MT7sD` +f*IP< rOkm x  8 a N(btYY)vcPn^NoT:'d!"3e   A $X^ 1[V{T X qgX Via%*,Q+\(mYF w 6 ' +S~ 2gdc$Qv_%oD'N7O2**Tzhy^eG#!p1r A/ #^"^ PJ ~]5#d`0Db v<d RuQB-[_Y9CTDKfi hS!_/$"U";7 n g]U5@f&k42PxF?0V"43> ugg#|oyGdU*+QV_{hX.Ue\'n+${" nxYQ7Jsnya8=A9:aO-XX  3rJ=bd{aON#wy6x *9"5AH2E;OEb@-8y!&D)H nh r~px#gB]?=Zz#'rAR`"Y+M"qAHK0 5x[y\8 59TVFv|P7l.C*D;n7\BcH0/DsN="]sf{^:r}>0dds 7}W /#H9BkOYU-|/@_j_a?'sW'5j' =Dc[@>cy4y!tlSfy1ARB _UU2&:uZ P[Wyg("Y9]c>}`ntO"q/b0^oyh~JA6- zn)Z==#b+p`5*M?a30q@-q]n3B:Ei=M%f,ERLVz:SQFw";yBOAYWSw3drk9;(vV8{nJLpWno)iMlfa>.t_N [Jo_Shhghn P<W;DC :`fH[A$@oI8k~/wjAX$  *"0wfkd`7Hwk=(9Jc{4.KAkQ'w`? ] )l d}SAr8KK; > y3t8t aL6y4UJ*wwL "t5<> Dzx~dXTnFD 55[&5' 508"p9\O}A\ Y*$#8n'_*nH.uHnw z !IBEk>].S`EJ6uMG/.vnzG pE@L[! fuJ}Z~e+Rz6 4[_KpO-wCXG!<E)V5F+EWc?G\M+U|42-rT'Mf Ac )@uu7g^MP=bJBh"Ap^SwhF.+D>H@c=o.fu<Ty`1nGh*1K&Fs^_Rw k'LMWnj77w tt3 #94o__J? ~# ^xkxcWwVJ D.S%7u%!A}%#x-?`+!wHTmNAStg PVzK;=F5! 7'0Y[`VE,m 1LUQOL [O4V.;Cz.Mx0A]. Y+p\q\UEwPC3 e v~FSdxy ht(=%_wmovkZs-VS.,+Es}-#'!4 _H7%i<s<>X4;O]U?~yIT*D3X)IS'"r[cFpygEZEw5oWErZbGBI/H=|&T"keA( V:^C&zf1 2K-)"KWHMS"Lt[&IruS :6h6\L]AppO~3 ne&w;0$\' )2a5l ` hR.Bt]23}!~rVS\"yw,s][=Qnot!B!|XjlbW{T guV7jBIfmV(}K7 /_SWIn,IJ19k8P^2}dfO=SJ@9Nv_NJA-37s-CH_?fvlYQwTlL\Z*c)L`U)(AB aeG{T$SLvZo%<cz^=e{` 0!)S=@$dxS<9NTkQut?u/AhSbA#?u]~kD*dNxd\kW}sDnSpe}`grphhU,ocfSG&u_t1P{jaG~n4!zqWb^XYbkn5TU:kKncX/aa)  ~#V~/Th}}ayn}}%q2px~7A1JAYZA#TFRomjhU?aeVnTiqn+'%`.D&fwU=>LiF,oUa;l~lMtrj_UN@[#zaVRciv"PGVb]\OfmYpm0!ALcPo{` /!"" SH O>WNb]u48,5! jS<?bYEz|PJd::I}3sy9` 'PYGK2ltQA)?6$Yf@B16p9xgyp )x%i5#C W_sq%vSCx) =WJXh;   z+ QO}5 e2.Y*)eL+)`4NX>0^X Ki4]Ll z#z@ f u TwC:y09/S#?n.jǤUAO  u8!"h) 7O {S-##P;;/%. YXj Y!rœ o"cPJ 8 d> 4Yh^C;+EL^CYH|EZ(DG~'gC `  x  1N> ?mtxGd5Z9,E$qGJޢFY&Z pq$Pc#usI/Qwr 6O`'-dy E]\(-&+{!}wX9S| S0d 68=t):t+?-hf(Bwv}bHQYHv_q[ 'VZ $ 9". JL<D:Y>2c` 4p1+a?@%JB ( n8^ XRe41L|0.61&4<A zp~P*  Mfrp`u"e|/v<kz( :(M d"M %G%[DSJq#C&dsg;rws\:'Ae k{[6][~8a;Gi%i0W %!o * N34ApF hR2I;C!+W2%PQ<EmcLh(=*#/@;/FuX@#v/2  $$,^߱^>bab& _ *v+kH(3Br9'@ -/7Jk fk4tU22b8p{i~8=%6"Q[ -432]Jw& 6fsW ZsN :.0I2N#W$g& e |i}` 4)Cxhw[.C4s@ b 6wX' I g_ Y'2DIAXkyrI K.m{ e k X &   3e  ZU '~h=:&G}%uDTSec=a I]A FC:=#g 1 s+ sM< +x;5i.(8a)B;UT|oHv&A d s dO55<1+9>[|!r?fA/ieL(`B7/ %f D  v-C9Q}sFEP'Tc'7j :o (wOR'T+QG,\ y  I'D=Ga70 Hxg|3a*v \\QB xh mKw X g 4<hM5"XBr"z(W1y^1e#Bc 7o nXQqa%j1w0(kj[fc((X q-4K ' JDJ:k.<'#:fO x`lP&x()q' 'J]!-0 b+%'Rpi[TL%l8O8 !hM 3.b) a< Z^ujr,1R ^ y m\S}\wC ke ?)Y4y//1z<|! &? xvz - N *jC#vIj / ?l>x_pGk,3^ U3^I Fr/fߓ:h۪% b   |]r x@ IEG 5zL@{,g8:Pm"u/-)?  7!m,42 / k r` 23 X1N@7!DC`DY) Q ֐ \TQD0uJ)TN 2 2 2bFl{LEVi, "> [?V'vh'5O Y4 Ngya}Q78 * Zk;8\l(n(v2) @-| 6 5LWُo#9B=! EM=0hve~ e ~neAgH]5F:#&B- -F I0 o \ k$wKVe]# %" (U>wk ]s{Q)7@D/k' #UB lCbfUk g o 5&[q}6$S- V3""C1V8\M7 +'+nrC $_ztd-r35p  |<r5K#3`GGrOy7 42X4sUP $  ?&. -x > Z^ OthosfV7B#:\&PS5,d80< D4^N] 5 p M v\ ] i. T14od'mbWc4==nk+e' ]GrH y_8^r   $a~/ /doqaRi,Hh 41(!,u+} D+QPN1oK]%j&\@E /T{&%H C_  E )b.co(2%77sT>x  BeJ 5v gq~9D' WBVt="  rt7/M Ix.@(Ln+MN,~24  e r|Yb$ G g7cl'  RDgX;x UNCe:\ (%E] s |^-} N|L?HHRX  } G 3x., ~$ "rKh2z|Fi S M 4OQ& 2 l   u /)Fqw9Z FWR,AV_( (tm* `0 XzpL ~  1og _OSB7/m mwL'N wU R5C =2:'C 50 ?Dwj/XAk8T4 Xr T \ jPJ Z~-  U   r lXG'hi!:RU *m8;w.xJ!D?=>  %5 Sw v thAE22@/u _% 98  o0.$ ab#a  PSWpu>s Mpb C# au {27\Gg' 1< Y iaFMf .=h5B Z2e b7W 9m85J :9K#] !7tbx =_/jm/0 COd 1_ E!  L& Q  ;> yL V"p- t53#tW>k DP|G2+/Ru> 4j;gyYNeqycf].a\I+ [}D4Q@\X~0=aH}vaq=uX#]g*s_#$tG^7atNy@ }} br8Y" $)`U kKEmN (z B 0m%E?X Kh= #r =q|@x>q~rp.K#8FvkkPVejD2 OxCF 3 ?{;&=m l~Q ' + J.l` 5Ete# kva1*.WTAgT,Zc 7  -/{@#.Ro2g( A ,$ 2  jd8 bHNxl>'$ G ` ]lI5~:NC[nf+W_{e]}.^'3sXtCeq'm  \ -yas l^:c~FN '+ V + !$%o @o[I!@Ps d N$EIbIsJM/<Ir>K2 >zyKo%3kw`|  JQ3NKmP{+uT`_= &[ SAKZT^"C zpvRY$YVN%GT*s_Ci$;Lvdc_ZE!vO  u  =a xk/)deynUE=&] k l  Z.0}p*rhCIS/I@@ :o;^i LDv zr6HWHt<Xv0tpNi-,_M, a M | ` g@q-_D7FQR8+aF ~p$]dt!Ly P.n(5Bq+}oa ]   I3e-Cs6~{<iuLB_4. &NgXw. qidVoCW <#L  > *h0b] l0~=jcd$&- CF.]yu GuZ@ RA  $k - gJ#'( &q~!Aus69ytu!|;iVr Rs=whxlM e*tjnq^ wZBTirDW{W~@LbZU]rJm!G8)q$`m$[QK@\u=5H?Iu;|l(D$`QPpe+rK-|04@0 u fnz_1&]:63H(g:oJBVOjTtCHptb51^ N:)Cq:F^Yr+{JOo3Qpr_N`&z8VprAMp. 2S2UOi(\%21Mm$J7o]0vm!hph0$6 }NZsnwuD60 <"3B)n,k]T!s Dl$(QP0?H\ JI }{}HP jBC:*elHs}QZB62iFl9Z!m wXcim//~HFv4> t;r G? x#<,V$>, p,Z Wki6^5@D_-)aet4R%v#iDaXM)`.;x4b@!]/ "d$/ y(A |T]',G _i 'g'[Y5r6e%5>`+zZFW|U``BW|7?~& LaYK +>F$ #g LjZ=^`S@JVuEbB>H5>Je,P;%]RK*E-$FZ{<$9xPa &.s GP2#8P u+};9X,Q3- 7>#Z >V tH T ff * xWA(aGi*H, IB{ p >hf  epAEC(W<qfdsk *k6"/=~h-q=WBbP S y{ :tTMG 2 u= SDwJ!C m>G_8?a .tW=YQ Xp4N@W: ~-hBH}gCoVP[<w tp]"H)w|^HptC51G\AhTQfT ( YwFU:uf3~P `" z!U1w 0e4P o{ %K7>oUsQa- H,6y5El^p }z PNE ,ng>-,w) ' ^ md W fX` 1 r[6~#BWS C @  my? *u'ggiY3F?{kI9)fM1+ e:?Ef|[$`G0cYz6PjXom+yXf&DG/EApF K702/~},hqg%!/ ,-u_8z8=?~>9iM9Jfm){H&F'^/ rB+ nXd!xt!s2lFV-x I7e0X#3j=Dn$iW-$"=i *%IGYCkDdK6[K'zt79~[b[+<2k..)PaRMC0:p%Gwd=fbtqP2DW'|H&0~.,AF*UB_ey7>JqB`d]:V pK|ow4w&`~` nhn8L  6=XF~J^7 1`SF?cUP g{3YS]h1 ;"O&l"3.i 7Q4OkR,|;@RIg% h"DIr;~F_ i,`  V$ v@fBKnt'jk\s1k-v]>j)tzN.@WqrH0Dv TFvkg$mP(T-|Qo% ('4u]iI@@g3@YjnE8&\md{<\|(9N[XEN^*W 8B)$%&wAeX)/| \Y* ttG6pTX~"$ C&Ce-11"(r*/!mTae)CY BawEd1P2Dm `#O5$ yL# .EC<^$sy7(0N@sYo& 0o:8]BBO?X{!'!~WK*zp,?\?+"q8"}gv<(Q@vvy(Zr8{:!$- WHJqQp?@sp<< g{Dx36`wd~s!'aZx / a^M$z)Sov oby1DkMCqF=/X/B]Gz }u( q'fQVsxdjG!5[GW 3~ >h]f< Q/m[#1'd|(upiI_9<!&u[,o  6] h S/\  ;iz>Ka|,p4x3On7ln&.-)ՏpS% 7$dhc 5 #Q K8_ 9yIzGg.jG,u$ Nc FD *5hCW|re pPM^ KQ3Q–G )X.`K]3}I[ N q9, TQHWYtdVCetFK tP7_o)1IF&T{ (7hP` -H5*^wFf^91z%Y'%N^r ( ?\ f Km wS!xC\7?Q4{oN2@)L lE" OM ii9@xY(x.vyk4 V < T,r[mGx> v5*fH:#>2ެ IK. g|J46)azjU&3&Jf2z9eZV , n2Vd8.gJGIE%tJ/+"b6< ]  2:Yi/))3*D"ub"+# +|,D r< ,g{4C@_K81  +-[34(?tvl98  t q2ha~Et IOx /A `BrQ7 hTH5d>H ~=!a7-ZJ=V VlCM(2 cnR`x %Sz'x2*m7ah7e0JYJ.}|N}y*bY{X"hPn{ AaKk&[..;4$yZ[VE;J]0JMlkn=Y|Sn!~I\TA|*GDEjRQF5_w*u<t"]%TZ {=l9PxulNgDzB@ot,~e"CV'4C[[Ksmpi'+ ]C3d$x@~a@}L:4pDN/9)ciWIdE cP2IA{ w`:@DT`4 ax &>lMh)u& R@?Q0LM|%'+6KAS 2( 6odj]S@N :8?W cgFjM Ecr[U@(rR]h\x1h9A4#Qwo +-W)d`OBhqW\Bxq1   iL d s1aU\/ Al!#/ n{fO8{Ul j A {  =y(c4$LAN>Kmt^R o 51;+ m]ol E MXe4]> hv;~ PS]T*AA :[H99 !wLBzHaE /!Fm)$'  [1]|s a  4@aC oEM]#n(?>Qp)&p^'^ 6q.4R0L12)2H ~    &:|G t K'$ [ 'EY_ b&1nP:(G:/~ucM".Y %icM FHrzmH ('wi\ P ( ' L fKL}6aovDVpd>[F'P!"vp tO/ Z^j^po5- FX*W(UN GzREMv {?^KQ{;5EIXD׽ s Fepo U#jt0mA 7 H NrU&@/gsr{;5^T(yjqW ?X#M ~\ y, x- $wyJ  I:^2)J!XS8jaE@nri85 t/ ("25,cd:n &O (c h%b ` +fbu r* XI arڿ}H-;Մ SxC "/  fx 8 ^E= 2 1B.vj`G JObW Y6gCηh J4#=a_2uvYycU zif;  s*eGL107h< t<:  *cB oYhOV@<&/sr >& a `|qzw W;m =2?uM & +,_zU-  HjiZp {EW6f@{rz ""b(1 _SK,@( WF +SBh4DGC F {1!kt 'Db  Z r<1^Y:&TH3d'R!  zJ!E& Q<ff7L2nhasA|F  d,;>QA XA"l1w7i1=RsPwmWePKq}bHJk(Ym@67c86.G b(kjzNk =l!0I|I]DNP?j[$q Qw%9 HX8JaB0&K&DrB"Fy_e LQ Q0aLr.nIB 8I!q8mq TPkUs p+,b}c9<llH0x@{%usi.`F0|t<G*dR;1!OKT76, >mi sR^+g9]7~>`p"~@Wt7bac;okUF ]% O>^8*LZaqhFy7} /wkMy>~_8)r^.II%E-#nd ov,,Yvb-(5u,:e /zkfM-cK?5pH@] "\U9L34XrOQ|[QXm1>!UJ TPXhJ; WT-gv77E '~abLtVd.|ZN4Ctk[!i h>fwntgpL%yZH5kwE'5>iY1T`kb)X^aw B}mxYR^@p~D@uU5G%-"Bl(J  Uu)DV@ReGTT:.B4+k)V#a9fPVblB+6 )W" b8@ l{TA|j>X@|@5: @ 6\Y)5U6>C& ;H  R; ]ddR;wznm(fn'$mc V}=^RUN J| &+-D+i1]d6QN/].Ws/j0@Gy7+ #U-') -&5(zkr(xy[ahh_Mu#  s ||T/|yaDnR^9&_<S7^;YM;h{:zZ0bpZK \3 N>g yIqr)g,1 6~yW AQ " OEGA^`>4 *g)gC-en7^, .3N1zET7T op/;Qe>mWC 'pG ~cXJQqt,*#EkR0df*-d[NXD/Wj{o+#3U,1n}Gun SQt~t6wYTb95b\/z R*[ }r*em`F<o-k-hF*CV\\3p<&`^"Gw4G9I=7>zOc \xlw|ZJ @Vj.oX3Fh:8BCezK-ASVO/by0ui@7!kT Yt}'@V-wo`16vhu"mt=4Yg^*S#GJOi337se ry[)bMd/FJ=Hs5Dnu_)u] X?GXK*ez1,.A}~'wMgc\t{39d|jywj5lVu] 7q$*3vLWpg,~#Ga=lXGCHZL[JVC~Z -aq`A}uCT{8&PY\>D4 CwBm%P ){C}U@@]p8Vv-z:I zpaxzD>g~!0sY5s*24 (uiU:w%9;^G?V!/'^3EnAV+iPy~JfR4>;CU nJ4'+X "}[42'n*@2@p${QCV'M{Lq2gBKL8Ep`q:F$L!: *7xo2<.+P\ A?#%S.6W0@#f/^':yh BKfWt WI*+.w/)W+ l,uW"nm1 L$/0"-*4)+cd9 i P{G1&|N4 I K1#? $ r)~ zAi4 M"+}* v("w&2 z& Xtan|)*w1w9QgA&e~& *W +ګ >(#U \L~z1 H}$PCv'Y^oL1VVAu,HY((%1z9{ j" h !&j P 8hIB7NVlc|Ytj h0k%1J6BM1.#;z'!+  b R M / Z_  0mTS@0}ZXg)X$gYQ' .Bp,@%A h Z/\`vF8:xh,"WU)&d~ec* h#qvp . &O#Da1_y#>3(q &qYہj0 / !2 ;LS-?2]}azMt&T\&&- #9+ e C X=A(6&>vM?75Q/tcRWtPok)'E x^R.]DPwO L('&c$ @|~Fj1C')y(JXI\dj c 1-8I Q&]JaLy4(,VMP>mM # 1%9<sa'bQJA^YtrD tTpw~M:}eD*6mPGd( f(|/%\g@KrR ,|b0 4 B 5%2J28b a ^"UtqV& 4e K+.s$B3G,q .N+0yF[g<[. A z(M k!T0 )  ^(~"uRKrY.]-%.Dr?alzX7X)U-,:}/{d *`%4J|xKr: eo F"< R /lFO/9%O %, Gys /' $]"J&Mv  G )fBMx&zr E[yVoG[3@D/kFMvi 0Wj# j$V|[ t1)L1oo0? F8c5st'bzA9"u J3 i,m\y6y!{U51W9Uoxd~m=v.d" p0-hve3&SQb4V?4~ }7j\}kXE2=  x%b>$62S=b|KM,qgC"nPAJx%lWi?8*Jl$r*O33pQ*hzW=&C$Z)eXP}2\c z-l55xVt2u Z4G.mMmRbEoR>M,]{;$.hw 6` jhe@.Krue@h8Ay/,MUvq+Nfn2D>1YX[zC %XDY=Ur<[pTMy=x{fF}U@f0dq z!JoN 0b<)dgH .aa~EqjQ{+_S!0HP736 ?e1nk*z&x"_ *\ 7 f xE|`b "r  w k3QQ<Fczh'H5*) STݓc(- /k Wj,b5?X VY#%Ysh$Dd2#Q oB2q.1\W!; IMy  t gtVzV k4 /7( iakle7?P$2f/R VMZq&3 ? )^rz[@GI z P`RTzN2 : m Y&a cX[ NBQH ] S Fh3L~t T 3d m;c*fmj v ?]Pa_<DpX@Fe M3L& _!$6$8 b&;iKw8/[7 Da YrWe +-O).Bn@> KC%WC#+>p>Wߙ T fkDE([[Z%@O y RALt]=(T-Q7Fe:g6FN #PM |!R i1  tP BR$ D7U VKe  a LFv7LO:1UcJ30? ))7۬XOd 1 @ :Jq% } tsB\ hYL6~HT<.E[8(] RY   O x ;<'1I%PF2uA?qQ nSSoI\$B?YK ho[`a6Xw~ ߼d Fg} !@o . A[P+8O=E&EGu W| L@]#c'DkXBR - nf $lL Zp D{k7 sb K-+,d5lm>F-$=CHBh6 0A1&'Df \"m ;? 6C B WCPZ* &oL1.accvfJ`IV(2oXy9B܊t>*VFtj  m1BzN`~7#H Wr$gUCxF'@No @ZTWc )8@kOR/ 1 7*9  EK ^ 7sB$$;gzt-+:=-&NRxB  ~- HcO T k 0h~ ,8'zQ 0)(tiCM t7}:`*y4G s!_=t f vpfz4Fj)44;a2 3S^ s$I>n/|vV!1?/u< Oee Im+IIdo0>A=i!"u4h J #q x  e` +!FJq9?4N j H (rXW1SxlQlY:[IsQ6"##+OR # @C * 2 1v ?^u0q Nto6vNrh>*,N2/n2 ( ~ A #(zR jtwZs 1n"*)CXIx-ABo gABI1S !z' + @ X `r~SD- $!WE|jfiDJY h Ln9x/S34E R1ff6-"&fl >] 4 0 ty6rL/2PXZ>foOTqjzDhB r}fk.xZ? k`MOyA9`Ma3n~"bhZ)6'N> )yh~V* o E1#}q[d) DLfRL$Fea v?fo)pC`^V>ob[T/I \L [lQb=U% -Ks +2df/[rb+quX|2  y@\{M*%@X>m=jd<R} 8ZO$m; C9-`U5  u. Le5flr+;i;AiM9h"'@W4rQna\7>X,/T = N<>!bPIO45IUo"P7+z]b 6 8]&uFDliux<m _FWG(/WE{Muk}c0NymQjkX,RQ{H71N\;dGd>a?nmE)Vt^;<]KCP&VL(d.j0Eg7cT,SPci/}xWa[AOT1jiTXGYL JD*fR9Lca,taN]^.gp4dt;0" ,%V "B7?ojf7O=EEM*=_RQ' #W9k`Gho_VnvySFeDu/?>,k-$^2%d, C49 `lbw5^vBNHHu+dx_Um1Zx/z )WH?L eN~6=M,5pW_X+ 9! 'gQz*2|N{{wlIAuzWz15< A8AKNBf|Q -YT:'0b0E5PUUK%ID66 ZvO +N;>H~R]<{Dx04D1Gs+$dwjlsWn =5?an/*m4c]-iO3n~e>-$ mH9s9];B74 -% \ wtt?|Yod`ieI)o mKxkZ=I`Y=^pX+MsiP|r~}Fe9-1G Na2hQ &=Ux.tI\pb% wrb"+HH9' uzAHF6o !o(uVJBX_>+u@-?2( ^cpZ B{p[B0 5t^JcsW/Ik4[C6rA /!*0@4HI`6eH`5OawZor16p6V/ ^1uBjUHHK_r:,hn%yQ~34]@$0r9Y8`ci`3xw(.c{[kLg!!2ZjvNE 7f/9Q2{s (t\ G(<=! -"sT^; 7b&qgCA= %fA9 a~t {X:p)Cn+b)5FYaOXP]R-/H%NIhLHqO>xt]V n }( !,*]lk wU% foY`Ei&a7*IAfEMg66KTyK[G?*oa8nK2fLCavKf#*k #.?wB YV%gznY>"NwtUM:&|~f;7H*W*Z';ElsA<S24e{Ul[&x3'b ei _P?rRq3p r"TjL[=wP.^z)mw+!@~~I0 S3pWRkk7 eG!}(i: Zdv5Q %Mc 9)bn#_)=IfgJ[*LS_ 0?YmpZ3 SovlAL(!4_JLH~QG -u!"ut i=koW{--L={k=d@RJR5k$"wSYIO}7|`W(eRl# !xBP=ou2((: &A@ "{~"2S$.,Q44uV?('mo}}JLBa?qZzuyQm0""tS+$t3_#$ wd =sx(pXV_-l1RO27=C6m_VL&f:_Jkz+]s~l'-I>AF]4~^U"$44d U_Puj@q W7U7p,sU4)WDU @X. !2n@F]a[svwK9L l,c=Z:I nRv[XRl&w+HBI A89i6 p|eLJ^Mz tt:1S)"ugTMD j_eVe#P 6r3FjsZ}s/cDU0+Qw/ z3BunNkz1&o[iyzDP|*({I,)0$0GYS}V8hPr[gJn13z\6_*}2Jc *hF+ =Tk3&('k T~}'lKS:&[k' [5gbSnV~IPayO=9eR"q_dpf~o \: Fdabr@mg_[=cD19B-@vX!d[,:t\ X XN  )XzKJh~nKbcx\L{Q_h" .mO{I -Y35{UsooG[PWNUPw_cq.<_Qd -> BOMIel^ONt[FCJu/1 W8C/#4JmBKAkPHmc|RglV{gjs}y~>D 95E5!;r`bpxMynV{V$^a\uWlcoVEuF;9LXG=H^B0P1yN/zMyWq`= 6M}?:'ML Zcg0#,O}TkRm" d4/hE. m@}a$AF>7|hh`m 4%4Cx/6lL6 :E`ec.)~R=~Dyu4mka SAf>%jbXB?[mPxDejxjco/:Jsk L )-caN6Jys5#vNI[c `cLeo#Z  1P sH=.>cFS#GZC@\g<B fqiiO@v"d1>5Eb?n>G7q(,gnNXf we&7K5q-z5_^y DN!" }4L/||<>4] ~ ,p AZXS^c*e^Q0=^(wg^?y t *O?M_/{u_ g^ Tw\$$w 9'1$AR(ng>;*1X `"waK l NT_bA 4H~DNZriLGTi bQ<%W1#"W= x %s , -15d=;<wYouX2w`;N7:K^ T @ZyShcjQ el  +KC+$sH/ Hh @W   ] ZW1X~w w#{e <  xdf.6qJ!<*"I$h e4Q1B2$(/B=0U?t/ h8h)y ;7 o5F  D{yI b`623V$ ? r5~' " Z1~<* % lo[[ aI*; = @5j~yng/q(=xdrd?m B94z+)aY ScZ Q 9#  " ~LLz ~4: !t(gaM)NRZ#2}]E](/>& S% 5dV [ W_  V2f_Ju5 ; IXgkK T+'L3 @&uXyQoq"UcM*m%Wgoxh~&d mu' X sD\@Lz |w"v7/{ (M9&#[s0iQ;SJs}$&euMMvl J&/&/ Iv[ctB7"J#23+B p+14$Rxn .{L]#uYUdU<Y I2: p U  A0$F|Inqz+v"K( Xt b$;:j-3Osq! s%P(v}U<~1<K 9l o ];5>?lYqQn3RdBY ZEQ5ucq }xR'&b.38lB!<v0P;XD h=phl7~I (q7rh}T| E8"dߙE;+*.wr;z~2 / Aipgz& a>X.  q9T x)BY1FK1$Ek.k` Z ^ cYpN# ,w <,_=&?i ZH4W;6 iu7-YY'*-#&d4Wc 83<#^$c  $ $KlTbA2O% M;B={TLe|e=L:qTn MQ_oHv5 + x%tL)&-Y"Ed2rt.$x&Wzp%,,#X[8m#f?L6].]AYMDKk)X. t2{]u|kWPw^8~OL:8 bFV4uPcr ^ 6<"2B|ctPI>bMU"uH #e+4@`_r-  ~~[%+|#/e1"j27ft+U5 @Mt}f&$(a= JK3[]- k  & IZ/2z 7`8.6NlLT[_Wp^2fF )Llj  .j{=$,"+g! `{'< pdG_=@`:X~Gr {>PwGB@we|YQW1CEQF<AtHAa89:  #Jh4_y k2*'G\<(<BJ@ 0|_j?x-rtchq|_f^n5b,(q%?CTkT$BEp.bAu^H+9?TXbr!6*~-H3 GY;(Q!rPY }%&jsmmEt;dVx .5 s !U0,$F>+*O uXx (U4[[ Q2 Z`jI$R~o V1 &+.3l!q vUoI 5d!wu t# r.nxlOt!2p;"#:10V4[a q i&|pK tx {,x\0u1(xq~pYn+!%.9A P ap@|x &k\ 4~NE% #u]@%[6R,el5z#uIGBKZ`=U<n h \AMz`M`=f0 anK:Z+x2JLt Xpu!~r?7 D& #HKgE4/< jLtb1S)~w  Q[ rX(d>,q7j%  { 4S~\p 3xx~(2m']VkTfJ0\+zg i T   5 tHECip/ Z_*0eTDN&ZyzB-}l.=BeYo>Ov C Y { Cy;y^Cpqlqe5w%?1&&:Tzhx Rx;.Rzc Vux`Ek_S##SX^[)o{EMA0XQi,s A < P< 6WED3= %`5O;gC {|3'}H(qA0poCd'*7 , Cek l t ?2[cn?&  g5Kfs sQk2z>3EUu -+ jA`(EV` ~!Lri 0 O';x< xU"&rR[?\$6~k 6 5 ?]  F8  O*7>x 456 O)2YT6 ue K/ nrytL1 ;_AAC*n~@ 0"V>( e2  ! 6p K}_U[wsUr pm7bTxz?lf  b !yu9S83.eBGiC7X =;oGT5gS4Ug &  "Z;Jo=4ya'VpEs%"J4D4(wmu{E-'W"DZ# ZF (_q X3\ya1Q.WM;;T#z`Z~AK zo)4E8:i@  hlK\"'{"0+LB`u C@->3:(Bg!R\Z$J&f % + I i&KEC L,TB @8Ay<@m{^bv-dvI':B duo.+ \V%aCXim(\FWEVp`K Fn 8G{d5 Z8/"50?M,ifU'qs g{yz\>tvcBIh d/]]qdO;*Pq+I1.{w?Yq$T0P^t*`_mz3Uf=/N!6S(x57EP.+OB3A*Le0^V[nu$!AjNwgJTtl|URZ"AG.5 %0q GZFgBW=eh-rEW"d@mVur6G,\a3i]J&W(>,%-]7(,(+t=&c)A"/3DvxC@e1XR0)sGi;R7#f-j+rYE{}<|` 3 Fg 'x  6asqP";4?-Qs I W')Yv6+}0D C^W)t.Zdi khx #(/ bh5 6hv0 i@R"wGU V$E 8 Y,3 :2o) is-1p) 0y "* -5 E@ + y$iAir B i0"\ziY2CSWkm0(dGJ++(f4gb6~GY' d-kA>H o!l r?f'wzRKtin2kM=e{M :f8\c'R*F%],l#Q>b[n;)XT3\(KXLi7.}po. M  0YW*mUq _<-6c_o_ge^zTr+;YohA <| Y my`;~ iX} +o<}_Jz>"LD! d W t6 0 6H 2Y7^Ptp{AGG|m&vK,aD PhwOM]I-BM>-n +X\kbI +}0K^Zp dK>`WC(3u+9pu xn,`"?hmp<xXs0/" #lGC J YwF^=tHBEj)L`_&b^HYt&Cl9i*KFn>,A,cZ- &Mzb\;D  nX#L10q( Rm536rg&hjS TD67Y#?GiO&5Lo(2xS!{&I]XX ?mk _*l?jZFLe0  3 @~?/C Hht!ya*xMl691&B)~p s"lez,hRzN\ ZaFr)^Y6!&d3x8Wv" TsK'Emmw4\ \l ImaQ/ HIMWoW iIj<bAtw}\1)/s2qm0uGJ&  ghfP MbU5wFM bly",&1BLsQIy*y\ L,l*> JG VE?,SuYZ yRe6;64.<YDfYL|:WHOPF%v6O5'%2<K"[q'k`z}kKS3&p78?sXQe |)T=4Q$Pvyw R &Q%0}}z 67JgC/6" (S?[$fvXpAT18/`*z h2L(8Qwt"g+7qpiGpb'KBrmJ(<+(4 JSkl.J6}Mc3OE PT55#~# [P xONFi&~/LHn$wbB8B@&?Kk,S4@~Y17gWa{ota4Qd9MyG.G zTA)d\GJt)Shs.ZyYopemd_AmXqJr2i##nO3B  zFCM  j^98f$+hs<%T'JB(l#J{B""#* AbD2xt#mF.1.^_  1Xf[ j-9dsLF EhK#+ ''&#(S;Gl, zqZ8A'&j :(%H>O2x0^gx[yX.4?K(V% -(P0IsNP < p (Q{\6&b  k O'u]-qAiS*  9TSx0f& ?]ms;+#Zn |2&rcRM.W?4H% 7kN$ > Drw[ u-op< g$ J7t/Lu3EqkiK_w@aY.`g("#\ rU cl {>s ZOv\J9 _ 'j]1 s%*kSv! `R4X!H!j" AQ?xAN UCk 4bi4Xsd,8L IP-c]b&sy)]F j " Z;oUP?= . #G]' R-7:zSP\kT563yVb8 vgU7  2 S7Csc^U 9euyK xXucy),N>zm_>z%\ f _ 3y*"WdD:03X(kh]1c1GPEO4e'Ey . 5!pNE#$Ho>]@#K`'T2rHTl2jr_Y  cs+[I-2HQ nbu.XM#"T,2{E~_5{&pADlr;^N~g, Y N  *8Alu/?FfUwi4p.8 ntd8)^?}R&=X #1n|_S J/C >o&f/Z0sBAdL!-$R-EFpUTE}*x6vVMPb,` W=@y Ou}L;vE;x LmX8?b Gb q\t,MPW> t^ If%\q[{  vL+CR Td ~klx Z %Z%ti K rJ)Lr9 G\*/M,*!;_v ~Fg!. kc :E8l`r   ]11`w: ! Ia\8)G+e(4< gc"]) LUz QkT  .?s(o^u/EAA d b"r|4r;^N*(xm(Ls8\ -3bSBh[9 [ &4l7i%IB xRq"(xpCa*1jPW{6 y$ v* [Uj&~a  8eEh:t >  ..IQ 6eH 4(Yfs8 &* vr 3t4ti " _w>tD Z]awu^Tb:5%tg=PlmPz- P{Iqy s`3bteNp Q 8M' yS~,,<F2+"nvE{Eg g #Vx[D [ bl *%cp8:. EE7t; /  8NDN a8F:k}QWg ] Xoiv-IWw8( jse%+@ m8$-x,fdc0=t !u_Sz; 9A U VV`q*\%!o#u2<ojDL?*cz@W8PuCeH2S?6we&#5 fiL>1%YRk0#b0$>?vXrvmt/2|\  pc lNd0 ;o%^U|-,?B!j+ Of{. ??ympCK\mz QV|+K\ %YDM/g) .K-w 5&+' B DK:RR1Ml@4A #tK[+Yj~(a> 8-uW5C2e 5`E^ V&@ `b C X.0!]# 4S?dbOx[A=(K"7)#iY=U &k]`']~VT  Fs[.:.+vjc2>$-\X2upiv.Z|0XJ!o2}87Pc~ 7W H Npl9 ImUs;NDdmBFz;Q /\Ks61e}_0Q O W Dy x| 4>J s{H(3p9 {Hv;OKq]TbmW=[CXARbEn49o[Rrn ] 1 9nP&,uDHqu]a-Vped'5MAsau"~:>:Okjl#/f=Jrh . eD~ O^0PG6-a#XgEk#77&W7,qCu{Pg &jM&2< Jwk4/QPc|"H(U Gv#4=()w/_p4_OZ.#O#2r%?9,%JUj NQq*W, i+OqRq@Id I) j l])+rg6*e. :[@rFO8fMEZ_15<k $(#|xS# 7NP*6yzbl}Mk_l L{ p5Z/wj{ahMfd!d"&wA^}\DkG'YRp`#hW"b4pqrE/|* ZRVv#C\sduS$dSD' UjrMXP< 42)s8,Y_+Y[Z5~4T(%6fXKz:=:n]F*5<5<\1MnSqVGMmO#*1XDT/1{&E0'e,/L:.A>` /; "aj~pM* 6!2TOZk2 VQhh/^\vO$4"CVh;ID.'w)()) dfNv.7V{^!T-6x#F'<k\+*wuLl rSL_Gj# >MvGt)-{*\7sk7:R:sWOj7mr1g@~S;l2">Xk11NV?$%GyhbDDe|7GIk]LCI6 U]?nB HX HHWj^NWfg GCcq5v_gNAkCf-/YRRBl*4+JQvGb ]V'=NG>ee/X>;o1`b%2#.'.yZyN0]7xv0&No8%`:k^ a)eP.Pm$ >Fsg]c0Q~}Of|{W0E!hrq VqBMg_&br|vQDE=t',L PxK'II~{}2C {SQ_ d!U Xl/#1 [TP:}K&#(#]N'(h0C)<=*Ux0K3R.2,\e f@D*oA7`A>>y0I2R8vJ8s70v/L=Iz$/v88$X|rAu e u 118PO; ZPIG(QD:}.FVWKK<#)) v[u<t!NsT]S''Db:ju Y48    \IY{wxAVLi"RI|* m+H, 5v hEWT4NY~eJ"w`22l^iz0 8y_%;5,[ ]b2Tz 4r*S:r|J  pf*U RN ^iV[nlLevffn=Xj oi#]ie !H ' r7f(Zs&r9cnA! +=;fMlHev%M  v4^b.8~%@^7h#Ji*y#3JG|~j qT@+b ( bA&s C7|82U I67@"`R]LM%g]XVtA12w2%v\zfG.XxztXbum@wy-|2 Af3c 8D\$8lyS)[8>|` cL,a6n62= f"'F+W zh4NFrX?a7pB^o2J,J? J'y)Dm:S*tR 1  PN=@O?o+?(v^315~c0-Bq*[E]M5xC  (r K   d /+e)y .XWG6M ,;pQl27%-Ba3Lst\/C^HXW  zV8AdOmfH %<NW|_wME.H]Nu).Uv fay-&GN%@w[Ly>:l@ Gwuy[al/EG!JT3O,V !%j Ch }uZc ~V9dAn|M^'rPJ'RCg (e^ oRZ1K K3}e?dX413zs!D=xY4)*WC t ;umdq2&,,z {X 8sYBf2M. 6<$Q%o$xi96 pCxH mTiDni/{0):+.qp8i)eXfOc^%ls<  g]nfEaq?  %#S1<j!-r*)z+DY`GY-5yMqL@ "QgJ cr9 /#N;XTo*SZ]' |,(KGN>0>P&me\j5/ *5EF|}&c=p.FE]1>~ ~?* >Dl_w c:-s v V\u|Hkl5cW{B`i1PZOQ|b17w6fg9 W1fc V-}uaX<1yK+]* B9pS|D X}/0ZB _:bq!,*6xb]GUXN{;e WcaL?Z'&qV&c!_G52WR5h}]$Rpv =pxVkG 18 c$_$ S66ZM5f?{GyiYC6w{eGZS{(=2!nW18c`-&t?.I, 7-I[ZFK?fU#F_6}"=Y6/7}Y0)t5-> e #SZ 2 ?v'S(GL ]o0_0@w1.e2:Qp(-'j\/=[!N a\.'S+qq!L+ t<6eUO.$6t9k\f=(2aLmp3WvM (wUm0. yQkU%y-O3=qz7.FCe*Z_@RZIi7,~9t$8xTH3{[ ~ "b%]n'9RXh|km>!@7cuK< WW>ZvEqkU.P(XOvYnky9 &C`S3895W@|~PJ7w|| qiR&l})C+:XioGBZy-7 sgT0e&'u_A}pW]rT u&1>~C2TPpbbhOiyuA]uks:@^8f>AGQ83( A4\[ki/jRUxUg%Xb~]Eh"{WB**z~,$Na:_i#T|TwPs={["PQb{2]|*3;Y9+ 'mu`7 .j8E3 h}{H2 OD u_LvmFK0knq- R*"QHW!K' \\yu56H -F 5 I&wu SmI#;|5:<`O NsqB7c^jt({8  3 l^-r2y {7yAU)k< w.SES=;v+Aleu9|Of'Nu3KERkL-|  {!:hY!*(M<]&!S NNQ(t:\27Q7x2]Bw ` L;,[E;5,4b^\d7b5lSm[Do_=h|Ti^R >[2@C ?^#[ve:x3{`L|fVPy}8OWB/CX`Oy*mSM}(GN-A@9@ c rB.mG F*X; t QYby1"8W &1)Kz62BC] ~0 ;/xN U 1N &\>^ ^^ `9RsI J,z` 0pz;1uJ*dNpT B%cV 1>B8f[u`" ) 2,iQzW#2zZ")-}C!LqrC A ^ 0 _@o9s_. (Dl?SoJ#j:W7Wv n(pN {^H PXCM=/d 2 /'P2 V "9}g : ]- J<NyuG]R + X4e+"CrN&!%Fq5 JxI W --rcOuAX;97 HnjCh}O't+ (qJ).)R HmUx %> QQe,# ;z.<_"Z&")2\.U9 r*q$(L3J]:\HO'8_o[xB"^& <cZZo X5JePOe\nHx^3FG!2"&%q9H"?^# o_f) \ Pf(emF?!8EdB~u#R;c{&?NAJ6f -xE i[{e:S0%_t5=a_ i taGM$Qw9d : ] X  h QyCgh TjYB2{,!z Br}nUquriK-`   w _ ?^@V\)M2Q(O*yIC;^(RrMY{ Rb* y L a im{t ~OlQyJ2OI4PAWZ@U!Z$f_c58n  ^AMo &]o}uZ1ysN!1mtJ2 SdtcfC[4.`?.\n05Ez_ZvoNg7sGJ:FUSwQP>;GxRqpQSd!{880cG"iv>*#Myzbsr\oi=-j#NXS**l,Hls cfG,C@ _DQ$)Mgt{[)Pm#JAD XS|o9%a%pbRK@s:]DxXz2r<DAC7EQ<!sg ,%'yz%ob*:<1;Vs!!v='@& B K3?wqdK3uEv"FbOt jy][Gc- Ix1@LD_'}T-wG3xsxXUweM(Q " ^|Q. ]{\ X><(SW^@$W*XfK0@r 3uX[+4d]'`mt8I9G]D .CNt^BP S*.v}-e->K[N'e2n825~b K'P>z@GRDX>,Qzmu,@5EOzx:D+EErj$q8osfuM+TWbV5t3[vu,'5: Q ulH =Nk!n  u~=odTF?\%W]xKK]BpEB ,,j jI %3"#]k! 0HC5h _2Ft,   M&X,0#<@; |n[ 1v0! D V %^I8:b9e:uSmgvmn=; #a8 Q ' O0 @,.  3{T. (Up=|c7 |~~$$g)cgU*?*d#@B QT:[vNqFm8w+ 6a6m[|| cY ~I7kw.HuCy%zVJH6:ESI _ 5#;9cub}y=VIOe}o2 R )m6JSuy9RFJ5?n@ -'0| #REk%9iO*Kw@CB/ C3tu)3ZqN=\t ;H qT|X BL3/o]9!:s,V>q| NAt'os~wo`(fjSQ| }! +t.&^ `Rj=~VP&vULIS0t  `>2 h'I1tR yxt ;x 3T I!C,Xp%.Y2 R| /$RwECuoKk- j ? @P GFDQ#NT&F_QE4B/ :M:k=M;rLG?`9q%O <j/?iY]aM Cb5LiD[Wt93E.MmND*~2"7 Q b [-eq:Ph FoD  $X0&>e~Ru(} q_ `xnUREX42*x2){q"wjGloM9Q/O o N*|Ev-Ef6E X1oI>.G)kU :\@;('/%u)Y&_f$!Gshe9Xg05O~> W r" Fk#FH"Dfa,Q*#5yONl|4'* ;Hr{Fj @EQ_sG%+e5}ig^(+,mNc@ =#&2T < l~@ ^sr#7|B,#O %,g6%!R Y"~.)0#5H Cgv%FQF4kD p)s   WZ>0 0'ky {^2 |$4g/M ]  Czcs%5 :p8~  :tCN9:wf~S^i Hw|:U[: DB^&bqguf_$Fh-O :M 9vOjm_X=Qvn9)?GX%4*nN,mtOes .65Z.!\VI/G&}+31PU|9>V>yA~E4B<-enBR9\VQ v+R]\5Y|AAVAagjl0SSf5}\/.3o17M|8$e~LkDK_'10xsvE'J; Ukl@AVjsgA,"|pE R`ZP hX> u5:GLpEJ@B&#7C 9"- `Y,M0I) :'+r)HR637ug9(!O4&v5"F_ 8f,.DA ScU" U0I6OAj+vPxiZ5S-+Y.[VVl1?o Xb dA 6B&[1Zls")`B?b BIy2}.nh1t= y?0 M4ff4K]aWD5zJE4AG,E{|w~Q]vt ,GA /` (/Z g a @S 1}mcE . ;  &M1E Cz $X + w;u _ Hy@/Y.e2k7P+Ea #bE6kBe8  xEgLPP F O DJkW^? riG^_Fl{:aF?w ooC(DHQt_fMUcb`,d=fj_k*RyN5kaMQcubD'ATJbX x,V`~ "eiy?)lnF,N6\50f6n"6TM>AebA {~ {o]P+L%d?:'=v hRc=M9upE1o_w al&^u3LfOLmzUO+>*)M 6"{dPk29U1y_M,U *p~1yQ{1p  YnRy15 I5 od@D Q@B7G ,v (gFPHrZ guCI)Y.k`iRKn1r%^qPk#f@t||BTD^-0i 1*Om]0zQvRXK4|1 w|e7\xzgah.RftvM&eg?,eYI}UoXbl 8aX 2*<)C xn"f 0R"}kds{:]V~)8q`7(QL fAs!^3U3 X(<lX`-^s ,oK |vd[z3T ` L J6)}>_u k M`%\P, )dKQD}2-H<#VFeSL 4>} a< [foN>8v/  "~ m'HrPx F(Hq?$*{m1ak r3 u)t k v@j R` K ^ I1j\:J @NSx$yH'w`p J%]!&3n`^R  yJs^ Ye)NP/Z.ws>kODVm@e+:ML   b3622w.Al>=R-?z- 9) Sfy6 #&icn^5O=]7zG3Q1pk[T:CH>Z+7 P5?FtBm#E.d62< f?\E0I  CC{h2ci%8V=!c#`[ OSD b0T#S3 K O\ fZNTL8@}-ZA5@2SxcZ nCVGWd/Z?nY!Ecl$vj>BD>;A^tl5NW a*Oa g$y5nP #>+y~M}z:]mSG+#Fz" V ak]uU:s  L,~btp o;j<v:O&-c^L I>%82&7 "  o+\q*  d_zN2h qHKp #Q?( a8}(2)gPfM*a-" /c Wi\b byGs<Yg!QHk UW.XAsGM5I%#[p$ r^Z9KL{ ?z2Pa[yGhiWHk_41qE6?+-_n 7Rg$t2YMhY,{e#/"YYN x@G3pZ^()*gnu5V{ 9NEOTLr%Rf.[3M9Hq"E8" M'rEkMW$vzUndX2G>0@csG>d9?<>Kg=4lc*k_oD#<>|YUMX\`D=smk-+,Uv[ 9B @7[NU:3%}hg#EW8(D6yc\uT^A2:2{0i`f70t#, W7,U+l%4l(Oby>@` \ zDi%8+|L( j]b@ -_O{IRac!B2P=[w L"V{[Rhy8sM8`bd 7y7 _zoz_JtSsY!zpzg*D ` }~Bfh3Xmg-_#gT  2L/*h4zs [M LU1Pa"j.)d1Cam{:Z7XX J3CJY!3Y<p&1@!)&rji\InpFc4~r\\6G[^jPVQ10:ale+%SAWE].Q~xothjq|cU6@ei+xYA.r1- D,k@EE=ZQ:<FcO`oU-z"|\dr<}wU1N[L(Al5!70&IRiNeo t5(\5\82VHCY"hOprML P J,N ud&aLt[pquak~d}rveZr7*8QOI9WJh-.kB' ziD&1 C&egewcXd' N-]7QIncESWwmYl}0a[KBtF/0Kr!':g\F8LyB,)4, ObrIE74Kwwnsm;qb,_JuK]j[MluV4V0Qu*8+l MXhuK[xhvL}s_{VolLuE .1 yz9xzdd#J O81"q^}k*-pEzw K[V G c>YVuVUGB`2cL m "UXs"=_ 8*'{!~gU3qwQ(a^ #hbQ4CLk0xe&rg,jT9"e;f=$ X6%(m\#Sn/G5]) 5_" DgcIw16<V o<  |O|# j R_/<<1=dySW`}V ]-hfN[!{P JEp\ ?^ =_mLD`.[+}wk+"kn;XPK~&N.S4",[mAb#.|  6X @H5_jzaZpx]bLux]*m3rZR<s ejh4 t' 6 'zl.Nv]]i"CmF/laJzcKwMN~n`j2Pou s3f: :  ~gJ YZldp|Op4| JTEPYjT|)l1H P2j!?VY z 0jqmB k%FR{p,E%Pxf59Z;",gga`V>c2>J Tg9#~ `/Q%)O@ `dahkoe @IF_2f!`  RW f $]cj*G+x3*o]D;,M }EJ MGXTq`@q]>:;b f *  ]ALH2w[B DAE9xRM|Bqjc%zx=j!k KT = uKUmW&J}"cQTBNWvEJ M a R+3p#dC6z P 7"<a?~V PqI ^i=*Vx = q@@ptWom-uFGop!* T evop $ [UO_1|txp2Z %_T kr QRbmTax&t_@pkCQz$=y&r  K :ek c_tH>s/#<T|x32UAs1RwG(1? DD"*; C.w |>V jwI]_Gs1gP Z\8~)Zr N7%w ;xkfS^uoVP6 :n. 6 k 3 n Y eQ W U jRl~oq42XIm }t /K--&&.#b /#U }>Fy= .hO% m Fp K&#h[cp fGL' O)YQF6! / * z\!Zf\,eikc>?r Q-N"O7v@ hnt'x ! |XbP.p uscFLp$GI#QX0#1'zf4@| YNO ] m}+e^#lp4-`t qm-wrr+?bD]#Bc{,yt;35N7 E } "~Bd') 9yJWK`<zyc;<\7^hCoDo MA z*tfq6% D38bdfQOnMf& D- )8sAY:o\#vZRV RX+YPHM)h~by|Y[OLw]9}wo4fejj?AU@,RX"Ms{1a4{  5bu4{)QRMlaCJn_oPA]kq^yE4b5zpNPML3LzWU~V|*a; !r@VM&Ym$ C0#[#.#CGcyopjmndW>6nPKh6_!YR]LDlG:zPnj2t? N)+62G<wVOgjgPL2i&CIc6>\oy[V r_F:~~HuzS3quT7?yk\@^@ B#fjn@&"'xsn>`Trn`rJR{L~Nm%) t0fB>H~Unc+wWaxt[|z^?b8` F8-A /|1M#<3EYRel$zY kg, rMn$)t^0j7dKAH: ;Qz]{`l+VyB0d"3E,+[v(if1y A]7G$3v j JLM1uxgRIMr  !"hK0#yq<; q;V9 G|T=0Aod +'x$? Xg/12|kw4gl.= \GsS\w "M5. 3?*rNew;T)" eX<.i,%S1P Fy_j@0 <:iWl U 1IU$%Vt   " 3aqdd&C/jV /#o,`L96a<78G! _.FFk;'DiY%X=B~x=\DMU9i% Wgv"[E^4M-MUg6 )QiDS+[i6Y+(m"5.cUq`WElZus\^R l; 3T5Yhl>D"4odo+QZY=WaMkH!KPFbD#5T2GIgf%^t~mf^#)LK`O,ymK\q^hImnlp{]cJAlPv(:xL2IF?/AWL`jRufeZkUb' 'n_ TYaak7,`ibyJ's{T7Ce.HQI{x>*#, yskLnjjMm\wfu{Iq3[3O9QkcQ|~|E7wxe!/F\(5^2_DKe"T#r:O8R^@45qs_;#_z]6+e" U{cxA /$EUt;^,x2sBMV/=K^k7L!t3hZOg3VQbsV\e#VLFz!6le>..bEQj$! =HC4S"8'%.!CbkmoF Hv*9*O w.~c5lz$V0w979U8MqnU2*if89if;Hp>TO5J)H6xN`idXW#1;M$:R m`#gl2ww CPI~ pPDBN~'LZNcp1n_aTU.CZe\@ !*j'kwIK_ ayW Vt`L'PkT: g>['qV!&(VMs^4:#/4V "vE uPQkkb;xe $!<:!%4ORHQ2z)):m5q j/+F_` nSjvZ1h6 f:uj f>e'+V$$O>i'TgOt@059)V߼y\LO 9p ^ 4]Ml_ $D b a,Wl#A(TH&PFTKw=,Xm<P Pe 2&E(C W#Imx4z>  uW@F %. 5dCE.w _G<'0$5+S 3g ==A7a <mf0Ki n{om"* .._O$?ph%)  S @Jw= 3 1 ^E`%dT/LoCS9 W U\3IM C^) 5 iQ%m>^Rhb$+4/T,k!:*lR&%t9z%^(W>wzK#+_ht 1![gCq>:# n7 fJYz? J/FuQ"d1 ,U50k3)}4!~`gW\!sIiuH%c)Xr p,3pp[2ru/Za Ny99-qDCKQqio1o<fZR bH2o":-BV2)OQz1u"#)Ehk\}zA 6Zo[M>2Wu6u)IcZ}zl^$_,rP`L1|oM)8LC1 R#nY$wns5xGHj*G 6Z{1`qEH2>vM6JIx  &jZ{BYT&.c+P0'~G n  L +V0 h  xB\89wj:w1vJ:7_HQ dp j  hMv&\Q~VIod_G3#`rO?S Q$_:~e3K!)ktikz>OJh*}u`Q})2;}we8 ?hz4(cLD:ROH8Oxn'D' o]d`N2T22@K '<DG,bm}?LKkqS~H`b]GGEbX_+gBA;lcfjJ#WfmL9N\D yBb%U]H-MX/%BW#!]QZq!~ /'2a0Q@LkfcdAOcUk5;#{Z@&WAph@K%%e RPT^}]IAwLyvxNX^WSy 3lR$y^^B"8X6`aXWW}9jO  0f,&#%ETs@%33pw@L8NZgh7-zL2-VP7%LG^]['fi\M_2N$>noOw lWVXps[hdNBjX\Q1l0B|vt=p!`3&dLei(x {d^VSXL]_rgEMu?zkKPJ?Cd]D^yP_KcPrz}Io|?CMo:GJBj/H4/!:%1[Us<}:1O84h;  YT H[o<qgyen51gORhQT?V@f!4+:D1\k9[\G?\-IKC'?5HaNO"S>WaRx}W!X/4l<b2 Q):-I" 2<\6G_rS4Is|v7['raHw {Iu;#x1.C=GDr178J&Mm]*aq}a!g` 0&fe/5908'y?DK "O-)UB4T$m}.Q5i6bky~`|% lwh<  UEJAfu-sOmg[ ?C@EmT~mG]:UxOGsz& $B 8+ mH9 ^_;fN50,Jnc^Xj8szs-V4N9YP= ;!@b }@)  KYz ynL~V5p;41@^C- VVJc uFz+<> /TT+J<"C$$80  =+GEH^I|=P.f." xKJLu&nN+oYK%8j62/w>ME@Z]]u {bR!" 3xOe aCPR? [) ^[+ U/+ M Em}:=A  @H*$ 6q~ <tjhRs|@# $ ao<n* n$u4KR*k /F{vߦBrm cY5<)# m nb:>ng|A* &xEE \i:Da")y l\. G9'f|U _yj { >YDI6b;{ > PNW\E.Ct?@6L! & $VJ3Todv,f$MX+@,{*o,7`#& '16JoUM+@+DWqX}po.#" OA=`wjwU?}2U5OG0yR~/FLGv G '':5 |>m\{0ws  DUf I/l2  gXVY%j=t=@(G /wTwNp=KgAa)hV16$$ azp~_9 h2h`\ZFq8he &6:ceW>=0W9&'hBC|(V00E5}m Sq e V!h={Lb -/x:,0y.I%@t]]N>7EdM#]k>Jg 9<c(Y@J 8Pc\0K1Gl.!9kE AY*tQ.@b463:|GO["xAytQ>7eJ?HN"fqv+w5] iD Gj_~ pn \pb5Lji2Nl^glcpaCY$Ssec(y^@i;Qy_!#urP"9S92DE-p/ae"n,RUco?; Jk/ysa_u|7 bNY, F {1'1Ru`J?qsY@Vy_pV}`n=t}me!7HXSVMk8d`;x1i UAn u{9X p 9 x*SH J9++?r-qdl&/Oq0m%M rTd8,-A;e84 :VBiG17CW3%sri~ bmW% g w8LDBf^o c4QR[-#5+cr6FJ#-ly]e S\%GpF] v3S7{bU2zDK6O:$ ] az%^mq6 P7 D?j?W]]tKP*")cY%W"  1F4 ! )->LX60&bBO8aJZ{ q |GKQ8xQ,_>Y2,B7*  , qiSY.g_4R&zen IIQk,On8W5 8 8k>! Xu?G  ( o\)h Z2q xi!X-dhP  Olez`QFj]O$L! y  *b'p4k5GxzoY*Pn%<QJ08t%wYF|L$0_iiqA!V''["- Nsy# e9%GJg2 vj(V vX 3}r>H&H r`8 s/ * ?X8 A4-:nG=NJ.6%"ZfO;3  J E! Qw:-8achOb[7 oTlAHU/v(5WAb9I*#!Uv2 O "Niq1R4g=t x?MzRW.}?!!, *6Wpc WsH y&wQ7-GU'*W3!Q$QJ_L~(>nC}JeP8s\<o0p(2}&m]J]}blo^ wE<o1*E~0Kb2)4S zaZJ]C{{gp[zi'$QLsA)! *N}3v|!UyAte"K12 B=p xT r(Rk1I% 9FG&jqdr1NYaGO !Ir{Nb^90$78VYwJu\_m,<,Wt)*T Lda Kg'pZ/a^]{F g J*[4tX nNsQ`^d  [K"o2 -ENpq8b bWbg&ty}o.%G4oxbmow_Dx}41 * _<8*t* T tiLOe^RQ{eA`ZtyTXjK~pM|K>EHn"`4%nJ0/XX}9Ruf7@'(/V!YXUzbqc_5z)\ "'2&/6v+#eu~! r+o.:(a9$m?dt)f=}8bR)=V~F'uXFRHR:=]@qaSS%LD>{#*/QA9uRkS`ei_e+$yiaDf$,cz_67<jpL WpyQ$I?MCAWEpDbnO9fm! Y3 |m?"yD<onI~GCR>=TT>sbf. }{EL{vcPv3-QD28) oL;x6{%t0 &vOlYsdngy ?<2 A6Hp8NnF|<BWDxYk}J v$9I:sBLO 8fsZa 4miWqJ7CdY _, !qr&dXws6V !  zoH:jE:9A>,BQ9aJ;R9NUKUDWY)7E^{`7#0 Ah[@ >  ?U i|r]pS_x4W=|U SofQeQH$x  , E@[[ *,Qsg)gKJgos{&[U{.omS{NF5fRd{WhE3L9d m5 wJ{U>d8T>\F#/$Z^V )}eJ=e$SmS0*`5w$0Bx!9mb,qjn>5g)K/hj*Q-G35w%w-X*87*w1Ko3*TMg.ddcx?ggQvA/[W)%W)P.;XF  |LIMKx}H[czjMytb urc^K!0z:@D2tU0VBCV^0OTdsfEmt>Vx_[|NubMGfC/Nj\w.<k tl|'3?_`9uB`erRnrxOi>M7)d2[yYYk_hT~jurdq3-;;S@m'_;l:$yni'{ah*Z7,nKf &f_85C?651P) ) kp5]0,G=H]>Pke//8ig (~&0Y (#wEPCqufvV*P x UoK"r:QA +L\G=P4\%.,A2~zkiqZg *m`f<eo<M8XK/AA2'T{ q`T{z2vd kvC/M".-)~-OJ'Vq{ppZywwO1)i G!)F"&_Ip|eo@JKG*89IUec#KPN$/@!%>I&\}9Z[ZIXw <\ntLdFv{D*[I- E%lRH,mlm?C/k;DAa6c*xraX5\P}J[d/AAen[Bm`UT]hbZU:~AWdru?_:0M:ZrlL #oT 8]]tZz|5upf\_KuhQ/fDokZ#,u, P`g[OI8!+K LM*Xdh!g>?7b9? xub:N)|ED&^l /gaqa3|->ivAfPF P"PE b *&nAYLqrZ,+ 8!Z]bCUedf=td%n~4.* bKm``vs2nhr]f]#S|-" [v #-Gg { ,\ 3r&QA-D d=v|7iap!c::sShLYpZ(X:_<6]m,K@o*P&_nId  - 8$SOF TOk? Q$6#;}66K,I|Q|/)jFfY T; ;  77EMf:75g.X>" LZ=$~fGUhz(|yH_z"'2J, %[?{=g f|G>C%$$ rfTA*HiZ9%j%{xyUw%5pd ?"&t\6!z2,4(E  Ppc e wE+u5Z>Tx> J"v+bSj}t8 ?iB"T P510.j JD Eys| 8 ; zur/H`~[y!A.VQ Y/7d% e (CL[{XkDY}wfbtc7:~99swLurFS};o(0SA 2&,[\JWx6:9;= la|dIM;U#ccnPWZeui9_xWhaVBe9%_q=.s*4fr6(~v}Gzi~[_N2 ;zeb:UaUo'[))Gy#DNgHGG1s]L,Lo% X`4hE1qs#S}y4Z BoPStEejRJGl?c$ucB@ Gjh8 OnQBje}1Vq3M@3" SCV:=( WF`p0Fa_weq:!Eo`-~hgn|6fnjm&Yl_N10J3Ec TWWuC !Ad$$h} J,Q >Sc:t.T[I[8Z06nT;F3aA%]5}m[$x/A=KyH^Uqh2fkJ>N U>1qK V'nqXZw;20^"{J3rt\ 3FDM,]<#_K5xvFs_& +I:JJ9{~s^e>-23: KT4sQ>teIq`91L_od<GW|rOn|)NO%Q:[(l \\Ub S?IJ1_O4p_@1=0BIZ\2xhqP?)s k((IkVqk$9YT9B6,JyNe5+`BNL:0,S1}|%wOd!bTRkAAHvY^-ZEex\t';U#iHYSlS^NWHXJB)LY \%lWrS;TW&"ApV[R+"YwT) 8G;  :*s7-~h.+#3 =m9]wT   7m4E1K*^![{!\t^{HK>95B%x]kHGXaJq2ItV?Yn(LgQ#F)K_}n:Iwk8#1%G&3|G)m!o{L2DU#x` T   z=@VhO$wIlPn{D ["b)BgPJO]nfJ-<03e/$O  V Io)toXau)rKk.:N@\#xS4B3~:9b~ji~Ao  t J Vsq4n#(/P9wni(vC5,_R(9x#4iDW77 > Lt:^9y9 ^vY Mx L:4X9HENGx"uQ.r>.UHtl9^!|$^_2F=Y6m iG&: kd+&BTJE-"k5j,%FzhD$2"*9:+?hd>WEv D \*a":} l*4s Ot$5]L|F|ith$",h( i } mP>Dm"lx?"}BJ_E('ZY`xWzq-Ni%C7gVp1KC5x#=0;_8ztg;J~sE\"%&J>(pu o_YU[YJG # `pF8-Wo5Ymv[yvhjJQS)R\?LT#OE5uu[CE-)E<_=yQk3s8UD'*~#P?(*F@X+xMB|$#*-.F#v_YpZbxFda'*1XcHiF&Y"* Mv{AU*++3'cqK!Z;5M\alir~J ]9% zj9p2 @F< r<;vW0YO\Q&0_JH- 0<@- ]br8rkhxd L>2)joRC\#a%h[p/ #".6 zKJ%4\e;*]%|yWhH_0Ri8' Ao31,/ZS OokKtb,&#~u/^nLIO\lzzH`t6'0@ylH3\AdlBiy)ibW]C'- z*VVr{*MC-V#3! Uhmz$C `"FG"ftX1|, ~qH-~zyyu2=# /9YO>zNM   = K@g<5(&[N)Cf >^Zg2B&~)ebQq9N,23W3>bdz em FRL%ry9_#t.WFOLvcVL{A SA73~qUA{9e!%w wg6}fa >X4xxhsL<]Op/C#gDFTPW#@'RIe &' ,$[  J;S %m 1/ vzIuZ2jS{4=mEqO{(NEy@-UD6AX6 '"*5 a g*ZYdm + q,c} p#9"O-Ba0(l1weT w65qbNQE{((b ( , ]QbJ ]u+ 8_ 8[0X2fAUA|f+?1%w /B#[!,,*0O* y  U @ " @aC%t C[5 96l:8JH;QZAM,Yw}W ?pzO$uSa"1-{Ms4 C#=s= di!cYNVV6Q- A ~  I :v c M@jl}|X%p#5>'{ }Mf K=\# ~ Wl)0k .AHB6t\` +4~xVaOeMRN pt2(w `s #-2IN .9 q:hN2)lL/YrAJqGrTT7GyNpc>5(~ ZFK|.QUPu< 8 | O >o'`7H74]R V{@#Sz. NEm9vn$'K,HFAX@CZnqEuC  *<, UZ C:N<0T- h Pf,f1PpUR vuiPP(! 0/,$CHJl. ,}_x! u.[6.)D*\.W p:]%ya1ZVu%(>72 t I4%iBG[:X\E1&C=C 0>Z&,1A6ynA:5meOI#a { &f9a e  3sT L k[pO$9BqIWbdd@!#-dE  Fl1$0g= X O2jh*mu z^YZQIw6> 56;#xyQ"s lo  yN&|(& d7x_+_Cn0Ealn^0S&9z2DKq\ [] !B#=H  wy8 ?&p |Ts6#9&+H ;c9g Vm|) 1 fK 7?*FB n(/Ev4e+=3G{2x ~KjM|I?^ayoO0lJcW:)!#U4?$;`zhPqY~ncpsd^Esa=E83;kqaiPmx B1#bi|9}Vf> +4( !z5a'Si Tvpd"}eWTtRm 7{ONq&T:),1) uZtobj8Zd ]{l`&zY&M YGcU58C)^3*LPom%0QbTZ% +y4mqB)FdiC3E,PuT.1|/!LO*XZ6E,&<D@jgtphN[?%atcA2|n{L6-,/k%f6!id_'V_T^=k\nz}PXW }bVM*W}GQ69m"L~=8, 3*]NcGAuQW]`7>%whzi]s! _Ir..*k5hu+po?*3[y/N zkmDTwMr5 *gaMVq/aQ @_[=f9 x D*AA4, :. 7oIj a~ _ {(MB-2>F9j!(Zj qng5e&K=nGnAF5m-JJy!& 2*}g.P/&z{R:i>}AM1xgCkB>@Z&G]KP )`VgK;9C.Xryim`4/at_*dV+c IX<Z{P[bVq io9ZE<!7_hMg{.}Ma&%DL#?arKri5' KqW IK)9F[~JstF!@30a.A5vQ$+S\EK+xObVrFhoI]<{I0 l1P"K8Nu!7DL.rV5#=X5JDwQQ1+zs2 *T5v&nBIC._cvBYi,wkHL/hkq%c]gky%6}{QHt>uMn!7[wJyL!VWTunSRwY 'tJu_Vw-|zSE9)u^( ],z}e Z/'xsyiTEuJtr]|Kb MNCJm1^Vb^/^|s%l#C _|a\=B^Nnm"3817>M@5^Wu:D.mwM/h h WAvuj}C K Asfh\  ):Lk)]<RU@BZ$%:x S-~ i%"7Dts;QQ\H6z /[eY<C<s}Xl_QgUlDi IaY#tnyywE& U|UyZ$'#Een@uurt9[HqGp_vkg!1t wa]y/ztR7H#J4^'!dJNP#55kF >pck'0^J [2'-CE ">NG))0CmrRzi I1z(yTg*h`7 dG Gd +F;9Ete 4b%M&t VHyFz D3b[=BCj\Pv6Czf@qkRhE [<B tj>1 eXfYbI'8Nf#T-n/ t=$ ^`* t /)T: O^# s5 P99QxF\~y3o @xWotr9kIqOyc0CKiRT o1`!N8  />9 '| `TP}+~j}'^[_}ctHK\3 v(tQ;BtmaZ!.9NX eP'? 1)sPl~Dqw u7O =hE? uoB4=dQ 4!UDf3 F ~J ,}l$ O)(V- Z|+CFa b{rtaK)`i^Q]9=#x~`@|0e]*L{",~ar +8+/^( "DptwQI o,#_g0c-tr3o|wQC/ -HD kj*!_,Q>1~RZ2jV! 9s>`EBS- 93.s=| JNZ }p 3Gg*!jJ$ nEv)@sJ1`Mr>"xM>ZI>k^x, 1 6Dz l>h'bEi H(CWwf*PE-pw<) :I[ayk7AZ13 [PSgPyb'Te6 xQ!.,. _u *]hB`Y> UxwDJR);.\Y$Y|5GfTd%fFP$}pXm.PVA:P00vV(hYKreTsly>x@O~ix#Io^7fEa+6pN>j#}Hdy1j1'_n|q#Fu)6#ar}d@sP  ?NC 9d/XOPs1.-Vg&*bH2hq 7T{ns3N.1cM(TkY*B/s2 ttE_8j\]L! f?0 6W#J/dd<C}pZ XpstKH/3l,V@;LPpF96+R=eX!M8Ylvk:T vSlu-[)~, l8/{S(y\9y*& '$gX %!/-T xHA?v0@s)8hy6*KQkx4:4-n@s{\pH$iG8""_hR=k ,!KE8;(I.nX"- V m W" >j,\:6kn (Ql$;z g: |w_W!O6e@}a&Dhl*;*if$:dD oF5GXBT&.fop=4.{{0uL8,XY) 2+xK>c?MC (3/~CNk^0 ~iot_f$2l7ucS1e ?~'.^7 TBjY\b5~ xw\,7*[h( `_(IsO#3l(\~VsZ>WEaeSbcB^Wqr_vpPo?<aG_fiKOX fO8-#wzaK$`X}t#N'8  V {n_fDd|"Ra|mcCG|g@40J?ZhJT'=rIi0]L((c{goD .%bqx;$e267 0ex*k&`' M1LZm gnQ;@Z@L,#oF{O'p2{61-+FQEXxj - 0n[R =Q L i m~AT IK~ kK?}(sl0?#'=K o,Wz*A ] 4V'})f?!ly)*n8[ +m}k  ~.T R:Q  h=^l( t\A](dj2  T^ Xr^~{k2p3;u>[RKL03G*[ tqZ  3 u-mIeTOegs$skdNh}@+6)) /6,y8 &T HlnnJX*E@/WI  wr sv@;x ; 'C(} [g^t,' B K`N- 2p-J;9G#5E% A `zc Uc;a{M " B yWxEFy*=&q9 # pU*.PkB5)oMFGtsVv+ a{[oTEY5$@$: $gQ=*) 2 !Gj:mOS.>U ib\]hj$iS2$  DJ i1umb\\ 6p{G qaYEcc <&1 3X Q:zd (ost i 6GUGQlr|ib@ BV  5  O EOX4Jr~X^Ss6  lz$ V:?f  mhKO(rq-Z3' 3YDEP[80JJ '@H 2 fUH {t Tnj1.P \1`~X,l8`SS>%#UR}Q> ?QD ,0t%z`|2.?$ P ;4zxFgf~HFc &f8a% :1d ,Sb@/63 gh 3LfB!(:!h t# ux);Rgg8o.8J[W z=1OCW(Y 2 s bG9T Hs<sEhyF%%k(EkWk"|`Y,zg 2\ z v/ \jMdKuu]MAm9l  +  \ Pe<A/n tG!a*jM%yyrHf H guTFoG#fHhOYe-d4h]Sy jo bu4Ad  rQ>E7'CM?\= ; \ZBLfO]Wq M-  L lgtt]A$Q  o!3Z(|}Y|Z O#J* K`@n^[ {DguG`)$|(,rzO Su+ pb 1$q+!qv`JBYj4T`#,.h)= K|R 9$ x b w4pM`DRq_O U?F;:g ,^KQ +Z (! ylYI]gw}&G;(BWs?mfZ j &Amp~r]8qknV2%DWy44A An |B{G]VYf5nrV}`e!rHBr @ G7 (w q Fga/7XaL6=v)?Iub*qD>_ : H " 2 6q*`Ms1\L*7JK'uVe]Ns >K}i ,v x oHy=>A;wh"!0 +\-GVC+9K8dgw|& M p c`ZRZ";Sz^$KMLHo88&0xK?5ga@Q/sxJRM^]1:V^7I^o;afxw|;tX9LZRSUR3{ cQvCJ\cv/kQM]!9jt!`Y^L_> D!1HLlT^2 A, 8{a$sW6H: VhqFn>M'9LB67- ~(`jzM^U>}v[K}lxw[o[tzMW_=!L9 Y0*19,H! pK^Imf}}gATd3S}ark^~ F1 $V5,I k}ri_bVKs;|A]U83MgR`OGopL& TXpa`iWI21@=wC&QBbE84tg4ad[#zBD~Wc}P>ex]oub{"sS= |TTLc84U"m6:`_Z\_>SkB|?=$U)s.qkst`s~q}uH 8J 2mj| +QZgs%y m D; vl<7([w$>]/toq'iDp2,x]]P+<ww >-pP]]fT+Rn3is1DLb.X ec$4_=/(W5)jmCM 8 2 A,\rrsJL}$ V( fkI2ZG~cDp0"paQ7`  w q X_~D.E b}x2=F^f1y )r 7l)1V^'J?gH5 7c_&c*yK D< y'|DOC;+dGLM{ $ @ $!jI& \mF6U$L/B;M P&%|k G1I.;[JG 7#"o o4G7V  ? c8CY X+w 1es&5FR5!{ R,Z7޽)CZH0S: ZV H P_y9VT` %=MU OJ6n.cM>7yuajrB! vm P -  }4yYc;;?lJM#heXFisO4   ,'8j aq*%ayP$Sg*r h({ CJ'!hA% N=;-M"u 28#`aj ICE 0;90JS #a@X2*V3 V);C>AU.#/B\HN}qZ'v4 OD y@kْ0  /p QR 7 N" V Id$^"dJ|t<M{*heٯ h p"[AV PL]QC /$em`}AF@h~:V% 8 $5g  `Ps2MhSu7-8FCL0b}J9.9FbY X J T9+ Z7L_Dbn Cz~(VGaT2!) F<<_UKm %#h4 d:L /& Rk ,iIbTfXe.h)a.~bGI'9OSl/ E 4F3 : 7+X4lHNZ1/2rB`fg #pT&kQ#O  oz@{i[ u B 3.p%PnU!} myR5 VP  ;3#+=08GB`jn *R?iV,VJ@Bmy- MkX6]rr1 ; As   MQ( h3?hY ``omXI x^|@9SJ4;1A*J #^<h ~MNYRy6 q7-BRm_r`Q,DFW3&I^WGv3f& !gSfG dQ[Of *8t@0X8#N ute IHU5 !==?W k{)D }-j]k GaN1nXY %LIx5/LA<+F\~M`tmp 1. 3_  T [Y4o&p3FMppCQk KEH+q=:$1Q2] "9:- +,FzZ 6k/zsrts\v<,Y8_Ap9y? 87>y[I /,#?A::&^3yNWil/~Uz !H, c|9 \ 4iC Q u Af2h.2'@+ufni+mBC/E Z>D7B  l I8KSMI <|Me[\h>g(\Mc%W(G>}3-PC+)M8c {e Myy_{#_XYB~j&l{Wj@L6P4YKl)_) n4o/=U8|pZ D6 Zj ,7-~B{/^}ln57R< ng; \o7 =/ 2_^N\ epRFm~}'{ .l]Fu0&<m QAL ?Tn,+(F-.9xNL,"3sRy?g5e} [ o2*\=AL|}p)#5"MtlmNs&T$9/l.Uv PpuR0/ }n>S n.BgRb"]] 2 |V  ~ 7 /Qrg]z_\-r >9MI~*%nr $Z#q n-&*f@_x( 1RxjF 2'P|,@(;JR/Uq+Py*T '! khv> }~I Lrh) JZ4tG8*U *N:lnH,9 %r0_ob )Q[OZ|]H`n= Eep6 } /:07q#z?`@S3x9JL}lt8) $F(6 | h (g~s0 Xl L.*I7U#D[{,wxCu6"vq;;1 LrT?B lx4F/US#GTpx qF|F!R} ^B8 +D1@a), u3o4"0/cZagtcS@F(p)(yvxii!  hD9T2B!Wrh)\W:13t U\5qYsW. -nv,hh Y~BZ5kdbso%*qeml _~}@OT[+g5JU[yR'lJ)wD{AZ. xsd~yK]VNQ* ! [Rqjs`8G^M[ |<~ `Zfj<uLfB[o-Jg8QBEJTP(GzEc[{ Ux! }m rn-CC"@w%g&3wR1BY|QF[. [L&q@iWp  $:r ti B9.A @w]0}f+:B3}&ps>59 f l;\\G#$LA:{2R`S'͌$ ;as%BT j  a xc z wrmm#cKSŒ> D%+BSh _k _ Eb --  5< 6xM m&-œؼW.*-'TO3N%""J ,[67,v/Ji"$7ک p3o5/$M>ج>k o] Y6|ra06Q[]EыC (/+K{imqz - N&Mhd<^MXuh.[enF:" 1$R&!(hxM FZB1g^ &fxerQ \*Be2oH%dQ) 6 u E K 0A {f7#Q 4: -"W3 n6( d0sMR a N\ \Id r g6{Sm'C g :>Aj\& DAjS  3 [(( X4mdm:=% 5 x'5  = oL <\ 9|iOk8v~[ >O1x\\ e5Me R[N+OZ[K   : .XSCU>zVhk>|UXk#&|\ 2)9 / BUwW8qCT0x-DRsi;: ht\(Yxq? F   ( UN&MeV*]g0W8.,! _v  9 /qeO|Fe(io6`G"\X,N7X <g 9  W*V3i,FP6HcLdNsXplD? /- Xc Q.>ceTmO-X mb4NxI.. ;X W` x  F_ hg:]A<.Mh2Lf  / @" sZr&izR1_Qj)V[P+  w d 5 S ?4<Z;!8?d\(Q b;:!\]I%)  ' r% te-UjzgF41LR+?, ]L8 } Y a W  FwI}9.Uuks!{Uj  u  ! r U  z79$0{\*Wbugw6!>=<I: - S jGR1f9-MXR,X.h`t}-< Cn x a / \ .#a )}b}=O#.w \QiY  : gD-w w^q&Zo#xHF%;%r~ p ah  OXb^ ~~<O }=ACZ(y==z?J^T\#@;;; } 6 : \  n YGPJO^sHP)ES_&   3 G YHUxxoGKbC/XS7h o  r vo"0\t !cm7_874 C  L # ;LUB Lr%yHGfZjONNdm70+0 '  =p-Z!4i\O~mw<nJ:Sn;d9-u)W"ky J [ ,/5xu5(tzA CulVtj|y%0  B| c ban{z;K ? diy\>jM N kWp Bo  0  (H~J|mZnw &]=/&3\ARB) u l HCu   !ko<23tRsjptNicZ,"jP|o  T8 N  Y#F@:s%rX( <7_  {q+=qa*r>Co6  W7qy?t4GcwW @Y V |wB|? V }  :9Qg.9i-=ra..XZ 0u   P6,{tSTA\MZT_N e$zKW47{vzWS| 1   0 k~V_ pN G</JC59o2G K9n \  _4n\l NEU(WPD5:]C$[M$% Y m ~ f WV")vI;A1]2So'j)iqjvTiQow; bA4 Z E0g\xEc3=IeSuqcf41T] aDMejkh;MU;M8@={'|w `37rLGxZ :m:z!y}d`/.~=bdC$IU5``R4R]VzvO;5Bg^([s1qM}.:43=J9v'"J*0)0Z3^'~ i|SJ&2 Z&ld/bazt0Q-(_SoS: /`KfB#@B);k@VD`ChL-Mn*=d]Y?qF_ 6 ?J5\VYU)R0__=tSZu.!ak xJVvSnnVI/%.Hv6@X?ec.hNB;W C~x!V@p cfsLa2S9O>q/8!J \oFyZc:=hay<lCkT%Cl0G |3'DR!:lA0AH #znkac I [GCB W ; 2l=\ i UwMyXEc&P%I# '  }'pU6i0Aa>6/ Yf+ S #B: U -4oJgm&=Vk&xB|'C'9 H=5`,t2   ;\lpL-4\F >M*jVIg& #-& y vdYZ4n-bLwoi [/ > s!)]:yI!% i| pnt7*S?+"Ns7 yfP:RGKW,w7  Rl B;7"~[4A }I= ku)gY2G)+*>(  \Sys D xumK@1Z(\?AxaE?$ y Lk6zb^o GE g&w K^Q<  sR g {v U7BE6S !9dT\, 59 eNBJ5<[s#WB E4{,+!lm!C>/. zYA{D}f]y0JLsvq%8m*m/)0{f&iI8!I.:*2#=[OSzA.I   ; _Ti^wD2xh>1eIrLf'L} g=H*O m  h + [ ( /\6B0I1MXGcv%;oRR @u[%!yt s u? D  xyrv4OYCe\ivUzg~_B UztRs Mmd . R lig;SL '7t_SE@A(R[~~W'"A E2C <3F:  B;!t[;p49N' */&\UURkDoOW@ V N? f Z ;9r8_T.*oSQ :WB MK bC. S |F&76 257PrC,jD+z|Is 0  o H!@bf]XW*TD7=KWCoE} P  Qvv%Sda4Q9U1Z/~u:9ztIDB7vhm'U kP C  J N}8-\bvGuO; *1O1mC_/[u3j!_?   ]{~fyI[FyD `wL%]*BAx !aqm ~ .z 'bm&A-} $ O KH+`cc'HBIv| /q ] - -$;-HM&:+.j R1wP2m/9EX6~V "    O! Y>{vcDqI3U DNTn22oR a'f 1f  "N4{[a[7~6h/uWJq*uDV#a^1) U82   l(z  xrb=~Li(a!#076+}K`rh Mxff G3 QU0Z(EJ&-/SpFMd|G.Q3T"V  + w: ]s seoopu-I0!pIB{z!`uD[mM^-@50f    +;_q{4 OIosOW zPV+E_.;#9!4#Md-w i  0 -w Bw__(*rN5{ UDAwk~p0PT6asd9S } l2ws?J>Y`S85LB} # r:5/'\)bH0&.??9  R>{ LTVN.t6 y@8Oy%8Q%DH (niHk\uXtZz3 >v >o%NcP@vbMQJnGeQ_]UUb;s!r= h(@ ~r: O$c%MF /3#r[R??We@:#W;Yy2!& q[)f L#3K5 ]Fi$V2 O rXK_, TmOa}"6l$W\XHlA?+zoMu[dB}DV5Lk&EPk U?>81wl=:Nx-."AkvwM%_OdF/B7-cH*{qD<lk:yQv\QuG4.%nW"BD m?^LL@} 8P?gh'&MS%Q{Y$:gz)lKN\9> y@*.+{4!7og? @2\eha#gYhH^_K75]t@1oKct6xp< LNd,O|SmgYMf/Y tMO>$[rz t bffm 0mR?+Vgo }8 3^2^J_aVV*(vY&1x1px4cDFrp% 8k!q)Qv&Ri{))5u`xt,u!|Jg/;3 5 :uL :I+3 **MD{!tD8~k(4~my k 9g F -mj/1Ia:xoOc_dpiJGf*}{{O`u[  8^t3D\ y=?QK~5  W.e,dX)S y"?d  N fs =-Dk7JGK |y6=a2W LLR@4wmp #atW .~ Sn ZdVlx>u C   etgu n%T\0(a^ j/ #gi jUS 8 nsTku i s&"u9X 6q.L1]e>d:$9$R rHP 5"?  A!K.c]+z -z | A{TQyJ]OdEh./.9t-J AE 0n4{?&q x- $'R3Ye.* L ~q s~ni!UG,S"Hr*>R[$\cE w T_ = t5;R _| TF[5]x)zbCXFp !(:S,o2/:~O 9oD IJ98xF >F ) \I 9TsSOo ['w[+a$+%Q#IZzzR|d-C  S%K^I6  ` Xo!V8]AthL=Z50E)c0 W [N z )S^:n9 / % O'~5i PC+!0x0m lks D-yKJ]bDs NH N*VF|&R@jF-#T(W-V"% ep!mvD ^ r("DP ,Le+tM@1bh@#1]NS# )6F"Mk 4Ys LC[sZ 5 mrL@["x AreEVJ~R!PC%(JxNf] `_jvCT 0 IR| *W}%\u#( U$4X)LD2~F8nJG ]}#sRdvpSH. T m r 8]n>d -^y8SW#b^ Pj\G`  )gch`5) c O.3kJ&'2y/3H71CK?!$w2t N]gB|i hXWB6=I. HMm.DZ?IK/+Id h!< fQEN& % > Q# dTK " <x LLhU?L2+xy9CT );$q%,31i= X> -/` C Z !pmy;pI :5qlBdy`S63# d%J }z d) F,~ -e[hv  G:^*a:A;a% l/'##  -h b } BC=Wl cM y+lSl6 F{/5'99A~K\'8 )'l 9`641iB EQ9)~&UnSMCJ< b3*g5F!ub5zsmn,I `/ EX [uh_@"D9fQw p\\w(G_E?TZ19@ 9T m/  },O^EpSj2(Q8V~ -'J03@g[4 te#e27  p5mJ2J 5zH5H'y0"b "|7\(SEJOK`r?Ko;5Use[0i5Gl$h dC]nNh!{"Nzmiyh.si) ?67*>@}u0  $MyM*Yly9Aw'lw-R:4 q_[F 6h ?7=6#&{8DJLh).Lg/ Awpx\5/ a i &d/lwE^}]{m2 O H!B`K>g 92 {# \ -n{b) l6'yPSqIm{.LPa:0Y@30.&02r8I(yyJ1M Qh^RP7kk?~\~= F\ssFuk*4)be%sB% m{g} hUS%;dpKZ,60p;+\zvNU'| Iw W%T  d% g9uULMIMDz/ G5F;.7Y%JM_uaT6  y:]q$S=cg$FOsI Y*4u"6E 9 ^ f#@<ni/E8N +Z3urE _>/W"Yc+<4:iB eg!gw~lCm25H|$BL;xQ,@t="ek// : *ate 7 c@{[OXZ7d\gq ' mPM EQp%0x_cB\Y:Q[*P;| zCdos dI._{pePL9rlx1A Q : n4s(G4B659+HtgKCt2F|&Ri lFU, f{cHGC pX^/c dGK%g~?h%^$ 4  XgG \e 7"Kq>'AhI |^a |LqY ADWXJ}/tL$)Jg5O d R2xy}D? &crQP  R L7sadk_UJ35 y<"s;2E( h ej Q /Ji;rd>T )=Ly 6n@j] d0`5([_{@6a [tk l$$ C 4A Q uA"QbeS#4A!'"%SFY/6G O5 | .:|X*GoqjG)F $] BBkhT0rlcW1} "E#ta1 9 ybZv*D;*  W p^wUB~jT l L4R65xbJp <  o  2 n7b<  {>IY|G <-/3~I&TIf\ 5 o<w*j =A@} rbz@c8O;<d[|/tw4 v5m*eiVvxn{(-R6{3D#$F  a D*sC9n a wo, 7?{vel), + Vc Z u hpQ 6:i tEm G"-lR%B n,$+Gk;@<>%c %r, ucjzEu#Q5H;  v};zhm]I9{;TMm<X/2\' auMH% @ w@:G ;e U//<m 8 s KH&FT/.H?8\2li(C#tvu F  5 "! %K{' P_ 9i$B{`%~/4.tvDQ;.Sb 4. o Pi\*c* 8 s,Tsaa;:D2N;,K V|rC)V5nUVCHN#83 Q Pa z YjTMvi6DA&\'(0GAQ]pgWn0R\fsA+t/G, D'Y N p PjdKwAamP"l~0=8~#e Ehd/s-]> K`3 5z:HC{"0* TON%']C vs|7HjTRer?&}47M3!:ns RrA-,v0- U ;4X=e=W+v @Eg>{OPQAyxu*h;  #D/&nv ?r'T b Rh $  q71| ga niUu`M0 S=bWK[+ * QM 8D 4O*H"=`, $@l20[')RH f"z\Q-4/JbS0Srv ZCVV@ ] o86<Z6Z bHF:%u)n%3,-mTLDH9(;0[ We X  lku)q  58]   c@ ` ]MB& EOK3 qo@J,Q][  \zK$}-zpr xP]kjhH'wg.1f[CC5P32~m ,m04N0R( - [ 4 ) qN`VUC{^'i^'4y+dt*-KCS}L*+); _^6 _ stG "`n&gq.T\6|^(K~82H>RS'   " ]sh \U 6<A-P4"G. '9D.NW&ztJCJ+%/c c+s` 1 J T& R %e RiR{4F,K d7oK +ED_$8 ( 9i-= j= W +?`q d \BQH/Bs>o:8 2h>u/+Km:e]0~'rp AF   Y80Q,gB "b{!.s50s9jm<)K=zWF`1[6$J\bZ6k+% B89`$<)F~(#v8 Z@moR(G3A>Nl/^H[uaL|s\4(d=*aBql_9xgc>dc\ .UkZ86(Y.$ZQ A{\l/U Ck)X5j}zyj;HoB+T gs_t$[,)d%>7 yxbKA2P%4PU)x kdEh(/<**j/Y{UibJ@Y0~P%=pX'P>2xas3% ILlDs<! 8  S'8;2x$46^O ;dU D}&o19d | S4/KDX]OPQwL'Q =[?h\0u?F\ .$@Jv;4m(N$GMi/W+~ |WA+{AC,w A-=#21eh 2_mL#tGi!<:F(]-vr )'iu'Dh:ir& "v2jTB01~,{3Wz|Z2O'B1OJ~t%nG~ $;I_o,k Zqfn: U}D%e'eDgjd1s' %&co,Z:PkRlsO.[&r{B8`,rH,-M`@Gw!92(GX9P)7[  O7yU(E XlKr7v(qoLlB b+kUoasE`WV 3$p{e?u/ l l@k=3)(w~ O=Wv_be.|b}"F7x};s5(6i\~G-dxOEUC= ; #Nt|es| fyXG8e$3m#B+FZ O [ 5 1Gh3^0,iwI,[`HJ< 0BD-eh-\'Qe|St^V |Vv} " )[}Qe P{rbKuf4h&8.+<Dd2GCF ~ QJ,CUH_|,V,!XI>;|0 (;]x XS [lA5=,6Qn] | e}gFhca*,Q denr*j8fg(2p[uSERJ 1w4_D} Elyg7l)S] Zsg>e 1,]  * gt J ?}SrJ D U Qs<' fy0!S#%b ::h /& -f.o Z:#fq[ b Ha{ Y_69 Nm.P8/2Q ~j7 9()WK%f= /]|(nRG g [;Q? e*j#.;oMP>9'pz& ;E yct/mQ6oq  , VDZ+O<Hf"j=,A c\D=)! k,'kc u ~EZ?K5LGiM1?k.Jxzhp./(*Kl$\ojl <,&GV ch[pqH(Aaf[vSf:?$)2,"[O'Hu  g ClZ)42@ $7sl'W&/D!Rw+n/\$0?EDns l aS/R0 lp$<^A CF2q .d4dSzMpaF(G1o 'rY91J> H gjn.e,FzAkY, ^U (lS7]m:r~u6IY!Yoo ,Hv^  ]D  8CV0<W  z>!|6Ye'p-s"s3-;rs!< U),?Rb<Qn?Z1 G bF;],$9V(~5aR[\ :G/S_>_QFjp?cnt.*e=bh AG| h(U3a]|!.wbL8<A01"]k:uq8/Nw\+U%U)X: uL eDe  ,t4MZJl|kjqW5s3v()a[/^\+AFV&)m"0 J35 Ad6)  dU`VsPt$ ~{t"9I'r-Ve|nn@Xr+" Qk" aVyV U8]  EW8 M. wY#<,8aZ~(#CxVe|R a&?0y'EOM|j9V}MFfnR$"4o6(u;5~c]Z){ )jh1,:yJ"vnv{5C B ^p{unP11@kV ~ jU0w B\.H hv4T)L/q$ J,3j-+ #` s 5t!c9 BpC3w*&. [z-mp]\}3x6M+,;F{.o& ShPj$ p!h{3\@u7J_~FvVx}!pk5f\1zjgx}A(sXW$- Mtr &MDgiUs _nuG~45^?p p ix}5C&d/94= 3}YX0N(-tEyl>B'|  {nFa<Z, \yMPX55+z6m'\|F^wnIU (j)5&3w A `n/  *hCqW3^m+30D!p*vqrV3'8* -1ZMJJ@MY&3(1i/x` !o 9(n4h  UYw%UW0Hv|v^7yKi&z,Qsg}Kt6Ww$(u$y_Qg0Be  flkp'< F.c+ brO|=f]1(IJS:j&^ FRz p-w@8_{ =]4h'Jx5uF B5="q,`A]W`R`Zm"DfrQ'(n &X#^*Sr  Kxv " gGl%CVv7uOqsSm >"Ks>*5EK5n y%a %GlERH(9 H?B\KPQF9 ] n3N5 sDN,,Aw[)<+9"K y\< w;/+0 YI wm]_@%KwwDHRL}?1gkml{LmE]) %=1qh- STlPm[QZBF%S~(CoBBAQ pZaIW]~wo u esSQ% (u5 US!< Fy%EX(zK ~Kb*;3-eV;Gv'XM4j;('iS3yb!_L1 "<{9B8Qt* z)KIT 5xc+0Xx<<)V\y ]z}Q;T=4 w6p.cpA/11-}SE<Wk HUD6c V l-si ZDEo).w:W O4{=z  tdk~t(wC"K|Gw5w&y9g|s&[.dk*nt~J#w|Yy6Xa>T`]{K.56:C8Lx2x 0.1e:matG1fHcYIb  ` {no1(w{z FQ2%rK gB| ;ibYS/@<zF;zfcy6~]Z%**L&gs./>)fw 8p<]At0YqE[# XQ fmPeXvx$-G$2L)^@.xAb! bx1~4 ( bae7: y 5Mnl~$x;a&GH*TMf@18Ph#MmO\6}~K%O P3{D 0 wlBKZ$*I&!eY!W"+:HKxT3F4Wq=c|e:QBs~Wgbrc'DBX&t&(iscM<2QO'4^}=45K nFj/gn7J-|(X`  Ml~ agrk!$< ~`c;.1#s\(c[Dor( {[4WW{y*bx=HCUW*_":`I f&DsHpS[1%L=SDYdWZ\2 0 so>~ 3eb6M6UlG*^M:f%*%/F9.]c]8+;8(hG)'->l6=bH#/{,P$SD*Z_a_r}>B,^G_YU5.Q'Q.'=;@Q~%Gi>*3m^\|foLJ IX  %MN3-l=E=z |6S=doiI*r*` m8u{} \E:eB?nTzg, O;"GAFa ~IWE|IYTgdM`{fjn4gI*JlA'k|c31ZDZbL i7dF"} : *lt` zrRkcw\&3B0xoo Xdw.b'R8qtnt{N9)[Z $ @1ir7Ei*@uX+)\ ~3V*o8ALQg2ll^Kb'*&I#TUGp>m-31|Y3@M>{7_RfDd(DIvOdD>cQY(fNs),9S;4/U9rdc[cT= )D,cdT[D^`(+gKz7?EFH.4VK@ kGOj,t{|HK\erkrJ.^~)GdK#rW,f ITBlg[REEDZA%gJ[;|O' VyGd$D)w3a1K c>79,GSaaR.Y2l[0 pBC08d$=rw!"vf}A(2`OfsJ0 !H=64"<g'>P?>ZBE+ks)_#-5460E$Aw!WcUqZQzYTp,+Y1`, CPW&R'<"od9`z+c4H@(?GiGM44Vw2(,vOve ]$Z`b_TX{/37ui] |eikIO\+MhH.PC!EvP15< /3ZCmq{s}):y^P oqKf] '+2&D P\K*xq=@aK+<nVGgvGDG%XSJv[j(I|xfh=Q\"Y8pOAEi Vjj\bKVXpgk)jpn  fEW9p(*Q]LW^=dVds\A/78kg#fMD/[83*4~PTCCKQD^DNk k5 \OfDkN@>_L04G3KY?H0z{c=f{Tqgci#DIAE]bX X{:h,_|K5(@'($8oi.2kSJ&<4)X]mnRp*fL$[4d/UASs]0D-Yy*&GMdhmP>m]qqc$A<l@ %$n7AD&^1"3paX$yN??#SN>2V]2FZc@Lc[zr $2lK_[!xGVh*00q7Azur{gY$LvOQ9 3lWv(* N09\&'U6Y$ktUR~k+"lVwIf Pa3.*,FqQ| tSCt rb/8jOdpZfWNUghGp]y}rf(R?8 .H0])dY3U"Rg}OaWtq}\8EV@jf_{t]xmm0y|Xl,!G^u,@0Nu9;^$pns-V?iD<:" nJ_kO/[dV m}]kvvOXF#%z!}+  d0DEwjlk23.T2c@f ])+02nIH[`, 4 Vtn~OF6MItlt?FiYO2NO 6*.MU/%D$A!1+V=al_CU-8aghD[<RqORXMix:'asD6fd3y}1bK^b^G^5-d3sisN)(1|RI^gt"' 2P?eNLk< lZO1 2Nb|Zw)247JV4kE`eRjcF" ( N]o@Xzp|LpJ3aKQUD7c8Q($94c,ZX<,4~mQSM 'di[qhwreSvoG9A fRYZ1;D|?-6g:|SM ?E % %.kcW]; b;O(bB;d 13#48 N <=u'e7>0Y V&71riy5&"P7 )aDsFFD0+<)/U7+huM{+=[% 55@>'{t+bLIN1clD~aG32|tb?0?%O&FM\'X["%6Iuox":uz*r3Xx: $,BR 1..^5oZ<=# l_'C_Q u,vZl)?Jo|ep'1&Pcl]&I \4 ( wq~[|Ihy(#z+fgy.-Cd\;& Y`:W,CQd:-K7_X;^-NvhHX~vslFI.:14faClhI{tsg| K}H4h`u9"_no_>+vyTGaznW( &K<,~N7?WurI 1L> WJX_JNUkS[H3P 5C`&d1i]6YtNQ"kda11 .%3E1:<4"Z=A`naG^5R>M,9/&1S+B}IujXbZjdI8D,e#@]a)+/m5Bz37@6qXe8^^\Tit}-D)2zus  N]xa)$Q=cS$31KqXc1q%uimqQ_ T^fj}x}";3pRY4~b8WId{=3>V5 ,{O1O6E[So?}xfq^:+Y.V1-$b]E>/Qb!6&wKksVv9Cij7gHjf.v[`g l~SzLub\<_10q(36K_ dLbgndupfn"URfllgHa.8[v|Z<0vYVNqY[dfxUte}Mjg&[BD@8-HP`[G[y~ mAd+N?{b@Cw`;e8*;$zcVnTa1X`fo9%wa=[gs&=,&,;R@@! N7)0+A&J;GYgFIU%n{rYP*1-$7'xuvo[be\JmOp=avXVfP @@K9Q8gvr?G=Ka]wcbM\~qixgKDaU$kYeXyO3MeAX1>lD#f/,{dtnpib`B ]RoX[qtJu[zbsx[YZIefLqr|ufz{x^~TmpQt@uWDzLd^X3=o_XxEB|{cV\NfHdb$3$A 675Z=Dzx',D6$'sm7c9O~~uH~pcQgNzlCX[`[aR9B- jwtrdsQKiwo{w0G6&M.G%QGjT-rfmwS{KZ,ve1M|}Wl`<:Dpn|x3nB Y l|Yn+G~hxpwyzhi`>N9=!J5.%`+ A3'xnHeW[gIRPuX*/n> z>e_tuite}7z7c7oroPUC{OiSz}ivyTrZ~y`haoOE{lJG=mJW /:uX@u4.Nvz~a^j8~x]G{jWCnN=,ZPi$?Rx]}m\|kp-O,-% %%l}Sq[tw Pi3X]<[=\^v1W`gPfWY4 34)A}Dx{~PLKHCxmz~~n:\W||ihd~XW|aNfgQNL3 |x|B^sUbsO-:vj2hKkTGXx[govvav|4OD"UQ=j6Ie}hfZh{l}zeei}[loTjN'=^,)28 }nwJ{yPl   kq&NYXduseRr_zkr^oLQgpl7_/uc`>)6@ !US,M!0&vF Yf#*';Q`Du*a(!y G .B:Tyc $ =DN.*M,dK @UG,$T T&9ABTw t j9#]%59D ,IN0)lb Z}uX]'D DZD iFLaB _>5 U  9 > >'tU e \*| l5p )S!G249Y+we la_Q]%SD +$X 7yg 0X_ =Q /$AQ.o wR *% t S:[$zB3(~> -o28S)59  0qdG!( <dQH U]R^ [axf+ov  48]36/0 ! ;Y{v #  }Yc fu'%PrM*h`5+]@Y=o? > R `F}$f\R_8, 3-1 @iJ `,) g\M{ ?hWSz7 1 "X\ @Tcn -4/?M ;3fK8c{R!n^MQDYopHq,j jwqb$V@KPT ZPv# jO63@ <0wC. C<F i=(4!F[2@yz*{rufgK87zD~ W<m > [LRgJA_7^t:s$L^eT0q:#  =Fnqh (};c~^U`IZMX"^OG ;|  #) ',h9@X< M S@k 9p@`Xe^>'=}NOk/Hf ,w s i*<JSk*!mz i% g~ov: Z>!C- Qk.8 [ u 4OtV;V"5*).U>OO~0i04Q= V1$n}>C ' ] |H'`rRK 4YlzW?B) &$D ,q# Wn}7s rXLS4I e0g[=pB0UtJq4:uuS+r &# )r+),} U 0 FZXC<7R 7?@!K'E!%. Om E;a"R*<2(n@CYdQM,Clvx+!d P-Y.XM9(# 0  '='R=o0P]r   6 PO W%!}2 J{Nq@O<"0tVLFzU&f u. XYg 7  4Z&O+_#)oCSr1[i F^'XM#a%>Zz_{w7%G UUs|lZ:"l=w0`dr}WC2D*'rV)0u0K8}\b0M'y/]h}{LQZC7 R}:UR0 B[XM{0x1B38nV ?/yYcGtn. |P0^Z+SO4 /}Az0Iwm 6Mc?XlY% [`jEl1tf-}85s>TU70@^wU%naPg;Phs3jjpGMiNb? ~^F5% .Iv:ux`1+mxd|`zVg4 i&<LQ.43$2BXE&*9(GOktb=g?Ba InR9S'[-.>.f)=]X129rAN+2aG;E^_#JjPb" -Fp#,.!(1!5+=@ "q"::_@0iL}p~T6lnVwYz 3(E"j^rlMB.DQ kgK:p={ 0GgZVfT2B=A\]8 Q5W~hcpp2/#C/ZmHaNv\[pM{wfEpP_qv={:M ]l_"&D<;y>##c:tW1 58 -\v  T*=\ @&y$]` |m_ CH OE~| 7Elo1Mj! %7W# $hj> PYl)  _!HjhjdEvh /c w^ 0EIb6 S'Zr !l'NZ_83  5 l h E ^ % 1.H]  i QE i voO 9TXOn gX^  <(y 8`yg _Hx $j| W 4qI=7J<F['u7Kz7q0B 4Q|.Zz x<- 3oGa&S0LRkHe6 &"8 )-9!<s]i])8V+%oqr L.Yc9c? @A VtF^^5a' q?SEOkz;Y`"\kO7)Ns<!2@%@&-Fk^2N!G80F\0!+gzZ2iVu-r;X5, ~*IEFI`yuxCgbhrZj _T%n=?j`@`HbHErpQ$jQZr[-5j* `imEA8zW}MwU8zkslFsURm3 Y]] Hi k& s( :RuX%>7?z&>c b G` B(tnYh=FME@1!zvptP 1rMA^86"#y?^@T }u^ 9 1 R0;V};E * G  C ~; %iW $   @{,n%#~VxHxZ7COd[l7I*>gc`Ll/.kOc ?oy7 3k{>)#8HTC:[so>}zq\tl'Bqlw9QqnPa!\y5(1Cul#|0fM(/7SD:R7e'" T]UOwcSnb+em{t^!.m6O0y"s ZCUbQ-`m tW@bCrfW%'\38HSI2:XyUv DQ[ S]xd\  vFf}&8>,soKF Ou``>c|nWkr5&  gd%N0{hj]4&O 4Q[5iCLCKn EKK(,_g>6PDY_`'rm?gG\J^[PU\iIJ C&ewGh+xpFJ&CL(8f]PmjZfn4HH.!YL|vJ$6BMM E&L=,[.O9 _(o3wp9S9}C3d?[!=Y.M03~\S=ZkR@ Ak?}!bw|lrv`Ct&.;E1dAuV>p a@E-Mc#S4VwK"A&7cv9d`Eu4J;fC{oQ?B%uj#TMjljR@'f~m~5 s -(g\<nRcpF sgd3_h?rABYN\s7I%4[O+L2PyQfvzd mx;C:V\oj'N)Nr9Trcd"|MN%w}xrPxC-9 h[`B\*jJ:$d_c_a;i&v` ,L29 Ve{0jTNIS DSAF/FK*@sPPxw HJ#n5XY _<f#[ G1LJ>"5UoRLSQH WZ/J(1b<sDn{B hVsz>h %Yo;~ kh`C^eml( }i eG({G#( xw?"G~$dU: jZ)_jYd>-_)BpQl"# wO fla 5"1bP2QI!\A<"^9=u6%9@X9i#3-`|vuy6]AFh~>S7DKj:UbS[=P=%Y}GL"bv4Fm\5of<`d-@0/=l@%<X+) IM[cz:tID*t<)y6/1S/3uA]l~q@.eh`~jc n jxhgBBt>sQ>>+tT8?~^@w|}UkJRJ @j8:H3CKn1^m` Hs0F8Zb*>5pS`s7rtz t"3AL"c $E*U#B\mH#_y6MP:YMqG)Q=97nI[ ~7zo-'<oB!3zQ|ix><.gIPqhz_z )Y.z>U_$#ir|4A0`$C9- #crrdSl@qV*4qxB~n# s=]+R|Cd%DpD>/ R=U Q?]FX`|v^f./Ep(1yZ&|Xc4Q&C\7Ihc3~- R.U_&MJ"$uPK]I/kf35} D$+ ^qf#:%`EFee)GZ-\\3~]u2z{] &[,M;Q[_^C5HC]bvfK3Z#ADEwT4 0FB< s{N{j:N^@cb7m.$6^=.~u|TNKFE~H0sq#TKy'KNV/E"5CyGd*jh"ECv q@&K^bI?~r6i5DA7Fv_PswHg{@K^74A'( sW`h- 6yr|opy7[OgodT9'*)kXV$UJ`vN+;Y|s1> c&hy Z3WxCoc=Z_Rw0xY"XVcl|6^^ j7s_ P))$qGW8 AIM2Z r6xR`@, a R7, z0U'Zq{nT8XN2BT8 #)S=wesFT 7/ eD ,$ 56e:2_t} R=p/ .2!<.7Le  "#B- vE ,w)P/y#rMrfE/P\^+v'4o:E.`  E{ J8nw .609FrT<-MTNT/-03(_!V=/<Q"Ki /ZSd(-DmS2"H7O) 4JTM  (& 95%O&&h @I rK*8\Y XpA "Z'/",xonuKr;T[ &TsS+*Q;-cQ]9D0,$ M T,/Te$9l\/pq Ez+fq=;^\ )L)#G,"#=WW%TK40vhX[@(L9Lf?.E#A5g5)% !, D^'^w +$ VZ o?1au\#wK43/B7 Fh7 k!%U pP/F OHe"'6] s0_*)rzpW =oK>Bf'~ 0:1J%+vz^>HV E p Fe sk3IF'eT&ia&4^"}qD HB # \:vq>- +YfW+%X*^k pc4,Si [ hG`D^32}9#b"u1#Se^/c}+"4C!x" ^ a[ T#EN/k*V47!$P`R4oF~$4h/I~"o C _ $V~ Gw.o}b#b VO-7( 3H,0nx  % 1TIZo l B4aqmH!CJA/1Kqq U $N P  ]Jxrrp -_T0D '^7"oYsBg @ X[ur-`k i ( =BYPuCyQAU E#O6. ]< ;R  N[T xF K2*pEK4|%27hwfq J 4 HT7i"{4X Y m*"'ANvJcdNk['d -"2@AW k {0F,^ gm[  _sjJJ5EZ'#Bj R  F_e7Ph 2 ;v5us?\8O*~ !! k~iR I c}EW']2 G UpeQ D u7 {s$=LH\  JU5v3;}WV t~OZ>V5:J.t,2Y][!>Rz-oz]?6o }m#-?* VEA : |fe)w.v130NDbXW46T F*73` p )TL1<jc>,.?6<74:}8}m>d5  pdd]:cSSCx,<KzcvJVN,Hl2N8.-0YJ5dBeoS* `eij^Hg%\B}~sfb3zC+JGQP"69lXgPi S_qiVtYGqwUN, c`Q|Iz3!5-]6{`|[cD(*ToFH=/i3f|l3y~1uLJw'p!1{^?\?XU~tU1Ezhh@n Htf:f3O D@9p4A)z6: I(Q y ,(!*'cX"-+sK?B-\@g_ -a ypmm?4HJ|`_>|0d<4t@? k C 4 RmT2&L"x56K_1)'!_]`: 8 O |$Ot5-"GoBW1c}lq:%NwD e4   m\2Zf8;~LE#CfAWf$h* >5 TQ NZ2 SaM.=W@Ge/yJjMmgo  Mr )0K3=H7~[hGNW'[UpF%: .QI J L gR'M`<{C  zZPs#Es7Iy >{h @b / <- :NAA Iuwyea&}&4|k)Td7|  :{KV Q=OCV@~)w;q;7r Y3E3 f e ` / PG]n g1\:8z_aM'i*#!*KD&.k ;N W" k"Q1SCD88I|[aHlU5 @u ] i]'NJB?)g4_~/~~m).L8Z3W? Sj# 3 v1  4:cX?/-[)>-Db`{p%2&/Sl&? 5n N j jcC hBdR<I+D,qp*Uzndp4 KX O3 G V kkj(jr*{Ey&EgZrno)i/*4LYQD5G n - Vmo@3"gShJV e\x|b[  9e h'&S!Y"ev;=3Cl&XjTgcS*6wPy]/9   L T 48`Q,$J.)$fJd"A&/AcU)J 9,]& /9P-Y mB+ - g}C. =I2vXWkW4A!r$H[lNt_ 2Iq2Wmd=Y+3^#[Y +9+v.:,oyWrJ G@]XM<|3M#<FKMlfT 6Yg+:fbGY)]))L':vyC6?] V&VYaKrsG13 o 1RN1y"-x<dtR:ud2#kAuK$ 0n:GQ}p2Ci[ p 2 Yl RIg#Rqz -n 4YAEqyQg]]pg  tS=/0tJ q Z"Dj0UQ7W+6cR1e0O A9I^9mVB+n a_ "f V  ?agga@aXjH]]B/r F B#!WC5#xH4z e]~8W8H `{jXMf1Yybu) >$" "$UG 9z  4 :k|ru 0* =;D _[>`*e.*v%(K$a 4 ( +#-n3[Z  ]H YN<9?P ).$_3p!{"1< P  #X} c DTu&, X By bzwo,!fkJ!n(}:B 25!hkP;ٍ-uxp JH lU u$l AK%H4z2.~;r/6`'=,~)n>.,U]_k7V/ ;2 m-h?& ) { V 8n hHGNFA-:: )2%e -844Z0kaBCS ;YQH  Pm ux,Pd  OclKs R -L .#1} OO  b p? %6kOq!d %U4Oajj +b,g+ 0{PwV+lUZ @`\}Q }iG: vqQ>EQ9sZ6^* :l}O,/V) +]U \7z<j P ]VN_B48@F^,F7#9`xyia{L`F jQ 3 pc]) ?M+W0& J"nt-sh uy5vZQ71 XI^ u *I:IHT n1 S"+=w:e#yw6*W"QP4U]{ Szs*PYSc s'FYlvk]W!woT}.G/?: :~7lC  C]Hp5uVC,$l \pSY9Nwk,R{h= y{'C =. FC9BPI[jB;,~U8:e" ?\0 ws'j@D~3%^^P*64rdW H|_#6yy_G|  +e  A 8w =63 fw>K^BcL5oV.rE~G7#+fY]bKoC+*8in L1&5^| (C&r#$kX>jL?[J ##i0 %`N#$ OI 6hNlY +6\wCw9u-j } X I TqN. L Qt=/AAX=ePjSty1"ex>5w  ~T ; v Aa t}~sA`Q/.V>u\7NmF 4GbQ._>Z h0 3h:?[ |erfU/ B9@vI-Hu*\c.{)&h ^7 5 B 1B"c F(s& "q=>ouR [ b8j>VGJH%'s-s^aIttK6!; `] # t 2  ~Y1zUL+qJXy>jP5Cmi9v߫$ Fe8mf . 0_" :0m'45{X2"(k_i" 3ZE k $x-&- bi -iI_) ' kxU,!XvSd?b- H0  r\`gjnZfnq{ B 6!: &-MqD{RE9=Z4!/]7x-K VN

d{sL #_)? c(O6C[ R OVR1e[iYxM1=O,ML-M2o;_hC#6Z< R$_#5");v^>B 2 #q\hy%q( ?H'P`C@TUO|U*8$[8"}! )  r*Ax3  /  DWog/lw51;##/"yy;{H38sAF_Z ^uf-$% V o;I<m+ T%d  raMxSYgm9y l:a6 =| s:7s>IZ{E9c|+W,/h x a:89u ht6V }}TyTq ]+\D{ L6,xGjiwt[6l({ k\uM w*-Q z6ZCC9VXO.>`< dlUe\dU{ ~bT[u's  '-@%`UbCfcU?ie~;`6K>kb B>` _Ka^W~f$0k<|xW\>V-Poboh; r/ ~p } q^lH>tmYk.tx xs9 *+YSzJItNG9u'kSuh)t m*UxFCg {C g7*Udv#8(Ph*D j%K+ kd qIaKt o N mc=T+ZS*pj~&`*I>E ;m*&PZ7X!E! ?02zKD&(Z7`mFXDP}QasR\jaU#t.CVae\,B#NC.SvmDGLiP@Wtor*/,.`mP $P}6MWb-j0/i?rn6WU}iTI 1Wl"8 u T%GN?e-&p{o`/tKFm1nlZZb RoL^t[7+V. =v(#=lDK$2|Qn6Wfz@|/- fW&gL Vt@jLT{UyZzSF `[ 9n8Nrz0-rr3do'Jg :ICd,f@qU49M%igLIoe9N c>={s0 ggB: "8gNMg \#GSe#!z NT'#&x}'j*z8j R,K;oY8G]fZ1wo"+umGO ^! nY*R+/^u~c K'es*U i'G>"m)-q &(Jx_}HAh(F+HT+N_TdOj;}x+X8 BG'&)@b(jl,|+TTP(p` y4mzA$gcc7z{O M~; i/~v+yalU-<K@sFULXfFSkBwxgse# aT6qgM^F{q-TF9qs=iFkgoH7w:hcV&H[v% Y4lc7<5l r81R :Cc<%lX63amQvG2dUe)+"!aQz{BqRr5lhOp0PBA r^Jur'w^;Y5- y24 z:{4nW(-hV5^,Qt0b~>?urHp@XpchCV >V.d)xIx")F :+'Y6z%OxwtxC;8XQ"8V?9os,A*0=gQ6$= )^h(4pC8 1QH-EN:g!dF9WYe7<(2@#pQ[7uqcK wx9fkE]a-J7&e4*]2_K2%5~ yb2,W9qT#[2syDTY/%vtU&w!D3*=fCd(H$Fx)7.)yJj(Q]<)T{j?\dlVt LHNtUH`K!g)hU;b4E"c/Xk<i]vV)NY,c0>K-a2stYRs@B2=jGXsY) 1H*?o(Jg86/wjYfp]h ?}m"`E@c)"Iqb^ Up$6Hn=ep}>#Ka78{FKB8~Tq/bSoSR\[a+KAX0)k*"P \<D";!Y*0(NuVld[7i1<8 +iAC ,/2FJXf>}ZE:q9c%[q4_Pb A>5~ Qo+PLf<7*fRp)=<e*$Zn4A;(@LO^#$PE(CZ3 V#F36. `jkgjJ/}z4@s MBzaJN}{>d7J?,_+QM~wQQ015m/UtBS1Z? K  {/wpKdu\BE< jcz[f"]e :gE52 H~yHH\vGS =X ,Pk:*DEACWv2?n"@l-\t-w NRU)?>s"u,ez6;+ pSe&)VM"~/R9] ztk-x7;*LZLeJw>k]zfXAXBCU_V? )`Ppp?&w%4xDT+f,*HR?w(M-eU1N%P+qf&'d\p`nJrut!B4'su}P}rmNVIzt/v{gAp .gX:=]]y?mqC{l}oRK{[Z`@PJTp\o4"4Mi%{mdlNQy]*wb\8[zdCV(2gYz0|T4{k / `Kk(vnJKRE7 +Jufh^~eVzIB0"K!`[3 (L6Tz{K> 2ApnG`[G_^PG KNILH+2g ox=iPh6WrIgVH^zs5/8S3Y/8C%|Lm"A?nxTyQ{{}{s0OBzSBB@8JN=YD0lY<UrlVx7kkVOk~@-m@]@!mVG:V 1 Y>V` :JSVe6Ek$ dV6rw)I@t8Hk|2y?3&GhK->PujA#n@`sOyc#qIa?%][txF\ s hrN)cs}FJ^ )_FhI<Xf4L;zBrD}x'L2##{qC{J=D sK1td% LRD^V#h42z0[x?N2:!=A;FM9wcc 6`5N"dd:}dZ-]@~+v,~QOZ_O##YS 6 LKdOhD/?GNg)8Vr7oj 8h, -"^e h |N>|{_%+x#}XeN_.=Z'7}M7h4HF -" -5\ VO S^4b|jV[#T &7G10R!>wD)M|,0O%` (!u#e _W-?!8j=+kE<uRi`*  6,V`X tx}yy4(iR2OD`O:x(-[Q}c? $2 4 Rk~k=S0a|N INu =JA"/ .FaG8~2/M zZ 1:Jw2Fs K _O: L@}:)Md@u ja $.=)&??Z4~ V l:Ud 9Fu,NUxkZ %-  r|E9(dfAK^&&> KL$C)} W2? # f0 dbE*|Y]g\xu t N*_'{X y%P?Y*<{q?K|3>G+,4Fu9Hr2D {] X O sts]Ek!URA cd`$]A-4%[ { = w{ZU]&4vY -3%Y*%SD xEl. t:+9:k4# \ @,o^# 9!( 9 *$ 5 T [Mn#_K]j+O1&]h kw wy @CT@fXcTK  T_JC&ATE&j( ` :@N='C4=Q$N[x(_2qk{S   2;B=?!LKLj9h]iprwhCc%X?-upaquuzo8h(^ KAFuf""9 &t\}R3KKjt "k9F'6N*[y9Ab^Q~vUPk6`sW`(Lm!'3t]^.XSDR 7J$$)|K@C,>3F7e^nIxZ{ed;EE=S) ;?'Zg[~Zgx8K2]q>#Oy7){:@CTf$4t[P<: yNLL 'Objj(aNr{v*"!Dg|!&-*AQr b[XO( 7Iv=M}Ev9wrovOWO5{V~U7[R.<H.p. z1=o2Al X !|v 93D_8z&7SSnVf)&O"r }epNxTuz l,\M7J$d}5\ybH^lN1h+:n3~0NA 9DLx@>QxI/m";D= U 2eMSNWfmL~GI:PDV}Jb/Us0:YzqN=WwU$UGfz=~+9'e &_X HP>hKd3>[XAja[` trvaPT&/q3)6K4]cXy Uq}|yUl  JYM } WOl='G27MNo;9,}kF^v*JVlZu={96 ]w +x,w%zQeKg{/ G?Y2N~n@5Q TFNMp>uw` #gAZ {9}Nf+$0cf%JR1rs_oBa=>?eC1q6 BVzIQ#%1hH@95aj0EJ OgzpV2.[eSvtup=[3%\, I#LC">AB?^Un %l3*YW9AF~dCXzm?POg}Tv&^#/['K) Oc]pds}|rwp\qjIM4T!F74{wY5Ia/[mVL|v02;7`Xjh-U]2P3>tM{8A|WnXIPphUepJqlH/HabH=3EeK ']^_`,^b0-fBG4Q5LA8& ,O%DBSN$_hm"Z_VXa9AN ON6}qmn(O[JN)g`PRQV(T7v2v G[ 9brTt% 6a Q m}֤` - ${+ ?I=9>d1#H 0\F6,4 Y2 r"c 0(o  8Uzxeb@ nk ',fd2LMG*| I 1Y& n|{|N U g 8fU~+tdvx }*g Sbm 4 I s  zV5G3} <^$'/ cXnJey dq R o[Fch Mk$M H1\fJbq}ho V ^v~GjFj1Z3O  Rp~adEw2E@"sKvslV?fapdZb\ ye"!#%m5nQws@u).xVq()pCGI]m\wv mC? 7B wMBb9Uw@D0 P 2(V+^rcObnhrRnS%U` 9- ygz2`XbO?zs?^ &pR=/ڒ0 Kfw , !oYi/ L3`:ۆ y"|o;64~@0K%~ .N"h Rۨ {w#ek\y $AH4 M0(AO? U  4 |/ Ja<-U-rbTzF&4$ v+O^ S2M enV8CpssAy8}/G#0E  ,r 0 9*XTK:_bke;`<"z 0b [P zd  \TOW _\S}$8|:[H'hz:'. 0 iV x O A2M ,dLgRmZ08kE@+oGz R,=%WRCH %VbJhd^NfwO  "WnX ;^ g/]e'KY6n)SmGXA-$R*-G Aa=sAv;!:> F?A`nQE+fP[5;92"?{k`r |~#; u<fS~W?|n-h=rITKRXlUYXx^))LgQ",/+?}_39-3e5kh&|[JbUtx6 XX]g_p%[Lj.eW#)JNz( .kADt[++Jwq !SR-eb!.: .xiXyE  wG` oh~nEt\N=`)&V@Imwt)iUmrKHmc7|/kBi{h~% 5 U;r $F\Vk%=~eAy6a~MY\eZ   j,Dl1xc){0vvk0',@?/z ?N xR Sm #  K Uoc  jm ]k1WTUKq E*aH]@ 6s ?P \7 {}! d JrC' f` -o. ^! Rgc.l w.4Pj+ ] /fw =*3m'*T8v3p!) )~+ YN\ K # N? \ > MGAP{$ TVNx Z .p%7)*Xn9$C G )MxUC;h qKjyvu4/&}Z)Sq$q  |znI)#rkYn;Lg{jy.<lm=Q|3+ F  k 5gb=P V?p)]a_3nd [.  ~ ~Myvigae!N{qU)Ok}Qp xT Z ux% ^,q>[\gaK4m RF;": Tr.i?/RUn>8)X;!="/ NZ>CMG(XzrL + 6 Iw@V=ecIt|  S iR\7eihB9&@~/-uj*"Xd&Nrj 4]6V-h$ iU.#Ie[ F*XIg>b x{pu  SxA]LS.|L?2Y^o~'l#w J#]aB[r$sl nk 2 o PI@1J~:ud8F!! UVu+ct&e!0'4D^]@g<[85A`}E1~iC7- ):(W E#BC(:9k3^,I)l_EE]iiKoY\o^V$#xYC$0pkaN{gz;%i ]'oNV \H] oi'g|Jq+5ue_8ot9|.r q S'~"~`b x^9 ` :+ UIvMx&Gk&NZ'}*$ 1 >`NE(kL + WC^F ? : !r7bd!Nm W'RF:D" MY  AU\b D %R w %YidV q~@)0leFyla ^*@1=9X[^ -+ (B{y"tKbqdSgQ6#}[Bj|f b , Y ~WB4P&A-Mks+K9|0dZRaZ=W( OK>XEA4Eu%r'i!  ?R!RN0Q5I")@P MD2y?61|h: 7qbSokDyKhm}S}k<VYrABe 2GMa_`- iPH*U[Y! e}lLh=K}S~dFb*[&EhJZh+UG59y)'c>DV}UI:v2?$}a3KQ ~Uo5[ aIFC8HxKg~/;N.[b{K'zRJCln6^|%HPB\xnrtFpRjD2{jofi*- B"Y! Z%NhD   "w1r1:m;B=y:T@m\cr@j"m !Hca kD8VC %} n  zCU)+ =..n N  !x%> C}u}%\cY2z؟+ԍ{my"*&)O Z]@`4?VD DADXpJ&<]c5ce -$[dI[*Քȷݺ' @J*%A w\oi3h+j<S@? M 5D^ kqv<Klg ^;CjoH6ۼſ:1.+t jv - uU  NK" I 3gAk A_:G]%n&_'%W_J{xՏko% I>y \E | E0 W?PF km>^Y")PL7`Qܿ2W y!Uq*9_bubfj/ )*5RR  CTt CxVB[DYsb+ @8Mk3P 2޴Հ"Uuj?`^}NI3X": b5@ vCCEF &%s/m)U;Jrl\# FxFB $8,o x= ptE 3>]t\ E2F`RXqRi! -"  ]9qߧ O!NOFfHnTLQ0[Q {aF\^EOAL}UL1s1fE5tW % %)b'svG .1 5YWB(l qM.O 8 ' G_V-W/CA.=! rUq|yc,5,i|s)M  #E$: O g3$)V?u- N6]XWVmH HZ0]M'86rRg7}^;hO[ z;_L {:0 wsF ?:1 LqwAbl ?O,E] =";U"SXrqk- mG:b! Z D7k%HqAaqBELn .E;ROj-1)x%!s 4\1JfmY0s=(6f ;f7`: mz/zq xyRU haI|^>:TYr%)v]Q Hb)>bO'lo2"p2@ tmSi>-:iw[?',<.!cX' ,,C3YJ+N|8Jp\uqdbB~c]^WdaQE\VtNt{xj-9WkL7git}A.<05+!:WfvpU(U[9fI9RjLfZCyw4j = :PvZH ^ M q`Y>A?NT8<,V/<[jJ!3#b+i y^Eb1T xl6T]/5%(_E/TOm~PdO LA]m^ /@rR#t{ALs);DZ@RD: %(H tB{tGBUkd -E-%5G5FQ0#!s/ *Cex B/|G]D.$ ZC@2,pmw9OwbJ?HRlhzS1LuA^7': wT\:q(OE [ 9_'|wtbT}NEAVhA>/A@_OORWR&i-[~XWk*>Y[P  ./SpQh py><(^ tcPj@B VCdcB$/dK}G!~f<9`r.d;USS3M z $}]:W4?O*Rzc\%%oT)L&c%E%;2a1= Z^`;!rybxU( 9 O tW4HSKY1;Wy-.Ar^R woT  Q%.U@U:}%t^'k9) 54  H-a+=Ve-Oj ,@pV:78io6{(x r?Y |e73 0w =i'=m%J& G^)JubS {yr6p2/ ] YP#'? T[ h  oylZagXcx laW 5"!jr a f2G$[^Rebt@0 (/Y}Z3L"B ;kmx#Vo$Z+ p F| v 2^ 1n!&Byx_Ja"(xH= g-V6 =G<7Y9y SOsB1-~iz&=7 *0#jl[m ] Jk U/ u1\s=6|Yrr<wUP3%:}Pbg{1mv 9# 2*.CSi*tdilEiL_WXxGL&R3x ~LT  r6)_W&!Dw3HuS X&&_FyzIa g+ K#}^C! (d)?Y^ (s*P1 XٟpX(, NI#@;ur1qnok*BK8!BSILHU %<$83#Zy. L I.JjGfp /uPTw ]}xS}{|$rs7NG*Hٺ F  N\ @ :HX,$ 6 Q~+Gn  !M g ;Z[PFZuD[ V J*EQ*h;9F@' N N-AhW =;T6S' #A):]HVlho82av>/t\mO P&m ?!( R$q; T  tXs&A:` oga+6SMjeX}@MIq BY>  r-@ s Vm>no/Z?/8:J~&!d 3'&CUB1r  R @ j.540`4Y5N`[t{FGW[$%kv U2!ENEC+dQ LLbd5~32q(8[l=  ;<,t+BT;^A?P!jV+1gQ~^v%6 OYVSa/r`NWK!=^ju-L<.ST%#a~^Cqgi0,^C*.\NXLjatAkcG><HCtKfQfEW|$91R"kp@y} l>; vBU8pr#) e#to] yPwl&\?Y +um:ltR jQW52y2x0hpuzSKMe#r vzKvod]\uhg-<77uFejG`cCg]vdujE:sB86XAN&bi>t Xc|_ '0c|QB'}*%tnEhF3,JWL~ZyNbl}1~MLVo} G^oOzT  iX_kz'Dz2i;^Akp*_q;QXr@pa)?S&r'jjA~LP 7%,!rxcJsFUbd&vUS"56<8$iki{8W)5'?g&IQ&u Vb1?(- ;`{hGk22h=i[O"baxMMjP gfBK3Sg'?77;ZtiC|yot:Z=P^ P8CA p3]ks NZ7N) bX)Mp1\q0J>J)Vb #hov(6=U9>aC;I+[%mv7Q'Kk=A 9?/pxG8p::7Lxxtnscqq/xaQ86-feASGhoKIsHostk Joy-pgaEaQ=,c^ VK,BQ[s<''Sl4x07_~kl`^YTAQ  kzML+EI} LB.%Y+g"N,9gw BX C<u`zb=='O4a\iWa<HM N5sz& *c'6}?Rh3B@em`3xl9ibJ4h!I8^\A}iENK,c = F\,YN"S[oT~Qi&PKG t w'ZPcNQcYxV .n1s\LLj74WQB "@OKQ"zYH<u%P]F;UnSM} n|wh~ |RkQBIhd){!oo F/OWMSUT&I~=`xsR462IXip40m3wSR-SOx<42rw\   \3@RhoN_{=T:k,,J`W.uF8$Z!A-:+9AZ^)cI;4 ;+Q(,/oUCQM:C]Oga}X<*~aZO\k A*`;PZC1#K]5@aePu}]rp$n])ZZ.%"C5bU RMC XRQa`RpMq(nuANKl\-5PWo*K2NUL 1WibV|D7?ZIF\&<`$<_B .^'3\F"oegN2(=A%>]Yco > )S:uqv-e/0;z[AH7e).}P[;`vx1qxx`va4:`Y.=8nERzF5^ dI?(lX|+go '@ D*4K6q6p>a:19C .E8W+7?n\]:fZ!E>?QG*X>p*Z6M&3dh"E/,@N^;[.mU~zt$9?TzE~ vG( $u*HnV:@ !H0r-W5ZRK@i:LSh <Bq'x|imG~GuAPgSx IO9u|GJp5hu-$6%D+-43Vi} |DxJ5y/P_k "A~rclC6!)V]/@j#'nZ"~]<gR >?W_vsY<}- |7  O 'nhCSj{8"McGKSrPb ab_j#/IVju'VT`h$ 7_YI5HVm^=q%fd()$V(UOV^|r^XKT4&))UnI /pPRQTa6Hq J? orB]-Y=#;$vv_ r 8[P&s*"K&7liL -~_L*te|rGSj _7|G%? \_&; #u8V8eQ2lqNIA4SH=x r[w KbR.kogy%| + n;g9A&2 ,bP,V'HC2ErTXE #SU*a.j.-p' lMo.Kl)}G 0'8=0&1|@m^(2U'P+&cSyn1<%1Cd1rz3 4k`~f) 9XKY7^ "Bb"RZ qu<h:RT1\kB}r|+_Z- ?tnny0 8ucvC0 yCTH5P)sIC+8gTRR(g.AI[]n2 9;/*.VLDO 3 " R`@(x_Vc:Dvj<5C)ZQ[K@9Bv:+,GO )]"pr *!fQ=),bW9b  PfBySggdm  IE-F+&}LsRD}%k;&rm4s2N@ rw h!+ e=:zp   JPj td. */@<_ {  $ru!" ^~35 ! ! 4N  !Ha20sB[AXc md-e_{AWw9c, x W3 <HeT 212E8 $hUkk/La=/F ;-Ux LL6.6:~OGv   gbqYo" m d  % & # jrj&g75 n e- - b+xKHi%d9h P s J d 7 7=5OBMt_fz*[D,#waweXtZopKIV;-n0:XX=9#)%CR -  <FK204[Nf$Y T 2 jp)158EKk3tN4D rA%3',cw?gc G S G n!V;O)"d~9EP3y6w7]ql.;a`{_NNx8*v(+" IE*.@ Xy:rW9Z>P9' <^18nXaW?-zUPmCH9&hY\i[ynEM+#{ 6RhSUhfssn[J3FF|gb;x6!((D]YU|9Jq+hstiZtgr9pkq*`r|@uwik5IWkU>/U.!BmbCv9`XC?eF7,N!N h\/ ;4;G_2at P#EPf9F(vOo 3T)M UI/x*Pz!t uZb  V5dN- Ah^C:8ustDl8:3< ;K_,l drhs4L L}eSLMY=(1U @ > s^ *X ; OeZR HL`1fjFr>$ Mw x!Bb>k,Tt u/a n: k{iN4 Ry`TE};  R ~U, , s  Vv-&j[2 xG`n 0=u i4 p9 QN40)C")YPh \ ;T2N:* DY l$q>W u'O%DaCU '  ?  ; : _8?W") DSy =f l/? K wO "-4 / 8 p EA7hj GKN} leN j c>B& oW>O j!% BBe'V l0IwO .~ FU _{J  L(rh?  p=3.!2K> HA$<W/@ ,`9.!  %*q% unKK@v O 1c5 y#>@V"^  ,Q% 3h N ( /ag&'NZ q 0 )!O u n9|~8* 17xB> n0sk$ 4*/DTfz\+ 4JQn]t9AQ' KVPC"{OYTFxY;H}7-fYNms&Elr 5XCh \Uuu%+ >f9b^D%vH% DWfdX 7dF d mYWwq =szFw : M rc#i1=l34 PTt kI/%1>*UIl7,'*"V}  9?)'%V7K&m cD>X.%W g RFV$E I7Ve(9   Sq/yW/' cDe+gM(Q D^G.)P8A}}U{  MAziS9 rc-M d6  !\hI& g 7,]O*d;7@J4H}4G:$-A,} c $ NtWP  9P|Zp 4f)2{jFNAgc#iCF ' m @W}`.hd&$"G@g~cygj&B nXW+7twQF    l72e@gM5OwEQ}`Kh"B(%{ w~ZY l[ ) u |)vd[4ZIM~B{ p4N&[|65w|lvP`n 0 v *p6%}B%7TV-36"0JI}% B@^{~/"Xew Zr5*Q_v p o~ 2[rSJdvW/j]!6$ )Rf :3YB4t}@{} a G2 ^ KG_pl?_lu NdB-Voe#K Y Q>75 G+4F|R  ` P F UJx+do]m/ EVL&4S 7Fn!kz1e'8d}4>^(E}aqi D/A%K=dAYm #?/_Ul!.,/6+^dYf}L.VOTxw@ %SVBe3=WS )0su.$WnyEM;t~XS!G;W<F%L,&](3P a7PmN0,3,gk^i88^PV@H 97q]v [fy:f.u|/r A&>-YJ!N4:j*T^JARfC 2+]v\FYv  KzWI  fUHTZi}X RZ2S$B:<{ w 99l`8#/_k|QZhM>[&eQRnX,n~ 48` &SzkC15Pt=we:%LHd0  j[D]Z &R70fgUFyNZR\A"! N yV'V-xLk-6*{ 1~17{DEHsZ7bfp|S  Y{Gh}R!< N {|p=J Jsf9wKB bK,v+_Tm 1a06HSew/M{iKtT2@ A(`(Tb8->L9 .KBX -d - : *+I)4M6|k9t;{ Q 4V9M_+R?5fkE{W:L"Fz%V$n_-z7R"M*n-,Kkqm* i `K5@Mz*zR| 9   l4H~3! TcW "J~WbY~J zJ|55~0^'4|6u I K C -~,D.SU ,a2)6w8 8:A }rOvs z    &gyQ=Y@f :L}Y N N lJDr0 nA%e  i>zc4@p6LC#hy!X\@ >e# /  tI |mn\\W `' jc]} 4wb;L54B[BhXJY'_IW  :#LMB}$2) <iJf\@%%g (B7*e]; 8 K C# h9##@{H=YYXC69k20?kqmJp/2JXNj   SAu4a|N}A}]Q-c0]Dq}%H*4g^dRYi%1Z 6< F ryp '.hhYc(`_q7yhh+mSn.nNSt% q  [n7VF&+> 6v.`~4 y1j@7P%3 $=f|c2GZ}n +3@<F$j~Ii7F<. G11XQ2c= jd: "H.J8/1 j!F'*a [t%/5 uCFLM[?*_ H cXD\} R# ]e S1B  A}tgr>hf/s7- 2cT`0D$D4a-;< 9o^sKB,I'& 7"6F{ \QAAQ`#0 m{rRvN1zp-w }nqmc,L)6bIa V5 {3  }.TWz2 Bok Y\#`Zq.  S!%p N0J] eS`+Fk|XDh.,$6EkQ Gg ;M Q# :M 279 ' Mg5PTM 8t6"VY?F(Nk)MD* $ h s X(A.t,~6@w{{xMsw[ivh]0c,hz'b E# ,%D3Bd[# k L,#U>ore+H2 YJZrH <z|Yjzi /Baq%"W0_4 4% &DQ]O%]&xL6W@ 2dc>y A3` {W] J@ i*,F^x9.#ejVz ir$M(`R CETY"CD4MgKJR8Iv})uMs[nPL1l'4L.vivgQf$r '[U9SNXO 3 b J@,GF%XgcJ} Y[q r"V `6 9 HTcFuV BVnrZ lXE:}\\4 1@Nfwkk '_ $ L 5F-T~f y( i }{@X$Fg"B  } .@EEr6FR /gk#Es= v ,j  hAzt 3F$^9xm4<`  jSe](4YMtL u8" ? #xtl.Vvt 5 ^F kpui`l=z;f *[\Nu*eF2kw U'PD   c}K5TWWb=qU.u5*\*vc6-Tm^FN7z)[G|N{)a*u1 oK67zdJ5n#VG6q8jd _b=4&<%]W31^^}cow 9R]Bk_{j/A6#BUR}QNQN?b3=SDt?<\IgP?|,&z|mcdQvbSY|L6}#_lGR4TZHwxAR|wnTc8lZPTs`hV'QW0z+WmozeWD<xP_do>_y_1_kE?H9{KVq R 8-3`r!k\Gt_TY{_h)+)@G@'=nK*}]{|dkv\kcy4|\n^qw>"1>7@$uyMY{p|vTR^@|qe_^'[=_+k`j|k>tppljVapoiTreRmqxRy /BJ4+jEbaVpv]hrBw?h@J8F>_! EQ ISRo[)].|WB-IYl.4m]%5@ Q>SZ8K7T;p]I|W<\91fJS O PqGo 84y(WMCgujS`W u[vZ? 0=+[DmNtAz.wl':@U9O("&qBk-jvc-uJ[Tj:vi8 FInn$l(Srb5Y"VY+-AZ$Q7%"e#=2GzFaM&]i1VXkl)w\UUO4p $#zV%L+h ~ xJUku sHBhqV5 b4 i 9 1,}K#+uG{I k 0^kC;q5 P }MN ql:9;]OO2(E[ 5+vt'rIAjtP E"   NR,6!+ X A1{*lx" 8%au^K{4G 32e+f2 `**QBj& { '!v  *t P U XHeuJ^z_i' |/H8 Fr>*ucBVt&E 1 } 4h7-ca~-? {1>s_p3Lm$!Lt& ?EWCOZX):"j vt 73{ RoL,o /k(| +sD.\u.bp*O~9 N!x=*M&<nb, (u cW4 &~k >9`x|squkh2Qm_NV9j  |p mo vIgMeL R,$ Z:,u j/| _+ (^ w% + =pd)&4J"1=s p\26[p +=-yD <9yJHmf I&\r [ <A i >HYyM?x6Tvs ]u aj`vj4x- 9HZqejEMG# 3X ( UA @$W ::a6zPn.+@CQ 1z\]W; nJ2P?o[kpj qYh1n J)%7HAf)N^VJ<x)>dStZ6 q 2L.z}nzHG&r :Zl$x -J5z}w;aS9#|UmZ'{<JfZj2K0FTP|027`O'j*1ix8uc0.u)[Sy` Q~9.+c{{ufMN/sanYktLWG}Z|3,7SC4dIPZ!5Y`qfHFw ]8<ybcRSVNr,.)C!Yt@\m)An/$h#.rB yDA+fc2V4j"MlN+~o[h&VHZR#*CNq9T>@z@m|Jdw/uhYhgUC1p`Tzw7;fY='6[Lq"1HN~Gn:durDZ|t&j#]]k 2('L Ff;4(/ aSF+|zTjz+e$CRjCbuJxV_Zr6[1,j'y_9h0z]Q)|ClR# {L\2L>vPEejlHiEo^:;p>I%c  0DKuL}`:"rCOrE-$KQq>H .Dp|lzF<DvM`4[~E:i&%&D"P`^` DR"bFcj\)>oawk!enlSJwD4Na\16:6YIQlh[o8.HJex"|AT/^#o(+ 8Ft mH:/U $PK6@ $ (tv!L4n`dFf4,ZEi+#8t ^*DUi)MB 9&}9= 2m+Rw&~=0FX" J{g) 5LY]wu.k9n,@=lKBWv+7=Ge6prm+6=yrH02jSkPw%IQ#j3^0%)#L +  < EFeL$& q/tm*^- z9 !F~'27dlC7+HHT $ j  = C (v{0pM/q`t)VG\J"<*k7q\fJ&T6W.eH3G ^iSb)D_ .<ys^d)j$:]J{:qto o zD@0F> .Q":K. n ,{\3*XDLs&9v` 1!#E'q3| R%svp9  QW JKN4P?zjZv=]zQwNmBmiJje&^!3/.Y1 =4Q%G  HgI8_ ` hli $  x)Ld~dw:vpM_F#$*F!N *"  Y :" >= Zc-75 Z  ||r>z,zl.*yDY1 l||#6_d W98 "b] I"7 A1GX 3e~xvx2F @bbH z: vuZ@h`y{(u{O'e8P]+LFhsj1c Lkd k g}P_^H(0 wve~CwA:].jM\O?RDlnN,. d_zB_wIzv Hf [R1E2Ed-q\Q5;JP$:8hv^ P9&O x]W @Edf;S" f 9|R;hfC9K=ji Btm Ki!/|/my#hHS;csw8$|}IB*/&Plh;Ad/2=KX**)m5.pII%lmciGD@FDo@2KN/'TGQpD"MSs&0^s=h=mY,PcMi!@I l"0bblAk,&/E|Q)ZA[[5zUieK[H2Wf#NA< u EA:s6PG D w !D^KXA'|X Go$ ,TbhWAb_=2 <)?= +1w9u8n_k ,EZxg d?OD`gV_D8<Vre|Fk.5I"! KrB w"|T!XhZ2 `H\)dmGBj22X KKPv  S'  X  n4BI3(t/hi6L(CMI]-Td=S.JI4LS+yZ}0CvEn  A [ J<:y'qF D:.42RO w47.sqfqf mZ F ) Z/b;Au^0ovCeL#O0rVi2_q}?r=9NvP6<5V /o\~?4S-0pY/qla1@qu~k& D-o4r7DTi|+bAy%/`N7do_ AK Ud|X_o0F|8!c_-'__A7In I0%]Qr  fp@a R*z5AfFtG"u3xo+kA=\XqS!@AQ\D'3`3oZ 'x$Wm-M `Z _ LpF,x_i{ $Y-b!C&/+`Q[s$%[  l0d]4$Q 6cR%+@~3^S# _?; xp| # ?w .Q{4 7G=+1U]G5yhinj!y? Zn w. .{"Cr{ z  [id+h<35zR1aP1R 7bg # 3u6Iumc*! OTh.mdc#>'>B$2i gE;M h  3 \Qo="SdYKvE=YUap=FS]pS1#Ke0GqlG8,UAUG#aYL M#H 0aOpd DF="e&c9uIL|XYx?:c]Xrx]R@; A$xTQ bDN(?W2>NZu+QQW[vDLQUX]2 U1vX<a+ UDwcN:},LB`8/IuTBSYS8Rc_GX4!CrIi_ #I.(?C:/S6 [8G[T90@OJc@-s7l/ GT7O36kB\t x-^/K9YG|`|dlN('BU{R?=Wk0;g(rr~M$.EN5}3d^Ao~ps9(:6Y> O3h a~?2%G! Jg| ]G5* ).|8n<noz\rD\jEGu bhn NnO'4wQy:   o ?1P%~_iJ*J7/Ydl z`m5-/xgAwLD!~I}laV4e!1`(L]9J;&-NRz qDG$l?dL>H$RHnW5R:XEHnbon`&8E.u(OUEz#6/j;bQ UbsU|f2]HGO?5+zfu^'wXpHf'( J|h*E[j:\[xI'/?)B7P$pn:[  .NEU  d}#YnFPK:zwfnWy ^\s#JjHl8$(5@ {-Px@y1G8%X+pS#8m>u6?Ip2bVX|b6JhlRCv#*N~$N8zP9%lWue%2opTpoxu>S!I;Bi^}]yo96ywSulx|Z= M qM^ T G'tN"dS.}*sq%LyRY 7)6*3p(Hg1\ 1 Pk+W_Z4eLA,>dWLB 3Hf73W'@y1uoEy 9-~sIrG{R ?7.9zh/VGzok*TA I7\;E[* jc_F[B=se%F<5vW(_m_#-Jxhpk$%I!8:Nz\R]Z2xx$+\n-lb 6Q 7v,zwtTO|A1N{}tm9%LnVuhz^}y@[)`OH]$(%7QH&kB$sWE4IGy{$nPQ2<M/*N@} bTXDRm&Ns.tc5fE`j.Nfhtv1 klrklQOtjWhvs~XQqrQViuS1mV_5V\}%}xz{dv7;WQaoNvAi1j]\LHJB6P$73w26 T&'PY%^lIKl>LibHo{qvd~dsiJD85BFa   mcMjcu+DsITY0#H:g;k[{~ WO<=BL 6mc"`NfSmg'SyZNy=YZJg"56#U6]^[li4wtz}(rcH^^wli]Vb A8<>MiCpPu]Syczd~cztpvR&&3QeGBg[5U-'cN}bB|+eBXfWZ D4)Maxm0Zf}'s^Wh5,I,"<0B(1PC]hvuszlUklv{toIlwk+W\zfN,v,>rh3#3-"bjrtUby=VXn{V\orUc?HY9 5fCkudsD{aB`vYW~YH\2S{y]/.%g6':),DQ.9* 3`s\fUnpxwYw#F*H*>31J4X@Yq`ldz~>-hATY/[4Usz2t_tLcOLOXWzwp .[jP\[Pqx9]#h"q?y#DPAhoXt\oalw>X^{F}V:m*e)<o(,IR7p2aRXY{?GSn~"\;< .lxi9b 7>8Lp1l+=4/h"{Bv([t'><":} eM"gg=HAoQ.+p'6Ax+JklkM<oUO 5 ;@ 0 9| $[=dz"V~lH"|KMY1;uvj~;Kf^z*y7Y bliD*Ct=TGJ44vXoK?[5gYS. ;h wu"3! Is0Z lU\9Q^ZIhBTqRA7.Ni_x>&#;TZ6(x4mgK97g[T%X6\K\,&\'k86VW UeeX]zs " %*>qmk~&-a$ EZ/Q:TL uU#)HdoU9!70ZLP4,70-i]oYwQ+;,Q4GRIQ 4S^\]'yBu0Yi^KySkbm+#i>x2AU#A^o zJt}\J#:L7]?kk?#7SG>EYsS( CK: ^eA|ZO(3$Km!h30Yw(?0s_ 2n<+J :F [_Ui]@zMaEF~;jv[|Hl oz+QP 4&g TtSrs Bfs>-G87KNv^}WH#97NTo1rN4rLD&,wk_vm=<ya5_'nE+=@^9rpvM$VYY3#77g I-RE!4] GfO'y'kLJrf%s0t8FdT?1Lc.rbU('7DZR*Oh G"*L&qDTl)B-JqdID" LS,'inMiWLH1$yHud]*K!9Z{cn.bHZ {I_ Vs% U8hgILTo7vFj;A$rV+ ZK0L/jRG*7cflbPudpLQx<n=Z/\nxf54nPPwa`>~Y ~Q( -Ct8TI4+m !: VyNNN\xp;R]7WJ,Yb( Hr=r" b8*v?g J8;>Y,LtEXu}:hta N>Rs=5(uWJ O;o 'DXHaD+dTko$:8IOWb<9UMq8X,.% f!7Tc;o>)f*5?dU^FgP@vtAov}\ 4%r oCdhC}js VJF'TCp>{GgTt8hdpzd], `# a0/I$26#zzB/(<&2,Cn;Z~7:Bx&V-)t1C'@Y-?9s]eNmGg{l7IV X 0lJ)!Loe)lP_EEW'.9 YE~VP>(i$A`3! myWP1W%.A1N'q n`ZG1G F{ 4| *^Zn} ,@Dc'2$-<a4\^j5o\)6BVl^vd$=D7$l|+\[M  6nq6lx>Q`T$5*6#Zyi k"K ffS6U5#U %;,_u o%+D*".S1Hhx9.O{Ti4U[8/F%~3/@Oi;rs7s Tg2K_G> zo^ Q so   boQ+3  fo y~(<% gblKA$wq6UQlpux <kD z?`=.[ ^j9 =q{ &Yryu]> r~>l`}- x!CH!8-yB:T & iL.CAPWn[tMO}>5k%, o<6lht!7'8<\K35*:m)zL9H-b.m9~3#z s$xw~u[B$ 5~^}2a_q=lfX66Uwk.\_knvlh =5aP,rJ& Z$x\2{7hhZF3u\-gEoGo3Ju@9K~VpwKe*u?sHJ j gf6[/-E6we7)\ ~tnuxJ;b}}Hq2 [ S|(8PWX\I(lgGs%)f,^n^_"xpapZG5(Bm&,DWY@WH;5K^W%dHBQ:(f`i|NU<z>]!DHM*CEqW|SI{O-wwJ`c\p&}M+9HOV:V\-Y0-eq.}mF}hEto>|_QXxkm-|KIddC8E+%;-KO$}:{dJs~|'af%~so'_@n:W;Nnn_jgzg{\p9q\Zzr7e #Om n7,)-q{h~ryuX8- ^50\H6?}G^c_uVXtA[*q!w^HNU$T4Lj-&QD i ?Tkw%.YYc4Ru&Vc7A}t ^hp$ Z xM9^(;nORo2j  (ss%1!Y{47CDQ'xoPWQ*iAHH%ob`e,mD"y /``4$M}R9Xab|rK$,/@.eAr lt~V;P S 5S5y'P5HHOr70~<lNOPcN8U>4nDJYax-son^aFbeRwdVRWJX,[G%2q   7}+v./;'" q Y  c#7B=CcS^+ B+Z})j)QyN U SYo~OR_\/ %HMD*wM͂jTXU ͖*%5Wi  n!&5 i|p6J",VAx1 1 m`?_  I[ p{.C4Hj(-K *Nquv C  G!l.vnZ jO/laVMhXVp; M q|fBoC p. v* Ig TuzRh )S m X`[W+  d? w N(.ks0BTA 5M0t!V3ӆ 8  Ո(M3 G ^5#I admp  W z %j=.=ԗB lM b|  F eB_ K`m*U?0 Ct]X"ZQ6 )/TE.^С:Rcb& ~U $2}o IzgDX<?tuX$i65r:m!$K5@ubv&Ucls%O%- n,pV =w&Jc#eNt,;W F=%P/z gM% xU( O,I6` U c &uAE#&V&C /:O}.!]Z7f4 yZ T  > P<mc~ $?ND{Yȯ\ SDicܑYt P\\? 't =#"4.`:9>V/zPo1߄\}y S[f ~5g^/0 /-.[@;@G=I|nRrYPG@T [ AL -~ S RH32 ] nS wPm:Aiz6ze(tO=_ew 8 'q  `[d (D jyYvChtwb$7P8F#ބԃn }g f w C}c@c zM:kR>N85(3jYG7KL7`v( x fQ5Bb k(+gV^  C 9%h:<^Y,V'TItAMrCID.2ߟ I o I&8l S)eAv1 K FF+<#IkkK[Q^ A<`8H;^JL ZCS s P.j}? )Li^`q #grn`sEJ7<@qs=  5|=w * 9 c 3c nDRw&@3{s"Cx>6 E!GJ(D c-D T : Ml BKgt%=~ 72gT7Qx 5ieL%E% nzv'WWph % vhpB \%AV;:J bC4uCG-F j Vb 28 f, OBK0 _n <4"^j#r[?D93P 6 Szb, JJI6 jgI[_Z!P]|2>u[0ys/LR% 1x%ۗ9E8^ (I c lc[~:O c:eR.Vj'C;RS,o XK0($&]n[gx / Z**$xWd Q%YD^.mO'WSE<$g /.1 uH^ b ^M RN7Pdj1XMt'~*Ea"%"apn+Q 8{39dh.G3p7g-u%#S _4 L94:E}|r6+crjl. G Yr:H }Cx/{]W5%rqF6AO >;sm TdD*C> c  %D]  C8~g;n:?0&BF+DUw[ {ko+& U 6{m%u ^$HnNO dmpe%w B7V'w1R Vqn>:G g <j\ 'sb7Z z2l Kn~ K56&W6 3Z?>#'"Z7 =uX}; gz% x (  EuLd~UbQ5TNeB#&:@ ,x ?S4k^  333 B{ 6Qoaf*r!2}Hgrv|I$G7(Gt H52aB<>H ROK<2;mIk!9Q1`(0AT>%e Wr> ~g\]} i7\1&/" Y .d{o:b,@3v>[N Hg!2=q8 L_N\ 5 G"N6J  (*n<8%.Ar{n !4F <3pSh( 7 &D$pj?v*&m6?:y( O' =/^e T:d*  XDY+| p  eR "(AQ!-.HB?%Bo0@c 9eHL}vKE JJa !#cSzM}LX-XaRJW1E% G~1 g`!Zq @kXkM>M[! I >%`sj>>6KV:@5 KH$4 rG\ %@ b} 10 q  LM+bMW-MQ*dxVvUvH,I Cq 3//redb W>{]I T4myL#MD>4A>kED'j -KV( , F )! ]= 1rZ 15E;t]B 8+p/ v.sLR%M` UY31^'S#dBV G & PfB@ Fqn R,\ W3&1 ! ) |0: "cAT)9Xb#V B2c _AGC*u%-8_ .'O&_pW 0vA}8U=TR *fcxo'Fp-a5L6 (Cb 0ONB  h#~1Wr@i?U<&df[yT v`7K 0f$Jg 4~ G 9ng(}iS=5"< ,KILm d4U] JBC%A$X LTHw:s;M.|jZHq76"B {ya0A UNnh  a @ 8 ) n&KJ/\(dlIW*>8  ^eG @#[@ . 1F'pzC'i_ JB \*2 8JWn @^%g \j>L8d88] r5hl>Z;6::GTyUWn)8Q#k 'd 6+&8# #d .L)VBZaIl#Lne*:so|cYr{Ji!j ^`aLBwf ds2; ,c#-I?\&V;3KcwT Lu+^w zLz}_b FzHu?$'}(&4/+38 %APO^lLk*>b;l;1w7GA2hip^BP-ck_u"8%z;P~q-Pz[Ys4gzOCw5 Iqg GxCw#@a;LZMHw3'%nq BU p%T03+jw\fN@C0Vla^*Kfe7+r.fmIgT6,f2X4]!m - `=j,A ;x}>] ~ [<,Lhztz*W3;FJw23RH#L?j;b >mdG}_S =o`EK(I"=p+2MD~ 1{nn``k 6!o *N|n&i<<aX2s Z:;BB&Heyi> fAN!0*cwtf) \ 7I%6 iji V7Q.Xv}}hcx?Us=if}%3}.maD!s1 ; xs`5 *itg*+N Y :35Mj.5*;28 8[0Y_ &N+nO5RFLr*kNzSe%j6FMe@>I X 'H5#yir Wv)5ezo: !lxW*LXP'ONPeq@hE(h6eo2L;Ipj?< Q'?R UGu-b[dW+KN{1\  5,YOUiZc:.>6hRWY-_vB~cJ\zRu[J9u9AZ)Lk Yl{C 1.zy|PuJ ?zD ^{(v{ 8XZkLc[s2cd -m^dq`WBMNW-Q}*jH ^/VyEds@Qgb"Y7tJQ -RH'<IT 3Kno`)d7Ob({)jWF_)N cX/XTbwq1zQZu06h6Y\ TX/D-lOM8^ MX x1s3keY>a7H  e  THpIUaJ}&ct\J4  Elrb F0 ZH:&BL;cS0 yM2v/k5 xz  <0dy3 f BN$ebf*x"A%%C "VTi\ ;E~ )  k` )F(kJ}@UHguP=#$50e_%oalFni  =)X!g;N = 'F7/hkJ] *\BL/a+o,SA<] 2+ `<.S_ ] H%o=%A;Dh'*F!1K*, ^ea{y a#K; 5FRT<4O{ X8p)WBY&Za;/tK!1'F 3]Qh /x[#lFOo R P-0mJ"S3~8 ; 1E lF*7 Gx7%>8# . uz)gE9",T')  V,j  I <Az.i Z heCsuA2[2Qxi#T5`~ z/&M @/ ~$ vAf |iq4> 8^aJO`yu)Fh: Y |'}9>9 y3rF[Qs|),Z7XPFuit( \(>dFa5 g@'&qh0+ H  JUBh1YR$E;W:ey, o$A "2,oK>1vp35/o 9 k V  b+jCr%yPL)ZD9 eLB]1fAX{PM J! Pg 7  6 H { (\)>Z{"y-~> ~"!hofmX(iD \ k 6 FO'@)ctV^#zD)K0/GAC}bMKY  8 i  lYdDCe LCDd{(HK H(]sw08Y7`#&m0  j \|nDpR\>5-`3CwS.iGL(Oz\gC= z  jztLeuW}]/PE'h(s]DEf1@7#3B sWklHmg- b y |TvRXN(Fq7ggD+*L]Df8XB hYl '0/|| 5.l|.7z7n}6&mr82*W6Ji|:SF "[ >  i?@ ?IzR4hsLQ?YDn9#GZf`;;0 LW8{qwB,R xdPPI/3"JX`LKYh%8@H   \ "TO{-.o),J|;^hFS 1/~IA4P:LgXY<q$%wu0 aZ\DSI60^r;af{7<@4MmW1{;&f::zIu; M37(cC}~4  a^0Y aT+3\%.L#] _uc-!#` 0`"#hjvmMN8E]TolG|E2 0Vat_%F4e.IKQF\v1h<0*17SxI%FT)e* x}Gw[HjlXG[kM`d7|}b6\^z_Kg'^o*}  <-B,Exybyyf9\pw6<9SL^Ar3 *7)z1Q-XsWy+>*rkr?WF"aeHXMUcp{B'x '#-1%`$$FX@$8F7,0^/8h.4x}faVWw@zah?Otnu<4:  q;6zeVbo^XZri+ $s2"/00-8?47YpFuvotNKsHSumfr`On-LL1L% e7  fwueM~(QU?NJf_gkdQXRyrP4? @NjL%lx{J~nQGoxn=DXbD<d/bP7 Vz =Y @m!ro9(uML.a shsa)Gk &#c#_b&Y zO7k9F|ao=11 R&U|kW2 / 1 mJ o \-kLn26 k2dUX5:<L'L )P<IJ-x2&i8'.^UG:@4'a$ <%(dHu|Ch}L@VDLU#mBE$& eAQ\V n Y,s?~7;q  7 uJzn{P-6AV? =l+hC) *o o  (| m cu OV?}(oL5),%  ~!h# W7XL1 l,sR'oaE[-{6SJ3rkc_77B%Jr/f .Iks@}p,[N ]TBX# ]1{6eE= > T;+(R p<Z <M)v"vqoMK %_ ^[F5u3[-W6f*fk03 C' SJ PJ cJ55|,hgP/p""T  /x*ZS=DLPVL#w5c]> }X<| {_Z$Kb B)O!Lm# ,a''y_2G}/70?{  'S%M%_5, _/grnKEZ"Vz1 7) NfS  D >.rC((klYB}xuH=nN9%B7,yC & R:4;df"eWk3 Yq)$;L}t@`{&9H!H@Oe9#h VRw O T+z^zvnC4&80 R tzE.Cx=3W(r}X ?Ss7"#Q< ^ f/ 2= BP~p| ~~oQo|qBb g'64V*\j_k = n%gY q{?[%n$$'w 2>n|%U$KSz/N$$ 1RCT_sQoaAaiK )*)~s' &  " z=Hx/#d-d{m/D"M _WJ\ Yh=dpL{) >TzaepN y6  3! 9(q LT%@jt|zaJ3n>?SjGP y f2>B \,r"Qi:}p!'"mXZ}h h'>A|/h)i`8q tYLi\ %(98Ccls6x+pM_'y1 $T F}u2!o l$u /RIxHiqZnr>,:n y5f3)+<,nqCyfQkme03gS  FP+ *O $TfV= MhffZ. DI8r[/4-+Q B*_fn uRw:XnY(b-O4 v&1 v*mY4{:dLmIY#)q:QEF Rc] #r1 I@E`8M#BJ<{n$7&XEEz|P$;(K6| M$ %lQwWY. $K /k/v ?NGXp!75+! ^v kU9 ToCgT'Bw7]  Z u &PUjg_? P=!;~hs 0,p4{N-Mhv& ;>n[5b \8 ?c8Yk2 !4g}\ V.+O] ]TA* R9aHg X .wq$N\cQK+; Q fMh`UVH3u >w 5(Ih !a|  - RKP5: yFlJ}@r/F5Kg9M",%1 $~]V} =tR&S{]2am I v#LX:SyWWL)\-T3t7 E&n isaU_|%+Yvw 0~:Cbr}rM1if+X'd)#G('H@ svo ^dWy%]@8z y ~Xh#[x>\% 7C/P.D4 bZQQ[ 87GVs =NKF\u % }>"~G i]u,HM N`xq n8lL*c\GE*HuL6= u{w5VzJCUGM ( d7(@NQD5&J$'(KI I='|mU(h 'Gzd}Gm ) 5'jpgp84)*V|(q5qq]0n > SL6  $H'"N{1+ R}~x,]iI%g{n$)e H4'I)QE=Gc  w''Yu=R| qk }^ 8 7YW>f`&}=eK_ Yy&]hZRG/ )/G l]Aa H8F=P Xt!+ Y }Fo|o;2_R1+Fn )gamvX*sgP+YuwS 3  *j^b*d_W*dxhW Y"_ Rjm -2F}@ o }a&Q9j5 %s!" ^q5, p*f\@oTPrlMV38iw3 'LH+P/" I#Vrkfl@(8%Oo K]uE% I q6C(3QF].]q !od[ /*|Ji7l %(8;+M O `gEbUk=5Gn B ~w &&*XZEhO#  + ^U ToSV5sw_:L S6[!t'T_i17,,T|wiCvaKw}b%! '7$  {YH~jot Jo:%Aig/[`f~+0_9eN]=' K ;6p~)6`,l#c)k$< 'HKC_t]w86K ^])I \Zr5 8wZ^& {[?a pG>fV?56?q3q-1LBg0H&t vOj.$;h5T0yR @hHKKYN-WU L#Z)9 sF.x P.G/5$<~ N f[q! ,81e>$ EduB|W[ *;GK~9=kx_5N >I\# nI KQE^ ! ?}g1<G%YNVl5"ry= Ys49QZAFmsw(A5tUIZL(C Uy6_pK` )VM Mqq! 8|/ "I/g'e:ciLH#VdC  #F[ x/.m*0gl}  p-[Dp#(9o+FzV+\  x~Yk_ HwUny&&+ 2[8'{<|m/w)seP Dr]w.& m~tx<"h%,e OBDSHTMLAGZ63Fi0 iqgHg2s8y ",O}>E }bgX-i^s)Kni5x*?O~*)"I:0,|, 7>P=Z@IGAt*k|fM%4Uug# s*7.T' l {Qa^`f6pn]5dau$^Wer~Rubgr4qE/z6+9P@ZH2*K=MFfn{{?.B_m@ ?XR,vg6*9w9tLP% -7Ne8Z!)Uv9dd<-c F SzP[gCa8Mkiy5#0e -nD}Js<1 K4veE*zH 37u]k]7=]rA3 :97 h(}.e 9pV+eqL TbGX;DB|iE'UHy_ bbI,} F<O#^`xDe:6]Ml"N+-Qv; ['"C2{j[]>Z Bvyeux./3 4T cQIY+^gy=ya&5sS)u -urYXO?5"I# c~G#iPI]^NrffaGiRXaC=TM-Er8U?k;u8OX 5^tCe`vU`m)B=XO'!3[W;e0u`x>cpwdP&[SbdZoi_|cjXLMDZAQ2+}Zm~lw\b4m'duJjnbaxnrq#%>IQBZRxzvZcyA'IAL@P<2,"! L[^~5rWmre0$UVb1h1nQ-M'j.|K]2N<X9<S"Gq\9+I!W(X3~)>Y8, ^?(`eLc>}p8,,VT5mm[ UU2e\|@Xfd$:L)*m7 /FDVIahA@~s$J}A EiMaN;2z!].z5wM*QH)W.% Q+i[x|}sP>x# g_%|m^NwG(OM.XNq:SCQ/r\9ltJgFh/2^K`wcBn4 bF@CTB]{mobh`M@c" az2 w eoe[+kaSh dN|r|[tN.L?*oD\y@K ^@a1@eQ.yQ;GniL83!e''^Z^:n z^ j4Fp   '<b.D%VgR:P'8XTIh3 8\Cjz'/Yxy>\`G9zKDf^i>a Qv\TP+XN'bI$7,*J/?S$%Ph\P'h-m7{+m5,.%^s>{ptS*RrMl"qR.?x{l7sRa )&^"؂#r .O%CC@; K [%*0m?CF-,;+ kIM-^QtIq8f?qx="er37Nz UK3Q]3\ c *5<[BYb+c @\ ` Q ;J -; U8lL!=% ) di BI\01 GU]>`H:3*M nl&R,"*9a}`-1>e+ |w5MeT8X k" @P#vIOg S,oHL6% <hs25!$  \{b 4P \ ^'dK N$#+n%L!T+ %+x1 @j $&\m"v H#o%&e uC=%M{$go  s@" yj_rn J( A so%\( m s ?e =R  a  cGH (i H' f 9Biu XH5 J R>~<' =,gX} wqK|m  @ sP K 9$& *?x$OP* ,c8PyH-l44b3'T7Q 6G ^G{ZSc9E~g*&r !3 B1\KiSPU'[[I1Gsp?ag"?(hU o8[;Ip3iH $pebk_,= LbJWM}GVZ  r1p@SIt SuQ % &s!yigVe *^S V toC$ vr H;f3$Cz }Tu=T vS$/W  {j~xc. '0  *a:`2Kll-MO  E%0%p0 ?fAu}4H0(^8a K1MKcQCgc vqr3vwV 1p)U b<  , +lwp Z e4 8 WOMCI+kc;Z5!4 %`%) JO !A  * |Xp2KdiAWo@VX EpF h$Is ux9 Bu S ->Iry ^ ohO0_zD  ;>{f#j WK |f\urS6rjg,@&! -E``Iq 3a v4* N aLMU z Nrd67f k _!d qVY # HJ=RZoLt 7kCV ;LnM{?H0wmxg _j\,, :-J X0(8 HY o  0yhX(F]hceMFHe8 Z_  {9VoBcqk]PVYD0^ zO a:X:*5dyxbW~ B 3 PLbd 2Y:uSd J|DxU0 .]I_&x5ekKeoz*h & + N c U ?@R"M, tGHjy1H((u)*HSpZ<SG: [}, } +Vv g `n2J7)`hyu?p$0n3U\{Ym 60+ivVV =n I < zc\G 7aTHAN_dsw X/v74 f[&$   6 OdnO-cc$a\m50hmUS }\_|Kd+;`Gqu`DG 4 j   i RMw ?mLF]AWViCVZ}$v)e@490~9:@dnf a Z u&edT:UslCSc Hh>N;}/ Bd7N6#g.@a",_mO ~J ! . ; K  <C&jI Igq1)[=n8i:^bQKG&}[A%FRswXm5 3   ) 6Sx ;y/2 7  W J]"IiN\qu:4!t 7U PrWLez'zXB!j?T> K  F V2 `< `@Z[Nr; ,F5 N3 YZ /DPqOK^?Vm`Sr@d`mfz_F^'E=xp$ E7   ix/&uA;d=:![q~2oz<@Bq}T/f}dyI ue h GWC-^#8 :w'|+X &`7FdDn||I|Z+# K I  : [ inRWmWr :P#xA$}BK)OLbKkhp$SkZK ,LE  7 ./sQ1$"gb=M ]tS m]Gt{o=KrRFL^' R  e 9pds=41@G i> 5^?~qRl qby7u Lr ;Ri{p\+ %yIOW xRNZ#UB}-)QE`jT0B!5!$ 6dU~ "AuSqgf @ 1P^ Mk qw[- #RHv72!iTr K .p(#f_ {&klg 2 0(oWTfHYI ,(<T}.T4;xM,[U-!O=66 N7!D&:Am~ W O <@OFs+&pdOuidc^\  T7\;y^HqyRD L e~AbYNI " Jr^p"Ml8|g?9]K_(K [ d  ),6} z kj5K~`[VU~  RZJes>L5?J I}Zl4-n bsX )<oD{F~ = 4 `R5]akXP| =L  9 T!::e#M<c/ spsk#z o,D7;xaGz<_1rq; U7nd5O |mkY60Y05Vc ,2)3h`UA"k ' y :6MZ# ' { [ f*Z@ l#NQi4TyoGAe o 7{cvu 1Qx T  }YYakS gu J=}#ac:k% 'FeA[?4rDQ!/ISm$ HjRLW3 \&6FW 1G7 e TIj` 9 //+Ow a JH;,l4S(_f: ~6 tQ Wso zj`H.7X_`u? DR Mv 1 xliR[.);12Z?W _j< 0Wfgi(b 7Ur,ie{~Bx$U7>%E <[=#X;Ei-/8j}=Wg  v HfO [ iu[l 1c  cyFGop{U92xdgg{pIvQ `"!k *B ~ E]qf|X#~ -hOnTf0vf) }zs&Z~C~fWkyZBx_H|r Pf 33:}Ok:1vti  jbGXY{J}Y*{|(=  ]|"nn}J 5 K`Z^o]1J qYkXH%qVw6Iy L W#h#oN' 'cI<3/50@\g <zZ/ L xWOME G1; IzA0.( ! zeE%2|%eN < ]`F&|,FC%W ZM|AUy }KEl+jn9l d]l% 9 |V0' AH~x|N-Br|a sfe8)4Q\:^aQR9^'2(^@ KmXi yt}4E d 7F1"9H=#  d8 W;0E_M:NvT4!rk N 7(  q > m#'w8/ " ^xQd2-:3mM]p>` J])A>j= &'I /?|P D cEy;fir,y Won *b# 1 T(1&<!rT8*&K >^F) / |=RWiV hB@vikG  J vp0+t `\UDed[o6j HVsSr=-n m X6E  ' xw~t  !q#R:B5j5+G )l>Lw Mw d ~K& =oT39Z]H^^[ :V&_* {A[br1 Jv!z  $`*G k MN+\ g#fW80Q2 7C:5)Y2 !|n e &12 q,nY7y JzJq Tgv Qwo Mr:=6o)%<!:` %JPy ,ddZw XLL:BIY> `wc'~h1&@0x8OjC/L4 G42f)bW wb@v jbz jE` -bq;P%Rr0N[RV'z2! LtX  m8XM!h t&GWFi !g2 N 6w ]N|,h?R %r H{RE #*w:m g@jar Ct'@/dg& (Z+>Vg>87(9EWS|)%xV [$\'2  @wIo]osISkB^++cy<$B   .!w2eN] N3&:| R]>a!;9_4T) o{2o: " *mTzBY9)Lb*@jJ \;#$rb:WZC&pR,R:,j.C`SS}<+a~CX=MaPB(HSW1\V /2!}y$@Ghp'Dtbt#^2KwGL'/lV1.{Lj]Zg1~2Kw+U;YC;.M:5GAIdcU:| mSB 3!,s4PO7[[ 0zc]pp(F"CIsF\H1f\Y=TwP?zsl`|(8N2H%(Fq'8b 5HlSO X E +rz[9Uki^K?Y|[cBhQ&ei^W+#zXbrrzZpdZfc0 hPdJ#NP M={E AcQ)~i%%Hk_99EV{GQME&GfDDM^FmsZq A!4qND`da^Xu:Nv`$GM69145<i:K13YV0EDklmB`'4 7=!0= ;P%IW'2km:p1nm=1&[%/ f /h+osi#\*)nyIS_oMXg0ojh`o`6C;A[cNkV4{foL9TjcF78A8iLepx,0)8Q^rtV-~eThnu3J-;,]T ^)D@U_ ;EzOd}/6Ah2QPP>C bMEzhKcgsoM,h /mjI ZHAO_Q[+0rl?- \&Z_+B$3b';uI5yJkV%XV49Ym+93 :T}Hmcksc%:3<=T\ 9WRbpjY{qR=tXGeeUpfuI' <k +jL9wgYXwdBJ9(4\%mm_e[ [0dnj\D@o{|Y8yR&`BM?z   _hmMfDr6<Sk978z:[g -xBWJGm*wl1 u Bph[xs@^ .WtP*9yQi89#,z C   LNY^ yi9Q?V Z?-]jf-Or, aSNWk1  F j U@ R)jZ^l( (% D` >DL>IpzzN au   3 8?=*Uv,>W ^ V(EmX@ ]2 } m _wy[_AQ&V   2(<9QLnO;{|C1 /z *d x? vB8aH!I ` O  |  MVz` WW/K?:&~s) = zbQt*n D  |*M&* d 9Kam1GY%-B!(P 1 g?N_s? K  Kn.x2TkN^A[l +&j*S +v  /4 ]:7";Rmc"*E~^U#1Q",Q!)7  r!/%@d ; `z-\"W#%"~mWA;S:~u+dfK A $  n Q Tk8f D-mz j_ ]O}y.&P ~zi{/yC]jA S. .et-b AY c  _j#(A"W:Is,'vul `_!2 y #   hDJGzT = ]h  4 BnrZN n@6 C\efXT6=c26 Pl6<3 j$}  <>@0p6x  id@ymlH:G4n";r5C(  {lr@-}!Z 5]y4*%xvhdXd|,X5HKdc-0%8weg~p z gS*h+zO1<K@Rp\> <,UjI v#N6 Qdk( JW&nU/pBYDY\K?hoAK6{ =)8/u __ZG +_/X{C,)p?:,w ^ bF =#E@= f#>C3E?wyRmSl_/'  :y2?vLV+_0B  '5_lo>"5_kjHn{ eFXzl h?})H;%8/YwXaLW~7*b 7C 7 >:^d_ ^ +V-j}3XHIcQY  yw"kJb x '4,) t %W'_?bjoW/ S (YXq_YN;v2nwF>OTq )-v`*4e\: T _ _ u ='p,:v\FpEKH  :?}q7/bSPpyu   A   cH"Pi~rXGmmCYR#U5D  VR e F aN1 H{=>Ic1n>@{%t%PGM& U  0f  vU9hFUC0* f/*pj65M/U +y "  * $Ct5[40V]TwnEVEHff1;?qO\ 0TsBH @ '& i'@ {McTEf<= lktav=9nR+  [ )&5wH#hek1j#M,;6'>(*GPS ( &4`I  N@vLn!"?~uyJ6g:,+gpH6+r  #|U7  *'z9Ork"8h52RnSJc26?yu7LJ]$0   Ke u7yXG*e{*Kd t).Xv)O>o(Z#~HY+7 /S h g  lPPOMf8 ,nP6!j\rl7@@?)J}cTv\2 ~  sd@L&I dUtL+r,-^ooNdKw*m bxl>X  {A  & Q NelnzmMG.lf(<#RS  Z \Fdm jWaN/s` G[ f8Ok"H}"f"/i "h :-e`|L9z_F-Q dx.l} f^h#?":H?:]t|m {VoB^q+~jx\\ |,E gi, X*O%(8 S]>/kXPPJmk[.gHp6 1WH(j @ Le[)cSjb@oF4E'+68_X@HCt(y;7BD(*%{hg{^\H $Of6Vz}5(ink80B@){-h =0#{v~v5 C!o0cdZWj%D^ ]IQ@ ~*|kV_{?Ew:v)lq;d8ZnMZlT S]"@"fMWt&{ln*n]k*X$0 "@{JOFI;ii <3D<}J&d+u6QH*XS9H7<[ 7pIuMW ,:W,spm@ycx3,%;chai #@xZ xm6F U'sX}J4_y]|yce  Z]7n/ c?K^u4 _4%qtK`[_3 =B3*Nrp-Y!DuR~?=II1'/6} a4kw5jQg !d}'j KZZH hQPlsqZ4j]Uu* X 4+Y'TUgyT G_s# w/kIkV.UemXoMC/6 l|I, Pb ,l  EZ[z%YgpO.SNu)LiFX=N'Yr{ N % 'c HmjMX(EM? PV!)=`*;'M.]I  ;Taus#@4H; Iv h}$+Qve;8DY E=<!R$k s0"oBf0  ,y tu n [ wI_}]'1Zp^f-0/$  l\d}RTmV.pS*l / ' Jb  mlm7$#~Gu?F0&dIgGk^H9=7)?"GkaY f m  < (i2.MA=c43?<DzWhSmhx?N8'B,5:[~ i8 eC   !twy*9n[`\9ID" .y  >}qVQc7t8  +  e .;yX=.hrkdNh!A;-n'R:q)AL1IzMb .r  S wX;A.K |  mS_<~_Si>+bHrm:@T}} ,]<]w *  ni qT T%6e:C5m z^43EqRy/k^TMT`^s{Ej] $X: y &wJ 5-9 JTn1jG55lrTlr@Z'ox9 I5 m k \3 \@ VV)|m0^nC~F(wU1j/X)SQIb! iqe2*J   _/OR /.<K_[ )Nr kO3_?g`LgD '{`5@'ry-tU)+qHy} . W |we2h~&]bKGna@6{JNa 4"AQ2`Ap o[ Qu_JU,Su_>z<-tRL}]*zt?", yqQJ^R4.]ns~Y Mg _ vb?|g;q hC5*zNP3ZS/yQ$^ 2Wh{ Es%'g8/:}@]\`>^0Ql142_t+P+TvQ74q 'Keg9#:g$ ,5Y*Sm~GWz:qBb^OwQ6}TYjI8 _Do w)W)2.0!IlO][d\Bw: o:L@K<k\G8LUGMkv Laeb/Vi\jc\PQ^l#)&mf|n}qWI_cQgB9wU #KWMkYf?PRijxr~mHw4@6Nm_yGjv5E(.e1$S G#wpscDfN' rrPPD-^=j XH$#IFx`z}Z(tz L97IT^n?Fiv#c-uENy_n3T\wv{I_$f3Z =Y b ( #zcJ e.p3j Gp!@dOzD8?xM]e+Zu!^+7o3%u  \qM9g wk~o\v eqEm#mA oS t16?fZ-36&M'+;x"@95z"2t r{~H2m\LCMOFYx[h/MoC95|y%Q\ Im?F(kh\0EwTxM4?}M-U{ePOukxOGBeR+C~QCo_yWz'nUy!yC = t@^  ()z1p9TTq J. !j 0 /#OrpCr({5vDI*Y!6(W\[ISuDew)."<OsijDpWwKd` 4)'V%q\Q4@q>=6 0l lPTAj&v: $u 1 46{ ;%D ! !3 q"zxQYS69 B%*%R Xri/e =J  (n 6 O4UKn E  T\K#h(:tq=1%y9AH*6 'J +CqGt=Ih!dRw)hM B % Bl(VN=?VWV] GCB_ uo.nneB T$l~KS%@H\` > x?:Y`I3i }=& D; Y[6bSB^o4` NblH_/ax761y{y&K9{7=9!}1lJv" _HU28"WC`i-+Z/ysOc]t+'`$$ J? [lh%\CpW>vI'f F r  }$gk0c),DGiOSXC6;1Q!g "qpxU7  C!|@Z:AV(,">E*,-P CPA% .5V| 9DiXF>(> M)k!b>4 At./c v!i  =R5TlIw@wb2Y$A %< : M#l=X O1:?h9d 1AO59bM@;=?;'LB9!HK&+Hh ` +2q(apt*^| "UE y Lyi!RR v$QM >FjSS&K @/1 CFw:C7?# ޽FO(6r IoV'SQd6 ZUMe  T.:=:9yg|CLT{$G)*wqy:MLj mYu~  3,S CF[>tPW){sKAK& @ vU jl s9 Nt _ tFc=mYaN51R{ ~dadG5 -,I ri h( 7 V6s\.?h7}_;Yu }^ h QdV %:c6Z.z=jzUL> xCp(bqL9D iS%"32>MWBOt^ S'r 1fwzj#jG *j=/m7Yuu-TX#0;B$ M0u!))Qf`HOo|aZ^ESTmMuiYOA}e@M;yLUDFZ,os~M>-x+e@WPVk;abyf.VamHjIn~n/}oPKLRc7sEyl,&EpxvxJt`\#f[Edc~|rEJx(yu@% '?F4-{h0YbAjhmT#$)H@5B\G+Ls"~vSPm|wKtI(JSA@MqZh?Uz<]A{p8"!qv} B?=  yE 'k$x7OEn .]$}:(%n&Ti ?v($ s77wS(_KxIe3 ~rIs g Gd|>zW_fvq.dRN ?za~A4 U{\5 iYTo5:=iEmphIj^qwN<u2*=  ,/<"x9GiU| Y>^]P1].E9Uyp<;CjN?9XlU(cZ;oT Y[@1{nyGeu@-*(ETv}G0#'[Vr5.$y ax%2p,~&tc2':Eq9lK EE,YNf4gipZNa,Vw5T.[`E+ ' 0IbdY"k\G3$czn4^A@(wD+ P'otIx^_LTKt,\L^Tu_uYp%k?]<]i6;tb/uzZa_2giLkP6``2t8f=R~6Kn=yu^]Bb>)&#_OZoLyuQ"pQEooo8_pOc4iu4TUn?D@uDZbCj/bq%.ZRz@YUaK4@HX@KQc(?,G)o@~ Ub  @A/g M 4g m]+T YDN6>A] n_z w <Rtm 2a ymB z89 U^laNUlV  =Q dDK y+k  b;Ag1 (f'V% yC BWdH|FB4;) %?~=PyV!IK^{ :C uH+4{B@_pT ,7&5}uI9'A,gR YR*;WW+^!?ef=P 2 +[JP3M/  $Z V9A4IytFC ]La &| x!M { Xa{ Pipvb,eE @2 zDO 1 &1$ $5)&und|B$b]E8ifb+!CP~LP-gJ>P8y?wM)Ek.zU"f9EwGbRg_mK)O>r^LmI_bC QlArh8 =  {rlp,%"0ez#' Y|%? j ggY)H;W$$]  B  e:]Z9!u8K^yM E&X 00a c S 8w95Df7"v` 8pyUyb L5OY \oe-,"BV <t-{  )E8~#qiO&+TQ # E|Q 7 r>-R K[ p1{={C|,f 1M mf"oL_p:uni&U ygOH P'pWf +/r@bG } 4 i' ipEL M&N\A+ s _,dqmss xK  9" Q[j^_o8  j u 1SP#;{n'_Tx,e#xy_r 8k , Y=6{S#Kc b au's<  h 65~QCj] $EGx _9_ n77 G r7wpXw!?_]pSW{!d KX W #%Ny B i~+k[3 s(%^ o  i t%h^uML)d q$&JQ>UR)dRSaL4  K rq z< +f{4 2 ' Ao@i7; #F =\X ($B7gtVZ/Rndz5UoHk2B'\m~ E*kSe82 yb] 'C{5 qco`J`>OA[dS-3_E@oG+!}gNlGKi=h\u 5L l j`?tG =3%G+/6rXazv3cd  p*\t*otiR>lDAoJ=68]O (uZ6ImqOM)=t@G9,la ( eJ$1^?)bLzJ~I{3#OQ=?@Mkd /'(,} SW#b5^"Xdc9Yq4H""B " J(>4^H@T  FQ:=ydtwElne ?/5 CdlfG]  +5SDY=_L0|  !sl3S!SS% a p6\@'OT r ld.9g>TWh)V , ] xs%}5/!5  - [1rETR=KPoRL E b  RCMG2!?+  pii]sEsT#N-MffH3|   {1 :$Pzqcs  , "+g j;Z&/1hx$q8D%gw6s$P{[iKy JcX^&D|6FP5Fvo0;#HJ|czPwoJ+<8qQnT8tX5^ WuL+vG k"46{KwwM%3y`Z, u}J`&)wF@,p2. ajSy#}S1_&@E( %d|14`~Mv{De-ANElP@eZP#DYVbzV(?71de%pHKDU6: Kkt'7{yA`kb0}1Zh( ~b  f`KGkb%.!` HKU]io P;Y>QTT-ktRd [ [ vZ0f VC?4T" 7U8-3e- Py-EQKHR;2)oc"B50aeX:3DcjE;~|fySie6=Y#FNk+~ pROQ~85:gF0?A yEOE<\<\X6$2G&m+st:   85K 3r#| >6u8W}E }}w[ W4_TZW9drK( `?}6KsNS-A7luQc$;c%c} nSar`qHvsQFv/P.{9$D[;eE@<]:A{@QDd\|('BMBW;F1Io{hj }WL:KK^[<WX"5L}:X nO7]Z8[t`mew]N +Kb1TD|` ^o)AfM8S4lW&_e]Klb%Wpo@cs3.vlsy<#sKKB2t|-*/'<ef uf h>HN ,?bfRmvYRqlyJP`HoJ3gCTG-Ood6jxA!\K ? ]b&<Y9q)S[\P5 <e:u6)^q3V0+0]z)bk= Sq re(PMf^PJ.E ,UC /$^47`[n8ON^o3wik`*h$7uEY8_Eu=#(7+|6 hk}$Z 7:\dr:OO]\-lnGVh,V/EbI9 j/$ PN= z8hyRm Y gx5YlARmyR,bH'6tP jk 5J?8 VLF<E 1!*66L ? F#!A Z&d&a e.Q!V11uU2  %-SfDT Xgqiay _/F66M5+|.Ue}] ~ MK,_BDh'U  !nMb!V "b ^ HMv % :|5O>\F08Dph,F$u%oQ O 5 {dVGBT8*M8S gC"UT'dF2! xQ.QFfOHs(4 zD^d nnbbkyhtl7#gal s0+,+xqPx D0 z ` DZ_20qI^)E9!d} )-?+T\0fLK .BM -_  >Vv6.sQ^W`37'e +>gL1`n$ ??U&CpHSX?K pxWbM{nPbx+4&D(}L 5W Y[l5XRpl*-L T kh<Sp_>P!hYP-)k)H&S( iGa 5MBj$88]}-"Am&kJ[ xWr/;|!Y[ve/`" 8z/Isx9Tl l*m{nt V%9`n1\wSsJPp^}F9~G` P3 R$4fuqdHVjR\svxEZKKETqf_- K)2K Q?p^@AqU<Pg}YekL~nk=CZ3W:8wQ-j.~b oK fW7{ 8mtA3Z8r%^'N@K`|dwAcj8 0kF ) Z{ %#"-Hdyen c'i>J?&@1Tw,M?R[o1>L--8_ Q`1yO]0gGe;`:qz5( PWYUVk}TE>ndxg*uf58Ubxr N ) e -f'y&^:"mZ*f-iLAmCG 'L#b ir) _!2xF=2O{f[ 06 lgq{ g5p(zn\=)|H"# a# g bHK(fJ/E 7 VH+. WTDR-A[:Pu?<g\* !S$i |,*hO E mU- 90R  6glE[(3+Mv,T!YENQ"5|N ^/Vc< m y2 U YCSK8,Z&WRh?^jAJqA 2W p  YPf~_lwtc #+Xm q=?X jFg  5( J)*t =;p. 0.v)gf UjF #F+V))#i^hd*4[Q-~5->Qia`dhw)I} yP4Lbim8l?n|rszS( qIV"cnXg  m ?6o7 P T z\)/a8OA4a z > /yI .mI. .V@l&.u.@%`iq1e6 4  D V iePtAGlHS?,~${q=@ j vZ v q[ 2n_ 70reu-`5; >gX b?56.3#k$ݢJZ ZXqD^uVu%4 ) um  C>n&E'D_.1 !X&?@ :E M ]Q )Sa!%#: ;|4AGkQB|g 4 8- [y c . f27Y)Y|)^: :F/pV[OT&? /m^+Z Km[E21rpQuU:E9HWE~XX -`s7 q74}xr= 4)Ln TT iF~57eoTz$.!y*dZQ/ R$%;qRt#O`-tP,8=c:#=`r9u+ zRu?0H=Bm}t B& gu%o${knf{(I~83v7a/8AKmb0x"._+rS$f\V7[v,h9)5)j1a#s0W?,UVmbOF] \]P^zgw>\1M^8{ ,twAYx3hm~}KK\exl!VW] 9= Y~uYc][@8>LK_|zY)\F c*lbh S#d`v~ nh`"\9nMn^GEwOfX1inT? B: =  j/HLpLx$:a1G lHKxDH5 |#, yWmjS6Gpek)_.pQg);, I4,1x@d,KT-@J+ s2+J&kVf9ox]O 0n|oS7bL1b:oDka`_h0AQ1EhO).'|HJ=M 9>.-3Mk~VWwf?] 8]( |XTv*J4J@`cX J` q\ oD Kmf=Y { Tih-$ # ULSj4  FtTN030E ) ho O|]P f _ [ ArQtU DsB> APF!y7k S |rYum>He< )&kk -/> e 3HQH!< m0x"l  Gh@p 5&c\[ |^BL$,Ae1FL]XefhcePrc_k C**jmy za:{ .5 &; q6& {:N`pzyy&CO5?Ws St>  H 7B| T2C`N dEF3.OAn fVT6!&4-=oLLOpi>2 me<xv%Dr`4KTw(Hf5L eb[VE6CVUe|C0 j'r`w $7 Eb13G@!pM15 A$8*V0V% Nh<74 >~bkzl;,!%"|Xj w!^EZB ~xni r~hl  /2/>b~:P6':D$'SDuuBA+[HrV'RhphJ#_*& g]mY]K!M^A&_;A9Y%_ F " M_0Z.\ ]WQD^"ieXhiruvLub-N!:S^+lg9 ^_~t&GsjA8V%/S_}q+t_RH ya I\!=+A 2K>CKfEa8RHGT\ mwK[/n'H-<6CsJ A^j9Sw#V+ nqzQ}P!^oj0jcRHfrIX;}7RMJQgQ+RHSB ,4jLO1MI~ G]M^ A-' a i@' ) m=!B.%%G D!!|)) 3['  a| #VvPvw 5pRY T I$73 O0n-|@COv; 0 7 ] 70, p qP<1Mg Qd!a? nJf5, Qc4Okryz nri#c c2qTC 'I C*hXO&QUr;25 z : }LYn` q'=J `"jY76 e.+pw?km^K\;{_>" G' %NQ^9A |r[Kv R4UN R, )_Vx9)+m =!.+aQyCGYZ)fg#N#_F k  " v I.0PFq] 2KpF. u/.VS}>H(rH 3p4ٵ }Ml6- 0>+ k2N Zme;n8% 2 "i Udj[.O} g% $". Odu]JB ( iC *F{>Hw+}@Y?}c@]2K$vk2Yjo'cYt>u,{bk*lu9=#^T.y3_/?<<\[FNuUgGk%o ><xgZ#to@%  qhFv 2w2p7" JH\m"AtiFr xJIv$E;b 9$nG8/s~Fy)8;7wNDyFI2oPLj}:D,D[gLPPicQCYnoeK[&/7OG{/+4bbm]4<bx k`^6M}5f 6E.w~9Fi|~2ub_^YN" E8P[[gs0n|aS#@:MmV+ F1K`/ = JtVj7%6?R j.-t]~ [1R sY<8s4L#r%yTo6tbvU('&RpprMR=2fyJV{U 58G1}K*`iwun(?d$<   a?W,G]X _E>T>?h2NIGl$>_P-"RzCuZ 17OkXVl"hdt?af]3P?O,wSULW~+k}3SP+n*=hXL rB>'VGKY*tD=^`?5F96j508;6/yL7: MUhJw0,lt[  >&le*CNTiI4yXC&f O  %JrtQ><O`gjZkt#|41Y d7x2 (x c#w; i *ray)MT K t&QM9S3[ (m5S%EGV( d8D H ? v69~)VJuId!bO="eS7DNp] 2%  }#>]FtA-s~#!fqaA!strYVF3q(Ck+ cdT3 W1,QSJ rk) UN W^ ^2j %# 62UV.=@9F~W~7}vL,C6BSx_b_X%9vSo\g FD  53nlT0rl)' op*/j# (RO\{}_=q ,gecPPQUaucI A4 [w<Ol0rM}cGI-!E&D{R;1aB Xb 4uB ~(4yLyG%b aO+*yDR~-:eL!<1 834" pzFmdMG+qK#|vqE?lxd DkJ-BZA| hyk5ar 98Cc&gl M 6^L;^q +P|[8t-csK|O/kx93 d hP 0 h6 /5gGRpDR : [ dGhd,_E` q ^e y cdmr Znd). fw`fgphX >Dja*#}O. [ % i u= axI.{n} oju#{@]kEKy5|}2N59 MH)S jA 6V yV t Io8 ^]rIsF z-C0C-,Gd"K"  <TO. ) VqCn2u$`AV %?n(q!G SZcS`Y]Qti & & Z _5KY5> b# Z?8QOM8S/3"? 6` \7,9&>8'^^L<>K6 uN77^:SKUOy*qG x3Ma5TR PcXSex^oZ>lWv+E9qN#qY<Zg~M'r%i*uv3^@)CDbLr<H'!Kg4I0Z+\X^5 V= ?;Nl P  ONZn=Y<{[Jj^H Nf)VP @9 [p6~dH-rXXn:?Le~xaY~vZYeg(XW1D~uR>.hR~PdveoKhEj{K$H<SDpt5:[JJ@oYJzl'S~?KauMC8l$nhi[>b!9SRE6:2Xszu?e5xe8 '|o n|g 2[G~nhGUrRL5{}Ryg^uV_ 9aAQ T1*9d>x_gYT.a.0_]#4K* 4"?W _W\:Lf4/*w&YDc_ ->_LqGD: j77EY[qt;{!= l&D'7]5fJspIoe%m<QF~)N~c*s&)NF- ~"D>80Mb$s1jh)2Hc9 =$Pamc&Dx m(w M&?  2 EpFSwjWu#}! N-u \"1{b j>N?h($3"U a6Z  , }- QBJBz < A_$bO -7^o?,%^XZL- .n@d ~xT 3iFX7 nKT{Jc>|Aylf(+Q [};Q*bh>  e@ p0T =Z&/}/`,)M! 7M~:cM'c  g g@*:c[s}C-laA{IG  913{]Lly0wXk1>*5 ~d.`o >~4g </K2*IM  I .wtZEKf(ZTM+te}2:Xzce [{g wa{$rY l  l$e[E[$@@~Ga=kY2qX;-y9F9>J0;s}Q 8 j 7$O#9U^ j?F;;Ugs}|*V ut :W - M eF]TW@QT :" T'4q _YGur s %lt  SfJC _YoQ[1  U o /bZ ~atc|uC}(km   s|%J   f/(>A  `<qTFh&F}x ,CV3_)'z0ok[wF  o }6h/0~+H)*UvjNo l =  &')|bzJ[" Aq :w_$ k;M @ Z \cI "<3*B5,Z  ,ec> 8  Um> H  P `D{x5qHTC # EE} C%n&lv-r`[6D>)q V}!EfV7Yfh=S3$fZC#OV#EETPt yCUzDzp*?EjY5_8(|jfL|m:ma{:wXt$U-d =##V"jYm9@57[<`9)+g!aCGx ]L :>aK<|)#2~jOF6HY2fWRKmF@k.LF^b)Cbamx9;XZ|7w6I6~S;c-7 &otK[,=(ThK$ u(lYe .{VO7Nw`n}H%16(5dmeVQa&o$k>cp`p6BPd1|rf,|wLP]Dt1[HNP2=dgmbtU3FW^th:XFU"3dG\v-OlJCcj1wZeN}}|@kX;Kjlv`;;\zpi$b>e;@%TP\fvAU?p<*Ov=GwpxahAssihWNaeK+BphC]bA*Cv?2_AVTS7*J8*q8'(iJy ?1:<S^bJ00h\a4Xn {yc4K38|iBgDZ/"_ z=ko fndoJzw$pqHnT3OedmD,,xx)i(&i x05 #d9L?&6VD U h KZ xyDbpX XG7#%VKS}C(.m6,e`+>%GKM UY ce!c [8IVt 5 n 5hVmb9   */]<\JM X|M, "y;uUL`&KEexUKl p^ u N:pe5YS 96 ' O }l1jBsO#)^* x>zmXT{=|:F]g_IxT  W / Rkv{dFU%%E1+OiAPzO#b~^?=-#y^*&&wt5t nUr*.dT@-7vIQ=:V0`_H :tl/^VA"d~0]r D?<[;KU/yeE >j;%fT*zS:v%0n>VenR! ;uy>/^@Ip+Bk Dhr6L8 C]?_s-H6knNAQ* ? $%+;&}R4$=/Y=/z{ 5u<lX|ji7onelU$~xRNLOF ./Nk:@_7:u1,G>^%7bBL+|2apNHQ#7p41 "KCn&NdFN,  N{U8>fI&MY!|-TL*2<b9i3KUt //|m;s[%II2lF?u,~ODK;fJA 65h,j,|Q>0T*$f;l /k5F&~Rk jCoN,WRJ8)NNa/E[& -BvkYN*1g >/k<=kg\_fSPz22@>>s3nhYD(c9lFTNyAy2: iq;:Ex#J"v._^T5{a _`$Y*0* #taJv`^N@Q:Qr;$sCz<z&O:2X<NQJWo8 M9=P(){K56sl_~-2j/FSfqC|8w 4w#;T*Y]B2AH1bbdl2tch'-cDtdd0u^ ' 3RfGRQ\XV2\SX.4TTOZk) fK7_`,d}Is )6r=i*R 6/sWapu@EJq "atE3so|f0jk)<`z$Rh4d{ r%T0SDgT]Gy] h du']L3KHJ-r%P#Y~pvOZtX7yzBE@Q(6OfB%ep -%#\Dr*/ZOD9Q)hC1.Uw=I@a]5 #!I*~|(CX1tf'$kV5Fbq"`'p7m]{ao**- e(2;u;FB% > wgN'CH~|N/9?LUsr6aOXj:-$M?csLMSWgaD;$8:cnx~ =N,OpUktHl?KWf8 >}|]Q"-*vfTIRt= MDcu;1m"[L?n>U?p%+pA:X-oV{"8t oyrZt\2.{.Vk-BrE[X2IUo$N^dsjZ"7'FMP&pZ` Fbi|)|J9b]jR+HL: e 24 T p #aWy9T,~1<SdON` ;YsFGuv,{)\T2* R-V-  8M|U) BoAq4pd *" a"3ST`7S*~x?V}f$V(E'*7H#0 rsH"Kjx8N^E'yKW:%d6m  { @G&U<-=yw2sR lOb4dGl] |4\}]Mm/It oe?o\**kgA3R@0< ?AT?ܿa|A* EvQ ~~(aTqD2g {dsk# Mr< J}@uaOBY{}AQ$nA o]?S 4p,. }pX[gEK =1;kekNP>IF@\56 g  rma~i|?# hX6/d)KF+S $AM@LY-3M [!$D14TbpJ!&?6DA9MbO wz'2SAt}=FRf  8$[8kQOO]3u|U44u,,/1 m2~U6$]BjmQ EuEq<^g V`NZ~1v*o7  Vec>LL~}erP #3 T7]d6wq eor0)&AY8H+$ 3N/-zd# |=}q O ,+=* 0e%LK||]RHSM=~\G"]yhjo-be# -5 w%  5 s $7O: x &sd j\Z2ro0,,9 pEgmyW`K?K#0?r 4:\ ? V4Zw"<( 4 Vj^h*_:jpn4>5OP}wW' t1*.i aV # 5 V ,r FuFu6 q2o1@m,n1); p?@b^;^K,'_o1\; K AdJUMVg 9Q+h), O(:9zKa%kt2=JXXUG} >@+E5Y+)U W'k074)5&xq"IRi DF~;m$3D0(wnPQlYv[r_=fYaa4+U_=dhWX<1b$8fj}ObEEJ 2(7O/Dh+zG!zF*'tKC s\m(bU4yqQ,3g<TKXY4m/iM2vf|0OX?#~e&tww D~">( =Ek 1W+13$?y*`I[ 6eF)RB9tjavDj6.ZA;}}zU{K ~%LH/  G^&'/e5xw`lJY"HCo:Ku%8!,=R-a{Ei7(#A>J]xmbt*cpaPX:Ro]"#98GNc|8Llf'T~R!B5|\.7v,2xr^+Em D S, N,cnu2ec] RI9} )gC@  py%s!Z ^ ^  79`{#w1/NRO 4:(0y B {;(V}lAF F  HxW[_7 PMZs6MD w + ='onzr,:2?#+z%#t 5 C@^ )he~`R#Sb)c3 5>rI nO"y#A97cw l6J?#"5]{ s` yY>G! nyd3pqK6Qb,K&iA`B!  X gh Oj#$  D  n |UY;W &*"cf/{+/nS U6 q_k.=M/o 19%. שZ2ZPlj A 6  l$7 6Bzyvn)*w/WY_](X nVc>kGB I M,PJ< GsgOB{qtd:v%K#0zk '39LrO$ Y 7X5QLiLn7;)OM[a3|W'JU9  <e3 q br's q77L/YT\^yqj b   {[9 _C|{J{r|p4P &E@Ps l ]Gv( '&g9@y{dt !Lb)OMI"z&z K3-eIvM7"JS_h!zASj`g#v' S~%L v  .J8)vlhZ%KlL#--<%^NZw$24m]n(@9%v nfP9o;6\FNRLC<Q<hR N^.r |4yTCUn~s;0( >oV]pQ 9<F!NB4oYQkJ'!>|M:>y4Kz9@18=?#OezUJ"=_Qz'|hQ\U> 86E0BN`8>/=~}B4wty a)q/uy]A*L"< 8_O;lP8. 3. 3/n4Xm[K6qV8 Fz` _6X~fk[oewTg>R& g|KgBQJ.'piu+n% CFN4"@;?%v'IA,<F)7(Xw^J]+jEfc~q)Lrop&%IbqEK/7k<qL'+FJ.\c(qa-5o~ub{:*uN 9 77dV+(Lc,Rfw"s>Gv!qRc>gUTu D{ij*FtO ) WHg<+4' . p2,-o J $I{D2h&I,mZ5!k&  cIW(,g4<?g. W f%pKcb4  9^3|?gS! >guq1Lp 3,gdD ' ; VhX*Q h  5 ~ {UnQVW0 |Ab?v82D_WiX t66}*AX@UI%R>F" ?&~t d E R_2a 4 ! 8 cwJqC Rp6yuH9<}%< k )LcE#  % 8{! njC4#} L)(gpJ(xV=1(q vsom HbP6<F1+5*W93"wQ&.B'T$f   y/~iOsJE<bjEl^9R9ZH}KN;Opav ^pmT]6 THOJvy`61@(}jp4W\[Gw#l{]8|r&tQje`garMi`P8o6Z&+|KwKr`3mmES3Nr FX;VVb+bE5t"rX"H"B?QND/epP<@f)%*$q~-:#Ox+"; mX"YUE tqg/B|1A6H@9o}BkWFY)A9udfxccZM)G6=* -x*o,f"h69Cn/]{bfhH4D'cu9ct!)1ZX P^2ZDn={sU 8Ov"*Z2![okYvKV4tPW0uzVj OgMMuHO, D /)*zJ%tVS`{$9AS;,Ywa kqaknOwR<S s/b }s6{B_ x d 5kB- l3t & E _dVe"Q3+imx V *9 0MnRG ` (l ^'HxtXA&#[p/ fU Q6 & emV H<\;,0gdpw_") pM0]%B; 1o  8w?0-r 5  ij /) zuxV  ~[v ]&B-! ?u]+ S ;}Y oWJ!"' NhY ' = ]t LH"N O2Jv\`  kqUPgr' k`.V 98 m2 @ h<zQ3 5 -hF9"UN)!eh A h8A ] b_; a2 o*j} L{ $Qf2eH\HL=uizCt%'>:OilL 0cisS H/3n|V2mVWN {n#k,kku"+5FjMZ$a vnHw8~b_QAb!0KJeyh |YR);k_x*Egb 9v#=88zB9QcEQax?nOD] `9 =XgpATPgjUJ)FCb@ij(FQ_ntQ4zy4k & ls!~d|KN#r:Q->B2iZ/N-'Fkp,4mo;AI'x%  +1:rF%v:Hr w O4*WCtzaoa WS4yCS*{3 OZm-ozh>a37Jf]<1W)yht KtN}c80cU$;QY'u \KF=8.AT,U29EqoW2hGx M[<*9?oQeEZ ,1S>L0` a  l[[Kdev?bZ'i9 NrPa.`9RB{hBtP=m4 0b{{&_R'5, 1XK/cKJ5v~q7kp|lOo""'S:6&Hncv@--D,6RsX21"8/xl 5PO2(Sx;~kRDH!t\B^y\F#g{g`Amh{@}Vt `D{P8{t=Wbgp&`|T4 PKV?`br~sF & .x}a {1c 2=bhN iyr5:P#o7oB3*Tf8pTZT^i`XF,{}dP?^v4>+r*I23JMJ}N1KE&CKA6R}Eb_PR(0N.|`"LDK%;+}kI$ fp6Z;uB"[(Rs' a6x0z rNT8< \a+f|?N!rs]Q>Us. unL:[DXkt$@&rpJ}DYx]lKBAP2;e.Cat~$x Y(Q *RD+PP+^:6OSa -=`Xlk?oP!.i(rP7qiyWe%A\6&]SivDq<@@v@(K.K"et.*(Qu Hd$/1Z"1\*,wr@7|LJO]vPY&rvV}Zj7}uUV3&~_ %s} ^SG%4ajg~ O<WAu< hYl:7-nytz`D|pC-=o =9{k'\RtcjO.gEO0BXS4]=D<}qwdJJtenFT7ER1Za2jQ0<^W Z^w 2)j^&t2D"&Rf0&u[GS'=p* k7u dG]Ys EHNk@!> w+8cOH>mOA`{ Rrd]C RgOHh6} |87?tW.HsS[mi2.B)s%TO!2,si!j/? cQGFRPI\gG(G|0g5"_c@MQ99:V~]}q~1,^1G8]a#P QHhth*K~$GXGXj%g.$Hkd{`}RF  %qvpyXX+aJW5d*%{W `#3Bg^)u}cq>$ (l j$3YF@_DJJV-k)c)K*W"HKG^e-~M5wM}&:wKxpUXhmM<i89 o$$jSHq#UY PIQX2c/=2-HsIOJB>hOs=d^)PLCz^f`(Db:* TKd`qn`t+: +35:bJTk]L'j^qC"!OX-5 q_Jh(ch mEY3Jpi#TO/ Jag`SIGP~=MW]QReJv{cKya//%_+c uD%zE@cg[b" 5cY@O lu]L?|dY\P 905.%_ B<4! vypk n4gcBjMhA S?iq|A-p"b 9c:YNGZVgyamH|s7^8TeqsSN90.YJz{vqFA_ IF+{buSQ~F!l<OyBnx9}o6bk;EtI$]meC ]HmA.eEkt^m AR[n#O9/iy""]8N~T5wKq Jc>&D)>[`&gZ J'j?%o_dM1 AediC AaH18%VX2u~m[^kD.1<(]j] <x4>< yGOF0n!v+%Xh >S<p>r! ~| ]n/|lvyxc* :'LtmQDcr R~MtH j eiZ M-UW *Q'1X.YdG&^P3`fgMs=o=+wl, =W]?vj'$E W:xO9~nQ@v J'1 C`&2MN%*%:Qxfd7%4_r JN6L72qA/y}`.3D_2^> j q^IP"7s%g|RL' l~Q5yE;$f+"RH8Z;_ ZCNsNh>MM\5}XD}R( V#Uw,>L\Iu?J!""T;ioJ&B$QPCR~_ kf`-ygl]'9QR-4]RxJT %M=QQJ{jg"y5hCXqZ!:%A%? ox x_Ea,a$Bw4D|#QDCuu.iykGY<O[_Q\ a44z;`w'DNGq!NF1x32 )6*>~Cur5Vm }~{.= 49swU#'ro8yX[GATxb:NA1K<6EXL`B@?yS5no8e XV[>2FWz#Fv8FqaUVEtcugsuJZTr>&niI!^n4ea6p@KXP$qyQkM->{|Gty*1,H. _PD{6:'chbezTdn{{e9A?Ndq[o # nwqLf4^:*~5SdXO chR=-@a1]-w2~} KWDshC |mkN` 0C.cX_/z0#i`p4(-;6T6lSaA> >/;7`*-%( L `4L'?$7I,G')!C"QrYEZ}kC?6 p[JI$s&[PF0 5A>a"/]@_uhTqeT,C4]bH3)oVHcUU K7e#]wI3,@y#3{S=ej:>}cC+6Q=bBonR& (g8 ]<M5.AMw  IIqQ Mzz'_}(T@6%&3k 7w U>W%x || eui { > sEMSJcgpQMN<qe5[ +Y~C p bn~vMB{n}:\~gc.|1 @7t ) y= .#aSL`54  Oh+0EYtD48?V/ so :0 ";-@ y .TywyBQ% B PdZy.;=/89f:< f q>&" * hz < x$N jBBR`2%i f/Lw*' pqdL dj*.*TShs5T)Wx&Pi.iN2 3F>w6dX[!M` C -GK\(jQ <}'% yk$3! s7o_ M3Asn(: [<,gM|h_ Fff o'[H7^I_mcf =M +}B2  ?6 ~.3T 'n2\3H)J nW ^^PY!e`?(1d) E>7 *\9 : \gl M <X)5|  C8 URa/?W#Yu~~ +F)L `hK"C !c|qve$y$!{  ;-- }MR}"Ty1 >V! DZT `  R\'46 ">^ /  7U M9=%gT N0Fz dvu [D#.t ݹG  B  ) I#) m #*;<<hIoj'+_z:A`EN(a (KS"3f2|U}( kCZH;' dhx1" H$k@|-jH23-D%%D0 sY/ PF u* Ax(  u7N| IYxv1.'C2(nM 84QE h{T JL?N &\C "hIH  Ll]2J2Qu?%uRW&pmEhtzQ0!c Nu waz >S  K;k D   A< YNAyeq`lww0*#@G":S|Y%V 4Q zT Q CNdn`)% m?F7%5 G  f]} cM(T> sa0y `{4QGbhY `9Z ?/k Q) ^-O L M<Gm`)& w6)rM 0hVKJ2wP@ =$8 F# ^]9 "P  h m ! VL/:cBw :"_D h H S5)Eo6< !1 <LhS} $)B_{B>~aB. eR! fZ <C V.qj#,r"Bs KP^x +"1Xw/h_ g( - c*z:vYDY HQ ] V *& %'a"m"ult![aR24p!%08rsIr ^E 7/STi1  3 >f!x~Or9_]F!j9P<>$?)  R f089yGX/& Q9hoQ:9 QuwEnxb "6#6.Y| U*SK8hdL^GJj</P)LaZ)a$i'{aRlV5U| C   4l1<\2Q08cTuZA,noNw rYC5}Z^+ - K g )nbD$W)NbJF(z >Ctc btQ{M{-@< 2 N (Z/ -Bdw$ue4:>&oO>0gr3hv8]UK[& Sn5  (O  z  (*7]\pE>8pVq[8x5~x\2Kf5aZS'9.V &[/ C8Q Z 0r4bLn!&&oM/AHJ*}&S+ds p\S SX, 6 -s 8P7< y{!#]6lYbZ_M8\p5m1u[!8|8,=Y+$d hm>dMH*IK`iTWbX XspU9I$8p*Z!Bw]R+{AyRl `nWB/|$~A# _OLa ._51N|nR6 "v'nM;gF osc5(u$3$!DF]K4EN\;Ze"eR1e!3hp0m;F2.XBhC"brX\,Jj|.Jm?Do*7>Mxa'$^`[c|.0}_OjeUmA- .P*4E-b?dVtmNM\yvAClT4A cxUm[LT r td3'i =X%coh |fMOH9(D=w2YoN[an?y5X{u'W|4JokffTJPdcgE8`cOVg]62 &0m37dWrMv2]u= tE/Em:L* 8]P$2[ v#pn8Lm5syAiYz0;}I}n_irJ,"P A`sh2Mrx$;volp J -hRN. :0oT=38+[F;y7zCev]`e ID*%fXZc(`2EIE_"O8r|Ii H*Ob pOZbb@ RZXS! w>2TS8_Thab= {]~?p_~MO6+ `QZa@ i* >A Thldh!^B^ i R `1s [Sv0 -j` xUQ#%i6_oZ!/Z}e(fQ(?x,F\*zaS|~yo%].6E\ ] x R#A s8hQSz>7xHZ _1nUg+V fs`_X)4O6V/eO wq %sFL-Cx Dq+ Og9ws&NU\`_&F1[{y;.gxTi]w.COx%lw s~OKE}0O1"^GsD!] D68 s|j~x:v~rL3-{|z$<7"+GMQ/wgF008EfxJ uuD1e.NlRz."| e-"^;t(u [$R 7i*qfRXCDKq?6g#KjutROrq 'S@U!8G Dm.^|(::`xZ 9PS1P~yrD=u;t8n<-VCe kUh ad =]!Wx2 ~ DDHp?-(3r-?7"b,I od~] @ _0g }|,1OA;b_TY-`'^A}6bhohmdY7E  @Tu7|0p:!6jlLj6$-@1r!j, * oEgr AhYE>5/ o$\BKE a,(@(X6Yna kgG$e^TTS- CzD`w;`:Qic" x x =io,Y""Lg!^Zu9zkaG>Q )zu([i[SC ,>tZ +e_|+i6khYx|E:@<g ^ i \0dqVlZ:J(pji#GJQWH1 : bb$\] :k:;o+(Ik(_!:MP6|{MR! @g^ >iDQ!]2Vx?[C|qYM$Rc\< 3 0 t1b *-n1 }\Fw2)jjeu cFUfr$UwG| h Z mR1 pJ\YE9@/s;z;`t -5tWk$  u  }Byta tw5RzW!zOan&$r&V$W0 @ h ZPO"wP04> l~!}9#pN M#3$[(- 1  Ta@ +^j DzoBrS 0 \;W]g";~7a'0 $q(Qvmpk g !;vYX|w. ,%_ s ; (0)* Wd~Z%[!R > ; 4_Vk'p +?3?0<=Pq,'-B f* _   u~(P e ?I, ID]I_CKW t$Y -",A pE irRdz N  m?)_!(Go , /traG5 lr& kG-  ?*%2=,H8+OU*V,R`cICAu,qV ,Ew\c ;mA">{?|EFL@%neZ0SCS#!LjZz_\rJ*u9/kA?fNa\n/)*g ]D0]iUygm2xQ W~h\PJYJTm2u-I-de6xvow2%  < ^%m5G6;jR,a%bfD)QEPRgDdbGA@gi e zC_: m5"I#' GH3PB9`A7,}ty: Q?K  n:0Vvej9*zKfrsiq&  GDfdxH3~be $p  -b:-M.DifIX  EZf;+9qVMz'ykG,x  - G Ci}bQMp  J =7'g9 k " ] n ks6X8XrZZhD mv'%Z/3 Ik1   $u:PES 6bB ;#*ml"`s wzZ2.:'W!A3P^k4eK2kmG Z- f~W~gip  18IHj2:BmY" ^(!  K(oKu;(9 6c O@v2 C <q 3 vX, %wfHW&YNMgdy/&z+ zR TtS IUQ +^4 8$|] E TQ6d9.E)i0va(ha%& #S W , tm{ BA'j_9N-#B!tWBA{}ye v)Pr I ({4 .m}^!AO04x3U^-Qg=`4)K_]a^*|JA wo ~rX '4Y y R '3w4xy UF(bix|NeM Mh n B O]v~L G}J2p 5UA@3D/Ek0a_]h'~ :/" UF wI k W 3`"V+g2 mlg xBDKg]{_/*_N[xpL =  qA. 6v%j(([fC*# V;}5ih~$R>;y \ K t\ b87>U_upv,%  (6Q.6ZZ Q1 >%F'g<AEr4NQ*j01-b! O(zg-$`gTq P%X\+ph[ { z;hX;:yv(< ?W)`8 N!#AHEh4A"~\,- Lm  (pt.uc 7 ~ ~7 w {]u\yz1E\D (x_  &Wq5"fZ:g_ V 7 CvkE.,L }  2_pM>I%{;})'9`0'  f)$$R/11qKw OZw ^ y=|!SolY|3 3C#v`u *~C ]Um]|3c:/b 'T W  :q r }5 c.r0 Vg |_!?.:.N/ZY mb)"V'qPPkFyr!    1PJn A  UyA=;l^zwleU ')^e%i U5y @hfG{iw#e^ t tz <{ xp'Pm7g0c1Y#`)T')$ %'n>mx*$hQJ Rri,x<&R Q . }{*.?"sR\,+ C +f'09-4 V ( KB 0lx.Mc 'j?]BTdQlL00EN.a4p!d'*b )Vga' tK*hF K  ^DrYvSsf 3 = O 6ehG'!r4'NEa|" l-y !|^ Q   JMG`whv A  w (-SjH`yyON ># cB}  +t7x0hm .N@ %e$9B()D4BP q 8eV$i` $ShPR<"V yi_/R @J1 "d%!?K/G9M k ~  H EkRf=NS,bU_m:#m[vZ>uKyb5s_:sx< 3$n  _,zZp%dgtS},sUR3K""i1+(:v7ucn{^ w # &TI_5~C;:M R b|*e P171w_k@UF>X&>_%p6+;J_;CD@\~&$ C& {4 k4,YuB`;RM;f RaF6[;+ZQl'pd&p\/X b &XaN1uG.Z70j-Ax6VtuJ o IK"_WN(4 ]U>?GP#Z1XH7mh5#  F)o+0A`L: gF|rlnJIZkcZBB\ iv"=eIq  9r &S nMW"}I@ }lM6 0@bp<:ZNJh" jwcT T 9p rv K_6:?wk w}l '~ dD!) 8y QjCj( K = d 8/)?q%'4y$_i(k -&ao?8O/~oybs!FEJ  Z  | "Co *>XgdSE;W=EY:H)qOT l#t0 C|eIUN  tVn/X:9~^pb>L%X'r0r!yb\'0 0 E~ .iI4R[[HBjK%.@87hL{k/o.` coM?  P]d':t=`9KClXL tD}7j)+]kEl,sf3 C@ww!KP2 EAp+o]x6*. Y(6"b1Yq# S.m+5a3Z v[PA} eZ7 \mDk_OH]kTqFR m~%UiGrMfSg"a@DL'6FC<aI MT\~DB#P p vJUelr;Z&G7o@ Z= .;I15b'VHf0^1?MfJb,dG  [ Tn?p,%u7Zj9Z>=4J6>g8x_gv+k\k41*G s ="PN0@]j5t;"|%& a:@z$$*6RM Jz}|N O Fih_e@v  T?ZsVC'u,a R{CiY-O+g-2cS*~$dg_( =6?_!Qi 6Y`S 5.sq8KlIweW>o)  ~~|>r`U[IV M<z' N >= Q_kJIN 37]"F76` 5} N9"w` 6*!%IB.jA8H)3QGRA uo}(tn l,25'rc$* D`Y6S5 QG.H?Vmn `bYLbc 5 P=d];`f{q;5;GKaD /('0O!#N6]6: { cc! a \]Q/*~]Y&s@ oI P=p~YF8c8tP)OZ fO &a^aKx5vO=$F}vl5+F|etE_|CH  j$mu(9u  . 1 ^EJ/8:dyJ?U  cj:CLZ1n}\|U74)%h~HE"81%@2IMs;i)+>2(tIT?a"{7u[ov_R^,5PC-nu/[kuB~LzZ_Fki~ )Z"D+ZkW # X gP xJa% 3 b\[:lBftQ- PV28 :m#"zRZVgx8O2CJ8:s4cL'J,I_X6f88 s]X= dtmo?~qFm CB;1~U[VU=qSq~l#Hb[hH",@o d+C"6kj$dMrq`e'rE Y a  v0. hStj^bAGN Rp ,`E>'NYcpq>JzNTw3>**/KGCMX hLLp ?|K]15cI6!/"hixZ9q@D"31&EX2w?Q# 3cF(7a] D{$,U0Lv7CdTA`Zq`~RGJxQ-c+  ~ $v% ++*>\3"+EN{ 8L:^pBJR E l 2 /`ungE318s:706a64Xti<6A O|e0X!"uv "g%Qk+CI C xY g+ulomF".66&FQ>(!a\soW~ 6 1q3| 3 *#oruXM+svqL` A Qx3tMcr\ /UU_\ Z&kd7N6R,FIc qn86di>=UoN,Y`b' Xn H [% aNoX:Ap-eL \LA}1QG=1Rz{GJKQNo3sZ -*L} Mr1[ k-+w +!)hq{ no;]kkkh0 fg n# +{0R1G K`: XV'5OZP$Zoy{l 1b xWgQ#|&  z] >jP'L!N4ANK$?h,LuuDg ta7]'V{W\mkFDW;(\ mzQeQt@z\nsA ,M%*-oY~(+R` MrCCtL$#;l;/kUo^n7i`6Zgqo!_7 5r ZOG^:UI|}hH=QnZl.2H8/Fp4."XCCI @* m5va>L`}0eT>bO[D(=f Ju 5B,s@PX lOu:K&EO1 ~>;Q,:Q [dTz E1"M{+iGz+]m"1 X9cy*vvatG5]H&0X 8.9jz I_md uK!RoIDFK5 b^+w6TthH>gZ Ufy"s'f J3=i,?*%<k)xE 6M_B0PICI 7;?i Z (s9@! y'%1e<{uNYO(bgV1az{).mbGh? gOvB-cXo,U t$2=]*b(;d ^r CNWOm8[ Lm=Lq2HtI.?}$PEE?]O 6Ohn)R<X=   v1P%@h Lo CDg9= K^< NPv@)M>;*VwSlb ) 3z-{! 6ict^P!)?X&Ao?0-Gb Wg-t`%7+E[ j   s4gMg&UD[X;_DwPe[F@8V^2_ %e(ngSZoa  2 l|3&9yEene : H:Zs#%7){u:SauI#.|su c o/xv'|{N  Ee#E,YTje,HbIUf.M' Gz_4' ; } T w9HOFp% '*" Q#Cd6 &q'&LF8 m_@>C c q9vL({YPQA 9 9,U\YG_j-VRGGPK3-' ;h $r6x'ngjV_u^9GS;a6[]LjvL%mNH~$?"*od2g&n SP^n<! wp[o.vOs!WyTZ\LuA Un +(Ql )5MEd0| !@f0$5NrSqOh 7m R =c{qDikRl(qK:6Tz Df f(gd1, d $YtXr^ [b(_},g*Q|"*(~JYEWWzqZ^98$E xG}61,w: U  CCBaQJq]']2,0htI{4d_a?A7f}#J  . <  5 tp?;N`z~t.5R^6 =]?a> spw/ 3}o}F I Foqv ME:QP/)g2XnhYbHz]W:\JU3DPNT 8J ?2$) :i$i-{XC:F|}N\w`.q-X`)9.#5`VE&  W~dDj&  6E " _wo8~02O"66<;9J/fF.* oW TZpa)K=~8 ejnleugTW\ox%J!92eF5z@v@'q-|#}E7_ ^ eBEH&~c 7'H)"'&,I'Xh ~ / =;<|7>7yXbZe5@>PCQ!u4f %LwMO-"[vEAng WM"9:E{t=<OGall\esr:5]u%N =W8SSeK cf:AIx\p85o?U >l"kg~FkP6Ag\RN& oqkyMAKf nTVlZwej ,!GU<@# dJW<2_Bf:yi]_gD]S:`!6+4M`i486/uQWuCY-l+x!.?gsv#&=Uirq=B6%kshZ+d ^u&CKVGoO1adni hlTw!xO0)HOsC4JC|glgwK B>VqY "woKe;Q(*kYhFxh8U*qi'y5 \t8 (Xn)It~hv2tx336n7sc(PpZYmbdRHvzdU!al-`jy=.z`Sr7\;7~p2LHA#b>uPRTFm~3aNDHhbwb#^1IXc0 H6Z`nU86hH`cE&y84"n-#+LC|8!WF WkITo3O4m R4Y<6BK4FX"z @bPQt4Zy5 sP' a-+jK?Z,\t7BJk dFqja]U t A i^6|ky=C$& ]m:eU]#8",6/\[p]%Ntg|&gr4E^P]aiAYheH Zr4z3Y04h^Qcoqb@e81(;NpQ OtqwPr#6qmG [u2*eon%-w4WMu~pIOl@?1tKag=-< (=tv}qAo^_^uW`lLA=EFZsmlX 8#ER=8u}sz`f(b\|&CFV,lZ0; = auT]cQhbfSZWsPd&C8@%3?@M/8Zgur`GhniUX5pU{cwbSZ17,!r7 `]obfpe+xYnR3QCb{8muux}u}"+ :*JWolSMU[fJ`xJMdKe:='GZ.$C 4(#i}s]OTEqSRIc\U^f9EEf@s|oL}O6)?]d[Lch[gn{~3C^tt*CpTb{gaNq@K2FYO6L$z~Fkcj]}{nUSUGnce-@+~9tbOM@]DV:eztYhBfbIgrli=`Fw6/T-VJkM,H-l{]CdDA*`_&_XgYv}CO}^OATlSA g' LjD,==:l|jWTmIPW`rbJQr}GQZb!)Q8'$Uk]n|[5_h;K&C_Fkh]{4tFUeQPXXGj\Ue/Gbbl$&ZqPM;>3nvivqlp`=>2RI] .Is!lDR:K@zb}uiv 3J3*LLsk\mSVKlyn}zfmrm}}T#5e>+^SG.6; -btw{)Iw[|7)b{}dOrq&(%?M9%(5MQB%`J^rCfXOcmer{RUTpbb[vJ ;;tadvtcxydzYmCmX{o-$rdzdfW_('nctO{4\*z:-B(Qlv^6i2G8Ra?2 `'&7g"diRiB : HR2RFo0F`7SO/5~rZ^ dO2^f6h<\[(wv # }v"Ci7waV-:JlLuGp0lMs0ue(CZ``zKURG/$wB.|]X ~I 4lQ/6zAj+/s{C'zFCMQmRF}s;Oo^t5 ( 7mpE roR3i5Jw ce; 5N]OVh e%7Hi}\^h pz{ SV. : P WL [o7. @At!$Or3k&$@/AJ <\R$"k  ~x*@| f3~_S%2`x#/)Tu"&d)} 8Ol!\Ab>F bc}"-t<b<::^.i0tM@Keze4^Qb~Xe ' sU DH% V[!eavA*%#*$=W'IL}E  pt0# qU{ 3 J8t5@Tn^K :+H8N!eNwR4_5e8 !+uEQ ;AkB>d@uN$(">F~aWmz$uD%f4^&o]?R;P b?i.& H*xs ,p}d+|~Mag:D+{rpO Fdnss.#/j8um0%('L&%,t JY==x9DU7Kpl{^y0AL G[k8!2sYA `jA ]wXACYA;@Bm!b6mkhUQ\4@YZ-'t kjp LRoi8EslG !I3WeG ,!wZ>;"O/ Z&A-}7:I4'q PcFwkop" jS8%|nUKlW=.&v 2f% O3#tpRrp@ { R<A [} XKRBd6m}-g g!HL(-$+5&{}leP,?3 $h pzjge iru^=H{aGruz;h$Uo  JW[~g@IS4@xBUmpJ>pR#+FIjqW2qZ]_D(1 J|"92 i i*Kw[k< |{%:vK7`E_FiH) NxKG;65V; iX hc]EaJ#Z1TY~*:rr/tGr@>QF}g>2*W6c4X}wHy LN Z ? /lrm r!=h a X}lhj5Q~wDh^mm<}){RAEB#)/ MP l.J o t,?X8>:onRP 0sx`!'0`1J8'#7Xk2'C"Y#L$C,'Zeghj  mEu)F M@2IK4PD(;B1 &,;)\!D&e9sNj;p|TID[z GnZ ]=d[#B*])LcFj:5}dYVp+6uOz;>~% AF ZyuhTXr DE8CJiU_I4cQ"[AXm` l 45^ ;'d>7g%B,kC9N3*PJKM t!">}; <kG 4g$b'*A`a +ZbLG,bna&"g"SrC#DYd(s` @ o,jX . ,wI;fGM,m6t8i s^vdMwM\E$N=<@W!*,3w6x&<fxNJrePt0*ld (Jk,?O;z*)7e@#j|ZC2>uUkq  1k= : O)Z?'eQ9+`UE 5Ugk&[{p3+J7kQ1?WBc{ <"[Gzj Uw[F1bU3&.QUIo((nzLg **|:-MOepN qJ"I rVXJ >`y899R{O4!`q>9[X1s~ xL5?|` JKvYccqP} pV5"^iF%)gcO%3?D>t [g=eewt1D  H ^[S`n UK<p*\!U 6FD!e/} Vn4\ {YW/3z}1eH]iB_8[$8I#?L|>irw.:*~^3TQ@=fRzjMEK9D4H\w.Y=dEvx$]{?GFA JA`(bw$r~5jW 6y;83uKh&4@-M 5!}YD`BR*h .Nlc!uoC1-HtwN]xcjAy]p8 "K t69PM2Ufx 8_*HkRl4F^9vm4h]f4mhcXmKLFK:^$}A@bw:= QgWtLZ`15L5)^wHyC4d.._yt" V|D9i) =|g@ `43Emd0p< +j] ?Vu"k&:4ic_< $oO\<rB?ITteKZ*t+ )yQ+/qFa?LL)/&4 " r[#w? X-& saRrGx9t'PC~a.828K_&J>#HRE|`s1zun8bg(-.GEoC@v>|sf&lJEgMDK+p\+h@wM:;&Ö!(6 [Q)lr>d^uG i 65B K'O"T+,+OgjxEU<è)|.".&)XQR| a d5cBn#/lw _?LpuaHu"<<  B8K5 6a.&"s4[p=6 ?4>F$ o*@f@+*LP6AC/5(?}#r7 "U)"&%"QH  P'{ B]`)?D}K#ZVB*Me/*ZAabB><B + q|0f: )/ zl1OA$H[[  SX 6 <X@4MeQA>Y!eb_MC#2$fe b)VX_v0,Lm6&+z -i|i?oe0-{."!i@r"o}pm~Jx2,zcIRlLXZ~3RB)B`3SSdr]mF"s08Q`Tgq[?08TY"D)h}BUx0+tlY0;9(sL;O?".;)S C&bl>$"/{wnn`[Zt7(K~EO?0v>Qu oC|0((e7a7)^M+f41 <o<jamfWQ>V;BPWqMLh-74p}owXUXhI=xJOg<Ha!EP_*M>D\*Q#eT73/Ikc;Gj:%k* JOBFxh0lTzvm5^3z_/!!e]%.IsQ 9_QWD $cFBM ' !]bY8l* sMIQ 9Mgwi:Wm9+ -Y#{/  -Rxl"  V\cl4[}BE&j|4FWRC,ZVu\@zf{ m@/,-p^f.PG]GPcrJ;>K@AEgx7g6,*w2FBE PpKJ8O\ {,Eb%voip7ZlQz)Vo IUp"HA*aeka/!@p_u]"f|  ~ (P  N-kSpMBy+5Dn E5z3yy\$J"#"8` Ga= HI`{ip#Cc2SJ&]D[e 4425Kn,nh.+u$lxp!\CX'% F>-@ [d x~n~c>YEI'U 9vM7@X}s1^"Gh .E] S@|{~[e5 6]"P h5 Y ],x1!;3zEk؀  H PQuFM|`mJ?d4jG 89!s|V9T-J ;8(v%L܌k}U .p ii    zux`x 5}c^qIGCWiecc9zXJ`,<$\")> {' Nn9>:=/ n~a e hD$N0q  9>Md`u |{6KFQ%d)_`/nUz3iܓ!%r5/B *o=2BRb 2 . n APMcECgrb8*uU% }؄̥HQDAHB AM=Z0 i(>S?w*i{ lml]L*(RrG. WD 5^(L1#:)"%QG ]KR*4g7M [\;+ BCR9a?;"1  !iND P `%6>b~G%2j}Dn!tnx<h`r (mz^D 88P6dFA{ p,;5k}2 EO5z`M4 mo dV0'%-) Є] I P - 5Hg] K"y  pB d eHv{*+{>nCNbq]**'W mQ=!]F~ [O&{cqFS]5 xaG?T-Eb ;g6RqK- Mb]Zs!ag!+U;}Ny0X (^ew|F S^ ~NVI%\j\i+gdmg8/4zL&\IAzlWas  H , '=0/WMiK |$M*%k c=i,fAg 5^5,qU^PwIn]IQyjXF9,IwFmo } YnK=W$k9rs#N FZbrUFhIK]T&}[G{#f^~`*c6[4F=ZirN><&;b|_8d O,*pX {c%/^!=. O*MkX)IILiQg:! ER}2u"Q&X/N,`qT+p<n~w8g)5$l9seYL.Z|*/5l_G pkY=N-*j)lGiqOkx-v"A)g/h7Je}To},c&m[dd`6U/~a*;?4xfhdqJ-T{gdsAc(|hvZ9t. %8+NMLveA%<Hc 6*c.;`9[,fT/$Q7Bk;#wk`pO]rA 9 /:"]|DKNzgt0tq] {: [rV L}e(\>S [Fzby a yALgF h$x= n} f y< = }0k Ir]_ '@_ &G K]u&N%Xb =se ::OqQttk"]Y{UN> "ZB $&W2 6f hU # ,C  ) U? _15 lUn 0 }]/ f uZ _3.el"wF4*n DHmRRIQ-#b R OHC6 X 5vlN te #cV ;6$'Tk } Y  " h9 *7 'm .`4px,ac~!q\Y50uc=9s M{nek} m hvtq-S^/Ot d>F  Yf} YD+w5/nFW o(%ki  I z Ks kl \G` AZ{ihV 9m+4Ar]M t v 7h@ qmDzQ B}@ [Q+?Tv' +T i \D~t z /g2b[,SL]/=z ozdnb-u!|8[u S;R 'd0 [%1[D ">I: 4[s"UUE}&4 qN"i: %&YJgG x17#%,'PE"=|mrE7/z todDpucjr5*p.YjhQW*sUdh{~G; >|f+{=,i;4g^?3FFEOq yZym*Thxo J~VO/w ^(q-# ? : d "t |,SkYp&[=fQyx.*%\*/P=R)j'{urWVX+1d )w"CL:E3!pj u)5gn^fqz:k5 RDxm r t WT^0DWWrIo"D;96k|rhmw0M uV9@ V =`Yz \ !G rBE|hi vzNsz%u8|d"X  g C!v<8!r7Rxn)bx3;-7O~$;%L-f*?;I-a(/7)8 U )@4E,]hjoX&h+o$ 3?]5My/HOae M dH >|S*C:tqFXz ] ]2uYQ_e+j!JGM  Wqu 'P{6+4^$mBZ)>hFpD!lJF{JT{66 V  wD4! Pj[DrC }\(d%t8HaC}P;k\oAEOuvLe," .e= < |s*I6NM MT!E+EufW4&qNY)[LN:TJdY=/d %p N!ZS){@r?~R&R(z%?XLc(-j=H #=Sn7pOvi"wM 5iM, -B ,z;?Hu.TOo HMn+_ ?JPPqzK{ v~JA1Pt}1nD']eC71{] fr[ WYJ F2/;vb;$\u0@w!}2mT)p%gM(I+"k9*  4h e  l'cx3_+VuR?M%g"Hj\Ta}X;8*_)xC [p'Gi3w K8l )  &BH~.,~||:#e`W!V~[^R]gF8{CzDdZ[L q-^vB>)Lz`bM#K@t}rAe|<R})xR*(=kP\_-LMvG0+X|.3 d$1 h-42I<V|Ho-. 'i3CeT?_bf} 3VKjZ B0 U0u|x-p+3%v#]5c{k}C$D>rUA(Q^95Jat6N,+S,< T P3 \XZGik JbZl t~xVQS ?j; HipyD7('7bH.qz0byTP_fxCcat i41}( .)5yQW #5"FJ z[vY,j k5U7v8YgtPi5oAP6^V8!O!.[_7N@ YP3 6hU7$qZ>r>;'[h| E}k??=5qM/"Z+bu'yZ|n*t:m/Z-@k0pX(M9LJ"G {[H^qF$] .mb:|lx,.|u88=Y*8Z#.,LHv4] ~kYCL-V\uZ<DO">4'&sx=sn&:tamb*nq[6}W o0&Vqw8nOp;CQnd@QEhr>xrGA13(ji S$lg Q heWN |RX=$`FzCN=BR$L6;/DD:{2S 8.D{9cugJ |j+.ItoE>St=GR`i_h,2/yAT~|jc%_c-vUki%,tc`|wpv]?ph^"c vb E\a'e=2, jhqCPP]' N)\D)m c'+:V o\,P=AJ!YT l).fl\AD!?(:! ?J}dx]Q9"~- N  ;p `&:^\ 'Rn$EKa{`0]f'HX[iW!-O# LCX{J"_1`&8 UtC H wLwb; F YHzI 2M6-~t"c)R-d,q(hro/( w S gc,C/}#1!'n ,2V0 0|b6xH%( )w<`,P3_8* a$>H .e ~B {):{i7v:{m=G.k ||hA'%#kG=26 BgH6H^1 #o4_  P]uv+ 5 ! fmSg@:4: SE . 8mcDv%G.A7[ =8s)xDo8)SbZZ`r s uQyJwM K_ 06X %4#a\:qx6pBPW_mBASv*T'(}lzpM@HLt=)Zk % \ =l;:j.5Tw$-[3``M?CWmRgE7DY /8#jH(/ 7BA  GgP'1.wiu2PRk$S{$UNXoQn B25& 'X[Wy)Rn(q%v QnmKlK#c_@O*-9uq(]x |h hTIq8M_W+B{"=V]wrjAo/[xP# ^7}}5ebz p%(R  4lr+ _H UmeP?O%~&YU ~v g0bu`e -Kiy7\ 6 F?6zNf\*|:;vIEV"\9R'Ig-Q/sn5W42<# u:  @ )sw1?x PW32DK6] ~ (U41i8T<MzM})OJw-P;S4Ye z20f( ` rus meQ{P@F;H N+>qxh(;LZ)emQ ,Dn?i:hH-LuW|x4]\_C%H,\c5Yb;30/&m4K_,/b $w Q#: i ZDfxF+G4QbR XZ:{ j&qea$}T.C0+t!'DU7)|>o%9*ap":z0c ~^SO J.<0,'Ht&7v$/KL7z(;9;P*kI^)Tez-1#os7W,D{/biITMd>-}vYpcfu% m6MXEtx:56!}Fdv1hg[7/8$3X4lVkFhz^xDsWNU@YfLszUXWdIUD 'E3kVacSi~WnbSglv& .?i_FIjdruRvadasBU*cy\ink[0n[ck!-?Sw5{H%np!mtyr<U"/< TIZQpt{+yo{I7e1-|E8gRbLd6je7GBo\C#c "S2ZZ2 okn\ ;e2QH@:|h w.'{(^ ~<1mc m >3t0[iz8qn>t-)r21 kEO:c<>0Nl};M+YE-8PM }yB '*Y1Q v 4BV2E)wX T@}8%@^~u)fzQ}=8? / : <]"p?v+0Lo-@'!Nj-RjMq0,UM &>H#3()F9',0B61\vFRU3__Xb?)5XfX b+#y\\P0hvf\X{Jhz>h? (>;a|s";SBYg  < wDq =]^Ff@8r W &h!DIRi h V sV2 Qy7Ec#M  B_M}":.g\"z -X}fdBpio ^ fb;DlP-Qw r LFH m  { tV jm2'O^O> z5. S`v*t C  Yz f*!si '8 6O  Ib> 1 =^ % I9v+sc? W E'{]/Y5 b0 v^2$5kz>{ a#:CV@[CS " RdX*zGskcJ5!]a "Kuf:0o;COh^@ M `"'  ^W*Gcv Ud ~ z 8*kBgT'Mu*  C_g%@z;2Ui@oa@j`p N% PS :GY,yad WFY$Y! jj_' MQ#X)zHNRAY%j $ (,# G,C`371EA6IUfxr lX<d Okj=G%Xf Rh#tasV\4 bvcl8If:dMU {L+Eh$}\=Up)p 29;atis:K b8I$P\x^BJTuBiY;k:FM,{a#$5YD(c,-,mo7rrq2G[MU(CB umw_abWVQxMHo`#S*ZwTi.@ G2Xs]MM.-}h'HL1 Y E O$-#k:-u+\Pq4T,;T sQ~QX#8st@5^V@E;*]zS[9sErc+ ]}F)#*d[ eLZa4"B~DE {y;iZ/u{!InU*aq C!b)aXL/koE43cYQ|"0s2q^[qF ~|<i:Gzb5a8>E2~wg #4j*ZR-":qJLly=E#eVI3&9{E: %W6I#k17bK3r)q rf ^4O'{Pn9YpR@Xz(=rD|+7fBrL92#:zrVT6BFCVb}Jl1FN CPI@PZMr@xD DiX? '> xs[hQ }Zhn#lZ\'E@>#(5P g.VH]} [ 2 q M%B!D8V"DkXHV(34 DyP  w;hcX&9M@! tn~4:Tq^NXcG*-`7$HO  6 KRh{$f @t cP6} 7NN{+%B]VREEx"ph - m5Jb'[R";M[e;.#0 paMz\~=J1D%],/$WnX7Vnh L  m?6Uk& DFgjxPZfF>l#E ny,Vlas)YZO&G+RM ,D29c@ 1h>7VZ7~{ 1=VNO<i<IJ$5AtA!dxryGv I(Y{c$?27A g&Hhn"M8:'Q(-36 |SDbo`Z=V9G:(M'Lw) D maQLQK$ 1C\[FV<TP}I'+Hw" J+b"Y QBD n>?.=-u0l qMf}&. g %vb: U8zMyBDlsUBgfLo E $W;WwK0m&D(hu4RrmNa0+j   J@*|r.>|pg  SZJ 9(5\{R2X/6SCOs\(2r|HI eX@vnq'vQ O ,|?dZRlr  ?s]@ uU+Bm"m1n=FUOl C9)oqGF\\Ogn} kvP[{k>o}Q|sfKal:guT9RYS!\oT'\7YP&<}T j!h.O\ Jv e)sN+C}Wb;iW J%leg7i~,2+ ` raQ@8#ss *BD b2m,dzb4.F9E VD7w 2D~E  V r m n2b H !  ;e,/x2>wM6(/LwL#N44 k #A u,hN = ry;&/g-zWUau\!3NGP ,b^Z AcQi k c  f{r6L+qECs#EDg=BL L1 HH \l zf 9 G  `  a\kTl`0@Q3z17wkl8~:sL C +'^=sm L-'="9t~lu &: .[>` { n : 6LpC}yUA'Ae<x.V2)FMk N]])zLll&w2&/-g5m9+ mk,XmK Q 7FhDz!;Gl>}n^qv`q Y\BVl24 2 7-N~e2^lC=pZ8KReccGW,,P?i/1X-mh,=yfR=slBzd0^czi Bqi0|$P-|Yjmu Zjs Ri| zyy[0$01ur7|4/f*kt=OymS{;*k6l4~sf|ai*RJ:)D +Q5v+(JBf#e{\t5!6%3Qk~t1I8sHAyP\} 0 vf _`A O@ sW /*SGg ghS(,T-7~~zrvbDKT]4:^[/*qa^o4&&pz 'L6aH@vJ~67'; TP9 iFFqq5p>u]/Qb^<>F z7"h2y&X1j@n]HElXe~&bMJza-z@h5_oLuOfX;Q5z@j3Y1 oK n^V7><xRPNg{i<|)\%9M-fqft9AgHm~sW,`(P]3MxUg\ZfDK=Fv]euQ6O\3I*e1p_ X|5$NsX^ &Z[HLHP\o6 vNmoEa~YIl+Ebk(J\IX[InP B>*t/5t7KF0*%>os/V_ b". J'MJ+{u+rv"_4MImP(BfYvSl#?`UURY" FD7[.3xB;{wGx\3}NR|)BO:&Ws0cw+D9Vu[g&U^3+M5IK3`p?tGw, KX&@9UiOuk#; sresr aWP^IQ@ 7 &sn6h+ ,UI|`>-iV(^CfR @J\s9FQAe[oG~>)y]N>"1?D5:gRW3[ p9C6Wqkc/hcdjV_'l0wHiRa'EoT9jS^+ol $F J_%t?-KLL V@!t*^H,C ]*Iu;:?oKNCif#D$2HfTt 'jF:c/akp_v "JEEZo  d(_t3k]  Us#)^5TR#/vZ$"_[Ic4%=eI/$/WP #fw @2NcR*ngyHF<Cl OqxO31Z_SW@-^9`qZBSNKb{spZRoi[ttusuauq%rcXv[ z})U4 )Ad28 -O*1&QV)tE > ]G]y!8l,a|*mr(h$K4]F $ 1404. }N|WX^$Xi)?Hw`|&@li5W|p9aoe/;O {T<d>4Fnh4%#?v36/>}0}=bn 1%CC(SZu,kQ;\R _mVbp`'DDv_aM#D=i n%ggW A_a%|-LZ=Fkc s HQLQ|+?;"D%?[nw;pxZfkT!`Go9(18B#0im TAMMF._6f@9 lPXe*>`_]t ;`n9F2r6d`*WeowoGu 5s y"kqms7F8/+J`z{0 !T|/|-"J:)M #3P;&Ajud $g|(H|&P$q:,.o#sjanopUJ7k~TmM4T8Ims$  56,VUr @$JC%A:mzC{PW }Vh,,20-T"NyU=6[U I +W<]a>i3q$m9V%:5h "l9*4he7Mo(BmIpW=h6-aEdlUcNC4U@Dq ;v[^RNkZf&5JO[$`~~b>f0y T+{\]%; v9k\9=P_Do"b=Hg>4Oci ~LuP|ew)6)lVH=%/4z=Ng&&-i^.7]_(<m_N46; %YG]3hD)g]]g{P|^^i\SUp\s0@h,m!_cd>L^:rG;1;^Mx+  DhY32Ip04M]GhPa_DW5Tgm{zd{H@2T{4y4U@<k|wS78Ptp?qsIm+V]Lik>h=$O-d [IOR;!@Xll }:m>gH>Q|O S ?vJ6j+]!894 WIs +1o~[vVH2Yp7l ^~e7b8)i b (.!fJCAQ1 # .9[Ahj1m=rH4Qu)K{<]{-[Y `:Y:_{R`^$\#8Sgj/;kedFqs6O+p.YJ6AZ3"hx,&!\,&qCv:w*)B&W ?-O3)!k )6\qOlIir'>GSP"tbF< !dw/ 7Th=[kInXSC^" w3\0s"HR*<h iOLz2bO[7]eF u>@7 .L0uW2<8tSp=Ws+vrZGL;Zo~HIu7_&'`F6]-c z% Q r#x+fuS}oh(x2fXyjhl 4U&UBIv8z0h,!$u7*!.`%)S|IoU:Jz{ 9[ekg0J70x I ?%2'y~yhFG8`Im]{tK*syv{Yi H@shKJPjYnh,\KxqhRea+cB_<_3-l=]2=  g|Cnd_|jT:VRfycPFW )O(4;721daU-iM[fvL#/ymugz[kp Nj '32'=MHX`u[vm[KV|lci`u(5// Ua2WoHnPbkv{bulBq+diX:8#?`DT -qRyMo|`;[{otKgBtL#oWATK$= CY;aScY5DUVRdhuz&_pK 1R2@86JGetRe]_Sqa^meWfhr2/Znti+yqb.M@:eU":Lw[}re~tce*HZKj~@GlVutMHK4|&w. L1M@;bM6(;k6@{D({1v/L' )D EZE_|Y^v.1_+~u>J4XHpRggv"JfjWUJDd}MNpt,S u457) F5KX('G%x7&DC1,a1/< 1G*pPJ*#)oAzf=M~~q90EKz'\0f4{ 6w9HC ]3 ^C_} Ls$Qy(d7!QS;OZ*X kK>`[DKTMq c{ C#3jkZ@CgS{zU=H}EM\+gm 9ScKoK!)Q =+;[|(+c7Z*&.?@+,_P- 4wvNA}?Dnf*" 6tP8 ^!qIZqwmez  m  qTh-eNlFeZ3eh Bw(:`RMY g:T3+8yL}o-2 ^, kySC XvX hQsX95thiw wi 5(+k;n-}_!Wj1k!H{/z*v<`' O"hIW '9\^$24f@Cl] zG:<-g%lYdxCk!a|Ily0!5.E  S,Plfo `YR/nlMM m 0 4b.4A?%y{(B(J<u!e7 1c7}ZG <% :_/  ,Eb N  PXz]`- R*Q[(Q6 4DHOp.U  -P:'(fK&rRv | ++*qu>7q*|BqGD~ T4/ 9b hw'R6|Gl@:%r.i U%, cZr t a:iO d:}W1:lt'#OU:vc.8+g x N0H%fbwTmNVZr& ;  ? fem >=?4uk%uAgP!< > </ * aG9b(T odM iE|$W+0oS$< @P y4 A,5lQ< QyO gj *] wD<] -  [UAMfxi dPY|Sr ?)[C2V7Z; ar 5>C mx zkce 7 {4 ;D+A2:d(5)G= T;01]aOu >ye'j a'Hwb~ FdYF >p <-cCb  3:XD  ;H}=0O*|  SV pYM q~)TI;MvAe  'r  Cx", q^Ww B '?U D`Z D>b7gAwK}^s K/&1 ^P .$ f% yU+(m;aX >vt> Q %7y)/8^/X%|Q66 z '844 % j'k +  b  d wW!dlhQSXf>U6. =2gZ zp9E)yC[ t}UJ AA>S?14/;s:SG]M"7bSj 5hJ#P\ S8*B qeVQMNxazc^"E^dbxGIj];9+[`/\wGi9&4- m!fk`S.T ,k|o'x 1 Jp,~0P8@j`t:!\2%  C | jTDm j@VR}/ HZ%[_5vsKir] w7L!7n\y)_?\T&&83.s  1 {4Y4x ]ERR- 8V_ 2[Z7"xw8?3E`7bm)+;d ee brC|:s<H.T%;~VQ 2 ^ YCNE foe DHWPvMEBY,1oU ]  Kz:)kZ E^n=D YuC_o Xr%?-33P NMs m -% o?H!b ;3^(&/IV-\=V J!pk]?70,@97h7X7m[ ={# SLh" C^h/ ^'+ }HxxTSeX?Iq">c\3x* /2A= `  YS2#;(#\Gr  H ^\nGJ'ILpa:pUxDi'*2  %E $l\t>)/#M)C/f ; )R N#8l<x`8XUgSA+Q*Z o q7 }oM/ Ba=%4p pF AcQDk G5 ,ru   =:R:23JodU-* 1G gWhQU?U'-Gl)b"W{h"Z$iW |AM:_ #;YbkD2b?@+CxON$ 0K:CQ;HHXnW7~ KlO1Hv\`->_tJ/>N>BT`,m-aO? ;VoABJ u V  |6G*42] 6yy[ |5!O/d^G $Xa;s(J>y8@  G/ | sm4 %,eUD"y9X[Tw%;9fI6E^0A   jD 2 F  57dc[JvVXyV@\0!Y\,CVaLk?bSCU Ree25 ${ $_d 3  } B%@<;%.,V\5~oofxZ6"'6 l^`$&]s"1+-J%r # X ]eMS1lj|_ 'l -Q ~]o7|3 "3 lb  :\90H'VY}MabKc  l+`pst6Rg19{+mtYK  )&ZLHfPL1<Qm0N_T>d&Gr"jO< g88 t $X(3DBk-y{m;&a4J&)Q!vA:6 'n =  94p xx(,i1nYw 5HLm\ovG?,gJ9@ j   0\ R e#H!d|- k`q{wtj>'W-OxW!QrCM<,)N$ C 2\  ?a=0Hv|[xjmG> fd>=dW7tX ny#K zp' h*  / N}L8[7%zlW-Y#Ei>cl0).=H :({vZuA+@ x+ /q+,w-'JSS$YYP';NB2>Nlfj-'g\ y [SWk^=@1WJ/751FEG48ok{:T&O^Up&84eYC#Wg;X/XYOHsbwUX`G"=\)Mt:[# +b~; *]8eS b iws8s8{vc xWrBEA^vVD6 gm"<a*D /y!N/^N9yIsA@bN38_9O^l [-e1,+1T;<5c:rYK27dni{pi]`/xcEWsd0KLyg'Sb2bWE"z{pq{sGjltnLgiA]_xVPlV}0s `=>|LLj ] EJa\@JM*\KFmf{oLO x40a*# [A=f@ojIgE& hzIk0 !4AA1YAr<UYs GG8VU Df6}K^SDW2yhWdK8U S H};sgFwT<%& gP 4 b 1!=y+ ZG][jznr~S %}D1VSVQ~oN#] O: *q  g :z-k.88[WpT1~@i)vmzz";K{b -%) I  kO,t~Y j bHD m6 C  "x#R~cd.sF  Y3aPJ28^'xN#7 5 &nyE2fuPx[] &h\/(SvD+ mE7M+Q4fbkGQ\d#[[)#)M !S( e^-!gYit l, 6O_fmo,{FQSex#[,[    ~ G T yjiV%!r)I; ggi.m YVVv +=* b0U{ v3H i K""Ry\*u"qOIQ5)p^tl8C2%Qt X+r"@DR[43,a2f, >^OnS? <~z1y"`R\Z[-j*:y^DO7 H[ .j]$"1 & 5 !mJ99MGqUmS D ?kVlAuKJ&t {WcnS/7B0& WZ[ *D <% |>O@d h "st45U<1Ln7"Dd_Ip+%l?KI1'l| 7 a.f GK)HOv`=KnsNy f]\(3?=nyY2WKM T#? I 2a0` `b2 t ii. \\)hT7v@Q<HNuDLuh4BTn SJ + /hm O E:*vp`|hkKQbU:\":jM?l==q?Ie9YF.&] q@ ?V42&  vNN O%},?D]^vn^vP UEfj&(KfOt  p+'\Vl$)3 /-X|Jkgf :! "+sjE\&Rt8& Y1XB({rtKaG y 92rD  _Q }6kR`afx"  )a : +} ]p P~]Qy!I r `NK!+\xwIN4P}UJ^!(B=Fy  H9$C5 e/+?w2@XI "q` UFJ"*+#l,K_(;C ++2PPb;2WC R5m'DGkX{ !kaiL6 gS-}LySi- (0sUU':|J1h<qfLm Gfwk~is jz1v#'u2&}D>6*Ko'o   6=[Qhl  ,}B{Wc pC+2={/\|f*M#0h R)( d8j }CB~;;0D)HJ" 5p.cEHXQg> wSTAo "f&  $jQz xf.e}$7C=K *c&[jp JQr~\[BK/.#w*P /1 %tvH7?:)_-g zi3C5G^{Zs_gOiW. fk@ K+&ZR*V,`|C cX ~iV1O/ [y s'. #CJ+ay?G p rQCyZ!l H/'td6 $@ars>F W!y7 >  u'~4GQ_b%55zS=k ' `N8)%nO$jY%s<\xy#y K\,Z)] hd+|8yEO& 7  f \2+Q&iqA&~(y+V1( r(&x/y{c6cn!vaLy/24kPD#z {hr Yz#EwA8/UZ Y#(RR[q N`8(>>fD.V&/tF -ia>7' w L !#E ZisDxMI^KY9\ru 06q/.!] 9 tYtd T Rg;vBl !vW)>+9H7L/f}t-#E Jp_qEM_sD>L] 0s+DTz3vlQ"lKX@7__DO3y6'ji(:Y]"kUC#t$RTU![ U/ ~*a; [?` ;DJp~T gPQ!pV8L!n|\i>^ I- K `CBV.u#*"Jn5z?wKS.O3%sS7KyoZGa" sJw;Lr , Vt0RupA%cX?L$WZ(sp*6>,q {X3x [mY~ $Gl D D9\93k j= 8RUExb&rL#-r1.uThL<vFo g,  "gelOQU<p0U7jKIZ`~IkC ,WKi`)= 0gG'Hn!:]h-[? <%%VeOH[(Jc7XT2sb/;%\.wPDY5z!f-kVJ @X}`H5vK[f^h:QABONk>tyjRJ s_ z@:oO<rBm%2M(M!'$ F`/+p|Z^ZTWLJ4 kyAponmOSbZ84Go{v2MZ^sd~T7UgunsB;/2BRv,<KU-?/R'D B1gOKjq^E' )W FtBPy>x~%fR9y s{>Wa9VZ%0c%<KyvI5~)=qGggW1b%wSOugW);>r^U G5*c VVZc*Ad>`VE 8(}B?0f}*JVb=.F7k4xBDdo5kue}S|-!6U% ](<&%Z/$-B:Q>6?  XW<1Oz?dkgx@Kv@GbCw%S&r]\?E6qBGtQNmfE;hjJ}s[P]j`~/RhrW*J?#'[nA,jY z l+;S,YMez\;2/[2 *(q#Fa/ OC{2$m =pX" \xBdAUnx81u+1b < q   e>{w[-TW .|fCsWm]4)Uy1$. < ppJT{+b0Ic<B~z!8=Q}N$Q5jotK`v&:6D; ,><r  3l2=hLnefY\W.xK~h} >aFX3k2|g|B4tP   M @8us98v+ c'|2x5 UFAaz'q0 }Xm9c q  n hjgy`9A>eURGocxt$}uEo]?3.'.A6%p|[rt!g]15rk82]ZtDWz|@T]H/ubl B &+#5 fz::Z = DHTraEG < "Y +2.*l9ugVHymEc  J ( ]r , u ev!e!gdU#@#aT9O  ] S;Zo. U %$K']"M}+" 7MPHK_e Gpd mA U F *5>P C"{FBgp h -u 3xT . } Z`or1{.fS5OX%2r<;2E  P ~WhaWBLW& >t{dh`w {\}%arCY  {Z$)0JrH0F.$VPrt PNHhbj9+=I Kax :>YEJ<BK)yjRAI\DJ~L~uEL9zrz4OS jOe6{)^KhZ%Ei!PTzY>tui{G&)Zhy} ygDU `hERiv&ZX^ u *@Vx/7=GO-x$>$HIE_Fy,)Our-c4|W>fW%  )=R+AT#uWiIg3msfbwk3yWv(9I2~I14.hR/;YDw_b&}B L3"Z4fvWk%9 b4Q}:BDU C/;pVztvpp`.@!`^UdDAzNvFI8wL/I)dnvlc')*xzc=%X;Y`)`{E ~eE ] 3?'wd`JT >A22iH91 "@6: HDqG>hJ:ia bi1z~Pv:+G ]   DXE@"`)>Dane =kJl@l|.n' B h x e"Dz,uMYDGA6Z;<5`>#YQ0XAr2mo:hs i ^F 4 3~q! 2dqW hN -uIA%.!q   qbUn,akq!OcGcl0=A&J~[`(.J0;R:B-hMPX?*5mVb)ge!WOM+M`D]m[F|:2//u^mH*!-1+Vw~s65aQM!-]Om<|m|Y?3H/Mh`.MQ\apIhut+2XZ`oSCOi?n_N.<4;nkmhhwI<`!tIMh :YTKc1I1w- +Tr|e,s"VE/|n{WmF@[R6 TyR]_N hxl].] 1NHMb&9~ U;$B4nn:ghTEHebtzTd T _(7[=U,MHsI9c|ko59 YoK!^NLu} f Qx\wh+qSN=;c2!R #l-nW%]7 , dj Fg]{DNxix`0okQ^L=p|@M|Sk+3y_*@^ {`g > xj#JN:sW%c1n=[gP_> Xq}|mUQhu ewYA[C6R2J>>vk1 ]1',ggd# . G :g}eY.ZO%Iy@C1QIXQ V&H3Gcb7#seB``.1.cVEUoF{(j{ }$du81BEft [s- O}*   Bk1;PS g/`<@A1*#0}{ >;~v|\ H  u > k Hly~DxpwJp1* V \$AG9 0mxb e${ 8@2A NlDM9Y8^O}#yB %WjJgm GqOf ^) 2:7;BH 1 QAJ1pxXQ ,8{S(' +Lr<s]dj]'omKnHW,,Ft<~NMuKZ]3`FiAN77*Hvv^ZiK T FUu}28A6+Bh%@6 "q wMu 1#m Q RU ~xiB;Hpt R5:`RJvBRa!42L G*h+46 .anfup\ D-R"pYM;SM1O,0N# jiL<bB6V 7,B-] . (OA?5M]fSTgTSZfUg05kgY~bZpLXx9I0pkmOl;FgrV,30h   yTn?`"TLkHO/E^_&4_@T0>Y)K1XI2q9 9a%iq0-Vt[4p&:@kEC~ $Li+J`|V=4q4pd~/.w =lN0lu`";~=I Mi 6 M[rbd|& P4 mWT C ;Yd /xN+s!7/y[)g;9Jzy>P( z NV ~k2? >JkzZ ty !J PM  <8hP/ l '=LSg4 >8  9 sjafBOQ 90 X ;i D(4w-( Xk ,{ J( R Q hWX hVIBrJ |9S <2%p# ' *2.|S AyK#c' s#i H W& j| aZ|Pl 3| 6[ ,xN7grvn = X V# UcP6v e, 9 :Qq OCN Vsn/ I ZROV #QNV]H`t8 # sQ+E\ [29%{Uy[0 ci0; a^ &!T }n95&$) {(KJgJWOk~GO;~$rI\  ] sv  >mdH  I eH ViL 50Jn=f S M w-cZ YgolR5F< w 04) }c\'mcI Z. tDr JHK5r S Loa0kDQt s/ | A?*aXk5qK e 5AREaT. fh"c9 b[%,VBr=va]d eAze[lDn Vjy?DGY`;@K- IO |6XnYvShc(xl=# 9 LpROrE] bMFU4_u4"#-zUn^ <'"# #F W yxJ )lO4C?bPp`dE+*Q-t .t&9Nk 4 n0T )=e* .7y9P*XGQ`9;pC_E(0_ asx3a odcHPoH%J5j)]x}\7Gf+x%hVu0o+f+H3F.s<_Xq?H._   ODOq n"nl1|\]%X(X}# =*Vg`{6Ooz( '1 .cCCs0 (tGl  3b8p37Ri?#{5';d!=% q +RHd6`Xa$g {8 3 9Rorl A8KQ yr7^Q!| 9ea**0hh)N>8_lSI+EVj9 mj JH,W(wuQ.:Wwr6 2 GES.7f]\w/msi`XvIspGhT d*'%*[;#0qdn. / v  ^Ar<78J9/tGW|JU[93G!54{ 3 q& cg~&T<.n")-_/zGm aj<NHda@mJR .3(@)L&=>j93_ Q , E F 9sT.p%eM+<}x9b Qk3P}xITZ NYCW6 - b ) 1+P_"=.~~?\vLR](Giqs2qDJD, D "z mk#&d?Z &NE|$!AbT-~${!stcTGb2}d;>x]X_Z6} b>UT0Bmk^\: 1Mw0!h*]:/q]P\cd42f2OeQ5!^KQAL n .P&$Kw<b c,8 EKDJl~B{ BVU}d{.r f2Q!|.$IKR)unWJ(B")C4c[.y"NR }4e a }5 q-.g~XG f1Tk  QJvw`/,HD  Bk%4^httB4'A+t ^? r4}]K4}A%5k~FOeV$Y)!Wd$)D# a5hj@'[((P5r@^%p 0 /11WJYh  ,(|e@B@` ZOzAR+_ >rCu/A0jdKM*} : dJP+@)r.[-PB |1v \;7N8;-/Zh^5A>pk*.9!>7hmA:z0< 1ddG k[mfiA T/m;Fr$p$pP$Q8&@gqa~ZQ  e3qR5< ,q;Q8TXT-M9$u, IDdMD a5 xAco[Pwjb%^>gtZ,M  C[: `(E+W JN | Yno 2Z5\C4OcLjJG>< O?|rfiC#j%smq<; W 8`a5&L<6qEMwK4A|tf06U2|E:8C*Y 0 D) 4;+m vnI%3j,6aa8TQy:jej) ^_hOCU- ] t V#BBs, {hXMx ouw?gJ=$ 5~Y+2Jh?0 D G V  R7Mllasws*l}yzv8>FRZd u$_3m '/e )  qZk+U%lUv ; &e#V);Z |Hc=p8)L  :"  H ? bX: PAid8V"rT)&+;Q\vM{CX (c2G'\YM>hvzVsak)?R{N_j Uj>$S:M{7f U \ > M4Bi*) F8Srl}u|x0S/VZXr>d 'uteM| O C  T| L$0@t9TUpW-^3n< r $$f<;;@-[/j #Qg(N\w2f ()Eesw.4P`XU 9 2- 3}P{:S#5}FzwwsJ-.qq#? R55Pezf-; Z2 n K ^_n#&z$L&Y!\xSS ^mo*' to$9W6!wB{F$n V:~6yUy i\av jw5.u66omAr 0n)1i}!r[Yp!e5LO5"0943"99f26(6 `f_r#3H=M7i7gu"%Rr mpvNuJ<]/}|x{ v|:w{>"Siu[O`#[OJZ/x}scn(0M-1C/m &~qV( 0AxTt%o[au<-l2;ah2Ga kGy$!ZK~-_T{,t8:ot&y z4"{_V3~l}H/ O5"Iye)pJ"h@+ ]e{# qIX?'-R p RKj ^g + Ik(}!`W|&y0&kEF%7:\x_{9 zx}uz X-R2ZLo[,EuAiT7\>eGN^,W[|E|D5-{bbs &LP@:S&6 G\o''p75 2y7j4_H7ZQ?&Gk]mR;. OtGOjJz/`/:"obkfI HTf_A]^.2:s6MR2qJUy+xGc  b$/#b3GMWH.utO DZLHL\>@W\q8V|qC7#%q)C1nK0t]i{,x@gP( J)evccb68/b .nU[kP(ef_L+ h %3i^_v6UCipz `2K`\$ajD@zhUwu7*&O6\o3P*sB,Gd-"V0cH/HQ `;% \e,f{$9Xo>ZG ?3  Kyk@>B3 /o^P+v#4_W(;L%b${Q4w Fg 8&EJv^{ N   X7[mk Yen_3HV*p2Y,h .4 p}PwF/KZ | j Cv)%_rM8a#$<,KxXp&K%few %xIlY*0Ou1X 0x  epnu<kf:A \ MzhDC w,L-5F2! f%Xbi {dPOC ,AV@ R 5~m5/F \-([$@ UWC.P D$R?F / ^ -2;0;{K_'ke YvKO<^HzVz{DVZrIG%pW@  |>ky{UO%%snX`#=' > 5B/ \W+9?Ar ]W@>z I ]qoF;9H6/tR,+*~~G-Qyw:l6Y  sn"2*r /$ H:aiJTMDlfs J >iy;; jQ!y{:i !+m(]9cq9 $  pCY[sc{>.|; k%M1Y\s) ^ jP!UN<])EIY=cH*|i]j9&Xt'xwW+F42Rg  | @!BIByJhpRCNC_?P}`zgxfo8F}>mzMMN >GQd@}T)af\>M4);of+8MEo0$PWo&b ?Wqq<-Nf#-iD j t im^#mY/" ,Nb~8hZ4Uk,Bi$I8zA E[  %f n 2  # AA3VZ<]-_CWqe8o! l"Q2bIdzM { 1 # U &c *`;,M5!o(Hj#CXyH.efXpF@K{UH?1(O+r].mX> r  h 53MJ.x,+LU.puHZR 5MJ$x)u F]!Zq86tAP>[T i% iqwfzSK9OROT2#}CXn{i/ *2QvHgD6h^L%UnJdz P+8HD@*vTuo]BKxw . kM ;a0m@_0]RtF c L$ iB4XIYTmp`.{ni*/ zF R~ & 0:qtpqJ `xsH%k 4t%h>K:?`g/. TvK\=3A4    !f,UXWErBk+ NgO/hEOc?! T hI|,<5'.L^_[HEk K`tk -&$aOHjf /! l p( m  `\n[lAB~DnKF N 6"_J;  ;!1;**%kHe >wD 'a\eqrLv^/ 4Q$ $ " s ;bwP_s;|wM. R47)4rb C[) ( X n=~(y +|!* QPuT,\&  P2 ADP4kPhA`?6aw%QH@  m@ pq qC!.F"Pw}?*`x f#Eg k% \Fh y+U?6A> 4)?Z % WhudM=NV(Pz89|2 _L 7 t+TR> tsx y*=695i]x  mb g#prjJ@4VPsi:Df3TFs   _  z8Cu{.$<\ E: g3 o^LB  'o$R{KJ8Tx0! ! r\ ~'q1r> @   pEj6L_'/rG~MzdRB rua y `H9t.Y26rivFIu<Rc j&jZm  p~pgNB4!w$4g  @OLeRg)SRXsxrmSK-sY;8j% 4    g:J%l :O-Psm\\!Z=A'"=u,aezfh/U 6 Xne?]K[bM& YJr  ; i[j{'G[KqW!8p+BOQ`zTCRr~`SQYN W  ( )f(Ju'KYTPH9zrv]Wx|S \%875])H(xJS_fD l ]i ]i <  ^>DR))w]"rJgx Z"`6Vf+)g7V*\rl)w   - H D`0:QT0zaT#TyhMY,3(bBWYvWEK>-SG$7TNH4 ]Y %WrAlERoD gpTR)jn2BS: wk4Pv.5sX@^@\/[3f%P6/iI@<pD#XvB2\T[`V=v]6\Sg3 c_W b-qXxQZuk\c?rww !G R?Fr^2 7S:(fKKQRXM=o\_h&}G@m&S*udUgyg3U=Vb~rZuf5(O@ !18B jE; H.fWe)*%grcKpX:h@k_=zE KlO&73vla9\_:~WEle"_RqX&Ypn~6 lW0i!@DF`NNw=l@g PHD ].3<7;0,Ez<3}h?o00 9Q<3< GR'C6uP;pE8?yd/@<c)BGEccTq4B6q u _Q_*Ty0]<-?{0#),07F(-^A6D=h~2vIE slF&?W!S@*=FQhA1=C,/\97;v[z)7iwh3x.xxuU 2Y/2v6H; bbjj@Ij\4WMTF+%D(h/,!;I! =  ()+W 8F@tBp)(mn4AB4MtE*U@OkZ&W\N>Q{.M--uA#nV y ?5fxVEg9feu.ES"jer#(!c* \ MS#| . ukQg}p<Hj ZL2bM0 9IF1Ow_0MsouP 9A0q't%!Z 2# |DIf Q]<}U0  2Z CL U `WJZTb>j$6TH!2 G >` X@vxP Ysu Wa }@&KPPkS"B. wD-<$>q  OG ^{ + E R.cA^6hhB+*.Hl (WFK+S}8]?M' kO, : q mK,KE@! %ap.-xi \V% Y< l< R P QvO8SdL"P/{ox2hU^I?FMdF;KK B#)  [; hF_'a? f b7  zhmWpj}g&EgWTob! zG]Vj. %16/Tk4& U %B\,JR0U#$4 KKQ+i*ޱ%P"hb l0< kJp Ycpr|VpP{zK!.\ Te5# .-!9 5V>ID;JGA B{ 8$ /t>; pbvm"?tDeh 2 )n)xY%M#%/M @6~ V 'n#=FESw3r$B1Cg%/{*(.hWY + 3 }<IL8YFeB#4K|)?0= !fyRxzi  pS q< 'Z]:1T*>9vf 'H;D1K M@:m+I ,9 : af ?%\ "5Cx; y*  T*_:-IT  G6^`  X ^]UI\Wt ~Ic S) q^9P0  _ oK*Im8_K9y w p"~}R( sh 1B?^>w)SK\ r l | ~ LmEb[  ! ; [nJ9 PL 9) +~Oc { * ?'.=Ilk X k [ zjMH( i /9jPVfouLTykGKM[ ; 3CF30h+s  E> (1n(?FZ]#  S e:e! >3 E s iHCh#/UF K  QNZf/P.Ys4 a!"BXxg*<+{sm  F_fn umu== XZZFz&iW$!0]-4x   ,ZdX"NM:6/MLN]slg  C ^ l3\ [lFDEB2 s# ?[s* W(B&WmcTi4 EN =[;r' F  RsCe6OU]`9 ' a >/&T a{ (<^0etZ#dTdOs=`- W +#%jv V c`eo"V\t ) zsDxb\?R t  Q=K!tl1%d}d  CyzzN $2Q ! ^. ALMA*{( 7[o%:Tb RL|>F6729 #qqc^ +} 1==Ju ll-"YqE+ 9%<'1" hK6 e 5` 2f  #"v2 r1j*dd&( 6s,BG  `S Sb 1i48jJK%1wR 7 [I{e Hx;twri ߔs Y, G?"K U>,vTiCLx- (eXAcP;<|[Hqbs 8:>x-HRi!n Xj h D*'^Klj%Yh68(>teh\F( 6/W8g&G@b>^651]  >K < m.ufr;BE]` ?Pslh`drE+0Rv `fO4d5I#V)Dn  hBK '\Rn(uc- jxlLzPU A[=XXShxM .) 1 X^ { :"d~V 6p 4?^=tUS2J+dC,Im C\n. D-[?o{^R  zFr.wKRfm|Y/? *aiTC`++:7Z5^[]^!MZJ?E"({ yr:  @\O!)U/,2sIl qnP F <9 N?}>>m$e+iA _ D{j[&:q\F;J:Pk{ x"x,FYE0U>KVZ(E[v&M9A(s0  aOM-@I>bh~MYRN6s JINX|e?uVhW 4 MUjkB+c)v )]'0Y|C~0`,OZTrXzj ^6KU~B! T%WJUUtTSO0jRHZz<~3TVM"+I&*1Cmq^Y&<uuz}%|NQ8]2R{/Xqg.h= vrzu)/v#D "w|$_{jK/g>Y`Q7L>MVBV:"9?j[!)zeesB|z3X9) J+\W5/:&%KX0Ij0:W=cVStmo(B$(pDSyb;.oL w !'PJ#q0/a I" g(u,Ss@E^_W>s(A  އ JA%_ d (ovd8>RLbsq7zgB* #8Puu>\!?*b*Lz9fC5^`:E0x7^K oC:0ivBcSW^vqd)q;mER'"2=|33MZ<(P$#Vi:Xsq"unl{;?JnaM j2"yzp;7 Wk`b5:$ A#}4hZzB7k\`>T*p){CIU4_pdBcy13$];uR=PL{arYr Z?`/%2hI6.FP0jlZxHX]Z ,sx{ 8&!K E&{bw K|'}q_x(c?xbo1R BF{J}4g+FiC_X:D{ Z L _  z]H3qrG$ } 8h4xULzl<+^< Gly*R 4y+3Q;/q*KU : m/?*xOGMI}]]En lmo =Z=Z~ yF'U&i0da\+7~ .hLk[5Lh"0Iu5J@a.][vLNE.kVgmo6039p M>$<1]x"Ak wcYP$76Qn*C+IH\ y-?jha3T,=1G!-P`|#;ycLk{e!H8oEWJkop-&fX42{t ;FZ%I M.DkB ZaATd>O }P &98!TYAo52IVqRak v4#\$ angf(kZx),!Rv omGq"&]c2t hShg;w/eVk!QGVehfnBeb.h8XAL x zf 8 |m<"  <9e[4[ :wcIHxPwAg68WMQ]J*8mEC"v!J5uqps}G5r).k2 NDn3, ,U;w\S.\q^`8d$ qO(zm+VUx)@`7Ttw$(]|wc!k*$Oxzc "<eR!4Lt!lZ(~=;e 68JJ*.V ,rtD#u={kO(`J2_7f/jIE%W\h&^|~A~'znl}c%K8S4Sr)Fg ~D!MU" c4@$J\:WX!VyE,RLW{o/Kz1o84Z?q& \wzhmq+.eN[i}OKmZSxu?7C#'.t g%1]z<}u^Siy:3~m&}6|HK5>jcf<Z;>j8"U*>I_serg X5[{)4:>jcfN~Bz@6xWvz5*#Xh / ?  ( t@I'UxZhLl\;dX%'Ve5 |VN=W4T'CgiD5QXO < W N 0 X |t3~/ c#P DvEgzvZMO!'93UV R7C %  m s f.EiFd\9 bd)rS`Iz,T~ Sx m  / > yZ5=YYOa}=g`m&lBX"#l+Y->GZc{  d P2Z  ?jG)$ F\Ji}2"k ?  Hs NpbhM}w"O -E &  V *A5}80JZ5qx\E o *^Uy  O(  " IMTe H3r3,-z6 < +q<\zzPeD}J5 b'P2q : |  OkPf#&1~e:G68*e $ _ I wO\ZTKFvNr O<  sUO<0Bb {Y.=T`4   lDP Pf -`Hz@=i#Hs >2 *S <N+b'E&c1x`6:Ln6_ 0  %[3}C3SdnJp`Q em#F*h]9(l 5xM e>5%x=}Eg &2J:" Rr ay mp (ve8% Q+ O u['o(y[[x^a[%TdDTVy%S1N (B 38hD{U1] ;sYb{Jg](4I P_fwJ7\J%A zW nx'Zi;'vgy % -I }KgO,S+ V)s3Rv"u H. w H(/Z` VN-PV6y  [o s  _YGHI4~# ,!XdD  #Jlb u;~_f0*8u!ef   x m;){p ;vnHZI %W &  - l,cBxav.g$;zkiO x 4*6 ozqc\// ' zd[-;!xQL ` 3Ax5,-B `9j$t4SJY#WjZL q Z I b <?JC1dpa2H\H  )Wb lwIk+3m z) j,3|w4 AU4>Qts1  G/1l6+16& h( \,B%JuV &~ Q gN   fqDG!gY.G/d p"B, H (lf m| f N_ . BSgl)l0a 7< (O6YYbZ97Lnlsc[j)x*aF}&R%N0f J }$  R 57S|SMF* 2\ {Gv#fa tM<,)bte-hlC "S% [ Xc @!gi!  fR"5]2 w E X s<At&u`+v # :{^l*o FJ J>+Ef8 6 RJ\EviH,27j+19^_HC {%kf/G t=9<h+7? : ;S r/[0z= uB&9{lUY@4Io_?1B  B,f ,('hx (  v!>,P"O$lOD}ZbQQl4e[6t6Eqv c]&   tQ9w6ORF%jfH?On)DeM x EgeV'N]#]7|&U*,-nT08=,8>?\ .p#@ #= JT&U^C0*XA]n" T& jXX K,mFI @7PMNK|v~R>74\$L@M?Hd Wrx5?4nEp<tbN^/YcT6 :F |u83CPq:_mlB2 ~&6Ac"n @#U\,VX%]SU r%lv!d%R f W=Ahdx8 ,uM:qO 4 a^3@QX\_qE X=;z<`UAC GX-R7-O,+"W,ekdb;r1S Ibh~cq3Y>Qy{n^.Ea! NQws+,">akV* I~qE+7R\R(i i{adQ54+='#| } y+7(L ?/ 0*d<u6*?HZZi`/}NfV: 83 ka}YnvlN{8c -e0iOF3:%i0e Y\hWzho]lm m0'cfI_E"U7P% TN N[OkSc{w cbgpY-oyd'WH|y.zwz '"*g=~V[c[X6rgH 76q._af pZ`t\`=<T:rY/5mREhh{+9UaW9 ;3LpN$]QC8' g{$>o_geE:@TQ  C!%N]vXMM_gp[i_}PLjp MpE)au3-Xrs,mL3&HKYJ{{Qz p ^cBY$BQ6/$Lq6H%_=/8=Kab=^v ]KyyuJl kU: &G|Z_h0|2q1R"=QVk D Hi}w ] s|BmivXl2"zwlAEDAek/#QHJv.;,kdi,<~  J}R-/N-J_ s c3ILRtH|3etg+D9)5 H&-ocRxiu AzgC)yUjQg1N42*n Q{D_YSD 2l . -1Pl.g2a\MNB$;QnB}29%+Ds7Y](>X \ P  " 4 TllbY+(-b6vM[R AM  mIU~6k~?&,U n4F)?wH-v67i-2W;+>mU3 c':Fka,r) <cMZuR<~[0\+f&*;aluj&anA))N&g;=#rS U XUV=4pGAuIWRDXU\!*-8QYr_d994-w(c ~v|| _ i/R/||p~|eZ)  QU'moP`%j"?^-I1.#-- |[\CB  *yb 8P*@ lf[74 e<>uvTg;yR 31W ]4GQ~J3}*Rv / \}#9$Ld!H AK KoB4)!_i~[o'.31W=-3:#V;S6;,; V>f'%U * `uky_  ()-?I_bn C$z98Kp\HkI0N2!<$b)q/8i3C_P TL 9iR0q4 a72pWKsBw"C)$9?iYje#8po'L"^G. &d'l3.4-T4A|Y~70C{V(<@MXF@;7.u )[*~swQ*'FPfR+F$.G$uyBRz~owq6I R%?/{ !t SjUPKY+,Y7TdE| JJf7t^GM%sG({EY;hb 4) %:$ !An3 i s1h  e~nw?_reY Y",`"d3#>%# WPv@ RDI;yi]8:iOPu@j;kZm` Ml lm4iE)Qn X O)Z ARz>`S!e,8^\C6wH3 x_gib/A}uq/A-1?j(V% Xt#HUxe2Mt4RHJ2bQ|G:/cg`*4S)zXf>/ADo%I[aA>m>,] fB&Ps`0OVuq^ccvRiXNn<(a$`A6+HH0]A0uUA/`!`[k^KPVO 6E^j/ {/u-O?<x"#H%!3 Dkp^t?:j*|)b{$S.p"l 0^tvX6ZM}e  9I%^B=JGFZk+L(P] xd&U>]S Z 7< CzH[v< T x<},qBajK) EbQ1ui gs&37v~#I-Q d2M* N$ct{6 D  V6&c 7;nw .JSE*}+ w][({u< pUJ -: cLfQD ) kMrq$pzVCWe ^THy=  +t|\s}NTU7Q07 'jx  .N=8QY2z?T }uX i5>  lGi) YNHqgcqjl'G"aJ8To/tp(Kkk?.cMRaxaP)h1vQUNmx\f I(KRaM5qiF]$2Z9 Y* U*.L21jnj+vME#cY-(a3/A n(+c H'ly ?&sjRwJrurA:,aa+;(dm#lS* ~gFNuI&u%e$U N2:PD1>O:-z`XLMtq{7 0{YtFbO~w/ UEx5x,,'o > ^;:y# %% P)={XZ  RG? ( ,8@L-Ij"Ic# Q^r'(-L.W;Op ~Hh.KDa$  os~=7B.*A= ;=f8tЬ3E{ug %l.UXvK SOzH0W h& o|:B(oB#mDXh܏\>U+'3[_ [rHY -vXB7=,VaF2\`gׅ2,O6- mUlJ:t4Rm] ; -uzJbb6Z*Iw-DAd 20  3Xs L#F7 r .s/|$~]wlye%np;&R/`D}a zuexJ.^A3c0TgE) L @\ H \ uK!Ca \P1GM %kjp Kg}y @ >Q~^ Y3AD.r!:8EM&U3f#i)7teo? 7Q n'ZyE2p!xZW [/h i0 1j ( Y/,pe,PQwEfM$w *%2@T] ~+"=*j - LaGakzgo;a` * O+ޘX>2z IP@AzM&:_3A\Xxr%hC .   75Ai% 6 'Dm%].FQ75g1=/b eQ c  #fK$6:3 GMOD/"uLd!+HRI (.S /JUc,@z rOE P cz9,dbg#i {/@T2Ul]p0yzF[$ ` Qqb;i{3[p%.W~t]m,i#a3`vW,il[FXjWdv"DMV,)cJcCTX`4%bL ?LNy8-yD;I\G0^mlYUmjTwe#* {>FEzdeI-~VK`@RuskK|lO'&n|H+\`j yvx\Bh BL?~S e6O "*h>Ml\0z?a{Q1uV 7OH~h d >`gN7IV e ,yT#vJXZ[3}qj;;d"u$_he 6)=CZ[5]SeFiq-PyNV@_:;o 5WR/}pW6n[&}(vOYs IA?$:n]* ^Sr9)+#(bS.M I={.d:2QguhU~jf.R  qut*1qib8WowbdaUNXDL+10"ZwI 7R"v$f>arVuW5Tw g}eg$mR(cAE$}AzR&p.l~-d5DY:1.$?LJ1} ^xGZ _T !2R54hGe"` t F`By[FcF.7a#gq+B>e 2R&N;6%v=\$be NP{J1!r8 ^=gm55 )!qNrNj ar|12;:;Tj^i-0# >fc:?}]CmWU"I"7Aj85U{w  jUDtuv2jo  u-H?*V\\dXnoR!!,;U<x5> um f2 0 !7&L a,~SGzK/)34Yc+ |  AWyl}P#fQ9)G< A+mzl]UB#QArkFR *# jvNU^ vNYa f|j'b 2@3 !5I%S! y ~|P^qz=@qV500%G07a[C 0`ol/nzs(N@vSC)O,kB PE4D "WSr/Q]( 8359OtnYc!_|7S PbpzKW "A ,^I<{v$8"g@57fz Z S|`<_[ +@U\Z5 `cGX:DLH-!WeeQ'|&w rH (8$hBg=e\2F#>VsU`L:L+, '76YhJd {EBzNgqC?O<Z:kMvD"[X g~xY^Ee{yb#C&qVmwN2Y?!=Q^QK|xSynvA &K:Zz(?2-eslDw@+^UPfb\X'D "D#W H"ghDbw3#;6;jHM$0Y3Daa'TW0K7n$6p\,(obz"&_ED!07T!#jO3}{ /WmY9[WXtjQ!wk$U~Og#\lHS"X0DZLi,7t9t+Ab1R>UGp}!ULy#}, W ORU?H>vqSlb'Ooo%.LM4Je ehaE:Gt4Bqk 7"6d4kR \gm`,a$QU47>]W1&Z1V0{R+'lI8%\:45\HNUF>j<q-h"@'p0(-]J,RAjbSwc7aT:=#)i-j(7  YV8s,b|sVU;D=(_6@p ?D v;:~.0f?IRPHCZZ[ )ASkBEg_n:ljA1^6C R>?82 :[Gx[xyD%ZgJ5G.uDqZZ2O(IGA~cvwSC*rk1U2P~AR,xTy)pFV =zl"-XZ F\SA k~cV*X-2T_,X'Vw=!BSrB8zHM),0)tq1 Cyv GMH8#n GSW,aq{3!Pw"!QmjY  3$=d`,},E W2ZR,\P~~Yjs#)P"&1g)X%:kV7q^1i#N6yF}TBRZfH]uS%`%aj~`hB804^SOU|!fHZn_^5PCk@(sW#iU6};/qUkJH;u!.b8M'xxRfSyMYt@QJe^oqOQ|'ix+8wX8{B.UdRbU"& i%&@gh^E<_>M/`5{sE59/hG.;a~<,"7xV/)He#/K&mX~@T6t!!dyo[U]u<6ZxgJf\+AYVi\;^0 -q0Gi\{yzGXFse(4c*th}!6[v6m\G1llsa~{6{  ({\cN a:X >E_W9]}} o3bt(X(;al9ec64ceLb9;6lv4 /m Fht J{]@q}a>/_8tW|Y(-aG ?XSg"`sq,hL+>[)KB.Mtc)s:/S:4:5<EHTiv*cGLZ4ARyi:XzF-ffL =\LYCa<rI<0F4m61-DT XliCSr`4L3n *;u]B;tri$8Pf{V>lk:}t'Su6bc^H#[m'V3p?7'\&r}2^g>dpiPyU+{H$QEj_Rl #0}iYYMYpP|d0 lm lhiF'JX{b#sTTd#o@DJYU?C)<.7.FwZGvJ1@*~* {{xwVu!/ 9ajVk 6gS m@; b;sg7R[.'N1JUxJ%w(wR]eD:(,p<<PBa@ &nl_6#-@nV4=M890U$)FXdi<,V@6[]+NOZp]-1W8S;|r>yn;C2 'jwz'74tX"q?"/a <Z1DBW`9=ON2Fb"NpSlFN B QbRc=U/.J .HPH.*!Qk=}>$c P_v:%p E8 LTO +`9fk $A  /lCy*xsx,Z!%s 0b}cVQ?r7r.cb ( .Cb8YZiP kALKkh+9 n=RL5+fMP&L(F&?CI2sj,ajWJE`W"J5"Y =+]=|V=s|qD^h V7!y%pG4pMU8>"Puh Y^,B .eW]sP{9, -/6=4cc~|\jo+[FEf6k`Pd wbm0{Fqk&@<bpOFKutQ$A3//q%4apL|#J1$V gaj]Kg.~.=JxK"v}>0 @Y k"wo8_j WVug,~Bn.:~ccGCk/>\Uz9@&56jsu}:ssu{!vV9vTHZHIY k se_h^vgRM%kwZ} @S\$67|Twa`q)T~OYbfzEj`Pa\OZ5K`t]H8l)T,'-*Ul2@xk~PHOeuwn@q$FWX9dDNLN ` |5#|XO>z?rKsVLfR^NS:4@T#xXhuMxQ.&d$,6*+qae`rw~of h`0>/gv7AR!kh6/5 rto<4`N$[NC: N88;]ank=7t^ 2Q *nwx,nT Ck|p,0LkD>kZ?9"rcaS:&$p]FAC"Up%FwOF0}wb+f}ni"#<2&SWgnR=ke"(F7oD`N.*&WedGwso2oE}m} |*=I_r}.jo4p$ si^U.1jlW (iu{8=p.\"INY(yUu _K, 2&mpVR1O;9V-`KMji! 4}/D5sB gpB9I:,.,.?,6 418[b`)Ug;V9g 0!~8%  =OxPf30OC[t_e W%[dzh1.D(k %+n2 [ )nP,]`6\ V5 )0 p uyT e+lK 3M4t.9(2!~2{lgO/49\?aB N   s ;fJzkf' ;iZ k=J qNS'\J5>{u1E\!%l  XaKz%# Q C K6%4B4(Qc"e(l.b; V%x i yc>KWV) >< {ZgGdYd: a Ex)%trCSO6$WME, & ds85h c!lTF@.## O[Q;w: ABVP;p`Bdiqz !1> ser}gxaqZX#e "$R)$ 7f  y`)\C9 @4VHY i?~DA ~9vtD %4_J D)  V$l/B ~os@;>r nPz:f]l o g0>0h":zq?#Yp)&QS .Jr t?  s%MULYsp} W}y~&P+4 ep(i&(5PSK-3hnO&"5-A1RFdLl": *kB6 WV'Vqk }1wa= j"p?-`O"b(?j^ J5/~ dsx~zU;h 5g^- l < & F f}Kfa yr/( FZ K &)G Ice,0%E >WS% N{SEfj=|q?RHMaBQRh/ U(*p/UC# \[*pmD% [/X\wp}  L 24x?e``]eW?*E~PE: KTS7 vH#|dm)3T d ,7F >dqW.0NPy%0 ! *B 8 7HQ62G9wX +c5)o: xR57yr,~?:;R!!W;H 9t {_'$w W6I  PH+zsXFG 8KQ]%-H*+@%1d K:yf z~C [  .U==Al=_+ H@zo$|+yt3j2:4 NH&^ n lIni f 28)?tw P8^$uU/bT;G2P$,0kt O\jpO'+e,AbkE ]9 @ {^y  _Oj)$0n^5ow` az/*SF:MYt9p,Vvnjle,TtjzsVL  "h$;|GIF'W c h=Hj9B=~\"foId6Y[_z e @n Ns7NW=8%qM-l} }M# k@F.v[Vq3e8"DXn"F ' @ v} Q,@^hJ} 8^{>\HvQEXqcJ'L Rw*Sx^keS9}@ cC  h[ uTD7wlp4I3N*%TAfPqcmwTD 1| OY _  qA!O*-?gt'6W'rM?QY| VLn4iqbVE3To9R^pOjB>iu]&tZ> -  *ib_Bghm7lI_})C-Lz'J,[}R 1 ~^1::>^{j{Z#'dA;Se?2&QEZ(?)[essUxy~b~z0e-w`L`b7?N<^HJ[<B *rto[armizptuoHCsr-*bul9^f_sI|k|dvpvg@/grG%A%A {onjVWU|n\*Z5iC?Ho O"cjQpsDf|bWrnejwuqZ{Wdar_DI:](upOO9LpG~<9Tr%k?V"fU3_IUfBJ-d85(?tfghzcpZ~u i -~@k_bh Q&*[nUM~9+N1&lS:5#FXY,/XzDU`+ 8 s < /G $}C^ c&? B z, D F"`q~'vHUa;i- [W7Y. | ?XId <{]W5b T}+Y2sy-Y;Ov0_`)iIYdp=S? 1 =+x1+ dB u9>Yfe hZ30'02gbt&5sYv#slLuYxTB0C{p(Q R!wfBs-X m KkfG[.1u,m[u. t &-vr3k_c7]!vGCXP*anf" n} "*iC\'Z Wu~B32!<o3xrvG .|WN=IJ)GnhU? (I-gfh -9DVp:1[x: M\M}8uCv:5$bl!+aZaG uW2a{?+ Xc$[RpxvLd9 )%X }bDSA vB<-]k:a(@5BN9,: v?or`C,FJLZ99sjsmY&4A6H/0J(  X"fh11+hohp]%'6N`)|Daf^jFaHpjd!E9z~,& u~W)yP^D"!D]aaYk/;b IOcN# s;'KNle&ZQb>]:-I dd'CB!'~oc/W g\3;X  VkPydn[UG^k`q#"syR 5Pe(he W@f@( ^5P?y6zL%"sP #'?~;uH:Fzp @`~mF?N?hn4*'<Gt,#;+k6=PMvG4'fT=$O? A O{H7|zb 7 ;:p,~+ds(`SIxn<xPn:&*pP:Exf)m@/6Cp=)[ r?PsYO tH!2D'KC_]2"D>a;N'fBT+y?cdgVn):.QiB 4?ye y1(&IXTc/V) t xKaOR;~_ {k,( 7%xpY5 ,yj&]Nezl|ej]"l> -,& 9~x$4(-4 >i%&1ud",)P(yp!8".v. b.{F" 10/CUCJ"v l. pg h  !42RphAKDP ( !.qV=Z= FB(= WZ@' Kw\$q0 V < =g[Q[uKa` E>$Ja(s s;~? i(]G DF]hsh|kdm7 0   J1=;+O+5f!*$:J?#c cR8 pS(aC W uY[s  <Ip){opr\ 5g^}#&+N[*a ?B 6O2fe' M(?L \;i cv5Id@mud^tXWwxn `04 `*M i_:EodQxf2aaI asdQ.H!~;mQpxqS)C]U' pkb Q{$(=+ :mBcC ~rUIl 0ifg X/DJ RyNX_YVK`bBy,|VBl2;*2WF+&*  g07vA E\ghJMNC^qF\TR~H0zu" (D*%AN^Nkr`]D|lDFbWF\N'b3 (d$ok[qukm9tsy}(K:\H:B?ZE@xC'}Ge^cw^scyqev50n BqyosRMbMqIMAMqC~<5=qDjUjYO}nB (=9&\o~Dt]xq4|zzz``EV]zqIVE# ugiwxd`[VC["H E 7{1W: W"+p.Avt?u] AS)]'dNff}(&}  ?2 wI BN_P kI@3Sf!`E;l#@gex8S4BZ 3/T.\Cqh T + ^G68VZ=7e"1\FLYvRQ?b~Pf=M=^EX}>>  [# 3 Aq"*_(v?}C 6k36X}  E '`$>U5[OybO< ero&qjlq'@y P$4''Z6 &T= J  q=OxdN+\GNkOx~G+7h*[u2i V_O=l/Lnz G 7 U^M ^ q7)uDh%w3XNC3@b"?V*b*h`G98cZ.BX%T Z HUyvK tDF6$jw[ez22a>=X1HpN\  u *)8Q''x ^R^,M9-k7]_b2@0VDw Sqcuz [aF 1H  EK Z-T15 omS;DM{\Fy_F3Z| !Y507Vh XwV&a\ /m }CEj ebL`Z \'?nSx>q$"(` 7o N#x?BM " 8 g _KSSx5 (+y|jZ<vL yBFx!U}`_ u_WE[.H1z1 2s  C4 m Vg{T (WStWKb%b! Ho t=:>+m%@ +Q[xAuJ?] ! c  bp7ZP?NRIob\f*1oPK3qWbgi?I|~Y|(4"([6mY 0 WN|(Q&E9eMgdQ2K/h`T:;k`BG/=$6Vs23vHU&{Kh{ N &6 >'FMDH!~^Qh/|FxG(8e*hygt> n  -+|^;m(E^aGk$>rSw+/^S_M" .4'^)Lh, L7WGN ]@Qv-o*O- CC:#nZ_ K21-!?&}c@ev.:,yr?sfx P:rd9f (5,<-Ng#HT pi 0oq51?"Bnj4ro@_cu+j^16_-  ~N {LsB;} {do*/QCu:<2rW5vC~/WDx #&LWHW3lB}rie5Yy = }vu. bivINBS0=<#tdIIq Om3I;DEWs`7PpTQ$I#y=kC|{9#!z=|f#C>E$>g+BKA%R|(KlU\l!oMcGQ_jrI5p41r wr@""(u{SWR:z]@H`5+9X5eC q vz]# O q]C\jnZl ~g,+'&yWzg|c,(zv3@;P-=xYMnMzg';EN\aSyXlK!cc'%bLC~cZF &fM?0G U0Y (gOl}"kCHGfMS]r99 G}I/w@nRgByT.P=?){;l''ujcB^j |)v91qz&3@,YXA^  bjXE9z[(-d`3uas(3d)Nz4~AEhMGb@*XVK-[Mgm^X981kv5o}GhTD0,Q 9SK'RiwSVBts<WKMQ#} ~0 x1`]p:TP+~#L9&53g5 BmsV#>0'hLh^V?l5O6, W A9jW:@J3V )<}o>E$Fe3TI'%~zdr^,M.\F<y4UIK"P=E-c$H&V Ls+yMP\ ,u} m@57 r`aG h~ UoErU^lt ^wWjza;UnU"I82%:hcZCGfj*N DGRBaizeM4 h '"AQq  H_xU9V] vUA7J GjYy}-;$P5`,F%<m?}j>x RElz{ .e x"76H m C)0t%./8 u^*@eheQ %] L<8l:D= " 2ci.mV(M<L -Z$ t|S? .,-SQ U ]:gVs; ?3lrt Z8M|hZxWjW< '( 4`LPMD]jx \j' _TRQS!dl9I1(D{mjhI" ~ B!T}j z=; 5, h<. 4DJtepItj LqEl~ZPV/_6e^tpFd A&Aq0J{ 6l2  "QpUqfe4+|<_ 56\Sqnq2)Dy{Cc5BsY 7/>X9^vbIJWg[9Zz wRG*yF Y^  T  `@8k!FaEf B+ OK_=(sn}tBC i~f{sc1;IrO{RiCPo76Bq:D ]Q Ta dP5YY E-J RKQk3ok\vj p=^s3#" Mz ZOq+<Fd]QyM+M? 'rmw)0/UM .$1$+ >j cEt5b$~l_!.OJ] 240Rj[u9f".`rD u-' h-3| h)!}P$Z+HV :cjw/*YL 0V>EC3 ;XC%;5byK{6Ym `jx@]Vk? goz@V( @&&'HxQG4e 6W )Z3`t q uBk`L k~Sq Hke :G Y^ aQy-mS vd2,o[Vh od6gZ\ZZ 94R:M  /n.  [Te %p'zut" 6Q1`@{ZjB46 "  \ ;+x#Y: >EZDR1p B3Nc1z(&C g #e7:Jf." Tq5(3Dw' Ok O=5Pj' 0r Vdka+x|{s5 'Y |T HkZ@ ?"t ';-Fa5| <z :15&FTUK9;DbGI(Q\-WN'^w^Y-// ]T)UJ\?*) /~QS* z(m1ZMcb.i( cG67>yz1g; @ ]68V! _JMI5lo55 \S2HTS&zm}0vt W ! \% n$g8q   ?'s*dW,1Lw9D!(!0-r!&3'"185!M m r3q #c"P1x/KIO [*#Z4a !>_(\dz M( +  t9i?If=TlV/ $ac33(%7 .:l7JUE } > TTTqHS) uqtyi:Zw]Q [~% $ WOrlvBsd _ { = i:|?"dguc7/!Z-`'<_'s wVx WAg 1) b ~J9 @+!aCb^o*BxfIM  P Fwu p8}c%#%~q>VI.2Sa.,cx , Xb I`q@*:yP { FKB\xK).+'(3Z/X65 t{xFeiW94JeJ#H]tVIgls)(=3 f ! UJ9OTQQyl'M)( Aej5jH3cY& [$%o! If) *GH&nbocjpfJk[#;:ls14?N? # p`CNZ}5{TB&>8A`s-p3t8+_g?jR&  &QJ J^ 3P4eZfCTs(=i$/67 cI it%&?C{flB'rz*aNn03{FuPM&z|- `D !4myU9eFwWw*;*=Y VT {J+/D I MF  .VXbh_xLRq8 H TG@ W#Fe%pH h }ijM3f/Xze^5 IWT&-*K@2)(!h&-rli}-?}  CPX!WYL J6 1 Jsd"}>H j0 qjEboi7GD*s![&Cd  _   ^9oQBH]k An,sblgUH=2BpR?(s93 f:l  =P , -   XMuoo0e3B}+V.\I" M&5VH, $_H L}g Zi  {  2 Ux 2.g;goy<:,4qC2sgVW'aEq(q3FHF+3?x7_#  b H }Pfd0}|k>MEz[Zsn0'{l ;8wag{+S /  D R5oq}pv^nRk foXrt|V2E@f7.1UXdy}0U_o b EXL /}0kuqS[tT5{H[3v}J[?,]  }i> z4*~#k\a2h_LS9;]VnU[F;wd*} 2J'|E{O3o >7aZPA6L87y+DjwW~YhFCPs1zf6P?3 ZM<0y C ~0j+/PTNpO`d`o>B4e<s&J.M'/A]bjBz` xOu[k{O YUxZQ|%:apC[l* ?2w {${ ev;q(MK ;7u,K%L<vP Yqy5 2D\}XKs,_ cTP1yNpXMq6 d5%K}fV6/}%7dah_"hT@V|GRoI_n /a>]=G3Skmk /9y|Gd@Yv@>)mB]Y u C R`c1!WNRm;Fy8\m0K9kV:p=<;m~2!X%t:O@ O )/65~piDhNks8=]a[|ocZAP8.m(v j2^  SfX/@:eNa]tv6(1sSX'dI+xeLiU$ZW(GvU E+ 5#2 (s#U7QSl0ZSog;`OM:H:a#Mh7Ff/w77vbWX /!%\0BXfz3HQY( {[$ -m]2msfT=A@LU}V ~p.IRIW]!f`x'q+Q=K9W<0{ws,bgN,}dtwV9a-PdB2B('g1coX@/ER*;<CvMK8r3N7&6nb&[5Jkgx'U+L5+L$;coJPHiRx.%2jx SXhh1[*:9LUQrB`r3!1D>Tyu,<~2M$@^DhN 1=QF|!=!_oe1?[uOXs^$QIJ*p/~F5IV[s1(:?L!W7Z7ZP1ub6RF1M)~";LPM;_ DF:^C<|@?=44*'jgj>b3*~>!2s{^sa3FkfZ4/jy/-F*`euw|L~|sn39h4,m?{L@9gy>6O`>Fxl _G v-Ar,l6>n}e98@( *3`G(0V m{ uG Ix7)? :-^aBGRm-Oa"9P:`n.xB(A]8z@"6 E-N6,-GP3 ]aR nrH%fD,a~m?/x7Q6)4[`9e%eJPP "|_~t7elRF 2)g"Ss _u|)!RH7^!1\a@t.Anp56"%zUI v"-D> U[ya /)# )fdFFM$zk Z( 1D/8 Ix +y SU"d& S0 XY[sE>~9K.+$ ;F N] dT7n0}D [ % G0jd|e:K4T t5w4 L!UZ|H Gt'=yAg*> %k 8vv'?R&l {VR>&XD9T'FW5yW -"'O>b|f[<omol`6  w=f x1=/yM9-Ma#'IxBv&114ad(?p?(  L/ %}G49kG/xXJQ%CvFn|@GCt,A_5 d T~]4.Z>Dr27XGN[dC"f>Z]AmLOaHhP G. )t,-UnFwpp*LyD{Uyl/U5 RGJyr< Z DrH ,3 } Vx5#C|;3KlwWX-\=J*)QDzt7Un)pAZ=~ZNA3kM!`;cCjk!*ZjmR ;f s'g6p*+_0}} <bBPFIq~XT4 tVMv)_E+91 >=.sQ1 .)iCCgRfD O!9sg Y$S?z./cPbN 5j$Qb "h~ %  :c-zrmSQ:n5~2DEA 5@~( RSt|BGg}%|\IL3e-\hYH[yES{0Ld a&+Y`K<kMN' - )p!x@  7#Pw{~/a/"4\9@;v/]<NgeO uhwu5? 7UWZxD *9nf;i`jd!ht@7]@y  eM # !}Vn+oat*,Z s0+ 4t'Xna Z ZcW k"V?N)9Ay$j^+47dF]cq.+~e3/p A >U m3+ U`>ytLmh!1T@"=ksu 8x$1UfJW2"&? eqOyFx6_]H0du,Q+h2 EF <8-h[K+#4= d  ,*NgqPdPsiGN#rZ]5I#]64Z2 3#| RTU#Lj h]rMG sh*YgUU BOh~mU-l="\/-+V){&] .{/qmcsQqxs y 58*}b_ =v^5j,y Y,~(8g 4j6*il  .H8nrE: =-4VVsVi!dEu~W|%U_o%S|e7>L4s)7 2  -'Qz0Q( >z k-6|<"*?EEdDm,$bw B ~E^?I$hHC?)dq !o ?,S # xgmVA FQ .FL^&-"^!)VL3A ~q\h?:aB bJGP;Zj&V x 08#@ } _,l]@OAB(\$[ 4t}ek\b8&dC$iL sor(m6Sc6A2je;d1_ME-QOf,PD%@j. dc*W8YAK1k7AwMOB>l$[ nK;Pw/3<zK}." 294N/z%ovOjlDT?)Ie9=Yx(b+7G.]yV}uVz6le:8 ]xTsx[iPHz'"( 2?lIikdwffs1sxHEes_}8'yVyI\{#:*)> %2]ys^(VCy/T) {:!T,WY cCP*JIf_z#s2a\u|A13{xt;Q('DV"[n _S&"mmR%t? 8UGc WPRxc23ggWkj81 tX^kq+A j)(gK55Xea$_+82>NM!I4ogyC:.kjtEg!H8je/0Q/r|O:0GQ5=^Ay AGndX>O%w-E/ !O?sEH7*_/bt)krXCN8 @4 -XhgsK x mk0h8&\hN@8%GOsW<`v8(m+yB-{`HdH7  [2 - Pn hh_ZB i1L0d7R Ch5Scx\^<ol UP& !tnX 7 WqHw}p7*| ;7&W.bZit1H'_CI -xa G<sza [WR3OuXnwWdfP S 6C+VP odVrL |1L>  % >{y0ug6'&9o:nK5~{-6| URKyZ7 b!fvFo f1 2:P u,#B<E+,H={F;R_^R 6t"f2 9#"Gp.  mH> o-UN3""e0X`wNk$#p*xJz0"<~+V<s&;c?Fjo I<gF M TA4+JD8LK*!y0o8,\5K"Xl>8"jcPpRn_ER!Lm92o;zD=ie:DeBJHa/3zS3$* Mr ]}o<W 0?clOnDL$#g^K/GS `;JZ/tDV,F."ro `; riQkFT @W2GJ%Lxr|F|OS*A[]&^mSg^3TPAB '; qOTLphrvJyk2#qrLCY0CYVgaCBOTDI4qei^e^F:JOSr}u5GPtAgP=5 ]Y-*DN!R^/oIh#9bO^`\VC ,`  ?J|a$G 'Y.*"23 ]N6TB_VM:5h(~Ufz1zUSn^E(:TB'9e`b. xMyhC9{&6EQ^)? 5$$FEqA'| nO e&c4K*t*dAO{TnC4M3#,*`<f S/ r+ )8 BOVW#o /yx< M]j1kD%|-O:@g hB |z M7F[ zNK&Vq Nu :4 fGL5QN)y[T?e =@L `lDm )u<$.A/EPbTlA'^x w>An= &9rNPTfm0:#.ap. ! 7p 7">#Jm]'Xa91gLM `Ef KC }%EtZ-sg]^AsP;Z+Q%9}@9_  C,%|Jv1%? N''M1lIEzwKmb6}sS, F0,E}:GZ=H%Y`W"eQ =keASR')~>a^z#-()<GP(F\a#Y ' 4O0A+ Mp s)4 qD n>ZI7e_U K 4g)0F"/ 5T%M) Fyt< Bvc6TdV`mrU&!!pb J*dq(owd;% )4& $N>#]Z E E ] ,Pb=eG7AY4EG -  s׮ |JzFA% cry582ljK /V* _E *"X! `&]i qXTTR(e({XhnU, `3pP*s R":.JV y 8MN|mqZ.&6 EvEP N `kw8  e /]4^ V 6GGPA)CV : ]#5 T - p D #vv7x#1He  A'WK6 zc99u}  Q IO&=1{&I{^kfr+lTnN`-.(s6>o) ` JM9H\O^O}sPEx^)((oqaZ ?]B{3(Adh~ &M"bVr<bhw3k!1/_k qK |My0 HKmJ LFZ5-DICEPS^/2iwV@t8Ht1 v4 MT%!s $tO@! 0H!zG_k NTs%4sV1@thslS _b82ps[=I]9|{G'b? zv >VYvrG aqb.n.l2?^9|Q;~RxsEx K=nQ'gQPMz@UAeB;  R!js$be'5Z=aYw#gS y@ U b 1K{ lW  pLX$rR!!]`cv]4=G)*.rl=C*r6@%| Q g3 O[ gHY52fj8RF '8ErL8XiN &1ls/'^?(GYx9 )#l 0 ] GO %#<( IrZQjSQaZYm|#A Kq@h<=G#}9f !,!s2fTDu-?w# Bu?Bf#y.Wk5l>3cc?T5wv=P'$[=C(eff ' E ln}*/6!+ GO 'Ccv E|YRA:,lR>|C~|c   6Y F`A0{I@G$  [SdJ~GS l/tNm $1 mU&;Kl |/;yE9HX \ p }}h@!9  A{y;@b0<29BCiJ_8h{i Hl/^|,t/ :<f L8_?oPCOJ7I"RiqW;+ ]0BuOl)x~G&Jqne_ cz lx,Ku65( GK&}o ph fR]:+j;(5nQhHI}_#-F(5@]w wTpr6 i, 2CH:.j:q!_h|/"zUT^cN-G.'L{yK+]WVKFjiSx.Yd4mev $-^ i\.Rl6GISUjcHA5N{F,'*c->07,?VRNPQD`[x8q@Ac2IA)M~y6XO Pbf65 F#=J3D)?~K 5m!DWBs\JafzguQ1]zv7C6!e6\{UwO,LF^Z%!ROXC^_"'h#@H%ZQm:t*BT_omXaz\ghc~[Py^bJBvrR8+/DTNz5h[2QFAz'y8LREiv I~1.rlX,qzyZqrt=Lu[Y@E[(\.Ke 1cyn6H#a*ML*Og>-RjD+8 +ww1S{ ,[eOfvP\TTq(U{&;<>H[al&<ggd*6/Fv{i]%Lb\t) G(ARuL^Kg6Sc" \l`r4}uX4 X=Y}1N:u!d&{@v%^ w'+Sdo!6M-^Yk71mf|H)zVz;y!oS iR`@6 j)q R8w .p~ ~#bbp g=dU_!.%x'+oL5"n5&Utm$np)rxqw]Sf{ZC1/{3Sw\wANA`)$<NG'S4 =!\rhj!\  R0fvM xjC6y%~;9 ^439N52\%_o(yg[FF7cVUAunL&1V7^.f*t?g9]=k$dkN6&ZA'o||A> J`<_0Oh"  (i C4f7[ t?(s(cc3Rqt =^HaA \ustt /8W,P&Gj;Lzf:b Y<"Hp;Bhz.g]H.8 D*Ffo'QO ,=BX5}:f>ok7vRhE*MtTJLVrS4!W@[y;CT9(3"D'6fo!Z=j_&]?6**lLT9MH#Oo[Y(S'aI_ugfEa*rED0)(EF|S]pP:k9lpCj x/V^:v1xN^wk=QA \ $F 1u-]2p ' ' yYU + n75 =,{ 5ܱK!3 *6 ey2)P g< 063"f0~?C  ;/#9"|6٠tD#xjs=^ Z':P=o%k(dH/*eg[8/Hvp4p}xNնPM   ftz nH8mMsF7yP8 #Vxcu%$xVI.*]A_74,%ajyxzj  K;FR o b@oN'vS P2Ckk7m A}1)h$S5 0e$l} qr q & ~.& 9 _DUr!,-SD:+xYux.UxGfB\k0w+8-8 *0xoo 6 ] qK(M  Z )9=5B*W5sU!+Y <26~PSvm 3d%c)^= ! H lZ K2v 8 }) b;9 ([eng/c V~m)1lyI>]RcEI6WI"=fF'C3,8>Cc 8K ?7 \)`&a4 j$VE%' 4V!=0[Q8C 52yH^X h 6F j ~ ]'f- ZR; \ cQxA(#r&4 5.`GW%>t1~ z,  OY9M UIk0>WU O{dLDen ID 1LP޼2wX | ulHx r2 "GP?L _ }X|.I7on 4Eh.i}/@JuFHi!G< O$=mcs'`x( R@5~Lsu'f3S#%{*#5!(Y W] Zܹ " r FViZ` [BD;!cLQJH "V=:(&.|? y 5:6"wFIak~(52 (K FB.*,+{FXJ^ ]zQ5b# GC.= nG|ygAz,&0y~^9S ?4ZF7O(lI B^ |s!b@rY  l6r7zFiN$d/V=o_; uld RM3OSP-='Kc$O M,= c u|( GiGO9=\Q%AH&`=XV^f~f!_aC\%l~7]kQ3$3&3?98dub?(,z0V;x;B)L]k].$Z,)1S[rK_` I|@J;RC0Rj$"FXl&Aqz6`E9?O_zkP]-KJK|+L(JHkgyZHS$wLmeLU%#TW)7JGad,\B Ta_o~ u|gCKLvEo M`tuqryAsXx[8SDORAfcYw e\ [ujN)GogsN+#W6T-'c>ZEF+YH0&E :||GlA v(ugTS&.XiEt6.0YpSvOUgi(d!qH* Hn}BdGz4yWw &ZZhN =OHfs )nd^SN{t1sVP pMTiby C~ | Z|#_wsuoWdnNt!,4!am(A >v3E BS4Uri- 6K+F}wi j5mK WqW,i&FQ5+.=m_Vt%c!re]oGl $)//[#C) H:HW:)S*:VIS0LmGOs r#~B(^MQ$2(- #GXp DSq3 .s']  S-\ef z,9e0Lx Om $P)P7`$jpA\|vn5RIbI^. "I@C%h|kM!9 sa;~{A@}zFc? /F0pJ}Rf ?j4;5?*T(-jG1X&T  b*IYk6I9-Lx$ #O=%8B] em =9@"v 5 SL0Jra} vs5a(*Mqg6!#gcDgq+=Y6r"|>0jSdxu@#Fuc{\nxtq, 'B?o6"D^Xg[#=9dyPYMl+'r[k4UgC}o9Jq E2SJ6C_i 0)U|^QZN!CzE K5PF(6G 2S.; ou/Wothr9 KC! / 7SY0ta`VJrst<&gF*iW.+:9|wkV&,kk;jf7N2Sk@> !{rxmRJ5x9),5z[/K!Y^ALT^$I#Rz5Ok~j*>av=iU lr,e%.#j  NSc1qRDZ SP5Y=HK('GkH jdf'1X!'.0ky( }v8 #*QLk/J9q T4aBye`E.unylClv &:}g @"X(: .%-5a BIm]< ! MY+ul hW\BZ*73Bdt.P(A$a5XPL1b! -K;"bx/0]YQ H5O@H# MX[}`>I';ID D[)6`Pb~`I}'ch<^K"00;lZ2;KR4Ju\#$}JVHF{s9|aW13  G!:_<.}GXD#O"o d.WCj6f) E,~E1GG !iyWh?T Cfd-_3$=0g )WG+appJ~gu E0WG',<KIG ($k.Z&*&VRy2&_c0|O"62: !+y.P]|A-i^@:9=k8U y jg4odefVV`&+|=m%y8A*X'6 D40_o M@NV99AO-[L:38jR]"g>F^ pR0*EJSlU{HF|1ZBult%:4\U $Y2N(W `R5**bOYir>ux" xa)X(?3J (^ 4o8{tnn D)QP:~lK57'`kOUGN!]\/Djl%+3^{J9 pUh n;&,-O%m:2&J76~K 2-El-}9$rK$h.`a<'oJ^9?J(.Dv8Fa=VuKo^?mh~l6j  IncGsn-x:(YnKr6<lCz%4NWaD+>o\iu/ ;2+OQ VvlmQ UB. wfcH $Qg:w]kx9|B ,.]'czd0_];N}>%+<@!E(r-4W 3KdSj1!C6^ Q *0oJ$yyEp+u,8DOdJ|J^m[zzP3xXW`-W+RRM: snbB) LmqDOC\<9Nb<OJZlI+qqb>\kBSJQNyh*GN[q2!!8fDBdF ^)y'15H!opOt]l*1YJf4$BV ]~!yk}nKajBqqPxC  n_d-TSbk:Z'(s(f^p!87Bj1eGBTS82R6u2+PICihM`Q+ (6!bm O.!gy&Qkl)\EU LkB5 9A& ?hRjFSj5hnUcgLb<3 7[XA=!F <<=b} TRA]"2=U6kNFtP:\* QDITEfrK~l>is%H l1szI$ORJ+['TGGf`uRsYgOzv*zw]|[n{j:Pxt]t~:GkoeIb^fQhTn=`gDc)P!:%we$hb !Viu]jU_r6wkiD]?I;A]Nh`b@fPNf!E1,7?IrleUx8.$ 5{8YxM5S&$3ec]ldaVvqp _uMmnd4-8~e,bhqj}jz]XsxjM2 84&0: +! %%! =@L'bVA~wgTt#& (Z.+jyk_{60hd3iZ<LfkuRm _n`o()sl],cvk}=B;I}DA&`XKr[S||Y:z1xdUrHlI} W1gD_S4~@J|t/7 g$A{2 R!: )j8gy|n[RQA~AHgt,.^>ZZlstIZNm} # 10=0NC}OT?ei0?)|Uz!e0S:,NRaTI16amAJs 13Q=UDJ|xs/%Z a*#S%tn"R>wf{^o8 h DOJR;vP~^ JN4"(se9`"U$Y(XP!NaA\@lFzy# nUcv|Xe,6MW5utq*BQj0a>s6-!b{=*`?#_pJMluI,0_VuQr j?u1, qJhn=zo,Z!S%OgnI, 4op "|$8V61@>GVY iR`djH~0nq$Pvp{.CdU0 ri@~Vxu2Y*,l}7,0+1'O6;~Tj! l)$`SFAn~o*4Z=o>drvu 2|0tRyr.p|L68s#% 9h^1=&hqXrp`boyx+ess *6L>]O Q yE`%Hg,s4%T!.R~}:AJH>W@49z\j.IgA*#-X_JwwKR _ ld^ d^9YhI^<}y-\'csVpb.j emQP%741^TvrLi?s5 $}Uc !1z~hle+t.WOA$mfjI3Wlc d^"[ i $2q ^]< 'AdW {F_b `EG- E$ LY#@%-D;M\}$ d G u;[ 8QZ(  ;H6k } 7& P O o   `J$\  89&oQyoRS >K^HR Y_,- }4VF}yIxt# d m'r Y88 X{w>",(n c@cJR% ׅ C V  0]҉6j\[d2%#uc KC7ƶF1D E Mh!)?21-Y*+A eێ& Env ]&!l . ( # 3wmn4 \%4!g׆ Ҍ$r$!16D93Gj `ُ @"|'6. P#~$ݞ 0#)753  x7#irrw .<aV!..Mw%bwz5 }  (_H'S+P vJ!XyX *sw  C.b|MX `~g[ ׹ 6 [%AYW'mv u rR1Lqc H=U RUhhl,#]`{ Mc.  t* |E cQ 7jG8FxVEX  'ed W TT fNuiDT4X J=`5\{M? S Ukj0  p ]S V"Iq2!G#-& 0 zw<   x,1diM?OD6y<)VI9~# ^KTB ] c% "# 7> r^GdOLք5/N9G -8A ]&7# tDe$eU=7OK+o c<#}5 %; >W"-iR i  -lyYv4.Zv zN m/ T+L$t+ ])hB%]I<);)  gzpW=m60$ $g  1`p\DWN _37//*<#"O }f/jT[9* #Xl b[vLK,c 4"9o aLZ>W_# z Md h[kS%$P(%T8RHXq = uuTN -$#"U*W<v,*.W_5y{C6(.Z_ YI[5B[d  $ (j"G]Qaq+v| ]s xk _?iq ޸4?%T7 "qG{ Ry &w [=|4sT%6,7 'B ` }icJ!c= @ /R jU2/gv jف4^$#Jg np[`v9 gk$p54- Y E n!uF1?x!?.W! /}{)~  `f`c FdU x^?#@zww!2Z& 1 4,z#eebT7%2 J+ Jvg(s$[KCQ=os/>6*R"d v0K%EO7 f%7r|'0H).v)/8fU_5 EL)9,^i@ +k @ G ([ BY j  !&(+JW'gwmCfbA8#5yqOZ!L6XFsyJ T+_^.)5- nu:" \'i)3BL_8|i , _ evQg lU69+kuKsHxjS ?+f"4- k(I{hx\N;p!T h: xe)3#D8=W9FX!QMy< ?   YM.-p;_H.I:C1j/[g  8\g@|.FlGxqmj s A  :Q 3PbO6@JS SAju%9sC  oS>6YiKk1<p5ANb/2X dY s^  1 H8E>Lu?l&nQ/\ !1(F6`AH fLbpdF50W +   C   u0V\u~*8#/N{_D|Z^y7L ;'0x/v >K( #  i wuv|j.> A/9QF3 jq{{BG0!Epe89lP f 2Hze.GXP 09Tu<_6I##gi<~Cf9FLFUL 2j]#6?EP* b5 U<' )q_50$ d*hONs.?R*Kq1V|eqlDC UJcq:448OkaEa a4pVf%EZf"v\O![MJ@a1Q3B0k* | >n wsLR|1%7?( ]4H v lGQ@/U  u{jn4POl? RKlAK)t8;W94Z.v9IGx>o B8N]M-f%e5riBNzRgDas/.Eu0i3+H{~P;oo2w:E\w2gPf *@3~>+\\ n3(j_eD$ %]x1+ .y]B +)`P EK/ 7  -8ob,tH }PBgE8J ^%+- `L1j/rS fa  ,aDFM ns )~iN2s]##)^0 RO^qSg v iV lMW"5LX  + y?.Y.Pf+X#Px"R \ LtrA@ @ k+wZ<:"2W !hr@y`#*N<"B = R6: .[ 3 TW r{ *}x|"20ob^ (mOfl"&rr6FVO.7/:,jf8* [0X:uMwX7Z C!YiV_6x/\~{dvzp{|CS vj78NH3-o#Iu@1qa] 2Qv j tO eoP O/ y!B)\YG= N  K}d|9 A`G`Fq TK hl)q+0D.]9r ]!A6 {" 9GmUBi , L^Do qs&?u2)>E19_ ,Z>y؀߃EV 3 H # k3$ @|xPOOv6L.m5cv[_)MVD5qc2]O j(9sx Cc7 *,A39M!Qsw^ ?x|Z!&0.pm;q(*&e}!7O sU V*DeAh b  `=:G ` j 14o"4Au-o }~f`mT.nmDk p N /% Sxg ?1?([5 J8'S. |LR^Es |h5%  t ab(# U+; 7iVp]Wk8:|kL fKu=37 < jY#d &%zl V7fJm((wRUwnZdufpAJ'/Y_.4tfL 8i? 9>Ta|l` w IyLhy{C\qb>&6|"{n4ou'\k%m}4} D-lYC[UeY2*?vxLc b<vp}0 6@$2qX&](d<+OJf`w N Z  SS.0Bu JX7 I _55.CYN$d g-3  t3u C 3 o^(6]  @u9*a^Krx%b <wg D7%|7v sE @ W $vHA,n% v g 73e645{C267*D,=a ܝtH _bQ}# Z abO2K%o8 F oK.IfMf(nY' 6E# (DB < f|]~ ;%N4  l",5iL @wo_i&W2  , hTYHdi~@j y2< !Ii| YkcjiFAv||M| c Y_ J j'U s s:]yN#]4bk =:4,z=/|7I ( +ftwCcL lZPaAh8o \px>285tx-~K %14A<\  4qw  _ | 3 q|(JB 1eNnbr1q<{|JryLs!o0Z . 9 F ߇!#R,[@ vpbg3j&FJ*  C@[A3i J42qJ sw ,ou)}2 :p&%&}tOh  G [TXMTe bs A#&;#&s/"2~f@ j&Dz#r8w|[GH(_ Lk_|{-tK.G]C\xbFA`:.`6_&TW#HT(u/CCj+@B=@W| b{p.X 0IhxFS?*;J>(9j).Tm '/j+G@@%).I " D a]9Yd\r5$W r$WBD\:ud;5-#L?|'Qw)Lkq6|)gqul<}oIJOy 2By.A IC  yC W8rJ k  wO=..3LAj! 2  eh\8< > } + <V m N9KO`\\G[kΛK$= !q"(Z2"G  > ?/\0|%%T|X,e.,i%;̞$| Z{ ij C56vh *a&p)8~> 03)- %K7:~b%Z 9 }schK~z ' 3wb\j ~C )V?r@W_ > J \K+mPDPkjcPG9Y BJ  ۞B  Z$"c JM  2yaF7 g Y w/ S1 9 t#o%;Xo i qm lj0!al@Y Iw2c%,e%WwDY)!$7 C S1{~(7 s W[EKf&a 7el"_,lC~j 1_S|bk\ a x F[,riPCF9 3\(Mg E?-b =0 N.PN1h_A g   (/PsOZxM~V q `SGIo uRwl0E x k L  !/ R@ [2aZ]OJB~m}H+^o!+)S 8ng RkL7 x |cU |,_~^Np|CntFo6C8wu$zp l[ S,g-'hk($P[+~)z2?{_PR3s "N;,%0ks4-X{y3xW4/&$3-RA{Z"si0?BzF&f`m IL.uG~X1BTmNvlMx9D91-N[t)}"x3KPgjr|P.4)KKWHurdrPYqavl4KN+)@%m!A%}[xk]AY}P7JG*)f?5ds5G+4 2R(uh ?]vaLt75i-_hp?6UH0  K~y{UaUKF>gP(rX5k8B.MUhC^^b`3tbi>T)%$.,T5,b|t@~e4 `@qbQd=pEaK-3;,~ny|`[DNB ,s5/'!$Q) Te`d `=1'1GJbWufrYDWguvlrN@{%KejprV,/}TE'8 ^FG2`xiB?kacn2P-_-fhxxxp) B% #nJWhlzYt\_f[zkcr;g~*OQL)zn_Xp}R6WS'M.V?ArO4K0Hw]H3KbJyZ:m`DJK%hGTGc$T5B2 ` 2oL QuKv7Q ^-}tj+s0_{,B{M./#k+"Yc:xWdcdS ^UgVy /5Py'(D1N2>p_/6Bx^k)~De8! `d$ (,sdGqp = %=V$>M<h Ap,^cmK k}{ege`n -#m5{? d _?~ra`:y i 8hx WxC=9~G0  (3B\IR^F6`4`u 6wo9`u7  ^6D b  A4e!EQ)hHXe%owNHyQDW9-dz0 oN YC - `]U8@La6gC!?F~|7v%3]j@8g' - C  YU  ;87 2 e^[L^(uS \'5qF@ UfS>h`f  O#z  L e q/HD K}$rej]!C_hG| 0W;Gr ) K.X+yP3I+: f&5<0/e A% GMt `:,wtJ@vaD Z;Txwt^Yl;]]| }X:fGKV^m>R!)""m~n~_ r9%${- ~Flr?" C R$qD =!_ V _ n@ze?Br 3,yXpI:6$ u}Vi'%r&" ~0fC:)7YfPd.k +fV_J|wyr`;I3 _`:!ss`3z@AZ"{0ZQ/=A7m/0>;Ty%RDAI:'WQc8#=}\6|Zv,L-tdj) 2Hg<{_;*Y;.8^`6W '@W>d@DhN:@q8>/%ZLb-x s_'!=gNNR@*EguZ7XKZAM"fi0[6=w:hW"X1MWoR~9`:%n=*<=F;,%%\8HYGE|m0}}WC(..v62`XVJ Z? w+tD*j?bRET3<6?%R0:^I i.-V|t=u9BzpA8Ag 9 {b|h]2AU$3 [#$B D)'*=hAyMz!y'RLCc68gK)jDPJjdi y+,+Q'] JNz3P=,'(B&XJ[_G11T@~"rgMYPm~ /s4tOxM;s C& $aFQ mVBhLmH}E vVa*Rl%b]RXW) U::L?i[z,YyV.'gJwkv_Atg\FnK$a}#"?|(h*p<%/TO{|(1h7c)&?7c5;Dmo&0T^QNdC?\Csl&l 0(~ 4VNN/$;9WY{EK8er.l+D;zp)K @. XYos3lo1Fw;,Oqv0W7Am6]xHX| E7O\de >D{F<.n"&Et;|([Zej\}2~u47Lri(x>xj*I|= tXc6&dggIRB]Q8D 9oc/1=8 N8Ma`mc/vS[aO{UO\':o5P?^K}eGxKKf_J5VBEs/}9EA9vD>SWx7>w,8hGovLyir-a9OX*%_xH4,Mq?)@^gu+u} !SM0eAE=gTwaNn*"@ }V ?lkv]]NkXt`f[, T14A rB$"~8J\kQ+MZk"} t`8,N*B}BpO ">>9tB _QOg(l%O3sJ9Fbu<\kF1cL0!P5D9bF$Bv~\&.rf#`_6^EH<KdLgmPbxhb4!3d<+ C:=FE-d?!w'gSpPSWP/&~ /_X 9lHA\x'DS@*#6w*n7Zrgv) CNBSvoA$Nxn Nu+X=oKXO<6(UG\*4 eeWC]GpfwR#U[ R5,(;?C:723 JLA+P7n*DG.t|D |\1qUac mC:H2P'h9%;/ed<0 u&>qv-oQ8z+axu)lC&fm|np~qs_#r6pO,(bN=tZzIyc{``0ccM!EV9B@H<CB>G5M7H`1Q8* s%\ApS(Z0y~)J|C-Lm+PkqzGu0Ir'r%bse}cQoBAkZ;$^EZqOhc$cKli)ID}u{Lr%dWgLom<OSe xNhTTG9sl&UT `=9R}r|Womp.{({|se@VR SzcWc&&#<*9I&9;AYeaQMEZE ~Y0mVX@kuGS/"D/wS<Qv*Y,NH>/8 8!eJ:$HngRs]' O`.aEpr!Jp 3 MTwe_=X}3ATOGeH^d=)!'z931WGA7afpv<K*U+ wKn7yO{#XI)#g (e)7oe&{m /F*jr.gxm!Y_s%= zS6ax1O"HH' (?[wX^(D%F1g5^1}=!*q)$L= UQX2|r S|Jok:5Pd)L)<9{|hRtbn?]` fTMnLRNS ^'}@:0n4b:G:rM$/ivZ&US6u,|{4 gx-Zyv4A`?\$>5~x3C('?U'uC>m-Kowp58(@VAYsF1hy$ M#:iF^9B'{}'z1235Koj' [BLE+}-6#'FX;e'%  ~}[aFviy@506*pOWq/U)t~lyKC#xMYQ\mUnFDUSzMzyLXrpI 5TC0U7wnS\>IY/0tN L^7Yt^31 < jkwn[NoL!mcVzHP Ij-xiHmPy%`$$xXyTplcM`uePixEjwfR1]N[C592 cF b?JZu]LP?*=.KP/CDhMX4qUGZkCl'$9ezZqJmQx:[j;#dqN%9@X}YTnpTPgYrc anACOA A?O#-|~bF}o -"$;9L,rs$7^?f~[rz~zVqwVo>rNX0mW,)hT:5.(`WVy}YGJk\}Kau{]gtt;s[ii|c*&B.?9<9&\^`c|gzZMVsVdtWG*1A*C* 1dP[czHUzrqk@G}XQ|~_S_O[Osw]eunrKrKCKzykiF5XuT  &I 7D&$ r|E+6,,JxaAya;| *~y Nd2[-bce\"4!4'2F%=C>%0w) k|Qt|B^>G^YBaI[3CE@62e&7^tZ0|s6vo 246 X\ITXcftlopkynkgw|}|okt^qN^Lcy MY1CAC#'7#pylw{ms|s]Zite\pho82-PT?hdi}ZFrvntbUz}6A_vY(99&?9J{xFfOkgN~^(Fd]7=Gt52]}fnn!E/<D2UuDlkuIIS~^ ]Kb O f1 3 J uDKeedyBX6!7`|V4 z w2hIf6 |y GP7W"ylW BLy/^ j;^$8rj4<W.6P"9;/ bW6kZ c"vO}P7.r 8JST 5C>a^P6N4OBP\CA!Sv64*G?ZQ{6^`]w]AQ=z)mAEGd)(.HK]|bX&UX#~4QWD0Ast+a'< Xg;Ii6;{WqojVz:KVrny^^ P gT  j += kJem\U*jWDA]j#F`gH./{4uWW=JF{" "y$ { >zp^e 4$>TZYj` KC7C2<c.  b  F=$ )V L>% @Tp59"eDoz<-gvѺSm4 i4)3"V FlA G+]^w i|qY7_AL:f,gKMw9 s{6/l$,XZ zg WVU9kH e \ . wb$p$&QKA<dl 1|* S% 4C&(Jsx hB Q, txh!P1Q@\DAx&' d & &iu`( C t 'Kje?1', 1 JO3, 2dZDH;56s-ZiS H: %2 i u ~`4*ujjN_+1Bz-_$% \ mJ 4G{ N.ShTh,(A"d324 r {W1^K+2 +B  (1Y?zl g]-+kC/]<1c xbl78 ?j=>Db 9 Q:)Th3,/rm*V71 wO@ .,e H ws ]   b ,|!(+$S=Fc ,Rp f v ]vU<Uw?8,%< V Q @k7&;Uq RU "`2 i W~u#+I \rq  H;AT/;vegWq NJ  1 )Q1[h|/$mjaF,%Jo`u\n$DfoV+P C(6D>wb mc{{;9UZ-jW'A@=1^()#9vBA!DZ+{l{9F{:\X^#KYPU[ Z_{TJB MQ8-lPlTL)viHrPl)+TV$AR2LRSpP"P%JU?R(REDfuYzYqvg<~31sUq|Wpm K%!QR4<]+oq<Z>fhJmGf56VKJ?D|?*l!9^~~j~qz8?OWQMm+KLjOLln|M >.]IEB'Pk85\6[o(P(Ac.X2 F) K Ouw9 Bw CiYP> ln) J* gx*1!: !+ 3-]pRQtac;hg~0#tbz"dq FE: RG3,W*nj GptVh2oQ(<(x~7AsOX^o5:ceE OKxsjH3A'` >C} :)$v1Y /GYCWZ6`g!X]BALf%# T@8>98>"k,P f% s& ERxkh: ? N[T  v*;"Fr: q)b+RY v =_sPkP j,RGe81>/D]SHGT\>c[ ibY$,'^|+=4 D 3RGfq7&E ;9NE)jJ l]{!+KSm$*H1};/>  1PP%$,Ek0]ZP/e$b )u]5 lH D-x@\o~X 7 !u BkfF EcA0t5+3Ooi- & 9hn qgH)~l< }Ce&=FlN/to]HR#9abJ  FL  ,kB6-3((1 ? $ d+K+uBrgN q>oNxD 5 a7K S BlwU _?Q< l zMu\ v l d K_*savv{&Hsd?))H.  kCl\Y 0YP9` /8n q %( F$ .9T? Ci!M;H1o 1ts9> K2f 8`w | =UK~z`9Pf EPJdC%ngK{?K0w=_!60B22 1{Z$ OJ8**'O2Nj q~#RL^{r6 Fh;a-rL " % m@" ? hro }5lu<[~,hXTHRqoO;t>Rq\PoVg6  o[8> /HES 0E`pyq 9SqsF D# aK;[qCb7`ePswWWj>Pxs O.$yp^dg- 23<0gh\u3HZll6DCv0rKy~k76B<J5>  5\w>c &{viahT9EdpSldC,Lf~dX-0&(Hd( AK/,b&92invSrM%s0F#K~3&/JY}~1,MRH!dZ! =71B(i hm*AVt}mjG@CS| W9*^r- pqT5Fsme3(@+;S:'&Nu=Rdm*mZ(fN?vR85$P` )ieb{* Vh1+aOb.T.F~h/<UL&b,G\2\qsdhK"V:E-!*rJ"!9MCP? w5N (q 5 u?m m"&0VMyl?}K rm-&9eUYBXO Pa`u@f7g~$  i=fz5U_F_V70PEm 1W i 6hf I8E #L{</4\[{(MN C]@j^P3k|P `Y#P5] `;<,I OStAqk 4 7D' Zc3d |%1aq ZmO >%'|wWGNcAC A  0Pq?D3a[:|5)D D4_!71gqmYP La  2 5eI;0mX_~h(JP&?5C2` jG z$$ejxkL!#T#wf _ :F e <\M|+Bo~(!WW:*0Kv@ x\f5 L GR @_ kD0Vd66\8v5.sD&sEL Jm $l{X- ^/8{)G1l*r-h\r"PD?2d'm6 ,=<@Q?&V|AJq}uKo7:lkkc>y+ #U_1  TJNb($k sf5Vb% x rf7/& $qzYmBAi2k) #  F  GY5 <W 1m:`{@p p(5^ywNms g Y A 'L@9E)&=:epI*  h@B ^1=A_SGN/v8 =  v ' F l1.KM'uNm7s>~bOG~J&. #  !l ?  ^JpVrPFCLG&pU( [e jk^c["MZ.#q@IIbBs1N7EJQS:A ZEw \"y6$/wldOY WGk3}XgQf{ .;% QJU? N%7a\T(Bcw3=-txQKgg\qM 4-{I9=Fyu0H"D_ O)> $S P4 uD[*} )70!Sr"f@sF#l?19`J0[2HUm;X['i*`^H&p )i% |=j.#0Y 3(G]38 n?3ltL|+CXF{h . X +?O+Q)#L[VZ|}?T,lrdwj$SdYlT$ZP~OK^jYf !7M|;DcO<Btlo-gN K.x^x$U[T9-P-\W1?Y w j`eTz {J  ATL$bqEsRzTLnZs78c'N :?F 8Pd&@ VFil^ )OA;:\S^!1-bRuR|rm#BdmfrCI  9M_ 5<  I^X;$VGRm7?K!M|=r t'9X'Yfm $X/zLjqb,n**TA` @_-ZKC$F'/~ [ m< dgHdTK{ >Y.n q<s@:'*03( U@Ml _ i 1o"e l iGTJ f u)t_(- 3D)N Q]$|P6,*O' #2{i  :cbq_ 1"#7h wq0}7 X#z&hie^#?: 1&!* B6cK"XW  :M W"u&.-uyF  $3#b ts#"nmh#aP*:bguJ^^ d fg ,qK 8 3, d\pU$1KLy} zGX %%  XWN(Ry< P,h!hvv.?7Y!a  HPDVyC  y  338Oc;pr2'rW;- >W%R'u6*_$N.iJ2 L 4=X[&Y =< 'rUm8c}_(d9DL|`Urn+ >KH / "h!>5>*-^Hc~c;M@cHJ]3m lgIB 6  I"~{62nf_f`Df g$8YP~_h  O*f)hUg}9i kV,]  8 ze&)\RdrOx:Wqb}3&$r|>cE,zh5yLKZgT_ %rJ0R{2:?0@=Ci2Pwo)%\l{3$u^HjyX~U9U /;jphuYM _vEpF@oS^7 'Wnb['WH z*I^s1*4qq"aSA. U ?l;zEQVVke5)tT'iAC^whW}r\}.]q0C2!.K,jcYqstsW~Gixza_h7ut?FCG/:7"(! }|YbTL\yuk^"hw? v }?8UMaD^ eMQbi[\i?Q Zl8H bQ;!,%T3LgggQs}Q3dp*M rS.RWpmrEUgqpETgYJra$to/JNocbRF.EQ3'B#ZpUuKX T2v!cbXci@eiO~{v9( C> |Frotr[natr~aYgg{U_O3c6y]e;M>|.I_2$zyGOv9ScN^:KFLs`quq,*/Y+I8X5TBcMl;@{^yr`{n{tIVh6ISb BD6uwXGJo+Pue`sYezwt;xwrdy~{15%JD[(WWJUVjgQBvcMy0LGjsPRRf$Z/$9o|Ykmouf=l%s2Lb]wuhzlwvh &(3IS=@aK`zNkawQ{ly{howr:Qe|"?N^3BcC@+OZ3J:hTij{xin'}]{XJk[Z}|Rd08Gb4bsDB?MQvuKnFFb.N?E7!b&DQ (cW$B>2M ?4lyu_|l5%,B_)SVjliy8m) wXAdAf'f*fLw {sS[`U$Y$A*h Rb 5Vhe^JxQ1iGiJQN9?6C"*R+uH -&CY>/SX NwU'u},[` tjPOycV3Q=j3nM}%T!m5U| Ta '  ~6piA{ / .0D__a='Vqj_U ) FB^AxP=zr*=7Z El[=&3i|\% G\Zw0-\Yjhup<  2=[yH qnoStEf| i "   !Ais? Z PY+nQ$OsU  WQ ODoVUxU,ETF' <!v,H Sw1i isq!p.b 1yR? 7az*P@WEo# ) hc-=T|XC EN5J0HjiHuMx ~[AV(r]8t5G!*fh/ 'D n4rb< e -Q>Ld-%OU1af5:3a$xp^p1LY |)%qMSrnX(RV   y  Aniz_CjC=8m?'bj3>Z3 ^ +3"7A4:@?g@Zq&T6? ;-  +[lhZY|k0cI'n*nNA "vYw~h * $E' U<  L#v+i P tAD>XlKq>tvo5'<F8H"od(=]g2/7.6} [t?b_I_ ^/ }RtQEtR[Q[)Qye?Y+ a0b,`8^}fW3z( bwX ;j`4 mo c~Ok6gyB2S<| *-_,XUnr %5I.EA_ { F;Q EK(u$Q&zA  .0G1u5,1&wU?%rl1ddd(G^hm]Iw'|Zn,$XmcO(FH3eI-.AM? v2q|DNPo(m"{ <s1`eP 62ee6u\&Q_%(^@^lg &~mw)ZIL %h.@JL_ x7A&9-|SCN 9%}R^g5Pt]O ^CZ `.zZN(DR@> rvA3Nn)X# Grb; 4Dd0#v0~--2{EmG r ;*'} 7NXb})K-q`hXxfh\qU eDi~{mhrk8@ze`W ? d o *D('2fz) [?)$A&$H!mX*0[J-H9;TH_ BAUcWvaVSolG.mzw5Kr)#* %yu$#$Tz<yrHv +"zE@Yj>gb5}Y vd.K5uc)i8TjF+hqDo 43lbH8k Srib[||N^1J% 7A\) : iAw#j{=3OkM !fo@*y2S @#"UQ G- >Lt3"C'Z%?/&Z`Uc1BK{;2cC>$&Adl+4.00q|z`O#L5P1VF47n+d,3]:iQ,cGEEiixIl4/1Q% /m(SrEZ*8\8 ?_17G N/}C{jtq]a:g.@Vm6Ix}euf<o\ Z&7I1Kw-JA((.- U5yC,iK,oDU$p% E6_p xe4%ug|WJr/(?`M3?K4W*X> !EX4b%=xPJ!j_IP"2YvJTBh^8TYl)0%Y9-f($,NMo%]VW0C,d3y9tfaN=<PZB| 7_r>TL( <":M7~f,#yjF9c+z"WeSa}Z;%46@8nZ!CpfXNCsvW26kWW6*"A70~U_gEWMi} ;Kejs%D{A`jM  nO |#{wB}qTUa\?d3/h>XN)B\N\+,3rfa7dfN_A %Mnjpv/i3("K/n9=T^c`EYZ$HQh>o Xqzb/#[092[!Rk2'toE/@3}]P@z,y_aEP[coh0NYnT:[1[ ECh_utZdp<Uqx^Pz6W8g KeA?Ks/kd4Yhs%M}T/}V+:he2V1,jGlJ &tQ6EU%vL`<llCgw/p[tqkNIat|446I' [CWdtbddFZ WrG'jYF Z:$($80* pLVUC 7b &Jte38'Cw/TL 0E%j1LZ?(R}8dV 8BsAmoP&kLn{a=L'.`QN.u M&-*1Ka7PdC" cxd23|~Vumev7dhkmZrR|?1&`:k,w|BNwYXH):CX[oM=3b.a0.& V9!)6<!&z(_^TyYeEevG|k+@5nkI;7"f+e5n~Ac\{?49J=Fs ET0 q[UM`t,i* }/2(#~4~_nz P0-G2}Of)oU,fh` !sTju3Fr}ii.}Dj3\]f,g$EhKh=M!9KJ{kFFd,$=Zkyd\# A08 >R|=*|w0_ID_Cp&iL :#)ARv2M+,X<;e}Mr?s?sM<9\y8(Y[WSS t YqfV&+3p&.Um2Ij_o4M|(=$vs"lry7d{>c@ /3wx_jvKg gkL1h"Z!TPrm7 mV&L)/ZVTT%{?@90HeCs W D5t2E2C7ZbAP--&3ofALM%w<bX_Vu[r(rw?6Kf7.^ZM^[oxJ|:-0]_fNfJF1=$Clks P{X%!$P1B]N@vrX8VSGV{y_g>>nrgRz}C-BJG`e\`>P9u:Nv` %jx*/3`@exXXP #c(cU6hAj')Zd^'Ov)/@fh22xUJ%J{6yVK 4 +) !lB2WmuEF{oF PO|"z2dJhIAYQ?`x^c`9gzm`Fnph^ekQnQQxvcvf>("J(jVhen\zf`"j:nItqfuoxX?qxz_fk0V)UF}64zNg?j|nuZUzZ8;SKx |  l $nbOC/n;&TNWcv#9H9Wkfs0;Q-26!$nLv ;MbuZC -V {dd%$R.'ZZ!3n}9z la2c2 # y1 .K;r{~fg c42Q`Y[V * m &pf6"gE ]E L,( +7} QR>$/Cf? Q[ <Xa.}rN  5  #d  uA,7H[j SB""f+Fڣ&!-cU+\yP~3OU/U#]%Z50U0F9 N>/HQ "5q SlN w /M.H o |j! ]W8 so+E[-&%;z 2vSX;UX  P~Te 8f9  = q T_<8 n Fh 4iNh6ujKiSJ:O^ $ T _ H &It0i#K EX7^vR%_ #&6DnN|_>7g{AB$rRTB'Q{U1Ye- T<,tI6]EL:}*&8m$ubo17wg6 _XXtiD?2LJf#4|e7 myAd8>K}Ip@9AY^ySk,@~F%^PRM!Wn?)'1)t~nFg#'OX2Tbu7UDc_iKf;t`/N_[l\ jjyE?ev<<~Z@zYJ>Pv;Ik^D=qg@\! f#6gXz7e .k1y0PHUYI)17RJ)DI/T] 4b'L/Kri}d ;Uy\+0^4khGwhy #PEY-]p6zm0){ =0C/eDpGsav[J"nQFf]e~0{J}+3W}( ,jGfqDQ> q 0,~ FxONbno~s$qJP%>P%^?(HN;P y>h:Q bEVqj}(hzKz!fEHH#b>hQ}+Hj;Iej,fx,MSY8=d0JbwXvMxuR+S}c0R'yt|vfEtVF P!)t}qD4)kjSv.*QFzljt%VRpkmh^kO(Fv|zPSNh"NTfD 'IE 7/+e<k5^JXyoDD6oIhJtWy$HD. -Q/[{mZ2X:N=N -KL4u}t`8?se}L~(jkZ )[W1go|Py\!B naw+}vy|qitL1%0p0TvTDAD!R9_&&$n<A?<Kqaw8TMCEHOa YZ#6'eQ7c% fA 1Of>dK38k{>FWk\O%Wm7H=tR$+X`Y| &5vFJrS;rh,UzZd<=&~4n_g(xY%+EV)&E :f%a,uBj7~>7o4 Ix.!45B M : r^v m}l>qiq$9(cK!U>w?}5 PZMZ_( \=qhoLN ^N aJvX;&m)eHcZ_CNmf)@L OHdv=5z g n nS?5E bT9?aJ4$U7VkGdzr.mW>/n%#by]gfAAuFAWK#^j6oH!Xu<IxwxYRSEIG[xoFqC;xM B= / y 82h`  6 $G MYo\  h?=15 3tUq~X:[  ~ i2 q& r x7[& .o LrA 2s _(K'UT+9 ;  Y# n pdcqT0 cF YKw+&sn6 6L@|=[`Iol&؉ +Wa xsg> x}  S`x Z SS @Ym486R 8p9 rI1( 3 al(; zY FX;"a0]1& NpF+^3U P> yq#- 8 9 j H9 ^V$O 0B ([ :VDa1S t a]  Lo" 6 g " ya#oz}J<t0 h? + yZ^,. ET 9 n>fWbdw/ f'@0#0} o  r(.6mYt8SPP _ 5Tg>V S< ! j}a+7 e x #Pse  ." 26dJ|) < d nF} *?EHj>/JH4{Yw\NE|AJ?  )B:R> "f"m  g y")- R  ` l p6Ox<M~ 8A=//"a7DY"cG%b@Df}+ H . M"-a6bl2 ^F8Ayli.3C

 P  10 3I. (G7L19]$:>bF, p #I(\8;[ e L\ ~ 5ZV03 ` i :9,.b9S4"|Ja P&{M߼ +&q`]'Ϩr'jUh= U  + xloNT9\c Ws neiᰩUI m Ǐ+]_#nR}G (2Y 2 h` "/ M{bY%L,fy7C4A KN/C \ψ]P] 4 . = ?, 1 m1 , (CQ 7rY2 ?rRWI,#v@j6tf #2J r  JS1!s #Z`r E +y 9'yH Ep5*D9=VH81 k:Z\D  !t H .?v {px+.6u s8 j$(lY `k</&!$3: CG/ CY~ 4+j;* O t.;3V0g6 <OWfy+kp%?*N)S>f^  m9-8;<zfxm|E1Z#=o)2 a8qm &- d@ 67V2 "CMHpLT64^^qir{)wb.HBt^~oJj#*q6<mZu@X9iM_H]Kw030 6g%pO1kw~.6d{WTp5EGwBW!$PmD'|is({_P- wc/[Rk:F_LC3a *-aA+>|.aqsX{4K]2c4yg`L>/A_y.mo @2`N `(o}[v b^WPm&X-6_tXB)}_GHd/C,(ut+?%Z^;xL2Q%nes0(H_Jq]%XF,Z^(e:8H2B_"w eL xI{/e1iDTA> V9Y<AQ{! 49;>syy?B :.|H7I)A R0S"1 & !W)CO=%|U 07 m-f@}=1w9|**r IZb_?{tQ}7\LwcK*G*#X'Vc,~wWmd)?qn^ X]GP+" vDF"q@^L!k4 E-z-9zc) {*a/?7X' j &9IbHPkH>x8V  ZQ)o?"~;nb[ 52 D <Z PF HU{E_P;-4{2v|IP(bqOg%|0BJ=jE%_.BRe*3 HUO  3TzH2)tPn/  &Tf3WI`X8ccZ{P$CK >'59 8d&Xk&AD+Ro_pnD^=svRD,p(U8D/O)!@39>} O!pcClfy-U>  }@ ?$ffH,0)z2yq:Y1"e]:Z5RCt_$Ejbx+*y/ a 5c   $[S~F^]33}/[dMw_Oy mQ aZD'ZI=lQBIQ8.(FPEl- P .  km?SeL|&*a ByF#+69U8ud@T#SHs_ho8V9.d@ S& t>]5aJaDxT"X4/ D `-,YDgT4T.(^Un m0O)x}VGX[wL2hMcH3J+-zsUsZ+9@qOh"z 0jBh=.WT   s5hR\z~Gq4q:h?&87BnayUan|P,(Q*H]!q ,Lmz9l4g %&T=&Z(FZ ;R`]fgvF@70d]CEa7G="4bpP8 Iy-&3#)>5gPd:]kX }MTV(CnIa}0h)3 AZzYI4XR0_[8D  "&7W\L~ntYd"e}k\ G]=yR!HlJr"\*~iEK?!qO'4 ] 2=L*tq526elFU"Kun 5IiD1X^[Z BY'W7-9a `KD =zY$JksL*!UG kw,iTbt&J>6BfLj0iyP;Ql_aM,edB ],}3?kZzZp`6 TxX LZ|}(J*W(S9 wlfM=Dpi4%0<2~24 rabD); o WJ u DO xbd3EQL N4 !a $&aj ] 5J'RM =<~}e  :i&/7R>R IiO53  /C%co9 t %t~ * R(U^# muW"&TaAiiE4GSmr" B `R 8 _y~4.]ao.-Z =sH^H!| oG) hU# 8 jz s ? GOe nrG`]c'N$ oW"_?6Urۆ""_`E^_] F_&a^f99pd 82i0=R"qp:D_ JYu7]X/  L:wm l rj $ s  GQ' a agD {m&gw Gyfke+ l~Z %Bl& ; *9* ^ F8 JU[ H MA= sP /D Q^JS/Rg[Vz|i+P!QPMixLv),a96W"a. "XY` !GrwAo  , ={09jaHaW,"_yefagqX0 qTq=^b#l>5`O XT#^?N1 + ,g=4*:hEO N#Sg_& gibV.{ 5v-H:m=%SV['G_l  n .;/_Cu Y[%si,,Y_42@$ .V5Vbju2J]gA2y:F_Y|6W  C WI@{t R)M/)Yq/7)F{6i'T ?Tk3dPt3Y    #U!98' 7L!\NOSfRWB]I`oF 1agA  t 9 X Ia : F@`t03 1}J,]5!usu61' eCHH %6G| s P:AUmm8!r5+vy5 |x)e9hS>iu1xjF+f -Y*xxb'*Uoh]tBjc(Z&Czpw9likGEOvPQdd)%Td1}f73#.&qa5hgM]rm  +iZhEzzN80Sp{>XA'NS`KYRU70lU^$:1i3&dLcc(`?VB$QxBU0cnVz&F80?(e'SIv X37DM#bAEa*_Th?DNsn'Tt ctdN V"2lBv.=C$?se"`z;fPK@7:BTyJe= E *x:78I hiWg5eJ*r/"UB7DAOMQuBd `#&~:?G UyJq tXRm0: 0,H:DWSEH\j&) ,@"L05VC{7D} uTY7bWR LesGa>%(TLk T J"#@n $cK$1@A$sO{Ru{AnK(!pOHlVD7fz ]W5j[t/$1-qg9;Mges*oH G  Pb6zb k{;k;h%u/E%n/K3v=>nxr~EY{'TKmw!l/'9^{zs<} -"Ps_Q+ 1o t5I&R6{e^^ &G/3I6 e= {soj[s1i Z\'tx]Z |"9h`O }u@xw^EMoDQ.XpuY/[ I!$pf$d%%jXdc B4n (O_j O6=YQ&  Q }.yuVMJHiy;?r&uP%K8u VxC @ p3/ <8vfUVI! VDzu a5K xiwS!pC;/=.,jUeX$6Q,KT"PCmKi6|Rz e]VM\V" z"~vRKE0i^TDG` oBYoHp bHFyQ .3CeXcrxhe_nKlhpv5780*EYg.jwn ;r @ ,%+upr0K[)14 6:s0{> "oUy&VMV6? kH3$( "0O$m't2bM -L9 W9 ox|5 9Vcr(;=%O6X04 [>L`rqdX@A/PzU!:+u 5-F(:T;q(!\7,^`x7zKwh /p1s9o Z %Q KZA  jS1<iqX}Mqx#P y=|=!"tC~;!mL a",eGD o Z l&DKlq 6T?D#w+,NS*V-1'EIy5s>~Vn_yYXz9+uI\l 8 5  fF K:\>K%"~>P&2c`K#|; {`KccwoBzi}rnk 6nMR;G$" AM`RJ N I wee1E ]oA Rt;)\]uCj DNX gYjy>8f ,$0 HH( BJ&nV >yDXlFp #3 ~qB brV3s$)6`DOT'L 9I rDB` MoE,(Q~TB}zX/v\^qi@* W+=aeq;!sn$,SoL m. !p0#kwL-f@jtl0-T-fp+eBe 'mYz(7#k!s cy<]  5$H% N]_+I+N`xC_1Ss%OUPYT]3:Fk^"rNL|n&xf4oR 0X wGn99*j=< balT/,b4-/8Ar9m()IA/ Gp$qD>uuysmd `_vTH1/ JxS@9Z@n)S}@gy ]1>Zxq!E_NWeF@m(&TbukGV3jJaz|A8rk^Onw e$*QL+5G<nQz:moicdx5N_j 48{^Kf3,RN] 2O] DtDr84[6s` d`_$:;"D%m M-G!0?w*44>zUw>D=l'O9| *E;S;oD})p_rn1}OV|%<ujVF?gKnm s{YDv&sO{O|of1I# ,f4WLY&K2Llt'NKo,:[U4S&b7eMKuf:u603yiu8'>8@]]beTf$lIX.('Y*-|wn3'atg~lz(ymqcNb^_;juL)F #~TCG (hGw=GmJOyur)}nE]y% _DY#D,o;}Mxr|T{%-H=; qrsZ* nv>Em <`x}) uhGFl??PGOX[|Zw%muj)oF:1YH g$* Y7(-qi )o@/~IM/PhkSHaB7C5z~U|K63aNegt'3p)|n&%eR|w5i7W\RO3;9D/Fpv_-5^ *XX,9V6B8rd_>pxJl:>-\ %oeGPlTD< Q69 aftNz^Yx7 `dfq ?]H*s>l  !> 3s8>wZI"kZ,xN07G.:K{ i{.}r\  Q,O?ugNoB( hI{{v9OXuJShA"E L%k ?u(*3d;f2D'W*we k~z)xu#xp' /7KVGsC =)N{|5\I&z (+ J~{%|M>Rn5Qp7msj 2*}]RiP4jezTmF]keHRt<D)*bW`h D4 @OCH,1&a S4CzSVa/7^/&m1*+h hM0hj#9E okDynjDt. yJFg J[fA)#!|2:I6LPIv:D58,4Ct &yd2 5fBWBKS3-![HSy)^29a<7p##M8y(FA hMN k [6Z+R.[# aC8tV*x7dHBi G:i4i]4#O[`\R&N [YK%sU^8rg wSF ZA*~"W /Qn5-5:Me b@w>v(., %0m#fV<99h 5; Dt *Vns1iCAO0zKj@{j% \c*gK.!kt>]Q^@ wvWBV  Q?|;^ajN]/j?ok zh C=DN{h8MGE}8rE;Q8.PT9x)Q|!4)LbL;/Vpb.J> d]M nk&m(xcL? L/oXpH2DX1gl\_  Z:X@j$q{JQvF-bzX?.: sL '} " b`x0ScKz%k~4<3mW3N*3WuIT_SlTW-  8|s_&4! &jn&S:VYDv)0ttn03 Z-ai}y]R"qu opr 5* ^MoSM7r=}9&qjb&*.2, $ 3fa0 N  ,;#bFk]8P{ba O+'OG* k :"Q7jy t"zBVE }f<v, FH' r:Js( @KS4S9$ L$g#rH  L&+2hwSQ0|l#s ?^k mW%uj%Uw*(%\ `U 5=d!#L O ~e7Dn =J\1uk5tu_dI>\*`1h 6 a b tv1-bl\ K n?p x(Sm$T~-E[e.0CIf8 W?XS fa| ]UdRD &!#Xc1*V d0 `Osqd CQ.:?+ATzh2 Z>|:Av2[*&A] &I'8 |e _N<9 N(r'aZ$U\ m.8`R*7(Z {AI@i W-+] c 4 i x/m P>kH=-Ay EW~g< \7?If[CZJ"(` 7 :An .S%9ZPh 0\FK,f5N#=/H'_ x+ 5 QlD & pge.QS B9"Ybmuc JE%Jhx\S(I*a1\Je+M = &y5=gHwWHK.A4O%dY7_b@{oy +D5d!2*:%6HTJ AE8tn\hO|e{VD^4a{mS&. 5hV.4S)ae@@= Vr V9 |3FoH pv]@NN)I~ZthD)]@['/x! [rA6i s ( Egci^\ PV`lC@+CmwgT!umSW./7/ pj$rJ _ & p=z )xTH{D67gO J>!?If&/%  euc c x 1nh!)dMg{B g)thiUjd%8 $2( b  lֶ} UG g<L8<y2uQc1g? Tsf< 3 {tyc'kd P+y5#oZT,E^ J7s\+.$ E>YW /,YPdt[Y C3ijjG+ d-il]!8-6P%jѨ 8uJB@;T T(6%MqiN2>Aq  J]@A8=dqZ ZNc2o.dsyݑ]/O  No'$' ;Z nTSBz FJ 'E< tTE,r m'c7E < W-\LM{ N rkHg>sg Sb' 2mR wz 5g!.x;yx>&)p 6 'i@NPm1 ; ;v KRY6GsS! @ 1{wF_lk \ 38uBaR/^J #L _Pi!A)*o9gnSe,T A  v / 7!A F 18(/~^ Ywq yN{uB=&4Jcpc_ .N_l';  x%ck<&  t};Gj i}5d3`o"8lL [$$ov^|{ # < D D qi[BhI.mB9D&,Pl^Lfz#l+Q L ! a : ~+"JZ  k%tGw~2_>`xLpe69x)lQx]Al?<* zn  s{giP6 R]^ P_82`1%2SK!red~cHXA'gN0+VV:z )X mel} z BIk ,H~5Ubie<E'b[^{=xLdr$kt!mN _e W3\i   @)v_fRmQ!Q DD.Cg`(PB'@N+x` D,XsRNn% ) #f"mf)w;/|@QvL_*x/z[ J8 p ^G 5t 1"$%o+["zv@?Htg+TzRk`u] .=1uByt p F(D >L>n,w=_o56y_F8Yh1]( tEAnf}`<P2y1) owB)$l7 ThJ|`-6[<B4G3ded bj >T  7kfJBS'ryAgCOO|t.**(:=ES0x4}[y]T y  tz@p\v|_P40+x^ 8zZ. E1];RV9%rNP Z]tA5&?  M W 6<|,\^5d aG,[gR5B"Q$C%< CmW9 ?xx% jBV0, 7 'fg` P1~,RDW ][GzV*6MBZSp >[RDUd7xD =X[T7m}Pt[" 1p( 6u2soD.stnX9;$Z{6 V/U6.YhaQK2B5,)DeP\ YS|`m)4pulUr  K!V 6E#mOK{ +pVeC<@X>E?||b\yR6K+q gDr !3q$ 9n4Vr.E^<mwUTR8#h q:r!bf< H  EvTC j]2 suj>ALlRhKY(#@;cM5=2w bcHX!v?/} S+HmCW@jl+A ZvlGio[z1]P QMPywr "  Vn 1v y 3s"C.GN~ ug-[[+rXj-sva5#R8"{"oF / LSQ\`*{3Oy5+s #-U &P^t>8 O.Kn +   xm w O0szIy?u!b5~+F$Irwpg>[r't[QEj ؗe9H p$, G) U 1 hK 0j2p&m*h -7 cnzaZO*2[= sX;>ƉJ}H$Hء Nk`RN!6|;T o'# 5 jk2 He A%DZa_ALh9!}.cQa &`J#p.zW?چP MaM]b>Q *a%p7y9=h02'-)PN)i'W١,?0 %r 9EX i=P  #Ve^|_Gv5O 5Il".'#J+\)$ @ <^=߬ךo"  4^Eq&wy2 ,I +Ds _Qdz!,aD &9S* G,m~Lmi1iO (| ~4r@B YX C`i* Q8od6 /?E$ (Nj -O B0 y5n\YAv t 3MQ]#-UNFh Ut#6-_m<@ n  X/7~ 3ylq T7/E FhkL]Vt@?GG^4#f 3*  Ze!Xc = PWRZA<j %EU$ m yulK2cAN"3&|'.X/i  w/R}Y ) m(B] K@Pr  0|blhC]by%k#^"Qx> +.,5-!O6K qK 1Z^_zZy ] {8i[a 'h9_$^.^i W[w*)$> D[ou? fb  e%l8+"% ZkC%/} J n3U?jlb*$3~+:MM $T b e &J3%fz4 &  q n 87.3Kl_7 #c :\Z>-m% u$Yv6S^Tso <(O;  %)F(^YF<:E 2@TdRW\l  v d)g9?C[HC y5 M&)C0lBs=q 6 C \(5LL.6  7qc`0XDh\u<?  x=rUjp@s` 9W]ASF!7g r.CO'm'kyXLUqP+64mjMM-rJ6 N> Q ajN#s^dX.:^  ?|yS cM ,R]!NB /z "(VES'}5, s MlDz'L4%qHBxr" !w$&w 5WX %.wd`|NB'6!eSMw 1Sf*zPt/:mY*b=U8qtMQOL( )K $ vk7%cd-gSXJ(eOPqS{7L1}?B1|nRf I+_b[>Aat>zn0UYgII_e^sxM JT]Q0>~vII~3 1'oMf|3.j[R9(Xi`1Jm M l \8QLQW<`f.-4Xm+ w {q%{u5 \YX@a_34iQE#WF]ol/nx604AZ;EnNDR\~_^U 'UO)<~{'W-N4?56jM*aS|?Jjo \PP]x2IOyCR99OXb'N~IJ`JM[Zy4wH,H4- txY^mkxNtiG(R"A, (WO[2-|O5i | 'P &L)Sg;n2t5dXe6nb7q`WJe1uB] -mK;>"p-^E+ay b$,qN`m^ky?j|"jk5l FjGA.oMp  (7v)SAXjnpx!Yfy\/`(]rns*Qm2dn; Z@ Xz/,?e HT>C',=Y0@/~2?:o=&1j$%m\(@hH97TqS= /?F?.d  tqHdrOqypBU)`hC= _?  vSs1NtC0?TCaQ7?R Uy h * -_{:~=2M NY$4c6J s7 /yyLU_4w_r~9;_;%nwJTk"X `d,"f"nCe]8m5Kj|S@S PvUwQt pkS(w_V3rAv w| &pG<0if+ Qz%LZ1m1,47, xev)-T:l[NpF$*kF]^Om;hvu}zA'V1gpi+w%*R\`z:u$7C-1VF=+K?rR0+Bq}"(#^0b7j@]Tdfel{W8gN4tuKO_yucqzm2&O9 !ULV=gZ.~3m?OX F/1kD.0|EG%:>nx;8teRl]66R7n&31TXej-TAdI06n]]o_70j)YF&gr*Jh_~B;.iU/>m y: $qaiTp_qI0@H4֜p )#NQy-C~?4e%8L,/W y$k*2%7 })O&o^b.{4C*95J Rly XZ 0p{s]1 l5ZEya$$}7J "WxBo`||8{toAp,]G$}i,Z  !}R"5s;/ w&^P70~BK(r!WT[i, R$KCV1ez)zx|L"_ST JxAG\Kt8R6]wLq %+1-7uLk8DyCa!|@(@Zh=Pzf<5+jQxK~Zy{SfZz]|6<-Euu1_E`,:y!Uo_y 2#<OK[c ` $X?:Mf H/:EyZZ_Q;V*%zgW~WbU\s V6Doc'eKr(p?@u}Cm$$y?ixv/]ec nW;E F }H%r`+@\N7Vj~KeEo> H<D[h "J (Z4Lv^A.5}FbxhAfD1w7 o^?$ zrug`9O7qbEX9//]="4En;) mUh~S%3D8-V[Ox.j'/lX( \R S{Z^oXvuR a7km|RzpKIIQWm+Fzui  Z%X~9xi0Cp3u[f]4{ qx2([muL=,HCiSFz]V /1X?5xM@6$0J<K~}yNT\>PSgC,K31[qENF3~tpI`:=oGB_C[fN<Uh|ZjIp p#RroPA\vh)(=W/ Y!:hoZ0DJV PL8^zL\-f'$)9sjl{ht-/6HRW>E?eM(m=+}yndWq<*>T6uV 5 gPF*|&5\`Q_9o>t  =|Sq!7*b7 o 1N/;<xz}ETe *^jfKDCO+t&T,' 0v e;AZ{j8U  ]Jpma_(.NWm0D'K ~` \:6qcEVr\G_P X?u$)m?W,36\M20fq$L{ea@` 5K3,{*9 _ ,{_]MH"/5N=%NI]ev(h+5VkkmZ "Gpu9W}u_K 2 Kd-&iEwr]M=x?}n~sFlh-DB~S7e {nIx*V7I(/= 1|5<jh}t @38[NN8 G{[qd6_MOGrN'kWkddXX5Evh kp ,tW-.Rj =O/HW4sK+Ej)strKPE 4|A2CCfIyQ h9~]7G9?)tU(TE8Xis][r::r3ZWWf}uc.^|sJQlCV&/R_ *j`:+!8-+E~%e=8.l b.NH@Ko24,hggE/#c5y"2H:xGb=C@bVuI9KpO]C3&g8v)}Lx&mFNR mfpn2%=:nP)9#]M02)mB4 ]qbv(2n.6kA:Tg7L]GG~;CO0bA+"9s# ;Nz 02Ba[pP%LRXqV&-&YWHKlQ%C6:@[ :kBzH)6b2(.w0qP5U`m41Uy n1+Jy2@ 9A;Q+$ CZA`&mjZc465yn[-nelIb{`RR.6}[0;9~I@^ _1X_jZ$OJc:CZ=0Fs.Y b<-i_H*J+k|?(/SQRsM10Gd=-_TH2UDVq^p ? sA#sxysZ n]Z 4dJ`{` *   % ^Sp j}|ru$0~w FE]!?]S13B[' NNb VV29)etV`x7~v`WK\~\2#! u=ueluw$g _ ( u+1M~LE34@wB0e\US|!q_cSBx1D)/1I ? XKB=uF9t}hPxFq6k;-ym(yLI.d.Jm9h2y&.ON;T@jaJ36 iQ "5z1lZ';t@ EQq|:-^]8(' LUG!HZ5V Ei6U M)-T,y.RXATjW]6c]*$o8>2o`.6 7BbH+E' RE{Q'+Efzk[>eZN60gB[9p3l=YP4 S,B]U]2/y {R97 p AlYb< ~{ b=]$7 @_&k 2L 9{hN]* dH iXOC{TU5[ 4=WM N e ^\{O\y7P0TAS<i1j*`5_9 AUWP Fc'eRov 3"/r WrJ'u[2'.uSeFY.o  @r%^F4]_M'.(huII;@kjev O+L ~JwDvY!J7mDWwzoaT>L=(p:W,$2U+xwxb/s$ X ) =O l.FH?tNro)yylhXkjlvx#LSi_1tz*8 F W J,BGG"{3@#C_UE 5OX<0\LaB)QWyB\X g o ,}$[`.QJ [~$Z*`j~o#C4@sBqtBL"qwct'W4L}T(:@  Y njf^ 5xk%N1#(L3D2h4c;F"?'E}O}O ,:fy4UtP+'  fN?vW>j$$71]1ZkIlp"COmb@1W>W'D~pMYe K> g6Gbt 0mjk0&brrt!6C-Lg7_Cr52k9Oi?c18]74b2r!/D3!}0VC'@b3>j : .!{i5Y^s".8 2tg`B.W ];kFK(EX$]u+IRb2BmM;O>i{/KB$ .*#,($I80t:*dQ`qf, ?  p {GHa#C{*Yz?T0>a"l@6(gl?KeG]x/hE~ +3S2PjI@JMEKl:?r5K5q?7#|e? tQPQnD,}gxPr,}=qQa X^Wu6DeYW']tV K?bwB'R%sP\g[6?rV]+U&X<iI9d2i$~,20_N%|\]c tw*t0py]e- HRi('Z<7 %b.a!`u?cci {4%jQ'k+~m^-&L\6u:Z/Z`ke kp5^0{-%G"QbCI} _g|Q4To"3^A5V2 AOS&ju^zy_S\usrpF8D3rK1ANgc"UbGDAit9yqVwt{otTM+inGZ|9U 1 "<??COs}}s?VT|nj0~^!f -h5}NuU@riEM5srr`wb7q$%udJLE630#] &!Kqif fa@(~*G j_Y+dY:_f/])eH)1wn[Tu1M"| SNB6Wi>3qunxGGpQE O:UL wJ)H8Y+;PTooDN^GY Eaz dHB3/}uu(sF $%LfOk; (S#k}P1x!z* /Wffm3~]Uew2;/U~>|Dwe;gFng-=v} ?DPeKa3I6(\!EjZ@6jxFtHh'=u2aYr'8-MI`XaXWn`] /^A-Dh@xG=USxnBe%'`ftYpss.la,pw.m%5$Z)?h`Bv3{Ap$ ao0 V!94s*yo<6n~[ +q?V(;ar7qoIJ"q4 d*d3,MrRaf(LN0S`L^vp R{( 9;!*/#y[ J /Q=0"2TCTf/b Eb*5KJC\Hh_7_(QOfvO[yd][0"ZG)Vxro2*Uuy H. P3\#hUpdUW>1[ _@`b4#%mw0b69f;}+qgvyOZHF{qi,F dB&W (-[2: @PuQ6}5C+FM@82c=x=,{I4So 3Bys0Q]5!! o)>R{cukLMZ**N*\ c4L9*pYT`mB#I ?aw\ 2 BXdh.U<;|\^|Kpfi^c0 9NA?*=aZ({U)t?iO.Kk\+Rg"V&jO(}joeiHtCSL%bclSJE6u}CE}zUi : s/>x.D:DY8l0QitS:c!5nC3M8N= 37i\>}V OM:58a</DG+P)N,SfMQTa1PLzz wz2>PAJ`HC7 h=~A`vxEzxRU_ q  Qs4j;1qz"Q9] YJqF7#T"t=;}@Jk0B5*B|EN: yy!hyPtE7iix#P%g  PKya ;GH2sqvVg(_glBK.m( u6Q1SXxU3-o:6 MaDK#Hq Q.%Yj&]a6%h_rZk]O|lgu @5 3vR^;3U5]\H~<86v9EsJ 2+lGA]=b@l#cI.Vdj|ds{oGiS_'={P,x[2$by)A>m  )R lsRhz7Cu1|)hBp>uHDZPaU>L<9+f*eY^55HcnlJY~~T^XzG2)%m zdGsJ#; Ir]q rKv |e19=s@ooM"LYST~AMX'N 8Q.6[ v)|)f?rp9S]{[[+X7UzcNdJD> D B0R/e3A[S3gM13 TgY7T"tY@@+j&3y$g -7Ge8"MB{mIC@1PZ.%h^.&:s3l+sF '.4,(`kw 0g2L  *GAM%uryJbAZl2U`0\k  CLf rn"{uM7b5Hk 45k4S k6K1xG}X@h ounA-9?P7) ^]H*t|GjtJO 0:ptbl\.h";b@ 41 Z>@wo+\ [#5J"I1{UQ+htz%[D2 m[8 :]Mk'#Rw&2s]%n]v^1doe}WN=,}p^4DFBHsY {ul>[~T)'ko.a>.F^MRh+5pDmCfGgaH V &46H"2$nPuQeGU`l{htocx)}r^HaiJ9nL5 aMH,i;guQb>eexsdiE)X4%bRKWtnBPg9|V3 e9.W/0 J)>{auLi]OTFnF9sbMdFhj'chl ]d>>\Hr:VMivu=_Xy[QjcQ3GGX%2HfdD}`'!9cpNUB0\dFwa j\`i`3!nCS96|D'4V- c e)N \ &itUWJo {s;4gX%lR IpZ)I2-dfB :e&wd-C(74aOcYt[q"JGS0VJ{YX JuDxbq;c 50wYPU[?<UB'~c !'9FHrVM?: C(G S&cat e v)`{ib&R2 v0[2~ B[g-!* 4\^&UCI<<K`rk X3 ]xH9:<U!;2?.iM>? F 2}i[ 1Zl 3 ` D>s[c rsbgm`YXv_O=#z_iVi$)T w )RRF[ peWdv(Jk  4) l l js[B3:H T)"qgo_L@ SRV[< -\NI5 K3WK >|l` .X 'B   6hZmC)?O8a7J:>>|G^XP@E@ Sx ~"Bi/^0 EI>9,< M//]m9X d c;y.o$>6J us 6GLYR?@& "= 3$%B`F !)]"L  7'Cx R}~ ]FDHM/$&4\$ 'S0a7,#*"h s7.C|" N_ |X@d=  <IRO(uec 6Q #]:51$$ kH$J9evB>  P}^#+02U*n  =1N1R' D3H"5O#; =0$#}SK5 Nf0SVjV  .pZw*ARD{t b;D-qAFw5Od |dr;[_N +6FocRN4N~'x|UE|22@= ?s~oKNK/HZ' 20-} .BMo"$JO<"Qq2whY?G]1PN+k ];y+)n\I c n+PRdH{l;qk;YM{'Um*^G 0K6@Hf?BwuZ I@)4I  ^vf ZY6$ Z n?J&mvrB}Q| "->B8uA*^8];]^ 0X4|f  PrvMK2 $:t?gk}^ +,I,@t5lKakL>{(IJ$~q\?&( t&o6,5p4>/)Eyyi"ab d5OJ!mLVuGzE{;'3<+aRpo#Ydpsl0Kz,( e!y OQyj<]r-oO] KvQ II D[4&6eov*l<`AShu +BzQ tw:DBME 1X< 7a1D7] & 7](^ N ~_ Ch < kI(N6^@:r~$u~sy7:)~d@%1K {8 a7>OnUE q(X &R 7 , rupsvm`w\ 6&0*_ 5>dr IT3TDj Z L/ qo;#,=B.s^I'=2. DouFV" Q:^p4*$r2Ta-~} v20+_wp ,A,H3!}nA HR8u AQ>?O&>Y' TM$ 6X "%*9'JuHQx,?th, & \>-aU<8{=|3 ' S->)%?&tr@*'8'SJ DHp$  >n 7].!{uOflr-^{7[-3b o}~K?Abyos 0; Bb 1 ~L0FMNZU[IDmk &WrhENy"/jY[8(!g   z h _ ~4S> :o"srP-PD~G y ,& pOgEv5x0n6v1 MA  %  Mff ggPs$. g9*WC LrMK8sX v8>BfT=Kk7z : 7 M" b  2"jP).RinSZ]wl X TNGEoVJ*>C|\ p h ( JVW~JCe^z $.ArD}5Y  N >D <  .7QNZ,'_-II[u)'Z zmD{fZe 1W rB 6 A T v@2H3IjGHbO d v6 = QS};MqE =QM qC  lOB:+k l b A0<5:'BesfB my I )W`S NR[A^AKf!q0s_fIc y ( *@|&K;ORI W/ #;k @ 9)%)cxL3h I  4 *C!CZk9&mVM 2 } $%+*[#5 &)M HH6y!<  .&[#  ;4}D)[#nFQO& . Yc9AqhDQ1 <'O?d qq^2 c)!gF;@n9a34_I : 4(wRZ4w;fFHQ_  "^1{KqqJgAmzH3 lDH kkvn`0&Re*0 Ne81 $[TW~U}\'p6GEi40o+|1UI acG!aT["0 }C2_N]m)j"r"-9jul_|D%v9b )#z4d"u9Jw&V[%`[hi%gsZHb PV>HkF>J W3g &RlJZkWs|*, x{[q\"OV9zlnS _F:oT65a0*{C^dtXJhK!L23 'A2Ph]bD#p--"-@_4`kdA;;""(Y{6BWjY!`IswhT@!";FyP<"WG?3.^H^ wz L-6O&q:p t|xRPhxs_5rP-$3/E7G YF k c" !&i}a!$=O m|G`*1b^HL7_f3Dim4(b e` G5 0qvx^ H^q5'`hvqT7HE H }4uo^Y,%m_l]HQ S Pv) !V^dm:]hX-d9 V$ G e*+NhO "d &S-FW:+* 4tU1h{^k,Y9 A%D^kiPr7Lb  _Q X 2Jl9@ Fn55[-A&m)AtKUn@U#"hRB{[Ii< x/J_HZc;@YMjIMX[&?a94SEkEt^[*S-H-`w-L <r8~$2^a:LV)S.%f' 8c1_@  o:sl:'*cdwhpb/+HR^o [ hIS%6R0ML{]e:B XNW S1]/zR \c)xM|b|>c+BuVN   .>I>xU%Tf)lGew=B'~CBa`x=(MMg (4!Y%o ; bE9C/n}o@tKAHa"5i)#1 ;gT (%0OZ@bLE;IV G.!>$  sl J W@%/:kKIAPb.?zRteb_$kp3S>* t:W q6g iGW}8A@ RPv\d0acDr3{ZQ(u}NRQyp2DmSfpueB$l/Y@k='L_=Ed`0Szp?c "0hcI #Wpl"*2 Y fa 'j`:RL?n8~3XRe_e<w{ g^/foH&gkW3`%+floFvV$ZH}kx.8t)Zg}20{<<qTp'WL`em@b1[=!sEN>5I#vRAgh,3gp=dl\M`Ps_? EtQ %O[g J F@.Nc 4[7]+XMa^{j{qs0% K>GtHeTl4   KR w7' {NSMDTz*g7h7aZjM5t3)Ac)6Col6 K o 4GZ :?w2vO$lnNtnrjd189 Dl% !b5BDe"Aoq_=ksnt`,cpxsw~W (yO WE3?A h"!O# iAT FjG:!pBoch MZPe  tWNm(^LaH%+]o$PS!@.MR7Q-z#$DML{hN#  s w4dOuA6en<d;ZsE: L=RnE9 #y6X1 fC5  X ! 2 pu jW#z'q&kvvE*(]Z  o :} BM1L1334C 5'j7h'{fG>0pKuc0&^G z zsT@[ Q^seC1 W-k Wvl rWe.EOott{B:R-"To  ii B -PH^# . |XA lw;ECnW T ] x=^7BZR d9G2 s  U#) & 3*fF$_u%  z'NRu6 (Kx8~;܉׷<o4R+HyI ~ J6\ }\'${ 8L.'D + \qob D2v EIujA9 #!O7w$ O^\]_ p1 C0}IE | StOIN6_"b+;L B.7f{ j!u NT:b x!L}QAIj)[pI,_Bp,bdQ5. qW 8a D *^V0B ]C_?=,&6K|S <\pf:Xt,X H + _=JN}Jh|IJt =?.<w""#KLtY~tNv}idNc Kr~^KamF}YE=BH{_M(e?l  %F"?KC4SOgIMSLkXa'w:g<4Y;2J+Rc68_V"UX2/*%`BWq8` #':0xs7 hdO v{a 3%d _ ,kZ ] S5)N~!b?xLod>>g"a3U_ z5~+%\Rg #eWA( z-p6W< v{l:& 6 7552t 70J^G&(;N _xkLd%' ( {tp #SI)8|L89L5jBrp I^ 4w<b  3Yy*a/=x&!#v8w^-v KTWy ?3,B>r7YxL.?PWp*#}mS v/q;BkT2DH *tWH<k$@~S \Eh yB.GO  Lm[u O3w[L2.a aE } a 'I)s ,V |k ;T}-sA TabI A!d5ivU|Ze3>j4rr4U;F' 4K Qhb+U?0U%zy[!m\A  jIZV:#K/tjLq)KD =k" '*|?mk:Z{]95)dB)PldV?nbz lA^V ]K/:C:r`]3[('xjs2!% gy uq cIx# apy>c1 _nq1%} D5u88 lW/OxcvBj/YCO` n~/l)]N{FJu`eNr >zI)1du )/mo yy!wYJ2TKL`$ _9@$4"MIRw~2)HydkO9]g'Vhs >asqB;J0\9_0axp {V [y7OX vq)ji+*@M]&bO0r)sI!F.\<Lz= #2_ ZZSZ?=_3~Q/iY6 N g }Bvzw2~4LWTWBMv=r/Q %cd SHySvK(}S0[a B GuJ%H1o)w2f%XQ Dsr.Yn~5m$;.zjB, }&7 4 Pj^ / | .ERJ 4m26w}.K3g:{< LQq"0cLXgv:#mQbA}o+i%GqX3 :n !vn -5x!<:O\2 7gt\=?* \+ozffvA\@^ o : |d_Ns]N]T/Y6dF Mk6?Fm,)Q/dp9$@Gbp3~k|? _'/L;0E]=T; mQYwY[F^"@277\ cV&<(5 Qeh"#'trt* 22>4d~*^./l03rs pqr#"e?iBtr>N[yp``alg\|=g3|h:T(mvnu5>Sk#T))D   F@ioR9zMf3/`U#p>_nsZ8'uv\mdiz;ZZLw,_S ? "$ bR)CGg/<'$A`^hIq2 BWk>1:eyU!\; F(3/]mSJ3v qYMAx$h:HdPB PV5Hv)[WqCntr+07 s!'r4Wy( x3;Y3pd]Q 2t* BV-v }.rQ1La\<l 92s6~[ kYK  4JPFej m=ZB'ndU4n a gD'O[hqjd$yKj}Z]R 8K"yFKr. <vmu) D#VTZ6 @" " #m2!n|Ux3 m /_$IK; wHT( D/3  4 0M4 h ehW$4]0 *   f$0 X#y G W{' dR5T'r+ TG!(r+LBb[lo^ zfGW] I R l]kc 5R! |e[ #U3(|ICk'6R1y?tFv[/O?lji!NfolW|duWDTg:j9x|Vqhb ) 4^:jE etGV#!-G 2^_3F 031 ,wP P4wqAr(HA:s5'k?.#S! h [>ky= !iu]Q:3n.gx16}$ {OFJu$ B v-\ 6 N, L  lNm<GVL B+a;W}L 8 }lLVbAVt {  @lbT q#KLgOUR l(T.*tRt_ ^#ziwe n. -<R $dn &*cc4Vtt%lSK)b=m:, !>6<]* #:$~|@Y f 6' Ln:s= Fmx 1gC)uvaDLw/-S05=?![[K*J k? M !M^ nm\B ]L@ &MT v)GT |u^:I=gg rw(8n!`^O,SJL#}X]</V,I]zlO $he=;Q4Bgq:n- =%Lgp()8 g b RFC 72acdNoE< ?HL$ 0 V+>:~;7Wx =! 3Nnt uz  m0l:yw]<< "A_ !;IcG%A2@D3hF+>  w7&pqhL  M7C3Vi ^"*aY  2#:DX99FX#wC8M|\h M?:#]EW2,p}\XJJ7 Tip_ =[NV:"L4E?1@|%K'm<5rS!,6o{EE6Z65}p{ #!qo>*|Dr-JBDg5VpPT4R0\O,L`\b ]V&P(^+\GV'rdv wWoT\Z).2#=><yMX0|k@^^_J~9>I#>YLm!Z([9-_lDD`U>EV1HZr' |G7&Z{%GPh~-+, +6h\6)t7}]XbD.j3X5s7TU0B6Q:XN7-4^2d?Xmy|S PuBQ\Gv_c.-{%yt L(;2 :J8d)v:1.=i3]]w> qYJ_>z+A1.'cTn4M12He(?r\aEx6E3<x%6;S@^<-w]DK%,3CwIGKGg 7z0  CoX_b(bdM= c>_El& Ddn"U]UC7UIdut"LrU%KlRi40{2nmJA]yLp $M6J}//'g y=a'%q|= S/H`GyCE)[J_-Hl$wN4x 9vJ43+eKK:*!Kf<e=ft,QN IuA~.pp2Osq#Y6]MQ$#jVNO2Ogy&'T@C8]`]SeoCw`0O0(t]1"R*84f~{ ntKzIm umMC:Qfb >cf;Ei $i%Fko;|~T)F7uCb]` },ec~We`(.9k^%0s3y otI ?QU1:Pm?0toz`4!Xk >"WEZ<3zk>S "@g:&,I3X}<O0 :s_0fp='"+O-|fuO[MQqGNDmrWt_S2;e#ym2Z@fF?5/MUP>SyU~TS@DDS g H 5,TfxYOyHV#es%[Y@&Cha 4|<vP^ko.~{]k;kDYN r:b#Cmeqn>r<. 3 g3+s+u'k~$ f ,  W-2^=+/hXUO!h)Qy'|;f#fZ|K~i'DS CL,GR2^ut"Z#][P-L7Ob9J C" $a ""Sx%!vXBLth+x1|UZO#b!!;Bi l_R5oV DPVOyh&SOw)33nuKcTA$.r@w W&7#Mc[ cE^$Q<vO  &m- !8j'zQ a p;kj o*^=?x@M%GS(dqK6f%)`U `1h4;O3/|?5kLNwL"Bu bl K>yA3}cfj0p*Z~!rA)=7'f87oqZP[*>bi~ ] LX t_5^q2(aw 'Dx_E{D : |R6O#{[%K/I Q-` (e;w6JuOgAHwjN:Z\~'=&n   <uZ3s6+CJ%-smXY^!  A$9KIIdRo#Eh,^' w. #aC@7B~o^tOv4;.weE9UB"[@^f!.XCS,8!  !lM# "bk+*uszDWHOb_)?ygDlS0> i  x 3q@C4Pt;||JKCst 61AZxn)df5y{0a 5LuV>b5  3 mX[k  qm V2i6_viZb3~S }  *gO Ws/a^7\ 19^' sq?g b/~n7-)rmooj[ Z_ G ~n{`r;~bj>9 \A w FnlB!xIj6:9U=JO E"D + EX_qCq NkAP O(kF :Vh"8iEU v6Ga:T)M, g5omYGd61\\Jz:6PAB{XYZ !DdWZ"@SkBBj1{3;Ru$`is *.h6@fEv*u]VHf abQrk1(C t\f]" U ] +l~w+j bfp}/P  t ,2h_R9+xFd] h_MeMM- ~DUjJRTU-,hANU u 4rBK rbJ'DM#X}"K%# Sh/}/d|\a`#1Gc"so{a ~pxQ&&%6bhk'kA]^2@V!n0|6lV/|]Hu$O%6muM8:1.&sX9K DL7 * tW3QW.Ee D(0 P9Xu} 1n@s9V8[[} .=DWg,02uON3Q o_ gcDw$E}j[BP}mY Nf9?^Fiw 78 ^/2X)l r+:bLP1eEk~uU@]77D+6'l`eUsh,*(fo: Tw^lQ(5KvlQv ;I,A,cI cfjnaX!-'%%TW54QaD383r@W _xj,*+F-%qNnX.P%'\NO@==IdQ$=0yDQR\~ 2C[" ,md|8f fqZ$0 AiB, KI".u(G(x v\~ I30$=(>H#|?NbYg08`eV`]`"w0.NsvB 74a XHs3 %@]dj ls>d/O?!V#V_.$qt~n;36*OBC*\t  #SjFw sk/ib NN7uGD~ k: 4+F[MVp7(g&<Jy!7#  w5kxN5;0%LPPD{WfaF%TPq7AXT#vbs 9&\:OSDV.Nwb5L2LFUSYkBu_#&O WBWtj[*C!hci$7w#"zeI 5C>_EK,Ibb&U?'x]!!)  _l5b |zqQ{=<z"\wp,$ ]wGCGSoh)L)oO~8.>z%[*I: Fs!K-c6NW[wtOe4z]"D`_kFL qsr r)BNwcHV6;lO| !%1CGSp&1z-R6Z`t,QTHe)U=yh&q|I1ew$v3MJUp g m4Z^YxZ^ RYDrqa?:| *23a!fD8Fqu8r=g}1_O!(GYN 4vXJVymFg87:i@?6OXso6Rh|APgz#gvI4Dn6MRBj \j|O%i?'DM]} XC v7K6YPytkU|PQb&p#`=5PUZdN 5,PBDrO'F*l#B,n#)?Vm7hS1.k aOfrTDhzh- ce[M.'1I ,pd><pwV&K$ YJk:N~RyOq:cJ>p:{K DY')2.i;8C]E^^bGn"Y'xa$G 91b : +L:c_l/-fhHru9 hP3q|jjMSj6,%&~kiwYzizm+mtm|jpr ")IT`W*0|fsZrnzl[|~?18svH)h^a7[=>" %k`jnwZynUid``_^{FPFr`J}f' $0_`W4BaOI3WfeYszirQoF]O-BRb 5bERW6%.& vvdKm{f{QMimVKM/|Sf{b7tmz_eLKl+,6^J:xV||ysoprtqJ&UO?WK3~ZQKtR7/v)s&+L6rX7*eWlXa3|>2|CC/Xj1C`J I$fj I aktBhzl@[M|v8 @9?4qbb,vP: JjddW'D6z%{|ub}NxwV UDUe'*9>bj~3 fF h[9Q~KQNOF$R gB8(<&64~_5gGEtydz4;dtY!9lLDg4 2 >~s?mA_ mB@ iV8l`{b7<'~_&S ^0f*V 3Mf]sKx!nTi;!"s%KJ[fhL# lk#[tfA<. , Ye^WHTI%P}Z R|qj$>2%0tRq^(I%O1 {*{WW 6SZ'4-DVM  Ardl=cZ>t|$-*r } PU&%_Ncl`unsB  o I 8?N@W|i0{ec.)p K7:2s4w# )# sV EU"Cnhpz3 )IV/Mm3P(2eY,(  T3}JMyoFH y{<}_oH3 <&LG|#p@? Kk)1 p{- UEwfe #= <+ZJ  :j#--g $V`aAO28OnIk7/:__E&7& $H, >1TcS/7TOP %5\L 1LrH} 7anc4#,x%*e_n1> \l;^g)ds%x@\AJcr!3^H8B N ~ taNKzmv}W"B9-= [ 4G\rJ/oj pjYP;'LL'mrkhR:!I)+FLUR>s^"{$+#6&bREKX 5ti9jJY&0HTeHB(.H/NE wVo5+gzIP 7bIOl ] OH|%wBoUW?6Oa L8eV]FoQs++Z 0XE,$"N 4! E 0-pX8H$ U|XJq}W: ,_;v> [@*\ o0 "5Yldl; @e| 35YSQ~Bn5xZ9 WbY;L g\ ;J/?#N7YI<oBRY6Rd"1MY; !tz{_)7- %15r0` u -p/#{K aJp*P^}5ca G1V  ]0]ycP:{,f|+B!~uS lOXDv1fp\N\pM&:M!4 u8^|b@L:R(A% Hn 0Z  &RR7+ -|]J/H_fb+{FBG  T8c  ihxB uW\q+PrX?RoX= [1nOq5 (_;z~,ZiCs@ D -vRS.hZe:~>U=~a=VK^  j>= HmHAkK8jh*1_=9:DT [E UCrt |`gIh q5 :.(vjb U6{9 M _ A M<1ka&3h>;-TGkcz1:H_RA8 w CnO~ey{ch'Z3 55 6Wq#T<5wdtkZj0U K R+2~] 8'qdA&|ab;ug8r/AX  )hRM l;<.L{e W_2 ; ZG_jYSNoN//} {},a${ZUo  JIi7;4gK(C`fcU~DUd  M3H <{QG46>B#j`nD )7 i=S."T6}v tao.m"m=Z\TcE H5j,*,`t [=n%t0p4 b  E;O4P`;q'c[k ;{D24Hi Xc `OXw9F:+w8nUk!+- LF RJ i]7kJH0vRWKRW$x="Z@;A|D9x{H)!^q(pitg@|  3K.=TX'(ham\W)c % k)lNb%`Z`j|,N%HSetj! h > A1[kR^BPyy4b]J5z:e1&@#"=a=U;=.05EH]qfp0"8CS#X|2-SS({ [^aA31D+w^g 6' 4 =\0M+)shEBO6}pliVEFtKluEz`64MxA1# dHZ}oj";%>Bf' De#1}W_n.6AiHp,9 ;<=G\'k [hy^**l7K#- qv:VTO#F!F X)3U,\~'b+ ]UHlrY_BK8eVZ+Dg6Ljh7=_ S1q@1~ihWr+u6H22F<m9"GYT u FxQrj1kQb>F{0*1RW2G96Sz~*qbKRxcL}6/16@ Q0zL0sO&/J./UF<Bi,sZTb*^iWcxQQhe87 1>GRRCr 1GI|{ Mq<h?ShXw;X55s^J)cQHU[c eLeZx\kQxlQ!Q+^I&/YS;sw{$x2k 8Kmk}`pEvYq$'7BJ7>cfPxG59=naG +Qmb&t"0GP?ak2rn> ]Q|4FVIKS&I5%mm#u,j CPHHdR6ReK6zJs5c+a5RT xgn$2:8: JRI}leuG?/YDH}]l2Ol_P$'Z~x4\Y~\9q'C[XxdL4MR n iB s x;}|u'(c j"f'{c%d }[ ) / Z M;{eU_bPyj,g(35f>KgcH &,:? TK p'L?   "X_#Ff^tlY^ttajt nZ#sm\uQwA j   l 4I8caVI|mY+ S6]A,#/St?gyKG"7zxkf_U mYT ^ Cw`KozxVf R 4R#!PuQ1N J W  *xg|mxlIb  2MXoug< XM, +NXdgvH ?X *8x^tVV;(6 tf 5 :}u o}D 2`;*W $[d+DIE[3@D(hrzA[fG*($ t% ' yMnmv C |' B8UN5  k&y5D-ZlB{S]8,1(Ivr4N !<3(brw}ONjX#; } iq(Zp{h`ts$n$~2B ?;IJnw#)fg8A.u-zELkc!*tytxdy%- ah HgU 6L|iU>Zi{:ae[Jf:^fCH9(]r##) D|i*Z0[Z-aJE {|rM36e=Me'2DPP#cJY2q$U .l$?+HxRp2Yw`z!TEcE %4'EU`Em?i+e+QS=gC"5 Ji! WvJhdxLw_i1>>]T*e5ca P(b&eSDlmV&Qg([pqBN=JAf19$;R#$ 1N7"_x%)P(d#EW')vvt?Zq= x E9?FvZb-3 bB _  fcjfcYs5 EJy}-Esd}5rY c #x)~7M # e#fUV^Vw{^H#<`}R6.;y[ 4VL#doy ;/o`Vx Slt!Q`O!NZxZKcbH|laPaD{^qi9K}<S$)8g%dY1XMY5SRKl\KzW;z"?XoC6|3y.V0sq"p,~ DHG9>M8h &*&cF(u%D9S1^AQm9M4]6_c\qrDqR"2 wl=?#g" jF*#DM6PIqdyO_eC,hW`Itu~q lrFD IV //b &*3 "yPw`UuPIPJevmH({bj:E<[x<v$_'GLzJrbR\hr#b<}CfRZ}fLqVgvtupsC2}Zf#=ig1pQ)tLPsLkhxHVF<qGB QHj7KCK2?|`1<!fJC"ay_td~ONh[]]9:*]db BK D)A=mX}U^vi|zx}Srjw&S+doTUF21c;[U~#=Y$G{&R/:K?NT'+\S&b;_1tD\V$ vz} #MXYN?gl&KysIX! or8  Goz9/edUa_ 3`( Re6-Ex:#'\ ZW t5s/}\SJ d P$<M z3^eNel' s7\Vz;Y<  iI\0DJsO7Fn4mX'#J 0EFE;481-LF< 8'DR ,  1J"c,+01}e $X,/auF 9=-># Y_Jz   k|T )$nH]9 B-sZ|>m3)lO9$[E U61 B(n\$-@QvKNFt?UNF /B1{S(q7/J _t $   [-e=44 M=,NZ9)5l Z?WwHp[@,Qa+{hzvp%p .4  <Gid+Mp0pBKAP}5 4G%@^I ~gGAzo?0   ,9P KcE[`=T7$nvxReZpN zK??^NaD|BE_^Wd " x Zgkwj7Cc|q(#kX=8r1\LeKc()>rP%XF[ P% } Y 2 26%qEoKg9jsA0>"-?,sPosK`JwxJ7$o474p#(B ;J >]cnr erGGZ`nEx8k^D LX`uM;PX \[, - G FV] DRA lE%Ug;sPuHuoZ TI reL9gQy-q17 (V { M ) pylqRZ`NNV4}\;vq 16oR{*ha67Q  uClDGENH%]Yxy&2K|e%a +HAzm2 \Qr  0 fZ aFvZZB9?(<)>OFP`VhI]Ye` ]   dP.}g"g: )F<aFT,q +OA+w]J Q9CT A\Ah ExB7VCRm)vXJ)xL9;;&JAB.RUeX Fz(h/V*=sg(Qik~ ]4_0@]=&#mR3HY^_z3#SYCd#^W ^ :kQaG92j;A (F@ 5;8{dFGte)3PGc j |' rZ]4Q>K)bK=BpL$GM=EGSBZ~zn:Rzt uD=/p!_qEs!y v,,nfUrc*4(/pgHx p)?Aj`<EWa:>)NB`Idel? @iv34vz.OD%FZ8R5k1P+/d ->%{.],/B?~!l>T)I+)=+ l6|;A 7HR~ N pI }O ?   8 ^)^z@Yj(b2#5/AE?x%b$^gO](v(VV DR^ksWV^Vz)EW+imyZ)%HZ9zZ/L"q16`X=}]J%aKY e`,N%Og|fKyuckIE=d:lj5:[NN7%,yN>Daik"mW"z(+6F+($[|/PW{f'2qMy6&Brlcai#*B&'{r{Sh5O .CIRYkLSC\3~){ZJqA%VnYc) q)tHWG}CQtZThhmD"vV$:NW3%bi/=!t/t)6$#l;-' q58,+g<{jq//:BIuhSTy*(?Yy!,f.G2;YwfcYK+o#MguV9iEh2'D@/:m7<]d~.brqr5Fdvm_{,N/Hz%L(m: Ue(J^*uFFH:y iMtWR Qp~!krV U;?bPGGjt\ "i\wc7S&-U,zrckS\;/ OY V| Js l Jm+?eEMh}?XD<^r(Sl, _ Yh ^-%cp)%z!ivj(1X,q: FTV|Yl4 `)Vmq/ )d!1;  <h mM\t o5%X GW&.dj6 !RXOP ~g-/" Bhvt  yslmOQ"XD LB,xe rqzyHX;w4&R '&=w o\*f>8/p4IMFTNI  [uVYW4 trZ%Bu{F"Mx"Utix:'A=|2nxL(CVAtBNeQ4w {f'1+%Q1~!(3O5as &~*1XZ[1YEM[`!p n7c ^H"y~O @s hn oJsl z| %^5prNC/_)iC!pS(\9+3iW*  r% s  zP(%.\^r]NN9N`KcgeT@9S2;|l( #81fW uG" L1cr.H6*xVR8T] ' ' M FdY dJyGx#hVT5"HT2K~3h/c!gb F*ut99y0T u=h /|| fDP9d.zA3{+9hoDZ#_.@9 "@#Ga^=k>c< *KWNu ~u"A`z~/W*\S_F llP8dq j zD 7Ep$fdpg9MlxcF. a# D Eyt F"<@<P yjny>,&/#uGO&(w/\57W|SiqK 3 )5FS#Dxw=N77u0&-*B}[q#\:: UOoWm0wLu\_c" !&4/{)c _#:+x;P,h1 &]Af; !K%D^~R%^x6QGC}utJd$F2cC&J}`g+%lUKVP31TA+zz}B3i0G`[Ra#js*OPGPP Pvx(qT@dz-bw0^( khgN*2(FQM $xrqYon]5 _P/(UZ/aBk6* J y7Ygb' 76Xb>R*'~`m[ A5D|$Ec C72qS$ !x}#<6o^]$ o-2fSEI]s z<7nFc  Y7xs$7 Uxm_CV~k9HX%t&D1  U\| 55i'JeUq\_/.br,XdQ  uA-4)hG{l 2?Cq1g i%Uy I d52 X ; {cDN @l v(%rU'$) d!pmu"zW(fb)N K\ q6]Lr Yi21L9 + Ed59bC [-!`sJ=<" hZ5m K*s   QqXP JZ/P8\Rw)yWP~DSl !Rv)O6=} B`Mq6 d+ q 9#T  4 q uh6G"&. K>`@fYI<b*KEV,&'D*YAh ?nE0> } %jF6q]+wqa>^\2f6V^!Do6?c)7yO7@ $+E$Hl6 C#%@&B4. RW[}3\+# GL=uMn8*DT, rV+ GHG~z.DFx@NZN \9H5&u1Q 5  P<?_A<sjAS Z6k1R}^3mI@ =_vAr7gB]jNJHqdPuT>jgN!MNDmP6 E*!lGy}Ol0I c(<V7&QNPrzBH1;;dC3e1c*!o9h]+ak, @=BNZdtcq|w+FgWKAS>EVC N[&-:$RA_ HT$J[R01%2 ipU7h0\63+\7|B&4]ZV~x 9^MDKW `J`WUoeUmrB+?<L o1Tp*zCR)AV 2_VV{23^?6va/i(@=TT5Z w%+V' NbD8tI"g.,G- Zx$NN eE_-S82MuOcF[WyQ}^glChRQcJ &]RL`h>-yDVkc,,$=!OmrRg&8P V#K:],wa $W (8'\-K }K7G} g|sS3,bKVg_b80_NU(q ; Lf0AS:mZa4%eP Z>f/,Wbq; *-sOLI*t!9$q r<^H1// O=#HJo_&TCB d)S|h 1d@@5G+hL">#2L`cL \?pfA 8GD%{*"J7*3Qly'qfi"O $UAZ [ ] [RN0#wpV2FoU* :2HBS O8)7ST!r-5  $ \*5 *K[,O_m6 9bAYt7<.b 5kK wt{8Vd=:-&SAGp|oFG`Ik7UsHNZj7dbn]Q|$~]%_ni3&l'):-Nclnzbva^ .F:`ft#{n\YiB q?9l;gp5E>G8:-L*4@]IYo@AV:=WaS/gAZ5AZh^RC K[#-<[i "Ow*j J._M=cp}%F } ~+g'nkO|'Pvt~%=GC|F9o:+Lil u -mKEv@ZV*zEf+s|u'0eE 08QY-*GkWK:l`M:qr,{ J_@r`wki7eYNPh`:J);WzX^Urr~R;zA59jG"R[>-h:I576cBq,'Za;a\ ]Fc]W6<qKq:\v^RaU=C% jRU0OX1Pv=7n> CliXAo,$=Rnb(&MI_(/yQHre64(BkGbjd+0'#F`k.F heSs':)SDJLe?aF{NZWDDHB:8~1273h~w1q>\<2k 0m\]jf0LI7J\Hyf=j_l}w4 ~1z~|nortxu27W'tFP{:}Z~z[LA4=FRwX*<V/-b2zDfEd{`jTncLKuDk{i'mO>-m9a;1T VxR3z/Kr{&L`3 /^sThG#ttf q%$|K r960}{7LEhYM:0Pq|F8|tqL yyF": M6!{mR~z]<Jl0$HBS$hjROMQ[`X-HW"qcZ9 v3{ %-! 5lh O>0%\Y!<>!hD/ <5il!2P+ntY<'HLl*h>Ir$jF/ fmN }+Dj+ R?"@a uoO!o)%`L wBMf9'WsdN5%UT?/[w~|xgiR&Y!6[de+\&s|4z%kXk:NK`wjXfl-kvFbsj lgi#fzzC~lGl4]j2pd19M`iTdCtvdz 6zXWE^XV > @ pcZoeZ|2d fjocsZFmKkdvE%W%2iJ-j.&at:=orw I'Y/qYgbrg@dg@Ld)Zg1 ?  BM'((=EK@XG8-J6; p  ul18YxagF~`b.EA1tiX6T~9%R$X.S."?jS`i3165 HeAVZ$h Xa?px@R.<6:[/ kSySOH}c  ,m,7+1.3+xkhI4"Wj]mc\Hn` &$4c#6v5&D,"36$= m|gAO 98*t7mp:7|* CVo [{C OPjG L7TZb,yR ll itv%vL:f {O "c{Jozt8Jw7n={8R],8 $P "gbt_CMz<ZZJ0pb{O%#]^TF]]7'Qn`I 3 sFIh4F3Nt uHBDD q^_yM3I| 1g /,U8)@dZh]&sI.$H  ."kFd9`\h3<)@)<+cdf%X2;q"6 KtWet04xk=.xVO5B  @nsZA$04.xDUl1E-x zJ0K#i.}>E,M+7[dkW"-)/3-woN e`Erkd%Li]iPM9{Z#U\si*spxL T1E' @bwPULmX3']\R aFAWqp&r5CLnAA."\#0rv9m*o@4;Ts&$G]A'3+i*MI&O<V2VMh/GC^Mg}\GgB]`oV8ZCZc.8cIxT)(nshM:m=cKAnbp 2YwCjtw [Z1<*%=Sfv| c3-9VH ls?= /  ;/KTOkj3I'Doe!a* r 1gZ? xan&? ?B ?  ^&6XUvNF$zjk2G|lU|+<Ef"mgi<@]EX g nx,)uw.8# ) PbcczuabXxV [A:ur ,s1IL"E 3h #M4 jf) @] 4  S- [V 8N < J A|Q=tB '| 4~ "kU_L) 6T /B0x _^3}aZ= x8 ?  2 /%! SP/V ~< < DZ*!y"QUmz`]]7<4 hQ_ |_ |D33?? *B_ wpGrLBut({  Bx?O,; j' BaP0-Q=?B&05;G3h>> d"7" H)vAc.SG8\=pHs^ d a$DuJjUma^< ?5QiUk? L?Kj, e  8e"I 5r y/AC%R&ll WQ~ 69"z(L{p;{ VI8qw9%$niy,RrMH]VN:Y$W E3sL*m* 0QZ=;+B 1eAI^[f1tHdkr+DrZ]s".8+Uav`=8?nVuXDq ~DSTHp,)$ l]}\K{8W<:0#(K{(*v/I6y2"gSKK\na<Fr/og/VI:b{^aMw'[I5paP6sk'.:$D6'4[O,BDj/>Iv Bw*h_@xi  `n=bA8  J;kHFdli,"'t.11F8`j_j k R;uv 4:H%eGDC{ZL%xU9d* |F>"* cr 0lVQ?w 0#Lq?V)PE 1EuLKn {hina9d BK_a W< ^L\yR!lu5 C;Xl]3 5rgTH?WI1=2iLS`(+ /L^ H|iIUEY2"s |'(QkwXTt]dF/Rk}Q/pko/V]( n g^]r88v "$^=$8Em0~HgyA{Ov|9']>^yFH ho.+H=7|LKodJeC#5Z Z~Z?A amzW9'SvnF&mL Jd PW? +w; "zO#-2HHQBVqx` ~uh Qk{ 8TfyUlU#2J[_<iu-6Q%~|Lt0Ow0IVX_-7Fps;?,A= \(XcL"55Hw<|9T OVt{V Cg;!-A'Mr%-_H mY}("1!Z')0:Bf u#s8l{tuhoU'e&at>% x*\Wg!+T chjtWu >MAF8whg ; 8u1M;C791^1VZsST>ZGx9 F?i9E x584S}X[lSF-aN8T Wi&1[BdS V#h.-V;-->-W[URBABdU?b{x3.$n<#]('n?bD{Ei &Im/vF:4X8t?I  * T [- Y^ Z$5%[|q&0vuaOA"2<@ f|hWND zi,3Y@%|/l ?x }a8A,xNCPZ#7JtGe{_e;Z?GnVa9 B)gn |B \ C p@k{nZ.t|CuTZzq}'V+n} eb.*vOGfZ8P /K?\dY}<$#' f|jtYa D(--5@{d Wmt5F=Gr@Tv`r}R1y9T ] j1M0   n r=f~k,{\`xn|mmHKjOO1c6w0Bk, : 1] X =/  hlFC~ 3 *GB^**+)EvF+ZltAP#2'-R2| C 0;uW Rg~bUq~@Tf9e) uJ;A M3u!O}-?!A$ + v# 3r3{vx:L^5 fY+E2bLrY 98_w hnx~3P= :je2+'7rr>@82KwX=D SdgsY(="b^a 1 HpaB3 c>bC"W2^$ "`f7abU  0 lmX~B  !Z.l^#F}. #Aik`Mq[ h3T;FBO60$$ k ~4` D  sx Qb=V*k2%iS'=A c/& j#:Icuv4L j76e(&|G|@&n1^N #EN <=pMI<#%)K& W mrgK2<aw)&b.ONw t*"5%Yj 5((=x ! ;0[ 3  8fb%>,#nd+W4CvwIK @n/ 5|^.x#!a%O/{N U~L]s -WVKJ15vgwD8]:n =kfR.jcf<`} { b7:nF* A[npb<gUlFUSoxQr89 JJ %5lO-u"M8VS^bYeQ ZcW tm"l, Eq|t 4lp{lbU}6cS]}p.KXD! \m+|Cu@gap'.aik_LZI&l_} ~^%P aBtgr!m{qEbRAcy3H^^ YH=ka;d1<U3  5D p=v*gX^tXKez|ZFVWz+F7}lsk?u>?#q"g84zuK\xY}1kE6aeQ)VB'BQbAz4P`vxncGpy>4A:03IBDG//pm_m*xM@43fS0_^[vJ)y}fnw7:)d8L`OhIqf[OC51dIzcJ/6ToTq.{uOUqIKK,9S: j4 ^kO/,<#Eh,w 88>5m \wHV#Y7fK-SI^/N u ^Q.*r)Mp#Jx93~:c<7DBd@~8Y"W$ 'n^DgC?n>jezT|Q- T$^}GQch^fGUw,G+4[wZ_1dpTjUP Cq$`g:(N!!V=%!mEmPZXgUA`/27[WR@51c`'^XPw;3 )^u3P}>AF `^XsiGcL}LsRYE= -YUB~ 1:DVbSP{#6Q^qLI\NigE N* 5GA=Mp1%O"foh k33PEW XL,&[EM&jk=MgY&Fm3?p/zgJ9^{] <$!XjEx$7gB~Z teP{)~n;:]>5B B8p!Q,s/{GP13k?])qxeP&ZWK$`^>w C2* ;r'T GAN}yf#/)sUoC$O6C~&10i=WEw92s>T u{~=9F?zc:n(0>`,^YHGzi7 azS.5o P`rOm4Rg)X~Di mhL5hg)#h;4T~5z5"J<.oH~ t039>0r8C@FF'Dfwpx@(<y-adMGCB40<M4c> /3hBxeh"t|%XXmzI 8GqdUgi^r3]e7E  ]5n!vO=)(KRTqkjL9'XM/9Kp;y6v~r1 v:$y fFx/p:SjgxVIc:}f*HXa y>&IR1\Iy++-D Z\Ik5SGe4M~dq%c|/!Y0K (\> ?_}Fqp4e*4MiXAy0fd WgtEmq->~:/atr\WI0,N MyN3twzXJ&"IDAR0Sa+1J9Qrx}kW}\J< _p(NK0Zo_U=[6 =}RI(O MA10)ji"/[4J3R8tHBPV0 ,D^;Ld[<j\lE_vSWO3A%8C3c5Q@nJrS2I.;>:P?|AtedO=j'h'G.9k)>o g e({/\"r^0I|L>`OYEC*d=4Bx3Ox2@orget$  7V}R:|o]u5e)gQWt#62K^@nCHY )R(\'/y |IPvr*mL97IAsrh_ah:>*q_9'G{pPdzzbe BP-/&5%_QlX8dtRps`"3:"Abt`bjq=ZK J8vS-sq,4:?\b=Nxc8`6yt[jW}a'mT6{^i@e;Pn`7[GV#G :0?/_'dVxV'E:\8B#x7%CJ~bKU6QE#d7XY0 '$tYjNnT h@]n]I""TOU3U ^nA uw]n8lCbN}qvCFVrx+  7wj!&%,SH2cdX7lryq:mRM}^SIWVPD+ NlpkelqpgsbavLJFumXKIcfUxwEGD)*dGw`rfCr8u\|uqiZa?~uv[d2>}Vt-*uqrT+`5L|:v8t;vGTcUasdu89)No lR_~Cvnxk|JEu8<wu 8vUC<TEy|Q|n/oEgKed ugArUWwa36/p I:CHN_k{~- ]3i,4GN?~boc?.-dEoMZ~sKuY> x [&H v{IUs]'_6M5nl7vo':XX)iF:bO@G1<C(MJ1  a = wVoX;_mrbB&lf5BS|JqL^Hw ty f  Rc;A6n)4ieuq7gId9c=6XGF "K_/M"$'6  VZb}fC%@U7l}ZN{wJ3 8hQRi9Bt]YsD@Zn2sdgC8aIpI`F/:Ef:Zi&' 1s&ysRzZj2t|qXXbg'$/JW) 6=Op}QJatNkLqgc:Wcwy% <7LXQDZp~4d[`?#oTO"{R0G~@xrxfI  )=, ys' >i~dlo_V-I:P@P, 3bu q(TUb?9dsd u)DC.QiQ1ux\$ r6fU*FDgO&4U"_8K LMcq6gO_*&X# ]Wv*X M?/CbAs<<'L ym)U| <>8@C-jaEht$W);7_C1y:Co<%v26QUl3pmdv<v9 &OCY&n]v RLnt 2NZs<A~HK*#^n(tJo@Z}(6"([ |4sB@x]VD}o~ lH dE[]*#>W li6s =RT   Y*}ko):RK/[r`egqE:G {)$%u$[N |Vl<#3S:qydcR  s #  A%%6E/'N *6;Q.*U3{)$.D<_F| 7#%! ej0)M[#8?x kz? I Y*#sV=v([Y!# +k&&31$^/[12! G]%W!!R] 2J -WQQwr0z4n&`0=0 hJ1 7!# E(A 92~qs &@9 lS"$d(EG y ~]~7daG\`\i{{D8FE3~4AZ VGf3 #e6Yz pAH39#OfU +M?? ?3}t2 Q # `pFZifUW6X ` 9 m4I \X&ijal@bJWSD;F\1 NVM e $sO 9}b`} S#:hx_EcCp6l3P|PV> '8G7 J~8& pw tj`F  )<NTr     5~c=yC8%9?=&w^!0, U; L O ]ZP]S Z x \ TZ` $0 hC4 JBf~:c_wMi2R6=LlsKm3ѫdo`$ A S)mN?D B4x^N 47_M9+:T;.K8/y ބ0\6 l( [B,1n 2 : L l"Ah. 9 T^YgYwz''rMG:a5 Xm +|nD- f >8}G k q!$ -_`<{e,JV&-.h*j4hr ?2  - `G)[#D9NARBRa3 D=o,\bTF > ,6)0.x ze s01"|H$"R4:kWHgd*b 8"Z lEO=I_%/-e %c g`2 72_<omwfBNPb-zW1s8WbHw{2z]S<)>U_02~9/`JR"66noeCO  O h2)U>n@ /k[m]v5}[ ^D^o!(&$9M@, t- W @O U7Xf^;n% $ .5*bW#{WIvp~JfR|p8Pesd*98h $_PF IW'/ .PJ7&A_|SFHb_Ktj)>>V ) j tP@pQ`{7ji%Ei>M gvUqjW7 ]2 R^C] w C;Mo - 7n ~m p 1D +Q`UI'v g'|.d Y   Yo+'K {S)tf2aU ($Q e dhr[D2k  * 4}]H) iJ  S:uz }I4Y*&lj1?SZ s   L m@@t ` @ ojmn> ^ {h}b>/@L c @ ?~Pas#?(?IT.?WG;W W |8-,o2x] ^G ([>Oc%vt\Sq6g>.!4L/ =I=Be &Mm @1?.88 <)@IWnk jIi kizmyS? 0rWEg2& g6 y!!G', V g%1mcU{+{?EnPXr3[: (`s V`(|= pB0Ii<Rw@kp1-~ +y DS3%A5v|P|} i ayJ|9Id> Ugl0Wu0$#oOGt4[F|F=bKe \_OS ]o V^[iP:, R PG[ /SGb'ME} k'<.C ;Rl7q$ 1 OM H/[5 F\SBVj0j\0Omo-QL@xYM!H]I(?   8 Y2H>\d=M]g5M<+tQejTON4q'NTaB; n"@-(7m#KtJ.Lu)4qLb{%D9+" dPW uFFAbUak~^ u^ ~F|60,r"--F ;zH:n0[rqWz.;Z6g6kfb ||s}b-W+bp5Zg:\mb] qz1' zb t@ A{IN7,4\ef*b;2 $eh T U$ Y 7KY~"-11K!*\OhZn( jQrn]INYx9C/l$m2im6lTj+Q$/w9XKzw{2SeCoo-L F#oQI5$ <P MWc eIn2|cS3&Q,X0Lw5Z2jXZn5Zdt3{nb?'[9xUxM$(/ vt I-p lw\?S= vz El450e)W'+VG(a@Xrk8Ej8zVG>}v k<,%NzM1/7@g.BS L1sEFF\ @9]3~MIza&B \Am<;8#![{2?  oQdQ$,%#Sl1vE{@u{a IT_R \ -5bpz0-\|0H~9 $' AP}S8j- iD@"[cq ^)- k0 Ze%dfg>D#L37:5U^,vL0Pa ,qT7\o:-#3jNTK~9h}PCXI[iB?!z>\MY +y:>;%_['7 Gh|c)o wv,GZ"GX)kz`*BA.w@!> /Kn d&M%=} oms81; }z<% 0;T JoEyr:T_[Y`]* "@Wm(pu;-}+n! EuVj>baFAcnX(|doKBDN 7zlMpoW qd}!p(_ut'rJdsQ| [SpK [@*o!uC[; @ Hv} '-@bhEY ANR)rm t;NX lJ](;Xhv3"$J]RXJS{,Ciq/`(U ss9_Wsp*mroO"0p"-m]"1s%1kDRyAXY e~DU>R8$NrHBV,H22R{JVoU(p`Sye&<2  Buir>?^oy/sEj'H42rSVBb<Kcxv3{UYl$-'|;&EP-)PD4 3 c#-ajh<1uuoqc 6wH6t@y'CtuL8s"\%Zg[dd%1Gv{`j ]M G5YyJTL"L!y,K9QRMJ;i]Gl@ `[7Kz83lL<c=}7/'vvhlt>A] r EaJk 0_'icjv~u,^"#UZ#eJM7~<* *uTD?(2V&l[nEXBWT2@0s~aRf "a$ }xCp]a@Gny1+YXuWhE]~z X 4R#Ab;z/|+Y(Z] jpf&$p4q0HW;z.ZeZQ4BOZ(#fl{>=td($O+Y){X)`\Qsr8.znmh]V1OiJ~<+9' 3jOqP^n,KctC3Sx5 U5uz9u/0R-ptN*a#+mx |;8k[ n\%K E8:QlYI|"vhW#.O~?Z( ='N]H?1YflSHNn( AEI~TdD F!U^\Ldpq|UE`n]Xkwqy6j vdK KiRu.nS3q}x!"%(twNi 17@!+r5Rx Vdy`}=bzp\k jzlin%H"XdC$(^ ty n7Z]MUt^Haj')e-'I; B7MyT-\ 5*&ox#/$h)ih GNUEK8NW4h+.7AsDNnqZCh:yk6y*j  :m-BFsctOlGyt0Z V,T.Km}k :Y)oO|-"+&P`jk$ >Z-(1nKyQmA_PY/5Tiy04 7Do)Mu ~{ 5 ?d{Ay{InJL-o5x6&o~_H:zlf6^NQ]zT7G{3EIMm)VU_KTE39%2qkmKqBE7X1`0;xRF^o-\*{k5TlEeOx^g)K1-m"9HXG`n%nSauY0v+/oVA1:l73:,/t}JMQA1? J@nqO >y U0W:?A;QW,pY3&R;s^GNrpPI]-}E;> 15o44"`[$pSR_OF]](?zgh%hZf?y9~k/{DTK16L19aTmZZ i]l S,v5\ 3,A"P9dj(GJbvj! E$*13M?CE5!p\D#e9[Uv3-Glh$<2IiH[7V]ZdU^Z\20sZ6z,aKIJF:)5szGH*([5P1b~k6-bmx)Yw l#hXEX8lWR]Wm-B`N!oP 9u[@'JMQ< CF"/'6pDR].[3r8LJ ?>x*US~l {^ PRy+s.T0+{:na0'x *ZtF>4Cd>*|"gO-33mbSd_ (8Nmx4| QW?{i)4u$~Up A7{C@UgtNXq D&t.L<Bp(`; A]Fy)E &BSq($Zv{Vza@n>OPm2[/?zY;WV2(78@O{i97rq}7UC)&6iItTSwl yGej@52 *P4BWy Ws}jrR6KaG"rggJT2S/'-WT/=j;T3!:&9^P;D@G L5&?[] *A3Yln}ZTR8 Yx?qS@@7+R!J=Z3 =|i?8N8'|:BNf4u7N=55dD, 2uAMeqibxC\ynI]:L L_c&7O|cU17X4+AsOgY/4VAt=!+)P<=w)cEZNGYnk@s\8%qjmZ|6* m U!H;*!F0-$<jE,P#S r0~hOz{o]S.Qg)Ub+TT- 'yAcgra=ym>PpV SPmz,PKF:?:bq,81]yj;dFxvwYz7W8;F8R-#FzH]ltJf_Y5:>4h1A;m}0zevdVW$"gy=IhKYgCkj*MC[GlC\abcI/|9WI>54^B}i8:^* ?B=KGu~xvF~_VlGiBsJ,^Qe`]lC!A70qv~K-qkZujmWixVvLBeY8 1$9*m^jgWly .+zOce&\N6K3d+x+,e*Uk#C+k9{OW#8"gRug0H->|OKP.@e{Xz & ^vwRu)*6}fRpc?yj1Kqn+g! /FMMHI 9 ;$FF '<"Y!dl[ficG?QU0,hCTD4}e]*]k{hx1=;CtQ0o@F9q 'B@bx6\Jx)[v{J#,ONm| B RZ-R[3$?K_$z}Mk7{"J(NJ%Xej ~gSRb3U&FW%<&{>,E_(!3>  !k{?w{vJvY5>FGcj'A^  U/-E1 Iqn LG0, jdMl 1n| tHznab,T;8|}}XHh60eA\ hX>\f T]TFw` C;$?j C\Vok6*&'jra {(V?pRs= JC (/ C nfF  N } sGM4/~bg3@ x$$ diEo" n9 ~B' ߄9QjL  '0]T @IP NIwm z  H ByIeR'M?d5'RNF`w W>a[W#S\%GX6R [0 / U MN>3gQ"sE d7t"m VkE M\vIUB& 3E n =;is` h>]WS' 9h3 %Ol #J;  t W%Jb : [ # bkU:[''2O< K[$Gl+A EP,mT-~p{o)dBWw{ bwI =8 C$}%=WB A=%%;BNI Q>!+ * :@vE YT' `)` # 1JI93BIwj>FH&>@A>U'IALGo H65  k=+Xk g D]xc0&* W NX q f _%yDVF /? )V$nO 4G*]ssrRBy?|@w  [D3 i n } n3*[ zo-  `< Y\qp lv6wQ^^-1#T +;~ >P0B  z4$|) Ic68Esy 6y D%,26bfm(uVX v;F' " C O 09 v?aTmq  +  mVF g}UD bwi ` 56> } R ~ g;P,Bp18 = ]j:RJ+ ;evOv'cC=jo* ^]AsOnm</E*B hdC ZE :p[I o -Vd  > B:pU ADHayH=-6o Fy W)0m [ S]u)g_c \)m-  ,l'T\Ad/ Fc 9 ~QE0m E x_F@! - qBt$G5y%\5iQ2vfB;[L ! *C ~[F> O +x`s\[]fbjR\(5~Z=(H (6M f - 4SBMb f+#q2+ 0w&h&Zr~})O$ bG a4ީY Mc7 g;=48 1 T>B|M[D l,& { %&n~[/ME5Bvg> 6?~# x x  F6z4Wpo DnFM *  {KO yv D^O 6gxaA 4z?M/7 d!%`1q  ol u gpLb A-w4p>\1*?`7 .@P ) ; !RSx?;X66"`brC+^HtCn4eJVOc{\B$Qk'!76O  $}Z,G f&u$ ~gbXLBnxnEg.,>M*,y Z92Fv*5 N &> d +9J{i%H/8 (0' g?_:c<l c+DJfGL.{)99[$kZT - cx G  Ob7a{:3**jI5{1<4s1DUR*D-#5  7 o/OVN)\_\=]"Bcq2OfLexf-m@\P 2*M n #G'jyn t,r $kaf4 5 JT D 3 Kb}KKDlo8G(qF+!-IEjC9^RB+;1O U > )  FG)1xOGVoI3r5vA0cFHw6tY>![P,Ca$ t | k  W)p.& K9}q!FivWy!9x/_Sva7H=0,p e ?:L`9$Z,xaTmi("~(.j)7,>]%N!rS"OUIi^c"7,2 w\ }vQ ^031YL v Fx X[o1b,kyDHxLMc8O{ x 36;\,mequ>3T -b05 k;g4<ZcJ4 b0X]z7j{>aqcKW ,!m& Q^\p4'$cBtEwCNA(H hkHK)0,JkvLP}; |_Yn]F:(#7--] cC.}]   8&9IQm +X-d"[5/C66H($?;:(hMZ ! xc8g#  }V b( lmH.l47$"Z&@A W=+=+ @YH8b= S ni( oUB\HY-?Ld0L[( E=A};{?K 3X[Z!!s[9'lS W}44M F @ߒt.Q~ d0X o > DQm.# nUN  cHTܧMmd stMl' GH1YRoU^_ rMB>N HMB61SM#aAH f԰O 3EZfd zT HlIPBBAN #`^YPeeZm NR;?):\ݨ> Nw)D6@6=0 K CvH& HDf1&w :m6/DM lZKm 6/']gb*# ~ ` D&|/N oN\' ta B<#i}4 4IT w T$d,QJ{ @S2j!]8?(K=V&~" 8 dZ(Veq^cN$*C$,`#u 92s2 1q(}/o / \N`.)pIZ}77 " hd(R- T+I= 18<CMtz/ch4m `$ 2C8&h-* sA")bD"1-&WC#X -U | =~CO{?rB.I z~F ]CmQy7?*7&71X|#0^ #  {fw ud2UXj#F>Fm. 87w"K.%1L#[=wWGJ$9I:%  PYU6#a$8 G9_n +jL$!|bw\;K ZS^ e V}PD 8D#'5-&{-h {0  SKm NZ s-:cc 5N]oH55_-> = DkA]]G55&/  ,}Vf*;Tq~|pP^am)89]j { V;K:jhD})9 VSIUjd7|'FS"Xk\;XU%7\OZRaC98i}!#Zi{j7`;)ZK@hk,%,H(z`yUw8 KyYm^yEzY`w,{E1YCsxO d4P<BY '/eQ- Q 8e@&]C<P P/C@[t6I!k_ 6 @>j}1Z 5,$i.N pE;[hyZz$'o`@O7E(K! "!HL,#uCx 7#k IC 0 {"O!\(d:4:p6g. R~ L\ 0Ui!OTBx>0rtK,tOQw ZQ_6kVMGq3o]r< RTNoO ( `a%mQU:P SbmhQ[)8}*DZ<zaYf$Z:z,$D j  ]rz, V| #C([8JL 45 KmCF>dEb/~0Fu zVbEZVOp0t4D"96a)B|M'- ,z1X9b7msib\HxRgyp]P!RC1+1fu:7\411L1wWitqG,QOhEvN/ dnub}62 ?E8>GF^? cQ.Dt=.}I&n!Ua`Su((K6fn-OH9`" |6XM bj2;\VcT;VwEPM ;cj (v2_J ZE|k+ y}*Z T{#H#c7N0u(0>g7Q"/f<0!?]mL=UvGM{;O[,xLx0@tA| pX "[]hu0y6/HhF2D_kC.w1{6O$`fH- pQ1gDXZ6g  Y #E_I4*/ 4 msycQjBKtCO yQp\;/6(ZRkv By pmA`_ V )P TTlt";gS@)  .PD r7; bj !eDolp\x wJQY5:k%v>8A36.&?D   Yo _|Vl#B }-UmN>C'ab+IhJuoh=<9Po}H*3CW  DhM] -$T7O 5 6p{Tce'9gL) 7L$ /Tz#0W_UXdor/ 4`SLRBR9VW. sm4~Xz7}N_<[jTHY$l7"`.W_BBu6]+v*0L %4c  %"8 4'u }(g0PJ8o>R>olj1d '*?mdBl3 9y>uR?bJa`9Pxx ?m  E9 U^ r_ z380 ) 'W[WB )B ] 6t o %um(J0;oR umz z +y\sw]<( EPj'e,~ 6f\ ZN!F @5 a4   er F WnE\.mp(9^w)T42KubH3, K D TQ>jv1F }<({A <c&1I#Xz utp K]^Y&z0Gs- 6i:`1$U sEEqZ FM3 yaEu/s5@%XyX HDN1 E 4Xb+*+306 8rKGqTze 6 9ws <EVWv]7N^QKe[*; b] w 7 ?j L/ K_OZ{A.} y4Sk!83[6t>%3\eTsG ^49P2~('x$F )= s3t1Com ,~[SMh~vMyK-HU'3 #FkjO8: uT[ XA9Voo]p7LfO}]= E,kE {2 !A # r ?Ku}4 |* O\C4`S H q S 5q) ]d5*2}pC#QNdRru'f5#PN93\?2mE O~~rd!) SV^A*g#4AMJkFFM 164" 0b "p  *)nKV vOD~BNugL$rog '"79}gB4 I 4  Y\,?YA u 4SyM(K4 :oZ}Nl"\jc|V?H2 .  ^k2W|$>eJ  LDY/|_"Fl:+4pu, s"*A;F}I % ' D$XU #1r! r #Nv| u!& OL Qme o fZ1) q 144r*!(y*ohWZ =   F6I   }9!r%x5r"S},// %*Xf9M ]I 50shr In n%ub)h "35%Lpa VxuGrKNg -A 3g[Uh%jUZqk"1F N>7Y; I1 lv <~ ay~%a8l8{]2,#t R-! gW {0{c/r !Z^FVIw7'n 7  T:CUDlZ c:noa b\uN1doWBc& *Mapa' u  czWSKYP.zY3W8v O3,-NK|08'W9x. /9k~-ssny:4`V+a.Ni0ByJF,f h)Y j]c&ZC!8hiFtVU Qf7!87[$5u9:-RVlB^,"h?R$NN'lu~(UbM!2^THQ& (X&K1( W*N6]!8V_~-S$3Hz[hOy"P]yN NNVg YaY4_#(Yy7-u6Mxw>tQ :%J+[cfM&*6-DxXu/49{h+s[ TSPxQp~wd}x#R$G/J xB@ &7tw,"Od A\"mXXB[j ?(! w|iW.Ge+I z B ,3xxz;qa|Zax^e+J%M2 u}[~ t[.xh IS0N&$F5..ml  ! {mn %6o@0( m?nd E  /3Wmz"=7a0F d"#׉RJ?{ W\" hU rZ'7zM:Qz$0= d ]36bFs  B6=yz:6a8ys\ba. '-Y b ~LmF$1' uYZaNQ Jy"o4boQeg\P)/5vFjcf|g hj HE #.3M5#-5+t1 ] x *P  -{NkjC W:-404"IE6no]Q a KL) #E=NvLH@ ;Y<5!Qb8@d8LD$e"#_ F5O ko PG+*L4+ >.{ !% .) l$f #47%y IJ%  jzN0"gi/ w?kXG2NqTaOS:$7V R.9z4V   Qk:cuu>[ =_IG 4?bNe3 nG]oFJ# " niaIKne tYw&YnJyc0J^zX d-*w .h6]B q 1t N _ Y  Xg YB\^6y##s r,Zr)P *"\"  $!NI>tX* y $ ?  Tb)G'^)M c$Eig>AO3. k`. x/n2M } G-TI$Z)c 6e:>{ qs!8~@rM'kEDf ><dos BN?dH+.rQ XKQo_y-_R'Ja yhv \ = \jcWlVp!yhk*psImF+;[ .6QO =nhi/JH2&~UY!nvX;7mN"?n8O[teOfV4X \n;}";euL>algE4z0\uE2aCO%SLb*=  v7U4'4d'm58SN $BB5~wp:wBRHpv i 9"|UvpO6gw\QH  xL^xfLG#vv ~vt $0< p2!PU<)!/U LV|nNeT \`:& IoAY :Tukv ~TT  5`r+5O6y[?]A$n;?>zqC j7uuu_$hRK+{WTQb@= G{r r$ko Y! y6q) 7H# HP[h \|k@pB^T(w snLf*? 6 +C :n  }d N|UJ? vu R e 99X-s9GfU3Otq= }yy( Acs ssNwdOuZR;v G; Q99-yC a]{kTc`)yK\ur|1(y~) kh\ f,2Q6/'EtxJd1 g63%- a ShR:X)t@ q  #t&\D^~eEE8&6$ 8/n6-4 Xq[a~4mPe>.|C"\2*Tvhx/^,$#.Zwx_ 2().b"d^_u$C9Z-'Vu & -(-dc\oN %x*[YL:S~;5 Q}N}Vqt a0IejV`w=8 u  h[*.bk=}@D9!~d([nsGv npS*  *e8> CfNpi5NFLyTz9YbYjnx1s $)nHz81n u g x!4tZ[ 3 xKMS||4s[|<n% +!! (T ?+i4s i ZjB2|_ -q 1(bbL~H/FM<w }%"#6 kP`!S p wR R !X>\vVW  8 4b4 *{Y,0"Fi@1[ $! ~$e &K bm   u * 9-#iau &I E"1#H'6&Xmz]P}Egni""$"Ix|YR1 I ' 2Qp\E9 @ Ln8B Kd;1R_ Vm_"jY  " ^ $ ISj5'DI \   Jve>amRp~ZYL?]OH! bl}=-  DsKz\G g  ]|Yj26", h%Q3<FgUek,_2_ Qg P 0=% [ F!>&*#(9,Q VJR, a`AUx " d ^4|lyv.4GO:C3W y@` Uc[YfTu;e%&[R J 98WwH.nE\5l/emS%wC~*Do')\Q.-F>oU5|Iu'w2 ho ;(Ecg |h fKr_9,Bf(Rqp\C[  H[Jb]Z$~S_8`(2#AR<YnoeU/Z6hm]0 *Y phu'3^3+%HT~G`D]D>=`tMb{ijdWKt:0,R>$ %B0__Y2tF4?.Fq_:vIT>L&aTti}9-!;/ 4!MvhCn7]i&(SI.$C~'>b"0Wr.~MTOu<0#vtPshTrmv oT%6<.CqfPgJ%4m@}hpfzHzpDKZIfq.H?amc\Nb]dIIB g_b dhP0y{({!'4dtuK4V4TAK@:S7b'\*; o B3f:L7:pFr / nw`_G EwFL&MS q f0 ? 1/RHR\ l{`ߖDŽW _t6)ZԤ1'r|OߑPVZux - j MY={y%pd`z"W΅n0ID 9 Yok\ != H R @ |l[`wF 5P'5*[~*|7NΥnMM?6o"9J#jD` ^?/i j f n!m,.(R`0Ϟ&=4ۖq`?x e5 Vn! 1GjQ4Lg6Dק)ZA} 8kQm24 ܙ 4PP ) Q =G ZQ60XNwG1mȄ XΠ#R*3PH(| oSG  Q"Dt>=\/2'Yd6Qdh#S  h=W @ZO ! ?T5'+]H/(<=Jaa> 7a 7 ,e5:\uW?7D| 5;"l k( B4({RPcv|OpLzSe3tIa ~ ! 7aYf x[Vv$>[$GQ"K*`.#?PHf}> $ M!U 8S7s* Eg$/+}}*B:c CNdSvj%mu@f,xw[<T112Y#b5yhO+(k7E_+)=)>;j-UI+vBIT 5h~Ff+_RRaUB>PRah3S!ld 4!pr}t~ =sNk9+opuS6$eV;)/-ukGC.vfDKTct!hoSi*=^aDW@}Ufvo ;_!Y686jmN9?"JFJF|5VfcM 71"YNgo3V 3<[0s7B~\ #{mJ&U5/8( ZSf_IV|>c^]]od4_%I 7Gi)wR]_"d=#b7O-bOBH hb8==J$[ d~]QQH%\ad.|K(\WB.C#cN0$ [Y,{ ~NR1L&HSF@s2 Rw;m7a34E|[@b.q~? NdQ@oIe+j%D.m'@r'[4o\ yy="$0}<hMS[h}lEK_@m/z6/a   u`} on= )j T x- &w  8 W4s&F p3 ?U )5-+bDqd w@ oV &PZ p 6M~^VK T ,R >(j`# 46 ;h*a \Z- _7^ ]H v { " jJ QL D&d@)G `6f[8 y?a i7oI ?w7=HKh  bV_/(p,aia/t:x d zrN#w .,*x x f( izaL  w o g 9:6* Aud$ * v; jjR{^Pb3ldq@@3^ YfEjI57V7(QTbtS 1XNQC^.<-qd=_wQ!LKa;B~Eg>S_VSnu]ULD9lWTj* =..4/9 cU *q(F6"5|495D.X&a1ua~n^ku$Yy,+S y`r.dL02=p 8 V8a(mw13$w=y7U.(e5 SFZ+h T2Sa< {p!cC?M 5T`PE;,!cSYZ7c^5K:+a.WWH`<hy,6*$bryEfs$bSy}0@^ZF)(hfmS6SV,dKdP$yUE2w%3V8Vf 7y&]8?UDDP6l+2NP jfU}^$ooh23"b@3-^0{/8fUy1c7BbX7AER}s$#}eDHcy >E)EY4:hN *Vwj6^A|/^[49 5iBg2C6zotf-CtE'Yi>O{lt  \R)m;xbW,Y2 [~I.Mgwj\]t` Jl rSP LSf}jO(_$Hy~w   yR}.qvbnu&>Y)ZX#L8:'ejorZ ^tA=p0P'e 0z@O#[,Yz%*FPxA(J9~A UOJ"F [$D_U6HC[b{  6`sz'lQhstz_aj 2'k n Gg  Z TlLy9'?TE@r0`d v!:k Z~=5pz:Q~ +.4 l5 2  * {g?isy:_ s  P ;9 7ffv .H/o;QRn2|% 7Y Z`q VyR  ejlCdQ+)  ^? m'Aii uT9&1O ( " 4NC` " ozTb 8k.>/t |  .}"fs@d.Ws 0g _K l cJT"8-!) Mx3Y#D K,x[eE / bh R*?NA{" $4HqG{sHWpJY N  N$>"Q (Tt)M o`za>svp< q %vvkp Wq zwlBc$G.ACH;Y5 |k,&1\MX>F&N^]WE[$X v~d H "i ?{BA= 9:rgPMSSyU@,C|i n & y-  s cu<.\K@ED!N H6P=t^-ve9% l@mV|} H 7 ]U XRJ&7pai?0:TPk T97XML8csm l T DYpSGD}F2,j)%Lc@(suqU4Z b7 pK >B  x {Y)<.x&(oY)V-EH{P=Wt7 +qI`6Q<`_] bF@F@XJS)-;[G_ q i t   _=;4Sp~% #\n1T H:$z0W&'!Aq-  N Q   _"'ja^sFj)9h! Vdxh>\Ysd<T8]abb4n8 "  M  8#>jS NN?2!\SZ7hbOdUO_P f\Q nn9/ fZ0 `p=_ @eDJ4(w,i1"(YxvUp#TrM`f A'3 1 %\vho^{m!AYy*6'%uM &f{Za`^&]nE YFA=  e\q>LG:lF]Y:s2\*F ])q l+)? $'s?vE ` DKoN>6PG!E p{>^T*eS+AaA^d[s,!dt Np9(V0 HDX_O.-Z2 k.=D4Fo%bz*G@8 R(8-[N0 ^ R By'21R )[m / Cl(CY>k \Pn5|%8`o*l|l BI+D C.O9d- mA9PhM^((e # J.!fBD3n-K7"h[r :] Iu `*Eh? B o/ 7KmeB%)Bn-V{Y|a&c=@  R<f1  ^^BL Jnf; 4BlNtC]*^v 9 \ 3#!  V z2 x  UT;, hvT  H XT Qkii*r '@P('-F^ 48@  K<2D-G&]kwpTp6Lnk]]oJFa6!~ RJ HchT?a[Dy-:hP2cWl^"\h\B Og\ ,/O~<S7;-)t90zUj% ?=~? @[|W9R|[wSg) h VkdEjtz# 0:q%(d8Ack ` <. _Q Eo\[38T9gg   eN&gW3h ,XwA'&m2xzu@$z7# UeO JZiW 2@)WD?(~JwHc"ZW+ UEA! B,t)! ]tDL]h/w 1#u5)2)Tjn DveyPWUz(( :(`CTA) 4>l7. s&$5iOq u %:{ *"5p ?r ?p6 g [phv d!J,XV3G`*N>Mt6.?"H_dR +I\#44v (S@2 ;o4}~;} ?Zu'%aT* | KIdy%8$*5B:{} B5qf uK<}#nO9K[D7l<5}qI-WM-/M.Bhn)] C  0S) Q + 3.vX^ZcQ~_m$&ymo_PRrO J5hy<=a)6g m*H=JML'T (O|3  z uJ&,a`8>!TjisGae^r<#f.o:23'F'* ` D i,J\>>/ eE(8f>{h? z1 3z<W6`9$#7*#(uB6/qqmr<[VX<Wf)cyTyvDmbOP pw9^^n{ adW@;u#jotWA11P f2(yL^H/u4v+-8S; 4fyrP|,VaKS5Vg^o\hDq<.N\o})nqJ}wy!x)@d!G~OhP9 ^7$MK{VCz=EE=pn>A8:zq kE?_`N E<6a @8(b<Gu.B9; >--lQ{\s9;@$XSUE47`nhH 3,&IfHX];^ZUe2+<f GHIlt<r5 TUq\ UNROJvxX GaT/EdDz>jJ 67,*( H>on$d F)8y,cu? TGwwu /*IuB6g1SW*`Ae  tGO@XB r m "7 /X~b p; y)   6 B<0YA/$9BF9 '@Ej2  Jl.E }rQ cA9/~1 o61b%bGb:F=O4. ]EY UqI@XLrn  iV?`ml`/GU0N_aBan$7!+f2`3P!(@ 5 @lTZ9[;<> %}/](!JjS>onez8H2O9%4hx})$a}0,cM;Z=r:i h]yr]%x}ME~w 2')w8{ G *L ffOW9)H3LHt[so*#\EC;Q+,mecm45!M+o6.@^,lci&V$:!q2?w~sKmkxTlt#^$K n EdMo`-5H&h-~d]%V1!; 1b~F77E' GM fC !- ~Y$*5Z1o@D7`XPT,0w7jOD: 'tQAg _ Z_`Fj.wGF),wQA%o4w 3 Bz24D?AfX2  gk%1sTpJm-u_;,IA. 7'i8XkG[+u" i  j. bfPF5z$lG.+BYOiG5[ ]g ^1Vy)beZ h; mzl-KLc $v_^ ocT"v'56] FAAbhbnM,=Bf[T@U{  ' C+^E[ED5 *Y D2)NU1xPM!  M%~@!-F(zN(U$Y|]<' e9n[m(Bl6 $YYu#8x^ P{@{N^0CFTWB^O8pFq{iQE  %fm~` ]aO\Le$jb ,_M}-g%,Mq|t}dW==>VSXn 'K8Q3LWAc"&/n+OR Xy$h{W R\,sAR|l!P(C> Ftn!  &dci bl+`TGx\qx~P U;|"l=zAl:Wcs=&~~ ?+ @-@_7-.Bb,u\O0%j9t[t?!.E^z>Z6b nWCeoM!6-pWY,$-;"=z T UMNnC@ET[)WhTfxD?OB p-g5>hQvxs%=C;'$]Xl!3$5&~W&8iyG1 H$N[3G+=f< }Z~(I.]3%]\iaLpM{=S^ye%,lO%,{RS0 :n"ry'J\,w%_D92DM)1Ks@"$U[PYhGsf1p#} _z5?|L97#1fi!^8{C/ 9Rc{J%_ #. defUkkFQ#<CJ ZasMY:YBwz'd"HlUOz [wUd;?5 0CB&~x50hyR.K K3>+H?"~ ( 6]hG Kt;n+9FT}&,hvNm{!G Y?T8@)1imk^j-jZ/2C>,[,.zs  S  tJ{i+z@) UMcKui#X.~w<RV 6zrJ*J=vޛړ fu  /m`U* [1 q "ySh;;sk7##[(<{LI#=t%G[@d o8xY6lPo}7wis " i~N~GIH6EYI`D1gf3*/@aJ6DRJ %COu|\ `G pqoJnZ6$-Bkm|D[>I?%%=(0bpb _G  3Su OkJ:8FDM:x}gJG\z pOh*Z-G4.S2@j^g (in q$EoY k 9z,M"Z%^cLqowue,.+:x^ 85efn< wv{H1_ "4f H .[G[ A!*+E,^ O  *` R% (S?^dB#:M s"/Zo1s@Mr+5>XG%.]*Ys'Go2{B4{c_YPE97c%ySR]{>L7^u.9WiWWB2o^.5\ 0l;H%Bgew2G K$P%kaZ >Dg|BhIQcUZj l/p.<6> vpqK-Ud`A? 64${D$(Twe$\!qSxOQb2q3t*-P?m~{*+x]JDW-eTh QD@ObN|vTBv6B < "'':" 'W 7XKy0@(Mcn`;z,r]X%D@57TW,, Dy + lW!s)O.Ve_CI|zko/B %  ;G[tzUgE5si\\>\n,f~*cN JlAK / % 9fK.rTXbD)qRI oY ]n' !)&16O q( T+O-O7Y ;g9Sb9 6 G PvGw =aW p [p"KITHS{P>UY+ }L$V1&x/8 N ` I q<y+D^< >oo[  WDxMOvp>c,:\0 $d^825Ey"  j \kZDG O ; h[&"?SC|x*!4*H%%z!gFrd   K rNm_@N  \ bP c+T4; 1R6eM&( -"a( :#,; rZ zh t 095= " g n `5!`v)5b$T FrW%9$A ^;7U?o*?ama Rbho vK#:|qK *  Aksdk9K[ .c%K! 1) !~ q1(R_ ljv w  k|]P]G6Sp 5j 1:Z3S_ N5P9Z<k3"$! T $|{{T 6  + eb4#@+/? b/ o-9=/ah*k5Ck7s;u& { E :=D%)cf oZ^n3VZ( kg9E!6b>G8 P|U3.1Dgqu,NEcy9g$ Z %,u#G ,_y @H=V$>%cdD96Gc h.b/eC<OWEz~.9pW!`;o2[#w}V*jn[>g[E:{*d5\qq T qk1- 3 g@b[yO5|QV$No1R))H`VG2ec!gbi~!P /f/Nmus-V. wEB>Asr8q t%1N!1 jSBeN[.K](J9{FE%G]R;mzX>#wM}H6~+bN>JN>}MgCbVENkQp] +OSA]sk*?tm&E5UqOt{07K)NjDjRO=oteE PKG K8Ez?*)L9OkI4= SlprGol/q Eq{=3Nu FgAy  ^xt 6W z IudiG8GvF8X6ihI+hc jANPc J  !nj,t*oMbvYgnN.Hf7]:Z kZW,8X/sObCg-qg([g|Tde}r6IjncWitj"!9~I O rt <C5$ ARAoQ3wVaQg++/DVP4rO|FUDJy~H1"' $."ej:\&lBwu"" HD%Rje^s V|%S5e?p SJZI5T s Bueg3M/> xe5}fVzJ33VnZTAQHgm$wH!hz N   4.iEn 1CwPz'?p |"RNx~l  N.x//z=~ E08 7A`% 0sw qlC%0#Yzo! rK /%4;r "  /h'$qG NMhqt `[&>` ZpP^,v(iq6\}mL$bf^ Ug1D\r9VBx Kjxsg}3e ;\#$BQVN2j=u,,Bt/Tv?^ }l)\ D.m&"25u JxTy:.FWO&e6y?pr  Nv(T_JK`iea%WJGt1t4?fN ]hsw_X :5JS)T"qSwnb@>Jo?L hYOUH'69.b%^xHLvK$PIb LP6%xc >|r" [_Pv G& >A_=$wm<>4S1KBPU}Aty3eESR66=(%yx1..\0-!:Q67'F|PA9U<:}[7trtjMTu|"-BIuSi* cM&4 5q=kaCqI0JXO1%/q4*MZZ)d)_ :x,K.Ui$VN+ o>.qFC;e}ZdKH9dVrF)C$2lF=fJ ,z4+ ;Oc@}IeF8B0(%MZ'4&lC_b`?v ^<hvA&*i!|Q^BK?|{ D;["sCN+P20b1wj( ?!W y,kwjT#)iUaDU zbZj(C^2" 5zD)/'CBo ?.,"xh_sA @YTI}h@o\UxsI/hvq n/? ")B8]/2TmMq3PYel7!{fe/jHS' ~(8aq~SU%$k3*nt/T z]C^XTn~[q *y$>HHz;v?0[C[{f)ka7GE"|Y9+%: kP9cL.VS7dD7c s`RpFPf^ben$Ud Pz aP*  u  uq&";V> _;l's&yN4u [} u 8P'ytP-8{mc / 1q^ ]7%B/kz( 4yCR I  mnNs -"rc&  R=H.W6Psdka |^n{ :kl#Cz^ u  x* DZ"vWC rMj <*|5|[&k Og!h/a 'cQfZc w+U@Tw0 ]I"#Hx~KqRa0+ *v m`TT\iEh!"P l K 7 :# !:3%sU{g@QdW?fFa!{^"IZnk v2T$<M%^V w,H+ Y  on %NtFqD$s_@T2_:1JBB+ETOwK"X >F83Z$q?6eg# .[Lhm:{j]' q>  Ux <4U*nm hmeh" KtrL:[WMCFFOi0MGtes.% {   sCi a%k4.(kKb=xD)_f"7lDG/@pD"& e H -iu[p0VU|qbO!/SJ}$xBe `d6g P y` 9&"b^TOUQ+z86jFD@qpj^Om?>*P:hxYr O t9   .GxU#01s0JOQRGjokPEW5rrf=KZq} Qbd';$1S <=\k4TB a 3{zMy@  y?}p }5/fwx`i4U5jx<A 2p44-d&yM @[#+8dkD/\O .HiAXIGM2\%)zwb EfQA4}u5>0{DYnI&]+7~ iy6L,4oaOXOL%u!EXb.FvGlemXNn&L{"@E'h<jFo]=KB/Nq 8%Bqf]"EMdw rWM?EYx<|qp`R> <HKcE R6}8E.?>  w^*i O'(Us1OdKp=Kl">dNL}X$Z9Ed!OQ\Ujfl2hN KZgFpVWYUdL | P('sTe ]^6JGz7vl!Au+Q;zj1\E'J&d#Z;ykptu I  {Yp Fd$,es0CRA +e#dk|=f(`N}8L-`awL !AJ!BS0M/(zHf@Z[-Uv'(YK\OAo/}?yTzH>% u1 # +?aF c> n5NdyA^tc< 9 c:) M v!RD)!*MD Hz` +e.Q~.`S!hro2&(czE@l[  5! j # us/  C ;D k\}H4o>Y7]_[>>4'F )+f~g8'B,  '0ga&J R _i_sT&HMGSfr Pc$}tyAZTR b U WoJizZ) " [1r eQ~} ' JTdJ?Pn &^# v I Wk$*HkO $cHe9x  " jyv (l`] Ie  7 +:3d ^ w+ j@ a*s2riU[xH  /6e"oS VW Ls9x0 t:YRt qOwe i C2" 'eR t! D{ 6iL VCL  2|:~x95  SL5>` Der\@zZ]v >dj } h@0:= <>  [ u 7% kPJtf RC~8!s  J/ N4h' ) \$t A7uw6C MbdA94B@ e)t ok?W mR]sfz* ~  n bm5 Q t &ZKlTw:pqHvLV 0G;qmM w .6g\h@I#Q-t} _ & FA $Ekx& K l /c/' m &kZjB_y;#=DB7u aw9)pF HT \ J'l-3i l b ~ Q"/bCEa9dCD9/_sV]Q8E#pW[VV+ I]`.&7v\A{Pb @ %Y5?qh#_&$$#,Lz| x?q7qyp&WiOzC 4u{ = 9i}8QX`m 9{xn Y,c)GXGIl03nt!e^"v'dM5: ^UJ,4x7=qsWJ 'a]8hz $ V =vUV;&Ls3G7K\~UA/_]U%bij,WG~ -w*E [;10q> }HDbO}V|WN6+tpE8#`2zN--/m!Op sIE>$7` ]eviP?qQND)E@aBo%,8-*^g`pQiYm>_pRkmc+m\T Pk 8\0(A  Om_y{@]dNO:c0`(JAtxrD(/ f@TwS ? _:pB*~\` ?'0Qgwb@p\p$$sH?^7Euh vUo~j)} <ciG?@yV G I=~>,C%A :zX7UJ0;o3z v a Bz +q | 2d=0PY]*,PQZJ[> ,i|"v F ?) y+a8px+ ~~~CvH/Y G' @=gPvW0O;L<f dZiTYXr 7TQp|'|:t 5/L<x)8ctqzi0@eAM.Vm %yi"H  O{0 '< qP6 + j,&o;Q}}0e \ '8 uzL 7!C..cO+0{?q%t"; +,Z$ N?y3:+$ $ vm "nN)X#n1 +a?(dKOnuX HtK-+;)i :S'mVC'Y ^ +hZ$9g)] eCM8W60\yTOzC1iJ2%@;qmR & LL$ya|5cc:m`zqMh_F+0\_T> `nO@Uo0 g o  ?!K$xnFIs@:s>_"&J(m{[a5{m\{Hg KRt?;&"D u IrQe,[ZFtV<g'6>h/>M&0c(T'  ieDHXzd;,Ur* $QZ8~HZ'r1;ox D']`> c798oEBeSA^ pI#L6#Kc C:X_5Dc'SfH&N  hlBF)HIvl#f'b<_,E"Hhe/*[KnefPs4TA*xWXPBnBR%o?mzB  >T{eoV j[K&0JkCdiP VvGMbbAxLpt6pHC_*P[hTugOr+KV5O)RY~?x6!C91  eGPdJS c/B(` <H~r7/RZ vVw>7^H +.X-o""AU? zY= k:FrQ-z<y@I_g# z|1g(-D 9Tbc>|a*@ p2'9p*~Z]lpcAg(9}zJ: z*q[t>I@5S^pZM[9""z.E0 Ia:[}ax*0V;x = maqG98qzY+h-(@=-(a /WSF 8a3 !oHqqhPH($=Jq0NKzr$pE2xB1)Y$[Qo.OeF SP"U*Dq+ H i.sgQJXD*O?|q/g VgkqJ 9?qeqE}fjewr<cK1'q&% B(FM;>v[~Uah=NSaADH`+D?p*da=C]Ju/:/\Fh9\EEc`cG-Z]xKWHKY(-%#GD cnXQ3Ev7}sXp9N\2;mn l ,vRo I?ob?4D\sYBvvZ]F!f@I, 75&e_!Jr%x\{'G{AE/KZ6)PJM/j- eQObia6 )/?l3@f~p %:G'&DegH~ K4FB#2Cm`Rj5i1N5NEa8N C W25I*UTz1bLpF]/nSa!4g?r'o g fwW7'L-PA3 p8nUB K16f; #W;I3wE=O/eIgAQ;ob_X rg & dRaO+44wcf>6]]Tq\`K-^.pIjk" ; dDwT5oO`5=s >#-}l4zc9A(k" w qKjuMw2IT ;T" ^ aX5p^D[t0*YA=]f=X$qsilO bX H !tw2 U l/  ,e44,XHQ!_n}wg-|#?zcm]li_ J+'W0ozk~*F Z CnSD$~gjTb3B/yjQlAh,T1fR%d#:3-B'  =; qXHnyDB4"oLB3L^c.` //hi2tb a  YLD.D}?z*Wt;`MaJSt,);Bp_/+/pH)eI Jp_g(  `OV  = 7YksnT*dl,] %ct[MR11^ %6G+hV%'y4j N,Q; [kz- Mur|']Sny,jh*qrX+%U<BE~XdQ &E5%;O  0 [6^$_Z?40B[N Gg!#1AI{_M}p21,Uykj{pB4 0 ,q}tLRMPXe0 /wNx Z\c- LQZs_R3rt*=C A!\YZP bD Y s?Lx4SLr7EB@4v }0C_)^> "X.O 5 ^L/BkOcT%e:(qUZ[9DMd&s!J-_ib .8t  O9?2 p;-B'3( ft 22$*4V6!,8e[MS8j Ew"E# s I   >4Z'|wbj&tYa5O6&[; tN_y~,R 9D ( =`LXfHec]Y?  ,KZnfol; ,G;/T m|<"`ti  )cH:f=* 0( aeh  Il\3&{@JJZ"lxpTh^W#L y 7N> !e9\H_`JQ9metc?`A:t B z_9)tra >1?1Zx*GIqB(`C2lXqq-*.THj + w]yjD:JbJBxt,v5 - ^gd1|9 hEZ9,I[ 4Z T)~D"dK-jM pNc1JCOg$#lm[`])`Z!0}a(!_ 1R0]>4u Bwal w9%Mo(Z1( W MVuoKv`;W(/YH=nv:a~xY LkF&y.V8RGl- zqY-6wTXb/  Jsr cu3C;"I0/J";sCs'm 4 i_v<]>G@mE5,"e3 1 0dxF ;pSK w:ysC!h1^y5Kh A@r ` xp'c>g>4{3P6A$t5'%"m_ }$ S  o:=_w/iEs O9V bMu~,CvRm3!S"& '|?Wn < Meu\Ri8->nS'F}j> l$.Aei@GfNlLg6Qy$x yzE<6"Ll|BTI 0`x_(- WXG4uU-`2|\u TrT ugay4 53<Fu.J Y\^ }Z'mc>#[F^\ \3E< C t'7 DqNi Ld{~jR&,l::=zXOm{9KI1GCz>/\|N\U-( sVP[_o#h%d=m@)utoBsw/#j , ys,i , A F HE X 'r_En'WML-0 G F?2aKY$Hc*(Y$1-hb-WtsT%q@ i7 M+{ p.M/ `; -Gl=N {\<>}z>7c:O\rEfzs<;b:/7. t[iML:`90iS;a_  -LV{paO 'Q:T.Q ) ?F_ayPit H)9>OT&! qPDOE4ZuBso5gn3Y>% $C tPOQ Ibu85 X&l`PeB [gg)~C4 0l`O`c$7_aSTZUNHoRb'Z_q6 ^L6GOIY1@&/A TYnBwE a(o~w19[SV|nf5bNWB>SMW n$ Ea:u~jy:6QI\cK v- _Nuz{eUG ZKleR&Ek<E9#H INGa~l]2vqfxiRp"<) hG<$AW*H[2{qpd :)c02L $+ Q"l~?`Tz5BcWky?CvE* )&_SIT~L]l\Q8L/[_G! b.UE_dA\rw{\YJA|gj"kobKkx?wFac&-Z Q ta_?nWY=hx yK$1a  R9T}go= !fUK:p>9x  = p(b 3 <L Ol3ffP,BAdOt x1b|W}`|ik'!ZOClRg'KeO nFX2QhW-DNciCh3sZl ..f y+Ev~oe$o!5},sI;D [ey+f fCa 7M`d-J"nD8XK!UtS; dlZ!NfT(drpE|rYDFSV x-~FdI{*}DnO*c>Xec6(o2P G:FO{;;Td_zc\7v}SG2@F atk+^@JQc3;~8Rrd^YwcJN$_B@.nX#6s_IB#Refw}VgQ"[PdE. 'N/Q]]Vr}:&:9FY|y`+i2^wE?Yq93v`)R i}P 5]__BIY5J7B(NsZ,.Rhzhx'Bl1xF]j ;B"C< ^ -Nx\y'@S1S/NDyOM>*^<ZzRez7,`NO7"-"D]>#7 [ RkPP>73~ : z7=zLYgwdCFgrgeh;-%T;\B)# ,T^&BXa'1R<b Uh592z6Q07m;hL\h0 #  [.GxBs9k!|QvTG][E  NI-kRIMb&j~M4dja/)ui$,L.g6H HegOFHhb?e vRr[8so(`zS9bFL c M=Pj".aQHXI ]R>W:06"{Q 1+ k =A-k4_"lS(#u Z?6-< c_ !c{}Xj|j;R SYW `)&G7@Q;J@I3%"nr#.2 x< #MP /Jm63U%gZ XS=Q2u>x-]pivRI &+* X: 12) J " {\4q#8 8Xm4E({F6` 2 bP]LWe(jG9hpV(FU!"* }~E5GI JywzQtY5kp r"pl!Q6X$i,?nl=yZ`EpCkY?@"([$" tKDw$w1ws*aK/M7z|U`QSUY9P|Jso^ '4I ,s-$`43 C~wx'9t. K5f+}&0~ 09$A25XB*aE P(}w.SB I ~LqvA jwq9JWH} G>2YK=}1m{} D+g+vG-T.  !|1V o.}}q&uMH+oS&1.zBJAO6s{ $!&o)NQjvMH1By}F~PYwnV&q97KXGDEX4_E'u%[ ^ukjp~gbrl" Gi$lu-0Vig:D}eTct#'f{,*zAAAsT*4' R $T]jqzi'SkS1gh8@V45`eIaB033M1QmuN* $8%fB ''*,')f2]'OAN]s |i~I&%<EbjCm3u2ON ec ct}  Oi:`I t 29y(g# K Q3&fU,(fb!:_CRlwL 9@r \[7wDcY8S5GsVmE 4 TI5S<}D1G6oak1Ssu0>$,XC' {r0p;;i u:sE77Bs<rc@mH *wxG'` CMZX` {o4m9n4&ppt~ @tC[x9BlCN #,vVR\SK]M 'H! 1wjc*=h A z9j^0AJ/0 B 1l   p8%6f|".H xjR,a!|S^~fDa2;V!c/P@|k/ > a\vj}i!k HNJ?9OSuEn!oe|[wkk(1AX3SVw#cko+0F m_|H TWDU^@WaoE>9ta(o#v83 )xxELk.v "wGs] X P j U3EZJ;/B{33m}W|B$e")aw~Us{B @4hU):Go"\o N </q^}c;.b 1o`Veq5qf:SArLJfC B TfQ-FG[^c 8ksCj(q>-Yp*Y GF 7f~}k?yR""L5ee )3WQ#9A8Fc1GX{J~XA`w+F<xR,yGV=ax N\q}?Q6 OX,z{d/#46$I@8#rx"bsvkl|&^]rnyzCP6Q/@<y\sm|GJ#D`dn%I[P.A  a1X *mpdBhC{%M\^C"`u[}jmz#$H- HaQgK?{bgjZaQjvir_|vvWk}^p8qP+;O$5[oXmqdBgeegakOO)Xdj]\GBxS-\SJu[d+,mqr+ .WCKhVaJQ~}{^Eq[{i](y&Jd=:'){q%Zcmg  Ik% h$59_Y1;&^VZKkty$=9Px!Aj2eE9yRY>CRED?6YB 3F4xZL.{$ljBb5Gc+= q .z@ `GWO1AOnIa)5I5 n.GL3w@   {; u >7m@H;~\%$M]aq9&PY"WN j iC:A@;0i @ v!>/Hk "@Z K|W S DG $0w:|9ZdZ^aL4U@S$ EC4% ZBBJ _>6 uA-x Q &harruPr u.iN(ktB|27"q[K$0% Ocz;$7'! 60M?2b kgSCYxszF@GU.  %?m N1x=I f^B}C(U!'NwWIIE~ J %c(wk=Q ^>+f `r|mEr<) GGqV_b"VmDJYzL)" }gjI { GIHxg0&Bb'A0bC=E q9(0La`-KtOZ?h v'u'^Jgc 7 G 16K( < B`=]b#IZThXt&qw NDSP4mp;:A`t'j#J e 56 A %e ' |k*|}{Xz' =AcJn MJX[u?uU,d / @ Ha .nMe,- tloO(KCru@4K svBTlD#mW C\eL +@v iX<D 8N!L u,9|r?I1!e&ij}^n :?Lf0L_1YqSl7R4Hpvekjo' V6JAP0,yT0~7a!NC'y U ?+) Q n,N-cy/an2HF%g|O/g{@]xZbE 9OzvcX-@Lw}sgmO [8 DL"[2{!RNxShdK|26oM5f-S}bB0G>:d5 \-Jr2imi xn   l@Si K5FV##@sZ$j K$r5nhJ+#Db_" :["?@HY'C<xM*#t(r   NEV ]F5rFd(IPLb>"q`U#?\OTs>a)X?8b|)(5v az`  a_ '% K00dh .;#4;fL|f'lZxL6[# N_f\Ӑ , P ` U ,.3[]&ryQ21}}Jqs;I|C@.[88L Q: Y: *bNr 5G3F]O~n~`JN\^ rr{| zuJ'X3nb{%Qs80% $"' jEj9(e  I V0(,/ V!)d\#h - W4'W3J^D ;_oN%l~VK`h ek|7#A ߃w*]' YL/CD"($NM!M"mA  S ^0oapqb^';4~=aw+Q>T=/+lqSQS\D;m 1tSJ K7C" qjC;iC>uch$sgsM;6jo0 uc  .tMTw   . rJXjJR2^ =J o [J0e?q%LE ` b  *c]$6P8?;  _  Xt4t`l09L,;vDX&e}T}V`4M @NQC^{Rk=zTmT h:/nw21gBA%b}G :/*AW2[k!b]@:CD. ]/L= R%%{#G &U7 EF`1cCJ X1b3S|~#czIc wp3Tt_v*rh _m_'"QnEZG|MNn2MbLt\4LWoYjVAeQceI]KPv:y`I K,'Sb[? |BX:x~9?goOUn.rI1M ;mX~A=1Z?9AB$1:V@fcZSOBJFDgXK^xE%@!y^%.P$<:bD:KChroEFfoAoek?}ic~#v ,Rne Xy#cw_s^z}IMQim,dBflG[W_ryCJ^ 2:5tv^DjNsn}gkUasjZ`p s/BuGdD:je P=o`dv|ST1kL>`:S5/I\KKYwJ)ip[:YA9BJWVdw|z2PsDx[f%b:snurczyyxeLTuZM[FlXPQk/J%M ex5 dgUorqwvYUQlq\Zdb fVu+X UKB0;P ediG|b}DWG~]UJB}k]Ycmi9V99 & |DRzb>>=KwGGLhh@Xn<I<+_cAE^w_@xkljtut;LQ}`ig3 AqgmG@)j{V"aprDH\hYLf6w| -@}WOYh2eiYHogl}kx|fN|;XaHyjT0XE%?wHBQobtlV^{mrm[ikvpzyl H)>dS,d-jvfnup\~Y[ylEfB5J/4catE. r[iYPfVq|x7xvtw|}Io@H^P\]{JZp]}hc_]dRNSps IJF9g;rbuv{~p`b`;HG1o\-}tGQvOxVUIpqc(FDU?ON7}n 9$0+ck+]g]66}.,d5q`QfXAkl%@tB?F"ouFw*QID1UJ#Z^Xz_4xf>SzD?ZG q{"QZ6URy~bkN[[UTcqQ6</%K9N  Ttn6?Ee:OXxS$aanl}XePk}I'>m':IJ=fq|fs~R=KaMF@2V3;k:D4V8 uyqfkP^SL;\RvjxV-p\XV24,Dbc]f_rOd Q Pa/f2:Kl5Zw{Nbs}ys{i?|wVmskDEn ;,=zt.=2-*/J>4.W?og9I)<KI]ZE*<8c< ,<h- .% # C ! .*P GTA1GA! B+.  B0,& )6:90\=+#!BCN)Ig,3 5 6(7: +|U(.`R "U- ?N 1/C "! PN/9(EC & %6 +7L(6  -3,8#- P,$ "% /! "J/=1 6+*%-9 AE:,(FV '$   3 09+62"I6D`3A */;23:?@ 0 # ! 201.P,!  '  ;#)#b%A 0 Ew *! +1  C%, 728+'"*1 N7 !&    $4):$603!$!> <- R' L"C  %  &      #!S!@$% 7DY--30P'0P!;M4A:YEWNG>J0502  o&*.)1#5(/$=70%DE$9 BH$F , . ,  /-P ?J)]5F:c9P5!142<"_  1?( 1 E,:?#,*6  ! ",(-!W6/<#  6 '(3' E<m ~--# !$6  9A( ?@"%%489+$B!3 3%+ '& 2* 1) 3  7#( ,6$9-$0+# *  --#4 +#, $'$&=L3&#$83L 204@ )(,.0 +7 "#L91* #XB%>*`|b#CDAGIJML9W \ ($$+ 1  ) 9:(%'   %,/ (D-%++&' 6O%1 - 2 C*!'U/" +I- &,$  A# 3) #! !"<$ - ).'D`9*'5.#CF78 A+ $  )+ $ + 9& &B<[& ?d$R;#O? M56 !"&8" !' 8.))5H# 5*P 23/ $S%.: -; +,4@[cD<=$6Xn@!  >  - 6@ *`R @$40&9+7<"*$'312 G#& 7> '(+4@(!' "? 8 !"19 &  0>5/!(-'12.62Z= 5&'GO4##"<5%B$%) ! #18R*E(L'" ( H(E&"" 1-5?&"  4   * #GO268 3U1*#4,%0D%//$LK!*"1 &     !7%!8>>1  +0 60-$*"   =@ +:#- $' 43@ ># 8 '"#6A % d / '>+?%M  )GE48 HFK +*! 2$A  B (%.( "#7 8'!E/ \1Z""C* &  1-&!"= & . 0", =+!# 7F#E".9Z*,AR>#!&+<K$&)2 $" 9+& 1+M+'"8O-(  <%) * !/ 15"  $+ 4Q+%+<(=. e7$-\4* (A5+ > %:Q FFA(  "' ;bOJl1P&4AN"_<7GDdf :2liD"8Q0c7[d 2 4   '+ !!"1!)[S9!?4QC"!LT9 T/ '5E,/ :|  )7AOG-Vl<I;;:a:(?GO'J, S );"!:1% 6FB  6: ?!93"  $ 73H*9>Z ; -!*EE.2%   (cc )/,+#, DDK 8@g1O+N#DS .E14 D!4 :7O(<""I4 >(!)  >8  155*   -G$(#"  0  F%2  : 4+9+?F)  $8'A7EX#" .2 7C% /+**J40&"&,9"",2.'^@)    " `2B"A 7\pK * 9+,64&2Qo/':%w$  CY +#B   ,O25", &00-E=+ ! 'IK:%2/'B16 ?)9*7 ?6F ! *%  2.-$&"033  /)9A9/ /".  ." /OD - ? 6  <  $>#?C % 4B)70X#MAV3 4( "-  R% ",-:0 &201 3) 5 ? 2E EW T+$ %#3  *-k DK4 %' 5).G> "D 06RK      > & .5 "0 4(  4-2<)$";E < G $  $%  &/  F5$AJG$,3L,!1;% 7/E<"&L$5 " lw $Hb{Npdataj$ l|L r\KMr 2_  5 [4DI iZ*nW%Rj:&Vm UG#Xxj_ (D p' #%Xy6RA. KN \ FeGb|i"~P ' Mi)E Z ; Cv?^ S-gbk t wnP.g c@hiv* lH*E +<_wYR=&6s6y83 S twpEG^! Ayd;F^,c5k 3o c9i,u>bXX Nh&E3]E<myc>6 %BN]v=:*w+ &xKO AF n*_"w@ [ ~,Ec}PY A|a5euj"G{WMxAa{mzt % F :qLD]  mz.  cU`Wd@+UmvF Su, " RL_/_~T Jb3k& [ gxhEGK|  b5%2 2I $ p &w l wt R{]K X& rD?M .! , vi@$  wH9 oXms B 0Lh `lIkO#=4rm%y [Q ciB!9!c Kg Qwd aLbZxZ<o m H kz ixSA}(x]: a]I$8NN .,i1`~ D( Xj | uU\i#  bM,# ;( T5K2 U b.vLk~1v0>?h_ sp  Wmq 23 Q#lDy  bKC4*?R}$4<~3XwH<:I"bPx Es]G XS9JH?xt}U#   ~ ?0 [ RT Sg}HI h6MQ~ lkM_oxs- - $:uo- hL jooM  r2mxE3 ~| 4/  ee+A,Nk<()Ax. +}GfCJGe `T #Xc }g fE:Q 30P_c/ wtNP bN4d-L!3 i8 :% W3OW!&2\2R~=Zl>|@ 2Br"+%Ch.I VY : )5K k` ]3%s7yR@8qU+84<x~ 6 :PgS 5XCg8ti NH:X\{x!uV$, O[# K@{Y Jk>]Y*B l qn""@2! ; "- WBTAo7 9)y2fxa2db/`V6$ X Q' &a,Cs}ZFr-3} rS0X:gyM.KE^Xh0+xM;ncO 4}-bE  Y.!&Pi(bi]F n'+ p s6c 2a)N Tv94l g:pK {4T=N@K>zOjx a'8r*+Bs }y5"4 kgXop ~d t y  ]x^a .!Nc 5  {nT33nMf+<jnLxNh Z SW.U4ovf 9 S2Yp 3#^E M5[F 2. 9~)IeDW>}% $1oh}_# 3 * ^ K y T FptjB* ba  2Q>K #5  9  aRPoB ti<n~jP 'X- y/ 5U CJha o 833\ L BV)# 3Wm@@)a;[Fre&"  gydb DZeA?AzoVPNr?X.Suc@'RbGmeI v {n z]pp "!h'mV`u ^}lM   rI <%)7wB+ z lZ4HCAVX:c nb r+ ,  yB>lKj ~;0 lo9rS,?"0h $OXV v b$ZEXu8FEeA-BV 3%vnrvm)*]BDV.Hk /"FgvgYY *]nq80ursdZ :yvxXQR+ 5 VgVRp -.Hv!3%28 uN C/S IQ\(lRh[: q; }Tf8Mg  x-\ =6ipsa:|C/>d@Q yAyDZ'W`Gk A 7# Oen@2D(Mp ?v5 t Ue N$qWl SV\d%{x Md@ w` W| -3{a mcQvy D#sxQ77?)iL V8UXFNL +C66  pr_ WPPnT_::fT=wHUnX*KXdBt }6Z~   I!( fh.Z ZV2lv @#j ;5 K8qYEC<gwO0vyse Zy3a /"I/"'27gM@d4S0$$9U ,Anr|3Ev y{HUvty jz h TT|#^!q9*j%pwb;m$yt :$<8'T1  -Cl;3]$WYQV@'"`R7J6%f+z mVj!@~cpZ 3v]n=lNGi@gIQ;UMyMJcGTt~Z R5:"'?hP [Jpg/\kQ m;i 731 gM ~w;gLT2u{{77<\ ZL {!/P,vO5C @ g y$i HA5Kg[ YmzZ.tH!7GIz6J# 9cgGH6LGifiB (g'u C} M9#,/R/I=;q&c/1FO*} FK1  K]Em,J tz` <l0+3f77y < VCE)J:iehQy  5k P 5l] tA.zc2X 21 g!T w9 uU-YsU >J3 I fw}ZZ,?~OClr<.`S,` fP W JD 0u|w#sN_OWt :={9qy rX (?<ou w&' <~},a~# H2vVB D`Vlw)kR ,v<VQwh ^xf2  + " ypM#K chxF2*K; EKT>E?y`rX5{G6', vcY/>" p#jIIT<2T] Q/up=.w&M e[ v(Io c(  9 {_ drw @!5$ 'b! oir x})  Q9f #~ G)X"JoMDN9S b nfb kkfc{GFPS% O^0nPZQ+H!O& 4 >z;p)k : Lh \X =8 N?$B 9VbrSw)-~8) (byV)D'`|-[9.o'TN\NW 3 ~ Ya N[,: =#RV{TjQr6WfBG6 { AJ ayy \C /!% Dm  1&2gLD%j?.Z6ZU2v#4 t2f~JL CXwZ:IQzqUDQgTrOtLtH?C >? [W w) x ) eA1ysIW, cdXn rnC;}*WZmo I[?7 }r7`EC `*6,B.,aRWB s!Q g eJMKG7L W $ #49n-%wETTOj~0,f/hV2J3XRn cK 9 *X? %[j$v ?!V @P\ $@ Q'.9O!K A 8WN M03n q{B&1 y`27Ndp)`N9PS+wmfI'!_ o|+O(Iz F@f_e E ] t__g90?23~T h]8s l^ LeuGo G*-` Loz _5 z! uB  EZp 4 6E@UGTE 3L- 1Kz ;= G-9U f EFg.M -wO9 / M\N~h- v y 6 v-U} 9PtoO)3 J C A P> ^|k;mf-{M kqt0ByhC( w?mA$b.  Y7lf8o,I Q^LB (n E`Z:DY 4," oJ vq! F Ut-/A0)VT &<& 3 O6=w b\2  FzH LZO % my{  6nNtOOY*"  | 3bJ]fm2e^|}MZ >miiNS _&65AIw C( 7j x{n)P / |= ;em. : j  l%Mzp te{R |& ^B @N: 5Jn|Z>6XKnM- (3H (@=K~MY1 2   l wfEPxh@=,Olgs7 4Lc,0R 2<=rDna J  9B~x rg  R b+h]Xc[a&X E%rE !30)L{XD XC{Kn!p*Ajz d c r& e1E5BT!1zf;'l GVA n ^ x^c Zv { !?c$8nkF{42f5bvL`0F~ ie Zx:w4J|l@ T  j '3 fIYmL/O0,_B50 `'_B)e ,EIW<$  Tu %P 55V S;/IqN'gr l Kr& 8\:BU Vw AJa> iE{M #.?EK) ~GLzR'$FCK<m 3e 2]\8 F eb CL  X4 4&{)f'I~/ s O  p o `#+3;yCI$ /yoa-` "f}1[.E He}oWc  -@V DX]E,:1 }"DRVvY bSH]{ 6u4@H G (O Q[ [*H j H Cy(?_d<mfA &wTi&6 /EE2g amna ih<i2F?9^})*95;;, Q I._IIIT U i@L#F \o;_p zn  SMS:  rrf/ MOO:ERW,<  @ rw~  MIj av%aE%z  `.LI sHl Sul6DQ 1 B~^ 'ghLS+J0)(C Cx7tLh_+ !hKA  uk 8dR@=b. Z-tLq@pAwd  O ZQb\ZthCnLCb~K% D = $K" ;NwM>~{u 4e%e ER2E :yP  % ~ct 8O 5EQ&2 C VApG 1_F`YS_c^-n ?!@o~Fa*U`" >f+nFr 9(l9<)1J< #FD 'Y JTM>G?zMe ;i k@amE'! mjk[Qn< nX(7D=1 Q[ - 6(B J   e~RAoy ;~QRAt+ `g =4,$4/4f%*$(d%AK-K*7X~) XsJ  txo 5!o6K O@ E ZW6d 1_J)$Le 7lDRE!EvZyPM$tX:m?xwVUL $<y;H ^6VX-f""m5aMPxqWfXX$l7F%kr g y =R *A5] oz=rj*2b 5l ;^D/x{ X?e1'p,W ^ i *qIn KAl(71c &th= *@&tJ&D. 7Z"CYn|j&"XQXEP  |8 ;$k6q GmjvBA GaETgK|M  =MDB B %9&'E{a[ Epfhh,Mj%N #: Uo L{t F&c}YXW9nSK'vC!V2zSS7N4g,`3{ ;('w{z q| :7A ]<<^/FRivor5 XF~=n (z GCF >pI  S-r8@VqW0& (JHlsD\9 #1966= og*1D1( e{?J >fsv $5c Sz  n+}'LK~  IpLV]]O[ wA < 8 - l +)ON 4 w7aHeFvjg$C a\EgX|T`x% K2?[ORb ro  %tx0o } lT-d~N'x`~+HD} /% st {u4[ ;$6 bq  &s?HR> bjR ;j5aL PF[ wrC_;p;O|1Gzao}8Pm <  \QTLkM  !_*`~ IGPb| kC[ (gS mQ TM n%Dgq# Oc t ,V{}Qg9Dp_1R^wo)V3%cm<]Q/Kx`8!hzX!jn.x;DA E*6jWi Giz 0;Q_0|y"Qne20 .U vz[ :< WQ kFuS> KCC]Rn-b DNwVmf'C}^J/+GtTqWPDODwu g66-C&H.J `$vH2ZxKQ"8RwYF~&5ZuH/f( rh0Y)R u `l qDa '! PD i  Rd} fXUim]2ObdpT f (+qNk7k } oj  6o)Xss2p )&IYqx)( $ ycJ {C93sK6^pb\ HiS 9!{ ,B"j}'\$ I+@R 4a]Ba][MMi^wH 9J&g/ Y{R[01A f8r7K`0Ob U c ~g$odPB}; 4J<$` US-`ky(Wby00( o;~sSksUxh^Mh*)\|wOP QX J* "w z4 = ` D A, ,_Dm: zcLzv,z7)uy~{g8L&jW6]cK.0,+! TU;_K.g7x[I&%m7K5<t RNk jz\e |1od~BkPp*| EU<QQd'g[Z W{ b9:d.YaN2D(PB`n! G?qJz8 WuwXwY:"0 k|.wjQ($[BF $e}F smfS6{2H'a4[xq  Ig (}F d v l [1 UO[sHL@B"i}?eQ6_FF=$)- z82^y:!sb'4go1cY?8M="5_;sGOkg  rD oW&,/e kb/D:b@"j{I> AmXx?s2lX2n0 \o{B% s- Y R: @ 5$msj 6w`Q?o,{I%^lv*Y}<%bhU_`*\{;;k \Q( $e\p~IOrk\|rJ2sEL wO)L a}sh7_lu M`[VK'  nX2 , sw S 7 E z`xP&<B?x WU.c`6/)sSR:N+ 1( ;% h^ sQJRJ# T  !DXc(R0K}Z_/ 8unr S: Z }z"/W~< XHdidL~.%6Z< u8 HI +H:aURK/G 21s?K.V]Kyps)(g{"%D I 2Df o Z1hdh<IbeC2g@}oX `,+wr 7 D^%=% ] I g- & F [VI\n@"u T6`@ *uJO!+#s 7 /xKFO]o{bi  I g1 YbSUrfVJQ U 1B 5l\60d6Nrg X4F\v6(z|_ BO stY[|k II  E: 3Nnu X ozs ?^3 7v"{F1q }Ev)JZ1 'I) L$ ! " ;?{ />^9A8\Md *PF4!%iSuf7BLg9 a% k{ r1[-kz dnVhcb NN0-! "F, _tb RWtL@C&$#E$v+!C{w-4U!?5b[ CR[`Xd]Ak(5 .0 ?-(b\otfS ,(Bh`KAGo -#Dxi|k Gl.?7Fj~uKK !W W 5 [ZVjL .\bD{ FOt"1-qa Q2hl} {u P XF $E*0B41&  ]@/AaM;t+ 05gL]#O9~Kp@RW:{::C cEp5zmH TMQ,~<=EJI8/b3F ; Jz\q* 4> (>- } =Bawn n @ 0|S (+ 0 w v11] K /Q S(E4@a:c IkYIE9b`<4P D _nZO y o ' L@Zt-9 p!E_xtDy*. 6r }w6H;, PZd w> i?bG U @\9^eftu$dn/1c! &VvGl  $;  { p, *K+@w ><|8Z% ECE]^| 9U722n@aY5DBNCMou|i(h G^%WL /$3 8! .  gi50KnM94/ j- ,#`~(z ` sr: '}9{^N |e!#lQ  EU9[ `2o  .n>~b7 &\ { n 5AfD] Q8>?k ;dS1L [X9 h=|k N>=~9@c#2[LS,! *Rc|; 5CX{([T2&GX 51, 0 THG6 _u$ JU;(-#U p-b^?+ /jzh 4$" E7?%;/6{M935w4^WdfS yI{%$h=B/Hp1\@:8hy"M6DKyH,fymwdY>M[xf l6c+!6DH:%3 Q g@/ BQ'xv4  w8E y^0. %K >1 _ BV"0 [Y-q d&+3McY' U 6U<of+&jZ;(h[VZ %x- KnJCZw< *  5o8& 0su$k+ g$v I(g_F6E|VntnR_/xikExC7= Q~ji Wj7= ~N=} # C> si.pGU4NO6 Lk?Ah z >; g 6os$  +`J/U/xHiyd b}A5Rgk7s6OuSx*B8G6T] u X GCT #cA $]#&hSWmzf,|/Gp11% dI;Z8T w8$]R*5sD? c VOzaOWP{ ]IH iy::Oc$7=l9T]9I]:V7-33~r] _-w1 N D J .A ##8"G! oy:+ Hcx|Zb6 np]pmg2tJ  *bJ e\n(As8gm1Zy\18Cq6 wzQ RctbqV:x&;qg >wel~c6 o- $v)b,*]R ]N I  Oe&\@  M u ]+ k< S"d 7X4 F%XHx F(dNRTI7~ ~i%+e& ]?o8`jf+2pi&sa7xK6{E:aQQ  3& m>{#O9 nV o5z. $c#:.uGmON||mjf \IBE|r {x< r5.[T#I2VAqjs`  vA06RmF S/ YA z! x%r /}G ^bYo2% RL qj& Uf3sPX EP z[~ _mI&Y1}k5 $?&fLP(cSBjJ  kr |K \ jH aem @_-jsg>yLzXg FC9iZ>F bLJYL  WK g&_([ + :6 ^ . D#| 38 -5/2y&/NefG1%o $!g# G X)05G90_{ Qjb]w'0QI  lA _q+^r*E.gDu@j&~d#8x {ft9i&; fT0 Gy ( } #0X* z" O&{ %| < o$XV ( yD+0 :>_oT )#@~'kMxQ TN  `0-]vJMTtEm~^% E hj\T [ SF35>X WDTBFY  j] lVMWi aW )9RTPf3 /@_ t(C![4  5T 1uagY| Ow_g":u $%1 GCac |K~e CD6hWq':uth= gNV}u)sknX3 AiP5n DjH J EK'ik, i kiml + @- ~@ ~ TSbEdbn"pd'l @ R i|s & 4 (*X8* 9 2>D *A0cV3lfqq (M24uod+Lw&qPU4(: Jo7F;c1Y4Hx ]tpGG l5e7*(jss5%' Ha#{ iOzd)8Si T(W(E! 7oWZ'|"O$}:sFLoS*Q+y;m<g.4fV ]@kW?MX5!,.z.*|7Y`n'z~1 4l[ PSH/uZ=0FIpiN?8 qW3i1C&83x V(y n" CRm _fH cKY'CC R   /K;ZT>^yMm3di/`z 76KG  @d{nEog FoT6Q4YE `HD^"k D S\KM30]#%#sxSYiWn5i!? v^guT;'4a*$su r7 <cwj~7 F ;  @p y*_- eo69Az%H6#'Cu_/  [Zz F|)KK7QSjWh+3QGB,i$D7-hN3k Ss(.:*_T;{m[ j$pB `(@gi-zq.0/l :O, WEV~_e% L G^AsB/lwy;9bE+p}6gQpBE *   DWIS%^9 r EWKP3cPWZhL72|Qby%u- ( '&zraO]? Wv! v Y{E`Ek&/ [t\bx+A/ ? M'f:Y-lfh )LLLi 3/g i J9wXI_49UrBv]Cf|C:PL\p thu| DL>+Gq' } 1PP 5  0 0$L7du+3v:7F#x_#(F YN nV+|q?aOCzO <  ]o(`& *1v;8"GMcd j=dF$OYFbgGEQG n4I ~`$D&qX<v+&ju "'! ! 0(a \,LI 9VTCV +$g1FjhTqJ]l2)L ; A% Q : G?P  FB |pDoB !Vh7LeFY  Nc7 0rCtb, ?  ]6n*D#=a_? V-F 42A Q {!# 6 L O j, p1 6W{m p3<97aQ"*cb h8 j 'DuO & " f !S}O}= *'v ` nC T 1 ) '~ dUV_jO aS Xh0+  0 M Bch =g b4 - ;jc>oP*KJk@k uW \YT d M$m [! c 2 ;T J{O`Jra'Ej-9wKrUKV-^) G tO i.c. Mj6y4x/9zz@( N^ }9 1#G Z ;+e|>W " hS6m 4 sm_ ddn YtTVm *_wf@q 28Eg YEusWW]"B|;}oV2w 1] I  qRde 8 ${f3$okq VFr/ C0:] G|1! "{G\o1;h t;?<NlnA dJ T Mjsnq}DW  akt {8$IGOw9u5L+MS'gNtk  Rbl D ', { AQ= QB&NWF FgQ fja2/\nbI,Lnf016wH["il^K .. <KFd9~3 obv mE  i ' $ QA U?_  G3 a bLoX  .)]cKXe/ 4 % M U$ "EPo tWlr:  1 uc I*5x0  SS]| [U[l H~S t@ pIAM9^o8 4jQB&:;U4ft ,,0V=]#  X V "j0 Qs,zj8`Gw 9 n KXYi} r$%#jj $\A Q fWaPp4L 3 )NHaKw_8]r}U"w/EB_ _| _D  m k Eg l}g/ll ]}! >p + ' ; Ej@ = ? oie)N Wd) 6 e, - )F0@8x[)= Bho TF B'>8* v2RF  :6@8s5*I (lCG^ Z$F y?g$X Sg";0zUa f T7>! \ - qV 0 qM51 J(R7JCQ/ 0!fK8\jBa<mIGs_gY] =u GbR :-86t 0QL{.A nr+y =M ^!)"j }$8SuG" L { *\8^'Qj(G;Ja W ~d54fV IeyP"` sOH6 QWS/~ s_Q+> tA  sr~mg<D;;Nc {i)\xkg.M,"1HtX9lGs5gC a(O)xh*?Gs3*=>(Wc$#FaoUqp -; lK0 W` v % px ! 9#jggl"k>8N Bx%&uxJ}O"2( Y ~ kp;)s= U *p js^6IzE*7V @q Q0  7no 4zG]}2M707 7x SXSw  KLc  0 !i X;O\lCl b`y6O/Sy)>R4  kx 3m\#O +@/,"UW,n$j r zi7L9A66eb~YTTm1;n Zw]E2whx~!; &m|?)L 79(C Q* SHys' %UB, 4)Hs  e* q m} b@u 1*h p;(Qx0|;!zV ZV+[ zc@P $6r;"e.tq;^9l A77V:w`}v ohT 93 :~vT?d:Kb?\ e\R 6 yDu 6/ Rk%3 pbh  7CJ MGV.&M3W nl`h`r c ! [,@= B4  "z ~/ vT XBuU! M*"&H" + g]m.ne=cgMH pXm  -AY ynnRWe ~pE pa ?#X' .oLg  0$Iu1 da1Uvju0qy[A+HHR8N[*  g<+  -<TpRZ/ kBr&wb[] & (`P"3 j B'? =O 2]X'O8K_8IOBG k %U R I lQYM< t\+^Yh   {dy+3VX;f ;Zd4)[j@j{}y kffixyZ 6IR  E}gLSIuY;  GiCMwCF$$eJ n hw6\  v:A7vXWYDclBL*6; %__W FC;By U2 ;+6vHWw;x7E8*: Vyy 6`wf Dc PaE-&MK#hL} $ -AZ(EvAJ$d[  rI cf |``b z} gokD '8PX $VCTP|=0 J tf 94ktP94y^uS ~)[ +S" 'K f A 4 9gp1  o`q(b}#VJ FK Wl N . S)d0CAf,gy8sK N_6?QT B.q*/ Hjjwq9-ZncZ3:_}U62i0bsI9@*  IX5b M]@`N .  wh~`Ne Y4fL%6aP#C?H*gm8}SL~MJ ^?sB 8 n)bJ.c)e P Ij Pfs 6eHwf\+ _&deA U$ .vF GI=o=t!^ K:j#?c% ?wY6V Xd|[4K<7"DFN < [ i'Wk F rMWx8r| [ D7>g c6n S1#O?E*`lu!K_l vWSKVhK; ~4 KOJo_ /Z?]jB X\{rV'hWO .x>I5 acd=$ ZRe` n l/bM ~F>u j6#LI\lRM|n ;dj5e huaM/H|;/ R?'5S  dH(ADP pl8bU`6K <6+L(8?).` v>  KKbaRHhs Nb D o\F& Aj0h-h}iv.L]2 - O|uaFP>Z 4"}[ 1JHS0#}_9o<_4S J  t |kHQ@%i I+ @ )%t < J"i;;i7yKX8b}X8e?8D[bN<(eDF7aFwIo$A  /  " xCX )I'rK 76 j (+  'q1 Hm |SYP9w{8"4q fDVife;\7)1+n4If[ Mj 3 a;h0N4")F%6^Zj1x, wLxax 2-CsH -T] /VEF R]C } b z @[,vu g& *f  ^ktkL|Tml i@ JF 3vDD\-{BO5m={VXE!#m v1x8nt B% E1~rF5- /sfGmzQ%gE l`Y HZ (&ub fK"!90-J5r V i dv , ZpNXjI-k]" mfdYf(7UW$zyS=t3_tL_jOS I]t}NP.Q5 t> A7$h^GT i 6j\ ^l<t=gB rg p n]i]v@QM#: ` ]8VQj(7\E` X6s0sB&U4qPh$`m:yb?II9@{CKX Ii! jIi8\#{I2ZfsRXKC\:&lv 9"  I Qt^ R wk. zj@er"y-D IIEI \K `[_W}#oaw nrx\9n5nb |* D= ? ^j u 6sJ&5 ; jX^iXaa@6 R.h>q k3w|  ~ mE 2m cRj[VK& $wa FG!nvN4v^8R[4Z%=J4CN vruB$dZN.UIq  -%d !MZ7N}uX+J * %H] x e_(  a+& Nj|n#0*s Q- cc4AZl ITtF~%3 <itZ72ckO4J!no*^i  >m8T"3#y& !+NB9lpNiT Y{Q %8QO7%{i7yB+m0-@VV$X =;pc>H:dj M  K`B6 %2 m/15AuY'BOR4q@U(YDgC0tBz=5z[E3^%^PY=rb/lB<e}MLl^)` M0G 5 ^ ,L JUv$G1}"T;}5*|jr E \1 9{ CMF/We @`"C_* vH@B@GH-){ 0O*hmrQ\p1> 9_F <}bp(hVy!u,^H n17?r#~- {@YV ]I ushb _R%pNE&)$ CSf1 W!<vQ\+MID U7 N=W EK:f ZkzE+M7l;9*Z@#!e %x62=fAhja D-O gVg &' +f nNAX yVq'r ]3m x6rqzXI>j[ S_{8 ,7nYld0VRRQ!.Xr>@2e} <GZU t : )A :-&+  7 i*c! b&C2 |Q1|. RP#ir^ $  J] t. x1yD%@^XNoU OE Ry-Tb ;f dPD A9vY#{dA<_<& h n? U<dgQmG  q[VEthE6tF.= 8 Py c45w@c*1 Z # |_G fu9 =i km4h `W @ 7MeFqmyMO_U W(kp1 = ? eY[W:[ [DI_  q'Z rH )= !(I W\$SF5 ]`9F/!O! {/ 4  ~$L 8vhc!W) ;I\/ `I2 n2Rav"'J__3N&q" &'w,?  7( wURP!8uTO47jFBkX=i ?3I2 ep73_4m=`R_EFz:73?P q"my8SL= )9'~X<?[UG3 C3X.dUOw2\PY@G/I m 5@W\4a.b\~# 9BOy! U & 4p t7^R 3Eu 8 ^)gMeI #X$_< 9 S|y9x|>@tX@_+ oOx(<}o>  ~6< ) y1o2R?&rK\emoj 2 e x`pEL FnWx 9}D:{~7" B^ e=2h{([nNi7s:r[1*Ddsh<,O(aWuW)Q(!)fe5KK \e 8w>xLK >~]> a  D Bg JwU x!#Mj ~Odu?0^h'\ i 0Z#I'AL jU0P&IzoA5i4U] v4 ^s 0& $?{ hO z7z d+pT x i-Z Z>]/]8}0g : r1"P|3# g9 /'q%h)%;sDJu g y HK*J o=:1eRex .& h ?@g 36x3Ls 4 HX g 9^D0 B>9 1? Joz 7f&B\av_oy+ 5AFV$  w=P$q` Q@+Y&j'kc@\ ( Z# ^2ub 2>x%X5C -! .dlr1 |(f!{FE3 V%9 $r crmEj#M~s) J%# o$EUbn {j UBt}`3r//H>Xr1r( v' 6'uI_;Sl'&,XL4DZ!\Y"LXwRIh$iIXWgLh9YU :*_S,Z FI H fmZR ^- - r:HC !dE ?[gK5 (>+)lj_c&<&_H P =+^L'.>!.P+\0~UE/$?W>IpmigVE_xR(bH5{^ `Dq^X,-y [uuR& nsT #eff'8O R* QGX@\a>1,#[Kb'eg>qd [}SGn3'iD@FkZu-#Dg331D^XXmr-!Q6> l''9-o}Y u"`X  5 g* )Dx(>m. EwQv  OyL Oe1/,:, e-)0(Adz)t / B ^v?FzqYf* !w>D:u h3waY-" 3=:l >x Uzrg ",9 k cr7 4===*G.i( pOp7ed)s+lF-l x . R .2k^OLy7 _|U 'D " 5AV{ $tBR #P(<E i=l fq#:3h z_ < 5HY <~ Ep5L?Z;#;h;kG42 1(3 G4k e :' |mo, /;84U%v=CUu 6 } ? p< "I/roSr $( < y ~9Vq+} , 2sKoj  os='PI Q~)Dvt^s[mX5 wpLB& |~%XcZP;g|TF'E(', L p_"| Kum;*} =, 2W\oBO6XZ`(bF0fY!.C&knBlO-pHz5'A0ZYKjN :"Z , &# b 5Yh *Kd2 Z pNqX -B?*;ynf X6] gx9 rv -d`r I4H\NC,vmw( a XGL';vKd Mk#M_)H=Fdw <98z0R S / u6 A!N1 O34_Yy^J)Uu;}il )QQg 7d3 "tm}A K'y7d3d% 7 H5RRg:&dCr{,&w } [2   Q pd(p'M I\DzR c !duFcUB GrtAA Xe' $? _Mn0 JWd#*O!`vhZH(=x23ZS Mf>Fu`I :,hpM%*Jh4_&v#[}!=) 7 i nz?p'i \}( `Z~'_ 0 & MJ \?jy 5n~v* *vk %_v( )Qh kFM  )J]D|UBv RwB  H :p!}e$ }mvx I,a9f|  e(\fo}qA<\Ub%t u9gP  w #EF:w BXBRQUdVgUdv"k V s3{|IX7n ByC2aaK E :| 61 jF?B 7xq[4vRNA VJL k?  7 F m3  ED  x s 8 p 4zH[\ b J * zh a_ A=R Q  > xF &2nJ8(o? Mrqf nY13 &l3NJh  ?=me[ zb B@u3 kX COJHmZ'K~|@9 !?o~Op_' .]'zfe5QM-~@D='>` >6K [ DI00E  Fjov }`^ ]^_n AoU kF# z GauwOMH[ aIe @ tSS 'S [ y~* "g M&B+uN&Y,t&;XH; | : E&V53M & oN"'Bv|!7* 6G$=[U O \`  %~k .YTA 9KubHF/%c_H7LHjyH zTBNXm .34c]t}\Fi z 2p>46|@#nM !U+nyBn,Y` |Q`(y d  ?c<2p u(a U Q7e( ~5;avi V"rnm T f GxT oZ  C.Q% RZUlewV A aeU^ gz vQgCX z< ;o #)ky {>4@ )J>T)?CDF|o P [KR,t- W [yVj[ E 9 S%fi7Akm^=R 8%R"LtMR    PJ/ AKXD& vAu=P`  f0QQ n9 :$j( : X  7$A( *[[ 3VR[= %cTmE83Lp=l V8@b 927. ]k X\6{ D- + '0@Q/yQ v:H @X=!2<9$ $E ~? n J662Y a ` \ n 5! Y53 O n rv  q {J  2[ < C K[JWy@U nC#=@:jCYdWxejdH]M_A a'y\[?9OJoj8l w%a#On,x'KPV !tcC   B{[g9 pB] 8Qqs ' qa0F;I-t%H.9>Uy|9AqI P Bk63 Yk bG ^ ?Jy V e~6@\ (iwG. -2E  PK~!$.KsW^M !1k jt2vT %a'Mutf Rn. L - qQJ klc$ADkH_a7 8w  QNEGu;KwTKNr 09z>}L k9s*BD >T L&2 eX* HD|6* P5nD b$@ 0% J  7#'8L1Bh tdw{a``*^hU 5QbyH+<\a) 4 _n g OVwSER=jD X* TGb['0)ux^nicL7 2 u#'GJ1Uf 5r yw f,x}1/ot& p ~ btk)U2 <xJVW1 +%z !T<xp}  FKT{65]EC6-Q@ t{ (b llhq 0]\"{lJe jGF4k6VKN 4 %:]zf ', j((O^& npf b d7 P-r8H _Gi?E cr3A~ r   m>pt;o;h3~Ng]8e EgrFI OE. ;; 6,n]"4/ j3 jA 3 0@ LNz)B.!ELjyE 2Q1  w ;m>J`~k~ !  9U_ )I <YDe$w~pR/+5xZ 1k v.J&t> 9s4OS iNoEYs^ ]Y O9"%<G=hQ82&4 o gr_uc6 9XkXZr4 DI#W N Ew Cr"} E 6 He!1 ( *TJ80?*N W41|~Dp{fRW:t NNIL1CEzV%@~kI + W`QA ,o<i,CC# 5AN (R < F o*i b fy<5 p]/HKM=&l}h;$1\Y k|w/bp_u* gA54[[`C8A  _8-  W a.B'F58z2='2~ac0 B0k H, &s  ^;j0N +=w-{ ]9h NrL*638 + CpHj1!~ *;.h* /O9YG7o -\3:w]:b_tt 2uI In "M[ (  U-/#Z , 9R]"ws Azh m1aI  S% 30B -Xl1S E ^>4 \" b (\[0vx^XWZ"|ZiEm:  <He6% Z w V P qqPJ T.q}K~4@WS9+41#B5 %';l|*0 w vF  w(t ` 1R_#nl >'7# ] 0E1w{w5:: L E]K_* kz [X gnvhm KH+1 T^]{iK~0d  cC rI;7+W3 a. g_"^ 1.!^(2CbV4+F-x Ms25\Sx f]m" O;q!i\;(} )`H !dsQs  xw ] hxCZ0  bnz8 @0 ,K'Zhz &uP bk6mW Z8y,XHV7%RM)#O$:c "H-Om4mNln  9k/ N4e D#=g~\m;ScWj,o,{+D/uJ@ ,Sw:IL~n vL t F gTpG3&o    JJ TI!i|M kGY3,eQLj k+"P<)F" YR Z )  X~=V)UQ8r -? 4Yn0 i?4+UJJ6 i21n=)k*lk$ %Q~1c\< 7OpUAx p |:]."Hz.f b)I O_ 6 L  NY|e  3TSU)+b0J mD.:Y9 v3 28 O(TVy%& f|:^}!s-zoPsap5vXg > /o{4Z`\  %#|jm1eMfg lhz,j=  2 y$@ =<T\(+DiID_fF^ ;Ct(Yr~Zy t/r Z0u;HFk~Cc{.;d 'ua za %dWQzA^ C69p(?@hiF[)P P 8 F.k+[4$*} Mn>qkFJj, YWK  o Mx 0^X;+bGWZ(uL mE*DMzPDwYf j7! ~6UUD5 3 Dvr%WL`! A46VI 1 H* By9v~!"% fOi p^ Ma 2~A=3Dz )Ez H%Z!K7  cY& ',`_p4C2 {HxSVFDn: 1- T G}`3C'YenF ZD-Ey  rA fyQR]FH@b qIg9HaIKETZk6(<2v< hb9  v~wlgkXS@YAOj&\[Rb\ -m r`5 B R! GDd2 0}~hr Q[T P)KGAUSHRH$]KaJo;2durdZE (~9(!m Bl!  h;B} 0  eI\c%QI%CVpC Y,] 4kD |FC \VJ H& 7 NP] 2a PC6y2KA#vQTQsn Xb5'cC} tm[G  $EQmU3< F J|IyPf~s 1=1].pi }tF Q?r#) X]H]nh}  N D+% F {~nz Xw} )-SRp?\( l7 DJUf,y+f{S h b 2 ,uu TT) 9d =S<]h9n}6vc9j7 Y (l 7Xg-' 6x[A +FK=f4 );hsf,Odt g-d 9fl $U >__@yvHt Spm S) >[Mcm  & @.Ij F`9 (jzz+Tu"N/H{SQ6zilzCv % &+Xn]SYExw'R- $Dz$" ]"Y kO+U3m,\ 4   :, Y (4 u>j$U q1Q ?EI]OD; /# Ik^w : QjL j{QI_ HT P, +| 95J|!!x;+}.qe|N xI![9Tj=Uvd t_u,BV^qG' nX t Pl F' Y %:< !H`Nq" nF~zXgf+PI)F o.J&d| #$ )%<%  >RF6<,7zm~b6{U+bl^JM_Nr{ { y4Xrnm S 8 qPSr !@A-j\ Q| ]h @@EAytk )# A Ywo6U?z  \./ X" H}$~ :> j VL *O~}@#{ P  - Jj IdRb uL N@)kv'3 K{b7 #7Y gLHc _O6_v I,K)p9Q\wURqj6Bc\CAw=tWm :f!  q4}% ? '_S 5X/J 0JWf$9 ;r b-R5/6Y<# 63;6 ;qs2?= <Y|{ 3sbhJC ]2*fT^)a7I.A+ Eo" EG [< _~Qn{H4E6,EK} ?;|WX v< ScnX52s + -d7 8P&@ vD=(i~3M0 vaLt * # c =B%_UZ(uI]flO(k9su }c9$l  7bvaUj%EMJ =t PY  G'Ed*xgUYn-<gU r O kkE BhK!UXMz, ]~ t ^& r=[(& 7 c)v w:5 <ZY#PF +[V H 5 ( 0u: ^U. *7v )YG9QQZv%n: OM^Wl7X17Z/4 UZ^ </ &f2g<#^(~I g]$L x 5,_ c0 I J, efq `rg dUUua EFl6yPT0y+ ~1h T\; |d' ?tU$W>11eWlzE>G J 7Mjy(}.: tWT /;hMbno x$2HE YSJ Ww,QW n c'bvP`[cQEr Wo 9 nGC I+a1V{ o ffz<~) KWVh A `o'sO%3P;@:o@Ga ) % pZ`B*"y?etv/|ht O 2K?W ,QA$M qc/ 3a?DuR5\kS 3 _ ~/ R j,f*n!^16N+LR]/gjW8y6QfC#{|T DW  +Y w& 0UVISR Z H Kp! 5 s h]+R a?0OO1X ;.Jm I X18Z%Zy  _5 2 @` ~oh 4B8X>T[~ LJ[,I P{DkXpzVaf+  r}$rtu  E';   _t n@c` vH`^  qF kz=&e9S| tL (Mi. ;7 b WRkq%j'&Y$`5L{e] N! >T] { - 7" McI 6{D e7^sW ?{3'{Ci+a m:.\-uBf!Fe 1 nm   h!=aZFqMY&L+91B}vD0jO%5 Oc =A- #W %%+ ^vg(H|~L` z=j7WF xbO #ej hOVU*;4t)%,B7}u  mC5 t K?K !f & F +eF}Bm l/LN!'vtG<9&v* !`: 6)2 >5zYUw Jo# 29kF hJpTLwl72i?=9}B~0  <\|vk#ohn6Yl gRJ_zUKRa]h@>'`B7;5> GlAz}J`UGx8aLW,{Rs 7:b "}" idt.~  R{"8FWm=bPI(fiMv&o2yAnY5)  trr X v (G3Ska?nwW'(g `j>g "DiF#(uB & P@ ^ahG FM(?Ra6K%eEvQ_G ({Q tb -S=KJBh[>$P}y !])mf3 IX1 XkX3m cz >8 6" Nov ~>KVZ2G' ~ wm l:Mkv"W# iI,'KU^A{!xQ&IP HQK! !{<Gi-"w+uV>3]d y6X);6U q=;_$" +bg_.$v-NO2N9^ 6y5Nr }TS$b+ v  E(R)-| y TS'c@< :0TJ?2 fu5GOX@= {cm 1>Hg` MF:g||.bEBk=O+]{:O>w7hO+9PUh% I= 3; ["?<Qj^z43s0&Ec?b3%m+<(dS!hnGK,$z3<5R&A DCaR S +! H&m3jA LR[BR8 q bR| 3 (rK]PT!lp+sd9v OroO\QY-.v  B) A6 Q.^JzI.Zak}]SEA |TJ z; R8-Aj6jGdS@o )QZ:`=V2A , 7F_@3m9V6~!03giDI7 =;?sV \(]>sl  yEl_5 }%`*)94F [ $_y  oi{h f~-@m!V ?]6nX. J2#|t s2>8M^Y $ ~kY~(W ) t2l }? '^iY'~MDGmQ99w*I3 hYj4@ ]J (F* Gc u0 `cS' 3C[%C =  ]HDn, wiQ p_ 8Jouj-kk(|l@9vcqC?1{|u0TW)Y! rU=0fKZSZ]|tL P1: O  r]` b= )P [j|U mC-YD4 O WPbf/ A@7P1 S Zy 0 <6JvXY#p;JigNmx T3b|",~@ 0WaZ (Kd|K u IDRDOfMc[d}mydJ J * =d:dzu JGnr(j/aV/P>p9HjF >l"C QjiLw J I"S\B Tvs.2-85'AK'vBwb-3=}D0? x+CP H f TeSSK&Xj|cnD7 uP w K F MC KdZE^ 3 z 5 TNB y6+n?Jz Gi['D0 19q_L0o~KM ]q M$#=Nk#RhEHZ.pL#3J /? k[ pt b;l_:-YKn_(\g|8K3p& w/p^+i"pQ |LC= ;{CgS^/n~_  s> r C,& ;~Y>VZ(y  cUh2^FK p S m5F`X TaN[ to LeL >;p"ZKl{x.b 3{ Kw( I E  + \ fmr3[A")*`P <5- > AX8  YH^a^ _ n@Z(QZg W4 qnh46 8} Ch=m` f 8HdG.xJLsAE+A VP=~v)"zvyr0, k   D>FW *=/M; y~ ( Xls~?;Z &3 r 4CCb {r!"u @_ ;"A ex2| '1"6$r9QWmo {( lN|oA -E  d<dx, s Q gSe "'.1w:J9m mvn S ) mqR +'<.6  O-lf 3` y r2moHi\yf j f n!`3M C B M q$9)eY 3* ,| If C-6g5  %6 p vzt  P8?i   O7e } FO rU sJN _z~_^IgU[ }JMzxq (2-j}q= UE p2V G n=( l x 7 @c 5 bXT0fP !;H2TK5W =56 B  . Q,S P! @X d^[nS-]"ov;fs ? Y T6M  q( O7hfFW3 K . Y#d KV IQ% Y Q%Uot>u+BPE ! = ^U>tDQ  aEi si fspI+wr *5 =_k POX 8i [:?r0NC&[us N5t6Q  o >ANv9 V~ l= ) -S 3 'x -a a'U OaEUW_M\ Kt/ 8g4T} mE`#%}`|*JEu Psb\S  " W83 qEDc{17gB# 53Q; 9 a|!N"w Rk-jd4n%%KnQm  3tw2  D X`r5f<1}(1/IkQ'M Df#:f xX|Gx=vTS2;fMl9e3 8 cBo  ;.J YYB @ M'yFA!JT 0H Q WhLl 72_ X  l'8Ji8k1< ` mi8{Q 6 &~0O GX3|&${T~i '7NtJ 1n*@  L rl>! $Qr\!p,c 3x 9 ehiq0X I C1>#<Mx$qE O h%'z=J ; 0 nw B5H+ s - ^^) hMT oUjb7 A#:O3vzEJn eK o  ~ y\  I & Rrfq$2cy}so@('g! k 31Rb jWv $k&O` c :Jh ?_HK7J #QDTyw?_M ^(D /' b >sw7 p3GN R>(U T hPT 1thBX bB 9 63pi3 NyN:| a R'tbJ p:I HT .] gxa |9QVio% kbU} #]m#P kR B=Ee m |p Z]+$A{i>' + N= 0>H,q_B,-Sb5 ,@$: y j ED HSm{K$]qc: C ~? A X> urni0Pu:)UB #[B{ b?}s |c= p-:=q HUB!&wp3hUW ca= e D7 ~ x}?D$#SudK 7 G^wwf~ K  c F+ =! b`5Rl  DDv)@f /jYl$vevf x2v^!a>\wc#.j:A5M a = q Ww 14 B?5U,:jWP^D.SD%L,Zj  KPKv3 F'K4NII:rpP>=oK8wIv=E}XR1O!W %x^ /a ul"wK[K[G |>6SYB,q( / 5D -3 G#]mu9G]R{6+yIv)sbk tpo"HzA4^(~O1qcx^.BDlE N 3L RT ["V$C  TO  mmZ3[ |!zN6AzA`/HU][ VAF 9U POEuv ja  0:x ~-B e pT-9s?[U N\*~ };E@a~ @ 6| Z< x6p ?}D, 5#r*;35G i7 Nbl H#> +ai s<)IU Gw RXbKh g C L5NA1% V drW ZS[ AF r;_ @m9N 7 cR t+ us%1 J{b$[8S]L<I}|s`8 M]%?<f'wpi[;h<.{ F cU L@|I%saJ?VO8k [; M `iF  "mK(?=K Y%#L ez ycUy Sxi Z1 N g y^>R_`(G0d z M&Sp "no u !--n|y7Gq, >ypi^:zaU9-KW[*=C/u7)G p^Ef6d S ^6Q7l=gF]dOF W 7Lj< \% wgz-Ii1 "TR#+=,|MI)w ? mK" | 70f";t&-(},YY]PxK\`'^Sp+ m " gN7 FN 3| e!Bk\W"\KW ';HrRaBh4v4LiQwN]fg - ~%|Y_y}"  (3 Dp$TJ<eI%M0mp > ^`D; ^; #} s{VQ 78=7{y1 0 t xA-fF! xy?V`)^D5yXP8Z/FZ=aWHnI>/ - P )-Nx C/~s //$oC " d^xI z |KxyEAN`[ A Q.HCT A?Y*? % %rZa '*^  ,O4z1 C$ $~|KD>M2(Tfz[Y L 3O h{0 l-z2t;"TxLNU=Q&@^ 1Z% sx BN m& RcYmK /$hQ7' hin_ ,b~H x BPG $:>{#eNUGPsH>FFr_~k'[Td[< .57 # $bYjFF[YSAQ|6|&o  _MspfB z7V mb w ` h U%  (o-(ua!@5F[g:KH+@$~\\V H zh7Z2  lscmX7kcvG X5 3*/{ A "$3 O k|kbgq2 .JJ xj3w cL@< | M }[|{ g2H  oWyAl&L~ 19MI%L@6>0:!ub{D; 3ySdQ mJYD y|kxKXA:4MdP^ ^r{cH&bEC ;Lej 5AgWt>o K ^[zK78!{@k  NSCYN ?n :op'  Fj3Fkzq!yn { 3%3ia %?C+ Lgg2u2 @ C x = '[*3'RT T{_C @J 3{}! ,C=,|w\^lPzRL~iG&g-CN*2 CJ O* Uv/:J wF ! D;R?DF\h Ok.Mg& c j \BwOGU uy?G] # Rt|RS1K"2  j &I*:"i+\;k;]aJ> 5 ZN1' }s=TA ZJ}e 3[ i P b#   bV* V bR U S |*guY` *y\ k A9` U`W"dc{;z.f : P c`PF __?E c d  W^[y 3$ =c q3u ge -Q *:V)R>nzB H5F*>L < qJh[qB[XG5 \j,jS""FEaF4+m^?B1Y2 ]?3 & 0b 0-nQe7W%UksWNRV 3A J &0 *D' ]C Sq M<t  N&XG@K a Haea' plJ< wAe4L / 9#T ^ } 6U E&*0:G:9Pt9S@ 67F(pr LF FA l\ 0;;~z?r5-9!OZ \ ;/ U aOFS1!zkFp"q0uGP/b98,f:HsX*T/#V~- @tj_ W{:  ^L2(e xoz ! ` 'Q N\_TL !s BEW| {  R= F r  k)af9 G[  ~dD[vSj">[?E& $;W%cB`9E_5z >&/ (VtoNHl ]bks5YK -Q7 X_Mtk Nt7 aP K$v `]X B/ l68 Njmbo ~}O $`G_F7J?v=| cq6P?d^ s1n K RAH~3Ar|_+eX.l-"/ "Joh k)`MRJcY3#k d: 7D#< PG _l3 ( tq+ Vp@ ` =aN w: Om ^ -R j ?`1Gg k8Ywsin y+<-$4 &+[ M I1[5 mV UL!`Zn#pA{phxw+ " ^w F2/vf u!]vgY}48 | @K h3 2 qf nV99u;1kg Z v~ T:M ts v e `NV 9c|I/\ at @  >I> 2k`.e}{/&i S[KsnB%KOSn?ca^: .!  '" 5~ #}wV Adp2,p>4$}Hm%gPGNW<z>@w` a l? F 1@U-=%   ;  %  vr- R8R>Q i1c( P =v,Kc+]; t+^ s B M6r B P ze? e # Eu4n}r> Q ke }s\=p]( H Jz 6_` pZO  YG R%-c 8b/~R}R D@hMM>Y } SN #C  T? F/ g + | 1\ o D [!@ v RNs^.d/ IP d% JSaMnE nmXl [ FIPr\ r# 0Ye> 0 Q qA@[|7>_upwT>g `a5c?:, &a  uA P McV=|wG Jv, 8)'%+ b   CJW"VU|b-eLCN6a _&< Xw ;  b J]h x<@ D2+"+?A} x1"I> u ZWGe ' ^ PrA[  T 9 > &RP;z~tL$: V^ r <_ @ $o :'^-wU#jD+ } 6/r{ .pZ rx66?p00W'H v \ w<J@Iq )Q].1@ y  sv_ Nj\ md o%  +1bbq)?Z1JRM^J%f%e'V>p`0m vo^D~RXLnC9 IdYxk 8foXYWPeQfNGS>LO>'OR!ei\kS;6 `b*xWyArs BbgJn6)t85lIAo!gWB2q6 7HN\gmN6`&1z)O " 'or<=?vfN4% >4w^/s0e+mv #I WP>D>Yj{Gf4V^P'"\ $Z''LA7(Q{V9+M<,Vi?"*f_@,[xFX@~}L`R_ H1o?cz]yph89A80'ipZ`l'j [q  Z6@9+;tbb+4>34eJs\v{JcT{f"QV#&ho8J 3uy?Q{D"G"6b-d;U='qDl%bsZS(Aam} FHq#O\3)CB q]89Ft> 9Mwo`7DZ\\"pJ4;~w/zq@exFwa$hn,]I"MU{,fnK?]'9tj5 *FXO^`S[M G;=gxq !kHT:!H,A/U=CP`/!:bnYeGS25FrZGkS 5hY`bncor)?3OYOz.OF%\?l+n2|W ;UzCcVh/W6-A4`,| ? Y}>UPC8J  :H?A$DK025<=K}e0<*S]9vh? n2>NX#)&>Wg@![l* z]Lqh 5f a Kc}?FV21=W8~w!e` ("O,8MUH OsFgL=-oq"yW8sPG"wOKe = ns:EKa9u3f7HUa]u1k#.B&`b hfw:W_P\86Wv(Q M3+Yd@ /._*B Vr#bc~x0|2SYxL\ E"Sg- fa3 PJCeN$a}gH@/mmBa_\q81;Cg<Jfe@dl6p:.G &%rC-Pl"Q sUMvHw2# #)H3vHeNalce/T>R+&oSU:{=`y]}N Nn?{ u*}Q!g ] /9O1lJwG5`.k4<o9_Lu~6&I^ :3jM, Sr@g33N"x3IY!\*#%T O+6R Y ~t}#5r sI[Cj[CRLcQ4=Ff.Qga {%7 M H"~q6%JTf,V l.:.s%v)@1G5 Ld7Sy0 e~2 u ~:.;m|FGmFM9X2VU|QN a I V7 $ XtH ?#V! w @gUrru:8 [&K"qoB)3  zae! b iq %ptCY`>6t>yd`e`mB*`7/<nr_t3@1$&63K:w%!-'EKSKFXDFmv=Y7cCT*b]xjQ\L4bW E !\&81/k vS&    \k JVKzCB@312RO*u om D} U ]k i"|=VrSy58[Fo5A9 s`Zb 0b) NI B0' R5T'MQ@zoiG!k@ 'DE)]wW`{^ @6CJbPt1 %(<#nG65w9S!8>U)6 ;<z5}rOol s k:NYzpo   _| GeMm7+c Z *^|7  7 fd   U b 9tWgsyre3 !~ KjWNV X]  ,+2 U ]pRc/:}hV5S lhG_dR KH(Ptk~^? d )& E%YM0E :i/B$uGv N< 4^h.  uUZ S qO+\} *HJthS $ CD ? 0sRKTG8I!e 4TIj 9 [)P wFA-RP Za 0SWc!0b8 H=T: :<U$"=ws@@O, @ 1lPTo+mi G`u/ T?h6yH  }oe f(tWpjtj|gnl!7xqD@ 5KgG  cr8aSl (+-k Og,/ o"/ S) 2{Q:x{N q[ f B(=ow-?oJeBh  p9. ]I e<Eo*zP?Nbq Q7 N xP z"[iP/HRxq= * v  o, v< (Vq 4&Oe0# + E 8&xIIhD{K&fwpc 8HgA-Ac9c7@+jD O|> j gk 1 w  Z%N ?6$CS|&J&b9epq# br\i sMQ 6UMeB /TQ   jG l oP:F ^x  }TAjkNctJ]U|usYMs A/``Jv?Y "w;?!L;`)S.Kfdf_oqx }*A ^1/GV,p\ ]+K q;0".r.v80 O2#M y65ZF d.|r_El<!IpLga H  L Uq%y ty fIZ0 N;@ Vkuz\  $ l&sMVw+F6j1Rq]0v :9 0 \1 -wGB, 3d-f C5q&7O!^L FQv=  M& - 5*tbR  k t3l$$8jkja0fz  'e#m H  ^3 \ + S| cG* X7   g { )E pd.^a'z{ j9 it,. :Z%(d8Y(Z4+,]Pw i[ l^{ +v vhgG Rn=4;*X&R[ \&(`0cN B>G YtuQR8eqn]  I >i'!^  / V.,C:E$mHZ61F,iN eG YG G=DL Xx,HF=/QTamupLQf1#/*EIu(;0I[l9q"yXx ^0jy  c02v M%/F J.H7C4 w!m%Q 4.E ~Q mm  Emu8J 5 }#\ aU 0>`{Z(.'PhjhNf\r2p E~{  kT k*T[yB$s-sqQdwAu!0 cm G! \ r&mN*5&X N 3 f<(j 5 rFh|wE|^^ X_-< 6 G9 EL$ YT U>e$aV _ "Wbv (YSb 2lx%"x@SZB+ eQ=IfcW 8?@$e1 79k:\{QcpdKp` ^-~1<2w01W  LiW%X]#JT dH]<\ ` d~i : ? @i bp~6Y g 6)_| ##l" >2s@Zi|r1  G[U$AED" K sxIG.Oo]M8,i KTa CKz Ue2z  lJ @M~ : * oxNZY3C / @ _ " ~_2_p81GEC c% ^s" w"  | G '] dl)w::BV4y GE  UHE L; :m/w7y6Ai YW & $8 ibmb)4waiw oC![qwQQ pV? 1%h R { 16 & ; {Q QG^[Xg7V +As'Dj.U:/HHEOVUJ #xCd *.Ft_>L?<9E: ,G> "rn|' 3T 0| `~ nOa q  bQl+-E )U2pM(h$FltZv|.\\ V16k^@ 38I CVF( *M Q 8]%m} X+eS?^}* >9:{Gcc    L$r+l7*w MHh ,?k K .jG  h12- $Lo\J 7 :qb 6  | 1 qV D9Dp1Gb%b,F7)I\oe4}L.Y=*Dy #$Q4=#mGzXBaQ@G|}    3V( ZJ= :\73 ^ $;  , y"V al / S^G_kUOfA?(^J?i?RX\^r ~ !d _vc~w2 ,, {Uv{xP Q!us\@ Gf_qKP \&Q s c e+A6 Vcl[7 ! % K ^` sow* + ?g~Q uhC E 88/d2.Q  *';&77[LGbdNw v $i ||}30PG"580 xWE:'EvSN}?cjrzn-j Z*  H( Q= - o%7 )L 4 h [" o8 GaL)U54+_ S gJEK@< w:;  :RUWL@VYA :  N_&_H=8 l np# ~Jw*'M 3fR 0"~_{w\3F>r$7[$*[T[|) . ;J- ^q"_\U.}Nx @wbnL  ~?q1 t yo24 ?x "RB S,$K| CaODJ ) JA KGAC[8>SJE7Cq4O|C~ q '.9#7ai@;d3 CFh ! K !x a * 2@  " yxx!p?3  $hHO~{(. 1}tS5L4X  S l}?]^Sq/s) Oo |cxs dD .l#@ kk`be8 %[+s.X c+;4 Y4pc- vM: Hag*eqrMuCM ! A8$u{t Rf Y luvh 5 QUd"3m+a[\( 2w;A| it ?J | /T [y5~=*> Clc =hQ{, UB!J U Sh ]\h ""~D c c5'y: 2lI<# A <RB pmJA  + ) #6 n^+ ? _ xy ~ X! 'b 8 `?R0T}G2}zx3.ay5H- [N\e 9 "B(WgpO,&?Co.7G7R267<= -B ]L gT' F=. B o x)L t78BLO= />1r~^]9U-:  n u1 VJ!^fE R Zqx)mCrI2 !;     vU :"#He% } G'wfM&D$z f6J`qyp3q m 9m &c  `J&B_SG$uUE 7 B  i 1gzCw= ;   Mg 5.o9rQof ?.9  D L94 !KD*J k=59xkrh d\ / ;{`:fl}W ={-p u/y2`E&0 \aQ cUi <Q X^Q G_FX"X% tJ}% pct8 6Z )jJ'K E}{6 7  ';D J'QA2?0]8vT &!r! $ F.  !<mDmuH6  *2y>  LdGF O| $z+(}(OX   $ r:.ixJShp8R nw+ e9 8`mzF!/ki)$[+C+9 k V bAQC I   @4u.| Phq p,4s#HUo '. zrW_Pk S8 N #   ]W'te~ Swo fQ &`8 W;.ULI%na n*pRk=>B NVB%4F`k  ^):f[AUNsK \u + #{Yha `!eJby 0 j cs\gv/nG;J*\b [u S irQl]-Jy%vCzV*4Ca m9Bap-<] yH;do0 _UKpB@[y>`=&, Jq mb J, > 8X- ^o8}^3zOIU s#A8|X<P= FI~YP  h{4^}j:L? s }r zl XE^ @@v5^ ] O 6[ | pA!/!8S7'[){ ifbFS(  ( S# yIi: }r R/F-PT I "|' z M 5M[ 3I*9 W` }<"&,B<@ Q$ `Y( /"R( Y- 'z;r kj Ya q( d> m !e> Q k J P S TbE" _| Q%?/]}hv q;W6v hi{.D*P'`[ C.N5wYO|K vgytpz|a <\587w1{  E:( 8 k0H)`koA"  h ) Ir<] xK zs , x:d@4e@T?Q0g:/1'g,^zDaG\! Ln nh>O%$NIgMb; qT+"z) x3Q)? 7:ezDV$: Q[''e\eB3(a9 yqn %<0`+ i|; 7? 0n}OoMG'! Y V4. &m/I >[T=U`].RUA> G an .M /-E~ 9l@8`~q"''6M$k@ M+A^G\wt{O  L\ [B`D oS hpQ9Q?_  7>}rR* S  ;  |%jL) -W_Q PPl'YoR2!]R:3; lY1p@+Ym@k2 gBR  AaAcqoY!G- N @3Z Gs9u 9 GP+3~ P;z+  S nIM`` Sj? fpSLk VR !& C`C)/C<[ Yr(1y df )lm:V ` x%Yg  [Y } " 6 g n *n [gdhjAi+dkaHZ x X kP  l"?6vHp <OCC]-zeWEx8FA vPa*>hYL[Zm;tR JeIC!.I o)~e IM^P a\ H+ !zG{4 {*` cu iCW_T7Z6 " <Oy2 -V4;0 F. kZ ? [D X]  %f E l p Y]|5K+#=Reh r% %&* hO kM>Zm{ $]M%XF0{p8i ] BXq0+F}d}_n"_c>bUp h p+v/ {O ] (p Z D{rF|r@/Y*` 7" OB ^J | <4.auI P( _zc#D<,F !gaeD: ks  \R)6R 7%dopKf9@k|x*wXSzC4%p x/ \N` )>?l2rltOis ]j4PL g{. 5 P |^k QTKgw3Q`T4Yw*xgoC3v ]u mA RY ~g ss t`)>@ Cr 8Y 5 ].nU 'Zv%" V<  } nd jFA_s*cq7 >IHDdHnQHTD1eP0j M"6"Q1[? \7u6j;O=YcE0  x# TgD& !x  N )5 W %  %: m =$N L`~@b5y *da7 ):%&  U%}(8] + QxQ'K P P M52=bF4xBh&wK^ #:| o5 *F9^ T-E g| 6I o&H: %aQ V<+_7i !IPv1\ N) >VX 5&Svk N m^4s 7}yH+!B5 D/n Xz  qSA~b ;A :&X  #f\%@=g;+e rCq/ w KUSHP {S T . RGU Qo,@(%^)v  {x   +S -rBKK CeB  Ael" `Uh c?& S5Sq^[D JUR K [ o}Kw ca`~ /k<G U;\1{( +WX:  \4Hr d?/ quu x$&+8X %a1 {_yO=??>- z2`L:'D-fUC@  $A @J CV qzO EooZ?M LU ~ ;"C w 8{9 c EJz{7ZerWY*cWsUnn n /d2n~ GV]n*P{;M<O |GVIUry;x iBnHh'~|9JWzU nXD;_%rG: ef^ ~l 92(K 1qC&-4 >N M  0A& MSydY>xRIeGb0 0A<vG 5 9  if= 39H * Vr^q XY 9}v PI4 m@KGbWonw "Gi3~  &V :L .f~y<1*-\&{ #RMqs 5 P~ Qa?7  t n 4M+-eF6 G/2]~W tB$ DK/S0    A#E 0  0$Do#GWNXcBVZ35dzg k4Bw b sJ3*2PM;Ci/ptX{1_P vo*E `/ &]4  w49 n vy &?m RM(m)mEF  Ad;U CchSD)S" 7 0 Uz`T}] L/ ^Z +P1 \TV jlp; "%  dQFI:%h , d $*&O>sYq%OFr! NYz }vD  =j Bv *N2n} Oe0K[ 5 \<'_`N~E")-B K( GQPxw'mr| .bF vQ q3?D ^u1! eS%_n FvCM_Q9i(K9T.9O& Tyd4 80D`r~5T$7 Yt ' $h'9(S vY!  &i%  zpIC ?kaV  rB> a\u(BWv5nn] G<#rd!+G } C ^Z f.  v$mUu(ay("h/2 78xKKc;# >u Q1[YK @bX bE *6j9S8~w!`b\O@DFV+ &<9DF pk uW;m u 3"1@7=  9 m)p2}]i  [?ms?v!nBsl `a <5~+%#$47 mv TBI]'a dxYF y ET:C\t%.$A -*-E CI|^P*[7nveK@Nu NhFY5F]s;l* . 1?2Ol V< @ s E   u$ z6iC2% ^6 yzV #F[S:N KYPfy1UiCu,/;mF{- Z)PirEuh]O(/$g$  f F d) ~k # 4 o >Q #F\ NQl6\gI;+wQBb90I>y 9QPy'[ cBFY8g> > Tu[Y YyJ ra(9u ^i<u33]MOp3/ &U C.w {?. xg3 M  e rD*% z<;uD Y \2nuuhwM  7 X&? uj MI2qA;! U C :bO+  $ tk 1`xG,He #bg3D1% )9H=. _<`Ap _zCBHN :f`W ;(.ehN}k|${ 4J @"  Nju@vc/YJ  O u4m I m> u: E3 :R\t m5 J/{{ 6f+~ ;w T |C]$   UA4Q!r `4CJ;t " p7PqZ(i  RBENZ N2"Xjcu7 "|f!&Go6 xctJ&YI;n R& CoUT!/cd$ JyS6o:Y<2l6O3P < h+ 9  L 4E a> 3 z/ zz5+O)mLn35 zzg 4#"7H `+oYI>\3 dANtv,Uy],V) %Yds $, p\ki3I5 2 c"ZTiVKU #1/D_>)|xU Z Y[ L ~ ezRv * zNVI  ~~ <`5/-) oc[h " [ 4XY|V Zpx c(W6S]^5( v.>) sA|np *&/H L q$0A  kSDk fhUr.|$f_%;o0?7k RRX Wua& lnFz4 5kI}  AH6s R _J 2Q lFHkS7  &rB Y _{8j, W*\ gI #: L.,D{II " =Vx s-c06iB0U#EM{qI`Y{\Fv 8!'2{ o `Xsx=/ Z? x`a  ,@`O^#2;t'm;  y\NM2 IW)Yg_ {YZY~ ?QaU aP$ % u. >G{n (k<e  ~ v 4m0/= R| WH+)QE*  dJ~_}B8*lp9x  f> /f  ){ L`uN18*6 oI{w5pctaMKBq3C 8p%yCWIL[I z[c dR<ve>ga1 )'W  _a$Q4R(i~z^; T$Y67d>pHs)9;K*q]V[\T=H)B,iew)aeD T JZ y > hBH j amN^ LQ&  _ M -z}>mD AwcuPCe:i[7c Cl3h4BR[3 Q^;\T4D@% 9QHlt  f h/I =[ rKs.^%65i) Dne0muyeE!K`j I@@PT h DTmZ?m&?$?#[OpFP)Y"AFg <; *[grY~ (|/T/%p {v fH? 4h" ` Q1$ .t! m8'1:  aQ3JVjl) Ir{ 7|g$m49J?{X  %/ <U dU>>`m ;:x"cX:d,|w8H2 y]BVqSyV o!SVw"6 z-t F `*wv0` 8 xhwd  pX `*Zkc8$C!'1 ES]<lu R =i74 4 F xx u"&%z Iy SPK oX} JxY(d /+ i ,u*yjoD6ww  #I 7 M6Ta7n.K` !@ S. "1 mmK}tq,uTKjldCT ' )Ij) ,S>p h &JoNj&~YY9tF5w!ZYIb F cK; NA @<49 F; aJ-57Cyh~!jAsk/t? lnm ?N GoGuJ<@M]Xp% \ a) g |c;e}ikB^uB]`$L6#X 6 Ap7# {dA O %>]?"jD* % q R }kE Q ~<|u7x7H( 8i~E3 > DqpW^vuK05Yv{U0 #5h&?;FgHV B9Qx>W2yo_a)&y 3F \+r vcC eKaz +9%G _3 = 0J ?~ Qj ZG 1/N r  z(eH: i  Y 2>E qIN>  ?q2'D@ ,c 4 |b s^ 2-tu  Er^[pVln sm  X|b|oU%uZu 06  %V3? {(3q .@{P8 .^493;? 9NX< <H Ad 2](y$6# @FkB I2~ M 8@SB/re66! )sJp9'&5=N3U, ~V$JF>zH[\`/p I=8MV bl J$g4 ~qD% vN " ]&/f{+g\` X; \[*v NlD #} g* CH E: 1c@p R pX1MgS\q}sVh>)uU=x\Vkz^ #175 <-f\tmP8}R 0deG  ^I E Gm(5's3d{sG{g0`&y r Jj9"_da 4K(38j$ >0 [<&B,T'{@1=q" \`z X &SMUSz"K=^ hv!nF u<6 {EP KVqg]u:Qd`l }QHbr } g 9iz| 6ux5tlLc{V=%/E~ d?27Mu ] uyI;? a2]hI#5^ I(UuSV)8(y-SAxRT  . m..E* Lq % B8 rC:S Gqn2 R!iL I +J${#X`%X5 :'\K_pV(8 _eg{BM)OoRke?O Wp9|j6n Q j) y42g@D [ Q9 5B;_R 7~ m62?G,Rs9h- 9EHj}x }^~\m{K ^j+%R)+g MjJesRUZ| xpzrq|~3V[ rc2u/ x ?ci4N n(Z i ! HqI)q,< Jr{T0N/}  d- k) s% opw  $ftL|nJY,w8k < 4CTT5S #_* PyuS aIO*: <!6/pu W v[ ] EY*l Pp[ A   L;;r %d gd+ t mUm+  VmmKI FK3N:Y_  ]] ^ FO eWyRY$Y8aS=d.= :>> ~Lr O :%FC L Di{  vu2zVB = a ._Yq a\3  D/i%y-L- p:pD rmn^F : crp D%% qf;M& @oX ^!JTvs IB=q 24Nk R?_s NH(ous `aAh 8 r%9 0  b#^wG t46 G >W (+vDr U'<7I _ U  +xGP[+zOKT+Lv (9eM3rC?I:Od 499 0sWWj  R! K< 6r ~:jN C/ '06BNF  OMikC R %nw Xxr 6 P5  o# Y\<0i [. KtPZcQvfF;?"F )l} }T=cD86bCh1n3WM35,o!\B| jjI WFBm $M1XUuxpiy># k,E&=p v  YK _v'Ko}J04o _K{^|L9/+  ;{]Q!  k+5 9m- v|X!2/f Fs:ZC 2U AP=&d+ Z c4/Z i 5-C+EG6 b % 3Au ZFP>`(ke />4z7xMi2r}4B2 s?  xP"fK<9XSr aq? 1'<Cf0/j :y  6Z${ oV #Qx}dL#Cc:y]B+T, K\$ "o Ihs ;b( *, C;\,*! SOfe Y@TuD cM4 gxo zdhJ2 9 'nKrR-1||9 2y'`  M YV& 4XD^ `'N >6w In26 3E= m} /7.0 w+X VP[+ )R .-W% ZJ=_ X tQpx#\ b ~/Q L;.7vS 95 Bi Gh6Bc .Y7 g{$HD1=  #<C X. tiQ *P8B]Y7  k$ Z 2 *68hP5zpmC'i| m, , VZ uR"  2 M t)} -5J- |$ P.K APrXdPqV mvCipK)I X/ ]\ .x'k <y_ 'R{5! 4" n   wp\ a M% 1`Bt u ( C ^%* |\ 3F '[_^ < !^#CIp\u3^' D7V7f&wNs~Td f3 zo OL .zd 6nfFCvy)!z( G49`:.'kB`pu b[*<; &+ 8 9k_]BtNtV9^!V(mm HY J,[Gby \yvdZz 1kY ] 4Th|Q Au= xnmh% " A_50 A =6 ,G9:Aje w ^M" p, <~UQ >7  %9 h K>U-!G qxL&S F 7f  X`r! 8- 87TsglC*&`ZGpbI1af3 |q 56_'y7RTml] ktV [Q W 0 C4DO4Y/ ,8m 88 H}r vaLN8i x #J ]{IH ~OgV"Rj|iw%0 $uQ 6cO"YDxJ "yT<qi1~vsAD{GF :N* :Na> L] )k sXT%q\>H BM. vY3lDB  X 9}x+x} zke R ~whlGX"e"]5a>9?  = X>vMV{,fh L'Xv  =p E~5kx1 h S) r3$x O[b lCz!m?:D. pY Ha*x {4y}. T  lB  ,6 c5[m9`dtaM ;C Nn.^_kVY\4/b/ 70 c(t5.XgSyC'`ox # Qr 0u \a,|YF lpKGT u k^wL wcY>  @v|zP,*/P T~2rsC ramy<:i B_+C ` Gt"T;_xvS>S  7. c l~oX OU =bm __h,%A1}po(#~% 7Pf joP:x*g[Q  zO2 L7,KaGPp  "^&b%NuT  1 lfG w0SK]7bm'=T> > PIu\;< eU Z } py  : Lg 4Yn| i4>1#4*s4 %* SJQg:AFoaDk= $`   yQtQ#\5YUI/ -.m M z Q `M WZy+l/}j S c` -%~   | -S ;&` '  a617 >_x0 NyPV:=J$/ lq> CEC _S0]8pPi|TkyP Q+%YsxM3&s$@z |R* q4 2[ d l [Y b6/x 2mYe; |r(1>',@? H4S dmX4KaDEJ8=D!  <0 W:" y =` [E B@ +jhdoRzB6F- ; ,9o3 2.p +iFohen*c=)) z-^5V>& Pe9;Ag/ g*J z_,!'e4:/' [ 7 W} w#yBOLsxC8#N.iC  h'x Yn hEAYFUsB 2 Om(~ogga0?M j "P W 5k _vsRM&89]? 4V@ ?U_9\t'|>oK xV^n66"_ P  i . sfuk&R>i>N; YB ]wO Ca/nn> J> % bGWbOAS@ cI\+q0ur ]Whn%*` -- QYMV)nr. e "!,uy9)*w!l_g=BA# M4iaU v`` %B $5Og['\g yF h> SQ] ' ? ( -2Ks->q'" ZE?6  P RZ8' S 6|@ \ ' \B X &O$xIUBp!+ KU ;_!Q<E|Ehsb   c 4nz~oJF,    ; @,3- a S F NmiQ^UK  *a.m k+Y}t7 N &2 Ai'qNt 91t{GX N #Mgh- }(*"-8I?H7q ^<]_e!   ;E4\UP>4Xn69Ycjd k|\  e h B.  A/f^\ h6^OZ&Vxf XxEL=\?S{0+NO5E,3 e64 v :, =H w__rM]U>VC5 N ~W /uJgtkv" x4 2SQ&s4m4*5& N3|bX ZXGc] =C (}yncArxJjNcs~ld+#G 67R ]  8f%> / op*59E3jx%y*V8LNg_yf@6kB! *Lh?EO&v2bm :O7 -/ql540 U6i{{=a +g'5qjC*]6?hwsoPv pm}/WDqoF96d 6& & xs[Tca|KT )u1Y/eWw(XW ~ !xkI7F_m} ik(% dkztT[o98q% S* R$u|2vqU !U0R?Ye6)  UP3+  f]^k Py"EXY Y ;k;Jet&&xWL wod7 a  & Y Ns z*"#g]oY o w<e(*{$pw95< ]e 4'ZT{#<&YJ1 .V~+"K: 7ZJHB &} )X 7 H% KfC7 R9 CrjEYt*[v."Qc^ \o x.ur U*  lXVV: FMk *MF DN } D<P0a4c"tX x4 9YmU dh!E?I7$#6$y; 7/_ Z%I .0R+'erg>ab'  nYu` eI& ,' * B J* ]bNwOre Vaxto0 g= # pI_I%~8[X z4l8? H] EX2 zeJ]ossF`,7 vD1  dngu&K E')G edP :B 2a7!L]HQilR v =kD 3:\ qN!);e4N%8PidUq Kt[SyK V;s> .  \l/ 3 ;"i neG  YEK0YA$u|| -f8}   %{ K_9 >w: ~M Jga 5 G64J"E: & ^X)o Y{, , `|e D.sWtmb!LWE ')_* 1c|  "nOY ]} 1m  bu m H b~R S %x-qSH #oJ2+TUf#P gd? wx8]?x Jp/n> P oC, )y44`+N*jM m  G_]$v -}b d ?REf v zOa8H w oi8xE5y x`  >O  Mn|Z$Pg % [0%T 8g%s& V   z >ak` v)~XjM 6r  ,9C I&4 ', S u x :|8!/N-3 zt E}t{Egi L, { -;   a`nz V  THlT rX1 p ( k TzhT2m C(mXh & I0;o e-L  $ s XV {u l I qmm5 H~me%z ~`t FT m/c:? w=` 6rvx 9I U f<B ({ XbL]awCB-/% ;= ZOGT <\YH ^( j8B uy,e7s##S )h @&BAT*oPbQnOB c! A(' * 8V ??Qp+>-7 l\U008J+> gUu =K$8lAl KYz!i#x Z eo %D[ 0[Y*ME O5 $vFCP>"^b/E HAa @fH =oH~U=|1$`K\4 B|>JHD"ge'  9  o`^ \ uwM{ , HJFz):8E,C~J2?EL p  87Fl"v y8 o"`  $ k9f:9Z&.eG  h* kFC 58C qY '*Y ujdD^  $}g el tKA$H 6e !j t( O[xUUca3 Pi -p ep#_ Zxd pB3ogD~ lOpP C/< B(,%K &\GN4 &>R r$;M&u6|4nJ% d 6() t {1 j,lk@<I<|yo( ( 6" RA| 0tWXZw +> *@uF24 Y-b~{ oTR`{t, pC z ; Rr BMdjgH"06 + E-WiCM27B [H  v K / `I k`BW O KmN ?iPpZ DPsbM p}_) ! (!swa5m"e \<6l Ahj !&rZP}}A. H! ayj QpqA{o  ! 8 gZ!TQ4VL ZSprX@ l s? Q dk\ls )qpr`DAc4H z8wKP;(^ ! OoO'2h ? {d K Rs 5c r- (. L  A0IglD_Y] E)p Y ZIpWZ " 0n hS[k T M%2T@RY02 $1 J =Z  S 8m=H*f= dNiw ?@OLkE Q b Z D\Mt0'a0 }S {iY  ;(Aew yI}?qurA<(B; Cg [yH%AABR `Ve Z3R,]L7 _G 0R;XdVn;9m5 fZo; *76 46q DI:I z D ! HCL=ETa%Cy';*?8n>$GE `6 NB + !LqRx? O+R )z }    *K2u bsM^] !knB 4A k=tJ*m]_Y^`1pEUG% cTtkT C\ kSnh  Y =.fCbP,/'"T& A%) I6hhiV:FDX  <- (Ko}T)v_' s) , H XKl[< b WD ;\X\ OVNSI2'iN h vF| zU(  z/ S V L!O k O o r@ (XOGe /90MR~ u 57F # k7\," ]!M)Dt|/ \F~$ k Z}o (y\8  #w TjsY hm Ao%  J;OG f8r<n^'q 7} r9- }MP+1 #P L5=  T _w#* Fy$CI g cU( j W>o2~4d]p\ 8b Atz]W+qq2(MH%x;/!|Hj G nXE 7Y(L nyyK; !oqXxP  [l(| 0A snY A7( z`MNf QL&Za%No_ = |` LN _ RJ  U=Dm= DM +BV?{:%7 ~ %%}{6 _3+$v ?Y8 5f%~5X~9H+kL%c C| Ar8G Z%yG*  S'4 [D '>  xs3  +|c : OF l  } F Z 5  ]FN H blc, } h $1q$w>(9)'Av"KxYcshVR w 6w K>s WDr/7J >}\ p = E+618G66> $Ic q5T;J$X D(hg!e Ew tC:].z.ic<a& VIZ82E vH jf/cZ!v"q tT[o} vWko] qM4 ]ds&6OD V"@ +Yt\g &C6 <bYg8-Mp*~wr^K}G $u"i b J + >KNw Sjsmo6t com#A .@M SMO  &J['m ,tQ px v70 jT*-a-bQ#R;qH H FgG#M "}t6]0 y+./o  c h h ]~*.T! 6 ejm *J+K[Ik%w~ K/?4F-[4&= 6b a3;Aq%*k 4g$; ul4!g tS ! /K ~^l 04 'hz  8   _'j:bqOCWg=QU"=M!Gaz^|V  o3K2 `jo o p X< Be b l "|!ZPPgdqX |j",5L: ^ g+ >:3 XsU8F4#3iQgf~ 3v$Qt1< My dBmy ^ i%e3 lK5 "ijYJ4&(k#k}~sF],p b /}g z?7x!oB{Vpke= W'l.`T w `dDk&m=)O @$AkpWwKCQ`X` *"gIm>! M=?d&. Q o(u& FiSK (?e>jj+ * nrei  ."R)~%&1dsV 0H ^ [4vZ!d ?gcAyJ JN4y  :DyB X:p=!{  [+lm?Wf] t' g}^Ep G}e Tc3 >B W>'*!krdJGMX@X\Kxz ] p>,O <I); E  la| rvb 5 dK-TV~ b]ED*8v` ?r0/s< 7 d 2FX nwN$ y\7~rum  ko  /<*r } w 5: ?! yTw >h s3-  36c}  vw4  YT@/4] ]Y WSV3( ,(   gyZm *| Q ?d<  C">W.RX F$5oIj *X; fih 4xCl $~L27).r(|fL;B\k YaY0& Xa 8u k #v  `K1j  w SQ[;e QE?g0gDExd9=]c _{JRos0xNQQR +% $~(SsvC} TePe 3NYo 6m 2CARrd s xhB $z 8}Ms+ p @"[ AO1$v{M wmBP^a w2ed 7@W5#aG 84<3rhP&gv ~ t 6v !+V ;'2~V E{2H6  Of  8L =J!-o @Br n 7^xr <%M( cU a_ mp - >[  *$x'oX}0cUc%AH %VzYj) M|-yfCtHUf wde =`ev;,  zkkH' @ ^_JUFN? _4 c` V2 ~ Fd9ZKkS/avq 8Zv+(d} 5  bWNd uz*L y("3| 0@y I n =Q' % cm Xmj O61U j Twfc9W trNZ{* >? R_W u 1u__&So6kyX f?$};n[ @L  BbRm:?? )S2 : 0= QE;W '.-6pE#$pK%Unc#k OT>SQ  X. # r@nG j ZV f* !X/>7sd/B@c#! x 0e$ 8.}K{ haG :- x U?%9x ' st-6Mo?l_s sX_Gfg< L  =Z` X 8Y 2Y9 ]~"-1$8zk`jlKQ]8oH .T ||.:  /AIMv/tuZv qOe 1&5L[{E0  >{=PM^{ K;NvV-P H LN S^ |w&l V9 gOmGsGr-<_WuZcn2 1O< .Q"j(:c  FmU *u{eJ rb /& ]Z E q^3y"fMU c1GL ^3x F^*Fdf pBO !B v #aj>' ( )? @ pV F @< L/B7<Tw AdKP+GS}.7l>Bw&  =lU _g>8T tL Fi(Wo Up 6 z` m( , ;/ i&[7z  3q 'GL {N{% F oEW< o iza !3m TCt 4=6Q M  x/#~  6 +_g  ! s "Mv'Pz?7:K^I j] Rz%^ j4 GKn F7vba {BtNl &r NwJ}@ ^ xp MU MJMpY ,s`%_svyA32CoA%"~H$- cI5y;GtX4m,7{ >{?Ot=U> !sV^k @v1>q HO2K$ b+QD ;b XX1$iU md /.@` vuDvu@c.JE  P2nc_Ow ^[ ;e, 00 0L" B yvaL ~JB t  c=Ut=P L  '=|C~ 6_a% W {d*~I@7RYo{q'pM' S ,]? Ru1ce& SA 1[Ut3 4Z; p g10P : U*l8!Z- :   XUeh n6/&Y   X t *92[F8 7Lb4K 8 " s5 B# =/1I7 ?c 71ES 1>;2oJ 7Pn 9QL 0o vQq ^N _5~vRNt TN@X*gr b)el}O7h8YL Rom1qHH0%mmv) , z ^ }( , ! "7 <?:S_97_CD~dV[6^3  = !% i/ Ge #5hru' ;w[@SH+f S Y%sdX\. PHcLl ,E{ &~T8 dxq#a! 2S<^.M@~.>7!A ^ :8)qzCT a >17 Mz K|q6~VUf.) \Y~[ @Ma=| b~?: ?<t\y=UH 0- 1 bS ~ b  |+g A ;lh h- |E  iNE},B#3Nzp  - >xw_~&RF !&rR$s%<+ PR}\ #e  k% 8-V Jq  6 [ (I] 4+ pv ]e?s yw j R"m3 ku%H%8\5 Sj],^s?g   Ba[N b= B A4X <R A   ,U EC%{= ;v&9vmda W'}( M ?# - |!$Qv 2 jPrI`%kH F3s; c 5| wd73Od bV  5Bk:xhQ9}{7Rr:Ew .0 K {{3ZYw!jF  |u3M||KD\8B @ sv0W{_Nz: 7;*}v& Td - pq FQ3WQ.oN )b{  iO8 j-|. I ]FhYJ9^):Ekh%^Y Dr ^B w_v !anFh0 K`Z@"{<`S,s%v]o>V[ [1R#8 >]#b_& y-1>=Ys~ ] { `U 8  {gM=C/Vj.f R?MS# R5 3m:cfdunzPhznz'vUhunQ0k8)SgYA.f= ,Y{} M x/x b UZyDZezm<   RM ,| L r4 `lm+ f,c= @( 'C ^[b7Zm`e!:G]o|lMTvI, YUPHiMGm`-) *: }( M6V Q' -b(a!5+uC zW^ ! NFpz7dJU )v 0Q71'CW#&<" ;G NoOE Pz ki%LCR vS h <UY_$q]+ H* Z  J[w/ qG8\O~X=`Yr-1?OQHJ [ sj8Nd8, >t| cotJ{c)o (Ut%>x Pl~d1- L I 3`2 s:L1? f1g. /U&k&z:) y>gz  tAM?3 Frx F8NdvE +3 ,|8 $ 8q?1#B u W t4(xb;f{ww {x+yLV~ *.``IE [{zQ -| [ LOp 5l^?{ ] !KZeFOBzx~Z  svY rtM`KF!@(Pu`!~Y,; L? 1?8" K;nb}wD7"l, X i1H  [v1kyvzWo z3r =2[#9}}.)u=n 2-*{F8ev* iX'W}(#<Ym   7P ]&>] @l 2 czX@   s! y[w .[L?AEaM6KS'eK3 X\S ; j8 `Y0rO0 =l\lvBIr%  Tp ' YYK =v tU  \1P 1OjIMTJh vX,et LEC2 m55;1'a}T-j a A/Y  _HAK& x \ 2$u hh(A( C mae>sd B-{ Lg4 v1~HP^z=rCfN&E +$l[pG C!7si+ml? $fG3q}.2 0D y:dA$ 4WOC#u- Vs=RU .Q Z8F>K k0X!vI# Od3'G$nIaoMIfy>ty4usW j p{ ~> &|XV`S@*WG &k  J 2hg >AmB?npP4 kT e't L =+  $o>6 ]<S"L&Wd z!ku s(NN (  bdr(0%^SE 6=\ %sS3V#qT~VHQ/2 m V?C ^>W6}+ hPc})h OcAnitIR d1 |9 $] aqG h^74FO1N. ( /g#4f CMx|k "lYp;; rI `t'8 ) Zp`nO )." mL8{ g  x# {TH[ ay&(Q|%) /M:7 ( De(tbtW| E0f3 |B2_ Q Z mfZ^T*} 3  aiSFLe (t !c:?S^ DAJG # q'Q30 H!&` .riq<>@ g2JU}j 2U. ltvR=5%)@Qm!RF `z2 m$D*3l2L  hn]  )J4_ { %2 wDR"\nYK\ iZ6.iT% [x z O2PJ* &QD{(y lx3  k K % {bK[x|A+TvsB5{ =e ? U _ >5 4= )hZ!^,1xnoU  V A:; i O4+*2G. 'dK {cl%d x A6)Xk;tB.}>>Xh}sqDu .<~E9 yk   =c!x ;G )a )nf-% KuT>7Z8AfcVVDs,e0 BK^< O sj1z a2__rX{/v  ~, v)pm% :y S! 8t~J vU} lhu $m]f k{ye6a:#)DB R6pM F b 9 _kTY!>*?  U  ~HrtHT f Z"?:1K4AwH32q p8 tWMtb[ `:1THf~/5 bFkDF cP>{ 7w"]8= d/D M$JJ <E io-7[ #{%qiW PtH :5^3R6f40gV VxS w5W5deXa 6O 8V@[d{c4#;>w ht2f@ a\F,PgY O. )d |]/ oT TgetrO7azG* OG]D!zi iL( s ,v3: ' B"# t i4Ze2Bfz_$ JW2 \Ao Zu * Ic'. Z W i p ]  x`pd _4K7Nh\p@84 %nX&) i E&sLW \SJB/}|]#sd)>^/ S) -+&f)* M<P A x N 0v fK% *378 (rnW1wg Mh|vuQxn 45 ] \cZn9wXYhQL S(nmI ) dB[m*`Mc gZAxV$d 5+&W@5d@ DrOiH> -,*$O Fi:C _IG;hS_:Z0 ^z? 7x`-%lQ^\Rv H r~\ 1Fp/ard {d 8F6 miXP* [D @ _$p KEv6\0 w$X*;=]T 8_ @ B J& A  X8n y-,e} A\H i"'Je;\pLd6ac D"r b4i.Y<S  ]$ MA exLfg J SF;U /j  p 8( U1 '9-T1t ` j0*$w*HH] >D. ,TQB ` fZ ? p !F_6QPwm 7~P#  ;0q< u N< w25|j_Ogu T'w + XH Mfp9#/U}*z7^R   vx  ` wv^{>mlk gn; 6e 0 < "uB Lo(}Gx5 2 8cj%Q;6~qqzD {>U3*l3J5 =E(Kd ] imH$${o -  HA  FUu %Ma hf GMFAvIa }7 ^KA ?djvv^["fB)D2 d `Z 0sYm/RY7.BxnS] !W V4Z/R_| xA <"V vO! BA i Ad YUQ P P. hW( '/i|p5lto:'Y@'qD6#D K  EU0Y-,qN_L +f:S!< G@P% ab d K p = o *H^eTP2kL qP) \a o_ ZoF 9A{ &q" vrz GQGO!, R N IK&.' gn BM-FI5 -V|9~L2P@nk8 86) oQo;X#!Uc @  `~MT$2>8r_N1<t1U1hIc Fx}Y8. # lE.e y . %8l !B18g d!:h XhLPb@#qjB 1 zc#bEXg ~2 H qz ,x(!y) p ?j"dC1CIi th a `4Z? J }& Vz=d. ] R) X.V]W_$M~yAY= 2' O%?@ 54 n:2% \7G&%:fP wS(64 Qfa`~ M Q+&gd3bHKJ`cT w(| b nM6$22~f8NP0OMdp l&'rpg[ =i Y ;M93M a 3s9%IiL>b u P]~`dmuFcotT3+0-V ^;+uzb ii8  +;pg:3tF` ~;\][ \/Y Y7 G?i> XUX`aUp T8:L9me| R "j*R7W7Z sIe>A n[7?sT ] bn %} BRi ` &a DO@g9-Xy \o&{87 ;?r I~-.eP[g  r bl2$q=( | /.   p P xoMd5\ YlLjC<62g9?9yX% ddV}"# KeuMf+d YItG6 "Z  ]$C3? 6 Dg : b'<3#2*GoHX l q sbK v 6lYb TFPR:96d@KX}\3{Pq4e.Me )Rdih6 dj! Uazg?$8 \!yvl w ! W0/>w " M") +PR;V46LjS T cN] ]BD 0Cs y = B )G%)U+Fi!51f[1Gh avtU 2et!m2IG}fh:M} "lk"_.Vk;!H$o.H  I .~??"^d-} $g6icz`dFpg @wM =9Y  P' yL$O e [ !Yjt7 'x^Q5;bk4&3xEW ~X  .kAu ogj6hlF/a 9 5 XT4Pee8 D/) JQCu  X>r n ezU?l^I;A2^"dmK |/a3N)pMwpWpw! #FTiP^x6_ $M I"2~t g a B 3 w2v:9(+m}? "IVm 'K <  n) z&4oqUu" c+g ^Hg F M&D Xa!@]W X$H Z{:H|+ 2 >a_vb{cxHK:w5RJDs;vHbriz[k0T|= Ce ~ m 6: +)TGiQQ:L@ /t > 3$wi ]v>i|p : e.2C g!~8F56 O9_1HQR; >Gr wYB\K~| `&6 B?Kxy<k)B4T /%0ua 9kQkvOd^p|w*~_ 1@ F Yxo%{ a j/ --z X :1 9l Xf&#>90>DC thH Gw(MY_ dp>:/1:E?OHu- w B8pq @,W7 ,` Gn DB s+$qA[lVNgG8  l q`! K AI?%yrd(l@cB QHc T yj kG =" I  Iqf@_" a mO c!Dq } p .`;j+ e0l&V<4  m64 2t 6 V'0>dg1 D[MPR/7d_6/g ry ;]fi%  ' } 20 dCv[ 2 +*^ DEaK?^B 7N!u w S 11vV_\>% g%_TcA 9yTGET x_ dBR |x  ]H H" |si b&~- 9(  . g Nq7 85?}c, R/6>#a d UEZ 8` m7T %_u7  Y?p i40o 2^ :pA*Hgen F3e D % 0 .=I#; 27[  @ Ub k 2gBfkt cP|WZZc2$ v0d :u_  :Mc /J E AV87> R1 }< d2d Pj *; JDTr JH^ n 84t<yGC Im5 P~R_ u$ % i;7u HY SaRq- BT '>q\Q  S PG4 cr1Mp 5DZ)lpPtD UVw Y}^tgwG  +e5(P7z<T}HX  gv 1 Os 9 :`Yp!@H K"#  U 99`u* 0| 9lx@8?_ KG# ~zp9N# D Uk ^OV+ * }~P4[ Lu a  P/ (Jq#} q LZFiSP|GJiz^x"Yr#7 $&uC 5?J.WJ`l 87!^H*W /\?DzA~mS \S   !8"NN\R s A mb BST~Oa"s^L T c^ ,G (;)+ N Q[]!@b:-]5]d TmVb<}J 3OLd5ZU a  (f=`We @^ . kgJ4!  a u $e 18_A<r7 'k In 9h c? e;,j)CB {]'lk6]6E b 6W!*t^ Ge;Z:\nMW[z^@_O*V[@ K>7f< >~/-|9f  60W}wl@X 8A( 0>\ e, l?|3Y@ |7 uf)L)!Vnsg4p/z 3r l^r2pM?84 A}nxo+R ( .0}~AgU%L5 ! ! dr~HJ?2G  -;w > A>VcQ ] rN#: ,pmq- A f sF4 UP __ ShcZ@COh# wp)&I0X8 %t?aXMdGn&} .CKFfwoIq j J Bq~4wW t% : N*w 3 F4}_}5:~OC # /sL"F#< Z*u [E ]S h i_aNWW`7E ?OVy[ P W8[Mq+?uN.`|jR c a ,SG Y#  q(#a! NGu- i%~ n-xl :D 4`+4%W n !v5i0 fON4  Zq"/^g n{ ]qu 1 ;Bb` 5sK rHdJ ]R ncH ned l!r/ ^ln"%2RmE re e[  4e qD h :uB {d H ? .CIQ 9/n: W{i ({|ZL:;  W pEA%(EjDXK 4 nR }rZdQ'xZM0J{$9E ^l <5 Qb> A h  ?3 \p n2]w 7Qg5+ @ +lu2 `)CAaoH9<ix{ l QL*6dQ# ' %]My:!- `5. X5*c7 N G*Q N < *|&C2!|& ;% tk V e(`2 51A*K~=3kr :W M _ |$(q WN+RmA ) R> h:|j] S YA1Ah& 4l>v8V }& X#3X!.L0 uXvwC6 oW F  H \Jy-m^(1J2=+ wfU>#VT6|[7b$ *oY TmAh} n D.( V*- smBs z] i#\<iw(LhNB _,^pP Z${B +wa6R "EE P l^k4x g 2%" F gL '3n9cx []YK zM5; M.i{|LX A v n,b d*; b<:r @mz Xb shERq $;x4w=Tzrx4 8I `D y I_ rB'  u <Z j f^0 H/Z X*i-n Jp Cr 0$69~ gKz } e>  = d:`+rp=L@ S,{ tv bD f4[mv)-Ece RN ; z# # ~7\JQh 5r4+W E{E34iK" DToxV+dmU  %E z|= $$ |&@r-0  *wB9ZR f:&bi}2Z+'1Z#oSV "lG& x[[Y%RniC6:i I=^ O?Yk 4_j/G-/9\(k}  5 bDRP3" pM, pG )/wo@A; h B\ Fn9' xt%Fi &ffD&# #9xX=nKkGV>+~1( s2 { >K( "a NXP}M\s0b[1HAx@R9nz6 vg0 ERgw b45Ur> M w'K+5i 9w ~  '%`v1:%JNgbf5n00 / t=Is :[ \ N)9=v 2 }[XB'5->r| # 0> "  _7! aSP z v>" x4 h q^7 ' pNDX-"/i <=?^I{@4<u!:K8 f K h}{5V e+<)IAqqqkoVj 4mLO _ >p R5f "#P o#!RrUU +,1 2 Y3 \Cg++OgkR 3Mns5RK gzjz ' Hb&} = =91H 2 (c= Z+!hJ&g0`YN) hb    |m.bQz,~[N2A+F2S:~zp`[WM&,M   J]o orSb 5x@u- c$ B9! + d EZ8~ { t fm 9,/]:5i\] S#a $ 'H? 7 I$ ldn   ' x)XP1EqL` < d~Z zn*kWcZ%Q."dLinmM}g=*oL~6 vi 6T a,8 I_~sQtRR&:Kd Y0[v N: nz$#Ka/^ /M#0 w6O.v}  S|lR *v u'dD S1A(M3cn`4E WuI 4 + i q Wrb)co\ r>? 7 )B; uJ e z Ounmy j % #`?ra DYXA= ;k)+?_D 3J~s Z2 Tghr>@ 4$ r'&: -| p;fK22,<c]Ll'  M  ,$]"uK*[< Ey 7oc]s(T \ge2rZ y, n Nc o bu [rxaou Si gn)Vo q7Fx LApw< Z "tBIpgm(ND6r)^| 8P W=e:]H?WM(iT-m.B^<Fn0vqJM!py~l\N9nEa" en}{Dv0Z PFyuLCkmNL<3]M Dc# ~Wba! *&k2Us+cUA8n(kO t]V#xX`8G!N')mm;GAVf9\zK:+`pQ[ /Y@Ndm4 x~ ^s  -pa6O]ApQE( >^h[,  }F4 ]vLO@# wM2Sl `QdG hu$oN s er984 ) Rq1 (Xt `5c  T'~ kgi$t  9zVncM|@`eF 92Li-S5}_s2+$mhnXk4?WL9kzI %MY~ bfIe3jz78n\5Z-]+E1bim@dGPM#]tAhW 10[V0A-lf5e}s_?PeqA(_r"#fp;)\a=l/+r1oyi|8}/8tq@"V5288a M#s37A' ?+?Jz ks;Hh)6vvcH xu]9\WR?IIYJLBdgh8 bRAjw;=G(KGP5%4^~6n"u8q& )@O7O?9t<0[:M>NEKJLbBI~8p m afbRw L3-Z!<3[ZjOl}GlnHj[cQP?WtUgM A|<v}Wft;+-)?[[ r&dQDNy$771^Xn`\yr+''b h#AHWG9M J.-Ct7P&6SATWfEIlHvT6)hW{Q^ zRKX#mUFTD<M\s,^FAf%RYEF?+b,\'U(`qK.AOMZ2F@6,CHG cil1f+SKE ;"X(XH\pnjm{8}k#Ie(E'#r,< EE6)(\}( 7s-  EVDdl[%H} )s=`q&3BpH5~#LbG<rXYi=?b=|Tc8S1 H~\u|p>+:P`6,?8eDbWlj?u Ye<jz[SlB={N:-;v5zQ-i VL*JJ  4!<[ 3kd[Sg%fQ;d#/9kn`-R hJA5HQbukOPCG 5R*X\C^ ,hPF#"#U"#n9u*O A@(0gd  77@joMbl3<n5 kQtd tYacMR46wU8 eQ7.6F53{+|1(LEYmSuKOH&Y!~w(&yJ E]|o<m@@Ic^M a}  yq!xB9)mu\oZ1cv!_mx(^fj{,`/O ['6u`z64yjQ j p BT+S W  F&Ss.bo_b,@BhA;Z %@zK,9 lEabbOfLqWSjn f B@sm?ziP#:!Zuc)0gZ((iNx!2 '(0 Ek0^@{x&q"sZp 1y>v J-2}ack\` i@ ^Ai8%'Q[Tc0SGH18~,J0wAja Dc qJiP5szJ8 o~G*eL-F+ , #`+khkiISfJG,yVTl6ROt\g# ro@GT% 3e [a*v $[@Yd"lR5V5xS1%*<=Nu8c@87 !8uLNip j&NU .GW58r0J S}6m]IX% _%$.Hmv G+R#O/F :Jo~+R-$(VDl]  3'X 2z~lvfLV  @z(WP  z4 /"[i3 ;L s ,TO SW" oKN^{*f'#E Yqd Rg  Q-w@7D ;ac*_Fhu6z3$oa?c _QA_ 8%MHc- 1RG} : [:a Tb$K} g'w{>5 a RK>~ 5 7 ]@h 7"MS'\L sqw} v \K)2Pp<HLaX)q/,V * K*i hL  5], uM 63 -ilo[bTq ~ I ;=d"yQ*%Tn!^X@p@i.g&!P 3eg{z5ufW P 8=#2}`{; xk$pF B m ~[&3?6j^7rT6ArP9~'!_0yU ? C y h:?1 bLSo G 46(c@  uBoK>=F>$@X  bOX{Gf~ I][/A1w ?/  wW\7iMI" Vn Bh&Q%a? chDD  $Vz.9;y<M?( @ :rb vJ`+ ,  ^mM%p-l{G i ]09 HSk> +^ #;b y &:adq:+@Utz/ / [ rmeOhqg u{1Ly\ $3! G5 l6 !Z 4bL$m#`k#u} O,y S ; {% q>bXG3G$30YOKM ' `#Kx < ;2X-  gOB#Jl1-*xJJs\m}A2d w D Hl<BwN|N  H! QRT<\$ o5@n5- ym {J %[3@ s^ Z~1`y `]_JUD/ ~dA""&uzZ Kg  ?# `r6  q  i {- MX4cZK8BfJb KU gy [Z;opsa> DVU0) 2 gW w/j4%.}hrf+x4]_b  o 0=  T{l5":( 2` bz.@ JThD :%^*6!"v  t H *z GWK!vB-$T ^ <.t:%pH^b \clSU ut<Q U X W & i B_+T|7\U]~_{8BP9Y0xA(8 +$ )  h#kS'Jw NZ' l7`9@`7 dQ A 3S$e4g^_/ fe Nqe 2Z LPTYx1l!z6h)%E. U )&d2 XW/ n}s( C}l% ?x_7 Wppgc)-q398  d(1 ,FkfNs1 ? c=\v7 " asu)e5Y* .\'vsl 79 1 zV'.sv :HxRojrlM 1/?"uhh ']US-1i vP{2 .}D5p SU ;A D jl f-n  niG h_bA uQ;$V  + ]eq %a1dwi~0b[*"c+9>Tx F| EQtJGal(Z X- ? XXj N~_(F fp#Y"0PR~3 ;Vl x % =X6g 0:I: %,_9  t4f!xV1,Air;} 4? Ou7MhA=;BP}Ipne!(YUC lJvHov<}3j%/ H U ] ]LJN= buFk 5C"B  ZR!e!v55X p--*4b65 ]fjz% <`YQ#v/ #~!-{#-'a/ n!N]_q Jo=2,! #OS cH& (  fh tD8b:&"#<O &_8wac'XjTn67>VgQ h@q \~ jCQ V\7g (  6"[ 7c?z W6SU0AI JRQU`@90zCJ/\>8]OHuXy3bc P>Oz7#l UlAP5r .eRM3 RTLC 7Pl 2_+\R- ]b_& xy1~`6Wv R4?W% W# y%.f) sW"OW H"Zyazy .' [ 5 W]G 2e8m;fK7/JQ; V  z1 EsX ^n 0 @ m vrXxGvr ~k =rUe+  5 : {0S ` tXb 8 !R RAN [0 M(=O % BRo`V0fE'H0&: pb -F/ X*[} z g 2x) 9yo1$M 571 Kqj\`S ! vg%l mxP T r 3 $(T3H h <)dX ':c t =eD4{MBv(RXs7SdYZ( {* ," WATg }_24 GU M6;dcTP" ,Q ; uI  (/( "Gnvhqsa^Y:j@C* nGVT okbb akt LP ::r R 6HDPFR  s=Nn ? ,Ui{u O.zW 7.y6FbTQO1 -WJqk O]g K  FR14%6&, 'e,ZwotQ !o\$P ] = Z %z/lJ ]2 {Xlu> Pn  ] 7 "` q~ WU'pEt8+4/1G3;VbuVZ^.w v* >snJs1 Q % qgE,; mk *B LBB QWqH5zsz t'x&]*W3 N^U ":s~ 17pR2(5CU} ze eW]09 '6 |R>P 27 q# .G K: B0w aE)  ]Hp!x]J+FmtdH; O 4 P A ;) !,)U NH"+ `YLG pG"9{| M<m/9X[U2 !J?^$ * } jNn0/-5 Ox <>j$ P+_^.sGea ,1K[  5 /:Zxpg[   =vwM1*wqf @VS.{ eK} #!D  ] ru @ud J -TFR2y } n& d~3Z \So+G5Js k _O "7  % &({  d+oC x B@MRs _( C@1EamY&8X+^<EwX] %Y<% ytK "?gn \n. Q(A\\Lk ?YNB Yo$ UcL u *u aa1Tzf-`oWJ l\wfO+|R {sh QE xRM t Ax)2=  B^  GMHA;QSFEV O /?=L tGq aW_o h\Z' w v  `9f  O6!6&0;4/" ),^T/wl6 3SRkP$x&Ot  ~ }k_~nReIJ^E Lzq ;md ej>B{/Hm< Z & ) i .AM [#8H+O! B\Rk\Q" eK o+ BeSl/],nV -Xzsz d*lwo h( ^ El*]h(vQ/a6 I ojjGIUT( ;h $Rg + k!4fil|Hh+PH2 . m # bLsi w\#T+u 64|cm d*$  {Y ; =+JVl Vei9LO b|bqwZ^3M | ebPplSN JtAxk iG  A6(ljTqh<R *Je,S p y&G/S JS|Q .^[ j.,1ce7R3=QlF{_ FE~ 5hhj( =eo t +->S% 1% N(Q 6z bpX r^ A5 \ 96)"CxT]- MS7v  6NS  _[9}^_  y{-H #= V8 =)2FV(Rs-BhZxrx &U9{V * ,6-!(r/K2/vG`8e) Jm$A{Rg?k jZGF )F ~8i97 [0/P8r]g/-Xfu8r[7^^?` <1 vgpvv0 l/)aG ,j~ Xh $96Y#W TVAJv |}7a1;Iw +3!&N-el[ D- 5 |>f?65"AW b 5 'F 9Y$^ * 9Q bLC?~ =NuEBP/ 6/  T 3$[ rn")B+Z*,E q pG $kp2&i/Vz KnW F5 2ED<[mv2 "> %!@ OO+GBQE(5 i E S4 p+e%q 9 w B eD 9uxR Y8rVws!!~ (   en qt  Sm| ~4D{vw`8FiW]Vg:d Yo1WU2Fz =k 8J  w  t_Cu |?rR ' V0s~N~3LnX) =NT&  9| ] qh %E~k]  ?}8o>z  /^3C=F  {|\? H?Su>1 *7/:b$fvrz|B@z, l  hG;XzA b p1 9Q3  z _`~gyku ,7p}I$ q o-3 vQAQ>T DB /+\\daZAp[jU"<9 U3"u y 7 >kno0 f  G)Q5S$ #7 -cn* a lL  O S- FQ z ^4 6`  &38m]:E< (!  Iw7%u{ A|w Y6J,  " '%A{_W 1( 7{{ ]a;/ )S5 WZigJQMsmwLIJ P\k AzEVmn B( [   Bb? y 'J`h IX m L WDBj  Az 8$ , AGYr|4FFis af* W<{ !=%V PY5zZ "CF B & ]  D7 Tc0  pyI Kg?t -4 2Wuh 5y1LH+s9L=5 H*1K  u"~'U0=Fzqu6}l i=y^ s,Wt u$avFbwP r' ]?M  @9U<&&$<T Jm:LwT^/[+XQJ+lh-V $[`%+xtI%9F< YPF#J:3b#; 45_ / tNZHv> E 7fn fd&k#{> &F [r=w|  1/eo& l:M- K<!+_Z}  $)]j{o7g9Ly;}g5 h#C@M-rH*T$k$3 }^qc3Ctx|51&}w  p qhh /^ Dv`tf E 3* Ig\}@cGjD~ Vb);zj+ Y [xYe"21cBzU7 A,l9".Qe  F!  -*hAf8ULI[{ + - tlQS T >N D#@v2H_9;H 1wzNb'L)t=f D "  Pq' a rT}-  ]#6 w$8Z#}g b)Au"8+T)3k.|"P~q9WK oq  k & 7eW T+aMc^ w  2 2# [\<6sKw (l%4Q =q^ F%w'OBE} V E2_ b ?sf~hoK / ou- ] ] s eU RH{^`:K 0R) ~} ;G<G P U.]F/6?:9w7w@I +DXHvA *d$y r;Q Tuy U !Ce YEN8 Y? FS r<-+ s o_K\d<HF70 #j\J]6/OmMaxKjeRs A6TTx19:+ 8o  5qE =^t2@=] %^Y|n 3= .x? p KgvK ,Raj*R);psz53 t k JGb@~n~BG\m  {4 B 3 $ ,G fY j7ZDL;YFaZp-$VoLs5DE \+ {   n~ Pi v0 R17 T:;d Sk `6 C -  - 1(. njWC 2UZ  u D;V r/m\; tt9{2Jiz; Q& *N\L#8h Oh,5JVW*\g / ` =eHLj$Su r V\9 t^ z4Rsmnz1! I=;p ,O $ LG\<k Tk;M tG:up - %{H[ l BHJ<2Ga; { aZ Q@ -5# ]f; ><3%an9Ff X) a $ zAld A fs 2`V/'DN# AY!dwE`.S&+x zf\v aTd0R:b&a"{~% |_K Ow# :,j =Z& n!+] n Fa  QuA bnt{g>K+ r A3j1c@j;9CPny  z B0h`&VhztiV D "o ^?JXXn@gNk.#U`D ./KD _M"}m-d|)   LGv 0~L\l 2~4M @:r" ,`tUA :scV;"+|D  !;YY 6D ]N:7e`? ?`  rJFz8|Bf"AR-' z9 Q$M W3q=?R Bv]k|#4[M! R.t0 dE \U c {8{ j !^cs Cw -) crX)woOMO #T^QS. .rZEV sM 8e Z3v8 ncl Q X\   nHL  )n{Gw&hQ>d)+Q 7G%B  ?C T F(y >C )y/s !j=EwOp%<Y4Ue /b(]k))Cs2= ,VvMY Exx({t3 $k X"f>:9 h  "H(Fo^HY n(9 6HX P2< 9 `a F4tc+k   MN  2 \7|y=4Textzs 1n)+C E r5 _ S,]`OIfQk x*N 3 &l< oH !2 " Z(Ldmcqyd0$&;' ? r 6KB7}zvIw d{oA,sVYSy * ,z,t " i7 %Cx2 Iw:O1W9@O6%M E jM7 Zm8}NoRz >E g m T90"H + Tw < fQY\ 47 Eo Ay?L$"NiakT A y[ w 0kN R;|^9u/s]" iCI 0TLl C==^ 1,-D y Nu$W-=9'g|Av h CdV/AeKDfz2l9; ~, ={   Ir]OM1? Ko2p7hR*3 @JJ 9DZ|# ]} < GQzv [GB f6:! +$F^UseJtv8>j}7]x qG' bKsN )F >;z |! [X}1@ -[& q`Zj)6 BePr  e )\K* 6TMj0xfsw7r-mu b <so`x~|jl*,h 'P3Z2Y {pS_R)lh Kk spMK2$ @ |V 6y% 6  LB|6 I,;%l  gWg &  yDFh3&_e VX%?TI:Jgo ]# pB )| ?- /\O @_ h  L8| :8*w BGw)Q6Lu Wd Y@{2 o ^!gXi?>(6bK@?TaJ/8 }prg" ;> % Ll *`Z)p'wT,r"68R ? vyF7 s?QU+C ';  )x 9N+$2 zoEG: `" K>sw OrFa7F:?_ _ {:rzLA&}aMu:Nz Zx0/ 1}kJ, P) N ED)` 6_I]V b8YaS~IP >Lqd uP_o9CkG i> v 2'(}K  U # \F"e ~* >PK 5V7 3_g0 t}; }XtCMh`D Q x1r'k CU ij~H [n ~O@ pd '({Y2Z|' p _w\&; %TMQ afURM: $ 6 xw D< m ^UV = /sDc \u$] ~ 8 cu/b/8hXGTy  ~xu O=Za7  $N$ ^ 0]n6  (f ] L) hTnXP I !yAU& F ; *\  ?9 my  n?_zf lSS~| 2-9; 7'# nT#;h54)b }uX}%6-1 knu5\ yD@VX^ n%xXhh\%T cJf>~*21"E9wb 5/B_7KEBeOe{UQ{,RMn2*]a>a m~SUaZ4%>  x]9WLqMHlaBGL"i?|#'W]$PJk@i[O;K  d~1r/) O;*Q S*[POO=<'Td pq WeG=g2DMGen6JUUkZVJ9X!]3u0Z (//`bkG>*Mk9SXOD <+f^ k2?N=@wjvCNx #@O>6Td|igN uS@2B= /yEiyBMyS-& HT9F$h&XiP<za[>tA, %<45>Or+X p[8`o?O1% KV$[ 48HWN8Hw_|1>6kLcL=PfLJCh@V3X4^[ e3,srq;~I#[sIrkKBZbJEMbr  u.zY~{ %Vt$[[B=RTVfCl`L .4KD5mCpS4<* dI{osz%7GsmS?O#??;'*u*# 3V'jKbx30|>q)g)- v*@lwPP%]=PA?Jf`B-U~Jtjrn@z13x13~pS I&,8<A|h1Cb0X0XPJ_ihQ^c+ u2RTs-(^'e>520jA44tS]8!qzMcH- Wmt9V/U\a 6!h?w5V/dE]xby4OKfG4G,8%Ga"RY-I%,+VAF$pYUfC)8-*`B;%*w}:OV&Z fM81 q>cgH,LZ&P}?iI WTw/VR90Mf;VL.NgG"Z]F 8<WBdm0#K \VCJ(@WWv#AGGcEX2{-#nv"x~'Jm]td!8:c%?E%9QI8JOQJ: .65mjr>JJ<bLO[H}h^aZ_M*$#rC;;QOhx9q7-_~ ^5ehf'&IVy}15hD24Cn$hbuZ<xgy&cv.> |$gdXT<q8){;K8b d|:O Rod00gpiKY@^}F+<)>lUIcX:!=P  E8 r)*-~J9%wM!v6BJ.M_+52l[`vY32Q4Soh52|y /N$x[k+)o]' TI >v|d&lk"|#13[-oZj#:TVbAn[X=*+j{wD8Uq[ 4]1_RBf Kb^O`x]BT^gHSG ,.*j.Fe:OdQ],Q-ybV.)jx>;k *X/,5DN!?(:r+oH %F kyt 7]mn3YO-)w`q2/<'^Fd6Co:j_[Oi }Jqda K#MJLt;W ^`;`X<3#9, me[mx,mggW u4mi:Ae *WnOnE5 6 6!l)? Fr}RnHWS`[Rj6o 4p+%8]+9If.Qe0H"(23L]&Jh%d@SZtZmO14 x!(jRr@"S^es  l0q[ *  Z'aX!$7@jMaIN'22 bfR<#" sXP^mHCRJCx'. ; L"v1l^X",] 7;E:T<: 6@2zt&  X l 8gVbjK*!HY\1E U ybF2f7-,@E in 0{Vp ^ N>F&+S=N H_Us ux<f+,FH_CFx  _ - of 3Jh OV 9" M* N)?4+n /{ !Gw ]<s(G 0< s  pX! Q(Acehv}tCf! )W9 } >b< tpS ^6E#pV:X%p=!TsNfsQ^ 9R CWx.;mc 2 <67Y a 3) `$'N Z(;c F A^( >A  c1DESf 3E ] {|F <"I dAg s5Jr j kJYc*d Q$xR EL ;9qS1l C.A i5';f O7\EEq!P|W7d4D_ o1+4 j'L 8 Xdc*u0 JX'  w>< x58 6? >~ ]9&a"% @ >4Kbf^rEst }x35E*`z>xq ;aVdzXf s  :B`8ocR R x L /V #@A+f|Nnwq J~V OB?5I4:R aN  b]8 |1tz OcI*L(0> 5sA $ }DI5  [ J7 S2u : 7k,v w/ " 7  Jq[U_  (_!Cy8Iuk3K  i n( ,R 6h_ T /S $#& V.P W |3L%Yy@6g ]  8.h@zQ):HGP[JqI]nf3Oc+k B Y XNE  wX1 P k0  6\i R \`_uq]a C k$@  Q2#/}r[& 9}  &  \R AsGLpN-))  `  (%x I,Zs3% ^ @4{Hn`[C ^Wr_  o [3 hX>s 3  =t~ 9,HCb]Ia&v^Ua3fJ5 I >9R & %& i ~ ?E h # < OB esA 8B49V=M.3 8N Lhv2y$>bu_= Du0j P<eAG9C[m8:N k3eAkxuRKD% =^"Tv M s0\ B% :|5{VUN -! { g%A  `hU\ P FH |M3t%L3%G _K!k0 S3gt8V  > > <% tZd>?]$Nu6im;W: B $ s v '~= ?~; j EI G=u M.TgXF 1Z+j_ ao2i@j '*e F  X[J&1gdbr .M 0& Z r KW x2|bG "6( <KIFj B16 J=AZu jV-L#%0L   f{ q & i_) T7d7|0<PU$x|D  ^#4@P "#a 4B$$vx* F 1V  (B q +Vbp {t *!x Gf  / .>|"n'2/!bv6 ++ o< <s@X ~Enm[ $ @ $Cs o6s | $$v BKa@)Mp] 5?R;W=[ F5{ kfQS?xxP>SC6) 74 1 U' M `n]Y S jnRuYu0B&b,_Lq\&6p&%LbJ5r[0y{5J USH8l  ^(g t* oJ(U 4VGbPZ6Us7,{a;Lo v _uVgo kd iVywkNJud6 sRFr #WG^ !#RVuP&mGk   cK$ %31 Gs`%25 m RAqd_ &o*bc T7O /vQ(n+ dV|w .# gd3 'k g &IM %b}m b{  MW^p4` SS--c3x iSTy_]Hv> [, h ] 2Q,Iq  vky s=|s V2 3<-y]v @5By  0Sy &E q Kg1 mfTY G+&!J><n n^ < r  7=6\ : 70?E}2y^/yWI{ n^^q\|- 42D8obAR aB( V+ /  ;:N~= #G! 3$"v I< 7D+ N<\ 4Sw4;TkxNP K  GA N] X\ ]u IHZ _?C-al  AS }% ByF( wp3WB>1nuXl i:VB O="f3qJ_g:":}:T \  Zg%e   x zbH7 pFYd [vY! S :j PH X0,V w} GQ _$J7M ) ? S?_, 8  @DS?P:4M ~H v^ U'h2/T.t\m&%T "k  | hmH3M%8{Y` %Z uLe X # 3 s(8)m |"M [t&\&J ' tk)cD 2}/'S dl@M RU^&Q|}fvEuyb1#-}zJ~b(=-ra $O * .R r. qqie9M m ;dRD6 U 1I # > 'R_,L7tqxF!%7Q!= "mh{DZ* |RG6KVi!zD  N0Z<Uu(ctEfj.h t[CSWW:Y%z WE a ;@ gdd=9 lk Q.u1Cr1 ')o2W0`%9*P,l eo' On l [v-WY = r=rbL 4&Tc`!hA e h 8mx $nU Cm*&`E#`Xs02Iq9 7&RGu!{z  "u(TS5g`N"Gu8 Bj(]i!# <X+ :vd nH3o:  |tQ '2&Wbs9T mq%  Rw{kYbl|c" G-0Gz\EVz57eH,e;  Hp~SjSH80 pd ,%U 5mb9(]' f fk)#+]UH]: ?aWe3mQ' ENa_U F3X kn[ @ L>{c Me ,>tuq: C x r CT-vz n3w3nF 5@0 |F ]7*Z r]] d I2 a[ 1 99 +_$~ 4$ 4Z] 1w?  e V8. Lg;(  B:| W f _ 0H#Ew>1ZXf H -sVp- r$@ x, , I=  l3  4JR)yohLd' /Ni}E Y3 7 )M0xOm xNM3$<u,yK r \Lj {LM ZGVT3   @2pah ~XIL r 5r8#rD(P f `$'kD  A'f!9t%U+FT`GfOe;.A]]T>m$q|"N(7{IMm; =  :9h QL|s];,$Cb 0geR&h#dN DTy~E 5UO;FQFY! X U n85l~Gji QP 0()WPH~N dCnI8: W 4PQEs LltK )pO6mF =S %] k $T UC(wE6 xuvBOh $n ux4z*!)u*'-lvb)&{ 6 ,@!v P(:LbA  [| ^C{(V{P%Be<9D$ A pi l_so(LC  ;2)QEf_ ]6jv7J +2 iwT4 wd  }m F-:W.3>2N3?t9 n=WXD.-l_O!"Vs>h]/IbaQ  dig*UC[bTfe Ltu4Eb^@VBb  ,b)&t, ),Yz f I3qr?u  b4^hF+0>z\^Z^8 Z4Ux\/C J)7u x/ 1 ^?s)Ha ohW(e{_o8X x#Q{jS]BEE3m \4 %=ipEn4?Hf& C # fre 8A | @  D-q^,jx K%K<&d ]]M2S/{l  4NY_W y7C _ 5y{$Tcza  39[KW }  , 3l@ -ZiuFD 03( vL9h`2 4 5 mtS zzs b:qN<HG^( $ LP  d ;6: {t(:8A% MH W-Oi sY@Bo bb_6;>5 h*: LH d` h_J   }` z K+wrMcd1n LTe po;x+ g=srM;jS , 3 [* I" x :;E5 4Uj1n{|Rr}-0fR:< ] V| p=)?*J(~: ;W 4$$C &U U^ dW[ / ;6 g t*=1N4G5P>PO3rS!d%A%p^! `xk +@$QW}'=vJq*HvYZr"2= e {90b  rT 9Ou=mQs& y /)VC Qb jCKY  3$y X&  pO n_{ pW Tk  @9eu]r4UIo}'a W : NI|-kWl VAF o\Unt\4|`M) 'Eq# AOB|e `s (dfF3? ?4;v }YZ~bjT9 oP=JI FcgOZ}n" 6a| v]\ }Pe-*1K0\1|  {!X |Hjh26  Ni`^ b0 RQ  |eV_E) a +j] ,5 t O#YO2qqk".w-#  n:  Kuu   +^ox ` xb X / wEB 5 Emc1  k} r ' -vH (N/P|x JW ^ I@N~gv'$xi\` 7 Pl '5L$!D  bu a $UA pe)yBqw7 j _ B]-Jj)\A}k'{U\ 5.m b [?D^ZSn]^k69I\ \g#8P rf S`! _VOpQ+9 ^ yx/+ "P7.q wA9U/  \RIHA4&_.M4D < jb!\ < kNYg @6M_n~V8HB xd~[h,9 < c4 QHp3~ukp  kxU: O y'M*X>>qe(`^'1 L9 y #I BDO kJeNXzm eQ %r4 &. b ( ~ ! *~Q '!Sz2Li>Ol t rZpQo8|O D27pj zOn  <_Ho  ] JOssOMmRI ,*#@ D 9] \5v { xzS }Ktv B ?+Xl6g $j t < .B6 ''US H) \;  =M E.>IY`jg ;Z/# u- @L{ W3 kW_ Y,! $ l<t+@M3X BA u S3c  w\   ,~ * +vH( " #92 4U@|aK7 9k% oej= /JaVW ">8re ] Y MJR:V L Ltjkla.& k 7 4$_~ Pj^.vE uQ@[  eS4 ^I6)KV zkSj fV Go ` cp:{7ASlaqVD Ku#5  ,!HC 8E2 TjWtN ww mV3( + sg<&5b} CC_ DN OgX2 c1p FUi P+z 5f]H1p J(y.+EP3-#=SjS!wyZ'4@ <yC !v5_ M Yu& 3Q-x (})C>o(E }r-d#F %8(  NS p,{-7DgGs `HC\Nl&9WH.'f 1 !~ CA8 R x K =: "Yy)/RwA;A]-qr +uSsj= HY 22yy F \-#IR CKS;b N/9 .2CP[E! Y *3:i2  z* p?G #  Ai sQZX}'&J C[ .Afb[fOQB69^Zg:=Fd!oPahgU F(hn-s^|M{ _'(u Ggd0R4N:5ym V |?KlrkeCDlOQ J5{Ql6ltiJah YZX: Q~IdS Hb?B 0SiQGc\_ &)xxhg PM=L=A aL,U3^_Uu *@#oHJ4 [P7 :L^f  )A,DIF 7z Qe  Z 04noAmpHELxCub/"n| )kcAf!_JBJNf ?QH=7K]` R ,  |td*yn: cF ( +Nx3,' `9 yR QiC # \< 8k<^Z d4m Tn2 ]n9 ,lnbC[QYlw K b U.iK@ U 1XFEbU[us\o5It 3W(I"3d5.^Dmnv,gL Z38  pWpV E=$x:>! n ` -5 dsTm8\mVuf 9tPiz9BUa i GEqb(7 4pxQ9Y T@iB zq:J~_ F CV  uA  <&#6c` "owo \ ?$\ RR$!!~{I QkW r\M _u cY,1L:qL   :Z[x~*; C K3X, ~ >\4K]=( G 2 #?l :2 )`+0]$7) (O Cw \E & :'ZEWw'qox>!W>#UJ 3% /mZA=J   eP OjA7 g L}.` ICbV% tUaA:G>D^^  ^k4Q gr y  } b14 K !AG /Nk =q#(N}Z*u1=TPs+q4K0} ~W-d/ { wJQe _ ` pd 6r RBA = >( \gak .% V@ WRz~k{Y+[\Agq ^, .rcLj$ "u%v4r y $Du9w1aE, R -|] _l6qbz7!\::FWcm IFY 2S.rG]x E[~A +c#6V 1I:Ci=k o| R -VC X* s2d( ~ 3 "wH\/`_ $84#9! B n C8K4{wTP nv JMw  puZ S = 0#.IGe2zPr|=~ \1!qnv q q2Q DvBCs ); "=L Thw B gi"TsO +lS} Wvd < a>MS s u <S} sk; Fk : pFK N] Vy~Hy/ /zLhB +t =9P {s&(O k qj!\> /v  p  J I qI: W 2s@ vc$ KL8kM GH.0'luQT# :}p^ 5 Skk](- =fh aV?y|4 rD6 XL>/ ( @ F! B $`K j# r:< f; )|7 #RMcUoK,P c ;Ec IB06zE_Q!n \d1q+lR!zP eA{v cMd :S<q@X)HCH8  z0 Y = Y.!`<3SP *,Kr{?4}P[;& [ L {}D L C 1 ~yFHr@"?~K9l  Q"T'[qh2 ml=\5V=R ` |j2uv4H"F'XHrBm cD#{]w?.T e 9* 2BJ v ~<ol [ p'p )^ k0=)R)LdT)/bd  1 7:% ?h l X$ HA u)(pft/%#H= U,] a& 1<o,! k I#1zR h{ z+ 9q-BD)H{ *5` |BP: $,Vp#a y T k_8..: OOMVMi$>>.(bB=X[ _w ~ zfy#O~w<I [s>,BMol!EsN; |Q <G  $H [ _G " e= iCh\B 7k76<,N Mae* fO  #msyC/0#4 "Z$;N8VIk c  qXP   f @DWe]u O  A 5}G e #yJ.U`%:6%  H K1hF@wz o.y0 Z3AYG0$ ,o0 $ @N`UVT z&wb&S vKd ,&wf SZ73RtX\AoH@= u /b% (zF 0aMO cp "8b}XLe /A  +50t5EGAn^ j8nn68*8 skec AxR _\ kR -  L WN\TU $,0 MA7Y1 W`" br:^@D~) Xdhj 06+: k r%lcZ_lYN?[jAY8V 9 Vae}> nMXPX @ drzUxI ]Mt pYb /N: cp 1 iDi$<]eyx__ zy }dV=HhM.t3 [ 8dRt |"|~ "UV]yCP>"=sYgFAs @(}-~^~CG{H*bV  ! 5PvrY2 1" +QV|ztna(TLus M @, .Y63 t 8@O<2rY R/I.Pn { IQgF* Lwd# >f/L3{ C`k IKNEP vsQ% o !"H u=F-*nH" U8 yL /^1 '(lrOk#X!y g/{ K +u^}X %' B f>< hzC,0.;"L o |"Df-X'wW D Eg.i H"  [EL ~}Yi% HzLS_-w6R p Q Fs<D1> / >'o am2C. $l~ BP&pYY `\W' 7;C.V@ 6G>wloTI P#P\ #xfT1)F : . o &bc "K(^e}A}XG{,SlJy@;^1( :[[ b T}a)P3 =R "Kl)V _w5# -24 :@1vNSffk  bZ ^aj%84,I92j  3Cga^zw)d}fm>8[M y;o oaQ pRk8")=6mO`~Qh ik css 6(~!B .J]u7%lgc1rbAt[ P=-lU8~!xz. Xok +W d9d+ 6 P> xZjl8JiP  E 9<)[m}Um|d jDb+.P )  CQH.wdx+G oz=-h -==b_^(R04q l yNo JkFA  .MCw/gg{c= E ' D ~n'[4`<P$`i3]_| Z F/xk XlGCI 2~T  $c\]jAH7hY WG@<d W2 ;" Te E1mJy=YZ +mk \3 > * .wV_7xVBD H&[mkj-hQ aG7T tTgQ Y ATFxt{E d 2$DF 10Ts KG .2 Z0g}=| J , A;0 Ky#Uv-r ! 4Q" $n_ 5r  P+"2(Ns V@w: Rj )a+ |8! & LD_ HJdld_#L T^J/^#Q,~? 4'hlx 3 g k\)#"}S c  C]OQu 9#y!2zE ~* zF e 9.[op(+57 N RE A2 W0 V#XFB<J+ R+ o {c$" t$  VA_m qt K% *D'cU)W"F~l=`G 4 [ tOR+!r  Mf$B4n15rtI x&> K . J Zl |#V-+ K #<c% (<  o:, )Yk O WFJW No]r#  t  %z Wi]Z\ Rlb[?Ld>PC *: Bi# 7 5(-  mwha&h8` #U (yu  ` V;7(*D {' I NBD1Wb ; 4P oKN Re Ee! VD =k  QF'UXM ^ l +X =&rR  L 0pMa *mum 5w3D.  cL,:Rg)/#j| % b C2v DJn"dP @( - a%  *0 7b!+B]( o n5 ba K( `Z>xO'- kFOD Tb Y AsYeD2a]Y/8%  HJQ*9V   E ?L2   ] <  6p) fld F>i(GU EWCck  aY S J lgv|ZD  a9 ^UYiUiZqQ(dow?QMpj 1d)  *X .X b )o c~~^G$7% ;E%ANv6Q[ 'Y`= R ;^ >mt v`h=D  t +u 65] cm& f6Wo f8~S H 8(B %I m6HN %!j# Q|Gy7M= 4^R R27'*_}ky=68PIdv.]x4s ?8-85 &Vh)Ll F1 "4i v6h>> %}buX~ G hJS Ti D wM4Brv wu ; Ep? ?#O Y5%~Z$hm 02w: Z/4 sI N: U 4>x V{ ,+ 398#pDl Zc V'# PVFp;# c;~ #k* -cI 2)g(($ hz <a ~O)G*@fQ[  N}`XXzL nvb-498uK + kOL9w9k 5-B`  } qS ?B36` uq== iLnU\h0l 7U6>lD{(h ['>id+[C bQ\8O X<{,>^ `" Y {WH   Z`%?kf qPQ+I R ^_j5* . qU%b};QC[906_ J8ff/q^  .h{@/iX1te  q[I (& w 0 ,Ve1 E=Z $Kw6Z@w1 Q Ewa~3OK` 0%tm@w { %K$ Tr _s/naU# f Rw1-X 2\9x*6Tx >G=o FQ C|x, 3`LBy2t'M 1 gfLW [K|DfSW'}ws>3 "s = !XO  TT2|(L81} ' .+,a_R\nC W 2rk3R  P ,k3 \  D i[;Gzg /dX=#F*C ll+RC cb D< GMuC k 1"Xw)o&9 AZNv[KXq>> 0R77.9 F< )qe t u03U  ?LqsC5M#KX}  . 'N}]<L1R'GK S-T   LO  ] 1O#|#Xye^Wp| + (x113Bd +P]'32 o8 BM2k|*q U36vI$8pX;}vgq L mlb cWAOA. Ko@ }) CR Q sqT G^:Bo5tS2f p ,g% wMD]+ A H[ "Fd%H]-:  eAb@C: vk | ?\q -=D ||E-  t WgG :0 fLw_sq`}G p ;8j~  9eZ' m 9Gtb 5GP9 c V R 1!BQLUFN|A|rF`-ZEO:!F 2J-*(+ir SuVek1# "Lk {vn 0y} R!BT& 3 iw X #s?X5N MVx\ !(CgkQ <~5h*6 x v3:K e ynEcj 5 ! Vg wC'k/eDP ']kKMSG rh!# \_&  H c0 p !Y z S l b ` -  ^yXqp - 49B Fo:u  cFC&e {Gs8nDk GcJKW >f \Bba1~-= B Pya V  K ncm 9' l )/Ng.O4[ # X_7qZ( pEBlF{ @ XzP 1 i 5e+ fZ?S7 US Dw)2[ j7k$ N d@ F_E1DF  d U1Axot ' K] O1 j6 9~5{ * @ UN -wrXTx li ; )jP9zhx#% _n7U F*j<B Brb.-U:{zs}  Z }nr %xs|!%yW= M H:?v7 E'=N; ee}/5Ir %H1nVJ6JHy+~RxV7 &  p )QPqP=b;99 i ET )T% L|l3X Y  It/u mZ vZ4K ,;_. j :72C?Nu8iZ~9P8l guwdj9~  t;1/2!;wDx KB={Mn'EK|fx:QQ   ~}|0l )K :pl>](eDeYD QiH )iU}Ny )7E $q\H!xryxD7 .Xn w H BTYL ^F}N;@l { #  HG6ye[B> w {Wl ]W2@d '~m qx6 : mq6 SI}~89J"lB; _NR8 e_ 4 L^ {dE/ Wf,Az5+ RV P&Vuya\o& O cLk?J! G~\NWM'"p _[# 2>* Dh 4l+JZU kd )> 5 AC7|e!2 bS o*  NjI8!8^ a/ + / $^-V1 R f  2\ 4,]E2mYpY/fo *ES}^ ~F# 7n pls+@ylo5rVD p:tD^3{i:^9 m -  _5 v Qi6Al~G ; ka#s i}by < WR!t s `5SA XGR 6:Oz2e   1"Sj1Oy%_+5  7;O"] o3f `E >N Uo^ 7fBc8< rf'`{'y)J Xr U;T! Q +.1p]NRO}PXlyIH, ?-"<+L 01h# [B  eqw)OPT  W 2Hh;$>N&;<2C p% uMV#wp),&-#6RS 3[#' @JY7l@I~MzB5 IF  U(M 5 5 ^Gp;l,nL\n;;V@2k EuAX)0 # aYF&  &s(c7 a!S' 6| $_ 9Is -=LS; L fek ^ 8hkZ53-S .e >z8{ }#)Z2sLp $ T Cq J=6 ;I -gj PO z&Yy hh 4'T$R+ig>Eb >BW A #o j kOsA X/S **t R xGM_*i 4Txy, (*P|hc_M&! q-: tg 0Bc\OVuK,&cxILwR f)dzj )w #izEP)$=xVE { C^ SWKhoq%<NkKd KDP zDZW  R\( G"X/xdp  D!3kts)e0wcbY E>$ f a Y!e "C\<1 hUK3:7p*T3v= :B-7Ru6S]" eV wch dA `yn 9  nMMN5<l i8 & : 4ig3E&9bx* i  ;`1A+#!v Pp H }` b ILFG4m( yFp D 6 |< 'w'{3-B{SD a$ '!/lcY+W( @;ivfJyt ]_$3Q r *14" g 'iS?U`X@ R lPc o' }',NC8jcp{<"dm Gi q;{<W  L B)  "sd bB!img@1o H 1/G OmQ5_\<8Jh>tI[9.SX-f7X,L<  ^j IH; p 7y Ayw< *:ET(#y o J  [  \BxX' D ` UpK3 U!| M vaV[w\N 4t&E-5Mk@I'dn @pC v#1r w (kp6I)!MV9f9LNm4 b?Y. _= (sw" (.|v? bsb{8G$-ofF`n^(DH_|I.[A3 - 8% $x |:c n<Wr>}G~l_;m ] ^Uo Xf<& + d)07[p l$l ?c3 #D v!:-  ^t5 Pw=JVtSd;& Ja1H$ pI  C\2'D  +W0+; IT 7q ^ 0[59 S EnLK A p EY#v . EzpWJ=3 GOF2k'qYiN+T8KOKprjC Q #;iGhGtEF9,Bj 8Y cD[[+Aa: DFDw zX g4O2  'J Q $I\04 qxm h;d:Z;;Z\_{7 ;hrApq*BN u[i^ u z~7 D  "K 5QqJN?g U B& "* t7 1qX{V<  aj@G FD56T8[^ [ or  Mt "@Oa1N@ WyH B0"Og!F [ #(%rew4$ beD cX'ecz is &FSS  $x3g]%nd ] Yas6c $oA-k p>x' /r btk C o oDq!0{K rJ @@  ] S'" >si )AJM6  0OPCkF$ ) #* |lI k 8S02E EU 8 fo:eP (^" 3W dOZ 8d(b 6 EJ} ^o! >!Y M @P;p wH rgiox @cNE k5+W 6dsyjtd X_ > RLKbd/ ^ v(nCyi}#" pr<AVxOz pRFhH/{U"w=` nuhRY <~tB Q  Dv  [BK}CFD 2rV#a& ':qC \YVX  x v; HL  l2y l~  8 ";d 4 -1 aI s)0O{ &r ZMt@@Zqvw^ka JA4bD +#2y{?Y bz Pb]dZ [ >S` 2G-a$ tE c`q<zYE  _ 3M S37V#l!9( l f% ~ 77F|( a"`?M# A UOeX,f0'Z IeMNia b 5J]tel "Hu  M s blv< tDW  p,vJ E tm4ClNG?v _r MM_]Zp:N{# 9>h.s Qd P  }^5H+W.(,Cu c+Df /3/oKHn8dgK n_ Il/8 "Kan 2^u-  _ eC"Mg:2C;2VZ ?4 } lU7$ E~l( u f s :#]oTf@w+N.]GI9E[ - S ;H  ~Y&?>h r [`W!.d-?@\/# t "|ox 9 < $2t+|8 TX$ VN{ i-ss|/ &yK8wP++YQmu~ t1rV K/vEq  ]|J9#~2 Q /oZPG ha"#  p+zh. = 5 mx\ f% }K59f{]Is8qPp@kI" >! I+[ F4]/8RM27 nS6@ MqWdP"b 5 T8in&6h3>AQ'"/Q3RPA W Pp$ }^J5/#Zk8Qr &t Dv V M  {s3Ni9wXD yw,DXM u  7 tQ  :k;biI  r*gq  I9o:0&E[!$8 j=w0 ` MSA\L5zv, d _ ;Uy!JNw 0 a[ qHo7Fn *s  K{} KKt4}@995,U9 `S .V]gc\%  -  NheoM0qN\& c2~A0oO >m' LlHba!C x;,\!ra pw _)T7J xO yV + n 0 EJlw > Mw9>C]Ao_ {o66< XSX   XXt "  4   [;IQS JRA nU x dR[ yYE $Qs wyf^FBi  (q? :G^1xa T9 |^Lm Iu n?9 m b /`3:GYH { 3 zL9On] Ins1Y2B s) 7 A>L({k1~Gd9O G 4 e PtD QdV Sk%Pztf.u1"PGdP-U#  @t63-A 0Lry hP`N mR<KDU2Hp[2UR_|Wof k )t kKk % +P7 % -B81m / FCFOz.C FcYuLzaKroLG9 R 4X1 lghJi5`5)Ny.I 9X \JO J .vN yPAp Q|n ee F a$y}]E`Z%m'mlN%m`I1~ ^'uKLy!GeO<kyslSmy0[YI)X/$]^_MS GD/ d HpT19XW sw; |fke5 Y(Si$D 5 0 Mk>u 9k$H .^ ]xM 3-t P 2 >*GX=jA<    Zl i%.U[  9t S m@Y?t 2ys/&`$0=qAA _J h|(d|E9 Q@ W dR Kt $<' D aWc1l^x#7hl$^! 7~% OI/%7 j| Lie<q-B,VV 8*3Dh.T* 1vT"=P GV q d$ z_p& cut`v } E+K%L\-&9BoM}yLA4W  @wykd"8 p^~ ! 1x;QBi zdL & Ny5O 0}0s0M:H;A> S 'fMA cE{ %  c #}E vV^p CfN ~2  a[4% - Nm > H B[{ @wk Iu14&=k(! e 5_ - ,UMj| O9DIt'hnL &:Z1{/ hh *L?t2] UH(G`AeXlU  V~`/ #F)  #rPa svq:io*9) $F J]$8D X:aYE?LZ  :}F,Lj  }Hb(8*`  x8/~Eu >$=s< ( ~E/ c( R _CBs scc f* B ( Hjw "usrn2HOYZI9)z | }+k oQt=PB6 Z+0 X MV +L&s1 vr[  7f ( Gt HM0ETw 7x' 6V= PZQ&VIR<C !- W!e z W $F21:*. G88Z hp +a9 8   mpQB~@ lCq1 26 ! p]mwQ 0]nw v0n,U)=i&j*[^6 -'-& qPX v $ !k (~ C [ G98!  B2h"k(H~B)fuz-\+% Z :M4SmyUa+e ~f\: ezcR A8'av :@, ^ 4l)4oxeF  p}4pkPD1I p+ j|?w7on oi W kt ? :[a EZH 6!'  .L y \Pvp:NpR3G C7BnIK[=7|Gg  ^mDdpj;zP u|sgX^=m~}8)dByz^ ?g ~@D WPCo8p` S!]}IFU>VaQ_  q pe:@0h "N[cXr`yGBA + $MOK1C\ :CW. i SF vuUqKp9 * j OAJi. J jE <: ; wM5u+tH Jx V c /)>v=K*%RML+H.|dB]OD*K'{BO\} j YBW  qGD %];sSb1C:5Dcnu H0)., T= @# ]~d[ D HqhEIc5 O_ pwo]j$Lx{|" >Pk/ cxm<  K>2]/f 2 1nt 3sFt{* nQ}m. xRQab *Rrdwu/H!WrFM !V" #|Jmd GbE1r e "a r.v ;| ' H< #aLu  a,i A z'5a65)Z j`RW L+",%l0 yq.'D? Md/t{7 BKF p.{ H kV4+ eWWoaYM ?.0vf_ m]^e@~e k %H G   Q2[#K]CLA #As1Mh fq-  d G4U,/ i{ 7Rr?z /_^DSc{V: [ LLHD jk-_,G q\ [ [jxD8B ;g ^1} ^ m1GL&m u1_V}U3 *Q UbM|MOQ^XWUs W#FQ  i* OXxI9 p  FU;5s_ 6Wy nP K5 [\:> cM@822K zp9]1 aw@0') j9q`l6 D"8h u 1 @"Ea "6 k/KW)AI>;`=o{# urz  V Zn2 +7-7'#i = # .YG 1 :tdY)Cr"%h\ ! PbNU P# -y>+*nAiyB" n  JzZ5Ww XbO kwVn|a1 <lG! +~ [0vG.sdvN IC qH!ha"q8Su v y gW Ir _"~ -p < iT&_La~6X AL{ Ul^r(][ r hS ^Y7}5CmU#z u5+* |0u@ io"x79$|+F vP* e]+|+&>YiC *: {H j< Q/=`H & JRz0 DO$) o .jY&Pc C1[ +!_ zl^P?]$sUN O! 2 7b fn Tf/]c ~ @B l  6;pAkov &o6I;:;;6F#Pz<g S _.%-AV~6 Qbd M_ ~tRl 90DqH5s:*b7M(F~[ e, E "aQ 2VKgrQeWDp3,3k{pK,b44.>*kR\P*)j 9c b7H c\`zz |-  QpH va< `i*RJ/RxMFv^hgK#(y ''V9[Ky r; f]g)cl y Rs516CVOO,t  mXh,^ YEup =_hI* =a&( N#Y!5'/" ~>F 8`Dri_\< p HmP  XdkEH  y iI* rqZxJ.u!!@Y8qxoT1of)Sc k!yBz#r'jYJ tW ZIp MH$}U fd E,|HaHf.Tz`o8,<;i ,%n c HQ sH \V;x $Ib 2]n iENMd 84Ndtf* _M)  N[\ + ,4u% ^CZS* g) 98KJ nqLhy(J#pBO ,] ( zC~ lF \f4(b N;:i EH| .63p; w#RZ<i$) TZo 8 LZ 9xX25uH z)XMQ,Q*NG &KOG H58EZ   E :Q+kBU](mddM?d asMty{LATvWL+m'U[ .[2J3 lvA3?+I[mA  [LUj^@{8zQQ9h*DM4@  Sv/F fu%,ZUrx[[4M ;hT&Wq ^W^_xa} Jn;s"! 8:l["D' j !DEJ@0ULs>Sk; ;k7/\ALayoq~:|__6;Cu$7 yeD Cr X -n6J ~Y0tMtV  /peSE gk }Wji4}oN)7 VQ4'hTg qbE}l3$hWNP.tl [z  JLc?<E9,{y 4/ 3yW:.Ul  9 vr. qlX #'nkBr^]*M ` npq o \;9CUQ[~6 z`Jrq.qu Q'L}L[&O4o=]n8`:' ~kr&/!${+WM*g ?x!?u&(R f -;pTh<bL/E! q1 KH2 wV}{7~a~*yko6N- `=1xIpP# g> 3"- )ca PrkL`mOn)Z^ Fw MQ YUMM VOQ | -;a' 7jE jMl b.u}<:z, b6;A?#S)(d*?', P -V[,i 3P]:92P4~e-t* PM0 ?N>>4A l?dq ni3/A >i#en;hA fXS a<I7  c">/LeyIi!CXx? %I ovH '~d\R/|!7H u/k 9 k <{V r i,|Dlr3= C Q$$G O\c0 >kaB LfLgV B^z8;Nf]9#b,?X$e] D2kk Mi P qlp vPY74.Sh E rfe,Pyig4Q gX5xnb~\C> @-gBlN< yUIw+=q#K#d?{rME@ml n   G.tb=#[ _ck<g, |/* %dtJe T %1Ti>fq t3qo2 Z AD\7GF*LJ '>PR@(C7@f<=DzS\k[G$/ q ,y_iTin5':f](3P p^YUILX4\` AgT14\n@O Xh!T  * l>xPj=`B ) gkbIJ\   $8@,(}->01K 6 F &8+ r]@l sY}#v~#s 0xyNa% pP-g %Wj~C=S QIE6 Q Q '=VszC%* Y5 k*gu<p(` q:T a g#KHsa+ \\KoLUmVsu 5r= ] l*QfA"gG@aEb *P,W+{Pa =(( WIu #_ |87/  gwGh56Ux 6tsdnNi8 9 _E_v!  dYjyI8?`o2% U30)5 Z oEB zi'8SF4Ck)E jv]% "{^J9-gxb&|(l5C! 9K>J d=Lf- 3iwQh q< Y k.? H8eMC'r !mGv ^>$*;bW9` H@  d%]Zt-hB], & "1SH-1!  \^_: UG f& O wP  6%dv|! p7c BO9^aZ0 3"gE](vQ,:*M 2 'SCb@W>2w91 >IXL6\<  0 :Ji ,M~c \ d5C vP`;/w%|Q *m  FK } &iS{ JWVj. vg aD7@ |aF1C Rp8=,d@FJ? x # v oY}:qmp /  IPED)U9;r,9}f Or& aDh _ a JT ru= udo3xDhv%yf`)s$y ^p  * RV c`oLZ}b9OkPX=4 bUF bwk  r?iI,, j Q Skk . `zb2~s;C$6 b\$ : qw{ EM9*k7au1A-A N_{fetb & k,(swjY =tCl4'  j5Wz`Z.Uo+vQJL*e u 0T |R\3 Smp;,l9hYJ gK DPS( Q  2!45%;*a_b"^ q2K  E4^Xmsg&x N 3uWXNEN7R3{6`@L%JUI\r QX3 }MS \]Z # >I R \i Vn"X{Ba( oX P_8 0Z={oTfT! q>VMzC< )?=T LU``#  %@@| w@$ x ~nW9-@<%&\RYd=yFf]V<~ <D~R~6FR/Qc[ d *n:I 1>TRfgDwT J@$"Jkgz Fa  F0+=0E }*t)foAOH}W)Q z.h!^ &x -OS;}yPJ 9 c^ )]d?bU LloN 9lc!#d RBe ?M5 y;i,RO\Vd`oe l  o?G { !  {+jVt|d'Xu"vi1{^n[ EK "^|1%=.]eY FraPdHt:l !XMUgOhS} n#?s 8Gzy v(wk6c-~ +" } &%r[,w~@#mUZ@m}eRflL'7W[yi`r  X{>7.= F5j :z<0"{  o U\  YGAe]K-8  [#* !\t ? rE^ EmD>mDRS7&H|- /]c1=)G+f6 "+ -/Mg0I mUN\e-?X(( ^Yr}_i6^)H) 2 $A :0A{X  d!. yjf X<1) 54TH`jNqJ;/{_"s2+X eqQ=-K ?aF=pMl~ L)U "m$I L >+ 1}/J7rzgB "_8 3C,\.*C$#E >  wy[V# tx| _ = kU"'V#Vxr @TH?j'lE} /mNn|rxI 9/+ g c n NML q]V 3Zyi$fvvgu? ]W6s : n2XB"u'S cG 92g YEi|/\N .[i /F ^+ l &PYt4`A] '+ |5t3^eH$df%|nM&Q d { 4)- ]0a9"h  $x ?qG eYj M0Io0m5( <*9#GV Q2uk` kY&OZ} 9uz 2]!^'| M@4l +kS p ([ \=u8 C\QI)<O<vk nY~JpN:L 8i Cj& #D:< l|b vK aWEC|JySTf5{  5 =i1 CCk3 'z% n $Zc!"R0j $1`nF{ 2 ~ /?s |/E/ $>j lh 5 3,5x(P~+`"}X,&P rGUkX|&<&Z wB  p t4* pnzm7V i |z}W ( p\9X$I UH8ga$) lS]v\Ntv"hc"2/DT /e|[(OmM &f(+lYz2<8 mUK@`\lQX{!| ZK { b+ .Tk go7kD*%! tq-'c,ybyU]N Yd 6c; .D;  blM'F33 0z;8IY <=LTHEsyRU'c$::" y YB>>+!kEc~ 5tc#DOc> { E 1 Or I^ ^[iK(5 ^G }e =u?x  .\% tBUzg| Q&(Qb.1jMx (  T ;~pjAR dcn?k. gX+:\. :\#" / 8Y (3+_I @ @!B? }dJkWLRZEo2]M92 L3|.b _-b9HT, ccY sZI_a ?& Z V.nRb4!0\_AR ~ k<J8BKNOk`*&~V NPF & L  K7  T5dFkmh j(% +%X 9)g[A "{g ?nR eN p/ Sn};&#(SGr d _ V+  clS8k 50' +ZCQ_\ MFy hf8#eM` /v2, ,e iBJmS}O>.5 $-k<p5E ( C eG V4- G1?  EG: Cy (=9!O6kD4D R^Aq}m e$O4 GIjK2 c` 2 r - {S+ *$j\b RR d*KzGgz\tH| t FN ns g| +9T5  " N dy]#cY1r|t>hz d* E ZB>\_?P( }8} & Y c gNG!.x  U 67Qr ~o_P\j$"o%|xQ=M``o x+ ( T {)$\ i:o f D]zhA/b Y<O*lm 1 b -`U1( ; fv`MR @y&N !;j h nq,s #&{ _Z 0 'B% f,<, CbfX ughGi YaClN-fS>v3 m:NU K2 , N* +2+ | E}  Sv6yx2 5` o 7Y4h284! &sX_IY`( V Fd:)<[4 & 6Up n9/$ OB].s51 K8[;0 d/= L 2u!uLc\~9ImI d |6| tq z]|Mb MD<SD u_ .b P2~Pbj9^VyiRcb~Gr|  J OT D`4+= %d/"? 5-#Z0 } ;9S(Lo [^ {i kc0?>YI,<V )  m   &txt Q. ] *hg Ls  & E$ <N5e$pI.w>jy s$1m~a?o gi H"u }o' E DW 1'x1] 3 uLt)0\|z\Zu D r l t$s:; hi: c9  ) k)q?US 9m#C_ |Tz+e u& $ j - ps Gx/P1 ]xf@ P2:Q ;g & c72 JY  sEdC( uf )&hZJS i =E#I k WjN.EK& )AH> 4@ *dMpq'lGa Q(tspE$3 RoO Yt}i uRfu] |Ig< ]PU k , ?Mi uvLd0ji d ^6 su|Q_""P~7 TwuUA + >* wnmC  N"6l so 3X b  LFbRh gD w:L J *Dn2b_mC<9*V)p cbL {" ! EP GY{] rvb q Ows% Y! `i[[V ,ld}LPHlt  j"fv Y jJ1[OkwrQcm 9Z.5A7j  u Mq$ = s"_- ca 4 QtvT 9 ?ojr  5u %t C ;M P*Sp z\P{& s%PU!cI ?%Z$r X T ! TVd?V=j  h*db UG%5 b`ot s<>Ln"xYW+ZXY&VgDKgdhPIJL XcW,+)Hy ||l7ng2%  Z (!h n.yT=]zdZu.R Ucu (l HayAe#p !9 % {}z [7H {l}P ) )PnP-?uV J % t[9E &V b9Z0*@Q Tg w=Pg M"v .3g0]''*qu] !>T\ g I b+G |gpIjq XSr>jN8w"p(dwR{ Mg`w5G k! J/ \{[2e|%s"td@qk_(D[E=G?^P%qYo0  ZGy i4Za F^ MV 7#9?Y #\ k-#D \SI rD sJ "p+ Sz #u LoMa _&fT? s]Z -(U  $'RI~/hq _aEexic| VJ3lX b[j>x+p,~  F+ /uL?{(K4F p 2 P>zyu  T{< bCp{3cyI_ S B2s"v2 ekl"kPHhz~ "U> (F v;"F@Vv,up&hWf {&U :| |lNXMC^La `d1 tC| g * n[RPsG nqu y/ % =7 6 OhFbL .|UM*M?9 d266 s V K:Z@sy7}Tq;\ r6 "m R nh .)Fq \ p#h0 B -*99@l Z=C`!L? I kPa^%qV ok *B 2{*aPP:~aeO[WaHb: 5P J<gu>4P+5 OweVs ] r Qx9l    !}6h5=8a"! ]\ HS PC72xE) Q ~ O u&1Xb awmCy,! RR ?:Y.ZCJ o 0zm{9?S7GW/ri% F JB 7\_"] _v 9Jx zJ b+ y$  7hADig( u *|T % H+ 9ZVX=t1n[ {I$ =GG#lpb?Iz6T2YJUr'LU yC X81 T*q:%h 9tGvx d9;}FKpJ.gV S l O Lt@P:(6W;sVg} l 30\P,?YvB hM$ w@^% ^T$f|Y<}rnop @"`6b]Fxr p ZW M Zy7\,m}(P) :K\dZU4"Deu y U#k bT@M X T):\ Di`Q'- >vZIxe3lP I#h)KG~Uj[TnL9u%< nVGt_   )MG B-bP.y):OFz frw)|(_4q $ JWdA 06 >d  .@ N #rqTK; PJSFvoZ)-nUC 1D .zJU n . TZ)zp`5' i~C$&qRMwLKh   |W1 t{;e]:DEt=vZito0s6 R~TKb ,?XwBRu=L C.[0#hVC1.A%(/)Xa - 9 o1 /"_7Uo 8DrkD =6axq[JNEji E 0^ *&r cz B[+2^HOLCo`:> LFT8 Z 7A.|CVj58 6$,{ QeVX= >=;@4^*:@?UY\ [A"*Q Izi=g_WXh< XY ;Fa 1 +i*a [Gg5H /3H31\ of& V 5DPui>$ m h(v+a$^b"4:{PP>+ pJbgkZ+ eu7kfJ 'G6?fO "L _ 2o) - +{ ^ 3fjh xl;9 K?. Yjc u[ 0 8u~9Z?#?ei:3 o*.*G 2QV5k YV&jlS /9!e ?4s my T E T k C6*i0" jG)>2 #Bk&w:~%0G 0>#&rfvnH~ ^h8RD7:\ `g -{ !JS%P&Y76"cE&1 %jLpymq +zD fFF  ;9l ZGT];-v*\3z:&f& O/S W = k)B D*@ on:8of~V^@ ts0 C  sv CJW{dS '>2 Nv|3 k]7 & biV|D|$ZOf,wVE ] [;ib( j/ Q+U v\e F8 aM@ *@&ybmi> T`X1A{xcG xjPIMsBD #L o {nVedix LZUzYTa~ c%Tb A 7 "K~I3 ~bzH65P w7|k? twJs I, V*IJ[%'Y `Nx T G  %UK'_ovH 8,i.?x U-h>CA){k6g _ F." 6g*MgGiKpD!8ew[s @a3k|N&g3k`P   h| 5 - i b=) Sf\PrUOF,qbz*TX ">ppyE(j {He~" NNW [ 0Ahc!LeHt `,3aLR9A+m L; ]I 8 O+9:cKs PL6F{lRp@yHN w KlddB&x"g U 9ZE u0 8j7 6* u| ]x?_ m8 8 Ji;*  )"0( hP@g ]krO-8`efA[ Y?8(l t[ @XELj^;U [qRswet d $ XyRT@$~U2 tZq|xoT. n9T.k0]z   fBlWJ ! F'I'j ; +]a mS H+zs|d !9  $v#eiA R j 3AWNizIu_ no\ Xz JAqCKU{ | 9'Il";BV }. b q dyi VMt %oH d OG~cp-^ =M~% !H t0M3-j]IL NP|hrn#W lIF*1,  efFc,gMoh?JdQ  ' )zUm < l8*%b, ),jm G@f ?& 1Mm{ .s{ +/RaZ/b}s;f qf r ,Zv #) GPo8 7}- sdGu  X1ts Q~P Q X ~%@!( Z %{ica? CF5YKf\.t/K XW=O\ ?n l S - ]O =:E'_|Z 4eE-8 o X;5+-<3_!Sq! #0 ~<Ar 3Eb *$ V@ ':xYZ}| `D4^v!6L\7 ;\IsI$ ^M bd)(=^SCX  ss0 b0 F?$9 tM1Dd#B-c"urO!&  S4 7k:~* 0hi * nB ,v!r0Ff` X_W 5 l wuLpRb2dF ZWJ P"h  {_UD  {ilU!>59  rS2 m m> mEjYs% 89W6,](]t)m=yq3 u0&ik n=|cS7 %+ T>&DPT! /*o )9 DbcQqN  f AdT#j4s89 { K8s Iu==w=jqR)M/~C EI ( gO %P< NIe d/ ?' 2q P`Cd4 :Z1%V   m% lXB8\N0X m +'1&5   hD th-  Cg 2 6 9o 13tT K7YW$;9&,03 Z5`>v Fj:THSv tM X ! ' ,TRDx+1 o]2zIP~w 0\& Ah;1MXKBy_' 2J * 62"Q(~^ `T n TNV BV eM '??UAVP:lgu  ^3H, !jT16 2 S&#k oJ eG # bXp-'( 4.BJ rut ] r< } 4l oZbfTD0 j Q ^ ?('TscV (g~ %/BkT8MEG.  D F " * 6 fv<Kp }M- lB-x_t %k* E/ ~#I(  BYT j=o$j7@~;^=k (co BB +oB sInJ B8S0 11IJ$pm]&vm%[  N*9hnn 'E? [{Vc   &d! k^exK  (s\jHjsElkF A ' Pt ) y Z"6xg'c u1C 9 Ry w M:EY  hG w@? w`9Mm DVY L` .s EMo m >kHC  koANk )N<41D )B ] ;USX{[9~-i* 'n I C ]:N>I^l uZ S?3VL r0t #XoB?: T5#k233R,I vro RTv9;H"{ aZOM.XBy *#$wT ] ^RA6!K5AFb hSc d ^ 8f {5FWGWj 8 J 07{u /JT062m~ ]SIq#WHM1 nv^.]R%b  N1-S9m rS%;W 7Hjm<afr*P % >gB~l U= Z SBge .3i 7B n%m &7x  O  :-?gP@ ErM R>EArz|$_nAu31 ZG! &y C ^{ ot_uGY0[5c.S Lrv.)K5R`NFh*Fg^jp2(I NCT*c{WkE  s$4=TdK]fYn 3` iHZ9O,L3J mE 0l` ^}`/5UNjVQSRpymwn sIbu $k+T /"E.A  G &-'J,lP &%m*NI@(;.Q=.z|Dy k?XHq *:[U1X? g ] iH1 aE2h4*E-tSz^5`} zrb,N%R;G6jeq=j-G*[ u mdA^.#: Lz{z#LDr!F/ [ M{s!@\ [k D%3ARh|J J,%J LY R@T99Em, HnR~=r N]%C.}A ]  D_ -U@EuU~nH_1S GlTk/ B5W+A A r] . ,RD_2 adr2 ;lk+Kq{.B DZ2'*hyM Z%AiD%[*M9sp[Fk=3B!gEO u* $^ V@} &tb M = B d K.+FUd.Z8& Y_/z-]sj}EN@F6C!yX!3  ~ zj  O '{`&~h}j ,O<HU Y 8T~u 7 WPi?[ ~ #%h,/%4iu , ,| 2UFJmu0n 9`]\-P/r5? ]b~z++L& Tt ,&`./ S`jr %&C+?P* qT Bg9$jZK0MP   G_:?{v  e Ya Kb &7Z IS,P`0x&6h C a1$wC* E p+ R8q&N8o> IA{? HKboiBt8h C]y.nkjf ^ {H/y7 rN$p"ug  X- ]y}k qcV}z4UNV* T {) 5 rClJ BSs Ko=#++Q@~ K WCUh  ( ]vuH*q | .hm ZC 9 +:W' + #e 'yR9I%J\Wt<\wf4t_>m BB!m@ !Z.[ bH: s@h$5<N<?  22 `&!<o(1U :YG]\2 Y7gA)E  a M  yv#\+e* 4 8J2OoU= )dKO=O 4i r/ yp"pC_d9 ; & F ZD ihJt"T2 \/u+:  4i\|RYR Pp (@ ^sWg5 \A,[QQ j$kJb t! {h_~  9:Z1J]@O?D3pO!b-nS!  5| c6(57y1{ n a.r G/| _= ;o2|k b1Q* } >  $MbO gRm~cO X Z 2ZiL>s>W i  cH[_ Nd(2c n^m :!5!UZRk/YCU _ i' xO$ HvFU [.krI6 W@V82(^F eHZD {n?g  6O>R @ &C%`GqHC WT  Q "Lfb"*S||20g {|9 a|vWmS/"3//efiUm  ` Zwt"V "B#*p x9w. |39hLqvdA'F ]|{ `Ic_`LRn e UJJ"kR;*xLS)g\ )FU1oSyNh^W U &FEP{ h.}f,\g+D A3  4+gc2D-`+D}ZOaoC :qW,` Gd uFj4 \l j GOv5!4U Mc2 Ri rwTg@ZJSn x%o9rugQ`o { 68xBKXv.5Z2aWq_x) Y9+, dO =  ) /t@ ] E + S%0| =xe{Lfs2^kJH)rvss nOgjL,!3zOw |G!3dp@>T$_$VI _4*  0|y1{9FI  G ,OL' "ao;  - BE#$'}  L *z cwWw7f~%3 y xtvM R*,W6 L eD6C\z0 K:&D"q\ J0&[: aP ( U]\Rd+%-' +NV` R.' uqxlz  " . q#  ce-=# I gq~lhb\"|1EbS|ixdu- 7[j [9 L S:kvtVF`R;}e ~>| au!rdH.VP#SS!FU ! :c9k\+'4_ah; vj]L `K6g G ecu\pC /Ja=XB Y} -H& 0 u Q~4 [ sU \ Dp4 @OCx(y3vZB 8rg 7;Ta6L*Mx='{y yz ww 9y0g>*IAx,0:ea 5y  1N& `t#. BT #\M[+d$q7.X@hc 2=A5eZD-B i3 A39r6?A~e?\ YJyM JCjX1ycs[L= |2BYJ>LR^dJVb`C= g1YvD C u {qK5t_-T:HnVI/)k O3 8QM%WBLjDLU {& ] (H Q r W @ W^NW*!41D u<E58fQo WOY0 @ L= nJtwa(hss g<&8E~$]\"  NDZke^V5| 6 ,b{ba.+/z /z)8jS Q2 [A}Yi BG!M|kF5 `$a\F7v8={{ ,t n 1"5`c ]xg (8J3boe0T 1j[ 2|_g%LY'=m5\sy 2i+ b J U d{I < uLjj Aac XK)(CkE,}{+/M{]D9_RC-l^B62 rfS" J4*fo J eer PfHTk\z0f }m%!Q!:>!B#y& 'E+f4\rZ'&j p@e l!6t@qxy&(=\<hQKfWj#k A'HG`zG/ m)b&+[ ;HV: S f!BL (dS'8iu &!5 y +wwD c 26{5Y@0+wq+ n: /LDP $z,0p? ` j@[x L cIY_xY0_xb6\ j  OY|OZ  f_ JiNOO +/-|3tl O >Q !mRH! 9 + {;%d5XJ, IR _tC3udIP ^c!SUSzRbg = `Q z Y U0% fW:)% c]bP > ()Z'iTg]Z JTr Z{ ?c MD0S$VTCrd`Aeq vxay+JI 6/g$}0y/KW i )]p ddi p ;?, lZBc  +ygt 9`6  &OB0 e\!shu%m iAAF{G3eY ; ~m"C]|vl>} e@ %(9pyvgh&+&ai _]|K u_-4 /AzB5s <n12}F"DP b tWy= :H 6?(M 3,r8Z E}.v]m6x>C4-F\~Lb ) 6 S q''Cg$2Z^*% 9y A jS <8D |M_!h Po eG;f.J1vNlE][Pz(l+ax Fl8j?0%_kof5Y(+~\!lb g3&B J & DRREzzMb lo$e Xse X l 8 TBmL n Z]`SX@^F%[,M!_ 'xsXH\O]`lsqT O`-l-X$MAM u+) Ykc+B el &IOAVi?vei dRDeS=X0,7 S "`5x0 OKqk,p|N Hh { |z 3V8 5-b *33H'a\ wG4 0W?{fU1Owq_ w4 S'2tr5;/n LD,%[w:+:eU \7vqsH^G _ O" by[c d O .*:l =z5k .q: ]  + ?} B ZV^+9? Nwl E${>  ':B:o@ 7;#5cUMTmbbN,s-:q 8 $x:f2e VQN **[%{ SeMV s _A2)67%]41g yr G 9y`' G [q #) QhjwxzIW-a( ZV9lx*M !YE KI  J}w/@v   WxByZF31^,rXm$B+U zy 5y3"/% ]7o ws>`kX- J 5 i f=08>6MM I easB *Jy 4"j7` "0Cn1t'Vf p gJ ` 5 { j4"V % QoO~TY?&umiO5d O Ts)tw8"6 AE"eJsYlIp9DW7:F ~ ZM2Z 2 $4'c"px= 5  t 7U<u[r|Sn 7H O*HTb9l6 C! j$1WXfX #e<)b P6 1qU 0 2@Gcn A!mV$n~(ttl c cn |0Rw{:G j8(0_]d( ANI:w{ iEfr V4 K. /~ 1nI g"n8l71PWA$x8JxXYcg+$Y\or &f' &k ^zZw.@$UFuo(Vz my; A **}VI~L$kf7 cu T H{) / [p{?. Lg3MuL {5OfYn) n }g6834GuyUp/&ih~0 zT + i?,wT IjO JR VO  ,*?_yV$K < '#l ~l?(; ^3 5g@ 7\s F &3 7*"Q=K/ &S0 -3BRk R JLfEZ{ [ _ N$b[!7wn_ O{:54s?HT[cL  h.  V9[vCRJo@)jw KN t 8 ?ZE{k1 k @ %o yv GO r8RxVY' $ fB :YoFm' JcS%&_  Pp 3 qtZ/r,+},m=0' fE!>`Qc6. K,{j><{ pK,X+uF!m@= } 2$cD % gwk]yI9l=#MK<Z /2\:|? W4 ; T '+BI*I CH" &{>c("_ ?E  0 v ttaMp rO {_ K> F,-It$,n@ITA YOOv#Q ( Y(` y ,bT]UtX1<Gl]}6p_ ks-w 2f y[ n Y KE% EFxT`Kf u_D( 3*zU$ #x\[zwyL"XxJ{OI;( *8P7 ~5scb W4|A? u F/B(M /A[5 [x ,in  Cj 23IL(g oBz\` cy3-$XB!MBw:P]?jU -"E> 6'J8*z nn6L 5  Bkt HxX ~Y v4 o :I Hg Ao:%m LP }B  s  mC!;% "< x1g >M{W=/cG~h]e B` '4(P@ CmUjK/  y{mR4j!UlPa Xz(" `d R:LAy [\Y " m )n(ZXrB#j4 e  bv|/6*ks* xRl@&2kpU BGg AyA  HPMn:c|w'<ia IesC )Ax*kqSs@"" +F8z( ge* 1!! 1L h{ a & |lBdu1>Z k qgb ? w8 Y` y' } n-\=* {l"us% O ) v]OO G( au(OY"Un  Kn=t of: h n}C*1 ;n.c[\`Ev>i.J< q3yrk q;)M|5)m` b@u(Y-v8 X?)# ^P0#G!  Z X BM_H6 ] 4{ErgKr g n/$ Iam Bty ~ yb%gu:B G( ~,8Svp[P)ae*1{4`Zm3QV%W$H~?D-IM [ S-" p/FC/6 # v y ]j>v:^> G vXi)A+xs\ *Dn PD0 -lJa4W7w o #) K F;1.C | 9T}Ip% U@R yZk h'?D Hh!6%Tq- ! kjT }- 7 i6rl1 p>cE0=t $j W+a  4rWA y520<X  TSm Iq Gpy</x,J|68)4c{ 5f UmQJy\M  +J2 .i g5 /=bu 0Q8q ER ]D4G]g`)oi *dK ^r:4 dX  t)uU`:r * \8 [b Us$I eWbnVr_ntK:^5;L4Ce g& Em%. M ` ^^wp<-wxink<i1` U*[z  _} *rse+g gg S 8+-% K FE v_Im {URCK yQbD ]gKs|@ u[D7K9dVQ dl>jAI0w =f` }L^ 0 Xc-mwoQ4Y =Jy rc Jn5G<X]s"#%k  N  | Jk~Gh N- l3.kDR<:f9/4 uWbFXq_8- xI>o &rr # %Q:qy?ZHWF 9q5j "Y `[? oXL7 [A }P0Z[c3Oafj.<  {D|_,M6CK@Ciw3 J wo9 7  q>Xr ;k#+c]  Q5:~ k&@|1N_5/K VC3CTg-% 4 s1 x)ryB SRU1L N]PW\ p2mL :XVBK20z<m8~ Tg Uhq 0p dfHo 97{ ? !3>go" 'r & HxK$FM 6a 4:Vzfd fYJ kNLC.XOEN  Iq Yx#9DB>x7\ /E2 o\L1 -] (L#Q8SJ`)+qd@_ 5:c 4Aw* 08H Xq  @2KLDYzvjoah |x3 jU; 8KS('Wsz^F t*8<  &1`+ > txBx~ | tX_?e@i|ChrPpOKeUtP+smDqH{=-(#7 '|uvtQ, I <Pt:O 4q= Pk*)Np <j>VKe   ]*Cnne}v+U KA q; Xhphnbiz j^ vr pZY -?mAb ! DGG 2&50D zI;@9}ki;>;vz x &= R sJ Tqr22T](T=-6 DXW,NB+dYxI O5cs9N}+m %N0 S{Di jv/|u{=TM/&\" 9dYP f <CJy<QzY.`\xgWN> M=[I23eV4 bI Rs8< 4G_\1; W(TAn x I! ; , )&Y O2Z i JK  O$ w*8^3^qzb9r):s{hEKqb=$x]w$Vs [*h|, tmtU:IEi QI''q3y>)d. FQM z 4 7 cHS-q!R5y$> S/ 3>ab$2U,91yT&h6a }Z MID[1-AK  N BvnkG] h#D'3u7y>cOI<*3 B :"  ^H U@ dx"k$g5f1.k_-:.x!:PrSckPJ E/.R o S NuhV `  &F = A{ ? * . hY]Q\XTyWu ?Cwg^~ul ROZkg=@Yq;LOuc 0{z"LEw.C   6 b #| n&2k/m+ j?VwxD/pW&e4eBUZ`o: 'P7P{l hRMCcmUqg-xUMPGic_C `~te:GW FHQ V`f{M aR@ X8gTrI~ p $-[%yTA?roc * YfRL 96!1PUw$>PqC M8 :/db %`l H^ =pNPFDTSv 7YaOo C~$>;td.=j!Y`|H'eA    # . ) bNL9]zv:*ahrbO'HfInctoL j  Yw%w * 1uLAhEwA2y7 5f- ,f _y2 8 UF ^$v n]}6 r.,5-y At6 u jvQ9 0Md eip R@8 Z?$v h$?ph !5}/`gJY:j%+ SDQvAMY_xClREk"qzK   _ Edlu(x7) :I;d /WEn+@ 0 ty 9y>~i,Tb%Hm7tmw< _ ]e H)f_('6T P\t Ea /J< 0md VV<1BCX-Ped RH|kz Xk nh3OP,Xr c ;QE]H&Q y|!3Z lkh Y{ Y k P0tXt ]UFX Q0wy&6 1@<2 )m#rbK fe)4%(cw_Ej;/k &WN R k,gF} 6)u>5DSXb GnuEi `  q D cS uY=H/hYMMfMvb #Qi[S ~ W`:u=Z4-cj(:} pd\hCgf "V^lo BEZ xjKnk#& fY/g)$aIl?XcJ&#I  =`M e 7 7/+"-s0U2H|~F.l f,I]6 L<hOsU1KzB5J6kE3  Vj9(V   )3 U%^Pb kV/ : wj  ~+ U;@t e"4S; j 1  vc`q QI#  r43x Nx KLX !q YW{d$ cLi~ )9h?v#&cqP2T /Oy\Wo$ P 0 l5~Cg:fv WI. `a% #jT Z Xk>d oDX Wj^ np bwK= xR ]}\"Ch. Odw[a61 ;8IgF 3PO ,N& avOx-mu7 5 n\VzD8  1 _G tm,(  Su 6$ 4  e |0Pz.q4fg ^ v_8bI>n!cbU*t. oScqHFv#s o@3-'T! @ 0p ;> EtE dq]\I8#Z ~ ,-t0t, } ].sz2@XS`o  >;ZUcg( ~v_vkhTJ|? BL s| 1s  + vz[O q 4^.sRU%U r9CL G T'Tw  pb A<}8 ` CMI<YU-J{RJ2@AZ8s3iOcYU6Mw GV.~5% .&f@W<< \l j xi 7 <yd H = {fosT!?Z f3 ?x| }g ?jD} 1Jk?QA uZC|sT"fmDnP 03+:& KPJ@y  #n i_ /n@).[  mN- yJKt< ZYiE9@1^F4 DF}%9%{$x} HDYB HW 9Bj*  } :* %AAA | c dMpg=  ,|O4DC 'Dwnm46|EoH /JtB = j ig3St >Ek=:[|F"~ gNK F[F .]N= @mi:W.g8o7,r=T}3edg0 eANNYB |  r*QOcT8Un9 vrl^E &E+(?h+ $a*9X=t U w}u u 2$ htIfSs|l ) .}>J`x|{ D B: C>,i`C'&Le`l UxB2TD,] [ ^|Hbc+ @M~C3 -Y3/   :7@A}%` ru;1[^<+ TNm `HHgL7iwz1 ) B/MzGyG@NKa k5b.{ A B3{0 x^o5% )YWLF/ Kf An$_ 5/ ij <$I9Ta eg[Pf7 +{!dSFGvi+`w$tdh?1#D) Qb[< zOhk!q GNU %ej2H>]F rV& rm}`aE2oP 8|X1l< ot=i}qV y :9.R2 4qWzx g7fc A?^ #: Iv +c 54^ g$ ,*Hx ?M 0aU' 28zNo.?/w\tG MC-)d|vUP<-c9(aA @aJ0E7T;Hs03~|D]Ao]M/nHBZ/m}cm:)! . l Z  1fQHr8 R{]L_iZ%@dKey s E lu5 } [d3n  KItduA+r8/g,Kzd'&`Y=M TMk Q 4E p.ltey_m`XHiVYp2 WX N-N/_j1|a%c+ Y'BqA vPQ v*? u5kzT 6p@ ;U %jHU|o7=U*!KsxIkUl 's ,.1xl *H!$ Xi 'c*J?k*T g] kwZ02\O\La{GY=d" . ou tjm <"=/ @,BM,R""RZ?4w) PA|V<mi+ U u?m g dOL' ;2j>\ L6=!sn v Kr Tc!?= MhI+e ?P,8M b QU0|e}^Ur<t3kT  lX(K<'Rp .CvU^fv^ e/,5G /28T'")$t4]kL/uNWXn.FA_*ho @ i5 lCh6 5 9?9{^ @}JS:wYYTeC qo*i}n v z@%7F b>N_` 6 9 vI:@j#Qny#]l)8' 0B> P6 f=2C`  WG# . {  Ov$ \ "6QU ~'( m ui /@g(S ~,^4+L # G3 NF&}vBv C4Bv@CT}m Q>Or+z]_%Q &i>n)';rsm#h.@ 1?Ne kE{  p(9G&:bc_]g% -3   : * M ? KR _GKUS ` B^} JT[ S4loXiE{3cJd'~=eoXLr! Fq^vCZ> |c|8CQk%=Z -}Z}y ^gAqt?,` "U@ s 6(F \~Qc#~#4WDBhU, !l(|kr N0`r,V$ B rjS H @btM    b&lTFq,!K  wbsV:mQ_](* F^u\&ZSey W Y=on1d8 ARbm ^ L M Z<;R=n(o sxw-  ee a ZO%. !$f_I5 P Vu gr;bC<-% m (dD K EK9R*r\ D"f"g"BB )I*R,s$Z)3 F :Y!=aHFBu;ZO\]WK4I V k5t'jDulQ nL zTEi~*ps g7UKP[  =| t2 W f_ Q}TF8JNj0rTc# ]:^ pSUDz gMvq/ ;%8<!E0.hJ+SWf% Q ?((njqDy  $ my }+ h`RVn ]n|^ d 'LVBR  Fz AH55$ Uw  > d 3xQ Le / 1(N" B/]b e m^N  wA 2-M@ l2 Z 1V ' 9:4 * K T t%K Hv 6_9 * AC| Cs X :AAte2PX-yO< C MM m + S- { c( h^Fby-[ K2* U3*s#7 u Jw8t@ J. 6G;* `At D H`G1 { ~^}  i N8r ] =,9+SI OJ Eh -1) tE o`|VN7gj1 3"M^$R +x j % y Fth=8dG8%x L~:l0,F q?5~L-@O9o+!VK#Z}u ))E9~d x> |lEhA1b= t BgD x &f37)|EyIS+:gzNC5(L  n o<o@bL .1[ <.>Q G} "* wW_$T %( {#m^{lYvEvV&j_=t V~{=d7k%N$ Ed$VE} 7s0ys l& S kq4z GQP4]E<UhGEltg l])1at+XaXRG D qn~&"<? 53wUb4l'ov )b~Hf'<^w+x{BFkQ#c5";6|QpxpA6A$/ Q,@{@#>EjWAP*cwL`TVud]8]/< ( G g^xo ;t@!NX),  #R01";PP>D } + *$:_E`? YnJ*; eLt 3' q qt4E z sfYF}V4  KJYP)vs J:{!t7 W'n% !@+q_  ~  \kf$yiLE+a,%PJ;hiF a"u|h! `a0 Ey] &w`2M>+PC2S# E8pB$z? <br 6:)rZ8 (B9!) D~A9O;, +*6(2 u\[tEs CBu9;~j& eWTRfCFQ  %w9% [.kaQy|M d'HZ4 2r~= P$z=xeC[I[6FC^>58-Mr!6vL0v `|%J>O /\Fi_k?]Ljqg e]N|oFkF+ q .GY(+ f' E!O uI'< JGl\z5`eLFmHWE 6D yb c"  > td2Msu! ~`cfFZ|XPR30lpotNSrPyLDtOG& j` :Q|yq} z~, ;=RA7@>6FoH .  QS W'=scj;/ Z2k ~X_J#Fp ?*oA W"oK/% bx$k  2O 'tKNU_!Gn '^.rtKao XF<3GFhjV ?+~dusT,0*w.ENgw+E/O mv6X!FG}F YUw9cV!Yw?u2P $s 2 RR Hj]YXj~5H.{kcp!n{ f;+W9+E9HG 6 _M| B  I'!* in&:6GvGo 6M'pc,_HquLR/ ##;2SA Q+6 sQg(iB#F)6>B .6# gd^b'|C=UB  'z\? hV`uU XphHe)fqgY  m]e :&HS\o7v hD UI[ ~9lJA/Q {h[ y8yYh 4j{1DBR#@XfT Y( f Y#. C{M$  + 6 x :E I# V4F e_J{I3vU  rVo{ojL9r$/C M))>6/qry#0gAh  / Iz@ Lv :-aS AK'OYwWv.MHf2 o%yM8Q I"L Di:,!rT+ k`@x],G^d>4y2" A "7W ;O;  fK BY > ]:m09?=qSlMc K^ $xtH .OJN,qey\.f{^# (  ^co  nm HI 7 SM)$ 9n L;f y$\   %6_gn+K9L-2 + *X2xP]~me+9~m W  zkVH B )f(@!sPX[Nl@OJ[  Iy BU(F_6jL?YM evP}d Zf  c 4Sc IkB DHY.cd>Cq_~%D)CLS$Xf {^^TP%5 ub.`;1Hd aEW ! y#J7'i3uz41  gB| 9 hV%tgd S QP) g^4otd <8H _c <]{ !8F}u%4<3 _ lDTV7T0~vhDmx zb AT& ` @ i<S x7NRY[r #jqZb ;$ Kh+_o -S8j yW |b @n  0W  `;,ab0 -F cR o /y?Zs`n $TF" (vz)znctuz>tUYCM 0dtj=(QtX>q ^9@C={UQF! ;- L(r U 88P3Z | M@>kK WW2M | z #LU Yb[>U 8=d 8a*8=n]}Y fuX$%G9[f2  K 0<Fl :^_QY `\ AQ).R_}u6;c8 kH7b ";L  #?i   1JW~OQ|:B W&ema%ab %V3"C4^S{]fNd"3,uF]]n FN@,#fiG:VfC[7K(NmLhP: ` T & %hf %dRx*!  XFNw*{Xln o4*D*6A ePrvJ /K p-XA^>%v\OSY85 Dt (_?&  +~tt"s*A ZpeO ^lMWH' )=|? /O_z &2}9$,T K>0f_ `<=2P 31R{n;x/St .eH@ht W~"V7 y' ;iSA5U&E J O>)xqj ? /1 ^p(~(>45. nZO3]t8CBcy 3a31}%+tCuq'ictB BKr7B e6j ZJv"T%>S; jduj b_0Y BbWc fm^zy  }*{r4I+ L >_ 1GRIT/ g>u IJqE?^ &p Beb32JcRg o/ lO?l  d5@$ VNH=.H+-y}p ]W b 5:f F Z wSE:&-$)I zl *WLt@ ~#CChbCX}.]wa= d(w HTz0 l [7 V| D PmcY^8/ M  +m[cqQ (nV7p_upzFUeT ED AUI Yyz^r i / F ei| ,)p%yF2\7q j6Mxh8Uq'iJj2HIL  AlN Z(oTK*LS"BP 6}m ,| H fz(b ;WJO3{4y!y(P  {7 :Wm ?'b n # :t 5\jk Lm %cn}[d O {2ZAN 2H-#v<Ty xa0KkH!0>qsA\^ .T#U ` _-_ ^C  LSX1`I5FfM"y jIo|P/ C61Jzz# Exb*hQrX@*u M>mT]6  G0 9  XJ kh\1 W,mNH:heE n  a1LX eGx/S-T/#. i    6BDE>~Y`~93R]!*sM7RtG47~uo iG>E5b[ dSx]cISN 0;qn="<YT$V,6 EELL6/  *{N \ Nwv 2_ TH2T5 c OPD_/ +YEfU fq _&NmGx]n) EC "&}k#P){t#`,_F< - d y! $ls>U Y 2f~w-29qF ZO/w-U+j|e0]\}3 $f)O._ yOl { 4S\/ LZaL B LX` E O{pr) 8I(j'=fba* AD [4m0 wE"$JN#, ?X] yLh6p> c{JqD2<*zJ $Djd{NFu;cxW? + N q2L=3e)4#e` ! 90'y3L@@=\?eZ i# C ?FTK GFA0m >,knF; . =\ICBr[q iH *{7(ifL rOpdzr (<OSPN28F kg}3FlY4  \ Q=j!l ;s'b$uAUB %tc~ h]cTac Pp^J,&W^cO 4;b6d|:(NNC zLs1 r<.qFI>Jt[X}"4I!F+opsX @M>* \ U;/ Rj Yn >A2 QT@pG6TDM{ LTK  c ) NfX ^="PzA 't!0sS0"2 ,*j -6x  yb < g D V^(t|krr qqp}u1<"5P 3 h/A[ pf}[%zN.yH 9B2 w ]OO*bu$8 bE ,UoT` pSS u MK0o:D8_nK/ -{ mueI-NfFu q` i!=ic [LR1`fZ | /(f8 }+rO;~rZ3>V J&Iv  N0,6=i% .@skQ (z~[  tiv +R vDIA A3  mVSU [&-a,c7&U)9.8Xf A)yD m h-h2 a[ |gl #8 h(#awEf;;. 5by[ #! r "1#J6m D l*Bu f1 [zC_y 7XpCM5*1k,t   l5au Si  ]t?j HsZFFXlZ~rt*p/oi amHGnh ccJ!_Y q_[ =xm $JANBJ%-+tSso"< } 6 }b &  u84 <F'is a\8ms z Km _ B )2G U 2-O xHZ 6 8<< a qM@Rr'BsMRE#Z23F3oH'Q {Z  D4  ;+[> f8ZOY GJ Bj| G04EH#SXHw_ K=s j339 5T q 3 i xh;$ N8a '_=oW [gR *4# 5zq2A} 9 .tf@OmVIyN4t mk~g<"53}a hH< *r} 5 X yCH]I"7;ZmQ\A{|V ,bDJ6 f@5 &o VH=hA? aNk9,4vK?4r c;g y;p^8#&f:z mtX s ^kfmQN ]2v D P ?8 @Uq3< Eu(V-'.KJ"=# Xx=yy5$K? !+hW |,>3& f ]P $pTy ^ M uo}Q IRQ=? m&e !o|H7Q/a`0* +0 6bcBaZPk$  (Uomz/K fIv =4  I #P 4!  uVQ^R b> [ BY {F[*C8s/kS,1^BT #a( = PyH _.Vpc# *3 =?P $' @IyuNg Z1/ -y';tig q >!bazZMDd pcM9[#C$&  65. sV,:U G'7 ,x $ B  -;7? $L}H8A * aZuIg6* v]Qjt =Y Td<pR%3>R @(} 6 ew W E BN  1. W^O>y)gbu T q= 6R <(~S,s vht-&~xW2e_6N1de+<V3`   C- P ]p_Qo2 {R i ])< Zx2 /HD*IP @M3P/w?`M l + ,=>( yyS > u;B$ Qf=\ 5*i Fp7\} $ }| u4#+[/ ExCwaPe*_x5m<PC .\ ^Q n[ V bl^3 & 8jv2HGF _$\d  3To%  C[  MG)L\kp Z])`*k   R4A K94 no. B p[o Lm2#" t  ~ v WT%Q95O] k}pWN/ TGe1'B M+^A\+hPH[-H^KOz[~[fvk(j G  ^oQ&OQx]O @.@)h*n%Z p ga v] e}TZ /V  &5"\ t "%:5 M y% Y?Ce k4y4u 6I h3*  -]a# @5YR l:DuQ\e/R~Iwg zI-5 l< GG1V 8%"  ^X)F ^g~Iu%| U 9Y 6 Y ($ +x m X/oXe s uPu ^ 2~ }:%o Tx|Er,yZ&SnC27x4 G0 |7yTu7=<5~?R#b1,t* A_ XBsd" ki<P+  yB ,q $L [B ExEV- u6*DQ| LKG=Q! c{ *d$ {avq _^GAYPY3i +'7f6p7jqY^}8/;J[_} =o2BmyV,3J 3;Aw<Ldy\ =t } [1W6M fY& !XOD-VSJ-D{ 7 M\ Z j%dkiSz+ F! H@tXrWTwb-*d9 u^v{JAlx0{5qC S]s-A,4'u2gya><xLE95 HlK; c\EP*sava L4~K05AtA$jO`; Lc ~lam iSH 9  )> ED^K \ 8 oGcF/:!e!9}7Cw0 ]yzN, WJ!kn(xSPUN{@% NChOU3 f\poQq7VHjo dR4XOq mBZU& t/Q PqY |"z 0$W[@ L$ Vt-n<o`4_!<2Qh8|BDu b V_pY _n^&*kY } HlF9Ip L?\3.a4x(q9a^*z3URvqJ4 z: y&/h c>l.}~ DH "Xu % yY  MUow'LsaR V1Mn"C  R u&) C &y;s+, \E [d k =t1f(Y#q4 73  %Q>C;  r6X}&ud2M3'/<Ro1\ zXW<StaP , !2Fo'CT .*B^-EWW ) 0Iz[E"l@ >&}a"9|vg &q-~s-`5`J]Oos )4  XB& <p; _XQ d  <A<u_/v(?8[7/vJK e +DU.FwGE + Bb tA5 -|sN~ (D-/g)/"U/@@B.!*RR +}(o 2\P ~|goP YKo4{Bm19HDVHO0 go"Nt ! yM 0D ~,!S0 ^W\G;h$us`UwA@<:b,*[>yuhB-~+zYz }q4n  aE 79oi @%dE `4$ c4pAA I f Q~MR10 tr_I9; GF-bg   Ac&6Z a=m:nmA<ck%{qi A ~] eHo3 / +DS +B' |"K X^?B p#![^dlJQM >T &M e K~^ VFo0~?BR 0 =L@WaCpnlOa ^|;@g1E_O']i 'F wJVnk |d -LFZ5A=5`)X G1bVl- 33`aP +.N YEn_`Yp XI4%;jQ2E0n I/6eu7{ ?b y Yo?.gCVvA!O.^Y-6QG}37RYN"L.} V l~[IB]xg= %| eQsx s ?Gk }}{16'_?g5T nfywwO[9{C0hw8L/ gTSo3 F u "Gaj7;$ vA,33L; gq<r  $]c #ol#X2}NbZO6 IO@@/7$1'LP8Mw p ) Kd [x{v@0 r <6% c |YsKSH+uw 9Y$,Ty Uv 2 I OUKg[K d92 0m,5sTSm{Y=Tc^ R$^ %Q1iO3i~;cY?,2: D =g 4k<U%qYu@6)S`r#,Va $ u%5{T7o] -$L r : C{ jh'):%24.>9 u'r b@HHX90VtGNCSuR?&~y gLbY3^,x~{E!c K@| \ O Et(/gt}%>x k;-P rkG`o1+: 5  "' Zyc_[7@fKaGh~A$z}AwKYkpqhZ=C}Ubb. cD'K:  `$ dCfXV/ 00 XnDEJ ?eHKPg8G bow sAim0Yu2{WB'[6 bYi$lF3$Z { b D\z4V '*>sx  bQ?/g:>*-M?a NH_ @!-; +H}L 2 EViZ v5 }_ Y*AgNwbY PU. Bna ECl4 v 3JT r5 (P u{}.(_|40bj\ &Ar   H( 3uNX#D{ "\BogL 0j{7nJ} (X V,[ef \@L1vCE T /^:Q<Euw/J1W[+^~.=ppi,K "7$|J ANRs KRz  &( $P]'" k /J9,)NZEM egw:d EK > " nLJDE]^._~^ *` w, "*> ? >> 2= w4k 0rM $ g'cAfUE{%jG'?auYFp)>@GZ -| CV6 frd AshJsHit =A.~TGO+ r}|z V%x% N E#D/ = )  m LF Oh(h)N)( K|VJ5px|n@'A{ O  f*Tl4k}k oM{ C)k)` z c Z:/ g Fyb+ 1kRj.M9*",n% z_+TR9 SeU fW`Xp\l' t_; .( T m :qdSBkl +1{*8I; iTVGJ09 }=[H x b] >2O~Rj- ;<| X5&Ikx%0m=^" u3?8 6 g e^ Q%X a 4 L;+J0/jx ~q,u3!M= ;%iXk[ {Gu}R C8&s)w)eW- ,Fr&yrH(bhE!k&g b@ QV ' uO  1y8W: . ^'Ja HU@2?C qx 4XW2AXIHd'TZ% PI pFD rKg\4Ql?a1 wL5xhZo 6BQ{tT%Dv@HBii /Jf5{N HZqrLo+y QAJqWP`~VC2fJg'8u6Hsf?kWv "dS W. HKh: J0 D\:[KM] ?ik) :`P"t$F^b.r7^%qSU4)VgaCn2Ayl 3lm,f  bivV(H"E=7B`AQd)1F65 MN .SWD6YDI~?.9.gxxFf$-w>tn _  B8D) }LG*z ;  8[}X>T*U:eMpZy tY",_|Y{ 2 <{W Q\ =r yR5mJtz}  \ X {?yubfx>PHAMG^' "683X%q! _ Lv&G3}F(f o3P6MI ` CB'DVU's w Lvno#Vy=K[ g "7 A1 D0N]{62}287H|nv7GO {[`^PD}_eENc>Wy2 V@` W1{ 2#s J@K  `=N 28T3fkY }7Co.p0S c x?K} 2kT _S2mW>>I 4@#+&\K3jD > 0* `8M^9 "!Z]BaqHSP6 z?G%qwurkhokd2 Z ]0)tasn 0{@ uTd6mI <|v HY}qC>E9'%l v' esf Y9 0. CD` &+f8't#L#5Sq!Zf6~Q  0@vaT/,^y"%?p*pax~Yg[p7J4oGX]dtuwf `>J ,-K\P TB$u7LlZ !. Wj3& vd- q@m5 i3 *X 'Au- A Z \u` { J' 9 1oM2n7 Z^Hb> S1M V-95}| ^ +A6Si7] h*DJoq5\z+}N \g  lA  HL 0[i76o>- C\@ Nrn ) zQn3 R #s GlfZoXyz PA j LIc=V< CR T|q 8- ; E7;t F$OKc}+B{OU~#,F] \Inxk j9 ) ,zS |_ k(h4(BjF 6H)Qsj -. T;clM U  F Ez^t J 0#| 8g i%E  /vN 4p 3B $s ;,x i H\;C=p6=W,{F `_\+iSKLsMWo*fpxR9EB~i l"Uu  @qPtFJx7 Yo#\r9:TB Bo^]&U$  /N1(1\ai* *672y K;" [ , 9iF~]'uz@maxbt( (<~eK] ?"8|/I " uC)*w! 7p8 ;!o m1r0R5o iKGK="j7"_F!4 cJ, @f k*95v2kONO! l*dpU Yo6/1u$Ng `i4'U= o-%IOItb^v!q;OZuw @UvO  r  " ~zI  f -1Rx=7bJv s 7rL` ' 3w &YFP9chm8(rUJ O,yj4U0I~f~X/Q =! ama +%Tl <i 9hH;V% ( " ,j{ J!Wxs"Z/ `}|jJSFMPTOs6DOXj,#*v>,&:T_9fwQ Ac8~ YT   b Y5"\ ef[ Y !~j e|0MQg)l/d p .GQc Y_J.C n^ Ty&QkCy@  qPO1_> `mz'Tj  !&e/S y f|&m1\ $gV 'd I X+s'XA3 sIY 994}o Fn&} = :p /eyP J: hU jE41eC ngC a>( 5= Ns1aU$%H )v8 1K($KMMpaRG9e  bS)\3D \L64-b-m@ 07 FA_ `5zv^ iP}Rb_ ij ,M -U :Nv  4A Ude<KUTEtfs[{KXq2 _['D9<_w1f5K?h9{"MV~wm~S *?nAz brXjjx9oKtiU{g)nb(\/HXC`( , W O@;tg o^/X 9^Y ^>a b#}yG 8g$8j9TgGE-}B |c/V>[]Y~'{xjt+0$ ekD_$BH U*F' 8 mc6%N:rFOchbLY,l:x rof}?- i %1(h58xC |["'KhX*-G:Z} cXE q`PxdM_ !v.uqQ2A?Qv4^oL: tk$jZ( gsi 7  6| 0; y=@?z ?Nkp^JL +fxv-QsG "WaO;m)S{R8r6V.\D3 w7?3"@{:B J2T lWF*n^d #-% Mv L~G &J6@ Y- !F%6v B<>d&72 O'eC?2I*ynBB5Bw*,bwKII2W {( )3 0 w  @#b)93@fnprnE]b 4+c63@0q  }sc[p{M?\vDS!47#s)7N I"P9Cva@ &VR&Hh ww~S 6 AQkG;s/L!(XU Fg {B; i 4Aoy&YHbe  \-S&c5o:8eN:\W e HQ4 A%c(2 2!w| | Za" >*.T-Sd}/ <Ux>ZZ-. HOG*jp/!IP ,mu`Y62JCHrW 4)Ce 5 i 'yR?J~.] e@{^NL }0Nk5_ 9z#U v-x*]g2, DZcQ+3 ~`!%} /Rxm ^`a~T P|{/e 4T#mdFm,d2~"3M 1 W{\FVY} 8  S*Q E [- T ,x hn q{ p^& @,4 "Ngz 6FFV4sH)E &P>&E3& D Dr`!QmDn R-_/* d\  u@tR];yD mL ]n 7Od#? *BP"J- I.X\ h.mL x `YkKlS #+7d~w@Ea?BPZSfSd '\8s7e0BHd y e G F.5P= g\ . djP`O2x +@JO^3V$7ATa;R +Y6 g= lL+uX[;"my QsQ \@l[VD Rb 4{ W"@\ -aIj` ~r Dl* jqW}, myMr  GB efk@ 3Urna  }uO~Y, F !)0r21,V%[cx*&}xeeZA\q0 = = =#K}QN+9X$ J g79xu#gXXk H2: ]hD9-K=_! +4  AyrRe  `F\Pd"7L:3kdt ]( g9-~$xr`S*$ 5 +* ,_ `)I ,7? B -"DsUNL" + V2  ZNK J^_CZA  q[ ^ `" #:O|jhdU3i:@W ! !) !j;r + o+HK;  -' @#K `&s|  y8/"A kj3 > OIu/$H$0 ;vC 0 z0-L 5 +A[ Jnh ?+ % O lM~n*bjQzq\L$0$D}?F~E#&DY;\G\*P ' n,adB [\G(+)inREr>, gF q1?$Mq  rfahPwmqjvO&3wp| ;11@ek5 + n9 _n-9{MG"Cd|] w>*`gwcr3^ :`24+Xg\>[[A3 nN;  gbld  TEb1ls),B|( Iz9\G  eey y}RJhaL]C!^Na\ ZmixnXqIUG5SgH u#j%{;;1 yn~y `f ?z81#9b$X I ^sY7mt4Q5r@ (BECbUnZedae;_k&R 8\ 2A4E?Dx{%-7Y.vsi7  >3prC ,K9w&([COVP ^E~ cvR W  rLd Cp/D w %[k [ ; @(oAi{1]{SmO'!m j%tYHR(b'u>V[uG kX^(17TN=Aj /4* Og7 5Au+7>E372{}Nn.`o3 8 `v 2+#z~>)` "qh*- b  p:T UC#r@NhQL H:?s_ayuRb "Y= .4 n ^O~c 6 .8 9T?J BHp|W8 3k6Y_Fyl!N'(9~PG !uS MQ DItE IB L$OCp :pW7  D>] j4 ? NvG 'Np.W zqy  7\QfF0&5*Io('l| cXU !0%r 7;{M; J8&9 Unso/VLS4?& Y Ji 6 =W<y  w~95)-Cy'(mNjydY4cuBK Pc l~5['oC r  U/OmZq?i#FJnw ]&D= |4Q :@w38fOW-r [}f0~!%OOV<:YkF$Q\$iDmN3 [1\ b BhE1$ s2Ajm & F Z 'p v {P\eCW@ceyU c/3Y1zmVx 6/^pj1 _' dWaAan ,K.eAYW3 5w;17~@F#B<|ZyV\Wbl*K kq;V 3 pY r+Yf4r!1,L&lyuh8aa dk)V,8zw1s)X([`XGnfSNnZn? k-)tHT6&yn3a.?^{;  s >IlBrkGjJNf?+ ~FaLSfY",4N$OH`WJp>jxx)7B+?5Jd$.,a $;a~B ?|Sn7F5v P.)$/q_Um20@x:Zyi _ 9W|8(*gn zTa}xH0 k6ntXP=bG#0'<l|d(-l w1(M-Ap=8+x0/p )Y0*-&5fKaP/{^>Sav&\3{Rohz}UX!;cT2VwF6\lX: h^Vy[x(;9>DPluuwa! Yv,R_OZRDs^,dnD|CXx##> l< ~5D|mt&"?{VZCA ` y<;D]/W]%+:H%&{K]y>+] H&+ > '-| R*KS! x5:J|$ &MCh\^s  Vo31zAj"H1C((,=,xJ3 Z%~o h+Zy.[UxeG_B>G%)mavGhy8Q6,E{|23$  lJ&SM!hakd hRG7?$" <WW>*('hOgCy 49 "L97 WOCp^G<+cy>\0<* 49LfxET T3FHMr!4=)TJ|fm;fArcxr|"#X]7sN ^UC\^ LF`$(| s7/z M >>0 r/ v`2g+DzI5P7dMbq-CwT,ES La Qy  AI%+_6Q_Q.1t($y b"' s6 2 Jjw aQ `D}~0;@13G7SXP1t,EUbMyxGeHsR_@%w[M,<+Xc C]-9NG@#F6j_2Et/- 5 l Z Ag}e..QQ H1JqKU85^6kb@lY;b/_|Z: \eul%yXn9} KG I@ g2Ibz>"?#TYtW  @hCVyQfdMz9RYC!3F;k AJ/ 1;o\=%r\+$T4 ][S:XL<s:*D87 nvL:Z__ZQ b%93x|f R#q ) q&k&PHP{ A`7zt"KDYOKpgJ2jG)2EK@w=P1C3M]yHRe (Ww+A fWvX`e*2   { )J <.P3e1gi4(x hbt/I|s#|6CRqhhii#nhd vyG&f w -gw$ }0~'V] Agr%/JZ YI!D77 &;K+W E P Q MhKcM F" A'a M L$$U %9:a7qlJDz&S 1d1 `?iqFa oJWf^'Z6)mZypqdwxB% k.h \DC4 ]xIz r>z, 6m = N- xZ^A>,. z  Ago?FH =c1d{}*gh,bCx RPTD [G 3z+o 2O3 V/mn O%Z: dy Ok "zE */)  FPP\*:""q N i  ;eCwh9 Z5#c F.A nOX8Yc @)~Ns'!S Lj8rSJ VG{ D)rsHV D&n&!~M4 c0< s! `HWr{@ ?Ax(O5Q ^HT &M{U b( 0bA   07tIvx]cr^)zol1oz5GwF  \ XQ"B.2Y/o :dR ?W +\'Z@.;\ uwyk() ]d bor:  sN#= @/p{IdQ #Uk! ;\Fv1?75 V1E!w, ]Da> L.$N^bfhCL+:x  T  z"[ y qhH=%Z=,9;hsNr > ) pl }^Uu4 &hf1)' Z9sbj *Z2A3* 4;5j7 !H V0 '_`T p L. M0QxYY#w . eW>inDtxhl| Ev~|< EF_K=SuzS,2/ZF{T 1z!z;R<A { 4 W s %Ni FVW yh -E w _[ZhMoq(m/ &xdCgNZ@1q 4} U^eXYd+| n=E&V- c3G8?P@'b> &n \ S&HLb^ %! 6B[xUk QIDU ~z&{. }' l \dv .LUx7f > )q  v/C {%KCEQ]05@SR  3{ zUdR }x ].C!S;3&>6"l!g:7I|.+y3.#R* x1 v{}x \$ i.cUp WMyp) "8^a\ db {UK;c  C<  &~ z"D@N1Yf[\2G'JsX9b |{R_& *q)v6,  A 2 3Q #7C F (~V8\!VSVq(q ` F^oaP%?L Mof@< *  -@&(< TQb 9 ta1]0 _e+=RHHI'R6|sy 0f ` L5, l8 \iW|7GrcvO<IbX iv 5&'  Y |I9ZE24hK'/ r } '" & VE 89IS7=j7*pg-gRDv!H  v uC`hyPvD"FR k 4 i ) 7$ 8lSp s- bFm  Sf l Ygn\4 u Fl}w`zprK\ T73 ?;-{ }  +)_t u gbesdd~4DM 1 Zc[v-Pm,9 ~({P<wR(. C`q C5= ^5-p)gj r{Cl@l i3mo\[S@&kYs3+8B|$ G/F;I=PY"Q@O:lM;!BvBsz ri"KWsN >dE S *lNe#Dd'8l'5jw d  |%[  :".S4T"nTVj$ZM|n''Y,x $ WD . 3X(lH/aJ~a_PmANT`6H9A]`pU,W;Clq r Y*tdK6I>1n8 *6$pTt/t}Aq6P.{! "n ZX{( B7`a.0~~g7 !Ryg &{lPc~5 -k!fA4yf\I};~*:J U]3^ vaC%v B1 rl  Oh>'"f"~,cCc[4*31, v1 6|Vhf^OX )ZX GHq 2 `~Y6ROJ +U8X.\7Sks`^ 6o  qf9]OLc6n9)@DUZyhK $?&mj9]F?-Nj(U1 1[.  m,EW  v+*q>`s`Tvf?H' ! *WY Mz<#:Lmm $S1}q\@['j+b+LMn=3'(:dlf UcnBu8DjoO 9N-:0zzTnmEQ F)[<ld'8270/ l\3)G*SQ} @|k F jhU" H io "| }?~jpk >,q=gMt>1c 9l795A3k(!NlMBl c  %#'5}2@J sV' u>D5|9|kOEl H`+0e  sh >9 ~77Xw:e BZ+!JWj 1a.H%8\ F QCxqfMg|mrK$xTB%d> 7WL , P)jDJGRuPqq{HkaBi be nG f CJ6wTaJAt[mP6Q# }2WF+Ob\mC8O ;kB (7x6Ttt/Reo$;rZu",0;'H D*bn%s1F4\PQ8`] L h Og YE/!\{B Qw1|} G?Uv6'he ;FV#(5iVW3Z(w*HS j $&<$( [#f}L o } B q 7El(;LQ]C@  ;pO [} ^M 5 : u@& sI:jh`bOJjKj7H :O4 ,sB)lHS]LP/DvY-CM>@?xaFPpDm2k `=|5:`,7 o% v |cr27#E}s}c^= 0yb\O \  li> EbrY9 )d Q L > bX/4^= 9T5 \j@@wUT,W  Xh$}r  h>+A dQ:yL" 28M :O_xdK &0Y$,Yz i s+I 11 _  *fG'-bsS :d* |YP/b |P)XD Rqy B|kZ)} BCJ   & 4?$K ,29 g FuM/ (bFRXEa.r5bwVP]DtpI\ D *BM:(Wkp;`aCO hs 1K%UOP :49C&RgdIhUtDBs{BG 0Fp\\ # Y    3 %7 J {qfyu;^]} h!-zPWA\If@3:+0 > ?H#pu^(+$X.~wJV|kwp5tfAR}#uY+<A_ oW N 7 |C wFZA*w'NbG .@WRhYm !B  z" NaMRa| 2E'n"+K1.d'  qO V'>0I(># [[Mmm'[ # H>L OQ h 6>z0: LmF{fZDA P  SR7FkNJ}wILb2EQ<sqR  m o  z;3 AP3 9Dy Kk^ ^<uDE^W EQXl]R$jj'c,:C &11hu/ k}.Z[RP"[1i,;C KS u*H<Ay- ?4Q# 6&WuEul=,cOy`C UC{C6V%sX=i\ /t!YrQe i  9V UN~i<kC>I-( #Ha:fd=  c;Q B  (N8 Wh]97]] =t;g3 M 7 2H 2@BM {jX/4tV!De*J`} + !!F e ]u[1  uTya Zw7 UAzk 5_)}e.gl} [4B8 mz*KV Qr p  c d fP 7=  <?G p5X4 eU 5 H4jO@M_gg 8.H S $#8 +6poq g=K @ .]2*~!l\[cWa NZ ZD44 o w 63,#dz6P]YKZ/- $6A s)iXtrwBjo[|rWN-X' q5hsiv#if *:w* 8 osw x`+Qgqb([ phRZ =Cvf$}ASPHm0LxXmKV(?7]!B;v;9 Qt5w ?k/L=% )X!  B4 6 =FgT%VQz18 }Zd%;30; sM. "zzh w^9Ct'qY :u]_7} eiME((yDI$OFEO YdN`3 a 6 H!x  8d$QW "qyzDSQ W?4UZ]t=Rrx, C?`c 5# , =yN`Mn esI 9 E" ]j _Pf 2 n ,NSGA w\&Q\ L5E t6 f  Yx RA_=TT ismwX UpD4A~zpCVDlG  =JO24N  2H-SXu ~0Jte_31;d7\ ~]`K ^ZBp i =z U\Cd9) * ~x%o # :V?I\dy ], SNB j u+v Q4$ "(b/ k|8fp_"k ]Br rF@hU< & ${w<xN;d J,2 \ t+:_ h<`N 2Vrw?3 c4/ p pV3b `R 3 v  P7z 9> ;JM*\6OrCNXSHju(VS6<WX.p}lp9&|Y::>PEv s/$ub~6~ N#< x mk g-m $WGn *` AW>m  %<}C?L:7`k,+2s~#^a sG  9t (!#*hLp8rg?bl.p _!0,7*aBE&&YfzBw_^_S~5;- `!/9[0` . Pi  .4%8K+RFZ AUOe4`G8  kJ | .~{D ca}YY N/PX a P0`M1]1W *A0L?#-A{vt8$EvN/ i,f @xDbr17R  #A8xUVO;+$Fx<eY8i a^W A a L8$0F Q X s1rSZkw8ypq }U" HkQ;*oJJ]=n o`o}% xaS%3j%xh% #Jml [aZd] '9Pa '6- vu 3_y[) . zk8 S/e\A - c{opohV5~Fi.?}*K'X@!PS!Ki +JOi>: k` fF6 Tj {UV >R^'%6`$ @UH ; L=Em=sgM</Ic78> .U- =: N N cVXg/$G.k-}ruv7S>fQu q>} /7e(7/ 7t 75~>t ,5;f_nR T Vt/*+!Nr*m-5< <zX (]PMPh'n  ., b48 w& ZaB1w *b )WF {wfP*}#\ /DZA 0H5{ Vk\6 {"z 1`^-bN ]3 Z# cV* zai4 `i 'r;>^(jC!ZT3Q  b+I7H  # Cu: RS' K!7i{ 1o/3W@ VLGRk) : N y( C r1s < M"A!n!rv~$q SPl. qcoy L (1 n.)9a MN1 !K! ^ e:;U zj#a}47/"Z y R{U8|cG W'Pcx (t!;sQ iY] Hp\  XLAqVvs2!D"VwXv'T!l6R? 0PN EiO| mn| pZ>l7Uo 2's>'C'w}_ ' 5=g mj/NbeU V '  eR6Cbm> X6> lO" v  7s`vh ,B#+  * ).D? E-7SrUcI >pllB!'pI<Pg _=}O s1Hu7?m"u =>1 SX_D 3" lf 3'V 0^:Jn6d Z %-`U= 0od1+F jx[ t;kXjf  T)XLi_\h c# U 9dh4f(1m] # L %kc| ESe GPM8WX  +)s C)9z:> Zk s^} kK h] -NAW3I}  n : 91 SY)vWi. . OZl | u"le 0s- } fG>W X K O NT>`ANW/s$mT3  J"  8 , HP - `@hi $Ny.Q20V  ;@V Bniu= j  y g P O|f r5({[ Tc9ceY(3P$ GIZj6?Q2 3r . a*F8 9"g`Ru}p vpyH !5- Jna @  2P 2B]X4f[TeG ! S- *Vk;+L ,h#G : `-R uIE a*c} F}l.  V 7y GLs_ 0+ ^DZ -LA l5 N+S  G ou& I86:qnY&>riu J:8br `^-_,fQ o;|k 4?dvzQb X1HM.:pr c'% mhW!V:6@dt}{5C~ R x"3/t y5J{" 4P+%XXd VAl>5oFPo 5zmwq mv sxl D7 O# U _K[xm?53$B o<I  NYr '5jF =uMz-`t]_ R`bQ~i 8O zCF OU} ( FFf 0P2sD gzc szeE V c3r S hHe=7\SnL ? 8aI8[j eyFC Z PO2 Pm_ 6`H jo M$Jv `D"O3` Jv^h6' [!f^ ;\PdTq/rcj 4J_ V(7dS*a X%GW/W :# >`j XEV @r[O f F.U yO ' " pD) |%{/N(S:8b r-q 'k  #t HdH &IBlIEl9pf,vJ+j :abItm*  hev_n$Bk d{ +<e-s+ K'}a8<7t  EP`Vp 5N le ?V oSz x .<)yLPqv&.NrSCk %=)X A1nG q`0Od75X @Wl 4ii;~ ,iFDJ5A1-NP&M(f^Sw2;2r0 y59rc,> `Nsx4Lw [# \  G@3p=qM- E7oYp F  YDxE -6#5p +2 oG^zN`G'?v  vk }"{HiX 6i FehG ]~dB;.H\\f\-R+#X@fm! r ( o$ N* H)^4 E!8-o_S7JV#|"OM8U_,s jS_D] *v`_) *gG +Euhb . 0!4- )I "D 0>]Fe6qe7@p 09k2 F+M PB >?{sZ VtR& ZFHn  )7u:%^Y$e sx2G Y& K v' J /L SValqAH.@K05D WjA 5h$L`j n Zz= I>42Xq_s 3h=Te +{=>wOnk[X c&| aV7SP[uYkD:u : b k wV F+y3JOPI=Iw %(vgq=@)B;y[caa"M~qbL fAE0\UUXf Ot% 6 -| wP_ pPZK*#B<4Z{#z .Wt{ CV4 [)Rf d yl!uP Fv@zXQ Eio$+WRZAa1" E } a ; #.O F~qB -U!:#| D^]5>.>V9(I pf1dkvx odX1 I~+^w+~ws DLpxqp!"@Co W  3`  Ol?Jc^X^n:Y@B3v gkpH"`,N  m U $^$#~6 i+!N/Uz3 C|| J0YMk> ktOxl`LpRJUbA=Mp>{qC"o Nu])wT=O{v,Mr X<ZN]=_0|jLMeH JjVsogh>Q|  @xBtAhk${kZ2ARk;k%  <  q|jb. B  x}?y:^ 2q[I/_+c ct)A2JK 8X KJIg )p-\\ TTon|f/[- w,E`] l 6U -h [ '4  / pEEBN7  Lf #X7'g G*]H[f@W . 8F .\q usW).=  SD. %v>,p "I_ G\7 E d*"o >+2"F W Mz G| (W_ -{ qP:O S$9~t=f 871 O%h7O8w^ZU*l1\ |Of x_ AQ "#@UO 8  SH|!B /R7vO/=\ 1?IK1Nz<,<0RK* * \8 /1 L tQ%X1YE\J )4Q~n w# O["&Tp>V(D969VGL>S-q7NV?ff+qS~ # H DM`"} ,E3Ae  7GSI !U\D&~ . w:Mw *;qP_q' e cvSt OC~ ]xhU.I-#=?Hti X&P<uG `w Z2ZT9%[%7GdRX G)&> t?  $(B / 5nsBF*4  AEd q] O ehxR{HUR3 ;$*q![`#/ Vyv{_Ik_~ ;C<y~VxNQpd Y 4n PcCy/{S$i$g W O`7> \UB/8T5Vk9 fZBh@ c2m;R  V:nGa E m 2ZO \(M3}`hO 7k@o4A<HM8k  BA|Mwf 11% u6  teb {J  EEYD q}nc bri U_G ez |}c?opA L cQ g;7jIvPVXc\MM c  @$ 7mx.FCSpb]0}jrC k'+@Eo)` sgWp35~Hp- L%&bo8 7 hBm   )T "}0qNr. Z c)X/~S (_5(ZWUO _[U >_ 7/ f -Yd  VI_U; %O (R< ihCX1rW<ARLi[zn!C7R~csT F =^+ Q @[1R_ b2 s 6i_A b_t /[ Q a8 A4bNN H1JU h/ i#] # C ~6b(!!2on ,Z.  2 _8 f $zFR f%ggS\(4hSs [Jq Op: 9m JAXQtU9L'Co ?(( "|77 KECB0hw Ip_V'    (  ?]lRz [^": 6 =y qF?Q~  FVhr M Sc9 8NE nV {(Z  9;ZO JSMCAB[  kbRQrsT{ ;"V+J/ oR< ) c! .  Bgf yTeu+ h 3H"Z3 Bv <# 9 \u 2k Cu  3!f %J `j 0Ed-X:o  bfUYFb %v;I|Gdf2B&Dick N6ti=0 MO>gQn~ 6dYW eT j"ZlVX {YcY h7  bsj>1wdA>M f0oF1*U! @;a5q BS? V lX~I S>zX %d} bb :9>WU8 1/K% i Ie# ,zL'E81^k||-1%{/?IYo sIfkgJ $B 8rk2,nslN*} B~^% e<l Ms>O=^*,` 6D$9#' +sw=,H>2[R<6xcIh fQO [ z. @R ;~d"xOVY8F|DTcM -4"jC XH Qc_+bp?# s@Ps[eN2W/_rU,\u!2bMT w, /b*7 l'91@Pd.}Ju 0:/xX !C]a 18_\y /p_)8 y.;cp KIG40YC #>mb.\g 5 ?GN `4Q~dN~t  ) Lg-:XE(  } ,5|d]+ -`>E$}kt;Y ]a)pV>ux[8@M /p jba tV.[ x8H0>!Typ (8 46raIDn  `* /qRHZHx K juW/p !=?L &}]7lYI ;f`*}6Lg@ ZQG ]n; `>4M t_UJTG ` g?) ]ot!w3 q?/ #]jl^"5n_ J: &}J`9 tjpK*^d| >Jn9%?@7~Ejgr$nDR)3] ]t$ GcwlGCZKP[t `(C`n@mhD ( Hl U]TeP='bylA$O[INR;TE ,-")YCVO UU3J7g8!fW-~y.WDjBCAb 5} @b  Kj|'2p)[j)9 xD{'7 @Y,/45pn ;k}G2O-.f6%'M-6vjN8v(+#^M=gVwR'&Lm D7XS XVrG7W3  hi2v>w`pRL+UD 1yd, [ n4 YjX_Uow_(F =tIl-^KHuMqU My#'{Q(fv'y"\r*~ Z}144=B+C V"+Y1QUvaEV !%e3 g *I9I:T]Nc6 $W| 1HPY Y68fq~.*V[Q;_ \ lA?\HsUfcc@ }1; u}-4Rk)s|u2]8 cjJN_z E4~DM&|{J"Ga# +\Y{ K?M2 `Cl U6 k p@W QF Lja> 2J5qd E + *:Oi~6bDm34oS!6 th2S)-2">C ,"v !J1Be@\ 8- ? f6+~2 ]&MwK n/+ Ffy?4som'RHYT"X 6?Q'*Y!yM#LV} w}h =np"2f%jFH j V* dO|%;sx gR-A ?Z*'XVn lf U2h x4 "B{/J1U9~ T =Ie Rd tM BC*N   5Y` i >9xiodiGp^s}WH|Ho) o0rl d^ y~JdD!.N%8Qg91o 4U}=6: q.vt._(P! b x/%-%(mRQ n XkO3A}tC*T](q%vd d7 (h cQ 7RW  %Pt%UI-7.Q Z:8 b1tV? XC[*9f> Quax8h,@ W:%Udhf q ,^!QWUu ezh-/[+O<( 1)ea   fH! YpiR@r }Z> YB ) C/raEY&QF[);nk1 w.3aye` `z#o-z<;s !6OE "Q(y{K{cZ8\9  {kkd ,n )d t Y c$`&U`4c&nW$ 5~o>? $%   YDp6 $a*++i Z+_? 1 [LI{'(8A"4 B w!e/l qu,; wMJDac&-2 ?V7g-PZlrVIk`_lz5~! uaR | DXG=Z. yA?y9PT) o! /" ! 1juG,oY@oG{S&^ 6/9]Kl7| 'Y+l8g[9 |C|DP > mq$lj| nAk bHs?sSKg K?L z,WPfdB  3Q(j  v Bi!}9 /m.?3+ =& 5V&; ~g )x=#M21^Xf   vfGr9!*4aSY l?<d :0X@b Z ^L n>Qe^g% 3" $ Gvm*ef? E$ i9!w3{eeSw ,{<.@p0&^`Fy4 '6I9QG3 ?XWERO)`l:r k&m|4K t 1 ^ [2skahN X 1RZ Tg[ @ C iba :Jb. | & yg ' rXCx3)i'ug> E /a'd( u)n *\GS? N5b ? e8 *GTE !a {.%tw1iy G9X4O Lp9 (F1q(K < 6('y U!5D c#u2E9') DU) eq5/'m *m_ k. j:32%7o   Lsn .pP OVHP<r dO!mnq;+dR f#ieL l& {$ # r1 A\@ f u a ]XwnfO/9E"5U 4Oj m*?l}c?VI?&&/8'm  DY F#. at i a.mWa| U.NwCze^=] aB #| WO:6 JQ|l|3 r31 VmR HRs_ tW R} "tOg 1Q7*^jm qkjvF 6(u CS|-68K }l gi ][ c{,h xka :De]d=i):knuLctiCJ2"-U$(VF2D%7 _J' mRz]N}*c< \  " + FfVa0>)0]  _kr*% ,%/{xj\QZW&e>Jh: i{ lKMX B352H &A I_"` 1  H8|%}Bv>;e jp?z XTku* P@{H` xW S^ _?2 %+Y3 9K$ J@Zk ld E2`)]' ii`/,82lFk CF]f *$Amq(_v"7|t=N TNh |u <t?S$T z  AK  _ XdtMknLZ\" ~~ 60\<)m +& pO~ <;#8] e V7 gH)|.7 YI@&'05~ dGJR`HdU Rf `MSaS; 5u9 Wjf A7 Hz D, V`Ppx~%x(]`g 5c?saQ  g 0 \(m9Q,[t BnUn)LaAllmO/>OAN _r9O(2tJ* 2 +]~; 7 A[Sp  q>l~#uoK~Hz{M  !""  Kn q-LdgG _;{jUEa lC {e _>F`KD E)7[ ! :*8}$ } FnjbEV]4n ]o  J8S9  k @VB )k# 5  =1e XB #JjB76G-wVMW zit -4HqV ,BVC \(X0) zRQ =5-8&EG[[ t s? Y `6\= WuE V-k" [P*  "&Hr.]N-?S8 X P C-2 @\d] /[cw \X E, }s?' R"!eHWx4  Y&1zWV0-&Xvvq`X XF_-kxF76" LSbdr)5KX*&?qf oPAo, .r*+ }Kf 2b CRZDyWY8 a < W,{c5t)r[3I;9z{Ea&#c K3 @Ha-;HK} G GiD>A~"_B9xfD `_[:v H _3RUTv }a8H\ Dx:^ Q83mV {+ s' r- zR p#z 3grzm_AY_'/G aLw\vdZiE m 2E7BR&n\ pR Uz_t ~y9$tC H K7pj%*7&,V_.Ls-9oixgU b[G!@cCmSr~H?%ji ps_N\VizG  -U%5 uCIR]E=   $TrEf KW" -__8$ 09g'eW:N-1]e&jmp6#uiD2h2E| ?]}s P$NLRR8.i *1t;Wf z= 9/l"3: saCa +f9p}Z,f $!FHWDv?3 .Oe._\R L*M<wAkj  [m ^`hm{0BU l1 Ds  YYas\=_f ,R0 J  @ AN X j SGSW XmZlrf& $tw,x"cn$S 6%9  q]S*l3/kk>" A}{^D=#EE rMkB>+R4ZUT7 .V<M"n\ o t [ D:QC  9 <~ YA   yKu,26 /3 Yj< 2<j HzT ~Xu,WhVf+) HIQi h%\hnQq R o 2Ld8 IXCJ eUjPl 2] [gG&:/^"r)F)p~tuF: w YTE r  jJ qym~v [`62|b`Z1llx= ZP'-) c bL*A"* 7vl4bF! 8`:Hw( qDe D(l ? ?  -Tf79 U2s$Kg'Vr,inb\1OO` J *&K W`M ,5?2 __% hck vt Jq\,Zh C $1haco=rGhKZ3X `_($?k; f~4] a\pc BVv?fYONvi !*)0y^ q$Y;g NBsZB *g + 8"a vr gLWS[>};2 KJ6!1Tp8 dLk U Rf]87 ZU434[,H O9 pnxBV5  oG+& D@  gwp+iQuI FN {LLeF`xSXP8Zl#bDX ##W CF  So <q u[ pr &s?c\As<q2JRV$ p /x p 6J # ]  )Pr JtjrBz| dC"X kylmIy'D'l >Rj; COD}{ Zam(~Iz1VmMf4}O d Nzq oxs UC V& * Irf8oVJK Jjnhe}I!2yLx D~ /!ldgyis  /X| c7;.lX L 2 T (W ~!  ' w^[K ZZxCdL :P'RRP=gG2 C TG|. Wfd3) b_{E2 eES/kwhj]L!c\r:/yb HKK*,OsdW :WshsYoQZlL |El\ z#ln?   ~ec~  8Vf={AZJ ypu77R[&  GYcZT$3K5 =5BI QE _~1 XSDJ@:g p S v4e W O iY@ 7)l Knz|[mqp/ d/I$64 wj iu|V]ti #HmBknB \,>VT  \E_a;f0 r)lHMX=] 0x*T ,Y>t [x%r <rxoI3? U*^ 8L- G]h M(sd>rPN cb T @jJN opbsui|"Uqh^H`; ) mM  d%*at BS;#u.uz < A+ 6U? d@c bmt S5 X6 5LX  J]6 T@/$ 8. @Q 461'8 b0esl0undne7F~|&:ud .O {l j~4!D_AbAsB   @ Apw',WH || Q /]*  >cU> YUw~w*_ I9(Q?  odnI = &ZZW  ', IY\dNB'X*$o \6aZM ~"]y T' ccQ)f$7i U .W5ETs?LkIiwV5|[ rOQb\  !m% ;3^Rwx5lW7%dsE( a) E B WVq R\o ^3mY h Lo]F\4   )d/{BZ#s Ed 3 zF yM1,2 ^lY }I w^19x0 S/C,ygvAj[e7tJvNbLu%% b0rU1 ]v x-(_- ZcL!d_ ~N&k< "L U39g;\HY = wW 0/gB| !.% tI cZt^qg[3(K<Ce8Sg~!@OL,j[Rl?&h7N  ~8}^ XW5%NR ce:9-0!6P 3Y2L4/I,!\{;[{nh tbw|D0H2qtht~0JSj  xh3"NA u mTco_dL7h&i,<!U 3> _ O6|tq%E<HL}51$\]2?" b7c)@ic I8K 6TwR'_Rg;K (x" F &a z_3@E&l" B6b{t{ EgefnF V'KLO Q  +M`  XbG%} wTV,5UUX&  d sn+U3=. X3nb)#}G'}76 Lm -3bkF 8 4Q  S eEculs @UE lvf, cuB ;JGf>\ah$&dw#2   Z]xPV>nP4xx\ Ei&O; Mw0;Y@mhDNC bG NW_4ev_[78 oQ A ii mJ&F*4a .LGEeox P$x{-;q  m4,D+H/^aL\PO5g!w"u uaKf38[AF;3'`kJ0u{l@* t`' <y 87 y ZVa #6# Qk n (ea oI=[7,Ts/acVv2Q &=yYEFO$>Kj g~g(AD xUW$8' Z  >VD]|j NZ;L/S og&n 'PfmW4,<jI{4C}Kh ]3 L E p7oQ!%Ege C ~ !7PI]3Xlq_LV'mf' ,[/J O>,gQLJ@x=\ qcJqG fD"6[m w\ BIok?nvVo `#s WQOo&qX _2  lQKD]5,X +~} (|%w 9MpCW3d]v, -i"[~B3Z 9(1?c NxE_tm+f 2L if q- q{;M[| `=zK=&M 1JGDXU 'v  OIXVxz+BO 'kHN Ch \ e.Tx  Scua+1$ i,j45U&sb /8McZZh2}MT%0 IKtB |#k= OEdiX_  V4 # x4i`rJ#u!7Wi ]J+;#YO j)o klbZS A jh T&V u kd?b wx)I  R;hG`U]a  TVcN !I !d*Dz [FQe8(;-Jz n WG2L iE  hg6Y:u!G*a Ok7l 6 aptPyvFhp D9Z[ [ ;T#_.Q.)_1:~7s{^ 8qa=SGYB:!  > !sH|  "7s3)z ? $8(a, +"*^x5:+Zg~:X-U] a6_H]  96t Qw&14 ( YD\1>9Bm-| {M / \  "F -&;v\}UMP ;xShXMU0> <8< -6  m  * 3 w5y luh+_=/ A 4S ?X=;PxTh0;z7T fUE7  uK5h_ fP<(H}8dMxp Qn|eHY,`bi  D8 HI E 0LpZ& >xX! >E?[YU |H TT%" k+ +r^Z 4] *u# =ZP=K (Sv.F 7Io3 / Mn$#zRq*i % ^C]jDWmrG-!WSi2mpbv]445c _$?z9n DY0I}5WZ\Kx@ Xx+TgVR <O* $.V c6 Up+rfsIqn  Fy \ r!zV ;{4ejfc4a7W   upQ f| '4v`/=H)0(kBHJdr s Ud'l |[iV}B 0 . QkuC 1:j3 pYm,vyKM"l }@d)c"/[ YL7B!1Svq* (f: @ &r/O P;*A8KOLS/XnM?#B_|F|3 #Ye0 Z9;FT^:7C }q7/ d3i v B O|.yXZ3p ""g&?=^F&97QB*[K"K@KaX ,"{e( C }H-5xGqP; 4  j[@w@OMOd%^ 4&EO P* H{Mw$ q,*| 9+$CG*.AbnsmY`^ &[}ZoZT b=gf N$%dLLmMq " I 6D( kuU %I  Es )LU/ oGsU3 Iq4Wh0d g=6ph?  ,ulcE^>WpY`Y W >RU0 L11#K;l H A?ts5Nn U Uo^X(?59m ` ] #3fOgZ2N {x)W s-  ~;_ '@4K3FCJ T (3f@vd'MWB t ;q52< VC!'i? m% iz% 8Ox.E{61> G 8 ^Gpm{l EV U7 -/mOn<8 <  #j1xK`\s0V= J t _! ,xM'Da\|/5 z)L* Nh W&4Eb7 Y(v`3vCc/s!S ?x]&"p=^w 9 K 2FB ] BuUA["HqSG/E:2Mvx?_+q! MuC 5}% t> L d=IqR/ 1 m"\oU=0q\ ' o4L2 (9,Cb J2rP o~l[3rt .} . a'rvCcP h[,At ecNdPcLQpM+(Z/1:Cbp F q|U pNrsoG \bf d v`8s"'jiNhL4> TPmD S `Cr  } X i(S _ bEv$K CI  wSg ap $D}E;*K"4. cVvve4 * : *N _u[Ia6l^ %I>e-my 2:?  %i' ,@s WJb<dM_ZEJZe&K(46U1eU $h-zmK&x9 E2b !zfyN\.| <{)VhfW ^ y#]{"BZ]|T $1E" {#JQbM ' [w( WiG%: QZ 2 [vNVupce1[) L x#Qz-GP>YmaOH wbR L?r zd O6Q e^,)R$edWDt Xyd. $MvU[~A~hMWt /}W@9)0 E: Y*bC Li$`$a(j|5qkM,7OD X QC' E b633 K- 2 HR^V i4 cN j~ _4' 3 l.k- = :ym/@}] 3]m cuY kAIz"+s(YSD2`d5!AF$DJ C iCB\Vy\aEd] ?R>GA TFG9 b^ `!!HC)^w=_G1Re;D^nxuJ'f6i.1 {F~W J{Al f56|>1z#Y E+ 0 5$^G XTB#'j]| IhAT# gv4^ Y lz]9Uwrq iPA `~^BR 3p yr) j9`&)n }J.xu#k-S(N:  -1U y n@|sqy2 t:a ^I'u, ~,N`t/m J5.6"|au@l $| zio JPQCuItg 8C~ &Ju:-memq N@S#e 9c l$19 n}8TnG}6Vi n({`,\4K )"^]/x5`vs7t) +/ @ h:'lY&V=y=D -h< F,sI D*S?qrq XCmgd \a7u+'J]_ ? rHa @ e5! $+]stQ &qCg# wdk;  f{}/DzC!j\@ "7O R /$C@wZ6DI ?mQ3'$ !qH47_gYmWr2!cw_n> S%= 3(y/eK}} V N g \!(#.+(%"G}(/b Q ( i O W9%v MR&8 " W6j}Z'T'X /s0gR w~{ Ui`\I[-0 >*@[ {" ;U QK=4T28ikxRl i0K(e0^ *f -  '.Ig .]nq`(15<9q8_S%JcAt! C lFA 0XV 'sv6P z5,! {Zec`f%;<c]Wpqm]QS/ ) q9'}00BF 8NX:YPs#0eCU"L?ah~W 3k #  HwKh>m1)-@ |/|cG|pCJ)@vAJ wrg9\pQs 2 X~rH   N [Mrc? Yj"G}#Z z%`kE v{iW8codec2-1.0.1/wav/vk5qi.wav000066400000000000000000006472701412132000500152270ustar00rootroot00000000000000RIFFNWAVEfmt @>dataNaamcO!fV#cIz!sLUN@6K[JEhT WXYzo)Ywch{Ik`$gMP<aE:_ |.ZJf#{\KYdp[]iL>_ wv:YFfXcAPQPor?cKpQO2Hm"eY76Hg^KMxX@BB7-Q -T\GMxQ3$|\IID9p@ 8cGl L|2'vzT1l;t:5^w;o+Smh9nPre~sb%3"uqa{xG--@H5nC '(bbfiyi|2)!9cF!I6 $. !$$ 5 "!Aq\A@$rg(m/T[Nosrz  ~M}i_jy{avxOc\@c[M<fM)Fc%|h`{<I wRh}m{]IQ1 >7B(?EY GDG45::/dTKV~ b/8q#IJPK jvsQjy.9) ,-6 0kaA/bk%~'DilrYWjpZZCgSfYS9E03S>IPZ4<:(.Y:Y5""$r;)f}c "w"<K217K$ /N>J:3:h76IGWU^0)AvJ/$:8GTBYnkZf%CbQO`;^u'2JH0() 4< +aMQrr*Ah\M\e#(Wf6\I. |}oaf]g~~qrvQej" +ED*$*F~ gnvLxdVnfUgsA )Rf9K47f*(XrxSF@rb+nmrd:i`Ma}a:`G2.))3JivlOVP<0 GaYUJqIT36nI/Pj&MpXVaE" ' #[f/ %"+{biVwQo:7A4-.-K4# YgQFJnvV[yx}}wlOg9%=)).R;2(  =G#CLA=11U=6 K, 9%26#sU\ `ebYDffCux~\)Sm /2A?*S- 3C4C>=C5szwSmx !!, ,\< )HpF!K._o]j;Ris? 2O LN`cjHNpgZFe]* CE)  tm[_tu""( .!0'TbNULE*Af[L??6?OYoG$@cmC+ } :BHNKrvWFQWIM-E[I.!{yq?,0LKH).5lhfiy{wvl^to" $E[ (/$HPB?|m4l}pRF4315tJj_c. 3/ 5$=03)8DZf0,V[D> 6RpyKMo3;ABJFQ>$@iC+( ;S7#;pCM~ptB-qptaL3+LXVB$!25H4 NL7@J7Oj:9EPazeSBVwy`f]TM-:;( $%3'3HA8!\ez@Xze)G\=?bUYIBGj}X9EN?GhceswxxK[{dhgCZH %%Yg?qVRdz,( +) %nt='!2Dwx}ieOLFLAdnZC1 *69KA\xvyzmtZ>a~zUF9BN0R]':<63,4FUG&<;'iobTX~M7;.phhDC^U@HNhl2?Wx , +?Q_I2(whbNaq|zizgMP7]    r"CeDZC 2,-8*EJ_fkbKKNo[2Mp@Suphi}cdl[~gJ_p|bN>.)'Cz`kcH4;.^jmn\[=SO21+ 14*=N:FTDDA@5+*% D)k`S}{h[h_NdD*4'3JPkbsaB#& cJDZUM[G5bkCMDG,KH:%<Gz~k[--> ,% 2L;$&'!JcV@2 x\]zvVTP>Jj   ;)>ao8Mt{{|C_=3EYi\|_Xd;2)CV1+(OI!   /1]VztEJw}jLJE[PpxKfhrra_E.>8a9 *" 'A=a`F5MW3,!':5R7Mw|^bUe?4@oNL^d|txt45xI[q}( -: % XiYyi8 [p`Yn}]pvXakl ypxRG?6@I_[hmp_SDMH>FC/E35'AbnyZeL04BaqU48YSgonG5190A{g~x9#!<A$!IX5 $XWD;wa?O+B3AaZB,AV4/)dtU\WTf[YVd;8^)* rzt`GJ oxluoz[GNTZ|b'%$)=TADX1 .!}lHWN&B7%GD911/*?J,y*pg8AC/.17(@K**! :ETqS7%/dzU^RXePPwzqr|YtYPQ[Dyg=>PJ*&HJN,AaVpb^^KBaSR-,fCLXaWx{k}{p<aYK,"G9O\9#>ISL>19-*+B_Xtt^|s{Ju\`tj# >?E5 +wa/AOPbV$>_A%,$ /&!, 6Qf]C-1GQTl{qe]_dA;>!#2BwhW]HOcbX*ARKM-6t{|lEadCKF@Arkyg\rR<KRK>F\d}oMC:F-8TDM- &F`RV\7,Ma-:A89"":D!wbt~zktBpx{\2QU! GeMV\SK}c~YqeP< 97JA% 1Nuz_yxrzn%+C4"3*h}p~swl} 7McME8 ;3-+) b: ;4 (" Q8)"7NK8bppi}hE7  [Y6ZkjLKn3(@AioGIlr_qaoZ|oqLVu{rnhv> .,CPuu4:#.XCMUbt0+!M5 '!' #[4<I/Pe<LXwwd2"/<;0  %79K^^?'RM[8MmHCNISklwmwjkV??S88!/ '"742hu[FlsST_<IHPU5=Vg *-'MPB4 aY=+=ATbpgbVek97]W.O:+UPrPGpt{]Rup<C]L7.%"AbcUyl--(D8yj02?K% dh^47ufZl{o\yrsvx8$ bwku<=coR8J@@R~la?ES`nkz}D'.N}iUKnsY^t@lnznvp@P3 K$&JV~OGRUdeaJ&/@Wk\nvUntywxjjgG5WWKavp<=rnk_&|Z'0JS+ .EFE Q]  $X' &CRuM<>8 5L+>mv!y_uoA`p0A= z( 7*<+O{_3L2 G:G?Be<OrL[^UL- @:0@5 s~p\nXmkNcdb/6:(,6$/PP>ZZ^jbus~^2Vj|vE}\uhG&qppnzktdmN3N' "1Evs{w~Y;>]}~CIw~bXru>:]6A?4212-&ZRfxBqfk;)?H(T@9<skvSo{YgkXyM0DntxgUg_au]_VOyg20nE) -I(alcyWRglq`u~yUgK+Ffdgx # E gU3woNcp|/LWqg3AW<ziT{y!<?D!,5L* zxOozu!5501 /  5s!ewZX)&2eafP!@5 S&8V~Ysu}v|om :9$/ns&tXsHwpi("?X`@Vm!boG gQ/&Ph+bvxQU 7g9,!J s RP:`7xc+ZA9*( 9jRSy|LsZ  t 'mF sZK GR`h[gqR.-1"iOp<#v$<  su0 C E0Kq9: w,=5} (r ==6A@x iN!rlwR" *XA~7C, U+(D|bHOi>B|I0E_R1|/*R1 J & \[<Tvm 2LVrJ4/2. o?c)O [&1UIv"fb n  8Y P  [  8na6P_r X~oY;"|ck@9Fgl x\{)twwrUyC[xI+Zxgz-xXQ2DY< _+10h"5<!vL@>93 ~G p!#F{VqKf*-irnd{N.$,kXI]&,D" fL: J+N3 >iwE /jY}]8)\i??L[*>cLu>1id+$8P8dd2YI:lT3|Q3\tA> ZLO4y].@: R6nv=f4Jt5Mj7xuTJ)s}pUHyKs{E5(<2[ROmecEbqq0S|! }c'p*;#b?8.&)<!=qf'WS2!y$ZxJYT8>cCAc1Q2p0HhoJrtX/]UDOvqFV;5N.$GEykbK`8GxF? o  Sipv-MbMIh%A6v os= # D F1Sw9c*HZO&{UXs[+hT Xc / U CW zX] m4,'q='DQ4%~RrjC.>lR_ R\*M.w0.d. G h O9Ysk${!;Q S %)Vt Wu c Y |y(^FgSGvDNBC0 eGK1F2 Q;w] *X  p]bp]He?c77iYB$@  l`?&bhms12wc ~ ~ >?oFTBx@B[QnuYf+r{ V SZ c.i& Q P 1~Mo%q].w;*C7tgWM !D d ao Z??[ .= / K 3;\#Kh(:vkO>Efw e %rXoH)+p;mG t , nx=o"let9!  c^J*F]'  ;d r4ET' ,#M9F6UV +|_uL t]!(c = 9 R#q'->\@ r"*2 d <`Fj/ ~>-k)My &g [JenHSgJy5je==n im(j  ~(f'O.8<[xYIq XOl/883PL];PF #  O+f3z,gVgD>~CV0o-w]D 5 'VQ.,_4 s " XHy9}gL.ySw09($c9#]_eE& S 5&= W \aF *#DfA'i[nt {q@Rjf2ui9I7  G R 6 2 \K HJ^6#`->dJj8;=JDp<M||qP-(4.ycifu: !5Smn, nC:\W+|2?RA>4rgqRXa %s $,x3HSpjX n(m3fYL;*(Nz(WDz@E5UdVM5ux('+g[4ZS@Z;/TNFF)W-u{i8[:e5G#Edmg>lrSclCtF" W TTk\H&  + * ucnXc'$=D$R/hbW*'!73L9{NKU+5u`b t OGT8 c>OE KR3oX!!fBnI#Eh '  `Q"L-o"(`WUx|f:+ohQhunN-J +7`T0dj2 m1&B)\O|okO :d6PbShX%5jy (.n@ S=NF , W=OPr H0M pX7aHNwwXr V H` k Kep[:!Bdjcm03=>hxL# U&" $ iZZBXh%:mM~m>j]6~#@>MEbTCj$q@"%KK,If`'d[!&j,8')-3t !0g: #:jz0Hoby^Z+*Q; CPbqeO,S9~tbV3eA{rya.+~2#?O$3B^AE6  XvB)7r c[ltz,D'PlhZV~c18I0IX[lgK$EU^=<[D25StfFVS]oSPE!1 Xxe)`LFlZVSRgc>?!, %^[15TvbO'NuI=M_,:jvhcj|}wbrhXVsxT3(LjSC(/32EA '{jY/,) 'AmqA/C<L<6#B5 vdelPXdz] q ya nT5]^~  m_.]p }bJ ]1y3v G*srj iOzXf*# { A  qsih~7Fp ; 0P32HO |X >FsMEAK ;Xv%:yF[ o5  8* i_ : FSmtnzZ*% M; t =IV f`>R cjuz'Kis O Mx(6B4wC5Y :\I'* 5p4) 0s8 2U:  tqx6?nt^JA= [\!  ,`EO * BZJ_[A/ a (dI*ui6=u'9  xMiu( ? )  PtCMv  N7!aq"Uk:. U GJ @B|4ER# CC Q z 6eko- I, /;O PTFq8Ph( 1Th+!tyf q P .U(V`7 <HV~)A78705 %&- 1`@+(^[zs4   8&sis{HJxc:)r59j/lXlOP6'@mc: j 8 nk(*^;C;eK +B4H"c5Ikr<.U li {`3-qfO.(&1"EBkHb=7&g45I8d_7(*&0iq53.g9-5j Xif8&[MPJErt]Y| vlgi?ln<XDE* /2p rtoG[~raOKLUHPo}cmjboXoa1"12#" =oe~8SfBbxjeHU/~ *<CsxCCV68gzE*"8oamqgZ[*$4cFNl~VUTb) 7?9M)0@glxJ:<+cA xTXTORJ31/ 4KWr_7Yvmy\`O\rmwoj!1fgspi[u`/[(2"=i42I|M2md-5:CU<)9D!</'Xogd'>\%`hMX$aS@ ;YWFLJ^*LbU4 +L4"%EQutx~X^r.M0*C@!zhEAvPD4[,Lxj"/M^XXJ=c!:{&0X[h_ 8:HZ'rqglFd)TSxfl{s//Qw?c|\t'zdv Y51Kui0aAn-Bu4gs0 I,aX'pNp"jV%O((BH+e=\V1\a.EcN:wU`;#Oz5j]'|j)!B+fO-?h&';1~2QWw3.oi(53Pf~tWu&pIC] FJp1aHDEb4k/@b6o#'!\aC@eWnCiNaj c}Ij`>c.R[]ch3+DeB;)DnM- ,D/ wolnGSgfZlnBJS K<8F^ggBEF5WO~.]\ y%SR8]WtVee O`g?Acd{OTE]~vqM<bL`A'CjRSUl5PWl'<@ d\Z@g|g)ZH3 JYrgt {M+nWfv$2ZAN4q>J8g+I @( w,V`U['f0 n}ef7k^?*KB2a_. cCQ R5Hz BXb@J? 7S?  ;f\9c}6vN# J  ~;H1x )/ouJ]E6 pq/ c l>-XTi { taP2+_nMP22Z% NQ 9I fHwab;};U{.J k"Kzx3 lN@a s W e<5X%$Z#Z4v=S:f u] 7ZD% D s  {6.Yk#>om/ !d[!8  IO0'(T ^ p  S Dl2A. *iwhmS0%  ( NO0j) 5nP=ZW o  }6M.3b' N ; ! 43Zu z)`K(k2s lM llwsH.\) 4  61uA\8v`>b \  \KbO=~m7  j R?LR|3 v|De4j b*P /+J5f`U lN0&a_{'mTwcz@Dvw +O .N ]B2.#qK}p%Qt'%e)tEv.]= :f@/ p80Dyp&_EN|`] E8a9 R :or$Z.U! * bKDRd1R2"IOMhqn*{n Hho1pVY"5 ; : -fvu iHgfK`$V\/ X#x NX?d=:>] i ,XW, g-8MBw"!z?Lk"]- P;^b6m&0 4  %Xl Bu UNVg #0TD \>= k}t gzO #geXY l  sO*IVrI AGezQ x>!O>k_%% D6]e k+4z 3 oRXpRMH]9x?A*zG .%"\ Y8>\2 q| f FD^unOZi#&I 05e `?a,[Kz "5$+ 5݁#SkQ Uu$ ;c M- #q l"U=HTdz:Mr%irR   "Sv}ٳKY][r% 9E*ޅ7G" oD(L8bz J S'Zo lp3(T"Np ? e A.} 76^  (` tx2IM NSk~k;r!= gh f/=<G ݜ U wfY% [X0CKSsmzYY| !l cۓx-;Iu DCS I>:{  Rd"cySri# ~*/!!Xxa& k* %4_4 Pk\mnK#^  =m3xx12, &~C I!AXY߇V$q 5 =A4c- g _X@Vx<69CgCp !w!=Pkb^6e   >'kIR2x 7\ M\2tP . t. [. w _"1_:u "8se_  -[B< |n\NC 4668%}0>+ *"!mSqQg ''  qsR"-GaAeb/: b3{ ?O {2x9  }  g9B3,n2H %[ tfAE  / , q 6^ }BB0R)hD 5@$ z(6S`f *  ` l_2 c  ie\%Voz8fnX7 [4-4 ;;xZZr A DAM|t{`i {&|:IDKv%P3a`n bf, _N f:  vDC> c?j>EO:t@)q3q2CF Nbw "+UDR w d{HD \o+,!aH(|Y|=-i$\ 4X. *bAE"\je * m8!EmW_P,oIS R,gG   ^S>Y0$8 >!Cp)q?'DN `b9?j5 e    Q`${ujki!#<"4;O\-jiQJ\PaYD"7EpUN.8|I8ulv QoG*/Jg!yRlK@5LjTn=5 vA|k1&A@ExvMnd;/\*peRh`| _x:KA_ncur7b]QT);)#bni.#$t@I fM0[88< JH!tDs&>{2*59YmeW`zeb6BQ5a@BC[g3YC+9a%\EPhECFx GVFQ1yR_/L@mwcd=b6mj`*Cc]MhUM/k3B{8aqYmF'^#}E g\,yW3R3[q ;U7d p]pOQ`qE7tB]7h4 vT_&$,YzSv# |;<$E,VPNKQfKN 2oy&>jCy+B. As/3n (47v  2_@11|nv;JpV:H`y"-J(~@y)1YZqBp(|d-mUV456yY/UFTu)W!}_0RN?&|[{:$eLX>gw{1e&7e8zNp zM<{\8: NOaU&)hey2{f^; jf"l,6r>8_a AD^ K{Q-=}|zT'$fh7Y)EQ>Px 1aiA jE[t>0-|Wo UPBJ;%#<"Qi\=s:w!$yPsxz`V|U4iioxcEczL%Ci/> nFN2~WQW[}(l4E7NlDv4*$7x$m2C c7 D@mM } Mu:=zC/[^"bRBgJ 7ޙTG7^LI0E 6 G)HxwdeNCix1$Dh s yK3_ $E Qb (] \ G ]H  MEmYN%W}o ?g .^ !& ]qK89q % Y3a f s!ai%c_;< 5xqe6Dc Qh Q %DYn(  zJ3 V z ;)AGn zwnzmL Q+/mQcW3e yzP[ >P 6 B@1$[7xs> 9 G'` ,U%#V  FSX y R[[tCG?M = :G T@7 \u '1 \ Drk  YZsh06H_`l(  ??2O O03 t Mo2VR" s 2 6wU{9K j W x{ cTC1sG ":A3# ];r (4 ndyw |s FL @ nFloN'- I$Qn8!nx ; ?gC N?_K?% Q |_)C(+Lg G@qFHO)\Z H,+3 q13E$ e >([1 $0:8ZrYj vdU32xp ]|",B>!V l): fSncB|y}\>s1/ bjf}%U aX J Ly_ R I) ?nn0*|S,liAsCm 1ly Y`T f9~ H s L -l g<`s(C 1JBF^J[ Qm.f[TI4 r}!!wQ`p'(- Ao0 X+bJ`8(Ey@ Hw8)W 4?eq H J8y/  >;~dWmT c PJ  a qas@Y M E v%EI| 0 7+ vV1j R_b `oL9/w#U< 1nZD ~ / - =}Q JN;}G [ =B$^" @ tbg<  A MN#k%n}^+/('Wcuvu hu0uoY qf + ~ !w.q@ ` njba]p*yS3e2 3#)F | st[1  XW4  k  cxS(N:@0X B&t `6  e:x) j _kqG'% c Hz!}U"cW P @J:C4Kg { @jz$NpK%)znlP >c6B.J: [ kO\ N, R~'"!cue+^ <[+ Lv;9 "\q7) $ | !k]6: q X`^UVy|oI  7* B!=t|9 vTl[- h 5 b FUu VQ}pP Yr  "> I('@5> *=d :*. ^W3k )Txekm N*!"r#His {0 O]*F~_N6`WSB|UoJcH"!EK#4/2V4lbb%.  22C9| PE}:p$ab4lu * $ ,j^3\9CqLhv= 6 X  L o1+"&S 9r"Y/ >w =tzn 7z @e I:0b2\ + E;:n ( (%HWm[ M+&f=C<'D>ay=+`Px Pud4 | D%   IQf~. Q =M }Hy ) xY&1i9av' * x% i |8l1tHs?Z7RaN<$2~E  Gc:d&Q  HE%Cjz6j]FDZqYP/!v^}B e Q MAA "A!b\#fSP|TAI0Y=haq7<#4hQJcj,)Z,7m PwneN 9Vn A\K^#wreE>1W\Q8\ lmD1zsU>2d_ZW\  PudRwc^+- "q.5Yj>aQXT)mYqg? ~J8vf4oR t"bWoc jI Uz7D @_M}y\g,,W'>y1Y)>8E.dVT\(-K()gv+sO$ _4cD1Yk+!Xv}'mzMu^Ufh*3F)'t2nh)K9=g@(VIW4{TXe @Gt{gCmuzXy0]8QXAii&017CQ=<)Jv}R&. LtjMS@?1225gpt(#-(Ui6 5URdouqncZzt_1Ku' 6/   i`Yne`VW[E HYdry"F>~wD2T/!2 HW7"  #-:!>OM^qb{tWsgwpn> ,>?VF( )9T=O<$NN"HryiJJU|g}mq $bCEt]F9pK<E:)^^rxL@&9|k}^ii*<B]~-9YQGG(R ~4)(>YnO<mZz& hhe'ttw=TC8,.J`TV]7)CeSHkM9Z`~OmJ<'DhCzr- '7/ +%/&#1mJ4y}m':_sY0! AU{xS-("U|u{#}Vr Ae Tcv5}}m5gU[;_Jez1'7Q& yyb)Ny#z-R:\ MZ#Vlrs ETKZ u`bg\R{6'D_lOq)($gT~#Ho'D`*6t&$5axpjz=5Di,Q:]Kk.^ %we*%UhWU.f!6Zme8 1B(ZSe;2l;+eo'3 MNQP5jQE> =[QN{w?Xj!)eh'|1 u`)[Cb_l{5@I?P]ue^pr5UYwz^5n g||#(atDonqDnX&z r!H/,?)Z6B [^s ac-bJ,0X$1/ L[8E2Co}#}xCD{j$ u  Ek8~-S >) '%bmG i 8 HP{v}Q`(]8 2ki s0 Y F>^@Sx >tm5.,!C5kk8X  (= }0;} F|3  !h-Kjdgw 0?\$ - xUO(: n~ o+8nGXc ] 8O3p\\-1Jrbb )^_<@9  5@KA d  ;S l*TTN; Br,9g 4Qgj 5N/P* - y n9XeBV|b_R UOoV) f ^a , , "}( 06lM*Y 8WC5j@KKkvm{)QFgtMOdgXa^J550[N/k@i6lt.iq:@HfhNHe:"`[0)eY,D} [Q]cG<gB(j%<Mw+(54j RIjB17NVpT}ll p(0H5CZ*o`FEJ~H'DY"JM 3BF7 Ch 1YJ?,Kjhq]zF! 2m#R &X\M$' 6IUGW /wC!l_).COR:v[b .HclyvmA=DbJB`X';_6mHSrOh`OmL3)~z{fGbe`B2(6=ijLur4Asvx.#syo"V_1 }#_Tsh(KoH3es/kF[c"s<JUbf~cV[}S c1S2&4 Xud@= $ b`&I K' L C Au>]3] P%&heylL7 yQBCj* Dh     TXhz03 Y ,SM^R$;*E4{6t0tu jY(T3F  V (+"Q\79+I"$ CZz31$J V jn ?D]%^G 09 v%#&BLd aX$gQ\\ X |Y,aZ/  7:#"F~" 0 r X?q (E9G /!"%H"KE=V- ne>^bJ0 e00%U*<!<vWl0k _(lgi&F>a  F X,_  b"|,54Np@@mQ '&X`:5iu I 2 y L76CE 3j;XNi?';@(-  P4$O:C5-~tP^9# 6 6  ?;= vvn{F.u{R26+Tnad% AG`N+(    ~pyt5Z9<=Mq{xrN QD:  1+,hxmwh.v^eyy}q+*WWHb]lM$MVR?"  "Yr3Nj.DE !wzRID4NSFBEA\AD>N1;2&ILbo$ 2Yw|a K 7AI7J;/OO/n? >2*jr$U~mdZo8-R6%yzQtOVC7VZDaigRVvtFx\hCu[$ Zlwano(a&%O/atTFWOe-81*O1*PbO* k\xq/Gh6_Y#|fiH Lcx "o nFxpkIqKt\lCc-C | JVB-x"SY3&,Rm=ED $=aKr~S` Bw6}!hcxQ7  Mc ZH*P#eT5$U2U]NM S|].*95@F 0nqi_Le2%a`n++jm3' -g.*}RCbRn]wZz/A>hKwQS@Rp:@fQH:TaD:%c%$bpshG'dKbY"V}r{!8"}}ALuIf" t_g7%[5O-?Q*dU'd7y3P<0(5Q}2+Is&}~! EB2^2rW`MDQRH]F1,,^sHR-juV-.Agx.1]eCzZjzA3^S"%uyWp(Usy\\_#0#!L@nlr`k2/dxO4Txck__~`iDTpIWX5 hwdJe! cq-: FZoJ+# 5.Wq 6(?bX[FE'wag} -& < .2)%(lu:}wWbo_vZ;WbKFV]SM6Uex3yh2.']@1O9RpSbnvh8wqn}U_iPcRmmH>QaPB4;8O]X71I@1!0[O`lKkxR%$)CYRhrqPPb??}iTlrlyxsXGGgUM\b\I3,Esz~}k5'*I( 89/%!><wmsjlapsikb@D0AF<<ZvVkm)N`7" 3)(H4#*U6622fuY[{iL+S_\xwUhthf<@oliWgi]Y/1LWLEZqtYJX4LbAZY_F "0%:Xwb"NNPI;l ~ 81LH;buCCSVN;:.TkE?#-<O4vafm *mV _EZjW_."driN+ <2Swqfy~gi}`C:A^kcO\m(;C[D2yOuQ`D;S+{ )(#2M73#%rnTy}x@xiH,OhJxz8 v\ ? },1<]?GH{m^8Dt53o;zC}o W /{ 4 j 1Wn%7VC3NRHB*T.FQ,4-7K2E66Ra#  N   ' z`m/?4MIO5$O'h`t'*P8Q-4[ K3M;C(j[QLxWRJBUoal% Yv?_\$MK+B*Ls,~j*d6<x1vue3NUJ0 ;cAw i|e+/)A}/liSO,zAC^z$},s6HT&O.'AgMU-nxN!20Dbs2o9I]j!ywnlr_<fYgW4 7 jwHkLB<4"VG3rzM WcaEH}C*> I;f%B}$6J5DML, Vv/q` ]gW &tv("_b\L<w62omAy%-;TPt0 ~YVkY/^x'vx[WC`G1z># t7ZRqD%}"5U}_4ylrhK d  e7J[Q3\;l/mD";t"O H m+cLjP4M [!76\[ulmPz 6ex|C 1B| . Rx 4N.<x49A | Npik?nW )')"31*K1 9G  CT c`t _ y ]:C^Q0\~Y he ]&*E%2D ay?sZc.j -( K ) CO00z b~?"(F''4y_z CTR mC, u 3 yXdtyqFd" m%,% sDsi@xG  7- >m }4,%M|}-Y f )r`'n` d  zE= !f|( /S4l=c4vvI DyoU*iV]jyV 1 Y +Ew.%tru)IXB #$8/^[ u(0I El8A\ Y &QbZp O V  D c|1<=5p=l !N[  zj=7e . Lt Eyd${\ &sx(\  r  $c#4 ?-b .ug"!JFPauTb  } \ , e;&J 5 F(v %[FN)s wF3n@ Vt g m.iC5*=D o7'))5|P] zhB jJ !-z pK _5&-$bt[#O:mF L K M h) 5dB Q RE{ V5^`r 8 Z% j!N&c VJ+P=FB>F'{qF\x^Iq-^)d.O>3 G N E>C <Bn,G5z=  -%a3!)Km  ]E d du = 9 LR!v.{r!c2P.l fg D]B @ uRrE&9 R a"q)V{*8 h m < EGArW^y^F4`L c2=_ x j K2MS5CD$qi=E(^+#oZk6Y!?{lf{|!IZ H(/ma SUMb?GB!^;8VU+:F #!:j>]kuKgtugPrU uH?wqHT](dzUQaRE)K0 ![t9uX3cJP s>WryNrGK kYHL?sLRb9Cb/;2MvvG&>:fB2?gD z{Q5$q7[?J-.) $ ;7Fb 0A=z2&0[Exv NEHAf^o@bs7W$"A<(<`+_(2nXVF`eSy)jRg!A,H%O{3-WF-d:f2O,=,PB:a<j_p4;n D)FWU zUQ-7h.F-FEqag2jc/4PscJBP^Zs=H~T7Ykf=  ! !P Axr 8 m yr8W\<h h YUnbj }I Lt   ( :u xq gV6 2 VJc % L! *SPt.(H6  % Z  i &Yll1o [ _ PLG AdtS3`Dusa- 3V >u;}C$|MI\izHc!Qq4,6v-s( +DL[/y~R>PL( #F8#{:$*I  U48E=b6Q\cIe[NhyHZ+;5@gQOqvglWHe_hY}q>pn'%~ZmkLR\cesyJEx}QXveJ_ys{dkp$6U=6cbE6SUY\gr43VTQkmwmXSNUQozqyghj^g4PdT<$c}xMnnqR%.ZvcT   0gp\45}^h1,4 cLIA;B )FHG243 MaP.#4.Y^/ !-Yh ("=L\MAFA+OG]u{jaUx$J-*0<.7 2" % ,  5, DGC]{jPZvc^yE]p\1-(;$u|la?FB S>4^XmI!uS$`e$3G  (a&`P\5mkv84 iUpN3:X#Ryn+8Ep:Tj$ 9  2V+knCayX;z|ws9m>?> P vA| ^ Q )qGqW"/Ms(o09z-A3"n9C^C~&| u\ S>kW[%~I~,8}o!7Ab@%3i(_j9 <Lv' -n(m*B 6F^nw@P.W~3w'%wri#:$ w%~F C>  Iszi r z(~WP$0^pWta N0WN _)DRn P  ol@q_s qP&_=w^^e2+xG>k 08&?N [p}fd9 0H @sXAdw s go{wN, A&]u q+ *[|/T~Fqf[l   Q9Qu_ElY"e}0hl[l& m #-g> -uN8K  k HD1ce%bsWQ?&DdJrV+? CJ2+Lm71 u Z ?9'V DPD_ ^yKPzqrW A~T:]PXZ0 ^Y <x@F%`>E:ki>B;gjzx $BN:W-! 7 q rY})ElQb!pn P)3L|1NB:nHbIASc/]u?  Ne8TkwUD_/^R6[D2(u&'#8sd[<E-@jN4aK(L1)YkFU ZL~q$H4  3  ='>.Zr@=82YdZKFCjnWIUX=-(-=EX0*0";0 BKLSfmST/+-fSq}ixxhfwwpn7PsYkcG=sw^W`vhVB5*$2EI!  yjKTW:["#;SOhtn]R[QY-L8 yk ! # &</>(<B":P 5 )qw 9 B2*-,,.ZG) 3HmlkF0$$OiOThrKMaJXATSH n}||KUf;zoB^vYwyJ32Kh}i^AjMo\HL kq x0KpQ*GK7  +QyHup1n6 vRyEw2Tr}>iRwbpTe}YF 5|sIA*49/G]/A(,2|ueq 4y%3GsK{k'oC9"j)bR@s:k6I+SKV17As\ lD+G;QxbU#.&jli[4 `FSi2F&eA]gKR,ON_, Unht^~-891 ]\fo0y (X:WhV~&F*JI,YFTSWl&4B}I(/VL:%mX ok`vf9,,7$HtJDR %sJel!JE18n%7f^hdz]|e#MA~1no4TU0wMofx9B3%BjZ vS2< 2I dV5WWd0CDqA~, p  5b^C! I[iYU5j_ ?ndW/I!U  'VB >^ f*x!aZ  yaTW9`e;3QS7Zrohz?qOC#J} iw j[$Jv5 J, _E8gVjlj-/-'WW+Y{  Kbui@y 8T>u&|~kR6Yw[c#BBK | f1>&  M.D!MQL*o[498\J_PD5eP v( kG +>DXNg,DCH-)RVg :l6n5sJ h/"_.O  Z SGDH I]#"d%ACL9G_ N\ (ep( zJD0pewJ \J \dK$N:LDoJk[h` m,&f b     m%j Qq:M`&EN $ > U%>Wp6J  '  D G-A#N '^;/h4_~C> JH  /L OjC   2"-=0A, /) {A} <>e W 6 }=lp^&ZJq A|f\T7R%  sy[*~cT9]@ws /:;tVfR W  XM&|< 6& @:%[@ : 0C6hTR0J.S" v=6\ Sdi>oX vxN BS   ,]\~b~J`7}{X;Ev=Mp y v7G @$6/Kz aB /,um4J ",A+_ 9 7UOc/rI @W!nw s4Kv#0t<57 e ( m _] . L &}4F7vV em@.kEkV~ E@ &CWu^\ d <#9!%3\?CK&=pa'5 \N >`u% J Gf7fJ0|d)- R! R 4J|?R| &rv|T 5^O()xixB6}YC:X"6  y I 4  z 0 Bq$,mLeO(]te}?*.I9%BOK~ 8c`^Mo_T AzrQr^q&M|+G \6"}d6 3!c'02P8oq\&9 ,}i3+!C.07 *zQB14$*cPL?. rX4 __{8o@ucTk$o vb$7< (yNz6EISa (Me:6)AsuW2? .$ 5Th,)G ^w_x@S?/na+c7 OI#VE Zc+R})Ses)9:,2`^f0nB+tK=0#;qvs$x`'bqH) xP]c:@YTOoj>EXd5PF<[ bsH"XFM <U^%RFL!9 2^HnuA{oDP]@)`&aC:ZY+TNk7-k{2C ^s~QN 9"VMq&v3>)chEX3`H@-Kgn2N<ivY]~$iFXZ/6R|WUjglH)SQFg ? V@M#sFwY H8w10l6'LRqpWRcJ K%6v=3[Za"69S>qWgx<AxVW6@VZ\>9n^u YcdAQ &Fo#F9$eofFW7LPU8mu^<%NC9'hvlEg R[=".<f!QaU P*JX|Y-8wE9}Z 0qR`AYd#p>zL3C/6m 4Yf./BDBn   3~M8pTNT=bX6":|;X[h-X\c[,&Za{|";J ?1%|do/Uig~@af-SV# ) 0 dn< hG:Iw/S2p^G51<~S?j8'L@[ O\Uu_:W_ `u60]sa0*bTUuN2t6i(  h+{3t4ER-Bv#9bK|?n[J"1n48 ,HN c^DB#6$'=| f]:,}rq4oX|!1?x!8 Tީ h % wju0Hxq yC FP7*\m*gkl neC eG 2;HN|6 KAbJ  cC %@Y4`S9!Mf|b>N?C o&" YP|zP ~/FFy <w PJ/l3"Ik\ Fu1o 8m Qd<8*c  (ez0$VTwh]DqreaM R$LRd_ n[ks3I)E  @eC3x,!d8a#:vg/N F#^Y `t"  urlkr8 w  pe9EQ+1^LTD#A{abC~>!cDk/~L: $ K%_t/a6zI]1> 5~o9+t 3!.CD}pc(mqs Kz%%F^} pVH JKzj bhk0q\ $ *s7bB+,pCAz2 } ?% h=P^R#M  k)+k (F@=q d9uwff7vg"!yH&6w/X  }IKve&%fLx#Q` T b("? i?? g  \o M%4VR`Le;:Q YY=d Oxh!I2 6 I WcMXXw Roc*9 2!|7A#D bY gA ^[?Y( Z Yx#d^"Yi 0Bo NtkY[hl $CS#_ 2FQ-Jh-,)M'Ve9 @M ) $!q| *i JA _D P03*\ |/F^T{JkY6 d qAC \M  gaK H'/ {i"hhpGE = gj Kc 0aOdN [?p7".qJsg-wD 8;r` w; n X 8 %= m h% zBb E<Ff?\} 8}k(%L :7#?F9b~ $ ^U  NO"BZl~pWYond)w%| co"T cJY   b 4+d}?6>:ax?*6K\m9n%7T B.!B9Qsh f z d  #y]<,2ek+ VP:cQ rS-&Q _  9 vA_Dvz%yOtj794 1kng|NzM;; ^  .Q0 86367-Q )]]:J &8@Wp  zqo D 0 kdWZGBOgsTYmKW  c O$#sk2`%r@_Z1<( @>CG lGYoA~.B%IwPd4!'3/ qte{_VzuMEF)Y)iWD1OTbEyG&)M Xzrltd TJ{g%QT[YI+B,$u.TPW 4)bh/=5K(& {QaVB&o;c=#/0J8P.$nP_m ~JP.fxhJ/JFNAV`!]aGz~1iF %6bAJ^%Wc =ddMznU;?{@QU3CA38X/+d3=ST_2 [[eHnSbxU'k.\>)" |s {}tb$)   "0EoC<"lrovM:Tfx|ysgrH ! *  %[^kv#9}x ' S?9}($ xXjo}qXQB#&.Hw\^]p{kU/.PcwvxK9bvwRB.#$&8LV[}i'%  #HVH@;X|=6_|l<+Dy[9$.<$-;;/  &0)*N>iz3 0G1>72:>xvYO8m]hsznzmJ95%Nxe,1BRd=$(- ,K1  !D4Uyr`E]w8ErutstO6=H7[=N_q{z_5WfmcE''.. #3ZI'!)0%6@=:>qm**MRW:3B/;}Y=ag. #''\)*ZbpY0((5;D? "_+XHq 5gQxHnB+s`O*VB-wE7)Ak|se0Jb="zy~M)vJA .LcI&Dei8H*/  m7\FX7q\;hPNB)%:6x4U=q>D@n3M7q7 rm &OqK7|4[,hyHwY~q@=r{9 'PE>Kh ox,`3gyk"d&V\ O.wfj8pAC't)Vn2`5ul%HM;iq!S$ea[ JJ3$c}G61DX(M=c4"2 `DRh#o5_0$h31hR 1OM E! zux\x+]VZRlm-l|C<aiWJY%OU j7a$n_,\)ZxXsJjYoV2{CC2+vg`$vqKgCH:@V_'<- ;!CXx+ \NV*9!E]?R= BA1H6[m`IS~Xs  x  \5'GRmdsoVtb>A  & n ] Y zae666){~T$ Vr 3&->pI M \D +Y ! {2cPo" Gc11LDM?9 + i dfI ><`?FO  GR|L  F+rj/';@ i% vQ  Pj,{o zA  'B(H 2yI&]yr9fH~>k}U9f|{wzP6(/2:YWYVq`3RpdEREL:T7V})2OnO>n)7@Lrg:+2=a5iF"v+4I\q5`S~nIQb_H-L1aV[>3109PXPG]OERjbb`$"[A'"GTn^f& +%5(  ' 0EW9DqmGTW@!uc]ep}~M/mFQCWL4nDA V<7m&X>${~ *E8KA +n-UibJV?B W.0B\#e!mn=m=\gt4 "a:hP < 19.)rTlO!vM&\^}V N 4K 985'  t 3` *IVA&s`*sJ!H{.t : b +2&'9 E 6]]p.bO U.d1SY`GB]hd*qQ'o 8{]0 ]Vx & t];B}  iT 7wdI w$IbPo) ]jT!9m]6& ]> P HNtT(  g[.~Z_ihT7g Fz < + B3y5 9 28LA.?+Qv3 ]A,joI=5  sAilL 2 !V{:H6$ HA h!uX_'yo  > OOV `x;zI?B $ U D !: C2[&}r4\r2  H}W$nk> w ?!Hs e}B wGS] W?B AgtM0S.]1I1q.Q \ q A -p !^qLi=1D|_AE&{eQ/$ Qkrv[4-p^bz{ +7y1 ?8W0 #oVndr R&pe!BdJT, &$G(GJ92O*C,B  ZWMz=BF!pH- POu|w~{d#>FA]2 l/Dbq[a1%c|'K%^Wb/\uhkz`;5/%tOBmjU(r4Tl^3=w4 v/t8V %p jak3Lp WoWiNYd0hQq{hk8quAy}lEOu7tTStHE JFi},7tXaA.:}| /s7@uGQf?vJK3&x/Us41j]m ^|"b^a]8mz0<$?TP]ia -Bve(`AK$~C-70KX8ONJ?;Z#;N}=m *^3>2X<?)Ch9jMSwM+h/yQV_G)d8dP4OYXX+-omkJh7v<>d9iW#Q[ er^dy+$D.C|g|]>8E-2J\`k1YfE  2P'J@,]S-_NOM >xUyN5^:ZQ :@4IaN6QSR:jZ90% &2j{b[|yD7hO v|}m ,&Ls[X@2;XGwyh9!3 '3/<8A2! -_u )wAB/,sN;`ak)(Io.|f+[^m19aVoIR62, `Fp|EiHO7)]b@8:L7^vJZ.}{*<&5G1mGfBklGU>`-+4[S2[ rGv}RnJK>f 0+\2C?@XtfY]i1 _w<Z-964FI!kW(|c#]"J*wrMgN'uy\QQVe1/9(fE o  2K !8,sITb]~| uG8%~VLAwQ.~ Y Z vD } +},tP6e;DeLxa+37*Gk-*eMt`<Az -VJ #-P9` fN8w$u_J12|2n#< C (  c92  9L`A/gOT/^3}CT  < Ws  &p[*2N]=  N '0cxQq{(| G ic ._fW ?iD`@NE/!M3(rxjsJ1^VMYX%b5&&)5oF~UXPcax_t}zCC-`jaoiI#r4s,F .gudsas7* <OXAl~pvHY{{ +`a92z{vu,>CB*;)M/' K_UCf) (X& ?E5k'y.tE Y96[<`m #8. ""Hgi{2 g+2io9 z{VT`ATJYp-7ajO]$38xL%J\a:(]g// $CT_) hM<6$[_mcmQkOf&EA`#nsPy0jI2|P3y2zRz$;th;m|t{V l.tAyXrK&w !pLo/!d.[Car3wa[ZR k{;Cy3JzmaBJ}XM~~asB?dPs+g) (iv0zKWw zw}/ AD8)Fx?u0T9O`~LG,*S?>C*tY2C|0^m b7Lu N<cG }5-u7 \qGQ^)fIKb,vI  Ou )E/xSx5M45 WtS/!=YGP-acZ KKWlWb G T ! 1m/Gw;P_`Trq 0 w nT^>)iWm,<9Oj<&G#5~} &9'WEq z  DPb)" 'cl I q1l~?Y`Hb/5S1nBY!HyA>RE;#YC\:>(%o 7 _ I DW"(gy~Noc@{@ScZJC3@sL~fdwe_sF 3> b,r,*< Tv0TjpJq,VcuQ&#~XIdg40 k$<][.xx<8 zz] KhpE9O^= 8 4__dN8]p[f Y R - QbR*(BF _ b dl6d-:E1.DuS1cu^(rIh a|.6Gz)r` U (X  \QR V  D6ic9c2$~ m p}F %'i- b  H AlPtCPu,Z bo-zB3zT g!!t[ 3G[ E  rB}X|=M[\Vkp*3%~.   er D # Jag+c-*cbj N@[ 0x *AcL! A 9 $l9 P|I=61X'j.[rSb = cH&{?l`MLqO , s?je57X7_ )1KG4aU(VY/NU H4j #`v_ M$p* ,`iY4P#hoUJ( ^ {' }Q%Y%aB 2=1BklfrsrZscaX;*gP} F1>%c L7 pk$=:dWt<sc[KSQ!CIcR4m AR (?t!Glo)RX  Nlk/r>OTRu/KEx"R l l Y\ -={d 81~0R<>SoD[;&<*H _) qs:D \ T/3)EZ[Qq^zv-.'@Zt9 U QYV  q?&+`f_14bygp6"cE6hiS,N!DRnN`y2vFnk9%2&!/e~k:'qpx9Fe/CZa4'7,+>2C!5Z x.'% ;ZeUg~zb9#/:4Evo '095. -#  6dg{|]xbrlvnI*/("TcLCGp[S!.DK4 4 k]}u}heWti9qzinaNSY6PX]Yb}t}pdL$*4:7Fd`AGmwtqoq`nhtF0Utd/7BX4LrXB:+dXl* N ZIKo ^ vEXg-W >~{ df!x:opj~&&(I lB;m{{ SQ U Z }7 9@M:LZwHkC'|"!y 0* b_# d  =:+'nkzg Yv=\ueiM!I6   7L+x qkDu1n*zks2OqIvw I )~k  fw0H|5UkBF>3R8),;(RU>&_oO $ 1r   87x0gAC}+.X>+"<3[9/r-w^"t:BC*r&Ls3,VnME+V(~0]2C<\@Y I%OEA?.SS;zF#|rDzssL8<F,C_d_obB?[XAS]UiL%+ AkEag94 gRZ e& Nf RR  .eQ5&'vn' ,`9ronL_mVBJ*(Jh31``;B tm9;Sq9e<-?igAfY5tv:TkW:A U%e~aPEWkU; @5eDSw<]JS_ ~0l%l<Vv[&Lvf`z.5woK\] LI2vNebE5$AJUG zF'?S1,pGY^yJiE2 emO = L KKR^wdFS 2gK$-Ma|2yNa?n) - #  G2J}7B.nSz<+'ah CgSyJ } h R !Uv &M]r]]&V]nE0n%qfrBt>dmreO_kv V mcy $8N_*_oE"(B(* aAbf_Rl p * "%J8yX;f_LwMm.F'&&10q<i F t carvCf@F+=ga#h`TVurq3+v ZSNv5.s0= UG }hF"_/W~-qw bwrH!,i9/n xHQ<#ioR-lB]k3!) M9A; INC > 1 ]H3*jg_~J]P2N2]1 d+q'8+bCL^)RQ J   }sJ q):R^~)YJ"}$!K 3;+TC}}9; ? ^ H v 0c;B<`5`XL7F2DZ{w"k)Mb{l K } &}~K A6yn,A.$$K-hM u70eF4$ r#ltRFby+|4 'qBL gXfp^af&/}fA  s'ccurPea^8N y@[Z~u z)Ks_pjp?qR$K&}hNfzsI;).SJyS"NWDi:LlW]}w!P0Q{pk N\hl{kmtz} }|[UuOEBMRu-EB+ &8::6+*ipNNVUb`{{ "xQUnt^^S &Itl^2(4B3,fs{qnYeoE":1C; tK6XH$ sssYr\R~s\XM_GD% ZqP/L;=m_6  !,HWxp_MQhRXyx"efq0o6j/F)EXqdoV3HWM{ px.lV}M(O_|js`8E%.Duv<(ER*G/V0 Ix:O8$2/NPW 30v9evJs'"Yh/)+25}Z5nn#vNm2nP"g eI(OF4 {ZJT#Q9:e<cd`Q&ep,6>{3z3WO.t;2+L}|@f5GwJ-[xC ^Q1C "G1 "ns<)ST&3cYl'f4i#FR_efU_H@;]:>L [Tvl\eGHa8|y3.!y!r@=SAQLPQDHFnw h tny\I !51'3K.CtZS{e+wd nbZA.z1n"%~iK'{<S4bJ&+3aR1b9W%3Bf_g)Qa+v"%-og5|0 }SI9 5U*Fq`Qs~N&AltHI%!Hf-@i@8[\c(ik\bPq-T#eGY6KnT`8  #,"b&2\i!f[GIr GiQu5u}.1.-c=di#OlMc{0 U\l'DkuG>lva,n~]VTLwK(Mn2q&1",hn)sb" sT> YaI:dqN3,a.g=Y{?:UNM"7SL%OB=AHdoozfxwBe [ 06=\l |.G4w1>6<S 8h;]1t*-WPDkCFnl- awHcoCO[5Gvr&\]pQ'cf'A:)u m|1(NT axTE.m@M.S8MGfLL%w-D! ',n;ED[ dmM!bu}Tf{)zT_w05'^rYXaBTg \'T*T;V{9EHq e j*<6u.6C.c%C]n-)'.iF`e%Ywq',v`h*h*NWvklw]3'/=~=b|ZBOXBMU0,M>I*wrctu~H>R)sz0N'nc~`x%y:H\~tfn%TH+\7F{g !Kd>}MWjn@"ns^NJuC>bW|Mp{9`{]$g'a} l"`>2Fw~B -y0^pgm/W+a,pb37A.G g+sE^~yl$4}Z@GjzFR{v\t<> 5.\nY"gCU 4"#lF)jHBQ[,-N,>$Fo y|+&13>TohyUANE@w{`0W?VI^EJ#46-pI(@Uq\V;O?wwC5FmzMfyi''l>>>%}uUT.rE #8]uO6P.7PeJ&)/?V=OqN7 -wl}c}uq{ 80I&ilo=iwh9H=%74$#77OHKxt\kV%#4jY57ABF^w f~qhnQUKJ-)^R[T\594^GC%ldSVbPB|^<C8/@2+2 0$.7@K=yK>Ua`aezq G. D<   .% 0@`yyYwezH%J/B/{\vtf@:W.=3@F(>;g}IUy}U1K:)D9=Bnh*5wU@}ta~NQmyzgtinzm5C9s ,*]`;GB) &HC%!~xh=-7<6c%9hBK )\T3<-/"WXi   TWxuH& 86:ag0P(+1 b)DW*4 li]Nb4_bNue?i/ Ad31tS V~X~wOp1.1-7Zeci+Vf=a@v @&Fiz f>]@5\{:)Oips$6.oAX;)I2<Rf ]s #+?O<)z{ ?~V1 uoXRis 2  Z>R8O|>4F&e43),'jwHctP S{ke4  uw) L KB1uVxdjSOWcOF T}P~qPvVE.4wXVf q 7a \~\R~bLse~g@dZ1ts! e|BlEJ GB v>P - B@V=w%c<hBuspXC+Mf9L Yczf 8  ! / *y"Q\=.(>L',  >0KTNI/O0L'   k]B#7:B_#%- ,WxSr[? X;r$  cX  hTB;v_n E=B@HNN^bPv'?VX Djgo g & d a+YhF$ll>Pu~ncIOF (  %Q\ Q 0Kk|<*nTp+dJ(cwaSW0g%y\,=)[p5ISqZsGb |uTG'}up<X *07{8403t!6z/i)sh-.w_GI($VjEr19OT&M2-O)g[sPp ZZhTa:x7psDM'M4q_ :L)SZd)D FVv0KK %e;!fSbCIU c~kA7G{I[g7\Vb,#s3YVRa>o;.{>:U4'#=p}nW _fSTZvH2N"DtI\\q h|sJa|~ q:Zp '(M. ?mylw(P>$IAp*>Jk;OZYIOf4JiV$LE2^0\1, iG"!Xl/y=>ezMY6(aWcR_F"n9Q?e8K($_ D$w|#tzW2jo=P$7FX5.Q/snxK:*2)Mt^(rgqHEz:,$M  h@a L` {R ~ {z&s6'2;Ygy*"'#L? 1}I kSE/*U;IuS tQ[]@x]_VINe : 2 YB#sig T|yH%o0> w7 Z|gu`f@SoE,O \ %I  ab+LI8GLk= <NEmd&?lot {u$RZ>1u "9!e l5 A_w ]-X)q =Uw;MD@OPhMz4@RgHK%b`pcehJ;I!xk 1Cj`7l7S;+p;[ <28%fmDU"rF']R~ZHQEnEqf/Hj ':0l#G[fvOGgzs*tp5V"?:x Nw*^+A"#="?d_" '1Zc8]@c'Yfh7Cxm-<c^q[#uX=@CXW{`H>?GOjpWD%5(|>Z$2yU>a<xJZ51[d CXycZ [ KG j>]4ZU=k>zTrY,NfG`lnJJR7fBT=Lj,IecPe9IyVsh I !8g5}&\LRtP,TWkFJ$nr8BohA}iaVAfRbFos@ eW Sikeol] R<IT[vlrbaU]x%_CvP8=w0B&x -mjBRj8nX9ecY*b&IaGz.$bp & ]xL7LNI.j;).: =j?y8`e#Ak)TIBB>{i'9t(?<bG>*%, .\F.h'Sj3] @y`[mN^Ho!:_"3S x_xVf b0ldo8h[2@h67&,R12MeL#]SzwY4gu)}z&lbC^I|uSHp]C.  5=km^'XxgUnS/WgwHit0,Gv0=LJ.]Z[MoOe\KIwz_A#m!LD:[*ry-"j}q "j9N9Kd9giaYIFGPt=5aL`D q />gC!)2z7DiLn{\?WL8~;02'*me ,  Z|Y#>K]0g@N}X75i@*Na0N}E  kgC[%4gYb5U}~pK)= ) ZT 'f@ >=qoCV=rZQ7w~cL-A} r? >^*&  L6 r ]^kt !q% '2Z 2@ $isd  5L8{l( R r3YWi>JuK\CMES%2 P9r3rPt(  TtkwBvZf0v5d$^&w g W/ U.Wv GK0vU #5]5'(=]S)i3y'k ` hiBy$8^`(2I '~ A^)'Lvl c0I&~5Rjf(MTn SQo0  R T*0MZ }|t af95N[gNo-]L_N]J*>? j h !R#g$QK )Wxf")zY! Gg>I%eur=   y \. X1b=91 ? W2&>EY @0|cZ q 2# kf4FY`Y;,t]Bq D[QTu2v ;N A8(,{YoB_dS[` AO8b/Q{{n v 1  |\CC| 9c^gG)sO-L@^} ,5y 2 9dO-;QlwItg|^",=F0swS!I1x "?. T ,fsSW?{Q;TAV={Y8A,] y56b&k8I3!vX A g X Ry]|]gqJj'b,=V.o$M)lr Rp]YJ~d:  X*vfa Dhk|fV4 2 S r F+ } FKkZ 1Z=hD!]K 79v9DI4h .dI> <}WIr;5]>\ {%qmF + x1m1 TkB x ! Q Q 6N_?pZn\9C.?L5`=`kW!39yL E Z,_w 2^JMC-h~=5Uwy 9G*g2MSdKTy h =  t 0^4Q^,\L7'hS"uq(Yfldk#$ 8 : i : 3 & C 6H)'h ri>M7mM#SIYH6@]xr\USCo_y<t}^@utiRO;NbWH|yvE~V5No d=CnKRZ _F^7f B{q=, =<@mH*\xI=@b/wa"wn3&<ElfC0C \/C6&> g,Au"l{h$ oHxwH6},q_D?(bU_0 i+8V>aU4?7|XX<dfmS,5Ft\FKj"EVX^Z?e*G3GPjOgRb vzIr-7^ [( R^- Y")Md ^z PuP}X0\W+ @P{a/ !Jf2 )Dj/bg< 5hBw>,w=HS}C{vUaxl{1Y;0zz@T$mr"UAs,]!W/vrjw7eP6f9;./l6yL}=-- 1a:$1vDi%HTjfn6vg :NOQ~m)1 Eg` oj S?^uEJKr>1(Xy {i=B,^v=Glxg"faRko6?\L?sM$4o[4;cR&9R#S"!mY$y>_5 m+a"Vj&o nFOs m $ 'bMQa O@[5U_sQ? GEUL@cT1tpu4xHy1 t [qw Wmiufdd= D@_lLD R >U|S5Q}KN 6 #= wyhR p d1NiI:P ~"m P; NZs?ibIx ] C 5 >d tD9l  x3Ld# ' JfQO;6A'L7sz MlL xV q-xW EfL i} zN4RW ^z C  V }Fc@ye 8 < F(0i7D :?M!a  T]q`+gx0.3=9AW [ [RR K 7 ;|HdLnV}udD " x{qz}h tPFFh~8Z5|O: U  {Re l2cmq{ S).+X.-t?dUtSsz6u 8 !hCP  DL,IP2'I s  P19-|`L]N  Jr \!N 1  ^ sW w i -G>ODY+ :8O8   ! 8pz7h x%v58B&? [  : 6VOZUXyNA5N;<,eO a 9 !Vie) " w c#Q$cL ) nON7b  5uZR=n!{_  Jw am2  x >Ml c / |  G{CWI]@9E W#` 1 H ^_0z.n<V 61`h W6r ![E>mHX ,  YC R A+ 3@uV%2 n {] }eC#T/,0+eT=R N   M G +6 S49s6z!UZZ{8h*8E=}|-z(=,#WD?DOV0JMyQPxv@[PevF+JOjt|; =v[T5m,G&ean8 e#QXtL67on!jo N]v)%&9 wh 4bjo+nkb WR>q+%kqn:)oNv0rKdrFCXe-S86= ;GAoU1 +$Q6q{_D,5fBo`# ,wf0eu4Mb~Fofj7?JRlI[(6?l'5xf)m-ow45p@LliGtX v:ebJYY +J ` ua-0GQZ 8BP:odU;gFE,b`tdfG5|@[8j%a4{;w,N*D47\T0{? Fy>*P!-gb]6.t]sL{Vu>3;hrA5<L|N[APvrQ4j]8}6K(C }w~*5-+KrO`8 :;4NQC>1Nt{^n0 v:x\ *-cXu+e\ ;?2%j *_kXq{8z-~1~Cl10 sge'rT(P&aP\W'I/D"~P&O:LcSfj}se)yq)8>e@;'p&?|41M U|Tvq,^W|lfCS~mYlZ6h6Dl2 4jL][;E@:kD /E2+p Q &] L? Gf}SfIvHVp Az=Z!5LYJENTcs;s,@$}1~4pHkxQlILH#dJ'}&S,*nT6mp3,M/V.UQwg!:B Y {T<B+w$ K:sNm|/`.TWd|mX%W R I g<  jHCV}`>)&="%]ci `- '4NHEWLv( 5u'2wg^;"%vIp# fj !jٞӆ#V%Q|C,hATY3r  eb.l,{faKhKI/4 y y!K )n#>vh)D  L @ >V!k7iK29g{4{++X n| he<(H% .? wo Y_ g }iZ$z DK>C5 ? Ki#<&[>3JEf Tj]Ir|--aO '#]6 K4N,#j ucdS9+E a(R7V%Z Iys& ?|4(?0&C"bY o $$(p P JWk{9 aC|s)ITXsw 0hWyP =C*4{Q ] <aT3:To3 fNFu Q)~ {Z 2f&1/Y7 CG|Ct2xZ: %% Y-n'xT FM,ElN 9Z |>W]F9NhS-jl AKl (, UwGrt)n[ Q qX7` /P4)(^'h^  yEqvv&63 i=p*  Oe A@+<iw#i ,uc0x&J F&6[HK{yjd- -b/tq[+O  m9i%) kBzxGl# b  b Z^( e:sfMH J! f H.07kh0Se) Oc O zf?eBeFj ]6 Y w ?1M* `C9tL e2 ^|`Yg? K.  &&3 [g & IM/ FIR=Maz_]&x a S cu!^ ~6 I _`.Y E^ EerY" P H(%4 ;Qn ;} `s&pQ9v$ bS)` fkVIU*SD09@  [w) fo j|w`%ygmHM*Sndw '3!Wg OS)M8!w > O T~i Wi:Qs9{8w&  ;L@LA w?i- CI4i{" L nQU{Ay]amuqWx-5,|[ I% JPNo+tJ w>,Q% 6rEKaf7CX`}9)1or XlN{BnA4 o{SKZ!6?zi17 o0$Vh . N t  F24o -J0^n27?q[p33-v 30 7.>- pH AmxorH'13b<[FnS46\w{iUhfV3_? h ! [ H A9NVT ) JB+ W 4"i?_XqC(ucW ,VW>cBAR$wO#~   p@g8+]zo/SG \B$|756) okyD c}Bu!w}THuC@_c$'U;CJ a YHZy E% k0NB?  efX&gl+ ! \p3CPgo n&SErh2JsCr@ qPN  c rj'+nqKH#4V7 :\j}gEx,p;}U -,u =HR\UYhD &r !$A.}`NhiDvEk G>P "5 AWs =X` 3dqgmT_$j%U TrkV+PCunseS]&: lO SM6N)  OowZ4hLwH&<[EXWD<-v ZPjd h m(HQJ}2D@m)P`5Q9U+.}HxKk=|s ^v\UO/ Lu }I&Krj 68zB<`Y SLt }2nw urz  ` [Aw Uo8u!4ZpN" T  T%\m TNic! zl:> #}s1'lf O [b% s eR G|6RT)T;J4 /cR =Z?O7 $VUE }l  j[ vc+#,ba|\bz K|:U/ _ (Z!j x!XCh^ b|8C`L-e)a&pg'XET?v 0 6Owz{r*AW\k eA7+P.U?B"wGG! # 9?g4 , .Qj+DPLsNdTVrdt@f3_P  ^ m@<k4(-x/l!ePj/AYrrVd1QZmyv , a QF](>nV+%DcmG$74 E vXk7_p.nhV'1Zoo0kK]0,#-6:e'_&Oeccs `k')N+zc:;O{5NE  7<7j;esvXe.VjoE2JGbw/oY6ad!+#n(]0ms~+eWK'Zx1kc4G 9WI/zhH74H&({tr /3YD=kF*QH;dM6lmqnsiJ{~,LcXjLRXQs+-S*-X~gz2AuHtx:JyOOmpsizK8fN,;GIO0>X6dceHi%/6--IqgH9I&gvn{j[U]9XrjachZ8"(%4udM.)EQvvX9'0+TK,)"gH1Gadh~jS:Jd8KFUstt$3R3.&ADCCtyhcrlux&-7S{]?=?^{t{IKSZnCNaFY];*%Mvanxdo@CK9$K.%4o{kS#+,-<)-<QW?aPLf_stid{rrkbm;c|z|q}{gh_R- ){VSc[MUXC2Lk}~ew| ht0 8 ##!3 #%7EvCHgGa[ip:(<GDmzputkkhH`vJ $@Q8M^P&U9Y`HxMEyoyvQkvpdob\oX:*i1Z~:AkhRiFfT{q9'5@bIcd\)zH|lQ-1=*B'+d`!6JTq Y[ N3JeP;`ZmuOoW' {dPl< Wi~GU]<2/DY3/ysw(!LtcQs, wL:#n+)i-E_>*(11CFKdF.rdLI';AcIC{FW,/,T 6%NP-u'$L'Y`3w\UdfPq7 IF u7K/(@YY P5QzsTDV?dCr#)F[UyhEkY 2c,OTTIdZP]|A@Nr9! --*UMWGfF*.H3v(F ]/:&j& F^?I2{6Hl0xQ$(}K3VR8n!}T; 3-V )H+no(>`YW 8- 7LuANy+WU}ui)5yQO@/._xnnY4t#+`[3:6aD1I5jpIkh^.am2.*?w5oqXxljMyvH@neR~|;{ha^~*r<fX?SU8un KH%"uP`rpsL1X-@C0T<;kIzfp#.>5S,=00C$F[-WSOI;*rNF@c`Tq}xBFSWB#e3gA';I}E\t8FH"=9-6wo7I[8b5H#?b^ 5_!f@$P1:D"(8|9?bA! Lb4s>W@^?"9LkQgF`tyBV}?5|xYon4+%1X$4H#X*SP9Qh/:)-E-@LLeI)L&Fgk\&D D[ -..y;6H=K.z\6n~SZ[9A5,iC .+:Iv|[?G0OHLbcKOt? +%&Ht` (.J.&~^5V[:nX$NC;*.Pe") ormsfyk"4~p$3V>Fk  :.(MZO+P@ U1.?h@(=+)8 2ML4GOc<53."X2?AG>tLSLyZ,2" /:EG&:=4NR<.n}jjX +@"ctYYUYg=$".0"(#JVF* !8,BgfF wrtovgq~xqtw>L-Rlw_Ok>/vPOEWOwrqL&[`i}]*"A&:.1 :IEAJ]Nazd{t`"0 -&*QpvsZ>1!0)MD0 6ZqntlPke.Kq^>7DDxaP!(!}ocS4:/-SU@UU1N[Kj^HtC3C&$4EI<'C28HE3CB%'2?UH0@>8Q7/C-.p_Igh[OSqil~|87Rq|%AI!B2" 1)  3/;@2*/&$RCIH":3(7%% E.;+1ox`dX-'*4>?30_knT7B;;9Tgs9D[jvwB`r[\^|zt^Qt~dYJyyq\{ 6>"[N6IRTngW]yIC\LAVMQsN[}gnVJ<1g}dvpnb>Hgbeqcx  7E#QlQa=! 7,1?6  #/%3 oX^B-Z<Iar?09(<OFCJ9T\&#-?:nNFe`xb4&k} +1<Z9VlHF -&98;!+y{wg@ @Q6,&-G*L:$ *QIR_lc>83yiJl(0rHN_F T !4  9- :v [  xN2Px*%mBV2# BE_*drmrB RZ2dgX|.O%.@9dngEgNZX{HI^ [Z[`k N\+Zt BiHWlAf`:EzabD  I 5rd&s u40Z}hos~/]{  hjY ;A^NeYWGT~2W t _i`< +0 }n48J ^ TM ; WF}<#X1 f )Jw|. #j]OG>J! o h6n+NA&e 1CIW8<Q   e6=E:co}K < V7x!g@|;s[ <s |H3BW L"/7 *>z{n 7jaOIn%@9  r2CGjJ9YAj ,LMQ `$@x-(<L 75 F ,{z-RQ`WeM]dJQk1L#c RJ)d < %olk DO; E\o?,(qqLW-i48Ca? * k:j;okgLt ?@ x&$2 { Ml& uGb f(~$Hq=Syb nz*m^7>X )+q.du Pc d]mmN =<~ B -IVnkLlwm=})ic\uQO}Q')(m _nd! N {[,2lO)`"k) u: J&UFe$xb -  |SC6" - *X@M_ \ ISF5+  H%'gAIH kZ ~"D_nQ{ ||  d&T}'. I)K=}' g26cg/'I2XU}/v!5  h+(  # c8<H##UT&ws skq(q~Mg] C " N 6/_qu "eBa| r H.O ,q  JuqTZ\ \+  Ur  Jj$#a3X/pj RW-s+*{"B *j K /U f%w3@a:QL8~VuprHH7DCyk 'aQS DLJGP `v? ~oW'sT%6BbTw6wrp{GRG!! S 3  Kk  /d`+ ; 5`XjY< L>:n}ePcm=kHwU!i B rQ j0 W0O2ee]UZ' "xSRx j@v-U_%SBj<   \  |1x  0(+=XH Y-e"09I#YoTw[f?G* E ( jP Ld^:l 8"cOK1],#fqi/}k40=j7IaE Z i L K</40)Ea_B NoxNgoKa0u% !  B3z\;W  j)B8Xuu ijf9#"eu GD_ ? ? / .|(\O 1 .goB </D8`JEAuV{;j1{r#ze [3~TP&4S w,8sx` <^P?$cQB a7 { )mRI#8p#3BM{XBN, !G,2 ?OC . @#w @~*,]Nc SE]Xg>ct1pF`9"X,L^r{ d }J0;F<C']HEr';/ au".^"c{m !>e<_IklT :T&p82\B,#/9QN *(B*46Xmh5308pB"]<.7 ~?BG%9b#U R< fJ4Ids ! IV^04>{K@%z^kN)GM@& DL:Hr /QeEI#>r8q3/(~\k_Y?z}J nl#8ng#%>C ,(<9nI{|&W&z+2tUeG4|ql-i"KU)+! a>sQ,BBV <g@TgD]a';('aKRbnm 8JYhY%ItW{JZqZUYfk)[V[gB|Zl1:K-F)A6m$vz75XfO>@N='N1P)rI PR]QfB$SaysXU]9a siJZQoVg/,?L>P+s<$* {^pC,/}sX|_Ct{quc M6QM ;{ &M3zwqT|P < ]pv6gyD<_z\=+k&M&g+O5e>zRCn~p5%w ;5h!?AD6c<G}_nY7 :U(!@'C(4@Zk-6wS"qYB#!myoGA,R8" -k(GgltT=M^~}{W4!&4=?F >OGUm,Uynkm^o?2r d-km_K5K jEulrj4?p5ndNv6|jLjlD h,*!f+_IUfR;Vkl('QCwQ.O+W]?zuvv~?@Ni4[-f*F8o"T!'`H m$Jz7hSc mOg*1BO*!@| ]Ac#Q[i8;\`p5F05"}+bpcN; !~E[3`kBwTC3' {c|KHn&kp=Y =5kp-reZhMmKvrehlI.& C(b)yb x22ZM 3 z _=Em`I; ymir4/C%z[ ~ >~fy ` z2NF9| / & * )%I:ujw 0 V Fjs;^ r J,9Af;*jm D w~geaJz Xb6  ~ "# CA= V 4pueb 0[ LJt,lT-T]Tv) / la(OasV L l1BISTH f[ v^|5}J.cRSy M UeQ %`Djx+YO( 8ek2M}:+ y `erV #f3+$G X B5%i us SQIq|8?AU  B"zDe4dEe  T X< v5 e)#Q~ z Hr2?W7A,kS\2B] k &F^j| L :FbjNB   wX:]8g  O #NUti 1 (sIT)sVb4/ X A2rkfZu lZ*,W, z &1 $-F W: Y ^ ^_N\/IL)+ nU|f y e Z x ^]MOZ t ?af4/ U  m*63|1[*aR)s;   u #= F ~|Z   S,~$#GWUiz-Z k m Ng R?l|S\^C)O  ;ATl@wF|e2O$  / .N GUx2i" _.@o? hs;$ aqu%-%IW]e < g:.1|  [B ~;21{ _ u &1;nYfp| ( g&# G8b 89 vxh> < E>nx&*Y]D;c-G8 XS(  # 6#_3_ny 0 Wu78Tj- + a]7vn_1.lpId[sN L L  ]K ~Vj GG)x  0|}1ULCWASO1^'RW  WY.ZM0@ D  R" f*_ 'feEh&*r:Imxc!{i%l[(r *% N++ I a11 V,RW?~-FP V#)~O B " yRN*4 z = bhF4t5y'c#[yR4}| <E r2^ + @&tL Rmh?kgM"}3 A;< H ) " +>!2fS5 #V.y&6p&J}_3'>R[*NmBq  ~ #mxEQ}5$o:#X#yZk+9CGfFa05Oo2|"oOwLbDQ X:DTm lM-`52]/N\v/~QyeB\n 7KlON907s](O\K`{va|43j-2$s22sh>w}Nm^4;# Y{I87nSL\6Rs#uJ zo|`.Y2("=M}C#Qg+ Spa>'7KdZ9#32hp`ya8T*F+'sIq"wW[G*:`{|1 M/a`4%q:uxr]>EL@7\uxuLqA!!y vL5FG 0Nj*Y V,[rac4P'xA+c:d2;*|We9S*o l3IP  (d;s~:k{C"h"BE 8(5aT[VFBbSVyAgu>3,V8>X_Nkg4HM4i_cPz][Nf[0BZX6]S}Idvv=l^:2z1kY3p:4s L'=Oc_PVG2r,QMRC}MD'Kv-F+9UYd)I-GXZ*j`FuQ0,# ymzFG-O_ 3X2(eA3itXF$(}%@[u "+D!&1PSb ."LLX8"GH_ K 8p#PW5GG 0FmPt;4f$toM7A UHcDm@aLF\ (zn\|? y )_{' /bUcpj9W*ZL%(tjB!R-0+^c0KLhKU%%f"sa<r J|h{NM-ohAY]o7hb:<H4*=T5mcn.hL]p|\"S3=,PK`Qhb{R/<~/Bf55PI.-Z#xj,mhKEzz >J HB-b3Q.qR ?q t2%Pu7evBmp,:~WN#Mljm'Z[,Rc]9oSp5 o&1kLr9@[G%/wK)!!6` V5 _4X{1Pbl4j/ ,*:bR$kus1%;wLAxjx2-*LVSD A:EZCG, Kunyb>a~~0E=FQ#dsQ"d c!l7 Z*%\8wfv[sid-A/Q W 4t2J`C_Vd.!I Y~0"k#5%3rvXO  i|y+*G$*s-IfR  2gXRhh bOyK a  $ ! F{Y?!^~h%6HyF! *IfX8JAFr 6BhbS#{Dp   z@B?.kUNE[R46o".' !|39l 4 *hX BTCt*( & lR\ '?Uw,)+0=83 ^7dZy? is Y;">&nT l'ko G q}zs?z"50Ruc ~  A". |7]O: E{h}NU.B@A: I76#N $_  1IFQE l M 4xMi9_$g l  z uI3~  D.]zvy ':J,^x :)W-U1 4 ' [LB ?t #N/`=ouI$wYP1zve!EP6 l l pWJ*54J3 < uSC[.0}s!9nXPb,|:Q  S  Zx*qM4L#?&"6CpQ? 1so ) 4 s cv7eXPot(UW'Oa=H@EZ9IIgkpyJ}u V  ` ^|`,<cmObj[ccAn4 !  d]u:Rr?!jk<p_EV`>LxjA>TXtV] .U$>"78d&h.z^plW37wlmP% 0F *bOYdtU8US*gymXi+(b|Y l]M{  E\\cjRVLVM~JcG(+3(}DFX0Vd*vZE&W>99( ($  efX^EK5TZKUr""F#?O8K2v& ?\KKO$A%#~huYRYgqN@=B)>/(M_-ks|{"E$)274*II. ,`XA&?G1:,214HG3 G44D{Q1OKB? $*8SB mj{0<iiNe^@chZTTr[0G<FpwytnvHO'  | LUKg{bn n J]c[h.c^9N 6-M<7>])g]pF/o]VAXzGpzeA` h4qU?k5n%(hido;J`F<SC# > sl? hi79 ib4X8O.}`viN XOG/;;E=$q1LL+ )binr%]@ MedtjhKn uGeVhmtW79JATXw4q{#G>h,\S~%$EOpJ,kKI o!QN) y 4(lP5)%5.Si^IAN =Ne)2;Y-ZAK)8f2c5P},u]KO:X=-zE[[_DIxDLL'![1of0!<C.[E^)NF|wu5@ieEgltB;nIP*5R+pCF4'iGxY$_LYPH!Jj,xczN$Oih vm#hN z~jeNZ/v"~eBe M-)P\h>w7* K1 7,(oQMA|@!,@J} R b~Wt@i, 9xn^2?L*xe5E'f>h 2(prnzxe?6a#} BkMiq& ";g0f|q3w4lN!i05H,Z@_n3GW3vbE:e5 VIZ]AG/t_}.p j W#rez6qoeq%**RUePiyt4LWt76zuaGGs 1Z++D$Y!P An~?W`F9x;QJ3xn&s}Qr]j11Nm%(vyY(H> -=3 6BI,;vr{2U%Ge 6@kDf g1ABW6  a 4 _ rop5h)!&YI:kW[ u^<*+ MLC#"Z >&Q x  Rj Zm2I\tNI-d /w)jE,1",y//} uG   @ ; h O '?H<6 lPj&| 6v9F9;p2k^"g(et T y V q ~( koyYM dm$ o1w(|`$Yj(D V " ,r Z P{R@f+I\BVtoLV -;5M2vS'Qh * < O j"l'n_^PkgLT5` N5AQlX3 n N/; BmyM,pw(/-|p0; fu{g|4Bt- wt u  7 =_Kzp;iM=jmp@_&ITxed xB6G,z)ti  n i  &? =_UH>#HFQW'?B1U;*[nx@Wl> d   m xN=Qea_[}l AY/.G9eBa~(r}\5 3   {^ IAbcN@|f:!E@T+ cNo\}^'C !iRO 5BrkP #  j]l`{@{g%-&o+Bgi4.iR_3 7#5e~g"8y%:7L2EJLZUbM E7SwcP\rM  ] 5d 1}"?}R%InRb<a?bUf9m*H1?y9 gmH0  i [ F1/-9ncnK9#")}nj*9ht]_  | Z x 8[VA~Z| Q\>Nz;Y)#7HCeJ!V] T ) O  \jT:{"V?c38qY'm$=@8)zz# \dR]e b Q y \~ }@#G H8=/LaZcuxC|:><n)\ F_u v s GAN[M/P!,E%BpBz}|N;84+;  !d4T y1`nFvN`95/<Zge8Wm[})Kcx^mU*E;Fu9ZNgpB 7 L1V?l*N6gcRXm\ /q{i [L=b,FKR : in@ rFO "r5r IneLN9QNAW(wB}'r l'3 Q)]nJMl}rn _r233nmpz)=_\\;2>V2`Xc03:w;tTu97@L_ ];5s+eSnon 0d?vN.V$jc1UUTNE L $ r&AnkYRn,AxIZW_tx_zGJERO`;]ZS(Ob a ?@'+R`!4o]gnsxS:.z gvFrZ-5 ' E O F:K7kMs{gVQO\ .5w5!)^F.GD !gI>Gi5E:^Dy&evqr k|^_Y$Y(ji$Si^m!Ful "bkt>q]Ud ^&AgE.e ^W 0]"*8KF vxw<*+Zbmc~76o7NS_N{MN x sWRLRA9rwQFPD)HBB"d#R\uP/S|d$+z=\l?kNSJ>do1KV$A[WvyL6g'o$W3_?]#]7| Ss7# $Fdt+aTtalbmX/SxpJU_RH)S^!V?[M82) !P, G,rQNvK|5 O6{Q(S=L|xw,[}3 PF[rh>#w(4CkI53 )Sa;}G&PVTnAKjN\Ya^?:NLLF(">!UV_>@.C<1!-F'150+.RTf[QE9\pks%Z>@WPH6A5{71 t|V^/rl{>uqZ58<_7smvSN&? .JMj2FE nz$}a\* .>"&}IX|U6#d?twUHX)n L{Mk s|E'oFLOm,MJ,=}&S%6L:B)}lFj1# #AKWqlI'"IIXgUfiJ0{ADEI|bK9+2JDy&' JovBC&:^{fV_,! RL2{l AB.oy[{5 M)wU$-$PmM&$V}tXle &uML?0G=Wkp Cv*.CKe:Bfeh'+{p]T,JSjQxf".ZIdoS>GA|9)I;5qKq>],Q{CZ adMpy]?Lf 5]g|w]wt8s'f{YJ9\u%D Yis|% u =:;9<Z<Te u~{f.@((g[/:k;(:RW;5RC .jM8g5E~x?;mjro1h[tT4Wz`I4t2e&,:|6rs jCa'Wd{HF (qj#K$SVx ?zZ^s@%W52)Ov*(jGW{ 8i =czh| L53 (&3%f%Pz-}/=I &w33PaVxT-fieblnt>7yrF,gU=:MrS%Yg*tK2'/'X~Ed 9F!YWFy_GbxBov[~%w9]_aq"u):h<2p}%`2#UT9q"k4Z%B|`X(t [ 0>mO8Q5< O !R@'55:@fnhK+hT q.T&[ ~   5,k:06EOC;7Do(q\E&KHh-_;11 JycP <0jSH9`M)k;hokIYe0  ; L Jdot]:@=rYKO~~LPH+ah_pLQ8L=} Z  j  Jx\ n ~ Nm-zv FnZEgD#25 Qk5Ug)r)#^E6 ( NcK . \`Z MetWVH4 #NA {. CpI'ns 6  0e! B;5a;#9 1g^6~emc@&`cLUc.Stq> @  :UIQ Sd }r91t-saQ| D!n  T  ) /qnH jtZ x . ?X y{A "p#hGkZlZdxUv9 /_p yK_/u geSahxYW?0#J]! > Km]&"}yYxA* g]1: E S Xs /aRk^\tjB 7 3 j_6R; S _&;(&Wbv<}b1 a K%J  /b;4M ;@26I$#2XDggyAQ H(   |RB#4zk pyITf! B Pq xU$Zk#WXb[UH5u K m x deNb < =6K -yzuC?@N+l7'i(G]U2 hAI =ppoFfQi M* O-^y@kWd>lVKx Y Z nA xES4:-YN`/;R029eIybM\]f=U@]JiYM , f / + t%t:BQs7pSs;qac7ow!Pv 5 ] 4 & ,Ox$v;F8 >Z0a6xCj\~DJEYq|hbbT`lqI f C +D Bw+X\a8vQqxsY;,b8!+DJzhQ^53Lc4yw.n  oT-3k-@d]UunmvhQ+t-gD}OHu}ky  c ( t r6^G~ ]6y(E'{>V Hqn{q"$:s+GQA!6n0nnK< M d J8^YI vW Lcc <' 8-.;4IDpZjE4fby%==lKCV/>6cRf(Og>ekTSb2Ne()op=:8+E hE Eu%\AfjV$CsibN8g WP q'Y YhLLG.)^{^ 5s#6P^1z M+ &_Y55"LX<R2%s.E<WWi`T]X1S i[S@5?G X[}KAHO@ H Dt#4]vCsVC %,RHnf5q<K0>&'\n3F22QbL~ZB0w0 %6/p%SCZUj1`d9uLvK'* e^:p@ 7`FbbtOnR-P3^TzqpO^n8)78cMC T~+;@vj*k ,ygtiy0Hlay-,4,E<3hL+ =Llq8: %Pf",N=2 0&@< 6?qxK&/TQzdzjww%BvC #4Ja]HRxE54@/40J'DrN>1`|{?vj{xQb?_rHt#?  ,'.48"tbZE LD/|gTSyuY^nhiMjgkiRjiI$"XSC %   7{>-V <cUMA21'&*`iG(c9P=2;S:$"Gwhxyz^lG\awxd5"  T<[5:Lz #J]lW|snhX|yWgQ"-//)G<#Dr_:4NaI[HZlwG?]@%/&4Rs]LN% {#EXc|? .M+.D,,CuU,&.#TeYO'BU$7gf`l,L|]}iZus_{w|%8G_K%">)OM1Fimmv~rqxm:"R- /(JjX/'&0$86T:7T:)E!EeFOv[B3@ 7CG=4 Dg@GciRJ}pbet`=&.E}\=YzmzqWgXQaTY9"[M@V7< 4 !\VNhl|vwml*)75=ycbzl~ooLcbnH<xuL-=B=,D60@Nw}nRHp_&YfCr"]P'<.   .)(>$Tsr{N( x|m 4>U[QJ^F0Kg7+0$HzylN!4' !1C4In8,GO1z}lw__B6:Rfw^ji{R:vxi~bny`TO-DC4 (5D}wl~jy<2C_UI2otQ[@(NG>+%D" <2SlG+V4 @=Ifb?,ZU::8=)"&G137"Koj6A\V\r{zDI%PtOsdeT:Rc\^0 ":*lQ\S:?_(;e|m~{~yfX]]$* NFeqU>oynjS)@XLV) /$5stbZWno$ %&YM@"!YO"!B=% %;46`}`9 6L XVG^QTG'&PJ;(?vqdqyrzz{{~wP )+&04:90cQf=4`XVB/_ymX52DV9+# }wwQ=DCZqutms.!A37L:"/!0(,vvv2M6CDGewwy`q~cz|2:$+d8dtf[BB@R ?xef^r]OYWB%?m0@#(HnG)X}wEBXvurr~:.?DJ1ALGOC/N}s?6;4#2_V/%Kalj[uzi[mlJE#")2  F\NK[g}eFL@1>" /$J#*,8B" 016<'' ( 76!M`T9>\_7U`:40BM$=-20 ?znE7- 2% "Gahu/)lk{qJ+>90G8)o7ZzRI; 2<( 32=@g\}xqk|tv?uW+&PY:A8%/5# /Gaw^J2&;!%( D"34)9C`qkKSaj[B!  ,A bOKD dTL1+:;0 !@<#ko\{rnz@>gne)C!+bI"$!%R|jMU}FVQ^k{k{ugdSd@JD=QXI7 $#2 +"# 1UFOTpd+&.d="G0:NJ0!>XYcj}wt^ 'HO qufY]`KOQ_z}ibTCerQV[h}w\TB/J: ,H2'EQRZue( mNrZ]VCkv}^]NJI6_jjlr(''EdKWQnOhX@CFxbcyL_w\wM=lh[o{lV<# ,6N@#"OP$WV/ &JtquthMbo>LU1% ,5((*%]RPUL[bR;5(5($N{pYP<kuXWxf]7;/@RdvlU9J;%ac$P>)2?\du,.0!2)7 LWkm23vksaWt|xIHQzGVVge<!>0|vj76S, F|b:5Aknfwec{5wT]c{ef^n_bbJRHY`WoJSrplSq[itn!&n|<<;FQ.) 5.0,wo^TW\>fjI'3?oS}^&Qgr( D=[jvC 6;" I( [R"U^jjlawjJP$.AEW7UfCcY]mA]hF>F_D%7fL6#*O">x{ihC9+7etcbKm *r\=L^F(Q]HRSI>I.5MPOE'Z1D( 9"&.qo~wc97R>4 $!}d{)#qomv}sZW_K-)RVW^J8620DP@QrbXc_|#$&*Q>'75"7%'FXgEd=/=//.C>  .M?C*6|I6?=881.%" W+%DjNs{h<; oqiV^eN599L Gne2SOdgVE7QA )UYz|[V -:;)0c2#'AGMDRl}mzq|(}`"Gl'aE)[4wo<N,0}h.VO LzVE=1 uYuYP34O>KN/545PZQO0ev4._~lda|`tjWVLYSULTcrxk~k|hu{ON/%.'H6;(<[WZA3"*.0% -J?codec2-1.0.1/wav/wia_16kHz.wav000066400000000000000000000764541412132000500157330ustar00rootroot00000000000000RIFF$}WAVEfmt >}data}|zxwtsromkjhgdb_^\ZYWTSQOMKHGECA??;;86332/-,)&%"!       &-+34(!  (+!     "'074-' &+2;0(& #'''/0-& $++(&"&&"     !   #"""  (+.%#*"!&.43.!              3)33)'!''&,-1+)+$!  )*%    (21)  ",./'" %AFC4# !"        '+/+%+/00+5:;B@:2/)%$')$)'%%#"      ##(//-    "'! #'!  #%,%  !"!  &()&$),,"  "#))'&    ! %+/&"$!""!!-0)&!$!"                        "!'$%!!!'(#(($$!          !! ###! ""              ##'%%,),&%%   """ %$##('++,-,200.1*(# ! !###!"     %''$&#        ! &($% "!%))'!! *3664,)(&'&#        !&)../'"" !  #%%$          "!! "!               !%#)#'(&+,,))! "$!       %'*-),'%)&*)+(.1-/18:86/("#(#'*,,%%&%"         '%"$%!!"! ##$%! !"!%"!      "  #!"#"$!"!"#! !$! %(%&$**&))*'#!     #*(&(,//2/1+!$!#(*02342633422%'($#"#%'$$)((%       '0,1('&%  "'1.10+#"     !# !#*")"$ 40#"* "*$ . '#$!.*$    0  DO +&- . !+ ($+"2=4LZ%:B.00C1 -#!A' )& &, ",  :1><-) 66, H25 6j )hcQ{SLO,=:K@Bs7d g93^] IE't 1- " s,\,U{2CCu RRB1E=BC+8aF #CN[*e&-SMo6 B69xjQp+R!CGExgi=L4h8 -jyo+KzuZgj:8Z ad,ZC }Nw2Fj@X.e$XH&83q3Y:-Sd (rr:u/7pmr`In zRY#R>M'zhOudE6YJBf<(G@A,%wV2_f Cr.ZHdP< 5WOP|| 1B<_u;ragGF"%.Nfdy``3]amC-O`2DSj-YwLRxJV~jUj &+Z4=3Gf]"Od83fVSY #wy:m>2>Oc""1itr[W%=5tbA,U}$]kL;t0hh#g*iJ -*y"or-bgH_#n~xQ"Eeia f%AOs:$8,` ?HoXhla]QAuVB dW$Y;:}BezN:&/Y;$C.`5a|X(w3=,q|<@p;OnMN#xnCjTt cb3<XURTY0q3 Q;M.89k>WQj7i1y E0.l| gv :xe9vM,{k,+?C{ <[NIoW>[p@IAUj#RRlL? :gChUD+P fF!D';ln#;64H$p)zoU&t]3x,zN'(~=xwx._JW$[9@Vq{I.u:1d4 G$#mrBXSy`)b-_1I6 f0j`"E,j ,/IV? LB j\[*#9ZI.)5 4 l91B>PkQ|? M0D}~ NN^ZJ|q`+% tthjsh5L$fllk+%{=klK1##KFHj6jXw7m (sa}[j=X TzblK_hS: O`DGG0;h}OPW*NWR/32U`6ym3.rBMj3_  CP FA  "EG%D5kM l   M <- ;6r؅܍v:U{%VE  \Yg w03+^cb> cm$  A H{QC8[{\O DuKz E  }      }rY<23 \= Ŝ֔Fi g K~!M!0I=b "Ac(P&p"\GV}D0=P7 L0 [E > G $  @ q :jS CYI sغ0|Ú؄6nm *8 @1 VPe>\ VXL^6w2:K,|Npy N 1 " w d?c,O3 ] > )#iI<rs4zβ`OH# W  <O`45&Rwۀ3ʆ̳@n c d TO*.S+Z R +, T|3{ " SZD 8H  6g`@o;It! Dr eff{s"Xvu  " (;3>h2 cvO K} - w  x"sd[? t59N|Mӭ֘9 7~#<"  \(1Be3R> Q^Sz ',O.uA,"adQj <^,v^:/t4+/G1R kTxIn\~[XL/A8 `' %g Kc#]y*1tHFuV# j yCm*| FmV)+`u Yf3k V5 U"b~oSYN9xI A  e ,  K ( nyp6Y[G-9Ac; ,.e&tdLA 3  7"I 2LXL :,v)k$qkbe~$lc7>/PM dNbsPL'"  A ^I4Ol<aiS*m%*VC2X 1a  ^3#j}Ooo ~L; zR'YwLy,A99yd9b  e! g& u<}܋1߁FHE g  >A \eC(O<[T% s*[W p)_j=Q##Gt LRB۹|P|YV- x ~6!Mm+c~DBh2e dFa #&$=X%6+J8QUyb C^YQnp1dF WSW[&FpH|1[&u F( 8!: 'Cz,)X5%@ j5y $V = \ # "T'ma? J1 \ 7yaF<\%duR # m Dd.v~3<LؗC;: 1@i&kxif0E x4 "0 'Ji5W&sr s}RS=9d(lSe3j _ uTC -S (w)@_ s 5!bD n  ; w ,F f3KXs^ B;O#1x].'Dn(C>nXJ<Z?f\v*`dXd\4QUD\r'LsklFz871S,rW>3[^)W1QO*:  ^xUr5/HhPxA*;-MCU V*Pc `=%>8n6<B]'g]zja~T^P_Xt`4`2N\C"cQm<xdTwU7zq'jA n+05EPrP 7O> Q&x9Vl;'')=QI | & $YD F JCX a !#qoulT+A_7O3A6]~t7 AF52fm(u fuUzi{`f ޴6)mz\ PnqmA <S & q  $u 9+b2SL} h+ 4L/"\&(*P+!+(^")kyOY(! B| g0ނ#ާ< J S ) m ϘkʊbXaeK;RRN  &#$!$6"] "%+(U+b-~.d*G'.g2SO1 ]3  u|iCѰƳɁԍd

 P  10 3I. (G7L19]$:>bF, p #I(\8;[ e L\ ~ 5ZV03 ` i :9,.b9S4"|Ja P&{M߼ +&q`]'Ϩr'jUh= U  + xloNT9\c Ws neiᰩUI m Ǐ+]_#nR}G (2Y 2 h` "/ M{bY%L,fy7C4A KN/C \ψ]P] 4 . = ?, 1 m1 , (CQ 7rY2 ?rRWI,#v@j6tf #2J r  JS1!s #Z`r E +y 9'yH Ep5*D9=VH81 k:Z\D  !t H .?v {px+.6u s8 j$(lY `k</&!$3: CG/ CY~ 4+j;* O t.;3V0g6 <OWfy+kp%?*N)S>f^  m9-8;<zfxm|E1Z#=o)2 a8qm &- d@ 67V2 "CMHpLT64^^qir{)wb.HBt^~oJj#*q6<mZu@X9iM_H]Kw030 6g%pO1kw~.6d{WTp5EGwBW!$PmD'|is({_P- wc/[Rk:F_LC3a *-aA+>|.aqsX{4K]2c4yg`L>/A_y.mo @2`N `(o}[v b^WPm&X-6_tXB)}_GHd/C,(ut+?%Z^;xL2Q%nes0(H_Jq]%XF,Z^(e:8H2B_"w eL xI{/e1iDTA> V9Y<AQ{! 49;>syy?B :.|H7I)A R0S"1 & !W)CO=%|U 07 m-f@}=1w9|**r IZb_?{tQ}7\LwcK*G*#X'Vc,~wWmd)?qn^ X]GP+" vDF"q@^L!k4 E-z-9zc) {*a/?7X' j &9IbHPkH>x8V  ZQ)o?"~;nb[ 52 D <Z PF HU{E_P;-4{2v|IP(bqOg%|0BJ=jE%_.BRe*3 HUO  3TzH2)tPn/  &Tf3WI`X8ccZ{P$CK >'59 8d&Xk&AD+Ro_pnD^=svRD,p(U8D/O)!@39>} O!pcClfy-U>  }@ ?$ffH,0)z2yq:Y1"e]:Z5RCt_$Ejbx+*y/ a 5c   $[S~F^]33}/[dMw_Oy mQ aZD'ZI=lQBIQ8.(FPEl- P .  km?SeL|&*a ByF#+69U8ud@T#SHs_ho8V9.d@ S& t>]5aJaDxT"X4/ D `-,YDgT4T.(^Un m0O)x}VGX[wL2hMcH3J+-zsUsZ+9@qOh"z 0jBh=.WT   s5hR\z~Gq4q:h?&87BnayUan|P,(Q*H]!q ,Lmz9l4g %&T=&Z(FZ ;R`]fgvF@70d]CEa7G="4bpP8 Iy-&3#)>5gPd:]kX }MTV(CnIa}0h)3 AZzYI4XR0_[8D  "&7W\L~ntYd"e}k\ G]=yR!HlJr"\*~iEK?!qO'4 ] 2=L*tq526elFU"Kun 5IiD1X^[Z BY'W7-9a `KD =zY$JksL*!UG kw,iTbt&J>6BfLj0iyP;Ql_aM,edB ],}3?kZzZp`6 TxX LZ|}(J*W(S9 wlfM=Dpi4%0<2~24 rabD); o WJ u DO xbd3EQL N4 !a $&aj ] 5J'RM =<~}e  :i&/7R>R IiO53  /C%co9 t %t~ * R(U^# muW"&TaAiiE4GSmr" B `R 8 _y~4.]ao.-Z =sH^H!| oG) hU# 8 jz s ? GOe nrG`]c'N$ oW"_?6Urۆ""_`E^_] F_&a^f99pd 82i0=R"qp:D_ JYu7]X/  L:wm l rj $ s  GQ' a agD {m&gw Gyfke+ l~Z %Bl& ; *9* ^ F8 JU[ H MA= sP /D Q^JS/Rg[Vz|i+P!QPMixLv),a96W"a. "XY` !GrwAo  , ={09jaHaW,"_yefagqX0 qTq=^b#l>5`O XT#^?N1 + ,g=4*:hEO N#Sg_& gibV.{ 5v-H:m=%SV['G_l  n .;/_Cu Y[%si,,Y_42@$ .V5Vbju2J]gA2y:F_Y|6W  C WI@{t R)M/)Yq/7)F{6i'T ?Tk3dPt3Y    #U!98' 7L!\NOSfRWB]I`oF 1agA  t 9 X Ia : F@`t03 1}J,]5!usu61' eCHH %6G| s P:AUmm8!r5+vy5 |x)e9hS>iu1xjF+f -Y*xxb'*Uoh]tBjc(Z&Czpw9likGEOvPQdd)%Td1}f73#.&qa5hgM]rm  +iZhEzzN80Sp{>XA'NS`KYRU70lU^$:1i3&dLcc(`?VB$QxBU0cnVz&F80?(e'SIv X37DM#bAEa*_Th?DNsn'Tt ctdN V"2lBv.=C$?se"`z;fPK@7:BTyJe= E *x:78I hiWg5eJ*r/"UB7DAOMQuBd `#&~:?G UyJq tXRm0: 0,H:DWSEH\j&) ,@"L05VC{7D} uTY7bWR LesGa>%(TLk T J"#@n $cK$1@A$sO{Ru{AnK(!pOHlVD7fz ]W5j[t/$1-qg9;Mges*oH G  Pb6zb k{;k;h%u/E%n/K3v=>nxr~EY{'TKmw!l/'9^{zs<} -"Ps_Q+ 1o t5I&R6{e^^ &G/3I6 e= {soj[s1i Z\'tx]Z |"9h`O }u@xw^EMoDQ.XpuY/[ I!$pf$d%%jXdc B4n (O_j O6=YQ&  Q }.yuVMJHiy;?r&uP%K8u VxC @ p3/ <8vfUVI! VDzu a5K xiwS!pC;/=.,jUeX$6Q,KT"PCmKi6|Rz e]VM\V" z"~vRKE0i^TDG` oBYoHp bHFyQ .3CeXcrxhe_nKlhpv5780*EYg.jwn ;r @ ,%+upr0K[)14 6:s0{> "oUy&VMV6? kH3$( "0O$m't2bM -L9 W9 ox|5 9Vcr(;=%O6X04 [>L`rqdX@A/PzU!:+u 5-F(:T;q(!\7,^`x7zKwh /p1s9o Z %Q KZA  jS1<iqX}Mqx#P y=|=!"tC~;!mL a",eGD o Z l&DKlq 6T?D#w+,NS*V-1'EIy5s>~Vn_yYXz9+uI\l 8 5  fF K:\>K%"~>P&2c`K#|; {`KccwoBzi}rnk 6nMR;G$" AM`RJ N I wee1E ]oA Rt;)\]uCj DNX gYjy>8f ,$0 HH( BJ&nV >yDXlFp #3 ~qB brV3s$)6`DOT'L 9I rDB` MoE,(Q~TB}zX/v\^qi@* W+=aeq;!sn$,SoL m. !p0#kwL-f@jtl0-T-fp+eBe 'mYz(7#k!s cy<]  5$H% N]_+I+N`xC_1Ss%OUPYT]3:Fk^"rNL|n&xf4oR 0X wGn99*j=< balT/,b4-/8Ar9m()IA/ Gp$qD>uuysmd `_vTH1/ JxS@9Z@n)S}@gy ]1>Zxq!E_NWeF@m(&TbukGV3jJaz|A8rk^Onw e$*QL+5G<nQz:moicdx5N_j 48{^Kf3,RN] 2O] DtDr84[6s` d`_$:;"D%m M-G!0?w*44>zUw>D=l'O9| *E;S;oD})p_rn1}OV|%<ujVF?gKnm s{YDv&sO{O|of1I# ,f4WLY&K2Llt'NKo,:[U4S&b7eMKuf:u603yiu8'>8@]]beTf$lIX.('Y*-|wn3'atg~lz(ymqcNb^_;juL)F #~TCG (hGw=GmJOyur)}nE]y% _DY#D,o;}Mxr|T{%-H=; qrsZ* nv>Em <`x}) uhGFl??PGOX[|Zw%muj)oF:1YH g$* Y7(-qi )o@/~IM/PhkSHaB7C5z~U|K63aNegt'3p)|n&%eR|w5i7W\RO3;9D/Fpv_-5^ *XX,9V6B8rd_>pxJl:>-\ %oeGPlTD< Q69 aftNz^Yx7 `dfq ?]H*s>l  !> 3s8>wZI"kZ,xN07G.:K{ i{.}r\  Q,O?ugNoB( hI{{v9OXuJShA"E L%k ?u(*3d;f2D'W*we k~z)xu#xp' /7KVGsC =)N{|5\I&z (+ J~{%|M>Rn5Qp7msj 2*}]RiP4jezTmF]keHRt<D)*bW`h D4 @OCH,1&a S4CzSVa/7^/&m1*+h hM0hj#9E okDynjDt. yJFg J[fA)#!|2:I6LPIv:D58,4Ct &yd2 5fBWBKS3-![HSy)^29a<7p##M8y(FA hMN k [6Z+R.[# aC8tV*x7dHBi G:i4i]4#O[`\R&N [YK%sU^8rg wSF ZA*~"W /Qn5-5:Me b@w>v(., %0m#fV<99h 5; Dt *Vns1iCAO0zKj@{j% \c*gK.!kt>]Q^@ wvWBV  Q?|;^ajN]/j?ok zh C=DN{h8MGE}8rE;Q8.PT9x)Q|!4)LbL;/Vpb.J> d]M nk&m(xcL? L/oXpH2DX1gl\_  Z:X@j$q{JQvF-bzX?.: sL '} " b`x0ScKz%k~4<3mW3N*3WuIT_SlTW-  8|s_&4! &jn&S:VYDv)0ttn03 Z-ai}y]R"qu opr 5* ^MoSM7r=}9&qjb&*.2, $ 3fa0 N  ,;#bFk]8P{ba O+'OG* k :"Q7jy t"zBVE }f<v, FH' r:Js( @KS4S9$ L$g#rH  L&+2hwSQ0|l#s ?^k mW%uj%Uw*(%\ `U 5=d!#L O ~e7Dn =J\1uk5tu_dI>\*`1h 6 a b tv1-bl\ K n?p x(Sm$T~-E[e.0CIf8 W?XS fa| ]UdRD &!#Xc1*V d0 `Osqd CQ.:?+ATzh2 Z>|:Av2[*&A] &I'8 |e _N<9 N(r'aZ$U\ m.8`R*7(Z {AI@i W-+] c 4 i x/m P>kH=-Ay EW~g< \7?If[CZJ"(` 7 :An .S%9ZPh 0\FK,f5N#=/H'_ x+ 5 QlD & pge.QS B9"Ybmuc JE%Jhx\S(I*a1\Je+M = &y5=gHwWHK.A4O%dY7_b@{oy +D5d!2*:%6HTJ AE8tn\hO|e{VD^4a{mS&. 5hV.4S)ae@@= Vr V9 |3FoH pv]@NN)I~ZthD)]@['/x! [rA6i s ( Egci^\ PV`lC@+CmwgT!umSW./7/ pj$rJ _ & p=z )xTH{D67gO J>!?If&/%  euc c x 1nh!)dMg{B g)thiUjd%8 $2( b  lֶ} UG g<L8<y2uQc1g? Tsf< 3 {tyc'kd P+y5#oZT,E^ J7s\+.$ E>YW /,YPdt[Y C3ijjG+ d-il]!8-6P%jѨ 8uJB@;T T(6%MqiN2>Aq  J]@A8=dqZ ZNc2o.dsyݑ]/O  No'$' ;Z nTSBz FJ 'E< tTE,r m'c7E < W-\LM{ N rkHg>sg Sb' 2mR wz 5g!.x;yx>&)p 6 'i@NPm1 ; ;v KRY6GsS! @ 1{wF_lk \ 38uBaR/^J #L _Pi!A)*o9gnSe,T A  v / 7!A F 18(/~^ Ywq yN{uB=&4Jcpc_ .N_l';  x%ck<&  t};Gj i}5d3`o"8lL [$$ov^|{ # < D D qi[BhI.mB9D&,Pl^Lfz#l+Q L ! a : ~+"JZ  k%tGw~2_>`xLpe69x)lQx]Al?<* zn  s{giP6 R]^ P_82`1%2SK!red~cHXA'gN0+VV:z )X mel} z BIk ,H~5Ubie<E'b[^{=xLdr$kt!mN _e W3\i   @)v_fRmQ!Q DD.Cg`(PB'@N+x` D,XsRNn% ) #f"mf)w;/|@QvL_*x/z[ J8 p ^G 5t 1"$%o+["zv@?Htg+TzRk`u] .=1uByt p F(D >L>n,w=_o56y_F8Yh1]( tEAnf}`<P2y1) owB)$l7 ThJ|`-6[<B4G3ded bj >T  7kfJBS'ryAgCOO|t.**(:=ES0x4}[y]T y  tz@p\v|_P40+x^ 8zZ. E1];RV9%rNP Z]tA5&?  M W 6<|,\^5d aG,[gR5B"Q$C%< CmW9 ?xx% jBV0, 7 'fg` P1~,RDW ][GzV*6MBZSp >[RDUd7xD =X[T7m}Pt[" 1p( 6u2soD.stnX9;$Z{6 V/U6.YhaQK2B5,)DeP\ YS|`m)4pulUr  K!V 6E#mOK{ +pVeC<@X>E?||b\yR6K+q gDr !3q$ 9n4Vr.E^<mwUTR8#h q:r!bf< H  EvTC j]2 suj>ALlRhKY(#@;cM5=2w bcHX!v?/} S+HmCW@jl+A ZvlGio[z1]P QMPywr "  Vn 1v y 3s"C.GN~ ug-[[+rXj-sva5#R8"{"oF / LSQ\`*{3Oy5+s #-U &P^t>8 O.Kn +   xm w O0szIy?u!b5~+F$Irwpg>[r't[QEj ؗe9H p$, G) U 1 hK 0j2p&m*h -7 cnzaZO*2[= sX;>ƉJ}H$Hء Nk`RN!6|;T o'# 5 jk2 He A%DZa_ALh9!}.cQa &`J#p.zW?چP MaM]b>Q *a%p7y9=h02'-)PN)i'W١,?0 %r 9EX i=P  #Ve^|_Gv5O 5Il".'#J+\)$ @ <^=߬ךo"  4^Eq&wy2 ,I +Ds _Qdz!,aD &9S* G,m~Lmi1iO (| ~4r@B YX C`i* Q8od6 /?E$ (Nj -O B0 y5n\YAv t 3MQ]#-UNFh Ut#6-_m<@ n  X/7~ 3ylq T7/E FhkL]Vt@?GG^4#f 3*  Ze!Xc = PWRZA<j %EU$ m yulK2cAN"3&|'.X/i  w/R}Y ) m(B] K@Pr  0|blhC]by%k#^"Qx> +.,5-!O6K qK 1Z^_zZy ] {8i[a 'h9_$^.^i W[w*)$> D[ou? fb  e%l8+"% ZkC%/} J n3U?jlb*$3~+:MM $T b e &J3%fz4 &  q n 87.3Kl_7 #c :\Z>-m% u$Yv6S^Tso <(O;  %)F(^YF<:E 2@TdRW\l  v d)g9?C[HC y5 M&)C0lBs=q 6 C \(5LL.6  7qc`0XDh\u<?  x=rUjp@s` 9W]ASF!7g r.CO'm'kyXLUqP+64mjMM-rJ6 N> Q ajN#s^dX.:^  ?|yS cM ,R]!NB /z "(VES'}5, s MlDz'L4%qHBxr" !w$&w 5WX %.wd`|NB'6!eSMw 1Sf*zPt/:mY*b=U8qtMQOL( )K $ vk7%cd-gSXJ(eOPqS{7L1}?B1|nRf I+_b[>Aat>zn0UYgII_e^sxM JT]Q0>~vII~3 1'oMf|3.j[R9(Xi`1Jm M l \8QLQW<`f.-4Xm+ w {q%{u5 \YX@a_34iQE#WF]ol/nx604AZ;EnNDR\~_^U 'UO)<~{'W-N4?56jM*aS|?Jjo \PP]x2IOyCR99OXb'N~IJ`JM[Zy4wH,H4- txY^mkxNtiG(R"A, (WO[2-|O5i | 'P &L)Sg;n2t5dXe6nb7q`WJe1uB] -mK;>"p-^E+ay b$,qN`m^ky?j|"jk5l FjGA.oMp  (7v)SAXjnpx!Yfy\/`(]rns*Qm2dn; Z@ Xz/,?e HT>C',=Y0@/~2?:o=&1j$%m\(@hH97TqS= /?F?.d  tqHdrOqypBU)`hC= _?  vSs1NtC0?TCaQ7?R Uy h * -_{:~=2M NY$4c6J s7 /yyLU_4w_r~9;_;%nwJTk"X `d,"f"nCe]8m5Kj|S@S PvUwQt pkS(w_V3rAv w| &pG<0if+ Qz%LZ1m1,47, xev)-T:l[NpF$*kF]^Om;hvu}zA'V1gpi+w%*R\`z:u$7C-1VF=+K?rR0+Bq}"(#^0b7j@]Tdfel{W8gN4tuKO_yucqzm2&O9 !ULV=gZ.~3m?OX F/1kD.0|EG%:>nx;8teRl]66R7n&31TXej-TAdI06n]]o_70j)YF&gr*Jh_~B;.iU/>m y: $qaiTp_qI0@H4֜p )#NQy-C~?4e%8L,/W y$k*2%7 })O&o^b.{4C*95J Rly XZ 0p{s]1 l5ZEya$$}7J "WxBo`||8{toAp,]G$}i,Z  !}R"5s;/ w&^P70~BK(r!WT[i, R$KCV1ez)zx|L"_ST JxAG\Kt8R6]wLq %+1-7uLk8DyCa!|@(@Zh=Pzf<5+jQxK~Zy{SfZz]|6<-Euu1_E`,:y!Uo_y 2#<OK[c ` $X?:Mf H/:EyZZ_Q;V*%zgW~WbU\s V6Doc'eKr(p?@u}Cm$$y?ixv/]ec nW;E F }H%r`+@\N7Vj~KeEo> H<D[h "J (Z4Lv^A.5}FbxhAfD1w7 o^?$ zrug`9O7qbEX9//]="4En;) mUh~S%3D8-V[Ox.j'/lX( \R S{Z^oXvuR a7km|RzpKIIQWm+Fzui  Z%X~9xi0Cp3u[f]4{ qx2([muL=,HCiSFz]V /1X?5xM@6$0J<K~}yNT\>PSgC,K31[qENF3~tpI`:=oGB_C[fN<Uh|ZjIp p#RroPA\vh)(=W/ Y!:hoZ0DJV PL8^zL\-f'$)9sjl{ht-/6HRW>E?eM(m=+}yndWq<*>T6uV 5 gPF*|&5\`Q_9o>t  =|Sq!7*b7 o 1N/;<xz}ETe *^jfKDCO+t&T,' 0v e;AZ{j8U  ]Jpma_(.NWm0D'K ~` \:6qcEVr\G_P X?u$)m?W,36\M20fq$L{ea@` 5K3,{*9 _ ,{_]MH"/5N=%NI]ev(h+5VkkmZ "Gpu9W}u_K 2 Kd-&iEwr]M=x?}n~sFlh-DB~S7e {nIx*V7I(/= 1|5<jh}t @38[NN8 G{[qd6_MOGrN'kWkddXX5Evh kp ,tW-.Rj =O/HW4sK+Ej)strKPE 4|A2CCfIyQ h9~]7G9?)tU(TE8Xis][r::r3ZWWf}uc.^|sJQlCV&/R_ *j`:+!8-+E~%e=8.l b.NH@Ko24,hggE/#c5y"2H:xGb=C@bVuI9KpO]C3&g8v)}Lx&mFNR mfpn2%=:nP)9#]M02)mB4 ]qbv(2n.6kA:Tg7L]GG~;CO0bA+"9s# ;Nz 02Ba[pP%LRXqV&-&YWHKlQ%C6:@[ :kBzH)6b2(.w0qP5U`m41Uy n1+Jy2@ 9A;Q+$ CZA`&mjZc465yn[-nelIb{`RR.6}[0;9~I@^ _1X_jZ$OJc:CZ=0Fs.Y b<-i_H*J+k|?(/SQRsM10Gd=-_TH2UDVq^p ? sA#sxysZ n]Z 4dJ`{` *   % ^Sp j}|ru$0~w FE]!?]S13B[' NNb VV29)etV`x7~v`WK\~\2#! u=ueluw$g _ ( u+1M~LE34@wB0e\US|!q_cSBx1D)/1I ? XKB=uF9t}hPxFq6k;-ym(yLI.d.Jm9h2y&.ON;T@jaJ36 iQ "5z1lZ';t@ EQq|:-^]8(' LUG!HZ5V Ei6U M)-T,y.RXATjW]6c]*$o8>2o`.6 7BbH+E' RE{Q'+Efzk[>eZN60gB[9p3l=YP4 S,B]U]2/y {R97 p AlYb< ~{ b=]$7 @_&k 2L 9{hN]* dH iXOC{TU5[ 4=WM N e ^\{O\y7P0TAS<i1j*`5_9 AUWP Fc'eRov 3"/r WrJ'u[2'.uSeFY.o  @r%^F4]_M'.(huII;@kjev O+L ~JwDvY!J7mDWwzoaT>L=(p:W,$2U+xwxb/s$ X ) =O l.FH?tNro)yylhXkjlvx#LSi_1tz*8 F W J,BGG"{3@#C_UE 5OX<0\LaB)QWyB\X g o ,}$[`.QJ [~$Z*`j~o#C4@sBqtBL"qwct'W4L}T(:@  Y njf^ 5xk%N1#(L3D2h4c;F"?'E}O}O ,:fy4UtP+'  fN?vW>j$$71]1ZkIlp"COmb@1W>W'D~pMYe K> g6Gbt 0mjk0&brrt!6C-Lg7_Cr52k9Oi?c18]74b2r!/D3!}0VC'@b3>j : .!{i5Y^s".8 2tg`B.W ];kFK(EX$]u+IRb2BmM;O>i{/KB$ .*#,($I80t:*dQ`qf, ?  p {GHa#C{*Yz?T0>a"l@6(gl?KeG]x/hE~ +3S2PjI@JMEKl:?r5K5q?7#|e? tQPQnD,}gxPr,}=qQa X^Wu6DeYW']tV K?bwB'R%sP\g[6?rV]+U&X<iI9d2i$~,20_N%|\]c tw*t0py]e- HRi('Z<7 %b.a!`u?cci {4%jQ'k+~m^-&L\6u:Z/Z`ke kp5^0{-%G"QbCI} _g|Q4To"3^A5V2 AOS&ju^zy_S\usrpF8D3rK1ANgc"UbGDAit9yqVwt{otTM+inGZ|9U 1 "<??COs}}s?VT|nj0~^!f -h5}NuU@riEM5srr`wb7q$%udJLE630#] &!Kqif fa@(~*G j_Y+dY:_f/])eH)1wn[Tu1M"| SNB6Wi>3qunxGGpQE O:UL wJ)H8Y+;PTooDN^GY Eaz dHB3/}uu(sF $%LfOk; (S#k}P1x!z* /Wffm3~]Uew2;/U~>|Dwe;gFng-=v} ?DPeKa3I6(\!EjZ@6jxFtHh'=u2aYr'8-MI`XaXWn`] /^A-Dh@xG=USxnBe%'`ftYpss.la,pw.m%5$Z)?h`Bv3{Ap$ ao0 V!94s*yo<6n~[ +q?V(;ar7qoIJ"q4 d*d3,MrRaf(LN0S`L^vp R{( 9;!*/#y[ J /Q=0"2TCTf/b Eb*5KJC\Hh_7_(QOfvO[yd][0"ZG)Vxro2*Uuy H. P3\#hUpdUW>1[ _@`b4#%mw0b69f;}+qgvyOZHF{qi,F dB&W (-[2: @PuQ6}5C+FM@82c=x=,{I4So 3Bys0Q]5!! o)>R{cukLMZ**N*\ c4L9*pYT`mB#I ?aw\ 2 BXdh.U<;|\^|Kpfi^c0 9NA?*=aZ({U)t?iO.Kk\+Rg"V&jO(}joeiHtCSL%bclSJE6u}CE}zUi : s/>x.D:DY8l0QitS:c!5nC3M8N= 37i\>}V OM:58a</DG+P)N,SfMQTa1PLzz wz2>PAJ`HC7 h=~A`vxEzxRU_ q  Qs4j;1qz"Q9] YJqF7#T"t=;}@Jk0B5*B|EN: yy!hyPtE7iix#P%g  PKya ;GH2sqvVg(_glBK.m( u6Q1SXxU3-o:6 MaDK#Hq Q.%Yj&]a6%h_rZk]O|lgu @5 3vR^;3U5]\H~<86v9EsJ 2+lGA]=b@l#cI.Vdj|ds{oGiS_'={P,x[2$by)A>m  )R lsRhz7Cu1|)hBp>uHDZPaU>L<9+f*eY^55HcnlJY~~T^XzG2)%m zdGsJ#; Ir]q rKv |e19=s@ooM"LYST~AMX'N 8Q.6[ v)|)f?rp9S]{[[+X7UzcNdJD> D B0R/e3A[S3gM13 TgY7T"tY@@+j&3y$g -7Ge8"MB{mIC@1PZ.%h^.&:s3l+sF '.4,(`kw 0g2L  *GAM%uryJbAZl2U`0\k  CLf rn"{uM7b5Hk 45k4S k6K1xG}X@h ounA-9?P7) ^]H*t|GjtJO 0:ptbl\.h";b@ 41 Z>@wo+\ [#5J"I1{UQ+htz%[D2 m[8 :]Mk'#Rw&2s]%n]v^1doe}WN=,}p^4DFBHsY {ul>[~T)'ko.a>.F^MRh+5pDmCfGgaH V &46H"2$nPuQeGU`l{htocx)}r^HaiJ9nL5 aMH,i;guQb>eexsdiE)X4%bRKWtnBPg9|V3 e9.W/0 J)>{auLi]OTFnF9sbMdFhj'chl ]d>>\Hr:VMivu=_Xy[QjcQ3GGX%2HfdD}`'!9cpNUB0\dFwa j\`i`3!nCS96|D'4V- c e)N \ &itUWJo {s;4gX%lR IpZ)I2-dfB :e&wd-C(74aOcYt[q"JGS0VJ{YX JuDxbq;c 50wYPU[?<UB'~c !'9FHrVM?: C(G S&cat e v)`{ib&R2 v0[2~ B[g-!* 4\^&UCI<<K`rk X3 ]xH9:<U!;2?.iM>? F 2}i[ 1Zl 3 ` D>s[c rsbgm`YXv_O=#z_iVi$)T w )RRF[ peWdv(Jk  4) l l js[B3:H T)"qgo_L@ SRV[< -\NI5 K3WK >|l` .X 'B   6hZmC)?O8a7J:>>|G^XP@E@ Sx ~"Bi/^0 EI>9,< M//]m9X d c;y.o$>6J us 6GLYR?@& "= 3$%B`F !)]"L  7'Cx R}~ ]FDHM/$&4\$ 'S0a7,#*"h s7.C|" N_ |X@d=  <IRO(uec 6Q #]:51$$ kH$J9evB>  P}^#+02U*n  =1N1R' D3H"5O#; =0$#}SK5 Nf0SVjV  .pZw*ARD{t b;D-qAFw5Od |dr;[_N +6FocRN4N~'x|UE|22@= ?s~oKNK/HZ' 20-} .BMo"$JO<"Qq2whY?G]1PN+k ];y+)n\I c n+PRdH{l;qk;YM{'Um*^G 0K6@Hf?BwuZ I@)4I  ^vf ZY6$ Z n?J&mvrB}Q| "->B8uA*^8];]^ 0X4|f  PrvMK2 $:t?gk}^ +,I,@t5lKakL>{(IJ$~q\?&( t&o6,5p4>/)Eyyi"ab d5OJ!mLVuGzE{;'3<+aRpo#Ydpsl0Kz,( e!y OQyj<]r-oO] KvQ II D[4&6eov*l<`AShu +BzQ tw:DBME 1X< 7a1D7] & 7](^ N ~_ Ch < kI(N6^@:r~$u~sy7:)~d@%1K {8 a7>OnUE q(X &R 7 , rupsvm`w\ 6&0*_ 5>dr IT3TDj Z L/ qo;#,=B.s^I'=2. DouFV" Q:^p4*$r2Ta-~} v20+_wp ,A,H3!}nA HR8u AQ>?O&>Y' TM$ 6X "%*9'JuHQx,?th, & \>-aU<8{=|3 ' S->)%?&tr@*'8'SJ DHp$  >n 7].!{uOflr-^{7[-3b o}~K?Abyos 0; Bb 1 ~L0FMNZU[IDmk &WrhENy"/jY[8(!g   z h _ ~4S> :o"srP-PD~G y ,& pOgEv5x0n6v1 MA  %  Mff ggPs$. g9*WC LrMK8sX v8>BfT=Kk7z : 7 M" b  2"jP).RinSZ]wl X TNGEoVJ*>C|\ p h ( JVW~JCe^z $.ArD}5Y  N >D <  .7QNZ,'_-II[u)'Z zmD{fZe 1W rB 6 A T v@2H3IjGHbO d v6 = QS};MqE =QM qC  lOB:+k l b A0<5:'BesfB my I )W`S NR[A^AKf!q0s_fIc y ( *@|&K;ORI W/ #;k @ 9)%)cxL3h I  4 *C!CZk9&mVM 2 } $%+*[#5 &)M HH6y!<  .&[#  ;4}D)[#nFQO& . Yc9AqhDQ1 <'O?d qq^2 c)!gF;@n9a34_I : 4(wRZ4w;fFHQ_  "^1{KqqJgAmzH3 lDH kkvn`0&Re*0 Ne81 $[TW~U}\'p6GEi40o+|1UI acG!aT["0 }C2_N]m)j"r"-9jul_|D%v9b )#z4d"u9Jw&V[%`[hi%gsZHb PV>HkF>J W3g &RlJZkWs|*, x{[q\"OV9zlnS _F:oT65a0*{C^dtXJhK!L23 'A2Ph]bD#p--"-@_4`kdA;;""(Y{6BWjY!`IswhT@!";FyP<"WG?3.^H^ wz L-6O&q:p t|xRPhxs_5rP-$3/E7G YF k c" !&i}a!$=O m|G`*1b^HL7_f3Dim4(b e` G5 0qvx^ H^q5'`hvqT7HE H }4uo^Y,%m_l]HQ S Pv) !V^dm:]hX-d9 V$ G e*+NhO "d &S-FW:+* 4tU1h{^k,Y9 A%D^kiPr7Lb  _Q X 2Jl9@ Fn55[-A&m)AtKUn@U#"hRB{[Ii< x/J_HZc;@YMjIMX[&?a94SEkEt^[*S-H-`w-L <r8~$2^a:LV)S.%f' 8c1_@  o:sl:'*cdwhpb/+HR^o [ hIS%6R0ML{]e:B XNW S1]/zR \c)xM|b|>c+BuVN   .>I>xU%Tf)lGew=B'~CBa`x=(MMg (4!Y%o ; bE9C/n}o@tKAHa"5i)#1 ;gT (%0OZ@bLE;IV G.!>$  sl J W@%/:kKIAPb.?zRteb_$kp3S>* t:W q6g iGW}8A@ RPv\d0acDr3{ZQ(u}NRQyp2DmSfpueB$l/Y@k='L_=Ed`0Szp?c "0hcI #Wpl"*2 Y fa 'j`:RL?n8~3XRe_e<w{ g^/foH&gkW3`%+floFvV$ZH}kx.8t)Zg}20{<<qTp'WL`em@b1[=!sEN>5I#vRAgh,3gp=dl\M`Ps_? EtQ %O[g J F@.Nc 4[7]+XMa^{j{qs0% K>GtHeTl4   KR w7' {NSMDTz*g7h7aZjM5t3)Ac)6Col6 K o 4GZ :?w2vO$lnNtnrjd189 Dl% !b5BDe"Aoq_=ksnt`,cpxsw~W (yO WE3?A h"!O# iAT FjG:!pBoch MZPe  tWNm(^LaH%+]o$PS!@.MR7Q-z#$DML{hN#  s w4dOuA6en<d;ZsE: L=RnE9 #y6X1 fC5  X ! 2 pu jW#z'q&kvvE*(]Z  o :} BM1L1334C 5'j7h'{fG>0pKuc0&^G z zsT@[ Q^seC1 W-k Wvl rWe.EOott{B:R-"To  ii B -PH^# . |XA lw;ECnW T ] x=^7BZR d9G2 s  U#) & 3*fF$_u%  z'NRu6 (Kx8~;܉׷<o4R+HyI ~ J6\ }\'${ 8L.'D + \qob D2v EIujA9 #!O7w$ O^\]_ p1 C0}IE | StOIN6_"b+;L B.7f{ j!u NT:b x!L}QAIj)[pI,_Bp,bdQ5. qW 8a D *^V0B ]C_?=,&6K|S <\pf:Xt,X H + _=JN}Jh|IJt =?.<w""#KLtY~tNv}idNc Kr~^KamF}YE=BH{_M(e?l  %F"?KC4SOgIMSLkXa'w:g<4Y;2J+Rc68_V"UX2/*%`BWq8` #':0xs7 hdO v{a 3%d _ ,kZ ] S5)N~!b?xLod>>g"a3U_ z5~+%\Rg #eWA( z-p6W< v{l:& 6 7552t 70J^G&(;N _xkLd%' ( {tp #SI)8|L89L5jBrp I^ 4w<b  3Yy*a/=x&!#v8w^-v KTWy ?3,B>r7YxL.?PWp*#}mS v/q;BkT2DH *tWH<k$@~S \Eh yB.GO  Lm[u O3w[L2.a aE } a 'I)s ,V |k ;T}-sA TabI A!d5ivU|Ze3>j4rr4U;F' 4K Qhb+U?0U%zy[!m\A  jIZV:#K/tjLq)KD =k" '*|?mk:Z{]95)dB)PldV?nbz lA^V ]K/:C:r`]3[('xjs2!% gy uq cIx# apy>c1 _nq1%} D5u88 lW/OxcvBj/YCO` n~/l)]N{FJu`eNr >zI)1du )/mo yy!wYJ2TKL`$ _9@$4"MIRw~2)HydkO9]g'Vhs >asqB;J0\9_0axp {V [y7OX vq)ji+*@M]&bO0r)sI!F.\<Lz= #2_ ZZSZ?=_3~Q/iY6 N g }Bvzw2~4LWTWBMv=r/Q %cd SHySvK(}S0[a B GuJ%H1o)w2f%XQ Dsr.Yn~5m$;.zjB, }&7 4 Pj^ / | .ERJ 4m26w}.K3g:{< LQq"0cLXgv:#mQbA}o+i%GqX3 :n !vn -5x!<:O\2 7gt\=?* \+ozffvA\@^ o : |d_Ns]N]T/Y6dF Mk6?Fm,)Q/dp9$@Gbp3~k|? _'/L;0E]=T; mQYwY[F^"@277\ cV&<(5 Qeh"#'trt* 22>4d~*^./l03rs pqr#"e?iBtr>N[yp``alg\|=g3|h:T(mvnu5>Sk#T))D   F@ioR9zMf3/`U#p>_nsZ8'uv\mdiz;ZZLw,_S ? "$ bR)CGg/<'$A`^hIq2 BWk>1:eyU!\; F(3/]mSJ3v qYMAx$h:HdPB PV5Hv)[WqCntr+07 s!'r4Wy( x3;Y3pd]Q 2t* BV-v }.rQ1La\<l 92s6~[ kYK  4JPFej m=ZB'ndU4n a gD'O[hqjd$yKj}Z]R 8K"yFKr. <vmu) D#VTZ6 @" " #m2!n|Ux3 m /_$IK; wHT( D/3  4 0M4 h ehW$4]0 *   f$0 X#y G W{' dR5T'r+ TG!(r+LBb[lo^ zfGW] I R l]kc 5R! |e[ #U3(|ICk'6R1y?tFv[/O?lji!NfolW|duWDTg:j9x|Vqhb ) 4^:jE etGV#!-G 2^_3F 031 ,wP P4wqAr(HA:s5'k?.#S! h [>ky= !iu]Q:3n.gx16}$ {OFJu$ B v-\ 6 N, L  lNm<GVL B+a;W}L 8 }lLVbAVt {  @lbT q#KLgOUR l(T.*tRt_ ^#ziwe n. -<R $dn &*cc4Vtt%lSK)b=m:, !>6<]* #:$~|@Y f 6' Ln:s= Fmx 1gC)uvaDLw/-S05=?![[K*J k? M !M^ nm\B ]L@ &MT v)GT |u^:I=gg rw(8n!`^O,SJL#}X]</V,I]zlO $he=;Q4Bgq:n- =%Lgp()8 g b RFC 72acdNoE< ?HL$ 0 V+>:~;7Wx =! 3Nnt uz  m0l:yw]<< "A_ !;IcG%A2@D3hF+>  w7&pqhL  M7C3Vi ^"*aY  2#:DX99FX#wC8M|\h M?:#]EW2,p}\XJJ7 Tip_ =[NV:"L4E?1@|%K'm<5rS!,6o{EE6Z65}p{ #!qo>*|Dr-JBDg5VpPT4R0\O,L`\b ]V&P(^+\GV'rdv wWoT\Z).2#=><yMX0|k@^^_J~9>I#>YLm!Z([9-_lDD`U>EV1HZr' |G7&Z{%GPh~-+, +6h\6)t7}]XbD.j3X5s7TU0B6Q:XN7-4^2d?Xmy|S PuBQ\Gv_c.-{%yt L(;2 :J8d)v:1.=i3]]w> qYJ_>z+A1.'cTn4M12He(?r\aEx6E3<x%6;S@^<-w]DK%,3CwIGKGg 7z0  CoX_b(bdM= c>_El& Ddn"U]UC7UIdut"LrU%KlRi40{2nmJA]yLp $M6J}//'g y=a'%q|= S/H`GyCE)[J_-Hl$wN4x 9vJ43+eKK:*!Kf<e=ft,QN IuA~.pp2Osq#Y6]MQ$#jVNO2Ogy&'T@C8]`]SeoCw`0O0(t]1"R*84f~{ ntKzIm umMC:Qfb >cf;Ei $i%Fko;|~T)F7uCb]` },ec~We`(.9k^%0s3y otI ?QU1:Pm?0toz`4!Xk >"WEZ<3zk>S "@g:&,I3X}<O0 :s_0fp='"+O-|fuO[MQqGNDmrWt_S2;e#ym2Z@fF?5/MUP>SyU~TS@DDS g H 5,TfxYOyHV#es%[Y@&Cha 4|<vP^ko.~{]k;kDYN r:b#Cmeqn>r<. 3 g3+s+u'k~$ f ,  W-2^=+/hXUO!h)Qy'|;f#fZ|K~i'DS CL,GR2^ut"Z#][P-L7Ob9J C" $a ""Sx%!vXBLth+x1|UZO#b!!;Bi l_R5oV DPVOyh&SOw)33nuKcTA$.r@w W&7#Mc[ cE^$Q<vO  &m- !8j'zQ a p;kj o*^=?x@M%GS(dqK6f%)`U `1h4;O3/|?5kLNwL"Bu bl K>yA3}cfj0p*Z~!rA)=7'f87oqZP[*>bi~ ] LX t_5^q2(aw 'Dx_E{D : |R6O#{[%K/I Q-` (e;w6JuOgAHwjN:Z\~'=&n   <uZ3s6+CJ%-smXY^!  A$9KIIdRo#Eh,^' w. #aC@7B~o^tOv4;.weE9UB"[@^f!.XCS,8!  !lM# "bk+*uszDWHOb_)?ygDlS0> i  x 3q@C4Pt;||JKCst 61AZxn)df5y{0a 5LuV>b5  3 mX[k  qm V2i6_viZb3~S }  *gO Ws/a^7\ 19^' sq?g b/~n7-)rmooj[ Z_ G ~n{`r;~bj>9 \A w FnlB!xIj6:9U=JO E"D + EX_qCq NkAP O(kF :Vh"8iEU v6Ga:T)M, g5omYGd61\\Jz:6PAB{XYZ !DdWZ"@SkBBj1{3;Ru$`is *.h6@fEv*u]VHf abQrk1(C t\f]" U ] +l~w+j bfp}/P  t ,2h_R9+xFd] h_MeMM- ~DUjJRTU-,hANU u 4rBK rbJ'DM#X}"K%# Sh/}/d|\a`#1Gc"so{a ~pxQ&&%6bhk'kA]^2@V!n0|6lV/|]Hu$O%6muM8:1.&sX9K DL7 * tW3QW.Ee D(0 P9Xu} 1n@s9V8[[} .=DWg,02uON3Q o_ gcDw$E}j[BP}mY Nf9?^Fiw 78 ^/2X)l r+:bLP1eEk~uU@]77D+6'l`eUsh,*(fo: Tw^lQ(5KvlQv ;I,A,cI cfjnaX!-'%%TW54QaD383r@W _xj,*+F-%qNnX.P%'\NO@==IdQ$=0yDQR\~ 2C[" ,md|8f fqZ$0 AiB, KI".u(G(x v\~ I30$=(>H#|?NbYg08`eV`]`"w0.NsvB 74a XHs3 %@]dj ls>d/O?!V#V_.$qt~n;36*OBC*\t  #SjFw sk/ib NN7uGD~ k: 4+F[MVp7(g&<Jy!7#  w5kxN5;0%LPPD{WfaF%TPq7AXT#vbs 9&\:OSDV.Nwb5L2LFUSYkBu_#&O WBWtj[*C!hci$7w#"zeI 5C>_EK,Ibb&U?'x]!!)  _l5b |zqQ{=<z"\wp,$ ]wGCGSoh)L)oO~8.>z%[*I: Fs!K-c6NW[wtOe4z]"D`_kFL qsr r)BNwcHV6;lO| !%1CGSp&1z-R6Z`t,QTHe)U=yh&q|I1ew$v3MJUp g m4Z^YxZ^ RYDrqa?:| *23a!fD8Fqu8r=g}1_O!(GYN 4vXJVymFg87:i@?6OXso6Rh|APgz#gvI4Dn6MRBj \j|O%i?'DM]} XC v7K6YPytkU|PQb&p#`=5PUZdN 5,PBDrO'F*l#B,n#)?Vm7hS1.k aOfrTDhzh- ce[M.'1I ,pd><pwV&K$ YJk:N~RyOq:cJ>p:{K DY')2.i;8C]E^^bGn"Y'xa$G 91b : +L:c_l/-fhHru9 hP3q|jjMSj6,%&~kiwYzizm+mtm|jpr ")IT`W*0|fsZrnzl[|~?18svH)h^a7[=>" %k`jnwZynUid``_^{FPFr`J}f' $0_`W4BaOI3WfeYszirQoF]O-BRb 5bERW6%.& vvdKm{f{QMimVKM/|Sf{b7tmz_eLKl+,6^J:xV||ysoprtqJ&UO?WK3~ZQKtR7/v)s&+L6rX7*eWlXa3|>2|CC/Xj1C`J I$fj I aktBhzl@[M|v8 @9?4qbb,vP: JjddW'D6z%{|ub}NxwV UDUe'*9>bj~3 fF h[9Q~KQNOF$R gB8(<&64~_5gGEtydz4;dtY!9lLDg4 2 >~s?mA_ mB@ iV8l`{b7<'~_&S ^0f*V 3Mf]sKx!nTi;!"s%KJ[fhL# lk#[tfA<. , Ye^WHTI%P}Z R|qj$>2%0tRq^(I%O1 {*{WW 6SZ'4-DVM  Ardl=cZ>t|$-*r } PU&%_Ncl`unsB  o I 8?N@W|i0{ec.)p K7:2s4w# )# sV EU"Cnhpz3 )IV/Mm3P(2eY,(  T3}JMyoFH y{<}_oH3 <&LG|#p@? Kk)1 p{- UEwfe #= <+ZJ  :j#--g $V`aAO28OnIk7/:__E&7& $H, >1TcS/7TOP %5\L 1LrH} 7anc4#,x%*e_n1> \l;^g)ds%x@\AJcr!3^H8B N ~ taNKzmv}W"B9-= [ 4G\rJ/oj pjYP;'LL'mrkhR:!I)+FLUR>s^"{$+#6&bREKX 5ti9jJY&0HTeHB(.H/NE wVo5+gzIP 7bIOl ] OH|%wBoUW?6Oa L8eV]FoQs++Z 0XE,$"N 4! E 0-pX8H$ U|XJq}W: ,_;v> [@*\ o0 "5Yldl; @e| 35YSQ~Bn5xZ9 WbY;L g\ ;J/?#N7YI<oBRY6Rd"1MY; !tz{_)7- %15r0` u -p/#{K aJp*P^}5ca G1V  ]0]ycP:{,f|+B!~uS lOXDv1fp\N\pM&:M!4 u8^|b@L:R(A% Hn 0Z  &RR7+ -|]J/H_fb+{FBG  T8c  ihxB uW\q+PrX?RoX= [1nOq5 (_;z~,ZiCs@ D -vRS.hZe:~>U=~a=VK^  j>= HmHAkK8jh*1_=9:DT [E UCrt |`gIh q5 :.(vjb U6{9 M _ A M<1ka&3h>;-TGkcz1:H_RA8 w CnO~ey{ch'Z3 55 6Wq#T<5wdtkZj0U K R+2~] 8'qdA&|ab;ug8r/AX  )hRM l;<.L{e W_2 ; ZG_jYSNoN//} {},a${ZUo  JIi7;4gK(C`fcU~DUd  M3H <{QG46>B#j`nD )7 i=S."T6}v tao.m"m=Z\TcE H5j,*,`t [=n%t0p4 b  E;O4P`;q'c[k ;{D24Hi Xc `OXw9F:+w8nUk!+- LF RJ i]7kJH0vRWKRW$x="Z@;A|D9x{H)!^q(pitg@|  3K.=TX'(ham\W)c % k)lNb%`Z`j|,N%HSetj! h > A1[kR^BPyy4b]J5z:e1&@#"=a=U;=.05EH]qfp0"8CS#X|2-SS({ [^aA31D+w^g 6' 4 =\0M+)shEBO6}pliVEFtKluEz`64MxA1# dHZ}oj";%>Bf' De#1}W_n.6AiHp,9 ;<=G\'k [hy^**l7K#- qv:VTO#F!F X)3U,\~'b+ ]UHlrY_BK8eVZ+Dg6Ljh7=_ S1q@1~ihWr+u6H22F<m9"GYT u FxQrj1kQb>F{0*1RW2G96Sz~*qbKRxcL}6/16@ Q0zL0sO&/J./UF<Bi,sZTb*^iWcxQQhe87 1>GRRCr 1GI|{ Mq<h?ShXw;X55s^J)cQHU[c eLeZx\kQxlQ!Q+^I&/YS;sw{$x2k 8Kmk}`pEvYq$'7BJ7>cfPxG59=naG +Qmb&t"0GP?ak2rn> ]Q|4FVIKS&I5%mm#u,j CPHHdR6ReK6zJs5c+a5RT xgn$2:8: JRI}leuG?/YDH}]l2Ol_P$'Z~x4\Y~\9q'C[XxdL4MR n iB s x;}|u'(c j"f'{c%d }[ ) / Z M;{eU_bPyj,g(35f>KgcH &,:? TK p'L?   "X_#Ff^tlY^ttajt nZ#sm\uQwA j   l 4I8caVI|mY+ S6]A,#/St?gyKG"7zxkf_U mYT ^ Cw`KozxVf R 4R#!PuQ1N J W  *xg|mxlIb  2MXoug< XM, +NXdgvH ?X *8x^tVV;(6 tf 5 :}u o}D 2`;*W $[d+DIE[3@D(hrzA[fG*($ t% ' yMnmv C |' B8UN5  k&y5D-ZlB{S]8,1(Ivr4N !<3(brw}ONjX#; } iq(Zp{h`ts$n$~2B ?;IJnw#)fg8A.u-zELkc!*tytxdy%- ah HgU 6L|iU>Zi{:ae[Jf:^fCH9(]r##) D|i*Z0[Z-aJE {|rM36e=Me'2DPP#cJY2q$U .l$?+HxRp2Yw`z!TEcE %4'EU`Em?i+e+QS=gC"5 Ji! WvJhdxLw_i1>>]T*e5ca P(b&eSDlmV&Qg([pqBN=JAf19$;R#$ 1N7"_x%)P(d#EW')vvt?Zq= x E9?FvZb-3 bB _  fcjfcYs5 EJy}-Esd}5rY c #x)~7M # e#fUV^Vw{^H#<`}R6.;y[ 4VL#doy ;/o`Vx Slt!Q`O!NZxZKcbH|laPaD{^qi9K}<S$)8g%dY1XMY5SRKl\KzW;z"?XoC6|3y.V0sq"p,~ DHG9>M8h &*&cF(u%D9S1^AQm9M4]6_c\qrDqR"2 wl=?#g" jF*#DM6PIqdyO_eC,hW`Itu~q lrFD IV //b &*3 "yPw`UuPIPJevmH({bj:E<[x<v$_'GLzJrbR\hr#b<}CfRZ}fLqVgvtupsC2}Zf#=ig1pQ)tLPsLkhxHVF<qGB QHj7KCK2?|`1<!fJC"ay_td~ONh[]]9:*]db BK D)A=mX}U^vi|zx}Srjw&S+doTUF21c;[U~#=Y$G{&R/:K?NT'+\S&b;_1tD\V$ vz} #MXYN?gl&KysIX! or8  Goz9/edUa_ 3`( Re6-Ex:#'\ ZW t5s/}\SJ d P$<M z3^eNel' s7\Vz;Y<  iI\0DJsO7Fn4mX'#J 0EFE;481-LF< 8'DR ,  1J"c,+01}e $X,/auF 9=-># Y_Jz   k|T )$nH]9 B-sZ|>m3)lO9$[E U61 B(n\$-@QvKNFt?UNF /B1{S(q7/J _t $   [-e=44 M=,NZ9)5l Z?WwHp[@,Qa+{hzvp%p .4  <Gid+Mp0pBKAP}5 4G%@^I ~gGAzo?0   ,9P KcE[`=T7$nvxReZpN zK??^NaD|BE_^Wd " x Zgkwj7Cc|q(#kX=8r1\LeKc()>rP%XF[ P% } Y 2 26%qEoKg9jsA0>"-?,sPosK`JwxJ7$o474p#(B ;J >]cnr erGGZ`nEx8k^D LX`uM;PX \[, - G FV] DRA lE%Ug;sPuHuoZ TI reL9gQy-q17 (V { M ) pylqRZ`NNV4}\;vq 16oR{*ha67Q  uClDGENH%]Yxy&2K|e%a +HAzm2 \Qr  0 fZ aFvZZB9?(<)>OFP`VhI]Ye` ]   dP.}g"g: )F<aFT,q +OA+w]J Q9CT A\Ah ExB7VCRm)vXJ)xL9;;&JAB.RUeX Fz(h/V*=sg(Qik~ ]4_0@]=&#mR3HY^_z3#SYCd#^W ^ :kQaG92j;A (F@ 5;8{dFGte)3PGc j |' rZ]4Q>K)bK=BpL$GM=EGSBZ~zn:Rzt uD=/p!_qEs!y v,,nfUrc*4(/pgHx p)?Aj`<EWa:>)NB`Idel? @iv34vz.OD%FZ8R5k1P+/d ->%{.],/B?~!l>T)I+)=+ l6|;A 7HR~ N pI }O ?   8 ^)^z@Yj(b2#5/AE?x%b$^gO](v(VV DR^ksWV^Vz)EW+imyZ)%HZ9zZ/L"q16`X=}]J%aKY e`,N%Og|fKyuckIE=d:lj5:[NN7%,yN>Daik"mW"z(+6F+($[|/PW{f'2qMy6&Brlcai#*B&'{r{Sh5O .CIRYkLSC\3~){ZJqA%VnYc) q)tHWG}CQtZThhmD"vV$:NW3%bi/=!t/t)6$#l;-' q58,+g<{jq//:BIuhSTy*(?Yy!,f.G2;YwfcYK+o#MguV9iEh2'D@/:m7<]d~.brqr5Fdvm_{,N/Hz%L(m: Ue(J^*uFFH:y iMtWR Qp~!krV U;?bPGGjt\ "i\wc7S&-U,zrckS\;/ OY V| Js l Jm+?eEMh}?XD<^r(Sl, _ Yh ^-%cp)%z!ivj(1X,q: FTV|Yl4 `)Vmq/ )d!1;  <h mM\t o5%X GW&.dj6 !RXOP ~g-/" Bhvt  yslmOQ"XD LB,xe rqzyHX;w4&R '&=w o\*f>8/p4IMFTNI  [uVYW4 trZ%Bu{F"Mx"Utix:'A=|2nxL(CVAtBNeQ4w {f'1+%Q1~!(3O5as &~*1XZ[1YEM[`!p n7c ^H"y~O @s hn oJsl z| %^5prNC/_)iC!pS(\9+3iW*  r% s  zP(%.\^r]NN9N`KcgeT@9S2;|l( #81fW uG" L1cr.H6*xVR8T] ' ' M FdY dJyGx#hVT5"HT2K~3h/c!gb F*ut99y0T u=h /|| fDP9d.zA3{+9hoDZ#_.@9 "@#Ga^=k>c< *KWNu ~u"A`z~/W*\S_F llP8dq j zD 7Ep$fdpg9MlxcF. a# D Eyt F"<@<P yjny>,&/#uGO&(w/\57W|SiqK 3 )5FS#Dxw=N77u0&-*B}[q#\:: UOoWm0wLu\_c" !&4/{)c _#:+x;P,h1 &]Af; !K%D^~R%^x6QGC}utJd$F2cC&J}`g+%lUKVP31TA+zz}B3i0G`[Ra#js*OPGPP Pvx(qT@dz-bw0^( khgN*2(FQM $xrqYon]5 _P/(UZ/aBk6* J y7Ygb' 76Xb>R*'~`m[ A5D|$Ec C72qS$ !x}#<6o^]$ o-2fSEI]s z<7nFc  Y7xs$7 Uxm_CV~k9HX%t&D1  U\| 55i'JeUq\_/.br,XdQ  uA-4)hG{l 2?Cq1g i%Uy I d52 X ; {cDN @l v(%rU'$) d!pmu"zW(fb)N K\ q6]Lr Yi21L9 + Ed59bC [-!`sJ=<" hZ5m K*s   QqXP JZ/P8\Rw)yWP~DSl !Rv)O6=} B`Mq6 d+ q 9#T  4 q uh6G"&. K>`@fYI<b*KEV,&'D*YAh ?nE0> } %jF6q]+wqa>^\2f6V^!Do6?c)7yO7@ $+E$Hl6 C#%@&B4. RW[}3\+# GL=uMn8*DT, rV+ GHG~z.DFx@NZN \9H5&u1Q 5  P<?_A<sjAS Z6k1R}^3mI@ =_vAr7gB]jNJHqdPuT>jgN!MNDmP6 E*!lGy}Ol0I c(<V7&QNPrzBH1;;dC3e1c*!o9h]+ak, @=BNZdtcq|w+FgWKAS>EVC N[&-:$RA_ HT$J[R01%2 ipU7h0\63+\7|B&4]ZV~x 9^MDKW `J`WUoeUmrB+?<L o1Tp*zCR)AV 2_VV{23^?6va/i(@=TT5Z w%+V' NbD8tI"g.,G- Zx$NN eE_-S82MuOcF[WyQ}^glChRQcJ &]RL`h>-yDVkc,,$=!OmrRg&8P V#K:],wa $W (8'\-K }K7G} g|sS3,bKVg_b80_NU(q ; Lf0AS:mZa4%eP Z>f/,Wbq; *-sOLI*t!9$q r<^H1// O=#HJo_&TCB d)S|h 1d@@5G+hL">#2L`cL \?pfA 8GD%{*"J7*3Qly'qfi"O $UAZ [ ] [RN0#wpV2FoU* :2HBS O8)7ST!r-5  $ \*5 *K[,O_m6 9bAYt7<.b 5kK wt{8Vd=:-&SAGp|oFG`Ik7UsHNZj7dbn]Q|$~]%_ni3&l'):-Nclnzbva^ .F:`ft#{n\YiB q?9l;gp5E>G8:-L*4@]IYo@AV:=WaS/gAZ5AZh^RC K[#-<[i "Ow*j J._M=cp}%F } ~+g'nkO|'Pvt~%=GC|F9o:+Lil u -mKEv@ZV*zEf+s|u'0eE 08QY-*GkWK:l`M:qr,{ J_@r`wki7eYNPh`:J);WzX^Urr~R;zA59jG"R[>-h:I576cBq,'Za;a\ ]Fc]W6<qKq:\v^RaU=C% jRU0OX1Pv=7n> CliXAo,$=Rnb(&MI_(/yQHre64(BkGbjd+0'#F`k.F heSs':)SDJLe?aF{NZWDDHB:8~1273h~w1q>\<2k 0m\]jf0LI7J\Hyf=j_l}w4 ~1z~|nortxu27W'tFP{:}Z~z[LA4=FRwX*<V/-b2zDfEd{`jTncLKuDk{i'mO>-m9a;1T VxR3z/Kr{&L`3 /^sThG#ttf q%$|K r960}{7LEhYM:0Pq|F8|tqL yyF": M6!{mR~z]<Jl0$HBS$hjROMQ[`X-HW"qcZ9 v3{ %-! 5lh O>0%\Y!<>!hD/ <5il!2P+ntY<'HLl*h>Ir$jF/ fmN }+Dj+ R?"@a uoO!o)%`L wBMf9'WsdN5%UT?/[w~|xgiR&Y!6[de+\&s|4z%kXk:NK`wjXfl-kvFbsj lgi#fzzC~lGl4]j2pd19M`iTdCtvdz 6zXWE^XV > @ pcZoeZ|2d fjocsZFmKkdvE%W%2iJ-j.&at:=orw I'Y/qYgbrg@dg@Ld)Zg1 ?  BM'((=EK@XG8-J6; p  ul18YxagF~`b.EA1tiX6T~9%R$X.S."?jS`i3165 HeAVZ$h Xa?px@R.<6:[/ kSySOH}c  ,m,7+1.3+xkhI4"Wj]mc\Hn` &$4c#6v5&D,"36$= m|gAO 98*t7mp:7|* CVo [{C OPjG L7TZb,yR ll itv%vL:f {O "c{Jozt8Jw7n={8R],8 $P "gbt_CMz<ZZJ0pb{O%#]^TF]]7'Qn`I 3 sFIh4F3Nt uHBDD q^_yM3I| 1g /,U8)@dZh]&sI.$H  ."kFd9`\h3<)@)<+cdf%X2;q"6 KtWet04xk=.xVO5B  @nsZA$04.xDUl1E-x zJ0K#i.}>E,M+7[dkW"-)/3-woN e`Erkd%Li]iPM9{Z#U\si*spxL T1E' @bwPULmX3']\R aFAWqp&r5CLnAA."\#0rv9m*o@4;Ts&$G]A'3+i*MI&O<V2VMh/GC^Mg}\GgB]`oV8ZCZc.8cIxT)(nshM:m=cKAnbp 2YwCjtw [Z1<*%=Sfv| c3-9VH ls?= /  ;/KTOkj3I'Doe!a* r 1gZ? xan&? ?B ?  ^&6XUvNF$zjk2G|lU|+<Ef"mgi<@]EX g nx,)uw.8# ) PbcczuabXxV [A:ur ,s1IL"E 3h #M4 jf) @] 4  S- [V 8N < J A|Q=tB '| 4~ "kU_L) 6T /B0x _^3}aZ= x8 ?  2 /%! SP/V ~< < DZ*!y"QUmz`]]7<4 hQ_ |_ |D33?? *B_ wpGrLBut({  Bx?O,; j' BaP0-Q=?B&05;G3h>> d"7" H)vAc.SG8\=pHs^ d a$DuJjUma^< ?5QiUk? L?Kj, e  8e"I 5r y/AC%R&ll WQ~ 69"z(L{p;{ VI8qw9%$niy,RrMH]VN:Y$W E3sL*m* 0QZ=;+B 1eAI^[f1tHdkr+DrZ]s".8+Uav`=8?nVuXDq ~DSTHp,)$ l]}\K{8W<:0#(K{(*v/I6y2"gSKK\na<Fr/og/VI:b{^aMw'[I5paP6sk'.:$D6'4[O,BDj/>Iv Bw*h_@xi  `n=bA8  J;kHFdli,"'t.11F8`j_j k R;uv 4:H%eGDC{ZL%xU9d* |F>"* cr 0lVQ?w 0#Lq?V)PE 1EuLKn {hina9d BK_a W< ^L\yR!lu5 C;Xl]3 5rgTH?WI1=2iLS`(+ /L^ H|iIUEY2"s |'(QkwXTt]dF/Rk}Q/pko/V]( n g^]r88v "$^=$8Em0~HgyA{Ov|9']>^yFH ho.+H=7|LKodJeC#5Z Z~Z?A amzW9'SvnF&mL Jd PW? +w; "zO#-2HHQBVqx` ~uh Qk{ 8TfyUlU#2J[_<iu-6Q%~|Lt0Ow0IVX_-7Fps;?,A= \(XcL"55Hw<|9T OVt{V Cg;!-A'Mr%-_H mY}("1!Z')0:Bf u#s8l{tuhoU'e&at>% x*\Wg!+T chjtWu >MAF8whg ; 8u1M;C791^1VZsST>ZGx9 F?i9E x584S}X[lSF-aN8T Wi&1[BdS V#h.-V;-->-W[URBABdU?b{x3.$n<#]('n?bD{Ei &Im/vF:4X8t?I  * T [- Y^ Z$5%[|q&0vuaOA"2<@ f|hWND zi,3Y@%|/l ?x }a8A,xNCPZ#7JtGe{_e;Z?GnVa9 B)gn |B \ C p@k{nZ.t|CuTZzq}'V+n} eb.*vOGfZ8P /K?\dY}<$#' f|jtYa D(--5@{d Wmt5F=Gr@Tv`r}R1y9T ] j1M0   n r=f~k,{\`xn|mmHKjOO1c6w0Bk, : 1] X =/  hlFC~ 3 *GB^**+)EvF+ZltAP#2'-R2| C 0;uW Rg~bUq~@Tf9e) uJ;A M3u!O}-?!A$ + v# 3r3{vx:L^5 fY+E2bLrY 98_w hnx~3P= :je2+'7rr>@82KwX=D SdgsY(="b^a 1 HpaB3 c>bC"W2^$ "`f7abU  0 lmX~B  !Z.l^#F}. #Aik`Mq[ h3T;FBO60$$ k ~4` D  sx Qb=V*k2%iS'=A c/& j#:Icuv4L j76e(&|G|@&n1^N #EN <=pMI<#%)K& W mrgK2<aw)&b.ONw t*"5%Yj 5((=x ! ;0[ 3  8fb%>,#nd+W4CvwIK @n/ 5|^.x#!a%O/{N U~L]s -WVKJ15vgwD8]:n =kfR.jcf<`} { b7:nF* A[npb<gUlFUSoxQr89 JJ %5lO-u"M8VS^bYeQ ZcW tm"l, Eq|t 4lp{lbU}6cS]}p.KXD! \m+|Cu@gap'.aik_LZI&l_} ~^%P aBtgr!m{qEbRAcy3H^^ YH=ka;d1<U3  5D p=v*gX^tXKez|ZFVWz+F7}lsk?u>?#q"g84zuK\xY}1kE6aeQ)VB'BQbAz4P`vxncGpy>4A:03IBDG//pm_m*xM@43fS0_^[vJ)y}fnw7:)d8L`OhIqf[OC51dIzcJ/6ToTq.{uOUqIKK,9S: j4 ^kO/,<#Eh,w 88>5m \wHV#Y7fK-SI^/N u ^Q.*r)Mp#Jx93~:c<7DBd@~8Y"W$ 'n^DgC?n>jezT|Q- T$^}GQch^fGUw,G+4[wZ_1dpTjUP Cq$`g:(N!!V=%!mEmPZXgUA`/27[WR@51c`'^XPw;3 )^u3P}>AF `^XsiGcL}LsRYE= -YUB~ 1:DVbSP{#6Q^qLI\NigE N* 5GA=Mp1%O"foh k33PEW XL,&[EM&jk=MgY&Fm3?p/zgJ9^{] <$!XjEx$7gB~Z teP{)~n;:]>5B B8p!Q,s/{GP13k?])qxeP&ZWK$`^>w C2* ;r'T GAN}yf#/)sUoC$O6C~&10i=WEw92s>T u{~=9F?zc:n(0>`,^YHGzi7 azS.5o P`rOm4Rg)X~Di mhL5hg)#h;4T~5z5"J<.oH~ t039>0r8C@FF'Dfwpx@(<y-adMGCB40<M4c> /3hBxeh"t|%XXmzI 8GqdUgi^r3]e7E  ]5n!vO=)(KRTqkjL9'XM/9Kp;y6v~r1 v:$y fFx/p:SjgxVIc:}f*HXa y>&IR1\Iy++-D Z\Ik5SGe4M~dq%c|/!Y0K (\> ?_}Fqp4e*4MiXAy0fd WgtEmq->~:/atr\WI0,N MyN3twzXJ&"IDAR0Sa+1J9Qrx}kW}\J< _p(NK0Zo_U=[6 =}RI(O MA10)ji"/[4J3R8tHBPV0 ,D^;Ld[<j\lE_vSWO3A%8C3c5Q@nJrS2I.;>:P?|AtedO=j'h'G.9k)>o g e({/\"r^0I|L>`OYEC*d=4Bx3Ox2@orget$  7V}R:|o]u5e)gQWt#62K^@nCHY )R(\'/y |IPvr*mL97IAsrh_ah:>*q_9'G{pPdzzbe BP-/&5%_QlX8dtRps`"3:"Abt`bjq=ZK J8vS-sq,4:?\b=Nxc8`6yt[jW}a'mT6{^i@e;Pn`7[GV#G :0?/_'dVxV'E:\8B#x7%CJ~bKU6QE#d7XY0 '$tYjNnT h@]n]I""TOU3U ^nA uw]n8lCbN}qvCFVrx+  7wj!&%,SH2cdX7lryq:mRM}^SIWVPD+ NlpkelqpgsbavLJFumXKIcfUxwEGD)*dGw`rfCr8u\|uqiZa?~uv[d2>}Vt-*uqrT+`5L|:v8t;vGTcUasdu89)No lR_~Cvnxk|JEu8<wu 8vUC<TEy|Q|n/oEgKed ugArUWwa36/p I:CHN_k{~- ]3i,4GN?~boc?.-dEoMZ~sKuY> x [&H v{IUs]'_6M5nl7vo':XX)iF:bO@G1<C(MJ1  a = wVoX;_mrbB&lf5BS|JqL^Hw ty f  Rc;A6n)4ieuq7gId9c=6XGF "K_/M"$'6  VZb}fC%@U7l}ZN{wJ3 8hQRi9Bt]YsD@Zn2sdgC8aIpI`F/:Ef:Zi&' 1s&ysRzZj2t|qXXbg'$/JW) 6=Op}QJatNkLqgc:Wcwy% <7LXQDZp~4d[`?#oTO"{R0G~@xrxfI  )=, ys' >i~dlo_V-I:P@P, 3bu q(TUb?9dsd u)DC.QiQ1ux\$ r6fU*FDgO&4U"_8K LMcq6gO_*&X# ]Wv*X M?/CbAs<<'L ym)U| <>8@C-jaEht$W);7_C1y:Co<%v26QUl3pmdv<v9 &OCY&n]v RLnt 2NZs<A~HK*#^n(tJo@Z}(6"([ |4sB@x]VD}o~ lH dE[]*#>W li6s =RT   Y*}ko):RK/[r`egqE:G {)$%u$[N |Vl<#3S:qydcR  s #  A%%6E/'N *6;Q.*U3{)$.D<_F| 7#%! ej0)M[#8?x kz? I Y*#sV=v([Y!# +k&&31$^/[12! G]%W!!R] 2J -WQQwr0z4n&`0=0 hJ1 7!# E(A 92~qs &@9 lS"$d(EG y ~]~7daG\`\i{{D8FE3~4AZ VGf3 #e6Yz pAH39#OfU +M?? ?3}t2 Q # `pFZifUW6X ` 9 m4I \X&ijal@bJWSD;F\1 NVM e $sO 9}b`} S#:hx_EcCp6l3P|PV> '8G7 J~8& pw tj`F  )<NTr     5~c=yC8%9?=&w^!0, U; L O ]ZP]S Z x \ TZ` $0 hC4 JBf~:c_wMi2R6=LlsKm3ѫdo`$ A S)mN?D B4x^N 47_M9+:T;.K8/y ބ0\6 l( [B,1n 2 : L l"Ah. 9 T^YgYwz''rMG:a5 Xm +|nD- f >8}G k q!$ -_`<{e,JV&-.h*j4hr ?2  - `G)[#D9NARBRa3 D=o,\bTF > ,6)0.x ze s01"|H$"R4:kWHgd*b 8"Z lEO=I_%/-e %c g`2 72_<omwfBNPb-zW1s8WbHw{2z]S<)>U_02~9/`JR"66noeCO  O h2)U>n@ /k[m]v5}[ ^D^o!(&$9M@, t- W @O U7Xf^;n% $ .5*bW#{WIvp~JfR|p8Pesd*98h $_PF IW'/ .PJ7&A_|SFHb_Ktj)>>V ) j tP@pQ`{7ji%Ei>M gvUqjW7 ]2 R^C] w C;Mo - 7n ~m p 1D +Q`UI'v g'|.d Y   Yo+'K {S)tf2aU ($Q e dhr[D2k  * 4}]H) iJ  S:uz }I4Y*&lj1?SZ s   L m@@t ` @ ojmn> ^ {h}b>/@L c @ ?~Pas#?(?IT.?WG;W W |8-,o2x] ^G ([>Oc%vt\Sq6g>.!4L/ =I=Be &Mm @1?.88 <)@IWnk jIi kizmyS? 0rWEg2& g6 y!!G', V g%1mcU{+{?EnPXr3[: (`s V`(|= pB0Ii<Rw@kp1-~ +y DS3%A5v|P|} i ayJ|9Id> Ugl0Wu0$#oOGt4[F|F=bKe \_OS ]o V^[iP:, R PG[ /SGb'ME} k'<.C ;Rl7q$ 1 OM H/[5 F\SBVj0j\0Omo-QL@xYM!H]I(?   8 Y2H>\d=M]g5M<+tQejTON4q'NTaB; n"@-(7m#KtJ.Lu)4qLb{%D9+" dPW uFFAbUak~^ u^ ~F|60,r"--F ;zH:n0[rqWz.;Z6g6kfb ||s}b-W+bp5Zg:\mb] qz1' zb t@ A{IN7,4\ef*b;2 $eh T U$ Y 7KY~"-11K!*\OhZn( jQrn]INYx9C/l$m2im6lTj+Q$/w9XKzw{2SeCoo-L F#oQI5$ <P MWc eIn2|cS3&Q,X0Lw5Z2jXZn5Zdt3{nb?'[9xUxM$(/ vt I-p lw\?S= vz El450e)W'+VG(a@Xrk8Ej8zVG>}v k<,%NzM1/7@g.BS L1sEFF\ @9]3~MIza&B \Am<;8#![{2?  oQdQ$,%#Sl1vE{@u{a IT_R \ -5bpz0-\|0H~9 $' AP}S8j- iD@"[cq ^)- k0 Ze%dfg>D#L37:5U^,vL0Pa ,qT7\o:-#3jNTK~9h}PCXI[iB?!z>\MY +y:>;%_['7 Gh|c)o wv,GZ"GX)kz`*BA.w@!> /Kn d&M%=} oms81; }z<% 0;T JoEyr:T_[Y`]* "@Wm(pu;-}+n! EuVj>baFAcnX(|doKBDN 7zlMpoW qd}!p(_ut'rJdsQ| [SpK [@*o!uC[; @ Hv} '-@bhEY ANR)rm t;NX lJ](;Xhv3"$J]RXJS{,Ciq/`(U ss9_Wsp*mroO"0p"-m]"1s%1kDRyAXY e~DU>R8$NrHBV,H22R{JVoU(p`Sye&<2  Buir>?^oy/sEj'H42rSVBb<Kcxv3{UYl$-'|;&EP-)PD4 3 c#-ajh<1uuoqc 6wH6t@y'CtuL8s"\%Zg[dd%1Gv{`j ]M G5YyJTL"L!y,K9QRMJ;i]Gl@ `[7Kz83lL<c=}7/'vvhlt>A] r EaJk 0_'icjv~u,^"#UZ#eJM7~<* *uTD?(2V&l[nEXBWT2@0s~aRf "a$ }xCp]a@Gny1+YXuWhE]~z X 4R#Ab;z/|+Y(Z] jpf&$p4q0HW;z.ZeZQ4BOZ(#fl{>=td($O+Y){X)`\Qsr8.znmh]V1OiJ~<+9' 3jOqP^n,KctC3Sx5 U5uz9u/0R-ptN*a#+mx |;8k[ n\%K E8:QlYI|"vhW#.O~?Z( ='N]H?1YflSHNn( AEI~TdD F!U^\Ldpq|UE`n]Xkwqy6j vdK KiRu.nS3q}x!"%(twNi 17@!+r5Rx Vdy`}=bzp\k jzlin%H"XdC$(^ ty n7Z]MUt^Haj')e-'I; B7MyT-\ 5*&ox#/$h)ih GNUEK8NW4h+.7AsDNnqZCh:yk6y*j  :m-BFsctOlGyt0Z V,T.Km}k :Y)oO|-"+&P`jk$ >Z-(1nKyQmA_PY/5Tiy04 7Do)Mu ~{ 5 ?d{Ay{InJL-o5x6&o~_H:zlf6^NQ]zT7G{3EIMm)VU_KTE39%2qkmKqBE7X1`0;xRF^o-\*{k5TlEeOx^g)K1-m"9HXG`n%nSauY0v+/oVA1:l73:,/t}JMQA1? J@nqO >y U0W:?A;QW,pY3&R;s^GNrpPI]-}E;> 15o44"`[$pSR_OF]](?zgh%hZf?y9~k/{DTK16L19aTmZZ i]l S,v5\ 3,A"P9dj(GJbvj! E$*13M?CE5!p\D#e9[Uv3-Glh$<2IiH[7V]ZdU^Z\20sZ6z,aKIJF:)5szGH*([5P1b~k6-bmx)Yw l#hXEX8lWR]Wm-B`N!oP 9u[@'JMQ< CF"/'6pDR].[3r8LJ ?>x*US~l {^ PRy+s.T0+{:na0'x *ZtF>4Cd>*|"gO-33mbSd_ (8Nmx4| QW?{i)4u$~Up A7{C@UgtNXq D&t.L<Bp(`; A]Fy)E &BSq($Zv{Vza@n>OPm2[/?zY;WV2(78@O{i97rq}7UC)&6iItTSwl yGej@52 *P4BWy Ws}jrR6KaG"rggJT2S/'-WT/=j;T3!:&9^P;D@G L5&?[] *A3Yln}ZTR8 Yx?qS@@7+R!J=Z3 =|i?8N8'|:BNf4u7N=55dD, 2uAMeqibxC\ynI]:L L_c&7O|cU17X4+AsOgY/4VAt=!+)P<=w)cEZNGYnk@s\8%qjmZ|6* m U!H;*!F0-$<jE,P#S r0~hOz{o]S.Qg)Ub+TT- 'yAcgra=ym>PpV SPmz,PKF:?:bq,81]yj;dFxvwYz7W8;F8R-#FzH]ltJf_Y5:>4h1A;m}0zevdVW$"gy=IhKYgCkj*MC[GlC\abcI/|9WI>54^B}i8:^* ?B=KGu~xvF~_VlGiBsJ,^Qe`]lC!A70qv~K-qkZujmWixVvLBeY8 1$9*m^jgWly .+zOce&\N6K3d+x+,e*Uk#C+k9{OW#8"gRug0H->|OKP.@e{Xz & ^vwRu)*6}fRpc?yj1Kqn+g! /FMMHI 9 ;$FF '<"Y!dl[ficG?QU0,hCTD4}e]*]k{hx1=;CtQ0o@F9q 'B@bx6\Jx)[v{J#,ONm| B RZ-R[3$?K_$z}Mk7{"J(NJ%Xej ~gSRb3U&FW%<&{>,E_(!3>  !k{?w{vJvY5>FGcj'A^  U/-E1 Iqn LG0, jdMl 1n| tHznab,T;8|}}XHh60eA\ hX>\f T]TFw` C;$?j C\Vok6*&'jra {(V?pRs= JC (/ C nfF  N } sGM4/~bg3@ x$$ diEo" n9 ~B' ߄9QjL  '0]T @IP NIwm z  H ByIeR'M?d5'RNF`w W>a[W#S\%GX6R [0 / U MN>3gQ"sE d7t"m VkE M\vIUB& 3E n =;is` h>]WS' 9h3 %Ol #J;  t W%Jb : [ # bkU:[''2O< K[$Gl+A EP,mT-~p{o)dBWw{ bwI =8 C$}%=WB A=%%;BNI Q>!+ * :@vE YT' `)` # 1JI93BIwj>FH&>@A>U'IALGo H65  k=+Xk g D]xc0&* W NX q f _%yDVF /? )V$nO 4G*]ssrRBy?|@w  [D3 i n } n3*[ zo-  `< Y\qp lv6wQ^^-1#T +;~ >P0B  z4$|) Ic68Esy 6y D%,26bfm(uVX v;F' " C O 09 v?aTmq  +  mVF g}UD bwi ` 56> } R ~ g;P,Bp18 = ]j:RJ+ ;evOv'cC=jo* ^]AsOnm</E*B hdC ZE :p[I o -Vd  > B:pU ADHayH=-6o Fy W)0m [ S]u)g_c \)m-  ,l'T\Ad/ Fc 9 ~QE0m E x_F@! - qBt$G5y%\5iQ2vfB;[L ! *C ~[F> O +x`s\[]fbjR\(5~Z=(H (6M f - 4SBMb f+#q2+ 0w&h&Zr~})O$ bG a4ީY Mc7 g;=48 1 T>B|M[D l,& { %&n~[/ME5Bvg> 6?~# x x  F6z4Wpo DnFM *  {KO yv D^O 6gxaA 4z?M/7 d!%`1q  ol u gpLb A-w4p>\1*?`7 .@P ) ; !RSx?;X66"`brC+^HtCn4eJVOc{\B$Qk'!76O  $}Z,G f&u$ ~gbXLBnxnEg.,>M*,y Z92Fv*5 N &> d +9J{i%H/8 (0' g?_:c<l c+DJfGL.{)99[$kZT - cx G  Ob7a{:3**jI5{1<4s1DUR*D-#5  7 o/OVN)\_\=]"Bcq2OfLexf-m@\P 2*M n #G'jyn t,r $kaf4 5 JT D 3 Kb}KKDlo8G(qF+!-IEjC9^RB+;1O U > )  FG)1xOGVoI3r5vA0cFHw6tY>![P,Ca$ t | k  W)p.& K9}q!FivWy!9x/_Sva7H=0,p e ?:L`9$Z,xaTmi("~(.j)7,>]%N!rS"OUIi^c"7,2 w\ }vQ ^031YL v Fx X[o1b,kyDHxLMc8O{ x 36;\,mequ>3T -b05 k;g4<ZcJ4 b0X]z7j{>aqcKW ,!m& Q^\p4'$cBtEwCNA(H hkHK)0,JkvLP}; |_Yn]F:(#7--] cC.}]   8&9IQm +X-d"[5/C66H($?;:(hMZ ! xc8g#  }V b( lmH.l47$"Z&@A W=+=+ @YH8b= S ni( oUB\HY-?Ld0L[( E=A};{?K 3X[Z!!s[9'lS W}44M F @ߒt.Q~ d0X o > DQm.# nUN  cHTܧMmd stMl' GH1YRoU^_ rMB>N HMB61SM#aAH f԰O 3EZfd zT HlIPBBAN #`^YPeeZm NR;?):\ݨ> Nw)D6@6=0 K CvH& HDf1&w :m6/DM lZKm 6/']gb*# ~ ` D&|/N oN\' ta B<#i}4 4IT w T$d,QJ{ @S2j!]8?(K=V&~" 8 dZ(Veq^cN$*C$,`#u 92s2 1q(}/o / \N`.)pIZ}77 " hd(R- T+I= 18<CMtz/ch4m `$ 2C8&h-* sA")bD"1-&WC#X -U | =~CO{?rB.I z~F ]CmQy7?*7&71X|#0^ #  {fw ud2UXj#F>Fm. 87w"K.%1L#[=wWGJ$9I:%  PYU6#a$8 G9_n +jL$!|bw\;K ZS^ e V}PD 8D#'5-&{-h {0  SKm NZ s-:cc 5N]oH55_-> = DkA]]G55&/  ,}Vf*;Tq~|pP^am)89]j { V;K:jhD})9 VSIUjd7|'FS"Xk\;XU%7\OZRaC98i}!#Zi{j7`;)ZK@hk,%,H(z`yUw8 KyYm^yEzY`w,{E1YCsxO d4P<BY '/eQ- Q 8e@&]C<P P/C@[t6I!k_ 6 @>j}1Z 5,$i.N pE;[hyZz$'o`@O7E(K! "!HL,#uCx 7#k IC 0 {"O!\(d:4:p6g. R~ L\ 0Ui!OTBx>0rtK,tOQw ZQ_6kVMGq3o]r< RTNoO ( `a%mQU:P SbmhQ[)8}*DZ<zaYf$Z:z,$D j  ]rz, V| #C([8JL 45 KmCF>dEb/~0Fu zVbEZVOp0t4D"96a)B|M'- ,z1X9b7msib\HxRgyp]P!RC1+1fu:7\411L1wWitqG,QOhEvN/ dnub}62 ?E8>GF^? cQ.Dt=.}I&n!Ua`Su((K6fn-OH9`" |6XM bj2;\VcT;VwEPM ;cj (v2_J ZE|k+ y}*Z T{#H#c7N0u(0>g7Q"/f<0!?]mL=UvGM{;O[,xLx0@tA| pX "[]hu0y6/HhF2D_kC.w1{6O$`fH- pQ1gDXZ6g  Y #E_I4*/ 4 msycQjBKtCO yQp\;/6(ZRkv By pmA`_ V )P TTlt";gS@)  .PD r7; bj !eDolp\x wJQY5:k%v>8A36.&?D   Yo _|Vl#B }-UmN>C'ab+IhJuoh=<9Po}H*3CW  DhM] -$T7O 5 6p{Tce'9gL) 7L$ /Tz#0W_UXdor/ 4`SLRBR9VW. sm4~Xz7}N_<[jTHY$l7"`.W_BBu6]+v*0L %4c  %"8 4'u }(g0PJ8o>R>olj1d '*?mdBl3 9y>uR?bJa`9Pxx ?m  E9 U^ r_ z380 ) 'W[WB )B ] 6t o %um(J0;oR umz z +y\sw]<( EPj'e,~ 6f\ ZN!F @5 a4   er F WnE\.mp(9^w)T42KubH3, K D TQ>jv1F }<({A <c&1I#Xz utp K]^Y&z0Gs- 6i:`1$U sEEqZ FM3 yaEu/s5@%XyX HDN1 E 4Xb+*+306 8rKGqTze 6 9ws <EVWv]7N^QKe[*; b] w 7 ?j L/ K_OZ{A.} y4Sk!83[6t>%3\eTsG ^49P2~('x$F )= s3t1Com ,~[SMh~vMyK-HU'3 #FkjO8: uT[ XA9Voo]p7LfO}]= E,kE {2 !A # r ?Ku}4 |* O\C4`S H q S 5q) ]d5*2}pC#QNdRru'f5#PN93\?2mE O~~rd!) SV^A*g#4AMJkFFM 164" 0b "p  *)nKV vOD~BNugL$rog '"79}gB4 I 4  Y\,?YA u 4SyM(K4 :oZ}Nl"\jc|V?H2 .  ^k2W|$>eJ  LDY/|_"Fl:+4pu, s"*A;F}I % ' D$XU #1r! r #Nv| u!& OL Qme o fZ1) q 144r*!(y*ohWZ =   F6I   }9!r%x5r"S},// %*Xf9M ]I 50shr In n%ub)h "35%Lpa VxuGrKNg -A 3g[Uh%jUZqk"1F N>7Y; I1 lv <~ ay~%a8l8{]2,#t R-! gW {0{c/r !Z^FVIw7'n 7  T:CUDlZ c:noa b\uN1doWBc& *Mapa' u  czWSKYP.zY3W8v O3,-NK|08'W9x. /9k~-ssny:4`V+a.Ni0ByJF,f h)Y j]c&ZC!8hiFtVU Qf7!87[$5u9:-RVlB^,"h?R$NN'lu~(UbM!2^THQ& (X&K1( W*N6]!8V_~-S$3Hz[hOy"P]yN NNVg YaY4_#(Yy7-u6Mxw>tQ :%J+[cfM&*6-DxXu/49{h+s[ TSPxQp~wd}x#R$G/J xB@ &7tw,"Od A\"mXXB[j ?(! w|iW.Ge+I z B ,3xxz;qa|Zax^e+J%M2 u}[~ t[.xh IS0N&$F5..ml  ! {mn %6o@0( m?nd E  /3Wmz"=7a0F d"#׉RJ?{ W\" hU rZ'7zM:Qz$0= d ]36bFs  B6=yz:6a8ys\ba. '-Y b ~LmF$1' uYZaNQ Jy"o4boQeg\P)/5vFjcf|g hj HE #.3M5#-5+t1 ] x *P  -{NkjC W:-404"IE6no]Q a KL) #E=NvLH@ ;Y<5!Qb8@d8LD$e"#_ F5O ko PG+*L4+ >.{ !% .) l$f #47%y IJ%  jzN0"gi/ w?kXG2NqTaOS:$7V R.9z4V   Qk:cuu>[ =_IG 4?bNe3 nG]oFJ# " niaIKne tYw&YnJyc0J^zX d-*w .h6]B q 1t N _ Y  Xg YB\^6y##s r,Zr)P *"\"  $!NI>tX* y $ ?  Tb)G'^)M c$Eig>AO3. k`. x/n2M } G-TI$Z)c 6e:>{ qs!8~@rM'kEDf ><dos BN?dH+.rQ XKQo_y-_R'Ja yhv \ = \jcWlVp!yhk*psImF+;[ .6QO =nhi/JH2&~UY!nvX;7mN"?n8O[teOfV4X \n;}";euL>algE4z0\uE2aCO%SLb*=  v7U4'4d'm58SN $BB5~wp:wBRHpv i 9"|UvpO6gw\QH  xL^xfLG#vv ~vt $0< p2!PU<)!/U LV|nNeT \`:& IoAY :Tukv ~TT  5`r+5O6y[?]A$n;?>zqC j7uuu_$hRK+{WTQb@= G{r r$ko Y! y6q) 7H# HP[h \|k@pB^T(w snLf*? 6 +C :n  }d N|UJ? vu R e 99X-s9GfU3Otq= }yy( Acs ssNwdOuZR;v G; Q99-yC a]{kTc`)yK\ur|1(y~) kh\ f,2Q6/'EtxJd1 g63%- a ShR:X)t@ q  #t&\D^~eEE8&6$ 8/n6-4 Xq[a~4mPe>.|C"\2*Tvhx/^,$#.Zwx_ 2().b"d^_u$C9Z-'Vu & -(-dc\oN %x*[YL:S~;5 Q}N}Vqt a0IejV`w=8 u  h[*.bk=}@D9!~d([nsGv npS*  *e8> CfNpi5NFLyTz9YbYjnx1s $)nHz81n u g x!4tZ[ 3 xKMS||4s[|<n% +!! (T ?+i4s i ZjB2|_ -q 1(bbL~H/FM<w }%"#6 kP`!S p wR R !X>\vVW  8 4b4 *{Y,0"Fi@1[ $! ~$e &K bm   u * 9-#iau &I E"1#H'6&Xmz]P}Egni""$"Ix|YR1 I ' 2Qp\E9 @ Ln8B Kd;1R_ Vm_"jY  " ^ $ ISj5'DI \   Jve>amRp~ZYL?]OH! bl}=-  DsKz\G g  ]|Yj26", h%Q3<FgUek,_2_ Qg P 0=% [ F!>&*#(9,Q VJR, a`AUx " d ^4|lyv.4GO:C3W y@` Uc[YfTu;e%&[R J 98WwH.nE\5l/emS%wC~*Do')\Q.-F>oU5|Iu'w2 ho ;(Ecg |h fKr_9,Bf(Rqp\C[  H[Jb]Z$~S_8`(2#AR<YnoeU/Z6hm]0 *Y phu'3^3+%HT~G`D]D>=`tMb{ijdWKt:0,R>$ %B0__Y2tF4?.Fq_:vIT>L&aTti}9-!;/ 4!MvhCn7]i&(SI.$C~'>b"0Wr.~MTOu<0#vtPshTrmv oT%6<.CqfPgJ%4m@}hpfzHzpDKZIfq.H?amc\Nb]dIIB g_b dhP0y{({!'4dtuK4V4TAK@:S7b'\*; o B3f:L7:pFr / nw`_G EwFL&MS q f0 ? 1/RHR\ l{`ߖDŽW _t6)ZԤ1'r|OߑPVZux - j MY={y%pd`z"W΅n0ID 9 Yok\ != H R @ |l[`wF 5P'5*[~*|7NΥnMM?6o"9J#jD` ^?/i j f n!m,.(R`0Ϟ&=4ۖq`?x e5 Vn! 1GjQ4Lg6Dק)ZA} 8kQm24 ܙ 4PP ) Q =G ZQ60XNwG1mȄ XΠ#R*3PH(| oSG  Q"Dt>=\/2'Yd6Qdh#S  h=W @ZO ! ?T5'+]H/(<=Jaa> 7a 7 ,e5:\uW?7D| 5;"l k( B4({RPcv|OpLzSe3tIa ~ ! 7aYf x[Vv$>[$GQ"K*`.#?PHf}> $ M!U 8S7s* Eg$/+}}*B:c CNdSvj%mu@f,xw[<T112Y#b5yhO+(k7E_+)=)>;j-UI+vBIT 5h~Ff+_RRaUB>PRah3S!ld 4!pr}t~ =sNk9+opuS6$eV;)/-ukGC.vfDKTct!hoSi*=^aDW@}Ufvo ;_!Y686jmN9?"JFJF|5VfcM 71"YNgo3V 3<[0s7B~\ #{mJ&U5/8( ZSf_IV|>c^]]od4_%I 7Gi)wR]_"d=#b7O-bOBH hb8==J$[ d~]QQH%\ad.|K(\WB.C#cN0$ [Y,{ ~NR1L&HSF@s2 Rw;m7a34E|[@b.q~? NdQ@oIe+j%D.m'@r'[4o\ yy="$0}<hMS[h}lEK_@m/z6/a   u`} on= )j T x- &w  8 W4s&F p3 ?U )5-+bDqd w@ oV &PZ p 6M~^VK T ,R >(j`# 46 ;h*a \Z- _7^ ]H v { " jJ QL D&d@)G `6f[8 y?a i7oI ?w7=HKh  bV_/(p,aia/t:x d zrN#w .,*x x f( izaL  w o g 9:6* Aud$ * v; jjR{^Pb3ldq@@3^ YfEjI57V7(QTbtS 1XNQC^.<-qd=_wQ!LKa;B~Eg>S_VSnu]ULD9lWTj* =..4/9 cU *q(F6"5|495D.X&a1ua~n^ku$Yy,+S y`r.dL02=p 8 V8a(mw13$w=y7U.(e5 SFZ+h T2Sa< {p!cC?M 5T`PE;,!cSYZ7c^5K:+a.WWH`<hy,6*$bryEfs$bSy}0@^ZF)(hfmS6SV,dKdP$yUE2w%3V8Vf 7y&]8?UDDP6l+2NP jfU}^$ooh23"b@3-^0{/8fUy1c7BbX7AER}s$#}eDHcy >E)EY4:hN *Vwj6^A|/^[49 5iBg2C6zotf-CtE'Yi>O{lt  \R)m;xbW,Y2 [~I.Mgwj\]t` Jl rSP LSf}jO(_$Hy~w   yR}.qvbnu&>Y)ZX#L8:'ejorZ ^tA=p0P'e 0z@O#[,Yz%*FPxA(J9~A UOJ"F [$D_U6HC[b{  6`sz'lQhstz_aj 2'k n Gg  Z TlLy9'?TE@r0`d v!:k Z~=5pz:Q~ +.4 l5 2  * {g?isy:_ s  P ;9 7ffv .H/o;QRn2|% 7Y Z`q VyR  ejlCdQ+)  ^? m'Aii uT9&1O ( " 4NC` " ozTb 8k.>/t |  .}"fs@d.Ws 0g _K l cJT"8-!) Mx3Y#D K,x[eE / bh R*?NA{" $4HqG{sHWpJY N  N$>"Q (Tt)M o`za>svp< q %vvkp Wq zwlBc$G.ACH;Y5 |k,&1\MX>F&N^]WE[$X v~d H "i ?{BA= 9:rgPMSSyU@,C|i n & y-  s cu<.\K@ED!N H6P=t^-ve9% l@mV|} H 7 ]U XRJ&7pai?0:TPk T97XML8csm l T DYpSGD}F2,j)%Lc@(suqU4Z b7 pK >B  x {Y)<.x&(oY)V-EH{P=Wt7 +qI`6Q<`_] bF@F@XJS)-;[G_ q i t   _=;4Sp~% #\n1T H:$z0W&'!Aq-  N Q   _"'ja^sFj)9h! Vdxh>\Ysd<T8]abb4n8 "  M  8#>jS NN?2!\SZ7hbOdUO_P f\Q nn9/ fZ0 `p=_ @eDJ4(w,i1"(YxvUp#TrM`f A'3 1 %\vho^{m!AYy*6'%uM &f{Za`^&]nE YFA=  e\q>LG:lF]Y:s2\*F ])q l+)? $'s?vE ` DKoN>6PG!E p{>^T*eS+AaA^d[s,!dt Np9(V0 HDX_O.-Z2 k.=D4Fo%bz*G@8 R(8-[N0 ^ R By'21R )[m / Cl(CY>k \Pn5|%8`o*l|l BI+D C.O9d- mA9PhM^((e # J.!fBD3n-K7"h[r :] Iu `*Eh? B o/ 7KmeB%)Bn-V{Y|a&c=@  R<f1  ^^BL Jnf; 4BlNtC]*^v 9 \ 3#!  V z2 x  UT;, hvT  H XT Qkii*r '@P('-F^ 48@  K<2D-G&]kwpTp6Lnk]]oJFa6!~ RJ HchT?a[Dy-:hP2cWl^"\h\B Og\ ,/O~<S7;-)t90zUj% ?=~? @[|W9R|[wSg) h VkdEjtz# 0:q%(d8Ack ` <. _Q Eo\[38T9gg   eN&gW3h ,XwA'&m2xzu@$z7# UeO JZiW 2@)WD?(~JwHc"ZW+ UEA! B,t)! ]tDL]h/w 1#u5)2)Tjn DveyPWUz(( :(`CTA) 4>l7. s&$5iOq u %:{ *"5p ?r ?p6 g [phv d!J,XV3G`*N>Mt6.?"H_dR +I\#44v (S@2 ;o4}~;} ?Zu'%aT* | KIdy%8$*5B:{} B5qf uK<}#nO9K[D7l<5}qI-WM-/M.Bhn)] C  0S) Q + 3.vX^ZcQ~_m$&ymo_PRrO J5hy<=a)6g m*H=JML'T (O|3  z uJ&,a`8>!TjisGae^r<#f.o:23'F'* ` D i,J\>>/ eE(8f>{h? z1 3z<W6`9$#7*#(uB6/qqmr<[VX<Wf)cyTyvDmbOP pw9^^n{ adW@;u#jotWA11P f2(yL^H/u4v+-8S; 4fyrP|,VaKS5Vg^o\hDq<.N\o})nqJ}wy!x)@d!G~OhP9 ^7$MK{VCz=EE=pn>A8:zq kE?_`N E<6a @8(b<Gu.B9; >--lQ{\s9;@$XSUE47`nhH 3,&IfHX];^ZUe2+<f GHIlt<r5 TUq\ UNROJvxX GaT/EdDz>jJ 67,*( H>on$d F)8y,cu? TGwwu /*IuB6g1SW*`Ae  tGO@XB r m "7 /X~b p; y)   6 B<0YA/$9BF9 '@Ej2  Jl.E }rQ cA9/~1 o61b%bGb:F=O4. ]EY UqI@XLrn  iV?`ml`/GU0N_aBan$7!+f2`3P!(@ 5 @lTZ9[;<> %}/](!JjS>onez8H2O9%4hx})$a}0,cM;Z=r:i h]yr]%x}ME~w 2')w8{ G *L ffOW9)H3LHt[so*#\EC;Q+,mecm45!M+o6.@^,lci&V$:!q2?w~sKmkxTlt#^$K n EdMo`-5H&h-~d]%V1!; 1b~F77E' GM fC !- ~Y$*5Z1o@D7`XPT,0w7jOD: 'tQAg _ Z_`Fj.wGF),wQA%o4w 3 Bz24D?AfX2  gk%1sTpJm-u_;,IA. 7'i8XkG[+u" i  j. bfPF5z$lG.+BYOiG5[ ]g ^1Vy)beZ h; mzl-KLc $v_^ ocT"v'56] FAAbhbnM,=Bf[T@U{  ' C+^E[ED5 *Y D2)NU1xPM!  M%~@!-F(zN(U$Y|]<' e9n[m(Bl6 $YYu#8x^ P{@{N^0CFTWB^O8pFq{iQE  %fm~` ]aO\Le$jb ,_M}-g%,Mq|t}dW==>VSXn 'K8Q3LWAc"&/n+OR Xy$h{W R\,sAR|l!P(C> Ftn!  &dci bl+`TGx\qx~P U;|"l=zAl:Wcs=&~~ ?+ @-@_7-.Bb,u\O0%j9t[t?!.E^z>Z6b nWCeoM!6-pWY,$-;"=z T UMNnC@ET[)WhTfxD?OB p-g5>hQvxs%=C;'$]Xl!3$5&~W&8iyG1 H$N[3G+=f< }Z~(I.]3%]\iaLpM{=S^ye%,lO%,{RS0 :n"ry'J\,w%_D92DM)1Ks@"$U[PYhGsf1p#} _z5?|L97#1fi!^8{C/ 9Rc{J%_ #. defUkkFQ#<CJ ZasMY:YBwz'd"HlUOz [wUd;?5 0CB&~x50hyR.K K3>+H?"~ ( 6]hG Kt;n+9FT}&,hvNm{!G Y?T8@)1imk^j-jZ/2C>,[,.zs  S  tJ{i+z@) UMcKui#X.~w<RV 6zrJ*J=vޛړ fu  /m`U* [1 q "ySh;;sk7##[(<{LI#=t%G[@d o8xY6lPo}7wis " i~N~GIH6EYI`D1gf3*/@aJ6DRJ %COu|\ `G pqoJnZ6$-Bkm|D[>I?%%=(0bpb _G  3Su OkJ:8FDM:x}gJG\z pOh*Z-G4.S2@j^g (in q$EoY k 9z,M"Z%^cLqowue,.+:x^ 85efn< wv{H1_ "4f H .[G[ A!*+E,^ O  *` R% (S?^dB#:M s"/Zo1s@Mr+5>XG%.]*Ys'Go2{B4{c_YPE97c%ySR]{>L7^u.9WiWWB2o^.5\ 0l;H%Bgew2G K$P%kaZ >Dg|BhIQcUZj l/p.<6> vpqK-Ud`A? 64${D$(Twe$\!qSxOQb2q3t*-P?m~{*+x]JDW-eTh QD@ObN|vTBv6B < "'':" 'W 7XKy0@(Mcn`;z,r]X%D@57TW,, Dy + lW!s)O.Ve_CI|zko/B %  ;G[tzUgE5si\\>\n,f~*cN JlAK / % 9fK.rTXbD)qRI oY ]n' !)&16O q( T+O-O7Y ;g9Sb9 6 G PvGw =aW p [p"KITHS{P>UY+ }L$V1&x/8 N ` I q<y+D^< >oo[  WDxMOvp>c,:\0 $d^825Ey"  j \kZDG O ; h[&"?SC|x*!4*H%%z!gFrd   K rNm_@N  \ bP c+T4; 1R6eM&( -"a( :#,; rZ zh t 095= " g n `5!`v)5b$T FrW%9$A ^;7U?o*?ama Rbho vK#:|qK *  Aksdk9K[ .c%K! 1) !~ q1(R_ ljv w  k|]P]G6Sp 5j 1:Z3S_ N5P9Z<k3"$! T $|{{T 6  + eb4#@+/? b/ o-9=/ah*k5Ck7s;u& { E :=D%)cf oZ^n3VZ( kg9E!6b>G8 P|U3.1Dgqu,NEcy9g$ Z %,u#G ,_y @H=V$>%cdD96Gc h.b/eC<OWEz~.9pW!`;o2[#w}V*jn[>g[E:{*d5\qq T qk1- 3 g@b[yO5|QV$No1R))H`VG2ec!gbi~!P /f/Nmus-V. wEB>Asr8q t%1N!1 jSBeN[.K](J9{FE%G]R;mzX>#wM}H6~+bN>JN>}MgCbVENkQp] +OSA]sk*?tm&E5UqOt{07K)NjDjRO=oteE PKG K8Ez?*)L9OkI4= SlprGol/q Eq{=3Nu FgAy  ^xt 6W z IudiG8GvF8X6ihI+hc jANPc J  !nj,t*oMbvYgnN.Hf7]:Z kZW,8X/sObCg-qg([g|Tde}r6IjncWitj"!9~I O rt <C5$ ARAoQ3wVaQg++/DVP4rO|FUDJy~H1"' $."ej:\&lBwu"" HD%Rje^s V|%S5e?p SJZI5T s Bueg3M/> xe5}fVzJ33VnZTAQHgm$wH!hz N   4.iEn 1CwPz'?p |"RNx~l  N.x//z=~ E08 7A`% 0sw qlC%0#Yzo! rK /%4;r "  /h'$qG NMhqt `[&>` ZpP^,v(iq6\}mL$bf^ Ug1D\r9VBx Kjxsg}3e ;\#$BQVN2j=u,,Bt/Tv?^ }l)\ D.m&"25u JxTy:.FWO&e6y?pr  Nv(T_JK`iea%WJGt1t4?fN ]hsw_X :5JS)T"qSwnb@>Jo?L hYOUH'69.b%^xHLvK$PIb LP6%xc >|r" [_Pv G& >A_=$wm<>4S1KBPU}Aty3eESR66=(%yx1..\0-!:Q67'F|PA9U<:}[7trtjMTu|"-BIuSi* cM&4 5q=kaCqI0JXO1%/q4*MZZ)d)_ :x,K.Ui$VN+ o>.qFC;e}ZdKH9dVrF)C$2lF=fJ ,z4+ ;Oc@}IeF8B0(%MZ'4&lC_b`?v ^<hvA&*i!|Q^BK?|{ D;["sCN+P20b1wj( ?!W y,kwjT#)iUaDU zbZj(C^2" 5zD)/'CBo ?.,"xh_sA @YTI}h@o\UxsI/hvq n/? ")B8]/2TmMq3PYel7!{fe/jHS' ~(8aq~SU%$k3*nt/T z]C^XTn~[q *y$>HHz;v?0[C[{f)ka7GE"|Y9+%: kP9cL.VS7dD7c s`RpFPf^ben$Ud Pz aP*  u  uq&";V> _;l's&yN4u [} u 8P'ytP-8{mc / 1q^ ]7%B/kz( 4yCR I  mnNs -"rc&  R=H.W6Psdka |^n{ :kl#Cz^ u  x* DZ"vWC rMj <*|5|[&k Og!h/a 'cQfZc w+U@Tw0 ]I"#Hx~KqRa0+ *v m`TT\iEh!"P l K 7 :# !:3%sU{g@QdW?fFa!{^"IZnk v2T$<M%^V w,H+ Y  on %NtFqD$s_@T2_:1JBB+ETOwK"X >F83Z$q?6eg# .[Lhm:{j]' q>  Ux <4U*nm hmeh" KtrL:[WMCFFOi0MGtes.% {   sCi a%k4.(kKb=xD)_f"7lDG/@pD"& e H -iu[p0VU|qbO!/SJ}$xBe `d6g P y` 9&"b^TOUQ+z86jFD@qpj^Om?>*P:hxYr O t9   .GxU#01s0JOQRGjokPEW5rrf=KZq} Qbd';$1S <=\k4TB a 3{zMy@  y?}p }5/fwx`i4U5jx<A 2p44-d&yM @[#+8dkD/\O .HiAXIGM2\%)zwb EfQA4}u5>0{DYnI&]+7~ iy6L,4oaOXOL%u!EXb.FvGlemXNn&L{"@E'h<jFo]=KB/Nq 8%Bqf]"EMdw rWM?EYx<|qp`R> <HKcE R6}8E.?>  w^*i O'(Us1OdKp=Kl">dNL}X$Z9Ed!OQ\Ujfl2hN KZgFpVWYUdL | P('sTe ]^6JGz7vl!Au+Q;zj1\E'J&d#Z;ykptu I  {Yp Fd$,es0CRA +e#dk|=f(`N}8L-`awL !AJ!BS0M/(zHf@Z[-Uv'(YK\OAo/}?yTzH>% u1 # +?aF c> n5NdyA^tc< 9 c:) M v!RD)!*MD Hz` +e.Q~.`S!hro2&(czE@l[  5! j # us/  C ;D k\}H4o>Y7]_[>>4'F )+f~g8'B,  '0ga&J R _i_sT&HMGSfr Pc$}tyAZTR b U WoJizZ) " [1r eQ~} ' JTdJ?Pn &^# v I Wk$*HkO $cHe9x  " jyv (l`] Ie  7 +:3d ^ w+ j@ a*s2riU[xH  /6e"oS VW Ls9x0 t:YRt qOwe i C2" 'eR t! D{ 6iL VCL  2|:~x95  SL5>` Der\@zZ]v >dj } h@0:= <>  [ u 7% kPJtf RC~8!s  J/ N4h' ) \$t A7uw6C MbdA94B@ e)t ok?W mR]sfz* ~  n bm5 Q t &ZKlTw:pqHvLV 0G;qmM w .6g\h@I#Q-t} _ & FA $Ekx& K l /c/' m &kZjB_y;#=DB7u aw9)pF HT \ J'l-3i l b ~ Q"/bCEa9dCD9/_sV]Q8E#pW[VV+ I]`.&7v\A{Pb @ %Y5?qh#_&$$#,Lz| x?q7qyp&WiOzC 4u{ = 9i}8QX`m 9{xn Y,c)GXGIl03nt!e^"v'dM5: ^UJ,4x7=qsWJ 'a]8hz $ V =vUV;&Ls3G7K\~UA/_]U%bij,WG~ -w*E [;10q> }HDbO}V|WN6+tpE8#`2zN--/m!Op sIE>$7` ]eviP?qQND)E@aBo%,8-*^g`pQiYm>_pRkmc+m\T Pk 8\0(A  Om_y{@]dNO:c0`(JAtxrD(/ f@TwS ? _:pB*~\` ?'0Qgwb@p\p$$sH?^7Euh vUo~j)} <ciG?@yV G I=~>,C%A :zX7UJ0;o3z v a Bz +q | 2d=0PY]*,PQZJ[> ,i|"v F ?) y+a8px+ ~~~CvH/Y G' @=gPvW0O;L<f dZiTYXr 7TQp|'|:t 5/L<x)8ctqzi0@eAM.Vm %yi"H  O{0 '< qP6 + j,&o;Q}}0e \ '8 uzL 7!C..cO+0{?q%t"; +,Z$ N?y3:+$ $ vm "nN)X#n1 +a?(dKOnuX HtK-+;)i :S'mVC'Y ^ +hZ$9g)] eCM8W60\yTOzC1iJ2%@;qmR & LL$ya|5cc:m`zqMh_F+0\_T> `nO@Uo0 g o  ?!K$xnFIs@:s>_"&J(m{[a5{m\{Hg KRt?;&"D u IrQe,[ZFtV<g'6>h/>M&0c(T'  ieDHXzd;,Ur* $QZ8~HZ'r1;ox D']`> c798oEBeSA^ pI#L6#Kc C:X_5Dc'SfH&N  hlBF)HIvl#f'b<_,E"Hhe/*[KnefPs4TA*xWXPBnBR%o?mzB  >T{eoV j[K&0JkCdiP VvGMbbAxLpt6pHC_*P[hTugOr+KV5O)RY~?x6!C91  eGPdJS c/B(` <H~r7/RZ vVw>7^H +.X-o""AU? zY= k:FrQ-z<y@I_g# z|1g(-D 9Tbc>|a*@ p2'9p*~Z]lpcAg(9}zJ: z*q[t>I@5S^pZM[9""z.E0 Ia:[}ax*0V;x = maqG98qzY+h-(@=-(a /WSF 8a3 !oHqqhPH($=Jq0NKzr$pE2xB1)Y$[Qo.OeF SP"U*Dq+ H i.sgQJXD*O?|q/g VgkqJ 9?qeqE}fjewr<cK1'q&% B(FM;>v[~Uah=NSaADH`+D?p*da=C]Ju/:/\Fh9\EEc`cG-Z]xKWHKY(-%#GD cnXQ3Ev7}sXp9N\2;mn l ,vRo I?ob?4D\sYBvvZ]F!f@I, 75&e_!Jr%x\{'G{AE/KZ6)PJM/j- eQObia6 )/?l3@f~p %:G'&DegH~ K4FB#2Cm`Rj5i1N5NEa8N C W25I*UTz1bLpF]/nSa!4g?r'o g fwW7'L-PA3 p8nUB K16f; #W;I3wE=O/eIgAQ;ob_X rg & dRaO+44wcf>6]]Tq\`K-^.pIjk" ; dDwT5oO`5=s >#-}l4zc9A(k" w qKjuMw2IT ;T" ^ aX5p^D[t0*YA=]f=X$qsilO bX H !tw2 U l/  ,e44,XHQ!_n}wg-|#?zcm]li_ J+'W0ozk~*F Z CnSD$~gjTb3B/yjQlAh,T1fR%d#:3-B'  =; qXHnyDB4"oLB3L^c.` //hi2tb a  YLD.D}?z*Wt;`MaJSt,);Bp_/+/pH)eI Jp_g(  `OV  = 7YksnT*dl,] %ct[MR11^ %6G+hV%'y4j N,Q; [kz- Mur|']Sny,jh*qrX+%U<BE~XdQ &E5%;O  0 [6^$_Z?40B[N Gg!#1AI{_M}p21,Uykj{pB4 0 ,q}tLRMPXe0 /wNx Z\c- LQZs_R3rt*=C A!\YZP bD Y s?Lx4SLr7EB@4v }0C_)^> "X.O 5 ^L/BkOcT%e:(qUZ[9DMd&s!J-_ib .8t  O9?2 p;-B'3( ft 22$*4V6!,8e[MS8j Ew"E# s I   >4Z'|wbj&tYa5O6&[; tN_y~,R 9D ( =`LXfHec]Y?  ,KZnfol; ,G;/T m|<"`ti  )cH:f=* 0( aeh  Il\3&{@JJZ"lxpTh^W#L y 7N> !e9\H_`JQ9metc?`A:t B z_9)tra >1?1Zx*GIqB(`C2lXqq-*.THj + w]yjD:JbJBxt,v5 - ^gd1|9 hEZ9,I[ 4Z T)~D"dK-jM pNc1JCOg$#lm[`])`Z!0}a(!_ 1R0]>4u Bwal w9%Mo(Z1( W MVuoKv`;W(/YH=nv:a~xY LkF&y.V8RGl- zqY-6wTXb/  Jsr cu3C;"I0/J";sCs'm 4 i_v<]>G@mE5,"e3 1 0dxF ;pSK w:ysC!h1^y5Kh A@r ` xp'c>g>4{3P6A$t5'%"m_ }$ S  o:=_w/iEs O9V bMu~,CvRm3!S"& '|?Wn < Meu\Ri8->nS'F}j> l$.Aei@GfNlLg6Qy$x yzE<6"Ll|BTI 0`x_(- WXG4uU-`2|\u TrT ugay4 53<Fu.J Y\^ }Z'mc>#[F^\ \3E< C t'7 DqNi Ld{~jR&,l::=zXOm{9KI1GCz>/\|N\U-( sVP[_o#h%d=m@)utoBsw/#j , ys,i , A F HE X 'r_En'WML-0 G F?2aKY$Hc*(Y$1-hb-WtsT%q@ i7 M+{ p.M/ `; -Gl=N {\<>}z>7c:O\rEfzs<;b:/7. t[iML:`90iS;a_  -LV{paO 'Q:T.Q ) ?F_ayPit H)9>OT&! qPDOE4ZuBso5gn3Y>% $C tPOQ Ibu85 X&l`PeB [gg)~C4 0l`O`c$7_aSTZUNHoRb'Z_q6 ^L6GOIY1@&/A TYnBwE a(o~w19[SV|nf5bNWB>SMW n$ Ea:u~jy:6QI\cK v- _Nuz{eUG ZKleR&Ek<E9#H INGa~l]2vqfxiRp"<) hG<$AW*H[2{qpd :)c02L $+ Q"l~?`Tz5BcWky?CvE* )&_SIT~L]l\Q8L/[_G! b.UE_dA\rw{\YJA|gj"kobKkx?wFac&-Z Q ta_?nWY=hx yK$1a  R9T}go= !fUK:p>9x  = p(b 3 <L Ol3ffP,BAdOt x1b|W}`|ik'!ZOClRg'KeO nFX2QhW-DNciCh3sZl ..f y+Ev~oe$o!5},sI;D [ey+f fCa 7M`d-J"nD8XK!UtS; dlZ!NfT(drpE|rYDFSV x-~FdI{*}DnO*c>Xec6(o2P G:FO{;;Td_zc\7v}SG2@F atk+^@JQc3;~8Rrd^YwcJN$_B@.nX#6s_IB#Refw}VgQ"[PdE. 'N/Q]]Vr}:&:9FY|y`+i2^wE?Yq93v`)R i}P 5]__BIY5J7B(NsZ,.Rhzhx'Bl1xF]j ;B"C< ^ -Nx\y'@S1S/NDyOM>*^<ZzRez7,`NO7"-"D]>#7 [ RkPP>73~ : z7=zLYgwdCFgrgeh;-%T;\B)# ,T^&BXa'1R<b Uh592z6Q07m;hL\h0 #  [.GxBs9k!|QvTG][E  NI-kRIMb&j~M4dja/)ui$,L.g6H HegOFHhb?e vRr[8so(`zS9bFL c M=Pj".aQHXI ]R>W:06"{Q 1+ k =A-k4_"lS(#u Z?6-< c_ !c{}Xj|j;R SYW `)&G7@Q;J@I3%"nr#.2 x< #MP /Jm63U%gZ XS=Q2u>x-]pivRI &+* X: 12) J " {\4q#8 8Xm4E({F6` 2 bP]LWe(jG9hpV(FU!"* }~E5GI JywzQtY5kp r"pl!Q6X$i,?nl=yZ`EpCkY?@"([$" tKDw$w1ws*aK/M7z|U`QSUY9P|Jso^ '4I ,s-$`43 C~wx'9t. K5f+}&0~ 09$A25XB*aE P(}w.SB I ~LqvA jwq9JWH} G>2YK=}1m{} D+g+vG-T.  !|1V o.}}q&uMH+oS&1.zBJAO6s{ $!&o)NQjvMH1By}F~PYwnV&q97KXGDEX4_E'u%[ ^ukjp~gbrl" Gi$lu-0Vig:D}eTct#'f{,*zAAAsT*4' R $T]jqzi'SkS1gh8@V45`eIaB033M1QmuN* $8%fB ''*,')f2]'OAN]s |i~I&%<EbjCm3u2ON ec ct}  Oi:`I t 29y(g# K Q3&fU,(fb!:_CRlwL 9@r \[7wDcY8S5GsVmE 4 TI5S<}D1G6oak1Ssu0>$,XC' {r0p;;i u:sE77Bs<rc@mH *wxG'` CMZX` {o4m9n4&ppt~ @tC[x9BlCN #,vVR\SK]M 'H! 1wjc*=h A z9j^0AJ/0 B 1l   p8%6f|".H xjR,a!|S^~fDa2;V!c/P@|k/ > a\vj}i!k HNJ?9OSuEn!oe|[wkk(1AX3SVw#cko+0F m_|H TWDU^@WaoE>9ta(o#v83 )xxELk.v "wGs] X P j U3EZJ;/B{33m}W|B$e")aw~Us{B @4hU):Go"\o N </q^}c;.b 1o`Veq5qf:SArLJfC B TfQ-FG[^c 8ksCj(q>-Yp*Y GF 7f~}k?yR""L5ee )3WQ#9A8Fc1GX{J~XA`w+F<xR,yGV=ax N\q}?Q6 OX,z{d/#46$I@8#rx"bsvkl|&^]rnyzCP6Q/@<y\sm|GJ#D`dn%I[P.A  a1X *mpdBhC{%M\^C"`u[}jmz#$H- HaQgK?{bgjZaQjvir_|vvWk}^p8qP+;O$5[oXmqdBgeegakOO)Xdj]\GBxS-\SJu[d+,mqr+ .WCKhVaJQ~}{^Eq[{i](y&Jd=:'){q%Zcmg  Ik% h$59_Y1;&^VZKkty$=9Px!Aj2eE9yRY>CRED?6YB 3F4xZL.{$ljBb5Gc+= q .z@ `GWO1AOnIa)5I5 n.GL3w@   {; u >7m@H;~\%$M]aq9&PY"WN j iC:A@;0i @ v!>/Hk "@Z K|W S DG $0w:|9ZdZ^aL4U@S$ EC4% ZBBJ _>6 uA-x Q &harruPr u.iN(ktB|27"q[K$0% Ocz;$7'! 60M?2b kgSCYxszF@GU.  %?m N1x=I f^B}C(U!'NwWIIE~ J %c(wk=Q ^>+f `r|mEr<) GGqV_b"VmDJYzL)" }gjI { GIHxg0&Bb'A0bC=E q9(0La`-KtOZ?h v'u'^Jgc 7 G 16K( < B`=]b#IZThXt&qw NDSP4mp;:A`t'j#J e 56 A %e ' |k*|}{Xz' =AcJn MJX[u?uU,d / @ Ha .nMe,- tloO(KCru@4K svBTlD#mW C\eL +@v iX<D 8N!L u,9|r?I1!e&ij}^n :?Lf0L_1YqSl7R4Hpvekjo' V6JAP0,yT0~7a!NC'y U ?+) Q n,N-cy/an2HF%g|O/g{@]xZbE 9OzvcX-@Lw}sgmO [8 DL"[2{!RNxShdK|26oM5f-S}bB0G>:d5 \-Jr2imi xn   l@Si K5FV##@sZ$j K$r5nhJ+#Db_" :["?@HY'C<xM*#t(r   NEV ]F5rFd(IPLb>"q`U#?\OTs>a)X?8b|)(5v az`  a_ '% K00dh .;#4;fL|f'lZxL6[# N_f\Ӑ , P ` U ,.3[]&ryQ21}}Jqs;I|C@.[88L Q: Y: *bNr 5G3F]O~n~`JN\^ rr{| zuJ'X3nb{%Qs80% $"' jEj9(e  I V0(,/ V!)d\#h - W4'W3J^D ;_oN%l~VK`h ek|7#A ߃w*]' YL/CD"($NM!M"mA  S ^0oapqb^';4~=aw+Q>T=/+lqSQS\D;m 1tSJ K7C" qjC;iC>uch$sgsM;6jo0 uc  .tMTw   . rJXjJR2^ =J o [J0e?q%LE ` b  *c]$6P8?;  _  Xt4t`l09L,;vDX&e}T}V`4M @NQC^{Rk=zTmT h:/nw21gBA%b}G :/*AW2[k!b]@:CD. ]/L= R%%{#G &U7 EF`1cCJ X1b3S|~#czIc wp3Tt_v*rh _m_'"QnEZG|MNn2MbLt\4LWoYjVAeQceI]KPv:y`I K,'Sb[? |BX:x~9?goOUn.rI1M ;mX~A=1Z?9AB$1:V@fcZSOBJFDgXK^xE%@!y^%.P$<:bD:KChroEFfoAoek?}ic~#v ,Rne Xy#cw_s^z}IMQim,dBflG[W_ryCJ^ 2:5tv^DjNsn}gkUasjZ`p s/BuGdD:je P=o`dv|ST1kL>`:S5/I\KKYwJ)ip[:YA9BJWVdw|z2PsDx[f%b:snurczyyxeLTuZM[FlXPQk/J%M ex5 dgUorqwvYUQlq\Zdb fVu+X UKB0;P ediG|b}DWG~]UJB}k]Ycmi9V99 & |DRzb>>=KwGGLhh@Xn<I<+_cAE^w_@xkljtut;LQ}`ig3 AqgmG@)j{V"aprDH\hYLf6w| -@}WOYh2eiYHogl}kx|fN|;XaHyjT0XE%?wHBQobtlV^{mrm[ikvpzyl H)>dS,d-jvfnup\~Y[ylEfB5J/4catE. r[iYPfVq|x7xvtw|}Io@H^P\]{JZp]}hc_]dRNSps IJF9g;rbuv{~p`b`;HG1o\-}tGQvOxVUIpqc(FDU?ON7}n 9$0+ck+]g]66}.,d5q`QfXAkl%@tB?F"ouFw*QID1UJ#Z^Xz_4xf>SzD?ZG q{"QZ6URy~bkN[[UTcqQ6</%K9N  Ttn6?Ee:OXxS$aanl}XePk}I'>m':IJ=fq|fs~R=KaMF@2V3;k:D4V8 uyqfkP^SL;\RvjxV-p\XV24,Dbc]f_rOd Q Pa/f2:Kl5Zw{Nbs}ys{i?|wVmskDEn ;,=zt.=2-*/J>4.W?og9I)<KI]ZE*<8c< ,<h- .% # C ! .*P GTA1GA! B+.  B0,& )6:90\=+#!BCN)Ig,3 5 6(7: +|U(.`R "U- ?N 1/C "! PN/9(EC & %6 +7L(6  -3,8#- P,$ "% /! "J/=1 6+*%-9 AE:,(FV '$   3 09+62"I6D`3A */;23:?@ 0 # ! 201.P,!  '  ;#)#b%A 0 Ew *! +1  C%, 728+'"*1 N7 !&    $4):$603!$!> <- R' L"C  %  &      #!S!@$% 7DY--30P'0P!;M4A:YEWNG>J0502  o&*.)1#5(/$=70%DE$9 BH$F , . ,  /-P ?J)]5F:c9P5!142<"_  1?( 1 E,:?#,*6  ! ",(-!W6/<#  6 '(3' E<m ~--# !$6  9A( ?@"%%489+$B!3 3%+ '& 2* 1) 3  7#( ,6$9-$0+# *  --#4 +#, $'$&=L3&#$83L 204@ )(,.0 +7 "#L91* #XB%>*`|b#CDAGIJML9W \ ($$+ 1  ) 9:(%'   %,/ (D-%++&' 6O%1 - 2 C*!'U/" +I- &,$  A# 3) #! !"<$ - ).'D`9*'5.#CF78 A+ $  )+ $ + 9& &B<[& ?d$R;#O? M56 !"&8" !' 8.))5H# 5*P 23/ $S%.: -; +,4@[cD<=$6Xn@!  >  - 6@ *`R @$40&9+7<"*$'312 G#& 7> '(+4@(!' "? 8 !"19 &  0>5/!(-'12.62Z= 5&'GO4##"<5%B$%) ! #18R*E(L'" ( H(E&"" 1-5?&"  4   * #GO268 3U1*#4,%0D%//$LK!*"1 &     !7%!8>>1  +0 60-$*"   =@ +:#- $' 43@ ># 8 '"#6A % d / '>+?%M  )GE48 HFK +*! 2$A  B (%.( "#7 8'!E/ \1Z""C* &  1-&!"= & . 0", =+!# 7F#E".9Z*,AR>#!&+<K$&)2 $" 9+& 1+M+'"8O-(  <%) * !/ 15"  $+ 4Q+%+<(=. e7$-\4* (A5+ > %:Q FFA(  "' ;bOJl1P&4AN"_<7GDdf :2liD"8Q0c7[d 2 4   '+ !!"1!)[S9!?4QC"!LT9 T/ '5E,/ :|  )7AOG-Vl<I;;:a:(?GO'J, S );"!:1% 6FB  6: ?!93"  $ 73H*9>Z ; -!*EE.2%   (cc )/,+#, DDK 8@g1O+N#DS .E14 D!4 :7O(<""I4 >(!)  >8  155*   -G$(#"  0  F%2  : 4+9+?F)  $8'A7EX#" .2 7C% /+**J40&"&,9"",2.'^@)    " `2B"A 7\pK * 9+,64&2Qo/':%w$  CY +#B   ,O25", &00-E=+ ! 'IK:%2/'B16 ?)9*7 ?6F ! *%  2.-$&"033  /)9A9/ /".  ." /OD - ? 6  <  $>#?C % 4B)70X#MAV3 4( "-  R% ",-:0 &201 3) 5 ? 2E EW T+$ %#3  *-k DK4 %' 5).G> "D 06RK      > & .5 "0 4(  4-2<)$";E < G $  $%  &/  F5$AJG$,3L,!1;% 7/E<"&L$5 " lw $Hb{NpB8 4 JP #D55 6D!;E/  $BD 7 4"=8 G$D.&J% &;(E$/ 'Q0C $73 %) K6#-  / !   (N  $4 -& " &   < "A C32* !/II#B#$B"`*4+-%. A)('" )J/Yx6JA;TE3) 9 2S;>ZP=I$:%$ + 6S8=GE!.6+>&$4 $:3  V3 a(?S %1608f.&A!$*3# :31!)7&"$% '* 1'&<A;.+%0$? #[&M( G:2#(*2(B " DE3:1 'E&)! %$ ~! 0 (#  NLO<1cY "+ (1$- 4 %  8-C 6)%"+'@3#i"0( 5 =:1&(" (N>*4)+ "JH LM34:% 4AA%:Y4%4 /.D"L U (:69+ \.]&@ %:[J [H< ,x `6 ta$#%R- 8:/<9*2,#,((i51"& !    R;   ';$;L** 9Z)B# -#)* 4:.+$''/Z 3 @ Y*4# /4%1]FS ."    (#&+/'IR)?.D1B$?" " :'#. 45#+, <0& #a-!&(!  H-8+!  7 <8&((?:E#) `Q2 CP@`!/& >2  7'@. =/F0=V&V PD2N@;3A7+5%'!& c W:-  c)|slq2)3%."V<;D*387( 9 !!( +%-&& 1 2B:<iGC)e$&;!z.7nVT9(3R16'_/-I*+ $38.)(-># 4A2>O Uns RKOL. LF ? M %!  " " 1."!-/$9+/ !BU!' /)F5 Q D   4X 3A%E!G` $$-3 .+.F$#+ EI)< #6A=(>C3' # ]:9%\NP4/DX@*->GQ4 f.,w 'F 2  "-G .^&"5 1` p;7CoC5 &RY;31c/d%=dEA<,[~X&=CSS<UW=]B,#V-PiGCHsj}-~S *$a8 /KC^*h94e GJ})z2k-7 !cBRA?xS*hw)H|c,W RM;U(? =tR<4a?~J,L%AFQ&iHW~5HD1u<sxhO*cZb2^z7 ^4{ N w >bfZ$ C6mC;0jJ< G-z41I=Vlz+ h]|5Xnar3a@oRM^l JScvE~r"dFrBE_A`w&Ud\` hbOg I"zH :3Xu$>oX}|5*yArtf HUK/y~Y;9 C=[BsB)(AEG]^]PR0sI}jdU! ;!K4?Us3A9/T!~CCeLk:"p~e94JRR`>| &0$&A^?Ll8w{IUs[7`i#n{urnvSSX|Bjx$UOU ! *K A>ZS`#hM&WX'M||8edz7m/2lU%}yq>$<<4!1H#Sp~BeJxIxsU-41;Ljv\h4z_mxzB}h*mVa>\HU76U.B`vK;WB F>>2 (y-(JI^2S5I3%y>}bMw2~ !Kv(0  `c"f6aW@COL\^M^`bD A'97w1u)h$gt](COwUWKQ3P:C M'J}~(bLHg%cv$kj,1#C@HJU$ nNnamS&>02(HLkrcV5K^['j<k93LL66ww $FTdO.]GQ~qaRWb7_0#i*b:]rU? P PtIZ 5oY|mVGAwc?UQ  }!kY7 v5gG |R _ g/rR3*"Y/~@  QmgzXmC gTP7 "0_1|#-~p "et@pVIe l YPZ5QbO  Hz2Af  wJ4@t&n!GVaD&e_ ?&X {&Jl %aogK@%qU r@Y}X._c4. N W bEh"`p3QaSkK(!zhoe?3/4.P4e~ b i G a)9 jrITu? -)\`>f3/GAks_ l< ) n[J_93d,Qhhh f kRQ\N !j] $v_<^ f\ |P sT%8S`K'UuGz35 y vlxk:l;n = 'Z%"#GfF-. qz (>Y9WC[UxL< ~j%Sz{9Y"+{^k% (%Tij:!;|    d $(o A=!p N+ FBrD{{f^-$1|0b*wBG}F"8 q m*92{  j 4H2*o'AsE <,J  b*o \!Ym4b=E Z$1.xU8+G: Zq7v+J4?<X3u`~ $=.,[8 g.u> r/=^zv9W s ]*Dr\qQ4 J Pm)jsvuIIM/ښ*B& ["%%Tg"CGO=>&S< H6y"{Rl6n : NSPzNd%4*q;&C-, A weN]W g_I `sxe{P:{2T1{+ "1.I5*cs 3RHYUP}5}ED GX X] e 'OBC^$' }+Pa T /WedKV[A7 y " o b8$cI !S~ ~pyOS  , : $@=Sb S| zTcACC?,PsZ0|gZkD$M9t4$WKn`5TCdV^zntYXK3aO}P}:qej)Y!#x6XHk9jeNJ63SqY*rD3;PPdB. HZTAYvS)pr3[c`mI@X']nE[7-c21T[cy;I4; G>c2K0r QcI/^|pP6=4Hd?4_f|=wyVmhi8dF.]1,srL# 3#"pkqn [Ux.wloCh[]jo2;#M*IHis&rgogxmD wG1 .q7(ihT"V_N|WlywK ] ZUL=ka" 0EFH1s* a71.av 2'%] OUtWfotDag3Xt40\ =4_  ;$Y|4BeYM94/Jo6PG] } JhTd*!6+Bn%8 ZLj|KO' k | q'Z-kq9HFsD?.B( uxjDvY~Q!E!j|2<5p!/=2\/? U2cZTXLjy6d:VHM[cv{q9 @M:- *Z "y'b~j[ H s] M%X 2O<>s F:OGC'eWj?_F D1  ~)|L@F  yV&6 /gN6FGo G5/bV7[e}4M#GBNES01d>1j iL&b{\OQ O,d Pr -F1oUjBkj.~SDd `PO 8qAVh  R bzI K7FK= !vY UZ,.%I)QA܎Jf D!e/Y pW K @Z| hQ ! O$c B8+n1(4 d)Y@H"I+VPSz$66<? ic ipS\cc; abx = *UD-[ X}} 4-MGT@ _wR;q%BiM c   z 8o R +R?geL PP')FB Kftw") HD= dbWB5#V g9l "9/>fA.Ztj\ )6%17lLm ]  ; ~ad3%;  NR&z^.7 2 > 6R<VZq )5/ m@Pqe9.@3MA2 v BC5 2 7kMdoMW{mVF2*Xmk8'8`)C_sNLiqdf .jm ^Pb vvkS.![|Wo|$".( A   Sn1zo *K"&-<RQ  YTEsNQ K{/Ib{(F/2]# _ E\kLw6 3WKOW4Z k"x; =ud_8iB&X3{%ui1}0 YۨZe [{?|vS2{> o,<1Pv*   |n :"1? 7y &q]L).X Jnp'1" W;6 3R re 20_AssF}x=PJBp:l;(-trF`f\u! FV{z1 VRo| lJqwwu5:3f MCoPM$!_mQ30O'`>  !&Lo;[ Nb=gk S2/52B8m\wPo61P'7D!\j'iB$9X2\="=}l-cW -Bc E  P4zg7} : S>}2"X^m<]  Lm Kz=$@,-E.  F3Kr$KRuhTxf(Rv%@H%-<(15V<J6 h! afX#tS=VQ8nIBLX,SnxJt0Cw14}%%Wg=+Ork,'CR495#Rpxj }=l ]k. jAL,p$fMC$M|DRfRs9gAb@ q;"" u?uDpVC7Sg`xwlN>  ioe_Du$_).rI-?B xf6Fndtzj+Qp4]vE})\$'4D|M`<b ,2jn"C}k? Y5ftKB+v>1 FG9![e:x ?tc+4jIpY_sNMCqU"U|UHmfa0wX:(w,=  idy5=1%Gi;?b#n' SqhcpC5&x.k>f< dg2JXP<^@$l_RG5' ! 'Zvok0@km&Mnd\zlJ$,ac"\u=8[<?8+_qR1pd?AbEm80Y;Q\k5H^>-,`ao{6Y#a' pp0h"}/V73ephf{&]>W$y)jb\`*U`W_99uaay:'h (D+)-8mPj |b]*"uQ.q?p7,K:OQ L.SlY3lycMc(^K;F l8&2Bo[:=Z8tRKAoB$m{VD ealGuY ]>UY! oKL{\;%PK}'Q'/CNz?3E0O4]x 0_tN_^[b95~p'*?;@q#)  %h 9 7% b e'e~D>w1= 9=Ozd?~;bMPh_q)E+iCVKGWK$W2<U.9!i+(vGk{1%]9irEJ2tc_Hzg7*;8AY^H:/q p\VH3L&@8 d_|AHD;"z/W ! L));JF: B# hqguC~z_Y(j3C- G yrb{Xjd =( FpjEUn`= z 4PG "y@'Uj{uiQWyZ P = (bj'#M.em5~XI@U)XqtI^V-0A Bh: |i. aE5 2 r'Ld#_['cNI3N76sJM\$7W] xlLk F)xwbBvAY(+w@$2A iQjW aP M=%+ ?M='@n`h[jl}!?"S `[NL uIeD2Ito#Ci2e+_$1Kl=c  {gPElqn[.KW'@H"m|KyMjO|P|-w~Ypp1G% #e-J.rix r(9MKeDcNk78F  "4:3iTpH \# ei'B  &]mX,&$o3m_:tKc%-a |wV  D{{["  rL88$=: RzJj\.+D1f#r' nemK.;2N S  l 9g*,li# J { Sy:+/T$\QMu&:   i H-g(< !l4( i. m HV]"` PxF% wX=f`1^j aA w=0jRvX[~b,U CZVo^7WsqVk :Q)\NC%;lSRg o(4C% 30< [j)qFY- n _ (m6j M G;z=,%USh``P+5! ~ ^ iTto)?.yhBd <u 4~X;$ , } 72d]\='L*Gt N?-Vh5tv0O]?NZ%e13aWF({S6X]P.S3W Y)rd KyWz9TG@j)V5%Cn3{7|IYUF CE}x OqXOHVb/h.N3O;GU!01J1S~)~H3Ta9'Gq=!FZkQ8* ]u>c&VMzQGvB1W.1A=#"|F86+ d%Ll{96Iz,i RA-G~cZ`5TcN:;Ter/{VD`p#'GJU^S 2@}arw m?Bip$|N6a[-1 ;Cwj9w+q o  2s_u _E|+m  ]HQsbRh#J*8T ]V/Be@ Z:WQw E[ww  g:Z38NQAQrakK#E%9 . Bhm3B1.8/ jMA!6GEd8fDC&[!JSR@3'/trpq"XP![ qV O1;LXha =\ pz&?m 3 HL!Wg4:-3/ HS  P}>H?]s|g [aFuL2 V@Dn BP rjOt7FLq=}:Qz aq= EV k ?<<{nD]L'Z?#O, bn-z-'Y=M y:8  Ot S6|b /AC1 c`-)ys y\Y  m9]*jd> W  p  8 r~b9?bqd9(zq 0'}$7k$L;U?#N Yy% I j$P63a.T P mbM[9#:IHET<f+, z /j\x8 aDxXP Vk3L :'Yy9<FK;o3+|E6;]?n8 wb_ aiz swj$a^(}01R&PXw7 Bd*7l"c 3/.7ltV4etF Ea&~q&U{a/ P6 f=y*[_y"S9b+^m2| =}e@Z!r+]#|cX2 Bviv%(_ kF%}0O@Dad05zCz!8w,`Z:+\p+U~iUjp8G x@Pf}I(O,-A+/ 8I,YH:Lv _1GpL 2q  X|x+G" j/}=0Ao bmc?7n  >g y!/hR03P85ANF 0o/YQyZ3!^e TQ1 o z 09 =)_n+ k(v=-LVKl X\#L  a9: xw > >X H0 ,He0_WU{V]@zH|!\G^G%VFe{@("nI)(2{}$x.C vEO+msJ?l " 0U 2)WyqKG$= X G -#Ar ;Kd A! f1w n" 9=rTpo'fJj fMH$m 8>pwn,r>xy+q: #?L1/TWu a/csE9Gz A4b+8R F,6j4i hzb8+WyG|(mbp^m Z%gyZ(,h/$j+q6ZTaVC <{Dy R{7q ]gN7k!/rvkWLRzxT~bby%%*?-l qF0>jA$lI=YA)jh<+o|"dY%9gc._- ia6zjR`^5igH(Pi2o<*^Y;4g?K;fzO3M57MMJ>L^NGQ_g u  2Y?DK6 y  KL*M9- $K V& A !1?v  } r tP}$t 9IAO/ Oo|KZHk' +( Bb$-6 ] $  z`RbY*F1 9 ?/;mT4N   u} :[]#w n \Ysyk7E 3 -I : eD>,46-G  iIpO N l  q-b71tES eZ , ;]mXj*O>E   kwN>SDsmqWgV'n@3 nE " fE ] $tj+=Y7I _]k(G( J Y 4R)F:Gt4= #hcarjC} , ]   Tw&CFw[h/s j _ KZU+4(n Ysp5   5oC~js8H R _J7 L~g.D> ] {2'l$O E(tn  {rhMMc1'Y  wl. ;t(ICk,H ? 8 x"7H Xd D  ep)f|L+KtUX/RFg; Z5;bR/ s )+ Fq Q& dln3{ q#OZ] Kb^M? D  "r kj 5~"8\|quJ1 C4YYODM];gf t3 O /aWlXo4[-M_[=2YtBsQim^.V})*G!Dm&z=o1 (Gr4a?,-yONjLfn@ %=!&tV%|oR% +9DCt4&hs`KEkSD 4hD5z|=e@zGDMe(W 5E"U"k'Pfj/]wB)aNre}:shk*GrfJZ 7WxHvM\$Y7VaY@S:|woQVj\H}I~{hPf8XF>![[*+ go>IB85N%<&3YQFN;,VT o6OZ.K]ndfp0 U: ZuBn[ ;@oo/ tMH4DF k# xRb]9 w  BRWo>;#d*#kN1AY]D~g F] W?lx*  e=Rv,8%BA0 f}V1/|_1?mPc |XWB|d 5~d }s]Z6+k[1L:H=T fkEGfAr\XZJ #y`<*}Ky zh w \S|YGRK:]2 0J Od.SS_Y!%V" !K&)Z$5}   q gL( %D=6I Td{yf|uSk~s+h&~d" 0+% %}]| ?^f (s[4sO j@kw+#RmyzKk`}LlFQ!q)Ps >x1  2HP 7  zEJGHtx; 5& Dn9IC@yikqt>hJ -jk  (fYI o (;4 aJseEE&K<LZM o %]~'Eq  X> ;}T1+?  8H@WyBOT<0_(kD2O,K_kj U. La! v!<  E|YyFW  B ?r@/>}w 3 *_M|\ Z> '6Q b6iN#7)82s-R@ 0TnE$84 oaS^) '1r#Y&M%f=IxC *8Vm z T7$ m|VH }l%Pu `:Tys75 SK*_z P rT4 T l8E^a1l\ S ),i-1dwb;mCU `de^^cKe2" #} iR).@<J* [P b ?hg MTh) $J+ NJ / 7u"5,*^!W/e M&\%#_7^ h  | 7g_D  = Q{ 9 Uk zN_|8 Q1 P} !hG@F;Rf5%} |'k K-Gi o i4R 4;<&K  81 _Z@ ![-XbVp1R^|M#i!oN 7%_A  [29t  O; @ .t  @ f ~ lYJy:i*?TQBtz"1qaVS4X  [ g QvUO  ?.RPavZ m q G JM9o'\Y+TF(; "O Q :*C{ ;L  0Np1K`1b0FMp  WpF(]`*era3!a(A#:Z_6 {jTYCk5Cly b [  `@,1zDGKL t.' y |gY 8NcYj4640[}+~22" V( o) f c#RQL2 bF*j M lyzEHZZtlCG. 8// .?- aFQ9!! L/%{9=}.<7TB; 46MNm2)o@k|)V/H8NL,u  J~tkH$-Y;Yc.jOhh3F)S/]Se2>I\20d~a;U 1^ nxE~HKO2w@89|q6 9Gh0~1t9cC xO!|x} !Huq7"6!_`u~bxgY Ja  ?)5@:RhBf-MI=m@@qvVV7*/A-8i'y( WJdTsZ9)2L7U.@D<<BnPdt^ZCeoQ Ca0{zHb;CVPu;JMN?M3$0FpI Q'L^}iS\xC0E+S /~Pf{u7qh~_m5  5JMMQiK8/%7^( rp2cA{B8MP?!DC"o$Rn3- 0FOVQ{ sYw|&hl<k_Yb-?}\n^ `6h)\01cs,' `P1bskk-|A}Jw5e7[ fSp<0 Giw4Jk _1)RCLxBC'>lUAB 8<Dm8xk(V\d) Pl$_k( I ,p w2C -a*.4#t5Omy9D[M>V  wM JckjR(p?9o&3`&" ] ?DO|byE)>%pN_&. |IZ;$aW(Y~ m n2cO4O&W>]R@MI"dK1Bb/W6PWM9vr.[lo arE-S2c z'Z9V=)~H qEE9QL!&7VNKR uFm7j8kao=}^-%DZM_:{2ELdO0h74Jygtx1C&#2Ih LZb@GvXo&g*$WG(.2gG[D`2srKSNT7~zi5W8p1b<='nh6O_31&%}m_`/F>t#Cn7T?ulWtc_x:9@ i6J\*l>d Ep# 9%;b,o+1`$>pZTh"0l;(Pvj#jnr_Z{O1o>Fz5e|e*UU"7rB=m#x_)mO-Djo]C_Z9+sqJm$:jy;fAkuGL8s>b6{!NJ`szmD=4<7l gE!Gx.$Wtvs 7CR Uj+*B6w5z]u@~&#nw&($"Tpq&gbFd-[w%X+:4T$61pS7L-9WK+P\-Zc&0[b|_DP_Hd1;! C:XngdMCeYjePG8|Qu;8,k> $RgY+;6 &K$W5yN" ?S//b!Dp3% }2qW bG3 8uW08iT*~? Q{[4Wfwc3*.lr:pr+1cF:Et  'Ry2q-+6l!H<9 ~95};}i'\0#,L^*[$_ ) Sz /#>BIQ aIa $LX< +;4CQ'  j?fW  O{1u_2`Qii#kTyZhj$  #(\y>RpJx!E+:2CZ8t+b   t#Ho/ z<$RZ&C  op 4 u^:6j[w! _ |" <O1Vd Mz?X6!Er|\*F=22%cZ&= ZfaB[62GmY {/ACNp oALx> 3tkz, ~xpO c]|A{ /DB *iJ&[0qWv]T$>' !F/r-M@ E4.[i(Eia-KSQv'y-"`l&3x_}3z ;8& n|gE8_!C%th  o {_NwL["  >yAa >2 ;$] K| mX1h<K C s|%EO!6"xT\i}uSJOhB  2ek c7iIA{dS8'(1JI"en^4 X CA+,JXNe[[] t ;k"z *c ,:d8*h`8|yRCDDln#1-iel|Q5W7sJz G8 4Ko8^tA _DP`$T A T_XkXqL>xSp ~=087qt(5=eWeeNL~r|r8\1v Zw9_L8]2fEKsnEJ7c{eNIK1DOEOnhL&!^;u[{YWBz|2KJ1QqR'fy!{0&^iF01CC^on`cS0?13sg%(]^6,6& wuOq8wn ,B!\#t:-_:_{ZK]% 7OV =b9zNM T*s _Y<5=MM\x>0Hx4-\>iz8P yyuBb>fjGs1>R17nM7Br ){_&-6 z;tYznU MX4?^|MC8o,dWS62SZ--/O_AI W!Y$wD7~3uM]L&/.HEvd,* ~-U^'9qCJ# !w6o,KL 131%|HgqDf1wL/L PeilhbFwPC8j$$;/3 <k +A xCp+KuQHa f /b%q';v#&%fW*aM%py - x@kr4TXQq {lN {P|:9 ]nBur4mkD#8 @jDJ/y}]e~uf2H_SI> *v 3 RA)cKv[FPt2{[d iXI}: daR MsXge:*9W;5@.NK6>lD[(H+k< 0=RT!Z`i< M* w Y4rFZ`?{ZRXP ~gG.a'kB69Sd#M>6| 5k:W]Sj#fRZ;b5y|2`c@J7H)}R3?;iPNtQ8)b(,=PSZz&i$1hj?O2D:c P`"Z{D=%9rWk83uB*D.> ]+DqbLS%/h>BqpRPMoBYeOPmu 3h>n &uHNP<|QS@d3d6 f.^5>~qnL< "ZLo@Eo!rQ|81 TWT>OM?gXxw9Tr7~gIKM(dGE_f^>1pvQ`2n"p[n?l|7@{+W\xy_%N~mfVms]`{I%^qQ@7gR# x?vu4(o:>@N]\P0 JWunyT)W}MY~y{sd7n5tk m&(O+ 25qZez]Xb~gN`&j@! 8y)J:(\-E-% .ZO"m}K  cQ ud[nc~vS ,:n z S[ /B^D3w*2 ^%(Q;K j /omO z\g "3( Y]+ jK2 R~/r'B1[D e.eCzzQ[H38F87I%]6 V"E v D.*dC6:g7lL8zN|7?` ~,2-&|W"g ;Q x :\$V?k! z]j~k?.^f@&a)n3.ot.YD}l` [ L+c:2!>S#uEMbv %5W96`8QBs'NHDp:X8=?g{ r V:9H D Ow.lD6Cz(u [^ nz Df%D>!Qi8 QO; HQHb # 6 V[rqch;Jp*}648% :t1`[Z=zc^F!.KS \S;EXT^%QU7f_:7 32~p7U30jyMYA , K+l T ? y H  dgtsmi"embWza.'aHX5Q6eo/;l1)d@$ 5# jU6=+/CvN`]K`xPL9q@Id0.8&QN@c^ 3x v> |r\9 >4N.7VwFgj: y(RGy;4@lh=l*wyl#GRnS"]t6bkd^TxG4Q^[n:YM;YR7WiqnlL>82Z4QmF}. ,&4]1TQm !x:qIe~>`~I*w!Tl)~j!Fw~%22r{b|~{!0nK '# e^kxO_#cO@vxw[wJi2Kyj{Im!/3j'wT_,hX( r `c,RbwcJdVYC!:XT:zi*Z\6y.]oi6'' Z`}Ta B'~?l[Vb ]sL@puK7 L2S9PM ,(R3 J?4?y 49M7 IWr[Wh:<7xBOUlmog {)&'HkTa]o  jjRN\.=uq |_lO ~xEs&\RiG~t]P\iiC|vMJ Y 5?C .T 2?c`Olxp6BR6/:qpeqQ QWxYE MjC*Ja{0B>;JuRzNY"hTb*%gj(zEFu#(fDO O~n2Dzy Zm'U{2s }m9WH:VXZqpe@DZE3w@/IZcVS`mgMlP2?F!vyZOPQ@vd%6BRMoS~_BX~,-^GM/~9@TJ5*  t8z=,u6%LV CYi$roh!\xJK<<$!N$?_/?|tkKabk0SP4pP.saRzA >PBg f6={ t] a^, G(^ x^5Hw  \ ;M _r %f=+tt)OpI!n>Xik \WfS82>jK]J @,48eOE?TDu'3=pvZ'!aYH!S+" d-;/.]p b-LR/RxGkoQa(&H!o z9up!T  C iq& v y p =`@#9(Rk' &^):%8)xq   ZvHD y ? J_OHN+R W)B4^%d#s.BoP O   {b.m !*\?q5(bMa$.Nzv}@P{{X- ^   z;["E[BL.*^sCY ]`G9tf$lNx k ZK"^WQ|JH # z Zs unjJ f':/R\gRNV> ZID   % YoL.AVe%w3"^3PeeS`~ [ d %'~Cr501k d5' ~RY y s u0y|6\UH8".P c7`n =+vI2E5Da jZ *3hd9Q )aS xh"W5N~8V&AImPnK;" *_ w DS wXkPEX>"p|[e miDzB}d)w, k     OK=PwuZf)5iKLB)rA+uI=lhyN,m&@o 2  i v x:D"I;DB;1;!?UwwNr^\{jP>"uJ p} M8 Bu (Q_v+D[3d*gtp0PM&w 1)I{y J.pl*JOJV"_t  [y-W5hqp%mr )A`yw ' 8B+nW A'PgP\ZF4D| Pq3#m8MW=/?lkC pU17 `@T*3^ "S HCw E\#48SmSB\(n-3QckDhi)qj Z ?{C] omZm   zB_v*X Ws9oX *- )6,i%&dZg *?=/ u )KB^$M~ ;fmhZz?@\)hJy+, K6 .wS :n39zY`;2YMjy@?L|)r{<N-4B# h  ^ ]`]Lh2C $JG r;"%p) sx7hkSMDTSk>r"V^"*5PE /$ V g$x|e9^&RD)3o0<1  m rdo2ip^lpBz#} 3a'D&!! s P Hr%D# $nRRdcloxZlEJ }Rk8 /C=r ]MHuN]T *>o XM&Hgc'{ ,)/TJ]!p:$aW+[U .2sk-A}%Mp $y8Z lz=o*wF`=) `W40 -i HoBs dx)\1;~<,/vX 0b5 ;3*(1 F8}'k@4R:\2$6HwIbK t-` [: 3f aW3uT=e" lF:Yb5{z'v))G-}9$,> LTd'dn { K9"` YDOY2~u{0DEW }R,jOO d ` CmK k-? %OJPp+3e.v'G82o!VyF$8y#uJo{%! ^P#iw?>"jD 7rQIB_ai b'cf"~')bqr3G]X,~, \  % =P\ykJZe~;mPCnn]^F#'Txx08bEA0"* f7) .,F^e@a,13S"aQ3ZX ci+[P{uZ* Y U a_Kngw  !;iq!L^z"/kq"]p*p { eaSqy31 EJr  G8cP$jtA~cpkG#XWFx5@wR8 fER-3,F16%0~ e i>VS_3:l? J_Zs4+n& ]5&e7^:Qq ?ewZa}HFiHEy:Ct4&Zo]`#oKXZ{z=(3{  z1\o*PolbYufQ:YIK"&sC'+\Ne{0bBzX Vy <9%vR6><cH4 -, N[TU9 *'iz|/U"mhM#hDDU/~- Ch}y%TN ~?^&OGCKKTZ~hg4WK! "2p{ *%rM}[gov{ QS;Os@PiuZi ~!N8qR(f3Estj'XxZ}g}lGm],X:G@14'[:}SUfgRUGqaBr^{9JuC2fsr?`Cslb*QngUa5mzTg~752`R)J&m;hl2>WIx +28xH_7YGCm`xC &&)..1RL^zxP)@ ^N +E*<^[qG!xm g/(>z@dJY~G@ZJ^m;eUDpg.Zlr5}?F/] ;# q;rw  1Tvrp+ ]i}jb3(mw6tLs#& :e>_S38gCr~8Gr6IAA;||\P y5As? cnln4U<k%b<CK wA6?j^ } o KX'' yp5J52~`s \ H][/kvC3he .%h}7 z`%8+dGA-SP``Vs!9Zx9WTtK&g{q`UYU6SaNV|Am6rF.?HvbVp(agY?N`u'K9cI35~,`v\rVWnUk-^{2#Lazv6_Ex{gXQvK9#CZB"?ac2ls-N3`}< _!b<yd>lPe;+ J;Cc *d>diT" _2e:qm\!nLN/O"@1d.9gR EJ *mj(g7UEk[KNAv* yi %;3 ]&?>u T Z1vWhA ? wQK~ v g{[:x5o.zf \ T}9U_NY&40C|,"m IGh8N&@I\1C9YH G5 !>[ j 1NU 2L 3|*VJ &8 CzU d-_IIs>2u`z71 j ^)"om!],*'T ^M;0B$ W\!R7 !< 3D ky"tZ" *0jX1T4 sV&\CQJ.qb ~kU~})^\.R.* 8G Oh E q X;sh `Qhl9 )/fQc5 , B~ \ QtbQN*%b WL>b$vOTV qgP:u(k\uuUN |={]y$0Mf+j0Co- ;_ +V >LjJpzwtJ$P>]8;J:Z?<(@SL>~|*%KznqV]`Ja =5o Y}V-. ,=rE:trOC$CP0T8k/1@qvCydT]r ;$o k-o^HWj|Iat W8,i+j"dQ #kYTy|(tyu#hl+Bt{Hz0s&=/,d9E'96w%>Ibwv7D:;_npoD#ytj^I{q$@fN2&+ex;2j `$N/Bf'1I-=tgUI$0IPi(LO`#R,.@<r>6%BV; H5gb?fI>ub|gV]A#.1_"'AR fxRT4-ayf..@=~dGA( q[ao\!U4(dW5O+.|\TDbg`;cQNYYboA^{  stjE&i*T+ A6}$-GLq9CwAmPaX&:6wJ6fog#HBCl.Bg)w,Pa17ty#^lE .u:<zzrx VyB;#~6Z1(ORa{--B.Gsy!#h$p$f6dM i/M ?Azuyn >4YNE22i9z-Q;R m R~qxf0s>Po#y8=daetgn)+1\WZ0 i2cU~QWnR0Hu0)c11e!NiZjQw bA*0|<s6er2C=W%TQA  ?M+5.Nuw WJD4b%[ 1-6q!>N5b>d1 y'hLx=u:Qe4[yF M-K\jpsEG5{0]/d]KPzV^"L%\tB1. 7 &&[;}Fiv I g ZH;ES1k+VS](LL!P)x=n,j[`@|_fuq> 9F9C) t~tAqJ *pc9n(b 5P!pVo GVn P);d~\a6 ' +N}I-naJEo\<(`B)#>@m|n >C-gJohL[ UBSy?  "~f=ZZt)mg`Mm/|=EJhP=%+Pl&_9;J- = =rNAj ^ BeLJ"dTLNm )SKMG>SQkg@_4 $ $YsFg6kW^47 Zt JNg  :3:fm1{_MGm`\w3*|AV#zI(Vj*m7XR0*j\}qAU`/NvH G JPP< Ax~iU;%ND  7Eb_:8^&$STa.)eLWS-7lKq Z| 71 )C}MwI6[]q/e=.b3<qcjv"wkK0;!2;H& T ^ TS J eGLZh(YL BZ E_5ofvw&@SJx}OqN!d|:D >A*!Z\sV 26u%Qhf&`Mvy !gF%$-A xz Oiy(_i2b5_u=o E _<pj{r"n:d:El*1;_Nq]i? ^"Cw Z&5_*Y RC:/=P^jrGHdjWu oi M"Z Ng=Rr%1 FD  yhE' kz~ RaUGa 4 VHTJ, Q n zF Zv cjUJaq;|[v 'y t 6 4HbjZE' 6>cQ6f9^'IivI<3N!?^cE ; Y]$/" <5Rq2$CHZE9I.t4k?6$ng*U6>r#2m,K;I<\>\Jog6FETO`s$EF y==a]!T)cj_s--Z{et1?P@c6[(^X7^l?mx|;x#}Oo)),+2 M;VUw)X cdecy_c~tkc\NoxeW1Z;7F\l_xPYyvXFr2:I:Rz}dQ.1Y_x?q2!~D!hGSp EjidBXmRtSY*g2& u ODqI+{"+Ns9@ sXogWmN10gt=AG^*9?'rHv@qVZl(C,*okt/RMOd?&oLt7kv8l:NyH'S{.7Np!90q7-fW*#y;rZ{o*225Qk!\7MILPyy-MZ:B_*Q3Q EdD;= |QqA6FL#hwm}(Sg2a<Y 9QQ<a.c_;~D6u)&17K+>iw7Rc`t0Q?ckBV8;\Av0Oe;*+ %nTr$8 *jg15[w!@nD%(Rt Q+w]i$o~ :o@9U>QKV Sh K~22D6/>N0X 8 " iJ2 ,]q5pa,5+:="O$ 2|ySHakSLG(g'56A)B 1U!Y {t7 'p|eY:J8kw_ntr/w=MZZ.R Pp:=`Q%P2| 347#;շi d!>l]!~+6Nn2Q}(ZQ1-E y!S+1AqDGTZr)#e6+/ e `' hnHro :E8kqL27Z )lpd-W*| l OT)T6vH>"zN*Z0$ #sc< rA hC;)$ :17yX6 z ,Wd IZoO(.owZb4|J~! ^G3 q r%*2 :݋XM W f7JI|qLk?OM  #J<X:&iX$B)j.2a)uWeASm7K ->g,.l43ioY>6NQY+/]($V"5~(D ?% /TAD^OWDFV eA6%4[}BjW4[ J S E,8IE"-DZ031-VLuJ.j2 EvKJnkt}El+QZ\9o9Y6\Lu}6J =m$!GK gGb k]P/0NDaih:PUm1rSJ,uNi7 Q$o4 #Z&\iK$ jXIcwQqFdDE7(-9sly!}) z\65F-t< F>=_Rg?}Cx} %x<H!sUk)'KB4>qx<"V;*h_y=$Z BjX2Yh(`ReJ:VR,Z'zU{p1c_z &0Vy MMFdJ  ${7BTFLR6#B")M(@G i t}Q;i<3qivu I}J>=y36 C$$(gY1WUI^ X wL$~o9+[ZKV`&9EW :Z16IHtX]oKI;$lLSEd;")#auK*/ &z3l]61P>p /?C;Q\|{ & %W{Sda bWJ[bU> W>=ZY($|i> IF @l r r+.! }!B^Ph* Ly)>Ny&..uAC=Gq(@y^BK>.!|EOl E L HY(UQ/=0mFp |cASL  OzK[dHy}:LSHG(V<rq9S rq lUxpOZMG L C K8x7BD2V- \ q@Dwq|HT| &:/Y@w>hbrcP[j$CiIB#  p'bd^x1]r~nqM6^! 9gF$5 :fAtV5.h`u mmM*9 N~/L ehx`ZFI]"tNK4$c|!qY:tj`S$^_/!E9'q^2{-u{"O 1+uoSTNHBY-6z?'Xc7 5y;QrF q^UKdcu0/a9NN#j6 V 1.cqq& %^~l`]|j)|`/V\=B4 WRQsh7AhHDde.mR/JYq@`:.JT}UsFd90Tz_hA?tDH{Sx;>e(fp(00pN" , e^iCkmGgBCdlVR@8Dqxp|().1L 7K?QLC` s ;wXFPg7D* 3CSx,SeVI.;~\e)cfK(y_r3@ KnUng:NT\RXzzXop}^BA]Gut9A />dQtrFWvK{rcX]yr@}boLjOyzd?l,U W;KT3g:GY{SjwIc{_[{xfisEuGo`cB\6W?W[ZE2plXR{p"zoN} ua(Q(3+[>.|cYWs*>Ut%^iXX#G P}7v[K_NV"Gn.}S{RDC> hC0(To5Et 0So%? O> fHUs;7GXG QT3 u g>b{zP7A\M K$ AM1';]@~vTw}fx/F'4EtNW';)RdA qMq@f!1;[-JH 4A&qR}ibnz hC 3"5\KGb0dz'/N ":0F$y(Z+~<'  4Pp;1X&g`P%NY2~hS8vt =W]lTtCm'xQ@yC?]Yao>dYQapZ8E.jwC GMH' .oY U|f*YTs(JfAo{>Y4bbmp S "YNBFZFUD|[Vr.*NF%$'N.c_dz9@4Dbh|E>YJ NhxN0Q+X?luHEB<i>;h;O)](Gl;|Y58f{g#VhA2 )(Eqzbq;2I~ r)(\5Z!`5"#/@=sVxFh'x{{IHC8{uPN?=s^l^i4_`wZ6(U^p>f C %#Nblv,W%O(-YxoM-w1$r,ic rUhBrj  dk5j$lya- GS=) '%1 +h^dO:D d]NwB "KxW5:' %$AW!\Z8Q)c.9O!00)n{:IVT:;3rG~{;4/ wIk}?2w8E^w , ?HV,h4ry`LFj3g=`+5g Is4mH:>c`-<V|]M\?-* #6ydo8LbCf<p\mA6&~3|&5.bg\;,Ep<gZB?.21jz`? $PMxx32d6S{%veh,w{bGHa+KV7I!(x w26C.4~E)d> OU5'g-E 8A0ivef"h6@`U lXex-aZ9AQ+~?K)7][~y7eQAQtAh> wcjJU>JlV1 r`D(Eu# x3|N5wEM7^7l6bFIMv?jET3;OF^xkh,iN] mSCF\]3E*+4Q|:S8sazsj{( ZSi Zbk:'u kFdJb ~ &yUXomn2 .Y "03_?:5xPxx[$`i? }  9S;[{AW@w}"2T(y1}l!%Os> R$O/).T&m]Yv#TK![C-/fGpLTEw&j n  TUXu +@G|YCYk%B'V(A>/\Cu)X d6d#nfoOy @ -4#a@y}`E^ ["x<j|vh!b[]'/""2`JGvb?c64hF^s)&bG.bs V7KHZ,Jn~`w*~4 LH>m~7?,Y@3WY]zg~ Qf e-F:m8un.)j8Z$$d8EeZLc.B m9I.Qc5M&JC}o~':,RfC '&'Q:z0{Fju^8y*3~Qua1sH,~Fqnx8))cu778 p;=>d:-6xjZ?..vs s=vbn>2eaJv&6&6cW\,Bm\rj&'"{.Ko,4fyV7>aVIvH I2{$_&wjDg~in0*9 JxFeVPP9+:xRGfpwfE{C\#>Lul2PF&n<qgv BLBQ.>SD4gPl@kB|H8nT3\h\y PH.xo^Un5*e_xp.Prb'\]Y;+Q] p&o =^ Anf;K{u6iH w<'PsXUpFUE $'W-\g%R <0 2MY&\wnb0DAu],)<ZnYEy,f p l?w]~inV"~s*eh}IW],"0i:B|A5 V9QzF%.5(^5Uz1[6V8N87zoN:%9 2kww_DnjnGWtrU>2bBcmG<&:+-?0TS^SSLtmQsUlCbV'MltQD3JGScG\0Dz#xlz<F<|M~>tkP=-0;{0qvkldz C:ll~E7CM|Os)d:]`^G^g [!XQ!~(hxvGDM"VvjR,|,{ Fw lD#h.rc8iN/Qe-Ox:5<<po>K SUSWSi AW91 guNLA ]N7m`:I|J/(;%B4[F@s{>*<$^3hyZc33ZOnPaW!34A)z&i\sSbO1Me=L%pFA'yLb>'hXFNKuP,AHo]QEEf%bE\zV{["p17%7aF8lC|UGk5\`p & 4bi>KRg%/fO>'.5 sF+l~/F<%n{$=2LBE}Ijs ;i_l\F|m|Sd+"?W=zN*]kgvPE_Q@I.eThT/sYo )E++~2F  8x05_-**'/u;<tY3Ndptd|zbo,%zc9dK*g-Q !Rnq{:n_ teZ0 K3EkrN*\f=Q/d2cru;>~4p>]AO:!<e,C89o$-D4c,_3hB[t1;(R3"D,Q(BJNP%-SuCoteAyWHpS_ CFI;snJl ur%vl{YOvC%Eggc&(7D >M (pZn=v-$+RC,!.2)k-79[\uQp:3fV7\ |*LxUYKY?DqM.tAX9O.~e.htO*| w8G=-2v{U_AMPTg#`(~ byFNIOqt|Rne1>fpJ Y,2Yn^<qxK I s1AB:[gc=tf/88$ov))@4C\*6 (;CQIM/?MP 2Qz^G%u|AliSV be)2(S[+GwN@Y>=<Wzt;]duUPR-cFXG\Xq}#v.JL@~-S2l)MQs{O;7 X\=]jWEH/^l[P"?fkQD>#ojE-01y:Zvg=R]ah?0Tf.ByO -2# 9[Zi>E cw|~[uF8z5 13i~s);(\QlW%gv5*l` GhoZC B"f]U 1E]NHqq&8!>Dx4tQC- cff!ycl}zL4G,'JmfuQH1+[vu p'"Ou%;doOAla?>}uQ/ri~4|}E.i_=c~TM cSz,Z/KKX]aoM~m0F`ujQ~[0j >S%O`{.pxiz:Z{\PC#]@!+wl$Sqsrv.iX |b>EvkxN!rqm#~l'%ObR'LOtm|icYlx4=5u]`PCP 0\hn6ZLTl,i.$#`-]t?| Q[m:'5>Cyd%Vhip^FC;ND/#qTa+[Mv5kguONjQgo~`O$5(7hFTk~F:Gapc13uuC >2c*gf]\s*ky#)d uuu@NgBsng9riPYJZ))0n 7Pe|"OzGU9F]sJH&u.|Fnm(WlMwz92j[fuUGt7d2:&rV#l"o:F^y)d3Z;X%o\TBN9 T^iH7-AH UCYSCBCr?b!A2\]yQ wy1D7Oc"4mxNCP@_i_Zh  g s S] , BM@W3C*K[F9)%T$y5}$&E ? \ $:+ʩT& koc~=tlżυ Z3)4h/r ' f NlZ[TDLwM:S  +BsV4(55 uh:}c<= N qL#hУ4%2)X ;FaP 0s]^ͻ?*L #^ tF@I+xI^ .)cHVXB|u0 ,&"j 9 o0"P { G   # UK lNc׉?4'PH5B6  o#PB#g:0jX34'*FRWkt@QOIHQadK}\ 5*: 2WMڏЬ>C=[AT)s  fw U /] :" cy GguWO^>ectDN.0h}0$@z Xcsh1,8]ޫV;\Y8iB{S;J @b w: i  )@_g;BnUy' &1Q6;cp O <noc 9me8je{!0a Qz! 0T9E@_`Xt '=^(NhGjLf%a*,\*G H=`O[}g  on+M f7w; lN v%@_#/ RS1" _wGYE,L:;,  s `JfKijKvnA|& ($R hS T;3nvJar WJ2?5 Ws $ ;D QOmBE67}+Md.0O+(0Wn)U+ JS}jq3 V3e t g_$>  0 ! }%ETYr'3C u(GK  ߭  f+qw fmL2P0 dc3HOA(>~7#I$/- |xD P z'p5 Xi ( "fy,7bX +L)X4~  0kD; [ z DuJ4yN   o90 x}c9x=9:06 [ WvjSgnQJUNO.d /Ck_;E>Aj@ 4g ;pT e  W : | p.4@{fT*.A7[%D:wC5> hQn[Vh} U wX#bcWx su{[MyT  , g* Q= kSy@[,[ ;R zcL. id sD^LTVV*(]/g x n> C 1  >\Yn2t  Gi 4m b" HB0#Z VE8 H   Z {KR +'vZ \]4)a  U<M = f^m g+c5 C, HzPuaEf[1k w JoL| Sf~[&/doR5R \nk  \_\6FtT&zy[Fe&C.<e}aU*:SN\TyssqiC *F g-g ]pI}e9IF40Z_`S;mHropI-$>Gns]e}TeE^|wF Wi~.`AL ]W$tfqW?22uoYZ;a_~:; &{mC14!]/)rRehDxvn=z+n {_,.RQvl=Iho; (mNhB]|K r^M'(! E r}M@{o#kynjU 4)bdQr #4rv  6 ? J t >.jUx dZv!^i VH>Yx Oc=E+`A{j`R,vt%"\/ K6'I ) V;zU 7dz^^vV  njJ 3r{/JO='8W$%EH@SS`T" 6)l Q I Xg734L + e @Ci <T ~ _ `%$6% r N{ g S G9|  !XBvwj{5( Ff -,l@- ! sw ;h6F ;+- -6TkiU!PR+VY OpR&9 [R#B+zWti>!qQ 1>- l'8;=NݗkaAK2t)yX.   '| z7n0jcf2pk\N0;J&y3@TMiې! `qX$  `L/Wx ZAhsn>C*aHa# fT3Z;n=L#w/q *9' _At8~EehS~-V1_ݍ)?@U# HcWZKՒtb13%*>] 2d`]('sXOd 8w ~/> R=(Ac kv: $ !^+ 6 @?(FFx= !B-A 32& q  &V%+2FV78GG'/#!;D{ D!g: 60\:F( $XEw[r~ : DGDDp1n8  <%&},?C]l 8&  J]Cl`nBn.!{,W&$bXJ@ TQ8;{_SF+R  2V j P-O?mpNa p / gK'Pl\ cK.#7Wu } ht c E^.^_S[Gg4 -BF V i M(~ZigQ@R h  K  Ow yCdsKM||OkF@mV?1yI}cM95t`^|]#8QC" K*O2 E5-%` j]A  1q W Wp  3 ]! }u]'oJ7A  D:O VpRU\Xze3 , YR O h(CgmL%Xk :; ^x }L% o[! < g|[.[K+ 7ad PZ) $U, ~;A  o;aA ,I~ @ `Jo, T=Re%E d9-'3 G5 i6 = Vwz"2 2?=I -@/a)q  kSB bK{7[(pv+ zfW(D-kt " % y  Qo13H>uO   q>p _=/x 8 8\ / *) mla FyFOj5tkIF BP6w /eM z 0 u?1 Df 1(}@rhXet \7!He4. |q1_3gUw6"cRX5 )h )MLn /E ]$vQKB3 ; 30[ <0^9Z[ -LS<D n3D{ Sv!S( jO z  )2l| >>6S| }" f#&m F j H R6bMXG \Sf7a"tH J 9 ) Bhv9%AQNQE  N9 .h@>) qe^G /b; ! x  qYS|)H;U?  8 {a hPe.=,VvN] RU]G> 7.n ATy d ug Xak >,"ݰL^zx *& y vQ G 8 ~.M%UY z 6 i~]{x ?p; d^4J| +|v HW hY QA jA`{Oc- E0,|lf# f i5 m*42y \C J)"& K %@cah=A*U@[QXy9Sh +r 't^ 3+p Y %| +Z TTOk@ ] Q1 j=[yWk. ac9 +I >-K oe" S P >C  V5 l 6Q72[M  ) e I  V "l) }$  " F zYgPg u;7IrDWz6 0n3q5U167x  5 $} 7va A)c~|I /)U 31T`0J v1IB"# . 1cBk v? IvPNtE@ @~ J5=*D 4U]. pn> 12U -TCqJ5!MRPn k Y Fe \k9|d oM&q2~UDm >p M C}B( | 6cx7xC1 T | h ^ & 1d7V'x 44IZ SCd^C} _ " D 9b 5J;(Z@;8 E1S z@%;\mLI .dY4Kbv Q,[R {-J@AH.` T]X*S+W&}`z@i;7{DMx!9$o?Wtj*LEU%@nC ;TB{FNo64Q'ByjqQ-e\1H|R6c}Zg?>9ACyV_*;)a+bU"F\; YYGO{"YD/|x8p>(hYx2rS0b4Y _HV|y7b0F`7p#0]SjY`i1Ht[*IeB|d??t"((<"m9`$AB69DV;t>)"Z{V#V5&I'1<xG0J\JG vjaF/1/)-G4tI@0-4KR\dBrF>2*IE3+.55x/ad"0i? y<#a :$%X UU1aoN6W1AS.pP+PZElH9FnB<aUGlZ?AR8P*M]e+d=ffg4g.URO_}[@jAeuy GrxDgV *gS-L~{J;HBBkN~==.9H TOQ6T85K|.IS-V-_I4 O  H`%0mt\*(0TT KJ+ pj|2T9- jx>W9t@qkuFp| EtgStp(s; V|wy};0l$% |2N_ #.9 HTYH  h#*kgi`"2t 2n[ 55V= xPWe 0J-nFY8 Ro $#]' I \W-"6%pNs4 4 *pT~\IO)7uU D@6h!B; ښacڍGO!E+  BeUsn H0|s ]x tXX:9|V@4 C}& Lk DX.|!D ;k$ 6wo Tb  c }k,2  uQ#pN\Y1Qg2(.Z&y{_b`q = pBJGn ' w_?Y  CS e a5 y?*{ * Mb[/-'in<k _g} %jS a8D-"D>T6 bB;5wL%U#'+iQ](G|H|I4mpNDS)p,dH 31$')dg#odS GZQhq0 ps_'Xk:KN,1= O%+tPXpG'-1|(]K .q@c %B c6nSC 8_l?8rZ |Y6P]2+5^3',߫.G  khlZ9 N ;P4[E!h?61[k \?Y"0l;>~EGk(" NcJ 1F'}z-k cJyCOc||O@<eAU:2^X0P7@Ku ST; yQbXYtic @ c/ sC eklvp|b qSuv MCFG(h` abx 2mfd|SBEBM3EEV( s?P >91 %LJe T`O LM7 L- N77DO y $LDf;e->\.$qaGpRO   p2QAd&  L CO,4/:dqN zOM'` OX'd(1#8 @#8A iGt2Pc?XO,&;$;i ]lwtTb_x2(5  U [?SLGc &=G:Y'rGtnMe RWC]O L.3iiweP[h"dh&4JDCGH/9 nJnsfnUt* B!gL +-"do$M^rK3=44aHf}6Y@A#0;c1z^] |r qmM9Vp42bt&-L-1xJ{sIVyjP-R'F >KjH1qO _b<1I+|SM  }L1!fjZPxf:`ZK"'"qRThQU b Iqi@x W2J[tF OM D+zMMObGLV%35CD$ &r$(b. D 4#XX  }4BZ 7 hwE6[m'qY} {><h;s[TZY Ma[Wi#~%#z80P5: Z?u/jV+O. Ne|cPncE) c$N_u` "a"I i#J,C = n8 DV8s-W TEZ'cE " U\2 WCxm"5=K$k48vKWY Rp}| fvKJ e7/!'< A9IS:ZV1f_L!nGhI_F~J "%s:  qo=oV!n0F}{.u- O*N 7geQ:6#t`r^ h2K  p] 6m_<WpIps  zup>WcA1q<RFL"Em aU? S KG}%zQ# > OzOc  R\O0-mto # vs>#r  #"5dQTe{PhX)J(UKpR#i VQ"$;nq>3/Wjv9& xIMebDX  v# IU? bkcE;:i:N64/ybxU$dwSA* e N@* 89 T DfbJ\\B\kbt'H[2 |0?g*;y7[u)Y 4`'a$v Dq/FH|(F?C?7+;0,6vo8OSN " >-W):\l y*Kx4DIR[Vi00D: 3 .VBGv*oz8P( $%'GA>%#FdE67:tMxyc_n0l5 ZT"Bd=g{Vuc !X.Q/Qm8brw''sqRC` X.mM17KLuSYSa"hL!1GuMSy"W^D-pVNRp8D 7 UKwQ/eW=42}RzBs3tXLsu@'L.6}NN[7L4 9^_X iD+V OuJf;uZT "Gbs}bJ4 L]/S 6  T] p! xt kMQ"o$w/Cu1*f-y]Wz6sS";s1A_ |NR*0 Pd\"@,6p$sO ;!72; Ktm-Q6 W_#7Z :y.V]i LF\\%/Z=SmY^\afVS}x#w*fTEKceSIVEU-Z\HE/3j |rZ'fK>V2k88fazA"ux+s\2%!fFnVO92kS5dq3'Sg@ 4&uX_n `\9*4J$!Ae/x  ^!v($.Zi$czw|9W*@z*Jn2l^^\]Ny MR^Xyc>;#kPb_&yK^7RY05mO5F<i5o*  {"KcMVW-K} \K{wfxqkEB G.VjZexV K.p$*Pe )f_m\Z}[LAig2_88LmHEqOX=; ^Vg`?JdT`v1 @_I qL06FKac[&5 CayRsXc!B oTqEmbL6,l,uyi1<-tA[?R_$7D! # Tmp#jN\R<XTe6R'(B" HSx Gqb;D= }- KnD[6#RgA|sV,x/k;>@N lS@p@e% Eb2^<75@,5u4&'<(I`!h@p^isF:"Tt {%qK H/#!0x_mo#P;io+#ValmaU">5D+:MFH:5qA1nfJeF H^_ O=K%ou@'^ SYBXKoVabyZM>JGisR"a5BTqkmS 6p@(ic @9Lc,vV8@%BBs)YYA#"4 kp 5VGXFWD<wV_{W7DlQ%t**in?2sqN'20 zP+k69|C S@fOt+B_Zz/g VGojrDVH ]#?UnTJo7 s ZD 18Y2EHfC)#U$TdPAvXw?qzbN " Z M  zZAXIPXG`bW'hsb-  0 U]ZqrG3s @r8H b  <P85>-T;q`3m.LqCpPeLt|)aFZ|HaB)I*\HYX6# @):1'LN28/gw K-=jUG:NHUz.m$ \B)1x+@e%V Y# E ]Lf<G  [&A KHQ :  : <] .X X0:o$-LL{:(P'+38 ztK4 q]K i5% ~1q w Y{\m0m6Cos9rEBU$-# dI{6)h)}(`edwJ2T+ G4{}WEAK^zB>+t*-9mne P z8mK#%n("B!_' v  pP&0T!cog3;, (kh y 2$X XTH.=8<Q+&, iZCdll7@W e    ['C  1|i7AQF.#{' N2 [dznoys4^{ h  c Q WM(48Wfgx]y% 3JyG:T[utc% L:}VYgW_ Jl w3 6s5vhlTIMo_4K z:1 ?FVqP~=zSb5 E   S j1V(}yZR)T s W` Ca CP"i;>Fg2occB0 H T F8 Pj+-W^gR@p{XE:d|Ov =q W}yD`Q912;~ubao )  P d {9 $j m|O-NC{y=R 9 9M;{i$GYB kyp1b_jZ z ot iIq L -N/c,~6)  a \:[WT @"NHk]9X[38 v M ( IcE76}DVZ7FgcD2h vxEz=_1i}T\.0G(4{gz%ua, cW ?>VkS^*3lBLA } zc7>MRv,&;2o> Ccn  1soX-"\? Sn _  y #h,!." Y S| L<Epm;|p L9R2+[T  -uJDz0P`= B;ufi 1P?6/V6rxVsa ja 5W`m_F<  ` e)AamxZdh 3% __*  d%xghPFJ=RRQ!.[-ta)N C L YOH1e5{'4fzrc$X<3 r e73S/2q nm&Vgs + 9cT B*E$< 90D?{U _dA-3 *\k @-Fqe i2itD _KUCaSn{ Y\0L .  2^l%G`"# HW#be*xF vr|Ff z>KMB3U?wRs"PIz`>i] JRL q-pPI  l\j!U=|nSF1%6%X TCV:#m:P{y](_JTP fD&(|e1DmKTZ}wB|h;GT@LAYm2\GZ}Q!y~NbVpSX9Hp#R,C mZ#6j>\;T<B#,QR#X DO~u&fPXT>QC Qz"zo$ }(!mu1c zU?M gN{];]LIl}i~rRw6;-_ S&@,-dG,nlk}et%RUw[ r[ =p=*_b.p$\<* CXg,KInm: W_YXFKl&<d u<!H sY~;JJe%  0(S4f5-Y&`mc$>>kXq 22+?yG K W BKX>IF]-NQx*| . ;%OOXZY&%?~%9.;U?2 Xsm8%7<'.<:;niCw5wq )~lUxkY =~'GaVs 6O/Xmqz%9$lt0 q  ];4^ *EjnoMpV7(>h~n P J @ j=|~Emj~&SmS[nR:yy;OLW2nSu/TT{G<4u ' Q 3cK bi7Rv'Ss^hsY s 6`nba?$$l23Ie?,5[ S ^h5drC7$Co3mqHn3A]Yj$tR:+Exi ! lq Y!i \\Df/qd\:-`$O| Ry?!x// MB+P] `v yh P _mS.'1u FH*4r Ptf  cE ^_cy  _  V;W/_Qo@u:V)&yj/ [ S  ^:L9S0]^;1~27< V ^*NDY |+ ?C^5\ ,$t'Z<.o( `m K+Dm]&f uU]I:u5F eyIiRM&Y : & "oJZ~f ,s>:.la2)Pq$$9k[ `K/\1|oKFfMN:!u ' QFe<`3@R2(& %U8Cn2xwcW  W(^Vi~ /V)/q`&UjWscJ Qxu9?Mo[r4x o}\=6 9 az;$y|[s2>+345%^p_Qh#T,,O>,r5)T!{/2Ut!NJlTxd-F3Ha^W|$`&(N;|p/t Hb~?193ctWxA rx!9W,wzAX$Qh2 .ri ibEhV7&rRxW GM@'3Y-]iL{JcOh%:|"BNMfh4zv47]V-Z?3Kt9&'b<6NTymX-fjN^P]jQ^E|?,+WJ7US;$D6(\D^T%2k:g=K7\iT.a:M!TecAWo46mjE8Uai}am^2s%]|idCu%`N8q}6B=?_uMCh F."n> t?0Y ~,Sob+TgRp`we:H(bh>PgHVM{d<9I6Gc5N (dN[?*%AI7INNI? ^d$8_]F8"p:V H i] M]QloEC}W7Y^Vm#W]=F2t@iER&Xv:(} b\hy8`9xot:"Bsk(nrfkD{fG6K%]5Z$RW/8% 4[-0zL7`/AS@|_eQF2mM+q sao!Asd5vS-VG*]{C e2Jb*:KP"&|5wT !wz/EN/TJfNa:% c -CW(o4#83H;m skFSIcF$j HR* |u=.5XbV4 }50j 3gL<-%(m'LNq`xUib %Fj  +l p@`m#"VvG^C.bBpMI j{0/76k| DhMwXnG$%$]Va M3m>S-O%xo"fI*o@Q Q /xL?EA SJ7e T eG/$k]%t4\Q"6t j1r j9XH~:]s$F1.2lFG*4a `>Ns^D)c+we- !kZv#Ky- %5&Bxd ^W;o xNC{lPk_pro!z 448zXJd*5%6R{> R_N]*[ohB]"X 2&\hX`6NVMT"mL zx {ttLW}IhVbjQcvQPF ]#;Ifi[|z3P8 67 JD}  yU TEs %# & V;,pJ\XooQn+=ExD|rc?rfCjn\&yeXq2( _6^ SWo~$fHe #w SB 3D uXp-"4j$QDn;8de#>cv]" 4_oL /yi hsK9=Nc prqT^V $ bC{ p$UKFIIO;#=Gpk^Cvw` 6x$6UW `gz2?qbKPC662C&4{!.L"[u.iBHggGQb f(yAOX2n !znht(Erc Vt>-.P-+Q|)`xpubtS&r'^vs=<d{p`>FCij(|TPxb)Z)6X4xJ3T,ih}wd(,Ovna-wtL'{(.] ?=xZ4j 6M7ef4pWW$&=dW[3ILTMeeC ]J?3ov^ Cy9[_ IW o<`bc^-e h9  <} r,1 _/3/ 9}$R  +}d7VQlZ"x 099tCv=t@C{\j VG0 ]vWU-!|vOb,3=_}:)J4 u+`SUEc R ^#UiE,^,A3|cth<-"7x|  (S#hX@LQ(~H|NsHF\;K2CFt'>K*$ . o" v5xD2>W0:uI"[qh_(=Hg03It# C,5$RzZHDK$ B \BU* Hr?O xG)5;V5E4 *B6W^,bJ7w! z> dL ,g&. 'OqVb-sHHTy=/mM8n΂;^@}+_h*!K*R's5{Kguv C&NE 4Csf/ t ` f 4sc&-E/# ZW|zVM%S$w1~vh'$,R$)5#  uAqM #;:+oP%q_8Eu?UOwyz8@QRx[e|d)tM^.:.a(lF8P^OW  [ZNcZ@_ cTvg@\.c6LV$|t#-:>v>ZW$P`5 st w(ztK`J6-\Y :@KV_.^K> hJS&;Gt8 "w` H@-v [j ' jsAr%w " d|=~ m818G ?hV0C$0*q7h $+} = d_'Q)D g; z P6ig1.BpG H~_9+]n AYF (-PU l| 99G C MP7;W!k> $JZbxK^QA{C`l.3>=&@,n/K }X _ ;E, tn) p; foMgF=w. M[@S D\ XH 60GU~9"66jt n y >b#V9Jw(epL_H0YL`O[5 5$ K0 OAG e[q  W: 0St j  y +Pz]_bO:1&~r#&1 !J"|&\,`f!jg" O% 5'e*B$` 30J !OVRvmZ U  R' WI6m1"c#  d7R2W6lxz{>&2F 1%ZKyU% Ckfe{*6g0U rVV' + ?ouP Dc^(]9$K$qo% ^=vN*J5Ns 0T[,t?P t9SK`2|O,'%g{SA xg z(<ڑzw7 h!X'w?'R  ,-voa B W[NS/62Yph <% k-b+hs:5 m{g$H  a lg@(0LA Jo-IYC$~(ˉr *s c'G * 5>:j6NR<} A:! Y SAP.k;.z2Zo2 6tu(Cl- ^%R8f:!fap&0} 42 e-i$r; b6kCi"7&=%oz80߳|  `g|'Su~o}g KDU#@[a=Q6ق\=" +FJYp NS a (B pZ q #>6 aTBU_ctdtwT(6C&sl`y,}v, /F6/ M Ey spY j ]{10 bF-y>/b r(+ ,LDC v uy!2+g}NS9+V-E r k p #x0Uif:<t!FZ? e3PZw3{.uU>{JkKY fdTCT,]"CelpHZ_otfLz`4,n_ WVN:&@nza;>n+eqqQ.hMyJB~U E_wn(Xw5Q sVpePwJPSw 9{nBoEMa'9.c.1cI9HWP@c^YYOL= ^Q"JlUx&(c~JwY$o)R e( ( [|4~s  <Jll\f sry o ;m w)|$ #h  24vS7,O],p *#ZpY5 n[BhUX]Z7F/};=1RA*Ru;K9$ {j|PB5(n 33~$@y9zM<89nkw5.0)SGfOEQ'9a2  +7:L RR42#/9C0r CY: ^vON|-( 1[d(I\ 86Oe|93-~w4e0f%"ip 8 ,p vHfm%W= :/!by50\i%)~6Ndqdot-\; b S y%B}&uo_E-($ks%c#+utc A8g$[># P^1rJ]SS :3Hdk}=a Q|wm M06Nx 2}U@s?*}I^gJr7:m&QDK*9>23Z(  o\=Dx  X fLI=\xB}5+";Yh ek\_ J=J,2CP (  -5 REN] Iu: N4#d {NBtz OZ=WQ,+R^JeeWS<B*0H Y;7.D4 w'~Js~0U6AE/6-8UG ` [ a^35L_N&e Oo 42mu;n>f1Hg1q%[ }V 5 !vlPc]b]L+D95: NzN*3J;_^;~")4 l  T e 'o}*D2**g|qU y(- %o >]Y9z^vbhJbz#O={nxr1m * c S B[z 0 G79{mdnUc9)IY8gxC-nV~_3GS9P$slv0o &8Lz (c>C8+$ oYxAN-BV:_Xz- RfK4$n1oM> Vb /  X 5P42n|7 |`Gf$G/Mm _a>?\dOEy mb Eh !Xmx#H5RAw5=^}]w}2/X#jC<7U<Zze{\A45:<WPxlZV h Y+o ft 2 < Z O%8W6U#2";;yNLCkt1aR[0&1|~#b s _  H ;m?lnio!GDfv~ a#t^Fq:/{J>8LtOjy?v= P u  SfVIvtK?fJn+L~9w+j"_/V\gr im>lBQq UQ o[-}3b4W{|A ]s@XF({FvNNG{f  / Hcodec2-1.0.1/raw/vk5qi.raw000066400000000000000000006472141412132000500152150ustar00rootroot00000000000000aamcO!fV#cIz!sLUN@6K[JEhT WXYzo)Ywch{Ik`$gMP<aE:_ |.ZJf#{\KYdp[]iL>_ wv:YFfXcAPQPor?cKpQO2Hm"eY76Hg^KMxX@BB7-Q -T\GMxQ3$|\IID9p@ 8cGl L|2'vzT1l;t:5^w;o+Smh9nPre~sb%3"uqa{xG--@H5nC '(bbfiyi|2)!9cF!I6 $. !$$ 5 "!Aq\A@$rg(m/T[Nosrz  ~M}i_jy{avxOc\@c[M<fM)Fc%|h`{<I wRh}m{]IQ1 >7B(?EY GDG45::/dTKV~ b/8q#IJPK jvsQjy.9) ,-6 0kaA/bk%~'DilrYWjpZZCgSfYS9E03S>IPZ4<:(.Y:Y5""$r;)f}c "w"<K217K$ /N>J:3:h76IGWU^0)AvJ/$:8GTBYnkZf%CbQO`;^u'2JH0() 4< +aMQrr*Ah\M\e#(Wf6\I. |}oaf]g~~qrvQej" +ED*$*F~ gnvLxdVnfUgsA )Rf9K47f*(XrxSF@rb+nmrd:i`Ma}a:`G2.))3JivlOVP<0 GaYUJqIT36nI/Pj&MpXVaE" ' #[f/ %"+{biVwQo:7A4-.-K4# YgQFJnvV[yx}}wlOg9%=)).R;2(  =G#CLA=11U=6 K, 9%26#sU\ `ebYDffCux~\)Sm /2A?*S- 3C4C>=C5szwSmx !!, ,\< )HpF!K._o]j;Ris? 2O LN`cjHNpgZFe]* CE)  tm[_tu""( .!0'TbNULE*Af[L??6?OYoG$@cmC+ } :BHNKrvWFQWIM-E[I.!{yq?,0LKH).5lhfiy{wvl^to" $E[ (/$HPB?|m4l}pRF4315tJj_c. 3/ 5$=03)8DZf0,V[D> 6RpyKMo3;ABJFQ>$@iC+( ;S7#;pCM~ptB-qptaL3+LXVB$!25H4 NL7@J7Oj:9EPazeSBVwy`f]TM-:;( $%3'3HA8!\ez@Xze)G\=?bUYIBGj}X9EN?GhceswxxK[{dhgCZH %%Yg?qVRdz,( +) %nt='!2Dwx}ieOLFLAdnZC1 *69KA\xvyzmtZ>a~zUF9BN0R]':<63,4FUG&<;'iobTX~M7;.phhDC^U@HNhl2?Wx , +?Q_I2(whbNaq|zizgMP7]    r"CeDZC 2,-8*EJ_fkbKKNo[2Mp@Suphi}cdl[~gJ_p|bN>.)'Cz`kcH4;.^jmn\[=SO21+ 14*=N:FTDDA@5+*% D)k`S}{h[h_NdD*4'3JPkbsaB#& cJDZUM[G5bkCMDG,KH:%<Gz~k[--> ,% 2L;$&'!JcV@2 x\]zvVTP>Jj   ;)>ao8Mt{{|C_=3EYi\|_Xd;2)CV1+(OI!   /1]VztEJw}jLJE[PpxKfhrra_E.>8a9 *" 'A=a`F5MW3,!':5R7Mw|^bUe?4@oNL^d|txt45xI[q}( -: % XiYyi8 [p`Yn}]pvXakl ypxRG?6@I_[hmp_SDMH>FC/E35'AbnyZeL04BaqU48YSgonG5190A{g~x9#!<A$!IX5 $XWD;wa?O+B3AaZB,AV4/)dtU\WTf[YVd;8^)* rzt`GJ oxluoz[GNTZ|b'%$)=TADX1 .!}lHWN&B7%GD911/*?J,y*pg8AC/.17(@K**! :ETqS7%/dzU^RXePPwzqr|YtYPQ[Dyg=>PJ*&HJN,AaVpb^^KBaSR-,fCLXaWx{k}{p<aYK,"G9O\9#>ISL>19-*+B_Xtt^|s{Ju\`tj# >?E5 +wa/AOPbV$>_A%,$ /&!, 6Qf]C-1GQTl{qe]_dA;>!#2BwhW]HOcbX*ARKM-6t{|lEadCKF@Arkyg\rR<KRK>F\d}oMC:F-8TDM- &F`RV\7,Ma-:A89"":D!wbt~zktBpx{\2QU! GeMV\SK}c~YqeP< 97JA% 1Nuz_yxrzn%+C4"3*h}p~swl} 7McME8 ;3-+) b: ;4 (" Q8)"7NK8bppi}hE7  [Y6ZkjLKn3(@AioGIlr_qaoZ|oqLVu{rnhv> .,CPuu4:#.XCMUbt0+!M5 '!' #[4<I/Pe<LXwwd2"/<;0  %79K^^?'RM[8MmHCNISklwmwjkV??S88!/ '"742hu[FlsST_<IHPU5=Vg *-'MPB4 aY=+=ATbpgbVek97]W.O:+UPrPGpt{]Rup<C]L7.%"AbcUyl--(D8yj02?K% dh^47ufZl{o\yrsvx8$ bwku<=coR8J@@R~la?ES`nkz}D'.N}iUKnsY^t@lnznvp@P3 K$&JV~OGRUdeaJ&/@Wk\nvUntywxjjgG5WWKavp<=rnk_&|Z'0JS+ .EFE Q]  $X' &CRuM<>8 5L+>mv!y_uoA`p0A= z( 7*<+O{_3L2 G:G?Be<OrL[^UL- @:0@5 s~p\nXmkNcdb/6:(,6$/PP>ZZ^jbus~^2Vj|vE}\uhG&qppnzktdmN3N' "1Evs{w~Y;>]}~CIw~bXru>:]6A?4212-&ZRfxBqfk;)?H(T@9<skvSo{YgkXyM0DntxgUg_au]_VOyg20nE) -I(alcyWRglq`u~yUgK+Ffdgx # E gU3woNcp|/LWqg3AW<ziT{y!<?D!,5L* zxOozu!5501 /  5s!ewZX)&2eafP!@5 S&8V~Ysu}v|om :9$/ns&tXsHwpi("?X`@Vm!boG gQ/&Ph+bvxQU 7g9,!J s RP:`7xc+ZA9*( 9jRSy|LsZ  t 'mF sZK GR`h[gqR.-1"iOp<#v$<  su0 C E0Kq9: w,=5} (r ==6A@x iN!rlwR" *XA~7C, U+(D|bHOi>B|I0E_R1|/*R1 J & \[<Tvm 2LVrJ4/2. o?c)O [&1UIv"fb n  8Y P  [  8na6P_r X~oY;"|ck@9Fgl x\{)twwrUyC[xI+Zxgz-xXQ2DY< _+10h"5<!vL@>93 ~G p!#F{VqKf*-irnd{N.$,kXI]&,D" fL: J+N3 >iwE /jY}]8)\i??L[*>cLu>1id+$8P8dd2YI:lT3|Q3\tA> ZLO4y].@: R6nv=f4Jt5Mj7xuTJ)s}pUHyKs{E5(<2[ROmecEbqq0S|! }c'p*;#b?8.&)<!=qf'WS2!y$ZxJYT8>cCAc1Q2p0HhoJrtX/]UDOvqFV;5N.$GEykbK`8GxF? o  Sipv-MbMIh%A6v os= # D F1Sw9c*HZO&{UXs[+hT Xc / U CW zX] m4,'q='DQ4%~RrjC.>lR_ R\*M.w0.d. G h O9Ysk${!;Q S %)Vt Wu c Y |y(^FgSGvDNBC0 eGK1F2 Q;w] *X  p]bp]He?c77iYB$@  l`?&bhms12wc ~ ~ >?oFTBx@B[QnuYf+r{ V SZ c.i& Q P 1~Mo%q].w;*C7tgWM !D d ao Z??[ .= / K 3;\#Kh(:vkO>Efw e %rXoH)+p;mG t , nx=o"let9!  c^J*F]'  ;d r4ET' ,#M9F6UV +|_uL t]!(c = 9 R#q'->\@ r"*2 d <`Fj/ ~>-k)My &g [JenHSgJy5je==n im(j  ~(f'O.8<[xYIq XOl/883PL];PF #  O+f3z,gVgD>~CV0o-w]D 5 'VQ.,_4 s " XHy9}gL.ySw09($c9#]_eE& S 5&= W \aF *#DfA'i[nt {q@Rjf2ui9I7  G R 6 2 \K HJ^6#`->dJj8;=JDp<M||qP-(4.ycifu: !5Smn, nC:\W+|2?RA>4rgqRXa %s $,x3HSpjX n(m3fYL;*(Nz(WDz@E5UdVM5ux('+g[4ZS@Z;/TNFF)W-u{i8[:e5G#Edmg>lrSclCtF" W TTk\H&  + * ucnXc'$=D$R/hbW*'!73L9{NKU+5u`b t OGT8 c>OE KR3oX!!fBnI#Eh '  `Q"L-o"(`WUx|f:+ohQhunN-J +7`T0dj2 m1&B)\O|okO :d6PbShX%5jy (.n@ S=NF , W=OPr H0M pX7aHNwwXr V H` k Kep[:!Bdjcm03=>hxL# U&" $ iZZBXh%:mM~m>j]6~#@>MEbTCj$q@"%KK,If`'d[!&j,8')-3t !0g: #:jz0Hoby^Z+*Q; CPbqeO,S9~tbV3eA{rya.+~2#?O$3B^AE6  XvB)7r c[ltz,D'PlhZV~c18I0IX[lgK$EU^=<[D25StfFVS]oSPE!1 Xxe)`LFlZVSRgc>?!, %^[15TvbO'NuI=M_,:jvhcj|}wbrhXVsxT3(LjSC(/32EA '{jY/,) 'AmqA/C<L<6#B5 vdelPXdz] q ya nT5]^~  m_.]p }bJ ]1y3v G*srj iOzXf*# { A  qsih~7Fp ; 0P32HO |X >FsMEAK ;Xv%:yF[ o5  8* i_ : FSmtnzZ*% M; t =IV f`>R cjuz'Kis O Mx(6B4wC5Y :\I'* 5p4) 0s8 2U:  tqx6?nt^JA= [\!  ,`EO * BZJ_[A/ a (dI*ui6=u'9  xMiu( ? )  PtCMv  N7!aq"Uk:. U GJ @B|4ER# CC Q z 6eko- I, /;O PTFq8Ph( 1Th+!tyf q P .U(V`7 <HV~)A78705 %&- 1`@+(^[zs4   8&sis{HJxc:)r59j/lXlOP6'@mc: j 8 nk(*^;C;eK +B4H"c5Ikr<.U li {`3-qfO.(&1"EBkHb=7&g45I8d_7(*&0iq53.g9-5j Xif8&[MPJErt]Y| vlgi?ln<XDE* /2p rtoG[~raOKLUHPo}cmjboXoa1"12#" =oe~8SfBbxjeHU/~ *<CsxCCV68gzE*"8oamqgZ[*$4cFNl~VUTb) 7?9M)0@glxJ:<+cA xTXTORJ31/ 4KWr_7Yvmy\`O\rmwoj!1fgspi[u`/[(2"=i42I|M2md-5:CU<)9D!</'Xogd'>\%`hMX$aS@ ;YWFLJ^*LbU4 +L4"%EQutx~X^r.M0*C@!zhEAvPD4[,Lxj"/M^XXJ=c!:{&0X[h_ 8:HZ'rqglFd)TSxfl{s//Qw?c|\t'zdv Y51Kui0aAn-Bu4gs0 I,aX'pNp"jV%O((BH+e=\V1\a.EcN:wU`;#Oz5j]'|j)!B+fO-?h&';1~2QWw3.oi(53Pf~tWu&pIC] FJp1aHDEb4k/@b6o#'!\aC@eWnCiNaj c}Ij`>c.R[]ch3+DeB;)DnM- ,D/ wolnGSgfZlnBJS K<8F^ggBEF5WO~.]\ y%SR8]WtVee O`g?Acd{OTE]~vqM<bL`A'CjRSUl5PWl'<@ d\Z@g|g)ZH3 JYrgt {M+nWfv$2ZAN4q>J8g+I @( w,V`U['f0 n}ef7k^?*KB2a_. cCQ R5Hz BXb@J? 7S?  ;f\9c}6vN# J  ~;H1x )/ouJ]E6 pq/ c l>-XTi { taP2+_nMP22Z% NQ 9I fHwab;};U{.J k"Kzx3 lN@a s W e<5X%$Z#Z4v=S:f u] 7ZD% D s  {6.Yk#>om/ !d[!8  IO0'(T ^ p  S Dl2A. *iwhmS0%  ( NO0j) 5nP=ZW o  }6M.3b' N ; ! 43Zu z)`K(k2s lM llwsH.\) 4  61uA\8v`>b \  \KbO=~m7  j R?LR|3 v|De4j b*P /+J5f`U lN0&a_{'mTwcz@Dvw +O .N ]B2.#qK}p%Qt'%e)tEv.]= :f@/ p80Dyp&_EN|`] E8a9 R :or$Z.U! * bKDRd1R2"IOMhqn*{n Hho1pVY"5 ; : -fvu iHgfK`$V\/ X#x NX?d=:>] i ,XW, g-8MBw"!z?Lk"]- P;^b6m&0 4  %Xl Bu UNVg #0TD \>= k}t gzO #geXY l  sO*IVrI AGezQ x>!O>k_%% D6]e k+4z 3 oRXpRMH]9x?A*zG .%"\ Y8>\2 q| f FD^unOZi#&I 05e `?a,[Kz "5$+ 5݁#SkQ Uu$ ;c M- #q l"U=HTdz:Mr%irR   "Sv}ٳKY][r% 9E*ޅ7G" oD(L8bz J S'Zo lp3(T"Np ? e A.} 76^  (` tx2IM NSk~k;r!= gh f/=<G ݜ U wfY% [X0CKSsmzYY| !l cۓx-;Iu DCS I>:{  Rd"cySri# ~*/!!Xxa& k* %4_4 Pk\mnK#^  =m3xx12, &~C I!AXY߇V$q 5 =A4c- g _X@Vx<69CgCp !w!=Pkb^6e   >'kIR2x 7\ M\2tP . t. [. w _"1_:u "8se_  -[B< |n\NC 4668%}0>+ *"!mSqQg ''  qsR"-GaAeb/: b3{ ?O {2x9  }  g9B3,n2H %[ tfAE  / , q 6^ }BB0R)hD 5@$ z(6S`f *  ` l_2 c  ie\%Voz8fnX7 [4-4 ;;xZZr A DAM|t{`i {&|:IDKv%P3a`n bf, _N f:  vDC> c?j>EO:t@)q3q2CF Nbw "+UDR w d{HD \o+,!aH(|Y|=-i$\ 4X. *bAE"\je * m8!EmW_P,oIS R,gG   ^S>Y0$8 >!Cp)q?'DN `b9?j5 e    Q`${ujki!#<"4;O\-jiQJ\PaYD"7EpUN.8|I8ulv QoG*/Jg!yRlK@5LjTn=5 vA|k1&A@ExvMnd;/\*peRh`| _x:KA_ncur7b]QT);)#bni.#$t@I fM0[88< JH!tDs&>{2*59YmeW`zeb6BQ5a@BC[g3YC+9a%\EPhECFx GVFQ1yR_/L@mwcd=b6mj`*Cc]MhUM/k3B{8aqYmF'^#}E g\,yW3R3[q ;U7d p]pOQ`qE7tB]7h4 vT_&$,YzSv# |;<$E,VPNKQfKN 2oy&>jCy+B. As/3n (47v  2_@11|nv;JpV:H`y"-J(~@y)1YZqBp(|d-mUV456yY/UFTu)W!}_0RN?&|[{:$eLX>gw{1e&7e8zNp zM<{\8: NOaU&)hey2{f^; jf"l,6r>8_a AD^ K{Q-=}|zT'$fh7Y)EQ>Px 1aiA jE[t>0-|Wo UPBJ;%#<"Qi\=s:w!$yPsxz`V|U4iioxcEczL%Ci/> nFN2~WQW[}(l4E7NlDv4*$7x$m2C c7 D@mM } Mu:=zC/[^"bRBgJ 7ޙTG7^LI0E 6 G)HxwdeNCix1$Dh s yK3_ $E Qb (] \ G ]H  MEmYN%W}o ?g .^ !& ]qK89q % Y3a f s!ai%c_;< 5xqe6Dc Qh Q %DYn(  zJ3 V z ;)AGn zwnzmL Q+/mQcW3e yzP[ >P 6 B@1$[7xs> 9 G'` ,U%#V  FSX y R[[tCG?M = :G T@7 \u '1 \ Drk  YZsh06H_`l(  ??2O O03 t Mo2VR" s 2 6wU{9K j W x{ cTC1sG ":A3# ];r (4 ndyw |s FL @ nFloN'- I$Qn8!nx ; ?gC N?_K?% Q |_)C(+Lg G@qFHO)\Z H,+3 q13E$ e >([1 $0:8ZrYj vdU32xp ]|",B>!V l): fSncB|y}\>s1/ bjf}%U aX J Ly_ R I) ?nn0*|S,liAsCm 1ly Y`T f9~ H s L -l g<`s(C 1JBF^J[ Qm.f[TI4 r}!!wQ`p'(- Ao0 X+bJ`8(Ey@ Hw8)W 4?eq H J8y/  >;~dWmT c PJ  a qas@Y M E v%EI| 0 7+ vV1j R_b `oL9/w#U< 1nZD ~ / - =}Q JN;}G [ =B$^" @ tbg<  A MN#k%n}^+/('Wcuvu hu0uoY qf + ~ !w.q@ ` njba]p*yS3e2 3#)F | st[1  XW4  k  cxS(N:@0X B&t `6  e:x) j _kqG'% c Hz!}U"cW P @J:C4Kg { @jz$NpK%)znlP >c6B.J: [ kO\ N, R~'"!cue+^ <[+ Lv;9 "\q7) $ | !k]6: q X`^UVy|oI  7* B!=t|9 vTl[- h 5 b FUu VQ}pP Yr  "> I('@5> *=d :*. ^W3k )Txekm N*!"r#His {0 O]*F~_N6`WSB|UoJcH"!EK#4/2V4lbb%.  22C9| PE}:p$ab4lu * $ ,j^3\9CqLhv= 6 X  L o1+"&S 9r"Y/ >w =tzn 7z @e I:0b2\ + E;:n ( (%HWm[ M+&f=C<'D>ay=+`Px Pud4 | D%   IQf~. Q =M }Hy ) xY&1i9av' * x% i |8l1tHs?Z7RaN<$2~E  Gc:d&Q  HE%Cjz6j]FDZqYP/!v^}B e Q MAA "A!b\#fSP|TAI0Y=haq7<#4hQJcj,)Z,7m PwneN 9Vn A\K^#wreE>1W\Q8\ lmD1zsU>2d_ZW\  PudRwc^+- "q.5Yj>aQXT)mYqg? ~J8vf4oR t"bWoc jI Uz7D @_M}y\g,,W'>y1Y)>8E.dVT\(-K()gv+sO$ _4cD1Yk+!Xv}'mzMu^Ufh*3F)'t2nh)K9=g@(VIW4{TXe @Gt{gCmuzXy0]8QXAii&017CQ=<)Jv}R&. LtjMS@?1225gpt(#-(Ui6 5URdouqncZzt_1Ku' 6/   i`Yne`VW[E HYdry"F>~wD2T/!2 HW7"  #-:!>OM^qb{tWsgwpn> ,>?VF( )9T=O<$NN"HryiJJU|g}mq $bCEt]F9pK<E:)^^rxL@&9|k}^ii*<B]~-9YQGG(R ~4)(>YnO<mZz& hhe'ttw=TC8,.J`TV]7)CeSHkM9Z`~OmJ<'DhCzr- '7/ +%/&#1mJ4y}m':_sY0! AU{xS-("U|u{#}Vr Ae Tcv5}}m5gU[;_Jez1'7Q& yyb)Ny#z-R:\ MZ#Vlrs ETKZ u`bg\R{6'D_lOq)($gT~#Ho'D`*6t&$5axpjz=5Di,Q:]Kk.^ %we*%UhWU.f!6Zme8 1B(ZSe;2l;+eo'3 MNQP5jQE> =[QN{w?Xj!)eh'|1 u`)[Cb_l{5@I?P]ue^pr5UYwz^5n g||#(atDonqDnX&z r!H/,?)Z6B [^s ac-bJ,0X$1/ L[8E2Co}#}xCD{j$ u  Ek8~-S >) '%bmG i 8 HP{v}Q`(]8 2ki s0 Y F>^@Sx >tm5.,!C5kk8X  (= }0;} F|3  !h-Kjdgw 0?\$ - xUO(: n~ o+8nGXc ] 8O3p\\-1Jrbb )^_<@9  5@KA d  ;S l*TTN; Br,9g 4Qgj 5N/P* - y n9XeBV|b_R UOoV) f ^a , , "}( 06lM*Y 8WC5j@KKkvm{)QFgtMOdgXa^J550[N/k@i6lt.iq:@HfhNHe:"`[0)eY,D} [Q]cG<gB(j%<Mw+(54j RIjB17NVpT}ll p(0H5CZ*o`FEJ~H'DY"JM 3BF7 Ch 1YJ?,Kjhq]zF! 2m#R &X\M$' 6IUGW /wC!l_).COR:v[b .HclyvmA=DbJB`X';_6mHSrOh`OmL3)~z{fGbe`B2(6=ijLur4Asvx.#syo"V_1 }#_Tsh(KoH3es/kF[c"s<JUbf~cV[}S c1S2&4 Xud@= $ b`&I K' L C Au>]3] P%&heylL7 yQBCj* Dh     TXhz03 Y ,SM^R$;*E4{6t0tu jY(T3F  V (+"Q\79+I"$ CZz31$J V jn ?D]%^G 09 v%#&BLd aX$gQ\\ X |Y,aZ/  7:#"F~" 0 r X?q (E9G /!"%H"KE=V- ne>^bJ0 e00%U*<!<vWl0k _(lgi&F>a  F X,_  b"|,54Np@@mQ '&X`:5iu I 2 y L76CE 3j;XNi?';@(-  P4$O:C5-~tP^9# 6 6  ?;= vvn{F.u{R26+Tnad% AG`N+(    ~pyt5Z9<=Mq{xrN QD:  1+,hxmwh.v^eyy}q+*WWHb]lM$MVR?"  "Yr3Nj.DE !wzRID4NSFBEA\AD>N1;2&ILbo$ 2Yw|a K 7AI7J;/OO/n? >2*jr$U~mdZo8-R6%yzQtOVC7VZDaigRVvtFx\hCu[$ Zlwano(a&%O/atTFWOe-81*O1*PbO* k\xq/Gh6_Y#|fiH Lcx "o nFxpkIqKt\lCc-C | JVB-x"SY3&,Rm=ED $=aKr~S` Bw6}!hcxQ7  Mc ZH*P#eT5$U2U]NM S|].*95@F 0nqi_Le2%a`n++jm3' -g.*}RCbRn]wZz/A>hKwQS@Rp:@fQH:TaD:%c%$bpshG'dKbY"V}r{!8"}}ALuIf" t_g7%[5O-?Q*dU'd7y3P<0(5Q}2+Is&}~! EB2^2rW`MDQRH]F1,,^sHR-juV-.Agx.1]eCzZjzA3^S"%uyWp(Usy\\_#0#!L@nlr`k2/dxO4Txck__~`iDTpIWX5 hwdJe! cq-: FZoJ+# 5.Wq 6(?bX[FE'wag} -& < .2)%(lu:}wWbo_vZ;WbKFV]SM6Uex3yh2.']@1O9RpSbnvh8wqn}U_iPcRmmH>QaPB4;8O]X71I@1!0[O`lKkxR%$)CYRhrqPPb??}iTlrlyxsXGGgUM\b\I3,Esz~}k5'*I( 89/%!><wmsjlapsikb@D0AF<<ZvVkm)N`7" 3)(H4#*U6622fuY[{iL+S_\xwUhthf<@oliWgi]Y/1LWLEZqtYJX4LbAZY_F "0%:Xwb"NNPI;l ~ 81LH;buCCSVN;:.TkE?#-<O4vafm *mV _EZjW_."driN+ <2Swqfy~gi}`C:A^kcO\m(;C[D2yOuQ`D;S+{ )(#2M73#%rnTy}x@xiH,OhJxz8 v\ ? },1<]?GH{m^8Dt53o;zC}o W /{ 4 j 1Wn%7VC3NRHB*T.FQ,4-7K2E66Ra#  N   ' z`m/?4MIO5$O'h`t'*P8Q-4[ K3M;C(j[QLxWRJBUoal% Yv?_\$MK+B*Ls,~j*d6<x1vue3NUJ0 ;cAw i|e+/)A}/liSO,zAC^z$},s6HT&O.'AgMU-nxN!20Dbs2o9I]j!ywnlr_<fYgW4 7 jwHkLB<4"VG3rzM WcaEH}C*> I;f%B}$6J5DML, Vv/q` ]gW &tv("_b\L<w62omAy%-;TPt0 ~YVkY/^x'vx[WC`G1z># t7ZRqD%}"5U}_4ylrhK d  e7J[Q3\;l/mD";t"O H m+cLjP4M [!76\[ulmPz 6ex|C 1B| . Rx 4N.<x49A | Npik?nW )')"31*K1 9G  CT c`t _ y ]:C^Q0\~Y he ]&*E%2D ay?sZc.j -( K ) CO00z b~?"(F''4y_z CTR mC, u 3 yXdtyqFd" m%,% sDsi@xG  7- >m }4,%M|}-Y f )r`'n` d  zE= !f|( /S4l=c4vvI DyoU*iV]jyV 1 Y +Ew.%tru)IXB #$8/^[ u(0I El8A\ Y &QbZp O V  D c|1<=5p=l !N[  zj=7e . Lt Eyd${\ &sx(\  r  $c#4 ?-b .ug"!JFPauTb  } \ , e;&J 5 F(v %[FN)s wF3n@ Vt g m.iC5*=D o7'))5|P] zhB jJ !-z pK _5&-$bt[#O:mF L K M h) 5dB Q RE{ V5^`r 8 Z% j!N&c VJ+P=FB>F'{qF\x^Iq-^)d.O>3 G N E>C <Bn,G5z=  -%a3!)Km  ]E d du = 9 LR!v.{r!c2P.l fg D]B @ uRrE&9 R a"q)V{*8 h m < EGArW^y^F4`L c2=_ x j K2MS5CD$qi=E(^+#oZk6Y!?{lf{|!IZ H(/ma SUMb?GB!^;8VU+:F #!:j>]kuKgtugPrU uH?wqHT](dzUQaRE)K0 ![t9uX3cJP s>WryNrGK kYHL?sLRb9Cb/;2MvvG&>:fB2?gD z{Q5$q7[?J-.) $ ;7Fb 0A=z2&0[Exv NEHAf^o@bs7W$"A<(<`+_(2nXVF`eSy)jRg!A,H%O{3-WF-d:f2O,=,PB:a<j_p4;n D)FWU zUQ-7h.F-FEqag2jc/4PscJBP^Zs=H~T7Ykf=  ! !P Axr 8 m yr8W\<h h YUnbj }I Lt   ( :u xq gV6 2 VJc % L! *SPt.(H6  % Z  i &Yll1o [ _ PLG AdtS3`Dusa- 3V >u;}C$|MI\izHc!Qq4,6v-s( +DL[/y~R>PL( #F8#{:$*I  U48E=b6Q\cIe[NhyHZ+;5@gQOqvglWHe_hY}q>pn'%~ZmkLR\cesyJEx}QXveJ_ys{dkp$6U=6cbE6SUY\gr43VTQkmwmXSNUQozqyghj^g4PdT<$c}xMnnqR%.ZvcT   0gp\45}^h1,4 cLIA;B )FHG243 MaP.#4.Y^/ !-Yh ("=L\MAFA+OG]u{jaUx$J-*0<.7 2" % ,  5, DGC]{jPZvc^yE]p\1-(;$u|la?FB S>4^XmI!uS$`e$3G  (a&`P\5mkv84 iUpN3:X#Ryn+8Ep:Tj$ 9  2V+knCayX;z|ws9m>?> P vA| ^ Q )qGqW"/Ms(o09z-A3"n9C^C~&| u\ S>kW[%~I~,8}o!7Ab@%3i(_j9 <Lv' -n(m*B 6F^nw@P.W~3w'%wri#:$ w%~F C>  Iszi r z(~WP$0^pWta N0WN _)DRn P  ol@q_s qP&_=w^^e2+xG>k 08&?N [p}fd9 0H @sXAdw s go{wN, A&]u q+ *[|/T~Fqf[l   Q9Qu_ElY"e}0hl[l& m #-g> -uN8K  k HD1ce%bsWQ?&DdJrV+? CJ2+Lm71 u Z ?9'V DPD_ ^yKPzqrW A~T:]PXZ0 ^Y <x@F%`>E:ki>B;gjzx $BN:W-! 7 q rY})ElQb!pn P)3L|1NB:nHbIASc/]u?  Ne8TkwUD_/^R6[D2(u&'#8sd[<E-@jN4aK(L1)YkFU ZL~q$H4  3  ='>.Zr@=82YdZKFCjnWIUX=-(-=EX0*0";0 BKLSfmST/+-fSq}ixxhfwwpn7PsYkcG=sw^W`vhVB5*$2EI!  yjKTW:["#;SOhtn]R[QY-L8 yk ! # &</>(<B":P 5 )qw 9 B2*-,,.ZG) 3HmlkF0$$OiOThrKMaJXATSH n}||KUf;zoB^vYwyJ32Kh}i^AjMo\HL kq x0KpQ*GK7  +QyHup1n6 vRyEw2Tr}>iRwbpTe}YF 5|sIA*49/G]/A(,2|ueq 4y%3GsK{k'oC9"j)bR@s:k6I+SKV17As\ lD+G;QxbU#.&jli[4 `FSi2F&eA]gKR,ON_, Unht^~-891 ]\fo0y (X:WhV~&F*JI,YFTSWl&4B}I(/VL:%mX ok`vf9,,7$HtJDR %sJel!JE18n%7f^hdz]|e#MA~1no4TU0wMofx9B3%BjZ vS2< 2I dV5WWd0CDqA~, p  5b^C! I[iYU5j_ ?ndW/I!U  'VB >^ f*x!aZ  yaTW9`e;3QS7Zrohz?qOC#J} iw j[$Jv5 J, _E8gVjlj-/-'WW+Y{  Kbui@y 8T>u&|~kR6Yw[c#BBK | f1>&  M.D!MQL*o[498\J_PD5eP v( kG +>DXNg,DCH-)RVg :l6n5sJ h/"_.O  Z SGDH I]#"d%ACL9G_ N\ (ep( zJD0pewJ \J \dK$N:LDoJk[h` m,&f b     m%j Qq:M`&EN $ > U%>Wp6J  '  D G-A#N '^;/h4_~C> JH  /L OjC   2"-=0A, /) {A} <>e W 6 }=lp^&ZJq A|f\T7R%  sy[*~cT9]@ws /:;tVfR W  XM&|< 6& @:%[@ : 0C6hTR0J.S" v=6\ Sdi>oX vxN BS   ,]\~b~J`7}{X;Ev=Mp y v7G @$6/Kz aB /,um4J ",A+_ 9 7UOc/rI @W!nw s4Kv#0t<57 e ( m _] . L &}4F7vV em@.kEkV~ E@ &CWu^\ d <#9!%3\?CK&=pa'5 \N >`u% J Gf7fJ0|d)- R! R 4J|?R| &rv|T 5^O()xixB6}YC:X"6  y I 4  z 0 Bq$,mLeO(]te}?*.I9%BOK~ 8c`^Mo_T AzrQr^q&M|+G \6"}d6 3!c'02P8oq\&9 ,}i3+!C.07 *zQB14$*cPL?. rX4 __{8o@ucTk$o vb$7< (yNz6EISa (Me:6)AsuW2? .$ 5Th,)G ^w_x@S?/na+c7 OI#VE Zc+R})Ses)9:,2`^f0nB+tK=0#;qvs$x`'bqH) xP]c:@YTOoj>EXd5PF<[ bsH"XFM <U^%RFL!9 2^HnuA{oDP]@)`&aC:ZY+TNk7-k{2C ^s~QN 9"VMq&v3>)chEX3`H@-Kgn2N<ivY]~$iFXZ/6R|WUjglH)SQFg ? V@M#sFwY H8w10l6'LRqpWRcJ K%6v=3[Za"69S>qWgx<AxVW6@VZ\>9n^u YcdAQ &Fo#F9$eofFW7LPU8mu^<%NC9'hvlEg R[=".<f!QaU P*JX|Y-8wE9}Z 0qR`AYd#p>zL3C/6m 4Yf./BDBn   3~M8pTNT=bX6":|;X[h-X\c[,&Za{|";J ?1%|do/Uig~@af-SV# ) 0 dn< hG:Iw/S2p^G51<~S?j8'L@[ O\Uu_:W_ `u60]sa0*bTUuN2t6i(  h+{3t4ER-Bv#9bK|?n[J"1n48 ,HN c^DB#6$'=| f]:,}rq4oX|!1?x!8 Tީ h % wju0Hxq yC FP7*\m*gkl neC eG 2;HN|6 KAbJ  cC %@Y4`S9!Mf|b>N?C o&" YP|zP ~/FFy <w PJ/l3"Ik\ Fu1o 8m Qd<8*c  (ez0$VTwh]DqreaM R$LRd_ n[ks3I)E  @eC3x,!d8a#:vg/N F#^Y `t"  urlkr8 w  pe9EQ+1^LTD#A{abC~>!cDk/~L: $ K%_t/a6zI]1> 5~o9+t 3!.CD}pc(mqs Kz%%F^} pVH JKzj bhk0q\ $ *s7bB+,pCAz2 } ?% h=P^R#M  k)+k (F@=q d9uwff7vg"!yH&6w/X  }IKve&%fLx#Q` T b("? i?? g  \o M%4VR`Le;:Q YY=d Oxh!I2 6 I WcMXXw Roc*9 2!|7A#D bY gA ^[?Y( Z Yx#d^"Yi 0Bo NtkY[hl $CS#_ 2FQ-Jh-,)M'Ve9 @M ) $!q| *i JA _D P03*\ |/F^T{JkY6 d qAC \M  gaK H'/ {i"hhpGE = gj Kc 0aOdN [?p7".qJsg-wD 8;r` w; n X 8 %= m h% zBb E<Ff?\} 8}k(%L :7#?F9b~ $ ^U  NO"BZl~pWYond)w%| co"T cJY   b 4+d}?6>:ax?*6K\m9n%7T B.!B9Qsh f z d  #y]<,2ek+ VP:cQ rS-&Q _  9 vA_Dvz%yOtj794 1kng|NzM;; ^  .Q0 86367-Q )]]:J &8@Wp  zqo D 0 kdWZGBOgsTYmKW  c O$#sk2`%r@_Z1<( @>CG lGYoA~.B%IwPd4!'3/ qte{_VzuMEF)Y)iWD1OTbEyG&)M Xzrltd TJ{g%QT[YI+B,$u.TPW 4)bh/=5K(& {QaVB&o;c=#/0J8P.$nP_m ~JP.fxhJ/JFNAV`!]aGz~1iF %6bAJ^%Wc =ddMznU;?{@QU3CA38X/+d3=ST_2 [[eHnSbxU'k.\>)" |s {}tb$)   "0EoC<"lrovM:Tfx|ysgrH ! *  %[^kv#9}x ' S?9}($ xXjo}qXQB#&.Hw\^]p{kU/.PcwvxK9bvwRB.#$&8LV[}i'%  #HVH@;X|=6_|l<+Dy[9$.<$-;;/  &0)*N>iz3 0G1>72:>xvYO8m]hsznzmJ95%Nxe,1BRd=$(- ,K1  !D4Uyr`E]w8ErutstO6=H7[=N_q{z_5WfmcE''.. #3ZI'!)0%6@=:>qm**MRW:3B/;}Y=ag. #''\)*ZbpY0((5;D? "_+XHq 5gQxHnB+s`O*VB-wE7)Ak|se0Jb="zy~M)vJA .LcI&Dei8H*/  m7\FX7q\;hPNB)%:6x4U=q>D@n3M7q7 rm &OqK7|4[,hyHwY~q@=r{9 'PE>Kh ox,`3gyk"d&V\ O.wfj8pAC't)Vn2`5ul%HM;iq!S$ea[ JJ3$c}G61DX(M=c4"2 `DRh#o5_0$h31hR 1OM E! zux\x+]VZRlm-l|C<aiWJY%OU j7a$n_,\)ZxXsJjYoV2{CC2+vg`$vqKgCH:@V_'<- ;!CXx+ \NV*9!E]?R= BA1H6[m`IS~Xs  x  \5'GRmdsoVtb>A  & n ] Y zae666){~T$ Vr 3&->pI M \D +Y ! {2cPo" Gc11LDM?9 + i dfI ><`?FO  GR|L  F+rj/';@ i% vQ  Pj,{o zA  'B(H 2yI&]yr9fH~>k}U9f|{wzP6(/2:YWYVq`3RpdEREL:T7V})2OnO>n)7@Lrg:+2=a5iF"v+4I\q5`S~nIQb_H-L1aV[>3109PXPG]OERjbb`$"[A'"GTn^f& +%5(  ' 0EW9DqmGTW@!uc]ep}~M/mFQCWL4nDA V<7m&X>${~ *E8KA +n-UibJV?B W.0B\#e!mn=m=\gt4 "a:hP < 19.)rTlO!vM&\^}V N 4K 985'  t 3` *IVA&s`*sJ!H{.t : b +2&'9 E 6]]p.bO U.d1SY`GB]hd*qQ'o 8{]0 ]Vx & t];B}  iT 7wdI w$IbPo) ]jT!9m]6& ]> P HNtT(  g[.~Z_ihT7g Fz < + B3y5 9 28LA.?+Qv3 ]A,joI=5  sAilL 2 !V{:H6$ HA h!uX_'yo  > OOV `x;zI?B $ U D !: C2[&}r4\r2  H}W$nk> w ?!Hs e}B wGS] W?B AgtM0S.]1I1q.Q \ q A -p !^qLi=1D|_AE&{eQ/$ Qkrv[4-p^bz{ +7y1 ?8W0 #oVndr R&pe!BdJT, &$G(GJ92O*C,B  ZWMz=BF!pH- POu|w~{d#>FA]2 l/Dbq[a1%c|'K%^Wb/\uhkz`;5/%tOBmjU(r4Tl^3=w4 v/t8V %p jak3Lp WoWiNYd0hQq{hk8quAy}lEOu7tTStHE JFi},7tXaA.:}| /s7@uGQf?vJK3&x/Us41j]m ^|"b^a]8mz0<$?TP]ia -Bve(`AK$~C-70KX8ONJ?;Z#;N}=m *^3>2X<?)Ch9jMSwM+h/yQV_G)d8dP4OYXX+-omkJh7v<>d9iW#Q[ er^dy+$D.C|g|]>8E-2J\`k1YfE  2P'J@,]S-_NOM >xUyN5^:ZQ :@4IaN6QSR:jZ90% &2j{b[|yD7hO v|}m ,&Ls[X@2;XGwyh9!3 '3/<8A2! -_u )wAB/,sN;`ak)(Io.|f+[^m19aVoIR62, `Fp|EiHO7)]b@8:L7^vJZ.}{*<&5G1mGfBklGU>`-+4[S2[ rGv}RnJK>f 0+\2C?@XtfY]i1 _w<Z-964FI!kW(|c#]"J*wrMgN'uy\QQVe1/9(fE o  2K !8,sITb]~| uG8%~VLAwQ.~ Y Z vD } +},tP6e;DeLxa+37*Gk-*eMt`<Az -VJ #-P9` fN8w$u_J12|2n#< C (  c92  9L`A/gOT/^3}CT  < Ws  &p[*2N]=  N '0cxQq{(| G ic ._fW ?iD`@NE/!M3(rxjsJ1^VMYX%b5&&)5oF~UXPcax_t}zCC-`jaoiI#r4s,F .gudsas7* <OXAl~pvHY{{ +`a92z{vu,>CB*;)M/' K_UCf) (X& ?E5k'y.tE Y96[<`m #8. ""Hgi{2 g+2io9 z{VT`ATJYp-7ajO]$38xL%J\a:(]g// $CT_) hM<6$[_mcmQkOf&EA`#nsPy0jI2|P3y2zRz$;th;m|t{V l.tAyXrK&w !pLo/!d.[Car3wa[ZR k{;Cy3JzmaBJ}XM~~asB?dPs+g) (iv0zKWw zw}/ AD8)Fx?u0T9O`~LG,*S?>C*tY2C|0^m b7Lu N<cG }5-u7 \qGQ^)fIKb,vI  Ou )E/xSx5M45 WtS/!=YGP-acZ KKWlWb G T ! 1m/Gw;P_`Trq 0 w nT^>)iWm,<9Oj<&G#5~} &9'WEq z  DPb)" 'cl I q1l~?Y`Hb/5S1nBY!HyA>RE;#YC\:>(%o 7 _ I DW"(gy~Noc@{@ScZJC3@sL~fdwe_sF 3> b,r,*< Tv0TjpJq,VcuQ&#~XIdg40 k$<][.xx<8 zz] KhpE9O^= 8 4__dN8]p[f Y R - QbR*(BF _ b dl6d-:E1.DuS1cu^(rIh a|.6Gz)r` U (X  \QR V  D6ic9c2$~ m p}F %'i- b  H AlPtCPu,Z bo-zB3zT g!!t[ 3G[ E  rB}X|=M[\Vkp*3%~.   er D # Jag+c-*cbj N@[ 0x *AcL! A 9 $l9 P|I=61X'j.[rSb = cH&{?l`MLqO , s?je57X7_ )1KG4aU(VY/NU H4j #`v_ M$p* ,`iY4P#hoUJ( ^ {' }Q%Y%aB 2=1BklfrsrZscaX;*gP} F1>%c L7 pk$=:dWt<sc[KSQ!CIcR4m AR (?t!Glo)RX  Nlk/r>OTRu/KEx"R l l Y\ -={d 81~0R<>SoD[;&<*H _) qs:D \ T/3)EZ[Qq^zv-.'@Zt9 U QYV  q?&+`f_14bygp6"cE6hiS,N!DRnN`y2vFnk9%2&!/e~k:'qpx9Fe/CZa4'7,+>2C!5Z x.'% ;ZeUg~zb9#/:4Evo '095. -#  6dg{|]xbrlvnI*/("TcLCGp[S!.DK4 4 k]}u}heWti9qzinaNSY6PX]Yb}t}pdL$*4:7Fd`AGmwtqoq`nhtF0Utd/7BX4LrXB:+dXl* N ZIKo ^ vEXg-W >~{ df!x:opj~&&(I lB;m{{ SQ U Z }7 9@M:LZwHkC'|"!y 0* b_# d  =:+'nkzg Yv=\ueiM!I6   7L+x qkDu1n*zks2OqIvw I )~k  fw0H|5UkBF>3R8),;(RU>&_oO $ 1r   87x0gAC}+.X>+"<3[9/r-w^"t:BC*r&Ls3,VnME+V(~0]2C<\@Y I%OEA?.SS;zF#|rDzssL8<F,C_d_obB?[XAS]UiL%+ AkEag94 gRZ e& Nf RR  .eQ5&'vn' ,`9ronL_mVBJ*(Jh31``;B tm9;Sq9e<-?igAfY5tv:TkW:A U%e~aPEWkU; @5eDSw<]JS_ ~0l%l<Vv[&Lvf`z.5woK\] LI2vNebE5$AJUG zF'?S1,pGY^yJiE2 emO = L KKR^wdFS 2gK$-Ma|2yNa?n) - #  G2J}7B.nSz<+'ah CgSyJ } h R !Uv &M]r]]&V]nE0n%qfrBt>dmreO_kv V mcy $8N_*_oE"(B(* aAbf_Rl p * "%J8yX;f_LwMm.F'&&10q<i F t carvCf@F+=ga#h`TVurq3+v ZSNv5.s0= UG }hF"_/W~-qw bwrH!,i9/n xHQ<#ioR-lB]k3!) M9A; INC > 1 ]H3*jg_~J]P2N2]1 d+q'8+bCL^)RQ J   }sJ q):R^~)YJ"}$!K 3;+TC}}9; ? ^ H v 0c;B<`5`XL7F2DZ{w"k)Mb{l K } &}~K A6yn,A.$$K-hM u70eF4$ r#ltRFby+|4 'qBL gXfp^af&/}fA  s'ccurPea^8N y@[Z~u z)Ks_pjp?qR$K&}hNfzsI;).SJyS"NWDi:LlW]}w!P0Q{pk N\hl{kmtz} }|[UuOEBMRu-EB+ &8::6+*ipNNVUb`{{ "xQUnt^^S &Itl^2(4B3,fs{qnYeoE":1C; tK6XH$ sssYr\R~s\XM_GD% ZqP/L;=m_6  !,HWxp_MQhRXyx"efq0o6j/F)EXqdoV3HWM{ px.lV}M(O_|js`8E%.Duv<(ER*G/V0 Ix:O8$2/NPW 30v9evJs'"Yh/)+25}Z5nn#vNm2nP"g eI(OF4 {ZJT#Q9:e<cd`Q&ep,6>{3z3WO.t;2+L}|@f5GwJ-[xC ^Q1C "G1 "ns<)ST&3cYl'f4i#FR_efU_H@;]:>L [Tvl\eGHa8|y3.!y!r@=SAQLPQDHFnw h tny\I !51'3K.CtZS{e+wd nbZA.z1n"%~iK'{<S4bJ&+3aR1b9W%3Bf_g)Qa+v"%-og5|0 }SI9 5U*Fq`Qs~N&AltHI%!Hf-@i@8[\c(ik\bPq-T#eGY6KnT`8  #,"b&2\i!f[GIr GiQu5u}.1.-c=di#OlMc{0 U\l'DkuG>lva,n~]VTLwK(Mn2q&1",hn)sb" sT> YaI:dqN3,a.g=Y{?:UNM"7SL%OB=AHdoozfxwBe [ 06=\l |.G4w1>6<S 8h;]1t*-WPDkCFnl- awHcoCO[5Gvr&\]pQ'cf'A:)u m|1(NT axTE.m@M.S8MGfLL%w-D! ',n;ED[ dmM!bu}Tf{)zT_w05'^rYXaBTg \'T*T;V{9EHq e j*<6u.6C.c%C]n-)'.iF`e%Ywq',v`h*h*NWvklw]3'/=~=b|ZBOXBMU0,M>I*wrctu~H>R)sz0N'nc~`x%y:H\~tfn%TH+\7F{g !Kd>}MWjn@"ns^NJuC>bW|Mp{9`{]$g'a} l"`>2Fw~B -y0^pgm/W+a,pb37A.G g+sE^~yl$4}Z@GjzFR{v\t<> 5.\nY"gCU 4"#lF)jHBQ[,-N,>$Fo y|+&13>TohyUANE@w{`0W?VI^EJ#46-pI(@Uq\V;O?wwC5FmzMfyi''l>>>%}uUT.rE #8]uO6P.7PeJ&)/?V=OqN7 -wl}c}uq{ 80I&ilo=iwh9H=%74$#77OHKxt\kV%#4jY57ABF^w f~qhnQUKJ-)^R[T\594^GC%ldSVbPB|^<C8/@2+2 0$.7@K=yK>Ua`aezq G. D<   .% 0@`yyYwezH%J/B/{\vtf@:W.=3@F(>;g}IUy}U1K:)D9=Bnh*5wU@}ta~NQmyzgtinzm5C9s ,*]`;GB) &HC%!~xh=-7<6c%9hBK )\T3<-/"WXi   TWxuH& 86:ag0P(+1 b)DW*4 li]Nb4_bNue?i/ Ad31tS V~X~wOp1.1-7Zeci+Vf=a@v @&Fiz f>]@5\{:)Oips$6.oAX;)I2<Rf ]s #+?O<)z{ ?~V1 uoXRis 2  Z>R8O|>4F&e43),'jwHctP S{ke4  uw) L KB1uVxdjSOWcOF T}P~qPvVE.4wXVf q 7a \~\R~bLse~g@dZ1ts! e|BlEJ GB v>P - B@V=w%c<hBuspXC+Mf9L Yczf 8  ! / *y"Q\=.(>L',  >0KTNI/O0L'   k]B#7:B_#%- ,WxSr[? X;r$  cX  hTB;v_n E=B@HNN^bPv'?VX Djgo g & d a+YhF$ll>Pu~ncIOF (  %Q\ Q 0Kk|<*nTp+dJ(cwaSW0g%y\,=)[p5ISqZsGb |uTG'}up<X *07{8403t!6z/i)sh-.w_GI($VjEr19OT&M2-O)g[sPp ZZhTa:x7psDM'M4q_ :L)SZd)D FVv0KK %e;!fSbCIU c~kA7G{I[g7\Vb,#s3YVRa>o;.{>:U4'#=p}nW _fSTZvH2N"DtI\\q h|sJa|~ q:Zp '(M. ?mylw(P>$IAp*>Jk;OZYIOf4JiV$LE2^0\1, iG"!Xl/y=>ezMY6(aWcR_F"n9Q?e8K($_ D$w|#tzW2jo=P$7FX5.Q/snxK:*2)Mt^(rgqHEz:,$M  h@a L` {R ~ {z&s6'2;Ygy*"'#L? 1}I kSE/*U;IuS tQ[]@x]_VINe : 2 YB#sig T|yH%o0> w7 Z|gu`f@SoE,O \ %I  ab+LI8GLk= <NEmd&?lot {u$RZ>1u "9!e l5 A_w ]-X)q =Uw;MD@OPhMz4@RgHK%b`pcehJ;I!xk 1Cj`7l7S;+p;[ <28%fmDU"rF']R~ZHQEnEqf/Hj ':0l#G[fvOGgzs*tp5V"?:x Nw*^+A"#="?d_" '1Zc8]@c'Yfh7Cxm-<c^q[#uX=@CXW{`H>?GOjpWD%5(|>Z$2yU>a<xJZ51[d CXycZ [ KG j>]4ZU=k>zTrY,NfG`lnJJR7fBT=Lj,IecPe9IyVsh I !8g5}&\LRtP,TWkFJ$nr8BohA}iaVAfRbFos@ eW Sikeol] R<IT[vlrbaU]x%_CvP8=w0B&x -mjBRj8nX9ecY*b&IaGz.$bp & ]xL7LNI.j;).: =j?y8`e#Ak)TIBB>{i'9t(?<bG>*%, .\F.h'Sj3] @y`[mN^Ho!:_"3S x_xVf b0ldo8h[2@h67&,R12MeL#]SzwY4gu)}z&lbC^I|uSHp]C.  5=km^'XxgUnS/WgwHit0,Gv0=LJ.]Z[MoOe\KIwz_A#m!LD:[*ry-"j}q "j9N9Kd9giaYIFGPt=5aL`D q />gC!)2z7DiLn{\?WL8~;02'*me ,  Z|Y#>K]0g@N}X75i@*Na0N}E  kgC[%4gYb5U}~pK)= ) ZT 'f@ >=qoCV=rZQ7w~cL-A} r? >^*&  L6 r ]^kt !q% '2Z 2@ $isd  5L8{l( R r3YWi>JuK\CMES%2 P9r3rPt(  TtkwBvZf0v5d$^&w g W/ U.Wv GK0vU #5]5'(=]S)i3y'k ` hiBy$8^`(2I '~ A^)'Lvl c0I&~5Rjf(MTn SQo0  R T*0MZ }|t af95N[gNo-]L_N]J*>? j h !R#g$QK )Wxf")zY! Gg>I%eur=   y \. X1b=91 ? W2&>EY @0|cZ q 2# kf4FY`Y;,t]Bq D[QTu2v ;N A8(,{YoB_dS[` AO8b/Q{{n v 1  |\CC| 9c^gG)sO-L@^} ,5y 2 9dO-;QlwItg|^",=F0swS!I1x "?. T ,fsSW?{Q;TAV={Y8A,] y56b&k8I3!vX A g X Ry]|]gqJj'b,=V.o$M)lr Rp]YJ~d:  X*vfa Dhk|fV4 2 S r F+ } FKkZ 1Z=hD!]K 79v9DI4h .dI> <}WIr;5]>\ {%qmF + x1m1 TkB x ! Q Q 6N_?pZn\9C.?L5`=`kW!39yL E Z,_w 2^JMC-h~=5Uwy 9G*g2MSdKTy h =  t 0^4Q^,\L7'hS"uq(Yfldk#$ 8 : i : 3 & C 6H)'h ri>M7mM#SIYH6@]xr\USCo_y<t}^@utiRO;NbWH|yvE~V5No d=CnKRZ _F^7f B{q=, =<@mH*\xI=@b/wa"wn3&<ElfC0C \/C6&> g,Au"l{h$ oHxwH6},q_D?(bU_0 i+8V>aU4?7|XX<dfmS,5Ft\FKj"EVX^Z?e*G3GPjOgRb vzIr-7^ [( R^- Y")Md ^z PuP}X0\W+ @P{a/ !Jf2 )Dj/bg< 5hBw>,w=HS}C{vUaxl{1Y;0zz@T$mr"UAs,]!W/vrjw7eP6f9;./l6yL}=-- 1a:$1vDi%HTjfn6vg :NOQ~m)1 Eg` oj S?^uEJKr>1(Xy {i=B,^v=Glxg"faRko6?\L?sM$4o[4;cR&9R#S"!mY$y>_5 m+a"Vj&o nFOs m $ 'bMQa O@[5U_sQ? GEUL@cT1tpu4xHy1 t [qw Wmiufdd= D@_lLD R >U|S5Q}KN 6 #= wyhR p d1NiI:P ~"m P; NZs?ibIx ] C 5 >d tD9l  x3Ld# ' JfQO;6A'L7sz MlL xV q-xW EfL i} zN4RW ^z C  V }Fc@ye 8 < F(0i7D :?M!a  T]q`+gx0.3=9AW [ [RR K 7 ;|HdLnV}udD " x{qz}h tPFFh~8Z5|O: U  {Re l2cmq{ S).+X.-t?dUtSsz6u 8 !hCP  DL,IP2'I s  P19-|`L]N  Jr \!N 1  ^ sW w i -G>ODY+ :8O8   ! 8pz7h x%v58B&? [  : 6VOZUXyNA5N;<,eO a 9 !Vie) " w c#Q$cL ) nON7b  5uZR=n!{_  Jw am2  x >Ml c / |  G{CWI]@9E W#` 1 H ^_0z.n<V 61`h W6r ![E>mHX ,  YC R A+ 3@uV%2 n {] }eC#T/,0+eT=R N   M G +6 S49s6z!UZZ{8h*8E=}|-z(=,#WD?DOV0JMyQPxv@[PevF+JOjt|; =v[T5m,G&ean8 e#QXtL67on!jo N]v)%&9 wh 4bjo+nkb WR>q+%kqn:)oNv0rKdrFCXe-S86= ;GAoU1 +$Q6q{_D,5fBo`# ,wf0eu4Mb~Fofj7?JRlI[(6?l'5xf)m-ow45p@LliGtX v:ebJYY +J ` ua-0GQZ 8BP:odU;gFE,b`tdfG5|@[8j%a4{;w,N*D47\T0{? Fy>*P!-gb]6.t]sL{Vu>3;hrA5<L|N[APvrQ4j]8}6K(C }w~*5-+KrO`8 :;4NQC>1Nt{^n0 v:x\ *-cXu+e\ ;?2%j *_kXq{8z-~1~Cl10 sge'rT(P&aP\W'I/D"~P&O:LcSfj}se)yq)8>e@;'p&?|41M U|Tvq,^W|lfCS~mYlZ6h6Dl2 4jL][;E@:kD /E2+p Q &] L? Gf}SfIvHVp Az=Z!5LYJENTcs;s,@$}1~4pHkxQlILH#dJ'}&S,*nT6mp3,M/V.UQwg!:B Y {T<B+w$ K:sNm|/`.TWd|mX%W R I g<  jHCV}`>)&="%]ci `- '4NHEWLv( 5u'2wg^;"%vIp# fj !jٞӆ#V%Q|C,hATY3r  eb.l,{faKhKI/4 y y!K )n#>vh)D  L @ >V!k7iK29g{4{++X n| he<(H% .? wo Y_ g }iZ$z DK>C5 ? Ki#<&[>3JEf Tj]Ir|--aO '#]6 K4N,#j ucdS9+E a(R7V%Z Iys& ?|4(?0&C"bY o $$(p P JWk{9 aC|s)ITXsw 0hWyP =C*4{Q ] <aT3:To3 fNFu Q)~ {Z 2f&1/Y7 CG|Ct2xZ: %% Y-n'xT FM,ElN 9Z |>W]F9NhS-jl AKl (, UwGrt)n[ Q qX7` /P4)(^'h^  yEqvv&63 i=p*  Oe A@+<iw#i ,uc0x&J F&6[HK{yjd- -b/tq[+O  m9i%) kBzxGl# b  b Z^( e:sfMH J! f H.07kh0Se) Oc O zf?eBeFj ]6 Y w ?1M* `C9tL e2 ^|`Yg? K.  &&3 [g & IM/ FIR=Maz_]&x a S cu!^ ~6 I _`.Y E^ EerY" P H(%4 ;Qn ;} `s&pQ9v$ bS)` fkVIU*SD09@  [w) fo j|w`%ygmHM*Sndw '3!Wg OS)M8!w > O T~i Wi:Qs9{8w&  ;L@LA w?i- CI4i{" L nQU{Ay]amuqWx-5,|[ I% JPNo+tJ w>,Q% 6rEKaf7CX`}9)1or XlN{BnA4 o{SKZ!6?zi17 o0$Vh . N t  F24o -J0^n27?q[p33-v 30 7.>- pH AmxorH'13b<[FnS46\w{iUhfV3_? h ! [ H A9NVT ) JB+ W 4"i?_XqC(ucW ,VW>cBAR$wO#~   p@g8+]zo/SG \B$|756) okyD c}Bu!w}THuC@_c$'U;CJ a YHZy E% k0NB?  efX&gl+ ! \p3CPgo n&SErh2JsCr@ qPN  c rj'+nqKH#4V7 :\j}gEx,p;}U -,u =HR\UYhD &r !$A.}`NhiDvEk G>P "5 AWs =X` 3dqgmT_$j%U TrkV+PCunseS]&: lO SM6N)  OowZ4hLwH&<[EXWD<-v ZPjd h m(HQJ}2D@m)P`5Q9U+.}HxKk=|s ^v\UO/ Lu }I&Krj 68zB<`Y SLt }2nw urz  ` [Aw Uo8u!4ZpN" T  T%\m TNic! zl:> #}s1'lf O [b% s eR G|6RT)T;J4 /cR =Z?O7 $VUE }l  j[ vc+#,ba|\bz K|:U/ _ (Z!j x!XCh^ b|8C`L-e)a&pg'XET?v 0 6Owz{r*AW\k eA7+P.U?B"wGG! # 9?g4 , .Qj+DPLsNdTVrdt@f3_P  ^ m@<k4(-x/l!ePj/AYrrVd1QZmyv , a QF](>nV+%DcmG$74 E vXk7_p.nhV'1Zoo0kK]0,#-6:e'_&Oeccs `k')N+zc:;O{5NE  7<7j;esvXe.VjoE2JGbw/oY6ad!+#n(]0ms~+eWK'Zx1kc4G 9WI/zhH74H&({tr /3YD=kF*QH;dM6lmqnsiJ{~,LcXjLRXQs+-S*-X~gz2AuHtx:JyOOmpsizK8fN,;GIO0>X6dceHi%/6--IqgH9I&gvn{j[U]9XrjachZ8"(%4udM.)EQvvX9'0+TK,)"gH1Gadh~jS:Jd8KFUstt$3R3.&ADCCtyhcrlux&-7S{]?=?^{t{IKSZnCNaFY];*%Mvanxdo@CK9$K.%4o{kS#+,-<)-<QW?aPLf_stid{rrkbm;c|z|q}{gh_R- ){VSc[MUXC2Lk}~ew| ht0 8 ##!3 #%7EvCHgGa[ip:(<GDmzputkkhH`vJ $@Q8M^P&U9Y`HxMEyoyvQkvpdob\oX:*i1Z~:AkhRiFfT{q9'5@bIcd\)zH|lQ-1=*B'+d`!6JTq Y[ N3JeP;`ZmuOoW' {dPl< Wi~GU]<2/DY3/ysw(!LtcQs, wL:#n+)i-E_>*(11CFKdF.rdLI';AcIC{FW,/,T 6%NP-u'$L'Y`3w\UdfPq7 IF u7K/(@YY P5QzsTDV?dCr#)F[UyhEkY 2c,OTTIdZP]|A@Nr9! --*UMWGfF*.H3v(F ]/:&j& F^?I2{6Hl0xQ$(}K3VR8n!}T; 3-V )H+no(>`YW 8- 7LuANy+WU}ui)5yQO@/._xnnY4t#+`[3:6aD1I5jpIkh^.am2.*?w5oqXxljMyvH@neR~|;{ha^~*r<fX?SU8un KH%"uP`rpsL1X-@C0T<;kIzfp#.>5S,=00C$F[-WSOI;*rNF@c`Tq}xBFSWB#e3gA';I}E\t8FH"=9-6wo7I[8b5H#?b^ 5_!f@$P1:D"(8|9?bA! Lb4s>W@^?"9LkQgF`tyBV}?5|xYon4+%1X$4H#X*SP9Qh/:)-E-@LLeI)L&Fgk\&D D[ -..y;6H=K.z\6n~SZ[9A5,iC .+:Iv|[?G0OHLbcKOt? +%&Ht` (.J.&~^5V[:nX$NC;*.Pe") ormsfyk"4~p$3V>Fk  :.(MZO+P@ U1.?h@(=+)8 2ML4GOc<53."X2?AG>tLSLyZ,2" /:EG&:=4NR<.n}jjX +@"ctYYUYg=$".0"(#JVF* !8,BgfF wrtovgq~xqtw>L-Rlw_Ok>/vPOEWOwrqL&[`i}]*"A&:.1 :IEAJ]Nazd{t`"0 -&*QpvsZ>1!0)MD0 6ZqntlPke.Kq^>7DDxaP!(!}ocS4:/-SU@UU1N[Kj^HtC3C&$4EI<'C28HE3CB%'2?UH0@>8Q7/C-.p_Igh[OSqil~|87Rq|%AI!B2" 1)  3/;@2*/&$RCIH":3(7%% E.;+1ox`dX-'*4>?30_knT7B;;9Tgs9D[jvwB`r[\^|zt^Qt~dYJyyq\{ 6>"[N6IRTngW]yIC\LAVMQsN[}gnVJ<1g}dvpnb>Hgbeqcx  7E#QlQa=! 7,1?6  #/%3 oX^B-Z<Iar?09(<OFCJ9T\&#-?:nNFe`xb4&k} +1<Z9VlHF -&98;!+y{wg@ @Q6,&-G*L:$ *QIR_lc>83yiJl(0rHN_F T !4  9- :v [  xN2Px*%mBV2# BE_*drmrB RZ2dgX|.O%.@9dngEgNZX{HI^ [Z[`k N\+Zt BiHWlAf`:EzabD  I 5rd&s u40Z}hos~/]{  hjY ;A^NeYWGT~2W t _i`< +0 }n48J ^ TM ; WF}<#X1 f )Jw|. #j]OG>J! o h6n+NA&e 1CIW8<Q   e6=E:co}K < V7x!g@|;s[ <s |H3BW L"/7 *>z{n 7jaOIn%@9  r2CGjJ9YAj ,LMQ `$@x-(<L 75 F ,{z-RQ`WeM]dJQk1L#c RJ)d < %olk DO; E\o?,(qqLW-i48Ca? * k:j;okgLt ?@ x&$2 { Ml& uGb f(~$Hq=Syb nz*m^7>X )+q.du Pc d]mmN =<~ B -IVnkLlwm=})ic\uQO}Q')(m _nd! N {[,2lO)`"k) u: J&UFe$xb -  |SC6" - *X@M_ \ ISF5+  H%'gAIH kZ ~"D_nQ{ ||  d&T}'. I)K=}' g26cg/'I2XU}/v!5  h+(  # c8<H##UT&ws skq(q~Mg] C " N 6/_qu "eBa| r H.O ,q  JuqTZ\ \+  Ur  Jj$#a3X/pj RW-s+*{"B *j K /U f%w3@a:QL8~VuprHH7DCyk 'aQS DLJGP `v? ~oW'sT%6BbTw6wrp{GRG!! S 3  Kk  /d`+ ; 5`XjY< L>:n}ePcm=kHwU!i B rQ j0 W0O2ee]UZ' "xSRx j@v-U_%SBj<   \  |1x  0(+=XH Y-e"09I#YoTw[f?G* E ( jP Ld^:l 8"cOK1],#fqi/}k40=j7IaE Z i L K</40)Ea_B NoxNgoKa0u% !  B3z\;W  j)B8Xuu ijf9#"eu GD_ ? ? / .|(\O 1 .goB </D8`JEAuV{;j1{r#ze [3~TP&4S w,8sx` <^P?$cQB a7 { )mRI#8p#3BM{XBN, !G,2 ?OC . @#w @~*,]Nc SE]Xg>ct1pF`9"X,L^r{ d }J0;F<C']HEr';/ au".^"c{m !>e<_IklT :T&p82\B,#/9QN *(B*46Xmh5308pB"]<.7 ~?BG%9b#U R< fJ4Ids ! IV^04>{K@%z^kN)GM@& DL:Hr /QeEI#>r8q3/(~\k_Y?z}J nl#8ng#%>C ,(<9nI{|&W&z+2tUeG4|ql-i"KU)+! a>sQ,BBV <g@TgD]a';('aKRbnm 8JYhY%ItW{JZqZUYfk)[V[gB|Zl1:K-F)A6m$vz75XfO>@N='N1P)rI PR]QfB$SaysXU]9a siJZQoVg/,?L>P+s<$* {^pC,/}sX|_Ct{quc M6QM ;{ &M3zwqT|P < ]pv6gyD<_z\=+k&M&g+O5e>zRCn~p5%w ;5h!?AD6c<G}_nY7 :U(!@'C(4@Zk-6wS"qYB#!myoGA,R8" -k(GgltT=M^~}{W4!&4=?F >OGUm,Uynkm^o?2r d-km_K5K jEulrj4?p5ndNv6|jLjlD h,*!f+_IUfR;Vkl('QCwQ.O+W]?zuvv~?@Ni4[-f*F8o"T!'`H m$Jz7hSc mOg*1BO*!@| ]Ac#Q[i8;\`p5F05"}+bpcN; !~E[3`kBwTC3' {c|KHn&kp=Y =5kp-reZhMmKvrehlI.& C(b)yb x22ZM 3 z _=Em`I; ymir4/C%z[ ~ >~fy ` z2NF9| / & * )%I:ujw 0 V Fjs;^ r J,9Af;*jm D w~geaJz Xb6  ~ "# CA= V 4pueb 0[ LJt,lT-T]Tv) / la(OasV L l1BISTH f[ v^|5}J.cRSy M UeQ %`Djx+YO( 8ek2M}:+ y `erV #f3+$G X B5%i us SQIq|8?AU  B"zDe4dEe  T X< v5 e)#Q~ z Hr2?W7A,kS\2B] k &F^j| L :FbjNB   wX:]8g  O #NUti 1 (sIT)sVb4/ X A2rkfZu lZ*,W, z &1 $-F W: Y ^ ^_N\/IL)+ nU|f y e Z x ^]MOZ t ?af4/ U  m*63|1[*aR)s;   u #= F ~|Z   S,~$#GWUiz-Z k m Ng R?l|S\^C)O  ;ATl@wF|e2O$  / .N GUx2i" _.@o? hs;$ aqu%-%IW]e < g:.1|  [B ~;21{ _ u &1;nYfp| ( g&# G8b 89 vxh> < E>nx&*Y]D;c-G8 XS(  # 6#_3_ny 0 Wu78Tj- + a]7vn_1.lpId[sN L L  ]K ~Vj GG)x  0|}1ULCWASO1^'RW  WY.ZM0@ D  R" f*_ 'feEh&*r:Imxc!{i%l[(r *% N++ I a11 V,RW?~-FP V#)~O B " yRN*4 z = bhF4t5y'c#[yR4}| <E r2^ + @&tL Rmh?kgM"}3 A;< H ) " +>!2fS5 #V.y&6p&J}_3'>R[*NmBq  ~ #mxEQ}5$o:#X#yZk+9CGfFa05Oo2|"oOwLbDQ X:DTm lM-`52]/N\v/~QyeB\n 7KlON907s](O\K`{va|43j-2$s22sh>w}Nm^4;# Y{I87nSL\6Rs#uJ zo|`.Y2("=M}C#Qg+ Spa>'7KdZ9#32hp`ya8T*F+'sIq"wW[G*:`{|1 M/a`4%q:uxr]>EL@7\uxuLqA!!y vL5FG 0Nj*Y V,[rac4P'xA+c:d2;*|We9S*o l3IP  (d;s~:k{C"h"BE 8(5aT[VFBbSVyAgu>3,V8>X_Nkg4HM4i_cPz][Nf[0BZX6]S}Idvv=l^:2z1kY3p:4s L'=Oc_PVG2r,QMRC}MD'Kv-F+9UYd)I-GXZ*j`FuQ0,# ymzFG-O_ 3X2(eA3itXF$(}%@[u "+D!&1PSb ."LLX8"GH_ K 8p#PW5GG 0FmPt;4f$toM7A UHcDm@aLF\ (zn\|? y )_{' /bUcpj9W*ZL%(tjB!R-0+^c0KLhKU%%f"sa<r J|h{NM-ohAY]o7hb:<H4*=T5mcn.hL]p|\"S3=,PK`Qhb{R/<~/Bf55PI.-Z#xj,mhKEzz >J HB-b3Q.qR ?q t2%Pu7evBmp,:~WN#Mljm'Z[,Rc]9oSp5 o&1kLr9@[G%/wK)!!6` V5 _4X{1Pbl4j/ ,*:bR$kus1%;wLAxjx2-*LVSD A:EZCG, Kunyb>a~~0E=FQ#dsQ"d c!l7 Z*%\8wfv[sid-A/Q W 4t2J`C_Vd.!I Y~0"k#5%3rvXO  i|y+*G$*s-IfR  2gXRhh bOyK a  $ ! F{Y?!^~h%6HyF! *IfX8JAFr 6BhbS#{Dp   z@B?.kUNE[R46o".' !|39l 4 *hX BTCt*( & lR\ '?Uw,)+0=83 ^7dZy? is Y;">&nT l'ko G q}zs?z"50Ruc ~  A". |7]O: E{h}NU.B@A: I76#N $_  1IFQE l M 4xMi9_$g l  z uI3~  D.]zvy ':J,^x :)W-U1 4 ' [LB ?t #N/`=ouI$wYP1zve!EP6 l l pWJ*54J3 < uSC[.0}s!9nXPb,|:Q  S  Zx*qM4L#?&"6CpQ? 1so ) 4 s cv7eXPot(UW'Oa=H@EZ9IIgkpyJ}u V  ` ^|`,<cmObj[ccAn4 !  d]u:Rr?!jk<p_EV`>LxjA>TXtV] .U$>"78d&h.z^plW37wlmP% 0F *bOYdtU8US*gymXi+(b|Y l]M{  E\\cjRVLVM~JcG(+3(}DFX0Vd*vZE&W>99( ($  efX^EK5TZKUr""F#?O8K2v& ?\KKO$A%#~huYRYgqN@=B)>/(M_-ks|{"E$)274*II. ,`XA&?G1:,214HG3 G44D{Q1OKB? $*8SB mj{0<iiNe^@chZTTr[0G<FpwytnvHO'  | LUKg{bn n J]c[h.c^9N 6-M<7>])g]pF/o]VAXzGpzeA` h4qU?k5n%(hido;J`F<SC# > sl? hi79 ib4X8O.}`viN XOG/;;E=$q1LL+ )binr%]@ MedtjhKn uGeVhmtW79JATXw4q{#G>h,\S~%$EOpJ,kKI o!QN) y 4(lP5)%5.Si^IAN =Ne)2;Y-ZAK)8f2c5P},u]KO:X=-zE[[_DIxDLL'![1of0!<C.[E^)NF|wu5@ieEgltB;nIP*5R+pCF4'iGxY$_LYPH!Jj,xczN$Oih vm#hN z~jeNZ/v"~eBe M-)P\h>w7* K1 7,(oQMA|@!,@J} R b~Wt@i, 9xn^2?L*xe5E'f>h 2(prnzxe?6a#} BkMiq& ";g0f|q3w4lN!i05H,Z@_n3GW3vbE:e5 VIZ]AG/t_}.p j W#rez6qoeq%**RUePiyt4LWt76zuaGGs 1Z++D$Y!P An~?W`F9x;QJ3xn&s}Qr]j11Nm%(vyY(H> -=3 6BI,;vr{2U%Ge 6@kDf g1ABW6  a 4 _ rop5h)!&YI:kW[ u^<*+ MLC#"Z >&Q x  Rj Zm2I\tNI-d /w)jE,1",y//} uG   @ ; h O '?H<6 lPj&| 6v9F9;p2k^"g(et T y V q ~( koyYM dm$ o1w(|`$Yj(D V " ,r Z P{R@f+I\BVtoLV -;5M2vS'Qh * < O j"l'n_^PkgLT5` N5AQlX3 n N/; BmyM,pw(/-|p0; fu{g|4Bt- wt u  7 =_Kzp;iM=jmp@_&ITxed xB6G,z)ti  n i  &? =_UH>#HFQW'?B1U;*[nx@Wl> d   m xN=Qea_[}l AY/.G9eBa~(r}\5 3   {^ IAbcN@|f:!E@T+ cNo\}^'C !iRO 5BrkP #  j]l`{@{g%-&o+Bgi4.iR_3 7#5e~g"8y%:7L2EJLZUbM E7SwcP\rM  ] 5d 1}"?}R%InRb<a?bUf9m*H1?y9 gmH0  i [ F1/-9ncnK9#")}nj*9ht]_  | Z x 8[VA~Z| Q\>Nz;Y)#7HCeJ!V] T ) O  \jT:{"V?c38qY'm$=@8)zz# \dR]e b Q y \~ }@#G H8=/LaZcuxC|:><n)\ F_u v s GAN[M/P!,E%BpBz}|N;84+;  !d4T y1`nFvN`95/<Zge8Wm[})Kcx^mU*E;Fu9ZNgpB 7 L1V?l*N6gcRXm\ /q{i [L=b,FKR : in@ rFO "r5r IneLN9QNAW(wB}'r l'3 Q)]nJMl}rn _r233nmpz)=_\\;2>V2`Xc03:w;tTu97@L_ ];5s+eSnon 0d?vN.V$jc1UUTNE L $ r&AnkYRn,AxIZW_tx_zGJERO`;]ZS(Ob a ?@'+R`!4o]gnsxS:.z gvFrZ-5 ' E O F:K7kMs{gVQO\ .5w5!)^F.GD !gI>Gi5E:^Dy&evqr k|^_Y$Y(ji$Si^m!Ful "bkt>q]Ud ^&AgE.e ^W 0]"*8KF vxw<*+Zbmc~76o7NS_N{MN x sWRLRA9rwQFPD)HBB"d#R\uP/S|d$+z=\l?kNSJ>do1KV$A[WvyL6g'o$W3_?]#]7| Ss7# $Fdt+aTtalbmX/SxpJU_RH)S^!V?[M82) !P, G,rQNvK|5 O6{Q(S=L|xw,[}3 PF[rh>#w(4CkI53 )Sa;}G&PVTnAKjN\Ya^?:NLLF(">!UV_>@.C<1!-F'150+.RTf[QE9\pks%Z>@WPH6A5{71 t|V^/rl{>uqZ58<_7smvSN&? .JMj2FE nz$}a\* .>"&}IX|U6#d?twUHX)n L{Mk s|E'oFLOm,MJ,=}&S%6L:B)}lFj1# #AKWqlI'"IIXgUfiJ0{ADEI|bK9+2JDy&' JovBC&:^{fV_,! RL2{l AB.oy[{5 M)wU$-$PmM&$V}tXle &uML?0G=Wkp Cv*.CKe:Bfeh'+{p]T,JSjQxf".ZIdoS>GA|9)I;5qKq>],Q{CZ adMpy]?Lf 5]g|w]wt8s'f{YJ9\u%D Yis|% u =:;9<Z<Te u~{f.@((g[/:k;(:RW;5RC .jM8g5E~x?;mjro1h[tT4Wz`I4t2e&,:|6rs jCa'Wd{HF (qj#K$SVx ?zZ^s@%W52)Ov*(jGW{ 8i =czh| L53 (&3%f%Pz-}/=I &w33PaVxT-fieblnt>7yrF,gU=:MrS%Yg*tK2'/'X~Ed 9F!YWFy_GbxBov[~%w9]_aq"u):h<2p}%`2#UT9q"k4Z%B|`X(t [ 0>mO8Q5< O !R@'55:@fnhK+hT q.T&[ ~   5,k:06EOC;7Do(q\E&KHh-_;11 JycP <0jSH9`M)k;hokIYe0  ; L Jdot]:@=rYKO~~LPH+ah_pLQ8L=} Z  j  Jx\ n ~ Nm-zv FnZEgD#25 Qk5Ug)r)#^E6 ( NcK . \`Z MetWVH4 #NA {. CpI'ns 6  0e! B;5a;#9 1g^6~emc@&`cLUc.Stq> @  :UIQ Sd }r91t-saQ| D!n  T  ) /qnH jtZ x . ?X y{A "p#hGkZlZdxUv9 /_p yK_/u geSahxYW?0#J]! > Km]&"}yYxA* g]1: E S Xs /aRk^\tjB 7 3 j_6R; S _&;(&Wbv<}b1 a K%J  /b;4M ;@26I$#2XDggyAQ H(   |RB#4zk pyITf! B Pq xU$Zk#WXb[UH5u K m x deNb < =6K -yzuC?@N+l7'i(G]U2 hAI =ppoFfQi M* O-^y@kWd>lVKx Y Z nA xES4:-YN`/;R029eIybM\]f=U@]JiYM , f / + t%t:BQs7pSs;qac7ow!Pv 5 ] 4 & ,Ox$v;F8 >Z0a6xCj\~DJEYq|hbbT`lqI f C +D Bw+X\a8vQqxsY;,b8!+DJzhQ^53Lc4yw.n  oT-3k-@d]UunmvhQ+t-gD}OHu}ky  c ( t r6^G~ ]6y(E'{>V Hqn{q"$:s+GQA!6n0nnK< M d J8^YI vW Lcc <' 8-.;4IDpZjE4fby%==lKCV/>6cRf(Og>ekTSb2Ne()op=:8+E hE Eu%\AfjV$CsibN8g WP q'Y YhLLG.)^{^ 5s#6P^1z M+ &_Y55"LX<R2%s.E<WWi`T]X1S i[S@5?G X[}KAHO@ H Dt#4]vCsVC %,RHnf5q<K0>&'\n3F22QbL~ZB0w0 %6/p%SCZUj1`d9uLvK'* e^:p@ 7`FbbtOnR-P3^TzqpO^n8)78cMC T~+;@vj*k ,ygtiy0Hlay-,4,E<3hL+ =Llq8: %Pf",N=2 0&@< 6?qxK&/TQzdzjww%BvC #4Ja]HRxE54@/40J'DrN>1`|{?vj{xQb?_rHt#?  ,'.48"tbZE LD/|gTSyuY^nhiMjgkiRjiI$"XSC %   7{>-V <cUMA21'&*`iG(c9P=2;S:$"Gwhxyz^lG\awxd5"  T<[5:Lz #J]lW|snhX|yWgQ"-//)G<#Dr_:4NaI[HZlwG?]@%/&4Rs]LN% {#EXc|? .M+.D,,CuU,&.#TeYO'BU$7gf`l,L|]}iZus_{w|%8G_K%">)OM1Fimmv~rqxm:"R- /(JjX/'&0$86T:7T:)E!EeFOv[B3@ 7CG=4 Dg@GciRJ}pbet`=&.E}\=YzmzqWgXQaTY9"[M@V7< 4 !\VNhl|vwml*)75=ycbzl~ooLcbnH<xuL-=B=,D60@Nw}nRHp_&YfCr"]P'<.   .)(>$Tsr{N( x|m 4>U[QJ^F0Kg7+0$HzylN!4' !1C4In8,GO1z}lw__B6:Rfw^ji{R:vxi~bny`TO-DC4 (5D}wl~jy<2C_UI2otQ[@(NG>+%D" <2SlG+V4 @=Ifb?,ZU::8=)"&G137"Koj6A\V\r{zDI%PtOsdeT:Rc\^0 ":*lQ\S:?_(;e|m~{~yfX]]$* NFeqU>oynjS)@XLV) /$5stbZWno$ %&YM@"!YO"!B=% %;46`}`9 6L XVG^QTG'&PJ;(?vqdqyrzz{{~wP )+&04:90cQf=4`XVB/_ymX52DV9+# }wwQ=DCZqutms.!A37L:"/!0(,vvv2M6CDGewwy`q~cz|2:$+d8dtf[BB@R ?xef^r]OYWB%?m0@#(HnG)X}wEBXvurr~:.?DJ1ALGOC/N}s?6;4#2_V/%Kalj[uzi[mlJE#")2  F\NK[g}eFL@1>" /$J#*,8B" 016<'' ( 76!M`T9>\_7U`:40BM$=-20 ?znE7- 2% "Gahu/)lk{qJ+>90G8)o7ZzRI; 2<( 32=@g\}xqk|tv?uW+&PY:A8%/5# /Gaw^J2&;!%( D"34)9C`qkKSaj[B!  ,A bOKD dTL1+:;0 !@<#ko\{rnz@>gne)C!+bI"$!%R|jMU}FVQ^k{k{ugdSd@JD=QXI7 $#2 +"# 1UFOTpd+&.d="G0:NJ0!>XYcj}wt^ 'HO qufY]`KOQ_z}ibTCerQV[h}w\TB/J: ,H2'EQRZue( mNrZ]VCkv}^]NJI6_jjlr(''EdKWQnOhX@CFxbcyL_w\wM=lh[o{lV<# ,6N@#"OP$WV/ &JtquthMbo>LU1% ,5((*%]RPUL[bR;5(5($N{pYP<kuXWxf]7;/@RdvlU9J;%ac$P>)2?\du,.0!2)7 LWkm23vksaWt|xIHQzGVVge<!>0|vj76S, F|b:5Aknfwec{5wT]c{ef^n_bbJRHY`WoJSrplSq[itn!&n|<<;FQ.) 5.0,wo^TW\>fjI'3?oS}^&Qgr( D=[jvC 6;" I( [R"U^jjlawjJP$.AEW7UfCcY]mA]hF>F_D%7fL6#*O">x{ihC9+7etcbKm *r\=L^F(Q]HRSI>I.5MPOE'Z1D( 9"&.qo~wc97R>4 $!}d{)#qomv}sZW_K-)RVW^J8620DP@QrbXc_|#$&*Q>'75"7%'FXgEd=/=//.C>  .M?C*6|I6?=881.%" W+%DjNs{h<; oqiV^eN599L Gne2SOdgVE7QA )UYz|[V -:;)0c2#'AGMDRl}mzq|(}`"Gl'aE)[4wo<N,0}h.VO LzVE=1 uYuYP34O>KN/545PZQO0ev4._~lda|`tjWVLYSULTcrxk~k|hu{ON/%.'H6;(<[WZA3"*.0% -J?codec2-1.0.1/script/000077500000000000000000000000001412132000500141405ustar00rootroot00000000000000codec2-1.0.1/script/build_cml.sh000077500000000000000000000003471412132000500164350ustar00rootroot00000000000000#!/bin/bash wget http://www.iterativesolutions.com/user/image/cml.1.10.zip unzip cml.1.10.zip ls ${GITHUB_WORKSPACE}/octave/cml.patch patch -p0 < ${GITHUB_WORKSPACE}/octave/cml.patch cd cml/source octave --no-gui -qf --eval "make" codec2-1.0.1/script/gen_phi0000077500000000000000000000067231412132000500155670ustar00rootroot00000000000000#!/usr/bin/python3 import math # Save the points in separate lists points_t1 = [] # A list of tuples (x, r) points_t2 = [] # A list of tuples (x, r) points_t3 = [] # A list of tuples (x, r) ###################################################### # Generate ###################################################### adj = 0.50 # Offset ratio for step of 1, estimate def loop_even(upper, lower, step, ary): result = [] for i in range((int)(upper * step), (int)(lower * step), -1): x = i / step z = math.exp(x + (adj / step)) r = math.log((z+1)/(z-1)) ary.append( (x, r) ) ##### # Create initial list which will be sorted desending # Tbl-1 9:5 in linear steps of 0.5 loop_even(9.999, 4.999, 2, points_t1) # Tbl-2 5:1 in linear steps of 1/16 loop_even(4.999, 0.999, 16, points_t2) # Tbl-3 log steps: 1/(2^0.5), 1/(2^1), 1/(2^1.5), ... for i in range(1, 28): e = (2 ** (i/2)) x = 1.0 / e z = math.exp(x+ (.19 / e)) r = math.log((z+1)/(z-1)) points_t3.append( (x, r) ) ###################################################### # Output ###################################################### print(""" // phi0.c // // An approximation of the function // // This file is generated by the gen_phi0 scritps // Any changes should be made to that file, not this one #include #define SI16(f) ((int32_t)(f * (1<<16))) float phi0( float xf ) { int32_t x = SI16(xf); if (x >= SI16(10.0f)) return(0.0f); """, end="") ################################## # Tbl-1 9:5 in linear steps of 0.5 (9.5, 9.0, 8.5, 8.0, .., 5.0) print(""" else { if (x >= SI16(5.0f)) { int i = 19 - (x >> 15); switch (i) { """, end="") for i in range(len(points_t1)): #assert(points_t1[i][0] == ((18 - i) / 2)) print("{}case {}: return({:.9f}f); // ({:.1f})".format( (10*" "), i, points_t1[i][1], points_t1[i][0])) print("{}}}".format(( 8*" "))) print("{}}}".format(( 6*" "))) ################################## # Tbl-2 5:1 in linear steps of 1/16 (4-15/16, 4-7/7, ... 1) print(""" else { if (x >= SI16(1.0f)) { int i = 79 - (x >> 12); switch (i) { """, end="") for i in range(len(points_t2)): #assert(points_t2[i][0] == ((18 - i) / 2)) print("{}case {}: return({:.9f}f); // ({:.4f})".format( (12*" "), i, points_t2[i][1], points_t2[i][0])) print("{}}}".format((10*" "))) print("{}}}".format(( 8*" "))) ################################## # Tbl-3 log steps: 1/(2^0.5), 1/(2^1), 1/(2^1.5), ... # Output as a balanced search def prnt_cmp(x, ind): print("{}if (x > SI16({:.6f}f)) {{".format((" "*ind), x)) def prnt_rtn(r, ind): print("{}return({:.9f}f);".format((" "*ind), r)) def one_level(pts, ind, dft): #print("# One_Level({})".format(pts)) mid = (int)(len(pts)/2) lft = pts[:mid] rgt = pts[mid+1:] x = pts[mid][0] r = pts[mid][1] #print("## {}, {}, {}".format(lft, x, rgt)) prnt_cmp(x, ind) if (len(lft)): one_level(lft, ind+2, r) else: prnt_rtn(r, (ind+2)) print("{}}} else {{".format((" "*(ind)))) if (len(rgt)): one_level(rgt, ind+2, dft) else: prnt_rtn(dft, (ind+2)) print("{}}}".format((" "*(ind)))) # Start recursive process print("{}else {{".format((8*" "))) indent = 10 one_level(points_t3, indent, 10) print("{}}}".format((8*" "))) # End of tb1_1 print("{}}}".format((6*" "))) # End of tb1_2 print("{}}}".format((4*" "))) # End of tb1_3 print("{}return(10.0f);".format((4*" "))) print("}") codec2-1.0.1/script/ofdm_stack_use.py000077500000000000000000000113021412132000500175000ustar00rootroot00000000000000#! /usr/bin/python3 """ Find stack usage using - compiler generated tables of stack use per function, *.c.su - run time trace output from compiler added enter/exit calls. Just for ofdm_stack at this point This script expects to be run in the .../build_linux/unittest directory! """ COMP_DIR = 'CMakeFiles/ofdm_stack.dir' EXE_FILE = './ofdm_stack' import sys import os import argparse import pathlib import subprocess ########################## # Options ## Trace file (name) or default ## Use existing trace file or run command argparser = argparse.ArgumentParser() argparser.add_argument('-f', '--trace_file', action='store', default='function_trace.out', help='Name of trace file, (default is "function_trace.out"') argparser.add_argument('-x', '--exec', action='store_true', default=False, help='Execute program') args = argparser.parse_args() ########################## # Checking cwd_path = pathlib.Path.cwd() # One simple thing we can handle is running from above unittest (in build_linux) if ((cwd_path.name != 'unittest') and (pathlib.Path('unittest').exists())): os.chdir('unittest') # Required files assert(pathlib.Path(COMP_DIR).exists()) assert(pathlib.Path(COMP_DIR + '/ofdm_stack.c.su').exists()) assert(pathlib.Path(COMP_DIR + '/__/src/ofdm.c.su').exists()) ########################## # If trace file not found, or option set, run command if ( not (pathlib.Path(args.trace_file).exists())): print('Trace file "{}" not found, running program'.format(args.trace_file)) args.exec = True if (args.exec): print('Running program: "{}"'.format(EXE_FILE)) assert(pathlib.Path(EXE_FILE)) result = subprocess.run([EXE_FILE], stdout=subprocess.PIPE, stderr=subprocess.STDOUT) if (result.returncode != 0): print('Error: traced program failed! Output:\n{}'.format(result.stdout)) assert(pathlib.Path(args.trace_file).exists()) ########################## # Data Structures su_data = {} # : funcs_used = {} # : count ########################## # Read compiler generated tables of stack use per function, *.c.su # # ofdm_stack.c:184:6:dummy_code 16 static # p = pathlib.Path(COMP_DIR) for fpath in p.rglob('*.c.su'): with fpath.open() as f: for line in f.readlines(): try: words = line.split() size = int(words[1]) words = words[0].split(':') su_data[words[3]] = size except: pass # skip this line if there are errors ########################## # Read trace file, convert addresses to names, track stack max_stack_depth = 0 cur_stack_depth = 0 stack = [] # List of tuples of (function names, cur_stack_depth) last_func = 'start' def walk_stack(): trace = '' for entry in stack: trace += entry[0] + ' ' return(trace) # Open trace with open(args.trace_file, "r") as tf: for line in tf.readlines(): #print('Line: "{}"'.format(line.strip())) words = line.split() # Note addr2line needs addr in hex! addr = words[1] if (words[0] == 'e'): # Note: This could be run once with a pipe if needed for faster operation. result = subprocess.run(['addr2line', '-f', addr, '-e', EXE_FILE], stdout=subprocess.PIPE) result.check_returncode() # function name is first line of stdout if (result.stdout): lines = result.stdout.decode().split('\n') func = lines[0].strip() else: sys.error('unknown function at address {}'.format(addr)) if (func != "??"): # Push last info stack.append((last_func, cur_stack_depth)) last_func = func # Update cur_stack_depth += su_data[func] #print('func: "{}" = {}'.format(func, cur_stack_depth)) if (cur_stack_depth > max_stack_depth): max_stack_depth = cur_stack_depth max_stack_trace = walk_stack() # Save info if (func in funcs_used): funcs_used[func] += 1 else: funcs_used[func] = 1 # end if (func != "??") # end if ('e') elif (words[0] == 'x'): # Only pop functions we pushed if (func in funcs_used): # Pop (last_func, cur_stack_depth) = stack.pop() #print('pop: "{}" = {}'.format(last_func, cur_stack_depth)) print('Max Stack Depth = {}'.format(max_stack_depth)) print('Max Stack at: {}'.format(max_stack_trace)) codec2-1.0.1/script/phi0_plot.py000077500000000000000000000031721412132000500164160ustar00rootroot00000000000000#!/usr/bin/python3 """ Plot phi0, and (later) anaylze approximations """ import numpy as np import matplotlib.pyplot as plt import math import itertools import sys def impl_reference(x): if (x< 9.08e-5 ): r = 10 else: z = math.exp(x) r = math.log( (z+1) / (z-1) ) return(r) #### # Table T1 t1_tbl = [] # A list of tuples (x, r) t1_adj = 0.50 # Offset ratio for step of 1, estimate def t1_loop(upper, lower, step): for i in range((int)(upper * step), (int)(lower * step), -1): x = i / step z = math.exp(x + (t1_adj / step)) r = math.log((z+1)/(z-1)) t1_tbl.append( (x, r) ) print(x, r) # 9:5 step 1 t1_loop(9, 4.999, 2) # 5:1 step 1/16 t1_loop(4.999, 0.999, 16) # 1/(2^0.5), 1/(2^1), 1/(2^1.5), ... for i in range(1, 28): e = (2 ** (i/2)) x = 1.0 / e z = math.exp(x + (0.19 / e)) r = math.log((z+1)/(z-1)) t1_tbl.append( (x, r) ) def impl_t1(x): if (x > 10): return(0) else: for t in t1_tbl: if (x > t[0]): return(t[1]) return(10) ########################## # Plot, scanning from 10 to 0 x_vals = np.logspace(1, -4, 2000, endpoint=False) ref_vals = [] t1_vals = [] for x in x_vals: ref_vals.append(impl_reference(x)) t1_vals.append(impl_t1(x)) # Sum errors errsum = errsum2 = 0 for i in range(len(ref_vals)): error = t1_vals[i] - ref_vals[i] errsum += error errsum2 += error * error print("Net error {}".format(errsum)) print("avg error {}".format(errsum/len(ref_vals))) print("rms error {}".format(math.sqrt(errsum2/len(ref_vals)))) plt.xscale('log') plt.plot(x_vals, ref_vals, 'g', x_vals, t1_vals, 'r') plt.show() codec2-1.0.1/script/separate_all.sh000077500000000000000000000005071412132000500171350ustar00rootroot00000000000000#!/bin/sh sox $1.wav hts1_$1.wav trim 0 3 sox $1.wav hts2_$1.wav trim 3 3 sox $1.wav morig_$1.wav trim 6 2 sox $1.wav forig_$1.wav trim 8 2 sox $1.wav ve9qrp_$1.wav trim 10 9.5 sox $1.wav cq_ref_$1.wav trim 20 9 sox $1.wav kristoff_$1.wav trim 29.5 4 sox $1.wav vk5qi_$1.wav trim 33.5 13.5 sox $1.wav vk5dgr_$1.wav trim 47 10 codec2-1.0.1/script/subsetvq.sh000077500000000000000000000077021412132000500163610ustar00rootroot00000000000000#!/bin/bash # subsetvq.sh # David Rowe August 2021 # # Script to support: # 1. Subset VQ training and listening # 1. Training Trellis Vector Quantiser for Codec 2 newamp1, supports octave/trellis.m # 2. VQ sorting/optimisation experiments, octave/vq_compare.m TRAIN=~/Downloads/all_speech_8k.sw CODEC2_PATH=$HOME/codec2 PATH=$PATH:$CODEC2_PATH/build_linux/src:$CODEC2_PATH/build_linux/misc K=20 Kst=2 Ken=16 # train a new VQ and generate quantised training material function train() { fullfile=$TRAIN filename=$(basename -- "$fullfile") extension="${filename##*.}" filename="${filename%.*}" c2sim $fullfile --rateK --rateKout ${filename}.f32 echo "ratek=load_f32('../build_linux/${filename}.f32',20); vq_700c_eq; ratek_lim=limit_vec(ratek, 0, 40); save_f32('../build_linux/${filename}_lim.f32', ratek_lim); quit" | \ octave -p ${CODEC2_PATH}/octave -qf vqtrain ${filename}_lim.f32 $K 4096 vq_stage1.f32 -s 1e-3 --st $Kst --en $Ken # VQ the training file cat ${filename}_lim.f32 | vq_mbest --st $Kst --en $Ken -k $K -q vq_stage1.f32 > ${filename}_test.f32 } function listen_vq() { vq_fn=$1 dec=$2 EbNodB=$3 fullfile=$4 filename=$(basename -- "$fullfile") extension="${filename##*.}" filename="${filename%.*}" fullfile_out=$5 do_trellis=$6 sox_options='-t raw -e signed-integer -b 16' sox $fullfile $sox_options - | c2sim - --rateK --rateKout ${filename}.f32 echo "ratek=load_f32('../build_linux/${filename}.f32',20); vq_700c_eq; ratek_lim=limit_vec(ratek, 0, 40); save_f32('../build_linux/${filename}_lim.f32', ratek_lim); quit" | \ octave -p ${CODEC2_PATH}/octave -qf if [ "$do_trellis" -eq 0 ]; then echo "pkg load statistics; vq_compare(action='vq_file', '${vq_fn}', ${dec}, ${EbNodB}, '${filename}_lim.f32', '${filename}_test.f32'); quit" \ | octave -p ${CODEC2_PATH}/octave -qf else echo "pkg load statistics; trellis; vq_file('${vq_fn}', ${dec}, ${EbNodB}, '${filename}_lim.f32', '${filename}_test.f32'); quit" \ | octave -p ${CODEC2_PATH}/octave -qf fi if [ "$fullfile_out" = "aplay" ]; then sox $fullfile $sox_options - | c2sim - --rateK --rateKin ${filename}_test.f32 -o - | aplay -f S16_LE else sox $fullfile $sox_options - | c2sim - --rateK --rateKin ${filename}_test.f32 -o - | sox -t .s16 -r 8000 -c 1 - ${fullfile_out} fi } function print_help { echo echo "Trellis/VQ optimisation support script" echo echo " usage ./train_trellis.sh [-x] [-t] [-v vq.f32 in.wav out.wav] [-e EbNodB] [-d dec]" echo echo " -x debug mode; trace script execution" echo " -t train VQ and generate a fully quantised version of training vectors" echo " -v vq.f32 in.wav out.wav synthesise an output file out.wav from in.raw, using the VQ vq.f32" echo " -v vq.f32 in.wav aplay synthesise output, play immediately using aplay, using the VQ vq.f32" echo " -e EbNodB Eb/No in dB for AWGn channel simulation (error insertion)" echo " -d dec decimation/interpolation rate" echo " -r use trellis decoder" echo exit } # command line arguments to select function if [ $# -lt 1 ]; then print_help fi do_train=0 do_vq=0 do_trellis=0 EbNodB=100 dec=1 POSITIONAL=() while [[ $# -gt 0 ]] do key="$1" case $key in -x) set -x shift ;; -t) do_train=1 shift ;; -v) do_vq=1 vq_fn="$2" in_wav="$3" out_wav="$4" shift shift shift shift ;; -r) do_trellis=1 shift ;; -d) dec="$2" shift shift ;; -e) EbNodB="$2" shift shift ;; -h) print_help ;; *) POSITIONAL+=("$1") # save it in an array for later shift ;; esac done set -- "${POSITIONAL[@]}" # restore positional parameters if [ $do_train -eq 1 ]; then train fi if [ $do_vq -eq 1 ]; then listen_vq ${vq_fn} ${dec} ${EbNodB} ${in_wav} ${out_wav} ${do_trellis} fi codec2-1.0.1/script/train_700c_quant.sh000077500000000000000000000105721412132000500175620ustar00rootroot00000000000000#!/bin/bash -x # train_700C_quant.sh # David Rowe May 2019 # # Training a Vector Quantiser (VQ) for Codec 2 700C # This is a two stage VQ with 512 entries (9 bits) per stage # Also used to support other VQ experiments, such as the effect of the # post filter and an experimental equaliser, see octave/vq_700c_eq.m SRC=~/Downloads/all_speech_8k.sw CODEC2_BUILD=/home/david/codec2/build_linux K=20 SAMPLES=~/tmp/c2vec_pass2 # train a new VQ function train() { # c2enc can dump "feature vectors" that contain the current VQ input $CODEC2_BUILD/src/c2enc 700C $SRC /dev/null --mlfeat feat.f32 # extract VQ input as training data, then train two stage VQ $CODEC2_BUILD/misc/extract -s 1 -e $K -t 41 feat.f32 stage0_in.f32 $CODEC2_BUILD/misc/vqtrain stage0_in.f32 $K 512 vq_stage1.f32 -s 1e-3 -r stage1_in.f32 $CODEC2_BUILD/misc/vqtrain stage1_in.f32 $K 512 vq_stage2.f32 -s 1e-3 } # encode/decode a file with the stock codec2 700C VQ function test_a() { b=$(basename "$1" .raw) $CODEC2_BUILD/src/c2enc 700C $1'.raw' - --var | $CODEC2_BUILD/src/c2dec 700C - - | sox -q -t .s16 -c 1 -r 8000 -b 16 - $SAMPLES/$b'_a.wav' } # stock 700C VQ like test_a, but no postfilter function test_a_nopf() { b=$(basename "$1" .raw) $CODEC2_BUILD/src/c2enc 700C $1'.raw' - --var | $CODEC2_BUILD/src/c2dec 700C - - --nopf | \ sox -q -t .s16 -c 1 -r 8000 -b 16 - $SAMPLES/$b'_a_nopf.wav' } # encode/decode a file with the new VQ we just trained above function test_b() { b=$(basename "$1" .raw) $CODEC2_BUILD/src/c2enc 700C $1'.raw' - --loadcb 1 vq_stage1.f32 --loadcb 2 vq_stage2.f32 --var | \ $CODEC2_BUILD/src/c2dec 700C - - --loadcb 1 vq_stage1.f32 --loadcb 2 vq_stage2.f32 | sox -q -t .s16 -c 1 -r 8000 -b 16 - $SAMPLES/$b'_b.wav' } # just like b but no postfilter function test_b_nopf() { b=$(basename "$1" .raw) $CODEC2_BUILD/src/c2enc 700C $1'.raw' - --loadcb 1 vq_stage1.f32 --loadcb 2 vq_stage2.f32 --var | \ $CODEC2_BUILD/src/c2dec 700C - - --loadcb 1 vq_stage1.f32 --loadcb 2 vq_stage2.f32 $2 --nopf | \ sox -q -t .s16 -c 1 -r 8000 -b 16 - $SAMPLES/$b'_b_nopf.wav' } # pass an unquantised rate K vector through to the decoder as a control function test_uq() { b=$(basename "$1" .raw) $CODEC2_BUILD/src/c2enc 700C $1'.raw' $b'.bin' --mlfeat $b'_feat.f32' $CODEC2_BUILD/misc/extract -s 1 -e 20 -t 41 $b'_feat.f32' $b'_ratek.f32' $CODEC2_BUILD/src/c2dec 700C $b'.bin' - --loadratek $b'_ratek.f32' | sox -q -t .s16 -c 1 -r 8000 -b 16 - $SAMPLES/$b'_uq.wav' } # extract features for use in octave octave/vq_700c_eq.m function feat() { RAW_FILES="../raw/hts1a ../raw/hts2a ../raw/vk5qi ../raw/cq_ref ../raw/ve9qrp_10s $HOME/Downloads/ma01_01 $HOME/Downloads/c01_01_8k $HOME/Downloads/cq_freedv_8k $HOME/Downloads/cq_freedv_8k_lfboost $HOME/Downloads/cq_freedv_8k_hfcut " for f in $RAW_FILES do b=$(basename "$f" .raw) $CODEC2_BUILD/src/c2enc 700C $f'.raw' $b'.bin' --mlfeat $b'_feat.f32' done } # generate a bunch of test samples for a listening test function listen() { RAW_FILES="../raw/hts1a ../raw/hts2a ../raw/vk5qi ../raw/cq_ref ../raw/ve9qrp_10s $HOME/Downloads/ma01_01 $HOME/Downloads/c01_01_8k $HOME/Downloads/cq_freedv_8k" for f in $RAW_FILES do test_a $f test_a_nopf $f test_b $f test_b_nopf $f test_uq $f done } # Generate a bunch of test samples for VQ equalisation listening tests. Assumes # Octave has generated rate K quantised .f32 files function listen_vq_eq() { FILES="hts1a hts2a vk5qi cq_ref ve9qrp_10s ma01_01 c01_01_8k cq_freedv_8k cq_freedv_8k_lfboost cq_freedv_8k_hfcut" for f in $FILES do # try equaliser wth train_120 VQ $CODEC2_BUILD/src/c2dec 700C $f'.bin' - --loadratek $f'_vq2.f32' | sox -q -t .s16 -c 1 -r 8000 -b 16 - $SAMPLES/$f'_vq2.wav' $CODEC2_BUILD/src/c2dec 700C $f'.bin' - --loadratek $f'_vq2_eq1.f32' | sox -q -t .s16 -c 1 -r 8000 -b 16 - $SAMPLES/$f'_vq2_eq1.wav' $CODEC2_BUILD/src/c2dec 700C $f'.bin' - --loadratek $f'_vq2_eq2.f32' | sox -q -t .s16 -c 1 -r 8000 -b 16 - $SAMPLES/$f'_vq2_eq2.wav' # try equaliser wth train_all_speech VQ #$CODEC2_BUILD/src/c2dec 700C $f'.bin' - --loadratek $f'_vq2_as.f32' | sox -q -t .s16 -c 1 -r 8000 -b 16 - $SAMPLES/$f'_vq2_as.wav' #$CODEC2_BUILD/src/c2dec 700C $f'.bin' - --loadratek $f'_vq2_as_eq.f32' | sox -q -t .s16 -c 1 -r 8000 -b 16 - $SAMPLES/$f'_vq2_as_eq.wav' done } mkdir -p $SAMPLES # choose which function to run here #train #listen #feat listen_vq_eq codec2-1.0.1/script/train_sub_quant.sh000077500000000000000000000036421412132000500177020ustar00rootroot00000000000000#!/bin/bash -x # train_sub_quant.sh # David Rowe May 2021 # # Training and testing Vector Quantisers (VQ) for Codec 2 newamp1, in # this case training on a subset TRAIN=~/Downloads/all_speech_8k.sw CODEC2_PATH=$HOME/codec2 PATH=$PATH:$CODEC2_PATH/build_linux/src:$CODEC2_PATH/build_linux/misc K=20 Kst=2 Ken=16 # train a new VQ function train() { fullfile=$TRAIN filename=$(basename -- "$fullfile") extension="${filename##*.}" filename="${filename%.*}" c2sim $fullfile --rateK --rateKout ${filename}.f32 echo "ratek=load_f32('../build_linux/${filename}.f32',20); vq_700c_eq; ratek_lim=limit_vec(ratek, 0, 40); save_f32('../build_linux/${filename}_lim.f32', ratek_lim); quit" | \ octave -p ${CODEC2_PATH}/octave -qf vqtrain ${filename}_lim.f32 $K 4096 vq_stage1.f32 -s 1e-3 --st $Kst --en $Ken } function listen() { fullfile=$1 filename=$(basename -- "$fullfile") extension="${filename##*.}" filename="${filename%.*}" c2sim $fullfile --rateK --rateKout ${filename}.f32 echo "ratek=load_f32('../build_linux/${filename}.f32',20); vq_700c_eq; ratek_lim=limit_vec(ratek, 0, 40); save_f32('../build_linux/${filename}_lim.f32', ratek_lim); quit" | \ octave -p ${CODEC2_PATH}/octave -qf cat ${filename}_lim.f32 | vq_mbest --st $Kst --en $Ken -k $K -q vq_stage1.f32 > ${filename}_test.f32 c2sim $fullfile --rateK --rateKin ${filename}_test.f32 -o - | sox -t .s16 -r 8000 -c 1 - ${filename}_sub.wav c2sim $fullfile --rateK --newamp1vq -o - | sox -t .s16 -r 8000 -c 1 - ${filename}_newamp1.wav } # choose which function to run here train # these two samples are inside training database listen ~/Downloads/fish_8k.sw listen ~/Downloads/cap_8k.sw # two samples from outside training database listen $CODEC2_PATH/raw/big_dog.raw listen $CODEC2_PATH/raw/hts2a.raw # these two samples are inside training database, but with LPF at 3400 Hz outside of subset listen ~/Downloads/fish_8k_lp.sw listen ~/Downloads/cap_8k_lp.sw codec2-1.0.1/src/000077500000000000000000000000001412132000500134235ustar00rootroot00000000000000codec2-1.0.1/src/CMakeLists.txt000066400000000000000000000267671412132000500162050ustar00rootroot00000000000000# # Generated sources # set(D ${CMAKE_CURRENT_SOURCE_DIR}/codebook) # lsp quantisers (2400/1400/1300 modes) set(CODEBOOKS ${D}/lsp1.txt ${D}/lsp2.txt ${D}/lsp3.txt ${D}/lsp4.txt ${D}/lsp5.txt ${D}/lsp6.txt ${D}/lsp7.txt ${D}/lsp8.txt ${D}/lsp9.txt ${D}/lsp10.txt ) # lspd quantisers (3200 mode) set(CODEBOOKSD ${D}/dlsp1.txt ${D}/dlsp2.txt ${D}/dlsp3.txt ${D}/dlsp4.txt ${D}/dlsp5.txt ${D}/dlsp6.txt ${D}/dlsp7.txt ${D}/dlsp8.txt ${D}/dlsp9.txt ${D}/dlsp10.txt ) # LSP VQ (1200 mode) set(CODEBOOKSJVM ${D}/lspjvm1.txt ${D}/lspjvm2.txt ${D}/lspjvm3.txt ) # Joint Wo-energy VQ (1200 mode) set(CODEBOOKSGE ${D}/gecb.txt) # 700C two stage VQ set(CODEBOOKSNEWAMP1 ${D}/train_120_1.txt ${D}/train_120_2.txt ) set(CODEBOOKSNEWAMP1_ENERGY ${D}/newamp1_energy_q.txt ) # 450 mode two stage VQ set(CODEBOOKSNEWAMP2 ${D}/codes_450.txt ) set(CODEBOOKSNEWAMP2_ENERGY ${D}/newamp2_energy_q.txt ) # when crosscompiling we need a native executable if(CMAKE_CROSSCOMPILING) set(CMAKE_DISABLE_SOURCE_CHANGES OFF) include(ExternalProject) ExternalProject_Add(codec2_native SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/.. BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}/codec2_native BUILD_COMMAND ${CMAKE_COMMAND} --build . --target generate_codebook INSTALL_COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_BINARY_DIR}/codec2_native/src/generate_codebook ${CMAKE_CURRENT_BINARY_DIR} BUILD_BYPRODUCTS ${CMAKE_CURRENT_BINARY_DIR}/generate_codebook ) add_executable(generate_codebook IMPORTED) set_target_properties(generate_codebook PROPERTIES IMPORTED_LOCATION ${CMAKE_CURRENT_BINARY_DIR}/generate_codebook) add_dependencies(generate_codebook codec2_native) set(CMAKE_DISABLE_SOURCE_CHANGES ON) else(CMAKE_CROSSCOMPILING) # Build code generator binaries. These do not get installed. # generate_codebook add_executable(generate_codebook generate_codebook.c) target_link_libraries(generate_codebook m ${CMAKE_REQUIRED_LIBRARIES}) # Make native builds available for cross-compiling. export(TARGETS generate_codebook FILE ${CMAKE_BINARY_DIR}/ImportExecutables.cmake) endif(CMAKE_CROSSCOMPILING) # codebook.c add_custom_command( OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/codebook.c COMMAND generate_codebook lsp_cb ${CODEBOOKS} > ${CMAKE_CURRENT_BINARY_DIR}/codebook.c DEPENDS generate_codebook ${CODEBOOKS} ) # codebookd.c add_custom_command( OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/codebookd.c COMMAND generate_codebook lsp_cbd ${CODEBOOKSD} > ${CMAKE_CURRENT_BINARY_DIR}/codebookd.c DEPENDS generate_codebook ${CODEBOOKSD} ) # codebookjvm.c add_custom_command( OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/codebookjvm.c COMMAND generate_codebook lsp_cbjvm ${CODEBOOKSJVM} > ${CMAKE_CURRENT_BINARY_DIR}/codebookjvm.c DEPENDS generate_codebook ${CODEBOOKSJVM} ) # codebookge.c add_custom_command( OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/codebookge.c COMMAND generate_codebook ge_cb ${CODEBOOKSGE} > ${CMAKE_CURRENT_BINARY_DIR}/codebookge.c DEPENDS generate_codebook ${CODEBOOKSGE} ) # codebooknewamp1.c add_custom_command( OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/codebooknewamp1.c COMMAND generate_codebook newamp1vq_cb ${CODEBOOKSNEWAMP1} > ${CMAKE_CURRENT_BINARY_DIR}/codebooknewamp1.c DEPENDS generate_codebook ${CODEBOOKSNEWAMP1} ) # codebooknewamp1_energy.c add_custom_command( OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/codebooknewamp1_energy.c COMMAND generate_codebook newamp1_energy_cb ${CODEBOOKSNEWAMP1_ENERGY} > ${CMAKE_CURRENT_BINARY_DIR}/codebooknewamp1_energy.c DEPENDS generate_codebook ${CODEBOOKSNEWAMP1_ENERGY} ) # codebooknewamp2.c add_custom_command( OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/codebooknewamp2.c COMMAND generate_codebook newamp2vq_cb ${CODEBOOKSNEWAMP2} > ${CMAKE_CURRENT_BINARY_DIR}/codebooknewamp2.c DEPENDS generate_codebook ${CODEBOOKSNEWAMP2} ) # codebooknewamp2_energy.c add_custom_command( OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/codebooknewamp2_energy.c COMMAND generate_codebook newamp2_energy_cb ${CODEBOOKSNEWAMP2_ENERGY} > ${CMAKE_CURRENT_BINARY_DIR}/codebooknewamp2_energy.c DEPENDS generate_codebook ${CODEBOOKSNEWAMP2_ENERGY} ) # # codec2 library sources # set(CODEC2_SRCS dump.c lpc.c nlp.c postfilter.c sine.c codec2.c codec2_fft.c cohpsk.c codec2_fifo.c fdmdv.c fm.c fsk.c fmfsk.c kiss_fft.c kiss_fftr.c linreg.c interp.c lsp.c mbest.c newamp1.c newamp2.c ofdm.c ofdm_mode.c phase.c quantise.c pack.c codebook.c codebookd.c codebookjvm.c codebookge.c codebooknewamp1.c codebooknewamp1_energy.c codebooknewamp2.c codebooknewamp2_energy.c golay23.c freedv_api.c freedv_1600.c freedv_700.c freedv_2020.c freedv_fsk.c freedv_vhf_framing.c freedv_data_channel.c varicode.c modem_stats.c ofdm.c mpdecode_core.c phi0.c gp_interleaver.c interldpc.c filter.c HRA_112_112.c HRA_56_56.c HRAb_396_504.c H_256_768_22.c H_256_512_4.c HRAa_1536_512.c H_128_256_5.c H_2064_516_sparse.c H_4096_8192_3d.c H_16200_9720.c H_1024_2048_4f.c ldpc_codes.c lpcnet_freq.c reliable_text.c ) set(CODEC2_PUBLIC_HEADERS codec2.h codec2_fdmdv.h codec2_cohpsk.h codec2_fm.h codec2_ofdm.h fsk.h codec2_fifo.h comp.h modem_stats.h freedv_api.h reliable_text.h ${CODEC2_VERSION_PATH}/version.h ) # # Debug options # #add_definitions(-DDEBUG_ALLOC) # # Setup the codec2 library # add_library(codec2 ${CODEC2_SRCS}) if(UNIX) target_link_libraries(codec2 m) endif(UNIX) if(LPCNET AND lpcnetfreedv_FOUND) target_link_libraries(codec2 lpcnetfreedv) endif() include_directories(${CMAKE_CURRENT_SOURCE_DIR}) set_target_properties(codec2 PROPERTIES SOVERSION ${SOVERSION} PUBLIC_HEADER "${CODEC2_PUBLIC_HEADERS}" ) # Required include directories for export target_include_directories(codec2 INTERFACE $ $ $ ) # Export config for import from full install install(EXPORT codec2-config DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/codec2 ) # Export config for import from build tree. export(TARGETS codec2 FILE ${CMAKE_BINARY_DIR}/codec2.cmake ) add_executable(c2enc c2enc.c) target_link_libraries(c2enc ${CMAKE_REQUIRED_LIBRARIES} codec2) add_executable(c2dec c2dec.c) target_link_libraries(c2dec ${CMAKE_REQUIRED_LIBRARIES} codec2) add_executable(c2sim c2sim.c sd.c) target_link_libraries(c2sim ${CMAKE_REQUIRED_LIBRARIES} codec2) add_executable(fdmdv_get_test_bits fdmdv_get_test_bits.c fdmdv.c kiss_fft.c codec2_fft.c kiss_fftr.c) target_link_libraries(fdmdv_get_test_bits m ${CMAKE_REQUIRED_LIBRARIES}) add_executable(fdmdv_mod fdmdv_mod.c fdmdv.c kiss_fft.c codec2_fft.c kiss_fftr.c) target_link_libraries(fdmdv_mod m ${CMAKE_REQUIRED_LIBRARIES}) add_executable(fdmdv_demod fdmdv_demod.c fdmdv.c kiss_fft.c octave.c modem_stats.c codec2_fft.c kiss_fftr.c) target_link_libraries(fdmdv_demod m ${CMAKE_REQUIRED_LIBRARIES}) add_executable(fdmdv_put_test_bits fdmdv_put_test_bits.c fdmdv.c kiss_fft.c codec2_fft.c kiss_fftr.c) target_link_libraries(fdmdv_put_test_bits m ${CMAKE_REQUIRED_LIBRARIES}) add_executable(fdmdv_channel fdmdv_channel.c) target_link_libraries(fdmdv_channel ${CMAKE_REQUIRED_LIBRARIES} codec2) add_executable(insert_errors insert_errors.c) target_link_libraries(insert_errors ${CMAKE_REQUIRED_LIBRARIES}) add_executable(freedv_tx freedv_tx.c) target_link_libraries(freedv_tx ${CMAKE_REQUIRED_LIBRARIES} codec2) add_executable(freedv_rx freedv_rx.c) target_link_libraries(freedv_rx ${CMAKE_REQUIRED_LIBRARIES} codec2) add_executable(freedv_data_raw_tx freedv_data_raw_tx.c) target_link_libraries(freedv_data_raw_tx ${CMAKE_REQUIRED_LIBRARIES} codec2) add_executable(freedv_data_raw_rx freedv_data_raw_rx.c octave.c) target_link_libraries(freedv_data_raw_rx ${CMAKE_REQUIRED_LIBRARIES} codec2) add_executable(freedv_data_tx freedv_data_tx.c) target_link_libraries(freedv_data_tx ${CMAKE_REQUIRED_LIBRARIES} codec2) add_executable(freedv_data_rx freedv_data_rx.c) target_link_libraries(freedv_data_rx ${CMAKE_REQUIRED_LIBRARIES} codec2) add_executable(freedv_mixed_tx freedv_mixed_tx.c) target_link_libraries(freedv_mixed_tx ${CMAKE_REQUIRED_LIBRARIES} codec2) add_executable(freedv_mixed_rx freedv_mixed_rx.c) target_link_libraries(freedv_mixed_rx ${CMAKE_REQUIRED_LIBRARIES} codec2) add_executable(fsk_mod fsk_mod.c) target_link_libraries(fsk_mod ${CMAKE_REQUIRED_LIBRARIES} codec2) add_executable(fsk_mod_ext_vco fsk_mod_ext_vco.c) target_link_libraries(fsk_mod_ext_vco m ${CMAKE_REQUIRED_LIBRARIES}) add_executable(fsk_demod fsk_demod.c modem_probe.c octave.c) target_link_libraries(fsk_demod ${CMAKE_REQUIRED_LIBRARIES} codec2) add_executable(fsk_get_test_bits fsk_get_test_bits.c) target_link_libraries(fsk_get_test_bits) add_executable(fsk_put_test_bits fsk_put_test_bits.c) target_link_libraries(fsk_put_test_bits ${CMAKE_REQUIRED_LIBRARIES} codec2) add_executable(framer framer.c) target_link_libraries(framer) add_executable(deframer deframer.c) target_link_libraries(deframer) add_executable(fm_demod fm_demod.c fm.c) target_link_libraries(fm_demod m ${CMAKE_REQUIRED_LIBRARIES}) add_executable(cohpsk_mod cohpsk_mod.c) target_link_libraries(cohpsk_mod ${CMAKE_REQUIRED_LIBRARIES} codec2) add_executable(ofdm_get_test_bits ofdm_get_test_bits.c) target_link_libraries(ofdm_get_test_bits ${CMAKE_REQUIRED_LIBRARIES} codec2) add_executable(ofdm_put_test_bits ofdm_put_test_bits.c) target_link_libraries(ofdm_put_test_bits ${CMAKE_REQUIRED_LIBRARIES} codec2) add_executable(ofdm_mod ofdm_mod.c) target_link_libraries(ofdm_mod ${CMAKE_REQUIRED_LIBRARIES} codec2) add_executable(ofdm_demod ofdm_demod.c octave.c) target_link_libraries(ofdm_demod ${CMAKE_REQUIRED_LIBRARIES} codec2) add_executable(fmfsk_mod fmfsk_mod.c) target_link_libraries(fmfsk_mod ${CMAKE_REQUIRED_LIBRARIES} codec2) add_executable(fmfsk_demod fmfsk_demod.c modem_probe.c octave.c) target_link_libraries(fmfsk_demod ${CMAKE_REQUIRED_LIBRARIES} codec2) add_executable(vhf_deframe_c2 vhf_deframe_c2.c) target_link_libraries(vhf_deframe_c2 ${CMAKE_REQUIRED_LIBRARIES} codec2) add_executable(vhf_frame_c2 vhf_frame_c2.c) target_link_libraries(vhf_frame_c2 ${CMAKE_REQUIRED_LIBRARIES} codec2) add_executable(cohpsk_demod cohpsk_demod.c octave.c) target_link_libraries(cohpsk_demod ${CMAKE_REQUIRED_LIBRARIES} codec2) add_executable(cohpsk_get_test_bits cohpsk_get_test_bits.c) target_link_libraries(cohpsk_get_test_bits ${CMAKE_REQUIRED_LIBRARIES} codec2) add_executable(cohpsk_put_test_bits cohpsk_put_test_bits.c octave.c) target_link_libraries(cohpsk_put_test_bits ${CMAKE_REQUIRED_LIBRARIES} codec2) add_executable(cohpsk_ch cohpsk_ch.c) target_link_libraries(cohpsk_ch ${CMAKE_REQUIRED_LIBRARIES} codec2) add_executable(tollr tollr.c) add_executable(ldpc_noise ldpc_noise.c) target_link_libraries(ldpc_noise m) add_executable(ldpc_enc ldpc_enc.c) target_link_libraries(ldpc_enc ${CMAKE_REQUIRED_LIBRARIES} codec2) add_executable(ldpc_dec ldpc_dec.c) target_link_libraries(ldpc_dec ${CMAKE_REQUIRED_LIBRARIES} codec2) install(TARGETS codec2 EXPORT codec2-config LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT lib ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT lib RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/codec2 COMPONENT dev ) codec2-1.0.1/src/H2064_516_sparse_test.h000066400000000000000000003626661412132000500173310ustar00rootroot00000000000000/* FILE....: ../src/H2064_516_sparse.h Static arrays for CML LDPC codec, generated by test_ldpc_fsk.m:simple_ut(). */ #define NUMBERPARITYBITS 516 #define MAX_ROW_WEIGHT 12 #define CODELENGTH 2580 #define NUMBERROWSHCOLS 2064 #define MAX_COL_WEIGHT 3 #define DEC_TYPE 0 #define MAX_ITER 10 #include uint16_t H_rows[] = { 870, 276, 110, 54, 226, 85, 59, 153, 31, 60, 46, 75, 139, 239, 56, 13, 30, 45, 63, 34, 54, 21, 77, 204, 441, 11, 297, 126, 148, 104, 269, 57, 369, 213, 117, 479, 53, 124, 405, 97, 42, 132, 67, 103, 389, 156, 237, 105, 418, 11, 60, 12, 195, 32, 11, 21, 10, 191, 176, 237, 140, 376, 115, 9, 149, 304, 129, 308, 234, 129, 453, 215, 176, 213, 151, 169, 41, 106, 421, 103, 83, 62, 124, 3, 574, 39, 31, 472, 69, 8, 40, 352, 62, 275, 74, 121, 125, 35, 83, 52, 21, 422, 229, 233, 62, 125, 181, 175, 28, 43, 113, 340, 71, 4, 40, 249, 134, 168, 97, 15, 26, 135, 104, 80, 206, 108, 307, 494, 358, 82, 159, 137, 19, 210, 6, 19, 65, 285, 45, 154, 276, 14, 137, 79, 241, 235, 116, 129, 84, 3, 122, 370, 132, 451, 77, 89, 262, 79, 170, 469, 24, 163, 128, 18, 120, 244, 8, 153, 151, 441, 95, 327, 284, 96, 84, 35, 61, 286, 20, 22, 68, 131, 106, 30, 280, 343, 99, 124, 262, 208, 277, 44, 349, 41, 10, 761, 39, 445, 165, 81, 393, 194, 18, 250, 589, 70, 307, 1, 365, 47, 4, 9, 283, 133, 90, 601, 117, 228, 212, 58, 420, 230, 142, 25, 57, 518, 88, 180, 24, 122, 379, 143, 33, 30, 140, 68, 150, 320, 55, 33, 132, 2, 22, 16, 272, 44, 264, 49, 174, 234, 86, 39, 10, 278, 177, 178, 20, 126, 18, 90, 6, 184, 158, 111, 246, 229, 221, 48, 267, 6, 172, 49, 291, 185, 67, 50, 157, 66, 32, 525, 257, 196, 260, 92, 72, 163, 144, 329, 134, 156, 47, 82, 49, 391, 26, 1, 88, 52, 56, 8, 111, 138, 219, 57, 447, 182, 263, 38, 98, 75, 36, 83, 245, 5, 419, 63, 12, 287, 603, 58, 507, 37, 2, 214, 539, 55, 53, 81, 186, 73, 85, 97, 91, 332, 123, 66, 188, 591, 158, 324, 88, 53, 214, 84, 389, 104, 271, 211, 7, 393, 281, 242, 119, 848, 705, 428, 50, 28, 52, 15, 5, 2, 230, 38, 76, 295, 217, 1, 56, 170, 145, 5, 72, 460, 203, 145, 211, 121, 68, 538, 44, 133, 87, 494, 325, 161, 781, 370, 51, 115, 262, 106, 614, 29, 220, 189, 224, 165, 17, 72, 46, 17, 64, 19, 447, 13, 9, 270, 4, 91, 471, 35, 23, 407, 34, 38, 82, 321, 112, 195, 651, 7, 43, 431, 249, 171, 196, 311, 15, 66, 16, 633, 37, 94, 102, 23, 3, 214, 252, 256, 173, 316, 125, 96, 341, 71, 73, 338, 256, 165, 140, 108, 471, 434, 137, 642, 172, 51, 113, 67, 172, 93, 23, 318, 514, 50, 118, 245, 169, 14, 64, 40, 859, 95, 308, 65, 93, 42, 339, 46, 7, 96, 142, 36, 131, 60, 13, 12, 25, 31, 183, 94, 43, 241, 162, 26, 232, 120, 128, 118, 89, 164, 51, 29, 127, 177, 180, 95, 332, 284, 32, 802, 452, 25, 382, 187, 892, 432, 162, 126, 587, 342, 205, 170, 255, 73, 605, 579, 398, 305, 58, 110, 178, 244, 306, 178, 166, 28, 368, 224, 582, 135, 420, 618, 264, 234, 346, 223, 439, 399, 150, 655, 242, 248, 750, 199, 242, 277, 112, 163, 545, 359, 487, 322, 570, 64, 402, 412, 252, 116, 147, 109, 27, 197, 204, 251, 282, 455, 118, 390, 225, 382, 215, 373, 554, 371, 568, 289, 225, 405, 160, 414, 290, 109, 524, 406, 344, 188, 385, 33, 791, 261, 171, 475, 100, 183, 156, 564, 78, 395, 144, 497, 334, 45, 167, 79, 27, 520, 239, 449, 138, 347, 667, 572, 61, 278, 136, 375, 231, 320, 167, 304, 389, 185, 171, 109, 468, 243, 206, 210, 305, 160, 682, 514, 433, 152, 375, 1064, 48, 522, 139, 98, 191, 557, 127, 189, 372, 54, 515, 406, 370, 950, 549, 352, 319, 27, 489, 440, 636, 941, 153, 102, 268, 120, 190, 719, 451, 175, 539, 477, 279, 474, 17, 232, 221, 476, 174, 415, 545, 357, 368, 149, 94, 409, 218, 76, 87, 136, 114, 245, 596, 408, 335, 246, 511, 560, 438, 298, 351, 91, 22, 813, 108, 546, 248, 218, 629, 212, 223, 569, 611, 93, 399, 185, 427, 260, 20, 111, 354, 187, 150, 702, 316, 666, 541, 227, 558, 486, 207, 450, 224, 568, 222, 341, 81, 222, 386, 441, 484, 159, 289, 142, 372, 534, 157, 78, 337, 522, 70, 293, 318, 161, 325, 74, 194, 797, 130, 128, 70, 386, 657, 611, 105, 456, 230, 100, 61, 274, 358, 135, 249, 236, 247, 264, 279, 123, 345, 59, 397, 645, 448, 80, 192, 149, 190, 564, 292, 508, 359, 202, 152, 459, 200, 446, 293, 512, 103, 154, 229, 492, 145, 256, 828, 55, 296, 133, 147, 314, 220, 190, 481, 208, 290, 198, 146, 100, 202, 259, 295, 16, 505, 251, 86, 375, 618, 266, 891, 166, 159, 269, 850, 127, 397, 759, 494, 141, 567, 339, 119, 336, 162, 98, 265, 770, 423, 380, 346, 116, 402, 101, 628, 623, 286, 309, 107, 453, 406, 496, 200, 865, 720, 429, 187, 107, 609, 439, 90, 48, 330, 59, 87, 632, 323, 219, 101, 865, 203, 14, 74, 466, 462, 160, 448, 168, 474, 980, 396, 148, 244, 904, 438, 198, 982, 601, 199, 119, 300, 240, 702, 241, 258, 192, 291, 227, 34, 698, 78, 107, 123, 89, 704, 114, 274, 461, 151, 115, 576, 323, 201, 468, 271, 231, 92, 592, 220, 909, 829, 243, 480, 466, 345, 763, 404, 356, 86, 110, 210, 688, 353, 271, 740, 226, 352, 247, 288, 758, 338, 426, 235, 405, 625, 155, 146, 475, 491, 189, 177, 216, 962, 503, 216, 726, 381, 219, 183, 102, 332, 113, 155, 440, 922, 450, 379, 294, 301, 36, 80, 75, 875, 462, 547, 69, 330, 186, 527, 92, 138, 157, 169, 69, 143, 401, 24, 283, 41, 37, 472, 309, 117, 747, 342, 251, 300, 182, 216, 202, 266, 192, 217, 302, 660, 360, 663, 130, 355, 367, 47, 1103, 519, 811, 586, 488, 983, 652, 303, 201, 759, 860, 416, 585, 268, 428, 928, 819, 821, 379, 340, 493, 260, 752, 599, 314, 182, 444, 612, 369, 692, 311, 523, 622, 335, 259, 499, 225, 526, 409, 188, 709, 356, 606, 777, 222, 541, 327, 201, 176, 551, 544, 1008, 372, 628, 181, 523, 549, 476, 464, 240, 593, 181, 254, 223, 305, 285, 595, 217, 887, 550, 552, 278, 381, 621, 517, 953, 538, 265, 581, 313, 540, 366, 626, 647, 511, 467, 508, 890, 63, 976, 275, 312, 885, 598, 254, 180, 687, 196, 398, 146, 675, 380, 101, 443, 122, 85, 531, 347, 463, 167, 536, 724, 710, 288, 351, 232, 387, 424, 650, 363, 544, 540, 248, 279, 121, 479, 267, 218, 445, 485, 240, 737, 692, 1017, 331, 716, 1130, 207, 602, 274, 750, 261, 572, 131, 435, 672, 253, 729, 542, 739, 1062, 731, 619, 328, 65, 769, 502, 898, 966, 158, 211, 289, 193, 314, 784, 533, 396, 567, 497, 280, 696, 348, 290, 383, 636, 526, 470, 622, 541, 411, 286, 378, 561, 374, 194, 349, 166, 143, 390, 697, 533, 570, 304, 615, 709, 476, 679, 454, 287, 114, 904, 535, 786, 270, 308, 828, 302, 506, 732, 626, 533, 584, 186, 456, 495, 350, 317, 672, 343, 315, 919, 367, 820, 548, 296, 614, 635, 209, 543, 350, 733, 239, 376, 287, 344, 470, 563, 607, 319, 323, 473, 428, 677, 212, 263, 386, 567, 435, 328, 616, 255, 729, 147, 320, 855, 267, 426, 261, 458, 977, 670, 173, 478, 366, 112, 71, 419, 968, 139, 606, 292, 275, 463, 344, 671, 810, 77, 465, 755, 579, 179, 353, 357, 442, 599, 354, 805, 453, 407, 193, 510, 285, 513, 583, 645, 325, 173, 621, 573, 423, 479, 912, 130, 300, 227, 184, 391, 293, 204, 673, 282, 371, 324, 313, 228, 334, 343, 655, 42, 532, 559, 658, 484, 921, 373, 944, 329, 184, 302, 861, 205, 414, 771, 606, 312, 652, 503, 413, 415, 238, 449, 781, 874, 586, 544, 402, 468, 525, 155, 845, 714, 295, 564, 197, 509, 863, 640, 209, 986, 808, 691, 317, 355, 789, 779, 281, 141, 594, 336, 105, 682, 360, 299, 559, 876, 608, 315, 401, 632, 480, 161, 577, 284, 657, 1012, 481, 330, 388, 1011, 524, 423, 1019, 812, 416, 168, 322, 258, 710, 703, 1027, 195, 447, 259, 633, 990, 710, 215, 410, 458, 760, 174, 312, 605, 269, 206, 617, 534, 554, 497, 296, 393, 236, 784, 483, 1189, 892, 602, 788, 709, 382, 831, 537, 695, 99, 563, 424, 759, 432, 281, 795, 319, 422, 684, 331, 866, 377, 638, 247, 501, 711, 463, 475, 631, 507, 310, 298, 252, 1059, 757, 364, 785, 410, 233, 411, 236, 487, 339, 341, 473, 1022, 527, 515, 700, 380, 388, 414, 253, 913, 466, 773, 238, 638, 335, 896, 298, 310, 658, 461, 207, 205, 550, 29, 425, 141, 76, 649, 442, 322, 832, 730, 307, 385, 401, 268, 301, 311, 306, 291, 364, 864, 560, 840, 199, 358, 385, 179, 1142, 520, 986, 600, 712, 1018, 661, 365, 237, 769, 953, 517, 605, 396, 459, 991, 867, 899, 415, 700, 556, 324, 788, 639, 778, 226, 743, 685, 706, 883, 362, 970, 785, 387, 376, 734, 392, 730, 448, 250, 731, 387, 665, 1015, 243, 812, 391, 795, 346, 588, 737, 1077, 874, 933, 412, 817, 585, 550, 491, 273, 640, 208, 542, 338, 436, 895, 694, 257, 899, 583, 629, 327, 815, 744, 573, 1226, 727, 272, 607, 331, 1050, 594, 754, 716, 515, 524, 695, 1086, 297, 1177, 400, 678, 1004, 648, 294, 555, 780, 316, 486, 689, 679, 430, 136, 717, 233, 400, 646, 383, 530, 263, 574, 749, 790, 336, 377, 409, 609, 499, 686, 518, 595, 601, 334, 531, 197, 485, 348, 424, 701, 579, 500, 1147, 797, 1085, 404, 738, 1200, 253, 714, 427, 756, 303, 610, 313, 1399, 770, 455, 732, 796, 824, 1230, 927, 929, 397, 276, 794, 741, 957, 1052, 1002, 213, 392, 566, 461, 832, 798, 433, 590, 723, 718, 755, 878, 446, 615, 669, 776, 608, 659, 565, 443, 457, 407, 577, 631, 255, 365, 399, 152, 766, 814, 556, 640, 1137, 1000, 767, 745, 733, 1194, 529, 238, 1034, 789, 1314, 436, 493, 853, 492, 654, 809, 885, 636, 596, 270, 848, 774, 364, 512, 832, 411, 516, 927, 700, 857, 588, 703, 756, 758, 315, 574, 810, 885, 416, 600, 690, 417, 501, 626, 707, 581, 377, 916, 660, 808, 587, 265, 395, 613, 906, 381, 661, 310, 799, 148, 632, 941, 750, 578, 277, 1065, 1242, 1018, 326, 551, 459, 134, 99, 510, 1097, 198, 673, 531, 450, 697, 394, 749, 948, 193, 664, 965, 818, 454, 419, 556, 721, 742, 473, 886, 647, 694, 209, 906, 433, 674, 620, 666, 464, 446, 634, 728, 430, 630, 990, 435, 371, 534, 394, 467, 928, 326, 723, 490, 816, 699, 490, 530, 384, 361, 772, 374, 554, 619, 672, 613, 924, 677, 1079, 404, 367, 337, 898, 228, 418, 844, 766, 317, 680, 690, 566, 680, 333, 726, 960, 942, 637, 607, 452, 664, 698, 235, 942, 736, 368, 584, 362, 650, 871, 683, 328, 1141, 988, 715, 915, 495, 1084, 919, 613, 179, 888, 355, 144, 1243, 655, 551, 582, 993, 730, 340, 548, 774, 643, 469, 651, 392, 843, 1196, 590, 573, 545, 1211, 593, 439, 1027, 869, 586, 442, 762, 502, 758, 822, 1048, 254, 628, 417, 683, 996, 752, 384, 725, 676, 842, 360, 374, 688, 353, 549, 661, 648, 584, 624, 348, 530, 250, 1135, 667, 1298, 1033, 623, 1102, 715, 594, 888, 871, 833, 321, 634, 491, 766, 505, 297, 1024, 388, 460, 707, 735, 1023, 444, 1098, 629, 505, 807, 581, 543, 687, 598, 337, 434, 806, 1111, 761, 521, 826, 547, 257, 434, 412, 688, 577, 363, 839, 1187, 1306, 648, 808, 504, 760, 429, 309, 916, 503, 777, 403, 1076, 512, 1127, 592, 351, 692, 711, 474, 587, 558, 487, 498, 326, 164, 902, 456, 471, 836, 748, 469, 480, 537, 553, 507, 347, 490, 498, 420, 1010, 598, 1022, 283, 362, 958, 553, 1156, 712, 1108, 718, 753, 1067, 681, 398, 483, 903, 956, 698, 612, 578, 489, 1294, 990, 920, 592, 1113, 862, 464, 1435, 835, 788, 280, 957, 795, 743, 1108, 425, 1026, 879, 488, 701, 931, 610, 741, 1061, 282, 830, 413, 983, 1159, 1067, 1071, 437, 843, 506, 610, 890, 1133, 1034, 954, 452, 925, 785, 836, 620, 597, 722, 258, 858, 342, 455, 927, 706, 299, 1104, 660, 811, 333, 1173, 878, 858, 1336, 816, 457, 948, 563, 1054, 678, 764, 733, 565, 555, 873, 1150, 485, 1303, 496, 796, 1218, 823, 634, 624, 878, 686, 684, 879, 1100, 454, 154, 1002, 357, 822, 676, 740, 578, 350, 1124, 834, 876, 500, 486, 426, 663, 529, 947, 656, 621, 823, 361, 615, 421, 585, 417, 538, 707, 656, 861, 1236, 831, 1087, 508, 768, 1269, 292, 786, 478, 1043, 593, 765, 408, 1439, 806, 528, 801, 912, 882, 1348, 1050, 1077, 528, 349, 996, 799, 976, 1265, 1100, 674, 470, 617, 540, 847, 862, 457, 757, 841, 973, 921, 969, 539, 646, 699, 959, 654, 670, 787, 872, 559, 744, 1276, 666, 273, 569, 833, 191, 775, 896, 576, 935, 1231, 1046, 923, 804, 949, 1201, 572, 303, 1162, 827, 1346, 897, 612, 937, 599, 675, 992, 930, 644, 1151, 301, 1103, 1086, 482, 831, 1130, 472, 753, 1007, 852, 1054, 635, 705, 955, 823, 425, 596, 962, 908, 445, 880, 867, 478, 509, 653, 775, 591, 510, 1055, 798, 1021, 740, 294, 427, 679, 973, 484, 686, 369, 836, 410, 802, 1245, 883, 649, 431, 1102, 1267, 1262, 557, 1092, 837, 164, 881, 726, 1120, 273, 697, 1097, 609, 708, 663, 838, 985, 552, 968, 1042, 1044, 483, 520, 691, 736, 756, 521, 895, 779, 914, 266, 1356, 548, 742, 964, 888, 481, 877, 685, 791, 437, 696, 991, 825, 643, 708, 969, 683, 1080, 1001, 1012, 617, 1030, 734, 792, 1069, 504, 394, 864, 595, 676, 782, 695, 837, 1154, 819, 1104, 437, 413, 383, 913, 627, 624, 987, 1394, 449, 839, 825, 1054, 1180, 378, 1211, 1090, 1114, 804, 897, 558, 1032, 746, 246, 1051, 870, 958, 725, 536, 702, 1035, 971, 356, 1195, 1061, 827, 1090, 526, 1092, 1250, 1025, 231, 947, 659, 272, 1284, 802, 826, 902, 1040, 870, 345, 658, 822, 715, 1012, 872, 575, 945, 1232, 805, 720, 580, 1215, 854, 603, 1074, 1056, 991, 528, 1218, 642, 1060, 1010, 1203, 288, 978, 884, 762, 1118, 763, 430, 786, 922, 928, 886, 529, 706, 403, 1104, 693, 868, 815, 670, 366, 546, 378, 1151, 901, 1522, 1107, 671, 1333, 745, 724, 1230, 1073, 911, 429, 646, 611, 889, 746, 403, 1032, 616, 637, 1382, 767, 1083, 451, 1212, 803, 1318, 849, 662, 955, 712, 971, 571, 496, 977, 1145, 1160, 931, 830, 580, 359, 805, 668, 770, 771, 390, 882, 1329, 1572, 851, 829, 535, 944, 535, 373, 930, 669, 828, 565, 1219, 620, 1308, 793, 361, 938, 859, 482, 946, 1186, 742, 591, 846, 221, 906, 641, 631, 1068, 780, 536, 517, 844, 652, 721, 552, 523, 627, 525, 1186, 944, 1039, 794, 498, 1076, 654, 1167, 856, 1264, 890, 768, 1225, 691, 729, 543, 936, 1016, 1210, 656, 604, 608, 1324, 1035, 1095, 639, 1311, 1281, 877, 1519, 923, 974, 431, 1057, 903, 809, 1137, 569, 1243, 1118, 880, 720, 1102, 1168, 821, 1193, 432, 999, 555, 1013, 1375, 1200, 1080, 495, 982, 519, 630, 1066, 1164, 1091, 1006, 1039, 943, 1195, 1103, 665, 894, 908, 329, 1081, 951, 641, 1060, 793, 719, 1232, 713, 847, 395, 1213, 1038, 1041, 1587, 984, 752, 1125, 929, 1095, 988, 940, 845, 603, 623, 875, 1158, 772, 1503, 506, 816, 1500, 1007, 638, 633, 936, 703, 704, 1173, 1171, 724, 175, 1051, 604, 1174, 682, 819, 854, 384, 1196, 1249, 1029, 509, 504, 537, 722, 571, 1121, 739, 838, 1027, 363, 743, 570, 818, 546, 721, 736, 842, 905, 1372, 932, 1178, 863, 840, 1334, 299, 855, 499, 1293, 1202, 1061, 689, 1516, 866, 614, 862, 955, 981, 1511, 1153, 1256, 768, 501, 1044, 1282, 985, 1455, 1235, 711, 1001, 627, 641, 889, 914, 644, 877, 913, 1149, 1138, 1188, 557, 871, 787, 1015, 727, 731, 868, 892, 560, 778, 1331, 1025, 318, 619, 864, 203, 911, 1052, 705, 1079, 1461, 1090, 994, 1023, 1050, 1535, 625, 999, 1344, 933, 1498, 1045, 939, 1249, 650, 910, 1294, 951, 649, 1163, 418, 1133, 1089, 493, 1116, 1309, 561, 857, 1073, 1112, 1223, 909, 807, 989, 1053, 997, 813, 976, 1074, 527, 1070, 966, 775, 511, 1004, 800, 717, 933, 1120, 900, 1389, 922, 684, 440, 704, 1106, 668, 767, 757, 847, 936, 835, 1293, 893, 895, 647, 1269, 1480, 1304, 782, 1166, 952, 566, 1124, 846, 1203, 354, 893, 1200, 952, 792, 667, 1164, 1003, 718, 1002, 1139, 1163, 1096, 685, 769, 1003, 977, 532, 1128, 905, 926, 443, 1405, 576, 835, 1116, 1145, 562, 1063, 737, 883, 639, 790, 1021, 967, 772, 995, 1165, 754, 1422, 1583, 1075, 997, 1082, 748, 827, 1197, 516, 465, 1451, 645, 879, 809, 739, 855, 1155, 948, 1117, 460, 465, 791, 1098, 693, 673, 1087, 1400, 532, 910, 829, 1171, 1214, 400, 1221, 1603, 1323, 834, 965, 787, 1045, 918, 589, 1074, 1171, 1116, 744, 905, 931, 1176, 1005, 589, 1238, 1107, 972, 1115, 600, 1181, 1609, 1105, 521, 1158, 1049, 306, 1389, 804, 963, 971, 1199, 917, 716, 668, 973, 998, 1174, 903, 590, 1130, 1472, 841, 811, 597, 1399, 956, 719, 1301, 1083, 1044, 622, 1446, 1097, 1206, 1119, 1345, 604, 1324, 920, 1129, 1340, 798, 444, 980, 997, 1232, 1087, 884, 1093, 422, 1135, 909, 1026, 1055, 824, 462, 678, 945, 1234, 1149, 1542, 1177, 675, 1421, 779, 1013, 1486, 1388, 1191, 514, 1219, 760, 974, 773, 477, 1190, 784, 674, 1428, 778, 1257, 477, 1252, 901, 1352, 1037, 1224, 970, 813, 1009, 1162, 519, 1088, 1157, 1409, 1182, 1089, 755, 438, 1076, 725, 869, 900, 436, 1148, 1421, 1588, 956, 978, 749, 950, 932, 516, 1046, 814, 865, 588, 1303, 713, 1614, 1024, 421, 959, 897, 518, 987, 1275, 765, 887, 893, 333, 925, 732, 635, 1169, 910, 1434, 575, 959, 653, 850, 728, 583, 1093, 542, 1316, 1031, 1059, 1122, 642, 1121, 891, 1209, 925, 1299, 896, 932, 1288, 934, 984, 580, 1113, 1413, 1224, 964, 643, 773, 1337, 1663, 1341, 657, 1357, 1473, 1292, 1551, 970, 1209, 792, 1339, 1141, 1140, 1320, 616, 1383, 1126, 980, 1014, 1146, 1245, 859, 1298, 513, 1182, 662, 1014, 1562, 1297, 1151, 502, 1139, 874, 1259, 1645, 1169, 1242, 1072, 1412, 1115, 1275, 1466, 1239, 1038, 1184, 458, 1094, 1440, 810, 1352, 1339, 830, 1354, 801, 848, 671, 1300, 1147, 1047, 1625, 1117, 1046, 1327, 1047, 1237, 1101, 1018, 1016, 745, 1066, 1132, 1221, 841, 1512, 522, 853, 1535, 1248, 975, 694, 1143, 824, 1009, 1185, 1288, 908, 200, 1308, 904, 1665, 687, 843, 943, 1199, 1198, 1379, 1168, 571, 789, 630, 846, 602, 1342, 1350, 995, 1114, 408, 1043, 1304, 945, 751, 793, 741, 1072, 1006, 1401, 1331, 1296, 1152, 856, 1337, 321, 881, 937, 1318, 1535, 1560, 806, 1696, 924, 625, 994, 1058, 996, 1649, 1183, 1442, 1118, 901, 1094, 1408, 1016, 1653, 1259, 800, 1317, 677, 815, 894, 1017, 1278, 957, 1109, 1284, 1321, 1220, 947, 1383, 860, 1220, 783, 873, 979, 1025, 1228, 1007, 1417, 1231, 735, 783, 872, 492, 1028, 1244, 852, 1144, 1645, 1172, 1088, 1110, 1204, 1622, 738, 1146, 1513, 1106, 1564, 1079, 1021, 1436, 776, 917, 1467, 1051, 814, 1217, 812, 1174, 1271, 863, 1187, 1461, 644, 1308, 1154, 1263, 1225, 1121, 867, 1110, 1157, 1139, 989, 1033, 1270, 1163, 1170, 1037, 880, 803, 1098, 807, 968, 1446, 1235, 1064, 1547, 979, 842, 500, 838, 1398, 939, 916, 953, 920, 946, 851, 1428, 1210, 960, 762, 1456, 1519, 1384, 898, 1361, 995, 1100, 1508, 856, 1284, 553, 1330, 1249, 1258, 1020, 764, 1165, 1179, 1047, 1056, 1285, 1266, 1286, 853, 1397, 1515, 987, 547, 1296, 1215, 965, 489, 1444, 800, 849, 1300, 1242, 662, 1085, 818, 918, 748, 954, 1024, 1022, 954, 1109, 1218, 821, 1431, 1587, 1315, 1081, 1140, 754, 943, 1371, 1003, 840, 1475, 722, 1081, 1033, 1216, 1254, 1175, 1122, 1203, 728, 488, 1189, 1377, 1136, 907, 1267, 1416, 751, 1169, 1101, 1289, 1241, 597, 1322, 1625, 1332, 961, 985, 915, 1128, 1069, 764, 1175, 1177, 1156, 889, 1075, 1088, 1251, 1031, 738, 1523, 1229, 994, 1489, 637, 1185, 1651, 1112, 680, 1608, 1197, 513, 1538, 978, 1040, 1000, 1432, 1030, 887, 833, 1057, 1094, 1565, 1190, 696, 1178, 1556, 1045, 1307, 1294, 1436, 1096, 747, 1485, 1128, 1430, 664, 1653, 1180, 1597, 1167, 1452, 776, 1341, 1305, 1142, 1418, 849, 562, 1247, 998, 1391, 1161, 941, 1387, 912, 1149, 1078, 1029, 1141, 1197, 582, 701, 961, 1423, 1195, 1674, 1205, 964, 1633, 929, 1127, 1571, 1581, 1291, 681, 1272, 781, 981, 783, 765, 1295, 974, 1015, 1516, 873, 1324, 482, 1262, 1371, 1648, 1101, 1240, 1115, 837, 1048, 1301, 763, 1260, 1229, 1426, 1316, 1208, 963, 1083, 1125, 992, 882, 1034, 467, 1176, 1429, 1610, 1452, 1376, 753, 1184, 1239, 777, 1291, 1264, 1223, 659, 1378, 797, 1632, 1071, 575, 1099, 926, 801, 1042, 1322, 1111, 1234, 1112, 979, 962, 993, 713, 1271, 1008, 1533, 653, 999, 746, 876, 751, 1123, 1319, 693, 1354, 1209, 1207, 1159, 1250, 1192, 1385, 1350, 952, 1543, 1020, 1067, 1632, 1119, 1635, 1165, 1161, 1483, 1347, 983, 669, 796, 1412, 1684, 1374, 886, 1468, 1479, 1594, 1781, 1113, 1274, 969, 1343, 1403, 1261, 1440, 681, 1424, 1216, 1207, 1210, 1172, 1325, 935, 1414, 1123, 1287, 1158, 1032, 1589, 1554, 1326, 562, 1313, 949, 1296, 1760, 1260, 1552, 1129, 1422, 1258, 1542, 1525, 1253, 1089, 1255, 1131, 1220, 1652, 869, 1410, 1351, 1266, 1518, 868, 884, 1302, 1486, 1362, 1185, 1652, 1172, 1205, 1388, 1479, 1270, 1224, 1297, 1138, 817, 1170, 1214, 1240, 1153, 1551, 817, 915, 1553, 1319, 1496, 717, 1194, 850, 1091, 1256, 1541, 1039, 561, 1358, 938, 1707, 1557, 1368, 1160, 1342, 1404, 1515, 1435, 727, 790, 1396, 854, 891, 1783, 1365, 1271, 1183, 1400, 1205, 1367, 1068, 794, 1006, 803, 1485, 1164, 1422, 1502, 1334, 1359, 1215, 1698, 1042, 1204, 1028, 1458, 1550, 1600, 1111, 1700, 1132, 992, 1134, 1430, 1049, 1731, 1323, 1555, 1228, 1456, 1099, 1545, 1091, 1685, 1445, 857, 1612, 735, 1126, 946, 1168, 1399, 1222, 1192, 1373, 1575, 1317, 1073, 1506, 1143, 1440, 1438, 1263, 1105, 1327, 1256, 1126, 1619, 1265, 924, 961, 1023, 866, 1070, 1437, 1132, 1487, 1675, 1333, 1423, 1182, 1295, 1683, 939, 1154, 1617, 1212, 1665, 1414, 1107, 1534, 1282, 1402, 1485, 1096, 1059, 1495, 981, 1235, 1381, 1017, 1240, 1534, 875, 1561, 1279, 1354, 1353, 1396, 1243, 1547, 1356, 1166, 1181, 1343, 1285, 1247, 1255, 1357, 975, 919, 1318, 988, 1477, 1521, 1358, 1206, 1549, 1146, 1117, 1305, 1019, 1406, 982, 942, 1014, 1075, 1004, 860, 1512, 1241, 1053, 858, 1620, 1527, 1415, 1251, 1497, 1108, 1166, 1667, 967, 1434, 665, 1335, 1313, 1406, 1283, 902, 1362, 1358, 1501, 1222, 1427, 1280, 1309, 984, 1647, 1573, 1449, 618, 1328, 1310, 1120, 844, 1739, 1424, 1246, 1474, 1561, 699, 1277, 826, 1386, 1257, 1227, 1056, 1189, 975, 1125, 1329, 917, 1464, 1784, 1405, 1152, 1153, 935, 1092, 1464, 1040, 907, 1592, 1428, 1136, 1063, 1420, 1390, 1251, 1217, 1268, 1143, 708, 1603, 1407, 1160, 1207, 1340, 1488, 998, 1315, 1344, 1300, 1365, 1134, 1401, 1629, 1366, 1008, 1013, 1211, 1179, 1188, 825, 1262, 1393, 1469, 1173, 1077, 1248, 1417, 1095, 907, 1654, 1320, 1065, 1598, 799, 1601, 1656, 1190, 714, 1754, 1595, 651, 1647, 1063, 1397, 1157, 1481, 1237, 1060, 1482, 1287, 1192, 1618, 1394, 1259, 1558, 1635, 1162, 1377, 1803, 1492, 1476, 774, 1626, 1420, 1504, 689, 1687, 1372, 1616, 1199, 1471, 934, 1342, 1351, 1261, 1442, 923, 723, 1361, 1084, 1450, 1233, 1011, 1389, 1338, 1186, 1340, 1110, 1327, 1225, 690, 1483, 1064, 1443, 1258, 1697, 1213, 966, 1687, 1161, 1314, 1605, 1877, 1477, 747, 1280, 1028, 1138, 820, 782, 1560, 1038, 1592, 1517, 894, 1586, 568, 1276, 1379, 1753, 1230, 1749, 1122, 1458, 1080, 1526, 1411, 1309, 1332, 1430, 1381, 1255, 1648, 1248, 1267, 1459, 914, 1085, 1184, 1180, 1459, 1629, 1463, 1378, 845, 1343, 1415, 1037, 1292, 1336, 1431, 734, 1426, 1193, 1688, 1279, 940, 1313, 1036, 1155, 1099, 1406, 1490, 1326, 1556, 1069, 1005, 1142, 1010, 1273, 1312, 1546, 761, 1624, 1065, 921, 1055, 1134, 1518, 839, 1435, 1234, 1244, 1238, 1297, 1254, 1494, 1484, 1145, 1604, 1404, 1289, 1645, 1131, 1658, 1198, 1392, 1557, 1667, 1082, 972, 918, 1432, 1701, 1637, 1312, 1579, 1680, 1864, 1825, 1194, 1457, 1370, 1411, 1479, 1398, 1510, 1049, 1447, 1576, 1252, 1290, 1360, 1679, 1070, 1506, 1699, 1359, 1204, 1222, 1818, 1596, 1363, 834, 1383, 1513, 1499, 1766, 1646, 1629, 1328, 1423, 1460, 1640, 1923, 1302, 1216, 1364, 1369, 1233, 1739, 1031, 1624, 1505, 1434, 1630, 1451, 1196, 1548, 1527, 1454, 1520, 1707, 1407, 1467, 1561, 1604, 1319, 1543, 1456, 1374, 881, 1453, 1323, 1735, 1246, 1660, 1381, 1188, 1709, 1391, 1532, 771, 1264, 851, 1219, 1322, 1639, 1144, 960, 1615, 1136, 1732, 1690, 1371, 1433, 1377, 1459, 1571, 1447, 1058, 1245, 1451, 1053, 949, 1894, 1531, 1305, 1253, 1493, 1303, 1380, 1581, 1330, 1082, 1036, 1541, 1520, 1437, 1585, 1359, 1425, 1410, 1857, 1465, 1239, 1208, 1585, 1642, 1807, 1743, 1710, 1167, 1135, 1465, 1513, 1175, 1759, 1524, 1655, 1348, 1471, 1150, 1581, 1917, 1694, 1545, 911, 1622, 852, 1348, 1191, 1261, 1410, 1491, 1237, 1401, 1822, 1325, 1457, 1668, 1236, 1449, 1698, 1270, 1392, 1418, 1486, 1133, 1797, 1503, 1041, 1198, 1392, 1041, 1632, 1621, 1311, 1638, 1832, 1364, 1452, 1499, 1472, 1913, 1295, 1208, 1766, 1369, 1780, 1541, 1462, 1545, 1336, 1569, 1693, 1385, 1276, 1547, 1266, 1338, 1505, 1029, 1493, 1670, 958, 1572, 1607, 1446, 1634, 1530, 1414, 1704, 1552, 1441, 1653, 1480, 1310, 1712, 1347, 1403, 1408, 951, 1360, 1213, 1562, 1710, 1419, 1528, 1589, 1443, 1345, 1636, 1071, 1637, 1026, 1644, 1030, 1638, 1221, 1119, 1570, 1712, 1253, 989, 1742, 1790, 1537, 1619, 1508, 1150, 1326, 1926, 1470, 1702, 940, 1733, 1362, 1429, 1299, 938, 1606, 1453, 1568, 1335, 1738, 1564, 1312, 1275, 1718, 1575, 1528, 937, 1491, 1415, 1179, 900, 1843, 1471, 1345, 1536, 1573, 930, 1301, 1020, 1482, 1412, 1274, 1105, 1347, 1344, 1764, 1729, 1062, 1563, 1843, 1532, 1228, 1302, 1273, 1397, 1591, 1391, 1052, 1662, 1470, 1181, 1425, 1427, 1578, 1263, 1395, 1292, 1317, 899, 1808, 1539, 1650, 1231, 1376, 1515, 1001, 1330, 1603, 1331, 1419, 1369, 1444, 1709, 1374, 1068, 1019, 1306, 1298, 1293, 1011, 1831, 1502, 1590, 1238, 1148, 1269, 1555, 1114, 1036, 1740, 1325, 1405, 1670, 1062, 1773, 1688, 1335, 1476, 1827, 1723, 820, 1748, 1072, 1536, 1398, 1732, 1587, 1400, 1529, 1355, 1304, 1651, 1722, 1268, 1673, 1800, 1178, 1503, 1847, 1656, 1497, 1595, 1689, 1576, 1740, 963, 1822, 1393, 1743, 1246, 1499, 1106, 1356, 1387, 1367, 1745, 1009, 780, 1458, 1206, 1673, 1250, 1662, 1611, 1555, 1193, 1353, 1597, 1559, 1445, 1187, 1677, 1155, 1464, 1497, 1713, 1357, 1450, 1696, 1257, 1339, 1685, 1894, 1615, 1733, 1315, 1364, 1363, 1418, 1123, 1738, 1445, 1620, 1660, 1156, 1599, 926, 1507, 1640, 1763, 1289, 1791, 1648, 1601, 1321, 1544, 1577, 1683, 1376, 1543, 1540, 1361, 1666, 1273, 1433, 1504, 993, 1265, 1288, 1454, 1482, 1736, 1481, 1439, 1286, 1467, 1461, 1474, 1510, 1489, 1681, 934, 1643, 1606, 1791, 1491, 1341, 1429, 1127, 1227, 1299, 1600, 1904, 1395, 1588, 1084, 1057, 1183, 1252, 1283, 1478, 1611, 1320, 1851, 1355, 1223, 1147, 1403, 1576, 1035, 1460, 1260, 1641, 1538, 1368, 1475, 1511, 1672, 1329, 1764, 1426, 1353, 1691, 1214, 1915, 1247, 1538, 1658, 1716, 1689, 1000, 986, 1884, 1975, 1730, 1899, 1623, 1834, 1981, 1952, 1473, 1490, 1529, 1557, 1748, 1544, 1617, 1720, 1690, 1667, 1630, 1641, 1678, 1750, 1367, 1525, 1786, 1447, 1395, 1390, 1826, 1598, 1427, 861, 1582, 1658, 1878, 1768, 1651, 1699, 1532, 1498, 1529, 1765, 1939, 1384, 1723, 1872, 1758, 1438, 1742, 1093, 1657, 1759, 1650, 1634, 1519, 1290, 1569, 1573, 1591, 1643, 1928, 1411, 1786, 1582, 1661, 1521, 1657, 1609, 1633, 972, 1468, 1644, 1776, 1388, 1692, 1409, 1278, 1812, 1631, 1873, 1310, 1272, 1109, 1333, 1522, 1722, 1612, 1048, 1741, 1674, 1755, 1711, 1568, 1437, 1484, 1567, 1746, 1583, 1148, 1307, 1570, 1314, 950, 1906, 1654, 1379, 1494, 1518, 1455, 1393, 1703, 1390, 1606, 1226, 1669, 1580, 1692, 1719, 1366, 1438, 1433, 1982, 1514, 1676, 1609, 1742, 1690, 1819, 1763, 1730, 1321, 1566, 2031, 1680, 1741, 1839, 1762, 1925, 1536, 1524, 1283, 1723, 1924, 1706, 1558, 1375, 1758, 1417, 1691, 1350, 1727, 1475, 1537, 1457, 1506, 1917, 1386, 1695, 1753, 1355, 1756, 1775, 1613, 1563, 1425, 1488, 1176, 1827, 1556, 1131, 1349, 1448, 1281, 1749, 1664, 1572, 1744, 1860, 1813, 1762, 1642, 1689, 1928, 1570, 1878, 1890, 1739, 1809, 1799, 1663, 1591, 1495, 1695, 1762, 1580, 1306, 1879, 1462, 1413, 1637, 1078, 1567, 1785, 1078, 1659, 1801, 1530, 1769, 1579, 1549, 1747, 1682, 1796, 1668, 1727, 1822, 1836, 1378, 1551, 1501, 1810, 1478, 1278, 1574, 1764, 1533, 1627, 1714, 1489, 1480, 1726, 1584, 1643, 1387, 1655, 1058, 1720, 1370, 1595, 1795, 1832, 1843, 1212, 1871, 1840, 1886, 1831, 1720, 1272, 1765, 1956, 1496, 1855, 1144, 1830, 1404, 1593, 1507, 967, 1768, 1671, 1842, 1469, 1829, 1593, 1621, 1516, 1763, 1612, 1982, 1124, 1613, 1715, 1375, 1311, 1844, 1509, 1448, 1542, 1660, 1005, 1490, 1408, 1620, 1707, 1277, 1568, 1373, 1887, 1827, 1778, 1510, 1782, 1886, 1537, 1424, 1402, 1282, 1496, 1681, 1649, 1286, 1858, 1566, 1622, 1972, 1562, 1868, 1316, 1754, 1725, 1559, 1086, 1873, 1594, 1792, 1351, 1579, 1889, 1043, 1380, 1789, 1588, 1481, 1487, 1650, 1717, 1602, 1413, 1226, 1370, 1368, 1346, 1493, 1902, 1554, 1713, 1564, 1244, 1432, 1597, 1328, 1285, 1828, 1484, 1466, 1719, 1550, 1909, 1854, 1582, 1596, 1903, 1751, 1530, 1905, 1227, 1771, 1605, 1807, 1777, 1738, 1592, 1460, 1507, 1708, 1745, 1385, 1686, 1869, 1277, 1517, 1867, 1776, 1846, 1809, 1803, 1674, 1748, 1191, 1837, 1420, 1754, 1274, 1644, 1201, 1366, 1450, 1402, 1757, 1140, 1500, 1465, 1509, 1793, 1352, 1804, 1702, 1560, 1431, 1549, 1679, 1769, 1615, 1229, 1740, 1775, 1534, 1498, 1757, 1416, 1567, 1711, 1360, 1472, 1705, 1923, 1782, 1746, 1767, 1575, 1531, 1628, 1772, 1868, 1771, 1628, 1719, 1287, 1623, 1900, 1709, 1703, 1840, 1382, 1841, 1808, 1860, 1788, 1652, 1687, 1810, 1488, 1661, 1867, 1476, 1785, 1646, 1468, 1611, 1159, 1492, 1291, 1463, 1716, 1778, 1669, 1448, 1539, 1633, 1511, 1523, 1672, 1821, 1718, 1349, 1875, 1659, 1835, 1558, 1520, 1670, 1639, 1540, 1885, 1779, 1972, 1531, 1874, 1627, 1202, 1639, 1553, 1540, 1539, 1646, 1439, 1856, 1444, 1279, 1241, 1952, 1701, 1280, 1616, 1332, 1692, 1664, 1373, 1781, 1733, 1995, 1571, 1777, 1593, 1578, 1869, 1233, 1916, 1504, 1849, 1704, 1729, 1896, 1953, 1449, 1899, 2007, 1744, 2003, 1875, 1935, 2016, 1993, 1527, 1788, 1734, 1726, 1823, 1636, 1619, 1734, 1755, 1829, 1773, 1799, 1700, 1947, 1938, 1647, 1789, 1550, 1396, 1590, 1964, 1951, 1634, 1066, 1856, 1717, 1988, 1791, 1664, 1977, 1544, 1715, 1563, 1801, 1988, 1725, 1815, 1921, 1897, 1442, 1831, 1217, 1752, 1866, 1861, 1659, 1706, 1724, 1678, 1714, 1724, 1958, 2036, 1487, 1978, 1657, 1997, 1800, 1895, 1708, 1811, 1678, 1705, 1962, 1927, 1699, 1694, 1625, 1501, 1844, 1686, 1958, 1614, 1307, 1129, 1407, 1683, 1835, 1800, 1152, 1793, 1879, 1820, 1747, 1598, 1922, 1553, 1768, 1811, 1838, 1290, 1953, 1781, 1610, 1626, 1936, 1751, 1665, 1584, 1823, 1816, 1758, 1932, 1454, 1793, 1436, 1817, 1675, 1697, 1927, 1655, 1546, 1677, 2003, 1666, 1735, 1811, 1808, 1813, 1834, 1850, 1821, 1565, 1975, 2045, 1816, 1809, 1951, 1862, 2048, 1911, 1686, 1441, 1878, 1976, 1865, 1906, 1608, 1871, 1469, 1803, 1932, 1798, 1862, 1881, 1577, 1802, 1979, 1455, 1977, 1820, 1495, 1816, 1907, 1784, 1774, 1789, 1743, 1533, 1830, 1684, 1201, 1548, 1566, 1334, 1776, 1724, 1752, 1880, 1908, 1863, 1898, 1925, 1693, 2033, 1799, 1910, 1893, 1928, 1833, 1841, 1706, 1801, 1599, 1737, 1934, 1688, 2035, 1885, 1796, 1807, 1881, 1419, 1901, 1948, 1137, 1685, 1848, 1624, 1829, 1868, 1630, 1819, 1772, 1946, 1787, 1805, 1941, 1854, 1554, 1722, 1729, 1877, 1863, 1736, 1626, 1918, 1631, 1628, 1986, 1616, 1679, 1820, 1869, 1756, 1662, 1876, 1380, 1815, 1914, 1680, 1956, 1870, 1947, 1421, 1886, 1936, 1911, 1918, 1728, 1346, 1769, 2021, 1601, 1912, 1548, 1835, 1502, 1605, 1927, 1372, 1865, 1673, 1891, 1494, 1882, 1779, 1814, 1940, 1806, 1759, 2011, 1441, 1623, 1846, 1514, 1663, 2033, 1552, 1819, 1574, 1850, 1671, 1702, 1757, 1756, 1836, 1384, 1980, 1640, 2038, 2006, 1794, 1805, 1785, 1955, 1580, 1930, 1583, 1526, 1523, 1833, 1725, 1462, 1883, 1682, 1794, 1995, 1892, 1874, 1349, 1818, 1730, 1604, 1170, 1890, 1777, 1806, 1701, 1589, 1911, 1254, 1526, 1942, 1825, 1514, 1966, 1780, 1864, 1671, 1817, 1677, 1443, 1855, 1569, 1922, 1934, 1712, 1931, 1765, 1888, 1463, 1627, 1505, 1492, 1870, 1590, 1565, 1922, 1698, 1956, 1985, 2006, 1635, 1931, 1899, 1600, 1973, 1268, 1823, 1710, 1867, 1916, 1804, 1642, 1466, 1767, 1832, 1996, 1672, 1824, 1921, 1924, 1838, 1904, 1908, 1861, 1960, 1998, 1728, 1760, 1394, 1993, 1546, 1974, 1525, 1847, 1202, 1613, 1453, 1602, 1826, 1875, 1594, 1596, 1753, 1970, 1478, 2055, 1853, 1713, 1474, 1797, 1682, 1943, 1745, 1830, 1814, 1897, 1621, 1817, 1802, 1617, 1649, 1978, 1500, 1483, 1804, 2040, 1983, 1775, 1893, 1636, 1896, 1774, 1784, 1903, 1782, 1783, 1852, 1894, 1770, 1924, 2020, 1926, 1929, 1714, 2009, 1989, 1865, 1898, 1737, 1945, 1847, 1696, 1767, 1907, 1715, 1849, 1967, 1694, 1747, 1337, 1608, 1363, 1676, 1734, 1859, 1755, 1470, 1584, 1957, 1919, 1528, 1788, 1900, 1741, 1508, 1971, 1749, 1937, 1970, 1941, 1794, 1693, 1721, 1991, 1915, 1997, 1824, 1942, 1996, 1236, 1669, 1887, 1654, 1982, 1898, 1761, 1883, 1700, 1521, 1681, 2011, 1751, 1281, 1684, 1607, 1845, 1860, 1524, 1844, 1901, 1999, 1760, 1940, 1705, 1736, 1987, 1721, 2033, 2024, 1990, 2047, 1965, 2018, 2044, 1473, 1920, 2030, 1968, 2045, 2025, 1995, 2054, 2017, 1559, 1876, 1891, 1871, 2013, 1949, 1821, 1892, 1834, 1946, 1778, 1880, 1864, 2042, 2016, 2026, 1945, 2031, 1574, 1853, 1980, 2034, 2056, 2012, 1912, 1812, 2031, 1836, 1992, 2058, 1941, 1814, 2007, 2051, 2048, 2044, 1880, 1926, 2047, 1761, 1839, 1365, 1772, 1986, 1985, 1905, 2060, 1909, 1857, 1944, 1826, 2000, 2050, 2023, 2020, 1931, 2023, 2043, 2005, 1967, 1872, 1907, 1944, 1981, 1965, 1999, 1711, 1916, 1517, 1958, 1954, 2023, 1961, 2064, 1798, 1577, 1930, 1896, 1859, 1382, 1987, 2039, 2037, 1787, 1666, 1984, 1602, 1933, 2008, 2057, 1338, 1976, 2038, 1971, 1950, 1954, 1991, 1828, 1695, 1845, 1873, 1889, 2037, 1641, 1961, 1731, 1884, 1881, 1914, 1978, 1783, 1925, 1882, 2010, 2062, 1846, 1921, 2029, 2046, 1910, 2026, 1953, 1607, 2063, 2059, 2000, 1884, 2008, 2014, 2052, 2015, 1848, 1716, 2003, 2036, 2006, 1932, 1973, 1976, 1522, 2028, 2059, 1917, 1947, 2027, 1954, 1964, 2059, 2035, 1999, 1910, 1893, 1877, 1933, 1934, 2019, 1858, 1990, 2037, 1876, 1903, 1792, 1966, 2025, 1509, 1853, 1908, 1837, 2044, 1914, 1938, 1913, 2004, 1824, 2047, 1856, 1938, 2032, 2022, 1870, 1912, 1779, 2039, 2049, 1761, 1983, 1950, 2054, 2002, 1959, 1848, 1919, 1790, 1993, 1967, 1900, 1718, 1897, 2019, 2051, 2053, 1838, 1930, 1918, 2015, 2036, 1904, 1962, 1890, 1852, 1845, 2009, 2050, 2004, 2032, 1883, 2057, 2028, 2040, 2056, 1851, 1737, 1939, 1872, 1939, 1975, 1988, 1676, 1919, 1994, 2019, 1984, 1885, 2005, 1812, 2008, 2040, 1957, 2028, 1842, 2032, 2039, 2062, 1828, 1992, 1746, 1841, 1980, 1940, 1994, 1416, 1937, 1866, 1996, 1866, 1929, 2013, 1815, 2064, 1959, 2012, 2022, 1735, 1727, 1950, 1981, 1991, 2043, 1929, 1920, 1578, 1859, 1960, 1949, 1852, 1955, 1966, 2018, 2063, 1656, 2055, 2041, 1969, 2046, 1905, 2017, 1726, 1943, 1717, 2009, 1802, 2062, 1750, 1675, 1990, 1963, 1795, 2061, 1998, 2042, 1770, 2049, 1862, 1668, 2056, 2000, 1987, 2002, 1797, 1882, 1963, 1512, 1708, 1949, 1901, 1935, 1997, 1971, 2017, 2054, 1920, 1691, 1585, 2001, 2005, 1963, 2015, 1933, 2026, 1909, 1913, 1704, 1798, 1962, 1610, 2024, 1969, 1810, 1994, 1703, 2055, 2021, 2030, 2024, 1986, 1906, 1825, 2002, 1770, 1855, 1837, 2014, 2010, 1849, 1697, 1661, 1863, 1935, 2052, 1957, 2058, 1937, 2061, 2035, 2045, 1984, 1888, 1965, 2058, 1854, 2007, 1842, 2060, 1888, 1989, 1599, 2014, 1638, 2027, 1731, 2012, 1891, 1936, 1614, 1618, 1806, 2030, 1586, 2057, 1968, 1974, 1477, 1959, 1840, 1973, 1970, 1955, 1951, 1998, 1985, 1892, 1818, 1874, 1961, 2046, 1989, 1960, 2041, 2049, 2001, 1948, 2048, 1983, 1944, 1790, 2042, 2051, 1992, 1923, 2041, 1952, 1972, 1945, 2029, 1948, 1974, 1943, 2038, 2050, 1942, 1968, 1805, 1977, 2004, 1752, 1787, 1915, 1732, 2063, 2021, 1766, 1946, 1618, 1858, 2025, 1857, 1773, 1895, 1833, 1887, 1744, 1979, 2010, 1850, 2061, 2016, 1780, 1586, 2027, 1969, 2034, 1979, 2018, 1813, 1839, 1902, 2013, 2011, 2052, 1851, 2029, 2064, 1386, 1750, 1902, 1771, 2034, 2001, 1795, 2053, 1792, 1631, 1964, 2053, 1796, 1409, 1774, 1721, 1889, 1879, 1728, 2020, 2043, 2060, 1895, 2022, 1861, 1786 }; uint16_t H_cols[] = { 208, 242, 84, 114, 314, 135, 349, 90, 64, 57, 26, 52, 16, 142, 120, 244, 167, 164, 133, 179, 22, 180, 413, 161, 224, 121, 57, 22, 394, 17, 9, 54, 84, 20, 98, 311, 322, 308, 86, 91, 77, 41, 110, 192, 18, 11, 210, 133, 248, 276, 389, 100, 37, 4, 239, 15, 32, 15, 7, 10, 109, 82, 19, 50, 137, 278, 43, 181, 89, 206, 113, 285, 10, 95, 12, 180, 23, 93, 100, 124, 200, 130, 81, 149, 6, 251, 181, 227, 156, 215, 194, 284, 206, 177, 171, 174, 40, 136, 187, 89, 98, 156, 44, 30, 48, 78, 349, 126, 56, 3, 212, 43, 111, 183, 63, 54, 35, 63, 333, 158, 96, 100, 270, 38, 97, 4, 139, 163, 67, 251, 139, 42, 214, 117, 26, 98, 132, 105, 13, 61, 330, 223, 183, 95, 295, 95, 55, 29, 65, 35, 75, 130, 8, 98, 344, 46, 239, 155, 131, 75, 246, 3, 44, 260, 199, 21, 99, 118, 76, 8, 87, 271, 257, 171, 98, 44, 255, 17, 276, 91, 50, 21, 90, 262, 118, 208, 214, 35, 140, 159, 58, 277, 158, 180, 53, 93, 58, 264, 40, 98, 4, 284, 183, 24, 7, 123, 133, 57, 223, 124, 156, 202, 34, 324, 67, 452, 63, 123, 303, 303, 169, 40, 32, 24, 32, 5, 220, 218, 103, 222, 113, 111, 100, 30, 146, 266, 4, 195, 14, 55, 145, 37, 40, 18, 184, 188, 267, 38, 116, 35, 60, 53, 133, 58, 9, 296, 63, 57, 30, 17, 86, 157, 105, 29, 73, 285, 122, 9, 31, 199, 347, 73, 55, 135, 86, 2, 42, 67, 119, 21, 351, 35, 213, 173, 61, 176, 194, 109, 72, 77, 273, 133, 244, 90, 313, 220, 27, 192, 63, 299, 208, 202, 3, 66, 14, 19, 127, 68, 348, 246, 26, 87, 75, 20, 215, 93, 212, 180, 149, 114, 133, 48, 235, 17, 247, 257, 42, 149, 57, 363, 75, 334, 67, 97, 29, 109, 241, 59, 332, 15, 228, 6, 186, 81, 271, 31, 103, 122, 150, 105, 110, 92, 277, 213, 358, 37, 100, 129, 46, 367, 118, 26, 115, 211, 3, 77, 217, 23, 24, 145, 70, 48, 68, 179, 112, 30, 110, 177, 14, 97, 68, 66, 103, 105, 83, 231, 29, 383, 45, 64, 42, 32, 201, 269, 67, 9, 149, 3, 34, 86, 373, 51, 409, 130, 39, 80, 177, 118, 34, 248, 175, 50, 37, 76, 14, 7, 122, 49, 262, 27, 79, 102, 295, 113, 26, 111, 135, 10, 356, 97, 21, 2, 129, 451, 140, 60, 42, 191, 33, 152, 25, 279, 99, 22, 124, 168, 305, 34, 104, 224, 154, 50, 71, 97, 60, 209, 73, 57, 10, 322, 159, 375, 104, 17, 273, 374, 81, 121, 160, 157, 411, 88, 236, 166, 88, 53, 164, 135, 36, 375, 291, 211, 4, 233, 84, 94, 47, 29, 10, 306, 54, 183, 16, 128, 42, 86, 96, 488, 31, 109, 150, 42, 332, 110, 315, 44, 321, 82, 109, 235, 80, 212, 35, 128, 80, 215, 7, 115, 44, 102, 281, 86, 27, 79, 280, 33, 227, 142, 113, 104, 102, 281, 161, 238, 197, 106, 111, 72, 163, 76, 41, 58, 4, 46, 45, 122, 281, 219, 52, 53, 45, 66, 264, 69, 37, 16, 138, 221, 176, 176, 98, 42, 75, 92, 80, 158, 163, 71, 26, 49, 109, 108, 70, 85, 378, 186, 178, 9, 12, 4, 74, 25, 65, 207, 8, 339, 5, 45, 205, 163, 234, 14, 56, 77, 62, 185, 55, 89, 19, 228, 117, 113, 80, 9, 8, 38, 74, 10, 112, 32, 205, 8, 242, 142, 119, 26, 158, 28, 148, 54, 69, 28, 81, 91, 142, 78, 158, 49, 66, 45, 179, 249, 91, 90, 219, 153, 339, 90, 14, 56, 60, 392, 9, 162, 274, 102, 79, 89, 206, 114, 365, 2, 232, 172, 36, 8, 14, 317, 173, 65, 2, 37, 112, 273, 38, 179, 107, 244, 9, 173, 67, 141, 265, 156, 96, 102, 158, 77, 96, 331, 2, 102, 302, 94, 23, 93, 92, 408, 95, 229, 2, 25, 326, 62, 82, 166, 185, 7, 170, 15, 30, 216, 93, 94, 186, 24, 124, 268, 36, 108, 156, 448, 65, 134, 356, 79, 91, 165, 63, 30, 123, 56, 164, 97, 348, 262, 72, 294, 3, 33, 36, 143, 79, 31, 158, 124, 46, 131, 115, 103, 33, 280, 22, 69, 80, 343, 386, 295, 107, 39, 122, 18, 215, 78, 166, 136, 163, 222, 5, 405, 196, 253, 401, 78, 138, 184, 190, 131, 5, 141, 91, 84, 10, 210, 184, 171, 39, 20, 283, 92, 337, 257, 172, 160, 28, 134, 170, 18, 110, 108, 85, 21, 62, 122, 23, 10, 128, 161, 152, 156, 65, 249, 124, 191, 282, 139, 220, 238, 24, 60, 66, 41, 196, 185, 68, 72, 51, 121, 12, 218, 13, 101, 89, 93, 298, 293, 197, 201, 332, 36, 128, 160, 182, 42, 19, 53, 259, 116, 331, 131, 84, 125, 43, 285, 79, 112, 66, 66, 288, 93, 93, 158, 87, 104, 134, 131, 156, 58, 33, 6, 42, 16, 130, 182, 354, 141, 12, 65, 60, 1, 169, 175, 82, 44, 82, 108, 17, 69, 28, 29, 80, 145, 25, 66, 88, 14, 64, 290, 160, 46, 113, 1, 251, 55, 61, 185, 199, 153, 13, 237, 150, 269, 5, 100, 126, 243, 312, 56, 219, 203, 156, 144, 164, 161, 87, 236, 203, 10, 216, 13, 166, 239, 19, 141, 51, 284, 61, 11, 75, 205, 31, 128, 49, 2, 33, 5, 135, 100, 194, 78, 154, 245, 51, 321, 121, 160, 114, 74, 44, 113, 59, 259, 6, 49, 144, 6, 22, 214, 171, 98, 181, 225, 368, 8, 274, 154, 262, 234, 21, 19, 352, 9, 165, 20, 90, 85, 255, 367, 174, 29, 145, 43, 1, 3, 153, 10, 280, 77, 221, 12, 11, 142, 370, 143, 116, 145, 223, 330, 36, 9, 157, 99, 271, 88, 291, 49, 89, 47, 94, 394, 344, 305, 38, 30, 39, 6, 129, 1, 242, 268, 200, 298, 182, 297, 175, 27, 117, 135, 108, 246, 60, 38, 225, 48, 12, 124, 229, 55, 50, 311, 70, 133, 119, 151, 199, 73, 70, 98, 26, 76, 99, 154, 112, 76, 236, 273, 22, 109, 206, 61, 34, 146, 292, 132, 254, 42, 1, 121, 310, 33, 41, 49, 168, 226, 247, 459, 47, 211, 187, 41, 58, 8, 388, 359, 129, 83, 129, 190, 55, 189, 48, 258, 60, 58, 13, 205, 263, 232, 151, 96, 77, 31, 53, 64, 174, 197, 200, 25, 93, 191, 139, 217, 5, 117, 51, 212, 72, 28, 2, 236, 114, 320, 35, 106, 74, 28, 425, 282, 49, 132, 2, 82, 47, 143, 142, 100, 25, 79, 43, 24, 23, 399, 92, 97, 290, 31, 69, 109, 165, 83, 41, 98, 84, 195, 319, 347, 222, 37, 39, 104, 5, 196, 207, 47, 4, 223, 141, 32, 47, 81, 96, 31, 68, 101, 145, 177, 85, 129, 271, 334, 224, 36, 117, 56, 70, 410, 212, 87, 298, 361, 160, 164, 34, 19, 52, 66, 310, 4, 105, 40, 180, 137, 263, 37, 73, 237, 29, 135, 20, 7, 336, 197, 68, 2, 131, 28, 60, 88, 94, 58, 83, 38, 218, 7, 1, 71, 296, 149, 355, 146, 179, 64, 2, 418, 155, 127, 76, 348, 54, 83, 251, 48, 27, 185, 32, 84, 4, 89, 107, 360, 257, 29, 54, 318, 56, 95, 295, 51, 45, 47, 24, 256, 173, 92, 154, 63, 255, 321, 132, 76, 116, 92, 308, 20, 52, 178, 292, 87, 216, 275, 16, 152, 151, 165, 226, 276, 36, 1, 333, 30, 428, 17, 136, 11, 192, 45, 40, 34, 268, 68, 292, 54, 85, 120, 116, 206, 92, 99, 213, 91, 15, 14, 43, 112, 305, 319, 157, 136, 76, 25, 141, 95, 82, 11, 32, 41, 74, 49, 301, 122, 128, 338, 94, 129, 265, 71, 11, 109, 22, 328, 13, 105, 22, 196, 240, 198, 7, 146, 181, 115, 62, 61, 218, 64, 170, 222, 15, 99, 36, 31, 258, 69, 41, 56, 60, 129, 33, 103, 57, 21, 103, 127, 165, 13, 39, 328, 105, 228, 107, 120, 86, 98, 27, 54, 205, 167, 244, 74, 238, 38, 89, 5, 120, 329, 37, 37, 278, 24, 140, 118, 127, 203, 23, 106, 286, 243, 72, 152, 86, 61, 22, 11, 6, 34, 256, 269, 158, 175, 211, 317, 253, 50, 50, 27, 130, 454, 41, 250, 267, 144, 303, 11, 104, 63, 18, 124, 104, 58, 140, 25, 151, 58, 239, 286, 155, 217, 27, 182, 10, 398, 65, 190, 81, 69, 119, 78, 20, 136, 106, 51, 188, 200, 350, 303, 133, 53, 73, 15, 158, 262, 150, 192, 10, 289, 162, 362, 234, 232, 16, 225, 334, 294, 6, 105, 125, 68, 72, 176, 239, 20, 163, 353, 118, 117, 170, 90, 258, 50, 45, 88, 87, 128, 85, 4, 62, 34, 268, 258, 183, 25, 146, 85, 44, 133, 107, 140, 87, 64, 18, 70, 76, 95, 309, 147, 34, 308, 19, 237, 21, 217, 115, 49, 177, 201, 88, 149, 163, 5, 325, 455, 96, 52, 77, 24, 152, 130, 207, 67, 220, 36, 18, 48, 88, 40, 148, 179, 6, 155, 19, 138, 74, 39, 51, 198, 141, 142, 106, 103, 67, 111, 107, 186, 68, 37, 166, 28, 94, 289, 15, 126, 121, 43, 108, 117, 128, 406, 71, 333, 39, 38, 69, 313, 267, 17, 249, 40, 351, 40, 202, 138, 262, 105, 324, 75, 267, 123, 141, 156, 78, 112, 408, 97, 173, 91, 99, 239, 25, 376, 25, 254, 185, 157, 15, 61, 71, 113, 237, 237, 48, 29, 89, 1, 79, 41, 3, 24, 13, 187, 96, 52, 30, 137, 70, 82, 1, 47, 34, 444, 146, 63, 47, 59, 154, 115, 129, 298, 61, 3, 64, 85, 75, 244, 12, 47, 101, 103, 7, 169, 125, 213, 271, 378, 271, 100, 126, 134, 131, 31, 32, 16, 310, 222, 95, 12, 154, 89, 391, 205, 8, 27, 1, 85, 192, 85, 117, 140, 127, 132, 35, 31, 12, 263, 121, 6, 81, 65, 71, 78, 88, 140, 85, 227, 347, 68, 50, 7, 44, 215, 128, 26, 2, 96, 55, 66, 54, 22, 161, 258, 7, 13, 124, 101, 265, 21, 83, 233, 203, 274, 59, 354, 99, 59, 139, 13, 377, 107, 102, 23, 184, 32, 115, 61, 169, 320, 27, 171, 293, 57, 62, 46, 58, 147, 139, 235, 52, 46, 375, 46, 218, 319, 368, 61, 29, 174, 172, 83, 325, 29, 200, 198, 18, 303, 114, 173, 213, 35, 102, 20, 35, 211, 46, 180, 99, 301, 250, 208, 178, 93, 30, 76, 52, 165, 159, 372, 225, 278, 138, 136, 145, 231, 79, 44, 137, 50, 55, 119, 125, 39, 138, 101, 25, 166, 23, 192, 18, 39, 178, 116, 28, 178, 59, 188, 198, 16, 96, 46, 186, 108, 59, 255, 199, 258, 252, 88, 118, 134, 383, 150, 5, 139, 239, 228, 38, 227, 263, 43, 67, 175, 97, 188, 63, 147, 189, 17, 154, 62, 370, 219, 1, 198, 22, 56, 90, 318, 15, 20, 171, 45, 100, 30, 126, 131, 234, 11, 207, 254, 299, 349, 120, 196, 21, 26, 170, 114, 77, 8, 57, 190, 11, 214, 212, 345, 179, 225, 64, 114, 80, 185, 66, 138, 149, 43, 190, 127, 3, 3, 153, 222, 210, 11, 56, 104, 53, 153, 130, 56, 83, 71, 274, 95, 74, 121, 106, 173, 16, 114, 270, 33, 53, 267, 49, 332, 306, 68, 35, 28, 32, 213, 24, 113, 40, 18, 9, 89, 294, 250, 256, 70, 208, 291, 91, 82, 314, 39, 7, 181, 78, 13, 301, 405, 112, 316, 156, 393, 12, 110, 48, 73, 166, 39, 17, 132, 204, 104, 63, 62, 1, 45, 393, 5, 115, 47, 18, 248, 16, 272, 75, 317, 84, 70, 342, 207, 14, 191, 77, 154, 12, 107, 230, 132, 280, 42, 23, 147, 149, 17, 18, 8, 174, 73, 261, 197, 72, 4, 15, 34, 163, 159, 136, 12, 36, 196, 3, 40, 167, 71, 101, 111, 100, 237, 300, 32, 76, 9, 14, 137, 6, 53, 202, 71, 52, 148, 219, 17, 299, 41, 108, 48, 143, 65, 316, 133, 142, 92, 296, 323, 150, 211, 361, 261, 422, 167, 212, 195, 50, 317, 406, 372, 360, 314, 399, 203, 136, 211, 56, 195, 436, 229, 489, 295, 101, 109, 487, 184, 87, 279, 233, 399, 176, 470, 433, 364, 197, 115, 194, 314, 423, 246, 98, 401, 291, 268, 272, 357, 458, 298, 327, 21, 298, 299, 225, 220, 272, 51, 177, 93, 84, 403, 150, 336, 275, 236, 476, 243, 261, 373, 330, 248, 310, 365, 155, 240, 144, 276, 229, 292, 99, 175, 101, 317, 365, 297, 404, 260, 333, 417, 462, 434, 474, 444, 119, 309, 261, 260, 344, 435, 80, 123, 257, 183, 358, 197, 78, 16, 264, 260, 459, 195, 390, 147, 217, 467, 353, 165, 120, 151, 335, 83, 106, 28, 326, 252, 70, 298, 182, 153, 300, 260, 122, 111, 143, 302, 135, 235, 362, 236, 232, 287, 371, 309, 248, 248, 176, 215, 169, 183, 155, 140, 446, 91, 277, 263, 234, 126, 376, 335, 162, 490, 398, 182, 105, 378, 469, 159, 119, 457, 292, 249, 108, 59, 451, 20, 362, 228, 57, 306, 459, 301, 208, 329, 357, 82, 396, 279, 137, 396, 272, 202, 396, 282, 120, 308, 389, 287, 43, 311, 371, 59, 326, 125, 223, 190, 285, 134, 348, 219, 74, 343, 72, 455, 367, 179, 368, 395, 267, 227, 59, 225, 65, 21, 300, 310, 266, 259, 362, 168, 104, 69, 344, 417, 47, 335, 103, 126, 394, 41, 122, 166, 313, 265, 438, 118, 265, 204, 316, 439, 142, 90, 180, 440, 281, 392, 312, 210, 137, 189, 240, 247, 240, 320, 251, 157, 324, 208, 415, 245, 180, 262, 94, 141, 191, 110, 165, 165, 361, 61, 488, 378, 138, 178, 229, 396, 157, 168, 397, 266, 289, 240, 347, 299, 84, 451, 133, 391, 469, 324, 137, 116, 60, 365, 207, 200, 472, 450, 428, 330, 139, 159, 223, 217, 330, 245, 234, 238, 418, 391, 367, 308, 291, 304, 67, 244, 288, 382, 130, 461, 335, 118, 187, 334, 324, 441, 462, 112, 445, 59, 214, 230, 372, 44, 106, 167, 181, 211, 193, 148, 409, 264, 364, 353, 174, 263, 283, 406, 312, 349, 118, 455, 181, 259, 323, 175, 33, 152, 299, 141, 320, 314, 131, 62, 235, 335, 231, 340, 244, 425, 169, 311, 497, 241, 37, 436, 117, 184, 294, 157, 350, 301, 94, 162, 273, 13, 182, 101, 486, 341, 434, 322, 74, 144, 284, 139, 111, 403, 214, 52, 323, 327, 172, 227, 230, 208, 277, 221, 120, 409, 339, 123, 223, 252, 209, 237, 429, 295, 253, 35, 162, 454, 243, 199, 295, 385, 360, 241, 170, 390, 175, 402, 198, 288, 397, 275, 330, 267, 161, 341, 283, 193, 62, 258, 162, 254, 259, 374, 408, 415, 268, 54, 312, 424, 302, 342, 376, 172, 453, 214, 281, 379, 447, 170, 434, 230, 121, 423, 305, 441, 276, 244, 121, 110, 461, 323, 151, 309, 431, 202, 200, 329, 210, 352, 164, 503, 113, 126, 231, 152, 454, 311, 433, 86, 449, 130, 231, 262, 189, 290, 288, 429, 143, 311, 70, 226, 451, 277, 362, 134, 51, 81, 343, 171, 466, 149, 194, 310, 119, 315, 186, 300, 469, 349, 427, 123, 168, 117, 174, 144, 224, 116, 173, 198, 457, 287, 147, 65, 258, 272, 499, 315, 81, 186, 168, 341, 316, 190, 178, 291, 232, 280, 174, 260, 242, 226, 181, 120, 113, 138, 294, 106, 481, 287, 377, 104, 125, 383, 234, 369, 289, 348, 52, 389, 239, 219, 344, 378, 338, 418, 137, 363, 116, 207, 335, 449, 202, 358, 216, 134, 319, 100, 11, 265, 233, 172, 267, 45, 256, 23, 318, 221, 169, 245, 306, 281, 181, 289, 116, 173, 346, 327, 194, 205, 326, 345, 201, 111, 448, 366, 399, 293, 222, 170, 358, 442, 19, 187, 159, 456, 299, 206, 290, 169, 253, 412, 252, 202, 377, 331, 497, 203, 313, 115, 255, 373, 364, 237, 245, 291, 269, 342, 54, 218, 269, 373, 170, 256, 270, 213, 305, 288, 203, 315, 238, 87, 192, 334, 26, 127, 352, 240, 277, 114, 102, 432, 139, 332, 278, 128, 411, 91, 317, 296, 265, 343, 291, 217, 124, 350, 220, 242, 220, 62, 233, 300, 190, 393, 445, 513, 478, 346, 375, 131, 99, 272, 160, 355, 279, 112, 305, 107, 403, 336, 109, 322, 143, 371, 147, 204, 192, 308, 180, 279, 127, 194, 145, 239, 124, 288, 24, 177, 191, 433, 429, 308, 270, 136, 330, 73, 469, 302, 274, 221, 246, 393, 328, 431, 454, 391, 426, 269, 434, 329, 245, 149, 151, 338, 328, 299, 433, 374, 230, 202, 472, 177, 360, 402, 387, 316, 181, 418, 52, 198, 174, 20, 197, 110, 294, 268, 123, 151, 43, 87, 250, 237, 247, 233, 143, 367, 231, 339, 381, 141, 233, 355, 204, 225, 382, 208, 224, 206, 159, 87, 80, 275, 103, 365, 33, 374, 117, 145, 332, 368, 309, 297, 421, 63, 212, 213, 373, 107, 249, 247, 318, 242, 464, 312, 164, 240, 103, 328, 345, 262, 160, 209, 401, 325, 249, 186, 201, 112, 250, 262, 215, 70, 473, 170, 126, 143, 211, 313, 370, 183, 220, 174, 388, 346, 351, 182, 173, 48, 214, 370, 163, 92, 95, 228, 134, 461, 251, 398, 205, 282, 372, 363, 348, 83, 321, 175, 265, 160, 252, 479, 340, 257, 64, 285, 419, 369, 23, 196, 283, 286, 327, 97, 411, 331, 184, 297, 325, 284, 341, 245, 302, 294, 231, 247, 319, 404, 190, 180, 491, 441, 147, 303, 148, 291, 350, 471, 197, 396, 187, 92, 201, 269, 200, 264, 250, 338, 104, 470, 379, 248, 168, 271, 113, 146, 205, 267, 71, 296, 221, 385, 153, 347, 482, 252, 339, 453, 390, 289, 284, 229, 269, 263, 167, 27, 369, 80, 243, 432, 230, 153, 280, 397, 239, 380, 208, 244, 8, 72, 271, 354, 328, 233, 224, 297, 297, 204, 461, 190, 259, 151, 306, 375, 195, 189, 304, 155, 279, 232, 352, 123, 177, 339, 401, 493, 384, 376, 340, 38, 171, 79, 161, 78, 340, 293, 238, 465, 191, 435, 179, 244, 387, 184, 211, 307, 352, 342, 316, 196, 351, 353, 445, 69, 97, 368, 180, 274, 136, 275, 342, 189, 75, 395, 145, 147, 205, 185, 222, 218, 413, 297, 374, 144, 453, 372, 138, 302, 316, 237, 356, 46, 40, 339, 343, 184, 242, 125, 216, 345, 305, 477, 148, 214, 199, 303, 306, 123, 440, 404, 292, 210, 328, 350, 210, 337, 94, 309, 408, 151, 76, 276, 266, 325, 482, 155, 332, 254, 209, 321, 297, 243, 355, 259, 164, 221, 453, 361, 15, 338, 357, 289, 240, 149, 249, 263, 219, 447, 434, 261, 300, 159, 479, 342, 93, 213, 57, 141, 177, 335, 410, 315, 188, 166, 223, 307, 354, 492, 170, 187, 453, 195, 127, 349, 410, 151, 207, 130, 147, 216, 417, 439, 369, 83, 461, 326, 406, 381, 227, 126, 270, 258, 394, 108, 331, 228, 333, 72, 95, 209, 319, 351, 346, 379, 284, 392, 315, 191, 147, 463, 95, 486, 415, 167, 324, 377, 390, 375, 410, 92, 354, 106, 364, 106, 370, 132, 193, 396, 321, 134, 119, 393, 327, 195, 506, 30, 341, 253, 233, 82, 283, 55, 207, 301, 430, 167, 248, 163, 475, 77, 218, 124, 367, 176, 415, 426, 188, 380, 58, 488, 209, 170, 164, 354, 134, 212, 334, 255, 220, 349, 110, 288, 227, 350, 201, 406, 319, 442, 117, 330, 228, 148, 424, 267, 155, 452, 161, 345, 217, 474, 179, 208, 328, 367, 254, 173, 210, 259, 458, 296, 277, 206, 296, 162, 480, 430, 183, 202, 268, 263, 274, 312, 374, 96, 445, 66, 463, 321, 250, 204, 194, 129, 78, 342, 485, 289, 387, 67, 119, 256, 241, 341, 110, 215, 276, 226, 186, 276, 266, 198, 331, 455, 167, 232, 89, 355, 166, 336, 147, 397, 167, 260, 175, 282, 465, 265, 178, 453, 189, 132, 273, 202, 132, 209, 62, 400, 397, 114, 225, 299, 288, 259, 228, 149, 319, 160, 327, 406, 411, 217, 374, 286, 229, 236, 129, 232, 403, 266, 432, 189, 115, 338, 120, 342, 197, 248, 310, 269, 298, 79, 156, 453, 325, 468, 116, 246, 210, 438, 43, 256, 378, 294, 398, 84, 366, 122, 311, 174, 346, 377, 320, 111, 309, 243, 162, 329, 165, 307, 229, 266, 305, 267, 94, 230, 454, 131, 72, 50, 209, 199, 283, 329, 178, 400, 236, 388, 423, 127, 190, 287, 175, 477, 274, 314, 465, 389, 410, 350, 131, 263, 108, 201, 127, 130, 468, 59, 223, 148, 341, 336, 414, 235, 36, 288, 171, 405, 111, 395, 271, 122, 154, 150, 164, 403, 460, 374, 213, 208, 464, 310, 143, 356, 204, 81, 273, 314, 287, 380, 16, 410, 313, 385, 410, 406, 23, 240, 370, 373, 416, 355, 204, 176, 187, 329, 357, 292, 282, 384, 212, 273, 202, 262, 385, 198, 191, 402, 230, 266, 179, 389, 210, 165, 375, 261, 287, 302, 471, 250, 144, 284, 279, 277, 382, 118, 65, 126, 235, 158, 354, 150, 53, 331, 68, 280, 51, 219, 432, 90, 236, 213, 137, 289, 256, 366, 469, 484, 125, 289, 454, 49, 155, 392, 221, 181, 238, 137, 85, 222, 105, 228, 351, 380, 22, 379, 322, 409, 215, 234, 174, 275, 356, 182, 212, 272, 203, 194, 426, 215, 279, 234, 279, 388, 164, 318, 219, 205, 152, 74, 304, 242, 136, 440, 304, 466, 238, 347, 201, 373, 275, 325, 364, 362, 393, 103, 394, 365, 359, 338, 332, 322, 369, 270, 216, 363, 135, 353, 460, 157, 282, 402, 414, 393, 196, 403, 178, 294, 276, 193, 282, 217, 86, 234, 351, 433, 337, 64, 236, 184, 423, 64, 362, 241, 210, 247, 483, 298, 122, 191, 243, 245, 46, 458, 278, 447, 311, 326, 360, 71, 224, 354, 148, 360, 74, 6, 215, 290, 374, 313, 200, 185, 116, 133, 28, 224, 467, 357, 291, 473, 379, 388, 188, 246, 340, 67, 240, 144, 475, 314, 193, 179, 215, 150, 423, 360, 192, 102, 159, 127, 204, 154, 168, 423, 373, 172, 48, 140, 327, 292, 358, 221, 426, 154, 101, 331, 337, 235, 102, 251, 409, 238, 283, 151, 307, 278, 357, 247, 484, 229, 152, 69, 311, 241, 225, 388, 230, 140, 146, 370, 429, 26, 134, 466, 240, 372, 197, 389, 145, 136, 176, 187, 400, 264, 221, 366, 446, 311, 364, 186, 404, 363, 101, 243, 400, 120, 146, 389, 203, 190, 278, 300, 260, 196, 430, 106, 260, 367, 436, 222, 359, 433, 417, 184, 371, 301, 275, 336, 111, 428, 129, 304, 303, 73, 224, 449, 175, 255, 446, 326, 123, 315, 315, 223, 327, 161, 194, 97, 201, 309, 383, 407, 302, 326, 209, 324, 198, 356, 107, 88, 189, 276, 247, 144, 339, 320, 221, 169, 140, 226, 118, 379, 333, 69, 300, 262, 218, 265, 257, 251, 310, 27, 265, 227, 369, 220, 146, 412, 265, 272, 286, 286, 229, 283, 395, 209, 372, 290, 488, 293, 184, 360, 342, 194, 132, 313, 290, 448, 385, 162, 232, 31, 270, 271, 383, 318, 242, 251, 157, 79, 119, 421, 401, 178, 231, 152, 207, 55, 163, 274, 313, 125, 251, 256, 468, 385, 329, 227, 272, 317, 196, 427, 466, 96, 216, 449, 14, 441, 333, 484, 363, 383, 303, 155, 172, 188, 348, 169, 256, 199, 193, 188, 455, 86, 161, 235, 247, 288, 135, 344, 427, 381, 148, 261, 128, 193, 287, 221, 347, 155, 172, 204, 334, 255, 380, 189, 241, 277, 226, 448, 413, 81, 441, 223, 162, 429, 292, 205, 146, 439, 110, 114, 304, 261, 378, 88, 278, 386, 123, 226, 329, 165, 83, 295, 213, 408, 355, 414, 336, 440, 366, 409, 142, 153, 168, 128, 470, 266, 82, 280, 428, 250, 360, 238, 99, 53, 424, 176, 285, 263, 212, 268, 316, 377, 335, 387, 168, 144, 428, 326, 132, 232, 252, 300, 51, 146, 308, 371, 486, 279, 275, 370, 223, 33, 304, 296, 217, 442, 360, 280, 75, 354, 182, 139, 397, 236, 442, 361, 45, 233, 193, 479, 206, 153, 121, 299, 201, 255, 426, 318, 286, 54, 143, 302, 57, 148, 320, 231, 218, 377, 498, 206, 359, 238, 235, 379, 160, 391, 381, 261, 297, 277, 368, 362, 437, 409, 372, 270, 481, 300, 407, 253, 55, 488, 487, 470, 429, 431, 402, 259, 404, 257, 101, 243, 463, 487, 514, 496, 150, 358, 504, 234, 490, 511, 240, 415, 412, 484, 490, 416, 252, 472, 489, 478, 493, 381, 139, 480, 511, 362, 293, 466, 503, 359, 342, 142, 326, 369, 304, 320, 364, 486, 261, 105, 316, 471, 476, 430, 460, 379, 484, 253, 446, 400, 447, 373, 472, 490, 272, 401, 158, 471, 328, 417, 312, 344, 331, 429, 383, 341, 501, 361, 410, 480, 477, 492, 508, 482, 332, 336, 429, 310, 369, 460, 291, 346, 365, 392, 402, 452, 120, 430, 301, 419, 462, 406, 410, 342, 493, 500, 390, 498, 378, 230, 403, 188, 443, 258, 505, 499, 148, 508, 485, 241, 382, 289, 264, 182, 455, 481, 264, 451, 489, 483, 485, 365, 376, 447, 301, 382, 278, 237, 409, 285, 168, 292, 463, 290, 482, 339, 323, 376, 386, 495, 286, 502, 450, 322, 115, 390, 483, 370, 426, 461, 441, 406, 162, 73, 506, 256, 511, 507, 107, 498, 491, 323, 274, 478, 516, 337, 450, 304, 183, 502, 285, 249, 420, 427, 349, 386, 508, 353, 413, 500, 375, 304, 485, 410, 484, 306, 353, 431, 377, 239, 156, 438, 402, 499, 503, 200, 458, 419, 490, 230, 203, 397, 73, 436, 398, 326, 293, 363, 416, 497, 458, 250, 443, 460, 60, 476, 227, 392, 494, 352, 422, 383, 468, 344, 443, 199, 425, 417, 496, 452, 472, 396, 246, 449, 458, 395, 398, 283, 253, 391, 307, 268, 337, 501, 269, 499, 409, 408, 434, 365, 264, 407, 267, 150, 253, 254, 269, 185, 434, 306, 508, 510, 287, 347, 318, 439, 235, 307, 503, 281, 303, 468, 366, 415, 434, 480, 368, 497, 500, 504, 195, 188, 125, 502, 496, 475, 492, 481, 501, 407, 309, 302, 372, 442, 357, 464, 436, 249, 429, 493, 412, 340, 385, 489, 172, 353, 322, 477, 439, 509, 490, 311, 478, 364, 450, 448, 479, 372, 463, 495, 312, 269, 425, 341, 501, 415, 193, 225, 481, 437, 433, 281, 509, 428, 278, 509, 458, 506, 481, 509, 463, 504, 209, 415, 510, 347, 246, 388, 307, 237, 472, 407, 318, 228, 441, 417, 467, 469, 457, 515, 324, 402, 510, 254, 112, 470, 345, 463, 302, 378, 416, 312, 241, 381, 327, 94, 207, 335, 498, 343, 476, 427, 444, 351, 414, 186, 178, 457, 459, 460, 333, 471, 334, 389, 398, 327, 315, 504, 481, 437, 386, 431, 488, 442, 241, 356, 471, 402, 424, 433, 287, 459, 298, 463, 322, 458, 386, 464, 232, 492, 285, 441, 227, 292, 405, 377, 336, 466, 441, 513, 350, 276, 142, 492, 176, 404, 286, 437, 483, 474, 446, 291, 323, 474, 463, 414, 496, 231, 493, 491, 464, 484, 448, 191, 441, 258, 296, 497, 381, 484, 419, 318, 125, 222, 487, 516, 285, 502, 449, 294, 211, 384, 358, 451, 414, 509, 135, 241, 444, 392, 474, 469, 444, 203, 500, 282, 350, 286, 231, 478, 365, 465, 467, 472, 497, 484, 513, 513, 455, 242, 502, 385, 504, 358, 479, 390, 407, 416, 266, 330, 206, 412, 471, 496, 498, 380, 325, 159, 219, 504, 447, 340, 383, 416, 475, 373, 410, 486, 368, 501, 511, 413, 91, 278, 257, 486, 369, 506, 214, 402, 430, 348, 476, 333, 331, 441, 204, 187, 450, 194, 382, 224, 497, 411, 462, 252, 275, 457, 446, 415, 502, 413, 121, 515, 485, 476, 353, 381, 488, 480, 385, 425, 314, 224, 383, 506, 280, 515, 388, 422, 386, 396, 408, 329, 340, 371, 359, 138, 431, 200, 361, 393, 189, 436, 411, 319, 316, 478, 293, 390, 422, 414, 445, 232, 503, 397, 443, 296, 493, 374, 432, 430, 493, 206, 437, 477, 295, 352, 492, 509, 375, 214, 314, 430, 283, 467, 491, 350, 421, 499, 499, 511, 367, 125, 379, 482, 476, 505, 411, 446, 507, 390, 264, 290, 419, 460, 474, 414, 422, 317, 327, 437, 422, 404, 320, 416, 242, 362, 429, 366, 399, 438, 293, 245, 448, 461, 390, 415, 356, 482, 504, 284, 428, 378, 268, 400, 308, 468, 416, 393, 394, 405, 355, 408, 438, 323, 424, 401, 483, 516, 493, 362, 424, 372, 234, 515, 386, 382, 500, 314, 402, 425, 460, 456, 172, 501, 247, 495, 173, 492, 226, 476, 439, 346, 293, 353, 317, 435, 152, 487, 119, 348, 424, 499, 494, 495, 469, 251, 501, 401, 516, 308, 457, 280, 454, 440, 432, 470, 497, 399, 451, 344, 487, 432, 439, 516, 278, 461, 462, 313, 475, 386, 233, 396, 475, 439, 424, 495, 431, 434, 433, 436, 456, 403, 341, 423, 359, 296, 324, 309, 480, 508, 435, 144, 478, 401, 358, 287, 484, 512, 443, 367, 459, 452, 445, 468, 316, 271, 514, 388, 448, 474, 413, 307, 86, 293, 320, 433, 302, 394, 222, 414, 344, 456, 356, 475, 468, 456, 426, 494, 428, 339, 288, 494, 448, 270, 504, 507, 381, 405, 379, 498, 469, 489, 247, 354, 445, 500, 467, 217, 277, 385, 318, 513, 218, 253, 483, 249, 325, 161, 351, 505, 475, 440, 229, 412, 461, 371, 427, 377, 439, 338, 473, 500, 292, 167, 315, 230, 261, 464, 294, 407, 226, 406, 488, 426, 432, 515, 511, 421, 489, 439, 282, 515, 483, 325, 323, 462, 443, 491, 377, 384, 349, 491, 353, 226, 420, 495, 428, 409, 473, 461, 357, 473, 371, 343, 360, 398, 500, 465, 401, 319, 513, 483, 216, 405, 424, 473, 455, 516, 235, 476, 308, 248, 281, 482, 244, 481, 407, 345, 309, 506, 417, 485, 363, 320, 192, 470, 231, 513, 246, 299, 447, 467, 163, 510, 498, 337, 417, 491, 457, 422, 340, 422, 298, 273, 301, 447, 449, 356, 374, 436, 299, 225, 452, 468, 490, 403, 432, 387, 38, 277, 340, 514, 485, 355, 253, 400, 389, 460, 492, 356, 300, 400, 404, 404, 498, 369, 330, 273, 311, 248, 491, 126, 216, 495, 449, 505, 407, 380, 425, 246, 437, 153, 211, 256, 387, 515, 297, 507, 440, 480, 361, 412, 395, 431, 412, 371, 506, 435, 421, 462, 504, 483, 472, 436, 507, 370, 183, 485, 330, 389, 381, 473, 272, 449, 364, 192, 345, 312, 252, 333, 501, 388, 491, 246, 507, 393, 355, 358, 367, 417, 499, 81, 516, 494, 490, 228, 480, 367, 427, 387, 349, 510, 349, 411, 321, 449, 315, 307, 458, 490, 462, 323, 406, 452, 456, 357, 153, 359, 503, 375, 352, 385, 392, 442, 485, 260, 445, 423, 512, 410, 361, 396, 421, 514, 300, 412, 487, 489, 19, 352, 447, 347, 321, 400, 394, 284, 510, 508, 502, 281, 459, 177, 483, 388, 399, 379, 180, 186, 209, 502, 418, 326, 214, 432, 274, 401, 413, 512, 322, 264, 513, 239, 501, 464, 419, 259, 418, 306, 307, 319, 484, 512, 453, 363, 508, 454, 424, 450, 275, 270, 301, 260, 512, 161, 494, 323, 346, 189, 348, 376, 345, 464, 421, 381, 342, 464, 359, 455, 492, 470, 359, 505, 465, 343, 420, 435, 428, 510, 478, 193, 419, 380, 414, 181, 394, 266, 396, 491, 395, 192, 421, 404, 507, 456, 512, 251, 384, 442, 421, 334, 384, 317, 320, 391, 477, 171, 336, 273, 500, 446, 414, 340, 484, 306, 453, 445, 327, 405, 406, 506, 236, 491, 371, 508, 471, 446, 501, 290, 366, 507, 250, 394, 403, 458, 266, 509, 351, 493, 252, 510, 456, 176, 440, 419, 378, 506, 399, 442, 319, 514, 462, 275, 459, 378, 350, 226, 494, 430, 494, 394, 486, 442, 381, 233, 500, 504, 504, 308, 494, 366, 353, 469, 439, 463, 516, 109, 473, 473, 343, 383, 435, 282, 509, 420, 514, 333, 450, 307, 477, 375, 398, 466, 382, 479, 452, 283, 285, 495, 482, 425, 430, 505, 322, 444, 503, 497, 449, 486, 338, 440, 355, 488, 413, 352, 513, 331, 333, 506, 423, 183, 361, 474, 461, 409, 425, 411, 481, 397, 470, 332, 395, 343, 298, 159, 476, 512, 398, 444, 516, 505, 499, 397, 421, 271, 130, 424, 456, 270, 463, 431, 334, 397, 399, 509, 335, 341, 443, 392, 509, 338, 284, 468, 382, 477, 443, 331, 455, 445, 169, 296, 511, 491, 408, 427, 408, 318, 405, 182, 392, 390, 488, 219, 368, 369, 384, 372, 336, 399, 502, 515, 356, 486, 325, 293, 504, 162, 451, 295, 339, 220, 471, 421, 351, 433, 334, 392, 465, 303, 418, 306, 316, 515, 317, 438, 482, 454, 475, 370, 459, 496, 505, 384, 185, 172, 497, 171, 281, 400, 418, 499, 436, 391, 108, 468, 280, 422, 313, 467, 398, 464, 167, 254, 168, 448, 465, 505, 471, 312, 467, 418, 403, 374, 470, 459, 347, 468, 395, 425, 19, 472, 510, 456, 428, 495, 75, 255, 467, 465, 425, 512, 387, 426, 335, 453, 474, 487, 480, 462, 344, 511, 207, 309, 419, 419, 395, 424, 272, 346, 382, 460, 352, 169, 442, 476, 404, 473, 511, 330, 196, 334, 329, 438, 438, 503, 255, 481, 500, 420, 472, 509, 394, 450, 255, 472, 373, 365, 488, 305, 496, 418, 193, 368, 305, 508, 495, 494, 199, 420, 514, 450, 201, 496, 238, 264, 411, 358, 229, 287, 493, 346, 409, 489, 102, 480, 413, 435, 290, 317, 303, 348, 376, 314, 422, 297, 343, 250, 513, 466, 290, 289, 431, 503, 451, 516, 328, 305, 427, 361, 307, 469, 341, 476, 371, 489, 328, 355, 310, 437, 515, 402, 386, 403, 412, 357, 440, 486, 448, 399, 337, 514, 426, 478, 506, 462, 360, 466, 496, 279, 397, 479, 428, 505, 421, 461, 257, 437, 418, 315, 440, 498, 337, 387, 490, 437, 466, 220, 500, 479, 470, 218, 380, 431, 243, 396, 492, 443, 507, 373, 477, 395, 188, 496, 366, 457, 422, 336, 376, 450, 391, 494, 245, 384, 77, 44, 478, 438, 454, 407, 285, 508, 198, 457, 261, 322, 492, 482, 338, 512, 405, 420, 312, 464, 416, 80, 412, 249, 501, 412, 452, 505, 426, 379, 451, 479, 387, 137, 340, 507, 483, 459, 203, 453, 420, 358, 84, 499, 503, 408, 443, 350, 515, 200, 295, 376, 442, 369, 423, 346, 420, 445, 456, 465, 337, 475, 438, 258, 506, 377, 364, 185, 321, 305, 282, 509, 301, 321, 398, 456, 511, 465, 281, 516, 450, 435, 286, 416, 475, 254, 393, 469, 414, 429, 460, 389, 478, 492, 503, 453, 444, 393, 467, 294, 420, 157, 279, 513, 497, 204, 444, 514, 348, 459, 454, 270, 413, 440, 494, 434, 465, 505, 429, 384, 514, 466, 486, 475, 510, 436, 437, 434, 457, 516, 454, 473, 332, 433, 479, 499, 405, 482, 497, 503, 411, 351, 199, 380, 216, 420, 387, 426, 450, 404, 370, 447, 386, 452, 135, 253, 482, 416, 276, 171, 419, 420, 288, 241, 474, 391, 368, 488, 365, 400, 363, 354, 274, 415, 345, 376, 467, 138, 479, 295, 391, 382, 483, 444, 446, 390, 304, 510, 507, 385, 452, 216, 457, 472, 498, 438, 408, 388, 368, 498, 464, 462, 466, 508, 515, 321, 375, 337, 448, 273, 455, 435, 380, 354, 254, 242, 324, 489, 477, 245, 427, 195, 508, 187, 210, 328, 498, 145, 485, 304, 493, 392, 507, 324, 400, 419, 430, 439, 513, 432, 417, 496, 364, 474, 511, 493, 435, 487, 366, 364, 455, 384, 359, 195, 329, 263, 349, 248, 486, 371, 166, 257, 471, 339, 380, 357, 437, 441, 191, 443, 268, 197, 444, 306, 363, 160, 346, 345, 376, 401, 479, 195, 243, 514, 481, 489, 445, 432, 451, 460, 252, 443, 332, 283, 416, 502, 140, 164, 415, 359, 470, 90, 411, 425, 422, 352, 344, 501, 386, 335, 458, 449, 478, 480, 477, 487, 413, 444, 244, 157, 451, 423, 480, 297, 284, 495, 431, 384, 418, 363, 325, 245, 447, 313, 485, 436, 391, 357, 512, 490, 487, 417, 512, 324, 496, 366, 152, 452, 343, 361, 389, 254, 446, 471, 502, 399, 485, 395, 345, 474, 337, 481, 249, 510, 458, 514, 90, 362, 463, 347, 477, 257, 489, 405, 143, 259, 286, 495, 382, 224, 177, 446, 260, 427, 438, 434, 511, 187, 383, 423, 193, 430, 427, 447, 435, 487, 502, 338, 407, 323, 407, 387, 166, 512, 473, 310, 457, 490 }; float input[] = { -2.8588758611049867, -11.692946618257562, -2.0931111592429659, 11.110696212718175, 6.6118168080332342, 5.5228669775147967, -10.351976177615544, -6.2055936928533972, 15.766842028131405, 10.150684036103069, -8.459063190320423, 3.5621047687812557, -3.4741612771047636, 3.324748317571744, 8.996614205792751, -11.020291727957101, 12.081427681651697, -8.8928631203159583, -3.3519010114052263, 7.7902118547439443, 9.6608001848411806, -7.1066822779231593, -18.837368573809297, 6.7301895647238608, 6.7933629603091008, 5.9697810424393483, 8.344011991064086, 12.19791145343228, 9.4167774696594435, 7.423418316685729, 9.0291842080564226, 12.492983259925982, 7.1203329881309401, 9.8776999539720336, 7.3657220051725565, 5.4066464900536131, -12.553405951140983, -8.4918025628237199, -11.352365915823617, 14.756685666538061, -8.0938336502539876, -2.7071697789206022, -2.4795849849319289, 14.778716053676311, -12.149933491676437, -8.5931326392610909, -5.4147618905983697, 1.7095221079392837, -12.75286957597447, -6.560818125727109, 5.5288804134600262, -16.774264848727494, -10.397477377823613, -14.47470382199227, -12.095199384731899, -0.68504635593676977, 2.6623689185177528, 13.264791388391092, -15.654931986196731, 6.1276196890542334, 4.5068190091793028, -13.394637229913476, -6.9231832293793651, -12.113429033794846, 1.2142140703098925, 8.9363539352870394, -12.687063373304539, -3.3458614784673091, -3.4123481785186587, 17.559631253372945, 13.470764559481434, 5.3912902961422002, 8.0737946505557545, -12.755710856932868, -3.569697890412812, -6.2613535644882905, 0.068556269783912271, 6.2629797657916875, -9.2663011036090968, -4.4829975567184634, -9.6136989537403004, -8.7663852688801143, -13.974856274599134, 11.407302219619563, -10.302223327202944, -8.9771589068473983, -6.1388609170833384, 4.2370800072671333, 1.7760515525196516, -12.120232639630231, -12.958157445638765, 5.2985241644932541, -16.484657731002855, -6.3532421360393387, -9.0395804464700298, -7.2671128749847744, -12.616882711750195, -4.9350723080331012, -6.6905936282318637, 18.568407538602393, 12.530577696234687, -9.7889565176657243, -15.214958325061282, 7.215674131215513, -7.5394667988733808, 9.0137713371297465, 6.2553392643094785, 9.1953246360263154, -11.131787953429392, -5.4020937991353657, -4.0642543197135739, -0.44036236539366824, 8.0650609441874703, 0.85520780385748785, 7.2621337620159085, 0.29865166967486761, -9.2011814546979203, -10.330862011400864, -7.3191138151867943, -9.4852558149271111, 14.762260259194324, -5.0853268103463423, -11.2925794883785, 13.026909781206733, 7.9504343630905412, 10.148928930852414, -8.9032450603232327, 7.0914762951954913, 10.89340681888671, -12.705821222595254, 13.126012326275292, 9.4442919029362749, 5.0277440210736879, 0.21756213342494518, 12.710361373031621, 5.6453651213768019, -13.49634180382726, 6.4754225359227204, 9.6275804629486004, 5.8125840672452975, 9.7028326962213836, 6.1260130958734562, 3.3623596073706641, 10.736024757333299, 4.6569987032041826, -8.5021099021622799, -2.5832378575026125, 17.984880998940056, -13.974611077713172, -7.8550941092339874, -2.6917314432377575, 10.825283872831294, 11.217940706150642, 1.8301222470027103, 6.2062091666111812, -12.440863506480019, -19.955292055354317, -3.6699151522797462, 2.2154324244303956, -3.7363628672311142, -10.271027034445964, -9.2862432349117547, 9.7847963699436011, -5.9471830363214551, 11.139859339322513, -9.2599913694963618, 5.0422863933763367, -7.1141487133220043, 4.2177963601947308, 10.657785123505857, -5.7952000401674324, -6.826355874510365, 8.7268751949597245, -8.5906649209875745, 2.2758857640658201, -6.1665377492933358, -7.3104026599884433, -3.2424605164178031, 16.796591996286164, 15.671215006757382, -7.8445348658392806, 12.2589312976831, -2.5670307012079139, -11.537316744819945, -2.4858301794672331, 5.0542510171190438, -6.6860957990782133, -7.2619018024969462, -6.7329842279273242, -7.3146812058251234, 8.0821157274412183, 2.4005920765968378, 9.3157871935284753, -12.908851857280949, 5.2927115546650425, 9.9926730185778059, 3.9229860372333749, -5.5126846245121035, 12.313688019948762, 7.9681453222519041, 17.181368769149195, -8.962498225939207, -11.548950041024865, 12.014544817430894, 11.485639169870186, 11.939774664713912, -14.36069895314143, -11.812874687185857, 12.249194120883461, 4.8839501930831242, -10.540165871108648, -14.829380396239381, -6.4665012687326051, 4.7430459960995295, -7.1378949876943016, -15.357105375923917, 7.3351294975306445, -9.6095153441695373, 4.381145332149095, -9.2910048695861427, 4.894239034759102, 7.864879034656453, -8.3265429253416077, 10.497214061711553, -0.39338042557070996, -4.4611306847986816, 0.76940119561902198, 2.3535542193708272, 10.459438806533345, 9.4938186880252005, -6.4805717587307994, -13.457392617761585, -10.487085219177404, -9.8506932711478576, 11.274019685851906, -12.3031017274995, 8.3324030035106826, -2.3013116280481358, 8.3664075310158825, -10.402109920341072, -5.2924293563600742, -12.008098192077149, 10.992304106359162, -5.5591947469243506, -12.838234842015352, 8.1682577157065577, -6.4919177172949487, 13.568876091933316, 8.0352162745849594, 8.7834139460450125, -11.335870474093099, -10.790767171281415, -2.8875937626970223, 14.64505222675956, 11.436743007190451, -2.9337339836825955, -12.707240342338084, 16.661129912274529, -19.171798326126961, 12.280144746488103, 6.5975965145696174, -13.019719338217644, -3.4328503704209457, 4.822535491209953, -8.1340577921572415, 11.549182216506546, 9.6431724916100059, 5.5547407614902173, 15.019668995173307, -1.6514898426907461, 16.110709054474917, -10.9397931999944, 12.04576668183285, -8.4818868311872198, -6.103248438757908, 8.2975079067215702, 2.5480181038085412, 18.799878298920927, 16.231939791740228, -18.011602750805633, 3.7139764502467689, 12.751595841360283, -7.8718015936255812, -0.40802815212428428, -15.47812599016518, 3.2584854200798588, 14.976391986507007, 9.1367378814346782, 3.4155780056910059, -13.292285487599507, -12.855991908912157, 14.013291588644732, 9.6911017234399335, -5.8910196575740752, -2.2280612655108047, -11.219438047247786, -2.5955623953948517, -3.4460676112793136, 3.5682986120247073, -11.70300520092221, 11.99455548751415, 7.319096625369828, 8.400961847094683, 12.142806695044221, -3.6775894169196279, 8.3797255658565142, -12.156985373281584, -17.475193610019677, -14.228116929396922, 10.726007504360073, 15.267119384103992, 12.781072511062279, 8.0326533999697229, -17.51207194760946, -7.554034280962183, 10.066411068992132, 14.13799652436988, -6.7247334837075705, -11.112518294834185, -5.7326833292155523, 3.6877552031425131, 8.7105204152043516, 9.3857694378580963, 19.127569440965896, -3.8614826162666089, 7.9404471399280068, 6.3807591097483005, -6.8888859894612535, 10.317928637508684, 2.1736529765433783, 10.953222318849482, -7.6682531128958038, 5.0318286636058982, -6.9463690764775503, -3.0184853792276383, 9.6041512562391542, -0.88225262267439808, 6.4852292067129724, -2.3181001351577644, -13.197351056460056, -6.8047677874499586, 5.3843074707174692, 5.1196343577870644, -17.820822197855577, -12.257015718775355, 5.1913937352654651, -5.0162460867599536, 9.9461758050913041, -9.7414598652248081, 8.1378256819797858, 12.564281794378495, -5.6365288176451322, -9.1029468332924104, -5.6355130288814301, -13.719331548944416, -5.8613058178495017, -9.2573519867695815, 6.0620773131346706, 5.8947778726542905, 11.265652594812099, -11.760986024368906, -7.7447348268870124, 19.076436411627338, 14.505720191829832, -9.0750817120358054, -5.2025480400034789, -3.1960162333402482, -11.659437264119374, -7.9842387274926709, 8.5980388295231229, 14.858752059828165, 6.8639263237417376, 6.0631638589074024, 2.7093921939507379, -4.9581002755473795, 4.4179924464321392, -11.144868427484562, 12.546476704938177, 13.606433000436612, 4.0208619807458295, 6.2408832155761376, 3.0941528835943455, -11.347668662075096, 1.9313877794966201, 11.65105372954261, -14.681336156121709, 7.2969958167198605, 11.59264621157577, -8.831465763669156, -12.759130509205734, -9.0714254556796128, 8.9948895559776467, -8.3736028555285831, -13.115027308542444, -0.21628815052066303, 7.7132708674061705, 14.055053470061472, 13.370601410874029, 3.3283307501026052, -11.9653642849229, -5.6440590777489144, -4.2508984635752549, 13.005398229132568, -11.5296140873405, 11.286858942494266, 9.8110403874583074, -13.263569122014866, -6.4297799553106456, 7.9672918799786396, 2.1515462864377719, -8.490571668881163, 7.5548103934198929, -13.121628447449439, -5.7901204816768361, 7.5171762671769704, -5.4216710822831979, -0.95140907859749113, -5.6992105242986471, -0.91737830538166343, -8.2053563541920571, -4.9100295191078036, -8.650093905400162, 10.400080220873763, 7.2829351923330092, 5.3481291290736603, -9.5017802399357425, -9.8687523002255393, 11.82329840938681, -3.1919281246249707, -10.124868011353035, 6.8360355157042028, -14.032171223888698, 18.148403140529073, -9.5731633683674744, 4.0453611070899935, -4.114147796015585, -8.4912512496909898, -7.9968991599686872, 12.922672789580542, -6.7315939113482681, -16.414580925551139, 10.417406116722118, -9.5795995211441394, -7.974905790034116, -13.727944328842275, -15.024522822723423, 4.9026741637309703, -10.662764572620276, -19.122555879539242, 9.217115643469544, -2.9661166430929642, 13.154514394206242, 9.8788596316167272, 4.2669291411005252, 10.239868792823961, 0.50928446540137651, -6.9544644508051245, 2.9807945285095245, -8.2689690969205181, 3.5499295458600972, 12.732733620631645, 11.61935741986054, 8.4137329217700945, -13.703811206903364, 8.5347899814747166, 13.941804015126218, 11.213731601489895, 11.550008187296406, -10.885532785062049, -6.0320756476152395, -7.945602926688589, 18.178022024827495, 4.2378890109434684, -8.419937978328889, 14.273513193884424, -8.1801725060827586, 13.690183625733544, -17.518387733265431, -8.6392702216784656, -13.927446312699148, -8.651607062718659, -12.712917239643309, 15.009792996204254, 0.15853783962329626, -10.462310302523948, -12.535567399778486, 8.8192610919401329, 13.066656030822525, 18.005415525102343, -16.007576967175243, 11.052574245331391, -1.1810954342450888, -12.762633127175347, -11.427571726679494, -1.8068233566411038, -3.8651597939182674, 6.9028603232990591, -9.9188843352819767, -13.607089316301986, 5.8989769757503172, -10.266998033319117, 12.946619994251195, -7.3433271276853551, 13.594756446262442, -1.4802835189751626, 2.9459432512420887, 9.0127453411993006, 12.34274116102957, -0.99056567004691576, -1.0211228826859517, 10.87969885601588, -15.669877762479704, 16.01192464298973, 10.789218207135569, 6.1523737440350752, 10.844976713696601, -18.796538678004055, -7.3982730413954201, -6.5213519941388851, -18.571369340190397, -9.6913300045155282, 1.0175474995943568, -8.0705533615168754, 14.251221745808563, -14.054781652173469, -10.906074448438877, 9.9932114606110058, 9.2204934537976815, -11.102967677965665, -15.06146952578059, 11.282374133246716, -3.4111780254645643, 7.3857075662336609, 10.330601600777463, 5.6502615537426548, -7.2776853004382911, -12.041052757776699, -11.046289906579057, -2.8519140526114701, -14.358095698121817, 4.6207960341417813, -12.368837238636017, -7.2377430770905917, -7.1306536664479809, -10.374815173234571, 7.5287331560402384, -5.4660620697715716, -13.441122458297521, -6.5962962593129824, -8.4930653390556969, -5.473757203858737, -16.42318744504734, -7.678902139771755, -6.1724752873292612, 17.227224731420481, 2.7992443468423089, -11.010643413583562, -6.0460973993600238, -11.514094016830022, 7.2250024006000091, -7.8426213114387204, 10.647716150585898, 5.7539405508617296, 9.727218535739766, -10.217949794886991, -10.197658817694322, 1.4534950594678713, 12.10682632749001, -0.51088307163622715, 17.710760548825679, -7.7470194812395397, -24.372971692573486, -6.6052580469808717, 8.826482956514015, -6.7872955696686779, 3.6389619856040674, 9.9237321927880782, 12.100520790781362, -6.8842633676573595, 2.8844843405481937, 13.672108533544661, -5.6338295492883859, -7.1944131155704678, 6.9746870716875398, -8.2312590639291852, -10.25205738032861, 3.9564297173352139, -11.16342115946062, -8.4103856915642865, -3.86058459788803, 6.7693385059336668, -5.5093604081945458, 9.9112156966838256, -11.829917793796264, 12.06350448472004, -9.8908904770778552, -17.725516485129567, 5.0710728367340741, 2.3733785626266992, -12.373813495428958, -8.2010211819107539, -12.301300323962623, 10.576063861117305, -2.4429576335852246, -9.8126936984062763, 10.720987427999063, 5.3468144210345949, -7.436093608771988, -12.085562323273949, 9.616133130427178, -7.2337117418265358, 6.590012489497771, -12.933819456719151, 9.0992320680750058, -4.7115096872358144, -12.444448996962361, -9.2431835291508904, 8.9400870181220906, -14.84487535501597, 6.9572855730306786, 8.679259378600257, -11.728117564638417, 11.57774167266283, -11.089244669418909, 4.4545841055164113, -10.471036138424958, -7.9268850048012363, 10.006310688982033, 7.3307629546995496, -0.70086411051328346, 3.4399790497959652, 7.5780305602750353, 15.952535940468001, 1.1236075069228646, -10.56946563987197, -16.455271371728593, 14.943737550316991, 15.270538328279843, 1.8246123975329285, -11.861267836196021, -12.897409417413272, -8.0295182717849976, 2.5085092290718261, -2.997769928368061, 7.7106512520538253, -9.7986312114017196, 3.8597867083890951, 14.715042117673541, 3.6286772784703238, 4.6804229784596041, 10.468442660987332, 6.0309605373905297, -7.2836222700763322, 7.3372979832476464, -9.125874340732242, 12.431154776537063, -12.652059501141041, 8.520614267493885, -14.669291764198016, -5.4369263583494511, -6.9272239504642288, 14.411503339302335, -6.5090359387453871, -3.8249288367587844, 6.226877964919483, 5.4872378813688707, -12.071286274848809, -14.839631376528764, 14.929556186968613, -13.550466083272015, -17.79040452965922, 5.2176515285150078, -8.4073909354978511, 13.152357868676932, 11.880434179671278, -15.154722117187848, 3.3578570344364098, 3.7992951070371852, 12.544849221875657, 4.4664223998223864, -16.02563218730095, -16.858694781271584, 5.8423687431569373, 14.717494305248145, -6.3014233972716296, 7.8246512200173655, 0.2490959399462627, 10.09774947224876, 8.2302536611399972, -2.0230125836350608, -10.877543890130998, -10.315299910440396, -17.814418691884743, -4.7984509876179366, -10.569732541659832, 12.468245506360125, -8.1994351150315588, -8.4938440033843783, -15.646554844352739, 11.104862652426069, 5.4254710709054565, -7.075912451839514, -13.038488980503107, 8.6283602505517099, -0.1897762834069755, -15.926221800862628, -9.4620561439869952, 11.028601034997564, 6.2202218101379954, 13.01838761394424, 3.8814455959068872, -10.571348353520641, 9.3930545668475638, -7.4486485829571807, -15.896920034679038, -7.6634637506716583, -13.744383772875613, -16.289316553121051, 4.2240572521775093, -5.9728476753105495, 1.4435980912356212, -9.482201269588181, -7.1075995048298424, -8.4496788887326719, 5.5233585701859731, 8.8295065675835449, -6.8321409197770491, 14.622652588625614, 8.1030077299922656, -5.0997213512339847, 10.535820013561885, -11.687469584683409, 3.0547169868379771, 8.210959869395893, 10.201179428221021, -11.658463276051274, -13.563724058479169, 11.01039677555352, -7.1382476676607203, 14.955134349802455, -13.750666848543476, 10.162311270235616, 5.7884645703783697, 7.3371242692507819, -9.6841606635170585, 5.466449250298048, 8.4163518309029381, -7.1508542487337046, -6.6797959016182888, -4.7449989886325188, 2.4393509869405792, 8.654752655597532, 10.070879973393719, -13.17581052395726, 8.5470611298539545, 6.660259185215466, -6.0653871786400737, -6.5193717691612134, -12.615899043092323, 6.700881216282939, -4.8478946577189745, 5.1988868211607864, -12.549358461765644, -10.045744010088018, -12.380860324318006, -3.8616068170109248, -14.465705737907983, 0.4164829268257374, -17.143567612135136, 9.487366827722223, 12.652721901108753, 0.7645899772346989, -11.920812995054151, 5.348021509175628, 8.3879926788022008, -4.6246359904401313, 11.089899173175201, -3.8332542947304775, -13.36196018971258, 8.2464982273107097, 14.657515986404208, 10.904966172392774, 11.533578255944192, -13.982006985588614, -11.973821478795168, -16.592644946389242, 9.2836692767439004, -12.678645783087854, 10.730932446196368, 9.5849200107862327, 8.4498461340685918, -8.6907116625889529, 14.156816081594213, -2.5856081507256512, -9.2993749691896994, -3.6239666126178607, -1.8399557052395836, -9.9970546829752251, -11.017332480853435, -11.692178962270885, 6.3025733321249016, -16.175906955071767, -14.423994620868056, -14.689511946206805, -7.2353003125032167, -9.3660212630661839, -13.858073820033896, 4.7709918994882639, -6.7026088232668739, -10.527782639004828, 16.58828557927492, 15.050247187970289, -4.0564185563228934, -10.640020339068798, 5.0431846567205971, 10.934348304548614, 0.75988821460881439, -10.291366703091549, -13.942020188031572, 14.135017480152827, 11.151498767692816, -11.537353350061172, 10.343082453782436, 7.976541387752091, -3.5774431227145778, 6.7912849734238856, 1.8417106851238594, 8.8764923317563689, -14.359256236175909, -5.6171451890921933, 5.9817930874266256, 3.2031461221092781, -3.5231009274983971, -14.863876345356418, 13.612377512426715, -8.9030335281364348, 5.1285813990983709, 4.8771312118802621, -3.1813763041012044, -8.1658030154444532, 9.2635478384894121, -11.938316318486482, -10.581389864174858, -9.041740376889754, -11.289532586451648, 9.8541909326330934, -10.813754378648875, -10.992626098956032, -4.2128060145436059, -13.803513190675977, -3.4047166821717285, -14.699309096179331, -12.322199151029571, 1.9847013546589598, 3.443351936013523, -7.7412573332668169, -9.4014738152531816, -6.0936722951459252, 11.249057062872248, 5.3612317349290048, -6.0934505412619844, -10.329491262921293, -8.3782268065652321, 10.610705115588038, -7.7383153101209938, 8.5683043797354852, 9.5214421313463742, 9.4646448974772674, -15.945188235432587, 13.571842719150663, 9.1766386061343823, 3.9788060864638335, -16.400242920289237, -12.152955170027367, -11.743525499640301, -10.778431692576483, -9.560949750398839, -11.274506489189537, -10.497378072608422, -11.313774108583567, -8.6889440492171826, -16.999837953521492, 2.8463220500405759, -9.3414733746083147, 14.505309388696032, 7.2740770646355823, -15.216612609375215, -7.7754295642857443, -7.9668693810493751, -11.838336074962589, 9.3302243430363134, -6.1546909317578038, -11.643770269023584, -7.3067290482575826, -7.6586644572207598, 4.1554355791738411, 5.5784827988725025, -6.6788226812914591, -10.099712087346221, -6.812608788772855, -8.6942723276748133, -9.1414982497263626, -5.5404435688554674, 13.782301424897506, 6.4913332097552408, -14.843570407301076, 9.1090159582398744, -11.810479272023766, 10.734632284091132, 12.106233609286406, 1.2074129428018001, 9.05135706765188, 7.0513320487712221, 5.7063731455704252, 17.827025603920255, 8.2204534825947988, 6.859838386896449, -17.066087459633668, -10.546186910811119, 12.544407506754297, -10.501953033608231, 11.631217929282226, -7.3247345033456455, -0.30451282566541621, -8.8097804299616289, 12.580754884209387, -2.4535950387210703, 9.2528280654920945, -6.6762373246501507, 8.5487856314147361, -9.8862934311079176, -7.405954429775278, 11.460818356885351, 9.4241123506707218, -6.0650535086957591, 11.749931801221361, 13.45158323366806, 8.509266618399371, 3.0990921451133864, -11.845686618745093, 4.6809017476948664, -9.0788995203187035, -14.154172714949322, 11.436663871420148, -11.686823110591192, -10.466322347645878, -1.8093094588126659, -8.2842513297508678, 6.998530934794041, -2.8130875381789773, -4.7458503858358174, 14.892214325455083, -13.297630549395505, 14.137398522674463, -5.1741407656371132, 10.811880263388231, 7.6909240450423546, 1.2020066622797796, 8.3882554040760446, -13.296889605096078, -14.12122762385526, -0.86913405214011996, -1.7012640446050573, 12.135944269100591, 13.696947616128121, -4.5178290393967648, 11.379039879071998, -17.142332699109016, -6.2502893853176538, 14.551005043468933, -15.922443449630226, 7.9749887358427554, 7.5006183839537428, -10.731307185445075, 11.828405368248815, -11.242740313773945, 8.6857287401789396, -2.3357416563180076, -9.2522949403141723, 10.057172114119057, 4.2142804964077794, -7.25445812349398, -4.7859211707096279, 12.212717205630641, -0.68060465039856421, 8.3585750011161384, 9.4355684709667997, 5.8736217498953929, -10.357680904873, -15.182609723791906, -10.528438249903205, -10.728845332160351, 4.4271186570969041, -9.5459159618972773, 7.698786708464044, -5.7616256574906473, -6.74427916594568, 5.0713712230747952, 4.9757324493057258, -7.5822193975454732, 2.1521506074067127, 11.702619296651129, 2.475868836880037, -8.5152128927626887, -8.8176272081621523, -6.7396490012107382, -7.1103087325178862, -12.249044472908748, 5.7223187192045835, 6.0785970538718885, 13.311388408274434, -5.1967232459428514, 10.616058764924363, 4.1131834199366937, 9.1157637550044708, 5.0981827919094043, 3.9623438215809581, -5.1277684895200872, 10.717366089367347, -9.6119167010571456, -17.671933631733026, -0.93466484572541053, 9.4511618566836688, 0.51145591409598801, -7.4842698912260595, -12.965780155817985, -11.049283246505306, -9.4204398537725336, 14.713331608978752, 6.1294522089617445, 12.762571544243462, 4.2519976479727246, 11.581799865407062, 4.0540310044195316, 6.7583036711124178, -8.4596629969850596, -11.555561625120337, -13.223361797635503, -11.022881346403601, 7.820188150462851, 10.050313550691401, -2.8748772822692796, -3.975284267526737, 10.165011610963463, 8.361153496598952, 10.23454765876409, 6.9861352278001991, -14.063066120834387, 5.5703634980353156, 4.5720288674742182, -10.208336872812145, -3.8841964569917136, 15.871358616035476, -10.375333061106602, -17.028934392886523, 9.6095097993772214, 2.8612197492337277, 7.3984151374847418, 12.882442279479097, -3.8593872267618985, -3.3505651418910092, 9.1400352361857795, 3.4607159608677991, -11.802758101252648, 16.131696084668302, 4.3485520924992915, 4.9299693363247012, 10.20608409504235, 11.350181288635312, 0.71079817132091727, 7.1011529322063716, -9.9921413971440192, -5.8089676277937103, 21.431868331238753, -7.0747060210352215, 12.069527047899687, -9.4828998378865119, 10.122263948520756, -13.538606127789073, 9.6375976702501429, -4.4100604567201094, -11.99790766311845, -5.976372779813337, -8.272146596627568, -8.9450436886845743, 1.9542103075796229, -2.5876227697187235, -14.368094001362385, -2.985471188013614, -2.478307267502168, 2.7456040916726456, 12.581031236480218, -11.4758779722525, -15.599590155208737, -12.992869206559288, 9.953747866291776, -11.025999481843595, 9.7008748889831633, 9.4677048052865693, 6.0665148799454283, -11.021027787278838, 4.1148665510329865, 9.9715457939675805, -4.524015231428284, 18.833454602793879, 7.5018420072802252, 6.536477074456216, 10.39532612887518, -7.7192567198190574, -5.8633746049064728, -9.4739325485451946, -12.966876834521914, -4.8932353347242916, -7.50082678824488, 7.9240662467055403, 15.473285728117284, -7.874821177550495, 3.9913525758800343, -20.203393732375613, 13.177667766939793, -11.905585671112627, 8.76829420558043, -6.6904194950549218, -2.0990812946584643, 16.352167450942488, -8.6839871579774304, 0.65535704062993771, -9.0914298192610481, 6.226432112620512, 14.414606788199343, 5.3327990949329722, -9.2825422873145076, 5.2444348695624967, -13.52476436519694, -10.565017103537128, -7.9458267805510605, 6.2385267794539532, -10.620897086888419, -14.02491825647715, -17.249193736529822, 21.822546537373011, -14.525572761291961, -9.6352912168501117, 7.7923236942745477, -0.43905931375127905, -1.1677511335028592, 7.9195608711842009, -1.7261157613467151, 0.81574419315180335, -6.6258630940789853, 11.446710993602048, 10.423767215464459, 10.131515821910522, -4.0813762630157786, 5.3099875815632895, 15.005238483277349, 3.9458100113193013, 12.997541564501073, -13.401349640520106, 6.0898523220056484, 8.5430795315739463, -6.727566986421512, -6.0976964106078926, -1.5514248251358895, -6.9251342133096534, -5.0010498589221326, 19.36294632958224, -10.995748094036278, 6.8230876895289425, -8.9816761374312737, 19.252689002798032, 15.018231032342973, 0.75032883111291693, -10.512852145797988, 15.952636394768637, -13.876019658000088, 7.4282002133627536, -15.007337649734009, -20.867628639436518, -12.864466413292632, 12.282886216105501, 5.6117260976193588, 7.7243055425354985, 0.74537471606410499, -8.3753274103443793, 8.7297402808334041, -3.8752359373415373, -7.8660891683218042, -8.8027160564205786, 7.7988010166838881, -7.8129632889899385, -5.8353090570942738, 11.438552747844, -9.8854956847581263, 6.193488211617348, 5.7060858140643864, -5.8417400083956581, -7.1659403388854175, 8.8621684734697617, -13.828395956746165, 11.58722476958626, -8.7757625064865632, 9.7638601085689327, -13.63897121774294, 10.692146632523938, 9.1954815513953641, -9.7262358263602646, -3.0742135000084518, -11.831625275045802, 10.346151064081882, 13.860225574621548, 5.3434462647847401, -12.667486708061194, -7.6071393527596891, 10.497824234551809, 9.1398524858692305, -4.8312688599490299, -9.6866353191391568, -14.936854315955886, -4.5645292398393735, 10.306087472805107, 16.435616799434957, 9.7618939189542857, 7.3359442918945499, 5.4777235052650965, 12.827631906540597, -9.3557044067803972, -8.6207571310957753, -6.9067986860795303, 9.4266173165645881, 8.2700014055707438, -14.396299560527304, -9.1945433850102294, -5.0742673058143186, 5.9363570201246212, 9.1825801770474449, -14.26016478123667, -8.9647881473585791, -10.999991358949853, -5.2643587807317358, 17.966460043223208, 4.5038323715849113, -7.3643627119764705, -8.0021495622334466, -5.5012765171131761, -8.6385795076142866, 10.642859565399243, 16.418157809689014, -12.558310319227193, -5.6944436186565675, -16.620579134203229, 5.2993074909249556, -9.5535858720998252, -6.194850562303122, 7.9283758132069577, -4.3938243314441445, -16.08461551423154, -6.1053020627578558, -7.8156662613007883, -4.2010902685294225, -11.260598796472106, -17.361798229363732, 10.523477968271544, -9.2997205134904561, 4.7239785905440819, -16.55663724338849, 7.336212674126954, -6.9284736037251049, -5.9733477242286268, 16.958437027673817, -9.3688626284447736, 12.335069283139083, 4.4003768017589344, -9.6375650205771759, 4.3025216992304607, 8.1709809734149754, 6.0840979096543046, -1.7791701081822009, -9.7212268065403915, -6.3728373407996992, 9.4709301635928664, -9.8099415495718265, 10.216669472304444, -7.9089613940445638, 9.0133309428613888, 15.233159549099527, 14.443197589960937, 12.315849008505751, 15.22683390790605, -12.204208274855294, 8.0545420942912056, 11.261686524342778, -10.088714704911705, -14.758394330397744, -8.3506925495196622, -5.7190575904160488, -10.474095362096637, 6.7558531383042801, 10.839875782803038, 9.6223187492013871, 4.0011315315627671, 5.3452889051100145, 0.29628684358052387, 10.260560792716758, 10.010269925150098, 12.309818259037518, 8.3443036587520112, -5.4014577244395916, -12.309450717768483, 6.227119823086781, -0.90098300040336077, -5.9574142236058796, -6.5290358544134426, -7.443075641870017, 9.5718761708906559, 5.9045525168917088, -14.09287394192167, 8.537557668616758, -14.160598968888243, 5.8051719496039951, -6.239975019204187, 7.4524259174698209, -7.4731349725176219, -8.5239733925114809, 16.110254200184002, -10.257968713373153, 9.5898379203607735, 3.4675905258102322, 8.1300367938993361, 4.7762632339122959, -5.8974433337845085, -9.3140122423426206, 3.5847848816848376, -9.5355250106758724, 8.6839175133173008, -6.6948323819511488, 6.7933016290691377, -6.3800902026507824, 0.76093699061175468, 2.6435457529778015, 7.4138748481937027, 6.0247308500592567, 5.9280863177297123, -3.8920878288506016, -8.4621386416944677, -18.750651564949948, -7.6188990491921116, -2.1334205811758622, 8.7540093304816082, -9.8600851053842149, 16.342033110995256, -10.800872299968921, -13.998298573757474, -3.2934871871896396, 14.06180118603365, -9.271874228911658, -11.048285130582032, 6.1595626190926716, 8.0570216147192557, 0.66340001966893403, 6.5132884000227351, -5.4201122315987309, -9.7412562635013984, -7.0486139617141514, 16.981384687745692, -8.7022380510622721, 14.647877845477861, -8.0820055541788722, 7.2226523022245761, 5.3790569210687584, 13.728807132743302, 8.5317048523035623, -2.7316549253863927, 5.3846139594020226, 5.4103146460176523, -6.694268736004001, 8.7300406717059573, -13.347383859719848, -8.335174873152722, -10.945696086225201, -10.4875598953527, -6.2891459907155456, -9.3671321709341981, -11.585498988590738, 6.512870728010193, 6.33239714027453, 8.7682544573530521, -6.7439993019333704, 9.5026784978124166, -7.0246760343330656, 6.4372813340255446, 8.1945894173399711, 10.262887249545706, -7.5060931723177706, -14.674750300787338, -13.287289997793177, -8.4928309129257595, 7.4563888548291644, -4.5195874938690226, 8.5442291590063935, 9.7115273312730501, 15.092119744113154, -6.4263051953856785, 0.12831365323535676, 8.7640439297438597, -6.1460218943241305, -10.889755958467752, 13.67769695151666, 6.312988951937812, -13.227320725213115, -11.784825668882982, -7.6748667604861192, 7.7787450544407344, -9.3711259762266828, 13.023365017019263, -7.0200584128511876, 13.494925467734497, 4.2227722997626005, -13.760223253172747, 6.1777636365323456, 12.067306433588751, -9.9155428829691132, -6.5766064428842856, -15.151662906193899, 9.6988065214723864, -10.152731302282174, -8.5735676931961322, -9.9418795299730185, -6.2260760507460198, 9.447544122507308, -8.1319644337468215, -4.145324424570318, -3.5485961822808565, -13.467769122062073, -5.7514070303621585, 4.2372927865136871, 10.111694661148967, -7.4186471554037379, 11.430760000153063, 12.312843067890855, -12.810688665750249, -1.4448074235360808, 7.986361807585828, -1.7676683131382003, -14.521209725348982, -4.352705664193615, 18.914853195668275, -1.5113121651615482, -3.6397864185997131, -8.6196558356553385, 4.1199321080626019, -8.4888399293551817, 0.57614759104880209, -3.8170562650576274, 6.5118953364681147, 4.0953213386352472, -5.3421050165325257, -12.272356482934088, -3.0358640779517354, 4.2481637384966975, -2.7752337082527849, -8.0160326885318369, 9.5768553793879043, -1.8524775210440534, -11.009861394679287, 8.9742068648070266, 12.471334080830026, 9.9992644688047552, 8.0039800551702207, -8.7981872925635614, 6.6433407975833738, 6.5480704488332835, 7.2841246634294423, -6.3252439319780178, -6.0513426125451124, -6.3988334931556485, -17.469331458693546, -4.580254889517116, 8.9993454898016569, 3.2238207283793323, -7.7799510625287303, -13.803751678166556, 9.7121916487763045, -8.1746700971358059, -8.8126126733994941, -4.8155492973679186, -10.804453969532291, 7.0086143651800121, 3.1481410707654631, -12.810183673768677, 2.3362046780839187, 5.744619950986845, 3.8643342874084374, -13.249939418679734, 11.415744222471059, 12.554737671029878, 9.8333778447831257, 5.0957400772063437, -3.9991407502674661, 9.8345770583999279, -9.7368996360840274, -19.449417624721992, -7.5133274868764675, 6.0619042605430966, 7.197156700662827, -7.0063836107615485, -19.263860108465263, 13.028208109141358, 7.1331219897936977, 5.4720228485501652, -7.3579311406347925, 7.1801636071660138, 14.640572831964421, -3.8340913302192701, -3.3062445113231744, 17.400159670258972, -7.1681505547822413, -4.3542281808553351, -8.4546164816007607, 13.421193429578857, -14.905121149794782, 8.3143744117862095, 4.9730046756217972, 8.3532232015837344, -7.5969825424753346, 12.3177910080973, 8.7607875220531426, 8.5127047792303561, 3.5774587189097899, -9.6494548210828786, 7.5331539937229897, -7.4747114284701679, -8.6591660587053916, 7.3468316363038637, -3.622337543593344, 0.47384090625185044, -6.0463560480716252, 8.0499483448215017, 9.7022755442800293, -10.776004671468062, 8.3543427603924503, -5.5360568466131905, 6.0186808121336659, -7.3543970398820848, 9.2806086183805689, -12.230546104506987, 7.4673092848302733, 10.975472812952574, 6.7926415721593818, 4.8749321283736755, 9.5323516120815874, -3.0280886662753885, 5.5571898549900514, 10.226559964818154, -5.8034190385368811, 6.5444311969384019, -9.130374827280793, 15.819448485436817, 5.5538576215556326, 2.8637826501217618, 4.0706674231610558, 6.4597011042272623, -8.3735378854139135, -9.5667300995851061, -13.845901714228189, 12.714093428899416, -8.3628461969588557, 7.5987675327409425, 5.9272125723131186, 4.6950385206484189, -4.8195825770873233, -7.908711363482686, -6.0290697566338824, -8.6859336035752293, -4.5193059923378351, -4.5940077637319696, -4.3311584091869832, 5.3536488354562275, 1.9921280360174241, -9.4633153479117045, -6.6570051760469031, 14.208357863252012, 9.4845107231608647, -7.1832992233853066, -8.8475487049318655, -13.630287949249563, -6.0719107719352952, -14.274798405390152, -11.162105305503859, 13.054901490270078, 12.995371746588807, -13.146715820058548, 12.945646134893682, 3.0460739976722446, -12.155229015360904, 2.7412678887489506, 11.780611735174173, -5.3341954653614927, -10.032480770112713, -5.8447538785525053, 0.52725472542845364, 13.379456926012971, 9.6135830134952744, -1.944448284069229, 9.0502993001659355, -11.346127451101133, 4.2434870682337369, -9.5043367843183457, -2.9775157830606012, 5.4193649803215109, 5.9212605221007886, 6.8739591477125153, -9.3618138585411454, -11.34734301929147, -2.8580136600449677, 9.7314938797272301, 10.716957084696832, 2.261487615173849, -11.936472547545375, -11.596497065616539, 8.1683014049841454, -1.9741314291525349, -3.8079032870338203, -18.998387033650793, 14.785213606318443, -2.4675987407306512, -12.092457768834166, 8.3055089082183038, -9.8880041321383381, -12.17693749962149, -5.6119106856770609, 9.3346742365750952, 5.9978824704833622, 0.13754021975113387, -14.894732183908136, 14.747292229007831, -9.7097733323647439, 7.1041665937562009, 8.747982309638612, -1.1124715705618149, -1.3453533016361534, -7.2336827315963976, -3.3065754079116902, 10.610359888132521, 6.439770888743964, 11.42420401634142, 6.5388842458764689, -10.853598132676623, -15.353822721495742, -8.0675862924724751, 14.459019981256141, -12.566396596207603, 3.4205186262164231, 5.630487549883056, -8.073684341188935, 0.82126057392054652, 13.882060246971731, -11.094144048902541, -11.389801550560342, -10.3187260289045, 2.991571648758196, -6.4911734708363165, -11.245496138683489, 10.9851776336762, -13.130504876870628, 3.7733165504957942, 8.4076079303113911, 7.5529546967120051, 9.1048736341912768, 2.7287083950923141, -6.4019633593747214, -6.7703960792021753, -7.6283872602484184, -7.6359394699956251, -11.153289601654617, 4.0727793884727168, 8.3062884746691932, 15.72392064712384, 0.9811577968163786, -11.722310671012934, -11.342923130703641, 4.6538782013854689, -7.3739066993524025, -5.8947067956510093, 11.486762613574625, 12.413880145399126, 10.786268654735865, -14.830950842039924, -12.718664091764236, 11.838893611398694, 16.960744319691706, -0.90885433404131177, 11.805632469674961, 8.787147329142396, 7.4670599584679005, 13.783711428147573, 2.6889832573487715, 9.8277282208337393, -12.621979239155044, 11.900463485129047, 7.3974913674936378, 7.9790082301381764, -18.460977129782226, 9.6868989422260476, -7.4849707679692381, 2.791279213037106, 5.9072811103444005, 10.027746084723706, 5.481378194108391, 0.94657543605496242, 3.1638084348680802, -11.565804912112132, 8.1295825065418228, 6.2454385368905463, -8.7244225637155086, 9.2949740971114814, -15.413745662976126, -9.2767171742637053, 20.883637553321279, 2.1729042705598971, 5.2123425513190229, 11.260222333457566, 5.4759025599371576, 8.1537344500122764, -12.294121929916995, 8.802476739158374, -20.703918322925325, -9.4123075195898913, 14.838015503157582, 8.1809389421993437, -7.6381202529000944, 5.0731354695422288, -9.7523696522120105, -13.519239387616903, 7.7323479369959101, 12.148583040284464, 5.4807070910189717, 4.8696229713233139, 5.0087903276064836, 6.4402113569592467, 13.277426855835845, 9.6524651881369721, 10.826902095836219, 16.183489895274345, -9.6318043844967534, -1.373132442179763, -11.219593888898418, -15.004319828107285, 18.258393722812315, 3.7354456310459385, 8.0651749744359105, -6.5164044554554748, -12.565266643553137, -12.030885912645394, -8.5404810535779507, 12.314165209697041, 7.2947873166397219, -10.819275536058335, -8.0129408622894012, -3.8121662128657552, -7.6091124585846721, -8.4798365873122474, -3.9868453977970675, 11.38629202057937, 3.5714802941824, 2.9518831049273677, 6.3322250488086071, 11.580034774188221, 13.479927163429085, 2.0786137569475098, 7.9330224326080057, -3.6943001859225055, -3.2256160391289095, -12.811450358156192, 13.541505165687818, 2.6411149013180362, -6.3489619114245244, 13.373338952003571, 12.628299743258562, 1.0027687748564038, 9.2077227922659706, -13.768254699816865, 6.8324600540916247, -14.524379303203943, 9.2715316925285709, 8.7678396133255916, -7.7000840765938703, -7.6752994649649313, -6.9178464084480851, -2.824297046557938, -10.067962153214038, 9.8382780470022801, 9.8343360207768367, -10.442346656794413, -11.531825845771756, -5.6955603852302623, 7.9952115376447042, 7.2796481632297372, -3.9815702225402285, -13.888827599999129, -8.7028698626538308, -6.0635186121417952, -1.0917426165389645, -7.5444189349932813, -13.502585170286313, 5.3738984196649149, 5.1002418292985094, -2.2415640749653791, 8.3993581378656117, 17.872303247028064, -5.7930453662663712, -9.5610560588597515, 8.0594903059030294, 5.9955468570765671, -8.4016643820784811, 16.017479926774133, 12.457791465479348, 14.251050296430238, 13.550966058757862, -8.762120073439311, -19.568799520529904, 14.473633275887034, 4.7150108398434316, 17.622896812791758, 8.5532109821391256, -7.8861564007563967, 2.8018084587073706, 11.238281768369326, 19.036214400042667, -12.627994340787289, -3.229926146308185, -6.2106083456766665, -12.029815325633603, -12.732678066605525, 16.114114027765005, -8.8878875737603433, -9.1952288940063198, 2.9514348736209386, -14.875969949421576, 7.426537438524826, 4.0988218779588257, 5.1048469008081083, 8.3561664083509974, -7.1680838371486972, 0.079559302266173665, 7.234447616829998, 9.2153180384359938, 11.380502523658766, 3.7813665464468564, 9.3571471630839476, -5.6198950965916659, -2.6112846832626295, -13.074922193350705, 7.1458325396315745, -6.8553238201936848, 14.037347515845747, 6.1114574644258219, 2.6233447927944442, -6.6962191818230385, -15.054560815064955, -3.8509653059595634, 5.6193134186600444, 8.4632418525580135, 9.06084843255511, 8.7155312766304451, 14.146656363113056, 9.4485647712524159, -11.894790263269002, 6.3630883640874796, 6.0659222594215532, 9.3423771994935656, -11.56898779218068, -12.569317170483185, -3.1542401369229229, -14.317618053977442, -16.07713062656423, -13.866270731830225, 8.9731628045127234, -2.7568654754219311, 10.650056946180007, -0.38554919912492391, -19.636918428478758, -7.261084813408365, 18.261599502237281, 4.365909470450525, 9.4604701736004575, 9.3379768195852684, -5.9721332777841125, 1.8392337494849149, 12.236588220433115, 10.729755869202716, -5.0163355160529157, 7.8745146479874295, -12.210717308250283, 9.9053843786672573, 4.3176048616878999, -7.1321033170654076, 9.8376099896153644, 13.994875675654404, -11.800822210877568, -12.467732532409068, -4.8096053846346782, -15.806886200214143, -16.011053902031289, 3.3108259217896991, 9.3708906824355758, 4.9387906035182194, -7.2811664484622529, -7.2283659694812323, -4.3994107454794076, 13.986557692605393, 16.267589496305209, -12.5211237853249, -8.6162733581098614, 11.875897506788261, -5.7924040049014529, 9.60395357854315, -13.371234187638548, 7.4044876769030976, -9.9169764629346115, -11.960026798255779, -5.6929530819152605, -14.080996179546117, -4.9741440758010285, -7.2894457453898616, 1.7385165163304241, 10.659988023147882, -1.4616437274123262, -10.074637029156758, -17.086127613435742, 12.235716666711239, -7.9575522168496349, 5.807625236075423, -9.2779276010226894, -16.480345338445041, 9.5297786981975108, -12.287759229285887, -5.793455825490601, 11.046928184816098, 12.263531584491689, -15.868613864191206, 6.1089590101381299, 7.7043039642206841, 6.7725058819006509, 0.19765926454723443, -10.92190123421037, -8.6903416862217444, -3.604954070470813, 10.780882529813848, 7.6342821794581255, 1.819027960022801, 8.9622472070627612, -3.7731185676641705, 2.6511830669363676, -5.936256145443763, -3.5065708446633179, -1.6756694810431396, -9.4457045728120921, 5.1176087336867671, 9.0843869892318665, -4.9165468247185249, 9.6190501542416023, 5.7720688303614107, -8.8665231351704143, -16.776765049597191, 5.1935200585542409, -7.0317717992679913, 8.5952975711448651, 15.701379400382201, -5.1747900955843287, 6.644409479106538, -12.294043736596755, -15.483394542555223, -6.9161043885800755, -16.902160692468406, 13.140408586007654, 7.9585367038084494, -0.60142488467217781, -10.583573691246794, 7.6570812407643905, 10.488467203766263, -12.229594163883426, -12.105180821633089, -10.100333917660924, 10.582889173673999, -4.3524138084056574, 4.1598294177868027, -7.7208623056787218, 9.8373959423124191, -9.843437056863948, 9.2758547221503864, 13.917929858415311, 9.6348606573169207, 6.1603576344825903, 7.2761550553448275, -5.6132644264075031, 16.925921888188984, 13.099232943399601, -12.169951256692608, 8.0341465714582103, 9.5080586839310293, -8.9153040306547862, -6.2778930359354987, 0.65702865949253608, 6.1455975831103666, 3.4956736733487177, -13.101966614043903, -8.4917541060921486, -7.7703858331616402, 2.9540207920840338, -2.8250454453694225, 16.471572201031012, -8.3401753077338174, 8.5209392200398799, -8.4562622463700912, 5.3451445327350049, 8.3227551961577149, 9.5505384761710648, -9.6168853444985132, 7.8088619634040271, -10.010194534199005, 10.407541359870157, -12.730901681260953, 10.062237956980878, -8.301093581147164, -11.221782089013969, 5.0699226682185836, 6.8670809315755763, 9.5183305660198574, -12.477293633009369, -3.0829984725185011, 14.251075736126907, -0.50381312202666373, 1.3945668674871461, 4.4380349292124333, -8.4792849992484687, 15.740298722260704, 6.4916661990457039, 9.8781328856963952, 14.524311425947424, 8.623227064986775, 1.82594923740208, 8.1658888991281113, 19.519909829772214, -0.71626812905103776, 1.7182300090879543, -8.0056305624195137, 8.8667806307632393, -6.8903486607996696, 5.3931378831660304, -14.284745953661838, 11.800779205285183, 11.828892295047666, 11.579327959504184, 5.9644626407280574, -10.637566489206868, -6.3308930175168046, 10.362896991246821, -13.136681551103671, -10.69114929291889, -8.2804076555200332, -8.7620956793565572, -8.3349590113674843, 6.0390086996968186, -0.92206940007654714, 16.688147291793179, -7.7396944231238889, -10.556885976235911, -5.5034713893873217, 10.684323799177031, 10.164740010619706, -18.644906837500962, 7.8255279920941758, 7.1184183927575999, -8.5879829996361785, 10.058536284915368, -3.9577147638427337, -9.4390455070755355, -10.813502747434075, 3.1725069430189179, 14.646645070268773, -6.6958720302719321, 7.1891012020482057, 2.776770380964142, -5.3045752723276198, 11.024688310314966, -8.8716706651748609, -6.2182144207648875, 7.2174155723591822, 9.2363647659736916, -0.13811663085025644, -6.5095852199241193, 2.7850661520962201, 5.7288466875807895, 3.8404238060339386, -11.979694823507765, -8.1566218452888641, 8.4872181623141802, 4.0684730663558621, 9.433119896225687, 17.452359798566942, -9.1852211978356539, 3.7813711040017632, 13.687886395835575, 8.3110503099043083, -12.263855365231695, -0.29265821325473718, -5.7786710506977288, 0.32000221107421295, -13.152220176187292, -6.5995903240006717, -13.649334703564579, -7.5516513340805105, -15.16406327996164, -6.7664832291371457, 9.9511431024063146, -11.833825853245724, -11.726480937964023, -4.6960938337568416, 3.6909792826776235, -5.7241654435325771, 0.84009221550172219, 3.981445765587416, 8.3193977689219309, -14.855487044550641, -12.13768399449228, 8.2575189786919658, -12.482209307351347, 12.288265749008579, 12.92588605732125, -0.89651953932604156, -17.178851924529209, 13.465060130471429, -0.66179931634497746, -4.7361380949519907, -8.5915497494217874, 9.8633923545024036, -11.075503948766817, -11.521258634171812, -16.937563321814299, -8.4089961555477153, 10.316744468138424, 11.068755254870558, -12.812559137681774, -11.716000182253042, -10.794814834414403, -14.695829972179469, -5.7734367211811755, 19.281663549262714, -7.7079679114509911, 18.982133221850518, 6.7278265135517552, 9.4200950070653935, -5.0327780626629206, -1.1472749532062567, 8.9655615288611052, -10.289968622568939, -4.5317886320427014, -5.0717832150149214, -12.403158065152988, 16.054879478569319, 11.910769204629043, 8.8721630995550154, 12.946670225247273, -20.040326823281728, 15.061437997065909, 12.371159663686912, -5.2434241432319393, -6.539600733678907, 8.9759004731301122, 10.399696431036546, -9.7820158235043255, -1.8655127741351087, -7.2564512028104291, -9.2402317505484497, -15.743596514833451, 8.0518221334585913, 8.064389141916843, -5.1750464722524647, -1.2577099412771857, 11.088648050953193, 14.734664098438651, -8.7257834129372487, -4.9071340910761805, -7.2288497019818241, 11.368753439780507, 11.259515603467754, -0.9190234527098583, 10.508309728639846, 5.5014236641516137, -1.0062376510942861, 3.9510038373896794, -3.3772476520373296, -12.298064413396816, 1.1518807046710942, 9.8347990668982277, -9.6697877164226895, -5.1708006319540161, 10.90534178699129, 9.0780310964231923, -11.06717326378323, -10.193153698637712, 1.6370922062264599, -1.599701860652494, 7.4493340597532782, 10.079750519485344, 5.9817167134058051, -6.1883642950981734, -8.7859917448021054, 7.6925693496530796, -11.726693947959594, 1.5292664230077266, -3.7640503328337047, -9.2026303785959076, 8.3703384923817321, 9.2968574133785165, -9.0282964165522213, 14.082662142896044, 7.0391904432891064, -8.1892402659133481, -8.494960679412987, -8.3171594195215324, -4.1204583607408765, -12.464929795412097, -8.2800259108270922, 5.0158695467591343, 2.90504266938304, 5.5802620759772603, 9.6053945607379294, 7.4665086294967553, 7.2836197716168538, -6.0797636096551519, 5.9192672325212143, 4.3197502963078556, -2.5794586298505413, -8.3804827856018385, -5.7616389244014083, 7.5165636982133597, -3.7871806468757891, 2.6957388838195038, -3.0339814791522679, 7.7390014359139343, 1.0179611498135317, 0.57428282151728316, 9.2486809887277968, 8.9851820183067517, -12.322228892543235, 2.1846637256927366, -6.9268224211182101, -5.6465263096341207, -9.8609073169739414, -8.0437109222330996, -2.5924823061626299, 10.799267368908426, 9.5532367964485942, 2.1510949897407339, 0.72813586085734983, -7.6316236927774765, -6.6634161974825536, -7.6995131312161114, -2.6469146283491312, -7.8927242011683072, 7.9686594739655217, -8.0858268153723696, -11.113628935027652, -4.2312391545249435, 7.400536752330261, -15.878877108958942, 5.267992480772417, 11.16296673206628, -17.540164979801386, -14.801126830818111, -11.385201143366997, -14.508310090705075, 14.464207778841862, 11.215905228606482, 8.9532196390944634, 3.1058203222772014, 8.0753828772231113, 10.559485384240654, -8.2414912742823354, -11.714805939566189, 4.7281042573450431, 12.657353257890819, -6.3043093049399248, 5.067000914225444, -14.714628033981958, -7.7444814248447615, -2.5025562382741042, 13.564851064978582, -9.4328409951276662, 10.04126088038934, -10.570084081595921, 2.3444801610493466, 7.1831276221853866, 7.404162681313343, 1.1684082688282307, -8.8884680285241533, 1.9400943416397112, -13.196562462363692, -4.5705203572273359, 11.003636571194738, 11.468673888105736, -10.534610194739036, 4.4477979444487845, 7.3667611650061362, -12.044187016767467, -11.396051178941862, 3.9462512050906744, -12.988661501036244, 10.545881026800801, -8.0309289513402735, 9.9370741830104734, 13.654579804016825, 7.0469488853837321, -10.938942295813185, 5.1800344871423132, 10.882232153707738, 1.2710853105543087, -6.5661242949766816, 9.7776412282696459, 13.321850745505881, -8.1153422577009291, -2.2941713421233958, -8.7097542589155221, 2.2618606797252978, 3.1810406025700315, 4.829995467844082, -8.8230523342209999, -7.8350849175265527, -9.1156429568037076, -11.442019665347123, 2.2127249998070249, 18.018245968154236, 6.7919203279388967, 10.818120665998064, 15.957114328595093, 9.436472994391762, -15.0724442489973, 10.177531220212931, 8.7382348206500033, -7.4439716572652967, -10.135340539629416, -1.5478693068716267, -6.2520881203409369, 21.51870984833112, 6.7814496888686202, -5.4629593689724354, -1.0810664038442734, 11.680093350196586, -1.1684404824410481, -8.8192804660387161, 11.947180907432026, -11.865540708697406, -12.073158010228243, -9.3168616660647103, -10.855717378744718, 12.832277402471462, -15.233827235544979, 3.719489187613028, 12.974696537296685, -8.75959465422536, -2.4475947054420195, 11.313184053568827, 6.9182165488811229, 12.123675956468196, 9.6442923820443145, 10.799907622549545, 1.3696427348286129, 12.109212710737127, 2.6404947713803306, 9.5435762973738267, -5.4268755145327745, 10.974370356637689, 11.459181655827159, 10.228613791177938, -2.0376202581586202, 8.5519223504193267, -15.144108617549279, 10.208111627929036, -16.074632706297336, 9.535346082793712, 12.968894012265515, 4.2926497043948793, -7.6447760416419124, 7.3591604897068219, -6.294066487171917, 8.6661482650382133, 4.3524844886549072, -9.6284187314739373, -16.389868048898698, 14.370574991274481, -8.2963813089615268, 16.504114329831857, -8.4564658970066731, -6.3969858495492078, -7.0522130158545027, 16.328014713505098, 4.0676774938327931, -8.8805902890220576, -5.6438005548253818, 10.887856323753418, -13.497382772819085, -17.229682704447541, 10.177341730428909, -10.959196430060141, -15.892999214486872, -0.39312548358593402, 17.548662000796629, 8.138747505659067, -11.081466337015, 9.3549081143588229, -5.2668052531909293, 0.59145215464277101, 13.865804154173629, -6.7446135707105945, 10.591472647241186, -6.8775928522394087, 0.79035105716724385, -0.83434363179526505, 13.426811179256797, 13.480253964577903, 7.9579945693584886, 7.8687287842784803, -1.2711852125721312, -6.5831626138029433, -10.255988526378117, -9.3721646222445631, -4.5483019698635951, 12.654546996958775, -2.2845772848784054, -13.395748226685187, 10.227730333720137, -8.9275038607977386, 9.2096733075692399, -9.1994549499155589, -4.5768838702423018, 7.4336970353205523, 6.1990136188764922, 5.392562974045604, 6.8615159418299543, -9.9148725697134683, 10.272013543022926, -6.541146389868957, 6.1996539988491746, -8.5702789915391175, 6.0710850780527128, 0.41216255793753664, -6.8452494187073416, -7.3698306482120808, -4.3788198137924814, 5.254192997316685, 7.0651978737141468, -8.3496697717376325, -15.541186410630397, -13.361062248182593, 11.869712905857645, 8.8858662456220436, 2.315280646740792, 9.1370562156627635, 10.612212040886574, 15.723923545841364, 9.3000796832012966, -12.203790919241875, 9.5229433645020229, -11.332560886601259, -11.799762316157022, 8.6718707861873146, 3.4390494326490342, 10.948206478975262, 10.351083327208633, -2.3551385999606347, 3.6593868571158006, -10.912461508095474, 6.3601915796808566, 12.644105697007012, 8.0987317607631102, 6.8425116090817673, -7.8614337809266139, -16.777952262404956, -15.092829035089149, -10.867283176676434, 9.7617585972043095, 7.0699740006630494, -0.80345056050581032, 7.2341098943011026, -2.7901743760803868, -14.023920253719963, -8.6493250885626658, 12.119156062865828, -12.565363519164727, -6.6257256922764087, 9.9530063133378111, 6.2285641482405287, 8.5890710113124502, 10.901661163934543, 1.7011000225296526, 9.2328185698429888, -2.5151197107048353, -0.78814118951465995, -6.3782804075339934, 0.77016194990540299, 4.7860592575330942, -18.091131028655795, 6.6618347947308489, -4.5537746303503699, 12.906362988375243, 6.6637236513957019, 5.4194732758517778, -5.626683563346548, 4.8295291548347352, -11.904932030289029, 9.9944164460741938, -11.027348899069844, -0.014743410131345848, -7.3410368137184197, -12.558702052466645, -9.2966083471503538, -2.8582301845790048, 16.122229949617235, 6.0332133243788979, 9.4423884847579131, -6.7953848219405604, -8.640997496023326, 11.564755524473357, 7.7370575077503672, 11.178600690994582, 9.6609341268345741, -5.0924071871300569, 2.9472182219982841, 11.322674214116185, 17.636604816170465, -8.112421382991716, 5.7980976514734257, 10.587871354585735, -10.207529594090163, -13.012906685255201, 1.6439826301840548, 4.7959168408892552, -9.1817793609379343, 15.910744159295755, 11.988413488939839, 10.225499838967904, -2.1100999951643771, 7.7773391391119979, 4.2070274590049737, 3.1789918079199362, 11.389698381773869, -5.6797986359782069, -4.7261529062162424, -6.1926650154600731, 9.5097255166801595, -4.4005426737892748, 4.8284348550831577, -7.4035564503513553, -10.371755556185054, -11.138214834764621, -11.479591917367713, 7.3492465579271542, -8.6401023000535666, 2.4737379805053212, -8.4391176745455763, -3.5699286239866383, -8.1254703716775829, 11.948227614312263, 7.880462510583679, 1.8623842706739999, 7.3888689386136646, -1.2896033177393418, -8.2116493851785464, -9.0121076446113531, 2.6038276518722672, 7.9944375021940459, -4.3649859784435145, 5.1704186172538593, 7.7846827735959723, -0.51775021699396251, -13.814395914977867, 11.155615752700793, -4.0116122940272048 }; char detected_data[] = { 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 1, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 1, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1, 1, 1, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 1, 1, 0, 1, 1, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1, 0, 1, 1, 1, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 1, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 1, 1, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 0, 1, 1, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 1, 0, 1, 0, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 0, 1, 1, 1, 0, 1, 1, 0, 0, 1, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 1, 1, 1, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 1, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 1, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 1, 0, 1, 0, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 1, 1, 1, 0, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1 }; codec2-1.0.1/src/HRA_112_112.c000066400000000000000000000201501412132000500151450ustar00rootroot00000000000000/* FILE....: HRA_112_112.c Static arrays for LDPC codec HRA_112_112, generated by ldpc_gen_c_h_file.m. */ #include #include "HRA_112_112.h" const uint16_t HRA_112_112_H_rows[] = { 22, 18, 15, 63, 16, 13, 1, 2, 29, 25, 28, 4, 36, 10, 38, 7, 60, 23, 11, 38, 28, 1, 12, 31, 57, 45, 57, 30, 23, 59, 67, 14, 16, 4, 14, 62, 15, 50, 7, 70, 64, 6, 42, 48, 9, 31, 19, 40, 49, 2, 25, 3, 41, 49, 36, 9, 29, 39, 31, 5, 17, 1, 29, 25, 11, 21, 18, 2, 8, 22, 39, 15, 8, 22, 13, 3, 19, 4, 21, 62, 34, 43, 6, 24, 17, 60, 8, 74, 6, 44, 60, 10, 33, 12, 26, 24, 45, 81, 69, 80, 41, 28, 23, 5, 10, 20, 52, 18, 13, 86, 3, 7, 59, 21, 65, 72, 34, 37, 26, 55, 47, 48, 34, 5, 44, 47, 68, 96, 82, 111, 61, 74, 30, 17, 55, 98, 81, 66, 89, 35, 74, 82, 91, 51, 55, 51, 30, 89, 61, 75, 40, 71, 73, 11, 56, 54, 19, 47, 94, 69, 64, 20, 64, 12, 54, 77, 42, 88, 36, 52, 90, 63, 70, 27, 32, 73, 91, 32, 56, 46, 9, 78, 51, 68, 88, 67, 20, 43, 40, 14, 66, 86, 39, 97, 38, 27, 50, 84, 54, 92, 61, 46, 67, 24, 58, 35, 58, 37, 98, 85, 73, 84, 48, 35, 57, 16, 26, 37, 65, 32, 72, 95, 107, 33, 77, 33, 85, 105, 106, 75, 56, 71, 79, 59, 52, 105, 79, 90, 93, 100, 88, 112, 86, 80, 65, 42, 106, 100, 93, 94, 99, 97, 93, 101, 111, 99, 83, 53, 85, 95, 108, 107, 41, 109, 84, 78, 104, 101, 69, 110, 98, 103, 80, 83, 77, 71, 76, 78, 87, 102, 104, 95, 96, 83, 87, 50, 110, 103, 112, 45, 58, 70, 94, 91, 89, 81, 101, 82, 63, 72, 100, 97, 76, 112, 53, 105, 49, 75, 109, 102, 66, 111, 68, 87, 92, 79, 96, 43, 90, 44, 110, 99, 102, 92, 103, 106, 62, 53, 27, 46, 108, 104, 107, 108, 109, 76 }; const uint16_t HRA_112_112_H_cols[] = { 7, 8, 52, 12, 12, 42, 16, 69, 45, 14, 19, 23, 6, 32, 3, 5, 22, 2, 45, 50, 2, 1, 18, 84, 10, 7, 62, 11, 9, 21, 24, 63, 2, 5, 28, 13, 6, 15, 58, 39, 39, 22, 76, 13, 26, 68, 9, 10, 49, 38, 32, 11, 34, 44, 8, 7, 25, 67, 1, 17, 19, 36, 4, 41, 3, 26, 31, 15, 45, 40, 8, 4, 41, 20, 6, 53, 1, 42, 9, 20, 25, 17, 33, 41, 3, 19, 55, 17, 27, 14, 31, 88, 15, 26, 36, 16, 28, 24, 27, 16, 30, 56, 48, 43, 4, 5, 38, 37, 40, 46, 18, 18, 22, 50, 76, 34, 60, 83, 39, 73, 56, 92, 42, 52, 75, 35, 37, 33, 61, 67, 47, 75, 66, 70, 29, 92, 51, 95, 84, 21, 57, 28, 46, 66, 93, 11, 94, 55, 96, 20, 71, 48, 53, 43, 82, 90, 66, 90, 14, 44, 54, 62, 34, 58, 81, 53, 23, 43, 27, 93, 10, 86, 37, 80, 60, 49, 21, 79, 74, 72, 48, 61, 40, 76, 64, 29, 38, 79, 51, 54, 13, 49, 72, 30, 50, 86, 35, 80, 61, 56, 36, 59, 65, 91, 25, 47, 58, 59, 78, 47, 32, 24, 44, 86, 64, 57, 12, 23, 109, 107, 85, 63, 31, 65, 62, 68, 111, 78, 104, 89, 112, 87, 69, 105, 65, 94, 109, 78, 72, 104, 85, 108, 77, 106, 79, 74, 103, 96, 64, 105, 105, 102, 63, 35, 59, 108, 112, 81, 102, 57, 106, 83, 81, 77, 101, 55, 94, 96, 97, 106, 46, 101, 83, 85, 71, 107, 104, 87, 33, 67, 103, 95, 30, 91, 89, 103, 75, 51, 107, 87, 91, 89, 99, 68, 52, 109, 99, 88, 84, 112, 54, 70, 92, 100, 98, 74, 60, 100, 98, 110, 90, 73, 71, 95, 70, 100, 29, 69, 110, 93, 82, 97, 98, 77, 73, 99, 101, 108, 82, 102, 111, 110, 111, 97, 88, 80 }; const float HRA_112_112_input[] = { -3.7496794787890972, 14.372112019392226, -7.5640452729302359, 6.9426063455159657, 5.3103644888713299, -6.9203550501252273, 8.4296575778653775, 13.495087143587781, 18.111520666852243, -9.9125748623510912, 10.601298534930972, -10.468591112149715, -9.0757329437720475, -14.471433733514324, 5.2048820572852641, -11.353785810284556, -9.4511008284496416, -9.5255219979484025, -2.0499245561876696, -9.8739646459388748, 22.03442141444015, -9.9745566449839878, -8.4276711655946226, -4.9811962116476307, -13.018434575859896, -5.3358535334627293, -5.6704294937789648, 14.243964608060018, -11.417925510314507, 9.1332657371467878, -14.380214782394296, 14.090409878618974, 6.5602278279998272, 15.53025696352436, -9.1752771765906616, -11.384503450560766, 12.240329442222599, -12.640059450058276, -11.824715154614376, -13.487656131954735, 15.38073452845444, -13.816294924566529, 6.3461114450644454, -2.5192445130977559, -11.916088712873863, 5.4360722876642518, 0.038031547223147381, -12.367220238860654, -2.747864039796549, -14.920508782249289, 16.487336720060863, -13.290002442259247, 19.142698450560925, -0.39443060583296108, 11.723442316413736, -3.6131702833965047, -4.6196487103817017, -11.794290650694531, -14.342351103186955, 2.8079943208330334, -15.290175151123936, 9.0801740558512414, 10.184385069676226, 8.400722260237572, 9.3504690108712936, -14.223531676384166, 11.752768386971752, 11.36995822251677, -15.285021241405444, -13.070613695054403, -11.869191325617697, 4.3191750845563401, 2.0836933404582791, -16.363829786416495, -5.7778094839806595, 11.06389861779129, 13.285433846434705, 9.2552396418849021, -11.065999403824057, -10.167040394420443, -7.0107225044503565, 2.3886881673282474, 5.0014484787306932, -9.2464083853314278, -12.043309174487364, -11.638411967211738, -16.302815497922911, 13.347129717938067, -4.1390259986125226, 0.7947480277507295, 11.538620744796759, -7.4410706619926028, 14.572449028311253, 12.392747919231169, -3.3027890746379289, -9.8431096813736687, 11.582657487369399, -7.85736442083219, -7.3780721969188443, -7.4006260265172212, -8.3937994980934327, -6.6804071011469555, 19.656301355404196, 1.1084340389939762, 3.6028635453146465, -4.5409495140900562, 7.3831459854578982, -5.5905999874445662, -13.852328482738232, 8.9999210644983041, 8.4742375282492315, 16.989947243749878, 7.5590035165610168, -6.154674423116183, 4.1119120658251855, 12.351217703790844, 11.070972687846792, 11.182587746846833, -4.9345619923565645, 9.0054892370887334, -10.841725474869696, 13.902796293412067, -6.7575171884905396, -5.8196703210757335, 1.9284357540668857, 9.9905382141440455, -13.983067199220674, -4.9130522479706453, -8.2369300184767908, 6.8953565265629644, 2.9285103862640871, -2.6303471135655325, -8.3563361642086047, 9.5712349244763715, 4.9728623009661161, -11.045088919587242, -5.7781337596219604, -17.732999074602972, 8.1353860976076646, -11.066240843831284, -1.7079574457159534, -16.411685365171998, -9.0471090651358299, -10.959376227315447, 8.5840398495674126, 6.6373658260736024, 11.422094029020409, 14.85785089306844, 13.185747281780415, 4.2063935223916191, -6.9166135608899282, 10.843153262137262, 5.3913075109409441, -10.744469667642237, -12.491640291445655, 14.141118162062066, 16.425476099516025, 9.8833761863476042, 2.8719064151687883, 14.982021915112442, 1.3588165304065343, -11.657839635726177, 11.066314862965077, -3.0565490195476204, 1.7820159270701772, -13.535333311782074, 4.4026933190218367, -11.097334550496313, -11.322820869044248, 16.418516996530371, 5.8239202459876136, 15.054905601216154, -9.3058742038490152, 8.48902767802557, -8.3853534273227748, -7.9255089736435176, -9.6156735881618811, 11.502594413898008, -6.0542015398269911, 7.1229229147355149, 0.31483632310264387, -11.482093481730768, -9.3225703551629309, 5.8001228713062831, -9.3515917458791051, 7.9778737065172969, 9.7095180444854847, -14.060064536791135, 4.9797253221020545, -6.9210799657794224, 6.6736460552213845, -7.7636429824024606, 10.233132490278882, 8.401747393605044, -10.861100567451366, 13.631509744686715, -15.723791754613185, -8.7931294115815923, -9.9520037489001609, -10.312792052906007, -8.0681893911111917, -15.411052087079765, 10.938779471602952, -8.751795633239853, -9.1302029882284419, -2.3357314769649777, -7.9130658335895596, 2.7508172894969509, -9.1666780515772324, 12.793063537524359, -13.39091818112591, 7.2827402370664842, -10.400778532411657, -1.90854156128735, -4.1272702472088971, 12.696932922959466, -4.0180403457213805, 10.828999052972396, 14.720617452742685, -8.3763729074389719, 3.955093172344033, 0.90932711822659873, -5.6696817865337819, -5.8822086115513805 }; const char HRA_112_112_detected_data[] = { 1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 1, 1 }; codec2-1.0.1/src/HRA_112_112.h000066400000000000000000000010371412132000500151550ustar00rootroot00000000000000/* FILE....: HRA_112_112.h Static arrays for LDPC codec HRA_112_112, generated by ldpc_gen_c_h_file.m. */ #define HRA_112_112_NUMBERPARITYBITS 112 #define HRA_112_112_MAX_ROW_WEIGHT 3 #define HRA_112_112_CODELENGTH 224 #define HRA_112_112_NUMBERROWSHCOLS 112 #define HRA_112_112_MAX_COL_WEIGHT 3 #define HRA_112_112_DEC_TYPE 0 #define HRA_112_112_MAX_ITER 100 extern const uint16_t HRA_112_112_H_rows[]; extern const uint16_t HRA_112_112_H_cols[]; extern const float HRA_112_112_input[]; extern const char HRA_112_112_detected_data[]; codec2-1.0.1/src/HRA_112_112_test.h000066400000000000000000000204641412132000500162210ustar00rootroot00000000000000/* FILE....: ../src/HRA_112_112.h Static arrays for CML LDPC, generated by ldpc_gen_h_file.m. */ #define HRA_112_112_NUMBERPARITYBITS 112 #define HRA_112_112_MAX_ROW_WEIGHT 3 #define HRA_112_112_CODELENGTH 224 #define HRA_112_112_NUMBERROWSHCOLS 112 #define HRA_112_112_MAX_COL_WEIGHT 3 #define HRA_112_112_DEC_TYPE 0 #define HRA_112_112_MAX_ITER 100 #include uint16_t HRA_112_112_H_rows[] = { 22, 18, 15, 63, 16, 13, 1, 2, 29, 25, 28, 4, 36, 10, 38, 7, 60, 23, 11, 38, 28, 1, 12, 31, 57, 45, 57, 30, 23, 59, 67, 14, 16, 4, 14, 62, 15, 50, 7, 70, 64, 6, 42, 48, 9, 31, 19, 40, 49, 2, 25, 3, 41, 49, 36, 9, 29, 39, 31, 5, 17, 1, 29, 25, 11, 21, 18, 2, 8, 22, 39, 15, 8, 22, 13, 3, 19, 4, 21, 62, 34, 43, 6, 24, 17, 60, 8, 74, 6, 44, 60, 10, 33, 12, 26, 24, 45, 81, 69, 80, 41, 28, 23, 5, 10, 20, 52, 18, 13, 86, 3, 7, 59, 21, 65, 72, 34, 37, 26, 55, 47, 48, 34, 5, 44, 47, 68, 96, 82, 111, 61, 74, 30, 17, 55, 98, 81, 66, 89, 35, 74, 82, 91, 51, 55, 51, 30, 89, 61, 75, 40, 71, 73, 11, 56, 54, 19, 47, 94, 69, 64, 20, 64, 12, 54, 77, 42, 88, 36, 52, 90, 63, 70, 27, 32, 73, 91, 32, 56, 46, 9, 78, 51, 68, 88, 67, 20, 43, 40, 14, 66, 86, 39, 97, 38, 27, 50, 84, 54, 92, 61, 46, 67, 24, 58, 35, 58, 37, 98, 85, 73, 84, 48, 35, 57, 16, 26, 37, 65, 32, 72, 95, 107, 33, 77, 33, 85, 105, 106, 75, 56, 71, 79, 59, 52, 105, 79, 90, 93, 100, 88, 112, 86, 80, 65, 42, 106, 100, 93, 94, 99, 97, 93, 101, 111, 99, 83, 53, 85, 95, 108, 107, 41, 109, 84, 78, 104, 101, 69, 110, 98, 103, 80, 83, 77, 71, 76, 78, 87, 102, 104, 95, 96, 83, 87, 50, 110, 103, 112, 45, 58, 70, 94, 91, 89, 81, 101, 82, 63, 72, 100, 97, 76, 112, 53, 105, 49, 75, 109, 102, 66, 111, 68, 87, 92, 79, 96, 43, 90, 44, 110, 99, 102, 92, 103, 106, 62, 53, 27, 46, 108, 104, 107, 108, 109, 76 }; uint16_t HRA_112_112_H_cols[] = { 7, 8, 52, 12, 12, 42, 16, 69, 45, 14, 19, 23, 6, 32, 3, 5, 22, 2, 45, 50, 2, 1, 18, 84, 10, 7, 62, 11, 9, 21, 24, 63, 2, 5, 28, 13, 6, 15, 58, 39, 39, 22, 76, 13, 26, 68, 9, 10, 49, 38, 32, 11, 34, 44, 8, 7, 25, 67, 1, 17, 19, 36, 4, 41, 3, 26, 31, 15, 45, 40, 8, 4, 41, 20, 6, 53, 1, 42, 9, 20, 25, 17, 33, 41, 3, 19, 55, 17, 27, 14, 31, 88, 15, 26, 36, 16, 28, 24, 27, 16, 30, 56, 48, 43, 4, 5, 38, 37, 40, 46, 18, 18, 22, 50, 76, 34, 60, 83, 39, 73, 56, 92, 42, 52, 75, 35, 37, 33, 61, 67, 47, 75, 66, 70, 29, 92, 51, 95, 84, 21, 57, 28, 46, 66, 93, 11, 94, 55, 96, 20, 71, 48, 53, 43, 82, 90, 66, 90, 14, 44, 54, 62, 34, 58, 81, 53, 23, 43, 27, 93, 10, 86, 37, 80, 60, 49, 21, 79, 74, 72, 48, 61, 40, 76, 64, 29, 38, 79, 51, 54, 13, 49, 72, 30, 50, 86, 35, 80, 61, 56, 36, 59, 65, 91, 25, 47, 58, 59, 78, 47, 32, 24, 44, 86, 64, 57, 12, 23, 109, 107, 85, 63, 31, 65, 62, 68, 111, 78, 104, 89, 112, 87, 69, 105, 65, 94, 109, 78, 72, 104, 85, 108, 77, 106, 79, 74, 103, 96, 64, 105, 105, 102, 63, 35, 59, 108, 112, 81, 102, 57, 106, 83, 81, 77, 101, 55, 94, 96, 97, 106, 46, 101, 83, 85, 71, 107, 104, 87, 33, 67, 103, 95, 30, 91, 89, 103, 75, 51, 107, 87, 91, 89, 99, 68, 52, 109, 99, 88, 84, 112, 54, 70, 92, 100, 98, 74, 60, 100, 98, 110, 90, 73, 71, 95, 70, 100, 29, 69, 110, 93, 82, 97, 98, 77, 73, 99, 101, 108, 82, 102, 111, 110, 111, 97, 88, 80 }; float HRA_112_112_input[] = { -5.7868467875518395, -6.340739523388657, 3.6654768375589399, 4.1452438183910827, -4.6746135252043111, -4.8353634065473701, -6.0729133999971285, 4.0335561282226271, -6.1114855315699135, 4.1029513876344916, -4.6481634503883624, 5.7650915278538646, 6.5567610490570312, 5.1810523550761207, 3.4789051916752669, 4.2678848515507122, 4.0314705275547089, 6.0297078342283799, 4.9101169653222163, -6.4577297598332324, -7.4273487270443095, 3.472130985267488, -6.5346233967202254, 7.5312028458762414, -5.2618748211985915, 6.4198074556254969, 3.7500207659511484, 5.4040878141701141, 5.7554260586578803, 3.3973620625026886, 7.1815269888532907, 5.0031747952824963, 5.1377243276145599, 5.385229914081755, -0.61384230253605643, 0.46954911161835722, 3.5182611493679663, 3.393698829567279, 6.147483866535171, 3.8374563885989228, 1.3663773773557015, -4.0917661778352352, -3.2968298202652835, -6.0371912041431148, -8.4279246895331781, -0.98556788606912304, -3.515442879601625, 4.2642476942514875, -5.5905016743156972, 3.6920101668161727, -4.035860013856472, 5.3290190966269995, -2.9729656070594057, -2.5054371041338537, 6.8683150013190115, -7.1109038108500098, 6.7301890172695158, 2.5782062882356374, 4.4161464916633282, 2.2692851122935322, -1.3682527221025034, 3.0794629981237631, -7.8655412763279973, 1.1479897597156494, 0.22370696314520414, 1.1222453403894148, -3.1335220808128219, -3.8352985265277089, -1.2463521619727009, 2.9511814015293218, -8.668811041413111, 3.0185610517830548, -6.9592962351476091, 3.9653416636625414, -3.9384322074229408, 1.6789027505247516, 2.9579632055145502, -2.1212672699995125, -3.8892168640945193, 7.516114544807583, -0.84285604179011253, 4.1295390817792512, 0.26093278495228162, -3.6071666499996047, -0.065323173773821908, -1.9146584862100915, 4.7951161310834367, 5.5440002982088803, 3.5917539980319364, -0.81416023563684481, -2.6588977758747721, -3.0404494660606227, 4.5389936536649662, 2.7870543501114082, 3.5622966707453889, 5.1982116994791161, 2.4775319712999302, 0.70541080068007755, 0.89622787904518464, 4.3789020039207758, -2.4976040580619445, -0.7201255450933205, 4.2071986295109394, -5.2418379271657001, -4.092365654835163, -4.3510198326542557, 3.7404138637596001, 1.2496890930262492, -7.1053909336149728, -4.8888279905256748, -6.3523901926735249, -1.8757980409249277, 3.6256343910366273, -3.6165398844758228, -0.38322352317510561, -0.84747550047769449, -1.2717892264620718, -2.3899810721111154, 4.1368500898628637, 3.0440159002314924, 3.4235543074310728, -2.146097053557551, -1.7537615307751735, -1.0280987119225686, 4.9009275359419204, 5.0046047156368116, -0.47700833783807428, -4.5989492891875567, 1.4154839158712684, 0.33410724822249849, -4.771937854508927, -1.1817007924012972, -2.5960865023249302, 0.30422629502493687, -2.2097849377516763, -4.343244940878872, 1.9464288912612249, -9.0976989032526809, -8.6454142547592685, -1.8164317522989997, 2.2780845702169961, -4.8775405042023356, -0.61834757216625769, -1.985554501661331, -0.87599558657596699, -8.0610201531782124, -5.9847574894882554, -10.365536404711067, 2.9782191161319376, -6.9443820217795169, 0.72935566343949876, -4.5326632961380664, 1.1307250622386897, -4.0853969692041314, 5.4926924507347596, 5.6722555096362042, -2.5069992226180222, 2.0460084066662092, 2.5375899018238197, -3.5264293517823679, 3.2103083878487557, 5.793713046583183, -2.7633653287377995, 6.482851815629938, -1.2471646528152021, 3.0010491047486085, 0.29072399293868856, -4.0686659405747738, -2.6253508133431289, -6.3896590677017171, 5.7054076607727886, 4.3053292399977092, 2.2372599539047151, -4.8975607398431897, 5.8124794005531406, -0.69648233429781359, 5.5509723605410004, 2.0900652762982923, -4.7944253330785118, -2.9224693872108287, 6.0218579796888303, 4.7027436964063387, -4.1564871824868659, -1.324779121305123, 0.38031612697724176, -0.69335927945709175, -0.4028295686263082, 2.0967669774299189, 2.7947186736855909, 2.1473880039026203, 6.368702510367898, -3.0691782325684049, 1.6125827087903837, 3.5925359669662518, 5.178224480471127, -2.5070763799556617, 4.4280512389456632, -6.5385259627250134, 2.8047951999607603, -3.0185715385981151, -0.33348983718789993, -4.3285127692183556, -7.9609407359365134, 7.064973172264966, 0.95714371675898213, -5.5481272272415545, -1.6024149180708045, -4.5740915350065992, -1.5117120929647263, 1.9996824689403947, 5.9527526663437724, 5.0239857792804967, 6.2677418491798784, -1.9758548902654505, 2.1709284879472324, 2.5054563138111572, 4.4483685492445115, 3.2098357106645676, -4.5306213859481099, 1.1291114493451548, 1.5827945023160555, -5.2733490015732292, 5.0664709821503457, 1.9652801880230106 }; char HRA_112_112_detected_data[] = { 1, 1, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 1, 1, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0 }; codec2-1.0.1/src/HRA_56_56.c000066400000000000000000000101771412132000500150330ustar00rootroot00000000000000/* FILE....: HRA_56_56.c Static arrays for LDPC codec HRA_56_56, generated by ldpc_gen_c_h_file.m. */ #include #include "HRA_56_56.h" const uint16_t HRA_56_56_H_rows[] = { 4, 33, 22, 2, 7, 12, 15, 41, 6, 2, 8, 4, 1, 7, 20, 10, 2, 1, 28, 7, 3, 25, 18, 19, 17, 15, 8, 13, 9, 12, 39, 6, 17, 32, 3, 6, 10, 18, 4, 34, 1, 14, 9, 5, 15, 12, 5, 35, 5, 17, 16, 36, 20, 9, 34, 33, 14, 46, 39, 27, 43, 22, 19, 45, 16, 23, 31, 52, 3, 8, 51, 13, 31, 11, 31, 36, 11, 28, 30, 21, 38, 26, 42, 29, 23, 33, 45, 19, 28, 40, 10, 23, 41, 25, 29, 36, 29, 49, 38, 11, 30, 42, 16, 37, 49, 35, 18, 47, 24, 25, 54, 34, 41, 55, 47, 44, 56, 46, 20, 55, 21, 40, 37, 53, 13, 32, 52, 22, 32, 24, 44, 42, 49, 38, 48, 24, 56, 48, 50, 39, 26, 50, 54, 26, 37, 56, 14, 27, 46, 44, 45, 43, 53, 52, 40, 21, 51, 47, 30, 50, 51, 43, 27, 54, 53, 48, 55, 35 }; const uint16_t HRA_56_56_H_cols[] = { 13, 4, 13, 1, 44, 9, 5, 11, 29, 16, 18, 6, 13, 1, 7, 9, 25, 23, 7, 7, 9, 3, 10, 18, 22, 26, 4, 19, 28, 23, 11, 14, 2, 40, 48, 20, 11, 22, 3, 10, 1, 20, 5, 4, 8, 2, 3, 23, 21, 27, 15, 12, 12, 31, 2, 5, 18, 10, 21, 12, 47, 32, 14, 14, 43, 35, 21, 30, 16, 35, 26, 47, 33, 38, 24, 15, 24, 6, 29, 24, 38, 29, 36, 22, 39, 45, 17, 17, 30, 55, 50, 40, 33, 25, 28, 34, 8, 27, 40, 19, 31, 6, 46, 26, 42, 30, 45, 15, 41, 52, 8, 25, 41, 17, 35, 39, 49, 36, 20, 27, 54, 37, 44, 46, 28, 42, 45, 51, 50, 51, 32, 53, 44, 16, 36, 53, 54, 32, 51, 33, 41, 47, 19, 34, 56, 56, 56, 52, 48, 43, 31, 43, 37, 46, 50, 38, 39, 37, 52, 54, 49, 48, 49, 42, 53, 55, 55, 34 }; const float HRA_56_56_input[] = { 14.298032547127473, -11.608683311452998, 0.061009204291271366, 8.7391847645722684, -12.795277326577247, 6.7260364215470982, -7.5723272788156795, 3.020497481136375, 8.2196966933834599, 11.034906196221687, 8.9543980103634855, 7.577128824074272, 11.270326150592165, 8.9523294544722756, 13.083603245905977, 10.444986837116906, 14.412579891463047, -0.8166007558942513, 9.668894733671868, 9.8522676575640613, 7.5958239024346623, 3.3746023851032851, 12.95322595905497, -7.1449563352606029, 1.2577795908906082, -9.5332224407426533, -17.239402070035631, -6.3014111920535631, -6.3042395285059891, 10.610150547425137, -3.8501667154717536, 13.993722156033463, -11.103807489470984, -0.23655217621193034, -11.820607488167541, -14.520377014662206, 14.480439663208152, -14.74956701516993, 5.8803502868629876, 16.404549902101486, 1.7430972286160022, 3.5578988903336057, -10.514179494138832, 15.893919839476579, -15.088901968318774, 8.8240079988183187, -11.214227098114568, 15.245351554277944, -8.0630908862483555, -4.2718917016539022, -6.8904115533020676, 7.1059188065004335, -15.465940930478686, 7.1911507113949069, -7.3855595052175262, 8.2801168546061081, 7.7415094545890444, 12.447605971579639, -7.1709811194443134, -16.91513428272188, -7.1177366282735868, -15.474578777159717, -9.5942142791182636, -6.9537488066001139, -7.7476201276622323, 4.1904181285877389, -6.2099572289514366, 10.754678540144104, -3.9339356682709932, 14.679906470086319, -8.142754803364026, -9.9243587954743582, -8.3178402502703221, 12.312937678168655, 8.8921607910136853, 12.075156922922833, 16.513528553689049, -13.145624744678896, 3.5338893311207094, -1.1150068888984415, 17.69091341508814, -7.0011692651766051, 11.611823808269614, -2.2724478894865379, 5.5105851969653212, 10.230592589300167, -10.45300755375545, 2.3936930052496277, -12.582400877459929, -10.207872559757952, 11.527552494414541, -6.8352398173173716, -5.9832808666428097, -10.392213829350812, -19.448491316457705, -3.5592349479718512, -7.2921546103361257, 12.917679155812705, -16.567433882993001, 8.2654374923309515, -12.878121359778884, 6.2541630279508933, -12.780545162108599, -10.751773785029803, 9.429146662721827, 10.341931054806189, 18.701038410743397, 9.823780098709431, 14.192912051007719, -16.603334298788742, 7.2592993795204217, 13.495247736424982 }; const char HRA_56_56_detected_data[] = { 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0 }; codec2-1.0.1/src/HRA_56_56.h000066400000000000000000000010031412132000500150240ustar00rootroot00000000000000/* FILE....: HRA_56_56.h Static arrays for LDPC codec HRA_56_56, generated by ldpc_gen_c_h_file.m. */ #define HRA_56_56_NUMBERPARITYBITS 56 #define HRA_56_56_MAX_ROW_WEIGHT 3 #define HRA_56_56_CODELENGTH 112 #define HRA_56_56_NUMBERROWSHCOLS 56 #define HRA_56_56_MAX_COL_WEIGHT 3 #define HRA_56_56_DEC_TYPE 0 #define HRA_56_56_MAX_ITER 100 extern const uint16_t HRA_56_56_H_rows[]; extern const uint16_t HRA_56_56_H_cols[]; extern const float HRA_56_56_input[]; extern const char HRA_56_56_detected_data[]; codec2-1.0.1/src/HRAa_1536_512.c000066400000000000000000003271211412132000500154150ustar00rootroot00000000000000/* FILE....: HRAa_1536_512.c Static arrays for LDPC codec HRAa_1536_512, generated by ldpc_gen_c_h_file.m. */ #include #include "HRAa_1536_512.h" const uint16_t HRAa_1536_512_H_rows[] = { 122, 98, 31, 39, 21, 33, 91, 90, 118, 111, 126, 34, 5, 120, 54, 2, 95, 67, 15, 68, 114, 10, 100, 53, 104, 29, 44, 76, 59, 112, 73, 77, 71, 61, 69, 128, 106, 50, 32, 6, 85, 102, 37, 99, 57, 75, 80, 88, 41, 27, 127, 16, 40, 119, 46, 110, 97, 79, 13, 45, 55, 62, 103, 92, 116, 7, 66, 83, 89, 96, 82, 58, 105, 78, 4, 47, 107, 52, 28, 20, 24, 51, 108, 36, 63, 30, 48, 26, 109, 60, 87, 49, 86, 25, 42, 123, 93, 18, 101, 43, 14, 72, 124, 35, 115, 81, 70, 22, 125, 64, 1, 113, 3, 17, 84, 74, 23, 94, 38, 12, 8, 65, 19, 56, 121, 9, 11, 117, 45, 115, 46, 23, 41, 17, 61, 112, 36, 99, 31, 107, 19, 37, 7, 11, 6, 47, 89, 4, 57, 20, 95, 55, 87, 82, 106, 88, 90, 85, 125, 42, 120, 18, 21, 34, 100, 103, 113, 5, 53, 108, 83, 67, 92, 109, 28, 76, 14, 43, 58, 30, 73, 33, 16, 35, 101, 22, 110, 94, 2, 91, 65, 98, 66, 51, 121, 84, 64, 118, 126, 27, 26, 111, 68, 69, 15, 124, 75, 123, 52, 10, 79, 40, 119, 9, 81, 102, 104, 13, 80, 127, 59, 72, 50, 48, 128, 56, 105, 117, 49, 54, 63, 60, 32, 71, 1, 114, 74, 70, 44, 86, 12, 8, 78, 29, 24, 96, 3, 93, 116, 62, 77, 38, 25, 39, 122, 97, 76, 37, 24, 104, 4, 46, 86, 44, 68, 47, 62, 49, 8, 79, 14, 119, 101, 63, 12, 53, 112, 78, 39, 103, 64, 100, 34, 108, 116, 23, 81, 121, 35, 124, 9, 127, 88, 125, 74, 94, 21, 10, 83, 2, 109, 80, 115, 122, 65, 1, 69, 71, 92, 89, 117, 75, 60, 59, 110, 43, 27, 118, 82, 38, 16, 26, 42, 55, 48, 70, 97, 90, 105, 33, 123, 120, 29, 126, 30, 73, 114, 57, 15, 72, 54, 96, 99, 107, 11, 45, 98, 22, 95, 41, 18, 13, 52, 87, 25, 17, 7, 58, 67, 32, 51, 50, 128, 61, 66, 113, 31, 106, 5, 36, 20, 19, 28, 6, 85, 91, 84, 56, 40, 111, 93, 77, 3, 102, 67, 63, 11, 23, 75, 55, 24, 38, 90, 17, 34, 5, 121, 103, 79, 40, 14, 76, 15, 88, 82, 100, 57, 102, 50, 84, 56, 114, 9, 119, 39, 86, 41, 89, 52, 13, 120, 25, 72, 33, 80, 3, 60, 109, 65, 28, 111, 16, 37, 69, 12, 94, 42, 105, 44, 106, 70, 68, 19, 74, 78, 124, 46, 43, 26, 32, 117, 128, 126, 93, 91, 116, 4, 10, 18, 64, 104, 81, 35, 115, 98, 48, 22, 125, 95, 123, 127, 96, 27, 107, 110, 58, 53, 62, 51, 97, 92, 54, 20, 21, 101, 30, 77, 2, 83, 87, 71, 108, 36, 61, 73, 8, 29, 113, 112, 59, 118, 45, 7, 6, 66, 85, 122, 47, 99, 49, 31, 1, 223, 249, 170, 159, 214, 134, 239, 206, 146, 132, 133, 207, 250, 208, 144, 213, 156, 198, 192, 211, 143, 174, 199, 254, 184, 131, 230, 161, 237, 158, 173, 204, 187, 171, 155, 164, 137, 183, 178, 151, 166, 180, 135, 200, 172, 176, 189, 169, 162, 136, 228, 252, 150, 212, 210, 231, 195, 154, 129, 147, 227, 148, 205, 255, 216, 233, 248, 246, 219, 236, 157, 197, 225, 240, 139, 256, 241, 238, 188, 152, 209, 167, 163, 145, 218, 168, 242, 165, 235, 153, 201, 160, 182, 138, 191, 245, 179, 140, 203, 185, 229, 181, 220, 175, 202, 190, 253, 234, 215, 149, 193, 251, 224, 221, 196, 177, 243, 232, 247, 217, 141, 186, 142, 244, 222, 194, 226, 130, 232, 185, 178, 129, 139, 244, 132, 164, 230, 191, 209, 242, 168, 228, 249, 158, 248, 235, 206, 238, 218, 159, 253, 196, 135, 147, 177, 225, 160, 137, 161, 212, 192, 175, 207, 222, 138, 134, 234, 136, 156, 152, 213, 226, 229, 151, 141, 201, 256, 181, 241, 243, 224, 180, 236, 194, 240, 182, 211, 255, 189, 208, 131, 176, 202, 155, 231, 146, 190, 237, 203, 183, 216, 133, 148, 144, 245, 174, 210, 252, 145, 142, 198, 187, 221, 153, 163, 223, 130, 162, 247, 140, 154, 184, 193, 215, 143, 199, 166, 220, 167, 219, 246, 204, 250, 173, 205, 254, 186, 149, 188, 172, 169, 150, 227, 233, 195, 251, 214, 217, 165, 170, 179, 157, 171, 197, 239, 200, 230, 130, 218, 131, 154, 223, 142, 155, 252, 174, 182, 156, 196, 229, 239, 192, 147, 198, 235, 209, 162, 199, 163, 227, 237, 148, 228, 160, 238, 240, 190, 241, 250, 211, 242, 184, 181, 251, 245, 187, 170, 194, 246, 212, 217, 138, 201, 193, 256, 224, 244, 243, 165, 144, 175, 180, 176, 185, 216, 141, 197, 231, 220, 204, 207, 221, 189, 150, 214, 134, 195, 234, 149, 186, 249, 140, 255, 168, 178, 133, 202, 145, 222, 236, 164, 188, 166, 208, 232, 132, 219, 159, 177, 139, 205, 226, 248, 254, 136, 161, 233, 135, 153, 171, 169, 146, 129, 167, 206, 215, 183, 225, 143, 137, 191, 200, 179, 213, 157, 152, 173, 151, 247, 253, 210, 158, 203, 172, 201, 162, 239, 190, 256, 229, 213, 135, 253, 178, 174, 193, 161, 238, 186, 141, 143, 205, 181, 129, 132, 180, 247, 255, 199, 241, 177, 251, 234, 212, 169, 200, 210, 133, 249, 163, 148, 153, 221, 164, 195, 152, 146, 232, 156, 243, 252, 142, 237, 219, 134, 197, 139, 137, 198, 218, 240, 155, 159, 160, 209, 228, 154, 168, 176, 225, 184, 194, 149, 188, 196, 157, 246, 208, 151, 236, 140, 130, 231, 226, 254, 217, 235, 165, 203, 182, 215, 189, 175, 136, 147, 185, 216, 242, 245, 172, 158, 173, 192, 211, 144, 171, 170, 214, 223, 207, 191, 222, 220, 179, 150, 244, 224, 230, 145, 183, 206, 202, 250, 204, 167, 227, 187, 166, 248, 138, 131, 233, 332, 283, 261, 276, 293, 336, 357, 369, 281, 317, 278, 356, 352, 367, 294, 350, 384, 327, 376, 290, 346, 361, 292, 351, 354, 363, 326, 291, 340, 273, 345, 306, 271, 341, 270, 307, 328, 360, 304, 362, 382, 322, 257, 297, 320, 337, 266, 259, 377, 368, 298, 310, 325, 371, 272, 324, 343, 374, 353, 370, 364, 316, 309, 269, 286, 277, 314, 358, 268, 313, 315, 311, 295, 267, 381, 344, 289, 260, 366, 258, 305, 342, 301, 308, 284, 331, 338, 380, 318, 329, 339, 264, 312, 303, 348, 335, 359, 330, 285, 263, 279, 274, 373, 265, 347, 333, 287, 323, 375, 355, 288, 365, 262, 379, 334, 378, 349, 383, 282, 296, 300, 321, 299, 275, 302, 280, 319, 372, 317, 372, 279, 308, 343, 334, 288, 341, 349, 318, 331, 329, 323, 371, 296, 298, 365, 327, 310, 344, 283, 321, 291, 325, 324, 360, 282, 294, 352, 377, 374, 342, 364, 263, 275, 267, 326, 335, 328, 289, 305, 280, 269, 314, 367, 300, 260, 333, 322, 271, 357, 306, 290, 358, 366, 303, 272, 302, 362, 353, 338, 383, 266, 264, 373, 359, 348, 312, 299, 286, 380, 268, 315, 285, 258, 363, 320, 287, 281, 311, 370, 313, 339, 273, 284, 292, 355, 345, 346, 384, 257, 295, 336, 277, 361, 261, 270, 369, 368, 337, 351, 378, 301, 316, 259, 262, 297, 276, 356, 293, 304, 347, 381, 330, 340, 379, 350, 332, 375, 382, 278, 307, 274, 309, 319, 265, 376, 354, 346, 320, 258, 341, 362, 360, 273, 342, 348, 324, 302, 340, 349, 292, 343, 370, 378, 295, 271, 327, 286, 371, 304, 306, 299, 345, 344, 326, 315, 357, 328, 262, 266, 329, 284, 309, 365, 332, 333, 338, 274, 303, 280, 380, 358, 363, 323, 322, 259, 294, 379, 285, 316, 278, 359, 310, 374, 334, 356, 261, 377, 347, 330, 355, 290, 331, 353, 314, 257, 267, 373, 291, 313, 375, 366, 382, 350, 260, 272, 335, 301, 275, 270, 300, 321, 311, 383, 317, 305, 384, 319, 337, 279, 297, 287, 277, 325, 367, 376, 308, 364, 264, 339, 312, 265, 351, 283, 268, 298, 288, 318, 368, 361, 307, 372, 296, 293, 289, 369, 269, 276, 263, 336, 381, 281, 352, 282, 354, 362, 360, 308, 384, 283, 296, 379, 280, 293, 294, 376, 358, 285, 319, 348, 302, 315, 304, 276, 338, 353, 290, 367, 346, 364, 306, 295, 260, 322, 378, 366, 363, 288, 361, 371, 281, 334, 356, 350, 347, 375, 365, 314, 351, 340, 257, 266, 345, 333, 373, 268, 277, 344, 359, 341, 343, 337, 352, 263, 349, 271, 381, 297, 377, 325, 339, 328, 267, 279, 372, 354, 287, 313, 316, 321, 258, 305, 300, 374, 330, 331, 259, 307, 261, 289, 335, 317, 324, 278, 368, 292, 299, 327, 320, 286, 291, 332, 272, 262, 275, 355, 265, 270, 383, 318, 309, 269, 274, 357, 298, 342, 282, 264, 329, 310, 284, 301, 336, 369, 303, 311, 323, 370, 326, 273, 380, 382, 312, 426, 449, 487, 455, 404, 413, 459, 469, 493, 508, 485, 442, 468, 439, 483, 443, 480, 418, 507, 423, 407, 474, 409, 425, 475, 444, 388, 496, 390, 490, 503, 416, 417, 509, 448, 479, 415, 501, 451, 471, 432, 427, 395, 410, 400, 408, 476, 441, 424, 391, 466, 482, 478, 454, 481, 394, 411, 446, 484, 431, 402, 491, 460, 494, 433, 440, 500, 450, 405, 430, 412, 387, 414, 492, 488, 436, 467, 461, 399, 472, 506, 396, 486, 505, 429, 495, 386, 438, 464, 456, 445, 462, 447, 428, 512, 385, 406, 463, 465, 422, 502, 437, 434, 435, 389, 489, 421, 497, 457, 499, 401, 393, 510, 392, 403, 453, 398, 397, 511, 477, 420, 452, 419, 504, 473, 498, 458, 470, 508, 439, 475, 499, 440, 394, 420, 469, 452, 416, 391, 405, 404, 498, 431, 510, 435, 434, 479, 459, 424, 472, 461, 429, 386, 489, 415, 512, 456, 406, 422, 411, 500, 455, 410, 401, 430, 392, 449, 468, 445, 443, 426, 490, 486, 389, 454, 464, 505, 473, 425, 442, 402, 436, 511, 488, 480, 466, 393, 481, 407, 397, 502, 446, 496, 504, 506, 438, 396, 492, 478, 433, 387, 501, 421, 418, 453, 470, 414, 450, 432, 428, 485, 491, 409, 447, 507, 385, 395, 465, 474, 403, 493, 457, 477, 460, 400, 444, 509, 463, 441, 467, 388, 427, 423, 398, 417, 412, 483, 399, 448, 503, 437, 471, 413, 487, 476, 419, 484, 495, 497, 408, 451, 390, 462, 482, 458, 494, 424, 429, 421, 467, 425, 480, 435, 436, 498, 417, 437, 419, 469, 477, 465, 428, 484, 493, 504, 452, 387, 458, 395, 418, 489, 390, 389, 474, 426, 444, 445, 466, 439, 388, 483, 416, 391, 461, 407, 491, 448, 431, 473, 385, 400, 411, 457, 394, 397, 470, 492, 406, 455, 434, 433, 475, 427, 505, 449, 420, 403, 478, 393, 443, 500, 446, 415, 414, 472, 454, 510, 511, 438, 408, 468, 487, 399, 506, 460, 495, 459, 450, 423, 386, 485, 481, 410, 453, 430, 412, 496, 502, 490, 501, 447, 432, 402, 462, 497, 404, 494, 503, 508, 440, 398, 512, 479, 441, 401, 392, 471, 456, 509, 405, 488, 409, 486, 422, 451, 507, 499, 413, 476, 442, 396, 482, 464, 463, 434, 487, 456, 385, 388, 477, 469, 427, 401, 439, 454, 464, 391, 390, 471, 399, 473, 400, 506, 436, 478, 437, 497, 465, 481, 490, 418, 404, 425, 463, 509, 393, 416, 467, 501, 409, 410, 498, 402, 394, 412, 438, 496, 480, 443, 450, 466, 476, 448, 460, 420, 397, 479, 511, 395, 502, 396, 387, 433, 457, 485, 419, 510, 474, 411, 426, 421, 435, 442, 449, 445, 415, 494, 499, 470, 512, 429, 392, 398, 488, 504, 451, 508, 417, 483, 406, 458, 405, 461, 453, 389, 440, 441, 423, 428, 492, 403, 459, 495, 452, 489, 414, 455, 407, 493, 507, 408, 500, 413, 444, 472, 430, 503, 386, 462, 447, 468, 432, 491, 482, 486, 446, 484, 424, 431, 505, 422, 475, 586, 617, 576, 608, 627, 589, 634, 597, 531, 534, 513, 620, 575, 605, 593, 539, 550, 639, 544, 567, 637, 628, 595, 592, 612, 551, 583, 541, 598, 527, 599, 545, 594, 610, 591, 633, 547, 516, 553, 522, 568, 558, 570, 619, 638, 523, 517, 537, 601, 542, 616, 622, 632, 629, 621, 609, 546, 564, 532, 636, 618, 588, 533, 582, 585, 623, 561, 578, 518, 525, 613, 529, 615, 614, 603, 577, 540, 528, 611, 559, 565, 556, 596, 574, 571, 581, 587, 519, 625, 552, 563, 635, 520, 580, 640, 602, 521, 538, 604, 631, 548, 624, 514, 515, 543, 607, 526, 557, 626, 600, 536, 566, 590, 572, 535, 562, 524, 630, 579, 584, 530, 555, 554, 606, 560, 549, 569, 573, 523, 515, 619, 608, 610, 594, 617, 618, 532, 542, 527, 626, 625, 584, 550, 541, 629, 521, 632, 622, 640, 599, 580, 579, 601, 627, 582, 556, 525, 581, 551, 536, 560, 630, 631, 614, 577, 559, 572, 592, 566, 524, 555, 598, 561, 595, 638, 602, 612, 546, 597, 513, 569, 540, 570, 571, 588, 604, 637, 548, 609, 534, 591, 518, 537, 564, 565, 528, 615, 606, 583, 621, 605, 624, 517, 543, 529, 519, 636, 530, 589, 639, 573, 620, 578, 545, 535, 634, 607, 567, 538, 586, 520, 635, 576, 552, 554, 558, 628, 544, 623, 568, 533, 563, 585, 611, 516, 562, 613, 557, 633, 531, 522, 590, 603, 574, 575, 553, 600, 587, 526, 616, 514, 547, 549, 539, 596, 593, 572, 609, 514, 594, 576, 626, 536, 598, 617, 564, 568, 558, 547, 606, 517, 624, 578, 582, 513, 571, 634, 585, 623, 605, 557, 539, 588, 545, 638, 534, 530, 524, 533, 552, 570, 573, 520, 595, 566, 559, 537, 567, 639, 562, 636, 635, 619, 597, 600, 621, 630, 616, 560, 632, 565, 584, 528, 640, 593, 561, 523, 629, 633, 518, 591, 551, 542, 583, 555, 599, 611, 548, 589, 602, 531, 612, 574, 522, 586, 538, 569, 546, 587, 613, 540, 608, 543, 553, 519, 627, 563, 592, 527, 628, 618, 601, 525, 521, 614, 544, 541, 580, 596, 603, 604, 607, 622, 579, 549, 620, 615, 575, 625, 637, 610, 526, 577, 554, 581, 550, 535, 529, 532, 515, 516, 556, 631, 590, 588, 589, 555, 638, 592, 518, 559, 625, 568, 546, 516, 610, 624, 590, 549, 601, 632, 514, 554, 561, 537, 569, 551, 521, 542, 541, 623, 640, 627, 564, 533, 530, 591, 611, 597, 579, 598, 600, 594, 528, 540, 581, 604, 633, 536, 527, 558, 593, 574, 534, 544, 616, 612, 607, 517, 620, 532, 618, 615, 608, 637, 622, 529, 621, 573, 602, 543, 578, 563, 595, 553, 523, 525, 582, 539, 560, 613, 552, 575, 639, 606, 635, 577, 548, 522, 605, 571, 520, 535, 580, 513, 629, 562, 570, 545, 617, 519, 566, 557, 556, 572, 587, 584, 547, 524, 576, 538, 603, 550, 599, 619, 628, 515, 630, 614, 567, 583, 626, 636, 585, 526, 565, 596, 531, 631, 586, 609, 634, 654, 647, 718, 697, 752, 672, 705, 651, 683, 675, 742, 670, 717, 658, 650, 695, 701, 665, 656, 723, 730, 702, 731, 726, 750, 711, 667, 645, 653, 691, 743, 733, 720, 714, 684, 722, 690, 678, 754, 721, 708, 710, 659, 749, 751, 724, 758, 748, 716, 646, 729, 664, 644, 728, 693, 759, 753, 746, 686, 719, 762, 700, 676, 756, 734, 765, 689, 715, 661, 643, 660, 680, 642, 740, 648, 732, 709, 663, 668, 685, 727, 662, 737, 747, 725, 703, 736, 713, 641, 764, 688, 666, 706, 745, 739, 712, 681, 682, 679, 655, 694, 767, 760, 704, 673, 674, 757, 669, 696, 657, 652, 692, 698, 699, 763, 677, 735, 741, 707, 649, 738, 768, 766, 671, 687, 755, 744, 761, 706, 645, 725, 682, 649, 704, 739, 715, 713, 690, 727, 670, 714, 765, 652, 751, 721, 666, 717, 676, 677, 658, 738, 726, 646, 663, 756, 669, 710, 695, 752, 657, 680, 691, 654, 712, 764, 741, 705, 685, 724, 720, 709, 692, 642, 750, 767, 686, 759, 716, 674, 694, 653, 718, 729, 683, 737, 673, 647, 671, 643, 697, 747, 761, 748, 675, 746, 708, 760, 687, 744, 711, 648, 664, 659, 722, 732, 758, 696, 679, 656, 733, 641, 762, 743, 650, 735, 730, 742, 753, 731, 701, 740, 745, 684, 728, 702, 763, 757, 768, 689, 700, 766, 660, 707, 662, 672, 661, 754, 667, 693, 681, 678, 665, 723, 736, 734, 651, 688, 698, 719, 703, 668, 644, 699, 749, 755, 655, 692, 708, 659, 697, 701, 647, 683, 762, 652, 722, 725, 760, 642, 764, 698, 690, 729, 682, 734, 695, 737, 691, 751, 641, 673, 672, 680, 686, 704, 714, 767, 745, 723, 743, 718, 665, 746, 657, 731, 720, 660, 712, 709, 765, 756, 687, 693, 671, 656, 730, 670, 742, 663, 732, 694, 702, 664, 650, 678, 668, 752, 763, 676, 726, 648, 662, 679, 689, 655, 738, 744, 715, 733, 681, 759, 685, 753, 707, 688, 713, 736, 755, 696, 711, 719, 684, 741, 658, 675, 728, 757, 740, 749, 727, 724, 766, 706, 758, 677, 674, 705, 717, 703, 646, 651, 644, 768, 748, 710, 643, 735, 747, 754, 761, 661, 654, 750, 739, 666, 699, 700, 716, 667, 721, 653, 669, 649, 645, 703, 723, 739, 737, 646, 667, 728, 704, 687, 710, 699, 676, 735, 656, 671, 755, 696, 750, 700, 758, 705, 678, 658, 726, 665, 721, 684, 744, 766, 643, 644, 745, 652, 754, 713, 720, 712, 768, 762, 661, 675, 692, 660, 748, 716, 679, 734, 642, 691, 651, 685, 763, 695, 689, 752, 722, 730, 756, 759, 736, 655, 707, 715, 709, 702, 673, 743, 663, 682, 727, 659, 731, 708, 657, 732, 714, 751, 725, 674, 648, 719, 680, 698, 757, 760, 717, 666, 669, 733, 647, 686, 765, 641, 694, 662, 753, 697, 738, 741, 649, 688, 749, 746, 767, 645, 664, 668, 654, 690, 761, 677, 729, 724, 653, 764, 706, 711, 672, 742, 718, 670, 740, 650, 701, 693, 683, 747, 681, 819, 870, 769, 827, 887, 805, 856, 785, 885, 823, 852, 841, 799, 831, 845, 822, 801, 866, 864, 844, 789, 860, 877, 783, 850, 818, 811, 884, 812, 833, 774, 851, 890, 808, 792, 781, 869, 807, 773, 836, 772, 815, 798, 786, 859, 868, 840, 832, 802, 865, 770, 896, 891, 803, 777, 892, 771, 797, 886, 895, 888, 778, 847, 796, 809, 780, 872, 858, 855, 826, 873, 791, 878, 834, 779, 862, 793, 814, 880, 824, 825, 853, 835, 861, 788, 876, 828, 842, 820, 875, 810, 787, 863, 800, 854, 839, 838, 837, 871, 881, 849, 894, 893, 806, 867, 848, 776, 784, 821, 874, 830, 804, 883, 795, 817, 846, 794, 775, 829, 889, 790, 879, 816, 813, 882, 782, 857, 843, 810, 820, 814, 859, 829, 880, 890, 861, 864, 784, 792, 834, 831, 823, 798, 801, 817, 827, 782, 843, 816, 892, 841, 894, 806, 879, 832, 802, 849, 825, 877, 783, 884, 826, 786, 795, 787, 794, 815, 821, 785, 813, 777, 819, 893, 863, 840, 809, 781, 775, 887, 848, 875, 803, 857, 805, 812, 873, 773, 835, 842, 790, 780, 789, 807, 886, 862, 868, 808, 796, 870, 855, 866, 793, 845, 799, 833, 850, 811, 854, 891, 836, 865, 838, 771, 778, 770, 839, 881, 856, 828, 852, 791, 822, 867, 874, 774, 847, 885, 869, 818, 846, 788, 888, 876, 853, 882, 895, 844, 776, 797, 858, 872, 804, 800, 824, 883, 769, 837, 871, 772, 830, 889, 860, 878, 779, 851, 896, 810, 884, 895, 789, 844, 821, 791, 859, 894, 854, 831, 876, 877, 816, 853, 835, 857, 856, 858, 805, 829, 782, 849, 893, 889, 795, 872, 823, 871, 802, 786, 846, 878, 815, 804, 869, 824, 813, 887, 851, 822, 783, 801, 800, 806, 776, 778, 811, 774, 817, 883, 777, 880, 790, 836, 860, 797, 873, 779, 865, 847, 891, 785, 888, 780, 868, 837, 838, 842, 793, 892, 845, 826, 792, 773, 885, 784, 787, 796, 814, 850, 875, 874, 775, 769, 799, 861, 840, 848, 772, 809, 770, 808, 866, 864, 834, 833, 879, 807, 832, 886, 827, 794, 870, 863, 841, 818, 896, 881, 862, 828, 839, 798, 820, 788, 852, 812, 830, 781, 771, 882, 890, 803, 843, 867, 855, 819, 825, 884, 815, 775, 823, 781, 861, 894, 779, 891, 836, 870, 789, 807, 862, 854, 893, 808, 805, 824, 770, 841, 826, 834, 786, 838, 796, 822, 869, 792, 839, 820, 825, 878, 791, 819, 799, 852, 896, 890, 882, 887, 840, 809, 790, 788, 858, 871, 804, 844, 876, 848, 886, 865, 795, 864, 776, 889, 818, 821, 784, 777, 875, 872, 855, 842, 794, 883, 782, 873, 814, 895, 892, 811, 778, 845, 812, 827, 846, 817, 856, 800, 785, 793, 787, 837, 773, 780, 879, 881, 772, 857, 831, 783, 847, 859, 867, 851, 769, 801, 833, 806, 853, 830, 816, 829, 828, 810, 797, 849, 832, 798, 863, 885, 860, 771, 803, 850, 813, 888, 843, 802, 866, 880, 874, 868, 774, 835, 877, 949, 911, 950, 932, 956, 978, 968, 947, 944, 984, 980, 941, 927, 1020, 962, 999, 1021, 983, 1024, 902, 937, 921, 993, 965, 933, 1004, 1022, 916, 931, 910, 981, 924, 914, 917, 974, 986, 967, 961, 997, 899, 1002, 966, 934, 998, 1008, 953, 987, 973, 1009, 909, 922, 963, 991, 959, 1011, 912, 940, 943, 979, 1001, 954, 969, 915, 985, 1015, 930, 1012, 1017, 960, 996, 906, 904, 994, 926, 935, 946, 1016, 992, 913, 918, 929, 995, 990, 952, 975, 1013, 958, 907, 972, 897, 957, 908, 1023, 938, 955, 903, 1003, 988, 1000, 942, 1006, 928, 970, 989, 1005, 1007, 898, 920, 1010, 1019, 945, 976, 982, 939, 923, 919, 971, 948, 905, 964, 977, 1018, 901, 1014, 900, 925, 936, 951, 1017, 949, 913, 936, 963, 990, 1015, 969, 966, 940, 957, 919, 927, 999, 908, 1020, 930, 899, 905, 1019, 1021, 948, 911, 989, 1023, 970, 1013, 944, 934, 972, 951, 971, 946, 991, 947, 1024, 914, 916, 931, 983, 1004, 945, 918, 1002, 928, 1006, 968, 939, 938, 941, 961, 937, 995, 1000, 985, 950, 994, 1016, 1003, 1008, 909, 1001, 906, 926, 1011, 953, 915, 910, 975, 907, 976, 993, 904, 903, 982, 956, 959, 980, 986, 917, 962, 942, 912, 977, 979, 921, 965, 997, 998, 922, 923, 988, 1022, 967, 973, 898, 1007, 987, 1009, 924, 974, 996, 1005, 933, 1018, 929, 925, 900, 992, 952, 1014, 960, 1012, 981, 901, 920, 954, 964, 958, 1010, 984, 902, 932, 955, 897, 978, 943, 935, 907, 963, 943, 945, 998, 1024, 958, 1020, 900, 959, 926, 992, 1021, 955, 991, 970, 905, 1003, 911, 934, 940, 913, 924, 939, 972, 975, 985, 956, 922, 938, 951, 941, 1008, 995, 932, 937, 986, 1007, 979, 947, 906, 927, 912, 993, 978, 977, 1010, 990, 901, 1016, 1019, 982, 929, 1011, 960, 1015, 1001, 914, 898, 971, 1009, 948, 931, 964, 903, 902, 923, 928, 1013, 921, 916, 936, 918, 987, 997, 1023, 935, 952, 917, 933, 983, 919, 981, 1018, 969, 957, 910, 1004, 909, 897, 1017, 999, 996, 1022, 930, 988, 915, 904, 994, 973, 1006, 1002, 967, 961, 989, 920, 965, 949, 980, 968, 976, 950, 925, 966, 899, 1000, 1005, 974, 953, 984, 1014, 908, 942, 944, 946, 954, 1012, 962, 927, 930, 905, 959, 951, 966, 910, 917, 1020, 1018, 996, 915, 976, 990, 982, 994, 909, 941, 937, 899, 969, 1023, 1009, 902, 963, 957, 919, 907, 1019, 960, 949, 1016, 916, 955, 900, 943, 1000, 934, 947, 938, 999, 1013, 977, 995, 945, 1001, 986, 913, 954, 906, 1005, 1011, 1024, 975, 921, 1002, 918, 942, 985, 987, 961, 967, 958, 973, 997, 1004, 1015, 908, 925, 897, 978, 953, 974, 924, 992, 972, 984, 1010, 1008, 979, 971, 936, 952, 914, 983, 988, 1017, 965, 926, 1014, 898, 923, 964, 1003, 970, 950, 939, 932, 998, 928, 956, 991, 940, 901, 931, 962, 1022, 946, 948, 903, 1021, 1006, 993, 935, 944, 904, 929, 980, 911, 922, 989, 1007, 968, 912, 981, 1012, 920, 933, 1132, 1107, 1101, 1150, 1145, 1065, 1147, 1059, 1038, 1115, 1083, 1034, 1151, 1079, 1047, 1054, 1116, 1076, 1069, 1120, 1126, 1086, 1064, 1133, 1036, 1057, 1128, 1030, 1099, 1037, 1027, 1084, 1134, 1138, 1125, 1068, 1092, 1137, 1093, 1048, 1102, 1111, 1104, 1029, 1046, 1121, 1041, 1035, 1070, 1123, 1091, 1088, 1045, 1131, 1148, 1139, 1063, 1096, 1106, 1097, 1095, 1050, 1055, 1149, 1078, 1112, 1081, 1062, 1142, 1052, 1049, 1025, 1146, 1060, 1056, 1108, 1136, 1109, 1058, 1105, 1044, 1033, 1143, 1087, 1051, 1077, 1110, 1117, 1085, 1090, 1073, 1031, 1127, 1122, 1113, 1144, 1130, 1043, 1066, 1118, 1089, 1103, 1082, 1040, 1067, 1053, 1071, 1042, 1072, 1061, 1124, 1129, 1135, 1100, 1114, 1080, 1039, 1140, 1094, 1152, 1141, 1075, 1098, 1026, 1074, 1032, 1119, 1028, 1097, 1049, 1055, 1115, 1113, 1110, 1135, 1101, 1081, 1082, 1093, 1066, 1151, 1103, 1121, 1048, 1035, 1029, 1090, 1028, 1050, 1123, 1077, 1083, 1145, 1047, 1111, 1067, 1112, 1059, 1100, 1118, 1042, 1102, 1109, 1079, 1054, 1094, 1120, 1132, 1078, 1031, 1030, 1027, 1026, 1106, 1053, 1069, 1117, 1105, 1108, 1137, 1058, 1034, 1070, 1063, 1143, 1149, 1104, 1033, 1076, 1045, 1136, 1052, 1092, 1133, 1148, 1025, 1051, 1122, 1144, 1080, 1074, 1141, 1116, 1043, 1139, 1129, 1146, 1057, 1098, 1119, 1039, 1125, 1037, 1131, 1114, 1130, 1086, 1044, 1127, 1073, 1032, 1150, 1099, 1060, 1128, 1085, 1056, 1068, 1061, 1096, 1038, 1142, 1065, 1126, 1046, 1062, 1134, 1152, 1124, 1036, 1107, 1095, 1138, 1075, 1084, 1071, 1091, 1147, 1072, 1087, 1064, 1041, 1140, 1040, 1089, 1088, 1025, 1060, 1053, 1051, 1049, 1147, 1082, 1141, 1151, 1081, 1045, 1084, 1105, 1047, 1058, 1035, 1137, 1037, 1050, 1074, 1100, 1040, 1124, 1116, 1088, 1079, 1073, 1057, 1113, 1099, 1104, 1140, 1052, 1046, 1056, 1152, 1150, 1144, 1066, 1077, 1138, 1083, 1097, 1044, 1063, 1126, 1030, 1131, 1076, 1111, 1069, 1096, 1146, 1059, 1108, 1133, 1087, 1042, 1103, 1125, 1092, 1090, 1089, 1142, 1117, 1068, 1029, 1062, 1129, 1148, 1036, 1026, 1067, 1055, 1101, 1120, 1038, 1132, 1078, 1028, 1145, 1075, 1031, 1061, 1107, 1072, 1121, 1118, 1054, 1109, 1135, 1027, 1080, 1122, 1033, 1039, 1112, 1127, 1115, 1091, 1064, 1139, 1041, 1110, 1130, 1149, 1136, 1070, 1065, 1086, 1098, 1128, 1134, 1043, 1085, 1102, 1094, 1032, 1123, 1119, 1106, 1143, 1034, 1048, 1095, 1093, 1114, 1071, 1131, 1056, 1028, 1077, 1151, 1137, 1031, 1144, 1119, 1084, 1066, 1078, 1105, 1047, 1075, 1126, 1138, 1070, 1115, 1042, 1079, 1128, 1123, 1122, 1063, 1050, 1152, 1064, 1146, 1074, 1134, 1118, 1049, 1045, 1149, 1088, 1136, 1068, 1085, 1052, 1026, 1093, 1096, 1098, 1048, 1125, 1067, 1030, 1116, 1103, 1145, 1032, 1127, 1106, 1094, 1041, 1080, 1097, 1104, 1147, 1102, 1117, 1089, 1083, 1054, 1073, 1092, 1040, 1100, 1058, 1091, 1150, 1057, 1142, 1076, 1051, 1086, 1132, 1101, 1043, 1060, 1027, 1025, 1081, 1133, 1099, 1124, 1140, 1033, 1029, 1121, 1109, 1069, 1055, 1111, 1110, 1113, 1108, 1072, 1141, 1087, 1065, 1071, 1095, 1139, 1129, 1039, 1059, 1090, 1143, 1046, 1135, 1112, 1082, 1044, 1038, 1061, 1148, 1037, 1062, 1034, 1130, 1053, 1107, 1120, 1114, 1036, 1035, 1249, 1214, 1233, 1199, 1235, 1157, 1166, 1263, 1231, 1208, 1211, 1178, 1163, 1193, 1270, 1182, 1260, 1175, 1153, 1248, 1271, 1267, 1251, 1252, 1183, 1172, 1241, 1203, 1266, 1227, 1222, 1277, 1161, 1274, 1254, 1195, 1169, 1155, 1186, 1202, 1279, 1162, 1239, 1217, 1258, 1244, 1228, 1190, 1278, 1224, 1198, 1181, 1234, 1165, 1174, 1230, 1184, 1269, 1194, 1159, 1168, 1205, 1237, 1215, 1264, 1185, 1173, 1180, 1229, 1206, 1273, 1246, 1220, 1196, 1176, 1191, 1275, 1245, 1261, 1225, 1221, 1253, 1192, 1218, 1216, 1272, 1156, 1207, 1262, 1276, 1167, 1189, 1158, 1232, 1170, 1219, 1187, 1280, 1204, 1259, 1255, 1154, 1226, 1171, 1268, 1223, 1212, 1209, 1250, 1188, 1256, 1240, 1265, 1247, 1243, 1179, 1242, 1213, 1238, 1201, 1200, 1177, 1210, 1160, 1197, 1257, 1164, 1236, 1265, 1275, 1232, 1212, 1173, 1192, 1231, 1279, 1185, 1203, 1205, 1248, 1270, 1215, 1241, 1167, 1161, 1228, 1175, 1153, 1159, 1230, 1191, 1209, 1259, 1253, 1229, 1171, 1257, 1221, 1264, 1188, 1256, 1278, 1199, 1239, 1251, 1155, 1218, 1261, 1254, 1202, 1237, 1174, 1187, 1245, 1190, 1272, 1274, 1255, 1179, 1172, 1216, 1207, 1176, 1262, 1247, 1213, 1238, 1156, 1277, 1268, 1164, 1269, 1260, 1210, 1180, 1183, 1276, 1222, 1224, 1177, 1246, 1233, 1234, 1273, 1211, 1208, 1217, 1158, 1165, 1267, 1197, 1194, 1250, 1220, 1160, 1258, 1206, 1240, 1236, 1244, 1242, 1168, 1225, 1204, 1170, 1157, 1178, 1186, 1243, 1189, 1169, 1249, 1280, 1227, 1195, 1223, 1200, 1214, 1163, 1226, 1182, 1184, 1154, 1266, 1198, 1235, 1201, 1263, 1181, 1196, 1162, 1219, 1193, 1252, 1166, 1271, 1206, 1208, 1271, 1239, 1153, 1195, 1224, 1188, 1236, 1191, 1264, 1197, 1175, 1232, 1182, 1228, 1209, 1210, 1246, 1227, 1244, 1193, 1167, 1194, 1184, 1279, 1199, 1223, 1259, 1243, 1256, 1212, 1187, 1237, 1248, 1214, 1176, 1263, 1268, 1219, 1278, 1202, 1276, 1265, 1189, 1154, 1274, 1213, 1192, 1211, 1215, 1170, 1171, 1164, 1216, 1240, 1168, 1166, 1177, 1235, 1267, 1261, 1252, 1174, 1201, 1173, 1163, 1241, 1257, 1169, 1262, 1157, 1186, 1229, 1249, 1225, 1198, 1178, 1217, 1207, 1245, 1160, 1200, 1161, 1275, 1165, 1226, 1196, 1179, 1159, 1233, 1238, 1221, 1280, 1260, 1172, 1253, 1269, 1270, 1158, 1155, 1258, 1218, 1273, 1230, 1190, 1231, 1250, 1204, 1222, 1251, 1203, 1220, 1272, 1255, 1234, 1254, 1266, 1277, 1181, 1205, 1162, 1183, 1242, 1185, 1156, 1247, 1180, 1173, 1254, 1271, 1252, 1207, 1269, 1185, 1157, 1162, 1268, 1192, 1263, 1179, 1251, 1188, 1230, 1194, 1255, 1273, 1163, 1181, 1206, 1242, 1247, 1270, 1191, 1161, 1171, 1193, 1235, 1198, 1217, 1246, 1241, 1187, 1262, 1174, 1218, 1238, 1165, 1279, 1156, 1280, 1195, 1177, 1213, 1240, 1208, 1184, 1159, 1170, 1277, 1210, 1204, 1166, 1228, 1248, 1182, 1199, 1229, 1249, 1223, 1153, 1190, 1225, 1221, 1261, 1226, 1257, 1197, 1244, 1258, 1201, 1186, 1232, 1276, 1160, 1176, 1212, 1202, 1253, 1274, 1267, 1175, 1172, 1233, 1167, 1154, 1243, 1200, 1256, 1189, 1220, 1272, 1239, 1180, 1205, 1231, 1169, 1227, 1219, 1250, 1275, 1158, 1260, 1234, 1259, 1209, 1168, 1278, 1164, 1245, 1183, 1216, 1236, 1203, 1264, 1215, 1237, 1214, 1266, 1196, 1155, 1222, 1265, 1211, 1178, 1224, 1298, 1403, 1337, 1329, 1331, 1386, 1349, 1320, 1288, 1287, 1380, 1402, 1342, 1366, 1352, 1353, 1304, 1284, 1334, 1397, 1321, 1286, 1360, 1328, 1381, 1326, 1309, 1333, 1365, 1282, 1362, 1385, 1314, 1387, 1303, 1383, 1351, 1369, 1311, 1310, 1301, 1308, 1400, 1359, 1395, 1332, 1358, 1323, 1367, 1296, 1364, 1372, 1350, 1371, 1361, 1396, 1363, 1294, 1377, 1281, 1368, 1343, 1355, 1393, 1399, 1327, 1378, 1388, 1302, 1392, 1300, 1406, 1319, 1404, 1315, 1382, 1379, 1408, 1345, 1405, 1324, 1335, 1305, 1306, 1370, 1390, 1401, 1391, 1283, 1291, 1338, 1375, 1313, 1398, 1292, 1316, 1330, 1384, 1289, 1325, 1295, 1376, 1307, 1373, 1339, 1354, 1374, 1290, 1344, 1317, 1322, 1394, 1318, 1340, 1407, 1336, 1285, 1312, 1297, 1356, 1347, 1346, 1293, 1348, 1389, 1341, 1299, 1357, 1298, 1313, 1387, 1357, 1296, 1323, 1283, 1333, 1382, 1347, 1332, 1316, 1405, 1366, 1402, 1394, 1388, 1309, 1401, 1338, 1302, 1359, 1400, 1285, 1371, 1365, 1367, 1407, 1294, 1348, 1350, 1305, 1376, 1374, 1386, 1356, 1297, 1343, 1287, 1282, 1286, 1331, 1326, 1351, 1321, 1399, 1354, 1306, 1393, 1362, 1353, 1325, 1346, 1310, 1395, 1324, 1391, 1342, 1311, 1361, 1337, 1335, 1328, 1322, 1355, 1352, 1404, 1380, 1303, 1383, 1370, 1379, 1281, 1339, 1289, 1398, 1288, 1308, 1396, 1304, 1301, 1349, 1312, 1314, 1319, 1384, 1368, 1397, 1334, 1358, 1341, 1299, 1406, 1403, 1372, 1307, 1320, 1284, 1317, 1385, 1363, 1364, 1389, 1292, 1290, 1330, 1360, 1408, 1329, 1327, 1377, 1369, 1344, 1378, 1291, 1375, 1381, 1300, 1336, 1373, 1295, 1315, 1340, 1345, 1293, 1390, 1318, 1392, 1380, 1399, 1376, 1337, 1361, 1342, 1304, 1407, 1338, 1390, 1289, 1325, 1393, 1383, 1345, 1323, 1362, 1364, 1363, 1358, 1339, 1388, 1397, 1340, 1348, 1305, 1372, 1360, 1336, 1283, 1403, 1400, 1346, 1371, 1374, 1401, 1366, 1296, 1347, 1395, 1351, 1294, 1375, 1349, 1319, 1404, 1318, 1382, 1370, 1312, 1391, 1408, 1313, 1406, 1385, 1287, 1389, 1398, 1314, 1300, 1292, 1308, 1324, 1301, 1333, 1316, 1332, 1343, 1402, 1281, 1386, 1285, 1384, 1321, 1373, 1282, 1353, 1354, 1286, 1377, 1290, 1396, 1302, 1295, 1341, 1381, 1368, 1293, 1329, 1326, 1394, 1311, 1344, 1315, 1330, 1327, 1288, 1392, 1355, 1405, 1322, 1356, 1352, 1284, 1359, 1298, 1297, 1350, 1334, 1309, 1335, 1303, 1379, 1331, 1291, 1369, 1387, 1320, 1357, 1328, 1310, 1365, 1367, 1306, 1307, 1317, 1299, 1378, 1313, 1300, 1384, 1286, 1374, 1317, 1382, 1369, 1337, 1363, 1301, 1401, 1408, 1352, 1305, 1308, 1315, 1377, 1358, 1390, 1294, 1381, 1403, 1344, 1332, 1354, 1380, 1290, 1362, 1370, 1291, 1388, 1361, 1287, 1349, 1400, 1385, 1283, 1320, 1348, 1325, 1324, 1314, 1360, 1339, 1357, 1326, 1394, 1399, 1342, 1306, 1368, 1404, 1299, 1296, 1365, 1372, 1375, 1402, 1303, 1398, 1297, 1281, 1319, 1289, 1395, 1367, 1406, 1321, 1345, 1376, 1378, 1371, 1307, 1364, 1285, 1288, 1302, 1351, 1293, 1346, 1353, 1316, 1391, 1312, 1310, 1340, 1338, 1383, 1327, 1318, 1396, 1389, 1397, 1322, 1298, 1347, 1295, 1366, 1329, 1387, 1359, 1343, 1335, 1355, 1292, 1323, 1284, 1282, 1333, 1392, 1379, 1328, 1356, 1331, 1336, 1330, 1341, 1393, 1373, 1309, 1311, 1407, 1350, 1405, 1304, 1334, 1386, 1461, 1428, 1471, 1489, 1427, 1424, 1514, 1463, 1439, 1522, 1487, 1445, 1409, 1459, 1419, 1483, 1486, 1481, 1415, 1451, 1429, 1528, 1527, 1531, 1417, 1484, 1476, 1422, 1478, 1502, 1524, 1473, 1535, 1431, 1505, 1523, 1416, 1462, 1521, 1414, 1474, 1443, 1410, 1536, 1418, 1446, 1456, 1435, 1525, 1517, 1457, 1492, 1500, 1495, 1513, 1440, 1436, 1437, 1508, 1454, 1464, 1413, 1450, 1472, 1509, 1529, 1477, 1433, 1432, 1467, 1491, 1469, 1516, 1479, 1434, 1515, 1499, 1442, 1497, 1412, 1530, 1425, 1520, 1519, 1532, 1485, 1448, 1488, 1507, 1426, 1449, 1496, 1423, 1493, 1506, 1512, 1470, 1498, 1534, 1411, 1465, 1441, 1458, 1503, 1468, 1420, 1455, 1533, 1526, 1501, 1430, 1518, 1453, 1447, 1444, 1466, 1494, 1510, 1452, 1460, 1511, 1482, 1475, 1421, 1438, 1490, 1504, 1480, 1506, 1429, 1497, 1433, 1477, 1528, 1439, 1417, 1427, 1458, 1494, 1489, 1474, 1473, 1520, 1529, 1435, 1532, 1504, 1409, 1426, 1453, 1421, 1483, 1502, 1518, 1418, 1463, 1516, 1530, 1496, 1482, 1533, 1513, 1531, 1459, 1486, 1534, 1412, 1512, 1514, 1455, 1505, 1481, 1445, 1443, 1411, 1468, 1536, 1447, 1452, 1446, 1521, 1415, 1484, 1441, 1480, 1442, 1414, 1423, 1460, 1469, 1465, 1519, 1430, 1410, 1428, 1492, 1478, 1467, 1425, 1517, 1525, 1511, 1424, 1456, 1444, 1500, 1431, 1420, 1461, 1498, 1416, 1436, 1485, 1495, 1437, 1503, 1487, 1448, 1432, 1491, 1476, 1449, 1507, 1527, 1434, 1470, 1419, 1490, 1509, 1510, 1438, 1466, 1522, 1488, 1523, 1526, 1501, 1499, 1422, 1440, 1472, 1475, 1479, 1462, 1524, 1471, 1457, 1454, 1413, 1493, 1451, 1535, 1508, 1515, 1464, 1450, 1437, 1500, 1432, 1527, 1443, 1456, 1521, 1501, 1528, 1418, 1451, 1446, 1421, 1478, 1493, 1530, 1499, 1462, 1414, 1448, 1477, 1472, 1471, 1426, 1523, 1498, 1485, 1509, 1533, 1453, 1447, 1458, 1467, 1484, 1423, 1517, 1519, 1409, 1455, 1411, 1454, 1502, 1531, 1504, 1525, 1416, 1464, 1413, 1417, 1489, 1473, 1410, 1459, 1480, 1495, 1516, 1439, 1420, 1482, 1433, 1481, 1468, 1483, 1536, 1466, 1532, 1457, 1494, 1508, 1450, 1429, 1534, 1431, 1497, 1449, 1445, 1436, 1463, 1513, 1490, 1488, 1524, 1424, 1496, 1415, 1505, 1520, 1518, 1476, 1507, 1514, 1440, 1425, 1428, 1491, 1475, 1526, 1438, 1465, 1470, 1435, 1510, 1441, 1412, 1503, 1444, 1535, 1442, 1434, 1469, 1512, 1474, 1419, 1430, 1479, 1511, 1492, 1486, 1422, 1487, 1515, 1461, 1529, 1460, 1427, 1452, 1506, 1522, 1430, 1438, 1487, 1414, 1420, 1510, 1447, 1509, 1433, 1482, 1424, 1415, 1446, 1493, 1518, 1417, 1485, 1441, 1434, 1490, 1484, 1462, 1520, 1410, 1418, 1423, 1427, 1527, 1524, 1533, 1471, 1483, 1457, 1451, 1502, 1521, 1460, 1498, 1523, 1473, 1412, 1479, 1448, 1536, 1508, 1439, 1416, 1443, 1500, 1519, 1419, 1470, 1522, 1513, 1477, 1480, 1516, 1425, 1512, 1411, 1472, 1454, 1474, 1444, 1459, 1432, 1496, 1426, 1440, 1467, 1491, 1489, 1504, 1463, 1481, 1449, 1514, 1476, 1530, 1450, 1505, 1532, 1442, 1468, 1445, 1456, 1429, 1413, 1492, 1517, 1466, 1437, 1475, 1525, 1422, 1465, 1495, 1421, 1529, 1507, 1526, 1458, 1511, 1499, 1453, 1488, 1534, 1535, 1497, 1436, 1428, 1478, 1486, 1515, 1528, 1431, 1469, 1452, 1409, 1501, 1461, 1503, 1531, 1464, 1494, 1455, 1506, 1435 }; const uint16_t HRAa_1536_512_H_cols[] = { 111, 16, 113, 75, 13, 40, 66, 121, 126, 22, 127, 120, 59, 101, 19, 52, 114, 98, 123, 80, 5, 108, 117, 81, 94, 88, 50, 79, 26, 86, 3, 39, 6, 12, 104, 84, 43, 119, 4, 53, 49, 95, 100, 27, 60, 55, 76, 87, 92, 38, 82, 78, 24, 15, 61, 124, 45, 72, 29, 90, 34, 62, 85, 110, 122, 67, 18, 20, 35, 107, 33, 102, 31, 116, 46, 28, 32, 74, 58, 47, 106, 71, 68, 115, 41, 93, 91, 48, 69, 8, 7, 64, 97, 118, 17, 70, 57, 2, 44, 23, 99, 42, 63, 25, 73, 37, 77, 83, 89, 56, 10, 30, 112, 21, 105, 65, 128, 9, 54, 14, 125, 1, 96, 103, 109, 11, 51, 36, 59, 128, 26, 10, 11, 6, 43, 50, 37, 94, 75, 98, 121, 123, 21, 15, 84, 9, 60, 62, 110, 53, 40, 80, 90, 58, 35, 17, 71, 30, 4, 92, 28, 49, 83, 36, 88, 41, 82, 86, 48, 3, 34, 45, 31, 22, 104, 46, 116, 39, 97, 42, 102, 93, 38, 25, 100, 122, 33, 79, 47, 106, 95, 19, 111, 126, 57, 115, 72, 18, 23, 44, 91, 105, 99, 32, 63, 8, 12, 14, 81, 55, 20, 54, 16, 5, 109, 65, 120, 85, 69, 103, 114, 125, 1, 113, 73, 127, 61, 51, 101, 27, 56, 118, 66, 108, 89, 70, 29, 78, 7, 74, 77, 87, 117, 124, 96, 68, 119, 67, 2, 13, 112, 52, 107, 24, 64, 76, 43, 80, 48, 78, 3, 113, 100, 92, 104, 47, 74, 69, 64, 35, 33, 55, 30, 102, 124, 4, 66, 11, 101, 126, 9, 119, 2, 85, 99, 65, 107, 111, 77, 20, 28, 23, 5, 15, 73, 120, 44, 51, 123, 121, 83, 125, 94, 39, 81, 32, 36, 84, 63, 52, 72, 93, 70, 67, 71, 62, 10, 89, 127, 45, 122, 42, 108, 56, 53, 27, 18, 37, 90, 98, 86, 1, 106, 115, 96, 6, 46, 87, 91, 29, 34, 82, 57, 76, 31, 21, 105, 95, 117, 16, 24, 13, 59, 25, 110, 12, 7, 68, 97, 38, 22, 40, 26, 61, 112, 79, 14, 50, 8, 60, 54, 128, 103, 58, 109, 19, 49, 116, 114, 88, 75, 41, 118, 17, 96, 87, 72, 27, 105, 29, 50, 114, 112, 56, 43, 82, 118, 117, 79, 45, 111, 61, 115, 5, 69, 97, 21, 46, 23, 44, 57, 71, 6, 73, 37, 32, 33, 18, 123, 121, 107, 100, 20, 49, 24, 1, 42, 94, 85, 70, 60, 41, 65, 103, 104, 76, 102, 88, 14, 66, 48, 12, 16, 26, 91, 58, 93, 35, 2, 68, 39, 122, 116, 54, 4, 90, 109, 127, 7, 63, 78, 92, 98, 89, 99, 51, 77, 13, 8, 128, 40, 80, 125, 22, 25, 47, 120, 53, 36, 17, 55, 52, 15, 59, 11, 83, 3, 75, 106, 30, 62, 74, 9, 64, 86, 28, 108, 126, 110, 67, 38, 101, 31, 124, 84, 81, 19, 10, 34, 113, 119, 95, 11, 103, 104, 38, 47, 69, 88, 93, 97, 40, 46, 117, 70, 107, 30, 78, 72, 121, 9, 59, 63, 10, 115, 111, 48, 98, 16, 77, 28, 50, 105, 19, 32, 57, 37, 101, 126, 17, 26, 90, 39, 123, 122, 82, 108, 42, 80, 125, 67, 116, 91, 58, 81, 112, 20, 41, 127, 43, 85, 114, 128, 84, 13, 3, 76, 68, 119, 94, 86, 64, 27, 120, 65, 1, 87, 62, 6, 113, 35, 24, 15, 33, 23, 83, 8, 29, 31, 110, 49, 96, 75, 99, 14, 124, 106, 4, 56, 34, 79, 25, 71, 74, 73, 51, 2, 61, 44, 12, 55, 52, 66, 102, 89, 109, 5, 22, 54, 118, 100, 53, 36, 7, 92, 60, 21, 45, 18, 95, 89, 73, 70, 53, 28, 50, 2, 75, 120, 15, 8, 111, 29, 1, 100, 19, 110, 14, 43, 71, 69, 82, 78, 52, 18, 92, 27, 79, 108, 12, 124, 6, 105, 106, 10, 63, 116, 38, 99, 72, 97, 98, 9, 35, 80, 59, 125, 91, 67, 37, 30, 112, 55, 101, 16, 109, 4, 113, 114, 62, 17, 22, 86, 104, 7, 93, 119, 41, 77, 42, 26, 96, 88, 34, 68, 49, 13, 3, 60, 33, 40, 36, 20, 46, 85, 24, 81, 54, 51, 21, 23, 76, 32, 65, 117, 87, 83, 121, 95, 74, 118, 11, 31, 127, 94, 58, 84, 48, 44, 25, 45, 5, 57, 39, 126, 64, 107, 47, 56, 103, 128, 61, 115, 90, 66, 123, 102, 122, 3, 51, 57, 41, 39, 31, 118, 107, 55, 62, 75, 66, 36, 126, 24, 108, 8, 44, 92, 85, 21, 121, 72, 35, 77, 117, 114, 64, 58, 43, 13, 94, 17, 49, 54, 112, 6, 104, 38, 34, 65, 91, 27, 29, 124, 78, 42, 123, 115, 26, 1, 89, 109, 16, 10, 80, 81, 70, 4, 87, 119, 111, 14, 48, 30, 74, 83, 40, 98, 97, 96, 47, 12, 88, 128, 20, 15, 116, 63, 106, 101, 25, 32, 11, 82, 95, 69, 7, 127, 68, 45, 22, 84, 76, 93, 19, 50, 18, 105, 46, 37, 2, 99, 67, 71, 110, 90, 86, 23, 73, 122, 79, 100, 125, 113, 28, 9, 59, 5, 61, 120, 33, 53, 56, 103, 102, 60, 52, 90, 107, 40, 125, 123, 20, 96, 72, 119, 71, 88, 92, 50, 30, 2, 56, 79, 33, 63, 28, 34, 80, 116, 108, 22, 51, 115, 32, 126, 74, 13, 102, 81, 66, 29, 4, 25, 43, 75, 127, 21, 94, 114, 57, 12, 100, 58, 9, 111, 76, 8, 118, 1, 3, 128, 84, 46, 61, 95, 5, 91, 87, 54, 69, 38, 15, 52, 120, 24, 42, 37, 7, 62, 103, 117, 89, 48, 35, 85, 112, 121, 6, 59, 11, 31, 113, 18, 10, 64, 36, 47, 98, 104, 83, 53, 78, 23, 73, 82, 70, 39, 44, 16, 99, 60, 41, 97, 26, 105, 101, 106, 45, 49, 109, 55, 67, 86, 124, 65, 77, 68, 122, 110, 14, 17, 27, 93, 19, 72, 124, 31, 128, 44, 28, 92, 126, 82, 12, 48, 25, 30, 9, 117, 104, 47, 108, 98, 81, 53, 45, 15, 40, 71, 62, 85, 70, 106, 16, 63, 75, 26, 79, 8, 74, 110, 68, 57, 23, 6, 99, 105, 36, 19, 49, 107, 109, 91, 125, 122, 18, 86, 65, 14, 116, 67, 103, 11, 32, 89, 22, 84, 52, 101, 90, 51, 37, 39, 119, 61, 58, 60, 123, 29, 114, 3, 41, 102, 43, 80, 59, 2, 76, 78, 87, 42, 66, 95, 115, 10, 17, 88, 100, 127, 20, 46, 94, 50, 111, 35, 21, 93, 27, 112, 97, 54, 1, 24, 33, 113, 77, 38, 34, 56, 118, 121, 69, 83, 96, 5, 73, 7, 55, 64, 4, 13, 120, 19, 102, 38, 87, 6, 93, 60, 124, 33, 42, 13, 127, 54, 7, 91, 61, 37, 95, 104, 26, 67, 55, 18, 75, 122, 12, 116, 68, 52, 16, 25, 57, 66, 39, 97, 110, 92, 48, 76, 83, 14, 59, 36, 74, 125, 51, 4, 121, 120, 40, 28, 99, 62, 70, 88, 10, 108, 123, 11, 107, 118, 2, 64, 85, 44, 84, 96, 73, 81, 31, 106, 50, 80, 103, 30, 47, 69, 56, 9, 94, 3, 53, 5, 128, 63, 119, 43, 112, 27, 117, 115, 46, 78, 72, 114, 20, 1, 109, 23, 24, 82, 35, 101, 111, 126, 45, 100, 17, 79, 89, 8, 65, 113, 29, 22, 105, 58, 15, 21, 86, 71, 34, 77, 90, 32, 49, 41, 98, 60, 30, 89, 18, 117, 22, 10, 9, 99, 108, 90, 95, 123, 58, 101, 50, 119, 1, 127, 71, 41, 69, 35, 17, 83, 84, 103, 42, 27, 40, 39, 118, 93, 33, 75, 96, 110, 113, 73, 8, 21, 111, 48, 81, 100, 26, 66, 24, 4, 97, 5, 46, 28, 19, 82, 116, 3, 91, 105, 114, 126, 13, 62, 109, 79, 122, 121, 124, 7, 53, 37, 15, 16, 106, 63, 120, 128, 47, 44, 23, 55, 31, 57, 51, 29, 14, 49, 61, 38, 85, 54, 52, 104, 107, 92, 102, 59, 67, 77, 11, 25, 76, 36, 98, 32, 6, 34, 68, 125, 86, 88, 70, 64, 112, 45, 56, 20, 94, 65, 43, 87, 12, 2, 74, 80, 72, 115, 78, 13, 43, 100, 80, 62, 40, 19, 37, 25, 45, 15, 106, 124, 28, 93, 6, 82, 90, 5, 2, 21, 111, 34, 69, 68, 75, 48, 57, 58, 125, 9, 56, 102, 78, 42, 115, 12, 46, 114, 87, 91, 63, 20, 119, 113, 60, 107, 47, 51, 103, 14, 120, 1, 38, 8, 61, 101, 116, 70, 105, 72, 97, 3, 64, 32, 41, 123, 27, 67, 29, 74, 128, 18, 122, 16, 26, 86, 17, 11, 88, 4, 126, 71, 52, 94, 117, 54, 92, 79, 98, 77, 53, 110, 30, 104, 127, 35, 95, 89, 59, 65, 118, 121, 96, 55, 7, 76, 73, 50, 112, 84, 83, 39, 10, 36, 31, 49, 109, 23, 22, 66, 81, 24, 85, 108, 99, 33, 44, 235, 189, 247, 148, 168, 145, 143, 242, 214, 210, 144, 241, 218, 177, 205, 183, 134, 162, 141, 150, 163, 186, 132, 245, 253, 201, 200, 175, 244, 180, 139, 233, 182, 164, 184, 137, 142, 252, 254, 212, 133, 160, 178, 239, 129, 131, 146, 224, 229, 223, 194, 209, 169, 230, 152, 226, 149, 179, 221, 232, 135, 250, 231, 197, 191, 193, 172, 203, 204, 238, 234, 222, 181, 237, 207, 176, 251, 243, 211, 219, 215, 154, 171, 196, 158, 240, 153, 156, 147, 157, 190, 173, 248, 188, 151, 246, 256, 192, 138, 165, 185, 216, 166, 217, 227, 155, 140, 170, 174, 187, 202, 136, 167, 236, 130, 249, 228, 198, 213, 161, 195, 255, 208, 206, 159, 199, 220, 225, 132, 217, 191, 135, 202, 166, 153, 168, 158, 165, 133, 220, 175, 210, 225, 204, 209, 196, 154, 203, 238, 242, 174, 170, 214, 221, 194, 169, 252, 144, 150, 157, 159, 218, 215, 136, 249, 227, 229, 141, 241, 250, 253, 240, 234, 206, 162, 192, 155, 131, 251, 182, 178, 186, 200, 222, 130, 237, 212, 239, 189, 197, 138, 161, 223, 184, 245, 152, 254, 211, 226, 256, 176, 193, 199, 232, 235, 147, 163, 190, 139, 207, 187, 160, 171, 247, 224, 201, 248, 149, 230, 228, 213, 164, 216, 181, 156, 172, 243, 142, 173, 137, 195, 129, 244, 167, 146, 183, 198, 148, 255, 185, 179, 140, 180, 134, 205, 231, 219, 145, 143, 233, 246, 208, 151, 236, 188, 177, 219, 203, 233, 175, 224, 234, 162, 192, 254, 191, 164, 200, 171, 225, 178, 185, 212, 251, 163, 236, 222, 249, 131, 170, 207, 155, 149, 213, 202, 198, 206, 135, 168, 181, 151, 214, 238, 156, 220, 143, 235, 144, 197, 174, 231, 186, 184, 239, 169, 180, 250, 132, 252, 147, 208, 196, 210, 172, 201, 232, 129, 138, 253, 205, 150, 177, 141, 153, 152, 165, 146, 167, 140, 242, 139, 246, 176, 134, 166, 221, 228, 189, 211, 243, 136, 160, 133, 148, 216, 217, 240, 195, 137, 245, 229, 157, 188, 256, 215, 237, 179, 182, 194, 154, 223, 187, 204, 161, 145, 183, 173, 227, 226, 209, 142, 130, 193, 159, 247, 255, 158, 230, 244, 199, 241, 248, 190, 218, 216, 153, 201, 231, 174, 252, 139, 166, 187, 134, 217, 197, 190, 234, 238, 225, 164, 181, 220, 141, 140, 158, 189, 250, 213, 163, 160, 236, 243, 207, 155, 138, 235, 204, 246, 135, 203, 159, 233, 149, 179, 171, 232, 210, 152, 165, 143, 209, 200, 146, 145, 182, 241, 196, 130, 133, 229, 180, 170, 226, 169, 192, 214, 239, 167, 208, 251, 137, 205, 175, 162, 157, 222, 255, 148, 224, 151, 253, 228, 176, 218, 186, 230, 168, 136, 206, 242, 150, 178, 219, 131, 245, 223, 199, 147, 185, 188, 254, 237, 247, 211, 173, 244, 184, 154, 172, 212, 198, 221, 256, 248, 193, 249, 142, 132, 161, 202, 191, 240, 194, 177, 195, 215, 129, 227, 144, 183, 156, 180, 251, 130, 235, 203, 192, 206, 221, 146, 241, 129, 170, 157, 249, 139, 196, 205, 208, 240, 137, 231, 190, 215, 160, 193, 219, 254, 182, 144, 138, 204, 228, 214, 178, 252, 188, 253, 143, 159, 224, 246, 225, 171, 156, 238, 226, 166, 161, 173, 236, 232, 194, 195, 169, 218, 230, 181, 183, 184, 167, 211, 244, 245, 223, 165, 213, 152, 151, 158, 155, 199, 142, 233, 220, 248, 185, 209, 242, 191, 168, 256, 134, 174, 255, 179, 172, 150, 247, 153, 176, 243, 186, 201, 198, 217, 132, 189, 133, 234, 177, 237, 164, 197, 250, 135, 136, 131, 212, 200, 148, 229, 202, 141, 140, 154, 227, 145, 162, 163, 147, 239, 216, 222, 207, 187, 175, 210, 149, 211, 173, 189, 252, 130, 153, 187, 201, 133, 214, 246, 143, 181, 163, 256, 209, 160, 150, 203, 232, 236, 234, 154, 202, 242, 146, 238, 251, 156, 140, 188, 235, 186, 179, 194, 148, 149, 241, 208, 161, 240, 132, 184, 223, 168, 176, 198, 247, 229, 138, 162, 172, 239, 180, 158, 207, 190, 248, 253, 230, 220, 225, 250, 134, 167, 129, 233, 196, 171, 157, 200, 164, 137, 141, 136, 178, 147, 182, 249, 170, 145, 204, 243, 169, 131, 152, 139, 224, 183, 216, 219, 205, 210, 245, 215, 244, 185, 151, 135, 221, 166, 217, 213, 199, 222, 195, 191, 193, 254, 174, 144, 159, 218, 237, 255, 155, 227, 206, 177, 197, 192, 212, 226, 165, 142, 231, 175, 228, 246, 215, 213, 249, 187, 225, 178, 238, 171, 214, 254, 191, 177, 147, 160, 138, 169, 163, 165, 231, 192, 190, 221, 139, 202, 166, 164, 198, 239, 143, 204, 243, 144, 156, 182, 242, 184, 153, 193, 197, 176, 129, 207, 185, 170, 131, 167, 149, 145, 229, 172, 130, 168, 222, 142, 244, 158, 162, 146, 219, 133, 250, 141, 155, 205, 140, 188, 210, 247, 212, 216, 175, 151, 189, 148, 237, 203, 230, 226, 180, 157, 206, 255, 220, 234, 208, 200, 218, 183, 240, 132, 252, 136, 195, 174, 137, 211, 201, 223, 196, 228, 199, 248, 241, 186, 224, 181, 233, 159, 253, 154, 134, 217, 235, 245, 161, 227, 194, 179, 232, 251, 135, 209, 150, 173, 152, 236, 256, 253, 224, 146, 236, 243, 250, 202, 201, 147, 191, 198, 143, 189, 196, 151, 211, 131, 165, 195, 166, 208, 171, 140, 244, 214, 218, 219, 228, 235, 192, 141, 173, 234, 145, 167, 251, 232, 157, 256, 132, 180, 177, 176, 138, 178, 210, 255, 156, 170, 161, 163, 150, 130, 184, 159, 238, 194, 245, 252, 204, 139, 247, 205, 240, 179, 209, 133, 246, 215, 137, 222, 175, 136, 154, 160, 158, 223, 229, 197, 199, 212, 254, 213, 206, 242, 203, 168, 249, 183, 207, 226, 220, 152, 134, 162, 237, 200, 185, 181, 230, 216, 217, 142, 182, 190, 172, 187, 169, 231, 174, 225, 188, 227, 248, 193, 241, 155, 239, 135, 186, 129, 233, 148, 144, 149, 221, 153, 164, 196, 173, 172, 148, 146, 171, 170, 221, 188, 182, 145, 240, 213, 231, 211, 254, 252, 161, 204, 218, 190, 235, 154, 144, 130, 149, 197, 192, 175, 165, 131, 227, 208, 181, 158, 224, 229, 236, 184, 251, 233, 140, 156, 228, 176, 183, 246, 249, 220, 201, 244, 189, 151, 169, 164, 200, 137, 138, 152, 245, 226, 217, 250, 256, 255, 147, 247, 193, 139, 166, 242, 230, 129, 209, 223, 159, 136, 162, 142, 187, 178, 174, 241, 179, 163, 134, 155, 157, 133, 215, 132, 203, 177, 160, 210, 167, 143, 198, 150, 239, 212, 234, 219, 225, 206, 216, 214, 168, 194, 237, 135, 191, 180, 243, 205, 253, 202, 232, 185, 199, 153, 207, 248, 195, 186, 222, 141, 238, 148, 243, 166, 188, 226, 208, 149, 215, 145, 251, 239, 191, 209, 255, 144, 222, 231, 225, 156, 180, 133, 172, 147, 183, 200, 227, 179, 195, 249, 241, 196, 242, 137, 228, 173, 160, 230, 175, 151, 134, 253, 212, 235, 250, 211, 245, 163, 237, 247, 170, 138, 224, 139, 217, 182, 206, 152, 194, 205, 132, 186, 238, 142, 181, 207, 167, 252, 214, 158, 198, 236, 199, 223, 240, 234, 146, 155, 150, 135, 131, 202, 203, 246, 219, 171, 187, 164, 218, 143, 221, 229, 220, 174, 201, 185, 140, 232, 213, 165, 254, 154, 169, 178, 161, 157, 216, 153, 193, 168, 184, 248, 159, 129, 244, 210, 190, 192, 141, 256, 176, 204, 177, 130, 197, 189, 162, 136, 233, 201, 168, 135, 226, 152, 169, 167, 205, 203, 233, 243, 232, 253, 157, 249, 133, 165, 129, 220, 246, 209, 149, 197, 208, 160, 176, 224, 206, 146, 182, 187, 211, 130, 212, 250, 140, 227, 255, 213, 225, 173, 192, 134, 184, 180, 171, 238, 191, 237, 234, 170, 139, 136, 217, 190, 247, 189, 148, 202, 251, 219, 186, 166, 241, 252, 181, 138, 158, 210, 159, 172, 194, 179, 175, 193, 164, 132, 218, 150, 235, 188, 178, 229, 230, 154, 142, 155, 215, 240, 199, 153, 223, 248, 162, 244, 161, 239, 242, 200, 196, 245, 137, 198, 214, 228, 163, 131, 145, 231, 254, 185, 256, 177, 144, 183, 207, 216, 204, 174, 151, 147, 143, 222, 195, 141, 221, 156, 236, 148, 194, 175, 167, 249, 187, 182, 211, 136, 155, 227, 208, 151, 239, 188, 203, 199, 149, 137, 195, 130, 193, 207, 219, 132, 225, 145, 212, 215, 231, 135, 240, 184, 186, 174, 205, 173, 180, 178, 218, 222, 256, 251, 179, 150, 248, 170, 204, 247, 138, 164, 189, 209, 244, 156, 255, 191, 232, 198, 176, 190, 226, 246, 241, 142, 141, 242, 221, 133, 197, 243, 185, 172, 160, 152, 183, 213, 165, 217, 234, 140, 228, 220, 196, 250, 139, 214, 159, 131, 210, 238, 206, 237, 153, 216, 147, 171, 129, 223, 253, 229, 230, 202, 168, 162, 169, 254, 157, 200, 154, 192, 143, 181, 233, 235, 245, 201, 236, 224, 134, 144, 158, 163, 146, 161, 166, 252, 177, 306, 300, 383, 261, 369, 374, 357, 269, 291, 298, 345, 275, 352, 271, 339, 321, 356, 351, 372, 371, 297, 348, 286, 259, 355, 322, 317, 373, 333, 335, 367, 360, 330, 283, 289, 370, 258, 320, 279, 379, 350, 323, 316, 264, 346, 262, 266, 325, 268, 362, 361, 353, 276, 341, 324, 378, 338, 358, 314, 313, 364, 267, 274, 281, 305, 365, 359, 265, 307, 326, 308, 340, 336, 295, 312, 257, 382, 278, 270, 302, 287, 319, 299, 377, 375, 263, 354, 293, 310, 328, 376, 309, 381, 296, 349, 342, 327, 347, 343, 282, 273, 384, 280, 260, 329, 368, 344, 284, 301, 315, 380, 277, 366, 337, 303, 285, 311, 318, 272, 332, 288, 304, 331, 290, 294, 334, 292, 363, 363, 258, 260, 346, 336, 326, 358, 355, 370, 302, 350, 332, 316, 263, 369, 310, 338, 362, 273, 282, 329, 324, 378, 376, 359, 261, 264, 268, 375, 382, 348, 284, 356, 277, 279, 341, 309, 343, 364, 334, 361, 297, 360, 384, 377, 266, 311, 313, 349, 335, 373, 312, 293, 267, 367, 292, 314, 330, 296, 342, 323, 287, 371, 272, 304, 298, 327, 269, 317, 274, 278, 372, 303, 337, 383, 320, 351, 365, 321, 344, 276, 381, 290, 300, 374, 325, 366, 315, 301, 259, 347, 319, 322, 339, 262, 306, 368, 352, 280, 283, 270, 257, 318, 345, 357, 328, 275, 340, 281, 285, 271, 286, 288, 291, 308, 307, 295, 299, 379, 353, 331, 289, 294, 265, 380, 354, 333, 305, 325, 259, 305, 334, 316, 288, 378, 358, 361, 289, 326, 364, 376, 339, 275, 335, 263, 297, 338, 377, 352, 310, 349, 299, 381, 383, 363, 291, 308, 277, 351, 366, 374, 321, 328, 270, 373, 306, 274, 372, 350, 365, 281, 340, 337, 267, 298, 279, 345, 280, 370, 356, 292, 312, 342, 360, 329, 324, 285, 309, 344, 367, 347, 258, 341, 304, 303, 266, 353, 284, 276, 287, 290, 319, 322, 294, 295, 314, 336, 379, 348, 296, 359, 268, 260, 264, 271, 283, 282, 257, 318, 265, 269, 333, 362, 382, 323, 384, 320, 315, 286, 301, 311, 262, 369, 261, 302, 357, 293, 331, 354, 368, 375, 272, 278, 371, 327, 313, 330, 355, 317, 273, 307, 300, 380, 332, 343, 346, 300, 340, 277, 290, 283, 282, 293, 366, 319, 304, 279, 381, 305, 361, 333, 301, 365, 353, 317, 356, 370, 308, 295, 330, 372, 343, 302, 346, 378, 324, 323, 292, 266, 280, 268, 316, 259, 374, 339, 257, 261, 285, 313, 272, 258, 345, 298, 352, 311, 310, 263, 264, 267, 329, 289, 360, 364, 380, 320, 286, 287, 322, 351, 297, 315, 338, 375, 276, 344, 326, 309, 368, 303, 278, 337, 335, 294, 354, 384, 383, 271, 288, 260, 331, 269, 306, 367, 325, 299, 284, 312, 379, 270, 318, 363, 262, 342, 382, 291, 273, 341, 373, 332, 371, 281, 349, 296, 307, 274, 357, 336, 347, 355, 265, 377, 321, 350, 348, 358, 275, 314, 334, 376, 359, 369, 327, 328, 362, 275, 259, 380, 381, 271, 320, 345, 293, 354, 334, 317, 288, 353, 372, 349, 313, 378, 287, 331, 379, 289, 286, 377, 263, 297, 336, 282, 341, 357, 323, 343, 356, 284, 338, 269, 328, 365, 376, 322, 290, 344, 374, 325, 382, 281, 268, 296, 309, 316, 300, 347, 266, 311, 295, 298, 267, 337, 291, 276, 257, 292, 333, 368, 261, 373, 273, 364, 358, 375, 274, 324, 312, 278, 335, 339, 283, 329, 384, 321, 348, 315, 260, 294, 359, 304, 264, 326, 305, 352, 330, 360, 361, 280, 270, 362, 342, 258, 371, 327, 332, 340, 355, 367, 308, 265, 351, 303, 366, 306, 363, 279, 272, 369, 262, 346, 350, 318, 307, 383, 310, 319, 277, 302, 301, 370, 285, 299, 314, 280, 269, 366, 362, 384, 360, 262, 321, 383, 314, 361, 265, 381, 372, 325, 305, 294, 344, 259, 297, 371, 322, 309, 313, 292, 375, 379, 316, 382, 307, 304, 282, 281, 356, 345, 319, 355, 315, 323, 283, 330, 274, 263, 342, 332, 284, 302, 335, 324, 272, 278, 257, 303, 311, 276, 339, 260, 271, 376, 377, 261, 312, 359, 285, 357, 353, 334, 258, 299, 365, 340, 298, 336, 286, 328, 378, 358, 291, 341, 296, 380, 266, 289, 351, 267, 320, 350, 346, 273, 306, 295, 310, 329, 275, 367, 337, 277, 326, 374, 348, 343, 308, 290, 327, 288, 293, 368, 364, 349, 373, 279, 317, 333, 369, 338, 301, 347, 354, 331, 268, 370, 264, 318, 270, 300, 352, 287, 363, 341, 348, 376, 346, 331, 305, 340, 302, 308, 303, 315, 321, 375, 278, 298, 333, 319, 287, 334, 371, 260, 310, 263, 330, 326, 359, 282, 335, 313, 369, 342, 300, 299, 286, 379, 291, 276, 301, 355, 349, 347, 257, 304, 373, 294, 336, 290, 270, 306, 363, 383, 370, 262, 297, 284, 293, 384, 329, 358, 367, 277, 374, 267, 356, 353, 352, 272, 311, 323, 324, 368, 344, 362, 325, 380, 261, 328, 288, 317, 345, 279, 337, 296, 372, 271, 266, 382, 274, 273, 275, 264, 312, 343, 366, 361, 351, 316, 350, 381, 322, 292, 360, 285, 283, 314, 339, 338, 268, 269, 289, 354, 309, 365, 377, 307, 258, 332, 357, 295, 320, 281, 378, 318, 327, 280, 265, 259, 364, 346, 315, 371, 265, 305, 322, 321, 354, 273, 297, 257, 378, 345, 343, 275, 299, 278, 314, 353, 327, 335, 329, 338, 362, 326, 285, 323, 279, 369, 267, 298, 324, 309, 351, 319, 291, 336, 276, 333, 328, 292, 286, 280, 277, 288, 379, 259, 380, 260, 381, 296, 318, 364, 368, 287, 334, 375, 382, 270, 284, 342, 263, 266, 311, 360, 384, 258, 320, 363, 370, 359, 366, 341, 272, 316, 281, 356, 374, 282, 367, 302, 301, 295, 365, 339, 308, 337, 376, 283, 293, 330, 352, 361, 304, 271, 268, 300, 355, 290, 349, 331, 261, 348, 372, 313, 358, 274, 344, 373, 357, 294, 289, 317, 303, 310, 383, 325, 377, 312, 306, 347, 340, 307, 264, 269, 350, 332, 262, 257, 328, 348, 336, 323, 303, 339, 374, 351, 379, 272, 327, 274, 333, 352, 278, 359, 314, 370, 300, 267, 290, 270, 380, 261, 275, 260, 289, 259, 345, 330, 291, 284, 271, 310, 258, 340, 324, 301, 357, 365, 295, 329, 322, 307, 364, 384, 342, 283, 276, 338, 305, 296, 335, 282, 349, 266, 263, 298, 268, 371, 366, 313, 281, 319, 318, 356, 317, 382, 373, 381, 308, 299, 367, 286, 277, 331, 372, 315, 287, 269, 377, 341, 311, 346, 360, 306, 353, 285, 383, 355, 280, 321, 344, 376, 332, 343, 350, 375, 279, 316, 302, 354, 368, 325, 361, 304, 334, 312, 369, 347, 363, 273, 297, 358, 288, 264, 320, 378, 294, 337, 309, 262, 326, 362, 293, 265, 292, 261, 302, 357, 382, 328, 356, 346, 338, 340, 378, 323, 310, 342, 314, 279, 313, 326, 308, 309, 352, 322, 320, 269, 293, 315, 334, 345, 384, 376, 271, 379, 281, 381, 329, 289, 264, 301, 362, 266, 305, 278, 280, 262, 344, 268, 333, 283, 339, 321, 298, 368, 365, 377, 257, 336, 258, 273, 274, 306, 288, 304, 292, 307, 311, 335, 359, 296, 369, 349, 366, 284, 263, 332, 343, 276, 272, 330, 361, 363, 270, 347, 372, 316, 265, 290, 348, 260, 312, 324, 380, 286, 277, 337, 275, 383, 291, 331, 364, 367, 319, 353, 373, 371, 287, 325, 358, 285, 351, 318, 327, 294, 267, 300, 374, 317, 295, 354, 355, 259, 370, 360, 303, 341, 299, 375, 297, 282, 350, 326, 332, 286, 360, 328, 335, 312, 353, 267, 337, 371, 317, 344, 298, 340, 294, 363, 362, 383, 316, 320, 339, 368, 263, 282, 380, 381, 318, 366, 377, 348, 306, 309, 315, 350, 322, 382, 303, 301, 374, 330, 357, 272, 319, 268, 346, 352, 376, 345, 351, 370, 323, 321, 365, 367, 285, 260, 265, 277, 280, 341, 262, 324, 349, 271, 289, 295, 281, 300, 364, 297, 359, 333, 334, 355, 358, 375, 276, 361, 284, 261, 273, 275, 274, 378, 293, 379, 343, 372, 305, 290, 283, 331, 291, 299, 259, 336, 384, 369, 257, 342, 304, 270, 329, 311, 327, 373, 278, 313, 266, 307, 354, 269, 347, 296, 338, 279, 314, 258, 288, 292, 325, 287, 302, 356, 310, 264, 308, 294, 308, 296, 360, 304, 275, 341, 302, 305, 266, 369, 314, 269, 375, 291, 339, 349, 280, 381, 350, 327, 370, 329, 259, 316, 365, 357, 333, 257, 354, 313, 348, 359, 364, 261, 362, 332, 268, 287, 276, 331, 326, 267, 382, 286, 297, 295, 262, 323, 288, 309, 380, 378, 274, 334, 303, 355, 321, 289, 318, 366, 356, 279, 278, 307, 368, 352, 345, 277, 270, 371, 310, 317, 315, 319, 290, 283, 374, 376, 337, 306, 336, 351, 373, 271, 324, 311, 340, 330, 282, 273, 258, 264, 298, 361, 300, 342, 383, 346, 325, 284, 358, 372, 367, 335, 347, 377, 312, 292, 344, 293, 343, 263, 384, 281, 338, 301, 353, 260, 265, 379, 272, 299, 322, 285, 328, 363, 320, 512, 488, 426, 457, 396, 504, 503, 496, 413, 458, 387, 435, 420, 401, 403, 432, 394, 459, 443, 483, 484, 467, 388, 391, 422, 449, 473, 430, 497, 486, 511, 450, 424, 395, 463, 493, 433, 392, 415, 400, 417, 437, 448, 439, 502, 447, 508, 466, 510, 409, 479, 419, 477, 482, 390, 411, 407, 476, 500, 427, 494, 478, 386, 460, 429, 505, 385, 442, 434, 441, 491, 423, 495, 444, 389, 402, 487, 445, 399, 425, 462, 405, 489, 410, 506, 416, 490, 404, 418, 393, 455, 481, 454, 436, 469, 472, 480, 465, 509, 406, 485, 408, 398, 461, 438, 440, 474, 492, 428, 475, 431, 499, 498, 412, 464, 456, 451, 501, 414, 421, 397, 507, 470, 446, 468, 453, 471, 452, 404, 462, 511, 405, 418, 435, 392, 474, 438, 510, 437, 461, 400, 432, 401, 485, 499, 427, 475, 421, 453, 495, 459, 426, 422, 447, 442, 429, 456, 481, 443, 444, 397, 386, 420, 424, 468, 508, 505, 448, 415, 487, 486, 480, 482, 395, 473, 449, 411, 394, 494, 406, 403, 470, 500, 451, 476, 399, 507, 454, 472, 388, 491, 483, 396, 452, 425, 455, 436, 439, 409, 416, 385, 502, 469, 504, 402, 501, 490, 458, 445, 417, 484, 414, 391, 488, 471, 477, 466, 440, 434, 493, 423, 492, 489, 497, 450, 464, 506, 446, 390, 498, 463, 428, 512, 413, 467, 460, 433, 398, 387, 441, 410, 478, 430, 496, 479, 457, 407, 509, 419, 503, 412, 431, 393, 465, 408, 389, 430, 460, 466, 412, 468, 483, 443, 497, 486, 431, 452, 435, 491, 487, 445, 482, 509, 492, 484, 403, 436, 473, 453, 392, 420, 496, 389, 500, 397, 479, 456, 417, 469, 406, 480, 475, 393, 394, 411, 390, 447, 494, 476, 462, 501, 400, 504, 402, 461, 410, 467, 387, 490, 499, 505, 512, 457, 427, 401, 458, 471, 489, 398, 478, 459, 413, 506, 472, 449, 508, 477, 451, 498, 464, 465, 481, 433, 421, 470, 502, 441, 404, 450, 429, 439, 495, 440, 437, 432, 408, 424, 399, 444, 423, 428, 442, 405, 455, 485, 422, 493, 396, 438, 386, 418, 385, 416, 409, 426, 415, 407, 474, 503, 507, 419, 454, 434, 463, 425, 395, 448, 414, 391, 510, 446, 511, 488, 388, 388, 498, 442, 389, 475, 398, 397, 462, 416, 424, 439, 441, 436, 463, 400, 402, 393, 423, 481, 412, 472, 470, 488, 491, 420, 421, 449, 425, 493, 486, 456, 417, 468, 411, 446, 435, 451, 511, 478, 508, 413, 450, 392, 479, 461, 496, 509, 502, 443, 385, 452, 404, 406, 426, 394, 476, 477, 453, 429, 494, 455, 506, 500, 433, 454, 430, 466, 484, 474, 395, 487, 387, 444, 471, 482, 434, 473, 499, 414, 396, 408, 431, 418, 501, 391, 459, 399, 495, 401, 448, 512, 432, 390, 405, 437, 428, 409, 504, 469, 507, 445, 505, 386, 464, 485, 410, 503, 480, 489, 457, 483, 427, 407, 422, 458, 492, 419, 440, 497, 465, 510, 403, 490, 467, 415, 447, 438, 460, 475, 402, 497, 395, 439, 390, 481, 472, 408, 469, 456, 489, 457, 505, 430, 424, 447, 416, 508, 441, 415, 434, 473, 429, 405, 491, 459, 425, 410, 409, 451, 435, 479, 394, 488, 468, 399, 493, 407, 462, 455, 403, 387, 484, 483, 431, 391, 460, 404, 477, 453, 414, 506, 482, 500, 393, 406, 478, 471, 485, 449, 433, 463, 490, 467, 452, 420, 474, 426, 458, 501, 487, 504, 510, 486, 385, 386, 398, 417, 389, 432, 423, 454, 507, 419, 421, 494, 422, 400, 450, 492, 427, 470, 465, 438, 444, 511, 396, 418, 437, 461, 499, 443, 436, 480, 442, 495, 440, 448, 446, 411, 397, 392, 502, 413, 496, 476, 498, 509, 401, 428, 512, 466, 503, 445, 388, 464, 412, 477, 432, 414, 415, 489, 389, 474, 464, 484, 507, 434, 417, 498, 492, 445, 398, 458, 407, 455, 427, 424, 479, 452, 490, 409, 471, 390, 491, 472, 505, 399, 502, 450, 463, 425, 396, 495, 406, 430, 466, 512, 453, 510, 411, 435, 475, 393, 485, 438, 493, 433, 426, 509, 478, 437, 401, 481, 467, 395, 403, 508, 449, 385, 392, 405, 500, 446, 457, 448, 394, 501, 421, 419, 460, 447, 429, 470, 504, 465, 420, 410, 440, 386, 497, 462, 408, 454, 391, 496, 441, 456, 459, 473, 431, 397, 444, 388, 482, 387, 506, 483, 503, 451, 412, 416, 487, 511, 428, 486, 402, 461, 439, 480, 418, 400, 442, 468, 404, 443, 469, 494, 423, 436, 499, 476, 413, 488, 422, 482, 404, 499, 474, 470, 510, 387, 440, 445, 458, 392, 471, 389, 452, 477, 444, 466, 408, 468, 429, 396, 428, 418, 413, 467, 450, 438, 410, 492, 495, 420, 465, 483, 505, 500, 432, 402, 485, 397, 401, 427, 491, 457, 460, 502, 454, 386, 488, 463, 442, 419, 415, 443, 411, 388, 403, 416, 406, 461, 490, 489, 487, 476, 494, 484, 407, 511, 394, 469, 409, 414, 426, 405, 449, 504, 433, 459, 462, 478, 435, 493, 501, 481, 421, 486, 399, 448, 464, 475, 430, 479, 498, 390, 398, 496, 439, 437, 506, 480, 509, 412, 395, 431, 447, 453, 508, 446, 434, 512, 417, 472, 507, 473, 424, 451, 385, 497, 436, 425, 503, 441, 423, 393, 456, 400, 391, 455, 422, 454, 475, 404, 419, 488, 408, 494, 500, 387, 434, 412, 452, 401, 391, 503, 508, 432, 468, 396, 417, 392, 441, 411, 511, 439, 504, 476, 458, 453, 473, 385, 484, 501, 386, 489, 482, 512, 422, 498, 466, 403, 424, 481, 487, 402, 442, 420, 499, 429, 492, 423, 493, 415, 480, 389, 467, 456, 433, 418, 485, 410, 447, 388, 414, 445, 490, 409, 477, 472, 390, 446, 507, 405, 479, 465, 460, 448, 457, 438, 397, 427, 455, 464, 502, 509, 399, 469, 461, 443, 431, 444, 470, 505, 398, 486, 459, 497, 400, 428, 395, 449, 483, 425, 421, 430, 440, 478, 450, 435, 496, 506, 463, 407, 462, 436, 510, 426, 474, 451, 416, 471, 394, 413, 393, 495, 491, 406, 437, 467, 425, 466, 387, 474, 432, 391, 436, 473, 505, 512, 511, 503, 500, 491, 452, 440, 404, 464, 499, 418, 495, 398, 429, 417, 410, 460, 424, 507, 449, 478, 386, 457, 454, 492, 465, 501, 504, 409, 412, 486, 395, 431, 422, 477, 402, 487, 483, 450, 414, 399, 459, 388, 396, 405, 441, 468, 498, 448, 394, 423, 461, 485, 420, 447, 493, 455, 451, 426, 439, 488, 427, 442, 428, 470, 453, 463, 445, 434, 443, 397, 438, 508, 482, 476, 480, 479, 497, 481, 510, 403, 433, 446, 416, 393, 509, 475, 408, 407, 471, 430, 400, 437, 406, 490, 506, 385, 462, 469, 415, 496, 421, 390, 401, 489, 472, 484, 458, 494, 392, 435, 413, 444, 502, 419, 456, 389, 411, 447, 472, 507, 426, 392, 488, 434, 461, 411, 393, 404, 495, 424, 439, 471, 493, 483, 435, 412, 469, 385, 421, 468, 462, 429, 511, 397, 480, 405, 442, 497, 433, 391, 458, 419, 399, 476, 448, 410, 395, 413, 401, 428, 506, 454, 415, 443, 474, 457, 464, 500, 438, 481, 406, 389, 432, 492, 437, 510, 463, 430, 504, 502, 498, 416, 422, 485, 477, 450, 508, 446, 512, 449, 452, 484, 440, 444, 400, 482, 459, 470, 490, 414, 499, 503, 423, 479, 431, 418, 407, 473, 455, 496, 417, 408, 441, 445, 486, 398, 388, 465, 386, 402, 475, 453, 456, 491, 489, 451, 420, 396, 501, 509, 505, 467, 394, 390, 409, 387, 478, 403, 466, 487, 460, 436, 494, 425, 427, 447, 493, 422, 492, 460, 388, 418, 461, 449, 412, 415, 490, 464, 405, 482, 439, 446, 480, 438, 386, 395, 462, 444, 510, 399, 435, 458, 400, 505, 470, 506, 469, 385, 427, 401, 467, 390, 475, 448, 423, 453, 479, 491, 426, 425, 431, 474, 497, 484, 501, 499, 409, 494, 511, 488, 500, 393, 472, 429, 471, 502, 434, 487, 408, 454, 465, 481, 424, 419, 508, 463, 398, 466, 410, 489, 498, 430, 403, 486, 428, 417, 413, 394, 459, 440, 483, 451, 436, 392, 414, 457, 441, 504, 389, 442, 455, 402, 456, 496, 411, 406, 391, 473, 387, 421, 512, 485, 416, 477, 404, 468, 495, 503, 432, 450, 476, 478, 445, 433, 420, 396, 443, 407, 437, 509, 452, 507, 397, 503, 408, 444, 425, 472, 388, 396, 431, 400, 409, 435, 389, 482, 479, 410, 395, 442, 452, 411, 495, 471, 385, 500, 450, 393, 403, 512, 494, 476, 386, 430, 453, 402, 467, 432, 448, 469, 397, 391, 427, 460, 464, 418, 502, 489, 446, 510, 470, 417, 486, 449, 421, 505, 406, 458, 508, 480, 475, 454, 468, 501, 436, 415, 445, 424, 447, 477, 462, 439, 496, 426, 440, 459, 394, 416, 405, 401, 497, 387, 490, 456, 404, 455, 473, 398, 509, 481, 451, 493, 422, 488, 433, 504, 419, 506, 457, 465, 511, 484, 429, 392, 390, 487, 443, 438, 461, 498, 441, 474, 399, 434, 407, 420, 437, 423, 413, 478, 485, 412, 499, 483, 463, 507, 466, 414, 491, 492, 428 }; const float HRAa_1536_512_input[] = { 13.386899925109432, -13.874621377458897, -16.780017007177882, -6.290312059289052, -12.12827186210024, -6.7215865007863869, -12.928496427823001, -9.5320512690650236, -7.743243384270599, 13.537963482938862, -2.7747305809320273, -12.582411711157423, -5.3802664401721669, -12.212445933608072, -7.6896834132998464, -13.886251758086326, 10.057357007368099, -0.54545642222569801, 8.205317948012846, 9.9587921963912223, 1.787839710999801, -1.8877909028033726, -5.4872655283312968, -8.062104638589874, 12.160461660371981, -15.667876557032479, 8.8975273390429983, -3.3765083480826616, 9.3816292204533749, -11.374049439344271, -10.36262436541605, 6.7202129273737032, 8.6272248519835983, 6.8202854789610363, -9.9864325836014913, -1.3405851953534818, -11.142776994932193, -1.9184371643698088, 9.7100901224681202, 8.0943424444060117, 10.207687208250547, -12.139932744539616, -8.6843097992891565, 11.103660696595387, 8.3959816215268113, -5.2149232726762502, -10.099642434219659, 8.4287998205932535, -8.1131273436353393, 11.077737095117719, 11.873290693127736, -8.3323685207242288, 8.306765838979139, -7.7344852728193692, -12.595270449431288, -11.151338526616161, 8.8518394477850517, -7.3707217826997509, -15.236586757477074, -16.861400843579382, -5.2451688100646434, -7.9139079697369601, 4.624265800939507, -3.8868901758034666, 5.149322447921163, -4.8408994988342702, -16.025567965427282, 8.9397007078167832, 11.615085927048078, 8.7522408607897013, 8.9362025413954598, -12.419911954640257, 1.3360373310499056, 5.8047604915295699, -11.499552394388353, -9.0848912468207565, -0.33403972984943742, 4.4543924597778224, 7.5516321347188526, -14.133335935201398, 5.0051740595271017, 16.889255448806885, 4.2732555534579513, 10.895662242985567, 12.023371162173557, -16.54177280794126, 16.47187146826094, -8.1320457770163532, 14.492657760424361, 5.1425318773536102, -12.674348565024257, -12.591971003025808, -11.419434896299183, -7.134364911729187, -14.456345736529295, 6.9801481308852464, 3.5178871967459839, -5.4222404575852448, 17.787168094008695, -6.2963736353761854, 6.0773417416842221, 12.129562430166006, -12.394762329795224, 10.349629378600094, 6.4331304797784803, 4.0178325470947502, -1.138956390083639, 8.1137355075137663, 13.895337237225856, 5.2871675790043309, -0.71033385965710749, -8.0604882356929117, 10.198012315557385, 11.576288688276565, 10.989989721011501, -1.8717320818182488, 10.123904063310743, 10.784665440661042, -4.3035609830061903, 9.6837773036405093, -14.835135985873862, -5.1478442440128811, -6.6505387088228947, 7.6760013089942545, 6.4660475793279915, -6.5596877295244536, -9.3116314056097949, 7.6328445056019074, 8.8548767929342613, 7.5197255274599808, -7.9120195042812034, -7.1323001875535148, 10.791556287617038, 10.084448901305496, -10.743240913473755, 12.353642192693162, -4.527053580524516, 7.3242837488860237, 11.840083930085372, -10.619537990011144, -7.6706979631015884, -10.372557115087139, -8.8632681653872467, -4.4224067975512833, 10.305320214477293, -13.718057823394824, 4.1964852185559138, -1.4362461161357318, -9.2144112590704665, 8.3877875072624768, -10.28487762491257, -9.1114457918206746, 5.9370140811870229, 14.470896650278901, 5.1658695784729174, -9.341067315095037, 13.898060872612461, -3.9942168173342556, -8.3744670385083744, 7.3185644061709123, -10.677918127800307, 8.7839855993602747, 5.9967809699512715, 7.3957884730189676, -3.2504312305872545, -9.6416522009408538, 5.8869284856565551, 6.8296803475321157, -8.8993273140276621, 6.4153892959374943, 10.71036283303145, 5.7650612619594863, 10.78849375974715, -1.4177006030538843, 1.5219866880330013, 7.6721747796307929, -5.4730436651294374, -9.5147711755665831, -15.201928353576326, 9.1070883523744062, -1.429613590187548, 10.993649358659018, 3.3503803060819508, -17.486331072327484, -10.477380738424001, -4.7161288387109055, 7.0041944951217889, -8.5563404605446678, -13.558221470146432, 1.9509536932085323, -2.1008828270020299, -6.0209650694579304, 7.2795925605768037, 6.4403696840313165, 9.6872136018234638, -10.083520911839761, 2.2569120937126366, -6.2731874949190027, -16.003233247997624, 2.6470504909477603, 1.9679136003343678, 1.084323481971722, -5.5869253766683347, 10.471030535111106, -10.141071326109691, 3.0103339932739437, -1.7669043857695677, -7.6573452029265354, -4.3258934638902158, -10.968459179578497, 15.741636049842855, -10.9522061668373, -9.4904695438104927, 10.385857264222551, 10.297120789438011, 6.5744952638429925, 5.8740095877629486, 10.799510515320124, -6.3545024936903296, -0.79879489541004711, -7.9890116216388165, -7.0895275092337746, -1.1693711835427318, -11.031571816277879, -2.7661989355564196, -12.648614251118801, 3.6890373669346022, -9.6492587977566604, 16.37751360979837, -11.834071942761344, -8.1856488251627724, -2.6452776364462234, -7.8494578072748498, -4.3583881632417762, 9.0567313787087418, -11.915674625575223, 6.3560722843437931, -12.459623655201984, 10.634887971076129, -16.922079821941349, 2.6306182284481716, -4.8306213551740491, -6.8938315321790871, -11.732112230175732, -14.980055011514212, 14.341141814607978, 9.3877580146603421, 10.212542439703331, 10.226413776118815, 1.4940604264129116, 7.7454328449595184, -17.063990479025335, 19.866966739493524, -10.140740571896508, -12.522044834618598, 7.0883420344447883, 8.639822911246295, 8.696282010555846, -4.6180581749529885, 15.128219796014116, 9.944475468031726, 3.9061050633893308, -0.44811804820690332, -9.8453458886200469, 11.310920421915538, -1.8877371033018449, -13.955810775304432, -9.3663850942658744, -13.7152384276622, 8.1778408387550972, -11.099226967110654, -0.40938224282111474, 7.407933602924528, 9.5946649739529732, 8.9692970855929381, -7.4260161983282993, -6.7127946668575396, -3.32421449686648, 11.949556138901517, 6.0724437348944251, -8.7144215382129016, -6.8610474000112394, 7.2567571883933359, -6.3499249476454329, 9.3590736715335225, -6.5503328955021827, -6.9702845680797187, -10.317890011660792, -3.6167068395322954, -4.8790397611256688, 16.56935536921031, 15.259301626496455, 4.095983810772946, -8.287550939084964, -9.9120810548007725, 9.9159918358704644, 7.7341221557626856, -6.968193796769385, 11.636066712371051, -11.761055820947789, 8.1630237309173719, 6.4488185954770767, 7.3664462176342393, 9.1231645572893783, 1.6141196499486792, -9.6504558418612536, -5.3306358019773254, -6.2121734777196425, 6.0886130638484497, -7.8160047985525329, -2.3620627464284909, -5.7089981216523924, 11.764939486817402, 6.9146263458573811, 5.4499539427791159, 9.0526658073376804, -6.4040202312779462, 1.9520703353601458, 8.8078015730086339, -2.6857890845936474, -7.4845378984175008, -10.998145344747881, 3.9650986691130394, 7.3045582654386916, 7.256277698095202, 8.8550148662006052, 4.4431559525918427, 13.61919949600221, -8.6465615710269912, 5.8013976504697808, 3.5026821856868993, -12.178296532701346, 6.9207418083416181, -4.1355644302631589, 5.5861383859524665, -14.116022346856981, 12.594015809448324, -13.393001860550452, 9.5607723957857971, -13.112365438653656, -1.6596837312771877, 8.7341819566011267, 7.4760433147262795, -8.1942077127202122, 8.3436147974653725, 9.8720061590436838, 8.0887096325543109, -17.197684682990683, -8.0196097887787907, -7.4638388448193353, 14.00243903909713, -6.2485104839226615, 11.356138541390258, 3.7545892163531427, 10.415941927557306, 12.692270186087136, 3.839016769003043, -15.395769427822605, 7.7315150527655616, 4.8016964440291581, 8.0132387260974589, -6.4415560341290687, 10.805285608742018, -5.5301352184454284, -13.224718660056825, 0.35302225692097389, 4.4748784871174934, 6.9443759354462857, 10.685073446441708, 3.1575051344879466, -13.665701610090288, -3.8015869558522541, -2.3038729510788531, -8.4060938979535429, 10.397495774699411, 0.63231003672718755, 16.426675593327936, 4.2757077959938554, -8.2297561064825651, -12.203313074476801, 3.5349123059031688, -4.6316910854005595, 12.149986519547449, 10.142561680716403, -12.910916534376218, -11.816001928564599, 12.752636976550916, 1.347868026050816, 4.4506235037217419, 12.700335499696024, -13.848139080070318, -11.355529001962223, -5.7806475282042058, 0.47750289555723269, 5.6986275269369804, -4.4271319538016316, 10.462558932858533, -5.0368487144176184, 12.348453770774848, -10.530489062751826, 11.889507884552419, 6.7066063456855165, 8.7257914990822734, -11.740906669754361, -13.198118848397669, 11.966809170645028, 7.5576572433307501, -12.95621542476918, 11.112615788951556, 5.4150193506065785, -2.4444668502999507, 0.1275326588141078, -9.3810637216464059, 15.15093868960655, 3.1627056768504778, 7.7005484449478576, -10.234073188504981, 7.1267840100223658, -15.91683465924223, -13.410169751101346, 0.13625266261370772, -7.5750837050990372, 14.960178685292997, -15.435015552646451, -3.7057206375618463, -8.8999095085111666, -2.5149139619650525, -8.3327199889755423, 18.941920607436636, 13.420695019369392, 4.9195046375982541, 11.016163952781909, 8.6733276067619194, 12.478765201964949, 2.3345020319649099, 3.1973706815381244, -10.28793250894482, 3.1017921163255822, 3.5809364261341075, -11.688627720005062, -7.4899768065790839, 6.3649946224780551, 9.1684116530245543, -1.0144208985424472, -1.7386901599600024, 10.812333055795435, 4.961817477568788, 3.1009645563657138, 6.6921808083279686, 7.3774978735208627, 1.7132043124694183, -10.362105107573687, -12.173493799440179, -12.57733865447233, 10.40684423079197, -7.1829220405500269, -5.8532485804854053, -3.3187986578272421, 0.91880136486449959, -13.398651042134368, -6.3155049249186339, -17.255588061305122, 2.9621721519641029, 10.684388373450155, 9.920602983772957, -4.9406423078278641, 7.1264826077512149, 11.66719925284613, 6.721261092111213, -12.730916302360351, 10.795526753678212, -20.573136588685408, -5.6958101011529605, 6.9909504456743186, 4.4715875360382364, 12.499170749494757, -7.20935215447878, 9.3520391463706591, -11.260904720544124, 3.9094591998581429, 10.542421309584265, 7.1626495100659087, -6.2979737327672325, -7.4797184772604108, -10.033365613109066, 13.639664860076691, 14.61768258823167, -9.349535102620095, -12.423145667667011, 4.9898271501817089, 3.0038807688543274, -12.714132646116139, -11.715303881774823, 4.1065631173690322, 5.8299911288456308, 16.075633106498326, -5.7905188465892081, -10.727791126474877, -6.8206190409645826, -8.9175871578683328, -4.6200146277545517, 11.079880503025457, 2.510233715234405, -10.392607673591197, 5.8668194165681014, -7.0114162376738856, -10.279106538719603, -15.528793255069509, -4.6085364768240247, 6.8605550379128051, -2.5800329268976743, -7.3532639311399244, 20.672825917556292, -10.439895472960126, -14.128598455261217, 11.328263527383783, -7.463336179396399, 16.130593577787007, 7.8647052993942861, -7.7266572437869527, -7.6739353389438616, -7.8625194662984832, -5.5481184597671502, 16.352149156645865, 1.5600738712852105, 7.0446715470996484, 3.4977667900587481, 9.1242274771866878, -14.864890247335271, 2.228477042485411, -11.636329210405362, -4.6796208227724287, -2.2933856931597671, -9.3965545946571059, 5.2166591092510801, -0.0061470351703269257, 11.008731035650001, -4.0684606352010775, 7.3388311965238815, 9.6110268205483553, -14.385784807623017, -12.022179732503762, 2.2591715836384325, -12.450692202777248, -6.4694864795479514, 2.4970669565811572, -14.438327468512828, -7.1490383062998024, 3.1980227285689566, -4.3545915469413083, 11.850371754353054, -9.6358004132594868, -5.5732823609496984, -11.570303232115274, -7.8799771256040403, 11.364050055127539, 2.8166429122264298, -7.7893594643305502, -2.3842480986276682, -7.3290075822986527, -5.5039959632731286, -2.9510245234322539, -6.0257131849615027, -6.3046667299320047, 9.6500486152400153, -13.674873390020878, 10.734758291088976, -12.103386933808761, 12.184692560628328, 10.655296522071822, 11.91880094629235, -7.4922050113367078, -5.1457408035516625, 9.4250278995611794, -8.1618059524881748, 9.3940146817732177, -11.555304660224397, -9.043867998939163, -8.451710191375323, -0.697115284938572, 2.3373700418213623, 13.692672613492128, -15.665014564786702, -3.2403867344672141, -8.7601644681864741, 13.019487514767658, -12.791506892288574, -13.625856289969327, -6.2209979515728566, 8.6521749698161123, 7.4180160442834548, 1.1105314934818471, 4.4766310382738519, 11.438161271145697, 13.894059012603345, 4.0767572471493434, 3.9865238865858319, 3.7602317997987846, 0.76151966999394338, -5.1810102801857445, 14.799158905790362, 2.4576241055193684, -13.01983807978049, 7.7789583949391536, -7.7989618839443171, 2.5737045662046305, -13.443327011814354, -10.710116060594849, -10.563787698873153, -9.0325237664249336, -8.9417451798718943, -19.333428943078317, 14.683782394656195, -8.0733543435216593, 10.754644346477024, 7.7063042336814984, 7.1186808374245931, -3.9617268249118553, -5.7198371921519167, 5.593318866773699, -7.2969156100159678, -14.048944381672497, -10.062946047657139, -1.0260982646529979, -14.827752195442853, -9.2383256700032188, 15.633286094075363, -16.297177435658352, -0.64090358918251356, 16.682478300485606, -11.380226570148189, -7.5596774165642087, -7.2154274871131481, -7.1481514505268233, 8.5862772252140598, -11.750005376776613, 12.960896281443684, 13.382912666258086, -1.5320372082264357, -11.480485768573448, 4.604919918163711, -10.250884016863665, 16.502161055342512, 10.03826905000834, -4.2314133540673815, 6.914838473777273, 3.033372723351186, 15.789653601786865, 7.7740184970045538, -13.16261088269184, 1.467484633609379, 12.139927777657451, 7.3565534414936771, -16.102142555887689, -6.7186090884258327, -5.0455349707069272, 11.98730746398549, 10.256496746996197, -5.7536379862838647, -5.4682997322585303, -8.6174488346296947, 4.9421612015014782, -3.6472328067701021, -10.170655866613714, -8.731587322200923, -12.200853136951736, -6.4324926421828801, 12.383600590018332, 4.7177953853422574, -5.9611450690323569, -4.8404699641555782, 3.4274708633282907, -15.369056504155758, -13.448819507894497, -6.9107211824606498, 8.0113449069161451, -3.8973949861351929, 13.021049717764123, -6.3796819058710641, 7.5454744658108392, -24.991261131460227, -11.306957669810698, 9.9244994493158156, -15.552007939376315, -11.499894592347063, 6.7321370932847282, -5.7172766786206735, 13.927111999325204, 14.791062203179369, -10.463383452760558, 10.636801153156807, -4.894683643621029, 8.4748218331335483, 6.714189223798841, 9.4375736465144318, 12.487559872903708, -6.0987096595648733, 8.3058734633496965, 4.1758106815531235, -0.92420186594595199, -9.7108492563481441, -11.032513923038188, 6.723487961222486, 6.6405389489355722, 11.70091305718748, 4.2393067109120421, 8.1348475294426805, 13.323378479075469, 8.7202362776180511, 4.4526705951643395, -9.5406850815782391, 10.724131989567914, 3.8203055939862751, 5.655044851128495, -16.307030842468919, -12.651665707248567, 10.335451776575519, -11.543998335115962, -4.5894875308948739, -9.8049275923942005, -3.1277981660548742, 10.521084419510812, 9.1581333155226226, 13.912555752813075, 7.6645359315240986, 7.4281718483850714, -12.884604059581001, -10.227449781754478, 6.6088359371651677, -8.390397410570122, 1.7389657861698138, -9.733674950830439, 5.6026920997089826, 8.6808454450852413, -6.0587915108669694, 10.402906304509559, 3.573187038527244, 10.559282882232578, -10.863413477205437, -4.7386233555213177, 9.4904722391068699, 10.157539704403206, 2.8851592670612307, -8.3696995987232565, 11.297835199084789, -1.8627636495095405, -7.1252169596821719, 5.4278621558211784, -10.438886769424213, 11.047071633619222, -6.5900981825814391, -10.337633941764059, 2.5282376470547079, -9.6591177209883146, 12.449719103332304, 1.55178436617159, 8.8699335446384353, 11.259696425771455, 6.7783986934617984, -3.1793426009237473, -13.884272717050646, 6.6177054099083383, 4.9754611216591851, -8.1416721021369884, 10.636889546477317, 9.381740326488913, -13.207174194145681, 5.641084536081391, 10.931097561358635, 2.6818980710602407, 6.6334459052688892, 9.3510527294752901, -13.223477811560901, -16.02051667550996, -5.7642227501143166, -7.8575844017704233, 8.5138065738662689, 4.7241317174003958, -10.096994042501567, 12.438227764558155, 2.7850508919916313, -7.2072251055036469, -2.6269452276287124, -10.858511776465122, -9.382631273358955, 8.3283966460812575, 9.2585435022023024, -7.4395391778349076, -15.083896521243371, 16.802375383935249, -5.9975534292925188, -9.4765112294400247, 12.157497196108473, 4.5160814688935869, -2.7728770210355993, 2.9059766323671488, -5.4101491583069929, 8.8988634463609699, -6.400827609041122, 5.3560360503868081, -8.7304511666720401, -3.0755739720628865, -13.966358226924728, -6.7649639759434601, -5.5456693899453127, 17.302274909990441, -7.4968096247971072, 8.744509603950064, -10.794741197131442, -11.913516149338431, -7.729522769816862, -7.4691133826775182, -6.5715478061064134, -11.907691856087185, -0.20263423791519211, 8.7885430265334428, -5.9130473048668284, -13.708290803401704, -13.78899848903613, -15.209798120169717, -7.7253595989171355, 10.377128863501158, 9.5577922484441498, -9.1170808303499999, -6.4012157193694925, 6.0123229297351415, -3.8082896556779615, 14.084538271217655, 7.736609816185922, -7.1200940445799343, -6.0420560567461363, 6.7749183889388505, -6.7423962541293223, 11.698461510951111, 12.488447340839436, -12.158335264443023, -11.337129599624449, 4.6676968705568491, -12.701834709382553, -10.475346061527553, 11.810486767960239, -9.6940285745916039, 2.4420600898797606, -7.1590802169457932, 7.4477382756083328, -12.84581185975534, 4.294724353933816, 4.7862471286393875, -5.1283227202624628, -12.462450772792648, 5.8462045895795738, -2.3252078492902015, 10.784106121114156, -8.9091597599913488, 7.8715048196179795, -11.724382426901904, -9.8819847622548878, 5.5179135967036945, 5.8170155199540101, 13.471313785889976, -15.525106358542637, -10.787512021482629, -12.926571949496676, 0.64019471142609763, 11.404282273170695, 9.9588402015625466, 12.047596212569777, -9.4553988787340977, 8.1934695042991272, -9.2978201862150662, -0.16338758265088724, -9.874707008213198, -15.74174394890615, -6.2188307585781839, 6.8874774293005903, 9.063007022226051, 12.224864329254553, 9.6788512147473025, 4.2394307617891345, -10.591549936022522, 6.6238089274322478, 7.5643367406337223, -8.9582742726253759, 12.967837079016467, 11.558303731051819, 0.66328001774643597, 0.061562459877513763, -9.8220366611970817, -8.6914608429229716, 2.0563987156423309, -12.681611400476225, 1.3200230993063025, 14.397044749313597, -11.646369582297655, 11.475601313196282, -9.6685410246039822, 13.178785331570431, 9.3156729399597396, -8.2280610740799105, -5.8512271809845346, -3.3513051394681299, -12.508309397943608, 4.3947576780553819, -4.2609352469664099, -3.9364029654735142, -7.1257677022599761, -4.749374408895342, -7.8617667438721872, -3.1064686101999062, -3.7432869366585888, -4.8561219977586756, -5.4462675545135282, -3.0540684154947613, -15.35711806555511, -11.536068537082535, -4.7779544806256276, 1.5198489129897315, 2.2249257607654318, -4.4269263183089862, 7.4355310535388179, 9.2780119576973981, -10.652417931125679, -4.1778682483229783, -2.1566547856994727, -11.795081921533383, 10.848372600114878, 10.325168705158157, 6.3921784987473096, -3.4419598984874038, -8.0823946821166821, -8.8829402292522772, -2.8818508823421793, 6.3006936576743202, -18.0845485513623, -6.1046031768124465, -8.3535486208206997, 9.9650967368521606, 16.34809005021857, -6.3719619154861631, 6.6492139253615576, -2.2462433383876483, 12.414615001238596, 9.9243080855013854, 6.5816151826391636, -15.916468641697799, 15.719302793672236, 12.597035667242659, 7.9314977205991974, -4.6176638133992505, 9.8340751357654508, -5.6666671493884282, 16.964399126342375, -10.174033224406887, -6.9445510397424979, -7.0003017483847918, -5.7816060099388684, -12.7380229338664, 2.3874629194778292, -4.3315690351541818, 6.402268747442819, -7.1986862442546862, 3.8230018987349692, -16.488657131909211, -9.4628948760922604, -4.4930989787395363, 0.20228101276884691, 7.9230990768569933, 4.0956585057697925, 2.935031122594181, -6.6661480000167179, 2.1833750370684917, -13.862136299430089, 7.2537537887085604, -9.7837110663390341, 8.6426502286738316, 10.933145886680956, -11.848044341163014, 1.9015758573080708, 7.8955654850233579, 14.087625811239143, 15.74368395360325, 14.915952043583991, 2.4289544447309912, 10.938797000780177, -0.48350975665915585, -6.0724283824951737, 12.43180188960436, -17.027449220255846, 10.457087806200649, 11.834161047678036, -11.574528168603067, -5.8443316647878172, -15.909297292636424, 2.8661614976693999, 0.94537037187104889, -6.1321675750261466, 3.5179605788203152, -13.650295745999149, -14.925340774935689, 5.8996315469200731, -4.742895776593735, -12.78647038316033, -8.7668312292356614, 3.2991120560668561, 16.649617394331742, 12.078195842545881, 8.3422604344231779, 6.3829490997837528, -16.259300428897792, -6.7370828126804438, -19.032060980450861, 10.534387246647906, 15.112739135038019, 9.0482362921064681, -10.686676579265459, 7.4266114954786726, 7.6415038124348245, 0.0092345294467927729, 7.3107957428418979, -9.2074521242051137, 13.337719418423028, 11.800206756300712, 6.4124926065359418, -8.6909900143815833, 11.316987754233748, 19.639736933434676, -3.484119576702398, 2.9928203525781334, -13.578916945190016, -8.2764973238514497, 4.471627662727232, 14.082619508506047, 12.174165038542485, -11.000581807612242, -16.079501874825326, 0.70642865016413037, 15.746012766226523, -7.6161295955099675, 8.117804816632642, 9.3568227935114798, -13.012224242904074, 10.980884709953941, -10.668687925966264, 8.3605232827699503, 19.58871502961652, 7.3537694624012788, 12.7200136615813, -2.7781976528461332, -13.043003975732004, 13.14556253978828, 11.936967872899929, 13.171819029461137, -7.9252087243269118, 7.7003280461862138, -6.5060087655108747, -18.442930781768371, 22.885163982319007, 6.583490491290247, -1.1514058151352935, 10.669101185812385, -10.081271922767652, 13.414113164816222, -10.06095242529296, 4.4368474047139586, -9.5133443219646434, 6.2669708529045183, -9.611863292437766, -15.876098782760467, 0.32220461814667717, -4.7036651574655473, 6.5207549195711563, 5.0860839263292528, -12.612352596775924, 9.9738419686921542, 0.9396778045330193, 10.651502808863189, -1.1105748484379481, -9.0667683952063296, -3.7634192509691813, 8.1968711400693568, 7.2005601582338032, 13.38536236818598, -7.2074952622871384, -10.89721410521263, 5.8944483624519881, 4.1900839916018509, 12.886068410456097, -7.6817739511773864, 6.2800076465595316, -8.0059063646010156, 15.344612453245135, -10.986292543222252, -7.7963115789804949, 15.616622818007777, 10.715195479472955, -9.9059332996558478, 14.531108551785385, 8.0871721404149799, 11.28807228436758, 7.2050553662162322, 1.8673686167182675, 5.6379835308774515, 6.0070995688159945, 3.6718419825892781, 10.273782222887936, -11.003276573222182, 10.86280826743919, 4.8625050304430539, -6.8883036392210499, 9.4110700217989329, 8.5907090738786351, -4.1816331667751721, -4.5065585714549732, -11.851914290939416, -0.82661956749219301, -4.2729352395319262, -12.00561858749291, 11.248537736997887, 5.9702468837958875, -2.8246526750650882, 8.7625453187814948, -7.1602571689933585, -12.354031243120836, 7.4186972352690956, -6.987904733680633, -4.7802427263213847, -8.4594669364587052, 9.9074303226742551, 3.806086639453103, 11.279747903383944, 17.081579765803436, -9.3400423712763221, 3.1993990305779496, -11.821616914733911, -13.221112615394405, -10.273658410670993, 11.172005145239616, 9.0661355630755569, 9.2282171885349893, -10.23315808490522, -8.7767507313040536, 11.658399522139373, 8.1253713837323716, -6.0161671309769886, 16.112984014276019, -10.526568304448215, 11.152848111157505, -8.924603008706157, 19.991244818943592, 1.7502482049131347, 10.380462477594111, -12.601277391046924, 2.2056591767324831, -11.208801676783557, -10.115502455925911, 4.637267012273572, -4.3901359184650799, 6.4876168985133287, -4.998151172316156, -10.216089377506956, 10.51595559197369, 9.860423081769472, 2.0714834687695323, -8.4943703055745399, 2.6716218493294384, -4.4936844031461796, 7.0630594165237257, 11.626244158543082, 12.185499704257312, 14.474700254831625, -8.0226618511897883, -7.0870692277314653, -1.1721939107905543, 9.7010116241387543, -3.9275566558414692, -9.75092296492865, -0.95638727648524069, 8.8537127253606389, -14.829180519689713, 9.9027033868976222, 8.2208221244483237, -10.01770451901422, -6.4871122747161722, 1.9748473784403351, -11.360816340237003, -4.1135134538497162, -8.9279661633195779, -14.855403366544149, 10.607559153322043, -11.932153415925857, 18.392309282429526, -7.2895436119104833, 7.3649578192591916, -11.824321717922503, 4.5048430891613203, -16.076657798411361, -10.123099989589955, 4.6541470838769436, 14.693948982580077, 9.4260360038265905, -6.5360788988808212, -12.279752881306212, 0.14329411518298504, 15.277760011935301, 12.94645800633524, 9.0076074533198192, 3.1698412352516221, 7.1781738715915795, 15.252388120172336, -8.6205841782080128, 5.2369980810204497, -9.433249016049194, 11.112523275262491, -5.6094286689251271, -5.0372463006239476, -6.3399450364534582, 8.9510280620290601, 4.9779353674772384, -12.848232188637104, -7.9494772442250223, 0.056481817566435569, -1.0990377463926844, -8.778197904426678, 12.556996955893457, -8.8110005063100054, -5.0471729352089545, -10.673361741004538, -6.938427941848941, 8.599594025334758, -8.1348225722413492, -13.541689542539737, -11.229036341770312, -22.614183167994018, 12.576253012660271, 15.118290082755436, -9.2870046826546524, 12.899455356719221, 13.243961159383248, 4.4575044249539246, -13.064373901252422, -14.393244974865604, -7.5706760405997384, 8.5444523394978518, 12.288833952178848, -2.5897476840629694, -6.9298386101193596, 12.539861043573865, 11.593898741650712, -7.3909737338763124, 4.2946927448293568, 7.508232545403895, 8.5884600404407188, -7.3302711120767166, -11.033859476165276, 7.3743897210913136, 12.286574554025389, -1.700095235673573, -6.9072546333240732, -12.728102558911758, 6.4176904367705383, 5.903830856246814, 9.2556056318797992, 11.125813908063282, -10.011979772526844, 2.9405966507503511, 10.009962336069428, -4.8607974702953536, 1.7471621272732738, 9.7439136565857378, -0.66822435460540275, 18.464597991608112, -10.547977913897311, -6.8357758325587907, 4.9415192092837481, -11.223685529550222, 5.0739368213705465, -8.1592201290566155, 9.4541189767136888, 6.856119326024217, -18.448536650094034, 11.582475715514898, -10.178303201195758, 4.6276063705681079, -11.553748539540541, 2.5523254456603865, 4.2384411617925624, 9.8680333748165499, 8.1917716819138136, -10.850753257867975, 10.241807976913078, 12.017255467195287, 7.7723650228628429, 5.9396282417311674, -15.066965171524886, 9.4060341572848429, -4.4910564383161384, -8.2147205547924216, 4.7023980767577918, 11.671098907901923, 8.4913841414387878, 7.6416710694567156, 11.664303236292549, -8.9493566205550099, -6.6393544707268033, 7.8628598936427894, -8.5326569294992858, -2.0472135566402336, -11.584529863049369, -13.765771105899878, -13.236687110141661, 7.7745678935906666, 4.0644071666046333, -5.1127185876504511, 11.09916237943035, -18.103923278917275, 2.5020372532682957, 8.1940521912528261, 9.2210533248542514, -8.2947343120838326, -10.150302885063565, -7.0933287260530955, 12.386066725557843, 9.4912773578087801, 3.3565256628259474, 9.513448873526654, -9.5772677988882489, -9.7173765268110159, -7.7871728659279844, -6.33770970174879, 8.7446348550882131, -5.3074344597323737, 11.315880628341713, -5.6257158464771564, 5.9792501423848678, -9.9591388238248939, 10.547073748158361, -11.945860349110731, 9.8107678957781204, 5.3625757170649493, -7.3961894867189759, 11.294547725442342, -4.3290304291788617, -4.4072888651694688, -5.9735063255412655, 6.3232368782780126, -10.734895281472282, -8.8246478451021009, 8.3174800733332432, 10.666958445791396, 9.5832549522929806, 9.6003700340562261, 13.330599293965252, -7.7659598115974093, -8.4068157954698712, 6.7155631645630169, 10.951065869771208, -9.843399692801551, 8.6950573645033593, -12.91546689382516, -6.8284290555266072, 6.9679513402290612, 8.7517402592974953, -9.7252558599188106, 4.4957279393577405, -3.0198719775413605, -12.528522673998944, 12.791874350523511, -11.987866488473575, -7.7731187084210358, 15.356748666493452, -7.4363704293344366, 11.554365751821972, -13.691156388740444, -13.639104069640238, 12.899745770415052, -12.477204336163956, -12.161571929011455, -11.273422005627573, 20.710850070106048, 11.743681239843617, 9.6151567581220565, 8.2992099468073608, 8.4619149441334685, 8.8404977904969346, -10.918349909014658, -5.6517458894209422, 8.6526147356508165, -14.290258838779266, 3.0318506448723244, 3.6389793712730598, 13.887411508481932, -8.8335154477770956, 6.1670460127122331, 13.208091864632017, 15.635505869782437, -17.556690461708161, 12.400331386163444, 3.9778500015058431, -8.2047500613887383, -5.2233512983007522, 4.0362277485067475, 8.4751794582169477, -5.5914076527615748, -5.4777738529828426, 11.821238725863337, -8.8900626961710341, -7.29974425683878, -7.4473770624143274, -8.0512707557556205, 1.6226698981742598, -15.433546932692904, -4.1071266269684763, -8.4263162579803996, 9.0736808802899116, 6.0439240655594269, -9.6449191691164273, 9.2360102991487718, 16.958973272151585, -11.584208891462776, -8.5316628771682268, -10.964476795840529, 14.434155388768026, -16.016018668782927, 12.499589449114831, 5.3431907633740403, -13.783231585179763, 16.195154330455487, -6.4307912934527964, 11.080799577011028, 6.5325130508365454, 12.802146321954664, -7.6814813666878257, 6.1271513194854581, -6.9538126536653362, -5.0690242209381475, -11.855544305317043, -5.1941087352434137, 4.8945739632537482, 9.4974588137719405, 8.8718463435014332, -0.47224465841085145, 3.9456702743066483, 12.491257904548593, 3.9592076310204338, -5.0217678779827253, 6.3597443173631385, -10.612846967410137, 14.31614300592712, 7.1411122329367416, -11.762271600506461, 4.331988913082836, -15.437501431534956, -4.6693242794521481, -12.698173054121195, 12.417434316925727, 21.062913663865295, -3.5142449580964197, 1.3700514528580063, 5.6243547407690206, -12.071365752103238, -1.1360048996995593, -11.347850339525309, 10.833731442380101, 0.46134954632024316, 10.720116067259271, 7.3904190673115604, 6.7696592500196058, 10.652736359476924, -7.8165483190849638, 9.3865130951890841, -0.34774522512587569, -4.0566753969719276, -4.3275806653874298, -6.8638440461424404, -4.682521888031431, -8.2920976977163718, -14.311445847621952, 13.976975120531808, -8.6098361017160663, -12.114294053104134, 5.1005213815339383, -11.049107710762476, -7.0863761770199494, -12.463614616712142, -9.7359303784027027, -13.418212569071059, 5.7610447890373235, 15.56161888307617, 7.0574421915141308, 7.1030986195714929, 11.300511268289812, -7.2344128515783446, -11.13562468318859, -1.5760076318579441, 1.2107880314559112, -8.7874657760578643, -8.8001022473565236, 12.247082051858888, -9.8565622276713381, -3.0179931003584515, -4.5978322515637293, -6.571180711121297, 2.500611207880274, 0.84457801315975856, 6.4714616812285382, -18.464904505652935, -4.3990010259668271, 4.1350410389687466, -10.462432926909633, 6.2042736110931846, -3.8394082311505735, 8.5618068576083974, -17.977066011411761, 11.022903239935964, -19.178990090912414, -8.0470231091434652, 10.79648317128396, -13.096061841695322, -5.6164196771432566, 0.78843332401436395, 13.7984392278555, 7.6547594193414454, 7.5442903307994644, 12.66336251543067, -9.9436379532267338, 8.3550537237332758, 10.82799568784589, 12.384885746776661, 5.2191347513552007, 9.9942871944245102, 12.958881973386022, 5.8450353998039759, 5.156985957036718, 13.5582570732471, 10.34554494007787, -6.037237777176359, -8.2731248141970166, -7.9895984943236309, -12.02375110577746, 9.3728051686457299, 9.3911820274244171, 4.9339039982877528, 12.302318980639923, -5.5266659866771741, -4.9613643934779441, -11.294072601106434, 10.376229630289247, -8.2965871864098535, 6.6836050094050048, 6.894916881498717, -15.288396395010784, 9.0886752966827142, 7.439432773214512, -4.0410572378226171, 8.9307473630506085, 9.0038835677978959, -10.459659023792348, 8.8378541314937387, 10.339786491210649, -9.9890662163533968, 7.9788596610503406, -10.765397845560441, 12.052911411023967, 6.1067152607562258, -5.6066198973015737, 10.952942399934605, 7.6432926714438914, 8.3014387807885619, -8.5639306175146341, 5.1234913528982382, -9.7662598194835457, 6.1322495355624156, -8.160368360432031, -15.309087302665159, -8.3419685644228121, -5.2861952387314828, 5.7536255267894676, -12.714725164584957, -16.125699441038968, -12.439064087815231, -9.1320304457996606, 3.8603060490391887, -6.1338073713204455, -1.7222012329044754, 8.5214199468265512, -8.9836162439198581, -11.816294225738464, 4.2214300165680347, 10.919410045065687, -12.940481826969718, 11.334503455702539, 1.0676110391325953, 7.0891161904485651, 6.9961528158293813, 11.113742549839397, -14.034363540155118, -2.534544404400672, 4.8188993072548705, -18.804376110412633, -13.059868091828172, 2.8229971724161289, -9.6989297510369017, 4.7326387912990509, 12.188026385951737, -11.467461248064906, -14.073562498971903, -9.2196347513311832, 10.038208885426119, -4.3813258723769009, -4.1241400929515137, 11.486725329451389, 4.8628878289290549, -8.8001952481419785, -6.5888239970497349, -9.7953285124389389, 4.2522039839409844, -13.459928721286854, 4.8164035354744943, -15.811464084480162, -15.167000919853482, 8.6050948989220277, 5.4097197830658672, -3.201067374137641, 5.7304935157850272, -0.50989151426446222, -10.147545800700401, 14.129098358281857, 6.7974337326702985, -11.157443424806557, 5.4202945677131122, 6.2589729732564718, -8.100004693609538, -8.7681862399603006, -8.6314112980872526, -3.9762886492900669, 6.9078974491617418, -7.3105786438044316, -12.86172440009309, -10.982888171052132, 11.138006586636338, -4.7087869570844818, 6.0689150921803634, 6.1958655520184891, 14.665790446061886, -21.756441569001307, -6.0112922694975106, -8.604883105861056, 15.140407588256764, -7.0631519145705521, -15.024190589242993, -23.18926715039116, 8.2311742508471983, -8.3904317018734034, -9.8859430286919867, 5.9777560262912424, 4.489704569613985, 9.9452514956755529, 9.5807589942228493, 9.5768073329005379, -13.191427051485375, 8.6226588561737731, 2.398176437043392, 8.3478860808676707, 16.691979667886184, 10.245192955959679, -8.5601611176100771, -8.6435755556304308, 11.536812168223609, -3.8011348079490959, -0.4154822840976809, 7.3530196404235948, -6.2070213990800998, -3.3664554862576601, 1.9501048246997952, 11.044948446517594, -9.1773178494438294, -9.8012555654706048, 12.731258282570259, 7.4006494098682252, 8.8054756517321113, -8.4864693790843759, -14.388354721820441, -3.2911084226653116, 7.3278629195734881, -3.3628879633743507, -2.0906070586159164, 8.7678659217554724, 1.2754529803697003, -10.171163782743935, -8.6401640914138174, -15.570426156008278, -4.7735987049156741, 6.2627274839799227, -8.902086558167035, 5.890113367738306, -16.19738850063483, 12.494158748994153, 7.4515972260992802, -11.368802405389724, 0.79949913059431887, 10.464954350908759, 12.045093842059636, -6.2632239899779618, 9.3946694855915709, 4.6796796423594591, 7.4573657480844915, -2.1730144122742283, -10.441568309083868, -3.128467240255199, 2.6674648941331709, -1.7628028131302032, -11.490305842901, -2.6052782471959244, 9.1378585089733217, -8.3182391512182594, -6.0353916735033906, -6.4946073399059889, 8.5262424287807921, 11.041008586867564, 18.792916305706246, -5.4400449872596122, 4.7763430246707763, 7.4793455477938471, -12.701581632451186, 7.3391248408947076, -11.164236112983559, 9.4704084335423353, -10.054506153225052, 14.297500013934522, -1.9132095626133094, 14.164236143735152, -18.514789351038115, -10.538326608827228, 8.5742137931431603, -18.159208758191326, 7.6116880222576011, 7.9413670120767224, 9.047676658736421, 12.221156662181444, 7.0843147886392952, 13.170456072797521, -10.632225390661356, -12.606230762028668, -13.968700939920279, 0.90435763497244315, -4.1863354464526514, -0.57860003934790516, -7.7068236480377168, -7.5458142157151684, -15.760391765099628, 3.148710788422199, -8.571589030098103, -6.1442268269653644, -5.5386008972836374, -13.583703624827324, 12.571370461611423, -5.0037658066132318, 6.6729776513218466, 6.2491302239836344, -13.868418916158106, 13.949814810808402, 4.1350925641742018, 14.220597569700558, 7.8377637620610052, 10.165620408810733, -6.7532907993950042, 4.3042646268926728, 1.4896778697382114, 8.3496556534811361, -8.8688217756106855, -4.1638250519443876, -10.45385832370283, -17.931254325719735, 13.701501053759536, -9.4565546768244069, 1.3427226397103338, -12.271188095378776, 10.368577567683388, 8.025638109861422, -6.2074049810183825, -2.0991088194951866, -7.6695567427956011, 11.150836440150584, -1.496263923503625, -18.494976331519254, -4.2881609912726928, 12.980292811570745, -0.92488991150790378, -4.6658341014288567, -2.8894649330160642, 4.254991528529442, 6.433665878257556, 5.6179185883054492, 3.9771596771133968, 15.121069471781597, 16.580045222011115, -9.566021123652547, 11.967303334090824, 15.8257683504883, -12.810889692425972, -3.458648034714614, 3.990823559676568, 4.9093618306644045, -3.4096503299487577, 2.8468287182096539, 8.9865457241125046, -6.6201701664235877, -14.013179729737548, 11.434571611598438, 5.767464644498955, 9.3360216341670927, -11.330333170538852, 2.9944289963307167, -11.076388371680537, -9.0625652353016406, -12.834505378246872, -5.1884256791028482, 7.8120310086321405, 10.177307965543681, -9.4195921379930319, 5.466041504061816, -8.3541043828300516, 9.9136918737238453, 8.1033458202759867, -6.7036770007249524, -8.1223318972882215, -8.2591262612141172, -9.1232651727813856, -11.669246063763795, -0.030697844939840527, 9.3789394813876008, -11.107031538341255, 7.288702786596331, -4.6967946059755157, -1.5987277913422755, 11.510267151110476, -15.34971763301391, 8.2159765211646274, 6.6883959862268858, 13.179857051577731, 7.6088514551549089, 7.4989231135409131, -1.7239395961308088, 1.4954887205231719, -9.8573207709532547, 4.9542123592468155, -10.367910840496483, 5.7226061395590309, 9.5446949280935716, -8.6942844135306796, 6.2929455305188577, -6.7169960771850326, 19.637781323792851, -12.129044785216932, -2.8881972324088676, 4.5724813224397796, -4.9563780171627787, -8.8290411230288512, 2.163546702306324, -6.7813228130077352, 4.7602245034138555, -8.4569684434378569, -2.6066149728226859, 14.465681780446152, -7.4053864105652734, -9.8766495392168174, -12.069651713077828, -11.042473697693975, 8.1529541863355082, -9.631792308049631, -3.6472475127982888, 12.36876532086672, 13.587811221658276, 6.0796488885118061, 1.1309707002276215, 9.8361035439712978, -12.782363514428749, 14.877109246506274, 8.9863394004114223, 3.7313973097701414, -8.8429365798088835, 10.783409906469574, 5.4309225673390031, -6.2038249324134984, -12.503772776539773, 5.2588713559908609, 8.0377625659349796, -11.433112718999636, -2.3606577081546209, -0.51422838799139303, 11.042048536456281, -8.9107584751200442, -11.636004759251062, 12.663937409329666, -10.014401209989058, -8.0569057100231696, -8.5006754476725348, -8.2061921877402746, 3.6065709585004733, 0.73647938533134194, 1.8183486110849676, 5.4805296348307078, -2.2813810755893615, -3.9153542826111902, 13.587948798210096, 1.8068496248064898, 9.0325044536184134, 10.124444543125891, 13.84809053563459, 15.565497107356785, 8.9751576152107209, 9.3516719607931797, 3.6327626866158558, 11.760943102597267, 5.0870266626202989, 5.674904060336968, 12.357086041091151, 13.951717235903738, -19.310077284104022, 8.0053082251775685, -4.297125648181531, -6.3260546204828696, 10.294877306501972, 13.93365235676599, 13.141707549171858, -1.5568066615629472, 8.2172142670253123, -7.8132836735117186, 8.8354487563578399, 16.707153362143629, 4.5855551987365208, 12.223929231669286, 14.863765072540376, -15.461542707954242, -2.3371697391419985, -10.024175159008536, -11.737459729645774, -3.7329473123372199, -3.0590377398467261, 13.143768419466609, 9.2038314945946311, 3.521511313043765, -2.2535815241524322, 5.4844876358740011, -10.004087991701629, 11.888560517692463, -4.6722624505292263, 3.7082244357698078, 6.3751558628158023, 11.627185499278614, 1.9289094882369002, -12.217802164142721, -7.6763956464968892, 5.6910150189702744, -5.6417449295552817, 4.9980919736488802, -9.0536429095706819, 9.6119351348702313, 2.4973962155691476, -14.910998981505347, 4.1843311003165047, 5.9103254703115775, -10.108868185667163, -10.968757232820812, -6.2351738311660236, -5.4115373442221397, -5.1847401075738944, -17.223563033246595, -13.214097072642032, -11.854105278464028, 12.414721845275727, -6.2778430500337503, -10.885676169950498, 2.4563316506705526, -8.7748279932902093, -5.7945746677684031, -5.8659162690750017, -10.185454736539469, -12.259036348321617, -11.345440149075966, 6.5815217034894982, -6.4191766201668736, -7.3487464338408746, -0.40842055433143365, 10.921577631841934, -21.476071540546794, -10.659396127407732, -9.7319013100865899, -12.054728330205412, -10.865345038797253, 6.0360205068991064, 6.3343994011226927, -7.1354597827181925, 3.1432134836509893, -2.4414855631776251, 8.0775343816376086, 3.972870247588534, 1.9692418169429344, 7.2828780139977134, -15.463562597421859, 10.173242967382789, 15.083747077552808, -9.276641467191272, 7.7773515313362411, 9.0385622964224765, 5.6887720196625535, -10.133807142620341, -1.6437588724330709, -8.158553801413559, 10.446525293735167, -11.433423238083284, 8.6648442034190918, 10.064106964518734, -8.7075993351272132, -6.3080890103035614, 9.3898484683747458, -4.3190925589260534, -19.328147731608361, -7.6126659646899917, -11.705773894239984, 7.4600825708549596, -8.1116458562206901, -16.039122843816592, -2.6608032342278891, -5.3302266349477829, 7.386051049643469, 6.9792999266885793, -4.5182426093483645, 15.20105997302613, 9.5925220650656087, -0.84758073759469377, 4.5185848028718691, 5.6852984237201536, 8.9738282076193592, -12.235502878115856, 6.6410806023610247, -8.5942670023877028, -10.537735925654538, 7.1077614149638526, -6.4914995246164899, 6.2433348879497554, -11.339739148237399, 17.070957256911349, 2.8503359840349143, -0.58556596880585032, -8.6111923383904436, -12.931731217434081, 6.4866696051548578 }; const char HRAa_1536_512_detected_data[] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 1, 1, 0, 1, 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 1, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0, 1, 1, 0, 1, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 1, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 1, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 1, 1, 1, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 1, 1, 0, 1, 0, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 1, 1, 0 }; codec2-1.0.1/src/HRAa_1536_512.h000066400000000000000000000010741412132000500154160ustar00rootroot00000000000000/* FILE....: HRAa_1536_512.h Static arrays for LDPC codec HRAa_1536_512, generated by ldpc_gen_c_h_file.m. */ #define HRAa_1536_512_NUMBERPARITYBITS 512 #define HRAa_1536_512_MAX_ROW_WEIGHT 12 #define HRAa_1536_512_CODELENGTH 2048 #define HRAa_1536_512_NUMBERROWSHCOLS 1536 #define HRAa_1536_512_MAX_COL_WEIGHT 4 #define HRAa_1536_512_DEC_TYPE 0 #define HRAa_1536_512_MAX_ITER 100 extern const uint16_t HRAa_1536_512_H_rows[]; extern const uint16_t HRAa_1536_512_H_cols[]; extern const float HRAa_1536_512_input[]; extern const char HRAa_1536_512_detected_data[]; codec2-1.0.1/src/HRAb_396_504.c000066400000000000000000000656101412132000500153440ustar00rootroot00000000000000/* FILE....: HRAb_396_504.c Static arrays for LDPC codec HRAb_396_504, generated by ldpc_gen_c_h_file.m. */ #include #include "HRAb_396_504.h" const uint16_t HRAb_396_504_H_rows[] = { 10, 53, 56, 11, 21, 4, 12, 33, 41, 2, 19, 10, 20, 14, 61, 31, 7, 24, 37, 5, 34, 13, 27, 59, 8, 26, 21, 5, 3, 26, 1, 28, 4, 18, 16, 6, 15, 7, 24, 30, 17, 25, 10, 35, 61, 6, 9, 64, 14, 2, 13, 28, 84, 1, 15, 20, 8, 64, 12, 27, 11, 18, 22, 33, 5, 29, 19, 4, 3, 31, 23, 21, 35, 9, 34, 6, 16, 28, 23, 14, 26, 10, 20, 8, 7, 17, 12, 24, 15, 18, 33, 36, 21, 31, 29, 3, 25, 32, 5, 2, 13, 1, 19, 30, 4, 27, 22, 11, 38, 129, 63, 46, 62, 19, 13, 44, 76, 117, 25, 75, 63, 29, 65, 54, 23, 47, 144, 15, 39, 41, 42, 82, 36, 70, 67, 58, 53, 89, 22, 72, 17, 45, 50, 9, 34, 41, 63, 40, 47, 55, 48, 44, 64, 72, 19, 67, 57, 66, 54, 42, 143, 36, 43, 46, 52, 108, 71, 49, 16, 39, 32, 38, 70, 62, 69, 26, 37, 55, 56, 50, 58, 65, 56, 61, 67, 52, 53, 50, 48, 39, 59, 37, 47, 51, 63, 70, 46, 60, 40, 71, 57, 72, 54, 68, 44, 42, 49, 45, 38, 64, 43, 62, 66, 69, 55, 41, 64, 138, 115, 107, 81, 30, 39, 55, 91, 155, 48, 87, 90, 49, 84, 98, 68, 64, 180, 32, 88, 108, 71, 111, 86, 112, 73, 126, 90, 114, 57, 134, 52, 51, 73, 40, 59, 87, 86, 90, 101, 68, 51, 102, 89, 85, 37, 124, 99, 75, 76, 95, 205, 48, 77, 97, 73, 114, 98, 94, 45, 53, 58, 92, 80, 103, 100, 65, 93, 105, 79, 91, 80, 79, 102, 75, 91, 96, 78, 90, 82, 97, 83, 108, 89, 119, 85, 95, 105, 99, 103, 100, 93, 92, 86, 88, 76, 81, 104, 94, 101, 87, 73, 106, 84, 74, 98, 77, 141, 149, 123, 214, 87, 64, 45, 60, 114, 173, 103, 115, 102, 95, 88, 101, 93, 71, 188, 66, 175, 136, 77, 170, 127, 126, 140, 135, 97, 117, 119, 149, 80, 96, 85, 110, 78, 122, 105, 111, 121, 160, 81, 125, 131, 107, 60, 170, 151, 120, 109, 133, 220, 96, 142, 98, 112, 123, 129, 157, 74, 85, 82, 113, 121, 144, 139, 83, 139, 130, 117, 141, 133, 120, 136, 141, 132, 114, 143, 107, 123, 131, 138, 122, 128, 147, 113, 111, 125, 126, 135, 134, 144, 140, 112, 109, 142, 124, 137, 139, 130, 127, 115, 118, 121, 129, 110, 117, 215, 185, 179, 261, 105, 94, 69, 158, 130, 210, 113, 132, 183, 148, 107, 133, 112, 74, 280, 67, 176, 172, 78, 193, 141, 153, 146, 160, 156, 147, 132, 150, 100, 168, 138, 161, 99, 176, 138, 192, 136, 186, 85, 167, 168, 118, 104, 200, 215, 147, 161, 177, 244, 116, 165, 119, 210, 156, 132, 191, 106, 135, 115, 180, 155, 163, 146, 178, 153, 166, 149, 175, 153, 155, 145, 169, 150, 179, 165, 116, 158, 167, 176, 168, 146, 158, 178, 149, 154, 138, 166, 145, 152, 161, 175, 148, 172, 156, 162, 177, 171, 157, 159, 164, 173, 203, 151, 180, 257, 191, 231, 262, 139, 130, 124, 178, 165, 234, 170, 185, 237, 164, 114, 143, 171, 80, 291, 122, 182, 204, 104, 242, 147, 154, 166, 183, 265, 187, 159, 212, 152, 175, 189, 164, 158, 187, 143, 223, 142, 217, 140, 208, 209, 154, 134, 252, 230, 196, 216, 182, 256, 150, 198, 137, 251, 166, 162, 197, 113, 174, 128, 196, 212, 193, 189, 185, 190, 201, 181, 203, 215, 184, 205, 189, 207, 196, 214, 174, 190, 199, 211, 201, 192, 181, 186, 210, 187, 163, 213, 200, 216, 198, 185, 212, 188, 191, 204, 206, 183, 193, 209, 197, 195, 224, 202, 208, 273, 218, 274, 294, 213, 163, 187, 248, 194, 235, 260, 200, 248, 224, 137, 254, 222, 85, 292, 145, 190, 212, 131, 245, 159, 199, 181, 258, 277, 206, 178, 219, 202, 184, 241, 205, 239, 260, 148, 271, 159, 263, 152, 242, 250, 183, 151, 259, 246, 214, 225, 237, 272, 206, 213, 145, 255, 199, 196, 228, 127, 188, 172, 222, 232, 226, 207, 238, 227, 224, 248, 233, 247, 223, 245, 239, 250, 232, 252, 194, 233, 249, 219, 225, 242, 238, 240, 226, 234, 170, 238, 210, 237, 230, 228, 243, 236, 231, 248, 221, 246, 218, 229, 227, 217, 235, 222, 251, 277, 262, 299, 338, 246, 208, 220, 289, 291, 276, 267, 233, 333, 307, 264, 288, 324, 92, 325, 169, 209, 233, 192, 275, 160, 257, 247, 317, 359, 308, 194, 228, 244, 236, 272, 248, 273, 295, 184, 315, 182, 339, 195, 268, 282, 243, 169, 300, 283, 265, 240, 258, 289, 245, 218, 173, 297, 240, 236, 257, 171, 219, 230, 288, 254, 264, 231, 281, 287, 277, 279, 303, 259, 286, 277, 279, 269, 261, 255, 220, 265, 283, 278, 276, 281, 285, 268, 266, 282, 182, 244, 241, 254, 274, 256, 258, 264, 253, 287, 270, 260, 267, 273, 262, 257, 288, 284, 275, 278, 276, 323, 347, 249, 266, 232, 331, 366, 332, 304, 280, 347, 355, 268, 297, 327, 311, 345, 186, 221, 279, 226, 283, 223, 310, 296, 348, 379, 316, 252, 229, 277, 273, 286, 319, 305, 329, 235, 343, 307, 376, 251, 306, 323, 276, 275, 358, 318, 328, 269, 319, 338, 274, 286, 280, 333, 262, 278, 314, 194, 256, 311, 302, 312, 327, 261, 293, 322, 308, 284, 325, 292, 322, 302, 297, 299, 306, 290, 263, 312, 311, 315, 317, 318, 304, 305, 289, 309, 280, 316, 271, 314, 313, 296, 303, 320, 307, 298, 300, 319, 294, 308, 321, 323, 301, 291, 324, 328, 337, 362, 385, 320, 310, 346, 344, 380, 349, 322, 369, 350, 367, 302, 358, 356, 316, 368, 211, 301, 282, 302, 309, 284, 341, 306, 365, 382, 325, 253, 285, 313, 281, 287, 351, 330, 364, 313, 368, 330, 377, 270, 334, 372, 331, 296, 365, 346, 345, 309, 324, 341, 317, 298, 320, 342, 345, 310, 336, 249, 304, 333, 352, 367, 349, 354, 294, 363, 335, 301, 340, 339, 327, 332, 350, 342, 344, 329, 310, 338, 331, 354, 328, 351, 364, 325, 348, 353, 293, 340, 295, 343, 355, 360, 326, 337, 341, 346, 352, 359, 335, 356, 357, 358, 334, 349, 330, 347, 372, 381, 0, 336, 326, 383, 367, 392, 374, 386, 376, 353, 387, 378, 0, 392, 342, 389, 255, 394, 314, 371, 361, 312, 377, 373, 384, 390, 339, 315, 290, 352, 324, 321, 360, 396, 371, 344, 388, 347, 378, 356, 392, 384, 389, 348, 390, 353, 387, 374, 337, 381, 350, 359, 362, 385, 375, 355, 361, 382, 351, 360, 383, 391, 379, 369, 375, 370, 395, 357, 386, 379, 333, 387, 390, 389, 377, 391, 365, 388, 386, 385, 396, 370, 382, 372, 376, 368, 336, 371, 345, 362, 361, 395, 366, 393, 378, 392, 384, 394, 363, 380, 369, 383, 381, 373, 375, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 389, 0, 393, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 391, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 366, 0, 366, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; const uint16_t HRAb_396_504_H_cols[] = { 31, 10, 29, 6, 20, 36, 17, 25, 36, 1, 4, 7, 7, 14, 20, 35, 33, 34, 6, 13, 5, 31, 17, 18, 11, 26, 23, 32, 14, 6, 16, 20, 8, 21, 44, 25, 19, 1, 7, 36, 9, 23, 55, 8, 7, 4, 18, 11, 14, 35, 34, 33, 2, 16, 8, 3, 31, 28, 24, 8, 15, 5, 3, 1, 15, 20, 20, 17, 7, 26, 18, 32, 27, 18, 12, 9, 23, 23, 71, 18, 5, 24, 68, 15, 18, 25, 5, 15, 30, 13, 9, 18, 17, 6, 14, 34, 29, 16, 37, 33, 16, 13, 11, 23, 5, 61, 4, 22, 51, 36, 24, 17, 11, 9, 3, 54, 10, 46, 31, 50, 41, 20, 3, 7, 44, 26, 25, 63, 2, 6, 23, 12, 16, 32, 28, 22, 15, 2, 5, 27, 1, 41, 16, 19, 20, 27, 25, 14, 2, 32, 47, 33, 26, 26, 10, 29, 60, 8, 25, 25, 36, 59, 6, 14, 9, 27, 44, 34, 20, 11, 17, 22, 10, 62, 21, 21, 52, 8, 3, 19, 27, 21, 13, 34, 2, 20, 7, 19, 35, 21, 2, 23, 24, 9, 43, 50, 60, 55, 26, 12, 70, 33, 72, 22, 36, 30, 67, 6, 21, 10, 20, 22, 5, 4, 1, 51, 42, 2, 32, 7, 21, 17, 25, 14, 51, 23, 69, 32, 32, 49, 3, 7, 12, 10, 10, 34, 13, 68, 37, 51, 35, 24, 46, 33, 24, 5, 27, 8, 5, 45, 43, 31, 31, 16, 20, 53, 1, 28, 48, 11, 4, 2, 42, 15, 29, 6, 11, 15, 51, 43, 40, 35, 1, 3, 24, 2, 1, 1, 22, 12, 34, 22, 24, 25, 32, 35, 35, 16, 8, 32, 9, 19, 68, 4, 38, 27, 16, 55, 3, 48, 21, 15, 72, 11, 37, 27, 14, 30, 24, 6, 18, 25, 33, 22, 31, 18, 28, 49, 36, 5, 35, 11, 3, 17, 19, 6, 17, 1, 38, 37, 8, 10, 13, 44, 70, 5, 2, 4, 30, 72, 26, 18, 40, 8, 19, 7, 1, 28, 10, 13, 36, 33, 13, 67, 14, 17, 71, 16, 29, 36, 24, 3, 69, 38, 28, 9, 8, 19, 12, 69, 23, 2, 27, 10, 58, 12, 26, 15, 29, 9, 3, 29, 7, 28, 4, 11, 14, 40, 11, 29, 27, 9, 13, 21, 70, 37, 54, 50, 69, 33, 28, 46, 38, 57, 47, 12, 61, 59, 22, 49, 37, 61, 41, 62, 11, 56, 27, 63, 71, 39, 42, 30, 60, 52, 66, 40, 70, 63, 64, 37, 73, 54, 47, 64, 21, 40, 22, 52, 103, 44, 34, 56, 41, 43, 60, 72, 43, 57, 29, 51, 42, 71, 49, 63, 37, 47, 45, 66, 13, 6, 68, 50, 27, 42, 67, 65, 23, 46, 35, 61, 50, 51, 55, 37, 74, 33, 43, 63, 83, 53, 35, 39, 12, 21, 45, 29, 72, 64, 69, 60, 52, 54, 56, 56, 49, 67, 41, 44, 66, 47, 39, 104, 15, 58, 96, 107, 40, 26, 61, 15, 12, 80, 30, 104, 56, 74, 65, 38, 58, 48, 89, 28, 61, 85, 59, 9, 45, 31, 52, 47, 62, 41, 56, 35, 67, 43, 25, 55, 39, 66, 56, 67, 30, 39, 32, 54, 49, 43, 69, 46, 65, 58, 102, 37, 31, 28, 51, 99, 66, 36, 55, 58, 82, 45, 47, 24, 61, 63, 56, 80, 34, 38, 100, 31, 78, 64, 71, 41, 28, 39, 12, 42, 30, 62, 67, 69, 60, 40, 66, 31, 105, 59, 104, 94, 58, 48, 84, 107, 106, 99, 53, 54, 77, 44, 45, 57, 83, 32, 55, 50, 49, 93, 105, 55, 62, 53, 100, 64, 40, 70, 84, 66, 104, 60, 103, 63, 67, 65, 22, 89, 39, 59, 52, 86, 76, 58, 92, 44, 96, 53, 54, 49, 73, 13, 61, 77, 57, 48, 98, 65, 57, 62, 26, 52, 73, 38, 67, 4, 80, 66, 50, 88, 102, 44, 77, 100, 92, 53, 34, 54, 47, 10, 29, 59, 71, 19, 68, 45, 49, 71, 86, 55, 69, 64, 53, 79, 19, 73, 90, 68, 92, 47, 57, 99, 77, 100, 71, 23, 96, 62, 87, 44, 41, 70, 51, 26, 63, 65, 39, 60, 40, 30, 54, 85, 52, 56, 104, 69, 45, 34, 30, 96, 66, 50, 79, 41, 46, 75, 57, 106, 102, 60, 52, 53, 42, 91, 53, 57, 93, 39, 50, 49, 4, 47, 66, 54, 62, 64, 49, 83, 59, 43, 104, 48, 55, 63, 60, 56, 102, 86, 48, 41, 14, 40, 67, 85, 38, 45, 107, 51, 68, 42, 42, 42, 66, 103, 53, 61, 64, 45, 57, 72, 50, 81, 19, 48, 65, 17, 97, 101, 95, 84, 102, 100, 96, 68, 65, 76, 85, 84, 74, 43, 108, 87, 51, 80, 55, 77, 86, 90, 47, 83, 72, 107, 79, 88, 97, 68, 106, 78, 95, 104, 94, 98, 91, 75, 0, 92, 69, 101, 62, 91, 38, 98, 0, 97, 61, 89, 85, 54, 99, 80, 86, 78, 62, 95, 70, 75, 93, 73, 83, 90, 76, 104, 39, 18, 74, 105, 48, 96, 106, 88, 59, 94, 57, 106, 76, 97, 108, 79, 0, 65, 98, 81, 0, 105, 43, 95, 38, 96, 85, 40, 77, 94, 93, 100, 88, 78, 82, 59, 90, 92, 101, 75, 91, 99, 70, 0, 46, 84, 0, 0, 88, 57, 64, 30, 63, 0, 71, 0, 86, 0, 105, 84, 81, 98, 0, 90, 102, 0, 106, 70, 82, 59, 73, 92, 91, 75, 99, 39, 69, 94, 72, 97, 53, 93, 75, 85, 50, 96, 71, 77, 107, 93, 73, 89, 74, 98, 0, 81, 41, 42, 94, 0, 90, 104, 79, 70, 0, 84, 76, 48, 101, 97, 105, 0, 72, 83, 0, 68, 0, 108, 86, 52, 46, 74, 68, 87, 38, 97, 76, 81, 98, 85, 102, 61, 0, 64, 0, 0, 82, 92, 0, 0, 0, 0, 75, 100, 0, 108, 103, 88, 0, 65, 91, 79, 73, 0, 0, 102, 83, 80, 0, 107, 74, 106, 0, 88, 0, 95, 0, 94, 98, 78, 72, 0, 106, 97, 93, 91, 0, 87, 0, 85, 0, 91, 75, 101, 0, 36, 82, 0, 108, 79, 0, 93, 79, 95, 60, 96, 0, 101, 78, 58, 0, 97, 81, 0, 0, 87, 0, 0, 0, 0, 37, 94, 108, 46, 33, 83, 76, 56, 85, 89, 82, 107, 0, 74, 99, 106, 88, 0, 107, 0, 0, 102, 0, 95, 76, 0, 0, 0, 106, 64, 0, 86, 0, 78, 98, 103, 89, 59, 82, 81, 94, 93, 83, 91, 84, 0, 101, 97, 0, 74, 105, 52, 72, 0, 74, 84, 0, 108, 82, 0, 63, 0, 0, 90, 97, 81, 73, 0, 98, 77, 0, 78, 58, 99, 13, 88, 107, 76, 85, 100, 89, 0, 94, 103, 0, 105, 101, 95, 94, 93, 0, 0, 80, 43, 65, 89, 104, 0, 91, 87, 0, 0, 108, 88, 78, 98, 73, 0, 106, 86, 105, 100, 83, 82, 75, 0, 46, 76, 79, 44, 0, 0, 0, 0, 0, 0, 0, 105, 99, 0, 0, 0, 0, 82, 0, 0, 101, 0, 89, 0, 0, 0, 67, 0, 93, 0, 0, 0, 0, 81, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84, 0, 82, 0, 108, 0, 0, 0, 100, 0, 0, 81, 0, 0, 0, 0, 79, 0, 107, 0, 0, 0, 0, 0, 0, 0, 87, 45, 0, 0, 77, 0, 0, 0, 92, 0, 103, 0, 0, 0, 0, 0, 0, 73, 0, 0, 0, 0, 46, 0, 102, 0, 0, 80, 0, 0, 0, 0, 0, 0, 0, 107, 0, 0, 0, 0, 0, 0, 89, 0, 80, 0, 0, 0, 0, 95, 87, 58, 103, 0, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 101, 0, 77, 0, 0, 0, 0, 0, 83, 100, 0, 76, 0, 79, 0, 92, 0, 86, 0, 88, 0, 0, 0, 0, 0, 0, 0, 0, 86, 103, 0, 0, 0, 0, 0, 0, 91, 0, 0, 0, 90, 0, 0, 0, 0, 95, 0, 0, 87, 0, 0, 0, 90, 101, 0, 95, 0, 89, 0, 0, 0, 0, 0, 0, 80, 0, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 92, 0, 96, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 81, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71, 0, 0, 0, 0, 0, 0, 0, 0, 105, 0, 0, 0, 0, 104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 103, 0, 0, 84, 70, 0, 0, 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 0, 0, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 108, 87, 0, 0, 0, 0, 0, 0, 0, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 92, 0, 41, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, 0, 0, 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; const float HRAb_396_504_input[] = { -12.781911708775533, 7.551155800725204, -11.899607043049681, 17.477156604046595, -13.803361319809902, 6.2002990057867589, -15.169569280110601, -17.341522766496183, 9.7107774319996505, 16.641703452581407, 8.4284168541090221, -11.930717934789106, -4.4208828355542424, -1.139969227664315, 17.673081687318597, 16.121750517979301, 3.6219051813553182, -20.05687038213798, -6.5018436610168866, 10.791743071707945, -8.0445304197245111, -8.3324911789627567, 11.41120852689847, -11.282456703274443, -9.2866085578109647, 9.9469665371993603, 15.140667602380192, 3.4450775767841488, 0.64231692247845451, 8.0801244936842966, 5.4636814535382374, -5.0107553707349375, 7.864699294226007, -10.386130310145816, -12.37983397229897, -14.572379771221275, -16.054735647120321, -11.263149256634462, 14.219711467898444, -9.2719771070008434, 8.3099403015379476, -10.148895658714522, 14.726350071572289, -6.8215748913296936, -7.3601951789355757, -15.40290283113702, -11.244311800452268, -7.9961343172040795, 5.1368563973467962, 9.5164063035654909, 8.4155629108106549, 16.014525967886211, 1.699070391185594, 9.954286029615325, 7.6585573567939873, 7.9223054149290961, 7.9198517179714161, 10.631081381345467, 3.2596035260666651, -4.6015483371596497, -9.3597887942885531, 7.6740974245989673, -16.604278204111164, -9.8303898312522513, 1.1205811253439053, 8.119179250191868, 9.5880695910130243, 8.2874878418366773, 6.0797980497495772, -12.937113562007257, -3.1974528849557156, 13.246273287806673, 11.66494172835136, -12.103215889657571, 16.688894677207085, 2.257955028557403, -8.5424956390175151, 12.497318796297906, -9.0900910972806521, 8.2209514183928061, 5.7402258284777101, -20.747034176270887, 3.5631050854868058, 10.395770683064073, -9.868223944850401, -8.6550086233418142, 3.8407639306907768, 11.327546861735177, 13.015569340310336, 25.712163835177048, 13.268816328384831, 4.6584774592149962, -13.317349857427834, 9.5406654991490569, 17.049953586489877, -4.0111152401055641, -11.693122827989608, 7.5370223906338998, 11.277949854414416, -11.498659185019621, 9.549753443463084, -12.055250773523783, -10.739286977821905, 14.136269830595458, -7.782253905067039, 4.9092522955317381, -10.465638951656203, -8.0435611797655167, -6.8433147729593813, -9.0439724403972992, 4.3359408282633236, 11.715689661715617, 19.611494165878462, 7.9190285414926178, -3.4982694249277611, -12.338256249127136, 9.8421320440049662, 4.1138225682471781, 6.4942182289542236, 5.2066961739124622, -9.7070041876701811, -9.1496153713901478, -11.724529081464583, -9.3603341476943687, -5.2966983729936237, -13.015748591796211, -3.8567718830575424, 10.135559234020649, 8.7124846719285305, 15.56420640265349, 11.252060195029108, -5.0089167203318068, 4.8507161178807445, 18.024720595741002, 17.065315044907795, -7.1935844977610666, 4.4815982827009275, -11.880975891281834, -12.172241984932276, 1.5152035384857121, 17.946629562223141, 5.5052899404780824, -13.120278899383999, 10.648236401527056, -14.506377227430642, -10.143170277861179, 14.044470462529238, -9.2254356225576046, -8.8348967562869412, -4.9590358444858067, 9.0535343466316753, 10.897394405658892, 14.0281876034117, 11.255519350361872, -13.859106646040908, 6.4504642887424621, 11.777861578819222, -11.639709904108361, -14.642162922529135, -14.4258126604062, 13.682206617896547, 11.95057687459364, -8.3091459570180035, 10.93961990916042, -11.907964651381601, 12.516150502079761, -13.04991156095979, 14.145576472835312, 10.632785447350683, 12.081094158208353, -6.8485025555270633, -7.6927274273100101, 9.6552183508541098, -8.5591832251882316, 15.638135027982772, 11.926988474833571, -14.987130306515169, 14.812479105542307, -11.914804743109391, 15.824256001061817, -8.5851098252378435, -13.901610955497368, 14.188963140600226, 6.811888787586982, 1.6003053019945943, 19.325203560888092, -13.704678587213907, 0.31402694199929804, 15.989943699374408, 6.0088299172857802, -16.886144255198669, 10.998325725589428, -8.2882779267894371, 2.6453088627011274, 10.412577554382436, -14.426316461418969, 8.1138928008495217, -1.3343532339748365, -20.340051195431247, -8.147129300539568, -2.9761356060569728, -10.375141176280817, -3.492207168269704, 7.9187407777624479, 13.120922417727103, -13.038589243192815, -5.2220329986414589, -15.490400289338059, 17.189589889777995, -7.0721481714310892, 12.581795403076717, 13.235922100360186, -14.068623066472972, 10.590824537759135, -15.881395141726383, -10.457045553712261, -9.8661324776225801, 4.734922703000958, 15.360039696456523, -3.6427404709897195, 12.283954090395133, -10.580773927999571, 0.82767864919701561, -19.322191171106951, -2.4440165020607636, 7.3561450067817269, 8.734912251555226, -10.1437777971503, 11.586163919375755, -15.408234206400728, -13.870410556862536, -16.459582947709787, -6.3237526923701468, 11.608212905773328, 5.6613158220955073, -11.774245858420727, 3.9445738850991399, 11.580625563882155, 4.8206111058017749, 9.1501633745566071, -7.8619603245069358, -10.01135725687336, 13.093956991526415, -16.457925498763061, 8.7995448079979344, -6.8693123471950814, 2.7230849761708642, 14.798365672787927, 5.3137203364492533, 12.867351465034174, 15.542257577290705, 10.701888362195504, -12.387250136917784, -7.2295230408544304, 9.6964847959436913, -9.0249610457078298, -6.1083927724817624, 10.739040854096423, 10.841475540702188, -11.378611500586242, 15.703248605756047, 3.4356087856986508, 9.107640628528733, -10.389742419200251, -13.652754262528372, -8.7325864940958979, -4.1006685083845982, 12.419068901103934, 18.740969634501024, -7.2686574148980894, 15.57081866775636, 7.8740814697714061, -5.3846084718512941, 10.477115100800031, -18.872361222343329, 6.1039069136118798, 17.308178559392783, -7.4815794858402631, -8.6125141656077062, 8.9583151933398391, 15.414391681552324, 11.050241874455013, -12.807870031579375, 9.0363612736996224, 15.816822937315944, 7.8444181915777751, 9.1766300505397727, 14.827248874904317, 10.059358980544847, 8.1004443450218631, -9.9138353480289823, -12.69584064620971, -1.2480517929964754, 4.9462685565954452, -11.001361577099411, -14.645415102047146, -8.290528664203066, -6.5125802605593295, -9.2390284023464098, -9.6219279810207716, -2.4663308852408137, 7.9284843220778702, -10.739866570047806, 6.0027860732461509, 6.1871445421636109, -7.2396227218981295, -16.909239064069116, 8.0605318273056952, -13.18199180405694, 11.423481528527208, 6.103394660237238, 11.02891865005909, -9.0418767418601025, -12.498971584987439, 20.946414970644234, 24.362523031251186, 4.928071385179801, -9.8370658808205729, 14.539073682029368, 1.2645116781629737, 14.426946417515435, 10.026504861776269, 10.448998607938103, 10.006313240241793, 11.891150094820924, 8.8375576186697344, 8.5771389584190558, -15.536407780091233, 13.349864120336063, -11.927556110752052, 16.068268030243942, 18.193338642202377, -11.869068102320544, 13.808406661021646, 11.216260613445977, -15.515968362285809, -14.909791180531339, -10.071410710917538, -5.5399590746720264, -14.934775635718978, 14.30539374658337, 7.3819695117708113, 7.7868368821638674, 15.432743081832081, -2.5950994414982973, -12.476581448977271, -1.6564415840602271, -10.295779594978484, 4.7085935460142574, 12.24789018308865, 16.925819961116584, -18.384663719107415, -14.057276635303813, -5.8146990314358709, 6.5631719088139118, 12.127149794502795, -15.739169438478982, 7.8271230641312846, -5.9606533200021854, 9.8721062001112347, 10.486834679901543, 6.3494439660436246, 9.9429692254989686, 19.542594690444115, 4.5180797153308676, -19.1566652225201, 15.006372860965323, -15.300035248621157, 9.7589319143789801, -4.7363679865964263, 5.3999824517855961, 8.0578934432355496, -19.385015013376869, -14.161802280526608, -12.881654979775632, -12.049094820078055, -5.3829315859449007, -7.3537414475927241, 6.844714008315254, -10.931623197527411, -10.939763582880817, -13.62500540625687, 20.49307277175809, 10.365734953239752, 4.0663542658207543, 15.929076113588478, -10.288951069929114, 7.8742158721474977, -1.422979120612724, -14.104879669064141, -4.55280623980281, -8.1653075636365458, 14.147963542838651, -13.933332225643916, 14.226165096278136, -13.375191283046002, 9.2088912804672614, 10.933675274282887, -9.9392697991816448, -16.955582876153894, -11.85793097786863, 5.8569767257292948, 6.6660744272807806, -4.6888969930553994, 20.646624453011015, -1.2485466035357267, 6.7572930222337293, -11.830468070632643, 12.387424895419418, -18.508514302306494, -15.324824129201243, 5.0862404533417127, -5.2707864200417625, -14.224777968048254, 7.6291208613793344, 5.0046921384732324, 7.9969106436802599, -14.577995568165489, 8.1080228274897834, 12.603861058845251, 11.220434316666585, -5.7247050938128154, 11.912056122344682, 0.10886944478234604, 9.3619646262630898, -7.7302663627879742, 14.530248266518536, -15.658478259515816, -1.2907403171529221, -6.3207955318188116, 15.484693780278064, 12.036254202990973, 4.6560888684896602, 7.678255286975908, 9.4289524624102352, 11.319695981517606, -5.4092744871032599, 6.6896098743454493, 2.1792109184280051, -11.081376849744698, -10.411817839842012, 11.057139193661996, 10.674844657971892, -7.611917928843007, -7.7114315734656405, -10.25566388330579, -9.5816821583841509, -3.8229805246413409, -9.4360724513005252, 8.5081398584333474, 12.93470424207193, -12.400231194882618, -9.4258414862069788, 21.836201624323113, 9.6722027120607468, -11.684243881860825, 11.18326004371732, 9.8228033099036569, -1.6298761838573241, -14.006557406509664, 3.2619201008452663, 3.9694393534038981, -8.8928237386570181, 6.2844903665726015, -4.7494171442219395, 5.9437023484394249, 13.979025508842865, -14.044878091079713, -4.9661838171055548, 7.6707889728317591, -4.2457033821315688, -1.3421305197348499, 4.9933591178833261, 1.5425117319878872, -17.930315353239411, 12.197719685382262, -5.947358941151732, -12.904626563212007, 6.1763577253014788, 16.076852398625185, 8.2709163525181015, -15.422610935202506, 10.890948687642558, -9.9461592598413802, 6.34551493463914, -15.578427358705113, 15.918090853090177, 9.9516599357932982, -3.9346680898413688, 5.3410774271588748, 11.920077938590593, -2.4538357241090294, -11.163446342656663, -10.488287129167166, -12.749714598521885, 5.4035140611182522, -7.3998902697733975, 8.1911994226222173, -6.178143732667059, 7.1909081188653348, -16.467787621055525, 7.5865191569782464, 15.269036731801625, -8.469922589870114 }; const char HRAb_396_504_detected_data[] = { 1, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 1, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0, 1, 0, 0, 1, 1, 1, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1 }; codec2-1.0.1/src/HRAb_396_504.h000066400000000000000000000010551412132000500153420ustar00rootroot00000000000000/* FILE....: HRAb_396_504.h Static arrays for LDPC codec HRAb_396_504, generated by ldpc_gen_c_h_file.m. */ #define HRAb_396_504_NUMBERPARITYBITS 108 #define HRAb_396_504_MAX_ROW_WEIGHT 12 #define HRAb_396_504_CODELENGTH 504 #define HRAb_396_504_NUMBERROWSHCOLS 396 #define HRAb_396_504_MAX_COL_WEIGHT 7 #define HRAb_396_504_DEC_TYPE 0 #define HRAb_396_504_MAX_ITER 100 extern const uint16_t HRAb_396_504_H_rows[]; extern const uint16_t HRAb_396_504_H_cols[]; extern const float HRAb_396_504_input[]; extern const char HRAb_396_504_detected_data[]; codec2-1.0.1/src/H_1024_2048_4f.c000066400000000000000000006762641412132000500155170ustar00rootroot00000000000000/* FILE....: H_1024_2048_4f.c Static arrays for LDPC codec H_1024_2048_4f, generated by ldpc_gen_c_h_file.m. */ #include #include "H_1024_2048_4f.h" const uint16_t H_1024_2048_4f_H_rows[] = { 16, 7, 138, 40, 212, 23, 7, 53, 14, 43, 2, 74, 7, 107, 74, 14, 38, 190, 13, 114, 157, 38, 223, 64, 43, 26, 64, 52, 15, 71, 26, 20, 15, 213, 114, 154, 2, 55, 39, 165, 14, 133, 96, 5, 9, 13, 54, 105, 30, 8, 17, 100, 25, 20, 95, 18, 46, 6, 36, 95, 563, 32, 80, 141, 89, 58, 24, 7, 143, 83, 140, 12, 94, 52, 202, 9, 22, 30, 52, 61, 11, 32, 34, 153, 13, 120, 36, 204, 72, 332, 42, 59, 91, 4, 74, 28, 12, 145, 24, 60, 26, 13, 116, 48, 42, 34, 29, 14, 6, 2, 226, 72, 124, 23, 76, 177, 132, 12, 177, 13, 126, 68, 388, 35, 1, 5, 40, 14, 45, 17, 10, 76, 34, 186, 44, 97, 6, 119, 59, 9, 39, 125, 59, 79, 102, 42, 5, 58, 66, 1, 35, 165, 154, 71, 218, 91, 11, 13, 8, 141, 126, 63, 58, 11, 8, 201, 96, 17, 40, 81, 35, 78, 94, 107, 143, 201, 40, 4, 217, 1, 110, 124, 49, 222, 121, 41, 52, 85, 157, 5, 93, 83, 84, 81, 34, 33, 63, 193, 43, 27, 70, 12, 97, 149, 12, 79, 17, 27, 57, 34, 18, 130, 25, 26, 91, 3, 59, 60, 74, 6, 14, 70, 67, 204, 10, 51, 31, 56, 104, 50, 72, 196, 18, 83, 69, 11, 15, 12, 92, 103, 215, 108, 84, 39, 67, 55, 16, 36, 158, 90, 100, 127, 206, 31, 77, 122, 183, 26, 36, 22, 114, 81, 46, 12, 118, 22, 61, 160, 129, 53, 191, 2, 21, 56, 130, 2, 12, 16, 74, 56, 36, 169, 41, 61, 16, 73, 2, 56, 31, 25, 169, 8, 159, 62, 82, 217, 9, 29, 61, 27, 39, 43, 135, 24, 18, 221, 5, 83, 112, 184, 19, 16, 9, 7, 66, 32, 1, 28, 95, 84, 14, 86, 71, 132, 3, 35, 58, 26, 45, 131, 10, 27, 21, 16, 68, 41, 3, 48, 20, 28, 68, 87, 22, 39, 20, 123, 46, 33, 15, 165, 205, 55, 34, 139, 114, 79, 75, 90, 129, 10, 12, 38, 20, 158, 4, 71, 20, 32, 46, 121, 4, 12, 33, 41, 6, 135, 25, 27, 45, 95, 141, 29, 6, 80, 116, 5, 138, 47, 110, 90, 44, 4, 19, 10, 55, 32, 45, 111, 60, 121, 32, 164, 66, 23, 4, 25, 167, 217, 119, 141, 49, 40, 124, 52, 27, 54, 15, 39, 48, 5, 107, 69, 10, 65, 32, 59, 33, 13, 26, 225, 11, 13, 23, 211, 24, 18, 81, 108, 81, 179, 100, 1, 135, 12, 32, 90, 64, 12, 35, 80, 48, 17, 46, 67, 66, 20, 8, 237, 63, 75, 102, 50, 83, 230, 45, 142, 75, 20, 59, 7, 10, 89, 106, 207, 69, 41, 197, 122, 1, 26, 109, 2, 145, 153, 166, 39, 71, 17, 144, 13, 9, 147, 20, 99, 12, 4, 43, 57, 157, 1, 88, 150, 91, 3, 11, 70, 123, 176, 3, 6, 39, 21, 30, 43, 10, 19, 68, 1, 70, 45, 167, 83, 116, 57, 34, 7, 51, 71, 70, 66, 49, 10, 117, 66, 38, 7, 9, 19, 39, 44, 58, 369, 21, 135, 7, 13, 123, 7, 60, 104, 65, 8, 101, 142, 105, 35, 48, 28, 22, 139, 151, 27, 436, 37, 89, 230, 92, 36, 72, 37, 45, 50, 22, 16, 69, 55, 35, 97, 28, 46, 15, 16, 25, 42, 156, 10, 42, 57, 221, 15, 99, 64, 31, 143, 138, 29, 99, 8, 81, 94, 76, 96, 107, 20, 6, 23, 58, 33, 6, 216, 33, 121, 64, 36, 18, 2, 148, 35, 72, 2, 169, 102, 15, 233, 57, 229, 53, 23, 68, 73, 26, 144, 9, 75, 18, 53, 23, 727, 30, 18, 14, 111, 5, 26, 53, 23, 30, 135, 2, 60, 51, 62, 85, 202, 2, 48, 18, 21, 103, 67, 82, 57, 86, 27, 19, 107, 42, 37, 66, 19, 61, 56, 76, 8, 10, 43, 19, 4, 29, 79, 36, 19, 70, 63, 25, 19, 7, 21, 5, 37, 39, 47, 92, 28, 24, 188, 30, 60, 11, 146, 49, 17, 62, 3, 28, 4, 146, 14, 47, 59, 30, 80, 46, 49, 67, 249, 98, 86, 174, 20, 8, 6, 139, 127, 51, 62, 17, 85, 68, 60, 44, 113, 118, 171, 80, 44, 15, 38, 70, 51, 11, 99, 5, 6, 85, 35, 230, 113, 4, 152, 107, 31, 28, 41, 184, 10, 27, 69, 58, 68, 100, 24, 148, 78, 4, 62, 38, 140, 112, 16, 130, 17, 21, 40, 35, 40, 111, 230, 31, 14, 109, 4, 69, 61, 85, 17, 117, 125, 90, 65, 37, 7, 46, 29, 41, 87, 11, 53, 80, 209, 75, 55, 8, 38, 86, 19, 190, 52, 28, 38, 169, 72, 81, 32, 65, 149, 5, 46, 101, 124, 60, 181, 33, 56, 32, 44, 9, 46, 9, 70, 96, 8, 1, 3, 130, 21, 22, 115, 43, 9, 44, 49, 63, 94, 152, 15, 162, 87, 196, 28, 34, 230, 44, 31, 86, 183, 67, 5, 102, 120, 89, 26, 53, 34, 62, 54, 30, 17, 58, 50, 65, 110, 21, 3, 77, 22, 11, 6, 1, 11, 7, 472, 66, 6, 1, 5, 26, 82, 50, 73, 17, 35, 47, 65, 137, 66, 3, 91, 29, 64, 1, 155, 27, 89, 31, 49, 176, 21, 43, 41, 82, 147, 13, 54, 25, 33, 45, 390, 54, 93, 26, 2, 70, 38, 18, 170, 11, 30, 44, 70, 3, 77, 73, 14, 32, 2, 46, 25, 178, 38, 75, 81, 2, 212, 9, 24, 36, 175, 71, 49, 3, 1, 65, 84, 40, 29, 162, 67, 116, 172, 119, 71, 208, 9, 72, 23, 29, 49, 103, 75, 4, 76, 132, 13, 180, 53, 44, 7, 98, 88, 169, 27, 3, 22, 64, 120, 84, 200, 52, 116, 13, 22, 76, 1, 27, 290, 185, 159, 8, 36, 62, 8, 3, 177, 88, 98, 41, 58, 25, 15, 145, 118, 36, 80, 105, 3, 4, 168, 88, 47, 23, 61, 6, 37, 184, 47, 167, 104, 248, 210, 33, 215, 158, 128, 24, 89, 37, 194, 115, 50, 128, 199, 30, 219, 187, 55, 255, 166, 103, 112, 83, 55, 101, 93, 84, 87, 29, 285, 132, 230, 92, 197, 233, 200, 23, 147, 170, 87, 59, 22, 62, 136, 48, 233, 42, 136, 220, 63, 153, 23, 112, 39, 421, 111, 589, 69, 100, 161, 145, 132, 43, 104, 180, 95, 208, 29, 167, 90, 223, 30, 168, 94, 230, 149, 131, 125, 57, 218, 88, 149, 84, 216, 78, 544, 63, 77, 142, 153, 205, 117, 40, 194, 32, 75, 131, 46, 154, 207, 47, 38, 230, 57, 24, 71, 393, 106, 143, 40, 77, 266, 147, 42, 316, 182, 396, 123, 533, 53, 111, 42, 171, 43, 164, 76, 15, 462, 49, 206, 129, 354, 163, 138, 96, 142, 101, 161, 68, 142, 103, 180, 130, 85, 178, 129, 47, 167, 171, 159, 283, 95, 88, 24, 186, 205, 199, 233, 140, 14, 199, 261, 176, 88, 41, 89, 101, 121, 347, 119, 197, 204, 179, 15, 344, 78, 227, 188, 82, 522, 139, 45, 108, 230, 184, 86, 104, 107, 117, 401, 87, 91, 192, 199, 48, 51, 168, 76, 136, 164, 21, 83, 28, 79, 131, 184, 64, 175, 30, 106, 129, 51, 224, 152, 78, 48, 118, 73, 105, 487, 18, 118, 60, 134, 220, 209, 134, 374, 33, 228, 164, 18, 68, 18, 109, 174, 218, 352, 482, 73, 76, 171, 35, 234, 180, 115, 126, 213, 233, 73, 216, 166, 193, 92, 75, 214, 175, 87, 102, 51, 198, 33, 150, 231, 213, 150, 215, 13, 143, 234, 168, 123, 86, 76, 146, 180, 79, 192, 159, 144, 21, 123, 20, 98, 228, 71, 191, 22, 186, 114, 134, 346, 16, 112, 79, 37, 86, 166, 198, 39, 35, 774, 215, 150, 126, 212, 45, 39, 62, 79, 217, 74, 16, 51, 99, 104, 106, 96, 85, 134, 18, 55, 67, 156, 200, 205, 210, 78, 93, 217, 69, 87, 16, 174, 72, 138, 74, 206, 235, 207, 118, 180, 126, 36, 61, 204, 208, 129, 85, 189, 142, 213, 144, 134, 200, 113, 201, 107, 220, 175, 11, 120, 56, 80, 110, 220, 110, 195, 74, 94, 86, 212, 63, 57, 56, 216, 169, 54, 137, 97, 137, 15, 144, 65, 193, 187, 73, 71, 23, 20, 95, 56, 115, 149, 207, 204, 61, 219, 127, 54, 24, 184, 232, 358, 348, 216, 233, 42, 157, 110, 145, 82, 214, 113, 233, 71, 188, 77, 52, 142, 137, 64, 44, 54, 31, 228, 162, 37, 70, 346, 55, 116, 92, 127, 150, 195, 127, 57, 231, 133, 63, 103, 108, 183, 144, 147, 119, 53, 51, 104, 119, 233, 23, 443, 90, 88, 209, 147, 98, 306, 111, 225, 601, 195, 108, 92, 27, 113, 175, 218, 187, 58, 213, 289, 110, 43, 458, 80, 160, 158, 193, 157, 114, 62, 363, 62, 161, 207, 177, 125, 158, 99, 79, 229, 219, 5, 99, 169, 234, 105, 12, 92, 147, 198, 173, 109, 93, 165, 63, 82, 16, 327, 72, 107, 114, 146, 177, 88, 175, 71, 161, 61, 116, 78, 183, 69, 125, 43, 360, 93, 62, 10, 91, 149, 188, 53, 119, 383, 169, 178, 96, 35, 134, 113, 209, 114, 229, 97, 115, 146, 139, 100, 54, 79, 110, 244, 160, 74, 461, 93, 123, 297, 104, 202, 73, 65, 54, 96, 32, 42, 646, 91, 52, 207, 128, 55, 19, 40, 115, 87, 163, 40, 166, 191, 429, 16, 159, 274, 68, 189, 153, 37, 216, 226, 138, 158, 92, 155, 135, 153, 31, 289, 99, 134, 41, 218, 139, 127, 184, 78, 30, 48, 226, 50, 226, 87, 390, 124, 225, 264, 139, 292, 142, 59, 110, 98, 52, 212, 111, 147, 25, 98, 230, 804, 221, 220, 80, 118, 31, 28, 81, 45, 34, 202, 157, 74, 177, 190, 100, 204, 57, 51, 107, 44, 117, 212, 129, 207, 98, 29, 51, 113, 60, 216, 223, 115, 70, 203, 185, 209, 158, 84, 79, 8, 214, 121, 85, 103, 95, 66, 55, 44, 164, 26, 10, 142, 50, 102, 346, 83, 25, 205, 96, 151, 19, 198, 148, 56, 78, 177, 208, 37, 235, 97, 132, 102, 168, 466, 47, 53, 79, 367, 164, 131, 229, 139, 81, 141, 204, 167, 150, 87, 49, 142, 101, 84, 233, 212, 124, 206, 84, 60, 17, 53, 109, 514, 69, 211, 193, 67, 120, 41, 275, 115, 76, 173, 146, 200, 55, 158, 189, 124, 234, 132, 178, 219, 103, 165, 162, 116, 142, 100, 54, 153, 144, 145, 194, 233, 47, 57, 162, 178, 215, 281, 77, 124, 186, 19, 75, 78, 140, 86, 208, 230, 155, 110, 118, 171, 109, 157, 221, 125, 31, 85, 86, 301, 106, 164, 14, 50, 178, 40, 223, 62, 85, 91, 217, 100, 82, 33, 81, 253, 24, 69, 176, 133, 137, 209, 34, 154, 64, 54, 82, 68, 38, 87, 129, 140, 17, 24, 133, 109, 58, 231, 61, 141, 121, 50, 117, 129, 155, 78, 168, 128, 232, 108, 131, 235, 149, 184, 207, 208, 147, 52, 168, 199, 205, 173, 76, 64, 188, 207, 59, 160, 103, 93, 166, 134, 96, 136, 121, 159, 155, 68, 238, 109, 112, 542, 75, 33, 52, 28, 54, 136, 108, 89, 66, 90, 64, 130, 223, 122, 19, 133, 81, 77, 138, 234, 34, 235, 103, 230, 181, 232, 65, 69, 119, 181, 134, 283, 101, 205, 79, 411, 94, 105, 80, 146, 72, 46, 24, 173, 21, 108, 128, 89, 48, 149, 191, 30, 73, 82, 63, 104, 224, 58, 222, 117, 31, 213, 22, 141, 459, 467, 84, 83, 36, 106, 89, 116, 49, 57, 192, 101, 186, 200, 217, 90, 759, 69, 228, 31, 122, 88, 118, 122, 133, 155, 148, 100, 203, 91, 63, 29, 158, 179, 194, 44, 14, 203, 205, 704, 220, 202, 149, 127, 206, 48, 78, 37, 90, 490, 227, 230, 42, 98, 138, 9, 21, 224, 220, 133, 105, 179, 29, 92, 579, 207, 40, 228, 132, 61, 55, 172, 93, 129, 159, 189, 20, 87, 398, 111, 219, 120, 588, 226, 90, 221, 199, 193, 261, 215, 181, 206, 165, 53, 355, 211, 47, 222, 215, 60, 524, 295, 106, 162, 196, 77, 195, 125, 135, 110, 36, 400, 509, 251, 174, 214, 336, 203, 92, 208, 292, 99, 370, 147, 272, 154, 83, 388, 51, 162, 235, 64, 636, 124, 173, 65, 586, 227, 654, 161, 112, 223, 190, 201, 156, 121, 223, 172, 223, 172, 217, 91, 455, 37, 233, 106, 256, 211, 163, 127, 65, 247, 154, 213, 132, 231, 175, 585, 74, 84, 235, 437, 228, 212, 67, 208, 58, 199, 197, 79, 412, 229, 337, 136, 459, 175, 212, 127, 440, 113, 209, 52, 109, 490, 170, 94, 431, 201, 425, 181, 794, 157, 150, 141, 185, 117, 441, 80, 45, 722, 67, 218, 178, 509, 174, 150, 98, 151, 102, 188, 71, 143, 137, 329, 309, 116, 544, 223, 119, 175, 317, 445, 352, 207, 142, 604, 351, 206, 452, 282, 219, 25, 234, 474, 178, 747, 165, 207, 200, 378, 885, 128, 233, 603, 203, 173, 354, 172, 302, 261, 171, 657, 613, 47, 131, 770, 194, 146, 123, 189, 157, 907, 104, 152, 617, 202, 235, 67, 184, 105, 140, 170, 25, 111, 201, 92, 152, 224, 161, 208, 109, 141, 156, 128, 325, 165, 113, 112, 178, 116, 222, 540, 78, 120, 234, 168, 358, 503, 139, 811, 51, 383, 232, 98, 76, 41, 122, 194, 282, 398, 623, 77, 108, 368, 89, 236, 215, 218, 309, 719, 252, 176, 333, 224, 215, 99, 136, 230, 182, 118, 170, 96, 466, 104, 182, 239, 230, 205, 226, 235, 161, 286, 198, 136, 283, 88, 297, 403, 215, 218, 170, 164, 34, 168, 49, 211, 229, 187, 306, 72, 208, 201, 493, 611, 136, 192, 99, 175, 161, 178, 260, 150, 151, 935, 225, 180, 243, 222, 50, 72, 77, 84, 347, 102, 49, 60, 149, 229, 160, 135, 136, 235, 221, 234, 137, 171, 227, 233, 223, 137, 159, 353, 138, 101, 208, 181, 93, 143, 75, 220, 352, 393, 119, 196, 224, 38, 163, 212, 211, 142, 196, 197, 148, 393, 209, 199, 284, 126, 203, 121, 355, 212, 38, 311, 124, 109, 124, 233, 150, 473, 202, 152, 90, 472, 176, 117, 90, 710, 319, 63, 199, 122, 216, 22, 168, 100, 204, 205, 96, 117, 34, 61, 98, 108, 145, 152, 327, 205, 151, 226, 230, 112, 442, 210, 330, 708, 781, 569, 608, 446, 206, 163, 229, 139, 224, 138, 714, 77, 228, 81, 112, 145, 230, 210, 120, 163, 37, 240, 219, 185, 182, 475, 310, 159, 102, 139, 237, 199, 132, 230, 356, 167, 126, 138, 154, 211, 145, 230, 203, 111, 181, 278, 201, 353, 100, 715, 142, 94, 242, 213, 763, 392, 221, 302, 958, 198, 159, 95, 47, 192, 176, 264, 356, 230, 238, 482, 125, 111, 550, 83, 204, 163, 231, 224, 204, 117, 428, 66, 162, 231, 194, 129, 988, 175, 171, 299, 231, 46, 156, 188, 319, 108, 115, 129, 153, 252, 339, 110, 146, 197, 69, 94, 28, 632, 192, 117, 203, 159, 222, 115, 408, 209, 212, 160, 123, 97, 217, 126, 176, 73, 652, 427, 409, 11, 127, 202, 227, 87, 210, 682, 210, 179, 154, 63, 170, 143, 223, 174, 232, 99, 230, 181, 214, 111, 155, 144, 213, 540, 176, 194, 684, 98, 131, 384, 112, 374, 74, 211, 156, 122, 97, 153, 648, 165, 121, 214, 234, 209, 27, 95, 229, 170, 234, 59, 229, 213, 523, 365, 280, 711, 166, 205, 181, 72, 232, 434, 187, 328, 141, 231, 161, 230, 45, 438, 117, 160, 56, 220, 200, 221, 190, 173, 97, 224, 483, 77, 360, 140, 535, 227, 477, 426, 147, 511, 231, 115, 211, 143, 178, 218, 137, 169, 106, 137, 591, 830, 232, 696, 156, 143, 32, 227, 204, 48, 531, 597, 234, 106, 188, 258, 188, 232, 206, 103, 200, 453, 131, 387, 228, 224, 103, 163, 432, 176, 73, 504, 231, 159, 74, 210, 208, 238, 171, 152, 96, 64, 235, 170, 99, 162, 130, 226, 58, 116, 476, 83, 140, 153, 413, 123, 833, 86, 42, 213, 112, 166, 127, 211, 153, 174, 127, 192, 229, 162, 571, 186, 151, 130, 229, 515, 113, 59, 80, 453, 277, 190, 385, 206, 232, 227, 211, 233, 202, 91, 179, 193, 223, 222, 712, 456, 158, 651, 233, 124, 74, 230, 207, 644, 101, 233, 230, 98, 133, 184, 750, 170, 116, 203, 182, 220, 161, 505, 231, 419, 340, 214, 217, 250, 155, 213, 209, 226, 215, 152, 148, 520, 182, 147, 296, 241, 212, 154, 249, 230, 538, 399, 131, 225, 201, 268, 180, 106, 187, 109, 221, 710, 183, 157, 174, 191, 217, 185, 229, 179, 41, 97, 234, 563, 207, 321, 59, 56, 202, 73, 365, 133, 166, 105, 679, 118, 113, 235, 109, 636, 67, 130, 212, 217, 160, 273, 47, 158, 168, 154, 90, 197, 73, 102, 162, 344, 226, 110, 225, 194, 68, 371, 76, 204, 135, 91, 204, 133, 219, 100, 208, 230, 291, 174, 217, 407, 224, 193, 215, 219, 177, 171, 780, 208, 214, 230, 83, 113, 688, 226, 212, 183, 136, 114, 185, 203, 105, 181, 209, 177, 179, 194, 269, 114, 118, 590, 151, 93, 85, 180, 118, 164, 215, 120, 67, 269, 155, 164, 302, 334, 77, 214, 95, 114, 372, 331, 173, 417, 128, 336, 218, 268, 320, 146, 126, 228, 191, 633, 551, 222, 209, 670, 188, 625, 94, 203, 125, 263, 62, 179, 92, 134, 136, 144, 95, 181, 209, 39, 130, 112, 128, 172, 372, 102, 404, 178, 33, 235, 113, 198, 831, 556, 217, 140, 170, 359, 118, 155, 66, 107, 203, 126, 209, 234, 227, 141, 804, 149, 235, 691, 227, 92, 170, 148, 203, 197, 166, 120, 204, 109, 89, 148, 306, 196, 202, 91, 45, 208, 221, 709, 362, 219, 157, 202, 564, 75, 177, 50, 119, 723, 231, 778, 120, 130, 172, 85, 50, 289, 520, 326, 131, 186, 60, 128, 664, 628, 54, 346, 155, 201, 101, 310, 162, 163, 175, 219, 114, 155, 738, 141, 353, 128, 595, 246, 182, 227, 230, 195, 417, 267, 241, 232, 179, 234, 808, 244, 165, 224, 377, 72, 645, 446, 163, 262, 234, 205, 197, 685, 221, 174, 42, 611, 667, 287, 186, 225, 573, 879, 94, 227, 523, 106, 786, 279, 320, 156, 187, 734, 89, 177, 467, 65, 835, 180, 400, 143, 630, 370, 706, 210, 149, 253, 490, 222, 220, 166, 345, 224, 234, 174, 324, 132, 706, 56, 326, 137, 321, 215, 226, 165, 921, 258, 195, 287, 140, 492, 214, 627, 187, 89, 293, 497, 275, 216, 140, 233, 70, 213, 377, 122, 545, 307, 358, 172, 827, 181, 627, 172, 592, 161, 230, 123, 136, 575, 233, 134, 667, 217, 576, 198, 975, 395, 159, 270, 222, 139, 510, 139, 107, 999, 114, 219, 185, 536, 273, 152, 125, 227, 201, 207, 169, 208, 212, 583, 735, 125, 951, 248, 183, 537, 421, 513, 404, 454, 164, 842, 485, 225, 748, 486, 310, 65, 362, 870, 309, 932, 231, 624, 478, 448, 956, 171, 328, 654, 666, 221, 581, 232, 650, 454, 270, 724, 819, 99, 177, 817, 216, 218, 126, 210, 205, 920, 364, 177, 930, 205, 610, 133, 195, 129, 192, 225, 82, 120, 301, 202, 166, 321, 228, 326, 123, 543, 193, 151, 342, 226, 136, 148, 647, 465, 245, 928, 82, 230, 318, 342, 392, 932, 157, 859, 68, 742, 296, 146, 112, 127, 223, 203, 437, 557, 805, 137, 416, 374, 105, 332, 773, 222, 790, 916, 419, 192, 443, 311, 337, 498, 218, 519, 189, 135, 216, 113, 512, 119, 193, 831, 233, 633, 395, 266, 416, 497, 209, 322, 363, 101, 515, 863, 584, 468, 203, 204, 106, 189, 86, 230, 389, 318, 313, 88, 222, 232, 594, 677, 146, 211, 234, 336, 206, 218, 330, 399, 231, 947, 511, 207, 380, 308, 134, 133, 86, 88, 362, 214, 108, 94, 549, 652, 459, 167, 165, 572, 908, 571, 164, 203, 361, 284, 390, 200, 190, 672, 231, 156, 544, 278, 94, 217, 150, 380, 391, 578, 163, 219, 277, 43, 411, 219, 287, 379, 503, 232, 244, 488, 278, 214, 414, 566, 271, 122, 470, 357, 154, 642, 164, 232, 156, 421, 229, 712, 206, 468, 168, 640, 196, 120, 131, 807, 371, 70, 232, 194, 233, 50, 203, 146, 478, 307, 194, 160, 101, 209, 182, 187, 191, 158, 678, 230, 648, 576, 456, 174, 524, 254, 584, 725, 935, 594, 665, 798, 507, 275, 519, 255, 479, 238, 760, 144, 230, 97, 299, 179, 497, 452, 144, 744, 61, 471, 220, 616, 220, 566, 990, 225, 752, 152, 458, 209, 153, 403, 439, 220, 143, 210, 379, 436, 237, 333, 216, 161, 201, 325, 202, 903, 201, 904, 468, 130, 497, 373, 898, 422, 246, 385, 1016, 216, 211, 218, 154, 199, 574, 771, 521, 568, 424, 597, 160, 229, 1007, 144, 531, 165, 245, 230, 469, 225, 718, 159, 392, 268, 714, 201, 995, 209, 205, 549, 542, 104, 206, 201, 640, 126, 147, 148, 221, 451, 542, 191, 185, 217, 172, 187, 56, 675, 300, 247, 226, 172, 230, 211, 600, 256, 229, 207, 138, 150, 685, 200, 213, 225, 849, 962, 845, 151, 130, 230, 500, 203, 218, 968, 216, 594, 354, 169, 212, 163, 333, 227, 239, 126, 878, 210, 715, 248, 209, 267, 277, 886, 235, 230, 988, 194, 149, 424, 150, 420, 81, 219, 176, 182, 105, 412, 658, 253, 752, 444, 573, 412, 48, 137, 233, 223, 322, 134, 234, 656, 905, 514, 694, 738, 230, 394, 223, 80, 428, 638, 508, 522, 193, 495, 183, 231, 575, 496, 189, 181, 214, 466, 230, 357, 225, 182, 103, 232, 533, 171, 531, 183, 845, 232, 606, 515, 160, 764, 350, 219, 561, 231, 596, 396, 183, 242, 128, 188, 681, 907, 328, 786, 170, 145, 78, 728, 228, 66, 735, 702, 396, 107, 231, 303, 235, 256, 211, 140, 643, 700, 464, 407, 298, 401, 123, 196, 670, 732, 82, 718, 568, 217, 104, 337, 230, 617, 274, 201, 210, 242, 257, 227, 169, 215, 135, 300, 156, 131, 691, 104, 195, 186, 415, 202, 872, 93, 57, 624, 163, 173, 190, 314, 183, 228, 217, 216, 422, 210, 771, 217, 219, 152, 635, 841, 355, 197, 127, 634, 740, 220, 650, 226, 322, 235, 229, 261, 213, 122, 187, 194, 494, 392, 947, 684, 234, 686, 311, 190, 294, 353, 255, 871, 477, 299, 423, 224, 148, 185, 835, 214, 143, 214, 202, 397, 168, 607, 288, 451, 590, 276, 231, 419, 167, 651, 216, 285, 216, 160, 360, 697, 195, 154, 313, 611, 243, 375, 388, 541, 625, 929, 259, 318, 304, 279, 289, 132, 226, 203, 487, 749, 203, 340, 296, 566, 230, 198, 235, 205, 111, 108, 683, 577, 221, 382, 204, 95, 211, 169, 540, 189, 445, 208, 887, 225, 203, 680, 618, 809, 138, 151, 562, 240, 162, 456, 170, 161, 329, 232, 180, 200, 144, 295, 180, 364, 546, 172, 236, 218, 439, 401, 100, 511, 171, 124, 235, 425, 235, 176, 380, 590, 314, 175, 627, 490, 423, 797, 347, 480, 381, 196, 931, 325, 428, 608, 122, 121, 724, 527, 214, 230, 223, 164, 214, 207, 168, 203, 377, 218, 481, 209, 841, 330, 128, 759, 376, 221, 211, 220, 133, 205, 235, 221, 152, 565, 173, 212, 434, 599, 341, 355, 151, 191, 649, 547, 198, 635, 207, 668, 242, 276, 695, 177, 141, 251, 413, 683, 587, 231, 368, 876, 304, 659, 211, 433, 196, 343, 115, 206, 97, 222, 291, 151, 107, 234, 450, 75, 148, 145, 137, 307, 493, 135, 504, 206, 59, 508, 232, 218, 881, 833, 431, 143, 230, 482, 196, 182, 117, 220, 217, 158, 210, 387, 282, 562, 901, 207, 614, 894, 679, 368, 185, 214, 510, 295, 281, 212, 419, 212, 591, 206, 383, 230, 220, 216, 122, 225, 337, 870, 629, 522, 217, 208, 681, 115, 243, 683, 172, 927, 266, 810, 123, 144, 182, 215, 52, 359, 572, 609, 211, 520, 440, 156, 737, 669, 211, 631, 229, 518, 111, 620, 232, 216, 215, 484, 313, 190, 1013, 179, 604, 225, 749, 760, 339, 262, 473, 210, 620, 812, 858, 563, 245, 241, 854, 266, 192, 304, 564, 103, 0, 505, 192, 349, 443, 223, 204, 807, 223, 234, 205, 896, 808, 469, 309, 567, 698, 972, 183, 246, 909, 226, 832, 543, 535, 173, 208, 777, 219, 196, 523, 97, 997, 211, 556, 183, 839, 560, 0, 224, 198, 506, 514, 632, 226, 852, 625, 746, 235, 343, 474, 495, 1022, 173, 725, 450, 669, 613, 345, 298, 1015, 293, 223, 517, 837, 735, 262, 0, 232, 93, 501, 821, 637, 230, 202, 250, 106, 458, 713, 132, 726, 524, 567, 191, 859, 232, 824, 219, 888, 333, 472, 779, 180, 917, 372, 161, 730, 327, 0, 235, 0, 445, 206, 291, 233, 191, 622, 252, 114, 1015, 119, 389, 207, 692, 363, 190, 126, 413, 541, 219, 221, 228, 271, 836, 752, 145, 1013, 682, 222, 757, 707, 982, 856, 494, 474, 844, 580, 400, 1020, 829, 454, 95, 562, 984, 502, 998, 406, 779, 684, 479, 0, 208, 373, 663, 776, 516, 830, 335, 720, 651, 314, 0, 957, 204, 693, 848, 260, 489, 460, 217, 434, 955, 536, 204, 0, 396, 909, 135, 234, 187, 222, 270, 102, 135, 335, 316, 555, 492, 385, 486, 140, 585, 211, 184, 851, 232, 167, 215, 745, 471, 253, 972, 105, 388, 967, 477, 788, 977, 267, 971, 473, 788, 962, 204, 167, 209, 226, 275, 562, 869, 863, 186, 583, 519, 141, 780, 822, 232, 994, 982, 770, 237, 934, 441, 349, 717, 224, 800, 672, 201, 512, 186, 944, 187, 228, 0, 342, 665, 581, 723, 435, 629, 290, 614, 612, 188, 1020, 874, 0, 571, 232, 210, 209, 660, 214, 347, 449, 443, 953, 219, 343, 463, 643, 699, 190, 232, 328, 559, 231, 223, 553, 902, 541, 995, 561, 232, 802, 736, 201, 581, 157, 314, 403, 218, 199, 189, 550, 883, 945, 226, 417, 703, 950, 617, 254, 905, 526, 407, 432, 222, 294, 818, 378, 225, 780, 511, 101, 348, 172, 664, 718, 671, 186, 828, 641, 145, 463, 361, 366, 418, 621, 235, 428, 550, 370, 216, 968, 770, 608, 225, 899, 409, 224, 748, 235, 549, 329, 447, 492, 774, 254, 616, 228, 766, 197, 231, 195, 820, 510, 84, 386, 893, 236, 85, 288, 213, 600, 360, 235, 226, 105, 217, 210, 189, 408, 178, 755, 433, 825, 775, 558, 208, 614, 576, 811, 742, 0, 964, 683, 0, 583, 666, 551, 307, 574, 426, 857, 179, 371, 133, 673, 221, 569, 580, 229, 858, 82, 574, 272, 751, 539, 0, 0, 234, 903, 231, 929, 233, 290, 453, 707, 221, 234, 483, 593, 478, 615, 440, 426, 664, 211, 610, 385, 1021, 356, 0, 751, 201, 601, 596, 978, 579, 433, 524, 0, 222, 872, 231, 181, 206, 719, 1012, 703, 617, 515, 663, 222, 405, 0, 205, 852, 228, 310, 867, 559, 599, 753, 228, 605, 274, 809, 210, 996, 231, 232, 756, 645, 147, 429, 488, 716, 138, 234, 192, 431, 880, 720, 210, 223, 553, 186, 214, 182, 697, 616, 729, 530, 184, 507, 785, 690, 852, 249, 260, 195, 250, 749, 600, 223, 521, 921, 0, 0, 198, 210, 397, 612, 312, 235, 0, 496, 676, 448, 0, 455, 538, 726, 369, 280, 131, 1017, 487, 726, 257, 501, 519, 425, 910, 350, 466, 0, 331, 167, 565, 189, 1003, 132, 234, 397, 211, 116, 618, 803, 835, 849, 457, 668, 615, 139, 166, 320, 864, 506, 153, 464, 945, 942, 685, 848, 773, 498, 457, 479, 115, 793, 645, 826, 596, 212, 587, 442, 361, 644, 603, 393, 184, 704, 527, 900, 411, 230, 216, 130, 449, 620, 225, 762, 191, 1024, 258, 797, 527, 202, 979, 465, 476, 643, 528, 922, 502, 491, 829, 189, 379, 887, 0, 665, 824, 219, 386, 88, 817, 302, 102, 849, 0, 641, 149, 335, 692, 334, 277, 652, 145, 691, 778, 624, 605, 410, 590, 151, 204, 693, 758, 93, 856, 571, 243, 122, 744, 232, 713, 308, 206, 840, 334, 599, 475, 213, 231, 176, 416, 215, 198, 919, 125, 538, 245, 438, 359, 1010, 171, 208, 837, 225, 180, 236, 499, 190, 232, 383, 235, 788, 230, 981, 239, 489, 185, 772, 1000, 539, 202, 155, 0, 983, 232, 714, 402, 794, 365, 324, 483, 222, 146, 283, 197, 649, 737, 988, 796, 325, 984, 340, 218, 298, 480, 442, 900, 484, 315, 721, 696, 173, 206, 990, 351, 151, 215, 221, 559, 218, 675, 858, 853, 779, 463, 251, 549, 206, 750, 293, 406, 234, 209, 733, 799, 305, 235, 647, 891, 326, 889, 731, 947, 799, 1023, 295, 658, 491, 773, 455, 191, 227, 224, 568, 976, 233, 371, 570, 611, 784, 367, 286, 408, 160, 233, 718, 944, 230, 570, 430, 288, 227, 232, 807, 438, 607, 218, 981, 231, 230, 868, 671, 966, 503, 154, 911, 508, 195, 461, 195, 201, 460, 273, 286, 338, 158, 375, 427, 692, 814, 732, 366, 474, 746, 779, 369, 630, 214, 192, 312, 502, 607, 179, 556, 828, 484, 202, 761, 644, 525, 832, 649, 639, 977, 228, 1001, 370, 504, 747, 175, 150, 823, 654, 258, 368, 570, 230, 588, 223, 205, 496, 384, 583, 674, 495, 1012, 444, 190, 0, 486, 263, 451, 224, 222, 669, 279, 446, 205, 713, 375, 231, 991, 655, 517, 509, 156, 206, 704, 675, 305, 731, 227, 732, 629, 739, 819, 201, 165, 397, 619, 753, 811, 234, 815, 0, 882, 786, 224, 735, 304, 661, 121, 235, 221, 520, 292, 225, 197, 580, 485, 235, 193, 155, 185, 762, 783, 220, 558, 766, 121, 552, 567, 301, 1009, 0, 847, 156, 631, 516, 382, 298, 224, 293, 493, 167, 228, 408, 376, 629, 955, 387, 650, 0, 878, 800, 711, 220, 532, 464, 439, 305, 660, 446, 713, 637, 414, 444, 228, 221, 485, 376, 708, 956, 814, 823, 221, 387, 836, 120, 556, 785, 312, 0, 787, 814, 124, 191, 192, 223, 381, 577, 632, 677, 578, 755, 671, 199, 963, 983, 214, 896, 230, 992, 128, 975, 382, 227, 263, 606, 414, 204, 0, 214, 966, 324, 0, 800, 344, 737, 661, 686, 0, 819, 952, 626, 884, 680, 948, 793, 513, 331, 591, 153, 0, 0, 213, 840, 545, 342, 207, 954, 418, 349, 210, 0, 847, 698, 662, 677, 873, 1012, 205, 641, 0, 235, 0, 738, 0, 418, 292, 0, 418, 202, 631, 182, 0, 423, 631, 244, 0, 689, 0, 444, 554, 842, 954, 0, 230, 921, 697, 942, 616, 687, 649, 553, 0, 294, 802, 989, 740, 639, 491, 498, 0, 470, 377, 908, 940, 743, 708, 0, 259, 231, 602, 964, 758, 548, 259, 399, 169, 545, 867, 198, 0, 938, 737, 865, 1003, 499, 950, 229, 0, 801, 920, 907, 214, 0, 686, 225, 0, 447, 0, 247, 0, 555, 420, 979, 276, 666, 716, 523, 125, 0, 157, 689, 234, 0, 404, 196, 232, 595, 834, 532, 233, 338, 557, 1002, 918, 257, 0, 816, 413, 836, 0, 0, 0, 731, 483, 924, 593, 475, 0, 937, 875, 119, 821, 0, 743, 0, 860, 782, 996, 667, 0, 445, 822, 1022, 835, 577, 0, 367, 938, 980, 705, 0, 0, 220, 736, 0, 457, 825, 507, 222, 734, 0, 830, 259, 0, 815, 942, 403, 240, 672, 287, 410, 219, 623, 359, 378, 0, 999, 809, 0, 213, 1001, 290, 233, 0, 429, 201, 230, 865, 897, 604, 0, 166, 634, 0, 630, 1005, 0, 639, 0, 754, 963, 0, 548, 183, 227, 339, 526, 601, 0, 0, 327, 591, 789, 163, 1014, 998, 410, 0, 0, 0, 375, 0, 939, 898, 894, 354, 946, 714, 215, 577, 193, 989, 433, 498, 0, 449, 711, 804, 846, 757, 0, 407, 638, 0, 373, 0, 0, 0, 0, 764, 213, 311, 694, 271, 821, 610, 458, 963, 435, 781, 637, 0, 0, 233, 568, 435, 582, 391, 233, 992, 925, 544, 0, 919, 233, 958, 876, 224, 847, 318, 561, 778, 455, 220, 294, 803, 0, 0, 336, 454, 755, 974, 1012, 680, 0, 776, 871, 530, 560, 324, 844, 574, 597, 834, 606, 160, 661, 176, 742, 806, 694, 366, 901, 918, 267, 850, 613, 432, 642, 1004, 384, 787, 658, 449, 529, 0, 896, 738, 622, 0, 657, 823, 913, 636, 578, 440, 610, 570, 0, 502, 878, 322, 0, 330, 794, 202, 928, 893, 96, 528, 0, 950, 202, 576, 886, 687, 442, 510, 316, 125, 315, 349, 206, 427, 210, 973, 641, 0, 790, 787, 231, 818, 0, 812, 0, 0, 0, 0, 0, 0, 674, 613, 364, 854, 879, 966, 200, 782, 152, 848, 558, 829, 934, 420, 860, 233, 784, 357, 753, 602, 0, 0, 386, 1019, 271, 0, 272, 588, 767, 755, 463, 315, 810, 0, 949, 902, 460, 841, 708, 225, 630, 818, 0, 973, 0, 886, 234, 874, 998, 0, 0, 857, 638, 0, 225, 880, 673, 185, 384, 897, 0, 902, 679, 0, 0, 228, 505, 0, 220, 999, 276, 506, 967, 895, 682, 0, 687, 865, 736, 844, 599, 0, 308, 639, 853, 766, 148, 792, 671, 943, 213, 239, 480, 555, 896, 991, 288, 312, 741, 216, 222, 265, 0, 0, 754, 698, 436, 518, 822, 745, 0, 709, 795, 453, 550, 820, 0, 334, 618, 0, 0, 0, 205, 306, 895, 947, 391, 329, 0, 706, 979, 899, 0, 702, 659, 904, 958, 394, 212, 0, 879, 934, 976, 669, 811, 743, 0, 528, 532, 0, 653, 193, 0, 716, 0, 174, 365, 432, 212, 184, 902, 0, 0, 883, 489, 912, 715, 213, 204, 402, 920, 777, 206, 529, 1003, 0, 846, 0, 0, 606, 1009, 730, 203, 806, 0, 897, 0, 437, 695, 650, 604, 684, 0, 646, 213, 767, 563, 917, 535, 434, 721, 363, 477, 635, 264, 1015, 255, 0, 448, 959, 0, 321, 0, 761, 696, 705, 598, 1004, 662, 890, 911, 280, 452, 930, 0, 747, 0, 872, 786, 134, 0, 772, 173, 0, 0, 743, 527, 546, 899, 911, 628, 733, 272, 717, 1006, 940, 647, 861, 640, 465, 533, 0, 884, 97, 0, 886, 486, 450, 978, 282, 887, 665, 208, 858, 623, 968, 677, 240, 286, 189, 836, 228, 227, 959, 215, 765, 526, 928, 546, 0, 186, 621, 913, 331, 265, 525, 569, 595, 262, 579, 503, 968, 724, 0, 756, 518, 200, 794, 0, 855, 216, 507, 0, 0, 343, 0, 674, 0, 558, 791, 709, 589, 695, 398, 224, 709, 898, 0, 900, 345, 0, 782, 648, 912, 857, 720, 0, 561, 394, 894, 908, 210, 680, 0, 565, 761, 431, 234, 573, 417, 678, 0, 0, 901, 530, 265, 848, 300, 0, 462, 451, 404, 229, 0, 0, 634, 585, 0, 0, 699, 0, 1018, 969, 0, 0, 889, 1007, 659, 0, 655, 584, 229, 235, 910, 0, 379, 441, 0, 860, 854, 866, 493, 647, 952, 567, 869, 0, 512, 0, 538, 945, 601, 412, 0, 655, 701, 596, 0, 233, 234, 952, 925, 0, 757, 203, 970, 916, 247, 806, 215, 216, 564, 352, 569, 471, 222, 405, 690, 960, 863, 875, 543, 494, 769, 837, 742, 792, 769, 226, 436, 843, 653, 227, 609, 907, 0, 317, 951, 906, 0, 0, 700, 760, 0, 231, 0, 389, 751, 773, 218, 235, 0, 915, 462, 420, 740, 501, 685, 415, 536, 928, 801, 757, 750, 657, 0, 859, 224, 0, 802, 602, 728, 521, 536, 745, 308, 572, 380, 0, 715, 415, 0, 976, 1014, 0, 221, 481, 985, 765, 548, 777, 402, 791, 863, 845, 0, 212, 185, 423, 749, 0, 0, 481, 971, 0, 897, 851, 226, 1019, 350, 0, 187, 559, 228, 547, 467, 338, 394, 867, 642, 369, 227, 213, 470, 960, 861, 249, 806, 991, 148, 882, 609, 626, 0, 0, 941, 162, 768, 0, 690, 643, 234, 303, 676, 681, 382, 644, 911, 829, 0, 745, 844, 0, 930, 994, 785, 231, 939, 798, 521, 716, 728, 615, 1002, 732, 816, 795, 300, 635, 532, 1008, 840, 0, 885, 932, 378, 871, 0, 358, 768, 892, 500, 0, 796, 956, 129, 815, 207, 280, 0, 706, 838, 833, 803, 0, 1007, 201, 0, 0, 692, 0, 452, 0, 140, 0, 722, 320, 427, 705, 605, 534, 0, 232, 0, 372, 0, 903, 554, 978, 781, 791, 0, 0, 0, 0, 0, 840, 0, 0, 701, 430, 0, 201, 0, 0, 357, 843, 0, 476, 589, 0, 464, 983, 662, 0, 0, 0, 0, 725, 0, 0, 315, 752, 0, 264, 0, 0, 0, 798, 429, 0, 889, 323, 880, 319, 0, 832, 699, 846, 0, 0, 0, 827, 581, 0, 0, 0, 319, 0, 765, 961, 633, 754, 0, 0, 0, 686, 0, 1000, 0, 789, 689, 676, 0, 0, 424, 0, 955, 0, 963, 0, 701, 529, 729, 0, 850, 0, 405, 817, 204, 618, 0, 565, 0, 0, 0, 898, 0, 1010, 0, 395, 0, 967, 991, 940, 228, 0, 870, 248, 0, 707, 0, 661, 0, 730, 459, 0, 409, 997, 0, 961, 512, 0, 465, 799, 557, 0, 787, 471, 254, 807, 0, 748, 448, 534, 1013, 0, 0, 284, 0, 0, 540, 0, 0, 0, 0, 975, 700, 0, 0, 833, 0, 0, 884, 299, 874, 0, 0, 0, 0, 0, 0, 0, 0, 529, 1017, 0, 0, 663, 0, 810, 0, 0, 0, 0, 0, 241, 1014, 0, 656, 0, 592, 252, 772, 0, 0, 505, 0, 994, 0, 482, 552, 849, 341, 676, 795, 874, 589, 508, 0, 0, 0, 0, 231, 1013, 595, 553, 0, 467, 281, 332, 0, 0, 776, 0, 235, 866, 0, 919, 0, 0, 946, 0, 784, 0, 0, 734, 622, 284, 364, 997, 0, 0, 0, 345, 0, 0, 210, 0, 0, 821, 0, 0, 0, 545, 0, 0, 1005, 912, 395, 1021, 883, 614, 603, 207, 0, 531, 959, 0, 586, 822, 941, 900, 977, 0, 414, 842, 0, 977, 0, 0, 0, 0, 792, 316, 323, 817, 834, 985, 769, 488, 0, 892, 995, 674, 0, 0, 296, 751, 922, 637, 557, 398, 0, 0, 931, 0, 986, 281, 0, 0, 233, 948, 460, 594, 0, 496, 227, 861, 0, 0, 0, 481, 506, 0, 0, 0, 843, 0, 957, 954, 739, 696, 668, 0, 0, 623, 0, 0, 218, 0, 195, 1008, 0, 0, 517, 941, 0, 587, 0, 1021, 974, 782, 0, 580, 0, 0, 797, 555, 0, 0, 869, 989, 0, 695, 998, 0, 760, 660, 967, 746, 628, 0, 790, 965, 924, 0, 495, 0, 270, 0, 0, 108, 0, 0, 1001, 406, 868, 0, 729, 0, 923, 808, 234, 457, 425, 489, 478, 469, 0, 0, 0, 815, 846, 313, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 916, 981, 0, 381, 939, 305, 0, 0, 1016, 0, 945, 891, 317, 0, 587, 0, 722, 0, 0, 525, 0, 543, 0, 551, 816, 0, 0, 582, 756, 1006, 0, 0, 1023, 488, 0, 0, 426, 0, 842, 0, 1023, 0, 0, 410, 0, 0, 0, 0, 883, 0, 0, 335, 905, 0, 619, 934, 936, 0, 0, 879, 0, 0, 273, 632, 0, 246, 0, 341, 924, 1002, 0, 1011, 0, 996, 0, 0, 0, 914, 0, 522, 800, 0, 864, 178, 839, 904, 0, 456, 406, 789, 727, 0, 0, 775, 935, 812, 796, 339, 691, 0, 0, 949, 0, 0, 648, 0, 0, 0, 767, 827, 516, 694, 0, 0, 702, 929, 0, 0, 0, 285, 0, 0, 0, 461, 537, 0, 915, 986, 948, 0, 976, 993, 0, 1008, 673, 323, 0, 0, 0, 0, 690, 0, 0, 0, 627, 0, 0, 882, 813, 0, 866, 0, 405, 487, 582, 492, 188, 904, 0, 0, 0, 992, 0, 798, 219, 350, 666, 0, 975, 438, 0, 0, 0, 0, 0, 0, 986, 0, 936, 0, 877, 0, 0, 0, 1016, 812, 652, 0, 0, 0, 0, 220, 814, 0, 927, 724, 864, 912, 391, 839, 0, 424, 0, 542, 0, 509, 0, 0, 501, 0, 993, 0, 959, 890, 0, 0, 0, 0, 578, 485, 0, 0, 892, 0, 0, 0, 257, 0, 0, 906, 0, 0, 0, 0, 778, 0, 0, 0, 938, 957, 986, 0, 0, 0, 0, 864, 951, 634, 0, 990, 167, 0, 972, 499, 748, 0, 958, 0, 0, 303, 868, 1011, 0, 860, 338, 704, 230, 0, 421, 332, 0, 374, 882, 990, 0, 805, 0, 439, 688, 0, 607, 469, 974, 937, 723, 763, 1008, 825, 987, 845, 0, 1009, 592, 534, 0, 0, 0, 229, 537, 0, 0, 348, 0, 1024, 0, 793, 875, 731, 663, 741, 711, 476, 980, 953, 0, 0, 447, 0, 0, 888, 926, 1019, 733, 0, 792, 0, 0, 0, 344, 744, 0, 867, 824, 513, 468, 721, 0, 0, 0, 0, 0, 1024, 573, 0, 435, 0, 0, 475, 753, 552, 0, 0, 0, 1014, 0, 0, 1010, 0, 0, 0, 0, 0, 0, 0, 765, 0, 805, 881, 818, 400, 0, 0, 624, 640, 0, 0, 0, 1018, 964, 906, 0, 744, 0, 0, 841, 0, 552, 952, 970, 703, 0, 710, 0, 657, 0, 702, 593, 0, 0, 0, 922, 906, 0, 0, 263, 0, 415, 638, 801, 612, 0, 774, 268, 615, 729, 0, 0, 984, 693, 620, 0, 0, 802, 909, 839, 621, 712, 868, 730, 682, 0, 0, 0, 356, 1001, 0, 0, 0, 767, 0, 0, 992, 0, 625, 910, 785, 291, 256, 0, 0, 539, 662, 763, 600, 723, 603, 727, 0, 0, 0, 0, 688, 0, 881, 301, 0, 0, 687, 0, 925, 554, 0, 608, 678, 699, 0, 0, 619, 0, 0, 0, 0, 504, 873, 0, 0, 0, 0, 535, 0, 0, 0, 0, 226, 188, 974, 0, 0, 0, 651, 0, 0, 993, 0, 231, 0, 890, 0, 197, 668, 260, 678, 768, 598, 656, 0, 939, 1011, 303, 361, 602, 0, 0, 494, 0, 0, 278, 0, 664, 923, 0, 0, 0, 653, 1010, 0, 962, 783, 279, 0, 717, 0, 628, 0, 0, 0, 0, 0, 0, 0, 0, 0, 856, 1015, 989, 0, 0, 0, 0, 703, 0, 750, 0, 825, 681, 734, 1000, 0, 891, 0, 0, 1004, 808, 927, 0, 579, 0, 0, 995, 0, 877, 0, 174, 0, 208, 660, 0, 0, 0, 0, 888, 0, 0, 297, 0, 0, 762, 0, 913, 0, 265, 0, 0, 409, 949, 979, 788, 598, 0, 402, 0, 926, 0, 0, 733, 0, 949, 873, 0, 0, 0, 0, 0, 0, 0, 0, 838, 719, 0, 229, 0, 0, 0, 0, 0, 560, 626, 0, 913, 0, 789, 0, 0, 0, 0, 891, 0, 0, 656, 994, 0, 269, 0, 0, 0, 0, 484, 0, 0, 340, 0, 548, 0, 0, 0, 0, 0, 0, 0, 1009, 759, 0, 0, 0, 323, 0, 0, 0, 892, 0, 0, 0, 0, 783, 0, 0, 0, 0, 851, 705, 0, 0, 887, 0, 0, 0, 1005, 0, 813, 901, 0, 0, 0, 0, 572, 0, 389, 0, 0, 801, 0, 0, 0, 983, 0, 0, 0, 479, 0, 0, 0, 0, 250, 0, 980, 914, 0, 0, 0, 855, 0, 0, 775, 0, 411, 0, 0, 0, 654, 0, 534, 0, 0, 0, 0, 473, 0, 914, 0, 893, 470, 541, 0, 0, 0, 588, 0, 0, 0, 0, 0, 0, 0, 0, 956, 0, 0, 880, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 813, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 285, 0, 0, 881, 0, 658, 728, 0, 0, 0, 838, 0, 0, 0, 0, 719, 1019, 530, 964, 859, 970, 0, 936, 0, 0, 0, 0, 430, 0, 954, 621, 0, 872, 317, 517, 0, 0, 0, 0, 376, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 866, 944, 422, 938, 0, 0, 0, 0, 547, 0, 0, 499, 0, 0, 885, 0, 0, 0, 0, 0, 0, 0, 0, 667, 0, 903, 645, 0, 586, 0, 0, 0, 0, 689, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 513, 837, 925, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 953, 0, 932, 0, 0, 612, 0, 0, 0, 0, 0, 0, 0, 0, 386, 0, 0, 764, 0, 619, 274, 870, 0, 0, 0, 758, 0, 0, 0, 0, 978, 0, 0, 0, 0, 851, 984, 0, 0, 655, 0, 0, 416, 0, 461, 0, 0, 0, 585, 0, 0, 0, 0, 0, 0, 0, 0, 1020, 0, 0, 0, 804, 0, 0, 0, 0, 0, 0, 0, 0, 946, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 437, 0, 0, 110, 0, 0, 0, 566, 0, 0, 0, 0, 944, 916, 251, 646, 0, 888, 0, 721, 0, 0, 0, 0, 0, 865, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 518, 0, 622, 0, 0, 0, 0, 0, 0, 961, 0, 688, 0, 0, 0, 0, 0, 0, 780, 0, 741, 0, 0, 0, 670, 803, 1018, 0, 0, 0, 0, 0, 0, 771, 0, 966, 0, 0, 0, 0, 926, 0, 0, 0, 0, 0, 0, 0, 1006, 0, 0, 820, 0, 0, 0, 0, 0, 0, 0, 500, 973, 0, 480, 0, 670, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 747, 0, 0, 0, 341, 0, 0, 0, 514, 853, 1021, 0, 0, 0, 831, 0, 0, 917, 759, 862, 0, 0, 0, 0, 0, 0, 0, 0, 0, 810, 0, 0, 0, 0, 0, 805, 0, 0, 0, 0, 0, 0, 0, 0, 0, 592, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 441, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 936, 0, 0, 923, 0, 1023, 820, 698, 740, 196, 0, 0, 0, 0, 0, 0, 0, 636, 659, 957, 0, 0, 597, 0, 0, 0, 0, 0, 0, 0, 0, 982, 0, 0, 0, 0, 0, 0, 0, 672, 0, 0, 0, 0, 775, 0, 0, 0, 0, 943, 0, 500, 0, 0, 981, 0, 554, 0, 855, 0, 0, 722, 0, 0, 0, 0, 0, 0, 0, 0, 0, 756, 0, 0, 0, 0, 0, 0, 0, 422, 0, 0, 917, 0, 0, 0, 0, 0, 0, 0, 0, 960, 0, 0, 0, 0, 0, 0, 0, 969, 1006, 0, 0, 202, 0, 0, 1016, 0, 0, 0, 0, 0, 462, 0, 0, 0, 933, 348, 861, 362, 0, 909, 528, 0, 551, 0, 0, 0, 0, 0, 0, 741, 0, 982, 873, 0, 0, 0, 953, 0, 0, 0, 876, 0, 0, 646, 951, 0, 0, 0, 269, 564, 0, 0, 774, 0, 0, 0, 910, 980, 0, 0, 0, 0, 862, 0, 0, 0, 0, 586, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 899, 0, 0, 0, 0, 813, 679, 0, 0, 0, 0, 0, 0, 0, 894, 0, 1017, 0, 0, 0, 965, 598, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 971, 857, 609, 0, 0, 889, 0, 0, 0, 0, 0, 985, 962, 0, 933, 0, 0, 0, 0, 890, 0, 1011, 0, 0, 914, 0, 0, 0, 970, 726, 0, 0, 0, 0, 927, 0, 0, 539, 0, 771, 772, 0, 0, 0, 969, 0, 0, 0, 0, 0, 0, 0, 875, 0, 0, 987, 0, 942, 823, 781, 0, 0, 0, 0, 0, 0, 399, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 937, 918, 0, 0, 0, 790, 0, 0, 871, 0, 828, 0, 0, 0, 0, 1004, 0, 0, 367, 0, 0, 0, 0, 0, 0, 0, 0, 701, 725, 0, 0, 915, 0, 0, 0, 0, 965, 0, 0, 0, 0, 0, 850, 0, 0, 0, 0, 390, 712, 0, 0, 0, 0, 791, 0, 0, 0, 0, 770, 0, 0, 0, 633, 0, 584, 0, 0, 0, 831, 0, 0, 0, 921, 946, 754, 0, 0, 533, 0, 0, 919, 0, 0, 0, 0, 0, 0, 675, 0, 0, 0, 0, 693, 0, 926, 0, 999, 0, 0, 0, 0, 0, 0, 0, 0, 0, 869, 0, 0, 0, 0, 0, 0, 973, 0, 0, 0, 0, 878, 1018, 1020, 0, 0, 0, 0, 0, 855, 0, 0, 987, 0, 0, 0, 0, 0, 0, 222, 0, 430, 853, 0, 0, 0, 0, 1007, 0, 0, 351, 0, 0, 0, 0, 0, 0, 717, 0, 0, 1024, 0, 0, 0, 761, 0, 526, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 809, 0, 0, 0, 0, 0, 797, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 827, 0, 0, 297, 0, 0, 0, 0, 0, 0, 0, 472, 0, 923, 0, 0, 0, 0, 0, 0, 0, 0, 828, 0, 0, 0, 401, 0, 0, 0, 1017, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 447, 0, 0, 1002, 0, 0, 0, 0, 0, 0, 0, 948, 0, 0, 0, 0, 929, 0, 0, 0, 0, 0, 0, 0, 0, 0, 971, 0, 0, 0, 0, 0, 0, 0, 826, 0, 0, 0, 0, 0, 0, 0, 0, 0, 854, 935, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 941, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 933, 0, 0, 0, 0, 0, 905, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 895, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 795, 0, 0, 746, 525, 0, 0, 0, 0, 987, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 943, 0, 605, 0, 0, 0, 0, 0, 0, 0, 0, 764, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 727, 0, 0, 720, 0, 707, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 653, 893, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 834, 0, 0, 0, 0, 0, 0, 0, 0, 560, 0, 0, 0, 0, 710, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 930, 0, 575, 0, 0, 0, 950, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 940, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 937, 0, 0, 763, 0, 0, 0, 673, 0, 0, 0, 0, 0, 0, 862, 0, 0, 0, 0, 862, 0, 0, 0, 0, 0, 1005, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 537, 0, 626, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 819, 0, 0, 0, 895, 0, 0, 0, 0, 0, 0, 0, 0, 915, 0, 0, 0, 0, 0, 0, 985, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 796, 0, 0, 0, 0, 736, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 366, 0, 0, 0, 575, 0, 0, 0, 0, 0, 0, 0, 0, 996, 830, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 918, 199, 0, 0, 0, 0, 0, 0, 0, 776, 824, 0, 0, 0, 1022, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 877, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 816, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 215, 0, 0, 0, 0, 0, 0, 0, 0, 762, 0, 0, 0, 0, 826, 885, 546, 0, 961, 931, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 351, 0, 0, 0, 784, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 826, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 933, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 972, 777, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 847, 0, 0, 0, 0, 0, 0, 0, 516, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1022, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 582, 969, 0, 0, 0, 0, 884, 0, 0, 0, 0, 0, 0, 0, 0, 856, 0, 1003, 0, 0, 0, 0, 0, 0, 0, 960, 997, 0, 0, 0, 700, 0, 0, 0, 0, 0, 0, 0, 0, 0, 838, 0, 0, 0, 0, 739, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 766, 0, 491, 0, 0, 0, 0, 0, 0, 0, 0, 450, 0, 0, 0, 0, 0, 0, 783, 0, 0, 0, 0, 0, 0, 931, 0, 758, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 924, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 955, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 697, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 768, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 769, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 832, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 877, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 843, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 908, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 988, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 739, 0, 0, 0, 793, 0, 0, 0, 0, 0, 0, 0, 0, 0, 920, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 593, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 373, 0, 0, 0, 0, 0, 0, 0, 0, 852, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 993, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 850, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 965, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 876, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 943, 0, 547, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 642, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 381, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 799, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 922, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; const uint16_t H_1024_2048_4f_H_cols[] = { 125, 11, 216, 94, 44, 58, 2, 50, 45, 131, 81, 72, 19, 9, 29, 1, 51, 56, 311, 32, 205, 46, 6, 11, 53, 26, 200, 96, 33, 19, 227, 62, 7, 83, 124, 33, 13, 17, 39, 4, 169, 33, 10, 135, 129, 57, 2, 49, 133, 16, 51, 28, 8, 47, 22, 76, 83, 66, 45, 22, 80, 47, 54, 24, 54, 149, 97, 122, 62, 99, 30, 22, 222, 12, 100, 115, 28, 89, 102, 63, 170, 183, 27, 31, 148, 190, 32, 85, 12, 7, 74, 37, 30, 41, 55, 43, 54, 139, 44, 52, 29, 141, 22, 4, 48, 25, 14, 187, 115, 32, 2, 26, 112, 20, 15, 103, 96, 221, 133, 4, 68, 102, 114, 56, 30, 121, 82, 4, 135, 147, 81, 35, 42, 118, 31, 48, 78, 3, 128, 71, 2, 93, 58, 284, 65, 190, 42, 220, 63, 125, 140, 138, 22, 36, 557, 48, 21, 9, 125, 268, 62, 26, 25, 129, 15, 24, 3, 77, 99, 43, 127, 70, 48, 32, 89, 167, 52, 135, 2, 56, 13, 7, 41, 1, 127, 37, 21, 142, 192, 18, 106, 19, 10, 14, 10, 27, 29, 63, 9, 40, 22, 52, 40, 29, 28, 14, 29, 42, 113, 6, 18, 5, 25, 2, 8, 88, 73, 84, 3, 53, 8, 20, 23, 20, 4, 6, 8, 95, 22, 9, 88, 2, 39, 16, 44, 248, 254, 418, 268, 201, 13, 461, 309, 18, 15, 6, 84, 5, 525, 98, 36, 130, 64, 139, 23, 79, 148, 84, 91, 189, 11, 8, 821, 44, 515, 18, 12, 492, 44, 126, 145, 47, 137, 317, 95, 127, 347, 338, 46, 551, 219, 162, 155, 148, 34, 274, 36, 387, 478, 215, 126, 43, 84, 76, 24, 235, 44, 82, 164, 517, 207, 181, 652, 20, 422, 291, 104, 310, 37, 163, 256, 511, 291, 183, 41, 119, 153, 227, 54, 47, 79, 276, 52, 4, 217, 77, 120, 175, 146, 303, 20, 90, 112, 531, 180, 39, 105, 144, 7, 52, 203, 28, 72, 7, 69, 296, 173, 340, 26, 561, 159, 155, 3, 136, 17, 443, 25, 105, 207, 390, 329, 165, 137, 195, 570, 345, 180, 246, 542, 45, 381, 4, 175, 232, 254, 225, 21, 172, 352, 309, 420, 802, 234, 354, 211, 311, 660, 50, 99, 331, 301, 229, 111, 551, 110, 121, 538, 1, 98, 34, 67, 2, 200, 137, 97, 169, 275, 397, 127, 204, 127, 103, 140, 275, 691, 245, 11, 31, 253, 125, 59, 238, 56, 85, 121, 418, 397, 355, 49, 20, 119, 331, 266, 193, 273, 448, 94, 586, 443, 111, 129, 390, 27, 62, 124, 24, 99, 143, 269, 78, 508, 161, 442, 156, 75, 403, 189, 100, 107, 191, 341, 132, 294, 31, 133, 265, 53, 282, 36, 84, 138, 52, 9, 73, 160, 28, 228, 171, 110, 482, 322, 200, 157, 49, 159, 162, 224, 290, 190, 65, 81, 88, 295, 156, 74, 316, 94, 82, 108, 479, 93, 167, 230, 668, 24, 64, 191, 208, 35, 129, 307, 131, 19, 65, 279, 178, 86, 420, 246, 768, 475, 184, 43, 23, 220, 2, 610, 383, 92, 203, 266, 142, 123, 133, 47, 136, 152, 548, 433, 151, 141, 499, 46, 90, 27, 651, 244, 54, 319, 319, 415, 201, 74, 7, 124, 57, 135, 403, 300, 28, 307, 165, 14, 21, 102, 360, 38, 298, 410, 371, 282, 97, 39, 335, 116, 121, 178, 344, 464, 159, 63, 300, 146, 281, 90, 59, 348, 5, 29, 662, 21, 111, 159, 295, 5, 462, 336, 630, 488, 389, 241, 93, 176, 3, 238, 338, 697, 361, 786, 199, 34, 277, 80, 262, 449, 71, 197, 100, 316, 11, 216, 129, 206, 170, 69, 14, 90, 371, 274, 59, 53, 66, 71, 226, 617, 55, 95, 276, 80, 376, 42, 352, 295, 605, 23, 394, 221, 401, 73, 181, 182, 320, 284, 61, 336, 41, 184, 191, 548, 286, 9, 33, 176, 342, 270, 128, 35, 333, 79, 444, 344, 202, 386, 294, 516, 82, 38, 399, 476, 16, 637, 150, 411, 171, 30, 10, 72, 431, 60, 523, 515, 136, 187, 286, 364, 332, 69, 36, 57, 157, 19, 531, 324, 609, 82, 61, 120, 89, 525, 316, 270, 372, 101, 261, 458, 129, 258, 343, 20, 181, 398, 132, 272, 184, 38, 103, 259, 192, 93, 119, 156, 666, 7, 50, 88, 187, 8, 1, 331, 79, 440, 234, 88, 428, 221, 70, 168, 142, 5, 747, 298, 42, 432, 72, 324, 445, 152, 2, 63, 6, 627, 619, 382, 247, 69, 376, 442, 247, 264, 188, 453, 193, 249, 306, 125, 177, 50, 315, 114, 248, 9, 170, 76, 233, 522, 45, 137, 229, 33, 251, 10, 283, 18, 123, 205, 479, 28, 48, 134, 6, 102, 77, 319, 271, 243, 343, 30, 17, 22, 180, 232, 12, 91, 609, 198, 150, 98, 334, 12, 380, 94, 175, 365, 109, 190, 133, 41, 63, 162, 179, 268, 45, 160, 141, 55, 146, 87, 19, 59, 16, 451, 64, 26, 158, 535, 58, 35, 188, 202, 95, 81, 68, 498, 17, 122, 155, 419, 13, 107, 169, 318, 393, 243, 499, 106, 226, 101, 387, 242, 117, 330, 218, 10, 165, 163, 310, 341, 374, 40, 53, 189, 564, 261, 15, 173, 388, 85, 111, 51, 630, 38, 71, 142, 258, 203, 34, 222, 106, 363, 272, 92, 304, 6, 458, 192, 646, 114, 86, 43, 560, 634, 258, 31, 118, 453, 252, 116, 147, 228, 113, 68, 299, 54, 22, 286, 4, 611, 224, 115, 197, 305, 168, 186, 255, 144, 208, 162, 104, 256, 87, 174, 70, 236, 237, 321, 231, 306, 17, 9, 109, 149, 13, 291, 30, 52, 157, 185, 309, 267, 655, 70, 235, 89, 94, 374, 3, 112, 359, 663, 206, 125, 40, 399, 325, 123, 547, 230, 8, 126, 117, 418, 154, 32, 166, 288, 307, 225, 479, 78, 435, 113, 303, 548, 42, 293, 171, 55, 168, 132, 78, 214, 102, 107, 353, 89, 446, 481, 342, 62, 108, 488, 40, 1, 187, 83, 425, 71, 446, 202, 161, 260, 75, 449, 621, 150, 37, 325, 178, 126, 109, 7, 159, 76, 225, 157, 97, 46, 16, 33, 247, 130, 211, 393, 54, 273, 77, 41, 67, 164, 31, 208, 207, 72, 49, 254, 82, 196, 106, 151, 59, 76, 22, 58, 97, 186, 51, 25, 391, 131, 102, 19, 104, 183, 230, 200, 74, 16, 382, 28, 228, 108, 99, 92, 100, 267, 294, 91, 27, 58, 315, 133, 143, 235, 201, 110, 89, 244, 15, 259, 130, 92, 172, 144, 130, 194, 205, 49, 87, 188, 277, 44, 157, 51, 74, 93, 41, 92, 73, 60, 139, 136, 236, 186, 63, 141, 145, 25, 68, 202, 44, 131, 242, 213, 181, 60, 57, 219, 35, 250, 148, 128, 226, 138, 86, 172, 239, 122, 113, 82, 139, 110, 10, 150, 212, 101, 66, 200, 228, 200, 52, 145, 138, 130, 87, 64, 140, 69, 357, 98, 236, 46, 355, 80, 138, 216, 196, 55, 48, 602, 67, 124, 249, 154, 321, 64, 52, 81, 157, 19, 68, 73, 201, 143, 117, 153, 72, 57, 37, 108, 254, 116, 149, 15, 69, 108, 54, 58, 189, 135, 134, 49, 182, 261, 65, 128, 25, 198, 98, 29, 52, 38, 102, 18, 171, 66, 75, 177, 88, 33, 125, 104, 49, 230, 10, 56, 96, 34, 38, 12, 96, 120, 134, 20, 67, 31, 66, 28, 62, 38, 44, 42, 115, 104, 36, 92, 14, 50, 27, 53, 385, 439, 477, 505, 430, 16, 634, 670, 58, 223, 42, 122, 118, 716, 115, 393, 192, 223, 327, 416, 524, 556, 622, 97, 303, 166, 26, 884, 474, 698, 116, 231, 782, 714, 183, 287, 431, 479, 492, 240, 484, 559, 357, 782, 591, 308, 241, 277, 238, 186, 682, 86, 510, 606, 275, 849, 49, 93, 318, 779, 297, 279, 661, 423, 684, 800, 466, 676, 781, 769, 464, 390, 496, 147, 435, 285, 540, 404, 314, 394, 208, 219, 290, 67, 583, 210, 375, 67, 73, 454, 212, 244, 299, 369, 377, 564, 220, 255, 653, 207, 300, 257, 681, 239, 735, 484, 217, 293, 179, 81, 434, 288, 409, 32, 582, 714, 242, 334, 179, 363, 457, 364, 229, 692, 533, 350, 315, 277, 239, 590, 351, 716, 868, 550, 60, 421, 117, 278, 246, 774, 883, 85, 208, 447, 342, 667, 953, 542, 472, 455, 383, 960, 123, 134, 621, 343, 464, 344, 594, 124, 198, 571, 242, 304, 57, 194, 583, 280, 155, 480, 386, 330, 523, 364, 250, 349, 574, 151, 359, 823, 273, 323, 48, 756, 427, 153, 464, 743, 477, 395, 451, 534, 489, 218, 213, 507, 351, 400, 598, 292, 520, 241, 606, 694, 369, 256, 405, 255, 578, 154, 412, 120, 172, 289, 671, 756, 426, 527, 163, 316, 504, 394, 290, 125, 313, 540, 676, 349, 587, 222, 562, 218, 374, 398, 143, 222, 113, 138, 157, 434, 628, 616, 389, 172, 506, 877, 243, 446, 741, 636, 212, 554, 356, 396, 116, 633, 210, 795, 729, 377, 543, 274, 258, 247, 539, 557, 373, 353, 861, 196, 323, 413, 599, 136, 381, 338, 263, 154, 504, 477, 527, 220, 521, 260, 928, 532, 496, 53, 104, 436, 240, 624, 561, 174, 331, 483, 562, 617, 144, 612, 195, 420, 689, 713, 224, 144, 509, 214, 149, 100, 683, 902, 96, 368, 356, 440, 766, 216, 63, 209, 847, 145, 424, 487, 60, 314, 241, 61, 715, 566, 386, 105, 476, 425, 791, 326, 324, 579, 417, 341, 387, 263, 368, 703, 354, 179, 444, 245, 407, 214, 264, 431, 148, 61, 757, 245, 191, 447, 314, 140, 600, 478, 766, 494, 523, 461, 433, 263, 158, 491, 593, 754, 411, 847, 289, 296, 302, 185, 276, 580, 374, 326, 532, 471, 617, 353, 237, 243, 659, 777, 29, 109, 654, 907, 228, 57, 480, 270, 664, 711, 367, 294, 466, 231, 503, 347, 366, 629, 740, 262, 575, 660, 521, 729, 603, 734, 533, 564, 131, 783, 189, 364, 356, 582, 368, 122, 37, 178, 452, 411, 177, 119, 579, 557, 484, 502, 261, 423, 414, 754, 204, 296, 754, 751, 327, 958, 488, 799, 563, 529, 76, 389, 695, 81, 557, 657, 652, 665, 344, 602, 628, 99, 39, 296, 658, 91, 547, 475, 682, 183, 75, 153, 408, 724, 380, 592, 731, 674, 419, 555, 503, 657, 489, 201, 262, 614, 433, 701, 612, 77, 549, 507, 644, 389, 124, 724, 834, 655, 193, 147, 310, 105, 46, 500, 572, 512, 342, 167, 672, 523, 219, 496, 161, 529, 762, 432, 147, 489, 233, 399, 498, 273, 95, 514, 367, 749, 676, 463, 283, 689, 499, 525, 929, 289, 253, 474, 645, 592, 372, 402, 223, 585, 651, 170, 337, 293, 352, 939, 430, 862, 640, 355, 234, 80, 373, 723, 501, 504, 378, 216, 513, 357, 412, 768, 260, 112, 309, 445, 358, 531, 597, 140, 35, 211, 446, 407, 407, 174, 833, 402, 441, 188, 405, 185, 471, 165, 249, 842, 582, 401, 599, 62, 346, 425, 195, 510, 56, 693, 287, 177, 152, 285, 196, 501, 26, 712, 158, 327, 334, 621, 272, 312, 423, 533, 349, 217, 483, 505, 143, 622, 668, 465, 428, 205, 428, 661, 398, 280, 584, 221, 236, 486, 677, 361, 166, 740, 469, 39, 206, 723, 706, 597, 553, 418, 160, 784, 689, 320, 163, 250, 459, 637, 396, 774, 633, 428, 292, 285, 743, 444, 360, 473, 257, 545, 611, 346, 449, 261, 502, 328, 796, 194, 325, 199, 722, 653, 579, 366, 140, 543, 392, 513, 347, 307, 194, 83, 631, 391, 158, 304, 460, 818, 380, 439, 339, 686, 230, 680, 426, 306, 473, 379, 181, 421, 114, 271, 199, 503, 265, 427, 260, 539, 110, 448, 325, 663, 797, 297, 65, 87, 173, 329, 467, 623, 832, 130, 534, 234, 204, 765, 419, 227, 542, 776, 805, 232, 224, 457, 351, 156, 556, 273, 327, 544, 182, 618, 252, 106, 333, 460, 544, 705, 495, 265, 666, 509, 578, 627, 198, 306, 490, 128, 249, 210, 712, 385, 146, 568, 631, 229, 468, 780, 550, 594, 693, 678, 326, 145, 248, 132, 467, 175, 775, 437, 279, 350, 176, 457, 720, 180, 110, 337, 365, 147, 137, 13, 165, 140, 331, 164, 118, 85, 41, 131, 278, 168, 225, 516, 287, 285, 260, 56, 99, 205, 101, 300, 318, 107, 76, 289, 99, 233, 133, 171, 87, 300, 106, 141, 114, 238, 91, 67, 427, 186, 263, 105, 199, 287, 311, 216, 79, 124, 404, 38, 274, 209, 148, 139, 218, 284, 313, 162, 54, 83, 403, 200, 233, 335, 222, 143, 112, 254, 91, 341, 132, 115, 180, 206, 368, 262, 225, 70, 92, 323, 287, 195, 168, 65, 250, 156, 208, 191, 78, 70, 167, 203, 288, 258, 251, 171, 205, 145, 191, 223, 78, 174, 245, 239, 369, 125, 63, 264, 131, 397, 222, 193, 262, 151, 206, 185, 256, 191, 182, 131, 161, 238, 17, 202, 275, 187, 74, 312, 231, 206, 106, 244, 335, 185, 97, 126, 144, 113, 387, 148, 279, 117, 500, 86, 267, 305, 209, 84, 85, 715, 215, 133, 364, 283, 339, 112, 431, 137, 204, 40, 209, 152, 228, 282, 204, 174, 106, 76, 72, 152, 341, 119, 167, 177, 115, 122, 120, 151, 201, 432, 159, 91, 278, 286, 138, 271, 197, 215, 189, 85, 138, 101, 122, 100, 329, 120, 97, 240, 99, 41, 134, 135, 71, 238, 33, 80, 109, 86, 89, 21, 189, 179, 155, 51, 186, 143, 127, 31, 70, 118, 67, 60, 144, 110, 67, 169, 91, 77, 32, 71, 699, 449, 674, 551, 681, 186, 678, 773, 355, 485, 465, 518, 150, 775, 528, 759, 253, 576, 373, 620, 654, 643, 652, 196, 526, 182, 89, 924, 618, 759, 272, 348, 829, 879, 204, 361, 440, 822, 592, 414, 758, 654, 454, 889, 635, 778, 673, 727, 330, 536, 795, 203, 755, 783, 441, 863, 626, 763, 333, 830, 771, 566, 737, 498, 761, 881, 645, 935, 919, 903, 537, 416, 675, 167, 485, 366, 843, 771, 700, 445, 284, 429, 313, 381, 909, 625, 585, 285, 333, 733, 773, 399, 600, 541, 407, 697, 248, 450, 678, 468, 322, 672, 828, 509, 757, 500, 228, 718, 745, 244, 693, 315, 681, 257, 627, 748, 343, 456, 259, 713, 475, 431, 408, 952, 619, 604, 683, 489, 416, 722, 500, 794, 917, 839, 357, 790, 901, 462, 568, 830, 961, 101, 335, 636, 847, 857, 959, 703, 566, 466, 436, 964, 226, 289, 910, 540, 491, 356, 742, 259, 632, 752, 302, 778, 160, 662, 720, 315, 765, 569, 505, 660, 796, 535, 460, 612, 580, 691, 979, 872, 339, 753, 51, 760, 568, 370, 643, 853, 566, 559, 453, 831, 597, 501, 803, 750, 571, 465, 613, 299, 563, 379, 691, 837, 450, 552, 603, 290, 880, 174, 890, 370, 545, 357, 933, 764, 636, 658, 182, 547, 732, 578, 439, 321, 450, 563, 763, 444, 659, 627, 610, 929, 459, 487, 363, 430, 376, 233, 166, 680, 687, 623, 397, 417, 738, 900, 478, 617, 849, 933, 670, 570, 450, 578, 852, 781, 371, 939, 836, 602, 606, 425, 267, 670, 615, 625, 632, 704, 899, 480, 485, 521, 820, 622, 391, 626, 265, 284, 590, 624, 881, 345, 709, 415, 1005, 886, 600, 130, 405, 699, 329, 650, 630, 358, 519, 619, 971, 664, 710, 621, 873, 541, 777, 821, 560, 305, 620, 438, 305, 103, 692, 928, 236, 498, 481, 688, 803, 303, 620, 358, 948, 242, 722, 752, 311, 629, 819, 610, 825, 748, 434, 798, 669, 700, 802, 669, 890, 752, 430, 504, 402, 800, 635, 992, 426, 271, 571, 413, 784, 345, 269, 602, 441, 207, 848, 637, 541, 573, 410, 215, 631, 586, 930, 679, 530, 467, 884, 606, 223, 660, 623, 809, 862, 945, 370, 772, 539, 350, 405, 830, 432, 476, 574, 894, 836, 695, 362, 336, 696, 860, 422, 561, 959, 962, 454, 951, 516, 914, 716, 904, 581, 300, 598, 497, 662, 400, 573, 657, 852, 499, 607, 771, 575, 855, 719, 762, 603, 845, 176, 808, 588, 810, 575, 781, 975, 340, 632, 478, 945, 639, 414, 172, 906, 888, 665, 815, 334, 470, 720, 902, 544, 680, 890, 811, 746, 981, 542, 914, 605, 590, 117, 490, 865, 134, 831, 687, 832, 835, 528, 726, 640, 516, 519, 773, 855, 809, 648, 806, 901, 629, 543, 264, 452, 729, 788, 727, 843, 892, 493, 580, 567, 957, 668, 252, 509, 743, 625, 871, 706, 408, 555, 638, 885, 518, 595, 775, 906, 739, 236, 647, 484, 730, 361, 908, 717, 695, 408, 559, 746, 888, 370, 639, 366, 788, 877, 459, 437, 765, 518, 443, 635, 817, 322, 882, 419, 851, 938, 702, 314, 781, 942, 609, 951, 837, 360, 707, 711, 782, 718, 510, 329, 824, 658, 757, 438, 409, 421, 954, 718, 969, 642, 403, 705, 246, 402, 906, 741, 597, 711, 526, 732, 623, 580, 777, 497, 825, 839, 575, 638, 692, 822, 380, 392, 493, 525, 558, 512, 565, 987, 917, 643, 286, 455, 440, 529, 250, 270, 865, 640, 704, 681, 107, 848, 634, 514, 931, 311, 948, 302, 576, 684, 696, 950, 616, 677, 801, 276, 382, 493, 706, 403, 873, 591, 577, 905, 332, 524, 756, 417, 713, 925, 738, 677, 232, 680, 682, 515, 833, 613, 404, 567, 748, 814, 799, 318, 871, 641, 698, 280, 834, 918, 615, 967, 476, 469, 880, 919, 465, 666, 682, 560, 674, 736, 779, 803, 772, 639, 381, 759, 487, 508, 599, 463, 652, 732, 757, 475, 437, 549, 469, 818, 638, 393, 685, 787, 819, 614, 696, 494, 866, 417, 611, 572, 687, 514, 533, 667, 567, 375, 815, 737, 990, 691, 532, 637, 859, 299, 786, 472, 409, 564, 700, 239, 933, 358, 346, 589, 613, 391, 588, 367, 731, 312, 518, 345, 710, 804, 702, 215, 194, 986, 583, 550, 629, 935, 429, 796, 291, 410, 899, 455, 369, 679, 828, 812, 784, 669, 480, 699, 585, 788, 278, 463, 626, 723, 707, 595, 717, 734, 795, 593, 839, 563, 362, 690, 895, 858, 766, 251, 495, 495, 240, 365, 483, 714, 851, 486, 588, 878, 257, 658, 1007, 703, 708, 773, 805, 474, 149, 770, 619, 601, 553, 794, 738, 354, 456, 586, 569, 758, 317, 272, 504, 371, 190, 220, 68, 292, 297, 360, 236, 202, 102, 108, 178, 285, 207, 233, 538, 339, 333, 266, 114, 109, 213, 214, 332, 340, 298, 78, 429, 316, 266, 195, 247, 248, 429, 348, 244, 127, 283, 105, 128, 540, 311, 347, 151, 220, 317, 386, 226, 114, 270, 416, 246, 280, 378, 163, 143, 227, 299, 488, 197, 211, 164, 455, 223, 237, 422, 382, 154, 231, 286, 95, 357, 202, 244, 219, 208, 384, 422, 295, 192, 193, 353, 301, 262, 278, 92, 358, 196, 239, 333, 118, 156, 264, 384, 395, 299, 388, 278, 263, 240, 195, 225, 99, 192, 317, 368, 371, 206, 220, 360, 133, 505, 385, 378, 265, 164, 226, 362, 362, 213, 367, 139, 191, 252, 174, 215, 460, 209, 87, 422, 295, 262, 115, 327, 340, 231, 163, 160, 157, 144, 420, 348, 297, 450, 506, 204, 270, 401, 218, 94, 103, 761, 328, 189, 398, 293, 392, 118, 491, 247, 235, 82, 225, 219, 275, 291, 263, 183, 110, 178, 137, 212, 377, 187, 221, 420, 146, 338, 261, 237, 210, 471, 244, 202, 421, 318, 297, 291, 203, 257, 240, 201, 232, 175, 265, 161, 332, 141, 198, 283, 176, 95, 160, 142, 98, 275, 62, 215, 145, 100, 115, 80, 255, 192, 190, 110, 229, 178, 151, 64, 210, 160, 81, 140, 211, 289, 79, 213, 108, 98, 71, 93, 835, 458, 879, 708, 820, 772, 907, 993, 560, 690, 482, 821, 556, 940, 760, 912, 508, 816, 406, 739, 864, 679, 867, 779, 927, 724, 702, 1021, 624, 1017, 997, 558, 908, 892, 379, 438, 656, 826, 675, 747, 908, 717, 943, 955, 1002, 973, 961, 914, 359, 764, 827, 351, 804, 1004, 996, 929, 929, 956, 737, 972, 791, 1010, 954, 742, 981, 946, 895, 956, 923, 974, 979, 938, 889, 251, 1018, 735, 995, 1023, 849, 742, 392, 850, 780, 503, 1020, 802, 721, 552, 723, 860, 1006, 516, 639, 825, 880, 902, 686, 549, 896, 651, 906, 985, 930, 514, 790, 897, 269, 924, 832, 733, 1014, 855, 718, 395, 923, 1010, 826, 738, 545, 898, 850, 612, 992, 1004, 767, 936, 987, 615, 832, 807, 835, 881, 968, 934, 860, 838, 939, 667, 688, 893, 984, 875, 989, 789, 891, 1003, 1019, 979, 875, 719, 642, 990, 775, 860, 918, 615, 730, 607, 931, 271, 649, 912, 727, 850, 786, 838, 905, 442, 941, 830, 764, 852, 960, 1020, 661, 918, 806, 913, 1023, 894, 684, 904, 352, 975, 868, 685, 705, 912, 618, 844, 624, 1021, 861, 589, 1001, 949, 665, 922, 895, 761, 843, 601, 808, 973, 1009, 790, 739, 458, 980, 809, 976, 733, 622, 616, 1010, 885, 1015, 716, 323, 783, 822, 594, 481, 947, 825, 822, 867, 758, 972, 663, 712, 948, 751, 698, 937, 828, 882, 372, 836, 764, 728, 741, 448, 595, 856, 916, 952, 724, 1022, 983, 883, 787, 502, 709, 996, 1001, 572, 957, 940, 878, 874, 461, 593, 700, 995, 870, 844, 817, 941, 754, 585, 715, 944, 898, 971, 840, 801, 750, 740, 712, 952, 897, 1016, 558, 1008, 973, 988, 589, 466, 853, 690, 866, 686, 587, 758, 647, 983, 940, 1024, 905, 887, 715, 803, 867, 807, 776, 882, 835, 337, 254, 833, 1001, 903, 760, 528, 915, 944, 512, 887, 507, 993, 301, 941, 926, 332, 741, 962, 800, 991, 892, 792, 945, 787, 827, 869, 707, 1005, 759, 473, 605, 406, 1004, 1007, 1011, 932, 312, 910, 876, 927, 770, 733, 915, 871, 725, 882, 977, 709, 813, 544, 701, 810, 648, 1024, 896, 870, 805, 937, 872, 604, 1023, 1022, 845, 889, 1006, 454, 792, 826, 415, 965, 976, 517, 674, 815, 913, 1018, 842, 422, 678, 789, 920, 946, 851, 1012, 987, 840, 1014, 1005, 925, 769, 982, 816, 978, 824, 856, 790, 649, 933, 954, 960, 598, 709, 796, 736, 901, 965, 916, 655, 950, 866, 896, 931, 878, 780, 920, 1002, 924, 868, 725, 1011, 675, 583, 259, 926, 1012, 918, 1009, 603, 551, 877, 950, 957, 1006, 928, 967, 814, 991, 846, 994, 732, 871, 734, 884, 878, 269, 953, 966, 1013, 955, 591, 909, 744, 768, 571, 891, 940, 890, 812, 976, 986, 1022, 1004, 443, 985, 986, 808, 969, 911, 977, 719, 893, 974, 1017, 799, 473, 739, 752, 1019, 996, 865, 891, 813, 873, 975, 831, 845, 904, 978, 767, 982, 922, 492, 1011, 592, 955, 869, 726, 839, 649, 798, 964, 837, 862, 671, 913, 978, 861, 577, 914, 937, 1008, 708, 876, 666, 963, 856, 1024, 1013, 869, 626, 902, 999, 855, 993, 841, 921, 823, 824, 862, 828, 608, 581, 904, 998, 838, 859, 843, 735, 1017, 793, 994, 920, 997, 1023, 506, 868, 916, 840, 722, 721, 980, 997, 854, 972, 1001, 968, 875, 883, 1007, 963, 783, 941, 807, 989, 816, 998, 915, 602, 750, 998, 1000, 979, 644, 785, 909, 570, 288, 522, 988, 749, 980, 766, 526, 873, 962, 638, 947, 854, 1006, 337, 747, 991, 838, 1005, 841, 985, 879, 455, 844, 965, 908, 590, 949, 760, 647, 910, 920, 676, 1002, 793, 989, 969, 785, 755, 880, 792, 939, 728, 907, 662, 491, 794, 932, 844, 969, 986, 990, 693, 900, 461, 836, 955, 997, 981, 554, 508, 947, 944, 577, 916, 987, 669, 811, 1007, 789, 923, 985, 994, 384, 966, 538, 1014, 919, 730, 745, 740, 963, 574, 456, 574, 589, 852, 848, 744, 840, 861, 961, 737, 1015, 808, 894, 820, 646, 864, 943, 584, 935, 817, 946, 485, 886, 957, 996, 874, 778, 967, 1024, 988, 798, 555, 511, 595, 863, 655, 971, 659, 949, 841, 999, 800, 804, 936, 776, 545, 1021, 385, 851, 814, 730, 330, 963, 998, 656, 673, 687, 938, 685, 953, 1011, 795, 925, 816, 486, 705, 911, 819, 917, 823, 976, 912, 1018, 896, 857, 672, 1022, 729, 811, 697, 1012, 834, 901, 657, 992, 731, 971, 747, 942, 1016, 919, 968, 995, 513, 936, 462, 959, 983, 859, 977, 927, 988, 404, 664, 1009, 984, 947, 951, 934, 879, 214, 897, 970, 670, 761, 982, 922, 983, 506, 894, 778, 1020, 442, 276, 509, 392, 307, 375, 314, 457, 313, 394, 365, 205, 120, 128, 237, 297, 452, 236, 581, 345, 512, 292, 393, 158, 290, 258, 378, 515, 382, 213, 593, 368, 348, 210, 305, 259, 432, 362, 301, 169, 336, 118, 199, 658, 329, 369, 186, 338, 411, 462, 233, 187, 452, 428, 326, 288, 442, 327, 217, 318, 349, 490, 377, 426, 388, 490, 245, 335, 475, 433, 290, 292, 391, 219, 460, 237, 255, 225, 281, 450, 437, 416, 206, 243, 386, 313, 336, 292, 170, 375, 215, 258, 339, 173, 164, 322, 422, 463, 319, 441, 336, 316, 446, 229, 247, 112, 362, 382, 481, 382, 398, 237, 418, 261, 522, 436, 392, 345, 174, 366, 370, 384, 276, 369, 142, 251, 403, 216, 269, 537, 330, 102, 444, 311, 303, 203, 332, 387, 354, 203, 214, 352, 175, 427, 397, 388, 462, 617, 319, 304, 536, 374, 441, 153, 789, 336, 193, 484, 333, 479, 142, 682, 345, 284, 152, 256, 237, 286, 381, 283, 246, 180, 509, 240, 261, 473, 196, 302, 424, 249, 453, 267, 257, 216, 511, 264, 266, 502, 354, 333, 397, 254, 264, 384, 341, 346, 354, 275, 165, 359, 166, 208, 328, 186, 160, 253, 156, 144, 285, 192, 288, 310, 213, 260, 220, 263, 296, 241, 134, 317, 306, 184, 69, 217, 204, 111, 181, 234, 320, 96, 268, 139, 117, 135, 122, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 479, 287, 704, 405, 386, 383, 470, 552, 491, 423, 431, 238, 158, 164, 349, 312, 488, 238, 665, 363, 543, 343, 404, 304, 377, 328, 415, 558, 596, 513, 605, 396, 373, 285, 326, 281, 564, 365, 304, 177, 374, 126, 302, 686, 379, 453, 388, 419, 531, 572, 264, 414, 540, 557, 352, 367, 498, 476, 426, 399, 394, 535, 382, 447, 424, 530, 327, 341, 513, 506, 323, 312, 532, 279, 467, 245, 313, 332, 299, 482, 439, 429, 234, 314, 653, 322, 342, 314, 247, 379, 503, 437, 511, 318, 319, 382, 528, 564, 494, 457, 339, 437, 615, 266, 393, 214, 421, 396, 510, 389, 452, 298, 472, 294, 553, 523, 488, 642, 266, 378, 400, 478, 286, 413, 148, 309, 438, 579, 352, 615, 379, 117, 745, 324, 322, 219, 383, 418, 416, 213, 247, 355, 273, 449, 415, 511, 492, 701, 398, 308, 561, 398, 484, 365, 845, 369, 231, 495, 436, 483, 211, 706, 349, 327, 169, 302, 322, 375, 502, 547, 328, 341, 614, 338, 300, 508, 493, 398, 440, 280, 471, 395, 448, 310, 673, 293, 290, 539, 396, 613, 510, 282, 267, 391, 372, 353, 377, 303, 198, 420, 176, 373, 361, 196, 193, 301, 170, 174, 357, 247, 298, 350, 252, 287, 241, 358, 315, 250, 142, 342, 325, 192, 71, 256, 307, 218, 238, 267, 371, 107, 301, 180, 127, 165, 199, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 500, 482, 834, 496, 420, 510, 526, 598, 537, 471, 505, 264, 272, 221, 386, 317, 702, 305, 670, 367, 658, 386, 433, 405, 406, 429, 471, 579, 664, 615, 643, 401, 427, 353, 449, 348, 570, 535, 312, 412, 476, 146, 348, 731, 397, 500, 471, 451, 701, 618, 318, 423, 627, 571, 395, 379, 524, 541, 469, 549, 401, 652, 445, 592, 551, 534, 454, 517, 530, 519, 366, 339, 569, 316, 634, 278, 420, 528, 314, 596, 569, 514, 308, 320, 681, 375, 540, 460, 472, 390, 537, 470, 534, 339, 380, 391, 552, 630, 496, 556, 393, 461, 656, 320, 504, 285, 518, 438, 739, 414, 465, 309, 548, 355, 583, 527, 518, 733, 345, 427, 577, 572, 346, 622, 393, 347, 441, 635, 359, 683, 552, 324, 808, 358, 376, 259, 385, 446, 438, 620, 381, 424, 340, 482, 424, 520, 500, 745, 538, 341, 663, 422, 507, 447, 877, 501, 313, 600, 469, 526, 273, 763, 414, 367, 218, 485, 407, 387, 543, 584, 497, 513, 646, 404, 364, 531, 521, 500, 544, 308, 554, 433, 529, 406, 710, 345, 390, 573, 567, 652, 588, 298, 389, 493, 379, 377, 477, 468, 317, 530, 207, 379, 387, 224, 198, 342, 264, 212, 394, 284, 351, 364, 269, 316, 249, 380, 334, 259, 163, 363, 424, 203, 75, 259, 336, 239, 317, 289, 415, 113, 305, 218, 143, 201, 225, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 518, 616, 874, 678, 500, 605, 536, 674, 633, 515, 536, 277, 428, 321, 417, 334, 727, 325, 677, 394, 688, 559, 457, 435, 583, 480, 562, 644, 679, 639, 752, 425, 608, 393, 546, 568, 596, 738, 344, 582, 609, 412, 480, 736, 465, 580, 692, 557, 714, 691, 453, 577, 636, 767, 435, 396, 588, 607, 586, 650, 429, 703, 459, 613, 570, 646, 660, 593, 575, 529, 392, 517, 630, 341, 783, 601, 422, 614, 356, 641, 599, 661, 463, 382, 728, 663, 584, 501, 565, 446, 576, 506, 564, 374, 395, 545, 573, 636, 501, 653, 553, 622, 659, 454, 555, 321, 603, 447, 781, 479, 480, 404, 666, 487, 596, 573, 533, 791, 409, 745, 612, 671, 507, 733, 479, 360, 537, 848, 494, 710, 565, 441, 820, 547, 443, 276, 425, 504, 555, 656, 410, 459, 445, 489, 449, 554, 505, 763, 565, 371, 698, 438, 574, 471, 893, 571, 413, 675, 490, 561, 301, 775, 428, 402, 323, 582, 444, 711, 546, 641, 618, 520, 698, 550, 473, 561, 651, 544, 727, 346, 595, 515, 603, 520, 746, 513, 396, 636, 594, 699, 620, 472, 485, 562, 440, 573, 512, 508, 358, 611, 219, 386, 451, 236, 270, 373, 308, 293, 440, 331, 434, 376, 284, 358, 257, 385, 340, 282, 205, 370, 444, 223, 85, 311, 362, 271, 329, 375, 427, 188, 335, 235, 162, 227, 272, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 833, 620, 897, 706, 643, 609, 545, 678, 827, 532, 699, 361, 432, 641, 581, 337, 737, 436, 682, 456, 773, 573, 606, 695, 635, 631, 581, 694, 794, 647, 779, 445, 611, 525, 556, 614, 668, 767, 418, 586, 746, 574, 497, 826, 520, 713, 709, 581, 727, 804, 527, 631, 645, 826, 576, 515, 625, 685, 628, 667, 526, 726, 513, 678, 790, 669, 715, 629, 741, 671, 420, 569, 667, 373, 801, 673, 618, 643, 497, 712, 645, 667, 482, 676, 745, 694, 620, 522, 861, 459, 726, 567, 667, 460, 470, 572, 578, 663, 552, 761, 729, 646, 663, 500, 573, 473, 650, 469, 786, 510, 556, 423, 713, 519, 628, 686, 607, 812, 451, 860, 680, 726, 527, 736, 494, 445, 612, 881, 506, 771, 659, 569, 835, 586, 544, 297, 582, 527, 560, 689, 601, 466, 548, 558, 483, 700, 507, 767, 650, 439, 709, 676, 586, 545, 902, 585, 486, 733, 520, 608, 452, 821, 484, 687, 350, 587, 521, 753, 621, 680, 675, 834, 745, 569, 496, 571, 704, 631, 796, 698, 608, 572, 620, 573, 794, 690, 475, 651, 607, 701, 784, 506, 565, 564, 468, 664, 714, 536, 383, 657, 262, 455, 519, 284, 330, 396, 344, 337, 461, 395, 448, 525, 356, 417, 262, 410, 394, 302, 292, 431, 465, 250, 150, 347, 430, 322, 539, 421, 480, 220, 378, 250, 175, 248, 324, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 879, 649, 931, 749, 689, 722, 548, 721, 829, 536, 741, 372, 490, 708, 590, 515, 772, 615, 686, 468, 836, 837, 628, 762, 685, 644, 664, 705, 899, 697, 797, 573, 814, 647, 577, 681, 690, 804, 486, 774, 754, 584, 514, 841, 571, 793, 713, 616, 842, 842, 651, 808, 714, 866, 580, 609, 655, 759, 710, 698, 671, 766, 546, 825, 815, 684, 744, 729, 758, 683, 487, 596, 806, 562, 883, 749, 779, 703, 558, 715, 721, 813, 522, 730, 785, 718, 726, 643, 890, 789, 810, 601, 694, 514, 582, 602, 615, 717, 591, 766, 741, 692, 682, 550, 810, 635, 657, 504, 793, 559, 633, 567, 732, 550, 670, 749, 659, 881, 455, 890, 841, 863, 547, 756, 531, 504, 699, 905, 661, 818, 686, 709, 844, 608, 603, 323, 633, 595, 581, 768, 722, 554, 594, 632, 642, 707, 625, 935, 816, 502, 749, 710, 595, 770, 936, 641, 499, 754, 591, 625, 491, 831, 548, 717, 484, 593, 565, 825, 634, 748, 694, 938, 750, 702, 523, 666, 857, 759, 846, 783, 822, 614, 633, 608, 871, 694, 514, 653, 635, 718, 792, 517, 601, 728, 527, 849, 728, 686, 440, 710, 294, 538, 540, 350, 351, 413, 399, 351, 496, 398, 453, 547, 388, 514, 271, 451, 408, 316, 346, 433, 507, 293, 239, 365, 436, 392, 550, 430, 498, 226, 404, 283, 216, 274, 343, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 885, 655, 951, 765, 743, 744, 687, 803, 840, 586, 797, 444, 546, 780, 623, 574, 786, 635, 699, 493, 873, 876, 637, 817, 695, 688, 757, 753, 956, 711, 854, 643, 823, 823, 618, 947, 706, 810, 511, 776, 795, 587, 532, 853, 605, 818, 773, 646, 906, 870, 656, 858, 738, 887, 685, 672, 662, 837, 714, 730, 784, 808, 684, 864, 871, 883, 817, 760, 783, 739, 524, 619, 829, 569, 934, 839, 875, 764, 677, 735, 813, 827, 688, 735, 798, 786, 796, 968, 904, 827, 842, 693, 870, 600, 683, 677, 667, 744, 597, 812, 819, 710, 761, 567, 873, 650, 666, 798, 815, 629, 642, 697, 748, 870, 748, 764, 787, 887, 541, 974, 864, 896, 565, 780, 688, 530, 703, 929, 831, 835, 718, 758, 887, 643, 648, 869, 636, 599, 611, 785, 840, 627, 630, 769, 656, 726, 634, 943, 853, 528, 818, 750, 604, 774, 954, 685, 649, 824, 670, 766, 525, 847, 585, 802, 512, 698, 667, 847, 681, 823, 734, 960, 862, 719, 850, 683, 876, 776, 877, 827, 874, 751, 701, 613, 911, 708, 599, 696, 683, 736, 900, 704, 728, 771, 689, 858, 828, 700, 472, 752, 311, 568, 596, 389, 390, 472, 474, 404, 524, 406, 469, 552, 462, 555, 281, 468, 512, 339, 350, 444, 589, 310, 302, 417, 453, 402, 622, 479, 525, 260, 438, 294, 253, 299, 354, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 901, 922, 983, 782, 817, 878, 792, 832, 945, 675, 877, 448, 913, 803, 737, 582, 833, 640, 782, 604, 908, 945, 646, 834, 915, 862, 903, 809, 967, 867, 905, 814, 884, 851, 746, 951, 791, 829, 539, 806, 797, 667, 676, 929, 646, 828, 823, 656, 950, 889, 665, 885, 798, 914, 753, 702, 695, 869, 803, 736, 839, 865, 843, 893, 894, 891, 857, 828, 818, 830, 528, 812, 890, 650, 941, 863, 897, 784, 680, 799, 815, 888, 694, 949, 809, 799, 830, 980, 930, 892, 898, 927, 884, 844, 804, 697, 708, 979, 607, 839, 915, 830, 869, 671, 920, 784, 751, 850, 836, 790, 777, 769, 813, 880, 838, 954, 843, 953, 911, 986, 875, 967, 663, 820, 788, 552, 715, 937, 844, 894, 779, 784, 898, 872, 683, 874, 821, 817, 625, 832, 911, 690, 642, 829, 770, 751, 770, 970, 932, 567, 883, 766, 690, 818, 972, 899, 790, 829, 876, 797, 603, 950, 664, 870, 576, 809, 724, 859, 806, 926, 792, 995, 893, 791, 863, 819, 910, 805, 926, 831, 907, 769, 789, 746, 937, 781, 727, 865, 755, 807, 913, 842, 743, 836, 769, 923, 925, 794, 573, 828, 361, 625, 672, 400, 400, 501, 492, 673, 549, 426, 522, 572, 477, 578, 307, 513, 529, 470, 402, 482, 612, 332, 331, 486, 466, 519, 644, 484, 551, 269, 443, 298, 269, 326, 367, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 952, 936, 1003, 971, 858, 884, 881, 999, 964, 689, 880, 495, 974, 934, 846, 590, 868, 657, 806, 720, 927, 984, 966, 925, 938, 887, 982, 850, 978, 928, 943, 825, 916, 864, 775, 1000, 994, 924, 691, 955, 910, 695, 839, 977, 917, 924, 893, 931, 955, 994, 725, 989, 863, 919, 802, 804, 774, 940, 867, 821, 1016, 925, 937, 900, 909, 896, 891, 837, 910, 923, 949, 923, 933, 671, 970, 972, 900, 846, 715, 921, 899, 911, 863, 954, 885, 805, 848, 1005, 953, 962, 976, 968, 920, 919, 899, 831, 798, 1000, 681, 846, 958, 859, 905, 688, 1007, 801, 931, 889, 880, 834, 797, 881, 864, 900, 925, 959, 942, 969, 961, 992, 925, 970, 692, 842, 796, 911, 724, 1010, 999, 935, 851, 973, 971, 913, 841, 888, 895, 901, 720, 950, 946, 728, 749, 930, 936, 910, 857, 973, 964, 725, 899, 845, 701, 824, 1015, 950, 794, 958, 998, 821, 753, 957, 697, 888, 762, 871, 761, 873, 811, 951, 841, 1001, 903, 850, 948, 846, 993, 939, 980, 886, 912, 954, 856, 755, 969, 959, 785, 911, 808, 881, 933, 957, 854, 878, 821, 953, 931, 903, 860, 960, 453, 648, 750, 483, 482, 586, 526, 676, 557, 446, 570, 601, 504, 609, 667, 543, 670, 474, 431, 608, 639, 468, 511, 616, 468, 598, 680, 490, 583, 288, 470, 308, 297, 393, 391, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 994, 943, 1016, 1017, 886, 1023, 978, 1002, 1002, 756, 927, 505, 991, 983, 1010, 770, 891, 925, 897, 1023, 1003, 992, 1021, 946, 1009, 921, 995, 886, 1009, 934, 966, 935, 943, 903, 892, 1013, 1024, 940, 934, 1013, 1007, 999, 909, 982, 983, 937, 1020, 992, 968, 1003, 740, 1003, 976, 1013, 1017, 824, 956, 1008, 943, 1009, 1022, 1001, 977, 985, 953, 955, 958, 878, 964, 930, 962, 965, 935, 737, 992, 993, 932, 993, 917, 1014, 942, 936, 950, 987, 1002, 855, 1024, 1019, 977, 995, 982, 1010, 1019, 921, 931, 873, 927, 1006, 742, 974, 1017, 940, 969, 938, 1015, 952, 956, 928, 976, 872, 1017, 936, 945, 1023, 992, 990, 955, 1012, 995, 999, 943, 983, 999, 999, 923, 958, 990, 1017, 1020, 1000, 1007, 1015, 1006, 928, 940, 929, 937, 1001, 723, 1017, 962, 765, 950, 1000, 1011, 922, 912, 978, 989, 864, 930, 891, 768, 826, 1024, 1010, 989, 979, 1021, 868, 824, 1019, 1020, 894, 911, 973, 958, 1018, 981, 969, 858, 1018, 926, 999, 1021, 907, 1004, 942, 1008, 975, 932, 1001, 868, 854, 997, 1008, 925, 919, 1022, 1024, 1000, 1001, 935, 981, 823, 980, 972, 946, 1010, 988, 455, 654, 786, 487, 497, 655, 578, 695, 580, 494, 572, 632, 531, 679, 682, 597, 703, 541, 499, 610, 751, 479, 531, 662, 488, 617, 686, 645, 587, 400, 485, 354, 302, 436, 541, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 457, 667, 789, 582, 536, 676, 662, 705, 674, 510, 629, 660, 559, 748, 685, 610, 708, 610, 570, 640, 787, 514, 549, 728, 532, 619, 722, 661, 626, 403, 492, 368, 308, 445, 561, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 460, 692, 813, 645, 594, 720, 739, 787, 763, 537, 655, 732, 581, 750, 688, 614, 759, 632, 581, 718, 795, 521, 584, 744, 613, 684, 785, 685, 705, 421, 496, 383, 311, 460, 653, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 494, 714, 818, 654, 696, 734, 801, 810, 766, 541, 700, 773, 588, 758, 750, 668, 793, 736, 628, 752, 801, 725, 595, 786, 618, 720, 805, 702, 711, 425, 499, 407, 330, 503, 679, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 502, 725, 872, 664, 796, 746, 855, 847, 800, 543, 723, 819, 608, 841, 765, 704, 811, 753, 641, 886, 884, 730, 669, 853, 623, 764, 846, 858, 714, 442, 602, 497, 370, 505, 704, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 676, 751, 874, 723, 861, 761, 866, 856, 822, 554, 742, 867, 681, 861, 777, 714, 820, 810, 709, 940, 890, 829, 729, 881, 697, 785, 905, 912, 719, 450, 604, 551, 385, 570, 707, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 781, 805, 922, 803, 873, 900, 872, 860, 875, 672, 805, 894, 696, 867, 823, 763, 851, 836, 760, 956, 899, 887, 807, 886, 780, 833, 935, 927, 723, 464, 627, 597, 411, 579, 722, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 824, 850, 957, 840, 888, 926, 905, 963, 878, 677, 885, 910, 725, 871, 855, 765, 949, 863, 845, 970, 927, 916, 869, 921, 812, 842, 961, 959, 766, 476, 630, 616, 419, 585, 770, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 910, 981, 971, 843, 891, 942, 964, 984, 917, 706, 921, 944, 762, 898, 889, 824, 957, 876, 856, 981, 982, 928, 872, 939, 835, 866, 967, 965, 785, 486, 651, 622, 429, 587, 786, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1010, 988, 975, 975, 916, 978, 1001, 990, 933, 745, 1007, 974, 936, 970, 1002, 982, 961, 907, 988, 987, 985, 941, 895, 955, 930, 910, 997, 981, 795, 521, 669, 639, 440, 649, 795, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1016, 990, 984, 1024, 985, 991, 1012, 1001, 959, 959, 1013, 976, 944, 1013, 1021, 1020, 989, 946, 1022, 1005, 989, 999, 1002, 1004, 984, 921, 1020, 1014, 1015, 538, 682, 654, 456, 733, 814, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 553, 755, 673, 583, 751, 843, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 562, 759, 702, 624, 757, 845, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 566, 812, 718, 724, 765, 852, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 593, 838, 721, 731, 799, 864, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 604, 858, 806, 735, 813, 889, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 611, 894, 826, 742, 902, 904, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 613, 916, 849, 772, 916, 926, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 637, 921, 908, 789, 932, 934, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 673, 970, 945, 798, 955, 944, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 683, 997, 1019, 812, 960, 965, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 706, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 738, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 743, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 747, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 776, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 778, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 788, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 793, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 801, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 813, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 848, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 852, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 862, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 868, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 870, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 906, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 951, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 980, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 998, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1015, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; codec2-1.0.1/src/H_1024_2048_4f.h000066400000000000000000000007551412132000500155060ustar00rootroot00000000000000/* FILE....: H_1024_2048_4f.h Static arrays for LDPC codec H_1024_2048_4f, generated by ldpc_gen_c_h_file.m. */ #define H_1024_2048_4f_NUMBERPARITYBITS 1024 #define H_1024_2048_4f_MAX_ROW_WEIGHT 12 #define H_1024_2048_4f_CODELENGTH 2048 #define H_1024_2048_4f_NUMBERROWSHCOLS 1024 #define H_1024_2048_4f_MAX_COL_WEIGHT 54 #define H_1024_2048_4f_DEC_TYPE 0 #define H_1024_2048_4f_MAX_ITER 100 extern const uint16_t H_1024_2048_4f_H_rows[]; extern const uint16_t H_1024_2048_4f_H_cols[]; codec2-1.0.1/src/H_128_256_5.c000066400000000000000000000265711412132000500152030ustar00rootroot00000000000000/* FILE....: H_128_256_5.c Static arrays for LDPC codec H_128_256_5, generated by ldpc_gen_c_h_file.m. */ #include #include "H_128_256_5.h" const uint16_t H_128_256_5_H_rows[] = { 2, 44, 14, 2, 15, 36, 28, 19, 17, 7, 20, 11, 3, 9, 12, 13, 29, 7, 25, 11, 31, 13, 53, 15, 11, 6, 5, 61, 9, 13, 7, 22, 8, 10, 5, 11, 32, 9, 8, 35, 17, 13, 11, 33, 1, 33, 5, 14, 12, 21, 31, 1, 20, 2, 8, 7, 22, 4, 24, 31, 71, 20, 10, 51, 3, 65, 6, 41, 3, 40, 35, 10, 6, 16, 37, 24, 21, 4, 63, 8, 17, 9, 15, 5, 3, 7, 18, 33, 6, 36, 1, 5, 74, 27, 18, 24, 22, 8, 22, 26, 23, 14, 39, 4, 30, 24, 26, 29, 15, 2, 1, 3, 29, 23, 52, 56, 45, 12, 4, 28, 23, 53, 29, 14, 16, 1, 41, 18, 70, 66, 50, 19, 37, 46, 61, 21, 33, 32, 51, 21, 57, 28, 18, 37, 41, 23, 43, 47, 42, 16, 83, 64, 66, 19, 41, 62, 10, 44, 9, 24, 46, 30, 13, 16, 41, 17, 19, 39, 49, 54, 39, 43, 2, 55, 64, 26, 46, 45, 43, 12, 21, 6, 40, 52, 32, 20, 85, 34, 73, 25, 42, 57, 25, 83, 34, 53, 15, 61, 53, 46, 28, 36, 48, 51, 36, 25, 65, 44, 38, 72, 48, 68, 12, 16, 37, 35, 45, 39, 25, 40, 80, 38, 22, 32, 49, 34, 27, 57, 35, 34, 74, 19, 56, 38, 31, 32, 26, 82, 4, 18, 58, 56, 67, 77, 76, 60, 80, 44, 86, 68, 57, 27, 37, 20, 44, 29, 72, 71, 72, 42, 83, 50, 114, 48, 39, 67, 74, 30, 63, 51, 47, 68, 47, 36, 52, 95, 82, 38, 89, 70, 77, 53, 78, 76, 84, 78, 66, 64, 62, 55, 28, 17, 75, 27, 45, 68, 61, 67, 55, 49, 14, 73, 86, 42, 55, 71, 67, 23, 50, 10, 59, 74, 80, 57, 113, 50, 88, 30, 45, 90, 38, 105, 70, 66, 30, 86, 55, 59, 111, 89, 105, 63, 58, 31, 69, 48, 54, 82, 63, 85, 26, 27, 49, 85, 62, 52, 34, 70, 90, 59, 68, 74, 54, 60, 40, 60, 58, 40, 105, 87, 58, 75, 54, 35, 47, 84, 50, 56, 73, 78, 80, 97, 107, 62, 91, 49, 102, 71, 69, 33, 47, 46, 89, 103, 91, 83, 101, 97, 94, 65, 117, 66, 88, 73, 101, 42, 76, 88, 77, 90, 48, 105, 61, 104, 107, 52, 96, 100, 110, 60, 102, 92, 120, 79, 112, 87, 99, 81, 43, 93, 114, 101, 70, 80, 75, 93, 65, 79, 92, 77, 108, 59, 79, 81, 86, 95, 63, 51, 76, 86, 111, 81, 127, 98, 112, 100, 65, 91, 117, 110, 96, 73, 59, 100, 69, 92, 120, 98, 122, 72, 112, 84, 94, 103, 84, 85, 87, 88, 92, 77, 93, 116, 94, 79, 56, 111, 120, 64, 108, 107, 90, 89, 75, 87, 67, 43, 113, 107, 93, 76, 64, 105, 96, 88, 118, 94, 81, 89, 84, 98, 114, 78, 109, 115, 104, 78, 96, 54, 75, 58, 104, 115, 118, 113, 126, 110, 99, 95, 128, 119, 109, 82, 109, 98, 103, 113, 102, 113, 60, 119, 109, 106, 123, 128, 127, 117, 116, 81, 115, 124, 123, 99, 122, 91, 100, 97, 121, 112, 122, 116, 83, 125, 104, 108, 71, 102, 109, 93, 128, 95, 106, 103, 126, 110, 107, 69, 87, 123, 115, 120, 128, 100, 115, 123, 72, 121, 0, 118, 121, 85, 106, 101, 110, 101, 124, 99, 125, 117, 125, 97, 125, 106, 92, 114, 118, 91, 97, 108, 106, 126, 117, 104, 62, 114, 122, 123, 127, 126, 124, 95, 102, 124, 79, 124, 116, 111, 99, 90, 121, 127, 98, 111, 119, 96, 119, 108, 112, 119, 120, 103, 126, 122, 116, 94, 118, 82, 127, 69, 128, 125 }; const uint16_t H_128_256_5_H_cols[] = { 45, 1, 13, 58, 27, 26, 10, 33, 14, 29, 12, 15, 16, 3, 5, 22, 9, 15, 4, 11, 8, 32, 18, 32, 19, 48, 38, 7, 17, 12, 21, 10, 9, 60, 40, 6, 5, 22, 9, 55, 17, 4, 19, 2, 39, 6, 15, 8, 41, 3, 11, 19, 23, 42, 34, 91, 13, 77, 48, 17, 7, 28, 13, 24, 6, 2, 10, 16, 54, 1, 2, 1, 10, 11, 37, 13, 15, 27, 30, 40, 26, 10, 2, 29, 59, 47, 32, 9, 23, 16, 1, 28, 36, 5, 6, 23, 4, 12, 5, 24, 3, 15, 13, 20, 18, 20, 21, 42, 9, 4, 57, 31, 2, 7, 27, 25, 7, 1, 8, 29, 35, 31, 21, 28, 40, 3, 23, 7, 52, 4, 65, 78, 35, 54, 18, 39, 29, 34, 20, 49, 22, 45, 24, 36, 36, 87, 8, 53, 12, 57, 52, 59, 62, 85, 86, 14, 108, 34, 51, 37, 44, 67, 71, 18, 16, 65, 40, 70, 27, 12, 35, 30, 50, 33, 17, 17, 44, 6, 14, 22, 26, 81, 43, 105, 58, 101, 55, 26, 19, 33, 53, 32, 43, 8, 42, 40, 71, 24, 43, 3, 46, 56, 41, 28, 25, 30, 44, 57, 34, 21, 5, 78, 68, 51, 55, 14, 74, 64, 32, 45, 42, 79, 20, 67, 34, 60, 30, 33, 11, 27, 50, 41, 66, 49, 53, 47, 11, 25, 73, 36, 14, 37, 57, 38, 24, 66, 18, 58, 64, 37, 29, 73, 75, 51, 59, 22, 91, 45, 69, 104, 47, 67, 31, 55, 31, 54, 25, 52, 30, 48, 69, 74, 38, 95, 26, 58, 50, 95, 101, 76, 65, 100, 94, 35, 113, 62, 60, 57, 46, 91, 88, 74, 75, 81, 43, 92, 37, 21, 44, 80, 63, 49, 20, 75, 87, 53, 54, 56, 68, 97, 46, 112, 64, 105, 69, 98, 28, 89, 76, 47, 63, 25, 51, 84, 79, 39, 50, 63, 61, 93, 99, 55, 46, 114, 49, 93, 50, 82, 23, 81, 82, 56, 83, 61, 98, 93, 64, 72, 46, 89, 48, 109, 78, 74, 33, 60, 38, 44, 80, 90, 75, 69, 96, 86, 19, 52, 92, 61, 16, 82, 61, 88, 65, 83, 111, 73, 67, 75, 56, 97, 77, 88, 95, 47, 111, 54, 85, 111, 84, 73, 56, 80, 38, 63, 36, 85, 35, 102, 83, 86, 41, 112, 39, 62, 53, 97, 114, 96, 78, 107, 99, 73, 123, 69, 78, 96, 88, 98, 101, 77, 87, 94, 90, 99, 68, 48, 51, 120, 89, 72, 109, 80, 97, 60, 64, 90, 71, 107, 49, 114, 100, 113, 72, 100, 41, 91, 79, 94, 66, 31, 101, 95, 123, 67, 61, 76, 68, 96, 106, 106, 86, 118, 90, 115, 58, 110, 39, 110, 84, 70, 100, 84, 114, 97, 84, 81, 87, 112, 52, 112, 85, 109, 74, 62, 70, 99, 118, 121, 103, 80, 104, 95, 45, 66, 104, 77, 59, 92, 120, 103, 76, 111, 113, 93, 107, 93, 62, 100, 79, 96, 108, 59, 126, 110, 112, 119, 92, 89, 86, 98, 82, 72, 43, 118, 42, 124, 109, 125, 81, 128, 104, 126, 77, 99, 121, 106, 91, 109, 124, 120, 128, 105, 107, 108, 124, 102, 108, 90, 125, 106, 103, 102, 127, 63, 102, 127, 117, 126, 125, 83, 120, 111, 76, 115, 122, 124, 71, 116, 123, 126, 94, 118, 70, 118, 83, 107, 79, 68, 115, 122, 126, 92, 122, 82, 113, 103, 125, 117, 116, 122, 101, 119, 113, 124, 66, 115, 88, 121, 104, 110, 127, 106, 119, 85, 105, 122, 98, 123, 116, 116, 105, 70, 72, 121, 128, 127, 108, 87, 117, 114, 119, 71, 110, 115, 103, 117, 128, 121, 89, 123, 116, 117, 0, 120, 94, 102, 128, 119, 125, 127 }; const float H_128_256_5_input[] = { -8.8994349771084629, -2.2264881688239941, 15.221530002446757, -0.39525362027279998, 13.442727654278771, -10.000442582434765, 8.5404090461277598, 16.432027973130197, 14.246872691160114, 2.6448289703038665, 11.863343696232654, 4.174651054544948, 10.288062518986955, 12.085683283784871, 3.4121899888598004, 9.1115751924588562, -10.810079499566237, 1.3739160908287105, 10.193128819909694, 3.5997991319409715, 15.252939624442645, 7.8059185917026843, -1.141552617398524, -5.4585533732512204, -7.1985417950651627, -11.078712541348164, -3.7197747259098599, -6.9715544083806256, 4.8350467668286372, -8.4378844630126757, 9.2909631551985523, -13.264491023395877, 13.29420431281155, -16.107993796779667, -6.308916359108748, 11.90542068917763, -17.405334641933944, 6.4284228626032878, 3.0768153742069018, 11.853700717454576, 17.640154289991976, -5.2721404813136417, 20.584732959872778, -6.7125902650906779, 6.5978715835307131, -6.1735464272366514, 6.3164198345461697, -14.401260649632755, -14.487703458954298, -5.8513629748056406, 5.5729511574836881, -9.013132752980674, 8.9988683878222044, -11.263912700584942, 13.485110330806128, -4.8625805463887231, -8.9173751521280824, 10.960944349100908, -14.772741989217471, 1.1368460179590478, 10.533109114159828, -1.731122993192219, 6.0498682584846524, 13.360259295000249, -8.1132970979856438, 9.5693771119534112, -12.578014725946508, 7.0229599627046593, 4.3720950386342494, 14.366897307196593, -0.2595503946882991, -8.822187045424192, -17.794267274108481, -2.7237117577689975, 11.097280635523761, 9.7949231987861634, 15.294276496861425, 6.0841375010899243, 11.169445345055827, 11.904159075277251, 9.1840263923068974, -5.5011617203311012, 16.754980283161505, 7.5513624901915035, -12.170700227106005, -11.483103606370603, -12.025806209056533, 5.1085406001744822, 13.373965752403866, -13.93398032921742, -3.3375271260328137, -5.0546492889404364, 3.4021410284759925, 6.2487730438409157, -12.667072890747553, -10.733091469360994, -12.179180763062972, 11.176700470191063, -11.616901732983612, -10.119483446721208, -8.6850004796910767, -12.677334280090912, -4.3454670403804858, -9.6582743438569203, -9.4373477042683529, -5.0933688337275695, 14.946470562034275, -9.5827796114077728, -12.579787690724327, -5.1317618464667945, 9.7995335974617479, 3.935671855878343, -5.120219966909672, -1.0737815811081737, 12.262597164050909, 12.930462261713524, -10.002664845731484, 8.6911316894060171, 10.515367492600749, 17.842791232413518, 11.503068266000463, 0.7672764564891652, 14.793448459789646, 8.1945046885718504, -8.1324447231556771, 10.265204571293244, 10.433947332186976, -13.070884283907548, -8.3960998416231085, 4.9148913185470375, -10.422874683972211, -11.088739385454351, -5.2623788916708749, -9.4339832891969255, -1.6059826144931535, 11.258751578423034, 12.782380682326652, 10.796361068381742, 13.81940336087583, 6.0191480445312484, 5.0635927171792945, 8.8888332858691825, -5.8812839036685194, 13.782784721594529, 12.501681731989231, 11.315875387889772, -3.773961578229545, 10.665302965437366, 1.2443349889724857, 10.748108985336613, -10.647273973137242, -13.375772243768143, 10.778336161253916, 13.520253518547392, -0.31609537750065214, -2.475823983608934, -8.0419367447924746, -6.4823648863210481, -4.5798319665012235, 12.710284434647598, 11.140388782304239, 8.018507577316937, -12.549284695242829, 14.887316703670896, 15.010107967429951, -15.399171325118063, -8.0816667358175973, -6.6302855944401404, 10.566758114915686, -9.6712985774865867, -10.989892866088582, -2.9502229280575123, -7.8748744688277927, 13.391186021456775, -13.450214789026996, -6.4126752277302099, -11.16710059702414, -7.2444144765480658, -5.5672969972856778, -8.8773312015249726, 13.719522588578332, 11.07457454354517, 8.7479356580553347, 0.58609202162242569, -18.723523952614787, -1.9397327392511032, -8.6455901886153637, 9.2918044013476511, 4.8898010354938704, -6.9894142182003609, -0.1191884647878291, -13.44984965914426, -3.4596444772305261, 5.1319125752378314, -10.427093821749148, -8.5064597147739125, 14.736880938095643, -15.211136760645743, -10.38069323739759, 0.087732074612520833, -4.7977922493487748, 3.1108186580087001, 8.1492732382718991, -2.7096006449185972, 9.4614578695259421, -18.242468149470778, -10.800555835992892, -5.8325818881984466, 16.216906744162525, 16.028982056738251, 13.841633178111548, 3.301741016692473, -13.962273950825141, -12.080675707754205, 7.6736779018117174, 11.959683046750843, -9.8186269532308081, -6.8666083041682322, 10.854650842369852, -17.865310956014465, 13.342746302221908, 10.237148734886931, -9.5317378135033763, -3.3932680342422912, 11.135022697187321, -5.8464827434562983, -10.855498726923935, -10.389826062676315, 17.22405328987611, -8.6670566421031872, -4.4906061687679069, -13.926679140242809, 4.6527756761303296, 11.459319592377085, 16.469693825200174, -3.2267090796784621, -8.508420245307466, -14.014716857177133, 17.46825981866947, 8.7394092695610119, -10.559493481189753, 12.767938048701128, 15.138604949078795, 11.992106918420994, -4.1009466576601428, 10.895797683842719, -11.102485145032849, 9.2740371065936902, 5.0223781181934672, -13.009215931560048, -2.4537770130506042, 9.4538398738987919, -9.4463497897265984, -7.4868090201247508, 4.9784182834226272, 8.3854387393004792 }; const char H_128_256_5_detected_data[] = { 1, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0 }; codec2-1.0.1/src/H_128_256_5.h000066400000000000000000000010371412132000500151760ustar00rootroot00000000000000/* FILE....: H_128_256_5.h Static arrays for LDPC codec H_128_256_5, generated by ldpc_gen_c_h_file.m. */ #define H_128_256_5_NUMBERPARITYBITS 128 #define H_128_256_5_MAX_ROW_WEIGHT 5 #define H_128_256_5_CODELENGTH 256 #define H_128_256_5_NUMBERROWSHCOLS 128 #define H_128_256_5_MAX_COL_WEIGHT 5 #define H_128_256_5_DEC_TYPE 0 #define H_128_256_5_MAX_ITER 100 extern const uint16_t H_128_256_5_H_rows[]; extern const uint16_t H_128_256_5_H_cols[]; extern const float H_128_256_5_input[]; extern const char H_128_256_5_detected_data[]; codec2-1.0.1/src/H_16200_9720.c000066400000000000000000031775311412132000500152100ustar00rootroot00000000000000/* FILE....: H_16200_9720.c Static arrays for LDPC codec H_16200_9720, generated by ldpc_gen_c_h_file.m. */ #include #include "H_16200_9720.h" const uint16_t H_16200_9720_H_rows[] = { 4, 446, 699, 410, 240, 94, 285, 44, 122, 1210, 173, 208, 559, 707, 162, 319, 844, 389, 5, 447, 700, 411, 241, 95, 286, 45, 123, 1211, 174, 209, 560, 708, 163, 320, 845, 390, 6, 448, 701, 412, 242, 96, 287, 46, 124, 1212, 175, 210, 561, 709, 164, 321, 846, 391, 7, 449, 702, 413, 243, 97, 288, 47, 125, 1213, 176, 211, 562, 710, 165, 322, 847, 392, 8, 450, 703, 414, 244, 98, 289, 48, 126, 1214, 177, 212, 563, 711, 166, 323, 848, 393, 9, 451, 704, 415, 245, 99, 290, 49, 127, 1215, 178, 213, 564, 712, 167, 324, 849, 394, 10, 452, 705, 416, 246, 100, 291, 50, 128, 1216, 179, 214, 565, 713, 168, 325, 850, 395, 11, 453, 706, 417, 247, 101, 292, 51, 129, 1217, 180, 215, 566, 714, 169, 326, 851, 396, 12, 454, 707, 418, 248, 102, 293, 52, 130, 1218, 181, 216, 567, 715, 170, 327, 852, 397, 13, 455, 708, 419, 249, 103, 294, 53, 131, 1219, 182, 217, 568, 716, 171, 328, 853, 398, 14, 456, 709, 420, 250, 104, 295, 54, 132, 1220, 183, 218, 569, 717, 172, 329, 854, 399, 15, 457, 710, 421, 251, 105, 296, 55, 133, 1221, 184, 219, 570, 361, 173, 330, 855, 400, 16, 458, 711, 422, 252, 106, 297, 56, 134, 1222, 185, 220, 571, 362, 174, 331, 856, 401, 17, 459, 712, 423, 253, 107, 298, 57, 135, 1223, 186, 221, 572, 363, 175, 332, 857, 402, 18, 460, 713, 424, 254, 108, 299, 58, 136, 1224, 187, 222, 573, 361, 176, 333, 858, 403, 19, 461, 714, 425, 255, 109, 300, 59, 137, 1225, 188, 223, 574, 362, 177, 334, 859, 404, 20, 462, 715, 426, 256, 110, 301, 60, 138, 1226, 189, 224, 575, 363, 178, 335, 860, 405, 21, 463, 716, 427, 257, 111, 302, 61, 139, 1227, 190, 225, 576, 364, 179, 336, 861, 406, 22, 464, 717, 428, 258, 112, 303, 62, 140, 1228, 191, 226, 577, 365, 180, 337, 862, 407, 23, 465, 718, 429, 259, 113, 304, 63, 141, 1229, 192, 227, 578, 366, 181, 338, 863, 408, 24, 466, 719, 430, 260, 114, 305, 64, 142, 1230, 193, 228, 579, 367, 182, 339, 864, 409, 25, 467, 720, 431, 261, 115, 306, 65, 143, 1231, 194, 229, 580, 368, 183, 340, 865, 410, 26, 468, 361, 432, 262, 116, 307, 66, 144, 1232, 195, 230, 581, 369, 184, 341, 866, 411, 27, 469, 362, 433, 263, 117, 308, 67, 145, 1233, 196, 231, 582, 370, 185, 342, 867, 412, 28, 470, 363, 434, 264, 118, 309, 68, 146, 1234, 197, 232, 583, 371, 186, 343, 868, 413, 29, 471, 364, 435, 265, 119, 310, 69, 147, 1235, 198, 233, 584, 372, 187, 344, 869, 414, 30, 472, 365, 436, 266, 120, 311, 70, 148, 1236, 199, 234, 585, 373, 188, 345, 870, 415, 31, 473, 366, 437, 267, 121, 312, 71, 149, 1237, 200, 235, 586, 374, 189, 346, 871, 416, 32, 474, 367, 438, 268, 122, 313, 72, 150, 1238, 201, 236, 587, 375, 190, 347, 872, 417, 33, 475, 368, 439, 269, 123, 314, 73, 151, 1239, 202, 237, 588, 376, 191, 348, 873, 418, 34, 476, 369, 440, 1, 124, 315, 74, 152, 1240, 203, 238, 589, 377, 192, 349, 874, 419, 35, 477, 370, 441, 2, 125, 316, 75, 153, 1241, 204, 239, 590, 378, 193, 350, 875, 420, 36, 478, 371, 442, 3, 126, 317, 76, 154, 1242, 205, 240, 591, 379, 194, 351, 876, 421, 37, 479, 372, 443, 4, 127, 318, 77, 155, 1243, 206, 241, 592, 380, 195, 352, 877, 422, 38, 480, 373, 444, 5, 128, 319, 78, 156, 1244, 207, 242, 593, 381, 196, 353, 878, 423, 39, 481, 374, 445, 6, 129, 320, 79, 157, 1245, 208, 243, 594, 382, 197, 354, 879, 424, 40, 482, 375, 446, 7, 130, 321, 80, 158, 1246, 209, 244, 595, 383, 198, 355, 880, 425, 41, 483, 376, 447, 8, 131, 322, 81, 159, 1247, 210, 245, 596, 384, 199, 356, 881, 426, 42, 484, 377, 448, 9, 132, 323, 82, 160, 1248, 211, 246, 597, 385, 200, 357, 882, 427, 43, 485, 378, 449, 10, 133, 324, 83, 161, 1249, 212, 247, 598, 386, 201, 358, 883, 428, 44, 486, 379, 361, 11, 134, 325, 84, 162, 1250, 213, 248, 599, 387, 202, 359, 884, 429, 45, 487, 380, 362, 12, 135, 326, 85, 163, 1251, 214, 249, 600, 388, 203, 360, 885, 430, 46, 488, 381, 363, 13, 136, 327, 86, 164, 1252, 215, 250, 601, 389, 204, 1, 886, 431, 47, 489, 382, 364, 14, 137, 328, 87, 165, 1253, 216, 251, 602, 390, 205, 2, 887, 432, 48, 490, 383, 365, 15, 138, 329, 88, 166, 1254, 217, 252, 603, 391, 206, 3, 888, 433, 49, 491, 384, 366, 16, 139, 330, 89, 167, 1255, 218, 253, 604, 392, 207, 4, 889, 434, 50, 492, 385, 367, 17, 140, 331, 90, 168, 1256, 219, 254, 605, 393, 208, 5, 890, 435, 51, 493, 386, 368, 18, 141, 332, 91, 169, 1257, 220, 255, 606, 394, 209, 6, 891, 436, 52, 494, 387, 369, 19, 142, 333, 92, 170, 1258, 221, 256, 607, 395, 210, 7, 892, 437, 53, 495, 388, 370, 20, 143, 334, 93, 171, 1259, 222, 257, 608, 396, 211, 8, 893, 438, 54, 496, 389, 371, 21, 144, 335, 94, 172, 1260, 223, 258, 609, 397, 212, 9, 894, 439, 55, 497, 390, 372, 22, 145, 336, 95, 173, 1261, 224, 259, 610, 398, 213, 10, 895, 440, 56, 498, 391, 373, 23, 146, 337, 96, 174, 1262, 225, 260, 611, 399, 214, 11, 896, 441, 57, 499, 392, 374, 24, 147, 338, 97, 175, 1263, 226, 261, 612, 400, 215, 12, 897, 442, 58, 500, 393, 375, 25, 148, 339, 98, 176, 1264, 227, 262, 613, 401, 216, 13, 898, 443, 59, 501, 394, 376, 26, 149, 340, 99, 177, 1265, 228, 263, 614, 402, 217, 14, 899, 444, 60, 502, 395, 377, 27, 150, 341, 100, 178, 1266, 229, 264, 615, 403, 218, 15, 900, 445, 61, 503, 396, 378, 28, 151, 342, 101, 179, 1267, 230, 265, 616, 404, 219, 16, 901, 446, 62, 504, 397, 379, 29, 152, 343, 102, 180, 1268, 231, 266, 617, 405, 220, 17, 902, 447, 63, 505, 398, 380, 30, 153, 344, 103, 181, 1269, 232, 267, 618, 406, 221, 18, 903, 448, 64, 506, 399, 381, 31, 154, 345, 104, 182, 1270, 233, 268, 619, 407, 222, 19, 904, 449, 65, 507, 400, 382, 32, 155, 346, 105, 183, 1271, 234, 269, 620, 408, 223, 20, 905, 450, 66, 508, 401, 383, 33, 156, 347, 106, 184, 1272, 235, 270, 621, 409, 224, 21, 906, 451, 67, 509, 402, 384, 34, 157, 348, 107, 185, 1273, 236, 271, 622, 410, 225, 22, 907, 452, 68, 510, 403, 385, 35, 158, 349, 108, 186, 1274, 237, 272, 623, 411, 226, 23, 908, 453, 69, 511, 404, 386, 36, 159, 350, 109, 187, 1275, 238, 273, 624, 412, 227, 24, 909, 454, 70, 512, 405, 387, 37, 160, 351, 110, 188, 1276, 239, 274, 625, 413, 228, 25, 910, 455, 71, 513, 406, 388, 38, 161, 352, 111, 189, 1277, 240, 275, 626, 414, 229, 26, 911, 456, 72, 514, 407, 389, 39, 162, 353, 112, 190, 1278, 241, 276, 627, 415, 230, 27, 912, 457, 73, 515, 408, 390, 40, 163, 354, 113, 191, 1279, 242, 277, 628, 416, 231, 28, 913, 458, 74, 516, 409, 391, 41, 164, 355, 114, 192, 1280, 243, 278, 629, 417, 232, 29, 914, 459, 75, 517, 410, 392, 42, 165, 356, 115, 193, 1281, 244, 279, 630, 418, 233, 30, 915, 460, 76, 518, 411, 393, 43, 166, 357, 116, 194, 1282, 245, 280, 631, 419, 234, 31, 916, 461, 77, 519, 412, 394, 44, 167, 358, 117, 195, 1283, 246, 281, 632, 420, 235, 32, 917, 462, 78, 520, 413, 395, 45, 168, 359, 118, 196, 1284, 247, 282, 633, 421, 236, 33, 918, 463, 79, 521, 414, 396, 46, 169, 360, 119, 197, 1285, 248, 283, 634, 422, 237, 34, 919, 464, 80, 522, 415, 397, 47, 170, 1, 120, 198, 1286, 249, 284, 635, 423, 238, 35, 920, 465, 81, 523, 416, 398, 48, 171, 2, 121, 199, 1287, 250, 285, 636, 424, 239, 36, 921, 466, 82, 524, 417, 399, 49, 172, 3, 122, 200, 1288, 251, 286, 637, 425, 240, 37, 922, 467, 83, 525, 418, 400, 50, 173, 4, 123, 201, 1289, 252, 287, 638, 426, 241, 38, 923, 468, 84, 526, 419, 401, 51, 174, 5, 124, 202, 1290, 253, 288, 639, 427, 242, 39, 924, 469, 85, 527, 420, 402, 52, 175, 6, 125, 203, 1291, 254, 289, 640, 428, 243, 40, 925, 470, 86, 528, 421, 403, 53, 176, 7, 126, 204, 1292, 255, 290, 641, 429, 244, 41, 926, 471, 87, 529, 422, 404, 54, 177, 8, 127, 205, 1293, 256, 291, 642, 430, 245, 42, 927, 472, 88, 530, 423, 405, 55, 178, 9, 128, 206, 1294, 257, 292, 643, 431, 246, 43, 928, 473, 89, 531, 424, 406, 56, 179, 10, 129, 207, 1295, 258, 293, 644, 432, 247, 44, 929, 474, 90, 532, 425, 407, 57, 180, 11, 130, 208, 1296, 259, 294, 645, 433, 248, 45, 930, 475, 91, 533, 426, 408, 58, 181, 12, 131, 209, 1297, 260, 295, 646, 434, 249, 46, 931, 476, 92, 534, 427, 409, 59, 182, 13, 132, 210, 1298, 261, 296, 647, 435, 250, 47, 932, 477, 93, 535, 428, 410, 60, 183, 14, 133, 211, 1299, 262, 297, 648, 436, 251, 48, 933, 478, 94, 536, 429, 411, 61, 184, 15, 134, 212, 1300, 263, 298, 649, 437, 252, 49, 934, 479, 95, 537, 430, 412, 62, 185, 16, 135, 213, 1301, 264, 299, 650, 438, 253, 50, 935, 480, 96, 538, 431, 413, 63, 186, 17, 136, 214, 1302, 265, 300, 651, 439, 254, 51, 936, 481, 97, 539, 432, 414, 64, 187, 18, 137, 215, 1303, 266, 301, 652, 440, 255, 52, 937, 482, 98, 540, 433, 415, 65, 188, 19, 138, 216, 1304, 267, 302, 653, 441, 256, 53, 938, 483, 99, 541, 434, 416, 66, 189, 20, 139, 217, 1305, 268, 303, 654, 442, 257, 54, 939, 484, 100, 542, 435, 417, 67, 190, 21, 140, 218, 1306, 269, 304, 655, 443, 258, 55, 940, 485, 101, 543, 436, 418, 68, 191, 22, 141, 219, 1307, 270, 305, 656, 444, 259, 56, 941, 486, 102, 544, 437, 419, 69, 192, 23, 142, 220, 1308, 271, 306, 657, 445, 260, 57, 942, 487, 103, 545, 438, 420, 70, 193, 24, 143, 221, 1309, 272, 307, 658, 446, 261, 58, 943, 488, 104, 546, 439, 421, 71, 194, 25, 144, 222, 1310, 273, 308, 659, 447, 262, 59, 944, 489, 105, 547, 440, 422, 72, 195, 26, 145, 223, 1311, 274, 309, 660, 448, 263, 60, 945, 490, 106, 548, 441, 423, 73, 196, 27, 146, 224, 1312, 275, 310, 661, 449, 264, 61, 946, 491, 107, 549, 442, 424, 74, 197, 28, 147, 225, 1313, 276, 311, 662, 450, 265, 62, 947, 492, 108, 550, 443, 425, 75, 198, 29, 148, 226, 1314, 277, 312, 663, 451, 266, 63, 948, 493, 109, 551, 444, 426, 76, 199, 30, 149, 227, 1315, 278, 313, 664, 452, 267, 64, 949, 494, 110, 552, 445, 427, 77, 200, 31, 150, 228, 1316, 279, 314, 665, 453, 268, 65, 950, 495, 111, 553, 446, 428, 78, 201, 32, 151, 229, 1317, 280, 315, 666, 454, 269, 66, 951, 496, 112, 554, 447, 429, 79, 202, 33, 152, 230, 1318, 281, 316, 667, 455, 270, 67, 952, 497, 113, 555, 448, 430, 80, 203, 34, 153, 231, 1319, 282, 317, 668, 456, 271, 68, 953, 498, 114, 556, 449, 431, 81, 204, 35, 154, 232, 1320, 283, 318, 669, 457, 272, 69, 954, 499, 115, 557, 450, 432, 82, 205, 36, 155, 233, 1321, 284, 319, 670, 458, 273, 70, 955, 500, 116, 558, 451, 433, 83, 206, 37, 156, 234, 1322, 285, 320, 671, 459, 274, 71, 956, 501, 117, 559, 452, 434, 84, 207, 38, 157, 235, 1323, 286, 321, 672, 460, 275, 72, 957, 502, 118, 560, 453, 435, 85, 208, 39, 158, 236, 1324, 287, 322, 673, 461, 276, 73, 958, 503, 119, 561, 454, 436, 86, 209, 40, 159, 237, 1325, 288, 323, 674, 462, 277, 74, 959, 504, 120, 562, 455, 437, 87, 210, 41, 160, 238, 1326, 289, 324, 675, 463, 278, 75, 960, 505, 121, 563, 456, 438, 88, 211, 42, 161, 239, 1327, 290, 325, 676, 464, 279, 76, 961, 506, 122, 564, 457, 439, 89, 212, 43, 162, 240, 1328, 291, 326, 677, 465, 280, 77, 962, 507, 123, 565, 458, 440, 90, 213, 44, 163, 241, 1329, 292, 327, 678, 466, 281, 78, 963, 508, 124, 566, 459, 441, 91, 214, 45, 164, 242, 1330, 293, 328, 679, 467, 282, 79, 964, 509, 125, 567, 460, 442, 1, 215, 46, 165, 243, 1331, 294, 329, 680, 468, 283, 80, 965, 510, 126, 568, 461, 443, 2, 216, 47, 166, 244, 1332, 295, 330, 361, 469, 284, 81, 966, 511, 127, 569, 462, 444, 3, 217, 48, 167, 245, 1333, 296, 331, 362, 470, 285, 82, 967, 512, 128, 570, 463, 445, 4, 218, 49, 168, 246, 1334, 297, 332, 363, 471, 286, 83, 968, 513, 129, 571, 464, 446, 5, 219, 50, 169, 247, 1335, 298, 333, 364, 472, 287, 84, 969, 514, 130, 572, 465, 447, 6, 220, 51, 170, 248, 1336, 299, 334, 365, 473, 288, 85, 970, 515, 131, 573, 466, 448, 7, 221, 52, 171, 249, 1337, 300, 335, 366, 474, 289, 86, 971, 516, 132, 574, 467, 449, 8, 222, 53, 172, 250, 1338, 301, 336, 367, 475, 290, 87, 972, 517, 133, 575, 468, 450, 9, 223, 54, 173, 251, 1339, 302, 337, 368, 476, 291, 88, 973, 518, 134, 576, 469, 451, 10, 224, 55, 174, 252, 1340, 303, 338, 369, 477, 292, 89, 974, 519, 135, 577, 470, 452, 11, 225, 56, 175, 253, 1341, 304, 339, 370, 478, 293, 90, 975, 520, 136, 578, 471, 453, 12, 226, 57, 176, 254, 1342, 305, 340, 371, 479, 294, 91, 976, 521, 137, 579, 472, 454, 13, 227, 58, 177, 255, 1343, 306, 341, 372, 480, 295, 92, 977, 522, 138, 580, 473, 455, 14, 228, 59, 178, 256, 1344, 307, 342, 373, 481, 296, 93, 978, 523, 139, 581, 474, 456, 15, 229, 60, 179, 257, 1345, 308, 343, 374, 482, 297, 94, 979, 524, 140, 582, 475, 457, 16, 230, 61, 180, 258, 1346, 309, 344, 375, 483, 298, 95, 980, 525, 141, 583, 476, 458, 17, 231, 62, 181, 259, 1347, 310, 345, 376, 484, 299, 96, 981, 526, 142, 584, 477, 459, 18, 232, 63, 182, 260, 1348, 311, 346, 377, 485, 300, 97, 982, 527, 143, 585, 478, 460, 19, 233, 64, 183, 261, 1349, 312, 347, 378, 486, 301, 98, 983, 528, 144, 586, 479, 461, 20, 234, 65, 184, 262, 1350, 313, 348, 379, 487, 302, 99, 984, 529, 145, 587, 480, 462, 21, 235, 66, 185, 263, 1351, 314, 349, 380, 488, 303, 100, 985, 530, 146, 588, 481, 463, 22, 236, 67, 186, 264, 1352, 315, 350, 381, 489, 304, 101, 986, 531, 147, 589, 482, 464, 23, 237, 68, 187, 265, 1353, 316, 351, 382, 490, 305, 102, 987, 532, 148, 590, 483, 465, 24, 238, 69, 188, 266, 1354, 317, 352, 383, 491, 306, 103, 988, 533, 149, 591, 484, 466, 25, 239, 70, 189, 267, 1355, 318, 353, 384, 492, 307, 104, 989, 534, 150, 592, 485, 467, 26, 240, 71, 190, 268, 1356, 319, 354, 385, 493, 308, 105, 990, 535, 151, 593, 486, 468, 27, 241, 72, 191, 269, 1357, 320, 355, 386, 494, 309, 106, 991, 536, 152, 594, 487, 469, 28, 242, 73, 192, 270, 1358, 321, 356, 387, 495, 310, 107, 992, 537, 153, 595, 488, 470, 29, 243, 74, 193, 271, 1359, 322, 357, 388, 496, 311, 108, 993, 538, 154, 596, 489, 471, 30, 244, 75, 194, 272, 1360, 323, 358, 389, 497, 312, 109, 994, 539, 155, 597, 490, 472, 31, 245, 76, 195, 273, 1361, 324, 359, 390, 498, 313, 110, 995, 540, 156, 598, 491, 473, 32, 246, 77, 196, 274, 1362, 325, 360, 391, 499, 314, 111, 996, 541, 157, 599, 492, 474, 33, 247, 78, 197, 275, 1363, 326, 1, 392, 500, 315, 112, 997, 542, 158, 600, 493, 475, 34, 248, 79, 198, 276, 1364, 327, 2, 393, 501, 316, 113, 998, 543, 159, 601, 494, 476, 35, 249, 80, 199, 277, 1365, 328, 3, 394, 502, 317, 114, 999, 544, 160, 602, 495, 477, 36, 250, 81, 200, 278, 1366, 329, 4, 395, 503, 318, 115, 1000, 545, 161, 603, 496, 478, 37, 251, 82, 201, 279, 1367, 330, 5, 396, 504, 1, 116, 1001, 546, 162, 604, 497, 479, 38, 252, 83, 202, 280, 1368, 331, 6, 397, 505, 2, 117, 1002, 547, 163, 605, 498, 480, 39, 253, 84, 203, 281, 1369, 332, 7, 398, 506, 3, 118, 1003, 548, 164, 606, 499, 481, 40, 254, 85, 204, 282, 1370, 333, 8, 399, 507, 4, 119, 1004, 549, 165, 607, 500, 482, 41, 255, 86, 205, 283, 1371, 334, 9, 400, 508, 5, 120, 1005, 550, 166, 608, 501, 483, 42, 256, 87, 206, 284, 1372, 335, 10, 361, 509, 6, 121, 1006, 551, 167, 609, 502, 484, 43, 257, 88, 207, 285, 1373, 336, 11, 362, 510, 7, 122, 1007, 552, 168, 610, 503, 485, 44, 258, 89, 208, 286, 1374, 337, 12, 363, 511, 8, 123, 1008, 553, 169, 611, 504, 486, 45, 259, 90, 209, 287, 1375, 338, 13, 364, 512, 9, 124, 1009, 554, 170, 612, 505, 487, 46, 260, 91, 210, 288, 1376, 339, 14, 365, 513, 10, 125, 1010, 555, 171, 613, 506, 488, 47, 261, 92, 211, 289, 1377, 340, 15, 366, 514, 11, 126, 1011, 556, 172, 614, 507, 489, 48, 262, 93, 212, 290, 1378, 341, 16, 367, 515, 12, 127, 1012, 557, 173, 615, 508, 490, 49, 263, 94, 213, 291, 1379, 342, 17, 368, 516, 13, 128, 1013, 558, 174, 616, 509, 491, 50, 264, 95, 214, 292, 1380, 343, 18, 369, 517, 14, 129, 1014, 559, 175, 617, 510, 492, 51, 265, 96, 215, 293, 1381, 344, 19, 370, 518, 15, 130, 1015, 560, 176, 618, 511, 493, 52, 266, 97, 216, 294, 1382, 345, 20, 371, 519, 16, 131, 1016, 561, 177, 619, 512, 494, 53, 267, 98, 217, 295, 1383, 346, 21, 372, 520, 17, 132, 1017, 562, 178, 620, 513, 495, 54, 268, 99, 218, 296, 1384, 347, 22, 373, 521, 18, 133, 1018, 563, 179, 621, 514, 496, 55, 269, 100, 219, 297, 1385, 348, 23, 374, 522, 19, 134, 1019, 564, 180, 622, 515, 497, 56, 270, 101, 220, 298, 1386, 349, 24, 375, 523, 20, 135, 1020, 565, 181, 623, 516, 498, 57, 271, 102, 221, 299, 1387, 350, 25, 376, 524, 21, 136, 1021, 566, 182, 624, 517, 499, 58, 272, 103, 222, 300, 1388, 351, 26, 377, 525, 22, 137, 1022, 567, 183, 625, 518, 500, 59, 273, 104, 223, 301, 1389, 352, 27, 378, 526, 23, 138, 1023, 568, 184, 626, 519, 501, 60, 274, 105, 224, 302, 1390, 353, 28, 379, 527, 24, 139, 1024, 569, 185, 627, 520, 502, 61, 275, 106, 225, 303, 1391, 354, 29, 380, 528, 25, 140, 1025, 570, 186, 628, 521, 503, 62, 276, 107, 226, 304, 1392, 355, 30, 381, 529, 26, 141, 1026, 571, 187, 629, 522, 504, 63, 277, 108, 227, 305, 1393, 356, 31, 382, 530, 27, 142, 1027, 572, 188, 630, 523, 505, 64, 278, 109, 228, 306, 1394, 357, 32, 383, 531, 28, 143, 1028, 573, 189, 631, 524, 506, 65, 279, 110, 229, 307, 1395, 358, 33, 384, 532, 29, 144, 1029, 574, 190, 632, 525, 507, 66, 280, 111, 230, 308, 1396, 359, 34, 385, 533, 30, 145, 1030, 575, 191, 633, 526, 508, 67, 281, 112, 231, 309, 1397, 360, 35, 386, 534, 31, 146, 1031, 576, 192, 634, 527, 509, 68, 282, 113, 232, 310, 1398, 1, 36, 387, 535, 32, 147, 1032, 577, 193, 635, 528, 510, 69, 283, 114, 233, 311, 1399, 2, 37, 388, 536, 33, 148, 1033, 578, 194, 636, 529, 511, 70, 284, 115, 234, 312, 1400, 3, 38, 389, 537, 34, 149, 1034, 579, 195, 637, 530, 512, 71, 285, 116, 235, 313, 1401, 4, 39, 390, 538, 35, 150, 1035, 580, 196, 638, 531, 513, 72, 286, 117, 236, 314, 1402, 5, 40, 391, 539, 36, 151, 1036, 581, 197, 639, 532, 514, 73, 287, 118, 237, 315, 1403, 6, 41, 392, 540, 37, 152, 1037, 582, 198, 640, 533, 515, 74, 288, 119, 238, 316, 1404, 7, 42, 393, 541, 38, 153, 1038, 583, 199, 641, 534, 516, 75, 289, 120, 239, 317, 1405, 8, 43, 394, 542, 39, 154, 1039, 584, 200, 642, 535, 517, 76, 290, 121, 240, 318, 1406, 9, 44, 395, 543, 40, 155, 1040, 585, 201, 643, 536, 518, 77, 291, 122, 241, 319, 1407, 10, 45, 396, 544, 41, 156, 1041, 586, 202, 644, 537, 519, 78, 292, 123, 242, 320, 1408, 11, 46, 397, 545, 42, 157, 1042, 587, 203, 645, 538, 520, 79, 293, 124, 243, 321, 1409, 12, 47, 398, 546, 1, 158, 1043, 588, 204, 646, 539, 521, 80, 294, 125, 244, 322, 1410, 13, 48, 399, 547, 2, 159, 1044, 589, 205, 647, 540, 522, 81, 295, 126, 245, 323, 1411, 14, 49, 400, 548, 3, 160, 1045, 590, 206, 648, 541, 523, 82, 296, 127, 246, 324, 1412, 15, 50, 401, 549, 4, 161, 1046, 591, 207, 649, 542, 524, 83, 297, 128, 247, 325, 1413, 16, 51, 402, 550, 5, 162, 1047, 592, 208, 650, 543, 525, 84, 298, 129, 248, 326, 1414, 17, 52, 403, 551, 6, 163, 1048, 593, 209, 651, 544, 526, 85, 299, 130, 249, 327, 1415, 18, 53, 404, 552, 7, 164, 1049, 594, 210, 652, 545, 527, 86, 300, 131, 250, 328, 1416, 19, 54, 405, 553, 8, 165, 1050, 595, 211, 653, 546, 528, 87, 301, 132, 251, 329, 1417, 20, 55, 406, 554, 9, 166, 1051, 596, 212, 654, 547, 529, 88, 302, 133, 252, 330, 1418, 21, 56, 407, 555, 10, 167, 1052, 597, 213, 655, 548, 530, 89, 303, 134, 253, 331, 1419, 22, 57, 408, 556, 11, 168, 1053, 598, 214, 656, 549, 531, 90, 304, 135, 254, 332, 1420, 23, 58, 409, 557, 12, 169, 1054, 599, 215, 657, 550, 532, 91, 305, 136, 255, 333, 1421, 24, 59, 410, 558, 13, 170, 1055, 600, 216, 658, 551, 533, 92, 306, 137, 256, 334, 1422, 25, 60, 411, 559, 14, 171, 1056, 601, 217, 659, 552, 534, 93, 307, 138, 257, 335, 1423, 26, 61, 412, 560, 15, 172, 1057, 602, 218, 660, 553, 535, 94, 308, 139, 258, 336, 1424, 27, 62, 413, 561, 16, 173, 1058, 603, 219, 661, 554, 536, 95, 309, 140, 259, 337, 1425, 28, 63, 414, 562, 17, 174, 1059, 604, 220, 662, 555, 537, 96, 310, 141, 260, 338, 1426, 29, 64, 415, 563, 18, 175, 1060, 605, 221, 663, 556, 538, 97, 311, 142, 261, 339, 1427, 30, 65, 416, 564, 19, 176, 1061, 606, 222, 664, 557, 539, 98, 312, 143, 262, 340, 1428, 31, 66, 417, 565, 20, 177, 1062, 607, 223, 665, 558, 540, 99, 313, 144, 263, 341, 1429, 32, 67, 418, 566, 21, 178, 1063, 608, 224, 666, 559, 541, 100, 314, 145, 264, 342, 1430, 33, 68, 419, 567, 22, 179, 1064, 609, 225, 667, 560, 542, 101, 315, 146, 265, 343, 1431, 34, 69, 420, 568, 23, 180, 1065, 610, 226, 668, 561, 543, 102, 316, 147, 266, 344, 1432, 35, 70, 421, 569, 24, 181, 1066, 611, 227, 669, 562, 544, 103, 317, 148, 267, 345, 1433, 36, 71, 422, 570, 25, 182, 1067, 612, 228, 670, 563, 545, 104, 318, 149, 268, 346, 1434, 37, 72, 423, 571, 26, 183, 1068, 613, 229, 671, 564, 546, 105, 319, 150, 269, 347, 1435, 38, 73, 424, 572, 27, 184, 1069, 614, 230, 672, 565, 547, 106, 320, 151, 270, 348, 1436, 39, 74, 425, 573, 28, 185, 1070, 615, 231, 673, 566, 548, 107, 321, 152, 271, 349, 1437, 40, 75, 426, 574, 29, 186, 1071, 616, 232, 674, 567, 549, 108, 322, 153, 272, 350, 1438, 41, 76, 427, 575, 30, 187, 1072, 617, 233, 675, 568, 550, 109, 323, 154, 273, 351, 1439, 42, 77, 428, 576, 31, 188, 1073, 618, 234, 676, 569, 551, 110, 324, 155, 274, 352, 1440, 43, 78, 429, 577, 32, 189, 1074, 619, 235, 677, 570, 552, 111, 325, 156, 275, 353, 1081, 44, 79, 430, 578, 33, 190, 1075, 620, 236, 678, 571, 553, 112, 326, 157, 276, 354, 1082, 45, 80, 431, 579, 34, 191, 1076, 621, 237, 679, 572, 554, 113, 327, 158, 277, 355, 1083, 46, 81, 432, 580, 35, 192, 1077, 622, 238, 680, 573, 555, 114, 328, 159, 278, 356, 1084, 47, 82, 433, 581, 36, 193, 1078, 623, 239, 681, 574, 556, 115, 329, 160, 279, 357, 1085, 48, 83, 434, 582, 37, 194, 1079, 624, 240, 682, 575, 557, 116, 330, 161, 280, 358, 1086, 49, 84, 435, 583, 38, 195, 1080, 625, 241, 683, 576, 558, 117, 331, 162, 281, 359, 1087, 50, 85, 436, 584, 39, 196, 721, 626, 242, 684, 577, 559, 118, 332, 163, 282, 360, 1088, 51, 86, 437, 585, 40, 197, 722, 627, 243, 685, 578, 560, 119, 333, 164, 283, 1, 1089, 52, 87, 438, 586, 41, 198, 723, 628, 244, 686, 579, 561, 120, 334, 165, 284, 2, 1090, 53, 88, 439, 587, 42, 199, 724, 629, 245, 687, 580, 562, 121, 335, 166, 285, 3, 1091, 54, 89, 440, 588, 43, 200, 725, 630, 246, 688, 581, 563, 122, 336, 167, 286, 4, 1092, 55, 90, 441, 589, 44, 201, 726, 631, 247, 689, 582, 564, 123, 337, 168, 287, 5, 1093, 56, 91, 442, 590, 45, 202, 727, 632, 248, 690, 583, 565, 124, 338, 169, 288, 6, 1094, 57, 92, 443, 591, 46, 203, 728, 633, 249, 691, 584, 566, 125, 339, 170, 289, 7, 1095, 58, 93, 444, 592, 47, 204, 729, 634, 250, 692, 585, 567, 126, 340, 171, 290, 8, 1096, 59, 94, 445, 593, 48, 205, 730, 635, 251, 693, 586, 568, 127, 341, 172, 291, 9, 1097, 60, 95, 446, 594, 49, 206, 731, 636, 252, 694, 587, 569, 128, 342, 173, 292, 10, 1098, 61, 96, 447, 595, 50, 207, 732, 637, 253, 695, 588, 570, 129, 343, 174, 293, 11, 1099, 62, 97, 448, 596, 51, 208, 733, 638, 254, 696, 589, 571, 130, 344, 175, 294, 12, 1100, 63, 98, 449, 597, 52, 209, 734, 639, 255, 697, 590, 572, 131, 345, 176, 295, 13, 1101, 64, 99, 450, 598, 53, 210, 735, 640, 256, 698, 591, 573, 132, 346, 177, 296, 14, 1102, 65, 100, 451, 599, 54, 211, 736, 641, 257, 699, 592, 574, 133, 347, 178, 297, 15, 1103, 66, 101, 452, 600, 55, 212, 737, 642, 258, 700, 593, 575, 134, 348, 179, 298, 16, 1104, 67, 102, 453, 601, 56, 213, 738, 643, 259, 701, 594, 576, 135, 349, 180, 299, 17, 1105, 68, 103, 454, 602, 57, 214, 739, 644, 260, 702, 595, 577, 136, 350, 181, 300, 18, 1106, 69, 104, 455, 603, 58, 215, 740, 645, 261, 703, 596, 578, 137, 351, 182, 301, 19, 1107, 70, 105, 456, 604, 59, 216, 741, 646, 262, 704, 597, 579, 138, 352, 183, 302, 20, 1108, 71, 106, 457, 605, 60, 217, 742, 647, 263, 705, 598, 580, 139, 353, 184, 303, 21, 1109, 72, 107, 458, 606, 61, 218, 743, 648, 264, 706, 599, 581, 140, 354, 185, 304, 22, 1110, 73, 108, 459, 607, 62, 219, 744, 649, 265, 707, 600, 582, 141, 355, 186, 305, 23, 1111, 74, 109, 460, 608, 63, 220, 745, 650, 266, 708, 601, 583, 142, 356, 187, 306, 24, 1112, 75, 110, 461, 609, 64, 221, 746, 651, 267, 709, 602, 584, 143, 357, 188, 307, 25, 1113, 76, 111, 462, 610, 65, 222, 747, 652, 268, 710, 603, 585, 144, 358, 189, 308, 26, 1114, 77, 112, 463, 611, 66, 223, 748, 653, 269, 711, 604, 586, 145, 359, 190, 309, 27, 1115, 78, 113, 464, 612, 67, 224, 749, 654, 270, 712, 605, 587, 146, 360, 191, 310, 28, 1116, 79, 114, 465, 613, 68, 225, 750, 655, 271, 713, 606, 588, 147, 1, 192, 311, 29, 1117, 80, 115, 466, 614, 69, 226, 751, 656, 272, 714, 607, 589, 148, 2, 193, 312, 30, 1118, 81, 116, 467, 615, 70, 227, 752, 657, 273, 715, 608, 590, 149, 3, 194, 313, 31, 1119, 82, 117, 468, 616, 71, 228, 753, 658, 274, 716, 609, 591, 150, 4, 195, 314, 32, 1120, 83, 118, 469, 617, 72, 229, 754, 659, 275, 717, 610, 592, 151, 5, 196, 315, 33, 1121, 84, 119, 470, 618, 73, 230, 755, 660, 276, 718, 611, 593, 152, 6, 197, 316, 34, 1122, 85, 120, 471, 619, 74, 231, 756, 661, 277, 719, 612, 594, 153, 7, 198, 317, 35, 1123, 86, 121, 472, 620, 75, 232, 757, 662, 278, 720, 613, 595, 154, 8, 199, 318, 36, 1124, 87, 122, 473, 621, 76, 233, 758, 663, 279, 361, 614, 596, 155, 9, 200, 319, 37, 1125, 88, 123, 474, 622, 77, 234, 759, 664, 280, 362, 615, 597, 156, 10, 201, 320, 38, 1126, 89, 124, 475, 623, 78, 235, 760, 665, 281, 363, 616, 598, 157, 11, 202, 321, 39, 1127, 90, 125, 476, 624, 79, 236, 761, 666, 282, 364, 617, 599, 158, 12, 203, 322, 40, 1128, 91, 126, 477, 625, 80, 237, 762, 667, 283, 365, 618, 600, 159, 13, 204, 323, 41, 1129, 92, 127, 478, 626, 81, 238, 763, 668, 284, 366, 619, 601, 160, 14, 205, 324, 42, 1130, 93, 128, 479, 627, 82, 239, 764, 669, 285, 367, 620, 602, 161, 15, 206, 325, 43, 1131, 94, 129, 480, 628, 83, 240, 765, 670, 286, 368, 621, 603, 162, 16, 207, 326, 44, 1132, 95, 130, 481, 629, 84, 241, 766, 671, 287, 369, 622, 604, 163, 17, 208, 327, 45, 1133, 96, 131, 482, 630, 85, 242, 767, 672, 288, 370, 623, 605, 164, 18, 209, 328, 46, 1134, 97, 132, 483, 631, 86, 243, 768, 673, 289, 371, 624, 606, 165, 19, 210, 329, 47, 1135, 98, 133, 484, 632, 87, 244, 769, 674, 290, 372, 625, 607, 166, 20, 211, 330, 48, 1136, 99, 134, 485, 633, 88, 245, 770, 675, 291, 373, 626, 608, 167, 21, 212, 331, 49, 1137, 100, 135, 486, 634, 89, 246, 771, 676, 292, 374, 627, 609, 168, 22, 213, 332, 50, 1138, 101, 136, 487, 635, 90, 247, 772, 677, 293, 375, 628, 610, 169, 23, 214, 333, 51, 1139, 102, 137, 488, 636, 91, 248, 773, 678, 294, 376, 629, 611, 170, 24, 215, 334, 52, 1140, 103, 138, 489, 637, 92, 249, 774, 679, 295, 377, 630, 612, 171, 25, 216, 335, 53, 1141, 104, 139, 490, 638, 93, 250, 775, 680, 296, 378, 631, 613, 172, 26, 217, 336, 54, 1142, 105, 140, 491, 639, 94, 251, 776, 681, 297, 379, 632, 614, 173, 27, 218, 337, 55, 1143, 106, 141, 492, 640, 95, 252, 777, 682, 298, 380, 633, 615, 174, 28, 219, 338, 56, 1144, 107, 142, 493, 641, 96, 253, 778, 683, 299, 381, 634, 616, 175, 29, 220, 339, 57, 1145, 108, 143, 494, 642, 97, 254, 779, 684, 300, 382, 635, 617, 176, 30, 221, 340, 58, 1146, 109, 144, 495, 643, 98, 255, 780, 685, 301, 383, 636, 618, 177, 31, 222, 341, 59, 1147, 110, 145, 496, 644, 99, 256, 781, 686, 302, 384, 637, 619, 178, 32, 223, 342, 60, 1148, 111, 146, 497, 645, 100, 257, 782, 687, 303, 385, 638, 620, 179, 33, 224, 343, 61, 1149, 112, 147, 498, 646, 101, 258, 783, 688, 304, 386, 639, 621, 180, 34, 225, 344, 62, 1150, 113, 148, 499, 647, 102, 259, 784, 689, 305, 387, 640, 622, 181, 35, 226, 345, 63, 1151, 114, 149, 500, 648, 103, 260, 785, 690, 306, 388, 641, 623, 182, 36, 227, 346, 64, 1152, 115, 150, 501, 649, 104, 261, 786, 691, 307, 389, 642, 624, 183, 37, 228, 347, 65, 1153, 116, 151, 502, 650, 105, 262, 787, 692, 308, 390, 643, 625, 184, 38, 229, 348, 66, 1154, 117, 152, 503, 651, 106, 263, 788, 693, 309, 391, 644, 626, 185, 39, 230, 349, 67, 1155, 118, 153, 504, 652, 107, 264, 789, 694, 310, 392, 645, 627, 186, 40, 231, 350, 68, 1156, 119, 154, 505, 653, 108, 265, 790, 695, 311, 393, 646, 628, 187, 41, 232, 351, 69, 1157, 120, 155, 506, 654, 109, 266, 791, 696, 312, 394, 647, 629, 188, 42, 233, 352, 70, 1158, 121, 156, 507, 655, 110, 267, 792, 697, 313, 395, 648, 630, 189, 43, 234, 353, 71, 1159, 122, 157, 508, 656, 111, 268, 793, 698, 314, 396, 649, 631, 190, 44, 235, 354, 72, 1160, 123, 158, 509, 657, 112, 269, 794, 699, 315, 397, 650, 361, 191, 45, 236, 355, 73, 1161, 124, 159, 510, 658, 113, 270, 795, 700, 316, 398, 651, 362, 192, 46, 237, 356, 74, 1162, 125, 160, 511, 659, 114, 271, 796, 701, 317, 399, 652, 363, 193, 47, 238, 357, 75, 1163, 126, 161, 512, 660, 115, 272, 797, 702, 318, 400, 653, 364, 194, 48, 239, 358, 76, 1164, 127, 162, 513, 661, 116, 273, 798, 703, 319, 401, 654, 365, 195, 49, 240, 359, 77, 1165, 128, 163, 514, 662, 117, 274, 799, 704, 320, 402, 655, 366, 196, 50, 241, 360, 78, 1166, 129, 164, 515, 663, 118, 275, 800, 705, 321, 403, 656, 367, 197, 51, 242, 1, 79, 1167, 130, 165, 516, 664, 119, 276, 801, 706, 322, 404, 657, 368, 198, 52, 243, 2, 80, 1168, 131, 166, 517, 665, 120, 277, 802, 707, 323, 405, 658, 369, 199, 53, 244, 3, 81, 1169, 132, 167, 518, 666, 121, 278, 803, 708, 324, 406, 659, 370, 200, 54, 245, 4, 82, 1170, 133, 168, 519, 667, 122, 279, 804, 709, 325, 407, 660, 371, 201, 55, 246, 5, 83, 1171, 134, 169, 520, 668, 123, 280, 805, 710, 326, 408, 661, 372, 202, 56, 247, 6, 84, 1172, 135, 170, 521, 669, 124, 281, 806, 711, 327, 409, 662, 373, 203, 57, 248, 7, 85, 1173, 136, 171, 522, 670, 125, 282, 807, 712, 328, 410, 663, 374, 204, 58, 249, 8, 86, 1174, 137, 172, 523, 671, 126, 283, 808, 713, 329, 411, 664, 375, 205, 59, 250, 9, 87, 1175, 138, 173, 524, 672, 127, 284, 809, 714, 330, 412, 665, 376, 206, 60, 251, 10, 88, 1176, 139, 174, 525, 673, 128, 285, 810, 715, 331, 413, 666, 377, 207, 61, 252, 11, 89, 1177, 140, 175, 526, 674, 129, 286, 811, 716, 332, 414, 667, 378, 208, 62, 253, 12, 90, 1178, 141, 176, 527, 675, 130, 287, 812, 717, 333, 415, 668, 379, 209, 63, 254, 13, 91, 1179, 142, 177, 528, 676, 131, 288, 813, 718, 334, 416, 669, 380, 210, 64, 255, 14, 92, 1180, 143, 178, 529, 677, 132, 289, 814, 719, 335, 417, 670, 381, 211, 65, 256, 15, 93, 1181, 144, 179, 530, 678, 133, 290, 815, 720, 336, 418, 671, 382, 212, 66, 257, 16, 94, 1182, 145, 180, 531, 679, 134, 291, 816, 361, 337, 419, 672, 383, 213, 67, 258, 17, 95, 1183, 146, 181, 532, 680, 135, 292, 817, 362, 338, 420, 673, 384, 214, 68, 259, 18, 96, 1184, 147, 182, 533, 681, 136, 293, 818, 363, 339, 421, 674, 385, 215, 69, 260, 19, 97, 1185, 148, 183, 534, 682, 137, 294, 819, 364, 340, 422, 675, 386, 216, 70, 261, 20, 98, 1186, 149, 184, 535, 683, 138, 295, 820, 365, 341, 423, 676, 387, 217, 71, 262, 21, 99, 1187, 150, 185, 536, 684, 139, 296, 821, 366, 342, 424, 677, 388, 218, 72, 263, 22, 100, 1188, 151, 186, 537, 685, 140, 297, 822, 367, 343, 425, 678, 389, 219, 73, 264, 23, 101, 1189, 152, 187, 538, 686, 141, 298, 823, 368, 344, 426, 679, 390, 220, 74, 265, 24, 102, 1190, 153, 188, 539, 687, 142, 299, 824, 369, 345, 427, 680, 391, 221, 75, 266, 25, 103, 1191, 154, 189, 540, 688, 143, 300, 825, 370, 346, 428, 681, 392, 222, 76, 267, 26, 104, 1192, 155, 190, 541, 689, 144, 301, 826, 371, 347, 429, 682, 393, 223, 77, 268, 27, 105, 1193, 156, 191, 542, 690, 145, 302, 827, 372, 348, 430, 683, 394, 224, 78, 269, 28, 106, 1194, 157, 192, 543, 691, 146, 303, 828, 373, 349, 431, 684, 395, 225, 79, 270, 29, 107, 1195, 158, 193, 544, 692, 147, 304, 829, 374, 350, 432, 685, 396, 226, 80, 271, 30, 108, 1196, 159, 194, 545, 693, 148, 305, 830, 375, 351, 433, 686, 397, 227, 81, 272, 31, 109, 1197, 160, 195, 546, 694, 149, 306, 831, 376, 352, 434, 687, 398, 228, 82, 273, 32, 110, 1198, 161, 196, 547, 695, 150, 307, 832, 377, 353, 435, 688, 399, 229, 83, 274, 33, 111, 1199, 162, 197, 548, 696, 151, 308, 833, 378, 354, 436, 689, 400, 230, 84, 275, 34, 112, 1200, 163, 198, 549, 697, 152, 309, 834, 379, 355, 437, 690, 401, 231, 85, 276, 35, 113, 1201, 164, 199, 550, 698, 153, 310, 835, 380, 356, 438, 691, 402, 232, 86, 277, 36, 114, 1202, 165, 200, 551, 699, 154, 311, 836, 381, 357, 439, 692, 403, 233, 87, 278, 37, 115, 1203, 166, 201, 552, 700, 155, 312, 837, 382, 358, 440, 693, 404, 234, 88, 279, 38, 116, 1204, 167, 202, 553, 701, 156, 313, 838, 383, 359, 441, 694, 405, 235, 89, 280, 39, 117, 1205, 168, 203, 554, 702, 157, 314, 839, 384, 360, 442, 695, 406, 236, 90, 281, 40, 118, 1206, 169, 204, 555, 703, 158, 315, 840, 385, 1, 443, 696, 407, 237, 91, 282, 41, 119, 1207, 170, 205, 556, 704, 159, 316, 841, 386, 2, 444, 697, 408, 238, 92, 283, 42, 120, 1208, 171, 206, 557, 705, 160, 317, 842, 387, 3, 445, 698, 409, 239, 93, 284, 43, 121, 1209, 172, 207, 558, 706, 161, 318, 843, 388, 909, 722, 730, 681, 331, 576, 787, 807, 1950, 1590, 735, 1306, 599, 710, 204, 403, 1090, 761, 910, 723, 731, 682, 332, 577, 788, 808, 1951, 1591, 736, 1307, 600, 711, 205, 404, 1091, 762, 911, 724, 732, 683, 333, 578, 789, 809, 1952, 1592, 737, 1308, 601, 712, 206, 405, 1092, 763, 912, 725, 733, 684, 334, 579, 790, 810, 1953, 1593, 738, 1309, 602, 713, 207, 406, 1093, 764, 913, 726, 734, 685, 335, 580, 791, 811, 1954, 1594, 739, 1310, 603, 714, 208, 407, 1094, 765, 914, 727, 735, 686, 336, 581, 792, 812, 1955, 1595, 740, 1311, 604, 715, 209, 408, 1095, 766, 915, 728, 736, 687, 337, 582, 793, 813, 1956, 1596, 741, 1312, 605, 716, 210, 409, 1096, 767, 916, 729, 737, 688, 338, 583, 794, 814, 1957, 1597, 742, 1313, 606, 717, 211, 410, 1097, 768, 917, 730, 738, 689, 339, 584, 795, 815, 1958, 1598, 743, 1314, 607, 718, 212, 411, 1098, 769, 918, 731, 739, 690, 340, 585, 796, 816, 1959, 1599, 744, 1315, 608, 719, 213, 412, 1099, 770, 919, 732, 740, 691, 341, 586, 797, 817, 1960, 1600, 745, 1316, 609, 720, 214, 413, 1100, 771, 920, 733, 741, 692, 342, 587, 798, 818, 1961, 1601, 746, 1317, 610, 718, 215, 414, 1101, 772, 921, 734, 742, 693, 343, 588, 799, 819, 1962, 1602, 747, 1318, 611, 719, 216, 415, 1102, 773, 922, 735, 743, 694, 344, 589, 800, 820, 1963, 1603, 748, 1319, 612, 720, 217, 416, 1103, 774, 923, 736, 744, 695, 345, 590, 801, 821, 1964, 1604, 749, 1320, 613, 364, 218, 417, 1104, 775, 924, 737, 745, 696, 346, 591, 802, 822, 1965, 1605, 750, 1321, 614, 365, 219, 418, 1105, 776, 925, 738, 746, 697, 347, 592, 803, 823, 1966, 1606, 751, 1322, 615, 366, 220, 419, 1106, 777, 926, 739, 747, 698, 348, 593, 804, 824, 1967, 1607, 752, 1323, 616, 367, 221, 420, 1107, 778, 927, 740, 748, 699, 349, 594, 805, 825, 1968, 1608, 753, 1324, 617, 368, 222, 421, 1108, 779, 928, 741, 749, 700, 350, 595, 806, 826, 1969, 1609, 754, 1325, 618, 369, 223, 422, 1109, 780, 929, 742, 750, 701, 351, 596, 807, 827, 1970, 1610, 755, 1326, 619, 370, 224, 423, 1110, 781, 930, 743, 751, 702, 352, 597, 808, 828, 1971, 1611, 756, 1327, 620, 371, 225, 424, 1111, 782, 931, 744, 752, 703, 353, 598, 809, 829, 1972, 1612, 757, 1328, 621, 372, 226, 425, 1112, 783, 932, 745, 753, 704, 354, 599, 810, 830, 1973, 1613, 758, 1329, 622, 373, 227, 426, 1113, 784, 933, 746, 754, 705, 355, 600, 811, 831, 1974, 1614, 759, 1330, 623, 374, 228, 427, 1114, 785, 934, 747, 755, 706, 356, 601, 812, 832, 1975, 1615, 760, 1331, 624, 375, 229, 428, 1115, 786, 935, 748, 756, 707, 357, 602, 813, 833, 1976, 1616, 761, 1332, 625, 376, 230, 429, 1116, 787, 936, 749, 757, 708, 358, 603, 814, 834, 1977, 1617, 762, 1333, 626, 377, 231, 430, 1117, 788, 937, 750, 758, 709, 359, 604, 815, 835, 1978, 1618, 763, 1334, 627, 378, 232, 431, 1118, 789, 938, 751, 759, 710, 360, 605, 816, 836, 1979, 1619, 764, 1335, 628, 379, 233, 432, 1119, 790, 939, 752, 760, 711, 270, 606, 817, 837, 1980, 1620, 765, 1336, 629, 380, 234, 433, 1120, 791, 940, 753, 761, 712, 271, 607, 818, 838, 1981, 1621, 766, 1337, 630, 381, 235, 434, 1121, 792, 941, 754, 762, 713, 272, 608, 819, 839, 1982, 1622, 767, 1338, 631, 382, 236, 435, 1122, 793, 942, 755, 763, 714, 273, 609, 820, 840, 1983, 1623, 768, 1339, 632, 383, 237, 436, 1123, 794, 943, 756, 764, 715, 274, 610, 821, 841, 1984, 1624, 769, 1340, 633, 384, 238, 437, 1124, 795, 944, 757, 765, 716, 275, 611, 822, 842, 1985, 1625, 770, 1341, 634, 385, 239, 438, 1125, 796, 945, 758, 766, 717, 276, 612, 823, 843, 1986, 1626, 771, 1342, 635, 386, 240, 439, 1126, 797, 946, 759, 767, 718, 277, 613, 824, 844, 1987, 1627, 772, 1343, 636, 387, 241, 440, 1127, 798, 947, 760, 768, 719, 278, 614, 825, 845, 1988, 1628, 773, 1344, 637, 388, 242, 441, 1128, 799, 948, 761, 769, 720, 279, 615, 826, 846, 1989, 1629, 774, 1345, 638, 389, 243, 442, 1129, 800, 949, 762, 770, 450, 280, 616, 827, 847, 1990, 1630, 775, 1346, 639, 390, 244, 443, 1130, 801, 950, 763, 771, 451, 281, 617, 828, 848, 1991, 1631, 776, 1347, 640, 391, 245, 444, 1131, 802, 951, 764, 772, 452, 282, 618, 829, 849, 1992, 1632, 777, 1348, 641, 392, 246, 445, 1132, 803, 952, 765, 773, 453, 283, 619, 830, 850, 1993, 1633, 778, 1349, 642, 393, 247, 446, 1133, 804, 953, 766, 774, 454, 284, 620, 831, 851, 1994, 1634, 779, 1350, 643, 394, 248, 447, 1134, 805, 954, 767, 775, 455, 285, 621, 832, 852, 1995, 1635, 780, 1351, 644, 395, 249, 448, 1135, 806, 955, 768, 776, 456, 286, 622, 833, 853, 1996, 1636, 781, 1352, 645, 396, 250, 449, 1136, 807, 956, 769, 777, 457, 287, 623, 834, 854, 1997, 1637, 782, 1353, 646, 397, 251, 450, 1137, 808, 957, 770, 778, 458, 288, 624, 835, 855, 1998, 1638, 783, 1354, 647, 398, 252, 451, 1138, 809, 958, 771, 779, 459, 289, 625, 836, 856, 1999, 1639, 784, 1355, 648, 399, 253, 452, 1139, 810, 959, 772, 780, 460, 290, 626, 837, 857, 2000, 1640, 785, 1356, 649, 400, 254, 453, 1140, 811, 960, 773, 781, 461, 291, 627, 838, 858, 2001, 1641, 786, 1357, 650, 401, 255, 454, 1141, 812, 961, 774, 782, 462, 292, 628, 839, 859, 2002, 1642, 787, 1358, 651, 402, 256, 455, 1142, 813, 962, 775, 783, 463, 293, 629, 840, 860, 2003, 1643, 788, 1359, 652, 403, 257, 456, 1143, 814, 963, 776, 784, 464, 294, 630, 841, 861, 2004, 1644, 789, 1360, 653, 404, 258, 457, 1144, 815, 964, 777, 785, 465, 295, 631, 842, 862, 2005, 1645, 790, 1361, 654, 405, 259, 458, 1145, 816, 965, 778, 786, 466, 296, 632, 843, 863, 2006, 1646, 791, 1362, 655, 406, 260, 459, 1146, 817, 966, 779, 787, 467, 297, 633, 844, 864, 2007, 1647, 792, 1363, 656, 407, 261, 460, 1147, 818, 967, 780, 788, 468, 298, 634, 845, 865, 2008, 1648, 793, 1364, 657, 408, 262, 461, 1148, 819, 968, 781, 789, 469, 299, 635, 846, 866, 2009, 1649, 794, 1365, 658, 409, 263, 462, 1149, 820, 969, 782, 790, 470, 300, 636, 847, 867, 2010, 1650, 795, 1366, 659, 410, 264, 463, 1150, 821, 970, 783, 791, 471, 301, 637, 848, 868, 2011, 1651, 796, 1367, 660, 411, 265, 464, 1151, 822, 971, 784, 792, 472, 302, 638, 849, 869, 2012, 1652, 797, 1368, 661, 412, 266, 465, 1152, 823, 972, 785, 793, 473, 303, 639, 850, 870, 2013, 1653, 798, 1369, 662, 413, 267, 466, 1153, 824, 973, 786, 794, 474, 304, 640, 851, 871, 2014, 1654, 799, 1370, 663, 414, 268, 467, 1154, 825, 974, 787, 795, 475, 305, 641, 852, 872, 2015, 1655, 800, 1371, 664, 415, 269, 468, 1155, 826, 975, 788, 796, 476, 306, 642, 853, 873, 2016, 1656, 801, 1372, 665, 416, 270, 469, 1156, 827, 976, 789, 797, 477, 307, 643, 854, 874, 2017, 1657, 802, 1373, 666, 417, 271, 470, 1157, 828, 977, 790, 798, 478, 308, 644, 855, 875, 2018, 1658, 803, 1374, 667, 418, 272, 471, 1158, 829, 978, 791, 799, 479, 309, 645, 856, 876, 2019, 1659, 804, 1375, 668, 419, 273, 472, 1159, 830, 979, 792, 800, 480, 310, 646, 857, 877, 2020, 1660, 805, 1376, 669, 420, 274, 473, 1160, 831, 980, 793, 801, 481, 311, 647, 858, 878, 2021, 1661, 806, 1377, 670, 421, 275, 474, 1161, 832, 981, 794, 802, 482, 312, 648, 859, 879, 2022, 1662, 807, 1378, 671, 422, 276, 475, 1162, 833, 982, 795, 803, 483, 313, 649, 860, 880, 2023, 1663, 808, 1379, 672, 423, 277, 476, 1163, 834, 983, 796, 804, 484, 314, 650, 861, 881, 2024, 1664, 809, 1380, 673, 424, 278, 477, 1164, 835, 984, 797, 805, 485, 315, 651, 862, 882, 2025, 1665, 810, 1381, 674, 425, 279, 478, 1165, 836, 985, 798, 806, 486, 316, 652, 863, 883, 2026, 1666, 811, 1382, 675, 426, 280, 479, 1166, 837, 986, 799, 807, 487, 317, 653, 864, 884, 2027, 1667, 812, 1383, 676, 427, 281, 480, 1167, 838, 987, 800, 808, 488, 318, 654, 865, 885, 2028, 1668, 813, 1384, 677, 428, 282, 481, 1168, 839, 988, 801, 809, 489, 319, 655, 866, 886, 2029, 1669, 814, 1385, 678, 429, 283, 482, 1169, 840, 989, 802, 810, 490, 320, 656, 867, 887, 2030, 1670, 815, 1386, 679, 430, 284, 483, 1170, 841, 990, 803, 811, 491, 321, 657, 868, 888, 2031, 1671, 816, 1387, 680, 431, 285, 484, 1171, 842, 991, 804, 812, 492, 322, 658, 869, 889, 2032, 1672, 817, 1388, 681, 432, 286, 485, 1172, 843, 992, 805, 813, 493, 323, 659, 870, 890, 2033, 1673, 818, 1389, 682, 433, 287, 486, 1173, 844, 993, 806, 814, 494, 324, 660, 871, 891, 2034, 1674, 819, 1390, 683, 434, 288, 487, 1174, 845, 994, 807, 815, 495, 325, 661, 872, 892, 2035, 1675, 820, 1391, 684, 435, 289, 488, 1175, 846, 995, 808, 816, 496, 326, 662, 873, 893, 2036, 1676, 821, 1392, 685, 436, 290, 489, 1176, 847, 996, 809, 817, 497, 327, 663, 874, 894, 2037, 1677, 822, 1393, 686, 437, 291, 490, 1177, 848, 997, 810, 818, 498, 328, 664, 875, 895, 2038, 1678, 823, 1394, 687, 438, 292, 491, 1178, 849, 998, 811, 819, 499, 329, 665, 876, 896, 2039, 1679, 824, 1395, 688, 439, 293, 492, 1179, 850, 999, 812, 820, 500, 330, 666, 877, 897, 2040, 1680, 825, 1396, 689, 440, 294, 493, 1180, 851, 1000, 813, 821, 501, 331, 667, 878, 898, 2041, 1681, 826, 1397, 690, 441, 295, 494, 1181, 852, 1001, 814, 822, 502, 332, 668, 879, 899, 2042, 1682, 827, 1398, 691, 442, 296, 495, 1182, 853, 1002, 815, 823, 503, 333, 669, 880, 900, 2043, 1683, 828, 1399, 692, 443, 297, 496, 1183, 854, 1003, 816, 824, 504, 334, 670, 881, 901, 2044, 1684, 829, 1400, 693, 444, 298, 497, 1184, 855, 1004, 817, 825, 505, 335, 671, 882, 902, 2045, 1685, 830, 1401, 694, 445, 299, 498, 1185, 856, 1005, 818, 826, 506, 336, 672, 883, 903, 2046, 1686, 831, 1402, 695, 446, 300, 499, 1186, 857, 1006, 819, 827, 507, 337, 673, 884, 904, 2047, 1687, 832, 1403, 696, 447, 301, 500, 1187, 858, 1007, 820, 828, 508, 338, 674, 885, 905, 2048, 1688, 833, 1404, 697, 448, 302, 501, 1188, 859, 1008, 821, 829, 509, 339, 675, 886, 906, 2049, 1689, 834, 1405, 698, 449, 303, 502, 1189, 860, 1009, 822, 830, 510, 340, 676, 887, 907, 2050, 1690, 835, 1406, 699, 450, 304, 503, 1190, 861, 1010, 823, 831, 511, 341, 677, 888, 908, 2051, 1691, 836, 1407, 700, 451, 305, 504, 1191, 862, 1011, 824, 832, 512, 342, 678, 889, 909, 2052, 1692, 837, 1408, 701, 452, 306, 505, 1192, 863, 1012, 825, 833, 513, 343, 679, 890, 910, 2053, 1693, 838, 1409, 702, 453, 307, 506, 1193, 864, 1013, 826, 834, 514, 344, 680, 891, 911, 2054, 1694, 839, 1410, 703, 454, 308, 507, 1194, 865, 1014, 827, 835, 515, 345, 681, 892, 912, 2055, 1695, 840, 1411, 704, 455, 309, 508, 1195, 866, 1015, 828, 836, 516, 346, 682, 893, 913, 2056, 1696, 841, 1412, 705, 456, 310, 509, 1196, 867, 1016, 829, 837, 517, 347, 683, 894, 914, 2057, 1697, 842, 1413, 706, 457, 311, 510, 1197, 868, 1017, 830, 838, 518, 348, 684, 895, 915, 2058, 1698, 843, 1414, 707, 458, 312, 511, 1198, 869, 1018, 831, 839, 519, 349, 685, 896, 916, 2059, 1699, 844, 1415, 708, 459, 313, 512, 1199, 870, 1019, 832, 840, 520, 350, 686, 897, 917, 2060, 1700, 845, 1416, 709, 460, 314, 513, 1200, 871, 1020, 833, 841, 521, 351, 687, 898, 918, 2061, 1701, 846, 1417, 710, 461, 315, 514, 1201, 872, 1021, 834, 842, 522, 352, 688, 899, 919, 2062, 1702, 847, 1418, 711, 462, 316, 515, 1202, 873, 1022, 835, 843, 523, 353, 689, 900, 920, 2063, 1703, 848, 1419, 712, 463, 317, 516, 1203, 874, 1023, 836, 844, 524, 354, 690, 901, 921, 2064, 1704, 849, 1081, 713, 464, 318, 517, 1204, 875, 1024, 837, 845, 525, 355, 691, 902, 922, 2065, 1705, 850, 1082, 714, 465, 319, 518, 1205, 876, 1025, 838, 846, 526, 356, 692, 903, 923, 2066, 1706, 851, 1083, 715, 466, 320, 519, 1206, 877, 1026, 839, 847, 527, 357, 693, 904, 924, 2067, 1707, 852, 1084, 716, 467, 321, 520, 1207, 878, 1027, 840, 848, 528, 358, 694, 905, 925, 2068, 1708, 853, 1085, 717, 468, 322, 521, 1208, 879, 1028, 841, 849, 529, 359, 695, 906, 926, 2069, 1709, 854, 1086, 718, 469, 323, 522, 1209, 880, 1029, 842, 850, 530, 360, 696, 907, 927, 2070, 1710, 855, 1087, 719, 470, 324, 523, 1210, 881, 1030, 843, 851, 531, 92, 697, 908, 928, 2071, 1711, 856, 1088, 720, 471, 325, 524, 1211, 882, 1031, 844, 852, 532, 93, 698, 909, 929, 2072, 1712, 857, 1089, 681, 472, 326, 525, 1212, 883, 1032, 845, 853, 533, 94, 699, 910, 930, 2073, 1713, 858, 1090, 682, 473, 327, 526, 1213, 884, 1033, 846, 854, 534, 95, 700, 911, 931, 2074, 1714, 859, 1091, 683, 474, 328, 527, 1214, 885, 1034, 847, 855, 535, 96, 701, 912, 932, 2075, 1715, 860, 1092, 684, 475, 329, 528, 1215, 886, 1035, 848, 856, 536, 97, 702, 913, 933, 2076, 1716, 861, 1093, 685, 476, 330, 529, 1216, 887, 1036, 849, 857, 537, 98, 703, 914, 934, 2077, 1717, 862, 1094, 686, 477, 331, 530, 1217, 888, 1037, 850, 858, 538, 99, 704, 915, 935, 2078, 1718, 863, 1095, 687, 478, 332, 531, 1218, 889, 1038, 851, 859, 539, 100, 705, 916, 936, 2079, 1719, 864, 1096, 688, 479, 333, 532, 1219, 890, 1039, 852, 860, 540, 101, 706, 917, 937, 2080, 1720, 865, 1097, 689, 480, 334, 533, 1220, 891, 1040, 853, 861, 541, 102, 707, 918, 938, 2081, 1721, 866, 1098, 690, 481, 335, 534, 1221, 892, 1041, 854, 862, 542, 103, 708, 919, 939, 2082, 1722, 867, 1099, 691, 482, 336, 535, 1222, 893, 1042, 855, 863, 543, 104, 709, 920, 940, 2083, 1723, 868, 1100, 692, 483, 337, 536, 1223, 894, 1043, 856, 864, 544, 105, 710, 921, 941, 2084, 1724, 869, 1101, 693, 484, 338, 537, 1224, 895, 1044, 857, 865, 545, 106, 711, 922, 942, 2085, 1725, 870, 1081, 694, 485, 339, 538, 1225, 896, 1045, 858, 866, 546, 107, 712, 923, 943, 2086, 1726, 871, 1082, 695, 486, 340, 539, 1226, 897, 1046, 859, 867, 547, 108, 713, 924, 944, 2087, 1727, 872, 1083, 696, 487, 341, 540, 1227, 898, 1047, 860, 868, 548, 109, 714, 925, 945, 2088, 1728, 873, 1084, 697, 488, 342, 541, 1228, 899, 1048, 861, 869, 549, 110, 715, 926, 946, 2089, 1729, 874, 1085, 698, 489, 343, 542, 1229, 900, 1049, 862, 870, 550, 111, 716, 927, 947, 2090, 1730, 875, 1086, 699, 490, 344, 543, 1230, 901, 1050, 863, 871, 551, 112, 717, 928, 948, 2091, 1731, 876, 1087, 700, 491, 345, 544, 1231, 902, 1051, 864, 872, 552, 113, 718, 929, 949, 2092, 1732, 877, 1088, 701, 492, 346, 545, 1232, 903, 1052, 865, 873, 553, 114, 719, 930, 950, 2093, 1733, 878, 1089, 702, 493, 347, 546, 1233, 904, 1053, 866, 874, 554, 115, 720, 931, 951, 2094, 1734, 879, 1090, 703, 494, 348, 547, 1234, 905, 1054, 867, 875, 555, 116, 361, 932, 952, 2095, 1735, 880, 1091, 704, 495, 349, 548, 1235, 906, 1055, 868, 876, 556, 117, 362, 933, 953, 2096, 1736, 881, 1092, 705, 496, 350, 549, 1236, 907, 1056, 869, 877, 557, 118, 363, 934, 954, 2097, 1737, 882, 1093, 706, 497, 351, 550, 1237, 908, 1057, 870, 878, 558, 119, 364, 935, 955, 2098, 1738, 883, 1094, 707, 498, 352, 551, 1238, 909, 1058, 871, 879, 559, 120, 365, 936, 956, 2099, 1739, 884, 1095, 708, 499, 353, 552, 1239, 910, 1059, 872, 880, 560, 121, 366, 937, 957, 2100, 1740, 885, 1096, 709, 500, 354, 553, 1240, 911, 1060, 873, 881, 561, 122, 367, 938, 958, 2101, 1741, 886, 1097, 710, 501, 355, 554, 1241, 912, 1061, 874, 882, 562, 123, 368, 939, 959, 2102, 1742, 887, 1098, 711, 502, 356, 555, 1242, 913, 1062, 875, 883, 563, 124, 369, 940, 960, 2103, 1743, 888, 1099, 712, 503, 357, 556, 1243, 914, 1063, 876, 884, 564, 125, 370, 941, 961, 2104, 1744, 889, 1100, 713, 504, 358, 557, 1244, 915, 1064, 877, 885, 565, 126, 371, 942, 962, 2105, 1745, 890, 1101, 714, 505, 359, 558, 1245, 916, 1065, 878, 886, 566, 127, 372, 943, 963, 2106, 1746, 891, 1102, 715, 506, 360, 559, 1246, 917, 1066, 879, 887, 567, 128, 373, 944, 964, 2107, 1747, 892, 1103, 716, 507, 319, 560, 1247, 918, 1067, 880, 888, 568, 129, 374, 945, 965, 2108, 1748, 893, 1104, 717, 508, 320, 561, 1248, 919, 1068, 881, 889, 569, 130, 375, 946, 966, 2109, 1749, 894, 1105, 718, 509, 321, 562, 1249, 920, 1069, 882, 890, 570, 131, 376, 947, 967, 2110, 1750, 895, 1106, 719, 510, 322, 563, 1250, 921, 1070, 883, 891, 571, 132, 377, 948, 968, 2111, 1751, 896, 1107, 720, 511, 323, 564, 1251, 922, 1071, 884, 892, 572, 133, 378, 949, 969, 2112, 1752, 897, 1108, 401, 512, 324, 565, 1252, 923, 1072, 885, 893, 573, 134, 379, 950, 970, 2113, 1753, 898, 1109, 402, 513, 325, 566, 1253, 924, 1073, 886, 894, 574, 135, 380, 951, 971, 2114, 1754, 899, 1110, 403, 514, 326, 567, 1254, 925, 1074, 887, 895, 575, 136, 381, 952, 972, 2115, 1755, 900, 1111, 404, 515, 327, 568, 1255, 926, 1075, 888, 896, 576, 137, 382, 953, 973, 2116, 1441, 901, 1112, 405, 516, 328, 569, 1256, 927, 1076, 889, 897, 577, 138, 383, 954, 974, 2117, 1442, 902, 1113, 406, 517, 329, 570, 1257, 928, 1077, 890, 898, 578, 139, 384, 955, 975, 2118, 1443, 903, 1114, 407, 518, 330, 571, 1258, 929, 1078, 891, 899, 579, 140, 385, 956, 976, 2119, 1444, 904, 1115, 408, 519, 331, 572, 1259, 930, 1079, 892, 900, 580, 141, 386, 957, 977, 2120, 1445, 905, 1116, 409, 520, 332, 573, 1260, 931, 1080, 893, 901, 581, 142, 387, 958, 978, 2121, 1446, 906, 1117, 410, 521, 333, 574, 1261, 932, 721, 894, 902, 582, 143, 388, 959, 979, 2122, 1447, 907, 1118, 411, 522, 334, 575, 1262, 933, 722, 895, 903, 583, 144, 389, 960, 980, 2123, 1448, 908, 1119, 412, 523, 335, 576, 1263, 934, 723, 896, 904, 584, 145, 390, 961, 981, 2124, 1449, 909, 1120, 413, 524, 336, 577, 1264, 935, 724, 897, 905, 585, 146, 391, 962, 982, 2125, 1450, 910, 1121, 414, 525, 337, 578, 1265, 936, 725, 898, 906, 586, 147, 392, 963, 983, 2126, 1451, 911, 1122, 415, 526, 338, 579, 1266, 937, 726, 899, 907, 587, 148, 393, 964, 984, 2127, 1452, 912, 1123, 416, 527, 339, 580, 1267, 938, 727, 900, 908, 588, 149, 394, 965, 985, 2128, 1453, 913, 1124, 417, 528, 340, 581, 1268, 939, 728, 901, 909, 589, 150, 395, 966, 986, 2129, 1454, 914, 1125, 418, 529, 341, 582, 1269, 940, 729, 902, 910, 590, 151, 396, 967, 987, 2130, 1455, 915, 1126, 419, 530, 342, 583, 1270, 941, 730, 903, 911, 591, 152, 397, 968, 988, 2131, 1456, 916, 1127, 420, 531, 343, 584, 1271, 942, 731, 904, 912, 592, 153, 398, 969, 989, 2132, 1457, 917, 1128, 421, 532, 344, 585, 1272, 943, 732, 905, 913, 593, 154, 399, 970, 990, 2133, 1458, 918, 1129, 422, 533, 345, 586, 1273, 944, 733, 906, 914, 594, 155, 400, 971, 991, 2134, 1459, 919, 1130, 423, 534, 346, 587, 1274, 945, 734, 907, 915, 595, 156, 401, 972, 992, 2135, 1460, 920, 1131, 424, 535, 347, 588, 1275, 946, 735, 908, 916, 596, 157, 402, 973, 993, 2136, 1461, 921, 1132, 425, 536, 348, 589, 1276, 947, 736, 909, 917, 597, 158, 403, 974, 994, 2137, 1462, 922, 1133, 426, 537, 349, 590, 1277, 948, 737, 910, 918, 598, 159, 404, 975, 995, 2138, 1463, 923, 1134, 427, 538, 350, 591, 1278, 949, 738, 911, 919, 599, 160, 405, 976, 996, 2139, 1464, 924, 1135, 428, 539, 351, 592, 1279, 950, 739, 912, 920, 600, 161, 406, 977, 997, 2140, 1465, 925, 1136, 429, 540, 352, 593, 1280, 951, 740, 913, 921, 601, 162, 407, 978, 998, 2141, 1466, 926, 1137, 430, 541, 353, 594, 1281, 952, 741, 914, 922, 602, 163, 408, 979, 999, 2142, 1467, 927, 1138, 431, 542, 354, 595, 1282, 953, 742, 915, 923, 603, 164, 409, 980, 1000, 2143, 1468, 928, 1139, 432, 543, 355, 596, 1283, 954, 743, 916, 924, 604, 165, 410, 981, 1001, 2144, 1469, 929, 1140, 433, 544, 356, 597, 1284, 955, 744, 917, 925, 605, 166, 411, 982, 1002, 2145, 1470, 930, 1141, 434, 545, 357, 598, 1285, 956, 745, 918, 926, 606, 167, 412, 983, 1003, 2146, 1471, 931, 1142, 435, 546, 358, 599, 1286, 957, 746, 919, 927, 607, 168, 413, 984, 1004, 2147, 1472, 932, 1143, 436, 547, 359, 600, 1287, 958, 747, 920, 928, 608, 169, 414, 985, 1005, 2148, 1473, 933, 1144, 437, 548, 360, 601, 1288, 959, 748, 921, 929, 609, 170, 415, 986, 1006, 2149, 1474, 934, 1145, 438, 549, 43, 602, 1289, 960, 749, 922, 930, 610, 171, 416, 987, 1007, 2150, 1475, 935, 1146, 439, 550, 44, 603, 1290, 961, 750, 923, 931, 611, 172, 417, 988, 1008, 2151, 1476, 936, 1147, 440, 551, 45, 604, 1291, 962, 751, 924, 932, 612, 173, 418, 989, 1009, 2152, 1477, 937, 1148, 441, 552, 46, 605, 1292, 963, 752, 925, 933, 613, 174, 419, 990, 1010, 2153, 1478, 938, 1149, 442, 553, 47, 606, 1293, 964, 753, 926, 934, 614, 175, 420, 991, 1011, 2154, 1479, 939, 1150, 443, 554, 48, 607, 1294, 965, 754, 927, 935, 615, 176, 421, 992, 1012, 2155, 1480, 940, 1151, 444, 555, 49, 608, 1295, 966, 755, 928, 936, 616, 177, 422, 993, 1013, 2156, 1481, 941, 1152, 445, 556, 50, 609, 1296, 967, 756, 929, 937, 617, 178, 423, 994, 1014, 2157, 1482, 942, 1153, 446, 557, 51, 610, 1297, 968, 757, 930, 938, 618, 179, 424, 995, 1015, 2158, 1483, 943, 1154, 447, 558, 52, 611, 1298, 969, 758, 931, 939, 619, 180, 425, 996, 1016, 2159, 1484, 944, 1155, 448, 559, 53, 612, 1299, 970, 759, 932, 940, 620, 181, 426, 997, 1017, 2160, 1485, 945, 1156, 449, 560, 54, 613, 1300, 971, 760, 933, 941, 621, 182, 427, 998, 1018, 1801, 1441, 946, 1157, 450, 561, 55, 614, 1301, 972, 761, 934, 942, 622, 183, 428, 999, 1019, 1802, 1442, 947, 1158, 451, 562, 56, 615, 1302, 973, 762, 935, 943, 623, 184, 429, 1000, 1020, 1803, 1443, 948, 1159, 452, 563, 57, 616, 1303, 974, 763, 936, 944, 624, 185, 430, 1001, 1021, 1804, 1444, 949, 1160, 453, 564, 58, 617, 1304, 975, 764, 937, 945, 625, 186, 431, 1002, 1022, 1805, 1445, 950, 1161, 454, 565, 59, 618, 1305, 976, 765, 938, 946, 626, 187, 432, 1003, 1023, 1806, 1446, 951, 1162, 455, 566, 60, 619, 1306, 977, 766, 939, 947, 627, 188, 433, 1004, 1024, 1807, 1447, 952, 1163, 456, 567, 61, 620, 1307, 978, 767, 940, 948, 628, 189, 434, 1005, 1025, 1808, 1448, 953, 1164, 457, 568, 62, 621, 1308, 979, 768, 941, 949, 629, 190, 435, 1006, 1026, 1809, 1449, 954, 1165, 458, 569, 63, 622, 1309, 980, 769, 942, 950, 630, 191, 436, 1007, 1027, 1810, 1450, 955, 1166, 459, 570, 64, 623, 1310, 981, 770, 943, 951, 631, 192, 437, 1008, 1028, 1811, 1451, 956, 1167, 460, 571, 65, 624, 1311, 982, 771, 944, 952, 632, 193, 438, 1009, 1029, 1812, 1452, 957, 1168, 461, 572, 66, 625, 1312, 983, 772, 945, 721, 633, 194, 439, 1010, 1030, 1813, 1453, 958, 1169, 462, 573, 67, 626, 1313, 984, 773, 946, 722, 634, 195, 440, 1011, 1031, 1814, 1454, 959, 1170, 463, 574, 68, 627, 1314, 985, 774, 947, 723, 635, 196, 441, 1012, 1032, 1815, 1455, 960, 1171, 464, 575, 69, 628, 1315, 986, 775, 948, 724, 636, 197, 442, 1013, 1033, 1816, 1456, 961, 1172, 465, 576, 70, 629, 1316, 987, 776, 949, 725, 637, 198, 443, 1014, 1034, 1817, 1457, 962, 1173, 466, 577, 71, 630, 1317, 988, 777, 950, 726, 638, 199, 444, 1015, 1035, 1818, 1458, 963, 1174, 467, 578, 72, 631, 1318, 989, 778, 951, 727, 639, 200, 445, 1016, 1036, 1819, 1459, 964, 1175, 468, 579, 73, 632, 1319, 990, 779, 952, 728, 640, 201, 446, 1017, 1037, 1820, 1460, 965, 1176, 469, 580, 74, 633, 1320, 991, 780, 953, 729, 641, 202, 447, 1018, 1038, 1821, 1461, 966, 1177, 470, 581, 75, 634, 1321, 992, 781, 954, 730, 642, 203, 448, 1019, 1039, 1822, 1462, 967, 1178, 471, 582, 76, 635, 1322, 993, 782, 955, 731, 643, 204, 449, 1020, 1040, 1823, 1463, 968, 1179, 472, 583, 77, 636, 1323, 994, 783, 956, 732, 644, 205, 450, 1021, 1041, 1824, 1464, 969, 1180, 473, 584, 78, 637, 1324, 995, 784, 957, 733, 645, 206, 451, 1022, 1042, 1825, 1465, 970, 1181, 474, 585, 79, 638, 1325, 996, 785, 958, 734, 646, 207, 452, 1023, 1043, 1826, 1466, 971, 1182, 475, 586, 80, 639, 1326, 997, 786, 959, 735, 647, 208, 453, 1024, 1044, 1827, 1467, 972, 1183, 476, 587, 81, 640, 1327, 998, 787, 960, 736, 648, 209, 454, 1025, 1045, 1828, 1468, 973, 1184, 477, 588, 82, 641, 1328, 999, 788, 961, 737, 649, 210, 455, 1026, 1046, 1829, 1469, 974, 1185, 478, 589, 83, 642, 1329, 1000, 789, 962, 738, 650, 211, 456, 1027, 1047, 1830, 1470, 975, 1186, 479, 590, 84, 643, 1330, 1001, 790, 963, 739, 651, 212, 457, 1028, 1048, 1831, 1471, 976, 1187, 480, 591, 85, 644, 1331, 1002, 791, 964, 740, 652, 213, 458, 1029, 1049, 1832, 1472, 977, 1188, 481, 592, 86, 645, 1332, 1003, 792, 965, 741, 653, 214, 459, 1030, 1050, 1833, 1473, 978, 1189, 482, 593, 87, 646, 1333, 1004, 793, 966, 742, 654, 215, 460, 1031, 1051, 1834, 1474, 979, 1190, 483, 594, 88, 647, 1334, 1005, 794, 967, 743, 655, 216, 461, 1032, 1052, 1835, 1475, 980, 1191, 484, 595, 89, 648, 1335, 1006, 795, 968, 744, 656, 217, 462, 1033, 1053, 1836, 1476, 981, 1192, 485, 596, 90, 649, 1336, 1007, 796, 969, 745, 657, 218, 463, 1034, 1054, 1837, 1477, 982, 1193, 486, 597, 91, 650, 1337, 1008, 797, 970, 746, 658, 219, 464, 1035, 1055, 1838, 1478, 983, 1194, 487, 598, 92, 651, 1338, 1009, 798, 971, 747, 659, 220, 465, 1036, 1056, 1839, 1479, 984, 1195, 488, 599, 93, 652, 1339, 1010, 799, 972, 748, 660, 221, 466, 1037, 1057, 1840, 1480, 985, 1196, 489, 600, 94, 653, 1340, 1011, 800, 973, 749, 661, 222, 467, 1038, 1058, 1841, 1481, 986, 1197, 490, 601, 95, 654, 1341, 1012, 801, 974, 750, 662, 223, 468, 1039, 1059, 1842, 1482, 987, 1198, 491, 602, 96, 655, 1342, 1013, 802, 975, 751, 663, 224, 469, 1040, 1060, 1843, 1483, 988, 1199, 492, 603, 97, 656, 1343, 1014, 803, 976, 752, 664, 225, 470, 1041, 1061, 1844, 1484, 989, 1200, 493, 604, 98, 657, 1344, 1015, 804, 977, 753, 665, 226, 471, 1042, 1062, 1845, 1485, 990, 1201, 494, 605, 99, 658, 1345, 1016, 805, 978, 754, 666, 227, 472, 1043, 1063, 1846, 1486, 991, 1202, 495, 606, 100, 659, 1346, 1017, 806, 979, 755, 667, 228, 473, 1044, 1064, 1847, 1487, 992, 1203, 496, 607, 101, 660, 1347, 1018, 807, 980, 756, 668, 229, 474, 1045, 1065, 1848, 1488, 993, 1204, 497, 608, 102, 661, 1348, 1019, 808, 981, 757, 669, 230, 475, 1046, 1066, 1849, 1489, 994, 1205, 498, 609, 103, 662, 1349, 1020, 809, 982, 758, 670, 231, 476, 1047, 1067, 1850, 1490, 995, 1206, 499, 610, 104, 663, 1350, 1021, 810, 983, 759, 671, 232, 477, 1048, 1068, 1851, 1491, 996, 1207, 500, 611, 105, 664, 1351, 1022, 811, 984, 760, 672, 233, 478, 1049, 1069, 1852, 1492, 997, 1208, 501, 612, 106, 665, 1352, 1023, 812, 985, 761, 673, 234, 479, 1050, 1070, 1853, 1493, 998, 1209, 502, 613, 107, 666, 1353, 1024, 813, 986, 762, 674, 235, 480, 1051, 1071, 1854, 1494, 999, 1210, 503, 614, 108, 667, 1354, 1025, 814, 987, 763, 675, 236, 481, 1052, 1072, 1855, 1495, 1000, 1211, 504, 615, 109, 668, 1355, 1026, 815, 988, 764, 676, 237, 482, 1053, 1073, 1856, 1496, 1001, 1212, 505, 616, 110, 669, 1356, 1027, 816, 989, 765, 677, 238, 483, 1054, 1074, 1857, 1497, 1002, 1213, 506, 617, 111, 670, 1357, 1028, 817, 990, 766, 678, 239, 484, 1055, 1075, 1858, 1498, 1003, 1214, 507, 618, 112, 671, 1358, 1029, 818, 991, 767, 679, 240, 485, 1056, 1076, 1859, 1499, 1004, 1215, 508, 619, 113, 672, 1359, 1030, 819, 992, 768, 680, 241, 486, 1057, 1077, 1860, 1500, 1005, 1216, 509, 620, 114, 673, 1360, 1031, 820, 993, 769, 681, 242, 487, 1058, 1078, 1861, 1501, 1006, 1217, 510, 621, 115, 674, 1361, 1032, 821, 994, 770, 682, 243, 488, 1059, 1079, 1862, 1502, 1007, 1218, 511, 622, 116, 675, 1362, 1033, 822, 995, 771, 683, 244, 489, 1060, 1080, 1863, 1503, 1008, 1219, 512, 623, 117, 676, 1363, 1034, 823, 996, 772, 684, 245, 490, 1061, 721, 1864, 1504, 1009, 1220, 513, 624, 118, 677, 1364, 1035, 824, 997, 773, 685, 246, 491, 1062, 722, 1865, 1505, 1010, 1221, 514, 625, 119, 678, 1365, 1036, 825, 998, 774, 686, 247, 492, 1063, 723, 1866, 1506, 1011, 1222, 515, 626, 120, 679, 1366, 1037, 826, 999, 775, 687, 248, 493, 1064, 724, 1867, 1507, 1012, 1223, 516, 627, 121, 680, 1367, 1038, 827, 1000, 776, 688, 249, 494, 1065, 725, 1868, 1508, 1013, 1224, 517, 628, 122, 681, 1368, 1039, 828, 1001, 777, 689, 250, 495, 1066, 726, 1869, 1509, 1014, 1225, 518, 629, 123, 682, 1369, 1040, 829, 1002, 778, 690, 251, 496, 1067, 727, 1870, 1510, 1015, 1226, 519, 630, 124, 683, 1370, 1041, 830, 1003, 779, 691, 252, 497, 1068, 728, 1871, 1511, 1016, 1227, 520, 631, 125, 684, 1371, 1042, 831, 1004, 780, 692, 253, 498, 1069, 729, 1872, 1512, 1017, 1228, 521, 632, 126, 685, 1372, 1043, 832, 1005, 781, 693, 254, 499, 1070, 730, 1873, 1513, 1018, 1229, 522, 633, 127, 686, 1373, 1044, 833, 1006, 782, 694, 255, 500, 1071, 731, 1874, 1514, 1019, 1230, 523, 634, 128, 687, 1374, 1045, 834, 1007, 783, 695, 256, 501, 1072, 732, 1875, 1515, 1020, 1231, 524, 635, 129, 688, 1375, 1046, 835, 1008, 784, 696, 257, 502, 1073, 733, 1876, 1516, 1021, 1232, 525, 636, 130, 689, 1376, 1047, 836, 1009, 785, 697, 258, 503, 1074, 734, 1877, 1517, 1022, 1233, 526, 637, 131, 690, 1377, 1048, 837, 1010, 786, 698, 259, 504, 1075, 735, 1878, 1518, 1023, 1234, 527, 638, 132, 691, 1378, 1049, 838, 1011, 787, 699, 260, 505, 1076, 736, 1879, 1519, 1024, 1235, 528, 639, 133, 692, 1379, 1050, 839, 1012, 788, 700, 261, 506, 1077, 737, 1880, 1520, 1025, 1236, 529, 640, 134, 693, 1380, 1051, 840, 1013, 789, 701, 262, 507, 1078, 738, 1881, 1521, 1026, 1237, 530, 641, 135, 694, 1381, 1052, 841, 1014, 790, 702, 263, 508, 1079, 739, 1882, 1522, 1027, 1238, 531, 642, 136, 695, 1382, 1053, 842, 1015, 791, 703, 264, 509, 1080, 740, 1883, 1523, 1028, 1239, 532, 643, 137, 696, 1383, 1054, 843, 1016, 792, 704, 265, 510, 721, 741, 1884, 1524, 1029, 1240, 533, 644, 138, 697, 1384, 1055, 844, 1017, 793, 705, 266, 511, 722, 742, 1885, 1525, 1030, 1241, 534, 645, 139, 698, 1385, 1056, 845, 1018, 794, 706, 267, 512, 723, 743, 1886, 1526, 1031, 1242, 535, 646, 140, 699, 1386, 1057, 846, 1019, 795, 707, 268, 513, 724, 744, 1887, 1527, 1032, 1243, 536, 647, 141, 700, 1387, 1058, 847, 1020, 796, 708, 269, 514, 725, 745, 1888, 1528, 1033, 1244, 537, 648, 142, 701, 1388, 1059, 848, 1021, 797, 709, 270, 515, 726, 746, 1889, 1529, 1034, 1245, 538, 649, 143, 702, 1389, 1060, 849, 1022, 798, 710, 271, 516, 727, 747, 1890, 1530, 1035, 1246, 539, 650, 144, 703, 1390, 1061, 850, 1023, 799, 711, 272, 517, 728, 748, 1891, 1531, 1036, 1247, 540, 651, 145, 704, 1391, 1062, 851, 1024, 800, 712, 273, 518, 729, 749, 1892, 1532, 1037, 1248, 541, 652, 146, 705, 1392, 1063, 852, 1025, 801, 713, 274, 519, 730, 750, 1893, 1533, 1038, 1249, 542, 653, 147, 706, 1393, 1064, 853, 1026, 802, 714, 275, 520, 731, 751, 1894, 1534, 1039, 1250, 543, 654, 148, 707, 1394, 1065, 854, 1027, 803, 715, 276, 521, 732, 752, 1895, 1535, 1040, 1251, 544, 655, 149, 708, 1395, 1066, 855, 1028, 804, 716, 277, 522, 733, 753, 1896, 1536, 1041, 1252, 545, 656, 150, 709, 1396, 1067, 856, 1029, 805, 717, 278, 523, 734, 754, 1897, 1537, 1042, 1253, 546, 657, 151, 710, 1397, 1068, 857, 1030, 806, 718, 279, 524, 735, 755, 1898, 1538, 1043, 1254, 547, 658, 152, 711, 1398, 1069, 858, 1031, 807, 719, 280, 525, 736, 756, 1899, 1539, 1044, 1255, 548, 659, 153, 712, 1399, 1070, 859, 1032, 808, 720, 281, 526, 737, 757, 1900, 1540, 1045, 1256, 549, 660, 154, 713, 1400, 1071, 860, 1033, 809, 632, 282, 527, 738, 758, 1901, 1541, 1046, 1257, 550, 661, 155, 714, 1401, 1072, 861, 1034, 810, 633, 283, 528, 739, 759, 1902, 1542, 1047, 1258, 551, 662, 156, 715, 1402, 1073, 862, 1035, 811, 634, 284, 529, 740, 760, 1903, 1543, 1048, 1259, 552, 663, 157, 716, 1403, 1074, 863, 1036, 812, 635, 285, 530, 741, 761, 1904, 1544, 1049, 1260, 553, 664, 158, 717, 1404, 1075, 864, 1037, 813, 636, 286, 531, 742, 762, 1905, 1545, 1050, 1261, 554, 665, 159, 718, 1405, 1076, 865, 1038, 814, 637, 287, 532, 743, 763, 1906, 1546, 1051, 1262, 555, 666, 160, 719, 1406, 1077, 866, 1039, 815, 638, 288, 533, 744, 764, 1907, 1547, 1052, 1263, 556, 667, 161, 720, 1407, 1078, 867, 1040, 816, 639, 289, 534, 745, 765, 1908, 1548, 1053, 1264, 557, 668, 162, 361, 1408, 1079, 868, 1041, 817, 640, 290, 535, 746, 766, 1909, 1549, 1054, 1265, 558, 669, 163, 362, 1409, 1080, 869, 1042, 818, 641, 291, 536, 747, 767, 1910, 1550, 1055, 1266, 559, 670, 164, 363, 1410, 721, 870, 1043, 819, 642, 292, 537, 748, 768, 1911, 1551, 1056, 1267, 560, 671, 165, 364, 1411, 722, 871, 1044, 820, 643, 293, 538, 749, 769, 1912, 1552, 1057, 1268, 561, 672, 166, 365, 1412, 723, 872, 1045, 821, 644, 294, 539, 750, 770, 1913, 1553, 1058, 1269, 562, 673, 167, 366, 1413, 724, 873, 1046, 822, 645, 295, 540, 751, 771, 1914, 1554, 1059, 1270, 563, 674, 168, 367, 1414, 725, 874, 1047, 823, 646, 296, 541, 752, 772, 1915, 1555, 1060, 1271, 564, 675, 169, 368, 1415, 726, 875, 1048, 824, 647, 297, 542, 753, 773, 1916, 1556, 1061, 1272, 565, 676, 170, 369, 1416, 727, 876, 1049, 825, 648, 298, 543, 754, 774, 1917, 1557, 1062, 1273, 566, 677, 171, 370, 1417, 728, 877, 1050, 826, 649, 299, 544, 755, 775, 1918, 1558, 1063, 1274, 567, 678, 172, 371, 1418, 729, 878, 1051, 827, 650, 300, 545, 756, 776, 1919, 1559, 1064, 1275, 568, 679, 173, 372, 1419, 730, 879, 1052, 828, 651, 301, 546, 757, 777, 1920, 1560, 1065, 1276, 569, 680, 174, 373, 1420, 731, 880, 1053, 829, 652, 302, 547, 758, 778, 1921, 1561, 1066, 1277, 570, 681, 175, 374, 1421, 732, 881, 1054, 830, 653, 303, 548, 759, 779, 1922, 1562, 1067, 1278, 571, 682, 176, 375, 1422, 733, 882, 1055, 831, 654, 304, 549, 760, 780, 1923, 1563, 1068, 1279, 572, 683, 177, 376, 1423, 734, 883, 1056, 832, 655, 305, 550, 761, 781, 1924, 1564, 1069, 1280, 573, 684, 178, 377, 1424, 735, 884, 1057, 833, 656, 306, 551, 762, 782, 1925, 1565, 1070, 1281, 574, 685, 179, 378, 1425, 736, 885, 1058, 834, 657, 307, 552, 763, 783, 1926, 1566, 1071, 1282, 575, 686, 180, 379, 1426, 737, 886, 1059, 835, 658, 308, 553, 764, 784, 1927, 1567, 1072, 1283, 576, 687, 181, 380, 1427, 738, 887, 1060, 836, 659, 309, 554, 765, 785, 1928, 1568, 1073, 1284, 577, 688, 182, 381, 1428, 739, 888, 1061, 837, 660, 310, 555, 766, 786, 1929, 1569, 1074, 1285, 578, 689, 183, 382, 1429, 740, 889, 1062, 838, 661, 311, 556, 767, 787, 1930, 1570, 1075, 1286, 579, 690, 184, 383, 1430, 741, 890, 1063, 839, 662, 312, 557, 768, 788, 1931, 1571, 1076, 1287, 580, 691, 185, 384, 1431, 742, 891, 1064, 840, 663, 313, 558, 769, 789, 1932, 1572, 1077, 1288, 581, 692, 186, 385, 1432, 743, 892, 1065, 841, 664, 314, 559, 770, 790, 1933, 1573, 1078, 1289, 582, 693, 187, 386, 1433, 744, 893, 1066, 842, 665, 315, 560, 771, 791, 1934, 1574, 1079, 1290, 583, 694, 188, 387, 1434, 745, 894, 1067, 843, 666, 316, 561, 772, 792, 1935, 1575, 1080, 1291, 584, 695, 189, 388, 1435, 746, 895, 1068, 844, 667, 317, 562, 773, 793, 1936, 1576, 721, 1292, 585, 696, 190, 389, 1436, 747, 896, 1069, 845, 668, 318, 563, 774, 794, 1937, 1577, 722, 1293, 586, 697, 191, 390, 1437, 748, 897, 1070, 846, 669, 319, 564, 775, 795, 1938, 1578, 723, 1294, 587, 698, 192, 391, 1438, 749, 898, 1071, 847, 670, 320, 565, 776, 796, 1939, 1579, 724, 1295, 588, 699, 193, 392, 1439, 750, 899, 1072, 848, 671, 321, 566, 777, 797, 1940, 1580, 725, 1296, 589, 700, 194, 393, 1440, 751, 900, 1073, 721, 672, 322, 567, 778, 798, 1941, 1581, 726, 1297, 590, 701, 195, 394, 1081, 752, 901, 1074, 722, 673, 323, 568, 779, 799, 1942, 1582, 727, 1298, 591, 702, 196, 395, 1082, 753, 902, 1075, 723, 674, 324, 569, 780, 800, 1943, 1583, 728, 1299, 592, 703, 197, 396, 1083, 754, 903, 1076, 724, 675, 325, 570, 781, 801, 1944, 1584, 729, 1300, 593, 704, 198, 397, 1084, 755, 904, 1077, 725, 676, 326, 571, 782, 802, 1945, 1585, 730, 1301, 594, 705, 199, 398, 1085, 756, 905, 1078, 726, 677, 327, 572, 783, 803, 1946, 1586, 731, 1302, 595, 706, 200, 399, 1086, 757, 906, 1079, 727, 678, 328, 573, 784, 804, 1947, 1587, 732, 1303, 596, 707, 201, 400, 1087, 758, 907, 1080, 728, 679, 329, 574, 785, 805, 1948, 1588, 733, 1304, 597, 708, 202, 401, 1088, 759, 908, 721, 729, 680, 330, 575, 786, 806, 1949, 1589, 734, 1305, 598, 709, 203, 402, 1089, 760, 1203, 1717, 858, 1019, 652, 1177, 1919, 1266, 2215, 1635, 1252, 1327, 1070, 1839, 819, 1106, 1539, 2455, 1204, 1718, 859, 1020, 653, 1178, 1920, 1267, 2216, 1636, 1253, 1328, 1071, 1840, 820, 1107, 1540, 2456, 1205, 1719, 860, 1021, 654, 1179, 1921, 1268, 2217, 1637, 1254, 1329, 1072, 1841, 821, 1108, 1541, 2457, 1206, 1720, 861, 1022, 655, 1180, 1922, 1269, 2218, 1638, 1255, 1330, 1073, 1842, 822, 1109, 1542, 2458, 1207, 1721, 862, 1023, 656, 1181, 1923, 1270, 2219, 1639, 1256, 1331, 1074, 1843, 823, 1110, 1543, 2459, 1208, 1722, 863, 1024, 657, 1182, 1924, 1271, 2220, 1640, 1257, 1332, 1075, 1844, 824, 1111, 1544, 2460, 1209, 1723, 864, 1025, 658, 1183, 1925, 1272, 2221, 1641, 1258, 1333, 1076, 1845, 825, 1112, 1545, 2461, 1210, 1724, 865, 1026, 659, 1184, 1926, 1273, 2222, 1642, 1259, 1334, 1077, 1846, 826, 1113, 1546, 2462, 1211, 1725, 866, 1027, 660, 1185, 1927, 1274, 2223, 1643, 1260, 1335, 1078, 1847, 827, 1114, 1547, 2463, 1212, 1726, 867, 1028, 661, 1186, 1928, 1275, 2224, 1644, 1261, 1336, 1079, 1848, 828, 1115, 1548, 2464, 1213, 1727, 868, 1029, 662, 1187, 1929, 1276, 2225, 1645, 1262, 1337, 1080, 1849, 829, 1116, 1549, 2465, 1214, 1728, 869, 1030, 663, 1188, 1930, 1277, 2226, 1646, 1263, 1338, 721, 1850, 830, 1117, 1550, 2466, 1215, 1729, 870, 1031, 664, 1189, 1931, 1278, 2227, 1647, 1264, 1339, 722, 1851, 831, 1118, 1551, 2467, 1216, 1730, 871, 1032, 665, 1190, 1932, 1279, 2228, 1648, 1265, 1340, 723, 1852, 832, 1119, 1552, 2468, 1217, 1731, 872, 1033, 666, 1191, 1933, 1280, 2229, 1649, 1266, 1341, 724, 1853, 833, 1120, 1553, 2469, 1218, 1732, 873, 1034, 667, 1192, 1934, 1281, 2230, 1650, 1267, 1342, 725, 1854, 834, 1121, 1554, 2470, 1219, 1733, 874, 1035, 668, 1193, 1935, 1282, 2231, 1651, 1268, 1343, 726, 1855, 835, 1122, 1555, 2471, 1220, 1734, 875, 1036, 669, 1194, 1936, 1283, 2232, 1652, 1269, 1344, 727, 1856, 836, 1123, 1556, 2472, 1221, 1735, 876, 1037, 670, 1195, 1937, 1284, 2233, 1653, 1270, 1345, 728, 1857, 837, 1124, 1557, 2473, 1222, 1736, 877, 1038, 671, 1196, 1938, 1285, 2234, 1654, 1271, 1346, 729, 1858, 838, 1125, 1558, 2474, 1223, 1737, 878, 1039, 672, 1197, 1939, 1286, 2235, 1655, 1272, 1347, 730, 1859, 839, 1126, 1559, 2475, 1224, 1738, 879, 1040, 673, 1198, 1940, 1287, 2236, 1656, 1273, 1348, 731, 1860, 840, 1127, 1560, 2476, 1225, 1739, 880, 1041, 674, 1199, 1941, 1288, 2237, 1657, 1274, 1349, 732, 1861, 841, 1128, 1561, 2477, 1226, 1740, 881, 1042, 675, 1200, 1942, 1289, 2238, 1658, 1275, 1350, 733, 1862, 842, 1129, 1562, 2478, 1227, 1741, 882, 1043, 676, 1201, 1943, 1290, 2239, 1659, 1276, 1351, 734, 1863, 843, 1130, 1563, 2479, 1228, 1742, 883, 1044, 677, 1202, 1944, 1291, 2240, 1660, 1277, 1352, 735, 1864, 844, 1131, 1564, 2480, 1229, 1743, 884, 1045, 678, 1203, 1945, 1292, 2241, 1661, 1278, 1353, 736, 1865, 845, 1132, 1565, 2481, 1230, 1744, 885, 1046, 679, 1204, 1946, 1293, 2242, 1662, 1279, 1354, 737, 1866, 846, 1133, 1566, 2482, 1231, 1745, 886, 1047, 680, 1205, 1947, 1294, 2243, 1663, 1280, 1355, 738, 1867, 847, 1134, 1567, 2483, 1232, 1746, 887, 1048, 681, 1206, 1948, 1295, 2244, 1664, 1281, 1356, 739, 1868, 848, 1135, 1568, 2484, 1233, 1747, 888, 1049, 682, 1207, 1949, 1296, 2245, 1665, 1282, 1357, 740, 1869, 849, 1136, 1569, 2485, 1234, 1748, 889, 1050, 683, 1081, 1950, 1297, 2246, 1666, 1283, 1358, 741, 1870, 850, 1137, 1570, 2486, 1235, 1749, 890, 1051, 684, 1082, 1951, 1298, 2247, 1667, 1284, 1359, 742, 1871, 851, 1138, 1571, 2487, 1236, 1750, 891, 1052, 685, 1083, 1952, 1299, 2248, 1668, 1285, 1360, 743, 1872, 852, 1139, 1572, 2488, 1237, 1751, 892, 1053, 686, 1084, 1953, 1300, 2249, 1669, 1286, 1361, 744, 1873, 853, 1140, 1573, 2489, 1238, 1752, 893, 1054, 687, 1085, 1954, 1301, 2250, 1670, 1287, 1362, 745, 1874, 854, 1141, 1574, 2490, 1239, 1753, 894, 1055, 688, 1086, 1955, 1302, 2251, 1671, 1288, 1363, 746, 1875, 855, 1142, 1575, 2491, 1240, 1754, 895, 1056, 689, 1087, 1956, 1303, 2252, 1672, 1289, 1364, 747, 1876, 856, 1143, 1576, 2492, 1241, 1755, 896, 1057, 690, 1088, 1957, 1304, 2253, 1673, 1290, 1365, 748, 1877, 857, 1144, 1577, 2493, 1242, 1756, 897, 1058, 691, 1089, 1958, 1305, 2254, 1674, 1291, 1366, 749, 1878, 858, 1145, 1578, 2494, 1243, 1757, 898, 1059, 692, 1090, 1959, 1306, 2255, 1675, 1292, 1367, 750, 1879, 859, 1146, 1441, 2495, 1244, 1758, 899, 1060, 693, 1091, 1960, 1307, 2256, 1676, 1293, 1368, 751, 1880, 860, 1147, 1442, 2496, 1245, 1759, 900, 1061, 694, 1092, 1961, 1308, 2257, 1677, 1294, 1369, 752, 1881, 861, 1148, 1443, 2497, 1246, 1760, 901, 1062, 695, 1093, 1962, 1309, 2258, 1678, 1295, 1370, 753, 1882, 862, 1149, 1444, 2498, 1247, 1761, 902, 1063, 696, 1094, 1963, 1310, 2259, 1679, 1296, 1371, 754, 1883, 863, 1150, 1445, 2499, 1248, 1762, 903, 1064, 697, 1095, 1964, 1311, 2260, 1680, 1297, 1372, 755, 1884, 864, 1151, 1446, 2500, 1249, 1763, 904, 1065, 698, 1096, 1965, 1312, 2261, 1681, 1298, 1373, 756, 1885, 865, 1152, 1447, 2501, 1250, 1764, 905, 1066, 699, 1097, 1966, 1313, 2262, 1682, 1299, 1374, 757, 1886, 866, 1153, 1448, 2502, 1251, 1765, 906, 1067, 700, 1098, 1967, 1314, 2263, 1683, 1300, 1375, 758, 1887, 867, 1154, 1449, 2503, 1252, 1766, 907, 1068, 701, 1099, 1968, 1315, 2264, 1684, 1301, 1376, 759, 1888, 868, 1155, 1450, 2504, 1253, 1767, 908, 1069, 702, 1100, 1969, 1316, 2265, 1685, 1302, 1377, 760, 1889, 869, 1156, 1451, 2505, 1254, 1768, 909, 1070, 703, 1101, 1970, 1317, 2266, 1686, 1303, 1378, 761, 1890, 870, 1157, 1452, 2506, 1255, 1769, 910, 1071, 704, 1102, 1971, 1318, 2267, 1687, 1304, 1379, 762, 1891, 871, 1158, 1453, 2507, 1256, 1770, 911, 1072, 705, 1103, 1972, 1319, 2268, 1688, 1305, 1380, 763, 1892, 872, 1159, 1454, 2508, 1257, 1771, 912, 1073, 706, 1104, 1973, 1320, 2269, 1689, 1306, 1381, 764, 1893, 873, 1160, 1455, 2509, 1258, 1772, 913, 1074, 707, 1105, 1974, 1321, 2270, 1690, 1307, 1382, 765, 1894, 874, 1161, 1456, 2510, 1259, 1773, 914, 1075, 708, 1106, 1975, 1322, 2271, 1691, 1308, 1383, 766, 1895, 875, 1162, 1457, 2511, 1260, 1774, 915, 1076, 709, 1107, 1976, 1323, 2272, 1692, 1309, 1384, 767, 1896, 876, 1163, 1458, 2512, 1261, 1775, 916, 1077, 710, 1108, 1977, 1324, 2273, 1693, 1310, 1385, 768, 1897, 877, 1164, 1459, 2513, 1262, 1776, 917, 1078, 711, 1109, 1978, 1325, 2274, 1694, 1311, 1386, 769, 1898, 878, 1165, 1460, 2514, 1263, 1777, 918, 1079, 712, 1110, 1979, 1326, 2275, 1695, 1312, 1387, 770, 1899, 879, 1166, 1461, 2515, 1264, 1778, 919, 1080, 713, 1111, 1980, 1327, 2276, 1696, 1313, 1388, 771, 1900, 880, 1167, 1462, 2516, 1265, 1779, 920, 721, 714, 1112, 1981, 1328, 2277, 1697, 1314, 1389, 772, 1901, 881, 1168, 1463, 2517, 1266, 1780, 921, 722, 715, 1113, 1982, 1329, 2278, 1698, 1315, 1390, 773, 1902, 882, 1169, 1464, 2518, 1267, 1781, 922, 723, 716, 1114, 1983, 1330, 2279, 1699, 1316, 1391, 774, 1903, 883, 1170, 1465, 2519, 1268, 1782, 923, 724, 717, 1115, 1984, 1331, 2280, 1700, 1317, 1392, 775, 1904, 884, 1171, 1466, 2520, 1269, 1783, 924, 725, 718, 1116, 1985, 1332, 2281, 1701, 1318, 1393, 776, 1905, 885, 1172, 1467, 2161, 1270, 1784, 925, 726, 719, 1117, 1986, 1333, 2282, 1702, 1319, 1394, 777, 1906, 886, 1173, 1468, 2162, 1271, 1785, 926, 727, 720, 1118, 1987, 1334, 2283, 1703, 1320, 1395, 778, 1907, 887, 1174, 1469, 2163, 1272, 1786, 927, 728, 361, 1119, 1988, 1335, 2284, 1704, 1321, 1396, 779, 1908, 888, 1175, 1470, 2164, 1273, 1787, 928, 729, 362, 1120, 1989, 1336, 2285, 1705, 1322, 1397, 780, 1909, 889, 1176, 1471, 2165, 1274, 1788, 929, 730, 363, 1121, 1990, 1337, 2286, 1706, 1323, 1398, 781, 1910, 890, 1177, 1472, 2166, 1275, 1789, 930, 731, 364, 1122, 1991, 1338, 2287, 1707, 1324, 1399, 782, 1911, 891, 1178, 1473, 2167, 1276, 1790, 931, 732, 365, 1123, 1992, 1339, 2288, 1708, 1325, 1400, 783, 1912, 892, 1179, 1474, 2168, 1277, 1791, 932, 733, 366, 1124, 1993, 1340, 2289, 1709, 1326, 1401, 784, 1913, 893, 1180, 1475, 2169, 1278, 1792, 933, 734, 367, 1125, 1994, 1341, 2290, 1710, 1327, 1402, 785, 1914, 894, 1181, 1476, 2170, 1279, 1793, 934, 735, 368, 1126, 1995, 1342, 2291, 1711, 1328, 1403, 786, 1915, 895, 1182, 1477, 2171, 1280, 1794, 935, 736, 369, 1127, 1996, 1343, 2292, 1712, 1329, 1404, 787, 1916, 896, 1183, 1478, 2172, 1281, 1795, 936, 737, 370, 1128, 1997, 1344, 2293, 1713, 1330, 1405, 788, 1917, 897, 1184, 1479, 2173, 1282, 1796, 937, 738, 371, 1129, 1998, 1345, 2294, 1714, 1331, 1406, 789, 1918, 898, 1185, 1480, 2174, 1283, 1797, 938, 739, 372, 1130, 1999, 1346, 2295, 1715, 1332, 1407, 790, 1919, 899, 1186, 1481, 2175, 1284, 1798, 939, 740, 373, 1131, 2000, 1347, 2296, 1716, 1333, 1408, 791, 1920, 900, 1187, 1482, 2176, 1285, 1799, 940, 741, 374, 1132, 2001, 1348, 2297, 1717, 1334, 1409, 792, 1921, 901, 1188, 1483, 2177, 1286, 1800, 941, 742, 375, 1133, 2002, 1349, 2298, 1718, 1335, 1410, 793, 1922, 902, 1189, 1484, 2178, 1287, 1441, 942, 743, 376, 1134, 2003, 1350, 2299, 1719, 1336, 1411, 794, 1923, 903, 1190, 1485, 2179, 1288, 1442, 943, 744, 377, 1135, 2004, 1351, 2300, 1720, 1337, 1412, 795, 1924, 904, 1191, 1486, 2180, 1289, 1443, 944, 745, 378, 1136, 2005, 1352, 2301, 1721, 1338, 1413, 796, 1925, 905, 1192, 1487, 2181, 1290, 1444, 945, 746, 379, 1137, 2006, 1353, 2302, 1722, 1339, 1414, 797, 1926, 906, 1193, 1488, 2182, 1291, 1445, 946, 747, 380, 1138, 2007, 1354, 2303, 1723, 1340, 1415, 798, 1927, 907, 1194, 1489, 2183, 1292, 1446, 947, 748, 381, 1139, 2008, 1355, 2304, 1724, 1341, 1416, 799, 1928, 908, 1195, 1490, 2184, 1293, 1447, 948, 749, 382, 1140, 2009, 1356, 2305, 1725, 1342, 1417, 800, 1929, 909, 1196, 1491, 2185, 1294, 1448, 949, 750, 383, 1141, 2010, 1357, 2306, 1726, 1343, 1418, 801, 1930, 910, 1197, 1492, 2186, 1295, 1449, 950, 751, 384, 1142, 2011, 1358, 2307, 1727, 1344, 1419, 802, 1931, 911, 1198, 1493, 2187, 1296, 1450, 951, 752, 385, 1143, 2012, 1359, 2308, 1728, 1345, 1420, 803, 1932, 912, 1199, 1494, 2188, 1297, 1451, 952, 753, 386, 1144, 2013, 1360, 2309, 1729, 1346, 1421, 804, 1933, 913, 1200, 1495, 2189, 1298, 1452, 953, 754, 387, 1145, 2014, 1361, 2310, 1730, 1347, 1422, 805, 1934, 914, 1201, 1496, 2190, 1299, 1453, 954, 755, 388, 1146, 2015, 1362, 2311, 1731, 1348, 1423, 806, 1935, 915, 1202, 1497, 2191, 1300, 1454, 955, 756, 389, 1147, 2016, 1363, 2312, 1732, 1349, 1424, 807, 1936, 916, 1203, 1498, 2192, 1301, 1455, 956, 757, 390, 1148, 2017, 1364, 2313, 1733, 1350, 1425, 808, 1937, 917, 1204, 1499, 2193, 1302, 1456, 957, 758, 391, 1149, 2018, 1365, 2314, 1734, 1351, 1426, 809, 1938, 918, 1205, 1500, 2194, 1303, 1457, 958, 759, 392, 1150, 2019, 1366, 2315, 1735, 1352, 1427, 810, 1939, 919, 1206, 1501, 2195, 1304, 1458, 959, 760, 393, 1151, 2020, 1367, 2316, 1736, 1353, 1428, 811, 1940, 920, 1207, 1502, 2196, 1305, 1459, 960, 761, 394, 1152, 2021, 1368, 2317, 1737, 1354, 1429, 812, 1941, 921, 1208, 1503, 2197, 1306, 1460, 961, 762, 395, 1153, 2022, 1369, 2318, 1738, 1355, 1430, 813, 1942, 922, 1209, 1504, 2198, 1307, 1461, 962, 763, 396, 1154, 2023, 1370, 2319, 1739, 1356, 1431, 814, 1943, 923, 1210, 1505, 2199, 1308, 1462, 963, 764, 397, 1155, 2024, 1371, 2320, 1740, 1357, 1432, 815, 1944, 924, 1211, 1506, 2200, 1309, 1463, 964, 765, 398, 1156, 2025, 1372, 2321, 1741, 1358, 1433, 816, 1945, 925, 1212, 1507, 2201, 1310, 1464, 965, 766, 399, 1157, 2026, 1373, 2322, 1742, 1359, 1434, 817, 1946, 926, 1213, 1508, 2202, 1311, 1465, 966, 767, 400, 1158, 2027, 1374, 2323, 1743, 1360, 1435, 818, 1947, 927, 1214, 1509, 2203, 1312, 1466, 967, 768, 401, 1159, 2028, 1375, 2324, 1744, 1361, 1436, 819, 1948, 928, 1215, 1510, 2204, 1313, 1467, 968, 769, 402, 1160, 2029, 1376, 2325, 1745, 1362, 1437, 820, 1949, 929, 1216, 1511, 2205, 1314, 1468, 969, 770, 403, 1161, 2030, 1377, 2326, 1746, 1363, 1438, 821, 1950, 930, 1217, 1512, 2206, 1315, 1469, 970, 771, 404, 1162, 2031, 1378, 2327, 1747, 1364, 1439, 822, 1951, 931, 1218, 1513, 2207, 1316, 1470, 971, 772, 405, 1163, 2032, 1379, 2328, 1748, 1365, 1440, 823, 1952, 932, 1219, 1514, 2208, 1317, 1471, 972, 773, 406, 1164, 2033, 1380, 2329, 1749, 1366, 1420, 824, 1953, 933, 1220, 1515, 2209, 1318, 1472, 973, 774, 407, 1165, 2034, 1381, 2330, 1750, 1367, 1421, 825, 1954, 934, 1221, 1516, 2210, 1319, 1473, 974, 775, 408, 1166, 2035, 1382, 2331, 1751, 1368, 1422, 826, 1955, 935, 1222, 1517, 2211, 1320, 1474, 975, 776, 409, 1167, 2036, 1383, 2332, 1752, 1369, 1423, 827, 1956, 936, 1223, 1518, 2212, 1321, 1475, 976, 777, 410, 1168, 2037, 1384, 2333, 1753, 1370, 1424, 828, 1957, 937, 1224, 1519, 2213, 1322, 1476, 977, 778, 411, 1169, 2038, 1385, 2334, 1754, 1371, 1425, 829, 1958, 938, 1225, 1520, 2214, 1323, 1477, 978, 779, 412, 1170, 2039, 1386, 2335, 1755, 1372, 1426, 830, 1959, 939, 1226, 1521, 2215, 1324, 1478, 979, 780, 413, 1171, 2040, 1387, 2336, 1756, 1373, 1427, 831, 1960, 940, 1227, 1522, 2216, 1325, 1479, 980, 781, 414, 1172, 2041, 1388, 2337, 1757, 1374, 1428, 832, 1961, 941, 1228, 1523, 2217, 1326, 1480, 981, 782, 415, 1173, 2042, 1389, 2338, 1758, 1375, 1429, 833, 1962, 942, 1229, 1524, 2218, 1327, 1481, 982, 783, 416, 1174, 2043, 1390, 2339, 1759, 1376, 1430, 834, 1963, 943, 1230, 1525, 2219, 1328, 1482, 983, 784, 417, 1175, 2044, 1391, 2340, 1760, 1377, 1431, 835, 1964, 944, 1231, 1526, 2220, 1329, 1483, 984, 785, 418, 1176, 2045, 1392, 2341, 1761, 1378, 1432, 836, 1965, 945, 1232, 1527, 2221, 1330, 1484, 985, 786, 419, 1177, 2046, 1393, 2342, 1762, 1379, 1433, 837, 1966, 946, 1233, 1528, 2222, 1331, 1485, 986, 787, 420, 1178, 2047, 1394, 2343, 1763, 1380, 1434, 838, 1967, 947, 1234, 1529, 2223, 1332, 1486, 987, 788, 421, 1179, 2048, 1395, 2344, 1764, 1381, 1435, 839, 1968, 948, 1235, 1530, 2224, 1333, 1487, 988, 789, 422, 1180, 2049, 1396, 2345, 1765, 1382, 1436, 840, 1969, 949, 1236, 1531, 2225, 1334, 1488, 989, 790, 423, 1181, 2050, 1397, 2346, 1766, 1383, 1437, 841, 1970, 950, 1237, 1532, 2226, 1335, 1489, 990, 791, 424, 1182, 2051, 1398, 2347, 1767, 1384, 1438, 842, 1971, 951, 1238, 1533, 2227, 1336, 1490, 991, 792, 425, 1183, 2052, 1399, 2348, 1768, 1385, 1439, 843, 1972, 952, 1239, 1534, 2228, 1337, 1491, 992, 793, 426, 1184, 2053, 1400, 2349, 1769, 1386, 1440, 844, 1973, 953, 1240, 1441, 2229, 1338, 1492, 993, 794, 427, 1185, 2054, 1401, 2350, 1770, 1387, 1102, 845, 1974, 954, 1241, 1442, 2230, 1339, 1493, 994, 795, 428, 1186, 2055, 1402, 2351, 1771, 1388, 1103, 846, 1975, 955, 1242, 1443, 2231, 1340, 1494, 995, 796, 429, 1187, 2056, 1403, 2352, 1772, 1389, 1104, 847, 1976, 956, 1243, 1444, 2232, 1341, 1495, 996, 797, 430, 1188, 2057, 1404, 2353, 1773, 1390, 1105, 848, 1977, 957, 1244, 1445, 2233, 1342, 1496, 997, 798, 431, 1189, 2058, 1405, 2354, 1774, 1391, 1106, 849, 1978, 958, 1245, 1446, 2234, 1343, 1497, 998, 799, 432, 1190, 2059, 1406, 2355, 1775, 1392, 1107, 850, 1979, 959, 1246, 1447, 2235, 1344, 1498, 999, 800, 433, 1191, 2060, 1407, 2356, 1776, 1393, 1108, 851, 1980, 960, 1247, 1448, 2236, 1345, 1499, 1000, 801, 434, 1192, 2061, 1408, 2357, 1777, 1394, 1109, 852, 1981, 961, 1248, 1449, 2237, 1346, 1500, 1001, 802, 435, 1193, 2062, 1409, 2358, 1778, 1395, 1110, 853, 1982, 962, 1249, 1450, 2238, 1347, 1501, 1002, 803, 436, 1194, 2063, 1410, 2359, 1779, 1396, 1111, 854, 1983, 963, 1250, 1451, 2239, 1348, 1502, 1003, 804, 437, 1195, 2064, 1411, 2360, 1780, 1397, 1112, 855, 1984, 964, 1251, 1452, 2240, 1349, 1503, 1004, 805, 438, 1196, 2065, 1412, 2361, 1781, 1398, 1113, 856, 1985, 965, 1252, 1453, 2241, 1350, 1504, 1005, 806, 439, 1197, 2066, 1413, 2362, 1782, 1399, 1114, 857, 1986, 966, 1253, 1454, 2242, 1351, 1505, 1006, 807, 440, 1198, 1801, 1414, 2363, 1783, 1400, 1115, 858, 1987, 967, 1254, 1455, 2243, 1352, 1506, 1007, 808, 441, 1199, 1802, 1415, 2364, 1784, 1401, 1116, 859, 1988, 968, 1255, 1456, 2244, 1353, 1507, 1008, 809, 442, 1200, 1803, 1416, 2365, 1785, 1402, 1117, 860, 1989, 969, 1256, 1457, 2245, 1354, 1508, 1009, 810, 443, 1201, 1804, 1417, 2366, 1786, 1403, 1118, 861, 1990, 970, 1257, 1458, 2246, 1355, 1509, 1010, 811, 444, 1202, 1805, 1418, 2367, 1787, 1404, 1119, 862, 1991, 971, 1258, 1459, 2247, 1356, 1510, 1011, 812, 445, 1203, 1806, 1419, 2368, 1788, 1405, 1120, 863, 1992, 972, 1259, 1460, 2248, 1357, 1511, 1012, 813, 446, 1204, 1807, 1420, 2369, 1789, 1406, 1121, 864, 1993, 973, 1260, 1461, 2249, 1358, 1512, 1013, 814, 447, 1205, 1808, 1421, 2370, 1790, 1407, 1122, 865, 1994, 974, 1261, 1462, 2250, 1359, 1513, 1014, 815, 448, 1206, 1809, 1422, 2371, 1791, 1408, 1123, 866, 1995, 975, 1262, 1463, 2251, 1360, 1514, 1015, 816, 449, 1207, 1810, 1423, 2372, 1792, 1409, 1124, 867, 1996, 976, 1263, 1464, 2252, 1361, 1515, 1016, 817, 450, 1208, 1811, 1424, 2373, 1793, 1410, 1125, 868, 1997, 977, 1264, 1465, 2253, 1362, 1516, 1017, 818, 451, 1209, 1812, 1425, 2374, 1794, 1411, 1126, 869, 1998, 978, 1265, 1466, 2254, 1363, 1517, 1018, 819, 452, 1210, 1813, 1426, 2375, 1795, 1412, 1127, 870, 1999, 979, 1266, 1467, 2255, 1364, 1518, 1019, 820, 453, 1211, 1814, 1427, 2161, 1796, 1413, 1128, 871, 2000, 980, 1267, 1468, 2256, 1365, 1519, 1020, 821, 454, 1212, 1815, 1428, 2162, 1797, 1414, 1129, 872, 2001, 981, 1268, 1469, 2257, 1366, 1520, 1021, 822, 455, 1213, 1816, 1429, 2163, 1798, 1415, 1130, 873, 2002, 982, 1269, 1470, 2258, 1367, 1521, 1022, 823, 456, 1214, 1817, 1430, 2164, 1799, 1416, 1131, 874, 2003, 983, 1270, 1471, 2259, 1368, 1522, 1023, 824, 457, 1215, 1818, 1431, 2165, 1800, 1417, 1132, 875, 2004, 984, 1271, 1472, 2260, 1369, 1523, 1024, 825, 458, 1216, 1819, 1432, 2166, 1756, 1418, 1133, 876, 2005, 985, 1272, 1473, 2261, 1370, 1524, 1025, 826, 459, 1217, 1820, 1433, 2167, 1757, 1419, 1134, 877, 2006, 986, 1273, 1474, 2262, 1371, 1525, 1026, 827, 460, 1218, 1821, 1434, 2168, 1758, 1420, 1135, 878, 2007, 987, 1274, 1475, 2263, 1372, 1526, 1027, 828, 461, 1219, 1822, 1435, 2169, 1759, 1421, 1136, 879, 2008, 988, 1275, 1476, 2264, 1373, 1527, 1028, 829, 462, 1220, 1823, 1436, 2170, 1760, 1422, 1137, 880, 2009, 989, 1276, 1477, 2265, 1374, 1528, 1029, 830, 463, 1221, 1824, 1437, 2171, 1761, 1423, 1138, 881, 2010, 990, 1277, 1478, 2266, 1375, 1529, 1030, 831, 464, 1222, 1825, 1438, 2172, 1762, 1424, 1139, 882, 2011, 991, 1278, 1479, 2267, 1376, 1530, 1031, 832, 465, 1223, 1826, 1439, 2173, 1763, 1425, 1140, 883, 2012, 992, 1279, 1480, 2268, 1377, 1531, 1032, 833, 466, 1224, 1827, 1440, 2174, 1764, 1426, 1141, 884, 2013, 993, 1280, 1481, 2269, 1378, 1532, 1033, 834, 467, 1225, 1828, 1081, 2175, 1765, 1427, 1142, 885, 2014, 994, 1281, 1482, 2270, 1379, 1533, 1034, 835, 468, 1226, 1829, 1082, 2176, 1766, 1428, 1143, 886, 2015, 995, 1282, 1483, 2271, 1380, 1534, 1035, 836, 469, 1227, 1830, 1083, 2177, 1767, 1429, 1144, 887, 2016, 996, 1283, 1484, 2272, 1381, 1535, 1036, 837, 470, 1228, 1831, 1084, 2178, 1768, 1430, 1145, 888, 2017, 997, 1284, 1485, 2273, 1382, 1536, 1037, 838, 471, 1229, 1832, 1085, 2179, 1769, 1431, 1146, 889, 2018, 998, 1285, 1486, 2274, 1383, 1537, 1038, 839, 472, 1230, 1833, 1086, 2180, 1770, 1432, 1147, 890, 2019, 999, 1286, 1487, 2275, 1384, 1538, 1039, 840, 473, 1231, 1834, 1087, 2181, 1771, 1433, 1148, 891, 2020, 1000, 1287, 1488, 2276, 1385, 1539, 1040, 841, 474, 1232, 1835, 1088, 2182, 1772, 1434, 1149, 892, 2021, 1001, 1288, 1489, 2277, 1386, 1540, 1041, 842, 475, 1233, 1836, 1089, 2183, 1773, 1435, 1150, 893, 2022, 1002, 1289, 1490, 2278, 1387, 1541, 1042, 843, 476, 1234, 1837, 1090, 2184, 1774, 1436, 1151, 894, 2023, 1003, 1290, 1491, 2279, 1388, 1542, 1043, 844, 477, 1235, 1838, 1091, 2185, 1775, 1437, 1152, 895, 2024, 1004, 1291, 1492, 2280, 1389, 1543, 1044, 845, 478, 1236, 1839, 1092, 2186, 1776, 1438, 1153, 896, 2025, 1005, 1292, 1493, 2281, 1390, 1544, 1045, 846, 479, 1237, 1840, 1093, 2187, 1777, 1439, 1154, 897, 2026, 1006, 1293, 1494, 2282, 1391, 1545, 1046, 847, 480, 1238, 1841, 1094, 2188, 1778, 1440, 1155, 898, 2027, 1007, 1294, 1495, 2283, 1392, 1546, 1047, 848, 481, 1239, 1842, 1095, 2189, 1779, 1081, 1156, 899, 2028, 1008, 1295, 1496, 2284, 1393, 1547, 1048, 849, 482, 1240, 1843, 1096, 2190, 1780, 1082, 1157, 900, 2029, 1009, 1296, 1497, 2285, 1394, 1548, 1049, 850, 483, 1241, 1844, 1097, 2191, 1781, 1083, 1158, 901, 2030, 1010, 1297, 1498, 2286, 1395, 1549, 1050, 851, 484, 1242, 1845, 1098, 2192, 1782, 1084, 1159, 902, 2031, 1011, 1298, 1499, 2287, 1396, 1550, 1051, 852, 485, 1243, 1846, 1099, 2193, 1783, 1085, 1160, 903, 2032, 1012, 1299, 1500, 2288, 1397, 1551, 1052, 853, 486, 1244, 1847, 1100, 2194, 1784, 1086, 1161, 904, 2033, 1013, 1300, 1501, 2289, 1398, 1552, 1053, 854, 487, 1245, 1848, 1101, 2195, 1785, 1087, 1162, 905, 2034, 1014, 1301, 1502, 2290, 1399, 1553, 1054, 855, 488, 1246, 1849, 1102, 2196, 1786, 1088, 1163, 906, 2035, 1015, 1302, 1503, 2291, 1400, 1554, 1055, 856, 489, 1247, 1850, 1103, 2197, 1787, 1089, 1164, 907, 2036, 1016, 1303, 1504, 2292, 1401, 1555, 1056, 857, 490, 1248, 1851, 1104, 2198, 1788, 1090, 1165, 908, 2037, 1017, 1304, 1505, 2293, 1402, 1556, 1057, 858, 491, 1249, 1852, 1105, 2199, 1789, 1091, 1166, 909, 2038, 1018, 1305, 1506, 2294, 1403, 1557, 1058, 859, 492, 1250, 1853, 1106, 2200, 1790, 1092, 1167, 910, 2039, 1019, 1306, 1507, 2295, 1404, 1558, 1059, 860, 493, 1251, 1854, 1107, 2201, 1791, 1093, 1168, 911, 2040, 1020, 1307, 1508, 2296, 1405, 1559, 1060, 861, 494, 1252, 1855, 1108, 2202, 1792, 1094, 1169, 912, 2041, 1021, 1308, 1509, 2297, 1406, 1560, 1061, 862, 495, 1253, 1856, 1109, 2203, 1793, 1095, 1170, 913, 2042, 1022, 1309, 1510, 2298, 1407, 1561, 1062, 863, 496, 1254, 1857, 1110, 2204, 1794, 1096, 1171, 914, 2043, 1023, 1310, 1511, 2299, 1408, 1562, 1063, 864, 497, 1255, 1858, 1111, 2205, 1795, 1097, 1172, 915, 2044, 1024, 1311, 1512, 2300, 1409, 1563, 1064, 865, 498, 1256, 1859, 1112, 2206, 1796, 1098, 1173, 916, 2045, 1025, 1312, 1513, 2301, 1410, 1564, 1065, 866, 499, 1257, 1860, 1113, 2207, 1797, 1099, 1174, 917, 2046, 1026, 1313, 1514, 2302, 1411, 1565, 1066, 867, 500, 1258, 1861, 1114, 2208, 1798, 1100, 1175, 918, 2047, 1027, 1314, 1515, 2303, 1412, 1566, 1067, 868, 501, 1259, 1862, 1115, 2209, 1799, 1101, 1176, 919, 2048, 1028, 1315, 1516, 2304, 1413, 1567, 1068, 869, 502, 1260, 1863, 1116, 2210, 1800, 1102, 1177, 920, 2049, 1029, 1316, 1517, 2305, 1414, 1568, 1069, 870, 503, 1261, 1864, 1117, 2211, 1486, 1103, 1178, 921, 2050, 1030, 1317, 1518, 2306, 1415, 1569, 1070, 871, 504, 1262, 1865, 1118, 2212, 1487, 1104, 1179, 922, 2051, 1031, 1318, 1519, 2307, 1416, 1570, 1071, 872, 505, 1263, 1866, 1119, 2213, 1488, 1105, 1180, 923, 2052, 1032, 1319, 1520, 2308, 1417, 1571, 1072, 873, 506, 1264, 1867, 1120, 2214, 1489, 1106, 1181, 924, 2053, 1033, 1320, 1521, 2309, 1418, 1572, 1073, 874, 507, 1265, 1868, 1121, 2215, 1490, 1107, 1182, 925, 2054, 1034, 1321, 1522, 2310, 1419, 1573, 1074, 875, 508, 1266, 1869, 1122, 2216, 1491, 1108, 1183, 926, 2055, 1035, 1322, 1523, 2311, 1420, 1574, 1075, 876, 509, 1267, 1870, 1123, 2217, 1492, 1109, 1184, 927, 2056, 1036, 1323, 1524, 2312, 1421, 1575, 1076, 877, 510, 1268, 1871, 1124, 2218, 1493, 1110, 1185, 928, 2057, 1037, 1324, 1525, 2313, 1422, 1576, 1077, 878, 511, 1269, 1872, 1125, 2219, 1494, 1111, 1186, 929, 2058, 1038, 1325, 1526, 2314, 1423, 1577, 1078, 879, 512, 1270, 1873, 1126, 2220, 1495, 1112, 1187, 930, 2059, 1039, 1326, 1527, 2315, 1424, 1578, 1079, 880, 513, 1271, 1874, 1127, 2221, 1496, 1113, 1188, 931, 2060, 1040, 1327, 1528, 2316, 1425, 1579, 1080, 881, 514, 1272, 1875, 1128, 2222, 1497, 1114, 1189, 932, 2061, 1041, 1328, 1529, 2317, 1426, 1580, 953, 882, 515, 1273, 1876, 1129, 2223, 1498, 1115, 1190, 933, 2062, 1042, 1329, 1530, 2318, 1427, 1581, 954, 883, 516, 1274, 1877, 1130, 2224, 1499, 1116, 1191, 934, 2063, 1043, 1330, 1531, 2319, 1428, 1582, 955, 884, 517, 1275, 1878, 1131, 2225, 1500, 1117, 1192, 935, 2064, 1044, 1331, 1532, 2320, 1429, 1583, 956, 885, 518, 1276, 1879, 1132, 2226, 1501, 1118, 1193, 936, 2065, 1045, 1332, 1533, 2321, 1430, 1584, 957, 886, 519, 1277, 1880, 1133, 2227, 1502, 1119, 1194, 937, 2066, 1046, 1333, 1534, 2322, 1431, 1585, 958, 887, 520, 1278, 1881, 1134, 2228, 1503, 1120, 1195, 938, 2067, 1047, 1334, 1535, 2323, 1432, 1586, 959, 888, 521, 1279, 1882, 1135, 2229, 1504, 1121, 1196, 939, 2068, 1048, 1335, 1536, 2324, 1433, 1587, 960, 889, 522, 1280, 1883, 1136, 2230, 1505, 1122, 1197, 940, 2069, 1049, 1336, 1537, 2325, 1434, 1588, 961, 890, 523, 1281, 1884, 1137, 2231, 1506, 1123, 1198, 941, 2070, 1050, 1337, 1538, 2326, 1435, 1589, 962, 891, 524, 1282, 1885, 1138, 2232, 1507, 1124, 1199, 942, 2071, 1051, 1338, 1539, 2327, 1436, 1590, 963, 892, 525, 1283, 1886, 1139, 2233, 1508, 1125, 1200, 943, 2072, 1052, 1339, 1540, 2328, 1437, 1591, 964, 893, 526, 1284, 1887, 1140, 2234, 1509, 1126, 1201, 944, 2073, 1053, 1340, 1541, 2329, 1438, 1592, 965, 894, 527, 1285, 1888, 1141, 2235, 1510, 1127, 1202, 945, 2074, 1054, 1341, 1542, 2330, 1439, 1593, 966, 895, 528, 1286, 1889, 1142, 2236, 1511, 1128, 1203, 946, 2075, 1055, 1342, 1543, 2331, 1440, 1594, 967, 896, 529, 1287, 1890, 1143, 2237, 1512, 1129, 1204, 947, 2076, 1056, 1343, 1544, 2332, 1081, 1595, 968, 897, 530, 1288, 1891, 1144, 2238, 1513, 1130, 1205, 948, 2077, 1057, 1344, 1545, 2333, 1082, 1596, 969, 898, 531, 1289, 1892, 1145, 2239, 1514, 1131, 1206, 949, 2078, 1058, 1345, 1546, 2334, 1083, 1597, 970, 899, 532, 1290, 1893, 1146, 2240, 1515, 1132, 1207, 950, 2079, 1059, 1346, 1547, 2335, 1084, 1598, 971, 900, 533, 1291, 1894, 1147, 2241, 1516, 1133, 1208, 951, 2080, 1060, 1347, 1548, 2336, 1085, 1599, 972, 901, 534, 1292, 1801, 1148, 2242, 1517, 1134, 1209, 952, 2081, 1061, 1348, 1549, 2337, 1086, 1600, 973, 902, 535, 1293, 1802, 1149, 2243, 1518, 1135, 1210, 953, 2082, 1062, 1349, 1550, 2338, 1087, 1601, 974, 903, 536, 1294, 1803, 1150, 2244, 1519, 1136, 1211, 954, 2083, 1063, 1350, 1551, 2339, 1088, 1602, 975, 904, 537, 1295, 1804, 1151, 2245, 1520, 1137, 1212, 955, 2084, 1064, 1351, 1552, 2340, 1089, 1603, 976, 905, 538, 1296, 1805, 1152, 2246, 1521, 1138, 1213, 956, 2085, 1065, 1352, 1553, 2341, 1090, 1604, 977, 906, 539, 1297, 1806, 1153, 2247, 1522, 1139, 1214, 957, 2086, 1066, 1353, 1554, 2342, 1091, 1605, 978, 907, 540, 1298, 1807, 1154, 2248, 1523, 1140, 1215, 958, 2087, 1067, 1354, 1555, 2343, 1092, 1606, 979, 908, 541, 1299, 1808, 1155, 2249, 1524, 1141, 1216, 959, 2088, 1068, 1355, 1556, 2344, 1093, 1607, 980, 909, 542, 1300, 1809, 1156, 2250, 1525, 1142, 1217, 960, 2089, 1069, 1356, 1557, 2345, 1094, 1608, 981, 910, 543, 1301, 1810, 1157, 2251, 1526, 1143, 1218, 961, 2090, 1070, 1357, 1558, 2346, 1095, 1609, 982, 911, 544, 1302, 1811, 1158, 2252, 1527, 1144, 1219, 962, 2091, 1071, 1358, 1559, 2347, 1096, 1610, 983, 912, 545, 1303, 1812, 1159, 2253, 1528, 1145, 1220, 963, 2092, 1072, 1359, 1560, 2348, 1097, 1611, 984, 913, 546, 1304, 1813, 1160, 2254, 1529, 1146, 1221, 964, 2093, 1073, 1360, 1561, 2349, 1098, 1612, 985, 914, 547, 1305, 1814, 1161, 2255, 1530, 1147, 1222, 965, 2094, 1074, 1361, 1562, 2350, 1099, 1613, 986, 915, 548, 1306, 1815, 1162, 2256, 1531, 1148, 1223, 966, 2095, 1075, 1362, 1563, 2351, 1100, 1614, 987, 916, 549, 1307, 1816, 1163, 2257, 1532, 1149, 1224, 967, 2096, 1076, 1363, 1564, 2352, 1101, 1615, 988, 917, 550, 1308, 1817, 1164, 2258, 1533, 1150, 1225, 968, 2097, 1077, 1364, 1565, 2353, 1102, 1616, 989, 918, 551, 1309, 1818, 1165, 2259, 1534, 1151, 1226, 969, 2098, 1078, 1365, 1566, 2354, 1103, 1617, 990, 919, 552, 1310, 1819, 1166, 2260, 1535, 1152, 1227, 970, 2099, 1079, 1366, 1567, 2355, 1104, 1618, 991, 920, 553, 1311, 1820, 1167, 2261, 1536, 1153, 1228, 971, 2100, 1080, 1367, 1568, 2356, 1105, 1619, 992, 921, 554, 1312, 1821, 1168, 2262, 1537, 1154, 1229, 972, 2101, 721, 1368, 1441, 2357, 1106, 1620, 993, 922, 555, 1313, 1822, 1169, 2263, 1538, 1155, 1230, 973, 2102, 722, 1369, 1442, 2358, 1107, 1621, 994, 923, 556, 1081, 1823, 1170, 2264, 1539, 1156, 1231, 974, 2103, 723, 1370, 1443, 2359, 1108, 1622, 995, 924, 557, 1082, 1824, 1171, 2265, 1540, 1157, 1232, 975, 2104, 724, 1371, 1444, 2360, 1109, 1623, 996, 925, 558, 1083, 1825, 1172, 2266, 1541, 1158, 1233, 976, 2105, 725, 1372, 1445, 2361, 1110, 1624, 997, 926, 559, 1084, 1826, 1173, 2267, 1542, 1159, 1234, 977, 2106, 726, 1373, 1446, 2362, 1111, 1625, 998, 927, 560, 1085, 1827, 1174, 2268, 1543, 1160, 1235, 978, 2107, 727, 1374, 1447, 2363, 1112, 1626, 999, 928, 561, 1086, 1828, 1175, 2269, 1544, 1161, 1236, 979, 2108, 728, 1375, 1448, 2364, 1113, 1627, 1000, 929, 562, 1087, 1829, 1176, 2270, 1545, 1162, 1237, 980, 2109, 729, 1376, 1449, 2365, 1114, 1628, 1001, 930, 563, 1088, 1830, 1177, 2271, 1546, 1163, 1238, 981, 2110, 730, 1377, 1450, 2366, 1115, 1629, 1002, 931, 564, 1089, 1831, 1178, 2272, 1547, 1164, 1239, 982, 2111, 731, 1378, 1451, 2367, 1116, 1630, 1003, 932, 565, 1090, 1832, 1179, 2273, 1548, 1165, 1240, 983, 2112, 732, 1379, 1452, 2368, 1117, 1631, 1004, 933, 566, 1091, 1833, 1180, 2274, 1549, 1166, 1241, 984, 2113, 733, 1380, 1453, 2369, 1118, 1632, 1005, 934, 567, 1092, 1834, 1181, 2275, 1550, 1167, 1242, 985, 2114, 734, 1381, 1454, 2370, 1119, 1633, 1006, 935, 568, 1093, 1835, 1182, 2276, 1551, 1168, 1243, 986, 2115, 735, 1382, 1455, 2371, 1120, 1634, 1007, 936, 569, 1094, 1836, 1183, 2277, 1552, 1169, 1244, 987, 2116, 736, 1383, 1456, 2372, 1121, 1635, 1008, 937, 570, 1095, 1837, 1184, 2278, 1553, 1170, 1245, 988, 2117, 737, 1384, 1457, 2373, 1122, 1636, 1009, 938, 571, 1096, 1838, 1185, 2279, 1554, 1171, 1246, 989, 2118, 738, 1385, 1458, 2374, 1123, 1637, 1010, 939, 572, 1097, 1839, 1186, 2280, 1555, 1172, 1247, 990, 2119, 739, 1386, 1459, 2375, 1124, 1638, 1011, 940, 573, 1098, 1840, 1187, 2281, 1556, 1173, 1248, 991, 2120, 740, 1387, 1460, 2376, 1125, 1639, 1012, 941, 574, 1099, 1841, 1188, 2282, 1557, 1174, 1249, 992, 2121, 741, 1388, 1461, 2377, 1126, 1640, 1013, 942, 575, 1100, 1842, 1189, 2283, 1558, 1175, 1250, 993, 2122, 742, 1389, 1462, 2378, 1127, 1641, 1014, 943, 576, 1101, 1843, 1190, 2284, 1559, 1176, 1251, 994, 2123, 743, 1390, 1463, 2379, 1128, 1642, 1015, 944, 577, 1102, 1844, 1191, 2285, 1560, 1177, 1252, 995, 2124, 744, 1391, 1464, 2380, 1129, 1643, 1016, 945, 578, 1103, 1845, 1192, 2286, 1561, 1178, 1253, 996, 2125, 745, 1392, 1465, 2381, 1130, 1644, 1017, 946, 579, 1104, 1846, 1193, 2287, 1562, 1179, 1254, 997, 2126, 746, 1393, 1466, 2382, 1131, 1645, 1018, 947, 580, 1105, 1847, 1194, 2288, 1563, 1180, 1255, 998, 2127, 747, 1394, 1467, 2383, 1132, 1646, 1019, 948, 581, 1106, 1848, 1195, 2289, 1564, 1181, 1256, 999, 2128, 748, 1395, 1468, 2384, 1133, 1647, 1020, 949, 582, 1107, 1849, 1196, 2290, 1565, 1182, 1257, 1000, 2129, 749, 1396, 1469, 2385, 1134, 1648, 1021, 950, 583, 1108, 1850, 1197, 2291, 1566, 1183, 1258, 1001, 2130, 750, 1397, 1470, 2386, 1135, 1649, 1022, 951, 584, 1109, 1851, 1198, 2292, 1567, 1184, 1259, 1002, 2131, 751, 1398, 1471, 2387, 1136, 1650, 1023, 952, 585, 1110, 1852, 1199, 2293, 1568, 1185, 1260, 1003, 2132, 752, 1399, 1472, 2388, 1137, 1651, 1024, 953, 586, 1111, 1853, 1200, 2294, 1569, 1186, 1261, 1004, 2133, 753, 1400, 1473, 2389, 1138, 1652, 1025, 954, 587, 1112, 1854, 1201, 2295, 1570, 1187, 1262, 1005, 2134, 754, 1401, 1474, 2390, 1139, 1653, 1026, 955, 588, 1113, 1855, 1202, 2296, 1571, 1188, 1263, 1006, 2135, 755, 1402, 1475, 2391, 1140, 1654, 1027, 956, 589, 1114, 1856, 1203, 2297, 1572, 1189, 1264, 1007, 2136, 756, 1403, 1476, 2392, 1141, 1655, 1028, 957, 590, 1115, 1857, 1204, 2298, 1573, 1190, 1265, 1008, 2137, 757, 1404, 1477, 2393, 1142, 1656, 1029, 958, 591, 1116, 1858, 1205, 2299, 1574, 1191, 1266, 1009, 2138, 758, 1405, 1478, 2394, 1143, 1657, 1030, 959, 592, 1117, 1859, 1206, 2300, 1575, 1192, 1267, 1010, 2139, 759, 1406, 1479, 2395, 1144, 1658, 1031, 960, 593, 1118, 1860, 1207, 2301, 1576, 1193, 1268, 1011, 2140, 760, 1407, 1480, 2396, 1145, 1659, 1032, 961, 594, 1119, 1861, 1208, 2302, 1577, 1194, 1269, 1012, 2141, 761, 1408, 1481, 2397, 1146, 1660, 1033, 962, 595, 1120, 1862, 1209, 2303, 1578, 1195, 1270, 1013, 2142, 762, 1409, 1482, 2398, 1147, 1661, 1034, 963, 596, 1121, 1863, 1210, 2304, 1579, 1196, 1271, 1014, 2143, 763, 1410, 1483, 2399, 1148, 1662, 1035, 964, 597, 1122, 1864, 1211, 2305, 1580, 1197, 1272, 1015, 2144, 764, 1411, 1484, 2400, 1149, 1663, 1036, 965, 598, 1123, 1865, 1212, 2161, 1581, 1198, 1273, 1016, 2145, 765, 1412, 1485, 2401, 1150, 1664, 1037, 966, 599, 1124, 1866, 1213, 2162, 1582, 1199, 1274, 1017, 2146, 766, 1413, 1486, 2402, 1151, 1665, 1038, 967, 600, 1125, 1867, 1214, 2163, 1583, 1200, 1275, 1018, 2147, 767, 1414, 1487, 2403, 1152, 1666, 1039, 968, 601, 1126, 1868, 1215, 2164, 1584, 1201, 1276, 1019, 2148, 768, 1415, 1488, 2404, 1153, 1667, 1040, 969, 602, 1127, 1869, 1216, 2165, 1585, 1202, 1277, 1020, 2149, 769, 1416, 1489, 2405, 1154, 1668, 1041, 970, 603, 1128, 1870, 1217, 2166, 1586, 1203, 1278, 1021, 2150, 770, 1417, 1490, 2406, 1155, 1669, 1042, 971, 604, 1129, 1871, 1218, 2167, 1587, 1204, 1279, 1022, 2151, 771, 1418, 1491, 2407, 1156, 1670, 1043, 972, 605, 1130, 1872, 1219, 2168, 1588, 1205, 1280, 1023, 2152, 772, 1419, 1492, 2408, 1157, 1671, 1044, 973, 606, 1131, 1873, 1220, 2169, 1589, 1206, 1281, 1024, 2153, 773, 1420, 1493, 2409, 1158, 1672, 1045, 974, 607, 1132, 1874, 1221, 2170, 1590, 1207, 1282, 1025, 2154, 774, 1421, 1494, 2410, 1159, 1673, 1046, 975, 608, 1133, 1875, 1222, 2171, 1591, 1208, 1283, 1026, 2155, 775, 1422, 1495, 2411, 1160, 1674, 1047, 976, 609, 1134, 1876, 1223, 2172, 1592, 1209, 1284, 1027, 2156, 776, 1423, 1496, 2412, 1161, 1675, 1048, 977, 610, 1135, 1877, 1224, 2173, 1593, 1210, 1285, 1028, 2157, 777, 1424, 1497, 2413, 1162, 1676, 1049, 978, 611, 1136, 1878, 1225, 2174, 1594, 1211, 1286, 1029, 2158, 778, 1425, 1498, 2414, 1163, 1677, 1050, 979, 612, 1137, 1879, 1226, 2175, 1595, 1212, 1287, 1030, 2159, 779, 1426, 1499, 2415, 1164, 1678, 1051, 980, 613, 1138, 1880, 1227, 2176, 1596, 1213, 1288, 1031, 2160, 780, 1427, 1500, 2416, 1165, 1679, 1052, 981, 614, 1139, 1881, 1228, 2177, 1597, 1214, 1289, 1032, 1801, 781, 1428, 1501, 2417, 1166, 1680, 1053, 982, 615, 1140, 1882, 1229, 2178, 1598, 1215, 1290, 1033, 1802, 782, 1429, 1502, 2418, 1167, 1681, 1054, 983, 616, 1141, 1883, 1230, 2179, 1599, 1216, 1291, 1034, 1803, 783, 1430, 1503, 2419, 1168, 1682, 1055, 984, 617, 1142, 1884, 1231, 2180, 1600, 1217, 1292, 1035, 1804, 784, 1431, 1504, 2420, 1169, 1683, 1056, 985, 618, 1143, 1885, 1232, 2181, 1601, 1218, 1293, 1036, 1805, 785, 1432, 1505, 2421, 1170, 1684, 1057, 986, 619, 1144, 1886, 1233, 2182, 1602, 1219, 1294, 1037, 1806, 786, 1433, 1506, 2422, 1171, 1685, 1058, 987, 620, 1145, 1887, 1234, 2183, 1603, 1220, 1295, 1038, 1807, 787, 1434, 1507, 2423, 1172, 1686, 1059, 988, 621, 1146, 1888, 1235, 2184, 1604, 1221, 1296, 1039, 1808, 788, 1435, 1508, 2424, 1173, 1687, 1060, 989, 622, 1147, 1889, 1236, 2185, 1605, 1222, 1297, 1040, 1809, 789, 1436, 1509, 2425, 1174, 1688, 1061, 990, 623, 1148, 1890, 1237, 2186, 1606, 1223, 1298, 1041, 1810, 790, 1437, 1510, 2426, 1175, 1689, 1062, 991, 624, 1149, 1891, 1238, 2187, 1607, 1224, 1299, 1042, 1811, 791, 1438, 1511, 2427, 1176, 1690, 1063, 992, 625, 1150, 1892, 1239, 2188, 1608, 1225, 1300, 1043, 1812, 792, 1439, 1512, 2428, 1177, 1691, 1064, 993, 626, 1151, 1893, 1240, 2189, 1609, 1226, 1301, 1044, 1813, 793, 1440, 1513, 2429, 1178, 1692, 1065, 994, 627, 1152, 1894, 1241, 2190, 1610, 1227, 1302, 1045, 1814, 794, 1081, 1514, 2430, 1179, 1693, 1066, 995, 628, 1153, 1895, 1242, 2191, 1611, 1228, 1303, 1046, 1815, 795, 1082, 1515, 2431, 1180, 1694, 1067, 996, 629, 1154, 1896, 1243, 2192, 1612, 1229, 1304, 1047, 1816, 796, 1083, 1516, 2432, 1181, 1695, 1068, 997, 630, 1155, 1897, 1244, 2193, 1613, 1230, 1305, 1048, 1817, 797, 1084, 1517, 2433, 1182, 1696, 1069, 998, 631, 1156, 1898, 1245, 2194, 1614, 1231, 1306, 1049, 1818, 798, 1085, 1518, 2434, 1183, 1697, 1070, 999, 632, 1157, 1899, 1246, 2195, 1615, 1232, 1307, 1050, 1819, 799, 1086, 1519, 2435, 1184, 1698, 1071, 1000, 633, 1158, 1900, 1247, 2196, 1616, 1233, 1308, 1051, 1820, 800, 1087, 1520, 2436, 1185, 1699, 1072, 1001, 634, 1159, 1901, 1248, 2197, 1617, 1234, 1309, 1052, 1821, 801, 1088, 1521, 2437, 1186, 1700, 1073, 1002, 635, 1160, 1902, 1249, 2198, 1618, 1235, 1310, 1053, 1822, 802, 1089, 1522, 2438, 1187, 1701, 1074, 1003, 636, 1161, 1903, 1250, 2199, 1619, 1236, 1311, 1054, 1823, 803, 1090, 1523, 2439, 1188, 1702, 1075, 1004, 637, 1162, 1904, 1251, 2200, 1620, 1237, 1312, 1055, 1824, 804, 1091, 1524, 2440, 1189, 1703, 1076, 1005, 638, 1163, 1905, 1252, 2201, 1621, 1238, 1313, 1056, 1825, 805, 1092, 1525, 2441, 1190, 1704, 1077, 1006, 639, 1164, 1906, 1253, 2202, 1622, 1239, 1314, 1057, 1826, 806, 1093, 1526, 2442, 1191, 1705, 1078, 1007, 640, 1165, 1907, 1254, 2203, 1623, 1240, 1315, 1058, 1827, 807, 1094, 1527, 2443, 1192, 1706, 1079, 1008, 641, 1166, 1908, 1255, 2204, 1624, 1241, 1316, 1059, 1828, 808, 1095, 1528, 2444, 1193, 1707, 1080, 1009, 642, 1167, 1909, 1256, 2205, 1625, 1242, 1317, 1060, 1829, 809, 1096, 1529, 2445, 1194, 1708, 849, 1010, 643, 1168, 1910, 1257, 2206, 1626, 1243, 1318, 1061, 1830, 810, 1097, 1530, 2446, 1195, 1709, 850, 1011, 644, 1169, 1911, 1258, 2207, 1627, 1244, 1319, 1062, 1831, 811, 1098, 1531, 2447, 1196, 1710, 851, 1012, 645, 1170, 1912, 1259, 2208, 1628, 1245, 1320, 1063, 1832, 812, 1099, 1532, 2448, 1197, 1711, 852, 1013, 646, 1171, 1913, 1260, 2209, 1629, 1246, 1321, 1064, 1833, 813, 1100, 1533, 2449, 1198, 1712, 853, 1014, 647, 1172, 1914, 1261, 2210, 1630, 1247, 1322, 1065, 1834, 814, 1101, 1534, 2450, 1199, 1713, 854, 1015, 648, 1173, 1915, 1262, 2211, 1631, 1248, 1323, 1066, 1835, 815, 1102, 1535, 2451, 1200, 1714, 855, 1016, 649, 1174, 1916, 1263, 2212, 1632, 1249, 1324, 1067, 1836, 816, 1103, 1536, 2452, 1201, 1715, 856, 1017, 650, 1175, 1917, 1264, 2213, 1633, 1250, 1325, 1068, 1837, 817, 1104, 1537, 2453, 1202, 1716, 857, 1018, 651, 1176, 1918, 1265, 2214, 1634, 1251, 1326, 1069, 1838, 818, 1105, 1538, 2454, 2309, 2050, 2431, 1457, 2978, 1410, 2013, 1568, 2360, 1861, 1553, 1706, 1127, 2682, 1222, 2325, 1667, 2866, 2310, 2051, 2432, 1458, 2979, 1411, 2014, 1569, 2361, 1862, 1554, 1707, 1128, 2683, 1223, 2326, 1668, 2867, 2311, 2052, 2433, 1459, 2980, 1412, 2015, 1570, 2362, 1863, 1555, 1708, 1129, 2684, 1224, 2327, 1669, 2868, 2312, 2053, 2434, 1460, 2981, 1413, 2016, 1571, 2363, 1864, 1556, 1709, 1130, 2685, 1225, 2328, 1670, 2869, 2313, 2054, 2435, 1461, 2982, 1414, 2017, 1572, 2364, 1865, 1557, 1710, 1131, 2686, 1226, 2329, 1671, 2870, 2314, 2055, 2436, 1462, 2983, 1415, 2018, 1573, 2365, 1866, 1558, 1711, 1132, 2687, 1227, 2330, 1672, 2871, 2315, 2056, 2437, 1463, 2984, 1416, 2019, 1574, 2366, 1867, 1559, 1712, 1133, 2688, 1228, 2331, 1673, 2872, 2316, 2057, 2438, 1464, 2985, 1417, 2020, 1575, 2367, 1868, 1560, 1713, 1134, 2689, 1229, 2332, 1674, 2873, 2317, 2058, 2439, 1465, 2986, 1418, 2021, 1576, 2368, 1869, 1561, 1714, 1135, 2690, 1230, 2333, 1675, 2874, 2318, 2059, 2440, 1466, 2987, 1419, 2022, 1577, 2369, 1870, 1562, 1715, 1136, 2691, 1231, 2334, 1676, 2875, 2319, 2060, 2441, 1467, 2988, 1420, 2023, 1578, 2370, 1871, 1563, 1716, 1137, 2692, 1232, 2335, 1677, 2876, 2320, 2061, 2442, 1468, 2989, 1421, 2024, 1579, 2371, 1872, 1564, 1717, 1138, 2693, 1233, 2336, 1678, 2877, 2321, 2062, 2443, 1469, 2990, 1422, 2025, 1580, 2372, 1873, 1565, 1718, 1139, 2694, 1234, 2337, 1679, 2878, 2322, 2063, 2444, 1470, 2991, 1423, 2026, 1581, 2373, 1874, 1566, 1719, 1140, 2695, 1235, 2338, 1680, 2879, 2323, 2064, 2445, 1471, 2992, 1424, 2027, 1582, 2374, 1875, 1567, 1720, 1141, 2696, 1236, 2339, 1681, 2880, 2324, 2065, 2446, 1472, 2993, 1425, 2028, 1583, 2375, 1876, 1568, 1721, 1142, 2697, 1237, 2340, 1682, 2521, 2325, 2066, 2447, 1473, 2994, 1426, 2029, 1584, 2376, 1877, 1569, 1722, 1143, 2698, 1238, 2341, 1683, 2522, 2326, 2067, 2448, 1474, 2995, 1427, 2030, 1585, 2377, 1878, 1570, 1723, 1144, 2699, 1239, 2342, 1684, 2523, 2327, 2068, 2449, 1475, 2996, 1428, 2031, 1586, 2378, 1879, 1571, 1724, 1145, 2700, 1240, 2343, 1685, 2524, 2328, 2069, 2450, 1476, 2997, 1429, 2032, 1587, 2379, 1880, 1572, 1725, 1146, 2701, 1241, 2344, 1686, 2525, 2329, 2070, 2451, 1477, 2998, 1430, 2033, 1588, 2380, 1881, 1573, 1726, 1147, 2702, 1242, 2345, 1687, 2526, 2330, 2071, 2452, 1478, 2999, 1431, 2034, 1589, 2381, 1882, 1574, 1727, 1148, 2703, 1243, 2346, 1688, 2527, 2331, 2072, 2453, 1479, 3000, 1432, 2035, 1590, 2382, 1883, 1575, 1728, 1149, 2704, 1244, 2347, 1689, 2528, 2332, 2073, 2454, 1480, 3001, 1433, 2036, 1591, 2383, 1884, 1576, 1729, 1150, 2705, 1245, 2348, 1690, 2529, 2333, 2074, 2455, 1481, 3002, 1434, 2037, 1592, 2384, 1885, 1577, 1730, 1151, 2706, 1246, 2349, 1691, 2530, 2334, 2075, 2456, 1482, 3003, 1435, 2038, 1593, 2385, 1886, 1578, 1731, 1152, 2707, 1247, 2350, 1692, 2531, 2335, 2076, 2457, 1483, 3004, 1436, 2039, 1594, 2386, 1887, 1579, 1732, 1153, 2708, 1248, 2351, 1693, 2532, 2336, 2077, 2458, 1484, 3005, 1437, 2040, 1595, 2387, 1888, 1580, 1733, 1154, 2709, 1249, 2352, 1694, 2533, 2337, 2078, 2459, 1485, 3006, 1438, 2041, 1596, 2388, 1889, 1581, 1734, 1155, 2710, 1250, 2353, 1695, 2534, 2338, 2079, 2460, 1486, 3007, 1439, 2042, 1597, 2389, 1890, 1582, 1735, 1156, 2711, 1251, 2354, 1696, 2535, 2339, 2080, 2461, 1487, 3008, 1440, 2043, 1598, 2390, 1891, 1583, 1736, 1157, 2712, 1252, 2355, 1697, 2536, 2340, 2081, 2462, 1488, 3009, 1208, 2044, 1599, 2391, 1892, 1584, 1737, 1158, 2713, 1253, 2356, 1698, 2537, 2341, 2082, 2463, 1489, 3010, 1209, 2045, 1600, 2392, 1893, 1585, 1738, 1159, 2714, 1254, 2357, 1699, 2538, 2342, 2083, 2464, 1490, 3011, 1210, 2046, 1601, 2393, 1894, 1586, 1739, 1160, 2715, 1255, 2358, 1700, 2539, 2343, 2084, 2465, 1491, 3012, 1211, 2047, 1602, 2394, 1895, 1587, 1740, 1161, 2716, 1256, 2359, 1701, 2540, 2344, 2085, 2466, 1492, 3013, 1212, 2048, 1603, 2395, 1896, 1588, 1741, 1162, 2717, 1257, 2360, 1702, 2541, 2345, 2086, 2467, 1493, 3014, 1213, 2049, 1604, 2396, 1897, 1589, 1742, 1163, 2718, 1258, 2361, 1703, 2542, 2346, 2087, 2468, 1494, 3015, 1214, 2050, 1605, 2397, 1898, 1590, 1743, 1164, 2719, 1259, 2362, 1704, 2543, 2347, 2088, 2469, 1495, 3016, 1215, 2051, 1606, 2398, 1899, 1591, 1744, 1165, 2720, 1260, 2363, 1705, 2544, 2348, 2089, 2470, 1496, 3017, 1216, 2052, 1607, 2399, 1900, 1592, 1745, 1166, 2721, 1261, 2364, 1706, 2545, 2349, 2090, 2471, 1497, 3018, 1217, 2053, 1608, 2400, 1901, 1593, 1746, 1167, 2722, 1262, 2365, 1579, 2546, 2350, 2091, 2472, 1498, 3019, 1218, 2054, 1609, 2401, 1902, 1594, 1747, 1168, 2723, 1263, 2366, 1580, 2547, 2351, 2092, 2473, 1499, 3020, 1219, 2055, 1610, 2402, 1903, 1595, 1748, 1169, 2724, 1264, 2367, 1581, 2548, 2352, 2093, 2474, 1500, 3021, 1220, 2056, 1611, 2403, 1904, 1596, 1749, 1170, 2725, 1265, 2368, 1582, 2549, 2353, 2094, 2475, 1501, 3022, 1221, 2057, 1612, 2404, 1905, 1597, 1750, 1171, 2726, 1266, 2369, 1583, 2550, 2354, 2095, 2476, 1502, 3023, 1222, 2058, 1613, 2405, 1906, 1598, 1751, 1172, 2727, 1267, 2370, 1584, 2551, 2355, 2096, 2477, 1503, 3024, 1223, 2059, 1614, 2406, 1907, 1599, 1752, 1173, 2728, 1268, 2371, 1585, 2552, 2356, 2097, 2478, 1504, 3025, 1224, 2060, 1615, 2407, 1908, 1600, 1753, 1174, 2729, 1269, 2372, 1586, 2553, 2357, 2098, 2479, 1505, 3026, 1225, 2061, 1616, 2408, 1909, 1601, 1754, 1175, 2730, 1270, 2373, 1587, 2554, 2358, 2099, 2480, 1506, 3027, 1226, 2062, 1617, 2409, 1910, 1602, 1755, 1176, 2731, 1271, 2374, 1588, 2555, 2359, 2100, 2481, 1507, 3028, 1227, 2063, 1618, 2410, 1911, 1603, 1756, 1177, 2732, 1272, 2375, 1589, 2556, 2360, 2101, 2482, 1508, 3029, 1228, 2064, 1619, 2411, 1912, 1604, 1757, 1178, 2733, 1273, 2376, 1590, 2557, 2361, 2102, 2483, 1509, 3030, 1229, 2065, 1620, 2412, 1913, 1605, 1758, 1179, 2734, 1274, 2377, 1591, 2558, 2362, 2103, 2484, 1510, 3031, 1230, 2066, 1621, 2413, 1914, 1606, 1759, 1180, 2735, 1275, 2378, 1592, 2559, 2363, 2104, 2485, 1511, 3032, 1231, 2067, 1622, 2414, 1915, 1607, 1760, 1181, 2736, 1276, 2379, 1593, 2560, 2364, 2105, 2486, 1512, 3033, 1232, 2068, 1623, 2415, 1916, 1608, 1761, 1182, 2737, 1277, 2380, 1594, 2561, 2365, 2106, 2487, 1513, 3034, 1233, 2069, 1624, 2416, 1917, 1609, 1762, 1183, 2738, 1278, 2381, 1595, 2562, 2366, 2107, 2488, 1514, 3035, 1234, 2070, 1625, 2417, 1918, 1610, 1763, 1184, 2739, 1279, 2382, 1596, 2563, 2367, 2108, 2489, 1515, 3036, 1235, 2071, 1626, 2418, 1919, 1611, 1764, 1185, 2740, 1280, 2383, 1597, 2564, 2368, 2109, 2490, 1516, 3037, 1236, 2072, 1627, 2419, 1920, 1612, 1765, 1186, 2741, 1281, 2384, 1598, 2565, 2369, 2110, 2491, 1517, 3038, 1237, 2073, 1628, 2420, 1921, 1613, 1766, 1187, 2742, 1282, 2385, 1599, 2566, 2370, 2111, 2492, 1518, 3039, 1238, 2074, 1629, 2421, 1922, 1614, 1767, 1188, 2743, 1283, 2386, 1600, 2567, 2371, 2112, 2493, 1519, 3040, 1239, 2075, 1630, 2422, 1923, 1615, 1768, 1189, 2744, 1284, 2387, 1601, 2568, 2372, 2113, 2494, 1520, 3041, 1240, 2076, 1631, 2423, 1924, 1616, 1769, 1190, 2745, 1285, 2388, 1602, 2569, 2373, 2114, 2495, 1521, 3042, 1241, 2077, 1632, 2424, 1925, 1617, 1770, 1191, 2746, 1286, 2389, 1603, 2570, 2374, 2115, 2496, 1522, 3043, 1242, 2078, 1633, 2425, 1926, 1618, 1771, 1192, 2747, 1287, 2390, 1604, 2571, 2375, 2116, 2497, 1523, 3044, 1243, 2079, 1634, 2426, 1927, 1619, 1772, 1193, 2748, 1288, 2391, 1605, 2572, 2376, 2117, 2498, 1524, 3045, 1244, 2080, 1635, 2427, 1928, 1620, 1773, 1194, 2749, 1289, 2392, 1606, 2573, 2377, 2118, 2499, 1525, 3046, 1245, 2081, 1636, 2428, 1929, 1621, 1774, 1195, 2750, 1290, 2393, 1607, 2574, 2378, 2119, 2500, 1526, 3047, 1246, 2082, 1637, 2429, 1930, 1622, 1775, 1196, 2751, 1291, 2161, 1608, 2575, 2379, 2120, 2501, 1527, 3048, 1247, 2083, 1638, 2430, 1931, 1623, 1776, 1197, 2752, 1292, 2162, 1609, 2576, 2380, 2121, 2502, 1528, 3049, 1248, 2084, 1639, 2431, 1932, 1624, 1777, 1198, 2753, 1293, 2163, 1610, 2577, 2381, 2122, 2503, 1529, 3050, 1249, 2085, 1640, 2432, 1933, 1625, 1778, 1199, 2754, 1294, 2164, 1611, 2578, 2382, 2123, 2504, 1530, 3051, 1250, 2086, 1641, 2433, 1934, 1626, 1779, 1200, 2755, 1295, 2165, 1612, 2579, 2383, 2124, 2505, 1531, 3052, 1251, 2087, 1642, 2434, 1935, 1627, 1780, 1201, 2756, 1296, 2166, 1613, 2580, 2384, 2125, 2506, 1532, 3053, 1252, 2088, 1643, 2435, 1936, 1628, 1781, 1202, 2757, 1297, 2167, 1614, 2581, 2385, 2126, 2507, 1533, 3054, 1253, 2089, 1644, 2436, 1937, 1629, 1782, 1203, 2758, 1298, 2168, 1615, 2582, 2386, 2127, 2508, 1534, 3055, 1254, 2090, 1645, 2437, 1938, 1630, 1783, 1204, 2759, 1299, 2169, 1616, 2583, 2387, 2128, 2509, 1535, 3056, 1255, 2091, 1646, 2438, 1939, 1631, 1784, 1205, 2760, 1300, 2170, 1617, 2584, 2388, 2129, 2510, 1536, 3057, 1256, 2092, 1647, 2439, 1940, 1632, 1785, 1206, 2761, 1301, 2171, 1618, 2585, 2389, 2130, 2511, 1537, 3058, 1257, 2093, 1648, 2440, 1941, 1633, 1786, 1207, 2762, 1302, 2172, 1619, 2586, 2390, 2131, 2512, 1538, 3059, 1258, 2094, 1649, 2441, 1942, 1634, 1787, 1208, 2763, 1303, 2173, 1620, 2587, 2391, 2132, 2513, 1539, 3060, 1259, 2095, 1650, 2442, 1943, 1635, 1788, 1209, 2764, 1304, 2174, 1621, 2588, 2392, 2133, 2514, 1540, 3061, 1260, 2096, 1651, 2443, 1944, 1636, 1789, 1210, 2765, 1305, 2175, 1622, 2589, 2393, 2134, 2515, 1541, 3062, 1261, 2097, 1652, 2444, 1945, 1637, 1790, 1211, 2766, 1306, 2176, 1623, 2590, 2394, 2135, 2516, 1542, 3063, 1262, 2098, 1653, 2445, 1946, 1638, 1791, 1212, 2767, 1307, 2177, 1624, 2591, 2395, 2136, 2517, 1543, 3064, 1263, 2099, 1654, 2446, 1947, 1639, 1792, 1213, 2768, 1308, 2178, 1625, 2592, 2396, 2137, 2518, 1544, 3065, 1264, 2100, 1655, 2447, 1948, 1640, 1793, 1214, 2769, 1309, 2179, 1626, 2593, 2397, 2138, 2519, 1545, 3066, 1265, 2101, 1656, 2448, 1949, 1641, 1794, 1215, 2770, 1310, 2180, 1627, 2594, 2398, 2139, 2520, 1546, 3067, 1266, 2102, 1657, 2449, 1950, 1642, 1795, 1216, 2771, 1311, 2181, 1628, 2595, 2399, 2140, 2161, 1547, 3068, 1267, 2103, 1658, 2450, 1951, 1643, 1796, 1217, 2772, 1312, 2182, 1629, 2596, 2400, 2141, 2162, 1548, 3069, 1268, 2104, 1659, 2451, 1952, 1644, 1797, 1218, 2773, 1313, 2183, 1630, 2597, 2401, 2142, 2163, 1549, 3070, 1269, 2105, 1660, 2452, 1953, 1645, 1798, 1219, 2774, 1314, 2184, 1631, 2598, 2402, 2143, 2164, 1550, 3071, 1270, 2106, 1661, 2453, 1954, 1646, 1799, 1220, 2775, 1315, 2185, 1632, 2599, 2403, 2144, 2165, 1551, 3072, 1271, 2107, 1662, 2454, 1955, 1647, 1800, 1221, 2521, 1316, 2186, 1633, 2600, 2404, 2145, 2166, 1552, 3073, 1272, 2108, 1663, 2455, 1956, 1648, 1441, 1222, 2522, 1317, 2187, 1634, 2601, 2405, 2146, 2167, 1553, 3074, 1273, 2109, 1664, 2456, 1957, 1649, 1442, 1223, 2523, 1318, 2188, 1635, 2602, 2406, 2147, 2168, 1554, 3075, 1274, 2110, 1665, 2457, 1958, 1650, 1443, 1224, 2524, 1319, 2189, 1636, 2603, 2407, 2148, 2169, 1555, 3076, 1275, 2111, 1666, 2458, 1959, 1651, 1444, 1225, 2525, 1320, 2190, 1637, 2604, 2408, 2149, 2170, 1556, 2881, 1276, 2112, 1667, 2459, 1960, 1652, 1445, 1226, 2526, 1321, 2191, 1638, 2605, 2409, 2150, 2171, 1557, 2882, 1277, 2113, 1668, 2460, 1961, 1653, 1446, 1227, 2527, 1322, 2192, 1639, 2606, 2410, 2151, 2172, 1558, 2883, 1278, 2114, 1669, 2461, 1962, 1654, 1447, 1228, 2528, 1323, 2193, 1640, 2607, 2411, 2152, 2173, 1559, 2884, 1279, 2115, 1670, 2462, 1963, 1655, 1448, 1229, 2529, 1324, 2194, 1641, 2608, 2412, 2153, 2174, 1560, 2885, 1280, 2116, 1671, 2463, 1964, 1656, 1449, 1230, 2530, 1325, 2195, 1642, 2609, 2413, 2154, 2175, 1561, 2886, 1281, 2117, 1672, 2464, 1965, 1657, 1450, 1231, 2531, 1326, 2196, 1643, 2610, 2414, 2155, 2176, 1562, 2887, 1282, 2118, 1673, 2465, 1966, 1658, 1451, 1232, 2532, 1327, 2197, 1644, 2611, 2415, 2156, 2177, 1563, 2888, 1283, 2119, 1674, 2466, 1967, 1659, 1452, 1233, 2533, 1328, 2198, 1645, 2612, 2416, 2157, 2178, 1564, 2889, 1284, 2120, 1675, 2467, 1968, 1660, 1453, 1234, 2534, 1329, 2199, 1646, 2613, 2417, 2158, 2179, 1565, 2890, 1285, 2121, 1676, 2468, 1969, 1661, 1454, 1235, 2535, 1330, 2200, 1647, 2614, 2418, 2159, 2180, 1566, 2891, 1286, 2122, 1677, 2469, 1970, 1662, 1455, 1236, 2536, 1331, 2201, 1648, 2615, 2419, 2160, 2181, 1567, 2892, 1287, 2123, 1678, 2470, 1971, 1663, 1456, 1237, 2537, 1332, 2202, 1649, 2616, 2420, 1801, 2182, 1568, 2893, 1288, 2124, 1679, 2471, 1972, 1664, 1457, 1238, 2538, 1333, 2203, 1650, 2617, 2421, 1802, 2183, 1569, 2894, 1289, 2125, 1680, 2472, 1973, 1665, 1458, 1239, 2539, 1334, 2204, 1651, 2618, 2422, 1803, 2184, 1570, 2895, 1290, 2126, 1681, 2473, 1974, 1666, 1459, 1240, 2540, 1335, 2205, 1652, 2619, 2423, 1804, 2185, 1571, 2896, 1291, 2127, 1682, 2474, 1975, 1667, 1460, 1241, 2541, 1336, 2206, 1653, 2620, 2424, 1805, 2186, 1572, 2897, 1292, 2128, 1683, 2475, 1976, 1668, 1461, 1242, 2542, 1337, 2207, 1654, 2621, 2425, 1806, 2187, 1573, 2898, 1293, 2129, 1684, 2476, 1977, 1669, 1462, 1243, 2543, 1338, 2208, 1655, 2622, 2426, 1807, 2188, 1574, 2899, 1294, 2130, 1685, 2477, 1978, 1670, 1463, 1244, 2544, 1339, 2209, 1656, 2623, 2427, 1808, 2189, 1575, 2900, 1295, 2131, 1686, 2478, 1979, 1671, 1464, 1245, 2545, 1340, 2210, 1657, 2624, 2428, 1809, 2190, 1576, 2901, 1296, 2132, 1687, 2479, 1980, 1672, 1465, 1246, 2546, 1341, 2211, 1658, 2625, 2429, 1810, 2191, 1577, 2902, 1297, 2133, 1688, 2480, 1981, 1673, 1466, 1247, 2547, 1342, 2212, 1659, 2626, 2430, 1811, 2192, 1578, 2903, 1298, 2134, 1689, 2481, 1982, 1674, 1467, 1248, 2548, 1343, 2213, 1660, 2627, 2431, 1812, 2193, 1579, 2904, 1299, 2135, 1690, 2482, 1983, 1675, 1468, 1249, 2549, 1344, 2214, 1661, 2628, 2432, 1813, 2194, 1580, 2905, 1300, 2136, 1691, 2483, 1984, 1676, 1469, 1250, 2550, 1345, 2215, 1662, 2629, 2433, 1814, 2195, 1581, 2906, 1301, 2137, 1692, 2484, 1985, 1677, 1470, 1251, 2551, 1346, 2216, 1663, 2630, 2434, 1815, 2196, 1582, 2907, 1302, 2138, 1693, 2485, 1986, 1678, 1471, 1252, 2552, 1347, 2217, 1664, 2631, 2435, 1816, 2197, 1583, 2908, 1303, 2139, 1694, 2486, 1987, 1679, 1472, 1253, 2553, 1348, 2218, 1665, 2632, 2436, 1817, 2198, 1584, 2909, 1304, 2140, 1695, 2487, 1988, 1680, 1473, 1254, 2554, 1349, 2219, 1666, 2633, 2437, 1818, 2199, 1585, 2910, 1305, 2141, 1696, 2488, 1989, 1681, 1474, 1255, 2555, 1350, 2220, 1667, 2634, 2438, 1819, 2200, 1586, 2911, 1306, 2142, 1697, 2489, 1990, 1682, 1475, 1256, 2556, 1351, 2221, 1668, 2635, 2439, 1820, 2201, 1587, 2912, 1307, 2143, 1698, 2490, 1991, 1683, 1476, 1257, 2557, 1352, 2222, 1669, 2636, 2440, 1821, 2202, 1588, 2913, 1308, 2144, 1699, 2491, 1992, 1684, 1477, 1258, 2558, 1353, 2223, 1670, 2637, 2441, 1822, 2203, 1589, 2914, 1309, 2145, 1700, 2492, 1993, 1685, 1478, 1259, 2559, 1354, 2224, 1671, 2638, 2442, 1823, 2204, 1590, 2915, 1310, 2146, 1701, 2493, 1994, 1686, 1479, 1260, 2560, 1355, 2225, 1672, 2639, 2443, 1824, 2205, 1591, 2916, 1311, 2147, 1702, 2494, 1995, 1687, 1480, 1261, 2561, 1356, 2226, 1535, 2640, 2444, 1825, 2206, 1592, 2917, 1312, 2148, 1703, 2495, 1996, 1688, 1481, 1262, 2562, 1357, 2227, 1536, 2641, 2445, 1826, 2207, 1593, 2918, 1313, 2149, 1704, 2496, 1997, 1689, 1482, 1263, 2563, 1358, 2228, 1537, 2642, 2446, 1827, 2208, 1594, 2919, 1314, 2150, 1705, 2497, 1998, 1690, 1483, 1264, 2564, 1359, 2229, 1538, 2643, 2447, 1828, 2209, 1595, 2920, 1315, 2151, 1706, 2498, 1999, 1691, 1484, 1265, 2565, 1360, 2230, 1539, 2644, 2448, 1829, 2210, 1596, 2921, 1316, 2152, 1707, 2499, 2000, 1692, 1485, 1266, 2566, 1361, 2231, 1540, 2645, 2449, 1830, 2211, 1597, 2922, 1317, 2153, 1708, 2500, 2001, 1693, 1486, 1267, 2567, 1362, 2232, 1541, 2646, 2450, 1831, 2212, 1598, 2923, 1318, 2154, 1709, 2501, 2002, 1694, 1487, 1268, 2568, 1363, 2233, 1542, 2647, 2451, 1832, 2213, 1599, 2924, 1319, 2155, 1710, 2502, 2003, 1695, 1488, 1269, 2569, 1364, 2234, 1543, 2648, 2452, 1833, 2214, 1600, 2925, 1320, 2156, 1711, 2503, 2004, 1696, 1489, 1270, 2570, 1365, 2235, 1544, 2649, 2453, 1834, 2215, 1601, 2926, 1321, 2157, 1712, 2504, 2005, 1697, 1490, 1271, 2571, 1366, 2236, 1545, 2650, 2454, 1835, 2216, 1602, 2927, 1322, 2158, 1713, 2505, 2006, 1698, 1491, 1272, 2572, 1367, 2237, 1546, 2651, 2455, 1836, 2217, 1603, 2928, 1323, 2159, 1714, 2506, 2007, 1699, 1492, 1273, 2573, 1368, 2238, 1547, 2652, 2456, 1837, 2218, 1604, 2929, 1324, 2160, 1715, 2507, 2008, 1700, 1493, 1274, 2574, 1369, 2239, 1548, 2653, 2457, 1838, 2219, 1605, 2930, 1325, 2067, 1716, 2508, 2009, 1701, 1494, 1275, 2575, 1370, 2240, 1549, 2654, 2458, 1839, 2220, 1606, 2931, 1326, 2068, 1717, 2509, 2010, 1702, 1495, 1276, 2576, 1371, 2241, 1550, 2655, 2459, 1840, 2221, 1607, 2932, 1327, 2069, 1718, 2510, 2011, 1703, 1496, 1277, 2577, 1372, 2242, 1551, 2656, 2460, 1841, 2222, 1608, 2933, 1328, 2070, 1719, 2511, 2012, 1704, 1497, 1278, 2578, 1373, 2243, 1552, 2657, 2461, 1842, 2223, 1609, 2934, 1329, 2071, 1720, 2512, 2013, 1705, 1498, 1279, 2579, 1374, 2244, 1553, 2658, 2462, 1843, 2224, 1610, 2935, 1330, 2072, 1721, 2513, 2014, 1706, 1499, 1280, 2580, 1375, 2245, 1554, 2659, 2463, 1844, 2225, 1611, 2936, 1331, 2073, 1722, 2514, 2015, 1707, 1500, 1281, 2581, 1376, 2246, 1555, 2660, 2464, 1845, 2226, 1612, 2937, 1332, 2074, 1723, 2515, 2016, 1708, 1501, 1282, 2582, 1377, 2247, 1556, 2661, 2465, 1846, 2227, 1613, 2938, 1333, 2075, 1724, 2516, 2017, 1709, 1502, 1283, 2583, 1378, 2248, 1557, 2662, 2466, 1847, 2228, 1614, 2881, 1334, 2076, 1725, 2517, 2018, 1710, 1503, 1284, 2584, 1379, 2249, 1558, 2663, 2467, 1848, 2229, 1615, 2882, 1335, 2077, 1726, 2518, 2019, 1711, 1504, 1285, 2585, 1380, 2250, 1559, 2664, 2468, 1849, 2230, 1616, 2883, 1336, 2078, 1727, 2519, 2020, 1712, 1505, 1286, 2586, 1381, 2251, 1560, 2665, 2469, 1850, 2231, 1617, 2884, 1337, 2079, 1728, 2520, 2021, 1713, 1506, 1287, 2587, 1382, 2252, 1561, 2666, 2470, 1851, 2232, 1618, 2885, 1338, 2080, 1729, 2376, 2022, 1714, 1507, 1288, 2588, 1383, 2253, 1562, 2667, 2471, 1852, 2233, 1619, 2886, 1339, 2081, 1730, 2377, 2023, 1715, 1508, 1289, 2589, 1384, 2254, 1563, 2668, 2472, 1853, 2234, 1620, 2887, 1340, 2082, 1731, 2378, 2024, 1716, 1509, 1290, 2590, 1385, 2255, 1564, 2669, 2473, 1854, 2235, 1621, 2888, 1341, 2083, 1732, 2379, 2025, 1717, 1510, 1291, 2591, 1386, 2256, 1565, 2670, 2474, 1855, 2236, 1622, 2889, 1342, 2084, 1733, 2380, 2026, 1718, 1511, 1292, 2592, 1387, 2257, 1566, 2671, 2475, 1856, 2237, 1623, 2890, 1343, 2085, 1734, 2381, 2027, 1719, 1512, 1293, 2593, 1388, 2258, 1567, 2672, 2476, 1857, 2238, 1624, 2891, 1344, 2086, 1735, 2382, 2028, 1720, 1513, 1294, 2594, 1389, 2259, 1568, 2673, 2477, 1858, 2239, 1625, 2892, 1345, 2087, 1736, 2383, 2029, 1721, 1514, 1295, 2595, 1390, 2260, 1569, 2674, 2478, 1859, 2240, 1626, 2893, 1346, 2088, 1737, 2384, 2030, 1722, 1515, 1296, 2596, 1391, 2261, 1570, 2675, 2479, 1860, 2241, 1627, 2894, 1347, 2089, 1738, 2385, 2031, 1723, 1516, 1297, 2597, 1392, 2262, 1571, 2676, 2480, 1861, 2242, 1628, 2895, 1348, 2090, 1739, 2386, 2032, 1724, 1517, 1298, 2598, 1393, 2263, 1572, 2677, 2481, 1862, 2243, 1629, 2896, 1349, 2091, 1740, 2387, 2033, 1725, 1518, 1299, 2599, 1394, 2264, 1573, 2678, 2482, 1863, 2244, 1630, 2897, 1350, 2092, 1741, 2388, 2034, 1726, 1519, 1300, 2600, 1395, 2265, 1574, 2679, 2483, 1864, 2245, 1631, 2898, 1351, 2093, 1742, 2389, 2035, 1727, 1520, 1301, 2601, 1396, 2266, 1575, 2680, 2484, 1865, 2246, 1632, 2899, 1352, 2094, 1743, 2390, 2036, 1728, 1521, 1302, 2602, 1397, 2267, 1576, 2681, 2485, 1866, 2247, 1633, 2900, 1353, 2095, 1744, 2391, 2037, 1729, 1522, 1303, 2603, 1398, 2268, 1577, 2682, 2486, 1867, 2248, 1634, 2901, 1354, 2096, 1745, 2392, 2038, 1730, 1523, 1304, 2604, 1399, 2269, 1578, 2683, 2487, 1868, 2249, 1635, 2902, 1355, 2097, 1746, 2393, 2039, 1731, 1524, 1305, 2605, 1400, 2270, 1579, 2684, 2488, 1869, 2250, 1636, 2903, 1356, 2098, 1747, 2394, 2040, 1732, 1525, 1306, 2606, 1401, 2271, 1580, 2685, 2489, 1870, 2251, 1637, 2904, 1357, 2099, 1748, 2395, 2041, 1733, 1526, 1307, 2607, 1402, 2272, 1581, 2686, 2490, 1871, 2252, 1638, 2905, 1358, 2100, 1749, 2396, 2042, 1734, 1527, 1308, 2608, 1403, 2273, 1582, 2687, 2491, 1872, 2253, 1639, 2906, 1359, 2101, 1750, 2397, 2043, 1735, 1528, 1309, 2609, 1404, 2274, 1583, 2688, 2492, 1873, 2254, 1640, 2907, 1360, 2102, 1751, 2398, 2044, 1736, 1529, 1310, 2610, 1405, 2275, 1584, 2689, 2493, 1874, 2255, 1641, 2908, 1361, 2103, 1752, 2399, 2045, 1737, 1530, 1311, 2611, 1406, 2276, 1585, 2690, 2494, 1875, 2256, 1642, 2909, 1362, 2104, 1753, 2400, 2046, 1738, 1531, 1312, 2612, 1407, 2277, 1586, 2691, 2495, 1876, 2257, 1643, 2910, 1363, 2105, 1754, 2401, 2047, 1739, 1532, 1313, 2613, 1408, 2278, 1587, 2692, 2496, 1877, 2258, 1644, 2911, 1364, 2106, 1755, 2402, 2048, 1740, 1533, 1314, 2614, 1409, 2279, 1588, 2693, 2497, 1878, 2259, 1645, 2912, 1365, 2107, 1756, 2403, 2049, 1741, 1534, 1315, 2615, 1410, 2280, 1589, 2694, 2498, 1879, 2260, 1646, 2913, 1366, 2108, 1757, 2404, 2050, 1742, 1535, 1316, 2616, 1411, 2281, 1590, 2695, 2499, 1880, 2261, 1647, 2914, 1367, 2109, 1758, 2405, 2051, 1743, 1536, 1317, 2617, 1412, 2282, 1591, 2696, 2500, 1881, 2262, 1648, 2915, 1368, 2110, 1759, 2406, 2052, 1744, 1537, 1318, 2618, 1413, 2283, 1592, 2697, 2501, 1882, 2263, 1649, 2916, 1369, 2111, 1760, 2407, 2053, 1745, 1538, 1319, 2619, 1414, 2284, 1593, 2698, 2502, 1883, 2264, 1650, 2917, 1370, 2112, 1761, 2408, 2054, 1746, 1539, 1320, 2620, 1415, 2285, 1594, 2699, 2503, 1884, 2265, 1651, 2918, 1371, 2113, 1762, 2409, 2055, 1747, 1540, 1321, 2621, 1416, 2286, 1595, 2700, 2504, 1885, 2266, 1652, 2919, 1372, 2114, 1763, 2410, 2056, 1748, 1541, 1322, 2622, 1417, 2287, 1596, 2701, 2505, 1886, 2267, 1653, 2920, 1373, 2115, 1764, 2411, 2057, 1749, 1542, 1323, 2623, 1418, 2161, 1597, 2702, 2506, 1887, 2268, 1654, 2921, 1374, 2116, 1765, 2412, 2058, 1750, 1543, 1324, 2624, 1419, 2162, 1598, 2703, 2507, 1888, 2269, 1655, 2922, 1375, 2117, 1766, 2413, 2059, 1751, 1544, 1325, 2625, 1420, 2163, 1599, 2704, 2508, 1889, 2270, 1656, 2923, 1376, 2118, 1767, 2414, 2060, 1752, 1545, 1326, 2521, 1421, 2164, 1600, 2705, 2509, 1890, 2271, 1657, 2924, 1377, 2119, 1768, 2415, 2061, 1753, 1546, 1327, 2522, 1422, 2165, 1601, 2706, 2510, 1891, 2272, 1658, 2925, 1378, 2120, 1769, 2416, 2062, 1754, 1547, 1328, 2523, 1423, 2166, 1602, 2707, 2511, 1892, 2273, 1659, 2926, 1379, 2121, 1770, 2417, 2063, 1755, 1548, 1329, 2524, 1424, 2167, 1603, 2708, 2512, 1893, 2274, 1660, 2927, 1380, 2122, 1771, 2418, 2064, 1756, 1549, 1330, 2525, 1425, 2168, 1604, 2709, 2513, 1894, 2275, 1661, 2928, 1381, 2123, 1772, 2419, 2065, 1757, 1550, 1331, 2526, 1426, 2169, 1605, 2710, 2514, 1895, 2276, 1662, 2929, 1382, 2124, 1773, 2420, 2066, 1758, 1551, 1332, 2527, 1427, 2170, 1606, 2711, 2515, 1896, 2277, 1663, 2930, 1383, 2125, 1774, 2421, 2067, 1759, 1552, 1333, 2528, 1428, 2171, 1607, 2712, 2516, 1897, 2278, 1664, 2931, 1384, 2126, 1775, 2422, 2068, 1760, 1553, 1334, 2529, 1429, 2172, 1608, 2713, 2517, 1898, 2279, 1665, 2932, 1385, 2127, 1776, 2423, 2069, 1761, 1554, 1335, 2530, 1430, 2173, 1609, 2714, 2518, 1899, 2280, 1666, 2933, 1386, 2128, 1777, 2424, 2070, 1762, 1555, 1336, 2531, 1431, 2174, 1610, 2715, 2519, 1900, 2281, 1667, 2934, 1387, 2129, 1778, 2425, 2071, 1763, 1556, 1337, 2532, 1432, 2175, 1611, 2716, 2520, 1901, 2282, 1668, 2935, 1388, 2130, 1779, 2426, 2072, 1764, 1557, 1338, 2533, 1433, 2176, 1612, 2717, 2161, 1902, 2283, 1669, 2936, 1389, 2131, 1780, 2427, 2073, 1765, 1558, 1339, 2534, 1434, 2177, 1613, 2718, 2162, 1903, 2284, 1670, 2937, 1390, 2132, 1781, 2428, 2074, 1766, 1559, 1340, 2535, 1435, 2178, 1614, 2719, 2163, 1904, 2285, 1671, 2938, 1391, 2133, 1782, 2429, 2075, 1767, 1560, 1341, 2536, 1436, 2179, 1615, 2720, 2164, 1905, 2286, 1672, 2939, 1392, 2134, 1783, 2430, 2076, 1768, 1561, 1342, 2537, 1437, 2180, 1616, 2721, 2165, 1906, 2287, 1673, 2940, 1393, 2135, 1784, 2431, 2077, 1769, 1562, 1343, 2538, 1438, 2181, 1617, 2722, 2166, 1907, 2288, 1674, 2941, 1394, 2136, 1785, 2432, 2078, 1770, 1563, 1344, 2539, 1439, 2182, 1618, 2723, 2167, 1908, 2289, 1675, 2942, 1395, 2137, 1786, 2433, 2079, 1771, 1564, 1345, 2540, 1440, 2183, 1619, 2724, 2168, 1909, 2290, 1676, 2943, 1396, 2138, 1787, 2434, 2080, 1772, 1565, 1346, 2541, 1081, 2184, 1620, 2725, 2169, 1910, 2291, 1677, 2944, 1397, 2139, 1788, 2435, 2081, 1773, 1566, 1347, 2542, 1082, 2185, 1621, 2726, 2170, 1911, 2292, 1678, 2945, 1398, 2140, 1789, 2436, 2082, 1774, 1567, 1348, 2543, 1083, 2186, 1622, 2727, 2171, 1912, 2293, 1679, 2946, 1399, 2141, 1790, 2437, 2083, 1775, 1568, 1349, 2544, 1084, 2187, 1623, 2728, 2172, 1913, 2294, 1680, 2947, 1400, 2142, 1791, 2438, 2084, 1776, 1569, 1350, 2545, 1085, 2188, 1624, 2729, 2173, 1914, 2295, 1681, 2948, 1401, 2143, 1792, 2439, 2085, 1777, 1570, 1351, 2546, 1086, 2189, 1625, 2730, 2174, 1915, 2296, 1682, 2949, 1402, 2144, 1793, 2440, 2086, 1778, 1571, 1352, 2547, 1087, 2190, 1626, 2731, 2175, 1916, 2297, 1683, 2950, 1403, 2145, 1794, 2441, 2087, 1779, 1572, 1353, 2548, 1088, 2191, 1627, 2732, 2176, 1917, 2298, 1684, 2951, 1404, 2146, 1795, 2442, 2088, 1780, 1573, 1354, 2549, 1089, 2192, 1628, 2733, 2177, 1918, 2299, 1685, 2952, 1405, 2147, 1796, 2443, 2089, 1781, 1574, 1355, 2550, 1090, 2193, 1629, 2734, 2178, 1919, 2300, 1686, 2953, 1406, 2148, 1797, 2444, 2090, 1782, 1575, 1356, 2551, 1091, 2194, 1630, 2735, 2179, 1920, 2301, 1687, 2954, 1407, 2149, 1798, 2445, 2091, 1783, 1576, 1357, 2552, 1092, 2195, 1631, 2736, 2180, 1921, 2302, 1688, 2955, 1408, 2150, 1799, 2446, 2092, 1784, 1577, 1358, 2553, 1093, 2196, 1632, 2737, 2181, 1922, 2303, 1689, 2956, 1409, 2151, 1800, 2447, 2093, 1785, 1578, 1359, 2554, 1094, 2197, 1633, 2738, 2182, 1923, 2304, 1690, 2957, 1410, 2152, 1441, 2448, 2094, 1786, 1579, 1360, 2555, 1095, 2198, 1634, 2739, 2183, 1924, 2305, 1691, 2958, 1411, 2153, 1442, 2449, 2095, 1787, 1580, 1361, 2556, 1096, 2199, 1635, 2740, 2184, 1925, 2306, 1692, 2959, 1412, 2154, 1443, 2450, 2096, 1788, 1581, 1362, 2557, 1097, 2200, 1636, 2741, 2185, 1926, 2307, 1693, 2960, 1413, 2155, 1444, 2451, 2097, 1789, 1582, 1363, 2558, 1098, 2201, 1637, 2742, 2186, 1927, 2308, 1694, 2961, 1414, 2156, 1445, 2452, 2098, 1790, 1583, 1364, 2559, 1099, 2202, 1638, 2743, 2187, 1928, 2309, 1695, 2962, 1415, 2157, 1446, 2453, 2099, 1791, 1584, 1365, 2560, 1100, 2203, 1639, 2744, 2188, 1929, 2310, 1696, 2963, 1416, 2158, 1447, 2454, 2100, 1792, 1585, 1366, 2561, 1101, 2204, 1640, 2745, 2189, 1930, 2311, 1697, 2964, 1417, 2159, 1448, 2455, 2101, 1793, 1586, 1367, 2562, 1102, 2205, 1641, 2746, 2190, 1931, 2312, 1698, 2965, 1418, 2160, 1449, 2456, 2102, 1794, 1587, 1368, 2563, 1103, 2206, 1642, 2747, 2191, 1932, 2313, 1699, 2966, 1419, 1895, 1450, 2457, 2103, 1795, 1588, 1369, 2564, 1104, 2207, 1643, 2748, 2192, 1933, 2314, 1700, 2967, 1420, 1896, 1451, 2458, 2104, 1796, 1589, 1370, 2565, 1105, 2208, 1644, 2749, 2193, 1934, 2315, 1701, 2968, 1421, 1897, 1452, 2459, 2105, 1797, 1590, 1371, 2566, 1106, 2209, 1645, 2750, 2194, 1935, 2316, 1702, 2969, 1422, 1898, 1453, 2460, 2106, 1798, 1591, 1372, 2567, 1107, 2210, 1646, 2751, 2195, 1936, 2317, 1703, 2970, 1423, 1899, 1454, 2461, 2107, 1799, 1592, 1373, 2568, 1108, 2211, 1647, 2752, 2196, 1937, 2318, 1704, 2971, 1424, 1900, 1455, 2462, 2108, 1800, 1593, 1374, 2569, 1109, 2212, 1648, 2753, 2197, 1938, 2319, 1705, 2972, 1425, 1901, 1456, 2463, 2109, 1441, 1594, 1375, 2570, 1110, 2213, 1649, 2754, 2198, 1939, 2320, 1706, 2973, 1426, 1902, 1457, 2464, 2110, 1442, 1595, 1376, 2571, 1111, 2214, 1650, 2755, 2199, 1940, 2321, 1707, 2974, 1427, 1903, 1458, 2465, 2111, 1443, 1596, 1377, 2572, 1112, 2215, 1651, 2756, 2200, 1941, 2322, 1708, 2975, 1428, 1904, 1459, 2466, 2112, 1444, 1597, 1378, 2573, 1113, 2216, 1652, 2757, 2201, 1942, 2323, 1709, 2976, 1429, 1905, 1460, 2467, 2113, 1445, 1598, 1379, 2574, 1114, 2217, 1653, 2758, 2202, 1943, 2324, 1710, 2977, 1430, 1906, 1461, 2468, 2114, 1446, 1599, 1380, 2575, 1115, 2218, 1654, 2759, 2203, 1944, 2325, 1711, 2978, 1431, 1907, 1462, 2469, 2115, 1447, 1600, 1381, 2576, 1116, 2219, 1655, 2760, 2204, 1945, 2326, 1712, 2979, 1432, 1908, 1463, 2470, 2116, 1448, 1601, 1382, 2577, 1117, 2220, 1656, 2761, 2205, 1946, 2327, 1713, 2980, 1433, 1909, 1464, 2471, 2117, 1449, 1602, 1383, 2578, 1118, 2221, 1657, 2762, 2206, 1947, 2328, 1714, 2981, 1434, 1910, 1465, 2472, 2118, 1450, 1603, 1384, 2579, 1119, 2222, 1658, 2763, 2207, 1948, 2329, 1715, 2982, 1435, 1911, 1466, 2473, 2119, 1451, 1604, 1385, 2580, 1120, 2223, 1659, 2764, 2208, 1949, 2330, 1716, 2983, 1436, 1912, 1467, 2474, 2120, 1452, 1605, 1386, 2581, 1121, 2224, 1660, 2765, 2209, 1950, 2331, 1717, 2984, 1437, 1913, 1468, 2475, 2121, 1453, 1606, 1387, 2582, 1122, 2225, 1661, 2766, 2210, 1951, 2332, 1718, 2985, 1438, 1914, 1469, 2476, 2122, 1454, 1607, 1388, 2583, 1123, 2226, 1662, 2767, 2211, 1952, 2333, 1719, 2986, 1439, 1915, 1470, 2477, 2123, 1455, 1608, 1389, 2584, 1124, 2227, 1569, 2768, 2212, 1953, 2334, 1720, 2881, 1440, 1916, 1471, 2478, 2124, 1456, 1609, 1390, 2585, 1125, 2228, 1570, 2769, 2213, 1954, 2335, 1721, 2882, 1314, 1917, 1472, 2479, 2125, 1457, 1610, 1391, 2586, 1126, 2229, 1571, 2770, 2214, 1955, 2336, 1722, 2883, 1315, 1918, 1473, 2480, 2126, 1458, 1611, 1392, 2587, 1127, 2230, 1572, 2771, 2215, 1956, 2337, 1723, 2884, 1316, 1919, 1474, 2481, 2127, 1459, 1612, 1393, 2588, 1128, 2231, 1573, 2772, 2216, 1957, 2338, 1724, 2885, 1317, 1920, 1475, 2482, 2128, 1460, 1613, 1394, 2589, 1129, 2232, 1574, 2773, 2217, 1958, 2339, 1725, 2886, 1318, 1921, 1476, 2483, 2129, 1461, 1614, 1395, 2590, 1130, 2233, 1575, 2774, 2218, 1959, 2340, 1726, 2887, 1319, 1922, 1477, 2484, 2130, 1462, 1615, 1396, 2591, 1131, 2234, 1576, 2775, 2219, 1960, 2341, 1727, 2888, 1320, 1923, 1478, 2485, 2131, 1463, 1616, 1397, 2592, 1132, 2235, 1577, 2776, 2220, 1961, 2342, 1728, 2889, 1321, 1924, 1479, 2486, 2132, 1464, 1617, 1398, 2593, 1133, 2236, 1578, 2777, 2221, 1962, 2343, 1729, 2890, 1322, 1925, 1480, 2487, 2133, 1465, 1618, 1399, 2594, 1134, 2237, 1579, 2778, 2222, 1963, 2344, 1730, 2891, 1323, 1926, 1481, 2488, 2134, 1466, 1619, 1400, 2595, 1135, 2238, 1580, 2779, 2223, 1964, 2345, 1731, 2892, 1324, 1927, 1482, 2489, 2135, 1467, 1620, 1401, 2596, 1136, 2239, 1581, 2780, 2224, 1965, 2346, 1732, 2893, 1325, 1928, 1483, 2490, 2136, 1468, 1621, 1402, 2597, 1137, 2240, 1582, 2781, 2225, 1966, 2347, 1733, 2894, 1326, 1929, 1484, 2491, 2137, 1469, 1622, 1403, 2598, 1138, 2241, 1583, 2782, 2226, 1967, 2348, 1734, 2895, 1327, 1930, 1485, 2492, 2138, 1470, 1623, 1404, 2599, 1139, 2242, 1584, 2783, 2227, 1968, 2349, 1735, 2896, 1328, 1931, 1486, 2493, 2139, 1471, 1624, 1405, 2600, 1140, 2243, 1585, 2784, 2228, 1969, 2350, 1736, 2897, 1329, 1932, 1487, 2494, 2140, 1472, 1625, 1406, 2601, 1141, 2244, 1586, 2785, 2229, 1970, 2351, 1737, 2898, 1330, 1933, 1488, 2495, 2141, 1473, 1626, 1407, 2602, 1142, 2245, 1587, 2786, 2230, 1971, 2352, 1738, 2899, 1331, 1934, 1489, 2496, 2142, 1474, 1627, 1408, 2603, 1143, 2246, 1588, 2787, 2231, 1972, 2353, 1739, 2900, 1332, 1935, 1490, 2497, 2143, 1475, 1628, 1409, 2604, 1144, 2247, 1589, 2788, 2232, 1973, 2354, 1740, 2901, 1333, 1936, 1491, 2498, 2144, 1476, 1629, 1410, 2605, 1145, 2248, 1590, 2789, 2233, 1974, 2355, 1741, 2902, 1334, 1937, 1492, 2499, 2145, 1477, 1630, 1411, 2606, 1146, 2249, 1591, 2790, 2234, 1975, 2356, 1742, 2903, 1335, 1938, 1493, 2500, 1801, 1478, 1631, 1412, 2607, 1147, 2250, 1592, 2791, 2235, 1976, 2357, 1743, 2904, 1336, 1939, 1494, 2501, 1802, 1479, 1632, 1413, 2608, 1148, 2251, 1593, 2792, 2236, 1977, 2358, 1744, 2905, 1337, 1940, 1495, 2502, 1803, 1480, 1633, 1414, 2609, 1149, 2252, 1594, 2793, 2237, 1978, 2359, 1745, 2906, 1338, 1941, 1496, 2503, 1804, 1481, 1634, 1415, 2610, 1150, 2253, 1595, 2794, 2238, 1979, 2360, 1746, 2907, 1339, 1942, 1497, 2504, 1805, 1482, 1635, 1416, 2611, 1151, 2254, 1596, 2795, 2239, 1980, 2361, 1747, 2908, 1340, 1943, 1498, 2505, 1806, 1483, 1636, 1417, 2612, 1152, 2255, 1597, 2796, 2240, 1981, 2362, 1748, 2909, 1341, 1944, 1499, 2506, 1807, 1484, 1637, 1418, 2613, 1153, 2256, 1598, 2797, 2241, 1982, 2363, 1749, 2910, 1342, 1945, 1500, 2507, 1808, 1485, 1638, 1419, 2614, 1154, 2257, 1599, 2798, 2242, 1983, 2364, 1750, 2911, 1343, 1946, 1501, 2508, 1809, 1486, 1639, 1420, 2615, 1155, 2258, 1600, 2799, 2243, 1984, 2365, 1751, 2912, 1344, 1947, 1502, 2509, 1810, 1487, 1640, 1421, 2616, 1156, 2259, 1601, 2800, 2244, 1985, 2366, 1752, 2913, 1345, 1948, 1503, 2510, 1811, 1488, 1641, 1422, 2617, 1157, 2260, 1602, 2801, 2245, 1986, 2367, 1753, 2914, 1346, 1949, 1504, 2511, 1812, 1489, 1642, 1423, 2618, 1158, 2261, 1603, 2802, 2246, 1987, 2368, 1754, 2915, 1347, 1950, 1505, 2512, 1813, 1490, 1643, 1424, 2619, 1159, 2262, 1604, 2803, 2247, 1988, 2369, 1755, 2916, 1348, 1951, 1506, 2513, 1814, 1491, 1644, 1425, 2620, 1160, 2263, 1605, 2804, 2248, 1989, 2370, 1756, 2917, 1349, 1952, 1507, 2514, 1815, 1492, 1645, 1426, 2621, 1161, 2264, 1606, 2805, 2249, 1990, 2371, 1757, 2918, 1350, 1953, 1508, 2515, 1801, 1493, 1646, 1427, 2622, 1162, 2265, 1607, 2806, 2250, 1991, 2372, 1758, 2919, 1351, 1954, 1509, 2516, 1802, 1494, 1647, 1428, 2623, 1163, 2266, 1608, 2807, 2251, 1992, 2373, 1759, 2920, 1352, 1955, 1510, 2517, 1803, 1495, 1648, 1429, 2624, 1164, 2267, 1609, 2808, 2252, 1993, 2374, 1760, 2921, 1353, 1956, 1511, 2518, 1804, 1496, 1649, 1430, 2625, 1165, 2268, 1610, 2809, 2253, 1994, 2375, 1761, 2922, 1354, 1957, 1512, 2519, 1805, 1497, 1650, 1431, 2626, 1166, 2269, 1611, 2810, 2254, 1995, 2376, 1762, 2923, 1355, 1958, 1513, 2520, 1806, 1498, 1651, 1432, 2627, 1167, 2270, 1612, 2811, 2255, 1996, 2377, 1763, 2924, 1356, 1959, 1514, 2306, 1807, 1499, 1652, 1433, 2628, 1168, 2271, 1613, 2812, 2256, 1997, 2378, 1764, 2925, 1357, 1960, 1515, 2307, 1808, 1500, 1653, 1434, 2629, 1169, 2272, 1614, 2813, 2257, 1998, 2379, 1765, 2926, 1358, 1961, 1516, 2308, 1809, 1501, 1654, 1435, 2630, 1170, 2273, 1615, 2814, 2258, 1999, 2380, 1766, 2927, 1359, 1962, 1517, 2309, 1810, 1502, 1655, 1436, 2631, 1171, 2274, 1616, 2815, 2259, 2000, 2381, 1767, 2928, 1360, 1963, 1518, 2310, 1811, 1503, 1656, 1437, 2632, 1172, 2275, 1617, 2816, 2260, 2001, 2382, 1768, 2929, 1361, 1964, 1519, 2311, 1812, 1504, 1657, 1438, 2633, 1173, 2276, 1618, 2817, 2261, 2002, 2383, 1769, 2930, 1362, 1965, 1520, 2312, 1813, 1505, 1658, 1439, 2634, 1174, 2277, 1619, 2818, 2262, 2003, 2384, 1770, 2931, 1363, 1966, 1521, 2313, 1814, 1506, 1659, 1440, 2635, 1175, 2278, 1620, 2819, 2263, 2004, 2385, 1771, 2932, 1364, 1967, 1522, 2314, 1815, 1507, 1660, 1081, 2636, 1176, 2279, 1621, 2820, 2264, 2005, 2386, 1772, 2933, 1365, 1968, 1523, 2315, 1816, 1508, 1661, 1082, 2637, 1177, 2280, 1622, 2821, 2265, 2006, 2387, 1773, 2934, 1366, 1969, 1524, 2316, 1817, 1509, 1662, 1083, 2638, 1178, 2281, 1623, 2822, 2266, 2007, 2388, 1774, 2935, 1367, 1970, 1525, 2317, 1818, 1510, 1663, 1084, 2639, 1179, 2282, 1624, 2823, 2267, 2008, 2389, 1775, 2936, 1368, 1971, 1526, 2318, 1819, 1511, 1664, 1085, 2640, 1180, 2283, 1625, 2824, 2268, 2009, 2390, 1776, 2937, 1369, 1972, 1527, 2319, 1820, 1512, 1665, 1086, 2641, 1181, 2284, 1626, 2825, 2269, 2010, 2391, 1777, 2938, 1370, 1973, 1528, 2320, 1821, 1513, 1666, 1087, 2642, 1182, 2285, 1627, 2826, 2270, 2011, 2392, 1778, 2939, 1371, 1974, 1529, 2321, 1822, 1514, 1667, 1088, 2643, 1183, 2286, 1628, 2827, 2271, 2012, 2393, 1779, 2940, 1372, 1975, 1530, 2322, 1823, 1515, 1668, 1089, 2644, 1184, 2287, 1629, 2828, 2272, 2013, 2394, 1780, 2941, 1373, 1976, 1531, 2323, 1824, 1516, 1669, 1090, 2645, 1185, 2288, 1630, 2829, 2273, 2014, 2395, 1781, 2942, 1374, 1977, 1532, 2324, 1825, 1517, 1670, 1091, 2646, 1186, 2289, 1631, 2830, 2274, 2015, 2396, 1782, 2943, 1375, 1978, 1533, 2325, 1826, 1518, 1671, 1092, 2647, 1187, 2290, 1632, 2831, 2275, 2016, 2397, 1783, 2944, 1376, 1979, 1534, 2326, 1827, 1519, 1672, 1093, 2648, 1188, 2291, 1633, 2832, 2276, 2017, 2398, 1784, 2945, 1377, 1980, 1535, 2327, 1828, 1520, 1673, 1094, 2649, 1189, 2292, 1634, 2833, 2277, 2018, 2399, 1785, 2946, 1378, 1981, 1536, 2328, 1829, 1521, 1674, 1095, 2650, 1190, 2293, 1635, 2834, 2278, 2019, 2400, 1786, 2947, 1379, 1982, 1537, 2329, 1830, 1522, 1675, 1096, 2651, 1191, 2294, 1636, 2835, 2279, 2020, 2401, 1787, 2948, 1380, 1983, 1538, 2330, 1831, 1523, 1676, 1097, 2652, 1192, 2295, 1637, 2836, 2280, 2021, 2402, 1788, 2949, 1381, 1984, 1539, 2331, 1832, 1524, 1677, 1098, 2653, 1193, 2296, 1638, 2837, 2281, 2022, 2403, 1789, 2950, 1382, 1985, 1540, 2332, 1833, 1525, 1678, 1099, 2654, 1194, 2297, 1639, 2838, 2282, 2023, 2404, 1790, 2951, 1383, 1986, 1541, 2333, 1834, 1526, 1679, 1100, 2655, 1195, 2298, 1640, 2839, 2283, 2024, 2405, 1791, 2952, 1384, 1987, 1542, 2334, 1835, 1527, 1680, 1101, 2656, 1196, 2299, 1641, 2840, 2284, 2025, 2406, 1792, 2953, 1385, 1988, 1543, 2335, 1836, 1528, 1681, 1102, 2657, 1197, 2300, 1642, 2841, 2285, 2026, 2407, 1793, 2954, 1386, 1989, 1544, 2336, 1837, 1529, 1682, 1103, 2658, 1198, 2301, 1643, 2842, 2286, 2027, 2408, 1794, 2955, 1387, 1990, 1545, 2337, 1838, 1530, 1683, 1104, 2659, 1199, 2302, 1644, 2843, 2287, 2028, 2409, 1795, 2956, 1388, 1991, 1546, 2338, 1839, 1531, 1684, 1105, 2660, 1200, 2303, 1645, 2844, 2288, 2029, 2410, 1796, 2957, 1389, 1992, 1547, 2339, 1840, 1532, 1685, 1106, 2661, 1201, 2304, 1646, 2845, 2289, 2030, 2411, 1797, 2958, 1390, 1993, 1548, 2340, 1841, 1533, 1686, 1107, 2662, 1202, 2305, 1647, 2846, 2290, 2031, 2412, 1798, 2959, 1391, 1994, 1549, 2341, 1842, 1534, 1687, 1108, 2663, 1203, 2306, 1648, 2847, 2291, 2032, 2413, 1799, 2960, 1392, 1995, 1550, 2342, 1843, 1535, 1688, 1109, 2664, 1204, 2307, 1649, 2848, 2292, 2033, 2414, 1800, 2961, 1393, 1996, 1551, 2343, 1844, 1536, 1689, 1110, 2665, 1205, 2308, 1650, 2849, 2293, 2034, 2415, 1441, 2962, 1394, 1997, 1552, 2344, 1845, 1537, 1690, 1111, 2666, 1206, 2309, 1651, 2850, 2294, 2035, 2416, 1442, 2963, 1395, 1998, 1553, 2345, 1846, 1538, 1691, 1112, 2667, 1207, 2310, 1652, 2851, 2295, 2036, 2417, 1443, 2964, 1396, 1999, 1554, 2346, 1847, 1539, 1692, 1113, 2668, 1208, 2311, 1653, 2852, 2296, 2037, 2418, 1444, 2965, 1397, 2000, 1555, 2347, 1848, 1540, 1693, 1114, 2669, 1209, 2312, 1654, 2853, 2297, 2038, 2419, 1445, 2966, 1398, 2001, 1556, 2348, 1849, 1541, 1694, 1115, 2670, 1210, 2313, 1655, 2854, 2298, 2039, 2420, 1446, 2967, 1399, 2002, 1557, 2349, 1850, 1542, 1695, 1116, 2671, 1211, 2314, 1656, 2855, 2299, 2040, 2421, 1447, 2968, 1400, 2003, 1558, 2350, 1851, 1543, 1696, 1117, 2672, 1212, 2315, 1657, 2856, 2300, 2041, 2422, 1448, 2969, 1401, 2004, 1559, 2351, 1852, 1544, 1697, 1118, 2673, 1213, 2316, 1658, 2857, 2301, 2042, 2423, 1449, 2970, 1402, 2005, 1560, 2352, 1853, 1545, 1698, 1119, 2674, 1214, 2317, 1659, 2858, 2302, 2043, 2424, 1450, 2971, 1403, 2006, 1561, 2353, 1854, 1546, 1699, 1120, 2675, 1215, 2318, 1660, 2859, 2303, 2044, 2425, 1451, 2972, 1404, 2007, 1562, 2354, 1855, 1547, 1700, 1121, 2676, 1216, 2319, 1661, 2860, 2304, 2045, 2426, 1452, 2973, 1405, 2008, 1563, 2355, 1856, 1548, 1701, 1122, 2677, 1217, 2320, 1662, 2861, 2305, 2046, 2427, 1453, 2974, 1406, 2009, 1564, 2356, 1857, 1549, 1702, 1123, 2678, 1218, 2321, 1663, 2862, 2306, 2047, 2428, 1454, 2975, 1407, 2010, 1565, 2357, 1858, 1550, 1703, 1124, 2679, 1219, 2322, 1664, 2863, 2307, 2048, 2429, 1455, 2976, 1408, 2011, 1566, 2358, 1859, 1551, 1704, 1125, 2680, 1220, 2323, 1665, 2864, 2308, 2049, 2430, 1456, 2977, 1409, 2012, 1567, 2359, 1860, 1552, 1705, 1126, 2681, 1221, 2324, 1666, 2865, 3122, 2199, 2927, 1834, 3084, 1798, 2760, 2393, 2568, 1876, 1954, 2473, 1807, 2787, 1778, 2452, 1761, 3078, 3123, 2200, 2928, 1835, 3085, 1799, 2761, 2394, 2569, 1877, 1955, 2474, 1808, 2788, 1779, 2453, 1762, 3079, 3124, 2201, 2929, 1836, 3086, 1800, 2762, 2395, 2570, 1878, 1956, 2475, 1809, 2789, 1780, 2454, 1763, 3080, 3125, 2202, 2930, 1837, 3087, 1441, 2763, 2396, 2571, 1879, 1957, 2476, 1810, 2790, 1781, 2455, 1764, 3081, 3126, 2203, 2931, 1838, 3088, 1442, 2764, 2397, 2572, 1880, 1958, 2477, 1811, 2791, 1782, 2456, 1765, 3082, 3127, 2204, 2932, 1839, 3089, 1443, 2765, 2398, 2573, 1881, 1959, 2478, 1812, 2792, 1783, 2457, 1766, 3083, 3128, 2205, 2933, 1840, 3090, 1444, 2766, 2399, 2574, 1882, 1960, 2479, 1813, 2793, 1784, 2458, 1767, 3084, 3129, 2206, 2934, 1841, 3091, 1445, 2767, 2400, 2575, 1883, 1961, 2480, 1814, 2794, 1785, 2459, 1768, 3085, 3130, 2207, 2935, 1842, 3092, 1446, 2768, 2401, 2576, 1884, 1962, 2481, 1815, 2795, 1786, 2460, 1769, 3086, 3131, 2208, 2936, 1843, 3093, 1447, 2769, 2402, 2577, 1885, 1963, 2482, 1816, 2796, 1787, 2461, 1770, 3087, 3132, 2209, 2937, 1844, 3094, 1448, 2770, 2403, 2578, 1886, 1964, 2483, 1817, 2797, 1788, 2462, 1771, 3088, 3133, 2210, 2938, 1845, 3095, 1449, 2771, 2404, 2579, 1887, 1965, 2484, 1818, 2798, 1789, 2463, 1772, 3089, 3134, 2211, 2939, 1846, 3096, 1450, 2772, 2405, 2580, 1888, 1966, 2485, 1819, 2799, 1790, 2464, 1773, 3090, 3135, 2212, 2940, 1847, 3097, 1451, 2773, 2406, 2581, 1889, 1967, 2486, 1820, 2800, 1791, 2465, 1774, 3091, 3136, 2213, 2941, 1848, 3098, 1452, 2774, 2407, 2582, 1890, 1968, 2487, 1821, 2801, 1792, 2466, 1775, 3092, 3137, 2214, 2942, 1849, 3099, 1453, 2775, 2408, 2583, 1891, 1969, 2488, 1822, 2802, 1793, 2467, 1776, 3093, 3138, 2215, 2943, 1850, 3100, 1454, 2776, 2409, 2584, 1892, 1970, 2489, 1823, 2803, 1794, 2468, 1777, 3094, 3139, 2216, 2944, 1851, 3101, 1455, 2777, 2410, 2585, 1893, 1971, 2490, 1824, 2804, 1795, 2469, 1778, 3095, 3140, 2217, 2945, 1852, 3102, 1456, 2778, 2411, 2586, 1894, 1972, 2491, 1825, 2805, 1796, 2470, 1779, 3096, 3141, 2218, 2946, 1853, 3103, 1457, 2779, 2412, 2587, 1895, 1973, 2492, 1826, 2806, 1797, 2471, 1780, 3097, 3142, 2219, 2947, 1854, 3104, 1458, 2780, 2413, 2588, 1896, 1974, 2493, 1827, 2807, 1798, 2472, 1781, 3098, 3143, 2220, 2948, 1855, 3105, 1459, 2781, 2414, 2589, 1897, 1975, 2494, 1828, 2808, 1799, 2473, 1782, 3099, 2881, 2221, 2949, 1856, 3106, 1460, 2782, 2415, 2590, 1898, 1976, 2495, 1829, 2809, 1800, 2474, 1783, 3100, 2882, 2222, 2950, 1857, 3107, 1461, 2783, 2416, 2591, 1899, 1977, 2496, 1830, 2810, 1441, 2475, 1784, 3101, 2883, 2223, 2951, 1858, 3108, 1462, 2784, 2417, 2592, 1900, 1978, 2497, 1831, 2811, 1442, 2476, 1785, 3102, 2884, 2224, 2952, 1859, 3109, 1463, 2785, 2418, 2593, 1901, 1979, 2498, 1832, 2812, 1443, 2477, 1786, 3103, 2885, 2225, 2953, 1860, 3110, 1464, 2786, 2419, 2594, 1902, 1980, 2499, 1833, 2813, 1444, 2478, 1787, 3104, 2886, 2226, 2954, 1861, 3111, 1465, 2787, 2420, 2595, 1903, 1981, 2500, 1834, 2814, 1445, 2479, 1788, 3105, 2887, 2227, 2955, 1862, 3112, 1466, 2788, 2421, 2596, 1904, 1982, 2501, 1835, 2815, 1446, 2480, 1789, 3106, 2888, 2228, 2956, 1863, 3113, 1467, 2789, 2422, 2597, 1905, 1983, 2502, 1836, 2816, 1447, 2481, 1790, 3107, 2889, 2229, 2957, 1864, 3114, 1468, 2790, 2423, 2598, 1906, 1984, 2503, 1837, 2817, 1448, 2482, 1791, 3108, 2890, 2230, 2958, 1865, 3115, 1469, 2791, 2424, 2599, 1907, 1985, 2504, 1838, 2818, 1449, 2483, 1792, 3109, 2891, 2231, 2959, 1866, 3116, 1470, 2792, 2425, 2600, 1908, 1986, 2505, 1839, 2819, 1450, 2484, 1793, 3110, 2892, 2232, 2960, 1867, 3117, 1471, 2793, 2426, 2601, 1909, 1987, 2506, 1840, 2820, 1451, 2485, 1794, 3111, 2893, 2233, 2961, 1868, 3118, 1472, 2794, 2427, 2602, 1910, 1988, 2507, 1841, 2821, 1452, 2486, 1795, 3112, 2894, 2234, 2962, 1869, 3119, 1473, 2795, 2428, 2603, 1911, 1989, 2508, 1842, 2822, 1453, 2487, 1796, 3113, 2895, 2235, 2963, 1870, 3120, 1474, 2796, 2429, 2604, 1912, 1990, 2509, 1843, 2823, 1454, 2488, 1797, 3114, 2896, 2236, 2964, 1871, 3121, 1475, 2797, 2430, 2605, 1913, 1991, 2510, 1844, 2824, 1455, 2489, 1798, 3115, 2897, 2237, 2965, 1872, 3122, 1476, 2798, 2431, 2606, 1914, 1992, 2511, 1845, 2825, 1456, 2490, 1799, 3116, 2898, 2238, 2966, 1873, 3123, 1477, 2799, 2432, 2607, 1915, 1993, 2512, 1846, 2826, 1457, 2491, 1800, 3117, 2899, 2239, 2967, 1874, 3124, 1478, 2800, 2433, 2608, 1916, 1994, 2513, 1847, 2827, 1458, 2492, 1707, 3118, 2900, 2240, 2968, 1875, 3125, 1479, 2801, 2434, 2609, 1917, 1995, 2514, 1848, 2828, 1459, 2493, 1708, 3119, 2901, 2241, 2969, 1876, 3126, 1480, 2802, 2435, 2610, 1918, 1996, 2515, 1849, 2829, 1460, 2494, 1709, 3120, 2902, 2242, 2970, 1877, 3127, 1481, 2803, 2436, 2611, 1919, 1997, 2516, 1850, 2830, 1461, 2495, 1710, 3121, 2903, 2243, 2971, 1878, 3128, 1482, 2804, 2437, 2612, 1920, 1998, 2517, 1851, 2831, 1462, 2496, 1711, 3122, 2904, 2244, 2972, 1879, 3129, 1483, 2805, 2161, 2613, 1921, 1999, 2518, 1852, 2832, 1463, 2497, 1712, 3123, 2905, 2245, 2973, 1880, 3130, 1484, 2806, 2162, 2614, 1922, 2000, 2519, 1853, 2833, 1464, 2498, 1713, 3124, 2906, 2246, 2974, 1881, 3131, 1485, 2807, 2163, 2615, 1923, 2001, 2520, 1854, 2834, 1465, 2499, 1714, 3125, 2907, 2247, 2975, 1882, 3132, 1486, 2808, 2164, 2616, 1924, 2002, 2161, 1855, 2835, 1466, 2500, 1715, 3126, 2908, 2248, 2881, 1883, 3133, 1487, 2809, 2165, 2617, 1925, 2003, 2162, 1856, 2836, 1467, 2501, 1716, 3127, 2909, 2249, 2882, 1884, 3134, 1488, 2810, 2166, 2618, 1926, 2004, 2163, 1857, 2837, 1468, 2502, 1717, 3128, 2910, 2250, 2883, 1885, 3135, 1489, 2811, 2167, 2619, 1927, 2005, 2164, 1858, 2838, 1469, 2503, 1718, 3129, 2911, 2251, 2884, 1886, 3136, 1490, 2812, 2168, 2620, 1928, 2006, 2165, 1859, 2839, 1470, 2504, 1719, 3130, 2912, 2252, 2885, 1887, 3137, 1491, 2813, 2169, 2621, 1929, 2007, 2166, 1860, 2840, 1471, 2505, 1720, 3131, 2913, 2253, 2886, 1888, 3138, 1492, 2814, 2170, 2622, 1930, 2008, 2167, 1861, 2841, 1472, 2506, 1721, 3132, 2914, 2254, 2887, 1889, 3139, 1493, 2815, 2171, 2623, 1931, 2009, 2168, 1862, 2842, 1473, 2507, 1722, 3133, 2915, 2255, 2888, 1890, 3140, 1494, 2816, 2172, 2624, 1932, 2010, 2169, 1863, 2843, 1474, 2508, 1723, 3134, 2916, 2256, 2889, 1891, 3141, 1495, 2817, 2173, 2625, 1933, 2011, 2170, 1864, 2844, 1475, 2509, 1724, 3135, 2917, 2257, 2890, 1892, 3142, 1496, 2818, 2174, 2626, 1934, 2012, 2171, 1865, 2845, 1476, 2510, 1725, 3136, 2918, 2258, 2891, 1893, 3143, 1497, 2819, 2175, 2627, 1935, 2013, 2172, 1866, 2846, 1477, 2511, 1726, 3137, 2919, 2259, 2892, 1894, 3144, 1498, 2820, 2176, 2628, 1936, 2014, 2173, 1867, 2847, 1478, 2512, 1727, 3138, 2920, 2260, 2893, 1895, 3145, 1499, 2821, 2177, 2629, 1937, 2015, 2174, 1868, 2848, 1479, 2513, 1728, 3139, 2921, 2261, 2894, 1896, 3146, 1500, 2822, 2178, 2630, 1938, 2016, 2175, 1869, 2849, 1480, 2514, 1729, 3140, 2922, 2262, 2895, 1897, 3147, 1501, 2823, 2179, 2631, 1939, 2017, 2176, 1870, 2850, 1481, 2515, 1730, 3141, 2923, 2263, 2896, 1898, 3148, 1502, 2824, 2180, 2632, 1940, 2018, 2177, 1871, 2851, 1482, 2516, 1731, 3142, 2924, 2264, 2897, 1899, 3149, 1503, 2825, 2181, 2633, 1941, 2019, 2178, 1872, 2852, 1483, 2517, 1732, 3143, 2925, 2265, 2898, 1900, 3150, 1504, 2826, 2182, 2634, 1942, 2020, 2179, 1873, 2853, 1484, 2518, 1733, 3144, 2926, 2266, 2899, 1901, 3151, 1505, 2827, 2183, 2635, 1943, 2021, 2180, 1874, 2854, 1485, 2519, 1734, 3145, 2927, 2267, 2900, 1902, 3152, 1506, 2828, 2184, 2636, 1944, 2022, 2181, 1875, 2855, 1486, 2520, 1735, 3146, 2928, 2268, 2901, 1903, 3153, 1507, 2829, 2185, 2637, 1945, 2023, 2182, 1876, 2856, 1487, 2394, 1736, 3147, 2929, 2269, 2902, 1904, 3154, 1508, 2830, 2186, 2638, 1946, 2024, 2183, 1877, 2857, 1488, 2395, 1737, 3148, 2930, 2270, 2903, 1905, 3155, 1509, 2831, 2187, 2639, 1947, 2025, 2184, 1878, 2858, 1489, 2396, 1738, 2881, 2931, 2271, 2904, 1906, 3156, 1510, 2832, 2188, 2640, 1948, 2026, 2185, 1879, 2859, 1490, 2397, 1739, 2882, 2932, 2272, 2905, 1907, 3157, 1511, 2833, 2189, 2641, 1949, 2027, 2186, 1880, 2860, 1491, 2398, 1740, 2883, 2933, 2273, 2906, 1908, 3158, 1512, 2834, 2190, 2642, 1950, 2028, 2187, 1881, 2861, 1492, 2399, 1741, 2884, 2934, 2274, 2907, 1909, 3159, 1513, 2835, 2191, 2643, 1951, 2029, 2188, 1882, 2862, 1493, 2400, 1742, 2885, 2935, 2275, 2908, 1910, 3160, 1514, 2836, 2192, 2644, 1952, 2030, 2189, 1883, 2863, 1494, 2401, 1743, 2886, 2936, 2276, 2909, 1911, 3161, 1515, 2837, 2193, 2645, 1953, 2031, 2190, 1884, 2864, 1495, 2402, 1744, 2887, 2937, 2277, 2910, 1912, 3162, 1516, 2838, 2194, 2646, 1954, 2032, 2191, 1885, 2865, 1496, 2403, 1745, 2888, 2938, 2278, 2911, 1913, 3163, 1517, 2839, 2195, 2647, 1955, 2033, 2192, 1886, 2866, 1497, 2404, 1746, 2889, 2939, 2279, 2912, 1914, 3164, 1518, 2840, 2196, 2648, 1956, 2034, 2193, 1887, 2867, 1498, 2405, 1747, 2890, 2940, 2280, 2913, 1915, 3165, 1519, 2841, 2197, 2649, 1957, 2035, 2194, 1888, 2868, 1499, 2406, 1748, 2891, 2941, 2281, 2914, 1916, 3166, 1520, 2842, 2198, 2650, 1958, 2036, 2195, 1889, 2869, 1500, 2407, 1749, 2892, 2942, 2282, 2915, 1917, 3167, 1521, 2843, 2199, 2651, 1959, 2037, 2196, 1890, 2870, 1501, 2408, 1750, 2893, 2943, 2283, 2916, 1918, 3168, 1522, 2844, 2200, 2652, 1960, 2038, 2197, 1891, 2871, 1502, 2409, 1751, 2894, 2944, 2284, 2917, 1919, 3169, 1523, 2845, 2201, 2653, 1961, 2039, 2198, 1892, 2872, 1503, 2410, 1752, 2895, 2945, 2285, 2918, 1920, 3170, 1524, 2846, 2202, 2654, 1962, 2040, 2199, 1893, 2873, 1504, 2411, 1753, 2896, 2946, 2286, 2919, 1921, 3171, 1525, 2847, 2203, 2655, 1963, 2041, 2200, 1894, 2874, 1505, 2412, 1754, 2897, 2947, 2287, 2920, 1922, 3172, 1526, 2848, 2204, 2656, 1964, 2042, 2201, 1895, 2875, 1506, 2413, 1755, 2898, 2948, 2288, 2921, 1923, 3173, 1527, 2849, 2205, 2657, 1965, 2043, 2202, 1896, 2876, 1507, 2414, 1756, 2899, 2949, 2289, 2922, 1924, 3174, 1528, 2850, 2206, 2658, 1966, 2044, 2203, 1897, 2877, 1508, 2415, 1757, 2900, 2950, 2290, 2923, 1925, 3175, 1529, 2851, 2207, 2659, 1967, 2045, 2204, 1898, 2878, 1509, 2416, 1758, 2901, 2951, 2291, 2924, 1926, 3176, 1530, 2852, 2208, 2660, 1968, 2046, 2205, 1899, 2879, 1510, 2417, 1759, 2902, 2952, 2292, 2925, 1927, 3177, 1531, 2853, 2209, 2661, 1969, 2047, 2206, 1900, 2880, 1511, 2418, 1760, 2903, 2953, 2293, 2926, 1928, 3178, 1532, 2854, 2210, 2662, 1970, 2048, 2207, 1901, 2776, 1512, 2419, 1761, 2904, 2954, 2294, 2927, 1929, 3179, 1533, 2855, 2211, 2663, 1971, 2049, 2208, 1902, 2777, 1513, 2420, 1762, 2905, 2955, 2295, 2928, 1930, 3180, 1534, 2856, 2212, 2664, 1972, 2050, 2209, 1903, 2778, 1514, 2421, 1763, 2906, 2956, 2296, 2929, 1931, 3181, 1535, 2857, 2213, 2665, 1973, 2051, 2210, 1904, 2779, 1515, 2422, 1764, 2907, 2957, 2297, 2930, 1932, 3182, 1536, 2858, 2214, 2666, 1974, 2052, 2211, 1905, 2780, 1516, 2423, 1765, 2908, 2958, 2298, 2931, 1933, 3077, 1537, 2859, 2215, 2667, 1975, 2053, 2212, 1906, 2781, 1517, 2424, 1766, 2909, 2959, 2299, 2932, 1934, 3078, 1538, 2860, 2216, 2668, 1976, 2054, 2213, 1907, 2782, 1518, 2425, 1767, 2910, 2960, 2300, 2933, 1935, 3079, 1539, 2861, 2217, 2669, 1977, 2055, 2214, 1908, 2783, 1519, 2426, 1768, 2911, 2961, 2301, 2934, 1936, 3080, 1540, 2862, 2218, 2670, 1978, 2056, 2215, 1909, 2784, 1520, 2427, 1769, 2912, 2962, 2302, 2935, 1937, 3081, 1541, 2863, 2219, 2671, 1979, 2057, 2216, 1910, 2785, 1521, 2428, 1770, 2913, 2963, 2303, 2936, 1938, 3082, 1542, 2864, 2220, 2672, 1980, 2058, 2217, 1911, 2786, 1522, 2429, 1771, 2914, 2964, 2304, 2937, 1939, 3083, 1543, 2865, 2221, 2673, 1981, 2059, 2218, 1912, 2787, 1523, 2430, 1772, 2915, 2965, 2305, 2938, 1940, 3084, 1544, 2866, 2222, 2674, 1982, 2060, 2219, 1913, 2788, 1524, 2431, 1773, 2916, 2966, 2306, 2939, 1941, 3085, 1545, 2867, 2223, 2675, 1983, 2061, 2220, 1914, 2789, 1525, 2432, 1774, 2917, 2967, 2307, 2940, 1942, 3086, 1546, 2868, 2224, 2676, 1984, 2062, 2221, 1915, 2790, 1526, 2433, 1775, 2918, 2968, 2308, 2941, 1943, 3087, 1547, 2869, 2225, 2677, 1985, 2063, 2222, 1916, 2791, 1527, 2434, 1776, 2919, 2969, 2309, 2942, 1944, 3088, 1548, 2870, 2226, 2678, 1986, 2064, 2223, 1917, 2792, 1528, 2435, 1777, 2920, 2970, 2310, 2943, 1945, 3089, 1549, 2871, 2227, 2679, 1987, 2065, 2224, 1918, 2793, 1529, 2436, 1778, 2921, 2971, 2311, 2944, 1946, 3090, 1550, 2872, 2228, 2680, 1988, 2066, 2225, 1919, 2794, 1530, 2437, 1779, 2922, 2972, 2312, 2945, 1947, 3091, 1551, 2873, 2229, 2681, 1989, 2067, 2226, 1920, 2795, 1531, 2438, 1780, 2923, 2973, 2313, 2946, 1948, 3092, 1552, 2874, 2230, 2682, 1990, 2068, 2227, 1921, 2796, 1532, 2439, 1781, 2924, 2974, 2314, 2947, 1949, 3093, 1553, 2875, 2231, 2683, 1991, 2069, 2228, 1922, 2797, 1533, 2440, 1782, 2925, 2975, 2315, 2948, 1950, 3094, 1554, 2876, 2232, 2684, 1992, 2070, 2229, 1923, 2798, 1534, 2441, 1783, 2926, 2976, 2316, 2949, 1951, 3095, 1555, 2877, 2233, 2685, 1993, 2071, 2230, 1924, 2799, 1535, 2442, 1784, 2927, 2977, 2317, 2950, 1952, 3096, 1556, 2878, 2234, 2686, 1994, 2072, 2231, 1925, 2800, 1536, 2443, 1785, 2928, 2881, 2318, 2951, 1953, 3097, 1557, 2879, 2235, 2687, 1995, 2073, 2232, 1926, 2801, 1537, 2444, 1786, 2929, 2882, 2319, 2952, 1954, 3098, 1558, 2880, 2236, 2688, 1996, 2074, 2233, 1927, 2802, 1538, 2445, 1787, 2930, 2883, 2320, 2953, 1955, 3099, 1559, 2521, 2237, 2689, 1997, 2075, 2234, 1928, 2803, 1539, 2446, 1788, 2931, 2884, 2321, 2954, 1956, 3100, 1560, 2522, 2238, 2690, 1998, 2076, 2235, 1929, 2804, 1540, 2447, 1789, 2932, 2885, 2322, 2955, 1957, 3101, 1561, 2523, 2239, 2691, 1999, 2077, 2236, 1930, 2805, 1541, 2448, 1790, 2933, 2886, 2323, 2956, 1958, 3102, 1562, 2524, 2240, 2692, 2000, 2078, 2237, 1931, 2806, 1542, 2449, 1791, 2934, 2887, 2324, 2957, 1959, 3103, 1563, 2525, 2241, 2693, 2001, 2079, 2238, 1932, 2807, 1543, 2450, 1792, 2935, 2888, 2325, 2958, 1960, 3104, 1564, 2526, 2242, 2694, 2002, 2080, 2239, 1933, 2808, 1544, 2451, 1793, 2936, 2889, 2326, 2959, 1961, 3105, 1565, 2527, 2243, 2695, 2003, 2081, 2240, 1934, 2809, 1545, 2452, 1794, 2937, 2890, 2327, 2960, 1962, 3106, 1566, 2528, 2161, 2696, 2004, 2082, 2241, 1935, 2810, 1546, 2453, 1795, 2938, 2891, 2328, 2961, 1963, 3107, 1567, 2529, 2162, 2697, 2005, 2083, 2242, 1936, 2811, 1547, 2454, 1796, 2939, 2892, 2329, 2962, 1964, 3108, 1568, 2530, 2163, 2698, 2006, 2084, 2243, 1937, 2812, 1548, 2455, 1797, 2940, 2893, 2330, 2963, 1965, 3109, 1569, 2531, 2164, 2699, 2007, 2085, 2244, 1938, 2813, 1549, 2456, 1798, 2941, 2894, 2331, 2964, 1966, 3110, 1570, 2532, 2165, 2700, 2008, 2086, 2245, 1939, 2814, 1550, 2457, 1799, 2942, 2895, 2332, 2965, 1967, 3111, 1571, 2533, 2166, 2701, 2009, 2087, 2246, 1940, 2815, 1551, 2458, 1800, 2943, 2896, 2333, 2966, 1968, 3112, 1572, 2534, 2167, 2702, 2010, 2088, 2247, 1941, 2816, 1552, 2459, 1673, 2944, 2897, 2334, 2967, 1969, 3113, 1573, 2535, 2168, 2703, 2011, 2089, 2248, 1942, 2817, 1553, 2460, 1674, 2945, 2898, 2335, 2968, 1970, 3114, 1574, 2536, 2169, 2704, 2012, 2090, 2249, 1943, 2818, 1554, 2461, 1675, 2946, 2899, 2336, 2969, 1971, 3115, 1575, 2537, 2170, 2705, 2013, 2091, 2250, 1944, 2819, 1555, 2462, 1676, 2947, 2900, 2337, 2970, 1972, 3116, 1576, 2538, 2171, 2706, 2014, 2092, 2251, 1945, 2820, 1556, 2463, 1677, 2948, 2901, 2338, 2971, 1973, 3117, 1577, 2539, 2172, 2707, 2015, 2093, 2252, 1946, 2821, 1557, 2464, 1678, 2949, 2902, 2339, 2972, 1974, 3118, 1578, 2540, 2173, 2708, 2016, 2094, 2253, 1947, 2822, 1558, 2465, 1679, 2950, 2903, 2340, 2973, 1975, 3119, 1579, 2541, 2174, 2709, 2017, 2095, 2254, 1948, 2823, 1559, 2466, 1680, 2951, 2904, 2341, 2974, 1976, 3120, 1580, 2542, 2175, 2710, 2018, 2096, 2255, 1949, 2824, 1560, 2467, 1681, 2952, 2905, 2342, 2975, 1977, 3121, 1581, 2543, 2176, 2711, 2019, 2097, 2256, 1950, 2825, 1561, 2468, 1682, 2953, 2906, 2343, 2976, 1978, 3122, 1582, 2544, 2177, 2712, 2020, 2098, 2257, 1951, 2826, 1562, 2469, 1683, 2954, 2907, 2344, 2977, 1979, 3123, 1583, 2545, 2178, 2713, 2021, 2099, 2258, 1952, 2827, 1563, 2470, 1684, 2955, 2908, 2345, 2978, 1980, 3124, 1584, 2546, 2179, 2714, 2022, 2100, 2259, 1953, 2828, 1564, 2471, 1685, 2956, 2909, 2346, 2979, 1981, 3125, 1585, 2547, 2180, 2715, 2023, 2101, 2260, 1954, 2829, 1565, 2472, 1686, 2957, 2910, 2347, 2980, 1982, 3126, 1586, 2548, 2181, 2716, 2024, 2102, 2261, 1955, 2830, 1566, 2473, 1687, 2958, 2911, 2348, 2981, 1983, 3127, 1587, 2549, 2182, 2717, 2025, 2103, 2262, 1956, 2831, 1567, 2474, 1688, 2959, 2912, 2349, 2982, 1984, 3128, 1588, 2550, 2183, 2718, 2026, 2104, 2263, 1957, 2832, 1568, 2475, 1689, 2960, 2913, 2350, 2983, 1985, 3129, 1589, 2551, 2184, 2719, 2027, 2105, 2264, 1958, 2833, 1569, 2476, 1690, 2961, 2914, 2351, 2984, 1986, 3130, 1590, 2552, 2185, 2720, 2028, 2106, 2265, 1959, 2834, 1570, 2477, 1691, 2962, 2915, 2352, 2985, 1987, 3131, 1591, 2553, 2186, 2721, 2029, 2107, 2266, 1960, 2835, 1571, 2478, 1692, 2963, 2916, 2353, 2986, 1988, 3132, 1592, 2554, 2187, 2722, 2030, 2108, 2267, 1961, 2836, 1572, 2479, 1693, 2964, 2917, 2354, 2987, 1989, 3133, 1593, 2555, 2188, 2723, 2031, 2109, 2268, 1962, 2837, 1573, 2480, 1694, 2965, 2918, 2355, 2988, 1990, 3134, 1594, 2556, 2189, 2724, 2032, 2110, 2269, 1963, 2838, 1574, 2481, 1695, 2966, 2919, 2356, 2989, 1991, 2939, 1595, 2557, 2190, 2725, 2033, 2111, 2270, 1964, 2839, 1575, 2482, 1696, 2967, 2920, 2357, 2990, 1992, 2940, 1596, 2558, 2191, 2726, 2034, 2112, 2271, 1965, 2840, 1576, 2483, 1697, 2968, 2921, 2358, 2991, 1993, 2941, 1597, 2559, 2192, 2727, 2035, 2113, 2272, 1966, 2841, 1577, 2484, 1698, 2969, 2922, 2359, 2992, 1994, 2942, 1598, 2560, 2193, 2728, 2036, 2114, 2273, 1967, 2842, 1578, 2485, 1699, 2970, 2923, 2360, 2993, 1995, 2943, 1599, 2561, 2194, 2729, 2037, 2115, 2274, 1968, 2843, 1579, 2486, 1700, 2971, 2924, 2361, 2994, 1996, 2944, 1600, 2562, 2195, 2730, 2038, 2116, 2275, 1969, 2844, 1580, 2487, 1701, 2972, 2925, 2362, 2995, 1997, 2945, 1601, 2563, 2196, 2731, 2039, 2117, 2276, 1970, 2845, 1581, 2488, 1702, 2881, 2926, 2363, 2996, 1998, 2946, 1602, 2564, 2197, 2732, 2040, 2118, 2277, 1971, 2846, 1582, 2489, 1703, 2882, 2927, 2364, 2997, 1999, 2947, 1603, 2565, 2198, 2733, 2041, 2119, 2278, 1972, 2847, 1583, 2490, 1704, 2883, 2928, 2365, 2998, 2000, 2948, 1604, 2566, 2199, 2734, 2042, 2120, 2279, 1973, 2848, 1584, 2491, 1705, 2884, 2929, 2366, 2999, 2001, 2949, 1605, 2567, 2200, 2735, 2043, 2121, 2280, 1974, 2849, 1585, 2492, 1706, 2885, 2930, 2367, 3000, 2002, 2950, 1606, 2568, 2201, 2736, 2044, 2122, 2281, 1975, 2850, 1586, 2493, 1707, 2886, 2931, 2368, 3001, 2003, 2951, 1607, 2569, 2202, 2737, 2045, 2123, 2282, 1976, 2851, 1587, 2494, 1708, 2887, 2932, 2369, 3002, 2004, 2952, 1608, 2570, 2203, 2738, 2046, 2124, 2283, 1977, 2852, 1588, 2495, 1709, 2888, 2933, 2370, 3003, 1801, 2953, 1609, 2571, 2204, 2739, 2047, 2125, 2284, 1978, 2853, 1589, 2496, 1710, 2889, 2934, 2371, 3004, 1802, 2954, 1610, 2572, 2205, 2740, 2048, 2126, 2285, 1979, 2854, 1590, 2497, 1711, 2890, 2935, 2372, 3005, 1803, 2955, 1611, 2573, 2206, 2741, 2049, 2127, 2286, 1980, 2855, 1591, 2498, 1712, 2891, 2936, 2373, 3006, 1804, 2956, 1612, 2574, 2207, 2742, 2050, 2128, 2287, 1981, 2856, 1592, 2499, 1713, 2892, 2937, 2374, 3007, 1805, 2957, 1613, 2575, 2208, 2743, 2051, 2129, 2288, 1982, 2857, 1593, 2500, 1714, 2893, 2938, 2375, 3008, 1806, 2958, 1614, 2576, 2209, 2744, 2052, 2130, 2289, 1983, 2858, 1594, 2501, 1715, 2894, 2939, 2376, 3009, 1807, 2959, 1615, 2577, 2210, 2745, 2053, 2131, 2290, 1984, 2859, 1595, 2502, 1716, 2895, 2940, 2377, 3010, 1808, 2960, 1616, 2578, 2211, 2746, 2054, 2132, 2291, 1985, 2860, 1596, 2503, 1717, 2896, 2941, 2378, 3011, 1809, 2961, 1617, 2579, 2212, 2747, 2055, 2133, 2292, 1986, 2861, 1597, 2504, 1718, 2897, 2942, 2379, 3012, 1810, 2962, 1618, 2580, 2213, 2748, 2056, 2134, 2293, 1987, 2862, 1598, 2505, 1719, 2898, 2943, 2380, 3013, 1811, 2963, 1619, 2581, 2214, 2749, 2057, 2135, 2294, 1988, 2863, 1599, 2506, 1720, 2899, 2944, 2381, 3014, 1812, 2964, 1620, 2582, 2215, 2750, 2058, 2136, 2295, 1989, 2864, 1600, 2507, 1721, 2900, 2945, 2382, 3015, 1813, 2965, 1621, 2583, 2216, 2751, 2059, 2137, 2296, 1990, 2865, 1601, 2508, 1722, 2901, 2946, 2383, 3016, 1814, 2966, 1622, 2584, 2217, 2752, 2060, 2138, 2297, 1991, 2866, 1602, 2509, 1723, 2902, 2947, 2384, 3017, 1815, 2967, 1623, 2585, 2218, 2753, 2061, 2139, 2298, 1992, 2867, 1603, 2510, 1724, 2903, 2948, 2385, 3018, 1816, 2968, 1624, 2586, 2219, 2754, 2062, 2140, 2299, 1993, 2868, 1604, 2511, 1725, 2904, 2949, 2386, 3019, 1817, 2969, 1625, 2587, 2220, 2755, 2063, 2141, 2300, 1994, 2869, 1605, 2512, 1726, 2905, 2950, 2387, 3020, 1818, 2970, 1626, 2588, 2221, 2756, 2064, 2142, 2301, 1995, 2870, 1606, 2513, 1727, 2906, 2951, 2388, 3021, 1819, 2971, 1627, 2589, 2222, 2757, 2065, 2143, 2302, 1996, 2871, 1607, 2514, 1728, 2907, 2952, 2389, 3022, 1820, 2972, 1628, 2590, 2223, 2758, 2066, 2144, 2303, 1997, 2872, 1608, 2515, 1729, 2908, 2953, 2390, 3023, 1821, 2973, 1629, 2591, 2224, 2759, 2067, 2145, 2304, 1998, 2873, 1609, 2516, 1730, 2909, 2954, 2391, 3024, 1822, 2974, 1630, 2592, 2225, 2760, 2068, 2146, 2305, 1999, 2874, 1610, 2517, 1731, 2910, 2955, 2392, 3025, 1823, 2975, 1631, 2593, 2226, 2761, 2069, 2147, 2306, 2000, 2875, 1611, 2518, 1732, 2911, 2956, 2393, 3026, 1824, 2976, 1632, 2594, 2227, 2762, 2070, 2148, 2307, 2001, 2876, 1612, 2519, 1733, 2912, 2957, 2394, 3027, 1825, 2977, 1633, 2595, 2228, 2763, 2071, 2149, 2308, 2002, 2877, 1613, 2520, 1734, 2913, 2958, 2395, 3028, 1826, 2978, 1634, 2596, 2229, 2764, 2072, 2150, 2309, 2003, 2878, 1614, 2288, 1735, 2914, 2959, 2396, 3029, 1827, 2979, 1635, 2597, 2230, 2765, 2073, 2151, 2310, 2004, 2879, 1615, 2289, 1736, 2915, 2960, 2397, 3030, 1828, 2980, 1636, 2598, 2231, 2766, 2074, 2152, 2311, 2005, 2880, 1616, 2290, 1737, 2916, 2961, 2398, 3031, 1829, 2981, 1637, 2599, 2232, 2767, 2075, 2153, 2312, 2006, 2626, 1617, 2291, 1738, 2917, 2962, 2399, 3032, 1830, 2982, 1638, 2600, 2233, 2768, 2076, 2154, 2313, 2007, 2627, 1618, 2292, 1739, 2918, 2963, 2400, 3033, 1831, 2983, 1639, 2601, 2234, 2769, 2077, 2155, 2314, 2008, 2628, 1619, 2293, 1740, 2919, 2964, 2401, 3034, 1832, 2984, 1640, 2602, 2235, 2770, 2078, 2156, 2315, 2009, 2629, 1620, 2294, 1741, 2920, 2965, 2402, 3035, 1833, 2985, 1641, 2603, 2236, 2771, 2079, 2157, 2316, 2010, 2630, 1621, 2295, 1742, 2921, 2966, 2403, 3036, 1834, 2986, 1642, 2604, 2237, 2772, 2080, 2158, 2317, 2011, 2631, 1622, 2296, 1743, 2922, 2967, 2404, 3037, 1835, 2987, 1643, 2605, 2238, 2773, 2081, 2159, 2318, 2012, 2632, 1623, 2297, 1744, 2923, 2968, 2405, 3038, 1836, 2988, 1644, 2606, 2239, 2774, 2082, 2160, 2319, 2013, 2633, 1624, 2298, 1745, 2924, 2969, 2406, 3039, 1837, 2989, 1645, 2607, 2240, 2775, 2083, 1801, 2320, 2014, 2634, 1625, 2299, 1746, 2925, 2970, 2407, 3040, 1838, 2990, 1646, 2608, 2241, 2776, 2084, 1802, 2321, 2015, 2635, 1626, 2300, 1747, 2926, 2971, 2408, 3041, 1839, 2991, 1647, 2609, 2242, 2777, 2085, 1803, 2322, 2016, 2636, 1627, 2301, 1748, 2927, 2972, 2409, 3042, 1840, 2992, 1648, 2610, 2243, 2778, 2086, 1804, 2323, 2017, 2637, 1628, 2302, 1749, 2928, 2973, 2410, 3043, 1841, 2993, 1649, 2611, 2244, 2779, 2087, 1805, 2324, 2018, 2638, 1629, 2303, 1750, 2929, 2974, 2411, 3044, 1842, 2994, 1650, 2612, 2245, 2780, 2088, 1806, 2325, 2019, 2639, 1630, 2304, 1751, 2930, 2975, 2412, 3045, 1843, 2995, 1651, 2613, 2246, 2781, 2089, 1807, 2326, 2020, 2640, 1631, 2305, 1752, 2931, 2976, 2413, 3046, 1844, 2996, 1652, 2614, 2247, 2782, 2090, 1808, 2327, 2021, 2641, 1632, 2306, 1753, 2932, 2977, 2414, 3047, 1845, 2997, 1653, 2615, 2248, 2783, 2091, 1809, 2328, 2022, 2642, 1633, 2307, 1754, 2933, 2978, 2415, 3048, 1846, 2998, 1654, 2616, 2249, 2784, 2092, 1810, 2329, 2023, 2643, 1634, 2308, 1755, 2934, 2979, 2416, 3049, 1847, 2999, 1655, 2617, 2250, 2785, 2093, 1811, 2330, 2024, 2644, 1635, 2309, 1756, 2935, 2980, 2417, 3050, 1848, 3000, 1656, 2618, 2251, 2786, 2094, 1812, 2331, 2025, 2645, 1636, 2310, 1757, 2936, 2981, 2418, 3051, 1849, 3001, 1657, 2619, 2252, 2787, 2095, 1813, 2332, 2026, 2646, 1637, 2311, 1758, 2937, 2982, 2419, 3052, 1850, 3002, 1658, 2620, 2253, 2788, 2096, 1814, 2333, 2027, 2647, 1638, 2312, 1759, 2938, 2983, 2420, 3053, 1851, 3003, 1659, 2621, 2254, 2789, 2097, 1815, 2334, 2028, 2648, 1639, 2313, 1760, 2939, 2984, 2421, 3054, 1852, 3004, 1660, 2622, 2255, 2790, 2098, 1816, 2335, 2029, 2649, 1640, 2314, 1761, 2940, 2985, 2422, 3055, 1853, 3005, 1661, 2623, 2256, 2791, 2099, 1817, 2336, 2030, 2650, 1641, 2315, 1762, 2941, 2986, 2423, 3056, 1854, 3006, 1662, 2624, 2257, 2792, 2100, 1818, 2337, 2031, 2651, 1642, 2316, 1763, 2942, 2987, 2424, 3057, 1855, 3007, 1663, 2625, 2258, 2793, 2101, 1819, 2338, 2032, 2652, 1643, 2317, 1764, 2943, 2988, 2425, 3058, 1856, 3008, 1664, 2626, 2259, 2794, 2102, 1820, 2339, 2033, 2653, 1644, 2318, 1765, 2944, 2989, 2426, 3059, 1857, 3009, 1665, 2627, 2260, 2795, 2103, 1821, 2340, 2034, 2654, 1645, 2319, 1766, 2945, 2990, 2427, 3060, 1858, 3010, 1666, 2628, 2261, 2796, 2104, 1822, 2341, 2035, 2655, 1646, 2320, 1767, 2946, 2991, 2428, 3061, 1859, 3011, 1667, 2629, 2262, 2797, 2105, 1823, 2342, 2036, 2656, 1647, 2321, 1768, 2947, 2992, 2429, 3062, 1860, 3012, 1668, 2630, 2263, 2798, 2106, 1824, 2343, 2037, 2657, 1648, 2322, 1769, 2948, 2993, 2430, 3063, 1861, 3013, 1669, 2631, 2264, 2799, 2107, 1825, 2344, 2038, 2658, 1649, 2323, 1770, 2949, 2994, 2431, 3064, 1862, 3014, 1670, 2632, 2265, 2800, 2108, 1826, 2345, 2039, 2659, 1650, 2324, 1771, 2950, 2995, 2432, 3065, 1863, 3015, 1671, 2633, 2266, 2801, 2109, 1827, 2346, 2040, 2660, 1651, 2325, 1772, 2951, 2996, 2433, 3066, 1864, 3016, 1672, 2634, 2267, 2802, 2110, 1828, 2347, 2041, 2661, 1652, 2326, 1773, 2952, 2997, 2434, 3067, 1865, 3017, 1673, 2635, 2268, 2803, 2111, 1829, 2348, 2042, 2662, 1653, 2327, 1774, 2953, 2998, 2435, 3068, 1866, 3018, 1674, 2636, 2269, 2804, 2112, 1830, 2349, 2043, 2663, 1654, 2328, 1775, 2954, 2999, 2436, 3069, 1867, 3019, 1675, 2637, 2270, 2805, 2113, 1831, 2350, 2044, 2664, 1655, 2329, 1776, 2955, 3000, 2437, 3070, 1868, 3020, 1676, 2638, 2271, 2806, 2114, 1832, 2351, 2045, 2665, 1656, 2330, 1777, 2956, 3001, 2438, 3071, 1869, 3021, 1677, 2639, 2272, 2807, 2115, 1833, 2352, 2046, 2666, 1657, 2331, 1778, 2957, 3002, 2439, 3072, 1870, 3022, 1678, 2640, 2273, 2808, 2116, 1834, 2353, 2047, 2667, 1658, 2332, 1779, 2958, 3003, 2440, 3073, 1871, 3023, 1679, 2641, 2274, 2809, 2117, 1835, 2354, 2048, 2668, 1659, 2333, 1780, 2959, 3004, 2441, 3074, 1872, 3024, 1680, 2642, 2275, 2810, 2118, 1836, 2355, 2049, 2669, 1660, 2334, 1781, 2960, 3005, 2442, 3075, 1873, 3025, 1681, 2643, 2276, 2811, 2119, 1837, 2356, 2050, 2670, 1661, 2335, 1782, 2961, 3006, 2443, 3076, 1874, 3026, 1682, 2644, 2277, 2812, 2120, 1838, 2357, 2051, 2671, 1662, 2336, 1783, 2962, 3007, 2444, 3077, 1875, 3027, 1683, 2645, 2278, 2813, 2121, 1839, 2358, 2052, 2672, 1663, 2337, 1784, 2963, 3008, 2445, 3078, 1876, 3028, 1684, 2646, 2279, 2814, 2122, 1840, 2359, 2053, 2673, 1664, 2338, 1785, 2964, 3009, 2446, 3079, 1877, 3029, 1685, 2647, 2280, 2815, 2123, 1841, 2360, 2054, 2674, 1665, 2339, 1786, 2965, 3010, 2447, 3080, 1878, 3030, 1686, 2648, 2281, 2816, 2124, 1842, 2361, 2055, 2675, 1666, 2340, 1787, 2966, 3011, 2448, 3081, 1879, 3031, 1687, 2649, 2282, 2817, 2125, 1843, 2362, 2056, 2676, 1667, 2341, 1788, 2967, 3012, 2449, 3082, 1880, 3032, 1688, 2650, 2283, 2818, 2126, 1844, 2363, 2057, 2677, 1668, 2342, 1789, 2968, 3013, 2450, 3083, 1881, 3033, 1689, 2651, 2284, 2819, 2127, 1845, 2364, 2058, 2678, 1669, 2343, 1790, 2969, 3014, 2451, 3084, 1882, 3034, 1690, 2652, 2285, 2820, 2128, 1846, 2365, 2059, 2679, 1670, 2344, 1791, 2970, 3015, 2452, 3085, 1883, 3035, 1691, 2653, 2286, 2821, 2129, 1847, 2366, 2060, 2680, 1671, 2345, 1792, 2971, 3016, 2453, 3086, 1884, 3036, 1692, 2654, 2287, 2822, 2130, 1848, 2367, 2061, 2681, 1672, 2346, 1793, 2972, 3017, 2454, 3087, 1885, 3037, 1693, 2655, 2288, 2823, 2131, 1849, 2368, 2062, 2682, 1673, 2347, 1794, 2973, 3018, 2455, 3088, 1886, 3038, 1694, 2656, 2289, 2824, 2132, 1850, 2369, 2063, 2683, 1674, 2348, 1795, 2974, 3019, 2456, 3089, 1887, 3039, 1695, 2657, 2290, 2825, 2133, 1851, 2370, 2064, 2684, 1675, 2349, 1796, 2975, 3020, 2457, 3090, 1888, 3040, 1696, 2658, 2291, 2826, 2134, 1852, 2371, 2065, 2685, 1676, 2350, 1797, 2976, 3021, 2458, 3091, 1889, 3041, 1697, 2659, 2292, 2827, 2135, 1853, 2372, 2066, 2686, 1677, 2351, 1798, 2977, 3022, 2459, 3092, 1890, 3042, 1698, 2660, 2293, 2828, 2136, 1854, 2373, 2067, 2687, 1678, 2352, 1799, 2978, 3023, 2460, 3093, 1891, 3043, 1699, 2661, 2294, 2829, 2137, 1855, 2374, 2068, 2688, 1679, 2353, 1800, 2979, 3024, 2461, 3094, 1892, 3044, 1700, 2662, 2295, 2830, 2138, 1856, 2375, 2069, 2689, 1680, 2354, 1663, 2980, 3025, 2462, 3095, 1893, 2987, 1701, 2663, 2296, 2831, 2139, 1857, 2376, 2070, 2690, 1681, 2355, 1664, 2981, 3026, 2463, 3096, 1894, 2988, 1702, 2664, 2297, 2832, 2140, 1858, 2377, 2071, 2691, 1682, 2356, 1665, 2982, 3027, 2464, 3097, 1895, 2989, 1703, 2665, 2298, 2833, 2141, 1859, 2378, 2072, 2692, 1683, 2357, 1666, 2983, 3028, 2465, 3098, 1896, 2990, 1704, 2666, 2299, 2834, 2142, 1860, 2379, 2073, 2693, 1684, 2358, 1667, 2984, 3029, 2466, 3099, 1897, 2991, 1705, 2667, 2300, 2835, 2143, 1861, 2380, 2074, 2694, 1685, 2359, 1668, 2985, 3030, 2467, 3100, 1898, 2992, 1706, 2668, 2301, 2836, 2144, 1862, 2381, 2075, 2695, 1686, 2360, 1669, 2986, 3031, 2468, 3101, 1899, 2993, 1707, 2669, 2302, 2837, 2145, 1863, 2382, 2076, 2696, 1687, 2361, 1670, 2987, 3032, 2469, 3102, 1900, 2994, 1708, 2670, 2303, 2838, 2146, 1864, 2383, 2077, 2697, 1688, 2362, 1671, 2988, 3033, 2470, 3103, 1901, 2995, 1709, 2671, 2304, 2521, 2147, 1865, 2384, 2078, 2698, 1689, 2363, 1672, 2989, 3034, 2471, 3104, 1902, 2996, 1710, 2672, 2305, 2522, 2148, 1866, 2385, 2079, 2699, 1690, 2364, 1673, 2990, 3035, 2472, 3105, 1903, 2997, 1711, 2673, 2306, 2523, 2149, 1867, 2386, 2080, 2700, 1691, 2365, 1674, 2991, 3036, 2473, 3106, 1904, 2998, 1712, 2674, 2307, 2524, 2150, 1868, 2387, 2081, 2701, 1692, 2366, 1675, 2992, 3037, 2474, 3107, 1905, 2999, 1713, 2675, 2308, 2525, 2151, 1869, 2388, 2082, 2702, 1693, 2367, 1676, 2993, 3038, 2475, 3108, 1906, 3000, 1714, 2676, 2309, 2526, 2152, 1870, 2389, 2083, 2703, 1694, 2368, 1677, 2994, 3039, 2476, 3109, 1907, 3001, 1715, 2677, 2310, 2527, 2153, 1871, 2390, 2084, 2704, 1695, 2369, 1678, 2995, 3040, 2477, 3110, 1908, 3002, 1716, 2678, 2311, 2528, 2154, 1872, 2391, 2085, 2705, 1696, 2370, 1679, 2996, 3041, 2478, 3111, 1909, 3003, 1717, 2679, 2312, 2529, 2155, 1873, 2392, 2086, 2706, 1697, 2371, 1680, 2997, 3042, 2479, 3112, 1910, 3004, 1718, 2680, 2313, 2530, 2156, 1874, 2393, 2087, 2707, 1698, 2372, 1681, 2998, 3043, 2480, 3113, 1911, 3005, 1719, 2681, 2314, 2531, 2157, 1875, 2394, 2088, 2708, 1699, 2373, 1682, 2999, 3044, 2481, 3114, 1912, 3006, 1720, 2682, 2315, 2532, 2158, 1876, 2395, 2089, 2709, 1700, 2374, 1683, 3000, 3045, 2482, 3115, 1913, 3007, 1721, 2683, 2316, 2533, 2159, 1877, 2396, 2090, 2710, 1701, 2375, 1684, 3001, 3046, 2483, 3116, 1914, 3008, 1722, 2684, 2317, 2534, 2160, 1878, 2397, 2091, 2711, 1702, 2376, 1685, 3002, 3047, 2484, 3117, 1915, 3009, 1723, 2685, 2318, 2535, 2146, 1879, 2398, 2092, 2712, 1703, 2377, 1686, 3003, 3048, 2485, 3118, 1916, 3010, 1724, 2686, 2319, 2536, 2147, 1880, 2399, 2093, 2713, 1704, 2378, 1687, 3004, 3049, 2486, 3119, 1917, 3011, 1725, 2687, 2320, 2537, 2148, 1881, 2400, 2094, 2714, 1705, 2379, 1688, 3005, 3050, 2487, 3120, 1918, 3012, 1726, 2688, 2321, 2538, 2149, 1882, 2401, 2095, 2715, 1706, 2380, 1689, 3006, 3051, 2488, 3121, 1919, 3013, 1727, 2689, 2322, 2539, 2150, 1883, 2402, 2096, 2716, 1707, 2381, 1690, 3007, 3052, 2489, 3122, 1920, 3014, 1728, 2690, 2323, 2540, 2151, 1884, 2403, 2097, 2717, 1708, 2382, 1691, 3008, 3053, 2490, 3123, 1921, 3015, 1729, 2691, 2324, 2541, 2152, 1885, 2404, 2098, 2718, 1709, 2383, 1692, 3009, 3054, 2491, 3124, 1922, 3016, 1730, 2692, 2325, 2542, 2153, 1886, 2405, 2099, 2719, 1710, 2384, 1693, 3010, 3055, 2492, 3125, 1923, 3017, 1731, 2693, 2326, 2543, 2154, 1887, 2406, 2100, 2720, 1711, 2385, 1694, 3011, 3056, 2493, 3126, 1924, 3018, 1732, 2694, 2327, 2544, 2155, 1888, 2407, 2101, 2721, 1712, 2386, 1695, 3012, 3057, 2494, 3127, 1925, 3019, 1733, 2695, 2328, 2545, 2156, 1889, 2408, 2102, 2722, 1713, 2387, 1696, 3013, 3058, 2495, 3128, 1926, 3020, 1734, 2696, 2329, 2546, 2157, 1890, 2409, 2103, 2723, 1714, 2388, 1697, 3014, 3059, 2496, 3129, 1927, 3021, 1735, 2697, 2330, 2547, 2158, 1891, 2410, 2104, 2724, 1715, 2389, 1698, 3015, 3060, 2497, 3130, 1928, 3022, 1736, 2698, 2331, 2548, 2159, 1892, 2411, 2105, 2725, 1716, 2390, 1699, 3016, 3061, 2498, 3131, 1929, 3023, 1737, 2699, 2332, 2549, 2160, 1893, 2412, 2106, 2726, 1717, 2391, 1700, 3017, 3062, 2499, 3132, 1930, 3024, 1738, 2700, 2333, 2550, 1816, 1894, 2413, 2107, 2727, 1718, 2392, 1701, 3018, 3063, 2500, 3133, 1931, 3025, 1739, 2701, 2334, 2551, 1817, 1895, 2414, 2108, 2728, 1719, 2393, 1702, 3019, 3064, 2501, 3134, 1932, 3026, 1740, 2702, 2335, 2552, 1818, 1896, 2415, 2109, 2729, 1720, 2394, 1703, 3020, 3065, 2502, 3135, 1933, 3027, 1741, 2703, 2336, 2553, 1819, 1897, 2416, 2110, 2730, 1721, 2395, 1704, 3021, 3066, 2503, 3136, 1934, 3028, 1742, 2704, 2337, 2554, 1820, 1898, 2417, 2111, 2731, 1722, 2396, 1705, 3022, 3067, 2504, 3137, 1935, 3029, 1743, 2705, 2338, 2555, 1821, 1899, 2418, 2112, 2732, 1723, 2397, 1706, 3023, 3068, 2505, 3138, 1936, 3030, 1744, 2706, 2339, 2556, 1822, 1900, 2419, 2113, 2733, 1724, 2398, 1707, 3024, 3069, 2506, 3139, 1937, 3031, 1745, 2707, 2340, 2557, 1823, 1901, 2420, 2114, 2734, 1725, 2399, 1708, 3025, 3070, 2507, 3140, 1938, 3032, 1746, 2708, 2341, 2558, 1824, 1902, 2421, 2115, 2735, 1726, 2400, 1709, 3026, 3071, 2508, 3141, 1939, 3033, 1747, 2709, 2342, 2559, 1825, 1903, 2422, 2116, 2736, 1727, 2401, 1710, 3027, 3072, 2509, 3142, 1940, 3034, 1748, 2710, 2343, 2560, 1826, 1904, 2423, 2117, 2737, 1728, 2402, 1711, 3028, 3073, 2510, 3143, 1941, 3035, 1749, 2711, 2344, 2561, 1827, 1905, 2424, 2118, 2738, 1729, 2403, 1712, 3029, 3074, 2511, 3144, 1942, 3036, 1750, 2712, 2345, 2562, 1828, 1906, 2425, 2119, 2739, 1730, 2404, 1713, 3030, 3075, 2512, 3145, 1943, 3037, 1751, 2713, 2346, 2521, 1829, 1907, 2426, 2120, 2740, 1731, 2405, 1714, 3031, 3076, 2513, 2881, 1944, 3038, 1752, 2714, 2347, 2522, 1830, 1908, 2427, 2121, 2741, 1732, 2406, 1715, 3032, 3077, 2514, 2882, 1945, 3039, 1753, 2715, 2348, 2523, 1831, 1909, 2428, 2122, 2742, 1733, 2407, 1716, 3033, 3078, 2515, 2883, 1946, 3040, 1754, 2716, 2349, 2524, 1832, 1910, 2429, 2123, 2743, 1734, 2408, 1717, 3034, 3079, 2516, 2884, 1947, 3041, 1755, 2717, 2350, 2525, 1833, 1911, 2430, 2124, 2744, 1735, 2409, 1718, 3035, 3080, 2517, 2885, 1948, 3042, 1756, 2718, 2351, 2526, 1834, 1912, 2431, 2125, 2745, 1736, 2410, 1719, 3036, 3081, 2518, 2886, 1949, 3043, 1757, 2719, 2352, 2527, 1835, 1913, 2432, 2126, 2746, 1737, 2411, 1720, 3037, 3082, 2519, 2887, 1950, 3044, 1758, 2720, 2353, 2528, 1836, 1914, 2433, 2127, 2747, 1738, 2412, 1721, 3038, 3083, 2520, 2888, 1951, 3045, 1759, 2721, 2354, 2529, 1837, 1915, 2434, 2128, 2748, 1739, 2413, 1722, 3039, 3084, 2161, 2889, 1952, 3046, 1760, 2722, 2355, 2530, 1838, 1916, 2435, 2129, 2749, 1740, 2414, 1723, 3040, 3085, 2162, 2890, 1953, 3047, 1761, 2723, 2356, 2531, 1839, 1917, 2436, 2130, 2750, 1741, 2415, 1724, 3041, 3086, 2163, 2891, 1954, 3048, 1762, 2724, 2357, 2532, 1840, 1918, 2437, 2131, 2751, 1742, 2416, 1725, 3042, 3087, 2164, 2892, 1955, 3049, 1763, 2725, 2358, 2533, 1841, 1919, 2438, 2132, 2752, 1743, 2417, 1726, 3043, 3088, 2165, 2893, 1956, 3050, 1764, 2726, 2359, 2534, 1842, 1920, 2439, 2133, 2753, 1744, 2418, 1727, 3044, 3089, 2166, 2894, 1801, 3051, 1765, 2727, 2360, 2535, 1843, 1921, 2440, 2134, 2754, 1745, 2419, 1728, 3045, 3090, 2167, 2895, 1802, 3052, 1766, 2728, 2361, 2536, 1844, 1922, 2441, 2135, 2755, 1746, 2420, 1729, 3046, 3091, 2168, 2896, 1803, 3053, 1767, 2729, 2362, 2537, 1845, 1923, 2442, 2136, 2756, 1747, 2421, 1730, 3047, 3092, 2169, 2897, 1804, 3054, 1768, 2730, 2363, 2538, 1846, 1924, 2443, 2137, 2757, 1748, 2422, 1731, 3048, 3093, 2170, 2898, 1805, 3055, 1769, 2731, 2364, 2539, 1847, 1925, 2444, 2138, 2758, 1749, 2423, 1732, 3049, 3094, 2171, 2899, 1806, 3056, 1770, 2732, 2365, 2540, 1848, 1926, 2445, 2139, 2759, 1750, 2424, 1733, 3050, 3095, 2172, 2900, 1807, 3057, 1771, 2733, 2366, 2541, 1849, 1927, 2446, 2140, 2760, 1751, 2425, 1734, 3051, 3096, 2173, 2901, 1808, 3058, 1772, 2734, 2367, 2542, 1850, 1928, 2447, 2141, 2761, 1752, 2426, 1735, 3052, 3097, 2174, 2902, 1809, 3059, 1773, 2735, 2368, 2543, 1851, 1929, 2448, 2142, 2762, 1753, 2427, 1736, 3053, 3098, 2175, 2903, 1810, 3060, 1774, 2736, 2369, 2544, 1852, 1930, 2449, 2143, 2763, 1754, 2428, 1737, 3054, 3099, 2176, 2904, 1811, 3061, 1775, 2737, 2370, 2545, 1853, 1931, 2450, 2144, 2764, 1755, 2429, 1738, 3055, 3100, 2177, 2905, 1812, 3062, 1776, 2738, 2371, 2546, 1854, 1932, 2451, 2145, 2765, 1756, 2430, 1739, 3056, 3101, 2178, 2906, 1813, 3063, 1777, 2739, 2372, 2547, 1855, 1933, 2452, 2146, 2766, 1757, 2431, 1740, 3057, 3102, 2179, 2907, 1814, 3064, 1778, 2740, 2373, 2548, 1856, 1934, 2453, 2147, 2767, 1758, 2432, 1741, 3058, 3103, 2180, 2908, 1815, 3065, 1779, 2741, 2374, 2549, 1857, 1935, 2454, 2148, 2768, 1759, 2433, 1742, 3059, 3104, 2181, 2909, 1816, 3066, 1780, 2742, 2375, 2550, 1858, 1936, 2455, 2149, 2769, 1760, 2434, 1743, 3060, 3105, 2182, 2910, 1817, 3067, 1781, 2743, 2376, 2551, 1859, 1937, 2456, 2150, 2770, 1761, 2435, 1744, 3061, 3106, 2183, 2911, 1818, 3068, 1782, 2744, 2377, 2552, 1860, 1938, 2457, 2151, 2771, 1762, 2436, 1745, 3062, 3107, 2184, 2912, 1819, 3069, 1783, 2745, 2378, 2553, 1861, 1939, 2458, 2152, 2772, 1763, 2437, 1746, 3063, 3108, 2185, 2913, 1820, 3070, 1784, 2746, 2379, 2554, 1862, 1940, 2459, 2153, 2773, 1764, 2438, 1747, 3064, 3109, 2186, 2914, 1821, 3071, 1785, 2747, 2380, 2555, 1863, 1941, 2460, 2154, 2774, 1765, 2439, 1748, 3065, 3110, 2187, 2915, 1822, 3072, 1786, 2748, 2381, 2556, 1864, 1942, 2461, 2155, 2775, 1766, 2440, 1749, 3066, 3111, 2188, 2916, 1823, 3073, 1787, 2749, 2382, 2557, 1865, 1943, 2462, 2156, 2776, 1767, 2441, 1750, 3067, 3112, 2189, 2917, 1824, 3074, 1788, 2750, 2383, 2558, 1866, 1944, 2463, 2157, 2777, 1768, 2442, 1751, 3068, 3113, 2190, 2918, 1825, 3075, 1789, 2751, 2384, 2559, 1867, 1945, 2464, 2158, 2778, 1769, 2443, 1752, 3069, 3114, 2191, 2919, 1826, 3076, 1790, 2752, 2385, 2560, 1868, 1946, 2465, 2159, 2779, 1770, 2444, 1753, 3070, 3115, 2192, 2920, 1827, 3077, 1791, 2753, 2386, 2561, 1869, 1947, 2466, 2160, 2780, 1771, 2445, 1754, 3071, 3116, 2193, 2921, 1828, 3078, 1792, 2754, 2387, 2562, 1870, 1948, 2467, 1801, 2781, 1772, 2446, 1755, 3072, 3117, 2194, 2922, 1829, 3079, 1793, 2755, 2388, 2563, 1871, 1949, 2468, 1802, 2782, 1773, 2447, 1756, 3073, 3118, 2195, 2923, 1830, 3080, 1794, 2756, 2389, 2564, 1872, 1950, 2469, 1803, 2783, 1774, 2448, 1757, 3074, 3119, 2196, 2924, 1831, 3081, 1795, 2757, 2390, 2565, 1873, 1951, 2470, 1804, 2784, 1775, 2449, 1758, 3075, 3120, 2197, 2925, 1832, 3082, 1796, 2758, 2391, 2566, 1874, 1952, 2471, 1805, 2785, 1776, 2450, 1759, 3076, 3121, 2198, 2926, 1833, 3083, 1797, 2759, 2392, 2567, 1875, 1953, 2472, 1806, 2786, 1777, 2451, 1760, 3077, 3219, 3015, 3192, 1990, 3142, 2819, 3166, 2476, 2610, 2339, 2547, 2752, 2779, 3024, 2646, 2581, 1910, 3170, 3220, 3016, 3193, 1991, 3143, 2820, 3167, 2477, 2611, 2340, 2548, 2753, 2780, 3025, 2647, 2582, 1911, 3171, 3221, 3017, 3194, 1992, 3144, 2821, 3168, 2478, 2612, 2341, 2549, 2754, 2781, 3026, 2648, 2583, 1912, 3172, 3222, 3018, 3195, 1993, 3145, 2822, 3169, 2479, 2613, 2342, 2550, 2755, 2782, 3027, 2649, 2584, 1913, 3173, 3223, 3019, 3196, 1994, 3146, 2823, 3170, 2480, 2614, 2343, 2551, 2756, 2783, 3028, 2650, 2585, 1914, 3174, 3224, 3020, 3197, 1995, 3147, 2824, 3171, 2481, 2615, 2344, 2552, 2757, 2784, 3029, 2651, 2586, 1915, 3175, 3225, 3021, 3198, 1996, 3148, 2825, 3172, 2482, 2616, 2345, 2553, 2758, 2785, 3030, 2652, 2587, 1916, 3176, 3226, 3022, 3199, 1997, 3149, 2826, 3173, 2483, 2617, 2346, 2554, 2759, 2786, 3031, 2653, 2588, 1917, 3177, 3227, 3023, 3200, 1998, 3150, 2827, 3174, 2484, 2618, 2347, 2555, 2760, 2787, 3032, 2654, 2589, 1918, 3178, 3228, 3024, 3201, 1999, 3151, 2828, 3175, 2485, 2619, 2348, 2556, 2761, 2788, 3033, 2655, 2590, 1919, 3179, 3229, 3025, 3202, 2000, 3152, 2829, 3176, 2486, 2620, 2349, 2557, 2762, 2789, 3034, 2656, 2591, 1920, 3180, 3230, 3026, 3203, 2001, 3153, 2830, 3177, 2487, 2621, 2350, 2558, 2763, 2790, 3035, 2657, 2592, 1921, 3181, 3231, 3027, 3204, 2002, 3154, 2831, 3178, 2488, 2622, 2351, 2559, 2764, 2791, 3036, 2658, 2593, 1922, 3182, 3232, 3028, 3205, 2003, 3155, 2832, 3179, 2489, 2623, 2352, 2560, 2765, 2792, 3037, 2659, 2594, 1923, 3183, 3233, 3029, 3206, 2004, 3156, 2833, 3180, 2490, 2624, 2353, 2561, 2766, 2793, 3038, 2660, 2595, 1924, 3184, 3234, 3030, 3207, 2005, 3157, 2834, 3181, 2491, 2625, 2354, 2562, 2767, 2794, 3039, 2661, 2596, 1925, 3185, 3235, 3031, 3208, 2006, 3158, 2835, 3182, 2492, 2626, 2355, 2563, 2768, 2795, 3040, 2662, 2597, 1926, 3186, 3236, 3032, 3209, 2007, 3159, 2836, 3183, 2493, 2627, 2356, 2564, 2769, 2796, 3041, 2663, 2598, 1927, 3187, 3237, 3033, 3210, 2008, 3160, 2837, 3184, 2494, 2628, 2357, 2565, 2770, 2797, 3042, 2664, 2599, 1928, 3188, 3238, 3034, 3211, 2009, 3161, 2838, 3185, 2495, 2629, 2358, 2566, 2771, 2798, 3043, 2665, 2600, 1929, 3189, 3239, 3035, 3212, 2010, 3162, 2839, 3186, 2496, 2630, 2359, 2567, 2772, 2799, 3044, 2666, 2601, 1930, 3190, 3240, 3036, 3213, 2011, 3163, 2840, 3187, 2497, 2631, 2360, 2568, 2773, 2800, 3045, 2667, 2602, 1931, 3191, 3144, 3037, 3214, 2012, 3164, 2841, 3188, 2498, 2632, 2361, 2569, 2774, 2801, 3046, 2668, 2603, 1932, 3192, 3145, 3038, 3215, 2013, 3165, 2842, 3189, 2499, 2633, 2362, 2570, 2775, 2802, 3047, 2669, 2604, 1933, 3193, 3146, 3039, 3216, 2014, 3166, 2843, 3190, 2500, 2634, 2363, 2571, 2776, 2803, 3048, 2670, 2605, 1934, 3194, 3147, 3040, 3217, 2015, 3167, 2844, 3191, 2501, 2635, 2364, 2572, 2777, 2804, 3049, 2671, 2606, 1935, 3195, 3148, 3041, 3218, 2016, 3168, 2845, 3192, 2502, 2636, 2365, 2573, 2778, 2805, 3050, 2672, 2607, 1936, 3196, 3149, 3042, 3219, 2017, 3169, 2846, 3193, 2503, 2637, 2366, 2574, 2779, 2806, 3051, 2673, 2608, 1937, 3197, 3150, 3043, 3220, 2018, 3170, 2847, 3194, 2504, 2638, 2367, 2575, 2780, 2807, 3052, 2674, 2609, 1938, 3198, 3151, 3044, 3221, 2019, 3171, 2848, 3195, 2505, 2639, 2368, 2576, 2781, 2808, 3053, 2675, 2610, 1939, 3199, 3152, 3045, 3222, 2020, 3172, 2849, 3196, 2506, 2640, 2369, 2577, 2782, 2809, 3054, 2676, 2611, 1940, 3200, 3153, 3046, 3223, 2021, 3173, 2850, 3197, 2507, 2641, 2370, 2578, 2783, 2810, 3055, 2677, 2612, 1941, 3201, 3154, 3047, 3224, 2022, 3174, 2851, 3198, 2508, 2642, 2371, 2579, 2784, 2811, 3056, 2678, 2613, 1942, 3202, 3155, 3048, 3225, 2023, 3175, 2852, 3199, 2509, 2643, 2372, 2580, 2785, 2812, 3057, 2679, 2614, 1943, 3203, 3156, 3049, 3226, 2024, 3176, 2853, 3200, 2510, 2644, 2373, 2581, 2786, 2813, 3058, 2680, 2615, 1944, 3204, 3157, 3050, 3227, 2025, 3177, 2854, 3201, 2511, 2645, 2374, 2582, 2787, 2814, 3059, 2681, 2616, 1945, 3205, 3158, 3051, 3228, 2026, 3178, 2855, 3202, 2512, 2646, 2375, 2583, 2788, 2815, 3060, 2682, 2617, 1946, 3206, 3159, 3052, 3229, 2027, 3179, 2856, 3203, 2513, 2647, 2376, 2584, 2789, 2816, 3061, 2683, 2618, 1947, 3207, 3160, 3053, 3230, 2028, 3180, 2857, 3204, 2514, 2648, 2377, 2585, 2790, 2817, 3062, 2684, 2619, 1948, 3208, 3161, 3054, 3231, 2029, 3181, 2858, 3205, 2515, 2649, 2378, 2586, 2791, 2818, 3063, 2685, 2620, 1949, 3209, 3162, 3055, 3232, 2030, 3182, 2859, 3206, 2516, 2650, 2379, 2587, 2792, 2819, 3064, 2686, 2621, 1950, 3210, 3163, 3056, 3233, 2031, 3183, 2860, 3207, 2517, 2651, 2380, 2588, 2793, 2820, 3065, 2687, 2622, 1951, 3211, 3164, 3057, 3234, 2032, 3184, 2861, 3208, 2518, 2652, 2381, 2589, 2794, 2821, 3066, 2688, 2623, 1952, 3212, 3165, 3058, 3235, 2033, 3185, 2862, 3209, 2519, 2653, 2382, 2590, 2795, 2822, 3067, 2689, 2624, 1953, 3213, 3166, 3059, 3236, 2034, 3186, 2863, 3210, 2520, 2654, 2383, 2591, 2796, 2823, 3068, 2690, 2625, 1954, 3214, 3167, 3060, 3237, 2035, 3187, 2864, 3211, 2438, 2655, 2384, 2592, 2797, 2824, 3069, 2691, 2626, 1955, 3215, 3168, 3061, 3238, 2036, 3188, 2865, 3212, 2439, 2656, 2385, 2593, 2798, 2825, 3070, 2692, 2627, 1956, 3216, 3169, 3062, 3239, 2037, 3189, 2866, 3213, 2440, 2657, 2386, 2594, 2799, 2826, 3071, 2693, 2628, 1957, 3217, 3170, 3063, 3240, 2038, 3190, 2867, 3214, 2441, 2658, 2387, 2595, 2800, 2827, 3072, 2694, 2629, 1958, 3218, 3171, 3064, 2976, 2039, 3191, 2868, 3215, 2442, 2659, 2388, 2596, 2801, 2828, 3073, 2695, 2630, 1959, 3219, 3172, 3065, 2977, 2040, 3192, 2869, 3216, 2443, 2660, 2389, 2597, 2802, 2829, 3074, 2696, 2631, 1960, 3220, 3173, 3066, 2978, 2041, 3193, 2870, 3217, 2444, 2661, 2390, 2598, 2803, 2830, 3075, 2697, 2632, 1961, 3221, 3174, 3067, 2979, 2042, 3194, 2871, 3218, 2445, 2662, 2391, 2599, 2804, 2831, 3076, 2698, 2633, 1962, 3222, 3175, 3068, 2980, 2043, 3195, 2872, 3219, 2446, 2663, 2392, 2600, 2805, 2832, 3077, 2699, 2634, 1963, 3223, 3176, 3069, 2981, 2044, 3196, 2873, 3220, 2447, 2664, 2393, 2601, 2806, 2833, 3078, 2700, 2635, 1964, 3224, 3177, 3070, 2982, 2045, 3197, 2874, 3221, 2448, 2665, 2394, 2602, 2807, 2834, 3079, 2701, 2636, 1965, 3225, 3178, 3071, 2983, 2046, 3198, 2875, 3222, 2449, 2666, 2395, 2603, 2808, 2835, 3080, 2702, 2637, 1966, 3226, 3179, 3072, 2984, 2047, 3199, 2876, 3223, 2450, 2667, 2396, 2604, 2809, 2836, 3081, 2703, 2638, 1967, 3227, 3180, 3073, 2985, 2048, 3200, 2877, 3224, 2451, 2668, 2397, 2605, 2810, 2837, 3082, 2704, 2639, 1968, 3228, 3181, 3074, 2986, 2049, 3201, 2878, 3225, 2452, 2669, 2398, 2606, 2811, 2838, 3083, 2705, 2640, 1969, 3229, 3182, 3075, 2987, 2050, 3202, 2879, 3226, 2453, 2670, 2399, 2607, 2812, 2839, 3084, 2706, 2641, 1970, 3230, 3183, 3076, 2988, 2051, 3203, 2880, 3227, 2454, 2671, 2400, 2608, 2813, 2840, 3085, 2707, 2642, 1971, 3231, 3184, 3077, 2989, 2052, 3204, 2521, 3228, 2455, 2672, 2401, 2609, 2814, 2841, 3086, 2708, 2643, 1972, 3232, 3185, 3078, 2990, 2053, 3205, 2522, 3229, 2456, 2673, 2402, 2610, 2815, 2842, 3087, 2709, 2644, 1973, 3233, 3186, 3079, 2991, 2054, 3206, 2523, 3230, 2457, 2674, 2403, 2611, 2816, 2843, 3088, 2710, 2645, 1974, 3234, 3187, 3080, 2992, 2055, 3207, 2524, 3231, 2458, 2675, 2404, 2612, 2817, 2844, 3089, 2711, 2646, 1975, 3235, 3188, 3081, 2993, 2056, 3208, 2525, 3232, 2459, 2676, 2405, 2613, 2818, 2845, 3090, 2712, 2647, 1976, 3236, 3189, 3082, 2994, 2057, 3209, 2526, 3233, 2460, 2677, 2406, 2614, 2819, 2846, 3091, 2713, 2648, 1977, 3237, 3190, 3083, 2995, 2058, 3210, 2527, 3234, 2461, 2678, 2407, 2615, 2820, 2847, 3092, 2714, 2649, 1978, 3238, 3191, 3084, 2996, 2059, 3211, 2528, 3235, 2462, 2679, 2408, 2616, 2821, 2848, 3093, 2715, 2650, 1979, 3239, 3192, 3085, 2997, 2060, 3212, 2529, 3236, 2463, 2680, 2409, 2617, 2822, 2849, 3094, 2716, 2651, 1980, 3240, 3193, 3086, 2998, 2061, 3213, 2530, 3237, 2464, 2681, 2410, 2618, 2823, 2850, 3095, 2717, 2652, 1981, 3149, 3194, 3087, 2999, 2062, 3214, 2531, 3238, 2465, 2682, 2411, 2619, 2824, 2851, 3096, 2718, 2653, 1982, 3150, 3195, 3088, 3000, 2063, 3215, 2532, 3239, 2466, 2683, 2412, 2620, 2825, 2852, 3097, 2719, 2654, 1983, 3151, 3196, 3089, 3001, 2064, 3216, 2533, 3240, 2467, 2684, 2413, 2621, 2826, 2853, 3098, 2720, 2655, 1984, 3152, 3197, 3090, 3002, 2065, 3217, 2534, 2881, 2468, 2685, 2414, 2622, 2827, 2854, 3099, 2721, 2656, 1985, 3153, 3198, 3091, 3003, 2066, 3218, 2535, 2882, 2469, 2686, 2415, 2623, 2828, 2855, 3100, 2722, 2657, 1986, 3154, 3199, 3092, 3004, 2067, 3219, 2536, 2883, 2470, 2687, 2416, 2624, 2829, 2856, 3101, 2723, 2658, 1987, 3155, 3200, 3093, 3005, 2068, 3220, 2537, 2884, 2471, 2688, 2417, 2625, 2830, 2857, 3102, 2724, 2659, 1988, 3156, 3201, 3094, 3006, 2069, 3221, 2538, 2885, 2472, 2689, 2418, 2626, 2831, 2858, 3103, 2725, 2660, 1989, 3157, 3202, 3095, 3007, 2070, 3222, 2539, 2886, 2473, 2690, 2419, 2627, 2832, 2859, 3104, 2726, 2661, 1990, 3158, 3203, 3096, 3008, 2071, 3223, 2540, 2887, 2474, 2691, 2420, 2628, 2833, 2860, 3105, 2727, 2662, 1991, 3159, 3204, 3097, 3009, 2072, 3224, 2541, 2888, 2475, 2692, 2421, 2629, 2834, 2861, 3106, 2728, 2663, 1992, 3160, 3205, 3098, 3010, 2073, 3225, 2542, 2889, 2476, 2693, 2422, 2630, 2835, 2862, 3107, 2729, 2664, 1993, 3161, 3206, 3099, 3011, 2074, 3226, 2543, 2890, 2477, 2694, 2423, 2631, 2836, 2863, 3108, 2730, 2665, 1994, 3162, 3207, 3100, 3012, 2075, 3227, 2544, 2891, 2478, 2695, 2424, 2632, 2837, 2864, 3109, 2731, 2666, 1995, 3163, 3208, 3101, 3013, 2076, 3228, 2545, 2892, 2479, 2696, 2425, 2633, 2838, 2865, 3110, 2732, 2667, 1996, 3164, 3209, 3102, 3014, 2077, 3229, 2546, 2893, 2480, 2697, 2426, 2634, 2839, 2866, 3111, 2733, 2668, 1997, 3165, 3210, 3103, 3015, 2078, 3230, 2547, 2894, 2481, 2698, 2427, 2635, 2840, 2867, 3112, 2734, 2669, 1998, 3166, 3211, 3104, 3016, 2079, 3231, 2548, 2895, 2482, 2699, 2428, 2636, 2841, 2868, 3113, 2735, 2670, 1999, 3167, 3212, 3105, 3017, 2080, 3232, 2549, 2896, 2483, 2700, 2429, 2637, 2842, 2869, 3114, 2736, 2671, 2000, 3168, 3213, 3106, 3018, 2081, 3233, 2550, 2897, 2484, 2701, 2430, 2638, 2843, 2870, 3115, 2737, 2672, 2001, 3169, 3214, 3107, 3019, 2082, 3234, 2551, 2898, 2485, 2702, 2431, 2639, 2844, 2871, 3116, 2738, 2673, 2002, 3170, 3215, 3108, 3020, 2083, 3235, 2552, 2899, 2486, 2703, 2432, 2640, 2845, 2872, 3117, 2739, 2674, 2003, 3171, 3216, 3109, 3021, 2084, 3236, 2553, 2900, 2487, 2704, 2433, 2641, 2846, 2873, 3118, 2740, 2675, 2004, 3172, 3217, 3110, 3022, 2085, 3237, 2554, 2901, 2488, 2705, 2434, 2642, 2847, 2874, 3119, 2741, 2676, 2005, 3173, 3218, 3111, 3023, 2086, 3238, 2555, 2902, 2489, 2706, 2435, 2643, 2848, 2875, 3120, 2742, 2677, 2006, 3174, 3219, 3112, 3024, 2087, 3239, 2556, 2903, 2490, 2707, 2436, 2644, 2849, 2876, 3121, 2743, 2678, 2007, 3175, 3220, 3113, 3025, 2088, 3240, 2557, 2904, 2491, 2708, 2437, 2645, 2850, 2877, 3122, 2744, 2679, 2008, 3176, 3221, 3114, 3026, 2089, 3183, 2558, 2905, 2492, 2709, 2438, 2646, 2851, 2878, 3123, 2745, 2680, 2009, 3177, 3222, 3115, 3027, 2090, 3184, 2559, 2906, 2493, 2710, 2439, 2647, 2852, 2879, 3124, 2746, 2681, 2010, 3178, 3223, 3116, 3028, 2091, 3185, 2560, 2907, 2494, 2711, 2440, 2648, 2853, 2880, 3125, 2747, 2682, 2011, 3179, 3224, 3117, 3029, 2092, 3186, 2561, 2908, 2495, 2712, 2441, 2649, 2854, 2521, 3126, 2748, 2683, 2012, 3180, 3225, 3118, 3030, 2093, 3187, 2562, 2909, 2496, 2713, 2442, 2650, 2855, 2522, 3127, 2749, 2684, 2013, 3181, 3226, 3119, 3031, 2094, 3188, 2563, 2910, 2497, 2714, 2443, 2651, 2856, 2523, 3128, 2750, 2685, 2014, 3182, 3227, 3120, 3032, 2095, 3189, 2564, 2911, 2498, 2715, 2444, 2652, 2857, 2524, 3129, 2751, 2686, 2015, 3183, 3228, 3121, 3033, 2096, 3190, 2565, 2912, 2499, 2716, 2445, 2653, 2858, 2525, 3130, 2752, 2687, 2016, 3184, 3229, 3122, 3034, 2097, 3191, 2566, 2913, 2500, 2717, 2446, 2654, 2859, 2526, 3131, 2753, 2688, 2017, 3185, 3230, 3123, 3035, 2098, 3192, 2567, 2914, 2501, 2718, 2447, 2655, 2860, 2527, 3132, 2754, 2689, 2018, 3186, 3231, 3124, 3036, 2099, 3193, 2568, 2915, 2502, 2719, 2448, 2656, 2861, 2528, 3133, 2755, 2690, 2019, 3187, 3232, 3125, 3037, 2100, 3194, 2569, 2916, 2503, 2720, 2449, 2657, 2862, 2529, 3134, 2756, 2691, 2020, 3188, 3233, 3126, 3038, 2101, 3195, 2570, 2917, 2504, 2721, 2450, 2658, 2863, 2530, 3135, 2757, 2692, 2021, 3189, 3234, 3127, 3039, 2102, 3196, 2571, 2918, 2505, 2722, 2451, 2659, 2864, 2531, 3136, 2758, 2693, 2022, 3190, 3235, 3128, 3040, 2103, 3197, 2572, 2919, 2506, 2723, 2452, 2660, 2865, 2532, 3137, 2759, 2694, 2023, 3191, 3236, 3129, 3041, 2104, 3198, 2573, 2920, 2507, 2724, 2453, 2661, 2866, 2533, 3138, 2760, 2695, 2024, 3192, 3237, 3130, 3042, 2105, 3199, 2574, 2921, 2508, 2725, 2454, 2662, 2867, 2534, 3139, 2761, 2696, 2025, 3193, 3238, 3131, 3043, 2106, 3200, 2575, 2922, 2509, 2726, 2455, 2663, 2868, 2535, 3140, 2762, 2697, 2026, 3194, 3239, 3132, 3044, 2107, 3201, 2576, 2923, 2510, 2727, 2456, 2664, 2869, 2536, 3141, 2763, 2698, 2027, 3195, 3240, 3133, 3045, 2108, 3202, 2577, 2924, 2511, 2728, 2457, 2665, 2870, 2537, 3142, 2764, 2699, 2028, 3196, 2978, 3134, 3046, 2109, 3203, 2578, 2925, 2512, 2729, 2458, 2666, 2871, 2538, 3143, 2765, 2700, 2029, 3197, 2979, 3135, 3047, 2110, 3204, 2579, 2926, 2513, 2730, 2459, 2667, 2872, 2539, 3144, 2766, 2701, 2030, 3198, 2980, 3136, 3048, 2111, 3205, 2580, 2927, 2514, 2731, 2460, 2668, 2873, 2540, 3145, 2767, 2702, 2031, 3199, 2981, 3137, 3049, 2112, 3206, 2581, 2928, 2515, 2732, 2461, 2669, 2874, 2541, 3146, 2768, 2703, 2032, 3200, 2982, 3138, 3050, 2113, 3207, 2582, 2929, 2516, 2733, 2462, 2670, 2875, 2542, 3147, 2769, 2704, 2033, 3201, 2983, 3139, 3051, 2114, 3208, 2583, 2930, 2517, 2734, 2463, 2671, 2876, 2543, 3148, 2770, 2705, 2034, 3202, 2984, 3140, 3052, 2115, 3209, 2584, 2931, 2518, 2735, 2464, 2672, 2877, 2544, 3149, 2771, 2706, 2035, 3203, 2985, 3141, 3053, 2116, 3210, 2585, 2932, 2519, 2736, 2465, 2673, 2878, 2545, 3150, 2772, 2707, 2036, 3204, 2986, 3142, 3054, 2117, 3211, 2586, 2933, 2520, 2737, 2466, 2674, 2879, 2546, 3151, 2773, 2708, 2037, 3205, 2987, 3143, 3055, 2118, 3212, 2587, 2934, 2244, 2738, 2467, 2675, 2880, 2547, 3152, 2774, 2709, 2038, 3206, 2988, 3144, 3056, 2119, 3213, 2588, 2935, 2245, 2739, 2468, 2676, 2521, 2548, 3153, 2775, 2710, 2039, 3207, 2989, 3145, 3057, 2120, 3214, 2589, 2936, 2246, 2740, 2469, 2677, 2522, 2549, 3154, 2776, 2711, 2040, 3208, 2990, 3146, 3058, 2121, 3215, 2590, 2937, 2247, 2741, 2470, 2678, 2523, 2550, 3155, 2777, 2712, 2041, 3209, 2991, 3147, 3059, 2122, 3216, 2591, 2938, 2248, 2742, 2471, 2679, 2524, 2551, 3156, 2778, 2713, 2042, 3210, 2992, 3148, 3060, 2123, 3217, 2592, 2939, 2249, 2743, 2472, 2680, 2525, 2552, 3157, 2779, 2714, 2043, 3211, 2993, 3149, 3061, 2124, 3218, 2593, 2940, 2250, 2744, 2473, 2681, 2526, 2553, 3158, 2780, 2715, 2044, 3212, 2994, 3150, 3062, 2125, 3219, 2594, 2941, 2251, 2745, 2474, 2682, 2527, 2554, 3159, 2781, 2716, 2045, 3213, 2995, 3151, 3063, 2126, 3220, 2595, 2942, 2252, 2746, 2475, 2683, 2528, 2555, 3160, 2782, 2717, 2046, 3214, 2996, 3152, 3064, 2127, 3221, 2596, 2943, 2253, 2747, 2476, 2684, 2529, 2556, 3161, 2783, 2718, 2047, 3215, 2997, 3153, 3065, 2128, 3222, 2597, 2944, 2254, 2748, 2477, 2685, 2530, 2557, 3162, 2784, 2719, 2048, 3216, 2998, 3154, 3066, 2129, 3223, 2598, 2945, 2255, 2749, 2478, 2686, 2531, 2558, 3163, 2785, 2720, 2049, 3217, 2999, 3155, 3067, 2130, 3224, 2599, 2946, 2256, 2750, 2479, 2687, 2532, 2559, 3164, 2786, 2721, 2050, 3218, 3000, 3156, 3068, 2131, 3225, 2600, 2947, 2257, 2751, 2480, 2688, 2533, 2560, 3165, 2787, 2722, 2051, 3219, 3001, 3157, 3069, 2132, 3226, 2601, 2948, 2258, 2752, 2481, 2689, 2534, 2561, 3166, 2788, 2723, 2052, 3220, 3002, 3158, 3070, 2133, 3227, 2602, 2949, 2259, 2753, 2482, 2690, 2535, 2562, 3167, 2789, 2724, 2053, 3221, 3003, 3159, 3071, 2134, 3228, 2603, 2950, 2260, 2754, 2483, 2691, 2536, 2563, 3168, 2790, 2725, 2054, 3222, 3004, 3160, 3072, 2135, 3229, 2604, 2951, 2261, 2755, 2484, 2692, 2537, 2564, 3169, 2791, 2726, 2055, 3223, 3005, 3161, 3073, 2136, 3230, 2605, 2952, 2262, 2756, 2485, 2693, 2538, 2565, 3170, 2792, 2727, 2056, 3224, 3006, 3162, 3074, 2137, 3231, 2606, 2953, 2263, 2757, 2486, 2694, 2539, 2566, 3171, 2793, 2728, 2057, 3225, 3007, 3163, 3075, 2138, 3232, 2607, 2954, 2264, 2758, 2487, 2695, 2540, 2567, 3172, 2794, 2729, 2058, 3226, 3008, 3164, 3076, 2139, 3233, 2608, 2955, 2265, 2759, 2488, 2696, 2541, 2568, 3173, 2795, 2730, 2059, 3227, 3009, 3165, 3077, 2140, 3234, 2609, 2956, 2266, 2760, 2489, 2697, 2542, 2569, 3174, 2796, 2731, 2060, 3228, 3010, 3166, 3078, 2141, 3235, 2610, 2957, 2267, 2761, 2490, 2698, 2543, 2570, 3175, 2797, 2732, 2061, 3229, 3011, 3167, 3079, 2142, 3236, 2611, 2958, 2268, 2762, 2491, 2699, 2544, 2571, 3176, 2798, 2733, 2062, 3230, 3012, 3168, 3080, 2143, 3237, 2612, 2959, 2269, 2763, 2492, 2700, 2545, 2572, 3177, 2799, 2734, 2063, 3231, 3013, 3169, 3081, 2144, 3238, 2613, 2960, 2270, 2764, 2493, 2701, 2546, 2573, 3178, 2800, 2735, 2064, 3232, 3014, 3170, 3082, 2145, 3239, 2614, 2961, 2271, 2765, 2494, 2702, 2547, 2574, 3179, 2801, 2736, 2065, 3233, 3015, 3171, 3083, 2146, 3240, 2615, 2962, 2272, 2766, 2495, 2703, 2548, 2575, 3180, 2802, 2737, 2066, 3234, 3016, 3172, 3084, 2147, 3135, 2616, 2963, 2273, 2767, 2496, 2704, 2549, 2576, 3181, 2803, 2738, 2067, 3235, 3017, 3173, 3085, 2148, 3136, 2617, 2964, 2274, 2768, 2497, 2705, 2550, 2577, 3182, 2804, 2739, 2068, 3236, 3018, 3174, 3086, 2149, 3137, 2618, 2965, 2275, 2769, 2498, 2706, 2551, 2578, 3183, 2805, 2740, 2069, 3237, 3019, 3175, 3087, 2150, 3138, 2619, 2966, 2276, 2770, 2499, 2707, 2552, 2579, 3184, 2806, 2741, 2070, 3238, 3020, 3176, 3088, 2151, 3139, 2620, 2967, 2277, 2771, 2500, 2708, 2553, 2580, 3185, 2807, 2742, 2071, 3239, 3021, 3177, 3089, 2152, 3140, 2621, 2968, 2278, 2772, 2501, 2709, 2554, 2581, 3186, 2808, 2743, 2072, 3240, 3022, 3178, 3090, 2153, 3141, 2622, 2969, 2279, 2773, 2502, 2710, 2555, 2582, 3187, 2809, 2744, 2073, 2973, 3023, 3179, 3091, 2154, 3142, 2623, 2970, 2280, 2774, 2503, 2711, 2556, 2583, 3188, 2810, 2745, 2074, 2974, 3024, 3180, 3092, 2155, 3143, 2624, 2971, 2281, 2775, 2504, 2712, 2557, 2584, 3189, 2811, 2746, 2075, 2975, 3025, 3181, 3093, 2156, 3144, 2625, 2972, 2282, 2776, 2505, 2713, 2558, 2585, 3190, 2812, 2747, 2076, 2976, 3026, 3182, 3094, 2157, 3145, 2626, 2973, 2283, 2777, 2506, 2714, 2559, 2586, 3191, 2813, 2748, 2077, 2977, 3027, 3183, 3095, 2158, 3146, 2627, 2974, 2284, 2778, 2507, 2715, 2560, 2587, 3192, 2814, 2749, 2078, 2978, 3028, 3184, 3096, 2159, 3147, 2628, 2975, 2285, 2779, 2508, 2716, 2561, 2588, 3193, 2815, 2750, 2079, 2979, 3029, 3185, 3097, 2160, 3148, 2629, 2976, 2286, 2780, 2509, 2717, 2562, 2589, 3194, 2816, 2751, 2080, 2980, 3030, 3186, 3098, 2005, 3149, 2630, 2977, 2287, 2781, 2510, 2718, 2563, 2590, 3195, 2817, 2752, 2081, 2981, 3031, 3187, 3099, 2006, 3150, 2631, 2978, 2288, 2782, 2511, 2719, 2564, 2591, 3196, 2818, 2753, 2082, 2982, 3032, 3188, 3100, 2007, 3151, 2632, 2979, 2289, 2783, 2512, 2720, 2565, 2592, 3197, 2819, 2754, 2083, 2983, 3033, 3189, 3101, 2008, 3152, 2633, 2980, 2290, 2784, 2513, 2721, 2566, 2593, 3198, 2820, 2755, 2084, 2984, 3034, 3190, 3102, 2009, 3153, 2634, 2981, 2291, 2785, 2514, 2722, 2567, 2594, 3199, 2821, 2756, 2085, 2985, 3035, 3191, 3103, 2010, 3154, 2635, 2982, 2292, 2786, 2515, 2723, 2568, 2595, 3200, 2822, 2757, 2086, 2986, 3036, 3192, 3104, 2011, 3155, 2636, 2983, 2293, 2787, 2516, 2724, 2569, 2596, 3201, 2823, 2758, 2087, 2987, 3037, 3193, 3105, 2012, 3156, 2637, 2984, 2294, 2788, 2517, 2725, 2570, 2597, 3202, 2824, 2759, 2088, 2988, 3038, 3194, 3106, 2013, 3157, 2638, 2985, 2295, 2789, 2518, 2726, 2571, 2598, 3203, 2825, 2760, 2089, 2989, 3039, 3195, 3107, 2014, 3158, 2639, 2986, 2296, 2790, 2519, 2727, 2572, 2599, 3204, 2826, 2761, 2090, 2990, 3040, 3196, 3108, 2015, 3159, 2640, 2987, 2297, 2791, 2520, 2728, 2573, 2600, 3205, 2827, 2762, 2091, 2991, 3041, 3197, 3109, 2016, 3160, 2641, 2988, 2298, 2792, 2161, 2729, 2574, 2601, 3206, 2828, 2763, 2092, 2992, 3042, 3198, 3110, 2017, 3161, 2642, 2989, 2299, 2793, 2162, 2730, 2575, 2602, 3207, 2829, 2764, 2093, 2993, 3043, 3199, 3111, 2018, 3162, 2643, 2990, 2300, 2794, 2163, 2731, 2576, 2603, 3208, 2830, 2765, 2094, 2994, 3044, 3200, 3112, 2019, 3163, 2644, 2991, 2301, 2795, 2164, 2732, 2577, 2604, 3209, 2831, 2766, 2095, 2995, 3045, 3201, 3113, 2020, 3164, 2645, 2992, 2302, 2796, 2165, 2733, 2578, 2605, 3210, 2832, 2767, 2096, 2996, 3046, 3202, 3114, 2021, 3165, 2646, 2993, 2303, 2797, 2166, 2734, 2579, 2606, 3211, 2833, 2768, 2097, 2997, 3047, 3203, 3115, 2022, 3166, 2647, 2994, 2304, 2798, 2167, 2735, 2580, 2607, 3212, 2834, 2769, 2098, 2998, 3048, 3204, 3116, 2023, 3167, 2648, 2995, 2305, 2799, 2168, 2736, 2581, 2608, 3213, 2835, 2770, 2099, 2999, 3049, 3205, 3117, 2024, 3168, 2649, 2996, 2306, 2800, 2169, 2737, 2582, 2609, 3214, 2836, 2771, 2100, 3000, 3050, 3206, 3118, 2025, 3169, 2650, 2997, 2307, 2801, 2170, 2738, 2583, 2610, 3215, 2837, 2772, 2101, 3001, 3051, 3207, 3119, 2026, 3170, 2651, 2998, 2308, 2802, 2171, 2739, 2584, 2611, 3216, 2838, 2773, 2102, 3002, 3052, 3208, 3120, 2027, 3171, 2652, 2999, 2309, 2803, 2172, 2740, 2585, 2612, 3217, 2839, 2774, 2103, 3003, 3053, 3209, 3121, 2028, 3172, 2653, 3000, 2310, 2804, 2173, 2741, 2586, 2613, 3218, 2840, 2775, 2104, 3004, 3054, 3210, 3122, 2029, 3173, 2654, 3001, 2311, 2805, 2174, 2742, 2587, 2614, 3219, 2841, 2776, 2105, 3005, 3055, 3211, 3123, 2030, 3174, 2655, 3002, 2312, 2806, 2175, 2743, 2588, 2615, 3220, 2842, 2777, 2106, 3006, 3056, 3212, 3124, 2031, 3175, 2656, 3003, 2313, 2807, 2176, 2744, 2589, 2616, 3221, 2843, 2778, 2107, 3007, 3057, 3213, 3125, 2032, 3176, 2657, 3004, 2314, 2808, 2177, 2745, 2590, 2617, 3222, 2844, 2779, 2108, 3008, 3058, 3214, 3126, 2033, 3177, 2658, 3005, 2315, 2809, 2178, 2746, 2591, 2618, 3223, 2845, 2780, 2109, 3009, 3059, 3215, 3127, 2034, 3178, 2659, 3006, 2316, 2810, 2179, 2747, 2592, 2619, 3224, 2846, 2781, 2110, 3010, 3060, 3216, 3128, 2035, 3179, 2660, 3007, 2317, 2811, 2180, 2748, 2593, 2620, 3225, 2847, 2782, 2111, 3011, 3061, 3217, 3129, 2036, 3180, 2661, 3008, 2318, 2812, 2181, 2749, 2594, 2621, 3226, 2848, 2783, 2112, 3012, 3062, 3218, 3130, 2037, 3181, 2662, 3009, 2319, 2813, 2182, 2750, 2595, 2622, 3227, 2849, 2784, 2113, 3013, 3063, 3219, 3131, 2038, 3182, 2663, 3010, 2320, 2814, 2183, 2751, 2596, 2623, 3228, 2850, 2785, 2114, 3014, 3064, 3220, 3132, 2039, 3183, 2664, 3011, 2321, 2815, 2184, 2752, 2597, 2624, 3229, 2851, 2786, 2115, 3015, 3065, 3221, 3133, 2040, 3184, 2665, 3012, 2322, 2816, 2185, 2753, 2598, 2625, 3230, 2852, 2787, 2116, 3016, 3066, 3222, 3134, 2041, 3185, 2666, 3013, 2323, 2817, 2186, 2754, 2599, 2626, 3231, 2853, 2788, 2117, 3017, 3067, 3223, 3135, 2042, 3186, 2667, 3014, 2324, 2818, 2187, 2755, 2600, 2627, 3232, 2854, 2789, 2118, 3018, 3068, 3224, 3136, 2043, 3187, 2668, 3015, 2325, 2819, 2188, 2756, 2601, 2628, 3233, 2855, 2790, 2119, 3019, 3069, 3225, 3137, 2044, 3188, 2669, 3016, 2326, 2820, 2189, 2757, 2602, 2629, 3234, 2856, 2791, 2120, 3020, 3070, 3226, 3138, 2045, 3189, 2670, 3017, 2327, 2821, 2190, 2758, 2603, 2630, 3235, 2857, 2792, 2121, 3021, 3071, 3227, 3139, 2046, 3190, 2671, 3018, 2328, 2822, 2191, 2759, 2604, 2631, 3236, 2858, 2793, 2122, 3022, 3072, 3228, 3140, 2047, 3191, 2672, 3019, 2329, 2823, 2192, 2760, 2605, 2632, 3237, 2859, 2794, 2123, 3023, 3073, 3229, 3141, 2048, 3192, 2673, 3020, 2330, 2824, 2193, 2761, 2606, 2633, 3238, 2860, 2795, 2124, 3024, 3074, 3230, 3142, 2049, 3193, 2674, 3021, 2331, 2825, 2194, 2762, 2607, 2634, 3239, 2861, 2796, 2125, 3025, 3075, 3231, 3143, 2050, 3194, 2675, 3022, 2332, 2826, 2195, 2763, 2608, 2635, 3240, 2862, 2797, 2126, 3026, 3076, 3232, 3144, 2051, 3195, 2676, 3023, 2333, 2827, 2196, 2764, 2609, 2636, 2881, 2863, 2798, 2127, 3027, 3077, 3233, 3145, 2052, 3196, 2677, 3024, 2334, 2828, 2197, 2765, 2610, 2637, 2882, 2864, 2799, 2128, 3028, 3078, 3234, 3146, 2053, 3197, 2678, 3025, 2335, 2829, 2198, 2766, 2611, 2638, 2883, 2865, 2800, 2129, 3029, 3079, 3235, 3147, 2054, 3198, 2679, 3026, 2336, 2830, 2199, 2767, 2612, 2639, 2884, 2866, 2801, 2130, 3030, 3080, 3236, 3148, 2055, 3199, 2680, 3027, 2337, 2831, 2200, 2768, 2613, 2640, 2885, 2867, 2802, 2131, 3031, 3081, 3237, 3149, 2056, 3200, 2681, 3028, 2338, 2832, 2201, 2769, 2614, 2641, 2886, 2868, 2803, 2132, 3032, 3082, 3238, 3150, 2057, 3201, 2682, 3029, 2339, 2833, 2202, 2770, 2615, 2642, 2887, 2869, 2804, 2133, 3033, 3083, 3239, 3151, 2058, 3202, 2683, 3030, 2340, 2834, 2203, 2771, 2616, 2643, 2888, 2870, 2805, 2134, 3034, 3084, 3240, 3152, 2059, 3203, 2684, 3031, 2341, 2835, 2204, 2772, 2617, 2644, 2889, 2871, 2806, 2135, 3035, 3085, 2881, 3153, 2060, 3204, 2685, 3032, 2342, 2836, 2205, 2773, 2618, 2645, 2890, 2872, 2807, 2136, 3036, 3086, 2882, 3154, 2061, 3205, 2686, 3033, 2343, 2837, 2206, 2774, 2619, 2646, 2891, 2873, 2808, 2137, 3037, 3087, 2883, 3155, 2062, 3206, 2687, 3034, 2344, 2838, 2207, 2775, 2620, 2647, 2892, 2874, 2809, 2138, 3038, 3088, 2884, 3156, 2063, 3207, 2688, 3035, 2345, 2839, 2208, 2776, 2621, 2648, 2893, 2875, 2810, 2139, 3039, 3089, 2885, 3157, 2064, 3208, 2689, 3036, 2346, 2840, 2209, 2777, 2622, 2649, 2894, 2876, 2811, 2140, 3040, 3090, 2886, 3158, 2065, 3209, 2690, 3037, 2347, 2841, 2210, 2778, 2623, 2650, 2895, 2877, 2812, 2141, 3041, 3091, 2887, 3159, 2066, 3210, 2691, 3038, 2348, 2842, 2211, 2779, 2624, 2651, 2896, 2878, 2813, 2142, 3042, 3092, 2888, 3160, 2067, 3211, 2692, 3039, 2349, 2843, 2212, 2780, 2625, 2652, 2897, 2879, 2814, 2143, 3043, 3093, 2889, 3161, 2068, 3212, 2693, 3040, 2350, 2844, 2213, 2781, 2626, 2653, 2898, 2880, 2815, 2144, 3044, 3094, 2890, 3162, 2069, 3213, 2694, 3041, 2351, 2845, 2214, 2782, 2627, 2654, 2899, 2521, 2816, 2145, 3045, 3095, 2891, 3163, 2070, 3214, 2695, 3042, 2352, 2846, 2215, 2783, 2628, 2655, 2900, 2522, 2817, 2146, 3046, 3096, 2892, 3164, 2071, 3215, 2696, 3043, 2353, 2847, 2216, 2784, 2629, 2656, 2901, 2523, 2818, 2147, 3047, 3097, 2893, 3165, 2072, 3216, 2697, 3044, 2354, 2848, 2217, 2785, 2630, 2657, 2902, 2524, 2819, 2148, 3048, 3098, 2894, 3166, 2073, 3217, 2698, 3045, 2355, 2849, 2218, 2786, 2631, 2658, 2903, 2525, 2820, 2149, 3049, 3099, 2895, 3167, 2074, 3218, 2699, 3046, 2356, 2850, 2219, 2787, 2632, 2659, 2904, 2526, 2821, 2150, 3050, 3100, 2896, 3168, 2075, 3219, 2700, 3047, 2357, 2851, 2220, 2788, 2633, 2660, 2905, 2527, 2822, 2151, 3051, 3101, 2897, 3169, 2076, 3220, 2701, 3048, 2358, 2852, 2221, 2789, 2634, 2661, 2906, 2528, 2823, 2152, 3052, 3102, 2898, 3170, 2077, 3221, 2702, 3049, 2359, 2853, 2222, 2790, 2635, 2662, 2907, 2529, 2824, 2153, 3053, 3103, 2899, 3171, 2078, 3222, 2703, 3050, 2360, 2854, 2223, 2791, 2636, 2663, 2908, 2530, 2825, 2154, 3054, 3104, 2900, 3172, 2079, 3223, 2704, 3051, 2361, 2855, 2224, 2792, 2637, 2664, 2909, 2531, 2826, 2155, 3055, 3105, 2901, 3173, 2080, 3224, 2705, 3052, 2362, 2856, 2225, 2793, 2638, 2665, 2910, 2532, 2827, 2156, 3056, 3106, 2902, 3174, 2081, 3225, 2706, 3053, 2363, 2857, 2226, 2794, 2639, 2666, 2911, 2533, 2828, 2157, 3057, 3107, 2903, 3175, 2082, 3226, 2707, 3054, 2364, 2858, 2227, 2795, 2640, 2667, 2912, 2534, 2829, 2158, 3058, 3108, 2904, 3176, 2083, 3227, 2708, 3055, 2365, 2859, 2228, 2796, 2641, 2668, 2913, 2535, 2830, 2159, 3059, 3109, 2905, 3177, 2084, 3228, 2709, 3056, 2366, 2860, 2229, 2797, 2642, 2669, 2914, 2536, 2831, 2160, 3060, 3110, 2906, 3178, 2085, 3229, 2710, 3057, 2367, 2861, 2230, 2798, 2643, 2670, 2915, 2537, 2832, 1801, 3061, 3111, 2907, 3179, 2086, 3230, 2711, 3058, 2368, 2862, 2231, 2799, 2644, 2671, 2916, 2538, 2833, 1802, 3062, 3112, 2908, 3180, 2087, 3231, 2712, 3059, 2369, 2863, 2232, 2800, 2645, 2672, 2917, 2539, 2834, 1803, 3063, 3113, 2909, 3181, 2088, 3232, 2713, 3060, 2370, 2864, 2233, 2801, 2646, 2673, 2918, 2540, 2835, 1804, 3064, 3114, 2910, 3182, 2089, 3233, 2714, 3061, 2371, 2865, 2234, 2802, 2647, 2674, 2919, 2541, 2836, 1805, 3065, 3115, 2911, 3183, 2090, 3234, 2715, 3062, 2372, 2866, 2235, 2803, 2648, 2675, 2920, 2542, 2837, 1806, 3066, 3116, 2912, 3184, 2091, 3235, 2716, 3063, 2373, 2867, 2236, 2804, 2649, 2676, 2921, 2543, 2838, 1807, 3067, 3117, 2913, 3185, 2092, 3236, 2717, 3064, 2374, 2868, 2237, 2805, 2650, 2677, 2922, 2544, 2839, 1808, 3068, 3118, 2914, 3186, 2093, 3237, 2718, 3065, 2375, 2869, 2238, 2806, 2651, 2678, 2923, 2545, 2840, 1809, 3069, 3119, 2915, 3187, 2094, 3238, 2719, 3066, 2376, 2870, 2239, 2807, 2652, 2679, 2924, 2546, 2841, 1810, 3070, 3120, 2916, 3188, 2095, 3239, 2720, 3067, 2377, 2871, 2240, 2808, 2653, 2680, 2925, 2547, 2842, 1811, 3071, 3121, 2917, 3189, 2096, 3240, 2721, 3068, 2378, 2872, 2241, 2809, 2654, 2681, 2926, 2548, 2843, 1812, 3072, 3122, 2918, 3190, 2097, 3045, 2722, 3069, 2379, 2873, 2242, 2810, 2655, 2682, 2927, 2549, 2844, 1813, 3073, 3123, 2919, 3191, 2098, 3046, 2723, 3070, 2380, 2874, 2243, 2811, 2656, 2683, 2928, 2550, 2845, 1814, 3074, 3124, 2920, 3192, 2099, 3047, 2724, 3071, 2381, 2875, 2244, 2812, 2657, 2684, 2929, 2551, 2846, 1815, 3075, 3125, 2921, 3193, 2100, 3048, 2725, 3072, 2382, 2876, 2245, 2813, 2658, 2685, 2930, 2552, 2847, 1816, 3076, 3126, 2922, 3194, 2101, 3049, 2726, 3073, 2383, 2877, 2246, 2814, 2659, 2686, 2931, 2553, 2848, 1817, 3077, 3127, 2923, 3195, 2102, 3050, 2727, 3074, 2384, 2878, 2247, 2815, 2660, 2687, 2932, 2554, 2849, 1818, 3078, 3128, 2924, 3196, 2103, 3051, 2728, 3075, 2385, 2879, 2248, 2816, 2661, 2688, 2933, 2555, 2850, 1819, 3079, 3129, 2925, 3197, 2104, 3052, 2729, 3076, 2386, 2880, 2249, 2817, 2662, 2689, 2934, 2556, 2851, 1820, 3080, 3130, 2926, 3198, 2105, 3053, 2730, 3077, 2387, 2839, 2250, 2818, 2663, 2690, 2935, 2557, 2852, 1821, 3081, 3131, 2927, 3199, 2106, 3054, 2731, 3078, 2388, 2840, 2251, 2819, 2664, 2691, 2936, 2558, 2853, 1822, 3082, 3132, 2928, 3200, 2107, 3055, 2732, 3079, 2389, 2841, 2252, 2820, 2665, 2692, 2937, 2559, 2854, 1823, 3083, 3133, 2929, 3201, 2108, 3056, 2733, 3080, 2390, 2842, 2253, 2821, 2666, 2693, 2938, 2560, 2855, 1824, 3084, 3134, 2930, 3202, 2109, 3057, 2734, 3081, 2391, 2843, 2254, 2822, 2667, 2694, 2939, 2561, 2856, 1825, 3085, 3135, 2931, 3203, 2110, 3058, 2735, 3082, 2392, 2844, 2255, 2823, 2668, 2695, 2940, 2562, 2857, 1826, 3086, 3136, 2932, 3204, 2111, 3059, 2736, 3083, 2393, 2845, 2256, 2824, 2669, 2696, 2941, 2563, 2858, 1827, 3087, 3137, 2933, 3205, 2112, 3060, 2737, 3084, 2394, 2846, 2257, 2825, 2670, 2697, 2942, 2564, 2859, 1828, 3088, 3138, 2934, 3206, 2113, 3061, 2738, 3085, 2395, 2847, 2258, 2826, 2671, 2698, 2943, 2565, 2860, 1829, 3089, 3139, 2935, 3207, 2114, 3062, 2739, 3086, 2396, 2848, 2259, 2827, 2672, 2699, 2944, 2566, 2861, 1830, 3090, 3140, 2936, 3208, 2115, 3063, 2740, 3087, 2397, 2849, 2260, 2828, 2673, 2700, 2945, 2567, 2862, 1831, 3091, 3141, 2937, 3209, 2116, 3064, 2741, 3088, 2398, 2850, 2261, 2829, 2674, 2701, 2946, 2568, 2863, 1832, 3092, 3142, 2938, 3210, 2117, 3065, 2742, 3089, 2399, 2851, 2262, 2830, 2675, 2702, 2947, 2569, 2864, 1833, 3093, 3143, 2939, 3211, 2118, 3066, 2743, 3090, 2400, 2852, 2263, 2831, 2676, 2703, 2948, 2570, 2865, 1834, 3094, 3144, 2940, 3212, 2119, 3067, 2744, 3091, 2401, 2853, 2264, 2832, 2677, 2704, 2949, 2571, 2866, 1835, 3095, 3145, 2941, 3213, 2120, 3068, 2745, 3092, 2402, 2854, 2265, 2833, 2678, 2705, 2950, 2572, 2867, 1836, 3096, 3146, 2942, 3214, 2121, 3069, 2746, 3093, 2403, 2855, 2266, 2834, 2679, 2706, 2951, 2573, 2868, 1837, 3097, 3147, 2943, 3215, 2122, 3070, 2747, 3094, 2404, 2856, 2267, 2835, 2680, 2707, 2952, 2574, 2869, 1838, 3098, 3148, 2944, 3216, 2123, 3071, 2748, 3095, 2405, 2857, 2268, 2836, 2681, 2708, 2953, 2575, 2870, 1839, 3099, 3149, 2945, 3217, 2124, 3072, 2749, 3096, 2406, 2858, 2269, 2837, 2682, 2709, 2954, 2576, 2871, 1840, 3100, 3150, 2946, 3218, 2125, 3073, 2750, 3097, 2407, 2859, 2270, 2838, 2683, 2710, 2955, 2577, 2872, 1841, 3101, 3151, 2947, 3219, 2126, 3074, 2751, 3098, 2408, 2860, 2271, 2839, 2684, 2711, 2956, 2578, 2873, 1842, 3102, 3152, 2948, 3220, 2127, 3075, 2752, 3099, 2409, 2861, 2272, 2840, 2685, 2712, 2957, 2579, 2874, 1843, 3103, 3153, 2949, 3221, 2128, 3076, 2753, 3100, 2410, 2862, 2273, 2841, 2686, 2713, 2958, 2580, 2875, 1844, 3104, 3154, 2950, 3222, 2129, 3077, 2754, 3101, 2411, 2863, 2274, 2842, 2687, 2714, 2959, 2581, 2876, 1845, 3105, 3155, 2951, 3223, 2130, 3078, 2755, 3102, 2412, 2864, 2275, 2843, 2688, 2715, 2960, 2582, 2877, 1846, 3106, 3156, 2952, 3224, 2131, 3079, 2756, 3103, 2413, 2865, 2276, 2844, 2689, 2716, 2961, 2583, 2878, 1847, 3107, 3157, 2953, 3225, 2132, 3080, 2757, 3104, 2414, 2866, 2277, 2845, 2690, 2717, 2962, 2584, 2879, 1848, 3108, 3158, 2954, 3226, 2133, 3081, 2758, 3105, 2415, 2867, 2278, 2846, 2691, 2718, 2963, 2585, 2880, 1849, 3109, 3159, 2955, 3227, 2134, 3082, 2759, 3106, 2416, 2868, 2279, 2847, 2692, 2719, 2964, 2586, 2521, 1850, 3110, 3160, 2956, 3228, 2135, 3083, 2760, 3107, 2417, 2869, 2280, 2848, 2693, 2720, 2965, 2587, 2522, 1851, 3111, 3161, 2957, 3229, 2136, 3084, 2761, 3108, 2418, 2870, 2281, 2849, 2694, 2721, 2966, 2588, 2523, 1852, 3112, 3162, 2958, 3230, 2137, 3085, 2762, 3109, 2419, 2871, 2282, 2850, 2695, 2722, 2967, 2589, 2524, 1853, 3113, 3163, 2959, 3231, 2138, 3086, 2763, 3110, 2420, 2872, 2283, 2851, 2696, 2723, 2968, 2590, 2525, 1854, 3114, 3164, 2960, 3232, 2139, 3087, 2764, 3111, 2421, 2873, 2284, 2852, 2697, 2724, 2969, 2591, 2526, 1855, 3115, 3165, 2961, 3233, 2140, 3088, 2765, 3112, 2422, 2874, 2285, 2853, 2698, 2725, 2970, 2592, 2527, 1856, 3116, 3166, 2962, 3234, 2141, 3089, 2766, 3113, 2423, 2875, 2286, 2854, 2699, 2726, 2971, 2593, 2528, 1857, 3117, 3167, 2963, 3235, 2142, 3090, 2767, 3114, 2424, 2876, 2287, 2855, 2700, 2727, 2972, 2594, 2529, 1858, 3118, 3168, 2964, 3236, 2143, 3091, 2768, 3115, 2425, 2877, 2288, 2856, 2701, 2728, 2973, 2595, 2530, 1859, 3119, 3169, 2965, 3237, 2144, 3092, 2769, 3116, 2426, 2878, 2289, 2857, 2702, 2729, 2974, 2596, 2531, 1860, 3120, 3170, 2966, 3238, 2145, 3093, 2770, 3117, 2427, 2879, 2290, 2858, 2703, 2730, 2975, 2597, 2532, 1861, 3121, 3171, 2967, 3239, 2146, 3094, 2771, 3118, 2428, 2880, 2291, 2859, 2704, 2731, 2976, 2598, 2533, 1862, 3122, 3172, 2968, 3240, 2147, 3095, 2772, 3119, 2429, 2563, 2292, 2860, 2705, 2732, 2977, 2599, 2534, 1863, 3123, 3173, 2969, 3146, 2148, 3096, 2773, 3120, 2430, 2564, 2293, 2861, 2706, 2733, 2978, 2600, 2535, 1864, 3124, 3174, 2970, 3147, 2149, 3097, 2774, 3121, 2431, 2565, 2294, 2862, 2707, 2734, 2979, 2601, 2536, 1865, 3125, 3175, 2971, 3148, 2150, 3098, 2775, 3122, 2432, 2566, 2295, 2863, 2708, 2735, 2980, 2602, 2537, 1866, 3126, 3176, 2972, 3149, 2151, 3099, 2776, 3123, 2433, 2567, 2296, 2864, 2709, 2736, 2981, 2603, 2538, 1867, 3127, 3177, 2973, 3150, 2152, 3100, 2777, 3124, 2434, 2568, 2297, 2865, 2710, 2737, 2982, 2604, 2539, 1868, 3128, 3178, 2974, 3151, 2153, 3101, 2778, 3125, 2435, 2569, 2298, 2866, 2711, 2738, 2983, 2605, 2540, 1869, 3129, 3179, 2975, 3152, 2154, 3102, 2779, 3126, 2436, 2570, 2299, 2867, 2712, 2739, 2984, 2606, 2541, 1870, 3130, 3180, 2976, 3153, 2155, 3103, 2780, 3127, 2437, 2571, 2300, 2868, 2713, 2740, 2985, 2607, 2542, 1871, 3131, 3181, 2977, 3154, 2156, 3104, 2781, 3128, 2438, 2572, 2301, 2869, 2714, 2741, 2986, 2608, 2543, 1872, 3132, 3182, 2978, 3155, 2157, 3105, 2782, 3129, 2439, 2573, 2302, 2870, 2715, 2742, 2987, 2609, 2544, 1873, 3133, 3183, 2979, 3156, 2158, 3106, 2783, 3130, 2440, 2574, 2303, 2871, 2716, 2743, 2988, 2610, 2545, 1874, 3134, 3184, 2980, 3157, 2159, 3107, 2784, 3131, 2441, 2575, 2304, 2872, 2717, 2744, 2989, 2611, 2546, 1875, 3135, 3185, 2981, 3158, 2160, 3108, 2785, 3132, 2442, 2576, 2305, 2873, 2718, 2745, 2990, 2612, 2547, 1876, 3136, 3186, 2982, 3159, 1957, 3109, 2786, 3133, 2443, 2577, 2306, 2874, 2719, 2746, 2991, 2613, 2548, 1877, 3137, 3187, 2983, 3160, 1958, 3110, 2787, 3134, 2444, 2578, 2307, 2875, 2720, 2747, 2992, 2614, 2549, 1878, 3138, 3188, 2984, 3161, 1959, 3111, 2788, 3135, 2445, 2579, 2308, 2876, 2721, 2748, 2993, 2615, 2550, 1879, 3139, 3189, 2985, 3162, 1960, 3112, 2789, 3136, 2446, 2580, 2309, 2877, 2722, 2749, 2994, 2616, 2551, 1880, 3140, 3190, 2986, 3163, 1961, 3113, 2790, 3137, 2447, 2581, 2310, 2878, 2723, 2750, 2995, 2617, 2552, 1881, 3141, 3191, 2987, 3164, 1962, 3114, 2791, 3138, 2448, 2582, 2311, 2879, 2724, 2751, 2996, 2618, 2553, 1882, 3142, 3192, 2988, 3165, 1963, 3115, 2792, 3139, 2449, 2583, 2312, 2880, 2725, 2752, 2997, 2619, 2554, 1883, 3143, 3193, 2989, 3166, 1964, 3116, 2793, 3140, 2450, 2584, 2313, 2521, 2726, 2753, 2998, 2620, 2555, 1884, 3144, 3194, 2990, 3167, 1965, 3117, 2794, 3141, 2451, 2585, 2314, 2522, 2727, 2754, 2999, 2621, 2556, 1885, 3145, 3195, 2991, 3168, 1966, 3118, 2795, 3142, 2452, 2586, 2315, 2523, 2728, 2755, 3000, 2622, 2557, 1886, 3146, 3196, 2992, 3169, 1967, 3119, 2796, 3143, 2453, 2587, 2316, 2524, 2729, 2756, 3001, 2623, 2558, 1887, 3147, 3197, 2993, 3170, 1968, 3120, 2797, 3144, 2454, 2588, 2317, 2525, 2730, 2757, 3002, 2624, 2559, 1888, 3148, 3198, 2994, 3171, 1969, 3121, 2798, 3145, 2455, 2589, 2318, 2526, 2731, 2758, 3003, 2625, 2560, 1889, 3149, 3199, 2995, 3172, 1970, 3122, 2799, 3146, 2456, 2590, 2319, 2527, 2732, 2759, 3004, 2626, 2561, 1890, 3150, 3200, 2996, 3173, 1971, 3123, 2800, 3147, 2457, 2591, 2320, 2528, 2733, 2760, 3005, 2627, 2562, 1891, 3151, 3201, 2997, 3174, 1972, 3124, 2801, 3148, 2458, 2592, 2321, 2529, 2734, 2761, 3006, 2628, 2563, 1892, 3152, 3202, 2998, 3175, 1973, 3125, 2802, 3149, 2459, 2593, 2322, 2530, 2735, 2762, 3007, 2629, 2564, 1893, 3153, 3203, 2999, 3176, 1974, 3126, 2803, 3150, 2460, 2594, 2323, 2531, 2736, 2763, 3008, 2630, 2565, 1894, 3154, 3204, 3000, 3177, 1975, 3127, 2804, 3151, 2461, 2595, 2324, 2532, 2737, 2764, 3009, 2631, 2566, 1895, 3155, 3205, 3001, 3178, 1976, 3128, 2805, 3152, 2462, 2596, 2325, 2533, 2738, 2765, 3010, 2632, 2567, 1896, 3156, 3206, 3002, 3179, 1977, 3129, 2806, 3153, 2463, 2597, 2326, 2534, 2739, 2766, 3011, 2633, 2568, 1897, 3157, 3207, 3003, 3180, 1978, 3130, 2807, 3154, 2464, 2598, 2327, 2535, 2740, 2767, 3012, 2634, 2569, 1898, 3158, 3208, 3004, 3181, 1979, 3131, 2808, 3155, 2465, 2599, 2328, 2536, 2741, 2768, 3013, 2635, 2570, 1899, 3159, 3209, 3005, 3182, 1980, 3132, 2809, 3156, 2466, 2600, 2329, 2537, 2742, 2769, 3014, 2636, 2571, 1900, 3160, 3210, 3006, 3183, 1981, 3133, 2810, 3157, 2467, 2601, 2330, 2538, 2743, 2770, 3015, 2637, 2572, 1901, 3161, 3211, 3007, 3184, 1982, 3134, 2811, 3158, 2468, 2602, 2331, 2539, 2744, 2771, 3016, 2638, 2573, 1902, 3162, 3212, 3008, 3185, 1983, 3135, 2812, 3159, 2469, 2603, 2332, 2540, 2745, 2772, 3017, 2639, 2574, 1903, 3163, 3213, 3009, 3186, 1984, 3136, 2813, 3160, 2470, 2604, 2333, 2541, 2746, 2773, 3018, 2640, 2575, 1904, 3164, 3214, 3010, 3187, 1985, 3137, 2814, 3161, 2471, 2605, 2334, 2542, 2747, 2774, 3019, 2641, 2576, 1905, 3165, 3215, 3011, 3188, 1986, 3138, 2815, 3162, 2472, 2606, 2335, 2543, 2748, 2775, 3020, 2642, 2577, 1906, 3166, 3216, 3012, 3189, 1987, 3139, 2816, 3163, 2473, 2607, 2336, 2544, 2749, 2776, 3021, 2643, 2578, 1907, 3167, 3217, 3013, 3190, 1988, 3140, 2817, 3164, 2474, 2608, 2337, 2545, 2750, 2777, 3022, 2644, 2579, 1908, 3168, 3218, 3014, 3191, 1989, 3141, 2818, 3165, 2475, 2609, 2338, 2546, 2751, 2778, 3023, 2645, 2580, 1909, 3169, 3241, 3481, 3961, 3880, 4681, 5041, 5401, 3454, 5883, 4709, 5654, 4461, 3885, 4623, 4705, 6292, 5067, 4116, 3242, 3482, 3962, 3881, 4682, 5042, 5402, 3455, 5884, 4710, 5655, 4462, 3886, 4624, 4706, 6293, 5068, 4117, 3243, 3483, 3963, 3882, 4683, 5043, 5403, 3456, 5885, 4711, 5656, 4463, 3887, 4625, 4707, 6294, 5069, 4118, 3244, 3484, 3964, 3883, 4684, 5044, 5404, 3457, 5886, 4712, 5657, 4464, 3888, 4626, 4708, 6295, 5070, 4119, 3245, 3485, 3965, 3884, 4685, 5045, 5405, 3458, 5887, 4713, 5658, 4465, 3889, 4627, 4709, 6296, 5071, 4120, 3246, 3486, 3966, 3885, 4686, 5046, 5406, 3459, 5888, 4714, 5659, 4466, 3890, 4628, 4710, 6297, 5072, 4121, 3247, 3487, 3967, 3886, 4687, 5047, 5407, 3460, 5889, 4715, 5660, 4467, 3891, 4629, 4711, 6298, 5073, 4122, 3248, 3488, 3968, 3887, 4688, 5048, 5408, 3461, 5890, 4716, 5661, 4468, 3892, 4630, 4712, 6299, 5074, 4123, 3249, 3489, 3969, 3888, 4689, 5049, 5409, 3462, 5891, 4717, 5662, 4469, 3893, 4631, 4713, 6300, 5075, 4124, 3250, 3490, 3970, 3889, 4690, 5050, 5410, 3463, 5892, 4718, 5663, 4470, 3894, 4632, 4714, 6301, 5076, 4125, 3251, 3491, 3971, 3890, 4691, 5051, 5411, 3464, 5893, 4719, 5664, 4471, 3895, 4633, 4715, 6302, 5077, 4126, 3252, 3492, 3972, 3891, 4692, 5052, 5412, 3465, 5894, 4720, 5665, 4472, 3896, 4634, 4716, 6303, 5078, 4127, 3253, 3493, 3973, 3892, 4693, 5053, 5413, 3466, 5895, 4721, 5666, 4473, 3897, 4635, 4717, 6304, 5079, 4128, 3254, 3494, 3974, 3893, 4694, 5054, 5414, 3467, 5896, 4722, 5667, 4474, 3898, 4636, 4718, 6305, 5080, 4129, 3255, 3495, 3975, 3894, 4695, 5055, 5415, 3468, 5897, 4723, 5668, 4475, 3899, 4637, 4719, 6306, 5081, 4130, 3256, 3496, 3976, 3895, 4696, 5056, 5416, 3469, 5898, 4724, 5669, 4476, 3900, 4638, 4720, 6307, 5082, 4131, 3257, 3497, 3977, 3896, 4697, 5057, 5417, 3470, 5899, 4725, 5670, 4477, 3901, 4639, 4721, 6308, 5083, 4132, 3258, 3498, 3978, 3897, 4698, 5058, 5418, 3471, 5900, 4726, 5671, 4478, 3902, 4640, 4722, 6309, 5084, 4133, 3259, 3499, 3979, 3898, 4699, 5059, 5419, 3472, 5901, 4727, 5672, 4479, 3903, 4641, 4723, 6310, 5085, 4134, 3260, 3500, 3980, 3899, 4700, 5060, 5420, 3473, 5902, 4728, 5673, 4480, 3904, 4642, 4724, 6311, 5086, 4135, 3261, 3501, 3981, 3900, 4701, 5061, 5421, 3474, 5903, 4729, 5674, 4481, 3905, 4643, 4725, 6312, 5087, 4136, 3262, 3502, 3982, 3901, 4702, 5062, 5422, 3475, 5904, 4730, 5675, 4482, 3906, 4644, 4726, 6313, 5088, 4137, 3263, 3503, 3983, 3902, 4703, 5063, 5423, 3476, 5905, 4731, 5676, 4483, 3907, 4645, 4727, 6314, 5089, 4138, 3264, 3504, 3984, 3903, 4704, 5064, 5424, 3477, 5906, 4732, 5677, 4484, 3908, 4646, 4728, 6315, 5090, 4139, 3265, 3505, 3985, 3904, 4705, 5065, 5425, 3478, 5907, 4733, 5678, 4485, 3909, 4647, 4729, 6316, 5091, 4140, 3266, 3506, 3986, 3905, 4706, 5066, 5426, 3479, 5908, 4734, 5679, 4486, 3910, 4648, 4730, 6317, 5092, 4141, 3267, 3507, 3987, 3906, 4707, 5067, 5427, 3480, 5909, 4735, 5680, 4487, 3911, 4649, 4731, 6318, 5093, 4142, 3268, 3508, 3988, 3907, 4708, 5068, 5428, 3481, 5910, 4736, 5681, 4488, 3912, 4650, 4732, 6319, 5094, 4143, 3269, 3509, 3989, 3908, 4709, 5069, 5429, 3482, 5911, 4737, 5682, 4489, 3913, 4651, 4733, 6320, 5095, 4144, 3270, 3510, 3990, 3909, 4710, 5070, 5430, 3483, 5912, 4738, 5683, 4490, 3914, 4652, 4734, 6321, 5096, 4145, 3271, 3511, 3991, 3910, 4711, 5071, 5431, 3484, 5913, 4739, 5684, 4491, 3915, 4653, 4735, 6322, 5097, 4146, 3272, 3512, 3992, 3911, 4712, 5072, 5432, 3485, 5914, 4740, 5685, 4492, 3916, 4654, 4736, 6323, 5098, 4147, 3273, 3513, 3993, 3912, 4713, 5073, 5433, 3486, 5915, 4741, 5686, 4493, 3917, 4655, 4737, 6324, 5099, 4148, 3274, 3514, 3994, 3913, 4714, 5074, 5434, 3487, 5916, 4742, 5687, 4494, 3918, 4656, 4738, 6325, 5100, 4149, 3275, 3515, 3995, 3914, 4715, 5075, 5435, 3488, 5917, 4743, 5688, 4495, 3919, 4657, 4739, 6326, 5101, 4150, 3276, 3516, 3996, 3915, 4716, 5076, 5436, 3489, 5918, 4744, 5689, 4496, 3920, 4658, 4740, 6327, 5102, 4151, 3277, 3517, 3997, 3916, 4717, 5077, 5437, 3490, 5919, 4745, 5690, 4497, 3921, 4659, 4741, 6328, 5103, 4152, 3278, 3518, 3998, 3917, 4718, 5078, 5438, 3491, 5920, 4746, 5691, 4498, 3922, 4660, 4742, 6329, 5104, 4153, 3279, 3519, 3999, 3918, 4719, 5079, 5439, 3492, 5921, 4747, 5692, 4499, 3923, 4661, 4743, 6330, 5105, 4154, 3280, 3520, 4000, 3919, 4720, 5080, 5440, 3493, 5922, 4748, 5693, 4500, 3924, 4662, 4744, 6331, 5106, 4155, 3281, 3521, 4001, 3920, 4721, 5081, 5441, 3494, 5923, 4749, 5694, 4501, 3925, 4663, 4745, 6332, 5107, 4156, 3282, 3522, 4002, 3921, 4722, 5082, 5442, 3495, 5924, 4750, 5695, 4502, 3926, 4664, 4746, 6333, 5108, 4157, 3283, 3523, 4003, 3922, 4723, 5083, 5443, 3496, 5925, 4751, 5696, 4503, 3927, 4665, 4747, 6334, 5109, 4158, 3284, 3524, 4004, 3923, 4724, 5084, 5444, 3497, 5926, 4752, 5697, 4504, 3928, 4666, 4748, 6335, 5110, 4159, 3285, 3525, 4005, 3924, 4725, 5085, 5445, 3498, 5927, 4753, 5698, 4505, 3929, 4667, 4749, 6336, 5111, 4160, 3286, 3526, 4006, 3925, 4726, 5086, 5446, 3499, 5928, 4754, 5699, 4506, 3930, 4668, 4750, 6337, 5112, 4161, 3287, 3527, 4007, 3926, 4727, 5087, 5447, 3500, 5929, 4755, 5700, 4507, 3931, 4669, 4751, 6338, 5113, 4162, 3288, 3528, 4008, 3927, 4728, 5088, 5448, 3501, 5930, 4756, 5701, 4508, 3932, 4670, 4752, 6339, 5114, 4163, 3289, 3529, 4009, 3928, 4729, 5089, 5449, 3502, 5931, 4757, 5702, 4509, 3933, 4671, 4753, 6340, 5115, 4164, 3290, 3530, 4010, 3929, 4730, 5090, 5450, 3503, 5932, 4758, 5703, 4510, 3934, 4672, 4754, 6341, 5116, 4165, 3291, 3531, 4011, 3930, 4731, 5091, 5451, 3504, 5933, 4759, 5704, 4511, 3935, 4673, 4755, 6342, 5117, 4166, 3292, 3532, 4012, 3931, 4732, 5092, 5452, 3505, 5934, 4760, 5705, 4512, 3936, 4674, 4756, 6343, 5118, 4167, 3293, 3533, 4013, 3932, 4733, 5093, 5453, 3506, 5935, 4761, 5706, 4513, 3937, 4675, 4757, 6344, 5119, 4168, 3294, 3534, 4014, 3933, 4734, 5094, 5454, 3507, 5936, 4762, 5707, 4514, 3938, 4676, 4758, 6345, 5120, 4169, 3295, 3535, 4015, 3934, 4735, 5095, 5455, 3508, 5937, 4763, 5708, 4515, 3939, 4677, 4759, 6346, 5121, 4170, 3296, 3536, 4016, 3935, 4736, 5096, 5456, 3509, 5938, 4764, 5709, 4516, 3940, 4678, 4760, 6347, 5122, 4171, 3297, 3537, 4017, 3936, 4737, 5097, 5457, 3510, 5939, 4765, 5710, 4517, 3941, 4679, 4761, 6348, 5123, 4172, 3298, 3538, 4018, 3937, 4738, 5098, 5458, 3511, 5940, 4766, 5711, 4518, 3942, 4680, 4762, 6349, 5124, 4173, 3299, 3539, 4019, 3938, 4739, 5099, 5459, 3512, 5941, 4767, 5712, 4519, 3943, 4321, 4763, 6350, 5125, 4174, 3300, 3540, 4020, 3939, 4740, 5100, 5460, 3513, 5942, 4768, 5713, 4520, 3944, 4322, 4764, 6351, 5126, 4175, 3301, 3541, 4021, 3940, 4741, 5101, 5461, 3514, 5943, 4769, 5714, 4521, 3945, 4323, 4765, 6352, 5127, 4176, 3302, 3542, 4022, 3941, 4742, 5102, 5462, 3515, 5944, 4770, 5715, 4522, 3946, 4324, 4766, 6353, 5128, 4177, 3303, 3543, 4023, 3942, 4743, 5103, 5463, 3516, 5945, 4771, 5716, 4523, 3947, 4325, 4767, 6354, 5129, 4178, 3304, 3544, 4024, 3943, 4744, 5104, 5464, 3517, 5946, 4772, 5717, 4524, 3948, 4326, 4768, 6355, 5130, 4179, 3305, 3545, 4025, 3944, 4745, 5105, 5465, 3518, 5947, 4773, 5718, 4525, 3949, 4327, 4769, 6356, 5131, 4180, 3306, 3546, 4026, 3945, 4746, 5106, 5466, 3519, 5948, 4774, 5719, 4526, 3950, 4328, 4770, 6357, 5132, 4181, 3307, 3547, 4027, 3946, 4747, 5107, 5467, 3520, 5949, 4775, 5720, 4527, 3951, 4329, 4771, 6358, 5133, 4182, 3308, 3548, 4028, 3947, 4748, 5108, 5468, 3521, 5950, 4776, 5721, 4528, 3952, 4330, 4772, 6359, 5134, 4183, 3309, 3549, 4029, 3948, 4749, 5109, 5469, 3522, 5951, 4777, 5722, 4529, 3953, 4331, 4773, 6360, 5135, 4184, 3310, 3550, 4030, 3949, 4750, 5110, 5470, 3523, 5952, 4778, 5723, 4530, 3954, 4332, 4774, 6361, 5136, 4185, 3311, 3551, 4031, 3950, 4751, 5111, 5471, 3524, 5953, 4779, 5724, 4531, 3955, 4333, 4775, 6362, 5137, 4186, 3312, 3552, 4032, 3951, 4752, 5112, 5472, 3525, 5954, 4780, 5725, 4532, 3956, 4334, 4776, 6363, 5138, 4187, 3313, 3553, 4033, 3952, 4753, 5113, 5473, 3526, 5955, 4781, 5726, 4533, 3957, 4335, 4777, 6364, 5139, 4188, 3314, 3554, 4034, 3953, 4754, 5114, 5474, 3527, 5956, 4782, 5727, 4534, 3958, 4336, 4778, 6365, 5140, 4189, 3315, 3555, 4035, 3954, 4755, 5115, 5475, 3528, 5957, 4783, 5728, 4535, 3959, 4337, 4779, 6366, 5141, 4190, 3316, 3556, 4036, 3955, 4756, 5116, 5476, 3529, 5958, 4784, 5729, 4536, 3960, 4338, 4780, 6367, 5142, 4191, 3317, 3557, 4037, 3956, 4757, 5117, 5477, 3530, 5959, 4785, 5730, 4537, 3601, 4339, 4781, 6368, 5143, 4192, 3318, 3558, 4038, 3957, 4758, 5118, 5478, 3531, 5960, 4786, 5731, 4538, 3602, 4340, 4782, 6369, 5144, 4193, 3319, 3559, 4039, 3958, 4759, 5119, 5479, 3532, 5961, 4787, 5732, 4539, 3603, 4341, 4783, 6370, 5145, 4194, 3320, 3560, 4040, 3959, 4760, 5120, 5480, 3533, 5962, 4788, 5733, 4540, 3604, 4342, 4784, 6371, 5146, 4195, 3321, 3561, 4041, 3960, 4761, 5121, 5481, 3534, 5963, 4789, 5734, 4541, 3605, 4343, 4785, 6372, 5147, 4196, 3322, 3562, 4042, 3601, 4762, 5122, 5482, 3535, 5964, 4790, 5735, 4542, 3606, 4344, 4786, 6373, 5148, 4197, 3323, 3563, 4043, 3602, 4763, 5123, 5483, 3536, 5965, 4791, 5736, 4543, 3607, 4345, 4787, 6374, 5149, 4198, 3324, 3564, 4044, 3603, 4764, 5124, 5484, 3537, 5966, 4792, 5737, 4544, 3608, 4346, 4788, 6375, 5150, 4199, 3325, 3565, 4045, 3604, 4765, 5125, 5485, 3538, 5967, 4793, 5738, 4545, 3609, 4347, 4789, 6376, 5151, 4200, 3326, 3566, 4046, 3605, 4766, 5126, 5486, 3539, 5968, 4794, 5739, 4546, 3610, 4348, 4790, 6377, 5152, 4201, 3327, 3567, 4047, 3606, 4767, 5127, 5487, 3540, 5969, 4795, 5740, 4547, 3611, 4349, 4791, 6378, 5153, 4202, 3328, 3568, 4048, 3607, 4768, 5128, 5488, 3541, 5970, 4796, 5741, 4548, 3612, 4350, 4792, 6379, 5154, 4203, 3329, 3569, 4049, 3608, 4769, 5129, 5489, 3542, 5971, 4797, 5742, 4549, 3613, 4351, 4793, 6380, 5155, 4204, 3330, 3570, 4050, 3609, 4770, 5130, 5490, 3543, 5972, 4798, 5743, 4550, 3614, 4352, 4794, 6381, 5156, 4205, 3331, 3571, 4051, 3610, 4771, 5131, 5491, 3544, 5973, 4799, 5744, 4551, 3615, 4353, 4795, 6382, 5157, 4206, 3332, 3572, 4052, 3611, 4772, 5132, 5492, 3545, 5974, 4800, 5745, 4552, 3616, 4354, 4796, 6383, 5158, 4207, 3333, 3573, 4053, 3612, 4773, 5133, 5493, 3546, 5975, 4801, 5746, 4553, 3617, 4355, 4797, 6384, 5159, 4208, 3334, 3574, 4054, 3613, 4774, 5134, 5494, 3547, 5976, 4802, 5747, 4554, 3618, 4356, 4798, 6385, 5160, 4209, 3335, 3575, 4055, 3614, 4775, 5135, 5495, 3548, 5977, 4803, 5748, 4555, 3619, 4357, 4799, 6386, 5161, 4210, 3336, 3576, 4056, 3615, 4776, 5136, 5496, 3549, 5978, 4804, 5749, 4556, 3620, 4358, 4800, 6387, 5162, 4211, 3337, 3577, 4057, 3616, 4777, 5041, 5497, 3550, 5979, 4805, 5750, 4557, 3621, 4359, 4801, 6388, 5163, 4212, 3338, 3578, 4058, 3617, 4778, 5042, 5498, 3551, 5980, 4806, 5751, 4558, 3622, 4360, 4802, 6389, 5164, 4213, 3339, 3579, 4059, 3618, 4779, 5043, 5499, 3552, 5981, 4807, 5752, 4559, 3623, 4361, 4803, 6390, 5165, 4214, 3340, 3580, 4060, 3619, 4780, 5044, 5500, 3553, 5982, 4808, 5753, 4560, 3624, 4362, 4804, 6391, 5166, 4215, 3341, 3581, 4061, 3620, 4781, 5045, 5501, 3554, 5983, 4809, 5754, 4561, 3625, 4363, 4805, 6392, 5167, 4216, 3342, 3582, 4062, 3621, 4782, 5046, 5502, 3555, 5984, 4810, 5755, 4562, 3626, 4364, 4806, 6393, 5168, 4217, 3343, 3583, 4063, 3622, 4783, 5047, 5503, 3556, 5985, 4811, 5756, 4563, 3627, 4365, 4807, 6394, 5169, 4218, 3344, 3584, 4064, 3623, 4784, 5048, 5504, 3557, 5986, 4812, 5757, 4564, 3628, 4366, 4808, 6395, 5170, 4219, 3345, 3585, 4065, 3624, 4785, 5049, 5505, 3558, 5987, 4813, 5758, 4565, 3629, 4367, 4809, 6396, 5171, 4220, 3346, 3586, 4066, 3625, 4786, 5050, 5506, 3559, 5988, 4814, 5759, 4566, 3630, 4368, 4810, 6397, 5172, 4221, 3347, 3587, 4067, 3626, 4787, 5051, 5507, 3560, 5989, 4815, 5760, 4567, 3631, 4369, 4811, 6398, 5173, 4222, 3348, 3588, 4068, 3627, 4788, 5052, 5508, 3561, 5990, 4816, 5401, 4568, 3632, 4370, 4812, 6399, 5174, 4223, 3349, 3589, 4069, 3628, 4789, 5053, 5509, 3562, 5991, 4817, 5402, 4569, 3633, 4371, 4813, 6400, 5175, 4224, 3350, 3590, 4070, 3629, 4790, 5054, 5510, 3563, 5992, 4818, 5403, 4570, 3634, 4372, 4814, 6401, 5176, 4225, 3351, 3591, 4071, 3630, 4791, 5055, 5511, 3564, 5993, 4819, 5404, 4571, 3635, 4373, 4815, 6402, 5177, 4226, 3352, 3592, 4072, 3631, 4792, 5056, 5512, 3565, 5994, 4820, 5405, 4572, 3636, 4374, 4816, 6403, 5178, 4227, 3353, 3593, 4073, 3632, 4793, 5057, 5513, 3566, 5995, 4821, 5406, 4573, 3637, 4375, 4817, 6404, 5179, 4228, 3354, 3594, 4074, 3633, 4794, 5058, 5514, 3567, 5996, 4822, 5407, 4574, 3638, 4376, 4818, 6405, 5180, 4229, 3355, 3595, 4075, 3634, 4795, 5059, 5515, 3568, 5997, 4823, 5408, 4575, 3639, 4377, 4819, 6406, 5181, 4230, 3356, 3596, 4076, 3635, 4796, 5060, 5516, 3569, 5998, 4824, 5409, 4576, 3640, 4378, 4820, 6407, 5182, 4231, 3357, 3597, 4077, 3636, 4797, 5061, 5517, 3570, 5999, 4825, 5410, 4577, 3641, 4379, 4821, 6408, 5183, 4232, 3358, 3598, 4078, 3637, 4798, 5062, 5518, 3571, 6000, 4826, 5411, 4578, 3642, 4380, 4822, 6409, 5184, 4233, 3359, 3599, 4079, 3638, 4799, 5063, 5519, 3572, 6001, 4827, 5412, 4579, 3643, 4381, 4823, 6410, 5185, 4234, 3360, 3600, 4080, 3639, 4800, 5064, 5520, 3573, 6002, 4828, 5413, 4580, 3644, 4382, 4824, 6411, 5186, 4235, 3361, 3241, 4081, 3640, 4801, 5065, 5521, 3574, 6003, 4829, 5414, 4581, 3645, 4383, 4825, 6412, 5187, 4236, 3362, 3242, 4082, 3641, 4802, 5066, 5522, 3575, 6004, 4830, 5415, 4582, 3646, 4384, 4826, 6413, 5188, 4237, 3363, 3243, 4083, 3642, 4803, 5067, 5523, 3576, 6005, 4831, 5416, 4583, 3647, 4385, 4827, 6414, 5189, 4238, 3364, 3244, 4084, 3643, 4804, 5068, 5524, 3577, 6006, 4832, 5417, 4584, 3648, 4386, 4828, 6415, 5190, 4239, 3365, 3245, 4085, 3644, 4805, 5069, 5525, 3578, 6007, 4833, 5418, 4585, 3649, 4387, 4829, 6416, 5191, 4240, 3366, 3246, 4086, 3645, 4806, 5070, 5526, 3579, 6008, 4834, 5419, 4586, 3650, 4388, 4830, 6417, 5192, 4241, 3367, 3247, 4087, 3646, 4807, 5071, 5527, 3580, 6009, 4835, 5420, 4587, 3651, 4389, 4831, 6418, 5193, 4242, 3368, 3248, 4088, 3647, 4808, 5072, 5528, 3581, 6010, 4836, 5421, 4588, 3652, 4390, 4832, 6419, 5194, 4243, 3369, 3249, 4089, 3648, 4809, 5073, 5529, 3582, 6011, 4837, 5422, 4589, 3653, 4391, 4833, 6420, 5195, 4244, 3370, 3250, 4090, 3649, 4810, 5074, 5530, 3583, 6012, 4838, 5423, 4590, 3654, 4392, 4834, 6421, 5196, 4245, 3371, 3251, 4091, 3650, 4811, 5075, 5531, 3584, 6013, 4839, 5424, 4591, 3655, 4393, 4835, 6422, 5197, 4246, 3372, 3252, 4092, 3651, 4812, 5076, 5532, 3585, 6014, 4840, 5425, 4592, 3656, 4394, 4836, 6423, 5198, 4247, 3373, 3253, 4093, 3652, 4813, 5077, 5533, 3586, 6015, 4841, 5426, 4593, 3657, 4395, 4837, 6424, 5199, 4248, 3374, 3254, 4094, 3653, 4814, 5078, 5534, 3587, 6016, 4842, 5427, 4594, 3658, 4396, 4838, 6425, 5200, 4249, 3375, 3255, 4095, 3654, 4815, 5079, 5535, 3588, 6017, 4843, 5428, 4595, 3659, 4397, 4839, 6426, 5201, 4250, 3376, 3256, 4096, 3655, 4816, 5080, 5536, 3589, 6018, 4844, 5429, 4596, 3660, 4398, 4840, 6427, 5202, 4251, 3377, 3257, 4097, 3656, 4817, 5081, 5537, 3590, 6019, 4845, 5430, 4597, 3661, 4399, 4841, 6428, 5203, 4252, 3378, 3258, 4098, 3657, 4818, 5082, 5538, 3591, 6020, 4846, 5431, 4598, 3662, 4400, 4842, 6429, 5204, 4253, 3379, 3259, 4099, 3658, 4819, 5083, 5539, 3592, 6021, 4847, 5432, 4599, 3663, 4401, 4843, 6430, 5205, 4254, 3380, 3260, 4100, 3659, 4820, 5084, 5540, 3593, 6022, 4848, 5433, 4600, 3664, 4402, 4844, 6431, 5206, 4255, 3381, 3261, 4101, 3660, 4821, 5085, 5541, 3594, 6023, 4849, 5434, 4601, 3665, 4403, 4845, 6432, 5207, 4256, 3382, 3262, 4102, 3661, 4822, 5086, 5542, 3595, 6024, 4850, 5435, 4602, 3666, 4404, 4846, 6433, 5208, 4257, 3383, 3263, 4103, 3662, 4823, 5087, 5543, 3596, 6025, 4851, 5436, 4603, 3667, 4405, 4847, 6434, 5209, 4258, 3384, 3264, 4104, 3663, 4824, 5088, 5544, 3597, 6026, 4852, 5437, 4604, 3668, 4406, 4848, 6435, 5210, 4259, 3385, 3265, 4105, 3664, 4825, 5089, 5545, 3598, 6027, 4853, 5438, 4605, 3669, 4407, 4849, 6436, 5211, 4260, 3386, 3266, 4106, 3665, 4826, 5090, 5546, 3599, 6028, 4854, 5439, 4606, 3670, 4408, 4850, 6437, 5212, 4261, 3387, 3267, 4107, 3666, 4827, 5091, 5547, 3600, 6029, 4855, 5440, 4607, 3671, 4409, 4851, 6438, 5213, 4262, 3388, 3268, 4108, 3667, 4828, 5092, 5548, 3241, 6030, 4856, 5441, 4608, 3672, 4410, 4852, 6439, 5214, 4263, 3389, 3269, 4109, 3668, 4829, 5093, 5549, 3242, 6031, 4857, 5442, 4609, 3673, 4411, 4853, 6440, 5215, 4264, 3390, 3270, 4110, 3669, 4830, 5094, 5550, 3243, 6032, 4858, 5443, 4610, 3674, 4412, 4854, 6441, 5216, 4265, 3391, 3271, 4111, 3670, 4831, 5095, 5551, 3244, 6033, 4859, 5444, 4611, 3675, 4413, 4855, 6442, 5217, 4266, 3392, 3272, 4112, 3671, 4832, 5096, 5552, 3245, 6034, 4860, 5445, 4612, 3676, 4414, 4856, 6443, 5218, 4267, 3393, 3273, 4113, 3672, 4833, 5097, 5553, 3246, 6035, 4861, 5446, 4613, 3677, 4415, 4857, 6444, 5219, 4268, 3394, 3274, 4114, 3673, 4834, 5098, 5554, 3247, 6036, 4862, 5447, 4614, 3678, 4416, 4858, 6445, 5220, 4269, 3395, 3275, 4115, 3674, 4835, 5099, 5555, 3248, 6037, 4863, 5448, 4615, 3679, 4417, 4859, 6446, 5221, 4270, 3396, 3276, 4116, 3675, 4836, 5100, 5556, 3249, 6038, 4864, 5449, 4616, 3680, 4418, 4860, 6447, 5222, 4271, 3397, 3277, 4117, 3676, 4837, 5101, 5557, 3250, 6039, 4865, 5450, 4617, 3681, 4419, 4861, 6448, 5223, 4272, 3398, 3278, 4118, 3677, 4838, 5102, 5558, 3251, 6040, 4866, 5451, 4618, 3682, 4420, 4862, 6449, 5224, 4273, 3399, 3279, 4119, 3678, 4839, 5103, 5559, 3252, 6041, 4867, 5452, 4619, 3683, 4421, 4863, 6450, 5225, 4274, 3400, 3280, 4120, 3679, 4840, 5104, 5560, 3253, 6042, 4868, 5453, 4620, 3684, 4422, 4864, 6451, 5226, 4275, 3401, 3281, 4121, 3680, 4841, 5105, 5561, 3254, 6043, 4869, 5454, 4621, 3685, 4423, 4865, 6452, 5227, 4276, 3402, 3282, 4122, 3681, 4842, 5106, 5562, 3255, 6044, 4870, 5455, 4622, 3686, 4424, 4866, 6453, 5228, 4277, 3403, 3283, 4123, 3682, 4843, 5107, 5563, 3256, 6045, 4871, 5456, 4623, 3687, 4425, 4867, 6454, 5229, 4278, 3404, 3284, 4124, 3683, 4844, 5108, 5564, 3257, 6046, 4872, 5457, 4624, 3688, 4426, 4868, 6455, 5230, 4279, 3405, 3285, 4125, 3684, 4845, 5109, 5565, 3258, 6047, 4873, 5458, 4625, 3689, 4427, 4869, 6456, 5231, 4280, 3406, 3286, 4126, 3685, 4846, 5110, 5566, 3259, 6048, 4874, 5459, 4626, 3690, 4428, 4870, 6457, 5232, 4281, 3407, 3287, 4127, 3686, 4847, 5111, 5567, 3260, 6049, 4875, 5460, 4627, 3691, 4429, 4871, 6458, 5233, 4282, 3408, 3288, 4128, 3687, 4848, 5112, 5568, 3261, 6050, 4876, 5461, 4628, 3692, 4430, 4872, 6459, 5234, 4283, 3409, 3289, 4129, 3688, 4849, 5113, 5569, 3262, 6051, 4877, 5462, 4629, 3693, 4431, 4873, 6460, 5235, 4284, 3410, 3290, 4130, 3689, 4850, 5114, 5570, 3263, 6052, 4878, 5463, 4630, 3694, 4432, 4874, 6461, 5236, 4285, 3411, 3291, 4131, 3690, 4851, 5115, 5571, 3264, 6053, 4879, 5464, 4631, 3695, 4433, 4875, 6462, 5237, 4286, 3412, 3292, 4132, 3691, 4852, 5116, 5572, 3265, 6054, 4880, 5465, 4632, 3696, 4434, 4876, 6463, 5238, 4287, 3413, 3293, 4133, 3692, 4853, 5117, 5573, 3266, 6055, 4881, 5466, 4633, 3697, 4435, 4877, 6464, 5239, 4288, 3414, 3294, 4134, 3693, 4854, 5118, 5574, 3267, 6056, 4882, 5467, 4634, 3698, 4436, 4878, 6465, 5240, 4289, 3415, 3295, 4135, 3694, 4855, 5119, 5575, 3268, 6057, 4883, 5468, 4635, 3699, 4437, 4879, 6466, 5241, 4290, 3416, 3296, 4136, 3695, 4856, 5120, 5576, 3269, 6058, 4884, 5469, 4636, 3700, 4438, 4880, 6467, 5242, 4291, 3417, 3297, 4137, 3696, 4857, 5121, 5577, 3270, 6059, 4885, 5470, 4637, 3701, 4439, 4881, 6468, 5243, 4292, 3418, 3298, 4138, 3697, 4858, 5122, 5578, 3271, 6060, 4886, 5471, 4638, 3702, 4440, 4882, 6469, 5244, 4293, 3419, 3299, 4139, 3698, 4859, 5123, 5579, 3272, 6061, 4887, 5472, 4639, 3703, 4441, 4883, 6470, 5245, 4294, 3420, 3300, 4140, 3699, 4860, 5124, 5580, 3273, 6062, 4888, 5473, 4640, 3704, 4442, 4884, 6471, 5246, 4295, 3421, 3301, 4141, 3700, 4861, 5125, 5581, 3274, 6063, 4889, 5474, 4641, 3705, 4443, 4885, 6472, 5247, 4296, 3422, 3302, 4142, 3701, 4862, 5126, 5582, 3275, 6064, 4890, 5475, 4642, 3706, 4444, 4886, 6473, 5248, 4297, 3423, 3303, 4143, 3702, 4863, 5127, 5583, 3276, 6065, 4891, 5476, 4643, 3707, 4445, 4887, 6474, 5249, 4298, 3424, 3304, 4144, 3703, 4864, 5128, 5584, 3277, 6066, 4892, 5477, 4644, 3708, 4446, 4888, 6475, 5250, 4299, 3425, 3305, 4145, 3704, 4865, 5129, 5585, 3278, 6067, 4893, 5478, 4645, 3709, 4447, 4889, 6476, 5251, 4300, 3426, 3306, 4146, 3705, 4866, 5130, 5586, 3279, 6068, 4894, 5479, 4646, 3710, 4448, 4890, 6477, 5252, 4301, 3427, 3307, 4147, 3706, 4867, 5131, 5587, 3280, 6069, 4895, 5480, 4647, 3711, 4449, 4891, 6478, 5253, 4302, 3428, 3308, 4148, 3707, 4868, 5132, 5588, 3281, 6070, 4896, 5481, 4648, 3712, 4450, 4892, 6479, 5254, 4303, 3429, 3309, 4149, 3708, 4869, 5133, 5589, 3282, 6071, 4897, 5482, 4649, 3713, 4451, 4893, 6480, 5255, 4304, 3430, 3310, 4150, 3709, 4870, 5134, 5590, 3283, 6072, 4898, 5483, 4650, 3714, 4452, 4894, 6121, 5256, 4305, 3431, 3311, 4151, 3710, 4871, 5135, 5591, 3284, 6073, 4899, 5484, 4651, 3715, 4453, 4895, 6122, 5257, 4306, 3432, 3312, 4152, 3711, 4872, 5136, 5592, 3285, 6074, 4900, 5485, 4652, 3716, 4454, 4896, 6123, 5258, 4307, 3433, 3313, 4153, 3712, 4873, 5137, 5593, 3286, 6075, 4901, 5486, 4653, 3717, 4455, 4897, 6124, 5259, 4308, 3434, 3314, 4154, 3713, 4874, 5138, 5594, 3287, 6076, 4902, 5487, 4654, 3718, 4456, 4898, 6125, 5260, 4309, 3435, 3315, 4155, 3714, 4875, 5139, 5595, 3288, 6077, 4903, 5488, 4655, 3719, 4457, 4899, 6126, 5261, 4310, 3436, 3316, 4156, 3715, 4876, 5140, 5596, 3289, 6078, 4904, 5489, 4656, 3720, 4458, 4900, 6127, 5262, 4311, 3437, 3317, 4157, 3716, 4877, 5141, 5597, 3290, 6079, 4905, 5490, 4657, 3721, 4459, 4901, 6128, 5263, 4312, 3438, 3318, 4158, 3717, 4878, 5142, 5598, 3291, 6080, 4906, 5491, 4658, 3722, 4460, 4902, 6129, 5264, 4313, 3439, 3319, 4159, 3718, 4879, 5143, 5599, 3292, 6081, 4907, 5492, 4659, 3723, 4461, 4903, 6130, 5265, 4314, 3440, 3320, 4160, 3719, 4880, 5144, 5600, 3293, 6082, 4908, 5493, 4660, 3724, 4462, 4904, 6131, 5266, 4315, 3441, 3321, 4161, 3720, 4881, 5145, 5601, 3294, 6083, 4909, 5494, 4661, 3725, 4463, 4905, 6132, 5267, 4316, 3442, 3322, 4162, 3721, 4882, 5146, 5602, 3295, 6084, 4910, 5495, 4662, 3726, 4464, 4906, 6133, 5268, 4317, 3443, 3323, 4163, 3722, 4883, 5147, 5603, 3296, 6085, 4911, 5496, 4663, 3727, 4465, 4907, 6134, 5269, 4318, 3444, 3324, 4164, 3723, 4884, 5148, 5604, 3297, 6086, 4912, 5497, 4664, 3728, 4466, 4908, 6135, 5270, 4319, 3445, 3325, 4165, 3724, 4885, 5149, 5605, 3298, 6087, 4913, 5498, 4665, 3729, 4467, 4909, 6136, 5271, 4320, 3446, 3326, 4166, 3725, 4886, 5150, 5606, 3299, 6088, 4914, 5499, 4666, 3730, 4468, 4910, 6137, 5272, 3961, 3447, 3327, 4167, 3726, 4887, 5151, 5607, 3300, 6089, 4915, 5500, 4667, 3731, 4469, 4911, 6138, 5273, 3962, 3448, 3328, 4168, 3727, 4888, 5152, 5608, 3301, 6090, 4916, 5501, 4668, 3732, 4470, 4912, 6139, 5274, 3963, 3449, 3329, 4169, 3728, 4889, 5153, 5609, 3302, 6091, 4917, 5502, 4669, 3733, 4471, 4913, 6140, 5275, 3964, 3450, 3330, 4170, 3729, 4890, 5154, 5610, 3303, 6092, 4918, 5503, 4670, 3734, 4472, 4914, 6141, 5276, 3965, 3451, 3331, 4171, 3730, 4891, 5155, 5401, 3304, 6093, 4919, 5504, 4671, 3735, 4473, 4915, 6142, 5277, 3966, 3452, 3332, 4172, 3731, 4892, 5156, 5402, 3305, 6094, 4920, 5505, 4672, 3736, 4474, 4916, 6143, 5278, 3967, 3453, 3333, 4173, 3732, 4893, 5157, 5403, 3306, 6095, 4921, 5506, 4673, 3737, 4475, 4917, 6144, 5279, 3968, 3454, 3334, 4174, 3733, 4894, 5158, 5404, 3307, 6096, 4922, 5507, 4674, 3738, 4476, 4918, 6145, 5280, 3969, 3455, 3335, 4175, 3734, 4895, 5159, 5405, 3308, 6097, 4923, 5508, 4675, 3739, 4477, 4919, 6146, 5281, 3970, 3456, 3336, 4176, 3735, 4896, 5160, 5406, 3309, 6098, 4924, 5509, 4676, 3740, 4478, 4920, 6147, 5282, 3971, 3457, 3337, 4177, 3736, 4897, 5161, 5407, 3310, 6099, 4925, 5510, 4677, 3741, 4479, 4921, 6148, 5283, 3972, 3458, 3338, 4178, 3737, 4898, 5162, 5408, 3311, 6100, 4926, 5511, 4678, 3742, 4480, 4922, 6149, 5284, 3973, 3459, 3339, 4179, 3738, 4899, 5163, 5409, 3312, 6101, 4927, 5512, 4679, 3743, 4481, 4923, 6150, 5285, 3974, 3460, 3340, 4180, 3739, 4900, 5164, 5410, 3313, 6102, 4928, 5513, 4680, 3744, 4482, 4924, 6151, 5286, 3975, 3461, 3341, 4181, 3740, 4901, 5165, 5411, 3314, 6103, 4929, 5514, 4321, 3745, 4483, 4925, 6152, 5287, 3976, 3462, 3342, 4182, 3741, 4902, 5166, 5412, 3315, 6104, 4930, 5515, 4322, 3746, 4484, 4926, 6153, 5288, 3977, 3463, 3343, 4183, 3742, 4903, 5167, 5413, 3316, 6105, 4931, 5516, 4323, 3747, 4485, 4927, 6154, 5289, 3978, 3464, 3344, 4184, 3743, 4904, 5168, 5414, 3317, 6106, 4932, 5517, 4324, 3748, 4486, 4928, 6155, 5290, 3979, 3465, 3345, 4185, 3744, 4905, 5169, 5415, 3318, 6107, 4933, 5518, 4325, 3749, 4487, 4929, 6156, 5291, 3980, 3466, 3346, 4186, 3745, 4906, 5170, 5416, 3319, 6108, 4934, 5519, 4326, 3750, 4488, 4930, 6157, 5292, 3981, 3467, 3347, 4187, 3746, 4907, 5171, 5417, 3320, 6109, 4935, 5520, 4327, 3751, 4489, 4931, 6158, 5293, 3982, 3468, 3348, 4188, 3747, 4908, 5172, 5418, 3321, 6110, 4936, 5521, 4328, 3752, 4490, 4932, 6159, 5294, 3983, 3469, 3349, 4189, 3748, 4909, 5173, 5419, 3322, 6111, 4937, 5522, 4329, 3753, 4491, 4933, 6160, 5295, 3984, 3470, 3350, 4190, 3749, 4910, 5174, 5420, 3323, 6112, 4938, 5523, 4330, 3754, 4492, 4934, 6161, 5296, 3985, 3471, 3351, 4191, 3750, 4911, 5175, 5421, 3324, 6113, 4939, 5524, 4331, 3755, 4493, 4935, 6162, 5297, 3986, 3472, 3352, 4192, 3751, 4912, 5176, 5422, 3325, 6114, 4940, 5525, 4332, 3756, 4494, 4936, 6163, 5298, 3987, 3473, 3353, 4193, 3752, 4913, 5177, 5423, 3326, 6115, 4941, 5526, 4333, 3757, 4495, 4937, 6164, 5299, 3988, 3474, 3354, 4194, 3753, 4914, 5178, 5424, 3327, 6116, 4942, 5527, 4334, 3758, 4496, 4938, 6165, 5300, 3989, 3475, 3355, 4195, 3754, 4915, 5179, 5425, 3328, 6117, 4943, 5528, 4335, 3759, 4497, 4939, 6166, 5301, 3990, 3476, 3356, 4196, 3755, 4916, 5180, 5426, 3329, 6118, 4944, 5529, 4336, 3760, 4498, 4940, 6167, 5302, 3991, 3477, 3357, 4197, 3756, 4917, 5181, 5427, 3330, 6119, 4945, 5530, 4337, 3761, 4499, 4941, 6168, 5303, 3992, 3478, 3358, 4198, 3757, 4918, 5182, 5428, 3331, 6120, 4946, 5531, 4338, 3762, 4500, 4942, 6169, 5304, 3993, 3479, 3359, 4199, 3758, 4919, 5183, 5429, 3332, 5761, 4947, 5532, 4339, 3763, 4501, 4943, 6170, 5305, 3994, 3480, 3360, 4200, 3759, 4920, 5184, 5430, 3333, 5762, 4948, 5533, 4340, 3764, 4502, 4944, 6171, 5306, 3995, 3481, 3361, 4201, 3760, 4921, 5185, 5431, 3334, 5763, 4949, 5534, 4341, 3765, 4503, 4945, 6172, 5307, 3996, 3482, 3362, 4202, 3761, 4922, 5186, 5432, 3335, 5764, 4950, 5535, 4342, 3766, 4504, 4946, 6173, 5308, 3997, 3483, 3363, 4203, 3762, 4923, 5187, 5433, 3336, 5765, 4951, 5536, 4343, 3767, 4505, 4947, 6174, 5309, 3998, 3484, 3364, 4204, 3763, 4924, 5188, 5434, 3337, 5766, 4952, 5537, 4344, 3768, 4506, 4948, 6175, 5310, 3999, 3485, 3365, 4205, 3764, 4925, 5189, 5435, 3338, 5767, 4953, 5538, 4345, 3769, 4507, 4949, 6176, 5311, 4000, 3486, 3366, 4206, 3765, 4926, 5190, 5436, 3339, 5768, 4954, 5539, 4346, 3770, 4508, 4950, 6177, 5312, 4001, 3487, 3367, 4207, 3766, 4927, 5191, 5437, 3340, 5769, 4955, 5540, 4347, 3771, 4509, 4951, 6178, 5313, 4002, 3488, 3368, 4208, 3767, 4928, 5192, 5438, 3341, 5770, 4956, 5541, 4348, 3772, 4510, 4952, 6179, 5314, 4003, 3489, 3369, 4209, 3768, 4929, 5193, 5439, 3342, 5771, 4957, 5542, 4349, 3773, 4511, 4953, 6180, 5315, 4004, 3490, 3370, 4210, 3769, 4930, 5194, 5440, 3343, 5772, 4958, 5543, 4350, 3774, 4512, 4954, 6181, 5316, 4005, 3491, 3371, 4211, 3770, 4931, 5195, 5441, 3344, 5773, 4959, 5544, 4351, 3775, 4513, 4955, 6182, 5317, 4006, 3492, 3372, 4212, 3771, 4932, 5196, 5442, 3345, 5774, 4960, 5545, 4352, 3776, 4514, 4956, 6183, 5318, 4007, 3493, 3373, 4213, 3772, 4933, 5197, 5443, 3346, 5775, 4961, 5546, 4353, 3777, 4515, 4957, 6184, 5319, 4008, 3494, 3374, 4214, 3773, 4934, 5198, 5444, 3347, 5776, 4962, 5547, 4354, 3778, 4516, 4958, 6185, 5320, 4009, 3495, 3375, 4215, 3774, 4935, 5199, 5445, 3348, 5777, 4963, 5548, 4355, 3779, 4517, 4959, 6186, 5321, 4010, 3496, 3376, 4216, 3775, 4936, 5200, 5446, 3349, 5778, 4964, 5549, 4356, 3780, 4518, 4960, 6187, 5322, 4011, 3497, 3377, 4217, 3776, 4937, 5201, 5447, 3350, 5779, 4965, 5550, 4357, 3781, 4519, 4961, 6188, 5323, 4012, 3498, 3378, 4218, 3777, 4938, 5202, 5448, 3351, 5780, 4966, 5551, 4358, 3782, 4520, 4962, 6189, 5324, 4013, 3499, 3379, 4219, 3778, 4939, 5203, 5449, 3352, 5781, 4967, 5552, 4359, 3783, 4521, 4963, 6190, 5325, 4014, 3500, 3380, 4220, 3779, 4940, 5204, 5450, 3353, 5782, 4968, 5553, 4360, 3784, 4522, 4964, 6191, 5326, 4015, 3501, 3381, 4221, 3780, 4941, 5205, 5451, 3354, 5783, 4969, 5554, 4361, 3785, 4523, 4965, 6192, 5327, 4016, 3502, 3382, 4222, 3781, 4942, 5206, 5452, 3355, 5784, 4970, 5555, 4362, 3786, 4524, 4966, 6193, 5328, 4017, 3503, 3383, 4223, 3782, 4943, 5207, 5453, 3356, 5785, 4971, 5556, 4363, 3787, 4525, 4967, 6194, 5329, 4018, 3504, 3384, 4224, 3783, 4944, 5208, 5454, 3357, 5786, 4972, 5557, 4364, 3788, 4526, 4968, 6195, 5330, 4019, 3505, 3385, 4225, 3784, 4945, 5209, 5455, 3358, 5787, 4973, 5558, 4365, 3789, 4527, 4969, 6196, 5331, 4020, 3506, 3386, 4226, 3785, 4946, 5210, 5456, 3359, 5788, 4974, 5559, 4366, 3790, 4528, 4970, 6197, 5332, 4021, 3507, 3387, 4227, 3786, 4947, 5211, 5457, 3360, 5789, 4975, 5560, 4367, 3791, 4529, 4971, 6198, 5333, 4022, 3508, 3388, 4228, 3787, 4948, 5212, 5458, 3361, 5790, 4976, 5561, 4368, 3792, 4530, 4972, 6199, 5334, 4023, 3509, 3389, 4229, 3788, 4949, 5213, 5459, 3362, 5791, 4977, 5562, 4369, 3793, 4531, 4973, 6200, 5335, 4024, 3510, 3390, 4230, 3789, 4950, 5214, 5460, 3363, 5792, 4978, 5563, 4370, 3794, 4532, 4974, 6201, 5336, 4025, 3511, 3391, 4231, 3790, 4951, 5215, 5461, 3364, 5793, 4979, 5564, 4371, 3795, 4533, 4975, 6202, 5337, 4026, 3512, 3392, 4232, 3791, 4952, 5216, 5462, 3365, 5794, 4980, 5565, 4372, 3796, 4534, 4976, 6203, 5338, 4027, 3513, 3393, 4233, 3792, 4953, 5217, 5463, 3366, 5795, 4981, 5566, 4373, 3797, 4535, 4977, 6204, 5339, 4028, 3514, 3394, 4234, 3793, 4954, 5218, 5464, 3367, 5796, 4982, 5567, 4374, 3798, 4536, 4978, 6205, 5340, 4029, 3515, 3395, 4235, 3794, 4955, 5219, 5465, 3368, 5797, 4983, 5568, 4375, 3799, 4537, 4979, 6206, 5341, 4030, 3516, 3396, 4236, 3795, 4956, 5220, 5466, 3369, 5798, 4984, 5569, 4376, 3800, 4538, 4980, 6207, 5342, 4031, 3517, 3397, 4237, 3796, 4957, 5221, 5467, 3370, 5799, 4985, 5570, 4377, 3801, 4539, 4981, 6208, 5343, 4032, 3518, 3398, 4238, 3797, 4958, 5222, 5468, 3371, 5800, 4986, 5571, 4378, 3802, 4540, 4982, 6209, 5344, 4033, 3519, 3399, 4239, 3798, 4959, 5223, 5469, 3372, 5801, 4987, 5572, 4379, 3803, 4541, 4983, 6210, 5345, 4034, 3520, 3400, 4240, 3799, 4960, 5224, 5470, 3373, 5802, 4988, 5573, 4380, 3804, 4542, 4984, 6211, 5346, 4035, 3521, 3401, 4241, 3800, 4961, 5225, 5471, 3374, 5803, 4989, 5574, 4381, 3805, 4543, 4985, 6212, 5347, 4036, 3522, 3402, 4242, 3801, 4962, 5226, 5472, 3375, 5804, 4990, 5575, 4382, 3806, 4544, 4986, 6213, 5348, 4037, 3523, 3403, 4243, 3802, 4963, 5227, 5473, 3376, 5805, 4991, 5576, 4383, 3807, 4545, 4987, 6214, 5349, 4038, 3524, 3404, 4244, 3803, 4964, 5228, 5474, 3377, 5806, 4992, 5577, 4384, 3808, 4546, 4988, 6215, 5350, 4039, 3525, 3405, 4245, 3804, 4965, 5229, 5475, 3378, 5807, 4993, 5578, 4385, 3809, 4547, 4989, 6216, 5351, 4040, 3526, 3406, 4246, 3805, 4966, 5230, 5476, 3379, 5808, 4994, 5579, 4386, 3810, 4548, 4990, 6217, 5352, 4041, 3527, 3407, 4247, 3806, 4967, 5231, 5477, 3380, 5809, 4995, 5580, 4387, 3811, 4549, 4991, 6218, 5353, 4042, 3528, 3408, 4248, 3807, 4968, 5232, 5478, 3381, 5810, 4996, 5581, 4388, 3812, 4550, 4992, 6219, 5354, 4043, 3529, 3409, 4249, 3808, 4969, 5233, 5479, 3382, 5811, 4997, 5582, 4389, 3813, 4551, 4993, 6220, 5355, 4044, 3530, 3410, 4250, 3809, 4970, 5234, 5480, 3383, 5812, 4998, 5583, 4390, 3814, 4552, 4994, 6221, 5356, 4045, 3531, 3411, 4251, 3810, 4971, 5235, 5481, 3384, 5813, 4999, 5584, 4391, 3815, 4553, 4995, 6222, 5357, 4046, 3532, 3412, 4252, 3811, 4972, 5236, 5482, 3385, 5814, 5000, 5585, 4392, 3816, 4554, 4996, 6223, 5358, 4047, 3533, 3413, 4253, 3812, 4973, 5237, 5483, 3386, 5815, 5001, 5586, 4393, 3817, 4555, 4997, 6224, 5359, 4048, 3534, 3414, 4254, 3813, 4974, 5238, 5484, 3387, 5816, 5002, 5587, 4394, 3818, 4556, 4998, 6225, 5360, 4049, 3535, 3415, 4255, 3814, 4975, 5239, 5485, 3388, 5817, 5003, 5588, 4395, 3819, 4557, 4999, 6226, 5361, 4050, 3536, 3416, 4256, 3815, 4976, 5240, 5486, 3389, 5818, 5004, 5589, 4396, 3820, 4558, 5000, 6227, 5362, 4051, 3537, 3417, 4257, 3816, 4977, 5241, 5487, 3390, 5819, 5005, 5590, 4397, 3821, 4559, 5001, 6228, 5363, 4052, 3538, 3418, 4258, 3817, 4978, 5242, 5488, 3391, 5820, 5006, 5591, 4398, 3822, 4560, 5002, 6229, 5364, 4053, 3539, 3419, 4259, 3818, 4979, 5243, 5489, 3392, 5821, 5007, 5592, 4399, 3823, 4561, 5003, 6230, 5365, 4054, 3540, 3420, 4260, 3819, 4980, 5244, 5490, 3393, 5822, 5008, 5593, 4400, 3824, 4562, 5004, 6231, 5366, 4055, 3541, 3421, 4261, 3820, 4981, 5245, 5491, 3394, 5823, 5009, 5594, 4401, 3825, 4563, 5005, 6232, 5367, 4056, 3542, 3422, 4262, 3821, 4982, 5246, 5492, 3395, 5824, 5010, 5595, 4402, 3826, 4564, 5006, 6233, 5368, 4057, 3543, 3423, 4263, 3822, 4983, 5247, 5493, 3396, 5825, 5011, 5596, 4403, 3827, 4565, 5007, 6234, 5369, 4058, 3544, 3424, 4264, 3823, 4984, 5248, 5494, 3397, 5826, 5012, 5597, 4404, 3828, 4566, 5008, 6235, 5370, 4059, 3545, 3425, 4265, 3824, 4985, 5249, 5495, 3398, 5827, 5013, 5598, 4405, 3829, 4567, 5009, 6236, 5371, 4060, 3546, 3426, 4266, 3825, 4986, 5250, 5496, 3399, 5828, 5014, 5599, 4406, 3830, 4568, 5010, 6237, 5372, 4061, 3547, 3427, 4267, 3826, 4987, 5251, 5497, 3400, 5829, 5015, 5600, 4407, 3831, 4569, 5011, 6238, 5373, 4062, 3548, 3428, 4268, 3827, 4988, 5252, 5498, 3401, 5830, 5016, 5601, 4408, 3832, 4570, 5012, 6239, 5374, 4063, 3549, 3429, 4269, 3828, 4989, 5253, 5499, 3402, 5831, 5017, 5602, 4409, 3833, 4571, 5013, 6240, 5375, 4064, 3550, 3430, 4270, 3829, 4990, 5254, 5500, 3403, 5832, 5018, 5603, 4410, 3834, 4572, 5014, 6241, 5376, 4065, 3551, 3431, 4271, 3830, 4991, 5255, 5501, 3404, 5833, 5019, 5604, 4411, 3835, 4573, 5015, 6242, 5377, 4066, 3552, 3432, 4272, 3831, 4992, 5256, 5502, 3405, 5834, 5020, 5605, 4412, 3836, 4574, 5016, 6243, 5378, 4067, 3553, 3433, 4273, 3832, 4993, 5257, 5503, 3406, 5835, 5021, 5606, 4413, 3837, 4575, 5017, 6244, 5379, 4068, 3554, 3434, 4274, 3833, 4994, 5258, 5504, 3407, 5836, 5022, 5607, 4414, 3838, 4576, 5018, 6245, 5380, 4069, 3555, 3435, 4275, 3834, 4995, 5259, 5505, 3408, 5837, 5023, 5608, 4415, 3839, 4577, 5019, 6246, 5381, 4070, 3556, 3436, 4276, 3835, 4996, 5260, 5506, 3409, 5838, 5024, 5609, 4416, 3840, 4578, 5020, 6247, 5382, 4071, 3557, 3437, 4277, 3836, 4997, 5261, 5507, 3410, 5839, 5025, 5610, 4417, 3841, 4579, 5021, 6248, 5383, 4072, 3558, 3438, 4278, 3837, 4998, 5262, 5508, 3411, 5840, 5026, 5611, 4418, 3842, 4580, 5022, 6249, 5384, 4073, 3559, 3439, 4279, 3838, 4999, 5263, 5509, 3412, 5841, 5027, 5612, 4419, 3843, 4581, 5023, 6250, 5385, 4074, 3560, 3440, 4280, 3839, 5000, 5264, 5510, 3413, 5842, 5028, 5613, 4420, 3844, 4582, 5024, 6251, 5386, 4075, 3561, 3441, 4281, 3840, 5001, 5265, 5511, 3414, 5843, 5029, 5614, 4421, 3845, 4583, 5025, 6252, 5387, 4076, 3562, 3442, 4282, 3841, 5002, 5266, 5512, 3415, 5844, 5030, 5615, 4422, 3846, 4584, 5026, 6253, 5388, 4077, 3563, 3443, 4283, 3842, 5003, 5267, 5513, 3416, 5845, 5031, 5616, 4423, 3847, 4585, 5027, 6254, 5389, 4078, 3564, 3444, 4284, 3843, 5004, 5268, 5514, 3417, 5846, 5032, 5617, 4424, 3848, 4586, 5028, 6255, 5390, 4079, 3565, 3445, 4285, 3844, 5005, 5269, 5515, 3418, 5847, 5033, 5618, 4425, 3849, 4587, 5029, 6256, 5391, 4080, 3566, 3446, 4286, 3845, 5006, 5270, 5516, 3419, 5848, 5034, 5619, 4426, 3850, 4588, 5030, 6257, 5392, 4081, 3567, 3447, 4287, 3846, 5007, 5271, 5517, 3420, 5849, 5035, 5620, 4427, 3851, 4589, 5031, 6258, 5393, 4082, 3568, 3448, 4288, 3847, 5008, 5272, 5518, 3421, 5850, 5036, 5621, 4428, 3852, 4590, 5032, 6259, 5394, 4083, 3569, 3449, 4289, 3848, 5009, 5273, 5519, 3422, 5851, 5037, 5622, 4429, 3853, 4591, 5033, 6260, 5395, 4084, 3570, 3450, 4290, 3849, 5010, 5274, 5520, 3423, 5852, 5038, 5623, 4430, 3854, 4592, 5034, 6261, 5396, 4085, 3571, 3451, 4291, 3850, 5011, 5275, 5521, 3424, 5853, 5039, 5624, 4431, 3855, 4593, 5035, 6262, 5397, 4086, 3572, 3452, 4292, 3851, 5012, 5276, 5522, 3425, 5854, 5040, 5625, 4432, 3856, 4594, 5036, 6263, 5398, 4087, 3573, 3453, 4293, 3852, 5013, 5277, 5523, 3426, 5855, 4681, 5626, 4433, 3857, 4595, 5037, 6264, 5399, 4088, 3574, 3454, 4294, 3853, 5014, 5278, 5524, 3427, 5856, 4682, 5627, 4434, 3858, 4596, 5038, 6265, 5400, 4089, 3575, 3455, 4295, 3854, 5015, 5279, 5525, 3428, 5857, 4683, 5628, 4435, 3859, 4597, 5039, 6266, 5041, 4090, 3576, 3456, 4296, 3855, 5016, 5280, 5526, 3429, 5858, 4684, 5629, 4436, 3860, 4598, 5040, 6267, 5042, 4091, 3577, 3457, 4297, 3856, 5017, 5281, 5527, 3430, 5859, 4685, 5630, 4437, 3861, 4599, 4681, 6268, 5043, 4092, 3578, 3458, 4298, 3857, 5018, 5282, 5528, 3431, 5860, 4686, 5631, 4438, 3862, 4600, 4682, 6269, 5044, 4093, 3579, 3459, 4299, 3858, 5019, 5283, 5529, 3432, 5861, 4687, 5632, 4439, 3863, 4601, 4683, 6270, 5045, 4094, 3580, 3460, 4300, 3859, 5020, 5284, 5530, 3433, 5862, 4688, 5633, 4440, 3864, 4602, 4684, 6271, 5046, 4095, 3581, 3461, 4301, 3860, 5021, 5285, 5531, 3434, 5863, 4689, 5634, 4441, 3865, 4603, 4685, 6272, 5047, 4096, 3582, 3462, 4302, 3861, 5022, 5286, 5532, 3435, 5864, 4690, 5635, 4442, 3866, 4604, 4686, 6273, 5048, 4097, 3583, 3463, 4303, 3862, 5023, 5287, 5533, 3436, 5865, 4691, 5636, 4443, 3867, 4605, 4687, 6274, 5049, 4098, 3584, 3464, 4304, 3863, 5024, 5288, 5534, 3437, 5866, 4692, 5637, 4444, 3868, 4606, 4688, 6275, 5050, 4099, 3585, 3465, 4305, 3864, 5025, 5289, 5535, 3438, 5867, 4693, 5638, 4445, 3869, 4607, 4689, 6276, 5051, 4100, 3586, 3466, 4306, 3865, 5026, 5290, 5536, 3439, 5868, 4694, 5639, 4446, 3870, 4608, 4690, 6277, 5052, 4101, 3587, 3467, 4307, 3866, 5027, 5291, 5537, 3440, 5869, 4695, 5640, 4447, 3871, 4609, 4691, 6278, 5053, 4102, 3588, 3468, 4308, 3867, 5028, 5292, 5538, 3441, 5870, 4696, 5641, 4448, 3872, 4610, 4692, 6279, 5054, 4103, 3589, 3469, 4309, 3868, 5029, 5293, 5539, 3442, 5871, 4697, 5642, 4449, 3873, 4611, 4693, 6280, 5055, 4104, 3590, 3470, 4310, 3869, 5030, 5294, 5540, 3443, 5872, 4698, 5643, 4450, 3874, 4612, 4694, 6281, 5056, 4105, 3591, 3471, 4311, 3870, 5031, 5295, 5541, 3444, 5873, 4699, 5644, 4451, 3875, 4613, 4695, 6282, 5057, 4106, 3592, 3472, 4312, 3871, 5032, 5296, 5542, 3445, 5874, 4700, 5645, 4452, 3876, 4614, 4696, 6283, 5058, 4107, 3593, 3473, 4313, 3872, 5033, 5297, 5543, 3446, 5875, 4701, 5646, 4453, 3877, 4615, 4697, 6284, 5059, 4108, 3594, 3474, 4314, 3873, 5034, 5298, 5544, 3447, 5876, 4702, 5647, 4454, 3878, 4616, 4698, 6285, 5060, 4109, 3595, 3475, 4315, 3874, 5035, 5299, 5545, 3448, 5877, 4703, 5648, 4455, 3879, 4617, 4699, 6286, 5061, 4110, 3596, 3476, 4316, 3875, 5036, 5300, 5546, 3449, 5878, 4704, 5649, 4456, 3880, 4618, 4700, 6287, 5062, 4111, 3597, 3477, 4317, 3876, 5037, 5301, 5547, 3450, 5879, 4705, 5650, 4457, 3881, 4619, 4701, 6288, 5063, 4112, 3598, 3478, 4318, 3877, 5038, 5302, 5548, 3451, 5880, 4706, 5651, 4458, 3882, 4620, 4702, 6289, 5064, 4113, 3599, 3479, 4319, 3878, 5039, 5303, 5549, 3452, 5881, 4707, 5652, 4459, 3883, 4621, 4703, 6290, 5065, 4114, 3600, 3480, 4320, 3879, 5040, 5304, 5550, 3453, 5882, 4708, 5653, 4460, 3884, 4622, 4704, 6291, 5066, 4115, 4182, 3601, 6068, 4321, 6165, 5305, 5551, 5761, 6121, 6481, 6841, 7201, 7561, 7343, 6827, 8641, 8783, 6929, 4183, 3602, 6069, 4322, 6166, 5306, 5552, 5762, 6122, 6482, 6842, 7202, 7562, 7344, 6828, 8642, 8784, 6930, 4184, 3603, 6070, 4323, 6167, 5307, 5553, 5763, 6123, 6483, 6843, 7203, 7563, 7345, 6829, 8643, 8785, 6931, 4185, 3604, 6071, 4324, 6168, 5308, 5554, 5764, 6124, 6484, 6844, 7204, 7564, 7346, 6830, 8644, 8786, 6932, 4186, 3605, 6072, 4325, 6169, 5309, 5555, 5765, 6125, 6485, 6845, 7205, 7565, 7347, 6831, 8645, 8787, 6933, 4187, 3606, 6073, 4326, 6170, 5310, 5556, 5766, 6126, 6486, 6846, 7206, 7566, 7348, 6832, 8646, 8788, 6934, 4188, 3607, 6074, 4327, 6171, 5311, 5557, 5767, 6127, 6487, 6847, 7207, 7567, 7349, 6833, 8647, 8789, 6935, 4189, 3608, 6075, 4328, 6172, 5312, 5558, 5768, 6128, 6488, 6848, 7208, 7568, 7350, 6834, 8648, 8790, 6936, 4190, 3609, 6076, 4329, 6173, 5313, 5559, 5769, 6129, 6489, 6849, 7209, 7569, 7351, 6835, 8649, 8791, 6937, 4191, 3610, 6077, 4330, 6174, 5314, 5560, 5770, 6130, 6490, 6850, 7210, 7570, 7352, 6836, 8650, 8792, 6938, 4192, 3611, 6078, 4331, 6175, 5315, 5561, 5771, 6131, 6491, 6851, 7211, 7571, 7353, 6837, 8651, 8793, 6939, 4193, 3612, 6079, 4332, 6176, 5316, 5562, 5772, 6132, 6492, 6852, 7212, 7572, 7354, 6838, 8652, 8794, 6940, 4194, 3613, 6080, 4333, 6177, 5317, 5563, 5773, 6133, 6493, 6853, 7213, 7573, 7355, 6839, 8653, 8795, 6941, 4195, 3614, 6081, 4334, 6178, 5318, 5564, 5774, 6134, 6494, 6854, 7214, 7574, 7356, 6840, 8654, 8796, 6942, 4196, 3615, 6082, 4335, 6179, 5319, 5565, 5775, 6135, 6495, 6855, 7215, 7575, 7357, 6481, 8655, 8797, 6943, 4197, 3616, 6083, 4336, 6180, 5320, 5566, 5776, 6136, 6496, 6856, 7216, 7576, 7358, 6482, 8656, 8798, 6944, 4198, 3617, 6084, 4337, 6181, 5321, 5567, 5777, 6137, 6497, 6857, 7217, 7577, 7359, 6483, 8657, 8799, 6945, 4199, 3618, 6085, 4338, 6182, 5322, 5568, 5778, 6138, 6498, 6858, 7218, 7578, 7360, 6484, 8658, 8800, 6946, 4200, 3619, 6086, 4339, 6183, 5323, 5569, 5779, 6139, 6499, 6859, 7219, 7579, 7361, 6485, 8659, 8801, 6947, 4201, 3620, 6087, 4340, 6184, 5324, 5570, 5780, 6140, 6500, 6860, 7220, 7580, 7362, 6486, 8660, 8802, 6948, 4202, 3621, 6088, 4341, 6185, 5325, 5571, 5781, 6141, 6501, 6861, 7221, 7581, 7363, 6487, 8661, 8803, 6949, 4203, 3622, 6089, 4342, 6186, 5326, 5572, 5782, 6142, 6502, 6862, 7222, 7582, 7364, 6488, 8662, 8804, 6950, 4204, 3623, 6090, 4343, 6187, 5327, 5573, 5783, 6143, 6503, 6863, 7223, 7583, 7365, 6489, 8663, 8805, 6951, 4205, 3624, 6091, 4344, 6188, 5328, 5574, 5784, 6144, 6504, 6864, 7224, 7584, 7366, 6490, 8664, 8806, 6952, 4206, 3625, 6092, 4345, 6189, 5329, 5575, 5785, 6145, 6505, 6865, 7225, 7585, 7367, 6491, 8665, 8807, 6953, 4207, 3626, 6093, 4346, 6190, 5330, 5576, 5786, 6146, 6506, 6866, 7226, 7586, 7368, 6492, 8666, 8808, 6954, 4208, 3627, 6094, 4347, 6191, 5331, 5577, 5787, 6147, 6507, 6867, 7227, 7587, 7369, 6493, 8667, 8809, 6955, 4209, 3628, 6095, 4348, 6192, 5332, 5578, 5788, 6148, 6508, 6868, 7228, 7588, 7370, 6494, 8668, 8810, 6956, 4210, 3629, 6096, 4349, 6193, 5333, 5579, 5789, 6149, 6509, 6869, 7229, 7589, 7371, 6495, 8669, 8811, 6957, 4211, 3630, 6097, 4350, 6194, 5334, 5580, 5790, 6150, 6510, 6870, 7230, 7590, 7372, 6496, 8670, 8812, 6958, 4212, 3631, 6098, 4351, 6195, 5335, 5581, 5791, 6151, 6511, 6871, 7231, 7591, 7373, 6497, 8671, 8813, 6959, 4213, 3632, 6099, 4352, 6196, 5336, 5582, 5792, 6152, 6512, 6872, 7232, 7592, 7374, 6498, 8672, 8814, 6960, 4214, 3633, 6100, 4353, 6197, 5337, 5583, 5793, 6153, 6513, 6873, 7233, 7593, 7375, 6499, 8673, 8815, 6961, 4215, 3634, 6101, 4354, 6198, 5338, 5584, 5794, 6154, 6514, 6874, 7234, 7594, 7376, 6500, 8674, 8816, 6962, 4216, 3635, 6102, 4355, 6199, 5339, 5585, 5795, 6155, 6515, 6875, 7235, 7595, 7377, 6501, 8675, 8817, 6963, 4217, 3636, 6103, 4356, 6200, 5340, 5586, 5796, 6156, 6516, 6876, 7236, 7596, 7378, 6502, 8676, 8818, 6964, 4218, 3637, 6104, 4357, 6201, 5341, 5587, 5797, 6157, 6517, 6877, 7237, 7597, 7379, 6503, 8677, 8819, 6965, 4219, 3638, 6105, 4358, 6202, 5342, 5588, 5798, 6158, 6518, 6878, 7238, 7598, 7380, 6504, 8678, 8820, 6966, 4220, 3639, 6106, 4359, 6203, 5343, 5589, 5799, 6159, 6519, 6879, 7239, 7599, 7381, 6505, 8679, 8821, 6967, 4221, 3640, 6107, 4360, 6204, 5344, 5590, 5800, 6160, 6520, 6880, 7240, 7600, 7382, 6506, 8680, 8822, 6968, 4222, 3641, 6108, 4361, 6205, 5345, 5591, 5801, 6161, 6521, 6881, 7241, 7601, 7383, 6507, 8681, 8823, 6969, 4223, 3642, 6109, 4362, 6206, 5346, 5592, 5802, 6162, 6522, 6882, 7242, 7602, 7384, 6508, 8682, 8824, 6970, 4224, 3643, 6110, 4363, 6207, 5347, 5593, 5803, 6163, 6523, 6883, 7243, 7603, 7385, 6509, 8683, 8825, 6971, 4225, 3644, 6111, 4364, 6208, 5348, 5594, 5804, 6164, 6524, 6884, 7244, 7604, 7386, 6510, 8684, 8826, 6972, 4226, 3645, 6112, 4365, 6209, 5349, 5595, 5805, 6165, 6525, 6885, 7245, 7605, 7387, 6511, 8685, 8827, 6973, 4227, 3646, 6113, 4366, 6210, 5350, 5596, 5806, 6166, 6526, 6886, 7246, 7606, 7388, 6512, 8686, 8828, 6974, 4228, 3647, 6114, 4367, 6211, 5351, 5597, 5807, 6167, 6527, 6887, 7247, 7607, 7389, 6513, 8687, 8829, 6975, 4229, 3648, 6115, 4368, 6212, 5352, 5598, 5808, 6168, 6528, 6888, 7248, 7608, 7390, 6514, 8688, 8830, 6976, 4230, 3649, 6116, 4369, 6213, 5353, 5599, 5809, 6169, 6529, 6889, 7249, 7609, 7391, 6515, 8689, 8831, 6977, 4231, 3650, 6117, 4370, 6214, 5354, 5600, 5810, 6170, 6530, 6890, 7250, 7610, 7392, 6516, 8690, 8832, 6978, 4232, 3651, 6118, 4371, 6215, 5355, 5601, 5811, 6171, 6531, 6891, 7251, 7611, 7393, 6517, 8691, 8833, 6979, 4233, 3652, 6119, 4372, 6216, 5356, 5602, 5812, 6172, 6532, 6892, 7252, 7612, 7394, 6518, 8692, 8834, 6980, 4234, 3653, 6120, 4373, 6217, 5357, 5603, 5813, 6173, 6533, 6893, 7253, 7613, 7395, 6519, 8693, 8835, 6981, 4235, 3654, 5761, 4374, 6218, 5358, 5604, 5814, 6174, 6534, 6894, 7254, 7614, 7396, 6520, 8694, 8836, 6982, 4236, 3655, 5762, 4375, 6219, 5359, 5605, 5815, 6175, 6535, 6895, 7255, 7615, 7397, 6521, 8695, 8837, 6983, 4237, 3656, 5763, 4376, 6220, 5360, 5606, 5816, 6176, 6536, 6896, 7256, 7616, 7398, 6522, 8696, 8838, 6984, 4238, 3657, 5764, 4377, 6221, 5361, 5607, 5817, 6177, 6537, 6897, 7257, 7617, 7399, 6523, 8697, 8839, 6985, 4239, 3658, 5765, 4378, 6222, 5362, 5608, 5818, 6178, 6538, 6898, 7258, 7618, 7400, 6524, 8698, 8840, 6986, 4240, 3659, 5766, 4379, 6223, 5363, 5609, 5819, 6179, 6539, 6899, 7259, 7619, 7401, 6525, 8699, 8841, 6987, 4241, 3660, 5767, 4380, 6224, 5364, 5610, 5820, 6180, 6540, 6900, 7260, 7620, 7402, 6526, 8700, 8842, 6988, 4242, 3661, 5768, 4381, 6225, 5365, 5611, 5821, 6181, 6541, 6901, 7261, 7621, 7403, 6527, 8701, 8843, 6989, 4243, 3662, 5769, 4382, 6226, 5366, 5612, 5822, 6182, 6542, 6902, 7262, 7622, 7404, 6528, 8702, 8844, 6990, 4244, 3663, 5770, 4383, 6227, 5367, 5613, 5823, 6183, 6543, 6903, 7263, 7623, 7405, 6529, 8703, 8845, 6991, 4245, 3664, 5771, 4384, 6228, 5368, 5614, 5824, 6184, 6544, 6904, 7264, 7624, 7406, 6530, 8704, 8846, 6992, 4246, 3665, 5772, 4385, 6229, 5369, 5615, 5825, 6185, 6545, 6905, 7265, 7625, 7407, 6531, 8705, 8847, 6993, 4247, 3666, 5773, 4386, 6230, 5370, 5616, 5826, 6186, 6546, 6906, 7266, 7626, 7408, 6532, 8706, 8848, 6994, 4248, 3667, 5774, 4387, 6231, 5371, 5617, 5827, 6187, 6547, 6907, 7267, 7627, 7409, 6533, 8707, 8849, 6995, 4249, 3668, 5775, 4388, 6232, 5372, 5618, 5828, 6188, 6548, 6908, 7268, 7628, 7410, 6534, 8708, 8850, 6996, 4250, 3669, 5776, 4389, 6233, 5373, 5619, 5829, 6189, 6549, 6909, 7269, 7629, 7411, 6535, 8709, 8851, 6997, 4251, 3670, 5777, 4390, 6234, 5374, 5620, 5830, 6190, 6550, 6910, 7270, 7630, 7412, 6536, 8710, 8852, 6998, 4252, 3671, 5778, 4391, 6235, 5375, 5621, 5831, 6191, 6551, 6911, 7271, 7631, 7413, 6537, 8711, 8853, 6999, 4253, 3672, 5779, 4392, 6236, 5376, 5622, 5832, 6192, 6552, 6912, 7272, 7632, 7414, 6538, 8712, 8854, 7000, 4254, 3673, 5780, 4393, 6237, 5377, 5623, 5833, 6193, 6553, 6913, 7273, 7633, 7415, 6539, 8713, 8855, 7001, 4255, 3674, 5781, 4394, 6238, 5378, 5624, 5834, 6194, 6554, 6914, 7274, 7634, 7416, 6540, 8714, 8856, 7002, 4256, 3675, 5782, 4395, 6239, 5379, 5625, 5835, 6195, 6555, 6915, 7275, 7635, 7417, 6541, 8715, 8857, 7003, 4257, 3676, 5783, 4396, 6240, 5380, 5626, 5836, 6196, 6556, 6916, 7276, 7636, 7418, 6542, 8716, 8858, 7004, 4258, 3677, 5784, 4397, 6241, 5381, 5627, 5837, 6197, 6557, 6917, 7277, 7637, 7419, 6543, 8717, 8859, 7005, 4259, 3678, 5785, 4398, 6242, 5382, 5628, 5838, 6198, 6558, 6918, 7278, 7638, 7420, 6544, 8718, 8860, 7006, 4260, 3679, 5786, 4399, 6243, 5383, 5629, 5839, 6199, 6559, 6919, 7279, 7639, 7421, 6545, 8719, 8861, 7007, 4261, 3680, 5787, 4400, 6244, 5384, 5630, 5840, 6200, 6560, 6920, 7280, 7640, 7422, 6546, 8720, 8862, 7008, 4262, 3681, 5788, 4401, 6245, 5385, 5631, 5841, 6201, 6561, 6921, 7281, 7641, 7423, 6547, 8721, 8863, 7009, 4263, 3682, 5789, 4402, 6246, 5386, 5632, 5842, 6202, 6562, 6922, 7282, 7642, 7424, 6548, 8722, 8864, 7010, 4264, 3683, 5790, 4403, 6247, 5387, 5633, 5843, 6203, 6563, 6923, 7283, 7643, 7425, 6549, 8723, 8865, 7011, 4265, 3684, 5791, 4404, 6248, 5388, 5634, 5844, 6204, 6564, 6924, 7284, 7644, 7426, 6550, 8724, 8866, 7012, 4266, 3685, 5792, 4405, 6249, 5389, 5635, 5845, 6205, 6565, 6925, 7285, 7645, 7427, 6551, 8725, 8867, 7013, 4267, 3686, 5793, 4406, 6250, 5390, 5636, 5846, 6206, 6566, 6926, 7286, 7646, 7428, 6552, 8726, 8868, 7014, 4268, 3687, 5794, 4407, 6251, 5391, 5637, 5847, 6207, 6567, 6927, 7287, 7647, 7429, 6553, 8727, 8869, 7015, 4269, 3688, 5795, 4408, 6252, 5392, 5638, 5848, 6208, 6568, 6928, 7288, 7648, 7430, 6554, 8728, 8870, 7016, 4270, 3689, 5796, 4409, 6253, 5393, 5639, 5849, 6209, 6569, 6929, 7289, 7649, 7431, 6555, 8729, 8871, 7017, 4271, 3690, 5797, 4410, 6254, 5394, 5640, 5850, 6210, 6570, 6930, 7290, 7650, 7432, 6556, 8730, 8872, 7018, 4272, 3691, 5798, 4411, 6255, 5395, 5641, 5851, 6211, 6571, 6931, 7291, 7651, 7433, 6557, 8731, 8873, 7019, 4273, 3692, 5799, 4412, 6256, 5396, 5642, 5852, 6212, 6572, 6932, 7292, 7652, 7434, 6558, 8732, 8874, 7020, 4274, 3693, 5800, 4413, 6257, 5397, 5643, 5853, 6213, 6573, 6933, 7293, 7653, 7435, 6559, 8733, 8875, 7021, 4275, 3694, 5801, 4414, 6258, 5398, 5644, 5854, 6214, 6574, 6934, 7294, 7654, 7436, 6560, 8734, 8876, 7022, 4276, 3695, 5802, 4415, 6259, 5399, 5645, 5855, 6215, 6575, 6935, 7295, 7655, 7437, 6561, 8735, 8877, 7023, 4277, 3696, 5803, 4416, 6260, 5400, 5646, 5856, 6216, 6576, 6936, 7296, 7656, 7438, 6562, 8736, 8878, 7024, 4278, 3697, 5804, 4417, 6261, 5137, 5647, 5857, 6217, 6577, 6937, 7297, 7657, 7439, 6563, 8737, 8879, 7025, 4279, 3698, 5805, 4418, 6262, 5138, 5648, 5858, 6218, 6578, 6938, 7298, 7658, 7440, 6564, 8738, 8880, 7026, 4280, 3699, 5806, 4419, 6263, 5139, 5649, 5859, 6219, 6579, 6939, 7299, 7659, 7441, 6565, 8739, 8881, 7027, 4281, 3700, 5807, 4420, 6264, 5140, 5650, 5860, 6220, 6580, 6940, 7300, 7660, 7442, 6566, 8740, 8882, 7028, 4282, 3701, 5808, 4421, 6265, 5141, 5651, 5861, 6221, 6581, 6941, 7301, 7661, 7443, 6567, 8741, 8883, 7029, 4283, 3702, 5809, 4422, 6266, 5142, 5652, 5862, 6222, 6582, 6942, 7302, 7662, 7444, 6568, 8742, 8884, 7030, 4284, 3703, 5810, 4423, 6267, 5143, 5653, 5863, 6223, 6583, 6943, 7303, 7663, 7445, 6569, 8743, 8885, 7031, 4285, 3704, 5811, 4424, 6268, 5144, 5654, 5864, 6224, 6584, 6944, 7304, 7664, 7446, 6570, 8744, 8886, 7032, 4286, 3705, 5812, 4425, 6269, 5145, 5655, 5865, 6225, 6585, 6945, 7305, 7665, 7447, 6571, 8745, 8887, 7033, 4287, 3706, 5813, 4426, 6270, 5146, 5656, 5866, 6226, 6586, 6946, 7306, 7666, 7448, 6572, 8746, 8888, 7034, 4288, 3707, 5814, 4427, 6271, 5147, 5657, 5867, 6227, 6587, 6947, 7307, 7667, 7449, 6573, 8747, 8889, 7035, 4289, 3708, 5815, 4428, 6272, 5148, 5658, 5868, 6228, 6588, 6948, 7308, 7668, 7450, 6574, 8748, 8890, 7036, 4290, 3709, 5816, 4429, 6273, 5149, 5659, 5869, 6229, 6589, 6949, 7309, 7669, 7451, 6575, 8749, 8891, 7037, 4291, 3710, 5817, 4430, 6274, 5150, 5660, 5870, 6230, 6590, 6950, 7310, 7670, 7452, 6576, 8750, 8892, 7038, 4292, 3711, 5818, 4431, 6275, 5151, 5661, 5871, 6231, 6591, 6951, 7311, 7671, 7453, 6577, 8751, 8893, 7039, 4293, 3712, 5819, 4432, 6276, 5152, 5662, 5872, 6232, 6592, 6952, 7312, 7672, 7454, 6578, 8752, 8894, 7040, 4294, 3713, 5820, 4433, 6277, 5153, 5663, 5873, 6233, 6593, 6953, 7313, 7673, 7455, 6579, 8753, 8895, 7041, 4295, 3714, 5821, 4434, 6278, 5154, 5664, 5874, 6234, 6594, 6954, 7314, 7674, 7456, 6580, 8754, 8896, 7042, 4296, 3715, 5822, 4435, 6279, 5155, 5665, 5875, 6235, 6595, 6955, 7315, 7675, 7457, 6581, 8755, 8897, 7043, 4297, 3716, 5823, 4436, 6280, 5156, 5666, 5876, 6236, 6596, 6956, 7316, 7676, 7458, 6582, 8756, 8898, 7044, 4298, 3717, 5824, 4437, 6281, 5157, 5667, 5877, 6237, 6597, 6957, 7317, 7677, 7459, 6583, 8757, 8899, 7045, 4299, 3718, 5825, 4438, 6282, 5158, 5668, 5878, 6238, 6598, 6958, 7318, 7678, 7460, 6584, 8758, 8900, 7046, 4300, 3719, 5826, 4439, 6283, 5159, 5669, 5879, 6239, 6599, 6959, 7319, 7679, 7461, 6585, 8759, 8901, 7047, 4301, 3720, 5827, 4440, 6284, 5160, 5670, 5880, 6240, 6600, 6960, 7320, 7680, 7462, 6586, 8760, 8902, 7048, 4302, 3721, 5828, 4441, 6285, 5161, 5671, 5881, 6241, 6601, 6961, 7321, 7681, 7463, 6587, 8761, 8903, 7049, 4303, 3722, 5829, 4442, 6286, 5162, 5672, 5882, 6242, 6602, 6962, 7322, 7682, 7464, 6588, 8762, 8904, 7050, 4304, 3723, 5830, 4443, 6287, 5163, 5673, 5883, 6243, 6603, 6963, 7323, 7683, 7465, 6589, 8763, 8905, 7051, 4305, 3724, 5831, 4444, 6288, 5164, 5674, 5884, 6244, 6604, 6964, 7324, 7684, 7466, 6590, 8764, 8906, 7052, 4306, 3725, 5832, 4445, 6289, 5165, 5675, 5885, 6245, 6605, 6965, 7325, 7685, 7467, 6591, 8765, 8907, 7053, 4307, 3726, 5833, 4446, 6290, 5166, 5676, 5886, 6246, 6606, 6966, 7326, 7686, 7468, 6592, 8766, 8908, 7054, 4308, 3727, 5834, 4447, 6291, 5167, 5677, 5887, 6247, 6607, 6967, 7327, 7687, 7469, 6593, 8767, 8909, 7055, 4309, 3728, 5835, 4448, 6292, 5168, 5678, 5888, 6248, 6608, 6968, 7328, 7688, 7470, 6594, 8768, 8910, 7056, 4310, 3729, 5836, 4449, 6293, 5169, 5679, 5889, 6249, 6609, 6969, 7329, 7689, 7471, 6595, 8769, 8911, 7057, 4311, 3730, 5837, 4450, 6294, 5170, 5680, 5890, 6250, 6610, 6970, 7330, 7690, 7472, 6596, 8770, 8912, 7058, 4312, 3731, 5838, 4451, 6295, 5171, 5681, 5891, 6251, 6611, 6971, 7331, 7691, 7473, 6597, 8771, 8913, 7059, 4313, 3732, 5839, 4452, 6296, 5172, 5682, 5892, 6252, 6612, 6972, 7332, 7692, 7474, 6598, 8772, 8914, 7060, 4314, 3733, 5840, 4453, 6297, 5173, 5683, 5893, 6253, 6613, 6973, 7333, 7693, 7475, 6599, 8773, 8915, 7061, 4315, 3734, 5841, 4454, 6298, 5174, 5684, 5894, 6254, 6614, 6974, 7334, 7694, 7476, 6600, 8774, 8916, 7062, 4316, 3735, 5842, 4455, 6299, 5175, 5685, 5895, 6255, 6615, 6975, 7335, 7695, 7477, 6601, 8775, 8917, 7063, 4317, 3736, 5843, 4456, 6300, 5176, 5686, 5896, 6256, 6616, 6976, 7336, 7696, 7478, 6602, 8776, 8918, 7064, 4318, 3737, 5844, 4457, 6301, 5177, 5687, 5897, 6257, 6617, 6977, 7337, 7697, 7479, 6603, 8777, 8919, 7065, 4319, 3738, 5845, 4458, 6302, 5178, 5688, 5898, 6258, 6618, 6978, 7338, 7698, 7480, 6604, 8778, 8920, 7066, 4320, 3739, 5846, 4459, 6303, 5179, 5689, 5899, 6259, 6619, 6979, 7339, 7699, 7481, 6605, 8779, 8921, 7067, 3961, 3740, 5847, 4460, 6304, 5180, 5690, 5900, 6260, 6620, 6980, 7340, 7700, 7482, 6606, 8780, 8922, 7068, 3962, 3741, 5848, 4461, 6305, 5181, 5691, 5901, 6261, 6621, 6981, 7341, 7701, 7483, 6607, 8781, 8923, 7069, 3963, 3742, 5849, 4462, 6306, 5182, 5692, 5902, 6262, 6622, 6982, 7342, 7702, 7484, 6608, 8782, 8924, 7070, 3964, 3743, 5850, 4463, 6307, 5183, 5693, 5903, 6263, 6623, 6983, 7343, 7703, 7485, 6609, 8783, 8925, 7071, 3965, 3744, 5851, 4464, 6308, 5184, 5694, 5904, 6264, 6624, 6984, 7344, 7704, 7486, 6610, 8784, 8926, 7072, 3966, 3745, 5852, 4465, 6309, 5185, 5695, 5905, 6265, 6625, 6985, 7345, 7705, 7487, 6611, 8785, 8927, 7073, 3967, 3746, 5853, 4466, 6310, 5186, 5696, 5906, 6266, 6626, 6986, 7346, 7706, 7488, 6612, 8786, 8928, 7074, 3968, 3747, 5854, 4467, 6311, 5187, 5697, 5907, 6267, 6627, 6987, 7347, 7707, 7489, 6613, 8787, 8929, 7075, 3969, 3748, 5855, 4468, 6312, 5188, 5698, 5908, 6268, 6628, 6988, 7348, 7708, 7490, 6614, 8788, 8930, 7076, 3970, 3749, 5856, 4469, 6313, 5189, 5699, 5909, 6269, 6629, 6989, 7349, 7709, 7491, 6615, 8789, 8931, 7077, 3971, 3750, 5857, 4470, 6314, 5190, 5700, 5910, 6270, 6630, 6990, 7350, 7710, 7492, 6616, 8790, 8932, 7078, 3972, 3751, 5858, 4471, 6315, 5191, 5701, 5911, 6271, 6631, 6991, 7351, 7711, 7493, 6617, 8791, 8933, 7079, 3973, 3752, 5859, 4472, 6316, 5192, 5702, 5912, 6272, 6632, 6992, 7352, 7712, 7494, 6618, 8792, 8934, 7080, 3974, 3753, 5860, 4473, 6317, 5193, 5703, 5913, 6273, 6633, 6993, 7353, 7713, 7495, 6619, 8793, 8935, 7081, 3975, 3754, 5861, 4474, 6318, 5194, 5704, 5914, 6274, 6634, 6994, 7354, 7714, 7496, 6620, 8794, 8936, 7082, 3976, 3755, 5862, 4475, 6319, 5195, 5705, 5915, 6275, 6635, 6995, 7355, 7715, 7497, 6621, 8795, 8937, 7083, 3977, 3756, 5863, 4476, 6320, 5196, 5706, 5916, 6276, 6636, 6996, 7356, 7716, 7498, 6622, 8796, 8938, 7084, 3978, 3757, 5864, 4477, 6321, 5197, 5707, 5917, 6277, 6637, 6997, 7357, 7717, 7499, 6623, 8797, 8939, 7085, 3979, 3758, 5865, 4478, 6322, 5198, 5708, 5918, 6278, 6638, 6998, 7358, 7718, 7500, 6624, 8798, 8940, 7086, 3980, 3759, 5866, 4479, 6323, 5199, 5709, 5919, 6279, 6639, 6999, 7359, 7719, 7501, 6625, 8799, 8941, 7087, 3981, 3760, 5867, 4480, 6324, 5200, 5710, 5920, 6280, 6640, 7000, 7360, 7720, 7502, 6626, 8800, 8942, 7088, 3982, 3761, 5868, 4481, 6325, 5201, 5711, 5921, 6281, 6641, 7001, 7361, 7721, 7503, 6627, 8801, 8943, 7089, 3983, 3762, 5869, 4482, 6326, 5202, 5712, 5922, 6282, 6642, 7002, 7362, 7722, 7504, 6628, 8802, 8944, 7090, 3984, 3763, 5870, 4483, 6327, 5203, 5713, 5923, 6283, 6643, 7003, 7363, 7723, 7505, 6629, 8803, 8945, 7091, 3985, 3764, 5871, 4484, 6328, 5204, 5714, 5924, 6284, 6644, 7004, 7364, 7724, 7506, 6630, 8804, 8946, 7092, 3986, 3765, 5872, 4485, 6329, 5205, 5715, 5925, 6285, 6645, 7005, 7365, 7725, 7507, 6631, 8805, 8947, 7093, 3987, 3766, 5873, 4486, 6330, 5206, 5716, 5926, 6286, 6646, 7006, 7366, 7726, 7508, 6632, 8806, 8948, 7094, 3988, 3767, 5874, 4487, 6331, 5207, 5717, 5927, 6287, 6647, 7007, 7367, 7727, 7509, 6633, 8807, 8949, 7095, 3989, 3768, 5875, 4488, 6332, 5208, 5718, 5928, 6288, 6648, 7008, 7368, 7728, 7510, 6634, 8808, 8950, 7096, 3990, 3769, 5876, 4489, 6333, 5209, 5719, 5929, 6289, 6649, 7009, 7369, 7729, 7511, 6635, 8809, 8951, 7097, 3991, 3770, 5877, 4490, 6334, 5210, 5720, 5930, 6290, 6650, 7010, 7370, 7730, 7512, 6636, 8810, 8952, 7098, 3992, 3771, 5878, 4491, 6335, 5211, 5721, 5931, 6291, 6651, 7011, 7371, 7731, 7513, 6637, 8811, 8953, 7099, 3993, 3772, 5879, 4492, 6336, 5212, 5722, 5932, 6292, 6652, 7012, 7372, 7732, 7514, 6638, 8812, 8954, 7100, 3994, 3773, 5880, 4493, 6337, 5213, 5723, 5933, 6293, 6653, 7013, 7373, 7733, 7515, 6639, 8813, 8955, 7101, 3995, 3774, 5881, 4494, 6338, 5214, 5724, 5934, 6294, 6654, 7014, 7374, 7734, 7516, 6640, 8814, 8956, 7102, 3996, 3775, 5882, 4495, 6339, 5215, 5725, 5935, 6295, 6655, 7015, 7375, 7735, 7517, 6641, 8815, 8957, 7103, 3997, 3776, 5883, 4496, 6340, 5216, 5726, 5936, 6296, 6656, 7016, 7376, 7736, 7518, 6642, 8816, 8958, 7104, 3998, 3777, 5884, 4497, 6341, 5217, 5727, 5937, 6297, 6657, 7017, 7377, 7737, 7519, 6643, 8817, 8959, 7105, 3999, 3778, 5885, 4498, 6342, 5218, 5728, 5938, 6298, 6658, 7018, 7378, 7738, 7520, 6644, 8818, 8960, 7106, 4000, 3779, 5886, 4499, 6343, 5219, 5729, 5939, 6299, 6659, 7019, 7379, 7739, 7521, 6645, 8819, 8961, 7107, 4001, 3780, 5887, 4500, 6344, 5220, 5730, 5940, 6300, 6660, 7020, 7380, 7740, 7522, 6646, 8820, 8962, 7108, 4002, 3781, 5888, 4501, 6345, 5221, 5731, 5941, 6301, 6661, 7021, 7381, 7741, 7523, 6647, 8821, 8963, 7109, 4003, 3782, 5889, 4502, 6346, 5222, 5732, 5942, 6302, 6662, 7022, 7382, 7742, 7524, 6648, 8822, 8964, 7110, 4004, 3783, 5890, 4503, 6347, 5223, 5733, 5943, 6303, 6663, 7023, 7383, 7743, 7525, 6649, 8823, 8965, 7111, 4005, 3784, 5891, 4504, 6348, 5224, 5734, 5944, 6304, 6664, 7024, 7384, 7744, 7526, 6650, 8824, 8966, 7112, 4006, 3785, 5892, 4505, 6349, 5225, 5735, 5945, 6305, 6665, 7025, 7385, 7745, 7527, 6651, 8825, 8967, 7113, 4007, 3786, 5893, 4506, 6350, 5226, 5736, 5946, 6306, 6666, 7026, 7386, 7746, 7528, 6652, 8826, 8968, 7114, 4008, 3787, 5894, 4507, 6351, 5227, 5737, 5947, 6307, 6667, 7027, 7387, 7747, 7529, 6653, 8827, 8969, 7115, 4009, 3788, 5895, 4508, 6352, 5228, 5738, 5948, 6308, 6668, 7028, 7388, 7748, 7530, 6654, 8828, 8970, 7116, 4010, 3789, 5896, 4509, 6353, 5229, 5739, 5949, 6309, 6669, 7029, 7389, 7749, 7531, 6655, 8829, 8971, 7117, 4011, 3790, 5897, 4510, 6354, 5230, 5740, 5950, 6310, 6670, 7030, 7390, 7750, 7532, 6656, 8830, 8972, 7118, 4012, 3791, 5898, 4511, 6355, 5231, 5741, 5951, 6311, 6671, 7031, 7391, 7751, 7533, 6657, 8831, 8973, 7119, 4013, 3792, 5899, 4512, 6356, 5232, 5742, 5952, 6312, 6672, 7032, 7392, 7752, 7534, 6658, 8832, 8974, 7120, 4014, 3793, 5900, 4513, 6357, 5233, 5743, 5953, 6313, 6673, 7033, 7393, 7753, 7535, 6659, 8833, 8975, 7121, 4015, 3794, 5901, 4514, 6358, 5234, 5744, 5954, 6314, 6674, 7034, 7394, 7754, 7536, 6660, 8834, 8976, 7122, 4016, 3795, 5902, 4515, 6359, 5235, 5745, 5955, 6315, 6675, 7035, 7395, 7755, 7537, 6661, 8835, 8977, 7123, 4017, 3796, 5903, 4516, 6360, 5236, 5746, 5956, 6316, 6676, 7036, 7396, 7756, 7538, 6662, 8836, 8978, 7124, 4018, 3797, 5904, 4517, 6361, 5237, 5747, 5957, 6317, 6677, 7037, 7397, 7757, 7539, 6663, 8837, 8979, 7125, 4019, 3798, 5905, 4518, 6362, 5238, 5748, 5958, 6318, 6678, 7038, 7398, 7758, 7540, 6664, 8838, 8980, 7126, 4020, 3799, 5906, 4519, 6363, 5239, 5749, 5959, 6319, 6679, 7039, 7399, 7759, 7541, 6665, 8839, 8981, 7127, 4021, 3800, 5907, 4520, 6364, 5240, 5750, 5960, 6320, 6680, 7040, 7400, 7760, 7542, 6666, 8840, 8982, 7128, 4022, 3801, 5908, 4521, 6365, 5241, 5751, 5961, 6321, 6681, 7041, 7401, 7761, 7543, 6667, 8841, 8983, 7129, 4023, 3802, 5909, 4522, 6366, 5242, 5752, 5962, 6322, 6682, 7042, 7402, 7762, 7544, 6668, 8842, 8984, 7130, 4024, 3803, 5910, 4523, 6367, 5243, 5753, 5963, 6323, 6683, 7043, 7403, 7763, 7545, 6669, 8843, 8985, 7131, 4025, 3804, 5911, 4524, 6368, 5244, 5754, 5964, 6324, 6684, 7044, 7404, 7764, 7546, 6670, 8844, 8986, 7132, 4026, 3805, 5912, 4525, 6369, 5245, 5755, 5965, 6325, 6685, 7045, 7405, 7765, 7547, 6671, 8845, 8987, 7133, 4027, 3806, 5913, 4526, 6370, 5246, 5756, 5966, 6326, 6686, 7046, 7406, 7766, 7548, 6672, 8846, 8988, 7134, 4028, 3807, 5914, 4527, 6371, 5247, 5757, 5967, 6327, 6687, 7047, 7407, 7767, 7549, 6673, 8847, 8989, 7135, 4029, 3808, 5915, 4528, 6372, 5248, 5758, 5968, 6328, 6688, 7048, 7408, 7768, 7550, 6674, 8848, 8990, 7136, 4030, 3809, 5916, 4529, 6373, 5249, 5759, 5969, 6329, 6689, 7049, 7409, 7769, 7551, 6675, 8849, 8991, 7137, 4031, 3810, 5917, 4530, 6374, 5250, 5760, 5970, 6330, 6690, 7050, 7410, 7770, 7552, 6676, 8850, 8992, 7138, 4032, 3811, 5918, 4531, 6375, 5251, 5611, 5971, 6331, 6691, 7051, 7411, 7771, 7553, 6677, 8851, 8993, 7139, 4033, 3812, 5919, 4532, 6376, 5252, 5612, 5972, 6332, 6692, 7052, 7412, 7772, 7554, 6678, 8852, 8994, 7140, 4034, 3813, 5920, 4533, 6377, 5253, 5613, 5973, 6333, 6693, 7053, 7413, 7773, 7555, 6679, 8853, 8995, 7141, 4035, 3814, 5921, 4534, 6378, 5254, 5614, 5974, 6334, 6694, 7054, 7414, 7774, 7556, 6680, 8854, 8996, 7142, 4036, 3815, 5922, 4535, 6379, 5255, 5615, 5975, 6335, 6695, 7055, 7415, 7775, 7557, 6681, 8855, 8997, 7143, 4037, 3816, 5923, 4536, 6380, 5256, 5616, 5976, 6336, 6696, 7056, 7416, 7776, 7558, 6682, 8856, 8998, 7144, 4038, 3817, 5924, 4537, 6381, 5257, 5617, 5977, 6337, 6697, 7057, 7417, 7777, 7559, 6683, 8857, 8999, 7145, 4039, 3818, 5925, 4538, 6382, 5258, 5618, 5978, 6338, 6698, 7058, 7418, 7778, 7560, 6684, 8858, 9000, 7146, 4040, 3819, 5926, 4539, 6383, 5259, 5619, 5979, 6339, 6699, 7059, 7419, 7779, 7201, 6685, 8859, 8641, 7147, 4041, 3820, 5927, 4540, 6384, 5260, 5620, 5980, 6340, 6700, 7060, 7420, 7780, 7202, 6686, 8860, 8642, 7148, 4042, 3821, 5928, 4541, 6385, 5261, 5621, 5981, 6341, 6701, 7061, 7421, 7781, 7203, 6687, 8861, 8643, 7149, 4043, 3822, 5929, 4542, 6386, 5262, 5622, 5982, 6342, 6702, 7062, 7422, 7782, 7204, 6688, 8862, 8644, 7150, 4044, 3823, 5930, 4543, 6387, 5263, 5623, 5983, 6343, 6703, 7063, 7423, 7783, 7205, 6689, 8863, 8645, 7151, 4045, 3824, 5931, 4544, 6388, 5264, 5624, 5984, 6344, 6704, 7064, 7424, 7784, 7206, 6690, 8864, 8646, 7152, 4046, 3825, 5932, 4545, 6389, 5265, 5625, 5985, 6345, 6705, 7065, 7425, 7785, 7207, 6691, 8865, 8647, 7153, 4047, 3826, 5933, 4546, 6390, 5266, 5626, 5986, 6346, 6706, 7066, 7426, 7786, 7208, 6692, 8866, 8648, 7154, 4048, 3827, 5934, 4547, 6391, 5267, 5627, 5987, 6347, 6707, 7067, 7427, 7787, 7209, 6693, 8867, 8649, 7155, 4049, 3828, 5935, 4548, 6392, 5268, 5628, 5988, 6348, 6708, 7068, 7428, 7788, 7210, 6694, 8868, 8650, 7156, 4050, 3829, 5936, 4549, 6393, 5269, 5629, 5989, 6349, 6709, 7069, 7429, 7789, 7211, 6695, 8869, 8651, 7157, 4051, 3830, 5937, 4550, 6394, 5270, 5630, 5990, 6350, 6710, 7070, 7430, 7790, 7212, 6696, 8870, 8652, 7158, 4052, 3831, 5938, 4551, 6395, 5271, 5631, 5991, 6351, 6711, 7071, 7431, 7791, 7213, 6697, 8871, 8653, 7159, 4053, 3832, 5939, 4552, 6396, 5272, 5632, 5992, 6352, 6712, 7072, 7432, 7792, 7214, 6698, 8872, 8654, 7160, 4054, 3833, 5940, 4553, 6397, 5273, 5633, 5993, 6353, 6713, 7073, 7433, 7793, 7215, 6699, 8873, 8655, 7161, 4055, 3834, 5941, 4554, 6398, 5274, 5634, 5994, 6354, 6714, 7074, 7434, 7794, 7216, 6700, 8874, 8656, 7162, 4056, 3835, 5942, 4555, 6399, 5275, 5635, 5995, 6355, 6715, 7075, 7435, 7795, 7217, 6701, 8875, 8657, 7163, 4057, 3836, 5943, 4556, 6400, 5276, 5636, 5996, 6356, 6716, 7076, 7436, 7796, 7218, 6702, 8876, 8658, 7164, 4058, 3837, 5944, 4557, 6401, 5277, 5637, 5997, 6357, 6717, 7077, 7437, 7797, 7219, 6703, 8877, 8659, 7165, 4059, 3838, 5945, 4558, 6402, 5278, 5638, 5998, 6358, 6718, 7078, 7438, 7798, 7220, 6704, 8878, 8660, 7166, 4060, 3839, 5946, 4559, 6403, 5279, 5639, 5999, 6359, 6719, 7079, 7439, 7799, 7221, 6705, 8879, 8661, 7167, 4061, 3840, 5947, 4560, 6404, 5280, 5640, 6000, 6360, 6720, 7080, 7440, 7800, 7222, 6706, 8880, 8662, 7168, 4062, 3841, 5948, 4561, 6405, 5281, 5641, 6001, 6361, 6721, 7081, 7441, 7801, 7223, 6707, 8881, 8663, 7169, 4063, 3842, 5949, 4562, 6406, 5282, 5642, 6002, 6362, 6722, 7082, 7442, 7802, 7224, 6708, 8882, 8664, 7170, 4064, 3843, 5950, 4563, 6407, 5283, 5643, 6003, 6363, 6723, 7083, 7443, 7803, 7225, 6709, 8883, 8665, 7171, 4065, 3844, 5951, 4564, 6408, 5284, 5644, 6004, 6364, 6724, 7084, 7444, 7804, 7226, 6710, 8884, 8666, 7172, 4066, 3845, 5952, 4565, 6409, 5285, 5645, 6005, 6365, 6725, 7085, 7445, 7805, 7227, 6711, 8885, 8667, 7173, 4067, 3846, 5953, 4566, 6410, 5286, 5646, 6006, 6366, 6726, 7086, 7446, 7806, 7228, 6712, 8886, 8668, 7174, 4068, 3847, 5954, 4567, 6411, 5287, 5647, 6007, 6367, 6727, 7087, 7447, 7807, 7229, 6713, 8887, 8669, 7175, 4069, 3848, 5955, 4568, 6412, 5288, 5648, 6008, 6368, 6728, 7088, 7448, 7808, 7230, 6714, 8888, 8670, 7176, 4070, 3849, 5956, 4569, 6413, 5289, 5649, 6009, 6369, 6729, 7089, 7449, 7809, 7231, 6715, 8889, 8671, 7177, 4071, 3850, 5957, 4570, 6414, 5290, 5650, 6010, 6370, 6730, 7090, 7450, 7810, 7232, 6716, 8890, 8672, 7178, 4072, 3851, 5958, 4571, 6415, 5291, 5651, 6011, 6371, 6731, 7091, 7451, 7811, 7233, 6717, 8891, 8673, 7179, 4073, 3852, 5959, 4572, 6416, 5292, 5652, 6012, 6372, 6732, 7092, 7452, 7812, 7234, 6718, 8892, 8674, 7180, 4074, 3853, 5960, 4573, 6417, 5293, 5653, 6013, 6373, 6733, 7093, 7453, 7813, 7235, 6719, 8893, 8675, 7181, 4075, 3854, 5961, 4574, 6418, 5294, 5654, 6014, 6374, 6734, 7094, 7454, 7814, 7236, 6720, 8894, 8676, 7182, 4076, 3855, 5962, 4575, 6419, 5295, 5655, 6015, 6375, 6735, 7095, 7455, 7815, 7237, 6721, 8895, 8677, 7183, 4077, 3856, 5963, 4576, 6420, 5296, 5656, 6016, 6376, 6736, 7096, 7456, 7816, 7238, 6722, 8896, 8678, 7184, 4078, 3857, 5964, 4577, 6421, 5297, 5657, 6017, 6377, 6737, 7097, 7457, 7817, 7239, 6723, 8897, 8679, 7185, 4079, 3858, 5965, 4578, 6422, 5298, 5658, 6018, 6378, 6738, 7098, 7458, 7818, 7240, 6724, 8898, 8680, 7186, 4080, 3859, 5966, 4579, 6423, 5299, 5659, 6019, 6379, 6739, 7099, 7459, 7819, 7241, 6725, 8899, 8681, 7187, 4081, 3860, 5967, 4580, 6424, 5300, 5660, 6020, 6380, 6740, 7100, 7460, 7820, 7242, 6726, 8900, 8682, 7188, 4082, 3861, 5968, 4581, 6425, 5301, 5661, 6021, 6381, 6741, 7101, 7461, 7821, 7243, 6727, 8901, 8683, 7189, 4083, 3862, 5969, 4582, 6426, 5302, 5662, 6022, 6382, 6742, 7102, 7462, 7822, 7244, 6728, 8902, 8684, 7190, 4084, 3863, 5970, 4583, 6427, 5303, 5663, 6023, 6383, 6743, 7103, 7463, 7823, 7245, 6729, 8903, 8685, 7191, 4085, 3864, 5971, 4584, 6428, 5304, 5664, 6024, 6384, 6744, 7104, 7464, 7824, 7246, 6730, 8904, 8686, 7192, 4086, 3865, 5972, 4585, 6429, 5305, 5665, 6025, 6385, 6745, 7105, 7201, 7825, 7247, 6731, 8905, 8687, 7193, 4087, 3866, 5973, 4586, 6430, 5306, 5666, 6026, 6386, 6746, 7106, 7202, 7826, 7248, 6732, 8906, 8688, 7194, 4088, 3867, 5974, 4587, 6431, 5307, 5667, 6027, 6387, 6747, 7107, 7203, 7827, 7249, 6733, 8907, 8689, 7195, 4089, 3868, 5975, 4588, 6432, 5308, 5668, 6028, 6388, 6748, 7108, 7204, 7828, 7250, 6734, 8908, 8690, 7196, 4090, 3869, 5976, 4589, 6433, 5309, 5669, 6029, 6389, 6749, 7109, 7205, 7829, 7251, 6735, 8909, 8691, 7197, 4091, 3870, 5977, 4590, 6434, 5310, 5670, 6030, 6390, 6750, 7110, 7206, 7830, 7252, 6736, 8910, 8692, 7198, 4092, 3871, 5978, 4591, 6435, 5311, 5671, 6031, 6391, 6751, 7111, 7207, 7831, 7253, 6737, 8911, 8693, 7199, 4093, 3872, 5979, 4592, 6436, 5312, 5672, 6032, 6392, 6752, 7112, 7208, 7832, 7254, 6738, 8912, 8694, 7200, 4094, 3873, 5980, 4593, 6437, 5313, 5673, 6033, 6393, 6753, 7113, 7209, 7833, 7255, 6739, 8913, 8695, 6841, 4095, 3874, 5981, 4594, 6438, 5314, 5674, 6034, 6394, 6754, 7114, 7210, 7834, 7256, 6740, 8914, 8696, 6842, 4096, 3875, 5982, 4595, 6439, 5315, 5675, 6035, 6395, 6755, 7115, 7211, 7835, 7257, 6741, 8915, 8697, 6843, 4097, 3876, 5983, 4596, 6440, 5316, 5676, 6036, 6396, 6756, 7116, 7212, 7836, 7258, 6742, 8916, 8698, 6844, 4098, 3877, 5984, 4597, 6441, 5317, 5677, 6037, 6397, 6757, 7117, 7213, 7837, 7259, 6743, 8917, 8699, 6845, 4099, 3878, 5985, 4598, 6442, 5318, 5678, 6038, 6398, 6758, 7118, 7214, 7838, 7260, 6744, 8918, 8700, 6846, 4100, 3879, 5986, 4599, 6443, 5319, 5679, 6039, 6399, 6759, 7119, 7215, 7839, 7261, 6745, 8919, 8701, 6847, 4101, 3880, 5987, 4600, 6444, 5320, 5680, 6040, 6400, 6760, 7120, 7216, 7840, 7262, 6746, 8920, 8702, 6848, 4102, 3881, 5988, 4601, 6445, 5321, 5681, 6041, 6401, 6761, 7121, 7217, 7841, 7263, 6747, 8921, 8703, 6849, 4103, 3882, 5989, 4602, 6446, 5322, 5682, 6042, 6402, 6762, 7122, 7218, 7842, 7264, 6748, 8922, 8704, 6850, 4104, 3883, 5990, 4603, 6447, 5323, 5683, 6043, 6403, 6763, 7123, 7219, 7843, 7265, 6749, 8923, 8705, 6851, 4105, 3884, 5991, 4604, 6448, 5324, 5684, 6044, 6404, 6764, 7124, 7220, 7844, 7266, 6750, 8924, 8706, 6852, 4106, 3885, 5992, 4605, 6449, 5325, 5685, 6045, 6405, 6765, 7125, 7221, 7845, 7267, 6751, 8925, 8707, 6853, 4107, 3886, 5993, 4606, 6450, 5326, 5686, 6046, 6406, 6766, 7126, 7222, 7846, 7268, 6752, 8926, 8708, 6854, 4108, 3887, 5994, 4607, 6451, 5327, 5687, 6047, 6407, 6767, 7127, 7223, 7847, 7269, 6753, 8927, 8709, 6855, 4109, 3888, 5995, 4608, 6452, 5328, 5688, 6048, 6408, 6768, 7128, 7224, 7848, 7270, 6754, 8928, 8710, 6856, 4110, 3889, 5996, 4609, 6453, 5329, 5689, 6049, 6409, 6769, 7129, 7225, 7849, 7271, 6755, 8929, 8711, 6857, 4111, 3890, 5997, 4610, 6454, 5330, 5690, 6050, 6410, 6770, 7130, 7226, 7850, 7272, 6756, 8930, 8712, 6858, 4112, 3891, 5998, 4611, 6455, 5331, 5691, 6051, 6411, 6771, 7131, 7227, 7851, 7273, 6757, 8931, 8713, 6859, 4113, 3892, 5999, 4612, 6456, 5332, 5692, 6052, 6412, 6772, 7132, 7228, 7852, 7274, 6758, 8932, 8714, 6860, 4114, 3893, 6000, 4613, 6457, 5333, 5693, 6053, 6413, 6773, 7133, 7229, 7853, 7275, 6759, 8933, 8715, 6861, 4115, 3894, 6001, 4614, 6458, 5334, 5694, 6054, 6414, 6774, 7134, 7230, 7854, 7276, 6760, 8934, 8716, 6862, 4116, 3895, 6002, 4615, 6459, 5335, 5695, 6055, 6415, 6775, 7135, 7231, 7855, 7277, 6761, 8935, 8717, 6863, 4117, 3896, 6003, 4616, 6460, 5336, 5696, 6056, 6416, 6776, 7136, 7232, 7856, 7278, 6762, 8936, 8718, 6864, 4118, 3897, 6004, 4617, 6461, 5337, 5697, 6057, 6417, 6777, 7137, 7233, 7857, 7279, 6763, 8937, 8719, 6865, 4119, 3898, 6005, 4618, 6462, 5338, 5698, 6058, 6418, 6778, 7138, 7234, 7858, 7280, 6764, 8938, 8720, 6866, 4120, 3899, 6006, 4619, 6463, 5339, 5699, 6059, 6419, 6779, 7139, 7235, 7859, 7281, 6765, 8939, 8721, 6867, 4121, 3900, 6007, 4620, 6464, 5340, 5700, 6060, 6420, 6780, 7140, 7236, 7860, 7282, 6766, 8940, 8722, 6868, 4122, 3901, 6008, 4621, 6465, 5341, 5701, 6061, 6421, 6781, 7141, 7237, 7861, 7283, 6767, 8941, 8723, 6869, 4123, 3902, 6009, 4622, 6466, 5342, 5702, 6062, 6422, 6782, 7142, 7238, 7862, 7284, 6768, 8942, 8724, 6870, 4124, 3903, 6010, 4623, 6467, 5343, 5703, 6063, 6423, 6783, 7143, 7239, 7863, 7285, 6769, 8943, 8725, 6871, 4125, 3904, 6011, 4624, 6468, 5344, 5704, 6064, 6424, 6784, 7144, 7240, 7864, 7286, 6770, 8944, 8726, 6872, 4126, 3905, 6012, 4625, 6469, 5345, 5705, 6065, 6425, 6785, 7145, 7241, 7865, 7287, 6771, 8945, 8727, 6873, 4127, 3906, 6013, 4626, 6470, 5346, 5706, 6066, 6426, 6786, 7146, 7242, 7866, 7288, 6772, 8946, 8728, 6874, 4128, 3907, 6014, 4627, 6471, 5347, 5707, 6067, 6427, 6787, 7147, 7243, 7867, 7289, 6773, 8947, 8729, 6875, 4129, 3908, 6015, 4628, 6472, 5348, 5708, 6068, 6428, 6788, 7148, 7244, 7868, 7290, 6774, 8948, 8730, 6876, 4130, 3909, 6016, 4629, 6473, 5349, 5709, 6069, 6429, 6789, 7149, 7245, 7869, 7291, 6775, 8949, 8731, 6877, 4131, 3910, 6017, 4630, 6474, 5350, 5710, 6070, 6430, 6790, 7150, 7246, 7870, 7292, 6776, 8950, 8732, 6878, 4132, 3911, 6018, 4631, 6475, 5351, 5711, 6071, 6431, 6791, 7151, 7247, 7871, 7293, 6777, 8951, 8733, 6879, 4133, 3912, 6019, 4632, 6476, 5352, 5712, 6072, 6432, 6792, 7152, 7248, 7872, 7294, 6778, 8952, 8734, 6880, 4134, 3913, 6020, 4633, 6477, 5353, 5713, 6073, 6433, 6793, 7153, 7249, 7873, 7295, 6779, 8953, 8735, 6881, 4135, 3914, 6021, 4634, 6478, 5354, 5714, 6074, 6434, 6794, 7154, 7250, 7874, 7296, 6780, 8954, 8736, 6882, 4136, 3915, 6022, 4635, 6479, 5355, 5715, 6075, 6435, 6795, 7155, 7251, 7875, 7297, 6781, 8955, 8737, 6883, 4137, 3916, 6023, 4636, 6480, 5356, 5716, 6076, 6436, 6796, 7156, 7252, 7876, 7298, 6782, 8956, 8738, 6884, 4138, 3917, 6024, 4637, 6121, 5357, 5717, 6077, 6437, 6797, 7157, 7253, 7877, 7299, 6783, 8957, 8739, 6885, 4139, 3918, 6025, 4638, 6122, 5358, 5718, 6078, 6438, 6798, 7158, 7254, 7878, 7300, 6784, 8958, 8740, 6886, 4140, 3919, 6026, 4639, 6123, 5359, 5719, 6079, 6439, 6799, 7159, 7255, 7879, 7301, 6785, 8959, 8741, 6887, 4141, 3920, 6027, 4640, 6124, 5360, 5720, 6080, 6440, 6800, 7160, 7256, 7880, 7302, 6786, 8960, 8742, 6888, 4142, 3921, 6028, 4641, 6125, 5361, 5721, 6081, 6441, 6801, 7161, 7257, 7881, 7303, 6787, 8961, 8743, 6889, 4143, 3922, 6029, 4642, 6126, 5362, 5722, 6082, 6442, 6802, 7162, 7258, 7882, 7304, 6788, 8962, 8744, 6890, 4144, 3923, 6030, 4643, 6127, 5363, 5723, 6083, 6443, 6803, 7163, 7259, 7883, 7305, 6789, 8963, 8745, 6891, 4145, 3924, 6031, 4644, 6128, 5364, 5724, 6084, 6444, 6804, 7164, 7260, 7884, 7306, 6790, 8964, 8746, 6892, 4146, 3925, 6032, 4645, 6129, 5365, 5725, 6085, 6445, 6805, 7165, 7261, 7885, 7307, 6791, 8965, 8747, 6893, 4147, 3926, 6033, 4646, 6130, 5366, 5726, 6086, 6446, 6806, 7166, 7262, 7886, 7308, 6792, 8966, 8748, 6894, 4148, 3927, 6034, 4647, 6131, 5367, 5727, 6087, 6447, 6807, 7167, 7263, 7887, 7309, 6793, 8967, 8749, 6895, 4149, 3928, 6035, 4648, 6132, 5368, 5728, 6088, 6448, 6808, 7168, 7264, 7888, 7310, 6794, 8968, 8750, 6896, 4150, 3929, 6036, 4649, 6133, 5369, 5729, 6089, 6449, 6809, 7169, 7265, 7889, 7311, 6795, 8969, 8751, 6897, 4151, 3930, 6037, 4650, 6134, 5370, 5730, 6090, 6450, 6810, 7170, 7266, 7890, 7312, 6796, 8970, 8752, 6898, 4152, 3931, 6038, 4651, 6135, 5371, 5731, 6091, 6451, 6811, 7171, 7267, 7891, 7313, 6797, 8971, 8753, 6899, 4153, 3932, 6039, 4652, 6136, 5372, 5732, 6092, 6452, 6812, 7172, 7268, 7892, 7314, 6798, 8972, 8754, 6900, 4154, 3933, 6040, 4653, 6137, 5373, 5733, 6093, 6453, 6813, 7173, 7269, 7893, 7315, 6799, 8973, 8755, 6901, 4155, 3934, 6041, 4654, 6138, 5374, 5734, 6094, 6454, 6814, 7174, 7270, 7894, 7316, 6800, 8974, 8756, 6902, 4156, 3935, 6042, 4655, 6139, 5375, 5735, 6095, 6455, 6815, 7175, 7271, 7895, 7317, 6801, 8975, 8757, 6903, 4157, 3936, 6043, 4656, 6140, 5376, 5736, 6096, 6456, 6816, 7176, 7272, 7896, 7318, 6802, 8976, 8758, 6904, 4158, 3937, 6044, 4657, 6141, 5377, 5737, 6097, 6457, 6817, 7177, 7273, 7897, 7319, 6803, 8977, 8759, 6905, 4159, 3938, 6045, 4658, 6142, 5378, 5738, 6098, 6458, 6818, 7178, 7274, 7898, 7320, 6804, 8978, 8760, 6906, 4160, 3939, 6046, 4659, 6143, 5379, 5739, 6099, 6459, 6819, 7179, 7275, 7899, 7321, 6805, 8979, 8761, 6907, 4161, 3940, 6047, 4660, 6144, 5380, 5740, 6100, 6460, 6820, 7180, 7276, 7900, 7322, 6806, 8980, 8762, 6908, 4162, 3941, 6048, 4661, 6145, 5381, 5741, 6101, 6461, 6821, 7181, 7277, 7901, 7323, 6807, 8981, 8763, 6909, 4163, 3942, 6049, 4662, 6146, 5382, 5742, 6102, 6462, 6822, 7182, 7278, 7902, 7324, 6808, 8982, 8764, 6910, 4164, 3943, 6050, 4663, 6147, 5383, 5743, 6103, 6463, 6823, 7183, 7279, 7903, 7325, 6809, 8983, 8765, 6911, 4165, 3944, 6051, 4664, 6148, 5384, 5744, 6104, 6464, 6824, 7184, 7280, 7904, 7326, 6810, 8984, 8766, 6912, 4166, 3945, 6052, 4665, 6149, 5385, 5745, 6105, 6465, 6825, 7185, 7281, 7905, 7327, 6811, 8985, 8767, 6913, 4167, 3946, 6053, 4666, 6150, 5386, 5746, 6106, 6466, 6826, 7186, 7282, 7906, 7328, 6812, 8986, 8768, 6914, 4168, 3947, 6054, 4667, 6151, 5387, 5747, 6107, 6467, 6827, 7187, 7283, 7907, 7329, 6813, 8987, 8769, 6915, 4169, 3948, 6055, 4668, 6152, 5388, 5748, 6108, 6468, 6828, 7188, 7284, 7908, 7330, 6814, 8988, 8770, 6916, 4170, 3949, 6056, 4669, 6153, 5389, 5749, 6109, 6469, 6829, 7189, 7285, 7909, 7331, 6815, 8989, 8771, 6917, 4171, 3950, 6057, 4670, 6154, 5390, 5750, 6110, 6470, 6830, 7190, 7286, 7910, 7332, 6816, 8990, 8772, 6918, 4172, 3951, 6058, 4671, 6155, 5391, 5751, 6111, 6471, 6831, 7191, 7287, 7911, 7333, 6817, 8991, 8773, 6919, 4173, 3952, 6059, 4672, 6156, 5392, 5752, 6112, 6472, 6832, 7192, 7288, 7912, 7334, 6818, 8992, 8774, 6920, 4174, 3953, 6060, 4673, 6157, 5393, 5753, 6113, 6473, 6833, 7193, 7289, 7913, 7335, 6819, 8993, 8775, 6921, 4175, 3954, 6061, 4674, 6158, 5394, 5754, 6114, 6474, 6834, 7194, 7290, 7914, 7336, 6820, 8994, 8776, 6922, 4176, 3955, 6062, 4675, 6159, 5395, 5755, 6115, 6475, 6835, 7195, 7291, 7915, 7337, 6821, 8995, 8777, 6923, 4177, 3956, 6063, 4676, 6160, 5396, 5756, 6116, 6476, 6836, 7196, 7292, 7916, 7338, 6822, 8996, 8778, 6924, 4178, 3957, 6064, 4677, 6161, 5397, 5757, 6117, 6477, 6837, 7197, 7293, 7917, 7339, 6823, 8997, 8779, 6925, 4179, 3958, 6065, 4678, 6162, 5398, 5758, 6118, 6478, 6838, 7198, 7294, 7918, 7340, 6824, 8998, 8780, 6926, 4180, 3959, 6066, 4679, 6163, 5399, 5759, 6119, 6479, 6839, 7199, 7295, 7919, 7341, 6825, 8999, 8781, 6927, 4181, 3960, 6067, 4680, 6164, 5400, 5760, 6120, 6480, 6840, 7200, 7296, 7920, 7342, 6826, 9000, 8782, 6928, 6570, 9489, 9108, 8047, 8813, 7760, 8352, 7021, 7722, 8380, 8139, 7297, 9449, 7921, 8281, 9078, 9001, 9361, 6571, 9490, 9109, 8048, 8814, 7761, 8353, 7022, 7723, 8381, 8140, 7298, 9450, 7922, 8282, 9079, 9002, 9362, 6572, 9491, 9110, 8049, 8815, 7762, 8354, 7023, 7724, 8382, 8141, 7299, 9451, 7923, 8283, 9080, 9003, 9363, 6573, 9492, 9111, 8050, 8816, 7763, 8355, 7024, 7725, 8383, 8142, 7300, 9452, 7924, 8284, 9081, 9004, 9364, 6574, 9493, 9112, 8051, 8817, 7764, 8356, 7025, 7726, 8384, 8143, 7301, 9453, 7925, 8285, 9082, 9005, 9365, 6575, 9494, 9113, 8052, 8818, 7765, 8357, 7026, 7727, 8385, 8144, 7302, 9454, 7926, 8286, 9083, 9006, 9366, 6576, 9495, 9114, 8053, 8819, 7766, 8358, 7027, 7728, 8386, 8145, 7303, 9455, 7927, 8287, 9084, 9007, 9367, 6577, 9496, 9115, 8054, 8820, 7767, 8359, 7028, 7729, 8387, 8146, 7304, 9456, 7928, 8288, 9085, 9008, 9368, 6578, 9497, 9116, 8055, 8821, 7768, 8360, 7029, 7730, 8388, 8147, 7305, 9457, 7929, 8289, 9086, 9009, 9369, 6579, 9498, 9117, 8056, 8822, 7769, 8361, 7030, 7731, 8389, 8148, 7306, 9458, 7930, 8290, 9087, 9010, 9370, 6580, 9499, 9118, 8057, 8823, 7770, 8362, 7031, 7732, 8390, 8149, 7307, 9459, 7931, 8291, 9088, 9011, 9371, 6581, 9500, 9119, 8058, 8824, 7771, 8363, 7032, 7733, 8391, 8150, 7308, 9460, 7932, 8292, 9089, 9012, 9372, 6582, 9501, 9120, 8059, 8825, 7772, 8364, 7033, 7734, 8392, 8151, 7309, 9461, 7933, 8293, 9090, 9013, 9373, 6583, 9502, 9121, 8060, 8826, 7773, 8365, 7034, 7735, 8393, 8152, 7310, 9462, 7934, 8294, 9091, 9014, 9374, 6584, 9503, 9122, 8061, 8827, 7774, 8366, 7035, 7736, 8394, 8153, 7311, 9463, 7935, 8295, 9092, 9015, 9375, 6585, 9504, 9123, 8062, 8828, 7775, 8367, 7036, 7737, 8395, 8154, 7312, 9464, 7936, 8296, 9093, 9016, 9376, 6586, 9505, 9124, 8063, 8829, 7776, 8368, 7037, 7738, 8396, 8155, 7313, 9465, 7937, 8297, 9094, 9017, 9377, 6587, 9506, 9125, 8064, 8830, 7777, 8369, 7038, 7739, 8397, 8156, 7314, 9466, 7938, 8298, 9095, 9018, 9378, 6588, 9507, 9126, 8065, 8831, 7778, 8370, 7039, 7740, 8398, 8157, 7315, 9467, 7939, 8299, 9096, 9019, 9379, 6589, 9508, 9127, 8066, 8832, 7779, 8371, 7040, 7741, 8399, 8158, 7316, 9468, 7940, 8300, 9097, 9020, 9380, 6590, 9509, 9128, 8067, 8833, 7780, 8372, 7041, 7742, 8400, 8159, 7317, 9469, 7941, 8301, 9098, 9021, 9381, 6591, 9510, 9129, 8068, 8834, 7781, 8373, 7042, 7743, 8401, 8160, 7318, 9470, 7942, 8302, 9099, 9022, 9382, 6592, 9511, 9130, 8069, 8835, 7782, 8374, 7043, 7744, 8402, 8161, 7319, 9471, 7943, 8303, 9100, 9023, 9383, 6593, 9512, 9131, 8070, 8836, 7783, 8375, 7044, 7745, 8403, 8162, 7320, 9472, 7944, 8304, 9101, 9024, 9384, 6594, 9513, 9132, 8071, 8837, 7784, 8376, 7045, 7746, 8404, 8163, 7321, 9473, 7945, 8305, 9102, 9025, 9385, 6595, 9514, 9133, 8072, 8838, 7785, 8377, 7046, 7747, 8405, 8164, 7322, 9474, 7946, 8306, 9103, 9026, 9386, 6596, 9515, 9134, 8073, 8839, 7786, 8378, 7047, 7748, 8406, 8165, 7323, 9475, 7947, 8307, 9104, 9027, 9387, 6597, 9516, 9135, 8074, 8840, 7787, 8379, 7048, 7749, 8407, 8166, 7324, 9476, 7948, 8308, 9105, 9028, 9388, 6598, 9517, 9136, 8075, 8841, 7788, 8380, 7049, 7750, 8408, 8167, 7325, 9477, 7949, 8309, 9106, 9029, 9389, 6599, 9518, 9137, 8076, 8842, 7789, 8381, 7050, 7751, 8409, 8168, 7326, 9478, 7950, 8310, 9107, 9030, 9390, 6600, 9519, 9138, 8077, 8843, 7790, 8382, 7051, 7752, 8410, 8169, 7327, 9479, 7951, 8311, 9108, 9031, 9391, 6601, 9520, 9139, 8078, 8844, 7791, 8383, 7052, 7753, 8411, 8170, 7328, 9480, 7952, 8312, 9109, 9032, 9392, 6602, 9521, 9140, 8079, 8845, 7792, 8384, 7053, 7754, 8412, 8171, 7329, 9481, 7953, 8313, 9110, 9033, 9393, 6603, 9522, 9141, 8080, 8846, 7793, 8385, 7054, 7755, 8413, 8172, 7330, 9482, 7954, 8314, 9111, 9034, 9394, 6604, 9523, 9142, 8081, 8847, 7794, 8386, 7055, 7756, 8414, 8173, 7331, 9483, 7955, 8315, 9112, 9035, 9395, 6605, 9524, 9143, 8082, 8848, 7795, 8387, 7056, 7757, 8415, 8174, 7332, 9484, 7956, 8316, 9113, 9036, 9396, 6606, 9525, 9144, 8083, 8849, 7796, 8388, 7057, 7758, 8416, 8175, 7333, 9485, 7957, 8317, 9114, 9037, 9397, 6607, 9526, 9145, 8084, 8850, 7797, 8389, 7058, 7759, 8417, 8176, 7334, 9486, 7958, 8318, 9115, 9038, 9398, 6608, 9527, 9146, 8085, 8851, 7798, 8390, 7059, 7760, 8418, 8177, 7335, 9487, 7959, 8319, 9116, 9039, 9399, 6609, 9528, 9147, 8086, 8852, 7799, 8391, 7060, 7761, 8419, 8178, 7336, 9488, 7960, 8320, 9117, 9040, 9400, 6610, 9529, 9148, 8087, 8853, 7800, 8392, 7061, 7762, 8420, 8179, 7337, 9489, 7961, 8321, 9118, 9041, 9401, 6611, 9530, 9149, 8088, 8854, 7801, 8393, 7062, 7763, 8421, 8180, 7338, 9490, 7962, 8322, 9119, 9042, 9402, 6612, 9531, 9150, 8089, 8855, 7802, 8394, 7063, 7764, 8422, 8181, 7339, 9491, 7963, 8323, 9120, 9043, 9403, 6613, 9532, 9151, 8090, 8856, 7803, 8395, 7064, 7765, 8423, 8182, 7340, 9492, 7964, 8324, 9121, 9044, 9404, 6614, 9533, 9152, 8091, 8857, 7804, 8396, 7065, 7766, 8424, 8183, 7341, 9493, 7965, 8325, 9122, 9045, 9405, 6615, 9534, 9153, 8092, 8858, 7805, 8397, 7066, 7767, 8425, 8184, 7342, 9494, 7966, 8326, 9123, 9046, 9406, 6616, 9535, 9154, 8093, 8859, 7806, 8398, 7067, 7768, 8426, 8185, 7343, 9495, 7967, 8327, 9124, 9047, 9407, 6617, 9536, 9155, 8094, 8860, 7807, 8399, 7068, 7769, 8427, 8186, 7344, 9496, 7968, 8328, 9125, 9048, 9408, 6618, 9537, 9156, 8095, 8861, 7808, 8400, 7069, 7770, 8428, 8187, 7345, 9497, 7969, 8329, 9126, 9049, 9409, 6619, 9538, 9157, 8096, 8862, 7809, 8401, 7070, 7771, 8429, 8188, 7346, 9498, 7970, 8330, 9127, 9050, 9410, 6620, 9539, 9158, 8097, 8863, 7810, 8402, 7071, 7772, 8430, 8189, 7347, 9499, 7971, 8331, 9128, 9051, 9411, 6621, 9540, 9159, 8098, 8864, 7811, 8403, 7072, 7773, 8431, 8190, 7348, 9500, 7972, 8332, 9129, 9052, 9412, 6622, 9541, 9160, 8099, 8865, 7812, 8404, 7073, 7774, 8432, 8191, 7349, 9501, 7973, 8333, 9130, 9053, 9413, 6623, 9542, 9161, 8100, 8866, 7813, 8405, 7074, 7775, 8433, 8192, 7350, 9502, 7974, 8334, 9131, 9054, 9414, 6624, 9543, 9162, 8101, 8867, 7814, 8406, 7075, 7776, 8434, 8193, 7351, 9503, 7975, 8335, 9132, 9055, 9415, 6625, 9544, 9163, 8102, 8868, 7815, 8407, 7076, 7777, 8435, 8194, 7352, 9504, 7976, 8336, 9133, 9056, 9416, 6626, 9545, 9164, 8103, 8869, 7816, 8408, 7077, 7778, 8436, 8195, 7353, 9505, 7977, 8337, 9134, 9057, 9417, 6627, 9546, 9165, 8104, 8870, 7817, 8409, 7078, 7779, 8437, 8196, 7354, 9506, 7978, 8338, 9135, 9058, 9418, 6628, 9547, 9166, 8105, 8871, 7818, 8410, 7079, 7780, 8438, 8197, 7355, 9507, 7979, 8339, 9136, 9059, 9419, 6629, 9548, 9167, 8106, 8872, 7819, 8411, 7080, 7781, 8439, 8198, 7356, 9508, 7980, 8340, 9137, 9060, 9420, 6630, 9549, 9168, 8107, 8873, 7820, 8412, 7081, 7782, 8440, 8199, 7357, 9509, 7981, 8341, 9138, 9061, 9421, 6631, 9550, 9169, 8108, 8874, 7821, 8413, 7082, 7783, 8441, 8200, 7358, 9510, 7982, 8342, 9139, 9062, 9422, 6632, 9551, 9170, 8109, 8875, 7822, 8414, 7083, 7784, 8442, 8201, 7359, 9511, 7983, 8343, 9140, 9063, 9423, 6633, 9552, 9171, 8110, 8876, 7823, 8415, 7084, 7785, 8443, 8202, 7360, 9512, 7984, 8344, 9141, 9064, 9424, 6634, 9553, 9172, 8111, 8877, 7824, 8416, 7085, 7786, 8444, 8203, 7361, 9513, 7985, 8345, 9142, 9065, 9425, 6635, 9554, 9173, 8112, 8878, 7825, 8417, 7086, 7787, 8445, 8204, 7362, 9514, 7986, 8346, 9143, 9066, 9426, 6636, 9555, 9174, 8113, 8879, 7826, 8418, 7087, 7788, 8446, 8205, 7363, 9515, 7987, 8347, 9144, 9067, 9427, 6637, 9556, 9175, 8114, 8880, 7827, 8419, 7088, 7789, 8447, 8206, 7364, 9516, 7988, 8348, 9145, 9068, 9428, 6638, 9557, 9176, 8115, 8881, 7828, 8420, 7089, 7790, 8448, 8207, 7365, 9517, 7989, 8349, 9146, 9069, 9429, 6639, 9558, 9177, 8116, 8882, 7829, 8421, 7090, 7791, 8449, 8208, 7366, 9518, 7990, 8350, 9147, 9070, 9430, 6640, 9559, 9178, 8117, 8883, 7830, 8422, 7091, 7792, 8450, 8209, 7367, 9519, 7991, 8351, 9148, 9071, 9431, 6641, 9560, 9179, 8118, 8884, 7831, 8423, 7092, 7793, 8451, 8210, 7368, 9520, 7992, 8352, 9149, 9072, 9432, 6642, 9561, 9180, 8119, 8885, 7832, 8424, 7093, 7794, 8452, 8211, 7369, 9521, 7993, 8353, 9150, 9073, 9433, 6643, 9562, 9181, 8120, 8886, 7833, 8425, 7094, 7795, 8453, 8212, 7370, 9522, 7994, 8354, 9151, 9074, 9434, 6644, 9563, 9182, 8121, 8887, 7834, 8426, 7095, 7796, 8454, 8213, 7371, 9523, 7995, 8355, 9152, 9075, 9435, 6645, 9564, 9183, 8122, 8888, 7835, 8427, 7096, 7797, 8455, 8214, 7372, 9524, 7996, 8356, 9153, 9076, 9436, 6646, 9565, 9184, 8123, 8889, 7836, 8428, 7097, 7798, 8456, 8215, 7373, 9525, 7997, 8357, 9154, 9077, 9437, 6647, 9566, 9185, 8124, 8890, 7837, 8429, 7098, 7799, 8457, 8216, 7374, 9526, 7998, 8358, 9155, 9078, 9438, 6648, 9567, 9186, 8125, 8891, 7838, 8430, 7099, 7800, 8458, 8217, 7375, 9527, 7999, 8359, 9156, 9079, 9439, 6649, 9568, 9187, 8126, 8892, 7839, 8431, 7100, 7801, 8459, 8218, 7376, 9528, 8000, 8360, 9157, 9080, 9440, 6650, 9569, 9188, 8127, 8893, 7840, 8432, 7101, 7802, 8460, 8219, 7377, 9529, 8001, 8361, 9158, 9081, 9441, 6651, 9570, 9189, 8128, 8894, 7841, 8433, 7102, 7803, 8461, 8220, 7378, 9530, 8002, 8362, 9159, 9082, 9442, 6652, 9571, 9190, 8129, 8895, 7842, 8434, 7103, 7804, 8462, 8221, 7379, 9531, 8003, 8363, 9160, 9083, 9443, 6653, 9572, 9191, 8130, 8896, 7843, 8435, 7104, 7805, 8463, 8222, 7380, 9532, 8004, 8364, 9161, 9084, 9444, 6654, 9573, 9192, 8131, 8897, 7844, 8436, 7105, 7806, 8464, 8223, 7381, 9533, 8005, 8365, 9162, 9085, 9445, 6655, 9574, 9193, 8132, 8898, 7845, 8437, 7106, 7807, 8465, 8224, 7382, 9534, 8006, 8366, 9163, 9086, 9446, 6656, 9575, 9194, 8133, 8899, 7846, 8438, 7107, 7808, 8466, 8225, 7383, 9535, 8007, 8367, 9164, 9087, 9447, 6657, 9576, 9195, 8134, 8900, 7847, 8439, 7108, 7809, 8467, 8226, 7384, 9536, 8008, 8368, 9165, 9088, 9448, 6658, 9577, 9196, 8135, 8901, 7848, 8440, 7109, 7810, 8468, 8227, 7385, 9537, 8009, 8369, 9166, 9089, 9449, 6659, 9578, 9197, 8136, 8902, 7849, 8441, 7110, 7811, 8469, 8228, 7386, 9538, 8010, 8370, 9167, 9090, 9450, 6660, 9579, 9198, 8137, 8903, 7850, 8442, 7111, 7812, 8470, 8229, 7387, 9539, 8011, 8371, 9168, 9091, 9451, 6661, 9580, 9199, 8138, 8904, 7851, 8443, 7112, 7813, 8471, 8230, 7388, 9540, 8012, 8372, 9169, 9092, 9452, 6662, 9581, 9200, 8139, 8905, 7852, 8444, 7113, 7814, 8472, 8231, 7389, 9541, 8013, 8373, 9170, 9093, 9453, 6663, 9582, 9201, 8140, 8906, 7853, 8445, 7114, 7815, 8473, 8232, 7390, 9542, 8014, 8374, 9171, 9094, 9454, 6664, 9583, 9202, 8141, 8907, 7854, 8446, 7115, 7816, 8474, 8233, 7391, 9543, 8015, 8375, 9172, 9095, 9455, 6665, 9584, 9203, 8142, 8908, 7855, 8447, 7116, 7817, 8475, 8234, 7392, 9544, 8016, 8376, 9173, 9096, 9456, 6666, 9585, 9204, 8143, 8909, 7856, 8448, 7117, 7818, 8476, 8235, 7393, 9545, 8017, 8377, 9174, 9097, 9457, 6667, 9586, 9205, 8144, 8910, 7857, 8449, 7118, 7819, 8477, 8236, 7394, 9546, 8018, 8378, 9175, 9098, 9458, 6668, 9587, 9206, 8145, 8911, 7858, 8450, 7119, 7820, 8478, 8237, 7395, 9547, 8019, 8379, 9176, 9099, 9459, 6669, 9588, 9207, 8146, 8912, 7859, 8451, 7120, 7821, 8479, 8238, 7396, 9548, 8020, 8380, 9177, 9100, 9460, 6670, 9589, 9208, 8147, 8913, 7860, 8452, 7121, 7822, 8480, 8239, 7397, 9549, 8021, 8381, 9178, 9101, 9461, 6671, 9590, 9209, 8148, 8914, 7861, 8453, 7122, 7823, 8481, 8240, 7398, 9550, 8022, 8382, 9179, 9102, 9462, 6672, 9591, 9210, 8149, 8915, 7862, 8454, 7123, 7824, 8482, 8241, 7399, 9551, 8023, 8383, 9180, 9103, 9463, 6673, 9592, 9211, 8150, 8916, 7863, 8455, 7124, 7825, 8483, 8242, 7400, 9552, 8024, 8384, 9181, 9104, 9464, 6674, 9593, 9212, 8151, 8917, 7864, 8456, 7125, 7826, 8484, 8243, 7401, 9553, 8025, 8385, 9182, 9105, 9465, 6675, 9594, 9213, 8152, 8918, 7865, 8457, 7126, 7827, 8485, 8244, 7402, 9554, 8026, 8386, 9183, 9106, 9466, 6676, 9595, 9214, 8153, 8919, 7866, 8458, 7127, 7828, 8486, 8245, 7403, 9555, 8027, 8387, 9184, 9107, 9467, 6677, 9596, 9215, 8154, 8920, 7867, 8459, 7128, 7829, 8487, 8246, 7404, 9556, 8028, 8388, 9185, 9108, 9468, 6678, 9597, 9216, 8155, 8921, 7868, 8460, 7129, 7830, 8488, 8247, 7405, 9557, 8029, 8389, 9186, 9109, 9469, 6679, 9598, 9217, 8156, 8922, 7869, 8461, 7130, 7831, 8489, 8248, 7406, 9558, 8030, 8390, 9187, 9110, 9470, 6680, 9599, 9218, 8157, 8923, 7870, 8462, 7131, 7832, 8490, 8249, 7407, 9559, 8031, 8391, 9188, 9111, 9471, 6681, 9600, 9219, 8158, 8924, 7871, 8463, 7132, 7833, 8491, 8250, 7408, 9560, 8032, 8392, 9189, 9112, 9472, 6682, 9601, 9220, 8159, 8925, 7872, 8464, 7133, 7834, 8492, 8251, 7409, 9561, 8033, 8393, 9190, 9113, 9473, 6683, 9602, 9221, 8160, 8926, 7873, 8465, 7134, 7835, 8493, 8252, 7410, 9562, 8034, 8394, 9191, 9114, 9474, 6684, 9603, 9222, 8161, 8927, 7874, 8466, 7135, 7836, 8494, 8253, 7411, 9563, 8035, 8395, 9192, 9115, 9475, 6685, 9604, 9223, 8162, 8928, 7875, 8467, 7136, 7837, 8495, 8254, 7412, 9564, 8036, 8396, 9193, 9116, 9476, 6686, 9605, 9224, 8163, 8929, 7876, 8468, 7137, 7838, 8496, 8255, 7413, 9565, 8037, 8397, 9194, 9117, 9477, 6687, 9606, 9225, 8164, 8930, 7877, 8469, 7138, 7839, 8497, 8256, 7414, 9566, 8038, 8398, 9195, 9118, 9478, 6688, 9607, 9226, 8165, 8931, 7878, 8470, 7139, 7840, 8498, 8257, 7415, 9567, 8039, 8399, 9196, 9119, 9479, 6689, 9608, 9227, 8166, 8932, 7879, 8471, 7140, 7841, 8499, 8258, 7416, 9568, 8040, 8400, 9197, 9120, 9480, 6690, 9609, 9228, 8167, 8933, 7880, 8472, 7141, 7842, 8500, 8259, 7417, 9569, 8041, 8401, 9198, 9121, 9481, 6691, 9610, 9229, 8168, 8934, 7881, 8473, 7142, 7843, 8501, 8260, 7418, 9570, 8042, 8402, 9199, 9122, 9482, 6692, 9611, 9230, 8169, 8935, 7882, 8474, 7143, 7844, 8502, 8261, 7419, 9571, 8043, 8403, 9200, 9123, 9483, 6693, 9612, 9231, 8170, 8936, 7883, 8475, 7144, 7845, 8503, 8262, 7420, 9572, 8044, 8404, 9201, 9124, 9484, 6694, 9613, 9232, 8171, 8937, 7884, 8476, 7145, 7846, 8504, 8263, 7421, 9573, 8045, 8405, 9202, 9125, 9485, 6695, 9614, 9233, 8172, 8938, 7885, 8477, 7146, 7847, 8505, 8264, 7422, 9574, 8046, 8406, 9203, 9126, 9486, 6696, 9615, 9234, 8173, 8939, 7886, 8478, 7147, 7848, 8506, 8265, 7423, 9575, 8047, 8407, 9204, 9127, 9487, 6697, 9616, 9235, 8174, 8940, 7887, 8479, 7148, 7849, 8507, 8266, 7424, 9576, 8048, 8408, 9205, 9128, 9488, 6698, 9617, 9236, 8175, 8941, 7888, 8480, 7149, 7850, 8508, 8267, 7425, 9577, 8049, 8409, 9206, 9129, 9489, 6699, 9618, 9237, 8176, 8942, 7889, 8481, 7150, 7851, 8509, 8268, 7426, 9578, 8050, 8410, 9207, 9130, 9490, 6700, 9619, 9238, 8177, 8943, 7890, 8482, 7151, 7852, 8510, 8269, 7427, 9579, 8051, 8411, 9208, 9131, 9491, 6701, 9620, 9239, 8178, 8944, 7891, 8483, 7152, 7853, 8511, 8270, 7428, 9580, 8052, 8412, 9209, 9132, 9492, 6702, 9621, 9240, 8179, 8945, 7892, 8484, 7153, 7854, 8512, 8271, 7429, 9581, 8053, 8413, 9210, 9133, 9493, 6703, 9622, 9241, 8180, 8946, 7893, 8485, 7154, 7855, 8513, 8272, 7430, 9582, 8054, 8414, 9211, 9134, 9494, 6704, 9623, 9242, 8181, 8947, 7894, 8486, 7155, 7856, 8514, 8273, 7431, 9583, 8055, 8415, 9212, 9135, 9495, 6705, 9624, 9243, 8182, 8948, 7895, 8487, 7156, 7857, 8515, 8274, 7432, 9584, 8056, 8416, 9213, 9136, 9496, 6706, 9625, 9244, 8183, 8949, 7896, 8488, 7157, 7858, 8516, 8275, 7433, 9585, 8057, 8417, 9214, 9137, 9497, 6707, 9626, 9245, 8184, 8950, 7897, 8489, 7158, 7859, 8517, 8276, 7434, 9586, 8058, 8418, 9215, 9138, 9498, 6708, 9627, 9246, 8185, 8951, 7898, 8490, 7159, 7860, 8518, 8277, 7435, 9587, 8059, 8419, 9216, 9139, 9499, 6709, 9628, 9247, 8186, 8952, 7899, 8491, 7160, 7861, 8519, 8278, 7436, 9588, 8060, 8420, 9217, 9140, 9500, 6710, 9629, 9248, 8187, 8953, 7900, 8492, 7161, 7862, 8520, 8279, 7437, 9589, 8061, 8421, 9218, 9141, 9501, 6711, 9630, 9249, 8188, 8954, 7901, 8493, 7162, 7863, 8521, 8280, 7438, 9590, 8062, 8422, 9219, 9142, 9502, 6712, 9631, 9250, 8189, 8955, 7902, 8494, 7163, 7864, 8522, 7921, 7439, 9591, 8063, 8423, 9220, 9143, 9503, 6713, 9632, 9251, 8190, 8956, 7903, 8495, 7164, 7865, 8523, 7922, 7440, 9592, 8064, 8424, 9221, 9144, 9504, 6714, 9633, 9252, 8191, 8957, 7904, 8496, 7165, 7866, 8524, 7923, 7441, 9593, 8065, 8425, 9222, 9145, 9505, 6715, 9634, 9253, 8192, 8958, 7905, 8497, 7166, 7867, 8525, 7924, 7442, 9594, 8066, 8426, 9223, 9146, 9506, 6716, 9635, 9254, 8193, 8959, 7906, 8498, 7167, 7868, 8526, 7925, 7443, 9595, 8067, 8427, 9224, 9147, 9507, 6717, 9636, 9255, 8194, 8960, 7907, 8499, 7168, 7869, 8527, 7926, 7444, 9596, 8068, 8428, 9225, 9148, 9508, 6718, 9637, 9256, 8195, 8961, 7908, 8500, 7169, 7870, 8528, 7927, 7445, 9597, 8069, 8429, 9226, 9149, 9509, 6719, 9638, 9257, 8196, 8962, 7909, 8501, 7170, 7871, 8529, 7928, 7446, 9598, 8070, 8430, 9227, 9150, 9510, 6720, 9639, 9258, 8197, 8963, 7910, 8502, 7171, 7872, 8530, 7929, 7447, 9599, 8071, 8431, 9228, 9151, 9511, 6721, 9640, 9259, 8198, 8964, 7911, 8503, 7172, 7873, 8531, 7930, 7448, 9600, 8072, 8432, 9229, 9152, 9512, 6722, 9641, 9260, 8199, 8965, 7912, 8504, 7173, 7874, 8532, 7931, 7449, 9601, 8073, 8433, 9230, 9153, 9513, 6723, 9642, 9261, 8200, 8966, 7913, 8505, 7174, 7875, 8533, 7932, 7450, 9602, 8074, 8434, 9231, 9154, 9514, 6724, 9643, 9262, 8201, 8967, 7914, 8506, 7175, 7876, 8534, 7933, 7451, 9603, 8075, 8435, 9232, 9155, 9515, 6725, 9644, 9263, 8202, 8968, 7915, 8507, 7176, 7877, 8535, 7934, 7452, 9604, 8076, 8436, 9233, 9156, 9516, 6726, 9645, 9264, 8203, 8969, 7916, 8508, 7177, 7878, 8536, 7935, 7453, 9605, 8077, 8437, 9234, 9157, 9517, 6727, 9646, 9265, 8204, 8970, 7917, 8509, 7178, 7879, 8537, 7936, 7454, 9606, 8078, 8438, 9235, 9158, 9518, 6728, 9647, 9266, 8205, 8971, 7918, 8510, 7179, 7880, 8538, 7937, 7455, 9607, 8079, 8439, 9236, 9159, 9519, 6729, 9648, 9267, 8206, 8972, 7919, 8511, 7180, 7881, 8539, 7938, 7456, 9608, 8080, 8440, 9237, 9160, 9520, 6730, 9649, 9268, 8207, 8973, 7920, 8512, 7181, 7882, 8540, 7939, 7457, 9609, 8081, 8441, 9238, 9161, 9521, 6731, 9650, 9269, 8208, 8974, 7561, 8513, 7182, 7883, 8541, 7940, 7458, 9610, 8082, 8442, 9239, 9162, 9522, 6732, 9651, 9270, 8209, 8975, 7562, 8514, 7183, 7884, 8542, 7941, 7459, 9611, 8083, 8443, 9240, 9163, 9523, 6733, 9652, 9271, 8210, 8976, 7563, 8515, 7184, 7885, 8543, 7942, 7460, 9612, 8084, 8444, 9241, 9164, 9524, 6734, 9653, 9272, 8211, 8977, 7564, 8516, 7185, 7886, 8544, 7943, 7461, 9613, 8085, 8445, 9242, 9165, 9525, 6735, 9654, 9273, 8212, 8978, 7565, 8517, 7186, 7887, 8545, 7944, 7462, 9614, 8086, 8446, 9243, 9166, 9526, 6736, 9655, 9274, 8213, 8979, 7566, 8518, 7187, 7888, 8546, 7945, 7463, 9615, 8087, 8447, 9244, 9167, 9527, 6737, 9656, 9275, 8214, 8980, 7567, 8519, 7188, 7889, 8547, 7946, 7464, 9616, 8088, 8448, 9245, 9168, 9528, 6738, 9657, 9276, 8215, 8981, 7568, 8520, 7189, 7890, 8548, 7947, 7465, 9617, 8089, 8449, 9246, 9169, 9529, 6739, 9658, 9277, 8216, 8982, 7569, 8521, 7190, 7891, 8549, 7948, 7466, 9618, 8090, 8450, 9247, 9170, 9530, 6740, 9659, 9278, 8217, 8983, 7570, 8522, 7191, 7892, 8550, 7949, 7467, 9619, 8091, 8451, 9248, 9171, 9531, 6741, 9660, 9279, 8218, 8984, 7571, 8523, 7192, 7893, 8551, 7950, 7468, 9620, 8092, 8452, 9249, 9172, 9532, 6742, 9661, 9280, 8219, 8985, 7572, 8524, 7193, 7894, 8552, 7951, 7469, 9621, 8093, 8453, 9250, 9173, 9533, 6743, 9662, 9281, 8220, 8986, 7573, 8525, 7194, 7895, 8553, 7952, 7470, 9622, 8094, 8454, 9251, 9174, 9534, 6744, 9663, 9282, 8221, 8987, 7574, 8526, 7195, 7896, 8554, 7953, 7471, 9623, 8095, 8455, 9252, 9175, 9535, 6745, 9664, 9283, 8222, 8988, 7575, 8527, 7196, 7897, 8555, 7954, 7472, 9624, 8096, 8456, 9253, 9176, 9536, 6746, 9665, 9284, 8223, 8989, 7576, 8528, 7197, 7898, 8556, 7955, 7473, 9625, 8097, 8457, 9254, 9177, 9537, 6747, 9666, 9285, 8224, 8990, 7577, 8529, 7198, 7899, 8557, 7956, 7474, 9626, 8098, 8458, 9255, 9178, 9538, 6748, 9667, 9286, 8225, 8991, 7578, 8530, 7199, 7900, 8558, 7957, 7475, 9627, 8099, 8459, 9256, 9179, 9539, 6749, 9668, 9287, 8226, 8992, 7579, 8531, 7200, 7901, 8559, 7958, 7476, 9628, 8100, 8460, 9257, 9180, 9540, 6750, 9669, 9288, 8227, 8993, 7580, 8532, 6841, 7902, 8560, 7959, 7477, 9629, 8101, 8461, 9258, 9181, 9541, 6751, 9670, 9289, 8228, 8994, 7581, 8533, 6842, 7903, 8561, 7960, 7478, 9630, 8102, 8462, 9259, 9182, 9542, 6752, 9671, 9290, 8229, 8995, 7582, 8534, 6843, 7904, 8562, 7961, 7479, 9631, 8103, 8463, 9260, 9183, 9543, 6753, 9672, 9291, 8230, 8996, 7583, 8535, 6844, 7905, 8563, 7962, 7480, 9632, 8104, 8464, 9261, 9184, 9544, 6754, 9673, 9292, 8231, 8997, 7584, 8536, 6845, 7906, 8564, 7963, 7481, 9633, 8105, 8465, 9262, 9185, 9545, 6755, 9674, 9293, 8232, 8998, 7585, 8537, 6846, 7907, 8565, 7964, 7482, 9634, 8106, 8466, 9263, 9186, 9546, 6756, 9675, 9294, 8233, 8999, 7586, 8538, 6847, 7908, 8566, 7965, 7483, 9635, 8107, 8467, 9264, 9187, 9547, 6757, 9676, 9295, 8234, 9000, 7587, 8539, 6848, 7909, 8567, 7966, 7484, 9636, 8108, 8468, 9265, 9188, 9548, 6758, 9677, 9296, 8235, 8641, 7588, 8540, 6849, 7910, 8568, 7967, 7485, 9637, 8109, 8469, 9266, 9189, 9549, 6759, 9678, 9297, 8236, 8642, 7589, 8541, 6850, 7911, 8569, 7968, 7486, 9638, 8110, 8470, 9267, 9190, 9550, 6760, 9679, 9298, 8237, 8643, 7590, 8542, 6851, 7912, 8570, 7969, 7487, 9639, 8111, 8471, 9268, 9191, 9551, 6761, 9680, 9299, 8238, 8644, 7591, 8543, 6852, 7913, 8571, 7970, 7488, 9640, 8112, 8472, 9269, 9192, 9552, 6762, 9681, 9300, 8239, 8645, 7592, 8544, 6853, 7914, 8572, 7971, 7489, 9641, 8113, 8473, 9270, 9193, 9553, 6763, 9682, 9301, 8240, 8646, 7593, 8545, 6854, 7915, 8573, 7972, 7490, 9642, 8114, 8474, 9271, 9194, 9554, 6764, 9683, 9302, 8241, 8647, 7594, 8546, 6855, 7916, 8574, 7973, 7491, 9643, 8115, 8475, 9272, 9195, 9555, 6765, 9684, 9303, 8242, 8648, 7595, 8547, 6856, 7917, 8575, 7974, 7492, 9644, 8116, 8476, 9273, 9196, 9556, 6766, 9685, 9304, 8243, 8649, 7596, 8548, 6857, 7918, 8576, 7975, 7493, 9645, 8117, 8477, 9274, 9197, 9557, 6767, 9686, 9305, 8244, 8650, 7597, 8549, 6858, 7919, 8577, 7976, 7494, 9646, 8118, 8478, 9275, 9198, 9558, 6768, 9687, 9306, 8245, 8651, 7598, 8550, 6859, 7920, 8578, 7977, 7495, 9647, 8119, 8479, 9276, 9199, 9559, 6769, 9688, 9307, 8246, 8652, 7599, 8551, 6860, 7561, 8579, 7978, 7496, 9648, 8120, 8480, 9277, 9200, 9560, 6770, 9689, 9308, 8247, 8653, 7600, 8552, 6861, 7562, 8580, 7979, 7497, 9649, 8121, 8481, 9278, 9201, 9561, 6771, 9690, 9309, 8248, 8654, 7601, 8553, 6862, 7563, 8581, 7980, 7498, 9650, 8122, 8482, 9279, 9202, 9562, 6772, 9691, 9310, 8249, 8655, 7602, 8554, 6863, 7564, 8582, 7981, 7499, 9651, 8123, 8483, 9280, 9203, 9563, 6773, 9692, 9311, 8250, 8656, 7603, 8555, 6864, 7565, 8583, 7982, 7500, 9652, 8124, 8484, 9281, 9204, 9564, 6774, 9693, 9312, 8251, 8657, 7604, 8556, 6865, 7566, 8584, 7983, 7501, 9653, 8125, 8485, 9282, 9205, 9565, 6775, 9694, 9313, 8252, 8658, 7605, 8557, 6866, 7567, 8585, 7984, 7502, 9654, 8126, 8486, 9283, 9206, 9566, 6776, 9695, 9314, 8253, 8659, 7606, 8558, 6867, 7568, 8586, 7985, 7503, 9655, 8127, 8487, 9284, 9207, 9567, 6777, 9696, 9315, 8254, 8660, 7607, 8559, 6868, 7569, 8587, 7986, 7504, 9656, 8128, 8488, 9285, 9208, 9568, 6778, 9697, 9316, 8255, 8661, 7608, 8560, 6869, 7570, 8588, 7987, 7505, 9657, 8129, 8489, 9286, 9209, 9569, 6779, 9698, 9317, 8256, 8662, 7609, 8561, 6870, 7571, 8589, 7988, 7506, 9658, 8130, 8490, 9287, 9210, 9570, 6780, 9699, 9318, 8257, 8663, 7610, 8562, 6871, 7572, 8590, 7989, 7507, 9659, 8131, 8491, 9288, 9211, 9571, 6781, 9700, 9319, 8258, 8664, 7611, 8563, 6872, 7573, 8591, 7990, 7508, 9660, 8132, 8492, 9289, 9212, 9572, 6782, 9701, 9320, 8259, 8665, 7612, 8564, 6873, 7574, 8592, 7991, 7509, 9661, 8133, 8493, 9290, 9213, 9573, 6783, 9702, 9321, 8260, 8666, 7613, 8565, 6874, 7575, 8593, 7992, 7510, 9662, 8134, 8494, 9291, 9214, 9574, 6784, 9703, 9322, 8261, 8667, 7614, 8566, 6875, 7576, 8594, 7993, 7511, 9663, 8135, 8495, 9292, 9215, 9575, 6785, 9704, 9323, 8262, 8668, 7615, 8567, 6876, 7577, 8595, 7994, 7512, 9664, 8136, 8496, 9293, 9216, 9576, 6786, 9705, 9324, 8263, 8669, 7616, 8568, 6877, 7578, 8596, 7995, 7513, 9665, 8137, 8497, 9294, 9217, 9577, 6787, 9706, 9325, 8264, 8670, 7617, 8569, 6878, 7579, 8597, 7996, 7514, 9666, 8138, 8498, 9295, 9218, 9578, 6788, 9707, 9326, 8265, 8671, 7618, 8570, 6879, 7580, 8598, 7997, 7515, 9667, 8139, 8499, 9296, 9219, 9579, 6789, 9708, 9327, 8266, 8672, 7619, 8571, 6880, 7581, 8599, 7998, 7516, 9668, 8140, 8500, 9297, 9220, 9580, 6790, 9709, 9328, 8267, 8673, 7620, 8572, 6881, 7582, 8600, 7999, 7517, 9669, 8141, 8501, 9298, 9221, 9581, 6791, 9710, 9329, 8268, 8674, 7621, 8573, 6882, 7583, 8601, 8000, 7518, 9670, 8142, 8502, 9299, 9222, 9582, 6792, 9711, 9330, 8269, 8675, 7622, 8574, 6883, 7584, 8602, 8001, 7519, 9671, 8143, 8503, 9300, 9223, 9583, 6793, 9712, 9331, 8270, 8676, 7623, 8575, 6884, 7585, 8603, 8002, 7520, 9672, 8144, 8504, 9301, 9224, 9584, 6794, 9713, 9332, 8271, 8677, 7624, 8576, 6885, 7586, 8604, 8003, 7521, 9673, 8145, 8505, 9302, 9225, 9585, 6795, 9714, 9333, 8272, 8678, 7625, 8577, 6886, 7587, 8605, 8004, 7522, 9674, 8146, 8506, 9303, 9226, 9586, 6796, 9715, 9334, 8273, 8679, 7626, 8578, 6887, 7588, 8606, 8005, 7523, 9675, 8147, 8507, 9304, 9227, 9587, 6797, 9716, 9335, 8274, 8680, 7627, 8579, 6888, 7589, 8607, 8006, 7524, 9676, 8148, 8508, 9305, 9228, 9588, 6798, 9717, 9336, 8275, 8681, 7628, 8580, 6889, 7590, 8608, 8007, 7525, 9677, 8149, 8509, 9306, 9229, 9589, 6799, 9718, 9337, 8276, 8682, 7629, 8581, 6890, 7591, 8609, 8008, 7526, 9678, 8150, 8510, 9307, 9230, 9590, 6800, 9719, 9338, 8277, 8683, 7630, 8582, 6891, 7592, 8610, 8009, 7527, 9679, 8151, 8511, 9308, 9231, 9591, 6801, 9720, 9339, 8278, 8684, 7631, 8583, 6892, 7593, 8611, 8010, 7528, 9680, 8152, 8512, 9309, 9232, 9592, 6802, 9361, 9340, 8279, 8685, 7632, 8584, 6893, 7594, 8612, 8011, 7529, 9681, 8153, 8513, 9310, 9233, 9593, 6803, 9362, 9341, 8280, 8686, 7633, 8585, 6894, 7595, 8613, 8012, 7530, 9682, 8154, 8514, 9311, 9234, 9594, 6804, 9363, 9342, 7921, 8687, 7634, 8586, 6895, 7596, 8614, 8013, 7531, 9683, 8155, 8515, 9312, 9235, 9595, 6805, 9364, 9343, 7922, 8688, 7635, 8587, 6896, 7597, 8615, 8014, 7532, 9684, 8156, 8516, 9313, 9236, 9596, 6806, 9365, 9344, 7923, 8689, 7636, 8588, 6897, 7598, 8616, 8015, 7533, 9685, 8157, 8517, 9314, 9237, 9597, 6807, 9366, 9345, 7924, 8690, 7637, 8589, 6898, 7599, 8617, 8016, 7534, 9686, 8158, 8518, 9315, 9238, 9598, 6808, 9367, 9346, 7925, 8691, 7638, 8590, 6899, 7600, 8618, 8017, 7535, 9687, 8159, 8519, 9316, 9239, 9599, 6809, 9368, 9347, 7926, 8692, 7639, 8591, 6900, 7601, 8619, 8018, 7536, 9688, 8160, 8520, 9317, 9240, 9600, 6810, 9369, 9348, 7927, 8693, 7640, 8592, 6901, 7602, 8620, 8019, 7537, 9689, 8161, 8521, 9318, 9241, 9601, 6811, 9370, 9349, 7928, 8694, 7641, 8593, 6902, 7603, 8621, 8020, 7538, 9690, 8162, 8522, 9319, 9242, 9602, 6812, 9371, 9350, 7929, 8695, 7642, 8594, 6903, 7604, 8622, 8021, 7539, 9691, 8163, 8523, 9320, 9243, 9603, 6813, 9372, 9351, 7930, 8696, 7643, 8595, 6904, 7605, 8623, 8022, 7540, 9692, 8164, 8524, 9321, 9244, 9604, 6814, 9373, 9352, 7931, 8697, 7644, 8596, 6905, 7606, 8624, 8023, 7541, 9693, 8165, 8525, 9322, 9245, 9605, 6815, 9374, 9353, 7932, 8698, 7645, 8597, 6906, 7607, 8625, 8024, 7542, 9694, 8166, 8526, 9323, 9246, 9606, 6816, 9375, 9354, 7933, 8699, 7646, 8598, 6907, 7608, 8626, 8025, 7543, 9695, 8167, 8527, 9324, 9247, 9607, 6817, 9376, 9355, 7934, 8700, 7647, 8599, 6908, 7609, 8627, 8026, 7544, 9696, 8168, 8528, 9325, 9248, 9608, 6818, 9377, 9356, 7935, 8701, 7648, 8600, 6909, 7610, 8628, 8027, 7545, 9697, 8169, 8529, 9326, 9249, 9609, 6819, 9378, 9357, 7936, 8702, 7649, 8601, 6910, 7611, 8629, 8028, 7546, 9698, 8170, 8530, 9327, 9250, 9610, 6820, 9379, 9358, 7937, 8703, 7650, 8602, 6911, 7612, 8630, 8029, 7547, 9699, 8171, 8531, 9328, 9251, 9611, 6821, 9380, 9359, 7938, 8704, 7651, 8603, 6912, 7613, 8631, 8030, 7548, 9700, 8172, 8532, 9329, 9252, 9612, 6822, 9381, 9360, 7939, 8705, 7652, 8604, 6913, 7614, 8632, 8031, 7549, 9701, 8173, 8533, 9330, 9253, 9613, 6823, 9382, 9001, 7940, 8706, 7653, 8605, 6914, 7615, 8633, 8032, 7550, 9702, 8174, 8534, 9331, 9254, 9614, 6824, 9383, 9002, 7941, 8707, 7654, 8606, 6915, 7616, 8634, 8033, 7551, 9703, 8175, 8535, 9332, 9255, 9615, 6825, 9384, 9003, 7942, 8708, 7655, 8607, 6916, 7617, 8635, 8034, 7552, 9704, 8176, 8536, 9333, 9256, 9616, 6826, 9385, 9004, 7943, 8709, 7656, 8608, 6917, 7618, 8636, 8035, 7553, 9705, 8177, 8537, 9334, 9257, 9617, 6827, 9386, 9005, 7944, 8710, 7657, 8609, 6918, 7619, 8637, 8036, 7554, 9706, 8178, 8538, 9335, 9258, 9618, 6828, 9387, 9006, 7945, 8711, 7658, 8610, 6919, 7620, 8638, 8037, 7555, 9707, 8179, 8539, 9336, 9259, 9619, 6829, 9388, 9007, 7946, 8712, 7659, 8611, 6920, 7621, 8639, 8038, 7556, 9708, 8180, 8540, 9337, 9260, 9620, 6830, 9389, 9008, 7947, 8713, 7660, 8612, 6921, 7622, 8640, 8039, 7557, 9709, 8181, 8541, 9338, 9261, 9621, 6831, 9390, 9009, 7948, 8714, 7661, 8613, 6922, 7623, 8281, 8040, 7558, 9710, 8182, 8542, 9339, 9262, 9622, 6832, 9391, 9010, 7949, 8715, 7662, 8614, 6923, 7624, 8282, 8041, 7559, 9711, 8183, 8543, 9340, 9263, 9623, 6833, 9392, 9011, 7950, 8716, 7663, 8615, 6924, 7625, 8283, 8042, 7560, 9712, 8184, 8544, 9341, 9264, 9624, 6834, 9393, 9012, 7951, 8717, 7664, 8616, 6925, 7626, 8284, 8043, 7465, 9713, 8185, 8545, 9342, 9265, 9625, 6835, 9394, 9013, 7952, 8718, 7665, 8617, 6926, 7627, 8285, 8044, 7466, 9714, 8186, 8546, 9343, 9266, 9626, 6836, 9395, 9014, 7953, 8719, 7666, 8618, 6927, 7628, 8286, 8045, 7467, 9715, 8187, 8547, 9344, 9267, 9627, 6837, 9396, 9015, 7954, 8720, 7667, 8619, 6928, 7629, 8287, 8046, 7468, 9716, 8188, 8548, 9345, 9268, 9628, 6838, 9397, 9016, 7955, 8721, 7668, 8620, 6929, 7630, 8288, 8047, 7469, 9717, 8189, 8549, 9346, 9269, 9629, 6839, 9398, 9017, 7956, 8722, 7669, 8621, 6930, 7631, 8289, 8048, 7470, 9718, 8190, 8550, 9347, 9270, 9630, 6840, 9399, 9018, 7957, 8723, 7670, 8622, 6931, 7632, 8290, 8049, 7471, 9719, 8191, 8551, 9348, 9271, 9631, 6481, 9400, 9019, 7958, 8724, 7671, 8623, 6932, 7633, 8291, 8050, 7472, 9720, 8192, 8552, 9349, 9272, 9632, 6482, 9401, 9020, 7959, 8725, 7672, 8624, 6933, 7634, 8292, 8051, 7473, 9361, 8193, 8553, 9350, 9273, 9633, 6483, 9402, 9021, 7960, 8726, 7673, 8625, 6934, 7635, 8293, 8052, 7474, 9362, 8194, 8554, 9351, 9274, 9634, 6484, 9403, 9022, 7961, 8727, 7674, 8626, 6935, 7636, 8294, 8053, 7475, 9363, 8195, 8555, 9352, 9275, 9635, 6485, 9404, 9023, 7962, 8728, 7675, 8627, 6936, 7637, 8295, 8054, 7476, 9364, 8196, 8556, 9353, 9276, 9636, 6486, 9405, 9024, 7963, 8729, 7676, 8628, 6937, 7638, 8296, 8055, 7477, 9365, 8197, 8557, 9354, 9277, 9637, 6487, 9406, 9025, 7964, 8730, 7677, 8629, 6938, 7639, 8297, 8056, 7478, 9366, 8198, 8558, 9355, 9278, 9638, 6488, 9407, 9026, 7965, 8731, 7678, 8630, 6939, 7640, 8298, 8057, 7479, 9367, 8199, 8559, 9356, 9279, 9639, 6489, 9408, 9027, 7966, 8732, 7679, 8631, 6940, 7641, 8299, 8058, 7480, 9368, 8200, 8560, 9357, 9280, 9640, 6490, 9409, 9028, 7967, 8733, 7680, 8632, 6941, 7642, 8300, 8059, 7481, 9369, 8201, 8561, 9358, 9281, 9641, 6491, 9410, 9029, 7968, 8734, 7681, 8633, 6942, 7643, 8301, 8060, 7482, 9370, 8202, 8562, 9359, 9282, 9642, 6492, 9411, 9030, 7969, 8735, 7682, 8634, 6943, 7644, 8302, 8061, 7483, 9371, 8203, 8563, 9360, 9283, 9643, 6493, 9412, 9031, 7970, 8736, 7683, 8635, 6944, 7645, 8303, 8062, 7484, 9372, 8204, 8564, 9001, 9284, 9644, 6494, 9413, 9032, 7971, 8737, 7684, 8636, 6945, 7646, 8304, 8063, 7485, 9373, 8205, 8565, 9002, 9285, 9645, 6495, 9414, 9033, 7972, 8738, 7685, 8637, 6946, 7647, 8305, 8064, 7486, 9374, 8206, 8566, 9003, 9286, 9646, 6496, 9415, 9034, 7973, 8739, 7686, 8638, 6947, 7648, 8306, 8065, 7487, 9375, 8207, 8567, 9004, 9287, 9647, 6497, 9416, 9035, 7974, 8740, 7687, 8639, 6948, 7649, 8307, 8066, 7488, 9376, 8208, 8568, 9005, 9288, 9648, 6498, 9417, 9036, 7975, 8741, 7688, 8640, 6949, 7650, 8308, 8067, 7489, 9377, 8209, 8569, 9006, 9289, 9649, 6499, 9418, 9037, 7976, 8742, 7689, 8281, 6950, 7651, 8309, 8068, 7490, 9378, 8210, 8570, 9007, 9290, 9650, 6500, 9419, 9038, 7977, 8743, 7690, 8282, 6951, 7652, 8310, 8069, 7491, 9379, 8211, 8571, 9008, 9291, 9651, 6501, 9420, 9039, 7978, 8744, 7691, 8283, 6952, 7653, 8311, 8070, 7492, 9380, 8212, 8572, 9009, 9292, 9652, 6502, 9421, 9040, 7979, 8745, 7692, 8284, 6953, 7654, 8312, 8071, 7493, 9381, 8213, 8573, 9010, 9293, 9653, 6503, 9422, 9041, 7980, 8746, 7693, 8285, 6954, 7655, 8313, 8072, 7494, 9382, 8214, 8574, 9011, 9294, 9654, 6504, 9423, 9042, 7981, 8747, 7694, 8286, 6955, 7656, 8314, 8073, 7495, 9383, 8215, 8575, 9012, 9295, 9655, 6505, 9424, 9043, 7982, 8748, 7695, 8287, 6956, 7657, 8315, 8074, 7496, 9384, 8216, 8576, 9013, 9296, 9656, 6506, 9425, 9044, 7983, 8749, 7696, 8288, 6957, 7658, 8316, 8075, 7497, 9385, 8217, 8577, 9014, 9297, 9657, 6507, 9426, 9045, 7984, 8750, 7697, 8289, 6958, 7659, 8317, 8076, 7498, 9386, 8218, 8578, 9015, 9298, 9658, 6508, 9427, 9046, 7985, 8751, 7698, 8290, 6959, 7660, 8318, 8077, 7499, 9387, 8219, 8579, 9016, 9299, 9659, 6509, 9428, 9047, 7986, 8752, 7699, 8291, 6960, 7661, 8319, 8078, 7500, 9388, 8220, 8580, 9017, 9300, 9660, 6510, 9429, 9048, 7987, 8753, 7700, 8292, 6961, 7662, 8320, 8079, 7501, 9389, 8221, 8581, 9018, 9301, 9661, 6511, 9430, 9049, 7988, 8754, 7701, 8293, 6962, 7663, 8321, 8080, 7502, 9390, 8222, 8582, 9019, 9302, 9662, 6512, 9431, 9050, 7989, 8755, 7702, 8294, 6963, 7664, 8322, 8081, 7503, 9391, 8223, 8583, 9020, 9303, 9663, 6513, 9432, 9051, 7990, 8756, 7703, 8295, 6964, 7665, 8323, 8082, 7504, 9392, 8224, 8584, 9021, 9304, 9664, 6514, 9433, 9052, 7991, 8757, 7704, 8296, 6965, 7666, 8324, 8083, 7505, 9393, 8225, 8585, 9022, 9305, 9665, 6515, 9434, 9053, 7992, 8758, 7705, 8297, 6966, 7667, 8325, 8084, 7506, 9394, 8226, 8586, 9023, 9306, 9666, 6516, 9435, 9054, 7993, 8759, 7706, 8298, 6967, 7668, 8326, 8085, 7507, 9395, 8227, 8587, 9024, 9307, 9667, 6517, 9436, 9055, 7994, 8760, 7707, 8299, 6968, 7669, 8327, 8086, 7508, 9396, 8228, 8588, 9025, 9308, 9668, 6518, 9437, 9056, 7995, 8761, 7708, 8300, 6969, 7670, 8328, 8087, 7509, 9397, 8229, 8589, 9026, 9309, 9669, 6519, 9438, 9057, 7996, 8762, 7709, 8301, 6970, 7671, 8329, 8088, 7510, 9398, 8230, 8590, 9027, 9310, 9670, 6520, 9439, 9058, 7997, 8763, 7710, 8302, 6971, 7672, 8330, 8089, 7511, 9399, 8231, 8591, 9028, 9311, 9671, 6521, 9440, 9059, 7998, 8764, 7711, 8303, 6972, 7673, 8331, 8090, 7512, 9400, 8232, 8592, 9029, 9312, 9672, 6522, 9441, 9060, 7999, 8765, 7712, 8304, 6973, 7674, 8332, 8091, 7513, 9401, 8233, 8593, 9030, 9313, 9673, 6523, 9442, 9061, 8000, 8766, 7713, 8305, 6974, 7675, 8333, 8092, 7514, 9402, 8234, 8594, 9031, 9314, 9674, 6524, 9443, 9062, 8001, 8767, 7714, 8306, 6975, 7676, 8334, 8093, 7515, 9403, 8235, 8595, 9032, 9315, 9675, 6525, 9444, 9063, 8002, 8768, 7715, 8307, 6976, 7677, 8335, 8094, 7516, 9404, 8236, 8596, 9033, 9316, 9676, 6526, 9445, 9064, 8003, 8769, 7716, 8308, 6977, 7678, 8336, 8095, 7517, 9405, 8237, 8597, 9034, 9317, 9677, 6527, 9446, 9065, 8004, 8770, 7717, 8309, 6978, 7679, 8337, 8096, 7518, 9406, 8238, 8598, 9035, 9318, 9678, 6528, 9447, 9066, 8005, 8771, 7718, 8310, 6979, 7680, 8338, 8097, 7519, 9407, 8239, 8599, 9036, 9319, 9679, 6529, 9448, 9067, 8006, 8772, 7719, 8311, 6980, 7681, 8339, 8098, 7520, 9408, 8240, 8600, 9037, 9320, 9680, 6530, 9449, 9068, 8007, 8773, 7720, 8312, 6981, 7682, 8340, 8099, 7521, 9409, 8241, 8601, 9038, 9321, 9681, 6531, 9450, 9069, 8008, 8774, 7721, 8313, 6982, 7683, 8341, 8100, 7522, 9410, 8242, 8602, 9039, 9322, 9682, 6532, 9451, 9070, 8009, 8775, 7722, 8314, 6983, 7684, 8342, 8101, 7523, 9411, 8243, 8603, 9040, 9323, 9683, 6533, 9452, 9071, 8010, 8776, 7723, 8315, 6984, 7685, 8343, 8102, 7524, 9412, 8244, 8604, 9041, 9324, 9684, 6534, 9453, 9072, 8011, 8777, 7724, 8316, 6985, 7686, 8344, 8103, 7525, 9413, 8245, 8605, 9042, 9325, 9685, 6535, 9454, 9073, 8012, 8778, 7725, 8317, 6986, 7687, 8345, 8104, 7526, 9414, 8246, 8606, 9043, 9326, 9686, 6536, 9455, 9074, 8013, 8779, 7726, 8318, 6987, 7688, 8346, 8105, 7527, 9415, 8247, 8607, 9044, 9327, 9687, 6537, 9456, 9075, 8014, 8780, 7727, 8319, 6988, 7689, 8347, 8106, 7528, 9416, 8248, 8608, 9045, 9328, 9688, 6538, 9457, 9076, 8015, 8781, 7728, 8320, 6989, 7690, 8348, 8107, 7529, 9417, 8249, 8609, 9046, 9329, 9689, 6539, 9458, 9077, 8016, 8782, 7729, 8321, 6990, 7691, 8349, 8108, 7530, 9418, 8250, 8610, 9047, 9330, 9690, 6540, 9459, 9078, 8017, 8783, 7730, 8322, 6991, 7692, 8350, 8109, 7531, 9419, 8251, 8611, 9048, 9331, 9691, 6541, 9460, 9079, 8018, 8784, 7731, 8323, 6992, 7693, 8351, 8110, 7532, 9420, 8252, 8612, 9049, 9332, 9692, 6542, 9461, 9080, 8019, 8785, 7732, 8324, 6993, 7694, 8352, 8111, 7533, 9421, 8253, 8613, 9050, 9333, 9693, 6543, 9462, 9081, 8020, 8786, 7733, 8325, 6994, 7695, 8353, 8112, 7534, 9422, 8254, 8614, 9051, 9334, 9694, 6544, 9463, 9082, 8021, 8787, 7734, 8326, 6995, 7696, 8354, 8113, 7535, 9423, 8255, 8615, 9052, 9335, 9695, 6545, 9464, 9083, 8022, 8788, 7735, 8327, 6996, 7697, 8355, 8114, 7536, 9424, 8256, 8616, 9053, 9336, 9696, 6546, 9465, 9084, 8023, 8789, 7736, 8328, 6997, 7698, 8356, 8115, 7537, 9425, 8257, 8617, 9054, 9337, 9697, 6547, 9466, 9085, 8024, 8790, 7737, 8329, 6998, 7699, 8357, 8116, 7538, 9426, 8258, 8618, 9055, 9338, 9698, 6548, 9467, 9086, 8025, 8791, 7738, 8330, 6999, 7700, 8358, 8117, 7539, 9427, 8259, 8619, 9056, 9339, 9699, 6549, 9468, 9087, 8026, 8792, 7739, 8331, 7000, 7701, 8359, 8118, 7540, 9428, 8260, 8620, 9057, 9340, 9700, 6550, 9469, 9088, 8027, 8793, 7740, 8332, 7001, 7702, 8360, 8119, 7541, 9429, 8261, 8621, 9058, 9341, 9701, 6551, 9470, 9089, 8028, 8794, 7741, 8333, 7002, 7703, 8361, 8120, 7542, 9430, 8262, 8622, 9059, 9342, 9702, 6552, 9471, 9090, 8029, 8795, 7742, 8334, 7003, 7704, 8362, 8121, 7543, 9431, 8263, 8623, 9060, 9343, 9703, 6553, 9472, 9091, 8030, 8796, 7743, 8335, 7004, 7705, 8363, 8122, 7544, 9432, 8264, 8624, 9061, 9344, 9704, 6554, 9473, 9092, 8031, 8797, 7744, 8336, 7005, 7706, 8364, 8123, 7545, 9433, 8265, 8625, 9062, 9345, 9705, 6555, 9474, 9093, 8032, 8798, 7745, 8337, 7006, 7707, 8365, 8124, 7546, 9434, 8266, 8626, 9063, 9346, 9706, 6556, 9475, 9094, 8033, 8799, 7746, 8338, 7007, 7708, 8366, 8125, 7547, 9435, 8267, 8627, 9064, 9347, 9707, 6557, 9476, 9095, 8034, 8800, 7747, 8339, 7008, 7709, 8367, 8126, 7548, 9436, 8268, 8628, 9065, 9348, 9708, 6558, 9477, 9096, 8035, 8801, 7748, 8340, 7009, 7710, 8368, 8127, 7549, 9437, 8269, 8629, 9066, 9349, 9709, 6559, 9478, 9097, 8036, 8802, 7749, 8341, 7010, 7711, 8369, 8128, 7550, 9438, 8270, 8630, 9067, 9350, 9710, 6560, 9479, 9098, 8037, 8803, 7750, 8342, 7011, 7712, 8370, 8129, 7551, 9439, 8271, 8631, 9068, 9351, 9711, 6561, 9480, 9099, 8038, 8804, 7751, 8343, 7012, 7713, 8371, 8130, 7552, 9440, 8272, 8632, 9069, 9352, 9712, 6562, 9481, 9100, 8039, 8805, 7752, 8344, 7013, 7714, 8372, 8131, 7553, 9441, 8273, 8633, 9070, 9353, 9713, 6563, 9482, 9101, 8040, 8806, 7753, 8345, 7014, 7715, 8373, 8132, 7554, 9442, 8274, 8634, 9071, 9354, 9714, 6564, 9483, 9102, 8041, 8807, 7754, 8346, 7015, 7716, 8374, 8133, 7555, 9443, 8275, 8635, 9072, 9355, 9715, 6565, 9484, 9103, 8042, 8808, 7755, 8347, 7016, 7717, 8375, 8134, 7556, 9444, 8276, 8636, 9073, 9356, 9716, 6566, 9485, 9104, 8043, 8809, 7756, 8348, 7017, 7718, 8376, 8135, 7557, 9445, 8277, 8637, 9074, 9357, 9717, 6567, 9486, 9105, 8044, 8810, 7757, 8349, 7018, 7719, 8377, 8136, 7558, 9446, 8278, 8638, 9075, 9358, 9718, 6568, 9487, 9106, 8045, 8811, 7758, 8350, 7019, 7720, 8378, 8137, 7559, 9447, 8279, 8639, 9076, 9359, 9719, 6569, 9488, 9107, 8046, 8812, 7759, 8351, 7020, 7721, 8379, 8138, 7560, 9448, 8280, 8640, 9077, 9360, 9720 }; const uint16_t H_16200_9720_H_cols[] = { 2766, 2784, 2802, 2820, 2838, 2856, 2874, 2892, 2910, 2928, 2946, 2964, 2982, 3000, 3018, 3036, 3054, 3072, 3090, 3108, 3126, 3144, 3162, 3180, 3198, 3216, 3234, 3252, 3270, 3288, 3306, 3324, 3342, 3360, 3378, 3396, 3414, 3432, 3450, 3468, 3486, 3504, 3522, 3540, 3558, 3576, 3594, 3612, 3630, 3648, 3666, 3684, 3702, 3720, 3738, 3756, 3774, 3792, 3810, 3828, 3846, 3864, 3882, 3900, 3918, 3936, 3954, 3972, 3990, 4008, 4026, 4044, 4062, 4080, 4098, 4116, 4134, 4152, 4170, 4188, 4206, 4224, 4242, 4260, 4278, 4296, 4314, 4332, 4350, 4368, 4386, 4404, 4422, 4440, 4458, 4476, 4494, 4512, 4530, 4548, 4566, 4584, 4602, 4620, 4638, 4656, 4674, 4692, 4710, 4728, 4746, 4764, 4782, 4800, 4818, 4836, 4854, 4872, 4890, 4908, 4926, 4944, 4962, 4980, 4998, 5016, 5034, 5052, 5070, 5088, 5106, 5124, 5142, 5160, 5178, 5196, 5214, 5232, 5250, 5268, 5286, 5304, 5322, 5340, 5358, 5376, 5394, 5412, 5430, 5448, 5466, 5484, 5502, 5520, 5538, 5556, 5574, 5592, 5610, 5628, 5646, 5664, 5682, 5700, 5718, 5736, 5754, 5772, 5790, 5808, 5826, 5844, 5862, 5880, 5898, 5916, 5934, 5952, 5970, 5988, 6006, 6024, 6042, 6060, 6078, 6096, 6114, 6132, 6150, 6168, 6186, 6204, 6222, 6240, 6258, 6276, 6294, 6312, 6330, 6348, 6366, 6384, 6402, 6420, 6438, 6456, 6474, 12, 30, 48, 66, 84, 102, 120, 138, 156, 174, 192, 210, 228, 246, 264, 282, 300, 318, 336, 354, 372, 390, 408, 426, 444, 462, 480, 498, 516, 534, 552, 570, 588, 606, 624, 642, 660, 678, 696, 714, 732, 750, 768, 786, 804, 822, 840, 858, 876, 894, 912, 930, 948, 966, 984, 1002, 1020, 1038, 1056, 1074, 1092, 1110, 1128, 1146, 1164, 1182, 1200, 1218, 1236, 1254, 1272, 1290, 1308, 1326, 1344, 1362, 1380, 1398, 1416, 1434, 1452, 1470, 1488, 1506, 1524, 1542, 1560, 1578, 1596, 1614, 1632, 1650, 1668, 1686, 1704, 1722, 1740, 1758, 1776, 1794, 1812, 1830, 1848, 1866, 1884, 1902, 1920, 1938, 1956, 1974, 1992, 2010, 2028, 2046, 2064, 2082, 2100, 2118, 2136, 2154, 2172, 2190, 2208, 2226, 2244, 2262, 2280, 2298, 2316, 2334, 2352, 2370, 2388, 2406, 2424, 2442, 2460, 2478, 2496, 2514, 2532, 2550, 2568, 2586, 2604, 2622, 2640, 2658, 2676, 2694, 2712, 2730, 2748, 4952, 4970, 4988, 5006, 5024, 5042, 5060, 5078, 5096, 5114, 5132, 5150, 5168, 5186, 5204, 5222, 5240, 5258, 5276, 5294, 5312, 5330, 5348, 5366, 5384, 5402, 5420, 5438, 5456, 5474, 5492, 5510, 5528, 5546, 5564, 5582, 5600, 5618, 5636, 5654, 5672, 5690, 5708, 5726, 5744, 5762, 5780, 5798, 5816, 5834, 5852, 5870, 5888, 5906, 5924, 5942, 5960, 5978, 5996, 6014, 6032, 6050, 6068, 6086, 6104, 6122, 6140, 6158, 6176, 6194, 6212, 6230, 6248, 6266, 6284, 6302, 6320, 6338, 6356, 6374, 6392, 6410, 6428, 6446, 6464, 2, 20, 38, 56, 74, 92, 110, 128, 146, 164, 182, 200, 218, 236, 254, 272, 290, 308, 326, 344, 362, 380, 398, 416, 434, 452, 470, 488, 506, 524, 542, 560, 578, 596, 614, 632, 650, 668, 686, 704, 722, 740, 758, 776, 794, 812, 830, 848, 866, 884, 902, 920, 938, 956, 974, 992, 1010, 1028, 1046, 1064, 1082, 1100, 1118, 1136, 1154, 1172, 1190, 1208, 1226, 1244, 1262, 1280, 1298, 1316, 1334, 1352, 1370, 1388, 1406, 1424, 1442, 1460, 1478, 1496, 1514, 1532, 1550, 1568, 1586, 1604, 1622, 1640, 1658, 1676, 1694, 1712, 1730, 1748, 1766, 1784, 1802, 1820, 1838, 1856, 1874, 1892, 1910, 1928, 1946, 1964, 1982, 2000, 2018, 2036, 2054, 2072, 2090, 2108, 2126, 2144, 2162, 2180, 2198, 2216, 2234, 2252, 2270, 2288, 2306, 2324, 2342, 2360, 2378, 2396, 2414, 2432, 2450, 2468, 2486, 2504, 2522, 2540, 2558, 2576, 2594, 2612, 2630, 2648, 2666, 2684, 2702, 2720, 2738, 2756, 2774, 2792, 2810, 2828, 2846, 2864, 2882, 2900, 2918, 2936, 2954, 2972, 2990, 3008, 3026, 3044, 3062, 3080, 3098, 3116, 3134, 3152, 3170, 3188, 3206, 3224, 3242, 3260, 3278, 3296, 3314, 3332, 3350, 3368, 3386, 3404, 3422, 3440, 3458, 3476, 3494, 3512, 3530, 3548, 3566, 3584, 3602, 3620, 3638, 3656, 3674, 3692, 3710, 3728, 3746, 3764, 3782, 3800, 3818, 3836, 3854, 3872, 3890, 3908, 3926, 3944, 3962, 3980, 3998, 4016, 4034, 4052, 4070, 4088, 4106, 4124, 4142, 4160, 4178, 4196, 4214, 4232, 4250, 4268, 4286, 4304, 4322, 4340, 4358, 4376, 4394, 4412, 4430, 4448, 4466, 4484, 4502, 4520, 4538, 4556, 4574, 4592, 4610, 4628, 4646, 4664, 4682, 4700, 4718, 4736, 4754, 4772, 4790, 4808, 4826, 4844, 4862, 4880, 4898, 4916, 4934, 211, 229, 247, 265, 283, 301, 319, 337, 355, 373, 391, 409, 427, 445, 463, 481, 499, 517, 535, 553, 571, 589, 607, 625, 643, 661, 679, 697, 715, 733, 751, 769, 787, 805, 823, 841, 859, 877, 895, 913, 931, 949, 967, 985, 1003, 1021, 1039, 1057, 1075, 1093, 1111, 1129, 1147, 1165, 1183, 1201, 1219, 1237, 1255, 1273, 1291, 1309, 1327, 1345, 1363, 1381, 1399, 1417, 1435, 1453, 1471, 1489, 1507, 1525, 1543, 1561, 1579, 1597, 1615, 1633, 1651, 1669, 1687, 1705, 1723, 1741, 1759, 1777, 1795, 1813, 1831, 1849, 1867, 1885, 1903, 1921, 1939, 1957, 1975, 1993, 2011, 2029, 2047, 2065, 2083, 2101, 2119, 2137, 2155, 2173, 2191, 2209, 2227, 2245, 2263, 2281, 2299, 2317, 2335, 2353, 2371, 2389, 2407, 2425, 2443, 2461, 2479, 2497, 2515, 2533, 2551, 2569, 2587, 2605, 2623, 2641, 2659, 2677, 2695, 2713, 2731, 2749, 2767, 2785, 2803, 2821, 2839, 2857, 2875, 2893, 2911, 2929, 2947, 2965, 2983, 3001, 3019, 3037, 3055, 3073, 3091, 3109, 3127, 3145, 3163, 3181, 3199, 3217, 3235, 3253, 3271, 3289, 3307, 3325, 3343, 3361, 3379, 3397, 3415, 3433, 3451, 3469, 3487, 3505, 3523, 3541, 3559, 3577, 3595, 3613, 3631, 3649, 3667, 3685, 3703, 3721, 3739, 3757, 3775, 3793, 3811, 3829, 3847, 3865, 3883, 3901, 3919, 3937, 3955, 3973, 3991, 4009, 4027, 4045, 4063, 4081, 4099, 4117, 4135, 4153, 4171, 4189, 4207, 4225, 4243, 4261, 4279, 4297, 4315, 4333, 4351, 4369, 4387, 4405, 4423, 4441, 4459, 4477, 4495, 4513, 4531, 4549, 4567, 4585, 4603, 4621, 4639, 4657, 4675, 4693, 4711, 4729, 4747, 4765, 4783, 4801, 4819, 4837, 4855, 4873, 4891, 4909, 4927, 4945, 4963, 4981, 4999, 5017, 5035, 5053, 5071, 5089, 5107, 5125, 5143, 5161, 5179, 5197, 5215, 5233, 5251, 5269, 5287, 5305, 5323, 5341, 5359, 5377, 5395, 5413, 5431, 5449, 5467, 5485, 5503, 5521, 5539, 5557, 5575, 5593, 5611, 5629, 5647, 5665, 5683, 5701, 5719, 5737, 5755, 5773, 5791, 5809, 5827, 5845, 5863, 5881, 5899, 5917, 5935, 5953, 5971, 5989, 6007, 6025, 6043, 6061, 6079, 6097, 6115, 6133, 6151, 6169, 6187, 6205, 6223, 6241, 6259, 6277, 6295, 6313, 6331, 6349, 6367, 6385, 6403, 6421, 6439, 6457, 6475, 13, 31, 49, 67, 85, 103, 121, 139, 157, 175, 193, 4168, 4186, 4204, 4222, 4240, 4258, 4276, 4294, 4312, 4330, 4348, 4366, 4384, 4402, 4420, 4438, 4456, 4474, 4492, 4510, 4528, 4546, 4564, 4582, 4600, 4618, 4636, 4654, 4672, 4690, 4708, 4726, 4744, 4762, 4780, 4798, 4816, 4834, 4852, 4870, 4888, 4906, 4924, 4942, 4960, 4978, 4996, 5014, 5032, 5050, 5068, 5086, 5104, 5122, 5140, 5158, 5176, 5194, 5212, 5230, 5248, 5266, 5284, 5302, 5320, 5338, 5356, 5374, 5392, 5410, 5428, 5446, 5464, 5482, 5500, 5518, 5536, 5554, 5572, 5590, 5608, 5626, 5644, 5662, 5680, 5698, 5716, 5734, 5752, 5770, 5788, 5806, 5824, 5842, 5860, 5878, 5896, 5914, 5932, 5950, 5968, 5986, 6004, 6022, 6040, 6058, 6076, 6094, 6112, 6130, 6148, 6166, 6184, 6202, 6220, 6238, 6256, 6274, 6292, 6310, 6328, 6346, 6364, 6382, 6400, 6418, 6436, 6454, 6472, 10, 28, 46, 64, 82, 100, 118, 136, 154, 172, 190, 208, 226, 244, 262, 280, 298, 316, 334, 352, 370, 388, 406, 424, 442, 460, 478, 496, 514, 532, 550, 568, 586, 604, 622, 640, 658, 676, 694, 712, 730, 748, 766, 784, 802, 820, 838, 856, 874, 892, 910, 928, 946, 964, 982, 1000, 1018, 1036, 1054, 1072, 1090, 1108, 1126, 1144, 1162, 1180, 1198, 1216, 1234, 1252, 1270, 1288, 1306, 1324, 1342, 1360, 1378, 1396, 1414, 1432, 1450, 1468, 1486, 1504, 1522, 1540, 1558, 1576, 1594, 1612, 1630, 1648, 1666, 1684, 1702, 1720, 1738, 1756, 1774, 1792, 1810, 1828, 1846, 1864, 1882, 1900, 1918, 1936, 1954, 1972, 1990, 2008, 2026, 2044, 2062, 2080, 2098, 2116, 2134, 2152, 2170, 2188, 2206, 2224, 2242, 2260, 2278, 2296, 2314, 2332, 2350, 2368, 2386, 2404, 2422, 2440, 2458, 2476, 2494, 2512, 2530, 2548, 2566, 2584, 2602, 2620, 2638, 2656, 2674, 2692, 2710, 2728, 2746, 2764, 2782, 2800, 2818, 2836, 2854, 2872, 2890, 2908, 2926, 2944, 2962, 2980, 2998, 3016, 3034, 3052, 3070, 3088, 3106, 3124, 3142, 3160, 3178, 3196, 3214, 3232, 3250, 3268, 3286, 3304, 3322, 3340, 3358, 3376, 3394, 3412, 3430, 3448, 3466, 3484, 3502, 3520, 3538, 3556, 3574, 3592, 3610, 3628, 3646, 3664, 3682, 3700, 3718, 3736, 3754, 3772, 3790, 3808, 3826, 3844, 3862, 3880, 3898, 3916, 3934, 3952, 3970, 3988, 4006, 4024, 4042, 4060, 4078, 4096, 4114, 4132, 4150, 4202, 4220, 4238, 4256, 4274, 4292, 4310, 4328, 4346, 4364, 4382, 4400, 4418, 4436, 4454, 4472, 4490, 4508, 4526, 4544, 4562, 4580, 4598, 4616, 4634, 4652, 4670, 4688, 4706, 4724, 4742, 4760, 4778, 4796, 4814, 4832, 4850, 4868, 4886, 4904, 4922, 4940, 4958, 4976, 4994, 5012, 5030, 5048, 5066, 5084, 5102, 5120, 5138, 5156, 5174, 5192, 5210, 5228, 5246, 5264, 5282, 5300, 5318, 5336, 5354, 5372, 5390, 5408, 5426, 5444, 5462, 5480, 5498, 5516, 5534, 5552, 5570, 5588, 5606, 5624, 5642, 5660, 5678, 5696, 5714, 5732, 5750, 5768, 5786, 5804, 5822, 5840, 5858, 5876, 5894, 5912, 5930, 5948, 5966, 5984, 6002, 6020, 6038, 6056, 6074, 6092, 6110, 6128, 6146, 6164, 6182, 6200, 6218, 6236, 6254, 6272, 6290, 6308, 6326, 6344, 6362, 6380, 6398, 6416, 6434, 6452, 6470, 8, 26, 44, 62, 80, 98, 116, 134, 152, 170, 188, 206, 224, 242, 260, 278, 296, 314, 332, 350, 368, 386, 404, 422, 440, 458, 476, 494, 512, 530, 548, 566, 584, 602, 620, 638, 656, 674, 692, 710, 728, 746, 764, 782, 800, 818, 836, 854, 872, 890, 908, 926, 944, 962, 980, 998, 1016, 1034, 1052, 1070, 1088, 1106, 1124, 1142, 1160, 1178, 1196, 1214, 1232, 1250, 1268, 1286, 1304, 1322, 1340, 1358, 1376, 1394, 1412, 1430, 1448, 1466, 1484, 1502, 1520, 1538, 1556, 1574, 1592, 1610, 1628, 1646, 1664, 1682, 1700, 1718, 1736, 1754, 1772, 1790, 1808, 1826, 1844, 1862, 1880, 1898, 1916, 1934, 1952, 1970, 1988, 2006, 2024, 2042, 2060, 2078, 2096, 2114, 2132, 2150, 2168, 2186, 2204, 2222, 2240, 2258, 2276, 2294, 2312, 2330, 2348, 2366, 2384, 2402, 2420, 2438, 2456, 2474, 2492, 2510, 2528, 2546, 2564, 2582, 2600, 2618, 2636, 2654, 2672, 2690, 2708, 2726, 2744, 2762, 2780, 2798, 2816, 2834, 2852, 2870, 2888, 2906, 2924, 2942, 2960, 2978, 2996, 3014, 3032, 3050, 3068, 3086, 3104, 3122, 3140, 3158, 3176, 3194, 3212, 3230, 3248, 3266, 3284, 3302, 3320, 3338, 3356, 3374, 3392, 3410, 3428, 3446, 3464, 3482, 3500, 3518, 3536, 3554, 3572, 3590, 3608, 3626, 3644, 3662, 3680, 3698, 3716, 3734, 3752, 3770, 3788, 3806, 3824, 3842, 3860, 3878, 3896, 3914, 3932, 3950, 3968, 3986, 4004, 4022, 4040, 4058, 4076, 4094, 4112, 4130, 4148, 4166, 4184, 2671, 2689, 2707, 2725, 2743, 2761, 2779, 2797, 2815, 2833, 2851, 2869, 2887, 2905, 2923, 2941, 2959, 2977, 2995, 3013, 3031, 3049, 3067, 3085, 3103, 3121, 3139, 3157, 3175, 3193, 3211, 3229, 3247, 3265, 3283, 3301, 3319, 3337, 3355, 3373, 3391, 3409, 3427, 3445, 3463, 3481, 3499, 3517, 3535, 3553, 3571, 3589, 3607, 3625, 3643, 3661, 3679, 3697, 3715, 3733, 3751, 3769, 3787, 3805, 3823, 3841, 3859, 3877, 3895, 3913, 3931, 3949, 3967, 3985, 4003, 4021, 4039, 4057, 4075, 4093, 4111, 4129, 4147, 4165, 4183, 4201, 4219, 4237, 4255, 4273, 4291, 4309, 4327, 4345, 4363, 4381, 4399, 4417, 4435, 4453, 4471, 4489, 4507, 4525, 4543, 4561, 4579, 4597, 4615, 4633, 4651, 4669, 4687, 4705, 4723, 4741, 4759, 4777, 4795, 4813, 4831, 4849, 4867, 4885, 4903, 4921, 4939, 4957, 4975, 4993, 5011, 5029, 5047, 5065, 5083, 5101, 5119, 5137, 5155, 5173, 5191, 5209, 5227, 5245, 5263, 5281, 5299, 5317, 5335, 5353, 5371, 5389, 5407, 5425, 5443, 5461, 5479, 5497, 5515, 5533, 5551, 5569, 5587, 5605, 5623, 5641, 5659, 5677, 5695, 5713, 5731, 5749, 5767, 5785, 5803, 5821, 5839, 5857, 5875, 5893, 5911, 5929, 5947, 5965, 5983, 6001, 6019, 6037, 6055, 6073, 6091, 6109, 6127, 6145, 6163, 6181, 6199, 6217, 6235, 6253, 6271, 6289, 6307, 6325, 6343, 6361, 6379, 6397, 6415, 6433, 6451, 6469, 7, 25, 43, 61, 79, 97, 115, 133, 151, 169, 187, 205, 223, 241, 259, 277, 295, 313, 331, 349, 367, 385, 403, 421, 439, 457, 475, 493, 511, 529, 547, 565, 583, 601, 619, 637, 655, 673, 691, 709, 727, 745, 763, 781, 799, 817, 835, 853, 871, 889, 907, 925, 943, 961, 979, 997, 1015, 1033, 1051, 1069, 1087, 1105, 1123, 1141, 1159, 1177, 1195, 1213, 1231, 1249, 1267, 1285, 1303, 1321, 1339, 1357, 1375, 1393, 1411, 1429, 1447, 1465, 1483, 1501, 1519, 1537, 1555, 1573, 1591, 1609, 1627, 1645, 1663, 1681, 1699, 1717, 1735, 1753, 1771, 1789, 1807, 1825, 1843, 1861, 1879, 1897, 1915, 1933, 1951, 1969, 1987, 2005, 2023, 2041, 2059, 2077, 2095, 2113, 2131, 2149, 2167, 2185, 2203, 2221, 2239, 2257, 2275, 2293, 2311, 2329, 2347, 2365, 2383, 2401, 2419, 2437, 2455, 2473, 2491, 2509, 2527, 2545, 2563, 2581, 2599, 2617, 2635, 2653, 5517, 5535, 5553, 5571, 5589, 5607, 5625, 5643, 5661, 5679, 5697, 5715, 5733, 5751, 5769, 5787, 5805, 5823, 5841, 5859, 5877, 5895, 5913, 5931, 5949, 5967, 5985, 6003, 6021, 6039, 6057, 6075, 6093, 6111, 6129, 6147, 6165, 6183, 6201, 6219, 6237, 6255, 6273, 6291, 6309, 6327, 6345, 6363, 6381, 6399, 6417, 6435, 6453, 6471, 9, 27, 45, 63, 81, 99, 117, 135, 153, 171, 189, 207, 225, 243, 261, 279, 297, 315, 333, 351, 369, 387, 405, 423, 441, 459, 477, 495, 513, 531, 549, 567, 585, 603, 621, 639, 657, 675, 693, 711, 729, 747, 765, 783, 801, 819, 837, 855, 873, 891, 909, 927, 945, 963, 981, 999, 1017, 1035, 1053, 1071, 1089, 1107, 1125, 1143, 1161, 1179, 1197, 1215, 1233, 1251, 1269, 1287, 1305, 1323, 1341, 1359, 1377, 1395, 1413, 1431, 1449, 1467, 1485, 1503, 1521, 1539, 1557, 1575, 1593, 1611, 1629, 1647, 1665, 1683, 1701, 1719, 1737, 1755, 1773, 1791, 1809, 1827, 1845, 1863, 1881, 1899, 1917, 1935, 1953, 1971, 1989, 2007, 2025, 2043, 2061, 2079, 2097, 2115, 2133, 2151, 2169, 2187, 2205, 2223, 2241, 2259, 2277, 2295, 2313, 2331, 2349, 2367, 2385, 2403, 2421, 2439, 2457, 2475, 2493, 2511, 2529, 2547, 2565, 2583, 2601, 2619, 2637, 2655, 2673, 2691, 2709, 2727, 2745, 2763, 2781, 2799, 2817, 2835, 2853, 2871, 2889, 2907, 2925, 2943, 2961, 2979, 2997, 3015, 3033, 3051, 3069, 3087, 3105, 3123, 3141, 3159, 3177, 3195, 3213, 3231, 3249, 3267, 3285, 3303, 3321, 3339, 3357, 3375, 3393, 3411, 3429, 3447, 3465, 3483, 3501, 3519, 3537, 3555, 3573, 3591, 3609, 3627, 3645, 3663, 3681, 3699, 3717, 3735, 3753, 3771, 3789, 3807, 3825, 3843, 3861, 3879, 3897, 3915, 3933, 3951, 3969, 3987, 4005, 4023, 4041, 4059, 4077, 4095, 4113, 4131, 4149, 4167, 4185, 4203, 4221, 4239, 4257, 4275, 4293, 4311, 4329, 4347, 4365, 4383, 4401, 4419, 4437, 4455, 4473, 4491, 4509, 4527, 4545, 4563, 4581, 4599, 4617, 4635, 4653, 4671, 4689, 4707, 4725, 4743, 4761, 4779, 4797, 4815, 4833, 4851, 4869, 4887, 4905, 4923, 4941, 4959, 4977, 4995, 5013, 5031, 5049, 5067, 5085, 5103, 5121, 5139, 5157, 5175, 5193, 5211, 5229, 5247, 5265, 5283, 5301, 5319, 5337, 5355, 5373, 5391, 5409, 5427, 5445, 5463, 5481, 5499, 4245, 4263, 4281, 4299, 4317, 4335, 4353, 4371, 4389, 4407, 4425, 4443, 4461, 4479, 4497, 4515, 4533, 4551, 4569, 4587, 4605, 4623, 4641, 4659, 4677, 4695, 4713, 4731, 4749, 4767, 4785, 4803, 4821, 4839, 4857, 4875, 4893, 4911, 4929, 4947, 4965, 4983, 5001, 5019, 5037, 5055, 5073, 5091, 5109, 5127, 5145, 5163, 5181, 5199, 5217, 5235, 5253, 5271, 5289, 5307, 5325, 5343, 5361, 5379, 5397, 5415, 5433, 5451, 5469, 5487, 5505, 5523, 5541, 5559, 5577, 5595, 5613, 5631, 5649, 5667, 5685, 5703, 5721, 5739, 5757, 5775, 5793, 5811, 5829, 5847, 5865, 5883, 5901, 5919, 5937, 5955, 5973, 5991, 6009, 6027, 6045, 6063, 6081, 6099, 6117, 6135, 6153, 6171, 6189, 6207, 6225, 6243, 6261, 6279, 6297, 6315, 6333, 6351, 6369, 6387, 6405, 6423, 6441, 6459, 6477, 15, 33, 51, 69, 87, 105, 123, 141, 159, 177, 195, 213, 231, 249, 267, 285, 303, 321, 339, 357, 375, 393, 411, 429, 447, 465, 483, 501, 519, 537, 555, 573, 591, 609, 627, 645, 663, 681, 699, 717, 735, 753, 771, 789, 807, 825, 843, 861, 879, 897, 915, 933, 951, 969, 987, 1005, 1023, 1041, 1059, 1077, 1095, 1113, 1131, 1149, 1167, 1185, 1203, 1221, 1239, 1257, 1275, 1293, 1311, 1329, 1347, 1365, 1383, 1401, 1419, 1437, 1455, 1473, 1491, 1509, 1527, 1545, 1563, 1581, 1599, 1617, 1635, 1653, 1671, 1689, 1707, 1725, 1743, 1761, 1779, 1797, 1815, 1833, 1851, 1869, 1887, 1905, 1923, 1941, 1959, 1977, 1995, 2013, 2031, 2049, 2067, 2085, 2103, 2121, 2139, 2157, 2175, 2193, 2211, 2229, 2247, 2265, 2283, 2301, 2319, 2337, 2355, 2373, 2391, 2409, 2427, 2445, 2463, 2481, 2499, 2517, 2535, 2553, 2571, 2589, 2607, 2625, 2643, 2661, 2679, 2697, 2715, 2733, 2751, 2769, 2787, 2805, 2823, 2841, 2859, 2877, 2895, 2913, 2931, 2949, 2967, 2985, 3003, 3021, 3039, 3057, 3075, 3093, 3111, 3129, 3147, 3165, 3183, 3201, 3219, 3237, 3255, 3273, 3291, 3309, 3327, 3345, 3363, 3381, 3399, 3417, 3435, 3453, 3471, 3489, 3507, 3525, 3543, 3561, 3579, 3597, 3615, 3633, 3651, 3669, 3687, 3705, 3723, 3741, 3759, 3777, 3795, 3813, 3831, 3849, 3867, 3885, 3903, 3921, 3939, 3957, 3975, 3993, 4011, 4029, 4047, 4065, 4083, 4101, 4119, 4137, 4155, 4173, 4191, 4209, 4227, 2143, 2161, 2179, 2197, 2215, 2233, 2251, 2269, 2287, 2305, 2323, 2341, 2359, 2377, 2395, 2413, 2431, 2449, 2467, 2485, 2503, 2521, 2539, 2557, 2575, 2593, 2611, 2629, 2647, 2665, 2683, 2701, 2719, 2737, 2755, 2773, 2791, 2809, 2827, 2845, 2863, 2881, 2899, 2917, 2935, 2953, 2971, 2989, 3007, 3025, 3043, 3061, 3079, 3097, 3115, 3133, 3151, 3169, 3187, 3205, 3223, 3241, 3259, 3277, 3295, 3313, 3331, 3349, 3367, 3385, 3403, 3421, 3439, 3457, 3475, 3493, 3511, 3529, 3547, 3565, 3583, 3601, 3619, 3637, 3655, 3673, 3691, 3709, 3727, 3745, 3763, 3781, 3799, 3817, 3835, 3853, 3871, 3889, 3907, 3925, 3943, 3961, 3979, 3997, 4015, 4033, 4051, 4069, 4087, 4105, 4123, 4141, 4159, 4177, 4195, 4213, 4231, 4249, 4267, 4285, 4303, 4321, 4339, 4357, 4375, 4393, 4411, 4429, 4447, 4465, 4483, 4501, 4519, 4537, 4555, 4573, 4591, 4609, 4627, 4645, 4663, 4681, 4699, 4717, 4735, 4753, 4771, 4789, 4807, 4825, 4843, 4861, 4879, 4897, 4915, 4933, 4951, 4969, 4987, 5005, 5023, 5041, 5059, 5077, 5095, 5113, 5131, 5149, 5167, 5185, 5203, 5221, 5239, 5257, 5275, 5293, 5311, 5329, 5347, 5365, 5383, 5401, 5419, 5437, 5455, 5473, 5491, 5509, 5527, 5545, 5563, 5581, 5599, 5617, 5635, 5653, 5671, 5689, 5707, 5725, 5743, 5761, 5779, 5797, 5815, 5833, 5851, 5869, 5887, 5905, 5923, 5941, 5959, 5977, 5995, 6013, 6031, 6049, 6067, 6085, 6103, 6121, 6139, 6157, 6175, 6193, 6211, 6229, 6247, 6265, 6283, 6301, 6319, 6337, 6355, 6373, 6391, 6409, 6427, 6445, 6463, 1, 19, 37, 55, 73, 91, 109, 127, 145, 163, 181, 199, 217, 235, 253, 271, 289, 307, 325, 343, 361, 379, 397, 415, 433, 451, 469, 487, 505, 523, 541, 559, 577, 595, 613, 631, 649, 667, 685, 703, 721, 739, 757, 775, 793, 811, 829, 847, 865, 883, 901, 919, 937, 955, 973, 991, 1009, 1027, 1045, 1063, 1081, 1099, 1117, 1135, 1153, 1171, 1189, 1207, 1225, 1243, 1261, 1279, 1297, 1315, 1333, 1351, 1369, 1387, 1405, 1423, 1441, 1459, 1477, 1495, 1513, 1531, 1549, 1567, 1585, 1603, 1621, 1639, 1657, 1675, 1693, 1711, 1729, 1747, 1765, 1783, 1801, 1819, 1837, 1855, 1873, 1891, 1909, 1927, 1945, 1963, 1981, 1999, 2017, 2035, 2053, 2071, 2089, 2107, 2125, 1, 19, 37, 55, 73, 91, 109, 127, 145, 163, 181, 199, 217, 235, 253, 271, 289, 307, 325, 343, 361, 379, 397, 415, 433, 451, 469, 487, 505, 523, 541, 559, 577, 595, 613, 631, 649, 667, 685, 703, 721, 739, 757, 775, 793, 811, 829, 847, 865, 883, 901, 919, 937, 955, 973, 991, 1009, 1027, 1045, 1063, 1081, 1099, 1117, 1135, 1153, 1171, 1189, 1207, 1225, 1243, 1261, 1279, 1297, 1315, 1333, 1351, 1369, 1387, 1405, 1423, 1441, 1459, 1477, 1495, 1513, 1531, 1549, 1567, 1585, 1603, 1621, 1639, 1657, 1675, 1693, 1711, 1729, 1747, 1765, 1783, 1801, 1819, 1837, 1855, 1873, 1891, 1909, 1927, 1945, 1963, 1981, 1999, 2017, 2035, 2053, 2071, 2089, 2107, 2125, 2143, 2161, 2179, 2197, 2215, 2233, 2251, 2269, 2287, 2305, 2323, 2341, 2359, 2377, 2395, 2413, 2431, 2449, 2467, 2485, 2503, 2521, 2539, 2557, 2575, 2593, 2611, 2629, 2647, 2665, 2683, 2701, 2719, 2737, 2755, 2773, 2791, 2809, 2827, 2845, 2863, 2881, 2899, 2917, 2935, 2953, 2971, 2989, 3007, 3025, 3043, 3061, 3079, 3097, 3115, 3133, 3151, 3169, 3187, 3205, 3223, 3241, 3259, 3277, 3295, 3313, 3331, 3349, 3367, 3385, 3403, 3421, 3439, 3457, 3475, 3493, 3511, 3529, 3547, 3565, 3583, 3601, 3619, 3637, 3655, 3673, 3691, 3709, 3727, 3745, 3763, 3781, 3799, 3817, 3835, 3853, 3871, 3889, 3907, 3925, 3943, 3961, 3979, 3997, 4015, 4033, 4051, 4069, 4087, 4105, 4123, 4141, 4159, 4177, 4195, 4213, 4231, 4249, 4267, 4285, 4303, 4321, 4339, 4357, 4375, 4393, 4411, 4429, 4447, 4465, 4483, 4501, 4519, 4537, 4555, 4573, 4591, 4609, 4627, 4645, 4663, 4681, 4699, 4717, 4735, 4753, 4771, 4789, 4807, 4825, 4843, 4861, 4879, 4897, 4915, 4933, 4951, 4969, 4987, 5005, 5023, 5041, 5059, 5077, 5095, 5113, 5131, 5149, 5167, 5185, 5203, 5221, 5239, 5257, 5275, 5293, 5311, 5329, 5347, 5365, 5383, 5401, 5419, 5437, 5455, 5473, 5491, 5509, 5527, 5545, 5563, 5581, 5599, 5617, 5635, 5653, 5671, 5689, 5707, 5725, 5743, 5761, 5779, 5797, 5815, 5833, 5851, 5869, 5887, 5905, 5923, 5941, 5959, 5977, 5995, 6013, 6031, 6049, 6067, 6085, 6103, 6121, 6139, 6157, 6175, 6193, 6211, 6229, 6247, 6265, 6283, 6301, 6319, 6337, 6355, 6373, 6391, 6409, 6427, 6445, 6463, 2, 20, 38, 56, 74, 92, 110, 128, 146, 164, 182, 200, 218, 236, 254, 272, 290, 308, 326, 344, 362, 380, 398, 416, 434, 452, 470, 488, 506, 524, 542, 560, 578, 596, 614, 632, 650, 668, 686, 704, 722, 740, 758, 776, 794, 812, 830, 848, 866, 884, 902, 920, 938, 956, 974, 992, 1010, 1028, 1046, 1064, 1082, 1100, 1118, 1136, 1154, 1172, 1190, 1208, 1226, 1244, 1262, 1280, 1298, 1316, 1334, 1352, 1370, 1388, 1406, 1424, 1442, 1460, 1478, 1496, 1514, 1532, 1550, 1568, 1586, 1604, 1622, 1640, 1658, 1676, 1694, 1712, 1730, 1748, 1766, 1784, 1802, 1820, 1838, 1856, 1874, 1892, 1910, 1928, 1946, 1964, 1982, 2000, 2018, 2036, 2054, 2072, 2090, 2108, 2126, 2144, 2162, 2180, 2198, 2216, 2234, 2252, 2270, 2288, 2306, 2324, 2342, 2360, 2378, 2396, 2414, 2432, 2450, 2468, 2486, 2504, 2522, 2540, 2558, 2576, 2594, 2612, 2630, 2648, 2666, 2684, 2702, 2720, 2738, 2756, 2774, 2792, 2810, 2828, 2846, 2864, 2882, 2900, 2918, 2936, 2954, 2972, 2990, 3008, 3026, 3044, 3062, 3080, 3098, 3116, 3134, 3152, 3170, 3188, 3206, 3224, 3242, 3260, 3278, 3296, 3314, 3332, 3350, 3368, 3386, 3404, 3422, 3440, 3458, 3476, 3494, 3512, 3530, 3548, 3566, 3584, 3602, 3620, 3638, 3656, 3674, 3692, 3710, 3728, 3746, 3764, 3782, 3800, 3818, 3836, 3854, 3872, 3890, 3908, 3926, 3944, 3962, 3980, 3998, 4016, 4034, 4052, 4070, 4088, 4106, 4124, 4142, 4160, 4178, 4196, 4214, 4232, 4250, 4268, 4286, 4304, 4322, 4340, 4358, 4376, 4394, 4412, 4430, 4448, 4466, 4484, 4502, 4520, 4538, 4556, 4574, 4592, 4610, 4628, 4646, 4664, 4682, 4700, 4718, 4736, 4754, 4772, 4790, 4808, 4826, 4844, 4862, 4880, 4898, 4916, 4934, 4952, 4970, 4988, 5006, 5024, 5042, 5060, 5078, 5096, 5114, 5132, 5150, 5168, 5186, 5204, 5222, 5240, 5258, 5276, 5294, 5312, 5330, 5348, 5366, 5384, 5402, 5420, 5438, 5456, 5474, 5492, 5510, 5528, 5546, 5564, 5582, 5600, 5618, 5636, 5654, 5672, 5690, 5708, 5726, 5744, 5762, 5780, 5798, 5816, 5834, 5852, 5870, 5888, 5906, 5924, 5942, 5960, 5978, 5996, 6014, 6032, 6050, 6068, 6086, 6104, 6122, 6140, 6158, 6176, 6194, 6212, 6230, 6248, 6266, 6284, 6302, 6320, 6338, 6356, 6374, 6392, 6410, 6428, 6446, 6464, 3, 21, 39, 57, 75, 93, 111, 129, 147, 165, 183, 201, 219, 237, 255, 273, 291, 309, 327, 345, 363, 381, 399, 417, 435, 453, 471, 489, 507, 525, 543, 561, 579, 597, 615, 633, 651, 669, 687, 705, 723, 741, 759, 777, 795, 813, 831, 849, 867, 885, 903, 921, 939, 957, 975, 993, 1011, 1029, 1047, 1065, 1083, 1101, 1119, 1137, 1155, 1173, 1191, 1209, 1227, 1245, 1263, 1281, 1299, 1317, 1335, 1353, 1371, 1389, 1407, 1425, 1443, 1461, 1479, 1497, 1515, 1533, 1551, 1569, 1587, 1605, 1623, 1641, 1659, 1677, 1695, 1713, 1731, 1749, 1767, 1785, 1803, 1821, 1839, 1857, 1875, 1893, 1911, 1929, 1947, 1965, 1983, 2001, 2019, 2037, 2055, 2073, 2091, 2109, 2127, 2145, 2163, 2181, 2199, 2217, 2235, 2253, 2271, 2289, 2307, 2325, 2343, 2361, 2379, 2397, 2415, 2433, 2451, 2469, 2487, 2505, 2523, 2541, 2559, 2577, 2595, 2613, 2631, 2649, 2667, 2685, 2703, 2721, 2739, 2757, 2775, 2793, 2811, 2829, 2847, 2865, 2883, 2901, 2919, 2937, 2955, 2973, 2991, 3009, 3027, 3045, 3063, 3081, 3099, 3117, 3135, 3153, 3171, 3189, 3207, 3225, 3243, 3261, 3279, 3297, 3315, 3333, 3351, 3369, 3387, 3405, 3423, 3441, 3459, 3477, 3495, 3513, 3531, 3549, 3567, 3585, 3603, 3621, 3639, 3657, 3675, 3693, 3711, 3729, 3747, 3765, 3783, 3801, 3819, 3837, 3855, 3873, 3891, 3909, 3927, 3945, 3963, 3981, 3999, 4017, 4035, 4053, 4071, 4089, 4107, 4125, 4143, 4161, 4179, 4197, 4215, 4233, 4251, 4269, 4287, 4305, 4323, 4341, 4359, 4377, 4395, 4413, 4431, 4449, 4467, 4485, 4503, 4521, 4539, 4557, 4575, 4593, 4611, 4629, 4647, 4665, 4683, 4701, 4719, 4737, 4755, 4773, 4791, 4809, 4827, 4845, 4863, 4881, 4899, 4917, 4935, 4953, 4971, 4989, 5007, 5025, 5043, 5061, 5079, 5097, 5115, 5133, 5151, 5169, 5187, 5205, 5223, 5241, 5259, 5277, 5295, 5313, 5331, 5349, 5367, 5385, 5403, 5421, 5439, 5457, 5475, 5493, 5511, 5529, 5547, 5565, 5583, 5601, 5619, 5637, 5655, 5673, 5691, 5709, 5727, 5745, 5763, 5781, 5799, 5817, 5835, 5853, 5871, 5889, 5907, 5925, 5943, 5961, 5979, 5997, 6015, 6033, 6051, 6069, 6087, 6105, 6123, 6141, 6159, 6177, 6195, 6213, 6231, 6249, 6267, 6285, 6303, 6321, 6339, 6357, 6375, 6393, 6411, 6429, 6447, 6465, 4, 22, 40, 58, 76, 94, 112, 130, 148, 166, 184, 202, 220, 238, 256, 274, 292, 310, 328, 346, 364, 382, 400, 418, 436, 454, 472, 490, 508, 526, 544, 562, 580, 598, 616, 634, 652, 670, 688, 706, 724, 742, 760, 778, 796, 814, 832, 850, 868, 886, 904, 922, 940, 958, 976, 994, 1012, 1030, 1048, 1066, 1084, 1102, 1120, 1138, 1156, 1174, 1192, 1210, 1228, 1246, 1264, 1282, 1300, 1318, 1336, 1354, 1372, 1390, 1408, 1426, 1444, 1462, 1480, 1498, 1516, 1534, 1552, 1570, 1588, 1606, 1624, 1642, 1660, 1678, 1696, 1714, 1732, 1750, 1768, 1786, 1804, 1822, 1840, 1858, 1876, 1894, 1912, 1930, 1948, 1966, 1984, 2002, 2020, 2038, 2056, 2074, 2092, 2110, 2128, 2146, 2164, 2182, 2200, 2218, 2236, 2254, 2272, 2290, 2308, 2326, 2344, 2362, 2380, 2398, 2416, 2434, 2452, 2470, 2488, 2506, 2524, 2542, 2560, 2578, 2596, 2614, 2632, 2650, 2668, 2686, 2704, 2722, 2740, 2758, 2776, 2794, 2812, 2830, 2848, 2866, 2884, 2902, 2920, 2938, 2956, 2974, 2992, 3010, 3028, 3046, 3064, 3082, 3100, 3118, 3136, 3154, 3172, 3190, 3208, 3226, 3244, 3262, 3280, 3298, 3316, 3334, 3352, 3370, 3388, 3406, 3424, 3442, 3460, 3478, 3496, 3514, 3532, 3550, 3568, 3586, 3604, 3622, 3640, 3658, 3676, 3694, 3712, 3730, 3748, 3766, 3784, 3802, 3820, 3838, 3856, 3874, 3892, 3910, 3928, 3946, 3964, 3982, 4000, 4018, 4036, 4054, 4072, 4090, 4108, 4126, 4144, 4162, 4180, 4198, 4216, 4234, 4252, 4270, 4288, 4306, 4324, 4342, 4360, 4378, 4396, 4414, 4432, 4450, 4468, 4486, 4504, 4522, 4540, 4558, 4576, 4594, 4612, 4630, 4648, 4666, 4684, 4702, 4720, 4738, 4756, 4774, 4792, 4810, 4828, 4846, 4864, 4882, 4900, 4918, 4936, 4954, 4972, 4990, 5008, 5026, 5044, 5062, 5080, 5098, 5116, 5134, 5152, 5170, 5188, 5206, 5224, 5242, 5260, 5278, 5296, 5314, 5332, 5350, 5368, 5386, 5404, 5422, 5440, 5458, 5476, 5494, 5512, 5530, 5548, 5566, 5584, 5602, 5620, 5638, 5656, 5674, 5692, 5710, 5728, 5746, 5764, 5782, 5800, 5818, 5836, 5854, 5872, 5890, 5908, 5926, 5944, 5962, 5980, 5998, 6016, 6034, 6052, 6070, 6088, 6106, 6124, 6142, 6160, 6178, 6196, 6214, 6232, 6250, 6268, 6286, 6304, 6322, 6340, 6358, 6376, 6394, 6412, 6430, 6448, 6466, 5, 23, 41, 59, 77, 95, 113, 131, 149, 167, 185, 203, 221, 239, 257, 275, 293, 311, 329, 347, 365, 383, 401, 419, 437, 455, 473, 491, 509, 527, 545, 563, 581, 599, 617, 635, 653, 671, 689, 707, 725, 743, 761, 779, 797, 815, 833, 851, 869, 887, 905, 923, 941, 959, 977, 995, 1013, 1031, 1049, 1067, 1085, 1103, 1121, 1139, 1157, 1175, 1193, 1211, 1229, 1247, 1265, 1283, 1301, 1319, 1337, 1355, 1373, 1391, 1409, 1427, 1445, 1463, 1481, 1499, 1517, 1535, 1553, 1571, 1589, 1607, 1625, 1643, 1661, 1679, 1697, 1715, 1733, 1751, 1769, 1787, 1805, 1823, 1841, 1859, 1877, 1895, 1913, 1931, 1949, 1967, 1985, 2003, 2021, 2039, 2057, 2075, 2093, 2111, 2129, 2147, 2165, 2183, 2201, 2219, 2237, 2255, 2273, 2291, 2309, 2327, 2345, 2363, 2381, 2399, 2417, 2435, 2453, 2471, 2489, 2507, 2525, 2543, 2561, 2579, 2597, 2615, 2633, 2651, 2669, 2687, 2705, 2723, 2741, 2759, 2777, 2795, 2813, 2831, 2849, 2867, 2885, 2903, 2921, 2939, 2957, 2975, 2993, 3011, 3029, 3047, 3065, 3083, 3101, 3119, 3137, 3155, 3173, 3191, 3209, 3227, 3245, 3263, 3281, 3299, 3317, 3335, 3353, 3371, 3389, 3407, 3425, 3443, 3461, 3479, 3497, 3515, 3533, 3551, 3569, 3587, 3605, 3623, 3641, 3659, 3677, 3695, 3713, 3731, 3749, 3767, 3785, 3803, 3821, 3839, 3857, 3875, 3893, 3911, 3929, 3947, 3965, 3983, 4001, 4019, 4037, 4055, 4073, 4091, 4109, 4127, 4145, 4163, 4181, 4199, 4217, 4235, 4253, 4271, 4289, 4307, 4325, 4343, 4361, 4379, 4397, 4415, 4433, 4451, 4469, 4487, 4505, 4523, 4541, 4559, 4577, 4595, 4613, 4631, 4649, 4667, 4685, 4703, 4721, 4739, 4757, 4775, 4793, 4811, 4829, 4847, 4865, 4883, 4901, 4919, 4937, 4955, 4973, 4991, 5009, 5027, 5045, 5063, 5081, 5099, 5117, 5135, 5153, 5171, 5189, 5207, 5225, 5243, 5261, 5279, 5297, 5315, 5333, 5351, 5369, 5387, 5405, 5423, 5441, 5459, 5477, 5495, 5513, 5531, 5549, 5567, 5585, 5603, 5621, 5639, 5657, 5675, 5693, 5711, 5729, 5747, 5765, 5783, 5801, 5819, 5837, 5855, 5873, 5891, 5909, 5927, 5945, 5963, 5981, 5999, 6017, 6035, 6053, 6071, 6089, 6107, 6125, 6143, 6161, 6179, 6197, 6215, 6233, 6251, 6269, 6287, 6305, 6323, 6341, 6359, 6377, 6395, 6413, 6431, 6449, 6467, 6, 24, 42, 60, 78, 96, 114, 132, 150, 168, 186, 204, 222, 240, 258, 276, 294, 312, 330, 348, 366, 384, 402, 420, 438, 456, 474, 492, 510, 528, 546, 564, 582, 600, 618, 636, 654, 672, 690, 708, 726, 744, 762, 780, 798, 816, 834, 852, 870, 888, 906, 924, 942, 960, 978, 996, 1014, 1032, 1050, 1068, 1086, 1104, 1122, 1140, 1158, 1176, 1194, 1212, 1230, 1248, 1266, 1284, 1302, 1320, 1338, 1356, 1374, 1392, 1410, 1428, 1446, 1464, 1482, 1500, 1518, 1536, 1554, 1572, 1590, 1608, 1626, 1644, 1662, 1680, 1698, 1716, 1734, 1752, 1770, 1788, 1806, 1824, 1842, 1860, 1878, 1896, 1914, 1932, 1950, 1968, 1986, 2004, 2022, 2040, 2058, 2076, 2094, 2112, 2130, 2148, 2166, 2184, 2202, 2220, 2238, 2256, 2274, 2292, 2310, 2328, 2346, 2364, 2382, 2400, 2418, 2436, 2454, 2472, 2490, 2508, 2526, 2544, 2562, 2580, 2598, 2616, 2634, 2652, 2670, 2688, 2706, 2724, 2742, 2760, 2778, 2796, 2814, 2832, 2850, 2868, 2886, 2904, 2922, 2940, 2958, 2976, 2994, 3012, 3030, 3048, 3066, 3084, 3102, 3120, 3138, 3156, 3174, 3192, 3210, 3228, 3246, 3264, 3282, 3300, 3318, 3336, 3354, 3372, 3390, 3408, 3426, 3444, 3462, 3480, 3498, 3516, 3534, 3552, 3570, 3588, 3606, 3624, 3642, 3660, 3678, 3696, 3714, 3732, 3750, 3768, 3786, 3804, 3822, 3840, 3858, 3876, 3894, 3912, 3930, 3948, 3966, 3984, 4002, 4020, 4038, 4056, 4074, 4092, 4110, 4128, 4146, 4164, 4182, 4200, 4218, 4236, 4254, 4272, 4290, 4308, 4326, 4344, 4362, 4380, 4398, 4416, 4434, 4452, 4470, 4488, 4506, 4524, 4542, 4560, 4578, 4596, 4614, 4632, 4650, 4668, 4686, 4704, 4722, 4740, 4758, 4776, 4794, 4812, 4830, 4848, 4866, 4884, 4902, 4920, 4938, 4956, 4974, 4992, 5010, 5028, 5046, 5064, 5082, 5100, 5118, 5136, 5154, 5172, 5190, 5208, 5226, 5244, 5262, 5280, 5298, 5316, 5334, 5352, 5370, 5388, 5406, 5424, 5442, 5460, 5478, 5496, 5514, 5532, 5550, 5568, 5586, 5604, 5622, 5640, 5658, 5676, 5694, 5712, 5730, 5748, 5766, 5784, 5802, 5820, 5838, 5856, 5874, 5892, 5910, 5928, 5946, 5964, 5982, 6000, 6018, 6036, 6054, 6072, 6090, 6108, 6126, 6144, 6162, 6180, 6198, 6216, 6234, 6252, 6270, 6288, 6306, 6324, 6342, 6360, 6378, 6396, 6414, 6432, 6450, 6468, 7, 25, 43, 61, 79, 97, 115, 133, 151, 169, 187, 205, 223, 241, 259, 277, 295, 313, 331, 349, 367, 385, 403, 421, 439, 457, 475, 493, 511, 529, 547, 565, 583, 601, 619, 637, 655, 673, 691, 709, 727, 745, 763, 781, 799, 817, 835, 853, 871, 889, 907, 925, 943, 961, 979, 997, 1015, 1033, 1051, 1069, 1087, 1105, 1123, 1141, 1159, 1177, 1195, 1213, 1231, 1249, 1267, 1285, 1303, 1321, 1339, 1357, 1375, 1393, 1411, 1429, 1447, 1465, 1483, 1501, 1519, 1537, 1555, 1573, 1591, 1609, 1627, 1645, 1663, 1681, 1699, 1717, 1735, 1753, 1771, 1789, 1807, 1825, 1843, 1861, 1879, 1897, 1915, 1933, 1951, 1969, 1987, 2005, 2023, 2041, 2059, 2077, 2095, 2113, 2131, 2149, 2167, 2185, 2203, 2221, 2239, 2257, 2275, 2293, 2311, 2329, 2347, 2365, 2383, 2401, 2419, 2437, 2455, 2473, 2491, 2509, 2527, 2545, 2563, 2581, 2599, 2617, 2635, 2653, 2671, 2689, 2707, 2725, 2743, 2761, 2779, 2797, 2815, 2833, 2851, 2869, 2887, 2905, 2923, 2941, 2959, 2977, 2995, 3013, 3031, 3049, 3067, 3085, 3103, 3121, 3139, 3157, 3175, 3193, 3211, 3229, 3247, 3265, 3283, 3301, 3319, 3337, 3355, 3373, 3391, 3409, 3427, 3445, 3463, 3481, 3499, 3517, 3535, 3553, 3571, 3589, 3607, 3625, 3643, 3661, 3679, 3697, 3715, 3733, 3751, 3769, 3787, 3805, 3823, 3841, 3859, 3877, 3895, 3913, 3931, 3949, 3967, 3985, 4003, 4021, 4039, 4057, 4075, 4093, 4111, 4129, 4147, 4165, 4183, 4201, 4219, 4237, 4255, 4273, 4291, 4309, 4327, 4345, 4363, 4381, 4399, 4417, 4435, 4453, 4471, 4489, 4507, 4525, 4543, 4561, 4579, 4597, 4615, 4633, 4651, 4669, 4687, 4705, 4723, 4741, 4759, 4777, 4795, 4813, 4831, 4849, 4867, 4885, 4903, 4921, 4939, 4957, 4975, 4993, 5011, 5029, 5047, 5065, 5083, 5101, 5119, 5137, 5155, 5173, 5191, 5209, 5227, 5245, 5263, 5281, 5299, 5317, 5335, 5353, 5371, 5389, 5407, 5425, 5443, 5461, 5479, 5497, 5515, 5533, 5551, 5569, 5587, 5605, 5623, 5641, 5659, 5677, 5695, 5713, 5731, 5749, 5767, 5785, 5803, 5821, 5839, 5857, 5875, 5893, 5911, 5929, 5947, 5965, 5983, 6001, 6019, 6037, 6055, 6073, 6091, 6109, 6127, 6145, 6163, 6181, 6199, 6217, 6235, 6253, 6271, 6289, 6307, 6325, 6343, 6361, 6379, 6397, 6415, 6433, 6451, 6469, 8, 26, 44, 62, 80, 98, 116, 134, 152, 170, 188, 206, 224, 242, 260, 278, 296, 314, 332, 350, 368, 386, 404, 422, 440, 458, 476, 494, 512, 530, 548, 566, 584, 602, 620, 638, 656, 674, 692, 710, 728, 746, 764, 782, 800, 818, 836, 854, 872, 890, 908, 926, 944, 962, 980, 998, 1016, 1034, 1052, 1070, 1088, 1106, 1124, 1142, 1160, 1178, 1196, 1214, 1232, 1250, 1268, 1286, 1304, 1322, 1340, 1358, 1376, 1394, 1412, 1430, 1448, 1466, 1484, 1502, 1520, 1538, 1556, 1574, 1592, 1610, 1628, 1646, 1664, 1682, 1700, 1718, 1736, 1754, 1772, 1790, 1808, 1826, 1844, 1862, 1880, 1898, 1916, 1934, 1952, 1970, 1988, 2006, 2024, 2042, 2060, 2078, 2096, 2114, 2132, 2150, 2168, 2186, 2204, 2222, 2240, 2258, 2276, 2294, 2312, 2330, 2348, 2366, 2384, 2402, 2420, 2438, 2456, 2474, 2492, 2510, 2528, 2546, 2564, 2582, 2600, 2618, 2636, 2654, 2672, 2690, 2708, 2726, 2744, 2762, 2780, 2798, 2816, 2834, 2852, 2870, 2888, 2906, 2924, 2942, 2960, 2978, 2996, 3014, 3032, 3050, 3068, 3086, 3104, 3122, 3140, 3158, 3176, 3194, 3212, 3230, 3248, 3266, 3284, 3302, 3320, 3338, 3356, 3374, 3392, 3410, 3428, 3446, 3464, 3482, 3500, 3518, 3536, 3554, 3572, 3590, 3608, 3626, 3644, 3662, 3680, 3698, 3716, 3734, 3752, 3770, 3788, 3806, 3824, 3842, 3860, 3878, 3896, 3914, 3932, 3950, 3968, 3986, 4004, 4022, 4040, 4058, 4076, 4094, 4112, 4130, 4148, 4166, 4184, 4202, 4220, 4238, 4256, 4274, 4292, 4310, 4328, 4346, 4364, 4382, 4400, 4418, 4436, 4454, 4472, 4490, 4508, 4526, 4544, 4562, 4580, 4598, 4616, 4634, 4652, 4670, 4688, 4706, 4724, 4742, 4760, 4778, 4796, 4814, 4832, 4850, 4868, 4886, 4904, 4922, 4940, 4958, 4976, 4994, 5012, 5030, 5048, 5066, 5084, 5102, 5120, 5138, 5156, 5174, 5192, 5210, 5228, 5246, 5264, 5282, 5300, 5318, 5336, 5354, 5372, 5390, 5408, 5426, 5444, 5462, 5480, 5498, 5516, 5534, 5552, 5570, 5588, 5606, 5624, 5642, 5660, 5678, 5696, 5714, 5732, 5750, 5768, 5786, 5804, 5822, 5840, 5858, 5876, 5894, 5912, 5930, 5948, 5966, 5984, 6002, 6020, 6038, 6056, 6074, 6092, 6110, 6128, 6146, 6164, 6182, 6200, 6218, 6236, 6254, 6272, 6290, 6308, 6326, 6344, 6362, 6380, 6398, 6416, 6434, 6452, 6470, 9, 27, 45, 63, 81, 99, 117, 135, 153, 171, 189, 207, 225, 243, 261, 279, 297, 315, 333, 351, 369, 387, 405, 423, 441, 459, 477, 495, 513, 531, 549, 567, 585, 603, 621, 639, 657, 675, 693, 711, 729, 747, 765, 783, 801, 819, 837, 855, 873, 891, 909, 927, 945, 963, 981, 999, 1017, 1035, 1053, 1071, 1089, 1107, 1125, 1143, 1161, 1179, 1197, 1215, 1233, 1251, 1269, 1287, 1305, 1323, 1341, 1359, 1377, 1395, 1413, 1431, 1449, 1467, 1485, 1503, 1521, 1539, 1557, 1575, 1593, 1611, 1629, 1647, 1665, 1683, 1701, 1719, 1737, 1755, 1773, 1791, 1809, 1827, 1845, 1863, 1881, 1899, 1917, 1935, 1953, 1971, 1989, 2007, 2025, 2043, 2061, 2079, 2097, 2115, 2133, 2151, 2169, 2187, 2205, 2223, 2241, 2259, 2277, 2295, 2313, 2331, 2349, 2367, 2385, 2403, 2421, 2439, 2457, 2475, 2493, 2511, 2529, 2547, 2565, 2583, 2601, 2619, 2637, 2655, 2673, 2691, 2709, 2727, 2745, 2763, 2781, 2799, 2817, 2835, 2853, 2871, 2889, 2907, 2925, 2943, 2961, 2979, 2997, 3015, 3033, 3051, 3069, 3087, 3105, 3123, 3141, 3159, 3177, 3195, 3213, 3231, 3249, 3267, 3285, 3303, 3321, 3339, 3357, 3375, 3393, 3411, 3429, 3447, 3465, 3483, 3501, 3519, 3537, 3555, 3573, 3591, 3609, 3627, 3645, 3663, 3681, 3699, 3717, 3735, 3753, 3771, 3789, 3807, 3825, 3843, 3861, 3879, 3897, 3915, 3933, 3951, 3969, 3987, 4005, 4023, 4041, 4059, 4077, 4095, 4113, 4131, 4149, 4167, 4185, 4203, 4221, 4239, 4257, 4275, 4293, 4311, 4329, 4347, 4365, 4383, 4401, 4419, 4437, 4455, 4473, 4491, 4509, 4527, 4545, 4563, 4581, 4599, 4617, 4635, 4653, 4671, 4689, 4707, 4725, 4743, 4761, 4779, 4797, 4815, 4833, 4851, 4869, 4887, 4905, 4923, 4941, 4959, 4977, 4995, 5013, 5031, 5049, 5067, 5085, 5103, 5121, 5139, 5157, 5175, 5193, 5211, 5229, 5247, 5265, 5283, 5301, 5319, 5337, 5355, 5373, 5391, 5409, 5427, 5445, 5463, 5481, 5499, 5517, 5535, 5553, 5571, 5589, 5607, 5625, 5643, 5661, 5679, 5697, 5715, 5733, 5751, 5769, 5787, 5805, 5823, 5841, 5859, 5877, 5895, 5913, 5931, 5949, 5967, 5985, 6003, 6021, 6039, 6057, 6075, 6093, 6111, 6129, 6147, 6165, 6183, 6201, 6219, 6237, 6255, 6273, 6291, 6309, 6327, 6345, 6363, 6381, 6399, 6417, 6435, 6453, 6471, 10, 28, 46, 64, 82, 100, 118, 136, 154, 172, 190, 208, 226, 244, 262, 280, 298, 316, 334, 352, 370, 388, 406, 424, 442, 460, 478, 496, 514, 532, 550, 568, 586, 604, 622, 640, 658, 676, 694, 712, 730, 748, 766, 784, 802, 820, 838, 856, 874, 892, 910, 928, 946, 964, 982, 1000, 1018, 1036, 1054, 1072, 1090, 1108, 1126, 1144, 1162, 1180, 1198, 1216, 1234, 1252, 1270, 1288, 1306, 1324, 1342, 1360, 1378, 1396, 1414, 1432, 1450, 1468, 1486, 1504, 1522, 1540, 1558, 1576, 1594, 1612, 1630, 1648, 1666, 1684, 1702, 1720, 1738, 1756, 1774, 1792, 1810, 1828, 1846, 1864, 1882, 1900, 1918, 1936, 1954, 1972, 1990, 2008, 2026, 2044, 2062, 2080, 2098, 2116, 2134, 2152, 2170, 2188, 2206, 2224, 2242, 2260, 2278, 2296, 2314, 2332, 2350, 2368, 2386, 2404, 2422, 2440, 2458, 2476, 2494, 2512, 2530, 2548, 2566, 2584, 2602, 2620, 2638, 2656, 2674, 2692, 2710, 2728, 2746, 2764, 2782, 2800, 2818, 2836, 2854, 2872, 2890, 2908, 2926, 2944, 2962, 2980, 2998, 3016, 3034, 3052, 3070, 3088, 3106, 3124, 3142, 3160, 3178, 3196, 3214, 3232, 3250, 3268, 3286, 3304, 3322, 3340, 3358, 3376, 3394, 3412, 3430, 3448, 3466, 3484, 3502, 3520, 3538, 3556, 3574, 3592, 3610, 3628, 3646, 3664, 3682, 3700, 3718, 3736, 3754, 3772, 3790, 3808, 3826, 3844, 3862, 3880, 3898, 3916, 3934, 3952, 3970, 3988, 4006, 4024, 4042, 4060, 4078, 4096, 4114, 4132, 4150, 4168, 4186, 4204, 4222, 4240, 4258, 4276, 4294, 4312, 4330, 4348, 4366, 4384, 4402, 4420, 4438, 4456, 4474, 4492, 4510, 4528, 4546, 4564, 4582, 4600, 4618, 4636, 4654, 4672, 4690, 4708, 4726, 4744, 4762, 4780, 4798, 4816, 4834, 4852, 4870, 4888, 4906, 4924, 4942, 4960, 4978, 4996, 5014, 5032, 5050, 5068, 5086, 5104, 5122, 5140, 5158, 5176, 5194, 5212, 5230, 5248, 5266, 5284, 5302, 5320, 5338, 5356, 5374, 5392, 5410, 5428, 5446, 5464, 5482, 5500, 5518, 5536, 5554, 5572, 5590, 5608, 5626, 5644, 5662, 5680, 5698, 5716, 5734, 5752, 5770, 5788, 5806, 5824, 5842, 5860, 5878, 5896, 5914, 5932, 5950, 5968, 5986, 6004, 6022, 6040, 6058, 6076, 6094, 6112, 6130, 6148, 6166, 6184, 6202, 6220, 6238, 6256, 6274, 6292, 6310, 6328, 6346, 6364, 6382, 6400, 6418, 6436, 6454, 6472, 11, 29, 47, 65, 83, 101, 119, 137, 155, 173, 191, 209, 227, 245, 263, 281, 299, 317, 335, 353, 371, 389, 407, 425, 443, 461, 479, 497, 515, 533, 551, 569, 587, 605, 623, 641, 659, 677, 695, 713, 731, 749, 767, 785, 803, 821, 839, 857, 875, 893, 911, 929, 947, 965, 983, 1001, 1019, 1037, 1055, 1073, 1091, 1109, 1127, 1145, 1163, 1181, 1199, 1217, 1235, 1253, 1271, 1289, 1307, 1325, 1343, 1361, 1379, 1397, 1415, 1433, 1451, 1469, 1487, 1505, 1523, 1541, 1559, 1577, 1595, 1613, 1631, 1649, 1667, 1685, 1703, 1721, 1739, 1757, 1775, 1793, 1811, 1829, 1847, 1865, 1883, 1901, 1919, 1937, 1955, 1973, 1991, 2009, 2027, 2045, 2063, 2081, 2099, 2117, 2135, 2153, 2171, 2189, 2207, 2225, 2243, 2261, 2279, 2297, 2315, 2333, 2351, 2369, 2387, 2405, 2423, 2441, 2459, 2477, 2495, 2513, 2531, 2549, 2567, 2585, 2603, 2621, 2639, 2657, 2675, 2693, 2711, 2729, 2747, 2765, 2783, 2801, 2819, 2837, 2855, 2873, 2891, 2909, 2927, 2945, 2963, 2981, 2999, 3017, 3035, 3053, 3071, 3089, 3107, 3125, 3143, 3161, 3179, 3197, 3215, 3233, 3251, 3269, 3287, 3305, 3323, 3341, 3359, 3377, 3395, 3413, 3431, 3449, 3467, 3485, 3503, 3521, 3539, 3557, 3575, 3593, 3611, 3629, 3647, 3665, 3683, 3701, 3719, 3737, 3755, 3773, 3791, 3809, 3827, 3845, 3863, 3881, 3899, 3917, 3935, 3953, 3971, 3989, 4007, 4025, 4043, 4061, 4079, 4097, 4115, 4133, 4151, 4169, 4187, 4205, 4223, 4241, 4259, 4277, 4295, 4313, 4331, 4349, 4367, 4385, 4403, 4421, 4439, 4457, 4475, 4493, 4511, 4529, 4547, 4565, 4583, 4601, 4619, 4637, 4655, 4673, 4691, 4709, 4727, 4745, 4763, 4781, 4799, 4817, 4835, 4853, 4871, 4889, 4907, 4925, 4943, 4961, 4979, 4997, 5015, 5033, 5051, 5069, 5087, 5105, 5123, 5141, 5159, 5177, 5195, 5213, 5231, 5249, 5267, 5285, 5303, 5321, 5339, 5357, 5375, 5393, 5411, 5429, 5447, 5465, 5483, 5501, 5519, 5537, 5555, 5573, 5591, 5609, 5627, 5645, 5663, 5681, 5699, 5717, 5735, 5753, 5771, 5789, 5807, 5825, 5843, 5861, 5879, 5897, 5915, 5933, 5951, 5969, 5987, 6005, 6023, 6041, 6059, 6077, 6095, 6113, 6131, 6149, 6167, 6185, 6203, 6221, 6239, 6257, 6275, 6293, 6311, 6329, 6347, 6365, 6383, 6401, 6419, 6437, 6455, 6473, 12, 30, 48, 66, 84, 102, 120, 138, 156, 174, 192, 210, 228, 246, 264, 282, 300, 318, 336, 354, 372, 390, 408, 426, 444, 462, 480, 498, 516, 534, 552, 570, 588, 606, 624, 642, 660, 678, 696, 714, 732, 750, 768, 786, 804, 822, 840, 858, 876, 894, 912, 930, 948, 966, 984, 1002, 1020, 1038, 1056, 1074, 1092, 1110, 1128, 1146, 1164, 1182, 1200, 1218, 1236, 1254, 1272, 1290, 1308, 1326, 1344, 1362, 1380, 1398, 1416, 1434, 1452, 1470, 1488, 1506, 1524, 1542, 1560, 1578, 1596, 1614, 1632, 1650, 1668, 1686, 1704, 1722, 1740, 1758, 1776, 1794, 1812, 1830, 1848, 1866, 1884, 1902, 1920, 1938, 1956, 1974, 1992, 2010, 2028, 2046, 2064, 2082, 2100, 2118, 2136, 2154, 2172, 2190, 2208, 2226, 2244, 2262, 2280, 2298, 2316, 2334, 2352, 2370, 2388, 2406, 2424, 2442, 2460, 2478, 2496, 2514, 2532, 2550, 2568, 2586, 2604, 2622, 2640, 2658, 2676, 2694, 2712, 2730, 2748, 2766, 2784, 2802, 2820, 2838, 2856, 2874, 2892, 2910, 2928, 2946, 2964, 2982, 3000, 3018, 3036, 3054, 3072, 3090, 3108, 3126, 3144, 3162, 3180, 3198, 3216, 3234, 3252, 3270, 3288, 3306, 3324, 3342, 3360, 3378, 3396, 3414, 3432, 3450, 3468, 3486, 3504, 3522, 3540, 3558, 3576, 3594, 3612, 3630, 3648, 3666, 3684, 3702, 3720, 3738, 3756, 3774, 3792, 3810, 3828, 3846, 3864, 3882, 3900, 3918, 3936, 3954, 3972, 3990, 4008, 4026, 4044, 4062, 4080, 4098, 4116, 4134, 4152, 4170, 4188, 4206, 4224, 4242, 4260, 4278, 4296, 4314, 4332, 4350, 4368, 4386, 4404, 4422, 4440, 4458, 4476, 4494, 4512, 4530, 4548, 4566, 4584, 4602, 4620, 4638, 4656, 4674, 4692, 4710, 4728, 4746, 4764, 4782, 4800, 4818, 4836, 4854, 4872, 4890, 4908, 4926, 4944, 4962, 4980, 4998, 5016, 5034, 5052, 5070, 5088, 5106, 5124, 5142, 5160, 5178, 5196, 5214, 5232, 5250, 5268, 5286, 5304, 5322, 5340, 5358, 5376, 5394, 5412, 5430, 5448, 5466, 5484, 5502, 5520, 5538, 5556, 5574, 5592, 5610, 5628, 5646, 5664, 5682, 5700, 5718, 5736, 5754, 5772, 5790, 5808, 5826, 5844, 5862, 5880, 5898, 5916, 5934, 5952, 5970, 5988, 6006, 6024, 6042, 6060, 6078, 6096, 6114, 6132, 6150, 6168, 6186, 6204, 6222, 6240, 6258, 6276, 6294, 6312, 6330, 6348, 6366, 6384, 6402, 6420, 6438, 6456, 6474, 13, 31, 49, 67, 85, 103, 121, 139, 157, 175, 193, 211, 229, 247, 265, 283, 301, 319, 337, 355, 373, 391, 409, 427, 445, 463, 481, 499, 517, 535, 553, 571, 589, 607, 625, 643, 661, 679, 697, 715, 733, 751, 769, 787, 805, 823, 841, 859, 877, 895, 913, 931, 949, 967, 985, 1003, 1021, 1039, 1057, 1075, 1093, 1111, 1129, 1147, 1165, 1183, 1201, 1219, 1237, 1255, 1273, 1291, 1309, 1327, 1345, 1363, 1381, 1399, 1417, 1435, 1453, 1471, 1489, 1507, 1525, 1543, 1561, 1579, 1597, 1615, 1633, 1651, 1669, 1687, 1705, 1723, 1741, 1759, 1777, 1795, 1813, 1831, 1849, 1867, 1885, 1903, 1921, 1939, 1957, 1975, 1993, 2011, 2029, 2047, 2065, 2083, 2101, 2119, 2137, 2155, 2173, 2191, 2209, 2227, 2245, 2263, 2281, 2299, 2317, 2335, 2353, 2371, 2389, 2407, 2425, 2443, 2461, 2479, 2497, 2515, 2533, 2551, 2569, 2587, 2605, 2623, 2641, 2659, 2677, 2695, 2713, 2731, 2749, 2767, 2785, 2803, 2821, 2839, 2857, 2875, 2893, 2911, 2929, 2947, 2965, 2983, 3001, 3019, 3037, 3055, 3073, 3091, 3109, 3127, 3145, 3163, 3181, 3199, 3217, 3235, 3253, 3271, 3289, 3307, 3325, 3343, 3361, 3379, 3397, 3415, 3433, 3451, 3469, 3487, 3505, 3523, 3541, 3559, 3577, 3595, 3613, 3631, 3649, 3667, 3685, 3703, 3721, 3739, 3757, 3775, 3793, 3811, 3829, 3847, 3865, 3883, 3901, 3919, 3937, 3955, 3973, 3991, 4009, 4027, 4045, 4063, 4081, 4099, 4117, 4135, 4153, 4171, 4189, 4207, 4225, 4243, 4261, 4279, 4297, 4315, 4333, 4351, 4369, 4387, 4405, 4423, 4441, 4459, 4477, 4495, 4513, 4531, 4549, 4567, 4585, 4603, 4621, 4639, 4657, 4675, 4693, 4711, 4729, 4747, 4765, 4783, 4801, 4819, 4837, 4855, 4873, 4891, 4909, 4927, 4945, 4963, 4981, 4999, 5017, 5035, 5053, 5071, 5089, 5107, 5125, 5143, 5161, 5179, 5197, 5215, 5233, 5251, 5269, 5287, 5305, 5323, 5341, 5359, 5377, 5395, 5413, 5431, 5449, 5467, 5485, 5503, 5521, 5539, 5557, 5575, 5593, 5611, 5629, 5647, 5665, 5683, 5701, 5719, 5737, 5755, 5773, 5791, 5809, 5827, 5845, 5863, 5881, 5899, 5917, 5935, 5953, 5971, 5989, 6007, 6025, 6043, 6061, 6079, 6097, 6115, 6133, 6151, 6169, 6187, 6205, 6223, 6241, 6259, 6277, 6295, 6313, 6331, 6349, 6367, 6385, 6403, 6421, 6439, 6457, 6475, 14, 32, 50, 68, 86, 104, 122, 140, 158, 176, 194, 212, 230, 248, 266, 284, 302, 320, 338, 356, 374, 392, 410, 428, 446, 464, 482, 500, 518, 536, 554, 572, 590, 608, 626, 644, 662, 680, 698, 716, 734, 752, 770, 788, 806, 824, 842, 860, 878, 896, 914, 932, 950, 968, 986, 1004, 1022, 1040, 1058, 1076, 1094, 1112, 1130, 1148, 1166, 1184, 1202, 1220, 1238, 1256, 1274, 1292, 1310, 1328, 1346, 1364, 1382, 1400, 1418, 1436, 1454, 1472, 1490, 1508, 1526, 1544, 1562, 1580, 1598, 1616, 1634, 1652, 1670, 1688, 1706, 1724, 1742, 1760, 1778, 1796, 1814, 1832, 1850, 1868, 1886, 1904, 1922, 1940, 1958, 1976, 1994, 2012, 2030, 2048, 2066, 2084, 2102, 2120, 2138, 2156, 2174, 2192, 2210, 2228, 2246, 2264, 2282, 2300, 2318, 2336, 2354, 2372, 2390, 2408, 2426, 2444, 2462, 2480, 2498, 2516, 2534, 2552, 2570, 2588, 2606, 2624, 2642, 2660, 2678, 2696, 2714, 2732, 2750, 2768, 2786, 2804, 2822, 2840, 2858, 2876, 2894, 2912, 2930, 2948, 2966, 2984, 3002, 3020, 3038, 3056, 3074, 3092, 3110, 3128, 3146, 3164, 3182, 3200, 3218, 3236, 3254, 3272, 3290, 3308, 3326, 3344, 3362, 3380, 3398, 3416, 3434, 3452, 3470, 3488, 3506, 3524, 3542, 3560, 3578, 3596, 3614, 3632, 3650, 3668, 3686, 3704, 3722, 3740, 3758, 3776, 3794, 3812, 3830, 3848, 3866, 3884, 3902, 3920, 3938, 3956, 3974, 3992, 4010, 4028, 4046, 4064, 4082, 4100, 4118, 4136, 4154, 4172, 4190, 4208, 4226, 4244, 4262, 4280, 4298, 4316, 4334, 4352, 4370, 4388, 4406, 4424, 4442, 4460, 4478, 4496, 4514, 4532, 4550, 4568, 4586, 4604, 4622, 4640, 4658, 4676, 4694, 4712, 4730, 4748, 4766, 4784, 4802, 4820, 4838, 4856, 4874, 4892, 4910, 4928, 4946, 4964, 4982, 5000, 5018, 5036, 5054, 5072, 5090, 5108, 5126, 5144, 5162, 5180, 5198, 5216, 5234, 5252, 5270, 5288, 5306, 5324, 5342, 5360, 5378, 5396, 5414, 5432, 5450, 5468, 5486, 5504, 5522, 5540, 5558, 5576, 5594, 5612, 5630, 5648, 5666, 5684, 5702, 5720, 5738, 5756, 5774, 5792, 5810, 5828, 5846, 5864, 5882, 5900, 5918, 5936, 5954, 5972, 5990, 6008, 6026, 6044, 6062, 6080, 6098, 6116, 6134, 6152, 6170, 6188, 6206, 6224, 6242, 6260, 6278, 6296, 6314, 6332, 6350, 6368, 6386, 6404, 6422, 6440, 6458, 6476, 15, 33, 51, 69, 87, 105, 123, 141, 159, 177, 195, 213, 231, 249, 267, 285, 303, 321, 339, 357, 375, 393, 411, 429, 447, 465, 483, 501, 519, 537, 555, 573, 591, 609, 627, 645, 663, 681, 699, 717, 735, 753, 771, 789, 807, 825, 843, 861, 879, 897, 915, 933, 951, 969, 987, 1005, 1023, 1041, 1059, 1077, 1095, 1113, 1131, 1149, 1167, 1185, 1203, 1221, 1239, 1257, 1275, 1293, 1311, 1329, 1347, 1365, 1383, 1401, 1419, 1437, 1455, 1473, 1491, 1509, 1527, 1545, 1563, 1581, 1599, 1617, 1635, 1653, 1671, 1689, 1707, 1725, 1743, 1761, 1779, 1797, 1815, 1833, 1851, 1869, 1887, 1905, 1923, 1941, 1959, 1977, 1995, 2013, 2031, 2049, 2067, 2085, 2103, 2121, 2139, 2157, 2175, 2193, 2211, 2229, 2247, 2265, 2283, 2301, 2319, 2337, 2355, 2373, 2391, 2409, 2427, 2445, 2463, 2481, 2499, 2517, 2535, 2553, 2571, 2589, 2607, 2625, 2643, 2661, 2679, 2697, 2715, 2733, 2751, 2769, 2787, 2805, 2823, 2841, 2859, 2877, 2895, 2913, 2931, 2949, 2967, 2985, 3003, 3021, 3039, 3057, 3075, 3093, 3111, 3129, 3147, 3165, 3183, 3201, 3219, 3237, 3255, 3273, 3291, 3309, 3327, 3345, 3363, 3381, 3399, 3417, 3435, 3453, 3471, 3489, 3507, 3525, 3543, 3561, 3579, 3597, 3615, 3633, 3651, 3669, 3687, 3705, 3723, 3741, 3759, 3777, 3795, 3813, 3831, 3849, 3867, 3885, 3903, 3921, 3939, 3957, 3975, 3993, 4011, 4029, 4047, 4065, 4083, 4101, 4119, 4137, 4155, 4173, 4191, 4209, 4227, 4245, 4263, 4281, 4299, 4317, 4335, 4353, 4371, 4389, 4407, 4425, 4443, 4461, 4479, 4497, 4515, 4533, 4551, 4569, 4587, 4605, 4623, 4641, 4659, 4677, 4695, 4713, 4731, 4749, 4767, 4785, 4803, 4821, 4839, 4857, 4875, 4893, 4911, 4929, 4947, 4965, 4983, 5001, 5019, 5037, 5055, 5073, 5091, 5109, 5127, 5145, 5163, 5181, 5199, 5217, 5235, 5253, 5271, 5289, 5307, 5325, 5343, 5361, 5379, 5397, 5415, 5433, 5451, 5469, 5487, 5505, 5523, 5541, 5559, 5577, 5595, 5613, 5631, 5649, 5667, 5685, 5703, 5721, 5739, 5757, 5775, 5793, 5811, 5829, 5847, 5865, 5883, 5901, 5919, 5937, 5955, 5973, 5991, 6009, 6027, 6045, 6063, 6081, 6099, 6117, 6135, 6153, 6171, 6189, 6207, 6225, 6243, 6261, 6279, 6297, 6315, 6333, 6351, 6369, 6387, 6405, 6423, 6441, 6459, 6477, 16, 34, 52, 70, 88, 106, 124, 142, 160, 178, 196, 214, 232, 250, 268, 286, 304, 322, 340, 358, 376, 394, 412, 430, 448, 466, 484, 502, 520, 538, 556, 574, 592, 610, 628, 646, 664, 682, 700, 718, 736, 754, 772, 790, 808, 826, 844, 862, 880, 898, 916, 934, 952, 970, 988, 1006, 1024, 1042, 1060, 1078, 1096, 1114, 1132, 1150, 1168, 1186, 1204, 1222, 1240, 1258, 1276, 1294, 1312, 1330, 1348, 1366, 1384, 1402, 1420, 1438, 1456, 1474, 1492, 1510, 1528, 1546, 1564, 1582, 1600, 1618, 1636, 1654, 1672, 1690, 1708, 1726, 1744, 1762, 1780, 1798, 1816, 1834, 1852, 1870, 1888, 1906, 1924, 1942, 1960, 1978, 1996, 2014, 2032, 2050, 2068, 2086, 2104, 2122, 2140, 2158, 2176, 2194, 2212, 2230, 2248, 2266, 2284, 2302, 2320, 2338, 2356, 2374, 2392, 2410, 2428, 2446, 2464, 2482, 2500, 2518, 2536, 2554, 2572, 2590, 2608, 2626, 2644, 2662, 2680, 2698, 2716, 2734, 2752, 2770, 2788, 2806, 2824, 2842, 2860, 2878, 2896, 2914, 2932, 2950, 2968, 2986, 3004, 3022, 3040, 3058, 3076, 3094, 3112, 3130, 3148, 3166, 3184, 3202, 3220, 3238, 3256, 3274, 3292, 3310, 3328, 3346, 3364, 3382, 3400, 3418, 3436, 3454, 3472, 3490, 3508, 3526, 3544, 3562, 3580, 3598, 3616, 3634, 3652, 3670, 3688, 3706, 3724, 3742, 3760, 3778, 3796, 3814, 3832, 3850, 3868, 3886, 3904, 3922, 3940, 3958, 3976, 3994, 4012, 4030, 4048, 4066, 4084, 4102, 4120, 4138, 4156, 4174, 4192, 4210, 4228, 4246, 4264, 4282, 4300, 4318, 4336, 4354, 4372, 4390, 4408, 4426, 4444, 4462, 4480, 4498, 4516, 4534, 4552, 4570, 4588, 4606, 4624, 4642, 4660, 4678, 4696, 4714, 4732, 4750, 4768, 4786, 4804, 4822, 4840, 4858, 4876, 4894, 4912, 4930, 4948, 4966, 4984, 5002, 5020, 5038, 5056, 5074, 5092, 5110, 5128, 5146, 5164, 5182, 5200, 5218, 5236, 5254, 5272, 5290, 5308, 5326, 5344, 5362, 5380, 5398, 5416, 5434, 5452, 5470, 5488, 5506, 5524, 5542, 5560, 5578, 5596, 5614, 5632, 5650, 5668, 5686, 5704, 5722, 5740, 5758, 5776, 5794, 5812, 5830, 5848, 5866, 5884, 5902, 5920, 5938, 5956, 5974, 5992, 6010, 6028, 6046, 6064, 6082, 6100, 6118, 6136, 6154, 6172, 6190, 6208, 6226, 6244, 6262, 6280, 6298, 6316, 6334, 6352, 6370, 6388, 6406, 6424, 6442, 6460, 6478, 17, 35, 53, 71, 89, 107, 125, 143, 161, 179, 197, 215, 233, 251, 269, 287, 305, 323, 341, 359, 377, 395, 413, 431, 449, 467, 485, 503, 521, 539, 557, 575, 593, 611, 629, 647, 665, 683, 701, 719, 737, 755, 773, 791, 809, 827, 845, 863, 881, 899, 917, 935, 953, 971, 989, 1007, 1025, 1043, 1061, 1079, 1097, 1115, 1133, 1151, 1169, 1187, 1205, 1223, 1241, 1259, 1277, 1295, 1313, 1331, 1349, 1367, 1385, 1403, 1421, 1439, 1457, 1475, 1493, 1511, 1529, 1547, 1565, 1583, 1601, 1619, 1637, 1655, 1673, 1691, 1709, 1727, 1745, 1763, 1781, 1799, 1817, 1835, 1853, 1871, 1889, 1907, 1925, 1943, 1961, 1979, 1997, 2015, 2033, 2051, 2069, 2087, 2105, 2123, 2141, 2159, 2177, 2195, 2213, 2231, 2249, 2267, 2285, 2303, 2321, 2339, 2357, 2375, 2393, 2411, 2429, 2447, 2465, 2483, 2501, 2519, 2537, 2555, 2573, 2591, 2609, 2627, 2645, 2663, 2681, 2699, 2717, 2735, 2753, 2771, 2789, 2807, 2825, 2843, 2861, 2879, 2897, 2915, 2933, 2951, 2969, 2987, 3005, 3023, 3041, 3059, 3077, 3095, 3113, 3131, 3149, 3167, 3185, 3203, 3221, 3239, 3257, 3275, 3293, 3311, 3329, 3347, 3365, 3383, 3401, 3419, 3437, 3455, 3473, 3491, 3509, 3527, 3545, 3563, 3581, 3599, 3617, 3635, 3653, 3671, 3689, 3707, 3725, 3743, 3761, 3779, 3797, 3815, 3833, 3851, 3869, 3887, 3905, 3923, 3941, 3959, 3977, 3995, 4013, 4031, 4049, 4067, 4085, 4103, 4121, 4139, 4157, 4175, 4193, 4211, 4229, 4247, 4265, 4283, 4301, 4319, 4337, 4355, 4373, 4391, 4409, 4427, 4445, 4463, 4481, 4499, 4517, 4535, 4553, 4571, 4589, 4607, 4625, 4643, 4661, 4679, 4697, 4715, 4733, 4751, 4769, 4787, 4805, 4823, 4841, 4859, 4877, 4895, 4913, 4931, 4949, 4967, 4985, 5003, 5021, 5039, 5057, 5075, 5093, 5111, 5129, 5147, 5165, 5183, 5201, 5219, 5237, 5255, 5273, 5291, 5309, 5327, 5345, 5363, 5381, 5399, 5417, 5435, 5453, 5471, 5489, 5507, 5525, 5543, 5561, 5579, 5597, 5615, 5633, 5651, 5669, 5687, 5705, 5723, 5741, 5759, 5777, 5795, 5813, 5831, 5849, 5867, 5885, 5903, 5921, 5939, 5957, 5975, 5993, 6011, 6029, 6047, 6065, 6083, 6101, 6119, 6137, 6155, 6173, 6191, 6209, 6227, 6245, 6263, 6281, 6299, 6317, 6335, 6353, 6371, 6389, 6407, 6425, 6443, 6461, 6479, 18, 36, 54, 72, 90, 108, 126, 144, 162, 180, 198, 216, 234, 252, 270, 288, 306, 324, 342, 360, 378, 396, 414, 432, 450, 468, 486, 504, 522, 540, 558, 576, 594, 612, 630, 648, 666, 684, 702, 720, 738, 756, 774, 792, 810, 828, 846, 864, 882, 900, 918, 936, 954, 972, 990, 1008, 1026, 1044, 1062, 1080, 1098, 1116, 1134, 1152, 1170, 1188, 1206, 1224, 1242, 1260, 1278, 1296, 1314, 1332, 1350, 1368, 1386, 1404, 1422, 1440, 1458, 1476, 1494, 1512, 1530, 1548, 1566, 1584, 1602, 1620, 1638, 1656, 1674, 1692, 1710, 1728, 1746, 1764, 1782, 1800, 1818, 1836, 1854, 1872, 1890, 1908, 1926, 1944, 1962, 1980, 1998, 2016, 2034, 2052, 2070, 2088, 2106, 2124, 2142, 2160, 2178, 2196, 2214, 2232, 2250, 2268, 2286, 2304, 2322, 2340, 2358, 2376, 2394, 2412, 2430, 2448, 2466, 2484, 2502, 2520, 2538, 2556, 2574, 2592, 2610, 2628, 2646, 2664, 2682, 2700, 2718, 2736, 2754, 2772, 2790, 2808, 2826, 2844, 2862, 2880, 2898, 2916, 2934, 2952, 2970, 2988, 3006, 3024, 3042, 3060, 3078, 3096, 3114, 3132, 3150, 3168, 3186, 3204, 3222, 3240, 3258, 3276, 3294, 3312, 3330, 3348, 3366, 3384, 3402, 3420, 3438, 3456, 3474, 3492, 3510, 3528, 3546, 3564, 3582, 3600, 3618, 3636, 3654, 3672, 3690, 3708, 3726, 3744, 3762, 3780, 3798, 3816, 3834, 3852, 3870, 3888, 3906, 3924, 3942, 3960, 3978, 3996, 4014, 4032, 4050, 4068, 4086, 4104, 4122, 4140, 4158, 4176, 4194, 4212, 4230, 4248, 4266, 4284, 4302, 4320, 4338, 4356, 4374, 4392, 4410, 4428, 4446, 4464, 4482, 4500, 4518, 4536, 4554, 4572, 4590, 4608, 4626, 4644, 4662, 4680, 4698, 4716, 4734, 4752, 4770, 4788, 4806, 4824, 4842, 4860, 4878, 4896, 4914, 4932, 4950, 4968, 4986, 5004, 5022, 5040, 5058, 5076, 5094, 5112, 5130, 5148, 5166, 5184, 5202, 5220, 5238, 5256, 5274, 5292, 5310, 5328, 5346, 5364, 5382, 5400, 5418, 5436, 5454, 5472, 5490, 5508, 5526, 5544, 5562, 5580, 5598, 5616, 5634, 5652, 5670, 5688, 5706, 5724, 5742, 5760, 5778, 5796, 5814, 5832, 5850, 5868, 5886, 5904, 5922, 5940, 5958, 5976, 5994, 6012, 6030, 6048, 6066, 6084, 6102, 6120, 6138, 6156, 6174, 6192, 6210, 6228, 6246, 6264, 6282, 6300, 6318, 6336, 6354, 6372, 6390, 6408, 6426, 6444, 6462, 6480, 5714, 5732, 5750, 5768, 5786, 5804, 5822, 5840, 5858, 5876, 5894, 5912, 5930, 5948, 5966, 5984, 6002, 6020, 6038, 6056, 6074, 6092, 6110, 6128, 6146, 6164, 6182, 6200, 6218, 6236, 6254, 6272, 6290, 6308, 6326, 6344, 6362, 6380, 6398, 6416, 6434, 6452, 6470, 8, 26, 44, 62, 80, 98, 116, 134, 152, 170, 188, 206, 224, 242, 260, 278, 296, 314, 332, 350, 368, 386, 404, 422, 440, 458, 476, 494, 512, 530, 548, 566, 584, 602, 620, 638, 656, 674, 692, 710, 728, 746, 764, 782, 800, 818, 836, 854, 872, 890, 908, 926, 944, 962, 980, 998, 1016, 1034, 1052, 1070, 1088, 1106, 1124, 1142, 1160, 1178, 1196, 1214, 1232, 1250, 1268, 1286, 1304, 1322, 1340, 1358, 1376, 1394, 1412, 1430, 1448, 1466, 1484, 1502, 1520, 1538, 1556, 1574, 1592, 1610, 1628, 1646, 1664, 1682, 1700, 1718, 1736, 1754, 1772, 1790, 1808, 1826, 1844, 1862, 1880, 1898, 1916, 1934, 1952, 1970, 1988, 2006, 2024, 2042, 2060, 2078, 2096, 2114, 2132, 2150, 2168, 2186, 2204, 2222, 2240, 2258, 2276, 2294, 2312, 2330, 2348, 2366, 2384, 2402, 2420, 2438, 2456, 2474, 2492, 2510, 2528, 2546, 2564, 2582, 2600, 2618, 2636, 2654, 2672, 2690, 2708, 2726, 2744, 2762, 2780, 2798, 2816, 2834, 2852, 2870, 2888, 2906, 2924, 2942, 2960, 2978, 2996, 3014, 3032, 3050, 3068, 3086, 3104, 3122, 3140, 3158, 3176, 3194, 3212, 3230, 3248, 3266, 3284, 3302, 3320, 3338, 3356, 3374, 3392, 3410, 3428, 3446, 3464, 3482, 3500, 3518, 3536, 3554, 3572, 3590, 3608, 3626, 3644, 3662, 3680, 3698, 3716, 3734, 3752, 3770, 3788, 3806, 3824, 3842, 3860, 3878, 3896, 3914, 3932, 3950, 3968, 3986, 4004, 4022, 4040, 4058, 4076, 4094, 4112, 4130, 4148, 4166, 4184, 4202, 4220, 4238, 4256, 4274, 4292, 4310, 4328, 4346, 4364, 4382, 4400, 4418, 4436, 4454, 4472, 4490, 4508, 4526, 4544, 4562, 4580, 4598, 4616, 4634, 4652, 4670, 4688, 4706, 4724, 4742, 4760, 4778, 4796, 4814, 4832, 4850, 4868, 4886, 4904, 4922, 4940, 4958, 4976, 4994, 5012, 5030, 5048, 5066, 5084, 5102, 5120, 5138, 5156, 5174, 5192, 5210, 5228, 5246, 5264, 5282, 5300, 5318, 5336, 5354, 5372, 5390, 5408, 5426, 5444, 5462, 5480, 5498, 5516, 5534, 5552, 5570, 5588, 5606, 5624, 5642, 5660, 5678, 5696, 212, 230, 248, 266, 284, 302, 320, 338, 356, 374, 392, 410, 428, 446, 464, 482, 500, 518, 536, 554, 572, 590, 608, 626, 644, 662, 680, 698, 716, 734, 752, 770, 788, 806, 824, 842, 860, 878, 896, 914, 932, 950, 968, 986, 1004, 1022, 1040, 1058, 1076, 1094, 1112, 1130, 1148, 1166, 1184, 1202, 1220, 1238, 1256, 1274, 1292, 1310, 1328, 1346, 1364, 1382, 1400, 1418, 1436, 1454, 1472, 1490, 1508, 1526, 1544, 1562, 1580, 1598, 1616, 1634, 1652, 1670, 1688, 1706, 1724, 1742, 1760, 1778, 1796, 1814, 1832, 1850, 1868, 1886, 1904, 1922, 1940, 1958, 1976, 1994, 2012, 2030, 2048, 2066, 2084, 2102, 2120, 2138, 2156, 2174, 2192, 2210, 2228, 2246, 2264, 2282, 2300, 2318, 2336, 2354, 2372, 2390, 2408, 2426, 2444, 2462, 2480, 2498, 2516, 2534, 2552, 2570, 2588, 2606, 2624, 2642, 2660, 2678, 2696, 2714, 2732, 2750, 2768, 2786, 2804, 2822, 2840, 2858, 2876, 2894, 2912, 2930, 2948, 2966, 2984, 3002, 3020, 3038, 3056, 3074, 3092, 3110, 3128, 3146, 3164, 3182, 3200, 3218, 3236, 3254, 3272, 3290, 3308, 3326, 3344, 3362, 3380, 3398, 3416, 3434, 3452, 3470, 3488, 3506, 3524, 3542, 3560, 3578, 3596, 3614, 3632, 3650, 3668, 3686, 3704, 3722, 3740, 3758, 3776, 3794, 3812, 3830, 3848, 3866, 3884, 3902, 3920, 3938, 3956, 3974, 3992, 4010, 4028, 4046, 4064, 4082, 4100, 4118, 4136, 4154, 4172, 4190, 4208, 4226, 4244, 4262, 4280, 4298, 4316, 4334, 4352, 4370, 4388, 4406, 4424, 4442, 4460, 4478, 4496, 4514, 4532, 4550, 4568, 4586, 4604, 4622, 4640, 4658, 4676, 4694, 4712, 4730, 4748, 4766, 4784, 4802, 4820, 4838, 4856, 4874, 4892, 4910, 4928, 4946, 4964, 4982, 5000, 5018, 5036, 5054, 5072, 5090, 5108, 5126, 5144, 5162, 5180, 5198, 5216, 5234, 5252, 5270, 5288, 5306, 5324, 5342, 5360, 5378, 5396, 5414, 5432, 5450, 5468, 5486, 5504, 5522, 5540, 5558, 5576, 5594, 5612, 5630, 5648, 5666, 5684, 5702, 5720, 5738, 5756, 5774, 5792, 5810, 5828, 5846, 5864, 5882, 5900, 5918, 5936, 5954, 5972, 5990, 6008, 6026, 6044, 6062, 6080, 6098, 6116, 6134, 6152, 6170, 6188, 6206, 6224, 6242, 6260, 6278, 6296, 6314, 6332, 6350, 6368, 6386, 6404, 6422, 6440, 6458, 6476, 14, 32, 50, 68, 86, 104, 122, 140, 158, 176, 194, 4731, 4749, 4767, 4785, 4803, 4821, 4839, 4857, 4875, 4893, 4911, 4929, 4947, 4965, 4983, 5001, 5019, 5037, 5055, 5073, 5091, 5109, 5127, 5145, 5163, 5181, 5199, 5217, 5235, 5253, 5271, 5289, 5307, 5325, 5343, 5361, 5379, 5397, 5415, 5433, 5451, 5469, 5487, 5505, 5523, 5541, 5559, 5577, 5595, 5613, 5631, 5649, 5667, 5685, 5703, 5721, 5739, 5757, 5775, 5793, 5811, 5829, 5847, 5865, 5883, 5901, 5919, 5937, 5955, 5973, 5991, 6009, 6027, 6045, 6063, 6081, 6099, 6117, 6135, 6153, 6171, 6189, 6207, 6225, 6243, 6261, 6279, 6297, 6315, 6333, 6351, 6369, 6387, 6405, 6423, 6441, 6459, 6477, 15, 33, 51, 69, 87, 105, 123, 141, 159, 177, 195, 213, 231, 249, 267, 285, 303, 321, 339, 357, 375, 393, 411, 429, 447, 465, 483, 501, 519, 537, 555, 573, 591, 609, 627, 645, 663, 681, 699, 717, 735, 753, 771, 789, 807, 825, 843, 861, 879, 897, 915, 933, 951, 969, 987, 1005, 1023, 1041, 1059, 1077, 1095, 1113, 1131, 1149, 1167, 1185, 1203, 1221, 1239, 1257, 1275, 1293, 1311, 1329, 1347, 1365, 1383, 1401, 1419, 1437, 1455, 1473, 1491, 1509, 1527, 1545, 1563, 1581, 1599, 1617, 1635, 1653, 1671, 1689, 1707, 1725, 1743, 1761, 1779, 1797, 1815, 1833, 1851, 1869, 1887, 1905, 1923, 1941, 1959, 1977, 1995, 2013, 2031, 2049, 2067, 2085, 2103, 2121, 2139, 2157, 2175, 2193, 2211, 2229, 2247, 2265, 2283, 2301, 2319, 2337, 2355, 2373, 2391, 2409, 2427, 2445, 2463, 2481, 2499, 2517, 2535, 2553, 2571, 2589, 2607, 2625, 2643, 2661, 2679, 2697, 2715, 2733, 2751, 2769, 2787, 2805, 2823, 2841, 2859, 2877, 2895, 2913, 2931, 2949, 2967, 2985, 3003, 3021, 3039, 3057, 3075, 3093, 3111, 3129, 3147, 3165, 3183, 3201, 3219, 3237, 3255, 3273, 3291, 3309, 3327, 3345, 3363, 3381, 3399, 3417, 3435, 3453, 3471, 3489, 3507, 3525, 3543, 3561, 3579, 3597, 3615, 3633, 3651, 3669, 3687, 3705, 3723, 3741, 3759, 3777, 3795, 3813, 3831, 3849, 3867, 3885, 3903, 3921, 3939, 3957, 3975, 3993, 4011, 4029, 4047, 4065, 4083, 4101, 4119, 4137, 4155, 4173, 4191, 4209, 4227, 4245, 4263, 4281, 4299, 4317, 4335, 4353, 4371, 4389, 4407, 4425, 4443, 4461, 4479, 4497, 4515, 4533, 4551, 4569, 4587, 4605, 4623, 4641, 4659, 4677, 4695, 4713, 2064, 2082, 2100, 2118, 2136, 2154, 2172, 2190, 2208, 2226, 2244, 2262, 2280, 2298, 2316, 2334, 2352, 2370, 2388, 2406, 2424, 2442, 2460, 2478, 2496, 2514, 2532, 2550, 2568, 2586, 2604, 2622, 2640, 2658, 2676, 2694, 2712, 2730, 2748, 2766, 2784, 2802, 2820, 2838, 2856, 2874, 2892, 2910, 2928, 2946, 2964, 2982, 3000, 3018, 3036, 3054, 3072, 3090, 3108, 3126, 3144, 3162, 3180, 3198, 3216, 3234, 3252, 3270, 3288, 3306, 3324, 3342, 3360, 3378, 3396, 3414, 3432, 3450, 3468, 3486, 3504, 3522, 3540, 3558, 3576, 3594, 3612, 3630, 3648, 3666, 3684, 3702, 3720, 3738, 3756, 3774, 3792, 3810, 3828, 3846, 3864, 3882, 3900, 3918, 3936, 3954, 3972, 3990, 4008, 4026, 4044, 4062, 4080, 4098, 4116, 4134, 4152, 4170, 4188, 4206, 4224, 4242, 4260, 4278, 4296, 4314, 4332, 4350, 4368, 4386, 4404, 4422, 4440, 4458, 4476, 4494, 4512, 4530, 4548, 4566, 4584, 4602, 4620, 4638, 4656, 4674, 4692, 4710, 4728, 4746, 4764, 4782, 4800, 4818, 4836, 4854, 4872, 4890, 4908, 4926, 4944, 4962, 4980, 4998, 5016, 5034, 5052, 5070, 5088, 5106, 5124, 5142, 5160, 5178, 5196, 5214, 5232, 5250, 5268, 5286, 5304, 5322, 5340, 5358, 5376, 5394, 5412, 5430, 5448, 5466, 5484, 5502, 5520, 5538, 5556, 5574, 5592, 5610, 5628, 5646, 5664, 5682, 5700, 5718, 5736, 5754, 5772, 5790, 5808, 5826, 5844, 5862, 5880, 5898, 5916, 5934, 5952, 5970, 5988, 6006, 6024, 6042, 6060, 6078, 6096, 6114, 6132, 6150, 6168, 6186, 6204, 6222, 6240, 6258, 6276, 6294, 6312, 6330, 6348, 6366, 6384, 6402, 6420, 6438, 6456, 6474, 12, 30, 48, 66, 84, 102, 120, 138, 156, 174, 192, 210, 228, 246, 264, 282, 300, 318, 336, 354, 372, 390, 408, 426, 444, 462, 480, 498, 516, 534, 552, 570, 588, 606, 624, 642, 660, 678, 696, 714, 732, 750, 768, 786, 804, 822, 840, 858, 876, 894, 912, 930, 948, 966, 984, 1002, 1020, 1038, 1056, 1074, 1092, 1110, 1128, 1146, 1164, 1182, 1200, 1218, 1236, 1254, 1272, 1290, 1308, 1326, 1344, 1362, 1380, 1398, 1416, 1434, 1452, 1470, 1488, 1506, 1524, 1542, 1560, 1578, 1596, 1614, 1632, 1650, 1668, 1686, 1704, 1722, 1740, 1758, 1776, 1794, 1812, 1830, 1848, 1866, 1884, 1902, 1920, 1938, 1956, 1974, 1992, 2010, 2028, 2046, 2429, 2447, 2465, 2483, 2501, 2519, 2537, 2555, 2573, 2591, 2609, 2627, 2645, 2663, 2681, 2699, 2717, 2735, 2753, 2771, 2789, 2807, 2825, 2843, 2861, 2879, 2897, 2915, 2933, 2951, 2969, 2987, 3005, 3023, 3041, 3059, 3077, 3095, 3113, 3131, 3149, 3167, 3185, 3203, 3221, 3239, 3257, 3275, 3293, 3311, 3329, 3347, 3365, 3383, 3401, 3419, 3437, 3455, 3473, 3491, 3509, 3527, 3545, 3563, 3581, 3599, 3617, 3635, 3653, 3671, 3689, 3707, 3725, 3743, 3761, 3779, 3797, 3815, 3833, 3851, 3869, 3887, 3905, 3923, 3941, 3959, 3977, 3995, 4013, 4031, 4049, 4067, 4085, 4103, 4121, 4139, 4157, 4175, 4193, 4211, 4229, 4247, 4265, 4283, 4301, 4319, 4337, 4355, 4373, 4391, 4409, 4427, 4445, 4463, 4481, 4499, 4517, 4535, 4553, 4571, 4589, 4607, 4625, 4643, 4661, 4679, 4697, 4715, 4733, 4751, 4769, 4787, 4805, 4823, 4841, 4859, 4877, 4895, 4913, 4931, 4949, 4967, 4985, 5003, 5021, 5039, 5057, 5075, 5093, 5111, 5129, 5147, 5165, 5183, 5201, 5219, 5237, 5255, 5273, 5291, 5309, 5327, 5345, 5363, 5381, 5399, 5417, 5435, 5453, 5471, 5489, 5507, 5525, 5543, 5561, 5579, 5597, 5615, 5633, 5651, 5669, 5687, 5705, 5723, 5741, 5759, 5777, 5795, 5813, 5831, 5849, 5867, 5885, 5903, 5921, 5939, 5957, 5975, 5993, 6011, 6029, 6047, 6065, 6083, 6101, 6119, 6137, 6155, 6173, 6191, 6209, 6227, 6245, 6263, 6281, 6299, 6317, 6335, 6353, 6371, 6389, 6407, 6425, 6443, 6461, 6479, 17, 35, 53, 71, 89, 107, 125, 143, 161, 179, 197, 215, 233, 251, 269, 287, 305, 323, 341, 359, 377, 395, 413, 431, 449, 467, 485, 503, 521, 539, 557, 575, 593, 611, 629, 647, 665, 683, 701, 719, 737, 755, 773, 791, 809, 827, 845, 863, 881, 899, 917, 935, 953, 971, 989, 1007, 1025, 1043, 1061, 1079, 1097, 1115, 1133, 1151, 1169, 1187, 1205, 1223, 1241, 1259, 1277, 1295, 1313, 1331, 1349, 1367, 1385, 1403, 1421, 1439, 1457, 1475, 1493, 1511, 1529, 1547, 1565, 1583, 1601, 1619, 1637, 1655, 1673, 1691, 1709, 1727, 1745, 1763, 1781, 1799, 1817, 1835, 1853, 1871, 1889, 1907, 1925, 1943, 1961, 1979, 1997, 2015, 2033, 2051, 2069, 2087, 2105, 2123, 2141, 2159, 2177, 2195, 2213, 2231, 2249, 2267, 2285, 2303, 2321, 2339, 2357, 2375, 2393, 2411, 3082, 3100, 3118, 3136, 3154, 3172, 3190, 3208, 3226, 3244, 3262, 3280, 3298, 3316, 3334, 3352, 3370, 3388, 3406, 3424, 3442, 3460, 3478, 3496, 3514, 3532, 3550, 3568, 3586, 3604, 3622, 3640, 3658, 3676, 3694, 3712, 3730, 3748, 3766, 3784, 3802, 3820, 3838, 3856, 3874, 3892, 3910, 3928, 3946, 3964, 3982, 4000, 4018, 4036, 4054, 4072, 4090, 4108, 4126, 4144, 4162, 4180, 4198, 4216, 4234, 4252, 4270, 4288, 4306, 4324, 4342, 4360, 4378, 4396, 4414, 4432, 4450, 4468, 4486, 4504, 4522, 4540, 4558, 4576, 4594, 4612, 4630, 4648, 4666, 4684, 4702, 4720, 4738, 4756, 4774, 4792, 4810, 4828, 4846, 4864, 4882, 4900, 4918, 4936, 4954, 4972, 4990, 5008, 5026, 5044, 5062, 5080, 5098, 5116, 5134, 5152, 5170, 5188, 5206, 5224, 5242, 5260, 5278, 5296, 5314, 5332, 5350, 5368, 5386, 5404, 5422, 5440, 5458, 5476, 5494, 5512, 5530, 5548, 5566, 5584, 5602, 5620, 5638, 5656, 5674, 5692, 5710, 5728, 5746, 5764, 5782, 5800, 5818, 5836, 5854, 5872, 5890, 5908, 5926, 5944, 5962, 5980, 5998, 6016, 6034, 6052, 6070, 6088, 6106, 6124, 6142, 6160, 6178, 6196, 6214, 6232, 6250, 6268, 6286, 6304, 6322, 6340, 6358, 6376, 6394, 6412, 6430, 6448, 6466, 4, 22, 40, 58, 76, 94, 112, 130, 148, 166, 184, 202, 220, 238, 256, 274, 292, 310, 328, 346, 364, 382, 400, 418, 436, 454, 472, 490, 508, 526, 544, 562, 580, 598, 616, 634, 652, 670, 688, 706, 724, 742, 760, 778, 796, 814, 832, 850, 868, 886, 904, 922, 940, 958, 976, 994, 1012, 1030, 1048, 1066, 1084, 1102, 1120, 1138, 1156, 1174, 1192, 1210, 1228, 1246, 1264, 1282, 1300, 1318, 1336, 1354, 1372, 1390, 1408, 1426, 1444, 1462, 1480, 1498, 1516, 1534, 1552, 1570, 1588, 1606, 1624, 1642, 1660, 1678, 1696, 1714, 1732, 1750, 1768, 1786, 1804, 1822, 1840, 1858, 1876, 1894, 1912, 1930, 1948, 1966, 1984, 2002, 2020, 2038, 2056, 2074, 2092, 2110, 2128, 2146, 2164, 2182, 2200, 2218, 2236, 2254, 2272, 2290, 2308, 2326, 2344, 2362, 2380, 2398, 2416, 2434, 2452, 2470, 2488, 2506, 2524, 2542, 2560, 2578, 2596, 2614, 2632, 2650, 2668, 2686, 2704, 2722, 2740, 2758, 2776, 2794, 2812, 2830, 2848, 2866, 2884, 2902, 2920, 2938, 2956, 2974, 2992, 3010, 3028, 3046, 3064, 1623, 1641, 1659, 1677, 1695, 1713, 1731, 1749, 1767, 1785, 1803, 1821, 1839, 1857, 1875, 1893, 1911, 1929, 1947, 1965, 1983, 2001, 2019, 2037, 2055, 2073, 2091, 2109, 2127, 2145, 2163, 2181, 2199, 2217, 2235, 2253, 2271, 2289, 2307, 2325, 2343, 2361, 2379, 2397, 2415, 2433, 2451, 2469, 2487, 2505, 2523, 2541, 2559, 2577, 2595, 2613, 2631, 2649, 2667, 2685, 2703, 2721, 2739, 2757, 2775, 2793, 2811, 2829, 2847, 2865, 2883, 2901, 2919, 2937, 2955, 2973, 2991, 3009, 3027, 3045, 3063, 3081, 3099, 3117, 3135, 3153, 3171, 3189, 3207, 3225, 3243, 3261, 3279, 3297, 3315, 3333, 3351, 3369, 3387, 3405, 3423, 3441, 3459, 3477, 3495, 3513, 3531, 3549, 3567, 3585, 3603, 3621, 3639, 3657, 3675, 3693, 3711, 3729, 3747, 3765, 3783, 3801, 3819, 3837, 3855, 3873, 3891, 3909, 3927, 3945, 3963, 3981, 3999, 4017, 4035, 4053, 4071, 4089, 4107, 4125, 4143, 4161, 4179, 4197, 4215, 4233, 4251, 4269, 4287, 4305, 4323, 4341, 4359, 4377, 4395, 4413, 4431, 4449, 4467, 4485, 4503, 4521, 4539, 4557, 4575, 4593, 4611, 4629, 4647, 4665, 4683, 4701, 4719, 4737, 4755, 4773, 4791, 4809, 4827, 4845, 4863, 4881, 4899, 4917, 4935, 4953, 4971, 4989, 5007, 5025, 5043, 5061, 5079, 5097, 5115, 5133, 5151, 5169, 5187, 5205, 5223, 5241, 5259, 5277, 5295, 5313, 5331, 5349, 5367, 5385, 5403, 5421, 5439, 5457, 5475, 5493, 5511, 5529, 5547, 5565, 5583, 5601, 5619, 5637, 5655, 5673, 5691, 5709, 5727, 5745, 5763, 5781, 5799, 5817, 5835, 5853, 5871, 5889, 5907, 5925, 5943, 5961, 5979, 5997, 6015, 6033, 6051, 6069, 6087, 6105, 6123, 6141, 6159, 6177, 6195, 6213, 6231, 6249, 6267, 6285, 6303, 6321, 6339, 6357, 6375, 6393, 6411, 6429, 6447, 6465, 3, 21, 39, 57, 75, 93, 111, 129, 147, 165, 183, 201, 219, 237, 255, 273, 291, 309, 327, 345, 363, 381, 399, 417, 435, 453, 471, 489, 507, 525, 543, 561, 579, 597, 615, 633, 651, 669, 687, 705, 723, 741, 759, 777, 795, 813, 831, 849, 867, 885, 903, 921, 939, 957, 975, 993, 1011, 1029, 1047, 1065, 1083, 1101, 1119, 1137, 1155, 1173, 1191, 1209, 1227, 1245, 1263, 1281, 1299, 1317, 1335, 1353, 1371, 1389, 1407, 1425, 1443, 1461, 1479, 1497, 1515, 1533, 1551, 1569, 1587, 1605, 2185, 2203, 2221, 2239, 2257, 2275, 2293, 2311, 2329, 2347, 2365, 2383, 2401, 2419, 2437, 2455, 2473, 2491, 2509, 2527, 2545, 2563, 2581, 2599, 2617, 2635, 2653, 2671, 2689, 2707, 2725, 2743, 2761, 2779, 2797, 2815, 2833, 2851, 2869, 2887, 2905, 2923, 2941, 2959, 2977, 2995, 3013, 3031, 3049, 3067, 3085, 3103, 3121, 3139, 3157, 3175, 3193, 3211, 3229, 3247, 3265, 3283, 3301, 3319, 3337, 3355, 3373, 3391, 3409, 3427, 3445, 3463, 3481, 3499, 3517, 3535, 3553, 3571, 3589, 3607, 3625, 3643, 3661, 3679, 3697, 3715, 3733, 3751, 3769, 3787, 3805, 3823, 3841, 3859, 3877, 3895, 3913, 3931, 3949, 3967, 3985, 4003, 4021, 4039, 4057, 4075, 4093, 4111, 4129, 4147, 4165, 4183, 4201, 4219, 4237, 4255, 4273, 4291, 4309, 4327, 4345, 4363, 4381, 4399, 4417, 4435, 4453, 4471, 4489, 4507, 4525, 4543, 4561, 4579, 4597, 4615, 4633, 4651, 4669, 4687, 4705, 4723, 4741, 4759, 4777, 4795, 4813, 4831, 4849, 4867, 4885, 4903, 4921, 4939, 4957, 4975, 4993, 5011, 5029, 5047, 5065, 5083, 5101, 5119, 5137, 5155, 5173, 5191, 5209, 5227, 5245, 5263, 5281, 5299, 5317, 5335, 5353, 5371, 5389, 5407, 5425, 5443, 5461, 5479, 5497, 5515, 5533, 5551, 5569, 5587, 5605, 5623, 5641, 5659, 5677, 5695, 5713, 5731, 5749, 5767, 5785, 5803, 5821, 5839, 5857, 5875, 5893, 5911, 5929, 5947, 5965, 5983, 6001, 6019, 6037, 6055, 6073, 6091, 6109, 6127, 6145, 6163, 6181, 6199, 6217, 6235, 6253, 6271, 6289, 6307, 6325, 6343, 6361, 6379, 6397, 6415, 6433, 6451, 6469, 7, 25, 43, 61, 79, 97, 115, 133, 151, 169, 187, 205, 223, 241, 259, 277, 295, 313, 331, 349, 367, 385, 403, 421, 439, 457, 475, 493, 511, 529, 547, 565, 583, 601, 619, 637, 655, 673, 691, 709, 727, 745, 763, 781, 799, 817, 835, 853, 871, 889, 907, 925, 943, 961, 979, 997, 1015, 1033, 1051, 1069, 1087, 1105, 1123, 1141, 1159, 1177, 1195, 1213, 1231, 1249, 1267, 1285, 1303, 1321, 1339, 1357, 1375, 1393, 1411, 1429, 1447, 1465, 1483, 1501, 1519, 1537, 1555, 1573, 1591, 1609, 1627, 1645, 1663, 1681, 1699, 1717, 1735, 1753, 1771, 1789, 1807, 1825, 1843, 1861, 1879, 1897, 1915, 1933, 1951, 1969, 1987, 2005, 2023, 2041, 2059, 2077, 2095, 2113, 2131, 2149, 2167, 2831, 2849, 2867, 2885, 2903, 2921, 2939, 2957, 2975, 2993, 3011, 3029, 3047, 3065, 3083, 3101, 3119, 3137, 3155, 3173, 3191, 3209, 3227, 3245, 3263, 3281, 3299, 3317, 3335, 3353, 3371, 3389, 3407, 3425, 3443, 3461, 3479, 3497, 3515, 3533, 3551, 3569, 3587, 3605, 3623, 3641, 3659, 3677, 3695, 3713, 3731, 3749, 3767, 3785, 3803, 3821, 3839, 3857, 3875, 3893, 3911, 3929, 3947, 3965, 3983, 4001, 4019, 4037, 4055, 4073, 4091, 4109, 4127, 4145, 4163, 4181, 4199, 4217, 4235, 4253, 4271, 4289, 4307, 4325, 4343, 4361, 4379, 4397, 4415, 4433, 4451, 4469, 4487, 4505, 4523, 4541, 4559, 4577, 4595, 4613, 4631, 4649, 4667, 4685, 4703, 4721, 4739, 4757, 4775, 4793, 4811, 4829, 4847, 4865, 4883, 4901, 4919, 4937, 4955, 4973, 4991, 5009, 5027, 5045, 5063, 5081, 5099, 5117, 5135, 5153, 5171, 5189, 5207, 5225, 5243, 5261, 5279, 5297, 5315, 5333, 5351, 5369, 5387, 5405, 5423, 5441, 5459, 5477, 5495, 5513, 5531, 5549, 5567, 5585, 5603, 5621, 5639, 5657, 5675, 5693, 5711, 5729, 5747, 5765, 5783, 5801, 5819, 5837, 5855, 5873, 5891, 5909, 5927, 5945, 5963, 5981, 5999, 6017, 6035, 6053, 6071, 6089, 6107, 6125, 6143, 6161, 6179, 6197, 6215, 6233, 6251, 6269, 6287, 6305, 6323, 6341, 6359, 6377, 6395, 6413, 6431, 6449, 6467, 5, 23, 41, 59, 77, 95, 113, 131, 149, 167, 185, 203, 221, 239, 257, 275, 293, 311, 329, 347, 365, 383, 401, 419, 437, 455, 473, 491, 509, 527, 545, 563, 581, 599, 617, 635, 653, 671, 689, 707, 725, 743, 761, 779, 797, 815, 833, 851, 869, 887, 905, 923, 941, 959, 977, 995, 1013, 1031, 1049, 1067, 1085, 1103, 1121, 1139, 1157, 1175, 1193, 1211, 1229, 1247, 1265, 1283, 1301, 1319, 1337, 1355, 1373, 1391, 1409, 1427, 1445, 1463, 1481, 1499, 1517, 1535, 1553, 1571, 1589, 1607, 1625, 1643, 1661, 1679, 1697, 1715, 1733, 1751, 1769, 1787, 1805, 1823, 1841, 1859, 1877, 1895, 1913, 1931, 1949, 1967, 1985, 2003, 2021, 2039, 2057, 2075, 2093, 2111, 2129, 2147, 2165, 2183, 2201, 2219, 2237, 2255, 2273, 2291, 2309, 2327, 2345, 2363, 2381, 2399, 2417, 2435, 2453, 2471, 2489, 2507, 2525, 2543, 2561, 2579, 2597, 2615, 2633, 2651, 2669, 2687, 2705, 2723, 2741, 2759, 2777, 2795, 2813, 2162, 2180, 2198, 2216, 2234, 2252, 2270, 2288, 2306, 2324, 2342, 2360, 2378, 2396, 2414, 2432, 2450, 2468, 2486, 2504, 2522, 2540, 2558, 2576, 2594, 2612, 2630, 2648, 2666, 2684, 2702, 2720, 2738, 2756, 2774, 2792, 2810, 2828, 2846, 2864, 2882, 2900, 2918, 2936, 2954, 2972, 2990, 3008, 3026, 3044, 3062, 3080, 3098, 3116, 3134, 3152, 3170, 3188, 3206, 3224, 3242, 3260, 3278, 3296, 3314, 3332, 3350, 3368, 3386, 3404, 3422, 3440, 3458, 3476, 3494, 3512, 3530, 3548, 3566, 3584, 3602, 3620, 3638, 3656, 3674, 3692, 3710, 3728, 3746, 3764, 3782, 3800, 3818, 3836, 3854, 3872, 3890, 3908, 3926, 3944, 3962, 3980, 3998, 4016, 4034, 4052, 4070, 4088, 4106, 4124, 4142, 4160, 4178, 4196, 4214, 4232, 4250, 4268, 4286, 4304, 4322, 4340, 4358, 4376, 4394, 4412, 4430, 4448, 4466, 4484, 4502, 4520, 4538, 4556, 4574, 4592, 4610, 4628, 4646, 4664, 4682, 4700, 4718, 4736, 4754, 4772, 4790, 4808, 4826, 4844, 4862, 4880, 4898, 4916, 4934, 4952, 4970, 4988, 5006, 5024, 5042, 5060, 5078, 5096, 5114, 5132, 5150, 5168, 5186, 5204, 5222, 5240, 5258, 5276, 5294, 5312, 5330, 5348, 5366, 5384, 5402, 5420, 5438, 5456, 5474, 5492, 5510, 5528, 5546, 5564, 5582, 5600, 5618, 5636, 5654, 5672, 5690, 5708, 5726, 5744, 5762, 5780, 5798, 5816, 5834, 5852, 5870, 5888, 5906, 5924, 5942, 5960, 5978, 5996, 6014, 6032, 6050, 6068, 6086, 6104, 6122, 6140, 6158, 6176, 6194, 6212, 6230, 6248, 6266, 6284, 6302, 6320, 6338, 6356, 6374, 6392, 6410, 6428, 6446, 6464, 2, 20, 38, 56, 74, 92, 110, 128, 146, 164, 182, 200, 218, 236, 254, 272, 290, 308, 326, 344, 362, 380, 398, 416, 434, 452, 470, 488, 506, 524, 542, 560, 578, 596, 614, 632, 650, 668, 686, 704, 722, 740, 758, 776, 794, 812, 830, 848, 866, 884, 902, 920, 938, 956, 974, 992, 1010, 1028, 1046, 1064, 1082, 1100, 1118, 1136, 1154, 1172, 1190, 1208, 1226, 1244, 1262, 1280, 1298, 1316, 1334, 1352, 1370, 1388, 1406, 1424, 1442, 1460, 1478, 1496, 1514, 1532, 1550, 1568, 1586, 1604, 1622, 1640, 1658, 1676, 1694, 1712, 1730, 1748, 1766, 1784, 1802, 1820, 1838, 1856, 1874, 1892, 1910, 1928, 1946, 1964, 1982, 2000, 2018, 2036, 2054, 2072, 2090, 2108, 2126, 2144, 1381, 1399, 1417, 1435, 1453, 1471, 1489, 1507, 1525, 1543, 1561, 1579, 1597, 1615, 1633, 1651, 1669, 1687, 1705, 1723, 1741, 1759, 1777, 1795, 1813, 1831, 1849, 1867, 1885, 1903, 1921, 1939, 1957, 1975, 1993, 2011, 2029, 2047, 2065, 2083, 2101, 2119, 2137, 2155, 2173, 2191, 2209, 2227, 2245, 2263, 2281, 2299, 2317, 2335, 2353, 2371, 2389, 2407, 2425, 2443, 2461, 2479, 2497, 2515, 2533, 2551, 2569, 2587, 2605, 2623, 2641, 2659, 2677, 2695, 2713, 2731, 2749, 2767, 2785, 2803, 2821, 2839, 2857, 2875, 2893, 2911, 2929, 2947, 2965, 2983, 3001, 3019, 3037, 3055, 3073, 3091, 3109, 3127, 3145, 3163, 3181, 3199, 3217, 3235, 3253, 3271, 3289, 3307, 3325, 3343, 3361, 3379, 3397, 3415, 3433, 3451, 3469, 3487, 3505, 3523, 3541, 3559, 3577, 3595, 3613, 3631, 3649, 3667, 3685, 3703, 3721, 3739, 3757, 3775, 3793, 3811, 3829, 3847, 3865, 3883, 3901, 3919, 3937, 3955, 3973, 3991, 4009, 4027, 4045, 4063, 4081, 4099, 4117, 4135, 4153, 4171, 4189, 4207, 4225, 4243, 4261, 4279, 4297, 4315, 4333, 4351, 4369, 4387, 4405, 4423, 4441, 4459, 4477, 4495, 4513, 4531, 4549, 4567, 4585, 4603, 4621, 4639, 4657, 4675, 4693, 4711, 4729, 4747, 4765, 4783, 4801, 4819, 4837, 4855, 4873, 4891, 4909, 4927, 4945, 4963, 4981, 4999, 5017, 5035, 5053, 5071, 5089, 5107, 5125, 5143, 5161, 5179, 5197, 5215, 5233, 5251, 5269, 5287, 5305, 5323, 5341, 5359, 5377, 5395, 5413, 5431, 5449, 5467, 5485, 5503, 5521, 5539, 5557, 5575, 5593, 5611, 5629, 5647, 5665, 5683, 5701, 5719, 5737, 5755, 5773, 5791, 5809, 5827, 5845, 5863, 5881, 5899, 5917, 5935, 5953, 5971, 5989, 6007, 6025, 6043, 6061, 6079, 6097, 6115, 6133, 6151, 6169, 6187, 6205, 6223, 6241, 6259, 6277, 6295, 6313, 6331, 6349, 6367, 6385, 6403, 6421, 6439, 6457, 6475, 13, 31, 49, 67, 85, 103, 121, 139, 157, 175, 193, 211, 229, 247, 265, 283, 301, 319, 337, 355, 373, 391, 409, 427, 445, 463, 481, 499, 517, 535, 553, 571, 589, 607, 625, 643, 661, 679, 697, 715, 733, 751, 769, 787, 805, 823, 841, 859, 877, 895, 913, 931, 949, 967, 985, 1003, 1021, 1039, 1057, 1075, 1093, 1111, 1129, 1147, 1165, 1183, 1201, 1219, 1237, 1255, 1273, 1291, 1309, 1327, 1345, 1363, 2503, 2521, 2539, 2557, 2575, 2593, 2611, 2629, 2647, 2665, 2683, 2701, 2719, 2737, 2755, 2773, 2791, 2809, 2827, 2845, 2863, 2881, 2899, 2917, 2935, 2953, 2971, 2989, 3007, 3025, 3043, 3061, 3079, 3097, 3115, 3133, 3151, 3169, 3187, 3205, 3223, 3241, 3259, 3277, 3295, 3313, 3331, 3349, 3367, 3385, 3403, 3421, 3439, 3457, 3475, 3493, 3511, 3529, 3547, 3565, 3583, 3601, 3619, 3637, 3655, 3673, 3691, 3709, 3727, 3745, 3763, 3781, 3799, 3817, 3835, 3853, 3871, 3889, 3907, 3925, 3943, 3961, 3979, 3997, 4015, 4033, 4051, 4069, 4087, 4105, 4123, 4141, 4159, 4177, 4195, 4213, 4231, 4249, 4267, 4285, 4303, 4321, 4339, 4357, 4375, 4393, 4411, 4429, 4447, 4465, 4483, 4501, 4519, 4537, 4555, 4573, 4591, 4609, 4627, 4645, 4663, 4681, 4699, 4717, 4735, 4753, 4771, 4789, 4807, 4825, 4843, 4861, 4879, 4897, 4915, 4933, 4951, 4969, 4987, 5005, 5023, 5041, 5059, 5077, 5095, 5113, 5131, 5149, 5167, 5185, 5203, 5221, 5239, 5257, 5275, 5293, 5311, 5329, 5347, 5365, 5383, 5401, 5419, 5437, 5455, 5473, 5491, 5509, 5527, 5545, 5563, 5581, 5599, 5617, 5635, 5653, 5671, 5689, 5707, 5725, 5743, 5761, 5779, 5797, 5815, 5833, 5851, 5869, 5887, 5905, 5923, 5941, 5959, 5977, 5995, 6013, 6031, 6049, 6067, 6085, 6103, 6121, 6139, 6157, 6175, 6193, 6211, 6229, 6247, 6265, 6283, 6301, 6319, 6337, 6355, 6373, 6391, 6409, 6427, 6445, 6463, 1, 19, 37, 55, 73, 91, 109, 127, 145, 163, 181, 199, 217, 235, 253, 271, 289, 307, 325, 343, 361, 379, 397, 415, 433, 451, 469, 487, 505, 523, 541, 559, 577, 595, 613, 631, 649, 667, 685, 703, 721, 739, 757, 775, 793, 811, 829, 847, 865, 883, 901, 919, 937, 955, 973, 991, 1009, 1027, 1045, 1063, 1081, 1099, 1117, 1135, 1153, 1171, 1189, 1207, 1225, 1243, 1261, 1279, 1297, 1315, 1333, 1351, 1369, 1387, 1405, 1423, 1441, 1459, 1477, 1495, 1513, 1531, 1549, 1567, 1585, 1603, 1621, 1639, 1657, 1675, 1693, 1711, 1729, 1747, 1765, 1783, 1801, 1819, 1837, 1855, 1873, 1891, 1909, 1927, 1945, 1963, 1981, 1999, 2017, 2035, 2053, 2071, 2089, 2107, 2125, 2143, 2161, 2179, 2197, 2215, 2233, 2251, 2269, 2287, 2305, 2323, 2341, 2359, 2377, 2395, 2413, 2431, 2449, 2467, 2485, 3972, 3990, 4008, 4026, 4044, 4062, 4080, 4098, 4116, 4134, 4152, 4170, 4188, 4206, 4224, 4242, 4260, 4278, 4296, 4314, 4332, 4350, 4368, 4386, 4404, 4422, 4440, 4458, 4476, 4494, 4512, 4530, 4548, 4566, 4584, 4602, 4620, 4638, 4656, 4674, 4692, 4710, 4728, 4746, 4764, 4782, 4800, 4818, 4836, 4854, 4872, 4890, 4908, 4926, 4944, 4962, 4980, 4998, 5016, 5034, 5052, 5070, 5088, 5106, 5124, 5142, 5160, 5178, 5196, 5214, 5232, 5250, 5268, 5286, 5304, 5322, 5340, 5358, 5376, 5394, 5412, 5430, 5448, 5466, 5484, 5502, 5520, 5538, 5556, 5574, 5592, 5610, 5628, 5646, 5664, 5682, 5700, 5718, 5736, 5754, 5772, 5790, 5808, 5826, 5844, 5862, 5880, 5898, 5916, 5934, 5952, 5970, 5988, 6006, 6024, 6042, 6060, 6078, 6096, 6114, 6132, 6150, 6168, 6186, 6204, 6222, 6240, 6258, 6276, 6294, 6312, 6330, 6348, 6366, 6384, 6402, 6420, 6438, 6456, 6474, 12, 30, 48, 66, 84, 102, 120, 138, 156, 174, 192, 210, 228, 246, 264, 282, 300, 318, 336, 354, 372, 390, 408, 426, 444, 462, 480, 498, 516, 534, 552, 570, 588, 606, 624, 642, 660, 678, 696, 714, 732, 750, 768, 786, 804, 822, 840, 858, 876, 894, 912, 930, 948, 966, 984, 1002, 1020, 1038, 1056, 1074, 1092, 1110, 1128, 1146, 1164, 1182, 1200, 1218, 1236, 1254, 1272, 1290, 1308, 1326, 1344, 1362, 1380, 1398, 1416, 1434, 1452, 1470, 1488, 1506, 1524, 1542, 1560, 1578, 1596, 1614, 1632, 1650, 1668, 1686, 1704, 1722, 1740, 1758, 1776, 1794, 1812, 1830, 1848, 1866, 1884, 1902, 1920, 1938, 1956, 1974, 1992, 2010, 2028, 2046, 2064, 2082, 2100, 2118, 2136, 2154, 2172, 2190, 2208, 2226, 2244, 2262, 2280, 2298, 2316, 2334, 2352, 2370, 2388, 2406, 2424, 2442, 2460, 2478, 2496, 2514, 2532, 2550, 2568, 2586, 2604, 2622, 2640, 2658, 2676, 2694, 2712, 2730, 2748, 2766, 2784, 2802, 2820, 2838, 2856, 2874, 2892, 2910, 2928, 2946, 2964, 2982, 3000, 3018, 3036, 3054, 3072, 3090, 3108, 3126, 3144, 3162, 3180, 3198, 3216, 3234, 3252, 3270, 3288, 3306, 3324, 3342, 3360, 3378, 3396, 3414, 3432, 3450, 3468, 3486, 3504, 3522, 3540, 3558, 3576, 3594, 3612, 3630, 3648, 3666, 3684, 3702, 3720, 3738, 3756, 3774, 3792, 3810, 3828, 3846, 3864, 3882, 3900, 3918, 3936, 3954, 5986, 6004, 6022, 6040, 6058, 6076, 6094, 6112, 6130, 6148, 6166, 6184, 6202, 6220, 6238, 6256, 6274, 6292, 6310, 6328, 6346, 6364, 6382, 6400, 6418, 6436, 6454, 6472, 10, 28, 46, 64, 82, 100, 118, 136, 154, 172, 190, 208, 226, 244, 262, 280, 298, 316, 334, 352, 370, 388, 406, 424, 442, 460, 478, 496, 514, 532, 550, 568, 586, 604, 622, 640, 658, 676, 694, 712, 730, 748, 766, 784, 802, 820, 838, 856, 874, 892, 910, 928, 946, 964, 982, 1000, 1018, 1036, 1054, 1072, 1090, 1108, 1126, 1144, 1162, 1180, 1198, 1216, 1234, 1252, 1270, 1288, 1306, 1324, 1342, 1360, 1378, 1396, 1414, 1432, 1450, 1468, 1486, 1504, 1522, 1540, 1558, 1576, 1594, 1612, 1630, 1648, 1666, 1684, 1702, 1720, 1738, 1756, 1774, 1792, 1810, 1828, 1846, 1864, 1882, 1900, 1918, 1936, 1954, 1972, 1990, 2008, 2026, 2044, 2062, 2080, 2098, 2116, 2134, 2152, 2170, 2188, 2206, 2224, 2242, 2260, 2278, 2296, 2314, 2332, 2350, 2368, 2386, 2404, 2422, 2440, 2458, 2476, 2494, 2512, 2530, 2548, 2566, 2584, 2602, 2620, 2638, 2656, 2674, 2692, 2710, 2728, 2746, 2764, 2782, 2800, 2818, 2836, 2854, 2872, 2890, 2908, 2926, 2944, 2962, 2980, 2998, 3016, 3034, 3052, 3070, 3088, 3106, 3124, 3142, 3160, 3178, 3196, 3214, 3232, 3250, 3268, 3286, 3304, 3322, 3340, 3358, 3376, 3394, 3412, 3430, 3448, 3466, 3484, 3502, 3520, 3538, 3556, 3574, 3592, 3610, 3628, 3646, 3664, 3682, 3700, 3718, 3736, 3754, 3772, 3790, 3808, 3826, 3844, 3862, 3880, 3898, 3916, 3934, 3952, 3970, 3988, 4006, 4024, 4042, 4060, 4078, 4096, 4114, 4132, 4150, 4168, 4186, 4204, 4222, 4240, 4258, 4276, 4294, 4312, 4330, 4348, 4366, 4384, 4402, 4420, 4438, 4456, 4474, 4492, 4510, 4528, 4546, 4564, 4582, 4600, 4618, 4636, 4654, 4672, 4690, 4708, 4726, 4744, 4762, 4780, 4798, 4816, 4834, 4852, 4870, 4888, 4906, 4924, 4942, 4960, 4978, 4996, 5014, 5032, 5050, 5068, 5086, 5104, 5122, 5140, 5158, 5176, 5194, 5212, 5230, 5248, 5266, 5284, 5302, 5320, 5338, 5356, 5374, 5392, 5410, 5428, 5446, 5464, 5482, 5500, 5518, 5536, 5554, 5572, 5590, 5608, 5626, 5644, 5662, 5680, 5698, 5716, 5734, 5752, 5770, 5788, 5806, 5824, 5842, 5860, 5878, 5896, 5914, 5932, 5950, 5968, 1734, 1752, 1770, 1788, 1806, 1824, 1842, 1860, 1878, 1896, 1914, 1932, 1950, 1968, 1986, 2004, 2022, 2040, 2058, 2076, 2094, 2112, 2130, 2148, 2166, 2184, 2202, 2220, 2238, 2256, 2274, 2292, 2310, 2328, 2346, 2364, 2382, 2400, 2418, 2436, 2454, 2472, 2490, 2508, 2526, 2544, 2562, 2580, 2598, 2616, 2634, 2652, 2670, 2688, 2706, 2724, 2742, 2760, 2778, 2796, 2814, 2832, 2850, 2868, 2886, 2904, 2922, 2940, 2958, 2976, 2994, 3012, 3030, 3048, 3066, 3084, 3102, 3120, 3138, 3156, 3174, 3192, 3210, 3228, 3246, 3264, 3282, 3300, 3318, 3336, 3354, 3372, 3390, 3408, 3426, 3444, 3462, 3480, 3498, 3516, 3534, 3552, 3570, 3588, 3606, 3624, 3642, 3660, 3678, 3696, 3714, 3732, 3750, 3768, 3786, 3804, 3822, 3840, 3858, 3876, 3894, 3912, 3930, 3948, 3966, 3984, 4002, 4020, 4038, 4056, 4074, 4092, 4110, 4128, 4146, 4164, 4182, 4200, 4218, 4236, 4254, 4272, 4290, 4308, 4326, 4344, 4362, 4380, 4398, 4416, 4434, 4452, 4470, 4488, 4506, 4524, 4542, 4560, 4578, 4596, 4614, 4632, 4650, 4668, 4686, 4704, 4722, 4740, 4758, 4776, 4794, 4812, 4830, 4848, 4866, 4884, 4902, 4920, 4938, 4956, 4974, 4992, 5010, 5028, 5046, 5064, 5082, 5100, 5118, 5136, 5154, 5172, 5190, 5208, 5226, 5244, 5262, 5280, 5298, 5316, 5334, 5352, 5370, 5388, 5406, 5424, 5442, 5460, 5478, 5496, 5514, 5532, 5550, 5568, 5586, 5604, 5622, 5640, 5658, 5676, 5694, 5712, 5730, 5748, 5766, 5784, 5802, 5820, 5838, 5856, 5874, 5892, 5910, 5928, 5946, 5964, 5982, 6000, 6018, 6036, 6054, 6072, 6090, 6108, 6126, 6144, 6162, 6180, 6198, 6216, 6234, 6252, 6270, 6288, 6306, 6324, 6342, 6360, 6378, 6396, 6414, 6432, 6450, 6468, 6, 24, 42, 60, 78, 96, 114, 132, 150, 168, 186, 204, 222, 240, 258, 276, 294, 312, 330, 348, 366, 384, 402, 420, 438, 456, 474, 492, 510, 528, 546, 564, 582, 600, 618, 636, 654, 672, 690, 708, 726, 744, 762, 780, 798, 816, 834, 852, 870, 888, 906, 924, 942, 960, 978, 996, 1014, 1032, 1050, 1068, 1086, 1104, 1122, 1140, 1158, 1176, 1194, 1212, 1230, 1248, 1266, 1284, 1302, 1320, 1338, 1356, 1374, 1392, 1410, 1428, 1446, 1464, 1482, 1500, 1518, 1536, 1554, 1572, 1590, 1608, 1626, 1644, 1662, 1680, 1698, 1716, 3787, 3805, 3823, 3841, 3859, 3877, 3895, 3913, 3931, 3949, 3967, 3985, 4003, 4021, 4039, 4057, 4075, 4093, 4111, 4129, 4147, 4165, 4183, 4201, 4219, 4237, 4255, 4273, 4291, 4309, 4327, 4345, 4363, 4381, 4399, 4417, 4435, 4453, 4471, 4489, 4507, 4525, 4543, 4561, 4579, 4597, 4615, 4633, 4651, 4669, 4687, 4705, 4723, 4741, 4759, 4777, 4795, 4813, 4831, 4849, 4867, 4885, 4903, 4921, 4939, 4957, 4975, 4993, 5011, 5029, 5047, 5065, 5083, 5101, 5119, 5137, 5155, 5173, 5191, 5209, 5227, 5245, 5263, 5281, 5299, 5317, 5335, 5353, 5371, 5389, 5407, 5425, 5443, 5461, 5479, 5497, 5515, 5533, 5551, 5569, 5587, 5605, 5623, 5641, 5659, 5677, 5695, 5713, 5731, 5749, 5767, 5785, 5803, 5821, 5839, 5857, 5875, 5893, 5911, 5929, 5947, 5965, 5983, 6001, 6019, 6037, 6055, 6073, 6091, 6109, 6127, 6145, 6163, 6181, 6199, 6217, 6235, 6253, 6271, 6289, 6307, 6325, 6343, 6361, 6379, 6397, 6415, 6433, 6451, 6469, 7, 25, 43, 61, 79, 97, 115, 133, 151, 169, 187, 205, 223, 241, 259, 277, 295, 313, 331, 349, 367, 385, 403, 421, 439, 457, 475, 493, 511, 529, 547, 565, 583, 601, 619, 637, 655, 673, 691, 709, 727, 745, 763, 781, 799, 817, 835, 853, 871, 889, 907, 925, 943, 961, 979, 997, 1015, 1033, 1051, 1069, 1087, 1105, 1123, 1141, 1159, 1177, 1195, 1213, 1231, 1249, 1267, 1285, 1303, 1321, 1339, 1357, 1375, 1393, 1411, 1429, 1447, 1465, 1483, 1501, 1519, 1537, 1555, 1573, 1591, 1609, 1627, 1645, 1663, 1681, 1699, 1717, 1735, 1753, 1771, 1789, 1807, 1825, 1843, 1861, 1879, 1897, 1915, 1933, 1951, 1969, 1987, 2005, 2023, 2041, 2059, 2077, 2095, 2113, 2131, 2149, 2167, 2185, 2203, 2221, 2239, 2257, 2275, 2293, 2311, 2329, 2347, 2365, 2383, 2401, 2419, 2437, 2455, 2473, 2491, 2509, 2527, 2545, 2563, 2581, 2599, 2617, 2635, 2653, 2671, 2689, 2707, 2725, 2743, 2761, 2779, 2797, 2815, 2833, 2851, 2869, 2887, 2905, 2923, 2941, 2959, 2977, 2995, 3013, 3031, 3049, 3067, 3085, 3103, 3121, 3139, 3157, 3175, 3193, 3211, 3229, 3247, 3265, 3283, 3301, 3319, 3337, 3355, 3373, 3391, 3409, 3427, 3445, 3463, 3481, 3499, 3517, 3535, 3553, 3571, 3589, 3607, 3625, 3643, 3661, 3679, 3697, 3715, 3733, 3751, 3769, 4293, 4311, 4329, 4347, 4365, 4383, 4401, 4419, 4437, 4455, 4473, 4491, 4509, 4527, 4545, 4563, 4581, 4599, 4617, 4635, 4653, 4671, 4689, 4707, 4725, 4743, 4761, 4779, 4797, 4815, 4833, 4851, 4869, 4887, 4905, 4923, 4941, 4959, 4977, 4995, 5013, 5031, 5049, 5067, 5085, 5103, 5121, 5139, 5157, 5175, 5193, 5211, 5229, 5247, 5265, 5283, 5301, 5319, 5337, 5355, 5373, 5391, 5409, 5427, 5445, 5463, 5481, 5499, 5517, 5535, 5553, 5571, 5589, 5607, 5625, 5643, 5661, 5679, 5697, 5715, 5733, 5751, 5769, 5787, 5805, 5823, 5841, 5859, 5877, 5895, 5913, 5931, 5949, 5967, 5985, 6003, 6021, 6039, 6057, 6075, 6093, 6111, 6129, 6147, 6165, 6183, 6201, 6219, 6237, 6255, 6273, 6291, 6309, 6327, 6345, 6363, 6381, 6399, 6417, 6435, 6453, 6471, 9, 27, 45, 63, 81, 99, 117, 135, 153, 171, 189, 207, 225, 243, 261, 279, 297, 315, 333, 351, 369, 387, 405, 423, 441, 459, 477, 495, 513, 531, 549, 567, 585, 603, 621, 639, 657, 675, 693, 711, 729, 747, 765, 783, 801, 819, 837, 855, 873, 891, 909, 927, 945, 963, 981, 999, 1017, 1035, 1053, 1071, 1089, 1107, 1125, 1143, 1161, 1179, 1197, 1215, 1233, 1251, 1269, 1287, 1305, 1323, 1341, 1359, 1377, 1395, 1413, 1431, 1449, 1467, 1485, 1503, 1521, 1539, 1557, 1575, 1593, 1611, 1629, 1647, 1665, 1683, 1701, 1719, 1737, 1755, 1773, 1791, 1809, 1827, 1845, 1863, 1881, 1899, 1917, 1935, 1953, 1971, 1989, 2007, 2025, 2043, 2061, 2079, 2097, 2115, 2133, 2151, 2169, 2187, 2205, 2223, 2241, 2259, 2277, 2295, 2313, 2331, 2349, 2367, 2385, 2403, 2421, 2439, 2457, 2475, 2493, 2511, 2529, 2547, 2565, 2583, 2601, 2619, 2637, 2655, 2673, 2691, 2709, 2727, 2745, 2763, 2781, 2799, 2817, 2835, 2853, 2871, 2889, 2907, 2925, 2943, 2961, 2979, 2997, 3015, 3033, 3051, 3069, 3087, 3105, 3123, 3141, 3159, 3177, 3195, 3213, 3231, 3249, 3267, 3285, 3303, 3321, 3339, 3357, 3375, 3393, 3411, 3429, 3447, 3465, 3483, 3501, 3519, 3537, 3555, 3573, 3591, 3609, 3627, 3645, 3663, 3681, 3699, 3717, 3735, 3753, 3771, 3789, 3807, 3825, 3843, 3861, 3879, 3897, 3915, 3933, 3951, 3969, 3987, 4005, 4023, 4041, 4059, 4077, 4095, 4113, 4131, 4149, 4167, 4185, 4203, 4221, 4239, 4257, 4275, 5693, 5711, 5729, 5747, 5765, 5783, 5801, 5819, 5837, 5855, 5873, 5891, 5909, 5927, 5945, 5963, 5981, 5999, 6017, 6035, 6053, 6071, 6089, 6107, 6125, 6143, 6161, 6179, 6197, 6215, 6233, 6251, 6269, 6287, 6305, 6323, 6341, 6359, 6377, 6395, 6413, 6431, 6449, 6467, 5, 23, 41, 59, 77, 95, 113, 131, 149, 167, 185, 203, 221, 239, 257, 275, 293, 311, 329, 347, 365, 383, 401, 419, 437, 455, 473, 491, 509, 527, 545, 563, 581, 599, 617, 635, 653, 671, 689, 707, 725, 743, 761, 779, 797, 815, 833, 851, 869, 887, 905, 923, 941, 959, 977, 995, 1013, 1031, 1049, 1067, 1085, 1103, 1121, 1139, 1157, 1175, 1193, 1211, 1229, 1247, 1265, 1283, 1301, 1319, 1337, 1355, 1373, 1391, 1409, 1427, 1445, 1463, 1481, 1499, 1517, 1535, 1553, 1571, 1589, 1607, 1625, 1643, 1661, 1679, 1697, 1715, 1733, 1751, 1769, 1787, 1805, 1823, 1841, 1859, 1877, 1895, 1913, 1931, 1949, 1967, 1985, 2003, 2021, 2039, 2057, 2075, 2093, 2111, 2129, 2147, 2165, 2183, 2201, 2219, 2237, 2255, 2273, 2291, 2309, 2327, 2345, 2363, 2381, 2399, 2417, 2435, 2453, 2471, 2489, 2507, 2525, 2543, 2561, 2579, 2597, 2615, 2633, 2651, 2669, 2687, 2705, 2723, 2741, 2759, 2777, 2795, 2813, 2831, 2849, 2867, 2885, 2903, 2921, 2939, 2957, 2975, 2993, 3011, 3029, 3047, 3065, 3083, 3101, 3119, 3137, 3155, 3173, 3191, 3209, 3227, 3245, 3263, 3281, 3299, 3317, 3335, 3353, 3371, 3389, 3407, 3425, 3443, 3461, 3479, 3497, 3515, 3533, 3551, 3569, 3587, 3605, 3623, 3641, 3659, 3677, 3695, 3713, 3731, 3749, 3767, 3785, 3803, 3821, 3839, 3857, 3875, 3893, 3911, 3929, 3947, 3965, 3983, 4001, 4019, 4037, 4055, 4073, 4091, 4109, 4127, 4145, 4163, 4181, 4199, 4217, 4235, 4253, 4271, 4289, 4307, 4325, 4343, 4361, 4379, 4397, 4415, 4433, 4451, 4469, 4487, 4505, 4523, 4541, 4559, 4577, 4595, 4613, 4631, 4649, 4667, 4685, 4703, 4721, 4739, 4757, 4775, 4793, 4811, 4829, 4847, 4865, 4883, 4901, 4919, 4937, 4955, 4973, 4991, 5009, 5027, 5045, 5063, 5081, 5099, 5117, 5135, 5153, 5171, 5189, 5207, 5225, 5243, 5261, 5279, 5297, 5315, 5333, 5351, 5369, 5387, 5405, 5423, 5441, 5459, 5477, 5495, 5513, 5531, 5549, 5567, 5585, 5603, 5621, 5639, 5657, 5675, 267, 285, 303, 321, 339, 357, 375, 393, 411, 429, 447, 465, 483, 501, 519, 537, 555, 573, 591, 609, 627, 645, 663, 681, 699, 717, 735, 753, 771, 789, 807, 825, 843, 861, 879, 897, 915, 933, 951, 969, 987, 1005, 1023, 1041, 1059, 1077, 1095, 1113, 1131, 1149, 1167, 1185, 1203, 1221, 1239, 1257, 1275, 1293, 1311, 1329, 1347, 1365, 1383, 1401, 1419, 1437, 1455, 1473, 1491, 1509, 1527, 1545, 1563, 1581, 1599, 1617, 1635, 1653, 1671, 1689, 1707, 1725, 1743, 1761, 1779, 1797, 1815, 1833, 1851, 1869, 1887, 1905, 1923, 1941, 1959, 1977, 1995, 2013, 2031, 2049, 2067, 2085, 2103, 2121, 2139, 2157, 2175, 2193, 2211, 2229, 2247, 2265, 2283, 2301, 2319, 2337, 2355, 2373, 2391, 2409, 2427, 2445, 2463, 2481, 2499, 2517, 2535, 2553, 2571, 2589, 2607, 2625, 2643, 2661, 2679, 2697, 2715, 2733, 2751, 2769, 2787, 2805, 2823, 2841, 2859, 2877, 2895, 2913, 2931, 2949, 2967, 2985, 3003, 3021, 3039, 3057, 3075, 3093, 3111, 3129, 3147, 3165, 3183, 3201, 3219, 3237, 3255, 3273, 3291, 3309, 3327, 3345, 3363, 3381, 3399, 3417, 3435, 3453, 3471, 3489, 3507, 3525, 3543, 3561, 3579, 3597, 3615, 3633, 3651, 3669, 3687, 3705, 3723, 3741, 3759, 3777, 3795, 3813, 3831, 3849, 3867, 3885, 3903, 3921, 3939, 3957, 3975, 3993, 4011, 4029, 4047, 4065, 4083, 4101, 4119, 4137, 4155, 4173, 4191, 4209, 4227, 4245, 4263, 4281, 4299, 4317, 4335, 4353, 4371, 4389, 4407, 4425, 4443, 4461, 4479, 4497, 4515, 4533, 4551, 4569, 4587, 4605, 4623, 4641, 4659, 4677, 4695, 4713, 4731, 4749, 4767, 4785, 4803, 4821, 4839, 4857, 4875, 4893, 4911, 4929, 4947, 4965, 4983, 5001, 5019, 5037, 5055, 5073, 5091, 5109, 5127, 5145, 5163, 5181, 5199, 5217, 5235, 5253, 5271, 5289, 5307, 5325, 5343, 5361, 5379, 5397, 5415, 5433, 5451, 5469, 5487, 5505, 5523, 5541, 5559, 5577, 5595, 5613, 5631, 5649, 5667, 5685, 5703, 5721, 5739, 5757, 5775, 5793, 5811, 5829, 5847, 5865, 5883, 5901, 5919, 5937, 5955, 5973, 5991, 6009, 6027, 6045, 6063, 6081, 6099, 6117, 6135, 6153, 6171, 6189, 6207, 6225, 6243, 6261, 6279, 6297, 6315, 6333, 6351, 6369, 6387, 6405, 6423, 6441, 6459, 6477, 15, 33, 51, 69, 87, 105, 123, 141, 159, 177, 195, 213, 231, 249, 4914, 4932, 4950, 4968, 4986, 5004, 5022, 5040, 5058, 5076, 5094, 5112, 5130, 5148, 5166, 5184, 5202, 5220, 5238, 5256, 5274, 5292, 5310, 5328, 5346, 5364, 5382, 5400, 5418, 5436, 5454, 5472, 5490, 5508, 5526, 5544, 5562, 5580, 5598, 5616, 5634, 5652, 5670, 5688, 5706, 5724, 5742, 5760, 5778, 5796, 5814, 5832, 5850, 5868, 5886, 5904, 5922, 5940, 5958, 5976, 5994, 6012, 6030, 6048, 6066, 6084, 6102, 6120, 6138, 6156, 6174, 6192, 6210, 6228, 6246, 6264, 6282, 6300, 6318, 6336, 6354, 6372, 6390, 6408, 6426, 6444, 6462, 6480, 18, 36, 54, 72, 90, 108, 126, 144, 162, 180, 198, 216, 234, 252, 270, 288, 306, 324, 342, 360, 378, 396, 414, 432, 450, 468, 486, 504, 522, 540, 558, 576, 594, 612, 630, 648, 666, 684, 702, 720, 738, 756, 774, 792, 810, 828, 846, 864, 882, 900, 918, 936, 954, 972, 990, 1008, 1026, 1044, 1062, 1080, 1098, 1116, 1134, 1152, 1170, 1188, 1206, 1224, 1242, 1260, 1278, 1296, 1314, 1332, 1350, 1368, 1386, 1404, 1422, 1440, 1458, 1476, 1494, 1512, 1530, 1548, 1566, 1584, 1602, 1620, 1638, 1656, 1674, 1692, 1710, 1728, 1746, 1764, 1782, 1800, 1818, 1836, 1854, 1872, 1890, 1908, 1926, 1944, 1962, 1980, 1998, 2016, 2034, 2052, 2070, 2088, 2106, 2124, 2142, 2160, 2178, 2196, 2214, 2232, 2250, 2268, 2286, 2304, 2322, 2340, 2358, 2376, 2394, 2412, 2430, 2448, 2466, 2484, 2502, 2520, 2538, 2556, 2574, 2592, 2610, 2628, 2646, 2664, 2682, 2700, 2718, 2736, 2754, 2772, 2790, 2808, 2826, 2844, 2862, 2880, 2898, 2916, 2934, 2952, 2970, 2988, 3006, 3024, 3042, 3060, 3078, 3096, 3114, 3132, 3150, 3168, 3186, 3204, 3222, 3240, 3258, 3276, 3294, 3312, 3330, 3348, 3366, 3384, 3402, 3420, 3438, 3456, 3474, 3492, 3510, 3528, 3546, 3564, 3582, 3600, 3618, 3636, 3654, 3672, 3690, 3708, 3726, 3744, 3762, 3780, 3798, 3816, 3834, 3852, 3870, 3888, 3906, 3924, 3942, 3960, 3978, 3996, 4014, 4032, 4050, 4068, 4086, 4104, 4122, 4140, 4158, 4176, 4194, 4212, 4230, 4248, 4266, 4284, 4302, 4320, 4338, 4356, 4374, 4392, 4410, 4428, 4446, 4464, 4482, 4500, 4518, 4536, 4554, 4572, 4590, 4608, 4626, 4644, 4662, 4680, 4698, 4716, 4734, 4752, 4770, 4788, 4806, 4824, 4842, 4860, 4878, 4896, 4764, 4782, 4800, 4818, 4836, 4854, 4872, 4890, 4908, 4926, 4944, 4962, 4980, 4998, 5016, 5034, 5052, 5070, 5088, 5106, 5124, 5142, 5160, 5178, 5196, 5214, 5232, 5250, 5268, 5286, 5304, 5322, 5340, 5358, 5376, 5394, 5412, 5430, 5448, 5466, 5484, 5502, 5520, 5538, 5556, 5574, 5592, 5610, 5628, 5646, 5664, 5682, 5700, 5718, 5736, 5754, 5772, 5790, 5808, 5826, 5844, 5862, 5880, 5898, 5916, 5934, 5952, 5970, 5988, 6006, 6024, 6042, 6060, 6078, 6096, 6114, 6132, 6150, 6168, 6186, 6204, 6222, 6240, 6258, 6276, 6294, 6312, 6330, 6348, 6366, 6384, 6402, 6420, 6438, 6456, 6474, 12, 30, 48, 66, 84, 102, 120, 138, 156, 174, 192, 210, 228, 246, 264, 282, 300, 318, 336, 354, 372, 390, 408, 426, 444, 462, 480, 498, 516, 534, 552, 570, 588, 606, 624, 642, 660, 678, 696, 714, 732, 750, 768, 786, 804, 822, 840, 858, 876, 894, 912, 930, 948, 966, 984, 1002, 1020, 1038, 1056, 1074, 1092, 1110, 1128, 1146, 1164, 1182, 1200, 1218, 1236, 1254, 1272, 1290, 1308, 1326, 1344, 1362, 1380, 1398, 1416, 1434, 1452, 1470, 1488, 1506, 1524, 1542, 1560, 1578, 1596, 1614, 1632, 1650, 1668, 1686, 1704, 1722, 1740, 1758, 1776, 1794, 1812, 1830, 1848, 1866, 1884, 1902, 1920, 1938, 1956, 1974, 1992, 2010, 2028, 2046, 2064, 2082, 2100, 2118, 2136, 2154, 2172, 2190, 2208, 2226, 2244, 2262, 2280, 2298, 2316, 2334, 2352, 2370, 2388, 2406, 2424, 2442, 2460, 2478, 2496, 2514, 2532, 2550, 2568, 2586, 2604, 2622, 2640, 2658, 2676, 2694, 2712, 2730, 2748, 2766, 2784, 2802, 2820, 2838, 2856, 2874, 2892, 2910, 2928, 2946, 2964, 2982, 3000, 3018, 3036, 3054, 3072, 3090, 3108, 3126, 3144, 3162, 3180, 3198, 3216, 3234, 3252, 3270, 3288, 3306, 3324, 3342, 3360, 3378, 3396, 3414, 3432, 3450, 3468, 3486, 3504, 3522, 3540, 3558, 3576, 3594, 3612, 3630, 3648, 3666, 3684, 3702, 3720, 3738, 3756, 3774, 3792, 3810, 3828, 3846, 3864, 3882, 3900, 3918, 3936, 3954, 3972, 3990, 4008, 4026, 4044, 4062, 4080, 4098, 4116, 4134, 4152, 4170, 4188, 4206, 4224, 4242, 4260, 4278, 4296, 4314, 4332, 4350, 4368, 4386, 4404, 4422, 4440, 4458, 4476, 4494, 4512, 4530, 4548, 4566, 4584, 4602, 4620, 4638, 4656, 4674, 4692, 4710, 4728, 4746, 3591, 3609, 3627, 3645, 3663, 3681, 3699, 3717, 3735, 3753, 3771, 3789, 3807, 3825, 3843, 3861, 3879, 3897, 3915, 3933, 3951, 3969, 3987, 4005, 4023, 4041, 4059, 4077, 4095, 4113, 4131, 4149, 4167, 4185, 4203, 4221, 4239, 4257, 4275, 4293, 4311, 4329, 4347, 4365, 4383, 4401, 4419, 4437, 4455, 4473, 4491, 4509, 4527, 4545, 4563, 4581, 4599, 4617, 4635, 4653, 4671, 4689, 4707, 4725, 4743, 4761, 4779, 4797, 4815, 4833, 4851, 4869, 4887, 4905, 4923, 4941, 4959, 4977, 4995, 5013, 5031, 5049, 5067, 5085, 5103, 5121, 5139, 5157, 5175, 5193, 5211, 5229, 5247, 5265, 5283, 5301, 5319, 5337, 5355, 5373, 5391, 5409, 5427, 5445, 5463, 5481, 5499, 5517, 5535, 5553, 5571, 5589, 5607, 5625, 5643, 5661, 5679, 5697, 5715, 5733, 5751, 5769, 5787, 5805, 5823, 5841, 5859, 5877, 5895, 5913, 5931, 5949, 5967, 5985, 6003, 6021, 6039, 6057, 6075, 6093, 6111, 6129, 6147, 6165, 6183, 6201, 6219, 6237, 6255, 6273, 6291, 6309, 6327, 6345, 6363, 6381, 6399, 6417, 6435, 6453, 6471, 9, 27, 45, 63, 81, 99, 117, 135, 153, 171, 189, 207, 225, 243, 261, 279, 297, 315, 333, 351, 369, 387, 405, 423, 441, 459, 477, 495, 513, 531, 549, 567, 585, 603, 621, 639, 657, 675, 693, 711, 729, 747, 765, 783, 801, 819, 837, 855, 873, 891, 909, 927, 945, 963, 981, 999, 1017, 1035, 1053, 1071, 1089, 1107, 1125, 1143, 1161, 1179, 1197, 1215, 1233, 1251, 1269, 1287, 1305, 1323, 1341, 1359, 1377, 1395, 1413, 1431, 1449, 1467, 1485, 1503, 1521, 1539, 1557, 1575, 1593, 1611, 1629, 1647, 1665, 1683, 1701, 1719, 1737, 1755, 1773, 1791, 1809, 1827, 1845, 1863, 1881, 1899, 1917, 1935, 1953, 1971, 1989, 2007, 2025, 2043, 2061, 2079, 2097, 2115, 2133, 2151, 2169, 2187, 2205, 2223, 2241, 2259, 2277, 2295, 2313, 2331, 2349, 2367, 2385, 2403, 2421, 2439, 2457, 2475, 2493, 2511, 2529, 2547, 2565, 2583, 2601, 2619, 2637, 2655, 2673, 2691, 2709, 2727, 2745, 2763, 2781, 2799, 2817, 2835, 2853, 2871, 2889, 2907, 2925, 2943, 2961, 2979, 2997, 3015, 3033, 3051, 3069, 3087, 3105, 3123, 3141, 3159, 3177, 3195, 3213, 3231, 3249, 3267, 3285, 3303, 3321, 3339, 3357, 3375, 3393, 3411, 3429, 3447, 3465, 3483, 3501, 3519, 3537, 3555, 3573, 2567, 2585, 2603, 2621, 2639, 2657, 2675, 2693, 2711, 2729, 2747, 2765, 2783, 2801, 2819, 2837, 2855, 2873, 2891, 2909, 2927, 2945, 2963, 2981, 2999, 3017, 3035, 3053, 3071, 3089, 3107, 3125, 3143, 3161, 3179, 3197, 3215, 3233, 3251, 3269, 3287, 3305, 3323, 3341, 3359, 3377, 3395, 3413, 3431, 3449, 3467, 3485, 3503, 3521, 3539, 3557, 3575, 3593, 3611, 3629, 3647, 3665, 3683, 3701, 3719, 3737, 3755, 3773, 3791, 3809, 3827, 3845, 3863, 3881, 3899, 3917, 3935, 3953, 3971, 3989, 4007, 4025, 4043, 4061, 4079, 4097, 4115, 4133, 4151, 4169, 4187, 4205, 4223, 4241, 4259, 4277, 4295, 4313, 4331, 4349, 4367, 4385, 4403, 4421, 4439, 4457, 4475, 4493, 4511, 4529, 4547, 4565, 4583, 4601, 4619, 4637, 4655, 4673, 4691, 4709, 4727, 4745, 4763, 4781, 4799, 4817, 4835, 4853, 4871, 4889, 4907, 4925, 4943, 4961, 4979, 4997, 5015, 5033, 5051, 5069, 5087, 5105, 5123, 5141, 5159, 5177, 5195, 5213, 5231, 5249, 5267, 5285, 5303, 5321, 5339, 5357, 5375, 5393, 5411, 5429, 5447, 5465, 5483, 5501, 5519, 5537, 5555, 5573, 5591, 5609, 5627, 5645, 5663, 5681, 5699, 5717, 5735, 5753, 5771, 5789, 5807, 5825, 5843, 5861, 5879, 5897, 5915, 5933, 5951, 5969, 5987, 6005, 6023, 6041, 6059, 6077, 6095, 6113, 6131, 6149, 6167, 6185, 6203, 6221, 6239, 6257, 6275, 6293, 6311, 6329, 6347, 6365, 6383, 6401, 6419, 6437, 6455, 6473, 11, 29, 47, 65, 83, 101, 119, 137, 155, 173, 191, 209, 227, 245, 263, 281, 299, 317, 335, 353, 371, 389, 407, 425, 443, 461, 479, 497, 515, 533, 551, 569, 587, 605, 623, 641, 659, 677, 695, 713, 731, 749, 767, 785, 803, 821, 839, 857, 875, 893, 911, 929, 947, 965, 983, 1001, 1019, 1037, 1055, 1073, 1091, 1109, 1127, 1145, 1163, 1181, 1199, 1217, 1235, 1253, 1271, 1289, 1307, 1325, 1343, 1361, 1379, 1397, 1415, 1433, 1451, 1469, 1487, 1505, 1523, 1541, 1559, 1577, 1595, 1613, 1631, 1649, 1667, 1685, 1703, 1721, 1739, 1757, 1775, 1793, 1811, 1829, 1847, 1865, 1883, 1901, 1919, 1937, 1955, 1973, 1991, 2009, 2027, 2045, 2063, 2081, 2099, 2117, 2135, 2153, 2171, 2189, 2207, 2225, 2243, 2261, 2279, 2297, 2315, 2333, 2351, 2369, 2387, 2405, 2423, 2441, 2459, 2477, 2495, 2513, 2531, 2549, 5209, 5227, 5245, 5263, 5281, 5299, 5317, 5335, 5353, 5371, 5389, 5407, 5425, 5443, 5461, 5479, 5497, 5515, 5533, 5551, 5569, 5587, 5605, 5623, 5641, 5659, 5677, 5695, 5713, 5731, 5749, 5767, 5785, 5803, 5821, 5839, 5857, 5875, 5893, 5911, 5929, 5947, 5965, 5983, 6001, 6019, 6037, 6055, 6073, 6091, 6109, 6127, 6145, 6163, 6181, 6199, 6217, 6235, 6253, 6271, 6289, 6307, 6325, 6343, 6361, 6379, 6397, 6415, 6433, 6451, 6469, 7, 25, 43, 61, 79, 97, 115, 133, 151, 169, 187, 205, 223, 241, 259, 277, 295, 313, 331, 349, 367, 385, 403, 421, 439, 457, 475, 493, 511, 529, 547, 565, 583, 601, 619, 637, 655, 673, 691, 709, 727, 745, 763, 781, 799, 817, 835, 853, 871, 889, 907, 925, 943, 961, 979, 997, 1015, 1033, 1051, 1069, 1087, 1105, 1123, 1141, 1159, 1177, 1195, 1213, 1231, 1249, 1267, 1285, 1303, 1321, 1339, 1357, 1375, 1393, 1411, 1429, 1447, 1465, 1483, 1501, 1519, 1537, 1555, 1573, 1591, 1609, 1627, 1645, 1663, 1681, 1699, 1717, 1735, 1753, 1771, 1789, 1807, 1825, 1843, 1861, 1879, 1897, 1915, 1933, 1951, 1969, 1987, 2005, 2023, 2041, 2059, 2077, 2095, 2113, 2131, 2149, 2167, 2185, 2203, 2221, 2239, 2257, 2275, 2293, 2311, 2329, 2347, 2365, 2383, 2401, 2419, 2437, 2455, 2473, 2491, 2509, 2527, 2545, 2563, 2581, 2599, 2617, 2635, 2653, 2671, 2689, 2707, 2725, 2743, 2761, 2779, 2797, 2815, 2833, 2851, 2869, 2887, 2905, 2923, 2941, 2959, 2977, 2995, 3013, 3031, 3049, 3067, 3085, 3103, 3121, 3139, 3157, 3175, 3193, 3211, 3229, 3247, 3265, 3283, 3301, 3319, 3337, 3355, 3373, 3391, 3409, 3427, 3445, 3463, 3481, 3499, 3517, 3535, 3553, 3571, 3589, 3607, 3625, 3643, 3661, 3679, 3697, 3715, 3733, 3751, 3769, 3787, 3805, 3823, 3841, 3859, 3877, 3895, 3913, 3931, 3949, 3967, 3985, 4003, 4021, 4039, 4057, 4075, 4093, 4111, 4129, 4147, 4165, 4183, 4201, 4219, 4237, 4255, 4273, 4291, 4309, 4327, 4345, 4363, 4381, 4399, 4417, 4435, 4453, 4471, 4489, 4507, 4525, 4543, 4561, 4579, 4597, 4615, 4633, 4651, 4669, 4687, 4705, 4723, 4741, 4759, 4777, 4795, 4813, 4831, 4849, 4867, 4885, 4903, 4921, 4939, 4957, 4975, 4993, 5011, 5029, 5047, 5065, 5083, 5101, 5119, 5137, 5155, 5173, 5191, 3941, 3959, 3977, 3995, 4013, 4031, 4049, 4067, 4085, 4103, 4121, 4139, 4157, 4175, 4193, 4211, 4229, 4247, 4265, 4283, 4301, 4319, 4337, 4355, 4373, 4391, 4409, 4427, 4445, 4463, 4481, 4499, 4517, 4535, 4553, 4571, 4589, 4607, 4625, 4643, 4661, 4679, 4697, 4715, 4733, 4751, 4769, 4787, 4805, 4823, 4841, 4859, 4877, 4895, 4913, 4931, 4949, 4967, 4985, 5003, 5021, 5039, 5057, 5075, 5093, 5111, 5129, 5147, 5165, 5183, 5201, 5219, 5237, 5255, 5273, 5291, 5309, 5327, 5345, 5363, 5381, 5399, 5417, 5435, 5453, 5471, 5489, 5507, 5525, 5543, 5561, 5579, 5597, 5615, 5633, 5651, 5669, 5687, 5705, 5723, 5741, 5759, 5777, 5795, 5813, 5831, 5849, 5867, 5885, 5903, 5921, 5939, 5957, 5975, 5993, 6011, 6029, 6047, 6065, 6083, 6101, 6119, 6137, 6155, 6173, 6191, 6209, 6227, 6245, 6263, 6281, 6299, 6317, 6335, 6353, 6371, 6389, 6407, 6425, 6443, 6461, 6479, 17, 35, 53, 71, 89, 107, 125, 143, 161, 179, 197, 215, 233, 251, 269, 287, 305, 323, 341, 359, 377, 395, 413, 431, 449, 467, 485, 503, 521, 539, 557, 575, 593, 611, 629, 647, 665, 683, 701, 719, 737, 755, 773, 791, 809, 827, 845, 863, 881, 899, 917, 935, 953, 971, 989, 1007, 1025, 1043, 1061, 1079, 1097, 1115, 1133, 1151, 1169, 1187, 1205, 1223, 1241, 1259, 1277, 1295, 1313, 1331, 1349, 1367, 1385, 1403, 1421, 1439, 1457, 1475, 1493, 1511, 1529, 1547, 1565, 1583, 1601, 1619, 1637, 1655, 1673, 1691, 1709, 1727, 1745, 1763, 1781, 1799, 1817, 1835, 1853, 1871, 1889, 1907, 1925, 1943, 1961, 1979, 1997, 2015, 2033, 2051, 2069, 2087, 2105, 2123, 2141, 2159, 2177, 2195, 2213, 2231, 2249, 2267, 2285, 2303, 2321, 2339, 2357, 2375, 2393, 2411, 2429, 2447, 2465, 2483, 2501, 2519, 2537, 2555, 2573, 2591, 2609, 2627, 2645, 2663, 2681, 2699, 2717, 2735, 2753, 2771, 2789, 2807, 2825, 2843, 2861, 2879, 2897, 2915, 2933, 2951, 2969, 2987, 3005, 3023, 3041, 3059, 3077, 3095, 3113, 3131, 3149, 3167, 3185, 3203, 3221, 3239, 3257, 3275, 3293, 3311, 3329, 3347, 3365, 3383, 3401, 3419, 3437, 3455, 3473, 3491, 3509, 3527, 3545, 3563, 3581, 3599, 3617, 3635, 3653, 3671, 3689, 3707, 3725, 3743, 3761, 3779, 3797, 3815, 3833, 3851, 3869, 3887, 3905, 3923, 5110, 5128, 5146, 5164, 5182, 5200, 5218, 5236, 5254, 5272, 5290, 5308, 5326, 5344, 5362, 5380, 5398, 5416, 5434, 5452, 5470, 5488, 5506, 5524, 5542, 5560, 5578, 5596, 5614, 5632, 5650, 5668, 5686, 5704, 5722, 5740, 5758, 5776, 5794, 5812, 5830, 5848, 5866, 5884, 5902, 5920, 5938, 5956, 5974, 5992, 6010, 6028, 6046, 6064, 6082, 6100, 6118, 6136, 6154, 6172, 6190, 6208, 6226, 6244, 6262, 6280, 6298, 6316, 6334, 6352, 6370, 6388, 6406, 6424, 6442, 6460, 6478, 16, 34, 52, 70, 88, 106, 124, 142, 160, 178, 196, 214, 232, 250, 268, 286, 304, 322, 340, 358, 376, 394, 412, 430, 448, 466, 484, 502, 520, 538, 556, 574, 592, 610, 628, 646, 664, 682, 700, 718, 736, 754, 772, 790, 808, 826, 844, 862, 880, 898, 916, 934, 952, 970, 988, 1006, 1024, 1042, 1060, 1078, 1096, 1114, 1132, 1150, 1168, 1186, 1204, 1222, 1240, 1258, 1276, 1294, 1312, 1330, 1348, 1366, 1384, 1402, 1420, 1438, 1456, 1474, 1492, 1510, 1528, 1546, 1564, 1582, 1600, 1618, 1636, 1654, 1672, 1690, 1708, 1726, 1744, 1762, 1780, 1798, 1816, 1834, 1852, 1870, 1888, 1906, 1924, 1942, 1960, 1978, 1996, 2014, 2032, 2050, 2068, 2086, 2104, 2122, 2140, 2158, 2176, 2194, 2212, 2230, 2248, 2266, 2284, 2302, 2320, 2338, 2356, 2374, 2392, 2410, 2428, 2446, 2464, 2482, 2500, 2518, 2536, 2554, 2572, 2590, 2608, 2626, 2644, 2662, 2680, 2698, 2716, 2734, 2752, 2770, 2788, 2806, 2824, 2842, 2860, 2878, 2896, 2914, 2932, 2950, 2968, 2986, 3004, 3022, 3040, 3058, 3076, 3094, 3112, 3130, 3148, 3166, 3184, 3202, 3220, 3238, 3256, 3274, 3292, 3310, 3328, 3346, 3364, 3382, 3400, 3418, 3436, 3454, 3472, 3490, 3508, 3526, 3544, 3562, 3580, 3598, 3616, 3634, 3652, 3670, 3688, 3706, 3724, 3742, 3760, 3778, 3796, 3814, 3832, 3850, 3868, 3886, 3904, 3922, 3940, 3958, 3976, 3994, 4012, 4030, 4048, 4066, 4084, 4102, 4120, 4138, 4156, 4174, 4192, 4210, 4228, 4246, 4264, 4282, 4300, 4318, 4336, 4354, 4372, 4390, 4408, 4426, 4444, 4462, 4480, 4498, 4516, 4534, 4552, 4570, 4588, 4606, 4624, 4642, 4660, 4678, 4696, 4714, 4732, 4750, 4768, 4786, 4804, 4822, 4840, 4858, 4876, 4894, 4912, 4930, 4948, 4966, 4984, 5002, 5020, 5038, 5056, 5074, 5092, 4909, 4927, 4945, 4963, 4981, 4999, 5017, 5035, 5053, 5071, 5089, 5107, 5125, 5143, 5161, 5179, 5197, 5215, 5233, 5251, 5269, 5287, 5305, 5323, 5341, 5359, 5377, 5395, 5413, 5431, 5449, 5467, 5485, 5503, 5521, 5539, 5557, 5575, 5593, 5611, 5629, 5647, 5665, 5683, 5701, 5719, 5737, 5755, 5773, 5791, 5809, 5827, 5845, 5863, 5881, 5899, 5917, 5935, 5953, 5971, 5989, 6007, 6025, 6043, 6061, 6079, 6097, 6115, 6133, 6151, 6169, 6187, 6205, 6223, 6241, 6259, 6277, 6295, 6313, 6331, 6349, 6367, 6385, 6403, 6421, 6439, 6457, 6475, 13, 31, 49, 67, 85, 103, 121, 139, 157, 175, 193, 211, 229, 247, 265, 283, 301, 319, 337, 355, 373, 391, 409, 427, 445, 463, 481, 499, 517, 535, 553, 571, 589, 607, 625, 643, 661, 679, 697, 715, 733, 751, 769, 787, 805, 823, 841, 859, 877, 895, 913, 931, 949, 967, 985, 1003, 1021, 1039, 1057, 1075, 1093, 1111, 1129, 1147, 1165, 1183, 1201, 1219, 1237, 1255, 1273, 1291, 1309, 1327, 1345, 1363, 1381, 1399, 1417, 1435, 1453, 1471, 1489, 1507, 1525, 1543, 1561, 1579, 1597, 1615, 1633, 1651, 1669, 1687, 1705, 1723, 1741, 1759, 1777, 1795, 1813, 1831, 1849, 1867, 1885, 1903, 1921, 1939, 1957, 1975, 1993, 2011, 2029, 2047, 2065, 2083, 2101, 2119, 2137, 2155, 2173, 2191, 2209, 2227, 2245, 2263, 2281, 2299, 2317, 2335, 2353, 2371, 2389, 2407, 2425, 2443, 2461, 2479, 2497, 2515, 2533, 2551, 2569, 2587, 2605, 2623, 2641, 2659, 2677, 2695, 2713, 2731, 2749, 2767, 2785, 2803, 2821, 2839, 2857, 2875, 2893, 2911, 2929, 2947, 2965, 2983, 3001, 3019, 3037, 3055, 3073, 3091, 3109, 3127, 3145, 3163, 3181, 3199, 3217, 3235, 3253, 3271, 3289, 3307, 3325, 3343, 3361, 3379, 3397, 3415, 3433, 3451, 3469, 3487, 3505, 3523, 3541, 3559, 3577, 3595, 3613, 3631, 3649, 3667, 3685, 3703, 3721, 3739, 3757, 3775, 3793, 3811, 3829, 3847, 3865, 3883, 3901, 3919, 3937, 3955, 3973, 3991, 4009, 4027, 4045, 4063, 4081, 4099, 4117, 4135, 4153, 4171, 4189, 4207, 4225, 4243, 4261, 4279, 4297, 4315, 4333, 4351, 4369, 4387, 4405, 4423, 4441, 4459, 4477, 4495, 4513, 4531, 4549, 4567, 4585, 4603, 4621, 4639, 4657, 4675, 4693, 4711, 4729, 4747, 4765, 4783, 4801, 4819, 4837, 4855, 4873, 4891, 6427, 6445, 6463, 1, 19, 37, 55, 73, 91, 109, 127, 145, 163, 181, 199, 217, 235, 253, 271, 289, 307, 325, 343, 361, 379, 397, 415, 433, 451, 469, 487, 505, 523, 541, 559, 577, 595, 613, 631, 649, 667, 685, 703, 721, 739, 757, 775, 793, 811, 829, 847, 865, 883, 901, 919, 937, 955, 973, 991, 1009, 1027, 1045, 1063, 1081, 1099, 1117, 1135, 1153, 1171, 1189, 1207, 1225, 1243, 1261, 1279, 1297, 1315, 1333, 1351, 1369, 1387, 1405, 1423, 1441, 1459, 1477, 1495, 1513, 1531, 1549, 1567, 1585, 1603, 1621, 1639, 1657, 1675, 1693, 1711, 1729, 1747, 1765, 1783, 1801, 1819, 1837, 1855, 1873, 1891, 1909, 1927, 1945, 1963, 1981, 1999, 2017, 2035, 2053, 2071, 2089, 2107, 2125, 2143, 2161, 2179, 2197, 2215, 2233, 2251, 2269, 2287, 2305, 2323, 2341, 2359, 2377, 2395, 2413, 2431, 2449, 2467, 2485, 2503, 2521, 2539, 2557, 2575, 2593, 2611, 2629, 2647, 2665, 2683, 2701, 2719, 2737, 2755, 2773, 2791, 2809, 2827, 2845, 2863, 2881, 2899, 2917, 2935, 2953, 2971, 2989, 3007, 3025, 3043, 3061, 3079, 3097, 3115, 3133, 3151, 3169, 3187, 3205, 3223, 3241, 3259, 3277, 3295, 3313, 3331, 3349, 3367, 3385, 3403, 3421, 3439, 3457, 3475, 3493, 3511, 3529, 3547, 3565, 3583, 3601, 3619, 3637, 3655, 3673, 3691, 3709, 3727, 3745, 3763, 3781, 3799, 3817, 3835, 3853, 3871, 3889, 3907, 3925, 3943, 3961, 3979, 3997, 4015, 4033, 4051, 4069, 4087, 4105, 4123, 4141, 4159, 4177, 4195, 4213, 4231, 4249, 4267, 4285, 4303, 4321, 4339, 4357, 4375, 4393, 4411, 4429, 4447, 4465, 4483, 4501, 4519, 4537, 4555, 4573, 4591, 4609, 4627, 4645, 4663, 4681, 4699, 4717, 4735, 4753, 4771, 4789, 4807, 4825, 4843, 4861, 4879, 4897, 4915, 4933, 4951, 4969, 4987, 5005, 5023, 5041, 5059, 5077, 5095, 5113, 5131, 5149, 5167, 5185, 5203, 5221, 5239, 5257, 5275, 5293, 5311, 5329, 5347, 5365, 5383, 5401, 5419, 5437, 5455, 5473, 5491, 5509, 5527, 5545, 5563, 5581, 5599, 5617, 5635, 5653, 5671, 5689, 5707, 5725, 5743, 5761, 5779, 5797, 5815, 5833, 5851, 5869, 5887, 5905, 5923, 5941, 5959, 5977, 5995, 6013, 6031, 6049, 6067, 6085, 6103, 6121, 6139, 6157, 6175, 6193, 6211, 6229, 6247, 6265, 6283, 6301, 6319, 6337, 6355, 6373, 6391, 6409, 2209, 2227, 2245, 2263, 2281, 2299, 2317, 2335, 2353, 2371, 2389, 2407, 2425, 2443, 2461, 2479, 2497, 2515, 2533, 2551, 2569, 2587, 2605, 2623, 2641, 2659, 2677, 2695, 2713, 2731, 2749, 2767, 2785, 2803, 2821, 2839, 2857, 2875, 2893, 2911, 2929, 2947, 2965, 2983, 3001, 3019, 3037, 3055, 3073, 3091, 3109, 3127, 3145, 3163, 3181, 3199, 3217, 3235, 3253, 3271, 3289, 3307, 3325, 3343, 3361, 3379, 3397, 3415, 3433, 3451, 3469, 3487, 3505, 3523, 3541, 3559, 3577, 3595, 3613, 3631, 3649, 3667, 3685, 3703, 3721, 3739, 3757, 3775, 3793, 3811, 3829, 3847, 3865, 3883, 3901, 3919, 3937, 3955, 3973, 3991, 4009, 4027, 4045, 4063, 4081, 4099, 4117, 4135, 4153, 4171, 4189, 4207, 4225, 4243, 4261, 4279, 4297, 4315, 4333, 4351, 4369, 4387, 4405, 4423, 4441, 4459, 4477, 4495, 4513, 4531, 4549, 4567, 4585, 4603, 4621, 4639, 4657, 4675, 4693, 4711, 4729, 4747, 4765, 4783, 4801, 4819, 4837, 4855, 4873, 4891, 4909, 4927, 4945, 4963, 4981, 4999, 5017, 5035, 5053, 5071, 5089, 5107, 5125, 5143, 5161, 5179, 5197, 5215, 5233, 5251, 5269, 5287, 5305, 5323, 5341, 5359, 5377, 5395, 5413, 5431, 5449, 5467, 5485, 5503, 5521, 5539, 5557, 5575, 5593, 5611, 5629, 5647, 5665, 5683, 5701, 5719, 5737, 5755, 5773, 5791, 5809, 5827, 5845, 5863, 5881, 5899, 5917, 5935, 5953, 5971, 5989, 6007, 6025, 6043, 6061, 6079, 6097, 6115, 6133, 6151, 6169, 6187, 6205, 6223, 6241, 6259, 6277, 6295, 6313, 6331, 6349, 6367, 6385, 6403, 6421, 6439, 6457, 6475, 13, 31, 49, 67, 85, 103, 121, 139, 157, 175, 193, 211, 229, 247, 265, 283, 301, 319, 337, 355, 373, 391, 409, 427, 445, 463, 481, 499, 517, 535, 553, 571, 589, 607, 625, 643, 661, 679, 697, 715, 733, 751, 769, 787, 805, 823, 841, 859, 877, 895, 913, 931, 949, 967, 985, 1003, 1021, 1039, 1057, 1075, 1093, 1111, 1129, 1147, 1165, 1183, 1201, 1219, 1237, 1255, 1273, 1291, 1309, 1327, 1345, 1363, 1381, 1399, 1417, 1435, 1453, 1471, 1489, 1507, 1525, 1543, 1561, 1579, 1597, 1615, 1633, 1651, 1669, 1687, 1705, 1723, 1741, 1759, 1777, 1795, 1813, 1831, 1849, 1867, 1885, 1903, 1921, 1939, 1957, 1975, 1993, 2011, 2029, 2047, 2065, 2083, 2101, 2119, 2137, 2155, 2173, 2191, 5778, 5796, 5814, 5832, 5850, 5868, 5886, 5904, 5922, 5940, 5958, 5976, 5994, 6012, 6030, 6048, 6066, 6084, 6102, 6120, 6138, 6156, 6174, 6192, 6210, 6228, 6246, 6264, 6282, 6300, 6318, 6336, 6354, 6372, 6390, 6408, 6426, 6444, 6462, 6480, 18, 36, 54, 72, 90, 108, 126, 144, 162, 180, 198, 216, 234, 252, 270, 288, 306, 324, 342, 360, 378, 396, 414, 432, 450, 468, 486, 504, 522, 540, 558, 576, 594, 612, 630, 648, 666, 684, 702, 720, 738, 756, 774, 792, 810, 828, 846, 864, 882, 900, 918, 936, 954, 972, 990, 1008, 1026, 1044, 1062, 1080, 1098, 1116, 1134, 1152, 1170, 1188, 1206, 1224, 1242, 1260, 1278, 1296, 1314, 1332, 1350, 1368, 1386, 1404, 1422, 1440, 1458, 1476, 1494, 1512, 1530, 1548, 1566, 1584, 1602, 1620, 1638, 1656, 1674, 1692, 1710, 1728, 1746, 1764, 1782, 1800, 1818, 1836, 1854, 1872, 1890, 1908, 1926, 1944, 1962, 1980, 1998, 2016, 2034, 2052, 2070, 2088, 2106, 2124, 2142, 2160, 2178, 2196, 2214, 2232, 2250, 2268, 2286, 2304, 2322, 2340, 2358, 2376, 2394, 2412, 2430, 2448, 2466, 2484, 2502, 2520, 2538, 2556, 2574, 2592, 2610, 2628, 2646, 2664, 2682, 2700, 2718, 2736, 2754, 2772, 2790, 2808, 2826, 2844, 2862, 2880, 2898, 2916, 2934, 2952, 2970, 2988, 3006, 3024, 3042, 3060, 3078, 3096, 3114, 3132, 3150, 3168, 3186, 3204, 3222, 3240, 3258, 3276, 3294, 3312, 3330, 3348, 3366, 3384, 3402, 3420, 3438, 3456, 3474, 3492, 3510, 3528, 3546, 3564, 3582, 3600, 3618, 3636, 3654, 3672, 3690, 3708, 3726, 3744, 3762, 3780, 3798, 3816, 3834, 3852, 3870, 3888, 3906, 3924, 3942, 3960, 3978, 3996, 4014, 4032, 4050, 4068, 4086, 4104, 4122, 4140, 4158, 4176, 4194, 4212, 4230, 4248, 4266, 4284, 4302, 4320, 4338, 4356, 4374, 4392, 4410, 4428, 4446, 4464, 4482, 4500, 4518, 4536, 4554, 4572, 4590, 4608, 4626, 4644, 4662, 4680, 4698, 4716, 4734, 4752, 4770, 4788, 4806, 4824, 4842, 4860, 4878, 4896, 4914, 4932, 4950, 4968, 4986, 5004, 5022, 5040, 5058, 5076, 5094, 5112, 5130, 5148, 5166, 5184, 5202, 5220, 5238, 5256, 5274, 5292, 5310, 5328, 5346, 5364, 5382, 5400, 5418, 5436, 5454, 5472, 5490, 5508, 5526, 5544, 5562, 5580, 5598, 5616, 5634, 5652, 5670, 5688, 5706, 5724, 5742, 5760, 4758, 4776, 4794, 4812, 4830, 4848, 4866, 4884, 4902, 4920, 4938, 4956, 4974, 4992, 5010, 5028, 5046, 5064, 5082, 5100, 5118, 5136, 5154, 5172, 5190, 5208, 5226, 5244, 5262, 5280, 5298, 5316, 5334, 5352, 5370, 5388, 5406, 5424, 5442, 5460, 5478, 5496, 5514, 5532, 5550, 5568, 5586, 5604, 5622, 5640, 5658, 5676, 5694, 5712, 5730, 5748, 5766, 5784, 5802, 5820, 5838, 5856, 5874, 5892, 5910, 5928, 5946, 5964, 5982, 6000, 6018, 6036, 6054, 6072, 6090, 6108, 6126, 6144, 6162, 6180, 6198, 6216, 6234, 6252, 6270, 6288, 6306, 6324, 6342, 6360, 6378, 6396, 6414, 6432, 6450, 6468, 6, 24, 42, 60, 78, 96, 114, 132, 150, 168, 186, 204, 222, 240, 258, 276, 294, 312, 330, 348, 366, 384, 402, 420, 438, 456, 474, 492, 510, 528, 546, 564, 582, 600, 618, 636, 654, 672, 690, 708, 726, 744, 762, 780, 798, 816, 834, 852, 870, 888, 906, 924, 942, 960, 978, 996, 1014, 1032, 1050, 1068, 1086, 1104, 1122, 1140, 1158, 1176, 1194, 1212, 1230, 1248, 1266, 1284, 1302, 1320, 1338, 1356, 1374, 1392, 1410, 1428, 1446, 1464, 1482, 1500, 1518, 1536, 1554, 1572, 1590, 1608, 1626, 1644, 1662, 1680, 1698, 1716, 1734, 1752, 1770, 1788, 1806, 1824, 1842, 1860, 1878, 1896, 1914, 1932, 1950, 1968, 1986, 2004, 2022, 2040, 2058, 2076, 2094, 2112, 2130, 2148, 2166, 2184, 2202, 2220, 2238, 2256, 2274, 2292, 2310, 2328, 2346, 2364, 2382, 2400, 2418, 2436, 2454, 2472, 2490, 2508, 2526, 2544, 2562, 2580, 2598, 2616, 2634, 2652, 2670, 2688, 2706, 2724, 2742, 2760, 2778, 2796, 2814, 2832, 2850, 2868, 2886, 2904, 2922, 2940, 2958, 2976, 2994, 3012, 3030, 3048, 3066, 3084, 3102, 3120, 3138, 3156, 3174, 3192, 3210, 3228, 3246, 3264, 3282, 3300, 3318, 3336, 3354, 3372, 3390, 3408, 3426, 3444, 3462, 3480, 3498, 3516, 3534, 3552, 3570, 3588, 3606, 3624, 3642, 3660, 3678, 3696, 3714, 3732, 3750, 3768, 3786, 3804, 3822, 3840, 3858, 3876, 3894, 3912, 3930, 3948, 3966, 3984, 4002, 4020, 4038, 4056, 4074, 4092, 4110, 4128, 4146, 4164, 4182, 4200, 4218, 4236, 4254, 4272, 4290, 4308, 4326, 4344, 4362, 4380, 4398, 4416, 4434, 4452, 4470, 4488, 4506, 4524, 4542, 4560, 4578, 4596, 4614, 4632, 4650, 4668, 4686, 4704, 4722, 4740, 4475, 4493, 4511, 4529, 4547, 4565, 4583, 4601, 4619, 4637, 4655, 4673, 4691, 4709, 4727, 4745, 4763, 4781, 4799, 4817, 4835, 4853, 4871, 4889, 4907, 4925, 4943, 4961, 4979, 4997, 5015, 5033, 5051, 5069, 5087, 5105, 5123, 5141, 5159, 5177, 5195, 5213, 5231, 5249, 5267, 5285, 5303, 5321, 5339, 5357, 5375, 5393, 5411, 5429, 5447, 5465, 5483, 5501, 5519, 5537, 5555, 5573, 5591, 5609, 5627, 5645, 5663, 5681, 5699, 5717, 5735, 5753, 5771, 5789, 5807, 5825, 5843, 5861, 5879, 5897, 5915, 5933, 5951, 5969, 5987, 6005, 6023, 6041, 6059, 6077, 6095, 6113, 6131, 6149, 6167, 6185, 6203, 6221, 6239, 6257, 6275, 6293, 6311, 6329, 6347, 6365, 6383, 6401, 6419, 6437, 6455, 6473, 11, 29, 47, 65, 83, 101, 119, 137, 155, 173, 191, 209, 227, 245, 263, 281, 299, 317, 335, 353, 371, 389, 407, 425, 443, 461, 479, 497, 515, 533, 551, 569, 587, 605, 623, 641, 659, 677, 695, 713, 731, 749, 767, 785, 803, 821, 839, 857, 875, 893, 911, 929, 947, 965, 983, 1001, 1019, 1037, 1055, 1073, 1091, 1109, 1127, 1145, 1163, 1181, 1199, 1217, 1235, 1253, 1271, 1289, 1307, 1325, 1343, 1361, 1379, 1397, 1415, 1433, 1451, 1469, 1487, 1505, 1523, 1541, 1559, 1577, 1595, 1613, 1631, 1649, 1667, 1685, 1703, 1721, 1739, 1757, 1775, 1793, 1811, 1829, 1847, 1865, 1883, 1901, 1919, 1937, 1955, 1973, 1991, 2009, 2027, 2045, 2063, 2081, 2099, 2117, 2135, 2153, 2171, 2189, 2207, 2225, 2243, 2261, 2279, 2297, 2315, 2333, 2351, 2369, 2387, 2405, 2423, 2441, 2459, 2477, 2495, 2513, 2531, 2549, 2567, 2585, 2603, 2621, 2639, 2657, 2675, 2693, 2711, 2729, 2747, 2765, 2783, 2801, 2819, 2837, 2855, 2873, 2891, 2909, 2927, 2945, 2963, 2981, 2999, 3017, 3035, 3053, 3071, 3089, 3107, 3125, 3143, 3161, 3179, 3197, 3215, 3233, 3251, 3269, 3287, 3305, 3323, 3341, 3359, 3377, 3395, 3413, 3431, 3449, 3467, 3485, 3503, 3521, 3539, 3557, 3575, 3593, 3611, 3629, 3647, 3665, 3683, 3701, 3719, 3737, 3755, 3773, 3791, 3809, 3827, 3845, 3863, 3881, 3899, 3917, 3935, 3953, 3971, 3989, 4007, 4025, 4043, 4061, 4079, 4097, 4115, 4133, 4151, 4169, 4187, 4205, 4223, 4241, 4259, 4277, 4295, 4313, 4331, 4349, 4367, 4385, 4403, 4421, 4439, 4457, 5140, 5158, 5176, 5194, 5212, 5230, 5248, 5266, 5284, 5302, 5320, 5338, 5356, 5374, 5392, 5410, 5428, 5446, 5464, 5482, 5500, 5518, 5536, 5554, 5572, 5590, 5608, 5626, 5644, 5662, 5680, 5698, 5716, 5734, 5752, 5770, 5788, 5806, 5824, 5842, 5860, 5878, 5896, 5914, 5932, 5950, 5968, 5986, 6004, 6022, 6040, 6058, 6076, 6094, 6112, 6130, 6148, 6166, 6184, 6202, 6220, 6238, 6256, 6274, 6292, 6310, 6328, 6346, 6364, 6382, 6400, 6418, 6436, 6454, 6472, 10, 28, 46, 64, 82, 100, 118, 136, 154, 172, 190, 208, 226, 244, 262, 280, 298, 316, 334, 352, 370, 388, 406, 424, 442, 460, 478, 496, 514, 532, 550, 568, 586, 604, 622, 640, 658, 676, 694, 712, 730, 748, 766, 784, 802, 820, 838, 856, 874, 892, 910, 928, 946, 964, 982, 1000, 1018, 1036, 1054, 1072, 1090, 1108, 1126, 1144, 1162, 1180, 1198, 1216, 1234, 1252, 1270, 1288, 1306, 1324, 1342, 1360, 1378, 1396, 1414, 1432, 1450, 1468, 1486, 1504, 1522, 1540, 1558, 1576, 1594, 1612, 1630, 1648, 1666, 1684, 1702, 1720, 1738, 1756, 1774, 1792, 1810, 1828, 1846, 1864, 1882, 1900, 1918, 1936, 1954, 1972, 1990, 2008, 2026, 2044, 2062, 2080, 2098, 2116, 2134, 2152, 2170, 2188, 2206, 2224, 2242, 2260, 2278, 2296, 2314, 2332, 2350, 2368, 2386, 2404, 2422, 2440, 2458, 2476, 2494, 2512, 2530, 2548, 2566, 2584, 2602, 2620, 2638, 2656, 2674, 2692, 2710, 2728, 2746, 2764, 2782, 2800, 2818, 2836, 2854, 2872, 2890, 2908, 2926, 2944, 2962, 2980, 2998, 3016, 3034, 3052, 3070, 3088, 3106, 3124, 3142, 3160, 3178, 3196, 3214, 3232, 3250, 3268, 3286, 3304, 3322, 3340, 3358, 3376, 3394, 3412, 3430, 3448, 3466, 3484, 3502, 3520, 3538, 3556, 3574, 3592, 3610, 3628, 3646, 3664, 3682, 3700, 3718, 3736, 3754, 3772, 3790, 3808, 3826, 3844, 3862, 3880, 3898, 3916, 3934, 3952, 3970, 3988, 4006, 4024, 4042, 4060, 4078, 4096, 4114, 4132, 4150, 4168, 4186, 4204, 4222, 4240, 4258, 4276, 4294, 4312, 4330, 4348, 4366, 4384, 4402, 4420, 4438, 4456, 4474, 4492, 4510, 4528, 4546, 4564, 4582, 4600, 4618, 4636, 4654, 4672, 4690, 4708, 4726, 4744, 4762, 4780, 4798, 4816, 4834, 4852, 4870, 4888, 4906, 4924, 4942, 4960, 4978, 4996, 5014, 5032, 5050, 5068, 5086, 5104, 5122, 2907, 2925, 2943, 2961, 2979, 2997, 3015, 3033, 3051, 3069, 3087, 3105, 3123, 3141, 3159, 3177, 3195, 3213, 3231, 3249, 3267, 3285, 3303, 3321, 3339, 3357, 3375, 3393, 3411, 3429, 3447, 3465, 3483, 3501, 3519, 3537, 3555, 3573, 3591, 3609, 3627, 3645, 3663, 3681, 3699, 3717, 3735, 3753, 3771, 3789, 3807, 3825, 3843, 3861, 3879, 3897, 3915, 3933, 3951, 3969, 3987, 4005, 4023, 4041, 4059, 4077, 4095, 4113, 4131, 4149, 4167, 4185, 4203, 4221, 4239, 4257, 4275, 4293, 4311, 4329, 4347, 4365, 4383, 4401, 4419, 4437, 4455, 4473, 4491, 4509, 4527, 4545, 4563, 4581, 4599, 4617, 4635, 4653, 4671, 4689, 4707, 4725, 4743, 4761, 4779, 4797, 4815, 4833, 4851, 4869, 4887, 4905, 4923, 4941, 4959, 4977, 4995, 5013, 5031, 5049, 5067, 5085, 5103, 5121, 5139, 5157, 5175, 5193, 5211, 5229, 5247, 5265, 5283, 5301, 5319, 5337, 5355, 5373, 5391, 5409, 5427, 5445, 5463, 5481, 5499, 5517, 5535, 5553, 5571, 5589, 5607, 5625, 5643, 5661, 5679, 5697, 5715, 5733, 5751, 5769, 5787, 5805, 5823, 5841, 5859, 5877, 5895, 5913, 5931, 5949, 5967, 5985, 6003, 6021, 6039, 6057, 6075, 6093, 6111, 6129, 6147, 6165, 6183, 6201, 6219, 6237, 6255, 6273, 6291, 6309, 6327, 6345, 6363, 6381, 6399, 6417, 6435, 6453, 6471, 9, 27, 45, 63, 81, 99, 117, 135, 153, 171, 189, 207, 225, 243, 261, 279, 297, 315, 333, 351, 369, 387, 405, 423, 441, 459, 477, 495, 513, 531, 549, 567, 585, 603, 621, 639, 657, 675, 693, 711, 729, 747, 765, 783, 801, 819, 837, 855, 873, 891, 909, 927, 945, 963, 981, 999, 1017, 1035, 1053, 1071, 1089, 1107, 1125, 1143, 1161, 1179, 1197, 1215, 1233, 1251, 1269, 1287, 1305, 1323, 1341, 1359, 1377, 1395, 1413, 1431, 1449, 1467, 1485, 1503, 1521, 1539, 1557, 1575, 1593, 1611, 1629, 1647, 1665, 1683, 1701, 1719, 1737, 1755, 1773, 1791, 1809, 1827, 1845, 1863, 1881, 1899, 1917, 1935, 1953, 1971, 1989, 2007, 2025, 2043, 2061, 2079, 2097, 2115, 2133, 2151, 2169, 2187, 2205, 2223, 2241, 2259, 2277, 2295, 2313, 2331, 2349, 2367, 2385, 2403, 2421, 2439, 2457, 2475, 2493, 2511, 2529, 2547, 2565, 2583, 2601, 2619, 2637, 2655, 2673, 2691, 2709, 2727, 2745, 2763, 2781, 2799, 2817, 2835, 2853, 2871, 2889, 5416, 5434, 5452, 5470, 5488, 5506, 5524, 5542, 5560, 5578, 5596, 5614, 5632, 5650, 5668, 5686, 5704, 5722, 5740, 5758, 5776, 5794, 5812, 5830, 5848, 5866, 5884, 5902, 5920, 5938, 5956, 5974, 5992, 6010, 6028, 6046, 6064, 6082, 6100, 6118, 6136, 6154, 6172, 6190, 6208, 6226, 6244, 6262, 6280, 6298, 6316, 6334, 6352, 6370, 6388, 6406, 6424, 6442, 6460, 6478, 16, 34, 52, 70, 88, 106, 124, 142, 160, 178, 196, 214, 232, 250, 268, 286, 304, 322, 340, 358, 376, 394, 412, 430, 448, 466, 484, 502, 520, 538, 556, 574, 592, 610, 628, 646, 664, 682, 700, 718, 736, 754, 772, 790, 808, 826, 844, 862, 880, 898, 916, 934, 952, 970, 988, 1006, 1024, 1042, 1060, 1078, 1096, 1114, 1132, 1150, 1168, 1186, 1204, 1222, 1240, 1258, 1276, 1294, 1312, 1330, 1348, 1366, 1384, 1402, 1420, 1438, 1456, 1474, 1492, 1510, 1528, 1546, 1564, 1582, 1600, 1618, 1636, 1654, 1672, 1690, 1708, 1726, 1744, 1762, 1780, 1798, 1816, 1834, 1852, 1870, 1888, 1906, 1924, 1942, 1960, 1978, 1996, 2014, 2032, 2050, 2068, 2086, 2104, 2122, 2140, 2158, 2176, 2194, 2212, 2230, 2248, 2266, 2284, 2302, 2320, 2338, 2356, 2374, 2392, 2410, 2428, 2446, 2464, 2482, 2500, 2518, 2536, 2554, 2572, 2590, 2608, 2626, 2644, 2662, 2680, 2698, 2716, 2734, 2752, 2770, 2788, 2806, 2824, 2842, 2860, 2878, 2896, 2914, 2932, 2950, 2968, 2986, 3004, 3022, 3040, 3058, 3076, 3094, 3112, 3130, 3148, 3166, 3184, 3202, 3220, 3238, 3256, 3274, 3292, 3310, 3328, 3346, 3364, 3382, 3400, 3418, 3436, 3454, 3472, 3490, 3508, 3526, 3544, 3562, 3580, 3598, 3616, 3634, 3652, 3670, 3688, 3706, 3724, 3742, 3760, 3778, 3796, 3814, 3832, 3850, 3868, 3886, 3904, 3922, 3940, 3958, 3976, 3994, 4012, 4030, 4048, 4066, 4084, 4102, 4120, 4138, 4156, 4174, 4192, 4210, 4228, 4246, 4264, 4282, 4300, 4318, 4336, 4354, 4372, 4390, 4408, 4426, 4444, 4462, 4480, 4498, 4516, 4534, 4552, 4570, 4588, 4606, 4624, 4642, 4660, 4678, 4696, 4714, 4732, 4750, 4768, 4786, 4804, 4822, 4840, 4858, 4876, 4894, 4912, 4930, 4948, 4966, 4984, 5002, 5020, 5038, 5056, 5074, 5092, 5110, 5128, 5146, 5164, 5182, 5200, 5218, 5236, 5254, 5272, 5290, 5308, 5326, 5344, 5362, 5380, 5398, 4070, 4088, 4106, 4124, 4142, 4160, 4178, 4196, 4214, 4232, 4250, 4268, 4286, 4304, 4322, 4340, 4358, 4376, 4394, 4412, 4430, 4448, 4466, 4484, 4502, 4520, 4538, 4556, 4574, 4592, 4610, 4628, 4646, 4664, 4682, 4700, 4718, 4736, 4754, 4772, 4790, 4808, 4826, 4844, 4862, 4880, 4898, 4916, 4934, 4952, 4970, 4988, 5006, 5024, 5042, 5060, 5078, 5096, 5114, 5132, 5150, 5168, 5186, 5204, 5222, 5240, 5258, 5276, 5294, 5312, 5330, 5348, 5366, 5384, 5402, 5420, 5438, 5456, 5474, 5492, 5510, 5528, 5546, 5564, 5582, 5600, 5618, 5636, 5654, 5672, 5690, 5708, 5726, 5744, 5762, 5780, 5798, 5816, 5834, 5852, 5870, 5888, 5906, 5924, 5942, 5960, 5978, 5996, 6014, 6032, 6050, 6068, 6086, 6104, 6122, 6140, 6158, 6176, 6194, 6212, 6230, 6248, 6266, 6284, 6302, 6320, 6338, 6356, 6374, 6392, 6410, 6428, 6446, 6464, 2, 20, 38, 56, 74, 92, 110, 128, 146, 164, 182, 200, 218, 236, 254, 272, 290, 308, 326, 344, 362, 380, 398, 416, 434, 452, 470, 488, 506, 524, 542, 560, 578, 596, 614, 632, 650, 668, 686, 704, 722, 740, 758, 776, 794, 812, 830, 848, 866, 884, 902, 920, 938, 956, 974, 992, 1010, 1028, 1046, 1064, 1082, 1100, 1118, 1136, 1154, 1172, 1190, 1208, 1226, 1244, 1262, 1280, 1298, 1316, 1334, 1352, 1370, 1388, 1406, 1424, 1442, 1460, 1478, 1496, 1514, 1532, 1550, 1568, 1586, 1604, 1622, 1640, 1658, 1676, 1694, 1712, 1730, 1748, 1766, 1784, 1802, 1820, 1838, 1856, 1874, 1892, 1910, 1928, 1946, 1964, 1982, 2000, 2018, 2036, 2054, 2072, 2090, 2108, 2126, 2144, 2162, 2180, 2198, 2216, 2234, 2252, 2270, 2288, 2306, 2324, 2342, 2360, 2378, 2396, 2414, 2432, 2450, 2468, 2486, 2504, 2522, 2540, 2558, 2576, 2594, 2612, 2630, 2648, 2666, 2684, 2702, 2720, 2738, 2756, 2774, 2792, 2810, 2828, 2846, 2864, 2882, 2900, 2918, 2936, 2954, 2972, 2990, 3008, 3026, 3044, 3062, 3080, 3098, 3116, 3134, 3152, 3170, 3188, 3206, 3224, 3242, 3260, 3278, 3296, 3314, 3332, 3350, 3368, 3386, 3404, 3422, 3440, 3458, 3476, 3494, 3512, 3530, 3548, 3566, 3584, 3602, 3620, 3638, 3656, 3674, 3692, 3710, 3728, 3746, 3764, 3782, 3800, 3818, 3836, 3854, 3872, 3890, 3908, 3926, 3944, 3962, 3980, 3998, 4016, 4034, 4052, 2654, 2672, 2690, 2708, 2726, 2744, 2762, 2780, 2798, 2816, 2834, 2852, 2870, 2888, 2906, 2924, 2942, 2960, 2978, 2996, 3014, 3032, 3050, 3068, 3086, 3104, 3122, 3140, 3158, 3176, 3194, 3212, 3230, 3248, 3266, 3284, 3302, 3320, 3338, 3356, 3374, 3392, 3410, 3428, 3446, 3464, 3482, 3500, 3518, 3536, 3554, 3572, 3590, 3608, 3626, 3644, 3662, 3680, 3698, 3716, 3734, 3752, 3770, 3788, 3806, 3824, 3842, 3860, 3878, 3896, 3914, 3932, 3950, 3968, 3986, 4004, 4022, 4040, 4058, 4076, 4094, 4112, 4130, 4148, 4166, 4184, 4202, 4220, 4238, 4256, 4274, 4292, 4310, 4328, 4346, 4364, 4382, 4400, 4418, 4436, 4454, 4472, 4490, 4508, 4526, 4544, 4562, 4580, 4598, 4616, 4634, 4652, 4670, 4688, 4706, 4724, 4742, 4760, 4778, 4796, 4814, 4832, 4850, 4868, 4886, 4904, 4922, 4940, 4958, 4976, 4994, 5012, 5030, 5048, 5066, 5084, 5102, 5120, 5138, 5156, 5174, 5192, 5210, 5228, 5246, 5264, 5282, 5300, 5318, 5336, 5354, 5372, 5390, 5408, 5426, 5444, 5462, 5480, 5498, 5516, 5534, 5552, 5570, 5588, 5606, 5624, 5642, 5660, 5678, 5696, 5714, 5732, 5750, 5768, 5786, 5804, 5822, 5840, 5858, 5876, 5894, 5912, 5930, 5948, 5966, 5984, 6002, 6020, 6038, 6056, 6074, 6092, 6110, 6128, 6146, 6164, 6182, 6200, 6218, 6236, 6254, 6272, 6290, 6308, 6326, 6344, 6362, 6380, 6398, 6416, 6434, 6452, 6470, 8, 26, 44, 62, 80, 98, 116, 134, 152, 170, 188, 206, 224, 242, 260, 278, 296, 314, 332, 350, 368, 386, 404, 422, 440, 458, 476, 494, 512, 530, 548, 566, 584, 602, 620, 638, 656, 674, 692, 710, 728, 746, 764, 782, 800, 818, 836, 854, 872, 890, 908, 926, 944, 962, 980, 998, 1016, 1034, 1052, 1070, 1088, 1106, 1124, 1142, 1160, 1178, 1196, 1214, 1232, 1250, 1268, 1286, 1304, 1322, 1340, 1358, 1376, 1394, 1412, 1430, 1448, 1466, 1484, 1502, 1520, 1538, 1556, 1574, 1592, 1610, 1628, 1646, 1664, 1682, 1700, 1718, 1736, 1754, 1772, 1790, 1808, 1826, 1844, 1862, 1880, 1898, 1916, 1934, 1952, 1970, 1988, 2006, 2024, 2042, 2060, 2078, 2096, 2114, 2132, 2150, 2168, 2186, 2204, 2222, 2240, 2258, 2276, 2294, 2312, 2330, 2348, 2366, 2384, 2402, 2420, 2438, 2456, 2474, 2492, 2510, 2528, 2546, 2564, 2582, 2600, 2618, 2636, 1462, 1480, 1498, 1516, 1534, 1552, 1570, 1588, 1606, 1624, 1642, 1660, 1678, 1696, 1714, 1732, 1750, 1768, 1786, 1804, 1822, 1840, 1858, 1876, 1894, 1912, 1930, 1948, 1966, 1984, 2002, 2020, 2038, 2056, 2074, 2092, 2110, 2128, 2146, 2164, 2182, 2200, 2218, 2236, 2254, 2272, 2290, 2308, 2326, 2344, 2362, 2380, 2398, 2416, 2434, 2452, 2470, 2488, 2506, 2524, 2542, 2560, 2578, 2596, 2614, 2632, 2650, 2668, 2686, 2704, 2722, 2740, 2758, 2776, 2794, 2812, 2830, 2848, 2866, 2884, 2902, 2920, 2938, 2956, 2974, 2992, 3010, 3028, 3046, 3064, 3082, 3100, 3118, 3136, 3154, 3172, 3190, 3208, 3226, 3244, 3262, 3280, 3298, 3316, 3334, 3352, 3370, 3388, 3406, 3424, 3442, 3460, 3478, 3496, 3514, 3532, 3550, 3568, 3586, 3604, 3622, 3640, 3658, 3676, 3694, 3712, 3730, 3748, 3766, 3784, 3802, 3820, 3838, 3856, 3874, 3892, 3910, 3928, 3946, 3964, 3982, 4000, 4018, 4036, 4054, 4072, 4090, 4108, 4126, 4144, 4162, 4180, 4198, 4216, 4234, 4252, 4270, 4288, 4306, 4324, 4342, 4360, 4378, 4396, 4414, 4432, 4450, 4468, 4486, 4504, 4522, 4540, 4558, 4576, 4594, 4612, 4630, 4648, 4666, 4684, 4702, 4720, 4738, 4756, 4774, 4792, 4810, 4828, 4846, 4864, 4882, 4900, 4918, 4936, 4954, 4972, 4990, 5008, 5026, 5044, 5062, 5080, 5098, 5116, 5134, 5152, 5170, 5188, 5206, 5224, 5242, 5260, 5278, 5296, 5314, 5332, 5350, 5368, 5386, 5404, 5422, 5440, 5458, 5476, 5494, 5512, 5530, 5548, 5566, 5584, 5602, 5620, 5638, 5656, 5674, 5692, 5710, 5728, 5746, 5764, 5782, 5800, 5818, 5836, 5854, 5872, 5890, 5908, 5926, 5944, 5962, 5980, 5998, 6016, 6034, 6052, 6070, 6088, 6106, 6124, 6142, 6160, 6178, 6196, 6214, 6232, 6250, 6268, 6286, 6304, 6322, 6340, 6358, 6376, 6394, 6412, 6430, 6448, 6466, 4, 22, 40, 58, 76, 94, 112, 130, 148, 166, 184, 202, 220, 238, 256, 274, 292, 310, 328, 346, 364, 382, 400, 418, 436, 454, 472, 490, 508, 526, 544, 562, 580, 598, 616, 634, 652, 670, 688, 706, 724, 742, 760, 778, 796, 814, 832, 850, 868, 886, 904, 922, 940, 958, 976, 994, 1012, 1030, 1048, 1066, 1084, 1102, 1120, 1138, 1156, 1174, 1192, 1210, 1228, 1246, 1264, 1282, 1300, 1318, 1336, 1354, 1372, 1390, 1408, 1426, 1444, 3708, 3726, 3744, 3762, 3780, 3798, 3816, 3834, 3852, 3870, 3888, 3906, 3924, 3942, 3960, 3978, 3996, 4014, 4032, 4050, 4068, 4086, 4104, 4122, 4140, 4158, 4176, 4194, 4212, 4230, 4248, 4266, 4284, 4302, 4320, 4338, 4356, 4374, 4392, 4410, 4428, 4446, 4464, 4482, 4500, 4518, 4536, 4554, 4572, 4590, 4608, 4626, 4644, 4662, 4680, 4698, 4716, 4734, 4752, 4770, 4788, 4806, 4824, 4842, 4860, 4878, 4896, 4914, 4932, 4950, 4968, 4986, 5004, 5022, 5040, 5058, 5076, 5094, 5112, 5130, 5148, 5166, 5184, 5202, 5220, 5238, 5256, 5274, 5292, 5310, 5328, 5346, 5364, 5382, 5400, 5418, 5436, 5454, 5472, 5490, 5508, 5526, 5544, 5562, 5580, 5598, 5616, 5634, 5652, 5670, 5688, 5706, 5724, 5742, 5760, 5778, 5796, 5814, 5832, 5850, 5868, 5886, 5904, 5922, 5940, 5958, 5976, 5994, 6012, 6030, 6048, 6066, 6084, 6102, 6120, 6138, 6156, 6174, 6192, 6210, 6228, 6246, 6264, 6282, 6300, 6318, 6336, 6354, 6372, 6390, 6408, 6426, 6444, 6462, 6480, 18, 36, 54, 72, 90, 108, 126, 144, 162, 180, 198, 216, 234, 252, 270, 288, 306, 324, 342, 360, 378, 396, 414, 432, 450, 468, 486, 504, 522, 540, 558, 576, 594, 612, 630, 648, 666, 684, 702, 720, 738, 756, 774, 792, 810, 828, 846, 864, 882, 900, 918, 936, 954, 972, 990, 1008, 1026, 1044, 1062, 1080, 1098, 1116, 1134, 1152, 1170, 1188, 1206, 1224, 1242, 1260, 1278, 1296, 1314, 1332, 1350, 1368, 1386, 1404, 1422, 1440, 1458, 1476, 1494, 1512, 1530, 1548, 1566, 1584, 1602, 1620, 1638, 1656, 1674, 1692, 1710, 1728, 1746, 1764, 1782, 1800, 1818, 1836, 1854, 1872, 1890, 1908, 1926, 1944, 1962, 1980, 1998, 2016, 2034, 2052, 2070, 2088, 2106, 2124, 2142, 2160, 2178, 2196, 2214, 2232, 2250, 2268, 2286, 2304, 2322, 2340, 2358, 2376, 2394, 2412, 2430, 2448, 2466, 2484, 2502, 2520, 2538, 2556, 2574, 2592, 2610, 2628, 2646, 2664, 2682, 2700, 2718, 2736, 2754, 2772, 2790, 2808, 2826, 2844, 2862, 2880, 2898, 2916, 2934, 2952, 2970, 2988, 3006, 3024, 3042, 3060, 3078, 3096, 3114, 3132, 3150, 3168, 3186, 3204, 3222, 3240, 3258, 3276, 3294, 3312, 3330, 3348, 3366, 3384, 3402, 3420, 3438, 3456, 3474, 3492, 3510, 3528, 3546, 3564, 3582, 3600, 3618, 3636, 3654, 3672, 3690, 1058, 1076, 1094, 1112, 1130, 1148, 1166, 1184, 1202, 1220, 1238, 1256, 1274, 1292, 1310, 1328, 1346, 1364, 1382, 1400, 1418, 1436, 1454, 1472, 1490, 1508, 1526, 1544, 1562, 1580, 1598, 1616, 1634, 1652, 1670, 1688, 1706, 1724, 1742, 1760, 1778, 1796, 1814, 1832, 1850, 1868, 1886, 1904, 1922, 1940, 1958, 1976, 1994, 2012, 2030, 2048, 2066, 2084, 2102, 2120, 2138, 2156, 2174, 2192, 2210, 2228, 2246, 2264, 2282, 2300, 2318, 2336, 2354, 2372, 2390, 2408, 2426, 2444, 2462, 2480, 2498, 2516, 2534, 2552, 2570, 2588, 2606, 2624, 2642, 2660, 2678, 2696, 2714, 2732, 2750, 2768, 2786, 2804, 2822, 2840, 2858, 2876, 2894, 2912, 2930, 2948, 2966, 2984, 3002, 3020, 3038, 3056, 3074, 3092, 3110, 3128, 3146, 3164, 3182, 3200, 3218, 3236, 3254, 3272, 3290, 3308, 3326, 3344, 3362, 3380, 3398, 3416, 3434, 3452, 3470, 3488, 3506, 3524, 3542, 3560, 3578, 3596, 3614, 3632, 3650, 3668, 3686, 3704, 3722, 3740, 3758, 3776, 3794, 3812, 3830, 3848, 3866, 3884, 3902, 3920, 3938, 3956, 3974, 3992, 4010, 4028, 4046, 4064, 4082, 4100, 4118, 4136, 4154, 4172, 4190, 4208, 4226, 4244, 4262, 4280, 4298, 4316, 4334, 4352, 4370, 4388, 4406, 4424, 4442, 4460, 4478, 4496, 4514, 4532, 4550, 4568, 4586, 4604, 4622, 4640, 4658, 4676, 4694, 4712, 4730, 4748, 4766, 4784, 4802, 4820, 4838, 4856, 4874, 4892, 4910, 4928, 4946, 4964, 4982, 5000, 5018, 5036, 5054, 5072, 5090, 5108, 5126, 5144, 5162, 5180, 5198, 5216, 5234, 5252, 5270, 5288, 5306, 5324, 5342, 5360, 5378, 5396, 5414, 5432, 5450, 5468, 5486, 5504, 5522, 5540, 5558, 5576, 5594, 5612, 5630, 5648, 5666, 5684, 5702, 5720, 5738, 5756, 5774, 5792, 5810, 5828, 5846, 5864, 5882, 5900, 5918, 5936, 5954, 5972, 5990, 6008, 6026, 6044, 6062, 6080, 6098, 6116, 6134, 6152, 6170, 6188, 6206, 6224, 6242, 6260, 6278, 6296, 6314, 6332, 6350, 6368, 6386, 6404, 6422, 6440, 6458, 6476, 14, 32, 50, 68, 86, 104, 122, 140, 158, 176, 194, 212, 230, 248, 266, 284, 302, 320, 338, 356, 374, 392, 410, 428, 446, 464, 482, 500, 518, 536, 554, 572, 590, 608, 626, 644, 662, 680, 698, 716, 734, 752, 770, 788, 806, 824, 842, 860, 878, 896, 914, 932, 950, 968, 986, 1004, 1022, 1040, 6063, 6081, 6099, 6117, 6135, 6153, 6171, 6189, 6207, 6225, 6243, 6261, 6279, 6297, 6315, 6333, 6351, 6369, 6387, 6405, 6423, 6441, 6459, 6477, 15, 33, 51, 69, 87, 105, 123, 141, 159, 177, 195, 213, 231, 249, 267, 285, 303, 321, 339, 357, 375, 393, 411, 429, 447, 465, 483, 501, 519, 537, 555, 573, 591, 609, 627, 645, 663, 681, 699, 717, 735, 753, 771, 789, 807, 825, 843, 861, 879, 897, 915, 933, 951, 969, 987, 1005, 1023, 1041, 1059, 1077, 1095, 1113, 1131, 1149, 1167, 1185, 1203, 1221, 1239, 1257, 1275, 1293, 1311, 1329, 1347, 1365, 1383, 1401, 1419, 1437, 1455, 1473, 1491, 1509, 1527, 1545, 1563, 1581, 1599, 1617, 1635, 1653, 1671, 1689, 1707, 1725, 1743, 1761, 1779, 1797, 1815, 1833, 1851, 1869, 1887, 1905, 1923, 1941, 1959, 1977, 1995, 2013, 2031, 2049, 2067, 2085, 2103, 2121, 2139, 2157, 2175, 2193, 2211, 2229, 2247, 2265, 2283, 2301, 2319, 2337, 2355, 2373, 2391, 2409, 2427, 2445, 2463, 2481, 2499, 2517, 2535, 2553, 2571, 2589, 2607, 2625, 2643, 2661, 2679, 2697, 2715, 2733, 2751, 2769, 2787, 2805, 2823, 2841, 2859, 2877, 2895, 2913, 2931, 2949, 2967, 2985, 3003, 3021, 3039, 3057, 3075, 3093, 3111, 3129, 3147, 3165, 3183, 3201, 3219, 3237, 3255, 3273, 3291, 3309, 3327, 3345, 3363, 3381, 3399, 3417, 3435, 3453, 3471, 3489, 3507, 3525, 3543, 3561, 3579, 3597, 3615, 3633, 3651, 3669, 3687, 3705, 3723, 3741, 3759, 3777, 3795, 3813, 3831, 3849, 3867, 3885, 3903, 3921, 3939, 3957, 3975, 3993, 4011, 4029, 4047, 4065, 4083, 4101, 4119, 4137, 4155, 4173, 4191, 4209, 4227, 4245, 4263, 4281, 4299, 4317, 4335, 4353, 4371, 4389, 4407, 4425, 4443, 4461, 4479, 4497, 4515, 4533, 4551, 4569, 4587, 4605, 4623, 4641, 4659, 4677, 4695, 4713, 4731, 4749, 4767, 4785, 4803, 4821, 4839, 4857, 4875, 4893, 4911, 4929, 4947, 4965, 4983, 5001, 5019, 5037, 5055, 5073, 5091, 5109, 5127, 5145, 5163, 5181, 5199, 5217, 5235, 5253, 5271, 5289, 5307, 5325, 5343, 5361, 5379, 5397, 5415, 5433, 5451, 5469, 5487, 5505, 5523, 5541, 5559, 5577, 5595, 5613, 5631, 5649, 5667, 5685, 5703, 5721, 5739, 5757, 5775, 5793, 5811, 5829, 5847, 5865, 5883, 5901, 5919, 5937, 5955, 5973, 5991, 6009, 6027, 6045, 6029, 6047, 6065, 6083, 6101, 6119, 6137, 6155, 6173, 6191, 6209, 6227, 6245, 6263, 6281, 6299, 6317, 6335, 6353, 6371, 6389, 6407, 6425, 6443, 6461, 6479, 17, 35, 53, 71, 89, 107, 125, 143, 161, 179, 197, 215, 233, 251, 269, 287, 305, 323, 341, 359, 377, 395, 413, 431, 449, 467, 485, 503, 521, 539, 557, 575, 593, 611, 629, 647, 665, 683, 701, 719, 737, 755, 773, 791, 809, 827, 845, 863, 881, 899, 917, 935, 953, 971, 989, 1007, 1025, 1043, 1061, 1079, 1097, 1115, 1133, 1151, 1169, 1187, 1205, 1223, 1241, 1259, 1277, 1295, 1313, 1331, 1349, 1367, 1385, 1403, 1421, 1439, 1457, 1475, 1493, 1511, 1529, 1547, 1565, 1583, 1601, 1619, 1637, 1655, 1673, 1691, 1709, 1727, 1745, 1763, 1781, 1799, 1817, 1835, 1853, 1871, 1889, 1907, 1925, 1943, 1961, 1979, 1997, 2015, 2033, 2051, 2069, 2087, 2105, 2123, 2141, 2159, 2177, 2195, 2213, 2231, 2249, 2267, 2285, 2303, 2321, 2339, 2357, 2375, 2393, 2411, 2429, 2447, 2465, 2483, 2501, 2519, 2537, 2555, 2573, 2591, 2609, 2627, 2645, 2663, 2681, 2699, 2717, 2735, 2753, 2771, 2789, 2807, 2825, 2843, 2861, 2879, 2897, 2915, 2933, 2951, 2969, 2987, 3005, 3023, 3041, 3059, 3077, 3095, 3113, 3131, 3149, 3167, 3185, 3203, 3221, 3239, 3257, 3275, 3293, 3311, 3329, 3347, 3365, 3383, 3401, 3419, 3437, 3455, 3473, 3491, 3509, 3527, 3545, 3563, 3581, 3599, 3617, 3635, 3653, 3671, 3689, 3707, 3725, 3743, 3761, 3779, 3797, 3815, 3833, 3851, 3869, 3887, 3905, 3923, 3941, 3959, 3977, 3995, 4013, 4031, 4049, 4067, 4085, 4103, 4121, 4139, 4157, 4175, 4193, 4211, 4229, 4247, 4265, 4283, 4301, 4319, 4337, 4355, 4373, 4391, 4409, 4427, 4445, 4463, 4481, 4499, 4517, 4535, 4553, 4571, 4589, 4607, 4625, 4643, 4661, 4679, 4697, 4715, 4733, 4751, 4769, 4787, 4805, 4823, 4841, 4859, 4877, 4895, 4913, 4931, 4949, 4967, 4985, 5003, 5021, 5039, 5057, 5075, 5093, 5111, 5129, 5147, 5165, 5183, 5201, 5219, 5237, 5255, 5273, 5291, 5309, 5327, 5345, 5363, 5381, 5399, 5417, 5435, 5453, 5471, 5489, 5507, 5525, 5543, 5561, 5579, 5597, 5615, 5633, 5651, 5669, 5687, 5705, 5723, 5741, 5759, 5777, 5795, 5813, 5831, 5849, 5867, 5885, 5903, 5921, 5939, 5957, 5975, 5993, 6011, 1937, 1955, 1973, 1991, 2009, 2027, 2045, 2063, 2081, 2099, 2117, 2135, 2153, 2171, 2189, 2207, 2225, 2243, 2261, 2279, 2297, 2315, 2333, 2351, 2369, 2387, 2405, 2423, 2441, 2459, 2477, 2495, 2513, 2531, 2549, 2567, 2585, 2603, 2621, 2639, 2657, 2675, 2693, 2711, 2729, 2747, 2765, 2783, 2801, 2819, 2837, 2855, 2873, 2891, 2909, 2927, 2945, 2963, 2981, 2999, 3017, 3035, 3053, 3071, 3089, 3107, 3125, 3143, 3161, 3179, 3197, 3215, 3233, 3251, 3269, 3287, 3305, 3323, 3341, 3359, 3377, 3395, 3413, 3431, 3449, 3467, 3485, 3503, 3521, 3539, 3557, 3575, 3593, 3611, 3629, 3647, 3665, 3683, 3701, 3719, 3737, 3755, 3773, 3791, 3809, 3827, 3845, 3863, 3881, 3899, 3917, 3935, 3953, 3971, 3989, 4007, 4025, 4043, 4061, 4079, 4097, 4115, 4133, 4151, 4169, 4187, 4205, 4223, 4241, 4259, 4277, 4295, 4313, 4331, 4349, 4367, 4385, 4403, 4421, 4439, 4457, 4475, 4493, 4511, 4529, 4547, 4565, 4583, 4601, 4619, 4637, 4655, 4673, 4691, 4709, 4727, 4745, 4763, 4781, 4799, 4817, 4835, 4853, 4871, 4889, 4907, 4925, 4943, 4961, 4979, 4997, 5015, 5033, 5051, 5069, 5087, 5105, 5123, 5141, 5159, 5177, 5195, 5213, 5231, 5249, 5267, 5285, 5303, 5321, 5339, 5357, 5375, 5393, 5411, 5429, 5447, 5465, 5483, 5501, 5519, 5537, 5555, 5573, 5591, 5609, 5627, 5645, 5663, 5681, 5699, 5717, 5735, 5753, 5771, 5789, 5807, 5825, 5843, 5861, 5879, 5897, 5915, 5933, 5951, 5969, 5987, 6005, 6023, 6041, 6059, 6077, 6095, 6113, 6131, 6149, 6167, 6185, 6203, 6221, 6239, 6257, 6275, 6293, 6311, 6329, 6347, 6365, 6383, 6401, 6419, 6437, 6455, 6473, 11, 29, 47, 65, 83, 101, 119, 137, 155, 173, 191, 209, 227, 245, 263, 281, 299, 317, 335, 353, 371, 389, 407, 425, 443, 461, 479, 497, 515, 533, 551, 569, 587, 605, 623, 641, 659, 677, 695, 713, 731, 749, 767, 785, 803, 821, 839, 857, 875, 893, 911, 929, 947, 965, 983, 1001, 1019, 1037, 1055, 1073, 1091, 1109, 1127, 1145, 1163, 1181, 1199, 1217, 1235, 1253, 1271, 1289, 1307, 1325, 1343, 1361, 1379, 1397, 1415, 1433, 1451, 1469, 1487, 1505, 1523, 1541, 1559, 1577, 1595, 1613, 1631, 1649, 1667, 1685, 1703, 1721, 1739, 1757, 1775, 1793, 1811, 1829, 1847, 1865, 1883, 1901, 1919, 957, 975, 993, 1011, 1029, 1047, 1065, 1083, 1101, 1119, 1137, 1155, 1173, 1191, 1209, 1227, 1245, 1263, 1281, 1299, 1317, 1335, 1353, 1371, 1389, 1407, 1425, 1443, 1461, 1479, 1497, 1515, 1533, 1551, 1569, 1587, 1605, 1623, 1641, 1659, 1677, 1695, 1713, 1731, 1749, 1767, 1785, 1803, 1821, 1839, 1857, 1875, 1893, 1911, 1929, 1947, 1965, 1983, 2001, 2019, 2037, 2055, 2073, 2091, 2109, 2127, 2145, 2163, 2181, 2199, 2217, 2235, 2253, 2271, 2289, 2307, 2325, 2343, 2361, 2379, 2397, 2415, 2433, 2451, 2469, 2487, 2505, 2523, 2541, 2559, 2577, 2595, 2613, 2631, 2649, 2667, 2685, 2703, 2721, 2739, 2757, 2775, 2793, 2811, 2829, 2847, 2865, 2883, 2901, 2919, 2937, 2955, 2973, 2991, 3009, 3027, 3045, 3063, 3081, 3099, 3117, 3135, 3153, 3171, 3189, 3207, 3225, 3243, 3261, 3279, 3297, 3315, 3333, 3351, 3369, 3387, 3405, 3423, 3441, 3459, 3477, 3495, 3513, 3531, 3549, 3567, 3585, 3603, 3621, 3639, 3657, 3675, 3693, 3711, 3729, 3747, 3765, 3783, 3801, 3819, 3837, 3855, 3873, 3891, 3909, 3927, 3945, 3963, 3981, 3999, 4017, 4035, 4053, 4071, 4089, 4107, 4125, 4143, 4161, 4179, 4197, 4215, 4233, 4251, 4269, 4287, 4305, 4323, 4341, 4359, 4377, 4395, 4413, 4431, 4449, 4467, 4485, 4503, 4521, 4539, 4557, 4575, 4593, 4611, 4629, 4647, 4665, 4683, 4701, 4719, 4737, 4755, 4773, 4791, 4809, 4827, 4845, 4863, 4881, 4899, 4917, 4935, 4953, 4971, 4989, 5007, 5025, 5043, 5061, 5079, 5097, 5115, 5133, 5151, 5169, 5187, 5205, 5223, 5241, 5259, 5277, 5295, 5313, 5331, 5349, 5367, 5385, 5403, 5421, 5439, 5457, 5475, 5493, 5511, 5529, 5547, 5565, 5583, 5601, 5619, 5637, 5655, 5673, 5691, 5709, 5727, 5745, 5763, 5781, 5799, 5817, 5835, 5853, 5871, 5889, 5907, 5925, 5943, 5961, 5979, 5997, 6015, 6033, 6051, 6069, 6087, 6105, 6123, 6141, 6159, 6177, 6195, 6213, 6231, 6249, 6267, 6285, 6303, 6321, 6339, 6357, 6375, 6393, 6411, 6429, 6447, 6465, 3, 21, 39, 57, 75, 93, 111, 129, 147, 165, 183, 201, 219, 237, 255, 273, 291, 309, 327, 345, 363, 381, 399, 417, 435, 453, 471, 489, 507, 525, 543, 561, 579, 597, 615, 633, 651, 669, 687, 705, 723, 741, 759, 777, 795, 813, 831, 849, 867, 885, 903, 921, 939, 3418, 3436, 3454, 3472, 3490, 3508, 3526, 3544, 3562, 3580, 3598, 3616, 3634, 3652, 3670, 3688, 3706, 3724, 3742, 3760, 3778, 3796, 3814, 3832, 3850, 3868, 3886, 3904, 3922, 3940, 3958, 3976, 3994, 4012, 4030, 4048, 4066, 4084, 4102, 4120, 4138, 4156, 4174, 4192, 4210, 4228, 4246, 4264, 4282, 4300, 4318, 4336, 4354, 4372, 4390, 4408, 4426, 4444, 4462, 4480, 4498, 4516, 4534, 4552, 4570, 4588, 4606, 4624, 4642, 4660, 4678, 4696, 4714, 4732, 4750, 4768, 4786, 4804, 4822, 4840, 4858, 4876, 4894, 4912, 4930, 4948, 4966, 4984, 5002, 5020, 5038, 5056, 5074, 5092, 5110, 5128, 5146, 5164, 5182, 5200, 5218, 5236, 5254, 5272, 5290, 5308, 5326, 5344, 5362, 5380, 5398, 5416, 5434, 5452, 5470, 5488, 5506, 5524, 5542, 5560, 5578, 5596, 5614, 5632, 5650, 5668, 5686, 5704, 5722, 5740, 5758, 5776, 5794, 5812, 5830, 5848, 5866, 5884, 5902, 5920, 5938, 5956, 5974, 5992, 6010, 6028, 6046, 6064, 6082, 6100, 6118, 6136, 6154, 6172, 6190, 6208, 6226, 6244, 6262, 6280, 6298, 6316, 6334, 6352, 6370, 6388, 6406, 6424, 6442, 6460, 6478, 16, 34, 52, 70, 88, 106, 124, 142, 160, 178, 196, 214, 232, 250, 268, 286, 304, 322, 340, 358, 376, 394, 412, 430, 448, 466, 484, 502, 520, 538, 556, 574, 592, 610, 628, 646, 664, 682, 700, 718, 736, 754, 772, 790, 808, 826, 844, 862, 880, 898, 916, 934, 952, 970, 988, 1006, 1024, 1042, 1060, 1078, 1096, 1114, 1132, 1150, 1168, 1186, 1204, 1222, 1240, 1258, 1276, 1294, 1312, 1330, 1348, 1366, 1384, 1402, 1420, 1438, 1456, 1474, 1492, 1510, 1528, 1546, 1564, 1582, 1600, 1618, 1636, 1654, 1672, 1690, 1708, 1726, 1744, 1762, 1780, 1798, 1816, 1834, 1852, 1870, 1888, 1906, 1924, 1942, 1960, 1978, 1996, 2014, 2032, 2050, 2068, 2086, 2104, 2122, 2140, 2158, 2176, 2194, 2212, 2230, 2248, 2266, 2284, 2302, 2320, 2338, 2356, 2374, 2392, 2410, 2428, 2446, 2464, 2482, 2500, 2518, 2536, 2554, 2572, 2590, 2608, 2626, 2644, 2662, 2680, 2698, 2716, 2734, 2752, 2770, 2788, 2806, 2824, 2842, 2860, 2878, 2896, 2914, 2932, 2950, 2968, 2986, 3004, 3022, 3040, 3058, 3076, 3094, 3112, 3130, 3148, 3166, 3184, 3202, 3220, 3238, 3256, 3274, 3292, 3310, 3328, 3346, 3364, 3382, 3400, 4879, 4897, 4915, 4933, 4951, 4969, 4987, 5005, 5023, 5041, 5059, 5077, 5095, 5113, 5131, 5149, 5167, 5185, 5203, 5221, 5239, 5257, 5275, 5293, 5311, 5329, 5347, 5365, 5383, 5401, 5419, 5437, 5455, 5473, 5491, 5509, 5527, 5545, 5563, 5581, 5599, 5617, 5635, 5653, 5671, 5689, 5707, 5725, 5743, 5761, 5779, 5797, 5815, 5833, 5851, 5869, 5887, 5905, 5923, 5941, 5959, 5977, 5995, 6013, 6031, 6049, 6067, 6085, 6103, 6121, 6139, 6157, 6175, 6193, 6211, 6229, 6247, 6265, 6283, 6301, 6319, 6337, 6355, 6373, 6391, 6409, 6427, 6445, 6463, 1, 19, 37, 55, 73, 91, 109, 127, 145, 163, 181, 199, 217, 235, 253, 271, 289, 307, 325, 343, 361, 379, 397, 415, 433, 451, 469, 487, 505, 523, 541, 559, 577, 595, 613, 631, 649, 667, 685, 703, 721, 739, 757, 775, 793, 811, 829, 847, 865, 883, 901, 919, 937, 955, 973, 991, 1009, 1027, 1045, 1063, 1081, 1099, 1117, 1135, 1153, 1171, 1189, 1207, 1225, 1243, 1261, 1279, 1297, 1315, 1333, 1351, 1369, 1387, 1405, 1423, 1441, 1459, 1477, 1495, 1513, 1531, 1549, 1567, 1585, 1603, 1621, 1639, 1657, 1675, 1693, 1711, 1729, 1747, 1765, 1783, 1801, 1819, 1837, 1855, 1873, 1891, 1909, 1927, 1945, 1963, 1981, 1999, 2017, 2035, 2053, 2071, 2089, 2107, 2125, 2143, 2161, 2179, 2197, 2215, 2233, 2251, 2269, 2287, 2305, 2323, 2341, 2359, 2377, 2395, 2413, 2431, 2449, 2467, 2485, 2503, 2521, 2539, 2557, 2575, 2593, 2611, 2629, 2647, 2665, 2683, 2701, 2719, 2737, 2755, 2773, 2791, 2809, 2827, 2845, 2863, 2881, 2899, 2917, 2935, 2953, 2971, 2989, 3007, 3025, 3043, 3061, 3079, 3097, 3115, 3133, 3151, 3169, 3187, 3205, 3223, 3241, 3259, 3277, 3295, 3313, 3331, 3349, 3367, 3385, 3403, 3421, 3439, 3457, 3475, 3493, 3511, 3529, 3547, 3565, 3583, 3601, 3619, 3637, 3655, 3673, 3691, 3709, 3727, 3745, 3763, 3781, 3799, 3817, 3835, 3853, 3871, 3889, 3907, 3925, 3943, 3961, 3979, 3997, 4015, 4033, 4051, 4069, 4087, 4105, 4123, 4141, 4159, 4177, 4195, 4213, 4231, 4249, 4267, 4285, 4303, 4321, 4339, 4357, 4375, 4393, 4411, 4429, 4447, 4465, 4483, 4501, 4519, 4537, 4555, 4573, 4591, 4609, 4627, 4645, 4663, 4681, 4699, 4717, 4735, 4753, 4771, 4789, 4807, 4825, 4843, 4861, 3248, 3266, 3284, 3302, 3320, 3338, 3356, 3374, 3392, 3410, 3428, 3446, 3464, 3482, 3500, 3518, 3536, 3554, 3572, 3590, 3608, 3626, 3644, 3662, 3680, 3698, 3716, 3734, 3752, 3770, 3788, 3806, 3824, 3842, 3860, 3878, 3896, 3914, 3932, 3950, 3968, 3986, 4004, 4022, 4040, 4058, 4076, 4094, 4112, 4130, 4148, 4166, 4184, 4202, 4220, 4238, 4256, 4274, 4292, 4310, 4328, 4346, 4364, 4382, 4400, 4418, 4436, 4454, 4472, 4490, 4508, 4526, 4544, 4562, 4580, 4598, 4616, 4634, 4652, 4670, 4688, 4706, 4724, 4742, 4760, 4778, 4796, 4814, 4832, 4850, 4868, 4886, 4904, 4922, 4940, 4958, 4976, 4994, 5012, 5030, 5048, 5066, 5084, 5102, 5120, 5138, 5156, 5174, 5192, 5210, 5228, 5246, 5264, 5282, 5300, 5318, 5336, 5354, 5372, 5390, 5408, 5426, 5444, 5462, 5480, 5498, 5516, 5534, 5552, 5570, 5588, 5606, 5624, 5642, 5660, 5678, 5696, 5714, 5732, 5750, 5768, 5786, 5804, 5822, 5840, 5858, 5876, 5894, 5912, 5930, 5948, 5966, 5984, 6002, 6020, 6038, 6056, 6074, 6092, 6110, 6128, 6146, 6164, 6182, 6200, 6218, 6236, 6254, 6272, 6290, 6308, 6326, 6344, 6362, 6380, 6398, 6416, 6434, 6452, 6470, 8, 26, 44, 62, 80, 98, 116, 134, 152, 170, 188, 206, 224, 242, 260, 278, 296, 314, 332, 350, 368, 386, 404, 422, 440, 458, 476, 494, 512, 530, 548, 566, 584, 602, 620, 638, 656, 674, 692, 710, 728, 746, 764, 782, 800, 818, 836, 854, 872, 890, 908, 926, 944, 962, 980, 998, 1016, 1034, 1052, 1070, 1088, 1106, 1124, 1142, 1160, 1178, 1196, 1214, 1232, 1250, 1268, 1286, 1304, 1322, 1340, 1358, 1376, 1394, 1412, 1430, 1448, 1466, 1484, 1502, 1520, 1538, 1556, 1574, 1592, 1610, 1628, 1646, 1664, 1682, 1700, 1718, 1736, 1754, 1772, 1790, 1808, 1826, 1844, 1862, 1880, 1898, 1916, 1934, 1952, 1970, 1988, 2006, 2024, 2042, 2060, 2078, 2096, 2114, 2132, 2150, 2168, 2186, 2204, 2222, 2240, 2258, 2276, 2294, 2312, 2330, 2348, 2366, 2384, 2402, 2420, 2438, 2456, 2474, 2492, 2510, 2528, 2546, 2564, 2582, 2600, 2618, 2636, 2654, 2672, 2690, 2708, 2726, 2744, 2762, 2780, 2798, 2816, 2834, 2852, 2870, 2888, 2906, 2924, 2942, 2960, 2978, 2996, 3014, 3032, 3050, 3068, 3086, 3104, 3122, 3140, 3158, 3176, 3194, 3212, 3230, 3938, 3956, 3974, 3992, 4010, 4028, 4046, 4064, 4082, 4100, 4118, 4136, 4154, 4172, 4190, 4208, 4226, 4244, 4262, 4280, 4298, 4316, 4334, 4352, 4370, 4388, 4406, 4424, 4442, 4460, 4478, 4496, 4514, 4532, 4550, 4568, 4586, 4604, 4622, 4640, 4658, 4676, 4694, 4712, 4730, 4748, 4766, 4784, 4802, 4820, 4838, 4856, 4874, 4892, 4910, 4928, 4946, 4964, 4982, 5000, 5018, 5036, 5054, 5072, 5090, 5108, 5126, 5144, 5162, 5180, 5198, 5216, 5234, 5252, 5270, 5288, 5306, 5324, 5342, 5360, 5378, 5396, 5414, 5432, 5450, 5468, 5486, 5504, 5522, 5540, 5558, 5576, 5594, 5612, 5630, 5648, 5666, 5684, 5702, 5720, 5738, 5756, 5774, 5792, 5810, 5828, 5846, 5864, 5882, 5900, 5918, 5936, 5954, 5972, 5990, 6008, 6026, 6044, 6062, 6080, 6098, 6116, 6134, 6152, 6170, 6188, 6206, 6224, 6242, 6260, 6278, 6296, 6314, 6332, 6350, 6368, 6386, 6404, 6422, 6440, 6458, 6476, 14, 32, 50, 68, 86, 104, 122, 140, 158, 176, 194, 212, 230, 248, 266, 284, 302, 320, 338, 356, 374, 392, 410, 428, 446, 464, 482, 500, 518, 536, 554, 572, 590, 608, 626, 644, 662, 680, 698, 716, 734, 752, 770, 788, 806, 824, 842, 860, 878, 896, 914, 932, 950, 968, 986, 1004, 1022, 1040, 1058, 1076, 1094, 1112, 1130, 1148, 1166, 1184, 1202, 1220, 1238, 1256, 1274, 1292, 1310, 1328, 1346, 1364, 1382, 1400, 1418, 1436, 1454, 1472, 1490, 1508, 1526, 1544, 1562, 1580, 1598, 1616, 1634, 1652, 1670, 1688, 1706, 1724, 1742, 1760, 1778, 1796, 1814, 1832, 1850, 1868, 1886, 1904, 1922, 1940, 1958, 1976, 1994, 2012, 2030, 2048, 2066, 2084, 2102, 2120, 2138, 2156, 2174, 2192, 2210, 2228, 2246, 2264, 2282, 2300, 2318, 2336, 2354, 2372, 2390, 2408, 2426, 2444, 2462, 2480, 2498, 2516, 2534, 2552, 2570, 2588, 2606, 2624, 2642, 2660, 2678, 2696, 2714, 2732, 2750, 2768, 2786, 2804, 2822, 2840, 2858, 2876, 2894, 2912, 2930, 2948, 2966, 2984, 3002, 3020, 3038, 3056, 3074, 3092, 3110, 3128, 3146, 3164, 3182, 3200, 3218, 3236, 3254, 3272, 3290, 3308, 3326, 3344, 3362, 3380, 3398, 3416, 3434, 3452, 3470, 3488, 3506, 3524, 3542, 3560, 3578, 3596, 3614, 3632, 3650, 3668, 3686, 3704, 3722, 3740, 3758, 3776, 3794, 3812, 3830, 3848, 3866, 3884, 3902, 3920, 2904, 2922, 2940, 2958, 2976, 2994, 3012, 3030, 3048, 3066, 3084, 3102, 3120, 3138, 3156, 3174, 3192, 3210, 3228, 3246, 3264, 3282, 3300, 3318, 3336, 3354, 3372, 3390, 3408, 3426, 3444, 3462, 3480, 3498, 3516, 3534, 3552, 3570, 3588, 3606, 3624, 3642, 3660, 3678, 3696, 3714, 3732, 3750, 3768, 3786, 3804, 3822, 3840, 3858, 3876, 3894, 3912, 3930, 3948, 3966, 3984, 4002, 4020, 4038, 4056, 4074, 4092, 4110, 4128, 4146, 4164, 4182, 4200, 4218, 4236, 4254, 4272, 4290, 4308, 4326, 4344, 4362, 4380, 4398, 4416, 4434, 4452, 4470, 4488, 4506, 4524, 4542, 4560, 4578, 4596, 4614, 4632, 4650, 4668, 4686, 4704, 4722, 4740, 4758, 4776, 4794, 4812, 4830, 4848, 4866, 4884, 4902, 4920, 4938, 4956, 4974, 4992, 5010, 5028, 5046, 5064, 5082, 5100, 5118, 5136, 5154, 5172, 5190, 5208, 5226, 5244, 5262, 5280, 5298, 5316, 5334, 5352, 5370, 5388, 5406, 5424, 5442, 5460, 5478, 5496, 5514, 5532, 5550, 5568, 5586, 5604, 5622, 5640, 5658, 5676, 5694, 5712, 5730, 5748, 5766, 5784, 5802, 5820, 5838, 5856, 5874, 5892, 5910, 5928, 5946, 5964, 5982, 6000, 6018, 6036, 6054, 6072, 6090, 6108, 6126, 6144, 6162, 6180, 6198, 6216, 6234, 6252, 6270, 6288, 6306, 6324, 6342, 6360, 6378, 6396, 6414, 6432, 6450, 6468, 6, 24, 42, 60, 78, 96, 114, 132, 150, 168, 186, 204, 222, 240, 258, 276, 294, 312, 330, 348, 366, 384, 402, 420, 438, 456, 474, 492, 510, 528, 546, 564, 582, 600, 618, 636, 654, 672, 690, 708, 726, 744, 762, 780, 798, 816, 834, 852, 870, 888, 906, 924, 942, 960, 978, 996, 1014, 1032, 1050, 1068, 1086, 1104, 1122, 1140, 1158, 1176, 1194, 1212, 1230, 1248, 1266, 1284, 1302, 1320, 1338, 1356, 1374, 1392, 1410, 1428, 1446, 1464, 1482, 1500, 1518, 1536, 1554, 1572, 1590, 1608, 1626, 1644, 1662, 1680, 1698, 1716, 1734, 1752, 1770, 1788, 1806, 1824, 1842, 1860, 1878, 1896, 1914, 1932, 1950, 1968, 1986, 2004, 2022, 2040, 2058, 2076, 2094, 2112, 2130, 2148, 2166, 2184, 2202, 2220, 2238, 2256, 2274, 2292, 2310, 2328, 2346, 2364, 2382, 2400, 2418, 2436, 2454, 2472, 2490, 2508, 2526, 2544, 2562, 2580, 2598, 2616, 2634, 2652, 2670, 2688, 2706, 2724, 2742, 2760, 2778, 2796, 2814, 2832, 2850, 2868, 2886, 4216, 4234, 4252, 4270, 4288, 4306, 4324, 4342, 4360, 4378, 4396, 4414, 4432, 4450, 4468, 4486, 4504, 4522, 4540, 4558, 4576, 4594, 4612, 4630, 4648, 4666, 4684, 4702, 4720, 4738, 4756, 4774, 4792, 4810, 4828, 4846, 4864, 4882, 4900, 4918, 4936, 4954, 4972, 4990, 5008, 5026, 5044, 5062, 5080, 5098, 5116, 5134, 5152, 5170, 5188, 5206, 5224, 5242, 5260, 5278, 5296, 5314, 5332, 5350, 5368, 5386, 5404, 5422, 5440, 5458, 5476, 5494, 5512, 5530, 5548, 5566, 5584, 5602, 5620, 5638, 5656, 5674, 5692, 5710, 5728, 5746, 5764, 5782, 5800, 5818, 5836, 5854, 5872, 5890, 5908, 5926, 5944, 5962, 5980, 5998, 6016, 6034, 6052, 6070, 6088, 6106, 6124, 6142, 6160, 6178, 6196, 6214, 6232, 6250, 6268, 6286, 6304, 6322, 6340, 6358, 6376, 6394, 6412, 6430, 6448, 6466, 4, 22, 40, 58, 76, 94, 112, 130, 148, 166, 184, 202, 220, 238, 256, 274, 292, 310, 328, 346, 364, 382, 400, 418, 436, 454, 472, 490, 508, 526, 544, 562, 580, 598, 616, 634, 652, 670, 688, 706, 724, 742, 760, 778, 796, 814, 832, 850, 868, 886, 904, 922, 940, 958, 976, 994, 1012, 1030, 1048, 1066, 1084, 1102, 1120, 1138, 1156, 1174, 1192, 1210, 1228, 1246, 1264, 1282, 1300, 1318, 1336, 1354, 1372, 1390, 1408, 1426, 1444, 1462, 1480, 1498, 1516, 1534, 1552, 1570, 1588, 1606, 1624, 1642, 1660, 1678, 1696, 1714, 1732, 1750, 1768, 1786, 1804, 1822, 1840, 1858, 1876, 1894, 1912, 1930, 1948, 1966, 1984, 2002, 2020, 2038, 2056, 2074, 2092, 2110, 2128, 2146, 2164, 2182, 2200, 2218, 2236, 2254, 2272, 2290, 2308, 2326, 2344, 2362, 2380, 2398, 2416, 2434, 2452, 2470, 2488, 2506, 2524, 2542, 2560, 2578, 2596, 2614, 2632, 2650, 2668, 2686, 2704, 2722, 2740, 2758, 2776, 2794, 2812, 2830, 2848, 2866, 2884, 2902, 2920, 2938, 2956, 2974, 2992, 3010, 3028, 3046, 3064, 3082, 3100, 3118, 3136, 3154, 3172, 3190, 3208, 3226, 3244, 3262, 3280, 3298, 3316, 3334, 3352, 3370, 3388, 3406, 3424, 3442, 3460, 3478, 3496, 3514, 3532, 3550, 3568, 3586, 3604, 3622, 3640, 3658, 3676, 3694, 3712, 3730, 3748, 3766, 3784, 3802, 3820, 3838, 3856, 3874, 3892, 3910, 3928, 3946, 3964, 3982, 4000, 4018, 4036, 4054, 4072, 4090, 4108, 4126, 4144, 4162, 4180, 4198, 4708, 4726, 4744, 4762, 4780, 4798, 4816, 4834, 4852, 4870, 4888, 4906, 4924, 4942, 4960, 4978, 4996, 5014, 5032, 5050, 5068, 5086, 5104, 5122, 5140, 5158, 5176, 5194, 5212, 5230, 5248, 5266, 5284, 5302, 5320, 5338, 5356, 5374, 5392, 5410, 5428, 5446, 5464, 5482, 5500, 5518, 5536, 5554, 5572, 5590, 5608, 5626, 5644, 5662, 5680, 5698, 5716, 5734, 5752, 5770, 5788, 5806, 5824, 5842, 5860, 5878, 5896, 5914, 5932, 5950, 5968, 5986, 6004, 6022, 6040, 6058, 6076, 6094, 6112, 6130, 6148, 6166, 6184, 6202, 6220, 6238, 6256, 6274, 6292, 6310, 6328, 6346, 6364, 6382, 6400, 6418, 6436, 6454, 6472, 10, 28, 46, 64, 82, 100, 118, 136, 154, 172, 190, 208, 226, 244, 262, 280, 298, 316, 334, 352, 370, 388, 406, 424, 442, 460, 478, 496, 514, 532, 550, 568, 586, 604, 622, 640, 658, 676, 694, 712, 730, 748, 766, 784, 802, 820, 838, 856, 874, 892, 910, 928, 946, 964, 982, 1000, 1018, 1036, 1054, 1072, 1090, 1108, 1126, 1144, 1162, 1180, 1198, 1216, 1234, 1252, 1270, 1288, 1306, 1324, 1342, 1360, 1378, 1396, 1414, 1432, 1450, 1468, 1486, 1504, 1522, 1540, 1558, 1576, 1594, 1612, 1630, 1648, 1666, 1684, 1702, 1720, 1738, 1756, 1774, 1792, 1810, 1828, 1846, 1864, 1882, 1900, 1918, 1936, 1954, 1972, 1990, 2008, 2026, 2044, 2062, 2080, 2098, 2116, 2134, 2152, 2170, 2188, 2206, 2224, 2242, 2260, 2278, 2296, 2314, 2332, 2350, 2368, 2386, 2404, 2422, 2440, 2458, 2476, 2494, 2512, 2530, 2548, 2566, 2584, 2602, 2620, 2638, 2656, 2674, 2692, 2710, 2728, 2746, 2764, 2782, 2800, 2818, 2836, 2854, 2872, 2890, 2908, 2926, 2944, 2962, 2980, 2998, 3016, 3034, 3052, 3070, 3088, 3106, 3124, 3142, 3160, 3178, 3196, 3214, 3232, 3250, 3268, 3286, 3304, 3322, 3340, 3358, 3376, 3394, 3412, 3430, 3448, 3466, 3484, 3502, 3520, 3538, 3556, 3574, 3592, 3610, 3628, 3646, 3664, 3682, 3700, 3718, 3736, 3754, 3772, 3790, 3808, 3826, 3844, 3862, 3880, 3898, 3916, 3934, 3952, 3970, 3988, 4006, 4024, 4042, 4060, 4078, 4096, 4114, 4132, 4150, 4168, 4186, 4204, 4222, 4240, 4258, 4276, 4294, 4312, 4330, 4348, 4366, 4384, 4402, 4420, 4438, 4456, 4474, 4492, 4510, 4528, 4546, 4564, 4582, 4600, 4618, 4636, 4654, 4672, 4690, 3389, 3407, 3425, 3443, 3461, 3479, 3497, 3515, 3533, 3551, 3569, 3587, 3605, 3623, 3641, 3659, 3677, 3695, 3713, 3731, 3749, 3767, 3785, 3803, 3821, 3839, 3857, 3875, 3893, 3911, 3929, 3947, 3965, 3983, 4001, 4019, 4037, 4055, 4073, 4091, 4109, 4127, 4145, 4163, 4181, 4199, 4217, 4235, 4253, 4271, 4289, 4307, 4325, 4343, 4361, 4379, 4397, 4415, 4433, 4451, 4469, 4487, 4505, 4523, 4541, 4559, 4577, 4595, 4613, 4631, 4649, 4667, 4685, 4703, 4721, 4739, 4757, 4775, 4793, 4811, 4829, 4847, 4865, 4883, 4901, 4919, 4937, 4955, 4973, 4991, 5009, 5027, 5045, 5063, 5081, 5099, 5117, 5135, 5153, 5171, 5189, 5207, 5225, 5243, 5261, 5279, 5297, 5315, 5333, 5351, 5369, 5387, 5405, 5423, 5441, 5459, 5477, 5495, 5513, 5531, 5549, 5567, 5585, 5603, 5621, 5639, 5657, 5675, 5693, 5711, 5729, 5747, 5765, 5783, 5801, 5819, 5837, 5855, 5873, 5891, 5909, 5927, 5945, 5963, 5981, 5999, 6017, 6035, 6053, 6071, 6089, 6107, 6125, 6143, 6161, 6179, 6197, 6215, 6233, 6251, 6269, 6287, 6305, 6323, 6341, 6359, 6377, 6395, 6413, 6431, 6449, 6467, 5, 23, 41, 59, 77, 95, 113, 131, 149, 167, 185, 203, 221, 239, 257, 275, 293, 311, 329, 347, 365, 383, 401, 419, 437, 455, 473, 491, 509, 527, 545, 563, 581, 599, 617, 635, 653, 671, 689, 707, 725, 743, 761, 779, 797, 815, 833, 851, 869, 887, 905, 923, 941, 959, 977, 995, 1013, 1031, 1049, 1067, 1085, 1103, 1121, 1139, 1157, 1175, 1193, 1211, 1229, 1247, 1265, 1283, 1301, 1319, 1337, 1355, 1373, 1391, 1409, 1427, 1445, 1463, 1481, 1499, 1517, 1535, 1553, 1571, 1589, 1607, 1625, 1643, 1661, 1679, 1697, 1715, 1733, 1751, 1769, 1787, 1805, 1823, 1841, 1859, 1877, 1895, 1913, 1931, 1949, 1967, 1985, 2003, 2021, 2039, 2057, 2075, 2093, 2111, 2129, 2147, 2165, 2183, 2201, 2219, 2237, 2255, 2273, 2291, 2309, 2327, 2345, 2363, 2381, 2399, 2417, 2435, 2453, 2471, 2489, 2507, 2525, 2543, 2561, 2579, 2597, 2615, 2633, 2651, 2669, 2687, 2705, 2723, 2741, 2759, 2777, 2795, 2813, 2831, 2849, 2867, 2885, 2903, 2921, 2939, 2957, 2975, 2993, 3011, 3029, 3047, 3065, 3083, 3101, 3119, 3137, 3155, 3173, 3191, 3209, 3227, 3245, 3263, 3281, 3299, 3317, 3335, 3353, 3371, 4557, 4575, 4593, 4611, 4629, 4647, 4665, 4683, 4701, 4719, 4737, 4755, 4773, 4791, 4809, 4827, 4845, 4863, 4881, 4899, 4917, 4935, 4953, 4971, 4989, 5007, 5025, 5043, 5061, 5079, 5097, 5115, 5133, 5151, 5169, 5187, 5205, 5223, 5241, 5259, 5277, 5295, 5313, 5331, 5349, 5367, 5385, 5403, 5421, 5439, 5457, 5475, 5493, 5511, 5529, 5547, 5565, 5583, 5601, 5619, 5637, 5655, 5673, 5691, 5709, 5727, 5745, 5763, 5781, 5799, 5817, 5835, 5853, 5871, 5889, 5907, 5925, 5943, 5961, 5979, 5997, 6015, 6033, 6051, 6069, 6087, 6105, 6123, 6141, 6159, 6177, 6195, 6213, 6231, 6249, 6267, 6285, 6303, 6321, 6339, 6357, 6375, 6393, 6411, 6429, 6447, 6465, 3, 21, 39, 57, 75, 93, 111, 129, 147, 165, 183, 201, 219, 237, 255, 273, 291, 309, 327, 345, 363, 381, 399, 417, 435, 453, 471, 489, 507, 525, 543, 561, 579, 597, 615, 633, 651, 669, 687, 705, 723, 741, 759, 777, 795, 813, 831, 849, 867, 885, 903, 921, 939, 957, 975, 993, 1011, 1029, 1047, 1065, 1083, 1101, 1119, 1137, 1155, 1173, 1191, 1209, 1227, 1245, 1263, 1281, 1299, 1317, 1335, 1353, 1371, 1389, 1407, 1425, 1443, 1461, 1479, 1497, 1515, 1533, 1551, 1569, 1587, 1605, 1623, 1641, 1659, 1677, 1695, 1713, 1731, 1749, 1767, 1785, 1803, 1821, 1839, 1857, 1875, 1893, 1911, 1929, 1947, 1965, 1983, 2001, 2019, 2037, 2055, 2073, 2091, 2109, 2127, 2145, 2163, 2181, 2199, 2217, 2235, 2253, 2271, 2289, 2307, 2325, 2343, 2361, 2379, 2397, 2415, 2433, 2451, 2469, 2487, 2505, 2523, 2541, 2559, 2577, 2595, 2613, 2631, 2649, 2667, 2685, 2703, 2721, 2739, 2757, 2775, 2793, 2811, 2829, 2847, 2865, 2883, 2901, 2919, 2937, 2955, 2973, 2991, 3009, 3027, 3045, 3063, 3081, 3099, 3117, 3135, 3153, 3171, 3189, 3207, 3225, 3243, 3261, 3279, 3297, 3315, 3333, 3351, 3369, 3387, 3405, 3423, 3441, 3459, 3477, 3495, 3513, 3531, 3549, 3567, 3585, 3603, 3621, 3639, 3657, 3675, 3693, 3711, 3729, 3747, 3765, 3783, 3801, 3819, 3837, 3855, 3873, 3891, 3909, 3927, 3945, 3963, 3981, 3999, 4017, 4035, 4053, 4071, 4089, 4107, 4125, 4143, 4161, 4179, 4197, 4215, 4233, 4251, 4269, 4287, 4305, 4323, 4341, 4359, 4377, 4395, 4413, 4431, 4449, 4467, 4485, 4503, 4521, 4539, 4178, 4196, 4214, 4232, 4250, 4268, 4286, 4304, 4322, 4340, 4358, 4376, 4394, 4412, 4430, 4448, 4466, 4484, 4502, 4520, 4538, 4556, 4574, 4592, 4610, 4628, 4646, 4664, 4682, 4700, 4718, 4736, 4754, 4772, 4790, 4808, 4826, 4844, 4862, 4880, 4898, 4916, 4934, 4952, 4970, 4988, 5006, 5024, 5042, 5060, 5078, 5096, 5114, 5132, 5150, 5168, 5186, 5204, 5222, 5240, 5258, 5276, 5294, 5312, 5330, 5348, 5366, 5384, 5402, 5420, 5438, 5456, 5474, 5492, 5510, 5528, 5546, 5564, 5582, 5600, 5618, 5636, 5654, 5672, 5690, 5708, 5726, 5744, 5762, 5780, 5798, 5816, 5834, 5852, 5870, 5888, 5906, 5924, 5942, 5960, 5978, 5996, 6014, 6032, 6050, 6068, 6086, 6104, 6122, 6140, 6158, 6176, 6194, 6212, 6230, 6248, 6266, 6284, 6302, 6320, 6338, 6356, 6374, 6392, 6410, 6428, 6446, 6464, 2, 20, 38, 56, 74, 92, 110, 128, 146, 164, 182, 200, 218, 236, 254, 272, 290, 308, 326, 344, 362, 380, 398, 416, 434, 452, 470, 488, 506, 524, 542, 560, 578, 596, 614, 632, 650, 668, 686, 704, 722, 740, 758, 776, 794, 812, 830, 848, 866, 884, 902, 920, 938, 956, 974, 992, 1010, 1028, 1046, 1064, 1082, 1100, 1118, 1136, 1154, 1172, 1190, 1208, 1226, 1244, 1262, 1280, 1298, 1316, 1334, 1352, 1370, 1388, 1406, 1424, 1442, 1460, 1478, 1496, 1514, 1532, 1550, 1568, 1586, 1604, 1622, 1640, 1658, 1676, 1694, 1712, 1730, 1748, 1766, 1784, 1802, 1820, 1838, 1856, 1874, 1892, 1910, 1928, 1946, 1964, 1982, 2000, 2018, 2036, 2054, 2072, 2090, 2108, 2126, 2144, 2162, 2180, 2198, 2216, 2234, 2252, 2270, 2288, 2306, 2324, 2342, 2360, 2378, 2396, 2414, 2432, 2450, 2468, 2486, 2504, 2522, 2540, 2558, 2576, 2594, 2612, 2630, 2648, 2666, 2684, 2702, 2720, 2738, 2756, 2774, 2792, 2810, 2828, 2846, 2864, 2882, 2900, 2918, 2936, 2954, 2972, 2990, 3008, 3026, 3044, 3062, 3080, 3098, 3116, 3134, 3152, 3170, 3188, 3206, 3224, 3242, 3260, 3278, 3296, 3314, 3332, 3350, 3368, 3386, 3404, 3422, 3440, 3458, 3476, 3494, 3512, 3530, 3548, 3566, 3584, 3602, 3620, 3638, 3656, 3674, 3692, 3710, 3728, 3746, 3764, 3782, 3800, 3818, 3836, 3854, 3872, 3890, 3908, 3926, 3944, 3962, 3980, 3998, 4016, 4034, 4052, 4070, 4088, 4106, 4124, 4142, 4160, 3597, 3615, 3633, 3651, 3669, 3687, 3705, 3723, 3741, 3759, 3777, 3795, 3813, 3831, 3849, 3867, 3885, 3903, 3921, 3939, 3957, 3975, 3993, 4011, 4029, 4047, 4065, 4083, 4101, 4119, 4137, 4155, 4173, 4191, 4209, 4227, 4245, 4263, 4281, 4299, 4317, 4335, 4353, 4371, 4389, 4407, 4425, 4443, 4461, 4479, 4497, 4515, 4533, 4551, 4569, 4587, 4605, 4623, 4641, 4659, 4677, 4695, 4713, 4731, 4749, 4767, 4785, 4803, 4821, 4839, 4857, 4875, 4893, 4911, 4929, 4947, 4965, 4983, 5001, 5019, 5037, 5055, 5073, 5091, 5109, 5127, 5145, 5163, 5181, 5199, 5217, 5235, 5253, 5271, 5289, 5307, 5325, 5343, 5361, 5379, 5397, 5415, 5433, 5451, 5469, 5487, 5505, 5523, 5541, 5559, 5577, 5595, 5613, 5631, 5649, 5667, 5685, 5703, 5721, 5739, 5757, 5775, 5793, 5811, 5829, 5847, 5865, 5883, 5901, 5919, 5937, 5955, 5973, 5991, 6009, 6027, 6045, 6063, 6081, 6099, 6117, 6135, 6153, 6171, 6189, 6207, 6225, 6243, 6261, 6279, 6297, 6315, 6333, 6351, 6369, 6387, 6405, 6423, 6441, 6459, 6477, 15, 33, 51, 69, 87, 105, 123, 141, 159, 177, 195, 213, 231, 249, 267, 285, 303, 321, 339, 357, 375, 393, 411, 429, 447, 465, 483, 501, 519, 537, 555, 573, 591, 609, 627, 645, 663, 681, 699, 717, 735, 753, 771, 789, 807, 825, 843, 861, 879, 897, 915, 933, 951, 969, 987, 1005, 1023, 1041, 1059, 1077, 1095, 1113, 1131, 1149, 1167, 1185, 1203, 1221, 1239, 1257, 1275, 1293, 1311, 1329, 1347, 1365, 1383, 1401, 1419, 1437, 1455, 1473, 1491, 1509, 1527, 1545, 1563, 1581, 1599, 1617, 1635, 1653, 1671, 1689, 1707, 1725, 1743, 1761, 1779, 1797, 1815, 1833, 1851, 1869, 1887, 1905, 1923, 1941, 1959, 1977, 1995, 2013, 2031, 2049, 2067, 2085, 2103, 2121, 2139, 2157, 2175, 2193, 2211, 2229, 2247, 2265, 2283, 2301, 2319, 2337, 2355, 2373, 2391, 2409, 2427, 2445, 2463, 2481, 2499, 2517, 2535, 2553, 2571, 2589, 2607, 2625, 2643, 2661, 2679, 2697, 2715, 2733, 2751, 2769, 2787, 2805, 2823, 2841, 2859, 2877, 2895, 2913, 2931, 2949, 2967, 2985, 3003, 3021, 3039, 3057, 3075, 3093, 3111, 3129, 3147, 3165, 3183, 3201, 3219, 3237, 3255, 3273, 3291, 3309, 3327, 3345, 3363, 3381, 3399, 3417, 3435, 3453, 3471, 3489, 3507, 3525, 3543, 3561, 3579, 724, 742, 760, 778, 796, 814, 832, 850, 868, 886, 904, 922, 940, 958, 976, 994, 1012, 1030, 1048, 1066, 1084, 1102, 1120, 1138, 1156, 1174, 1192, 1210, 1228, 1246, 1264, 1282, 1300, 1318, 1336, 1354, 1372, 1390, 1408, 1426, 1444, 1462, 1480, 1498, 1516, 1534, 1552, 1570, 1588, 1606, 1624, 1642, 1660, 1678, 1696, 1714, 1732, 1750, 1768, 1786, 1804, 1822, 1840, 1858, 1876, 1894, 1912, 1930, 1948, 1966, 1984, 2002, 2020, 2038, 2056, 2074, 2092, 2110, 2128, 2146, 2164, 2182, 2200, 2218, 2236, 2254, 2272, 2290, 2308, 2326, 2344, 2362, 2380, 2398, 2416, 2434, 2452, 2470, 2488, 2506, 2524, 2542, 2560, 2578, 2596, 2614, 2632, 2650, 2668, 2686, 2704, 2722, 2740, 2758, 2776, 2794, 2812, 2830, 2848, 2866, 2884, 2902, 2920, 2938, 2956, 2974, 2992, 3010, 3028, 3046, 3064, 3082, 3100, 3118, 3136, 3154, 3172, 3190, 3208, 3226, 3244, 3262, 3280, 3298, 3316, 3334, 3352, 3370, 3388, 3406, 3424, 3442, 3460, 3478, 3496, 3514, 3532, 3550, 3568, 3586, 3604, 3622, 3640, 3658, 3676, 3694, 3712, 3730, 3748, 3766, 3784, 3802, 3820, 3838, 3856, 3874, 3892, 3910, 3928, 3946, 3964, 3982, 4000, 4018, 4036, 4054, 4072, 4090, 4108, 4126, 4144, 4162, 4180, 4198, 4216, 4234, 4252, 4270, 4288, 4306, 4324, 4342, 4360, 4378, 4396, 4414, 4432, 4450, 4468, 4486, 4504, 4522, 4540, 4558, 4576, 4594, 4612, 4630, 4648, 4666, 4684, 4702, 4720, 4738, 4756, 4774, 4792, 4810, 4828, 4846, 4864, 4882, 4900, 4918, 4936, 4954, 4972, 4990, 5008, 5026, 5044, 5062, 5080, 5098, 5116, 5134, 5152, 5170, 5188, 5206, 5224, 5242, 5260, 5278, 5296, 5314, 5332, 5350, 5368, 5386, 5404, 5422, 5440, 5458, 5476, 5494, 5512, 5530, 5548, 5566, 5584, 5602, 5620, 5638, 5656, 5674, 5692, 5710, 5728, 5746, 5764, 5782, 5800, 5818, 5836, 5854, 5872, 5890, 5908, 5926, 5944, 5962, 5980, 5998, 6016, 6034, 6052, 6070, 6088, 6106, 6124, 6142, 6160, 6178, 6196, 6214, 6232, 6250, 6268, 6286, 6304, 6322, 6340, 6358, 6376, 6394, 6412, 6430, 6448, 6466, 4, 22, 40, 58, 76, 94, 112, 130, 148, 166, 184, 202, 220, 238, 256, 274, 292, 310, 328, 346, 364, 382, 400, 418, 436, 454, 472, 490, 508, 526, 544, 562, 580, 598, 616, 634, 652, 670, 688, 706, 3097, 3115, 3133, 3151, 3169, 3187, 3205, 3223, 3241, 3259, 3277, 3295, 3313, 3331, 3349, 3367, 3385, 3403, 3421, 3439, 3457, 3475, 3493, 3511, 3529, 3547, 3565, 3583, 3601, 3619, 3637, 3655, 3673, 3691, 3709, 3727, 3745, 3763, 3781, 3799, 3817, 3835, 3853, 3871, 3889, 3907, 3925, 3943, 3961, 3979, 3997, 4015, 4033, 4051, 4069, 4087, 4105, 4123, 4141, 4159, 4177, 4195, 4213, 4231, 4249, 4267, 4285, 4303, 4321, 4339, 4357, 4375, 4393, 4411, 4429, 4447, 4465, 4483, 4501, 4519, 4537, 4555, 4573, 4591, 4609, 4627, 4645, 4663, 4681, 4699, 4717, 4735, 4753, 4771, 4789, 4807, 4825, 4843, 4861, 4879, 4897, 4915, 4933, 4951, 4969, 4987, 5005, 5023, 5041, 5059, 5077, 5095, 5113, 5131, 5149, 5167, 5185, 5203, 5221, 5239, 5257, 5275, 5293, 5311, 5329, 5347, 5365, 5383, 5401, 5419, 5437, 5455, 5473, 5491, 5509, 5527, 5545, 5563, 5581, 5599, 5617, 5635, 5653, 5671, 5689, 5707, 5725, 5743, 5761, 5779, 5797, 5815, 5833, 5851, 5869, 5887, 5905, 5923, 5941, 5959, 5977, 5995, 6013, 6031, 6049, 6067, 6085, 6103, 6121, 6139, 6157, 6175, 6193, 6211, 6229, 6247, 6265, 6283, 6301, 6319, 6337, 6355, 6373, 6391, 6409, 6427, 6445, 6463, 1, 19, 37, 55, 73, 91, 109, 127, 145, 163, 181, 199, 217, 235, 253, 271, 289, 307, 325, 343, 361, 379, 397, 415, 433, 451, 469, 487, 505, 523, 541, 559, 577, 595, 613, 631, 649, 667, 685, 703, 721, 739, 757, 775, 793, 811, 829, 847, 865, 883, 901, 919, 937, 955, 973, 991, 1009, 1027, 1045, 1063, 1081, 1099, 1117, 1135, 1153, 1171, 1189, 1207, 1225, 1243, 1261, 1279, 1297, 1315, 1333, 1351, 1369, 1387, 1405, 1423, 1441, 1459, 1477, 1495, 1513, 1531, 1549, 1567, 1585, 1603, 1621, 1639, 1657, 1675, 1693, 1711, 1729, 1747, 1765, 1783, 1801, 1819, 1837, 1855, 1873, 1891, 1909, 1927, 1945, 1963, 1981, 1999, 2017, 2035, 2053, 2071, 2089, 2107, 2125, 2143, 2161, 2179, 2197, 2215, 2233, 2251, 2269, 2287, 2305, 2323, 2341, 2359, 2377, 2395, 2413, 2431, 2449, 2467, 2485, 2503, 2521, 2539, 2557, 2575, 2593, 2611, 2629, 2647, 2665, 2683, 2701, 2719, 2737, 2755, 2773, 2791, 2809, 2827, 2845, 2863, 2881, 2899, 2917, 2935, 2953, 2971, 2989, 3007, 3025, 3043, 3061, 3079, 3158, 3176, 3194, 3212, 3230, 3248, 3266, 3284, 3302, 3320, 3338, 3356, 3374, 3392, 3410, 3428, 3446, 3464, 3482, 3500, 3518, 3536, 3554, 3572, 3590, 3608, 3626, 3644, 3662, 3680, 3698, 3716, 3734, 3752, 3770, 3788, 3806, 3824, 3842, 3860, 3878, 3896, 3914, 3932, 3950, 3968, 3986, 4004, 4022, 4040, 4058, 4076, 4094, 4112, 4130, 4148, 4166, 4184, 4202, 4220, 4238, 4256, 4274, 4292, 4310, 4328, 4346, 4364, 4382, 4400, 4418, 4436, 4454, 4472, 4490, 4508, 4526, 4544, 4562, 4580, 4598, 4616, 4634, 4652, 4670, 4688, 4706, 4724, 4742, 4760, 4778, 4796, 4814, 4832, 4850, 4868, 4886, 4904, 4922, 4940, 4958, 4976, 4994, 5012, 5030, 5048, 5066, 5084, 5102, 5120, 5138, 5156, 5174, 5192, 5210, 5228, 5246, 5264, 5282, 5300, 5318, 5336, 5354, 5372, 5390, 5408, 5426, 5444, 5462, 5480, 5498, 5516, 5534, 5552, 5570, 5588, 5606, 5624, 5642, 5660, 5678, 5696, 5714, 5732, 5750, 5768, 5786, 5804, 5822, 5840, 5858, 5876, 5894, 5912, 5930, 5948, 5966, 5984, 6002, 6020, 6038, 6056, 6074, 6092, 6110, 6128, 6146, 6164, 6182, 6200, 6218, 6236, 6254, 6272, 6290, 6308, 6326, 6344, 6362, 6380, 6398, 6416, 6434, 6452, 6470, 8, 26, 44, 62, 80, 98, 116, 134, 152, 170, 188, 206, 224, 242, 260, 278, 296, 314, 332, 350, 368, 386, 404, 422, 440, 458, 476, 494, 512, 530, 548, 566, 584, 602, 620, 638, 656, 674, 692, 710, 728, 746, 764, 782, 800, 818, 836, 854, 872, 890, 908, 926, 944, 962, 980, 998, 1016, 1034, 1052, 1070, 1088, 1106, 1124, 1142, 1160, 1178, 1196, 1214, 1232, 1250, 1268, 1286, 1304, 1322, 1340, 1358, 1376, 1394, 1412, 1430, 1448, 1466, 1484, 1502, 1520, 1538, 1556, 1574, 1592, 1610, 1628, 1646, 1664, 1682, 1700, 1718, 1736, 1754, 1772, 1790, 1808, 1826, 1844, 1862, 1880, 1898, 1916, 1934, 1952, 1970, 1988, 2006, 2024, 2042, 2060, 2078, 2096, 2114, 2132, 2150, 2168, 2186, 2204, 2222, 2240, 2258, 2276, 2294, 2312, 2330, 2348, 2366, 2384, 2402, 2420, 2438, 2456, 2474, 2492, 2510, 2528, 2546, 2564, 2582, 2600, 2618, 2636, 2654, 2672, 2690, 2708, 2726, 2744, 2762, 2780, 2798, 2816, 2834, 2852, 2870, 2888, 2906, 2924, 2942, 2960, 2978, 2996, 3014, 3032, 3050, 3068, 3086, 3104, 3122, 3140, 60, 78, 96, 114, 132, 150, 168, 186, 204, 222, 240, 258, 276, 294, 312, 330, 348, 366, 384, 402, 420, 438, 456, 474, 492, 510, 528, 546, 564, 582, 600, 618, 636, 654, 672, 690, 708, 726, 744, 762, 780, 798, 816, 834, 852, 870, 888, 906, 924, 942, 960, 978, 996, 1014, 1032, 1050, 1068, 1086, 1104, 1122, 1140, 1158, 1176, 1194, 1212, 1230, 1248, 1266, 1284, 1302, 1320, 1338, 1356, 1374, 1392, 1410, 1428, 1446, 1464, 1482, 1500, 1518, 1536, 1554, 1572, 1590, 1608, 1626, 1644, 1662, 1680, 1698, 1716, 1734, 1752, 1770, 1788, 1806, 1824, 1842, 1860, 1878, 1896, 1914, 1932, 1950, 1968, 1986, 2004, 2022, 2040, 2058, 2076, 2094, 2112, 2130, 2148, 2166, 2184, 2202, 2220, 2238, 2256, 2274, 2292, 2310, 2328, 2346, 2364, 2382, 2400, 2418, 2436, 2454, 2472, 2490, 2508, 2526, 2544, 2562, 2580, 2598, 2616, 2634, 2652, 2670, 2688, 2706, 2724, 2742, 2760, 2778, 2796, 2814, 2832, 2850, 2868, 2886, 2904, 2922, 2940, 2958, 2976, 2994, 3012, 3030, 3048, 3066, 3084, 3102, 3120, 3138, 3156, 3174, 3192, 3210, 3228, 3246, 3264, 3282, 3300, 3318, 3336, 3354, 3372, 3390, 3408, 3426, 3444, 3462, 3480, 3498, 3516, 3534, 3552, 3570, 3588, 3606, 3624, 3642, 3660, 3678, 3696, 3714, 3732, 3750, 3768, 3786, 3804, 3822, 3840, 3858, 3876, 3894, 3912, 3930, 3948, 3966, 3984, 4002, 4020, 4038, 4056, 4074, 4092, 4110, 4128, 4146, 4164, 4182, 4200, 4218, 4236, 4254, 4272, 4290, 4308, 4326, 4344, 4362, 4380, 4398, 4416, 4434, 4452, 4470, 4488, 4506, 4524, 4542, 4560, 4578, 4596, 4614, 4632, 4650, 4668, 4686, 4704, 4722, 4740, 4758, 4776, 4794, 4812, 4830, 4848, 4866, 4884, 4902, 4920, 4938, 4956, 4974, 4992, 5010, 5028, 5046, 5064, 5082, 5100, 5118, 5136, 5154, 5172, 5190, 5208, 5226, 5244, 5262, 5280, 5298, 5316, 5334, 5352, 5370, 5388, 5406, 5424, 5442, 5460, 5478, 5496, 5514, 5532, 5550, 5568, 5586, 5604, 5622, 5640, 5658, 5676, 5694, 5712, 5730, 5748, 5766, 5784, 5802, 5820, 5838, 5856, 5874, 5892, 5910, 5928, 5946, 5964, 5982, 6000, 6018, 6036, 6054, 6072, 6090, 6108, 6126, 6144, 6162, 6180, 6198, 6216, 6234, 6252, 6270, 6288, 6306, 6324, 6342, 6360, 6378, 6396, 6414, 6432, 6450, 6468, 6, 24, 42, 3737, 3755, 3773, 3791, 3809, 3827, 3845, 3863, 3881, 3899, 3917, 3935, 3953, 3971, 3989, 4007, 4025, 4043, 4061, 4079, 4097, 4115, 4133, 4151, 4169, 4187, 4205, 4223, 4241, 4259, 4277, 4295, 4313, 4331, 4349, 4367, 4385, 4403, 4421, 4439, 4457, 4475, 4493, 4511, 4529, 4547, 4565, 4583, 4601, 4619, 4637, 4655, 4673, 4691, 4709, 4727, 4745, 4763, 4781, 4799, 4817, 4835, 4853, 4871, 4889, 4907, 4925, 4943, 4961, 4979, 4997, 5015, 5033, 5051, 5069, 5087, 5105, 5123, 5141, 5159, 5177, 5195, 5213, 5231, 5249, 5267, 5285, 5303, 5321, 5339, 5357, 5375, 5393, 5411, 5429, 5447, 5465, 5483, 5501, 5519, 5537, 5555, 5573, 5591, 5609, 5627, 5645, 5663, 5681, 5699, 5717, 5735, 5753, 5771, 5789, 5807, 5825, 5843, 5861, 5879, 5897, 5915, 5933, 5951, 5969, 5987, 6005, 6023, 6041, 6059, 6077, 6095, 6113, 6131, 6149, 6167, 6185, 6203, 6221, 6239, 6257, 6275, 6293, 6311, 6329, 6347, 6365, 6383, 6401, 6419, 6437, 6455, 6473, 11, 29, 47, 65, 83, 101, 119, 137, 155, 173, 191, 209, 227, 245, 263, 281, 299, 317, 335, 353, 371, 389, 407, 425, 443, 461, 479, 497, 515, 533, 551, 569, 587, 605, 623, 641, 659, 677, 695, 713, 731, 749, 767, 785, 803, 821, 839, 857, 875, 893, 911, 929, 947, 965, 983, 1001, 1019, 1037, 1055, 1073, 1091, 1109, 1127, 1145, 1163, 1181, 1199, 1217, 1235, 1253, 1271, 1289, 1307, 1325, 1343, 1361, 1379, 1397, 1415, 1433, 1451, 1469, 1487, 1505, 1523, 1541, 1559, 1577, 1595, 1613, 1631, 1649, 1667, 1685, 1703, 1721, 1739, 1757, 1775, 1793, 1811, 1829, 1847, 1865, 1883, 1901, 1919, 1937, 1955, 1973, 1991, 2009, 2027, 2045, 2063, 2081, 2099, 2117, 2135, 2153, 2171, 2189, 2207, 2225, 2243, 2261, 2279, 2297, 2315, 2333, 2351, 2369, 2387, 2405, 2423, 2441, 2459, 2477, 2495, 2513, 2531, 2549, 2567, 2585, 2603, 2621, 2639, 2657, 2675, 2693, 2711, 2729, 2747, 2765, 2783, 2801, 2819, 2837, 2855, 2873, 2891, 2909, 2927, 2945, 2963, 2981, 2999, 3017, 3035, 3053, 3071, 3089, 3107, 3125, 3143, 3161, 3179, 3197, 3215, 3233, 3251, 3269, 3287, 3305, 3323, 3341, 3359, 3377, 3395, 3413, 3431, 3449, 3467, 3485, 3503, 3521, 3539, 3557, 3575, 3593, 3611, 3629, 3647, 3665, 3683, 3701, 3719, 3286, 3304, 3322, 3340, 3358, 3376, 3394, 3412, 3430, 3448, 3466, 3484, 3502, 3520, 3538, 3556, 3574, 3592, 3610, 3628, 3646, 3664, 3682, 3700, 3718, 3736, 3754, 3772, 3790, 3808, 3826, 3844, 3862, 3880, 3898, 3916, 3934, 3952, 3970, 3988, 4006, 4024, 4042, 4060, 4078, 4096, 4114, 4132, 4150, 4168, 4186, 4204, 4222, 4240, 4258, 4276, 4294, 4312, 4330, 4348, 4366, 4384, 4402, 4420, 4438, 4456, 4474, 4492, 4510, 4528, 4546, 4564, 4582, 4600, 4618, 4636, 4654, 4672, 4690, 4708, 4726, 4744, 4762, 4780, 4798, 4816, 4834, 4852, 4870, 4888, 4906, 4924, 4942, 4960, 4978, 4996, 5014, 5032, 5050, 5068, 5086, 5104, 5122, 5140, 5158, 5176, 5194, 5212, 5230, 5248, 5266, 5284, 5302, 5320, 5338, 5356, 5374, 5392, 5410, 5428, 5446, 5464, 5482, 5500, 5518, 5536, 5554, 5572, 5590, 5608, 5626, 5644, 5662, 5680, 5698, 5716, 5734, 5752, 5770, 5788, 5806, 5824, 5842, 5860, 5878, 5896, 5914, 5932, 5950, 5968, 5986, 6004, 6022, 6040, 6058, 6076, 6094, 6112, 6130, 6148, 6166, 6184, 6202, 6220, 6238, 6256, 6274, 6292, 6310, 6328, 6346, 6364, 6382, 6400, 6418, 6436, 6454, 6472, 10, 28, 46, 64, 82, 100, 118, 136, 154, 172, 190, 208, 226, 244, 262, 280, 298, 316, 334, 352, 370, 388, 406, 424, 442, 460, 478, 496, 514, 532, 550, 568, 586, 604, 622, 640, 658, 676, 694, 712, 730, 748, 766, 784, 802, 820, 838, 856, 874, 892, 910, 928, 946, 964, 982, 1000, 1018, 1036, 1054, 1072, 1090, 1108, 1126, 1144, 1162, 1180, 1198, 1216, 1234, 1252, 1270, 1288, 1306, 1324, 1342, 1360, 1378, 1396, 1414, 1432, 1450, 1468, 1486, 1504, 1522, 1540, 1558, 1576, 1594, 1612, 1630, 1648, 1666, 1684, 1702, 1720, 1738, 1756, 1774, 1792, 1810, 1828, 1846, 1864, 1882, 1900, 1918, 1936, 1954, 1972, 1990, 2008, 2026, 2044, 2062, 2080, 2098, 2116, 2134, 2152, 2170, 2188, 2206, 2224, 2242, 2260, 2278, 2296, 2314, 2332, 2350, 2368, 2386, 2404, 2422, 2440, 2458, 2476, 2494, 2512, 2530, 2548, 2566, 2584, 2602, 2620, 2638, 2656, 2674, 2692, 2710, 2728, 2746, 2764, 2782, 2800, 2818, 2836, 2854, 2872, 2890, 2908, 2926, 2944, 2962, 2980, 2998, 3016, 3034, 3052, 3070, 3088, 3106, 3124, 3142, 3160, 3178, 3196, 3214, 3232, 3250, 3268, 1706, 1724, 1742, 1760, 1778, 1796, 1814, 1832, 1850, 1868, 1886, 1904, 1922, 1940, 1958, 1976, 1994, 2012, 2030, 2048, 2066, 2084, 2102, 2120, 2138, 2156, 2174, 2192, 2210, 2228, 2246, 2264, 2282, 2300, 2318, 2336, 2354, 2372, 2390, 2408, 2426, 2444, 2462, 2480, 2498, 2516, 2534, 2552, 2570, 2588, 2606, 2624, 2642, 2660, 2678, 2696, 2714, 2732, 2750, 2768, 2786, 2804, 2822, 2840, 2858, 2876, 2894, 2912, 2930, 2948, 2966, 2984, 3002, 3020, 3038, 3056, 3074, 3092, 3110, 3128, 3146, 3164, 3182, 3200, 3218, 3236, 3254, 3272, 3290, 3308, 3326, 3344, 3362, 3380, 3398, 3416, 3434, 3452, 3470, 3488, 3506, 3524, 3542, 3560, 3578, 3596, 3614, 3632, 3650, 3668, 3686, 3704, 3722, 3740, 3758, 3776, 3794, 3812, 3830, 3848, 3866, 3884, 3902, 3920, 3938, 3956, 3974, 3992, 4010, 4028, 4046, 4064, 4082, 4100, 4118, 4136, 4154, 4172, 4190, 4208, 4226, 4244, 4262, 4280, 4298, 4316, 4334, 4352, 4370, 4388, 4406, 4424, 4442, 4460, 4478, 4496, 4514, 4532, 4550, 4568, 4586, 4604, 4622, 4640, 4658, 4676, 4694, 4712, 4730, 4748, 4766, 4784, 4802, 4820, 4838, 4856, 4874, 4892, 4910, 4928, 4946, 4964, 4982, 5000, 5018, 5036, 5054, 5072, 5090, 5108, 5126, 5144, 5162, 5180, 5198, 5216, 5234, 5252, 5270, 5288, 5306, 5324, 5342, 5360, 5378, 5396, 5414, 5432, 5450, 5468, 5486, 5504, 5522, 5540, 5558, 5576, 5594, 5612, 5630, 5648, 5666, 5684, 5702, 5720, 5738, 5756, 5774, 5792, 5810, 5828, 5846, 5864, 5882, 5900, 5918, 5936, 5954, 5972, 5990, 6008, 6026, 6044, 6062, 6080, 6098, 6116, 6134, 6152, 6170, 6188, 6206, 6224, 6242, 6260, 6278, 6296, 6314, 6332, 6350, 6368, 6386, 6404, 6422, 6440, 6458, 6476, 14, 32, 50, 68, 86, 104, 122, 140, 158, 176, 194, 212, 230, 248, 266, 284, 302, 320, 338, 356, 374, 392, 410, 428, 446, 464, 482, 500, 518, 536, 554, 572, 590, 608, 626, 644, 662, 680, 698, 716, 734, 752, 770, 788, 806, 824, 842, 860, 878, 896, 914, 932, 950, 968, 986, 1004, 1022, 1040, 1058, 1076, 1094, 1112, 1130, 1148, 1166, 1184, 1202, 1220, 1238, 1256, 1274, 1292, 1310, 1328, 1346, 1364, 1382, 1400, 1418, 1436, 1454, 1472, 1490, 1508, 1526, 1544, 1562, 1580, 1598, 1616, 1634, 1652, 1670, 1688, 5655, 5673, 5691, 5709, 5727, 5745, 5763, 5781, 5799, 5817, 5835, 5853, 5871, 5889, 5907, 5925, 5943, 5961, 5979, 5997, 6015, 6033, 6051, 6069, 6087, 6105, 6123, 6141, 6159, 6177, 6195, 6213, 6231, 6249, 6267, 6285, 6303, 6321, 6339, 6357, 6375, 6393, 6411, 6429, 6447, 6465, 3, 21, 39, 57, 75, 93, 111, 129, 147, 165, 183, 201, 219, 237, 255, 273, 291, 309, 327, 345, 363, 381, 399, 417, 435, 453, 471, 489, 507, 525, 543, 561, 579, 597, 615, 633, 651, 669, 687, 705, 723, 741, 759, 777, 795, 813, 831, 849, 867, 885, 903, 921, 939, 957, 975, 993, 1011, 1029, 1047, 1065, 1083, 1101, 1119, 1137, 1155, 1173, 1191, 1209, 1227, 1245, 1263, 1281, 1299, 1317, 1335, 1353, 1371, 1389, 1407, 1425, 1443, 1461, 1479, 1497, 1515, 1533, 1551, 1569, 1587, 1605, 1623, 1641, 1659, 1677, 1695, 1713, 1731, 1749, 1767, 1785, 1803, 1821, 1839, 1857, 1875, 1893, 1911, 1929, 1947, 1965, 1983, 2001, 2019, 2037, 2055, 2073, 2091, 2109, 2127, 2145, 2163, 2181, 2199, 2217, 2235, 2253, 2271, 2289, 2307, 2325, 2343, 2361, 2379, 2397, 2415, 2433, 2451, 2469, 2487, 2505, 2523, 2541, 2559, 2577, 2595, 2613, 2631, 2649, 2667, 2685, 2703, 2721, 2739, 2757, 2775, 2793, 2811, 2829, 2847, 2865, 2883, 2901, 2919, 2937, 2955, 2973, 2991, 3009, 3027, 3045, 3063, 3081, 3099, 3117, 3135, 3153, 3171, 3189, 3207, 3225, 3243, 3261, 3279, 3297, 3315, 3333, 3351, 3369, 3387, 3405, 3423, 3441, 3459, 3477, 3495, 3513, 3531, 3549, 3567, 3585, 3603, 3621, 3639, 3657, 3675, 3693, 3711, 3729, 3747, 3765, 3783, 3801, 3819, 3837, 3855, 3873, 3891, 3909, 3927, 3945, 3963, 3981, 3999, 4017, 4035, 4053, 4071, 4089, 4107, 4125, 4143, 4161, 4179, 4197, 4215, 4233, 4251, 4269, 4287, 4305, 4323, 4341, 4359, 4377, 4395, 4413, 4431, 4449, 4467, 4485, 4503, 4521, 4539, 4557, 4575, 4593, 4611, 4629, 4647, 4665, 4683, 4701, 4719, 4737, 4755, 4773, 4791, 4809, 4827, 4845, 4863, 4881, 4899, 4917, 4935, 4953, 4971, 4989, 5007, 5025, 5043, 5061, 5079, 5097, 5115, 5133, 5151, 5169, 5187, 5205, 5223, 5241, 5259, 5277, 5295, 5313, 5331, 5349, 5367, 5385, 5403, 5421, 5439, 5457, 5475, 5493, 5511, 5529, 5547, 5565, 5583, 5601, 5619, 5637, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1375, 1393, 1411, 1429, 1447, 1465, 1483, 1501, 1519, 1537, 1555, 1573, 1591, 1609, 1627, 1645, 1663, 1681, 1699, 1717, 1735, 1753, 1771, 1789, 1807, 1825, 1843, 1861, 1879, 1897, 1915, 1933, 1951, 1969, 1987, 2005, 2023, 2041, 2059, 2077, 2095, 2113, 2131, 2149, 2167, 2185, 2203, 2221, 2239, 2257, 2275, 2293, 2311, 2329, 2347, 2365, 2383, 2401, 2419, 2437, 2455, 2473, 2491, 2509, 2527, 2545, 2563, 2581, 2599, 2617, 2635, 2653, 2671, 2689, 2707, 2725, 2743, 2761, 2779, 2797, 2815, 2833, 2851, 2869, 2887, 2905, 2923, 2941, 2959, 2977, 2995, 3013, 3031, 3049, 3067, 3085, 3103, 3121, 3139, 3157, 3175, 3193, 3211, 3229, 3247, 3265, 3283, 3301, 3319, 3337, 3355, 3373, 3391, 3409, 3427, 3445, 3463, 3481, 3499, 3517, 3535, 3553, 3571, 3589, 3607, 3625, 3643, 3661, 3679, 3697, 3715, 3733, 3751, 3769, 3787, 3805, 3823, 3841, 3859, 3877, 3895, 3913, 3931, 3949, 3967, 3985, 4003, 4021, 4039, 4057, 4075, 4093, 4111, 4129, 4147, 4165, 4183, 4201, 4219, 4237, 4255, 4273, 4291, 4309, 4327, 4345, 4363, 4381, 4399, 4417, 4435, 4453, 4471, 4489, 4507, 4525, 4543, 4561, 4579, 4597, 4615, 4633, 4651, 4669, 4687, 4705, 4723, 4741, 4759, 4777, 4795, 4813, 4831, 4849, 4867, 4885, 4903, 4921, 4939, 4957, 4975, 4993, 5011, 5029, 5047, 5065, 5083, 5101, 5119, 5137, 5155, 5173, 5191, 5209, 5227, 5245, 5263, 5281, 5299, 5317, 5335, 5353, 5371, 5389, 5407, 5425, 5443, 5461, 5479, 5497, 5515, 5533, 5551, 5569, 5587, 5605, 5623, 5641, 5659, 5677, 5695, 5713, 5731, 5749, 5767, 5785, 5803, 5821, 5839, 5857, 5875, 5893, 5911, 5929, 5947, 5965, 5983, 6001, 6019, 6037, 6055, 6073, 6091, 6109, 6127, 6145, 6163, 6181, 6199, 6217, 6235, 6253, 6271, 6289, 6307, 6325, 6343, 6361, 6379, 6397, 6415, 6433, 6451, 6469, 7, 25, 43, 61, 79, 97, 115, 133, 151, 169, 187, 205, 223, 241, 259, 277, 295, 313, 331, 349, 367, 385, 403, 421, 439, 457, 475, 493, 511, 529, 547, 565, 583, 601, 619, 637, 655, 673, 691, 709, 727, 745, 763, 781, 799, 817, 835, 853, 871, 889, 907, 925, 943, 961, 979, 997, 1015, 1033, 1051, 1069, 1087, 1105, 1123, 1141, 1159, 1177, 1195, 1213, 1231, 1249, 1267, 1285, 1303, 1321, 1339, 1357, 1247, 1265, 1283, 1301, 1319, 1337, 1355, 1373, 1391, 1409, 1427, 1445, 1463, 1481, 1499, 1517, 1535, 1553, 1571, 1589, 1607, 1625, 1643, 1661, 1679, 1697, 1715, 1733, 1751, 1769, 1787, 1805, 1823, 1841, 1859, 1877, 1895, 1913, 1931, 1949, 1967, 1985, 2003, 2021, 2039, 2057, 2075, 2093, 2111, 2129, 2147, 2165, 2183, 2201, 2219, 2237, 2255, 2273, 2291, 2309, 2327, 2345, 2363, 2381, 2399, 2417, 2435, 2453, 2471, 2489, 2507, 2525, 2543, 2561, 2579, 2597, 2615, 2633, 2651, 2669, 2687, 2705, 2723, 2741, 2759, 2777, 2795, 2813, 2831, 2849, 2867, 2885, 2903, 2921, 2939, 2957, 2975, 2993, 3011, 3029, 3047, 3065, 3083, 3101, 3119, 3137, 3155, 3173, 3191, 3209, 3227, 3245, 3263, 3281, 3299, 3317, 3335, 3353, 3371, 3389, 3407, 3425, 3443, 3461, 3479, 3497, 3515, 3533, 3551, 3569, 3587, 3605, 3623, 3641, 3659, 3677, 3695, 3713, 3731, 3749, 3767, 3785, 3803, 3821, 3839, 3857, 3875, 3893, 3911, 3929, 3947, 3965, 3983, 4001, 4019, 4037, 4055, 4073, 4091, 4109, 4127, 4145, 4163, 4181, 4199, 4217, 4235, 4253, 4271, 4289, 4307, 4325, 4343, 4361, 4379, 4397, 4415, 4433, 4451, 4469, 4487, 4505, 4523, 4541, 4559, 4577, 4595, 4613, 4631, 4649, 4667, 4685, 4703, 4721, 4739, 4757, 4775, 4793, 4811, 4829, 4847, 4865, 4883, 4901, 4919, 4937, 4955, 4973, 4991, 5009, 5027, 5045, 5063, 5081, 5099, 5117, 5135, 5153, 5171, 5189, 5207, 5225, 5243, 5261, 5279, 5297, 5315, 5333, 5351, 5369, 5387, 5405, 5423, 5441, 5459, 5477, 5495, 5513, 5531, 5549, 5567, 5585, 5603, 5621, 5639, 5657, 5675, 5693, 5711, 5729, 5747, 5765, 5783, 5801, 5819, 5837, 5855, 5873, 5891, 5909, 5927, 5945, 5963, 5981, 5999, 6017, 6035, 6053, 6071, 6089, 6107, 6125, 6143, 6161, 6179, 6197, 6215, 6233, 6251, 6269, 6287, 6305, 6323, 6341, 6359, 6377, 6395, 6413, 6431, 6449, 6467, 5, 23, 41, 59, 77, 95, 113, 131, 149, 167, 185, 203, 221, 239, 257, 275, 293, 311, 329, 347, 365, 383, 401, 419, 437, 455, 473, 491, 509, 527, 545, 563, 581, 599, 617, 635, 653, 671, 689, 707, 725, 743, 761, 779, 797, 815, 833, 851, 869, 887, 905, 923, 941, 959, 977, 995, 1013, 1031, 1049, 1067, 1085, 1103, 1121, 1139, 1157, 1175, 1193, 1211, 1229, 4283, 4301, 4319, 4337, 4355, 4373, 4391, 4409, 4427, 4445, 4463, 4481, 4499, 4517, 4535, 4553, 4571, 4589, 4607, 4625, 4643, 4661, 4679, 4697, 4715, 4733, 4751, 4769, 4787, 4805, 4823, 4841, 4859, 4877, 4895, 4913, 4931, 4949, 4967, 4985, 5003, 5021, 5039, 5057, 5075, 5093, 5111, 5129, 5147, 5165, 5183, 5201, 5219, 5237, 5255, 5273, 5291, 5309, 5327, 5345, 5363, 5381, 5399, 5417, 5435, 5453, 5471, 5489, 5507, 5525, 5543, 5561, 5579, 5597, 5615, 5633, 5651, 5669, 5687, 5705, 5723, 5741, 5759, 5777, 5795, 5813, 5831, 5849, 5867, 5885, 5903, 5921, 5939, 5957, 5975, 5993, 6011, 6029, 6047, 6065, 6083, 6101, 6119, 6137, 6155, 6173, 6191, 6209, 6227, 6245, 6263, 6281, 6299, 6317, 6335, 6353, 6371, 6389, 6407, 6425, 6443, 6461, 6479, 17, 35, 53, 71, 89, 107, 125, 143, 161, 179, 197, 215, 233, 251, 269, 287, 305, 323, 341, 359, 377, 395, 413, 431, 449, 467, 485, 503, 521, 539, 557, 575, 593, 611, 629, 647, 665, 683, 701, 719, 737, 755, 773, 791, 809, 827, 845, 863, 881, 899, 917, 935, 953, 971, 989, 1007, 1025, 1043, 1061, 1079, 1097, 1115, 1133, 1151, 1169, 1187, 1205, 1223, 1241, 1259, 1277, 1295, 1313, 1331, 1349, 1367, 1385, 1403, 1421, 1439, 1457, 1475, 1493, 1511, 1529, 1547, 1565, 1583, 1601, 1619, 1637, 1655, 1673, 1691, 1709, 1727, 1745, 1763, 1781, 1799, 1817, 1835, 1853, 1871, 1889, 1907, 1925, 1943, 1961, 1979, 1997, 2015, 2033, 2051, 2069, 2087, 2105, 2123, 2141, 2159, 2177, 2195, 2213, 2231, 2249, 2267, 2285, 2303, 2321, 2339, 2357, 2375, 2393, 2411, 2429, 2447, 2465, 2483, 2501, 2519, 2537, 2555, 2573, 2591, 2609, 2627, 2645, 2663, 2681, 2699, 2717, 2735, 2753, 2771, 2789, 2807, 2825, 2843, 2861, 2879, 2897, 2915, 2933, 2951, 2969, 2987, 3005, 3023, 3041, 3059, 3077, 3095, 3113, 3131, 3149, 3167, 3185, 3203, 3221, 3239, 3257, 3275, 3293, 3311, 3329, 3347, 3365, 3383, 3401, 3419, 3437, 3455, 3473, 3491, 3509, 3527, 3545, 3563, 3581, 3599, 3617, 3635, 3653, 3671, 3689, 3707, 3725, 3743, 3761, 3779, 3797, 3815, 3833, 3851, 3869, 3887, 3905, 3923, 3941, 3959, 3977, 3995, 4013, 4031, 4049, 4067, 4085, 4103, 4121, 4139, 4157, 4175, 4193, 4211, 4229, 4247, 4265, 5665, 5683, 5701, 5719, 5737, 5755, 5773, 5791, 5809, 5827, 5845, 5863, 5881, 5899, 5917, 5935, 5953, 5971, 5989, 6007, 6025, 6043, 6061, 6079, 6097, 6115, 6133, 6151, 6169, 6187, 6205, 6223, 6241, 6259, 6277, 6295, 6313, 6331, 6349, 6367, 6385, 6403, 6421, 6439, 6457, 6475, 13, 31, 49, 67, 85, 103, 121, 139, 157, 175, 193, 211, 229, 247, 265, 283, 301, 319, 337, 355, 373, 391, 409, 427, 445, 463, 481, 499, 517, 535, 553, 571, 589, 607, 625, 643, 661, 679, 697, 715, 733, 751, 769, 787, 805, 823, 841, 859, 877, 895, 913, 931, 949, 967, 985, 1003, 1021, 1039, 1057, 1075, 1093, 1111, 1129, 1147, 1165, 1183, 1201, 1219, 1237, 1255, 1273, 1291, 1309, 1327, 1345, 1363, 1381, 1399, 1417, 1435, 1453, 1471, 1489, 1507, 1525, 1543, 1561, 1579, 1597, 1615, 1633, 1651, 1669, 1687, 1705, 1723, 1741, 1759, 1777, 1795, 1813, 1831, 1849, 1867, 1885, 1903, 1921, 1939, 1957, 1975, 1993, 2011, 2029, 2047, 2065, 2083, 2101, 2119, 2137, 2155, 2173, 2191, 2209, 2227, 2245, 2263, 2281, 2299, 2317, 2335, 2353, 2371, 2389, 2407, 2425, 2443, 2461, 2479, 2497, 2515, 2533, 2551, 2569, 2587, 2605, 2623, 2641, 2659, 2677, 2695, 2713, 2731, 2749, 2767, 2785, 2803, 2821, 2839, 2857, 2875, 2893, 2911, 2929, 2947, 2965, 2983, 3001, 3019, 3037, 3055, 3073, 3091, 3109, 3127, 3145, 3163, 3181, 3199, 3217, 3235, 3253, 3271, 3289, 3307, 3325, 3343, 3361, 3379, 3397, 3415, 3433, 3451, 3469, 3487, 3505, 3523, 3541, 3559, 3577, 3595, 3613, 3631, 3649, 3667, 3685, 3703, 3721, 3739, 3757, 3775, 3793, 3811, 3829, 3847, 3865, 3883, 3901, 3919, 3937, 3955, 3973, 3991, 4009, 4027, 4045, 4063, 4081, 4099, 4117, 4135, 4153, 4171, 4189, 4207, 4225, 4243, 4261, 4279, 4297, 4315, 4333, 4351, 4369, 4387, 4405, 4423, 4441, 4459, 4477, 4495, 4513, 4531, 4549, 4567, 4585, 4603, 4621, 4639, 4657, 4675, 4693, 4711, 4729, 4747, 4765, 4783, 4801, 4819, 4837, 4855, 4873, 4891, 4909, 4927, 4945, 4963, 4981, 4999, 5017, 5035, 5053, 5071, 5089, 5107, 5125, 5143, 5161, 5179, 5197, 5215, 5233, 5251, 5269, 5287, 5305, 5323, 5341, 5359, 5377, 5395, 5413, 5431, 5449, 5467, 5485, 5503, 5521, 5539, 5557, 5575, 5593, 5611, 5629, 5647, 1722, 1740, 1758, 1776, 1794, 1812, 1830, 1848, 1866, 1884, 1902, 1920, 1938, 1956, 1974, 1992, 2010, 2028, 2046, 2064, 2082, 2100, 2118, 2136, 2154, 2172, 2190, 2208, 2226, 2244, 2262, 2280, 2298, 2316, 2334, 2352, 2370, 2388, 2406, 2424, 2442, 2460, 2478, 2496, 2514, 2532, 2550, 2568, 2586, 2604, 2622, 2640, 2658, 2676, 2694, 2712, 2730, 2748, 2766, 2784, 2802, 2820, 2838, 2856, 2874, 2892, 2910, 2928, 2946, 2964, 2982, 3000, 3018, 3036, 3054, 3072, 3090, 3108, 3126, 3144, 3162, 3180, 3198, 3216, 3234, 3252, 3270, 3288, 3306, 3324, 3342, 3360, 3378, 3396, 3414, 3432, 3450, 3468, 3486, 3504, 3522, 3540, 3558, 3576, 3594, 3612, 3630, 3648, 3666, 3684, 3702, 3720, 3738, 3756, 3774, 3792, 3810, 3828, 3846, 3864, 3882, 3900, 3918, 3936, 3954, 3972, 3990, 4008, 4026, 4044, 4062, 4080, 4098, 4116, 4134, 4152, 4170, 4188, 4206, 4224, 4242, 4260, 4278, 4296, 4314, 4332, 4350, 4368, 4386, 4404, 4422, 4440, 4458, 4476, 4494, 4512, 4530, 4548, 4566, 4584, 4602, 4620, 4638, 4656, 4674, 4692, 4710, 4728, 4746, 4764, 4782, 4800, 4818, 4836, 4854, 4872, 4890, 4908, 4926, 4944, 4962, 4980, 4998, 5016, 5034, 5052, 5070, 5088, 5106, 5124, 5142, 5160, 5178, 5196, 5214, 5232, 5250, 5268, 5286, 5304, 5322, 5340, 5358, 5376, 5394, 5412, 5430, 5448, 5466, 5484, 5502, 5520, 5538, 5556, 5574, 5592, 5610, 5628, 5646, 5664, 5682, 5700, 5718, 5736, 5754, 5772, 5790, 5808, 5826, 5844, 5862, 5880, 5898, 5916, 5934, 5952, 5970, 5988, 6006, 6024, 6042, 6060, 6078, 6096, 6114, 6132, 6150, 6168, 6186, 6204, 6222, 6240, 6258, 6276, 6294, 6312, 6330, 6348, 6366, 6384, 6402, 6420, 6438, 6456, 6474, 12, 30, 48, 66, 84, 102, 120, 138, 156, 174, 192, 210, 228, 246, 264, 282, 300, 318, 336, 354, 372, 390, 408, 426, 444, 462, 480, 498, 516, 534, 552, 570, 588, 606, 624, 642, 660, 678, 696, 714, 732, 750, 768, 786, 804, 822, 840, 858, 876, 894, 912, 930, 948, 966, 984, 1002, 1020, 1038, 1056, 1074, 1092, 1110, 1128, 1146, 1164, 1182, 1200, 1218, 1236, 1254, 1272, 1290, 1308, 1326, 1344, 1362, 1380, 1398, 1416, 1434, 1452, 1470, 1488, 1506, 1524, 1542, 1560, 1578, 1596, 1614, 1632, 1650, 1668, 1686, 1704, 2000, 2018, 2036, 2054, 2072, 2090, 2108, 2126, 2144, 2162, 2180, 2198, 2216, 2234, 2252, 2270, 2288, 2306, 2324, 2342, 2360, 2378, 2396, 2414, 2432, 2450, 2468, 2486, 2504, 2522, 2540, 2558, 2576, 2594, 2612, 2630, 2648, 2666, 2684, 2702, 2720, 2738, 2756, 2774, 2792, 2810, 2828, 2846, 2864, 2882, 2900, 2918, 2936, 2954, 2972, 2990, 3008, 3026, 3044, 3062, 3080, 3098, 3116, 3134, 3152, 3170, 3188, 3206, 3224, 3242, 3260, 3278, 3296, 3314, 3332, 3350, 3368, 3386, 3404, 3422, 3440, 3458, 3476, 3494, 3512, 3530, 3548, 3566, 3584, 3602, 3620, 3638, 3656, 3674, 3692, 3710, 3728, 3746, 3764, 3782, 3800, 3818, 3836, 3854, 3872, 3890, 3908, 3926, 3944, 3962, 3980, 3998, 4016, 4034, 4052, 4070, 4088, 4106, 4124, 4142, 4160, 4178, 4196, 4214, 4232, 4250, 4268, 4286, 4304, 4322, 4340, 4358, 4376, 4394, 4412, 4430, 4448, 4466, 4484, 4502, 4520, 4538, 4556, 4574, 4592, 4610, 4628, 4646, 4664, 4682, 4700, 4718, 4736, 4754, 4772, 4790, 4808, 4826, 4844, 4862, 4880, 4898, 4916, 4934, 4952, 4970, 4988, 5006, 5024, 5042, 5060, 5078, 5096, 5114, 5132, 5150, 5168, 5186, 5204, 5222, 5240, 5258, 5276, 5294, 5312, 5330, 5348, 5366, 5384, 5402, 5420, 5438, 5456, 5474, 5492, 5510, 5528, 5546, 5564, 5582, 5600, 5618, 5636, 5654, 5672, 5690, 5708, 5726, 5744, 5762, 5780, 5798, 5816, 5834, 5852, 5870, 5888, 5906, 5924, 5942, 5960, 5978, 5996, 6014, 6032, 6050, 6068, 6086, 6104, 6122, 6140, 6158, 6176, 6194, 6212, 6230, 6248, 6266, 6284, 6302, 6320, 6338, 6356, 6374, 6392, 6410, 6428, 6446, 6464, 2, 20, 38, 56, 74, 92, 110, 128, 146, 164, 182, 200, 218, 236, 254, 272, 290, 308, 326, 344, 362, 380, 398, 416, 434, 452, 470, 488, 506, 524, 542, 560, 578, 596, 614, 632, 650, 668, 686, 704, 722, 740, 758, 776, 794, 812, 830, 848, 866, 884, 902, 920, 938, 956, 974, 992, 1010, 1028, 1046, 1064, 1082, 1100, 1118, 1136, 1154, 1172, 1190, 1208, 1226, 1244, 1262, 1280, 1298, 1316, 1334, 1352, 1370, 1388, 1406, 1424, 1442, 1460, 1478, 1496, 1514, 1532, 1550, 1568, 1586, 1604, 1622, 1640, 1658, 1676, 1694, 1712, 1730, 1748, 1766, 1784, 1802, 1820, 1838, 1856, 1874, 1892, 1910, 1928, 1946, 1964, 1982, 1258, 1276, 1294, 1312, 1330, 1348, 1366, 1384, 1402, 1420, 1438, 1456, 1474, 1492, 1510, 1528, 1546, 1564, 1582, 1600, 1618, 1636, 1654, 1672, 1690, 1708, 1726, 1744, 1762, 1780, 1798, 1816, 1834, 1852, 1870, 1888, 1906, 1924, 1942, 1960, 1978, 1996, 2014, 2032, 2050, 2068, 2086, 2104, 2122, 2140, 2158, 2176, 2194, 2212, 2230, 2248, 2266, 2284, 2302, 2320, 2338, 2356, 2374, 2392, 2410, 2428, 2446, 2464, 2482, 2500, 2518, 2536, 2554, 2572, 2590, 2608, 2626, 2644, 2662, 2680, 2698, 2716, 2734, 2752, 2770, 2788, 2806, 2824, 2842, 2860, 2878, 2896, 2914, 2932, 2950, 2968, 2986, 3004, 3022, 3040, 3058, 3076, 3094, 3112, 3130, 3148, 3166, 3184, 3202, 3220, 3238, 3256, 3274, 3292, 3310, 3328, 3346, 3364, 3382, 3400, 3418, 3436, 3454, 3472, 3490, 3508, 3526, 3544, 3562, 3580, 3598, 3616, 3634, 3652, 3670, 3688, 3706, 3724, 3742, 3760, 3778, 3796, 3814, 3832, 3850, 3868, 3886, 3904, 3922, 3940, 3958, 3976, 3994, 4012, 4030, 4048, 4066, 4084, 4102, 4120, 4138, 4156, 4174, 4192, 4210, 4228, 4246, 4264, 4282, 4300, 4318, 4336, 4354, 4372, 4390, 4408, 4426, 4444, 4462, 4480, 4498, 4516, 4534, 4552, 4570, 4588, 4606, 4624, 4642, 4660, 4678, 4696, 4714, 4732, 4750, 4768, 4786, 4804, 4822, 4840, 4858, 4876, 4894, 4912, 4930, 4948, 4966, 4984, 5002, 5020, 5038, 5056, 5074, 5092, 5110, 5128, 5146, 5164, 5182, 5200, 5218, 5236, 5254, 5272, 5290, 5308, 5326, 5344, 5362, 5380, 5398, 5416, 5434, 5452, 5470, 5488, 5506, 5524, 5542, 5560, 5578, 5596, 5614, 5632, 5650, 5668, 5686, 5704, 5722, 5740, 5758, 5776, 5794, 5812, 5830, 5848, 5866, 5884, 5902, 5920, 5938, 5956, 5974, 5992, 6010, 6028, 6046, 6064, 6082, 6100, 6118, 6136, 6154, 6172, 6190, 6208, 6226, 6244, 6262, 6280, 6298, 6316, 6334, 6352, 6370, 6388, 6406, 6424, 6442, 6460, 6478, 16, 34, 52, 70, 88, 106, 124, 142, 160, 178, 196, 214, 232, 250, 268, 286, 304, 322, 340, 358, 376, 394, 412, 430, 448, 466, 484, 502, 520, 538, 556, 574, 592, 610, 628, 646, 664, 682, 700, 718, 736, 754, 772, 790, 808, 826, 844, 862, 880, 898, 916, 934, 952, 970, 988, 1006, 1024, 1042, 1060, 1078, 1096, 1114, 1132, 1150, 1168, 1186, 1204, 1222, 1240, 5643, 5661, 5679, 5697, 5715, 5733, 5751, 5769, 5787, 5805, 5823, 5841, 5859, 5877, 5895, 5913, 5931, 5949, 5967, 5985, 6003, 6021, 6039, 6057, 6075, 6093, 6111, 6129, 6147, 6165, 6183, 6201, 6219, 6237, 6255, 6273, 6291, 6309, 6327, 6345, 6363, 6381, 6399, 6417, 6435, 6453, 6471, 9, 27, 45, 63, 81, 99, 117, 135, 153, 171, 189, 207, 225, 243, 261, 279, 297, 315, 333, 351, 369, 387, 405, 423, 441, 459, 477, 495, 513, 531, 549, 567, 585, 603, 621, 639, 657, 675, 693, 711, 729, 747, 765, 783, 801, 819, 837, 855, 873, 891, 909, 927, 945, 963, 981, 999, 1017, 1035, 1053, 1071, 1089, 1107, 1125, 1143, 1161, 1179, 1197, 1215, 1233, 1251, 1269, 1287, 1305, 1323, 1341, 1359, 1377, 1395, 1413, 1431, 1449, 1467, 1485, 1503, 1521, 1539, 1557, 1575, 1593, 1611, 1629, 1647, 1665, 1683, 1701, 1719, 1737, 1755, 1773, 1791, 1809, 1827, 1845, 1863, 1881, 1899, 1917, 1935, 1953, 1971, 1989, 2007, 2025, 2043, 2061, 2079, 2097, 2115, 2133, 2151, 2169, 2187, 2205, 2223, 2241, 2259, 2277, 2295, 2313, 2331, 2349, 2367, 2385, 2403, 2421, 2439, 2457, 2475, 2493, 2511, 2529, 2547, 2565, 2583, 2601, 2619, 2637, 2655, 2673, 2691, 2709, 2727, 2745, 2763, 2781, 2799, 2817, 2835, 2853, 2871, 2889, 2907, 2925, 2943, 2961, 2979, 2997, 3015, 3033, 3051, 3069, 3087, 3105, 3123, 3141, 3159, 3177, 3195, 3213, 3231, 3249, 3267, 3285, 3303, 3321, 3339, 3357, 3375, 3393, 3411, 3429, 3447, 3465, 3483, 3501, 3519, 3537, 3555, 3573, 3591, 3609, 3627, 3645, 3663, 3681, 3699, 3717, 3735, 3753, 3771, 3789, 3807, 3825, 3843, 3861, 3879, 3897, 3915, 3933, 3951, 3969, 3987, 4005, 4023, 4041, 4059, 4077, 4095, 4113, 4131, 4149, 4167, 4185, 4203, 4221, 4239, 4257, 4275, 4293, 4311, 4329, 4347, 4365, 4383, 4401, 4419, 4437, 4455, 4473, 4491, 4509, 4527, 4545, 4563, 4581, 4599, 4617, 4635, 4653, 4671, 4689, 4707, 4725, 4743, 4761, 4779, 4797, 4815, 4833, 4851, 4869, 4887, 4905, 4923, 4941, 4959, 4977, 4995, 5013, 5031, 5049, 5067, 5085, 5103, 5121, 5139, 5157, 5175, 5193, 5211, 5229, 5247, 5265, 5283, 5301, 5319, 5337, 5355, 5373, 5391, 5409, 5427, 5445, 5463, 5481, 5499, 5517, 5535, 5553, 5571, 5589, 5607, 5625, 1296, 1314, 1332, 1350, 1368, 1386, 1404, 1422, 1440, 1458, 1476, 1494, 1512, 1530, 1548, 1566, 1584, 1602, 1620, 1638, 1656, 1674, 1692, 1710, 1728, 1746, 1764, 1782, 1800, 1818, 1836, 1854, 1872, 1890, 1908, 1926, 1944, 1962, 1980, 1998, 2016, 2034, 2052, 2070, 2088, 2106, 2124, 2142, 2160, 2178, 2196, 2214, 2232, 2250, 2268, 2286, 2304, 2322, 2340, 2358, 2376, 2394, 2412, 2430, 2448, 2466, 2484, 2502, 2520, 2538, 2556, 2574, 2592, 2610, 2628, 2646, 2664, 2682, 2700, 2718, 2736, 2754, 2772, 2790, 2808, 2826, 2844, 2862, 2880, 2898, 2916, 2934, 2952, 2970, 2988, 3006, 3024, 3042, 3060, 3078, 3096, 3114, 3132, 3150, 3168, 3186, 3204, 3222, 3240, 3258, 3276, 3294, 3312, 3330, 3348, 3366, 3384, 3402, 3420, 3438, 3456, 3474, 3492, 3510, 3528, 3546, 3564, 3582, 3600, 3618, 3636, 3654, 3672, 3690, 3708, 3726, 3744, 3762, 3780, 3798, 3816, 3834, 3852, 3870, 3888, 3906, 3924, 3942, 3960, 3978, 3996, 4014, 4032, 4050, 4068, 4086, 4104, 4122, 4140, 4158, 4176, 4194, 4212, 4230, 4248, 4266, 4284, 4302, 4320, 4338, 4356, 4374, 4392, 4410, 4428, 4446, 4464, 4482, 4500, 4518, 4536, 4554, 4572, 4590, 4608, 4626, 4644, 4662, 4680, 4698, 4716, 4734, 4752, 4770, 4788, 4806, 4824, 4842, 4860, 4878, 4896, 4914, 4932, 4950, 4968, 4986, 5004, 5022, 5040, 5058, 5076, 5094, 5112, 5130, 5148, 5166, 5184, 5202, 5220, 5238, 5256, 5274, 5292, 5310, 5328, 5346, 5364, 5382, 5400, 5418, 5436, 5454, 5472, 5490, 5508, 5526, 5544, 5562, 5580, 5598, 5616, 5634, 5652, 5670, 5688, 5706, 5724, 5742, 5760, 5778, 5796, 5814, 5832, 5850, 5868, 5886, 5904, 5922, 5940, 5958, 5976, 5994, 6012, 6030, 6048, 6066, 6084, 6102, 6120, 6138, 6156, 6174, 6192, 6210, 6228, 6246, 6264, 6282, 6300, 6318, 6336, 6354, 6372, 6390, 6408, 6426, 6444, 6462, 6480, 18, 36, 54, 72, 90, 108, 126, 144, 162, 180, 198, 216, 234, 252, 270, 288, 306, 324, 342, 360, 378, 396, 414, 432, 450, 468, 486, 504, 522, 540, 558, 576, 594, 612, 630, 648, 666, 684, 702, 720, 738, 756, 774, 792, 810, 828, 846, 864, 882, 900, 918, 936, 954, 972, 990, 1008, 1026, 1044, 1062, 1080, 1098, 1116, 1134, 1152, 1170, 1188, 1206, 1224, 1242, 1260, 1278, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4812, 4830, 4848, 4866, 4884, 4902, 4920, 4938, 4956, 4974, 4992, 5010, 5028, 5046, 5064, 5082, 5100, 5118, 5136, 5154, 5172, 5190, 5208, 5226, 5244, 5262, 5280, 5298, 5316, 5334, 5352, 5370, 5388, 5406, 5424, 5442, 5460, 5478, 5496, 5514, 5532, 5550, 5568, 5586, 5604, 5622, 5640, 5658, 5676, 5694, 5712, 5730, 5748, 5766, 5784, 5802, 5820, 5838, 5856, 5874, 5892, 5910, 5928, 5946, 5964, 5982, 6000, 6018, 6036, 6054, 6072, 6090, 6108, 6126, 6144, 6162, 6180, 6198, 6216, 6234, 6252, 6270, 6288, 6306, 6324, 6342, 6360, 6378, 6396, 6414, 6432, 6450, 6468, 6, 24, 42, 60, 78, 96, 114, 132, 150, 168, 186, 204, 222, 240, 258, 276, 294, 312, 330, 348, 366, 384, 402, 420, 438, 456, 474, 492, 510, 528, 546, 564, 582, 600, 618, 636, 654, 672, 690, 708, 726, 744, 762, 780, 798, 816, 834, 852, 870, 888, 906, 924, 942, 960, 978, 996, 1014, 1032, 1050, 1068, 1086, 1104, 1122, 1140, 1158, 1176, 1194, 1212, 1230, 1248, 1266, 1284, 1302, 1320, 1338, 1356, 1374, 1392, 1410, 1428, 1446, 1464, 1482, 1500, 1518, 1536, 1554, 1572, 1590, 1608, 1626, 1644, 1662, 1680, 1698, 1716, 1734, 1752, 1770, 1788, 1806, 1824, 1842, 1860, 1878, 1896, 1914, 1932, 1950, 1968, 1986, 2004, 2022, 2040, 2058, 2076, 2094, 2112, 2130, 2148, 2166, 2184, 2202, 2220, 2238, 2256, 2274, 2292, 2310, 2328, 2346, 2364, 2382, 2400, 2418, 2436, 2454, 2472, 2490, 2508, 2526, 2544, 2562, 2580, 2598, 2616, 2634, 2652, 2670, 2688, 2706, 2724, 2742, 2760, 2778, 2796, 2814, 2832, 2850, 2868, 2886, 2904, 2922, 2940, 2958, 2976, 2994, 3012, 3030, 3048, 3066, 3084, 3102, 3120, 3138, 3156, 3174, 3192, 3210, 3228, 3246, 3264, 3282, 3300, 3318, 3336, 3354, 3372, 3390, 3408, 3426, 3444, 3462, 3480, 3498, 3516, 3534, 3552, 3570, 3588, 3606, 3624, 3642, 3660, 3678, 3696, 3714, 3732, 3750, 3768, 3786, 3804, 3822, 3840, 3858, 3876, 3894, 3912, 3930, 3948, 3966, 3984, 4002, 4020, 4038, 4056, 4074, 4092, 4110, 4128, 4146, 4164, 4182, 4200, 4218, 4236, 4254, 4272, 4290, 4308, 4326, 4344, 4362, 4380, 4398, 4416, 4434, 4452, 4470, 4488, 4506, 4524, 4542, 4560, 4578, 4596, 4614, 4632, 4650, 4668, 4686, 4704, 4722, 4740, 4758, 4776, 4794, 2929, 2947, 2965, 2983, 3001, 3019, 3037, 3055, 3073, 3091, 3109, 3127, 3145, 3163, 3181, 3199, 3217, 3235, 3253, 3271, 3289, 3307, 3325, 3343, 3361, 3379, 3397, 3415, 3433, 3451, 3469, 3487, 3505, 3523, 3541, 3559, 3577, 3595, 3613, 3631, 3649, 3667, 3685, 3703, 3721, 3739, 3757, 3775, 3793, 3811, 3829, 3847, 3865, 3883, 3901, 3919, 3937, 3955, 3973, 3991, 4009, 4027, 4045, 4063, 4081, 4099, 4117, 4135, 4153, 4171, 4189, 4207, 4225, 4243, 4261, 4279, 4297, 4315, 4333, 4351, 4369, 4387, 4405, 4423, 4441, 4459, 4477, 4495, 4513, 4531, 4549, 4567, 4585, 4603, 4621, 4639, 4657, 4675, 4693, 4711, 4729, 4747, 4765, 4783, 4801, 4819, 4837, 4855, 4873, 4891, 4909, 4927, 4945, 4963, 4981, 4999, 5017, 5035, 5053, 5071, 5089, 5107, 5125, 5143, 5161, 5179, 5197, 5215, 5233, 5251, 5269, 5287, 5305, 5323, 5341, 5359, 5377, 5395, 5413, 5431, 5449, 5467, 5485, 5503, 5521, 5539, 5557, 5575, 5593, 5611, 5629, 5647, 5665, 5683, 5701, 5719, 5737, 5755, 5773, 5791, 5809, 5827, 5845, 5863, 5881, 5899, 5917, 5935, 5953, 5971, 5989, 6007, 6025, 6043, 6061, 6079, 6097, 6115, 6133, 6151, 6169, 6187, 6205, 6223, 6241, 6259, 6277, 6295, 6313, 6331, 6349, 6367, 6385, 6403, 6421, 6439, 6457, 6475, 13, 31, 49, 67, 85, 103, 121, 139, 157, 175, 193, 211, 229, 247, 265, 283, 301, 319, 337, 355, 373, 391, 409, 427, 445, 463, 481, 499, 517, 535, 553, 571, 589, 607, 625, 643, 661, 679, 697, 715, 733, 751, 769, 787, 805, 823, 841, 859, 877, 895, 913, 931, 949, 967, 985, 1003, 1021, 1039, 1057, 1075, 1093, 1111, 1129, 1147, 1165, 1183, 1201, 1219, 1237, 1255, 1273, 1291, 1309, 1327, 1345, 1363, 1381, 1399, 1417, 1435, 1453, 1471, 1489, 1507, 1525, 1543, 1561, 1579, 1597, 1615, 1633, 1651, 1669, 1687, 1705, 1723, 1741, 1759, 1777, 1795, 1813, 1831, 1849, 1867, 1885, 1903, 1921, 1939, 1957, 1975, 1993, 2011, 2029, 2047, 2065, 2083, 2101, 2119, 2137, 2155, 2173, 2191, 2209, 2227, 2245, 2263, 2281, 2299, 2317, 2335, 2353, 2371, 2389, 2407, 2425, 2443, 2461, 2479, 2497, 2515, 2533, 2551, 2569, 2587, 2605, 2623, 2641, 2659, 2677, 2695, 2713, 2731, 2749, 2767, 2785, 2803, 2821, 2839, 2857, 2875, 2893, 2911, 6239, 6257, 6275, 6293, 6311, 6329, 6347, 6365, 6383, 6401, 6419, 6437, 6455, 6473, 11, 29, 47, 65, 83, 101, 119, 137, 155, 173, 191, 209, 227, 245, 263, 281, 299, 317, 335, 353, 371, 389, 407, 425, 443, 461, 479, 497, 515, 533, 551, 569, 587, 605, 623, 641, 659, 677, 695, 713, 731, 749, 767, 785, 803, 821, 839, 857, 875, 893, 911, 929, 947, 965, 983, 1001, 1019, 1037, 1055, 1073, 1091, 1109, 1127, 1145, 1163, 1181, 1199, 1217, 1235, 1253, 1271, 1289, 1307, 1325, 1343, 1361, 1379, 1397, 1415, 1433, 1451, 1469, 1487, 1505, 1523, 1541, 1559, 1577, 1595, 1613, 1631, 1649, 1667, 1685, 1703, 1721, 1739, 1757, 1775, 1793, 1811, 1829, 1847, 1865, 1883, 1901, 1919, 1937, 1955, 1973, 1991, 2009, 2027, 2045, 2063, 2081, 2099, 2117, 2135, 2153, 2171, 2189, 2207, 2225, 2243, 2261, 2279, 2297, 2315, 2333, 2351, 2369, 2387, 2405, 2423, 2441, 2459, 2477, 2495, 2513, 2531, 2549, 2567, 2585, 2603, 2621, 2639, 2657, 2675, 2693, 2711, 2729, 2747, 2765, 2783, 2801, 2819, 2837, 2855, 2873, 2891, 2909, 2927, 2945, 2963, 2981, 2999, 3017, 3035, 3053, 3071, 3089, 3107, 3125, 3143, 3161, 3179, 3197, 3215, 3233, 3251, 3269, 3287, 3305, 3323, 3341, 3359, 3377, 3395, 3413, 3431, 3449, 3467, 3485, 3503, 3521, 3539, 3557, 3575, 3593, 3611, 3629, 3647, 3665, 3683, 3701, 3719, 3737, 3755, 3773, 3791, 3809, 3827, 3845, 3863, 3881, 3899, 3917, 3935, 3953, 3971, 3989, 4007, 4025, 4043, 4061, 4079, 4097, 4115, 4133, 4151, 4169, 4187, 4205, 4223, 4241, 4259, 4277, 4295, 4313, 4331, 4349, 4367, 4385, 4403, 4421, 4439, 4457, 4475, 4493, 4511, 4529, 4547, 4565, 4583, 4601, 4619, 4637, 4655, 4673, 4691, 4709, 4727, 4745, 4763, 4781, 4799, 4817, 4835, 4853, 4871, 4889, 4907, 4925, 4943, 4961, 4979, 4997, 5015, 5033, 5051, 5069, 5087, 5105, 5123, 5141, 5159, 5177, 5195, 5213, 5231, 5249, 5267, 5285, 5303, 5321, 5339, 5357, 5375, 5393, 5411, 5429, 5447, 5465, 5483, 5501, 5519, 5537, 5555, 5573, 5591, 5609, 5627, 5645, 5663, 5681, 5699, 5717, 5735, 5753, 5771, 5789, 5807, 5825, 5843, 5861, 5879, 5897, 5915, 5933, 5951, 5969, 5987, 6005, 6023, 6041, 6059, 6077, 6095, 6113, 6131, 6149, 6167, 6185, 6203, 6221, 3957, 3975, 3993, 4011, 4029, 4047, 4065, 4083, 4101, 4119, 4137, 4155, 4173, 4191, 4209, 4227, 4245, 4263, 4281, 4299, 4317, 4335, 4353, 4371, 4389, 4407, 4425, 4443, 4461, 4479, 4497, 4515, 4533, 4551, 4569, 4587, 4605, 4623, 4641, 4659, 4677, 4695, 4713, 4731, 4749, 4767, 4785, 4803, 4821, 4839, 4857, 4875, 4893, 4911, 4929, 4947, 4965, 4983, 5001, 5019, 5037, 5055, 5073, 5091, 5109, 5127, 5145, 5163, 5181, 5199, 5217, 5235, 5253, 5271, 5289, 5307, 5325, 5343, 5361, 5379, 5397, 5415, 5433, 5451, 5469, 5487, 5505, 5523, 5541, 5559, 5577, 5595, 5613, 5631, 5649, 5667, 5685, 5703, 5721, 5739, 5757, 5775, 5793, 5811, 5829, 5847, 5865, 5883, 5901, 5919, 5937, 5955, 5973, 5991, 6009, 6027, 6045, 6063, 6081, 6099, 6117, 6135, 6153, 6171, 6189, 6207, 6225, 6243, 6261, 6279, 6297, 6315, 6333, 6351, 6369, 6387, 6405, 6423, 6441, 6459, 6477, 15, 33, 51, 69, 87, 105, 123, 141, 159, 177, 195, 213, 231, 249, 267, 285, 303, 321, 339, 357, 375, 393, 411, 429, 447, 465, 483, 501, 519, 537, 555, 573, 591, 609, 627, 645, 663, 681, 699, 717, 735, 753, 771, 789, 807, 825, 843, 861, 879, 897, 915, 933, 951, 969, 987, 1005, 1023, 1041, 1059, 1077, 1095, 1113, 1131, 1149, 1167, 1185, 1203, 1221, 1239, 1257, 1275, 1293, 1311, 1329, 1347, 1365, 1383, 1401, 1419, 1437, 1455, 1473, 1491, 1509, 1527, 1545, 1563, 1581, 1599, 1617, 1635, 1653, 1671, 1689, 1707, 1725, 1743, 1761, 1779, 1797, 1815, 1833, 1851, 1869, 1887, 1905, 1923, 1941, 1959, 1977, 1995, 2013, 2031, 2049, 2067, 2085, 2103, 2121, 2139, 2157, 2175, 2193, 2211, 2229, 2247, 2265, 2283, 2301, 2319, 2337, 2355, 2373, 2391, 2409, 2427, 2445, 2463, 2481, 2499, 2517, 2535, 2553, 2571, 2589, 2607, 2625, 2643, 2661, 2679, 2697, 2715, 2733, 2751, 2769, 2787, 2805, 2823, 2841, 2859, 2877, 2895, 2913, 2931, 2949, 2967, 2985, 3003, 3021, 3039, 3057, 3075, 3093, 3111, 3129, 3147, 3165, 3183, 3201, 3219, 3237, 3255, 3273, 3291, 3309, 3327, 3345, 3363, 3381, 3399, 3417, 3435, 3453, 3471, 3489, 3507, 3525, 3543, 3561, 3579, 3597, 3615, 3633, 3651, 3669, 3687, 3705, 3723, 3741, 3759, 3777, 3795, 3813, 3831, 3849, 3867, 3885, 3903, 3921, 3939, 737, 755, 773, 791, 809, 827, 845, 863, 881, 899, 917, 935, 953, 971, 989, 1007, 1025, 1043, 1061, 1079, 1097, 1115, 1133, 1151, 1169, 1187, 1205, 1223, 1241, 1259, 1277, 1295, 1313, 1331, 1349, 1367, 1385, 1403, 1421, 1439, 1457, 1475, 1493, 1511, 1529, 1547, 1565, 1583, 1601, 1619, 1637, 1655, 1673, 1691, 1709, 1727, 1745, 1763, 1781, 1799, 1817, 1835, 1853, 1871, 1889, 1907, 1925, 1943, 1961, 1979, 1997, 2015, 2033, 2051, 2069, 2087, 2105, 2123, 2141, 2159, 2177, 2195, 2213, 2231, 2249, 2267, 2285, 2303, 2321, 2339, 2357, 2375, 2393, 2411, 2429, 2447, 2465, 2483, 2501, 2519, 2537, 2555, 2573, 2591, 2609, 2627, 2645, 2663, 2681, 2699, 2717, 2735, 2753, 2771, 2789, 2807, 2825, 2843, 2861, 2879, 2897, 2915, 2933, 2951, 2969, 2987, 3005, 3023, 3041, 3059, 3077, 3095, 3113, 3131, 3149, 3167, 3185, 3203, 3221, 3239, 3257, 3275, 3293, 3311, 3329, 3347, 3365, 3383, 3401, 3419, 3437, 3455, 3473, 3491, 3509, 3527, 3545, 3563, 3581, 3599, 3617, 3635, 3653, 3671, 3689, 3707, 3725, 3743, 3761, 3779, 3797, 3815, 3833, 3851, 3869, 3887, 3905, 3923, 3941, 3959, 3977, 3995, 4013, 4031, 4049, 4067, 4085, 4103, 4121, 4139, 4157, 4175, 4193, 4211, 4229, 4247, 4265, 4283, 4301, 4319, 4337, 4355, 4373, 4391, 4409, 4427, 4445, 4463, 4481, 4499, 4517, 4535, 4553, 4571, 4589, 4607, 4625, 4643, 4661, 4679, 4697, 4715, 4733, 4751, 4769, 4787, 4805, 4823, 4841, 4859, 4877, 4895, 4913, 4931, 4949, 4967, 4985, 5003, 5021, 5039, 5057, 5075, 5093, 5111, 5129, 5147, 5165, 5183, 5201, 5219, 5237, 5255, 5273, 5291, 5309, 5327, 5345, 5363, 5381, 5399, 5417, 5435, 5453, 5471, 5489, 5507, 5525, 5543, 5561, 5579, 5597, 5615, 5633, 5651, 5669, 5687, 5705, 5723, 5741, 5759, 5777, 5795, 5813, 5831, 5849, 5867, 5885, 5903, 5921, 5939, 5957, 5975, 5993, 6011, 6029, 6047, 6065, 6083, 6101, 6119, 6137, 6155, 6173, 6191, 6209, 6227, 6245, 6263, 6281, 6299, 6317, 6335, 6353, 6371, 6389, 6407, 6425, 6443, 6461, 6479, 17, 35, 53, 71, 89, 107, 125, 143, 161, 179, 197, 215, 233, 251, 269, 287, 305, 323, 341, 359, 377, 395, 413, 431, 449, 467, 485, 503, 521, 539, 557, 575, 593, 611, 629, 647, 665, 683, 701, 719, 5890, 5908, 5926, 5944, 5962, 5980, 5998, 6016, 6034, 6052, 6070, 6088, 6106, 6124, 6142, 6160, 6178, 6196, 6214, 6232, 6250, 6268, 6286, 6304, 6322, 6340, 6358, 6376, 6394, 6412, 6430, 6448, 6466, 4, 22, 40, 58, 76, 94, 112, 130, 148, 166, 184, 202, 220, 238, 256, 274, 292, 310, 328, 346, 364, 382, 400, 418, 436, 454, 472, 490, 508, 526, 544, 562, 580, 598, 616, 634, 652, 670, 688, 706, 724, 742, 760, 778, 796, 814, 832, 850, 868, 886, 904, 922, 940, 958, 976, 994, 1012, 1030, 1048, 1066, 1084, 1102, 1120, 1138, 1156, 1174, 1192, 1210, 1228, 1246, 1264, 1282, 1300, 1318, 1336, 1354, 1372, 1390, 1408, 1426, 1444, 1462, 1480, 1498, 1516, 1534, 1552, 1570, 1588, 1606, 1624, 1642, 1660, 1678, 1696, 1714, 1732, 1750, 1768, 1786, 1804, 1822, 1840, 1858, 1876, 1894, 1912, 1930, 1948, 1966, 1984, 2002, 2020, 2038, 2056, 2074, 2092, 2110, 2128, 2146, 2164, 2182, 2200, 2218, 2236, 2254, 2272, 2290, 2308, 2326, 2344, 2362, 2380, 2398, 2416, 2434, 2452, 2470, 2488, 2506, 2524, 2542, 2560, 2578, 2596, 2614, 2632, 2650, 2668, 2686, 2704, 2722, 2740, 2758, 2776, 2794, 2812, 2830, 2848, 2866, 2884, 2902, 2920, 2938, 2956, 2974, 2992, 3010, 3028, 3046, 3064, 3082, 3100, 3118, 3136, 3154, 3172, 3190, 3208, 3226, 3244, 3262, 3280, 3298, 3316, 3334, 3352, 3370, 3388, 3406, 3424, 3442, 3460, 3478, 3496, 3514, 3532, 3550, 3568, 3586, 3604, 3622, 3640, 3658, 3676, 3694, 3712, 3730, 3748, 3766, 3784, 3802, 3820, 3838, 3856, 3874, 3892, 3910, 3928, 3946, 3964, 3982, 4000, 4018, 4036, 4054, 4072, 4090, 4108, 4126, 4144, 4162, 4180, 4198, 4216, 4234, 4252, 4270, 4288, 4306, 4324, 4342, 4360, 4378, 4396, 4414, 4432, 4450, 4468, 4486, 4504, 4522, 4540, 4558, 4576, 4594, 4612, 4630, 4648, 4666, 4684, 4702, 4720, 4738, 4756, 4774, 4792, 4810, 4828, 4846, 4864, 4882, 4900, 4918, 4936, 4954, 4972, 4990, 5008, 5026, 5044, 5062, 5080, 5098, 5116, 5134, 5152, 5170, 5188, 5206, 5224, 5242, 5260, 5278, 5296, 5314, 5332, 5350, 5368, 5386, 5404, 5422, 5440, 5458, 5476, 5494, 5512, 5530, 5548, 5566, 5584, 5602, 5620, 5638, 5656, 5674, 5692, 5710, 5728, 5746, 5764, 5782, 5800, 5818, 5836, 5854, 5872, 5798, 5816, 5834, 5852, 5870, 5888, 5906, 5924, 5942, 5960, 5978, 5996, 6014, 6032, 6050, 6068, 6086, 6104, 6122, 6140, 6158, 6176, 6194, 6212, 6230, 6248, 6266, 6284, 6302, 6320, 6338, 6356, 6374, 6392, 6410, 6428, 6446, 6464, 2, 20, 38, 56, 74, 92, 110, 128, 146, 164, 182, 200, 218, 236, 254, 272, 290, 308, 326, 344, 362, 380, 398, 416, 434, 452, 470, 488, 506, 524, 542, 560, 578, 596, 614, 632, 650, 668, 686, 704, 722, 740, 758, 776, 794, 812, 830, 848, 866, 884, 902, 920, 938, 956, 974, 992, 1010, 1028, 1046, 1064, 1082, 1100, 1118, 1136, 1154, 1172, 1190, 1208, 1226, 1244, 1262, 1280, 1298, 1316, 1334, 1352, 1370, 1388, 1406, 1424, 1442, 1460, 1478, 1496, 1514, 1532, 1550, 1568, 1586, 1604, 1622, 1640, 1658, 1676, 1694, 1712, 1730, 1748, 1766, 1784, 1802, 1820, 1838, 1856, 1874, 1892, 1910, 1928, 1946, 1964, 1982, 2000, 2018, 2036, 2054, 2072, 2090, 2108, 2126, 2144, 2162, 2180, 2198, 2216, 2234, 2252, 2270, 2288, 2306, 2324, 2342, 2360, 2378, 2396, 2414, 2432, 2450, 2468, 2486, 2504, 2522, 2540, 2558, 2576, 2594, 2612, 2630, 2648, 2666, 2684, 2702, 2720, 2738, 2756, 2774, 2792, 2810, 2828, 2846, 2864, 2882, 2900, 2918, 2936, 2954, 2972, 2990, 3008, 3026, 3044, 3062, 3080, 3098, 3116, 3134, 3152, 3170, 3188, 3206, 3224, 3242, 3260, 3278, 3296, 3314, 3332, 3350, 3368, 3386, 3404, 3422, 3440, 3458, 3476, 3494, 3512, 3530, 3548, 3566, 3584, 3602, 3620, 3638, 3656, 3674, 3692, 3710, 3728, 3746, 3764, 3782, 3800, 3818, 3836, 3854, 3872, 3890, 3908, 3926, 3944, 3962, 3980, 3998, 4016, 4034, 4052, 4070, 4088, 4106, 4124, 4142, 4160, 4178, 4196, 4214, 4232, 4250, 4268, 4286, 4304, 4322, 4340, 4358, 4376, 4394, 4412, 4430, 4448, 4466, 4484, 4502, 4520, 4538, 4556, 4574, 4592, 4610, 4628, 4646, 4664, 4682, 4700, 4718, 4736, 4754, 4772, 4790, 4808, 4826, 4844, 4862, 4880, 4898, 4916, 4934, 4952, 4970, 4988, 5006, 5024, 5042, 5060, 5078, 5096, 5114, 5132, 5150, 5168, 5186, 5204, 5222, 5240, 5258, 5276, 5294, 5312, 5330, 5348, 5366, 5384, 5402, 5420, 5438, 5456, 5474, 5492, 5510, 5528, 5546, 5564, 5582, 5600, 5618, 5636, 5654, 5672, 5690, 5708, 5726, 5744, 5762, 5780, 4887, 4905, 4923, 4941, 4959, 4977, 4995, 5013, 5031, 5049, 5067, 5085, 5103, 5121, 5139, 5157, 5175, 5193, 5211, 5229, 5247, 5265, 5283, 5301, 5319, 5337, 5355, 5373, 5391, 5409, 5427, 5445, 5463, 5481, 5499, 5517, 5535, 5553, 5571, 5589, 5607, 5625, 5643, 5661, 5679, 5697, 5715, 5733, 5751, 5769, 5787, 5805, 5823, 5841, 5859, 5877, 5895, 5913, 5931, 5949, 5967, 5985, 6003, 6021, 6039, 6057, 6075, 6093, 6111, 6129, 6147, 6165, 6183, 6201, 6219, 6237, 6255, 6273, 6291, 6309, 6327, 6345, 6363, 6381, 6399, 6417, 6435, 6453, 6471, 9, 27, 45, 63, 81, 99, 117, 135, 153, 171, 189, 207, 225, 243, 261, 279, 297, 315, 333, 351, 369, 387, 405, 423, 441, 459, 477, 495, 513, 531, 549, 567, 585, 603, 621, 639, 657, 675, 693, 711, 729, 747, 765, 783, 801, 819, 837, 855, 873, 891, 909, 927, 945, 963, 981, 999, 1017, 1035, 1053, 1071, 1089, 1107, 1125, 1143, 1161, 1179, 1197, 1215, 1233, 1251, 1269, 1287, 1305, 1323, 1341, 1359, 1377, 1395, 1413, 1431, 1449, 1467, 1485, 1503, 1521, 1539, 1557, 1575, 1593, 1611, 1629, 1647, 1665, 1683, 1701, 1719, 1737, 1755, 1773, 1791, 1809, 1827, 1845, 1863, 1881, 1899, 1917, 1935, 1953, 1971, 1989, 2007, 2025, 2043, 2061, 2079, 2097, 2115, 2133, 2151, 2169, 2187, 2205, 2223, 2241, 2259, 2277, 2295, 2313, 2331, 2349, 2367, 2385, 2403, 2421, 2439, 2457, 2475, 2493, 2511, 2529, 2547, 2565, 2583, 2601, 2619, 2637, 2655, 2673, 2691, 2709, 2727, 2745, 2763, 2781, 2799, 2817, 2835, 2853, 2871, 2889, 2907, 2925, 2943, 2961, 2979, 2997, 3015, 3033, 3051, 3069, 3087, 3105, 3123, 3141, 3159, 3177, 3195, 3213, 3231, 3249, 3267, 3285, 3303, 3321, 3339, 3357, 3375, 3393, 3411, 3429, 3447, 3465, 3483, 3501, 3519, 3537, 3555, 3573, 3591, 3609, 3627, 3645, 3663, 3681, 3699, 3717, 3735, 3753, 3771, 3789, 3807, 3825, 3843, 3861, 3879, 3897, 3915, 3933, 3951, 3969, 3987, 4005, 4023, 4041, 4059, 4077, 4095, 4113, 4131, 4149, 4167, 4185, 4203, 4221, 4239, 4257, 4275, 4293, 4311, 4329, 4347, 4365, 4383, 4401, 4419, 4437, 4455, 4473, 4491, 4509, 4527, 4545, 4563, 4581, 4599, 4617, 4635, 4653, 4671, 4689, 4707, 4725, 4743, 4761, 4779, 4797, 4815, 4833, 4851, 4869, 2952, 2970, 2988, 3006, 3024, 3042, 3060, 3078, 3096, 3114, 3132, 3150, 3168, 3186, 3204, 3222, 3240, 3258, 3276, 3294, 3312, 3330, 3348, 3366, 3384, 3402, 3420, 3438, 3456, 3474, 3492, 3510, 3528, 3546, 3564, 3582, 3600, 3618, 3636, 3654, 3672, 3690, 3708, 3726, 3744, 3762, 3780, 3798, 3816, 3834, 3852, 3870, 3888, 3906, 3924, 3942, 3960, 3978, 3996, 4014, 4032, 4050, 4068, 4086, 4104, 4122, 4140, 4158, 4176, 4194, 4212, 4230, 4248, 4266, 4284, 4302, 4320, 4338, 4356, 4374, 4392, 4410, 4428, 4446, 4464, 4482, 4500, 4518, 4536, 4554, 4572, 4590, 4608, 4626, 4644, 4662, 4680, 4698, 4716, 4734, 4752, 4770, 4788, 4806, 4824, 4842, 4860, 4878, 4896, 4914, 4932, 4950, 4968, 4986, 5004, 5022, 5040, 5058, 5076, 5094, 5112, 5130, 5148, 5166, 5184, 5202, 5220, 5238, 5256, 5274, 5292, 5310, 5328, 5346, 5364, 5382, 5400, 5418, 5436, 5454, 5472, 5490, 5508, 5526, 5544, 5562, 5580, 5598, 5616, 5634, 5652, 5670, 5688, 5706, 5724, 5742, 5760, 5778, 5796, 5814, 5832, 5850, 5868, 5886, 5904, 5922, 5940, 5958, 5976, 5994, 6012, 6030, 6048, 6066, 6084, 6102, 6120, 6138, 6156, 6174, 6192, 6210, 6228, 6246, 6264, 6282, 6300, 6318, 6336, 6354, 6372, 6390, 6408, 6426, 6444, 6462, 6480, 18, 36, 54, 72, 90, 108, 126, 144, 162, 180, 198, 216, 234, 252, 270, 288, 306, 324, 342, 360, 378, 396, 414, 432, 450, 468, 486, 504, 522, 540, 558, 576, 594, 612, 630, 648, 666, 684, 702, 720, 738, 756, 774, 792, 810, 828, 846, 864, 882, 900, 918, 936, 954, 972, 990, 1008, 1026, 1044, 1062, 1080, 1098, 1116, 1134, 1152, 1170, 1188, 1206, 1224, 1242, 1260, 1278, 1296, 1314, 1332, 1350, 1368, 1386, 1404, 1422, 1440, 1458, 1476, 1494, 1512, 1530, 1548, 1566, 1584, 1602, 1620, 1638, 1656, 1674, 1692, 1710, 1728, 1746, 1764, 1782, 1800, 1818, 1836, 1854, 1872, 1890, 1908, 1926, 1944, 1962, 1980, 1998, 2016, 2034, 2052, 2070, 2088, 2106, 2124, 2142, 2160, 2178, 2196, 2214, 2232, 2250, 2268, 2286, 2304, 2322, 2340, 2358, 2376, 2394, 2412, 2430, 2448, 2466, 2484, 2502, 2520, 2538, 2556, 2574, 2592, 2610, 2628, 2646, 2664, 2682, 2700, 2718, 2736, 2754, 2772, 2790, 2808, 2826, 2844, 2862, 2880, 2898, 2916, 2934, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2183, 2201, 2219, 2237, 2255, 2273, 2291, 2309, 2327, 2345, 2363, 2381, 2399, 2417, 2435, 2453, 2471, 2489, 2507, 2525, 2543, 2561, 2579, 2597, 2615, 2633, 2651, 2669, 2687, 2705, 2723, 2741, 2759, 2777, 2795, 2813, 2831, 2849, 2867, 2885, 2903, 2921, 2939, 2957, 2975, 2993, 3011, 3029, 3047, 3065, 3083, 3101, 3119, 3137, 3155, 3173, 3191, 3209, 3227, 3245, 3263, 3281, 3299, 3317, 3335, 3353, 3371, 3389, 3407, 3425, 3443, 3461, 3479, 3497, 3515, 3533, 3551, 3569, 3587, 3605, 3623, 3641, 3659, 3677, 3695, 3713, 3731, 3749, 3767, 3785, 3803, 3821, 3839, 3857, 3875, 3893, 3911, 3929, 3947, 3965, 3983, 4001, 4019, 4037, 4055, 4073, 4091, 4109, 4127, 4145, 4163, 4181, 4199, 4217, 4235, 4253, 4271, 4289, 4307, 4325, 4343, 4361, 4379, 4397, 4415, 4433, 4451, 4469, 4487, 4505, 4523, 4541, 4559, 4577, 4595, 4613, 4631, 4649, 4667, 4685, 4703, 4721, 4739, 4757, 4775, 4793, 4811, 4829, 4847, 4865, 4883, 4901, 4919, 4937, 4955, 4973, 4991, 5009, 5027, 5045, 5063, 5081, 5099, 5117, 5135, 5153, 5171, 5189, 5207, 5225, 5243, 5261, 5279, 5297, 5315, 5333, 5351, 5369, 5387, 5405, 5423, 5441, 5459, 5477, 5495, 5513, 5531, 5549, 5567, 5585, 5603, 5621, 5639, 5657, 5675, 5693, 5711, 5729, 5747, 5765, 5783, 5801, 5819, 5837, 5855, 5873, 5891, 5909, 5927, 5945, 5963, 5981, 5999, 6017, 6035, 6053, 6071, 6089, 6107, 6125, 6143, 6161, 6179, 6197, 6215, 6233, 6251, 6269, 6287, 6305, 6323, 6341, 6359, 6377, 6395, 6413, 6431, 6449, 6467, 5, 23, 41, 59, 77, 95, 113, 131, 149, 167, 185, 203, 221, 239, 257, 275, 293, 311, 329, 347, 365, 383, 401, 419, 437, 455, 473, 491, 509, 527, 545, 563, 581, 599, 617, 635, 653, 671, 689, 707, 725, 743, 761, 779, 797, 815, 833, 851, 869, 887, 905, 923, 941, 959, 977, 995, 1013, 1031, 1049, 1067, 1085, 1103, 1121, 1139, 1157, 1175, 1193, 1211, 1229, 1247, 1265, 1283, 1301, 1319, 1337, 1355, 1373, 1391, 1409, 1427, 1445, 1463, 1481, 1499, 1517, 1535, 1553, 1571, 1589, 1607, 1625, 1643, 1661, 1679, 1697, 1715, 1733, 1751, 1769, 1787, 1805, 1823, 1841, 1859, 1877, 1895, 1913, 1931, 1949, 1967, 1985, 2003, 2021, 2039, 2057, 2075, 2093, 2111, 2129, 2147, 2165, 399, 417, 435, 453, 471, 489, 507, 525, 543, 561, 579, 597, 615, 633, 651, 669, 687, 705, 723, 741, 759, 777, 795, 813, 831, 849, 867, 885, 903, 921, 939, 957, 975, 993, 1011, 1029, 1047, 1065, 1083, 1101, 1119, 1137, 1155, 1173, 1191, 1209, 1227, 1245, 1263, 1281, 1299, 1317, 1335, 1353, 1371, 1389, 1407, 1425, 1443, 1461, 1479, 1497, 1515, 1533, 1551, 1569, 1587, 1605, 1623, 1641, 1659, 1677, 1695, 1713, 1731, 1749, 1767, 1785, 1803, 1821, 1839, 1857, 1875, 1893, 1911, 1929, 1947, 1965, 1983, 2001, 2019, 2037, 2055, 2073, 2091, 2109, 2127, 2145, 2163, 2181, 2199, 2217, 2235, 2253, 2271, 2289, 2307, 2325, 2343, 2361, 2379, 2397, 2415, 2433, 2451, 2469, 2487, 2505, 2523, 2541, 2559, 2577, 2595, 2613, 2631, 2649, 2667, 2685, 2703, 2721, 2739, 2757, 2775, 2793, 2811, 2829, 2847, 2865, 2883, 2901, 2919, 2937, 2955, 2973, 2991, 3009, 3027, 3045, 3063, 3081, 3099, 3117, 3135, 3153, 3171, 3189, 3207, 3225, 3243, 3261, 3279, 3297, 3315, 3333, 3351, 3369, 3387, 3405, 3423, 3441, 3459, 3477, 3495, 3513, 3531, 3549, 3567, 3585, 3603, 3621, 3639, 3657, 3675, 3693, 3711, 3729, 3747, 3765, 3783, 3801, 3819, 3837, 3855, 3873, 3891, 3909, 3927, 3945, 3963, 3981, 3999, 4017, 4035, 4053, 4071, 4089, 4107, 4125, 4143, 4161, 4179, 4197, 4215, 4233, 4251, 4269, 4287, 4305, 4323, 4341, 4359, 4377, 4395, 4413, 4431, 4449, 4467, 4485, 4503, 4521, 4539, 4557, 4575, 4593, 4611, 4629, 4647, 4665, 4683, 4701, 4719, 4737, 4755, 4773, 4791, 4809, 4827, 4845, 4863, 4881, 4899, 4917, 4935, 4953, 4971, 4989, 5007, 5025, 5043, 5061, 5079, 5097, 5115, 5133, 5151, 5169, 5187, 5205, 5223, 5241, 5259, 5277, 5295, 5313, 5331, 5349, 5367, 5385, 5403, 5421, 5439, 5457, 5475, 5493, 5511, 5529, 5547, 5565, 5583, 5601, 5619, 5637, 5655, 5673, 5691, 5709, 5727, 5745, 5763, 5781, 5799, 5817, 5835, 5853, 5871, 5889, 5907, 5925, 5943, 5961, 5979, 5997, 6015, 6033, 6051, 6069, 6087, 6105, 6123, 6141, 6159, 6177, 6195, 6213, 6231, 6249, 6267, 6285, 6303, 6321, 6339, 6357, 6375, 6393, 6411, 6429, 6447, 6465, 3, 21, 39, 57, 75, 93, 111, 129, 147, 165, 183, 201, 219, 237, 255, 273, 291, 309, 327, 345, 363, 381, 4940, 4958, 4976, 4994, 5012, 5030, 5048, 5066, 5084, 5102, 5120, 5138, 5156, 5174, 5192, 5210, 5228, 5246, 5264, 5282, 5300, 5318, 5336, 5354, 5372, 5390, 5408, 5426, 5444, 5462, 5480, 5498, 5516, 5534, 5552, 5570, 5588, 5606, 5624, 5642, 5660, 5678, 5696, 5714, 5732, 5750, 5768, 5786, 5804, 5822, 5840, 5858, 5876, 5894, 5912, 5930, 5948, 5966, 5984, 6002, 6020, 6038, 6056, 6074, 6092, 6110, 6128, 6146, 6164, 6182, 6200, 6218, 6236, 6254, 6272, 6290, 6308, 6326, 6344, 6362, 6380, 6398, 6416, 6434, 6452, 6470, 8, 26, 44, 62, 80, 98, 116, 134, 152, 170, 188, 206, 224, 242, 260, 278, 296, 314, 332, 350, 368, 386, 404, 422, 440, 458, 476, 494, 512, 530, 548, 566, 584, 602, 620, 638, 656, 674, 692, 710, 728, 746, 764, 782, 800, 818, 836, 854, 872, 890, 908, 926, 944, 962, 980, 998, 1016, 1034, 1052, 1070, 1088, 1106, 1124, 1142, 1160, 1178, 1196, 1214, 1232, 1250, 1268, 1286, 1304, 1322, 1340, 1358, 1376, 1394, 1412, 1430, 1448, 1466, 1484, 1502, 1520, 1538, 1556, 1574, 1592, 1610, 1628, 1646, 1664, 1682, 1700, 1718, 1736, 1754, 1772, 1790, 1808, 1826, 1844, 1862, 1880, 1898, 1916, 1934, 1952, 1970, 1988, 2006, 2024, 2042, 2060, 2078, 2096, 2114, 2132, 2150, 2168, 2186, 2204, 2222, 2240, 2258, 2276, 2294, 2312, 2330, 2348, 2366, 2384, 2402, 2420, 2438, 2456, 2474, 2492, 2510, 2528, 2546, 2564, 2582, 2600, 2618, 2636, 2654, 2672, 2690, 2708, 2726, 2744, 2762, 2780, 2798, 2816, 2834, 2852, 2870, 2888, 2906, 2924, 2942, 2960, 2978, 2996, 3014, 3032, 3050, 3068, 3086, 3104, 3122, 3140, 3158, 3176, 3194, 3212, 3230, 3248, 3266, 3284, 3302, 3320, 3338, 3356, 3374, 3392, 3410, 3428, 3446, 3464, 3482, 3500, 3518, 3536, 3554, 3572, 3590, 3608, 3626, 3644, 3662, 3680, 3698, 3716, 3734, 3752, 3770, 3788, 3806, 3824, 3842, 3860, 3878, 3896, 3914, 3932, 3950, 3968, 3986, 4004, 4022, 4040, 4058, 4076, 4094, 4112, 4130, 4148, 4166, 4184, 4202, 4220, 4238, 4256, 4274, 4292, 4310, 4328, 4346, 4364, 4382, 4400, 4418, 4436, 4454, 4472, 4490, 4508, 4526, 4544, 4562, 4580, 4598, 4616, 4634, 4652, 4670, 4688, 4706, 4724, 4742, 4760, 4778, 4796, 4814, 4832, 4850, 4868, 4886, 4904, 4922, 6046, 6064, 6082, 6100, 6118, 6136, 6154, 6172, 6190, 6208, 6226, 6244, 6262, 6280, 6298, 6316, 6334, 6352, 6370, 6388, 6406, 6424, 6442, 6460, 6478, 16, 34, 52, 70, 88, 106, 124, 142, 160, 178, 196, 214, 232, 250, 268, 286, 304, 322, 340, 358, 376, 394, 412, 430, 448, 466, 484, 502, 520, 538, 556, 574, 592, 610, 628, 646, 664, 682, 700, 718, 736, 754, 772, 790, 808, 826, 844, 862, 880, 898, 916, 934, 952, 970, 988, 1006, 1024, 1042, 1060, 1078, 1096, 1114, 1132, 1150, 1168, 1186, 1204, 1222, 1240, 1258, 1276, 1294, 1312, 1330, 1348, 1366, 1384, 1402, 1420, 1438, 1456, 1474, 1492, 1510, 1528, 1546, 1564, 1582, 1600, 1618, 1636, 1654, 1672, 1690, 1708, 1726, 1744, 1762, 1780, 1798, 1816, 1834, 1852, 1870, 1888, 1906, 1924, 1942, 1960, 1978, 1996, 2014, 2032, 2050, 2068, 2086, 2104, 2122, 2140, 2158, 2176, 2194, 2212, 2230, 2248, 2266, 2284, 2302, 2320, 2338, 2356, 2374, 2392, 2410, 2428, 2446, 2464, 2482, 2500, 2518, 2536, 2554, 2572, 2590, 2608, 2626, 2644, 2662, 2680, 2698, 2716, 2734, 2752, 2770, 2788, 2806, 2824, 2842, 2860, 2878, 2896, 2914, 2932, 2950, 2968, 2986, 3004, 3022, 3040, 3058, 3076, 3094, 3112, 3130, 3148, 3166, 3184, 3202, 3220, 3238, 3256, 3274, 3292, 3310, 3328, 3346, 3364, 3382, 3400, 3418, 3436, 3454, 3472, 3490, 3508, 3526, 3544, 3562, 3580, 3598, 3616, 3634, 3652, 3670, 3688, 3706, 3724, 3742, 3760, 3778, 3796, 3814, 3832, 3850, 3868, 3886, 3904, 3922, 3940, 3958, 3976, 3994, 4012, 4030, 4048, 4066, 4084, 4102, 4120, 4138, 4156, 4174, 4192, 4210, 4228, 4246, 4264, 4282, 4300, 4318, 4336, 4354, 4372, 4390, 4408, 4426, 4444, 4462, 4480, 4498, 4516, 4534, 4552, 4570, 4588, 4606, 4624, 4642, 4660, 4678, 4696, 4714, 4732, 4750, 4768, 4786, 4804, 4822, 4840, 4858, 4876, 4894, 4912, 4930, 4948, 4966, 4984, 5002, 5020, 5038, 5056, 5074, 5092, 5110, 5128, 5146, 5164, 5182, 5200, 5218, 5236, 5254, 5272, 5290, 5308, 5326, 5344, 5362, 5380, 5398, 5416, 5434, 5452, 5470, 5488, 5506, 5524, 5542, 5560, 5578, 5596, 5614, 5632, 5650, 5668, 5686, 5704, 5722, 5740, 5758, 5776, 5794, 5812, 5830, 5848, 5866, 5884, 5902, 5920, 5938, 5956, 5974, 5992, 6010, 6028, 2998, 3016, 3034, 3052, 3070, 3088, 3106, 3124, 3142, 3160, 3178, 3196, 3214, 3232, 3250, 3268, 3286, 3304, 3322, 3340, 3358, 3376, 3394, 3412, 3430, 3448, 3466, 3484, 3502, 3520, 3538, 3556, 3574, 3592, 3610, 3628, 3646, 3664, 3682, 3700, 3718, 3736, 3754, 3772, 3790, 3808, 3826, 3844, 3862, 3880, 3898, 3916, 3934, 3952, 3970, 3988, 4006, 4024, 4042, 4060, 4078, 4096, 4114, 4132, 4150, 4168, 4186, 4204, 4222, 4240, 4258, 4276, 4294, 4312, 4330, 4348, 4366, 4384, 4402, 4420, 4438, 4456, 4474, 4492, 4510, 4528, 4546, 4564, 4582, 4600, 4618, 4636, 4654, 4672, 4690, 4708, 4726, 4744, 4762, 4780, 4798, 4816, 4834, 4852, 4870, 4888, 4906, 4924, 4942, 4960, 4978, 4996, 5014, 5032, 5050, 5068, 5086, 5104, 5122, 5140, 5158, 5176, 5194, 5212, 5230, 5248, 5266, 5284, 5302, 5320, 5338, 5356, 5374, 5392, 5410, 5428, 5446, 5464, 5482, 5500, 5518, 5536, 5554, 5572, 5590, 5608, 5626, 5644, 5662, 5680, 5698, 5716, 5734, 5752, 5770, 5788, 5806, 5824, 5842, 5860, 5878, 5896, 5914, 5932, 5950, 5968, 5986, 6004, 6022, 6040, 6058, 6076, 6094, 6112, 6130, 6148, 6166, 6184, 6202, 6220, 6238, 6256, 6274, 6292, 6310, 6328, 6346, 6364, 6382, 6400, 6418, 6436, 6454, 6472, 10, 28, 46, 64, 82, 100, 118, 136, 154, 172, 190, 208, 226, 244, 262, 280, 298, 316, 334, 352, 370, 388, 406, 424, 442, 460, 478, 496, 514, 532, 550, 568, 586, 604, 622, 640, 658, 676, 694, 712, 730, 748, 766, 784, 802, 820, 838, 856, 874, 892, 910, 928, 946, 964, 982, 1000, 1018, 1036, 1054, 1072, 1090, 1108, 1126, 1144, 1162, 1180, 1198, 1216, 1234, 1252, 1270, 1288, 1306, 1324, 1342, 1360, 1378, 1396, 1414, 1432, 1450, 1468, 1486, 1504, 1522, 1540, 1558, 1576, 1594, 1612, 1630, 1648, 1666, 1684, 1702, 1720, 1738, 1756, 1774, 1792, 1810, 1828, 1846, 1864, 1882, 1900, 1918, 1936, 1954, 1972, 1990, 2008, 2026, 2044, 2062, 2080, 2098, 2116, 2134, 2152, 2170, 2188, 2206, 2224, 2242, 2260, 2278, 2296, 2314, 2332, 2350, 2368, 2386, 2404, 2422, 2440, 2458, 2476, 2494, 2512, 2530, 2548, 2566, 2584, 2602, 2620, 2638, 2656, 2674, 2692, 2710, 2728, 2746, 2764, 2782, 2800, 2818, 2836, 2854, 2872, 2890, 2908, 2926, 2944, 2962, 2980, 4363, 4381, 4399, 4417, 4435, 4453, 4471, 4489, 4507, 4525, 4543, 4561, 4579, 4597, 4615, 4633, 4651, 4669, 4687, 4705, 4723, 4741, 4759, 4777, 4795, 4813, 4831, 4849, 4867, 4885, 4903, 4921, 4939, 4957, 4975, 4993, 5011, 5029, 5047, 5065, 5083, 5101, 5119, 5137, 5155, 5173, 5191, 5209, 5227, 5245, 5263, 5281, 5299, 5317, 5335, 5353, 5371, 5389, 5407, 5425, 5443, 5461, 5479, 5497, 5515, 5533, 5551, 5569, 5587, 5605, 5623, 5641, 5659, 5677, 5695, 5713, 5731, 5749, 5767, 5785, 5803, 5821, 5839, 5857, 5875, 5893, 5911, 5929, 5947, 5965, 5983, 6001, 6019, 6037, 6055, 6073, 6091, 6109, 6127, 6145, 6163, 6181, 6199, 6217, 6235, 6253, 6271, 6289, 6307, 6325, 6343, 6361, 6379, 6397, 6415, 6433, 6451, 6469, 7, 25, 43, 61, 79, 97, 115, 133, 151, 169, 187, 205, 223, 241, 259, 277, 295, 313, 331, 349, 367, 385, 403, 421, 439, 457, 475, 493, 511, 529, 547, 565, 583, 601, 619, 637, 655, 673, 691, 709, 727, 745, 763, 781, 799, 817, 835, 853, 871, 889, 907, 925, 943, 961, 979, 997, 1015, 1033, 1051, 1069, 1087, 1105, 1123, 1141, 1159, 1177, 1195, 1213, 1231, 1249, 1267, 1285, 1303, 1321, 1339, 1357, 1375, 1393, 1411, 1429, 1447, 1465, 1483, 1501, 1519, 1537, 1555, 1573, 1591, 1609, 1627, 1645, 1663, 1681, 1699, 1717, 1735, 1753, 1771, 1789, 1807, 1825, 1843, 1861, 1879, 1897, 1915, 1933, 1951, 1969, 1987, 2005, 2023, 2041, 2059, 2077, 2095, 2113, 2131, 2149, 2167, 2185, 2203, 2221, 2239, 2257, 2275, 2293, 2311, 2329, 2347, 2365, 2383, 2401, 2419, 2437, 2455, 2473, 2491, 2509, 2527, 2545, 2563, 2581, 2599, 2617, 2635, 2653, 2671, 2689, 2707, 2725, 2743, 2761, 2779, 2797, 2815, 2833, 2851, 2869, 2887, 2905, 2923, 2941, 2959, 2977, 2995, 3013, 3031, 3049, 3067, 3085, 3103, 3121, 3139, 3157, 3175, 3193, 3211, 3229, 3247, 3265, 3283, 3301, 3319, 3337, 3355, 3373, 3391, 3409, 3427, 3445, 3463, 3481, 3499, 3517, 3535, 3553, 3571, 3589, 3607, 3625, 3643, 3661, 3679, 3697, 3715, 3733, 3751, 3769, 3787, 3805, 3823, 3841, 3859, 3877, 3895, 3913, 3931, 3949, 3967, 3985, 4003, 4021, 4039, 4057, 4075, 4093, 4111, 4129, 4147, 4165, 4183, 4201, 4219, 4237, 4255, 4273, 4291, 4309, 4327, 4345, 3817, 3835, 3853, 3871, 3889, 3907, 3925, 3943, 3961, 3979, 3997, 4015, 4033, 4051, 4069, 4087, 4105, 4123, 4141, 4159, 4177, 4195, 4213, 4231, 4249, 4267, 4285, 4303, 4321, 4339, 4357, 4375, 4393, 4411, 4429, 4447, 4465, 4483, 4501, 4519, 4537, 4555, 4573, 4591, 4609, 4627, 4645, 4663, 4681, 4699, 4717, 4735, 4753, 4771, 4789, 4807, 4825, 4843, 4861, 4879, 4897, 4915, 4933, 4951, 4969, 4987, 5005, 5023, 5041, 5059, 5077, 5095, 5113, 5131, 5149, 5167, 5185, 5203, 5221, 5239, 5257, 5275, 5293, 5311, 5329, 5347, 5365, 5383, 5401, 5419, 5437, 5455, 5473, 5491, 5509, 5527, 5545, 5563, 5581, 5599, 5617, 5635, 5653, 5671, 5689, 5707, 5725, 5743, 5761, 5779, 5797, 5815, 5833, 5851, 5869, 5887, 5905, 5923, 5941, 5959, 5977, 5995, 6013, 6031, 6049, 6067, 6085, 6103, 6121, 6139, 6157, 6175, 6193, 6211, 6229, 6247, 6265, 6283, 6301, 6319, 6337, 6355, 6373, 6391, 6409, 6427, 6445, 6463, 1, 19, 37, 55, 73, 91, 109, 127, 145, 163, 181, 199, 217, 235, 253, 271, 289, 307, 325, 343, 361, 379, 397, 415, 433, 451, 469, 487, 505, 523, 541, 559, 577, 595, 613, 631, 649, 667, 685, 703, 721, 739, 757, 775, 793, 811, 829, 847, 865, 883, 901, 919, 937, 955, 973, 991, 1009, 1027, 1045, 1063, 1081, 1099, 1117, 1135, 1153, 1171, 1189, 1207, 1225, 1243, 1261, 1279, 1297, 1315, 1333, 1351, 1369, 1387, 1405, 1423, 1441, 1459, 1477, 1495, 1513, 1531, 1549, 1567, 1585, 1603, 1621, 1639, 1657, 1675, 1693, 1711, 1729, 1747, 1765, 1783, 1801, 1819, 1837, 1855, 1873, 1891, 1909, 1927, 1945, 1963, 1981, 1999, 2017, 2035, 2053, 2071, 2089, 2107, 2125, 2143, 2161, 2179, 2197, 2215, 2233, 2251, 2269, 2287, 2305, 2323, 2341, 2359, 2377, 2395, 2413, 2431, 2449, 2467, 2485, 2503, 2521, 2539, 2557, 2575, 2593, 2611, 2629, 2647, 2665, 2683, 2701, 2719, 2737, 2755, 2773, 2791, 2809, 2827, 2845, 2863, 2881, 2899, 2917, 2935, 2953, 2971, 2989, 3007, 3025, 3043, 3061, 3079, 3097, 3115, 3133, 3151, 3169, 3187, 3205, 3223, 3241, 3259, 3277, 3295, 3313, 3331, 3349, 3367, 3385, 3403, 3421, 3439, 3457, 3475, 3493, 3511, 3529, 3547, 3565, 3583, 3601, 3619, 3637, 3655, 3673, 3691, 3709, 3727, 3745, 3763, 3781, 3799, 2334, 2352, 2370, 2388, 2406, 2424, 2442, 2460, 2478, 2496, 2514, 2532, 2550, 2568, 2586, 2604, 2622, 2640, 2658, 2676, 2694, 2712, 2730, 2748, 2766, 2784, 2802, 2820, 2838, 2856, 2874, 2892, 2910, 2928, 2946, 2964, 2982, 3000, 3018, 3036, 3054, 3072, 3090, 3108, 3126, 3144, 3162, 3180, 3198, 3216, 3234, 3252, 3270, 3288, 3306, 3324, 3342, 3360, 3378, 3396, 3414, 3432, 3450, 3468, 3486, 3504, 3522, 3540, 3558, 3576, 3594, 3612, 3630, 3648, 3666, 3684, 3702, 3720, 3738, 3756, 3774, 3792, 3810, 3828, 3846, 3864, 3882, 3900, 3918, 3936, 3954, 3972, 3990, 4008, 4026, 4044, 4062, 4080, 4098, 4116, 4134, 4152, 4170, 4188, 4206, 4224, 4242, 4260, 4278, 4296, 4314, 4332, 4350, 4368, 4386, 4404, 4422, 4440, 4458, 4476, 4494, 4512, 4530, 4548, 4566, 4584, 4602, 4620, 4638, 4656, 4674, 4692, 4710, 4728, 4746, 4764, 4782, 4800, 4818, 4836, 4854, 4872, 4890, 4908, 4926, 4944, 4962, 4980, 4998, 5016, 5034, 5052, 5070, 5088, 5106, 5124, 5142, 5160, 5178, 5196, 5214, 5232, 5250, 5268, 5286, 5304, 5322, 5340, 5358, 5376, 5394, 5412, 5430, 5448, 5466, 5484, 5502, 5520, 5538, 5556, 5574, 5592, 5610, 5628, 5646, 5664, 5682, 5700, 5718, 5736, 5754, 5772, 5790, 5808, 5826, 5844, 5862, 5880, 5898, 5916, 5934, 5952, 5970, 5988, 6006, 6024, 6042, 6060, 6078, 6096, 6114, 6132, 6150, 6168, 6186, 6204, 6222, 6240, 6258, 6276, 6294, 6312, 6330, 6348, 6366, 6384, 6402, 6420, 6438, 6456, 6474, 12, 30, 48, 66, 84, 102, 120, 138, 156, 174, 192, 210, 228, 246, 264, 282, 300, 318, 336, 354, 372, 390, 408, 426, 444, 462, 480, 498, 516, 534, 552, 570, 588, 606, 624, 642, 660, 678, 696, 714, 732, 750, 768, 786, 804, 822, 840, 858, 876, 894, 912, 930, 948, 966, 984, 1002, 1020, 1038, 1056, 1074, 1092, 1110, 1128, 1146, 1164, 1182, 1200, 1218, 1236, 1254, 1272, 1290, 1308, 1326, 1344, 1362, 1380, 1398, 1416, 1434, 1452, 1470, 1488, 1506, 1524, 1542, 1560, 1578, 1596, 1614, 1632, 1650, 1668, 1686, 1704, 1722, 1740, 1758, 1776, 1794, 1812, 1830, 1848, 1866, 1884, 1902, 1920, 1938, 1956, 1974, 1992, 2010, 2028, 2046, 2064, 2082, 2100, 2118, 2136, 2154, 2172, 2190, 2208, 2226, 2244, 2262, 2280, 2298, 2316, 3920, 3938, 3956, 3974, 3992, 4010, 4028, 4046, 4064, 4082, 4100, 4118, 4136, 4154, 4172, 4190, 4208, 4226, 4244, 4262, 4280, 4298, 4316, 4334, 4352, 4370, 4388, 4406, 4424, 4442, 4460, 4478, 4496, 4514, 4532, 4550, 4568, 4586, 4604, 4622, 4640, 4658, 4676, 4694, 4712, 4730, 4748, 4766, 4784, 4802, 4820, 4838, 4856, 4874, 4892, 4910, 4928, 4946, 4964, 4982, 5000, 5018, 5036, 5054, 5072, 5090, 5108, 5126, 5144, 5162, 5180, 5198, 5216, 5234, 5252, 5270, 5288, 5306, 5324, 5342, 5360, 5378, 5396, 5414, 5432, 5450, 5468, 5486, 5504, 5522, 5540, 5558, 5576, 5594, 5612, 5630, 5648, 5666, 5684, 5702, 5720, 5738, 5756, 5774, 5792, 5810, 5828, 5846, 5864, 5882, 5900, 5918, 5936, 5954, 5972, 5990, 6008, 6026, 6044, 6062, 6080, 6098, 6116, 6134, 6152, 6170, 6188, 6206, 6224, 6242, 6260, 6278, 6296, 6314, 6332, 6350, 6368, 6386, 6404, 6422, 6440, 6458, 6476, 14, 32, 50, 68, 86, 104, 122, 140, 158, 176, 194, 212, 230, 248, 266, 284, 302, 320, 338, 356, 374, 392, 410, 428, 446, 464, 482, 500, 518, 536, 554, 572, 590, 608, 626, 644, 662, 680, 698, 716, 734, 752, 770, 788, 806, 824, 842, 860, 878, 896, 914, 932, 950, 968, 986, 1004, 1022, 1040, 1058, 1076, 1094, 1112, 1130, 1148, 1166, 1184, 1202, 1220, 1238, 1256, 1274, 1292, 1310, 1328, 1346, 1364, 1382, 1400, 1418, 1436, 1454, 1472, 1490, 1508, 1526, 1544, 1562, 1580, 1598, 1616, 1634, 1652, 1670, 1688, 1706, 1724, 1742, 1760, 1778, 1796, 1814, 1832, 1850, 1868, 1886, 1904, 1922, 1940, 1958, 1976, 1994, 2012, 2030, 2048, 2066, 2084, 2102, 2120, 2138, 2156, 2174, 2192, 2210, 2228, 2246, 2264, 2282, 2300, 2318, 2336, 2354, 2372, 2390, 2408, 2426, 2444, 2462, 2480, 2498, 2516, 2534, 2552, 2570, 2588, 2606, 2624, 2642, 2660, 2678, 2696, 2714, 2732, 2750, 2768, 2786, 2804, 2822, 2840, 2858, 2876, 2894, 2912, 2930, 2948, 2966, 2984, 3002, 3020, 3038, 3056, 3074, 3092, 3110, 3128, 3146, 3164, 3182, 3200, 3218, 3236, 3254, 3272, 3290, 3308, 3326, 3344, 3362, 3380, 3398, 3416, 3434, 3452, 3470, 3488, 3506, 3524, 3542, 3560, 3578, 3596, 3614, 3632, 3650, 3668, 3686, 3704, 3722, 3740, 3758, 3776, 3794, 3812, 3830, 3848, 3866, 3884, 3902, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 545, 563, 581, 599, 617, 635, 653, 671, 689, 707, 725, 743, 761, 779, 797, 815, 833, 851, 869, 887, 905, 923, 941, 959, 977, 995, 1013, 1031, 1049, 1067, 1085, 1103, 1121, 1139, 1157, 1175, 1193, 1211, 1229, 1247, 1265, 1283, 1301, 1319, 1337, 1355, 1373, 1391, 1409, 1427, 1445, 1463, 1481, 1499, 1517, 1535, 1553, 1571, 1589, 1607, 1625, 1643, 1661, 1679, 1697, 1715, 1733, 1751, 1769, 1787, 1805, 1823, 1841, 1859, 1877, 1895, 1913, 1931, 1949, 1967, 1985, 2003, 2021, 2039, 2057, 2075, 2093, 2111, 2129, 2147, 2165, 2183, 2201, 2219, 2237, 2255, 2273, 2291, 2309, 2327, 2345, 2363, 2381, 2399, 2417, 2435, 2453, 2471, 2489, 2507, 2525, 2543, 2561, 2579, 2597, 2615, 2633, 2651, 2669, 2687, 2705, 2723, 2741, 2759, 2777, 2795, 2813, 2831, 2849, 2867, 2885, 2903, 2921, 2939, 2957, 2975, 2993, 3011, 3029, 3047, 3065, 3083, 3101, 3119, 3137, 3155, 3173, 3191, 3209, 3227, 3245, 3263, 3281, 3299, 3317, 3335, 3353, 3371, 3389, 3407, 3425, 3443, 3461, 3479, 3497, 3515, 3533, 3551, 3569, 3587, 3605, 3623, 3641, 3659, 3677, 3695, 3713, 3731, 3749, 3767, 3785, 3803, 3821, 3839, 3857, 3875, 3893, 3911, 3929, 3947, 3965, 3983, 4001, 4019, 4037, 4055, 4073, 4091, 4109, 4127, 4145, 4163, 4181, 4199, 4217, 4235, 4253, 4271, 4289, 4307, 4325, 4343, 4361, 4379, 4397, 4415, 4433, 4451, 4469, 4487, 4505, 4523, 4541, 4559, 4577, 4595, 4613, 4631, 4649, 4667, 4685, 4703, 4721, 4739, 4757, 4775, 4793, 4811, 4829, 4847, 4865, 4883, 4901, 4919, 4937, 4955, 4973, 4991, 5009, 5027, 5045, 5063, 5081, 5099, 5117, 5135, 5153, 5171, 5189, 5207, 5225, 5243, 5261, 5279, 5297, 5315, 5333, 5351, 5369, 5387, 5405, 5423, 5441, 5459, 5477, 5495, 5513, 5531, 5549, 5567, 5585, 5603, 5621, 5639, 5657, 5675, 5693, 5711, 5729, 5747, 5765, 5783, 5801, 5819, 5837, 5855, 5873, 5891, 5909, 5927, 5945, 5963, 5981, 5999, 6017, 6035, 6053, 6071, 6089, 6107, 6125, 6143, 6161, 6179, 6197, 6215, 6233, 6251, 6269, 6287, 6305, 6323, 6341, 6359, 6377, 6395, 6413, 6431, 6449, 6467, 5, 23, 41, 59, 77, 95, 113, 131, 149, 167, 185, 203, 221, 239, 257, 275, 293, 311, 329, 347, 365, 383, 401, 419, 437, 455, 473, 491, 509, 527, 5740, 5758, 5776, 5794, 5812, 5830, 5848, 5866, 5884, 5902, 5920, 5938, 5956, 5974, 5992, 6010, 6028, 6046, 6064, 6082, 6100, 6118, 6136, 6154, 6172, 6190, 6208, 6226, 6244, 6262, 6280, 6298, 6316, 6334, 6352, 6370, 6388, 6406, 6424, 6442, 6460, 6478, 16, 34, 52, 70, 88, 106, 124, 142, 160, 178, 196, 214, 232, 250, 268, 286, 304, 322, 340, 358, 376, 394, 412, 430, 448, 466, 484, 502, 520, 538, 556, 574, 592, 610, 628, 646, 664, 682, 700, 718, 736, 754, 772, 790, 808, 826, 844, 862, 880, 898, 916, 934, 952, 970, 988, 1006, 1024, 1042, 1060, 1078, 1096, 1114, 1132, 1150, 1168, 1186, 1204, 1222, 1240, 1258, 1276, 1294, 1312, 1330, 1348, 1366, 1384, 1402, 1420, 1438, 1456, 1474, 1492, 1510, 1528, 1546, 1564, 1582, 1600, 1618, 1636, 1654, 1672, 1690, 1708, 1726, 1744, 1762, 1780, 1798, 1816, 1834, 1852, 1870, 1888, 1906, 1924, 1942, 1960, 1978, 1996, 2014, 2032, 2050, 2068, 2086, 2104, 2122, 2140, 2158, 2176, 2194, 2212, 2230, 2248, 2266, 2284, 2302, 2320, 2338, 2356, 2374, 2392, 2410, 2428, 2446, 2464, 2482, 2500, 2518, 2536, 2554, 2572, 2590, 2608, 2626, 2644, 2662, 2680, 2698, 2716, 2734, 2752, 2770, 2788, 2806, 2824, 2842, 2860, 2878, 2896, 2914, 2932, 2950, 2968, 2986, 3004, 3022, 3040, 3058, 3076, 3094, 3112, 3130, 3148, 3166, 3184, 3202, 3220, 3238, 3256, 3274, 3292, 3310, 3328, 3346, 3364, 3382, 3400, 3418, 3436, 3454, 3472, 3490, 3508, 3526, 3544, 3562, 3580, 3598, 3616, 3634, 3652, 3670, 3688, 3706, 3724, 3742, 3760, 3778, 3796, 3814, 3832, 3850, 3868, 3886, 3904, 3922, 3940, 3958, 3976, 3994, 4012, 4030, 4048, 4066, 4084, 4102, 4120, 4138, 4156, 4174, 4192, 4210, 4228, 4246, 4264, 4282, 4300, 4318, 4336, 4354, 4372, 4390, 4408, 4426, 4444, 4462, 4480, 4498, 4516, 4534, 4552, 4570, 4588, 4606, 4624, 4642, 4660, 4678, 4696, 4714, 4732, 4750, 4768, 4786, 4804, 4822, 4840, 4858, 4876, 4894, 4912, 4930, 4948, 4966, 4984, 5002, 5020, 5038, 5056, 5074, 5092, 5110, 5128, 5146, 5164, 5182, 5200, 5218, 5236, 5254, 5272, 5290, 5308, 5326, 5344, 5362, 5380, 5398, 5416, 5434, 5452, 5470, 5488, 5506, 5524, 5542, 5560, 5578, 5596, 5614, 5632, 5650, 5668, 5686, 5704, 5722, 1120, 1138, 1156, 1174, 1192, 1210, 1228, 1246, 1264, 1282, 1300, 1318, 1336, 1354, 1372, 1390, 1408, 1426, 1444, 1462, 1480, 1498, 1516, 1534, 1552, 1570, 1588, 1606, 1624, 1642, 1660, 1678, 1696, 1714, 1732, 1750, 1768, 1786, 1804, 1822, 1840, 1858, 1876, 1894, 1912, 1930, 1948, 1966, 1984, 2002, 2020, 2038, 2056, 2074, 2092, 2110, 2128, 2146, 2164, 2182, 2200, 2218, 2236, 2254, 2272, 2290, 2308, 2326, 2344, 2362, 2380, 2398, 2416, 2434, 2452, 2470, 2488, 2506, 2524, 2542, 2560, 2578, 2596, 2614, 2632, 2650, 2668, 2686, 2704, 2722, 2740, 2758, 2776, 2794, 2812, 2830, 2848, 2866, 2884, 2902, 2920, 2938, 2956, 2974, 2992, 3010, 3028, 3046, 3064, 3082, 3100, 3118, 3136, 3154, 3172, 3190, 3208, 3226, 3244, 3262, 3280, 3298, 3316, 3334, 3352, 3370, 3388, 3406, 3424, 3442, 3460, 3478, 3496, 3514, 3532, 3550, 3568, 3586, 3604, 3622, 3640, 3658, 3676, 3694, 3712, 3730, 3748, 3766, 3784, 3802, 3820, 3838, 3856, 3874, 3892, 3910, 3928, 3946, 3964, 3982, 4000, 4018, 4036, 4054, 4072, 4090, 4108, 4126, 4144, 4162, 4180, 4198, 4216, 4234, 4252, 4270, 4288, 4306, 4324, 4342, 4360, 4378, 4396, 4414, 4432, 4450, 4468, 4486, 4504, 4522, 4540, 4558, 4576, 4594, 4612, 4630, 4648, 4666, 4684, 4702, 4720, 4738, 4756, 4774, 4792, 4810, 4828, 4846, 4864, 4882, 4900, 4918, 4936, 4954, 4972, 4990, 5008, 5026, 5044, 5062, 5080, 5098, 5116, 5134, 5152, 5170, 5188, 5206, 5224, 5242, 5260, 5278, 5296, 5314, 5332, 5350, 5368, 5386, 5404, 5422, 5440, 5458, 5476, 5494, 5512, 5530, 5548, 5566, 5584, 5602, 5620, 5638, 5656, 5674, 5692, 5710, 5728, 5746, 5764, 5782, 5800, 5818, 5836, 5854, 5872, 5890, 5908, 5926, 5944, 5962, 5980, 5998, 6016, 6034, 6052, 6070, 6088, 6106, 6124, 6142, 6160, 6178, 6196, 6214, 6232, 6250, 6268, 6286, 6304, 6322, 6340, 6358, 6376, 6394, 6412, 6430, 6448, 6466, 4, 22, 40, 58, 76, 94, 112, 130, 148, 166, 184, 202, 220, 238, 256, 274, 292, 310, 328, 346, 364, 382, 400, 418, 436, 454, 472, 490, 508, 526, 544, 562, 580, 598, 616, 634, 652, 670, 688, 706, 724, 742, 760, 778, 796, 814, 832, 850, 868, 886, 904, 922, 940, 958, 976, 994, 1012, 1030, 1048, 1066, 1084, 1102, 564, 582, 600, 618, 636, 654, 672, 690, 708, 726, 744, 762, 780, 798, 816, 834, 852, 870, 888, 906, 924, 942, 960, 978, 996, 1014, 1032, 1050, 1068, 1086, 1104, 1122, 1140, 1158, 1176, 1194, 1212, 1230, 1248, 1266, 1284, 1302, 1320, 1338, 1356, 1374, 1392, 1410, 1428, 1446, 1464, 1482, 1500, 1518, 1536, 1554, 1572, 1590, 1608, 1626, 1644, 1662, 1680, 1698, 1716, 1734, 1752, 1770, 1788, 1806, 1824, 1842, 1860, 1878, 1896, 1914, 1932, 1950, 1968, 1986, 2004, 2022, 2040, 2058, 2076, 2094, 2112, 2130, 2148, 2166, 2184, 2202, 2220, 2238, 2256, 2274, 2292, 2310, 2328, 2346, 2364, 2382, 2400, 2418, 2436, 2454, 2472, 2490, 2508, 2526, 2544, 2562, 2580, 2598, 2616, 2634, 2652, 2670, 2688, 2706, 2724, 2742, 2760, 2778, 2796, 2814, 2832, 2850, 2868, 2886, 2904, 2922, 2940, 2958, 2976, 2994, 3012, 3030, 3048, 3066, 3084, 3102, 3120, 3138, 3156, 3174, 3192, 3210, 3228, 3246, 3264, 3282, 3300, 3318, 3336, 3354, 3372, 3390, 3408, 3426, 3444, 3462, 3480, 3498, 3516, 3534, 3552, 3570, 3588, 3606, 3624, 3642, 3660, 3678, 3696, 3714, 3732, 3750, 3768, 3786, 3804, 3822, 3840, 3858, 3876, 3894, 3912, 3930, 3948, 3966, 3984, 4002, 4020, 4038, 4056, 4074, 4092, 4110, 4128, 4146, 4164, 4182, 4200, 4218, 4236, 4254, 4272, 4290, 4308, 4326, 4344, 4362, 4380, 4398, 4416, 4434, 4452, 4470, 4488, 4506, 4524, 4542, 4560, 4578, 4596, 4614, 4632, 4650, 4668, 4686, 4704, 4722, 4740, 4758, 4776, 4794, 4812, 4830, 4848, 4866, 4884, 4902, 4920, 4938, 4956, 4974, 4992, 5010, 5028, 5046, 5064, 5082, 5100, 5118, 5136, 5154, 5172, 5190, 5208, 5226, 5244, 5262, 5280, 5298, 5316, 5334, 5352, 5370, 5388, 5406, 5424, 5442, 5460, 5478, 5496, 5514, 5532, 5550, 5568, 5586, 5604, 5622, 5640, 5658, 5676, 5694, 5712, 5730, 5748, 5766, 5784, 5802, 5820, 5838, 5856, 5874, 5892, 5910, 5928, 5946, 5964, 5982, 6000, 6018, 6036, 6054, 6072, 6090, 6108, 6126, 6144, 6162, 6180, 6198, 6216, 6234, 6252, 6270, 6288, 6306, 6324, 6342, 6360, 6378, 6396, 6414, 6432, 6450, 6468, 6, 24, 42, 60, 78, 96, 114, 132, 150, 168, 186, 204, 222, 240, 258, 276, 294, 312, 330, 348, 366, 384, 402, 420, 438, 456, 474, 492, 510, 528, 546, 429, 447, 465, 483, 501, 519, 537, 555, 573, 591, 609, 627, 645, 663, 681, 699, 717, 735, 753, 771, 789, 807, 825, 843, 861, 879, 897, 915, 933, 951, 969, 987, 1005, 1023, 1041, 1059, 1077, 1095, 1113, 1131, 1149, 1167, 1185, 1203, 1221, 1239, 1257, 1275, 1293, 1311, 1329, 1347, 1365, 1383, 1401, 1419, 1437, 1455, 1473, 1491, 1509, 1527, 1545, 1563, 1581, 1599, 1617, 1635, 1653, 1671, 1689, 1707, 1725, 1743, 1761, 1779, 1797, 1815, 1833, 1851, 1869, 1887, 1905, 1923, 1941, 1959, 1977, 1995, 2013, 2031, 2049, 2067, 2085, 2103, 2121, 2139, 2157, 2175, 2193, 2211, 2229, 2247, 2265, 2283, 2301, 2319, 2337, 2355, 2373, 2391, 2409, 2427, 2445, 2463, 2481, 2499, 2517, 2535, 2553, 2571, 2589, 2607, 2625, 2643, 2661, 2679, 2697, 2715, 2733, 2751, 2769, 2787, 2805, 2823, 2841, 2859, 2877, 2895, 2913, 2931, 2949, 2967, 2985, 3003, 3021, 3039, 3057, 3075, 3093, 3111, 3129, 3147, 3165, 3183, 3201, 3219, 3237, 3255, 3273, 3291, 3309, 3327, 3345, 3363, 3381, 3399, 3417, 3435, 3453, 3471, 3489, 3507, 3525, 3543, 3561, 3579, 3597, 3615, 3633, 3651, 3669, 3687, 3705, 3723, 3741, 3759, 3777, 3795, 3813, 3831, 3849, 3867, 3885, 3903, 3921, 3939, 3957, 3975, 3993, 4011, 4029, 4047, 4065, 4083, 4101, 4119, 4137, 4155, 4173, 4191, 4209, 4227, 4245, 4263, 4281, 4299, 4317, 4335, 4353, 4371, 4389, 4407, 4425, 4443, 4461, 4479, 4497, 4515, 4533, 4551, 4569, 4587, 4605, 4623, 4641, 4659, 4677, 4695, 4713, 4731, 4749, 4767, 4785, 4803, 4821, 4839, 4857, 4875, 4893, 4911, 4929, 4947, 4965, 4983, 5001, 5019, 5037, 5055, 5073, 5091, 5109, 5127, 5145, 5163, 5181, 5199, 5217, 5235, 5253, 5271, 5289, 5307, 5325, 5343, 5361, 5379, 5397, 5415, 5433, 5451, 5469, 5487, 5505, 5523, 5541, 5559, 5577, 5595, 5613, 5631, 5649, 5667, 5685, 5703, 5721, 5739, 5757, 5775, 5793, 5811, 5829, 5847, 5865, 5883, 5901, 5919, 5937, 5955, 5973, 5991, 6009, 6027, 6045, 6063, 6081, 6099, 6117, 6135, 6153, 6171, 6189, 6207, 6225, 6243, 6261, 6279, 6297, 6315, 6333, 6351, 6369, 6387, 6405, 6423, 6441, 6459, 6477, 15, 33, 51, 69, 87, 105, 123, 141, 159, 177, 195, 213, 231, 249, 267, 285, 303, 321, 339, 357, 375, 393, 411, 3807, 3825, 3843, 3861, 3879, 3897, 3915, 3933, 3951, 3969, 3987, 4005, 4023, 4041, 4059, 4077, 4095, 4113, 4131, 4149, 4167, 4185, 4203, 4221, 4239, 4257, 4275, 4293, 4311, 4329, 4347, 4365, 4383, 4401, 4419, 4437, 4455, 4473, 4491, 4509, 4527, 4545, 4563, 4581, 4599, 4617, 4635, 4653, 4671, 4689, 4707, 4725, 4743, 4761, 4779, 4797, 4815, 4833, 4851, 4869, 4887, 4905, 4923, 4941, 4959, 4977, 4995, 5013, 5031, 5049, 5067, 5085, 5103, 5121, 5139, 5157, 5175, 5193, 5211, 5229, 5247, 5265, 5283, 5301, 5319, 5337, 5355, 5373, 5391, 5409, 5427, 5445, 5463, 5481, 5499, 5517, 5535, 5553, 5571, 5589, 5607, 5625, 5643, 5661, 5679, 5697, 5715, 5733, 5751, 5769, 5787, 5805, 5823, 5841, 5859, 5877, 5895, 5913, 5931, 5949, 5967, 5985, 6003, 6021, 6039, 6057, 6075, 6093, 6111, 6129, 6147, 6165, 6183, 6201, 6219, 6237, 6255, 6273, 6291, 6309, 6327, 6345, 6363, 6381, 6399, 6417, 6435, 6453, 6471, 9, 27, 45, 63, 81, 99, 117, 135, 153, 171, 189, 207, 225, 243, 261, 279, 297, 315, 333, 351, 369, 387, 405, 423, 441, 459, 477, 495, 513, 531, 549, 567, 585, 603, 621, 639, 657, 675, 693, 711, 729, 747, 765, 783, 801, 819, 837, 855, 873, 891, 909, 927, 945, 963, 981, 999, 1017, 1035, 1053, 1071, 1089, 1107, 1125, 1143, 1161, 1179, 1197, 1215, 1233, 1251, 1269, 1287, 1305, 1323, 1341, 1359, 1377, 1395, 1413, 1431, 1449, 1467, 1485, 1503, 1521, 1539, 1557, 1575, 1593, 1611, 1629, 1647, 1665, 1683, 1701, 1719, 1737, 1755, 1773, 1791, 1809, 1827, 1845, 1863, 1881, 1899, 1917, 1935, 1953, 1971, 1989, 2007, 2025, 2043, 2061, 2079, 2097, 2115, 2133, 2151, 2169, 2187, 2205, 2223, 2241, 2259, 2277, 2295, 2313, 2331, 2349, 2367, 2385, 2403, 2421, 2439, 2457, 2475, 2493, 2511, 2529, 2547, 2565, 2583, 2601, 2619, 2637, 2655, 2673, 2691, 2709, 2727, 2745, 2763, 2781, 2799, 2817, 2835, 2853, 2871, 2889, 2907, 2925, 2943, 2961, 2979, 2997, 3015, 3033, 3051, 3069, 3087, 3105, 3123, 3141, 3159, 3177, 3195, 3213, 3231, 3249, 3267, 3285, 3303, 3321, 3339, 3357, 3375, 3393, 3411, 3429, 3447, 3465, 3483, 3501, 3519, 3537, 3555, 3573, 3591, 3609, 3627, 3645, 3663, 3681, 3699, 3717, 3735, 3753, 3771, 3789, 818, 836, 854, 872, 890, 908, 926, 944, 962, 980, 998, 1016, 1034, 1052, 1070, 1088, 1106, 1124, 1142, 1160, 1178, 1196, 1214, 1232, 1250, 1268, 1286, 1304, 1322, 1340, 1358, 1376, 1394, 1412, 1430, 1448, 1466, 1484, 1502, 1520, 1538, 1556, 1574, 1592, 1610, 1628, 1646, 1664, 1682, 1700, 1718, 1736, 1754, 1772, 1790, 1808, 1826, 1844, 1862, 1880, 1898, 1916, 1934, 1952, 1970, 1988, 2006, 2024, 2042, 2060, 2078, 2096, 2114, 2132, 2150, 2168, 2186, 2204, 2222, 2240, 2258, 2276, 2294, 2312, 2330, 2348, 2366, 2384, 2402, 2420, 2438, 2456, 2474, 2492, 2510, 2528, 2546, 2564, 2582, 2600, 2618, 2636, 2654, 2672, 2690, 2708, 2726, 2744, 2762, 2780, 2798, 2816, 2834, 2852, 2870, 2888, 2906, 2924, 2942, 2960, 2978, 2996, 3014, 3032, 3050, 3068, 3086, 3104, 3122, 3140, 3158, 3176, 3194, 3212, 3230, 3248, 3266, 3284, 3302, 3320, 3338, 3356, 3374, 3392, 3410, 3428, 3446, 3464, 3482, 3500, 3518, 3536, 3554, 3572, 3590, 3608, 3626, 3644, 3662, 3680, 3698, 3716, 3734, 3752, 3770, 3788, 3806, 3824, 3842, 3860, 3878, 3896, 3914, 3932, 3950, 3968, 3986, 4004, 4022, 4040, 4058, 4076, 4094, 4112, 4130, 4148, 4166, 4184, 4202, 4220, 4238, 4256, 4274, 4292, 4310, 4328, 4346, 4364, 4382, 4400, 4418, 4436, 4454, 4472, 4490, 4508, 4526, 4544, 4562, 4580, 4598, 4616, 4634, 4652, 4670, 4688, 4706, 4724, 4742, 4760, 4778, 4796, 4814, 4832, 4850, 4868, 4886, 4904, 4922, 4940, 4958, 4976, 4994, 5012, 5030, 5048, 5066, 5084, 5102, 5120, 5138, 5156, 5174, 5192, 5210, 5228, 5246, 5264, 5282, 5300, 5318, 5336, 5354, 5372, 5390, 5408, 5426, 5444, 5462, 5480, 5498, 5516, 5534, 5552, 5570, 5588, 5606, 5624, 5642, 5660, 5678, 5696, 5714, 5732, 5750, 5768, 5786, 5804, 5822, 5840, 5858, 5876, 5894, 5912, 5930, 5948, 5966, 5984, 6002, 6020, 6038, 6056, 6074, 6092, 6110, 6128, 6146, 6164, 6182, 6200, 6218, 6236, 6254, 6272, 6290, 6308, 6326, 6344, 6362, 6380, 6398, 6416, 6434, 6452, 6470, 8, 26, 44, 62, 80, 98, 116, 134, 152, 170, 188, 206, 224, 242, 260, 278, 296, 314, 332, 350, 368, 386, 404, 422, 440, 458, 476, 494, 512, 530, 548, 566, 584, 602, 620, 638, 656, 674, 692, 710, 728, 746, 764, 782, 800, 288, 306, 324, 342, 360, 378, 396, 414, 432, 450, 468, 486, 504, 522, 540, 558, 576, 594, 612, 630, 648, 666, 684, 702, 720, 738, 756, 774, 792, 810, 828, 846, 864, 882, 900, 918, 936, 954, 972, 990, 1008, 1026, 1044, 1062, 1080, 1098, 1116, 1134, 1152, 1170, 1188, 1206, 1224, 1242, 1260, 1278, 1296, 1314, 1332, 1350, 1368, 1386, 1404, 1422, 1440, 1458, 1476, 1494, 1512, 1530, 1548, 1566, 1584, 1602, 1620, 1638, 1656, 1674, 1692, 1710, 1728, 1746, 1764, 1782, 1800, 1818, 1836, 1854, 1872, 1890, 1908, 1926, 1944, 1962, 1980, 1998, 2016, 2034, 2052, 2070, 2088, 2106, 2124, 2142, 2160, 2178, 2196, 2214, 2232, 2250, 2268, 2286, 2304, 2322, 2340, 2358, 2376, 2394, 2412, 2430, 2448, 2466, 2484, 2502, 2520, 2538, 2556, 2574, 2592, 2610, 2628, 2646, 2664, 2682, 2700, 2718, 2736, 2754, 2772, 2790, 2808, 2826, 2844, 2862, 2880, 2898, 2916, 2934, 2952, 2970, 2988, 3006, 3024, 3042, 3060, 3078, 3096, 3114, 3132, 3150, 3168, 3186, 3204, 3222, 3240, 3258, 3276, 3294, 3312, 3330, 3348, 3366, 3384, 3402, 3420, 3438, 3456, 3474, 3492, 3510, 3528, 3546, 3564, 3582, 3600, 3618, 3636, 3654, 3672, 3690, 3708, 3726, 3744, 3762, 3780, 3798, 3816, 3834, 3852, 3870, 3888, 3906, 3924, 3942, 3960, 3978, 3996, 4014, 4032, 4050, 4068, 4086, 4104, 4122, 4140, 4158, 4176, 4194, 4212, 4230, 4248, 4266, 4284, 4302, 4320, 4338, 4356, 4374, 4392, 4410, 4428, 4446, 4464, 4482, 4500, 4518, 4536, 4554, 4572, 4590, 4608, 4626, 4644, 4662, 4680, 4698, 4716, 4734, 4752, 4770, 4788, 4806, 4824, 4842, 4860, 4878, 4896, 4914, 4932, 4950, 4968, 4986, 5004, 5022, 5040, 5058, 5076, 5094, 5112, 5130, 5148, 5166, 5184, 5202, 5220, 5238, 5256, 5274, 5292, 5310, 5328, 5346, 5364, 5382, 5400, 5418, 5436, 5454, 5472, 5490, 5508, 5526, 5544, 5562, 5580, 5598, 5616, 5634, 5652, 5670, 5688, 5706, 5724, 5742, 5760, 5778, 5796, 5814, 5832, 5850, 5868, 5886, 5904, 5922, 5940, 5958, 5976, 5994, 6012, 6030, 6048, 6066, 6084, 6102, 6120, 6138, 6156, 6174, 6192, 6210, 6228, 6246, 6264, 6282, 6300, 6318, 6336, 6354, 6372, 6390, 6408, 6426, 6444, 6462, 6480, 18, 36, 54, 72, 90, 108, 126, 144, 162, 180, 198, 216, 234, 252, 270, 1357, 1375, 1393, 1411, 1429, 1447, 1465, 1483, 1501, 1519, 1537, 1555, 1573, 1591, 1609, 1627, 1645, 1663, 1681, 1699, 1717, 1735, 1753, 1771, 1789, 1807, 1825, 1843, 1861, 1879, 1897, 1915, 1933, 1951, 1969, 1987, 2005, 2023, 2041, 2059, 2077, 2095, 2113, 2131, 2149, 2167, 2185, 2203, 2221, 2239, 2257, 2275, 2293, 2311, 2329, 2347, 2365, 2383, 2401, 2419, 2437, 2455, 2473, 2491, 2509, 2527, 2545, 2563, 2581, 2599, 2617, 2635, 2653, 2671, 2689, 2707, 2725, 2743, 2761, 2779, 2797, 2815, 2833, 2851, 2869, 2887, 2905, 2923, 2941, 2959, 2977, 2995, 3013, 3031, 3049, 3067, 3085, 3103, 3121, 3139, 3157, 3175, 3193, 3211, 3229, 3247, 3265, 3283, 3301, 3319, 3337, 3355, 3373, 3391, 3409, 3427, 3445, 3463, 3481, 3499, 3517, 3535, 3553, 3571, 3589, 3607, 3625, 3643, 3661, 3679, 3697, 3715, 3733, 3751, 3769, 3787, 3805, 3823, 3841, 3859, 3877, 3895, 3913, 3931, 3949, 3967, 3985, 4003, 4021, 4039, 4057, 4075, 4093, 4111, 4129, 4147, 4165, 4183, 4201, 4219, 4237, 4255, 4273, 4291, 4309, 4327, 4345, 4363, 4381, 4399, 4417, 4435, 4453, 4471, 4489, 4507, 4525, 4543, 4561, 4579, 4597, 4615, 4633, 4651, 4669, 4687, 4705, 4723, 4741, 4759, 4777, 4795, 4813, 4831, 4849, 4867, 4885, 4903, 4921, 4939, 4957, 4975, 4993, 5011, 5029, 5047, 5065, 5083, 5101, 5119, 5137, 5155, 5173, 5191, 5209, 5227, 5245, 5263, 5281, 5299, 5317, 5335, 5353, 5371, 5389, 5407, 5425, 5443, 5461, 5479, 5497, 5515, 5533, 5551, 5569, 5587, 5605, 5623, 5641, 5659, 5677, 5695, 5713, 5731, 5749, 5767, 5785, 5803, 5821, 5839, 5857, 5875, 5893, 5911, 5929, 5947, 5965, 5983, 6001, 6019, 6037, 6055, 6073, 6091, 6109, 6127, 6145, 6163, 6181, 6199, 6217, 6235, 6253, 6271, 6289, 6307, 6325, 6343, 6361, 6379, 6397, 6415, 6433, 6451, 6469, 7, 25, 43, 61, 79, 97, 115, 133, 151, 169, 187, 205, 223, 241, 259, 277, 295, 313, 331, 349, 367, 385, 403, 421, 439, 457, 475, 493, 511, 529, 547, 565, 583, 601, 619, 637, 655, 673, 691, 709, 727, 745, 763, 781, 799, 817, 835, 853, 871, 889, 907, 925, 943, 961, 979, 997, 1015, 1033, 1051, 1069, 1087, 1105, 1123, 1141, 1159, 1177, 1195, 1213, 1231, 1249, 1267, 1285, 1303, 1321, 1339, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3395, 3413, 3431, 3449, 3467, 3485, 3503, 3521, 3539, 3557, 3575, 3593, 3611, 3629, 3647, 3665, 3683, 3701, 3719, 3737, 3755, 3773, 3791, 3809, 3827, 3845, 3863, 3881, 3899, 3917, 3935, 3953, 3971, 3989, 4007, 4025, 4043, 4061, 4079, 4097, 4115, 4133, 4151, 4169, 4187, 4205, 4223, 4241, 4259, 4277, 4295, 4313, 4331, 4349, 4367, 4385, 4403, 4421, 4439, 4457, 4475, 4493, 4511, 4529, 4547, 4565, 4583, 4601, 4619, 4637, 4655, 4673, 4691, 4709, 4727, 4745, 4763, 4781, 4799, 4817, 4835, 4853, 4871, 4889, 4907, 4925, 4943, 4961, 4979, 4997, 5015, 5033, 5051, 5069, 5087, 5105, 5123, 5141, 5159, 5177, 5195, 5213, 5231, 5249, 5267, 5285, 5303, 5321, 5339, 5357, 5375, 5393, 5411, 5429, 5447, 5465, 5483, 5501, 5519, 5537, 5555, 5573, 5591, 5609, 5627, 5645, 5663, 5681, 5699, 5717, 5735, 5753, 5771, 5789, 5807, 5825, 5843, 5861, 5879, 5897, 5915, 5933, 5951, 5969, 5987, 6005, 6023, 6041, 6059, 6077, 6095, 6113, 6131, 6149, 6167, 6185, 6203, 6221, 6239, 6257, 6275, 6293, 6311, 6329, 6347, 6365, 6383, 6401, 6419, 6437, 6455, 6473, 11, 29, 47, 65, 83, 101, 119, 137, 155, 173, 191, 209, 227, 245, 263, 281, 299, 317, 335, 353, 371, 389, 407, 425, 443, 461, 479, 497, 515, 533, 551, 569, 587, 605, 623, 641, 659, 677, 695, 713, 731, 749, 767, 785, 803, 821, 839, 857, 875, 893, 911, 929, 947, 965, 983, 1001, 1019, 1037, 1055, 1073, 1091, 1109, 1127, 1145, 1163, 1181, 1199, 1217, 1235, 1253, 1271, 1289, 1307, 1325, 1343, 1361, 1379, 1397, 1415, 1433, 1451, 1469, 1487, 1505, 1523, 1541, 1559, 1577, 1595, 1613, 1631, 1649, 1667, 1685, 1703, 1721, 1739, 1757, 1775, 1793, 1811, 1829, 1847, 1865, 1883, 1901, 1919, 1937, 1955, 1973, 1991, 2009, 2027, 2045, 2063, 2081, 2099, 2117, 2135, 2153, 2171, 2189, 2207, 2225, 2243, 2261, 2279, 2297, 2315, 2333, 2351, 2369, 2387, 2405, 2423, 2441, 2459, 2477, 2495, 2513, 2531, 2549, 2567, 2585, 2603, 2621, 2639, 2657, 2675, 2693, 2711, 2729, 2747, 2765, 2783, 2801, 2819, 2837, 2855, 2873, 2891, 2909, 2927, 2945, 2963, 2981, 2999, 3017, 3035, 3053, 3071, 3089, 3107, 3125, 3143, 3161, 3179, 3197, 3215, 3233, 3251, 3269, 3287, 3305, 3323, 3341, 3359, 3377, 266, 284, 302, 320, 338, 356, 374, 392, 410, 428, 446, 464, 482, 500, 518, 536, 554, 572, 590, 608, 626, 644, 662, 680, 698, 716, 734, 752, 770, 788, 806, 824, 842, 860, 878, 896, 914, 932, 950, 968, 986, 1004, 1022, 1040, 1058, 1076, 1094, 1112, 1130, 1148, 1166, 1184, 1202, 1220, 1238, 1256, 1274, 1292, 1310, 1328, 1346, 1364, 1382, 1400, 1418, 1436, 1454, 1472, 1490, 1508, 1526, 1544, 1562, 1580, 1598, 1616, 1634, 1652, 1670, 1688, 1706, 1724, 1742, 1760, 1778, 1796, 1814, 1832, 1850, 1868, 1886, 1904, 1922, 1940, 1958, 1976, 1994, 2012, 2030, 2048, 2066, 2084, 2102, 2120, 2138, 2156, 2174, 2192, 2210, 2228, 2246, 2264, 2282, 2300, 2318, 2336, 2354, 2372, 2390, 2408, 2426, 2444, 2462, 2480, 2498, 2516, 2534, 2552, 2570, 2588, 2606, 2624, 2642, 2660, 2678, 2696, 2714, 2732, 2750, 2768, 2786, 2804, 2822, 2840, 2858, 2876, 2894, 2912, 2930, 2948, 2966, 2984, 3002, 3020, 3038, 3056, 3074, 3092, 3110, 3128, 3146, 3164, 3182, 3200, 3218, 3236, 3254, 3272, 3290, 3308, 3326, 3344, 3362, 3380, 3398, 3416, 3434, 3452, 3470, 3488, 3506, 3524, 3542, 3560, 3578, 3596, 3614, 3632, 3650, 3668, 3686, 3704, 3722, 3740, 3758, 3776, 3794, 3812, 3830, 3848, 3866, 3884, 3902, 3920, 3938, 3956, 3974, 3992, 4010, 4028, 4046, 4064, 4082, 4100, 4118, 4136, 4154, 4172, 4190, 4208, 4226, 4244, 4262, 4280, 4298, 4316, 4334, 4352, 4370, 4388, 4406, 4424, 4442, 4460, 4478, 4496, 4514, 4532, 4550, 4568, 4586, 4604, 4622, 4640, 4658, 4676, 4694, 4712, 4730, 4748, 4766, 4784, 4802, 4820, 4838, 4856, 4874, 4892, 4910, 4928, 4946, 4964, 4982, 5000, 5018, 5036, 5054, 5072, 5090, 5108, 5126, 5144, 5162, 5180, 5198, 5216, 5234, 5252, 5270, 5288, 5306, 5324, 5342, 5360, 5378, 5396, 5414, 5432, 5450, 5468, 5486, 5504, 5522, 5540, 5558, 5576, 5594, 5612, 5630, 5648, 5666, 5684, 5702, 5720, 5738, 5756, 5774, 5792, 5810, 5828, 5846, 5864, 5882, 5900, 5918, 5936, 5954, 5972, 5990, 6008, 6026, 6044, 6062, 6080, 6098, 6116, 6134, 6152, 6170, 6188, 6206, 6224, 6242, 6260, 6278, 6296, 6314, 6332, 6350, 6368, 6386, 6404, 6422, 6440, 6458, 6476, 14, 32, 50, 68, 86, 104, 122, 140, 158, 176, 194, 212, 230, 248, 6464, 2, 20, 38, 56, 74, 92, 110, 128, 146, 164, 182, 200, 218, 236, 254, 272, 290, 308, 326, 344, 362, 380, 398, 416, 434, 452, 470, 488, 506, 524, 542, 560, 578, 596, 614, 632, 650, 668, 686, 704, 722, 740, 758, 776, 794, 812, 830, 848, 866, 884, 902, 920, 938, 956, 974, 992, 1010, 1028, 1046, 1064, 1082, 1100, 1118, 1136, 1154, 1172, 1190, 1208, 1226, 1244, 1262, 1280, 1298, 1316, 1334, 1352, 1370, 1388, 1406, 1424, 1442, 1460, 1478, 1496, 1514, 1532, 1550, 1568, 1586, 1604, 1622, 1640, 1658, 1676, 1694, 1712, 1730, 1748, 1766, 1784, 1802, 1820, 1838, 1856, 1874, 1892, 1910, 1928, 1946, 1964, 1982, 2000, 2018, 2036, 2054, 2072, 2090, 2108, 2126, 2144, 2162, 2180, 2198, 2216, 2234, 2252, 2270, 2288, 2306, 2324, 2342, 2360, 2378, 2396, 2414, 2432, 2450, 2468, 2486, 2504, 2522, 2540, 2558, 2576, 2594, 2612, 2630, 2648, 2666, 2684, 2702, 2720, 2738, 2756, 2774, 2792, 2810, 2828, 2846, 2864, 2882, 2900, 2918, 2936, 2954, 2972, 2990, 3008, 3026, 3044, 3062, 3080, 3098, 3116, 3134, 3152, 3170, 3188, 3206, 3224, 3242, 3260, 3278, 3296, 3314, 3332, 3350, 3368, 3386, 3404, 3422, 3440, 3458, 3476, 3494, 3512, 3530, 3548, 3566, 3584, 3602, 3620, 3638, 3656, 3674, 3692, 3710, 3728, 3746, 3764, 3782, 3800, 3818, 3836, 3854, 3872, 3890, 3908, 3926, 3944, 3962, 3980, 3998, 4016, 4034, 4052, 4070, 4088, 4106, 4124, 4142, 4160, 4178, 4196, 4214, 4232, 4250, 4268, 4286, 4304, 4322, 4340, 4358, 4376, 4394, 4412, 4430, 4448, 4466, 4484, 4502, 4520, 4538, 4556, 4574, 4592, 4610, 4628, 4646, 4664, 4682, 4700, 4718, 4736, 4754, 4772, 4790, 4808, 4826, 4844, 4862, 4880, 4898, 4916, 4934, 4952, 4970, 4988, 5006, 5024, 5042, 5060, 5078, 5096, 5114, 5132, 5150, 5168, 5186, 5204, 5222, 5240, 5258, 5276, 5294, 5312, 5330, 5348, 5366, 5384, 5402, 5420, 5438, 5456, 5474, 5492, 5510, 5528, 5546, 5564, 5582, 5600, 5618, 5636, 5654, 5672, 5690, 5708, 5726, 5744, 5762, 5780, 5798, 5816, 5834, 5852, 5870, 5888, 5906, 5924, 5942, 5960, 5978, 5996, 6014, 6032, 6050, 6068, 6086, 6104, 6122, 6140, 6158, 6176, 6194, 6212, 6230, 6248, 6266, 6284, 6302, 6320, 6338, 6356, 6374, 6392, 6410, 6428, 6446, 4285, 4303, 4321, 4339, 4357, 4375, 4393, 4411, 4429, 4447, 4465, 4483, 4501, 4519, 4537, 4555, 4573, 4591, 4609, 4627, 4645, 4663, 4681, 4699, 4717, 4735, 4753, 4771, 4789, 4807, 4825, 4843, 4861, 4879, 4897, 4915, 4933, 4951, 4969, 4987, 5005, 5023, 5041, 5059, 5077, 5095, 5113, 5131, 5149, 5167, 5185, 5203, 5221, 5239, 5257, 5275, 5293, 5311, 5329, 5347, 5365, 5383, 5401, 5419, 5437, 5455, 5473, 5491, 5509, 5527, 5545, 5563, 5581, 5599, 5617, 5635, 5653, 5671, 5689, 5707, 5725, 5743, 5761, 5779, 5797, 5815, 5833, 5851, 5869, 5887, 5905, 5923, 5941, 5959, 5977, 5995, 6013, 6031, 6049, 6067, 6085, 6103, 6121, 6139, 6157, 6175, 6193, 6211, 6229, 6247, 6265, 6283, 6301, 6319, 6337, 6355, 6373, 6391, 6409, 6427, 6445, 6463, 1, 19, 37, 55, 73, 91, 109, 127, 145, 163, 181, 199, 217, 235, 253, 271, 289, 307, 325, 343, 361, 379, 397, 415, 433, 451, 469, 487, 505, 523, 541, 559, 577, 595, 613, 631, 649, 667, 685, 703, 721, 739, 757, 775, 793, 811, 829, 847, 865, 883, 901, 919, 937, 955, 973, 991, 1009, 1027, 1045, 1063, 1081, 1099, 1117, 1135, 1153, 1171, 1189, 1207, 1225, 1243, 1261, 1279, 1297, 1315, 1333, 1351, 1369, 1387, 1405, 1423, 1441, 1459, 1477, 1495, 1513, 1531, 1549, 1567, 1585, 1603, 1621, 1639, 1657, 1675, 1693, 1711, 1729, 1747, 1765, 1783, 1801, 1819, 1837, 1855, 1873, 1891, 1909, 1927, 1945, 1963, 1981, 1999, 2017, 2035, 2053, 2071, 2089, 2107, 2125, 2143, 2161, 2179, 2197, 2215, 2233, 2251, 2269, 2287, 2305, 2323, 2341, 2359, 2377, 2395, 2413, 2431, 2449, 2467, 2485, 2503, 2521, 2539, 2557, 2575, 2593, 2611, 2629, 2647, 2665, 2683, 2701, 2719, 2737, 2755, 2773, 2791, 2809, 2827, 2845, 2863, 2881, 2899, 2917, 2935, 2953, 2971, 2989, 3007, 3025, 3043, 3061, 3079, 3097, 3115, 3133, 3151, 3169, 3187, 3205, 3223, 3241, 3259, 3277, 3295, 3313, 3331, 3349, 3367, 3385, 3403, 3421, 3439, 3457, 3475, 3493, 3511, 3529, 3547, 3565, 3583, 3601, 3619, 3637, 3655, 3673, 3691, 3709, 3727, 3745, 3763, 3781, 3799, 3817, 3835, 3853, 3871, 3889, 3907, 3925, 3943, 3961, 3979, 3997, 4015, 4033, 4051, 4069, 4087, 4105, 4123, 4141, 4159, 4177, 4195, 4213, 4231, 4249, 4267, 3808, 3826, 3844, 3862, 3880, 3898, 3916, 3934, 3952, 3970, 3988, 4006, 4024, 4042, 4060, 4078, 4096, 4114, 4132, 4150, 4168, 4186, 4204, 4222, 4240, 4258, 4276, 4294, 4312, 4330, 4348, 4366, 4384, 4402, 4420, 4438, 4456, 4474, 4492, 4510, 4528, 4546, 4564, 4582, 4600, 4618, 4636, 4654, 4672, 4690, 4708, 4726, 4744, 4762, 4780, 4798, 4816, 4834, 4852, 4870, 4888, 4906, 4924, 4942, 4960, 4978, 4996, 5014, 5032, 5050, 5068, 5086, 5104, 5122, 5140, 5158, 5176, 5194, 5212, 5230, 5248, 5266, 5284, 5302, 5320, 5338, 5356, 5374, 5392, 5410, 5428, 5446, 5464, 5482, 5500, 5518, 5536, 5554, 5572, 5590, 5608, 5626, 5644, 5662, 5680, 5698, 5716, 5734, 5752, 5770, 5788, 5806, 5824, 5842, 5860, 5878, 5896, 5914, 5932, 5950, 5968, 5986, 6004, 6022, 6040, 6058, 6076, 6094, 6112, 6130, 6148, 6166, 6184, 6202, 6220, 6238, 6256, 6274, 6292, 6310, 6328, 6346, 6364, 6382, 6400, 6418, 6436, 6454, 6472, 10, 28, 46, 64, 82, 100, 118, 136, 154, 172, 190, 208, 226, 244, 262, 280, 298, 316, 334, 352, 370, 388, 406, 424, 442, 460, 478, 496, 514, 532, 550, 568, 586, 604, 622, 640, 658, 676, 694, 712, 730, 748, 766, 784, 802, 820, 838, 856, 874, 892, 910, 928, 946, 964, 982, 1000, 1018, 1036, 1054, 1072, 1090, 1108, 1126, 1144, 1162, 1180, 1198, 1216, 1234, 1252, 1270, 1288, 1306, 1324, 1342, 1360, 1378, 1396, 1414, 1432, 1450, 1468, 1486, 1504, 1522, 1540, 1558, 1576, 1594, 1612, 1630, 1648, 1666, 1684, 1702, 1720, 1738, 1756, 1774, 1792, 1810, 1828, 1846, 1864, 1882, 1900, 1918, 1936, 1954, 1972, 1990, 2008, 2026, 2044, 2062, 2080, 2098, 2116, 2134, 2152, 2170, 2188, 2206, 2224, 2242, 2260, 2278, 2296, 2314, 2332, 2350, 2368, 2386, 2404, 2422, 2440, 2458, 2476, 2494, 2512, 2530, 2548, 2566, 2584, 2602, 2620, 2638, 2656, 2674, 2692, 2710, 2728, 2746, 2764, 2782, 2800, 2818, 2836, 2854, 2872, 2890, 2908, 2926, 2944, 2962, 2980, 2998, 3016, 3034, 3052, 3070, 3088, 3106, 3124, 3142, 3160, 3178, 3196, 3214, 3232, 3250, 3268, 3286, 3304, 3322, 3340, 3358, 3376, 3394, 3412, 3430, 3448, 3466, 3484, 3502, 3520, 3538, 3556, 3574, 3592, 3610, 3628, 3646, 3664, 3682, 3700, 3718, 3736, 3754, 3772, 3790, 4535, 4553, 4571, 4589, 4607, 4625, 4643, 4661, 4679, 4697, 4715, 4733, 4751, 4769, 4787, 4805, 4823, 4841, 4859, 4877, 4895, 4913, 4931, 4949, 4967, 4985, 5003, 5021, 5039, 5057, 5075, 5093, 5111, 5129, 5147, 5165, 5183, 5201, 5219, 5237, 5255, 5273, 5291, 5309, 5327, 5345, 5363, 5381, 5399, 5417, 5435, 5453, 5471, 5489, 5507, 5525, 5543, 5561, 5579, 5597, 5615, 5633, 5651, 5669, 5687, 5705, 5723, 5741, 5759, 5777, 5795, 5813, 5831, 5849, 5867, 5885, 5903, 5921, 5939, 5957, 5975, 5993, 6011, 6029, 6047, 6065, 6083, 6101, 6119, 6137, 6155, 6173, 6191, 6209, 6227, 6245, 6263, 6281, 6299, 6317, 6335, 6353, 6371, 6389, 6407, 6425, 6443, 6461, 6479, 17, 35, 53, 71, 89, 107, 125, 143, 161, 179, 197, 215, 233, 251, 269, 287, 305, 323, 341, 359, 377, 395, 413, 431, 449, 467, 485, 503, 521, 539, 557, 575, 593, 611, 629, 647, 665, 683, 701, 719, 737, 755, 773, 791, 809, 827, 845, 863, 881, 899, 917, 935, 953, 971, 989, 1007, 1025, 1043, 1061, 1079, 1097, 1115, 1133, 1151, 1169, 1187, 1205, 1223, 1241, 1259, 1277, 1295, 1313, 1331, 1349, 1367, 1385, 1403, 1421, 1439, 1457, 1475, 1493, 1511, 1529, 1547, 1565, 1583, 1601, 1619, 1637, 1655, 1673, 1691, 1709, 1727, 1745, 1763, 1781, 1799, 1817, 1835, 1853, 1871, 1889, 1907, 1925, 1943, 1961, 1979, 1997, 2015, 2033, 2051, 2069, 2087, 2105, 2123, 2141, 2159, 2177, 2195, 2213, 2231, 2249, 2267, 2285, 2303, 2321, 2339, 2357, 2375, 2393, 2411, 2429, 2447, 2465, 2483, 2501, 2519, 2537, 2555, 2573, 2591, 2609, 2627, 2645, 2663, 2681, 2699, 2717, 2735, 2753, 2771, 2789, 2807, 2825, 2843, 2861, 2879, 2897, 2915, 2933, 2951, 2969, 2987, 3005, 3023, 3041, 3059, 3077, 3095, 3113, 3131, 3149, 3167, 3185, 3203, 3221, 3239, 3257, 3275, 3293, 3311, 3329, 3347, 3365, 3383, 3401, 3419, 3437, 3455, 3473, 3491, 3509, 3527, 3545, 3563, 3581, 3599, 3617, 3635, 3653, 3671, 3689, 3707, 3725, 3743, 3761, 3779, 3797, 3815, 3833, 3851, 3869, 3887, 3905, 3923, 3941, 3959, 3977, 3995, 4013, 4031, 4049, 4067, 4085, 4103, 4121, 4139, 4157, 4175, 4193, 4211, 4229, 4247, 4265, 4283, 4301, 4319, 4337, 4355, 4373, 4391, 4409, 4427, 4445, 4463, 4481, 4499, 4517, 876, 894, 912, 930, 948, 966, 984, 1002, 1020, 1038, 1056, 1074, 1092, 1110, 1128, 1146, 1164, 1182, 1200, 1218, 1236, 1254, 1272, 1290, 1308, 1326, 1344, 1362, 1380, 1398, 1416, 1434, 1452, 1470, 1488, 1506, 1524, 1542, 1560, 1578, 1596, 1614, 1632, 1650, 1668, 1686, 1704, 1722, 1740, 1758, 1776, 1794, 1812, 1830, 1848, 1866, 1884, 1902, 1920, 1938, 1956, 1974, 1992, 2010, 2028, 2046, 2064, 2082, 2100, 2118, 2136, 2154, 2172, 2190, 2208, 2226, 2244, 2262, 2280, 2298, 2316, 2334, 2352, 2370, 2388, 2406, 2424, 2442, 2460, 2478, 2496, 2514, 2532, 2550, 2568, 2586, 2604, 2622, 2640, 2658, 2676, 2694, 2712, 2730, 2748, 2766, 2784, 2802, 2820, 2838, 2856, 2874, 2892, 2910, 2928, 2946, 2964, 2982, 3000, 3018, 3036, 3054, 3072, 3090, 3108, 3126, 3144, 3162, 3180, 3198, 3216, 3234, 3252, 3270, 3288, 3306, 3324, 3342, 3360, 3378, 3396, 3414, 3432, 3450, 3468, 3486, 3504, 3522, 3540, 3558, 3576, 3594, 3612, 3630, 3648, 3666, 3684, 3702, 3720, 3738, 3756, 3774, 3792, 3810, 3828, 3846, 3864, 3882, 3900, 3918, 3936, 3954, 3972, 3990, 4008, 4026, 4044, 4062, 4080, 4098, 4116, 4134, 4152, 4170, 4188, 4206, 4224, 4242, 4260, 4278, 4296, 4314, 4332, 4350, 4368, 4386, 4404, 4422, 4440, 4458, 4476, 4494, 4512, 4530, 4548, 4566, 4584, 4602, 4620, 4638, 4656, 4674, 4692, 4710, 4728, 4746, 4764, 4782, 4800, 4818, 4836, 4854, 4872, 4890, 4908, 4926, 4944, 4962, 4980, 4998, 5016, 5034, 5052, 5070, 5088, 5106, 5124, 5142, 5160, 5178, 5196, 5214, 5232, 5250, 5268, 5286, 5304, 5322, 5340, 5358, 5376, 5394, 5412, 5430, 5448, 5466, 5484, 5502, 5520, 5538, 5556, 5574, 5592, 5610, 5628, 5646, 5664, 5682, 5700, 5718, 5736, 5754, 5772, 5790, 5808, 5826, 5844, 5862, 5880, 5898, 5916, 5934, 5952, 5970, 5988, 6006, 6024, 6042, 6060, 6078, 6096, 6114, 6132, 6150, 6168, 6186, 6204, 6222, 6240, 6258, 6276, 6294, 6312, 6330, 6348, 6366, 6384, 6402, 6420, 6438, 6456, 6474, 12, 30, 48, 66, 84, 102, 120, 138, 156, 174, 192, 210, 228, 246, 264, 282, 300, 318, 336, 354, 372, 390, 408, 426, 444, 462, 480, 498, 516, 534, 552, 570, 588, 606, 624, 642, 660, 678, 696, 714, 732, 750, 768, 786, 804, 822, 840, 858, 1849, 1867, 1885, 1903, 1921, 1939, 1957, 1975, 1993, 2011, 2029, 2047, 2065, 2083, 2101, 2119, 2137, 2155, 2173, 2191, 2209, 2227, 2245, 2263, 2281, 2299, 2317, 2335, 2353, 2371, 2389, 2407, 2425, 2443, 2461, 2479, 2497, 2515, 2533, 2551, 2569, 2587, 2605, 2623, 2641, 2659, 2677, 2695, 2713, 2731, 2749, 2767, 2785, 2803, 2821, 2839, 2857, 2875, 2893, 2911, 2929, 2947, 2965, 2983, 3001, 3019, 3037, 3055, 3073, 3091, 3109, 3127, 3145, 3163, 3181, 3199, 3217, 3235, 3253, 3271, 3289, 3307, 3325, 3343, 3361, 3379, 3397, 3415, 3433, 3451, 3469, 3487, 3505, 3523, 3541, 3559, 3577, 3595, 3613, 3631, 3649, 3667, 3685, 3703, 3721, 3739, 3757, 3775, 3793, 3811, 3829, 3847, 3865, 3883, 3901, 3919, 3937, 3955, 3973, 3991, 4009, 4027, 4045, 4063, 4081, 4099, 4117, 4135, 4153, 4171, 4189, 4207, 4225, 4243, 4261, 4279, 4297, 4315, 4333, 4351, 4369, 4387, 4405, 4423, 4441, 4459, 4477, 4495, 4513, 4531, 4549, 4567, 4585, 4603, 4621, 4639, 4657, 4675, 4693, 4711, 4729, 4747, 4765, 4783, 4801, 4819, 4837, 4855, 4873, 4891, 4909, 4927, 4945, 4963, 4981, 4999, 5017, 5035, 5053, 5071, 5089, 5107, 5125, 5143, 5161, 5179, 5197, 5215, 5233, 5251, 5269, 5287, 5305, 5323, 5341, 5359, 5377, 5395, 5413, 5431, 5449, 5467, 5485, 5503, 5521, 5539, 5557, 5575, 5593, 5611, 5629, 5647, 5665, 5683, 5701, 5719, 5737, 5755, 5773, 5791, 5809, 5827, 5845, 5863, 5881, 5899, 5917, 5935, 5953, 5971, 5989, 6007, 6025, 6043, 6061, 6079, 6097, 6115, 6133, 6151, 6169, 6187, 6205, 6223, 6241, 6259, 6277, 6295, 6313, 6331, 6349, 6367, 6385, 6403, 6421, 6439, 6457, 6475, 13, 31, 49, 67, 85, 103, 121, 139, 157, 175, 193, 211, 229, 247, 265, 283, 301, 319, 337, 355, 373, 391, 409, 427, 445, 463, 481, 499, 517, 535, 553, 571, 589, 607, 625, 643, 661, 679, 697, 715, 733, 751, 769, 787, 805, 823, 841, 859, 877, 895, 913, 931, 949, 967, 985, 1003, 1021, 1039, 1057, 1075, 1093, 1111, 1129, 1147, 1165, 1183, 1201, 1219, 1237, 1255, 1273, 1291, 1309, 1327, 1345, 1363, 1381, 1399, 1417, 1435, 1453, 1471, 1489, 1507, 1525, 1543, 1561, 1579, 1597, 1615, 1633, 1651, 1669, 1687, 1705, 1723, 1741, 1759, 1777, 1795, 1813, 1831, 885, 903, 921, 939, 957, 975, 993, 1011, 1029, 1047, 1065, 1083, 1101, 1119, 1137, 1155, 1173, 1191, 1209, 1227, 1245, 1263, 1281, 1299, 1317, 1335, 1353, 1371, 1389, 1407, 1425, 1443, 1461, 1479, 1497, 1515, 1533, 1551, 1569, 1587, 1605, 1623, 1641, 1659, 1677, 1695, 1713, 1731, 1749, 1767, 1785, 1803, 1821, 1839, 1857, 1875, 1893, 1911, 1929, 1947, 1965, 1983, 2001, 2019, 2037, 2055, 2073, 2091, 2109, 2127, 2145, 2163, 2181, 2199, 2217, 2235, 2253, 2271, 2289, 2307, 2325, 2343, 2361, 2379, 2397, 2415, 2433, 2451, 2469, 2487, 2505, 2523, 2541, 2559, 2577, 2595, 2613, 2631, 2649, 2667, 2685, 2703, 2721, 2739, 2757, 2775, 2793, 2811, 2829, 2847, 2865, 2883, 2901, 2919, 2937, 2955, 2973, 2991, 3009, 3027, 3045, 3063, 3081, 3099, 3117, 3135, 3153, 3171, 3189, 3207, 3225, 3243, 3261, 3279, 3297, 3315, 3333, 3351, 3369, 3387, 3405, 3423, 3441, 3459, 3477, 3495, 3513, 3531, 3549, 3567, 3585, 3603, 3621, 3639, 3657, 3675, 3693, 3711, 3729, 3747, 3765, 3783, 3801, 3819, 3837, 3855, 3873, 3891, 3909, 3927, 3945, 3963, 3981, 3999, 4017, 4035, 4053, 4071, 4089, 4107, 4125, 4143, 4161, 4179, 4197, 4215, 4233, 4251, 4269, 4287, 4305, 4323, 4341, 4359, 4377, 4395, 4413, 4431, 4449, 4467, 4485, 4503, 4521, 4539, 4557, 4575, 4593, 4611, 4629, 4647, 4665, 4683, 4701, 4719, 4737, 4755, 4773, 4791, 4809, 4827, 4845, 4863, 4881, 4899, 4917, 4935, 4953, 4971, 4989, 5007, 5025, 5043, 5061, 5079, 5097, 5115, 5133, 5151, 5169, 5187, 5205, 5223, 5241, 5259, 5277, 5295, 5313, 5331, 5349, 5367, 5385, 5403, 5421, 5439, 5457, 5475, 5493, 5511, 5529, 5547, 5565, 5583, 5601, 5619, 5637, 5655, 5673, 5691, 5709, 5727, 5745, 5763, 5781, 5799, 5817, 5835, 5853, 5871, 5889, 5907, 5925, 5943, 5961, 5979, 5997, 6015, 6033, 6051, 6069, 6087, 6105, 6123, 6141, 6159, 6177, 6195, 6213, 6231, 6249, 6267, 6285, 6303, 6321, 6339, 6357, 6375, 6393, 6411, 6429, 6447, 6465, 3, 21, 39, 57, 75, 93, 111, 129, 147, 165, 183, 201, 219, 237, 255, 273, 291, 309, 327, 345, 363, 381, 399, 417, 435, 453, 471, 489, 507, 525, 543, 561, 579, 597, 615, 633, 651, 669, 687, 705, 723, 741, 759, 777, 795, 813, 831, 849, 867, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2841, 2859, 2877, 2895, 2913, 2931, 2949, 2967, 2985, 3003, 3021, 3039, 3057, 3075, 3093, 3111, 3129, 3147, 3165, 3183, 3201, 3219, 3237, 3255, 3273, 3291, 3309, 3327, 3345, 3363, 3381, 3399, 3417, 3435, 3453, 3471, 3489, 3507, 3525, 3543, 3561, 3579, 3597, 3615, 3633, 3651, 3669, 3687, 3705, 3723, 3741, 3759, 3777, 3795, 3813, 3831, 3849, 3867, 3885, 3903, 3921, 3939, 3957, 3975, 3993, 4011, 4029, 4047, 4065, 4083, 4101, 4119, 4137, 4155, 4173, 4191, 4209, 4227, 4245, 4263, 4281, 4299, 4317, 4335, 4353, 4371, 4389, 4407, 4425, 4443, 4461, 4479, 4497, 4515, 4533, 4551, 4569, 4587, 4605, 4623, 4641, 4659, 4677, 4695, 4713, 4731, 4749, 4767, 4785, 4803, 4821, 4839, 4857, 4875, 4893, 4911, 4929, 4947, 4965, 4983, 5001, 5019, 5037, 5055, 5073, 5091, 5109, 5127, 5145, 5163, 5181, 5199, 5217, 5235, 5253, 5271, 5289, 5307, 5325, 5343, 5361, 5379, 5397, 5415, 5433, 5451, 5469, 5487, 5505, 5523, 5541, 5559, 5577, 5595, 5613, 5631, 5649, 5667, 5685, 5703, 5721, 5739, 5757, 5775, 5793, 5811, 5829, 5847, 5865, 5883, 5901, 5919, 5937, 5955, 5973, 5991, 6009, 6027, 6045, 6063, 6081, 6099, 6117, 6135, 6153, 6171, 6189, 6207, 6225, 6243, 6261, 6279, 6297, 6315, 6333, 6351, 6369, 6387, 6405, 6423, 6441, 6459, 6477, 15, 33, 51, 69, 87, 105, 123, 141, 159, 177, 195, 213, 231, 249, 267, 285, 303, 321, 339, 357, 375, 393, 411, 429, 447, 465, 483, 501, 519, 537, 555, 573, 591, 609, 627, 645, 663, 681, 699, 717, 735, 753, 771, 789, 807, 825, 843, 861, 879, 897, 915, 933, 951, 969, 987, 1005, 1023, 1041, 1059, 1077, 1095, 1113, 1131, 1149, 1167, 1185, 1203, 1221, 1239, 1257, 1275, 1293, 1311, 1329, 1347, 1365, 1383, 1401, 1419, 1437, 1455, 1473, 1491, 1509, 1527, 1545, 1563, 1581, 1599, 1617, 1635, 1653, 1671, 1689, 1707, 1725, 1743, 1761, 1779, 1797, 1815, 1833, 1851, 1869, 1887, 1905, 1923, 1941, 1959, 1977, 1995, 2013, 2031, 2049, 2067, 2085, 2103, 2121, 2139, 2157, 2175, 2193, 2211, 2229, 2247, 2265, 2283, 2301, 2319, 2337, 2355, 2373, 2391, 2409, 2427, 2445, 2463, 2481, 2499, 2517, 2535, 2553, 2571, 2589, 2607, 2625, 2643, 2661, 2679, 2697, 2715, 2733, 2751, 2769, 2787, 2805, 2823, 5602, 5620, 5638, 5656, 5674, 5692, 5710, 5728, 5746, 5764, 5782, 5800, 5818, 5836, 5854, 5872, 5890, 5908, 5926, 5944, 5962, 5980, 5998, 6016, 6034, 6052, 6070, 6088, 6106, 6124, 6142, 6160, 6178, 6196, 6214, 6232, 6250, 6268, 6286, 6304, 6322, 6340, 6358, 6376, 6394, 6412, 6430, 6448, 6466, 4, 22, 40, 58, 76, 94, 112, 130, 148, 166, 184, 202, 220, 238, 256, 274, 292, 310, 328, 346, 364, 382, 400, 418, 436, 454, 472, 490, 508, 526, 544, 562, 580, 598, 616, 634, 652, 670, 688, 706, 724, 742, 760, 778, 796, 814, 832, 850, 868, 886, 904, 922, 940, 958, 976, 994, 1012, 1030, 1048, 1066, 1084, 1102, 1120, 1138, 1156, 1174, 1192, 1210, 1228, 1246, 1264, 1282, 1300, 1318, 1336, 1354, 1372, 1390, 1408, 1426, 1444, 1462, 1480, 1498, 1516, 1534, 1552, 1570, 1588, 1606, 1624, 1642, 1660, 1678, 1696, 1714, 1732, 1750, 1768, 1786, 1804, 1822, 1840, 1858, 1876, 1894, 1912, 1930, 1948, 1966, 1984, 2002, 2020, 2038, 2056, 2074, 2092, 2110, 2128, 2146, 2164, 2182, 2200, 2218, 2236, 2254, 2272, 2290, 2308, 2326, 2344, 2362, 2380, 2398, 2416, 2434, 2452, 2470, 2488, 2506, 2524, 2542, 2560, 2578, 2596, 2614, 2632, 2650, 2668, 2686, 2704, 2722, 2740, 2758, 2776, 2794, 2812, 2830, 2848, 2866, 2884, 2902, 2920, 2938, 2956, 2974, 2992, 3010, 3028, 3046, 3064, 3082, 3100, 3118, 3136, 3154, 3172, 3190, 3208, 3226, 3244, 3262, 3280, 3298, 3316, 3334, 3352, 3370, 3388, 3406, 3424, 3442, 3460, 3478, 3496, 3514, 3532, 3550, 3568, 3586, 3604, 3622, 3640, 3658, 3676, 3694, 3712, 3730, 3748, 3766, 3784, 3802, 3820, 3838, 3856, 3874, 3892, 3910, 3928, 3946, 3964, 3982, 4000, 4018, 4036, 4054, 4072, 4090, 4108, 4126, 4144, 4162, 4180, 4198, 4216, 4234, 4252, 4270, 4288, 4306, 4324, 4342, 4360, 4378, 4396, 4414, 4432, 4450, 4468, 4486, 4504, 4522, 4540, 4558, 4576, 4594, 4612, 4630, 4648, 4666, 4684, 4702, 4720, 4738, 4756, 4774, 4792, 4810, 4828, 4846, 4864, 4882, 4900, 4918, 4936, 4954, 4972, 4990, 5008, 5026, 5044, 5062, 5080, 5098, 5116, 5134, 5152, 5170, 5188, 5206, 5224, 5242, 5260, 5278, 5296, 5314, 5332, 5350, 5368, 5386, 5404, 5422, 5440, 5458, 5476, 5494, 5512, 5530, 5548, 5566, 5584, 5299, 5317, 5335, 5353, 5371, 5389, 5407, 5425, 5443, 5461, 5479, 5497, 5515, 5533, 5551, 5569, 5587, 5605, 5623, 5641, 5659, 5677, 5695, 5713, 5731, 5749, 5767, 5785, 5803, 5821, 5839, 5857, 5875, 5893, 5911, 5929, 5947, 5965, 5983, 6001, 6019, 6037, 6055, 6073, 6091, 6109, 6127, 6145, 6163, 6181, 6199, 6217, 6235, 6253, 6271, 6289, 6307, 6325, 6343, 6361, 6379, 6397, 6415, 6433, 6451, 6469, 7, 25, 43, 61, 79, 97, 115, 133, 151, 169, 187, 205, 223, 241, 259, 277, 295, 313, 331, 349, 367, 385, 403, 421, 439, 457, 475, 493, 511, 529, 547, 565, 583, 601, 619, 637, 655, 673, 691, 709, 727, 745, 763, 781, 799, 817, 835, 853, 871, 889, 907, 925, 943, 961, 979, 997, 1015, 1033, 1051, 1069, 1087, 1105, 1123, 1141, 1159, 1177, 1195, 1213, 1231, 1249, 1267, 1285, 1303, 1321, 1339, 1357, 1375, 1393, 1411, 1429, 1447, 1465, 1483, 1501, 1519, 1537, 1555, 1573, 1591, 1609, 1627, 1645, 1663, 1681, 1699, 1717, 1735, 1753, 1771, 1789, 1807, 1825, 1843, 1861, 1879, 1897, 1915, 1933, 1951, 1969, 1987, 2005, 2023, 2041, 2059, 2077, 2095, 2113, 2131, 2149, 2167, 2185, 2203, 2221, 2239, 2257, 2275, 2293, 2311, 2329, 2347, 2365, 2383, 2401, 2419, 2437, 2455, 2473, 2491, 2509, 2527, 2545, 2563, 2581, 2599, 2617, 2635, 2653, 2671, 2689, 2707, 2725, 2743, 2761, 2779, 2797, 2815, 2833, 2851, 2869, 2887, 2905, 2923, 2941, 2959, 2977, 2995, 3013, 3031, 3049, 3067, 3085, 3103, 3121, 3139, 3157, 3175, 3193, 3211, 3229, 3247, 3265, 3283, 3301, 3319, 3337, 3355, 3373, 3391, 3409, 3427, 3445, 3463, 3481, 3499, 3517, 3535, 3553, 3571, 3589, 3607, 3625, 3643, 3661, 3679, 3697, 3715, 3733, 3751, 3769, 3787, 3805, 3823, 3841, 3859, 3877, 3895, 3913, 3931, 3949, 3967, 3985, 4003, 4021, 4039, 4057, 4075, 4093, 4111, 4129, 4147, 4165, 4183, 4201, 4219, 4237, 4255, 4273, 4291, 4309, 4327, 4345, 4363, 4381, 4399, 4417, 4435, 4453, 4471, 4489, 4507, 4525, 4543, 4561, 4579, 4597, 4615, 4633, 4651, 4669, 4687, 4705, 4723, 4741, 4759, 4777, 4795, 4813, 4831, 4849, 4867, 4885, 4903, 4921, 4939, 4957, 4975, 4993, 5011, 5029, 5047, 5065, 5083, 5101, 5119, 5137, 5155, 5173, 5191, 5209, 5227, 5245, 5263, 5281, 2442, 2460, 2478, 2496, 2514, 2532, 2550, 2568, 2586, 2604, 2622, 2640, 2658, 2676, 2694, 2712, 2730, 2748, 2766, 2784, 2802, 2820, 2838, 2856, 2874, 2892, 2910, 2928, 2946, 2964, 2982, 3000, 3018, 3036, 3054, 3072, 3090, 3108, 3126, 3144, 3162, 3180, 3198, 3216, 3234, 3252, 3270, 3288, 3306, 3324, 3342, 3360, 3378, 3396, 3414, 3432, 3450, 3468, 3486, 3504, 3522, 3540, 3558, 3576, 3594, 3612, 3630, 3648, 3666, 3684, 3702, 3720, 3738, 3756, 3774, 3792, 3810, 3828, 3846, 3864, 3882, 3900, 3918, 3936, 3954, 3972, 3990, 4008, 4026, 4044, 4062, 4080, 4098, 4116, 4134, 4152, 4170, 4188, 4206, 4224, 4242, 4260, 4278, 4296, 4314, 4332, 4350, 4368, 4386, 4404, 4422, 4440, 4458, 4476, 4494, 4512, 4530, 4548, 4566, 4584, 4602, 4620, 4638, 4656, 4674, 4692, 4710, 4728, 4746, 4764, 4782, 4800, 4818, 4836, 4854, 4872, 4890, 4908, 4926, 4944, 4962, 4980, 4998, 5016, 5034, 5052, 5070, 5088, 5106, 5124, 5142, 5160, 5178, 5196, 5214, 5232, 5250, 5268, 5286, 5304, 5322, 5340, 5358, 5376, 5394, 5412, 5430, 5448, 5466, 5484, 5502, 5520, 5538, 5556, 5574, 5592, 5610, 5628, 5646, 5664, 5682, 5700, 5718, 5736, 5754, 5772, 5790, 5808, 5826, 5844, 5862, 5880, 5898, 5916, 5934, 5952, 5970, 5988, 6006, 6024, 6042, 6060, 6078, 6096, 6114, 6132, 6150, 6168, 6186, 6204, 6222, 6240, 6258, 6276, 6294, 6312, 6330, 6348, 6366, 6384, 6402, 6420, 6438, 6456, 6474, 12, 30, 48, 66, 84, 102, 120, 138, 156, 174, 192, 210, 228, 246, 264, 282, 300, 318, 336, 354, 372, 390, 408, 426, 444, 462, 480, 498, 516, 534, 552, 570, 588, 606, 624, 642, 660, 678, 696, 714, 732, 750, 768, 786, 804, 822, 840, 858, 876, 894, 912, 930, 948, 966, 984, 1002, 1020, 1038, 1056, 1074, 1092, 1110, 1128, 1146, 1164, 1182, 1200, 1218, 1236, 1254, 1272, 1290, 1308, 1326, 1344, 1362, 1380, 1398, 1416, 1434, 1452, 1470, 1488, 1506, 1524, 1542, 1560, 1578, 1596, 1614, 1632, 1650, 1668, 1686, 1704, 1722, 1740, 1758, 1776, 1794, 1812, 1830, 1848, 1866, 1884, 1902, 1920, 1938, 1956, 1974, 1992, 2010, 2028, 2046, 2064, 2082, 2100, 2118, 2136, 2154, 2172, 2190, 2208, 2226, 2244, 2262, 2280, 2298, 2316, 2334, 2352, 2370, 2388, 2406, 2424, 1514, 1532, 1550, 1568, 1586, 1604, 1622, 1640, 1658, 1676, 1694, 1712, 1730, 1748, 1766, 1784, 1802, 1820, 1838, 1856, 1874, 1892, 1910, 1928, 1946, 1964, 1982, 2000, 2018, 2036, 2054, 2072, 2090, 2108, 2126, 2144, 2162, 2180, 2198, 2216, 2234, 2252, 2270, 2288, 2306, 2324, 2342, 2360, 2378, 2396, 2414, 2432, 2450, 2468, 2486, 2504, 2522, 2540, 2558, 2576, 2594, 2612, 2630, 2648, 2666, 2684, 2702, 2720, 2738, 2756, 2774, 2792, 2810, 2828, 2846, 2864, 2882, 2900, 2918, 2936, 2954, 2972, 2990, 3008, 3026, 3044, 3062, 3080, 3098, 3116, 3134, 3152, 3170, 3188, 3206, 3224, 3242, 3260, 3278, 3296, 3314, 3332, 3350, 3368, 3386, 3404, 3422, 3440, 3458, 3476, 3494, 3512, 3530, 3548, 3566, 3584, 3602, 3620, 3638, 3656, 3674, 3692, 3710, 3728, 3746, 3764, 3782, 3800, 3818, 3836, 3854, 3872, 3890, 3908, 3926, 3944, 3962, 3980, 3998, 4016, 4034, 4052, 4070, 4088, 4106, 4124, 4142, 4160, 4178, 4196, 4214, 4232, 4250, 4268, 4286, 4304, 4322, 4340, 4358, 4376, 4394, 4412, 4430, 4448, 4466, 4484, 4502, 4520, 4538, 4556, 4574, 4592, 4610, 4628, 4646, 4664, 4682, 4700, 4718, 4736, 4754, 4772, 4790, 4808, 4826, 4844, 4862, 4880, 4898, 4916, 4934, 4952, 4970, 4988, 5006, 5024, 5042, 5060, 5078, 5096, 5114, 5132, 5150, 5168, 5186, 5204, 5222, 5240, 5258, 5276, 5294, 5312, 5330, 5348, 5366, 5384, 5402, 5420, 5438, 5456, 5474, 5492, 5510, 5528, 5546, 5564, 5582, 5600, 5618, 5636, 5654, 5672, 5690, 5708, 5726, 5744, 5762, 5780, 5798, 5816, 5834, 5852, 5870, 5888, 5906, 5924, 5942, 5960, 5978, 5996, 6014, 6032, 6050, 6068, 6086, 6104, 6122, 6140, 6158, 6176, 6194, 6212, 6230, 6248, 6266, 6284, 6302, 6320, 6338, 6356, 6374, 6392, 6410, 6428, 6446, 6464, 2, 20, 38, 56, 74, 92, 110, 128, 146, 164, 182, 200, 218, 236, 254, 272, 290, 308, 326, 344, 362, 380, 398, 416, 434, 452, 470, 488, 506, 524, 542, 560, 578, 596, 614, 632, 650, 668, 686, 704, 722, 740, 758, 776, 794, 812, 830, 848, 866, 884, 902, 920, 938, 956, 974, 992, 1010, 1028, 1046, 1064, 1082, 1100, 1118, 1136, 1154, 1172, 1190, 1208, 1226, 1244, 1262, 1280, 1298, 1316, 1334, 1352, 1370, 1388, 1406, 1424, 1442, 1460, 1478, 1496, 5410, 5428, 5446, 5464, 5482, 5500, 5518, 5536, 5554, 5572, 5590, 5608, 5626, 5644, 5662, 5680, 5698, 5716, 5734, 5752, 5770, 5788, 5806, 5824, 5842, 5860, 5878, 5896, 5914, 5932, 5950, 5968, 5986, 6004, 6022, 6040, 6058, 6076, 6094, 6112, 6130, 6148, 6166, 6184, 6202, 6220, 6238, 6256, 6274, 6292, 6310, 6328, 6346, 6364, 6382, 6400, 6418, 6436, 6454, 6472, 10, 28, 46, 64, 82, 100, 118, 136, 154, 172, 190, 208, 226, 244, 262, 280, 298, 316, 334, 352, 370, 388, 406, 424, 442, 460, 478, 496, 514, 532, 550, 568, 586, 604, 622, 640, 658, 676, 694, 712, 730, 748, 766, 784, 802, 820, 838, 856, 874, 892, 910, 928, 946, 964, 982, 1000, 1018, 1036, 1054, 1072, 1090, 1108, 1126, 1144, 1162, 1180, 1198, 1216, 1234, 1252, 1270, 1288, 1306, 1324, 1342, 1360, 1378, 1396, 1414, 1432, 1450, 1468, 1486, 1504, 1522, 1540, 1558, 1576, 1594, 1612, 1630, 1648, 1666, 1684, 1702, 1720, 1738, 1756, 1774, 1792, 1810, 1828, 1846, 1864, 1882, 1900, 1918, 1936, 1954, 1972, 1990, 2008, 2026, 2044, 2062, 2080, 2098, 2116, 2134, 2152, 2170, 2188, 2206, 2224, 2242, 2260, 2278, 2296, 2314, 2332, 2350, 2368, 2386, 2404, 2422, 2440, 2458, 2476, 2494, 2512, 2530, 2548, 2566, 2584, 2602, 2620, 2638, 2656, 2674, 2692, 2710, 2728, 2746, 2764, 2782, 2800, 2818, 2836, 2854, 2872, 2890, 2908, 2926, 2944, 2962, 2980, 2998, 3016, 3034, 3052, 3070, 3088, 3106, 3124, 3142, 3160, 3178, 3196, 3214, 3232, 3250, 3268, 3286, 3304, 3322, 3340, 3358, 3376, 3394, 3412, 3430, 3448, 3466, 3484, 3502, 3520, 3538, 3556, 3574, 3592, 3610, 3628, 3646, 3664, 3682, 3700, 3718, 3736, 3754, 3772, 3790, 3808, 3826, 3844, 3862, 3880, 3898, 3916, 3934, 3952, 3970, 3988, 4006, 4024, 4042, 4060, 4078, 4096, 4114, 4132, 4150, 4168, 4186, 4204, 4222, 4240, 4258, 4276, 4294, 4312, 4330, 4348, 4366, 4384, 4402, 4420, 4438, 4456, 4474, 4492, 4510, 4528, 4546, 4564, 4582, 4600, 4618, 4636, 4654, 4672, 4690, 4708, 4726, 4744, 4762, 4780, 4798, 4816, 4834, 4852, 4870, 4888, 4906, 4924, 4942, 4960, 4978, 4996, 5014, 5032, 5050, 5068, 5086, 5104, 5122, 5140, 5158, 5176, 5194, 5212, 5230, 5248, 5266, 5284, 5302, 5320, 5338, 5356, 5374, 5392, 2312, 2330, 2348, 2366, 2384, 2402, 2420, 2438, 2456, 2474, 2492, 2510, 2528, 2546, 2564, 2582, 2600, 2618, 2636, 2654, 2672, 2690, 2708, 2726, 2744, 2762, 2780, 2798, 2816, 2834, 2852, 2870, 2888, 2906, 2924, 2942, 2960, 2978, 2996, 3014, 3032, 3050, 3068, 3086, 3104, 3122, 3140, 3158, 3176, 3194, 3212, 3230, 3248, 3266, 3284, 3302, 3320, 3338, 3356, 3374, 3392, 3410, 3428, 3446, 3464, 3482, 3500, 3518, 3536, 3554, 3572, 3590, 3608, 3626, 3644, 3662, 3680, 3698, 3716, 3734, 3752, 3770, 3788, 3806, 3824, 3842, 3860, 3878, 3896, 3914, 3932, 3950, 3968, 3986, 4004, 4022, 4040, 4058, 4076, 4094, 4112, 4130, 4148, 4166, 4184, 4202, 4220, 4238, 4256, 4274, 4292, 4310, 4328, 4346, 4364, 4382, 4400, 4418, 4436, 4454, 4472, 4490, 4508, 4526, 4544, 4562, 4580, 4598, 4616, 4634, 4652, 4670, 4688, 4706, 4724, 4742, 4760, 4778, 4796, 4814, 4832, 4850, 4868, 4886, 4904, 4922, 4940, 4958, 4976, 4994, 5012, 5030, 5048, 5066, 5084, 5102, 5120, 5138, 5156, 5174, 5192, 5210, 5228, 5246, 5264, 5282, 5300, 5318, 5336, 5354, 5372, 5390, 5408, 5426, 5444, 5462, 5480, 5498, 5516, 5534, 5552, 5570, 5588, 5606, 5624, 5642, 5660, 5678, 5696, 5714, 5732, 5750, 5768, 5786, 5804, 5822, 5840, 5858, 5876, 5894, 5912, 5930, 5948, 5966, 5984, 6002, 6020, 6038, 6056, 6074, 6092, 6110, 6128, 6146, 6164, 6182, 6200, 6218, 6236, 6254, 6272, 6290, 6308, 6326, 6344, 6362, 6380, 6398, 6416, 6434, 6452, 6470, 8, 26, 44, 62, 80, 98, 116, 134, 152, 170, 188, 206, 224, 242, 260, 278, 296, 314, 332, 350, 368, 386, 404, 422, 440, 458, 476, 494, 512, 530, 548, 566, 584, 602, 620, 638, 656, 674, 692, 710, 728, 746, 764, 782, 800, 818, 836, 854, 872, 890, 908, 926, 944, 962, 980, 998, 1016, 1034, 1052, 1070, 1088, 1106, 1124, 1142, 1160, 1178, 1196, 1214, 1232, 1250, 1268, 1286, 1304, 1322, 1340, 1358, 1376, 1394, 1412, 1430, 1448, 1466, 1484, 1502, 1520, 1538, 1556, 1574, 1592, 1610, 1628, 1646, 1664, 1682, 1700, 1718, 1736, 1754, 1772, 1790, 1808, 1826, 1844, 1862, 1880, 1898, 1916, 1934, 1952, 1970, 1988, 2006, 2024, 2042, 2060, 2078, 2096, 2114, 2132, 2150, 2168, 2186, 2204, 2222, 2240, 2258, 2276, 2294, 1122, 1140, 1158, 1176, 1194, 1212, 1230, 1248, 1266, 1284, 1302, 1320, 1338, 1356, 1374, 1392, 1410, 1428, 1446, 1464, 1482, 1500, 1518, 1536, 1554, 1572, 1590, 1608, 1626, 1644, 1662, 1680, 1698, 1716, 1734, 1752, 1770, 1788, 1806, 1824, 1842, 1860, 1878, 1896, 1914, 1932, 1950, 1968, 1986, 2004, 2022, 2040, 2058, 2076, 2094, 2112, 2130, 2148, 2166, 2184, 2202, 2220, 2238, 2256, 2274, 2292, 2310, 2328, 2346, 2364, 2382, 2400, 2418, 2436, 2454, 2472, 2490, 2508, 2526, 2544, 2562, 2580, 2598, 2616, 2634, 2652, 2670, 2688, 2706, 2724, 2742, 2760, 2778, 2796, 2814, 2832, 2850, 2868, 2886, 2904, 2922, 2940, 2958, 2976, 2994, 3012, 3030, 3048, 3066, 3084, 3102, 3120, 3138, 3156, 3174, 3192, 3210, 3228, 3246, 3264, 3282, 3300, 3318, 3336, 3354, 3372, 3390, 3408, 3426, 3444, 3462, 3480, 3498, 3516, 3534, 3552, 3570, 3588, 3606, 3624, 3642, 3660, 3678, 3696, 3714, 3732, 3750, 3768, 3786, 3804, 3822, 3840, 3858, 3876, 3894, 3912, 3930, 3948, 3966, 3984, 4002, 4020, 4038, 4056, 4074, 4092, 4110, 4128, 4146, 4164, 4182, 4200, 4218, 4236, 4254, 4272, 4290, 4308, 4326, 4344, 4362, 4380, 4398, 4416, 4434, 4452, 4470, 4488, 4506, 4524, 4542, 4560, 4578, 4596, 4614, 4632, 4650, 4668, 4686, 4704, 4722, 4740, 4758, 4776, 4794, 4812, 4830, 4848, 4866, 4884, 4902, 4920, 4938, 4956, 4974, 4992, 5010, 5028, 5046, 5064, 5082, 5100, 5118, 5136, 5154, 5172, 5190, 5208, 5226, 5244, 5262, 5280, 5298, 5316, 5334, 5352, 5370, 5388, 5406, 5424, 5442, 5460, 5478, 5496, 5514, 5532, 5550, 5568, 5586, 5604, 5622, 5640, 5658, 5676, 5694, 5712, 5730, 5748, 5766, 5784, 5802, 5820, 5838, 5856, 5874, 5892, 5910, 5928, 5946, 5964, 5982, 6000, 6018, 6036, 6054, 6072, 6090, 6108, 6126, 6144, 6162, 6180, 6198, 6216, 6234, 6252, 6270, 6288, 6306, 6324, 6342, 6360, 6378, 6396, 6414, 6432, 6450, 6468, 6, 24, 42, 60, 78, 96, 114, 132, 150, 168, 186, 204, 222, 240, 258, 276, 294, 312, 330, 348, 366, 384, 402, 420, 438, 456, 474, 492, 510, 528, 546, 564, 582, 600, 618, 636, 654, 672, 690, 708, 726, 744, 762, 780, 798, 816, 834, 852, 870, 888, 906, 924, 942, 960, 978, 996, 1014, 1032, 1050, 1068, 1086, 1104, 1787, 1805, 1823, 1841, 1859, 1877, 1895, 1913, 1931, 1949, 1967, 1985, 2003, 2021, 2039, 2057, 2075, 2093, 2111, 2129, 2147, 2165, 2183, 2201, 2219, 2237, 2255, 2273, 2291, 2309, 2327, 2345, 2363, 2381, 2399, 2417, 2435, 2453, 2471, 2489, 2507, 2525, 2543, 2561, 2579, 2597, 2615, 2633, 2651, 2669, 2687, 2705, 2723, 2741, 2759, 2777, 2795, 2813, 2831, 2849, 2867, 2885, 2903, 2921, 2939, 2957, 2975, 2993, 3011, 3029, 3047, 3065, 3083, 3101, 3119, 3137, 3155, 3173, 3191, 3209, 3227, 3245, 3263, 3281, 3299, 3317, 3335, 3353, 3371, 3389, 3407, 3425, 3443, 3461, 3479, 3497, 3515, 3533, 3551, 3569, 3587, 3605, 3623, 3641, 3659, 3677, 3695, 3713, 3731, 3749, 3767, 3785, 3803, 3821, 3839, 3857, 3875, 3893, 3911, 3929, 3947, 3965, 3983, 4001, 4019, 4037, 4055, 4073, 4091, 4109, 4127, 4145, 4163, 4181, 4199, 4217, 4235, 4253, 4271, 4289, 4307, 4325, 4343, 4361, 4379, 4397, 4415, 4433, 4451, 4469, 4487, 4505, 4523, 4541, 4559, 4577, 4595, 4613, 4631, 4649, 4667, 4685, 4703, 4721, 4739, 4757, 4775, 4793, 4811, 4829, 4847, 4865, 4883, 4901, 4919, 4937, 4955, 4973, 4991, 5009, 5027, 5045, 5063, 5081, 5099, 5117, 5135, 5153, 5171, 5189, 5207, 5225, 5243, 5261, 5279, 5297, 5315, 5333, 5351, 5369, 5387, 5405, 5423, 5441, 5459, 5477, 5495, 5513, 5531, 5549, 5567, 5585, 5603, 5621, 5639, 5657, 5675, 5693, 5711, 5729, 5747, 5765, 5783, 5801, 5819, 5837, 5855, 5873, 5891, 5909, 5927, 5945, 5963, 5981, 5999, 6017, 6035, 6053, 6071, 6089, 6107, 6125, 6143, 6161, 6179, 6197, 6215, 6233, 6251, 6269, 6287, 6305, 6323, 6341, 6359, 6377, 6395, 6413, 6431, 6449, 6467, 5, 23, 41, 59, 77, 95, 113, 131, 149, 167, 185, 203, 221, 239, 257, 275, 293, 311, 329, 347, 365, 383, 401, 419, 437, 455, 473, 491, 509, 527, 545, 563, 581, 599, 617, 635, 653, 671, 689, 707, 725, 743, 761, 779, 797, 815, 833, 851, 869, 887, 905, 923, 941, 959, 977, 995, 1013, 1031, 1049, 1067, 1085, 1103, 1121, 1139, 1157, 1175, 1193, 1211, 1229, 1247, 1265, 1283, 1301, 1319, 1337, 1355, 1373, 1391, 1409, 1427, 1445, 1463, 1481, 1499, 1517, 1535, 1553, 1571, 1589, 1607, 1625, 1643, 1661, 1679, 1697, 1715, 1733, 1751, 1769, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4311, 4329, 4347, 4365, 4383, 4401, 4419, 4437, 4455, 4473, 4491, 4509, 4527, 4545, 4563, 4581, 4599, 4617, 4635, 4653, 4671, 4689, 4707, 4725, 4743, 4761, 4779, 4797, 4815, 4833, 4851, 4869, 4887, 4905, 4923, 4941, 4959, 4977, 4995, 5013, 5031, 5049, 5067, 5085, 5103, 5121, 5139, 5157, 5175, 5193, 5211, 5229, 5247, 5265, 5283, 5301, 5319, 5337, 5355, 5373, 5391, 5409, 5427, 5445, 5463, 5481, 5499, 5517, 5535, 5553, 5571, 5589, 5607, 5625, 5643, 5661, 5679, 5697, 5715, 5733, 5751, 5769, 5787, 5805, 5823, 5841, 5859, 5877, 5895, 5913, 5931, 5949, 5967, 5985, 6003, 6021, 6039, 6057, 6075, 6093, 6111, 6129, 6147, 6165, 6183, 6201, 6219, 6237, 6255, 6273, 6291, 6309, 6327, 6345, 6363, 6381, 6399, 6417, 6435, 6453, 6471, 9, 27, 45, 63, 81, 99, 117, 135, 153, 171, 189, 207, 225, 243, 261, 279, 297, 315, 333, 351, 369, 387, 405, 423, 441, 459, 477, 495, 513, 531, 549, 567, 585, 603, 621, 639, 657, 675, 693, 711, 729, 747, 765, 783, 801, 819, 837, 855, 873, 891, 909, 927, 945, 963, 981, 999, 1017, 1035, 1053, 1071, 1089, 1107, 1125, 1143, 1161, 1179, 1197, 1215, 1233, 1251, 1269, 1287, 1305, 1323, 1341, 1359, 1377, 1395, 1413, 1431, 1449, 1467, 1485, 1503, 1521, 1539, 1557, 1575, 1593, 1611, 1629, 1647, 1665, 1683, 1701, 1719, 1737, 1755, 1773, 1791, 1809, 1827, 1845, 1863, 1881, 1899, 1917, 1935, 1953, 1971, 1989, 2007, 2025, 2043, 2061, 2079, 2097, 2115, 2133, 2151, 2169, 2187, 2205, 2223, 2241, 2259, 2277, 2295, 2313, 2331, 2349, 2367, 2385, 2403, 2421, 2439, 2457, 2475, 2493, 2511, 2529, 2547, 2565, 2583, 2601, 2619, 2637, 2655, 2673, 2691, 2709, 2727, 2745, 2763, 2781, 2799, 2817, 2835, 2853, 2871, 2889, 2907, 2925, 2943, 2961, 2979, 2997, 3015, 3033, 3051, 3069, 3087, 3105, 3123, 3141, 3159, 3177, 3195, 3213, 3231, 3249, 3267, 3285, 3303, 3321, 3339, 3357, 3375, 3393, 3411, 3429, 3447, 3465, 3483, 3501, 3519, 3537, 3555, 3573, 3591, 3609, 3627, 3645, 3663, 3681, 3699, 3717, 3735, 3753, 3771, 3789, 3807, 3825, 3843, 3861, 3879, 3897, 3915, 3933, 3951, 3969, 3987, 4005, 4023, 4041, 4059, 4077, 4095, 4113, 4131, 4149, 4167, 4185, 4203, 4221, 4239, 4257, 4275, 4293, 5994, 6012, 6030, 6048, 6066, 6084, 6102, 6120, 6138, 6156, 6174, 6192, 6210, 6228, 6246, 6264, 6282, 6300, 6318, 6336, 6354, 6372, 6390, 6408, 6426, 6444, 6462, 6480, 18, 36, 54, 72, 90, 108, 126, 144, 162, 180, 198, 216, 234, 252, 270, 288, 306, 324, 342, 360, 378, 396, 414, 432, 450, 468, 486, 504, 522, 540, 558, 576, 594, 612, 630, 648, 666, 684, 702, 720, 738, 756, 774, 792, 810, 828, 846, 864, 882, 900, 918, 936, 954, 972, 990, 1008, 1026, 1044, 1062, 1080, 1098, 1116, 1134, 1152, 1170, 1188, 1206, 1224, 1242, 1260, 1278, 1296, 1314, 1332, 1350, 1368, 1386, 1404, 1422, 1440, 1458, 1476, 1494, 1512, 1530, 1548, 1566, 1584, 1602, 1620, 1638, 1656, 1674, 1692, 1710, 1728, 1746, 1764, 1782, 1800, 1818, 1836, 1854, 1872, 1890, 1908, 1926, 1944, 1962, 1980, 1998, 2016, 2034, 2052, 2070, 2088, 2106, 2124, 2142, 2160, 2178, 2196, 2214, 2232, 2250, 2268, 2286, 2304, 2322, 2340, 2358, 2376, 2394, 2412, 2430, 2448, 2466, 2484, 2502, 2520, 2538, 2556, 2574, 2592, 2610, 2628, 2646, 2664, 2682, 2700, 2718, 2736, 2754, 2772, 2790, 2808, 2826, 2844, 2862, 2880, 2898, 2916, 2934, 2952, 2970, 2988, 3006, 3024, 3042, 3060, 3078, 3096, 3114, 3132, 3150, 3168, 3186, 3204, 3222, 3240, 3258, 3276, 3294, 3312, 3330, 3348, 3366, 3384, 3402, 3420, 3438, 3456, 3474, 3492, 3510, 3528, 3546, 3564, 3582, 3600, 3618, 3636, 3654, 3672, 3690, 3708, 3726, 3744, 3762, 3780, 3798, 3816, 3834, 3852, 3870, 3888, 3906, 3924, 3942, 3960, 3978, 3996, 4014, 4032, 4050, 4068, 4086, 4104, 4122, 4140, 4158, 4176, 4194, 4212, 4230, 4248, 4266, 4284, 4302, 4320, 4338, 4356, 4374, 4392, 4410, 4428, 4446, 4464, 4482, 4500, 4518, 4536, 4554, 4572, 4590, 4608, 4626, 4644, 4662, 4680, 4698, 4716, 4734, 4752, 4770, 4788, 4806, 4824, 4842, 4860, 4878, 4896, 4914, 4932, 4950, 4968, 4986, 5004, 5022, 5040, 5058, 5076, 5094, 5112, 5130, 5148, 5166, 5184, 5202, 5220, 5238, 5256, 5274, 5292, 5310, 5328, 5346, 5364, 5382, 5400, 5418, 5436, 5454, 5472, 5490, 5508, 5526, 5544, 5562, 5580, 5598, 5616, 5634, 5652, 5670, 5688, 5706, 5724, 5742, 5760, 5778, 5796, 5814, 5832, 5850, 5868, 5886, 5904, 5922, 5940, 5958, 5976, 6321, 6339, 6357, 6375, 6393, 6411, 6429, 6447, 6465, 3, 21, 39, 57, 75, 93, 111, 129, 147, 165, 183, 201, 219, 237, 255, 273, 291, 309, 327, 345, 363, 381, 399, 417, 435, 453, 471, 489, 507, 525, 543, 561, 579, 597, 615, 633, 651, 669, 687, 705, 723, 741, 759, 777, 795, 813, 831, 849, 867, 885, 903, 921, 939, 957, 975, 993, 1011, 1029, 1047, 1065, 1083, 1101, 1119, 1137, 1155, 1173, 1191, 1209, 1227, 1245, 1263, 1281, 1299, 1317, 1335, 1353, 1371, 1389, 1407, 1425, 1443, 1461, 1479, 1497, 1515, 1533, 1551, 1569, 1587, 1605, 1623, 1641, 1659, 1677, 1695, 1713, 1731, 1749, 1767, 1785, 1803, 1821, 1839, 1857, 1875, 1893, 1911, 1929, 1947, 1965, 1983, 2001, 2019, 2037, 2055, 2073, 2091, 2109, 2127, 2145, 2163, 2181, 2199, 2217, 2235, 2253, 2271, 2289, 2307, 2325, 2343, 2361, 2379, 2397, 2415, 2433, 2451, 2469, 2487, 2505, 2523, 2541, 2559, 2577, 2595, 2613, 2631, 2649, 2667, 2685, 2703, 2721, 2739, 2757, 2775, 2793, 2811, 2829, 2847, 2865, 2883, 2901, 2919, 2937, 2955, 2973, 2991, 3009, 3027, 3045, 3063, 3081, 3099, 3117, 3135, 3153, 3171, 3189, 3207, 3225, 3243, 3261, 3279, 3297, 3315, 3333, 3351, 3369, 3387, 3405, 3423, 3441, 3459, 3477, 3495, 3513, 3531, 3549, 3567, 3585, 3603, 3621, 3639, 3657, 3675, 3693, 3711, 3729, 3747, 3765, 3783, 3801, 3819, 3837, 3855, 3873, 3891, 3909, 3927, 3945, 3963, 3981, 3999, 4017, 4035, 4053, 4071, 4089, 4107, 4125, 4143, 4161, 4179, 4197, 4215, 4233, 4251, 4269, 4287, 4305, 4323, 4341, 4359, 4377, 4395, 4413, 4431, 4449, 4467, 4485, 4503, 4521, 4539, 4557, 4575, 4593, 4611, 4629, 4647, 4665, 4683, 4701, 4719, 4737, 4755, 4773, 4791, 4809, 4827, 4845, 4863, 4881, 4899, 4917, 4935, 4953, 4971, 4989, 5007, 5025, 5043, 5061, 5079, 5097, 5115, 5133, 5151, 5169, 5187, 5205, 5223, 5241, 5259, 5277, 5295, 5313, 5331, 5349, 5367, 5385, 5403, 5421, 5439, 5457, 5475, 5493, 5511, 5529, 5547, 5565, 5583, 5601, 5619, 5637, 5655, 5673, 5691, 5709, 5727, 5745, 5763, 5781, 5799, 5817, 5835, 5853, 5871, 5889, 5907, 5925, 5943, 5961, 5979, 5997, 6015, 6033, 6051, 6069, 6087, 6105, 6123, 6141, 6159, 6177, 6195, 6213, 6231, 6249, 6267, 6285, 6303, 3413, 3431, 3449, 3467, 3485, 3503, 3521, 3539, 3557, 3575, 3593, 3611, 3629, 3647, 3665, 3683, 3701, 3719, 3737, 3755, 3773, 3791, 3809, 3827, 3845, 3863, 3881, 3899, 3917, 3935, 3953, 3971, 3989, 4007, 4025, 4043, 4061, 4079, 4097, 4115, 4133, 4151, 4169, 4187, 4205, 4223, 4241, 4259, 4277, 4295, 4313, 4331, 4349, 4367, 4385, 4403, 4421, 4439, 4457, 4475, 4493, 4511, 4529, 4547, 4565, 4583, 4601, 4619, 4637, 4655, 4673, 4691, 4709, 4727, 4745, 4763, 4781, 4799, 4817, 4835, 4853, 4871, 4889, 4907, 4925, 4943, 4961, 4979, 4997, 5015, 5033, 5051, 5069, 5087, 5105, 5123, 5141, 5159, 5177, 5195, 5213, 5231, 5249, 5267, 5285, 5303, 5321, 5339, 5357, 5375, 5393, 5411, 5429, 5447, 5465, 5483, 5501, 5519, 5537, 5555, 5573, 5591, 5609, 5627, 5645, 5663, 5681, 5699, 5717, 5735, 5753, 5771, 5789, 5807, 5825, 5843, 5861, 5879, 5897, 5915, 5933, 5951, 5969, 5987, 6005, 6023, 6041, 6059, 6077, 6095, 6113, 6131, 6149, 6167, 6185, 6203, 6221, 6239, 6257, 6275, 6293, 6311, 6329, 6347, 6365, 6383, 6401, 6419, 6437, 6455, 6473, 11, 29, 47, 65, 83, 101, 119, 137, 155, 173, 191, 209, 227, 245, 263, 281, 299, 317, 335, 353, 371, 389, 407, 425, 443, 461, 479, 497, 515, 533, 551, 569, 587, 605, 623, 641, 659, 677, 695, 713, 731, 749, 767, 785, 803, 821, 839, 857, 875, 893, 911, 929, 947, 965, 983, 1001, 1019, 1037, 1055, 1073, 1091, 1109, 1127, 1145, 1163, 1181, 1199, 1217, 1235, 1253, 1271, 1289, 1307, 1325, 1343, 1361, 1379, 1397, 1415, 1433, 1451, 1469, 1487, 1505, 1523, 1541, 1559, 1577, 1595, 1613, 1631, 1649, 1667, 1685, 1703, 1721, 1739, 1757, 1775, 1793, 1811, 1829, 1847, 1865, 1883, 1901, 1919, 1937, 1955, 1973, 1991, 2009, 2027, 2045, 2063, 2081, 2099, 2117, 2135, 2153, 2171, 2189, 2207, 2225, 2243, 2261, 2279, 2297, 2315, 2333, 2351, 2369, 2387, 2405, 2423, 2441, 2459, 2477, 2495, 2513, 2531, 2549, 2567, 2585, 2603, 2621, 2639, 2657, 2675, 2693, 2711, 2729, 2747, 2765, 2783, 2801, 2819, 2837, 2855, 2873, 2891, 2909, 2927, 2945, 2963, 2981, 2999, 3017, 3035, 3053, 3071, 3089, 3107, 3125, 3143, 3161, 3179, 3197, 3215, 3233, 3251, 3269, 3287, 3305, 3323, 3341, 3359, 3377, 3395, 4733, 4751, 4769, 4787, 4805, 4823, 4841, 4859, 4877, 4895, 4913, 4931, 4949, 4967, 4985, 5003, 5021, 5039, 5057, 5075, 5093, 5111, 5129, 5147, 5165, 5183, 5201, 5219, 5237, 5255, 5273, 5291, 5309, 5327, 5345, 5363, 5381, 5399, 5417, 5435, 5453, 5471, 5489, 5507, 5525, 5543, 5561, 5579, 5597, 5615, 5633, 5651, 5669, 5687, 5705, 5723, 5741, 5759, 5777, 5795, 5813, 5831, 5849, 5867, 5885, 5903, 5921, 5939, 5957, 5975, 5993, 6011, 6029, 6047, 6065, 6083, 6101, 6119, 6137, 6155, 6173, 6191, 6209, 6227, 6245, 6263, 6281, 6299, 6317, 6335, 6353, 6371, 6389, 6407, 6425, 6443, 6461, 6479, 17, 35, 53, 71, 89, 107, 125, 143, 161, 179, 197, 215, 233, 251, 269, 287, 305, 323, 341, 359, 377, 395, 413, 431, 449, 467, 485, 503, 521, 539, 557, 575, 593, 611, 629, 647, 665, 683, 701, 719, 737, 755, 773, 791, 809, 827, 845, 863, 881, 899, 917, 935, 953, 971, 989, 1007, 1025, 1043, 1061, 1079, 1097, 1115, 1133, 1151, 1169, 1187, 1205, 1223, 1241, 1259, 1277, 1295, 1313, 1331, 1349, 1367, 1385, 1403, 1421, 1439, 1457, 1475, 1493, 1511, 1529, 1547, 1565, 1583, 1601, 1619, 1637, 1655, 1673, 1691, 1709, 1727, 1745, 1763, 1781, 1799, 1817, 1835, 1853, 1871, 1889, 1907, 1925, 1943, 1961, 1979, 1997, 2015, 2033, 2051, 2069, 2087, 2105, 2123, 2141, 2159, 2177, 2195, 2213, 2231, 2249, 2267, 2285, 2303, 2321, 2339, 2357, 2375, 2393, 2411, 2429, 2447, 2465, 2483, 2501, 2519, 2537, 2555, 2573, 2591, 2609, 2627, 2645, 2663, 2681, 2699, 2717, 2735, 2753, 2771, 2789, 2807, 2825, 2843, 2861, 2879, 2897, 2915, 2933, 2951, 2969, 2987, 3005, 3023, 3041, 3059, 3077, 3095, 3113, 3131, 3149, 3167, 3185, 3203, 3221, 3239, 3257, 3275, 3293, 3311, 3329, 3347, 3365, 3383, 3401, 3419, 3437, 3455, 3473, 3491, 3509, 3527, 3545, 3563, 3581, 3599, 3617, 3635, 3653, 3671, 3689, 3707, 3725, 3743, 3761, 3779, 3797, 3815, 3833, 3851, 3869, 3887, 3905, 3923, 3941, 3959, 3977, 3995, 4013, 4031, 4049, 4067, 4085, 4103, 4121, 4139, 4157, 4175, 4193, 4211, 4229, 4247, 4265, 4283, 4301, 4319, 4337, 4355, 4373, 4391, 4409, 4427, 4445, 4463, 4481, 4499, 4517, 4535, 4553, 4571, 4589, 4607, 4625, 4643, 4661, 4679, 4697, 4715, 6385, 6403, 6421, 6439, 6457, 6475, 13, 31, 49, 67, 85, 103, 121, 139, 157, 175, 193, 211, 229, 247, 265, 283, 301, 319, 337, 355, 373, 391, 409, 427, 445, 463, 481, 499, 517, 535, 553, 571, 589, 607, 625, 643, 661, 679, 697, 715, 733, 751, 769, 787, 805, 823, 841, 859, 877, 895, 913, 931, 949, 967, 985, 1003, 1021, 1039, 1057, 1075, 1093, 1111, 1129, 1147, 1165, 1183, 1201, 1219, 1237, 1255, 1273, 1291, 1309, 1327, 1345, 1363, 1381, 1399, 1417, 1435, 1453, 1471, 1489, 1507, 1525, 1543, 1561, 1579, 1597, 1615, 1633, 1651, 1669, 1687, 1705, 1723, 1741, 1759, 1777, 1795, 1813, 1831, 1849, 1867, 1885, 1903, 1921, 1939, 1957, 1975, 1993, 2011, 2029, 2047, 2065, 2083, 2101, 2119, 2137, 2155, 2173, 2191, 2209, 2227, 2245, 2263, 2281, 2299, 2317, 2335, 2353, 2371, 2389, 2407, 2425, 2443, 2461, 2479, 2497, 2515, 2533, 2551, 2569, 2587, 2605, 2623, 2641, 2659, 2677, 2695, 2713, 2731, 2749, 2767, 2785, 2803, 2821, 2839, 2857, 2875, 2893, 2911, 2929, 2947, 2965, 2983, 3001, 3019, 3037, 3055, 3073, 3091, 3109, 3127, 3145, 3163, 3181, 3199, 3217, 3235, 3253, 3271, 3289, 3307, 3325, 3343, 3361, 3379, 3397, 3415, 3433, 3451, 3469, 3487, 3505, 3523, 3541, 3559, 3577, 3595, 3613, 3631, 3649, 3667, 3685, 3703, 3721, 3739, 3757, 3775, 3793, 3811, 3829, 3847, 3865, 3883, 3901, 3919, 3937, 3955, 3973, 3991, 4009, 4027, 4045, 4063, 4081, 4099, 4117, 4135, 4153, 4171, 4189, 4207, 4225, 4243, 4261, 4279, 4297, 4315, 4333, 4351, 4369, 4387, 4405, 4423, 4441, 4459, 4477, 4495, 4513, 4531, 4549, 4567, 4585, 4603, 4621, 4639, 4657, 4675, 4693, 4711, 4729, 4747, 4765, 4783, 4801, 4819, 4837, 4855, 4873, 4891, 4909, 4927, 4945, 4963, 4981, 4999, 5017, 5035, 5053, 5071, 5089, 5107, 5125, 5143, 5161, 5179, 5197, 5215, 5233, 5251, 5269, 5287, 5305, 5323, 5341, 5359, 5377, 5395, 5413, 5431, 5449, 5467, 5485, 5503, 5521, 5539, 5557, 5575, 5593, 5611, 5629, 5647, 5665, 5683, 5701, 5719, 5737, 5755, 5773, 5791, 5809, 5827, 5845, 5863, 5881, 5899, 5917, 5935, 5953, 5971, 5989, 6007, 6025, 6043, 6061, 6079, 6097, 6115, 6133, 6151, 6169, 6187, 6205, 6223, 6241, 6259, 6277, 6295, 6313, 6331, 6349, 6367, 3544, 3562, 3580, 3598, 3616, 3634, 3652, 3670, 3688, 3706, 3724, 3742, 3760, 3778, 3796, 3814, 3832, 3850, 3868, 3886, 3904, 3922, 3940, 3958, 3976, 3994, 4012, 4030, 4048, 4066, 4084, 4102, 4120, 4138, 4156, 4174, 4192, 4210, 4228, 4246, 4264, 4282, 4300, 4318, 4336, 4354, 4372, 4390, 4408, 4426, 4444, 4462, 4480, 4498, 4516, 4534, 4552, 4570, 4588, 4606, 4624, 4642, 4660, 4678, 4696, 4714, 4732, 4750, 4768, 4786, 4804, 4822, 4840, 4858, 4876, 4894, 4912, 4930, 4948, 4966, 4984, 5002, 5020, 5038, 5056, 5074, 5092, 5110, 5128, 5146, 5164, 5182, 5200, 5218, 5236, 5254, 5272, 5290, 5308, 5326, 5344, 5362, 5380, 5398, 5416, 5434, 5452, 5470, 5488, 5506, 5524, 5542, 5560, 5578, 5596, 5614, 5632, 5650, 5668, 5686, 5704, 5722, 5740, 5758, 5776, 5794, 5812, 5830, 5848, 5866, 5884, 5902, 5920, 5938, 5956, 5974, 5992, 6010, 6028, 6046, 6064, 6082, 6100, 6118, 6136, 6154, 6172, 6190, 6208, 6226, 6244, 6262, 6280, 6298, 6316, 6334, 6352, 6370, 6388, 6406, 6424, 6442, 6460, 6478, 16, 34, 52, 70, 88, 106, 124, 142, 160, 178, 196, 214, 232, 250, 268, 286, 304, 322, 340, 358, 376, 394, 412, 430, 448, 466, 484, 502, 520, 538, 556, 574, 592, 610, 628, 646, 664, 682, 700, 718, 736, 754, 772, 790, 808, 826, 844, 862, 880, 898, 916, 934, 952, 970, 988, 1006, 1024, 1042, 1060, 1078, 1096, 1114, 1132, 1150, 1168, 1186, 1204, 1222, 1240, 1258, 1276, 1294, 1312, 1330, 1348, 1366, 1384, 1402, 1420, 1438, 1456, 1474, 1492, 1510, 1528, 1546, 1564, 1582, 1600, 1618, 1636, 1654, 1672, 1690, 1708, 1726, 1744, 1762, 1780, 1798, 1816, 1834, 1852, 1870, 1888, 1906, 1924, 1942, 1960, 1978, 1996, 2014, 2032, 2050, 2068, 2086, 2104, 2122, 2140, 2158, 2176, 2194, 2212, 2230, 2248, 2266, 2284, 2302, 2320, 2338, 2356, 2374, 2392, 2410, 2428, 2446, 2464, 2482, 2500, 2518, 2536, 2554, 2572, 2590, 2608, 2626, 2644, 2662, 2680, 2698, 2716, 2734, 2752, 2770, 2788, 2806, 2824, 2842, 2860, 2878, 2896, 2914, 2932, 2950, 2968, 2986, 3004, 3022, 3040, 3058, 3076, 3094, 3112, 3130, 3148, 3166, 3184, 3202, 3220, 3238, 3256, 3274, 3292, 3310, 3328, 3346, 3364, 3382, 3400, 3418, 3436, 3454, 3472, 3490, 3508, 3526, 3596, 3614, 3632, 3650, 3668, 3686, 3704, 3722, 3740, 3758, 3776, 3794, 3812, 3830, 3848, 3866, 3884, 3902, 3920, 3938, 3956, 3974, 3992, 4010, 4028, 4046, 4064, 4082, 4100, 4118, 4136, 4154, 4172, 4190, 4208, 4226, 4244, 4262, 4280, 4298, 4316, 4334, 4352, 4370, 4388, 4406, 4424, 4442, 4460, 4478, 4496, 4514, 4532, 4550, 4568, 4586, 4604, 4622, 4640, 4658, 4676, 4694, 4712, 4730, 4748, 4766, 4784, 4802, 4820, 4838, 4856, 4874, 4892, 4910, 4928, 4946, 4964, 4982, 5000, 5018, 5036, 5054, 5072, 5090, 5108, 5126, 5144, 5162, 5180, 5198, 5216, 5234, 5252, 5270, 5288, 5306, 5324, 5342, 5360, 5378, 5396, 5414, 5432, 5450, 5468, 5486, 5504, 5522, 5540, 5558, 5576, 5594, 5612, 5630, 5648, 5666, 5684, 5702, 5720, 5738, 5756, 5774, 5792, 5810, 5828, 5846, 5864, 5882, 5900, 5918, 5936, 5954, 5972, 5990, 6008, 6026, 6044, 6062, 6080, 6098, 6116, 6134, 6152, 6170, 6188, 6206, 6224, 6242, 6260, 6278, 6296, 6314, 6332, 6350, 6368, 6386, 6404, 6422, 6440, 6458, 6476, 14, 32, 50, 68, 86, 104, 122, 140, 158, 176, 194, 212, 230, 248, 266, 284, 302, 320, 338, 356, 374, 392, 410, 428, 446, 464, 482, 500, 518, 536, 554, 572, 590, 608, 626, 644, 662, 680, 698, 716, 734, 752, 770, 788, 806, 824, 842, 860, 878, 896, 914, 932, 950, 968, 986, 1004, 1022, 1040, 1058, 1076, 1094, 1112, 1130, 1148, 1166, 1184, 1202, 1220, 1238, 1256, 1274, 1292, 1310, 1328, 1346, 1364, 1382, 1400, 1418, 1436, 1454, 1472, 1490, 1508, 1526, 1544, 1562, 1580, 1598, 1616, 1634, 1652, 1670, 1688, 1706, 1724, 1742, 1760, 1778, 1796, 1814, 1832, 1850, 1868, 1886, 1904, 1922, 1940, 1958, 1976, 1994, 2012, 2030, 2048, 2066, 2084, 2102, 2120, 2138, 2156, 2174, 2192, 2210, 2228, 2246, 2264, 2282, 2300, 2318, 2336, 2354, 2372, 2390, 2408, 2426, 2444, 2462, 2480, 2498, 2516, 2534, 2552, 2570, 2588, 2606, 2624, 2642, 2660, 2678, 2696, 2714, 2732, 2750, 2768, 2786, 2804, 2822, 2840, 2858, 2876, 2894, 2912, 2930, 2948, 2966, 2984, 3002, 3020, 3038, 3056, 3074, 3092, 3110, 3128, 3146, 3164, 3182, 3200, 3218, 3236, 3254, 3272, 3290, 3308, 3326, 3344, 3362, 3380, 3398, 3416, 3434, 3452, 3470, 3488, 3506, 3524, 3542, 3560, 3578, 397, 415, 433, 451, 469, 487, 505, 523, 541, 559, 577, 595, 613, 631, 649, 667, 685, 703, 721, 739, 757, 775, 793, 811, 829, 847, 865, 883, 901, 919, 937, 955, 973, 991, 1009, 1027, 1045, 1063, 1081, 1099, 1117, 1135, 1153, 1171, 1189, 1207, 1225, 1243, 1261, 1279, 1297, 1315, 1333, 1351, 1369, 1387, 1405, 1423, 1441, 1459, 1477, 1495, 1513, 1531, 1549, 1567, 1585, 1603, 1621, 1639, 1657, 1675, 1693, 1711, 1729, 1747, 1765, 1783, 1801, 1819, 1837, 1855, 1873, 1891, 1909, 1927, 1945, 1963, 1981, 1999, 2017, 2035, 2053, 2071, 2089, 2107, 2125, 2143, 2161, 2179, 2197, 2215, 2233, 2251, 2269, 2287, 2305, 2323, 2341, 2359, 2377, 2395, 2413, 2431, 2449, 2467, 2485, 2503, 2521, 2539, 2557, 2575, 2593, 2611, 2629, 2647, 2665, 2683, 2701, 2719, 2737, 2755, 2773, 2791, 2809, 2827, 2845, 2863, 2881, 2899, 2917, 2935, 2953, 2971, 2989, 3007, 3025, 3043, 3061, 3079, 3097, 3115, 3133, 3151, 3169, 3187, 3205, 3223, 3241, 3259, 3277, 3295, 3313, 3331, 3349, 3367, 3385, 3403, 3421, 3439, 3457, 3475, 3493, 3511, 3529, 3547, 3565, 3583, 3601, 3619, 3637, 3655, 3673, 3691, 3709, 3727, 3745, 3763, 3781, 3799, 3817, 3835, 3853, 3871, 3889, 3907, 3925, 3943, 3961, 3979, 3997, 4015, 4033, 4051, 4069, 4087, 4105, 4123, 4141, 4159, 4177, 4195, 4213, 4231, 4249, 4267, 4285, 4303, 4321, 4339, 4357, 4375, 4393, 4411, 4429, 4447, 4465, 4483, 4501, 4519, 4537, 4555, 4573, 4591, 4609, 4627, 4645, 4663, 4681, 4699, 4717, 4735, 4753, 4771, 4789, 4807, 4825, 4843, 4861, 4879, 4897, 4915, 4933, 4951, 4969, 4987, 5005, 5023, 5041, 5059, 5077, 5095, 5113, 5131, 5149, 5167, 5185, 5203, 5221, 5239, 5257, 5275, 5293, 5311, 5329, 5347, 5365, 5383, 5401, 5419, 5437, 5455, 5473, 5491, 5509, 5527, 5545, 5563, 5581, 5599, 5617, 5635, 5653, 5671, 5689, 5707, 5725, 5743, 5761, 5779, 5797, 5815, 5833, 5851, 5869, 5887, 5905, 5923, 5941, 5959, 5977, 5995, 6013, 6031, 6049, 6067, 6085, 6103, 6121, 6139, 6157, 6175, 6193, 6211, 6229, 6247, 6265, 6283, 6301, 6319, 6337, 6355, 6373, 6391, 6409, 6427, 6445, 6463, 1, 19, 37, 55, 73, 91, 109, 127, 145, 163, 181, 199, 217, 235, 253, 271, 289, 307, 325, 343, 361, 379, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 772, 790, 808, 826, 844, 862, 880, 898, 916, 934, 952, 970, 988, 1006, 1024, 1042, 1060, 1078, 1096, 1114, 1132, 1150, 1168, 1186, 1204, 1222, 1240, 1258, 1276, 1294, 1312, 1330, 1348, 1366, 1384, 1402, 1420, 1438, 1456, 1474, 1492, 1510, 1528, 1546, 1564, 1582, 1600, 1618, 1636, 1654, 1672, 1690, 1708, 1726, 1744, 1762, 1780, 1798, 1816, 1834, 1852, 1870, 1888, 1906, 1924, 1942, 1960, 1978, 1996, 2014, 2032, 2050, 2068, 2086, 2104, 2122, 2140, 2158, 2176, 2194, 2212, 2230, 2248, 2266, 2284, 2302, 2320, 2338, 2356, 2374, 2392, 2410, 2428, 2446, 2464, 2482, 2500, 2518, 2536, 2554, 2572, 2590, 2608, 2626, 2644, 2662, 2680, 2698, 2716, 2734, 2752, 2770, 2788, 2806, 2824, 2842, 2860, 2878, 2896, 2914, 2932, 2950, 2968, 2986, 3004, 3022, 3040, 3058, 3076, 3094, 3112, 3130, 3148, 3166, 3184, 3202, 3220, 3238, 3256, 3274, 3292, 3310, 3328, 3346, 3364, 3382, 3400, 3418, 3436, 3454, 3472, 3490, 3508, 3526, 3544, 3562, 3580, 3598, 3616, 3634, 3652, 3670, 3688, 3706, 3724, 3742, 3760, 3778, 3796, 3814, 3832, 3850, 3868, 3886, 3904, 3922, 3940, 3958, 3976, 3994, 4012, 4030, 4048, 4066, 4084, 4102, 4120, 4138, 4156, 4174, 4192, 4210, 4228, 4246, 4264, 4282, 4300, 4318, 4336, 4354, 4372, 4390, 4408, 4426, 4444, 4462, 4480, 4498, 4516, 4534, 4552, 4570, 4588, 4606, 4624, 4642, 4660, 4678, 4696, 4714, 4732, 4750, 4768, 4786, 4804, 4822, 4840, 4858, 4876, 4894, 4912, 4930, 4948, 4966, 4984, 5002, 5020, 5038, 5056, 5074, 5092, 5110, 5128, 5146, 5164, 5182, 5200, 5218, 5236, 5254, 5272, 5290, 5308, 5326, 5344, 5362, 5380, 5398, 5416, 5434, 5452, 5470, 5488, 5506, 5524, 5542, 5560, 5578, 5596, 5614, 5632, 5650, 5668, 5686, 5704, 5722, 5740, 5758, 5776, 5794, 5812, 5830, 5848, 5866, 5884, 5902, 5920, 5938, 5956, 5974, 5992, 6010, 6028, 6046, 6064, 6082, 6100, 6118, 6136, 6154, 6172, 6190, 6208, 6226, 6244, 6262, 6280, 6298, 6316, 6334, 6352, 6370, 6388, 6406, 6424, 6442, 6460, 6478, 16, 34, 52, 70, 88, 106, 124, 142, 160, 178, 196, 214, 232, 250, 268, 286, 304, 322, 340, 358, 376, 394, 412, 430, 448, 466, 484, 502, 520, 538, 556, 574, 592, 610, 628, 646, 664, 682, 700, 718, 736, 754, 2616, 2634, 2652, 2670, 2688, 2706, 2724, 2742, 2760, 2778, 2796, 2814, 2832, 2850, 2868, 2886, 2904, 2922, 2940, 2958, 2976, 2994, 3012, 3030, 3048, 3066, 3084, 3102, 3120, 3138, 3156, 3174, 3192, 3210, 3228, 3246, 3264, 3282, 3300, 3318, 3336, 3354, 3372, 3390, 3408, 3426, 3444, 3462, 3480, 3498, 3516, 3534, 3552, 3570, 3588, 3606, 3624, 3642, 3660, 3678, 3696, 3714, 3732, 3750, 3768, 3786, 3804, 3822, 3840, 3858, 3876, 3894, 3912, 3930, 3948, 3966, 3984, 4002, 4020, 4038, 4056, 4074, 4092, 4110, 4128, 4146, 4164, 4182, 4200, 4218, 4236, 4254, 4272, 4290, 4308, 4326, 4344, 4362, 4380, 4398, 4416, 4434, 4452, 4470, 4488, 4506, 4524, 4542, 4560, 4578, 4596, 4614, 4632, 4650, 4668, 4686, 4704, 4722, 4740, 4758, 4776, 4794, 4812, 4830, 4848, 4866, 4884, 4902, 4920, 4938, 4956, 4974, 4992, 5010, 5028, 5046, 5064, 5082, 5100, 5118, 5136, 5154, 5172, 5190, 5208, 5226, 5244, 5262, 5280, 5298, 5316, 5334, 5352, 5370, 5388, 5406, 5424, 5442, 5460, 5478, 5496, 5514, 5532, 5550, 5568, 5586, 5604, 5622, 5640, 5658, 5676, 5694, 5712, 5730, 5748, 5766, 5784, 5802, 5820, 5838, 5856, 5874, 5892, 5910, 5928, 5946, 5964, 5982, 6000, 6018, 6036, 6054, 6072, 6090, 6108, 6126, 6144, 6162, 6180, 6198, 6216, 6234, 6252, 6270, 6288, 6306, 6324, 6342, 6360, 6378, 6396, 6414, 6432, 6450, 6468, 6, 24, 42, 60, 78, 96, 114, 132, 150, 168, 186, 204, 222, 240, 258, 276, 294, 312, 330, 348, 366, 384, 402, 420, 438, 456, 474, 492, 510, 528, 546, 564, 582, 600, 618, 636, 654, 672, 690, 708, 726, 744, 762, 780, 798, 816, 834, 852, 870, 888, 906, 924, 942, 960, 978, 996, 1014, 1032, 1050, 1068, 1086, 1104, 1122, 1140, 1158, 1176, 1194, 1212, 1230, 1248, 1266, 1284, 1302, 1320, 1338, 1356, 1374, 1392, 1410, 1428, 1446, 1464, 1482, 1500, 1518, 1536, 1554, 1572, 1590, 1608, 1626, 1644, 1662, 1680, 1698, 1716, 1734, 1752, 1770, 1788, 1806, 1824, 1842, 1860, 1878, 1896, 1914, 1932, 1950, 1968, 1986, 2004, 2022, 2040, 2058, 2076, 2094, 2112, 2130, 2148, 2166, 2184, 2202, 2220, 2238, 2256, 2274, 2292, 2310, 2328, 2346, 2364, 2382, 2400, 2418, 2436, 2454, 2472, 2490, 2508, 2526, 2544, 2562, 2580, 2598, 4017, 4035, 4053, 4071, 4089, 4107, 4125, 4143, 4161, 4179, 4197, 4215, 4233, 4251, 4269, 4287, 4305, 4323, 4341, 4359, 4377, 4395, 4413, 4431, 4449, 4467, 4485, 4503, 4521, 4539, 4557, 4575, 4593, 4611, 4629, 4647, 4665, 4683, 4701, 4719, 4737, 4755, 4773, 4791, 4809, 4827, 4845, 4863, 4881, 4899, 4917, 4935, 4953, 4971, 4989, 5007, 5025, 5043, 5061, 5079, 5097, 5115, 5133, 5151, 5169, 5187, 5205, 5223, 5241, 5259, 5277, 5295, 5313, 5331, 5349, 5367, 5385, 5403, 5421, 5439, 5457, 5475, 5493, 5511, 5529, 5547, 5565, 5583, 5601, 5619, 5637, 5655, 5673, 5691, 5709, 5727, 5745, 5763, 5781, 5799, 5817, 5835, 5853, 5871, 5889, 5907, 5925, 5943, 5961, 5979, 5997, 6015, 6033, 6051, 6069, 6087, 6105, 6123, 6141, 6159, 6177, 6195, 6213, 6231, 6249, 6267, 6285, 6303, 6321, 6339, 6357, 6375, 6393, 6411, 6429, 6447, 6465, 3, 21, 39, 57, 75, 93, 111, 129, 147, 165, 183, 201, 219, 237, 255, 273, 291, 309, 327, 345, 363, 381, 399, 417, 435, 453, 471, 489, 507, 525, 543, 561, 579, 597, 615, 633, 651, 669, 687, 705, 723, 741, 759, 777, 795, 813, 831, 849, 867, 885, 903, 921, 939, 957, 975, 993, 1011, 1029, 1047, 1065, 1083, 1101, 1119, 1137, 1155, 1173, 1191, 1209, 1227, 1245, 1263, 1281, 1299, 1317, 1335, 1353, 1371, 1389, 1407, 1425, 1443, 1461, 1479, 1497, 1515, 1533, 1551, 1569, 1587, 1605, 1623, 1641, 1659, 1677, 1695, 1713, 1731, 1749, 1767, 1785, 1803, 1821, 1839, 1857, 1875, 1893, 1911, 1929, 1947, 1965, 1983, 2001, 2019, 2037, 2055, 2073, 2091, 2109, 2127, 2145, 2163, 2181, 2199, 2217, 2235, 2253, 2271, 2289, 2307, 2325, 2343, 2361, 2379, 2397, 2415, 2433, 2451, 2469, 2487, 2505, 2523, 2541, 2559, 2577, 2595, 2613, 2631, 2649, 2667, 2685, 2703, 2721, 2739, 2757, 2775, 2793, 2811, 2829, 2847, 2865, 2883, 2901, 2919, 2937, 2955, 2973, 2991, 3009, 3027, 3045, 3063, 3081, 3099, 3117, 3135, 3153, 3171, 3189, 3207, 3225, 3243, 3261, 3279, 3297, 3315, 3333, 3351, 3369, 3387, 3405, 3423, 3441, 3459, 3477, 3495, 3513, 3531, 3549, 3567, 3585, 3603, 3621, 3639, 3657, 3675, 3693, 3711, 3729, 3747, 3765, 3783, 3801, 3819, 3837, 3855, 3873, 3891, 3909, 3927, 3945, 3963, 3981, 3999, 6335, 6353, 6371, 6389, 6407, 6425, 6443, 6461, 6479, 17, 35, 53, 71, 89, 107, 125, 143, 161, 179, 197, 215, 233, 251, 269, 287, 305, 323, 341, 359, 377, 395, 413, 431, 449, 467, 485, 503, 521, 539, 557, 575, 593, 611, 629, 647, 665, 683, 701, 719, 737, 755, 773, 791, 809, 827, 845, 863, 881, 899, 917, 935, 953, 971, 989, 1007, 1025, 1043, 1061, 1079, 1097, 1115, 1133, 1151, 1169, 1187, 1205, 1223, 1241, 1259, 1277, 1295, 1313, 1331, 1349, 1367, 1385, 1403, 1421, 1439, 1457, 1475, 1493, 1511, 1529, 1547, 1565, 1583, 1601, 1619, 1637, 1655, 1673, 1691, 1709, 1727, 1745, 1763, 1781, 1799, 1817, 1835, 1853, 1871, 1889, 1907, 1925, 1943, 1961, 1979, 1997, 2015, 2033, 2051, 2069, 2087, 2105, 2123, 2141, 2159, 2177, 2195, 2213, 2231, 2249, 2267, 2285, 2303, 2321, 2339, 2357, 2375, 2393, 2411, 2429, 2447, 2465, 2483, 2501, 2519, 2537, 2555, 2573, 2591, 2609, 2627, 2645, 2663, 2681, 2699, 2717, 2735, 2753, 2771, 2789, 2807, 2825, 2843, 2861, 2879, 2897, 2915, 2933, 2951, 2969, 2987, 3005, 3023, 3041, 3059, 3077, 3095, 3113, 3131, 3149, 3167, 3185, 3203, 3221, 3239, 3257, 3275, 3293, 3311, 3329, 3347, 3365, 3383, 3401, 3419, 3437, 3455, 3473, 3491, 3509, 3527, 3545, 3563, 3581, 3599, 3617, 3635, 3653, 3671, 3689, 3707, 3725, 3743, 3761, 3779, 3797, 3815, 3833, 3851, 3869, 3887, 3905, 3923, 3941, 3959, 3977, 3995, 4013, 4031, 4049, 4067, 4085, 4103, 4121, 4139, 4157, 4175, 4193, 4211, 4229, 4247, 4265, 4283, 4301, 4319, 4337, 4355, 4373, 4391, 4409, 4427, 4445, 4463, 4481, 4499, 4517, 4535, 4553, 4571, 4589, 4607, 4625, 4643, 4661, 4679, 4697, 4715, 4733, 4751, 4769, 4787, 4805, 4823, 4841, 4859, 4877, 4895, 4913, 4931, 4949, 4967, 4985, 5003, 5021, 5039, 5057, 5075, 5093, 5111, 5129, 5147, 5165, 5183, 5201, 5219, 5237, 5255, 5273, 5291, 5309, 5327, 5345, 5363, 5381, 5399, 5417, 5435, 5453, 5471, 5489, 5507, 5525, 5543, 5561, 5579, 5597, 5615, 5633, 5651, 5669, 5687, 5705, 5723, 5741, 5759, 5777, 5795, 5813, 5831, 5849, 5867, 5885, 5903, 5921, 5939, 5957, 5975, 5993, 6011, 6029, 6047, 6065, 6083, 6101, 6119, 6137, 6155, 6173, 6191, 6209, 6227, 6245, 6263, 6281, 6299, 6317, 6196, 6214, 6232, 6250, 6268, 6286, 6304, 6322, 6340, 6358, 6376, 6394, 6412, 6430, 6448, 6466, 4, 22, 40, 58, 76, 94, 112, 130, 148, 166, 184, 202, 220, 238, 256, 274, 292, 310, 328, 346, 364, 382, 400, 418, 436, 454, 472, 490, 508, 526, 544, 562, 580, 598, 616, 634, 652, 670, 688, 706, 724, 742, 760, 778, 796, 814, 832, 850, 868, 886, 904, 922, 940, 958, 976, 994, 1012, 1030, 1048, 1066, 1084, 1102, 1120, 1138, 1156, 1174, 1192, 1210, 1228, 1246, 1264, 1282, 1300, 1318, 1336, 1354, 1372, 1390, 1408, 1426, 1444, 1462, 1480, 1498, 1516, 1534, 1552, 1570, 1588, 1606, 1624, 1642, 1660, 1678, 1696, 1714, 1732, 1750, 1768, 1786, 1804, 1822, 1840, 1858, 1876, 1894, 1912, 1930, 1948, 1966, 1984, 2002, 2020, 2038, 2056, 2074, 2092, 2110, 2128, 2146, 2164, 2182, 2200, 2218, 2236, 2254, 2272, 2290, 2308, 2326, 2344, 2362, 2380, 2398, 2416, 2434, 2452, 2470, 2488, 2506, 2524, 2542, 2560, 2578, 2596, 2614, 2632, 2650, 2668, 2686, 2704, 2722, 2740, 2758, 2776, 2794, 2812, 2830, 2848, 2866, 2884, 2902, 2920, 2938, 2956, 2974, 2992, 3010, 3028, 3046, 3064, 3082, 3100, 3118, 3136, 3154, 3172, 3190, 3208, 3226, 3244, 3262, 3280, 3298, 3316, 3334, 3352, 3370, 3388, 3406, 3424, 3442, 3460, 3478, 3496, 3514, 3532, 3550, 3568, 3586, 3604, 3622, 3640, 3658, 3676, 3694, 3712, 3730, 3748, 3766, 3784, 3802, 3820, 3838, 3856, 3874, 3892, 3910, 3928, 3946, 3964, 3982, 4000, 4018, 4036, 4054, 4072, 4090, 4108, 4126, 4144, 4162, 4180, 4198, 4216, 4234, 4252, 4270, 4288, 4306, 4324, 4342, 4360, 4378, 4396, 4414, 4432, 4450, 4468, 4486, 4504, 4522, 4540, 4558, 4576, 4594, 4612, 4630, 4648, 4666, 4684, 4702, 4720, 4738, 4756, 4774, 4792, 4810, 4828, 4846, 4864, 4882, 4900, 4918, 4936, 4954, 4972, 4990, 5008, 5026, 5044, 5062, 5080, 5098, 5116, 5134, 5152, 5170, 5188, 5206, 5224, 5242, 5260, 5278, 5296, 5314, 5332, 5350, 5368, 5386, 5404, 5422, 5440, 5458, 5476, 5494, 5512, 5530, 5548, 5566, 5584, 5602, 5620, 5638, 5656, 5674, 5692, 5710, 5728, 5746, 5764, 5782, 5800, 5818, 5836, 5854, 5872, 5890, 5908, 5926, 5944, 5962, 5980, 5998, 6016, 6034, 6052, 6070, 6088, 6106, 6124, 6142, 6160, 6178, 5810, 5828, 5846, 5864, 5882, 5900, 5918, 5936, 5954, 5972, 5990, 6008, 6026, 6044, 6062, 6080, 6098, 6116, 6134, 6152, 6170, 6188, 6206, 6224, 6242, 6260, 6278, 6296, 6314, 6332, 6350, 6368, 6386, 6404, 6422, 6440, 6458, 6476, 14, 32, 50, 68, 86, 104, 122, 140, 158, 176, 194, 212, 230, 248, 266, 284, 302, 320, 338, 356, 374, 392, 410, 428, 446, 464, 482, 500, 518, 536, 554, 572, 590, 608, 626, 644, 662, 680, 698, 716, 734, 752, 770, 788, 806, 824, 842, 860, 878, 896, 914, 932, 950, 968, 986, 1004, 1022, 1040, 1058, 1076, 1094, 1112, 1130, 1148, 1166, 1184, 1202, 1220, 1238, 1256, 1274, 1292, 1310, 1328, 1346, 1364, 1382, 1400, 1418, 1436, 1454, 1472, 1490, 1508, 1526, 1544, 1562, 1580, 1598, 1616, 1634, 1652, 1670, 1688, 1706, 1724, 1742, 1760, 1778, 1796, 1814, 1832, 1850, 1868, 1886, 1904, 1922, 1940, 1958, 1976, 1994, 2012, 2030, 2048, 2066, 2084, 2102, 2120, 2138, 2156, 2174, 2192, 2210, 2228, 2246, 2264, 2282, 2300, 2318, 2336, 2354, 2372, 2390, 2408, 2426, 2444, 2462, 2480, 2498, 2516, 2534, 2552, 2570, 2588, 2606, 2624, 2642, 2660, 2678, 2696, 2714, 2732, 2750, 2768, 2786, 2804, 2822, 2840, 2858, 2876, 2894, 2912, 2930, 2948, 2966, 2984, 3002, 3020, 3038, 3056, 3074, 3092, 3110, 3128, 3146, 3164, 3182, 3200, 3218, 3236, 3254, 3272, 3290, 3308, 3326, 3344, 3362, 3380, 3398, 3416, 3434, 3452, 3470, 3488, 3506, 3524, 3542, 3560, 3578, 3596, 3614, 3632, 3650, 3668, 3686, 3704, 3722, 3740, 3758, 3776, 3794, 3812, 3830, 3848, 3866, 3884, 3902, 3920, 3938, 3956, 3974, 3992, 4010, 4028, 4046, 4064, 4082, 4100, 4118, 4136, 4154, 4172, 4190, 4208, 4226, 4244, 4262, 4280, 4298, 4316, 4334, 4352, 4370, 4388, 4406, 4424, 4442, 4460, 4478, 4496, 4514, 4532, 4550, 4568, 4586, 4604, 4622, 4640, 4658, 4676, 4694, 4712, 4730, 4748, 4766, 4784, 4802, 4820, 4838, 4856, 4874, 4892, 4910, 4928, 4946, 4964, 4982, 5000, 5018, 5036, 5054, 5072, 5090, 5108, 5126, 5144, 5162, 5180, 5198, 5216, 5234, 5252, 5270, 5288, 5306, 5324, 5342, 5360, 5378, 5396, 5414, 5432, 5450, 5468, 5486, 5504, 5522, 5540, 5558, 5576, 5594, 5612, 5630, 5648, 5666, 5684, 5702, 5720, 5738, 5756, 5774, 5792, 1206, 1224, 1242, 1260, 1278, 1296, 1314, 1332, 1350, 1368, 1386, 1404, 1422, 1440, 1458, 1476, 1494, 1512, 1530, 1548, 1566, 1584, 1602, 1620, 1638, 1656, 1674, 1692, 1710, 1728, 1746, 1764, 1782, 1800, 1818, 1836, 1854, 1872, 1890, 1908, 1926, 1944, 1962, 1980, 1998, 2016, 2034, 2052, 2070, 2088, 2106, 2124, 2142, 2160, 2178, 2196, 2214, 2232, 2250, 2268, 2286, 2304, 2322, 2340, 2358, 2376, 2394, 2412, 2430, 2448, 2466, 2484, 2502, 2520, 2538, 2556, 2574, 2592, 2610, 2628, 2646, 2664, 2682, 2700, 2718, 2736, 2754, 2772, 2790, 2808, 2826, 2844, 2862, 2880, 2898, 2916, 2934, 2952, 2970, 2988, 3006, 3024, 3042, 3060, 3078, 3096, 3114, 3132, 3150, 3168, 3186, 3204, 3222, 3240, 3258, 3276, 3294, 3312, 3330, 3348, 3366, 3384, 3402, 3420, 3438, 3456, 3474, 3492, 3510, 3528, 3546, 3564, 3582, 3600, 3618, 3636, 3654, 3672, 3690, 3708, 3726, 3744, 3762, 3780, 3798, 3816, 3834, 3852, 3870, 3888, 3906, 3924, 3942, 3960, 3978, 3996, 4014, 4032, 4050, 4068, 4086, 4104, 4122, 4140, 4158, 4176, 4194, 4212, 4230, 4248, 4266, 4284, 4302, 4320, 4338, 4356, 4374, 4392, 4410, 4428, 4446, 4464, 4482, 4500, 4518, 4536, 4554, 4572, 4590, 4608, 4626, 4644, 4662, 4680, 4698, 4716, 4734, 4752, 4770, 4788, 4806, 4824, 4842, 4860, 4878, 4896, 4914, 4932, 4950, 4968, 4986, 5004, 5022, 5040, 5058, 5076, 5094, 5112, 5130, 5148, 5166, 5184, 5202, 5220, 5238, 5256, 5274, 5292, 5310, 5328, 5346, 5364, 5382, 5400, 5418, 5436, 5454, 5472, 5490, 5508, 5526, 5544, 5562, 5580, 5598, 5616, 5634, 5652, 5670, 5688, 5706, 5724, 5742, 5760, 5778, 5796, 5814, 5832, 5850, 5868, 5886, 5904, 5922, 5940, 5958, 5976, 5994, 6012, 6030, 6048, 6066, 6084, 6102, 6120, 6138, 6156, 6174, 6192, 6210, 6228, 6246, 6264, 6282, 6300, 6318, 6336, 6354, 6372, 6390, 6408, 6426, 6444, 6462, 6480, 18, 36, 54, 72, 90, 108, 126, 144, 162, 180, 198, 216, 234, 252, 270, 288, 306, 324, 342, 360, 378, 396, 414, 432, 450, 468, 486, 504, 522, 540, 558, 576, 594, 612, 630, 648, 666, 684, 702, 720, 738, 756, 774, 792, 810, 828, 846, 864, 882, 900, 918, 936, 954, 972, 990, 1008, 1026, 1044, 1062, 1080, 1098, 1116, 1134, 1152, 1170, 1188, 6023, 6041, 6059, 6077, 6095, 6113, 6131, 6149, 6167, 6185, 6203, 6221, 6239, 6257, 6275, 6293, 6311, 6329, 6347, 6365, 6383, 6401, 6419, 6437, 6455, 6473, 11, 29, 47, 65, 83, 101, 119, 137, 155, 173, 191, 209, 227, 245, 263, 281, 299, 317, 335, 353, 371, 389, 407, 425, 443, 461, 479, 497, 515, 533, 551, 569, 587, 605, 623, 641, 659, 677, 695, 713, 731, 749, 767, 785, 803, 821, 839, 857, 875, 893, 911, 929, 947, 965, 983, 1001, 1019, 1037, 1055, 1073, 1091, 1109, 1127, 1145, 1163, 1181, 1199, 1217, 1235, 1253, 1271, 1289, 1307, 1325, 1343, 1361, 1379, 1397, 1415, 1433, 1451, 1469, 1487, 1505, 1523, 1541, 1559, 1577, 1595, 1613, 1631, 1649, 1667, 1685, 1703, 1721, 1739, 1757, 1775, 1793, 1811, 1829, 1847, 1865, 1883, 1901, 1919, 1937, 1955, 1973, 1991, 2009, 2027, 2045, 2063, 2081, 2099, 2117, 2135, 2153, 2171, 2189, 2207, 2225, 2243, 2261, 2279, 2297, 2315, 2333, 2351, 2369, 2387, 2405, 2423, 2441, 2459, 2477, 2495, 2513, 2531, 2549, 2567, 2585, 2603, 2621, 2639, 2657, 2675, 2693, 2711, 2729, 2747, 2765, 2783, 2801, 2819, 2837, 2855, 2873, 2891, 2909, 2927, 2945, 2963, 2981, 2999, 3017, 3035, 3053, 3071, 3089, 3107, 3125, 3143, 3161, 3179, 3197, 3215, 3233, 3251, 3269, 3287, 3305, 3323, 3341, 3359, 3377, 3395, 3413, 3431, 3449, 3467, 3485, 3503, 3521, 3539, 3557, 3575, 3593, 3611, 3629, 3647, 3665, 3683, 3701, 3719, 3737, 3755, 3773, 3791, 3809, 3827, 3845, 3863, 3881, 3899, 3917, 3935, 3953, 3971, 3989, 4007, 4025, 4043, 4061, 4079, 4097, 4115, 4133, 4151, 4169, 4187, 4205, 4223, 4241, 4259, 4277, 4295, 4313, 4331, 4349, 4367, 4385, 4403, 4421, 4439, 4457, 4475, 4493, 4511, 4529, 4547, 4565, 4583, 4601, 4619, 4637, 4655, 4673, 4691, 4709, 4727, 4745, 4763, 4781, 4799, 4817, 4835, 4853, 4871, 4889, 4907, 4925, 4943, 4961, 4979, 4997, 5015, 5033, 5051, 5069, 5087, 5105, 5123, 5141, 5159, 5177, 5195, 5213, 5231, 5249, 5267, 5285, 5303, 5321, 5339, 5357, 5375, 5393, 5411, 5429, 5447, 5465, 5483, 5501, 5519, 5537, 5555, 5573, 5591, 5609, 5627, 5645, 5663, 5681, 5699, 5717, 5735, 5753, 5771, 5789, 5807, 5825, 5843, 5861, 5879, 5897, 5915, 5933, 5951, 5969, 5987, 6005, 4739, 4757, 4775, 4793, 4811, 4829, 4847, 4865, 4883, 4901, 4919, 4937, 4955, 4973, 4991, 5009, 5027, 5045, 5063, 5081, 5099, 5117, 5135, 5153, 5171, 5189, 5207, 5225, 5243, 5261, 5279, 5297, 5315, 5333, 5351, 5369, 5387, 5405, 5423, 5441, 5459, 5477, 5495, 5513, 5531, 5549, 5567, 5585, 5603, 5621, 5639, 5657, 5675, 5693, 5711, 5729, 5747, 5765, 5783, 5801, 5819, 5837, 5855, 5873, 5891, 5909, 5927, 5945, 5963, 5981, 5999, 6017, 6035, 6053, 6071, 6089, 6107, 6125, 6143, 6161, 6179, 6197, 6215, 6233, 6251, 6269, 6287, 6305, 6323, 6341, 6359, 6377, 6395, 6413, 6431, 6449, 6467, 5, 23, 41, 59, 77, 95, 113, 131, 149, 167, 185, 203, 221, 239, 257, 275, 293, 311, 329, 347, 365, 383, 401, 419, 437, 455, 473, 491, 509, 527, 545, 563, 581, 599, 617, 635, 653, 671, 689, 707, 725, 743, 761, 779, 797, 815, 833, 851, 869, 887, 905, 923, 941, 959, 977, 995, 1013, 1031, 1049, 1067, 1085, 1103, 1121, 1139, 1157, 1175, 1193, 1211, 1229, 1247, 1265, 1283, 1301, 1319, 1337, 1355, 1373, 1391, 1409, 1427, 1445, 1463, 1481, 1499, 1517, 1535, 1553, 1571, 1589, 1607, 1625, 1643, 1661, 1679, 1697, 1715, 1733, 1751, 1769, 1787, 1805, 1823, 1841, 1859, 1877, 1895, 1913, 1931, 1949, 1967, 1985, 2003, 2021, 2039, 2057, 2075, 2093, 2111, 2129, 2147, 2165, 2183, 2201, 2219, 2237, 2255, 2273, 2291, 2309, 2327, 2345, 2363, 2381, 2399, 2417, 2435, 2453, 2471, 2489, 2507, 2525, 2543, 2561, 2579, 2597, 2615, 2633, 2651, 2669, 2687, 2705, 2723, 2741, 2759, 2777, 2795, 2813, 2831, 2849, 2867, 2885, 2903, 2921, 2939, 2957, 2975, 2993, 3011, 3029, 3047, 3065, 3083, 3101, 3119, 3137, 3155, 3173, 3191, 3209, 3227, 3245, 3263, 3281, 3299, 3317, 3335, 3353, 3371, 3389, 3407, 3425, 3443, 3461, 3479, 3497, 3515, 3533, 3551, 3569, 3587, 3605, 3623, 3641, 3659, 3677, 3695, 3713, 3731, 3749, 3767, 3785, 3803, 3821, 3839, 3857, 3875, 3893, 3911, 3929, 3947, 3965, 3983, 4001, 4019, 4037, 4055, 4073, 4091, 4109, 4127, 4145, 4163, 4181, 4199, 4217, 4235, 4253, 4271, 4289, 4307, 4325, 4343, 4361, 4379, 4397, 4415, 4433, 4451, 4469, 4487, 4505, 4523, 4541, 4559, 4577, 4595, 4613, 4631, 4649, 4667, 4685, 4703, 4721, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; codec2-1.0.1/src/H_16200_9720.h000066400000000000000000000007271412132000500152020ustar00rootroot00000000000000/* FILE....: H_16200_9720.h Static arrays for LDPC codec H_16200_9720, generated by ldpc_gen_c_h_file.m. */ #define H_16200_9720_NUMBERPARITYBITS 6480 #define H_16200_9720_MAX_ROW_WEIGHT 9 #define H_16200_9720_CODELENGTH 16200 #define H_16200_9720_NUMBERROWSHCOLS 9720 #define H_16200_9720_MAX_COL_WEIGHT 12 #define H_16200_9720_DEC_TYPE 0 #define H_16200_9720_MAX_ITER 100 extern const uint16_t H_16200_9720_H_rows[]; extern const uint16_t H_16200_9720_H_cols[]; codec2-1.0.1/src/H_2064_516_sparse.c000066400000000000000000003630661412132000500164170ustar00rootroot00000000000000/* FILE....: ../src/H_2064_516_sparse.c Static arrays for CML LDPC codec, generated by test_ldpc_fsk.m:simple_ut(). */ #define NUMBERPARITYBITS 516 #define MAX_ROW_WEIGHT 12 #define CODELENGTH 2580 #define NUMBERROWSHCOLS 2064 #define MAX_COL_WEIGHT 3 #define DEC_TYPE 0 #define MAX_ITER 10 #include #include "H_2064_516_sparse.h" const uint16_t H_2064_516_sparse_H_rows[] = { 870, 276, 110, 54, 226, 85, 59, 153, 31, 60, 46, 75, 139, 239, 56, 13, 30, 45, 63, 34, 54, 21, 77, 204, 441, 11, 297, 126, 148, 104, 269, 57, 369, 213, 117, 479, 53, 124, 405, 97, 42, 132, 67, 103, 389, 156, 237, 105, 418, 11, 60, 12, 195, 32, 11, 21, 10, 191, 176, 237, 140, 376, 115, 9, 149, 304, 129, 308, 234, 129, 453, 215, 176, 213, 151, 169, 41, 106, 421, 103, 83, 62, 124, 3, 574, 39, 31, 472, 69, 8, 40, 352, 62, 275, 74, 121, 125, 35, 83, 52, 21, 422, 229, 233, 62, 125, 181, 175, 28, 43, 113, 340, 71, 4, 40, 249, 134, 168, 97, 15, 26, 135, 104, 80, 206, 108, 307, 494, 358, 82, 159, 137, 19, 210, 6, 19, 65, 285, 45, 154, 276, 14, 137, 79, 241, 235, 116, 129, 84, 3, 122, 370, 132, 451, 77, 89, 262, 79, 170, 469, 24, 163, 128, 18, 120, 244, 8, 153, 151, 441, 95, 327, 284, 96, 84, 35, 61, 286, 20, 22, 68, 131, 106, 30, 280, 343, 99, 124, 262, 208, 277, 44, 349, 41, 10, 761, 39, 445, 165, 81, 393, 194, 18, 250, 589, 70, 307, 1, 365, 47, 4, 9, 283, 133, 90, 601, 117, 228, 212, 58, 420, 230, 142, 25, 57, 518, 88, 180, 24, 122, 379, 143, 33, 30, 140, 68, 150, 320, 55, 33, 132, 2, 22, 16, 272, 44, 264, 49, 174, 234, 86, 39, 10, 278, 177, 178, 20, 126, 18, 90, 6, 184, 158, 111, 246, 229, 221, 48, 267, 6, 172, 49, 291, 185, 67, 50, 157, 66, 32, 525, 257, 196, 260, 92, 72, 163, 144, 329, 134, 156, 47, 82, 49, 391, 26, 1, 88, 52, 56, 8, 111, 138, 219, 57, 447, 182, 263, 38, 98, 75, 36, 83, 245, 5, 419, 63, 12, 287, 603, 58, 507, 37, 2, 214, 539, 55, 53, 81, 186, 73, 85, 97, 91, 332, 123, 66, 188, 591, 158, 324, 88, 53, 214, 84, 389, 104, 271, 211, 7, 393, 281, 242, 119, 848, 705, 428, 50, 28, 52, 15, 5, 2, 230, 38, 76, 295, 217, 1, 56, 170, 145, 5, 72, 460, 203, 145, 211, 121, 68, 538, 44, 133, 87, 494, 325, 161, 781, 370, 51, 115, 262, 106, 614, 29, 220, 189, 224, 165, 17, 72, 46, 17, 64, 19, 447, 13, 9, 270, 4, 91, 471, 35, 23, 407, 34, 38, 82, 321, 112, 195, 651, 7, 43, 431, 249, 171, 196, 311, 15, 66, 16, 633, 37, 94, 102, 23, 3, 214, 252, 256, 173, 316, 125, 96, 341, 71, 73, 338, 256, 165, 140, 108, 471, 434, 137, 642, 172, 51, 113, 67, 172, 93, 23, 318, 514, 50, 118, 245, 169, 14, 64, 40, 859, 95, 308, 65, 93, 42, 339, 46, 7, 96, 142, 36, 131, 60, 13, 12, 25, 31, 183, 94, 43, 241, 162, 26, 232, 120, 128, 118, 89, 164, 51, 29, 127, 177, 180, 95, 332, 284, 32, 802, 452, 25, 382, 187, 892, 432, 162, 126, 587, 342, 205, 170, 255, 73, 605, 579, 398, 305, 58, 110, 178, 244, 306, 178, 166, 28, 368, 224, 582, 135, 420, 618, 264, 234, 346, 223, 439, 399, 150, 655, 242, 248, 750, 199, 242, 277, 112, 163, 545, 359, 487, 322, 570, 64, 402, 412, 252, 116, 147, 109, 27, 197, 204, 251, 282, 455, 118, 390, 225, 382, 215, 373, 554, 371, 568, 289, 225, 405, 160, 414, 290, 109, 524, 406, 344, 188, 385, 33, 791, 261, 171, 475, 100, 183, 156, 564, 78, 395, 144, 497, 334, 45, 167, 79, 27, 520, 239, 449, 138, 347, 667, 572, 61, 278, 136, 375, 231, 320, 167, 304, 389, 185, 171, 109, 468, 243, 206, 210, 305, 160, 682, 514, 433, 152, 375, 1064, 48, 522, 139, 98, 191, 557, 127, 189, 372, 54, 515, 406, 370, 950, 549, 352, 319, 27, 489, 440, 636, 941, 153, 102, 268, 120, 190, 719, 451, 175, 539, 477, 279, 474, 17, 232, 221, 476, 174, 415, 545, 357, 368, 149, 94, 409, 218, 76, 87, 136, 114, 245, 596, 408, 335, 246, 511, 560, 438, 298, 351, 91, 22, 813, 108, 546, 248, 218, 629, 212, 223, 569, 611, 93, 399, 185, 427, 260, 20, 111, 354, 187, 150, 702, 316, 666, 541, 227, 558, 486, 207, 450, 224, 568, 222, 341, 81, 222, 386, 441, 484, 159, 289, 142, 372, 534, 157, 78, 337, 522, 70, 293, 318, 161, 325, 74, 194, 797, 130, 128, 70, 386, 657, 611, 105, 456, 230, 100, 61, 274, 358, 135, 249, 236, 247, 264, 279, 123, 345, 59, 397, 645, 448, 80, 192, 149, 190, 564, 292, 508, 359, 202, 152, 459, 200, 446, 293, 512, 103, 154, 229, 492, 145, 256, 828, 55, 296, 133, 147, 314, 220, 190, 481, 208, 290, 198, 146, 100, 202, 259, 295, 16, 505, 251, 86, 375, 618, 266, 891, 166, 159, 269, 850, 127, 397, 759, 494, 141, 567, 339, 119, 336, 162, 98, 265, 770, 423, 380, 346, 116, 402, 101, 628, 623, 286, 309, 107, 453, 406, 496, 200, 865, 720, 429, 187, 107, 609, 439, 90, 48, 330, 59, 87, 632, 323, 219, 101, 865, 203, 14, 74, 466, 462, 160, 448, 168, 474, 980, 396, 148, 244, 904, 438, 198, 982, 601, 199, 119, 300, 240, 702, 241, 258, 192, 291, 227, 34, 698, 78, 107, 123, 89, 704, 114, 274, 461, 151, 115, 576, 323, 201, 468, 271, 231, 92, 592, 220, 909, 829, 243, 480, 466, 345, 763, 404, 356, 86, 110, 210, 688, 353, 271, 740, 226, 352, 247, 288, 758, 338, 426, 235, 405, 625, 155, 146, 475, 491, 189, 177, 216, 962, 503, 216, 726, 381, 219, 183, 102, 332, 113, 155, 440, 922, 450, 379, 294, 301, 36, 80, 75, 875, 462, 547, 69, 330, 186, 527, 92, 138, 157, 169, 69, 143, 401, 24, 283, 41, 37, 472, 309, 117, 747, 342, 251, 300, 182, 216, 202, 266, 192, 217, 302, 660, 360, 663, 130, 355, 367, 47, 1103, 519, 811, 586, 488, 983, 652, 303, 201, 759, 860, 416, 585, 268, 428, 928, 819, 821, 379, 340, 493, 260, 752, 599, 314, 182, 444, 612, 369, 692, 311, 523, 622, 335, 259, 499, 225, 526, 409, 188, 709, 356, 606, 777, 222, 541, 327, 201, 176, 551, 544, 1008, 372, 628, 181, 523, 549, 476, 464, 240, 593, 181, 254, 223, 305, 285, 595, 217, 887, 550, 552, 278, 381, 621, 517, 953, 538, 265, 581, 313, 540, 366, 626, 647, 511, 467, 508, 890, 63, 976, 275, 312, 885, 598, 254, 180, 687, 196, 398, 146, 675, 380, 101, 443, 122, 85, 531, 347, 463, 167, 536, 724, 710, 288, 351, 232, 387, 424, 650, 363, 544, 540, 248, 279, 121, 479, 267, 218, 445, 485, 240, 737, 692, 1017, 331, 716, 1130, 207, 602, 274, 750, 261, 572, 131, 435, 672, 253, 729, 542, 739, 1062, 731, 619, 328, 65, 769, 502, 898, 966, 158, 211, 289, 193, 314, 784, 533, 396, 567, 497, 280, 696, 348, 290, 383, 636, 526, 470, 622, 541, 411, 286, 378, 561, 374, 194, 349, 166, 143, 390, 697, 533, 570, 304, 615, 709, 476, 679, 454, 287, 114, 904, 535, 786, 270, 308, 828, 302, 506, 732, 626, 533, 584, 186, 456, 495, 350, 317, 672, 343, 315, 919, 367, 820, 548, 296, 614, 635, 209, 543, 350, 733, 239, 376, 287, 344, 470, 563, 607, 319, 323, 473, 428, 677, 212, 263, 386, 567, 435, 328, 616, 255, 729, 147, 320, 855, 267, 426, 261, 458, 977, 670, 173, 478, 366, 112, 71, 419, 968, 139, 606, 292, 275, 463, 344, 671, 810, 77, 465, 755, 579, 179, 353, 357, 442, 599, 354, 805, 453, 407, 193, 510, 285, 513, 583, 645, 325, 173, 621, 573, 423, 479, 912, 130, 300, 227, 184, 391, 293, 204, 673, 282, 371, 324, 313, 228, 334, 343, 655, 42, 532, 559, 658, 484, 921, 373, 944, 329, 184, 302, 861, 205, 414, 771, 606, 312, 652, 503, 413, 415, 238, 449, 781, 874, 586, 544, 402, 468, 525, 155, 845, 714, 295, 564, 197, 509, 863, 640, 209, 986, 808, 691, 317, 355, 789, 779, 281, 141, 594, 336, 105, 682, 360, 299, 559, 876, 608, 315, 401, 632, 480, 161, 577, 284, 657, 1012, 481, 330, 388, 1011, 524, 423, 1019, 812, 416, 168, 322, 258, 710, 703, 1027, 195, 447, 259, 633, 990, 710, 215, 410, 458, 760, 174, 312, 605, 269, 206, 617, 534, 554, 497, 296, 393, 236, 784, 483, 1189, 892, 602, 788, 709, 382, 831, 537, 695, 99, 563, 424, 759, 432, 281, 795, 319, 422, 684, 331, 866, 377, 638, 247, 501, 711, 463, 475, 631, 507, 310, 298, 252, 1059, 757, 364, 785, 410, 233, 411, 236, 487, 339, 341, 473, 1022, 527, 515, 700, 380, 388, 414, 253, 913, 466, 773, 238, 638, 335, 896, 298, 310, 658, 461, 207, 205, 550, 29, 425, 141, 76, 649, 442, 322, 832, 730, 307, 385, 401, 268, 301, 311, 306, 291, 364, 864, 560, 840, 199, 358, 385, 179, 1142, 520, 986, 600, 712, 1018, 661, 365, 237, 769, 953, 517, 605, 396, 459, 991, 867, 899, 415, 700, 556, 324, 788, 639, 778, 226, 743, 685, 706, 883, 362, 970, 785, 387, 376, 734, 392, 730, 448, 250, 731, 387, 665, 1015, 243, 812, 391, 795, 346, 588, 737, 1077, 874, 933, 412, 817, 585, 550, 491, 273, 640, 208, 542, 338, 436, 895, 694, 257, 899, 583, 629, 327, 815, 744, 573, 1226, 727, 272, 607, 331, 1050, 594, 754, 716, 515, 524, 695, 1086, 297, 1177, 400, 678, 1004, 648, 294, 555, 780, 316, 486, 689, 679, 430, 136, 717, 233, 400, 646, 383, 530, 263, 574, 749, 790, 336, 377, 409, 609, 499, 686, 518, 595, 601, 334, 531, 197, 485, 348, 424, 701, 579, 500, 1147, 797, 1085, 404, 738, 1200, 253, 714, 427, 756, 303, 610, 313, 1399, 770, 455, 732, 796, 824, 1230, 927, 929, 397, 276, 794, 741, 957, 1052, 1002, 213, 392, 566, 461, 832, 798, 433, 590, 723, 718, 755, 878, 446, 615, 669, 776, 608, 659, 565, 443, 457, 407, 577, 631, 255, 365, 399, 152, 766, 814, 556, 640, 1137, 1000, 767, 745, 733, 1194, 529, 238, 1034, 789, 1314, 436, 493, 853, 492, 654, 809, 885, 636, 596, 270, 848, 774, 364, 512, 832, 411, 516, 927, 700, 857, 588, 703, 756, 758, 315, 574, 810, 885, 416, 600, 690, 417, 501, 626, 707, 581, 377, 916, 660, 808, 587, 265, 395, 613, 906, 381, 661, 310, 799, 148, 632, 941, 750, 578, 277, 1065, 1242, 1018, 326, 551, 459, 134, 99, 510, 1097, 198, 673, 531, 450, 697, 394, 749, 948, 193, 664, 965, 818, 454, 419, 556, 721, 742, 473, 886, 647, 694, 209, 906, 433, 674, 620, 666, 464, 446, 634, 728, 430, 630, 990, 435, 371, 534, 394, 467, 928, 326, 723, 490, 816, 699, 490, 530, 384, 361, 772, 374, 554, 619, 672, 613, 924, 677, 1079, 404, 367, 337, 898, 228, 418, 844, 766, 317, 680, 690, 566, 680, 333, 726, 960, 942, 637, 607, 452, 664, 698, 235, 942, 736, 368, 584, 362, 650, 871, 683, 328, 1141, 988, 715, 915, 495, 1084, 919, 613, 179, 888, 355, 144, 1243, 655, 551, 582, 993, 730, 340, 548, 774, 643, 469, 651, 392, 843, 1196, 590, 573, 545, 1211, 593, 439, 1027, 869, 586, 442, 762, 502, 758, 822, 1048, 254, 628, 417, 683, 996, 752, 384, 725, 676, 842, 360, 374, 688, 353, 549, 661, 648, 584, 624, 348, 530, 250, 1135, 667, 1298, 1033, 623, 1102, 715, 594, 888, 871, 833, 321, 634, 491, 766, 505, 297, 1024, 388, 460, 707, 735, 1023, 444, 1098, 629, 505, 807, 581, 543, 687, 598, 337, 434, 806, 1111, 761, 521, 826, 547, 257, 434, 412, 688, 577, 363, 839, 1187, 1306, 648, 808, 504, 760, 429, 309, 916, 503, 777, 403, 1076, 512, 1127, 592, 351, 692, 711, 474, 587, 558, 487, 498, 326, 164, 902, 456, 471, 836, 748, 469, 480, 537, 553, 507, 347, 490, 498, 420, 1010, 598, 1022, 283, 362, 958, 553, 1156, 712, 1108, 718, 753, 1067, 681, 398, 483, 903, 956, 698, 612, 578, 489, 1294, 990, 920, 592, 1113, 862, 464, 1435, 835, 788, 280, 957, 795, 743, 1108, 425, 1026, 879, 488, 701, 931, 610, 741, 1061, 282, 830, 413, 983, 1159, 1067, 1071, 437, 843, 506, 610, 890, 1133, 1034, 954, 452, 925, 785, 836, 620, 597, 722, 258, 858, 342, 455, 927, 706, 299, 1104, 660, 811, 333, 1173, 878, 858, 1336, 816, 457, 948, 563, 1054, 678, 764, 733, 565, 555, 873, 1150, 485, 1303, 496, 796, 1218, 823, 634, 624, 878, 686, 684, 879, 1100, 454, 154, 1002, 357, 822, 676, 740, 578, 350, 1124, 834, 876, 500, 486, 426, 663, 529, 947, 656, 621, 823, 361, 615, 421, 585, 417, 538, 707, 656, 861, 1236, 831, 1087, 508, 768, 1269, 292, 786, 478, 1043, 593, 765, 408, 1439, 806, 528, 801, 912, 882, 1348, 1050, 1077, 528, 349, 996, 799, 976, 1265, 1100, 674, 470, 617, 540, 847, 862, 457, 757, 841, 973, 921, 969, 539, 646, 699, 959, 654, 670, 787, 872, 559, 744, 1276, 666, 273, 569, 833, 191, 775, 896, 576, 935, 1231, 1046, 923, 804, 949, 1201, 572, 303, 1162, 827, 1346, 897, 612, 937, 599, 675, 992, 930, 644, 1151, 301, 1103, 1086, 482, 831, 1130, 472, 753, 1007, 852, 1054, 635, 705, 955, 823, 425, 596, 962, 908, 445, 880, 867, 478, 509, 653, 775, 591, 510, 1055, 798, 1021, 740, 294, 427, 679, 973, 484, 686, 369, 836, 410, 802, 1245, 883, 649, 431, 1102, 1267, 1262, 557, 1092, 837, 164, 881, 726, 1120, 273, 697, 1097, 609, 708, 663, 838, 985, 552, 968, 1042, 1044, 483, 520, 691, 736, 756, 521, 895, 779, 914, 266, 1356, 548, 742, 964, 888, 481, 877, 685, 791, 437, 696, 991, 825, 643, 708, 969, 683, 1080, 1001, 1012, 617, 1030, 734, 792, 1069, 504, 394, 864, 595, 676, 782, 695, 837, 1154, 819, 1104, 437, 413, 383, 913, 627, 624, 987, 1394, 449, 839, 825, 1054, 1180, 378, 1211, 1090, 1114, 804, 897, 558, 1032, 746, 246, 1051, 870, 958, 725, 536, 702, 1035, 971, 356, 1195, 1061, 827, 1090, 526, 1092, 1250, 1025, 231, 947, 659, 272, 1284, 802, 826, 902, 1040, 870, 345, 658, 822, 715, 1012, 872, 575, 945, 1232, 805, 720, 580, 1215, 854, 603, 1074, 1056, 991, 528, 1218, 642, 1060, 1010, 1203, 288, 978, 884, 762, 1118, 763, 430, 786, 922, 928, 886, 529, 706, 403, 1104, 693, 868, 815, 670, 366, 546, 378, 1151, 901, 1522, 1107, 671, 1333, 745, 724, 1230, 1073, 911, 429, 646, 611, 889, 746, 403, 1032, 616, 637, 1382, 767, 1083, 451, 1212, 803, 1318, 849, 662, 955, 712, 971, 571, 496, 977, 1145, 1160, 931, 830, 580, 359, 805, 668, 770, 771, 390, 882, 1329, 1572, 851, 829, 535, 944, 535, 373, 930, 669, 828, 565, 1219, 620, 1308, 793, 361, 938, 859, 482, 946, 1186, 742, 591, 846, 221, 906, 641, 631, 1068, 780, 536, 517, 844, 652, 721, 552, 523, 627, 525, 1186, 944, 1039, 794, 498, 1076, 654, 1167, 856, 1264, 890, 768, 1225, 691, 729, 543, 936, 1016, 1210, 656, 604, 608, 1324, 1035, 1095, 639, 1311, 1281, 877, 1519, 923, 974, 431, 1057, 903, 809, 1137, 569, 1243, 1118, 880, 720, 1102, 1168, 821, 1193, 432, 999, 555, 1013, 1375, 1200, 1080, 495, 982, 519, 630, 1066, 1164, 1091, 1006, 1039, 943, 1195, 1103, 665, 894, 908, 329, 1081, 951, 641, 1060, 793, 719, 1232, 713, 847, 395, 1213, 1038, 1041, 1587, 984, 752, 1125, 929, 1095, 988, 940, 845, 603, 623, 875, 1158, 772, 1503, 506, 816, 1500, 1007, 638, 633, 936, 703, 704, 1173, 1171, 724, 175, 1051, 604, 1174, 682, 819, 854, 384, 1196, 1249, 1029, 509, 504, 537, 722, 571, 1121, 739, 838, 1027, 363, 743, 570, 818, 546, 721, 736, 842, 905, 1372, 932, 1178, 863, 840, 1334, 299, 855, 499, 1293, 1202, 1061, 689, 1516, 866, 614, 862, 955, 981, 1511, 1153, 1256, 768, 501, 1044, 1282, 985, 1455, 1235, 711, 1001, 627, 641, 889, 914, 644, 877, 913, 1149, 1138, 1188, 557, 871, 787, 1015, 727, 731, 868, 892, 560, 778, 1331, 1025, 318, 619, 864, 203, 911, 1052, 705, 1079, 1461, 1090, 994, 1023, 1050, 1535, 625, 999, 1344, 933, 1498, 1045, 939, 1249, 650, 910, 1294, 951, 649, 1163, 418, 1133, 1089, 493, 1116, 1309, 561, 857, 1073, 1112, 1223, 909, 807, 989, 1053, 997, 813, 976, 1074, 527, 1070, 966, 775, 511, 1004, 800, 717, 933, 1120, 900, 1389, 922, 684, 440, 704, 1106, 668, 767, 757, 847, 936, 835, 1293, 893, 895, 647, 1269, 1480, 1304, 782, 1166, 952, 566, 1124, 846, 1203, 354, 893, 1200, 952, 792, 667, 1164, 1003, 718, 1002, 1139, 1163, 1096, 685, 769, 1003, 977, 532, 1128, 905, 926, 443, 1405, 576, 835, 1116, 1145, 562, 1063, 737, 883, 639, 790, 1021, 967, 772, 995, 1165, 754, 1422, 1583, 1075, 997, 1082, 748, 827, 1197, 516, 465, 1451, 645, 879, 809, 739, 855, 1155, 948, 1117, 460, 465, 791, 1098, 693, 673, 1087, 1400, 532, 910, 829, 1171, 1214, 400, 1221, 1603, 1323, 834, 965, 787, 1045, 918, 589, 1074, 1171, 1116, 744, 905, 931, 1176, 1005, 589, 1238, 1107, 972, 1115, 600, 1181, 1609, 1105, 521, 1158, 1049, 306, 1389, 804, 963, 971, 1199, 917, 716, 668, 973, 998, 1174, 903, 590, 1130, 1472, 841, 811, 597, 1399, 956, 719, 1301, 1083, 1044, 622, 1446, 1097, 1206, 1119, 1345, 604, 1324, 920, 1129, 1340, 798, 444, 980, 997, 1232, 1087, 884, 1093, 422, 1135, 909, 1026, 1055, 824, 462, 678, 945, 1234, 1149, 1542, 1177, 675, 1421, 779, 1013, 1486, 1388, 1191, 514, 1219, 760, 974, 773, 477, 1190, 784, 674, 1428, 778, 1257, 477, 1252, 901, 1352, 1037, 1224, 970, 813, 1009, 1162, 519, 1088, 1157, 1409, 1182, 1089, 755, 438, 1076, 725, 869, 900, 436, 1148, 1421, 1588, 956, 978, 749, 950, 932, 516, 1046, 814, 865, 588, 1303, 713, 1614, 1024, 421, 959, 897, 518, 987, 1275, 765, 887, 893, 333, 925, 732, 635, 1169, 910, 1434, 575, 959, 653, 850, 728, 583, 1093, 542, 1316, 1031, 1059, 1122, 642, 1121, 891, 1209, 925, 1299, 896, 932, 1288, 934, 984, 580, 1113, 1413, 1224, 964, 643, 773, 1337, 1663, 1341, 657, 1357, 1473, 1292, 1551, 970, 1209, 792, 1339, 1141, 1140, 1320, 616, 1383, 1126, 980, 1014, 1146, 1245, 859, 1298, 513, 1182, 662, 1014, 1562, 1297, 1151, 502, 1139, 874, 1259, 1645, 1169, 1242, 1072, 1412, 1115, 1275, 1466, 1239, 1038, 1184, 458, 1094, 1440, 810, 1352, 1339, 830, 1354, 801, 848, 671, 1300, 1147, 1047, 1625, 1117, 1046, 1327, 1047, 1237, 1101, 1018, 1016, 745, 1066, 1132, 1221, 841, 1512, 522, 853, 1535, 1248, 975, 694, 1143, 824, 1009, 1185, 1288, 908, 200, 1308, 904, 1665, 687, 843, 943, 1199, 1198, 1379, 1168, 571, 789, 630, 846, 602, 1342, 1350, 995, 1114, 408, 1043, 1304, 945, 751, 793, 741, 1072, 1006, 1401, 1331, 1296, 1152, 856, 1337, 321, 881, 937, 1318, 1535, 1560, 806, 1696, 924, 625, 994, 1058, 996, 1649, 1183, 1442, 1118, 901, 1094, 1408, 1016, 1653, 1259, 800, 1317, 677, 815, 894, 1017, 1278, 957, 1109, 1284, 1321, 1220, 947, 1383, 860, 1220, 783, 873, 979, 1025, 1228, 1007, 1417, 1231, 735, 783, 872, 492, 1028, 1244, 852, 1144, 1645, 1172, 1088, 1110, 1204, 1622, 738, 1146, 1513, 1106, 1564, 1079, 1021, 1436, 776, 917, 1467, 1051, 814, 1217, 812, 1174, 1271, 863, 1187, 1461, 644, 1308, 1154, 1263, 1225, 1121, 867, 1110, 1157, 1139, 989, 1033, 1270, 1163, 1170, 1037, 880, 803, 1098, 807, 968, 1446, 1235, 1064, 1547, 979, 842, 500, 838, 1398, 939, 916, 953, 920, 946, 851, 1428, 1210, 960, 762, 1456, 1519, 1384, 898, 1361, 995, 1100, 1508, 856, 1284, 553, 1330, 1249, 1258, 1020, 764, 1165, 1179, 1047, 1056, 1285, 1266, 1286, 853, 1397, 1515, 987, 547, 1296, 1215, 965, 489, 1444, 800, 849, 1300, 1242, 662, 1085, 818, 918, 748, 954, 1024, 1022, 954, 1109, 1218, 821, 1431, 1587, 1315, 1081, 1140, 754, 943, 1371, 1003, 840, 1475, 722, 1081, 1033, 1216, 1254, 1175, 1122, 1203, 728, 488, 1189, 1377, 1136, 907, 1267, 1416, 751, 1169, 1101, 1289, 1241, 597, 1322, 1625, 1332, 961, 985, 915, 1128, 1069, 764, 1175, 1177, 1156, 889, 1075, 1088, 1251, 1031, 738, 1523, 1229, 994, 1489, 637, 1185, 1651, 1112, 680, 1608, 1197, 513, 1538, 978, 1040, 1000, 1432, 1030, 887, 833, 1057, 1094, 1565, 1190, 696, 1178, 1556, 1045, 1307, 1294, 1436, 1096, 747, 1485, 1128, 1430, 664, 1653, 1180, 1597, 1167, 1452, 776, 1341, 1305, 1142, 1418, 849, 562, 1247, 998, 1391, 1161, 941, 1387, 912, 1149, 1078, 1029, 1141, 1197, 582, 701, 961, 1423, 1195, 1674, 1205, 964, 1633, 929, 1127, 1571, 1581, 1291, 681, 1272, 781, 981, 783, 765, 1295, 974, 1015, 1516, 873, 1324, 482, 1262, 1371, 1648, 1101, 1240, 1115, 837, 1048, 1301, 763, 1260, 1229, 1426, 1316, 1208, 963, 1083, 1125, 992, 882, 1034, 467, 1176, 1429, 1610, 1452, 1376, 753, 1184, 1239, 777, 1291, 1264, 1223, 659, 1378, 797, 1632, 1071, 575, 1099, 926, 801, 1042, 1322, 1111, 1234, 1112, 979, 962, 993, 713, 1271, 1008, 1533, 653, 999, 746, 876, 751, 1123, 1319, 693, 1354, 1209, 1207, 1159, 1250, 1192, 1385, 1350, 952, 1543, 1020, 1067, 1632, 1119, 1635, 1165, 1161, 1483, 1347, 983, 669, 796, 1412, 1684, 1374, 886, 1468, 1479, 1594, 1781, 1113, 1274, 969, 1343, 1403, 1261, 1440, 681, 1424, 1216, 1207, 1210, 1172, 1325, 935, 1414, 1123, 1287, 1158, 1032, 1589, 1554, 1326, 562, 1313, 949, 1296, 1760, 1260, 1552, 1129, 1422, 1258, 1542, 1525, 1253, 1089, 1255, 1131, 1220, 1652, 869, 1410, 1351, 1266, 1518, 868, 884, 1302, 1486, 1362, 1185, 1652, 1172, 1205, 1388, 1479, 1270, 1224, 1297, 1138, 817, 1170, 1214, 1240, 1153, 1551, 817, 915, 1553, 1319, 1496, 717, 1194, 850, 1091, 1256, 1541, 1039, 561, 1358, 938, 1707, 1557, 1368, 1160, 1342, 1404, 1515, 1435, 727, 790, 1396, 854, 891, 1783, 1365, 1271, 1183, 1400, 1205, 1367, 1068, 794, 1006, 803, 1485, 1164, 1422, 1502, 1334, 1359, 1215, 1698, 1042, 1204, 1028, 1458, 1550, 1600, 1111, 1700, 1132, 992, 1134, 1430, 1049, 1731, 1323, 1555, 1228, 1456, 1099, 1545, 1091, 1685, 1445, 857, 1612, 735, 1126, 946, 1168, 1399, 1222, 1192, 1373, 1575, 1317, 1073, 1506, 1143, 1440, 1438, 1263, 1105, 1327, 1256, 1126, 1619, 1265, 924, 961, 1023, 866, 1070, 1437, 1132, 1487, 1675, 1333, 1423, 1182, 1295, 1683, 939, 1154, 1617, 1212, 1665, 1414, 1107, 1534, 1282, 1402, 1485, 1096, 1059, 1495, 981, 1235, 1381, 1017, 1240, 1534, 875, 1561, 1279, 1354, 1353, 1396, 1243, 1547, 1356, 1166, 1181, 1343, 1285, 1247, 1255, 1357, 975, 919, 1318, 988, 1477, 1521, 1358, 1206, 1549, 1146, 1117, 1305, 1019, 1406, 982, 942, 1014, 1075, 1004, 860, 1512, 1241, 1053, 858, 1620, 1527, 1415, 1251, 1497, 1108, 1166, 1667, 967, 1434, 665, 1335, 1313, 1406, 1283, 902, 1362, 1358, 1501, 1222, 1427, 1280, 1309, 984, 1647, 1573, 1449, 618, 1328, 1310, 1120, 844, 1739, 1424, 1246, 1474, 1561, 699, 1277, 826, 1386, 1257, 1227, 1056, 1189, 975, 1125, 1329, 917, 1464, 1784, 1405, 1152, 1153, 935, 1092, 1464, 1040, 907, 1592, 1428, 1136, 1063, 1420, 1390, 1251, 1217, 1268, 1143, 708, 1603, 1407, 1160, 1207, 1340, 1488, 998, 1315, 1344, 1300, 1365, 1134, 1401, 1629, 1366, 1008, 1013, 1211, 1179, 1188, 825, 1262, 1393, 1469, 1173, 1077, 1248, 1417, 1095, 907, 1654, 1320, 1065, 1598, 799, 1601, 1656, 1190, 714, 1754, 1595, 651, 1647, 1063, 1397, 1157, 1481, 1237, 1060, 1482, 1287, 1192, 1618, 1394, 1259, 1558, 1635, 1162, 1377, 1803, 1492, 1476, 774, 1626, 1420, 1504, 689, 1687, 1372, 1616, 1199, 1471, 934, 1342, 1351, 1261, 1442, 923, 723, 1361, 1084, 1450, 1233, 1011, 1389, 1338, 1186, 1340, 1110, 1327, 1225, 690, 1483, 1064, 1443, 1258, 1697, 1213, 966, 1687, 1161, 1314, 1605, 1877, 1477, 747, 1280, 1028, 1138, 820, 782, 1560, 1038, 1592, 1517, 894, 1586, 568, 1276, 1379, 1753, 1230, 1749, 1122, 1458, 1080, 1526, 1411, 1309, 1332, 1430, 1381, 1255, 1648, 1248, 1267, 1459, 914, 1085, 1184, 1180, 1459, 1629, 1463, 1378, 845, 1343, 1415, 1037, 1292, 1336, 1431, 734, 1426, 1193, 1688, 1279, 940, 1313, 1036, 1155, 1099, 1406, 1490, 1326, 1556, 1069, 1005, 1142, 1010, 1273, 1312, 1546, 761, 1624, 1065, 921, 1055, 1134, 1518, 839, 1435, 1234, 1244, 1238, 1297, 1254, 1494, 1484, 1145, 1604, 1404, 1289, 1645, 1131, 1658, 1198, 1392, 1557, 1667, 1082, 972, 918, 1432, 1701, 1637, 1312, 1579, 1680, 1864, 1825, 1194, 1457, 1370, 1411, 1479, 1398, 1510, 1049, 1447, 1576, 1252, 1290, 1360, 1679, 1070, 1506, 1699, 1359, 1204, 1222, 1818, 1596, 1363, 834, 1383, 1513, 1499, 1766, 1646, 1629, 1328, 1423, 1460, 1640, 1923, 1302, 1216, 1364, 1369, 1233, 1739, 1031, 1624, 1505, 1434, 1630, 1451, 1196, 1548, 1527, 1454, 1520, 1707, 1407, 1467, 1561, 1604, 1319, 1543, 1456, 1374, 881, 1453, 1323, 1735, 1246, 1660, 1381, 1188, 1709, 1391, 1532, 771, 1264, 851, 1219, 1322, 1639, 1144, 960, 1615, 1136, 1732, 1690, 1371, 1433, 1377, 1459, 1571, 1447, 1058, 1245, 1451, 1053, 949, 1894, 1531, 1305, 1253, 1493, 1303, 1380, 1581, 1330, 1082, 1036, 1541, 1520, 1437, 1585, 1359, 1425, 1410, 1857, 1465, 1239, 1208, 1585, 1642, 1807, 1743, 1710, 1167, 1135, 1465, 1513, 1175, 1759, 1524, 1655, 1348, 1471, 1150, 1581, 1917, 1694, 1545, 911, 1622, 852, 1348, 1191, 1261, 1410, 1491, 1237, 1401, 1822, 1325, 1457, 1668, 1236, 1449, 1698, 1270, 1392, 1418, 1486, 1133, 1797, 1503, 1041, 1198, 1392, 1041, 1632, 1621, 1311, 1638, 1832, 1364, 1452, 1499, 1472, 1913, 1295, 1208, 1766, 1369, 1780, 1541, 1462, 1545, 1336, 1569, 1693, 1385, 1276, 1547, 1266, 1338, 1505, 1029, 1493, 1670, 958, 1572, 1607, 1446, 1634, 1530, 1414, 1704, 1552, 1441, 1653, 1480, 1310, 1712, 1347, 1403, 1408, 951, 1360, 1213, 1562, 1710, 1419, 1528, 1589, 1443, 1345, 1636, 1071, 1637, 1026, 1644, 1030, 1638, 1221, 1119, 1570, 1712, 1253, 989, 1742, 1790, 1537, 1619, 1508, 1150, 1326, 1926, 1470, 1702, 940, 1733, 1362, 1429, 1299, 938, 1606, 1453, 1568, 1335, 1738, 1564, 1312, 1275, 1718, 1575, 1528, 937, 1491, 1415, 1179, 900, 1843, 1471, 1345, 1536, 1573, 930, 1301, 1020, 1482, 1412, 1274, 1105, 1347, 1344, 1764, 1729, 1062, 1563, 1843, 1532, 1228, 1302, 1273, 1397, 1591, 1391, 1052, 1662, 1470, 1181, 1425, 1427, 1578, 1263, 1395, 1292, 1317, 899, 1808, 1539, 1650, 1231, 1376, 1515, 1001, 1330, 1603, 1331, 1419, 1369, 1444, 1709, 1374, 1068, 1019, 1306, 1298, 1293, 1011, 1831, 1502, 1590, 1238, 1148, 1269, 1555, 1114, 1036, 1740, 1325, 1405, 1670, 1062, 1773, 1688, 1335, 1476, 1827, 1723, 820, 1748, 1072, 1536, 1398, 1732, 1587, 1400, 1529, 1355, 1304, 1651, 1722, 1268, 1673, 1800, 1178, 1503, 1847, 1656, 1497, 1595, 1689, 1576, 1740, 963, 1822, 1393, 1743, 1246, 1499, 1106, 1356, 1387, 1367, 1745, 1009, 780, 1458, 1206, 1673, 1250, 1662, 1611, 1555, 1193, 1353, 1597, 1559, 1445, 1187, 1677, 1155, 1464, 1497, 1713, 1357, 1450, 1696, 1257, 1339, 1685, 1894, 1615, 1733, 1315, 1364, 1363, 1418, 1123, 1738, 1445, 1620, 1660, 1156, 1599, 926, 1507, 1640, 1763, 1289, 1791, 1648, 1601, 1321, 1544, 1577, 1683, 1376, 1543, 1540, 1361, 1666, 1273, 1433, 1504, 993, 1265, 1288, 1454, 1482, 1736, 1481, 1439, 1286, 1467, 1461, 1474, 1510, 1489, 1681, 934, 1643, 1606, 1791, 1491, 1341, 1429, 1127, 1227, 1299, 1600, 1904, 1395, 1588, 1084, 1057, 1183, 1252, 1283, 1478, 1611, 1320, 1851, 1355, 1223, 1147, 1403, 1576, 1035, 1460, 1260, 1641, 1538, 1368, 1475, 1511, 1672, 1329, 1764, 1426, 1353, 1691, 1214, 1915, 1247, 1538, 1658, 1716, 1689, 1000, 986, 1884, 1975, 1730, 1899, 1623, 1834, 1981, 1952, 1473, 1490, 1529, 1557, 1748, 1544, 1617, 1720, 1690, 1667, 1630, 1641, 1678, 1750, 1367, 1525, 1786, 1447, 1395, 1390, 1826, 1598, 1427, 861, 1582, 1658, 1878, 1768, 1651, 1699, 1532, 1498, 1529, 1765, 1939, 1384, 1723, 1872, 1758, 1438, 1742, 1093, 1657, 1759, 1650, 1634, 1519, 1290, 1569, 1573, 1591, 1643, 1928, 1411, 1786, 1582, 1661, 1521, 1657, 1609, 1633, 972, 1468, 1644, 1776, 1388, 1692, 1409, 1278, 1812, 1631, 1873, 1310, 1272, 1109, 1333, 1522, 1722, 1612, 1048, 1741, 1674, 1755, 1711, 1568, 1437, 1484, 1567, 1746, 1583, 1148, 1307, 1570, 1314, 950, 1906, 1654, 1379, 1494, 1518, 1455, 1393, 1703, 1390, 1606, 1226, 1669, 1580, 1692, 1719, 1366, 1438, 1433, 1982, 1514, 1676, 1609, 1742, 1690, 1819, 1763, 1730, 1321, 1566, 2031, 1680, 1741, 1839, 1762, 1925, 1536, 1524, 1283, 1723, 1924, 1706, 1558, 1375, 1758, 1417, 1691, 1350, 1727, 1475, 1537, 1457, 1506, 1917, 1386, 1695, 1753, 1355, 1756, 1775, 1613, 1563, 1425, 1488, 1176, 1827, 1556, 1131, 1349, 1448, 1281, 1749, 1664, 1572, 1744, 1860, 1813, 1762, 1642, 1689, 1928, 1570, 1878, 1890, 1739, 1809, 1799, 1663, 1591, 1495, 1695, 1762, 1580, 1306, 1879, 1462, 1413, 1637, 1078, 1567, 1785, 1078, 1659, 1801, 1530, 1769, 1579, 1549, 1747, 1682, 1796, 1668, 1727, 1822, 1836, 1378, 1551, 1501, 1810, 1478, 1278, 1574, 1764, 1533, 1627, 1714, 1489, 1480, 1726, 1584, 1643, 1387, 1655, 1058, 1720, 1370, 1595, 1795, 1832, 1843, 1212, 1871, 1840, 1886, 1831, 1720, 1272, 1765, 1956, 1496, 1855, 1144, 1830, 1404, 1593, 1507, 967, 1768, 1671, 1842, 1469, 1829, 1593, 1621, 1516, 1763, 1612, 1982, 1124, 1613, 1715, 1375, 1311, 1844, 1509, 1448, 1542, 1660, 1005, 1490, 1408, 1620, 1707, 1277, 1568, 1373, 1887, 1827, 1778, 1510, 1782, 1886, 1537, 1424, 1402, 1282, 1496, 1681, 1649, 1286, 1858, 1566, 1622, 1972, 1562, 1868, 1316, 1754, 1725, 1559, 1086, 1873, 1594, 1792, 1351, 1579, 1889, 1043, 1380, 1789, 1588, 1481, 1487, 1650, 1717, 1602, 1413, 1226, 1370, 1368, 1346, 1493, 1902, 1554, 1713, 1564, 1244, 1432, 1597, 1328, 1285, 1828, 1484, 1466, 1719, 1550, 1909, 1854, 1582, 1596, 1903, 1751, 1530, 1905, 1227, 1771, 1605, 1807, 1777, 1738, 1592, 1460, 1507, 1708, 1745, 1385, 1686, 1869, 1277, 1517, 1867, 1776, 1846, 1809, 1803, 1674, 1748, 1191, 1837, 1420, 1754, 1274, 1644, 1201, 1366, 1450, 1402, 1757, 1140, 1500, 1465, 1509, 1793, 1352, 1804, 1702, 1560, 1431, 1549, 1679, 1769, 1615, 1229, 1740, 1775, 1534, 1498, 1757, 1416, 1567, 1711, 1360, 1472, 1705, 1923, 1782, 1746, 1767, 1575, 1531, 1628, 1772, 1868, 1771, 1628, 1719, 1287, 1623, 1900, 1709, 1703, 1840, 1382, 1841, 1808, 1860, 1788, 1652, 1687, 1810, 1488, 1661, 1867, 1476, 1785, 1646, 1468, 1611, 1159, 1492, 1291, 1463, 1716, 1778, 1669, 1448, 1539, 1633, 1511, 1523, 1672, 1821, 1718, 1349, 1875, 1659, 1835, 1558, 1520, 1670, 1639, 1540, 1885, 1779, 1972, 1531, 1874, 1627, 1202, 1639, 1553, 1540, 1539, 1646, 1439, 1856, 1444, 1279, 1241, 1952, 1701, 1280, 1616, 1332, 1692, 1664, 1373, 1781, 1733, 1995, 1571, 1777, 1593, 1578, 1869, 1233, 1916, 1504, 1849, 1704, 1729, 1896, 1953, 1449, 1899, 2007, 1744, 2003, 1875, 1935, 2016, 1993, 1527, 1788, 1734, 1726, 1823, 1636, 1619, 1734, 1755, 1829, 1773, 1799, 1700, 1947, 1938, 1647, 1789, 1550, 1396, 1590, 1964, 1951, 1634, 1066, 1856, 1717, 1988, 1791, 1664, 1977, 1544, 1715, 1563, 1801, 1988, 1725, 1815, 1921, 1897, 1442, 1831, 1217, 1752, 1866, 1861, 1659, 1706, 1724, 1678, 1714, 1724, 1958, 2036, 1487, 1978, 1657, 1997, 1800, 1895, 1708, 1811, 1678, 1705, 1962, 1927, 1699, 1694, 1625, 1501, 1844, 1686, 1958, 1614, 1307, 1129, 1407, 1683, 1835, 1800, 1152, 1793, 1879, 1820, 1747, 1598, 1922, 1553, 1768, 1811, 1838, 1290, 1953, 1781, 1610, 1626, 1936, 1751, 1665, 1584, 1823, 1816, 1758, 1932, 1454, 1793, 1436, 1817, 1675, 1697, 1927, 1655, 1546, 1677, 2003, 1666, 1735, 1811, 1808, 1813, 1834, 1850, 1821, 1565, 1975, 2045, 1816, 1809, 1951, 1862, 2048, 1911, 1686, 1441, 1878, 1976, 1865, 1906, 1608, 1871, 1469, 1803, 1932, 1798, 1862, 1881, 1577, 1802, 1979, 1455, 1977, 1820, 1495, 1816, 1907, 1784, 1774, 1789, 1743, 1533, 1830, 1684, 1201, 1548, 1566, 1334, 1776, 1724, 1752, 1880, 1908, 1863, 1898, 1925, 1693, 2033, 1799, 1910, 1893, 1928, 1833, 1841, 1706, 1801, 1599, 1737, 1934, 1688, 2035, 1885, 1796, 1807, 1881, 1419, 1901, 1948, 1137, 1685, 1848, 1624, 1829, 1868, 1630, 1819, 1772, 1946, 1787, 1805, 1941, 1854, 1554, 1722, 1729, 1877, 1863, 1736, 1626, 1918, 1631, 1628, 1986, 1616, 1679, 1820, 1869, 1756, 1662, 1876, 1380, 1815, 1914, 1680, 1956, 1870, 1947, 1421, 1886, 1936, 1911, 1918, 1728, 1346, 1769, 2021, 1601, 1912, 1548, 1835, 1502, 1605, 1927, 1372, 1865, 1673, 1891, 1494, 1882, 1779, 1814, 1940, 1806, 1759, 2011, 1441, 1623, 1846, 1514, 1663, 2033, 1552, 1819, 1574, 1850, 1671, 1702, 1757, 1756, 1836, 1384, 1980, 1640, 2038, 2006, 1794, 1805, 1785, 1955, 1580, 1930, 1583, 1526, 1523, 1833, 1725, 1462, 1883, 1682, 1794, 1995, 1892, 1874, 1349, 1818, 1730, 1604, 1170, 1890, 1777, 1806, 1701, 1589, 1911, 1254, 1526, 1942, 1825, 1514, 1966, 1780, 1864, 1671, 1817, 1677, 1443, 1855, 1569, 1922, 1934, 1712, 1931, 1765, 1888, 1463, 1627, 1505, 1492, 1870, 1590, 1565, 1922, 1698, 1956, 1985, 2006, 1635, 1931, 1899, 1600, 1973, 1268, 1823, 1710, 1867, 1916, 1804, 1642, 1466, 1767, 1832, 1996, 1672, 1824, 1921, 1924, 1838, 1904, 1908, 1861, 1960, 1998, 1728, 1760, 1394, 1993, 1546, 1974, 1525, 1847, 1202, 1613, 1453, 1602, 1826, 1875, 1594, 1596, 1753, 1970, 1478, 2055, 1853, 1713, 1474, 1797, 1682, 1943, 1745, 1830, 1814, 1897, 1621, 1817, 1802, 1617, 1649, 1978, 1500, 1483, 1804, 2040, 1983, 1775, 1893, 1636, 1896, 1774, 1784, 1903, 1782, 1783, 1852, 1894, 1770, 1924, 2020, 1926, 1929, 1714, 2009, 1989, 1865, 1898, 1737, 1945, 1847, 1696, 1767, 1907, 1715, 1849, 1967, 1694, 1747, 1337, 1608, 1363, 1676, 1734, 1859, 1755, 1470, 1584, 1957, 1919, 1528, 1788, 1900, 1741, 1508, 1971, 1749, 1937, 1970, 1941, 1794, 1693, 1721, 1991, 1915, 1997, 1824, 1942, 1996, 1236, 1669, 1887, 1654, 1982, 1898, 1761, 1883, 1700, 1521, 1681, 2011, 1751, 1281, 1684, 1607, 1845, 1860, 1524, 1844, 1901, 1999, 1760, 1940, 1705, 1736, 1987, 1721, 2033, 2024, 1990, 2047, 1965, 2018, 2044, 1473, 1920, 2030, 1968, 2045, 2025, 1995, 2054, 2017, 1559, 1876, 1891, 1871, 2013, 1949, 1821, 1892, 1834, 1946, 1778, 1880, 1864, 2042, 2016, 2026, 1945, 2031, 1574, 1853, 1980, 2034, 2056, 2012, 1912, 1812, 2031, 1836, 1992, 2058, 1941, 1814, 2007, 2051, 2048, 2044, 1880, 1926, 2047, 1761, 1839, 1365, 1772, 1986, 1985, 1905, 2060, 1909, 1857, 1944, 1826, 2000, 2050, 2023, 2020, 1931, 2023, 2043, 2005, 1967, 1872, 1907, 1944, 1981, 1965, 1999, 1711, 1916, 1517, 1958, 1954, 2023, 1961, 2064, 1798, 1577, 1930, 1896, 1859, 1382, 1987, 2039, 2037, 1787, 1666, 1984, 1602, 1933, 2008, 2057, 1338, 1976, 2038, 1971, 1950, 1954, 1991, 1828, 1695, 1845, 1873, 1889, 2037, 1641, 1961, 1731, 1884, 1881, 1914, 1978, 1783, 1925, 1882, 2010, 2062, 1846, 1921, 2029, 2046, 1910, 2026, 1953, 1607, 2063, 2059, 2000, 1884, 2008, 2014, 2052, 2015, 1848, 1716, 2003, 2036, 2006, 1932, 1973, 1976, 1522, 2028, 2059, 1917, 1947, 2027, 1954, 1964, 2059, 2035, 1999, 1910, 1893, 1877, 1933, 1934, 2019, 1858, 1990, 2037, 1876, 1903, 1792, 1966, 2025, 1509, 1853, 1908, 1837, 2044, 1914, 1938, 1913, 2004, 1824, 2047, 1856, 1938, 2032, 2022, 1870, 1912, 1779, 2039, 2049, 1761, 1983, 1950, 2054, 2002, 1959, 1848, 1919, 1790, 1993, 1967, 1900, 1718, 1897, 2019, 2051, 2053, 1838, 1930, 1918, 2015, 2036, 1904, 1962, 1890, 1852, 1845, 2009, 2050, 2004, 2032, 1883, 2057, 2028, 2040, 2056, 1851, 1737, 1939, 1872, 1939, 1975, 1988, 1676, 1919, 1994, 2019, 1984, 1885, 2005, 1812, 2008, 2040, 1957, 2028, 1842, 2032, 2039, 2062, 1828, 1992, 1746, 1841, 1980, 1940, 1994, 1416, 1937, 1866, 1996, 1866, 1929, 2013, 1815, 2064, 1959, 2012, 2022, 1735, 1727, 1950, 1981, 1991, 2043, 1929, 1920, 1578, 1859, 1960, 1949, 1852, 1955, 1966, 2018, 2063, 1656, 2055, 2041, 1969, 2046, 1905, 2017, 1726, 1943, 1717, 2009, 1802, 2062, 1750, 1675, 1990, 1963, 1795, 2061, 1998, 2042, 1770, 2049, 1862, 1668, 2056, 2000, 1987, 2002, 1797, 1882, 1963, 1512, 1708, 1949, 1901, 1935, 1997, 1971, 2017, 2054, 1920, 1691, 1585, 2001, 2005, 1963, 2015, 1933, 2026, 1909, 1913, 1704, 1798, 1962, 1610, 2024, 1969, 1810, 1994, 1703, 2055, 2021, 2030, 2024, 1986, 1906, 1825, 2002, 1770, 1855, 1837, 2014, 2010, 1849, 1697, 1661, 1863, 1935, 2052, 1957, 2058, 1937, 2061, 2035, 2045, 1984, 1888, 1965, 2058, 1854, 2007, 1842, 2060, 1888, 1989, 1599, 2014, 1638, 2027, 1731, 2012, 1891, 1936, 1614, 1618, 1806, 2030, 1586, 2057, 1968, 1974, 1477, 1959, 1840, 1973, 1970, 1955, 1951, 1998, 1985, 1892, 1818, 1874, 1961, 2046, 1989, 1960, 2041, 2049, 2001, 1948, 2048, 1983, 1944, 1790, 2042, 2051, 1992, 1923, 2041, 1952, 1972, 1945, 2029, 1948, 1974, 1943, 2038, 2050, 1942, 1968, 1805, 1977, 2004, 1752, 1787, 1915, 1732, 2063, 2021, 1766, 1946, 1618, 1858, 2025, 1857, 1773, 1895, 1833, 1887, 1744, 1979, 2010, 1850, 2061, 2016, 1780, 1586, 2027, 1969, 2034, 1979, 2018, 1813, 1839, 1902, 2013, 2011, 2052, 1851, 2029, 2064, 1386, 1750, 1902, 1771, 2034, 2001, 1795, 2053, 1792, 1631, 1964, 2053, 1796, 1409, 1774, 1721, 1889, 1879, 1728, 2020, 2043, 2060, 1895, 2022, 1861, 1786 }; const uint16_t H_2064_516_sparse_H_cols[] = { 208, 242, 84, 114, 314, 135, 349, 90, 64, 57, 26, 52, 16, 142, 120, 244, 167, 164, 133, 179, 22, 180, 413, 161, 224, 121, 57, 22, 394, 17, 9, 54, 84, 20, 98, 311, 322, 308, 86, 91, 77, 41, 110, 192, 18, 11, 210, 133, 248, 276, 389, 100, 37, 4, 239, 15, 32, 15, 7, 10, 109, 82, 19, 50, 137, 278, 43, 181, 89, 206, 113, 285, 10, 95, 12, 180, 23, 93, 100, 124, 200, 130, 81, 149, 6, 251, 181, 227, 156, 215, 194, 284, 206, 177, 171, 174, 40, 136, 187, 89, 98, 156, 44, 30, 48, 78, 349, 126, 56, 3, 212, 43, 111, 183, 63, 54, 35, 63, 333, 158, 96, 100, 270, 38, 97, 4, 139, 163, 67, 251, 139, 42, 214, 117, 26, 98, 132, 105, 13, 61, 330, 223, 183, 95, 295, 95, 55, 29, 65, 35, 75, 130, 8, 98, 344, 46, 239, 155, 131, 75, 246, 3, 44, 260, 199, 21, 99, 118, 76, 8, 87, 271, 257, 171, 98, 44, 255, 17, 276, 91, 50, 21, 90, 262, 118, 208, 214, 35, 140, 159, 58, 277, 158, 180, 53, 93, 58, 264, 40, 98, 4, 284, 183, 24, 7, 123, 133, 57, 223, 124, 156, 202, 34, 324, 67, 452, 63, 123, 303, 303, 169, 40, 32, 24, 32, 5, 220, 218, 103, 222, 113, 111, 100, 30, 146, 266, 4, 195, 14, 55, 145, 37, 40, 18, 184, 188, 267, 38, 116, 35, 60, 53, 133, 58, 9, 296, 63, 57, 30, 17, 86, 157, 105, 29, 73, 285, 122, 9, 31, 199, 347, 73, 55, 135, 86, 2, 42, 67, 119, 21, 351, 35, 213, 173, 61, 176, 194, 109, 72, 77, 273, 133, 244, 90, 313, 220, 27, 192, 63, 299, 208, 202, 3, 66, 14, 19, 127, 68, 348, 246, 26, 87, 75, 20, 215, 93, 212, 180, 149, 114, 133, 48, 235, 17, 247, 257, 42, 149, 57, 363, 75, 334, 67, 97, 29, 109, 241, 59, 332, 15, 228, 6, 186, 81, 271, 31, 103, 122, 150, 105, 110, 92, 277, 213, 358, 37, 100, 129, 46, 367, 118, 26, 115, 211, 3, 77, 217, 23, 24, 145, 70, 48, 68, 179, 112, 30, 110, 177, 14, 97, 68, 66, 103, 105, 83, 231, 29, 383, 45, 64, 42, 32, 201, 269, 67, 9, 149, 3, 34, 86, 373, 51, 409, 130, 39, 80, 177, 118, 34, 248, 175, 50, 37, 76, 14, 7, 122, 49, 262, 27, 79, 102, 295, 113, 26, 111, 135, 10, 356, 97, 21, 2, 129, 451, 140, 60, 42, 191, 33, 152, 25, 279, 99, 22, 124, 168, 305, 34, 104, 224, 154, 50, 71, 97, 60, 209, 73, 57, 10, 322, 159, 375, 104, 17, 273, 374, 81, 121, 160, 157, 411, 88, 236, 166, 88, 53, 164, 135, 36, 375, 291, 211, 4, 233, 84, 94, 47, 29, 10, 306, 54, 183, 16, 128, 42, 86, 96, 488, 31, 109, 150, 42, 332, 110, 315, 44, 321, 82, 109, 235, 80, 212, 35, 128, 80, 215, 7, 115, 44, 102, 281, 86, 27, 79, 280, 33, 227, 142, 113, 104, 102, 281, 161, 238, 197, 106, 111, 72, 163, 76, 41, 58, 4, 46, 45, 122, 281, 219, 52, 53, 45, 66, 264, 69, 37, 16, 138, 221, 176, 176, 98, 42, 75, 92, 80, 158, 163, 71, 26, 49, 109, 108, 70, 85, 378, 186, 178, 9, 12, 4, 74, 25, 65, 207, 8, 339, 5, 45, 205, 163, 234, 14, 56, 77, 62, 185, 55, 89, 19, 228, 117, 113, 80, 9, 8, 38, 74, 10, 112, 32, 205, 8, 242, 142, 119, 26, 158, 28, 148, 54, 69, 28, 81, 91, 142, 78, 158, 49, 66, 45, 179, 249, 91, 90, 219, 153, 339, 90, 14, 56, 60, 392, 9, 162, 274, 102, 79, 89, 206, 114, 365, 2, 232, 172, 36, 8, 14, 317, 173, 65, 2, 37, 112, 273, 38, 179, 107, 244, 9, 173, 67, 141, 265, 156, 96, 102, 158, 77, 96, 331, 2, 102, 302, 94, 23, 93, 92, 408, 95, 229, 2, 25, 326, 62, 82, 166, 185, 7, 170, 15, 30, 216, 93, 94, 186, 24, 124, 268, 36, 108, 156, 448, 65, 134, 356, 79, 91, 165, 63, 30, 123, 56, 164, 97, 348, 262, 72, 294, 3, 33, 36, 143, 79, 31, 158, 124, 46, 131, 115, 103, 33, 280, 22, 69, 80, 343, 386, 295, 107, 39, 122, 18, 215, 78, 166, 136, 163, 222, 5, 405, 196, 253, 401, 78, 138, 184, 190, 131, 5, 141, 91, 84, 10, 210, 184, 171, 39, 20, 283, 92, 337, 257, 172, 160, 28, 134, 170, 18, 110, 108, 85, 21, 62, 122, 23, 10, 128, 161, 152, 156, 65, 249, 124, 191, 282, 139, 220, 238, 24, 60, 66, 41, 196, 185, 68, 72, 51, 121, 12, 218, 13, 101, 89, 93, 298, 293, 197, 201, 332, 36, 128, 160, 182, 42, 19, 53, 259, 116, 331, 131, 84, 125, 43, 285, 79, 112, 66, 66, 288, 93, 93, 158, 87, 104, 134, 131, 156, 58, 33, 6, 42, 16, 130, 182, 354, 141, 12, 65, 60, 1, 169, 175, 82, 44, 82, 108, 17, 69, 28, 29, 80, 145, 25, 66, 88, 14, 64, 290, 160, 46, 113, 1, 251, 55, 61, 185, 199, 153, 13, 237, 150, 269, 5, 100, 126, 243, 312, 56, 219, 203, 156, 144, 164, 161, 87, 236, 203, 10, 216, 13, 166, 239, 19, 141, 51, 284, 61, 11, 75, 205, 31, 128, 49, 2, 33, 5, 135, 100, 194, 78, 154, 245, 51, 321, 121, 160, 114, 74, 44, 113, 59, 259, 6, 49, 144, 6, 22, 214, 171, 98, 181, 225, 368, 8, 274, 154, 262, 234, 21, 19, 352, 9, 165, 20, 90, 85, 255, 367, 174, 29, 145, 43, 1, 3, 153, 10, 280, 77, 221, 12, 11, 142, 370, 143, 116, 145, 223, 330, 36, 9, 157, 99, 271, 88, 291, 49, 89, 47, 94, 394, 344, 305, 38, 30, 39, 6, 129, 1, 242, 268, 200, 298, 182, 297, 175, 27, 117, 135, 108, 246, 60, 38, 225, 48, 12, 124, 229, 55, 50, 311, 70, 133, 119, 151, 199, 73, 70, 98, 26, 76, 99, 154, 112, 76, 236, 273, 22, 109, 206, 61, 34, 146, 292, 132, 254, 42, 1, 121, 310, 33, 41, 49, 168, 226, 247, 459, 47, 211, 187, 41, 58, 8, 388, 359, 129, 83, 129, 190, 55, 189, 48, 258, 60, 58, 13, 205, 263, 232, 151, 96, 77, 31, 53, 64, 174, 197, 200, 25, 93, 191, 139, 217, 5, 117, 51, 212, 72, 28, 2, 236, 114, 320, 35, 106, 74, 28, 425, 282, 49, 132, 2, 82, 47, 143, 142, 100, 25, 79, 43, 24, 23, 399, 92, 97, 290, 31, 69, 109, 165, 83, 41, 98, 84, 195, 319, 347, 222, 37, 39, 104, 5, 196, 207, 47, 4, 223, 141, 32, 47, 81, 96, 31, 68, 101, 145, 177, 85, 129, 271, 334, 224, 36, 117, 56, 70, 410, 212, 87, 298, 361, 160, 164, 34, 19, 52, 66, 310, 4, 105, 40, 180, 137, 263, 37, 73, 237, 29, 135, 20, 7, 336, 197, 68, 2, 131, 28, 60, 88, 94, 58, 83, 38, 218, 7, 1, 71, 296, 149, 355, 146, 179, 64, 2, 418, 155, 127, 76, 348, 54, 83, 251, 48, 27, 185, 32, 84, 4, 89, 107, 360, 257, 29, 54, 318, 56, 95, 295, 51, 45, 47, 24, 256, 173, 92, 154, 63, 255, 321, 132, 76, 116, 92, 308, 20, 52, 178, 292, 87, 216, 275, 16, 152, 151, 165, 226, 276, 36, 1, 333, 30, 428, 17, 136, 11, 192, 45, 40, 34, 268, 68, 292, 54, 85, 120, 116, 206, 92, 99, 213, 91, 15, 14, 43, 112, 305, 319, 157, 136, 76, 25, 141, 95, 82, 11, 32, 41, 74, 49, 301, 122, 128, 338, 94, 129, 265, 71, 11, 109, 22, 328, 13, 105, 22, 196, 240, 198, 7, 146, 181, 115, 62, 61, 218, 64, 170, 222, 15, 99, 36, 31, 258, 69, 41, 56, 60, 129, 33, 103, 57, 21, 103, 127, 165, 13, 39, 328, 105, 228, 107, 120, 86, 98, 27, 54, 205, 167, 244, 74, 238, 38, 89, 5, 120, 329, 37, 37, 278, 24, 140, 118, 127, 203, 23, 106, 286, 243, 72, 152, 86, 61, 22, 11, 6, 34, 256, 269, 158, 175, 211, 317, 253, 50, 50, 27, 130, 454, 41, 250, 267, 144, 303, 11, 104, 63, 18, 124, 104, 58, 140, 25, 151, 58, 239, 286, 155, 217, 27, 182, 10, 398, 65, 190, 81, 69, 119, 78, 20, 136, 106, 51, 188, 200, 350, 303, 133, 53, 73, 15, 158, 262, 150, 192, 10, 289, 162, 362, 234, 232, 16, 225, 334, 294, 6, 105, 125, 68, 72, 176, 239, 20, 163, 353, 118, 117, 170, 90, 258, 50, 45, 88, 87, 128, 85, 4, 62, 34, 268, 258, 183, 25, 146, 85, 44, 133, 107, 140, 87, 64, 18, 70, 76, 95, 309, 147, 34, 308, 19, 237, 21, 217, 115, 49, 177, 201, 88, 149, 163, 5, 325, 455, 96, 52, 77, 24, 152, 130, 207, 67, 220, 36, 18, 48, 88, 40, 148, 179, 6, 155, 19, 138, 74, 39, 51, 198, 141, 142, 106, 103, 67, 111, 107, 186, 68, 37, 166, 28, 94, 289, 15, 126, 121, 43, 108, 117, 128, 406, 71, 333, 39, 38, 69, 313, 267, 17, 249, 40, 351, 40, 202, 138, 262, 105, 324, 75, 267, 123, 141, 156, 78, 112, 408, 97, 173, 91, 99, 239, 25, 376, 25, 254, 185, 157, 15, 61, 71, 113, 237, 237, 48, 29, 89, 1, 79, 41, 3, 24, 13, 187, 96, 52, 30, 137, 70, 82, 1, 47, 34, 444, 146, 63, 47, 59, 154, 115, 129, 298, 61, 3, 64, 85, 75, 244, 12, 47, 101, 103, 7, 169, 125, 213, 271, 378, 271, 100, 126, 134, 131, 31, 32, 16, 310, 222, 95, 12, 154, 89, 391, 205, 8, 27, 1, 85, 192, 85, 117, 140, 127, 132, 35, 31, 12, 263, 121, 6, 81, 65, 71, 78, 88, 140, 85, 227, 347, 68, 50, 7, 44, 215, 128, 26, 2, 96, 55, 66, 54, 22, 161, 258, 7, 13, 124, 101, 265, 21, 83, 233, 203, 274, 59, 354, 99, 59, 139, 13, 377, 107, 102, 23, 184, 32, 115, 61, 169, 320, 27, 171, 293, 57, 62, 46, 58, 147, 139, 235, 52, 46, 375, 46, 218, 319, 368, 61, 29, 174, 172, 83, 325, 29, 200, 198, 18, 303, 114, 173, 213, 35, 102, 20, 35, 211, 46, 180, 99, 301, 250, 208, 178, 93, 30, 76, 52, 165, 159, 372, 225, 278, 138, 136, 145, 231, 79, 44, 137, 50, 55, 119, 125, 39, 138, 101, 25, 166, 23, 192, 18, 39, 178, 116, 28, 178, 59, 188, 198, 16, 96, 46, 186, 108, 59, 255, 199, 258, 252, 88, 118, 134, 383, 150, 5, 139, 239, 228, 38, 227, 263, 43, 67, 175, 97, 188, 63, 147, 189, 17, 154, 62, 370, 219, 1, 198, 22, 56, 90, 318, 15, 20, 171, 45, 100, 30, 126, 131, 234, 11, 207, 254, 299, 349, 120, 196, 21, 26, 170, 114, 77, 8, 57, 190, 11, 214, 212, 345, 179, 225, 64, 114, 80, 185, 66, 138, 149, 43, 190, 127, 3, 3, 153, 222, 210, 11, 56, 104, 53, 153, 130, 56, 83, 71, 274, 95, 74, 121, 106, 173, 16, 114, 270, 33, 53, 267, 49, 332, 306, 68, 35, 28, 32, 213, 24, 113, 40, 18, 9, 89, 294, 250, 256, 70, 208, 291, 91, 82, 314, 39, 7, 181, 78, 13, 301, 405, 112, 316, 156, 393, 12, 110, 48, 73, 166, 39, 17, 132, 204, 104, 63, 62, 1, 45, 393, 5, 115, 47, 18, 248, 16, 272, 75, 317, 84, 70, 342, 207, 14, 191, 77, 154, 12, 107, 230, 132, 280, 42, 23, 147, 149, 17, 18, 8, 174, 73, 261, 197, 72, 4, 15, 34, 163, 159, 136, 12, 36, 196, 3, 40, 167, 71, 101, 111, 100, 237, 300, 32, 76, 9, 14, 137, 6, 53, 202, 71, 52, 148, 219, 17, 299, 41, 108, 48, 143, 65, 316, 133, 142, 92, 296, 323, 150, 211, 361, 261, 422, 167, 212, 195, 50, 317, 406, 372, 360, 314, 399, 203, 136, 211, 56, 195, 436, 229, 489, 295, 101, 109, 487, 184, 87, 279, 233, 399, 176, 470, 433, 364, 197, 115, 194, 314, 423, 246, 98, 401, 291, 268, 272, 357, 458, 298, 327, 21, 298, 299, 225, 220, 272, 51, 177, 93, 84, 403, 150, 336, 275, 236, 476, 243, 261, 373, 330, 248, 310, 365, 155, 240, 144, 276, 229, 292, 99, 175, 101, 317, 365, 297, 404, 260, 333, 417, 462, 434, 474, 444, 119, 309, 261, 260, 344, 435, 80, 123, 257, 183, 358, 197, 78, 16, 264, 260, 459, 195, 390, 147, 217, 467, 353, 165, 120, 151, 335, 83, 106, 28, 326, 252, 70, 298, 182, 153, 300, 260, 122, 111, 143, 302, 135, 235, 362, 236, 232, 287, 371, 309, 248, 248, 176, 215, 169, 183, 155, 140, 446, 91, 277, 263, 234, 126, 376, 335, 162, 490, 398, 182, 105, 378, 469, 159, 119, 457, 292, 249, 108, 59, 451, 20, 362, 228, 57, 306, 459, 301, 208, 329, 357, 82, 396, 279, 137, 396, 272, 202, 396, 282, 120, 308, 389, 287, 43, 311, 371, 59, 326, 125, 223, 190, 285, 134, 348, 219, 74, 343, 72, 455, 367, 179, 368, 395, 267, 227, 59, 225, 65, 21, 300, 310, 266, 259, 362, 168, 104, 69, 344, 417, 47, 335, 103, 126, 394, 41, 122, 166, 313, 265, 438, 118, 265, 204, 316, 439, 142, 90, 180, 440, 281, 392, 312, 210, 137, 189, 240, 247, 240, 320, 251, 157, 324, 208, 415, 245, 180, 262, 94, 141, 191, 110, 165, 165, 361, 61, 488, 378, 138, 178, 229, 396, 157, 168, 397, 266, 289, 240, 347, 299, 84, 451, 133, 391, 469, 324, 137, 116, 60, 365, 207, 200, 472, 450, 428, 330, 139, 159, 223, 217, 330, 245, 234, 238, 418, 391, 367, 308, 291, 304, 67, 244, 288, 382, 130, 461, 335, 118, 187, 334, 324, 441, 462, 112, 445, 59, 214, 230, 372, 44, 106, 167, 181, 211, 193, 148, 409, 264, 364, 353, 174, 263, 283, 406, 312, 349, 118, 455, 181, 259, 323, 175, 33, 152, 299, 141, 320, 314, 131, 62, 235, 335, 231, 340, 244, 425, 169, 311, 497, 241, 37, 436, 117, 184, 294, 157, 350, 301, 94, 162, 273, 13, 182, 101, 486, 341, 434, 322, 74, 144, 284, 139, 111, 403, 214, 52, 323, 327, 172, 227, 230, 208, 277, 221, 120, 409, 339, 123, 223, 252, 209, 237, 429, 295, 253, 35, 162, 454, 243, 199, 295, 385, 360, 241, 170, 390, 175, 402, 198, 288, 397, 275, 330, 267, 161, 341, 283, 193, 62, 258, 162, 254, 259, 374, 408, 415, 268, 54, 312, 424, 302, 342, 376, 172, 453, 214, 281, 379, 447, 170, 434, 230, 121, 423, 305, 441, 276, 244, 121, 110, 461, 323, 151, 309, 431, 202, 200, 329, 210, 352, 164, 503, 113, 126, 231, 152, 454, 311, 433, 86, 449, 130, 231, 262, 189, 290, 288, 429, 143, 311, 70, 226, 451, 277, 362, 134, 51, 81, 343, 171, 466, 149, 194, 310, 119, 315, 186, 300, 469, 349, 427, 123, 168, 117, 174, 144, 224, 116, 173, 198, 457, 287, 147, 65, 258, 272, 499, 315, 81, 186, 168, 341, 316, 190, 178, 291, 232, 280, 174, 260, 242, 226, 181, 120, 113, 138, 294, 106, 481, 287, 377, 104, 125, 383, 234, 369, 289, 348, 52, 389, 239, 219, 344, 378, 338, 418, 137, 363, 116, 207, 335, 449, 202, 358, 216, 134, 319, 100, 11, 265, 233, 172, 267, 45, 256, 23, 318, 221, 169, 245, 306, 281, 181, 289, 116, 173, 346, 327, 194, 205, 326, 345, 201, 111, 448, 366, 399, 293, 222, 170, 358, 442, 19, 187, 159, 456, 299, 206, 290, 169, 253, 412, 252, 202, 377, 331, 497, 203, 313, 115, 255, 373, 364, 237, 245, 291, 269, 342, 54, 218, 269, 373, 170, 256, 270, 213, 305, 288, 203, 315, 238, 87, 192, 334, 26, 127, 352, 240, 277, 114, 102, 432, 139, 332, 278, 128, 411, 91, 317, 296, 265, 343, 291, 217, 124, 350, 220, 242, 220, 62, 233, 300, 190, 393, 445, 513, 478, 346, 375, 131, 99, 272, 160, 355, 279, 112, 305, 107, 403, 336, 109, 322, 143, 371, 147, 204, 192, 308, 180, 279, 127, 194, 145, 239, 124, 288, 24, 177, 191, 433, 429, 308, 270, 136, 330, 73, 469, 302, 274, 221, 246, 393, 328, 431, 454, 391, 426, 269, 434, 329, 245, 149, 151, 338, 328, 299, 433, 374, 230, 202, 472, 177, 360, 402, 387, 316, 181, 418, 52, 198, 174, 20, 197, 110, 294, 268, 123, 151, 43, 87, 250, 237, 247, 233, 143, 367, 231, 339, 381, 141, 233, 355, 204, 225, 382, 208, 224, 206, 159, 87, 80, 275, 103, 365, 33, 374, 117, 145, 332, 368, 309, 297, 421, 63, 212, 213, 373, 107, 249, 247, 318, 242, 464, 312, 164, 240, 103, 328, 345, 262, 160, 209, 401, 325, 249, 186, 201, 112, 250, 262, 215, 70, 473, 170, 126, 143, 211, 313, 370, 183, 220, 174, 388, 346, 351, 182, 173, 48, 214, 370, 163, 92, 95, 228, 134, 461, 251, 398, 205, 282, 372, 363, 348, 83, 321, 175, 265, 160, 252, 479, 340, 257, 64, 285, 419, 369, 23, 196, 283, 286, 327, 97, 411, 331, 184, 297, 325, 284, 341, 245, 302, 294, 231, 247, 319, 404, 190, 180, 491, 441, 147, 303, 148, 291, 350, 471, 197, 396, 187, 92, 201, 269, 200, 264, 250, 338, 104, 470, 379, 248, 168, 271, 113, 146, 205, 267, 71, 296, 221, 385, 153, 347, 482, 252, 339, 453, 390, 289, 284, 229, 269, 263, 167, 27, 369, 80, 243, 432, 230, 153, 280, 397, 239, 380, 208, 244, 8, 72, 271, 354, 328, 233, 224, 297, 297, 204, 461, 190, 259, 151, 306, 375, 195, 189, 304, 155, 279, 232, 352, 123, 177, 339, 401, 493, 384, 376, 340, 38, 171, 79, 161, 78, 340, 293, 238, 465, 191, 435, 179, 244, 387, 184, 211, 307, 352, 342, 316, 196, 351, 353, 445, 69, 97, 368, 180, 274, 136, 275, 342, 189, 75, 395, 145, 147, 205, 185, 222, 218, 413, 297, 374, 144, 453, 372, 138, 302, 316, 237, 356, 46, 40, 339, 343, 184, 242, 125, 216, 345, 305, 477, 148, 214, 199, 303, 306, 123, 440, 404, 292, 210, 328, 350, 210, 337, 94, 309, 408, 151, 76, 276, 266, 325, 482, 155, 332, 254, 209, 321, 297, 243, 355, 259, 164, 221, 453, 361, 15, 338, 357, 289, 240, 149, 249, 263, 219, 447, 434, 261, 300, 159, 479, 342, 93, 213, 57, 141, 177, 335, 410, 315, 188, 166, 223, 307, 354, 492, 170, 187, 453, 195, 127, 349, 410, 151, 207, 130, 147, 216, 417, 439, 369, 83, 461, 326, 406, 381, 227, 126, 270, 258, 394, 108, 331, 228, 333, 72, 95, 209, 319, 351, 346, 379, 284, 392, 315, 191, 147, 463, 95, 486, 415, 167, 324, 377, 390, 375, 410, 92, 354, 106, 364, 106, 370, 132, 193, 396, 321, 134, 119, 393, 327, 195, 506, 30, 341, 253, 233, 82, 283, 55, 207, 301, 430, 167, 248, 163, 475, 77, 218, 124, 367, 176, 415, 426, 188, 380, 58, 488, 209, 170, 164, 354, 134, 212, 334, 255, 220, 349, 110, 288, 227, 350, 201, 406, 319, 442, 117, 330, 228, 148, 424, 267, 155, 452, 161, 345, 217, 474, 179, 208, 328, 367, 254, 173, 210, 259, 458, 296, 277, 206, 296, 162, 480, 430, 183, 202, 268, 263, 274, 312, 374, 96, 445, 66, 463, 321, 250, 204, 194, 129, 78, 342, 485, 289, 387, 67, 119, 256, 241, 341, 110, 215, 276, 226, 186, 276, 266, 198, 331, 455, 167, 232, 89, 355, 166, 336, 147, 397, 167, 260, 175, 282, 465, 265, 178, 453, 189, 132, 273, 202, 132, 209, 62, 400, 397, 114, 225, 299, 288, 259, 228, 149, 319, 160, 327, 406, 411, 217, 374, 286, 229, 236, 129, 232, 403, 266, 432, 189, 115, 338, 120, 342, 197, 248, 310, 269, 298, 79, 156, 453, 325, 468, 116, 246, 210, 438, 43, 256, 378, 294, 398, 84, 366, 122, 311, 174, 346, 377, 320, 111, 309, 243, 162, 329, 165, 307, 229, 266, 305, 267, 94, 230, 454, 131, 72, 50, 209, 199, 283, 329, 178, 400, 236, 388, 423, 127, 190, 287, 175, 477, 274, 314, 465, 389, 410, 350, 131, 263, 108, 201, 127, 130, 468, 59, 223, 148, 341, 336, 414, 235, 36, 288, 171, 405, 111, 395, 271, 122, 154, 150, 164, 403, 460, 374, 213, 208, 464, 310, 143, 356, 204, 81, 273, 314, 287, 380, 16, 410, 313, 385, 410, 406, 23, 240, 370, 373, 416, 355, 204, 176, 187, 329, 357, 292, 282, 384, 212, 273, 202, 262, 385, 198, 191, 402, 230, 266, 179, 389, 210, 165, 375, 261, 287, 302, 471, 250, 144, 284, 279, 277, 382, 118, 65, 126, 235, 158, 354, 150, 53, 331, 68, 280, 51, 219, 432, 90, 236, 213, 137, 289, 256, 366, 469, 484, 125, 289, 454, 49, 155, 392, 221, 181, 238, 137, 85, 222, 105, 228, 351, 380, 22, 379, 322, 409, 215, 234, 174, 275, 356, 182, 212, 272, 203, 194, 426, 215, 279, 234, 279, 388, 164, 318, 219, 205, 152, 74, 304, 242, 136, 440, 304, 466, 238, 347, 201, 373, 275, 325, 364, 362, 393, 103, 394, 365, 359, 338, 332, 322, 369, 270, 216, 363, 135, 353, 460, 157, 282, 402, 414, 393, 196, 403, 178, 294, 276, 193, 282, 217, 86, 234, 351, 433, 337, 64, 236, 184, 423, 64, 362, 241, 210, 247, 483, 298, 122, 191, 243, 245, 46, 458, 278, 447, 311, 326, 360, 71, 224, 354, 148, 360, 74, 6, 215, 290, 374, 313, 200, 185, 116, 133, 28, 224, 467, 357, 291, 473, 379, 388, 188, 246, 340, 67, 240, 144, 475, 314, 193, 179, 215, 150, 423, 360, 192, 102, 159, 127, 204, 154, 168, 423, 373, 172, 48, 140, 327, 292, 358, 221, 426, 154, 101, 331, 337, 235, 102, 251, 409, 238, 283, 151, 307, 278, 357, 247, 484, 229, 152, 69, 311, 241, 225, 388, 230, 140, 146, 370, 429, 26, 134, 466, 240, 372, 197, 389, 145, 136, 176, 187, 400, 264, 221, 366, 446, 311, 364, 186, 404, 363, 101, 243, 400, 120, 146, 389, 203, 190, 278, 300, 260, 196, 430, 106, 260, 367, 436, 222, 359, 433, 417, 184, 371, 301, 275, 336, 111, 428, 129, 304, 303, 73, 224, 449, 175, 255, 446, 326, 123, 315, 315, 223, 327, 161, 194, 97, 201, 309, 383, 407, 302, 326, 209, 324, 198, 356, 107, 88, 189, 276, 247, 144, 339, 320, 221, 169, 140, 226, 118, 379, 333, 69, 300, 262, 218, 265, 257, 251, 310, 27, 265, 227, 369, 220, 146, 412, 265, 272, 286, 286, 229, 283, 395, 209, 372, 290, 488, 293, 184, 360, 342, 194, 132, 313, 290, 448, 385, 162, 232, 31, 270, 271, 383, 318, 242, 251, 157, 79, 119, 421, 401, 178, 231, 152, 207, 55, 163, 274, 313, 125, 251, 256, 468, 385, 329, 227, 272, 317, 196, 427, 466, 96, 216, 449, 14, 441, 333, 484, 363, 383, 303, 155, 172, 188, 348, 169, 256, 199, 193, 188, 455, 86, 161, 235, 247, 288, 135, 344, 427, 381, 148, 261, 128, 193, 287, 221, 347, 155, 172, 204, 334, 255, 380, 189, 241, 277, 226, 448, 413, 81, 441, 223, 162, 429, 292, 205, 146, 439, 110, 114, 304, 261, 378, 88, 278, 386, 123, 226, 329, 165, 83, 295, 213, 408, 355, 414, 336, 440, 366, 409, 142, 153, 168, 128, 470, 266, 82, 280, 428, 250, 360, 238, 99, 53, 424, 176, 285, 263, 212, 268, 316, 377, 335, 387, 168, 144, 428, 326, 132, 232, 252, 300, 51, 146, 308, 371, 486, 279, 275, 370, 223, 33, 304, 296, 217, 442, 360, 280, 75, 354, 182, 139, 397, 236, 442, 361, 45, 233, 193, 479, 206, 153, 121, 299, 201, 255, 426, 318, 286, 54, 143, 302, 57, 148, 320, 231, 218, 377, 498, 206, 359, 238, 235, 379, 160, 391, 381, 261, 297, 277, 368, 362, 437, 409, 372, 270, 481, 300, 407, 253, 55, 488, 487, 470, 429, 431, 402, 259, 404, 257, 101, 243, 463, 487, 514, 496, 150, 358, 504, 234, 490, 511, 240, 415, 412, 484, 490, 416, 252, 472, 489, 478, 493, 381, 139, 480, 511, 362, 293, 466, 503, 359, 342, 142, 326, 369, 304, 320, 364, 486, 261, 105, 316, 471, 476, 430, 460, 379, 484, 253, 446, 400, 447, 373, 472, 490, 272, 401, 158, 471, 328, 417, 312, 344, 331, 429, 383, 341, 501, 361, 410, 480, 477, 492, 508, 482, 332, 336, 429, 310, 369, 460, 291, 346, 365, 392, 402, 452, 120, 430, 301, 419, 462, 406, 410, 342, 493, 500, 390, 498, 378, 230, 403, 188, 443, 258, 505, 499, 148, 508, 485, 241, 382, 289, 264, 182, 455, 481, 264, 451, 489, 483, 485, 365, 376, 447, 301, 382, 278, 237, 409, 285, 168, 292, 463, 290, 482, 339, 323, 376, 386, 495, 286, 502, 450, 322, 115, 390, 483, 370, 426, 461, 441, 406, 162, 73, 506, 256, 511, 507, 107, 498, 491, 323, 274, 478, 516, 337, 450, 304, 183, 502, 285, 249, 420, 427, 349, 386, 508, 353, 413, 500, 375, 304, 485, 410, 484, 306, 353, 431, 377, 239, 156, 438, 402, 499, 503, 200, 458, 419, 490, 230, 203, 397, 73, 436, 398, 326, 293, 363, 416, 497, 458, 250, 443, 460, 60, 476, 227, 392, 494, 352, 422, 383, 468, 344, 443, 199, 425, 417, 496, 452, 472, 396, 246, 449, 458, 395, 398, 283, 253, 391, 307, 268, 337, 501, 269, 499, 409, 408, 434, 365, 264, 407, 267, 150, 253, 254, 269, 185, 434, 306, 508, 510, 287, 347, 318, 439, 235, 307, 503, 281, 303, 468, 366, 415, 434, 480, 368, 497, 500, 504, 195, 188, 125, 502, 496, 475, 492, 481, 501, 407, 309, 302, 372, 442, 357, 464, 436, 249, 429, 493, 412, 340, 385, 489, 172, 353, 322, 477, 439, 509, 490, 311, 478, 364, 450, 448, 479, 372, 463, 495, 312, 269, 425, 341, 501, 415, 193, 225, 481, 437, 433, 281, 509, 428, 278, 509, 458, 506, 481, 509, 463, 504, 209, 415, 510, 347, 246, 388, 307, 237, 472, 407, 318, 228, 441, 417, 467, 469, 457, 515, 324, 402, 510, 254, 112, 470, 345, 463, 302, 378, 416, 312, 241, 381, 327, 94, 207, 335, 498, 343, 476, 427, 444, 351, 414, 186, 178, 457, 459, 460, 333, 471, 334, 389, 398, 327, 315, 504, 481, 437, 386, 431, 488, 442, 241, 356, 471, 402, 424, 433, 287, 459, 298, 463, 322, 458, 386, 464, 232, 492, 285, 441, 227, 292, 405, 377, 336, 466, 441, 513, 350, 276, 142, 492, 176, 404, 286, 437, 483, 474, 446, 291, 323, 474, 463, 414, 496, 231, 493, 491, 464, 484, 448, 191, 441, 258, 296, 497, 381, 484, 419, 318, 125, 222, 487, 516, 285, 502, 449, 294, 211, 384, 358, 451, 414, 509, 135, 241, 444, 392, 474, 469, 444, 203, 500, 282, 350, 286, 231, 478, 365, 465, 467, 472, 497, 484, 513, 513, 455, 242, 502, 385, 504, 358, 479, 390, 407, 416, 266, 330, 206, 412, 471, 496, 498, 380, 325, 159, 219, 504, 447, 340, 383, 416, 475, 373, 410, 486, 368, 501, 511, 413, 91, 278, 257, 486, 369, 506, 214, 402, 430, 348, 476, 333, 331, 441, 204, 187, 450, 194, 382, 224, 497, 411, 462, 252, 275, 457, 446, 415, 502, 413, 121, 515, 485, 476, 353, 381, 488, 480, 385, 425, 314, 224, 383, 506, 280, 515, 388, 422, 386, 396, 408, 329, 340, 371, 359, 138, 431, 200, 361, 393, 189, 436, 411, 319, 316, 478, 293, 390, 422, 414, 445, 232, 503, 397, 443, 296, 493, 374, 432, 430, 493, 206, 437, 477, 295, 352, 492, 509, 375, 214, 314, 430, 283, 467, 491, 350, 421, 499, 499, 511, 367, 125, 379, 482, 476, 505, 411, 446, 507, 390, 264, 290, 419, 460, 474, 414, 422, 317, 327, 437, 422, 404, 320, 416, 242, 362, 429, 366, 399, 438, 293, 245, 448, 461, 390, 415, 356, 482, 504, 284, 428, 378, 268, 400, 308, 468, 416, 393, 394, 405, 355, 408, 438, 323, 424, 401, 483, 516, 493, 362, 424, 372, 234, 515, 386, 382, 500, 314, 402, 425, 460, 456, 172, 501, 247, 495, 173, 492, 226, 476, 439, 346, 293, 353, 317, 435, 152, 487, 119, 348, 424, 499, 494, 495, 469, 251, 501, 401, 516, 308, 457, 280, 454, 440, 432, 470, 497, 399, 451, 344, 487, 432, 439, 516, 278, 461, 462, 313, 475, 386, 233, 396, 475, 439, 424, 495, 431, 434, 433, 436, 456, 403, 341, 423, 359, 296, 324, 309, 480, 508, 435, 144, 478, 401, 358, 287, 484, 512, 443, 367, 459, 452, 445, 468, 316, 271, 514, 388, 448, 474, 413, 307, 86, 293, 320, 433, 302, 394, 222, 414, 344, 456, 356, 475, 468, 456, 426, 494, 428, 339, 288, 494, 448, 270, 504, 507, 381, 405, 379, 498, 469, 489, 247, 354, 445, 500, 467, 217, 277, 385, 318, 513, 218, 253, 483, 249, 325, 161, 351, 505, 475, 440, 229, 412, 461, 371, 427, 377, 439, 338, 473, 500, 292, 167, 315, 230, 261, 464, 294, 407, 226, 406, 488, 426, 432, 515, 511, 421, 489, 439, 282, 515, 483, 325, 323, 462, 443, 491, 377, 384, 349, 491, 353, 226, 420, 495, 428, 409, 473, 461, 357, 473, 371, 343, 360, 398, 500, 465, 401, 319, 513, 483, 216, 405, 424, 473, 455, 516, 235, 476, 308, 248, 281, 482, 244, 481, 407, 345, 309, 506, 417, 485, 363, 320, 192, 470, 231, 513, 246, 299, 447, 467, 163, 510, 498, 337, 417, 491, 457, 422, 340, 422, 298, 273, 301, 447, 449, 356, 374, 436, 299, 225, 452, 468, 490, 403, 432, 387, 38, 277, 340, 514, 485, 355, 253, 400, 389, 460, 492, 356, 300, 400, 404, 404, 498, 369, 330, 273, 311, 248, 491, 126, 216, 495, 449, 505, 407, 380, 425, 246, 437, 153, 211, 256, 387, 515, 297, 507, 440, 480, 361, 412, 395, 431, 412, 371, 506, 435, 421, 462, 504, 483, 472, 436, 507, 370, 183, 485, 330, 389, 381, 473, 272, 449, 364, 192, 345, 312, 252, 333, 501, 388, 491, 246, 507, 393, 355, 358, 367, 417, 499, 81, 516, 494, 490, 228, 480, 367, 427, 387, 349, 510, 349, 411, 321, 449, 315, 307, 458, 490, 462, 323, 406, 452, 456, 357, 153, 359, 503, 375, 352, 385, 392, 442, 485, 260, 445, 423, 512, 410, 361, 396, 421, 514, 300, 412, 487, 489, 19, 352, 447, 347, 321, 400, 394, 284, 510, 508, 502, 281, 459, 177, 483, 388, 399, 379, 180, 186, 209, 502, 418, 326, 214, 432, 274, 401, 413, 512, 322, 264, 513, 239, 501, 464, 419, 259, 418, 306, 307, 319, 484, 512, 453, 363, 508, 454, 424, 450, 275, 270, 301, 260, 512, 161, 494, 323, 346, 189, 348, 376, 345, 464, 421, 381, 342, 464, 359, 455, 492, 470, 359, 505, 465, 343, 420, 435, 428, 510, 478, 193, 419, 380, 414, 181, 394, 266, 396, 491, 395, 192, 421, 404, 507, 456, 512, 251, 384, 442, 421, 334, 384, 317, 320, 391, 477, 171, 336, 273, 500, 446, 414, 340, 484, 306, 453, 445, 327, 405, 406, 506, 236, 491, 371, 508, 471, 446, 501, 290, 366, 507, 250, 394, 403, 458, 266, 509, 351, 493, 252, 510, 456, 176, 440, 419, 378, 506, 399, 442, 319, 514, 462, 275, 459, 378, 350, 226, 494, 430, 494, 394, 486, 442, 381, 233, 500, 504, 504, 308, 494, 366, 353, 469, 439, 463, 516, 109, 473, 473, 343, 383, 435, 282, 509, 420, 514, 333, 450, 307, 477, 375, 398, 466, 382, 479, 452, 283, 285, 495, 482, 425, 430, 505, 322, 444, 503, 497, 449, 486, 338, 440, 355, 488, 413, 352, 513, 331, 333, 506, 423, 183, 361, 474, 461, 409, 425, 411, 481, 397, 470, 332, 395, 343, 298, 159, 476, 512, 398, 444, 516, 505, 499, 397, 421, 271, 130, 424, 456, 270, 463, 431, 334, 397, 399, 509, 335, 341, 443, 392, 509, 338, 284, 468, 382, 477, 443, 331, 455, 445, 169, 296, 511, 491, 408, 427, 408, 318, 405, 182, 392, 390, 488, 219, 368, 369, 384, 372, 336, 399, 502, 515, 356, 486, 325, 293, 504, 162, 451, 295, 339, 220, 471, 421, 351, 433, 334, 392, 465, 303, 418, 306, 316, 515, 317, 438, 482, 454, 475, 370, 459, 496, 505, 384, 185, 172, 497, 171, 281, 400, 418, 499, 436, 391, 108, 468, 280, 422, 313, 467, 398, 464, 167, 254, 168, 448, 465, 505, 471, 312, 467, 418, 403, 374, 470, 459, 347, 468, 395, 425, 19, 472, 510, 456, 428, 495, 75, 255, 467, 465, 425, 512, 387, 426, 335, 453, 474, 487, 480, 462, 344, 511, 207, 309, 419, 419, 395, 424, 272, 346, 382, 460, 352, 169, 442, 476, 404, 473, 511, 330, 196, 334, 329, 438, 438, 503, 255, 481, 500, 420, 472, 509, 394, 450, 255, 472, 373, 365, 488, 305, 496, 418, 193, 368, 305, 508, 495, 494, 199, 420, 514, 450, 201, 496, 238, 264, 411, 358, 229, 287, 493, 346, 409, 489, 102, 480, 413, 435, 290, 317, 303, 348, 376, 314, 422, 297, 343, 250, 513, 466, 290, 289, 431, 503, 451, 516, 328, 305, 427, 361, 307, 469, 341, 476, 371, 489, 328, 355, 310, 437, 515, 402, 386, 403, 412, 357, 440, 486, 448, 399, 337, 514, 426, 478, 506, 462, 360, 466, 496, 279, 397, 479, 428, 505, 421, 461, 257, 437, 418, 315, 440, 498, 337, 387, 490, 437, 466, 220, 500, 479, 470, 218, 380, 431, 243, 396, 492, 443, 507, 373, 477, 395, 188, 496, 366, 457, 422, 336, 376, 450, 391, 494, 245, 384, 77, 44, 478, 438, 454, 407, 285, 508, 198, 457, 261, 322, 492, 482, 338, 512, 405, 420, 312, 464, 416, 80, 412, 249, 501, 412, 452, 505, 426, 379, 451, 479, 387, 137, 340, 507, 483, 459, 203, 453, 420, 358, 84, 499, 503, 408, 443, 350, 515, 200, 295, 376, 442, 369, 423, 346, 420, 445, 456, 465, 337, 475, 438, 258, 506, 377, 364, 185, 321, 305, 282, 509, 301, 321, 398, 456, 511, 465, 281, 516, 450, 435, 286, 416, 475, 254, 393, 469, 414, 429, 460, 389, 478, 492, 503, 453, 444, 393, 467, 294, 420, 157, 279, 513, 497, 204, 444, 514, 348, 459, 454, 270, 413, 440, 494, 434, 465, 505, 429, 384, 514, 466, 486, 475, 510, 436, 437, 434, 457, 516, 454, 473, 332, 433, 479, 499, 405, 482, 497, 503, 411, 351, 199, 380, 216, 420, 387, 426, 450, 404, 370, 447, 386, 452, 135, 253, 482, 416, 276, 171, 419, 420, 288, 241, 474, 391, 368, 488, 365, 400, 363, 354, 274, 415, 345, 376, 467, 138, 479, 295, 391, 382, 483, 444, 446, 390, 304, 510, 507, 385, 452, 216, 457, 472, 498, 438, 408, 388, 368, 498, 464, 462, 466, 508, 515, 321, 375, 337, 448, 273, 455, 435, 380, 354, 254, 242, 324, 489, 477, 245, 427, 195, 508, 187, 210, 328, 498, 145, 485, 304, 493, 392, 507, 324, 400, 419, 430, 439, 513, 432, 417, 496, 364, 474, 511, 493, 435, 487, 366, 364, 455, 384, 359, 195, 329, 263, 349, 248, 486, 371, 166, 257, 471, 339, 380, 357, 437, 441, 191, 443, 268, 197, 444, 306, 363, 160, 346, 345, 376, 401, 479, 195, 243, 514, 481, 489, 445, 432, 451, 460, 252, 443, 332, 283, 416, 502, 140, 164, 415, 359, 470, 90, 411, 425, 422, 352, 344, 501, 386, 335, 458, 449, 478, 480, 477, 487, 413, 444, 244, 157, 451, 423, 480, 297, 284, 495, 431, 384, 418, 363, 325, 245, 447, 313, 485, 436, 391, 357, 512, 490, 487, 417, 512, 324, 496, 366, 152, 452, 343, 361, 389, 254, 446, 471, 502, 399, 485, 395, 345, 474, 337, 481, 249, 510, 458, 514, 90, 362, 463, 347, 477, 257, 489, 405, 143, 259, 286, 495, 382, 224, 177, 446, 260, 427, 438, 434, 511, 187, 383, 423, 193, 430, 427, 447, 435, 487, 502, 338, 407, 323, 407, 387, 166, 512, 473, 310, 457, 490 }; const float H_2064_516_sparse_input[] = { -2.8588758611049867, -11.692946618257562, -2.0931111592429659, 11.110696212718175, 6.6118168080332342, 5.5228669775147967, -10.351976177615544, -6.2055936928533972, 15.766842028131405, 10.150684036103069, -8.459063190320423, 3.5621047687812557, -3.4741612771047636, 3.324748317571744, 8.996614205792751, -11.020291727957101, 12.081427681651697, -8.8928631203159583, -3.3519010114052263, 7.7902118547439443, 9.6608001848411806, -7.1066822779231593, -18.837368573809297, 6.7301895647238608, 6.7933629603091008, 5.9697810424393483, 8.344011991064086, 12.19791145343228, 9.4167774696594435, 7.423418316685729, 9.0291842080564226, 12.492983259925982, 7.1203329881309401, 9.8776999539720336, 7.3657220051725565, 5.4066464900536131, -12.553405951140983, -8.4918025628237199, -11.352365915823617, 14.756685666538061, -8.0938336502539876, -2.7071697789206022, -2.4795849849319289, 14.778716053676311, -12.149933491676437, -8.5931326392610909, -5.4147618905983697, 1.7095221079392837, -12.75286957597447, -6.560818125727109, 5.5288804134600262, -16.774264848727494, -10.397477377823613, -14.47470382199227, -12.095199384731899, -0.68504635593676977, 2.6623689185177528, 13.264791388391092, -15.654931986196731, 6.1276196890542334, 4.5068190091793028, -13.394637229913476, -6.9231832293793651, -12.113429033794846, 1.2142140703098925, 8.9363539352870394, -12.687063373304539, -3.3458614784673091, -3.4123481785186587, 17.559631253372945, 13.470764559481434, 5.3912902961422002, 8.0737946505557545, -12.755710856932868, -3.569697890412812, -6.2613535644882905, 0.068556269783912271, 6.2629797657916875, -9.2663011036090968, -4.4829975567184634, -9.6136989537403004, -8.7663852688801143, -13.974856274599134, 11.407302219619563, -10.302223327202944, -8.9771589068473983, -6.1388609170833384, 4.2370800072671333, 1.7760515525196516, -12.120232639630231, -12.958157445638765, 5.2985241644932541, -16.484657731002855, -6.3532421360393387, -9.0395804464700298, -7.2671128749847744, -12.616882711750195, -4.9350723080331012, -6.6905936282318637, 18.568407538602393, 12.530577696234687, -9.7889565176657243, -15.214958325061282, 7.215674131215513, -7.5394667988733808, 9.0137713371297465, 6.2553392643094785, 9.1953246360263154, -11.131787953429392, -5.4020937991353657, -4.0642543197135739, -0.44036236539366824, 8.0650609441874703, 0.85520780385748785, 7.2621337620159085, 0.29865166967486761, -9.2011814546979203, -10.330862011400864, -7.3191138151867943, -9.4852558149271111, 14.762260259194324, -5.0853268103463423, -11.2925794883785, 13.026909781206733, 7.9504343630905412, 10.148928930852414, -8.9032450603232327, 7.0914762951954913, 10.89340681888671, -12.705821222595254, 13.126012326275292, 9.4442919029362749, 5.0277440210736879, 0.21756213342494518, 12.710361373031621, 5.6453651213768019, -13.49634180382726, 6.4754225359227204, 9.6275804629486004, 5.8125840672452975, 9.7028326962213836, 6.1260130958734562, 3.3623596073706641, 10.736024757333299, 4.6569987032041826, -8.5021099021622799, -2.5832378575026125, 17.984880998940056, -13.974611077713172, -7.8550941092339874, -2.6917314432377575, 10.825283872831294, 11.217940706150642, 1.8301222470027103, 6.2062091666111812, -12.440863506480019, -19.955292055354317, -3.6699151522797462, 2.2154324244303956, -3.7363628672311142, -10.271027034445964, -9.2862432349117547, 9.7847963699436011, -5.9471830363214551, 11.139859339322513, -9.2599913694963618, 5.0422863933763367, -7.1141487133220043, 4.2177963601947308, 10.657785123505857, -5.7952000401674324, -6.826355874510365, 8.7268751949597245, -8.5906649209875745, 2.2758857640658201, -6.1665377492933358, -7.3104026599884433, -3.2424605164178031, 16.796591996286164, 15.671215006757382, -7.8445348658392806, 12.2589312976831, -2.5670307012079139, -11.537316744819945, -2.4858301794672331, 5.0542510171190438, -6.6860957990782133, -7.2619018024969462, -6.7329842279273242, -7.3146812058251234, 8.0821157274412183, 2.4005920765968378, 9.3157871935284753, -12.908851857280949, 5.2927115546650425, 9.9926730185778059, 3.9229860372333749, -5.5126846245121035, 12.313688019948762, 7.9681453222519041, 17.181368769149195, -8.962498225939207, -11.548950041024865, 12.014544817430894, 11.485639169870186, 11.939774664713912, -14.36069895314143, -11.812874687185857, 12.249194120883461, 4.8839501930831242, -10.540165871108648, -14.829380396239381, -6.4665012687326051, 4.7430459960995295, -7.1378949876943016, -15.357105375923917, 7.3351294975306445, -9.6095153441695373, 4.381145332149095, -9.2910048695861427, 4.894239034759102, 7.864879034656453, -8.3265429253416077, 10.497214061711553, -0.39338042557070996, -4.4611306847986816, 0.76940119561902198, 2.3535542193708272, 10.459438806533345, 9.4938186880252005, -6.4805717587307994, -13.457392617761585, -10.487085219177404, -9.8506932711478576, 11.274019685851906, -12.3031017274995, 8.3324030035106826, -2.3013116280481358, 8.3664075310158825, -10.402109920341072, -5.2924293563600742, -12.008098192077149, 10.992304106359162, -5.5591947469243506, -12.838234842015352, 8.1682577157065577, -6.4919177172949487, 13.568876091933316, 8.0352162745849594, 8.7834139460450125, -11.335870474093099, -10.790767171281415, -2.8875937626970223, 14.64505222675956, 11.436743007190451, -2.9337339836825955, -12.707240342338084, 16.661129912274529, -19.171798326126961, 12.280144746488103, 6.5975965145696174, -13.019719338217644, -3.4328503704209457, 4.822535491209953, -8.1340577921572415, 11.549182216506546, 9.6431724916100059, 5.5547407614902173, 15.019668995173307, -1.6514898426907461, 16.110709054474917, -10.9397931999944, 12.04576668183285, -8.4818868311872198, -6.103248438757908, 8.2975079067215702, 2.5480181038085412, 18.799878298920927, 16.231939791740228, -18.011602750805633, 3.7139764502467689, 12.751595841360283, -7.8718015936255812, -0.40802815212428428, -15.47812599016518, 3.2584854200798588, 14.976391986507007, 9.1367378814346782, 3.4155780056910059, -13.292285487599507, -12.855991908912157, 14.013291588644732, 9.6911017234399335, -5.8910196575740752, -2.2280612655108047, -11.219438047247786, -2.5955623953948517, -3.4460676112793136, 3.5682986120247073, -11.70300520092221, 11.99455548751415, 7.319096625369828, 8.400961847094683, 12.142806695044221, -3.6775894169196279, 8.3797255658565142, -12.156985373281584, -17.475193610019677, -14.228116929396922, 10.726007504360073, 15.267119384103992, 12.781072511062279, 8.0326533999697229, -17.51207194760946, -7.554034280962183, 10.066411068992132, 14.13799652436988, -6.7247334837075705, -11.112518294834185, -5.7326833292155523, 3.6877552031425131, 8.7105204152043516, 9.3857694378580963, 19.127569440965896, -3.8614826162666089, 7.9404471399280068, 6.3807591097483005, -6.8888859894612535, 10.317928637508684, 2.1736529765433783, 10.953222318849482, -7.6682531128958038, 5.0318286636058982, -6.9463690764775503, -3.0184853792276383, 9.6041512562391542, -0.88225262267439808, 6.4852292067129724, -2.3181001351577644, -13.197351056460056, -6.8047677874499586, 5.3843074707174692, 5.1196343577870644, -17.820822197855577, -12.257015718775355, 5.1913937352654651, -5.0162460867599536, 9.9461758050913041, -9.7414598652248081, 8.1378256819797858, 12.564281794378495, -5.6365288176451322, -9.1029468332924104, -5.6355130288814301, -13.719331548944416, -5.8613058178495017, -9.2573519867695815, 6.0620773131346706, 5.8947778726542905, 11.265652594812099, -11.760986024368906, -7.7447348268870124, 19.076436411627338, 14.505720191829832, -9.0750817120358054, -5.2025480400034789, -3.1960162333402482, -11.659437264119374, -7.9842387274926709, 8.5980388295231229, 14.858752059828165, 6.8639263237417376, 6.0631638589074024, 2.7093921939507379, -4.9581002755473795, 4.4179924464321392, -11.144868427484562, 12.546476704938177, 13.606433000436612, 4.0208619807458295, 6.2408832155761376, 3.0941528835943455, -11.347668662075096, 1.9313877794966201, 11.65105372954261, -14.681336156121709, 7.2969958167198605, 11.59264621157577, -8.831465763669156, -12.759130509205734, -9.0714254556796128, 8.9948895559776467, -8.3736028555285831, -13.115027308542444, -0.21628815052066303, 7.7132708674061705, 14.055053470061472, 13.370601410874029, 3.3283307501026052, -11.9653642849229, -5.6440590777489144, -4.2508984635752549, 13.005398229132568, -11.5296140873405, 11.286858942494266, 9.8110403874583074, -13.263569122014866, -6.4297799553106456, 7.9672918799786396, 2.1515462864377719, -8.490571668881163, 7.5548103934198929, -13.121628447449439, -5.7901204816768361, 7.5171762671769704, -5.4216710822831979, -0.95140907859749113, -5.6992105242986471, -0.91737830538166343, -8.2053563541920571, -4.9100295191078036, -8.650093905400162, 10.400080220873763, 7.2829351923330092, 5.3481291290736603, -9.5017802399357425, -9.8687523002255393, 11.82329840938681, -3.1919281246249707, -10.124868011353035, 6.8360355157042028, -14.032171223888698, 18.148403140529073, -9.5731633683674744, 4.0453611070899935, -4.114147796015585, -8.4912512496909898, -7.9968991599686872, 12.922672789580542, -6.7315939113482681, -16.414580925551139, 10.417406116722118, -9.5795995211441394, -7.974905790034116, -13.727944328842275, -15.024522822723423, 4.9026741637309703, -10.662764572620276, -19.122555879539242, 9.217115643469544, -2.9661166430929642, 13.154514394206242, 9.8788596316167272, 4.2669291411005252, 10.239868792823961, 0.50928446540137651, -6.9544644508051245, 2.9807945285095245, -8.2689690969205181, 3.5499295458600972, 12.732733620631645, 11.61935741986054, 8.4137329217700945, -13.703811206903364, 8.5347899814747166, 13.941804015126218, 11.213731601489895, 11.550008187296406, -10.885532785062049, -6.0320756476152395, -7.945602926688589, 18.178022024827495, 4.2378890109434684, -8.419937978328889, 14.273513193884424, -8.1801725060827586, 13.690183625733544, -17.518387733265431, -8.6392702216784656, -13.927446312699148, -8.651607062718659, -12.712917239643309, 15.009792996204254, 0.15853783962329626, -10.462310302523948, -12.535567399778486, 8.8192610919401329, 13.066656030822525, 18.005415525102343, -16.007576967175243, 11.052574245331391, -1.1810954342450888, -12.762633127175347, -11.427571726679494, -1.8068233566411038, -3.8651597939182674, 6.9028603232990591, -9.9188843352819767, -13.607089316301986, 5.8989769757503172, -10.266998033319117, 12.946619994251195, -7.3433271276853551, 13.594756446262442, -1.4802835189751626, 2.9459432512420887, 9.0127453411993006, 12.34274116102957, -0.99056567004691576, -1.0211228826859517, 10.87969885601588, -15.669877762479704, 16.01192464298973, 10.789218207135569, 6.1523737440350752, 10.844976713696601, -18.796538678004055, -7.3982730413954201, -6.5213519941388851, -18.571369340190397, -9.6913300045155282, 1.0175474995943568, -8.0705533615168754, 14.251221745808563, -14.054781652173469, -10.906074448438877, 9.9932114606110058, 9.2204934537976815, -11.102967677965665, -15.06146952578059, 11.282374133246716, -3.4111780254645643, 7.3857075662336609, 10.330601600777463, 5.6502615537426548, -7.2776853004382911, -12.041052757776699, -11.046289906579057, -2.8519140526114701, -14.358095698121817, 4.6207960341417813, -12.368837238636017, -7.2377430770905917, -7.1306536664479809, -10.374815173234571, 7.5287331560402384, -5.4660620697715716, -13.441122458297521, -6.5962962593129824, -8.4930653390556969, -5.473757203858737, -16.42318744504734, -7.678902139771755, -6.1724752873292612, 17.227224731420481, 2.7992443468423089, -11.010643413583562, -6.0460973993600238, -11.514094016830022, 7.2250024006000091, -7.8426213114387204, 10.647716150585898, 5.7539405508617296, 9.727218535739766, -10.217949794886991, -10.197658817694322, 1.4534950594678713, 12.10682632749001, -0.51088307163622715, 17.710760548825679, -7.7470194812395397, -24.372971692573486, -6.6052580469808717, 8.826482956514015, -6.7872955696686779, 3.6389619856040674, 9.9237321927880782, 12.100520790781362, -6.8842633676573595, 2.8844843405481937, 13.672108533544661, -5.6338295492883859, -7.1944131155704678, 6.9746870716875398, -8.2312590639291852, -10.25205738032861, 3.9564297173352139, -11.16342115946062, -8.4103856915642865, -3.86058459788803, 6.7693385059336668, -5.5093604081945458, 9.9112156966838256, -11.829917793796264, 12.06350448472004, -9.8908904770778552, -17.725516485129567, 5.0710728367340741, 2.3733785626266992, -12.373813495428958, -8.2010211819107539, -12.301300323962623, 10.576063861117305, -2.4429576335852246, -9.8126936984062763, 10.720987427999063, 5.3468144210345949, -7.436093608771988, -12.085562323273949, 9.616133130427178, -7.2337117418265358, 6.590012489497771, -12.933819456719151, 9.0992320680750058, -4.7115096872358144, -12.444448996962361, -9.2431835291508904, 8.9400870181220906, -14.84487535501597, 6.9572855730306786, 8.679259378600257, -11.728117564638417, 11.57774167266283, -11.089244669418909, 4.4545841055164113, -10.471036138424958, -7.9268850048012363, 10.006310688982033, 7.3307629546995496, -0.70086411051328346, 3.4399790497959652, 7.5780305602750353, 15.952535940468001, 1.1236075069228646, -10.56946563987197, -16.455271371728593, 14.943737550316991, 15.270538328279843, 1.8246123975329285, -11.861267836196021, -12.897409417413272, -8.0295182717849976, 2.5085092290718261, -2.997769928368061, 7.7106512520538253, -9.7986312114017196, 3.8597867083890951, 14.715042117673541, 3.6286772784703238, 4.6804229784596041, 10.468442660987332, 6.0309605373905297, -7.2836222700763322, 7.3372979832476464, -9.125874340732242, 12.431154776537063, -12.652059501141041, 8.520614267493885, -14.669291764198016, -5.4369263583494511, -6.9272239504642288, 14.411503339302335, -6.5090359387453871, -3.8249288367587844, 6.226877964919483, 5.4872378813688707, -12.071286274848809, -14.839631376528764, 14.929556186968613, -13.550466083272015, -17.79040452965922, 5.2176515285150078, -8.4073909354978511, 13.152357868676932, 11.880434179671278, -15.154722117187848, 3.3578570344364098, 3.7992951070371852, 12.544849221875657, 4.4664223998223864, -16.02563218730095, -16.858694781271584, 5.8423687431569373, 14.717494305248145, -6.3014233972716296, 7.8246512200173655, 0.2490959399462627, 10.09774947224876, 8.2302536611399972, -2.0230125836350608, -10.877543890130998, -10.315299910440396, -17.814418691884743, -4.7984509876179366, -10.569732541659832, 12.468245506360125, -8.1994351150315588, -8.4938440033843783, -15.646554844352739, 11.104862652426069, 5.4254710709054565, -7.075912451839514, -13.038488980503107, 8.6283602505517099, -0.1897762834069755, -15.926221800862628, -9.4620561439869952, 11.028601034997564, 6.2202218101379954, 13.01838761394424, 3.8814455959068872, -10.571348353520641, 9.3930545668475638, -7.4486485829571807, -15.896920034679038, -7.6634637506716583, -13.744383772875613, -16.289316553121051, 4.2240572521775093, -5.9728476753105495, 1.4435980912356212, -9.482201269588181, -7.1075995048298424, -8.4496788887326719, 5.5233585701859731, 8.8295065675835449, -6.8321409197770491, 14.622652588625614, 8.1030077299922656, -5.0997213512339847, 10.535820013561885, -11.687469584683409, 3.0547169868379771, 8.210959869395893, 10.201179428221021, -11.658463276051274, -13.563724058479169, 11.01039677555352, -7.1382476676607203, 14.955134349802455, -13.750666848543476, 10.162311270235616, 5.7884645703783697, 7.3371242692507819, -9.6841606635170585, 5.466449250298048, 8.4163518309029381, -7.1508542487337046, -6.6797959016182888, -4.7449989886325188, 2.4393509869405792, 8.654752655597532, 10.070879973393719, -13.17581052395726, 8.5470611298539545, 6.660259185215466, -6.0653871786400737, -6.5193717691612134, -12.615899043092323, 6.700881216282939, -4.8478946577189745, 5.1988868211607864, -12.549358461765644, -10.045744010088018, -12.380860324318006, -3.8616068170109248, -14.465705737907983, 0.4164829268257374, -17.143567612135136, 9.487366827722223, 12.652721901108753, 0.7645899772346989, -11.920812995054151, 5.348021509175628, 8.3879926788022008, -4.6246359904401313, 11.089899173175201, -3.8332542947304775, -13.36196018971258, 8.2464982273107097, 14.657515986404208, 10.904966172392774, 11.533578255944192, -13.982006985588614, -11.973821478795168, -16.592644946389242, 9.2836692767439004, -12.678645783087854, 10.730932446196368, 9.5849200107862327, 8.4498461340685918, -8.6907116625889529, 14.156816081594213, -2.5856081507256512, -9.2993749691896994, -3.6239666126178607, -1.8399557052395836, -9.9970546829752251, -11.017332480853435, -11.692178962270885, 6.3025733321249016, -16.175906955071767, -14.423994620868056, -14.689511946206805, -7.2353003125032167, -9.3660212630661839, -13.858073820033896, 4.7709918994882639, -6.7026088232668739, -10.527782639004828, 16.58828557927492, 15.050247187970289, -4.0564185563228934, -10.640020339068798, 5.0431846567205971, 10.934348304548614, 0.75988821460881439, -10.291366703091549, -13.942020188031572, 14.135017480152827, 11.151498767692816, -11.537353350061172, 10.343082453782436, 7.976541387752091, -3.5774431227145778, 6.7912849734238856, 1.8417106851238594, 8.8764923317563689, -14.359256236175909, -5.6171451890921933, 5.9817930874266256, 3.2031461221092781, -3.5231009274983971, -14.863876345356418, 13.612377512426715, -8.9030335281364348, 5.1285813990983709, 4.8771312118802621, -3.1813763041012044, -8.1658030154444532, 9.2635478384894121, -11.938316318486482, -10.581389864174858, -9.041740376889754, -11.289532586451648, 9.8541909326330934, -10.813754378648875, -10.992626098956032, -4.2128060145436059, -13.803513190675977, -3.4047166821717285, -14.699309096179331, -12.322199151029571, 1.9847013546589598, 3.443351936013523, -7.7412573332668169, -9.4014738152531816, -6.0936722951459252, 11.249057062872248, 5.3612317349290048, -6.0934505412619844, -10.329491262921293, -8.3782268065652321, 10.610705115588038, -7.7383153101209938, 8.5683043797354852, 9.5214421313463742, 9.4646448974772674, -15.945188235432587, 13.571842719150663, 9.1766386061343823, 3.9788060864638335, -16.400242920289237, -12.152955170027367, -11.743525499640301, -10.778431692576483, -9.560949750398839, -11.274506489189537, -10.497378072608422, -11.313774108583567, -8.6889440492171826, -16.999837953521492, 2.8463220500405759, -9.3414733746083147, 14.505309388696032, 7.2740770646355823, -15.216612609375215, -7.7754295642857443, -7.9668693810493751, -11.838336074962589, 9.3302243430363134, -6.1546909317578038, -11.643770269023584, -7.3067290482575826, -7.6586644572207598, 4.1554355791738411, 5.5784827988725025, -6.6788226812914591, -10.099712087346221, -6.812608788772855, -8.6942723276748133, -9.1414982497263626, -5.5404435688554674, 13.782301424897506, 6.4913332097552408, -14.843570407301076, 9.1090159582398744, -11.810479272023766, 10.734632284091132, 12.106233609286406, 1.2074129428018001, 9.05135706765188, 7.0513320487712221, 5.7063731455704252, 17.827025603920255, 8.2204534825947988, 6.859838386896449, -17.066087459633668, -10.546186910811119, 12.544407506754297, -10.501953033608231, 11.631217929282226, -7.3247345033456455, -0.30451282566541621, -8.8097804299616289, 12.580754884209387, -2.4535950387210703, 9.2528280654920945, -6.6762373246501507, 8.5487856314147361, -9.8862934311079176, -7.405954429775278, 11.460818356885351, 9.4241123506707218, -6.0650535086957591, 11.749931801221361, 13.45158323366806, 8.509266618399371, 3.0990921451133864, -11.845686618745093, 4.6809017476948664, -9.0788995203187035, -14.154172714949322, 11.436663871420148, -11.686823110591192, -10.466322347645878, -1.8093094588126659, -8.2842513297508678, 6.998530934794041, -2.8130875381789773, -4.7458503858358174, 14.892214325455083, -13.297630549395505, 14.137398522674463, -5.1741407656371132, 10.811880263388231, 7.6909240450423546, 1.2020066622797796, 8.3882554040760446, -13.296889605096078, -14.12122762385526, -0.86913405214011996, -1.7012640446050573, 12.135944269100591, 13.696947616128121, -4.5178290393967648, 11.379039879071998, -17.142332699109016, -6.2502893853176538, 14.551005043468933, -15.922443449630226, 7.9749887358427554, 7.5006183839537428, -10.731307185445075, 11.828405368248815, -11.242740313773945, 8.6857287401789396, -2.3357416563180076, -9.2522949403141723, 10.057172114119057, 4.2142804964077794, -7.25445812349398, -4.7859211707096279, 12.212717205630641, -0.68060465039856421, 8.3585750011161384, 9.4355684709667997, 5.8736217498953929, -10.357680904873, -15.182609723791906, -10.528438249903205, -10.728845332160351, 4.4271186570969041, -9.5459159618972773, 7.698786708464044, -5.7616256574906473, -6.74427916594568, 5.0713712230747952, 4.9757324493057258, -7.5822193975454732, 2.1521506074067127, 11.702619296651129, 2.475868836880037, -8.5152128927626887, -8.8176272081621523, -6.7396490012107382, -7.1103087325178862, -12.249044472908748, 5.7223187192045835, 6.0785970538718885, 13.311388408274434, -5.1967232459428514, 10.616058764924363, 4.1131834199366937, 9.1157637550044708, 5.0981827919094043, 3.9623438215809581, -5.1277684895200872, 10.717366089367347, -9.6119167010571456, -17.671933631733026, -0.93466484572541053, 9.4511618566836688, 0.51145591409598801, -7.4842698912260595, -12.965780155817985, -11.049283246505306, -9.4204398537725336, 14.713331608978752, 6.1294522089617445, 12.762571544243462, 4.2519976479727246, 11.581799865407062, 4.0540310044195316, 6.7583036711124178, -8.4596629969850596, -11.555561625120337, -13.223361797635503, -11.022881346403601, 7.820188150462851, 10.050313550691401, -2.8748772822692796, -3.975284267526737, 10.165011610963463, 8.361153496598952, 10.23454765876409, 6.9861352278001991, -14.063066120834387, 5.5703634980353156, 4.5720288674742182, -10.208336872812145, -3.8841964569917136, 15.871358616035476, -10.375333061106602, -17.028934392886523, 9.6095097993772214, 2.8612197492337277, 7.3984151374847418, 12.882442279479097, -3.8593872267618985, -3.3505651418910092, 9.1400352361857795, 3.4607159608677991, -11.802758101252648, 16.131696084668302, 4.3485520924992915, 4.9299693363247012, 10.20608409504235, 11.350181288635312, 0.71079817132091727, 7.1011529322063716, -9.9921413971440192, -5.8089676277937103, 21.431868331238753, -7.0747060210352215, 12.069527047899687, -9.4828998378865119, 10.122263948520756, -13.538606127789073, 9.6375976702501429, -4.4100604567201094, -11.99790766311845, -5.976372779813337, -8.272146596627568, -8.9450436886845743, 1.9542103075796229, -2.5876227697187235, -14.368094001362385, -2.985471188013614, -2.478307267502168, 2.7456040916726456, 12.581031236480218, -11.4758779722525, -15.599590155208737, -12.992869206559288, 9.953747866291776, -11.025999481843595, 9.7008748889831633, 9.4677048052865693, 6.0665148799454283, -11.021027787278838, 4.1148665510329865, 9.9715457939675805, -4.524015231428284, 18.833454602793879, 7.5018420072802252, 6.536477074456216, 10.39532612887518, -7.7192567198190574, -5.8633746049064728, -9.4739325485451946, -12.966876834521914, -4.8932353347242916, -7.50082678824488, 7.9240662467055403, 15.473285728117284, -7.874821177550495, 3.9913525758800343, -20.203393732375613, 13.177667766939793, -11.905585671112627, 8.76829420558043, -6.6904194950549218, -2.0990812946584643, 16.352167450942488, -8.6839871579774304, 0.65535704062993771, -9.0914298192610481, 6.226432112620512, 14.414606788199343, 5.3327990949329722, -9.2825422873145076, 5.2444348695624967, -13.52476436519694, -10.565017103537128, -7.9458267805510605, 6.2385267794539532, -10.620897086888419, -14.02491825647715, -17.249193736529822, 21.822546537373011, -14.525572761291961, -9.6352912168501117, 7.7923236942745477, -0.43905931375127905, -1.1677511335028592, 7.9195608711842009, -1.7261157613467151, 0.81574419315180335, -6.6258630940789853, 11.446710993602048, 10.423767215464459, 10.131515821910522, -4.0813762630157786, 5.3099875815632895, 15.005238483277349, 3.9458100113193013, 12.997541564501073, -13.401349640520106, 6.0898523220056484, 8.5430795315739463, -6.727566986421512, -6.0976964106078926, -1.5514248251358895, -6.9251342133096534, -5.0010498589221326, 19.36294632958224, -10.995748094036278, 6.8230876895289425, -8.9816761374312737, 19.252689002798032, 15.018231032342973, 0.75032883111291693, -10.512852145797988, 15.952636394768637, -13.876019658000088, 7.4282002133627536, -15.007337649734009, -20.867628639436518, -12.864466413292632, 12.282886216105501, 5.6117260976193588, 7.7243055425354985, 0.74537471606410499, -8.3753274103443793, 8.7297402808334041, -3.8752359373415373, -7.8660891683218042, -8.8027160564205786, 7.7988010166838881, -7.8129632889899385, -5.8353090570942738, 11.438552747844, -9.8854956847581263, 6.193488211617348, 5.7060858140643864, -5.8417400083956581, -7.1659403388854175, 8.8621684734697617, -13.828395956746165, 11.58722476958626, -8.7757625064865632, 9.7638601085689327, -13.63897121774294, 10.692146632523938, 9.1954815513953641, -9.7262358263602646, -3.0742135000084518, -11.831625275045802, 10.346151064081882, 13.860225574621548, 5.3434462647847401, -12.667486708061194, -7.6071393527596891, 10.497824234551809, 9.1398524858692305, -4.8312688599490299, -9.6866353191391568, -14.936854315955886, -4.5645292398393735, 10.306087472805107, 16.435616799434957, 9.7618939189542857, 7.3359442918945499, 5.4777235052650965, 12.827631906540597, -9.3557044067803972, -8.6207571310957753, -6.9067986860795303, 9.4266173165645881, 8.2700014055707438, -14.396299560527304, -9.1945433850102294, -5.0742673058143186, 5.9363570201246212, 9.1825801770474449, -14.26016478123667, -8.9647881473585791, -10.999991358949853, -5.2643587807317358, 17.966460043223208, 4.5038323715849113, -7.3643627119764705, -8.0021495622334466, -5.5012765171131761, -8.6385795076142866, 10.642859565399243, 16.418157809689014, -12.558310319227193, -5.6944436186565675, -16.620579134203229, 5.2993074909249556, -9.5535858720998252, -6.194850562303122, 7.9283758132069577, -4.3938243314441445, -16.08461551423154, -6.1053020627578558, -7.8156662613007883, -4.2010902685294225, -11.260598796472106, -17.361798229363732, 10.523477968271544, -9.2997205134904561, 4.7239785905440819, -16.55663724338849, 7.336212674126954, -6.9284736037251049, -5.9733477242286268, 16.958437027673817, -9.3688626284447736, 12.335069283139083, 4.4003768017589344, -9.6375650205771759, 4.3025216992304607, 8.1709809734149754, 6.0840979096543046, -1.7791701081822009, -9.7212268065403915, -6.3728373407996992, 9.4709301635928664, -9.8099415495718265, 10.216669472304444, -7.9089613940445638, 9.0133309428613888, 15.233159549099527, 14.443197589960937, 12.315849008505751, 15.22683390790605, -12.204208274855294, 8.0545420942912056, 11.261686524342778, -10.088714704911705, -14.758394330397744, -8.3506925495196622, -5.7190575904160488, -10.474095362096637, 6.7558531383042801, 10.839875782803038, 9.6223187492013871, 4.0011315315627671, 5.3452889051100145, 0.29628684358052387, 10.260560792716758, 10.010269925150098, 12.309818259037518, 8.3443036587520112, -5.4014577244395916, -12.309450717768483, 6.227119823086781, -0.90098300040336077, -5.9574142236058796, -6.5290358544134426, -7.443075641870017, 9.5718761708906559, 5.9045525168917088, -14.09287394192167, 8.537557668616758, -14.160598968888243, 5.8051719496039951, -6.239975019204187, 7.4524259174698209, -7.4731349725176219, -8.5239733925114809, 16.110254200184002, -10.257968713373153, 9.5898379203607735, 3.4675905258102322, 8.1300367938993361, 4.7762632339122959, -5.8974433337845085, -9.3140122423426206, 3.5847848816848376, -9.5355250106758724, 8.6839175133173008, -6.6948323819511488, 6.7933016290691377, -6.3800902026507824, 0.76093699061175468, 2.6435457529778015, 7.4138748481937027, 6.0247308500592567, 5.9280863177297123, -3.8920878288506016, -8.4621386416944677, -18.750651564949948, -7.6188990491921116, -2.1334205811758622, 8.7540093304816082, -9.8600851053842149, 16.342033110995256, -10.800872299968921, -13.998298573757474, -3.2934871871896396, 14.06180118603365, -9.271874228911658, -11.048285130582032, 6.1595626190926716, 8.0570216147192557, 0.66340001966893403, 6.5132884000227351, -5.4201122315987309, -9.7412562635013984, -7.0486139617141514, 16.981384687745692, -8.7022380510622721, 14.647877845477861, -8.0820055541788722, 7.2226523022245761, 5.3790569210687584, 13.728807132743302, 8.5317048523035623, -2.7316549253863927, 5.3846139594020226, 5.4103146460176523, -6.694268736004001, 8.7300406717059573, -13.347383859719848, -8.335174873152722, -10.945696086225201, -10.4875598953527, -6.2891459907155456, -9.3671321709341981, -11.585498988590738, 6.512870728010193, 6.33239714027453, 8.7682544573530521, -6.7439993019333704, 9.5026784978124166, -7.0246760343330656, 6.4372813340255446, 8.1945894173399711, 10.262887249545706, -7.5060931723177706, -14.674750300787338, -13.287289997793177, -8.4928309129257595, 7.4563888548291644, -4.5195874938690226, 8.5442291590063935, 9.7115273312730501, 15.092119744113154, -6.4263051953856785, 0.12831365323535676, 8.7640439297438597, -6.1460218943241305, -10.889755958467752, 13.67769695151666, 6.312988951937812, -13.227320725213115, -11.784825668882982, -7.6748667604861192, 7.7787450544407344, -9.3711259762266828, 13.023365017019263, -7.0200584128511876, 13.494925467734497, 4.2227722997626005, -13.760223253172747, 6.1777636365323456, 12.067306433588751, -9.9155428829691132, -6.5766064428842856, -15.151662906193899, 9.6988065214723864, -10.152731302282174, -8.5735676931961322, -9.9418795299730185, -6.2260760507460198, 9.447544122507308, -8.1319644337468215, -4.145324424570318, -3.5485961822808565, -13.467769122062073, -5.7514070303621585, 4.2372927865136871, 10.111694661148967, -7.4186471554037379, 11.430760000153063, 12.312843067890855, -12.810688665750249, -1.4448074235360808, 7.986361807585828, -1.7676683131382003, -14.521209725348982, -4.352705664193615, 18.914853195668275, -1.5113121651615482, -3.6397864185997131, -8.6196558356553385, 4.1199321080626019, -8.4888399293551817, 0.57614759104880209, -3.8170562650576274, 6.5118953364681147, 4.0953213386352472, -5.3421050165325257, -12.272356482934088, -3.0358640779517354, 4.2481637384966975, -2.7752337082527849, -8.0160326885318369, 9.5768553793879043, -1.8524775210440534, -11.009861394679287, 8.9742068648070266, 12.471334080830026, 9.9992644688047552, 8.0039800551702207, -8.7981872925635614, 6.6433407975833738, 6.5480704488332835, 7.2841246634294423, -6.3252439319780178, -6.0513426125451124, -6.3988334931556485, -17.469331458693546, -4.580254889517116, 8.9993454898016569, 3.2238207283793323, -7.7799510625287303, -13.803751678166556, 9.7121916487763045, -8.1746700971358059, -8.8126126733994941, -4.8155492973679186, -10.804453969532291, 7.0086143651800121, 3.1481410707654631, -12.810183673768677, 2.3362046780839187, 5.744619950986845, 3.8643342874084374, -13.249939418679734, 11.415744222471059, 12.554737671029878, 9.8333778447831257, 5.0957400772063437, -3.9991407502674661, 9.8345770583999279, -9.7368996360840274, -19.449417624721992, -7.5133274868764675, 6.0619042605430966, 7.197156700662827, -7.0063836107615485, -19.263860108465263, 13.028208109141358, 7.1331219897936977, 5.4720228485501652, -7.3579311406347925, 7.1801636071660138, 14.640572831964421, -3.8340913302192701, -3.3062445113231744, 17.400159670258972, -7.1681505547822413, -4.3542281808553351, -8.4546164816007607, 13.421193429578857, -14.905121149794782, 8.3143744117862095, 4.9730046756217972, 8.3532232015837344, -7.5969825424753346, 12.3177910080973, 8.7607875220531426, 8.5127047792303561, 3.5774587189097899, -9.6494548210828786, 7.5331539937229897, -7.4747114284701679, -8.6591660587053916, 7.3468316363038637, -3.622337543593344, 0.47384090625185044, -6.0463560480716252, 8.0499483448215017, 9.7022755442800293, -10.776004671468062, 8.3543427603924503, -5.5360568466131905, 6.0186808121336659, -7.3543970398820848, 9.2806086183805689, -12.230546104506987, 7.4673092848302733, 10.975472812952574, 6.7926415721593818, 4.8749321283736755, 9.5323516120815874, -3.0280886662753885, 5.5571898549900514, 10.226559964818154, -5.8034190385368811, 6.5444311969384019, -9.130374827280793, 15.819448485436817, 5.5538576215556326, 2.8637826501217618, 4.0706674231610558, 6.4597011042272623, -8.3735378854139135, -9.5667300995851061, -13.845901714228189, 12.714093428899416, -8.3628461969588557, 7.5987675327409425, 5.9272125723131186, 4.6950385206484189, -4.8195825770873233, -7.908711363482686, -6.0290697566338824, -8.6859336035752293, -4.5193059923378351, -4.5940077637319696, -4.3311584091869832, 5.3536488354562275, 1.9921280360174241, -9.4633153479117045, -6.6570051760469031, 14.208357863252012, 9.4845107231608647, -7.1832992233853066, -8.8475487049318655, -13.630287949249563, -6.0719107719352952, -14.274798405390152, -11.162105305503859, 13.054901490270078, 12.995371746588807, -13.146715820058548, 12.945646134893682, 3.0460739976722446, -12.155229015360904, 2.7412678887489506, 11.780611735174173, -5.3341954653614927, -10.032480770112713, -5.8447538785525053, 0.52725472542845364, 13.379456926012971, 9.6135830134952744, -1.944448284069229, 9.0502993001659355, -11.346127451101133, 4.2434870682337369, -9.5043367843183457, -2.9775157830606012, 5.4193649803215109, 5.9212605221007886, 6.8739591477125153, -9.3618138585411454, -11.34734301929147, -2.8580136600449677, 9.7314938797272301, 10.716957084696832, 2.261487615173849, -11.936472547545375, -11.596497065616539, 8.1683014049841454, -1.9741314291525349, -3.8079032870338203, -18.998387033650793, 14.785213606318443, -2.4675987407306512, -12.092457768834166, 8.3055089082183038, -9.8880041321383381, -12.17693749962149, -5.6119106856770609, 9.3346742365750952, 5.9978824704833622, 0.13754021975113387, -14.894732183908136, 14.747292229007831, -9.7097733323647439, 7.1041665937562009, 8.747982309638612, -1.1124715705618149, -1.3453533016361534, -7.2336827315963976, -3.3065754079116902, 10.610359888132521, 6.439770888743964, 11.42420401634142, 6.5388842458764689, -10.853598132676623, -15.353822721495742, -8.0675862924724751, 14.459019981256141, -12.566396596207603, 3.4205186262164231, 5.630487549883056, -8.073684341188935, 0.82126057392054652, 13.882060246971731, -11.094144048902541, -11.389801550560342, -10.3187260289045, 2.991571648758196, -6.4911734708363165, -11.245496138683489, 10.9851776336762, -13.130504876870628, 3.7733165504957942, 8.4076079303113911, 7.5529546967120051, 9.1048736341912768, 2.7287083950923141, -6.4019633593747214, -6.7703960792021753, -7.6283872602484184, -7.6359394699956251, -11.153289601654617, 4.0727793884727168, 8.3062884746691932, 15.72392064712384, 0.9811577968163786, -11.722310671012934, -11.342923130703641, 4.6538782013854689, -7.3739066993524025, -5.8947067956510093, 11.486762613574625, 12.413880145399126, 10.786268654735865, -14.830950842039924, -12.718664091764236, 11.838893611398694, 16.960744319691706, -0.90885433404131177, 11.805632469674961, 8.787147329142396, 7.4670599584679005, 13.783711428147573, 2.6889832573487715, 9.8277282208337393, -12.621979239155044, 11.900463485129047, 7.3974913674936378, 7.9790082301381764, -18.460977129782226, 9.6868989422260476, -7.4849707679692381, 2.791279213037106, 5.9072811103444005, 10.027746084723706, 5.481378194108391, 0.94657543605496242, 3.1638084348680802, -11.565804912112132, 8.1295825065418228, 6.2454385368905463, -8.7244225637155086, 9.2949740971114814, -15.413745662976126, -9.2767171742637053, 20.883637553321279, 2.1729042705598971, 5.2123425513190229, 11.260222333457566, 5.4759025599371576, 8.1537344500122764, -12.294121929916995, 8.802476739158374, -20.703918322925325, -9.4123075195898913, 14.838015503157582, 8.1809389421993437, -7.6381202529000944, 5.0731354695422288, -9.7523696522120105, -13.519239387616903, 7.7323479369959101, 12.148583040284464, 5.4807070910189717, 4.8696229713233139, 5.0087903276064836, 6.4402113569592467, 13.277426855835845, 9.6524651881369721, 10.826902095836219, 16.183489895274345, -9.6318043844967534, -1.373132442179763, -11.219593888898418, -15.004319828107285, 18.258393722812315, 3.7354456310459385, 8.0651749744359105, -6.5164044554554748, -12.565266643553137, -12.030885912645394, -8.5404810535779507, 12.314165209697041, 7.2947873166397219, -10.819275536058335, -8.0129408622894012, -3.8121662128657552, -7.6091124585846721, -8.4798365873122474, -3.9868453977970675, 11.38629202057937, 3.5714802941824, 2.9518831049273677, 6.3322250488086071, 11.580034774188221, 13.479927163429085, 2.0786137569475098, 7.9330224326080057, -3.6943001859225055, -3.2256160391289095, -12.811450358156192, 13.541505165687818, 2.6411149013180362, -6.3489619114245244, 13.373338952003571, 12.628299743258562, 1.0027687748564038, 9.2077227922659706, -13.768254699816865, 6.8324600540916247, -14.524379303203943, 9.2715316925285709, 8.7678396133255916, -7.7000840765938703, -7.6752994649649313, -6.9178464084480851, -2.824297046557938, -10.067962153214038, 9.8382780470022801, 9.8343360207768367, -10.442346656794413, -11.531825845771756, -5.6955603852302623, 7.9952115376447042, 7.2796481632297372, -3.9815702225402285, -13.888827599999129, -8.7028698626538308, -6.0635186121417952, -1.0917426165389645, -7.5444189349932813, -13.502585170286313, 5.3738984196649149, 5.1002418292985094, -2.2415640749653791, 8.3993581378656117, 17.872303247028064, -5.7930453662663712, -9.5610560588597515, 8.0594903059030294, 5.9955468570765671, -8.4016643820784811, 16.017479926774133, 12.457791465479348, 14.251050296430238, 13.550966058757862, -8.762120073439311, -19.568799520529904, 14.473633275887034, 4.7150108398434316, 17.622896812791758, 8.5532109821391256, -7.8861564007563967, 2.8018084587073706, 11.238281768369326, 19.036214400042667, -12.627994340787289, -3.229926146308185, -6.2106083456766665, -12.029815325633603, -12.732678066605525, 16.114114027765005, -8.8878875737603433, -9.1952288940063198, 2.9514348736209386, -14.875969949421576, 7.426537438524826, 4.0988218779588257, 5.1048469008081083, 8.3561664083509974, -7.1680838371486972, 0.079559302266173665, 7.234447616829998, 9.2153180384359938, 11.380502523658766, 3.7813665464468564, 9.3571471630839476, -5.6198950965916659, -2.6112846832626295, -13.074922193350705, 7.1458325396315745, -6.8553238201936848, 14.037347515845747, 6.1114574644258219, 2.6233447927944442, -6.6962191818230385, -15.054560815064955, -3.8509653059595634, 5.6193134186600444, 8.4632418525580135, 9.06084843255511, 8.7155312766304451, 14.146656363113056, 9.4485647712524159, -11.894790263269002, 6.3630883640874796, 6.0659222594215532, 9.3423771994935656, -11.56898779218068, -12.569317170483185, -3.1542401369229229, -14.317618053977442, -16.07713062656423, -13.866270731830225, 8.9731628045127234, -2.7568654754219311, 10.650056946180007, -0.38554919912492391, -19.636918428478758, -7.261084813408365, 18.261599502237281, 4.365909470450525, 9.4604701736004575, 9.3379768195852684, -5.9721332777841125, 1.8392337494849149, 12.236588220433115, 10.729755869202716, -5.0163355160529157, 7.8745146479874295, -12.210717308250283, 9.9053843786672573, 4.3176048616878999, -7.1321033170654076, 9.8376099896153644, 13.994875675654404, -11.800822210877568, -12.467732532409068, -4.8096053846346782, -15.806886200214143, -16.011053902031289, 3.3108259217896991, 9.3708906824355758, 4.9387906035182194, -7.2811664484622529, -7.2283659694812323, -4.3994107454794076, 13.986557692605393, 16.267589496305209, -12.5211237853249, -8.6162733581098614, 11.875897506788261, -5.7924040049014529, 9.60395357854315, -13.371234187638548, 7.4044876769030976, -9.9169764629346115, -11.960026798255779, -5.6929530819152605, -14.080996179546117, -4.9741440758010285, -7.2894457453898616, 1.7385165163304241, 10.659988023147882, -1.4616437274123262, -10.074637029156758, -17.086127613435742, 12.235716666711239, -7.9575522168496349, 5.807625236075423, -9.2779276010226894, -16.480345338445041, 9.5297786981975108, -12.287759229285887, -5.793455825490601, 11.046928184816098, 12.263531584491689, -15.868613864191206, 6.1089590101381299, 7.7043039642206841, 6.7725058819006509, 0.19765926454723443, -10.92190123421037, -8.6903416862217444, -3.604954070470813, 10.780882529813848, 7.6342821794581255, 1.819027960022801, 8.9622472070627612, -3.7731185676641705, 2.6511830669363676, -5.936256145443763, -3.5065708446633179, -1.6756694810431396, -9.4457045728120921, 5.1176087336867671, 9.0843869892318665, -4.9165468247185249, 9.6190501542416023, 5.7720688303614107, -8.8665231351704143, -16.776765049597191, 5.1935200585542409, -7.0317717992679913, 8.5952975711448651, 15.701379400382201, -5.1747900955843287, 6.644409479106538, -12.294043736596755, -15.483394542555223, -6.9161043885800755, -16.902160692468406, 13.140408586007654, 7.9585367038084494, -0.60142488467217781, -10.583573691246794, 7.6570812407643905, 10.488467203766263, -12.229594163883426, -12.105180821633089, -10.100333917660924, 10.582889173673999, -4.3524138084056574, 4.1598294177868027, -7.7208623056787218, 9.8373959423124191, -9.843437056863948, 9.2758547221503864, 13.917929858415311, 9.6348606573169207, 6.1603576344825903, 7.2761550553448275, -5.6132644264075031, 16.925921888188984, 13.099232943399601, -12.169951256692608, 8.0341465714582103, 9.5080586839310293, -8.9153040306547862, -6.2778930359354987, 0.65702865949253608, 6.1455975831103666, 3.4956736733487177, -13.101966614043903, -8.4917541060921486, -7.7703858331616402, 2.9540207920840338, -2.8250454453694225, 16.471572201031012, -8.3401753077338174, 8.5209392200398799, -8.4562622463700912, 5.3451445327350049, 8.3227551961577149, 9.5505384761710648, -9.6168853444985132, 7.8088619634040271, -10.010194534199005, 10.407541359870157, -12.730901681260953, 10.062237956980878, -8.301093581147164, -11.221782089013969, 5.0699226682185836, 6.8670809315755763, 9.5183305660198574, -12.477293633009369, -3.0829984725185011, 14.251075736126907, -0.50381312202666373, 1.3945668674871461, 4.4380349292124333, -8.4792849992484687, 15.740298722260704, 6.4916661990457039, 9.8781328856963952, 14.524311425947424, 8.623227064986775, 1.82594923740208, 8.1658888991281113, 19.519909829772214, -0.71626812905103776, 1.7182300090879543, -8.0056305624195137, 8.8667806307632393, -6.8903486607996696, 5.3931378831660304, -14.284745953661838, 11.800779205285183, 11.828892295047666, 11.579327959504184, 5.9644626407280574, -10.637566489206868, -6.3308930175168046, 10.362896991246821, -13.136681551103671, -10.69114929291889, -8.2804076555200332, -8.7620956793565572, -8.3349590113674843, 6.0390086996968186, -0.92206940007654714, 16.688147291793179, -7.7396944231238889, -10.556885976235911, -5.5034713893873217, 10.684323799177031, 10.164740010619706, -18.644906837500962, 7.8255279920941758, 7.1184183927575999, -8.5879829996361785, 10.058536284915368, -3.9577147638427337, -9.4390455070755355, -10.813502747434075, 3.1725069430189179, 14.646645070268773, -6.6958720302719321, 7.1891012020482057, 2.776770380964142, -5.3045752723276198, 11.024688310314966, -8.8716706651748609, -6.2182144207648875, 7.2174155723591822, 9.2363647659736916, -0.13811663085025644, -6.5095852199241193, 2.7850661520962201, 5.7288466875807895, 3.8404238060339386, -11.979694823507765, -8.1566218452888641, 8.4872181623141802, 4.0684730663558621, 9.433119896225687, 17.452359798566942, -9.1852211978356539, 3.7813711040017632, 13.687886395835575, 8.3110503099043083, -12.263855365231695, -0.29265821325473718, -5.7786710506977288, 0.32000221107421295, -13.152220176187292, -6.5995903240006717, -13.649334703564579, -7.5516513340805105, -15.16406327996164, -6.7664832291371457, 9.9511431024063146, -11.833825853245724, -11.726480937964023, -4.6960938337568416, 3.6909792826776235, -5.7241654435325771, 0.84009221550172219, 3.981445765587416, 8.3193977689219309, -14.855487044550641, -12.13768399449228, 8.2575189786919658, -12.482209307351347, 12.288265749008579, 12.92588605732125, -0.89651953932604156, -17.178851924529209, 13.465060130471429, -0.66179931634497746, -4.7361380949519907, -8.5915497494217874, 9.8633923545024036, -11.075503948766817, -11.521258634171812, -16.937563321814299, -8.4089961555477153, 10.316744468138424, 11.068755254870558, -12.812559137681774, -11.716000182253042, -10.794814834414403, -14.695829972179469, -5.7734367211811755, 19.281663549262714, -7.7079679114509911, 18.982133221850518, 6.7278265135517552, 9.4200950070653935, -5.0327780626629206, -1.1472749532062567, 8.9655615288611052, -10.289968622568939, -4.5317886320427014, -5.0717832150149214, -12.403158065152988, 16.054879478569319, 11.910769204629043, 8.8721630995550154, 12.946670225247273, -20.040326823281728, 15.061437997065909, 12.371159663686912, -5.2434241432319393, -6.539600733678907, 8.9759004731301122, 10.399696431036546, -9.7820158235043255, -1.8655127741351087, -7.2564512028104291, -9.2402317505484497, -15.743596514833451, 8.0518221334585913, 8.064389141916843, -5.1750464722524647, -1.2577099412771857, 11.088648050953193, 14.734664098438651, -8.7257834129372487, -4.9071340910761805, -7.2288497019818241, 11.368753439780507, 11.259515603467754, -0.9190234527098583, 10.508309728639846, 5.5014236641516137, -1.0062376510942861, 3.9510038373896794, -3.3772476520373296, -12.298064413396816, 1.1518807046710942, 9.8347990668982277, -9.6697877164226895, -5.1708006319540161, 10.90534178699129, 9.0780310964231923, -11.06717326378323, -10.193153698637712, 1.6370922062264599, -1.599701860652494, 7.4493340597532782, 10.079750519485344, 5.9817167134058051, -6.1883642950981734, -8.7859917448021054, 7.6925693496530796, -11.726693947959594, 1.5292664230077266, -3.7640503328337047, -9.2026303785959076, 8.3703384923817321, 9.2968574133785165, -9.0282964165522213, 14.082662142896044, 7.0391904432891064, -8.1892402659133481, -8.494960679412987, -8.3171594195215324, -4.1204583607408765, -12.464929795412097, -8.2800259108270922, 5.0158695467591343, 2.90504266938304, 5.5802620759772603, 9.6053945607379294, 7.4665086294967553, 7.2836197716168538, -6.0797636096551519, 5.9192672325212143, 4.3197502963078556, -2.5794586298505413, -8.3804827856018385, -5.7616389244014083, 7.5165636982133597, -3.7871806468757891, 2.6957388838195038, -3.0339814791522679, 7.7390014359139343, 1.0179611498135317, 0.57428282151728316, 9.2486809887277968, 8.9851820183067517, -12.322228892543235, 2.1846637256927366, -6.9268224211182101, -5.6465263096341207, -9.8609073169739414, -8.0437109222330996, -2.5924823061626299, 10.799267368908426, 9.5532367964485942, 2.1510949897407339, 0.72813586085734983, -7.6316236927774765, -6.6634161974825536, -7.6995131312161114, -2.6469146283491312, -7.8927242011683072, 7.9686594739655217, -8.0858268153723696, -11.113628935027652, -4.2312391545249435, 7.400536752330261, -15.878877108958942, 5.267992480772417, 11.16296673206628, -17.540164979801386, -14.801126830818111, -11.385201143366997, -14.508310090705075, 14.464207778841862, 11.215905228606482, 8.9532196390944634, 3.1058203222772014, 8.0753828772231113, 10.559485384240654, -8.2414912742823354, -11.714805939566189, 4.7281042573450431, 12.657353257890819, -6.3043093049399248, 5.067000914225444, -14.714628033981958, -7.7444814248447615, -2.5025562382741042, 13.564851064978582, -9.4328409951276662, 10.04126088038934, -10.570084081595921, 2.3444801610493466, 7.1831276221853866, 7.404162681313343, 1.1684082688282307, -8.8884680285241533, 1.9400943416397112, -13.196562462363692, -4.5705203572273359, 11.003636571194738, 11.468673888105736, -10.534610194739036, 4.4477979444487845, 7.3667611650061362, -12.044187016767467, -11.396051178941862, 3.9462512050906744, -12.988661501036244, 10.545881026800801, -8.0309289513402735, 9.9370741830104734, 13.654579804016825, 7.0469488853837321, -10.938942295813185, 5.1800344871423132, 10.882232153707738, 1.2710853105543087, -6.5661242949766816, 9.7776412282696459, 13.321850745505881, -8.1153422577009291, -2.2941713421233958, -8.7097542589155221, 2.2618606797252978, 3.1810406025700315, 4.829995467844082, -8.8230523342209999, -7.8350849175265527, -9.1156429568037076, -11.442019665347123, 2.2127249998070249, 18.018245968154236, 6.7919203279388967, 10.818120665998064, 15.957114328595093, 9.436472994391762, -15.0724442489973, 10.177531220212931, 8.7382348206500033, -7.4439716572652967, -10.135340539629416, -1.5478693068716267, -6.2520881203409369, 21.51870984833112, 6.7814496888686202, -5.4629593689724354, -1.0810664038442734, 11.680093350196586, -1.1684404824410481, -8.8192804660387161, 11.947180907432026, -11.865540708697406, -12.073158010228243, -9.3168616660647103, -10.855717378744718, 12.832277402471462, -15.233827235544979, 3.719489187613028, 12.974696537296685, -8.75959465422536, -2.4475947054420195, 11.313184053568827, 6.9182165488811229, 12.123675956468196, 9.6442923820443145, 10.799907622549545, 1.3696427348286129, 12.109212710737127, 2.6404947713803306, 9.5435762973738267, -5.4268755145327745, 10.974370356637689, 11.459181655827159, 10.228613791177938, -2.0376202581586202, 8.5519223504193267, -15.144108617549279, 10.208111627929036, -16.074632706297336, 9.535346082793712, 12.968894012265515, 4.2926497043948793, -7.6447760416419124, 7.3591604897068219, -6.294066487171917, 8.6661482650382133, 4.3524844886549072, -9.6284187314739373, -16.389868048898698, 14.370574991274481, -8.2963813089615268, 16.504114329831857, -8.4564658970066731, -6.3969858495492078, -7.0522130158545027, 16.328014713505098, 4.0676774938327931, -8.8805902890220576, -5.6438005548253818, 10.887856323753418, -13.497382772819085, -17.229682704447541, 10.177341730428909, -10.959196430060141, -15.892999214486872, -0.39312548358593402, 17.548662000796629, 8.138747505659067, -11.081466337015, 9.3549081143588229, -5.2668052531909293, 0.59145215464277101, 13.865804154173629, -6.7446135707105945, 10.591472647241186, -6.8775928522394087, 0.79035105716724385, -0.83434363179526505, 13.426811179256797, 13.480253964577903, 7.9579945693584886, 7.8687287842784803, -1.2711852125721312, -6.5831626138029433, -10.255988526378117, -9.3721646222445631, -4.5483019698635951, 12.654546996958775, -2.2845772848784054, -13.395748226685187, 10.227730333720137, -8.9275038607977386, 9.2096733075692399, -9.1994549499155589, -4.5768838702423018, 7.4336970353205523, 6.1990136188764922, 5.392562974045604, 6.8615159418299543, -9.9148725697134683, 10.272013543022926, -6.541146389868957, 6.1996539988491746, -8.5702789915391175, 6.0710850780527128, 0.41216255793753664, -6.8452494187073416, -7.3698306482120808, -4.3788198137924814, 5.254192997316685, 7.0651978737141468, -8.3496697717376325, -15.541186410630397, -13.361062248182593, 11.869712905857645, 8.8858662456220436, 2.315280646740792, 9.1370562156627635, 10.612212040886574, 15.723923545841364, 9.3000796832012966, -12.203790919241875, 9.5229433645020229, -11.332560886601259, -11.799762316157022, 8.6718707861873146, 3.4390494326490342, 10.948206478975262, 10.351083327208633, -2.3551385999606347, 3.6593868571158006, -10.912461508095474, 6.3601915796808566, 12.644105697007012, 8.0987317607631102, 6.8425116090817673, -7.8614337809266139, -16.777952262404956, -15.092829035089149, -10.867283176676434, 9.7617585972043095, 7.0699740006630494, -0.80345056050581032, 7.2341098943011026, -2.7901743760803868, -14.023920253719963, -8.6493250885626658, 12.119156062865828, -12.565363519164727, -6.6257256922764087, 9.9530063133378111, 6.2285641482405287, 8.5890710113124502, 10.901661163934543, 1.7011000225296526, 9.2328185698429888, -2.5151197107048353, -0.78814118951465995, -6.3782804075339934, 0.77016194990540299, 4.7860592575330942, -18.091131028655795, 6.6618347947308489, -4.5537746303503699, 12.906362988375243, 6.6637236513957019, 5.4194732758517778, -5.626683563346548, 4.8295291548347352, -11.904932030289029, 9.9944164460741938, -11.027348899069844, -0.014743410131345848, -7.3410368137184197, -12.558702052466645, -9.2966083471503538, -2.8582301845790048, 16.122229949617235, 6.0332133243788979, 9.4423884847579131, -6.7953848219405604, -8.640997496023326, 11.564755524473357, 7.7370575077503672, 11.178600690994582, 9.6609341268345741, -5.0924071871300569, 2.9472182219982841, 11.322674214116185, 17.636604816170465, -8.112421382991716, 5.7980976514734257, 10.587871354585735, -10.207529594090163, -13.012906685255201, 1.6439826301840548, 4.7959168408892552, -9.1817793609379343, 15.910744159295755, 11.988413488939839, 10.225499838967904, -2.1100999951643771, 7.7773391391119979, 4.2070274590049737, 3.1789918079199362, 11.389698381773869, -5.6797986359782069, -4.7261529062162424, -6.1926650154600731, 9.5097255166801595, -4.4005426737892748, 4.8284348550831577, -7.4035564503513553, -10.371755556185054, -11.138214834764621, -11.479591917367713, 7.3492465579271542, -8.6401023000535666, 2.4737379805053212, -8.4391176745455763, -3.5699286239866383, -8.1254703716775829, 11.948227614312263, 7.880462510583679, 1.8623842706739999, 7.3888689386136646, -1.2896033177393418, -8.2116493851785464, -9.0121076446113531, 2.6038276518722672, 7.9944375021940459, -4.3649859784435145, 5.1704186172538593, 7.7846827735959723, -0.51775021699396251, -13.814395914977867, 11.155615752700793, -4.0116122940272048 }; const char H_2064_516_sparse_detected_data[] = { 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 1, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 1, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1, 1, 1, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 1, 1, 0, 1, 1, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1, 0, 1, 1, 1, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 1, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 1, 1, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 0, 1, 1, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 1, 0, 1, 0, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 0, 1, 1, 1, 0, 1, 1, 0, 0, 1, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 1, 1, 1, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 1, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 1, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 1, 0, 1, 0, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 1, 1, 1, 0, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1 }; codec2-1.0.1/src/H_2064_516_sparse.h000066400000000000000000000010111412132000500163770ustar00rootroot00000000000000/* FILE....: ../src/H_2064_516_sparse.h Static arrays for CML LDPC codec, generated by test_ldpc_fsk.m:simple_ut(). */ #include #define NUMBERPARITYBITS 516 #define MAX_ROW_WEIGHT 12 #define CODELENGTH 2580 #define NUMBERROWSHCOLS 2064 #define MAX_COL_WEIGHT 3 #define DEC_TYPE 0 #define MAX_ITER 10 extern const uint16_t H_2064_516_sparse_H_rows[]; extern const uint16_t H_2064_516_sparse_H_cols[]; extern const float H_2064_516_sparse_input[]; extern const char H_2064_516_sparse_detected_data[]; codec2-1.0.1/src/H_256_512_4.c000066400000000000000000000522541412132000500151740ustar00rootroot00000000000000/* FILE....: H_256_512_4.c Static arrays for LDPC codec H_256_512_4, generated by ldpc_gen_c_h_file.m. */ #include #include "H_256_512_4.h" const uint16_t H_256_512_4_H_rows[] = { 31, 4, 119, 30, 148, 50, 53, 47, 6, 1, 91, 82, 20, 91, 180, 41, 42, 48, 97, 129, 5, 8, 162, 5, 55, 10, 100, 18, 111, 9, 71, 130, 26, 77, 29, 14, 9, 3, 170, 176, 18, 35, 21, 73, 80, 41, 62, 34, 72, 45, 141, 39, 121, 12, 46, 16, 91, 24, 84, 57, 16, 21, 2, 65, 44, 14, 32, 39, 143, 106, 53, 23, 31, 100, 24, 75, 27, 25, 13, 67, 23, 81, 99, 101, 28, 7, 153, 13, 43, 38, 64, 97, 7, 76, 22, 34, 35, 8, 19, 31, 40, 54, 43, 11, 52, 40, 7, 123, 21, 46, 10, 18, 98, 63, 48, 37, 25, 58, 33, 58, 84, 41, 16, 47, 185, 65, 58, 41, 8, 12, 63, 93, 60, 47, 23, 92, 4, 28, 52, 6, 74, 57, 43, 17, 148, 1, 11, 52, 12, 10, 109, 19, 74, 40, 3, 49, 69, 30, 20, 64, 31, 6, 82, 71, 89, 36, 17, 68, 67, 56, 110, 20, 172, 54, 36, 15, 56, 4, 26, 24, 14, 45, 158, 69, 5, 6, 2, 19, 16, 8, 72, 58, 108, 57, 125, 38, 24, 105, 56, 27, 73, 82, 63, 25, 22, 112, 44, 19, 14, 133, 50, 55, 3, 18, 34, 17, 42, 21, 1, 7, 26, 128, 75, 95, 111, 51, 15, 5, 3, 78, 79, 32, 1, 48, 108, 11, 32, 29, 72, 66, 15, 2, 66, 4, 2, 87, 113, 80, 84, 13, 9, 104, 23, 69, 29, 101, 54, 20, 136, 61, 203, 52, 93, 75, 9, 168, 142, 102, 140, 110, 194, 139, 160, 83, 145, 132, 62, 50, 198, 46, 94, 60, 130, 72, 192, 60, 76, 131, 50, 155, 179, 163, 12, 113, 197, 183, 120, 118, 70, 103, 120, 83, 208, 96, 172, 56, 174, 124, 161, 68, 140, 51, 139, 186, 143, 95, 93, 92, 98, 85, 107, 25, 123, 44, 155, 121, 96, 106, 133, 103, 125, 78, 59, 83, 66, 159, 112, 90, 133, 224, 131, 51, 157, 32, 49, 134, 79, 216, 11, 81, 33, 53, 128, 26, 28, 68, 85, 162, 67, 87, 68, 92, 87, 133, 40, 144, 45, 80, 187, 118, 131, 114, 35, 91, 135, 172, 98, 195, 17, 76, 213, 70, 141, 48, 70, 105, 79, 96, 149, 88, 99, 111, 38, 147, 86, 45, 77, 118, 61, 42, 161, 61, 73, 71, 44, 63, 216, 53, 117, 71, 60, 55, 81, 49, 33, 139, 134, 28, 188, 171, 176, 121, 119, 89, 70, 164, 151, 29, 195, 157, 135, 43, 59, 47, 36, 78, 35, 59, 179, 88, 13, 69, 22, 101, 119, 150, 80, 116, 171, 159, 172, 86, 122, 107, 66, 46, 100, 169, 159, 163, 101, 149, 105, 27, 54, 154, 86, 165, 170, 132, 93, 115, 142, 65, 106, 39, 150, 136, 90, 198, 124, 132, 82, 22, 183, 103, 118, 37, 30, 112, 190, 83, 98, 30, 120, 97, 39, 36, 109, 88, 33, 111, 156, 97, 94, 62, 74, 130, 34, 77, 51, 109, 175, 94, 208, 115, 217, 107, 164, 180, 10, 229, 184, 155, 158, 152, 204, 142, 187, 130, 209, 185, 110, 75, 219, 151, 95, 116, 200, 226, 194, 89, 162, 157, 78, 181, 240, 178, 77, 150, 217, 202, 179, 136, 163, 126, 204, 100, 236, 99, 183, 137, 236, 188, 217, 107, 204, 115, 218, 204, 145, 162, 241, 183, 121, 117, 160, 148, 143, 152, 169, 221, 166, 149, 153, 223, 127, 122, 144, 125, 138, 191, 146, 177, 146, 245, 153, 129, 231, 169, 73, 165, 112, 240, 15, 88, 158, 64, 163, 126, 59, 114, 137, 171, 126, 125, 176, 108, 124, 221, 202, 184, 65, 108, 230, 174, 146, 134, 87, 144, 189, 186, 106, 199, 109, 86, 219, 191, 205, 64, 173, 234, 141, 239, 168, 90, 123, 137, 76, 182, 114, 85, 102, 219, 74, 242, 215, 156, 122, 177, 156, 168, 228, 131, 173, 81, 205, 67, 85, 94, 38, 196, 161, 89, 201, 226, 206, 170, 139, 153, 178, 166, 184, 49, 203, 215, 233, 102, 62, 140, 42, 184, 57, 116, 189, 99, 37, 154, 37, 138, 196, 197, 92, 147, 243, 178, 210, 140, 180, 114, 190, 120, 104, 194, 220, 203, 200, 205, 110, 182, 161, 181, 151, 178, 225, 157, 196, 230, 152, 128, 187, 115, 160, 174, 102, 220, 207, 240, 124, 27, 197, 127, 196, 222, 84, 148, 239, 104, 228, 145, 147, 169, 61, 223, 164, 143, 134, 128, 160, 190, 229, 188, 156, 132, 79, 90, 104, 242, 252, 145, 253, 193, 238, 150, 224, 211, 117, 251, 199, 180, 254, 208, 209, 250, 248, 232, 254, 232, 144, 177, 246, 167, 159, 141, 245, 231, 210, 113, 175, 182, 227, 234, 254, 217, 154, 176, 233, 226, 182, 213, 197, 135, 254, 127, 255, 198, 206, 255, 253, 208, 247, 113, 211, 216, 253, 210, 228, 165, 243, 212, 222, 256, 227, 232, 181, 248, 209, 238, 214, 229, 215, 250, 199, 126, 147, 195, 244, 251, 221, 256, 214, 250, 214, 213, 252, 234, 193, 175, 218, 241, 193, 198, 167, 146, 235, 233, 166, 249, 239, 185, 173, 192, 252, 226, 136, 222, 256, 186, 174, 240, 242, 235, 215, 167, 129, 236, 223, 199, 123, 218, 224, 177, 243, 235, 218, 245, 256, 249, 149, 246, 225, 155, 237, 190, 95, 231, 175, 166, 201, 220, 251, 250, 221, 248, 127, 202, 201, 191, 230, 245, 191, 246, 206, 135, 96, 251, 55, 224, 222, 116, 234, 252, 231, 187, 152, 154, 233, 239, 227, 189, 205, 232, 247, 122, 138, 209, 103, 211, 185, 236, 200, 181, 105, 214, 244, 164, 213, 202, 210, 206, 246, 235, 212, 167, 192, 151, 207, 158, 189, 207, 229, 212, 223, 238, 188, 200, 165, 249, 211, 247, 238, 171, 219, 248, 227, 137, 225, 119, 170, 255, 173, 237, 255, 243, 192, 138, 203, 142, 253, 249, 230, 195, 241, 129, 244, 216, 186, 228, 201, 242, 241, 237, 247, 212, 225, 194, 237, 207, 168, 179, 220, 117, 193, 244 }; const uint16_t H_256_512_4_H_cols[] = { 10, 63, 38, 2, 21, 9, 86, 22, 9, 9, 93, 37, 79, 36, 93, 56, 123, 28, 99, 2, 43, 95, 72, 58, 66, 33, 77, 85, 35, 4, 1, 67, 95, 48, 42, 166, 116, 90, 52, 101, 16, 17, 89, 65, 50, 24, 8, 18, 89, 6, 56, 6, 7, 1, 25, 50, 60, 118, 77, 26, 4, 21, 114, 91, 64, 79, 80, 54, 157, 43, 31, 28, 44, 141, 8, 31, 34, 33, 91, 45, 82, 12, 18, 59, 64, 124, 104, 94, 30, 82, 11, 62, 7, 2, 25, 48, 19, 63, 48, 27, 84, 12, 44, 201, 130, 70, 6, 106, 123, 14, 29, 81, 30, 100, 4, 26, 9, 42, 3, 41, 53, 76, 67, 52, 75, 44, 46, 97, 20, 18, 32, 20, 73, 90, 44, 3, 50, 79, 16, 13, 26, 11, 59, 21, 2, 81, 77, 5, 72, 6, 24, 14, 73, 37, 12, 146, 32, 13, 25, 17, 53, 23, 36, 7, 60, 71, 24, 10, 69, 39, 102, 49, 103, 51, 1, 38, 22, 36, 35, 8, 34, 32, 40, 11, 20, 58, 17, 52, 119, 136, 80, 29, 4, 15, 78, 160, 39, 23, 11, 27, 141, 40, 5, 15, 127, 49, 199, 3, 15, 29, 8, 62, 42, 71, 73, 56, 5, 57, 23, 142, 70, 63, 74, 7, 133, 28, 33, 59, 10, 113, 28, 18, 39, 34, 97, 47, 135, 5, 101, 35, 61, 113, 61, 79, 27, 23, 53, 17, 100, 16, 10, 1, 3, 13, 47, 64, 146, 187, 155, 137, 24, 140, 93, 98, 30, 26, 104, 54, 88, 66, 176, 61, 144, 41, 152, 13, 62, 187, 81, 75, 78, 98, 200, 99, 172, 158, 73, 88, 119, 96, 97, 175, 185, 137, 68, 106, 46, 144, 103, 68, 111, 55, 124, 115, 156, 22, 86, 105, 71, 102, 156, 170, 142, 120, 99, 30, 143, 47, 131, 96, 111, 199, 103, 100, 184, 126, 148, 49, 89, 143, 22, 94, 37, 76, 131, 112, 94, 163, 46, 121, 101, 139, 107, 134, 162, 134, 14, 106, 61, 25, 60, 71, 92, 113, 83, 46, 188, 141, 74, 236, 185, 72, 54, 112, 151, 21, 136, 91, 38, 116, 56, 162, 64, 114, 167, 45, 63, 147, 108, 107, 78, 76, 75, 218, 86, 27, 85, 214, 83, 116, 119, 42, 101, 177, 57, 55, 51, 16, 67, 77, 19, 83, 138, 66, 131, 38, 171, 68, 85, 168, 34, 149, 87, 95, 80, 65, 145, 31, 43, 170, 90, 99, 95, 133, 88, 166, 164, 120, 129, 111, 31, 40, 82, 169, 41, 12, 67, 41, 49, 110, 102, 110, 113, 163, 172, 199, 126, 104, 89, 29, 122, 189, 43, 48, 75, 183, 149, 109, 173, 45, 155, 155, 202, 14, 19, 58, 55, 195, 86, 83, 115, 92, 36, 91, 125, 203, 81, 108, 119, 84, 213, 40, 65, 151, 72, 151, 87, 20, 98, 88, 114, 51, 224, 70, 132, 92, 92, 144, 125, 187, 84, 132, 175, 68, 130, 74, 80, 87, 51, 19, 50, 82, 219, 242, 213, 178, 185, 162, 107, 129, 37, 111, 147, 130, 185, 181, 227, 123, 167, 112, 188, 159, 109, 205, 135, 180, 117, 179, 208, 138, 238, 233, 100, 232, 159, 215, 117, 179, 187, 159, 220, 109, 122, 179, 143, 149, 140, 110, 134, 128, 158, 33, 226, 139, 96, 174, 159, 177, 181, 127, 177, 133, 146, 177, 150, 128, 126, 240, 156, 105, 186, 129, 154, 191, 147, 153, 76, 124, 141, 180, 231, 191, 154, 202, 78, 233, 140, 196, 117, 184, 165, 223, 57, 136, 132, 158, 137, 132, 240, 121, 135, 74, 205, 176, 179, 252, 198, 121, 65, 193, 243, 171, 225, 206, 54, 139, 216, 182, 153, 142, 189, 200, 70, 176, 121, 225, 104, 98, 147, 222, 117, 32, 115, 226, 108, 161, 156, 107, 136, 188, 160, 178, 127, 217, 69, 110, 59, 96, 192, 145, 133, 190, 198, 167, 87, 186, 69, 247, 174, 183, 194, 221, 161, 60, 97, 188, 209, 140, 116, 150, 202, 213, 193, 173, 153, 114, 90, 105, 124, 194, 183, 15, 184, 138, 62, 171, 125, 120, 166, 207, 183, 235, 150, 197, 93, 202, 173, 215, 190, 94, 120, 205, 163, 148, 204, 55, 173, 165, 225, 47, 69, 191, 180, 204, 125, 85, 145, 151, 39, 122, 142, 224, 108, 161, 205, 123, 219, 106, 171, 237, 203, 216, 138, 66, 169, 130, 126, 118, 244, 206, 170, 112, 235, 242, 193, 237, 128, 154, 212, 146, 210, 84, 143, 105, 57, 35, 222, 109, 233, 245, 229, 244, 228, 186, 220, 190, 251, 150, 236, 149, 250, 209, 241, 189, 216, 214, 208, 172, 218, 228, 253, 197, 204, 221, 228, 162, 255, 238, 161, 237, 245, 253, 181, 242, 232, 196, 241, 154, 128, 217, 176, 207, 182, 200, 178, 234, 172, 211, 255, 148, 152, 209, 212, 199, 194, 192, 182, 155, 241, 250, 203, 160, 218, 243, 169, 168, 254, 169, 164, 239, 201, 251, 223, 137, 254, 230, 253, 248, 157, 227, 236, 249, 157, 211, 246, 244, 168, 254, 118, 191, 215, 249, 224, 157, 248, 237, 184, 201, 256, 223, 230, 255, 207, 219, 198, 235, 256, 207, 246, 234, 247, 198, 220, 192, 254, 231, 220, 239, 166, 197, 135, 227, 195, 103, 230, 246, 236, 252, 152, 252, 210, 245, 175, 222, 218, 228, 167, 196, 131, 230, 244, 118, 238, 115, 239, 234, 206, 221, 211, 217, 168, 210, 134, 251, 214, 200, 203, 247, 209, 102, 204, 243, 212, 170, 196, 251, 240, 221, 214, 195, 223, 222, 139, 165, 148, 212, 252, 197, 210, 208, 229, 180, 181, 239, 219, 250, 201, 248, 153, 227, 255, 248, 234, 231, 229, 224, 122, 208, 241, 190, 229, 58, 206, 192, 250, 52, 178, 195, 211, 246, 189, 186, 174, 238, 53, 127, 215, 253, 145, 232, 242, 160, 247, 164, 217, 240, 249, 233, 165, 174, 175, 163, 194, 182, 249, 213, 235, 226, 243, 256, 226, 256, 152, 193, 245, 216, 232, 144, 158, 164, 231, 45, 225, 129 }; const float H_256_512_4_input[] = { 0.51757034789149192, 3.6747768327751107, 7.7236521981742676, -4.7107278911943427, 7.7122230429603542, -14.946266731679888, -9.5567730710166714, -7.5877780009775071, -8.3629835471455127, 8.4844922006171419, 9.4734932311757394, -6.8841383473145763, -4.6284234216637214, -7.8669368046418358, 12.226645532420404, -7.3774603770015981, 7.7649435759022252, -12.127076055381709, 7.4012504229333951, 6.5535650029238361, -12.318540215486564, -15.835684442673877, 10.779009024429017, 11.841953278425423, 7.1804756215244456, 2.8408801132499808, -11.09563707808943, 7.1789245659484093, 10.24316438845271, 6.4838781564425041, 15.604657058526026, 17.695904359387381, 6.4313440196217382, 4.9488783865887793, 9.9527088015343548, -2.7205772402494488, 12.156344173793103, -11.205004871994769, -12.211802140176635, -5.4465825069640195, -10.152012956739171, -1.1179875067929763, -10.479027227263707, -8.5090340518598531, -7.5030586007744553, -4.9370617561264698, -0.78486455084153151, -9.9902064527523908, -7.1974696423785023, 15.904653930974046, -3.2958890233801612, 6.9052860853356819, -15.446573781345712, 8.2911853913447402, 0.40395028984397091, -1.5672283593714793, 11.262818645299314, 7.1710703603039994, 4.1597725238676002, -11.382339164684311, 14.132112287584638, 3.2925942129085506, -6.1011528087958027, 7.8516182070629279, 5.9768136552516342, 2.699484726705069, 5.2066829520768056, -0.7207484827070334, -8.2386610240355651, 6.0717182827619967, -8.5076501195080585, -13.703946410299512, 9.2623574093742604, -6.9682747118380446, -4.9023588860381846, 9.3084136203033694, 11.148851565040838, 9.1302433636417319, -6.9420186741739887, 7.9337725600954645, 15.582342768204805, 10.766162729242598, -4.9576813210420525, 6.6727325567460882, -12.196894026695226, 11.022208518924467, 1.6977876257198246, -8.9073010297491386, -3.4873714683714097, 10.267082736130799, -6.2704199741458089, -6.7409188535835654, 7.0799113259507331, 4.2517449421654421, 10.988809910933929, 8.3098010378717788, 0.65053609686067293, -9.8680908214463745, -0.13210703660490827, 10.569960823465198, 5.631834756326584, -17.599792146333385, -7.4505114988199814, 2.0876055933892643, -11.848744235597531, -6.370769553578242, 10.349368965148454, -11.054250547489133, 4.9685950633439182, 16.26542564640426, 8.9946743875150297, -6.9695225550874884, -12.491901775385568, 5.221170286398829, -14.57146740285134, -11.185574766943571, -1.4528792719442074, 16.807973653612009, -2.14773040667668, -6.5893455221648924, -10.366321204598048, 11.545810725289135, 11.526831005704754, 3.8156547809267578, -14.793195556950453, 10.727608736368884, 4.245416988419259, -14.823682249573251, -0.055849778718978338, 0.12268898147135411, -5.3423951302536539, 8.9810197259759086, 13.968989424307708, 10.292317467705674, 10.814835776145282, 7.8639985326787416, -15.489411581463163, -5.3160377506090404, 9.6739321724911669, 7.3738788431938094, -7.2089426352102386, 3.2896767517308105, 11.134312631894316, 6.8196648270250888, 11.696870111795384, 11.33636158982544, 7.6883282280715841, -8.5354168089995976, 5.5939282378823458, -9.6804348667718987, 10.27449691588806, -4.601540486911178, 11.476772689524227, 13.587705068864731, -5.4206086888829965, -8.2565155897262077, 11.240961601590284, 13.474564188433188, 2.9546569324344847, 6.7205439189069738, -13.857561305882877, -16.669935196013508, 7.7992349867934445, -9.1054167276310629, 13.234970834427072, 3.8904964584199755, -0.007103062296974271, -7.5226178742319778, 11.799567862083773, 10.306340656379247, -9.6031596648762214, 4.7873593091676456, -8.7508487803331807, -11.418105573040524, -8.9917029259865018, -4.8764541287524565, -13.141445425385772, 10.478907923003296, -15.62610293315559, 12.174935599981024, 14.110425042238267, -5.3351060433143189, -10.448529758835216, 7.1555832021079713, -3.7581044977756339, 4.9877839461702953, 6.4352605191478229, 6.2681705969506636, 1.0591230129022271, 4.6014572060908856, 3.630881166938468, 5.2610118858162744, -4.0406336475456959, 6.7089084012087339, -12.399263098594448, -8.6885785210631923, 10.200283753268543, -9.6711128555761476, 7.9523636179902066, -1.6194893091097409, 7.8100926558018475, 4.7308921409583666, 4.2870845092503842, -5.5113211353649589, 4.6632369877554547, 13.580052366571808, -13.989676528031513, 7.4788332322884292, -7.9055834172669863, -5.4521774799559077, -2.3832875853818489, 12.500172468473709, 4.4257047233124993, 8.6185463356078564, 1.6503341929121846, 9.3817571992318136, 14.707911493485314, -8.8168554234237906, 16.686275657629849, 8.0726217002484866, -5.7336803150162323, 11.199173436763308, 2.9624772806565214, 6.084008649398772, 13.651210034355321, -5.3568028597546125, -8.1131526120118433, 20.586630811135656, 3.2537667200472802, 2.4661860405319476, -12.302300974267494, 10.14496212813636, 12.013406576337029, 12.48076525937795, -7.7705021913306842, 4.4923244656818495, 3.9070226775151733, 5.2441749708856884, 5.3679526862494482, 13.94196173641695, 4.5296297811057684, -7.1127741954540973, -14.014901825754492, -5.4003616016916451, 11.30329597194279, 13.212639183152664, -6.7394206827710148, -9.3081209755867338, -2.8134083772289786, 12.362737057742141, -7.5816771419304487, -6.4823236067192118, 6.4368678007326325, 4.2139501741847152, -1.3015955505891499, -7.0693979078400888, 5.1567879937036976, -14.29429720815733, 7.0965274119499995, 14.335090253318402, -1.1060086481123688, 12.280127372295182, 15.355627698217484, 7.1118230503395736, 0.080951481678914361, 4.5275811277845772, -12.807880002244142, -7.9315604470260013, -10.460706930669154, -8.6438350740702976, -5.0714513528336349, 4.1875900660492, 8.7133453013769007, -9.8239011192052565, 6.2390365458120005, -8.4029965191052352, 4.984656567448889, -11.441087746951402, -2.8554666393879051, 8.7117720128765459, -10.315850818433494, 8.7178427912116181, 4.5674735423087416, 5.059245742630825, -6.9741413761506754, 6.8923077141725289, -7.3195029505868936, 7.0150611857028995, -13.57329609597363, 2.4003974632430873, -12.79534048621632, 14.073423100856756, 13.050627886243262, -9.9719834315477431, -8.9255382467931454, 6.4498466627026518, 7.9947952448158626, 7.2030719578630773, -13.912680862467084, 8.6608429906142881, 8.3632503895529862, 5.9305710042005879, -2.9130898919754795, -11.254118896275536, -13.798108618024084, 13.07950958186338, 14.355477267752258, 3.222947027333253, 5.9042659378475841, -8.1324540511219237, 7.1175191808602341, -6.585103539549686, -9.2836832446594695, -15.365446897780474, -10.994019011437626, 4.0590717801675913, 9.5109814268426955, -4.3279461184809049, -15.720038357484848, 11.951856945935143, 12.682014968828179, 16.336475563256471, 7.6649931256123782, 5.3001533728428951, 14.811865942579626, -7.1591674243249166, 6.9641361242422413, 2.2887071087144921, -7.4283680060564725, 9.8045942879168955, -6.4177702207017902, 10.47585866871807, -7.6078593665950418, 8.6728241961706676, -2.3844019549449365, -12.333348889567585, -8.0410508790992044, -15.319448351686553, 4.1439520121183158, 10.124921135545005, -2.719059876565721, -7.15172555283569, -13.928003800487966, 5.0190908596544332, -10.550763525222086, -9.6902455518808601, 3.4656033167131572, 5.7434253113056117, 2.2353462963087205, 8.2800699204033581, -9.5917816492257746, 6.604246872114893, 5.7926392372814988, -13.95249621884361, -6.3255003024458976, -9.0958782067905091, 6.6894074274331334, -16.305393183977255, -14.754831506925347, 9.9598275167453405, -2.2953313029712268, -9.9770589384486907, -1.2849873707603492, -11.674107434694577, 4.2308935045924834, -15.986216502652635, -12.496143349107586, -6.961301171448163, 7.173141034418097, -16.747323708994283, -6.1459334756956441, -7.6817564340549813, -2.9759502920998209, 4.4290936044370053, 15.85792699420073, 3.8733475037532075, 13.282888674545026, -8.8075790389214674, 15.756528771444074, -0.9172738378747668, -5.8878468427817152, 5.3239983067421415, 7.0650495320494038, 10.266937497463937, -6.4024274906880185, 5.7532733339731017, -16.811716029564213, -8.4435829388264345, -14.547150170272406, -8.5663296440687802, 7.9505572216380145, 6.6923964384181422, 5.1145018718318767, 6.7546204865730397, -5.7136099383940193, 6.5164149727652187, 8.5399580765014118, 11.118659305825421, -5.11256462073184, -7.4204131176081027, 2.4372467698010158, -11.332205684329931, -2.300944450055125, -7.5761485315412722, 7.9239226824179134, 15.148232300109672, -8.2866195088681511, -12.500886819111757, 5.8898233180615511, 6.0191326161618939, -9.571768060299096, 8.2993401574423782, 13.192810814495525, 9.2287810197171662, -6.3446655091317981, 4.6194007533037533, -12.299288931968976, -11.301088930234318, -12.748142414710747, -11.089177834341021, -11.952684158007653, -12.201173925517882, -7.8885413991638051, 6.162990209842949, 10.074139560291529, 0.33052151002636837, -13.233240567315669, 8.5041479968410876, -3.877731464378761, -8.4152150964636405, -4.416934778774996, -2.7605197724504817, 8.4248907474003509, 9.6866360704229582, -6.7860748062114764, 5.350251139963115, 8.0461693937601364, 5.4866837755943072, 8.2170770706027305, -4.9303099776579087, 0.19594956934783084, -3.0366818211786448, -0.89771548197359008, -9.2559494368024176, 13.057529669212126, 1.3182610405525714, -5.379813192370591, 7.0595292864637926, -8.0652416728279732, -10.017709623333209, -19.043167085088943, 4.2036836072934642, 7.2607959496260142, -20.579086044233659, -10.955745136261804, 2.8075247300020623, 6.158819317084113, -4.1432994280765003, -8.4759687111809825, -7.4063800738713441, -11.809011583528154, 3.7455788861378996, 11.055125561517878, -11.050002999845985, -12.641967828832232, 9.7182304238773387, -9.6040255370844871, 8.5406323003146039, 5.5370300264242678, 9.6390471518242808, -4.5175089872689815, 11.211130149275418, -7.0619345213828808, 9.0284753188655795, 6.5193504139524956, 5.9080653530360792, -6.9270802426346494, -7.5939041868540862, 11.483724465414687, -6.4198704940922147, 11.594197774773704, 9.8177782003472842, 7.8573132285189722, -14.764671284444628, 10.836352484846104, -5.1661833245215307, -2.2845730141844491, 1.4521554038891078, 14.07531661629624, 14.874495505085839, -10.926627051439677, 1.0207490010126001, -1.9216020879305911, 14.405401350119591, 11.010298478850032, 3.7506698273138919, -11.982303137905003, -6.2083663060173526, 6.2522765425768316, 7.7069832341275522, -18.065137191023226, 6.792106322469885, -0.93798035245625377, 7.8641939572750079, 10.30225964497456, -7.0018228039310735, -7.0742108654561564, 4.1031586655458723, 2.3748564555251002, -4.3322313906258154, 9.6230244300270638, 19.666940225626419 }; const char H_256_512_4_detected_data[] = { 1, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 1, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0 }; codec2-1.0.1/src/H_256_512_4.h000066400000000000000000000010371412132000500151720ustar00rootroot00000000000000/* FILE....: H_256_512_4.h Static arrays for LDPC codec H_256_512_4, generated by ldpc_gen_c_h_file.m. */ #define H_256_512_4_NUMBERPARITYBITS 256 #define H_256_512_4_MAX_ROW_WEIGHT 4 #define H_256_512_4_CODELENGTH 512 #define H_256_512_4_NUMBERROWSHCOLS 256 #define H_256_512_4_MAX_COL_WEIGHT 4 #define H_256_512_4_DEC_TYPE 0 #define H_256_512_4_MAX_ITER 100 extern const uint16_t H_256_512_4_H_rows[]; extern const uint16_t H_256_512_4_H_cols[]; extern const float H_256_512_4_input[]; extern const char H_256_512_4_detected_data[]; codec2-1.0.1/src/H_256_768_22.c000066400000000000000000000664061412132000500152750ustar00rootroot00000000000000/* FILE....: H_256_768_22.c Static arrays for LDPC codec H_256_768_22, generated by ldpc_gen_c_h_file.m. */ #include #include "H_256_768_22.h" const uint16_t H_256_768_22_H_rows[] = { 35, 7, 24, 203, 138, 29, 39, 28, 114, 79, 49, 43, 218, 92, 70, 192, 59, 1, 194, 129, 15, 5, 25, 62, 50, 28, 23, 119, 191, 112, 195, 18, 164, 117, 148, 82, 25, 120, 41, 100, 61, 4, 31, 7, 13, 135, 108, 128, 48, 45, 96, 201, 67, 17, 143, 42, 91, 44, 168, 49, 26, 38, 83, 169, 16, 86, 22, 25, 69, 42, 122, 94, 226, 145, 121, 242, 131, 165, 55, 81, 74, 5, 58, 46, 59, 32, 115, 139, 180, 6, 78, 20, 7, 135, 78, 88, 49, 28, 77, 158, 94, 125, 21, 152, 23, 7, 123, 160, 53, 11, 85, 82, 32, 60, 74, 65, 3, 13, 111, 143, 121, 46, 68, 121, 72, 177, 54, 166, 20, 130, 30, 139, 34, 151, 97, 47, 126, 1, 76, 72, 64, 32, 9, 125, 54, 114, 17, 82, 2, 30, 102, 29, 137, 2, 16, 206, 2, 27, 3, 13, 199, 123, 226, 20, 60, 221, 15, 53, 35, 93, 9, 124, 1, 109, 103, 73, 190, 51, 140, 90, 130, 57, 52, 225, 8, 47, 177, 66, 8, 112, 110, 62, 64, 104, 156, 33, 101, 26, 107, 60, 26, 196, 39, 34, 14, 54, 68, 17, 66, 5, 33, 104, 3, 214, 200, 35, 170, 51, 90, 113, 122, 8, 70, 65, 42, 80, 134, 157, 88, 19, 3, 98, 112, 19, 60, 119, 76, 18, 43, 232, 141, 175, 154, 118, 187, 182, 113, 37, 95, 169, 36, 17, 36, 64, 191, 51, 63, 24, 36, 21, 223, 27, 94, 142, 18, 22, 53, 45, 161, 81, 80, 68, 22, 169, 52, 109, 180, 61, 33, 121, 98, 118, 26, 96, 156, 101, 100, 73, 31, 87, 71, 20, 93, 132, 173, 1, 39, 151, 166, 106, 67, 87, 116, 196, 173, 56, 102, 120, 147, 30, 69, 137, 108, 21, 88, 84, 81, 48, 37, 102, 10, 86, 158, 78, 162, 39, 14, 144, 9, 91, 106, 96, 55, 6, 127, 135, 87, 163, 5, 25, 42, 56, 171, 225, 213, 99, 46, 133, 12, 194, 234, 159, 59, 55, 84, 10, 24, 40, 130, 228, 181, 186, 163, 72, 35, 115, 4, 149, 106, 19, 16, 67, 11, 8, 100, 144, 154, 27, 62, 37, 164, 2, 226, 11, 183, 48, 10, 176, 171, 197, 216, 155, 198, 44, 52, 75, 70, 74, 138, 184, 10, 96, 4, 99, 79, 208, 18, 62, 113, 167, 41, 38, 48, 40, 144, 97, 57, 134, 159, 211, 21, 146, 9, 83, 58, 51, 116, 32, 15, 50, 100, 6, 74, 31, 12, 19, 58, 78, 197, 162, 50, 11, 43, 89, 188, 132, 85, 94, 50, 65, 99, 66, 105, 69, 40, 157, 16, 97, 22, 63, 207, 72, 59, 142, 29, 76, 55, 206, 54, 136, 45, 40, 46, 41, 185, 6, 231, 13, 107, 208, 23, 173, 92, 145, 88, 144, 111, 119, 151, 68, 14, 129, 108, 89, 23, 36, 44, 47, 210, 4, 146, 89, 132, 111, 69, 57, 90, 117, 31, 14, 234, 183, 116, 214, 84, 249, 179, 209, 238, 47, 248, 227, 161, 125, 237, 220, 223, 237, 63, 200, 213, 240, 161, 212, 252, 250, 81, 214, 34, 159, 217, 184, 222, 240, 204, 147, 210, 211, 229, 133, 162, 185, 153, 249, 65, 15, 119, 204, 122, 161, 133, 138, 103, 204, 248, 38, 201, 173, 98, 181, 255, 73, 186, 73, 150, 189, 176, 128, 184, 101, 230, 56, 186, 160, 234, 205, 168, 243, 212, 205, 80, 147, 82, 93, 120, 214, 189, 195, 205, 141, 183, 152, 133, 255, 128, 174, 215, 229, 86, 160, 122, 206, 188, 165, 83, 246, 170, 85, 182, 219, 158, 118, 253, 104, 231, 220, 136, 191, 179, 79, 178, 166, 239, 116, 108, 167, 207, 221, 210, 207, 30, 158, 239, 209, 224, 199, 203, 142, 172, 67, 227, 75, 231, 34, 254, 145, 222, 240, 207, 107, 98, 168, 154, 233, 238, 33, 227, 236, 208, 241, 103, 141, 245, 190, 242, 128, 103, 232, 28, 159, 70, 197, 29, 155, 185, 218, 111, 188, 224, 252, 219, 164, 236, 163, 149, 241, 172, 219, 238, 216, 12, 156, 232, 217, 118, 136, 157, 247, 123, 230, 245, 202, 235, 217, 235, 64, 77, 95, 110, 140, 211, 254, 251, 235, 149, 253, 248, 226, 222, 256, 196, 170, 235, 152, 124, 168, 157, 127, 169, 184, 170, 71, 45, 247, 146, 120, 179, 176, 129, 249, 106, 251, 165, 199, 251, 220, 201, 224, 229, 194, 148, 220, 164, 193, 57, 183, 250, 52, 172, 180, 242, 175, 250, 91, 155, 187, 131, 61, 139, 252, 174, 107, 99, 77, 176, 179, 126, 192, 182, 125, 71, 124, 175, 202, 66, 178, 233, 105, 145, 140, 243, 135, 232, 85, 248, 153, 244, 115, 77, 216, 187, 139, 79, 171, 253, 204, 212, 156, 150, 218, 186, 86, 83, 198, 192, 151, 101, 127, 192, 58, 97, 208, 87, 188, 209, 137, 247, 136, 221, 154, 37, 199, 165, 126, 105, 12, 246, 187, 196, 242, 236, 256, 131, 213, 217, 230, 233, 105, 155, 198, 178, 203, 243, 228, 134, 123, 182, 49, 178, 222, 254, 244, 195, 225, 223, 193, 163, 141, 194, 252, 146, 237, 129, 76, 231, 92, 203, 177, 221, 117, 75, 197, 243, 27, 253, 92, 202, 215, 174, 228, 193, 254, 230, 239, 218, 80, 63, 223, 167, 109, 189, 228, 38, 149, 131, 210, 115, 241, 89, 193, 138, 250, 150, 171, 162, 113, 215, 185, 143, 172, 206, 245, 41, 209, 213, 216, 247, 148, 124, 44, 142, 117, 132, 127, 198, 255, 126, 110, 71, 177, 200, 175, 91, 152, 112, 212, 239, 249, 234, 140, 245, 167, 181, 104, 256, 241, 189, 244, 61, 200, 43, 148, 219, 143, 95, 174, 130, 114, 84, 244, 181, 137, 229, 95, 160, 215, 205, 24, 246, 53, 109, 251, 190, 236, 134, 153, 190, 150, 180, 227, 211, 237, 238, 153, 147, 93, 195, 201, 246, 166, 256, 56, 233, 114, 240, 202, 102, 75, 191, 225, 90, 110, 255, 224 }; const uint16_t H_256_768_22_H_cols[] = { 18, 149, 117, 42, 22, 90, 2, 185, 143, 321, 110, 189, 45, 205, 21, 65, 54, 32, 230, 92, 103, 67, 27, 3, 23, 61, 158, 8, 6, 129, 43, 86, 154, 27, 1, 251, 248, 54, 7, 358, 39, 56, 12, 58, 50, 84, 8, 49, 11, 25, 178, 183, 109, 127, 79, 70, 182, 83, 17, 114, 41, 24, 17, 141, 43, 188, 53, 123, 69, 15, 230, 125, 60, 81, 140, 139, 99, 91, 10, 79, 25, 36, 63, 3, 106, 66, 290, 96, 407, 180, 57, 14, 82, 72, 206, 51, 135, 57, 271, 40, 68, 151, 51, 112, 286, 239, 148, 47, 174, 191, 119, 30, 220, 9, 87, 1, 34, 110, 28, 38, 75, 47, 107, 172, 12, 137, 226, 48, 20, 130, 77, 294, 38, 227, 46, 115, 153, 5, 88, 179, 88, 136, 55, 328, 74, 233, 34, 35, 183, 63, 134, 90, 41, 151, 172, 190, 195, 100, 28, 72, 11, 39, 182, 33, 78, 120, 124, 59, 64, 105, 302, 137, 56, 94, 242, 65, 126, 119, 5, 89, 58, 107, 89, 30, 40, 61, 245, 101, 64, 162, 29, 16, 252, 19, 31, 202, 170, 312, 134, 18, 52, 200, 4, 33, 74, 100, 125, 157, 6, 35, 36, 22, 19, 2, 95, 188, 29, 13, 108, 14, 126, 31, 15, 133, 184, 73, 10, 352, 37, 69, 113, 166, 152, 73, 201, 156, 13, 7, 121, 20, 158, 76, 76, 295, 161, 104, 196, 9, 4, 24, 211, 23, 111, 143, 59, 218, 138, 154, 159, 367, 82, 334, 44, 189, 171, 356, 373, 334, 118, 327, 44, 155, 147, 238, 234, 129, 260, 266, 105, 258, 37, 198, 262, 26, 152, 131, 289, 113, 196, 133, 169, 253, 319, 62, 203, 414, 411, 70, 239, 394, 231, 122, 136, 318, 60, 430, 218, 256, 168, 145, 333, 306, 253, 318, 85, 165, 266, 192, 257, 193, 116, 209, 138, 207, 311, 169, 279, 140, 62, 115, 379, 237, 205, 95, 118, 226, 80, 81, 103, 316, 111, 97, 302, 229, 444, 219, 262, 374, 170, 101, 249, 284, 319, 149, 346, 287, 197, 307, 159, 194, 333, 300, 199, 123, 276, 207, 175, 190, 247, 146, 296, 122, 378, 193, 45, 83, 121, 71, 162, 223, 102, 275, 316, 66, 237, 181, 265, 431, 49, 353, 94, 194, 312, 50, 132, 208, 160, 264, 120, 376, 144, 369, 80, 249, 213, 307, 298, 104, 294, 243, 263, 195, 225, 109, 168, 98, 21, 325, 338, 180, 102, 128, 397, 75, 227, 217, 343, 185, 295, 269, 260, 236, 187, 284, 117, 258, 361, 246, 254, 67, 173, 71, 264, 176, 85, 177, 116, 276, 364, 248, 86, 219, 380, 348, 161, 215, 55, 282, 135, 46, 78, 156, 128, 320, 132, 127, 209, 77, 342, 26, 386, 298, 192, 174, 179, 114, 166, 145, 261, 177, 344, 163, 139, 360, 96, 198, 141, 191, 285, 351, 203, 181, 16, 153, 131, 32, 184, 163, 289, 360, 199, 335, 232, 53, 42, 255, 240, 178, 214, 210, 92, 340, 173, 157, 213, 403, 210, 432, 93, 222, 329, 387, 384, 349, 160, 491, 167, 371, 208, 265, 370, 164, 314, 273, 481, 357, 68, 201, 378, 98, 171, 150, 434, 142, 211, 142, 216, 259, 329, 401, 297, 455, 421, 225, 443, 428, 268, 347, 186, 386, 97, 441, 256, 275, 267, 206, 354, 342, 417, 425, 353, 200, 278, 379, 395, 204, 224, 283, 301, 272, 454, 223, 291, 364, 176, 398, 396, 372, 272, 324, 301, 271, 270, 112, 311, 355, 292, 310, 321, 315, 494, 507, 330, 384, 293, 263, 463, 332, 416, 232, 404, 375, 286, 320, 165, 212, 346, 331, 270, 313, 398, 436, 487, 233, 409, 466, 366, 303, 430, 244, 236, 234, 124, 99, 197, 280, 144, 332, 335, 93, 371, 359, 341, 446, 91, 418, 290, 326, 324, 399, 267, 288, 241, 429, 417, 415, 287, 422, 309, 426, 368, 411, 314, 222, 484, 328, 347, 285, 228, 130, 352, 108, 48, 413, 363, 251, 241, 299, 410, 150, 250, 220, 389, 257, 305, 387, 281, 273, 376, 349, 235, 277, 451, 277, 385, 228, 416, 309, 299, 322, 399, 481, 255, 313, 389, 350, 361, 304, 390, 393, 242, 439, 245, 385, 350, 52, 87, 419, 147, 406, 323, 404, 420, 305, 345, 84, 415, 391, 202, 308, 186, 244, 327, 217, 363, 246, 362, 216, 155, 388, 247, 344, 373, 240, 345, 447, 212, 339, 370, 187, 392, 146, 406, 259, 351, 456, 420, 477, 325, 215, 238, 261, 243, 268, 303, 359, 434, 453, 296, 382, 231, 500, 339, 476, 106, 374, 423, 401, 442, 435, 478, 510, 429, 457, 252, 407, 436, 292, 421, 459, 495, 476, 340, 283, 382, 167, 465, 310, 509, 428, 279, 204, 365, 496, 380, 412, 326, 472, 474, 341, 459, 497, 471, 473, 498, 413, 356, 449, 426, 395, 478, 469, 467, 500, 506, 437, 463, 235, 457, 408, 460, 254, 450, 452, 372, 490, 505, 397, 437, 462, 288, 433, 506, 466, 297, 438, 405, 394, 317, 148, 424, 467, 447, 322, 337, 485, 502, 509, 441, 483, 494, 448, 472, 402, 458, 281, 451, 431, 315, 505, 175, 452, 453, 369, 479, 493, 479, 510, 504, 443, 414, 502, 405, 427, 508, 282, 488, 308, 280, 221, 354, 427, 278, 435, 432, 164, 492, 465, 403, 503, 348, 483, 336, 470, 470, 409, 300, 448, 366, 464, 462, 486, 484, 501, 493, 460, 402, 486, 489, 442, 492, 377, 392, 306, 456, 323, 419, 473, 269, 440, 365, 381, 331, 498, 450, 224, 274, 229, 412, 418, 482, 464, 440, 388, 438, 357, 274, 487, 469, 355, 512, 400, 475, 362, 336, 445, 455, 485, 507, 317, 408, 367, 495, 337, 439, 433, 330, 458, 496, 504, 375, 304, 475, 468, 461, 480, 422, 499, 489, 444, 423, 214, 474, 424, 343, 393, 461, 250, 377, 358, 396, 512, 508, 383, 488, 400, 471, 391, 477, 291, 501, 511, 221, 482, 490, 491, 445, 503, 454, 338, 381, 468, 449, 497, 425, 293, 446, 410, 480, 368, 383, 390, 511, 499 }; const float H_256_768_22_input[] = { 8.9323881489912722, -14.346922710565353, 7.9693390759559781, -5.575983146144643, -11.430007344507024, -11.797433382704103, -7.6498596597609545, -7.881023325143766, 4.7029642025464975, 5.490489593506263, 1.4577054829853482, 7.2204914066015347, -6.4495501165249394, 11.025143103007442, -9.6136273661905971, -1.6292633004367878, 20.082835454091001, -15.940623976141929, -2.9320120314706735, -4.3372895006030534, 5.8549869318024657, -7.8135927951559925, 4.4717025005955255, -7.1804626225242245, 8.8281745058367793, 3.457866082712139, -11.660964767047432, 15.344085170249253, -14.466810773633428, -10.293997562512834, -6.5294617860841004, 2.6337196833307024, -11.070543876657444, 5.7359108096272164, 9.0013294714941843, -9.1923366442599423, 8.3397116927192272, -7.3466443766727068, -7.0208885950279667, -9.8833064990274835, -11.070411858783441, 16.189201249627562, -6.6872549284064142, -11.752890503765991, 8.888774213749782, 6.0968391171951497, 4.6589995649358533, -13.575988817182116, 11.224485296177397, -10.220694397171258, -5.4572791361037458, 3.0379566142247696, -10.350052412180393, 10.682941155969285, -4.9736564167026174, 11.948298747287996, -9.0750233401887872, 8.9486285395989267, -8.0970017828965126, -6.5844009128903371, 8.5356201812866281, 6.8576026698255736, 3.5824292008949179, 6.386672876216724, -15.44333294899913, -14.723335707927411, -7.1535041654585925, 10.057507199075706, -6.9304518083413749, -13.454196499566493, -4.138927837975757, -9.8229530349333984, -4.7378733928678765, 9.7370721449903357, -11.850883212615898, 5.8425014756304456, -6.9027200123108363, 8.7507430345166597, -2.8432533600339798, 7.1365746925349614, -6.098608401582597, 10.486813349939659, -8.8989094853818393, 7.6668852841834365, 6.3748984557020911, -5.4320648642184377, 12.959555816131948, 6.6472990487222825, -4.5586715631096242, -10.121473995028611, 13.889214737960058, 7.8618812777297702, 0.65114006436468486, 5.6488480073158049, 5.572561535915213, 2.4203295039424271, 5.3724413783839795, 10.445189341740317, -15.231581540217265, 11.189031424930562, 13.490253048718506, -7.5847033262880901, 8.1341785315194368, 4.667483152501207, 10.057012188688605, -12.532915718955612, 17.831016306467532, -7.0233337748720057, -8.1477498232874108, 6.5993887776727203, -6.605350841986966, -7.0309413757967123, -0.87776810176011932, -7.9287494770117224, 5.1536577951126938, 0.56224938859050333, 7.7410604756629082, -10.567376193912894, -2.4437814999269047, -1.2455732716974919, -8.9878404597781163, -10.226284826932922, 4.5715929705982656, -1.3060897521729748, 9.6931031456180285, 6.3549868823010955, -7.6817147139176463, 8.4268904957327955, 0.72594931178019784, -4.9826196594501706, 8.5326984912532176, 2.0637319625971493, -4.2933223803232075, 8.0239298244286879, 1.7951957372413565, 0.084600427180267501, 9.4399601205840362, 10.396717221311645, 12.856923054222854, 3.3295462715836468, -7.6253580712992282, 4.4434471213207374, 6.3733997531278987, 5.4209913860102539, -5.9866755286453737, -7.0287078896424156, -9.2179437166191374, -11.790731307180192, 8.455859639343128, -8.3117274581248051, 13.838681948013669, 7.5475760198641648, -10.086023553300919, -11.224918245135393, -3.3058930832202531, -6.8195757099451129, 11.709166727746231, 11.710100491323546, -11.077873187765078, -10.227016885555694, -4.2941243793572408, 8.1424248467837987, 9.7722584940844754, 7.1104245309154912, 9.3804477382031415, -7.106685163129332, -7.2437598314289575, 11.947702093459393, -1.057260209023416, -6.765299028699161, 3.3425539547981304, 13.328906459054352, 4.4101064786390305, 1.8051901230395977, 11.535802590105595, 0.81386101415425482, -8.165348209826135, -8.5774987728328416, -6.0775939508580219, 2.5963421619843943, 6.3292406903055642, -8.4458269581431491, 8.7662642361276717, -5.819334215801403, -13.610981269704446, 5.0765800356900179, 8.6249353046138477, -4.9634433316247675, -3.9950013700332065, -7.6929117100191453, -6.3633253856519749, 0.83722518023775461, 10.425061034991041, 10.934194165601433, 10.580235622153944, -17.515337920449952, -1.537113005053216, 10.026745250979713, 18.991835102357538, -9.10384082546339, -13.768910919694958, 5.4796127108483343, -8.9244398152912101, -11.548649423930978, 15.611931291120561, -8.908049321272264, -11.715023369923955, -8.5067714993118528, 8.669606218924919, 8.6186685199527773, -0.30417248355831389, -14.992242521244618, -11.237143275747075, 15.47971006097473, 7.0259516978639338, 10.065037137491313, 7.8868287877920169, -12.78707872542274, 7.4550220422461217, -16.404346129675449, 13.30456637678888, 9.9512518647161254, 7.5942461140693247, 3.7624642178418926, 9.8925251212558027, 14.146774666880505, -6.8718384088583475, -3.9981741290451276, 9.4511470096099846, 11.953465594032014, -11.215529849347973, 15.45129835369298, -7.3274909872161418, -4.9654010419320853, 7.7259448497328904, 9.8641694370073871, 1.1150439872404596, -10.084099868296887, 12.049728969177872, 13.071957031320016, 6.9097309932538309, -0.39659296549442785, -2.9217410655323537, -9.5561149122145306, 4.3607269616443673, -7.3795521023764916, -11.702904880630188, -1.5433424172046679, 15.057989444533467, -1.2565455630730749, 8.9880357276703204, 6.1129770246307693, 11.328910534091127, -2.9309511311565144, 11.207912500256919, -5.7404867114420988, 5.9950024570017471, -5.7910643096127341, 5.4208744627397838, -4.5716714958282108, 8.1298949011896831, -11.711123662713085, -12.017719365072217, -9.7122748441533471, -6.6047630492267668, -14.567681472229127, 7.7859507737798745, -13.177213209080305, 1.409111307587259, -1.5011399595588764, 12.057098493693852, 6.4171185080762427, -11.634125892968456, 11.044794834453159, -14.65558507132892, 13.72196292983746, 11.040226522930523, 6.2584434572994629, 10.730689310638432, -4.618515034465152, -1.2143032307321182, -7.4189186448958875, -7.669206125358758, -9.1157167366336314, 4.9339345930796563, 8.3824960985509129, 9.5126664524245168, -4.4260649375190164, 3.6144449441325635, -10.893425304008998, 8.3182825177379076, 13.628768431834336, 7.1730917891722781, 10.087828497729179, -10.489116618742848, 3.8856613599836791, -15.602509765497121, 7.2487646720202497, 12.218582462579505, 0.49211467796430364, -0.066484718374747426, -8.4329617736870581, -3.0127430939186324, 5.8144883342823128, 8.6729115102941527, 6.121491141792947, 12.360054236262307, 13.543171514998027, 12.1058948920289, -12.808248849582228, 7.3365859144200227, 2.0678328559134647, -1.7234260199225477, -13.299836520520724, -14.789707963127125, 6.6006452928112296, -11.956138068501044, -8.8455623029732315, -2.9088913906661178, -9.2132364101435229, -5.8435384831621802, 5.8547803901805464, 8.8126231169253515, 5.5222906262970843, -10.39753464755324, -12.211638565038697, 17.292580458421533, -8.5876470036423616, 4.7678649428994673, -8.4226853315054129, 8.700249181036531, 12.952510035514349, -7.6833594373108234, -3.0202355585479235, 8.7526883579126586, 11.663176352140155, 11.981232949878732, 11.031377901823634, -9.9501241218952927, -15.089187715856323, -10.601089041749843, -6.388179627159027, -4.6793834219078603, 3.9045854726147744, 9.8861746042718845, 0.042855319175376341, 14.3414643477855, -10.407450105082846, 3.0336086321363265, 13.793872516546351, 8.0501940947932038, 4.5991785638040428, -7.9303874601996593, 14.049591025574657, 17.380262133125449, -7.8459793004203222, 8.705024309261562, 6.6262770303011473, -10.086319438204431, 11.047015628809582, -7.3582609209654937, 8.2545626149113698, -11.989564968227834, 2.5193529800955838, -13.244337020280915, 4.8502499826361731, 14.474602979942233, 6.9452935547158612, -7.0450024656821544, -10.212713949627561, 13.849620674538945, 9.6833988531870752, -5.9081325241866898, -10.018382284344064, -6.6229672412657683, 13.879028902842597, -14.33382686638503, 1.9643288191802857, 0.16885137143821174, 4.2277292060928415, 10.805548194765471, -2.4964830143581742, -13.101405042095365, -13.302619999785827, -5.9241726080344108, 14.467933324092012, -8.4591055199339298, -10.184465268318146, -19.503434376811896, -15.229997219469618, 4.8345001979789908, 8.0104662922364813, 4.4017092080658031, -10.231395640484859, 3.9727378370282236, 14.2026231360392, -8.4599285310056196, -12.215460236402727, 5.394330835754074, -7.3356861012337502, -3.6795675270857404, 8.0787223556775896, -9.3271996634056915, -7.4552893328088974, 6.4828043001554736, -5.9782833623900453, -1.9874116057406432, -7.5397619196439196, 6.0283880381663453, 7.1105241207440057, 10.966410901409223, -12.375355422502105, -13.997023100211885, 7.7681673568373251, 6.0215105845435861, -0.44409932549081066, 5.2745451861685329, -7.2390124351491778, 9.8045113653170404, -3.5483006663908347, 8.4455042050030151, 6.750717907091107, -9.4719350776568856, -10.118021370720959, 2.7210293880017544, 8.2387439951112835, -8.6980762983904132, -11.317194860133458, 14.906902369795306, 8.5196626788523204, -5.7269320734414473, -6.4873691363023527, 11.118139263369434, -5.131366585591298, -5.1884527453006095, 2.1617883533714988, -3.2189908119713868, 9.1103687701917888, 6.1325191653578388, 2.411217194453199, -3.9050656149976706, -7.7536941054127926, -11.37779012533324, 2.2663187424687767, -14.954242385161651, -11.78196073144464, -5.9162280171814157, -14.78759715146799, 4.6557410991557671, -5.9735521657583144, 6.6275285823558434, 3.1024480512797177, 10.06871404793227, -10.543486892529438, -4.7522704594310561, -0.61601641164246079, -7.6838548304456449, 15.87411724597454, -11.665450977940896, -4.4365872375343205, 3.8247335268174831, 6.5326004536991329, 12.435275476860919, 8.2570494940406931, -3.3808435906687064, -4.7552502897093776, 4.5050634114776189, 10.672688962977514, 12.075918776794476, 1.7986308060137437, 4.1923629883751303, 11.752733569678064, -10.339474897439999, -16.186126637379726, -10.796197122972746, -9.214305404692233, 13.497270712719919, -9.4453197440185637, -15.69391834232802, 12.700707467329744, 4.7024717561391816, -10.327031105585643, 3.8477541445369963, -5.4896217736139521, 8.0519776507030638, 5.0341370218785944, 6.0456145072449026, -10.710449576292405, -8.6533964520637863, -12.257979327405108, -12.078971121036197, -10.881473761466781, 14.147239535310518, -2.6328735032346162, -15.716779182806999, -9.4242407781207191, 8.1426142269915331, 8.1611227842517025, -3.6252335542783207, -9.8025397455364676, 12.763568770750853, -9.5331346940178729, 4.9974585644427902, 5.9879812547323237, -6.2951737225996656, -3.9498007698755808, 10.122100576790197, 6.6618355586974447, 4.6997313218613739, 8.1707413233409465, 12.216703169693357, -12.426888921432578, -11.146002828849364, 6.3741370321379085, 7.6566213756894941, 2.2128160251661328, -5.4585144064775051, 11.139007406371906, -0.057747253315553991, -5.7619887506088023, 11.559333388163129, -7.7967134901859065, 1.5414474492709742, 10.25242202166922, -2.4376317695445988, 2.4485328874029482, -5.2527291639016829, 6.6966144242231938, 10.1056403723797, 9.6715660466767641, 12.199837902638398, -9.9779918730035462, 7.0398600566727509, 13.235714186918685, 6.2264247221125624, 0.49429650260801106, 11.011555724458017, -10.232864614422217, 1.0779763774514628, 2.3155686395401807, 13.340589994791694, -1.4927270737348184, -6.3253956772331872, 11.17892183418669, 4.6804642104000935, 9.9681133942788716, -15.354347685766472, 12.132973558045073, 16.863099386593074, -16.254027114251262, 8.9259599464113109, 4.4137266569998239, 13.238368561676072, 7.7024856954025447, -14.55028063381018, 2.9997759568600673, 5.9324435315675945, 8.9709392409618971, 9.9626050864742304, 6.0433161763769014, -11.094500816935717, 5.0773121433888173, 8.8653918721034444, 13.358789208346618, -3.3614825528284049, -13.508375784100188, -9.738962524121586, -6.8429863842661831, 9.3377608423949319, 9.1681044258536648, 2.6799203842673007, -8.1054023029408491, 3.7516032358089029, -8.7628704110935036, -11.00085544248971, -5.7755226059613731, -0.22395652308977335, -6.5936781093194714, -10.208015637116542, -13.848721312194234, 9.876782398829647, 9.437177021184711, 13.967144290195598, -1.5603470410313784, -12.959548633651529, -13.772706675904137, 9.4983989705496406, 4.8575506841930132, -13.426339798518415, -6.8882549582242767, 10.020963852018646, 10.738289970141997, -3.5322181002015958, 8.9790411088584392, -4.3462795772567171, 18.871182150839772, 6.1273012327332719, -6.5695645965276261, -8.2641966395439947, 0.85103670621664851, -16.902729440065183, 8.2697379486332849, -13.872113727992556, 13.619190901125434, -12.016737280921415, 1.639362596352592, 7.9267314843757219, 9.5913300412571747, -7.091648374422606, 5.8969231337131776, -6.4726579518981842, -4.3486881710817249, -9.3821085024104374, 10.917473221565318, 2.0279974118340656, 11.063658410060127, 6.9102623370057179, 6.2072533209374354, 11.520596314303049, -1.5151713191609242, -6.5680763433887153, 16.444160798635387, -5.3791474454897958, -2.2789027240044306, -11.56354929134242, 12.427791285408714, 8.610090315178283, -4.0511067764443416, 7.8692225359304206, -6.7079554414922891, 5.3999766490636549, -8.3179099730168247, 3.6976737002905016, -17.552301172297032, 6.1364424779438496, -9.7751306565781455, 6.1931141049267051, 16.865997593208082, 3.7361395596034965, 3.8267814056050402, 10.269712544637359, -12.797853578296257, -11.480255281563355, -10.876303582685193, -5.4324292010775084, -6.498689183845423, -3.8053637987749771, 13.525521072484571, -9.0129342094166027, 12.475202758118572, 0.35156955969912357, -13.374269540997016, -10.783210983288953, 10.807251662994091, -12.38126506382245, -5.8440304046740765, 6.1261248782561006, 10.426389918103478, -10.251207974472264, 5.7090742604182871, -7.3918232768010466, 14.40018609866692, 10.516336495878081, 5.0907717527746268, -10.790845519857502, -10.344691466108914, -0.81606960094075376, 5.8009330688061373, -6.4523871686156467, -13.804096639962156, -3.8036780326942807, 4.4403995451427036, -6.0454707691007998, -4.457208611267375, -9.3857200039694799, -4.2448642066932596, 11.390356801037848, -11.880538676942361, 16.20974462472968, -8.1065692722381755, 0.10605368805162664, -4.0113679201569177, -3.6764938206674111, 7.1589548870717845, -14.894945704589089, 19.416913935254374, 10.455230095243721, 19.094980784068856, 12.749384013660427, -10.507945794429656, -8.6068528180875727, 6.4779699897920597, -7.4688822584989687, 11.422119526982375, 12.683635758259111, 6.9141103733570297, -3.4807019716082186, -1.0659446865294615, -5.5303642351312705, -8.4756723068747828, 6.5495058918879581, 17.01132173619504, -8.6901951713633352, 0.73205096704640338, 12.18517096248061, 9.6207253649723565, -0.11293013857241167, 14.416380598864535, -3.4842485223978721, 8.538043021108594, 7.9853181927735468, -0.17854963422944989, 15.297082129948347, -8.6558345268403372, -8.8359118745350518, 6.8797931777949346, -13.579058234606006, 5.6056971276091021, -4.7325737401807606, -10.043277228766703, -8.496193000774646, 13.208604057890039, -2.6125003977921626, -9.0028742948434246, -8.3466406676435714, 4.0100931584168364, 8.607156558507457, -9.0376712732526396, 11.431914424287775, -0.65772909230851129, 9.5881935247089132, 14.183768387632979, 1.0198498160186804, 12.12574599778624, -8.8946934403733184, 17.588496278735882, -1.8672309187831959, -10.261023592868218, -10.98895162511046, -2.7839860694432046, 8.6202133936627021, -2.9996428552260639, 12.935041261170362, 10.751931118319499, 9.6367189688985686, 10.40091951562113, -9.8677128130479659, -0.85076949696133808, -8.7094472775564959, -2.7363773372569646, -10.036127502962517, -3.494015934190208, -4.2404950010667983, 4.590562970442905, -11.458041901958747, 9.3378179645353931, 12.328201773184455, 4.9840870074452948, 12.800873263637309, -12.800832354798168, -8.3806105857214561, -7.1573424713736697, -3.454056906476644, -10.568266292992009, -3.1957929098569293, -12.197503600264985, 14.897621213566064, 4.3558337641415363 }; const char H_256_768_22_detected_data[] = { 0, 1, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 1, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 1, 1, 1, 0, 1, 1, 0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 1, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 1, 0, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0 }; codec2-1.0.1/src/H_256_768_22.h000066400000000000000000000010541412132000500152660ustar00rootroot00000000000000/* FILE....: H_256_768_22.h Static arrays for LDPC codec H_256_768_22, generated by ldpc_gen_c_h_file.m. */ #define H_256_768_22_NUMBERPARITYBITS 512 #define H_256_768_22_MAX_ROW_WEIGHT 2 #define H_256_768_22_CODELENGTH 768 #define H_256_768_22_NUMBERROWSHCOLS 256 #define H_256_768_22_MAX_COL_WEIGHT 4 #define H_256_768_22_DEC_TYPE 0 #define H_256_768_22_MAX_ITER 100 extern const uint16_t H_256_768_22_H_rows[]; extern const uint16_t H_256_768_22_H_cols[]; extern const float H_256_768_22_input[]; extern const char H_256_768_22_detected_data[]; codec2-1.0.1/src/H_4096_8192_3d.c000066400000000000000000020663141412132000500155250ustar00rootroot00000000000000/* FILE....: H_4096_8192_3d.c Static arrays for LDPC codec H_4096_8192_3d, generated by ldpc_gen_c_h_file.m. */ #include #include "H_4096_8192_3d.h" const uint16_t H_4096_8192_3d_H_rows[] = { 68, 31, 76, 127, 68, 376, 36, 1118, 15, 68, 436, 58, 375, 32, 320, 150, 266, 2, 436, 191, 79, 52, 2109, 249, 340, 288, 258, 462, 2891, 21, 255, 24, 79, 167, 96, 86, 94, 16, 377, 163, 101, 477, 246, 60, 337, 217, 474, 53, 54, 16, 5, 1591, 124, 1740, 214, 1309, 427, 171, 23, 477, 202, 484, 185, 57, 33, 109, 1326, 392, 1507, 81, 415, 93, 810, 317, 52, 162, 425, 416, 146, 319, 110, 273, 170, 254, 119, 242, 147, 126, 413, 154, 287, 499, 91, 72, 1502, 104, 189, 235, 263, 312, 124, 71, 141, 769, 887, 132, 101, 390, 466, 641, 382, 393, 515, 139, 281, 157, 229, 266, 64, 112, 60, 280, 966, 1296, 248, 331, 56, 267, 50, 155, 982, 492, 906, 326, 78, 227, 374, 21, 429, 113, 491, 237, 252, 451, 101, 440, 7, 147, 373, 96, 678, 186, 311, 29, 448, 2335, 114, 212, 352, 367, 147, 82, 320, 300, 370, 132, 235, 255, 487, 101, 533, 379, 29, 352, 82, 41, 78, 181, 174, 1629, 104, 319, 23, 86, 187, 440, 571, 999, 114, 596, 587, 838, 333, 389, 139, 1006, 454, 699, 65, 309, 1187, 377, 31, 173, 189, 310, 536, 250, 4, 1516, 6, 41, 14, 49, 319, 378, 118, 3108, 175, 150, 107, 286, 167, 61, 594, 294, 13, 477, 2038, 124, 204, 1027, 245, 819, 159, 84, 153, 71, 38, 419, 574, 211, 290, 6, 886, 1, 1248, 183, 272, 470, 312, 115, 6, 264, 242, 2054, 7, 609, 74, 690, 2641, 434, 137, 265, 996, 9, 417, 192, 102, 22, 20, 1021, 299, 246, 207, 1678, 827, 357, 9, 169, 37, 153, 433, 51, 5, 44, 416, 406, 117, 165, 36, 178, 2887, 238, 2369, 98, 311, 1348, 855, 215, 1469, 605, 135, 987, 88, 244, 580, 2043, 164, 415, 372, 126, 237, 116, 236, 181, 99, 224, 154, 1191, 317, 2031, 835, 306, 200, 8, 15, 195, 176, 1658, 1072, 161, 341, 412, 291, 104, 2812, 180, 1587, 161, 147, 368, 411, 21, 1246, 457, 335, 24, 1258, 342, 1453, 136, 84, 104, 191, 152, 144, 333, 165, 6, 130, 370, 57, 54, 1302, 277, 53, 80, 18, 230, 122, 217, 21, 424, 184, 296, 1880, 827, 859, 2275, 42, 313, 1443, 354, 170, 110, 724, 264, 206, 17, 57, 354, 97, 43, 354, 321, 70, 471, 74, 1124, 425, 21, 35, 56, 382, 126, 168, 382, 132, 16, 152, 218, 483, 20, 3, 45, 503, 283, 357, 68, 495, 41, 124, 13, 14, 18, 285, 364, 291, 20, 92, 141, 349, 35, 354, 5, 222, 1080, 390, 113, 136, 181, 77, 235, 61, 2, 209, 73, 17, 10, 75, 10, 95, 99, 131, 468, 369, 94, 11, 278, 381, 228, 62, 106, 62, 79, 171, 35, 369, 3, 131, 222, 315, 336, 92, 49, 390, 2159, 1724, 80, 110, 27, 132, 3428, 328, 199, 112, 1267, 2731, 478, 776, 275, 60, 147, 1193, 388, 49, 25, 208, 1583, 364, 41, 192, 202, 100, 631, 210, 946, 35, 226, 159, 120, 866, 28, 149, 143, 2881, 171, 369, 66, 88, 1476, 290, 425, 950, 1200, 2139, 229, 272, 112, 324, 108, 892, 122, 105, 190, 52, 7, 239, 84, 179, 2273, 99, 20, 352, 322, 264, 288, 4, 232, 127, 231, 361, 446, 230, 247, 243, 17, 146, 1115, 31, 410, 111, 55, 380, 157, 355, 90, 358, 343, 1062, 251, 145, 219, 497, 263, 400, 1533, 72, 763, 1297, 2, 461, 163, 301, 276, 352, 434, 251, 205, 44, 39, 336, 610, 65, 165, 401, 444, 73, 373, 224, 109, 254, 452, 184, 177, 40, 221, 2, 92, 333, 1285, 76, 210, 59, 250, 3155, 291, 185, 271, 1009, 265, 216, 19, 34, 135, 216, 2352, 10, 1498, 228, 418, 2332, 11, 1639, 623, 20, 691, 1838, 140, 159, 280, 149, 36, 326, 1983, 32, 453, 261, 287, 202, 486, 57, 873, 182, 821, 17, 181, 385, 99, 3134, 47, 86, 282, 106, 63, 548, 226, 98, 283, 169, 306, 95, 87, 305, 367, 324, 2118, 75, 179, 164, 410, 81, 313, 37, 263, 337, 3044, 3043, 486, 206, 743, 348, 2588, 2127, 1666, 90, 183, 52, 302, 193, 52, 315, 191, 123, 14, 20, 479, 197, 2, 98, 2074, 144, 140, 129, 1064, 348, 203, 379, 293, 56, 317, 468, 413, 458, 305, 19, 85, 427, 272, 181, 324, 1120, 179, 137, 11, 54, 1473, 246, 566, 457, 46, 126, 38, 3204, 805, 80, 1693, 8, 2971, 1140, 69, 680, 254, 15, 163, 234, 28, 212, 349, 65, 133, 1199, 276, 2756, 64, 157, 21, 145, 125, 100, 792, 2192, 95, 611, 262, 32, 64, 76, 314, 58, 106, 127, 45, 1214, 603, 14, 546, 265, 414, 79, 2488, 2165, 16, 179, 47, 302, 45, 261, 153, 106, 460, 204, 174, 100, 260, 2071, 391, 338, 94, 654, 415, 692, 216, 161, 42, 369, 334, 91, 48, 43, 142, 441, 356, 22, 464, 208, 18, 205, 430, 124, 56, 731, 254, 459, 346, 1900, 160, 96, 73, 41, 360, 138, 314, 523, 9, 129, 466, 434, 184, 143, 100, 935, 86, 2755, 37, 2737, 165, 2371, 242, 202, 780, 288, 2690, 37, 28, 568, 275, 278, 89, 146, 449, 113, 721, 464, 300, 19, 541, 84, 291, 157, 145, 141, 494, 661, 2455, 66, 42, 370, 2187, 119, 248, 443, 81, 88, 175, 436, 320, 410, 234, 14, 106, 277, 170, 99, 379, 281, 8, 141, 51, 174, 367, 72, 251, 102, 1008, 335, 49, 407, 299, 307, 290, 614, 108, 406, 186, 978, 1511, 169, 64, 423, 1737, 384, 200, 42, 89, 301, 386, 34, 2076, 266, 4, 426, 630, 371, 277, 59, 5, 28, 190, 1999, 542, 316, 5, 141, 399, 178, 87, 214, 402, 2179, 58, 1961, 37, 322, 1681, 11, 223, 52, 131, 414, 129, 252, 37, 365, 76, 450, 651, 76, 363, 169, 43, 351, 307, 214, 42, 291, 149, 1970, 77, 48, 209, 286, 1664, 749, 1750, 55, 339, 2340, 231, 8, 1674, 356, 54, 115, 328, 124, 162, 66, 154, 123, 41, 143, 8, 179, 261, 293, 125, 422, 401, 10, 98, 193, 143, 125, 16, 30, 1399, 174, 276, 213, 2314, 147, 308, 198, 90, 71, 567, 185, 128, 487, 300, 548, 256, 163, 2087, 565, 111, 529, 393, 270, 172, 136, 292, 2158, 206, 83, 456, 121, 57, 4, 106, 50, 203, 996, 219, 77, 99, 69, 2711, 197, 43, 2206, 60, 33, 3799, 224, 96, 517, 307, 394, 1547, 229, 8, 1549, 492, 107, 809, 193, 225, 483, 1487, 1523, 2095, 18, 119, 76, 31, 1716, 88, 77, 301, 479, 187, 1289, 97, 19, 51, 366, 523, 99, 234, 355, 252, 176, 38, 403, 105, 12, 456, 1651, 3161, 374, 383, 225, 13, 394, 492, 82, 781, 1, 224, 98, 40, 58, 147, 9, 432, 75, 425, 100, 74, 8, 69, 88, 1251, 1606, 282, 289, 193, 338, 131, 211, 51, 7, 373, 2615, 938, 2, 38, 195, 13, 14, 341, 168, 85, 213, 432, 33, 153, 147, 2876, 13, 1016, 38, 213, 52, 194, 281, 2275, 279, 107, 117, 637, 312, 436, 1051, 16, 4, 181, 239, 266, 1874, 1568, 300, 1116, 27, 65, 8, 143, 197, 92, 223, 112, 121, 19, 70, 103, 366, 136, 1162, 683, 19, 1396, 24, 598, 206, 59, 343, 381, 96, 217, 381, 1049, 134, 372, 407, 21, 145, 58, 70, 92, 155, 776, 18, 323, 66, 752, 103, 202, 473, 612, 6, 455, 52, 648, 70, 123, 10, 9, 48, 25, 265, 306, 258, 229, 3, 1798, 308, 165, 1, 207, 945, 213, 12, 112, 491, 845, 117, 147, 645, 1359, 191, 97, 14, 1043, 7, 21, 141, 70, 340, 204, 406, 314, 2625, 26, 420, 90, 244, 262, 85, 3219, 38, 279, 222, 4, 115, 484, 71, 285, 228, 35, 734, 1307, 109, 178, 252, 120, 135, 499, 131, 51, 128, 380, 256, 784, 270, 306, 251, 397, 812, 22, 43, 40, 1351, 286, 79, 215, 57, 34, 1110, 951, 129, 150, 286, 243, 138, 63, 2306, 426, 285, 2206, 207, 1313, 2023, 197, 230, 1564, 128, 182, 350, 19, 66, 201, 17, 493, 94, 67, 64, 176, 435, 1861, 206, 701, 748, 77, 386, 96, 83, 476, 134, 1204, 365, 1010, 1972, 514, 2015, 210, 266, 167, 166, 117, 9, 176, 26, 1887, 59, 469, 71, 432, 194, 455, 243, 1498, 41, 1551, 156, 2340, 128, 1395, 201, 114, 99, 384, 31, 144, 168, 33, 75, 365, 302, 420, 168, 317, 61, 107, 211, 1282, 101, 376, 1281, 405, 179, 2145, 175, 142, 718, 12, 1091, 50, 170, 116, 160, 1669, 48, 178, 371, 464, 376, 1244, 2357, 295, 103, 15, 2401, 47, 408, 246, 2583, 292, 444, 1117, 1057, 399, 424, 280, 95, 869, 30, 350, 316, 186, 63, 323, 143, 432, 221, 48, 346, 107, 76, 106, 311, 64, 404, 2101, 1063, 88, 232, 427, 42, 49, 145, 109, 163, 78, 1974, 82, 45, 434, 18, 13, 404, 774, 857, 126, 297, 809, 187, 109, 1315, 277, 280, 245, 115, 205, 171, 1012, 24, 83, 446, 52, 1575, 144, 67, 72, 832, 144, 1086, 4, 432, 50, 860, 2999, 56, 140, 201, 17, 55, 112, 77, 275, 55, 460, 498, 371, 138, 494, 20, 390, 357, 2000, 353, 262, 115, 118, 164, 61, 461, 564, 187, 84, 472, 627, 461, 215, 1058, 342, 208, 1170, 131, 173, 20, 12, 150, 337, 118, 46, 407, 207, 306, 33, 138, 482, 188, 153, 53, 172, 72, 10, 369, 87, 818, 111, 2183, 175, 482, 123, 15, 19, 177, 50, 383, 362, 2492, 23, 967, 311, 254, 146, 25, 268, 22, 120, 7, 202, 54, 33, 257, 499, 3615, 379, 78, 430, 1811, 1206, 198, 80, 34, 55, 2265, 396, 144, 613, 92, 421, 267, 2173, 936, 166, 60, 2396, 9, 117, 83, 134, 906, 37, 142, 2164, 441, 149, 727, 1733, 133, 1727, 135, 237, 61, 12, 208, 45, 154, 287, 238, 259, 221, 102, 1837, 273, 456, 488, 674, 93, 2572, 182, 153, 22, 510, 158, 420, 12, 896, 698, 2057, 1698, 298, 152, 907, 149, 480, 115, 496, 766, 660, 160, 146, 359, 159, 211, 178, 197, 16, 182, 226, 260, 1227, 266, 1377, 113, 138, 35, 157, 3023, 1145, 389, 248, 353, 3411, 249, 70, 255, 2302, 1083, 229, 23, 1207, 41, 316, 765, 126, 2232, 1769, 315, 2182, 478, 433, 380, 58, 1119, 71, 100, 16, 175, 43, 3467, 146, 439, 79, 90, 2310, 377, 184, 353, 963, 1435, 18, 21, 51, 1466, 105, 71, 68, 27, 115, 334, 497, 166, 83, 278, 175, 139, 93, 77, 93, 59, 213, 100, 1038, 411, 495, 290, 279, 201, 182, 46, 257, 476, 33, 212, 263, 1473, 90, 33, 202, 772, 68, 490, 103, 152, 534, 136, 26, 101, 1129, 704, 1733, 104, 279, 482, 316, 82, 232, 361, 330, 162, 16, 336, 171, 2490, 14, 449, 24, 41, 2507, 196, 4, 771, 357, 111, 10, 370, 3087, 238, 140, 1906, 1379, 146, 1255, 116, 25, 331, 20, 130, 57, 308, 161, 64, 259, 475, 82, 51, 363, 221, 123, 424, 161, 191, 243, 82, 818, 306, 274, 1273, 2366, 340, 77, 544, 2445, 545, 337, 405, 32, 302, 114, 13, 134, 81, 59, 423, 392, 78, 118, 209, 398, 282, 163, 56, 156, 82, 465, 1318, 470, 795, 168, 271, 247, 730, 336, 401, 251, 267, 1259, 132, 2256, 84, 253, 160, 115, 384, 49, 72, 434, 17, 134, 133, 128, 209, 19, 262, 220, 259, 712, 155, 99, 31, 720, 3, 237, 62, 42, 1345, 453, 186, 195, 751, 202, 177, 49, 1591, 2409, 298, 4, 50, 346, 311, 13, 21, 39, 903, 146, 262, 147, 138, 30, 312, 45, 1199, 244, 1055, 2862, 1228, 440, 9, 236, 39, 18, 216, 396, 98, 1654, 32, 172, 1, 3126, 88, 495, 81, 1745, 284, 349, 70, 3072, 214, 131, 495, 1718, 558, 74, 35, 126, 125, 240, 59, 333, 826, 107, 241, 267, 431, 118, 26, 520, 388, 642, 118, 27, 119, 121, 32, 54, 224, 807, 360, 389, 1440, 233, 80, 171, 236, 43, 3133, 69, 1500, 137, 206, 149, 91, 236, 222, 1926, 1738, 447, 34, 276, 387, 457, 2558, 135, 410, 97, 331, 1815, 13, 302, 228, 15, 176, 54, 773, 2167, 158, 166, 167, 438, 78, 63, 2345, 24, 74, 364, 1047, 426, 178, 6, 216, 85, 507, 1594, 189, 179, 439, 47, 65, 371, 44, 130, 1062, 12, 795, 527, 745, 15, 17, 158, 208, 1001, 223, 922, 250, 23, 1477, 366, 347, 258, 819, 307, 169, 418, 312, 119, 22, 24, 42, 55, 803, 127, 190, 208, 7, 488, 427, 1173, 212, 32, 63, 255, 120, 71, 93, 130, 720, 143, 72, 2043, 204, 51, 1202, 1436, 40, 797, 699, 2823, 181, 357, 478, 407, 83, 186, 322, 122, 111, 5, 661, 27, 2500, 108, 35, 492, 201, 139, 508, 1141, 2216, 37, 321, 54, 1807, 467, 246, 1195, 57, 133, 1696, 125, 104, 220, 279, 1363, 564, 86, 171, 30, 166, 1521, 842, 1390, 420, 439, 197, 148, 322, 27, 1085, 1708, 294, 353, 194, 225, 812, 220, 95, 10, 408, 61, 25, 205, 2584, 248, 71, 6, 53, 429, 5, 214, 267, 67, 63, 90, 379, 184, 163, 28, 1357, 337, 339, 306, 360, 2898, 1620, 26, 180, 67, 193, 238, 152, 366, 190, 208, 169, 211, 200, 191, 960, 236, 204, 479, 174, 595, 86, 256, 15, 69, 441, 274, 489, 3194, 22, 1070, 11, 87, 811, 647, 213, 2751, 310, 854, 2167, 438, 1327, 59, 130, 173, 138, 140, 243, 7, 301, 205, 103, 293, 283, 89, 325, 339, 447, 268, 154, 485, 6, 281, 1009, 80, 1139, 118, 873, 47, 59, 339, 76, 132, 315, 25, 57, 1153, 284, 49, 29, 274, 2, 133, 381, 316, 22, 1175, 1189, 74, 23, 126, 42, 1, 24, 365, 1260, 137, 464, 638, 336, 449, 452, 231, 121, 259, 1421, 72, 191, 133, 34, 15, 49, 1176, 447, 24, 50, 333, 1046, 175, 2344, 193, 225, 102, 85, 395, 299, 533, 124, 62, 169, 450, 899, 11, 138, 200, 251, 42, 229, 61, 194, 2177, 16, 344, 226, 114, 465, 2723, 65, 16, 20, 350, 93, 196, 197, 1639, 241, 23, 57, 1700, 2291, 65, 279, 234, 307, 95, 75, 10, 106, 302, 443, 108, 105, 1337, 800, 18, 220, 288, 150, 76, 40, 151, 78, 475, 74, 113, 196, 150, 73, 117, 1039, 325, 2, 707, 176, 69, 20, 306, 175, 48, 249, 377, 44, 227, 597, 32, 150, 3, 247, 413, 1488, 192, 271, 335, 1004, 258, 66, 32, 24, 302, 11, 30, 321, 252, 84, 329, 171, 418, 384, 171, 297, 2787, 2109, 853, 84, 11, 417, 429, 86, 40, 2484, 36, 103, 40, 2833, 259, 38, 110, 680, 417, 191, 329, 137, 193, 2, 2942, 289, 145, 444, 460, 196, 1015, 95, 327, 445, 259, 440, 236, 79, 125, 28, 37, 141, 37, 9, 200, 40, 7, 12, 95, 142, 319, 321, 193, 303, 331, 198, 220, 97, 321, 364, 468, 18, 241, 1286, 59, 2066, 226, 391, 2581, 580, 334, 267, 68, 1032, 73, 70, 257, 151, 81, 170, 261, 391, 48, 82, 514, 15, 46, 305, 965, 213, 75, 403, 233, 373, 1352, 220, 262, 386, 399, 341, 82, 276, 112, 245, 116, 168, 246, 1612, 160, 88, 157, 199, 73, 79, 3, 18, 246, 39, 1034, 104, 1664, 114, 336, 316, 139, 93, 50, 145, 55, 30, 180, 139, 201, 71, 263, 1378, 176, 269, 39, 145, 272, 111, 499, 49, 196, 530, 743, 308, 42, 1157, 349, 121, 258, 64, 46, 433, 31, 573, 28, 300, 82, 1881, 2689, 160, 53, 109, 325, 50, 286, 123, 142, 36, 15, 28, 2022, 35, 912, 112, 368, 393, 441, 12, 130, 19, 108, 69, 1311, 74, 921, 408, 68, 860, 249, 120, 50, 180, 190, 252, 733, 315, 127, 7, 297, 116, 157, 179, 41, 148, 110, 329, 400, 86, 63, 192, 301, 175, 31, 242, 30, 3, 123, 189, 44, 115, 174, 39, 488, 155, 494, 769, 307, 101, 3, 3129, 26, 403, 66, 1212, 35, 1711, 444, 1824, 231, 20, 188, 215, 84, 2247, 95, 1347, 43, 2646, 79, 2255, 2533, 864, 787, 85, 290, 39, 183, 149, 1997, 187, 484, 419, 986, 3577, 421, 437, 175, 117, 96, 41, 234, 241, 485, 646, 447, 5, 174, 167, 129, 250, 355, 102, 8, 75, 29, 2246, 1574, 2318, 53, 23, 19, 173, 67, 58, 342, 297, 389, 44, 195, 335, 381, 163, 412, 348, 235, 877, 231, 929, 406, 6, 371, 282, 121, 39, 1208, 86, 105, 336, 46, 186, 1827, 390, 181, 145, 22, 240, 419, 89, 178, 327, 136, 2943, 26, 184, 189, 48, 792, 93, 207, 119, 392, 1605, 96, 62, 45, 367, 589, 274, 45, 1344, 36, 762, 214, 252, 198, 261, 67, 198, 1942, 50, 1403, 105, 138, 2309, 933, 320, 295, 101, 1147, 74, 361, 325, 301, 161, 491, 470, 447, 1767, 144, 305, 1350, 128, 430, 164, 243, 465, 451, 221, 128, 233, 144, 294, 11, 19, 111, 253, 77, 198, 196, 248, 395, 257, 58, 332, 166, 129, 256, 53, 93, 185, 261, 319, 1780, 97, 130, 13, 1430, 131, 133, 139, 282, 502, 302, 947, 256, 143, 55, 56, 3, 1457, 133, 162, 512, 170, 29, 6, 118, 556, 151, 426, 4, 76, 83, 116, 58, 55, 724, 64, 186, 323, 1656, 619, 68, 195, 3178, 80, 36, 420, 31, 227, 173, 368, 122, 174, 168, 49, 108, 60, 239, 258, 280, 8, 1688, 177, 208, 308, 143, 1126, 494, 412, 232, 739, 46, 155, 129, 57, 198, 254, 223, 1442, 111, 258, 230, 228, 255, 269, 404, 236, 1227, 1, 35, 1372, 207, 271, 257, 362, 1697, 16, 311, 384, 26, 245, 340, 611, 81, 659, 210, 67, 398, 107, 825, 178, 116, 346, 65, 151, 463, 485, 214, 90, 51, 47, 233, 48, 30, 33, 485, 451, 396, 244, 423, 351, 85, 226, 56, 231, 75, 47, 1959, 291, 3, 363, 103, 155, 87, 424, 1414, 400, 336, 345, 493, 203, 109, 444, 1456, 5, 2138, 1737, 252, 189, 278, 348, 64, 2736, 823, 171, 409, 204, 1371, 579, 1707, 214, 154, 38, 150, 124, 113, 132, 239, 86, 242, 61, 254, 516, 1464, 393, 242, 167, 18, 177, 221, 62, 302, 1175, 347, 1953, 94, 351, 312, 648, 815, 118, 170, 50, 61, 295, 1386, 210, 313, 149, 71, 238, 95, 1210, 531, 65, 34, 111, 1076, 94, 217, 49, 66, 44, 25, 150, 11, 2487, 26, 43, 283, 177, 155, 83, 1022, 149, 266, 158, 134, 898, 94, 205, 700, 172, 1897, 247, 168, 480, 338, 425, 260, 55, 235, 29, 33, 28, 95, 1260, 360, 529, 98, 2793, 326, 176, 290, 478, 387, 93, 435, 296, 474, 481, 38, 1018, 116, 794, 1538, 281, 1078, 274, 357, 205, 180, 383, 27, 266, 264, 67, 8, 62, 30, 58, 109, 297, 263, 1013, 16, 198, 33, 343, 674, 212, 60, 500, 2263, 129, 284, 480, 172, 52, 88, 148, 442, 31, 1561, 682, 210, 320, 210, 1042, 398, 189, 138, 375, 76, 183, 165, 239, 74, 407, 237, 484, 473, 468, 38, 294, 1412, 325, 6, 191, 238, 133, 1218, 25, 643, 328, 182, 451, 854, 169, 209, 217, 337, 2360, 1527, 197, 298, 490, 187, 27, 80, 528, 410, 49, 126, 144, 496, 129, 1341, 482, 2042, 210, 187, 788, 174, 192, 380, 472, 462, 1414, 162, 127, 237, 140, 146, 153, 551, 235, 574, 142, 2004, 1579, 147, 1891, 1034, 372, 102, 15, 58, 341, 228, 108, 91, 10, 1814, 400, 81, 124, 72, 125, 442, 391, 261, 1193, 50, 79, 48, 28, 171, 103, 828, 161, 164, 513, 147, 154, 196, 888, 17, 54, 441, 369, 3, 1424, 102, 1683, 468, 1221, 185, 14, 55, 159, 90, 122, 323, 286, 263, 15, 253, 110, 123, 2489, 109, 346, 363, 89, 6, 126, 75, 21, 28, 443, 172, 293, 294, 299, 1787, 94, 177, 94, 377, 161, 64, 104, 1631, 225, 12, 1205, 1454, 997, 229, 1972, 35, 258, 339, 178, 81, 334, 46, 345, 283, 165, 39, 339, 90, 61, 958, 44, 97, 232, 149, 349, 360, 598, 193, 53, 313, 5, 51, 201, 277, 55, 250, 268, 399, 264, 1305, 116, 497, 67, 374, 56, 464, 502, 25, 325, 745, 445, 11, 298, 1089, 1126, 2482, 3187, 448, 253, 344, 470, 51, 104, 439, 89, 38, 32, 2004, 271, 183, 29, 846, 64, 120, 316, 124, 45, 378, 119, 51, 121, 120, 791, 12, 1165, 376, 214, 1105, 77, 310, 34, 63, 207, 54, 2, 481, 247, 94, 1841, 2890, 349, 24, 2398, 2665, 56, 8, 825, 303, 403, 234, 261, 1735, 152, 463, 87, 32, 870, 115, 347, 44, 4, 258, 134, 110, 118, 483, 135, 48, 227, 105, 289, 171, 69, 93, 115, 2837, 618, 402, 230, 186, 27, 395, 45, 287, 120, 474, 326, 198, 420, 185, 136, 1402, 194, 1048, 245, 269, 127, 169, 156, 657, 44, 393, 799, 84, 1081, 9, 898, 327, 317, 1089, 340, 362, 214, 153, 246, 2124, 437, 69, 822, 59, 200, 323, 189, 122, 215, 419, 44, 114, 77, 361, 44, 101, 798, 36, 222, 259, 2254, 25, 380, 2687, 899, 5, 31, 175, 259, 60, 344, 148, 140, 190, 45, 2476, 375, 188, 526, 68, 96, 151, 143, 22, 63, 112, 96, 273, 9, 107, 160, 2366, 301, 220, 423, 1803, 3, 352, 1418, 1703, 31, 230, 6, 348, 246, 9, 72, 105, 46, 67, 68, 152, 300, 362, 1502, 253, 753, 39, 379, 223, 2454, 264, 1999, 350, 145, 324, 195, 92, 439, 337, 53, 121, 187, 117, 1006, 54, 280, 276, 454, 26, 416, 1634, 32, 1288, 20, 149, 377, 255, 131, 434, 1554, 75, 411, 489, 258, 69, 84, 3596, 211, 231, 91, 200, 238, 62, 266, 919, 413, 154, 97, 453, 27, 1439, 341, 218, 338, 123, 240, 405, 323, 330, 327, 123, 162, 411, 240, 217, 337, 146, 358, 53, 97, 575, 233, 253, 221, 437, 327, 2114, 3, 469, 1395, 3251, 13, 33, 162, 3013, 2132, 1870, 122, 836, 40, 60, 24, 477, 292, 326, 9, 44, 186, 352, 25, 284, 593, 1085, 201, 34, 1050, 297, 460, 288, 453, 179, 900, 128, 221, 117, 139, 204, 249, 413, 1640, 335, 421, 76, 122, 1417, 200, 534, 19, 135, 101, 426, 223, 746, 1094, 490, 177, 890, 240, 664, 58, 12, 172, 270, 113, 81, 13, 1044, 2216, 78, 294, 155, 17, 167, 288, 1757, 2, 39, 1238, 498, 208, 1221, 390, 288, 193, 98, 178, 42, 259, 148, 122, 28, 10, 231, 213, 11, 29, 58, 29, 1997, 407, 225, 265, 236, 189, 57, 191, 82, 342, 22, 1390, 143, 2321, 47, 60, 7, 14, 30, 102, 215, 5, 204, 85, 265, 31, 223, 2316, 153, 62, 347, 1584, 107, 98, 185, 174, 452, 1784, 181, 1081, 952, 705, 82, 444, 342, 11, 114, 40, 367, 1954, 7, 192, 164, 33, 116, 209, 62, 246, 384, 1621, 500, 303, 170, 156, 863, 26, 1264, 189, 334, 304, 422, 294, 440, 1343, 57, 104, 156, 102, 2620, 106, 323, 377, 1592, 1675, 460, 30, 172, 110, 80, 36, 291, 10, 391, 51, 160, 227, 81, 2244, 271, 778, 41, 757, 29, 118, 91, 140, 21, 46, 442, 355, 27, 35, 1684, 100, 199, 2284, 88, 209, 101, 125, 140, 163, 93, 913, 213, 180, 62, 375, 156, 92, 205, 137, 1335, 376, 125, 32, 103, 310, 230, 29, 194, 4, 299, 256, 147, 36, 431, 371, 283, 22, 7, 385, 18, 90, 207, 112, 71, 599, 24, 1103, 445, 2, 413, 17, 12, 60, 1, 1250, 157, 487, 1714, 713, 148, 187, 148, 196, 432, 979, 332, 108, 295, 108, 104, 93, 1574, 10, 496, 107, 53, 5, 499, 321, 48, 670, 802, 156, 1832, 14, 96, 78, 410, 85, 1417, 2657, 280, 245, 284, 148, 189, 2, 52, 54, 384, 127, 1037, 140, 119, 73, 410, 1690, 322, 148, 396, 1988, 248, 4, 264, 375, 98, 153, 283, 345, 8, 402, 879, 159, 3552, 283, 26, 186, 295, 92, 110, 453, 361, 107, 1937, 202, 1653, 314, 363, 14, 419, 271, 1000, 558, 86, 23, 1, 195, 878, 421, 2020, 46, 73, 228, 400, 68, 389, 34, 442, 273, 337, 1373, 408, 238, 2511, 127, 440, 521, 105, 40, 171, 1125, 257, 244, 410, 37, 160, 52, 359, 1460, 40, 400, 3423, 408, 357, 473, 230, 141, 415, 237, 55, 293, 34, 305, 346, 205, 155, 642, 294, 173, 166, 306, 25, 358, 251, 381, 46, 34, 452, 179, 1302, 118, 247, 2665, 575, 108, 804, 788, 333, 154, 283, 327, 1528, 3318, 87, 431, 173, 3183, 128, 2880, 457, 63, 408, 347, 891, 376, 306, 41, 493, 460, 588, 212, 2597, 2526, 846, 1253, 975, 1391, 2911, 1416, 714, 114, 149, 182, 155, 1248, 330, 343, 952, 3005, 402, 1128, 314, 123, 973, 1968, 2265, 358, 192, 358, 159, 2557, 465, 1863, 427, 3469, 443, 219, 105, 843, 365, 523, 553, 2143, 362, 496, 1334, 412, 2254, 1135, 1523, 448, 1076, 971, 148, 1640, 858, 2303, 318, 475, 192, 310, 1771, 501, 206, 1153, 470, 367, 467, 1621, 337, 874, 200, 125, 2952, 188, 411, 1887, 367, 2146, 256, 548, 245, 2576, 1794, 385, 980, 2757, 1931, 1531, 459, 1108, 1425, 617, 400, 757, 255, 305, 158, 2370, 328, 3181, 1138, 1901, 505, 1267, 281, 386, 1177, 192, 1165, 2945, 1327, 345, 1234, 402, 388, 2009, 2119, 380, 1965, 485, 3092, 1122, 257, 731, 989, 194, 2365, 459, 1265, 324, 1077, 412, 643, 2877, 1834, 307, 397, 372, 2087, 318, 2276, 362, 2710, 304, 436, 308, 1632, 307, 2019, 490, 313, 442, 911, 166, 358, 418, 199, 1819, 105, 1024, 617, 711, 269, 1785, 2107, 1691, 138, 2662, 1212, 2010, 388, 428, 344, 1709, 2451, 1135, 280, 423, 1458, 977, 328, 428, 805, 2078, 2848, 434, 602, 2234, 2798, 389, 496, 353, 413, 468, 240, 3365, 264, 625, 2641, 2643, 257, 248, 1143, 732, 427, 498, 2988, 2462, 215, 1525, 687, 1814, 188, 168, 750, 3797, 81, 2736, 995, 1491, 2140, 2951, 3726, 500, 1379, 315, 459, 1955, 331, 244, 96, 1411, 557, 2204, 151, 1736, 269, 1766, 3451, 1205, 1783, 1897, 1453, 567, 781, 287, 196, 65, 141, 2742, 360, 372, 450, 1978, 1817, 414, 299, 1791, 215, 270, 913, 903, 184, 83, 762, 2185, 120, 1780, 249, 362, 3840, 279, 2897, 240, 2032, 3508, 2181, 454, 2528, 1872, 261, 2271, 161, 262, 1271, 2407, 206, 735, 718, 289, 456, 482, 284, 1087, 148, 227, 1730, 1868, 1982, 3057, 2713, 2632, 2203, 250, 116, 563, 251, 1925, 3121, 1585, 1865, 1873, 431, 199, 3163, 242, 1625, 304, 2137, 922, 1213, 3547, 2251, 2934, 487, 105, 3311, 1567, 1545, 270, 358, 269, 1010, 2878, 378, 487, 2105, 1939, 284, 1790, 89, 212, 1434, 927, 103, 1910, 185, 3422, 1822, 280, 439, 463, 1280, 434, 2316, 3724, 1581, 2947, 1095, 492, 1880, 959, 232, 278, 3335, 1960, 223, 304, 140, 920, 127, 121, 386, 1880, 499, 851, 253, 1945, 629, 981, 372, 292, 591, 127, 924, 619, 2070, 38, 213, 459, 1693, 73, 37, 287, 2374, 359, 1591, 238, 778, 894, 186, 156, 351, 23, 460, 486, 3248, 539, 242, 174, 1235, 91, 483, 38, 432, 2510, 601, 2825, 622, 310, 605, 1975, 344, 17, 272, 162, 774, 153, 224, 385, 176, 511, 751, 1099, 1024, 905, 36, 1062, 1083, 235, 333, 1154, 227, 125, 186, 376, 392, 1616, 233, 573, 3513, 678, 703, 397, 494, 2998, 2252, 1846, 155, 43, 1274, 3925, 430, 256, 474, 1587, 2865, 620, 1459, 396, 281, 298, 2733, 459, 309, 294, 302, 2307, 973, 2012, 1241, 2158, 290, 836, 338, 2082, 223, 1450, 324, 329, 1181, 45, 299, 267, 3075, 1291, 1252, 242, 1143, 1861, 445, 986, 2767, 2555, 3371, 280, 1388, 374, 1830, 458, 932, 693, 158, 438, 178, 487, 247, 173, 486, 3590, 124, 181, 2368, 379, 694, 474, 977, 651, 1082, 466, 366, 815, 465, 702, 359, 403, 170, 2127, 371, 2281, 1230, 1112, 438, 569, 555, 194, 1019, 2190, 2566, 282, 352, 670, 951, 295, 491, 1854, 673, 2132, 2787, 224, 1261, 1427, 3572, 388, 491, 493, 1863, 250, 137, 264, 349, 3137, 417, 496, 434, 2034, 243, 1099, 309, 137, 278, 782, 1659, 1858, 182, 923, 21, 208, 364, 1924, 265, 334, 466, 880, 3439, 315, 290, 2259, 3364, 358, 440, 264, 392, 1588, 730, 3473, 144, 1694, 313, 3738, 3312, 113, 3192, 2694, 395, 2196, 2245, 2222, 329, 2413, 397, 177, 465, 3080, 158, 1570, 334, 688, 216, 1434, 78, 2847, 208, 2021, 384, 450, 709, 262, 3920, 292, 354, 1485, 2334, 373, 2210, 1572, 1282, 592, 2098, 676, 199, 89, 2271, 492, 2085, 2172, 384, 364, 459, 1184, 499, 929, 47, 305, 466, 3165, 3121, 2059, 303, 1147, 979, 3144, 3190, 2067, 169, 310, 401, 916, 354, 1963, 3143, 477, 719, 283, 152, 640, 1760, 422, 296, 3069, 1104, 141, 369, 1795, 1521, 233, 757, 1858, 122, 3882, 476, 1217, 2217, 315, 2564, 126, 510, 448, 954, 570, 1338, 571, 457, 83, 217, 1973, 489, 1829, 2223, 56, 438, 544, 3491, 1080, 1170, 2056, 180, 3206, 1933, 332, 898, 886, 2384, 320, 1608, 334, 232, 543, 566, 261, 2759, 817, 3324, 422, 170, 983, 158, 392, 275, 948, 2686, 1726, 692, 844, 2897, 279, 178, 461, 223, 222, 262, 381, 1529, 928, 1801, 1447, 354, 1041, 86, 2596, 2436, 525, 713, 260, 1404, 219, 1102, 203, 393, 907, 313, 330, 490, 2180, 2828, 1279, 666, 196, 1547, 2442, 3565, 308, 2817, 157, 1156, 2821, 220, 232, 500, 313, 1036, 636, 449, 1201, 469, 389, 2274, 2048, 463, 3091, 3573, 1107, 1618, 993, 3098, 225, 183, 300, 931, 665, 156, 661, 537, 268, 1512, 2705, 463, 312, 239, 240, 992, 1367, 2872, 1984, 4015, 284, 3403, 909, 457, 2342, 1792, 2954, 443, 112, 595, 716, 621, 139, 222, 967, 303, 1297, 969, 766, 127, 1152, 89, 1584, 217, 1545, 374, 572, 2780, 3024, 216, 135, 405, 2404, 2637, 440, 519, 107, 143, 407, 2223, 458, 492, 528, 145, 480, 2834, 206, 368, 635, 1485, 400, 671, 167, 293, 976, 239, 1096, 132, 2675, 462, 213, 883, 2719, 2408, 518, 1650, 203, 1442, 1595, 2290, 2091, 1656, 375, 1449, 2208, 420, 244, 2060, 480, 808, 2707, 103, 2425, 344, 309, 1799, 2296, 375, 1972, 369, 161, 88, 1635, 2008, 1670, 865, 732, 396, 1000, 1269, 185, 1603, 471, 2873, 209, 2593, 473, 325, 2959, 188, 227, 168, 289, 424, 1824, 857, 327, 456, 180, 1304, 1023, 228, 402, 211, 46, 1645, 513, 2025, 149, 314, 445, 3019, 145, 243, 394, 1834, 2150, 1235, 3398, 357, 2364, 3430, 738, 86, 2850, 1721, 266, 1537, 1462, 792, 618, 1776, 260, 637, 188, 144, 87, 2643, 2248, 314, 868, 437, 585, 206, 232, 203, 159, 1602, 339, 89, 2116, 941, 380, 230, 2846, 521, 2336, 363, 492, 2638, 891, 405, 214, 733, 856, 1869, 417, 198, 3132, 1876, 335, 1700, 499, 1220, 439, 160, 841, 3529, 300, 422, 1026, 122, 341, 136, 142, 289, 405, 1460, 434, 446, 493, 1599, 2778, 498, 94, 2765, 164, 54, 4029, 1943, 389, 613, 428, 1348, 2079, 378, 247, 2585, 764, 2644, 2436, 240, 448, 1957, 1948, 2006, 2281, 47, 489, 368, 91, 1752, 160, 174, 1675, 1172, 2322, 2085, 98, 215, 482, 901, 3542, 1765, 373, 1035, 423, 1044, 409, 1345, 353, 193, 2019, 3035, 3463, 394, 2135, 588, 188, 1240, 1983, 210, 803, 3636, 2311, 99, 66, 250, 1093, 1301, 999, 338, 964, 196, 153, 13, 1501, 910, 1523, 2884, 1145, 1672, 420, 498, 1386, 1488, 78, 1555, 1162, 3026, 3085, 368, 142, 229, 17, 816, 1680, 1947, 91, 756, 1768, 1116, 210, 437, 3114, 70, 3659, 602, 2218, 63, 1465, 374, 2324, 468, 151, 249, 2543, 468, 467, 2523, 36, 61, 211, 392, 611, 3077, 2006, 464, 3367, 383, 526, 471, 268, 335, 229, 262, 460, 2702, 937, 237, 1860, 2062, 3231, 2949, 2913, 114, 3156, 332, 1847, 222, 353, 355, 990, 235, 1483, 1792, 1843, 480, 582, 3258, 98, 159, 253, 1410, 761, 370, 852, 62, 995, 128, 1587, 170, 507, 1731, 1173, 2576, 878, 1826, 2385, 1166, 228, 164, 442, 217, 151, 428, 674, 340, 2014, 201, 2006, 472, 222, 162, 477, 3163, 489, 23, 130, 969, 1188, 1832, 338, 1758, 1933, 1207, 932, 113, 1760, 133, 207, 411, 304, 753, 205, 462, 2087, 3483, 87, 1595, 151, 358, 2276, 1431, 3447, 2025, 361, 226, 98, 375, 942, 173, 392, 243, 387, 988, 2574, 790, 1160, 1097, 267, 942, 2351, 177, 204, 272, 460, 1103, 1075, 376, 483, 388, 1365, 1634, 1257, 354, 510, 3017, 2323, 142, 799, 338, 479, 3114, 1547, 204, 219, 387, 392, 371, 416, 3772, 1746, 2150, 2920, 397, 1554, 2064, 2972, 1856, 3120, 190, 281, 444, 493, 167, 321, 263, 1243, 414, 236, 448, 485, 2412, 2591, 342, 780, 793, 437, 1351, 104, 272, 1152, 290, 1952, 570, 1867, 2484, 3285, 2860, 1213, 349, 436, 478, 221, 358, 458, 1606, 3655, 2835, 1657, 158, 638, 242, 2696, 313, 3098, 1581, 3270, 263, 3014, 399, 2708, 285, 2385, 4030, 2487, 1224, 2568, 265, 211, 1254, 465, 1996, 782, 400, 442, 289, 274, 2253, 3381, 709, 1398, 1650, 1016, 556, 2320, 196, 1481, 1440, 561, 1261, 67, 275, 304, 590, 1952, 66, 1362, 2545, 1442, 686, 2531, 2756, 324, 120, 1272, 2461, 2533, 503, 2319, 3249, 398, 1845, 1452, 1666, 1596, 1797, 323, 371, 1629, 77, 432, 461, 453, 331, 334, 164, 473, 3457, 97, 3416, 530, 1890, 241, 2376, 156, 1358, 2701, 2111, 397, 3357, 3569, 445, 278, 322, 450, 201, 459, 2806, 136, 80, 3283, 287, 125, 1036, 2876, 1226, 214, 418, 2128, 847, 122, 2352, 442, 2572, 340, 394, 742, 453, 1737, 264, 216, 1987, 534, 2619, 271, 316, 446, 3242, 1043, 2075, 23, 1210, 111, 933, 3054, 1139, 2613, 2010, 251, 1354, 364, 237, 839, 336, 3130, 990, 388, 178, 1284, 404, 2268, 495, 3545, 402, 1641, 236, 233, 1254, 312, 3086, 2313, 345, 183, 2532, 934, 775, 2811, 1936, 884, 2285, 1197, 1024, 277, 135, 292, 245, 350, 410, 385, 729, 3236, 649, 1084, 155, 925, 667, 201, 84, 1711, 1663, 364, 1539, 209, 3401, 172, 2394, 330, 1056, 673, 30, 126, 259, 129, 504, 1393, 2520, 1349, 3202, 391, 267, 1957, 43, 342, 366, 505, 116, 1035, 2148, 213, 1033, 580, 3711, 2582, 281, 1544, 2663, 3030, 328, 239, 206, 233, 2341, 423, 232, 998, 121, 2337, 417, 2358, 1521, 294, 78, 3158, 27, 152, 2507, 468, 3138, 670, 785, 3337, 560, 2942, 890, 1808, 872, 2273, 356, 1028, 80, 66, 359, 470, 426, 1306, 407, 3472, 409, 1417, 2022, 346, 974, 1151, 1844, 1710, 3194, 954, 176, 152, 1984, 1067, 967, 332, 2462, 3460, 2305, 2308, 561, 2039, 2691, 242, 1908, 243, 993, 3125, 3693, 765, 518, 1802, 395, 1923, 767, 488, 30, 377, 391, 1006, 1853, 1226, 1754, 195, 1060, 203, 864, 3095, 1358, 759, 251, 1005, 3454, 1155, 338, 2315, 2582, 3102, 405, 1804, 1215, 111, 1441, 3296, 273, 3979, 2953, 392, 2554, 1607, 457, 3149, 75, 1907, 3309, 137, 83, 2356, 703, 3618, 239, 1612, 94, 320, 2955, 2126, 639, 761, 1178, 1455, 233, 113, 95, 1786, 425, 817, 151, 1267, 218, 419, 1045, 406, 137, 2357, 1137, 475, 445, 314, 1528, 129, 473, 1054, 1883, 476, 1691, 1556, 408, 1205, 202, 100, 2502, 679, 59, 3766, 307, 1636, 289, 633, 211, 3658, 538, 979, 330, 304, 1074, 195, 356, 1381, 2525, 2225, 1877, 218, 1017, 532, 2721, 135, 694, 1779, 347, 331, 333, 383, 190, 3340, 1245, 1725, 531, 451, 3062, 2862, 2368, 1143, 397, 364, 324, 408, 3358, 1037, 144, 2537, 1513, 438, 1736, 218, 104, 346, 1058, 180, 224, 614, 395, 241, 320, 616, 373, 96, 1719, 297, 303, 2009, 223, 199, 2496, 2306, 2602, 624, 1527, 2974, 2393, 1141, 604, 1177, 2548, 1954, 387, 480, 136, 2138, 984, 366, 194, 944, 853, 1169, 3202, 191, 458, 2520, 404, 1875, 1180, 377, 249, 211, 809, 1706, 2369, 1778, 1711, 345, 1645, 1192, 343, 770, 2098, 1904, 2190, 213, 2746, 307, 291, 444, 199, 474, 187, 247, 2061, 3022, 258, 411, 292, 244, 25, 1541, 273, 1561, 1469, 397, 522, 138, 848, 2232, 254, 385, 1526, 2508, 635, 2102, 337, 1447, 1744, 1400, 421, 1616, 2580, 335, 42, 81, 1292, 356, 2005, 229, 419, 1182, 461, 1810, 362, 247, 1868, 327, 445, 1745, 272, 1149, 2940, 1614, 1954, 234, 415, 160, 454, 606, 2666, 343, 3395, 156, 445, 43, 3361, 322, 1466, 801, 2629, 1629, 716, 146, 3444, 3040, 141, 1741, 1901, 2090, 506, 820, 137, 189, 779, 68, 843, 844, 467, 388, 1128, 1190, 789, 1781, 911, 439, 821, 123, 1554, 247, 454, 233, 340, 405, 3421, 669, 1457, 1876, 249, 244, 389, 1194, 243, 3552, 449, 3222, 185, 2027, 3257, 154, 1003, 1813, 1950, 2249, 1198, 229, 312, 1669, 1926, 2869, 199, 465, 1731, 655, 2684, 228, 420, 385, 26, 2033, 1519, 1063, 2891, 165, 417, 1053, 2754, 406, 246, 3252, 150, 1699, 2038, 2990, 549, 461, 2149, 1517, 158, 644, 1966, 419, 182, 3799, 52, 657, 1582, 430, 490, 1269, 673, 2763, 671, 2597, 355, 500, 172, 461, 1692, 320, 1011, 307, 311, 1717, 520, 370, 1490, 1998, 344, 477, 2930, 400, 226, 1342, 415, 332, 331, 2249, 499, 1354, 313, 1932, 1171, 1446, 2524, 385, 67, 163, 466, 318, 134, 218, 350, 1583, 432, 129, 2752, 388, 889, 1283, 2422, 120, 1077, 3458, 3183, 430, 456, 664, 1589, 295, 487, 804, 162, 569, 313, 904, 156, 3105, 2312, 462, 1159, 1730, 2503, 1470, 1295, 3540, 114, 500, 99, 2029, 1684, 463, 2909, 113, 319, 1993, 310, 370, 466, 296, 3518, 2254, 226, 297, 161, 351, 1549, 1013, 2296, 1311, 460, 485, 265, 327, 28, 1611, 2831, 425, 433, 1374, 322, 1039, 2147, 1565, 326, 851, 276, 309, 473, 2732, 422, 909, 22, 217, 488, 111, 369, 289, 79, 254, 334, 705, 1676, 1019, 47, 2859, 402, 377, 2824, 606, 3935, 2603, 92, 319, 269, 408, 373, 218, 911, 1631, 309, 1287, 421, 1538, 939, 3797, 376, 1158, 733, 840, 1501, 151, 1845, 275, 1941, 1770, 343, 657, 3545, 108, 1379, 398, 281, 1504, 983, 504, 3228, 351, 2151, 3223, 2013, 1914, 553, 411, 215, 323, 454, 831, 36, 422, 1613, 251, 953, 387, 3214, 479, 2034, 476, 2289, 379, 498, 128, 2923, 1654, 315, 1855, 198, 1890, 238, 394, 1974, 209, 418, 1248, 1890, 1423, 3351, 869, 557, 406, 355, 130, 220, 486, 325, 2435, 1291, 1756, 216, 75, 380, 459, 23, 394, 875, 3291, 331, 1517, 3120, 562, 3534, 1212, 994, 369, 293, 3086, 188, 915, 948, 62, 340, 71, 2635, 1543, 177, 1731, 438, 2190, 317, 2864, 885, 390, 367, 212, 446, 478, 3401, 180, 163, 382, 1182, 1790, 114, 401, 915, 2178, 140, 230, 303, 1770, 2432, 259, 866, 277, 1548, 961, 2964, 1510, 72, 467, 925, 962, 297, 366, 2135, 2116, 296, 1148, 2722, 2346, 131, 1539, 457, 1649, 2870, 268, 793, 165, 773, 1203, 188, 320, 1796, 1518, 205, 464, 309, 397, 394, 1515, 692, 497, 1328, 2193, 204, 472, 491, 1182, 1185, 2376, 2214, 491, 2449, 930, 452, 92, 819, 304, 247, 1923, 418, 1857, 1276, 660, 99, 428, 1040, 2592, 431, 2359, 339, 2786, 360, 1247, 1598, 2464, 194, 238, 1960, 195, 39, 1286, 816, 285, 497, 328, 631, 2365, 204, 367, 3280, 3173, 1228, 355, 1550, 2230, 1734, 468, 235, 3793, 80, 371, 234, 2963, 260, 266, 117, 1389, 769, 419, 1586, 195, 1751, 650, 3070, 304, 472, 492, 1609, 252, 2287, 134, 390, 508, 363, 1272, 1722, 278, 917, 167, 2495, 478, 43, 100, 458, 417, 1915, 219, 131, 165, 567, 695, 1303, 535, 547, 517, 710, 814, 1572, 374, 473, 89, 469, 3313, 180, 2562, 240, 1264, 2809, 2746, 1328, 402, 192, 1433, 212, 91, 326, 285, 159, 290, 353, 2569, 168, 365, 3854, 237, 279, 424, 1649, 397, 156, 410, 1741, 636, 1850, 301, 328, 659, 1557, 994, 2901, 577, 206, 267, 144, 239, 327, 1874, 197, 286, 279, 387, 422, 1069, 29, 435, 579, 94, 2384, 203, 2894, 133, 422, 1863, 228, 1117, 74, 359, 455, 130, 682, 155, 1576, 349, 1651, 2213, 2083, 1924, 103, 227, 295, 1215, 3221, 253, 412, 1273, 1382, 1398, 413, 1749, 2790, 199, 2061, 2191, 327, 2648, 150, 1725, 158, 667, 395, 2116, 3432, 177, 298, 173, 759, 1298, 301, 1315, 274, 931, 777, 477, 2803, 292, 1012, 317, 1492, 1499, 2402, 399, 391, 724, 1436, 103, 1683, 328, 1892, 2060, 164, 1220, 299, 893, 353, 289, 838, 566, 1787, 646, 375, 393, 2626, 457, 219, 422, 154, 304, 281, 1678, 1875, 225, 298, 1937, 467, 217, 199, 1370, 447, 287, 314, 298, 114, 481, 455, 1197, 1273, 351, 1324, 2912, 663, 572, 45, 3446, 361, 1717, 91, 3577, 2047, 2835, 1344, 2685, 249, 191, 1167, 736, 585, 3776, 112, 1888, 207, 3050, 164, 3778, 2551, 3749, 1505, 207, 332, 3291, 908, 654, 2651, 301, 1492, 555, 1084, 3959, 441, 3221, 238, 162, 330, 2220, 668, 306, 1590, 2486, 604, 157, 288, 2425, 216, 431, 423, 278, 128, 112, 271, 3112, 2856, 2716, 106, 78, 65, 221, 2729, 2508, 744, 1232, 1950, 95, 421, 368, 389, 1986, 448, 1615, 629, 1893, 1138, 1894, 416, 237, 2264, 351, 134, 414, 3066, 528, 225, 1031, 1749, 214, 3584, 1753, 779, 475, 235, 345, 472, 92, 293, 597, 165, 3288, 277, 786, 433, 704, 3196, 122, 354, 203, 1785, 2430, 314, 108, 74, 433, 2262, 715, 1911, 1408, 2712, 1873, 265, 1444, 462, 1839, 346, 403, 2433, 121, 1646, 141, 1470, 2382, 1490, 409, 361, 359, 1382, 478, 746, 478, 329, 206, 1519, 563, 3402, 3247, 1288, 333, 2408, 677, 456, 467, 498, 796, 1007, 324, 225, 352, 550, 787, 315, 361, 245, 1154, 207, 429, 270, 250, 964, 989, 204, 463, 224, 318, 2420, 1072, 395, 1387, 317, 494, 2265, 1462, 828, 61, 2280, 228, 357, 1741, 385, 1412, 970, 1178, 2886, 1054, 1183, 85, 612, 2600, 185, 260, 1049, 364, 452, 48, 2179, 3127, 275, 1744, 133, 129, 109, 461, 188, 907, 881, 326, 543, 398, 1858, 2004, 1675, 248, 3372, 982, 1190, 948, 2300, 286, 414, 1831, 167, 308, 352, 955, 765, 299, 409, 1627, 1688, 201, 2644, 288, 998, 1320, 427, 2780, 536, 1763, 475, 2460, 386, 2501, 634, 2095, 305, 270, 330, 2783, 568, 330, 428, 400, 425, 2749, 462, 1405, 1551, 379, 472, 1407, 311, 2957, 363, 2878, 3168, 219, 1411, 487, 3590, 260, 1295, 2659, 250, 912, 473, 203, 807, 134, 2306, 194, 230, 1054, 1844, 241, 540, 1743, 296, 941, 272, 132, 313, 304, 117, 40, 960, 452, 718, 461, 452, 440, 113, 386, 91, 492, 632, 209, 3329, 459, 755, 439, 165, 2381, 414, 905, 3756, 622, 1771, 748, 587, 479, 2705, 1125, 3496, 14, 3092, 2157, 1476, 300, 479, 432, 350, 3039, 933, 471, 649, 400, 1893, 3269, 2836, 3634, 1294, 289, 310, 182, 1092, 450, 1913, 110, 398, 1060, 381, 1308, 1534, 2407, 270, 382, 63, 188, 236, 2091, 352, 1333, 415, 2101, 312, 438, 2271, 2717, 2692, 332, 226, 597, 2580, 368, 1720, 256, 405, 1956, 166, 1762, 439, 1272, 1251, 70, 233, 120, 2469, 456, 1109, 125, 341, 1339, 29, 457, 158, 3314, 61, 1866, 3688, 451, 184, 1118, 2117, 282, 2765, 2584, 450, 2370, 102, 481, 3239, 484, 2315, 836, 360, 497, 1917, 1211, 1030, 97, 373, 37, 486, 76, 2924, 3712, 430, 2038, 2383, 3478, 1116, 1828, 1076, 1799, 576, 319, 2294, 1223, 2203, 1152, 228, 1699, 348, 833, 1945, 527, 3297, 1142, 656, 1010, 316, 586, 562, 2118, 477, 185, 74, 293, 344, 362, 127, 382, 469, 2141, 318, 241, 1311, 624, 2982, 2819, 292, 3480, 2710, 161, 475, 940, 350, 231, 3065, 215, 669, 70, 1718, 2334, 484, 378, 1106, 1298, 2166, 202, 245, 647, 166, 461, 363, 621, 140, 785, 966, 2239, 506, 2766, 292, 2373, 1872, 1886, 92, 212, 416, 301, 2298, 356, 3398, 2223, 1639, 1118, 1683, 255, 1705, 2216, 2603, 2706, 2690, 2157, 1095, 635, 1114, 403, 385, 1734, 1130, 273, 402, 166, 2467, 372, 1713, 2419, 3466, 369, 188, 926, 261, 342, 1486, 1271, 783, 1803, 921, 304, 1356, 270, 381, 1979, 591, 1643, 857, 176, 2347, 2444, 1714, 2481, 1254, 1146, 1384, 59, 135, 399, 616, 638, 218, 321, 3153, 650, 218, 248, 80, 212, 1029, 1777, 393, 1303, 1055, 88, 308, 367, 1064, 383, 1320, 3073, 183, 2102, 398, 167, 440, 2928, 368, 431, 2270, 1448, 195, 3146, 312, 2151, 1328, 1775, 425, 225, 1740, 409, 1615, 473, 3262, 1571, 723, 273, 254, 1384, 139, 2558, 286, 1889, 1606, 383, 70, 3212, 87, 174, 1183, 2447, 476, 1018, 1210, 952, 2079, 463, 480, 296, 1126, 272, 109, 2743, 3011, 1140, 349, 2904, 2588, 1467, 250, 2332, 293, 471, 2708, 238, 141, 1382, 1268, 473, 1252, 417, 110, 1192, 1100, 756, 1383, 85, 278, 422, 708, 1697, 1791, 1862, 481, 241, 370, 79, 70, 296, 365, 102, 326, 1739, 695, 500, 3203, 397, 2369, 73, 1238, 90, 1136, 1872, 1866, 1194, 976, 1746, 433, 402, 2001, 1847, 3968, 3243, 1608, 289, 1601, 1484, 190, 483, 1807, 453, 1283, 311, 2227, 1732, 800, 113, 1047, 329, 789, 406, 390, 89, 424, 229, 262, 839, 1146, 820, 295, 1265, 536, 298, 1255, 401, 341, 219, 211, 786, 66, 471, 696, 2126, 199, 1919, 2893, 415, 124, 2701, 3161, 447, 2209, 1083, 1308, 741, 1721, 1903, 3237, 696, 1558, 244, 1975, 1537, 433, 950, 217, 348, 2232, 1306, 164, 139, 1333, 287, 682, 343, 381, 474, 184, 73, 175, 1796, 3039, 1211, 436, 252, 901, 106, 401, 56, 546, 135, 734, 373, 1021, 545, 851, 313, 1940, 310, 1635, 578, 639, 430, 366, 157, 1029, 278, 1375, 2575, 1208, 1484, 339, 2907, 1658, 2049, 2240, 793, 1071, 816, 290, 443, 2525, 476, 339, 908, 1022, 387, 483, 224, 1817, 315, 972, 151, 1172, 232, 1577, 653, 207, 1453, 97, 904, 455, 2386, 139, 1840, 3109, 2948, 134, 2301, 356, 1592, 559, 1461, 539, 152, 469, 632, 3290, 610, 356, 1293, 220, 179, 806, 226, 398, 87, 222, 363, 1188, 64, 401, 2414, 3687, 1661, 1256, 1319, 2742, 326, 1413, 1627, 3199, 330, 297, 121, 365, 823, 437, 858, 374, 332, 469, 190, 276, 372, 1097, 2258, 551, 2046, 130, 2472, 415, 3823, 344, 2851, 1486, 236, 662, 2089, 449, 633, 1340, 132, 2355, 387, 274, 1690, 1623, 758, 2349, 2396, 232, 525, 2667, 65, 1425, 235, 177, 1733, 1541, 300, 3336, 1634, 132, 414, 604, 370, 111, 203, 3705, 242, 251, 1216, 208, 1703, 1655, 666, 3154, 785, 882, 275, 2703, 467, 2296, 461, 470, 2197, 181, 272, 2197, 970, 609, 2996, 210, 2255, 1576, 577, 1070, 1404, 2167, 737, 274, 302, 939, 876, 309, 267, 455, 680, 2932, 119, 1884, 1588, 3776, 239, 56, 322, 3279, 2495, 2103, 239, 2592, 406, 205, 142, 837, 388, 1996, 1204, 1289, 1765, 1393, 396, 493, 817, 1121, 455, 88, 1198, 1825, 2331, 640, 564, 215, 1028, 288, 425, 244, 170, 405, 285, 1148, 2506, 896, 702, 437, 221, 1767, 1470, 3053, 274, 2640, 1290, 1069, 429, 1862, 1161, 735, 380, 1130, 409, 1416, 348, 275, 1793, 1422, 318, 109, 350, 2033, 2471, 89, 340, 1217, 67, 1347, 2652, 1853, 2014, 323, 3003, 1029, 267, 2688, 1869, 322, 1190, 1017, 401, 102, 482, 183, 492, 72, 423, 1244, 405, 426, 312, 116, 159, 3373, 2345, 2581, 450, 355, 917, 1335, 949, 1445, 1653, 91, 1617, 146, 2416, 72, 253, 27, 3231, 47, 351, 268, 39, 229, 1370, 2479, 1429, 275, 3268, 490, 926, 418, 1927, 627, 376, 362, 1779, 1628, 3319, 265, 1270, 3140, 1218, 87, 2074, 1618, 233, 230, 60, 368, 2166, 484, 277, 248, 256, 420, 468, 2871, 1677, 751, 2585, 1556, 361, 428, 503, 1498, 34, 3330, 321, 965, 480, 644, 1200, 1307, 3135, 184, 746, 939, 256, 3486, 465, 1307, 442, 2784, 2562, 470, 142, 833, 237, 176, 136, 1793, 47, 3040, 750, 2396, 963, 1665, 3245, 2159, 908, 308, 3179, 216, 356, 278, 1851, 123, 77, 1339, 383, 218, 1326, 2750, 401, 404, 2857, 173, 417, 132, 170, 336, 386, 162, 1716, 297, 1518, 110, 2867, 1021, 383, 2072, 343, 1528, 887, 900, 73, 332, 962, 439, 295, 450, 169, 474, 262, 205, 894, 520, 2813, 1694, 443, 273, 1028, 2266, 215, 1887, 368, 73, 2504, 69, 1701, 953, 53, 761, 311, 2417, 294, 75, 2025, 399, 1631, 2680, 3327, 748, 495, 219, 1877, 802, 1015, 1477, 829, 316, 231, 304, 309, 3030, 99, 1031, 190, 488, 1258, 1119, 823, 335, 1622, 3113, 285, 2228, 136, 182, 491, 998, 1700, 1579, 3539, 482, 256, 947, 168, 2208, 1706, 1377, 460, 1927, 181, 1175, 267, 333, 1848, 605, 3180, 491, 276, 2054, 2493, 805, 226, 519, 453, 396, 1924, 335, 1981, 85, 708, 1647, 462, 3613, 372, 2156, 309, 438, 466, 130, 493, 762, 697, 1984, 987, 2113, 601, 3210, 180, 479, 1419, 1087, 672, 137, 3237, 83, 1684, 1986, 478, 2111, 153, 1144, 1420, 1337, 314, 2231, 53, 2462, 2202, 371, 3546, 594, 426, 2996, 729, 1529, 1257, 191, 546, 337, 3743, 416, 316, 499, 428, 1285, 192, 2655, 1763, 498, 1538, 3516, 1652, 375, 1759, 302, 222, 2813, 852, 512, 517, 272, 388, 485, 685, 2420, 2021, 1582, 218, 1949, 347, 128, 513, 310, 653, 486, 297, 1269, 344, 2802, 197, 330, 3412, 3035, 2177, 810, 1892, 464, 476, 371, 3678, 3995, 3752, 318, 620, 723, 3699, 241, 2994, 1983, 255, 1357, 446, 1513, 1899, 1324, 429, 1985, 1119, 2185, 690, 3992, 3759, 2409, 1539, 1001, 1980, 3223, 2776, 2465, 1871, 224, 1612, 446, 4093, 466, 349, 970, 3834, 978, 1708, 953, 2438, 2375, 2514, 2918, 1569, 2003, 922, 455, 3703, 614, 3695, 709, 3872, 490, 719, 212, 3416, 487, 2110, 628, 2450, 1508, 861, 3597, 467, 3329, 1155, 1836, 474, 1859, 2174, 1090, 1701, 2581, 3606, 2535, 1660, 469, 374, 2447, 744, 329, 1854, 2309, 401, 1319, 3144, 1808, 1432, 2723, 440, 3668, 223, 431, 3042, 390, 2539, 427, 2403, 283, 3137, 1943, 492, 1237, 3778, 3184, 2480, 1804, 1493, 3472, 2906, 2794, 2675, 578, 2378, 467, 2907, 477, 3355, 1228, 2184, 1468, 1625, 522, 399, 2236, 341, 3911, 3852, 2490, 1986, 2852, 419, 892, 3756, 2212, 909, 2483, 741, 3592, 1330, 1561, 4078, 2529, 441, 3139, 2613, 3310, 591, 1728, 443, 2255, 3454, 3015, 499, 794, 2022, 2436, 2550, 2947, 374, 3464, 463, 1262, 2964, 3149, 1718, 2284, 2656, 385, 1762, 3193, 305, 486, 745, 301, 3014, 1057, 2316, 1125, 1691, 2189, 2950, 3761, 3459, 249, 3052, 3201, 2518, 419, 1186, 2305, 3394, 3138, 2596, 2522, 3314, 2093, 3200, 2385, 1431, 1268, 2469, 3024, 835, 1358, 2465, 2849, 393, 927, 858, 2262, 1253, 273, 3512, 2515, 1816, 2784, 3561, 586, 437, 3961, 1406, 1191, 2211, 3936, 2813, 255, 2299, 3877, 2570, 1961, 245, 2312, 4053, 259, 3640, 1310, 2294, 3670, 3205, 3736, 1381, 3037, 2406, 871, 3261, 396, 269, 134, 2233, 711, 3760, 1506, 2405, 394, 3685, 3860, 3095, 3757, 1915, 1664, 2374, 2412, 1355, 1058, 311, 786, 3829, 758, 403, 500, 2360, 3876, 788, 3068, 3763, 583, 540, 2624, 1795, 210, 254, 1295, 3243, 783, 2341, 322, 378, 3889, 1072, 3109, 365, 2313, 4048, 3330, 628, 3663, 3529, 863, 2397, 471, 376, 3777, 2623, 2351, 1931, 2060, 352, 889, 957, 300, 1428, 387, 359, 2269, 2516, 3216, 3612, 3246, 3349, 2736, 2634, 458, 2309, 467, 3254, 3792, 1705, 2435, 3356, 2199, 293, 3229, 295, 2050, 364, 2505, 1898, 1557, 3747, 3868, 3021, 2230, 428, 3784, 2439, 1971, 1420, 3171, 290, 1455, 3064, 442, 1131, 2208, 3566, 896, 2948, 367, 274, 2449, 1179, 1225, 2677, 2205, 3783, 3589, 1104, 2261, 2137, 1848, 1440, 2380, 4041, 3489, 3986, 3088, 2090, 3557, 2973, 526, 1023, 3524, 3675, 355, 2337, 3118, 2308, 2017, 282, 871, 2654, 594, 1686, 345, 2622, 1057, 2075, 453, 1132, 4054, 1468, 2033, 860, 3078, 1287, 260, 887, 3621, 105, 115, 841, 3420, 656, 2280, 1451, 1001, 1525, 389, 616, 3585, 365, 480, 2121, 3391, 1113, 2530, 257, 1962, 431, 849, 69, 2330, 3346, 2731, 3774, 1091, 429, 3711, 2881, 1884, 345, 1157, 268, 3558, 2250, 1026, 2239, 319, 1977, 2494, 3383, 1736, 1543, 364, 1739, 3806, 499, 1671, 3849, 524, 502, 232, 2179, 475, 3665, 1449, 3721, 3680, 2643, 2051, 1225, 2053, 3872, 2854, 2136, 516, 130, 1573, 4084, 1463, 1316, 834, 2061, 3771, 1426, 2764, 659, 329, 2015, 3512, 1366, 435, 361, 2578, 3365, 1368, 3763, 3739, 3185, 331, 1155, 449, 4004, 641, 2429, 360, 2863, 1955, 84, 1159, 285, 3253, 2077, 3579, 346, 2421, 3101, 446, 2325, 3090, 3665, 3706, 760, 3734, 2272, 3139, 651, 2546, 2251, 343, 1852, 643, 1765, 456, 699, 2073, 4043, 486, 456, 3587, 395, 2851, 1142, 2272, 1286, 2172, 1396, 837, 2036, 1146, 1120, 1446, 1271, 576, 2954, 424, 2586, 2790, 2550, 554, 3005, 2181, 2678, 3692, 2212, 3627, 1168, 370, 3960, 2235, 382, 2156, 3255, 1688, 3931, 3379, 2509, 1560, 2649, 3927, 391, 584, 1317, 4028, 299, 157, 327, 717, 3471, 474, 1727, 771, 2703, 2561, 2529, 2547, 198, 1974, 1529, 3786, 3461, 199, 1745, 198, 294, 2175, 2861, 325, 684, 1482, 1136, 3965, 1847, 752, 2486, 4061, 1158, 2674, 382, 2750, 2708, 1667, 3932, 2403, 3853, 431, 3835, 3684, 117, 3489, 3174, 1195, 3544, 2744, 2460, 2056, 3476, 2697, 408, 3156, 3131, 3070, 2633, 1263, 2586, 273, 3689, 173, 3971, 1207, 3871, 412, 872, 3056, 303, 4095, 1484, 714, 1522, 2451, 916, 4053, 2443, 3053, 910, 2213, 3197, 292, 195, 4029, 915, 3018, 2753, 577, 2952, 652, 1229, 1938, 1349, 186, 2448, 2515, 3259, 3893, 2211, 2860, 3894, 1389, 4077, 3241, 2445, 316, 345, 3335, 996, 2161, 3798, 3598, 721, 1032, 1068, 401, 707, 3094, 1318, 1185, 4094, 1474, 685, 609, 4036, 3263, 303, 3209, 2857, 246, 4075, 1593, 1673, 3024, 740, 3175, 1902, 529, 2300, 1352, 1636, 3929, 3480, 652, 287, 461, 3212, 708, 3122, 2377, 319, 1563, 1059, 3918, 2952, 2222, 3355, 197, 3802, 3333, 711, 3882, 1595, 2676, 1940, 2791, 1320, 350, 3408, 1792, 600, 3471, 1042, 3938, 772, 3465, 1553, 284, 1176, 1441, 2129, 3265, 1859, 2543, 1451, 3293, 1511, 622, 589, 448, 314, 269, 2332, 1586, 1276, 2858, 3514, 2718, 3879, 404, 2661, 3884, 2834, 1309, 317, 3477, 296, 2324, 469, 2782, 2577, 451, 2036, 625, 2573, 3690, 2124, 2329, 489, 3555, 3344, 3595, 784, 2986, 359, 1181, 3273, 444, 367, 2124, 2455, 2401, 2714, 886, 1979, 648, 451, 3000, 2783, 633, 3341, 3778, 2692, 2524, 1661, 3201, 1229, 272, 1810, 1149, 1133, 406, 1409, 1671, 552, 1654, 3186, 2122, 2845, 869, 435, 3432, 2083, 3623, 2599, 4021, 296, 3639, 2879, 1579, 3645, 3044, 3190, 1215, 3570, 2608, 721, 2170, 161, 356, 1999, 354, 4027, 1391, 1827, 211, 2186, 298, 2622, 482, 2935, 1123, 862, 2943, 3198, 241, 279, 1107, 2559, 3157, 463, 2320, 1888, 1461, 3537, 2545, 1402, 889, 3151, 2204, 1454, 2917, 407, 1340, 770, 1570, 505, 1061, 280, 2189, 2695, 1219, 1543, 3452, 3179, 1323, 396, 1474, 3244, 2497, 890, 2264, 3671, 3317, 2134, 3040, 3428, 2705, 2077, 1544, 3033, 1662, 407, 2706, 2820, 2444, 3167, 985, 3673, 571, 1195, 2505, 2494, 535, 3772, 391, 167, 202, 3650, 3256, 2201, 1256, 2256, 430, 1428, 3336, 1762, 1859, 631, 3095, 297, 2984, 1243, 2735, 3347, 336, 363, 1065, 350, 2304, 2800, 3946, 550, 2509, 258, 1343, 3313, 474, 582, 329, 286, 1689, 972, 2841, 320, 408, 2161, 3184, 165, 1002, 429, 2146, 3091, 1486, 3836, 538, 3237, 3453, 1044, 317, 3333, 1896, 286, 2883, 1747, 3077, 1000, 2774, 319, 2718, 244, 346, 1369, 2699, 2620, 321, 2118, 470, 681, 477, 565, 320, 558, 2214, 589, 219, 3866, 2777, 2654, 2526, 3775, 1805, 2923, 986, 961, 3527, 2668, 3363, 393, 1025, 1730, 2773, 1823, 1321, 3699, 2970, 3153, 2288, 2989, 2227, 1808, 263, 1918, 3753, 437, 448, 2637, 334, 2619, 189, 223, 324, 650, 2150, 488, 3185, 3003, 1687, 3021, 501, 341, 4064, 494, 101, 4093, 2045, 675, 767, 447, 2732, 3556, 1452, 1233, 3366, 1917, 2755, 4058, 2278, 1129, 1976, 2704, 2344, 2840, 293, 495, 701, 1016, 2242, 279, 342, 2066, 1342, 2477, 2447, 2248, 378, 701, 1192, 3811, 2196, 376, 3162, 1825, 3677, 2472, 2600, 368, 355, 2832, 3978, 3668, 1871, 2466, 1491, 491, 1245, 2377, 309, 3941, 3851, 3511, 131, 119, 364, 1389, 2055, 1997, 1931, 2081, 260, 305, 324, 1852, 1200, 3487, 3893, 1944, 2237, 2322, 675, 1800, 2683, 85, 2730, 1695, 3808, 3563, 655, 299, 454, 137, 2618, 3820, 3083, 202, 961, 2656, 3901, 552, 2716, 3659, 397, 4014, 1882, 2649, 278, 3585, 1005, 3648, 1427, 1712, 3561, 3424, 671, 914, 2972, 65, 119, 306, 1722, 883, 3478, 2864, 2415, 3418, 438, 1325, 2339, 437, 390, 336, 1067, 584, 3412, 1383, 366, 3007, 2685, 3656, 3177, 3803, 903, 3535, 1780, 3922, 1318, 3259, 1603, 2148, 245, 1630, 3259, 2367, 1810, 2088, 3424, 241, 339, 483, 1478, 2766, 2162, 4042, 162, 1172, 343, 4034, 755, 2805, 1963, 1589, 2912, 3054, 3053, 3303, 2949, 446, 418, 905, 992, 227, 1052, 685, 557, 2297, 253, 3487, 1432, 484, 169, 2195, 4022, 932, 152, 370, 1433, 3983, 3369, 361, 2069, 1941, 1682, 2082, 403, 1873, 512, 776, 930, 2065, 1312, 231, 1051, 2507, 3567, 2273, 2413, 173, 1909, 3019, 2841, 3794, 3189, 1626, 975, 774, 1087, 2220, 610, 452, 262, 853, 4076, 2674, 2040, 1478, 1302, 321, 1848, 2981, 845, 353, 308, 1235, 3069, 3370, 1222, 2056, 3441, 3360, 3742, 3045, 358, 2599, 3943, 2786, 902, 3641, 971, 859, 4014, 1787, 479, 443, 2279, 1408, 3263, 1929, 3944, 2146, 2601, 3200, 463, 3781, 3155, 3523, 2193, 3256, 274, 2083, 3304, 2260, 1782, 698, 1495, 2610, 2420, 309, 3282, 1337, 2435, 2768, 493, 842, 2575, 3361, 1712, 371, 294, 1353, 1867, 2599, 603, 3582, 3312, 3320, 3171, 1841, 1329, 2325, 2997, 3352, 1282, 599, 1719, 3953, 2958, 2467, 216, 1564, 1259, 3765, 471, 3115, 3482, 3360, 3978, 3575, 1851, 3204, 1322, 2717, 4050, 3018, 1685, 2594, 1465, 1007, 2601, 1517, 2627, 3140, 2398, 664, 488, 416, 2653, 4012, 1620, 2703, 3218, 1388, 1835, 3157, 456, 1748, 2706, 1713, 2225, 200, 1114, 1922, 3435, 3105, 602, 2367, 3886, 1704, 3898, 3962, 2931, 2417, 957, 1964, 3642, 3714, 1794, 2931, 3621, 420, 2488, 3810, 2328, 2626, 3348, 3266, 1916, 3575, 166, 632, 2105, 950, 997, 563, 1252, 1522, 4065, 288, 3425, 3230, 2847, 312, 3654, 179, 2698, 2909, 2554, 623, 3810, 3883, 2615, 341, 810, 1805, 373, 2244, 4084, 200, 184, 3627, 459, 296, 3172, 3869, 3717, 239, 1750, 2257, 1943, 1332, 4057, 1450, 3545, 365, 756, 1287, 1142, 3749, 337, 382, 2391, 2992, 3619, 2113, 470, 1822, 3469, 2879, 3241, 115, 1964, 118, 3530, 3885, 1412, 3443, 3700, 3695, 1681, 2094, 1031, 1530, 356, 3383, 2634, 1387, 2355, 2921, 791, 2750, 676, 3641, 991, 2541, 447, 3434, 1763, 418, 3474, 2948, 532, 415, 3649, 2544, 1764, 3434, 3676, 1361, 2775, 1797, 1314, 2625, 286, 487, 372, 2522, 2840, 429, 1392, 3418, 3536, 1911, 1662, 2045, 845, 1059, 139, 3953, 3647, 877, 1624, 398, 3566, 433, 2715, 1321, 2362, 3555, 180, 218, 2399, 131, 1163, 2868, 3142, 2235, 3256, 875, 1163, 3299, 433, 885, 381, 2853, 1134, 3669, 2671, 2100, 2442, 1284, 3806, 3103, 485, 3717, 3035, 4040, 608, 354, 462, 1151, 3619, 623, 463, 3713, 196, 3359, 462, 3182, 2454, 488, 357, 3217, 172, 271, 3699, 1759, 3788, 768, 3441, 3494, 1263, 3332, 2168, 3841, 1644, 2901, 484, 1368, 246, 117, 2233, 850, 440, 3475, 487, 3844, 717, 3247, 3870, 702, 1238, 1643, 1951, 1830, 3758, 1088, 221, 362, 3840, 1298, 2681, 1431, 2917, 3741, 3165, 2983, 2625, 2140, 2929, 413, 3298, 2403, 2378, 3584, 3837, 1753, 1534, 2713, 897, 2305, 1134, 883, 258, 393, 2903, 3272, 3255, 1544, 4020, 307, 2231, 2114, 1012, 3666, 3172, 1255, 1325, 2789, 3744, 3973, 348, 3152, 2656, 3615, 754, 3072, 2761, 248, 2317, 3934, 287, 4091, 3773, 695, 4036, 3878, 771, 3704, 181, 2331, 3963, 295, 102, 3406, 2590, 4054, 323, 2535, 176, 946, 3235, 2768, 811, 1346, 2868, 3682, 763, 143, 429, 2112, 469, 2026, 1322, 2888, 541, 422, 2143, 452, 227, 2492, 2789, 2491, 479, 2097, 1633, 1281, 1604, 1232, 3856, 2525, 2266, 1715, 1866, 3666, 416, 268, 2699, 893, 69, 4005, 728, 2635, 686, 1424, 253, 3951, 1112, 3538, 530, 1956, 2120, 452, 2875, 3029, 4096, 3723, 2048, 1243, 1185, 2099, 3999, 282, 2673, 2481, 833, 1037, 418, 1830, 394, 3788, 1820, 1913, 3160, 1682, 3116, 3417, 3236, 2310, 1213, 378, 416, 1647, 3414, 1333, 291, 3453, 3719, 475, 3301, 256, 681, 2013, 2612, 348, 2884, 1443, 3132, 282, 1436, 2054, 2114, 409, 2492, 321, 454, 2846, 257, 716, 3322, 2414, 3849, 1930, 3117, 3038, 2858, 2734, 2481, 3886, 3386, 2730, 1174, 3816, 1181, 2908, 1173, 587, 427, 1738, 1138, 1303, 3448, 653, 2288, 3251, 1081, 2519, 2468, 481, 1471, 359, 2165, 2489, 2687, 3493, 2680, 354, 3163, 1438, 411, 3103, 2133, 3913, 2350, 254, 3777, 314, 320, 645, 254, 981, 382, 413, 2888, 3100, 485, 1812, 1509, 1239, 231, 1838, 395, 1798, 1618, 441, 665, 1323, 2307, 2349, 669, 402, 2648, 3806, 2030, 2277, 588, 3974, 2454, 1766, 737, 2555, 2798, 755, 1562, 303, 2411, 383, 3205, 2542, 3058, 4092, 770, 2175, 3023, 263, 3449, 1889, 1278, 3880, 411, 1367, 2993, 3935, 2363, 277, 440, 260, 640, 2640, 3350, 379, 3604, 1052, 521, 300, 3407, 344, 1649, 1356, 2759, 3006, 2537, 1953, 3863, 3644, 172, 3143, 3319, 3815, 1911, 3220, 1108, 885, 2439, 100, 1300, 3833, 2833, 457, 2831, 1755, 1920, 2318, 3123, 1580, 3275, 3991, 2453, 703, 693, 481, 694, 415, 3915, 1174, 1930, 2360, 1893, 1124, 1224, 2526, 2973, 3761, 592, 3921, 310, 4008, 3951, 434, 2092, 2073, 2872, 3941, 2277, 424, 455, 2243, 2192, 2956, 1231, 3437, 2238, 3099, 3597, 482, 1438, 1014, 1041, 2563, 3467, 2018, 3816, 197, 993, 1262, 2842, 1857, 277, 3519, 1572, 2727, 2288, 3511, 2676, 2724, 2375, 2592, 1082, 2476, 4072, 1380, 3906, 3819, 109, 3475, 1988, 1662, 1939, 2485, 929, 3683, 1496, 2695, 483, 1761, 234, 621, 2024, 2761, 3964, 1829, 2546, 3283, 550, 380, 1913, 2725, 454, 794, 3673, 2410, 276, 2614, 1294, 2841, 426, 2553, 813, 2959, 2106, 2050, 1535, 2553, 2896, 1316, 2902, 187, 1462, 822, 2531, 408, 414, 2257, 962, 481, 3230, 749, 3311, 3276, 3812, 142, 3967, 3737, 3436, 1395, 1616, 3146, 1806, 357, 1312, 3262, 760, 3514, 1611, 2573, 1906, 4071, 3782, 4040, 3485, 2513, 2875, 1723, 3564, 3752, 160, 584, 931, 2327, 2082, 590, 4090, 158, 489, 3804, 2545, 1078, 923, 1410, 3980, 3754, 234, 1557, 190, 768, 1621, 4053, 3119, 1508, 498, 2522, 478, 1685, 2120, 4017, 3052, 2848, 469, 1491, 439, 1069, 2639, 1633, 338, 1515, 715, 453, 666, 4049, 3796, 1092, 472, 3438, 1354, 807, 1394, 737, 168, 1174, 1063, 2229, 2960, 2981, 380, 3698, 1735, 412, 3033, 728, 4056, 3979, 398, 325, 552, 419, 1902, 726, 3548, 2002, 400, 3464, 3574, 3331, 1559, 3963, 412, 1274, 951, 988, 2071, 683, 2074, 287, 4048, 3146, 374, 1306, 3792, 3067, 1508, 410, 476, 2368, 3739, 549, 3696, 2240, 3267, 3488, 2191, 3914, 859, 655, 332, 482, 1340, 2745, 276, 1581, 2104, 386, 2626, 1171, 3773, 710, 3786, 1244, 3396, 1975, 1648, 2192, 3548, 2709, 1275, 2796, 276, 4010, 305, 3333, 2459, 842, 1742, 3719, 2531, 1800, 3694, 3171, 2453, 1633, 1478, 227, 423, 2001, 403, 3496, 1531, 2499, 1769, 209, 449, 2473, 87, 4048, 3233, 3379, 449, 3923, 3658, 815, 3547, 1900, 1177, 1754, 626, 3212, 318, 1088, 1403, 2122, 1011, 164, 2738, 2877, 920, 2130, 2169, 3470, 448, 3821, 2985, 935, 2281, 242, 3049, 707, 3873, 2399, 1301, 451, 3206, 3820, 484, 1256, 3039, 3477, 855, 955, 2133, 2249, 2502, 347, 1098, 2758, 4037, 1378, 4092, 2631, 150, 2428, 1216, 2844, 438, 947, 2611, 3672, 574, 2799, 2914, 2663, 2536, 3094, 539, 3667, 2913, 281, 2886, 194, 1677, 2086, 974, 1073, 2386, 1980, 1716, 480, 414, 803, 782, 3008, 741, 1362, 2682, 3071, 270, 495, 1326, 2971, 2647, 3282, 3252, 732, 3308, 1251, 910, 260, 1764, 434, 935, 2057, 1592, 3862, 1362, 2584, 210, 1905, 1991, 3229, 1624, 2715, 983, 2889, 411, 1687, 2125, 2471, 248, 284, 2515, 224, 97, 2722, 1020, 484, 2120, 1206, 1135, 3396, 247, 1209, 3291, 3419, 1457, 2690, 3456, 2810, 3762, 2080, 324, 3870, 83, 691, 327, 3038, 282, 1115, 183, 2693, 827, 1784, 1666, 3129, 3399, 1369, 3375, 2544, 554, 808, 2185, 2217, 2370, 2310, 1709, 806, 1495, 2641, 2051, 1826, 3112, 308, 2916, 1180, 340, 981, 2393, 467, 3376, 333, 179, 240, 3420, 2638, 2733, 2867, 1085, 760, 1245, 1090, 1617, 3003, 1969, 146, 498, 3501, 1124, 3701, 372, 3919, 3387, 2778, 1454, 1261, 2660, 3780, 1003, 107, 1111, 417, 375, 596, 509, 3076, 1802, 420, 4033, 489, 387, 987, 3693, 442, 303, 3225, 3110, 1994, 2093, 325, 383, 2218, 2077, 2236, 4043, 779, 273, 1909, 543, 318, 2364, 3393, 368, 391, 479, 1535, 3581, 1277, 270, 1002, 835, 133, 3591, 406, 3380, 2057, 1506, 2751, 231, 3216, 1445, 1434, 2796, 1020, 3788, 481, 2480, 388, 3620, 3148, 3193, 2541, 672, 418, 777, 3910, 3451, 1921, 2779, 2323, 3433, 3468, 493, 3819, 3090, 2323, 3341, 2981, 453, 3292, 347, 2097, 280, 3427, 2400, 3482, 3539, 185, 876, 288, 1105, 2011, 1114, 2433, 2924, 1050, 2441, 480, 3793, 348, 2788, 1638, 2556, 2623, 3861, 1710, 3566, 2919, 2390, 2501, 2589, 2103, 3662, 2552, 172, 3750, 2709, 1003, 1050, 798, 2429, 3494, 2983, 1202, 2712, 1137, 3380, 752, 340, 991, 169, 863, 726, 2160, 2408, 345, 457, 2085, 2482, 252, 334, 3622, 1334, 802, 1490, 959, 203, 2815, 880, 3348, 2608, 380, 1558, 3876, 1642, 1692, 235, 3517, 386, 2267, 291, 3828, 2873, 3655, 2392, 2843, 447, 662, 2445, 1642, 1007, 3942, 216, 3396, 1270, 3546, 423, 4078, 3605, 4055, 2743, 1229, 353, 3890, 2319, 1926, 2858, 2047, 2229, 855, 4068, 3989, 1088, 3406, 476, 277, 457, 2348, 1161, 2996, 1726, 3547, 1694, 636, 497, 2930, 3034, 1040, 1249, 318, 325, 865, 1369, 3637, 3348, 3437, 798, 397, 1402, 426, 2764, 3684, 2609, 2574, 3515, 1459, 1432, 1445, 464, 2191, 2946, 2456, 2496, 3116, 2938, 2889, 2139, 839, 3902, 424, 183, 451, 3087, 2343, 436, 1065, 2279, 2020, 3629, 3720, 1355, 504, 284, 360, 1150, 271, 705, 2112, 318, 3626, 305, 2434, 1524, 1098, 3322, 1903, 2532, 322, 2538, 4007, 348, 200, 221, 1577, 4024, 1131, 2354, 3061, 3001, 4011, 1194, 1729, 949, 1938, 1102, 1351, 3650, 220, 3639, 255, 1715, 3505, 3191, 416, 401, 710, 2821, 1070, 3580, 2387, 389, 241, 1976, 1995, 3445, 3415, 2939, 814, 4080, 722, 3388, 1221, 1341, 994, 3702, 474, 263, 1845, 749, 1156, 378, 1106, 451, 2602, 2183, 2381, 2698, 445, 3440, 3130, 338, 832, 284, 360, 2898, 2326, 407, 1803, 412, 1566, 3463, 2058, 1739, 1433, 2557, 426, 465, 3363, 2194, 2796, 2602, 3588, 3858, 1219, 2099, 458, 984, 3935, 224, 840, 2818, 868, 1184, 442, 3390, 3456, 486, 2670, 924, 428, 2168, 1236, 1695, 3028, 1151, 824, 612, 1981, 3442, 3881, 1676, 275, 3991, 3041, 1223, 2604, 2726, 722, 438, 2511, 396, 452, 2292, 3630, 1463, 1427, 471, 3068, 2755, 1053, 2786, 305, 1904, 2566, 2922, 3288, 870, 3898, 2542, 2552, 1004, 2519, 1239, 2856, 1541, 1507, 1448, 3297, 844, 409, 463, 2196, 1752, 3295, 2401, 1489, 1757, 381, 1285, 2399, 1197, 3394, 3722, 4086, 3514, 2773, 2252, 489, 3949, 645, 4011, 3565, 277, 1394, 2485, 329, 2677, 1336, 3584, 934, 1041, 2574, 2338, 425, 840, 2993, 985, 1196, 1123, 852, 344, 376, 342, 63, 1008, 928, 2804, 1094, 1977, 2000, 193, 409, 151, 1413, 1708, 435, 3373, 925, 1184, 813, 391, 2382, 734, 1096, 3969, 934, 1942, 2373, 864, 1973, 3012, 1222, 3613, 226, 3494, 2788, 2236, 352, 1447, 2961, 3681, 4009, 3750, 2873, 1603, 2037, 2658, 3378, 3208, 3988, 1479, 966, 1059, 2397, 3922, 464, 2285, 1101, 2205, 3272, 1319, 2704, 2286, 3833, 1148, 2944, 270, 404, 1438, 2976, 818, 2480, 2361, 3703, 1331, 1107, 3799, 3577, 2900, 347, 1849, 2423, 3347, 429, 3428, 607, 494, 2103, 378, 1904, 1749, 4013, 1481, 292, 1799, 444, 3536, 1451, 2036, 374, 357, 2019, 101, 1928, 1466, 3610, 90, 2072, 3728, 717, 245, 1361, 3276, 3982, 2920, 4077, 519, 2693, 106, 750, 3706, 489, 3949, 1689, 383, 2662, 3550, 2754, 2379, 108, 630, 142, 1685, 2295, 3441, 3890, 1590, 2895, 2766, 3839, 1821, 3162, 2088, 2334, 1854, 341, 2301, 1755, 2864, 1774, 3618, 3210, 2012, 1413, 2571, 1159, 3317, 2770, 1920, 1209, 2915, 1623, 2016, 2446, 1300, 323, 106, 849, 491, 1625, 390, 462, 2978, 3797, 399, 373, 3362, 1345, 3294, 2824, 406, 3661, 3777, 467, 1846, 2136, 2590, 243, 3174, 393, 2499, 192, 3405, 3138, 944, 744, 2115, 3404, 2363, 372, 2497, 1585, 306, 1885, 575, 791, 1015, 1610, 1614, 2448, 1991, 2995, 615, 2575, 4062, 1932, 315, 355, 1870, 396, 4085, 606, 4078, 3340, 3687, 1536, 3362, 945, 1743, 2464, 3079, 3225, 3338, 2819, 1673, 2520, 1690, 697, 1419, 2166, 2941, 3657, 829, 2389, 3034, 378, 3838, 3205, 3858, 2180, 1162, 1220, 465, 2143, 3363, 2263, 1925, 3775, 2474, 2250, 2918, 361, 629, 3933, 1233, 1967, 2614, 900, 3509, 3845, 2958, 2781, 2312, 1902, 2333, 328, 183, 1127, 3760, 868, 293, 407, 4059, 3316, 219, 2578, 311, 2570, 1925, 3266, 547, 3707, 4032, 2513, 434, 1834, 2182, 872, 1672, 3722, 432, 2141, 2975, 359, 630, 3896, 824, 3050, 3240, 2663, 2042, 3240, 847, 2374, 2078, 1965, 1144, 2506, 3045, 421, 2091, 3326, 3466, 1950, 1196, 547, 377, 2928, 236, 2655, 365, 2283, 3055, 396, 79, 3720, 2459, 646, 2867, 3178, 497, 2969, 2564, 1217, 2188, 1614, 515, 497, 2620, 455, 182, 2853, 3845, 3813, 2132, 2916, 2782, 1929, 1316, 3944, 1313, 1583, 3491, 494, 234, 2018, 1535, 1375, 2745, 450, 1775, 1292, 3947, 2617, 1530, 2639, 2326, 2125, 1401, 2774, 2017, 2395, 1079, 797, 1578, 403, 318, 773, 483, 1895, 1193, 3047, 3513, 1665, 3647, 446, 3233, 222, 2337, 834, 3268, 3753, 2304, 2596, 2450, 2816, 1499, 446, 3453, 2248, 3972, 3317, 2165, 600, 3232, 1742, 700, 675, 1811, 1137, 1907, 2686, 2719, 2134, 829, 495, 3865, 2129, 2126, 432, 4070, 119, 2609, 768, 333, 958, 1768, 2801, 422, 3027, 2217, 2228, 2080, 1068, 481, 291, 225, 1386, 121, 1150, 2159, 2631, 237, 2291, 3770, 2505, 444, 3715, 3875, 778, 3060, 3125, 2362, 2154, 2726, 2275, 3957, 740, 2760, 1404, 2893, 1622, 1280, 2633, 338, 693, 2627, 3007, 2389, 249, 3022, 292, 1540, 1833, 426, 1134, 362, 187, 424, 2032, 3209, 1400, 485, 416, 2933, 132, 482, 318, 569, 1363, 1630, 1020, 1236, 3544, 1357, 706, 3743, 1100, 2433, 1355, 2819, 1392, 374, 897, 1935, 1278, 2607, 3081, 2253, 1918, 1113, 4075, 2569, 2437, 2340, 3081, 1359, 1795, 723, 507, 3583, 3409, 1674, 3758, 2259, 1332, 3032, 1230, 3724, 3080, 2476, 553, 1398, 255, 2226, 2695, 436, 2894, 924, 1232, 1758, 3010, 1849, 2758, 3148, 3222, 154, 2362, 435, 1964, 1497, 2197, 3058, 478, 3690, 3052, 3868, 1503, 460, 3779, 1970, 663, 2770, 298, 2053, 1045, 407, 2449, 1657, 135, 484, 2803, 4069, 2378, 1373, 2163, 3417, 339, 1820, 3950, 3838, 446, 372, 882, 1071, 2775, 1322, 1909, 433, 936, 1122, 212, 454, 1837, 2026, 3412, 1406, 2730, 382, 3843, 1033, 3891, 475, 3174, 2039, 344, 2478, 2152, 1515, 895, 3226, 481, 3387, 940, 373, 3537, 2771, 1128, 3407, 3560, 2063, 2763, 3602, 1165, 2758, 414, 1464, 1928, 3705, 980, 3846, 3632, 1353, 697, 831, 1127, 409, 250, 3791, 1428, 369, 3378, 488, 3525, 1822, 1751, 4002, 2163, 2741, 370, 3368, 497, 3574, 1383, 1180, 2911, 1942, 384, 2891, 1167, 1310, 3219, 331, 2679, 3232, 2283, 3385, 2156, 3051, 3362, 1264, 498, 3978, 1782, 366, 914, 1396, 2616, 3671, 1368, 2968, 1958, 3938, 317, 120, 392, 3385, 2632, 2303, 1818, 3973, 1380, 261, 148, 2219, 656, 2404, 3105, 1771, 3544, 2180, 2936, 1476, 1376, 3465, 677, 255, 2342, 1977, 2776, 2642, 2032, 326, 2149, 1562, 1226, 1218, 490, 462, 542, 1520, 3612, 1668, 2532, 1179, 291, 1828, 1646, 4012, 392, 3585, 1729, 2106, 831, 2653, 3099, 1102, 388, 2427, 1976, 1446, 1093, 1869, 2113, 2681, 1133, 2406, 1263, 2095, 2982, 1099, 437, 2729, 406, 4083, 2738, 3817, 2470, 1511, 4050, 1571, 332, 3248, 2210, 329, 1249, 2579, 704, 2002, 1605, 328, 1360, 200, 3250, 2011, 471, 1376, 476, 175, 533, 3985, 3624, 2772, 542, 1299, 1169, 1575, 1349, 2598, 3086, 316, 2358, 286, 2696, 100, 489, 183, 3953, 230, 668, 2538, 60, 2335, 2147, 3021, 2198, 1661, 3731, 1274, 2144, 1257, 2885, 1353, 945, 1782, 2781, 2647, 3405, 581, 1781, 3386, 2049, 436, 2567, 1990, 330, 266, 148, 2258, 3762, 1951, 300, 471, 335, 476, 1367, 3451, 2018, 1761, 2588, 2892, 1071, 578, 1823, 1947, 283, 3408, 3501, 2894, 654, 2041, 1437, 1494, 4041, 275, 1219, 2209, 261, 3686, 1553, 2411, 572, 3351, 2960, 968, 1270, 3097, 259, 268, 2059, 3177, 163, 3634, 1679, 2410, 1706, 1721, 3419, 2852, 2024, 2621, 3614, 2967, 727, 1360, 2001, 250, 269, 2697, 1390, 1814, 1364, 3423, 976, 485, 3461, 1750, 1426, 556, 1121, 500, 1066, 435, 3300, 639, 2270, 266, 3733, 2659, 1169, 2866, 618, 1565, 3275, 3928, 1774, 747, 1839, 2870, 340, 454, 225, 968, 419, 353, 2012, 764, 3220, 3115, 775, 997, 2145, 2463, 958, 3231, 1552, 321, 2825, 309, 2506, 1596, 201, 3150, 464, 2509, 799, 119, 3516, 433, 2444, 2835, 3546, 3422, 1709, 743, 2783, 913, 2693, 3046, 1201, 2551, 3905, 427, 375, 3390, 404, 1036, 448, 938, 2938, 2865, 1570, 1604, 1864, 3300, 450, 2242, 2640, 1857, 586, 1277, 3622, 3669, 3850, 2105, 264, 1672, 739, 2815, 2237, 2226, 1109, 2234, 351, 4071, 1160, 1208, 2220, 3615, 4086, 1503, 477, 2890, 3783, 3520, 496, 2885, 2171, 412, 3809, 470, 3059, 430, 3509, 1686, 496, 3661, 393, 2410, 495, 3897, 561, 1104, 689, 1760, 1260, 2887, 2645, 3286, 2169, 3734, 856, 2665, 3216, 1189, 1048, 369, 3257, 302, 2882, 3005, 828, 2926, 1844, 2135, 2892, 2463, 1644, 2878, 240, 2834, 3102, 1650, 3824, 1066, 1804, 3678, 3240, 2548, 2849, 474, 3692, 358, 3765, 2073, 1772, 2871, 902, 2021, 249, 2869, 2601, 2527, 2203, 3968, 2468, 381, 2371, 1158, 398, 3903, 943, 1558, 3554, 1816, 2760, 1241, 1500, 3312, 3605, 1916, 322, 2437, 1504, 138, 1008, 1914, 1643, 873, 468, 1325, 359, 3696, 244, 2313, 3668, 3981, 3106, 2088, 3244, 607, 490, 1626, 0, 0, 3835, 334, 736, 2684, 0, 3779, 3425, 3389, 349, 3384, 2052, 2589, 4007, 2760, 559, 3175, 3028, 0, 1046, 0, 0, 2990, 0, 3278, 3211, 0, 0, 0, 3063, 3243, 2427, 2194, 0, 848, 642, 3832, 0, 3011, 2670, 2826, 2649, 3378, 3278, 3161, 2921, 3822, 3903, 877, 0, 1281, 0, 2934, 0, 1860, 1091, 459, 0, 1495, 3293, 4033, 2740, 3757, 1164, 0, 570, 0, 3759, 2475, 767, 0, 2400, 1843, 2777, 0, 0, 2793, 2975, 1305, 1231, 3372, 2451, 615, 2871, 3874, 1899, 1435, 3263, 1877, 3228, 3273, 3525, 0, 471, 458, 0, 1080, 2816, 2741, 0, 938, 0, 0, 496, 3208, 4072, 0, 0, 3632, 2014, 0, 3765, 3186, 2930, 1789, 3455, 1597, 0, 1608, 0, 0, 0, 2392, 3940, 2514, 1111, 4044, 1338, 0, 0, 0, 2807, 0, 1372, 2068, 3775, 2563, 2253, 0, 1552, 0, 3690, 2685, 0, 3383, 1660, 3906, 3275, 0, 2838, 2483, 1103, 2538, 0, 3611, 3559, 811, 2027, 0, 3338, 3648, 435, 0, 627, 1746, 3250, 0, 2184, 0, 0, 1617, 3554, 0, 490, 1559, 2740, 415, 0, 1586, 3301, 1594, 3895, 3436, 3588, 0, 0, 1638, 0, 0, 0, 2979, 2523, 2461, 0, 0, 0, 2877, 3748, 0, 3533, 2791, 2354, 2510, 2682, 0, 1896, 1944, 0, 2968, 1948, 2108, 2785, 3353, 1624, 508, 0, 2767, 1946, 3694, 0, 1463, 551, 0, 2339, 2058, 2424, 0, 3345, 456, 0, 0, 0, 1995, 248, 3958, 0, 276, 0, 0, 3501, 4019, 0, 0, 3814, 0, 3234, 1004, 3807, 1090, 2937, 384, 0, 3972, 0, 3540, 0, 920, 0, 0, 3625, 0, 3402, 0, 2589, 3496, 2241, 1674, 379, 1905, 0, 2497, 1969, 2394, 0, 0, 1203, 3950, 0, 2457, 988, 3867, 3988, 343, 884, 1839, 0, 2833, 3402, 500, 1971, 0, 3055, 0, 1597, 0, 0, 0, 888, 0, 0, 3098, 0, 472, 490, 0, 0, 0, 2324, 3904, 649, 3784, 1053, 3025, 2205, 1777, 2084, 2287, 0, 0, 0, 0, 0, 0, 3344, 549, 2976, 1038, 0, 0, 3739, 3480, 3358, 3371, 1048, 0, 345, 0, 458, 2609, 3691, 2825, 0, 0, 3569, 3466, 441, 0, 3506, 0, 3224, 3458, 298, 2311, 0, 714, 1492, 3409, 3849, 3218, 3754, 894, 394, 0, 1299, 2218, 3295, 3937, 0, 4018, 3397, 2294, 3481, 2381, 2804, 0, 0, 0, 0, 0, 2712, 0, 0, 1509, 1308, 0, 3744, 2954, 2945, 3330, 0, 2744, 525, 1009, 3268, 706, 0, 464, 0, 2348, 2499, 1046, 1136, 0, 2188, 3004, 2227, 3897, 4025, 379, 2045, 0, 390, 871, 3076, 0, 789, 0, 3421, 2514, 0, 1548, 956, 4000, 445, 1921, 2272, 4019, 3476, 2892, 1501, 3616, 495, 2241, 3073, 0, 0, 2910, 3936, 3909, 466, 0, 3770, 2798, 830, 1577, 917, 3659, 3017, 3769, 3571, 641, 2792, 2830, 3892, 0, 2583, 3328, 3502, 0, 956, 3413, 3996, 603, 1527, 1105, 3030, 2937, 0, 1793, 3967, 0, 3027, 2066, 3104, 2827, 0, 0, 3957, 1429, 1421, 1979, 0, 2628, 3878, 2115, 0, 0, 3663, 0, 2788, 2153, 2567, 0, 1738, 599, 1788, 3984, 0, 3426, 0, 0, 0, 2519, 0, 879, 0, 1919, 0, 412, 3789, 0, 234, 1546, 3425, 0, 0, 3728, 441, 4046, 0, 1140, 4083, 0, 0, 0, 1108, 0, 3533, 4069, 3578, 0, 3924, 1393, 2071, 1785, 2204, 2372, 2488, 2134, 0, 1883, 3042, 0, 1802, 3065, 2994, 3399, 2914, 2652, 2349, 1209, 3397, 1719, 3059, 2577, 1284, 2387, 0, 444, 0, 0, 0, 2587, 3486, 2594, 0, 3834, 3599, 0, 1416, 466, 0, 3555, 1678, 0, 0, 2889, 0, 0, 3078, 3780, 3151, 3960, 596, 2941, 2037, 0, 416, 257, 466, 2634, 0, 3654, 2503, 3589, 3491, 4035, 2925, 3426, 742, 2953, 2593, 0, 0, 243, 3299, 280, 2855, 2556, 0, 600, 3843, 1994, 3731, 0, 2395, 2050, 3534, 0, 2317, 3398, 689, 2882, 3601, 0, 0, 2773, 0, 442, 3892, 0, 184, 0, 0, 1430, 0, 0, 3500, 4021, 3798, 3270, 496, 0, 0, 4049, 0, 1480, 3732, 435, 3962, 1336, 0, 3029, 0, 1497, 2899, 0, 423, 0, 1922, 1516, 4027, 2987, 1460, 0, 3617, 3959, 1953, 3109, 0, 895, 1525, 0, 954, 3610, 0, 1889, 3463, 2491, 2176, 2162, 0, 347, 3528, 3675, 0, 0, 2298, 3449, 0, 0, 0, 0, 0, 581, 486, 4052, 1545, 3332, 3977, 3704, 1522, 2595, 2800, 435, 1610, 0, 2330, 3842, 0, 3438, 3294, 3551, 0, 3907, 1831, 4009, 4089, 493, 0, 3593, 2764, 3586, 2887, 0, 3790, 3622, 3229, 0, 1973, 0, 0, 1767, 1945, 1421, 0, 2262, 0, 0, 3527, 2070, 3519, 0, 0, 3197, 0, 354, 0, 0, 3459, 0, 2846, 2946, 3374, 3462, 1717, 537, 3987, 2164, 2543, 0, 2107, 0, 2008, 3647, 1611, 353, 1636, 1505, 0, 0, 3043, 0, 3527, 3542, 1720, 2225, 3353, 613, 2443, 347, 2508, 0, 0, 3373, 0, 2778, 0, 509, 0, 0, 0, 1373, 901, 3859, 424, 0, 787, 3693, 0, 1458, 2692, 985, 2943, 0, 4096, 3276, 1092, 0, 0, 0, 2215, 3483, 3181, 2686, 0, 579, 2055, 2304, 2623, 2683, 3653, 1885, 3681, 1826, 978, 3124, 4061, 1168, 3380, 0, 2859, 2528, 4057, 0, 2540, 355, 2421, 1821, 0, 758, 2395, 0, 937, 3364, 3851, 3650, 3819, 3458, 2517, 0, 4032, 0, 0, 0, 1936, 0, 3414, 2997, 0, 3122, 0, 1682, 3609, 0, 2787, 2671, 163, 1480, 2694, 383, 0, 3342, 4070, 319, 0, 303, 3382, 496, 0, 1439, 3354, 0, 0, 1385, 691, 1455, 0, 0, 895, 2475, 2094, 2839, 3592, 3643, 2390, 1123, 3660, 3149, 3074, 3316, 1233, 3490, 0, 2775, 2188, 1910, 1693, 2823, 3335, 1778, 2335, 3673, 0, 2769, 410, 0, 3662, 3332, 2286, 0, 0, 0, 3726, 0, 0, 4089, 2988, 3177, 0, 3930, 626, 3970, 3032, 2997, 3351, 1117, 0, 1042, 2101, 2987, 0, 3006, 3793, 438, 1546, 220, 3745, 0, 0, 2147, 3377, 1879, 0, 3627, 3913, 3536, 1689, 0, 325, 0, 1806, 3439, 0, 447, 478, 1145, 363, 3583, 3160, 4073, 764, 2903, 494, 3137, 0, 1074, 804, 1164, 608, 0, 2277, 3968, 524, 3115, 2379, 0, 289, 2089, 1555, 3531, 0, 0, 0, 1855, 3260, 0, 2840, 3264, 0, 2713, 404, 0, 2031, 3839, 0, 3288, 497, 3258, 362, 531, 1668, 3025, 3885, 399, 3718, 2044, 3318, 1562, 2616, 433, 583, 3519, 797, 1023, 0, 0, 3557, 3025, 0, 3795, 3616, 1052, 2540, 3831, 0, 3391, 957, 1698, 1871, 0, 2561, 2456, 0, 0, 3525, 0, 3421, 3244, 1831, 287, 0, 0, 483, 2059, 0, 560, 2875, 2219, 881, 1720, 1668, 0, 1474, 3529, 3328, 3961, 0, 3210, 1637, 0, 832, 358, 0, 0, 1399, 0, 532, 0, 0, 1816, 1406, 0, 3000, 0, 0, 2598, 1623, 2517, 0, 0, 0, 403, 1401, 3543, 1018, 0, 2970, 1878, 2431, 3918, 0, 0, 2999, 2377, 2278, 2995, 0, 3760, 1648, 0, 2452, 0, 0, 4056, 2461, 949, 3873, 0, 0, 2423, 3976, 2261, 696, 1296, 2564, 2769, 0, 0, 3682, 150, 1026, 725, 3188, 0, 2669, 3019, 3801, 1540, 1956, 2765, 2963, 3541, 0, 0, 2680, 2636, 3966, 918, 3128, 0, 537, 3762, 3286, 0, 0, 1458, 413, 501, 265, 3644, 3919, 3853, 336, 3347, 3227, 3924, 2688, 3535, 0, 443, 0, 2698, 3660, 848, 0, 2081, 0, 2363, 2096, 3923, 0, 2200, 964, 0, 100, 1732, 3651, 1824, 3424, 0, 0, 2797, 0, 2040, 2485, 3883, 2512, 398, 712, 2011, 3393, 0, 3124, 2240, 3261, 3160, 0, 0, 0, 1064, 0, 1915, 0, 2558, 3917, 2884, 2170, 688, 2908, 3905, 0, 2556, 3366, 0, 436, 1075, 484, 3072, 0, 2844, 0, 846, 2614, 608, 0, 2176, 3179, 2009, 0, 0, 3136, 0, 0, 2980, 453, 2478, 1669, 2322, 1939, 4068, 3921, 2428, 3292, 2256, 0, 1740, 999, 342, 3899, 0, 946, 194, 1414, 3176, 0, 0, 944, 0, 0, 3455, 3334, 540, 0, 2367, 943, 1481, 3715, 2336, 1927, 2534, 3884, 0, 2503, 3977, 264, 2043, 3246, 3631, 0, 3631, 1998, 1692, 2939, 1756, 3322, 2576, 3608, 363, 2795, 0, 0, 2946, 3863, 3689, 350, 3825, 4008, 2422, 2637, 341, 1632, 0, 0, 1594, 3100, 4067, 0, 0, 3446, 830, 2895, 0, 3576, 3822, 3789, 1356, 3672, 0, 0, 1514, 455, 3346, 3267, 3375, 3992, 0, 3141, 2888, 0, 626, 0, 0, 0, 2321, 0, 1160, 2720, 4037, 0, 1882, 2639, 2326, 3562, 3948, 1912, 3654, 3602, 2929, 0, 2985, 0, 0, 3841, 2037, 3562, 2463, 1992, 2814, 0, 2991, 0, 0, 0, 0, 2346, 2257, 0, 3185, 3733, 1600, 3774, 3306, 0, 3879, 3374, 3144, 2738, 2748, 0, 1894, 0, 3672, 0, 0, 0, 2224, 0, 1888, 3325, 0, 3646, 0, 0, 4000, 1628, 3782, 2960, 3156, 3159, 2424, 1168, 1464, 677, 3580, 0, 1921, 3918, 0, 3558, 0, 0, 1637, 3679, 0, 3199, 0, 271, 3180, 3716, 0, 0, 1038, 3746, 4044, 3857, 0, 0, 0, 3894, 2518, 2784, 0, 0, 3498, 0, 0, 2195, 0, 0, 0, 3341, 3732, 3339, 2863, 0, 182, 3484, 2815, 2252, 0, 1777, 2432, 2035, 0, 350, 0, 3628, 4030, 443, 0, 1865, 0, 0, 0, 2804, 0, 0, 2984, 720, 1726, 2924, 2926, 2985, 0, 2170, 360, 0, 2089, 1061, 0, 0, 0, 307, 2674, 0, 3769, 2065, 0, 3568, 3789, 470, 2176, 3618, 1253, 0, 359, 516, 2573, 0, 0, 3934, 527, 3504, 0, 3358, 0, 184, 3175, 492, 0, 0, 2202, 3714, 0, 3795, 2123, 2466, 2359, 3506, 1437, 3738, 2739, 1885, 2809, 3258, 1990, 3516, 1170, 0, 1560, 3999, 972, 3740, 3591, 3452, 0, 0, 2737, 2341, 3867, 0, 2570, 0, 0, 3245, 4027, 0, 2380, 3199, 429, 1204, 1423, 3181, 0, 1330, 2270, 3901, 3916, 3813, 2484, 2547, 0, 1914, 347, 4000, 0, 1371, 2162, 1186, 0, 1101, 0, 1615, 3671, 3805, 1293, 298, 2899, 145, 3371, 3207, 0, 3697, 0, 3242, 3706, 3880, 689, 1467, 499, 3431, 3764, 0, 2896, 2739, 3791, 2718, 0, 0, 2046, 0, 0, 0, 1833, 2963, 2209, 2658, 0, 1422, 2181, 0, 303, 3533, 470, 0, 0, 1022, 2646, 0, 681, 2086, 0, 3955, 0, 1727, 0, 0, 1903, 0, 0, 0, 3817, 0, 850, 2375, 1227, 283, 2605, 1407, 1242, 0, 2921, 0, 2568, 3845, 0, 3617, 2945, 3524, 0, 3818, 0, 2093, 405, 428, 0, 1835, 3448, 0, 0, 0, 0, 0, 2986, 3124, 0, 1030, 3468, 3309, 3814, 0, 0, 3652, 0, 2726, 4015, 0, 3020, 2659, 1552, 1494, 3433, 4086, 0, 2949, 0, 338, 3080, 2511, 3215, 0, 0, 2405, 2402, 3801, 0, 0, 1324, 3590, 0, 0, 1461, 0, 0, 421, 3431, 0, 955, 0, 0, 3831, 0, 0, 3235, 0, 263, 0, 0, 2450, 319, 0, 3701, 0, 3097, 3478, 351, 1735, 0, 0, 2966, 1818, 0, 0, 2811, 1250, 436, 0, 2347, 3404, 2094, 3782, 719, 3614, 3843, 1487, 1960, 3324, 3429, 2836, 2260, 3721, 3543, 0, 3104, 4074, 0, 3134, 2669, 2530, 2866, 3727, 2289, 311, 3027, 3497, 197, 0, 1100, 0, 1899, 3803, 1687, 0, 3937, 3768, 2752, 3260, 0, 820, 3445, 3411, 0, 0, 0, 3919, 1832, 0, 0, 1900, 0, 3083, 3041, 2500, 960, 2366, 1531, 0, 3587, 3635, 3679, 2086, 0, 3829, 0, 0, 1807, 2339, 3067, 2263, 0, 3621, 1361, 0, 0, 491, 0, 1329, 1301, 3939, 2850, 2899, 3306, 2380, 3183, 2351, 1657, 3770, 2198, 747, 0, 342, 1183, 3977, 426, 1906, 3839, 3629, 0, 2600, 3753, 0, 0, 0, 3853, 0, 0, 0, 1994, 0, 3807, 3337, 2148, 3688, 1840, 4045, 2971, 2829, 0, 2597, 2914, 3324, 1512, 3015, 3168, 3063, 3432, 2586, 3462, 0, 3284, 0, 0, 2977, 0, 0, 524, 3415, 2897, 0, 0, 269, 0, 679, 486, 2247, 2994, 1112, 1111, 1056, 3091, 3271, 1996, 2371, 3861, 1537, 282, 2017, 2139, 2062, 0, 1499, 3435, 2388, 0, 3447, 700, 1299, 3046, 0, 3251, 2342, 1374, 0, 3907, 2754, 854, 0, 0, 1437, 2414, 431, 2512, 790, 0, 3810, 3900, 0, 1479, 3830, 3180, 2117, 0, 2397, 1289, 0, 483, 0, 0, 0, 3553, 725, 1025, 447, 1702, 3224, 3558, 386, 0, 3139, 3045, 475, 0, 590, 3837, 2174, 0, 0, 3280, 2701, 0, 0, 219, 0, 0, 0, 3664, 3964, 2297, 1471, 0, 458, 3136, 0, 2974, 1540, 4080, 2587, 1988, 2536, 0, 2466, 0, 4057, 2667, 1722, 1240, 790, 1982, 1459, 0, 2075, 2795, 0, 1967, 1993, 1429, 0, 3061, 0, 1415, 0, 445, 0, 3957, 1477, 3497, 3485, 0, 0, 0, 940, 2154, 3646, 3002, 0, 1773, 3535, 3756, 3387, 0, 2516, 3983, 1620, 3082, 0, 4031, 0, 0, 260, 2044, 0, 3685, 2440, 834, 0, 2358, 2969, 3774, 0, 2714, 3812, 3269, 3751, 1989, 0, 0, 1467, 4069, 0, 560, 3847, 2373, 1761, 3278, 0, 2235, 0, 0, 0, 617, 1837, 2801, 1141, 0, 3029, 0, 3406, 3781, 0, 0, 684, 2097, 0, 923, 2966, 0, 3877, 282, 3717, 3011, 3972, 1568, 0, 1032, 3865, 3444, 3234, 4066, 3709, 0, 1607, 3274, 235, 3287, 2572, 2700, 1179, 593, 0, 2100, 740, 0, 2039, 0, 0, 0, 203, 0, 0, 0, 1449, 2664, 3709, 2610, 2587, 0, 0, 1493, 3686, 3203, 0, 2142, 0, 3940, 0, 0, 3063, 3572, 0, 0, 0, 1937, 1420, 1198, 0, 0, 2756, 0, 345, 2458, 0, 3340, 1247, 2031, 2068, 0, 0, 308, 1841, 296, 2007, 0, 0, 0, 1513, 725, 3454, 2552, 3571, 4059, 0, 0, 3198, 2426, 3741, 1030, 0, 0, 2174, 1014, 0, 3941, 1381, 1283, 0, 0, 2534, 2419, 0, 2689, 2200, 2153, 1344, 234, 1482, 2182, 3302, 3751, 0, 465, 0, 2136, 1985, 3409, 3730, 0, 0, 427, 384, 849, 2824, 2430, 3727, 0, 4087, 687, 3710, 3638, 0, 3060, 0, 435, 1441, 3697, 3170, 0, 2870, 0, 430, 0, 0, 882, 1860, 0, 3629, 0, 487, 506, 0, 0, 2384, 0, 2967, 0, 0, 2807, 0, 3192, 1094, 2829, 1039, 3107, 3106, 356, 1801, 2415, 3141, 3667, 3089, 0, 1820, 0, 3522, 3906, 2347, 1713, 3145, 0, 0, 1578, 0, 326, 0, 1079, 3664, 3925, 2210, 1922, 4029, 3058, 2070, 0, 0, 3895, 2400, 3606, 386, 429, 2224, 469, 3661, 0, 0, 2055, 299, 2207, 3808, 157, 0, 3284, 0, 3008, 3973, 0, 2452, 4066, 2717, 0, 2258, 2133, 0, 377, 2837, 1878, 3745, 1898, 1065, 0, 3249, 1696, 3864, 3127, 0, 489, 0, 0, 2123, 2856, 497, 3184, 4028, 0, 2606, 2221, 1304, 3988, 0, 2797, 1309, 0, 3518, 1418, 1411, 2155, 3709, 0, 356, 1156, 0, 0, 1681, 0, 3167, 190, 3334, 1360, 3791, 2293, 963, 0, 3854, 1670, 3642, 0, 0, 3437, 3523, 1702, 4016, 0, 405, 3993, 824, 3808, 0, 2847, 1607, 0, 0, 2728, 3195, 573, 2412, 1095, 0, 2962, 1833, 3366, 0, 367, 1331, 1371, 3507, 0, 0, 3490, 2711, 0, 2475, 2555, 2383, 3164, 1819, 1231, 3878, 2707, 0, 0, 0, 365, 3827, 2612, 0, 3596, 0, 3203, 0, 518, 0, 4085, 3950, 343, 335, 3090, 601, 218, 0, 4036, 1131, 4012, 1574, 3737, 4083, 285, 2657, 0, 0, 0, 3117, 0, 3262, 0, 3301, 402, 0, 110, 1998, 408, 0, 421, 2836, 352, 0, 1343, 2041, 2548, 3796, 3771, 1566, 0, 3007, 1563, 2795, 2261, 2749, 0, 2421, 2957, 3326, 2357, 2957, 2800, 3303, 3483, 1313, 3727, 1652, 1952, 1086, 3489, 620, 3520, 2128, 472, 285, 3871, 3073, 3036, 0, 2536, 3020, 2184, 1422, 2956, 0, 0, 346, 1966, 0, 2571, 0, 1377, 3987, 0, 0, 2585, 3723, 2827, 0, 1196, 265, 3014, 2880, 414, 3226, 2647, 3475, 2812, 730, 0, 593, 497, 2668, 0, 862, 2448, 3970, 3391, 2127, 0, 576, 421, 2438, 3936, 3101, 4064, 2541, 468, 2752, 1397, 366, 2446, 0, 382, 465, 1176, 2510, 4046, 3282, 2664, 1479, 2276, 449, 0, 801, 0, 3044, 3752, 2802, 270, 3357, 2278, 3308, 3532, 2554, 3848, 1388, 3022, 2137, 0, 0, 3548, 3767, 3036, 686, 1659, 0, 0, 2603, 2859, 0, 0, 4051, 784, 0, 3910, 2644, 4034, 0, 1865, 3846, 509, 0, 1556, 3983, 3123, 0, 0, 273, 1855, 370, 3223, 3522, 3092, 0, 3511, 1055, 3786, 754, 0, 391, 0, 2230, 3302, 0, 3913, 3459, 3873, 4052, 2724, 4038, 0, 2446, 0, 2747, 290, 0, 3604, 4052, 3645, 1971, 3700, 0, 0, 1907, 3815, 3457, 4016, 3093, 1127, 1980, 2299, 1334, 2811, 3188, 3611, 897, 989, 3855, 3423, 269, 477, 3840, 1947, 2267, 3530, 2392, 227, 3728, 1132, 3390, 3628, 411, 2818, 0, 3562, 3343, 310, 0, 1598, 3113, 328, 0, 0, 0, 3431, 0, 1385, 1849, 3636, 2610, 3835, 0, 731, 0, 1512, 0, 460, 0, 0, 0, 0, 3284, 1350, 0, 2560, 3556, 0, 3281, 0, 1627, 0, 0, 1187, 3559, 838, 404, 1908, 2496, 2772, 3126, 3121, 0, 2745, 1115, 2153, 3209, 3573, 1532, 2978, 1161, 2243, 1370, 2933, 0, 0, 0, 965, 583, 1856, 1079, 4042, 4056, 2987, 0, 3623, 1673, 3517, 3193, 1426, 0, 3591, 3505, 2793, 0, 3507, 0, 2199, 1567, 0, 971, 411, 495, 0, 3104, 445, 3172, 3089, 2473, 0, 3934, 1641, 1034, 1827, 672, 1569, 2100, 2955, 3837, 330, 0, 1747, 2806, 2425, 3933, 0, 3986, 2624, 476, 3047, 0, 902, 1056, 1602, 3346, 0, 1266, 4068, 0, 3108, 0, 1489, 1934, 1352, 2844, 1480, 2096, 0, 800, 0, 421, 3787, 0, 0, 500, 1266, 2843, 0, 3037, 3683, 2606, 412, 268, 3880, 0, 3949, 0, 3869, 2681, 0, 0, 3769, 1912, 3075, 2104, 3738, 1769, 977, 2661, 1962, 3265, 3134, 3264, 2817, 3832, 3947, 3825, 2799, 3122, 3997, 3369, 366, 875, 333, 3996, 3684, 3194, 1660, 2314, 1958, 3493, 0, 0, 2566, 1560, 0, 475, 488, 3704, 3472, 0, 0, 0, 4026, 0, 2516, 1017, 1397, 0, 279, 1400, 0, 3257, 3607, 754, 3625, 0, 1532, 3823, 1206, 919, 3965, 3085, 2944, 3499, 0, 2084, 1806, 2215, 0, 0, 2131, 874, 0, 4079, 0, 3077, 2812, 1293, 559, 3126, 619, 1949, 2618, 0, 3410, 1626, 1280, 3997, 3805, 1347, 0, 891, 0, 3283, 3056, 0, 1239, 0, 0, 0, 1599, 3264, 2848, 3004, 1759, 1881, 2291, 0, 3785, 1856, 3747, 3164, 3046, 3586, 2799, 0, 0, 2295, 3605, 0, 2904, 4013, 3736, 0, 0, 3927, 2767, 1002, 0, 2152, 0, 0, 3990, 0, 3502, 581, 2989, 2007, 0, 2186, 2578, 3729, 0, 634, 1766, 0, 3570, 2092, 3182, 1133, 472, 1773, 480, 2645, 2141, 3448, 0, 1524, 2642, 2042, 209, 658, 257, 2372, 3304, 1149, 0, 3443, 0, 2595, 1110, 2456, 2164, 2243, 0, 3277, 3862, 3783, 3828, 2991, 0, 1940, 0, 430, 0, 0, 2260, 2177, 2830, 3538, 3723, 0, 0, 3023, 3790, 3017, 0, 0, 0, 0, 3415, 2938, 3886, 2861, 0, 688, 3191, 3037, 2549, 3394, 2452, 0, 0, 0, 0, 3474, 1526, 1157, 2995, 3505, 2295, 0, 3912, 0, 1728, 1435, 0, 0, 0, 1978, 2389, 2732, 0, 493, 0, 813, 3187, 2364, 1060, 3713, 0, 0, 0, 414, 3931, 973, 0, 2638, 0, 775, 428, 4039, 1905, 2048, 2826, 0, 660, 0, 0, 3912, 3930, 0, 0, 4006, 0, 0, 1584, 0, 136, 2199, 0, 1949, 0, 0, 522, 3226, 0, 3239, 3508, 3111, 2874, 281, 2239, 2794, 3795, 0, 2000, 0, 3427, 0, 2282, 3669, 2682, 3740, 4005, 927, 3313, 2579, 3640, 3581, 4031, 0, 2744, 0, 0, 3852, 0, 2880, 3360, 2779, 3217, 4096, 3397, 3071, 2523, 538, 159, 937, 2567, 1679, 403, 3215, 3894, 0, 1290, 943, 0, 3711, 0, 2966, 1609, 3761, 0, 1568, 3951, 2882, 3725, 399, 0, 2231, 3755, 335, 0, 0, 1366, 3920, 3307, 0, 3151, 1019, 2942, 2404, 1910, 3513, 1559, 2734, 2269, 4067, 0, 3056, 3189, 3150, 942, 0, 0, 2119, 491, 425, 2416, 3470, 0, 2941, 0, 3848, 0, 3436, 0, 1645, 3563, 3318, 4091, 0, 0, 3033, 3159, 0, 3592, 1725, 2907, 0, 3826, 0, 3681, 2630, 0, 3218, 0, 0, 0, 2391, 1166, 0, 1472, 2472, 0, 0, 3515, 0, 2986, 3042, 3875, 607, 2328, 0, 0, 2658, 0, 1665, 0, 0, 3856, 0, 0, 3306, 3896, 2201, 1364, 1520, 0, 2753, 2155, 1297, 0, 3493, 2221, 3856, 1852, 3153, 3847, 0, 1781, 0, 0, 3609, 822, 2161, 3273, 2284, 0, 0, 2443, 0, 4058, 1365, 2468, 0, 3107, 0, 0, 3981, 3081, 0, 1794, 0, 3074, 0, 2928, 3069, 3517, 2517, 3925, 3403, 3549, 3002, 1815, 841, 392, 0, 652, 0, 3923, 2845, 0, 451, 124, 4060, 3214, 2331, 3352, 3610, 515, 4014, 3131, 3159, 0, 2898, 1288, 1291, 2774, 722, 801, 3323, 0, 0, 3349, 0, 0, 0, 3559, 0, 2428, 2128, 0, 1955, 2131, 0, 3534, 3271, 0, 663, 1789, 1667, 0, 0, 0, 2722, 2560, 2298, 2893, 3686, 3096, 0, 2829, 1728, 2940, 1715, 379, 2111, 667, 3173, 1290, 0, 3722, 1896, 0, 1596, 3542, 431, 0, 2084, 0, 0, 3481, 3759, 0, 0, 2455, 1526, 0, 0, 0, 0, 3048, 2479, 0, 3395, 1211, 3820, 2346, 2361, 2865, 3002, 0, 2413, 991, 511, 0, 3196, 2493, 726, 0, 269, 0, 1864, 1338, 0, 3305, 0, 428, 0, 2293, 3369, 0, 1748, 2215, 1443, 1084, 4084, 152, 1842, 0, 2707, 251, 0, 0, 3931, 1748, 0, 0, 2319, 0, 0, 2932, 3595, 0, 0, 0, 1278, 2979, 1593, 3509, 0, 3800, 2790, 479, 3901, 0, 3716, 2418, 738, 0, 3716, 3740, 0, 568, 2338, 427, 1536, 514, 2376, 0, 0, 830, 2493, 3150, 268, 1640, 884, 3834, 2178, 3337, 2618, 3565, 3553, 1842, 1992, 0, 3730, 0, 0, 0, 1518, 427, 2605, 0, 2440, 3232, 0, 3414, 0, 1702, 0, 3847, 4085, 0, 3858, 2816, 0, 941, 2041, 0, 3911, 1933, 0, 3376, 1415, 3235, 2144, 3981, 3389, 2805, 888, 3298, 3388, 4020, 3524, 713, 0, 2563, 1409, 2152, 0, 3321, 3869, 0, 0, 2955, 2521, 595, 1985, 1542, 4051, 4010, 488, 0, 0, 0, 2759, 487, 0, 3049, 3866, 0, 301, 2202, 2740, 2287, 2802, 2422, 154, 878, 3772, 0, 3637, 0, 0, 0, 647, 0, 0, 0, 995, 452, 1242, 1941, 3191, 3700, 2809, 1214, 2810, 1241, 2814, 469, 3692, 3696, 0, 3377, 0, 2224, 4025, 2245, 0, 772, 0, 3670, 2607, 0, 2292, 1686, 2913, 3708, 1805, 3633, 1846, 2064, 0, 3601, 1744, 3794, 3859, 2489, 3066, 0, 2502, 0, 0, 2067, 2621, 3955, 1707, 0, 0, 0, 3379, 1891, 3170, 443, 444, 0, 1520, 3285, 0, 1276, 0, 2820, 0, 0, 0, 0, 3287, 4051, 3315, 0, 1514, 1697, 3468, 3372, 431, 0, 3386, 0, 0, 1045, 4072, 3271, 0, 3757, 3593, 3844, 0, 1680, 930, 0, 2660, 2962, 2594, 3407, 3188, 0, 2145, 3169, 0, 0, 1886, 441, 1655, 0, 0, 0, 3154, 0, 2219, 2245, 295, 2657, 1510, 0, 3503, 0, 0, 3626, 3310, 2591, 0, 0, 2416, 644, 0, 3864, 0, 2792, 2386, 351, 0, 2027, 2980, 2211, 1663, 2047, 919, 2426, 0, 4002, 0, 2110, 418, 0, 1878, 0, 3016, 3730, 3707, 0, 1242, 0, 0, 3712, 1372, 0, 4031, 0, 0, 3927, 3296, 2694, 4042, 2762, 3158, 0, 0, 1506, 1246, 3832, 1075, 0, 2753, 0, 3846, 2976, 0, 3515, 3863, 0, 3995, 676, 3994, 0, 866, 3206, 3227, 348, 3443, 222, 3507, 2700, 1653, 1598, 2121, 455, 2794, 0, 3914, 3099, 1346, 1671, 3567, 0, 1850, 0, 4060, 324, 0, 2544, 0, 252, 1331, 2028, 0, 912, 2937, 2679, 66, 2353, 0, 0, 0, 2246, 0, 1505, 3750, 2968, 0, 2186, 1851, 2549, 0, 3702, 0, 1791, 0, 0, 0, 1027, 0, 2896, 1247, 385, 285, 4020, 0, 2338, 481, 1588, 439, 2518, 2720, 3694, 3433, 0, 0, 0, 2379, 687, 2151, 0, 409, 0, 3741, 4016, 2872, 3319, 3169, 0, 0, 3572, 4074, 0, 441, 0, 4017, 3729, 3084, 0, 0, 1961, 2318, 0, 395, 1658, 2424, 3286, 2551, 4087, 3940, 2915, 3207, 0, 0, 3009, 0, 2716, 0, 3603, 1130, 3986, 2565, 317, 420, 0, 1439, 2725, 3954, 0, 0, 1061, 0, 1987, 3320, 1067, 3076, 2302, 2709, 679, 0, 1504, 3211, 317, 0, 3031, 3036, 3238, 1189, 0, 3498, 3975, 3830, 2415, 3564, 4093, 658, 1339, 483, 1214, 2290, 2350, 2789, 3550, 0, 0, 956, 1380, 3928, 3602, 1514, 3274, 2154, 351, 0, 331, 0, 2961, 1035, 3952, 1496, 3897, 2863, 432, 0, 968, 3998, 0, 0, 3993, 2356, 2417, 3857, 0, 0, 3113, 1475, 3809, 3917, 449, 2044, 0, 880, 1488, 783, 1236, 3250, 2910, 2144, 2343, 0, 0, 850, 0, 0, 2122, 1279, 2106, 0, 0, 0, 2965, 1641, 2950, 1049, 3749, 0, 2283, 1842, 2622, 496, 0, 3861, 2763, 3800, 4062, 0, 1747, 1139, 3598, 0, 3735, 2757, 3157, 3657, 780, 3999, 582, 3929, 1991, 3881, 0, 1222, 0, 2168, 3859, 545, 0, 921, 2016, 1199, 1938, 1363, 0, 2861, 0, 3456, 4095, 2112, 2702, 4075, 0, 0, 2002, 3718, 346, 4004, 0, 2950, 0, 2650, 3192, 3656, 3010, 2697, 3272, 385, 3903, 4062, 3345, 0, 1599, 3444, 0, 3803, 3140, 0, 1610, 3974, 3050, 0, 3726, 2052, 4005, 2052, 2645, 253, 2874, 0, 3253, 3821, 0, 2874, 466, 0, 1573, 2172, 3964, 1758, 2866, 3713, 2268, 3349, 1705, 3118, 0, 0, 0, 2579, 3552, 1604, 252, 2805, 2490, 1895, 1732, 498, 0, 489, 0, 1043, 2650, 0, 0, 3521, 0, 0, 1266, 1106, 2725, 0, 0, 0, 454, 2528, 3083, 0, 0, 0, 0, 446, 0, 3594, 0, 0, 0, 1336, 0, 0, 0, 3166, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3450, 3826, 2429, 0, 1934, 2533, 0, 0, 4087, 0, 3538, 0, 0, 0, 0, 0, 0, 0, 2028, 0, 1314, 0, 0, 0, 1935, 3780, 485, 0, 2560, 0, 0, 0, 0, 2394, 0, 928, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1378, 0, 0, 3600, 0, 0, 2430, 0, 0, 3111, 0, 3479, 3838, 0, 867, 2131, 0, 1502, 0, 3392, 0, 1743, 0, 0, 974, 0, 0, 0, 0, 3781, 0, 0, 0, 4089, 0, 2241, 3945, 2013, 0, 2028, 0, 0, 0, 0, 0, 0, 2142, 0, 3311, 0, 0, 0, 3136, 0, 2735, 3526, 0, 0, 0, 0, 3079, 0, 0, 0, 0, 0, 3132, 0, 0, 0, 3135, 0, 1472, 0, 0, 0, 0, 0, 0, 0, 3532, 0, 1493, 0, 0, 0, 0, 0, 0, 0, 0, 2869, 3608, 0, 808, 2838, 3992, 2138, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4026, 0, 0, 0, 3481, 2534, 2683, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3269, 0, 0, 0, 2029, 2457, 3198, 3881, 0, 1646, 0, 0, 0, 0, 0, 2771, 742, 0, 0, 0, 3032, 0, 0, 0, 0, 0, 0, 2615, 395, 0, 0, 2299, 0, 0, 0, 0, 0, 0, 3945, 0, 3677, 1078, 0, 3904, 0, 1014, 0, 0, 0, 0, 0, 1516, 0, 0, 0, 0, 0, 0, 0, 0, 2439, 3213, 2650, 3128, 0, 4080, 2770, 0, 0, 0, 4003, 0, 0, 3745, 1630, 0, 0, 2099, 3062, 0, 0, 3254, 0, 1590, 2078, 0, 3893, 0, 2418, 0, 0, 0, 1132, 0, 0, 0, 0, 1647, 1550, 0, 0, 0, 0, 0, 0, 0, 2010, 0, 0, 1995, 2115, 0, 0, 0, 0, 0, 0, 0, 3912, 1163, 0, 1714, 0, 0, 0, 0, 0, 3958, 1315, 0, 511, 0, 1268, 0, 0, 0, 0, 0, 0, 4026, 1366, 0, 0, 0, 0, 0, 2157, 0, 0, 2973, 0, 0, 0, 3345, 0, 1005, 1120, 0, 0, 3926, 0, 0, 0, 0, 0, 2521, 0, 0, 2970, 0, 0, 0, 0, 0, 3512, 0, 0, 2402, 2301, 0, 0, 4063, 0, 0, 0, 3763, 795, 0, 0, 4046, 0, 1394, 0, 0, 0, 1259, 3195, 0, 2983, 0, 0, 0, 0, 494, 0, 0, 2266, 3297, 0, 0, 2631, 0, 3833, 0, 0, 2670, 2881, 0, 447, 2479, 0, 0, 0, 2902, 2608, 0, 2280, 3506, 3915, 0, 0, 0, 0, 0, 2571, 0, 0, 0, 1275, 2279, 2246, 0, 3321, 0, 0, 1576, 0, 0, 0, 0, 0, 0, 0, 0, 1764, 0, 0, 0, 3532, 2333, 0, 3309, 0, 1958, 0, 0, 0, 0, 3660, 0, 0, 0, 0, 1948, 1473, 0, 0, 3652, 4047, 3568, 0, 0, 0, 0, 3926, 3315, 3449, 0, 1770, 1487, 1978, 4070, 0, 0, 0, 0, 0, 3708, 0, 0, 0, 0, 0, 899, 0, 0, 500, 1813, 3939, 0, 0, 0, 482, 0, 0, 1359, 0, 0, 0, 0, 2925, 0, 0, 0, 0, 0, 0, 1809, 0, 3836, 0, 2843, 0, 0, 0, 2827, 3321, 0, 1970, 0, 0, 0, 0, 0, 2627, 3384, 0, 3142, 0, 2776, 1569, 3766, 0, 1534, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3747, 735, 0, 0, 1876, 0, 0, 0, 0, 0, 3339, 0, 0, 0, 1350, 3224, 2630, 0, 459, 455, 3510, 0, 0, 0, 3960, 3961, 0, 0, 0, 0, 3377, 3214, 0, 0, 0, 288, 0, 2267, 3233, 0, 0, 637, 0, 2714, 0, 0, 2780, 2406, 0, 0, 0, 0, 3467, 0, 0, 0, 0, 2883, 0, 3010, 0, 0, 3130, 0, 0, 1772, 0, 0, 0, 0, 0, 0, 2469, 0, 0, 0, 0, 0, 0, 456, 0, 1542, 0, 3945, 0, 3359, 3461, 0, 2700, 0, 0, 0, 0, 0, 3898, 0, 0, 0, 0, 0, 0, 3089, 0, 0, 3331, 0, 0, 3767, 3735, 2582, 0, 3094, 0, 410, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3600, 3100, 0, 0, 3611, 0, 0, 0, 0, 3679, 893, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3111, 0, 0, 3435, 0, 3967, 0, 0, 3855, 0, 0, 0, 3751, 0, 0, 0, 0, 3103, 3382, 2498, 0, 0, 0, 0, 3785, 0, 0, 0, 0, 0, 0, 1644, 0, 0, 0, 0, 0, 0, 0, 0, 2636, 1234, 0, 0, 2962, 0, 0, 0, 3120, 0, 0, 458, 0, 2853, 0, 0, 0, 0, 0, 0, 3339, 0, 0, 1277, 2956, 1415, 0, 0, 0, 0, 0, 0, 0, 1423, 0, 0, 0, 0, 1292, 0, 625, 0, 1098, 0, 0, 1850, 3698, 1452, 0, 0, 0, 0, 1186, 0, 0, 0, 0, 0, 0, 0, 0, 2947, 3068, 0, 2785, 0, 0, 2314, 0, 3959, 1294, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2687, 417, 0, 0, 0, 3907, 0, 0, 2140, 0, 0, 3862, 0, 3603, 0, 0, 0, 0, 0, 0, 3609, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 208, 3477, 0, 598, 0, 0, 0, 2108, 0, 1323, 0, 867, 0, 3638, 0, 0, 0, 1821, 3553, 2779, 0, 0, 1171, 0, 2289, 3368, 0, 0, 0, 3016, 0, 3598, 0, 0, 2838, 0, 0, 0, 3323, 0, 3249, 0, 0, 3683, 0, 0, 0, 0, 1734, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3503, 0, 0, 0, 2189, 0, 4018, 0, 0, 1419, 0, 1835, 2557, 0, 0, 0, 0, 1314, 0, 698, 0, 0, 0, 0, 0, 2193, 0, 0, 4088, 0, 2967, 0, 449, 0, 3987, 3442, 0, 984, 479, 0, 2925, 0, 0, 0, 2274, 3266, 759, 0, 0, 1444, 2810, 2715, 1279, 0, 0, 0, 1753, 3201, 0, 0, 3916, 3942, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3307, 0, 0, 2329, 0, 0, 0, 0, 0, 1472, 0, 413, 2062, 3154, 0, 0, 847, 0, 3178, 0, 0, 3882, 449, 1635, 0, 3721, 2704, 0, 0, 3663, 3561, 0, 0, 0, 2365, 3148, 0, 0, 3670, 1262, 0, 0, 0, 3267, 0, 0, 0, 0, 0, 0, 0, 3361, 378, 0, 0, 1836, 2065, 0, 3714, 0, 3850, 3597, 1800, 2917, 0, 4082, 0, 0, 0, 0, 3920, 2007, 0, 3009, 1783, 0, 0, 0, 0, 1375, 0, 0, 0, 0, 0, 0, 0, 0, 3543, 2441, 0, 0, 0, 0, 473, 0, 0, 3734, 0, 3887, 2604, 0, 0, 0, 0, 3922, 3643, 3645, 0, 0, 0, 2527, 0, 0, 0, 0, 0, 3165, 1025, 0, 0, 0, 0, 0, 0, 2440, 0, 0, 3166, 0, 0, 0, 274, 3426, 3093, 0, 0, 0, 3648, 0, 3389, 2068, 3152, 0, 0, 0, 0, 0, 0, 0, 1790, 0, 0, 3413, 0, 0, 0, 0, 3633, 3682, 1699, 423, 0, 0, 0, 380, 0, 0, 0, 4019, 0, 0, 592, 0, 0, 0, 0, 0, 3773, 0, 0, 0, 0, 0, 2677, 3457, 0, 421, 3476, 3804, 0, 0, 0, 0, 3993, 0, 4007, 0, 0, 3729, 409, 1990, 0, 3826, 0, 0, 3575, 0, 0, 0, 0, 0, 2723, 0, 3735, 0, 0, 0, 3043, 0, 1797, 0, 0, 0, 0, 0, 0, 554, 1147, 1652, 0, 0, 3596, 0, 2580, 0, 2628, 0, 2617, 0, 0, 0, 0, 0, 0, 0, 0, 1485, 0, 2500, 0, 1968, 0, 0, 2482, 0, 2710, 0, 2751, 1710, 399, 0, 0, 3526, 378, 2742, 0, 0, 0, 969, 0, 0, 0, 0, 690, 0, 3238, 3400, 3975, 0, 0, 2465, 2879, 0, 0, 0, 0, 2183, 2785, 0, 0, 0, 0, 0, 3084, 3350, 3937, 0, 2951, 4088, 1097, 3802, 0, 0, 0, 0, 0, 1096, 0, 0, 2944, 2885, 394, 0, 0, 0, 2757, 0, 0, 0, 0, 0, 1578, 0, 0, 0, 0, 0, 0, 4033, 0, 0, 1917, 1622, 0, 0, 0, 0, 0, 0, 0, 0, 1773, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3055, 0, 0, 3110, 0, 3742, 0, 0, 3419, 0, 0, 0, 0, 0, 2669, 0, 3865, 0, 0, 0, 0, 0, 0, 0, 3462, 0, 0, 4015, 3989, 0, 0, 0, 0, 0, 3375, 0, 2842, 0, 3633, 0, 0, 0, 0, 0, 3510, 0, 0, 0, 0, 0, 0, 0, 0, 3827, 0, 0, 0, 0, 2820, 1424, 3012, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3495, 0, 0, 0, 0, 1403, 3281, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2735, 0, 0, 0, 0, 0, 0, 3354, 0, 192, 0, 3579, 0, 0, 0, 3106, 2854, 0, 796, 0, 0, 0, 1401, 0, 3127, 0, 0, 0, 0, 0, 0, 0, 1329, 0, 2990, 3400, 3966, 0, 2739, 2214, 0, 2290, 1542, 0, 0, 0, 1801, 0, 0, 0, 3796, 0, 0, 0, 2562, 2540, 0, 1969, 0, 0, 2198, 0, 0, 0, 4060, 1546, 0, 0, 0, 0, 2034, 0, 1384, 0, 0, 0, 0, 0, 0, 0, 2611, 2678, 0, 1884, 0, 0, 3680, 2977, 0, 2671, 0, 2904, 0, 0, 0, 3868, 0, 0, 3963, 0, 0, 0, 2619, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 684, 2895, 3128, 0, 0, 2828, 0, 0, 0, 0, 0, 0, 0, 2345, 3169, 0, 0, 3954, 0, 1300, 0, 1392, 0, 2459, 0, 0, 2906, 395, 0, 323, 0, 0, 0, 0, 0, 3607, 0, 0, 1304, 0, 500, 0, 0, 0, 0, 3344, 0, 0, 0, 0, 2336, 0, 0, 0, 2072, 3254, 2922, 4023, 0, 0, 3408, 0, 415, 0, 490, 0, 0, 1202, 3327, 0, 2464, 2474, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1073, 0, 1510, 1883, 0, 2606, 1891, 0, 3438, 0, 0, 0, 0, 3674, 0, 0, 0, 0, 0, 0, 2119, 3666, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3070, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4091, 1667, 0, 0, 0, 0, 0, 3497, 0, 0, 0, 0, 0, 0, 4088, 0, 0, 0, 3197, 0, 0, 0, 0, 0, 0, 856, 0, 0, 2233, 0, 0, 0, 0, 0, 4018, 0, 1234, 0, 0, 2822, 3066, 0, 0, 0, 3725, 0, 1178, 3260, 0, 0, 0, 0, 0, 0, 0, 1946, 2282, 0, 2527, 0, 3982, 0, 3909, 4009, 0, 2029, 2761, 0, 0, 0, 3643, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2979, 0, 2611, 683, 0, 0, 1619, 0, 2064, 0, 0, 0, 3504, 0, 0, 0, 3576, 3526, 0, 1011, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3325, 0, 0, 3492, 2583, 2675, 2651, 1919, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2504, 2711, 0, 0, 0, 0, 1536, 0, 0, 1077, 0, 2791, 0, 0, 0, 3817, 3790, 0, 0, 2418, 0, 0, 3678, 2104, 0, 1929, 1868, 0, 1813, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3241, 0, 0, 0, 0, 4055, 2876, 0, 0, 0, 0, 3173, 0, 0, 3395, 0, 0, 3213, 3850, 2747, 0, 0, 0, 0, 0, 3576, 0, 0, 3652, 0, 0, 0, 0, 387, 0, 3299, 3485, 0, 3416, 1756, 1819, 1609, 0, 0, 2187, 3096, 0, 0, 796, 0, 2842, 0, 0, 2989, 0, 2908, 0, 0, 0, 2457, 0, 0, 0, 0, 3822, 0, 0, 0, 1408, 0, 0, 3665, 3067, 3087, 0, 980, 0, 0, 3962, 0, 2030, 0, 0, 2315, 0, 0, 3855, 0, 4095, 0, 0, 0, 0, 1093, 1696, 1566, 3308, 0, 0, 2238, 0, 3818, 3695, 1405, 0, 2247, 0, 0, 0, 0, 0, 0, 0, 0, 448, 0, 0, 0, 0, 0, 2529, 0, 0, 982, 0, 0, 0, 3848, 0, 0, 0, 0, 0, 3982, 0, 0, 0, 3725, 1246, 2676, 3357, 2020, 0, 0, 0, 0, 3062, 2234, 0, 0, 0, 0, 3541, 0, 488, 0, 0, 2648, 0, 0, 0, 0, 0, 0, 2559, 0, 0, 0, 2213, 0, 0, 0, 0, 0, 0, 0, 3984, 0, 0, 0, 0, 727, 3991, 0, 0, 0, 1840, 0, 3674, 0, 0, 0, 0, 0, 0, 0, 2498, 0, 0, 0, 0, 0, 3158, 0, 0, 3870, 0, 0, 0, 0, 0, 0, 1966, 3974, 3220, 2808, 0, 3744, 0, 0, 0, 0, 0, 879, 0, 0, 3057, 3492, 0, 0, 332, 0, 3247, 0, 1784, 0, 3176, 0, 0, 0, 0, 0, 0, 0, 3656, 268, 3612, 0, 4030, 0, 874, 0, 2442, 3889, 0, 2274, 0, 0, 0, 1310, 0, 0, 0, 0, 0, 0, 0, 3994, 0, 0, 3554, 0, 3465, 0, 3430, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3018, 0, 1385, 0, 0, 0, 0, 349, 3114, 0, 0, 3187, 2629, 3606, 0, 0, 387, 0, 1040, 2901, 0, 0, 0, 0, 1788, 3675, 3904, 0, 0, 0, 0, 0, 3642, 0, 1348, 0, 0, 0, 3447, 0, 4045, 2353, 3771, 0, 0, 0, 2607, 0, 2814, 0, 2438, 2317, 299, 0, 0, 0, 0, 0, 541, 0, 4004, 2591, 0, 0, 0, 0, 3102, 1853, 1789, 3492, 3305, 0, 0, 0, 1965, 0, 3930, 0, 0, 0, 2040, 0, 0, 0, 0, 0, 0, 1335, 0, 0, 1489, 0, 0, 0, 0, 881, 2354, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1187, 3567, 1796, 3307, 0, 615, 2393, 0, 3531, 0, 0, 0, 2372, 0, 3689, 0, 3253, 0, 3556, 0, 0, 0, 0, 1027, 0, 1729, 3813, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2598, 0, 975, 1503, 2537, 2530, 0, 0, 0, 2221, 1992, 3588, 0, 159, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1154, 0, 0, 0, 0, 1465, 0, 0, 1698, 0, 3499, 0, 565, 0, 0, 2689, 3732, 2169, 3510, 4067, 0, 0, 2434, 3135, 0, 0, 2886, 2998, 0, 0, 0, 1724, 3293, 0, 0, 436, 0, 0, 0, 0, 0, 0, 1305, 0, 0, 0, 2927, 2237, 0, 0, 4073, 0, 0, 0, 4017, 0, 3900, 0, 0, 430, 0, 3624, 0, 0, 4050, 3766, 0, 0, 3867, 3320, 1593, 2691, 2984, 0, 0, 3238, 0, 0, 493, 3110, 4023, 0, 0, 0, 0, 2746, 0, 0, 3703, 2980, 0, 3006, 0, 0, 0, 0, 0, 0, 377, 0, 0, 0, 3955, 0, 0, 0, 2427, 0, 0, 0, 2125, 386, 0, 2121, 240, 0, 0, 1456, 0, 3004, 0, 0, 339, 3582, 0, 0, 0, 0, 0, 0, 0, 3731, 441, 0, 126, 3164, 837, 0, 1580, 4063, 1418, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3842, 3998, 0, 0, 0, 0, 3860, 0, 0, 0, 0, 0, 0, 2546, 0, 1809, 3646, 2550, 3687, 1642, 0, 3001, 1879, 1317, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 360, 2679, 0, 3804, 0, 1567, 0, 0, 0, 0, 0, 2905, 0, 2919, 870, 3430, 0, 1237, 0, 3842, 0, 4022, 3034, 0, 2026, 1275, 0, 0, 0, 2922, 0, 0, 0, 0, 3255, 1223, 0, 0, 0, 0, 0, 2250, 2977, 0, 1962, 3718, 0, 384, 678, 1564, 0, 0, 0, 0, 0, 0, 1047, 0, 2918, 0, 4047, 3892, 0, 1882, 0, 0, 3900, 0, 2926, 0, 1659, 0, 0, 0, 0, 0, 0, 3473, 916, 0, 0, 0, 0, 3384, 0, 0, 0, 2964, 0, 0, 2974, 0, 0, 2929, 0, 1628, 0, 3787, 0, 0, 0, 0, 665, 2905, 1656, 0, 0, 0, 0, 0, 0, 0, 2939, 0, 1677, 0, 3891, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3041, 0, 0, 0, 0, 3074, 0, 0, 0, 0, 0, 3801, 0, 0, 2426, 3342, 0, 1364, 3064, 0, 0, 2171, 2297, 0, 0, 284, 2972, 0, 2684, 2330, 0, 3061, 1203, 4055, 3896, 0, 0, 777, 0, 0, 0, 0, 375, 0, 2437, 0, 1469, 0, 0, 0, 0, 0, 2251, 0, 0, 0, 0, 0, 1494, 0, 1928, 0, 1409, 0, 0, 0, 0, 3607, 1875, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1524, 0, 1450, 1613, 2405, 0, 0, 3794, 0, 0, 0, 1707, 3381, 0, 0, 1946, 3370, 2076, 2487, 3889, 3952, 0, 0, 0, 0, 2108, 1879, 1703, 0, 0, 0, 0, 0, 3088, 0, 4032, 2654, 0, 0, 0, 0, 0, 0, 0, 2748, 1754, 0, 3123, 494, 3455, 0, 0, 0, 0, 0, 3088, 0, 0, 0, 3958, 3984, 2090, 0, 2808, 3289, 0, 658, 0, 2005, 0, 2837, 0, 0, 0, 3617, 1376, 0, 0, 1772, 1704, 3484, 0, 0, 0, 0, 0, 0, 0, 2661, 0, 3651, 0, 2178, 0, 0, 1475, 0, 555, 0, 0, 0, 1153, 4045, 0, 0, 3279, 0, 0, 2327, 285, 0, 0, 0, 0, 0, 3888, 0, 0, 0, 2483, 0, 0, 0, 2081, 1751, 3392, 0, 0, 3583, 4038, 3112, 0, 0, 0, 0, 4047, 0, 0, 2501, 2855, 357, 0, 0, 0, 0, 0, 3296, 0, 0, 0, 0, 3342, 0, 812, 826, 0, 0, 0, 0, 0, 0, 0, 0, 2242, 0, 0, 2769, 0, 0, 3658, 0, 2839, 0, 0, 1936, 0, 0, 2201, 0, 3595, 0, 0, 0, 2458, 0, 3370, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1509, 3200, 0, 3353, 2049, 2672, 0, 0, 0, 2382, 0, 0, 0, 0, 3719, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3096, 1959, 0, 0, 0, 2696, 4066, 0, 3300, 0, 0, 0, 0, 3186, 3809, 0, 3625, 0, 0, 0, 0, 0, 0, 2030, 0, 3942, 0, 0, 4001, 0, 3779, 0, 0, 4064, 0, 3909, 2958, 0, 0, 2772, 0, 0, 0, 0, 0, 2069, 867, 2477, 862, 2668, 0, 3888, 0, 2076, 0, 3549, 257, 1110, 271, 3097, 0, 2282, 0, 0, 0, 3830, 2458, 0, 3905, 0, 0, 0, 0, 0, 0, 3720, 0, 0, 0, 1425, 0, 0, 0, 2699, 3168, 0, 3933, 0, 0, 3281, 0, 3908, 0, 0, 0, 0, 0, 3784, 0, 3767, 0, 2460, 0, 0, 0, 0, 2900, 0, 0, 0, 0, 3812, 1752, 2226, 3427, 0, 0, 0, 0, 0, 1912, 2900, 0, 0, 0, 3225, 2478, 0, 0, 3252, 0, 2175, 3450, 0, 3131, 0, 0, 0, 0, 473, 0, 1216, 0, 3915, 0, 1341, 443, 0, 2434, 3364, 3667, 0, 2782, 0, 0, 4065, 3948, 0, 0, 0, 0, 0, 1836, 0, 382, 0, 0, 3613, 0, 0, 1968, 3490, 0, 0, 0, 3857, 3119, 1619, 3528, 3401, 0, 0, 3792, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3429, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 876, 1870, 1530, 4094, 1932, 2975, 3828, 3994, 0, 1934, 2672, 0, 0, 0, 0, 1704, 0, 0, 1798, 0, 0, 0, 544, 0, 3064, 0, 404, 0, 0, 1391, 0, 0, 0, 0, 4008, 0, 0, 2749, 3736, 3724, 0, 3768, 0, 0, 0, 0, 0, 3196, 0, 0, 0, 496, 2035, 0, 3599, 0, 0, 0, 0, 0, 0, 0, 2565, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3980, 3570, 0, 0, 0, 0, 3908, 0, 4002, 0, 0, 0, 2868, 0, 0, 1701, 2822, 0, 0, 0, 0, 0, 3274, 0, 3176, 0, 0, 0, 0, 0, 3990, 0, 0, 0, 0, 0, 0, 0, 3551, 0, 0, 0, 0, 0, 2285, 0, 0, 2806, 0, 0, 0, 0, 0, 1918, 0, 0, 3676, 2024, 2539, 0, 4039, 0, 0, 2624, 0, 0, 1582, 2830, 0, 0, 0, 0, 0, 3641, 0, 1823, 0, 0, 0, 3976, 3287, 0, 2822, 0, 0, 0, 0, 0, 1121, 417, 0, 1828, 0, 0, 0, 0, 1237, 217, 0, 0, 0, 0, 0, 3816, 0, 0, 0, 0, 0, 0, 3503, 0, 2906, 1565, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2453, 3108, 0, 3277, 0, 0, 0, 0, 0, 3285, 2688, 0, 0, 0, 0, 0, 3758, 0, 0, 0, 0, 0, 3707, 4024, 3680, 1723, 481, 2473, 1166, 3245, 3365, 0, 0, 2149, 0, 4034, 0, 1812, 0, 4081, 0, 0, 0, 0, 0, 0, 3586, 3292, 0, 0, 0, 0, 0, 0, 0, 0, 3755, 0, 0, 4065, 0, 0, 0, 0, 0, 1963, 0, 0, 0, 763, 0, 458, 0, 2927, 2173, 0, 0, 0, 3818, 0, 0, 0, 0, 4001, 3929, 2264, 2325, 0, 1374, 0, 0, 0, 3016, 0, 0, 0, 3975, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3518, 0, 0, 0, 0, 3875, 0, 0, 0, 0, 1788, 0, 0, 0, 0, 826, 0, 2666, 3966, 628, 0, 0, 0, 1122, 2768, 0, 1224, 3057, 1895, 0, 3712, 0, 0, 0, 0, 0, 3581, 0, 0, 0, 0, 0, 3013, 437, 0, 0, 0, 0, 0, 0, 0, 2792, 0, 0, 0, 0, 0, 0, 0, 1779, 3614, 0, 4079, 0, 0, 0, 3129, 3289, 2633, 0, 0, 0, 1144, 0, 4035, 0, 0, 1619, 0, 3599, 0, 2672, 0, 3908, 0, 0, 0, 3302, 0, 2828, 0, 0, 0, 0, 1164, 0, 0, 0, 0, 728, 0, 4022, 0, 0, 494, 0, 0, 2513, 4028, 0, 166, 3486, 0, 0, 0, 0, 0, 0, 1553, 0, 0, 0, 3298, 2470, 1405, 3508, 0, 4006, 0, 0, 3891, 0, 3539, 739, 0, 0, 0, 0, 0, 3280, 0, 0, 0, 2673, 0, 0, 2912, 0, 0, 0, 0, 0, 2409, 0, 2542, 2195, 0, 0, 0, 0, 0, 3207, 0, 0, 2965, 0, 0, 3636, 0, 0, 3653, 0, 0, 0, 3635, 0, 4076, 495, 2015, 0, 0, 3854, 0, 3746, 0, 0, 0, 0, 0, 0, 4094, 0, 0, 0, 3000, 1776, 0, 0, 498, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3118, 2320, 0, 0, 3079, 0, 0, 0, 0, 0, 0, 0, 0, 2212, 3343, 2398, 0, 0, 0, 3952, 0, 0, 2361, 450, 0, 1551, 0, 0, 0, 0, 0, 3701, 0, 0, 0, 0, 1901, 0, 0, 0, 0, 0, 715, 0, 2803, 3946, 3289, 2569, 2388, 1818, 0, 0, 0, 0, 2155, 712, 0, 0, 0, 3638, 0, 0, 0, 3521, 0, 0, 0, 3442, 0, 0, 0, 0, 0, 0, 0, 0, 3093, 3560, 0, 0, 3764, 1296, 0, 2821, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2632, 0, 0, 0, 3634, 3305, 451, 0, 1874, 4092, 0, 1695, 3147, 2731, 2961, 2857, 0, 0, 0, 4073, 2110, 0, 0, 0, 0, 0, 3082, 0, 3261, 0, 1068, 4024, 3954, 0, 1600, 0, 0, 187, 3411, 0, 0, 0, 2352, 0, 0, 0, 0, 0, 0, 3049, 0, 0, 0, 0, 1812, 0, 0, 0, 1321, 0, 0, 3504, 747, 448, 0, 0, 0, 1317, 2771, 1074, 4038, 0, 0, 0, 0, 0, 0, 2539, 1775, 0, 0, 454, 0, 0, 0, 3805, 0, 0, 0, 0, 0, 0, 0, 562, 0, 0, 0, 0, 0, 0, 0, 2621, 0, 3051, 1663, 3715, 0, 3217, 0, 0, 0, 0, 0, 0, 0, 0, 3841, 0, 3737, 0, 0, 0, 328, 1188, 0, 3182, 0, 0, 0, 0, 1496, 0, 2207, 0, 1550, 0, 2491, 0, 1957, 0, 0, 0, 1580, 0, 0, 3932, 0, 3755, 0, 0, 0, 0, 3422, 0, 0, 1327, 2832, 1240, 2593, 2292, 2748, 0, 0, 0, 0, 3075, 3008, 0, 0, 2702, 0, 2187, 1089, 0, 3213, 0, 0, 2158, 0, 3852, 0, 0, 1742, 0, 3874, 0, 0, 0, 0, 3537, 2903, 0, 0, 0, 0, 0, 0, 4076, 2016, 3814, 0, 2080, 0, 3623, 3829, 0, 0, 0, 3418, 0, 0, 861, 0, 0, 3413, 2628, 0, 0, 0, 0, 3911, 2721, 0, 0, 0, 0, 0, 3698, 0, 2721, 0, 0, 3580, 0, 0, 0, 2629, 2053, 0, 0, 0, 3573, 0, 0, 1013, 0, 936, 0, 2850, 0, 0, 3374, 0, 2286, 0, 753, 0, 1648, 4082, 1519, 0, 0, 0, 0, 0, 0, 0, 2423, 0, 0, 0, 0, 3802, 0, 1167, 0, 0, 3047, 0, 3921, 0, 0, 0, 4039, 0, 1109, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2163, 0, 3460, 0, 0, 4090, 0, 3450, 0, 2008, 0, 0, 0, 0, 0, 0, 2432, 0, 1783, 3071, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2728, 0, 3236, 275, 0, 0, 0, 0, 1548, 0, 1086, 0, 1051, 3222, 0, 0, 0, 0, 0, 0, 3568, 3315, 0, 0, 0, 471, 0, 0, 0, 0, 0, 0, 1655, 0, 0, 0, 0, 0, 2206, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4006, 0, 2992, 2613, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3048, 0, 0, 0, 0, 0, 3807, 0, 2348, 0, 2931, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2123, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1601, 2431, 0, 0, 0, 0, 0, 2862, 0, 0, 3971, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3630, 0, 0, 0, 0, 0, 0, 0, 3899, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2741, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2470, 0, 0, 0, 0, 0, 0, 0, 0, 3119, 0, 0, 1930, 4041, 0, 2388, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3403, 0, 0, 0, 0, 0, 0, 4054, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 450, 0, 0, 3600, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3219, 0, 0, 0, 0, 0, 1993, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3326, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2737, 0, 0, 0, 0, 0, 3549, 2935, 0, 0, 0, 2630, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3328, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3026, 3107, 0, 0, 0, 0, 0, 0, 0, 0, 1482, 0, 1944, 0, 0, 0, 0, 0, 0, 3473, 0, 1113, 0, 2259, 0, 0, 0, 0, 0, 0, 0, 3211, 0, 0, 0, 0, 0, 3926, 0, 0, 4035, 0, 0, 0, 0, 0, 0, 2173, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3316, 0, 0, 0, 0, 1600, 0, 0, 0, 3685, 0, 0, 0, 0, 0, 0, 0, 2512, 0, 0, 2667, 4061, 0, 0, 0, 0, 0, 0, 0, 3304, 0, 0, 918, 2934, 0, 0, 0, 0, 3038, 0, 2646, 0, 0, 0, 0, 0, 0, 0, 3331, 0, 0, 0, 1330, 0, 3932, 0, 0, 0, 0, 1601, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3488, 0, 3452, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1989, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3578, 2160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1500, 0, 0, 3393, 0, 0, 0, 0, 0, 843, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2063, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3246, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2067, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3890, 0, 0, 2616, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2831, 0, 0, 0, 475, 1201, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3710, 0, 0, 0, 0, 315, 0, 2636, 3811, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3329, 0, 0, 3702, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2935, 0, 0, 0, 0, 0, 0, 464, 0, 1637, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 806, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4021, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3821, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1757, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3811, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3048, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3446, 0, 0, 0, 0, 0, 0, 0, 1563, 0, 0, 0, 0, 0, 0, 1532, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2999, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3440, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1989, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3162, 3560, 0, 2653, 0, 0, 0, 0, 0, 1483, 0, 1448, 0, 0, 0, 0, 0, 3924, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3060, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2343, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2477, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3824, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 904, 0, 0, 0, 0, 990, 861, 0, 3020, 0, 0, 0, 0, 0, 1908, 0, 0, 2992, 0, 0, 0, 0, 0, 0, 2991, 3688, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3708, 0, 0, 3152, 0, 0, 0, 0, 0, 2781, 0, 634, 3487, 0, 0, 0, 2561, 0, 3314, 0, 0, 0, 1724, 0, 0, 0, 3578, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3141, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2553, 0, 0, 2344, 0, 0, 0, 0, 0, 4023, 3078, 0, 0, 0, 0, 0, 0, 0, 0, 2927, 0, 3872, 0, 0, 0, 0, 0, 2419, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2092, 0, 0, 0, 0, 0, 3787, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3662, 0, 0, 0, 0, 0, 0, 3697, 0, 0, 0, 0, 0, 0, 2852, 0, 0, 3470, 0, 0, 0, 329, 0, 0, 0, 0, 0, 0, 0, 3434, 2303, 4043, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1475, 0, 0, 0, 1397, 0, 0, 0, 0, 0, 0, 1332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3059, 4010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 766, 2801, 0, 0, 0, 0, 3603, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2222, 0, 0, 0, 0, 0, 0, 1755, 2978, 2063, 0, 0, 0, 0, 2959, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2854, 0, 0, 0, 3996, 0, 0, 0, 0, 3710, 0, 0, 2651, 3170, 0, 0, 0, 892, 3031, 0, 0, 0, 0, 0, 0, 0, 0, 1483, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2359, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3404, 0, 0, 0, 0, 0, 0, 2353, 0, 0, 0, 0, 1258, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2993, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2883, 0, 0, 0, 0, 0, 0, 0, 0, 2098, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3248, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3985, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3851, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2129, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3155, 0, 0, 0, 0, 0, 0, 0, 0, 624, 0, 0, 0, 0, 0, 0, 0, 0, 1613, 0, 0, 0, 2890, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2808, 2662, 0, 0, 3495, 0, 0, 0, 1959, 0, 0, 0, 0, 0, 0, 0, 2936, 0, 0, 0, 0, 0, 2932, 0, 0, 0, 0, 2200, 0, 0, 0, 0, 3368, 0, 3051, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2617, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3445, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3464, 2988, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3541, 0, 0, 0, 0, 3054, 0, 3279, 0, 0, 0, 0, 0, 435, 0, 389, 0, 0, 0, 0, 0, 0, 0, 0, 3471, 0, 825, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3883, 0, 0, 0, 0, 0, 424, 0, 1768, 0, 0, 2486, 0, 0, 0, 2817, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2387, 0, 1533, 2660, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3234, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2411, 0, 0, 0, 0, 0, 3956, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3500, 0, 0, 0, 0, 0, 0, 1786, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2855, 0, 0, 0, 3691, 0, 0, 0, 0, 0, 2207, 0, 0, 0, 0, 0, 0, 0, 0, 2268, 3367, 0, 2719, 0, 0, 0, 0, 0, 0, 2504, 3910, 0, 0, 0, 4044, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 729, 0, 0, 2664, 0, 0, 0, 0, 0, 3589, 0, 0, 0, 0, 0, 0, 2734, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3569, 0, 0, 0, 0, 2244, 0, 0, 3593, 0, 3303, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3101, 0, 2109, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4081, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3676, 0, 3970, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 413, 0, 0, 3971, 0, 0, 0, 0, 2521, 0, 0, 0, 0, 0, 0, 3484, 0, 3239, 0, 0, 3295, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3356, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2329, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2160, 3651, 2933, 0, 0, 0, 3969, 0, 0, 0, 3521, 0, 3938, 0, 0, 0, 0, 0, 0, 0, 0, 1082, 0, 0, 0, 0, 0, 0, 0, 0, 1265, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3653, 0, 3400, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3031, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3085, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2023, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3902, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 918, 0, 0, 0, 3640, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 472, 0, 0, 0, 0, 3147, 0, 0, 0, 0, 0, 0, 0, 0, 1670, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1982, 4081, 0, 0, 0, 0, 0, 0, 0, 1676, 0, 1250, 0, 0, 0, 0, 0, 2762, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4049, 0, 0, 0, 3979, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 706, 0, 0, 0, 0, 0, 1774, 0, 0, 0, 0, 0, 0, 0, 3125, 0, 0, 4079, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3995, 0, 0, 3392, 0, 0, 0, 0, 1815, 3631, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3742, 0, 0, 3825, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2832, 2005, 0, 3943, 0, 0, 0, 0, 0, 3836, 0, 193, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2729, 0, 0, 0, 0, 2678, 0, 0, 0, 0, 0, 0, 3887, 0, 0, 0, 0, 2910, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1312, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1342, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3980, 0, 0, 0, 0, 0, 0, 0, 1555, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3657, 0, 0, 0, 0, 0, 0, 1571, 0, 0, 0, 0, 0, 0, 0, 2535, 0, 0, 0, 3147, 1444, 0, 0, 326, 0, 0, 0, 0, 0, 0, 0, 2441, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1897, 0, 331, 0, 0, 0, 0, 0, 2471, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3334, 0, 0, 0, 0, 0, 0, 0, 4058, 2390, 1712, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1951, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1864, 0, 0, 2302, 0, 0, 0, 0, 0, 0, 3228, 3831, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3649, 0, 0, 0, 0, 0, 2902, 0, 0, 2923, 0, 0, 404, 2936, 3202, 0, 0, 0, 0, 0, 0, 1867, 0, 3619, 0, 0, 0, 0, 2549, 0, 0, 0, 0, 0, 0, 2666, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3479, 0, 0, 0, 0, 0, 3499, 0, 0, 0, 0, 0, 0, 0, 0, 2069, 0, 3439, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3026, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3917, 0, 0, 0, 0, 0, 0, 3733, 0, 0, 0, 1829, 0, 0, 0, 0, 0, 0, 1892, 0, 0, 0, 0, 1129, 0, 0, 0, 0, 2079, 0, 3133, 0, 3557, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1862, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2797, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3748, 0, 0, 0, 0, 0, 0, 3815, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3550, 926, 3637, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2733, 0, 3564, 0, 0, 3914, 0, 2058, 0, 0, 0, 0, 0, 0, 2107, 0, 0, 2003, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3013, 0, 914, 0, 0, 0, 1533, 0, 0, 0, 0, 0, 0, 3620, 291, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3440, 2920, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3015, 0, 535, 0, 0, 0, 0, 0, 3410, 0, 0, 0, 0, 0, 0, 3632, 2407, 0, 0, 0, 0, 0, 0, 0, 0, 2728, 0, 0, 4040, 0, 0, 0, 0, 3350, 0, 0, 2612, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3359, 0, 3530, 2229, 0, 0, 0, 0, 3874, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3743, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3776, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3876, 0, 1365, 3871, 0, 0, 0, 0, 0, 0, 462, 2969, 1894, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2194, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2747, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2228, 2845, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3624, 0, 0, 3594, 0, 4013, 0, 0, 0, 0, 662, 0, 2547, 0, 0, 0, 0, 1898, 0, 0, 0, 0, 0, 4077, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 425, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3242, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2321, 0, 0, 0, 3001, 3989, 0, 0, 2307, 0, 0, 0, 0, 0, 0, 0, 0, 3405, 0, 0, 0, 1602, 0, 0, 0, 821, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3495, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1346, 2142, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3635, 0, 0, 2953, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3343, 0, 0, 0, 0, 0, 0, 0, 0, 1920, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 738, 0, 0, 0, 0, 0, 0, 1605, 814, 0, 0, 0, 0, 0, 3844, 0, 0, 0, 0, 0, 0, 4071, 0, 0, 1575, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 865, 0, 2383, 0, 0, 0, 0, 0, 0, 0, 0, 3639, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3864, 0, 0, 0, 2495, 0, 1387, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3460, 0, 0, 0, 0, 0, 0, 0, 3990, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3628, 0, 2839, 0, 3195, 0, 0, 0, 0, 0, 0, 3528, 3956, 1967, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1033, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3469, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3785, 0, 0, 0, 0, 1923, 0, 0, 0, 0, 2023, 0, 0, 0, 0, 1778, 0, 0, 0, 0, 0, 1776, 3885, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3336, 0, 0, 0, 0, 0, 0, 0, 0, 3582, 2818, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2849, 0, 0, 3947, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4003, 0, 0, 0, 3866, 0, 3888, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1430, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3928, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2350, 3354, 2909, 0, 0, 0, 0, 0, 0, 3429, 2356, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3290, 0, 0, 0, 0, 0, 781, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3902, 0, 0, 0, 3948, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3290, 0, 3479, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2916, 0, 0, 0, 0, 0, 3325, 0, 2604, 0, 0, 3474, 0, 3399, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3277, 0, 2051, 0, 0, 0, 3215, 0, 0, 296, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3594, 1861, 1786, 0, 0, 0, 1597, 3410, 4059, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 906, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1825, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 342, 2467, 0, 0, 0, 0, 0, 0, 1497, 0, 0, 0, 0, 0, 3208, 0, 0, 0, 0, 0, 3976, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2727, 3084, 3587, 0, 3644, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2565, 0, 0, 0, 0, 3117, 0, 0, 0, 0, 3604, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2130, 0, 0, 2333, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2915, 0, 0, 0, 0, 0, 0, 0, 2905, 0, 0, 0, 0, 0, 0, 2102, 0, 1549, 0, 3664, 0, 0, 0, 0, 3012, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3998, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1150, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2642, 0, 3824, 0, 0, 0, 0, 0, 0, 2673, 0, 0, 0, 0, 0, 0, 2965, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3649, 0, 0, 472, 0, 0, 0, 0, 1638, 0, 3190, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2590, 0, 0, 0, 0, 0, 0, 4090, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3800, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4001, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3608, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1407, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3571, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3352, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3798, 0, 3520, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3674, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3381, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3895, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1399, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1680, 0, 0, 0, 0, 0, 0, 0, 0, 2807, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2328, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1679, 1573, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3523, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3985, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3916, 0, 0, 0, 0, 0, 0, 2171, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1723, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3270, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2635, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4063, 0, 0, 0, 0, 0, 0, 0, 0, 3166, 0, 1817, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3367, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1987, 0, 0, 0, 0, 0, 1073, 0, 3764, 0, 0, 0, 0, 0, 2911, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 668, 0, 0, 0, 0, 3388, 0, 0, 0, 0, 0, 2035, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2577, 0, 0, 3382, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2777, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2498, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3385, 0, 0, 0, 2568, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2655, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1410, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3522, 0, 0, 0, 0, 0, 0, 3748, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3143, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3482, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3488, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4025, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 486, 0, 736, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3944, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1651, 0, 3142, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2269, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3009, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2391, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1101, 0, 0, 3327, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1225, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3691, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4082, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3969, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3965, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1507, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3655, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3551, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3065, 0, 0, 0, 0, 0, 0, 0, 0, 2300, 0, 3189, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1066, 0, 0, 0, 0, 0, 2595, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2919, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2951, 0, 0, 0, 0, 0, 0, 0, 0, 0, 220, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3028, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1632, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3204, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2046, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1935, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1191, 0, 0, 0, 0, 0, 0, 0, 3601, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2117, 0, 394, 0, 0, 0, 0, 0, 3294, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2982, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2293, 0, 0, 3227, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3943, 0, 0, 0, 0, 0, 2494, 0, 0, 0, 0, 0, 0, 0, 0, 2311, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2474, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3145, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4074, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4037, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1230, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3133, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3997, 0, 0, 0, 3167, 0, 0, 0, 0, 0, 0, 0, 3502, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3531, 0, 2860, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3230, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1916, 0, 0, 0, 0, 0, 0, 0, 992, 0, 2355, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3082, 0, 0, 0, 0, 0, 0, 3356, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 959, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3420, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3946, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2762, 0, 0, 0, 0, 0, 0, 0, 1843, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2998, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2940, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3620, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1838, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1809, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3500, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2003, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3221, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1456, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2431, 0, 0, 0, 0, 0, 0, 1585, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2826, 0, 0, 0, 3939, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2727, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2130, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2743, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2238, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3877, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2851, 0, 0, 0, 0, 0, 0, 3579, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 585, 0, 0, 0, 0, 3823, 0, 3338, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3899, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1881, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1886, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2605, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2096, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3884, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2652, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3630, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2691, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3956, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2724, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2823, 0, 1589, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1811, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3754, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3879, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3887, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3355, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3616, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2720, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3376, 0, 1249, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3540, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3574, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3323, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4003, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1471, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4011, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1468, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3498, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3677, 0, 0, 0, 0, 0, 0, 0, 3746, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3417, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3705, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3626, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3860, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2559, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3768, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3145, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3827, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2524, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2327, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1981, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2308, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3563, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3265, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; const uint16_t H_4096_8192_3d_H_cols[] = { 246, 18, 415, 209, 51, 211, 147, 326, 266, 450, 459, 1119, 227, 213, 9, 38, 390, 369, 624, 271, 30, 270, 59, 32, 498, 1286, 482, 514, 154, 1027, 2, 14, 65, 625, 403, 7, 281, 239, 592, 607, 18, 381, 394, 286, 416, 742, 662, 820, 214, 129, 284, 22, 48, 49, 564, 127, 64, 12, 615, 44, 224, 463, 12, 119, 199, 520, 1358, 1, 436, 397, 102, 94, 414, 259, 451, 3, 443, 135, 21, 368, 70, 162, 286, 236, 728, 36, 5, 305, 363, 568, 93, 431, 72, 37, 453, 35, 393, 296, 317, 505, 41, 269, 367, 96, 59, 464, 221, 532, 66, 81, 563, 120, 140, 32, 252, 314, 289, 217, 85, 289, 394, 371, 44, 53, 94, 88, 4, 9, 715, 361, 455, 106, 762, 253, 303, 352, 263, 189, 114, 391, 103, 822, 516, 357, 573, 79, 87, 75, 33, 16, 257, 356, 237, 90, 35, 424, 116, 119, 51, 838, 305, 76, 40, 309, 290, 176, 34, 236, 280, 83, 58, 1052, 7, 179, 219, 329, 606, 292, 541, 338, 178, 34, 248, 285, 63, 152, 185, 96, 97, 536, 20, 49, 701, 148, 328, 269, 709, 602, 179, 93, 1257, 61, 718, 231, 590, 85, 275, 499, 447, 285, 242, 22, 411, 55, 231, 623, 46, 412, 58, 819, 608, 437, 96, 33, 838, 510, 136, 462, 117, 370, 552, 385, 471, 514, 98, 315, 142, 294, 539, 217, 9, 86, 557, 252, 103, 43, 539, 125, 24, 208, 329, 143, 399, 84, 12, 101, 145, 27, 239, 411, 303, 306, 99, 219, 264, 17, 128, 448, 185, 282, 620, 249, 82, 364, 492, 239, 366, 386, 294, 122, 115, 394, 1, 315, 427, 222, 91, 26, 312, 243, 335, 404, 336, 226, 338, 376, 962, 354, 273, 164, 179, 499, 660, 166, 118, 17, 158, 168, 200, 82, 153, 100, 173, 43, 248, 697, 74, 5, 80, 15, 396, 291, 1236, 152, 613, 134, 2, 121, 85, 37, 126, 752, 193, 5, 347, 474, 45, 507, 998, 25, 130, 350, 38, 195, 134, 520, 14, 693, 12, 759, 425, 159, 214, 384, 389, 824, 278, 48, 318, 273, 498, 65, 968, 340, 61, 553, 88, 342, 457, 165, 1, 160, 149, 82, 13, 6, 39, 216, 172, 140, 461, 111, 873, 253, 106, 128, 317, 137, 194, 99, 586, 68, 112, 259, 236, 251, 159, 1201, 128, 115, 88, 41, 274, 791, 889, 288, 896, 13, 1116, 562, 97, 68, 89, 278, 71, 78, 267, 178, 136, 933, 1188, 710, 200, 374, 77, 943, 55, 194, 18, 485, 6, 437, 283, 208, 164, 11, 224, 536, 373, 94, 148, 174, 57, 561, 426, 12, 426, 72, 507, 236, 144, 604, 403, 5, 51, 231, 11, 97, 59, 20, 583, 28, 166, 399, 53, 37, 68, 216, 81, 87, 5, 305, 964, 47, 80, 723, 42, 490, 708, 427, 1878, 314, 413, 62, 59, 177, 61, 1066, 739, 57, 141, 106, 19, 411, 421, 66, 575, 228, 92, 246, 84, 466, 417, 1593, 125, 1979, 1240, 217, 791, 729, 338, 1277, 984, 1376, 113, 481, 1079, 922, 893, 1993, 1033, 127, 62, 465, 394, 385, 1515, 900, 729, 1470, 1013, 1080, 171, 1512, 945, 207, 759, 997, 430, 282, 878, 952, 760, 744, 1860, 788, 2493, 102, 327, 974, 224, 846, 63, 565, 567, 1423, 255, 1024, 18, 1059, 1428, 2308, 328, 1550, 1022, 740, 266, 867, 566, 68, 187, 884, 472, 241, 3179, 559, 679, 117, 819, 307, 697, 980, 281, 587, 1020, 223, 191, 21, 780, 1433, 152, 670, 2111, 225, 867, 190, 2412, 873, 497, 613, 439, 209, 465, 1857, 302, 1958, 3060, 982, 258, 594, 775, 1242, 781, 53, 85, 424, 114, 1008, 408, 6, 869, 441, 636, 1459, 220, 934, 166, 63, 401, 944, 506, 1460, 831, 1012, 906, 824, 613, 1390, 1743, 708, 110, 38, 155, 2058, 1271, 2638, 2243, 827, 312, 1064, 532, 681, 1872, 811, 1159, 418, 2064, 2773, 492, 1685, 844, 2682, 2669, 1414, 842, 809, 1575, 1012, 1919, 574, 909, 2577, 579, 1254, 1078, 672, 1416, 151, 1778, 753, 1020, 2569, 1212, 614, 714, 1439, 233, 650, 624, 22, 638, 775, 534, 547, 1724, 1126, 3212, 949, 198, 1919, 1097, 556, 475, 1796, 2200, 397, 708, 739, 55, 2264, 184, 1202, 795, 31, 2185, 868, 593, 311, 58, 1482, 704, 2824, 7, 387, 1135, 2216, 1643, 1781, 1569, 627, 146, 226, 1041, 1303, 310, 6, 1929, 1000, 2924, 726, 142, 224, 692, 84, 178, 2813, 1842, 1365, 995, 237, 455, 619, 1281, 1715, 1239, 1167, 116, 273, 976, 528, 1232, 287, 580, 974, 1686, 876, 72, 1638, 104, 906, 597, 766, 2040, 449, 1555, 491, 2579, 421, 1983, 862, 267, 604, 289, 814, 1639, 271, 800, 278, 418, 1305, 1539, 772, 1365, 159, 394, 1468, 1026, 2634, 1328, 2382, 1968, 2658, 1130, 980, 205, 685, 2003, 176, 1088, 73, 159, 1321, 2097, 2496, 554, 1163, 764, 1583, 234, 1792, 656, 2108, 3017, 2376, 1603, 1986, 277, 2857, 3217, 446, 2256, 1074, 1805, 487, 208, 506, 553, 192, 1532, 2228, 416, 1364, 60, 776, 1268, 25, 1017, 37, 435, 1647, 398, 1234, 1302, 1929, 299, 1042, 973, 77, 379, 408, 66, 884, 303, 1703, 953, 513, 96, 1018, 851, 2514, 249, 658, 654, 92, 1598, 2603, 51, 1244, 507, 616, 1062, 2235, 919, 286, 1602, 245, 105, 300, 313, 922, 15, 137, 707, 363, 673, 361, 1689, 753, 511, 3242, 796, 1327, 284, 962, 458, 133, 802, 2699, 140, 670, 175, 2615, 283, 1186, 676, 666, 448, 426, 2884, 259, 2627, 50, 608, 407, 1574, 2755, 213, 68, 684, 1279, 841, 533, 1523, 1554, 853, 1629, 846, 103, 2223, 2024, 1029, 1298, 1278, 1270, 1263, 508, 2362, 772, 1119, 525, 575, 39, 43, 676, 1721, 424, 314, 3349, 384, 1807, 1036, 2113, 1745, 1140, 2527, 123, 872, 3849, 875, 39, 74, 984, 45, 106, 27, 912, 202, 41, 693, 107, 402, 131, 768, 967, 805, 524, 304, 282, 147, 967, 1543, 853, 836, 2311, 241, 265, 1463, 1624, 188, 956, 27, 991, 2019, 249, 363, 196, 1408, 916, 395, 355, 1792, 1508, 2166, 253, 2469, 1098, 1799, 1098, 569, 2431, 272, 1630, 386, 182, 1041, 451, 232, 1648, 3263, 1680, 1531, 705, 1609, 2557, 1113, 823, 1806, 329, 2180, 2163, 790, 764, 1276, 1000, 1757, 22, 2052, 336, 1224, 2610, 1187, 1035, 314, 1768, 1950, 1587, 181, 269, 744, 1701, 909, 460, 1477, 716, 969, 2197, 1203, 706, 2180, 2239, 3501, 294, 968, 979, 1229, 73, 153, 249, 2277, 99, 1875, 551, 461, 1572, 2174, 1519, 316, 1666, 3383, 75, 58, 810, 1136, 2252, 381, 914, 1301, 800, 456, 1781, 1584, 799, 154, 372, 467, 2836, 834, 112, 3073, 1331, 128, 564, 338, 1431, 560, 1169, 939, 8, 20, 364, 3300, 144, 883, 400, 183, 2920, 2643, 42, 1090, 3215, 358, 300, 842, 1605, 70, 404, 1761, 123, 1525, 523, 1856, 548, 225, 3291, 969, 555, 692, 2366, 841, 2769, 1620, 878, 86, 464, 70, 817, 447, 622, 515, 1306, 2713, 1156, 327, 66, 131, 1247, 2683, 572, 1870, 747, 892, 1103, 1242, 1861, 2295, 770, 129, 1739, 366, 1877, 513, 1940, 1845, 682, 711, 194, 201, 1268, 2296, 1990, 227, 1109, 495, 2010, 637, 2513, 1560, 2023, 763, 526, 591, 1630, 278, 1372, 262, 1616, 655, 2757, 553, 1521, 3102, 191, 343, 785, 865, 2359, 724, 3195, 913, 1051, 2826, 1317, 2535, 1405, 367, 1495, 1649, 123, 682, 563, 82, 1768, 904, 135, 433, 2886, 107, 1661, 1908, 1127, 503, 1653, 964, 1440, 1127, 345, 2156, 36, 2449, 1748, 1146, 519, 26, 1409, 1706, 953, 1322, 349, 403, 2304, 583, 167, 649, 2506, 151, 2790, 126, 205, 957, 2689, 307, 1444, 1854, 483, 446, 786, 781, 1947, 808, 375, 53, 669, 2118, 558, 612, 550, 410, 2821, 1105, 3149, 518, 796, 1589, 828, 287, 124, 581, 1670, 366, 1582, 1137, 365, 1870, 977, 81, 1654, 1304, 386, 56, 241, 2168, 1281, 1344, 53, 336, 486, 588, 710, 89, 758, 1045, 1401, 879, 17, 1198, 67, 133, 2391, 1379, 144, 2394, 1173, 1824, 67, 2232, 18, 1360, 130, 3076, 905, 2827, 1103, 977, 2196, 1117, 1744, 2688, 298, 684, 586, 1325, 731, 1370, 1529, 268, 1329, 13, 209, 523, 2359, 1558, 1436, 2159, 2646, 1320, 348, 854, 501, 1014, 2656, 1580, 136, 795, 1925, 1080, 2782, 1699, 82, 247, 2060, 246, 2585, 1206, 1522, 887, 1152, 1536, 529, 693, 2167, 28, 1569, 535, 399, 1400, 552, 1166, 1420, 426, 1928, 1096, 898, 1430, 797, 1964, 226, 236, 1336, 844, 1231, 254, 1525, 2988, 1266, 783, 30, 1658, 2345, 939, 352, 482, 1622, 791, 1414, 113, 490, 584, 316, 481, 637, 204, 92, 1267, 365, 89, 1839, 1533, 1888, 883, 376, 771, 925, 383, 979, 2565, 557, 788, 881, 471, 510, 420, 805, 265, 902, 355, 2432, 2005, 201, 491, 666, 895, 1006, 223, 1415, 1178, 1750, 1602, 125, 301, 2142, 1879, 154, 482, 713, 1162, 522, 2018, 1231, 1941, 649, 1279, 327, 879, 662, 664, 995, 497, 1153, 2235, 2085, 242, 358, 112, 1694, 61, 2071, 657, 630, 1914, 511, 432, 95, 2291, 2242, 771, 257, 69, 65, 385, 1649, 778, 847, 15, 1333, 2184, 210, 1410, 2382, 2039, 3252, 717, 664, 71, 2707, 232, 1921, 466, 3, 604, 1532, 110, 798, 578, 561, 2101, 1825, 1005, 2222, 26, 1141, 1910, 653, 458, 931, 351, 515, 811, 423, 1085, 306, 1396, 142, 768, 1344, 992, 1772, 343, 2667, 177, 583, 145, 1021, 743, 1348, 2182, 1956, 350, 1194, 48, 648, 2413, 668, 483, 2434, 1513, 453, 447, 1323, 861, 1994, 379, 2065, 500, 880, 332, 181, 339, 626, 1242, 291, 52, 2409, 723, 183, 754, 1454, 119, 2423, 1069, 399, 96, 1025, 959, 1767, 2784, 1147, 1726, 121, 1902, 708, 768, 34, 1468, 1952, 1586, 470, 173, 835, 1779, 1419, 90, 1334, 1090, 216, 126, 1, 2704, 1408, 180, 282, 2218, 169, 1765, 1321, 950, 732, 653, 189, 635, 76, 1544, 2484, 1662, 749, 983, 217, 305, 1112, 1967, 923, 1121, 1230, 3760, 847, 12, 929, 1388, 330, 605, 80, 836, 933, 1579, 265, 3242, 696, 627, 1014, 1250, 952, 463, 1149, 724, 269, 1102, 2161, 2377, 276, 590, 511, 966, 865, 2625, 2149, 1405, 398, 1069, 579, 960, 3211, 184, 1295, 413, 630, 1156, 1955, 2949, 1041, 1161, 1049, 76, 1957, 2734, 1438, 332, 1882, 2718, 42, 196, 1260, 1578, 1182, 1428, 329, 1772, 1099, 758, 170, 555, 778, 1003, 1191, 685, 479, 1812, 774, 596, 153, 2277, 319, 1241, 1189, 1644, 918, 1740, 258, 932, 496, 460, 54, 1976, 2281, 103, 1927, 608, 167, 1006, 1426, 2588, 996, 2461, 1099, 986, 1699, 1228, 1297, 749, 1271, 1636, 709, 2066, 174, 1547, 462, 538, 260, 735, 1168, 1723, 496, 83, 637, 1343, 2203, 3290, 1009, 317, 913, 1804, 290, 1992, 1353, 263, 2095, 186, 1718, 1332, 498, 117, 362, 280, 761, 471, 105, 284, 2254, 1221, 1258, 943, 1063, 787, 546, 2852, 111, 1033, 964, 1819, 91, 535, 840, 1615, 1906, 515, 234, 2033, 220, 277, 1744, 180, 1811, 841, 371, 1044, 972, 1114, 827, 876, 3116, 740, 531, 718, 1269, 1617, 157, 941, 71, 1659, 639, 287, 1867, 1378, 3424, 75, 1663, 1451, 480, 618, 375, 2682, 803, 1399, 536, 1697, 86, 997, 1347, 2046, 606, 73, 57, 522, 2691, 54, 2514, 333, 1773, 1371, 320, 1043, 3141, 32, 302, 334, 1193, 1876, 576, 91, 1101, 955, 377, 426, 1175, 543, 445, 825, 590, 98, 894, 679, 1471, 1653, 2627, 2007, 1393, 3364, 208, 264, 342, 16, 837, 124, 728, 1641, 1892, 271, 1826, 1730, 976, 1289, 368, 1572, 1358, 1812, 1576, 264, 1457, 1086, 1054, 509, 1991, 427, 662, 1690, 612, 330, 2021, 1282, 2689, 1338, 176, 109, 2100, 751, 37, 57, 858, 2145, 683, 360, 756, 1272, 2801, 105, 209, 400, 220, 1165, 212, 2906, 2021, 1663, 1372, 670, 1860, 250, 1142, 1091, 471, 1496, 388, 235, 433, 702, 1444, 141, 2059, 2007, 46, 274, 546, 292, 946, 732, 603, 444, 1091, 454, 276, 483, 28, 2449, 321, 11, 856, 19, 134, 962, 1991, 482, 1202, 2415, 1370, 259, 615, 235, 1411, 1138, 1294, 872, 1542, 2292, 2218, 49, 2894, 1937, 1093, 1072, 766, 138, 192, 1203, 502, 119, 112, 494, 3137, 393, 2040, 171, 2002, 656, 160, 1345, 2077, 985, 1752, 160, 51, 212, 1923, 322, 297, 407, 598, 1023, 554, 588, 229, 1678, 1197, 2458, 2984, 308, 1019, 412, 1613, 2677, 830, 2906, 339, 475, 14, 477, 256, 820, 641, 1675, 227, 690, 311, 488, 1013, 535, 1345, 1057, 475, 561, 137, 1271, 409, 536, 1617, 541, 712, 402, 940, 518, 206, 1082, 2446, 1140, 508, 854, 318, 677, 1634, 161, 1226, 991, 382, 928, 1095, 201, 894, 1094, 685, 1764, 671, 285, 1608, 942, 1924, 2626, 1842, 359, 2099, 187, 213, 23, 62, 1477, 1750, 1514, 1702, 318, 1028, 1944, 678, 139, 1791, 428, 849, 82, 808, 2423, 1742, 560, 1498, 772, 2324, 97, 580, 1891, 541, 1124, 480, 341, 179, 527, 243, 2979, 128, 64, 3512, 1424, 100, 953, 1220, 2055, 994, 2247, 2954, 493, 2025, 2347, 577, 354, 504, 478, 498, 701, 683, 3560, 761, 793, 3173, 2041, 1643, 2325, 869, 651, 551, 364, 74, 611, 682, 2349, 2344, 468, 806, 299, 1725, 1288, 124, 21, 878, 890, 406, 185, 570, 2249, 773, 955, 35, 1262, 638, 3536, 1510, 335, 1185, 952, 1525, 325, 256, 316, 18, 1739, 359, 1619, 667, 228, 139, 671, 1025, 814, 2144, 725, 367, 1061, 1298, 2297, 640, 741, 1399, 779, 3042, 408, 3041, 2200, 347, 1701, 1722, 254, 210, 575, 129, 1149, 1960, 452, 1207, 117, 1099, 2026, 1486, 639, 448, 1898, 1016, 2022, 450, 345, 479, 140, 69, 155, 954, 1379, 2312, 340, 1352, 373, 215, 1822, 923, 47, 414, 609, 1540, 319, 1569, 304, 428, 542, 829, 380, 163, 984, 1089, 447, 419, 562, 1749, 3306, 171, 1559, 922, 319, 1049, 894, 927, 2368, 2907, 2361, 242, 2942, 944, 1256, 690, 232, 730, 386, 1713, 78, 821, 195, 1339, 500, 392, 87, 1741, 355, 237, 297, 825, 1712, 182, 622, 1992, 1448, 893, 1347, 1104, 1326, 310, 524, 1355, 1625, 561, 809, 437, 1730, 633, 467, 665, 156, 1034, 390, 2967, 226, 999, 290, 862, 918, 1056, 1576, 1378, 1751, 59, 552, 1893, 309, 628, 1308, 204, 1537, 1734, 1441, 1628, 1288, 276, 3047, 1587, 1181, 998, 149, 1808, 1224, 545, 295, 120, 859, 539, 2065, 266, 45, 1473, 741, 118, 988, 377, 375, 2806, 2404, 755, 203, 2381, 559, 179, 3055, 898, 1511, 125, 1855, 66, 618, 1632, 304, 1413, 1591, 74, 823, 385, 102, 890, 258, 248, 308, 921, 25, 2090, 1694, 267, 642, 1850, 1195, 3193, 1442, 296, 1080, 1357, 521, 1311, 1123, 228, 940, 2177, 34, 1255, 35, 88, 97, 1465, 2608, 2337, 333, 161, 2673, 44, 268, 1126, 1090, 812, 668, 937, 696, 2545, 83, 686, 365, 64, 84, 1114, 1997, 1629, 822, 1045, 213, 2153, 1586, 640, 195, 230, 1369, 1633, 31, 1124, 1388, 1877, 206, 164, 2424, 1116, 2300, 1634, 71, 2058, 934, 1249, 427, 110, 1804, 1255, 141, 1375, 1198, 620, 1404, 540, 1882, 133, 681, 1595, 3403, 455, 2479, 1849, 273, 737, 402, 1250, 2624, 1777, 596, 1758, 341, 3292, 1284, 784, 582, 205, 1702, 411, 2140, 46, 219, 320, 852, 192, 505, 1595, 373, 199, 194, 835, 1770, 24, 1112, 6, 147, 431, 1440, 1553, 38, 194, 79, 1992, 1826, 155, 100, 838, 1544, 1938, 762, 1554, 897, 533, 601, 1859, 2563, 162, 2693, 2171, 1053, 1477, 526, 611, 52, 1217, 890, 61, 599, 1504, 139, 727, 3202, 571, 494, 1166, 2520, 234, 442, 1503, 806, 1304, 1365, 104, 557, 499, 3122, 1235, 77, 681, 458, 2188, 1085, 562, 565, 694, 15, 5, 1362, 2056, 604, 567, 705, 198, 23, 1089, 856, 1117, 1341, 1851, 2210, 1101, 651, 1652, 2191, 432, 341, 1356, 1530, 1833, 38, 1236, 235, 576, 1239, 1163, 1060, 1016, 3612, 400, 308, 283, 1285, 1454, 552, 485, 1969, 296, 418, 324, 648, 326, 839, 609, 891, 1037, 1354, 1958, 221, 2983, 222, 1087, 2978, 434, 2397, 1921, 44, 270, 1260, 551, 873, 396, 1230, 172, 2438, 1620, 1692, 1650, 792, 190, 1615, 1779, 3433, 1959, 414, 1038, 1138, 42, 869, 2907, 1803, 623, 116, 755, 368, 568, 2501, 1148, 1671, 206, 195, 7, 145, 773, 838, 1170, 2193, 864, 1053, 804, 2456, 636, 912, 1392, 643, 1175, 1015, 660, 1476, 1205, 598, 1027, 848, 935, 938, 626, 2272, 165, 1070, 382, 323, 615, 981, 1171, 1402, 789, 920, 1350, 1801, 2367, 93, 1133, 1, 1688, 2050, 2383, 2315, 1155, 439, 1081, 495, 1792, 136, 240, 285, 1390, 1488, 64, 101, 272, 2695, 393, 2256, 1895, 1880, 1391, 2468, 625, 1259, 1789, 678, 1928, 855, 765, 108, 2352, 763, 17, 1717, 2169, 2070, 491, 1073, 1232, 219, 1362, 917, 274, 223, 2713, 629, 1009, 907, 30, 76, 789, 889, 618, 1010, 801, 830, 221, 214, 1326, 581, 492, 1708, 563, 203, 454, 79, 115, 1302, 2274, 1195, 211, 2366, 706, 1202, 2562, 2613, 376, 1240, 1487, 134, 1488, 1537, 980, 1556, 337, 230, 1371, 1461, 100, 815, 2667, 3154, 936, 818, 1732, 911, 2207, 343, 43, 477, 807, 1870, 455, 586, 1120, 289, 794, 1387, 1762, 2316, 152, 895, 1000, 985, 1391, 539, 1233, 850, 754, 654, 207, 211, 1002, 547, 135, 771, 479, 610, 2331, 720, 787, 834, 691, 612, 103, 512, 1194, 489, 1773, 2492, 1594, 173, 2230, 86, 855, 961, 3105, 1060, 1172, 156, 356, 860, 10, 424, 625, 629, 1147, 1312, 2341, 293, 1341, 579, 1472, 29, 431, 3353, 2559, 1324, 1607, 295, 2209, 658, 3035, 1646, 431, 975, 1541, 2511, 114, 120, 1222, 1476, 439, 29, 1243, 1212, 550, 3135, 2479, 903, 47, 2240, 1342, 48, 1619, 1034, 1484, 528, 1485, 1072, 3280, 1361, 116, 61, 1510, 1956, 55, 292, 1504, 252, 2749, 1296, 1951, 587, 1642, 806, 1311, 132, 755, 163, 362, 1211, 186, 244, 95, 603, 389, 1741, 782, 2471, 1387, 966, 1410, 3014, 762, 1144, 168, 3608, 1743, 960, 211, 2050, 376, 750, 1187, 357, 1854, 80, 328, 1537, 1229, 193, 1247, 1310, 2500, 406, 963, 1363, 815, 665, 229, 1050, 25, 986, 37, 1323, 10, 1109, 2714, 861, 478, 810, 829, 2486, 2027, 1068, 407, 40, 945, 1208, 2305, 1074, 631, 41, 1415, 2802, 180, 157, 899, 450, 677, 989, 970, 346, 1904, 1704, 207, 315, 317, 474, 20, 655, 468, 1266, 228, 932, 2522, 1121, 2491, 247, 432, 2343, 927, 1805, 98, 689, 688, 1322, 1921, 2783, 51, 2333, 2690, 1522, 190, 669, 1244, 294, 659, 322, 1939, 556, 904, 2011, 286, 32, 356, 547, 1733, 1821, 279, 712, 647, 2392, 1231, 436, 902, 517, 416, 1007, 409, 142, 646, 3285, 2037, 7, 1295, 1158, 1549, 1823, 381, 673, 525, 832, 143, 1135, 683, 262, 1906, 1737, 303, 2032, 698, 522, 1714, 735, 476, 1434, 1465, 318, 218, 295, 1358, 91, 2477, 2674, 1172, 987, 769, 1853, 391, 173, 766, 331, 740, 1993, 829, 1684, 1965, 1474, 271, 2460, 634, 646, 148, 2012, 661, 152, 134, 104, 197, 149, 1412, 1040, 555, 703, 90, 2270, 2126, 2111, 1036, 169, 3186, 584, 1004, 1048, 1014, 617, 645, 891, 1632, 1412, 972, 47, 870, 337, 2405, 688, 22, 938, 1877, 1577, 1261, 353, 1493, 1872, 636, 19, 1267, 931, 1019, 916, 1431, 122, 1628, 8, 109, 504, 115, 2156, 1136, 1293, 695, 2807, 635, 175, 1665, 404, 2779, 672, 214, 1428, 202, 191, 1597, 2133, 745, 244, 750, 1594, 107, 719, 1071, 28, 738, 269, 603, 1703, 321, 1632, 361, 253, 1980, 2581, 2014, 29, 352, 2530, 2518, 1168, 92, 337, 1470, 1210, 3389, 610, 248, 1727, 1570, 998, 1277, 1911, 3283, 695, 1517, 33, 920, 1558, 323, 1658, 429, 910, 168, 1874, 2048, 517, 289, 578, 951, 2017, 1011, 688, 998, 250, 2130, 90, 1001, 773, 975, 1044, 396, 208, 643, 1904, 1696, 93, 2105, 150, 809, 3000, 27, 1584, 1971, 1431, 1359, 1490, 1883, 1376, 1156, 2107, 1009, 2771, 3541, 2304, 1256, 62, 714, 368, 1720, 415, 1681, 608, 2937, 182, 2200, 1246, 423, 2215, 1385, 1001, 1957, 469, 5, 130, 633, 978, 200, 1, 394, 925, 4, 1977, 1376, 450, 1298, 908, 765, 1402, 274, 1631, 306, 69, 299, 442, 701, 751, 1274, 387, 957, 1640, 162, 582, 1810, 832, 875, 2670, 326, 230, 438, 966, 1455, 324, 1296, 938, 285, 215, 884, 122, 334, 1479, 334, 657, 1320, 1052, 3151, 1039, 621, 218, 1085, 918, 895, 1269, 1316, 335, 83, 787, 756, 1337, 2447, 602, 45, 581, 832, 399, 736, 147, 13, 1162, 1859, 2032, 1017, 11, 2664, 429, 101, 514, 196, 1875, 2267, 372, 623, 549, 1278, 1583, 264, 217, 1301, 3158, 1734, 1965, 760, 359, 2853, 1709, 1205, 463, 860, 1890, 60, 1816, 1196, 1363, 417, 420, 370, 2653, 1184, 10, 501, 2598, 484, 1761, 999, 1604, 853, 1695, 1141, 721, 185, 2030, 713, 617, 820, 1319, 965, 1526, 1973, 1552, 783, 1292, 1671, 494, 33, 261, 469, 999, 156, 118, 2443, 1186, 353, 188, 1674, 606, 757, 680, 165, 767, 347, 624, 1681, 56, 1129, 594, 113, 336, 1549, 1654, 430, 797, 1193, 93, 333, 193, 1395, 815, 1460, 1897, 566, 1013, 467, 379, 905, 598, 1805, 1884, 1640, 1425, 267, 1700, 1447, 2325, 640, 242, 460, 930, 1516, 2746, 350, 2396, 298, 3243, 592, 1132, 218, 473, 788, 2739, 1540, 2672, 2159, 744, 340, 1964, 1301, 607, 387, 94, 137, 742, 686, 302, 1523, 993, 162, 202, 620, 1171, 959, 896, 43, 2601, 257, 1145, 777, 1089, 638, 1503, 2690, 344, 2217, 291, 2754, 715, 2012, 888, 174, 575, 1082, 383, 449, 158, 871, 222, 1356, 1158, 2143, 813, 360, 1285, 487, 346, 866, 253, 585, 833, 2221, 1207, 1326, 2676, 497, 519, 1417, 2551, 1374, 971, 1684, 425, 725, 545, 186, 371, 542, 1547, 143, 723, 14, 813, 1233, 67, 703, 570, 85, 626, 1360, 851, 1961, 2693, 78, 1598, 164, 858, 677, 157, 322, 3007, 1756, 1611, 433, 668, 1506, 1513, 2573, 413, 729, 855, 2376, 262, 2774, 571, 1470, 1850, 128, 1291, 111, 1159, 3024, 1812, 1131, 2728, 883, 859, 240, 1328, 1445, 897, 1163, 862, 1404, 767, 163, 1553, 849, 1190, 485, 824, 595, 1386, 1210, 2406, 1786, 449, 476, 2294, 920, 301, 1979, 470, 1668, 2261, 95, 1606, 243, 924, 1330, 915, 364, 388, 1557, 248, 2, 706, 473, 826, 1132, 913, 633, 260, 2132, 2483, 987, 652, 144, 342, 569, 801, 221, 54, 2245, 1119, 804, 8, 1527, 1735, 634, 52, 703, 3487, 527, 3266, 505, 2102, 602, 443, 3110, 1624, 1059, 1280, 1432, 1495, 1018, 1827, 2764, 472, 2947, 1796, 378, 1737, 245, 1774, 519, 1200, 2208, 616, 650, 1382, 529, 680, 245, 2122, 632, 332, 1546, 1674, 1321, 2934, 388, 281, 1436, 344, 200, 1508, 2630, 730, 4, 1055, 362, 3165, 138, 65, 1665, 24, 256, 187, 1155, 280, 970, 114, 559, 679, 1788, 451, 444, 489, 946, 1179, 440, 138, 2686, 307, 108, 9, 58, 111, 1409, 370, 313, 742, 605, 1101, 1637, 512, 728, 1609, 331, 946, 1292, 1033, 1500, 238, 338, 1076, 59, 1140, 750, 1212, 1190, 1588, 461, 57, 1157, 2943, 1452, 610, 2054, 1572, 246, 1978, 1862, 1645, 1664, 850, 1164, 736, 49, 2882, 949, 1309, 34, 1408, 2676, 272, 1942, 1037, 39, 420, 40, 4, 537, 1685, 94, 1007, 293, 1366, 711, 614, 1656, 1658, 2594, 2064, 1988, 360, 1061, 848, 132, 630, 2364, 726, 1769, 1438, 2867, 797, 261, 1907, 849, 1306, 2324, 1371, 1028, 283, 345, 1494, 1659, 656, 56, 1120, 87, 3235, 277, 233, 486, 790, 1600, 215, 722, 1199, 769, 1016, 1437, 1100, 2822, 293, 573, 2616, 456, 294, 692, 184, 2663, 409, 666, 136, 1939, 1169, 2075, 50, 251, 1223, 149, 717, 3020, 441, 1759, 131, 326, 958, 2250, 436, 644, 1218, 745, 1164, 661, 1254, 1106, 1183, 534, 484, 354, 585, 3656, 733, 933, 580, 448, 2778, 1514, 1952, 229, 369, 765, 516, 126, 1130, 991, 1325, 1339, 118, 973, 2839, 1357, 2819, 279, 1786, 2727, 1386, 1580, 1636, 1095, 480, 237, 669, 574, 225, 652, 1548, 1980, 617, 1150, 472, 985, 1960, 935, 106, 255, 1710, 1926, 1279, 1124, 702, 1121, 1722, 2159, 3284, 1753, 1268, 499, 631, 380, 760, 284, 1383, 2957, 1996, 23, 1195, 2128, 3, 464, 2804, 2466, 1544, 425, 97, 3220, 278, 508, 1780, 35, 16, 1310, 719, 1189, 2794, 1418, 2946, 1174, 857, 2372, 2174, 371, 243, 1699, 641, 1263, 1062, 2789, 410, 189, 664, 589, 675, 1403, 2039, 854, 63, 1238, 357, 716, 1351, 2624, 3076, 1616, 177, 1234, 542, 129, 1868, 397, 486, 298, 647, 1403, 2586, 699, 238, 224, 1866, 1117, 836, 1088, 2173, 1514, 415, 3189, 389, 1073, 1467, 2101, 1319, 1253, 531, 499, 2136, 108, 973, 1768, 722, 1303, 694, 146, 2214, 273, 1867, 1066, 524, 484, 2423, 1696, 41, 958, 115, 12, 1693, 1940, 36, 712, 661, 808, 1131, 446, 470, 549, 285, 244, 257, 749, 279, 452, 634, 1265, 424, 425, 327, 50, 446, 426, 727, 414, 138, 825, 183, 348, 1252, 1385, 1197, 758, 173, 1459, 203, 647, 1075, 939, 434, 291, 415, 410, 1939, 1134, 176, 816, 482, 591, 514, 982, 685, 991, 476, 1063, 910, 75, 367, 364, 997, 404, 363, 781, 947, 121, 445, 465, 666, 766, 270, 887, 1430, 5, 752, 1173, 238, 579, 448, 399, 679, 613, 990, 177, 33, 480, 239, 175, 736, 353, 1154, 184, 674, 521, 674, 697, 434, 475, 1664, 458, 673, 150, 1106, 669, 454, 771, 107, 915, 939, 181, 181, 665, 894, 924, 602, 386, 1048, 487, 440, 157, 415, 327, 634, 1522, 891, 512, 1059, 534, 705, 101, 466, 312, 393, 1040, 847, 482, 471, 166, 1277, 1225, 626, 441, 591, 843, 195, 640, 271, 1062, 851, 629, 769, 559, 148, 317, 515, 220, 1182, 411, 282, 319, 130, 843, 566, 535, 235, 1053, 332, 448, 584, 681, 359, 1381, 223, 407, 671, 385, 467, 1578, 204, 432, 896, 453, 644, 537, 680, 749, 316, 607, 698, 375, 369, 423, 1104, 235, 205, 950, 355, 81, 1023, 568, 674, 810, 749, 609, 336, 325, 1354, 504, 800, 803, 829, 309, 1262, 610, 962, 507, 877, 59, 918, 959, 281, 627, 372, 1590, 574, 949, 1382, 472, 389, 318, 1090, 668, 318, 631, 528, 555, 1000, 467, 718, 757, 167, 1358, 313, 420, 851, 296, 887, 255, 599, 306, 233, 274, 556, 224, 189, 326, 572, 973, 1230, 286, 31, 486, 223, 976, 1591, 796, 649, 660, 576, 254, 613, 118, 516, 846, 252, 352, 1430, 447, 217, 1133, 771, 586, 903, 460, 778, 199, 127, 572, 103, 361, 516, 982, 268, 548, 970, 354, 429, 662, 720, 498, 576, 711, 1497, 494, 279, 315, 585, 700, 691, 340, 176, 324, 170, 814, 497, 206, 270, 251, 382, 780, 473, 953, 321, 79, 182, 163, 1017, 546, 1456, 511, 962, 645, 592, 203, 493, 804, 251, 1215, 358, 614, 917, 593, 91, 809, 1026, 1255, 333, 1101, 285, 445, 338, 836, 685, 717, 38, 970, 983, 174, 769, 392, 567, 871, 419, 50, 418, 511, 553, 164, 970, 428, 296, 1109, 99, 905, 469, 362, 561, 274, 600, 137, 930, 16, 202, 292, 270, 565, 784, 405, 1124, 657, 173, 395, 1302, 193, 212, 108, 808, 469, 212, 364, 546, 492, 476, 1450, 956, 577, 597, 136, 558, 1004, 1039, 843, 904, 644, 1201, 682, 343, 154, 215, 790, 179, 287, 595, 632, 193, 1150, 1626, 766, 660, 561, 401, 1340, 57, 204, 139, 830, 97, 1138, 1023, 262, 497, 19, 1019, 565, 1052, 146, 348, 357, 154, 598, 523, 14, 967, 155, 825, 275, 803, 1300, 648, 197, 591, 313, 346, 327, 111, 427, 737, 917, 374, 651, 555, 109, 89, 456, 800, 250, 96, 1259, 1095, 72, 469, 1370, 60, 968, 968, 902, 2000, 520, 435, 1230, 142, 428, 169, 1415, 810, 172, 577, 132, 588, 477, 434, 106, 1010, 1071, 158, 275, 1071, 2864, 1447, 2244, 908, 2241, 2058, 2142, 2519, 1324, 454, 2875, 3276, 2523, 3315, 1510, 2494, 1687, 3091, 2083, 1963, 1915, 845, 986, 794, 1198, 2071, 2758, 1049, 1789, 1813, 1551, 2335, 1791, 2492, 2921, 845, 1787, 2371, 1275, 1755, 3704, 2543, 1858, 3478, 3473, 3265, 667, 2053, 2083, 3239, 1170, 2251, 1228, 2704, 2880, 1255, 1978, 2903, 1641, 1677, 3137, 1464, 2160, 1047, 761, 1038, 2933, 2132, 732, 734, 2670, 2385, 2365, 3657, 2534, 2540, 3484, 2555, 1610, 2960, 1226, 1024, 1204, 2685, 3136, 1866, 1125, 1026, 1966, 405, 1173, 2524, 397, 2229, 586, 2772, 1216, 1384, 762, 2428, 1175, 786, 2717, 443, 2208, 3236, 1237, 715, 1299, 1192, 2871, 1079, 923, 2257, 1840, 183, 3466, 2894, 490, 2076, 779, 1478, 1852, 798, 1343, 1554, 300, 2747, 3105, 960, 2989, 1784, 2927, 1923, 2532, 1011, 2307, 3485, 1957, 453, 1995, 537, 3691, 1898, 2716, 3176, 1246, 1571, 2462, 550, 735, 3520, 2700, 2032, 3133, 2236, 2986, 2536, 2412, 885, 3068, 3344, 2126, 1915, 2187, 2598, 2713, 2004, 1638, 1185, 2768, 1588, 1663, 1151, 1541, 2824, 474, 1896, 2456, 1633, 3168, 1776, 1563, 1254, 1783, 2219, 1221, 1601, 260, 888, 813, 1999, 1803, 2490, 3425, 3618, 1354, 540, 3095, 1108, 1660, 1735, 2778, 2771, 2197, 2334, 3353, 659, 2495, 255, 1913, 3521, 357, 2790, 1848, 1657, 1427, 705, 1917, 868, 2902, 3299, 2622, 1954, 2647, 2042, 2208, 1776, 1888, 833, 954, 2227, 2997, 573, 1592, 2196, 3301, 3577, 2114, 2389, 602, 2585, 2737, 2072, 3719, 3811, 3002, 2116, 3094, 1926, 1238, 3582, 2612, 1932, 1505, 719, 843, 1706, 2131, 1744, 2794, 1747, 1086, 1720, 1201, 1079, 2164, 2457, 1890, 1727, 1786, 2377, 1296, 3074, 1234, 2611, 3434, 2540, 1364, 1130, 1412, 3231, 1316, 3182, 2776, 2695, 3226, 1991, 1936, 3180, 1007, 2375, 2088, 1884, 1909, 2121, 2731, 3492, 2802, 2558, 3941, 2096, 2130, 746, 2472, 2194, 937, 1498, 1483, 1743, 2180, 2994, 2822, 2308, 2431, 1752, 1851, 2086, 1980, 1995, 3269, 3570, 2890, 2963, 2861, 378, 3273, 3399, 1323, 3619, 1517, 3128, 2047, 323, 3098, 2451, 2635, 2752, 2874, 1054, 2166, 520, 1986, 1311, 1235, 1499, 1177, 2213, 1652, 2184, 2974, 1869, 2247, 2345, 1718, 1495, 214, 1330, 1523, 968, 2528, 2646, 2694, 2726, 2351, 881, 2876, 1458, 2921, 395, 1645, 2276, 2111, 2303, 3140, 1580, 3555, 2084, 2663, 2240, 3568, 1192, 1558, 1982, 754, 412, 3280, 899, 1643, 1038, 533, 1778, 422, 892, 1673, 2650, 3092, 2340, 3698, 1109, 2785, 1213, 2134, 1250, 1637, 1679, 3508, 860, 1145, 1993, 2958, 3888, 2804, 2316, 700, 2477, 1151, 3631, 392, 3233, 342, 2087, 2883, 2359, 3226, 366, 786, 2069, 2402, 2147, 1264, 2807, 2964, 2330, 3574, 1206, 1158, 3657, 3160, 2972, 1309, 3150, 1868, 3202, 1264, 2866, 2317, 2797, 1462, 1332, 3318, 2261, 731, 2346, 462, 1040, 3410, 2660, 2224, 1167, 2360, 2362, 1186, 2731, 3026, 1597, 3907, 1267, 2865, 1329, 1545, 501, 1661, 1295, 3379, 549, 828, 1788, 1936, 1900, 1984, 2243, 1865, 939, 1035, 2526, 1303, 2651, 1220, 2644, 1251, 1683, 2538, 1236, 700, 3332, 2917, 1138, 1008, 421, 2554, 2513, 2422, 1179, 1696, 2685, 2979, 621, 1374, 2079, 1703, 3148, 2036, 3181, 1174, 2870, 3126, 2202, 2568, 3477, 3087, 978, 457, 1119, 1058, 2275, 3698, 3489, 2179, 2760, 2097, 3487, 2766, 1606, 1493, 1824, 1435, 2254, 2415, 2037, 941, 1518, 1115, 3550, 403, 2556, 3483, 2875, 2633, 1283, 1253, 2044, 2868, 2610, 1902, 401, 1557, 1576, 3034, 1492, 571, 2040, 1213, 2320, 3886, 1670, 3418, 2552, 2812, 3569, 331, 1647, 1791, 1316, 3071, 1828, 2156, 2734, 438, 3494, 1975, 1714, 2705, 2493, 2482, 1297, 2316, 3499, 251, 441, 2190, 1954, 2982, 2387, 1308, 1307, 2351, 600, 3347, 1776, 2799, 1315, 713, 2605, 3171, 889, 528, 3976, 2986, 1901, 1787, 430, 2607, 2454, 1196, 1452, 3086, 1730, 556, 3689, 3467, 899, 2008, 3006, 3323, 3252, 1989, 1795, 3723, 2432, 404, 2974, 1691, 198, 616, 2640, 1869, 2274, 751, 2076, 1507, 521, 3516, 1148, 3248, 1229, 3039, 1950, 3424, 1662, 1370, 2285, 2315, 506, 2351, 2588, 2226, 2139, 1349, 2724, 1211, 1593, 981, 3414, 3225, 3644, 831, 3770, 1541, 2101, 1236, 1865, 2004, 3046, 2321, 1858, 1745, 2110, 2480, 817, 2339, 2869, 2877, 1799, 810, 2252, 3553, 3896, 2899, 320, 1888, 3266, 2795, 942, 2972, 2664, 2147, 1948, 1145, 826, 2118, 2378, 1564, 1774, 2434, 1273, 3493, 2438, 3066, 3391, 2310, 1378, 3573, 1717, 3070, 3318, 3701, 2868, 2630, 3290, 3006, 2899, 2009, 476, 1698, 1697, 1952, 838, 2755, 2029, 2738, 1084, 759, 995, 3477, 2517, 3373, 2921, 1999, 3575, 3568, 1356, 2266, 1811, 1999, 2422, 247, 2723, 2163, 2402, 1465, 216, 1547, 1829, 2342, 3795, 1313, 1391, 3110, 1429, 1040, 1641, 3655, 1984, 2809, 488, 340, 2068, 3804, 558, 2474, 2584, 2226, 2273, 2411, 2552, 3442, 982, 2911, 1421, 1383, 2187, 1538, 2943, 2430, 1506, 3321, 1947, 3365, 2295, 1935, 2902, 2093, 2143, 1127, 874, 2606, 1920, 1985, 1831, 1307, 2491, 1601, 2357, 2236, 3837, 3036, 795, 2120, 2625, 2129, 2478, 947, 1501, 2104, 2488, 1217, 3035, 2918, 1586, 1753, 917, 1711, 1707, 2395, 2250, 2509, 1482, 446, 3049, 1500, 3046, 2646, 3771, 653, 2381, 733, 3873, 2255, 3074, 2092, 2457, 2679, 1922, 3191, 2914, 1081, 1596, 2697, 1367, 2533, 3617, 2098, 2765, 1968, 2204, 1475, 1272, 3756, 1825, 2390, 3474, 3251, 2977, 496, 1950, 1648, 2462, 2726, 2395, 2944, 3559, 2178, 3342, 3688, 2505, 2354, 1827, 3676, 1794, 2811, 3349, 3249, 2147, 3059, 2852, 1422, 1136, 3776, 875, 1584, 1594, 2195, 2124, 1214, 2543, 2586, 1028, 2874, 1472, 2733, 2317, 3444, 2940, 1084, 1652, 1929, 2691, 1265, 2346, 2864, 3128, 2999, 2013, 572, 3711, 2455, 3213, 2146, 737, 2496, 1565, 1784, 3008, 2743, 1181, 956, 2009, 2859, 1291, 1259, 2512, 652, 1746, 2119, 1932, 2035, 3637, 1427, 1719, 1438, 1836, 2426, 2742, 2102, 1926, 2931, 931, 1502, 776, 1083, 351, 2509, 889, 3007, 2441, 803, 2002, 1065, 1715, 2107, 485, 3037, 1407, 1967, 2060, 406, 1913, 2805, 1982, 1010, 738, 919, 2802, 3011, 2082, 1306, 2554, 871, 1426, 615, 1222, 3390, 907, 3229, 1092, 2418, 2795, 2659, 1125, 2617, 164, 2687, 1355, 3879, 3535, 1394, 2618, 2014, 1144, 99, 3542, 3889, 2695, 2561, 2091, 2168, 1907, 2356, 928, 1875, 1827, 3638, 2388, 259, 2056, 3486, 2817, 3624, 1629, 704, 1093, 2777, 422, 3041, 1853, 1765, 785, 3142, 1809, 2722, 1649, 1687, 2550, 3200, 1908, 3129, 1581, 1988, 2929, 1492, 914, 1614, 700, 948, 1082, 2353, 2165, 2443, 2941, 1693, 3562, 1997, 1155, 2597, 2162, 3443, 2223, 1543, 1912, 1933, 791, 1390, 3325, 2462, 2505, 2095, 558, 907, 3298, 2049, 591, 2729, 3325, 2571, 2788, 2273, 3244, 2453, 1395, 3278, 2112, 3091, 3176, 785, 488, 3666, 1592, 2715, 419, 3534, 2385, 1317, 926, 3370, 296, 2673, 2925, 1383, 453, 2787, 1219, 3957, 3308, 1385, 2104, 757, 2467, 3182, 2133, 1738, 2259, 3183, 2746, 1930, 2497, 1913, 3106, 2036, 2165, 3446, 3136, 1581, 339, 1294, 2912, 2595, 1458, 1222, 3327, 1314, 2182, 3607, 1024, 770, 1072, 2616, 2363, 3471, 2765, 2669, 3240, 1645, 1887, 2803, 1822, 2269, 2372, 1421, 1625, 2480, 3774, 1961, 3629, 2604, 1839, 3497, 2570, 148, 3558, 1573, 3702, 994, 3368, 1453, 1694, 1064, 1434, 2120, 845, 3273, 2740, 1002, 2895, 2201, 2614, 576, 3144, 1164, 1529, 1273, 3201, 3877, 2172, 3593, 1785, 2913, 983, 3600, 188, 2077, 748, 2717, 2887, 2154, 3354, 1676, 2050, 2367, 3227, 2371, 3565, 2786, 3203, 3860, 3023, 2175, 2471, 1664, 1885, 1367, 2269, 3245, 2805, 2383, 2082, 1977, 1385, 1063, 3439, 1998, 2142, 1023, 2596, 1483, 1638, 3049, 2796, 1042, 2031, 3398, 1797, 2445, 2205, 457, 1508, 1868, 2857, 1259, 2531, 3390, 2970, 2882, 1948, 1340, 2775, 3418, 2761, 1497, 2831, 2937, 1686, 2312, 1990, 1900, 2941, 3525, 2929, 1276, 2074, 958, 2922, 1555, 1111, 1928, 2820, 1627, 2297, 2234, 3001, 2785, 2029, 3124, 3345, 3554, 1464, 1884, 3503, 1215, 3265, 3658, 1075, 2458, 537, 1750, 2637, 2169, 2213, 1151, 3355, 863, 3728, 1447, 716, 2381, 1455, 1912, 3069, 1152, 1496, 1688, 3232, 1716, 1484, 2127, 2148, 1052, 2480, 1225, 1625, 3372, 1847, 3257, 2240, 1083, 881, 3674, 1901, 2264, 887, 1516, 3287, 1191, 3693, 1245, 2763, 3303, 2080, 1664, 1052, 1799, 2390, 993, 1423, 1056, 2074, 1910, 2798, 2047, 2162, 3479, 1224, 2967, 2231, 3159, 1216, 1309, 3055, 2533, 3798, 1144, 2212, 578, 2274, 2733, 2410, 720, 774, 1208, 1362, 3356, 589, 3408, 1474, 3082, 1374, 1845, 3727, 3193, 1042, 3189, 1276, 2546, 2649, 1047, 1797, 2317, 2487, 383, 2600, 1353, 1650, 1533, 1536, 3190, 1386, 1401, 1946, 2276, 3246, 2661, 2748, 2750, 3472, 1003, 2447, 2319, 88, 1802, 1977, 2215, 2780, 2917, 2414, 1848, 2638, 1681, 2542, 909, 1979, 2826, 2085, 2250, 1215, 2977, 1333, 3265, 1809, 3133, 1419, 1432, 2408, 2576, 3231, 2027, 3796, 3078, 1844, 1852, 310, 3144, 1272, 2796, 2413, 1557, 2652, 2798, 1252, 3006, 2233, 3001, 1077, 329, 736, 1748, 2657, 481, 3096, 2739, 2500, 1434, 1972, 1953, 513, 1790, 1600, 2853, 2930, 1759, 963, 2544, 1241, 1521, 2219, 2073, 3240, 1252, 1507, 989, 351, 1375, 738, 1487, 2268, 2817, 2983, 498, 826, 2382, 2892, 2001, 646, 1669, 2206, 2744, 1511, 2065, 839, 1539, 3185, 2298, 2008, 1861, 317, 1905, 2701, 2086, 951, 2984, 3383, 3753, 2785, 3243, 2291, 1194, 2164, 951, 1241, 314, 2606, 3127, 1832, 1256, 1377, 3947, 1910, 3340, 1120, 2762, 4053, 1659, 2042, 3269, 1293, 2524, 2016, 121, 1758, 1941, 1006, 3464, 2038, 1520, 1466, 804, 1367, 2051, 2116, 1305, 3504, 3223, 1289, 2043, 1077, 2393, 2702, 1797, 3498, 619, 2475, 4050, 3549, 1840, 1137, 748, 2408, 2775, 1057, 935, 1903, 1209, 1230, 1781, 1280, 1102, 696, 1142, 2602, 743, 807, 3082, 2020, 2231, 1519, 2724, 930, 292, 2671, 3417, 1179, 1274, 1350, 2890, 1105, 1814, 1046, 3117, 1491, 1978, 3044, 2019, 1666, 1530, 2928, 1182, 2085, 1343, 1800, 2113, 1476, 3276, 3062, 2259, 1461, 3717, 764, 877, 1844, 3709, 3362, 2772, 3728, 1841, 487, 2364, 2447, 1018, 1667, 2173, 2428, 2318, 1529, 821, 2425, 3403, 695, 2486, 1430, 3842, 2895, 3329, 2313, 926, 2363, 2205, 374, 1864, 1911, 846, 3148, 2135, 1757, 3794, 3664, 993, 2181, 1607, 3368, 1065, 3288, 3525, 2195, 3438, 3255, 3652, 3010, 1055, 3425, 1954, 988, 1233, 3632, 1640, 1881, 3214, 2248, 2885, 2332, 1220, 2650, 678, 1628, 1968, 1942, 1239, 3012, 2799, 961, 3224, 567, 2199, 1585, 170, 288, 2964, 1905, 908, 911, 1893, 2592, 2027, 1347, 2863, 1450, 1111, 3640, 1841, 2751, 1515, 2884, 3549, 3123, 538, 369, 1073, 2299, 932, 3435, 2280, 690, 570, 2029, 1489, 2892, 3204, 2468, 1176, 3676, 2712, 2337, 747, 897, 2292, 1429, 3519, 1051, 3416, 2703, 2444, 3164, 1918, 1651, 2008, 1596, 2538, 2362, 2031, 3107, 2246, 268, 2870, 2725, 1825, 3585, 2728, 1966, 1106, 2096, 2541, 534, 1462, 1417, 2160, 2692, 1257, 1498, 3580, 620, 1763, 1125, 739, 3157, 2753, 1621, 1771, 2658, 1748, 1718, 3283, 675, 530, 1286, 974, 1180, 1290, 1924, 1108, 1335, 434, 1094, 2990, 3650, 3272, 3031, 3037, 2469, 1873, 1775, 1491, 2931, 3592, 2514, 373, 3045, 2167, 1981, 3195, 239, 2161, 3121, 2517, 1142, 971, 1675, 1850, 1917, 1676, 328, 1818, 1132, 2137, 1550, 1032, 1944, 377, 1719, 2730, 2699, 1424, 3141, 1150, 2584, 799, 1380, 2850, 2148, 1453, 1004, 710, 3312, 784, 3249, 3118, 914, 1281, 1626, 3460, 1199, 1398, 1552, 1924, 2758, 1093, 2048, 2368, 2268, 401, 1918, 3668, 1310, 1501, 2186, 2241, 2987, 3678, 1760, 2049, 1531, 2006, 3394, 3437, 1953, 2545, 1035, 1855, 1277, 1817, 1883, 2469, 1906, 2264, 3002, 417, 1648, 2398, 1107, 1683, 3103, 1561, 2840, 2911, 3113, 2244, 1246, 3526, 1647, 1916, 3218, 2487, 1739, 2660, 2258, 275, 844, 3604, 1946, 3432, 2336, 2288, 1445, 1707, 629, 3176, 1706, 619, 2861, 2649, 1931, 3859, 1935, 1361, 1287, 1933, 2259, 3690, 3929, 1838, 2191, 2849, 840, 2119, 3056, 1413, 2720, 2643, 2421, 2358, 510, 2215, 1102, 2349, 2801, 2776, 1361, 793, 3498, 2195, 350, 2046, 2437, 1609, 782, 3244, 1859, 2626, 1105, 2529, 2401, 1732, 197, 2308, 2287, 1927, 886, 2746, 281, 2890, 2279, 2924, 1118, 1673, 3917, 2424, 210, 1530, 3219, 3279, 644, 3567, 2455, 3228, 2762, 2661, 893, 3515, 1104, 3055, 3388, 2571, 1857, 2653, 153, 1573, 2068, 1630, 2725, 792, 3304, 1810, 1762, 1760, 3468, 944, 3404, 2712, 921, 1133, 2296, 1806, 2845, 2349, 1286, 1819, 943, 3706, 1635, 1922, 975, 438, 2904, 1200, 3268, 127, 687, 2034, 1091, 1443, 1876, 1874, 1902, 1566, 1187, 1592, 1795, 1031, 1751, 301, 600, 1772, 2109, 2781, 1446, 1283, 1738, 2369, 1971, 2783, 3270, 1036, 2540, 2923, 775, 2464, 1437, 2081, 1574, 2459, 3033, 564, 3856, 2628, 2096, 1725, 1930, 1225, 942, 2028, 2025, 2699, 1017, 2504, 2038, 1128, 3870, 2857, 3143, 1406, 3497, 1555, 2503, 1665, 1511, 2738, 3188, 1243, 802, 2965, 3751, 1931, 2507, 1612, 1449, 2412, 2509, 650, 1990, 3331, 266, 1735, 2206, 2416, 963, 1406, 2203, 792, 1872, 2288, 1324, 1852, 1409, 2838, 2582, 2900, 1651, 2336, 3491, 867, 2737, 2127, 1775, 2415, 150, 2092, 1157, 1022, 1533, 2907, 1513, 3323, 3850, 880, 822, 2781, 1562, 2261, 1411, 1237, 2157, 588, 2356, 3672, 3448, 593, 1782, 758, 1058, 2490, 2181, 3715, 261, 3695, 474, 2590, 4012, 1631, 2519, 2018, 584, 4028, 1808, 839, 1417, 1030, 3304, 1168, 3679, 3021, 2956, 2511, 2795, 1489, 2368, 2125, 4017, 2570, 1997, 2526, 1369, 423, 1539, 3150, 3587, 1304, 916, 2000, 1185, 1531, 3648, 1885, 2822, 2391, 823, 2033, 1209, 817, 1883, 3345, 2330, 2442, 1679, 834, 3092, 872, 2072, 2934, 3873, 1475, 1777, 2109, 1972, 3918, 1420, 1092, 929, 1427, 2409, 1400, 2631, 1257, 1820, 2639, 1003, 824, 1585, 2730, 2310, 1011, 1751, 2393, 3970, 2430, 1213, 2054, 2086, 2901, 3830, 2870, 2735, 1860, 489, 2188, 2491, 1856, 965, 325, 857, 2321, 1535, 178, 154, 1266, 3326, 639, 2717, 2400, 2628, 2751, 2938, 1540, 2245, 2115, 3254, 2045, 1087, 1441, 1317, 3528, 1969, 3443, 1759, 3301, 3606, 724, 1143, 3113, 525, 1742, 1129, 3132, 3601, 2968, 1043, 3323, 1559, 557, 1029, 1070, 2583, 885, 3246, 3081, 2932, 1444, 822, 2420, 868, 2615, 1761, 2589, 757, 3495, 2747, 3108, 2005, 2567, 2341, 445, 2841, 972, 2075, 3552, 3556, 1478, 3515, 2776, 520, 2076, 2507, 2444, 1747, 2521, 3912, 2193, 2662, 3380, 1634, 2875, 3208, 1413, 2811, 3228, 1590, 2214, 440, 3079, 543, 1568, 2253, 3013, 1989, 2290, 1987, 903, 2678, 2454, 2777, 177, 2878, 1094, 1291, 1911, 2680, 2360, 3042, 1032, 1471, 2176, 3596, 1833, 3588, 1126, 1604, 1248, 1729, 2729, 3764, 1855, 2204, 1377, 3028, 1816, 1457, 2328, 3395, 3895, 3313, 1745, 2028, 2373, 3821, 2021, 2677, 4055, 1793, 1494, 199, 2948, 1283, 2516, 444, 3160, 1005, 1219, 3796, 2375, 726, 1754, 2420, 3429, 2041, 3825, 3429, 3522, 1564, 2103, 777, 2849, 1591, 3050, 2164, 2105, 1695, 2945, 2603, 1589, 3213, 1864, 2151, 2332, 976, 2668, 2373, 1873, 3859, 3330, 1064, 2558, 2513, 2831, 1538, 2529, 2271, 2609, 600, 2568, 2361, 3291, 1679, 2089, 1441, 3437, 2727, 346, 644, 2548, 469, 3026, 2612, 3359, 3196, 2463, 885, 2887, 390, 1305, 380, 1550, 1247, 3971, 1299, 680, 1723, 560, 2771, 2028, 2474, 2965, 1235, 2201, 3763, 2389, 1618, 2355, 3969, 2088, 2246, 3665, 2986, 1047, 1869, 1346, 384, 1987, 3145, 3044, 1886, 2723, 1773, 2404, 2202, 3153, 1676, 1481, 1486, 1677, 943, 930, 1914, 1484, 1373, 979, 1951, 548, 3043, 3646, 937, 2342, 1106, 1086, 2793, 3298, 2498, 2434, 566, 1970, 2464, 2388, 1729, 3526, 2093, 3005, 3486, 1398, 1876, 3427, 1325, 1404, 1139, 1691, 1070, 2571, 1943, 725, 1015, 1157, 1777, 2332, 1794, 1616, 2015, 936, 2207, 2721, 1615, 2577, 2812, 1854, 3016, 1974, 2629, 544, 774, 863, 1963, 2937, 3366, 769, 3545, 3282, 3653, 2175, 1245, 1524, 1355, 2919, 2087, 2283, 1188, 2223, 2660, 1815, 1878, 2647, 2152, 2757, 1933, 820, 1315, 1680, 3138, 1716, 2490, 2634, 2827, 2520, 1193, 582, 3205, 1701, 3492, 3068, 1165, 3846, 2025, 2314, 1934, 2740, 2262, 2427, 994, 2607, 2642, 709, 961, 2929, 2988, 837, 3720, 1318, 1842, 2211, 1612, 1767, 2136, 2256, 2255, 2793, 671, 2394, 718, 2728, 3943, 1331, 1394, 1815, 2442, 3655, 2167, 1348, 689, 863, 2599, 1206, 2211, 2714, 2325, 1152, 2672, 1534, 3063, 1046, 2673, 1770, 2338, 1244, 594, 1637, 531, 3805, 1340, 1595, 1472, 694, 2671, 2234, 2425, 2574, 901, 3469, 900, 1143, 3257, 3631, 1345, 1214, 1424, 2063, 3209, 1209, 1122, 1113, 1263, 2450, 1118, 879, 2356, 2949, 3665, 2228, 1377, 1705, 2440, 3163, 727, 2097, 1211, 2897, 1240, 1943, 816, 2973, 1837, 989, 1067, 848, 3061, 2648, 2163, 864, 3031, 2251, 2575, 2237, 2384, 3187, 747, 886, 1562, 1342, 837, 1871, 2419, 1400, 1937, 2339, 3605, 3023, 2720, 3126, 348, 2314, 1878, 2263, 3146, 2564, 3135, 1421, 1292, 2075, 2708, 3530, 2248, 587, 3054, 3100, 2517, 2245, 730, 2115, 3782, 3491, 2303, 1667, 1741, 1817, 3441, 2390, 3095, 3286, 1519, 1598, 288, 1051, 3364, 546, 2093, 1358, 1449, 3758, 1923, 2399, 2268, 330, 1697, 1348, 2876, 1227, 1218, 1740, 1208, 2444, 717, 2836, 2834, 1456, 1336, 3375, 2055, 749, 3342, 3034, 818, 3234, 1995, 2118, 3338, 46, 2812, 2439, 2702, 2398, 2082, 2303, 3344, 3855, 3292, 2774, 3511, 3691, 2439, 2594, 777, 2455, 1914, 2853, 2932, 3517, 1600, 3888, 1829, 2617, 1830, 1351, 3411, 1835, 2255, 2401, 1682, 151, 349, 1375, 2502, 1019, 493, 903, 3131, 1020, 3802, 2384, 544, 1849, 2671, 1760, 1802, 2472, 1779, 459, 631, 391, 676, 921, 1002, 2358, 699, 3567, 1864, 3207, 778, 2155, 1454, 2644, 3269, 812, 361, 1335, 1167, 2664, 3329, 1959, 2285, 1382, 780, 1457, 748, 1934, 2001, 1518, 1626, 1396, 1366, 3201, 2862, 847, 500, 1226, 1196, 1520, 2844, 2723, 527, 2897, 2991, 1388, 1389, 2485, 954, 3022, 2304, 2559, 1418, 880, 456, 553, 3651, 3644, 2507, 2825, 1141, 2879, 1039, 2235, 1204, 2946, 1961, 2436, 554, 996, 2461, 1485, 2335, 290, 859, 1752, 3167, 2080, 3603, 1623, 2207, 2909, 1794, 3580, 1154, 1823, 2820, 1469, 3406, 1570, 2440, 2489, 1050, 3901, 3877, 1192, 516, 601, 3043, 928, 3127, 2135, 1719, 1879, 2585, 1546, 1433, 2123, 2369, 1655, 965, 2830, 1639, 2893, 2992, 2099, 1793, 1322, 1918, 1871, 691, 3061, 2581, 915, 1826, 1709, 1273, 2880, 1467, 851, 752, 3423, 658, 1379, 1122, 1563, 2133, 3223, 1736, 2586, 1517, 2326, 763, 1656, 628, 3040, 2064, 642, 871, 1738, 2587, 734, 374, 1496, 1285, 1909, 2020, 3555, 1146, 1522, 635, 2399, 745, 2088, 2854, 2636, 1492, 2294, 1778, 3166, 2593, 1711, 2502, 2816, 3322, 1785, 2806, 435, 2749, 3103, 3445, 1399, 2052, 382, 3178, 2132, 3231, 3932, 2741, 2344, 1025, 2485, 3718, 2266, 1346, 1662, 1048, 1264, 776, 3107, 1055, 2659, 2260, 466, 530, 2309, 1214, 1571, 3600, 1788, 3576, 2144, 1577, 1110, 1097, 3478, 1542, 3936, 2309, 2271, 2984, 3101, 2120, 4001, 1953, 2131, 811, 2270, 1030, 1422, 2708, 3604, 1031, 1368, 3203, 2770, 2956, 1583, 2253, 1502, 1480, 2971, 452, 2141, 2721, 2547, 1398, 1789, 2706, 532, 1461, 2813, 3124, 2438, 2835, 2763, 1178, 2938, 1811, 2299, 597, 1712, 2557, 896, 1828, 3061, 2886, 2417, 1062, 901, 3194, 239, 2437, 3607, 1207, 2631, 2943, 2158, 2696, 174, 866, 3080, 701, 2107, 3096, 3504, 1714, 1034, 1660, 1736, 1621, 2815, 1449, 2656, 2739, 3058, 2879, 3554, 957, 2665, 2238, 1023, 1293, 2860, 1393, 3753, 3256, 2683, 2756, 2221, 2803, 2095, 1542, 2177, 1107, 1974, 1108, 2026, 1579, 1139, 2535, 950, 1955, 1686, 2000, 1359, 2106, 2105, 3216, 2307, 1172, 900, 3156, 1112, 490, 2278, 526, 1704, 2372, 1122, 3116, 1039, 1587, 1395, 940, 1660, 687, 1878, 1115, 1841, 1426, 1536, 3015, 1160, 2070, 2736, 403, 3354, 3199, 1866, 1307, 807, 1733, 3578, 1685, 2285, 1528, 3579, 1596, 2204, 1046, 2635, 2504, 2829, 2403, 1728, 3613, 1599, 3357, 1001, 2126, 1257, 1611, 3474, 3064, 1446, 3432, 3452, 1614, 2545, 2282, 3004, 1026, 3274, 2510, 3179, 1998, 926, 2216, 2662, 2966, 3482, 2446, 1455, 2650, 1098, 1215, 2947, 2435, 1534, 503, 3118, 2178, 1360, 3481, 1709, 950, 3309, 572, 1308, 2694, 3017, 2056, 2144, 1853, 2091, 3391, 2031, 263, 3351, 70, 1111, 2012, 2445, 393, 1605, 1392, 1780, 2576, 3181, 1499, 1840, 2187, 1339, 1723, 1384, 1032, 2952, 1895, 833, 2959, 583, 1344, 1754, 3002, 349, 2933, 2265, 2597, 1810, 1328, 1835, 2360, 2237, 2448, 2714, 1528, 2189, 2224, 642, 2062, 3447, 1708, 1302, 1784, 2154, 2913, 1611, 250, 2300, 3945, 1479, 759, 2119, 2278, 1683, 2639, 2041, 1834, 1962, 2062, 2340, 2328, 1327, 3586, 4038, 2257, 1204, 2414, 3003, 1816, 2994, 1724, 2838, 1986, 569, 632, 996, 1967, 3221, 1849, 1669, 1644, 2465, 1757, 3315, 3244, 3615, 3263, 2569, 464, 1879, 1131, 3130, 1165, 2523, 1947, 3245, 3104, 3223, 3604, 2471, 2619, 2410, 1973, 3400, 2098, 3546, 1553, 1545, 2821, 2066, 2489, 478, 2335, 2911, 3433, 2668, 2090, 1726, 1387, 1948, 2894, 753, 1480, 793, 1524, 1858, 2152, 2980, 2114, 2698, 3574, 632, 689, 1442, 414, 3249, 3929, 1439, 236, 2371, 1570, 2753, 4035, 311, 2997, 2061, 843, 3218, 1755, 2580, 3506, 3047, 1892, 2773, 2003, 990, 2643, 1103, 1798, 1071, 2014, 1216, 2306, 887, 2279, 367, 2950, 3899, 3419, 2221, 3069, 628, 3015, 1720, 2209, 440, 1297, 1966, 1832, 2137, 2022, 2686, 2293, 1603, 246, 3191, 3347, 3085, 2953, 2424, 2017, 3674, 1578, 3781, 2417, 1700, 2017, 335, 827, 585, 597, 1440, 1731, 2079, 2042, 1486, 723, 3385, 2015, 1880, 654, 2094, 2306, 2074, 3431, 3291, 1287, 1397, 2183, 2385, 3513, 1994, 2035, 2037, 1369, 2780, 964, 2339, 2706, 3242, 2043, 178, 2375, 3147, 2232, 1252, 2843, 3934, 1801, 1407, 2957, 3631, 2755, 2205, 3119, 3088, 1197, 2016, 1756, 2276, 2955, 2433, 3063, 1331, 1382, 2641, 2369, 936, 429, 3519, 698, 2521, 1620, 3358, 1563, 347, 874, 2334, 1076, 1471, 3125, 2742, 1330, 2591, 599, 1725, 2353, 2836, 3272, 2138, 378, 2735, 1143, 1437, 2185, 521, 2560, 2233, 2179, 2379, 3536, 2622, 667, 405, 2662, 2209, 1501, 2486, 3257, 3310, 621, 3983, 870, 2539, 3084, 2309, 2334, 2705, 2061, 876, 3322, 2059, 2365, 2691, 3496, 3620, 3081, 2692, 2898, 1989, 2153, 1960, 2436, 1487, 3195, 2948, 2218, 1300, 720, 2151, 1722, 2355, 1076, 3143, 1949, 1795, 1261, 582, 1257, 942, 436, 253, 538, 908, 846, 629, 736, 1428, 1126, 706, 755, 410, 449, 828, 877, 430, 344, 1322, 426, 1215, 1601, 1793, 1633, 866, 2288, 1589, 561, 777, 1169, 1330, 468, 459, 685, 436, 1956, 1324, 212, 888, 821, 2066, 784, 1568, 796, 1251, 497, 1430, 1108, 537, 1577, 737, 1529, 721, 391, 962, 1218, 493, 1189, 1235, 1177, 778, 595, 1009, 1515, 10, 1069, 1207, 1037, 913, 599, 1142, 1139, 779, 1067, 653, 466, 747, 683, 1129, 1057, 514, 1166, 663, 958, 895, 870, 1036, 819, 610, 1763, 810, 774, 253, 1274, 711, 543, 805, 145, 1658, 1208, 336, 348, 782, 1087, 2137, 1305, 481, 1522, 530, 634, 189, 1005, 1432, 1183, 1546, 1096, 1308, 1205, 721, 1011, 230, 770, 406, 406, 1237, 972, 1266, 970, 409, 1645, 1371, 888, 1053, 602, 1337, 870, 714, 432, 1160, 895, 713, 882, 871, 161, 2171, 643, 1133, 1252, 707, 450, 1010, 481, 1397, 591, 647, 511, 1100, 340, 1008, 756, 1074, 596, 1459, 910, 969, 697, 559, 518, 1584, 540, 804, 1425, 1115, 1311, 779, 734, 976, 442, 655, 839, 605, 619, 467, 1499, 967, 1061, 1349, 704, 130, 1089, 1178, 1161, 1141, 1071, 1035, 486, 934, 1401, 651, 924, 1282, 1282, 389, 1278, 655, 992, 614, 981, 158, 1031, 985, 300, 651, 737, 1755, 798, 1911, 1467, 782, 509, 451, 1125, 1295, 465, 979, 1083, 1031, 1282, 550, 1546, 900, 444, 1545, 1207, 1655, 913, 852, 1228, 338, 607, 934, 236, 721, 1084, 236, 291, 590, 589, 1114, 1257, 603, 117, 1044, 432, 1255, 1656, 806, 762, 776, 686, 388, 622, 941, 1308, 1200, 259, 1051, 1514, 529, 651, 1349, 868, 764, 946, 603, 888, 372, 493, 664, 418, 769, 1300, 993, 416, 607, 990, 505, 618, 673, 911, 610, 1442, 798, 1844, 879, 515, 840, 937, 797, 718, 390, 675, 672, 921, 1034, 601, 442, 297, 850, 631, 782, 607, 1461, 722, 162, 215, 756, 1308, 965, 1464, 531, 965, 2183, 974, 485, 512, 1586, 505, 1672, 463, 649, 1048, 967, 687, 1139, 1229, 1281, 1060, 1261, 535, 941, 399, 1013, 783, 1711, 433, 1308, 1739, 312, 1118, 395, 839, 1003, 997, 177, 557, 842, 1270, 292, 980, 459, 426, 1207, 160, 1097, 519, 573, 945, 311, 666, 164, 945, 306, 1694, 357, 411, 1030, 1220, 408, 1197, 679, 452, 938, 1335, 496, 423, 414, 947, 625, 801, 992, 637, 918, 643, 1582, 1017, 908, 699, 960, 1095, 1475, 1064, 925, 919, 987, 1657, 685, 1279, 334, 724, 971, 310, 590, 839, 1249, 240, 1287, 1718, 1019, 931, 798, 524, 1653, 101, 348, 442, 955, 335, 1168, 1584, 376, 651, 167, 1056, 743, 1738, 186, 520, 631, 865, 819, 988, 35, 1080, 730, 872, 658, 828, 1758, 1248, 300, 1244, 539, 735, 340, 150, 802, 780, 1283, 831, 826, 645, 442, 119, 723, 827, 1019, 305, 1553, 1241, 487, 590, 1770, 121, 1381, 1103, 936, 2114, 881, 1056, 1260, 1360, 541, 347, 1630, 1096, 176, 587, 382, 721, 884, 1096, 213, 1757, 1151, 397, 291, 1161, 3376, 3828, 2766, 1604, 3185, 3504, 2472, 2595, 1669, 3400, 4067, 4080, 3463, 3321, 3036, 4068, 2421, 3991, 3911, 4044, 3099, 1110, 1889, 3606, 3544, 3130, 3214, 3112, 2584, 3067, 1800, 3764, 3713, 2847, 3415, 1154, 3140, 3537, 2969, 2203, 3768, 2891, 3162, 4004, 4046, 3300, 1043, 2244, 2833, 3581, 2213, 3516, 2465, 2804, 3883, 2287, 4020, 3535, 2063, 4006, 3842, 2818, 3696, 2327, 2636, 2489, 3459, 3473, 1373, 941, 3846, 2596, 3241, 4091, 3119, 3650, 3827, 3022, 2508, 3803, 3995, 2732, 2146, 4079, 3964, 3003, 1925, 2789, 2150, 3239, 2013, 3688, 4039, 3533, 2518, 3056, 3356, 3922, 3388, 4014, 1435, 1373, 3619, 3983, 3196, 4095, 1617, 3645, 3542, 2956, 2891, 1624, 1836, 3187, 3253, 2073, 3896, 2905, 2484, 3180, 3000, 1622, 3152, 805, 2313, 3797, 3463, 3237, 3279, 2435, 3540, 3594, 2968, 3210, 2718, 1184, 3254, 3889, 3695, 509, 4074, 3197, 3835, 2954, 3312, 3562, 3052, 3019, 3258, 978, 3303, 4082, 3834, 2252, 3680, 3489, 3904, 2958, 3081, 2134, 3591, 3546, 3725, 2602, 3630, 3363, 3784, 3165, 3958, 2071, 4020, 2069, 3153, 3392, 3749, 3690, 2548, 3887, 3662, 1831, 3457, 2230, 2084, 4072, 2578, 3827, 3030, 4008, 1275, 2450, 2389, 3450, 2001, 3367, 3442, 4010, 1674, 2122, 3391, 1364, 3708, 1998, 3752, 3806, 3480, 2401, 3998, 1419, 2810, 752, 3710, 3936, 663, 3697, 1971, 3084, 2981, 1755, 2112, 874, 3324, 3503, 2889, 2169, 3404, 3868, 3543, 4042, 2522, 2687, 2400, 2637, 3475, 3721, 2684, 3654, 3454, 3972, 3442, 3438, 1506, 3939, 3170, 3379, 3840, 3901, 3937, 2833, 3858, 3823, 2642, 4004, 2878, 2993, 3348, 3866, 3602, 2605, 2494, 3927, 4009, 3404, 3911, 2909, 1684, 1691, 3408, 2668, 1941, 1818, 3587, 3362, 1494, 3914, 1278, 2666, 3864, 2765, 3993, 3697, 2387, 3952, 2587, 3632, 3422, 2834, 4094, 3403, 2000, 3412, 2779, 3500, 3128, 2070, 2828, 3358, 3522, 3930, 3399, 3325, 3959, 2386, 4093, 3989, 3547, 2961, 2466, 1881, 4093, 2242, 2860, 3060, 3309, 3053, 3502, 3688, 3045, 2405, 3412, 3166, 3508, 3956, 3281, 3436, 3459, 2457, 4026, 3944, 3467, 3718, 2846, 3851, 3374, 2555, 3675, 3679, 2709, 3410, 2969, 3300, 2280, 1985, 2933, 1575, 3401, 3287, 1917, 3142, 3960, 3479, 4066, 2441, 3201, 2704, 4016, 3241, 3572, 2251, 2630, 3960, 2977, 3829, 3003, 3361, 3752, 2975, 3254, 2286, 3446, 415, 3272, 4083, 2896, 2846, 3658, 2748, 4025, 3999, 3950, 2889, 3633, 1692, 3472, 2329, 825, 3898, 3516, 2117, 3723, 2916, 1265, 2632, 3910, 3594, 3707, 3488, 3496, 3530, 3899, 3469, 4052, 1940, 3524, 2998, 3830, 2888, 3864, 2190, 2403, 2217, 3783, 3941, 3660, 2343, 2578, 3770, 2091, 3704, 2323, 4006, 2079, 2157, 3523, 2992, 3794, 3120, 2980, 2750, 3656, 2610, 1274, 3017, 3000, 2407, 3995, 3142, 3953, 3841, 3598, 3503, 3187, 4066, 3169, 3798, 1740, 3971, 2900, 3772, 3448, 2227, 3805, 3925, 1666, 2908, 3914, 1443, 3918, 3093, 2979, 2354, 3902, 3860, 2843, 3833, 3183, 1671, 3933, 1270, 3644, 2754, 3515, 3070, 2379, 2290, 3878, 2831, 927, 3942, 3614, 2482, 2898, 2419, 2871, 2971, 2705, 4012, 2228, 2844, 1535, 3399, 2985, 2043, 2828, 3566, 1065, 3915, 3965, 1260, 4019, 2077, 2952, 2632, 2925, 1708, 3600, 2829, 4080, 2272, 3134, 2319, 2615, 3993, 2183, 3942, 1422, 3751, 3316, 3174, 3476, 3893, 3509, 1027, 1561, 1955, 1134, 3807, 3916, 3745, 3103, 3951, 2512, 3585, 3247, 3926, 3951, 3979, 1769, 2398, 2722, 2965, 3172, 4088, 3733, 3647, 2326, 3401, 4020, 3972, 3692, 4088, 1962, 2914, 2966, 3267, 2786, 1453, 1833, 3027, 3063, 3879, 2068, 2199, 3271, 2760, 4039, 3883, 3779, 3717, 3651, 3826, 2850, 2380, 3818, 3738, 3117, 2121, 3131, 3357, 746, 3804, 2057, 3436, 3421, 3689, 4086, 4019, 2707, 3921, 2496, 1429, 3029, 3726, 3720, 3209, 2998, 3579, 2778, 3735, 3482, 3032, 3721, 3924, 4007, 3417, 4096, 3050, 1981, 4034, 2995, 2515, 1900, 3495, 3211, 2718, 3115, 2564, 3200, 3955, 733, 3884, 3575, 2973, 2503, 4048, 3384, 3620, 3602, 2666, 3868, 2790, 2663, 3730, 3460, 2435, 3375, 3394, 2749, 3986, 3328, 2143, 3132, 1818, 4029, 1705, 3411, 2811, 3705, 2990, 4034, 2889, 3124, 2808, 2838, 1710, 2834, 3042, 4063, 3130, 3980, 3720, 3225, 1599, 3538, 3608, 3363, 4023, 1414, 3894, 1560, 2262, 3517, 2103, 2198, 3979, 2549, 2311, 2866, 3709, 3639, 1863, 2396, 3313, 2993, 2397, 1582, 2707, 3872, 4019, 3750, 2429, 3346, 3365, 3378, 2151, 3299, 2945, 3692, 4008, 3836, 3944, 2638, 2661, 3682, 3330, 2883, 1717, 3981, 3134, 3317, 3466, 2676, 1819, 3907, 2580, 3626, 3737, 3806, 3840, 3226, 3747, 4000, 3122, 3470, 1894, 3700, 2941, 2441, 2696, 3512, 2407, 3524, 3239, 1729, 1314, 3953, 3308, 3744, 2927, 3906, 4071, 3718, 1798, 3759, 2495, 3736, 3810, 2282, 3750, 3932, 3067, 3343, 1507, 3247, 3417, 3559, 4044, 3954, 1893, 4010, 2510, 2044, 3732, 3831, 3414, 4095, 1754, 3341, 4085, 3850, 3230, 3066, 2665, 3793, 2525, 3627, 3965, 3490, 3964, 3447, 1766, 1418, 3395, 1610, 4053, 2502, 2220, 3609, 3683, 3716, 3322, 3346, 3544, 3025, 2955, 3736, 3256, 3172, 3769, 3139, 2337, 4087, 3266, 2338, 3369, 3452, 3845, 3437, 2342, 3645, 3151, 2350, 3335, 1561, 2608, 3333, 3816, 1882, 3560, 3273, 3807, 3571, 1916, 2667, 4085, 3876, 3904, 3289, 1830, 1568, 3780, 3510, 3455, 2657, 3897, 2962, 4031, 3409, 3905, 3595, 3221, 2374, 3838, 2792, 3152, 3768, 3739, 2179, 3772, 2823, 2800, 2797, 3797, 2193, 3484, 3235, 3479, 1705, 3501, 3869, 3086, 2411, 4010, 3876, 3278, 3169, 3820, 3664, 2727, 3788, 3021, 3722, 4038, 3423, 3491, 3761, 3975, 2574, 2239, 3915, 2186, 3340, 3638, 3302, 2681, 3422, 3406, 2570, 2456, 3874, 3169, 3486, 3685, 2958, 3666, 3661, 2871, 3517, 1078, 3466, 3353, 3481, 2803, 3652, 3568, 3581, 2944, 2792, 3524, 2158, 2951, 3189, 3563, 3232, 3510, 3725, 3967, 3564, 4018, 4030, 2314, 3729, 2284, 3286, 3609, 3882, 2910, 3624, 3790, 3642, 1672, 2741, 2858, 2566, 3050, 2623, 3836, 3043, 3874, 2006, 2226, 2932, 3420, 2796, 3773, 3725, 3013, 3284, 2124, 2709, 3072, 1452, 3522, 3331, 1746, 3697, 2872, 1159, 2740, 4056, 3536, 2856, 2909, 3611, 2320, 3079, 3332, 3093, 2675, 3712, 2985, 3227, 1782, 1066, 3944, 3687, 3943, 2289, 3025, 2799, 3067, 2198, 1275, 3494, 1248, 3589, 1758, 3951, 2940, 2807, 2178, 2703, 2131, 3837, 2473, 3928, 3879, 3829, 3381, 4072, 2229, 3580, 3985, 4078, 3793, 3735, 2930, 2239, 2902, 3680, 3743, 2689, 2168, 3918, 3593, 663, 2306, 3890, 4008, 3705, 2165, 1466, 1146, 2982, 674, 3382, 3207, 3897, 4043, 3349, 2295, 2881, 2808, 3037, 3341, 3462, 3446, 4058, 2370, 3457, 3613, 3535, 2322, 1698, 882, 1515, 1332, 4084, 3995, 3883, 3680, 3920, 3844, 3616, 2393, 3825, 2537, 4067, 3179, 2858, 3167, 3699, 2465, 2549, 3897, 2854, 2752, 3158, 2769, 3956, 3745, 2497, 4063, 3949, 3771, 3649, 3519, 3359, 3967, 3891, 2258, 4075, 3336, 3796, 3786, 2459, 1238, 3817, 2127, 3111, 1930, 3847, 3444, 2059, 1287, 3925, 3816, 3761, 4039, 3783, 3389, 3162, 3019, 4078, 3754, 3307, 2380, 3387, 3155, 4045, 2174, 2546, 2710, 3320, 3295, 2125, 3776, 3809, 3521, 2210, 3824, 3958, 3601, 2417, 3144, 2910, 3564, 3801, 1970, 3475, 3934, 2350, 2288, 3616, 3483, 1782, 1425, 4084, 3199, 3706, 3970, 2684, 4082, 4032, 3202, 3712, 3999, 4006, 2527, 4037, 2573, 4060, 4013, 2272, 3670, 2893, 3553, 3853, 2579, 2851, 3791, 2066, 3853, 2559, 3861, 2459, 3346, 3707, 2026, 2365, 3769, 3971, 3209, 3507, 3848, 2895, 3822, 2648, 3858, 3655, 2354, 1814, 3288, 4024, 3107, 3999, 2422, 2915, 3098, 3984, 1771, 2670, 910, 3913, 3760, 2323, 3639, 2323, 3126, 3966, 3924, 3495, 3628, 3155, 4071, 3974, 3614, 2989, 3938, 2620, 2678, 2488, 3221, 3935, 3360, 3888, 2674, 3167, 1843, 3059, 3861, 2475, 3360, 2346, 3212, 2715, 1646, 3358, 3716, 2140, 2324, 4083, 3612, 3214, 3441, 1829, 3010, 2022, 3366, 3293, 2862, 3931, 3203, 3602, 1969, 3380, 3985, 3431, 3065, 3881, 3630, 3041, 2764, 2752, 3122, 2296, 3741, 4066, 4062, 4009, 3823, 3064, 4056, 2405, 3684, 2969, 3711, 3411, 2830, 2348, 3683, 4050, 2976, 3900, 3827, 3639, 3264, 3548, 3800, 2855, 3804, 3799, 4063, 3802, 2783, 3812, 3319, 3454, 3345, 2340, 3803, 1223, 3855, 3287, 3502, 3464, 1560, 3158, 3118, 2284, 2258, 2521, 3561, 4040, 3596, 2891, 3393, 1644, 3554, 1942, 3393, 3803, 2020, 3875, 3299, 4069, 3513, 3704, 2406, 3563, 3115, 3629, 3828, 2680, 3842, 2476, 2767, 3711, 2654, 1808, 2904, 3961, 3458, 3270, 1670, 3091, 3578, 3487, 3902, 3528, 3428, 3976, 3309, 4028, 2832, 3598, 3384, 3982, 3527, 3772, 3870, 3261, 3741, 3119, 2603, 2934, 3963, 2893, 959, 2236, 3811, 3719, 2562, 3958, 2593, 3377, 2556, 1945, 3748, 3673, 1123, 3376, 2794, 3757, 2697, 2006, 3940, 3712, 2733, 396, 2930, 2563, 1769, 3665, 3178, 3668, 3919, 2688, 3306, 2283, 3619, 4094, 3021, 2987, 4082, 3368, 3097, 3075, 1783, 2310, 3691, 3248, 3440, 3064, 3077, 2135, 3395, 2711, 3572, 3177, 2791, 3049, 3031, 4081, 2485, 4075, 3101, 3494, 3428, 3278, 2582, 2281, 3538, 3994, 3263, 2700, 3977, 3612, 3332, 2005, 1139, 3190, 3507, 3149, 3489, 2881, 4011, 4009, 2067, 3481, 3569, 3641, 1499, 1148, 3129, 2722, 3829, 1092, 4077, 3298, 3815, 2481, 3048, 3814, 3338, 3062, 3887, 3666, 2991, 2427, 3849, 2833, 3400, 3534, 3290, 2501, 3472, 3099, 2499, 3545, 2634, 3334, 3004, 2279, 3445, 3724, 3693, 3054, 3238, 2644, 3996, 2152, 1128, 4011, 3534, 4025, 3881, 3988, 2057, 3809, 3997, 3480, 2154, 2532, 2818, 3681, 3765, 2450, 3588, 3111, 3870, 4021, 3642, 3397, 2775, 1258, 2962, 4054, 1846, 1527, 3759, 3910, 2249, 3742, 3622, 4007, 3355, 3822, 3076, 4027, 4074, 2613, 3543, 3864, 3932, 3579, 3699, 3781, 2148, 2952, 2157, 3696, 3733, 2265, 3192, 3073, 3020, 3112, 3589, 2225, 3835, 3285, 2115, 3948, 1574, 3582, 3703, 3078, 3806, 2100, 3779, 4052, 3986, 3987, 2297, 1318, 2560, 2856, 3854, 2628, 2591, 1912, 3605, 3599, 1500, 2504, 3611, 2158, 2974, 2284, 2229, 3895, 4049, 3808, 2004, 2982, 2537, 3289, 3319, 3950, 2830, 2149, 2575, 3374, 2652, 2378, 1284, 4093, 3592, 2768, 3295, 2972, 2533, 1753, 3733, 2800, 2596, 1891, 2869, 2770, 3048, 3993, 3673, 2828, 3969, 3965, 2782, 2732, 2440, 3769, 4027, 4016, 4013, 3663, 3171, 2600, 3087, 3138, 3190, 2433, 3762, 3963, 2330, 3505, 3352, 3426, 2532, 3336, 3402, 3947, 3339, 3672, 2347, 3398, 4029, 3160, 2572, 3009, 2751, 1678, 3276, 3192, 3228, 3956, 3916, 1340, 3788, 1865, 3698, 1341, 3828, 3592, 2719, 3920, 3709, 4003, 3208, 3926, 3863, 2648, 3270, 1581, 4045, 2997, 3387, 3814, 3653, 4002, 4014, 1488, 3992, 4064, 3409, 2182, 3060, 1505, 4092, 3474, 2879, 3685, 1623, 3271, 2839, 2495, 2467, 3797, 3920, 3319, 934, 2326, 2744, 2270, 2392, 3008, 3599, 2936, 3643, 3790, 3094, 2194, 3250, 4036, 4058, 901, 3033, 1342, 3881, 3973, 3841, 3748, 3701, 3668, 2574, 2399, 3419, 3734, 3415, 2536, 3679, 3982, 3259, 1221, 3198, 3583, 1796, 3975, 3397, 3961, 2906, 2616, 4033, 3451, 1721, 3977, 2069, 3011, 3974, 3947, 3184, 3499, 435, 3961, 2998, 3862, 3677, 3791, 2686, 3384, 2348, 3234, 2681, 2951, 3493, 3526, 3648, 1895, 2112, 3813, 3509, 3011, 2467, 2789, 3230, 3420, 2855, 3917, 2674, 4069, 3181, 3890, 3051, 549, 1646, 2116, 3440, 2555, 2023, 2565, 2761, 2859, 2331, 3115, 3975, 3880, 3256, 4002, 3551, 2051, 2267, 3908, 3428, 3908, 3415, 3121, 3108, 3637, 2651, 3352, 2645, 2901, 3532, 3885, 3673, 3377, 1690, 2963, 3149, 3093, 2806, 2470, 2556, 3247, 4089, 2852, 3097, 3792, 2196, 3850, 3434, 3656, 3778, 1251, 2590, 1180, 3421, 3351, 2815, 3237, 1944, 2658, 3694, 3334, 3950, 3168, 3787, 1613, 3373, 3815, 1820, 3499, 1621, 3692, 3957, 2328, 3766, 3393, 3243, 2712, 3603, 3909, 1838, 3791, 3787, 2791, 3597, 3938, 2473, 3776, 2418, 3206, 3677, 3532, 3173, 3062, 2436, 3557, 1436, 2242, 3371, 3092, 4062, 2988, 3188, 3288, 2055, 3464, 1128, 3558, 3826, 1836, 2996, 2996, 3363, 2557, 1402, 3696, 2814, 3703, 3453, 2623, 3224, 2679, 2483, 1585, 3356, 3859, 3028, 3670, 2944, 2599, 2939, 2619, 1682, 3681, 2711, 3731, 3038, 2823, 3596, 4003, 3845, 2386, 3398, 3556, 3901, 3778, 3939, 3453, 3222, 4073, 2470, 3553, 4016, 3854, 2777, 3705, 3723, 3335, 2635, 2784, 3779, 4061, 3483, 3077, 2294, 1088, 4077, 2536, 1983, 3490, 2611, 2113, 3275, 3934, 2683, 3138, 3314, 3184, 3552, 3379, 665, 3035, 3335, 3586, 3381, 2996, 1920, 2995, 3311, 3030, 1445, 4035, 4031, 3204, 1282, 1994, 3872, 4060, 3071, 3742, 3734, 3584, 3362, 3233, 2402, 3541, 2976, 3591, 3789, 3046, 3246, 3385, 2826, 2448, 2959, 2716, 3080, 1451, 3605, 4081, 3885, 1843, 3988, 2547, 3672, 2747, 3175, 2057, 3165, 2136, 2926, 3608, 2141, 3922, 3430, 3924, 1815, 2736, 3929, 2550, 4041, 1935, 3551, 421, 2427, 2869, 3294, 3819, 2926, 3210, 3532, 2170, 3139, 2103, 3505, 2010, 4057, 835, 1981, 2293, 2283, 3708, 2693, 2190, 2421, 2493, 2292, 3785, 3826, 1505, 2576, 3598, 1184, 3777, 2155, 2478, 3070, 4043, 3799, 2482, 3945, 2924, 2102, 2568, 2403, 2617, 2859, 3304, 3786, 3351, 1044, 3848, 3523, 3317, 3921, 2918, 3808, 1657, 3702, 3262, 3129, 2108, 2134, 2966, 3492, 1299, 1053, 3260, 4076, 3057, 3767, 1713, 1806, 3090, 3824, 1880, 2128, 3824, 2625, 3161, 3687, 3675, 3907, 3660, 2994, 3378, 2072, 3773, 1372, 2872, 4056, 2865, 3205, 3757, 3488, 2814, 3590, 2665, 3407, 2684, 2363, 2881, 1526, 3241, 1481, 3662, 3348, 3476, 1552, 3843, 3865, 3977, 2618, 3275, 1677, 2641, 3451, 3964, 3985, 3218, 3426, 3749, 3512, 1535, 2321, 1149, 1312, 3072, 3350, 3962, 2474, 4045, 1015, 2915, 4053, 2690, 3801, 2594, 1176, 4089, 2701, 3740, 3719, 2743, 4055, 1713, 3968, 3240, 3893, 3658, 2832, 3100, 3284, 2553, 4090, 3461, 3607, 2978, 1771, 2882, 1607, 3525, 4054, 1497, 1807, 2053, 2961, 2320, 3785, 3935, 3729, 3117, 1153, 2657, 2680, 3396, 3529, 3747, 2601, 3207, 2386, 3053, 3942, 3729, 3520, 3778, 4032, 2841, 3012, 3759, 3432, 4017, 3635, 3036, 3005, 3206, 3426, 3337, 3886, 3157, 2400, 2793, 1688, 2053, 2418, 3865, 3052, 1610, 3397, 3820, 3978, 3350, 2355, 2623, 3875, 3439, 3904, 4076, 3737, 3582, 3762, 3056, 2768, 3180, 1450, 3016, 1551, 3740, 1608, 3550, 3633, 3561, 3871, 3127, 3343, 2508, 3030, 3909, 3177, 3877, 2562, 2542, 3740, 3102, 2913, 2150, 3990, 3609, 3542, 4070, 2078, 3731, 3981, 2735, 3089, 3186, 2951, 3468, 2873, 3547, 3817, 3767, 2950, 3354, 3570, 3694, 1095, 2508, 3134, 2920, 3800, 3331, 3940, 3847, 1289, 2915, 2439, 3010, 3910, 3448, 1830, 3695, 3114, 3764, 2466, 2864, 2710, 1931, 2939, 2475, 3412, 4087, 3699, 2981, 4080, 3259, 2249, 2770, 3572, 3574, 2647, 2901, 4065, 3576, 3973, 3501, 2837, 3577, 3485, 3629, 3738, 3294, 2123, 3154, 3922, 3812, 2511, 3533, 3357, 3279, 2175, 3905, 2452, 4035, 3935, 3023, 3465, 904, 3461, 1567, 2094, 2045, 2810, 2798, 3306, 1846, 2379, 2927, 4044, 3997, 4054, 3863, 3326, 1466, 2846, 2928, 3880, 2701, 2583, 2847, 4012, 1951, 3930, 3123, 3955, 4067, 3892, 3224, 4055, 3903, 4051, 3834, 3018, 4060, 2141, 1867, 2322, 4033, 1518, 3132, 517, 4024, 1334, 1835, 3991, 2867, 4011, 1903, 2750, 3987, 3643, 4030, 3445, 3833, 3112, 3809, 1891, 3320, 1834, 3053, 2539, 2541, 3939, 3330, 3986, 3324, 3496, 1916, 3670, 3955, 3640, 3590, 3594, 2367, 3978, 3749, 1673, 3235, 2622, 3089, 1655, 2919, 2544, 3109, 970, 4027, 3408, 3302, 2593, 2720, 1448, 3663, 3469, 427, 882, 3686, 3784, 3954, 2821, 3406, 3215, 3175, 2774, 3040, 1661, 2745, 819, 3530, 1698, 4026, 2291, 746, 3259, 864, 3531, 2497, 2946, 3245, 2098, 3848, 3925, 3659, 2452, 2587, 4061, 3154, 3867, 3795, 3316, 1100, 2396, 2655, 2011, 2590, 3277, 3743, 2542, 3147, 3443, 3700, 2592, 3734, 2637, 2387, 2329, 3233, 2737, 1564, 2961, 2052, 3004, 1512, 2970, 1899, 3186, 4041, 1381, 3361, 1524, 3638, 3145, 3396, 3744, 2928, 4025, 2406, 3452, 3915, 3863, 4031, 3327, 4002, 3671, 2515, 2845, 3714, 3020, 2145, 1290, 2494, 3789, 3455, 3018, 886, 1031, 2614, 3414, 2888, 2078, 3949, 3893, 3511, 3208, 3219, 4091, 3894, 3032, 2452, 3465, 3857, 2898, 3234, 1219, 2560, 3293, 3943, 4026, 3387, 3798, 4047, 3852, 3540, 3713, 1582, 3307, 3184, 3471, 3537, 3996, 3435, 2792, 2007, 2140, 3164, 3163, 3606, 2238, 2912, 3292, 2463, 4064, 1973, 3274, 3289, 3914, 3884, 2900, 1063, 3659, 3514, 3500, 3775, 1804, 3905, 2886, 3774, 2757, 2762, 2761, 2589, 1903, 3009, 3731, 2370, 1704, 3355, 3851, 1394, 3767, 1904, 2538, 4036, 1890, 2758, 3682, 4092, 3281, 3336, 3529, 2531, 3104, 2837, 3959, 2153, 3913, 2748, 3926, 4072, 3105, 2307, 2715, 2842, 2754, 1678, 3436, 2904, 2880, 1565, 3510, 2844, 3317, 1837, 2782, 2835, 3838, 1985, 977, 3168, 1962, 4043, 2260, 1627, 1976, 1389, 3871, 3286, 3761, 3529, 1728, 3927, 3173, 1712, 3262, 3674, 1450, 1411, 3991, 3732, 3318, 1813, 3433, 3116, 1887, 2936, 1675, 1129, 2808, 3013, 3836, 3620, 2286, 2760, 3364, 3588, 1521, 3236, 3855, 3314, 3866, 3984, 1566, 3874, 2123, 2333, 1381, 2942, 3386, 3662, 3185, 4086, 3570, 4029, 2742, 2850, 3463, 3402, 1711, 2176, 3565, 2903, 987, 2549, 3369, 2374, 3222, 3753, 3860, 3885, 3465, 4015, 3890, 3310, 3923, 3311, 3783, 4018, 3856, 3220, 3646, 3912, 3678, 4089, 2605, 1958, 3206, 3595, 3754, 2524, 2416, 2861, 3919, 3649, 3371, 2100, 3511, 4078, 4022, 3895, 3102, 4042, 1861, 3106, 3386, 4094, 3862, 1290, 2820, 3747, 2322, 3954, 3667, 3058, 4057, 1618, 2534, 1597, 4022, 1538, 1223, 1790, 3777, 3297, 1337, 2926, 3871, 3264, 2247, 3792, 3022, 1396, 3649, 4033, 3271, 3919, 3898, 3087, 3777, 2067, 3671, 3583, 3018, 2552, 2918, 2696, 3625, 4013, 3634, 2920, 3701, 3736, 2698, 3382, 2347, 3153, 2938, 3728, 3131, 3566, 1896, 3959, 2446, 3531, 2476, 2989, 3754, 3248, 3171, 2566, 1731, 3686, 2117, 4073, 3121, 3080, 3636, 3258, 3386, 3204, 3835, 3882, 3527, 2779, 3326, 1874, 3755, 3296, 3936, 1068, 2991, 3831, 2222, 1642, 2278, 2478, 912, 3615, 3475, 4086, 1456, 3198, 2591, 2858, 3669, 1608, 4037, 2788, 3057, 2729, 4070, 2878, 3847, 3313, 2905, 3669, 2301, 3075, 2564, 1823, 2903, 3133, 1965, 3654, 3229, 3078, 3365, 2391, 1749, 3635, 3416, 2892, 1593, 3641, 3765, 4000, 2463, 3509, 3581, 3626, 3618, 2641, 2719, 1056, 1534, 2583, 3671, 3805, 3597, 3518, 3514, 3949, 2531, 2832, 2546, 3034, 3390, 2688, 3137, 3197, 3762, 2002, 3108, 2819, 3296, 3172, 3802, 2708, 3661, 3831, 3506, 3817, 3787, 4090, 3963, 3493, 3025, 1899, 3561, 3957, 3862, 3166, 2003, 3937, 4059, 1227, 1469, 1134, 3113, 3059, 3677, 2515, 2679, 2601, 3822, 1556, 1915, 3200, 2730, 2192, 2604, 2843, 3109, 3722, 3756, 4040, 2819, 2672, 2183, 2980, 1945, 4052, 3821, 1548, 3383, 2170, 2756, 4014, 2640, 2122, 2620, 4047, 3880, 1881, 2855, 2220, 3689, 3297, 2039, 3640, 3521, 3194, 1601, 2863, 2577, 3760, 2520, 1189, 2344, 3114, 3738, 3156, 3377, 2600, 2477, 2787, 2139, 3843, 1258, 2248, 2483, 3100, 3337, 2214, 3258, 3009, 3177, 3007, 2019, 3898, 2888, 3577, 3832, 2959, 3682, 3810, 3044, 1532, 3758, 3569, 3998, 2333, 2609, 495, 3367, 2949, 3745, 4059, 3293, 3444, 2048, 3989, 4092, 2606, 2370, 3520, 3628, 1790, 1037, 3470, 1067, 2905, 2845, 2567, 1626, 3341, 2030, 3071, 3938, 3014, 3968, 2500, 2013, 3371, 1765, 3684, 2237, 4038, 2716, 2575, 3297, 3911, 3250, 4077, 3478, 4068, 1588, 2700, 2675, 1959, 3333, 3732, 1183, 2669, 3786, 3902, 3477, 2621, 3770, 4096, 1820, 3213, 2172, 3839, 3990, 3637, 1458, 1886, 3052, 1027, 4061, 3981, 3480, 3576, 3505, 2963, 3715, 3381, 3906, 2866, 1785, 2953, 2745, 3211, 3652, 3810, 3438, 3623, 2033, 3987, 3523, 697, 3601, 3917, 3867, 3931, 4074, 2289, 2877, 1300, 3268, 3314, 2649, 3706, 4001, 3866, 3983, 2350, 2781, 3125, 2558, 3470, 1824, 3966, 3952, 3766, 2945, 3685, 1490, 3459, 2763, 2908, 2241, 3616, 3597, 3857, 3618, 3611, 3558, 3714, 3372, 3123, 3285, 2366, 1763, 3908, 2633, 2481, 3369, 1180, 4076, 2801, 2797, 1889, 3614, 1473, 2678, 4030, 3992, 2876, 1174, 1176, 4001, 2627, 1030, 3997, 1932, 1774, 3079, 4090, 3967, 3589, 3663, 2364, 2089, 2049, 2170, 3268, 3301, 4041, 1813, 3359, 3217, 1746, 2813, 2849, 2045, 3843, 3557, 3083, 2266, 3539, 1934, 4046, 2527, 3821, 1963, 4087, 2227, 3976, 1635, 3571, 3686, 3801, 3048, 2862, 3623, 3095, 3716, 3595, 2348, 2220, 3152, 3721, 4068, 1526, 3854, 3456, 2092, 4022, 2916, 3310, 1764, 3367, 3015, 3513, 3161, 4049, 2479, 3083, 3845, 3715, 3792, 2331, 3892, 4015, 3989, 3178, 3867, 2829, 2243, 3457, 3832, 2254, 4048, 2078, 2318, 3627, 2935, 2725, 3973, 3794, 2201, 2561, 3376, 2160, 3896, 2999, 3651, 3508, 3378, 3253, 3156, 3814, 502, 3735, 4048, 2380, 3028, 3812, 2825, 3429, 2461, 3556, 2263, 2051, 3232, 3667, 3157, 2692, 3544, 2512, 2081, 2137, 3988, 3026, 3533, 2611, 2805, 2569, 1503, 3019, 3623, 3111, 2613, 3603, 3109, 2460, 3148, 702, 3051, 3982, 2640, 4021, 4042, 2503, 3834, 1922, 1863, 2377, 3994, 1938, 1110, 3040, 3328, 3948, 2732, 3315, 3741, 3413, 2588, 3392, 4058, 1925, 4084, 4047, 2840, 3215, 4079, 3146, 3953, 3900, 2525, 3737, 3038, 3473, 2685, 2299, 2772, 3565, 3114, 2656, 3865, 2519, 3584, 3653, 3327, 3742, 3497, 3198, 1851, 3968, 1415, 3928, 1857, 3625, 2652, 3260, 3940, 3500, 4003, 3678, 3980, 3001, 3746, 3693, 3401, 3625, 2383, 3541, 3528, 2448, 2978, 1074, 2621, 3933, 3449, 2975, 3978, 2408, 2106, 2817, 3998, 1022, 1619, 1284, 3555, 3027, 2327, 3627, 2726, 3110, 3586, 2561, 1147, 3147, 2287, 3280, 4005, 2922, 1262, 2566, 3450, 3710, 4065, 2171, 3946, 2267, 1927, 3527, 2964, 2589, 3969, 3084, 2619, 3766, 3072, 1571, 3946, 1420, 2506, 3170, 4028, 3029, 3305, 1169, 3295, 492, 3727, 3916, 3996, 3085, 3430, 3894, 3238, 2764, 2872, 2537, 1787, 3667, 3816, 3858, 2185, 2954, 2541, 3334, 655, 3700, 3599, 3714, 3097, 3564, 3159, 3927, 3782, 3876, 3613, 3471, 3441, 2766, 2706, 596, 1069, 1939, 2224, 4065, 2885, 3462, 2121, 4059, 2999, 2530, 1897, 3385, 3675, 4046, 3899, 3891, 1846, 3657, 2210, 3212, 4091, 3088, 2598, 2767, 3765, 3869, 2506, 3024, 3146, 3431, 2897, 1338, 3937, 3750, 3748, 2848, 2912, 4021, 3994, 1578, 3418, 3707, 3621, 4024, 4051, 3571, 2784, 3174, 3016, 3537, 3075, 3713, 3066, 3316, 1689, 3833, 3844, 1727, 1170, 3813, 857, 3545, 2395, 3780, 3584, 2867, 1559, 3552, 2282, 2109, 3724, 3267, 2523, 3370, 3518, 2431, 2710, 3819, 4032, 2873, 3838, 3730, 2539, 1763, 2809, 2551, 2842, 2302, 2188, 3744, 3635, 2632, 2166, 1736, 2694, 2736, 1996, 3277, 3818, 3774, 830, 4036, 2454, 2962, 3394, 2935, 3182, 2791, 3557, 3405, 3979, 3648, 3768, 3840, 4018, 3946, 3090, 3197, 3506, 2823, 3374, 4007, 3739, 3422, 3498, 3984, 3857, 1707, 929, 4050, 3205, 3758, 3903, 3634, 4015, 3136, 1964, 609, 1918, 1061, 948, 360, 1155, 1001, 1137, 1021, 967, 1564, 1143, 787, 1444, 794, 558, 1095, 1107, 544, 373, 1603, 1265, 1509, 1831, 1992, 1754, 949, 2553, 1693, 1098, 1863, 1408, 1619, 509, 644, 856, 744, 2429, 2120, 422, 935, 982, 2410, 798, 1776, 1095, 1435, 918, 1522, 1154, 699, 2192, 1004, 1533, 742, 653, 1135, 1387, 1074, 1415, 1920, 1338, 930, 761, 1134, 2105, 420, 1144, 1231, 1299, 1516, 840, 1979, 1409, 976, 1101, 1154, 791, 1489, 894, 1488, 1369, 540, 1291, 791, 1014, 949, 879, 1288, 1098, 1202, 1765, 1072, 1457, 839, 1468, 1022, 660, 852, 170, 1733, 1239, 354, 414, 801, 1182, 2238, 1484, 2449, 1584, 866, 873, 1213, 1297, 1605, 1269, 1567, 1134, 1443, 1625, 1059, 1248, 423, 1018, 728, 551, 1313, 1333, 1834, 1133, 483, 1906, 1636, 1309, 1061, 735, 1537, 1577, 1526, 714, 1327, 1013, 1013, 901, 1600, 341, 2646, 986, 1334, 1288, 1265, 800, 1653, 1233, 1474, 767, 769, 641, 1433, 815, 1235, 870, 1249, 858, 1630, 948, 1165, 929, 767, 1507, 1633, 653, 911, 1586, 1360, 1591, 957, 795, 1589, 544, 1350, 1552, 634, 958, 685, 1551, 1012, 1982, 1809, 1273, 268, 1119, 1265, 1700, 1425, 1201, 1045, 607, 1430, 1485, 861, 1023, 1312, 1506, 691, 1343, 827, 1582, 1129, 1153, 364, 1167, 1040, 1107, 814, 881, 1798, 1027, 2157, 1657, 871, 781, 582, 2179, 1695, 968, 1248, 1161, 1347, 1909, 759, 1620, 1112, 462, 1955, 1531, 1824, 1191, 1089, 1472, 431, 991, 1012, 1221, 739, 1887, 892, 1183, 616, 914, 1307, 1785, 754, 168, 1315, 591, 1693, 1839, 1010, 799, 783, 1053, 547, 789, 1004, 1599, 1602, 354, 1317, 1634, 730, 1660, 1416, 1431, 1030, 1502, 869, 1100, 528, 907, 1148, 670, 858, 1341, 1004, 650, 863, 1063, 523, 880, 1054, 1017, 1369, 1732, 858, 2162, 1590, 590, 876, 1102, 1411, 873, 1280, 686, 1190, 984, 1259, 942, 698, 1473, 1185, 684, 844, 618, 1515, 796, 2108, 453, 898, 1354, 1483, 1592, 677, 2212, 2275, 1946, 1006, 641, 1789, 1463, 2091, 611, 758, 1201, 1166, 1509, 1151, 2206, 1504, 1072, 1363, 570, 1966, 446, 1469, 1577, 1834, 593, 1351, 2164, 545, 1218, 435, 1113, 1533, 1541, 353, 816, 1489, 1294, 1012, 1035, 501, 975, 1209, 363, 1118, 715, 889, 1337, 403, 1112, 530, 1297, 468, 1742, 1053, 546, 1166, 1223, 576, 1593, 933, 659, 1367, 1861, 586, 828, 439, 1598, 770, 1040, 1081, 1590, 955, 1173, 1875, 1261, 1413, 707, 980, 1117, 1493, 1422, 1283, 934, 1447, 1842, 899, 1770, 511, 1012, 1357, 812, 1338, 1044, 1497, 1756, 1412, 1929, 1057, 1114, 971, 1140, 1847, 227, 1080, 992, 1614, 434, 1390, 1601, 588, 707, 897, 1171, 947, 1994, 623, 823, 1250, 893, 1351, 1481, 523, 1545, 781, 962, 977, 1814, 1792, 1462, 1161, 1334, 544, 741, 532, 249, 1204, 1461, 1619, 849, 875, 1410, 552, 329, 1181, 1388, 1504, 398, 2106, 1466, 548, 1762, 1778, 228, 1726, 1330, 1225, 2570, 1108, 1091, 1298, 1613, 543, 358, 1662, 1264, 306, 1126, 676, 1068, 976, 1541, 596, 2332, 1535, 462, 514, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2301, 710, 2415, 1189, 954, 1243, 1277, 1014, 1250, 1249, 2240, 1650, 1162, 901, 1589, 1026, 657, 1235, 1206, 637, 402, 1668, 1520, 1813, 1909, 2037, 1997, 2173, 2727, 1945, 1405, 1962, 1572, 2024, 1302, 1188, 865, 1116, 2556, 2388, 502, 986, 1072, 2661, 1489, 2525, 1446, 1468, 1482, 1592, 1312, 702, 2603, 1075, 1620, 832, 1060, 1230, 1766, 1631, 1548, 2318, 1463, 1359, 1188, 1237, 2197, 1753, 1779, 1247, 1389, 1579, 2396, 2050, 1729, 979, 1366, 1486, 1327, 1618, 1868, 1802, 1510, 879, 2057, 854, 1286, 1100, 936, 1740, 1166, 1232, 2110, 1357, 1749, 1078, 2031, 1106, 905, 1141, 1075, 2331, 1443, 1368, 535, 902, 1416, 2379, 1500, 2455, 1718, 1204, 1275, 1402, 1505, 1830, 1382, 1873, 1189, 1604, 1999, 1500, 1588, 543, 1025, 743, 783, 1349, 1592, 2067, 1152, 915, 2153, 1867, 1563, 1210, 1162, 1573, 1762, 1825, 883, 1426, 1024, 1406, 990, 1687, 494, 3164, 988, 1565, 1753, 1634, 1142, 2018, 1573, 1879, 816, 1389, 1024, 1686, 870, 1261, 1045, 1465, 990, 1758, 1353, 1407, 981, 904, 1809, 1963, 1288, 1029, 1734, 1384, 1928, 1306, 1015, 1834, 658, 1459, 2455, 850, 1039, 926, 1901, 1126, 2060, 2098, 1848, 503, 1150, 1391, 1792, 1625, 1346, 1617, 673, 1488, 1527, 949, 1064, 1333, 2187, 904, 1570, 870, 1874, 1170, 1190, 759, 1176, 1496, 1328, 887, 1222, 1830, 1066, 2181, 1667, 1217, 968, 601, 2330, 2091, 1252, 1301, 1202, 2346, 2311, 820, 1747, 1954, 1221, 2010, 1648, 2215, 1496, 1983, 1838, 520, 1301, 1289, 1504, 1448, 1902, 1707, 1710, 1135, 1319, 2431, 1897, 834, 231, 1830, 1609, 1905, 1912, 1141, 1016, 1203, 1355, 592, 1162, 1192, 1627, 1776, 783, 2393, 1886, 839, 1721, 1853, 1532, 2025, 1562, 1177, 1181, 609, 1179, 1802, 706, 1970, 1401, 1326, 736, 1468, 1149, 619, 987, 1450, 1095, 1630, 2128, 1492, 2361, 1677, 920, 1042, 2258, 1864, 879, 1432, 726, 1254, 1080, 1313, 1129, 2015, 1598, 1472, 803, 987, 703, 1719, 1001, 2315, 742, 986, 1844, 1966, 1737, 732, 2264, 2429, 2172, 1617, 981, 1805, 1806, 2094, 1807, 818, 1932, 1202, 1566, 1270, 2265, 1856, 1164, 1558, 1219, 2087, 698, 1660, 1805, 2614, 760, 1460, 2246, 573, 1312, 663, 1119, 1647, 1631, 569, 1509, 2004, 1804, 1594, 1301, 611, 1373, 1603, 676, 1159, 817, 1233, 1368, 1226, 1156, 883, 2517, 1112, 1878, 1083, 719, 1314, 1603, 624, 1808, 1404, 1568, 1960, 1894, 1319, 1078, 477, 1695, 1191, 1050, 1123, 1689, 1622, 1320, 2211, 1399, 2090, 1020, 1543, 1275, 1539, 1667, 1758, 1227, 1773, 2808, 918, 1889, 657, 1160, 2111, 1552, 1416, 1627, 1548, 1939, 1450, 2221, 1756, 1162, 1455, 1751, 2053, 729, 1253, 1563, 2066, 631, 1460, 1727, 597, 852, 1186, 1200, 1197, 2062, 892, 1641, 1414, 1173, 1451, 1763, 554, 1956, 1057, 1023, 1484, 2338, 2310, 1507, 1845, 1392, 651, 861, 725, 412, 1314, 1549, 1627, 892, 1195, 1881, 573, 1186, 1185, 1751, 1515, 960, 2191, 1767, 595, 1828, 2241, 704, 2126, 1333, 1681, 2662, 1574, 1230, 1647, 1905, 652, 538, 1692, 2153, 805, 1267, 899, 1352, 1074, 1771, 644, 2390, 2169, 683, 821, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2942, 1159, 2553, 1296, 2133, 2055, 1605, 1084, 1383, 1580, 2341, 1672, 1173, 1163, 2037, 1188, 1162, 1491, 1213, 707, 609, 2092, 1596, 2049, 2186, 2211, 2135, 2203, 2877, 2163, 1916, 2000, 1608, 2318, 1702, 2257, 964, 1160, 2577, 2447, 841, 1481, 1323, 2740, 1652, 2593, 2063, 2407, 1901, 1934, 1749, 969, 2731, 1607, 2095, 1525, 1329, 1729, 1779, 2910, 1649, 2337, 2047, 1474, 1198, 1353, 2213, 1787, 2013, 1280, 1731, 1902, 2513, 2297, 2298, 1097, 1459, 1613, 1739, 1649, 1934, 1841, 1635, 1552, 2332, 1001, 1582, 1145, 1027, 1783, 2018, 1625, 2360, 1739, 2182, 1221, 2429, 1133, 1068, 1188, 1419, 2724, 1789, 1798, 1118, 1062, 1470, 2623, 2063, 2647, 1820, 1266, 1700, 1865, 1520, 2543, 1634, 1991, 1998, 2108, 2312, 2131, 1845, 831, 1492, 1496, 877, 1399, 1766, 2111, 1311, 1894, 2291, 1905, 1647, 1488, 1732, 1701, 2141, 2255, 909, 1639, 1200, 1514, 1229, 1737, 1033, 3537, 1642, 2049, 2230, 1668, 1170, 2268, 1914, 1962, 881, 1670, 1229, 1898, 948, 1806, 1485, 1547, 1260, 2043, 1380, 1413, 1261, 1239, 2009, 1975, 1299, 1101, 1761, 1667, 2323, 1436, 1423, 2212, 731, 1666, 2699, 1489, 2015, 1462, 2106, 1575, 2660, 2163, 1872, 1459, 2214, 1867, 1925, 1816, 1692, 2275, 1848, 2222, 1576, 1166, 1702, 2116, 2259, 1021, 2689, 1559, 1908, 1378, 1408, 1780, 1264, 1974, 1556, 1389, 1251, 2110, 1334, 2291, 1844, 1260, 1062, 1077, 2650, 2161, 1759, 2034, 1256, 2935, 2563, 1022, 2000, 2075, 2106, 2019, 1919, 2277, 1618, 2429, 1988, 860, 1336, 1908, 1565, 1649, 1944, 1718, 1879, 2080, 1528, 2468, 2582, 1599, 1712, 2231, 1777, 2085, 2313, 1696, 2519, 1290, 1397, 624, 1253, 1379, 1892, 2106, 1894, 2553, 2420, 1313, 1911, 2235, 2232, 2091, 1954, 1482, 1294, 642, 1350, 1838, 1650, 2286, 2432, 1335, 1053, 2385, 1415, 922, 1825, 1564, 2261, 2176, 2579, 2158, 2438, 1932, 1160, 1056, 2534, 2035, 1625, 1790, 1142, 1318, 1496, 1836, 1358, 2155, 1776, 1548, 822, 1017, 726, 1801, 1414, 2544, 877, 1023, 2146, 2130, 2254, 1063, 2293, 2515, 2451, 2434, 1133, 2711, 1832, 2253, 1985, 1059, 2421, 1533, 1861, 1329, 2279, 2001, 1313, 1602, 1237, 2351, 1551, 1832, 2084, 2746, 1379, 1468, 2666, 587, 1543, 701, 1219, 1793, 1819, 622, 1651, 2208, 2673, 1668, 1843, 680, 1410, 1866, 820, 2547, 947, 1266, 1437, 1565, 1485, 1123, 2639, 1317, 2206, 1107, 906, 1728, 2292, 1510, 1936, 1900, 1920, 2260, 2026, 1536, 1592, 1201, 2506, 1300, 1694, 1127, 1837, 1959, 1343, 2240, 1454, 2219, 1890, 1920, 2293, 1875, 1715, 2046, 1569, 1822, 2911, 1567, 1906, 2206, 1680, 2385, 1625, 1775, 2043, 1807, 2060, 1671, 2453, 2189, 1622, 1625, 2176, 2095, 1480, 1668, 1568, 2124, 1934, 1466, 2177, 849, 1361, 1228, 1366, 1828, 2169, 1653, 1914, 1502, 1334, 1898, 1947, 1067, 2023, 1090, 1812, 2339, 2756, 2403, 1923, 1957, 2025, 975, 1727, 769, 496, 1534, 1555, 2138, 1343, 1438, 2030, 592, 1987, 1636, 2177, 1627, 1199, 2394, 2187, 979, 1840, 2266, 1021, 2171, 1763, 1862, 3094, 1587, 1318, 2341, 2170, 690, 1041, 2015, 2236, 1627, 1828, 1036, 1356, 1538, 1967, 881, 2433, 2269, 1050, 1603, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3931, 2290, 2658, 1520, 2194, 2191, 2100, 1143, 1633, 1821, 2428, 2069, 1492, 1275, 2073, 1693, 1355, 1747, 1352, 1539, 768, 2191, 1716, 2093, 2283, 2673, 2173, 2478, 3077, 2429, 2595, 2105, 1779, 3069, 1980, 2449, 974, 1175, 2664, 2451, 1012, 1921, 1601, 3076, 1947, 2761, 2203, 2521, 1929, 2324, 1842, 1177, 2850, 2001, 2567, 1878, 1835, 2736, 1869, 3155, 2185, 2786, 2106, 1838, 2064, 1435, 2735, 1984, 2233, 1711, 1752, 2114, 2551, 2392, 2374, 1471, 1531, 1631, 2197, 2008, 1968, 1850, 1733, 1577, 2696, 2161, 2241, 1478, 2263, 2199, 2514, 2211, 2564, 2556, 2373, 1368, 2496, 1228, 1111, 1732, 1794, 3093, 2260, 1831, 1751, 1472, 1987, 2786, 2604, 3032, 2132, 1530, 1748, 2145, 1545, 2642, 1650, 1996, 2091, 2120, 2590, 2780, 1996, 1007, 1982, 1590, 2097, 1907, 2114, 2252, 1561, 2281, 2317, 2109, 1802, 1792, 1759, 1916, 2563, 2345, 955, 2120, 1465, 1518, 1483, 1828, 1136, 3678, 1680, 2357, 2389, 1678, 1576, 2645, 2570, 2135, 1703, 2042, 1689, 1956, 1837, 2131, 1877, 2320, 2042, 2164, 2044, 1885, 2088, 1431, 2162, 2075, 1562, 2228, 2327, 1739, 2602, 1537, 1474, 2336, 1190, 1694, 2755, 1520, 2602, 1924, 2702, 2315, 2777, 2218, 2223, 2419, 2301, 2178, 2428, 2361, 1779, 2494, 1899, 2343, 1774, 1240, 2120, 2226, 2383, 1056, 2696, 1651, 2280, 2413, 1417, 2104, 1608, 2195, 2253, 1510, 2192, 2216, 1975, 2301, 2734, 1295, 1203, 1132, 2759, 2352, 2290, 2036, 1715, 2965, 2681, 1479, 2007, 2161, 2447, 2225, 2524, 2426, 1737, 2488, 2364, 1391, 1393, 1949, 2542, 2047, 1998, 2189, 2007, 2722, 1707, 2636, 2838, 1894, 2107, 2849, 1847, 2423, 2350, 1956, 2798, 1301, 1729, 1288, 1407, 1698, 1989, 2267, 2213, 2563, 2727, 1369, 2541, 2289, 2881, 2185, 2047, 1760, 1773, 910, 1613, 1876, 2262, 2426, 2437, 1563, 1491, 2604, 1783, 1371, 1897, 1907, 2313, 2834, 2809, 2163, 2641, 2603, 2197, 1195, 2607, 2377, 1845, 2406, 2277, 1571, 1700, 2161, 2186, 2246, 1936, 1946, 1393, 1284, 1724, 2293, 2327, 2724, 1010, 1740, 2430, 2172, 2892, 1143, 2399, 2890, 2471, 2535, 2433, 2773, 2032, 2697, 2325, 1464, 2426, 1808, 1925, 1700, 2419, 2319, 1482, 1844, 1889, 2975, 1886, 1935, 2350, 2785, 1971, 1566, 2754, 2455, 1708, 749, 2073, 1936, 2125, 1075, 1688, 2421, 2809, 1943, 2473, 1135, 1504, 2083, 912, 2617, 1581, 1822, 1457, 2505, 1841, 1179, 2671, 1420, 2315, 1265, 1612, 2084, 2743, 1901, 2535, 2212, 2036, 2290, 2161, 1988, 1706, 1540, 2520, 1336, 2618, 1313, 1911, 2905, 1478, 2892, 2537, 2649, 2342, 2205, 2530, 2547, 1862, 2288, 1655, 2110, 2934, 2030, 1949, 2225, 1894, 2517, 1955, 1821, 2444, 2089, 2214, 2035, 2535, 2258, 1870, 1846, 2937, 2734, 1867, 2414, 1749, 2232, 1990, 1521, 2594, 1066, 1590, 1380, 2708, 2045, 2179, 1953, 2234, 2528, 1472, 2466, 1963, 1248, 2266, 1359, 2013, 3030, 2829, 2877, 2186, 1999, 2567, 1058, 1988, 898, 590, 2169, 1941, 2797, 1623, 2306, 2203, 615, 2149, 2446, 2293, 1652, 1393, 2465, 2499, 1900, 1964, 2709, 1262, 2334, 2227, 2384, 3124, 1800, 1949, 2432, 2269, 698, 1564, 2101, 2327, 1788, 2395, 1086, 1363, 2667, 1976, 1683, 2525, 2501, 1310, 2074, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4023, 2400, 2671, 1817, 2718, 2270, 2257, 1199, 1954, 2183, 2443, 2486, 1866, 1811, 2232, 1733, 1528, 1957, 1590, 1563, 1228, 2238, 2081, 2302, 3077, 2775, 3137, 2597, 3106, 2568, 2655, 2413, 1784, 3420, 2138, 2610, 1638, 1293, 2698, 2484, 1395, 1933, 1735, 3350, 2671, 2925, 2277, 2778, 2287, 2565, 2117, 1245, 3358, 2039, 2869, 2870, 2152, 2845, 1984, 3535, 2347, 3044, 2198, 2592, 2356, 1650, 2799, 2511, 2403, 1972, 2109, 2315, 3372, 2565, 2529, 2280, 1764, 1872, 2476, 2273, 2517, 1880, 1759, 1896, 2870, 2230, 2301, 1966, 2500, 2972, 2675, 2404, 2780, 3049, 2470, 1842, 2856, 1296, 1133, 1768, 2670, 3249, 2450, 2156, 2380, 2376, 2514, 2909, 2885, 3302, 2194, 2541, 2152, 2341, 1682, 2886, 2397, 2275, 2782, 2632, 2755, 2905, 2608, 2336, 2155, 1721, 2639, 2270, 2721, 2290, 1592, 2974, 2556, 2470, 2029, 1863, 1981, 1944, 2570, 3181, 1279, 2488, 1748, 1623, 1592, 1941, 1171, 3755, 2017, 2386, 2516, 1790, 1667, 3025, 2666, 2529, 2301, 2057, 2301, 2145, 1847, 2710, 2106, 2629, 2376, 2847, 2478, 2197, 2220, 2518, 2434, 2629, 2253, 2663, 2406, 2038, 2916, 1691, 2061, 2503, 1729, 1775, 3178, 1743, 2852, 2129, 3211, 2379, 3012, 2357, 2316, 2511, 2329, 2348, 2460, 2394, 2042, 2797, 2029, 2483, 2140, 1606, 2558, 2393, 3094, 1217, 2781, 2076, 2298, 2959, 1690, 2332, 1767, 2762, 2684, 1958, 2654, 2429, 2486, 2384, 2787, 2020, 1847, 1835, 2831, 2505, 2411, 2563, 1938, 3468, 2749, 1623, 2531, 2197, 2671, 2475, 2752, 2709, 2544, 2505, 2501, 1680, 1682, 2008, 2837, 2150, 2407, 2425, 2408, 2842, 1891, 2654, 3301, 1899, 2804, 2867, 2515, 2591, 2453, 2042, 2853, 1544, 1781, 1509, 2171, 2454, 2196, 2374, 2576, 2841, 2770, 1949, 2602, 2609, 2896, 2257, 2352, 2476, 1799, 1456, 2241, 1909, 3083, 2654, 2488, 2548, 1654, 2719, 2196, 1772, 2675, 2614, 2771, 3188, 3058, 2365, 2738, 2651, 2298, 1964, 2653, 2427, 1934, 2464, 2526, 1852, 1781, 2478, 2219, 2671, 2081, 2025, 2099, 1764, 2273, 2562, 2616, 2773, 1733, 1839, 2490, 2179, 3140, 1442, 2534, 3115, 2545, 2626, 2459, 2931, 2095, 2846, 2486, 1756, 2742, 1889, 2205, 1711, 2437, 2481, 2538, 2737, 1960, 3143, 2152, 2500, 2595, 3014, 2152, 2111, 2984, 2832, 1744, 789, 2289, 2257, 2128, 1289, 1880, 2500, 2813, 2948, 2947, 1530, 2303, 2217, 2331, 2742, 2195, 2084, 1536, 3174, 2215, 2235, 3176, 1439, 2409, 1820, 1960, 2203, 2942, 2338, 3099, 2436, 2104, 2426, 2262, 1994, 2005, 2330, 2548, 1724, 2640, 1505, 2333, 2981, 1819, 2961, 2620, 2936, 2809, 2447, 2674, 2710, 2002, 2558, 2127, 2184, 2986, 2240, 2252, 2583, 1902, 2756, 2002, 2751, 2457, 2281, 2458, 2168, 2707, 2551, 2291, 2024, 2968, 2860, 2102, 2884, 2193, 2374, 2417, 2113, 2777, 1490, 2225, 1749, 3487, 2249, 2994, 1955, 2447, 2878, 2378, 2679, 2015, 1511, 2322, 1975, 2299, 3091, 2837, 2906, 2593, 2087, 2663, 1120, 2027, 1384, 681, 2467, 2054, 2939, 2150, 2384, 2354, 687, 2358, 2499, 2501, 1883, 2911, 2487, 2959, 2830, 2391, 2782, 2088, 2480, 2264, 2612, 3357, 2034, 2073, 2703, 2715, 1590, 1655, 2193, 2524, 2067, 2400, 1128, 2393, 2755, 2394, 3191, 2719, 2827, 1603, 2146, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2462, 2871, 1933, 3008, 2752, 2485, 2725, 2482, 2375, 2835, 2620, 1937, 3008, 2319, 1807, 1904, 2383, 1909, 1833, 1278, 2294, 2298, 2323, 3196, 2953, 3212, 2612, 3400, 2657, 2901, 2425, 2978, 3691, 2614, 2793, 2145, 2454, 2756, 2978, 1718, 2094, 1964, 3449, 2787, 3341, 2974, 2878, 2320, 2606, 2973, 1512, 3596, 2147, 2888, 2987, 2284, 2887, 2251, 3677, 2858, 3142, 2651, 2890, 2369, 2424, 2960, 2629, 2624, 2514, 2190, 2357, 3462, 2626, 2726, 2387, 1857, 2046, 2552, 2449, 2957, 2522, 2128, 2432, 2985, 2446, 2997, 2548, 2770, 3081, 2987, 2770, 2851, 3072, 2487, 2711, 3104, 1960, 1403, 1776, 2810, 3287, 2577, 2558, 2759, 2731, 2962, 3104, 3005, 3345, 2580, 2616, 2393, 2353, 1755, 2965, 2455, 2879, 3406, 3070, 2802, 3296, 2659, 3028, 2477, 1981, 3145, 2725, 2848, 2568, 1975, 3030, 2560, 2755, 3251, 2773, 2015, 2254, 2862, 3236, 1975, 2609, 2113, 1825, 2465, 1972, 1270, 3812, 2700, 2395, 2881, 2216, 3238, 3278, 2926, 3488, 2549, 2075, 2517, 2547, 2163, 2874, 2202, 2691, 2488, 3063, 2720, 2521, 2338, 2876, 2437, 3096, 2604, 2719, 2654, 2402, 3042, 2054, 2487, 2569, 2124, 2061, 3251, 2201, 2873, 2762, 3225, 2683, 3174, 2635, 2458, 2652, 2461, 2376, 2741, 2468, 2170, 2800, 2550, 2786, 2571, 1775, 2661, 2437, 3134, 1363, 2839, 2099, 2985, 3060, 1785, 2513, 1894, 2795, 3164, 2056, 3073, 3255, 2643, 2495, 2830, 3372, 2078, 2002, 3292, 2986, 2578, 2860, 2024, 3567, 2988, 1803, 2832, 2371, 2747, 2940, 3183, 3064, 2911, 2768, 2714, 2332, 1849, 2982, 2954, 2545, 2416, 2842, 2631, 2957, 2260, 2796, 3388, 1919, 2937, 3060, 2844, 2912, 2473, 2404, 3227, 1910, 1944, 3139, 2514, 3089, 2510, 2816, 2654, 2930, 2946, 2579, 3216, 2790, 3634, 2275, 2710, 2724, 2158, 1503, 2271, 2091, 3343, 2767, 2516, 2607, 1721, 2916, 2464, 2518, 2816, 3068, 3142, 3317, 3413, 2971, 3146, 2660, 2334, 2598, 2702, 2865, 2347, 2646, 2775, 2207, 1896, 2586, 2385, 3027, 2945, 2090, 2133, 1896, 2282, 3135, 2853, 2848, 2153, 1897, 2497, 2782, 3297, 1821, 2605, 3365, 2593, 2675, 2648, 2934, 2305, 3054, 2822, 2199, 3166, 2308, 3205, 2183, 3337, 2643, 3075, 2977, 2235, 3389, 2650, 2799, 3047, 3127, 2572, 2359, 3050, 2907, 2177, 873, 2442, 2350, 2847, 1323, 2566, 2768, 2836, 3144, 2994, 1580, 2413, 2362, 2393, 2904, 2312, 2156, 2065, 3220, 2532, 2498, 3542, 2225, 2413, 2835, 2200, 2299, 3035, 2547, 3136, 2547, 2863, 2536, 2525, 2116, 2009, 2471, 2614, 1871, 3038, 1809, 2599, 3194, 1914, 3033, 3149, 3000, 3418, 2510, 2800, 2939, 2374, 2751, 2851, 2214, 3019, 2530, 2421, 2745, 2417, 2903, 2093, 2808, 2484, 2409, 2704, 2522, 2741, 2561, 2691, 2526, 3093, 2882, 2211, 2935, 2291, 2825, 2722, 3014, 2788, 1903, 2554, 2350, 3506, 2325, 3065, 2474, 2619, 3165, 3075, 3006, 2472, 1516, 2657, 2327, 2305, 3344, 2980, 2980, 3394, 2255, 3324, 1425, 2371, 1873, 835, 2691, 2076, 2985, 2846, 2743, 2548, 848, 2484, 2541, 3147, 2818, 3018, 2769, 3068, 3123, 2766, 3315, 2612, 2812, 2549, 2977, 3361, 2254, 3363, 3096, 2970, 1897, 2129, 2665, 2952, 3210, 2817, 1522, 2587, 2854, 2756, 3219, 3100, 3642, 1610, 2808, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3424, 2993, 2883, 3360, 2878, 2640, 2914, 3495, 3256, 3079, 3329, 2034, 3292, 2524, 2350, 2074, 2500, 2622, 2358, 1748, 2767, 2301, 2426, 3377, 3081, 3470, 3108, 3762, 2977, 3166, 3396, 3107, 3830, 2677, 2899, 2479, 3026, 3345, 3676, 1814, 2300, 2011, 3490, 2791, 3574, 2990, 2976, 2582, 2633, 3361, 2063, 3655, 3282, 3104, 3374, 2366, 3144, 2278, 3780, 3034, 3629, 2978, 3015, 2733, 2675, 3140, 2895, 3462, 3068, 2320, 3261, 3900, 2787, 2989, 2884, 2839, 2390, 2691, 2898, 3259, 2539, 2449, 2442, 3350, 2650, 3311, 3163, 3308, 3295, 3255, 3191, 3120, 3093, 2687, 2785, 3351, 3113, 1915, 1984, 3077, 3364, 2624, 3326, 2804, 3093, 3555, 3254, 3145, 3453, 2837, 2687, 2985, 2560, 1899, 3127, 2710, 3054, 3408, 3403, 3410, 3513, 3303, 3260, 3074, 2299, 3234, 2824, 2884, 2621, 2369, 3470, 2861, 2962, 3456, 3093, 2305, 2342, 3303, 3538, 2480, 3106, 2868, 2543, 2566, 2500, 1943, 3937, 3062, 2414, 2968, 3423, 3503, 3531, 2996, 3828, 2643, 2152, 3141, 2602, 2816, 3233, 2337, 2826, 2773, 3177, 2905, 2544, 2645, 3055, 3018, 3161, 2734, 2906, 2709, 2575, 3084, 2771, 2644, 2634, 2765, 3028, 3275, 2776, 3140, 2891, 3462, 2887, 3512, 3391, 2682, 3166, 2491, 2425, 2896, 2583, 2362, 2840, 2590, 3510, 2914, 1785, 2782, 2845, 3677, 1619, 2945, 2219, 2990, 3169, 1880, 3154, 2244, 2971, 3514, 2297, 3204, 3259, 2950, 2534, 3043, 3524, 2931, 2428, 3328, 3008, 2661, 2936, 2346, 3783, 3162, 2923, 2975, 2451, 2767, 3043, 3235, 3193, 3031, 3642, 2816, 2656, 2011, 3444, 3085, 2555, 2437, 2896, 2681, 3333, 2344, 3011, 3581, 2198, 3202, 3818, 2947, 2934, 3525, 2453, 3265, 1942, 2573, 3368, 2795, 3138, 2542, 3366, 2938, 3039, 2987, 2973, 3300, 3132, 3727, 2540, 2775, 3013, 2370, 2597, 2374, 2453, 3830, 2847, 2816, 2902, 2232, 3695, 2634, 2629, 2992, 3155, 3255, 3736, 3678, 3122, 3567, 3209, 2631, 3012, 2815, 3045, 2492, 2976, 2822, 2405, 2080, 2906, 3659, 3419, 2951, 3049, 2975, 2659, 2638, 3404, 3498, 3149, 2212, 2078, 3256, 3670, 3511, 2447, 2725, 3476, 2772, 3198, 2815, 3566, 2449, 3574, 2847, 2509, 3707, 2561, 3595, 2845, 3346, 2955, 3120, 3228, 2425, 3536, 2768, 2966, 3054, 3450, 2589, 3015, 3697, 3012, 2519, 1323, 2723, 3196, 2861, 1383, 2810, 2848, 3236, 3461, 3179, 1820, 2522, 2544, 2438, 3058, 3224, 2604, 2450, 3248, 3105, 3074, 3892, 2976, 3301, 3063, 2268, 2666, 3237, 3040, 3272, 2952, 3213, 2673, 2550, 2572, 2739, 2764, 2621, 2783, 3164, 2278, 2843, 3308, 2386, 3173, 3162, 3020, 3471, 3217, 3145, 3042, 3061, 3155, 3182, 2451, 3294, 3215, 2666, 2815, 2587, 2997, 3047, 3193, 2516, 2435, 2769, 2900, 2804, 2644, 2723, 2754, 3102, 3459, 2919, 3075, 2445, 3008, 3282, 3275, 3381, 2018, 2990, 2759, 3571, 2361, 3393, 2984, 2707, 3263, 3314, 3070, 2759, 2333, 2681, 2745, 2309, 3678, 3084, 2983, 3635, 3577, 3525, 1661, 2642, 1984, 1486, 3543, 2886, 3146, 2935, 3030, 2828, 2107, 2653, 3186, 3539, 3390, 3336, 2943, 3185, 3460, 2860, 3506, 2655, 2814, 3004, 3100, 3419, 3222, 3392, 3169, 2979, 2292, 2240, 2861, 3096, 3702, 3143, 2139, 3003, 2921, 3400, 3951, 3315, 3656, 2097, 3156, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3742, 3285, 3450, 3531, 3191, 3781, 3141, 3554, 3758, 3381, 3413, 2858, 3782, 2611, 2357, 3281, 2554, 2733, 2404, 1938, 3549, 2365, 3431, 3527, 3605, 3636, 3270, 3764, 3143, 3532, 3445, 3151, 4034, 2943, 3523, 2481, 3125, 3583, 3812, 2645, 2345, 2481, 3516, 3406, 3872, 3779, 3269, 2908, 2802, 3391, 3162, 3926, 3423, 3293, 3434, 2928, 3251, 2503, 3786, 3057, 3794, 3041, 3325, 2967, 3075, 3372, 3545, 3507, 3166, 2572, 3572, 3921, 2812, 3311, 3108, 3418, 2732, 3268, 3213, 3339, 2599, 2885, 2685, 3788, 2758, 3444, 3268, 3394, 3347, 3626, 3593, 3463, 3320, 2740, 3546, 3523, 3751, 2147, 2482, 3521, 3753, 2995, 3392, 3459, 3141, 3797, 3944, 3305, 3852, 2933, 2726, 3029, 2661, 2662, 3370, 2977, 3454, 3664, 3411, 3423, 3674, 3641, 3309, 3262, 2449, 3486, 2831, 2927, 2857, 2487, 3596, 2873, 3091, 3474, 3480, 2460, 2805, 3454, 3870, 2804, 3242, 2919, 2821, 2578, 3237, 3245, 3939, 3088, 2595, 2987, 3442, 3793, 3554, 3085, 3841, 2718, 2597, 3294, 3556, 3158, 3648, 2744, 3275, 2995, 3218, 3040, 2907, 3202, 3702, 3271, 3315, 2903, 3227, 3463, 3116, 3321, 2964, 3546, 3135, 3641, 3199, 3399, 3085, 3291, 3469, 3598, 3042, 3770, 3539, 3192, 3228, 2985, 2964, 3285, 2841, 2547, 2929, 2655, 3627, 3362, 1927, 2960, 3020, 3895, 2016, 3422, 2917, 3203, 3171, 2221, 3192, 2528, 3024, 3697, 2687, 3309, 3639, 3259, 2802, 3660, 3551, 3585, 2847, 3421, 3055, 2902, 3125, 3333, 3811, 3625, 3352, 3069, 2713, 3105, 3303, 3427, 3338, 3180, 3650, 2968, 3033, 2256, 3701, 3175, 3504, 3098, 3260, 3454, 3365, 3427, 3468, 3659, 2930, 3518, 3842, 2985, 3336, 3534, 2874, 3440, 2535, 2831, 3587, 3768, 3630, 3660, 3470, 3406, 3041, 3398, 3324, 3553, 3599, 3791, 3577, 2957, 3351, 2525, 2913, 2647, 2754, 3913, 3159, 3704, 3298, 2658, 3699, 3026, 2697, 3420, 3187, 3316, 3836, 3904, 3322, 3693, 3382, 2910, 3578, 3194, 3656, 2529, 3234, 2916, 2714, 2087, 2918, 3923, 3482, 3261, 3051, 3061, 2785, 2835, 3775, 3668, 3361, 2489, 2380, 3832, 3749, 3644, 2830, 2814, 3562, 3497, 3250, 2960, 3645, 2493, 3746, 3409, 2655, 3818, 2760, 3652, 3101, 3495, 3500, 3252, 3774, 3152, 3587, 3002, 3306, 3448, 3569, 3329, 3161, 3784, 3045, 2633, 1618, 3192, 3533, 3075, 3654, 3278, 3099, 3519, 3501, 3307, 2051, 3305, 2845, 2788, 3281, 3284, 3359, 2753, 3567, 3150, 3373, 3948, 3415, 3323, 3170, 2942, 3229, 3459, 3093, 3308, 3642, 3811, 2925, 3119, 3680, 2743, 3145, 2995, 3301, 3265, 2302, 2851, 3686, 2528, 3277, 3252, 3258, 3555, 3382, 3212, 3166, 3643, 3404, 3256, 2628, 3621, 3965, 2755, 2853, 3632, 3068, 3430, 3468, 3301, 2578, 3515, 3478, 3294, 3352, 2983, 2998, 3192, 3717, 3461, 3413, 2840, 3111, 3372, 3404, 3447, 2406, 3121, 3467, 3661, 2903, 3594, 3279, 3283, 3846, 3504, 3431, 2842, 3370, 2717, 3387, 2556, 3768, 3200, 3567, 3696, 3604, 3661, 2125, 2651, 2483, 1491, 3694, 2982, 3231, 2969, 3375, 2861, 2157, 2826, 3289, 3575, 3639, 3424, 2975, 3296, 3475, 2923, 3762, 3139, 3118, 3013, 3160, 3425, 3471, 3455, 3184, 3467, 2881, 2952, 3538, 3619, 3721, 3191, 2466, 3058, 3061, 3621, 3978, 3322, 3745, 2581, 3368, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3926, 3562, 3906, 3786, 3309, 3815, 3435, 3571, 3856, 3761, 3727, 3668, 3962, 3250, 2950, 3738, 3041, 2836, 2682, 3312, 3775, 2732, 3678, 3686, 3830, 3781, 3313, 3867, 3783, 3566, 3608, 3669, 4069, 3335, 3854, 3106, 3187, 3743, 4046, 2712, 2587, 2689, 3520, 3472, 4028, 3783, 3457, 3074, 3056, 3409, 3975, 3953, 3601, 3364, 3472, 3771, 3726, 3250, 3812, 3081, 3821, 3421, 3402, 3068, 3423, 3575, 3576, 3621, 3309, 3063, 3757, 3982, 3141, 3617, 3177, 3518, 3735, 3309, 3261, 3731, 3773, 3086, 3493, 3966, 3032, 3550, 3691, 3406, 3374, 3775, 3894, 3887, 3322, 3065, 3552, 3634, 3798, 2413, 3779, 3716, 3784, 3272, 3840, 3573, 3470, 3952, 3946, 3325, 3891, 3070, 3551, 3400, 3517, 3447, 3763, 3599, 3868, 3931, 3474, 3568, 3710, 3647, 3405, 3884, 3217, 3978, 3699, 3158, 3583, 2860, 3617, 2883, 3452, 3554, 3854, 3896, 3175, 3527, 3885, 3339, 3678, 3548, 2833, 2766, 3653, 3277, 3972, 3353, 3027, 3516, 3538, 3994, 3633, 3737, 3893, 3488, 3079, 3764, 3859, 3274, 3670, 3856, 3453, 3179, 3554, 3278, 3099, 3487, 3827, 3461, 3728, 3881, 3312, 3533, 3242, 3611, 3338, 3697, 3890, 3803, 3325, 3755, 3461, 3479, 3684, 3786, 3225, 3832, 3576, 3772, 3816, 3357, 3482, 3592, 3279, 3208, 3150, 3427, 3712, 3690, 3174, 3004, 3703, 3909, 2541, 3521, 3627, 3820, 3224, 3421, 3262, 3760, 3416, 3785, 2721, 3449, 3875, 3420, 3545, 3700, 3757, 3718, 2873, 3767, 3548, 3458, 3253, 3408, 3903, 3759, 3518, 3658, 3339, 3240, 3590, 3852, 3628, 3668, 3724, 3150, 3039, 2827, 4050, 3484, 3570, 3426, 3817, 3704, 3622, 3625, 3779, 3780, 3035, 3613, 3908, 2987, 3451, 3754, 2954, 3677, 3409, 3147, 3970, 3789, 3811, 3746, 3785, 3485, 3236, 3863, 3642, 3915, 3655, 3839, 3603, 3363, 3490, 2549, 3602, 3106, 2863, 3995, 3687, 3812, 3305, 3456, 3740, 3388, 3117, 3710, 3456, 3335, 3930, 3945, 3362, 3889, 3416, 3318, 3614, 3548, 4023, 3437, 3834, 2929, 3177, 2372, 3269, 3948, 3902, 3396, 3287, 3359, 4014, 3191, 3945, 3871, 3472, 2854, 2808, 3921, 3985, 3743, 3591, 3190, 3681, 3646, 3755, 3402, 3810, 3647, 3901, 3981, 3340, 3957, 3001, 4037, 3449, 3507, 3736, 3419, 3809, 3458, 3590, 3342, 4023, 3795, 3726, 3354, 3589, 3921, 3563, 2697, 1886, 3769, 3543, 3133, 4047, 4055, 3111, 3826, 3579, 3552, 2498, 3363, 3487, 3270, 3813, 3625, 3620, 3912, 3578, 3476, 3487, 3992, 3798, 3612, 3220, 3361, 3528, 4061, 3146, 3874, 3823, 3916, 2986, 3510, 3722, 2815, 3405, 3264, 3670, 3491, 2387, 3471, 3987, 2732, 3549, 3367, 4031, 3752, 3467, 3360, 3879, 3703, 3676, 3551, 4039, 3724, 3983, 3618, 2922, 3705, 3610, 3585, 3606, 3344, 3710, 3908, 3819, 3708, 3413, 3560, 3407, 3291, 3761, 3487, 3827, 3058, 3486, 3642, 3931, 3573, 3269, 3533, 3521, 3709, 3050, 3818, 3837, 3669, 3873, 3621, 3622, 3380, 3382, 2819, 3812, 3593, 3905, 3308, 3801, 3992, 3830, 3690, 2825, 2711, 2870, 2300, 3849, 3178, 3703, 3320, 3928, 3227, 4006, 3158, 3820, 3577, 3849, 3760, 3230, 3342, 3907, 3159, 3819, 3679, 3538, 3449, 3321, 3596, 3754, 3511, 3555, 3879, 3107, 3543, 3627, 3780, 3793, 3964, 2988, 3687, 3338, 3938, 3990, 3371, 4057, 3955, 3825, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3974, 3664, 3990, 3954, 3568, 3915, 3997, 3682, 3950, 3810, 3929, 3732, 4016, 3300, 3149, 3928, 3917, 3714, 3610, 3871, 3914, 4022, 3923, 4079, 4003, 3875, 3757, 3904, 3850, 3790, 3900, 3818, 4084, 3876, 3910, 4052, 3395, 3786, 4057, 3865, 3753, 3082, 3683, 3540, 4083, 3856, 3957, 3216, 3267, 3858, 4054, 4034, 3976, 4067, 3669, 3839, 3763, 3509, 3930, 3348, 3891, 3550, 3554, 3608, 3786, 3738, 4032, 3923, 3361, 3921, 3779, 4029, 3181, 3931, 3709, 3872, 3964, 3360, 3853, 3861, 3807, 4023, 3622, 3997, 4021, 3807, 3881, 3735, 3918, 3869, 4006, 3948, 3427, 3109, 3963, 3656, 3993, 3950, 3878, 3883, 3842, 3901, 3947, 4045, 3844, 4010, 4092, 3731, 4007, 3621, 3920, 3730, 3811, 3464, 3819, 3701, 4088, 3981, 3669, 3597, 3756, 3871, 3431, 3899, 3310, 4042, 4079, 3220, 4007, 3614, 3883, 3194, 3531, 3715, 3962, 4021, 4079, 3702, 3980, 4064, 3850, 3777, 3218, 3590, 3777, 3909, 3986, 3611, 3078, 3547, 3577, 4028, 4096, 4073, 3960, 3933, 3090, 4000, 4053, 3324, 3887, 3886, 3817, 3344, 4077, 3739, 3972, 3906, 3884, 4047, 3851, 4076, 3800, 3763, 3853, 3722, 3752, 4086, 4016, 3978, 3963, 3781, 3839, 3799, 4004, 3938, 3543, 3973, 3952, 4045, 4054, 3750, 3905, 4024, 3940, 4088, 3477, 3879, 3757, 3926, 4012, 3622, 3787, 4072, 2816, 3919, 3746, 3882, 3647, 3624, 3576, 3889, 3502, 3918, 3867, 3651, 4076, 3939, 3559, 3710, 4064, 3791, 3512, 3906, 3990, 3860, 4030, 3787, 4063, 3946, 3605, 3810, 3439, 3610, 3769, 4066, 4040, 3674, 4034, 3358, 3624, 3162, 4088, 3970, 3822, 4089, 3989, 4054, 3871, 4081, 4079, 4054, 3301, 3691, 3970, 4049, 3620, 3852, 3103, 3842, 3908, 3299, 3991, 3803, 3891, 3980, 3853, 3872, 3729, 4018, 4069, 4036, 3714, 4079, 3986, 3816, 3869, 2873, 3969, 3130, 3088, 4002, 3971, 3960, 3777, 3473, 3749, 3460, 3503, 3855, 3680, 4068, 4075, 4005, 3786, 4084, 3548, 3907, 3816, 3558, 4063, 3826, 3947, 4070, 4078, 2669, 3865, 4004, 4081, 3928, 3762, 3480, 4032, 3514, 4050, 3891, 3730, 3120, 3170, 3956, 4076, 3845, 3775, 3378, 3697, 3662, 3871, 3749, 4089, 3923, 3943, 4095, 3833, 3995, 3885, 4047, 3640, 3562, 3904, 3638, 3871, 3896, 4086, 3996, 4071, 4078, 3755, 3430, 3732, 3978, 3685, 3909, 2781, 3874, 3868, 4061, 4080, 4086, 3355, 4009, 3799, 4015, 2876, 3569, 3659, 3813, 3920, 4021, 3634, 4037, 4002, 3599, 3573, 4061, 3898, 3846, 3407, 3584, 3722, 4082, 3583, 3894, 3977, 4034, 3886, 3598, 4070, 4033, 3748, 3857, 3714, 4002, 2449, 3852, 3993, 3370, 4064, 3933, 4058, 3878, 3998, 3438, 3950, 3760, 3738, 3766, 4060, 3830, 4051, 3649, 3993, 3927, 3618, 4065, 4049, 3882, 3795, 4017, 3872, 4026, 3835, 3758, 3463, 3700, 4040, 3947, 4052, 3718, 3997, 3911, 3941, 3933, 3615, 3887, 3807, 3736, 4005, 3903, 4043, 3842, 4035, 3914, 3808, 3925, 3566, 3434, 3952, 3947, 3960, 3755, 4085, 4008, 3905, 3763, 3072, 3078, 3406, 2992, 3976, 3638, 4000, 3443, 4095, 3844, 4061, 3636, 4084, 3665, 3995, 3817, 4079, 4062, 4045, 3587, 4096, 3986, 4026, 4017, 3834, 3816, 3969, 3906, 3815, 4071, 4083, 3934, 3953, 4086, 4096, 3985, 3756, 4008, 3548, 4004, 4000, 3636, 4084, 4051, 3885, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; const float H_4096_8192_3d_input[] = { 11.852162234851706, 7.0103776711404908, 3.6619359861492673, 9.1155659337359651, 6.795951531382654, 8.6693010702449591, -8.23827897319795, 0.53165879290715867, 12.37912440997912, 6.8418050353375426, 10.802319289914337, 11.0638091710385, -7.7866481722334679, -4.8420100015139598, -6.8818670299223434, -8.2450578579286891, -7.2246894597896008, -13.815987133628951, 12.234902365241059, -6.9198331467931302, 15.160223910436569, -4.5765959155807234, 2.1484900276377519, -4.9196084573928518, -16.426663730230732, 5.8977022766980651, -16.030910288790917, -0.24586731175381885, 1.4726914953126813, 3.5871240318927358, 15.458510455388435, -10.98031892270658, 6.9279611100247118, -7.933561985282596, 4.3891940661748912, -13.812675339667404, 6.7914919672067642, -12.203132891070263, -12.317652041719844, -8.3021764626005385, -0.77739811052311958, -12.432640728863277, 14.289974286204039, -5.5150189346697038, 11.547145236606516, -5.1736147941182464, -13.447736295418046, 10.413127356393893, -2.6729465454008059, -10.729411552653465, 6.5555201942237238, -11.14433713195789, 13.458451742879602, 9.6447015865820465, -12.302090740163194, 9.8687463840475296, -10.637342777071272, 7.1778509359003975, 6.8268531761459119, 8.7068281158836012, -15.40339167220862, -9.8296506950508089, -15.280917762828489, 10.102496828664545, 10.037807270690561, 2.4867958468392133, 1.5319150444766332, 2.7112921117745921, 7.9889723896025524, 12.905833618771201, 11.00245683272405, -8.3107418252762226, 10.705033599923738, 11.912486445703268, -8.4081265077051892, -8.3025042540547016, -5.9142638277949331, 6.867038040093588, 3.1567085236762717, -14.534241677148046, -12.01689262177565, -3.8412916991891328, 6.3786080585444953, 9.4837369133142211, -11.075276289896468, -11.925721231361601, -5.4124139821564548, 8.2303728395014968, -13.750199366192035, -4.3314232665367056, -3.732456805346037, -17.295039854808323, -15.232902687351071, -7.5988314451312435, -9.5932544936015738, -7.3591078974534163, 8.6527118214619172, -10.608033142382668, -4.2032772324090244, -6.5085189200544926, 14.134044288331616, 4.4085632854650365, -4.5210532847247746, -8.4975231327737504, 12.277990534144504, 15.150130037398975, -10.227258018348129, 17.948861291429097, 7.4173114502152595, 12.362776847751627, 4.8547293037318235, 6.3837603116600432, 14.087489189989547, -1.9380985184061332, -7.9696678961374925, 4.6059836342656899, 6.8183217574223667, -6.8901903967415219, -14.325821680951959, -1.3621121662714455, -11.149847668005521, 5.6833891974043862, -17.398485016935354, 6.3370092934725513, -9.6926235420538767, -17.960802334972445, 13.547835590566937, -16.451894282762098, -7.5577889478681159, -1.0982925426375461, -5.7669050004987508, 11.375367155954425, -6.4107510452532788, -8.7207638586733562, -9.1539348930425479, -13.633137903872361, -7.0081337564945265, 5.4180605521415544, 2.9680844338645205, -6.5310659644000255, -8.2872761646593993, -11.760139277151676, 13.382166905042041, -6.0047682130962281, 3.2451347130941364, -2.0983582950687798, 8.0680309516812514, -12.377986061470123, -12.358162277163119, -5.2920128479525648, -9.202112202542164, -5.6654376221077563, -5.8110927985741485, -4.984676819547551, 6.3016022666512397, 10.38212336351639, 1.6487659492093847, -11.063498383826518, -9.3364733355871579, -13.426754544804615, 7.9359711669654969, 7.0591108612555526, 11.63486957350829, -9.0269661526237055, -8.6632957575356464, -7.0684291859722208, -6.9541491917610934, -8.5499008046873524, -11.95275094242079, -14.577751370567405, 7.92565420601432, 13.265770899061641, 6.5227249157502625, 12.649384608136366, -8.3035216691676741, -8.4837140909479327, -1.7621082901418452, 11.064948293934235, 9.8955732057806269, -5.2006112065475802, -16.609541870425645, -4.1563385545013416, 0.91112171860938895, -12.709318786199471, 6.9261739544913699, 15.622947349737608, -5.9748260335048391, -6.2084520599854978, 4.5326675370634977, -10.190200128059862, -9.0182739518530965, 7.7990243565929234, 11.016287638043895, 7.1274548793238948, -8.5088898394843291, -6.3753383395958672, 8.4458247674289417, 7.0899296466375441, 11.984742407457288, -8.6997143935860084, 6.617717259407943, -8.6211765783576588, 8.0571281026284201, 8.2215638031313709, -11.853165323809973, -11.220981285243187, -4.3770395500199921, 9.957777885767797, -1.5614058322047073, -9.56164241353585, 7.3792373063941277, 6.9920671675894948, 5.9799488599242361, 1.461883121442231, 11.700348102506707, -5.2194626192370359, -6.0603567908988003, -8.1431285255806856, 10.93990987379744, 9.5381901110903051, -11.466961877786789, -10.507751479156317, 14.428027308035865, -5.4370273484553913, -5.6747013525591967, -9.9762942471273934, 1.9692091719828315, -8.4206281749827721, 6.8899330422146594, -9.8324002842385241, 0.66168400552588214, 8.6516044033634287, 10.65559107155409, 9.7754600143798633, -8.8306105049263834, 6.1770006762428427, 14.456377606617053, 2.4403104433038201, -12.633954694196738, -12.024403140645889, -5.0527916191406135, -6.9352208566553832, 9.4384867856948844, -13.373923816314992, 8.7356124420999599, -9.5270461696321664, 10.480812629474718, -3.4687409495354067, -7.6636427108879923, -10.896129661276621, -16.064091728119134, 22.476534329946553, 12.460754581359602, 12.087618911587649, 0.51377717054611638, 5.5500395425073492, 4.9591318659994164, 5.5053463280191135, 9.0332303928329463, 7.937396425761964, 6.6491955641641933, 14.874164932122154, -11.391128249290208, 3.169135882092851, -1.8400528212873013, -4.0964252848802376, 9.4117328208476536, -12.593571458178959, -5.1728063343608373, -2.0242804594425396, -7.1426529934991043, 6.622101708069974, -16.392117821465206, 9.1077195568830138, -11.835790666635249, -15.065298034974141, -8.7710386430596365, -0.30877893122877215, -5.2306016562458142, -1.1863392825524115, -17.232954172250324, 4.4787746080943949, -4.081066098262939, -14.903892606586338, -0.51135806197439337, -9.974082856724543, 10.97578876027282, 15.2893043712315, -11.13092785115396, -1.9074874511930142, 3.2050565854522359, 13.289562124770748, -9.2824501805811419, -0.86689339429455436, -9.4077211103368672, -1.0128498072031238, -11.424484441892933, 13.505559237096781, -14.111275253120381, -10.426533281521948, 0.36688942851726047, -8.5830248103322884, 3.8345302704261743, 4.9414391940031317, 8.9432236478109655, 0.055208574238455675, -12.115262711332303, -4.068136420980486, -11.843343002389492, 10.583962363060127, 11.130757227942066, -7.3409476249301377, -13.416870788702695, 7.6236503465776373, 10.072515155349375, -6.2216809086788194, 9.8166429337719912, -5.3031299440036861, -6.6235012830395386, -13.764819271600768, 3.8557639548592864, -3.3181185983845203, -11.243059309352699, -12.611089376900733, -15.897667241135203, 8.8329589779154141, -9.135706506752193, -11.422564479033543, -11.642579626028745, 3.1132478747504968, -2.1434978144486383, -15.934518757357043, -10.557115149142858, 6.2308860438668718, -13.739105501743138, -4.3915587851524212, -10.419872652099752, 8.1112198553932267, -8.0273906192655193, 5.2239517391735335, 8.0434155203510045, 7.5842021180171599, 12.631932512287561, 2.4859951309492123, -5.4847073726029469, 2.908656446600995, -16.092641302221626, -4.1982700477429225, -6.178163729520965, -10.732042015347554, 8.2982728113062105, -6.8665949618133846, 13.57740270884686, -1.2643195110945262, 9.8022838676304502, -6.4233691609370105, 3.8242562234068851, -5.182967579044881, 7.0944436760142038, -12.324612229746279, 12.794879744676324, -4.0155602075996786, 12.511504532676657, -9.1320095199193183, 9.2556023858738161, 11.631662838014581, 17.216281625720601, 7.1659577752705221, 16.051548211691429, -8.7388242030409558, -3.4004503641521802, -1.9946663617003413, 12.023458388822098, 1.4700405113699626, -6.9181864133887903, 16.791392657544414, -8.6631176405187311, 4.5674127213503288, 10.664528010800908, 8.2944988052587405, 8.5825626385790077, -5.6427914562593999, 4.2779399881534923, -10.175893849281154, -7.2192065435357264, 3.140283780903613, 10.837060473203007, 6.4038543569395916, -15.819883190567426, 4.3940223675038643, -18.036559041052769, -7.8147548616524434, -2.6076616130875916, -6.4742631481878554, -3.7958217747998599, -7.2948016609161348, 6.6323878871482016, -2.255281573000754, 2.8842198986078764, 10.659970486702305, -15.569498144370991, 11.390070437002256, -2.9482405155022557, -13.376525755764128, 8.682108767499308, -4.9454187674641732, -9.6031277309502645, -10.196124831949369, -9.0217868605044558, -2.5107837667804862, -14.858770639972604, -8.141178103509489, -8.5471398578274389, -3.1869173504354151, 8.8957282181027519, 13.358898132254073, -4.9187666990055874, -10.228703540264316, -12.346941929546555, 11.554539081207805, 11.957225349009214, -11.472723315138442, -11.539223260247994, -9.694197741233495, -10.814894685262868, -13.686233988885167, 5.7377733456960787, -3.3230070437503634, 2.2490730563707366, 6.12847572055448, 2.3536601808115556, -9.6767432576922392, -10.954820690491808, 11.86814480279536, -9.3155290781984252, 14.141162451253175, -1.4111009040109763, 3.3702115944390596, -0.98701110295130623, -10.652104782446946, -5.6828295739196912, -4.0663135145926104, -10.095528767706245, -6.3121380563889229, 1.9120925466183012, 11.360542554317204, 21.042270964456723, -16.659873911031575, 11.603621003485147, -9.6777504121808953, 1.7207302252910317, -11.29409320247472, -11.180036360709401, -1.1247306222267544, 6.1904287248508867, 10.210101738234316, 7.0486975536873739, 16.031938158124891, -8.9308814719358764, -12.431649255706118, 16.692435840967139, 5.2357717202564009, 12.423164816444851, -11.250581960281878, 13.430914550376267, 15.343462914852701, 7.8079002483516744, -3.6709333275618681, -8.8629125797112316, -14.31120951941063, 4.3406926758242452, 10.463301680233609, 8.6489346124984543, 11.191263935935545, -5.0521803698731969, -10.333058606811804, -8.5400809112919642, -7.1779877442246081, -7.6103785194202018, -5.3417155702671248, -10.451403615154376, -12.172717561180237, -4.0679164951460942, 6.1506735164799053, -3.6440853392578565, 1.9433343296831092, -5.4755600582915411, -16.357475888743817, -16.517778074154876, -1.2039643247733316, 4.5018459122634571, -7.0744532694934668, 5.3770800058176924, 6.282466912156818, 8.3610249181869101, 4.8986050239506751, 5.3280071180523274, 6.1464146475343426, -6.0108406957887768, 12.755972489786537, -8.4578495576716968, 9.2571030183130549, -0.90434384520253952, -12.986580731138242, 9.9535150158240739, 10.827528804939245, 11.747515740760758, -15.16087284652537, -13.087386783252583, 10.629311095924464, -5.2148823797940365, -2.6329597953943216, -5.5467525289215098, -8.8404156607741093, -5.7853062363628798, -9.6115554463827682, -18.889969367477391, -4.2325934493849227, -10.285889677913188, 4.5969906810446215, 0.45378395656837561, -5.2343788566385898, 6.4724226890338548, 6.7928342375575088, 7.8077790568267371, -2.6568661465988948, 9.4096509466272025, 11.669118375894259, -9.9553406325655409, -6.3303387260871826, -0.34466246402459871, -13.691429091400373, -13.156577206028633, -6.1513694320309815, -7.901802513607203, 12.221162679427714, 6.649236864790371, 13.317311499241065, -5.7970159963996366, -17.357823517948706, 8.270939734241308, -6.195066527041619, -12.849459296555617, 11.652018884141436, -8.0449214444329744, -4.6951452329584145, 1.7769542408723182, -5.1632932513788541, 8.212354634679043, -14.191579158142765, 6.4303208307092943, -0.90871698965024839, 10.606516635015241, -8.1011311449339072, -10.243987353238843, 7.4591880910627006, -6.5152549231194605, 7.7121540392018115, -4.3569532486078533, 12.00591388282222, 2.4746766943454785, -20.087190886572834, -9.1172366408631582, -6.6238587915848806, 17.914330870398388, -1.6868311119764172, 8.0132561252788168, -4.0467870947940794, 2.3260501959545832, 8.1309552950795503, -2.8213887397473871, -8.8621258027825629, 6.8177161869910501, 7.8641580898949943, -9.1469397285483218, 9.0967720192620156, -9.3166140585545332, 9.4569551350765515, 7.1007118204232631, 8.3756462433046686, 4.6694993510050598, 7.1515263039687182, 2.8523595630594913, -3.4741239698997162, -0.10995521113142948, 3.9540238233698299, -9.1534225071490436, -17.923208439995076, -8.8636707688627148, 14.965752168216021, -10.23555118408442, 2.1282088388958402, 6.7125800223509948, -9.8693908028803428, -12.187767767487951, -5.8471084933737414, 9.6931543841647052, -13.672759143337181, 12.706659800260432, 1.4726006339350921, -7.3467125470221255, 0.60736645449389881, -1.9027817610980031, -8.6768604500952566, 5.1654956072697278, -7.8451284391906944, -4.957748036893582, -13.397215304447361, 7.0040349274753995, 4.641473004210444, 5.487007301223163, -9.6273581630058676, 16.374185605837095, -9.7342921955291786, -11.365160222452676, -14.203028207976782, -10.151383734547659, 13.628501908584022, 12.709075886891771, -6.6936152910684665, -6.2279802866864244, -5.3628359361071647, -2.6913495881673302, 7.1138952384277898, 4.5472848611830976, 10.538614146453622, 3.0027041674993393, -4.5129950162998655, 13.929432209869022, -14.334414792485857, -7.6430080791311292, 7.2113454856008135, -2.5473048779929162, -9.7982912586592725, 14.20003752638376, -11.43779305242056, -11.788928136757081, -9.2702732072107601, -7.4402405253529276, 2.2577745820483472, -4.0065489272257437, 17.327253826968342, 10.564656643482731, 4.9362649999299286, -9.6827658569722317, 8.5740726414795692, 13.972819550183335, 10.142649942755849, -7.5505089381177264, 6.696698382812559, 6.1350463920502829, 7.0980567064179256, -7.1739648051060803, -4.8241454156612136, 11.523185452716827, 5.15143919727939, 8.2887451440406092, 9.3194658667920365, 5.0752787775781885, -3.6974163215820433, 10.009475686455609, -5.0500616477503311, 8.0495440815500334, 6.9634210532733123, 0.74952844797906104, 9.2888896580566058, -8.9836598970543786, -11.976984601087814, 14.180425924043737, 9.5949237487536259, -6.9806176014976495, 15.203989667738226, 5.493621596505367, -7.6955098868525882, 9.5564647992545364, 10.079356604075551, -10.960076969559537, 7.2042424232206992, -14.531624249964095, 6.5286867902033308, -11.463904598934056, 6.3615813591453119, 11.416387712259898, 7.0427168358236125, 13.822852330215177, 7.2746500528888527, -8.3450266043795249, 12.806608348123776, -8.2535126123648936, 5.8510702559397432, -11.72864058021125, -13.525703617514484, -3.4673986791846629, 8.8257475497907567, 8.1617848896097982, -10.511226281526806, -6.5898403692543042, -3.2708944298983913, -8.2863826836910714, 4.3118003065244856, -8.739126028339717, -7.266249505524506, -12.722343971179958, 11.857858107459306, 12.911981733235436, -10.65461960338774, -8.4472396688027516, 6.6651405743509189, 11.580579384141151, -7.476951619445769, 9.2634695098381989, -9.1478306927597437, -7.8825061512029215, 12.660129998551898, 9.4635781422095882, 17.727946307041069, -10.471079620658342, 13.465213687900388, 7.3119927884332858, 11.463991072120113, 6.9772621837497031, 4.4282053470168625, -4.8042111521791862, -13.26622055962914, 13.184702932454989, 5.8920985561126233, 4.9607673707960149, -6.2145046667516981, 4.9892348599039815, 13.386955196389408, 11.050110269593503, -12.670345450307799, 6.8919385748089095, -6.995509703845781, -2.1490703014355343, 4.3577224727703934, -2.687681135653762, 9.6117562706775512, 11.440484820731625, 8.8717842123429058, 10.901792493383279, 9.9966531326723, -2.166562149137035, 10.759372446591094, -11.145782653874074, -13.643983964564196, -7.4947536090369651, 6.8729516444398113, 6.1255906136871214, 10.286427618569139, -3.8954533403572982, -15.009404348795689, 10.416272528141709, 10.773417627973688, 13.473131534196293, -12.269492414050813, -3.5818855637200442, -2.9078381779448681, -9.3090084191796318, -10.106912381860665, 9.8707437855810021, -13.277992270605163, 8.2476749947176113, -8.8274321958792843, -12.638876954450266, -11.37387078264226, 6.310839667953493, 12.505381714845957, 5.9770606555099137, 12.571542220434118, 9.9007684373602896, 10.053443429632159, 1.5818774444782795, -11.202245256178113, -6.3338053973968904, 10.273087000056226, 6.3747900737833705, 7.5548325974206021, -7.5617215418668815, -14.246992208284086, 3.6218243017485983, -8.5325540980340548, -2.3238622952828707, 14.565041102861516, 6.4324516848911006, -11.086714498316114, -7.5045302416397384, 5.2026398416795994, -6.853203104711123, 2.1843689141131324, 4.5710236867227421, -8.1096546261933575, 6.8516131596677754, 15.749131604121894, 4.8170171857120234, 12.738222513171431, 10.237566783706301, 8.4519598141169237, -12.480409549357107, 8.8391211926715538, 8.2890453802332456, -2.4407905630831244, 3.5387036940209624, -3.6252104368372637, -10.758160531341717, 15.757385534263314, 15.300017753661741, -6.4977207422761278, 14.316071119369459, -7.6509169554472871, -14.240089324876473, 17.946531936112731, 0.21891599627778507, -14.327642522308526, -10.198438570466465, -6.5254022288421698, -8.9170677031243279, -19.733600738139021, 9.8575790819227116, -13.439453971096134, -8.08549743821699, -7.0580010359915093, 8.309267780115082, 11.234207036389543, 6.0726783164608014, 15.587458237921769, -7.0535490866185722, -4.5092092976529417, -6.3389155754995201, 8.8389289188970324, -13.748748681697574, -10.541386063792364, 3.1701281296367463, -14.503520722624311, 11.450835790167169, -4.1646167487606398, -8.4877909951424595, 13.349350976255494, 6.805877878755318, -6.0136669492638335, -9.3639356707055494, 7.7593202577468361, 0.50113711390472682, -11.966738431991194, 12.724874408920027, 3.5582910322431047, 2.6950418641475302, 13.624278919557449, -14.882267598720199, -10.522071180638532, 10.177398998976383, -14.988145883986871, 12.749221128051207, 16.9417703024852, 10.798411089097906, -7.5603646872325196, -13.887620488443355, 6.795459150479954, 8.9187603996083489, -2.0975322825452452, -1.9757625488414245, 7.3999518935819824, 0.55507580729811956, -12.499441910415001, -17.623680811226599, 4.6027405025951635, -12.851870220608683, -7.3653468732952403, 11.972212571862007, 5.0650581632440161, 10.184194371691481, -7.4685323577351861, -13.91941422673203, -3.023728251254604, -7.5331742909246113, 6.884248527279258, 0.45905900344021811, 7.9221026748242638, -13.738522130398389, -7.192484909334925, -8.6492261161697765, 13.362572855468146, 11.756208490055306, -5.1379560916061688, 0.79142269505050344, -0.76803621547792877, 7.7549707855525991, -8.580692212271444, 12.55718276709921, 13.824515712934444, 4.6771582940006207, 7.5690824104994574, 8.9468688797966607, 15.149701027144566, -7.5543759673724367, -15.762504230620095, 6.0226666138366562, -14.441395804471442, 10.042802710491094, -10.413666974887784, 9.9977859314096555, 6.661089886374179, -15.232744712455945, -0.29385443370198283, -7.6550938684627798, 10.155100661839109, 12.382405486599948, -4.0908481515728976, 8.2741386936014951, -13.144677979369291, 14.828710495467698, 11.928398028195682, 8.6295134545955268, 8.27163552072793, -6.1797837465827472, -6.8523963227916527, 10.235531050029158, 6.3420892704922895, -18.986839986174921, -10.031153094491204, 9.8664552318103755, 9.0490519851328521, 5.8122608319082092, -9.9313476791104556, 8.9233711466623227, -11.063483670478442, -10.506601643910665, -7.8199885544402337, 10.624711496812944, 11.535453029335885, -11.086350278419017, 10.274989797342863, 14.174471922522534, 14.369396939115374, -8.8582757132378074, -7.8522922263977346, 9.1770638890238008, 4.404279119885941, -13.44742860575303, 7.1166789006321016, -5.4330041512079497, -15.427562347420725, -3.6868407799916638, 5.1866180381410762, 7.6709901568170613, 18.345854267912042, -4.9003530729536049, 10.468660952737869, 4.776982165598695, -5.6287843488915614, -9.3412091622328344, -13.912648151648625, -9.5237512831144624, 13.450520990138015, 13.396914326134098, -3.1904784969275046, 15.798741916285385, -10.810269144195532, 1.509656071998684, -13.878323717490971, -0.20820114068063908, -11.747048527427133, 7.3833991188681747, -0.87088303478322637, 7.9643245630936503, -4.4926178036020943, -1.254207052775153, 11.483542272294349, -13.148499319806293, -6.136615041458259, -13.927479206508691, 5.0953914081395162, 3.6709312625305595, 7.957426713199852, -3.3451767036242064, -10.759041525323852, -11.394330854721302, 10.015078374525395, 3.3832848670040567, -9.5028638140867212, -10.033492516835205, 7.3632139540821244, 12.599386844473557, 9.5584005725098873, 2.798264002893208, 16.990209741896582, 18.391755783844861, 1.4510639061574093, 9.2270278377989303, -5.0621183330469739, 10.261183127076439, 5.2327787155031551, 3.9453000986056503, -15.583642576320866, 8.6770041976506533, -17.128999463647837, -11.871728406502932, -10.394587892496528, 8.6180369341985319, 6.516417535746335, 5.2913995336538404, 4.8920041513719799, 3.8949061070604571, 13.054505805979804, -5.8996637983125462, 8.4678526015978157, 10.839440938044268, -6.5759334159049434, 11.749783919524603, -8.3008136710011637, -7.5878550938702638, 11.049012705452856, 4.3126061849927586, 5.3560587614804769, 10.023853466943383, 11.37326701911334, 8.8843983915607065, 1.540899479443554, -7.5465559519347849, 18.054805657697649, -2.0115237285322016, -12.814863310780851, 10.300533589310888, -6.3500042773701466, 14.22332127064872, 13.779487188987437, -3.7179509929171135, -5.520450741398685, 0.51276478894695843, 8.6235352232391911, -7.7774452311411801, 6.2272696577872706, -12.717758311029774, 6.713094215146894, -13.891940533941439, -8.4385045057010863, 3.6768186667920526, -4.942185960950189, 8.5164419735753558, 6.7067488901926673, 5.8779092097317802, 9.9041099161469006, 8.0396297371718521, -12.470612524570162, 4.2414224907458538, 14.417893166887747, -10.589000910389235, 2.3567319148834502, -4.6520348649684005, -6.8229956976610051, 4.7579072132700571, 6.6876842630205742, -9.5112615220330188, 9.3965638107074518, -12.652626449162325, -3.6137257652131685, 15.100829996189638, 8.0278764178809237, 12.47343748740065, 4.6779711419495627, 17.406972295614676, -12.638777832947442, -10.07196559889231, -16.201071966186017, 15.766943531676265, -2.5337629189273931, 11.037478731206264, 8.3935660687449261, -3.4843112856040341, 5.7667317959977229, -5.3151466193187202, 11.549579134132895, 9.5716752390853728, -12.665556642702606, -1.7511867802006553, 10.985055588271223, -10.741148932483979, 1.4019719168524369, -5.2045187620417268, 11.520370040656143, 3.4924841632665826, 8.6752981268622982, 11.018478120004746, 8.1489597222712415, 11.29111284603824, -9.6803162781143506, -0.69125945953762036, 4.8185876420223934, -5.1333637201042297, 6.5442549321761927, 3.2039724440150965, -6.2844002977197171, -13.943989648080665, -3.6481612704102528, 5.0868961274638762, 7.3942765422230146, 7.3315403748027332, -9.4483165283216302, -7.3124139257558314, -8.6128026626373195, 10.91457529531389, 1.733227719165531, 7.0515524594718402, 13.652369540451556, 10.898954365978197, 9.2234193891834249, -9.2875331260833853, -10.685830486589493, -9.0127297945144704, 11.035103945201103, -7.8322667143447484, 7.4267534186815451, -14.484459451128094, -12.892365226446056, 12.400895260681445, -1.3610327467613308, 9.3710008526675921, -7.9889220544643997, -14.066078429121703, -11.572131599185612, 9.4125317298352584, 3.9802853427821323, 13.552578451225509, 11.769160366424329, 3.7460148440107841, -8.3276216170574511, 10.275676549317508, -3.4534581690765345, -8.8116083610844402, 9.6112860243291927, 12.035762619746887, -10.750923241926531, -11.412270039830078, 12.675791970384855, 2.7681940494895843, -6.0352888595830061, 14.728012341239245, 11.069071903329069, -2.0294905334347346, 1.7881059261978625, -13.11079855945869, 2.0016203546328484, -11.03896297245949, 9.6728784225332927, -5.356139039572609, 14.758199485169646, -19.306747408930303, -9.747547631500602, -2.9278803393127815, 10.631512677428598, -11.505058349758947, 5.6196809164954686, -13.515125494634967, 6.3402475206937208, 8.7001279685380375, 6.7967971617036218, -0.61466117759236438, -9.6918272788876365, -5.7814172661505134, 9.7193625354241195, -16.906686969321548, -7.5235604086018659, -10.199947204902026, -9.7936604259492075, 10.01674666169402, -13.651634389305608, 11.544416297731889, -7.802468828816064, -0.47286071579940786, -10.284350842394733, 1.6609289836184331, -17.147457229744042, 13.226952440518131, -4.6840531754119121, 15.962355895657987, 15.585997744528594, 5.6171915212526669, 8.1922569110624757, -8.3396720427279387, 4.3655115127384114, 19.088815362267884, 11.244495022370169, 5.4582347037393157, -5.2064921575862328, 5.4611195524777605, 13.265834398774388, -6.6027106768866277, -8.3567593701557072, -5.2100995091538564, -8.872279835990085, 8.8511624708986645, -2.8415032528176893, -8.90721966561083, 8.6092509418838414, -12.794506748396167, 4.9154587769777436, -4.8718835188143297, 15.736412560032944, -8.1284028841157152, -9.0115555660864839, -11.572722456268854, -11.54267186253375, 6.3231823600864097, 13.698252471102595, 7.4397798943065991, -7.3874140559903809, 11.957330149348136, 16.578828659769322, -13.447758494504617, -8.3867453187310108, 12.858858544686701, -13.679184488254624, -17.989097393966127, 6.9729467845720619, 7.1557629738277102, -3.0150050427482507, -3.4241894478207389, 8.9891730143911452, 5.58684640242714, -2.4252419098432401, -2.3220109947144993, -10.153271947550676, -6.4440956220548893, 6.4637660777872128, -11.98185730058993, 4.679160341854538, 11.939393545528494, 5.673039776742324, -9.2794663394043297, 14.620894004671618, -15.198717126548939, -4.0577596386535824, 11.246729386246329, 9.248388521657537, -18.067138024674023, 12.088146785215971, 8.2659830137778165, -7.5472358634932197, -15.294952231861169, 5.6915318739840428, 7.7225018465581643, -13.5239318206515, -7.189678144592845, -7.1572966467678922, -5.1603147018447704, 4.5948288513931832, -6.6943032046232229, -3.4953462966606299, -12.323004086614523, 4.079938074910487, 9.0295814179780045, -17.116687230726722, 9.2253574210667679, 3.3356620718687418, -3.4843562000350015, 7.0034196772098234, 9.1169590232165749, -7.6022819833838513, -8.634002290186892, 15.757020023721649, 14.56916548664309, 9.8166793299488067, -14.012585858097601, -16.303460348540753, 6.328706318837547, 10.356673659537377, 12.957932809919667, -4.453315353345574, 13.89076036854844, 3.3562344300251992, 10.837065377652365, 11.946045527632085, -1.9666919744239404, 14.882311996893341, 0.87293515964638224, -7.3995595376333032, 12.740578972023727, -12.286008018201061, 1.4725257765501467, 11.51005572552633, 2.9456158607087239, 3.1894702453909649, 5.6935460538968989, -5.1304463471226711, -4.3501309014212834, -1.3570596265231303, 12.169493014791488, -4.8125938886484949, -11.812988590923077, 8.5953572216745684, 11.547929174117135, -3.8475647480475508, -6.0916817670803702, 4.3949441458543461, 10.708986715171134, -4.9176921083382519, 6.9845454201115134, 13.211641265878763, -8.0470742395724351, -3.0286311518396092, -8.1094174702539839, 6.0130079461473995, 15.048154145048182, -6.1061849982201561, -1.3184724514862096, 13.374931551593706, 8.2757038905352509, -11.896200834415041, 0.54178209264090349, -12.548924448766257, -8.9496731923140622, -0.18895807082266591, 15.161251263512716, -1.2114640022291989, -5.9797180926754736, -7.4864095919046978, -10.395424746434434, -6.2601439237082941, -0.78388481451542258, -8.3179201645007659, 6.6459706305820747, -12.923380447931299, 3.615294672750057, 11.552240701361072, -6.8065229429104148, 11.514049754206534, -6.951551124245662, 7.3756260828927998, -13.184709643806741, 10.708471747988494, -9.1265574178045057, 12.95334276157795, -5.9328741480790832, 8.5189835350582932, -9.6064834713593523, 14.569174263026152, 3.6101279644153479, -14.407362539728334, -9.6916542679832922, 9.1021824980895101, -7.7838634129812734, 4.6265281144994796, -12.811796997416144, 2.4737443327095394, -15.765944056522786, 13.810646962664299, -6.6826075126122557, -15.214618900142634, 12.384568606895954, -5.113057234728787, 5.4752854091274656, -6.4734766293881032, 5.3882128477325431, -6.2935902033018669, 15.281124782217196, 10.227168963872938, 2.4002256043101666, -15.970147775044056, 3.1440767271601184, 6.7732778748049984, -18.043555367127105, 6.2587742916927098, 5.073341261952673, 6.8434249233348678, -10.146405202190969, -7.761279649797781, 17.122835345190957, -16.71550688700729, -6.6392405644821197, -8.2855465718737928, -6.1015327408102618, 10.509447644247613, -6.196253145657459, 6.5915995178005184, 6.6493068177259573, -13.418767003702035, -11.838590849090032, -8.8536466551640238, 6.7441440259065617, -11.233560165332051, 6.2511143161814928, -12.561411951219709, 5.6917742570339165, 6.0195651949396973, 3.1302245727470228, 12.399852677999395, -6.1013696033368623, -4.560197760086167, -7.2970469952711241, 6.9434258713676744, 14.905481648178487, -7.803760764028655, -8.4000082243078698, 11.207158223790749, -14.044730651708779, -7.8313315132907579, -12.235152234029428, 11.136317582870022, 8.5021201344630768, 8.8357802624088837, 2.6404269486070744, -9.5531813349412591, 4.1309417669496149, 5.3565672754402778, -6.4993313376325643, 7.8618252498382928, 3.4036857519553001, 21.117270836562358, -1.0777031479727912, 13.213765666837727, 11.226925735994588, -7.434238253724879, -12.379361114192896, 8.1857356067213995, -17.721328914211902, 2.5994412397049405, 4.580182358706347, -6.1851110111017178, 9.5483993032200498, -3.388048302369135, -1.2434012601938385, -11.388179126452277, -5.2704296569704319, 13.836266257339551, 12.426177180866615, -3.712653671352121, -15.37192782267153, 11.115913266636323, -0.53084052425103223, -8.5531836317448757, -2.3960965742081477, -16.824415089461844, 8.528633555428943, 7.4291777654381193, 10.845205472942885, 4.7533091629320188, 8.706535518693503, 3.6415567084201865, -7.5311585622382724, 8.1385104057196145, -5.1846823294179556, -9.0411000335542351, -1.049797347380828, -2.8991299409155036, 7.6642968095550668, -7.8754005720659004, 11.234209101420854, -16.535698415852959, -7.0761628572882707, 9.5129669797652046, -9.0915131266390379, -11.338577074414022, 8.6917393354363597, -10.441358915674826, -16.799225321298831, 11.462376475765517, -11.381858065615928, -6.006466185089919, 1.4218953389200917, -6.3336533594667781, 8.4319232831859381, -9.717098034997294, 8.0892362419338664, -4.4241276845686519, 10.777993092031785, -7.9653063564165452, 7.0811172545915397, -19.055379407830856, 0.82018651615128857, 15.902418361919008, -6.6523234412747971, -3.5190833152978787, -5.5983997363422535, 5.961651908141202, -5.283895209877528, -9.485610542033621, 7.1197178523319673, -5.1431746838525134, 15.731219522549045, 12.204109650879342, 10.045284749059858, -12.453771419859859, 6.7070119235556298, -3.2495420061650209, -9.933597401656975, 12.613995392210095, 3.8923057163848043, -6.7265810636893635, 10.202198476222028, 14.937110700220286, 9.9291200265860464, 1.2182368642709354, -13.482511938916684, 9.7397502023428917, 12.060260344292528, -7.7164747300221821, 11.088723515650697, 13.59882585990256, 8.5875615550533464, -2.6728882082663308, 6.9742749868970142, 16.050061905406896, -17.287365682206858, 11.610268597397205, -0.478999021364924, -13.448866900059636, 10.268606140244966, 6.8488744118944309, -10.805803643054629, 13.09149051672107, 10.457994420705443, 11.115406559578915, 15.265860587040104, 10.387581370330105, 10.68015423177933, -6.9281895541132519, 12.382285456655122, -6.9998267808613601, 4.8278805410410719, 7.6728193873633206, 5.1894373221354657, 0.6047929092252613, 0.026281099406445813, -8.9353793037232094, 1.8370791762025767, 5.6045212635283859, -13.530818183808643, -5.2241143603891045, 5.6467000442691999, -8.3601900324819685, 15.580110340267103, 12.448550246324379, 9.244179471592302, -10.692642766748435, 11.265438569904388, 14.640272258473741, 12.278384955124491, 7.2107914118877598, -8.0054847671413807, -11.462142352840875, -6.0742575491542334, 17.641209829491661, 5.9871163254682926, 5.7469080116907181, -8.9032409472018124, 4.2429733292587901, -2.7389315233277163, -9.6446438947698532, 2.7967348472090148, -3.4148591201095875, 18.664051844743707, 3.4074255236556037, -12.249090420977334, -0.25565600080895073, 7.7782868604639885, 10.759195499220814, -13.06615516385078, -7.9312405028980937, -7.6092160358577825, 13.381488025999262, 9.2184027828119763, -13.065067924866678, -13.99595254716275, -10.354516863399754, 2.1159358415695975, 11.204524792614153, -0.17369963008825268, -6.9519798763711611, -12.165651540299224, -9.5886410200609475, 5.7958048555370052, -10.156424734101444, -8.2040790862411086, -0.77913730753640742, 9.4152589263397193, 13.79774413078886, 12.626464051252848, 9.7362475220497338, -0.31859196000836415, 12.303528001954142, 15.416856708857889, -11.722490916973536, 7.731294427210047, 3.5445750942898115, -8.79441010275605, -12.935601819474821, 8.6274816331847308, 11.670238397250388, 9.1781032773605471, -6.4700073767892583, -10.292119361114118, -10.587037840001271, -4.0477617895718492, -12.416666162915941, 6.0095694108892737, 7.872931310878359, 4.6504742175567486, 1.1795014476310262, 6.3971417145413039, -12.975806430284388, 17.687825846257336, 5.9023746681632208, -5.7648647495656196, 8.6501535760031896, -15.441651023525264, -12.967673304474536, 5.8390491924331789, -7.6707823630416101, 10.715516344169677, -1.3799039597705547, -16.268084813446897, -4.9478113643643731, -19.232343298357264, -7.0326206396257973, 6.4588825368707283, -4.3623514985780654, -7.2557172005271546, 3.1729293446071836, -9.2872454414091745, -6.7520172159004144, 9.360773462449437, 15.075065116807112, -5.8199102241339684, 12.16458546788604, 12.616259699040233, -2.359417488100592, 13.342880200649253, -17.433480070010553, -7.8139368511252307, -7.8860820755753132, 1.6757646091923626, -7.6150460064359988, -8.9520426221442673, 5.9388268589557187, 17.918089227380467, -8.385877295726786, -5.4547881664848665, -4.1678660755250947, -9.5640330099369688, 17.718522536663194, -11.00107119671582, 8.8235092010494931, -4.1431750124231623, 4.4570344747327901, 4.3192488744554591, -4.323283429375099, 6.6443095710230304, 4.2436320742463085, -10.123373133616772, -13.497355900222427, 11.635677517007872, -13.708283876943096, -11.789269125051952, -8.6790457755277313, -14.923708130768105, -10.779508566883559, 3.0111052311215132, 4.3318021997818779, 3.3921649422833013, -9.9200023970997044, -9.2241497004122408, 13.076316150405908, 12.198883314765592, -2.8893535664416445, -10.835252022034291, -4.1756971905060292, 9.3241907874911121, 11.74591818091446, -0.41468148061332066, 11.005099298412622, 12.90285739239734, -11.513483161241171, 5.8023997911506875, -19.842759325639776, -11.14220163145564, 2.6147400997630355, -8.1755408052785867, 5.8028711345469306, 11.338635411548497, 10.155470431507846, 5.866099295676543, -8.7506491853715254, -2.3529860236958013, 8.7192808354659412, 8.7800330321227875, 15.901590800621991, 9.8420059064360341, 6.2859911462142612, -15.94382946727076, 12.224223055827411, -11.151539703034198, 19.102240130806635, -13.231970466598606, -8.3674455522516791, -11.23620392166519, -3.8671242083470245, 9.4115981420869783, 8.9023690199977725, 11.763159643569763, -1.2487125207201661, 4.5613554682636828, 2.1083148435243353, 13.379705903979737, 4.6079544485210615, -10.991203960864372, 2.6393443559434173, 2.1598167243667206, -1.4650142251642544, 12.16038132227016, -10.087904284920654, -8.4087615854979418, -3.6752931249126499, -15.188245869039655, 1.3386374066104185, -9.4320191721678377, -0.9244876337558332, -8.9145540437636477, -15.598791129744665, 11.102711779607843, 6.0092996661745568, -4.1172604182707451, -17.822854113479544, -10.394956887778527, -0.24904841687850143, 3.5795278142231797, -13.409786698797731, 2.0004975694652498, -11.751978789676981, -10.796422076754126, -10.315435500557737, 3.8025558418979766, 5.6839981235115795, -8.9060443724010732, -4.5042034036314087, 7.3611600223165743, -9.775589724158948, 13.094252496096637, -1.2946847639753136, 10.124910678490659, 0.47009194946550542, 6.5102851671458319, 5.1911915662323223, -5.5275500609095527, -9.9009560970804795, 7.9394075081278572, -4.9412639244707943, 0.33209829728380935, -13.572261813403511, 1.278524345210186, -10.939477249738239, 10.343649119879172, -9.9166521419300313, 8.5963073901722815, -7.9136794766477481, -13.537752042685888, 5.7141114425726887, 2.7462370878405524, 9.6308203815918159, -10.242490205539937, -8.8448491700627834, -8.908163675313995, -3.1540167553652028, -8.3650677009656675, -7.8645559956153166, -3.3956135445690578, -15.092273022703647, 8.7386594845279628, -7.64168736254467, 8.3282894933552889, 7.1206055576658542, -11.636985714342019, 5.7482913245387248, 0.38557744560440499, -15.520924994182364, -3.4663093751692506, -10.220555313913019, -7.8767472306081743, 9.8049255589322808, -11.743691560905706, 10.90060458412287, 5.7027256343225048, 3.5634763258595932, -9.4332617402256993, -12.907158852613646, 7.3437710389871445, 6.4224264741445269, -11.780029658718391, -10.255599411481802, 9.824815940498997, 13.471325664316714, -7.897911026637928, 4.5225408816538781, -1.3648220792130474, -12.468016263957127, 2.7253296783542367, -14.144697784853903, -7.3029368517572957, -12.793492818023527, 3.8381063883952522, 15.317961843219877, -6.0052031603156522, -12.514763926468744, 15.877540929741453, 0.61088113778153852, -6.1592064839769307, 15.436051691131352, 15.196421844249166, -7.9524221743551156, 4.6960112554635582, 9.6643095751172776, -8.8061133127716236, -4.1569116006895435, -12.043869416407549, -9.8489712570407413, -4.416164149455037, -2.3751241162356029, -7.1076676202581659, 14.549835244818897, -7.0364463682543299, -9.57459467709824, -15.916210706030727, -10.343033482420225, 0.17583841065979969, 11.309889143213837, -9.1767631688394538, 5.4457002218235919, 7.6520636286137469, 17.875717882470106, 5.4607018998955494, 9.9730091695084049, -9.4063865838535321, 16.414865690105522, -5.4655831176518106, 3.4481799490511476, -13.857108102081813, 12.278404314793011, -10.997015991483092, -13.665206291325111, -3.8917982349406577, -12.944258946979291, 6.934355479472524, 3.5520742554878519, 5.8448212130702899, -7.9846728653530983, -10.442030179914655, 1.8116267084120916, 10.533180661886703, 5.9912045712019637, 10.181989692640384, 2.5294371945932075, 7.1601923369207086, 5.2245056838221275, -7.2085049059710506, 11.650748889886504, 2.2403555267004824, 4.1713007388495162, -9.810284186114254, -7.7862447167415034, 7.803360341551425, 10.681846395872466, -0.73514697807991591, -7.0616978292276977, -11.541252153508923, -12.651346646008676, -8.7083287483228418, 9.9926465847397861, 8.5725129943174547, 2.4734681347719825, -8.2705868397502957, 6.3175344994567419, -11.238482167456663, -12.423679267369664, 15.458102611704938, -4.2203576982288187, -4.8349099076163515, -15.253882372933196, 12.620734621886482, 5.554707029523148, 10.681606852240641, 12.740994817703543, -16.701739323271273, -10.357840015033499, -9.6347705928889376, -1.0197036461171523, -10.361500412092868, 14.588820454640596, -12.273911322922809, -7.1534525909864923, 2.4887106471203326, -6.9783794947522413, -16.914643018696669, -3.308021111542137, -9.7928817800813182, -2.7773545283755832, 10.664048278214972, 16.124421617806792, 13.332949981342887, -6.1883417525843925, -9.5671220386460742, -6.4034398019043417, 17.507113923905393, -15.799219971033381, -5.1244376222717847, 6.5499056322239113, -6.9274593074166644, -10.02522942311735, -6.4648383452943259, -8.0559734919978663, 5.8508591064884161, -13.663385449968544, -10.741130476266658, -15.586002390849039, 5.3228122736660346, -13.900742729895358, -8.1443955190869985, 6.0778168887439277, 8.4487327832373822, 16.179411336529803, -8.5478447352917346, -8.6117715505588688, 7.5233629399829578, 10.47395956494743, 4.1637262040087037, -12.577349862861306, 8.6631908916561802, -10.009156639118391, -7.790039469900405, -10.273618616553795, -11.626063505620669, 9.8843563429043968, -2.1648389561163901, 12.627488564910944, -11.92641792129942, 12.875207397558762, -5.689943606778634, -0.42627508263895625, -14.125378900701909, -11.787997582023536, -17.510830980261296, 11.900212157732458, 7.6031367772812537, 4.712889272608507, 2.8558923153710833, 8.3365282584230354, -3.6907189087896586, -7.9408079865486192, 9.4773464158001151, -6.669274508902296, 11.235370423403161, 5.7727456834268809, 8.0009050439562088, -8.8319573086661727, -5.5861440336532215, -2.2551132729490839, -14.882826705947069, -11.151230464595699, -10.507341312312601, 12.005985900789115, 6.5277714650756886, -8.7310816504769733, 3.349640268798256, 8.3943736573172512, 9.936895256657186, 6.4818064494301222, -16.067249160990343, 10.531768825793742, 3.9041863577623683, 9.9541300079607389, 11.579961939779807, -10.041774066770378, 8.9147724692237276, 8.0612344173860428, -2.5401314754838444, 6.3324737103316053, 9.4628096279015566, 7.3928636736144, -9.0404812662822138, 11.702316851730769, 3.0707190712028352, -15.634797015645539, 10.26301390639618, 6.0417147207582786, -5.3375369794136942, -10.042082014564309, -6.1393506916846396, 7.7589640398460613, -6.2464269532393484, 11.710227470417095, 4.0029908782806185, 14.536059420957649, -4.8965149541372188, -13.224962782852066, -2.5274991627098635, 13.874630408995118, 9.9091180042641973, -8.9402253514149912, -10.875826531577054, -2.6027034729150746, -4.4684662299295956, 12.129794078523673, 6.795964566892791, 7.8728803304179218, 7.7045296854806731, -5.9256395690174877, 17.418777047091638, 9.1174986094443522, 1.3699530901510981, -12.220020717113929, -11.712679953225253, 8.4029580408672562, -7.4075634699218975, 7.8720925855058281, -8.5979155978362662, -1.1945499226429255, -7.5751933544001329, -11.567418165223193, -8.4383645030315702, -5.5893567061119453, -3.8870110517155276, 7.3717991926841568, 9.867976643627161, 8.6802691916301828, 13.728961551696305, 11.192620661505453, 4.9023016881224066, 8.1579717447658044, -13.242924941434154, 9.5936591106736486, -3.8117214833622475, -6.3035862454812035, -7.7160226172300028, 9.9959514092206661, 11.756493464375927, 14.37762402384978, -4.115115883256518, -9.1792609532719478, -7.3145744647627016, -9.4766698599175569, 9.7751794282507731, 9.0272691314360465, -7.543155490691416, 0.27054546841006966, 13.742714660213156, -9.2554118867355744, 6.3732407840439169, 13.866382673947626, 8.8549907485502199, -4.0914428805898435, -5.4393097243094823, -5.1615932143538545, -13.820538462633627, -5.7587228301953131, -8.409032023934115, -7.866125354877803, -6.0574316740498331, 14.616371069847439, 4.4305070825394761, -12.655433084839949, 9.7152429270274467, 13.678358991988919, -16.681205684451857, -13.135523695577218, -0.43019347954747339, -7.213408710007255, 8.9722417258916511, -2.7579680144482261, 3.1605789086068588, -8.5917577712716593, 7.6483022386169299, 7.3620421778788163, -2.5144078967274948, -14.80097919002133, -10.378958057713316, -12.423609314434076, 6.3492577685520022, -13.755207583373789, -7.4628641049213433, -10.946311470854832, 8.3964857971528222, -14.353265947046399, -5.2195947812408026, -11.689219390654475, 5.1108881774677668, 11.122793692828452, -14.275545912449198, 12.238691955821688, -12.945127292644656, -7.7272732949939158, 11.776891843644615, -11.829453859935171, 18.818781543167866, -2.9742346133600628, -5.5609940173429013, -10.938020112020942, -6.4631228205345099, -5.5059276343325507, 5.9646255532259262, -1.0779705695272852, 3.8778210705267977, 4.5845326052873236, 11.5691050376736, 12.097228792912233, 5.9105157959693946, -11.166774213386226, -16.587325747347354, 12.440943703498279, -13.357466549299222, 15.891950718214515, 9.1781340592334928, -10.64096690701828, -5.2674529143387439, -5.2809357618830521, 7.3520830481341255, 13.586304026303599, -8.4832759332501464, 6.3739261163095362, 12.266590270675158, 3.828722886127899, 4.908685474284761, 3.6917937575859083, 15.641599228776847, 11.042885241301711, -4.1222572777803022, 10.108222902355037, -14.555747429456098, -7.5753220961957926, -10.506770331155707, -5.6575466212188648, -15.537936205846732, 5.0638903880388684, -13.193604766169555, 9.8591912260526282, 12.19045308257618, -10.27937514945609, -8.6859184760021417, 10.999805848781332, -12.503268671559189, -7.7523916905123187, 2.7511802565360792, 2.91428262440192, 4.9538110547032836, -6.0509214047198121, -5.8277258513800874, 10.806625396451087, 9.0978591937138908, -5.9198559325792637, 7.6981625486332463, -13.011979583721279, 8.5757048389994619, -9.7029712203457716, -7.9451177714223888, 6.7854513634350466, -8.807201439073868, -4.3828802329481231, 10.410648673501008, -8.1902920660382321, 11.842120761983574, -4.1527980583223405, -9.7988786310021805, -11.285180269216866, -13.018148864756428, 4.1186403754428751, 10.43001479524419, -7.0461109729085987, 8.5786032717719856, 15.504024777950846, 11.250457025887693, 6.4135256729456147, -5.7082075180607248, -9.5999004096756941, 9.6691960845162672, 9.8918269808574824, 8.9989618758512009, 4.9721805407110411, -15.483517468280615, 4.5089607195091403, 14.971146029994701, 7.4151288411862772, 10.333025179117493, 6.1087557040707443, 11.939158390088201, 9.4227302096150911, 3.0989377240380871, 14.393938803705243, 8.5357504357724636, 15.79171513099924, 6.1553084792525885, -2.0683513251200756, -2.0367062690856366, -1.8370657534990695, -5.6341637554510804, -10.718165392145542, -1.9577132182931185, 14.110414135064598, -10.923438151562504, 13.350105745198872, 4.7383841491474028, 2.6284704173289102, 8.3545884091939513, -17.705997089259448, -6.6618052906582346, -3.7094389338620899, 13.043407295210464, -12.090881144797782, -0.87424284072270309, -11.677251243575197, -9.4751367032352025, 7.979339147611288, 12.192501593634544, 2.4193720583478719, 11.727349419385401, -13.753140487033642, -9.8845978225030731, -14.58469090828075, 0.67132150664422219, 5.1992795194822943, 11.98911382060918, 5.197917631334116, -3.3682229692886492, -9.5973226052799809, -7.4042120531721123, 11.711164736502393, 15.329921988302832, 10.544637842781498, 12.707232330190807, -12.260791662759944, -6.002085995554963, -3.3564688110787517, -12.48230008552035, 12.742419947435556, 16.280707317322165, 1.797760980082328, 6.451075169749843, 9.2789684087299875, 7.8328635729252296, 11.319166296368785, 6.6366058426609582, -5.6821956093078789, 9.7505100479775848, 13.643278756372229, -5.8821087090272135, -10.840590644225463, -3.2877032684944933, -9.7530049929920288, -3.9588761306877696, -0.046283068270417858, 6.4114242454599584, -6.273247838007431, -7.0068926726779148, 4.5642607847928813, 5.5679681443306697, 11.011803422556758, -16.417859985503334, 7.3707964909192585, 3.4603305932723418, 7.3165044946497222, -9.7386092725447586, -11.054841772579875, -14.157989358873229, 3.3531121026862376, -9.0818111900906366, 7.9496874275799314, -9.7922025138451669, 10.892570063558015, 3.1925967027925428, 9.9288316965895511, -10.295865327908349, -10.749616464301408, 6.6541457023403892, 8.8843698521826973, -4.8260039438391669, 7.0098869680757296, -16.186198061926294, -6.3409635703000591, -11.862142531167313, 9.6735958918486578, -2.4892150310175158, -10.169290524477779, 6.6322096491333591, -2.305470093930718, -0.92641224293566915, -1.3010295726717143, -0.11437024806972292, -13.427505183685376, -11.30462950847023, 16.047768688138433, -14.215325469420904, 9.3351350662345745, -6.62593414805026, 1.8173348956009636, 9.6688678736026201, 15.434722843484117, 4.7741734648897634, 7.3832922534979426, -4.0637141564326127, -16.632389376826612, 10.935696435540672, -7.081299751733459, 0.22763411781244652, -10.55933337996192, -6.9479455795804341, 9.9512334143567251, -5.4446202104490693, -10.105751963329556, 9.1634336498698268, -4.2792605756754938, -9.2549481581422839, -5.2489925669533992, 19.990654802947347, 10.890656037663639, 12.487357089066776, 19.360197646812569, -7.3783790277563934, 9.5046824613475227, -13.591058244634368, 3.11317714742817, -10.723902307250402, -6.7339814905779498, 14.077111891404819, 16.803064214501958, -6.6876176657608646, -7.9006602931645018, -5.0764202236341491, 4.9841071290352268, 9.7814723530355394, 8.3971640792724891, 8.2735062132309363, -7.343717477237572, 10.704175450350458, 3.3376016525255663, 8.5376145056555295, 5.1183016398664902, 12.788877989306105, 4.823044753973603, 12.09038966734628, -4.8326440520127303, 10.836783759007622, 9.7445450759775536, -5.0643687009157787, 8.0020380362902461, -4.3544777923263842, -5.1443620768550948, -4.3841879140244435, -12.342919506685856, 4.6585657846115112, -8.9955353113214418, -3.9378324291350699, 18.76831940558948, 10.593515326959263, 13.755226684913398, 17.32223373585656, 7.5677818925004896, 9.9959949039426075, -13.467166175002891, -3.3233741030655093, 5.8397368478590215, 5.6554446774753817, 12.481137989151302, -3.4605381289188801, -12.936456484307767, 8.9588216682055783, -11.358027862440869, -14.535078014828125, 8.4036740098083111, 15.318980936170789, 10.181738404142989, -8.2458670275406121, 6.5273443907881292, 7.5693966824517709, -11.487789267309887, 4.6197821734713367, -8.5101700136982927, 10.347196972732212, 16.93143430452665, -13.651395878189438, -13.007370433839954, -7.4011539999326379, -12.282594263318641, 3.3436733608313731, -2.9447552589107668, -14.307488849249935, -2.7255444416103551, -8.7895841084542443, -12.266575557327084, -7.4131469273876203, 8.1019294731314577, -1.6653052256131047, -12.591122331046678, 11.735557144451287, -13.013584629306072, -7.6922705625835368, -13.284713947515424, -5.8184980008476366, -11.849770154209333, 16.688688325399426, 17.471854546822666, -11.645255906604998, -9.0885843959852775, -12.647963608466975, -3.8099543328197099, -10.880874758740418, -4.1473670259801008, -14.639569631570911, 8.7138093857824011, -13.822796058112012, -13.738345053963657, -11.393551563531128, -5.2322322565930559, -7.5536960558140018, -11.275837809446775, 7.0493120295662086, -11.495883157524871, -5.3506068206962345, 6.0863457261783367, 2.6024562610224224, -4.3910043242459986, 13.266082202531447, -10.633085069705819, 17.389083961901875, -7.2756101633830044, -13.763828056572528, 8.9856589118935606, -13.480273961235731, -3.4553497377554279, 9.7381726474873975, -6.369724810111709, -10.086391133229103, 6.4293949222961952, 5.9683952678802079, -4.0990824639168837, 1.7437098180891848, -7.7016012774880576, -8.4844600189760193, 9.1893202047690039, 8.6651007642966693, -11.829582408134147, 8.7826963578541868, -5.6119822216472128, -4.8323497850512211, 4.1293398189117854, -6.8453470802900247, -13.137052335003585, 14.1466368492529, -7.9020692253071836, -2.3198030355941053, -12.533244924167176, 12.687624857913404, 10.604333767857344, 13.081925807956365, -6.601747726974426, -7.7407580139728465, 7.7496708826984708, -8.0739640447604515, -3.3367864814164028, 3.0374065023865104, 8.0080286921171826, 10.711993271692345, 8.6119291624602106, 10.926957223041676, 0.29045126210502026, -8.1587846895130873, 8.0274389539045909, -2.9453365652242041, -6.5448805075983145, 6.0833041931893339, 9.0075953200278462, 3.1312146796530302, -6.8006849703358769, -17.775984097862878, -3.5369907505502827, -17.576852096236113, 10.520521116512336, 5.6330901972994001, -11.836467222517808, 6.512983517744197, 11.099469938581883, 4.8689021298621959, -2.4840163146975192, 8.0459475068645521, -12.445118938675833, 14.454596000855354, 18.749585441555716, -4.3142804847329792, -6.8140088104694048, 4.1938343604915413, -4.7390036585400539, -17.047960923737332, 10.043538248830409, 9.7312884784260216, -9.0825885775800721, -13.400536391049796, -14.633811808024046, -6.789844072222313, 16.459902474177767, -10.704285929525481, -4.143102220069526, -9.9729425722486944, -9.0733585329518576, -9.8252388847239356, -5.782652929259938, 3.2702429125204531, -8.96578492151286, 2.5738390571445646, -7.3003453665291635, -8.0675295362665729, -6.6523497704239851, -4.7114734355173855, 10.817370657802163, 13.229340132968971, 13.936824505696832, -5.1449108589254182, 5.094805455505635, 9.0851667046369275, 8.6935818878545188, -24.541887783667313, 10.200171777056864, 12.926037368839031, -8.3872175171792787, 8.1448038467622084, -7.8438775464753672, 4.6813748298043523, 10.472220550456475, 11.662260406917614, -3.6150086659137828, -11.822927586612508, -0.27115354452394252, 13.465234854471303, -3.7022629500638824, -17.032244486703604, -1.1420650868975353, 12.524864252729175, -8.5199248989400953, -11.953891355961096, -4.9768544809496795, -10.750856257473449, -10.338547847224065, -14.03803375517422, -9.7465993949364762, -8.333170323918182, 13.500209257233413, 14.975504278572, -5.26565375581092, -10.378505557727769, -3.378579617560292, -7.917681184663131, -12.088911879315894, 11.471471648036372, -10.467886695061511, -9.1538487102515216, -5.8725628436732009, -0.72700618400923545, -9.343116993033286, 14.132267328890361, -9.7492192743451049, 5.8447783636706321, -10.314022502884665, -5.0427078887372296, 3.1249540209824644, 6.665534608137536, 11.00125240321317, -7.645872535685398, 3.2994904672053322, 6.1087469276876813, -16.636017120578416, -6.7142903845325383, -3.0637836635521074, -5.987429177711582, 4.5867414144010388, 11.903338873262948, 5.546621915691226, 8.877828171790501, -9.5325826476356177, -17.925038057734707, -17.95754681311406, 8.7021632908222255, 2.3500014615901241, 3.9781454540883514, -8.2968266440677425, -11.584776302147445, -13.871114693191826, -13.808169957609348, -15.365811199934758, -11.722093398446583, 7.9065699610447933, -3.7867986204958983, -5.193748074992663, -7.0063567970532725, 16.155003698975008, 5.6285796526630731, 1.1008459538509225, -8.9404468905550942, -15.492315017914086, -1.2254804022379275, -17.53578378608163, 7.7334490937841336, -12.575066454491562, 6.3539397107869613, -5.1940384700204669, 15.478815908248222, 4.8153649025360403, 10.549527191598537, 5.7586154485672525, -9.1523285568131882, 8.2301933431081995, 11.076049644121628, 1.4048748346148339, 17.680992657656397, -17.156282141042357, 3.9405618842675247, -11.022968272456895, 4.7039306505329463, -8.1033152382041447, 9.9320461759506689, -8.6859035771239075, -10.416803628381452, -3.832332560855745, -5.499421495065147, 12.037089144233898, 9.0578434364707388, -3.7499073524213604, 12.145318983903506, 3.2868973900262204, 6.5146639369717629, -0.11912077698912106, 7.7687677759847649, -2.49234974854433, 3.2195262598332541, 13.864824607825108, 9.7585587656326886, 7.4620959132744549, 14.530253585432856, 4.1460655399977071, 17.133860547348835, -0.21658147838314543, -3.7441443662962248, -7.1864742485171842, 8.4883177394567841, 15.567779522064212, -9.3135632329246416, 11.773164978389989, 13.375249050157439, -15.096103139523713, 10.872541583022523, -8.728983764197352, -1.117019795319558, -7.1802026193677921, -8.0663754418938485, 12.138614601630454, -11.500707586920139, -10.339554937180493, -10.49665361370926, -6.6853747836305537, -1.9202095928289293, 6.8414250695767178, -15.668081706539194, 10.026696627862279, -13.046912685857212, 0.96073616083549684, -6.4951989518546682, 7.2727331875764252, 0.12275884589746414, 8.1031294499185762, 11.748755017674974, -15.961396688615034, -6.51983232314441, 8.3790045327367793, 19.882188000935049, -9.8802908125151241, -13.782260526035202, -11.711868137791965, 7.4910613330567655, 11.316626049730003, -9.1713170036896514, -1.3558918513179827, 6.7925213853142195, 6.6380651744740211, -6.8829192924386522, 0.87177461205081652, -8.0191184910356892, 6.3367390325000068, 8.8409368391837333, -2.9806062674634788, -3.5263764896228627, -10.133785537733756, -9.4693079587693259, -9.7921417244860152, 0.51861812019185616, 10.09230254347956, -12.971764905884083, -12.052273835705604, 18.583085064671192, -0.86204580890364102, -7.5798316728486936, -6.3042697708444289, -5.7839575127892955, -0.78031489164027179, -6.0756300205878695, 5.920047464233158, 15.90125420051865, -8.2561890220056036, -6.316730427890862, -17.112560781913842, -15.618378467966808, -15.605165881395044, 5.7827066200739683, -5.814448216322095, -5.6579673713480405, 7.858747062543558, -8.6800762584169533, -8.853084676252994, 6.5398358942397392, -4.0769566859583541, -10.070967930641229, -7.0444315327388098, 10.713537398853527, -8.1858054951247574, 9.8392166944600792, -13.273657253630088, -14.782824983527521, 9.9738045937556752, 8.0727677463103511, 14.051009379403297, 5.4554221310966806, -15.51431224767364, -18.95094561196472, 10.452335718661404, -14.373041203117644, 9.5424493026970065, 12.041271865149948, 17.745166603125458, -13.655476896313528, -9.5246702220468933, 8.7645428450818343, 11.009556926621658, 4.4129976820718504, -12.601276089992229, -9.5125587488883401, 10.369218466609645, 13.637847207772163, 9.7106767556102369, -9.5153697082252648, 10.617905798941301, -10.171392984479089, 4.9033786019499654, 10.785571756935216, 11.517977185627027, 11.995050011235344, -10.765606388919098, 9.7124115109741194, -9.4336423513088103, -7.0799866499499524, 9.5573396626749716, -3.7400406328277387, 3.9540016242832605, 7.994573528898858, -7.0926119932432652, 1.7747890555450034, 7.1277441127715875, 10.31968262463773, -9.7427242346209866, -4.9706229908463513, -4.054729205207865, 16.644700577232069, 12.446337049019133, -8.8266798630275254, 9.9533330349399822, 5.8985788824886667, 6.4254992407320772, -11.330274874165758, -13.621173112468961, 8.6583130537753785, -9.7467426564835247, 14.019625549829424, 4.1025672798571255, -6.5243455781343291, 8.1179973526810585, 5.2868657574152893, -11.404734998713046, 9.4001119862216314, -8.8837391303153623, 7.7029578094612781, 14.205110275793917, -14.157972838622758, -12.835297828097444, -11.381216873394536, 11.348319892129114, 11.774800999444416, 13.115060784080129, -14.714424435227102, 11.107448445172487, -10.261586453503945, 19.217080651953655, -14.700221149884923, 9.3055840164795267, -7.0684493200274821, -8.5129268466286465, 12.827336358015138, -13.690486404607888, -12.079784957188663, -8.4049758507179604, 10.196261124015754, 7.4495433623347793, 7.5202963684893351, 9.2973011113675526, -10.041509871827305, -6.9513248742528893, 6.7356155756655234, 13.909493816324378, -5.3404146005425579, 8.2096549934361089, -10.182158508949881, 7.6093153509572931, 7.5296889052686655, -12.394287160493166, -10.829602612631144, -7.3124772964041211, 5.1296451149748439, 5.7371649358467129, 14.147479898284733, 17.780386744613317, 14.149104045409134, 5.4181418627493398, 2.1898190479949791, -2.1708656743846504, 11.700068807022188, 8.0902996039934596, 11.56005684486502, 13.903452567230378, -5.2245020700173379, 6.7443105190558361, 6.1193142091528268, 8.8016313720455379, 8.0768030756167306, -12.839067800880638, -1.2830901294340233, -9.7878975688885284, 1.8645477064148943, -13.974692533580448, -14.857731412966432, 7.2303550022498513, 9.8062609888668142, 3.3278991029209983, 15.032376273333014, -0.49801478656576625, 10.077175027562221, -8.9735194962801099, -10.235221682526202, 4.5570596868834752, 15.726532933993642, 6.8757914496828327, -14.729377843192212, 12.167391329176921, 5.7539347969768624, 0.48952544285513888, 2.4543908592831225, 11.257709673973242, -8.9874216419784538, -12.852189526074815, -2.9421713884855847, -4.7431055851061448, 9.0271745594553234, 0.94219527722910723, 6.7616955013871047, -3.8898503941585982, 6.8294182031604, 10.167070228627409, 5.7844531203034171, 14.427801187107544, -4.4339900159707417, -6.3113030093534128, -5.2080910080771003, -8.2150554052359741, -3.4738142152033902, 19.811997586747694, -9.792139014132422, 4.2054775232685886, 1.1862726852927021, -8.9696414965465703, 17.03843493430967, 11.619001614802277, 11.495144908831962, -4.4987478490423758, 9.4848886845267248, -11.077080611002563, 4.2507486883943866, 3.9408293058220196, 4.8149498312429637, 12.808930733959476, 4.3710690282483187, -3.0499835755729792, 8.3933523380044619, -8.7347974807205393, -11.329742354216993, -7.3448458877833938, -9.3568981730694905, -13.564284597457476, 17.95771511316574, -13.828593117253744, 9.4721834503346507, 8.9318657174834524, 10.55666510138199, 7.8641845481086392, 8.7199534064833948, -12.387154026094619, -12.267566772355323, 11.495709953023843, -6.0056535952698926, 3.6624945771183075, 4.0383886124610404, -8.7930635410121187, 2.3941772032131632, -6.173478947867955, -1.8157670205797287, -10.032402438433051, 9.6184182552765449, -12.109808963645667, 7.486517747919498, -13.476166097704631, -5.0446331966972275, 10.776335775341987, -5.6846966203517937, 6.7152716615976056, 9.8681202923675819, -11.598779795710493, 13.508729060155845, -1.2440233508756258, -12.813026981689468, -2.0889856342157977, 2.9985539708264048, 4.5334945821026871, -6.4388481193702214, 8.5100323825881699, -11.680469594870019, -7.5127903668750857, -8.6224230687650287, 5.5911326330375433, -3.5923542399401915, -7.7762287341035901, 3.168850391514404, 12.408893643198397, -14.794116574724242, -7.0600184425157861, 6.6862419677158096, -4.6942430724053663, 5.8848234508115915, -9.3764550520798284, 8.6974679621831363, 11.149167498318171, 9.6316081265039113, 12.861435187502302, 8.2813864372376838, -6.5239712912096026, 8.0017129229235628, -8.3170860531825674, 9.8084833497484922, 9.4805867080525932, 17.910827544782947, -10.757043091274724, -17.314809948301299, -9.649280148187108, 13.759896753218332, -10.998439056183795, -11.186617615490665, 6.9991497087209762, -8.4727056349033241, 13.896627638754673, -13.329481761259695, -7.4445754132635464, 8.9771081657676088, 12.794499520786585, 18.176470074804723, 9.4507759160782268, 11.029010554066552, -14.710045020078885, -6.8851568829262328, 8.4640336972524359, 8.1748496328462945, 12.053805056421105, -7.4527756525909359, -11.579587394726165, 9.279460015245947, 9.4393155085720117, 7.7509113211927971, 14.315942571170485, 7.9883391993774806, -9.7307158194311896, 9.7270282543036615, -6.4400171852199373, -8.320396491967319, 17.027720003105944, 7.9088061318233498, -6.9662181381811319, 7.7440903291830248, 8.6835410865248903, -14.725951439993025, -13.65323995114823, 5.1915728226377169, 6.9332430729193453, 13.509622186196918, 0.58467227666761168, 1.3594487921408738, -9.5031391731053088, -10.293746605785483, 1.4609130729849051, -9.5213145461700357, 7.3522665777916991, 5.0984133233310844, -12.085784131269749, -13.047710820458079, -12.236720883437403, -7.2607844001656696, -6.7156109720545389, 12.974343871859906, 10.331032165775552, -14.595868922755482, -16.515482275597275, 5.1852148493667212, -2.2584173230432225, 2.7573407611881664, -5.7248712882073818, -8.4038204979667803, 5.2602206584373707, -16.786220270373605, -8.505222795605432, 8.0393368253871387, -3.0364416165074561, -8.0253326219695786, -10.244487348944496, 8.7677985282707862, -16.64905159819979, -6.9414375043461796, -13.792120018019242, -11.520571639337666, 15.997074750795631, 5.1571515901374614, 12.011480432844102, -0.66154822971732552, 0.6809223534568305, -11.149936722480716, 18.565726411489109, -13.687163769231971, -3.6279553797045336, 7.5040200498419987, 8.0177420186038937, -11.92371969976551, -10.494591034625103, 11.978188256211952, 4.8139792665278112, 2.0276526555698693, 3.4530936910505243, -2.5078901416589794, 4.2361215553760694, 8.8980252911718622, -6.1080037745454145, -5.8943982266039257, -5.8465806197454198, 5.2882382288489254, -9.9868601088835121, 3.3115848393233618, -6.1518947243701678, -8.5727172146207593, 0.86317951109219171, 8.4192432326959992, 8.4194420403586445, 16.523520926224748, 4.9460289842159337, 14.61523168882279, -6.2384946517242801, -4.4620883807322542, 7.7250368015542179, 14.500054051314601, 14.151224316305482, -6.1879519779248495, -2.7212295586905411, 6.5629586951270671, -10.482198394547403, -5.1702702177846724, -6.6638561248768227, -10.225374064472188, -3.5846676771508745, 2.5527508818121447, 3.6391349429527482, -8.9953388429520746, -9.2417485425484287, -9.12945807693891, 1.2090788910674934, -9.630853551157216, 5.1515793612794791, -10.011254323734802, -12.61349255708639, -13.927778119790645, 3.4056253326121246, 12.068250724813156, 9.1910784498640208, -12.709192819289633, -7.6486128967644529, 11.067689364867803, 8.9893153079547705, -1.6385475824288549, 8.9123970217632245, -12.883575420679991, -9.0371785390987576, -1.7686534068752013, -10.406335210290218, -9.2527616771795973, -4.0434190287293665, 10.983497522148708, 15.093053604538387, -1.5142378602151647, -3.2411399100271918, 10.944473334861055, -8.9394866509964857, 9.8641405898420818, 10.202973250156212, -2.4112327374440925, 15.169414332276546, -9.2420519730863706, -11.729059265309118, -7.0691394276780031, 17.896668657613908, -12.212623000578935, 9.7541379207938412, -10.261520630630978, -7.2137735752266341, -0.50093887089907907, 11.217935364062654, 11.758529327117524, -10.306983843668496, 7.6875480941091405, -7.2653149497928009, 14.26959242718582, 5.2602691866731286, 12.115786454898007, -7.7760266191642371, 8.6845952325756155, 14.451174760234439, -8.0271429445729154, -12.200958154973145, 9.6301740267921527, 6.4792620727287229, -1.2107082007701655, 7.1453868368230911, 10.372100346865585, -3.7046356710377353, 13.618489604283125, 14.774146173194307, -8.1296078621505359, -10.042457463069148, 8.9277404625167947, 13.941142486163608, -11.923804624178089, -12.287479094879695, -9.5607214095721051, 3.5134354546682105, -3.2118861602483855, 3.2586988712462297, 5.4377916681685745, 5.465685336701597, 7.3269299342768415, -6.8187112739529958, -15.457066482245729, -15.863114104760093, -11.392836030182616, -6.2231646336742177, -5.6946580732567078, -0.12054977865483564, 16.180926553252661, 11.378965473010075, 1.0172865269701592, -11.428245638293065, 5.8537661543134307, 7.4606083163453523, 15.806102204127907, 17.663486354735731, 13.393445073535254, -12.592653293633267, -7.8594023873229713, 8.2731824550410469, -7.7096227625427769, -3.797994187736756, 10.57439107200813, -6.1890944564964636, 13.848252215313867, 5.5608104876853286, 7.715450280896313, 12.485414668991902, -12.914020693523998, 1.7226826367869563, 8.1714019985439652, 10.986144634157721, -12.026111695925035, -5.8276979734574184, -4.1594376502380772, -5.9915197466054728, -20.790381542951796, 8.5473752794631732, -11.821961410088885, -6.2633191674745454, -13.324424499584351, 4.4359567001634943, 5.5901099262818423, -16.026794681392406, 11.146610731428918, -5.5799373239256003, 9.3586712605770401, -12.901383218171745, 16.924692493561125, 12.342403248858647, -9.7927013479707092, 9.3995592031531459, 20.564352508527435, 6.4084980960953377, -1.914969575882757, -13.062687976283243, -5.9672724071060284, 8.3619988063118242, -7.0327318931875604, 3.8820053402163275, -13.929507583511796, -12.070173527090596, -4.5562181866251237, 2.1500258946736981, 4.3411268486569279, -5.5508998861763938, 4.0867857187305887, -12.048371959047554, 7.7208884763159062, -0.28618439116313671, 4.7103454121649335, -7.2593849542605628, 5.9722728804203769, -9.7793294958592529, 15.055495847608924, -9.2621092349957301, 10.708264470470867, -19.295178071022541, -1.5429531530801917, -9.2957096175507239, 8.4504278351477389, -5.4815184480042749, 13.222096003137574, -16.61024243229717, 11.263931613306763, -11.480221960078653, 10.905274136169979, -15.048986352665642, 7.9101002611317055, 4.2031424891161224, 0.56894559008391909, 1.7204890572791447, -5.8203449132244787, 8.0918850963130478, 9.2487791997682773, 7.5605820317777743, 9.4865148321502062, 5.3245192801717023, -6.4731250578077741, -14.860399433417449, -6.9953105573889358, -6.8322984055784008, 15.860067151063904, -11.254002684644968, -10.564877989026145, 7.1711824335463366, 10.802265599100307, -6.485430837506045, 13.127502081458044, -9.0765346156370761, 6.4716596599652405, 10.786797223952554, -7.1498649862807593, -6.3155763335181359, -4.5977036331039978, 8.4663199773063447, 9.2713482496036939, -12.945417687672462, 13.368304866123649, 10.471163770684178, 9.1602792500133514, 3.2745118484936455, 13.67592225504449, -6.0110505545955375, 11.64645052721716, -9.0613792217970666, -6.0805752543147067, 17.424722272229776, -7.9367116097541714, -8.4155350011223256, -7.4653100054422028, 12.349168033297483, -6.8305278993599865, 11.598406799430336, 9.8206521920580947, 1.6301930576177086, -8.4162124281899668, 4.8582834807432453, -3.8450454854573501, 11.801494110400265, -9.2627975357438572, 3.5562729803965443, -3.8874539253246931, -6.1729954724127722, 9.5829128813391478, -12.291755258462466, 10.552669523928301, 9.923212359204836, 11.206000773742145, -4.0020915571456204, 5.6859671308645545, 13.363069495497923, -11.467056869226994, -5.9936294342163636, 1.9690754612055845, -15.62010741543013, 12.803917096070535, 14.389056553433326, -9.7502242992702239, 2.7524440556970875, -12.990040174838372, 2.1198661124081397, 12.255847203419847, 20.256703111621302, 14.985208893207879, 9.2135163379452116, 20.45261985950021, 10.557627664100822, 12.264203352611055, 9.7773986915854909, 2.8954438600292312, -8.2179048257810265, 8.1597406054123933, 13.047920937393751, 5.4709800769774564, 7.9398715593822899, -8.691252895531937, 16.14635896165839, -10.141845225867687, -9.1097800064036356, -16.007845954102521, 0.48695293010215607, 14.742398381852254, -13.906870710304331, 5.5651950654118147, 6.7979564186546204, -13.835394297869396, -7.4739339633812749, -22.175297887770014, -9.5064261221589206, 12.802550303472998, -11.0504308657042, -11.700140824989083, 16.737304324987711, -12.808634660095572, 1.1953293963554319, -15.273191964444301, -13.965760240654076, -8.3346572109927717, 9.0099924341840349, -8.9783896144930857, -11.606954480275437, 7.2533828116969712, 10.911607070936354, -11.991126193619641, 11.25900728802193, 12.966329743479223, 16.157352155830981, 11.148162086199683, -6.3267940998455634, -5.6484589346865013, 10.642656618886736, 9.3573367986259317, -10.901355997390375, -13.680427637102545, 10.565345460488684, 3.0228764258397089, 10.951589690880219, -9.0433075197572688, -12.406176320124878, -0.066524505159634262, 7.5260652915794841, -5.9032373349924878, -17.023974036311714, -7.1371762723391567, -5.4883456996402025, 3.8829428644305395, -10.012306328122195, 0.18605677744032958, 5.7586435846188353, 10.620093957741931, -7.1087775745866653, -12.560913762416449, -16.477297265407753, -8.9040127849196065, -14.589971709595272, -10.658294584730728, -8.8075097417950552, -7.1214824215853678, -12.539396910565111, 9.565864047385622, 12.844310399115948, -14.349669695022058, 10.27170291282148, -18.602342514141743, 8.5583634320554225, -4.9370326753189877, -2.1382722527216274, 8.2073659384963786, -7.3732813689060732, 2.403264814138947, -2.8005536063568806, -7.5845935705146426, -13.779475315057411, 10.981204046751332, -4.1731763035357679, 15.871386103925467, 10.917116574468329, 0.80707983804068206, 12.790445864327342, -3.116302572314094, 4.4957628462854533, 14.079577538787566, 7.1226099286799922, -7.8502869519323975, 13.933901453879173, -19.700422912615601, -14.243844584311592, 7.0725920309619212, 10.332585843706537, -10.845203407911576, 0.24231486603821201, -4.010036765106368, -12.998698334858497, 7.1339997379283391, -16.057450071172088, -5.1660849155794875, 15.518273493981818, 13.181443280533991, -14.320590440388848, 15.137001600853049, -13.187637858202674, 12.240158386179877, -11.210103216566063, -13.194037906486583, -8.0391954352747117, 15.317310842099767, -15.108473709579298, -14.253152712936174, -6.691756891954971, 13.66845665060522, -0.31309130846603073, 2.9234363919361646, -8.5151074390254919, -7.41413904586706, 11.28088164841861, 8.4122869650024406, 3.5256072654603212, -7.2527553003079994, -10.408109330313421, 9.9160539281727544, 13.090530793420285, 13.252806116246937, 8.809461873970303, 10.15538641054647, 6.3403228943364933, 9.959071627882782, 6.6996006552526728, 11.443622119547575, -13.950181644460212, -4.6587315033740442, 13.272647969577896, -0.52216790901174581, 6.0998404476526691, -9.6031992971915585, -13.780500603102247, 4.7874134131263686, -8.8596952931981772, 10.85639587760547, -12.534681927829213, -12.092645714051185, -8.6391701943844605, -4.8885656161138522, 9.660913373000982, -1.0379079296202014, -9.3565089146677742, 5.9411223993844029, 5.1576887564066709, 8.6467421625567198, 6.1854396092087365, -2.4087898054057382, 11.758245385312559, -5.8302756487886729, -16.761840510741479, 6.1253859174586323, -13.103426397686144, 11.514572465256583, -14.597527659154306, 9.4987085193677441, -2.2754109819414654, -10.39419192274306, -17.821637810038638, 9.5875357765851206, -10.355595326000792, 6.2790668381068189, 7.8149827894831558, -11.861156478717344, 9.5488287652000583, -10.552949593799564, -16.98950918002506, -10.835301066527878, -4.9896672258342694, -6.2191845439553486, -11.694221412742303, 8.1128454544927671, -7.1327951793530033, -12.389634386825444, -4.0686237683693713, 8.5194595893072087, 2.7623505271434041, 10.105013714636646, 11.118801729179557, -8.5972251554248107, 12.260440091179616, -14.295932934045686, 15.656949639011085, 8.3668325283479845, -10.909619736430511, -5.7058231812857594, -8.8792231004396225, -12.772901358327463, -10.173872828952089, 15.625530187647135, 9.8172850294445819, -14.666220409384927, -6.9229469558779426, 13.2357386324794, 16.416641100773294, -7.7106007484641959, 4.5769714931500189, 14.014974583064099, -9.3194159833794838, -13.619447262552601, -5.7549461460603641, 11.353782674327727, 5.3123797354937929, -6.2780291598741282, 10.283760630633777, 2.8416570220436186, -8.7924968028492412, -6.2145129268769326, -8.4587877594743066, 13.21973825364071, -8.3756195269621116, -14.249415522525007, -9.2323116721281888, 12.911316018767248, -9.277212873988562, 6.716305209767679, -4.9026416439016236, 8.5848515967203962, 6.3894308876341093, 4.3142065842571071, -12.53857451184637, -6.7276552671633283, -4.4357762680528854, -11.146937264504627, 5.2427117742275726, -5.4735275512258177, -3.5731654527606547, -1.7709635850453831, -10.860422946786615, 2.6061236810203359, -9.081063810087409, 17.410378564758602, -11.562271849072657, -15.109645098589235, -11.611926301280375, -1.2930095073260202, -13.062975531892999, -14.147243968457699, -17.161087985155845, 9.2826154476180776, -13.266400217353009, 8.653694537898172, 7.1765864914171047, -1.1801952981507955, -14.913000943431788, -8.360713646983216, -9.7487048234202938, 5.5607906117589812, -6.8847495555005649, 12.135286029289524, -6.5726420141275721, -6.2708900885105674, -3.9871226614456905, -1.7065449333662257, 9.2413980680159806, 5.6109535779264972, 10.777876030569464, 13.517695426098815, -1.4097374670893166, 6.8559516613831848, 15.778819010475557, 7.915591437510817, 5.2510986407594995, 17.28606471248229, 9.7631667539339002, -6.7645527303317934, -14.786188403271789, 10.613014385092955, -5.4286283498645256, 4.832380760520854, -9.7056418220859229, 2.5674523559575797, 5.6570084224339992, 7.7122248955885961, -7.6527439273655515, -12.134048817406615, -11.941614228572236, 6.2729422133737236, -14.442283251676416, 9.0248009672963878, -9.6470625626903299, 4.8059610080845125, -6.0434803225273335, 9.5585090511858297, -11.233511637096294, -4.7272838314756651, -7.7200282617113185, -7.9060890668787476, 6.1284868200977645, -13.169729390434615, 11.508050321996537, -6.7743354289640365, -7.139861200234014, 11.666341425041699, -11.740039036778199, -3.4764739755291716, 12.373141498019594, 4.5345952437902968, 11.31832376359478, -14.579887645456397, 3.1465160453936818, 8.4251430916775725, -4.752562912242789, 6.9415998674328367, -5.6167379887514626, 6.3561211582358341, 0.47321530932012074, 11.649692884500945, 13.388781200324246, 10.33961869502215, -7.5458338362989776, 13.615088497717474, 14.816185564321776, -0.54012490501556154, -4.4154331283717081, -5.7552713884915052, 9.9330120943453792, -0.83508107072409921, 5.5921318500621071, -7.766548964375648, 7.542532883751802, 6.4600363731145398, -7.4284231255591973, -10.057876793723317, 10.313265410781062, -10.16191281293359, -13.823600904064632, -8.0242560308031621, 9.5162645766365035, -6.4523072190544797, -6.5950575417916228, 8.1548439321874291, 4.7423131293413787, 17.951658376336923, -13.632282980910503, 14.90377954612218, 6.9734171710592294, -6.8104705083861701, 0.42653321155256052, -15.582049920923927, 10.065678352943644, -10.837777555324999, -1.6032427746573299, 11.353931098453048, 8.3048835250497373, 9.7678727021578275, 13.302700370215392, 6.6502142699217339, 7.3539178284520261, 3.7650419668838242, 16.069166542560598, -3.9062359013363892, 15.49968253336619, -11.93181100869136, 4.8725969871315318, -16.361950811590066, 8.8590621997714489, -11.618381589151797, -5.4456400777867211, 4.5022421401458406, 3.9805429554379104, 2.7721016049837304, 3.1025288134841538, 11.319142806637647, -3.7358641070056167, -12.649035101587346, -8.5398583799688517, -1.4954904734778918, 2.8243851001765097, 7.8276107140656057, -10.753812220727593, 10.018148172630438, 6.7707798322435906, 7.4561472033959815, 6.7346819233850157, 2.5155524403304175, 4.7270961717554743, -6.9262359054306355, 16.758386229619624, -12.476237927984346, 8.2481971895098347, -10.635029683876461, 5.2645197954934559, -3.6192776018869761, 11.498933466896935, 4.8409026284745957, -12.927282840847173, 12.37329456846536, -10.743604900032471, -8.23442355974435, -17.477812162148659, -8.8538798907705232, 14.867540311683406, 11.384561707857021, 13.580476507950065, 8.7732454274746843, -5.9443472039020646, -6.3416623252691879, -12.490426499978449, -3.5834570525460694, 13.605738035951063, 1.3320840297518255, -0.28501971350495253, -8.5250847103928926, -4.1564691677316246, -11.748106081586172, -7.2665790070827212, -14.034318247591797, 8.5019355400237355, -9.7290313992054624, 5.8293474172153505, -11.67832196230883, -3.6743845111367621, 2.9538037098482617, 4.5686747136089405, 11.580097199330536, 0.6609922956440013, 4.4079244164038656, -0.739867123394089, 10.072401965820758, 3.9113086507465464, -2.4793539902599937, -8.8591449946204861, 12.365719775495634, 5.0961647623646762, -10.374552313415913, -10.169113964300875, 7.7445033354447919, -0.17125566553424465, 14.777534889572108, -6.7190002046901665, 4.584757693699987, 9.7576507971790853, 4.9707592829127343, 4.7058369325599161, 9.8474915330435024, 13.454689772092728, 20.70986390718895, 12.37090558536995, 4.816207693438959, -5.4305901296079204, -10.807830342219793, 7.1507761813457842, 7.2910315590684833, 2.702844584947969, -8.0842533213856438, 10.806318481172813, -9.0612454464875931, 5.2022614246922556, -4.3721387144662955, 12.006216151780054, 0.91626416282621881, -6.281416327478448, -21.015726019497283, -12.441362130467233, 14.823681627972853, -5.9737733837951597, 5.2890983143890562, 12.453299560205791, 11.44357307505399, 12.792338207392973, -11.842251891471685, 12.628993456477263, 4.426428903833437, -10.357513998215616, 10.687506904818898, -7.3359369555237022, -12.130893191437801, -12.119373930539281, -8.8904465456031474, -3.9592431900029155, 3.4912699248569865, 10.021655886437408, 11.389852318070259, -8.2140054336137727, 12.916396512044814, 8.8707694269182404, -3.0146219794404625, 10.908940857387732, 7.2183407791594956, -11.273285688877968, 18.925065607086726, 9.4419637821611371, 5.1526960269597319, 10.278568754729992, 6.0868565632983582, 14.595941198851291, 2.9627540717985865, -11.664151201209767, -9.8451428180586156, -8.3297186886176906, -4.0965466054696327, 4.371301602399476, -6.6873268835396882, 7.6497678945883765, 10.142948210715518, 8.5549105706425888, 5.7372054620861492, 9.2261204501353831, -9.0052392161028063, -8.3173183046725825, 8.9418770860670342, -12.710146347496487, 15.504315947365392, 14.002910153900046, -8.6895015271525082, -2.365346192988262, -8.3209697962844338, 9.9739282375052944, 7.6450334231194983, 10.805316553794658, -8.0294321608432178, -5.2786779082757533, -10.907931831464452, 10.434947251589801, -10.178756757061942, -8.588918296756308, -16.008003412739821, -14.711476603033734, -11.131297491758239, 10.779696355668207, -14.218903652421291, -13.07747618174365, 3.0513738579016545, 9.0528751647383654, -9.988237355702049, 4.0855436023983245, -1.7271018037878672, 12.576648010345217, -8.2484699027070576, -9.8949664737691982, -2.9333072415924035, 7.6216888249631571, 11.416747027707636, -8.3411207267233163, 8.3472897818956664, 5.1773212671886935, -12.135391087757361, -7.9667189023640175, -11.399331069906735, 7.3378951214623065, 9.110413809684875, 9.5271199299692295, 9.0916501285599338, -13.651140846822798, -10.657679592594063, -14.760042009354954, 12.365971193057486, -8.5456941261815089, -17.385132524492416, 9.0477237505417865, 2.3980862318742111, -11.35168124684207, -8.3915288830926436, -5.6142527235712789, 2.9764984039323759, 7.5089204982023245, -6.1829145921758553, 6.9826006768764168, -6.5157940253555227, -8.1210656665448475, -7.668687646907709, 13.557807110499484, -0.47689062439860214, -5.8959077644906852, 8.2112998554058265, -7.6926854402799272, 7.8143300459928779, 7.6696047144055166, 17.390971400518151, -8.8551571933003235, 10.808600986091362, -9.3160059068340821, 14.597810052185789, -6.2784256458854255, 9.0317914209379424, -4.4387863093144295, -12.230661823448365, 6.4478010626096838, 11.637680855506359, -5.925634664568129, 15.567647360060445, -8.9655126923073496, 1.6378635408078031, -6.5571492457974827, 2.2459347250391324, -8.7278852724059224, 1.9522263544989593, -4.1269423175622251, -6.0511449443589953, -6.396706251064054, -4.524236272358432, 15.333972030957289, -11.138156751379457, 9.3483166773367063, 1.3650811650357257, 13.060319385372006, -15.9940004354346, -15.80828958854179, 3.675830033052947, -2.6024401814231979, 11.185151959519217, 11.640923470919059, -17.358112622331948, -7.8324230114019358, 12.230512366807387, -5.5457409217090934, -5.5418787969037417, 7.1279784938251423, 10.73660818676476, -9.0782728234751744, 4.281979189393577, 9.9192786036259584, 10.586491510155625, -6.3141222933478023, -2.1996754424320568, 7.5548136249454529, 4.4022445477889107, -9.4143548298198194, -10.201893755039519, 13.931201425442868, -2.2698384949545698, -10.579983047728001, 13.51127730879095, 10.565554932102074, 8.1647534689145935, 16.644366558417868, -13.119843912849221, 8.4055282143269601, 6.7340741588579336, 7.6330963805743126, -10.41437347372432, 9.476716000460863, -8.223064919562324, -5.6563409010634178, -9.6918549632136202, -15.210174436508188, 13.403836827339145, -15.061817940960925, -12.723458055571076, -7.9070917686436459, -6.5985018849503057, 10.69420199445106, -9.5230835036149664, -3.030178376547755, 10.314795728045368, -10.371212254338326, -15.298880437668403, 13.103627221980929, 1.7446184318650735, 12.837596466073093, -4.3212811233922679, 2.469475396736347, -2.4731315346686418, 10.375460669062887, -6.1731601586596536, -12.197629840761127, -12.546212804528841, -7.9114559541859588, -7.6376040212603602, -7.1813303845913303, 6.077508682821084, -10.602106244397396, 4.6913620956006259, 11.722654312575846, 7.8103118177270252, -7.8330447148903524, 2.4140293060940845, 7.8286851111362559, -14.292408958117155, -9.9668515042743682, 10.837884678824144, 13.551763280116345, -7.5792922479514875, 10.217841217450923, -10.506554793512848, 1.2173477926859024, -13.359553263436801, 2.2819782977613929, 0.36179344750487991, 13.324677982177514, -12.791944560799728, -15.326887424794496, -12.172088759146694, -11.712837669991464, 10.876790384940454, -14.6840911903316, -11.194104386500852, -17.06577027000257, 4.5212765662350414, 11.154517994439368, -10.635351699696184, 8.3363268533381945, 19.457634084088721, 7.1884872668499309, 8.2101471484760111, -5.8467729257860555, -8.2507979673788565, 5.6590233767335958, 5.9419912613075967, -10.350515607109967, -10.464713258197657, 14.243379436009276, -8.327667628536302, -7.418154499247092, 0.96836438649033885, 8.3303756589689275, 9.5641643330217647, -3.1940953992649317, -4.057742602145284, 10.340391662053941, -6.879331816797376, -12.852288647577636, 1.3115463364763715, -12.543598991149683, 17.395441160786131, 8.3269518047927615, 6.1059895946325566, -8.4277131199397619, -12.314302302807999, -7.1979553063364889, 14.211351316667047, 13.409938994856759, -15.105726701680716, 7.9394923034759763, -6.9818677198262353, -10.800652938712561, -3.7670249131981333, 4.9346480804151085, 3.5138980216813902, -4.4641141764462224, -21.055732903559026, 1.8466918969452111, 10.123309892032941, 5.0371299054365695, 8.5373871586148731, -7.8443868348219077, -10.905249355794272, 7.4929241203617929, -8.220133898014458, 8.976541798665048, 2.8178642475610309, 8.7977119103552521, -14.65607904062723, 6.2887216338623713, 6.3883586201269953, -3.4738839100100636, -7.4159592419013425, 3.2968043777303637, -17.320091265873646, -3.9006949060769531, -15.446480099240977, 9.3353819020082103, 11.096981317725822, -9.1428237016903271, 4.8194916094778364, 3.807216101304193, -15.900482395066971, 10.451055528314384, -4.2223942597505788, -9.024778897274274, -16.880767212590861, -11.025501807743925, 8.7326617059563176, -6.183936008286989, 5.9011640435584152, -5.9177854805632411, 14.878288799645901, 8.8183674666871745, -6.7508840299696908, -17.047751323059487, -16.149463219973399, -2.8735302640376843, 12.4186576274844, 6.6026407239510414, -8.5611102544238449, -9.6908404520509244, -6.8329976768053546, -10.339501891688746, 9.741806457268666, -5.7590976333778663, 12.722244333419306, -4.4465611521921984, 7.7012615798377535, 4.6680058171109424, 3.5846521894160586, 15.030602927696552, 8.8293573213169463, 9.7054397716787992, -4.0701668630148999, 1.9184729014981985, 14.651761060160453, -12.805800920882021, -7.2647057655566929, 4.1276583671685643, -1.631528541010119, -8.5633241535170743, -0.29247809033464373, 7.0984870073169049, -7.0386385280531174, 3.9525715901018907, 8.1913920501374431, -8.5074544652610591, 5.495575890510267, -12.430708117687118, 5.97276797167667, -5.0804661362259873, -6.4231252291136549, -5.0729442596835499, 12.124041417555082, 8.8499895815144178, -2.4437358139873533, -15.496150297312425, -12.655276658718305, 10.519788030397699, -9.2115779188684996, 3.3950389496073741, 0.32905702242372031, -14.410878771789454, 12.212348093285945, -8.7199237942570882, -8.6760456480297741, 5.2247403230045961, -5.0291643808982256, -10.761369331866735, -19.203770492652545, -13.263125077697193, 7.6266463198133891, 14.153458163923816, 7.1617913164760321, 7.1144889349290796, 1.345813906666453, -6.1874295250037141, -12.498973922694637, -10.82326193399736, 2.5660414233158177, 0.62968686165328625, -5.1908619356096493, -12.587621586720372, 5.3651510943332852, -11.242800406052355, 15.095985948996933, 9.928326280176714, 9.5883246830773263, -7.9859566049726824, -5.9976892857695372, -2.2959998603483931, -14.141721558480041, 3.6056535578269266, 12.926302725362218, -13.639902946440108, 14.875234618340132, -8.6448925055435382, 7.9831722329138577, 11.549891211989442, 11.461459085606565, 7.2857575981701714, -9.2270540378836614, 5.3067440069230649, -5.4862032296572849, -13.6655077858962, 15.174251668117495, -9.3087009876435296, -12.726065673856308, -6.1785093641362812, -12.890235921037734, 8.1087260074266663, -13.889065494101713, 9.0717802682418505, 7.6691475680995245, 12.445719346528879, -9.1119235411683217, 10.402303365724171, 8.3513068163152955, 9.651077177151393, -5.9853047767526171, -15.766675077606115, 14.392598082127982, -16.542441775591964, 6.6176414985718006, 1.1763718926824847, 12.953480602417816, 10.796382841159257, -4.093780496031445, -10.152825642659057, -8.9005024898234968, 0.30327613904854955, 11.390251643499608, -11.75711968512033, -9.5833217575382985, -6.4576917881922702, -15.414144806491558, 7.2439542659341942, -6.8998677787770157, 6.4607186078331971, -5.02639535643541, -16.089115261261789, 16.348400076141484, -13.83645520770431, 3.7481494945197129, 4.0497679674883855, -13.403170854742045, -3.2658758875600911, 15.628774351833318, 12.740734881887544, 10.303588286874485, -8.3367865164010961, -7.954139312420641, -15.819370546545009, -14.742738079502558, -14.079886777226065, 7.2254994683204918, 9.7125046955119299, 5.4490460888017331, 6.061905822509341, 12.617370169626561, 4.0431541884640083, -13.631515821779267, -7.1471186237044639, -4.5176441761627988, -10.94925956117711, -12.565959924548505, 3.3677480120876169, 6.1653584703748683, 11.489096690257293, 10.40210318675167, -15.14537117274776, 2.9537722181208022, -6.6027173882383812, -11.0054480305749, 7.3554833803130384, -0.8174751300427856, 5.6522100640590036, 3.8167044039104701, 6.7172289240850134, 7.028558852105772, -9.8320049598073389, 8.1835307340736172, -10.600978479173857, 7.5248398245621475, 8.1028253740583498, 9.1869660690769308, -8.6633294373089775, 4.862627532230297, -16.393472998261629, -6.5438161130230643, 5.0556454924094245, 3.8703781814319234, -3.6308128667781365, -11.46889345644729, 6.6372018623224704, -9.5794040059520658, -13.805097707279627, 10.114212654730773, 10.067130457147128, -11.901791906683718, 11.19726801446599, -3.8149351883366243, 13.081583529016925, 1.4480272776177645, -6.8162158126807242, 11.181577132194709, -12.714480848213737, 5.3658328127941148, -8.3699479507385064, -10.928108994254181, -6.8580906466257687, -6.9376987651615307, 16.605363795830041, 13.342459450520076, -19.246573429106455, -7.1589316353066641, 13.511443027553485, 7.588546943890953, -9.1724085985991746, -7.1723433683352731, 8.0051341635444775, -12.497826539673664, -8.8986924414821313, 12.1430742948708, -13.488942962670228, -6.7874643817677924, 7.5405544546934795, 7.0330509405247756, -7.3978694385714769, -2.5049913539592001, -16.113762442448408, 8.3461248783746829, -14.140230605875061, 19.817797227178563, -11.727868000372833, 10.536455543413602, -4.1646797322155589, 8.9643278483277911, 5.6997086235802952, -8.194167968474348, -9.4900557800548064, -10.203232798778842, -7.377645683512843, 11.114323708786344, -11.129413925075667, -13.662721026144926, -1.9593914968827952, 3.7651555436058097, 7.8968315315212338, -15.65802913412778, -12.555906061492522, -9.07183312013691, -11.817875487515439, -7.7841327705026186, 13.993369709253221, 12.841312748042256, 17.156455087414471, -16.051522915057898, 3.9786049235545669, -21.015196338966561, 8.7133705303298949, 9.5303853252585586, 10.367939566907191, 7.5160927391312846, 4.9709335199294173, -10.980707406721557, -10.35515831375006, 8.0001897687366093, 4.6646563363280098, -9.4126442740415897, 9.3084575075457714, 10.907637564502942, 14.357584443771001, -12.030960905696011, 6.7442831573909938, -5.6743335188573099, 9.3070095334049068, 20.090631228733358, -9.9182746112164928, 14.211919200276979, 15.008410036220484, -14.859390149365256, -9.8921367355538088, 8.0766461332372597, -7.7625926870490591, -0.75633574808206139, 6.9272468673207683, 12.032245097041196, 14.288418285112828, -7.7456922126886267, 4.8331804438952002, 3.0734583352340064, 3.5864699332256613, -10.370026281044771, 7.0203122786383902, -5.8886780898784483, -14.591739376395635, 19.866814875356418, 7.6929267908141474, -9.2738362896696991, -3.1835699346837907, -5.5513820709870076, -2.5503234375086077, -9.8248725997955297, 10.866645918635795, 13.82246152303998, -14.007190447545439, -2.5586305422062301, 4.026636003024624, -6.5981537981103093, -3.4628917483531261, -12.103573601608634, -7.8855749813245373, 10.963183034776939, -4.4175857409888364, 15.141910696531978, 7.8484691435905649, -10.8830582712206, -9.6305574772933102, -9.0060955910398057, -7.9385853675380273, -6.0883950116234429, -8.1690846784881934, -2.4101816365078941, 7.8648643951348447, 3.6970209436929808, -11.228409719118897, 16.916110739699427, 11.502363483900913, -7.0676447322037763, 15.378261789953561, 9.0105139836539738, 6.0752376646391912, 7.7089815057891542, 12.080838381285085, -10.439009426303196, 15.806810509866835, -8.7437797215916948, 4.2304953775751448, 12.996512499218092, -6.0201583751831595, 6.9365682895843994, -10.548128778209085, -15.742829644825152, 3.6998158879629113, -4.5074702831619868, -9.2552154506323223, -14.754719391156428, 13.758849266086925, -10.863216934147474, -9.9127382622775038, -5.0213654564249106, -15.188096154269765, 8.7245007344899115, 1.2389232398006267, 10.934230779569225, -6.4393708304202715, -6.9707954091416253, -7.3301631279841954, -10.66748552282853, -13.453090921601861, 5.0747818794194997, 8.8974423876857713, 8.8792692732490401, 4.7491945880491624, -11.095540184001166, -4.875603930846113, -8.3300531591574938, -3.0638156715373941, 10.88627584812868, -13.376680633112292, -1.8485091244969876, 14.744568729757839, 6.9066756707444226, -12.320675247555984, 9.3604823575671183, -15.029370620263002, 9.7099911652157047, 7.1718198828984816, -8.4994865580889698, 9.2278770819246905, -10.733545487204845, 10.08197932290223, 1.0713815708786152, -21.494987778292966, -6.7323064920575693, -13.414349901732432, -5.7897001067302565, 12.428527186496074, 1.5509990313172464, -5.7670067032907104, -7.7983603199626765, 5.3335463064093673, -12.190738573154626, 6.3390376704756557, 4.7693671045184454, 16.847048348864522, 4.4191695443961354, -9.3640799647682531, 9.258647726264293, 8.3288417601659468, -0.78367727886888505, 10.131531426995702, -10.412902009852315, 5.8228523774912331, 10.316964914370844, -9.9599099015297128, 4.8739975946167506, -13.714574994825467, 7.2201177386007513, 13.857521108343581, 5.5298435363069292, 9.4128292879404167, 17.050340872320767, 7.5013637742565509, 7.1817720431625078, 20.305121900719595, 8.7898782463512948, 9.4056715022306179, -4.2657243710526496, 9.3214320347269641, 4.4286015748992469, -9.1022450943510602, 7.1954776559592553, -13.253737961625049, 16.717357671317831, -9.884934809799784, -3.1110873357436266, -12.18631321105979, 17.551656649236996, 11.08724495323357, -11.967295990444581, 2.0905271800878444, 4.5701202355251258, 11.23060742868933, 7.9432986724359891, -7.1122776735906861, 15.284491815766254, 3.7490756610617257, 8.0892231418915017, -9.8352473170911257, 5.494233878288437, -23.088232741671852, 11.171550630803566, 12.747326461825349, -10.397856449865049, -14.291332560547424, -4.1653988793688619, -8.0842307351057023, 0.36519824348190477, 14.490243603824146, 11.648414371991864, -16.393779139153164, -6.0342527301237965, 7.775004041472994, 6.5293576672497888, -9.2826990813860846, -4.1652321280906737, 10.997044901921416, -9.7742304172999059, 7.8323286652840141, 10.47877960615117, -10.966088791957388, -8.5206814263866981, -11.353422842622162, 1.1067499539694665, 10.076021320382866, 3.3487383663741221, 15.906508156426158, 12.762425196368822, 9.6389629936392449, 4.105595056407128, 11.174561704580764, 10.339475433475101, -6.5396278423353751, 13.517179684529431, 11.619444305889109, -13.842774719767178, 7.9412677141437484, -8.7824419718098312, -2.718371555359111, 3.3908195743855933, 7.7751463350366183, 6.7011166463622729, -5.11658508259102, 7.992655050280721, 4.6572233317384342, -1.5522752962726871, -0.75028314131586116, -5.193423090690434, 2.0480871728864622, -9.9229041532819906, -10.660156855777927, -6.1084296872528618, 6.5939919856362623, 9.3421604318116955, 10.759874765456967, 9.4603190710786453, -9.2651685788797717, 9.6291171179553974, -9.0687653547970619, 9.5659495525882523, 8.867450098819031, 20.580956392766133, 11.16246991375187, 7.6676711997781632, 12.303655259508551, 11.61514542696194, -16.384840134875038, 7.5507331230791914, -8.9913207437506788, 6.6004868962959247, -8.6285623342474427, -6.0665322670278767, -5.7221075019294174, -7.0650923535060546, 6.410945674454136, -2.1916491819924357, 6.4980816064973483, -9.2978461505686312, 17.085450018375781, 10.43835468231384, -4.9520108636598064, -8.0268242198968434, -14.543949389330887, 13.188409663654349, -5.2283081808484377, 14.609411914336661, -14.753182491604827, -7.6893144702649368, 9.5004286904480058, -10.985432198356174, -8.8642905686503948, 5.6718211501411959, 16.342048556093328, -7.6289272114262268, -12.030225238292241, -9.6381102647731538, 15.77823202532602, 7.4703787538541997, -8.0450075949578892, -14.687546503969109, 7.1364573833147675, 14.846139359714277, -8.1887395819534721, 5.9210675896997236, 13.941404745139831, -6.887849167495129, 7.536343339596935, -2.3430546962671985, 7.7110292424607794, -14.99102970020966, 13.568855544259584, -12.024147334892504, -6.9930701274833043, 8.8530963243202194, 4.1819686905909661, -10.785809880858015, -12.423091249704473, 13.78453464176406, -5.0198517884755329, -2.4966269446427578, -10.814669080592378, -2.4006520332754411, -11.401718246099751, -12.100885963360183, 14.121484767911273, 12.709171910847632, 11.31480469211561, -2.4579101888912076, 7.2201392923650358, 11.820890175097428, -3.0619504320076878, 1.8521915915784701, -17.781126025821884, 15.760743275171484, 5.9369063798384998, -9.0648510234189352, 6.6033877490270125, 5.6320917546615767, -8.1425241167294811, -10.996675777574961, 9.8703862770356583, 7.2788707187552006, 12.741994809114846, 6.7154912002386258, -2.5406684592307225, -6.0010888435617087, 8.728474717846666, -0.21166257380549669, 10.893597158505248, 12.862430790722074, 5.1667782498414292, -11.819488793225467, -2.3712031380379504, -13.222711382467608, 6.5242831109372377, -3.263261041665277, -15.000938752945114, -1.6724084926642551, 9.7172423290600012, 1.1733058374466891, -5.8116717817273651, 18.816725804499924, -11.779150987896481, 13.857695603489177, 8.1557642585627725, 1.4888685099348598, 10.84477620455956, 16.221556560511846, 0.74647986990281157, 4.1512993618499525, -9.2987597333261061, 6.5049670662032923, 15.077486366016723, -12.769578981080461, 10.513358297288722, 7.7114523157501775, 4.3479698461565857, -10.429138576646958, -12.290795535161685, 8.747108697259053, 13.792878917025243, 1.8826218929454861, -6.4623107469723102, 10.502086711082809, 6.9357465361879393, 8.7750688501203857, 12.446665388997239, -2.8267588536660169, 3.2223279910615181, 9.5630128844704032, 3.9597052407582671, -3.8197131545274448, -13.444658882510057, -9.9182787412791136, 7.513070049552975, 10.340486266300775, 11.600431046370822, 5.0451845600566863, 12.74863336851493, 10.364662362220068, -2.4384235209453706, -2.6086234014196816, -10.185100016984862, -5.7981832553469568, -0.38450569435511861, 11.834031259960121, 8.9430905500898881, -6.4549491684852223, -10.505141795839775, -7.3615588314880913, 1.3372828216784016, -9.9318831675417272, -11.049103308701532, -5.626091031807011, 2.7803777342117204, 0.52503417246841178, -1.6806886763482836, 8.3170446234919329, 11.788315338716185, -7.0158325804072392, 11.857702971982228, -4.8488008569730674, 13.253773067157299, 8.20568258305242, -9.0389030015722049, 14.887610867231814, -1.0154383239487503, -6.8086594759283212, 14.887441534664491, -9.8622532802902629, -1.9687249977474892, 3.4266024369051147, 9.2675140027210112, 3.6181986230281087, -4.1340511878428954, -6.5843884284700609, -8.1765271158574695, -6.6959753637255535, 9.1330058007274904, -11.580628686763648, 10.412036890798372, -7.9852535908764803, -2.066028681155462, -10.756565036526728, -9.8133785064660888, 4.8114898712850085, -1.4958379149956031, -6.4667598569271991, 7.7184116648576424, -14.143983800278873, 12.36732920927196, -4.5964111816335791, 11.671988769413542, 7.01089754277249, -9.7847464601757004, 4.4476625882665486, 11.241171870736423, 6.9121362588472701, -18.546226320839764, -12.540231699471711, -8.6150767219004756, -0.092545964682283821, 10.8998139352605, 8.2795712101849883, -14.573994046100974, 3.3125027457401388, 9.0904337928529149, -10.902036425206635, -15.148823388838307, -8.7347152263289125, 7.7391065697158332, -7.919315463347389, 7.9592504585066974, 5.9648188917822162, -3.0106034285134666, -9.0938472573403057, -8.3364039693511334, -8.8986027900838245, -9.5851209160661206, -15.335543519783313, -9.1773884216004316, -10.011785811167911, 10.122745364098886, -8.633738252541125, 5.6251697697143577, 8.1908926997540767, -8.8131518267902802, -9.8786020040978677, 16.379951689509195, 15.466103575511026, 8.5125959576275196, -1.7023983504980822, -5.0160270923626538, 8.5542466792098555, 11.273426369135882, 13.829410869652042, -12.954649410138616, 7.0799135994674023, -14.959793004116543, -9.5643525089997823, 12.72453316249624, -10.77781601559705, -9.0053926092097178, 10.913493735165888, 13.257764256419453, 10.93721165226353, -9.7368734846652263, 12.99363281305792, -6.6567821019994895, 4.6536726929252223, 9.6439124219609287, -10.142082317274832, 5.8908605698429755, 8.9011495383446171, -15.881017409949878, -0.84678824947172149, 11.030375023503865, 12.699876172410905, -14.501436073518041, -6.3718745077042076, 8.7154172506189216, -8.5919297375605552, -6.5064908011803002, -9.8958136528636498, -9.5838858337467521, -4.8928250013172407, 2.7409361524707689, -7.6894330159685103, -11.363952695394833, -13.70607067963785, -5.3469266767749737, -23.3789788247995, 10.326347771315914, 12.689154787984338, 11.671864351277186, 4.8725115464611291, 16.376577944608385, -12.081594440873031, 15.659365725642424, 14.061507482319595, 2.8370432258418505, -8.4830856115755342, 10.144570163744154, 11.353444525450906, 14.458537113108267, 4.791206875640702, 8.8352129273228961, -11.664461988421746, 9.9940575173815489, -8.6630839607454035, -9.5673509344602135, -9.246591750822164, -7.3345027912797152, -12.095298763025212, -4.0184114995793552, -3.0210628120927234, -12.848224924090761, -6.6001975337837733, 19.33902694583438, -0.68210716517027581, 13.194243893359641, -4.0082360578050631, 5.1404823992836182, -10.003310793611988, -6.3394610018939677, 6.6723255926611023, 5.8759314259957414, 11.926921272680948, -8.580642143328733, 12.379442682929596, 9.9509920638225022, 8.0740136700440921, 7.2490974845377654, -6.3898648023378781, 9.2529383018887312, 3.6436181259242328, -4.8882896763052095, 10.23797565990545, -5.460880266974848, -10.639651353010095, -10.554526245203862, 6.4030951998046799, -11.755977980935455, 2.8411247602237655, -12.259188165948634, 9.0075707977810566, -4.7318328373201188, -7.2765223909636836, 6.3179397618510995, 2.6306066922179019, 9.630759721297121, -16.198841216114644, 5.165511353133458, -4.5830181629512055, 3.3750964260001117, 11.548015647303192, -0.50783202101455527, -3.3430631440796121, 10.676416137916966, 11.032319766738961, -13.211604095315202, -5.5770664141484891, -2.9653936980691067, -10.63874093233181, -9.7276984860278368, -5.8417169547552827, 0.94317100452253233, 13.400988632906433, -7.9624495791974548, -13.709842459323442, 12.553687701609002, -10.937940350186638, 15.755977699168517, 10.284565347521939, 9.7272205603442981, -6.6301607508816218, -10.068513769995134, 1.2408468920713884, -2.2009681520313884, -9.56401565076753, -2.5175193826520843, -10.398935686852829, 15.621955102193711, -12.569234547946492, 6.8291257431012857, -11.798025890317072, -12.476239993015655, 10.053724402954618, -12.445250842550683, 8.2396779351113434, 13.824134714657966, -5.2017126426219322, -9.102672620364217, 14.973696859918942, 3.2725609101646218, 13.568564891102868, -9.2433182890042875, -8.2713103750951298, -5.0147865248038705, -11.309600038830599, 9.2590048476162643, -4.0690646525538074, -5.1568273802219728, 6.660030654377203, -7.927437683210643, 11.189284087168199, 9.2168274865844761, -8.6499471634947103, -5.516662441462624, -8.1376904914916643, 8.892945556147982, 5.6785627029778087, 0.66768034018891653, -9.3798027259603636, 12.887278538074565, -9.2998086401665354, 7.3834409357521791, 10.380456754185703, -10.487869873972667, -12.906812701740503, 12.28572872271654, -13.1763395556542, -15.888870724017384, -2.469340653443445, 11.081100710703042, -10.467715813720705, -9.7389749121508782, -8.2681125773150548, 15.184079152116249, -6.9214487756633822, 7.0721797990868955, -12.64070192586945, -4.7062672334588953, -12.847633808878607, 8.5381112828162919, -5.3039544077537384, 10.020211784230248, -14.910200760977006, -10.053541389554871, -14.941875759965423, 8.6870838393152514, -8.6373342393783386, 10.730268540646634, 9.8601210063994316, 4.8780620924903682, -2.7115610821025689, 3.367923539748868, -11.312679258640989, 11.821375457455002, 10.410174103493345, 11.399906697384074, 6.926324572712458, -8.1371207041809956, -1.6110491092625596, -4.5910601692545576, -9.5153951339232528, 2.3329308802756268, -8.0750195984204094, -5.3886599270109077, -15.657204154119897, -9.1468718406440424, 11.231457963459656, 7.143788502590052, -1.0446379422622789, -13.751959805382818, -0.91849801044455281, -2.8453007697880612, -11.848232738399904, -5.9527103225739406, -11.76390486174334, -3.704608825630721, -15.558574645005072, -4.4980354132408271, 13.394440934883939, -7.1888152196346651, 3.1256174122904281, -11.421511054937122, -13.123551160306411, 0.28473636356439541, 9.5446270072766328, -4.7794426504031735, 9.6113726265797066, 6.3511751501222573, -9.9505275608424739, 12.18016045027511, -13.670434950599086, 13.537936862988031, -12.61835131762717, 10.271770155403473, -3.2553354515019612, -7.3509435380450183, 10.833255136758646, -7.7197971718014138, -0.72306396363408609, -11.465237834772823, 10.581790724509975, -6.0259420116213835, 11.591447385790643, -3.9265857523693195, 2.4198387554236693, -6.7703518545048338, -20.893767335428699, 19.580597405889041, 10.89114390131035, -7.9837304366895285, 6.9808666958992776, 14.080621928372013, -11.955871462857358, 7.1494059040079136, 15.008216955793108, -9.2423061655340426, 16.328585068217539, 7.3562653818568036, 2.7533625539782731, 11.89584977909254, -8.7835126179447069, 13.029987689249989, 10.129515440180452, -4.7509372163449077, 7.5564892687881171, 3.4689526152445627, -5.6741492148129966, 14.184505909652174, 9.7666178084443356, 5.250664467926816, -16.052283362837375, 9.8589958224650296, 2.0076120429754387, 5.7779072291833184, -10.862664796401271, -4.905494742783695, -8.77258404473233, -12.472655098663514, -10.107007631429786, -5.5274628133367534, 6.2207490633007057, 9.5720057731592423, -6.5249739929745001, -15.577672570807019, -16.194582605297995, 13.089243246399228, 1.3304335534782381, 0.056644287255924283, 1.5296115776582058, -7.489938472282585, 9.4643405904881472, -10.41195983931766, -3.2720761440648727, 17.091876912066706, -7.8753750173034529, 2.9084690450097175, 9.5977127026006652, -13.073081278860617, -9.3912861069398925, 2.8902317210057271, 12.169354141435969, -8.1160141482378343, 16.646694364960751, 9.3282856800443081, 11.069548409303584, 5.798461002057997, 10.259563884401397, 9.0788175722812241, -19.796494364196604, -7.3887430327020729, -5.8709278551344291, 5.5872333376686329, 10.821854873289302, -9.2117848091927552, 11.763462170656508, -2.6369334318903506, 10.141891947201049, 8.6191276538897057, 0.060308685313455589, 9.6030055714419014, -5.6959577523367066, -18.343108808786941, -7.6303400155026138, 9.3559490975863948, 12.357508694753873, 9.0088405984393027, -6.594815545935119, 12.373204997732341, 4.3032531419372111, 7.9583601073514458, -10.104429052647333, -8.5431279295203808, 6.0048846292362645, -13.118172786262546, -5.9034495169594692, -14.91821876129139, -5.6892017442809335, -5.0459958592321454, 3.1067745178551216, 9.1009009525656914, -9.2588666195830296, 11.310864612378349, -3.5769656266267416, -3.9410358089529032, -7.5267568189390301, -14.212705460947818, -0.95934492159774754, 4.1995059689812608, 8.1327371589701638, -1.2405721673007322, 9.9454506813696959, -10.795907496764855, -14.371296251661679, -6.145642067695924, 3.3537388396884693, 11.460026212007147, 10.060874444797005, 12.445997093239916, 13.563765242083305, -5.5683739229828557, 11.724930235207101, -24.92486229511022, -5.7363446021592779, -7.643311057943472, 1.9495072245230483, 12.444028344015855, 2.1982035913666835, -12.71186290477196, 5.9208843181710638, -6.2008222855571731, 12.997935822047708, 11.273961986631612, -12.977223299891167, -7.4067328110779176, -7.6433062825585703, -11.759754665070405, -4.5023084792766364, -3.1263587585303005, 11.967640076286415, 3.9394188894380844, -0.024459741792052098, 7.6821639766969483, -11.444676059901822, -2.5340473769901855, 14.596454875389364, 11.25633255621916, -13.268516358186741, 10.227635531884278, -10.329097618632543, -10.628285162557344, 10.458055468193511, 3.9399692202818888, -10.807338477574921, -6.5158216451492788, 11.233457946282265, -12.55364665911174, -4.3622614115872169, -6.4784001802861972, -7.1819953246727763, 11.216936663295916, -13.109092327339763, 3.6490816825095873, 7.4334190816175552, 10.989086529386073, -6.2835154318038802, 11.827149801252338, -8.7113852245559826, -12.17845318564053, -12.196351844509872, 5.029455990964018, -2.0032032011310723, 5.4992707477796037, 16.750637715891042, 7.5779066119432583, 6.5917946632592042, -16.483457770059836, -1.3750677320518387, 7.3653910133394671, -17.547851829050469, -0.91317384347254482, -14.449860367806366, -13.129943980980743, 7.0343812078810375, 12.93199550042285, -6.2658341174797947, 5.056809395680868, -8.4984099185233823, 13.527235870745638, 9.1700988933463528, 8.9518037238347272, 15.38239443386037, 9.2796059226143601, 9.8950393951872915, -8.2871941119309884, -5.8724797261630206, 10.312578271613047, 9.3850597794148367, -6.1283458817109357, 5.981963556094918, 0.19289616113519786, 11.070131006261589, 1.7848040167416142, -11.914566190360178, -6.5962433860207232, 4.3661436704478289, 11.668463502840444, -10.483625202117352, -12.57990946916861, -2.3351420125495639, 3.7379368821818617, -2.1708563817437607, 7.1479883890788543, -11.572903146508375, 12.466634758011518, 15.993442360723387, 15.551745070208922, 12.547618574592333, 5.9812704799618901, -9.5012134668775907, -8.7128302302143421, 11.068467107284492, 11.390106316921248, 1.8556097346524216, -19.027875255828462, 6.4920835939963748, -14.407744570520471, 5.2743591534222345, -7.8345818080386396, 10.251983670724487, -3.3770829861192131, 4.8495060651650359, 8.1134818713292596, 8.6673409612812904, 13.759404759509, 6.5608895337556126, -8.4504140736500304, 10.867734190135552, 4.5805961393548547, -8.4994872034112543, 8.0493700381300357, 10.379487480115118, -4.2681052765451586, 4.4230987827190242, 8.6680104760927392, -9.123851904128788, -6.2192996694508169, 9.7821588468812717, 5.9746876764071475, 7.150112919102277, 11.388505143270159, 6.8970384277549943, 12.899063155496266, -12.216129939999169, 1.3345357381732421, 15.843004829874642, 11.476757870058082, 0.84648778741628539, -11.010491353288907, -6.4243126221162346, 3.5243026819309637, -10.893862256899521, 10.545102216697073, -6.9407728223936473, 11.847353035062339, -12.518514281454504, 9.1491637350018262, -9.220178709737576, 12.420700201577754, 10.840693895790904, 15.889604842647676, -14.706291825675073, -5.2468963020460162, -9.8980538246403675, 9.4281290403753584, -7.8234571617167941, 14.490934356796954, -9.9565171841537516, -21.196395608707391, 10.777615449431181, -2.5274093338479298, 7.5639129272789285, 2.1634842199712145, 5.2538355816304483, 13.621706406804465, -10.199311691516732, -9.975495080010873, 4.0461123458139161, -8.7266540055545558, -7.5918775812631933, -13.093941708884659, 7.9860050041439834, -8.2647658391518277, 7.7693559227144124, 0.30326175943596811, -8.3718403260702559, 2.6965787636991316, -2.8285941502417455, 5.6932393967475372, -12.802637551045798, -15.921585982527628, 6.7598636895517092, 9.5739640036300777, 2.1437203215721659, 19.274557700888156, 14.186451685402922, 4.8156152875822373, 6.5941783547118851, -12.476683458489228, -4.0595815125258028, 13.289269406582722, -15.359341456844174, 9.1452295599634628, -0.36956416032003164, 10.164498232132253, 13.497907263581888, -12.574073174432012, -14.369910615653447, 14.595566395668738, 4.262123397101286, 9.2403420626304253, 13.020035787114878, 11.184821812638717, -12.689353805376726, 8.9898204662386938, -9.9395089409718906, 3.7477974066815571, -7.5478986094789002, 0.30827049287555108, -10.632731433094182, 8.6509936373629994, 14.203293048242141, 5.3123260446797627, 12.218946384575505, -3.4989049374701628, 13.154370720075143, -6.8453303019106402, 10.234110695682048, -12.498002583592742, 1.9328362267668107, -15.865771283796738, -8.500290210195363, -7.6416963325244183, -5.2090897088438375, 9.0278625698084234, 5.0077359916576762, 13.81591279250183, 6.8533945073005613, -5.2796443429282869, -4.2188625399546407, 4.9833358398413763, 6.5035974341877072, 15.401815020804325, 3.6498581342817098, -3.7092995442487431, -14.772103340972043, -3.8499989037028421, -11.899075874254772, 11.637001202076837, 9.1311542742963177, 6.8696967679037142, -1.4412808959383745, 13.260317151375006, -2.2477787979979231, 5.6509777566254549, 12.814344729793421, -7.6538958921747415, -7.7373815587184414, 5.7307723733012956, 13.865039371081226, -5.0976735258646944, -16.139774609330164, -6.3744397928476086, 8.2994000602719211, 5.7107072384600714, 9.3915892793489206, 5.9788732367412445, -10.165257260202708, 8.4706781129522462, 9.9680351544077013, 4.5752415131710409, 8.8460954809898915, 1.4084876068896433, 12.079715004253076, 8.167098634626921, 10.257528021659796, 12.7838726115424, 10.087718561167314, -4.9265588365205684, -5.71336958007499, -6.6200053140981341, -2.8632680909484205, -8.2056430247964105, 6.0795192489291496, -8.3739876682364169, 8.3506902431390362, 8.5827329794624028, 3.8229036278995974, 5.5306279900753728, 14.286490578386031, -5.242961643015942, -3.9320348537355119, 8.8537796722198152, 2.9578439436040003, -11.977220014657023, 8.0565192410534561, -14.586550468974357, 7.947736618315365, 8.4997819543644759, -9.9581751461658357, 4.8344561169862352, -7.9991693206089023, 8.0663494999380312, -9.1855747219664874, 8.4547398463833883, -12.555601727503381, 5.193398052185815, -11.534267701364611, -0.24826068304076013, -2.2659583767318465, -3.5297925676655053, -13.792757080178019, 0.020651899665136787, -10.82691497438269, 11.125750043275966, -11.202184595883416, -14.332514963681728, -13.007037963799233, -9.3663022611177045, 2.6454382633357936, -4.3767974250990314, -7.032067469363942, 3.9429717758049376, 9.1000417704767607, -2.5975223093612043, 3.3597553084067648, 11.728530617294055, -16.282013965882829, -13.735547969055839, 1.2223751114072647, 11.410173258664868, -6.2817759010550995, -15.456469171939647, 2.3309520640239345, 3.8234601538373285, -9.2207454962996245, -10.757324451790554, 12.658809152900984, -8.0010308818015901, 12.416923259313892, 8.8533496294497525, 17.644337319408891, 5.5377420229343146, 0.39968367447506781, 12.255322685467403, -0.82056449248738628, -0.89478577218300959, 15.766508326327928, 1.8656530144229491, -5.5734270545955784, 6.5783431783778994, 1.4574613731521846, -11.875855113444731, -14.74954132514952, 1.614691824491348, -2.2672179702236566, -12.350748814764398, -1.659191184165467, -11.97642497760312, 10.306954804165716, 10.288692183528191, -1.5666334589630291, -6.4276042820225223, -2.7235893732187142, -6.2890378417815374, -4.0396276312463426, 12.012542891452499, 11.305634920588719, 8.9046443134397961, 1.303553040931112, 0.25402772362193354, -4.9609521910981558, 13.642465650294374, 5.7586071884420171, 10.604057182726418, -12.796857528412364, 3.209714263569317, 8.0981529180609648, 11.786463780018897, -18.167094832662602, -10.173111477721411, 10.569677508981252, 15.737505994110974, 4.2408210503771544, 3.4415615237063268, -9.802723203041408, 7.9636830482111147, 8.53521478601062, -9.5789715754895486, 6.8653669135069118, -8.4288256716904559, -5.7725809971800013, 17.663452281719142, -16.145351742637505, 9.4012301361431376, -3.1946286936004382, 10.809895115399719, -6.6784478942339742, -14.434374181763573, 4.3120574029224361, 1.9879581074935853, 8.0812516047815635, -5.8884153146443996, -13.250854145402261, 3.5828297992860096, 10.730443164856686, 7.9954989855863587, -13.936790432680235, -14.084719983004398, 3.0969867857090643, 0.8468894360058542, -6.5190851690039811, 10.150950465166176, -3.7956467633964359, 19.77148993259355, 8.5716923621684646, -11.282284837192964, 3.2731205336493163, 8.5821306275759781, -8.1557789719108467, 9.4744702143802737, 7.7587621830356239, -10.699156778947703, 14.492273529600732, -10.683443826654308, -16.422731910618708, 3.015006591521733, -7.7243819285004029, -18.752567346765677, 12.760859128249985, -12.880073901966947, 1.3443214052879913, -12.669427285762106, -17.335979616763833, -8.4100051376722895, -4.8411803751856333, 12.767500785197029, -7.6321049719493841, -16.958146517022104, 11.267199267224086, 8.8615676635391214, -9.5094315816322492, -16.145023918917229, 12.676527895917543, 10.232042566826248, -10.648819446699044, -6.3564933801292511, -6.1186828258301489, 9.4800739994979448, 11.92813731799294, -8.9972565149173569, -12.041397573930874, 14.687724096661672, 7.1074061356686844, 4.6606803766717588, 12.305481779701218, 8.5996540355704294, -0.067960734434929809, -9.191807083254897, -9.052712478990566, 11.104517133229594, -8.8996676363846721, -9.2384645619773238, -9.4567395329014623, 7.1009655611453368, 2.8792183927778749, -9.2805448020053696, -7.372209230463417, -10.862605168622229, -12.593946519490427, -10.90304003042273, -17.590922187058876, 11.858016598612258, 5.0275254448191706, 1.2935087286449309, 7.1363510342023622, -15.164316286232856, -7.0872657562491437, -5.2098981686012449, -2.9494279085048367, -10.868858857812127, -7.8106126024436024, 13.143994970263892, 7.2701377013501309, -11.995400292171105, 10.913483151880431, -14.888482826701974, -9.6569452217443672, -10.779897050898533, -3.1580538915739793, -2.2169060636729889, 15.106021484900053, 9.0514038299308179, 0.2135309864887463, -0.65532990418859183, -6.0205440197800861, -9.2923645249593232, 7.9732684072889057, 0.5626864801868362, -9.2245916816445579, 7.239928874590988, -11.488509188849928, -6.2795614131052861, 3.4491690990480808, 10.850511312762027, 6.0765734817670944, 17.477582943673379, 1.7976153953750558, -12.365951575260052, -10.491771492501799, -9.3035812587710947, -7.7036052613088257, -14.677134616109955, 2.2225730258422631, -8.3078811115911986, -14.283066240218153, -8.2067309736350254, -12.484186491620973, 7.892512776667715, 8.2370605401935073, -1.0832695154723395, -3.807396275285889, 1.4020328352760474, -8.6452441436727288, 12.878158843556914, -1.3842967976222773, -9.5074499904947345, 14.858822782013151, 10.926383660595645, 14.768008383886619, 13.231038621220492, 10.366374144110637, -2.9888302546509204, -0.93227958874848049, 17.031411762828316, 5.7555798525432627, -8.0536924067883433, 13.061357063604698, 11.377969353532476, 10.894654970793198, -2.9767074883523952, -8.8377973946711919, -10.778944038949504, 10.647067525762411, -6.188764309615963, 13.347300400165818, -4.7270721657665087, -4.585380300639601, 5.3355943012099063, -17.15778496757736, 8.2106960918769047, -7.6659395419612464, 5.1702505999872379, -9.9416320512862875, -10.567100608036739, -6.6621754475203439, 10.737490600455919, 7.0642401408977893, 14.17535007708662, 11.921006764883527, -9.7296722042334842, 2.2774455540384966, 11.100299306781297, 13.379169512097267, 5.5438403185182228, -1.7038402586094779, -4.4438959711592307, -11.015732144621818, 6.353422936701925, -12.49811409528342, -8.7892635123435436, 7.4431993280251199, -11.851997290475913, 11.180195368120183, -9.4564999247374093, -8.0571277799672796, -10.168682889015153, 7.6865489416168051, 6.9537720654183168, 5.7547238970657499, 7.8132907544544787, -7.6758670509140217, -13.461429518026945, -10.21288294821395, -8.9098639059356817, 11.07076135706861, 11.62484900908216, -12.80595192629648, 8.1187644795461757, -11.015077271568005, -8.4774451076199036, -3.7096485345399364, 6.9589204466001604, -11.504810029744057, -10.826137748223829, 7.1007040765558553, 0.4600037552640116, 7.4392930631755414, -7.8921933421371309, 4.1688449003654826, 2.6934001642570053, -11.552349631762612, -9.1209688622927398, 7.7694234234253194, 9.8541491939831918, 4.7846984132130768, -12.01616573075494, -10.384957877116683, 2.1213555162396389, -1.2631465733111062, 7.2765963448974311, 11.702037814375164, -4.6419600934704146, 3.035465372956204, -12.665485915380279, 14.87611948425597, 6.3759617209222226, 15.416368328953348, 11.102568001802966, -2.2016521936524409, -5.7507417423155722, -9.7315904892549394, -8.4533661972365834, 6.6915869140653612, 1.2563325618563539, 3.6818170750750916, -10.259664812806617, -17.42001606587694, -9.8723329562376083, 16.722298258724223, 5.8040784034758586, 5.043607134265649, -6.0884200501280628, -12.46479120131055, 11.417428746168465, 8.6016774355254189, 6.3327612659413601, -4.9756593440796895, 11.629008498395986, -6.582432456627223, -10.213175795466436, -10.537627190552456, -9.7385382870935207, 4.3497930106733751, 11.46262376326475, 6.5885174585720812, 0.80127702445627158, -5.9415294686811571, -8.6848050853324796, -7.3296356415492445, -3.2092966109871042, -9.0362020696847036, 10.187380715001016, 3.7228244668059678, 14.264384934482761, -11.939066238066045, -6.6539140316404284, -3.423568905912433, 15.172211417184364, 5.8169136055759321, 12.933803177204824, 4.8346094455609157, 4.6986051929163697, 12.4369083741919, -6.6598620961966191, -7.7823160592086698, -9.3322714485992755, -10.024348687264132, -6.3620854849135808, 10.787347554796357, -10.33142787740011, 9.4500345698383548, 13.338004661729089, -4.5117170200486107, 5.2748841876325061, 0.65397841680353774, -5.8761113418485245, 13.212466762144471, -10.594227246502985, 12.112481630417129, 10.462985730443359, 7.9597277388679517, 11.168354220466401, 13.529660217502212, 6.5173434441594349, -4.5222832689981001, -9.3978450335701282, 7.1889266022608851, -14.447029209881949, -6.5235646091062192, -14.132016943844164, -8.0244107145546391, -11.606452161409562, 13.815542635639725, -3.8276831428638993, 4.2130923262199236, 13.828479540531756, -9.7289631886400425, -12.759138440911896, -8.7186212797923037, 5.2230635175818199, -11.345353990911796, -10.299784628268064, -10.79288996976482, 6.9682631644991639, 12.038605651601326, -6.4692420245604199, 11.717537423121463, -6.7001782186968626, -14.575297080856853, -1.5602359163616726, 5.9362855798012815, 0.053309261692154032, 13.727680199769171, -19.21601303076698, 9.9590436208956561, 8.4333811952899769, -12.018634733813567, 8.5363560304033648, 15.137481720632351, 6.062257135960758, -3.2889128605836442, 10.260771927717066, 2.4632555224341304, 8.4086305044090022, 11.711569740767839, 7.7204012579914778, 9.8119902891687243, 13.324844217197874, -4.2495385800474086, 14.368646300234614, 5.1645642781494425, -9.2471861571779659, 8.6630893038122512, -7.1887250035793606, -6.8602782891685674, 13.419107217610165, 3.4043006150275064, -6.7408661758971542, 16.4728982324621, 5.3908439557489158, -11.850071648780423, 6.6294164361592429, 3.5102842168909265, -7.7004658329293392, -9.0380414317908215, 7.2683287339235907, -10.90875887650364, -9.4671319965598677, 7.290246718106669, 10.194252235745626, -8.2970544751001114, 11.98884743157034, 9.2368156990094477, -6.4873227933783086, 5.5050009515327103, -11.673571357782851, -11.234442449958753, -14.282675949300783, -13.973379689925856, -9.8025955582936284, 10.068919032389493, -5.5194546219210849, -8.4363464834511248, -16.467089815648173, 8.2091648066291736, -5.2783999034357993, -6.8017497521044961, 12.303739925792215, -8.0359828918804457, 10.305533030109581, 11.59795817137849, 9.6806921783447883, 12.902365914945838, 12.670600223545529, 3.3950854128118233, -1.8139059111126397, 13.03804337638576, -7.5951176153867577, 5.9670540300451185, -7.8696197105134971, -9.7280763222251245, -9.8409744232972702, 15.044642043049675, 4.5460409379484377, 10.314735842137413, 13.503698127629693, -11.956176571233238, -8.7865839890228159, 1.5241949249285471, 11.55185376611958, -8.7901715775954923, -13.669017306605566, -8.5137964990716366, 10.098894897804108, 9.1581783387855236, 10.553747212142603, 4.9012418108031452, 10.804820430022708, 1.3546435398917904, -15.841568600599345, 9.3125819558595744, -7.7527041555622382, -9.6665818839437367, -13.059319393960703, -9.4240125295256476, 6.0729155369324035, 5.4145709073585344, -14.60360711132752, 15.682389792220297, -10.238640987180267, 5.0128647550420862, 10.231961772476289, -1.4687385091297409, 6.7096888494541664, 12.964085312575433, 3.1670249038373921, -12.969620112740943, -10.372929327871624, 5.3157927159894731, -1.2875702904651249, 4.8921463804033758, -10.625794605734429, -11.159438189661586, -13.733381751212868, 11.443685619260323, -8.8915178935260073, -20.346988345474948, 4.0335471465574733, -12.824806178403986, 3.6873678792332445, 10.546015218664492, -2.6370258420414205, -5.4554007063968504, -11.935828785231617, 7.993131878916377, 7.7987390596111625, 8.1278841095315979, -10.447696625826101, 10.09752487859515, -12.487899934172088, 9.052363585497714, 10.65488392739527, -13.01574361953946, -8.1912611142460179, -4.4315824475935521, -13.533957031398074, 10.001291063927491, 4.4956219078986237, -12.774086686298736, -3.033753462001179, 5.7830251511533559, 10.481630510937473, 12.104585725078877, 8.1274499689650295, -4.1862773784168548, -4.2128636240024706, -7.4142799842538878, 10.309963038524865, 9.310196199375584, 2.2194734138476999, -7.2146745741995719, -6.161847400892019, -9.4496219507699557, -9.5126556117631687, -15.483814832789088, 10.449722034346701, -8.2919390053547524, 6.3187706788239923, -8.8567684339790453, 8.7692762195028298, -10.065092529374217, 10.93620056130894, 2.2197263801830327, -10.352888199019365, -6.7050985429835368, -16.404539501045683, -0.86181186850133484, 9.759706664911489, 6.6007660627159872, -7.8968015885672562, 0.59988079160594709, -13.68647043497003, -11.672130998444938, 12.782322289287292, 10.209900139552792, -14.897584452195668, 6.3987648291500507, 8.3069552354442138, 9.1258435300278169, -5.9677138075482921, -9.769943670431676, 5.1300235319621867, 7.5748074516742934, 2.6157064588089916, -10.958766965322992, 8.7363901361174801, 9.4469516716909467, 9.4208641956986412, 8.862200224574968, -10.003433404845952, 8.6723469208433688, -5.0596204195500221, 9.7054781038224682, 3.225647012632646, -7.8283918766904019, -16.486460325582886, 4.0046986591730258, 10.973336019335751, -10.083763509953066, -6.8134244066090037, 13.663269808215247, 8.2967402354139121, -12.795459502216282, 7.942979947759917, 12.783610094437263, 7.6498621116418422, -11.61105873000175, -9.6482154954829458, 7.8615631199265277, -6.7110396380590602, -8.4485479306691271, -8.4591279895154941, 8.4458195564514984, -14.179773890407974, -9.374594265273883, 9.4877789539723558, -9.4281379458228773, 18.178525813472664, -8.0356775899078805, -9.9171761436246495, -1.3315078860166603, 2.9417408294576926, 4.896165963846026, 13.000697285165449, -4.2586076812979918, -7.0003945354068335, -14.301761484914877, 16.445959899038328, -7.6848364498717245, 14.181040270858116, -16.814223643694909, 15.774494834914851, -15.982703165401782, 9.776880368726971, 10.696066459594027, -13.754385184655046, -6.3340609450213599, 12.943079814101948, -7.7915856620928965, 9.0289706849684137, 2.4194211028414569, 14.937517511388124, -7.5685051051841805, -8.483112376317262, 13.660431422681251, 7.8254420439979571, 9.2327187414249412, 7.5356688487456855, -14.875031729014038, -5.5568642128541414, 9.5281074666604528, -13.155238033224853, -1.2964596583852588, -4.1700436510402623, 9.234118380926736, 14.833083715521987, -11.356381258100983, 6.8889669947554939, -10.432582532612269, -8.0747593399432667, -4.4510112946627407, -12.162236236643324, -2.1349362702487831, 12.849327908938594, 6.2443293976873981, 2.0614851716247737, -5.294782571195543, -3.0189962320104047, 5.6258016692948596, -10.119023790486994, -14.227025420558943, -0.64016438986307633, 10.830131260646207, 11.966006378392212, -13.106840410697478, 15.748441367406915, -12.718522372614043, -10.050278769151365, -5.6224258593627399, 12.178718542163715, 2.1101196808882583, -5.3037651992600665, 12.172135996737884, -13.373151494605489, 13.781174835824583, -15.005831328373574, -20.310893663227798, -4.2773819134422801, -12.562284168818776, 7.1701937998072314, -11.952948152910784, -4.1809790243362066, 13.035229254969643, 6.5740979902647592, 9.0476524101632894, 8.5414171236797678, -11.900086707080444, 5.8681875585876044, 10.08813208368691, -10.896117012959856, -9.2268609574562834, 0.00012179904393089082, 6.3011528642126535, 11.082558880935993, 7.7501126703341052, 7.7717625876404037, 4.5877674768326164, 10.108008655356745, -6.5583606447890279, -7.8084294771567917, 10.007255777798608, 11.010943853274455, -10.389889817204471, 12.93207784354629, -10.702367773568486, 1.5785104109292216, -8.0183281003022344, 4.8067645633925631, -6.4240232596040849, -14.847116119523358, 9.0931620218730274, 5.1193674541507637, -8.4657528358170424, -6.9354105814068827, -6.1975838002070907, 3.5661593177875992, 7.371377280974869, 4.6060546197169323, 13.542364806372001, 6.4566339759043192, 11.30736567495444, -7.3708290151623732, 13.404241573475678, 0.45340399080754967, -4.0282544713129242, -4.3552403051371726, 9.8939152437685429, 14.424260690928543, 13.305889294814065, -5.9338071015794291, 12.632273758711346, -5.3483639385659245, 6.9202470565060965, 0.35521477401275342, 9.5585192472779177, -8.3588001373466643, 6.4432925830046663, 12.692899206005086, -9.3260450565419912, 17.970512112186597, -11.642094085542254, 1.066350713959042, 9.8708030261666746, -6.1490457555507145, -9.010451161529625, -12.584372001827008, -5.6935370193849231, -12.153009418626528, 4.2440182351010609, -5.1992962978616797, 7.4133632394172206, 2.9416912687062799, -13.051931744453341, -4.622910695904225, -13.923817389740298, 7.0992949508164882, 6.5745333246775521, -12.661795446302476, -17.6337292535754, 11.455118665101697, 7.239558330535508, -5.8790741455188771, -2.7376088707744057, -10.660221646135241, 9.6276183569507801, 10.373026255278685, -3.0053375986759332, 9.0528373488525204, -5.9442824135447507, 13.642738234427142, 12.194322434991111, -11.149932076160269, 1.7037571410992967, 14.880097250814613, -7.8008430683859533, 4.3243063942597137, -10.223795606165496, 12.915193889436331, -12.152048146552264, 10.659226946366665, -7.9356265648658342, -8.3307716932546256, 16.673768474193082, 1.5653365436944993, 4.8455603065916764, -3.0899243786328423, -6.1051754560390492, -5.7705513295323296, -6.8852769128710598, 7.623164999687833, 7.8939155137164718, 10.765459642631717, 9.0210677456172679, -12.224995119408002, -14.150465933557312, 5.345651519941768, 13.841522794536196, -2.3000948174338163, -4.7845597979864705, -5.4351375866788922, 3.5245019574522667, 2.8386771818649672, 15.268104243557156, -9.7430277942233872, 15.811612740175535, -5.4515623294515514, -8.6572002917907867, -6.219673181988802, -0.89082305270793227, -8.2417318668768953, 6.9975040078322897, -6.7323255935971762, -7.3304533939475434, 4.7401807263860904, 5.5832271769294897, 6.6058089982366228, -3.1503394508619929, -21.460472844997067, 7.8852878774403807, 6.8939788257420389, 10.957685147046078, -15.625074848243537, -11.723592094918972, -15.798764631629782, -8.2060371876474854, 15.124469958355371, -7.3702221540864885, 14.838537979466452, 8.3093859386252849, 1.5784525900525741, 4.3747052902542656, 16.030788451943696, -8.9631984697985452, 7.3190431925150241, -9.756945072729291, -14.440714344139529, -6.9739174783516722, 6.8071561331354875, -2.2355445200087205, -6.2250786595685961, -5.8997288467987739, 5.5047242373373253, -10.356173792896181, 5.1435334830424244, -9.3653788049292839, 12.462285027688363, 12.377914817889968, 9.4213853579752094, -9.3455590861526687, 17.26727241131405, 7.3245528251114562, -6.2155462169180931, -12.137609705769792, 13.060557896488179, 19.238310206324147, -8.5685627346211657, 8.3551763945930269, 9.8196973732066706, 8.4823602209291344, 2.8049898098660888, 13.666768487510247, -9.7851073243969182, -8.9455268353087174, -2.8029418150655503, 14.782189986400054, 8.4667377266868993, -13.755929311816228, -8.0729370143454471, 10.805604109404412, 12.599814047825573, -17.135366471430803, 11.992116376132229, -13.042876582164091, 7.8861617083451607, -6.5794687495056721, -5.3930873541370534, -15.622499754201419, 5.9419050462504526, 13.804813765474663, 5.6395158003457579, -9.0897997637088714, -3.5776553470838923, 7.7610284903648434, -11.016645146589239, -10.874331190780543, 0.72147388952628144, 13.843587309587207, 9.9280047806148186, -16.170066037341662, 9.7022254213821402, -5.3933217351906055, 2.3517092424825323, 6.9870679849197135, 11.851520784501398, 10.510028176174309, -14.311343746445708, 3.3026680341318051, 4.4390021050862023, -7.7588835681572457, 3.6223844414911199, -11.392883009644892, 4.8263325419461847, -7.0772231218009019, 22.934531428839488, -9.0971943504307866, 16.694009911082297, 6.8967067321010127, 7.2611735295029289, -6.1876050526649653, 7.6539276420311149, -15.629995301594667, -22.73669213681206, 12.806472572315222, -13.602880032619632, 4.8079421474964272, 0.70951529321680884, -11.56763783292867, 13.896373123645859, 11.011258512420138, 3.4407824906450677, 11.879887345204146, 7.7757338364439814, 15.738146153816711, -0.41419103567747156, -2.4147541320834862, 14.987369948472574, -8.4743572404909084, -12.672499794220743, 12.497184056807704, -0.28001570199239545, -12.94992332785943, -7.6301713282575729, -2.2337484590278605, 11.415679406520967, -9.859159218067342, 9.1936659018278792, -8.9943101669652474, -8.5499699832361991, 6.7410389932048123, 9.2520173624572184, 10.227159413103134, 7.1425592927034662, -18.745554500440871, -17.775969642643719, 11.801682544507194, -7.7273473779921202, 7.1236464453325734, 9.7057719190583818, 13.727508285912711, -12.362641071943072, -5.1402983533682178, -14.170537521621373, 5.6895432488336324, -3.5191979245355194, -6.1045249711767653, 14.290504482992581, 12.308816547136075, -5.6938214774477149, -5.6008341501264587, 0.52212712464339661, -5.5362642349039284, 7.6660157545229879, -7.905382180848842, 9.810612009834534, -17.70809516106922, -1.2403496601772057, -0.15782160435460715, 4.2133602640322456, -10.476969606208971, 10.295486523727636, -7.0575322738844042, 7.7362494053033721, -6.0086321448039755, -1.4831550089545567, -8.6265711358744266, 11.360761705764855, 4.2063453526761281, 12.519646951127399, -13.336133743363282, -8.5272902525625458, 3.0551420237824538, 4.9850797587816889, 4.2373879358262148, 5.3635610202254798, -7.7527269354388633, 14.985488704950225, -4.1003720759692515, 12.065115491028516, -17.998495351452643, -16.357350954349631, -8.9589079155288349, 13.936041342572953, 7.8027559972324481, -12.282070003495111, -16.144531408950069, -9.4866664183547194, -11.727943374015606, 9.6630970145456185, 6.9048921290158711, -19.934166904009778, -11.734783532097213, -7.3573804987635745, 10.787048512449948, 1.8203855387085228, 6.9468911229683599, -6.8060936745270908, -4.0675525333779117, 12.619597822150968, -21.186471068237122, -12.083502013544569, 4.4663418289706298, -5.3789656375315742, -14.890316058246391, -1.316216404781305, 9.5406000026277162, 12.532017263054071, 9.4332244405976855, 6.7225013362098425, 11.834640960454053, -8.593891646368407, 10.556917035201668, 14.71791330562338, -13.276952011083337, -5.2089121161512768, -3.5936619210165119, 8.9003033594997092, 11.937206935501351, 11.056226117943536, 8.4803819209352689, 4.9292204037487464, -15.4894843762475, 7.8410390318769148, -6.502762516216654, -5.628969685451529, 5.5683372686771238, 8.5956169477608242, 4.472466013052478, 18.757542007188665, 7.9719147147337361, -5.5287206755327487, -9.3320448759453605, 15.34734052739287, 7.6828857696716151, -16.459798706354498, -16.841613702717492, 5.3562657808691876, 8.6483141202497151, 6.5470262041926519, -11.758310175669873, -13.71448361719005, -11.967662791630813, 14.019415949151576, 0.99768989610712699, -4.7405294585483704, 8.2686539059129966, 5.9924670797184021, -9.7057188735666351, 10.897854736806242, 8.6225617364240712, -4.6254881131065666, -19.799763308758489, 10.677967750816642, 14.67689507247813, 8.2131587707771487, 6.7567017394245097, -17.811631700831676, 1.3610916001536324, 7.2814560088894069, -9.1537527830940011, 2.5743196175751164, 8.1949937228689684, -15.847454456087357, -8.2348678641368931, -4.6092561926323699, 15.95837864535717, -16.246026149005907, -11.322113612304321, -10.247729706228281, 9.7881733796327133, -9.5255805136607208, -17.160321858540268, 12.806643453656026, 2.2906395553284815, -5.8389294206172666, -11.351664468462687, 15.745887439935712, 5.1275152933086918, 5.9522255564741897, 7.7738811806988144, 8.61082160389069, -9.3855791347890083, 2.5014849307967948, -4.2172595594011568, -3.0110339875413583, 14.204561493723595, -3.1852038907069082, -6.59988003522004, -0.17505945320512115, -11.433156799003305, 3.7025055912426708, 18.034317449567027, -2.7251025249102638, 9.4671609715304186, 7.1769944641650572, -11.396310961617562, -12.592840695224545, 12.026224240131368, 5.6957143367711769, 7.807121731548242, 3.270443736815237, -16.679716796878186, -4.6589191630942342, -11.148250366288135, 6.5055253990434201, -13.847068952373904, 7.9248346467136264, -13.586383530008991, -8.5101262931135508, -11.077321445278956, 7.6332915260329965, -8.579089530179516, -3.6424426068516773, -8.0663491127446605, -8.8174376218081427, -14.791858979245854, 10.034150100242613, 4.1684695809251009, -19.201350275958589, -4.6234537991384483, -7.7633367436425234, -5.4425737644220131, 17.084060252304933, 11.759495245512234, 4.6241551353967125, -0.80287380991582924, 1.9852059370167341, -8.8577936413585974, -10.668578698777646, 13.770343230351907, 7.8544289530123237, -5.906146447848811, -7.1070820548176536, -7.2021040833003989, -6.6751055119961658, -1.4835767915993865, -8.5188957712276672, 6.644056862816611, -0.23652820765960442, 4.845459195664124, 8.3584436935830908, 6.9840270972529952, -8.4756792799880483, 4.6255673586830426, -7.6496994258940427, -6.900506260644816, -4.5762513134810616, -6.4107151653342864, 8.7568199990470994, 10.688380154933624, -9.3272647156587709, -10.849469504466718, 2.8600596241588958, 13.419158843392887, 6.9116547193589399, 0.54100615712660804, -6.3079948291966561, 13.979407000058522, -9.9592168253966857, 9.1210143897798748, 13.76739384938506, -11.698421170166652, -11.210325207431763, -0.43878865611267875, -9.5267307360997435, -13.91603273796381, -7.6019597739674456, -14.787299906373772, 8.515353855339642, -7.9993484620749449, -6.5031571953255547, -10.564438266421821, -10.531656539716323, 8.3907769535673147, -10.200579878869272, 8.4067262551472268, -13.120429865483102, -9.9585614360850432, -4.8885839432667177, 12.236140609639621, 1.4006400472648162, -4.7117532472597325, 11.808206752798553, 9.4586915682783683, -11.821793626295042, 16.643803837386208, 5.6220113043274909, 8.792079118000915, 8.4798465777015082, 12.61789365506335, -8.438754197025828, 8.7752428370746856, 15.288077226376224, 4.2876022696475387, 10.147670162932087, 8.1398121820970371, 8.9633754494349347, 6.9072249690725727, 10.562749070811192, -10.272627788718927, 8.2592313293813469, -7.9850097881175808, -0.77775536093954867, -14.654038273436273, -3.090713736850645, -11.007111929551995, -12.143908051261743, 13.145067754028833, 17.014195080548721, -13.59295962221198, -6.0558196589843734, 10.690919110927839, 9.5939627348082759, -13.626523608590157, 2.7382196037839943, 6.2789031843755936, -11.950324014375081, 1.2890044547091108, -9.203655039058777, 9.7296284513826272, 12.616615916941006, 5.3147485845339419, -12.656051045459119, -5.5986635440919565, 9.3002076429347422, 3.3292279505682338, -4.9103514382931657, 13.222584899299941, 9.5144587067569262, 8.440118521265628, 9.4441265152637737, 18.529033902678044, 14.862696264490703, -5.8665961938352309, 13.872033632124255, -14.906419172392699, -11.551436113537365, 13.108661252054045, -8.2712840782120569, 7.7956086657436519, 9.6836685337831092, 9.1880246557516205, -0.35720244225408904, -8.5753236713258811, 9.6884666985614167, -14.078139760738791, -8.0567269702966779, 14.239050097870303, 11.180573010720785, -8.3438476973649784, -14.588404350831867, -10.806339389614816, 15.148980847475608, 10.836208389659197, -14.522225776219754, -7.7397343392337188, 11.832691570898515, 4.4086234295019064, 9.3809378478579415, -12.776911649129225, 12.752335969651673, -2.4193756721526625, 9.08709683132229, 3.717276243936952, -0.28602641626801117, -8.4165416877523285, 8.2724324937486831, -5.7101228345996704, 8.0194030781629397, 3.7247779864241277, -15.996389160401096, -6.6467534065125804, 7.8864006711869301, -10.643940035845176, 11.665222436201226, -6.6019801720611273, 12.318091635259712, 9.505211432023728, -6.3740213658786562, -12.643872523315254, 10.933363724548427, -4.6402401805190676, -7.9548575561227448, 18.615251024853279, -9.1327510274897623, -12.386332918020443, -9.6970271567877422, 10.360767067849318, 10.017239558854548, -5.7946809622471713, 10.24748680692058, 3.4663078263957696, -5.7127129001187793, 7.2854274512896708, 3.2942963972057817, -15.447448082666996, 9.4240943563912616, 4.2740494691676441, -2.8083506483212206, -11.306321543498909, -7.8598045521703677, -10.085092744793673, -9.3809770834528106, -8.1125987155174748, -7.0607164230981736, -17.84689520797702, 0.26017075111447463, 10.097398266363028, -7.6969520530928976, -11.846175967216304, -8.8291032095345621, -12.207788762284949, -0.85154969541207071, -9.4826356063043278, -10.806758203777139, 11.945254878769713, -15.802038222512115, 4.5363494878871542, 22.477445008753747, 7.7153212809717395, -8.7016885715837855, -10.007145298623586, -8.795354435120359, -5.2764732292246563, -18.514008734874949, 9.9312388777733691, -8.6578667710667112, 6.46688169377442, 6.9298690698896204, -4.2756570960415736, 8.4808841268697428, 7.7873527996353795, -8.2073426100958109, -8.4872576201416674, 8.2937560393098444, 7.5054131715887227, 8.2394651400881891, 7.8481348021152186, 11.479257590457429, -3.1673599551672513, 12.182950823831176, 11.788485703799161, 10.613525222212976, 3.8898478128694616, -2.1666985168099973, -18.063401350520685, -12.751117343050547, 14.550046910528055, 2.8273257047602933, -12.559761991203947, -5.1410541548272528, -12.454640798040879, -13.078940288941613, -12.828468511430206, -4.4879330219490843, -9.3996787168401461, -9.8258621369858332, -1.3135111381601494, 0.38819487278835541, 9.1421981585343204, 2.7612354102366319, -10.436298814581436, 7.8534234118293771, -9.8445919709569818, 5.97193447341464, -1.122699223283266, -0.35565779883507898, 8.6272393953323707, -2.6785629143030141, -4.2415840794457695, -3.6974364556373041, -11.162890147623219, -1.0549609581685737, 5.0308101352447876, 2.2952270979876421, -12.315318298211947, -10.695852212595735, 9.4196311784105813, 5.4565356992299696, -2.8633610173573181, 6.1651586785957386, 8.3636672225449065, 5.4793808824707169, -12.90333209146946, -2.917909411244644, -18.171572853055814, 5.5692562076095564, 9.4272302354981878, 22.37397145244622, -9.6263355853146226, 12.56665274255262, -8.4230789476868768, 14.292402246765404, 9.6755109502586905, 10.650146100250515, -14.501997245776215, 5.8382255030698671, 7.4369544152182838, 11.674980225393304, -11.786725006479465, -16.772831123624936, 3.8216491213794792, 15.77259758739986, -9.3479878856330032, 5.9950230722209144, 5.958729372581371, 7.2462686497735733, 10.332660701091482, -10.204140767232445, 7.9808905023820502, 8.2782586246593102, 6.8390222765844291, 7.0654728355247078, 7.6480295899519355, -3.9185027035687048, -0.4255074072498965, -3.6431994408263657, 11.140066389082302, -9.8098156821360636, -13.896130482467072, 5.7907261691618359, 17.222088493761053, -16.920381740703927, 7.9242825734996547, -2.688244813594495, -15.985663904040829, -12.754606213446827, 13.950582776791954, -5.353910870790374, 1.5595648567928815, 4.9908161576287231, -9.9205742817077969, 8.7860382238341703, 5.5146521334834713, -11.443914321477775, -12.875588137706325, 11.928543354774042, 9.7949495217437477, 3.0596159141130483, -17.110449287400556, 14.904415575765301, 6.3932641020011367, 11.703663252144132, 8.8510994551776303, -4.9488441381477051, 6.0141351951131101, -1.616597923995984, 10.958784259960206, 9.1227822179108102, 12.152585312821476, 10.379738123290229, -14.813934163937317, -8.0486858029122974, -10.468696961721317, -10.799428246081964, -18.131714651248306, 10.923313475297233, 8.9703208918471784, 15.96222270113857, -8.7661420666330141, 7.6020823206691786, 5.3308713164776842, 2.4841448628964948, 8.8418522933758332, -3.2565822141546716, 13.967329148190965, -13.883497137177436, -6.3211637919820207, -8.7551098627283537, 0.24851512254299432, -10.440516253836366, 11.747040525430812, 4.1482957738112507, 3.4063067929440405, 8.9044096742573302, -4.533883066117661, -10.060016037094814, 8.2165816247037746, 1.8593226609457101, -8.5265761308565295, 16.14419842265152, -4.003167438457524, 16.533944688013928, -21.327055302195756, 9.7008097133554756, -3.9906435398272566, -11.21150304966454, -2.7948474085927382, -9.364844542610351, -4.2756978804099237, 5.8141271039535711, -0.76694285700648002, -16.378244424874616, 10.914821034039642, 16.369755081163987, -7.7447057730452871, -8.1738488670482514, 5.0835789127951436, -11.318782974932084, 12.128049901454446, -9.9118013833855763, 5.8035693732582301, -16.725072628287645, 5.8582619856016809, 11.841875797644564, 18.792232468145812, -6.2998330510773926, 4.3652040812023083, 11.060526545644189, -13.359396837315156, -2.2695101549764649, 4.2878526546937348, 8.7944164914466629, -3.9990440871916042, -14.629067914849822, -15.681880762002669, -3.8670963304243546, 3.480137857328875, 5.5874406151862583, -3.1797062611049576, 7.3180755962823776, -10.128595726861276, -9.1174957700263022, -14.980244041683607, 16.109280291992576, 11.480512096977547, -10.311691598794816, 1.0011865103708153, 8.6924180410487768, 6.3189823445331479, 12.194923875359811, -5.2471028051769002, 4.4810642115580661, 3.5767787412932912, 8.1371206073826539, 11.009844998489241, 2.352372633790496, -11.785028325130343, -5.7430223971542294, -4.0330159172532749, -17.56714335153762, -0.69837806311042638, 10.071956177186964, -9.2379726328002221, -5.6954164560048781, 3.2282866389031661, 14.19966736952165, -11.173139672395717, 10.918018476892463, -16.209246908879869, 10.006757459930895, -10.685128505008947, -0.80813344465943648, -7.7725116132154568, 5.4694480818752123, -11.723461223559775, 4.3972758243309356, -2.746658870485382, -10.571105349066855, -8.4602973618932946, 11.668195823157037, -5.5560296820764581, 4.2868444031571951, -12.586104046837292, 11.116589306261053, 16.708751653338254, -4.1380749013481637, -5.304918777374966, -3.6321959214972299, 6.4836505223889134, -6.4898794312031054, 4.7755273510416201, 4.7059724502395577, -11.348341058700028, -2.3894998316920693, 7.7024164485972211, 7.474516689403738, -3.754442161175565, -9.2452925879999928, -12.22839364468452, 13.946576099794985, -16.64398659265704, 6.7770641097097508, 6.8518280519883517, 11.40188370673337, 4.9537315509978948, 7.1111193200908858, -6.7191754742225047, 4.5635294299740607, -10.262970411674237, -3.9845888680297481, -0.2324331749676018, -0.40356490082002627, 15.985289100858274, 9.3965056026374327, 3.4160795536131108, 13.621857670347838, 14.878550026106467, 2.4671248748490635, 1.2677903124668533, 10.971312030524174, -11.207046712100073, -11.640311189135987, -6.2777844536640313, 12.129463415385345, -3.2735634828650624, -16.99880285343048, 17.207987943726486, 13.880418691753789, 7.1345976935567039, -6.0921309113900426, -12.916783447286308, -0.37175928860132518, 5.3795595921617778, 11.474666767728971, 7.0272923425911724, -7.7992948111621532, 13.053545050163368, -11.125579161935159, -4.9734162038204666, 11.929760432601684, -16.353627702899804, 12.828965151459983, -6.7007792718721912, -13.362734444168062, 9.4783264667528435, 9.7261137035627598, 9.2099175046317381, -0.2719331694496081, 12.895782337004352, -5.1315028687660558, 9.241451823362242, -2.1662823373946867, -5.4023510845884939, 8.0145086312998544, -14.636845339016727, 4.6576194840142362, -4.0006553278703239, 8.3384948780835586, -6.3109591816404915, -14.523997573082733, -7.9786516212499015, 5.5706537175478106, -0.18481561801713964, -8.1249338573796681, 4.8293312255355296, -6.4878466660084699, -8.0428722880523242, 9.7154788568544816, -3.7634095596341886, -5.0816731470260024, -7.7916227681242267, 3.4940339692638638, -10.289437014508398, -15.219845494385298, 12.995575491261707, 4.9137445428624966, -7.9629573187705143, 11.219541958420926, 12.579169413573306, -5.5632263161877527, 4.3244956027533856, -5.4018763855163758, 9.3532602977578332, -15.574718543519731, -7.5391648176870891, -8.3898770516422605, 5.4643582959567576, 19.452032686663497, 6.1134164797347879, 12.523157246223509, 6.5452318210497289, -15.527032324278245, 9.8889627824321256, -9.8221837999669699, -9.5911766203792848, -9.7470711255260891, 1.1168169059934649, -8.2960509989484734, -13.169177510817329, -13.637864244280458, 12.833989630763297, 5.8431250479789956, -14.41459427937188, 11.436201429539272, -11.440704230308189, -4.6605177554561878, 6.0103734824551509, 8.8048544503260899, -14.722303045928138, 11.823402801942454, -7.8164585124822334, -8.232953902774744, -13.886365465665408, 8.840783671939624, 15.917335631836213, 11.733379827065031, 8.5863892262928321, -6.3502014878601392, 4.2519211099199783, 8.9575070499147049, 10.95856743167278, -9.332360115881098, -8.4440260122275443, -4.0611922369466953, 14.699231999887989, 11.501755848438288, -0.52251793181859396, -8.3240561791721746, -13.017699204188929, 13.862085343793936, 3.5246269674530311, -12.575260309305678, 8.8505292322744236, -16.160514751280466, -11.987606347753729, 7.7594652616640536, -5.6910847947056791, -11.982557604332538, -7.9943803194070249, -11.87513054558424, -5.9220296361607261, 5.3857386820956448, 1.3684074142164342, 7.8855235491385018, -7.2936109122376758, 12.973360400699073, 8.9378164601271202, 8.2183380628963967, -8.1258310489511292, -8.3418561682642896, 9.3140758124148313, 8.9364762225415717, -7.7593878229899724, 6.5113635006824149, 6.3101163907375719, -14.918246639214061, 13.656191397146385, 5.8145605023995133, 5.790589877095452, 11.042264699393407, -14.460089500394686, -8.5558978411383713, -11.890624991752267, 9.1525039554099816, 5.3913413701654322, 13.54219340877337, 7.1378985170394227, 13.827006140692903, 17.07127099715148, -5.416714667986021, -10.094832206832885, 6.8118702124201906, 9.6895115398714591, 8.7508693370687158, -8.9726099467869087, -6.3825788556224756, -1.2811892681142396, -7.9006554532473725, 11.991550041295781, -15.41868271279273, 10.399633667435214, 10.25224425186277, 2.0476462887020261, -6.2087210303134732, -13.850177857009358, 5.9216685138105953, -11.725632862109929, -5.6223675222282647, 2.5395243562790468, -5.006470643723187, 8.384941400951341, -13.676198969239875, -14.674173361213084, -3.6794433215855835, 14.47578115705271, 14.106661973176443, 6.3803571400630812, 6.3022752087290064, 9.6858881197789639, 8.46745889047234, 4.8235109347915737, 6.2970736529909601, 6.8398844271558676, 5.4355289101119171, -12.595917333745797, -16.10769796175218, -11.030056234295563, -19.383981644912097, 6.6153991326993182, -8.2620846218601045, -9.7372222168275044, -5.9754966524223843, 5.099067163869246, 10.579232537911697, 10.305783673284692, -5.9402938055717325, -3.5627778290193794, 3.7215761553797764, -10.814343838161236, 7.2071720573256535, 10.230481403156768, -6.0457170095637167, -4.0775725815462147, 7.9957387228148695, 16.218084726623868, 11.154854336413793, 3.6660505610321241, 4.5629032092296571, -3.7613295568483625, 15.715664674215235, -7.1900277802063224, 9.0957779002834975, 7.9878026138983254, 6.306124168959764, 8.8828525381624139, 8.721765253660628, -8.4786042032403302, -9.3481374713384362, -15.968539115654474, -12.371027164088257, 7.6395778685304663, 4.4001441528189096, 10.920171272031924, 6.6419684708410927, -12.778931766007094, -11.762446433381475, 7.6029684772295836, -5.7530563842838651, -9.278300564698263, -8.6364290246359179, 8.5380212522911432, -6.5156528288397819, 11.12605540978076, 5.5317523996230342, -6.371230734193678, 8.6110210931749993, -14.136763934565353, -3.325398350005996, -8.350684983762422, -10.304377774156745, -8.3940251671508275, -8.0763593520142454, -15.711255832370867, -1.3901134745614421, -9.9201181679174564, 3.6762776285891374, -3.027745253408118, 3.5951178436958218, -10.971642177404679, 8.2562901762736214, 8.3702239228132633, 8.0927467951588898, 9.1407003009808996, 10.141245463336926, -5.2674684020735612, 0.0038156237976130062, -3.7799349726831526, 7.4968099930271954, 14.604208551696219, -8.8259931271859369, -6.3243333569121711, 5.1119354064702609, -12.608102567241415, -0.15550817742430292, -7.9404349902684608, -6.9086361598432484, 5.7169315009538186, -5.7678559474164688, -9.9620966406213132, 11.827724138085108, -9.5612259870659759, 7.2643256707314112, -8.1336844275508628, 8.067406989564839, 3.1687667577463965, 8.3775004800894344, -5.277606415155379, 15.336501694310613, -4.7070349088479553, -7.2391458405315685, 5.2891447775935045, -14.240394433252353, -7.4683465049173909, 9.5098429100560775, 7.0524937265552987, -4.699596407944612, 7.1548196417129413, 3.7757352152588068, 13.613370907926351, 9.3633279061784691, -11.557527439640607, -14.012943624771856, 7.3474746726395423, 5.2883987850331868, 13.132951699082062, 8.9466349827348211, 13.267381623482532, -15.779073009326543, 8.032743244950252, -6.1729291332819773, -16.086736861451836, 9.8901824415489088, -11.522547874300223, -11.039678505808, -8.9536772557557835, -0.79142011376136789, 4.3166975282733917, 5.1393017176327902, -6.3197807372629278, 7.1773149312112974, -3.3356114786016748, -7.4632594293525276, 12.15740148209151, 17.021497031256764, 16.542438678045002, 4.7378203956000897, 14.845217323234882, -7.2756424294972062, -7.9547005492110463, 9.193618599704461, -7.5604327042012542, -8.1467060632587884, 6.3174795179981418, 0.7536321058409664, 7.6986470566040817, -3.3754253578426234, 2.6279128588755247, 10.051578061037993, 10.925533383954232, -8.9061476723656874, -20.506099007820808, 14.128311245160457, 9.7959616452139926, -12.43896437098876, -6.2641844155929478, -7.5029331980512666, -12.192807734526079, -7.5158451935031385, -11.210721435314145, 10.80351997655597, 3.2237621553055051, -11.493430158458887, 7.4759875079534561, 8.7887085190462386, -11.237257345761609, 4.9929877961788778, 6.6053051305972668, -11.960492486668706, -11.986237490124884, 5.1070170181504384, 4.5800543267651985, 5.4569228926003772, -12.014404000919589, -12.327689384525359, 2.3450763619185495, -9.1846545569217142, 4.8727425718388053, 7.2559899137243784, -10.074516945074379, -9.8222229064973803, 2.2863391276278286, -8.7400761928041675, -11.837723535940322, -4.4389959099922747, -3.5522064174916173, -3.9825563609640251, -8.3095611758915098, -5.4952116706131706, -6.7650687300300891, 11.535631654544098, -7.1952205595613057, 13.192400852916503, -5.228605287227996, -3.4756815197644064, 4.5448576750084744, -11.096523655162001, -8.0759285993896679, 6.8294188484826837, -8.1148457922426314, 2.8919333068042086, -1.8055807373910648, -9.1618657103163628, 18.95516137338171, 14.701615562276213, 10.576040902959432, 6.9472405004529243, 10.8509054756131, -4.2393321628034837, 7.3628769667854135, -15.942801597936789, -13.09791276409155, -8.1192986128006535, -2.4956021728557478, 4.4062225724764703, -12.705159555014562, 14.611257019811106, 5.4487889924037836, 4.6811247028870682, 7.8660698571613787, 4.6606439804949416, -13.056105688986326, -10.877807412860054, -9.5630044307484816, -8.336671584502314, -7.212332183373066, -6.0724287058013449, 5.6058632757502158, 9.3822916694775689, 2.42285945557725, 9.641242013817461, 10.674625497643289, -20.504761900048337, -7.3203307395360833, -17.782026379472534, -9.735986037460254, -5.2634387516032799, 6.799610895926369, -10.482358434473838, -9.9267338829086853, 1.8815547880166452, -5.7225605181727941, -10.32085956341931, -14.680546047832154, 1.3745157768279728, -9.0962042001843155, 17.819003862604216, -5.4500305924782211, -7.116020542837953, -4.277099520410796, -7.8010119492276786, 4.171818029192381, -1.3712297957577866, -6.6583249385161043, 14.600889530125094, 11.302441607798515, -3.9244391523237829, -11.875059302004088, 13.955038081840771, 7.9089371967792328, -7.0382148094414347, 10.339905992502993, -5.2543438374613363, 11.658450166023897, -12.260784693279277, -10.567202181764241, 7.7818871780187164, 11.469695204852945, 11.633486260660284, -7.9554988128763675, -11.353654384257666, 5.8142491989297058, 9.253802323894794, 12.252383629657103, 13.743458587742163, -4.5990699094437071, 8.1674889900765191, -10.405234290473693, -4.3503211424306096, -2.5352832982285238, -8.0329959531566715, -11.096227581298097, -11.635882729494188, 13.841735492761007, 7.9211223012103931, -7.8204116277296309, -11.400201996861236, -5.1390918588260295, -10.152632304102763, -9.2722777072893567, 12.630289521752468, -6.3311089827653779, 22.041405387767668, 10.030760738542526, -11.015029259590074, -10.750221260345983, 9.8774814664839088, 10.243600159868437, 10.47497065590202, 8.1475889932077727, 10.019493153334773, -7.8612573662283625, 9.3356880428997453, -6.5500876131080021, 9.6522744435849201, -8.9747623869991138, 17.924301874073105, -8.2996248260234431, 11.278399997043214, -6.4926958757794448, 3.7847950238685, 15.344497495538429, 4.9354655746844953, 12.198358538684232, -12.353439550559809, -4.290111282687775, 1.8013128339335276, 11.579132571580397, -14.978620927074862, 9.1640921689945465, -5.301934549004784, 5.3570590110206942, -12.575832581107141, -2.6075057032237736, 6.2802480360154735, 1.2819497158937185, 4.0370287893441716, 5.689180319581105, -11.659257077007823, -13.709675708045252, -7.2955461047029706, -7.9351310864161704, -1.9719236556382971, 11.636620978187096, 8.0623417904254051, 11.044122711313531, 9.0069951057714874, -5.9396329955529055, 6.5144624673546936, -6.6237325665461277, 5.7505943507059047, 6.4480568683630661, 16.1112369091577, 8.6016424590576257, 7.4714033965767532, -13.528592080057718, -8.4982760948147362, 9.7204545497931232, -6.4562558170458875, -14.150178377947556, 11.751616118553367, 6.0070165159337243, 6.9449626418548203, -15.126256210437514, -9.7431764764776236, -8.876463218361474, 9.0284399719220438, 15.073453876128392, 13.206659377846192, -3.4523853853115929, 9.7558870023124271, -12.058967118435369, -7.513853728934679, 14.964746497968617, 7.3467639146759316, -16.267222146617634, 10.457316186984949, -1.3736876992731295, -19.028624862193571, 6.2689422477285071, -7.2052733901016355, 19.395946436315498, -3.132819208979996, 11.798928050870122, 9.2702304868755583, -7.7224549316281159, -6.9578013286952274, 3.0911876615360234, -11.041946426442932, 14.013325139306163, -8.7052677346673892, 12.75898769362635, 16.761060445164567, -9.7151229616148491, -4.0703315492617795, 5.6473020008957269, -10.612999413615965, -9.4254350779685243, -3.9276038128045752, -17.026729820593356, -8.424154215942611, 1.2187489164289478, 5.8313796661521602, -6.2180611669233414, 12.998036492324015, -1.9067037718113109, -8.0612877855389282, 4.2253038888647296, -10.732641648813859, -7.3045004676514553, 7.7590428982291675, 5.1995141586647611, -9.9275214342240954, 9.2358499096791942, 16.320055456396389, 6.4700313827782239, 7.4560079428470925, -11.188331333348085, -5.8742724314680048, -6.9160594311406891, 16.994775009862593, -12.580529494819087, 12.251765927166845, -6.0397211911585096, 18.500338227610456, -9.3415798998849979, 4.2166328223989247, 15.992495543868285, -8.8374303192229871, 7.794601511254994, -9.2446173872942285, -4.2241407599800276, -3.6317947891654878, -11.503645352085876, 2.2293891779349062, -7.0972594752682587, 7.4553347426404102, -5.4871239754921124, 11.941843447047516, -6.5685789359629787, -5.7519598526588727, 11.132163514263386, -8.7158284177121814, -15.465587317683815, 9.2269600789591095, 10.514920493473857, -7.9515038807449656, -1.7659455589649102, 11.517020043615382, -2.842147983237294, -17.07404226916794, 7.6546092959597152, 6.0366140934254533, -4.9119038255795822, 3.0017790334729799, 7.364629533044333, -0.30876757355657375, 4.6704944379670055, -3.7846453090986092, 8.1168663608460996, 12.569433049081056, -6.5680452544341019, -11.687875571530249, 5.3455252949030152, -5.8739384126537999, 12.336912846866278, -12.187352179937047, -10.762736511657643, -13.728362176358916, 13.481091197376205, 20.215728760391368, -4.6330724568460946, -11.010865640213632, -15.546423484526052, -9.180879292495792, 5.60969984579312, 7.0458207069452508, -9.0859663557451587, 3.1218915795514603, -3.5746161372551124, 6.3046716775629115, 4.7049417414875361, 12.658169509453071, 7.6896814005156253, -10.100222971064603, 8.1975588789479144, 10.664698634012799, -7.684453515628392, -9.0663855675442004, 2.0159640621040276, -2.6901451586564513, -6.5423957586759558, -12.548026160146915, 8.5246035903640482, -0.20760014096318802, 2.513881830001568, -10.022801591620444, 7.4682387360959597, 5.8601101886230893, -12.699060743172828, -12.594971033148521, -7.2651889828829619, -7.7181201727819539, 5.7325939890446032, 1.9037734923840721, 6.4679849367511659, -4.5854626437630408, 9.7791348666583922, 6.9463515044744693, 5.7589530811862488, 7.4387964231457664, -10.548676785892669, -8.0141310532314787, -13.733069931485234, -5.9563447776774918, 2.3094845147950966, -15.548183407459007, 3.6403641528393331, 7.0657980779558498, -12.060589974915199, -7.5435216465553632, -7.9451035097999121, -11.355855965761799, -13.604227465548648, -5.2858045894514616, -15.074237039252267, 5.0342256970296031, -10.047891334829437, -7.5476650028120877, -13.135553638531196, 13.335291210589279, -8.3015934461830483, -7.1242078757196632, 7.4165964331245746, -11.978530018893565, 9.2825552390489801, 10.297494895739936, -5.6352022080705124, -10.775907668538773, -12.425421895665409, -11.578418328876452, 11.726677767952202, -5.6800250032733786, 7.5055956687306411, -5.0822668435272913, -6.1806882302960169, 2.7619111917324486, 1.3880530895730505, -3.267061215531363, -7.9062358776983608, -9.8822254887225895, 0.042596987384144601, -18.721186098480946, 6.2809470491135153, -8.5919361907833967, -9.4528212650574002, -0.42946614787551551, -9.7471847022480738, -2.5180103438457606, 7.1026257172531837, 15.054405511077857, -8.3632931292168653, -10.62711764548111, -12.729565385666962, 13.352497567712332, -4.13019164432668, -7.8355600520889723, -3.4095215304340725, -2.7246229213887867, 13.561843730450432, -14.379007078568874, 11.826952848891258, -11.400536273804352, 8.3810471390962462, -14.184050570248575, 7.5105880109842111, -2.2878414379050076, 15.169788102943443, -12.423854278773089, -16.853481953907202, -3.0539856062495048, 9.5258258006608738, -13.294954954033772, -7.1935249107278372, 12.621221969275366, 7.8989220530602893, 3.8377543005570955, 4.7690377320246871, -7.384166148934951, 10.334861379144421, -10.274185725776984, -7.660512381552711, 7.3680216050980096, 17.2154865886667, -11.555638968508676, -5.2123312917408828, -8.6742651332660614, 5.0064889708760525, -5.5487370240093012, 7.1983809609150224, 9.9944498733302272, 15.041759259342541, -7.0968495665534554, -5.3048916738390384, -4.4004665558320015, 0.61130867486904827, -9.5652360197388209, 2.3804090476127437, -13.00880511434177, 3.1004911438401592, -7.9257672664784797, -1.8498710126451656, 9.4089658079582676, -9.3980833510896122, 3.2850011750268808, 11.14162677836504, 9.0463525052204901, 17.759167515399369, -8.8862696648537689, 5.1450915491649409, -15.615150307773268, 8.2649197485165651, 3.3389335977197661, -14.403893803387318, -5.6464545636723633, 9.3258220331606356, -16.489910476642127, 0.94272857156461431, -7.117796211634638, 8.6340635171552211, -1.2102285972486879, 6.2782088175979966, -11.716934692108198, -13.052164576733411, 18.843873738601541, -8.4224555986266356, -1.1432524799001162, -3.8398585674607997, -8.4714833622312913, 2.0076683906851831, 9.2963876576745346, -8.0839565376672269, 12.295453213278766, 1.5119421372641451, 9.8998470462031776, -5.4780824940352852, 1.1647911971025293, -12.103113874013506, -3.7658943085565455, 9.0166245080951626, -8.6305499914144281, -7.8916091318734143, -13.664449973608248, 5.0933679355857704, -11.878457052893864, 16.283617978951966, 6.481687968258778, -7.6764315788480753, -10.637829608202328, 6.7202557437259403, 13.070109182549373, 11.32861639589585, 1.6023878516954715, 10.81099319579819, 11.064755987893601, -8.8993382477578553, 1.1065340825911127, -4.0072350338781044, -13.247125215116327, -12.902201228698958, 15.169451502840104, -3.8842697226530465, 7.225301354379301, -11.797852685816045, -8.4876550257372188, 15.014740389697723, -7.1777134822539024, 4.1563808876431727, 6.7961656493164897, 9.7772439433017837, 2.6003534672856192, -9.7640847894151364, -4.2051688010879182, -15.33565658024747, -12.504579708311388, 17.697085446646163, 5.6312969757365874, 10.240899486109848, 9.1619551197188134, 4.7029812523887085, -2.2046888221920842, 14.66532470205472, 9.4017352298948325, -6.117210458506948, -6.2527105853832241, 7.3418788249859661, -3.6555906611950397, 7.4710208495267914, 5.5773908821928915, 5.6464739233408832, -11.615308048177509, -10.69821757689555, -13.369385393755998, 6.0300942733256271, 15.607387338825525, -8.3086246196607227, -7.139670830160231, 8.8784588291256075, 4.1708577896337715, 2.6199826223917646, -13.065911490156337, -12.032534201424433, 9.6843978770284949, 7.1524531158330165, -13.135769434302969, 1.2427684037042608, 6.2493750435616269, 0.73878143318346856, 8.7227099006195505, 7.9663740421354419, 7.4937386461486719, 5.774464047604746, 4.2168093825758302, 4.7039817600578395, 13.415247674093951, -7.3174039448491781, -5.3909250082277875, 18.695142956129555, -12.304572907796414, -6.5398571898751117, 18.631807413371877, 9.4536969028645768, -13.511273178728333, -10.098213695601105, 16.086137486114445, 18.171369447471893, -2.1734552236459308, -11.782729170896866, 5.849586272815432, 2.8432532912453499, -8.6659364132968726, -9.397193645256646, -6.3510378255402182, 10.834119352361396, -12.567501212291639, -14.398105520628647, 0.5239804902430778, -11.960984222249122, 6.8701999902207866, 8.0199245631006484, 14.269997689580181, 15.2180752462958, -5.4141452527800009, -8.4604656780780214, -10.694272205515562, -12.821403781193764, 8.6812253918746212, 0.4525232549543311, -10.871924654919006, 2.4785398516664845, 12.674109486125982, -4.7531674501584495, -8.0661831358532119, 3.4451825561063716, 8.755949031759954, -9.4833485583637032, -2.0114798466168886, 6.0122157485115482, -10.758596640141253, -13.761354665322369, 8.5905176393054177, -18.228562554601435, 9.080612052222488, 8.0100529390576689, 3.070646795107026, -7.9897143166324804, -5.9493600674042657, -11.682410982429239, 9.9461080066481919, 13.875657245813436, -11.973248443192302, -10.046380635362567, 11.90216103103017, -9.8334952670900346, 9.5612352151746371, 13.116744300854657, 14.890206611587024, -5.1652284438441471, -9.1408609862296188, 0.68131117120729867, 10.105102898176298, 3.0892960928571287, 8.7208655049996171, -8.7314249296659536, 6.2622037924388589, 11.764851162340614, -10.158475697384489, -8.241762229290357, -4.392241536128906, 2.1365025208899553, 12.213135386472439, 10.674973455418831, -5.6136099825764028, 9.2271565795945918, -7.8507177690892025, -10.08053767291975, -6.422447124457614, -2.6002837724789458, 13.401297355087104, -6.8962451976034886, -7.5969203877193712, 15.930628754629025, 14.097561380198398, 6.6046768448215545, 10.60230900465903, -11.02144608625337, -16.832723742932952, 8.4030535324322333, -12.145417589148504, -14.454852580995478, 1.9572939413308439, -9.3989472440312198, -2.5327484722969262, -3.1432884014579705, -13.818082107891763, 7.5956036075988456, 10.968509524909171, 11.885444086327313, -2.3464206973006023, -12.277090696751678, 9.8489528008234171, 0.67512123985906181, -13.143678504215814, 14.094369358052766, 7.4943084657254548, -14.048054835858178, 9.6379845559922277, -3.7260180377250842, -17.784311336615762, -9.9122096142624407, -6.9409869403274822, -4.4694695770167767, -5.582926198616228, -3.1915641871381251, -8.5710422806326072, 12.761174819911322, 1.9876912021969184, -4.3233301507084612, -6.8999907772043469, -15.301865440425326, 10.916938981775766, -12.350602455670384, -10.542931739727027, 8.1739508602352391, 4.3903649389270001, 8.6785615014862216, -1.0832203953721748, 6.8106936608319817, 10.280910758363124, 7.9331359435106927, -6.2680382802730632, 9.3832393897838688, -11.100371066619278, 14.991146890736436, 9.4952786314282243, -12.3279500947281, 4.0471278249600369, 7.6407267357926916, 5.9145188591615749, -1.2642658202804962, 0.99680562205569856, -4.4005432201193422, 4.2794794689942304, 10.246091749207004, -14.172753816473582, 6.284155849638533, -7.4755210690065725, -11.133460612054247, -3.114492056114071, 11.612187785869857, -6.0797169756769698, 10.483978967793448, -7.4498355642649798, -9.6201040952112962, 4.1172134388084691, -1.0727347582503111, 7.5416007802447753, 8.485412175873023, -5.0536124690858752, -4.3415708303883287, -9.8603165390514871, 4.9595291263974532, 11.78565325523018, -8.8417637712915234, -3.3465091650762329, -12.955124625468562, 12.481083523950533, 8.0649722531194925, -7.4942449660127082, -6.930756000836765, -20.146436634823356, -8.2923264891201871, 10.119682922667883, 15.081958191316007, 10.959298710885019, -7.702423224481203, -8.5494236533905532, 11.214983659935584, -0.44116248520876644 }; const char H_4096_8192_3d_detected_data[] = { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 1, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 1, 1, 0, 1, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 0, 1, 0, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 1, 1, 0, 1, 0, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 1, 1, 0, 0, 1, 0, 1, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0, 1, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 1, 1, 0, 1, 0, 1, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 1, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 1, 0, 1, 0, 1, 1, 1, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 1, 1, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 1, 1, 1, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1, 0, 1, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 1, 0, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 1, 1, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 1, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0, 1, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0, 1, 1, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 0, 1, 1, 1, 0, 1, 0, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 1, 1, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 1, 1, 1, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1, 0, 1, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 0, 1, 1, 1, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 1, 1, 0, 1, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 1, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 1, 1, 0, 1, 1, 0, 1, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 1, 0, 1, 1, 1, 0, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 1, 1, 1, 0, 1, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 1, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 1, 0, 1, 1, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 0, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 1, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 0, 0, 1, 0, 1, 1, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 1, 0, 1, 0, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0 }; codec2-1.0.1/src/H_4096_8192_3d.h000066400000000000000000000011121412132000500155110ustar00rootroot00000000000000/* FILE....: H_4096_8192_3d.h Static arrays for LDPC codec H_4096_8192_3d, generated by ldpc_gen_c_h_file.m. */ #define H_4096_8192_3d_NUMBERPARITYBITS 4096 #define H_4096_8192_3d_MAX_ROW_WEIGHT 9 #define H_4096_8192_3d_CODELENGTH 8192 #define H_4096_8192_3d_NUMBERROWSHCOLS 4096 #define H_4096_8192_3d_MAX_COL_WEIGHT 13 #define H_4096_8192_3d_DEC_TYPE 0 #define H_4096_8192_3d_MAX_ITER 100 extern const uint16_t H_4096_8192_3d_H_rows[]; extern const uint16_t H_4096_8192_3d_H_cols[]; extern const float H_4096_8192_3d_input[]; extern const char H_4096_8192_3d_detected_data[]; codec2-1.0.1/src/_kiss_fft_guts.h000066400000000000000000000132521412132000500166100ustar00rootroot00000000000000/* Copyright (c) 2003-2010, Mark Borgerding All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the author nor the names of any contributors may be used to endorse or promote products derived from this software without specific prior written permission. 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 OWNER OR CONTRIBUTORS 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. */ /* kiss_fft.h defines kiss_fft_scalar as either short or a float type and defines typedef struct { kiss_fft_scalar r; kiss_fft_scalar i; }kiss_fft_cpx; */ #include "kiss_fft.h" #include #define MAXFACTORS 32 /* e.g. an fft of length 128 has 4 factors as far as kissfft is concerned 4*4*4*2 */ struct kiss_fft_state{ int nfft; int inverse; int factors[2*MAXFACTORS]; kiss_fft_cpx twiddles[1]; }; /* Explanation of macros dealing with complex math: C_MUL(m,a,b) : m = a*b C_FIXDIV( c , div ) : if a fixed point impl., c /= div. noop otherwise C_SUB( res, a,b) : res = a - b C_SUBFROM( res , a) : res -= a C_ADDTO( res , a) : res += a * */ #ifdef FIXED_POINT #if (FIXED_POINT==32) # define FRACBITS 31 # define SAMPPROD int64_t #define SAMP_MAX 2147483647 #else # define FRACBITS 15 # define SAMPPROD int32_t #define SAMP_MAX 32767 #endif #define SAMP_MIN -SAMP_MAX #if defined(CHECK_OVERFLOW) # define CHECK_OVERFLOW_OP(a,op,b) \ if ( (SAMPPROD)(a) op (SAMPPROD)(b) > SAMP_MAX || (SAMPPROD)(a) op (SAMPPROD)(b) < SAMP_MIN ) { \ fprintf(stderr,"WARNING:overflow @ " __FILE__ "(%d): (%d " #op" %d) = %ld\n",__LINE__,(a),(b),(SAMPPROD)(a) op (SAMPPROD)(b) ); } #endif # define smul(a,b) ( (SAMPPROD)(a)*(b) ) # define sround( x ) (kiss_fft_scalar)( ( (x) + (1<<(FRACBITS-1)) ) >> FRACBITS ) # define S_MUL(a,b) sround( smul(a,b) ) # define C_MUL(m,a,b) \ do{ (m).r = sround( smul((a).r,(b).r) - smul((a).i,(b).i) ); \ (m).i = sround( smul((a).r,(b).i) + smul((a).i,(b).r) ); }while(0) # define DIVSCALAR(x,k) \ (x) = sround( smul( x, SAMP_MAX/k ) ) # define C_FIXDIV(c,div) \ do { DIVSCALAR( (c).r , div); \ DIVSCALAR( (c).i , div); }while (0) # define C_MULBYSCALAR( c, s ) \ do{ (c).r = sround( smul( (c).r , s ) ) ;\ (c).i = sround( smul( (c).i , s ) ) ; }while(0) #else /* not FIXED_POINT*/ # define S_MUL(a,b) ( (a)*(b) ) #define C_MUL(m,a,b) \ do{ (m).r = (a).r*(b).r - (a).i*(b).i;\ (m).i = (a).r*(b).i + (a).i*(b).r; }while(0) # define C_FIXDIV(c,div) /* NOOP */ # define C_MULBYSCALAR( c, s ) \ do{ (c).r *= (s);\ (c).i *= (s); }while(0) #endif #ifndef CHECK_OVERFLOW_OP # define CHECK_OVERFLOW_OP(a,op,b) /* noop */ #endif #define C_ADD( res, a,b)\ do { \ CHECK_OVERFLOW_OP((a).r,+,(b).r)\ CHECK_OVERFLOW_OP((a).i,+,(b).i)\ (res).r=(a).r+(b).r; (res).i=(a).i+(b).i; \ }while(0) #define C_SUB( res, a,b)\ do { \ CHECK_OVERFLOW_OP((a).r,-,(b).r)\ CHECK_OVERFLOW_OP((a).i,-,(b).i)\ (res).r=(a).r-(b).r; (res).i=(a).i-(b).i; \ }while(0) #define C_ADDTO( res , a)\ do { \ CHECK_OVERFLOW_OP((res).r,+,(a).r)\ CHECK_OVERFLOW_OP((res).i,+,(a).i)\ (res).r += (a).r; (res).i += (a).i;\ }while(0) #define C_SUBFROM( res , a)\ do {\ CHECK_OVERFLOW_OP((res).r,-,(a).r)\ CHECK_OVERFLOW_OP((res).i,-,(a).i)\ (res).r -= (a).r; (res).i -= (a).i; \ }while(0) #ifdef FIXED_POINT # define KISS_FFT_COS(phase) floorf(.5+SAMP_MAX * cosf (phase)) # define KISS_FFT_SIN(phase) floorf(.5+SAMP_MAX * sinf (phase)) # define HALF_OF(x) ((x)>>1) #elif defined(USE_SIMD) # define KISS_FFT_COS(phase) _mm_set1_ps( cosf(phase) ) # define KISS_FFT_SIN(phase) _mm_set1_ps( sinf(phase) ) # define HALF_OF(x) ((x)*_mm_set1_ps(.5)) #else # define KISS_FFT_COS(phase) (kiss_fft_scalar) cosf(phase) # define KISS_FFT_SIN(phase) (kiss_fft_scalar) sinf(phase) # define HALF_OF(x) ((x)*.5) #endif #define kf_cexp(x,phase) \ do{ \ (x)->r = KISS_FFT_COS(phase);\ (x)->i = KISS_FFT_SIN(phase);\ }while(0) /* a debugging function */ #define pcpx(c)\ fprintf(stderr,"%g + %gi\n",(double)((c)->r),(double)((c)->i) ) #ifdef KISS_FFT_USE_ALLOCA // define this to allow use of alloca instead of malloc for temporary buffers // Temporary buffers are used in two case: // 1. FFT sizes that have "bad" factors. i.e. not 2,3 and 5 // 2. "in-place" FFTs. Notice the quotes, since kissfft does not really do an in-place transform. #include #define KISS_FFT_TMP_ALLOC(nbytes) alloca(nbytes) #define KISS_FFT_TMP_FREE(ptr) #else #define KISS_FFT_TMP_ALLOC(nbytes) KISS_FFT_MALLOC(nbytes) #define KISS_FFT_TMP_FREE(ptr) KISS_FFT_FREE(ptr) #endif codec2-1.0.1/src/bpf.h000066400000000000000000000024201412132000500143410ustar00rootroot00000000000000#define BPF_N 101 float bpf[]={ 0.002174, 0.003245, 0.002147, 0.001866, 0.002764, 0.000567, -0.001641, -0.000565, -0.002415, -0.005837, -0.003620, -0.002828, -0.006268, -0.002787, 0.001963, -0.001234, 0.001446, 0.009200, 0.005331, 0.003521, 0.011821, 0.006951, -0.002015, 0.005137, 0.001828, -0.013390, -0.007058, -0.003273, -0.020458, -0.014321, 0.001751, -0.012891, -0.009730, 0.018993, 0.008544, 0.000534, 0.035755, 0.029074, -0.001192, 0.030852, 0.030983, -0.029834, -0.009550, 0.011945, -0.081971, -0.082875, 0.000423, -0.133526, -0.211778, 0.182628, 0.514906, 0.182628, -0.211778, -0.133526, 0.000423, -0.082875, -0.081971, 0.011945, -0.009550, -0.029834, 0.030983, 0.030852, -0.001192, 0.029074, 0.035755, 0.000534, 0.008544, 0.018993, -0.009730, -0.012891, 0.001751, -0.014321, -0.020458, -0.003273, -0.007058, -0.013390, 0.001828, 0.005137, -0.002015, 0.006951, 0.011821, 0.003521, 0.005331, 0.009200, 0.001446, -0.001234, 0.001963, -0.002787, -0.006268, -0.002828, -0.003620, -0.005837, -0.002415, -0.000565, -0.001641, 0.000567, 0.002764, 0.001866, 0.002147, 0.003245, 0.002174 }; codec2-1.0.1/src/bpfb.h000066400000000000000000000024241412132000500145070ustar00rootroot00000000000000#define BPFB_N 101 float bpfb[]={ 0.003795, 0.006827, 0.002261, 0.002523, 0.005758, -0.000264, -0.000674, 0.003113, -0.004144, -0.004923, 0.000043, -0.008017, -0.008711, -0.001802, -0.010210, -0.010428, -0.000899, -0.009413, -0.009072, 0.003469, -0.005335, -0.004828, 0.010724, 0.000941, 0.000708, 0.018957, 0.007084, 0.004825, 0.025418, 0.010147, 0.004452, 0.027434, 0.007550, -0.002861, 0.023483, -0.001944, -0.018138, 0.014122, -0.017583, -0.040768, 0.002598, -0.036604, -0.069541, -0.004273, -0.054876, -0.107289, 0.010068, -0.068052, -0.200119, 0.207287, 0.597150, 0.207287, -0.200119, -0.068052, 0.010068, -0.107289, -0.054876, -0.004273, -0.069541, -0.036604, 0.002598, -0.040768, -0.017583, 0.014122, -0.018138, -0.001944, 0.023483, -0.002861, 0.007550, 0.027434, 0.004452, 0.010147, 0.025418, 0.004825, 0.007084, 0.018957, 0.000708, 0.000941, 0.010724, -0.004828, -0.005335, 0.003469, -0.009072, -0.009413, -0.000899, -0.010428, -0.010210, -0.001802, -0.008711, -0.008017, 0.000043, -0.004923, -0.004144, 0.003113, -0.000674, -0.000264, 0.005758, 0.002523, 0.002261, 0.006827, 0.003795 };codec2-1.0.1/src/c2dec.c000066400000000000000000000340431412132000500145530ustar00rootroot00000000000000/*---------------------------------------------------------------------------*\ FILE........: c2dec.c AUTHOR......: David Rowe DATE CREATED: 23/8/2010 Decodes a file of bits to a file of raw speech samples using codec2. \*---------------------------------------------------------------------------*/ /* Copyright (C) 2010 David Rowe All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 2.1, as published by the Free Software Foundation. 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 Lesser General Public License along with this program; if not, see . */ #include "codec2.h" #include "dump.h" #include "c2file.h" #include #include #include #include #include #include #define NONE 0 /* no bit errors */ #define UNIFORM 1 /* random bit errors */ #define TWO_STATE 2 /* Two state error model */ #define UNIFORM_RANGE 3 /* random bit errors over a certain range */ void print_help(const struct option *long_options, int num_opts, char* argv[]); int main(int argc, char *argv[]) { int mode=0; void *codec2; FILE *fin; FILE *fout; FILE *fber = NULL; short *buf; unsigned char *bits; float *softdec_bits; char *bitperchar_bits; int nsam, nbit, nbyte, i, byte, frames, bits_proc, bit_errors, error_mode; int nstart_bit, nend_bit, bit_rate; int state, next_state; float ber, r, burst_length, burst_period, burst_timer, ber_est; unsigned char mask; int natural, softdec, bit, ret, bitperchar; #ifdef DUMP int dump; #endif int report_energy; FILE *f_ratek = NULL; float *user_ratek; int K; char* opt_string = "h:"; struct option long_options[] = { { "ber", required_argument, NULL, 0 }, { "startbit", required_argument, NULL, 0 }, { "endbit", required_argument, NULL, 0 }, { "berfile", required_argument, NULL, 0 }, { "natural", no_argument, &natural, 1 }, { "softdec", no_argument, &softdec, 1 }, { "bitperchar", no_argument, &bitperchar, 1 }, #ifdef DUMP { "dump", required_argument, &dump, 1 }, #endif { "energy", no_argument, NULL, 0 }, { "mlfeat", required_argument, NULL, 0 }, { "loadcb", required_argument, NULL, 0 }, { "loadratek", required_argument, NULL, 0 }, { "nopf", no_argument, NULL, 0 }, { "help", no_argument, NULL, 'h' }, { NULL, no_argument, NULL, 0 } }; int num_opts=sizeof(long_options)/sizeof(struct option); if (argc < 4) print_help(long_options, num_opts, argv); if (strcmp(argv[2], "-") == 0) fin = stdin; else if ( (fin = fopen(argv[2],"rb")) == NULL ) { fprintf(stderr, "Error opening input bit file: %s: %s.\n", argv[2], strerror(errno)); exit(1); } if (strcmp(argv[3], "-") == 0) fout = stdout; else if ( (fout = fopen(argv[3],"wb")) == NULL ) { fprintf(stderr, "Error opening output speech file: %s: %s.\n", argv[3], strerror(errno)); exit(1); } // Attempt to detect a .c2 file with a header struct c2_header in_hdr; char *ext = strrchr(argv[2], '.'); if ((ext != NULL) && (strcmp(ext, ".c2") == 0)) { int nread = fread(&in_hdr,sizeof(in_hdr),1,fin); assert (nread == 1); if (memcmp(in_hdr.magic, c2_file_magic, sizeof(c2_file_magic)) == 0) { fprintf(stderr, "Detected Codec2 file version %d.%d in mode %d\n", in_hdr.version_major, in_hdr.version_minor, in_hdr.mode); mode = in_hdr.mode; } else { fprintf(stderr, "Codec2 file specified but no header detected\n"); // Rewind the input file so we can try to decode // based on command line mode selection fseek(fin,0,SEEK_SET); } /* end if - magic detection */ } else { // If we got here, we need to honor the command line mode if (strcmp(argv[1],"3200") == 0) mode = CODEC2_MODE_3200; else if (strcmp(argv[1],"2400") == 0) mode = CODEC2_MODE_2400; else if (strcmp(argv[1],"1600") == 0) mode = CODEC2_MODE_1600; else if (strcmp(argv[1],"1400") == 0) mode = CODEC2_MODE_1400; else if (strcmp(argv[1],"1300") == 0) mode = CODEC2_MODE_1300; else if (strcmp(argv[1],"1200") == 0) mode = CODEC2_MODE_1200; else if (strcmp(argv[1],"700C") == 0) mode = CODEC2_MODE_700C; else if (strcmp(argv[1],"450") == 0) mode = CODEC2_MODE_450; else if (strcmp(argv[1],"450PWB") == 0) mode = CODEC2_MODE_450PWB; else { fprintf(stderr, "Error in mode: %s. Must be 3200, 2400, 1600, 1400, 1300, 1200, 700C, 450, or 450PWB\n", argv[1]); exit(1); } bit_rate = atoi(argv[1]); }; /* end if - extension / header detection */ error_mode = NONE; ber = 0.0; burst_length = burst_period = 0.0; burst_timer = 0.0; natural = softdec = bitperchar = 0; report_energy = 0; #ifdef DUMP dump = 0; #endif codec2 = codec2_create(mode); assert(codec2 != NULL); nsam = codec2_samples_per_frame(codec2); nbit = codec2_bits_per_frame(codec2); buf = (short*)malloc(nsam*sizeof(short)); nbyte = (nbit + 7) / 8; bits = (unsigned char*)malloc(nbyte*sizeof(char)); softdec_bits = (float*)malloc(nbit*sizeof(float)); bitperchar_bits = (char*)malloc(nbit*sizeof(char)); frames = bit_errors = bits_proc = 0; nstart_bit = 0; nend_bit = nbit-1; while(1) { int option_index = 0; int opt = getopt_long(argc, argv, opt_string, long_options, &option_index); if (opt == -1) break; switch (opt) { case 0: if(strcmp(long_options[option_index].name, "ber") == 0) { ber = atof(optarg); error_mode = UNIFORM; } else if(strcmp(long_options[option_index].name, "startbit") == 0) { nstart_bit = atoi(optarg); } else if(strcmp(long_options[option_index].name, "endbit") == 0) { nend_bit = atoi(optarg); } else if(strcmp(long_options[option_index].name, "berfile") == 0) { if ((fber = fopen(optarg,"wt")) == NULL) { fprintf(stderr, "Error opening BER file: %s %s.\n", optarg, strerror(errno)); exit(1); } } #ifdef DUMP else if(strcmp(long_options[option_index].name, "dump") == 0) { if (dump) dump_on(optarg); } #endif else if (strcmp(long_options[option_index].name, "energy") == 0) { report_energy = 1; } else if (strcmp(long_options[option_index].name, "loadcb") == 0) { /* load VQ stage (700C only) */ //fprintf(stderr, "%s\n", optarg+1); codec2_load_codebook(codec2, atoi(optarg)-1, argv[optind]); } else if (strcmp(long_options[option_index].name, "loadratek") == 0) { /* load rate K vectors (by passing quantisation) for 700C VQ tests */ fprintf(stderr, "%s\n", optarg); f_ratek = fopen(optarg, "rb"); assert(f_ratek != NULL); user_ratek = codec2_enable_user_ratek(codec2, &K); } else if (strcmp(long_options[option_index].name, "nopf") == 0) { codec2_700c_post_filter(codec2, 0); } else if (strcmp(long_options[option_index].name, "mlfeat") == 0) { /* dump machine learning features (700C only) */ codec2_open_mlfeat(codec2, optarg, NULL); } break; case 'h': print_help(long_options, num_opts, argv); break; default: /* This will never be reached */ break; } } assert(nend_bit <= nbit); codec2_set_natural_or_gray(codec2, !natural); //printf("%d %d\n", nstart_bit, nend_bit); //fprintf(stderr, "softdec: %d natural: %d\n", softdec, natural); if (softdec) { ret = (fread(softdec_bits, sizeof(float), nbit, fin) == (size_t)nbit); } if (bitperchar) { ret = (fread(bitperchar_bits, sizeof(char), nbit, fin) == (size_t)nbit); } if (!softdec && !bitperchar) { ret = (fread(bits, sizeof(char), nbyte, fin) == (size_t)nbyte); } while(ret) { frames++; // apply bit errors, MSB of byte 0 is bit 0 in frame, only works in packed mode if ((error_mode == UNIFORM) || (error_mode == UNIFORM_RANGE)) { assert(softdec == 0); for(i=nstart_bit; i (burst_period - burst_length)) next_state = 1; break; case 1: /* burst error state - 50% bit error rate */ for(i=nstart_bit; i burst_period) { burst_timer = 0.0; next_state = 0; } break; } state = next_state; } if (fber != NULL) { if (fread(&ber_est, sizeof(float), 1, fber) != 1) { fprintf(stderr, "ran out of BER estimates!\n"); exit(1); } //fprintf(stderr, "ber_est: %f\n", ber_est); } else ber_est = 0.0; if (softdec) { /* pack bits, MSB received first */ bit = 7; byte = 0; memset(bits, 0, nbyte); for(i=0; i. */ #include "codec2.h" #include "c2file.h" #include #include #include #include #include int main(int argc, char *argv[]) { int mode; void *codec2; FILE *fin; FILE *fout; short *buf; unsigned char *bits; int nsam, nbit, nbyte, gray, softdec, bitperchar; float *unpacked_bits_float; char *unpacked_bits_char; int bit, byte,i; int report_var = 0; int eq = 0; if (argc < 4) { printf("usage: c2enc 3200|2400|1600|1400|1300|1200|700C|450|450PWB InputRawspeechFile OutputBitFile [--natural] [--softdec] [--bitperchar] [--mlfeat f32File modelFile] [--loadcb stageNum Filename] [--var] [--eq]\n"); printf("e.g. (headerless) c2enc 1300 ../raw/hts1a.raw hts1a.bin\n"); printf("e.g. (with header to detect mode) c2enc 1300 ../raw/hts1a.raw hts1a.c2\n"); exit(1); } if (strcmp(argv[1],"3200") == 0) mode = CODEC2_MODE_3200; else if (strcmp(argv[1],"2400") == 0) mode = CODEC2_MODE_2400; else if (strcmp(argv[1],"1600") == 0) mode = CODEC2_MODE_1600; else if (strcmp(argv[1],"1400") == 0) mode = CODEC2_MODE_1400; else if (strcmp(argv[1],"1300") == 0) mode = CODEC2_MODE_1300; else if (strcmp(argv[1],"1200") == 0) mode = CODEC2_MODE_1200; else if (strcmp(argv[1],"700C") == 0) mode = CODEC2_MODE_700C; else if (strcmp(argv[1],"450") == 0) mode = CODEC2_MODE_450; else if (strcmp(argv[1],"450PWB") == 0) mode = CODEC2_MODE_450; else { fprintf(stderr, "Error in mode: %s. Must be 3200, 2400, 1600, 1400, 1300, 1200, 700C, 450, 450PWB or WB\n", argv[1]); exit(1); } if (strcmp(argv[2], "-") == 0) fin = stdin; else if ( (fin = fopen(argv[2],"rb")) == NULL ) { fprintf(stderr, "Error opening input speech file: %s: %s.\n", argv[2], strerror(errno)); exit(1); } if (strcmp(argv[3], "-") == 0) fout = stdout; else if ( (fout = fopen(argv[3],"wb")) == NULL ) { fprintf(stderr, "Error opening output compressed bit file: %s: %s.\n", argv[3], strerror(errno)); exit(1); } // Write a header if we're writing to a .c2 file char *ext = strrchr(argv[3], '.'); if (ext != NULL) { if (strcmp(ext, ".c2") == 0) { struct c2_header out_hdr; memcpy(out_hdr.magic,c2_file_magic,sizeof(c2_file_magic)); out_hdr.mode = mode; out_hdr.version_major = CODEC2_VERSION_MAJOR; out_hdr.version_minor = CODEC2_VERSION_MINOR; // TODO: Handle flags (this block needs to be moved down) out_hdr.flags = 0; fwrite(&out_hdr,sizeof(out_hdr),1,fout); }; }; codec2 = codec2_create(mode); nsam = codec2_samples_per_frame(codec2); nbit = codec2_bits_per_frame(codec2); buf = (short*)malloc(nsam*sizeof(short)); nbyte = (nbit + 7) / 8; bits = (unsigned char*)malloc(nbyte*sizeof(char)); unpacked_bits_float = (float*)malloc(nbit*sizeof(float)); unpacked_bits_char = (char*)malloc(nbit*sizeof(char)); gray = 1; softdec = 0; bitperchar = 0; for (i=4; i> bit) & 0x1); unpacked_bits_char[i] = (bits[byte] >> bit) & 0x1; bit--; if (bit < 0) { bit = 7; byte++; } } if (softdec) { fwrite(unpacked_bits_float, sizeof(float), nbit, fout); } if (bitperchar) { fwrite(unpacked_bits_char, sizeof(char), nbit, fout); } } else fwrite(bits, sizeof(char), nbyte, fout); // if this is in a pipeline, we probably don't want the usual // buffering to occur if (fout == stdout) fflush(stdout); } if (report_var) { float var = codec2_get_var(codec2); fprintf(stderr, "%s var: %5.2f std: %5.2f\n", argv[2], var, sqrt(var)); } codec2_destroy(codec2); free(buf); free(bits); free(unpacked_bits_float); free(unpacked_bits_char); fclose(fin); fclose(fout); return 0; } codec2-1.0.1/src/c2file.h000066400000000000000000000007121412132000500147400ustar00rootroot00000000000000/*---------------------------------------------------------------------------*\ FILE........: c2file.h AUTHOR......: Kevin Otte DATE CREATED: 2017-08-01 Header structures for Codec2 file storage \*---------------------------------------------------------------------------*/ const char c2_file_magic[3] = {0xc0, 0xde, 0xc2}; struct c2_header { char magic[3]; char version_major; char version_minor; char mode; char flags; }; codec2-1.0.1/src/c2sim.c000066400000000000000000001207001412132000500146040ustar00rootroot00000000000000/*---------------------------------------------------------------------------*\ FILE........: c2sim.c AUTHOR......: David Rowe DATE CREATED: 20/8/2010 Codec2 simulation. Combines encoder and decoder and allows switching in and out various algorithms and quantisation steps. Used for algorithm development. \*---------------------------------------------------------------------------*/ /* Copyright (C) 2009 David Rowe All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 2.1, as published by the Free Software Foundation. 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 Lesser General Public License along with this program; if not, see . */ #include #include #include #include #include #include #include #include #include "defines.h" #include "sine.h" #include "nlp.h" #include "dump.h" #include "lpc.h" #include "lsp.h" #include "quantise.h" #include "phase.h" #include "postfilter.h" #include "interp.h" #include "bpf.h" #include "bpfb.h" #include "newamp1.h" #include "lpcnet_freq.h" void synth_one_frame(int n_samp, codec2_fftr_cfg fftr_inv_cfg, short buf[], MODEL *model, float Sn_[], float Pn[], int prede, float *de_mem, float gain); void print_help(const struct option *long_options, int num_opts, char* argv[]); #define N_SAMP n_samp /* quick fix for run time sample rate selection */ /*---------------------------------------------------------------------------*\ MAIN \*---------------------------------------------------------------------------*/ int main(int argc, char *argv[]) { int Fs = 8000; int set_fs; int lpc_model = 0, order = LPC_ORD; int lsp = 0, lspd = 0, lspvq = 0; int lspjvm = 0; int prede = 0; int postfilt; int hand_voicing = 0, hi = 0, simlpcpf = 0, modelin=0, modelout=0; int lpcpf = 0; FILE *fvoicing = 0; int dec; int decimate = 1; int amread, Woread, pahw; int awread; int hmread; int phase0 = 0; int scalar_quant_Wo_e = 0; int scalar_quant_Wo_e_low = 0; int vector_quant_Wo_e = 0; int dump_pitch_e = 0; float gain = 1.0; int bpf_en = 0; int bpfb_en = 0; FILE *fam = NULL, *fWo = NULL; FILE *faw = NULL; FILE *fhm = NULL; FILE *fjvm = NULL; FILE *flspEWov = NULL; FILE *ften_ms_centre = NULL; FILE *fmodelout = NULL; FILE *fmodelin = NULL; #ifdef DUMP int dump; #endif char out_file[MAX_STR]; FILE *fout = NULL; /* output speech file */ int rateK = 0, newamp1vq = 0, rate_K_dec = 0, perframe=0; int bands = 0, bands_lower_en; float bands_lower = -1E32; int K = 20; float framelength_s = N_S; int lspEWov = 0, rateKWov = 0, first = 0; FILE *frateKWov = NULL; int ten_ms_centre = 0; FILE *fphasenn = NULL; FILE *frateK = NULL; FILE *frateKin = NULL; int rateKout, rateKin; FILE *fbands = NULL; int bands_resample = 0; char* opt_string = "ho:"; struct option long_options[] = { { "Fs", required_argument, &set_fs, 1 }, { "rateK", no_argument, &rateK, 1 }, { "perframe", no_argument, &perframe, 1 }, { "newamp1vq", no_argument, &newamp1vq, 1 }, { "rateKdec", required_argument, &rate_K_dec, 1 }, { "rateKout", required_argument, &rateKout, 1 }, { "rateKin", required_argument, &rateKin, 1 }, { "bands",required_argument, &bands, 1 }, { "bands_lower",required_argument, &bands_lower_en, 1 }, { "bands_resample", no_argument, &bands_resample, 1 }, { "lpc", required_argument, &lpc_model, 1 }, { "lsp", no_argument, &lsp, 1 }, { "lspd", no_argument, &lspd, 1 }, { "lspvq", no_argument, &lspvq, 1 }, { "lspjvm", no_argument, &lspjvm, 1 }, { "phase0", no_argument, &phase0, 1 }, { "postfilter", no_argument, &postfilt, 1 }, { "hand_voicing", required_argument, &hand_voicing, 1 }, { "dec", required_argument, &dec, 1 }, { "hi", no_argument, &hi, 1 }, { "simlpcpf", no_argument, &simlpcpf, 1 }, { "lpcpf", no_argument, &lpcpf, 1 }, { "prede", no_argument, &prede, 1 }, { "dump_pitch_e", required_argument, &dump_pitch_e, 1 }, { "sq_pitch_e", no_argument, &scalar_quant_Wo_e, 1 }, { "sq_pitch_e_low", no_argument, &scalar_quant_Wo_e_low, 1 }, { "vq_pitch_e", no_argument, &vector_quant_Wo_e, 1 }, { "rate", required_argument, NULL, 0 }, { "gain", required_argument, NULL, 0 }, { "bpf", no_argument, &bpf_en, 1 }, { "bpfb", no_argument, &bpfb_en, 1 }, { "amread", required_argument, &amread, 1 }, { "hmread", required_argument, &hmread, 1 }, { "awread", required_argument, &awread, 1 }, { "Woread", required_argument, &Woread, 1 }, { "pahw", required_argument, &pahw, 1 }, { "lspEWov", required_argument, &lspEWov, 1 }, { "rateKWov", required_argument, &rateKWov, 1 }, { "first", no_argument, &first, 1 }, { "ten_ms_centre", required_argument, &ten_ms_centre, 1 }, { "framelength_s", required_argument, NULL, 0 }, { "modelout", required_argument, &modelout, 1 }, { "modelin", required_argument, &modelin, 1 }, #ifdef DUMP { "dump", required_argument, &dump, 1 }, #endif { "help", no_argument, NULL, 'h' }, { NULL, no_argument, NULL, 0 } }; int num_opts=sizeof(long_options)/sizeof(struct option); /*----------------------------------------------------------------*\ Interpret Command Line Arguments \*----------------------------------------------------------------*/ if (argc < 2) { print_help(long_options, num_opts, argv); } while(1) { int option_index = 0; int opt = getopt_long(argc, argv, opt_string, long_options, &option_index); if (opt == -1) break; switch (opt) { case 0: if(strcmp(long_options[option_index].name, "Fs") == 0) { Fs= atoi(optarg); if((Fs != 8000) && (Fs != 16000)) { fprintf(stderr, "Error Fs must be 8000 or 16000\n"); exit(1); } } else if(strcmp(long_options[option_index].name, "lpc") == 0) { order = atoi(optarg); #ifdef DUMP } else if(strcmp(long_options[option_index].name, "dump") == 0) { if (dump) dump_on(optarg); #endif } else if(strcmp(long_options[option_index].name, "lsp") == 0 || strcmp(long_options[option_index].name, "lspd") == 0 || strcmp(long_options[option_index].name, "lspvq") == 0) { assert(order == LPC_ORD); } else if(strcmp(long_options[option_index].name, "rateKdec") == 0) { rate_K_dec = atoi(optarg); fprintf(stderr, "rate_K_dec: %d\n", rate_K_dec); } else if(strcmp(long_options[option_index].name, "rateKout") == 0) { /* read model records from file or stdin */ if ((frateK = fopen(optarg,"wb")) == NULL) { fprintf(stderr, "Error opening output rateK file: %s: %s\n", optarg, strerror(errno)); exit(1); } fprintf(stderr, "each record is %d bytes\n", (int)(K*sizeof(float))); } else if(strcmp(long_options[option_index].name, "rateKin") == 0) { /* read model records from file or stdin */ if ((frateKin = fopen(optarg,"rb")) == NULL) { fprintf(stderr, "Error opening input rateK file: %s: %s\n", optarg, strerror(errno)); exit(1); } fprintf(stderr, "each record is %d bytes\n", (int)(K*sizeof(float))); } else if(strcmp(long_options[option_index].name, "bands") == 0) { /* write mel spaced band energies to file or stdout */ if ((fbands = fopen(optarg,"wb")) == NULL) { fprintf(stderr, "Error opening bands file: %s: %s\n", optarg, strerror(errno)); exit(1); } } else if(strcmp(long_options[option_index].name, "bands_lower") == 0) { bands_lower = atof(optarg); fprintf(stderr, "bands_lower: %f\n", bands_lower); } else if(strcmp(long_options[option_index].name, "dec") == 0) { decimate = atoi(optarg); if ((decimate != 2) && (decimate != 3) && (decimate != 4)) { fprintf(stderr, "Error in --dec, must be 2, 3, or 4\n"); exit(1); } if (!phase0) { fprintf(stderr, "needs --phase0 to resample phase when using --dec\n"); exit(1); } if (!lpc_model) { fprintf(stderr, "needs --lpc [order] to resample amplitudes when using --dec\n"); exit(1); } } else if(strcmp(long_options[option_index].name, "hand_voicing") == 0) { if ((fvoicing = fopen(optarg,"rt")) == NULL) { fprintf(stderr, "Error opening voicing file: %s: %s.\n", optarg, strerror(errno)); exit(1); } } else if(strcmp(long_options[option_index].name, "Woread") == 0) { if ((fWo = fopen(optarg,"rb")) == NULL) { fprintf(stderr, "Error opening float Wo file: %s: %s.\n", optarg, strerror(errno)); exit(1); } } else if(strcmp(long_options[option_index].name, "amread") == 0) { if ((fam = fopen(optarg,"rb")) == NULL) { fprintf(stderr, "Error opening float Am file: %s: %s.\n", optarg, strerror(errno)); exit(1); } } else if(strcmp(long_options[option_index].name, "hmread") == 0) { if ((fhm = fopen(optarg,"rb")) == NULL) { fprintf(stderr, "Error opening float Hm file: %s: %s.\n", optarg, strerror(errno)); exit(1); } } else if(strcmp(long_options[option_index].name, "awread") == 0) { if ((faw = fopen(optarg,"rb")) == NULL) { fprintf(stderr, "Error opening float Aw file: %s: %s.\n", optarg, strerror(errno)); exit(1); } } else if(strcmp(long_options[option_index].name, "dump_pitch_e") == 0) { if ((fjvm = fopen(optarg,"wt")) == NULL) { fprintf(stderr, "Error opening pitch & energy dump file: %s: %s.\n", optarg, strerror(errno)); exit(1); } } else if(strcmp(long_options[option_index].name, "gain") == 0) { gain = atof(optarg); } else if(strcmp(long_options[option_index].name, "framelength_s") == 0) { framelength_s = atof(optarg); } else if(strcmp(long_options[option_index].name, "pahw") == 0) { /* set up a bunch of arguments instead of having to enter them on cmd line every time */ phase0 = postfilt = amread = hmread = Woread = 1; char file_name[MAX_STR]; sprintf(file_name, "%s_am.out", optarg); fprintf(stderr, "reading %s", file_name); if ((fam = fopen(file_name,"rb")) == NULL) { fprintf(stderr, "Error opening float Am file: %s: %s.\n", file_name, strerror(errno)); exit(1); } sprintf(file_name, "%s_hm.out", optarg); fprintf(stderr, " %s", file_name); if ((fhm = fopen(file_name,"rb")) == NULL) { fprintf(stderr, "Error opening float Hm file: %s: %s.\n", file_name, strerror(errno)); exit(1); } sprintf(file_name, "%s_Wo.out", optarg); fprintf(stderr, " %s\n", file_name); if ((fWo = fopen(file_name,"rb")) == NULL) { fprintf(stderr, "Error opening float Wo file: %s: %s.\n", file_name, strerror(errno)); exit(1); } } else if(strcmp(long_options[option_index].name, "lspEWov") == 0) { /* feature file for deep learning experiments */ lpc_model = 1; phase0 = 1; if ((flspEWov = fopen(optarg,"wb")) == NULL) { fprintf(stderr, "Error opening lspEWov float file: %s: %s\n", optarg, strerror(errno)); exit(1); } } else if(strcmp(long_options[option_index].name, "rateKWov") == 0) { /* feature file for deep learning experiments */ rateK = 1; newamp1vq = 1; if ((frateKWov = fopen(optarg,"wb")) == NULL) { fprintf(stderr, "Error opening rateKWov float file: %s: %s\n", optarg, strerror(errno)); exit(1); } } else if(strcmp(long_options[option_index].name, "ten_ms_centre") == 0) { /* dump 10ms of audio centred on analysis frame to check time alignment with 16 kHz source audio */ ten_ms_centre = 1; if ((ften_ms_centre = fopen(optarg,"wb")) == NULL) { fprintf(stderr, "Error opening ten_ms_centre short file: %s: %s\n", optarg, strerror(errno)); exit(1); } } else if(strcmp(long_options[option_index].name, "modelout") == 0) { /* write model records to file or stdout */ modelout = 1; if (strcmp(optarg, "-") == 0) fmodelout = stdout; else if ((fmodelout = fopen(optarg,"wb")) == NULL) { fprintf(stderr, "Error opening modelout file: %s: %s\n", optarg, strerror(errno)); exit(1); } fprintf(stderr, "each model record is %d bytes\n", (int)sizeof(MODEL)); } else if(strcmp(long_options[option_index].name, "modelin") == 0) { /* read model records from file or stdin */ modelin = 1; if (strcmp(optarg, "-") == 0) fmodelin = stdin; else if ((fmodelin = fopen(optarg,"rb")) == NULL) { fprintf(stderr, "Error opening modelin file: %s: %s\n", optarg, strerror(errno)); exit(1); } fprintf(stderr, "each model record is %d bytes\n", (int)sizeof(MODEL)); } else if(strcmp(long_options[option_index].name, "rate") == 0) { if(strcmp(optarg,"3200") == 0) { lpc_model = 1; scalar_quant_Wo_e = 1; lspd = 1; phase0 = 1; postfilt = 1; decimate = 1; lpcpf = 1; } else if(strcmp(optarg,"2400") == 0) { lpc_model = 1; vector_quant_Wo_e = 1; lsp = 1; phase0 = 1; postfilt = 1; decimate = 2; lpcpf = 1; } else if(strcmp(optarg,"1400") == 0) { lpc_model = 1; vector_quant_Wo_e = 1; lsp = 1; phase0 = 1; postfilt = 1; decimate = 4; lpcpf = 1; } else if(strcmp(optarg,"1300") == 0) { lpc_model = 1; scalar_quant_Wo_e = 1; lsp = 1; phase0 = 1; postfilt = 1; decimate = 4; lpcpf = 1; } else if(strcmp(optarg,"1200") == 0) { lpc_model = 1; scalar_quant_Wo_e = 1; lspjvm = 1; phase0 = 1; postfilt = 1; decimate = 4; lpcpf = 1; } else { fprintf(stderr, "Error: invalid output rate (3200|2400|1400|1200) %s\n", optarg); exit(1); } } break; case 'h': print_help(long_options, num_opts, argv); break; case 'o': if (strcmp(optarg, "-") == 0) fout = stdout; else if ((fout = fopen(optarg,"wb")) == NULL) { fprintf(stderr, "Error opening output speech file: %s: %s.\n", optarg, strerror(errno)); exit(1); } strcpy(out_file,optarg); break; default: /* This will never be reached */ break; } } /* Input file */ FILE *fin; /* input speech file */ if (strcmp(argv[optind], "-") == 0) fin = stdin; else if ((fin = fopen(argv[optind],"rb")) == NULL) { fprintf(stderr, "Error opening input speech file: %s: %s.\n", argv[optind], strerror(errno)); exit(1); } C2CONST c2const = c2const_create(Fs, framelength_s); int n_samp = c2const.n_samp; int m_pitch = c2const.m_pitch; short buf[N_SAMP]; /* input/output buffer */ float buf_float[N_SAMP]; float Sn[m_pitch]; /* float input speech samples */ float Sn_pre[m_pitch]; /* pre-emphasised input speech samples */ COMP Sw[FFT_ENC]; /* DFT of Sn[] */ codec2_fft_cfg fft_fwd_cfg; codec2_fftr_cfg fftr_fwd_cfg; codec2_fftr_cfg fftr_inv_cfg; float w[m_pitch]; /* time domain hamming window */ float W[FFT_ENC]; /* DFT of w[] */ MODEL model; float Pn[2*N_SAMP]; /* trapezoidal synthesis window */ float Sn_[2*N_SAMP]; /* synthesised speech */ int i,m; /* loop variable */ int frames; float prev_f0; float pitch; float snr; float sum_snr; float pre_mem = 0.0, de_mem = 0.0; float ak[1+order]; // COMP Sw_[FFT_ENC]; // COMP Ew[FFT_ENC]; float ex_phase[MAX_AMP+1]; float bg_est = 0.0; MODEL prev_model; float lsps[order]; float e, prev_e; int lsp_indexes[order]; float lsps_[order]; float Woe_[2]; float lsps_dec[4][order], e_dec[4], weight, weight_inc, ak_dec[4][order]; MODEL model_dec[4], prev_model_dec; float prev_lsps_dec[order], prev_e_dec; void *nlp_states; float hpf_states[2]; #if 0 struct PEXP *pexp = NULL; struct AEXP *aexp = NULL; #endif float bpf_buf[BPF_N+N_SAMP]; COMP Aw[FFT_ENC]; COMP H[MAX_AMP]; for(i=0; i bands_lower) assert(fwrite(bandE, sizeof(float), nbands, fbands) == nbands); // optionally reconstruct [Am} by linear interpolation of band energies, // this doesn't sound very Good if (bands_resample) resample_rate_L(&c2const, &model, &bandE[1], &freqkHz[1], nbands-2); } /*------------------------------------------------------------*\ Optional newamp1 simulation, as used in 700C \*------------------------------------------------------------*/ if (rateK) { float rate_K_vec[K]; resample_const_rate_f(&c2const, &model, rate_K_vec, rate_K_sample_freqs_kHz, K); if (frateK != NULL) assert(fwrite(rate_K_vec, sizeof(float), K, frateK) == K); if (frateKin != NULL) { assert(fread(rate_K_vec, sizeof(float), K, frateKin) == K); /* apply newamp1 postfilter - this helped male samples with VQVAE work */ float sum = 0.0; for(int k=0; k bands_lower) fwrite(&model_dec[i],sizeof(MODEL),1,fmodelout); } else fwrite(&model_dec[i],sizeof(MODEL),1,fmodelout); } } /* update memories for next frame ----------------------------*/ prev_model_dec = model_dec[decimate-1]; prev_e_dec = e_dec[decimate-1]; for(i=0; i 32767.0) buf[i] = 32767; else if (Sn_[i] < -32767.0) buf[i] = -32767; else buf[i] = Sn_[i]; } } void print_help(const struct option* long_options, int num_opts, char* argv[]) { int i; char *option_parameters; fprintf(stderr, "\nCodec2 - low bit rate speech codec - Simulation Program\n" "\thttp://rowetel.com/codec2.html\n\n" "usage: %s [OPTIONS] \n\n" "Options:\n" "\t-o \n", argv[0]); for(i=0; i. */ #include #include #include #include #include #include #include "defines.h" #include "codec2_fft.h" #include "sine.h" #include "nlp.h" #include "dump.h" #include "lpc.h" #include "quantise.h" #include "phase.h" #include "interp.h" #include "postfilter.h" #include "codec2.h" #include "lsp.h" #include "newamp2.h" #include "codec2_internal.h" #include "machdep.h" #include "bpf.h" #include "bpfb.h" #include "c2wideband.h" #include "debug_alloc.h" /*---------------------------------------------------------------------------* \ FUNCTION HEADERS \*---------------------------------------------------------------------------*/ void analyse_one_frame(struct CODEC2 *c2, MODEL *model, short speech[]); void synthesise_one_frame(struct CODEC2 *c2, short speech[], MODEL *model, COMP Aw[], float gain); void codec2_encode_3200(struct CODEC2 *c2, unsigned char * bits, short speech[]); void codec2_decode_3200(struct CODEC2 *c2, short speech[], const unsigned char * bits); void codec2_encode_2400(struct CODEC2 *c2, unsigned char * bits, short speech[]); void codec2_decode_2400(struct CODEC2 *c2, short speech[], const unsigned char * bits); void codec2_encode_1600(struct CODEC2 *c2, unsigned char * bits, short speech[]); void codec2_decode_1600(struct CODEC2 *c2, short speech[], const unsigned char * bits); void codec2_encode_1400(struct CODEC2 *c2, unsigned char * bits, short speech[]); void codec2_decode_1400(struct CODEC2 *c2, short speech[], const unsigned char * bits); void codec2_encode_1300(struct CODEC2 *c2, unsigned char * bits, short speech[]); void codec2_decode_1300(struct CODEC2 *c2, short speech[], const unsigned char * bits, float ber_est); void codec2_encode_1200(struct CODEC2 *c2, unsigned char * bits, short speech[]); void codec2_decode_1200(struct CODEC2 *c2, short speech[], const unsigned char * bits); void codec2_encode_700c(struct CODEC2 *c2, unsigned char * bits, short speech[]); void codec2_decode_700c(struct CODEC2 *c2, short speech[], const unsigned char * bits); void codec2_encode_450(struct CODEC2 *c2, unsigned char * bits, short speech[]); void codec2_decode_450(struct CODEC2 *c2, short speech[], const unsigned char * bits); void codec2_decode_450pwb(struct CODEC2 *c2, short speech[], const unsigned char * bits); static void ear_protection(float in_out[], int n); /*---------------------------------------------------------------------------*\ FUNCTIONS \*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*\ FUNCTION....: codec2_create AUTHOR......: David Rowe DATE CREATED: 21/8/2010 Create and initialise an instance of the codec. Returns a pointer to the codec states or NULL on failure. One set of states is sufficient for a full duuplex codec (i.e. an encoder and decoder). You don't need separate states for encoders and decoders. See c2enc.c and c2dec.c for examples. \*---------------------------------------------------------------------------*/ //Don't create CODEC2_MODE_450PWB for Encoding as it has undefined behavior ! struct CODEC2 * codec2_create(int mode) { struct CODEC2 *c2; int i,l; // ALL POSSIBLE MODES MUST BE CHECKED HERE! // we test if the desired mode is enabled at compile time // and return NULL if not if (false == ( CODEC2_MODE_ACTIVE(CODEC2_MODE_3200, mode) || CODEC2_MODE_ACTIVE(CODEC2_MODE_2400, mode) || CODEC2_MODE_ACTIVE(CODEC2_MODE_1600, mode) || CODEC2_MODE_ACTIVE(CODEC2_MODE_1400, mode) || CODEC2_MODE_ACTIVE(CODEC2_MODE_1300, mode) || CODEC2_MODE_ACTIVE(CODEC2_MODE_1200, mode) || CODEC2_MODE_ACTIVE(CODEC2_MODE_700C, mode) || CODEC2_MODE_ACTIVE(CODEC2_MODE_450, mode) || CODEC2_MODE_ACTIVE(CODEC2_MODE_450PWB, mode) ) ) { return NULL; } c2 = (struct CODEC2*)MALLOC(sizeof(struct CODEC2)); if (c2 == NULL) return NULL; c2->mode = mode; /* store constants in a few places for convenience */ if (CODEC2_MODE_ACTIVE(CODEC2_MODE_450PWB, mode) == 0) { c2->c2const = c2const_create(8000, N_S); }else{ c2->c2const = c2const_create(16000, N_S); } c2->Fs = c2->c2const.Fs; int n_samp = c2->n_samp = c2->c2const.n_samp; int m_pitch = c2->m_pitch = c2->c2const.m_pitch; c2->Pn = (float*)MALLOC(2*n_samp*sizeof(float)); if (c2->Pn == NULL) { return NULL; } c2->Sn_ = (float*)MALLOC(2*n_samp*sizeof(float)); if (c2->Sn_ == NULL) { FREE(c2->Pn); return NULL; } c2->w = (float*)MALLOC(m_pitch*sizeof(float)); if (c2->w == NULL) { FREE(c2->Pn); FREE(c2->Sn_); return NULL; } c2->Sn = (float*)MALLOC(m_pitch*sizeof(float)); if (c2->Sn == NULL) { FREE(c2->Pn); FREE(c2->Sn_); FREE(c2->w); return NULL; } for(i=0; iSn[i] = 1.0; c2->hpf_states[0] = c2->hpf_states[1] = 0.0; for(i=0; i<2*n_samp; i++) c2->Sn_[i] = 0; c2->fft_fwd_cfg = codec2_fft_alloc(FFT_ENC, 0, NULL, NULL); c2->fftr_fwd_cfg = codec2_fftr_alloc(FFT_ENC, 0, NULL, NULL); make_analysis_window(&c2->c2const, c2->fft_fwd_cfg, c2->w,c2->W); make_synthesis_window(&c2->c2const, c2->Pn); c2->fftr_inv_cfg = codec2_fftr_alloc(FFT_DEC, 1, NULL, NULL); c2->prev_f0_enc = 1/P_MAX_S; c2->bg_est = 0.0; c2->ex_phase = 0.0; for(l=1; l<=MAX_AMP; l++) c2->prev_model_dec.A[l] = 0.0; c2->prev_model_dec.Wo = TWO_PI/c2->c2const.p_max; c2->prev_model_dec.L = PI/c2->prev_model_dec.Wo; c2->prev_model_dec.voiced = 0; for(i=0; iprev_lsps_dec[i] = i*PI/(LPC_ORD+1); } c2->prev_e_dec = 1; c2->nlp = nlp_create(&c2->c2const); if (c2->nlp == NULL) { return NULL; } c2->lpc_pf = 1; c2->bass_boost = 1; c2->beta = LPCPF_BETA; c2->gamma = LPCPF_GAMMA; c2->xq_enc[0] = c2->xq_enc[1] = 0.0; c2->xq_dec[0] = c2->xq_dec[1] = 0.0; c2->smoothing = 0; c2->se = 0.0; c2->nse = 0; c2->user_rate_K_vec_no_mean_ = NULL; c2->post_filter_en = 1; c2->bpf_buf = (float*)MALLOC(sizeof(float)*(BPF_N+4*c2->n_samp)); assert(c2->bpf_buf != NULL); for(i=0; in_samp; i++) c2->bpf_buf[i] = 0.0; c2->softdec = NULL; c2->gray = 1; /* newamp1 initialisation */ if ( CODEC2_MODE_ACTIVE(CODEC2_MODE_700C, c2->mode)) { mel_sample_freqs_kHz(c2->rate_K_sample_freqs_kHz, NEWAMP1_K, ftomel(200.0), ftomel(3700.0) ); int k; for(k=0; kprev_rate_K_vec_[k] = 0.0; c2->eq[k] = 0.0; } c2->eq_en = 0; c2->Wo_left = 0.0; c2->voicing_left = 0;; c2->phase_fft_fwd_cfg = codec2_fft_alloc(NEWAMP1_PHASE_NFFT, 0, NULL, NULL); c2->phase_fft_inv_cfg = codec2_fft_alloc(NEWAMP1_PHASE_NFFT, 1, NULL, NULL); } /* newamp2 initialisation */ if ( CODEC2_MODE_ACTIVE(CODEC2_MODE_450, c2->mode)) { n2_mel_sample_freqs_kHz(c2->n2_rate_K_sample_freqs_kHz, NEWAMP2_K); int k; for(k=0; kn2_prev_rate_K_vec_[k] = 0.0; } c2->Wo_left = 0.0; c2->voicing_left = 0;; c2->phase_fft_fwd_cfg = codec2_fft_alloc(NEWAMP2_PHASE_NFFT, 0, NULL, NULL); c2->phase_fft_inv_cfg = codec2_fft_alloc(NEWAMP2_PHASE_NFFT, 1, NULL, NULL); } /* newamp2 PWB initialisation */ if ( CODEC2_MODE_ACTIVE(CODEC2_MODE_450PWB, c2->mode)) { n2_mel_sample_freqs_kHz(c2->n2_pwb_rate_K_sample_freqs_kHz, NEWAMP2_16K_K); int k; for(k=0; kn2_pwb_prev_rate_K_vec_[k] = 0.0; } c2->Wo_left = 0.0; c2->voicing_left = 0;; c2->phase_fft_fwd_cfg = codec2_fft_alloc(NEWAMP2_PHASE_NFFT, 0, NULL, NULL); c2->phase_fft_inv_cfg = codec2_fft_alloc(NEWAMP2_PHASE_NFFT, 1, NULL, NULL); } c2->fmlfeat = NULL; c2->fmlmodel = NULL; // make sure that one of the two decode function pointers is empty // for the encode function pointer this is not required since we always set it // to a meaningful value c2->decode = NULL; c2->decode_ber = NULL; if ( CODEC2_MODE_ACTIVE(CODEC2_MODE_3200, c2->mode)) { c2->encode = codec2_encode_3200; c2->decode = codec2_decode_3200; } if ( CODEC2_MODE_ACTIVE(CODEC2_MODE_2400, c2->mode)) { c2->encode = codec2_encode_2400; c2->decode = codec2_decode_2400; } if ( CODEC2_MODE_ACTIVE(CODEC2_MODE_1600, c2->mode)) { c2->encode = codec2_encode_1600; c2->decode = codec2_decode_1600; } if ( CODEC2_MODE_ACTIVE(CODEC2_MODE_1400, c2->mode)) { c2->encode = codec2_encode_1400; c2->decode = codec2_decode_1400; } if ( CODEC2_MODE_ACTIVE(CODEC2_MODE_1300, c2->mode)) { c2->encode = codec2_encode_1300; c2->decode_ber = codec2_decode_1300; } if ( CODEC2_MODE_ACTIVE(CODEC2_MODE_1200, c2->mode)) { c2->encode = codec2_encode_1200; c2->decode = codec2_decode_1200; } if ( CODEC2_MODE_ACTIVE(CODEC2_MODE_700C, c2->mode)) { c2->encode = codec2_encode_700c; c2->decode = codec2_decode_700c; } if ( CODEC2_MODE_ACTIVE(CODEC2_MODE_450, c2->mode)) { c2->encode = codec2_encode_450; c2->decode = codec2_decode_450; } if ( CODEC2_MODE_ACTIVE(CODEC2_MODE_450PWB, c2->mode)) { //Encode PWB doesnt make sense c2->encode = codec2_encode_450; c2->decode = codec2_decode_450pwb; } return c2; } /*---------------------------------------------------------------------------*\ FUNCTION....: codec2_destroy AUTHOR......: David Rowe DATE CREATED: 21/8/2010 Destroy an instance of the codec. \*---------------------------------------------------------------------------*/ void codec2_destroy(struct CODEC2 *c2) { assert(c2 != NULL); FREE(c2->bpf_buf); nlp_destroy(c2->nlp); codec2_fft_free(c2->fft_fwd_cfg); codec2_fftr_free(c2->fftr_fwd_cfg); codec2_fftr_free(c2->fftr_inv_cfg); if ( CODEC2_MODE_ACTIVE(CODEC2_MODE_700C, c2->mode)) { codec2_fft_free(c2->phase_fft_fwd_cfg); codec2_fft_free(c2->phase_fft_inv_cfg); } if ( CODEC2_MODE_ACTIVE(CODEC2_MODE_450, c2->mode)) { codec2_fft_free(c2->phase_fft_fwd_cfg); codec2_fft_free(c2->phase_fft_inv_cfg); } if ( CODEC2_MODE_ACTIVE(CODEC2_MODE_450PWB, c2->mode)) { codec2_fft_free(c2->phase_fft_fwd_cfg); codec2_fft_free(c2->phase_fft_inv_cfg); } FREE(c2->Pn); FREE(c2->Sn); FREE(c2->w); FREE(c2->Sn_); FREE(c2); } /*---------------------------------------------------------------------------*\ FUNCTION....: codec2_bits_per_frame AUTHOR......: David Rowe DATE CREATED: Nov 14 2011 Returns the number of bits per frame. \*---------------------------------------------------------------------------*/ int codec2_bits_per_frame(struct CODEC2 *c2) { if ( CODEC2_MODE_ACTIVE(CODEC2_MODE_3200, c2->mode)) return 64; if ( CODEC2_MODE_ACTIVE(CODEC2_MODE_2400, c2->mode)) return 48; if ( CODEC2_MODE_ACTIVE(CODEC2_MODE_1600, c2->mode)) return 64; if ( CODEC2_MODE_ACTIVE(CODEC2_MODE_1400, c2->mode)) return 56; if ( CODEC2_MODE_ACTIVE(CODEC2_MODE_1300, c2->mode)) return 52; if ( CODEC2_MODE_ACTIVE(CODEC2_MODE_1200, c2->mode)) return 48; if ( CODEC2_MODE_ACTIVE(CODEC2_MODE_700C, c2->mode)) return 28; if ( CODEC2_MODE_ACTIVE(CODEC2_MODE_450, c2->mode)) return 18; if ( CODEC2_MODE_ACTIVE(CODEC2_MODE_450PWB, c2->mode)) return 18; return 0; /* shouldn't get here */ } /*---------------------------------------------------------------------------*\ FUNCTION....: codec2_bytes_per_frame DATE CREATED: April 2021 Returns the number of bytes per frame. Useful for allocated storage for codec2_encode()/codec2_decode(). Note the number of bits may not be a multiple of 8, thefore some bits in the last byte may be unused. \*---------------------------------------------------------------------------*/ int codec2_bytes_per_frame(struct CODEC2 *c2) { return (codec2_bits_per_frame(c2)+7)/8; } /*---------------------------------------------------------------------------*\ FUNCTION....: codec2_samples_per_frame AUTHOR......: David Rowe DATE CREATED: Nov 14 2011 Returns the number of speech samples per frame. \*---------------------------------------------------------------------------*/ int codec2_samples_per_frame(struct CODEC2 *c2) { if ( CODEC2_MODE_ACTIVE(CODEC2_MODE_3200, c2->mode)) return 160; if ( CODEC2_MODE_ACTIVE(CODEC2_MODE_2400, c2->mode)) return 160; if ( CODEC2_MODE_ACTIVE(CODEC2_MODE_1600, c2->mode)) return 320; if ( CODEC2_MODE_ACTIVE(CODEC2_MODE_1400, c2->mode)) return 320; if ( CODEC2_MODE_ACTIVE(CODEC2_MODE_1300, c2->mode)) return 320; if ( CODEC2_MODE_ACTIVE(CODEC2_MODE_1200, c2->mode)) return 320; if ( CODEC2_MODE_ACTIVE(CODEC2_MODE_700C, c2->mode)) return 320; if ( CODEC2_MODE_ACTIVE(CODEC2_MODE_450, c2->mode)) return 320; if ( CODEC2_MODE_ACTIVE(CODEC2_MODE_450PWB, c2->mode)) return 640; return 0; /* shouldnt get here */ } /*---------------------------------------------------------------------------*\ FUNCTION....: codec2_encode AUTHOR......: David Rowe DATE CREATED: Nov 14 2011 Take an input buffer of speech samples, and compress them to a packed buffer of bytes. \*---------------------------------------------------------------------------*/ void codec2_encode(struct CODEC2 *c2, unsigned char *bytes, short speech[]) { assert(c2 != NULL); assert(c2->encode != NULL); c2->encode(c2, bytes, speech); } /*---------------------------------------------------------------------------*\ FUNCTION....: codec2_decode AUTHOR......: David Rowe DATE CREATED: Nov 14 2011 Take an input packed buffer of bytes, and decode them to a buffer of speech samples. \*---------------------------------------------------------------------------*/ void codec2_decode(struct CODEC2 *c2, short speech[], const unsigned char *bytes) { codec2_decode_ber(c2, speech, bytes, 0.0); } void codec2_decode_ber(struct CODEC2 *c2, short speech[], const unsigned char *bits, float ber_est) { assert(c2 != NULL); assert(c2->decode != NULL || c2->decode_ber != NULL); if (c2->decode != NULL) { c2->decode(c2, speech, bits); } else { c2->decode_ber(c2, speech, bits, ber_est); } } /*---------------------------------------------------------------------------*\ FUNCTION....: codec2_encode_3200 AUTHOR......: David Rowe DATE CREATED: 13 Sep 2012 Encodes 160 speech samples (20ms of speech) into 64 bits. The codec2 algorithm actually operates internally on 10ms (80 sample) frames, so we run the encoding algorithm twice. On the first frame we just send the voicing bits. On the second frame we send all model parameters. Compared to 2400 we use a larger number of bits for the LSPs and non-VQ pitch and energy. The bit allocation is: Parameter bits/frame -------------------------------------- Harmonic magnitudes (LSPs) 50 Pitch (Wo) 7 Energy 5 Voicing (10ms update) 2 TOTAL 64 \*---------------------------------------------------------------------------*/ void codec2_encode_3200(struct CODEC2 *c2, unsigned char * bits, short speech[]) { MODEL model; float ak[LPC_ORD+1]; float lsps[LPC_ORD]; float e; int Wo_index, e_index; int lspd_indexes[LPC_ORD]; int i; unsigned int nbit = 0; assert(c2 != NULL); memset(bits, '\0', ((codec2_bits_per_frame(c2) + 7) / 8)); /* first 10ms analysis frame - we just want voicing */ analyse_one_frame(c2, &model, speech); pack(bits, &nbit, model.voiced, 1); /* second 10ms analysis frame */ analyse_one_frame(c2, &model, &speech[c2->n_samp]); pack(bits, &nbit, model.voiced, 1); Wo_index = encode_Wo(&c2->c2const, model.Wo, WO_BITS); pack(bits, &nbit, Wo_index, WO_BITS); e = speech_to_uq_lsps(lsps, ak, c2->Sn, c2->w, c2->m_pitch, LPC_ORD); e_index = encode_energy(e, E_BITS); pack(bits, &nbit, e_index, E_BITS); encode_lspds_scalar(lspd_indexes, lsps, LPC_ORD); for(i=0; ic2const, Wo_index, WO_BITS); model[1].L = PI/model[1].Wo; e_index = unpack(bits, &nbit, E_BITS); e[1] = decode_energy(e_index, E_BITS); for(i=0; iprev_model_dec, &model[1], c2->c2const.Wo_min); e[0] = interp_energy(c2->prev_e_dec, e[1]); /* LSPs are sampled every 20ms so we interpolate the frame in between, then recover spectral amplitudes */ interpolate_lsp_ver2(&lsps[0][0], c2->prev_lsps_dec, &lsps[1][0], 0.5, LPC_ORD); for(i=0; i<2; i++) { lsp_to_lpc(&lsps[i][0], &ak[i][0], LPC_ORD); aks_to_M2(c2->fftr_fwd_cfg, &ak[i][0], LPC_ORD, &model[i], e[i], &snr, 0, 0, c2->lpc_pf, c2->bass_boost, c2->beta, c2->gamma, Aw); apply_lpc_correction(&model[i]); synthesise_one_frame(c2, &speech[c2->n_samp*i], &model[i], Aw, 1.0); } /* update memories for next frame ----------------------------*/ c2->prev_model_dec = model[1]; c2->prev_e_dec = e[1]; for(i=0; iprev_lsps_dec[i] = lsps[1][i]; } /*---------------------------------------------------------------------------*\ FUNCTION....: codec2_encode_2400 AUTHOR......: David Rowe DATE CREATED: 21/8/2010 Encodes 160 speech samples (20ms of speech) into 48 bits. The codec2 algorithm actually operates internally on 10ms (80 sample) frames, so we run the encoding algorithm twice. On the first frame we just send the voicing bit. On the second frame we send all model parameters. The bit allocation is: Parameter bits/frame -------------------------------------- Harmonic magnitudes (LSPs) 36 Joint VQ of Energy and Wo 8 Voicing (10ms update) 2 Spare 2 TOTAL 48 \*---------------------------------------------------------------------------*/ void codec2_encode_2400(struct CODEC2 *c2, unsigned char * bits, short speech[]) { MODEL model; float ak[LPC_ORD+1]; float lsps[LPC_ORD]; float e; int WoE_index; int lsp_indexes[LPC_ORD]; int i; int spare = 0; unsigned int nbit = 0; assert(c2 != NULL); memset(bits, '\0', ((codec2_bits_per_frame(c2) + 7) / 8)); /* first 10ms analysis frame - we just want voicing */ analyse_one_frame(c2, &model, speech); pack(bits, &nbit, model.voiced, 1); /* second 10ms analysis frame */ analyse_one_frame(c2, &model, &speech[c2->n_samp]); pack(bits, &nbit, model.voiced, 1); e = speech_to_uq_lsps(lsps, ak, c2->Sn, c2->w, c2->m_pitch, LPC_ORD); WoE_index = encode_WoE(&model, e, c2->xq_enc); pack(bits, &nbit, WoE_index, WO_E_BITS); encode_lsps_scalar(lsp_indexes, lsps, LPC_ORD); for(i=0; ic2const, &model[1], &e[1], c2->xq_dec, WoE_index); for(i=0; iprev_model_dec, &model[1], c2->c2const.Wo_min); e[0] = interp_energy(c2->prev_e_dec, e[1]); /* LSPs are sampled every 20ms so we interpolate the frame in between, then recover spectral amplitudes */ interpolate_lsp_ver2(&lsps[0][0], c2->prev_lsps_dec, &lsps[1][0], 0.5, LPC_ORD); for(i=0; i<2; i++) { lsp_to_lpc(&lsps[i][0], &ak[i][0], LPC_ORD); aks_to_M2(c2->fftr_fwd_cfg, &ak[i][0], LPC_ORD, &model[i], e[i], &snr, 0, 0, c2->lpc_pf, c2->bass_boost, c2->beta, c2->gamma, Aw); apply_lpc_correction(&model[i]); synthesise_one_frame(c2, &speech[c2->n_samp*i], &model[i], Aw, 1.0); /* dump parameters for deep learning experiments */ if (c2->fmlfeat != NULL) { /* 10 LSPs - energy - Wo - voicing flag - 10 LPCs */ fwrite(&lsps[i][0], LPC_ORD, sizeof(float), c2->fmlfeat); fwrite(&e[i], 1, sizeof(float), c2->fmlfeat); fwrite(&model[i].Wo, 1, sizeof(float), c2->fmlfeat); float voiced_float = model[i].voiced; fwrite(&voiced_float, 1, sizeof(float), c2->fmlfeat); fwrite(&ak[i][1], LPC_ORD, sizeof(float), c2->fmlfeat); } } /* update memories for next frame ----------------------------*/ c2->prev_model_dec = model[1]; c2->prev_e_dec = e[1]; for(i=0; iprev_lsps_dec[i] = lsps[1][i]; } /*---------------------------------------------------------------------------*\ FUNCTION....: codec2_encode_1600 AUTHOR......: David Rowe DATE CREATED: Feb 28 2013 Encodes 320 speech samples (40ms of speech) into 64 bits. The codec2 algorithm actually operates internally on 10ms (80 sample) frames, so we run the encoding algorithm 4 times: frame 0: voicing bit frame 1: voicing bit, Wo and E frame 2: voicing bit frame 3: voicing bit, Wo and E, scalar LSPs The bit allocation is: Parameter frame 2 frame 4 Total ------------------------------------------------------- Harmonic magnitudes (LSPs) 0 36 36 Pitch (Wo) 7 7 14 Energy 5 5 10 Voicing (10ms update) 2 2 4 TOTAL 14 50 64 \*---------------------------------------------------------------------------*/ void codec2_encode_1600(struct CODEC2 *c2, unsigned char * bits, short speech[]) { MODEL model; float lsps[LPC_ORD]; float ak[LPC_ORD+1]; float e; int lsp_indexes[LPC_ORD]; int Wo_index, e_index; int i; unsigned int nbit = 0; assert(c2 != NULL); memset(bits, '\0', ((codec2_bits_per_frame(c2) + 7) / 8)); /* frame 1: - voicing ---------------------------------------------*/ analyse_one_frame(c2, &model, speech); pack(bits, &nbit, model.voiced, 1); /* frame 2: - voicing, scalar Wo & E -------------------------------*/ analyse_one_frame(c2, &model, &speech[c2->n_samp]); pack(bits, &nbit, model.voiced, 1); Wo_index = encode_Wo(&c2->c2const, model.Wo, WO_BITS); pack(bits, &nbit, Wo_index, WO_BITS); /* need to run this just to get LPC energy */ e = speech_to_uq_lsps(lsps, ak, c2->Sn, c2->w, c2->m_pitch, LPC_ORD); e_index = encode_energy(e, E_BITS); pack(bits, &nbit, e_index, E_BITS); /* frame 3: - voicing ---------------------------------------------*/ analyse_one_frame(c2, &model, &speech[2*c2->n_samp]); pack(bits, &nbit, model.voiced, 1); /* frame 4: - voicing, scalar Wo & E, scalar LSPs ------------------*/ analyse_one_frame(c2, &model, &speech[3*c2->n_samp]); pack(bits, &nbit, model.voiced, 1); Wo_index = encode_Wo(&c2->c2const, model.Wo, WO_BITS); pack(bits, &nbit, Wo_index, WO_BITS); e = speech_to_uq_lsps(lsps, ak, c2->Sn, c2->w, c2->m_pitch, LPC_ORD); e_index = encode_energy(e, E_BITS); pack(bits, &nbit, e_index, E_BITS); encode_lsps_scalar(lsp_indexes, lsps, LPC_ORD); for(i=0; ic2const, Wo_index, WO_BITS); model[1].L = PI/model[1].Wo; e_index = unpack(bits, &nbit, E_BITS); e[1] = decode_energy(e_index, E_BITS); model[2].voiced = unpack(bits, &nbit, 1); model[3].voiced = unpack(bits, &nbit, 1); Wo_index = unpack(bits, &nbit, WO_BITS); model[3].Wo = decode_Wo(&c2->c2const, Wo_index, WO_BITS); model[3].L = PI/model[3].Wo; e_index = unpack(bits, &nbit, E_BITS); e[3] = decode_energy(e_index, E_BITS); for(i=0; iprev_model_dec, &model[1], c2->c2const.Wo_min); e[0] = interp_energy(c2->prev_e_dec, e[1]); interp_Wo(&model[2], &model[1], &model[3], c2->c2const.Wo_min); e[2] = interp_energy(e[1], e[3]); /* LSPs are sampled every 40ms so we interpolate the 3 frames in between, then recover spectral amplitudes */ for(i=0, weight=0.25; i<3; i++, weight += 0.25) { interpolate_lsp_ver2(&lsps[i][0], c2->prev_lsps_dec, &lsps[3][0], weight, LPC_ORD); } for(i=0; i<4; i++) { lsp_to_lpc(&lsps[i][0], &ak[i][0], LPC_ORD); aks_to_M2(c2->fftr_fwd_cfg, &ak[i][0], LPC_ORD, &model[i], e[i], &snr, 0, 0, c2->lpc_pf, c2->bass_boost, c2->beta, c2->gamma, Aw); apply_lpc_correction(&model[i]); synthesise_one_frame(c2, &speech[c2->n_samp*i], &model[i], Aw, 1.0); } /* update memories for next frame ----------------------------*/ c2->prev_model_dec = model[3]; c2->prev_e_dec = e[3]; for(i=0; iprev_lsps_dec[i] = lsps[3][i]; } /*---------------------------------------------------------------------------*\ FUNCTION....: codec2_encode_1400 AUTHOR......: David Rowe DATE CREATED: May 11 2012 Encodes 320 speech samples (40ms of speech) into 56 bits. The codec2 algorithm actually operates internally on 10ms (80 sample) frames, so we run the encoding algorithm 4 times: frame 0: voicing bit frame 1: voicing bit, joint VQ of Wo and E frame 2: voicing bit frame 3: voicing bit, joint VQ of Wo and E, scalar LSPs The bit allocation is: Parameter frame 2 frame 4 Total ------------------------------------------------------- Harmonic magnitudes (LSPs) 0 36 36 Energy+Wo 8 8 16 Voicing (10ms update) 2 2 4 TOTAL 10 46 56 \*---------------------------------------------------------------------------*/ void codec2_encode_1400(struct CODEC2 *c2, unsigned char * bits, short speech[]) { MODEL model; float lsps[LPC_ORD]; float ak[LPC_ORD+1]; float e; int lsp_indexes[LPC_ORD]; int WoE_index; int i; unsigned int nbit = 0; assert(c2 != NULL); memset(bits, '\0', ((codec2_bits_per_frame(c2) + 7) / 8)); /* frame 1: - voicing ---------------------------------------------*/ analyse_one_frame(c2, &model, speech); pack(bits, &nbit, model.voiced, 1); /* frame 2: - voicing, joint Wo & E -------------------------------*/ analyse_one_frame(c2, &model, &speech[c2->n_samp]); pack(bits, &nbit, model.voiced, 1); /* need to run this just to get LPC energy */ e = speech_to_uq_lsps(lsps, ak, c2->Sn, c2->w, c2->m_pitch, LPC_ORD); WoE_index = encode_WoE(&model, e, c2->xq_enc); pack(bits, &nbit, WoE_index, WO_E_BITS); /* frame 3: - voicing ---------------------------------------------*/ analyse_one_frame(c2, &model, &speech[2*c2->n_samp]); pack(bits, &nbit, model.voiced, 1); /* frame 4: - voicing, joint Wo & E, scalar LSPs ------------------*/ analyse_one_frame(c2, &model, &speech[3*c2->n_samp]); pack(bits, &nbit, model.voiced, 1); e = speech_to_uq_lsps(lsps, ak, c2->Sn, c2->w, c2->m_pitch, LPC_ORD); WoE_index = encode_WoE(&model, e, c2->xq_enc); pack(bits, &nbit, WoE_index, WO_E_BITS); encode_lsps_scalar(lsp_indexes, lsps, LPC_ORD); for(i=0; ic2const, &model[1], &e[1], c2->xq_dec, WoE_index); model[2].voiced = unpack(bits, &nbit, 1); model[3].voiced = unpack(bits, &nbit, 1); WoE_index = unpack(bits, &nbit, WO_E_BITS); decode_WoE(&c2->c2const, &model[3], &e[3], c2->xq_dec, WoE_index); for(i=0; iprev_model_dec, &model[1], c2->c2const.Wo_min); e[0] = interp_energy(c2->prev_e_dec, e[1]); interp_Wo(&model[2], &model[1], &model[3], c2->c2const.Wo_min); e[2] = interp_energy(e[1], e[3]); /* LSPs are sampled every 40ms so we interpolate the 3 frames in between, then recover spectral amplitudes */ for(i=0, weight=0.25; i<3; i++, weight += 0.25) { interpolate_lsp_ver2(&lsps[i][0], c2->prev_lsps_dec, &lsps[3][0], weight, LPC_ORD); } for(i=0; i<4; i++) { lsp_to_lpc(&lsps[i][0], &ak[i][0], LPC_ORD); aks_to_M2(c2->fftr_fwd_cfg, &ak[i][0], LPC_ORD, &model[i], e[i], &snr, 0, 0, c2->lpc_pf, c2->bass_boost, c2->beta, c2->gamma, Aw); apply_lpc_correction(&model[i]); synthesise_one_frame(c2, &speech[c2->n_samp*i], &model[i], Aw, 1.0); } /* update memories for next frame ----------------------------*/ c2->prev_model_dec = model[3]; c2->prev_e_dec = e[3]; for(i=0; iprev_lsps_dec[i] = lsps[3][i]; } /*---------------------------------------------------------------------------*\ FUNCTION....: codec2_encode_1300 AUTHOR......: David Rowe DATE CREATED: March 14 2013 Encodes 320 speech samples (40ms of speech) into 52 bits. The codec2 algorithm actually operates internally on 10ms (80 sample) frames, so we run the encoding algorithm 4 times: frame 0: voicing bit frame 1: voicing bit, frame 2: voicing bit frame 3: voicing bit, Wo and E, scalar LSPs The bit allocation is: Parameter frame 2 frame 4 Total ------------------------------------------------------- Harmonic magnitudes (LSPs) 0 36 36 Pitch (Wo) 0 7 7 Energy 0 5 5 Voicing (10ms update) 2 2 4 TOTAL 2 50 52 \*---------------------------------------------------------------------------*/ void codec2_encode_1300(struct CODEC2 *c2, unsigned char * bits, short speech[]) { MODEL model; float lsps[LPC_ORD]; float ak[LPC_ORD+1]; float e; int lsp_indexes[LPC_ORD]; int Wo_index, e_index; int i; unsigned int nbit = 0; assert(c2 != NULL); memset(bits, '\0', ((codec2_bits_per_frame(c2) + 7) / 8)); /* frame 1: - voicing ---------------------------------------------*/ analyse_one_frame(c2, &model, speech); pack_natural_or_gray(bits, &nbit, model.voiced, 1, c2->gray); /* frame 2: - voicing ---------------------------------------------*/ analyse_one_frame(c2, &model, &speech[c2->n_samp]); pack_natural_or_gray(bits, &nbit, model.voiced, 1, c2->gray); /* frame 3: - voicing ---------------------------------------------*/ analyse_one_frame(c2, &model, &speech[2*c2->n_samp]); pack_natural_or_gray(bits, &nbit, model.voiced, 1, c2->gray); /* frame 4: - voicing, scalar Wo & E, scalar LSPs ------------------*/ analyse_one_frame(c2, &model, &speech[3*c2->n_samp]); pack_natural_or_gray(bits, &nbit, model.voiced, 1, c2->gray); Wo_index = encode_Wo(&c2->c2const, model.Wo, WO_BITS); pack_natural_or_gray(bits, &nbit, Wo_index, WO_BITS, c2->gray); e = speech_to_uq_lsps(lsps, ak, c2->Sn, c2->w, c2->m_pitch, LPC_ORD); e_index = encode_energy(e, E_BITS); pack_natural_or_gray(bits, &nbit, e_index, E_BITS, c2->gray); encode_lsps_scalar(lsp_indexes, lsps, LPC_ORD); for(i=0; igray); } assert(nbit == (unsigned)codec2_bits_per_frame(c2)); } /*---------------------------------------------------------------------------*\ FUNCTION....: codec2_decode_1300 AUTHOR......: David Rowe DATE CREATED: 11 May 2012 Decodes frames of 52 bits into 320 samples (40ms) of speech. \*---------------------------------------------------------------------------*/ void codec2_decode_1300(struct CODEC2 *c2, short speech[], const unsigned char * bits, float ber_est) { MODEL model[4]; int lsp_indexes[LPC_ORD]; float lsps[4][LPC_ORD]; int Wo_index, e_index; float e[4]; float snr; float ak[4][LPC_ORD+1]; int i,j; unsigned int nbit = 0; float weight; COMP Aw[FFT_ENC]; assert(c2 != NULL); /* only need to zero these out due to (unused) snr calculation */ for(i=0; i<4; i++) for(j=1; j<=MAX_AMP; j++) model[i].A[j] = 0.0; /* unpack bits from channel ------------------------------------*/ /* this will partially fill the model params for the 4 x 10ms frames */ model[0].voiced = unpack_natural_or_gray(bits, &nbit, 1, c2->gray); model[1].voiced = unpack_natural_or_gray(bits, &nbit, 1, c2->gray); model[2].voiced = unpack_natural_or_gray(bits, &nbit, 1, c2->gray); model[3].voiced = unpack_natural_or_gray(bits, &nbit, 1, c2->gray); Wo_index = unpack_natural_or_gray(bits, &nbit, WO_BITS, c2->gray); model[3].Wo = decode_Wo(&c2->c2const, Wo_index, WO_BITS); model[3].L = PI/model[3].Wo; e_index = unpack_natural_or_gray(bits, &nbit, E_BITS, c2->gray); e[3] = decode_energy(e_index, E_BITS); for(i=0; igray); } decode_lsps_scalar(&lsps[3][0], lsp_indexes, LPC_ORD); check_lsp_order(&lsps[3][0], LPC_ORD); bw_expand_lsps(&lsps[3][0], LPC_ORD, 50.0, 100.0); if (ber_est > 0.15) { model[0].voiced = model[1].voiced = model[2].voiced = model[3].voiced = 0; e[3] = decode_energy(10, E_BITS); bw_expand_lsps(&lsps[3][0], LPC_ORD, 200.0, 200.0); //fprintf(stderr, "soft mute\n"); } /* interpolate ------------------------------------------------*/ /* Wo, energy, and LSPs are sampled every 40ms so we interpolate the 3 frames in between */ for(i=0, weight=0.25; i<3; i++, weight += 0.25) { interpolate_lsp_ver2(&lsps[i][0], c2->prev_lsps_dec, &lsps[3][0], weight, LPC_ORD); interp_Wo2(&model[i], &c2->prev_model_dec, &model[3], weight, c2->c2const.Wo_min); e[i] = interp_energy2(c2->prev_e_dec, e[3],weight); } /* then recover spectral amplitudes */ for(i=0; i<4; i++) { lsp_to_lpc(&lsps[i][0], &ak[i][0], LPC_ORD); aks_to_M2(c2->fftr_fwd_cfg, &ak[i][0], LPC_ORD, &model[i], e[i], &snr, 0, 0, c2->lpc_pf, c2->bass_boost, c2->beta, c2->gamma, Aw); apply_lpc_correction(&model[i]); synthesise_one_frame(c2, &speech[c2->n_samp*i], &model[i], Aw, 1.0); /* dump parameters for deep learning experiments */ if (c2->fmlfeat != NULL) { /* 10 LSPs - energy - Wo - voicing flag - 10 LPCs */ fwrite(&lsps[i][0], LPC_ORD, sizeof(float), c2->fmlfeat); fwrite(&e[i], 1, sizeof(float), c2->fmlfeat); fwrite(&model[i].Wo, 1, sizeof(float), c2->fmlfeat); float voiced_float = model[i].voiced; fwrite(&voiced_float, 1, sizeof(float), c2->fmlfeat); fwrite(&ak[i][1], LPC_ORD, sizeof(float), c2->fmlfeat); } } #ifdef DUMP dump_lsp_(&lsps[3][0]); dump_ak_(&ak[3][0], LPC_ORD); #endif /* update memories for next frame ----------------------------*/ c2->prev_model_dec = model[3]; c2->prev_e_dec = e[3]; for(i=0; iprev_lsps_dec[i] = lsps[3][i]; } /*---------------------------------------------------------------------------*\ FUNCTION....: codec2_encode_1200 AUTHOR......: David Rowe DATE CREATED: Nov 14 2011 Encodes 320 speech samples (40ms of speech) into 48 bits. The codec2 algorithm actually operates internally on 10ms (80 sample) frames, so we run the encoding algorithm four times: frame 0: voicing bit frame 1: voicing bit, joint VQ of Wo and E frame 2: voicing bit frame 3: voicing bit, joint VQ of Wo and E, VQ LSPs The bit allocation is: Parameter frame 2 frame 4 Total ------------------------------------------------------- Harmonic magnitudes (LSPs) 0 27 27 Energy+Wo 8 8 16 Voicing (10ms update) 2 2 4 Spare 0 1 1 TOTAL 10 38 48 \*---------------------------------------------------------------------------*/ void codec2_encode_1200(struct CODEC2 *c2, unsigned char * bits, short speech[]) { MODEL model; float lsps[LPC_ORD]; float lsps_[LPC_ORD]; float ak[LPC_ORD+1]; float e; int lsp_indexes[LPC_ORD]; int WoE_index; int i; int spare = 0; unsigned int nbit = 0; assert(c2 != NULL); memset(bits, '\0', ((codec2_bits_per_frame(c2) + 7) / 8)); /* frame 1: - voicing ---------------------------------------------*/ analyse_one_frame(c2, &model, speech); pack(bits, &nbit, model.voiced, 1); /* frame 2: - voicing, joint Wo & E -------------------------------*/ analyse_one_frame(c2, &model, &speech[c2->n_samp]); pack(bits, &nbit, model.voiced, 1); /* need to run this just to get LPC energy */ e = speech_to_uq_lsps(lsps, ak, c2->Sn, c2->w, c2->m_pitch, LPC_ORD); WoE_index = encode_WoE(&model, e, c2->xq_enc); pack(bits, &nbit, WoE_index, WO_E_BITS); /* frame 3: - voicing ---------------------------------------------*/ analyse_one_frame(c2, &model, &speech[2*c2->n_samp]); pack(bits, &nbit, model.voiced, 1); /* frame 4: - voicing, joint Wo & E, scalar LSPs ------------------*/ analyse_one_frame(c2, &model, &speech[3*c2->n_samp]); pack(bits, &nbit, model.voiced, 1); e = speech_to_uq_lsps(lsps, ak, c2->Sn, c2->w, c2->m_pitch, LPC_ORD); WoE_index = encode_WoE(&model, e, c2->xq_enc); pack(bits, &nbit, WoE_index, WO_E_BITS); encode_lsps_vq(lsp_indexes, lsps, lsps_, LPC_ORD); for(i=0; ic2const, &model[1], &e[1], c2->xq_dec, WoE_index); model[2].voiced = unpack(bits, &nbit, 1); model[3].voiced = unpack(bits, &nbit, 1); WoE_index = unpack(bits, &nbit, WO_E_BITS); decode_WoE(&c2->c2const, &model[3], &e[3], c2->xq_dec, WoE_index); for(i=0; iprev_model_dec, &model[1], c2->c2const.Wo_min); e[0] = interp_energy(c2->prev_e_dec, e[1]); interp_Wo(&model[2], &model[1], &model[3], c2->c2const.Wo_min); e[2] = interp_energy(e[1], e[3]); /* LSPs are sampled every 40ms so we interpolate the 3 frames in between, then recover spectral amplitudes */ for(i=0, weight=0.25; i<3; i++, weight += 0.25) { interpolate_lsp_ver2(&lsps[i][0], c2->prev_lsps_dec, &lsps[3][0], weight, LPC_ORD); } for(i=0; i<4; i++) { lsp_to_lpc(&lsps[i][0], &ak[i][0], LPC_ORD); aks_to_M2(c2->fftr_fwd_cfg, &ak[i][0], LPC_ORD, &model[i], e[i], &snr, 0, 0, c2->lpc_pf, c2->bass_boost, c2->beta, c2->gamma, Aw); apply_lpc_correction(&model[i]); synthesise_one_frame(c2, &speech[c2->n_samp*i], &model[i], Aw, 1.0); } /* update memories for next frame ----------------------------*/ c2->prev_model_dec = model[3]; c2->prev_e_dec = e[3]; for(i=0; iprev_lsps_dec[i] = lsps[3][i]; } /*---------------------------------------------------------------------------*\ FUNCTION....: codec2_encode_700c AUTHOR......: David Rowe DATE CREATED: Jan 2017 Version c of 700 bit/s codec that uses newamp1 fixed rate VQ of amplitudes. Encodes 320 speech samples (40ms of speech) into 28 bits. The codec2 algorithm actually operates internally on 10ms (80 sample) frames, so we run the encoding algorithm four times: frame 0: nothing frame 1: nothing frame 2: nothing frame 3: 18 bit 2 stage VQ (9 bits/stage), 4 bits energy, 6 bit scalar Wo/voicing. No spare bits. Voicing is encoded using the 0 index of the Wo quantiser. The bit allocation is: Parameter frames 1-3 frame 4 Total ----------------------------------------------------------- Harmonic magnitudes (rate k VQ) 0 18 18 Energy 0 4 4 log Wo/voicing 0 6 6 TOTAL 0 28 28 \*---------------------------------------------------------------------------*/ void codec2_encode_700c(struct CODEC2 *c2, unsigned char * bits, short speech[]) { MODEL model; int indexes[4], i, M=4; unsigned int nbit = 0; assert(c2 != NULL); memset(bits, '\0', ((codec2_bits_per_frame(c2) + 7) / 8)); for(i=0; in_samp]); } int K = 20; float rate_K_vec[K], mean; float rate_K_vec_no_mean[K], rate_K_vec_no_mean_[K]; newamp1_model_to_indexes(&c2->c2const, indexes, &model, rate_K_vec, c2->rate_K_sample_freqs_kHz, K, &mean, rate_K_vec_no_mean, rate_K_vec_no_mean_, &c2->se, c2->eq, c2->eq_en); c2->nse += K; #ifndef CORTEX_M4 /* dump features for deep learning experiments */ if (c2->fmlfeat != NULL) { fwrite(&mean, 1, sizeof(float), c2->fmlfeat); fwrite(rate_K_vec_no_mean, K, sizeof(float), c2->fmlfeat); fwrite(rate_K_vec_no_mean_, K, sizeof(float), c2->fmlfeat); MODEL model_; memcpy(&model_, &model, sizeof(model)); float rate_K_vec_[K]; for(int k=0; kc2const, &model_, rate_K_vec_, c2->rate_K_sample_freqs_kHz, K); fwrite(&model_.A, MAX_AMP, sizeof(float), c2->fmlfeat); } if (c2->fmlmodel != NULL) fwrite(&model,sizeof(MODEL),1,c2->fmlmodel); #endif pack_natural_or_gray(bits, &nbit, indexes[0], 9, 0); pack_natural_or_gray(bits, &nbit, indexes[1], 9, 0); pack_natural_or_gray(bits, &nbit, indexes[2], 4, 0); pack_natural_or_gray(bits, &nbit, indexes[3], 6, 0); assert(nbit == (unsigned)codec2_bits_per_frame(c2)); } /*---------------------------------------------------------------------------*\ FUNCTION....: codec2_decode_700c AUTHOR......: David Rowe DATE CREATED: August 2015 Decodes frames of 28 bits into 320 samples (40ms) of speech. \*---------------------------------------------------------------------------*/ void codec2_decode_700c(struct CODEC2 *c2, short speech[], const unsigned char * bits) { MODEL model[4]; int indexes[4]; int i; unsigned int nbit = 0; assert(c2 != NULL); /* unpack bits from channel ------------------------------------*/ indexes[0] = unpack_natural_or_gray(bits, &nbit, 9, 0); indexes[1] = unpack_natural_or_gray(bits, &nbit, 9, 0); indexes[2] = unpack_natural_or_gray(bits, &nbit, 4, 0); indexes[3] = unpack_natural_or_gray(bits, &nbit, 6, 0); int M = 4; COMP HH[M][MAX_AMP+1]; float interpolated_surface_[M][NEWAMP1_K]; newamp1_indexes_to_model(&c2->c2const, model, (COMP*)HH, (float*)interpolated_surface_, c2->prev_rate_K_vec_, &c2->Wo_left, &c2->voicing_left, c2->rate_K_sample_freqs_kHz, NEWAMP1_K, c2->phase_fft_fwd_cfg, c2->phase_fft_inv_cfg, indexes, c2->user_rate_K_vec_no_mean_, c2->post_filter_en); for(i=0; ifmlfeat != NULL) { /* We use standard nb_features=55 feature records for compatability with train_lpcnet.py */ float features[55] = {0}; /* just using 18/20 for compatability with LPCNet, coarse scaling for NN imput */ for(int j=0; j<18; j++) features[j] = (interpolated_surface_[i][j]-30)/40; int pitch_index = 21 + 2.0*M_PI/model[i].Wo; features[36] = 0.02*(pitch_index-100); features[37] = model[i].voiced; fwrite(features, 55, sizeof(float), c2->fmlfeat); } /* 700C is a little quieter so lets apply some experimentally derived audio gain */ synthesise_one_frame(c2, &speech[c2->n_samp*i], &model[i], &HH[i][0], 1.5); } } /*---------------------------------------------------------------------------*\ FUNCTION....: codec2_energy_700c AUTHOR......: Jeroen Vreeken DATE CREATED: Jan 2017 Decodes energy value from encoded bits. \*---------------------------------------------------------------------------*/ float codec2_energy_700c(struct CODEC2 *c2, const unsigned char * bits) { int indexes[4]; unsigned int nbit = 0; assert(c2 != NULL); /* unpack bits from channel ------------------------------------*/ indexes[0] = unpack_natural_or_gray(bits, &nbit, 9, 0); indexes[1] = unpack_natural_or_gray(bits, &nbit, 9, 0); indexes[2] = unpack_natural_or_gray(bits, &nbit, 4, 0); indexes[3] = unpack_natural_or_gray(bits, &nbit, 6, 0); float mean = newamp1_energy_cb[0].cb[indexes[2]]; mean -= 10; if (indexes[3] == 0) mean -= 10; return POW10F(mean/10.0); } float codec2_energy_450(struct CODEC2 *c2, const unsigned char * bits) { int indexes[4]; unsigned int nbit = 0; assert(c2 != NULL); /* unpack bits from channel ------------------------------------*/ indexes[0] = unpack_natural_or_gray(bits, &nbit, 9, 0); //indexes[1] = unpack_natural_or_gray(bits, &nbit, 9, 0); indexes[2] = unpack_natural_or_gray(bits, &nbit, 3, 0); indexes[3] = unpack_natural_or_gray(bits, &nbit, 6, 0); float mean = newamp2_energy_cb[0].cb[indexes[2]]; mean -= 10; if (indexes[3] == 0) mean -= 10; return POW10F(mean/10.0); } /*---------------------------------------------------------------------------*\ FUNCTION....: codec2_get_energy() AUTHOR......: Jeroen Vreeken DATE CREATED: 08/03/2016 Extract energy value from an encoded frame. \*---------------------------------------------------------------------------*/ float codec2_get_energy(struct CODEC2 *c2, const unsigned char *bits) { assert(c2 != NULL); assert( ( CODEC2_MODE_ACTIVE(CODEC2_MODE_3200, c2->mode)) || ( CODEC2_MODE_ACTIVE(CODEC2_MODE_2400, c2->mode)) || ( CODEC2_MODE_ACTIVE(CODEC2_MODE_1600, c2->mode)) || ( CODEC2_MODE_ACTIVE(CODEC2_MODE_1400, c2->mode)) || ( CODEC2_MODE_ACTIVE(CODEC2_MODE_1300, c2->mode)) || ( CODEC2_MODE_ACTIVE(CODEC2_MODE_1200, c2->mode)) || ( CODEC2_MODE_ACTIVE(CODEC2_MODE_700C, c2->mode)) || ( CODEC2_MODE_ACTIVE(CODEC2_MODE_450, c2->mode)) || ( CODEC2_MODE_ACTIVE(CODEC2_MODE_450PWB, c2->mode)) ); MODEL model; float xq_dec[2] = {}; int e_index, WoE_index; float e; unsigned int nbit; if ( CODEC2_MODE_ACTIVE(CODEC2_MODE_3200, c2->mode)) { nbit = 1 + 1 + WO_BITS; e_index = unpack(bits, &nbit, E_BITS); e = decode_energy(e_index, E_BITS); } if ( CODEC2_MODE_ACTIVE(CODEC2_MODE_2400, c2->mode)) { nbit = 1 + 1; WoE_index = unpack(bits, &nbit, WO_E_BITS); decode_WoE(&c2->c2const, &model, &e, xq_dec, WoE_index); } if ( CODEC2_MODE_ACTIVE(CODEC2_MODE_1600, c2->mode)) { nbit = 1 + 1 + WO_BITS; e_index = unpack(bits, &nbit, E_BITS); e = decode_energy(e_index, E_BITS); } if ( CODEC2_MODE_ACTIVE(CODEC2_MODE_1400, c2->mode)) { nbit = 1 + 1; WoE_index = unpack(bits, &nbit, WO_E_BITS); decode_WoE(&c2->c2const, &model, &e, xq_dec, WoE_index); } if ( CODEC2_MODE_ACTIVE(CODEC2_MODE_1300, c2->mode)) { nbit = 1 + 1 + 1 + 1 + WO_BITS; e_index = unpack_natural_or_gray(bits, &nbit, E_BITS, c2->gray); e = decode_energy(e_index, E_BITS); } if ( CODEC2_MODE_ACTIVE(CODEC2_MODE_1200, c2->mode)) { nbit = 1 + 1; WoE_index = unpack(bits, &nbit, WO_E_BITS); decode_WoE(&c2->c2const, &model, &e, xq_dec, WoE_index); } if ( CODEC2_MODE_ACTIVE(CODEC2_MODE_700C, c2->mode)) { e = codec2_energy_700c(c2, bits); } if ( CODEC2_MODE_ACTIVE(CODEC2_MODE_450, c2->mode) || CODEC2_MODE_ACTIVE(CODEC2_MODE_450PWB, c2->mode)) { e = codec2_energy_450(c2, bits); } return e; } /*---------------------------------------------------------------------------*\ FUNCTION....: codec2_encode_450 AUTHOR......: Thomas Kurin and Stefan Erhardt INSTITUTE...: Institute for Electronics Engineering, University of Erlangen-Nuremberg DATE CREATED: July 2018 450 bit/s codec that uses newamp2 fixed rate VQ of amplitudes. Encodes 320 speech samples (40ms of speech) into 28 bits. The codec2 algorithm actually operates internally on 10ms (80 sample) frames, so we run the encoding algorithm four times: frame 0: nothing frame 1: nothing frame 2: nothing frame 3: 9 bit 1 stage VQ, 3 bits energy, 6 bit scalar Wo/voicing/plosive. No spare bits. If a plosive is detected the frame at the energy-step is encoded. Voicing is encoded using the 000000 index of the Wo quantiser. Plosive is encoded using the 111111 index of the Wo quantiser. The bit allocation is: Parameter frames 1-3 frame 4 Total ----------------------------------------------------------- Harmonic magnitudes (rate k VQ) 0 9 9 Energy 0 3 3 log Wo/voicing/plosive 0 6 6 TOTAL 0 18 18 \*---------------------------------------------------------------------------*/ void codec2_encode_450(struct CODEC2 *c2, unsigned char * bits, short speech[]) { MODEL model; int indexes[4], i,h, M=4; unsigned int nbit = 0; int plosiv = 0; float energydelta[M]; int spectralCounter; assert(c2 != NULL); memset(bits, '\0', ((codec2_bits_per_frame(c2) + 7) / 8)); for(i=0; in_samp]); energydelta[i] = 0; spectralCounter = 0; for(h = 0;h<(model.L);h++){ //only detect above 300 Hz if(h*model.Wo*(c2->c2const.Fs/2000.0)/M_PI > 0.3){ energydelta[i] = (double)energydelta[i] + (double)20.0*log10(model.A[10]+1E-16); spectralCounter = spectralCounter+1; } } energydelta[i] = energydelta[i] / spectralCounter ; } //Constants for plosive Detection tdB = threshold; minPwr = from below this level plosives have to rise float tdB = 15; //not fixed can be changed float minPwr = 15; //not fixed can be changed if((c2->energy_prev)((c2->energy_prev)+tdB)){ plosiv = 1; } if(energydelta[0](energydelta[0]+tdB)){ plosiv = 2; } if(energydelta[1](energydelta[1]+tdB)){ plosiv = 3; } if(energydelta[2](energydelta[2]+tdB)){ plosiv = 4; } if(plosiv != 0 && plosiv != 4){ analyse_one_frame(c2, &model, &speech[(plosiv-1)*c2->n_samp]); } c2->energy_prev = energydelta[3]; int K = 29; float rate_K_vec[K], mean; float rate_K_vec_no_mean[K], rate_K_vec_no_mean_[K]; if(plosiv > 0){ plosiv = 1; } newamp2_model_to_indexes(&c2->c2const, indexes, &model, rate_K_vec, c2->n2_rate_K_sample_freqs_kHz, K, &mean, rate_K_vec_no_mean, rate_K_vec_no_mean_, plosiv); pack_natural_or_gray(bits, &nbit, indexes[0], 9, 0); //pack_natural_or_gray(bits, &nbit, indexes[1], 9, 0); pack_natural_or_gray(bits, &nbit, indexes[2], 3, 0); pack_natural_or_gray(bits, &nbit, indexes[3], 6, 0); assert(nbit == (unsigned)codec2_bits_per_frame(c2)); } /*---------------------------------------------------------------------------*\ FUNCTION....: codec2_decode_450 AUTHOR......: Thomas Kurin and Stefan Erhardt INSTITUTE...: Institute for Electronics Engineering, University of Erlangen-Nuremberg DATE CREATED: July 2018 \*---------------------------------------------------------------------------*/ void codec2_decode_450(struct CODEC2 *c2, short speech[], const unsigned char * bits) { MODEL model[4]; int indexes[4]; int i; unsigned int nbit = 0; assert(c2 != NULL); /* unpack bits from channel ------------------------------------*/ indexes[0] = unpack_natural_or_gray(bits, &nbit, 9, 0); //indexes[1] = unpack_natural_or_gray(bits, &nbit, 9, 0); indexes[2] = unpack_natural_or_gray(bits, &nbit, 3, 0); indexes[3] = unpack_natural_or_gray(bits, &nbit, 6, 0); int M = 4; COMP HH[M][MAX_AMP+1]; float interpolated_surface_[M][NEWAMP2_K]; int pwbFlag = 0; newamp2_indexes_to_model(&c2->c2const, model, (COMP*)HH, (float*)interpolated_surface_, c2->n2_prev_rate_K_vec_, &c2->Wo_left, &c2->voicing_left, c2->n2_rate_K_sample_freqs_kHz, NEWAMP2_K, c2->phase_fft_fwd_cfg, c2->phase_fft_inv_cfg, indexes, 1.5, pwbFlag); for(i=0; in_samp*i], &model[i], &HH[i][0], 1.5); } } /*---------------------------------------------------------------------------*\ FUNCTION....: codec2_decode_450pwb AUTHOR......: Thomas Kurin and Stefan Erhardt INSTITUTE...: Institute for Electronics Engineering, University of Erlangen-Nuremberg DATE CREATED: July 2018 Decodes the 450 codec data in pseudo wideband at 16kHz samplerate. \*---------------------------------------------------------------------------*/ void codec2_decode_450pwb(struct CODEC2 *c2, short speech[], const unsigned char * bits) { MODEL model[4]; int indexes[4]; int i; unsigned int nbit = 0; assert(c2 != NULL); /* unpack bits from channel ------------------------------------*/ indexes[0] = unpack_natural_or_gray(bits, &nbit, 9, 0); //indexes[1] = unpack_natural_or_gray(bits, &nbit, 9, 0); indexes[2] = unpack_natural_or_gray(bits, &nbit, 3, 0); indexes[3] = unpack_natural_or_gray(bits, &nbit, 6, 0); int M = 4; COMP HH[M][MAX_AMP+1]; float interpolated_surface_[M][NEWAMP2_16K_K]; int pwbFlag = 1; newamp2_indexes_to_model(&c2->c2const, model, (COMP*)HH, (float*)interpolated_surface_, c2->n2_pwb_prev_rate_K_vec_, &c2->Wo_left, &c2->voicing_left, c2->n2_pwb_rate_K_sample_freqs_kHz, NEWAMP2_16K_K, c2->phase_fft_fwd_cfg, c2->phase_fft_inv_cfg, indexes, 1.5, pwbFlag); for(i=0; in_samp*i], &model[i], &HH[i][0], 1.5); } } /*---------------------------------------------------------------------------* \ FUNCTION....: synthesise_one_frame() AUTHOR......: David Rowe DATE CREATED: 23/8/2010 Synthesise 80 speech samples (10ms) from model parameters. \*---------------------------------------------------------------------------*/ void synthesise_one_frame(struct CODEC2 *c2, short speech[], MODEL *model, COMP Aw[], float gain) { int i; if ( CODEC2_MODE_ACTIVE(CODEC2_MODE_700C, c2->mode) || CODEC2_MODE_ACTIVE(CODEC2_MODE_450, c2->mode) || CODEC2_MODE_ACTIVE(CODEC2_MODE_450PWB, c2->mode) ) { /* newamp1/2, we've already worked out rate L phase */ COMP *H = Aw; phase_synth_zero_order(c2->n_samp, model, &c2->ex_phase, H); } else { /* LPC based phase synthesis */ COMP H[MAX_AMP+1]; sample_phase(model, H, Aw); phase_synth_zero_order(c2->n_samp, model, &c2->ex_phase, H); } postfilter(model, &c2->bg_est); synthesise(c2->n_samp, c2->fftr_inv_cfg, c2->Sn_, model, c2->Pn, 1); for(i=0; in_samp; i++) { c2->Sn_[i] *= gain; } ear_protection(c2->Sn_, c2->n_samp); for(i=0; in_samp; i++) { if (c2->Sn_[i] > 32767.0) speech[i] = 32767; else if (c2->Sn_[i] < -32767.0) speech[i] = -32767; else speech[i] = c2->Sn_[i]; } } /*---------------------------------------------------------------------------* \ FUNCTION....: analyse_one_frame() AUTHOR......: David Rowe DATE CREATED: 23/8/2010 Extract sinusoidal model parameters from 80 speech samples (10ms of speech). \*---------------------------------------------------------------------------*/ void analyse_one_frame(struct CODEC2 *c2, MODEL *model, short speech[]) { COMP Sw[FFT_ENC]; float pitch; int i; int n_samp = c2->n_samp; int m_pitch = c2->m_pitch; /* Read input speech */ for(i=0; iSn[i] = c2->Sn[i+n_samp]; for(i=0; iSn[i+m_pitch-n_samp] = speech[i]; dft_speech(&c2->c2const, c2->fft_fwd_cfg, Sw, c2->Sn, c2->w); /* Estimate pitch */ nlp(c2->nlp, c2->Sn, n_samp, &pitch, Sw, c2->W, &c2->prev_f0_enc); model->Wo = TWO_PI/pitch; model->L = PI/model->Wo; /* estimate model parameters */ two_stage_pitch_refinement(&c2->c2const, model, Sw); /* estimate phases when doing ML experiments */ if (c2->fmlfeat != NULL) estimate_amplitudes(model, Sw, c2->W, 1); else estimate_amplitudes(model, Sw, c2->W, 0); est_voicing_mbe(&c2->c2const, model, Sw, c2->W); #ifdef DUMP dump_model(model); #endif } /*---------------------------------------------------------------------------* \ FUNCTION....: ear_protection() AUTHOR......: David Rowe DATE CREATED: Nov 7 2012 Limits output level to protect ears when there are bit errors or the input is overdriven. This doesn't correct or mask bit errors, just reduces the worst of their damage. \*---------------------------------------------------------------------------*/ static void ear_protection(float in_out[], int n) { float max_sample, over, gain; int i; /* find maximum sample in frame */ max_sample = 0.0; for(i=0; i max_sample) max_sample = in_out[i]; /* determine how far above set point */ over = max_sample/30000.0; /* If we are x dB over set point we reduce level by 2x dB, this attenuates major excursions in amplitude (likely to be caused by bit errors) more than smaller ones */ if (over > 1.0) { gain = 1.0/(over*over); for(i=0; i= 0.0) && (beta <= 1.0)); assert((gamma >= 0.0) && (gamma <= 1.0)); c2->lpc_pf = enable; c2->bass_boost = bass_boost; c2->beta = beta; c2->gamma = gamma; } /* Allows optional stealing of one of the voicing bits for use as a spare bit, only 1300 & 1400 & 1600 bit/s supported for now. Experimental method of sending voice/data frames for FreeDV. */ int codec2_get_spare_bit_index(struct CODEC2 *c2) { assert(c2 != NULL); switch(c2->mode) { case CODEC2_MODE_1300: return 2; // bit 2 (3th bit) is v2 (third voicing bit) break; case CODEC2_MODE_1400: return 10; // bit 10 (11th bit) is v2 (third voicing bit) break; case CODEC2_MODE_1600: return 15; // bit 15 (16th bit) is v2 (third voicing bit) break; } return -1; } /* Reconstructs the spare voicing bit. Note works on unpacked bits for convenience. */ int codec2_rebuild_spare_bit(struct CODEC2 *c2, char unpacked_bits[]) { int v1,v3; assert(c2 != NULL); v1 = unpacked_bits[1]; switch(c2->mode) { case CODEC2_MODE_1300: v3 = unpacked_bits[1+1+1]; /* if either adjacent frame is voiced, make this one voiced */ unpacked_bits[2] = (v1 || v3); return 0; break; case CODEC2_MODE_1400: v3 = unpacked_bits[1+1+8+1]; /* if either adjacent frame is voiced, make this one voiced */ unpacked_bits[10] = (v1 || v3); return 0; break; case CODEC2_MODE_1600: v3 = unpacked_bits[1+1+8+5+1]; /* if either adjacent frame is voiced, make this one voiced */ unpacked_bits[15] = (v1 || v3); return 0; break; } return -1; } void codec2_set_natural_or_gray(struct CODEC2 *c2, int gray) { assert(c2 != NULL); c2->gray = gray; } void codec2_set_softdec(struct CODEC2 *c2, float *softdec) { assert(c2 != NULL); c2->softdec = softdec; } void codec2_open_mlfeat(struct CODEC2 *codec2_state, char *feat_fn, char *model_fn) { if ((codec2_state->fmlfeat = fopen(feat_fn, "wb")) == NULL) { fprintf(stderr, "error opening machine learning feature file: %s\n", feat_fn); exit(1); } if (model_fn) { if ((codec2_state->fmlmodel = fopen(model_fn, "wb")) == NULL) { fprintf(stderr, "error opening machine learning Codec 2 model file: %s\n", feat_fn); exit(1); } } } #ifndef __EMBEDDED__ void codec2_load_codebook(struct CODEC2 *codec2_state, int num, char *filename) { FILE *f; if ((f = fopen(filename, "rb")) == NULL) { fprintf(stderr, "error opening codebook file: %s\n", filename); exit(1); } //fprintf(stderr, "reading newamp1vq_cb[%d] k=%d m=%d\n", num, newamp1vq_cb[num].k, newamp1vq_cb[num].m); float tmp[newamp1vq_cb[num].k*newamp1vq_cb[num].m]; int nread = fread(tmp, sizeof(float), newamp1vq_cb[num].k*newamp1vq_cb[num].m, f); float *p = (float*)newamp1vq_cb[num].cb; for(int i=0; inse) return codec2_state->se/codec2_state->nse; else return 0; } float *codec2_enable_user_ratek(struct CODEC2 *codec2_state, int *K) { codec2_state->user_rate_K_vec_no_mean_ = (float*)malloc(sizeof(float)*NEWAMP1_K); *K = NEWAMP1_K; return codec2_state->user_rate_K_vec_no_mean_; } void codec2_700c_post_filter(struct CODEC2 *codec2_state, int en) { codec2_state->post_filter_en = en; } void codec2_700c_eq(struct CODEC2 *codec2_state, int en) { codec2_state->eq_en = en; codec2_state->se = 0.0; codec2_state->nse = 0; } codec2-1.0.1/src/codec2.h000066400000000000000000000103171412132000500147350ustar00rootroot00000000000000/*---------------------------------------------------------------------------*\ FILE........: codec2.h AUTHOR......: David Rowe DATE CREATED: 21 August 2010 Codec 2 fully quantised encoder and decoder functions. If you want use Codec 2, these are the functions you need to call. \*---------------------------------------------------------------------------*/ /* Copyright (C) 2010 David Rowe All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 2.1, as published by the Free Software Foundation. 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 Lesser General Public License along with this program; if not, see . */ #ifndef __CODEC2__ #define __CODEC2__ #include #ifdef __cplusplus extern "C" { #endif #define CODEC2_MODE_3200 0 #define CODEC2_MODE_2400 1 #define CODEC2_MODE_1600 2 #define CODEC2_MODE_1400 3 #define CODEC2_MODE_1300 4 #define CODEC2_MODE_1200 5 #define CODEC2_MODE_700C 8 #define CODEC2_MODE_450 10 #define CODEC2_MODE_450PWB 11 #ifndef CODEC2_MODE_EN_DEFAULT #define CODEC2_MODE_EN_DEFAULT 1 #endif // by default we enable all modes // disable during compile time with -DCODEC2_MODE_1600_EN=0 // all but CODEC2 1600 are enabled then //or the other way round // -DCODEC2_MODE_EN_DEFAULT=0 -DCODEC2_MODE_1600_EN=1 // only CODEC2 Mode 1600 #if !defined(CODEC2_MODE_3200_EN) #define CODEC2_MODE_3200_EN CODEC2_MODE_EN_DEFAULT #endif #if !defined(CODEC2_MODE_2400_EN) #define CODEC2_MODE_2400_EN CODEC2_MODE_EN_DEFAULT #endif #if !defined(CODEC2_MODE_1600_EN) #define CODEC2_MODE_1600_EN CODEC2_MODE_EN_DEFAULT #endif #if !defined(CODEC2_MODE_1400_EN) #define CODEC2_MODE_1400_EN CODEC2_MODE_EN_DEFAULT #endif #if !defined(CODEC2_MODE_1300_EN) #define CODEC2_MODE_1300_EN CODEC2_MODE_EN_DEFAULT #endif #if !defined(CODEC2_MODE_1200_EN) #define CODEC2_MODE_1200_EN CODEC2_MODE_EN_DEFAULT #endif #if !defined(CODEC2_MODE_700C_EN) #define CODEC2_MODE_700C_EN CODEC2_MODE_EN_DEFAULT #endif #if !defined(CODEC2_MODE_450_EN) #define CODEC2_MODE_450_EN CODEC2_MODE_EN_DEFAULT #endif #if !defined(CODEC2_MODE_450PWB_EN) #define CODEC2_MODE_450PWB_EN CODEC2_MODE_EN_DEFAULT #endif #define CODEC2_MODE_ACTIVE(mode_name, var) ((mode_name##_EN) == 0 ? 0: (var) == mode_name) struct CODEC2; struct CODEC2 *codec2_create(int mode); void codec2_destroy(struct CODEC2 *codec2_state); void codec2_encode(struct CODEC2 *codec2_state, unsigned char bytes[], short speech_in[]); void codec2_decode(struct CODEC2 *codec2_state, short speech_out[], const unsigned char bytes[]); void codec2_decode_ber(struct CODEC2 *codec2_state, short speech_out[], const unsigned char *bytes, float ber_est); int codec2_samples_per_frame(struct CODEC2 *codec2_state); int codec2_bits_per_frame(struct CODEC2 *codec2_state); int codec2_bytes_per_frame(struct CODEC2 *codec2_state); void codec2_set_lpc_post_filter(struct CODEC2 *codec2_state, int enable, int bass_boost, float beta, float gamma); int codec2_get_spare_bit_index(struct CODEC2 *codec2_state); int codec2_rebuild_spare_bit(struct CODEC2 *codec2_state, char unpacked_bits[]); void codec2_set_natural_or_gray(struct CODEC2 *codec2_state, int gray); void codec2_set_softdec(struct CODEC2 *c2, float *softdec); float codec2_get_energy(struct CODEC2 *codec2_state, const unsigned char *bits); // support for ML and VQ experiments void codec2_open_mlfeat(struct CODEC2 *codec2_state, char *feat_filename, char *model_filename); void codec2_load_codebook(struct CODEC2 *codec2_state, int num, char *filename); float codec2_get_var(struct CODEC2 *codec2_state); float *codec2_enable_user_ratek(struct CODEC2 *codec2_state, int *K); // 700C post filter and equaliser void codec2_700c_post_filter(struct CODEC2 *codec2_state, int en); void codec2_700c_eq(struct CODEC2 *codec2_state, int en); #ifdef __cplusplus } #endif #endif codec2-1.0.1/src/codec2_cohpsk.h000066400000000000000000000056171412132000500163130ustar00rootroot00000000000000/*---------------------------------------------------------------------------*\ FILE........: codec2_cohpsk.h AUTHOR......: David Rowe DATE CREATED: March 2015 Functions that implement a coherent PSK FDM modem. \*---------------------------------------------------------------------------*/ /* Copyright (C) 2015 David Rowe All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 2.1, as published by the Free Software Foundation. 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 Lesser General Public License along with this program; if not, see . */ #ifndef __CODEC2_COHPSK__ #define __CODEC2_COHPSK__ #define COHPSK_BITS_PER_FRAME 56 /* hard coded for now */ #define COHPSK_NC 7 /* hard coded for now */ #define COHPSK_NOM_SAMPLES_PER_FRAME 600 #define COHPSK_MAX_SAMPLES_PER_FRAME 625 #define COHPSK_RS 75 #define COHPSK_FS 7500 /* note this is a wierd value to get an integer oversampling rate */ #define COHPSK_CLIP 6.5 /* hard clipping for Nc*Nc=14 to reduce PAPR */ #include "comp.h" #include "modem_stats.h" struct COHPSK; extern const int test_bits_coh[]; struct COHPSK *cohpsk_create(void); void cohpsk_destroy(struct COHPSK *coh); void cohpsk_mod(struct COHPSK *cohpsk, COMP tx_fdm[], int tx_bits[], int nbits); void cohpsk_clip(COMP tx_fdm[], float clip_thresh, int n); void cohpsk_demod(struct COHPSK *cohpsk, float rx_bits[], int *sync, COMP rx_fdm[], int *nin_frame); void cohpsk_get_demod_stats(struct COHPSK *cohpsk, struct MODEM_STATS *stats); void cohpsk_set_verbose(struct COHPSK *coh, int verbose); void cohpsk_get_test_bits(struct COHPSK *coh, int rx_bits[]); void cohpsk_put_test_bits(struct COHPSK *coh, int *state, short error_pattern[], int *bit_errors, char rx_bits[], int channel); int cohpsk_error_pattern_size(void); void cohpsk_set_frame(struct COHPSK *coh, int frame); void fdmdv_freq_shift_coh(COMP rx_fdm_fcorr[], COMP rx_fdm[], float foff, float Fs, COMP *foff_phase_rect, int nin); void cohpsk_set_freq_est_mode(struct COHPSK *coh, int used_simple_mode); /* used for accessing upper and lower bits before diversity combination */ float *cohpsk_get_rx_bits_lower(struct COHPSK *coh); float *cohpsk_get_rx_bits_upper(struct COHPSK *coh); void cohpsk_set_carrier_ampl(struct COHPSK *coh, int c, float ampl); #endif codec2-1.0.1/src/codec2_fdmdv.h000066400000000000000000000107451412132000500161220ustar00rootroot00000000000000/*---------------------------------------------------------------------------*\ FILE........: codec2_fdmdv.h AUTHOR......: David Rowe DATE CREATED: April 14 2012 A 1400 bit/s (nominal) Frequency Division Multiplexed Digital Voice (FDMDV) modem. Used for digital audio over HF SSB. See README_fdmdv.txt for more information, and fdmdv_mod.c and fdmdv_demod.c for example usage. The name codec2_fdmdv.h is used to make it unique when "make installed". References: [1] http://n1su.com/fdmdv/FDMDV_Docs_Rel_1_4b.pdf \*---------------------------------------------------------------------------*/ /* Copyright (C) 2012 David Rowe All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 2.1, as published by the Free Software Foundation. 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 Lesser General Public License along with this program; if not, see . */ #ifndef __FDMDV__ #define __FDMDV__ #include "comp.h" #include "modem_stats.h" #ifdef __cplusplus extern "C" { #endif /* set up the calling convention for DLL function import/export for WIN32 cross compiling */ #ifdef __CODEC2_WIN32__ #ifdef __CODEC2_BUILDING_DLL__ #define CODEC2_WIN32SUPPORT __declspec(dllexport) __stdcall #else #define CODEC2_WIN32SUPPORT __declspec(dllimport) __stdcall #endif #else #define CODEC2_WIN32SUPPORT #endif #define FDMDV_NC 14 /* default number of data carriers */ #define FDMDV_NC_MAX 20 /* maximum number of data carriers */ #define FDMDV_BITS_PER_FRAME 28 /* 20ms frames, for nominal 1400 bit/s */ #define FDMDV_NOM_SAMPLES_PER_FRAME 160 /* modulator output samples/frame and nominal demod samples/frame */ /* at 8000 Hz sample rate */ #define FDMDV_MAX_SAMPLES_PER_FRAME 200 /* max demod samples/frame, use this to allocate storage */ #define FDMDV_SCALE 750 /* suggested scaling for 16 bit shorts */ #define FDMDV_FCENTRE 1500 /* Centre frequency, Nc/2 carriers below this, Nc/2 carriers above (Hz) */ /* 8 to 48 kHz sample rate conversion */ #define FDMDV_OS 2 /* oversampling rate */ #define FDMDV_OS_TAPS_16K 48 /* number of OS filter taps at 16kHz */ #define FDMDV_OS_TAPS_8K (FDMDV_OS_TAPS_16K/FDMDV_OS) /* number of OS filter taps at 8kHz */ /* FDMDV states and stats structures */ struct FDMDV; struct FDMDV * fdmdv_create(int Nc); void fdmdv_destroy(struct FDMDV *fdmdv_state); void fdmdv_use_old_qpsk_mapping(struct FDMDV *fdmdv_state); int fdmdv_bits_per_frame(struct FDMDV *fdmdv_state); float fdmdv_get_fsep(struct FDMDV *fdmdv_state); void fdmdv_set_fsep(struct FDMDV *fdmdv_state, float fsep); void fdmdv_mod(struct FDMDV *fdmdv_state, COMP tx_fdm[], int tx_bits[], int *sync_bit); void fdmdv_demod(struct FDMDV *fdmdv_state, int rx_bits[], int *reliable_sync_bit, COMP rx_fdm[], int *nin); void fdmdv_get_test_bits(struct FDMDV *fdmdv_state, int tx_bits[]); int fdmdv_error_pattern_size(struct FDMDV *fdmdv_state); void fdmdv_put_test_bits(struct FDMDV *f, int *sync, short error_pattern[], int *bit_errors, int *ntest_bits, int rx_bits[]); void fdmdv_get_demod_stats(struct FDMDV *fdmdv_state, struct MODEM_STATS *stats); void fdmdv_8_to_16(float out16k[], float in8k[], int n); void fdmdv_8_to_16_short(short out16k[], short in8k[], int n); void fdmdv_16_to_8(float out8k[], float in16k[], int n); void fdmdv_16_to_8_short(short out8k[], short in16k[], int n); void fdmdv_freq_shift(COMP rx_fdm_fcorr[], COMP rx_fdm[], float foff, COMP *foff_phase_rect, int nin); /* debug/development function(s) */ void fdmdv_dump_osc_mags(struct FDMDV *f); void fdmdv_simulate_channel(float *sig_pwr_av, COMP samples[], int nin, float target_snr); #ifdef __cplusplus } #endif #endif codec2-1.0.1/src/codec2_fft.c000066400000000000000000000101641412132000500155670ustar00rootroot00000000000000/* * codec2_fft.c * * Created on: 24.09.2016 * Author: danilo */ #include "codec2_fft.h" #include "debug_alloc.h" #ifdef USE_KISS_FFT #include "_kiss_fft_guts.h" #else #if 0 // caching constants in RAM did not seem to have an effect on performance // TODO: Decide what to with this code #define FFT_INIT_CACHE_SIZE 4 const arm_cfft_instance_f32* fft_init_cache[FFT_INIT_CACHE_SIZE]; static const arm_cfft_instance_f32* arm_fft_instance2ram(const arm_cfft_instance_f32* in) { arm_cfft_instance_f32* out = malloc(sizeof(arm_cfft_instance_f32)); if (out) { memcpy(out,in,sizeof(arm_cfft_instance_f32)); out->pBitRevTable = malloc(out->bitRevLength * sizeof(uint16_t)); out->pTwiddle = malloc(out->fftLen * sizeof(float32_t)); memcpy((void*)out->pBitRevTable,in->pBitRevTable,out->bitRevLength * sizeof(uint16_t)); memcpy((void*)out->pTwiddle,in->pTwiddle,out->fftLen * sizeof(float32_t)); } return out; } static const arm_cfft_instance_f32* arm_fft_cache_get(const arm_cfft_instance_f32* romfft) { const arm_cfft_instance_f32* retval = NULL; static int used = 0; for (int i = 0; fft_init_cache[i] != NULL && i < used; i++) { if (romfft->fftLen == fft_init_cache[i]->fftLen) { retval = fft_init_cache[i]; break; } } if (retval == NULL && used < FFT_INIT_CACHE_SIZE) { retval = arm_fft_instance2ram(romfft); fft_init_cache[used++] = retval; } if (retval == NULL) { retval = romfft; } return retval; } #endif #endif void codec2_fft_free(codec2_fft_cfg cfg) { #ifdef USE_KISS_FFT KISS_FFT_FREE(cfg); #else FREE(cfg); #endif } codec2_fft_cfg codec2_fft_alloc(int nfft, int inverse_fft, void* mem, size_t* lenmem) { codec2_fft_cfg retval; #ifdef USE_KISS_FFT retval = kiss_fft_alloc(nfft, inverse_fft, mem, lenmem); #else retval = MALLOC(sizeof(codec2_fft_struct)); retval->inverse = inverse_fft; switch(nfft) { case 128: retval->instance = &arm_cfft_sR_f32_len128; break; case 256: retval->instance = &arm_cfft_sR_f32_len256; break; case 512: retval->instance = &arm_cfft_sR_f32_len512; break; // case 1024: // retval->instance = &arm_cfft_sR_f32_len1024; // break; default: abort(); } // retval->instance = arm_fft_cache_get(retval->instance); #endif return retval; } codec2_fftr_cfg codec2_fftr_alloc(int nfft, int inverse_fft, void* mem, size_t* lenmem) { codec2_fftr_cfg retval; #ifdef USE_KISS_FFT retval = kiss_fftr_alloc(nfft, inverse_fft, mem, lenmem); #else retval = MALLOC(sizeof(codec2_fftr_struct)); retval->inverse = inverse_fft; retval->instance = MALLOC(sizeof(arm_rfft_fast_instance_f32)); arm_rfft_fast_init_f32(retval->instance,nfft); // memcpy(&retval->instance->Sint,arm_fft_cache_get(&retval->instance->Sint),sizeof(arm_cfft_instance_f32)); #endif return retval; } void codec2_fftr_free(codec2_fftr_cfg cfg) { #ifdef USE_KISS_FFT KISS_FFT_FREE(cfg); #else FREE(cfg->instance); FREE(cfg); #endif } // there is a little overhead for inplace kiss_fft but this is // on the powerful platforms like the Raspberry or even x86 PC based ones // not noticeable // the reduced usage of RAM and increased performance on STM32 platforms // should be worth it. void codec2_fft_inplace(codec2_fft_cfg cfg, codec2_fft_cpx* inout) { #ifdef USE_KISS_FFT // decide whether to use the local stack based buffer for in // or to allow kiss_fft to allocate RAM // second part is just to play safe since first method // is much faster and uses less RAM if (cfg->nfft <= 512) { kiss_fft_cpx in[512]; memcpy(in,inout,cfg->nfft*sizeof(kiss_fft_cpx)); kiss_fft(cfg, in, (kiss_fft_cpx*)inout); } else { kiss_fft(cfg, (kiss_fft_cpx*)inout, (kiss_fft_cpx*)inout); } #else arm_cfft_f32(cfg->instance,(float*)inout,cfg->inverse,1); if (cfg->inverse) { arm_scale_f32((float*)inout,cfg->instance->fftLen,(float*)inout,cfg->instance->fftLen*2); } #endif } codec2-1.0.1/src/codec2_fft.h000066400000000000000000000053001412132000500155700ustar00rootroot00000000000000/* * codec2_fft.h * * Created on: 17.09.2016 * Author: danilo */ #ifndef DRIVERS_FREEDV_CODEC2_FFT_H_ #define DRIVERS_FREEDV_CODEC2_FFT_H_ #include #include #include #include #include #ifdef FDV_ARM_MATH #include "fdv_arm_math.h" #else #define USE_KISS_FFT #endif #include "defines.h" #include "comp.h" typedef COMP codec2_fft_cpx; #include "kiss_fftr.h" #ifdef USE_KISS_FFT #include "kiss_fft.h" typedef kiss_fftr_cfg codec2_fftr_cfg; typedef kiss_fft_cfg codec2_fft_cfg; typedef kiss_fft_scalar codec2_fft_scalar; #else typedef float32_t codec2_fft_scalar; typedef struct { arm_rfft_fast_instance_f32* instance; int inverse; } codec2_fftr_struct; typedef codec2_fftr_struct* codec2_fftr_cfg; typedef struct { const arm_cfft_instance_f32* instance; int inverse; } codec2_fft_struct; typedef codec2_fft_struct* codec2_fft_cfg; #endif static inline void codec2_fftr(codec2_fftr_cfg cfg, codec2_fft_scalar* in, codec2_fft_cpx* out) { #ifdef USE_KISS_FFT kiss_fftr(cfg, in, (kiss_fft_cpx*)out); #else arm_rfft_fast_f32(cfg->instance,in,(float*)out,cfg->inverse); out->imag = 0; // remove out[FFT_ENC/2]->real stored in out[0].imag #endif } static inline void codec2_fftri(codec2_fftr_cfg cfg, codec2_fft_cpx* in, codec2_fft_scalar* out) { #ifdef USE_KISS_FFT kiss_fftri(cfg, (kiss_fft_cpx*)in, out); #else arm_rfft_fast_f32(cfg->instance,(float*)in,out,cfg->inverse); // arm_scale_f32(out,cfg->instance->fftLenRFFT,out,cfg->instance->fftLenRFFT); #endif } codec2_fft_cfg codec2_fft_alloc(int nfft, int inverse_fft, void* mem, size_t* lenmem); codec2_fftr_cfg codec2_fftr_alloc(int nfft, int inverse_fft, void* mem, size_t* lenmem); void codec2_fft_free(codec2_fft_cfg cfg); void codec2_fftr_free(codec2_fftr_cfg cfg); static inline void codec2_fft(codec2_fft_cfg cfg, codec2_fft_cpx* in, codec2_fft_cpx* out) { #ifdef USE_KISS_FFT kiss_fft(cfg, (kiss_fft_cpx*)in, (kiss_fft_cpx*)out); #else memcpy(out,in,cfg->instance->fftLen*2*sizeof(float)); arm_cfft_f32(cfg->instance,(float*)out,cfg->inverse, 1); // TODO: this is not nice, but for now required to keep changes minimal // however, since main goal is to reduce the memory usage // we should convert to an in place interface // on PC like platforms the overhead of using the "inplace" kiss_fft calls // is neglectable compared to the gain in memory usage on STM32 platforms if (cfg->inverse) { arm_scale_f32((float*)out,cfg->instance->fftLen,(float*)out,cfg->instance->fftLen*2); } #endif } void codec2_fft_inplace(codec2_fft_cfg cfg, codec2_fft_cpx* inout); #endif codec2-1.0.1/src/codec2_fifo.c000066400000000000000000000070461412132000500157400ustar00rootroot00000000000000/*---------------------------------------------------------------------------*\ FILE........: codec2_fifo.c AUTHOR......: David Rowe DATE CREATED: Oct 15 2012 A FIFO design useful in gluing the FDMDV modem and codec together in integrated applications. The unittest/tfifo indicates these routines are thread safe without the need for syncronisation object, e.g. a different thread can read and write to a fifo at the same time. \*---------------------------------------------------------------------------*/ /* Copyright (C) 2012 David Rowe All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 2.1, as published by the Free Software Foundation. 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 Lesser General Public License along with this program; if not, see . */ #include #include #include #include "codec2_fifo.h" struct FIFO { short *buf; short *pin; short *pout; int nshort; }; // standard create function struct FIFO *codec2_fifo_create(int nshort) { short *buf = (short*)malloc(sizeof(short)*nshort); assert(buf != NULL); return codec2_fifo_create_buf(nshort, buf); } // alternate create function where buffer is externally supplied struct FIFO *codec2_fifo_create_buf(int nshort, short* buf) { struct FIFO *fifo; assert(buf != NULL); fifo = (struct FIFO *)malloc(sizeof(struct FIFO)); assert(fifo != NULL); fifo->buf = buf; fifo->pin = fifo->buf; fifo->pout = fifo->buf; fifo->nshort = nshort; return fifo; } void codec2_fifo_destroy(struct FIFO *fifo) { assert(fifo != NULL); free(fifo->buf); free(fifo); } int codec2_fifo_write(struct FIFO *fifo, short data[], int n) { int i; short *pdata; short *pin = fifo->pin; assert(fifo != NULL); assert(data != NULL); if (n > codec2_fifo_free(fifo)) { return -1; } else { /* This could be made more efficient with block copies using memcpy */ pdata = data; for(i=0; ibuf + fifo->nshort)) pin = fifo->buf; } fifo->pin = pin; } return 0; } int codec2_fifo_read(struct FIFO *fifo, short data[], int n) { int i; short *pdata; short *pout = fifo->pout; assert(fifo != NULL); assert(data != NULL); if (n > codec2_fifo_used(fifo)) { return -1; } else { /* This could be made more efficient with block copies using memcpy */ pdata = data; for(i=0; ibuf + fifo->nshort)) pout = fifo->buf; } fifo->pout = pout; } return 0; } int codec2_fifo_used(const struct FIFO * const fifo) { short *pin = fifo->pin; short *pout = fifo->pout; unsigned int used; assert(fifo != NULL); if (pin >= pout) used = pin - pout; else used = fifo->nshort + (unsigned int)(pin - pout); return used; } int codec2_fifo_free(const struct FIFO * const fifo) { // available storage is one less than nshort as prd == pwr // is reserved for empty rather than full return fifo->nshort - codec2_fifo_used(fifo) - 1; } codec2-1.0.1/src/codec2_fifo.h000066400000000000000000000032211412132000500157340ustar00rootroot00000000000000/*---------------------------------------------------------------------------*\ FILE........: codec2_fifo.h AUTHOR......: David Rowe DATE CREATED: Oct 15 2012 A FIFO design useful in gluing the FDMDV modem and codec together in integrated applications. The name codec2_fifo.h is used to make it unique when "make installed". \*---------------------------------------------------------------------------*/ /* Copyright (C) 2012 David Rowe All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 2.1, as published by the Free Software Foundation. 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 Lesser General Public License along with this program; if not, see . */ #ifndef __FIFO__ #define __FIFO__ #ifdef __cplusplus extern "C" { #endif struct FIFO; struct FIFO *codec2_fifo_create(int nshort); struct FIFO *codec2_fifo_create_buf(int nshort, short* buf); void codec2_fifo_destroy(struct FIFO *fifo); int codec2_fifo_write(struct FIFO *fifo, short data[], int n); int codec2_fifo_read(struct FIFO *fifo, short data[], int n); /* Return the number of bytes stored in the FIFO */ int codec2_fifo_used(const struct FIFO * const fifo); /* Return the space available in the FIFO */ int codec2_fifo_free(const struct FIFO * const fifo); #ifdef __cplusplus } #endif #endif codec2-1.0.1/src/codec2_fm.h000066400000000000000000000032641412132000500154220ustar00rootroot00000000000000/*---------------------------------------------------------------------------*\ FILE........: codec2_fm.h AUTHOR......: David Rowe DATE CREATED: February 2015 Functions that implement analog FM, see also octave/fm.m. \*---------------------------------------------------------------------------*/ /* Copyright (C) 2015 David Rowe All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 2.1, as published by the Free Software Foundation. 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 Lesser General Public License along with this program; if not, see . */ #ifndef __CODEC2_FM__ #define __CODEC2_FM__ #include "comp.h" struct FM { float Fs; /* setme: sample rate */ float fm_max; /* setme: maximum modulation frequency */ float fd; /* setme: maximum deviation */ float fc; /* setme: carrier frequency */ COMP *rx_bb; COMP rx_bb_filt_prev; float *rx_dem_mem; float tx_phase; int nsam; COMP lo_phase; }; struct FM *fm_create(int nsam); void fm_destroy(struct FM *fm_states); void fm_demod(struct FM *fm, float rx_out[], float rx[]); void fm_mod(struct FM *fm, float tx_in[], float tx_out[]); void fm_mod_comp(struct FM *fm_states, float tx_in[], COMP tx_out[]); #endif codec2-1.0.1/src/codec2_internal.h000066400000000000000000000117741412132000500166410ustar00rootroot00000000000000/*---------------------------------------------------------------------------*\ FILE........: codec2_internal.h AUTHOR......: David Rowe DATE CREATED: April 16 2012 Header file for Codec2 internal states, exposed via this header file to assist in testing. \*---------------------------------------------------------------------------*/ /* Copyright (C) 2012 David Rowe All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 2.1, as published by the Free Software Foundation. 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 Lesser General Public License along with this program; if not, see . */ #ifndef __CODEC2_INTERNAL__ #define __CODEC2_INTERNAL__ #include "codec2_fft.h" #include "newamp1.h" #include "newamp2.h" struct CODEC2 { int mode; C2CONST c2const; int Fs; int n_samp; int m_pitch; codec2_fft_cfg fft_fwd_cfg; /* forward FFT config */ codec2_fftr_cfg fftr_fwd_cfg; /* forward real FFT config */ float *w; /* [m_pitch] time domain hamming window */ float W[FFT_ENC]; /* DFT of w[] */ float *Pn; /* [2*n_samp] trapezoidal synthesis window */ float *bpf_buf; /* buffer for band pass filter */ float *Sn; /* [m_pitch] input speech */ float hpf_states[2]; /* high pass filter states */ void *nlp; /* pitch predictor states */ int gray; /* non-zero for gray encoding */ codec2_fftr_cfg fftr_inv_cfg; /* inverse FFT config */ float *Sn_; /* [2*n_samp] synthesised output speech */ float ex_phase; /* excitation model phase track */ float bg_est; /* background noise estimate for post filter */ float prev_f0_enc; /* previous frame's f0 estimate */ MODEL prev_model_dec; /* previous frame's model parameters */ float prev_lsps_dec[LPC_ORD]; /* previous frame's LSPs */ float prev_e_dec; /* previous frame's LPC energy */ int lpc_pf; /* LPC post filter on */ int bass_boost; /* LPC post filter bass boost */ float beta; /* LPC post filter parameters */ float gamma; float xq_enc[2]; /* joint pitch and energy VQ states */ float xq_dec[2]; int smoothing; /* enable smoothing for channels with errors */ float *softdec; /* optional soft decn bits from demod */ /* newamp1 states */ float rate_K_sample_freqs_kHz[NEWAMP1_K]; float prev_rate_K_vec_[NEWAMP1_K]; float Wo_left; int voicing_left; codec2_fft_cfg phase_fft_fwd_cfg; codec2_fft_cfg phase_fft_inv_cfg; float se; /* running sum of squared error */ unsigned int nse; /* number of terms in sum */ float *user_rate_K_vec_no_mean_; /* optional, user supplied vector for quantisation experiments */ int post_filter_en; float eq[NEWAMP1_K]; /* optional equaliser */ int eq_en; /*newamp2 states (also uses newamp1 states )*/ float energy_prev; float n2_rate_K_sample_freqs_kHz[NEWAMP2_K]; float n2_prev_rate_K_vec_[NEWAMP2_K]; float n2_pwb_rate_K_sample_freqs_kHz[NEWAMP2_16K_K]; float n2_pwb_prev_rate_K_vec_[NEWAMP2_16K_K]; /* used to dump features for deep learning experiments */ FILE *fmlfeat, *fmlmodel; /* encode/decode function pointers for the selected mode */ void (*encode)(struct CODEC2 *c2, unsigned char * bits, short speech[]); void (*decode)(struct CODEC2 *c2, short speech[], const unsigned char * bits); void (*decode_ber)(struct CODEC2 *c2, short speech[], const unsigned char * bits, float ber_est); }; // test and debug void analyse_one_frame(struct CODEC2 *c2, MODEL *model, short speech[]); void synthesise_one_frame(struct CODEC2 *c2, short speech[], MODEL *model, COMP Aw[], float gain); #endif codec2-1.0.1/src/codec2_ofdm.h000066400000000000000000000062441412132000500157460ustar00rootroot00000000000000/*---------------------------------------------------------------------------*\ FILE........: codec2_ofdm.h AUTHORS.....: David Rowe & Steve Sampson DATE CREATED: June 2017 External user references to the modem library. \*---------------------------------------------------------------------------*/ /* Copyright (C) 2017 David Rowe All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 2.1, as published by the Free Software Foundation. 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 Lesser General Public License along with this program; if not, see . */ #ifndef CODEC2_OFDM_H #define CODEC2_OFDM_H /* Includes */ #include #include #include "comp.h" #include "modem_stats.h" /* Defines */ #ifdef __cplusplus extern "C" { #endif #define OFDM_PEAK 16384 /* peak level of OFDM TX signal */ #define OFDM_CLIP (32767*0.35) /* experimentally derived constant to reduce PAPR to about 8dB */ #define UN_SYNC 0 /* Used with the ofdm_set_sync() */ #define AUTO_SYNC 1 #define MANUAL_SYNC 2 #define AUTO_PHASE_EST 0 #define LOCKED_PHASE_EST 1 #define LOW_BW 0 #define HIGH_BW 1 struct OFDM_CONFIG; struct OFDM; /* create and destroy modem states */ struct OFDM *ofdm_create(const struct OFDM_CONFIG * config); void ofdm_destroy(struct OFDM *); void ofdm_init_mode(char mode[], struct OFDM_CONFIG *config); /* signal processing */ void ofdm_mod(struct OFDM *, COMP *, const int *); void ofdm_demod(struct OFDM *, int *, COMP *); void ofdm_demod_shorts(struct OFDM *, int *, short *, float); int ofdm_sync_search(struct OFDM *, COMP *); int ofdm_sync_search_shorts(struct OFDM *, short *, float); void ofdm_sync_state_machine(struct OFDM *, uint8_t *); void ofdm_sync_state_machine2(struct OFDM *, uint8_t *); /* getters */ struct OFDM_CONFIG *ofdm_get_config_param(struct OFDM *ofdm); int ofdm_get_nin(struct OFDM *); int ofdm_get_samples_per_frame(struct OFDM *ofdm); int ofdm_get_samples_per_packet(struct OFDM *ofdm); int ofdm_get_max_samples_per_frame(struct OFDM *ofdm); int ofdm_get_bits_per_frame(struct OFDM *ofdm); int ofdm_get_bits_per_packet(struct OFDM *ofdm); int ofdm_get_phase_est_bandwidth_mode(struct OFDM *ofdm); /* option setters */ void ofdm_set_verbose(struct OFDM *, int); void ofdm_set_timing_enable(struct OFDM *, bool); void ofdm_set_foff_est_enable(struct OFDM *, bool); void ofdm_set_phase_est_enable(struct OFDM *, bool); void ofdm_set_phase_est_bandwidth_mode(struct OFDM *ofdm, int val); void ofdm_set_off_est_hz(struct OFDM *, float); void ofdm_set_sync(struct OFDM *, int); void ofdm_set_tx_bpf(struct OFDM *, bool); void ofdm_set_dpsk(struct OFDM *ofdm, bool val); void ofdm_set_packets_per_burst(struct OFDM *ofdm, int packetsperburst); void ofdm_print_info(struct OFDM *); #ifdef __cplusplus } #endif #endif codec2-1.0.1/src/cohpsk.c000066400000000000000000001303161412132000500150620ustar00rootroot00000000000000/*---------------------------------------------------------------------------*\ FILE........: cohpsk.c AUTHOR......: David Rowe DATE CREATED: March 2015 Functions that implement a coherent PSK FDM modem. \*---------------------------------------------------------------------------*/ /* Copyright (C) 2015 David Rowe All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 2.1, as published by the Free Software Foundation. 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 Lesser General Public License along with this program; if not, see . */ /*---------------------------------------------------------------------------*\ INCLUDES \*---------------------------------------------------------------------------*/ #include #include #include #include #include #include "codec2_cohpsk.h" #include "cohpsk_defs.h" #include "cohpsk_internal.h" #include "fdmdv_internal.h" #include "pilots_coh.h" #include "comp_prim.h" #include "kiss_fft.h" #include "linreg.h" #include "rn_coh.h" #include "test_bits_coh.h" #include "debug_alloc.h" static COMP qpsk_mod[] = { { 1.0, 0.0}, { 0.0, 1.0}, { 0.0,-1.0}, {-1.0, 0.0} }; static int sampling_points[] = {0, 1, 6, 7}; void corr_with_pilots(float *corr_out, float *mag_out, struct COHPSK *coh, int t, float f_fine); void update_ct_symb_buf(COMP ct_symb_buf[][COHPSK_NC*ND], COMP ch_symb[][COHPSK_NC*ND]); /*---------------------------------------------------------------------------*\ FUNCTIONS \*---------------------------------------------------------------------------*/ /*--------------------------------------------------------------------------* \ FUNCTION....: cohpsk_create AUTHOR......: David Rowe DATE CREATED: Marcg 2015 Create and initialise an instance of the modem. Returns a pointer to the modem states or NULL on failure. One set of states is sufficient for a full duplex modem. \*---------------------------------------------------------------------------*/ struct COHPSK *cohpsk_create(void) { struct COHPSK *coh; struct FDMDV *fdmdv; int r,c,p,i; float freq_hz, result; float tau = 2.0f * M_PI; assert(COHPSK_NC == PILOTS_NC); assert(COHPSK_NOM_SAMPLES_PER_FRAME == (COHPSK_M*NSYMROWPILOT)); assert(COHPSK_MAX_SAMPLES_PER_FRAME == (COHPSK_M*NSYMROWPILOT+COHPSK_M/P)); assert(COHPSK_ND == ND); assert(COHPSK_NSYM == NSYM); /* as we want to use the tx sym mem on fdmdv */ assert(COHPSK_NT == NT); coh = (struct COHPSK*)MALLOC(sizeof(struct COHPSK)); if (coh == NULL) return NULL; /* set up buffer of tx pilot symbols for coh demod on rx */ for(r=0; r<2*NPILOTSFRAME; ) { for(p=0; ppilot2[r][c] = pilots_coh[p][c]; } } } /* Clear symbol buffer memory */ for (r=0; rct_symb_buf[r][c].real = 0.0; coh->ct_symb_buf[r][c].imag = 0.0; } } coh->ff_phase.real = 1.0; coh->ff_phase.imag = 0.0; coh->sync = 0; coh->frame = 0; coh->ratio = 0.0; coh->nin = COHPSK_M; /* clear sync window buffer */ for (i=0; ich_fdm_frame_buf[i].real = 0.0; coh->ch_fdm_frame_buf[i].imag = 0.0; } /* set up fdmdv states so we can use those modem functions */ fdmdv = fdmdv_create(COHPSK_NC*ND - 1); fdmdv->fsep = COHPSK_RS*(1.0 + COHPSK_EXCESS_BW); for(c=0; cphase_tx[c].real = 1.0; fdmdv->phase_tx[c].imag = 0.0; /* note non-linear carrier spacing to help PAPR, works v well in conjunction with CLIP */ freq_hz = fdmdv->fsep*( -(COHPSK_NC*ND)/2 - 0.5f + powf(c + 1.0f, 0.98f) ); result = tau * freq_hz/COHPSK_FS; fdmdv->freq[c].real = cosf(result); fdmdv->freq[c].imag = sinf(result); fdmdv->freq_pol[c] = result; //printf("c: %d %f %f\n",c,freq_hz,fdmdv->freq_pol[c]); for(i=0; irx_filter_memory[c][i].real = 0.0; coh->rx_filter_memory[c][i].imag = 0.0; } /* optional per-carrier amplitude weighting for testing */ coh->carrier_ampl[c] = 1.0; } result = tau * FDMDV_FCENTRE/COHPSK_FS; fdmdv->fbb_rect.real = cosf(result); fdmdv->fbb_rect.imag = sinf(result); fdmdv->fbb_pol = result; coh->fdmdv = fdmdv; coh->sig_rms = coh->noise_rms = 0.0; for(c=0; crx_symb[r][c].real = 0.0; coh->rx_symb[r][c].imag = 0.0; } } coh->verbose = 0; /* disable optional logging by default */ coh->rx_baseband_log = NULL; coh->rx_baseband_log_col_index = 0; coh->rx_filt_log = NULL; coh->rx_filt_log_col_index = 0; coh->ch_symb_log = NULL; coh->ch_symb_log_r = 0; coh->rx_timing_log = NULL; coh->rx_timing_log_index = 0; /* test frames */ coh->ptest_bits_coh_tx = coh->ptest_bits_coh_rx[0] = coh->ptest_bits_coh_rx[1] = (int*)test_bits_coh; coh->ptest_bits_coh_end = (int*)test_bits_coh + sizeof(test_bits_coh)/sizeof(int); return coh; } /*---------------------------------------------------------------------------*\ FUNCTION....: cohpsk_destroy AUTHOR......: David Rowe DATE CREATED: March 2015 Destroy an instance of the modem. \*---------------------------------------------------------------------------*/ void cohpsk_destroy(struct COHPSK *coh) { fdmdv_destroy(coh->fdmdv); assert(coh != NULL); FREE(coh); } /*---------------------------------------------------------------------------*\ FUNCTION....: bits_to_qpsk_symbols() AUTHOR......: David Rowe DATE CREATED: March 2015 Rate Rs modulator. Maps bits to parallel DQPSK symbols and inserts pilot symbols. \*---------------------------------------------------------------------------*/ void bits_to_qpsk_symbols(COMP tx_symb[][COHPSK_NC*ND], int tx_bits[], int nbits) { int i, r, c, p_r, data_r, d, diversity; short bits; /* check allowed number of bits supplied matches number of QPSK symbols in the frame */ assert( (NSYMROW*COHPSK_NC*2 == nbits) || (NSYMROW*COHPSK_NC*2*ND == nbits)); /* if we input twice as many bits we don't do diversity */ if (NSYMROW*COHPSK_NC*2 == nbits) { diversity = 1; /* diversity mode */ } else { diversity = 2; /* twice as many bits, non diversity mode */ } /* Insert two rows of Nc pilots at beginning of data frame. Organise QPSK symbols into a NSYMBROWS rows by PILOTS_NC*ND cols matrix, each column is a carrier, time flows down the cols...... Note: the "& 0x1" prevents and non binary tx_bits[] screwing up our lives. Call me defensive. sqrtf(ND) term ensures the same energy/symbol for different diversity factors. */ r = 0; for(p_r=0; p_r<2; p_r++) { for(c=0; cpilot2[p][pc], ct_symb_buf[sampling_points[p]][c]); } linreg(&m, &b, x, y, NPILOTSFRAME+2); for(r=0; rphi_[r][c] = atan2f(yfit.imag, yfit.real); } /* amplitude estimation */ mag = 0.0f; for(p=0; pamp_[r][c] = amp_; } } /* now correct phase of data symbols */ for(c=0; cphi_[r][c]); phi_rect.imag = -sinf(coh->phi_[r][c]); coh->rx_symb[r][c] = cmult(ct_symb_buf[NPILOTSFRAME + r][c], phi_rect); i = c*NSYMROW + r; rx_symb_linear[i] = coh->rx_symb[r][c]; } } /* and finally optional diversity combination, note output is soft decn a "1" is < 0 */ for(c=0; crx_symb[r][c]; for (d=1; drx_symb[r][c + COHPSK_NC*d]); } rot = cmult(div_symb, pi_on_4); i = c*NSYMROW + r; rx_bits[2*i+1] = rot.real; rx_bits[2*i] = rot.imag; /* demodulate bits from upper and lower carriers separately for test purposes */ assert(ND == 2); i = c*NSYMROW + r; rot = cmult(coh->rx_symb[r][c], pi_on_4); coh->rx_bits_lower[2*i+1] = rot.real; coh->rx_bits_lower[2*i] = rot.imag; rot = cmult(coh->rx_symb[r][c + COHPSK_NC], pi_on_4); coh->rx_bits_upper[2*i+1] = rot.real; coh->rx_bits_upper[2*i] = rot.imag; } } /* estimate RMS signal and noise */ mag = 0.0f; for(i=0; isig_rms = mag/(NSYMROW*COHPSK_NC*ND); sum_x = 0.0f; sum_xx = 0.0f; n = 0; for (i=0; i coh->sig_rms) { sum_x += s.imag; sum_xx += s.imag*s.imag; n++; } } noise_var = 0.0f; if (n > 1) { noise_var = (n*sum_xx - sum_x*sum_x)/(n*(n-1)); } coh->noise_rms = sqrtf(noise_var); } /*---------------------------------------------------------------------------*\ FUNCTION....: tx_filter_and_upconvert_coh() AUTHOR......: David Rowe DATE CREATED: May 2015 Given NC symbols construct M samples (1 symbol) of NC filtered and upconverted symbols. TODO: work out a way to merge with fdmdv version, e.g. run time define M/NSYM, and run unittests on fdmdv and cohpsk modem afterwards. \*---------------------------------------------------------------------------*/ void tx_filter_and_upconvert_coh(COMP tx_fdm[], int Nc, const COMP tx_symbols[], COMP tx_filter_memory[COHPSK_NC*ND][COHPSK_NSYM], COMP phase_tx[], COMP freq[], COMP *fbb_phase, COMP fbb_rect) { int c; int i,j,k; float acc; COMP gain; COMP tx_baseband; COMP two = {2.0, 0.0}; float mag; gain.real = sqrtf(2.0)/2.0; gain.imag = 0.0; for(i=0; ireal /= mag; fbb_phase->imag /= mag; /* shift memory, inserting zeros at end */ for(i=0; ict_symb_buf[t+sampling_points[p]][c]); acorr = cadd(acorr, fcmult(coh->pilot2[p][pc], f_corr)); mag += cabsolute(f_corr); } corr += cabsolute(acorr); } *corr_out = corr; *mag_out = mag; } /*---------------------------------------------------------------------------*\ FUNCTION....: frame_sync_fine_freq_est() AUTHOR......: David Rowe DATE CREATED: April 2015 Returns an estimate of frame sync (coarse timing) offset and fine frequency offset, advances to next sync state if we have a reliable match for frame sync. \*---------------------------------------------------------------------------*/ void frame_sync_fine_freq_est(struct COHPSK *coh, COMP ch_symb[][COHPSK_NC*ND], int sync, int *next_sync) { int t; float f_fine, mag, max_corr, max_mag, corr, result; float tau = 2.0f * M_PI; update_ct_symb_buf(coh->ct_symb_buf, ch_symb); /* sample pilots at start of this frame and start of next frame */ if (sync == 0) { /* sample correlation over 2D grid of time and fine freq points */ max_corr = 0.0; max_mag = 1E-12; for (f_fine=-20; f_fine<=20; f_fine+=0.25) { for (t=0; t= max_corr) { max_corr = corr; max_mag = mag; coh->ct = t; coh->f_fine_est = f_fine; } } } result = coh->f_fine_est * tau / COHPSK_RS; coh->ff_rect.real = cosf(result); coh->ff_rect.imag = -sinf(result); if (coh->verbose) fprintf(stderr, " [%d] fine freq f: %6.2f max_ratio: %f ct: %d\n", coh->frame, (double)coh->f_fine_est, (double)max_corr/(double)max_mag, coh->ct); if (max_corr/max_mag > 0.9) { if (coh->verbose) fprintf(stderr, " [%d] encouraging sync word!\n", coh->frame); coh->sync_timer = 0; *next_sync = 1; } else { *next_sync = 0; } coh->ratio = max_corr/max_mag; } } void update_ct_symb_buf(COMP ct_symb_buf[][COHPSK_NC*ND], COMP ch_symb[][COHPSK_NC*ND]) { int r, c, i; /* update memory in symbol buffer */ for(r=0; rct, coh->f_fine_est); coh->ratio = fabsf(corr)/mag; // printf("%f\n", cabsolute(corr)/mag); if (fabsf(corr)/mag < 0.8) coh->sync_timer++; else coh->sync_timer = 0; if (coh->sync_timer == 10) { if (coh->verbose) fprintf(stderr," [%d] lost sync ....\n", coh->frame); next_sync = 0; } } sync = next_sync; return sync; } /*---------------------------------------------------------------------------*\ FUNCTION....: cohpsk_mod() AUTHOR......: David Rowe DATE CREATED: 5/4/2015 COHPSK modulator, take a frame of COHPSK_BITS_PER_FRAME or 2*COHPSK_BITS_PER_FRAME bits and generates a frame of COHPSK_NOM_SAMPLES_PER_FRAME modulated symbols. if nbits == COHPSK_BITS_PER_FRAME, diveristy mode is used, if nbits == 2*COHPSK_BITS_PER_FRAME diversity mode is not used. The output signal is complex to support single sided frequency shifting, for example when testing frequency offsets in channel simulation. \*---------------------------------------------------------------------------*/ void cohpsk_mod(struct COHPSK *coh, COMP tx_fdm[], int tx_bits[], int nbits) { struct FDMDV *fdmdv = coh->fdmdv; COMP tx_symb[NSYMROWPILOT][COHPSK_NC*ND]; COMP tx_onesym[COHPSK_NC*ND]; int r,c; bits_to_qpsk_symbols(tx_symb, tx_bits, nbits); for(r=0; rcarrier_ampl[c], tx_symb[r][c]); tx_filter_and_upconvert_coh(&tx_fdm[r*COHPSK_M], COHPSK_NC*ND , tx_onesym, fdmdv->tx_filter_memory, fdmdv->phase_tx, fdmdv->freq, &fdmdv->fbb_phase_tx, fdmdv->fbb_rect); } } /*---------------------------------------------------------------------------*\ FUNCTION....: cohpsk_clip() AUTHOR......: David Rowe DATE CREATED: May 2015 Hard clips a complex signal magnitude (Hilbert Clipping) to improve PAPR. \*---------------------------------------------------------------------------*/ void cohpsk_clip(COMP tx_fdm[], float clip_thresh, int n) { COMP sam; float mag; int i; for(i=0; i clip_thresh) { sam = fcmult(clip_thresh/mag, sam); } tx_fdm[i] = sam; } } /*---------------------------------------------------------------------------*\ FUNCTION....: fdm_downconvert_coh AUTHOR......: David Rowe DATE CREATED: May 2015 Frequency shift each modem carrier down to NC baseband signals. TODO: try to combine with fdmdv version, carefully re-test fdmdv modem. \*---------------------------------------------------------------------------*/ void fdm_downconvert_coh(COMP rx_baseband[COHPSK_NC][COHPSK_M+COHPSK_M/P], int Nc, COMP rx_fdm[], COMP phase_rx[], COMP freq[], int nin) { int i,c; float mag; /* maximum number of input samples to demod */ assert(nin <= (COHPSK_M+COHPSK_M/P)); /* downconvert */ for (c=0; c 4 || \ (__GNUC__ == 4 && (__GNUC_MINOR__ > 6 || \ (__GNUC_MINOR__ == 6 && \ __GNUC_PATCHLEVEL__ > 0))) #define USE_VECTOR_OPS 1 #elif __clang_major__ > 3 || \ (__clang_minor__ == 3 && (__clang_minor__ > 7 || \ (__clang_minor__ == 7 && \ __clang_patchlevel__ > 0))) #define USE_VECTOR_OPS 1 #endif #if USE_VECTOR_OPS #ifdef __ARM_NEON #include "arm_neon.h" typedef float32x4_t float4; #else /* Vector of 4 floating point numbers for use by the below function */ typedef float float4 __attribute__ ((vector_size (16))); #endif // __ARM_NEON #endif /* USE_VECTOR_OPS */ /*---------------------------------------------------------------------------*\ FUNCTION....: rx_filter_coh() AUTHOR......: David Rowe DATE CREATED: May 2015 cohpsk version of fdmdv.c rx_filter function. TODO: see if we can merge the two! Will require re-testing of fdmdv modem. \*---------------------------------------------------------------------------*/ inline void rx_filter_coh(COMP rx_filt[COHPSK_NC+1][P+1], int Nc, COMP rx_baseband[COHPSK_NC+1][COHPSK_M+COHPSK_M/P], COMP rx_filter_memory[COHPSK_NC+1][+COHPSK_NFILTER], int nin) { int c,i,j,k,l; int n=COHPSK_M/P; /* rx filter each symbol, generate P filtered output samples for each symbol. Note we keep filter memory at rate M, it's just the filter output at rate P */ for(i=0, j=0; ireal /= mag; foff_phase_rect->imag /= mag; } void rate_Fs_rx_processing(struct COHPSK *coh, COMP ch_symb[][COHPSK_NC*ND], COMP ch_fdm_frame[], float *f_est, int nsymb, int nin, int freq_track) { struct FDMDV *fdmdv = coh->fdmdv; int r, c, i, ch_fdm_frame_index; COMP rx_fdm_frame_bb[COHPSK_M+COHPSK_M/P]; COMP rx_baseband[COHPSK_NC*ND][COHPSK_M+COHPSK_M/P]; COMP rx_filt[COHPSK_NC*ND][P+1]; float env[NT*P], rx_timing; COMP rx_onesym[COHPSK_NC*ND]; float beta, g; COMP adiff, amod_strip, mod_strip; ch_fdm_frame_index = 0; rx_timing = 0; for (r=0; rfbb_phase_rx, nin); ch_fdm_frame_index += nin; fdm_downconvert_coh(rx_baseband, COHPSK_NC*ND, rx_fdm_frame_bb, fdmdv->phase_rx, fdmdv->freq, nin); rx_filter_coh(rx_filt, COHPSK_NC*ND, rx_baseband, coh->rx_filter_memory, nin); rx_timing = rx_est_timing(rx_onesym, fdmdv->Nc, rx_filt, fdmdv->rx_filter_mem_timing, env, nin, COHPSK_M); for(c=0; cNc+1; c++) { //printf("rx_onesym[%d] %f %f prev_rx_symbols[%d] %f %f\n", c, rx_onesym[c].real, rx_onesym[c].imag, // fdmdv->prev_rx_symbols[c].real, fdmdv->prev_rx_symbols[c].imag); adiff = cmult(rx_onesym[c], cconj(fdmdv->prev_rx_symbols[c])); fdmdv->prev_rx_symbols[c] = rx_onesym[c]; /* 4th power strips QPSK modulation, by multiplying phase by 4 Using the abs value of the real coord was found to help non-linear issues when noise power was large. */ amod_strip = cmult(adiff, adiff); amod_strip = cmult(amod_strip, amod_strip); amod_strip.real = fabsf(amod_strip.real); mod_strip = cadd(mod_strip, amod_strip); } //printf("modstrip: %f %f\n", mod_strip.real, mod_strip.imag); /* loop filter made up of 1st order IIR plus integrator. Integerator was found to be reqd */ fdmdv->foff_filt = (1.0f-beta)*fdmdv->foff_filt + beta*atan2f(mod_strip.imag, mod_strip.real); //printf("foff_filt: %f angle: %f\n", fdmdv->foff_filt, atan2f(mod_strip.imag, mod_strip.real)); *f_est += g*fdmdv->foff_filt; } /* Optional logging used for testing against Octave version */ if (coh->rx_baseband_log) { assert(nin <= (COHPSK_M+COHPSK_M/P)); for(c=0; crx_baseband_log[c*coh->rx_baseband_log_col_sz + coh->rx_baseband_log_col_index + i] = rx_baseband[c][i]; } } coh->rx_baseband_log_col_index += nin; assert(coh->rx_baseband_log_col_index <= coh->rx_baseband_log_col_sz); } if (coh->rx_filt_log) { for(c=0; crx_filt_log[c*coh->rx_filt_log_col_sz + coh->rx_filt_log_col_index + i] = rx_filt[c][i]; } } coh->rx_filt_log_col_index += nin/(COHPSK_M/P); } if (coh->ch_symb_log) { for(c=0; cch_symb_log[coh->ch_symb_log_r*COHPSK_NC*ND + c] = ch_symb[r][c]; } coh->ch_symb_log_r++; } if (coh->rx_timing_log) { coh->rx_timing_log[coh->rx_timing_log_index] = rx_timing; coh->rx_timing_log_index++; //printf("rx_timing_log_index: %d\n", coh->rx_timing_log_index); } /* we only allow a timing shift on one symbol per frame */ if (nin != COHPSK_M) nin = COHPSK_M; } coh->rx_timing = rx_timing; } /*---------------------------------------------------------------------------*\ FUNCTION....: cohpsk_demod() AUTHOR......: David Rowe DATE CREATED: 5/4/2015 COHPSK demodulator, takes an array of (nominally) nin_frame = COHPSK_NOM_SAMPLES_PER_FRAME modulated samples, returns an array of COHPSK_BITS_PER_FRAME bits. The input signal is complex to support single sided frequency shifting before the demod input (e.g. click to tune feature). \*---------------------------------------------------------------------------*/ void cohpsk_demod(struct COHPSK *coh, float rx_bits[], int *sync_good, COMP rx_fdm[], int *nin_frame) { COMP ch_symb[NSW*NSYMROWPILOT][COHPSK_NC*ND]; int i, j, sync, anext_sync, next_sync, nin, r, c; float max_ratio, f_est; assert(*nin_frame <= COHPSK_MAX_SAMPLES_PER_FRAME); next_sync = sync = coh->sync; for (i=0; ich_fdm_frame_buf[i] = coh->ch_fdm_frame_buf[i+*nin_frame]; //printf("nin_frame: %d i: %d i+nin_frame: %d\n", *nin_frame, i, i+*nin_frame); for (j=0; ich_fdm_frame_buf[i] = rx_fdm[j]; //printf("i: %d j: %d rx_fdm[0]: %f %f\n", i,j, rx_fdm[0].real, rx_fdm[0].imag); /* if out of sync do Initial Freq offset estimation using NSW frames to flush out filter memories */ if (sync == 0) { /* we can test +/- 20Hz, so we break this up into 3 tests to cover +/- 60Hz */ max_ratio = 0.0; f_est = 0.0; for (coh->f_est = FDMDV_FCENTRE-40.0; coh->f_est <= FDMDV_FCENTRE+40.0; coh->f_est += 40.0) { if (coh->verbose) fprintf(stderr, " [%d] acohpsk.f_est: %f +/- 20\n", coh->frame, (double)coh->f_est); /* we are out of sync so reset f_est and process two frames to clean out memories */ rate_Fs_rx_processing(coh, ch_symb, coh->ch_fdm_frame_buf, &coh->f_est, NSW*NSYMROWPILOT, COHPSK_M, 0); for (i=0; ict_symb_buf, &ch_symb[i*NSYMROWPILOT]); } frame_sync_fine_freq_est(coh, &ch_symb[(NSW-1)*NSYMROWPILOT], sync, &anext_sync); if (anext_sync == 1) { //printf(" [%d] acohpsk.ratio: %f\n", f, coh->ratio); if (coh->ratio > max_ratio) { max_ratio = coh->ratio; f_est = coh->f_est - coh->f_fine_est; next_sync = anext_sync; } } } if (next_sync == 1) { /* we've found a sync candidate! re-process last NSW frames with adjusted f_est then check again */ coh->f_est = f_est; if (coh->verbose) fprintf(stderr, " [%d] trying sync and f_est: %f\n", coh->frame, (double)coh->f_est); rate_Fs_rx_processing(coh, ch_symb, coh->ch_fdm_frame_buf, &coh->f_est, NSW*NSYMROWPILOT, COHPSK_M, 0); for (i=0; ict_symb_buf, &ch_symb[i*NSYMROWPILOT]); } /* for(i=0; ict_symb_buf[i][0].real, coh->ct_symb_buf[i][0].imag); } */ frame_sync_fine_freq_est(coh, &ch_symb[(NSW-1)*NSYMROWPILOT], sync, &next_sync); if (fabsf(coh->f_fine_est) > 2.0) { if (coh->verbose) fprintf(stderr, " [%d] Hmm %f is a bit big :(\n", coh->frame, (double)coh->f_fine_est); next_sync = 0; } } if (next_sync == 1) { /* OK we are in sync! demodulate first frame (demod completed below) */ if (coh->verbose) fprintf(stderr, " [%d] in sync! f_est: %f ratio: %f \n", coh->frame, (double)coh->f_est, (double)coh->ratio); for(r=0; rct_symb_ff_buf[r][c] = coh->ct_symb_buf[coh->ct+r][c]; } } /* If in sync just do sample rate processing on latest frame */ if (sync == 1) { rate_Fs_rx_processing(coh, ch_symb, rx_fdm, &coh->f_est, NSYMROWPILOT, coh->nin, 1); frame_sync_fine_freq_est(coh, ch_symb, sync, &next_sync); for(r=0; r<2; r++) for(c=0; cct_symb_ff_buf[r][c] = coh->ct_symb_ff_buf[r+NSYMROWPILOT][c]; for(; rct_symb_ff_buf[r][c] = coh->ct_symb_buf[coh->ct+r][c]; } /* if we are in sync complete demodulation with symbol rate processing */ *sync_good = 0; if ((next_sync == 1) || (sync == 1)) { qpsk_symbols_to_bits(coh, rx_bits, coh->ct_symb_ff_buf); *sync_good = 1; } sync = sync_state_machine(coh, sync, next_sync); coh->sync = sync; /* work out how many samples we need for the next call to account for differences in tx and rx sample clocks */ nin = COHPSK_M; if (sync == 1) { if (coh->rx_timing > COHPSK_M/P) nin = COHPSK_M + COHPSK_M/P; if (coh->rx_timing < -COHPSK_M/P) nin = COHPSK_M - COHPSK_M/P; } coh->nin = nin; *nin_frame = (NSYMROWPILOT-1)*COHPSK_M + nin; //if (coh->verbose) // fprintf(stderr, "%f %d %d\n", coh->rx_timing, nin, *nin_frame); } /*---------------------------------------------------------------------------*\ FUNCTION....: cohpsk_fs_offset() AUTHOR......: David Rowe DATE CREATED: May 2015 Simulates small Fs offset between mod and demod. \*---------------------------------------------------------------------------*/ int cohpsk_fs_offset(COMP out[], COMP in[], int n, float sample_rate_ppm) { double f; double tin = 0.0; double step = 1.0 + sample_rate_ppm/1E6; int t1, t2; int tout = 0; while (tin < (double) n) { t1 = (int) floor(tin); t2 = (int) ceil(tin); f = tin - (double) t1; out[tout].real = ((double)1.0-f)*(double)in[t1].real + f*(double)in[t2].real; out[tout].imag = ((double)1.0-f)*(double)in[t1].imag + f*(double)in[t2].imag; tin += step; tout++; //printf("tin: %f tout: %d f: %f\n", tin, tout, f); } return tout; } /*---------------------------------------------------------------------------*\ FUNCTION....: cohpsk_get_demod_stats() AUTHOR......: David Rowe DATE CREATED: 14 June 2015 Fills stats structure with a bunch of demod information. \*---------------------------------------------------------------------------*/ void cohpsk_get_demod_stats(struct COHPSK *coh, struct MODEM_STATS *stats) { float new_snr_est; #ifndef __EMBEDDED__ float spi_4 = M_PI/4.0f; COMP pi_4; pi_4.real = cosf(spi_4); pi_4.imag = sinf(spi_4); #endif stats->Nc = COHPSK_NC*ND; assert(stats->Nc <= MODEM_STATS_NC_MAX); new_snr_est = 20.0f * log10f((coh->sig_rms+1E-6f)/(coh->noise_rms+1E-6f)) - 10.0f*log10f(3000.0f/700.0f); stats->snr_est = 0.9f*stats->snr_est + 0.1f*new_snr_est; //fprintf(stderr, "sig_rms: %f noise_rms: %f snr_est: %f\n", coh->sig_rms, coh->noise_rms, stats->snr_est); stats->sync = coh->sync; stats->foff = coh->f_est - FDMDV_FCENTRE; stats->rx_timing = coh->rx_timing; stats->clock_offset = 0.0f; /* TODO - implement clock offset estimation */ #ifndef __EMBEDDED__ assert(NSYMROW <= MODEM_STATS_NR_MAX); stats->nr = NSYMROW; for(int c=0; crx_symbols[r][c] = cmult(coh->rx_symb[r][c], pi_4); } } #endif } void cohpsk_set_verbose(struct COHPSK *coh, int verbose) { assert(coh != NULL); coh->verbose = verbose; } void cohpsk_set_frame(struct COHPSK *coh, int frame) { assert(coh != NULL); coh->frame = frame; } /*---------------------------------------------------------------------------*\ FUNCTION....: cohpsk_get_test_bits() AUTHOR......: David Rowe DATE CREATED: June 2015 Returns a frame of known test bits. \*---------------------------------------------------------------------------*/ void cohpsk_get_test_bits(struct COHPSK *coh, int rx_bits[]) { memcpy(rx_bits, coh->ptest_bits_coh_tx, sizeof(int)*COHPSK_BITS_PER_FRAME); coh->ptest_bits_coh_tx += COHPSK_BITS_PER_FRAME; if (coh->ptest_bits_coh_tx >=coh->ptest_bits_coh_end) { coh->ptest_bits_coh_tx = (int*)test_bits_coh; } } /*---------------------------------------------------------------------------*\ FUNCTION....: cohpsk_put_test_bits() AUTHOR......: David Rowe DATE CREATED: June 2015 Accepts bits from demod and attempts to sync with the known test_bits sequence. When synced measures bit errors. Has states to track two separate received test sequences based on channel 0 or 1. \*---------------------------------------------------------------------------*/ void cohpsk_put_test_bits(struct COHPSK *coh, int *state, short error_pattern[], int *bit_errors, char rx_bits_char[], int channel) { int i, next_state, anerror; int rx_bits[COHPSK_BITS_PER_FRAME]; assert((channel == 0) || (channel == 1)); int *ptest_bits_coh_rx = coh->ptest_bits_coh_rx[channel]; for(i=0; i 1)) { fprintf(stderr, "i: %d rx_bits: %d ptest_bits_coh_rx: %d\n", i, rx_bits[i], ptest_bits_coh_rx[i]); } *bit_errors += anerror; error_pattern[i] = anerror; } /* state logic */ next_state = *state; if (*state == 0) { if (*bit_errors < 4) { next_state = 1; ptest_bits_coh_rx += COHPSK_BITS_PER_FRAME; if (ptest_bits_coh_rx >= coh->ptest_bits_coh_end) { ptest_bits_coh_rx = (int*)test_bits_coh; } } } /* if 5 frames with large BER reset test frame sync */ if (*state > 0) { if (*bit_errors > 8) { if (*state == 6) next_state = 0; else next_state = *state+1; } else next_state = 1; } if (*state > 0) { ptest_bits_coh_rx += COHPSK_BITS_PER_FRAME; if (ptest_bits_coh_rx >= coh->ptest_bits_coh_end) { ptest_bits_coh_rx = (int*)test_bits_coh; } } //fprintf(stderr, "state: %d next_state: %d bit_errors: %d\n", *state, next_state, *bit_errors); *state = next_state; coh->ptest_bits_coh_rx[channel] = ptest_bits_coh_rx; } int cohpsk_error_pattern_size(void) { return COHPSK_BITS_PER_FRAME; } float *cohpsk_get_rx_bits_lower(struct COHPSK *coh) { return coh->rx_bits_lower; } float *cohpsk_get_rx_bits_upper(struct COHPSK *coh) { return coh->rx_bits_upper; } void cohpsk_set_carrier_ampl(struct COHPSK *coh, int c, float ampl) { assert(c < COHPSK_NC*ND); coh->carrier_ampl[c] = ampl; fprintf(stderr, "cohpsk_set_carrier_ampl: %d %f\n", c, (double)ampl); } codec2-1.0.1/src/cohpsk_ch.c000066400000000000000000000365661412132000500155500ustar00rootroot00000000000000/*---------------------------------------------------------------------------*\ FILE........: cohpsk_ch.c AUTHOR......: David Rowe DATE CREATED: May 2015 Channel impairment program for testing command line versions of cohpsk (and other) modems. \*---------------------------------------------------------------------------*/ /* Copyright (C) 2015 David Rowe All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 2.1, as published by the Free Software Foundation. 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 Lesser General Public License along with this program; if not, see . */ #include #include #include #include #include #include #include "freedv_api.h" #include "codec2_cohpsk.h" #include "comp_prim.h" #include "ht_coeff.h" #include "ssbfilt_coeff.h" #include "debug_alloc.h" #define BUF_N 160 #define MPG_DELAY_MS 0.5 #define MPP_DELAY_MS 2.0 #define MPD_DELAY_MS 4.0 /* see instructions below for how to generate thsese files */ #define DEFAULT_RAW_DIR "../../raw" #define MPG_FADING_FILE_NAME "slow_fading_samples.float" #define MPP_FADING_FILE_NAME "fast_fading_samples.float" #define MPD_FADING_FILE_NAME "faster_fading_samples.float" int opt_exists(char *argv[], int argc, char opt[]) { int i; for (i=0; i 3) { if (strcmp(argv[1], "-") == 0) fin = stdin; else if ( (fin = fopen(argv[1],"rb")) == NULL ) { fprintf(stderr, "cohpsk_ch: Error opening input modem raw file: %s: %s.\n", argv[1], strerror(errno)); exit(1); } if (strcmp(argv[2], "-") == 0) fout = stdout; else if ( (fout = fopen(argv[2],"wb")) == NULL ) { fprintf(stderr, "cohpsk_ch: Error opening output modem raw file: %s: %s.\n", argv[2], strerror(errno)); exit(1); } NodB = atof(argv[3]); Fs = COHPSK_FS; foff_hz = 0.0; fading_en = 0; ctest = 0; clip =32767; gain = 1.0; ssbfilt_en = 1; complex_out = 0; raw_dir = strdup(DEFAULT_RAW_DIR); user_multipath_delay = -1.0; for(int i=4; i pkg load signal\n"); fprintf(stderr, "octave:24> time_secs=60\n"); fprintf(stderr, "octave:25> cohpsk_ch_fading(\"../raw/faster_fading_samples.float\", 8000, 2.0, 8000*time_secs)\n"); fprintf(stderr, "octave:26> cohpsk_ch_fading(\"../raw/fast_fading_samples.float\", 8000, 1.0, 8000*time_secs)\n"); fprintf(stderr, "octave:27> cohpsk_ch_fading(\"../raw/slow_fading_samples.float\", 8000, 0.1, 8000*time_secs)\n"); fprintf(stderr, "-----------------------------------------------------\n"); exit(1); } nhfdelay = floor(MPG_DELAY_MS*Fs/1000); } if (fading_en == 2) { sprintf(fname, "%s/%s", raw_dir, MPP_FADING_FILE_NAME); ffading = fopen(fname, "rb"); if (ffading == NULL) goto cant_load_fading_file; nhfdelay = floor(MPP_DELAY_MS*Fs/1000); } if (fading_en == 3) { sprintf(fname, "%s/%s", raw_dir, MPD_FADING_FILE_NAME); ffading = fopen(fname, "rb"); if (ffading == NULL) goto cant_load_fading_file; nhfdelay = floor(MPD_DELAY_MS*Fs/1000); } ch_fdm_delay = (COMP*)MALLOC((nhfdelay+COHPSK_NOM_SAMPLES_PER_FRAME)*sizeof(COMP)); assert(ch_fdm_delay != NULL); for(i=0; i= 0.0) nhfdelay = floor(user_multipath_delay*Fs/1000); /* first values in file are HF gains */ for (i=0; i<4; i++) ret = fread(&hf_gain, sizeof(float), 1, ffading); //fprintf(stderr, "hf_gain: %f\n", hf_gain); } assert(HT_N == sizeof(ht_coeff)/sizeof(COMP)); for(i=0; i clip) { mag = clip; nclipped++; } tx_pwr += mag*mag; if (mag > peak) peak = mag; ch_in[i].real = mag*cos(angle); ch_in[i].imag = mag*sin(angle); } /* --------------------------------------------------------*\ Channel \*---------------------------------------------------------*/ fdmdv_freq_shift_coh(ch_fdm, ch_in, foff_hz, Fs, &phase_ch, BUF_N); /* optional HF fading -------------------------------------*/ if (fading_en) { /* update delayed signal buffer */ for(i=0; i 32767.0) { noutclipped++; sam = 32767.0; } if (sam < -32767.0) { noutclipped++; sam = -32767.0; } *pout++ = sam; if (complex_out) { sam = ssbfiltout[i].imag; if (sam > 32767.0) { noutclipped++; sam = 32767.0; } if (sam < -32767.0) { noutclipped++; sam = -32767.0; } *pout++ = sam; } } fwrite(bufout, sizeof(short), nout, fout); /* if this is in a pipeline, we probably don't want the usual buffering to occur */ if (fout == stdout) fflush(stdout); } fclose(fin); fclose(fout); int nsamples = frames*BUF_N; papr = 10*log10(peak*peak/(tx_pwr/nsamples)); CNo = 10*log10(tx_pwr/(noise_pwr/(Fs))); snr3k = CNo - 10*log10(3000); float outclipped_percent = noutclipped*100.0/nsamples; fprintf(stderr, "cohpsk_ch: SNR3k(dB): %8.2f C/No....: %8.2f\n", snr3k, CNo); fprintf(stderr, "cohpsk_ch: peak.....: %8.2f RMS.....: %8.2f CPAPR.....: %5.2f \n", peak, sqrt(tx_pwr/nsamples), papr); fprintf(stderr, "cohpsk_ch: Nsamples.: %8d clipped.: %8.2f%% OutClipped: %5.2f%%\n", nsamples, nclipped*100.0/nsamples, outclipped_percent); if (outclipped_percent > 0.1) fprintf(stderr, "cohpsk_ch: WARNING output clipping\n"); if (ffading != NULL) fclose(ffading); if (ch_fdm_delay != NULL) FREE(ch_fdm_delay); if (ctest) { /* special ctest modes, check CPAPR is around 0dB */ if (fabs(papr) < 0.7) return 0; else return 1; } else return 0; } codec2-1.0.1/src/cohpsk_defs.h000066400000000000000000000007531412132000500160710ustar00rootroot00000000000000/* Generated by write_pilot_file() Octave function */ #define NSYMROW 4 /* number of data symbols on each row (i.e. each carrier) */ #define NS 4 /* number of data symbols between pilots */ #define NPILOTSFRAME 2 /* number of pilot symbols on each row */ #define PILOTS_NC 7 /* number of carriers */ #define NSYMROWPILOT 6 /* length of row after pilots inserted */ codec2-1.0.1/src/cohpsk_demod.c000066400000000000000000000217251412132000500162350ustar00rootroot00000000000000/*---------------------------------------------------------------------------*\ FILE........: cohpsk_demod.c AUTHOR......: David Rowe DATE CREATED: April 6 2015 Given an input file of raw file (8kHz, 16 bit shorts) of COHPSK modem samples, outputs a file of bits (note one bit per int, not compressed). \*---------------------------------------------------------------------------*/ /* Copyright (C) 2015 David Rowe All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 2.1, as published by the Free Software Foundation. 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 Lesser General Public License along with this program; if not, see . */ #include #include #include #include #include #include #include #include "codec2_cohpsk.h" #include "cohpsk_defs.h" #include "cohpsk_internal.h" #include "codec2_fdmdv.h" #include "octave.h" #include "debug_alloc.h" #define LOG_FRAMES 100 #define SYNC_FRAMES 12 /* sync state uses up extra log storage as we reprocess several times */ int opt_exists(char *argv[], int argc, char opt[]) { int i; for (i=0; irx_timing_log = (float*)MALLOC(sizeof(float)*SYNC_FRAMES*logframes*NSYMROWPILOT); assert(cohpsk->rx_timing_log != NULL); } log_data_r = 0; frames = 0; nin_frame = COHPSK_NOM_SAMPLES_PER_FRAME; while(fread(rx_fdm_scaled, sizeof(short), nin_frame, fin) == nin_frame) { frames++; cohpsk_set_frame(cohpsk, frames); /* scale and demod */ for(i=0; irx_bits_lower[i] < 0.0; fwrite(rx_bits_char, sizeof(char), COHPSK_BITS_PER_FRAME, fout); for(i=0; irx_bits_upper[i] < 0.0; fwrite(rx_bits_char, sizeof(char), COHPSK_BITS_PER_FRAME, fout); } else { for(i=0; irx_bits_lower[i]; fwrite(rx_bits_double, sizeof(double), COHPSK_BITS_PER_FRAME, fout); for(i=0; irx_bits_upper[i]; fwrite(rx_bits_double, sizeof(double), COHPSK_BITS_PER_FRAME, fout); } } if (oct) { for(r=0; ramp_[r][c]; rx_phi_log[log_data_r*COHPSK_NC*ND+c] = cohpsk->phi_[r][c]; rx_symb_log[log_data_r*COHPSK_NC*ND+c] = cohpsk->rx_symb[r][c]; } } f_est_log[frames-1] = cohpsk->f_est; ratio_log[frames-1] = cohpsk->ratio; //fprintf(stderr,"ratio: %f\n", cohpsk->ratio); //printf("frames: %d log_data_r: %d\n", frames, log_data_r); if (frames == logframes) oct = 0; } } /* if this is in a pipeline, we probably don't want the usual buffering to occur */ if (fout == stdout) fflush(stdout); } fclose(fin); fclose(fout); /* optionally dump Octave files */ if (foct != NULL) { octave_save_float(foct, "rx_amp_log_c", (float*)rx_amp_log, log_data_r, COHPSK_NC*ND, COHPSK_NC*ND); octave_save_float(foct, "rx_phi_log_c", (float*)rx_phi_log, log_data_r, COHPSK_NC*ND, COHPSK_NC*ND); octave_save_complex(foct, "rx_symb_log_c", (COMP*)rx_symb_log, log_data_r, COHPSK_NC*ND, COHPSK_NC*ND); octave_save_float(foct, "rx_timing_log_c", (float*)cohpsk->rx_timing_log, 1, cohpsk->rx_timing_log_index, cohpsk->rx_timing_log_index); octave_save_float(foct, "f_est_log_c", f_est_log, 1, logframes, logframes); octave_save_float(foct, "ratio_log_c", ratio_log, 1, logframes, logframes); fclose(foct); } cohpsk_destroy(cohpsk); return 0; } codec2-1.0.1/src/cohpsk_get_test_bits.c000066400000000000000000000047361412132000500200070ustar00rootroot00000000000000/*---------------------------------------------------------------------------*\ FILE........: cohpsk_put_test_bits.c AUTHOR......: David Rowe DATE CREATED: April 2015 Generates a file of test bits, useful for input to cohpsk_mod. \*---------------------------------------------------------------------------*/ /* Copyright (C) 2015 David Rowe All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 2.1, as published by the Free Software Foundation. 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 Lesser General Public License along with this program; if not, see . */ #include #include #include #include #include #include #include "codec2_cohpsk.h" #include "test_bits_coh.h" int main(int argc, char *argv[]) { FILE *fout; int tx_bits[COHPSK_BITS_PER_FRAME]; char tx_bits_char[COHPSK_BITS_PER_FRAME]; int numBits, nFrames, n; int *ptest_bits_coh, *ptest_bits_coh_end, i; if (argc < 2) { printf("usage: %s OutputOneCharPerBitFile numBits\n", argv[0]); exit(1); } if (strcmp(argv[1], "-") == 0) fout = stdout; else if ( (fout = fopen(argv[1],"wb")) == NULL ) { fprintf(stderr, "Error opening output file: %s: %s.\n", argv[1], strerror(errno)); exit(1); } ptest_bits_coh = (int*)test_bits_coh; ptest_bits_coh_end = (int*)test_bits_coh + sizeof(test_bits_coh)/sizeof(int); numBits = atoi(argv[2]); nFrames = numBits/COHPSK_BITS_PER_FRAME; for(n=0; n= ptest_bits_coh_end) { ptest_bits_coh = (int*)test_bits_coh; } for(i=0; i. */ #ifndef __COHPSK_INTERNAL__ #define __COHPSK_INTERNAL__ #define NCT_SYMB_BUF (2*NSYMROWPILOT+2) #define ND 2 /* diversity factor ND 1 is no diveristy, ND we have orginal plus one copy */ #define NSW 4 /* number of sync window frames */ #define COHPSK_ND 2 /* diversity factor */ #define COHPSK_M 100 /* oversampling rate */ #define COHPSK_NSYM 6 #define COHPSK_NFILTER (COHPSK_NSYM*COHPSK_M) #define COHPSK_EXCESS_BW 0.5 /* excess BW factor of root nyq filter */ #define COHPSK_NT 5 /* number of symbols we estimate timing over */ #include "fdmdv_internal.h" #include "kiss_fft.h" struct COHPSK { COMP ch_fdm_frame_buf[NSW*NSYMROWPILOT*COHPSK_M]; /* buffer of several frames of symbols from channel */ float pilot2[2*NPILOTSFRAME][COHPSK_NC]; float phi_[NSYMROWPILOT][COHPSK_NC*ND]; /* phase estimates for this frame of rx data symbols */ float amp_[NSYMROW][COHPSK_NC*ND]; /* amplitude estimates for this frame of rx data symbols */ COMP rx_symb[NSYMROWPILOT][COHPSK_NC*ND]; /* demodulated symbols */ float f_est; COMP rx_filter_memory[COHPSK_NC*ND][COHPSK_NFILTER]; COMP ct_symb_buf[NCT_SYMB_BUF][COHPSK_NC*ND]; int ct; /* coarse timing offset in symbols */ float rx_timing; /* fine timing for last symbol in frame */ int nin; /* number of samples to input for next symbol */ float f_fine_est; COMP ff_rect; COMP ff_phase; COMP ct_symb_ff_buf[NSYMROWPILOT+2][COHPSK_NC*ND]; int sync; int sync_timer; int frame; float ratio; float sig_rms; float noise_rms; struct FDMDV *fdmdv; int verbose; int *ptest_bits_coh_tx; int *ptest_bits_coh_rx[2]; int *ptest_bits_coh_end; /* counting bit errors using pilots */ int npilotbits; int npilotbiterrors; /* optional log variables used for testing Octave to C port */ COMP *rx_baseband_log; int rx_baseband_log_col_index; int rx_baseband_log_col_sz; COMP *rx_filt_log; int rx_filt_log_col_index; int rx_filt_log_col_sz; COMP *ch_symb_log; int ch_symb_log_r; int ch_symb_log_col_sz; float *rx_timing_log; int rx_timing_log_index; /* demodulated bits before diversity combination for test/instrumentation purposes */ float rx_bits_lower[COHPSK_BITS_PER_FRAME]; float rx_bits_upper[COHPSK_BITS_PER_FRAME]; /* tx amplitude weights for each carrier for test/instrumentation */ float carrier_ampl[COHPSK_NC*ND]; /* Flag enabling simple freq est mode */ int freq_est_mode_reduced; }; void bits_to_qpsk_symbols(COMP tx_symb[][COHPSK_NC*COHPSK_ND], int tx_bits[], int nbits); void qpsk_symbols_to_bits(struct COHPSK *coh, float rx_bits[], COMP ct_symb_buf[][COHPSK_NC*COHPSK_ND]); void tx_filter_and_upconvert_coh(COMP tx_fdm[], int Nc, const COMP tx_symbols[], COMP tx_filter_memory[COHPSK_NC][COHPSK_NSYM], COMP phase_tx[], COMP freq[], COMP *fbb_phase, COMP fbb_rect); void fdm_downconvert_coh(COMP rx_baseband[COHPSK_NC][COHPSK_M+COHPSK_M/P], int Nc, COMP rx_fdm[], COMP phase_rx[], COMP freq[], int nin); void frame_sync_fine_freq_est(struct COHPSK *coh, COMP ch_symb[][COHPSK_NC*COHPSK_ND], int sync, int *next_sync); void fine_freq_correct(struct COHPSK *coh, int sync, int next_sync); int sync_state_machine(struct COHPSK *coh, int sync, int next_sync); int cohpsk_fs_offset(COMP out[], COMP in[], int n, float sample_rate_ppm); #endif codec2-1.0.1/src/cohpsk_mod.c000066400000000000000000000071271412132000500157240ustar00rootroot00000000000000/*---------------------------------------------------------------------------*\ FILE........: cohpsk_mod.c AUTHOR......: David Rowe DATE CREATED: April 5 2015 Given an input file of bits (note one bit per float, soft decision format), outputs a raw file (8kHz, 16 bit shorts) of COHPSK modem samples ready to send over a HF radio channel. \*---------------------------------------------------------------------------*/ /* Copyright (C) 2015 David Rowe All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 2.1, as published by the Free Software Foundation. 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 Lesser General Public License along with this program; if not, see . */ #include #include #include #include #include #include #include "codec2_cohpsk.h" #include "codec2_fdmdv.h" int opt_exists(char *argv[], int argc, char opt[]) { int i; for (i=0; i. */ #include #include #include #include #include #include #include "codec2_cohpsk.h" #include "octave.h" #define LOG_FRAMES 100 int main(int argc, char *argv[]) { FILE *fin, *foct; char rx_bits[COHPSK_BITS_PER_FRAME]; int state, i, nbits, bit_errors, nerrors; short error_pattern[COHPSK_BITS_PER_FRAME]; int error_positions_hist[COHPSK_BITS_PER_FRAME], logframes; int nerr_log[LOG_FRAMES]; struct COHPSK *coh; for(i=0; i. */ #ifndef __COMP__ #define __COMP__ /* Complex number */ typedef struct { float real; float imag; } COMP; #endif codec2-1.0.1/src/comp_prim.h000066400000000000000000000055161412132000500155700ustar00rootroot00000000000000/*---------------------------------------------------------------------------*\ FILE........: comp_prim.h AUTHOR......: David Rowe DATE CREATED: Marh 2015 Complex number maths primitives. \*---------------------------------------------------------------------------*/ /* Copyright (C) 2015 David Rowe All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 2.1, as published by the Free Software Foundation. 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 Lesser General Public License along with this program; if not, see . */ #ifndef __COMP_PRIM__ #define __COMP_PRIM__ /*---------------------------------------------------------------------------*\ FUNCTIONS \*---------------------------------------------------------------------------*/ inline static COMP cneg(COMP a) { COMP res; res.real = -a.real; res.imag = -a.imag; return res; } inline static COMP cconj(COMP a) { COMP res; res.real = a.real; res.imag = -a.imag; return res; } inline static COMP cmult(COMP a, COMP b) { COMP res; res.real = a.real*b.real - a.imag*b.imag; res.imag = a.real*b.imag + a.imag*b.real; return res; } inline static COMP fcmult(float a, COMP b) { COMP res; res.real = a*b.real; res.imag = a*b.imag; return res; } inline static COMP cadd(COMP a, COMP b) { COMP res; res.real = a.real + b.real; res.imag = a.imag + b.imag; return res; } inline static float cabsolute(COMP a) { return sqrtf((a.real * a.real) + (a.imag * a.imag) ); } /* * Euler's formula in a new convenient function */ inline static COMP comp_exp_j(float phi){ COMP res; res.real = cosf(phi); res.imag = sinf(phi); return res; } /* * Quick and easy complex 0 */ inline static COMP comp0(){ COMP res; res.real = 0; res.imag = 0; return res; } /* * Quick and easy complex subtract */ inline static COMP csub(COMP a, COMP b){ COMP res; res.real = a.real-b.real; res.imag = a.imag-b.imag; return res; } /* * Compare the magnitude of a and b. if |a|>|b|, return true, otw false. * This needs no square roots */ inline static int comp_mag_gt(COMP a,COMP b){ return ((a.real*a.real)+(a.imag*a.imag)) > ((b.real*b.real)+(b.imag*b.imag)); } /* * Normalize a complex number's magnitude to 1 */ inline static COMP comp_normalize(COMP a){ COMP b; float av = cabsolute(a); b.real = a.real/av; b.imag = a.imag/av; return b; } #endif codec2-1.0.1/src/dct2.h000066400000000000000000000030241412132000500144270ustar00rootroot00000000000000/*---------------------------------------------------------------------------*\ FILE........: dct2.h AUTHOR......: Phil Ayres DATE CREATED: July 2017 * DCT functions based on existing Codec 2 FFT * \*---------------------------------------------------------------------------*/ /* Copyright David Rowe 2017 All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 2.1, as published by the Free Software Foundation. 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 Lesser General Public License along with this program; if not, see . */ #ifndef DCT2_H #define DCT2_H #include "codec2_fft.h" #include "comp.h" #include "comp_prim.h" typedef codec2_fftr_cfg codec2_dct_cfg; void dct(codec2_dct_cfg cfg, const int N, float y[], float res[]); void dct2(codec2_dct_cfg cfg_m, codec2_dct_cfg cfg_n, const int M, const int N, float y[M][N], float res[M][N]); void idct(codec2_dct_cfg cfg, const int N, float a[N], float res[N]); void idct2(codec2_dct_cfg cfg_m, codec2_dct_cfg cfg_n, int M, int N, float y[M][N], float res[M][N]); codec2_dct_cfg dct_config(int P); codec2_dct_cfg idct_config(int P); void dct_cfg_free(codec2_dct_cfg cfg); #endif /* DCT2_H */ codec2-1.0.1/src/debug_alloc.h000066400000000000000000000027141412132000500160400ustar00rootroot00000000000000/* debug_alloc.h * * Some macros which can report on malloc results. * * Enable with "-D DEBUG_ALLOC" */ #ifndef DEBUG_ALLOC_H #define DEBUG_ALLOC_H #include // Debug calls #ifdef CORTEX_M4 extern char * __heap_end; register char * sp asm ("sp"); #endif static inline void * DEBUG_MALLOC(const char *func, size_t size) { void *ptr = malloc(size); fprintf(stderr, "MALLOC: %s %p %d", func, ptr, (int)size); #ifdef CORTEX_M4 fprintf(stderr, " : sp %p ", sp); #endif if (!ptr) fprintf(stderr, " ** FAILED **"); fprintf(stderr, "\n"); return(ptr); } static inline void * DEBUG_CALLOC(const char *func, size_t nmemb, size_t size) { void *ptr = calloc(nmemb, size); fprintf(stderr, "CALLOC: %s %p %d %d", func, ptr, (int)nmemb, (int)size); #ifdef CORTEX_M4 fprintf(stderr, " : sp %p ", sp); #endif if (!ptr) fprintf(stderr, " ** FAILED **"); fprintf(stderr, "\n"); return(ptr); } static inline void DEBUG_FREE(const char *func, void *ptr) { free(ptr); fprintf(stderr, "FREE: %s %p\n", func, ptr); } #ifdef DEBUG_ALLOC #define MALLOC(size) DEBUG_MALLOC(__func__, size) #define CALLOC(nmemb, size) DEBUG_CALLOC(__func__, nmemb, size) #define FREE(ptr) DEBUG_FREE(__func__, ptr) #else //DEBUG_ALLOC // Default to normal calls #define MALLOC(size) malloc(size) #define CALLOC(nmemb, size) calloc(nmemb, size) #define FREE(ptr) free(ptr) #endif //DEBUG_ALLOC #endif //DEBUG_ALLOC_H codec2-1.0.1/src/defines.h000066400000000000000000000111651412132000500152150ustar00rootroot00000000000000/*---------------------------------------------------------------------------*\ FILE........: defines.h AUTHOR......: David Rowe DATE CREATED: 23/4/93 Defines and structures used throughout the codec. \*---------------------------------------------------------------------------*/ /* Copyright (C) 2009 David Rowe All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 2.1, as published by the Free Software Foundation. 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 Lesser General Public License along with this program; if not, see . */ #ifndef __DEFINES__ #define __DEFINES__ /*---------------------------------------------------------------------------*\ DEFINES \*---------------------------------------------------------------------------*/ /* General defines */ #define N_S 0.01 /* internal proc frame length in secs */ #define TW_S 0.005 /* trapezoidal synth window overlap */ #define MAX_AMP 160 /* maximum number of harmonics */ #ifndef PI #define PI 3.141592654 /* mathematical constant */ #endif #define TWO_PI 6.283185307 /* mathematical constant */ #define MAX_STR 2048 /* maximum string size */ #define FFT_ENC 512 /* size of FFT used for encoder */ #define FFT_DEC 512 /* size of FFT used in decoder */ #define V_THRESH 6.0 /* voicing threshold in dB */ #define LPC_ORD 10 /* LPC order */ #define LPC_ORD_LOW 6 /* LPC order for lower rates */ /* Pitch estimation defines */ #define M_PITCH_S 0.0400 /* pitch analysis window in s */ #define P_MIN_S 0.0025 /* minimum pitch period in s */ #define P_MAX_S 0.0200 /* maximum pitch period in s */ /*---------------------------------------------------------------------------*\ TYPEDEFS \*---------------------------------------------------------------------------*/ /* Structure to hold constants calculated at run time based on sample rate */ typedef struct { int Fs; /* sample rate of this instance */ int n_samp; /* number of samples per 10ms frame at Fs */ int max_amp; /* maximum number of harmonics */ int m_pitch; /* pitch estimation window size in samples */ int p_min; /* minimum pitch period in samples */ int p_max; /* maximum pitch period in samples */ float Wo_min; float Wo_max; int nw; /* analysis window size in samples */ int tw; /* trapezoidal synthesis window overlap */ } C2CONST; /* Structure to hold model parameters for one frame */ typedef struct { float Wo; /* fundamental frequency estimate in radians */ int L; /* number of harmonics */ float A[MAX_AMP+1]; /* amplitiude of each harmonic */ float phi[MAX_AMP+1]; /* phase of each harmonic */ int voiced; /* non-zero if this frame is voiced */ } MODEL; /* describes each codebook */ struct lsp_codebook { int k; /* dimension of vector */ int log2m; /* number of bits in m */ int m; /* elements in codebook */ #ifdef __EMBEDDED__ /* make sure stored in flash */ const float *cb; /* The elements */ #else float *cb; /* The elements */ #endif }; extern const struct lsp_codebook lsp_cb[]; extern const struct lsp_codebook lsp_cbd[]; extern const struct lsp_codebook lsp_cbvq[]; extern const struct lsp_codebook lsp_cbjnd[]; extern const struct lsp_codebook lsp_cbdt[]; extern const struct lsp_codebook lsp_cbjvm[]; extern const struct lsp_codebook lsp_cbvqanssi[]; extern const struct lsp_codebook mel_cb[]; extern const struct lsp_codebook ge_cb[]; extern const struct lsp_codebook lspmelvq_cb[]; extern const struct lsp_codebook newamp1vq_cb[]; extern const struct lsp_codebook newamp1_energy_cb[]; extern const struct lsp_codebook newamp2vq_cb[]; extern const struct lsp_codebook newamp2_energy_cb[]; #ifdef _GNU_SOURCE #define POW10F(x) exp10f((x)) #else #define POW10F(x) expf(2.302585092994046f*(x)) #endif #endif codec2-1.0.1/src/deframer.c000066400000000000000000000124761412132000500153660ustar00rootroot00000000000000/*---------------------------------------------------------------------------*\ FILE........: deframer.c AUTHOR......: David Rowe DATE CREATED: July 2020 Command line deframer, obtains UW sync, then extracts frame of data bits. \*---------------------------------------------------------------------------*/ /* Copyright (C) 2020 David Rowe All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 2.1, as published by the Free Software Foundation. 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 Lesser General Public License along with this program; if not, see . */ #include #include #include #include "fsk.h" unsigned int toInt(char c) { if (c >= '0' && c <= '9') return c - '0'; if (c >= 'A' && c <= 'F') return 10 + c - 'A'; if (c >= 'a' && c <= 'f') return 10 + c - 'a'; return -1; } int main(int argc,char *argv[]){ FILE *fin, *fout; if (argc < 5) { fprintf(stderr,"usage: %s InOneFloatPerLLR OutOneFloatPerLLR frameSizeBits HexUW [--hard]\n",argv[0]); fprintf(stderr," --hard Treat input and output files as OneBitPerByte hard decisions\n"); exit(1); } if (strcmp(argv[1],"-") == 0) { fin = stdin; } else { if ((fin = fopen(argv[1],"rb")) == NULL) { fprintf(stderr,"Couldn't open input file: %s\n", argv[1]); exit(1); } } if (strcmp(argv[2],"-") == 0) { fout = stdout; } else { if ((fout = fopen(argv[2],"wb")) == NULL) { fprintf(stderr,"Couldn't open output file: %s\n", argv[2]); exit(1); } } /* extract UW array from hex on command line */ size_t framesize = atoi(argv[3]); char *uw_hex = argv[4]; uint8_t uw[4*strlen(uw_hex)]; int uwsize = 0; for(int c=0; c> (3-i)) & 0x1; /* MSB first */ assert(uwsize == 4*strlen(uw_hex)); fprintf(stderr, "uw_hex: %s uwsize: %d\n", uw_hex, uwsize); for(int i=0; i= thresh2) { baduw++; if (baduw == 3) { fprintf(stderr, "lost UW!\n"); next_state = 0; } } else baduw = 0; break; } state = next_state; if (state == 1) { fwrite(&inbuf[(best_location+uwsize)*nelement], nelement, framesize, fout); } memmove(twoframes, &twoframes[framedsize], framedsize); memmove(inbuf, &inbuf[nelement*framedsize], nelement*framedsize); } free(inbuf); fclose(fin); fclose(fout); return 0; } codec2-1.0.1/src/dump.c000066400000000000000000000315501412132000500145400ustar00rootroot00000000000000/*---------------------------------------------------------------------------*\ FILE........: dump.c AUTHOR......: David Rowe DATE CREATED: 25/8/09 Routines to dump data to text files for Octave analysis. \*---------------------------------------------------------------------------*/ /* All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 2.1, as published by the Free Software Foundation. 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 Lesser General Public License along with this program; if not, see . */ #include "defines.h" #include "comp.h" #include "dump.h" #include #include #include #include #include #ifdef __EMBEDDED__ #include "gdb_stdio.h" #define fprintf gdb_stdio_fprintf #define fopen gdb_stdio_fopen #define fclose gdb_stdio_fclose #endif #ifdef DUMP static int dumpon = 0; static FILE *fsn = NULL; static FILE *fsw = NULL; static FILE *few = NULL; static FILE *fsw_ = NULL; static FILE *fsoftdec = NULL; static FILE *fmodel = NULL; static FILE *fqmodel = NULL; static FILE *fpwb = NULL; static FILE *fpw = NULL; static FILE *frw = NULL; static FILE *flsp = NULL; static FILE *fweights = NULL; static FILE *flsp_ = NULL; static FILE *fmel = NULL; static FILE *fmel_indexes = NULL; static FILE *fphase = NULL; static FILE *fphase_ = NULL; static FILE *ffw = NULL; static FILE *fe = NULL; static FILE *fsq = NULL; static FILE *fdec = NULL; static FILE *fsnr = NULL; static FILE *flpcsnr = NULL; static FILE *fak = NULL; static FILE *fak_ = NULL; static FILE *fbg = NULL; static FILE *fE = NULL; static FILE *frk = NULL; static FILE *fhephase = NULL; static char prefix[MAX_STR]; void dump_on(char p[]) { dumpon = 1; strcpy(prefix, p); } void dump_off(){ if (fsn != NULL) fclose(fsn); if (fsw != NULL) fclose(fsw); if (fsw_ != NULL) fclose(fsw_); if (few != NULL) fclose(few); if (fmodel != NULL) fclose(fmodel); if (fsoftdec != NULL) fclose(fsoftdec); if (fqmodel != NULL) fclose(fqmodel); if (fpwb != NULL) fclose(fpwb); if (fpw != NULL) fclose(fpw); if (frw != NULL) fclose(frw); if (flsp != NULL) fclose(flsp); if (fweights != NULL) fclose(fweights); if (flsp_ != NULL) fclose(flsp_); if (fmel != NULL) fclose(fmel); if (fmel_indexes != NULL) fclose(fmel_indexes); if (fphase != NULL) fclose(fphase); if (fphase_ != NULL) fclose(fphase_); if (ffw != NULL) fclose(ffw); if (fe != NULL) fclose(fe); if (fsq != NULL) fclose(fsq); if (fdec != NULL) fclose(fdec); if (fsnr != NULL) fclose(fsnr); if (flpcsnr != NULL) fclose(flpcsnr); if (fak != NULL) fclose(fak); if (fak_ != NULL) fclose(fak_); if (fbg != NULL) fclose(fbg); if (fE != NULL) fclose(fE); if (frk != NULL) fclose(frk); if (fhephase != NULL) fclose(fhephase); } void dump_Sn(int m_pitch, float Sn[]) { int i; char s[MAX_STR + 7]; if (!dumpon) return; if (fsn == NULL) { sprintf(s,"%s_sn.txt", prefix); fsn = fopen(s, "wt"); assert(fsn != NULL); } /* split across two lines to avoid max line length problems */ /* reconstruct in Octave */ for(i=0; iWo, model->L); for(l=1; l<=model->L; l++) { sprintf(s,"%12f ",model->A[l]); strcat(line, s); assert(strlen(line) < MAX_STR*10); } for(l=model->L+1; l<=MAX_AMP; l++) { sprintf(s,"%12f ", 0.0); strcat(line,s); assert(strlen(line) < MAX_STR*10); } sprintf(s,"%d\n",model->voiced); strcat(line,s); fprintf(fmodel,"%s",line); } void dump_quantised_model(MODEL *model) { int l; char s[MAX_STR + 11]; char line[4096]; if (!dumpon) return; if (fqmodel == NULL) { sprintf(s,"%s_qmodel.txt", prefix); fqmodel = fopen(s, "wt"); assert(fqmodel != NULL); } sprintf(line,"%12f %12d ", model->Wo, model->L); for(l=1; l<=model->L; l++) { sprintf(s,"%12f ",model->A[l]); strcat(line, s); assert(strlen(line) < 4096); } for(l=model->L+1; l<=MAX_AMP; l++) { sprintf(s,"%12f ", 0.0); strcat(line, s); assert(strlen(line) < 4096); } sprintf(s,"%d\n",model->voiced); strcat(line, s); fprintf(fqmodel, "%s", line); } void dump_phase(float phase[], int L) { int l; char s[MAX_STR + 10]; if (!dumpon) return; if (fphase == NULL) { sprintf(s,"%s_phase.txt", prefix); fphase = fopen(s, "wt"); assert(fphase != NULL); } for(l=1; l<=L; l++) fprintf(fphase,"%f\t",phase[l]); for(l=L+1; l<=MAX_AMP; l++) fprintf(fphase,"%f\t",0.0); fprintf(fphase,"\n"); } void dump_phase_(float phase_[], int L) { int l; char s[MAX_STR + 11]; if (!dumpon) return; if (fphase_ == NULL) { sprintf(s,"%s_phase_.txt", prefix); fphase_ = fopen(s, "wt"); assert(fphase_ != NULL); } for(l=1; l<=L; l++) fprintf(fphase_,"%f\t",phase_[l]); for(l=L+1; l. */ #ifndef __DUMP__ #define __DUMP__ #include "defines.h" #include "comp.h" #include "codec2_fft.h" #include "codec2_internal.h" void dump_on(char filename_prefix[]); void dump_off(); void dump_Sn(int m_pitch, float Sn[]); void dump_Sw(COMP Sw[]); void dump_Sw_(COMP Sw_[]); void dump_Ew(COMP Ew[]); void dump_softdec(float *softdec, int n); /* amplitude modelling */ void dump_model(MODEL *m); void dump_quantised_model(MODEL *m); void dump_Pwn(COMP Pw[]); void dump_Pw(float Pw[]); void dump_Rw(float Rw[]); void dump_lsp(float lsp[]); void dump_weights(float w[], int ndim); void dump_lsp_(float lsp_[]); void dump_mel(float mel[], int order); void dump_mel_indexes(int mel_indexes[], int order); void dump_ak(float ak[], int order); void dump_ak_(float ak[], int order); void dump_E(float E); void dump_lpc_snr(float snr); /* phase modelling */ void dump_snr(float snr); void dump_phase(float phase[], int L); void dump_phase_(float phase[], int L); void dump_hephase(int ind[], int dim); /* NLP states */ void dump_sq(int m_pitch, float sq[]); void dump_dec(COMP Fw[]); void dump_Fw(COMP Fw[]); void dump_e(float e_hz[]); #if 0 void dump_Rk(float Rk[]); #endif /* post filter */ void dump_bg(float e, float bg_est, float percent_uv); void dump_Pwb(float Pwb[]); #endif codec2-1.0.1/src/fdmdv.c000066400000000000000000001654231412132000500147020ustar00rootroot00000000000000/*---------------------------------------------------------------------------*\ FILE........: fdmdv.c AUTHOR......: David Rowe DATE CREATED: April 14 2012 Functions that implement the FDMDV modem. \*---------------------------------------------------------------------------*/ /* Copyright (C) 2012 David Rowe All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 2.1, as published by the Free Software Foundation. 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 Lesser General Public License along with this program; if not, see . */ /*---------------------------------------------------------------------------*\ INCLUDES \*---------------------------------------------------------------------------*/ #include #include #include #include #include #include "fdmdv_internal.h" #include "codec2_fdmdv.h" #include "comp_prim.h" #include "rn.h" #include "rxdec_coeff.h" #include "test_bits.h" #include "pilot_coeff.h" #include "codec2_fft.h" #include "hanning.h" #include "os.h" #include "machdep.h" #include "debug_alloc.h" static int sync_uw[] = {1,-1,1,-1,1,-1}; static const COMP pi_on_4 = { .70710678118654752439, .70710678118654752439 }; // cosf(PI/4) , sinf(PI/4) /*--------------------------------------------------------------------------* \ FUNCTION....: fdmdv_create AUTHOR......: David Rowe DATE CREATED: 16/4/2012 Create and initialise an instance of the modem. Returns a pointer to the modem states or NULL on failure. One set of states is sufficient for a full duplex modem. \*---------------------------------------------------------------------------*/ struct FDMDV * fdmdv_create(int Nc) { struct FDMDV *f; int c, i, k; assert(NC == FDMDV_NC_MAX); /* check public and private #defines match */ assert(Nc <= NC); assert(FDMDV_NOM_SAMPLES_PER_FRAME == M_FAC); assert(FDMDV_MAX_SAMPLES_PER_FRAME == (M_FAC+M_FAC/P)); f = (struct FDMDV*)MALLOC(sizeof(struct FDMDV)); if (f == NULL) return NULL; f->Nc = Nc; f->ntest_bits = Nc*NB*4; f->current_test_bit = 0; f->rx_test_bits_mem = (int*)MALLOC(sizeof(int)*f->ntest_bits); assert(f->rx_test_bits_mem != NULL); for(i=0; intest_bits; i++) f->rx_test_bits_mem[i] = 0; assert((sizeof(test_bits)/sizeof(int)) >= f->ntest_bits); f->old_qpsk_mapping = 0; f->tx_pilot_bit = 0; for(c=0; cprev_tx_symbols[c].real = 1.0; f->prev_tx_symbols[c].imag = 0.0; f->prev_rx_symbols[c].real = 1.0; f->prev_rx_symbols[c].imag = 0.0; for(k=0; ktx_filter_memory[c][k].real = 0.0; f->tx_filter_memory[c][k].imag = 0.0; } /* Spread initial FDM carrier phase out as far as possible. This helped PAPR for a few dB. We don't need to adjust rx phase as DQPSK takes care of that. */ f->phase_tx[c].real = cosf(2.0*PI*c/(Nc+1)); f->phase_tx[c].imag = sinf(2.0*PI*c/(Nc+1)); f->phase_rx[c].real = 1.0; f->phase_rx[c].imag = 0.0; for(k=0; krx_filter_mem_timing[c][k].real = 0.0; f->rx_filter_mem_timing[c][k].imag = 0.0; } } f->prev_tx_symbols[Nc].real = 2.0; fdmdv_set_fsep(f, FSEP); f->freq[Nc].real = cosf(2.0*PI*0.0/FS); f->freq[Nc].imag = sinf(2.0*PI*0.0/FS); f->freq_pol[Nc] = 2.0*PI*0.0/FS; f->fbb_rect.real = cosf(2.0*PI*FDMDV_FCENTRE/FS); f->fbb_rect.imag = sinf(2.0*PI*FDMDV_FCENTRE/FS); f->fbb_pol = 2.0*PI*FDMDV_FCENTRE/FS; f->fbb_phase_tx.real = 1.0; f->fbb_phase_tx.imag = 0.0; f->fbb_phase_rx.real = 1.0; f->fbb_phase_rx.imag = 0.0; /* Generate DBPSK pilot Look Up Table (LUT) */ generate_pilot_lut(f->pilot_lut, &f->freq[Nc]); /* freq Offset estimation states */ f->fft_pilot_cfg = codec2_fft_alloc (MPILOTFFT, 0, NULL, NULL); assert(f->fft_pilot_cfg != NULL); for(i=0; ipilot_baseband1[i].real = f->pilot_baseband2[i].real = 0.0; f->pilot_baseband1[i].imag = f->pilot_baseband2[i].imag = 0.0; } f->pilot_lut_index = 0; f->prev_pilot_lut_index = 3*M_FAC; for(i=0; irxdec_lpf_mem[i].real = 0.0; f->rxdec_lpf_mem[i].imag = 0.0; } for(i=0; ipilot_lpf1[i].real = f->pilot_lpf2[i].real = 0.0; f->pilot_lpf1[i].imag = f->pilot_lpf2[i].imag = 0.0; } f->foff = 0.0; f->foff_phase_rect.real = 1.0; f->foff_phase_rect.imag = 0.0; for(i=0; irx_fdm_mem[i].real = 0.0; f->rx_fdm_mem[i].imag = 0.0; } f->fest_state = 0; f->sync = 0; f->timer = 0; for(i=0; isync_mem[i] = 0; for(c=0; csig_est[c] = 0.0; f->noise_est[c] = 0.0; } f->sig_pwr_av = 0.0; f->foff_filt = 0.0; return f; } /*---------------------------------------------------------------------------*\ FUNCTION....: fdmdv_destroy AUTHOR......: David Rowe DATE CREATED: 16/4/2012 Destroy an instance of the modem. \*---------------------------------------------------------------------------*/ void fdmdv_destroy(struct FDMDV *fdmdv) { assert(fdmdv != NULL); codec2_fft_free(fdmdv->fft_pilot_cfg); FREE(fdmdv->rx_test_bits_mem); FREE(fdmdv); } void fdmdv_use_old_qpsk_mapping(struct FDMDV *fdmdv) { fdmdv->old_qpsk_mapping = 1; } int fdmdv_bits_per_frame(struct FDMDV *fdmdv) { return (fdmdv->Nc * NB); } /*---------------------------------------------------------------------------*\ FUNCTION....: fdmdv_get_test_bits() AUTHOR......: David Rowe DATE CREATED: 16/4/2012 Generate a frame of bits from a repeating sequence of random data. OK so it's not very random if it repeats but it makes syncing at the demod easier for test purposes. \*---------------------------------------------------------------------------*/ void fdmdv_get_test_bits(struct FDMDV *f, int tx_bits[]) { int i; int bits_per_frame = fdmdv_bits_per_frame(f); for(i=0; icurrent_test_bit]; f->current_test_bit++; if (f->current_test_bit > (f->ntest_bits-1)) f->current_test_bit = 0; } } float fdmdv_get_fsep(struct FDMDV *f) { return f->fsep; } void fdmdv_set_fsep(struct FDMDV *f, float fsep) { int c; float carrier_freq; f->fsep = fsep; /* Set up frequency of each carrier */ for(c=0; cNc/2; c++) { carrier_freq = (-f->Nc/2 + c)*f->fsep; f->freq[c].real = cosf(2.0*PI*carrier_freq/FS); f->freq[c].imag = sinf(2.0*PI*carrier_freq/FS); f->freq_pol[c] = 2.0*PI*carrier_freq/FS; } for(c=f->Nc/2; cNc; c++) { carrier_freq = (-f->Nc/2 + c + 1)*f->fsep; f->freq[c].real = cosf(2.0*PI*carrier_freq/FS); f->freq[c].imag = sinf(2.0*PI*carrier_freq/FS); f->freq_pol[c] = 2.0*PI*carrier_freq/FS; } } /*---------------------------------------------------------------------------*\ FUNCTION....: bits_to_dqpsk_symbols() AUTHOR......: David Rowe DATE CREATED: 16/4/2012 Maps bits to parallel DQPSK symbols. Generate Nc+1 QPSK symbols from vector of (1,Nc*Nb) input tx_bits. The Nc+1 symbol is the +1 -1 +1 .... BPSK sync carrier. \*---------------------------------------------------------------------------*/ void bits_to_dqpsk_symbols(COMP tx_symbols[], int Nc, COMP prev_tx_symbols[], int tx_bits[], int *pilot_bit, int old_qpsk_mapping) { int c, msb, lsb; COMP j = {0.0,1.0}; /* Map tx_bits to to Nc DQPSK symbols. Note legacy support for old (suboptimal) V0.91 FreeDV mapping */ for(c=0; creal /= mag; fbb_phase->imag /= mag; /* shift memory, inserting zeros at end */ for(i=0; ireal /= mag; fbb_phase->imag /= mag; } /*---------------------------------------------------------------------------*\ FUNCTION....: fdmdv_mod() AUTHOR......: David Rowe DATE CREATED: 26/4/2012 FDMDV modulator, take a frame of FDMDV_BITS_PER_FRAME bits and generates a frame of FDMDV_SAMPLES_PER_FRAME modulated symbols. Sync bit is returned to aid alignment of your next frame. The sync_bit value returned will be used for the _next_ frame. The output signal is complex to support single sided frequency shifting, for example when testing frequency offsets in channel simulation. \*---------------------------------------------------------------------------*/ void fdmdv_mod(struct FDMDV *fdmdv, COMP tx_fdm[], int tx_bits[], int *sync_bit) { COMP tx_symbols[NC+1]; PROFILE_VAR(mod_start, tx_filter_and_upconvert_start); PROFILE_SAMPLE(mod_start); bits_to_dqpsk_symbols(tx_symbols, fdmdv->Nc, fdmdv->prev_tx_symbols, tx_bits, &fdmdv->tx_pilot_bit, fdmdv->old_qpsk_mapping); memcpy(fdmdv->prev_tx_symbols, tx_symbols, sizeof(COMP)*(fdmdv->Nc+1)); PROFILE_SAMPLE_AND_LOG(tx_filter_and_upconvert_start, mod_start, " bits_to_dqpsk_symbols"); tx_filter_and_upconvert(tx_fdm, fdmdv->Nc, tx_symbols, fdmdv->tx_filter_memory, fdmdv->phase_tx, fdmdv->freq, &fdmdv->fbb_phase_tx, fdmdv->fbb_rect); PROFILE_SAMPLE_AND_LOG2(tx_filter_and_upconvert_start, " tx_filter_and_upconvert"); *sync_bit = fdmdv->tx_pilot_bit; } /*---------------------------------------------------------------------------*\ FUNCTION....: generate_pilot_fdm() AUTHOR......: David Rowe DATE CREATED: 19/4/2012 Generate M_FAC samples of DBPSK pilot signal for Freq offset estimation. \*---------------------------------------------------------------------------*/ void generate_pilot_fdm(COMP *pilot_fdm, int *bit, float *symbol, float *filter_mem, COMP *phase, COMP *freq) { int i,j,k; float tx_baseband[M_FAC]; /* +1 -1 +1 -1 DBPSK sync carrier, once filtered becomes (roughly) two spectral lines at +/- RS/2 */ if (*bit) *symbol = -*symbol; if (*bit) *bit = 0; else *bit = 1; /* filter DPSK symbol to create M_FAC baseband samples */ filter_mem[NFILTER-1] = (sqrtf(2)/2) * *symbol; for(i=0; ireal; pilot_fdm[i].imag = sqrtf(2)*2*tx_baseband[i] * phase->imag; } } /*---------------------------------------------------------------------------*\ FUNCTION....: generate_pilot_lut() AUTHOR......: David Rowe DATE CREATED: 19/4/2012 Generate a 4M sample vector of DBPSK pilot signal. As the pilot signal is periodic in 4M samples we can then use this vector as a look up table for pilot signal generation in the demod. \*---------------------------------------------------------------------------*/ void generate_pilot_lut(COMP pilot_lut[], COMP *pilot_freq) { int pilot_rx_bit = 0; float pilot_symbol = sqrtf(2.0); COMP pilot_phase = {1.0, 0.0}; float pilot_filter_mem[NFILTER]; COMP pilot[M_FAC]; int i,f; for(i=0; i= 4) memcpy(&pilot_lut[M_FAC*(f-4)], pilot, M_FAC*sizeof(COMP)); } // create complex conjugate since we need this and only this later on for (f=0;f<4*M_FAC;f++) { pilot_lut[f] = cconj(pilot_lut[f]); } } /*---------------------------------------------------------------------------*\ FUNCTION....: lpf_peak_pick() AUTHOR......: David Rowe DATE CREATED: 20/4/2012 LPF and peak pick part of freq est, put in a function as we call it twice. \*---------------------------------------------------------------------------*/ void lpf_peak_pick(float *foff, float *max, COMP pilot_baseband[], COMP pilot_lpf[], codec2_fft_cfg fft_pilot_cfg, COMP S[], int nin, int do_fft) { int i,j,k; int mpilot; float mag, imax; int ix; float r; /* LPF cutoff 200Hz, so we can handle max +/- 200 Hz freq offset */ for(i=0; i imax) { imax = mag; ix = i; } } r = 2.0*200.0/MPILOTFFT; /* maps FFT bin to frequency in Hz */ if (ix >= MPILOTFFT/2) *foff = (ix - MPILOTFFT)*r; else *foff = (ix)*r; } *max = imax; } /*---------------------------------------------------------------------------*\ FUNCTION....: rx_est_freq_offset() AUTHOR......: David Rowe DATE CREATED: 19/4/2012 Estimate frequency offset of FDM signal using BPSK pilot. Note that this algorithm is quite sensitive to pilot tone level wrt other carriers, so test variations to the pilot amplitude carefully. \*---------------------------------------------------------------------------*/ float rx_est_freq_offset(struct FDMDV *f, COMP rx_fdm[], int nin, int do_fft) { int i; #ifndef FDV_ARM_MATH int j; #endif COMP pilot[M_FAC+M_FAC/P]; COMP prev_pilot[M_FAC+M_FAC/P]; float foff, foff1, foff2; float max1, max2; assert(nin <= M_FAC+M_FAC/P); /* get pilot samples used for correlation/down conversion of rx signal */ for (i=0; ipilot_lut[f->pilot_lut_index]; f->pilot_lut_index++; if (f->pilot_lut_index >= 4*M_FAC) f->pilot_lut_index = 0; prev_pilot[i] = f->pilot_lut[f->prev_pilot_lut_index]; f->prev_pilot_lut_index++; if (f->prev_pilot_lut_index >= 4*M_FAC) f->prev_pilot_lut_index = 0; } /* Down convert latest M_FAC samples of pilot by multiplying by ideal BPSK pilot signal we have generated locally. The peak of the resulting signal is sensitive to the time shift between the received and local version of the pilot, so we do it twice at different time shifts and choose the maximum. */ for(i=0; ipilot_baseband1[i] = f->pilot_baseband1[i+nin]; f->pilot_baseband2[i] = f->pilot_baseband2[i+nin]; } #ifndef FDV_ARM_MATH for(i=0,j=NPILOTBASEBAND-nin; ipilot_baseband1[j] = cmult(rx_fdm[i], pilot[i]); f->pilot_baseband2[j] = cmult(rx_fdm[i], prev_pilot[i]); } #else // TODO: Maybe a handwritten mult taking advantage of rx_fdm[0] being // used twice would be faster but this is for sure faster than // the implementation above in any case. arm_cmplx_mult_cmplx_f32(&rx_fdm[0].real,&pilot[0].real,&f->pilot_baseband1[NPILOTBASEBAND-nin].real,nin); arm_cmplx_mult_cmplx_f32(&rx_fdm[0].real,&prev_pilot[0].real,&f->pilot_baseband2[NPILOTBASEBAND-nin].real,nin); #endif lpf_peak_pick(&foff1, &max1, f->pilot_baseband1, f->pilot_lpf1, f->fft_pilot_cfg, f->S1, nin, do_fft); lpf_peak_pick(&foff2, &max2, f->pilot_baseband2, f->pilot_lpf2, f->fft_pilot_cfg, f->S2, nin, do_fft); if (max1 > max2) foff = foff1; else foff = foff2; return foff; } /*---------------------------------------------------------------------------*\ FUNCTION....: fdmdv_freq_shift() AUTHOR......: David Rowe DATE CREATED: 26/4/2012 Frequency shift modem signal. The use of complex input and output allows single sided frequency shifting (no images). \*---------------------------------------------------------------------------*/ void fdmdv_freq_shift(COMP rx_fdm_fcorr[], COMP rx_fdm[], float foff, COMP *foff_phase_rect, int nin) { COMP foff_rect; float mag; int i; foff_rect.real = cosf(2.0*PI*foff/FS); foff_rect.imag = sinf(2.0*PI*foff/FS); for(i=0; ireal /= mag; foff_phase_rect->imag /= mag; } /*---------------------------------------------------------------------------*\ FUNCTION....: fdm_downconvert AUTHOR......: David Rowe DATE CREATED: 22/4/2012 Frequency shift each modem carrier down to Nc+1 baseband signals. \*---------------------------------------------------------------------------*/ void fdm_downconvert(COMP rx_baseband[NC+1][M_FAC+M_FAC/P], int Nc, COMP rx_fdm[], COMP phase_rx[], COMP freq[], int nin) { int i,c; float mag; /* maximum number of input samples to demod */ assert(nin <= (M_FAC+M_FAC/P)); /* downconvert */ for (c=0; c nin |--------------------------|---------| 1 | phase_rx(c) This means winding phase(c) back from this point to ensure phase continuity. */ //PROFILE_SAMPLE(windback_start); windback_phase = -freq_pol[c]*NFILTER; windback_phase_rect.real = cosf(windback_phase); windback_phase_rect.imag = sinf(windback_phase); phase_rx[c] = cmult(phase_rx[c],windback_phase_rect); //PROFILE_SAMPLE_AND_LOG(downconvert_start, windback_start, " windback"); /* down convert all samples in buffer */ st = NRX_FDM_MEM-1; /* end of buffer */ st -= nin-1; /* first new sample */ st -= NFILTER; /* first sample used in filtering */ /* freq shift per dec_rate step is dec_rate times original shift */ f_rect = freq[c]; for(i=0; i P) rx_timing -= P; if (rx_timing < -P) rx_timing += P; /* rx_filter_mem_timing contains Nt*P samples (Nt symbols at rate P), where Nt is odd. Lets use linear interpolation to resample in the centre of the timing estimation window .*/ rx_timing += floorf(NT/2.0)*P; low_sample = floorf(rx_timing); fract = rx_timing - low_sample; high_sample = ceilf(rx_timing); //printf("rx_timing: %f low_sample: %d high_sample: %d fract: %f\n", rx_timing, low_sample, high_sample, fract); for(c=0; c= 0) && (d.imag >= 0)) { msb = 0; lsb = 0; } if ((d.real < 0) && (d.imag >= 0)) { msb = 0; lsb = 1; } if ((d.real < 0) && (d.imag < 0)) { if (old_qpsk_mapping) { msb = 1; lsb = 0; } else { msb = 1; lsb = 1; } } if ((d.real >= 0) && (d.imag < 0)) { if (old_qpsk_mapping) { msb = 1; lsb = 1; } else { msb = 1; lsb = 0; } } rx_bits[2*c] = msb; rx_bits[2*c+1] = lsb; } /* Extract DBPSK encoded Sync bit and fine freq offset estimate */ norm = 1.0/(cabsolute(prev_rx_symbols[Nc])+1E-6); phase_difference[Nc] = cmult(rx_symbols[Nc], fcmult(norm, cconj(prev_rx_symbols[Nc]))); if (phase_difference[Nc].real < 0) { *sync_bit = 1; ferr = phase_difference[Nc].imag*norm; /* make f_err magnitude insensitive */ } else { *sync_bit = 0; ferr = -phase_difference[Nc].imag*norm; } /* pilot carrier gets an extra pi/4 rotation to make it consistent with other carriers, as we need it for snr_update and scatter diagram */ phase_difference[Nc] = cmult(phase_difference[Nc], pi_on_4); return ferr; } /*---------------------------------------------------------------------------*\ FUNCTION....: snr_update() AUTHOR......: David Rowe DATE CREATED: 17 May 2012 Given phase differences update estimates of signal and noise levels. \*---------------------------------------------------------------------------*/ void snr_update(float sig_est[], float noise_est[], int Nc, COMP phase_difference[]) { float s[NC+1]; COMP refl_symbols[NC+1]; float n[NC+1]; int c; /* mag of each symbol is distance from origin, this gives us a vector of mags, one for each carrier. */ for(c=0; cntest_bits; } /*---------------------------------------------------------------------------*\ FUNCTION....: fdmdv_put_test_bits() AUTHOR......: David Rowe DATE CREATED: 24/4/2012 Accepts nbits from rx and attempts to sync with test_bits sequence. If sync OK measures bit errors. \*---------------------------------------------------------------------------*/ void fdmdv_put_test_bits(struct FDMDV *f, int *sync, short error_pattern[], int *bit_errors, int *ntest_bits, int rx_bits[]) { int i,j; float ber; int bits_per_frame = fdmdv_bits_per_frame(f); /* Append to our memory */ for(i=0,j=bits_per_frame; intest_bits-bits_per_frame; i++,j++) f->rx_test_bits_mem[i] = f->rx_test_bits_mem[j]; for(i=f->ntest_bits-bits_per_frame,j=0; intest_bits; i++,j++) f->rx_test_bits_mem[i] = rx_bits[j]; /* see how many bit errors we get when checked against test sequence */ *bit_errors = 0; for(i=0; intest_bits; i++) { error_pattern[i] = test_bits[i] ^ f->rx_test_bits_mem[i]; *bit_errors += error_pattern[i]; //printf("%d %d %d %d\n", i, test_bits[i], f->rx_test_bits_mem[i], test_bits[i] ^ f->rx_test_bits_mem[i]); } /* if less than a thresh we are aligned and in sync with test sequence */ ber = (float)*bit_errors/f->ntest_bits; *sync = 0; if (ber < 0.2) *sync = 1; *ntest_bits = f->ntest_bits; } /*---------------------------------------------------------------------------*\ FUNCTION....: freq_state(() AUTHOR......: David Rowe DATE CREATED: 24/4/2012 Freq offset state machine. Moves between coarse and fine states based on BPSK pilot sequence. Freq offset estimator occasionally makes mistakes when used continuously. So we use it until we have acquired the BPSK pilot, then switch to a more robust "fine" tracking algorithm. If we lose sync we switch back to coarse mode for fast re-acquisition of large frequency offsets. The sync state is also useful for higher layers to determine when there is valid FDMDV data for decoding. We want to reliably and quickly get into sync, stay in sync even on fading channels, and fall out of sync quickly if tx stops or it's a false sync. In multipath fading channels the BPSK sync carrier may be pushed down in the noise, despite other carriers being at full strength. We want to avoid loss of sync in these cases. \*---------------------------------------------------------------------------*/ int freq_state(int *reliable_sync_bit, int sync_bit, int *state, int *timer, int *sync_mem) { int next_state, sync, unique_word, i, corr; /* look for 6 symbols (120ms) 101010 of sync sequence */ unique_word = 0; for(i=0; ifbb_phase_rx, *nin); /* freq offset estimation and correction */ PROFILE_SAMPLE(demod_start); foff_coarse = rx_est_freq_offset(fdmdv, rx_fdm_bb, *nin, !fdmdv->sync); PROFILE_SAMPLE_AND_LOG(fdmdv_freq_shift_start, demod_start, " rx_est_freq_offset"); if (fdmdv->sync == 0) fdmdv->foff = foff_coarse; fdmdv_freq_shift(rx_fdm_fcorr, rx_fdm_bb, -fdmdv->foff, &fdmdv->foff_phase_rect, *nin); PROFILE_SAMPLE_AND_LOG(down_convert_and_rx_filter_start, fdmdv_freq_shift_start, " fdmdv_freq_shift"); /* baseband processing */ rxdec_filter(rx_fdm_filter, rx_fdm_fcorr, fdmdv->rxdec_lpf_mem, *nin); down_convert_and_rx_filter(rx_filt, fdmdv->Nc, rx_fdm_filter, fdmdv->rx_fdm_mem, fdmdv->phase_rx, fdmdv->freq, fdmdv->freq_pol, *nin, M_FAC/Q); PROFILE_SAMPLE_AND_LOG(rx_est_timing_start, down_convert_and_rx_filter_start, " down_convert_and_rx_filter"); fdmdv->rx_timing = rx_est_timing(rx_symbols, fdmdv->Nc, rx_filt, fdmdv->rx_filter_mem_timing, env, *nin, M_FAC); PROFILE_SAMPLE_AND_LOG(qpsk_to_bits_start, rx_est_timing_start, " rx_est_timing"); /* Adjust number of input samples to keep timing within bounds */ *nin = M_FAC; if (fdmdv->rx_timing > M_FAC/P) *nin += M_FAC/P; if (fdmdv->rx_timing < -M_FAC/P) *nin -= M_FAC/P; foff_fine = qpsk_to_bits(rx_bits, &sync_bit, fdmdv->Nc, fdmdv->phase_difference, fdmdv->prev_rx_symbols, rx_symbols, fdmdv->old_qpsk_mapping); memcpy(fdmdv->prev_rx_symbols, rx_symbols, sizeof(COMP)*(fdmdv->Nc+1)); PROFILE_SAMPLE_AND_LOG(snr_update_start, qpsk_to_bits_start, " qpsk_to_bits"); snr_update(fdmdv->sig_est, fdmdv->noise_est, fdmdv->Nc, fdmdv->phase_difference); PROFILE_SAMPLE_AND_LOG(freq_state_start, snr_update_start, " snr_update"); /* freq offset estimation state machine */ fdmdv->sync = freq_state(reliable_sync_bit, sync_bit, &fdmdv->fest_state, &fdmdv->timer, fdmdv->sync_mem); PROFILE_SAMPLE_AND_LOG2(freq_state_start, " freq_state"); fdmdv->foff -= TRACK_COEFF*foff_fine; } /*---------------------------------------------------------------------------*\ FUNCTION....: calc_snr() AUTHOR......: David Rowe DATE CREATED: 17 May 2012 Calculate current SNR estimate (3000Hz noise BW) \*---------------------------------------------------------------------------*/ float calc_snr(int Nc, float sig_est[], float noise_est[]) { float S, SdB; float mean, N50, N50dB, N3000dB; float snr_dB; int c; S = 0.0; for(c=0; cNc <= MODEM_STATS_NC_MAX); stats->Nc = fdmdv->Nc; stats->snr_est = calc_snr(fdmdv->Nc, fdmdv->sig_est, fdmdv->noise_est); stats->sync = fdmdv->sync; stats->foff = fdmdv->foff; stats->rx_timing = fdmdv->rx_timing; stats->clock_offset = 0.0; /* TODO - implement clock offset estimation */ #ifndef __EMBEDDED__ stats->nr = 1; for(int c=0; cNc+1; c++) { stats->rx_symbols[0][c] = fdmdv->phase_difference[c]; } #endif } /*---------------------------------------------------------------------------*\ FUNCTION....: fdmdv_8_to_16() AUTHOR......: David Rowe DATE CREATED: 9 May 2012 Changes the sample rate of a signal from 8 to 16 kHz. Support function for SM1000. \*---------------------------------------------------------------------------*/ void fdmdv_8_to_16(float out16k[], float in8k[], int n8k) { int i,k,l; float acc; /* this version unrolled for specific FDMDV_OS */ assert(FDMDV_OS == 2); for(i=0; iNc; i++) fprintf(stderr," %1.3f", (double)cabsolute(f->phase_tx[i])); fprintf(stderr,"\nfreq[]:\n"); for(i=0; i<=f->Nc; i++) fprintf(stderr," %1.3f", (double)cabsolute(f->freq[i])); fprintf(stderr,"\nfoff_phase_rect: %1.3f", (double)cabsolute(f->foff_phase_rect)); fprintf(stderr,"\nphase_rx[]:\n"); for(i=0; i<=f->Nc; i++) fprintf(stderr," %1.3f", (double)cabsolute(f->phase_rx[i])); fprintf(stderr, "\n\n"); } /*---------------------------------------------------------------------------*\ FUNCTION....: randn() AUTHOR......: David Rowe DATE CREATED: 2 August 2014 Simple approximation to normal (gaussian) random number generator with 0 mean and unit variance. \*---------------------------------------------------------------------------*/ #define RANDN_IT 12 /* This magic number of iterations gives us a unit variance. I think beacuse var = (b-a)^2/12 for one uniform random variable, so for a sum of n random variables it's n(b-a)^2/12, or for b=1, a = 0, n=12, we get var = 12(1-0)^2/12 = 1 */ static float randn() { int i; float rn = 0.0; for(i=0; isig_pwr_av: %e target_snr_linear: %f noise_pwr_4000Hz: %e noise_gain: %e\n", sig_pwr, *sig_pwr_av, target_snr_linear, noise_pwr_4000Hz, noise_gain); */ } codec2-1.0.1/src/fdmdv_channel.c000066400000000000000000000061001412132000500163540ustar00rootroot00000000000000/*---------------------------------------------------------------------------*\ FILE........: fdmdv_channel.c AUTHOR......: David Rowe DATE CREATED: 2 August 2014 Given an input raw file (8kHz, 16 bit shorts) of FDMDV modem samples, adds channel impairments and outputs to another raw file. \*---------------------------------------------------------------------------*/ /* Copyright (C) 2014 David Rowe All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 2.1, as published by the Free Software Foundation. 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 Lesser General Public License along with this program; if not, see . */ #include #include #include #include #include #include #include "codec2_fdmdv.h" #include "fdmdv_internal.h" int main(int argc, char *argv[]) { FILE *fin, *fout; short rx_fdm_buf[FDMDV_NOM_SAMPLES_PER_FRAME]; COMP rx_fdm[FDMDV_NOM_SAMPLES_PER_FRAME]; struct FDMDV *fdmdv; float snrdB, sam; int i; if (argc < 3) { printf("usage: %s InputModemRawFile OutputModemRawFile SNRdB\n", argv[0]); printf("e.g %s test_in.raw test_out.raw 4\n", argv[0]); exit(1); } if (strcmp(argv[1], "-") == 0) fin = stdin; else if ( (fin = fopen(argv[1],"rb")) == NULL ) { fprintf(stderr, "Error opening input modem sample file: %s: %s.\n", argv[1], strerror(errno)); exit(1); } if (strcmp(argv[2], "-") == 0) fout = stdout; else if ( (fout = fopen(argv[2],"wb")) == NULL ) { fprintf(stderr, "Error opening output modem sample file: %s: %s.\n", argv[2], strerror(errno)); exit(1); } snrdB = atof(argv[3]); fdmdv = fdmdv_create(FDMDV_NC); while(fread(rx_fdm_buf, sizeof(short), FDMDV_NOM_SAMPLES_PER_FRAME, fin) == FDMDV_NOM_SAMPLES_PER_FRAME) { for(i=0; isig_pwr_av, rx_fdm, FDMDV_NOM_SAMPLES_PER_FRAME, snrdB - 3.0); for(i=0; i 32767.0) sam = 32767.0; if (sam < -32767.0) sam = -32767.0; rx_fdm_buf[i] = sam; } fwrite(rx_fdm_buf, sizeof(short), FDMDV_NOM_SAMPLES_PER_FRAME, fout); /* if this is in a pipeline, we probably don't want the usual buffering to occur */ if (fout == stdout) fflush(stdout); } fclose(fin); fclose(fout); fdmdv_destroy(fdmdv); return 0; } codec2-1.0.1/src/fdmdv_demod.c000066400000000000000000000176511412132000500160510ustar00rootroot00000000000000/*---------------------------------------------------------------------------*\ FILE........: fdmdv_demod.c AUTHOR......: David Rowe DATE CREATED: April 30 2012 Given an input raw file (8kHz, 16 bit shorts) of FDMDV modem samples outputs a file of bits. The output file is assumed to be arranged as codec frames of 56 bits (7 bytes) which are received as two 28 bit modem frames. Demod states can be optionally logged to an Octave file for display using the Octave script fdmdv_demod_c.m. This is useful for checking demod performance. \*---------------------------------------------------------------------------*/ /* Copyright (C) 2012 David Rowe All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 2.1, as published by the Free Software Foundation. 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 Lesser General Public License along with this program; if not, see . */ #include #include #include #include #include #include #include "codec2_fdmdv.h" #include "octave.h" #include "freedv_api.h" #include "debug_alloc.h" /* lof of information we want to dump to Octave */ #define MAX_FRAMES 50*60 /* 1 minute at 50 symbols/s */ int main(int argc, char *argv[]) { FILE *fin, *fout; struct FDMDV *fdmdv; char *packed_bits; int *rx_bits; int *codec_bits; COMP rx_fdm[FDMDV_MAX_SAMPLES_PER_FRAME]; short rx_fdm_scaled[FDMDV_MAX_SAMPLES_PER_FRAME]; int i, bit, byte, c; int nin, nin_prev; int sync_bit = 0, reliable_sync_bit; int sync = 0; int f; FILE *foct = NULL; struct MODEM_STATS stats; COMP *rx_fdm_log; int rx_fdm_log_col_index; COMP *rx_symbols_log; int sync_log[MAX_FRAMES]; float rx_timing_log[MAX_FRAMES]; float foff_log[MAX_FRAMES]; int sync_bit_log[MAX_FRAMES]; int rx_bits_log[FDMDV_BITS_PER_FRAME*MAX_FRAMES]; float snr_est_log[MAX_FRAMES]; float *rx_spec_log; int max_frames_reached; int bits_per_fdmdv_frame; int bits_per_codec_frame; int bytes_per_codec_frame; int Nc; if (argc < 2) { printf("usage: %s InputModemRawFile OutputBitFile [Nc [OctaveDumpFile]]\n", argv[0]); printf("e.g %s hts1a_fdmdv.raw hts1a.c2\n", argv[0]); exit(1); } if (strcmp(argv[1], "-") == 0) fin = stdin; else if ( (fin = fopen(argv[1],"rb")) == NULL ) { fprintf(stderr, "Error opening input modem sample file: %s: %s.\n", argv[1], strerror(errno)); exit(1); } if (strcmp(argv[2], "-") == 0) fout = stdout; else if ( (fout = fopen(argv[2],"wb")) == NULL ) { fprintf(stderr, "Error opening output bit file: %s: %s.\n", argv[2], strerror(errno)); exit(1); } if (argc >= 4) { Nc = atoi(argv[3]); if ((Nc < 2) || (Nc > FDMDV_NC_MAX) ) { fprintf(stderr, "Error number of carriers must be between 2 and %d\n", FDMDV_NC_MAX); exit(1); } } else Nc = FDMDV_NC; fdmdv = fdmdv_create(Nc); modem_stats_open(&stats); bits_per_fdmdv_frame = fdmdv_bits_per_frame(fdmdv); bits_per_codec_frame = 2*fdmdv_bits_per_frame(fdmdv); bytes_per_codec_frame = (bits_per_codec_frame+7)/8; /* malloc some buffers that are dependant on Nc */ packed_bits = (char*)MALLOC(bytes_per_codec_frame); assert(packed_bits != NULL); rx_bits = (int*)MALLOC(sizeof(int)*bits_per_codec_frame); assert(rx_bits != NULL); codec_bits = (int*)MALLOC(2*sizeof(int)*bits_per_fdmdv_frame); assert(codec_bits != NULL); /* malloc some of the larger variables to prevent out of stack problems */ rx_fdm_log = (COMP*)MALLOC(sizeof(COMP)*FDMDV_MAX_SAMPLES_PER_FRAME*MAX_FRAMES); assert(rx_fdm_log != NULL); rx_spec_log = (float*)MALLOC(sizeof(float)*MODEM_STATS_NSPEC*MAX_FRAMES); assert(rx_spec_log != NULL); rx_symbols_log = (COMP*)MALLOC(sizeof(COMP)*(Nc+1)*MAX_FRAMES); assert(rx_fdm_log != NULL); f = 0; nin = FDMDV_NOM_SAMPLES_PER_FRAME; rx_fdm_log_col_index = 0; max_frames_reached = 0; while(fread(rx_fdm_scaled, sizeof(short), nin, fin) == nin) { for(i=0; i. */ #include #include #include #include #include #include #include "codec2_fdmdv.h" int main(int argc, char *argv[]) { FILE *fout; struct FDMDV *fdmdv; char *packed_bits; int *tx_bits; int n, i, bit, byte; int numBits, nCodecFrames; int bits_per_fdmdv_frame; int bits_per_codec_frame; int bytes_per_codec_frame; int Nc; if (argc < 3) { printf("usage: %s OutputBitFile numBits [Nc]\n", argv[0]); printf("e.g %s test.c2 1400\n", argv[0]); exit(1); } if (strcmp(argv[1], "-") == 0) fout = stdout; else if ( (fout = fopen(argv[1],"wb")) == NULL ) { fprintf(stderr, "Error opening output bit file: %s: %s.\n", argv[1], strerror(errno)); exit(1); } numBits = atoi(argv[2]); if (argc == 4) { Nc = atoi(argv[3]); if ((Nc < 2) || (Nc > FDMDV_NC_MAX) ) { fprintf(stderr, "Error number of carriers must be btween 2 and %d\n", FDMDV_NC_MAX); exit(1); } } else Nc = FDMDV_NC; fdmdv = fdmdv_create(Nc); bits_per_fdmdv_frame = fdmdv_bits_per_frame(fdmdv); bits_per_codec_frame = 2*fdmdv_bits_per_frame(fdmdv); bytes_per_codec_frame = (bits_per_codec_frame+7)/8; fprintf(stderr, "bits_per_fdmdv_frame: %d bits_per_codec_frame: %d bytes_per_codec_frame: %d\n", bits_per_fdmdv_frame, bits_per_codec_frame, bytes_per_codec_frame); packed_bits = (char*)malloc(bytes_per_codec_frame); assert(packed_bits != NULL); tx_bits = (int*)malloc(sizeof(int)*bits_per_codec_frame); assert(tx_bits != NULL); nCodecFrames = numBits/bits_per_codec_frame; for(n=0; n. */ #ifndef __FDMDV_INTERNAL__ #define __FDMDV_INTERNAL__ #include "comp.h" #include "codec2_fdmdv.h" #include "codec2_fft.h" /*---------------------------------------------------------------------------*\ DEFINES \*---------------------------------------------------------------------------*/ #ifndef PI #define PI 3.141592654 #endif #define FS 8000 /* sample rate in Hz */ #define FS_VOICE_8K 8000 /* speech sample rate, 8000 Hz */ #define FS_VOICE_16K 16000 /* speech sample rate, 16000 Hz */ #define T (1.0/FS) /* sample period in seconds */ #define RS 50 /* symbol rate in Hz */ #define NC 20 /* max number of data carriers (plus one pilot in the centre) */ #define NB 2 /* Bits/symbol for QPSK modulation */ #define RB (NC*RS*NB) /* bit rate */ #define M_FAC (FS/RS) /* oversampling factor */ #define NSYM 6 /* number of symbols to filter over */ #define NFILTER (NSYM*M_FAC) /* size of tx/rx filters at sample rate M */ #define FSEP 75 /* Default separation between carriers (Hz) */ #define NT 5 /* number of symbols we estimate timing over */ #define P 4 /* oversample factor used for initial rx symbol filtering output */ #define Q (M_FAC/4) /* oversample factor used for initial rx symbol filtering input */ #define NRXDEC 31 /* number of taps in the rx decimation filter */ #define NPILOT_LUT (4*M_FAC) /* number of pilot look up table samples */ #define NPILOTCOEFF 30 /* number of FIR filter coeffs in LP filter */ #define NPILOTBASEBAND (NPILOTCOEFF+M_FAC+M_FAC/P) /* number of pilot baseband samples reqd for pilot LPF */ #define NPILOTLPF (4*M_FAC) /* number of samples we DFT pilot over, pilot est window */ #define MPILOTFFT 256 #define NSYNC_MEM 6 #define NRX_FDM_MEM (NFILTER+M_FAC+M_FAC/P) /* size of rx filter memory */ #define NRXDECMEM (NRXDEC+M_FAC+M_FAC/P) /* size of rx decimation filter memory */ /* averaging filter coeffs */ #define TRACK_COEFF 0.5 #define SNR_COEFF 0.9 /* SNR est averaging filter coeff */ /*---------------------------------------------------------------------------*\ STRUCT for States \*---------------------------------------------------------------------------*/ struct FDMDV { int Nc; float fsep; /* test data (test frame) states */ int ntest_bits; int current_test_bit; int *rx_test_bits_mem; /* Modulator */ int old_qpsk_mapping; int tx_pilot_bit; COMP prev_tx_symbols[NC+1]; COMP tx_filter_memory[NC+1][NSYM]; COMP phase_tx[NC+1]; COMP freq[NC+1]; float freq_pol[NC+1]; /* Pilot generation at demodulator */ COMP pilot_lut[NPILOT_LUT]; int pilot_lut_index; int prev_pilot_lut_index; /* freq offset estimation states */ codec2_fft_cfg fft_pilot_cfg; COMP pilot_baseband1[NPILOTBASEBAND]; COMP pilot_baseband2[NPILOTBASEBAND]; COMP pilot_lpf1[NPILOTLPF]; COMP pilot_lpf2[NPILOTLPF]; COMP S1[MPILOTFFT]; COMP S2[MPILOTFFT]; /* baseband to low IF carrier states */ COMP fbb_rect; float fbb_pol; COMP fbb_phase_tx; COMP fbb_phase_rx; /* freq offset correction states */ float foff; COMP foff_phase_rect; float foff_filt; /* Demodulator */ COMP rxdec_lpf_mem[NRXDECMEM]; COMP rx_fdm_mem[NRX_FDM_MEM]; COMP phase_rx[NC+1]; COMP rx_filter_mem_timing[NC+1][NT*P]; float rx_timing; COMP phase_difference[NC+1]; COMP prev_rx_symbols[NC+1]; /* sync state machine */ int sync_mem[NSYNC_MEM]; int fest_state; int sync; int timer; /* SNR estimation states */ float sig_est[NC+1]; float noise_est[NC+1]; /* channel simulation */ float sig_pwr_av; }; /*---------------------------------------------------------------------------*\ FUNCTION PROTOTYPES \*---------------------------------------------------------------------------*/ void bits_to_dqpsk_symbols(COMP tx_symbols[], int Nc, COMP prev_tx_symbols[], int tx_bits[], int *pilot_bit, int old_qpsk_mapping); void tx_filter(COMP tx_baseband[NC+1][M_FAC], int Nc, COMP tx_symbols[], COMP tx_filter_memory[NC+1][NSYM]); void fdm_upconvert(COMP tx_fdm[], int Nc, COMP tx_baseband[NC+1][M_FAC], COMP phase_tx[], COMP freq_tx[], COMP *fbb_phase, COMP fbb_rect); void tx_filter_and_upconvert(COMP tx_fdm[], int Nc, COMP tx_symbols[], COMP tx_filter_memory[NC+1][NSYM], COMP phase_tx[], COMP freq[], COMP *fbb_phase, COMP fbb_rect); void generate_pilot_fdm(COMP *pilot_fdm, int *bit, float *symbol, float *filter_mem, COMP *phase, COMP *freq); void generate_pilot_lut(COMP pilot_lut[], COMP *pilot_freq); float rx_est_freq_offset(struct FDMDV *f, COMP rx_fdm[], int nin, int do_fft); void lpf_peak_pick(float *foff, float *max, COMP pilot_baseband[], COMP pilot_lpf[], codec2_fft_cfg fft_pilot_cfg, COMP S[], int nin, int do_fft); void fdm_downconvert(COMP rx_baseband[NC+1][M_FAC+M_FAC/P], int Nc, COMP rx_fdm[], COMP phase_rx[], COMP freq[], int nin); void rxdec_filter(COMP rx_fdm_filter[], COMP rx_fdm[], COMP rxdec_lpf_mem[], int nin); void rx_filter(COMP rx_filt[NC+1][P+1], int Nc, COMP rx_baseband[NC+1][M_FAC+M_FAC/P], COMP rx_filter_memory[NC+1][NFILTER], int nin); void down_convert_and_rx_filter(COMP rx_filt[NC+1][P+1], int Nc, COMP rx_fdm[], COMP rx_fdm_mem[], COMP phase_rx[], COMP freq[], float freq_pol[], int nin, int dec_rate); float rx_est_timing(COMP rx_symbols[], int Nc, COMP rx_filt[NC+1][P+1], COMP rx_filter_mem_timing[NC+1][NT*P], float env[], int nin, int m); float qpsk_to_bits(int rx_bits[], int *sync_bit, int Nc, COMP phase_difference[], COMP prev_rx_symbols[], COMP rx_symbols[], int old_qpsk_mapping); void snr_update(float sig_est[], float noise_est[], int Nc, COMP phase_difference[]); int freq_state(int *reliable_sync_bit, int sync_bit, int *state, int *timer, int *sync_mem); float calc_snr(int Nc, float sig_est[], float noise_est[]); #endif codec2-1.0.1/src/fdmdv_mod.c000066400000000000000000000110211412132000500155210ustar00rootroot00000000000000/*---------------------------------------------------------------------------*\ FILE........: fdmdv_mod.c AUTHOR......: David Rowe DATE CREATED: April 28 2012 Given an input file of bits outputs a raw file (8kHz, 16 bit shorts) of FDMDV modem samples ready to send over a HF radio channel. The input file is assumed to be arranged as codec frames of 56 bits (7 bytes) which we send as two 28 bit modem frames. \*---------------------------------------------------------------------------*/ /* Copyright (C) 2012 David Rowe All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 2.1, as published by the Free Software Foundation. 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 Lesser General Public License along with this program; if not, see . */ #include #include #include #include #include #include #include "codec2_fdmdv.h" int main(int argc, char *argv[]) { FILE *fin, *fout; struct FDMDV *fdmdv; char *packed_bits; int *tx_bits; COMP tx_fdm[2*FDMDV_NOM_SAMPLES_PER_FRAME]; short tx_fdm_scaled[2*FDMDV_NOM_SAMPLES_PER_FRAME]; int frames; int i, bit, byte; int sync_bit; int bits_per_fdmdv_frame; int bits_per_codec_frame; int bytes_per_codec_frame; int Nc; #ifdef CHANNEL_SIM COMP foff_phase_rect; float foff; #endif if (argc < 3) { printf("usage: %s InputBitFile OutputModemRawFile [Nc]\n", argv[0]); printf("e.g %s hts1a.c2 hts1a_fdmdv.raw\n", argv[0]); exit(1); } if (strcmp(argv[1], "-") == 0) fin = stdin; else if ( (fin = fopen(argv[1],"rb")) == NULL ) { fprintf(stderr, "Error opening input bit file: %s: %s.\n", argv[1], strerror(errno)); exit(1); } if (strcmp(argv[2], "-") == 0) fout = stdout; else if ( (fout = fopen(argv[2],"wb")) == NULL ) { fprintf(stderr, "Error opening output modem sample file: %s: %s.\n", argv[2], strerror(errno)); exit(1); } if (argc == 4) { Nc = atoi(argv[3]); if ((Nc < 2) || (Nc > FDMDV_NC_MAX) ) { fprintf(stderr, "Error number of carriers must be btween 2 and %d\n", FDMDV_NC_MAX); exit(1); } } else Nc = FDMDV_NC; fdmdv = fdmdv_create(Nc); bits_per_fdmdv_frame = fdmdv_bits_per_frame(fdmdv); bits_per_codec_frame = 2*fdmdv_bits_per_frame(fdmdv); bytes_per_codec_frame = (bits_per_codec_frame+7)/8; packed_bits = (char*)malloc(bytes_per_codec_frame); assert(packed_bits != NULL); tx_bits = (int*)malloc(sizeof(int)*bits_per_codec_frame); assert(tx_bits != NULL); #ifdef CHANNEL_SIM foff = -100; foff_phase_rect.real = 1.0; foff_phase_rect.imag = 0.0; #endif frames = 0; while(fread(packed_bits, sizeof(char), bytes_per_codec_frame, fin) == bytes_per_codec_frame) { frames++; /* unpack bits, MSB first */ bit = 7; byte = 0; for(i=0; i> bit) & 0x1; bit--; if (bit < 0) { bit = 7; byte++; } } /* modulate even and odd frames */ fdmdv_mod(fdmdv, tx_fdm, tx_bits, &sync_bit); assert(sync_bit == 1); fdmdv_mod(fdmdv, &tx_fdm[FDMDV_NOM_SAMPLES_PER_FRAME], &tx_bits[bits_per_fdmdv_frame], &sync_bit); assert(sync_bit == 0); #ifdef CHANNEL_SIM /* optional freq shift and channel simulation */ fdmdv_freq_shift(tx_fdm, tx_fdm, foff, &foff_phase_rect, 2*FDMDV_NOM_SAMPLES_PER_FRAME); fdmdv_simulate_channel(&sig_pwr_av, tx_fdm, 2*FDMDV_NOM_SAMPLES_PER_FRAME, 10.0); #endif /* scale and save to disk as shorts */ for(i=0; i<2*FDMDV_NOM_SAMPLES_PER_FRAME; i++) tx_fdm_scaled[i] = FDMDV_SCALE * tx_fdm[i].real; fwrite(tx_fdm_scaled, sizeof(short), 2*FDMDV_NOM_SAMPLES_PER_FRAME, fout); /* if this is in a pipeline, we probably don't want the usual buffering to occur */ if (fout == stdout) fflush(stdout); } //fdmdv_dump_osc_mags(fdmdv); free(tx_bits); free(packed_bits); fclose(fin); fclose(fout); fdmdv_destroy(fdmdv); return 0; } codec2-1.0.1/src/fdmdv_put_test_bits.c000066400000000000000000000115221412132000500176400ustar00rootroot00000000000000/*---------------------------------------------------------------------------*\ FILE........: fdmdv_put_test_bits.c AUTHOR......: David Rowe DATE CREATED: 1 May 2012 Using a file of packed test bits as input, determines bit error rate. Useful for testing fdmdv_demod. \*---------------------------------------------------------------------------*/ /* Copyright (C) 2012 David Rowe All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 2.1, as published by the Free Software Foundation. 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 Lesser General Public License along with this program; if not, see . */ #include #include #include #include #include #include #include "codec2_fdmdv.h" int main(int argc, char *argv[]) { FILE *fin; struct FDMDV *fdmdv; char *packed_bits; int *rx_bits; int i, bit, byte; int test_frame_sync, bit_errors, total_bit_errors, total_bits, ntest_bits; int test_frame_sync_state, test_frame_count; int bits_per_fdmdv_frame; int bits_per_codec_frame; int bytes_per_codec_frame; int Nc; short *error_pattern; if (argc < 2) { printf("usage: %s InputBitFile [Nc]\n", argv[0]); printf("e.g %s test.c2\n", argv[0]); exit(1); } if (strcmp(argv[1], "-") == 0) fin = stdin; else if ( (fin = fopen(argv[1],"rb")) == NULL ) { fprintf(stderr, "Error opening input bit file: %s: %s.\n", argv[1], strerror(errno)); exit(1); } if (argc == 3) { Nc = atoi(argv[2]); if ((Nc < 2) || (Nc > FDMDV_NC_MAX) ) { fprintf(stderr, "Error number of carriers must be between 2 and %d\n", FDMDV_NC_MAX); exit(1); } } else Nc = FDMDV_NC; fdmdv = fdmdv_create(Nc); bits_per_fdmdv_frame = fdmdv_bits_per_frame(fdmdv); bits_per_codec_frame = 2*fdmdv_bits_per_frame(fdmdv); bytes_per_codec_frame = (bits_per_codec_frame+7)/8; fprintf(stderr, "bits_per_fdmdv_frame: %d bits_per_codec_frame: %d bytes_per_codec_frame: %d\n", bits_per_fdmdv_frame, bits_per_codec_frame, bytes_per_codec_frame); packed_bits = (char*)malloc(bytes_per_codec_frame); assert(packed_bits != NULL); rx_bits = (int*)malloc(sizeof(int)*bits_per_codec_frame); assert(rx_bits != NULL); error_pattern = (short*)malloc(fdmdv_error_pattern_size(fdmdv)*sizeof(int)); assert(error_pattern != NULL); total_bit_errors = 0; total_bits = 0; test_frame_sync_state = 0; test_frame_count = 0; while(fread(packed_bits, sizeof(char), bytes_per_codec_frame, fin) == bytes_per_codec_frame) { /* unpack bits, MSB first */ bit = 7; byte = 0; for(i=0; i> bit) & 0x1; //printf("%d 0x%x %d\n", i, packed_bits[byte], rx_bits[i]); bit--; if (bit < 0) { bit = 7; byte++; } } fdmdv_put_test_bits(fdmdv, &test_frame_sync, error_pattern, &bit_errors, &ntest_bits, rx_bits); if (test_frame_sync == 1) { test_frame_sync_state = 1; test_frame_count = 0; } if (test_frame_sync_state) { if (test_frame_count == 0) { total_bit_errors += bit_errors; total_bits = total_bits + ntest_bits; printf("+"); } else printf("-"); test_frame_count++; if (test_frame_count == 4) test_frame_count = 0; } else printf("-"); fdmdv_put_test_bits(fdmdv, &test_frame_sync, error_pattern, &bit_errors, &ntest_bits, &rx_bits[bits_per_fdmdv_frame]); if (test_frame_sync == 1) { test_frame_sync_state = 1; test_frame_count = 0; } if (test_frame_sync_state) { if (test_frame_count == 0) { total_bit_errors += bit_errors; total_bits = total_bits + ntest_bits; printf("+"); } else printf("-"); test_frame_count++; if (test_frame_count == 4) test_frame_count = 0; } else printf("-"); } fclose(fin); free(error_pattern); fdmdv_destroy(fdmdv); printf("\nbits %d errors %d BER %1.4f\n", total_bits, total_bit_errors, (float)total_bit_errors/(1E-6+total_bits) ); if (packed_bits != NULL) free(packed_bits); return 0; } codec2-1.0.1/src/filter.c000066400000000000000000000222041412132000500150540ustar00rootroot00000000000000/* Copyright (C) 2018 James C. Ahlstrom All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 2.1, as published by the Free Software Foundation. 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 Lesser General Public License along with this program; if not, see . */ #include #include #include #include #include "filter.h" #include "filter_coef.h" #include "debug_alloc.h" #define cmplx(value) (cosf(value) + sinf(value) * I) /* * This is a library of filter functions. They were copied from Quisk and converted to single precision. */ /*---------------------------------------------------------------------------*\ FUNCTIONS...: quisk_filt_cfInit AUTHOR......: Jim Ahlstrom DATE CREATED: 27 August 2015 MODIFIED: 4 June 2018 Initialize a FIR filter that has complex samples, and either real or complex coefficients. \*---------------------------------------------------------------------------*/ void quisk_filt_cfInit(struct quisk_cfFilter * filter, float * coefs, int taps) { // Prepare a new filter using coefs and taps. Samples are complex. Coefficients can // be real or complex. filter->dCoefs = coefs; filter->cpxCoefs = NULL; filter->cSamples = (complex float *)MALLOC(taps * sizeof(complex float)); memset(filter->cSamples, 0, taps * sizeof(complex float)); filter->ptcSamp = filter->cSamples; filter->nTaps = taps; filter->cBuf = NULL; filter->nBuf = 0; filter->decim_index = 0; } /*---------------------------------------------------------------------------*\ FUNCTIONS...: quisk_filt_destroy AUTHOR......: Jim Ahlstrom DATE CREATED: 27 August 2015 MODIFIED: 4 June 2018 Destroy the FIR filter and free all resources. \*---------------------------------------------------------------------------*/ void quisk_filt_destroy(struct quisk_cfFilter * filter) { if (filter->cSamples) { FREE(filter->cSamples); filter->cSamples = NULL; } if (filter->cBuf) { FREE(filter->cBuf); filter->cBuf = NULL; } if (filter->cpxCoefs) { FREE(filter->cpxCoefs); filter->cpxCoefs = NULL; } } /*---------------------------------------------------------------------------*\ FUNCTIONS...: quisk_cfInterpDecim AUTHOR......: Jim Ahlstrom DATE CREATED: 27 August 2015 MODIFIED: 4 June 2018 Take an array of samples cSamples of length count, multiply the sample rate by interp, and then divide the sample rate by decim. Return the new number of samples. Each specific interp and decim will require its own custom low pass FIR filter with real coefficients. \*---------------------------------------------------------------------------*/ int quisk_cfInterpDecim(complex float * cSamples, int count, struct quisk_cfFilter * filter, int interp, int decim) { // Interpolate by interp, and then decimate by decim. // This uses the float coefficients of filter (not the complex). Samples are complex. int i, k, nOut; float * ptCoef; complex float * ptSample; complex float csample; if (count > filter->nBuf) { // increase size of sample buffer filter->nBuf = count * 2; if (filter->cBuf) FREE(filter->cBuf); filter->cBuf = (complex float *)MALLOC(filter->nBuf * sizeof(complex float)); } memcpy(filter->cBuf, cSamples, count * sizeof(complex float)); nOut = 0; for (i = 0; i < count; i++) { // Put samples into buffer left to right. Use samples right to left. *filter->ptcSamp = filter->cBuf[i]; while (filter->decim_index < interp) { ptSample = filter->ptcSamp; ptCoef = filter->dCoefs + filter->decim_index; csample = 0; for (k = 0; k < filter->nTaps / interp; k++, ptCoef += interp) { csample += *ptSample * *ptCoef; if (--ptSample < filter->cSamples) ptSample = filter->cSamples + filter->nTaps - 1; } cSamples[nOut] = csample * interp; nOut++; filter->decim_index += decim; } if (++filter->ptcSamp >= filter->cSamples + filter->nTaps) filter->ptcSamp = filter->cSamples; filter->decim_index = filter->decim_index - interp; } return nOut; } /*---------------------------------------------------------------------------*\ FUNCTIONS...: quisk_ccfInterpDecim AUTHOR......: Jim Ahlstrom DATE CREATED: 7 June 2018 Take an array of samples cSamples of length count, multiply the sample rate by interp, and then divide the sample rate by decim. Return the new number of samples. Each specific interp and decim will require its own custom low pass FIR filter with complex coefficients. This filter can be tuned. This filter is not currently used. \*---------------------------------------------------------------------------*/ #if 0 int quisk_ccfInterpDecim(complex float * cSamples, int count, struct quisk_cfFilter * filter, int interp, int decim) { // Interpolate by interp, and then decimate by decim. // This uses the complex coefficients of filter (not the real). Samples are complex. int i, k, nOut; complex float * ptCoef; complex float * ptSample; complex float csample; if (count > filter->nBuf) { // increase size of sample buffer filter->nBuf = count * 2; if (filter->cBuf) FREE(filter->cBuf); filter->cBuf = (complex float *)MALLOC(filter->nBuf * sizeof(complex float)); } memcpy(filter->cBuf, cSamples, count * sizeof(complex float)); nOut = 0; for (i = 0; i < count; i++) { // Put samples into buffer left to right. Use samples right to left. *filter->ptcSamp = filter->cBuf[i]; while (filter->decim_index < interp) { ptSample = filter->ptcSamp; ptCoef = filter->cpxCoefs + filter->decim_index; csample = 0; for (k = 0; k < filter->nTaps / interp; k++, ptCoef += interp) { csample += *ptSample * *ptCoef; if (--ptSample < filter->cSamples) ptSample = filter->cSamples + filter->nTaps - 1; } cSamples[nOut] = csample * interp; nOut++; filter->decim_index += decim; } if (++filter->ptcSamp >= filter->cSamples + filter->nTaps) filter->ptcSamp = filter->cSamples; filter->decim_index = filter->decim_index - interp; } return nOut; } #endif /*---------------------------------------------------------------------------*\ FUNCTIONS...: quisk_cfTune AUTHOR......: Jim Ahlstrom DATE CREATED: 4 June 2018 Tune a low pass filter with float coefficients into an analytic I/Q bandpass filter with complex coefficients. The "freq" is the center frequency / sample rate. If the float coefs represent a low pass filter with bandwidth 1 kHz, the new bandpass filter has width 2 kHz. The filter can be re-tuned repeatedly. \*---------------------------------------------------------------------------*/ void quisk_cfTune(struct quisk_cfFilter * filter, float freq) { float D, tune; int i; if ( ! filter->cpxCoefs) filter->cpxCoefs = (complex float *)MALLOC(filter->nTaps * sizeof(complex float)); tune = 2.0 * M_PI * freq; D = (filter->nTaps - 1.0) / 2.0; for (i = 0; i < filter->nTaps; i++) { float tval = tune * (i - D); filter->cpxCoefs[i] = cmplx(tval) * filter->dCoefs[i]; } } /*---------------------------------------------------------------------------*\ FUNCTIONS...: quisk_ccfFilter AUTHOR......: Jim Ahlstrom DATE CREATED: 4 June 2018 Filter complex samples using complex coefficients. The inSamples and outSamples may be the same array. The loop runs forward over coefficients but backwards over samples. Therefore, the coefficients must be reversed unless they are created by quisk_cfTune. Low pass filter coefficients are symmetrical, so this does not usually matter. \*---------------------------------------------------------------------------*/ void quisk_ccfFilter(complex float * inSamples, complex float * outSamples, int count, struct quisk_cfFilter * filter) { int i, k; complex float * ptSample; complex float * ptCoef; complex float accum; for (i = 0; i < count; i++) { *filter->ptcSamp = inSamples[i]; accum = 0; ptSample = filter->ptcSamp; ptCoef = filter->cpxCoefs; for (k = 0; k < filter->nTaps; k++, ptCoef++) { accum += *ptSample * *ptCoef; if (--ptSample < filter->cSamples) ptSample = filter->cSamples + filter->nTaps - 1; } outSamples[i] = accum; if (++filter->ptcSamp >= filter->cSamples + filter->nTaps) filter->ptcSamp = filter->cSamples; } } codec2-1.0.1/src/filter.h000066400000000000000000000035041412132000500150630ustar00rootroot00000000000000/* Copyright (C) 2018 James C. Ahlstrom All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 2.1, as published by the Free Software Foundation. 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 Lesser General Public License along with this program; if not, see . */ #ifndef __FILTER__ #define __FILTER__ #include struct quisk_cfFilter { // Structure to hold the static data for FIR filters float * dCoefs; // real filter coefficients complex float * cpxCoefs; // complex filter coefficients int nBuf; // dimension of cBuf int nTaps; // dimension of dSamples, cSamples, dCoefs int decim_index; // index of next sample for decimation complex float * cSamples; // storage for old samples complex float * ptcSamp; // next available position in cSamples complex float * cBuf; // auxillary buffer for interpolation } ; extern int quisk_cfInterpDecim(complex float *, int, struct quisk_cfFilter *, int, int); extern void quisk_filt_cfInit(struct quisk_cfFilter *, float *, int); extern void quisk_filt_destroy(struct quisk_cfFilter *); extern void quisk_cfTune(struct quisk_cfFilter *, float); extern void quisk_ccfFilter(complex float *, complex float *, int, struct quisk_cfFilter *); extern float quiskFilt120t480[480]; extern float filtP550S750[160]; extern float filtP900S1100[100]; extern float filtP650S900[100]; extern float filtP400S600[100]; #endif codec2-1.0.1/src/filter_coef.h000066400000000000000000000560331412132000500160640ustar00rootroot00000000000000/* Copyright (C) 2018 James C. Ahlstrom All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 2.1, as published by the Free Software Foundation. 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 Lesser General Public License along with this program; if not, see . */ /* These are the coefficients for various FIR filters. A declaration of these filter coefficients is in filter.h. Multiple filters can use these coefficients because they are read-only. Although a sample rate is specified, the filters may be used at other sample rates. For example, if filtP750S1040 is used at 48000 sps, the pass and stop frequencies are 4500 and 6240 hz. */ // Low pass filter, sample rate 8000 hz, 0.2 dB ripple, 100 dB atten, pass 550 hz, stop 750 hz. // Used to build 700D BPF float filtP550S750[160]={ 0.000001500540125945, 0.000020553368071006, 0.000052842049763802, 0.000112071233638701, 0.000202565299657164, 0.000325476960438197, 0.000474396686568771, 0.000633746562372497, 0.000778858561033731, 0.000878592697224500, 0.000900611877226272, 0.000818750000130019, 0.000621157718914443, 0.000317269738067462, -0.000058614729046822, -0.000448959090901751, -0.000780751290682747, -0.000978953969922609, -0.000983534965413392, -0.000766540799920385, -0.000344938705664714, 0.000214927788687815, 0.000804118320944653, 0.001289527679116282, 0.001541598437149897, 0.001466078039230554, 0.001032493743140772, 0.000291727467744814, -0.000623607913580581, -0.001518948630011706, -0.002175907515711935, -0.002402252989524116, -0.002082876981631170, -0.001219318501019004, 0.000053915753894017, 0.001483599323867600, 0.002743518309691092, 0.003504691193108974, 0.003515993126242027, 0.002676486805582815, 0.001080325423865147, -0.000980649349095093, -0.003062866925046052, -0.004660487490214220, -0.005321805637618908, -0.004767235761853469, -0.002979877569160189, -0.000242864453416682, 0.002892365745006815, 0.005707645107750651, 0.007473145256589892, 0.007624527169837005, 0.005921569713871673, 0.002547381438730890, -0.001883079571618079, -0.006418195698900790, -0.009958090016198632, -0.011502199858687428, -0.010403943660694560, -0.006572745274759415, -0.000569370325758693, 0.006440667006225166, 0.012881777376768124, 0.017083918451421990, 0.017661533458054445, 0.013877952730549446, 0.005912685575826365, -0.005037640104142052, -0.016864250576905999, -0.026855876467499887, -0.032168177048912679, -0.030370760878632559, -0.019967289813872333, -0.000782327027950076, 0.025871098651626040, 0.057290144048617792, 0.089743290905422241, 0.119038289777397190, 0.141198609990722840, 0.153125933205703250, 0.153125933205703250, 0.141198609990722840, 0.119038289777397190, 0.089743290905422241, 0.057290144048617792, 0.025871098651626040, -0.000782327027950076, -0.019967289813872333, -0.030370760878632559, -0.032168177048912679, -0.026855876467499887, -0.016864250576905999, -0.005037640104142052, 0.005912685575826365, 0.013877952730549446, 0.017661533458054445, 0.017083918451421990, 0.012881777376768124, 0.006440667006225166, -0.000569370325758693, -0.006572745274759415, -0.010403943660694560, -0.011502199858687428, -0.009958090016198632, -0.006418195698900790, -0.001883079571618079, 0.002547381438730890, 0.005921569713871673, 0.007624527169837005, 0.007473145256589892, 0.005707645107750651, 0.002892365745006815, -0.000242864453416682, -0.002979877569160189, -0.004767235761853469, -0.005321805637618908, -0.004660487490214220, -0.003062866925046052, -0.000980649349095093, 0.001080325423865147, 0.002676486805582815, 0.003515993126242027, 0.003504691193108974, 0.002743518309691092, 0.001483599323867600, 0.000053915753894017, -0.001219318501019004, -0.002082876981631170, -0.002402252989524116, -0.002175907515711935, -0.001518948630011706, -0.000623607913580581, 0.000291727467744814, 0.001032493743140772, 0.001466078039230554, 0.001541598437149897, 0.001289527679116282, 0.000804118320944653, 0.000214927788687815, -0.000344938705664714, -0.000766540799920385, -0.000983534965413392, -0.000978953969922609, -0.000780751290682747, -0.000448959090901751, -0.000058614729046822, 0.000317269738067462, 0.000621157718914443, 0.000818750000130019, 0.000900611877226272, 0.000878592697224500, 0.000778858561033731, 0.000633746562372497, 0.000474396686568771, 0.000325476960438197, 0.000202565299657164, 0.000112071233638701, 0.000052842049763802, 0.000020553368071006, 0.000001500540125945 }; /* Low pass filter, sample rate 8000 Hz, 60dB dB atten, pass 400 Hz, stop 600 Hz Used for datac0/datac1 Generated using Octave: octave:170> h = fir1(99, 1000/8000); octave:171> save_array_c_header(h,"filtP400S600","t.h") */ float filtP400S600[100]={ 0.0002190442859529, 0.0000253865765807, -0.0001891607957119, -0.0004060215259363, -0.0006000085594001, -0.0007388342366621, -0.0007857143550906, -0.0007055101203620, -0.0004737796456378, -0.0000870157214033, 0.0004284822493668, 0.0010119603553043, 0.0015702670713406, 0.0019880170510650, 0.0021456291121880, 0.0019431076070540, 0.0013256670818267, 0.0003060762051584, -0.0010217279135397, -0.0024824214174461, -0.0038352454444032, -0.0048061266813482, -0.0051327431531073, -0.0046162222656579, -0.0031708262919099, -0.0008619578234589, 0.0020765315052916, 0.0052523330844492, 0.0081546351293169, 0.0102217640867241, 0.0109290873716773, 0.0098852729183138, 0.0069220529480671, 0.0021618869962732, -0.0039502956265373, -0.0106608379232220, -0.0169699130332444, -0.0217388847493965, -0.0238311162893102, -0.0222687242579450, -0.0163838891184744, -0.0059424763426467, 0.0087797880290842, 0.0269827101964810, 0.0473946488239843, 0.0683898571372469, 0.0881575538806286, 0.1049023332507096, 0.1170504418131305, 0.1234349185246360, 0.1234349185246360, 0.1170504418131306, 0.1049023332507097, 0.0881575538806286, 0.0683898571372469, 0.0473946488239843, 0.0269827101964810, 0.0087797880290842, -0.0059424763426467, -0.0163838891184744, -0.0222687242579450, -0.0238311162893102, -0.0217388847493965, -0.0169699130332444, -0.0106608379232220, -0.0039502956265373, 0.0021618869962732, 0.0069220529480671, 0.0098852729183138, 0.0109290873716773, 0.0102217640867241, 0.0081546351293169, 0.0052523330844492, 0.0020765315052916, -0.0008619578234589, -0.0031708262919099, -0.0046162222656579, -0.0051327431531073, -0.0048061266813482, -0.0038352454444032, -0.0024824214174461, -0.0010217279135397, 0.0003060762051584, 0.0013256670818267, 0.0019431076070540, 0.0021456291121880, 0.0019880170510650, 0.0015702670713406, 0.0010119603553043, 0.0004284822493668, -0.0000870157214033, -0.0004737796456378, -0.0007055101203620, -0.0007857143550906, -0.0007388342366621, -0.0006000085594001, -0.0004060215259363, -0.0001891607957119, 0.0000253865765807, 0.0002190442859529 }; /* Low pass filter, sample rate 8000 Hz, 60dB dB atten, pass 650 Hz, stop 900 Hz Alternate filter for use with 700D and clipper. A litte extra bandwidth helps reduce PAPR. Generated using Octave: octave:170> h = fir1(100, 1500/8000); octave:171> save_array_c_header(h,"filtP650S900","t.h") */ float filtP650S900[100]={ -0.0003447438107989, -0.0000773443016821, 0.0002396774493908, 0.0005183973970710, 0.0006638187313266, 0.0005975981831705, 0.0002897687607439, -0.0002119524114060, -0.0007715254253800, -0.0011873172727259, -0.0012521109061848, -0.0008371281604995, 0.0000296985029260, 0.0011281958214742, 0.0020819312900066, 0.0024705948613571, 0.0019912318935963, 0.0006124281900638, -0.0013451726955418, -0.0032531555468084, -0.0043549616066416, -0.0040377485154437, -0.0021065223027673, 0.0010488136629895, 0.0044817586852605, 0.0069407381267179, 0.0072892156498907, 0.0049639277235708, 0.0003023755700798, -0.0054092967401810, -0.0102368927453788, -0.0121970459192933, -0.0099848952803716, -0.0035856433622624, 0.0054724953549814, 0.0143763043146873, 0.0197915861224756, 0.0189508548007168, 0.0107444584473630, -0.0035511748160051, -0.0202026606441822, -0.0337226677294633, -0.0382279329229346, -0.0291127865967771, -0.0045659298430227, 0.0335371151119154, 0.0796831473314644, 0.1257715935323888, 0.1629350232213685, 0.1836638608187552, 0.1836638608187552, 0.1629350232213685, 0.1257715935323888, 0.0796831473314644, 0.0335371151119154, -0.0045659298430227, -0.0291127865967771, -0.0382279329229346, -0.0337226677294633, -0.0202026606441822, -0.0035511748160051, 0.0107444584473630, 0.0189508548007168, 0.0197915861224756, 0.0143763043146873, 0.0054724953549814, -0.0035856433622624, -0.0099848952803716, -0.0121970459192933, -0.0102368927453788, -0.0054092967401810, 0.0003023755700798, 0.0049639277235708, 0.0072892156498907, 0.0069407381267179, 0.0044817586852605, 0.0010488136629895, -0.0021065223027673, -0.0040377485154437, -0.0043549616066416, -0.0032531555468084, -0.0013451726955418, 0.0006124281900638, 0.0019912318935963, 0.0024705948613571, 0.0020819312900066, 0.0011281958214742, 0.0000296985029260, -0.0008371281604995, -0.0012521109061848, -0.0011873172727259, -0.0007715254253800, -0.0002119524114060, 0.0002897687607439, 0.0005975981831705, 0.0006638187313266, 0.0005183973970710, 0.0002396774493908, -0.0000773443016821, -0.0003447438107989 }; /* Low pass filter, sample rate 8000 Hz, 60dB dB atten, pass 900 Hz, stop 1100 Hz Initially used to build 700E BPF. Generated using Octave: octave:170> h = fir1(100, 2000/8000); octave:171> save_array_c_header(h,"filtP900S1100","t.h") */ float filtP900S1100[]={ 0.0004418158615696, 0.0001287637146300, -0.0002887027062308, -0.0005878482226797, -0.0005730851022636, -0.0001872428398401, 0.0004164064769556, 0.0009044243294414, 0.0009214286447099, 0.0003198823196113, -0.0006735180958441, -0.0014968764631324, -0.0015397255009494, -0.0005518542214485, 0.0010799820573451, 0.0024224384337026, 0.0024915418423841, 0.0009146857642078, -0.0016601832557821, -0.0037544126485350, -0.0038606363852215, -0.0014507340945908, 0.0024489243815523, 0.0055987186471211, 0.0057705307663451, 0.0022226683344412, -0.0035036863386865, -0.0081289422623303, -0.0084269758191975, -0.0033347717101330, 0.0049319056855186, 0.0116673991980949, 0.0122195177108518, 0.0049860194363942, -0.0069600525064408, -0.0169004061958973, -0.0180041048574631, -0.0076258897964686, 0.0101458756070637, 0.0255847362406635, 0.0280993703146360, 0.0125508957876736, -0.0162678073198399, -0.0438597596479416, -0.0516282045539403, -0.0256831488498926, 0.0353080736910379, 0.1173458947603512, 0.1953111386765199, 0.2427155307119274, 0.2427155307119275, 0.1953111386765199, 0.1173458947603512, 0.0353080736910379, -0.0256831488498926, -0.0516282045539403, -0.0438597596479416, -0.0162678073198399, 0.0125508957876736, 0.0280993703146360, 0.0255847362406635, 0.0101458756070637, -0.0076258897964686, -0.0180041048574631, -0.0169004061958973, -0.0069600525064408, 0.0049860194363942, 0.0122195177108518, 0.0116673991980949, 0.0049319056855186, -0.0033347717101330, -0.0084269758191975, -0.0081289422623303, -0.0035036863386865, 0.0022226683344412, 0.0057705307663451, 0.0055987186471211, 0.0024489243815523, -0.0014507340945908, -0.0038606363852214, -0.0037544126485350, -0.0016601832557821, 0.0009146857642078, 0.0024915418423841, 0.0024224384337026, 0.0010799820573451, -0.0005518542214485, -0.0015397255009494, -0.0014968764631324, -0.0006735180958441, 0.0003198823196113, 0.0009214286447099, 0.0009044243294414, 0.0004164064769556, -0.0001872428398401, -0.0005730851022636, -0.0005878482226797, -0.0002887027062308, 0.0001287637146300, 0.0004418158615696 }; // FIR filter suitable for changing rates 7500 to/from 8000 // Sample 120000 Hz, pass 2700, stop 3730, ripple 0.1dB, atten 100 dB. Stop 0.03108. float quiskFilt120t480[480] = { -0.000005050567303837, -0.000000267011791999, 0.000000197734700398, 0.000001038946634000, 0.000002322193058869, 0.000004115682735322, 0.000006499942123311, 0.000009551098482930, 0.000013350669444763, 0.000017966192635412, 0.000023463361155584, 0.000029885221425020, 0.000037271082107518, 0.000045630720487935, 0.000054970017069384, 0.000065233162392019, 0.000076360900545177, 0.000088271373315159, 0.000100818605854714, 0.000113853476544409, 0.000127174196746337, 0.000140558396336177, 0.000153744508371709, 0.000166450784469067, 0.000178368313347299, 0.000189176709991702, 0.000198541881389953, 0.000206128795372885, 0.000211604878787747, 0.000214655997661182, 0.000214994859281552, 0.000212358734245594, 0.000206539880117977, 0.000197379393194548, 0.000184780318878738, 0.000168719942655099, 0.000149250512353807, 0.000126511346757621, 0.000100726393185629, 0.000072210925236429, 0.000041365841965015, 0.000008680571408025, -0.000025277165852799, -0.000059865389594949, -0.000094384355854646, -0.000128080670195777, -0.000160170174848483, -0.000189854272533545, -0.000216333899003825, -0.000238836419299503, -0.000256632149501508, -0.000269058714331757, -0.000275541485292432, -0.000275614059005332, -0.000268937472718753, -0.000255317038867589, -0.000234717772155001, -0.000207273956099563, -0.000173297342436372, -0.000133280012107173, -0.000087895370243821, -0.000037986085678081, 0.000015440388211825, 0.000071232572821451, 0.000128114399130489, 0.000184710477990398, 0.000239577162514028, 0.000291234779803098, 0.000338204791740229, 0.000379047713684221, 0.000412403761615261, 0.000437031818051652, 0.000451848709179591, 0.000455966225408344, 0.000448726371643413, 0.000429729020814434, 0.000398857326863837, 0.000356297600912998, 0.000302547334727027, 0.000238422248479072, 0.000165048886226905, 0.000083853091464077, -0.000003462782744354, -0.000094949813106744, -0.000188451833293202, -0.000281651282503015, -0.000372121907291206, -0.000457387566635848, -0.000534985542936898, -0.000602532044011899, -0.000657788245032425, -0.000698728981427767, -0.000723604675185869, -0.000731002305621048, -0.000719899536922384, -0.000689709694056092, -0.000640319946685634, -0.000572115873292030, -0.000485996080304965, -0.000383371840261246, -0.000266155252511831, -0.000136731311264191, 0.000002082667095075, 0.000147092077716480, 0.000294790953130229, 0.000441441918072383, 0.000583164190168290, 0.000716029226064227, 0.000836164238172957, 0.000939856052624227, 0.001023657909064450, 0.001084492755093968, 0.001119751426837743, 0.001127383039339373, 0.001105974243787613, 0.001054815583369999, 0.000973950761085690, 0.000864209315714227, 0.000727219011746881, 0.000565398080608305, 0.000381924396468366, 0.000180685902835315, -0.000033793183292569, -0.000256444114966522, -0.000481764526566339, -0.000703946352348464, -0.000917016099829735, -0.001114986581270253, -0.001292014799874503, -0.001442563411804926, -0.001561559957317790, -0.001644551048567398, -0.001687846581475964, -0.001688649703502788, -0.001645167889846890, -0.001556702802350076, -0.001423714708648073, -0.001247857669697092, -0.001031986722557201, -0.000780131048444402, -0.000497436825078657, -0.000190077210351809, 0.000134868279325909, 0.000469563533327739, 0.000805591531546815, 0.001134152328775355, 0.001446279849797673, 0.001733071409562941, 0.001985924997799762, 0.002196778054604388, 0.002358342626407065, 0.002464328098407475, 0.002509648218888532, 0.002490604086803692, 0.002405037734357425, 0.002252452724297770, 0.002034094661603120, 0.001752990365583534, 0.001413941154886139, 0.001023470495638453, 0.000589723521647734, 0.000122320866350319, -0.000367832138027160, -0.000868777013398284, -0.001367771151677059, -0.001851587344265625, -0.002306838088978190, -0.002720317947026380, -0.003079353614002113, -0.003372155891804708, -0.003588162376578369, -0.003718362558663737, -0.003755596511143005, -0.003694818131674599, -0.003533315298404129, -0.003270878754553819, -0.002909914962857412, -0.002455496391464944, -0.001915346645364514, -0.001299757227227888, -0.000621437066532776, 0.000104706515738248, 0.000861849931067767, 0.001631595707499856, 0.002394368911341672, 0.003129858565588139, 0.003817496679992245, 0.004436963307209760, 0.004968707287606522, 0.005394469536085115, 0.005697797543539088, 0.005864537618023589, 0.005883292537600076, 0.005745832319314692, 0.005447447099071761, 0.004987231255534477, 0.004368289529377007, 0.003597859022418248, 0.002687338851256991, 0.001652226293162047, 0.000511956075882180, -0.000710356149138656, -0.001988263330091648, -0.003292424566049982, -0.004591123342747130, -0.005850857852106148, -0.007036991266043732, -0.008114450164977267, -0.009048456200082230, -0.009805276478965942, -0.010352975302354198, -0.010662152577592631, -0.010706650669328861, -0.010464214075017983, -0.009917087295446811, -0.009052534679222271, -0.007863270920348924, -0.006347789704693751, -0.004510582323649121, -0.002362238055733795, 0.000080576968834213, 0.002795265196543707, 0.005753566158586979, 0.008921944932552510, 0.012262093950265378, 0.015731539846483594, 0.019284344624007944, 0.022871886384520687, 0.026443706729191677, 0.029948406200633094, 0.033334570666910354, 0.036551709955124537, 0.039551189200810140, 0.042287133974308874, 0.044717290029466283, 0.046803820535016104, 0.048514022996355009, 0.049820951883635139, 0.050703932928426454, 0.051148959210315710, 0.051148959210315710, 0.050703932928426454, 0.049820951883635139, 0.048514022996355009, 0.046803820535016104, 0.044717290029466283, 0.042287133974308874, 0.039551189200810140, 0.036551709955124537, 0.033334570666910354, 0.029948406200633094, 0.026443706729191677, 0.022871886384520687, 0.019284344624007944, 0.015731539846483594, 0.012262093950265378, 0.008921944932552510, 0.005753566158586979, 0.002795265196543707, 0.000080576968834213, -0.002362238055733795, -0.004510582323649121, -0.006347789704693751, -0.007863270920348924, -0.009052534679222271, -0.009917087295446811, -0.010464214075017983, -0.010706650669328861, -0.010662152577592631, -0.010352975302354198, -0.009805276478965942, -0.009048456200082230, -0.008114450164977267, -0.007036991266043732, -0.005850857852106148, -0.004591123342747130, -0.003292424566049982, -0.001988263330091648, -0.000710356149138656, 0.000511956075882180, 0.001652226293162047, 0.002687338851256991, 0.003597859022418248, 0.004368289529377007, 0.004987231255534477, 0.005447447099071761, 0.005745832319314692, 0.005883292537600076, 0.005864537618023589, 0.005697797543539088, 0.005394469536085115, 0.004968707287606522, 0.004436963307209760, 0.003817496679992245, 0.003129858565588139, 0.002394368911341672, 0.001631595707499856, 0.000861849931067767, 0.000104706515738248, -0.000621437066532776, -0.001299757227227888, -0.001915346645364514, -0.002455496391464944, -0.002909914962857412, -0.003270878754553819, -0.003533315298404129, -0.003694818131674599, -0.003755596511143005, -0.003718362558663737, -0.003588162376578369, -0.003372155891804708, -0.003079353614002113, -0.002720317947026380, -0.002306838088978190, -0.001851587344265625, -0.001367771151677059, -0.000868777013398284, -0.000367832138027160, 0.000122320866350319, 0.000589723521647734, 0.001023470495638453, 0.001413941154886139, 0.001752990365583534, 0.002034094661603120, 0.002252452724297770, 0.002405037734357425, 0.002490604086803692, 0.002509648218888532, 0.002464328098407475, 0.002358342626407065, 0.002196778054604388, 0.001985924997799762, 0.001733071409562941, 0.001446279849797673, 0.001134152328775355, 0.000805591531546815, 0.000469563533327739, 0.000134868279325909, -0.000190077210351809, -0.000497436825078657, -0.000780131048444402, -0.001031986722557201, -0.001247857669697092, -0.001423714708648073, -0.001556702802350076, -0.001645167889846890, -0.001688649703502788, -0.001687846581475964, -0.001644551048567398, -0.001561559957317790, -0.001442563411804926, -0.001292014799874503, -0.001114986581270253, -0.000917016099829735, -0.000703946352348464, -0.000481764526566339, -0.000256444114966522, -0.000033793183292569, 0.000180685902835315, 0.000381924396468366, 0.000565398080608305, 0.000727219011746881, 0.000864209315714227, 0.000973950761085690, 0.001054815583369999, 0.001105974243787613, 0.001127383039339373, 0.001119751426837743, 0.001084492755093968, 0.001023657909064450, 0.000939856052624227, 0.000836164238172957, 0.000716029226064227, 0.000583164190168290, 0.000441441918072383, 0.000294790953130229, 0.000147092077716480, 0.000002082667095075, -0.000136731311264191, -0.000266155252511831, -0.000383371840261246, -0.000485996080304965, -0.000572115873292030, -0.000640319946685634, -0.000689709694056092, -0.000719899536922384, -0.000731002305621048, -0.000723604675185869, -0.000698728981427767, -0.000657788245032425, -0.000602532044011899, -0.000534985542936898, -0.000457387566635848, -0.000372121907291206, -0.000281651282503015, -0.000188451833293202, -0.000094949813106744, -0.000003462782744354, 0.000083853091464077, 0.000165048886226905, 0.000238422248479072, 0.000302547334727027, 0.000356297600912998, 0.000398857326863837, 0.000429729020814434, 0.000448726371643413, 0.000455966225408344, 0.000451848709179591, 0.000437031818051652, 0.000412403761615261, 0.000379047713684221, 0.000338204791740229, 0.000291234779803098, 0.000239577162514028, 0.000184710477990398, 0.000128114399130489, 0.000071232572821451, 0.000015440388211825, -0.000037986085678081, -0.000087895370243821, -0.000133280012107173, -0.000173297342436372, -0.000207273956099563, -0.000234717772155001, -0.000255317038867589, -0.000268937472718753, -0.000275614059005332, -0.000275541485292432, -0.000269058714331757, -0.000256632149501508, -0.000238836419299503, -0.000216333899003825, -0.000189854272533545, -0.000160170174848483, -0.000128080670195777, -0.000094384355854646, -0.000059865389594949, -0.000025277165852799, 0.000008680571408025, 0.000041365841965015, 0.000072210925236429, 0.000100726393185629, 0.000126511346757621, 0.000149250512353807, 0.000168719942655099, 0.000184780318878738, 0.000197379393194548, 0.000206539880117977, 0.000212358734245594, 0.000214994859281552, 0.000214655997661182, 0.000211604878787747, 0.000206128795372885, 0.000198541881389953, 0.000189176709991702, 0.000178368313347299, 0.000166450784469067, 0.000153744508371709, 0.000140558396336177, 0.000127174196746337, 0.000113853476544409, 0.000100818605854714, 0.000088271373315159, 0.000076360900545177, 0.000065233162392019, 0.000054970017069384, 0.000045630720487935, 0.000037271082107518, 0.000029885221425020, 0.000023463361155584, 0.000017966192635412, 0.000013350669444763, 0.000009551098482930, 0.000006499942123311, 0.000004115682735322, 0.000002322193058869, 0.000001038946634000, 0.000000197734700398, -0.000000267011791999, -0.000005050567303837 }; codec2-1.0.1/src/fm.c000066400000000000000000000213601412132000500141730ustar00rootroot00000000000000/*---------------------------------------------------------------------------*\ FILE........: fm.c AUTHOR......: David Rowe DATE CREATED: February 2015 Functions that implement analog FM modulation and demodulation, see also octave/fm.m. \*---------------------------------------------------------------------------*/ /* Copyright (C) 2015 David Rowe All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 2.1, as published by the Free Software Foundation. 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 Lesser General Public License along with this program; if not, see . */ /*---------------------------------------------------------------------------*\ DEFINES \*---------------------------------------------------------------------------*/ #define FILT_MEM 200 /*---------------------------------------------------------------------------*\ INCLUDES \*---------------------------------------------------------------------------*/ #include #include #include #include #include #include "codec2_fm.h" #include "fm_fir_coeff.h" #include "comp_prim.h" /*---------------------------------------------------------------------------*\ FUNCTIONS \*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*\ FUNCTION....: fm_create AUTHOR......: David Rowe DATE CREATED: 24 Feb 2015 Create and initialise an instance of the "modem". Returns a pointer to the modem states or NULL on failure. One set of states is sufficient for a full duplex modem. \*---------------------------------------------------------------------------*/ struct FM *fm_create(int nsam) { struct FM *fm; fm = (struct FM*)malloc(sizeof(struct FM)); if (fm == NULL) return NULL; fm->rx_bb = (COMP*)malloc(sizeof(COMP)*(FILT_MEM+nsam)); assert(fm->rx_bb != NULL); fm->rx_bb_filt_prev.real = 0.0; fm->rx_bb_filt_prev.imag = 0.0; fm->lo_phase.real = 1.0; fm->lo_phase.imag = 0.0; fm->tx_phase = 0; fm->rx_dem_mem = (float*)malloc(sizeof(float)*(FILT_MEM+nsam)); assert(fm->rx_dem_mem != NULL); fm->nsam = nsam; return fm; } void fm_destroy(struct FM *fm_states) { free(fm_states->rx_bb); free(fm_states->rx_dem_mem); free(fm_states); } /*---------------------------------------------------------------------------*\ FUNCTION....: fm_demod AUTHOR......: David Rowe DATE CREATED: 24 Feb 2015 Demodulate a FM signal to baseband audio. \*---------------------------------------------------------------------------*/ void fm_demod(struct FM *fm_states, float rx_out[], float rx[]) { float Fs = fm_states->Fs; float fc = fm_states->fc; float wc = 2*M_PI*fc/Fs; float fd = fm_states->fd; float wd = 2*M_PI*fd/Fs; COMP *rx_bb = fm_states->rx_bb + FILT_MEM; COMP wc_rect, rx_bb_filt, rx_bb_diff; float rx_dem; /* float acc; */ float *rx_dem_mem = fm_states->rx_dem_mem + FILT_MEM; int nsam = fm_states->nsam; float mag; int i,k; wc_rect.real = cosf(wc); wc_rect.imag = -sinf(wc); for(i=0; ilo_phase = cmult(fm_states->lo_phase, wc_rect); rx_bb[i] = fcmult(rx[i], fm_states->lo_phase); /* input FIR filter */ rx_bb_filt.real = 0.0; rx_bb_filt.imag = 0.0; for(k=0; klo_phase.real, fm_states->lo_phase.imag); //printf("%f %f %f\n", rx[i], rx_bb[i].real, rx_bb[i].imag); //printf("%f %f\n", rx_bb_filt.real, rx_bb_filt.imag); /* Differentiate first, in rect domain, then find angle, this puts signal on the positive side of the real axis and helps atan2() behaive. */ rx_bb_diff = cmult(rx_bb_filt, cconj(fm_states->rx_bb_filt_prev)); fm_states->rx_bb_filt_prev = rx_bb_filt; rx_dem = atan2f(rx_bb_diff.imag, rx_bb_diff.real); /* limit maximum phase jumps, to remove static type noise at low SNRs */ if (rx_dem > wd) rx_dem = wd; if (rx_dem < -wd) rx_dem = -wd; rx_dem *= (1/wd); //printf("%f %f\n", rx_bb_diff.real, rx_bb_diff.imag); rx_dem_mem[i] = rx_dem; /* acc = 0; for(k=0; klo_phase); fm_states->lo_phase.real /= mag; fm_states->lo_phase.imag /= mag; } /*---------------------------------------------------------------------------*\ FUNCTION....: fm_mod AUTHOR......: Brady O'Brien DATE CREATED: Sept. 10 2015 Modulate an FM signal from a baseband modulating signal struct FM *fm - FM state structure. Can be reused from fm_demod. float tx_in[] - nsam baseband samples to be modulated float tx_out[] - nsam samples in which to place the modulated FM \*---------------------------------------------------------------------------*/ void fm_mod(struct FM *fm_states, float tx_in[], float tx_out[]) { float Fs = fm_states->Fs; //Sampling freq float fc = fm_states->fc; //Center freq float wc = 2*M_PI*fc/Fs; //Center freq in rads/samp float fd = fm_states->fd; //Max deviation in cycles/samp float wd = 2*M_PI*fd/Fs; //Max deviation in rads/samp int nsam = fm_states->nsam; //Samples per batch of modulation float tx_phase = fm_states->tx_phase; //Transmit phase in rads float w; //Temp variable for phase of VFO during loop int i; //Go through the samples, spin the oscillator, and generate some FM for(i=0; i 2*M_PI) tx_phase -= 2*M_PI; tx_out[i] = cosf(tx_phase); } //Save phase back into state struct fm_states->tx_phase = tx_phase; } /*---------------------------------------------------------------------------*\ FUNCTION....: fm_mod AUTHOR......: Brady O'Brien DATE CREATED: Sept. 10 2015 Modulate an FM signal from a baseband modulating signal. Output signal is in complex domain struct FM *fm - FM state structure. Can be reused from fm_demod. float tx_in[] - nsam baseband samples to be modulated COMP tx_out[] - nsam samples in which to place the modulated FM \*---------------------------------------------------------------------------*/ void fm_mod_comp(struct FM *fm_states, float tx_in[], COMP tx_out[]){ float Fs = fm_states->Fs; //Sampling freq float fc = fm_states->fc; //Center freq float wc = 2*M_PI*fc/Fs; //Center freq in rads/samp float fd = fm_states->fd; //Max deviation in cycles/samp float wd = 2*M_PI*fd/Fs; //Max deviation in rads/samp int nsam = fm_states->nsam; //Samples per batch of modulation float tx_phase = fm_states->tx_phase; //Transmit phase in rads float w; //Temp variable for phase of VFO during loop int i; //Go through the samples, spin the oscillator, and generate some FM for(i=0; i 2*M_PI) tx_phase -= 2*M_PI; tx_out[i].real = cosf(tx_phase); tx_out[i].imag = sinf(tx_phase); } //Save phase back into state struct fm_states->tx_phase = tx_phase; } codec2-1.0.1/src/fm_demod.c000066400000000000000000000055141412132000500153460ustar00rootroot00000000000000/*---------------------------------------------------------------------------*\ FILE........: fm_demod.c AUTHOR......: David Rowe DATE CREATED: Feb 24 2015 Given an input raw file (44.4 kHz, 16 bit shorts) with a FM signal centered 11.1 kHz, outputs a file of demodulated audio samples. \*---------------------------------------------------------------------------*/ /* Copyright (C) 2015 David Rowe All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 2.1, as published by the Free Software Foundation. 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 Lesser General Public License along with this program; if not, see . */ #include #include #include #include #include #include #include "codec2_fm.h" #include "octave.h" #define N 160 #define TEST_MOD_COMP int main(int argc, char *argv[]) { FILE *fin, *fout; struct FM *fm; short buf[N*2]; float rx[N]; #if defined(TEST_MODE) && !defined(TEST_MODE_COMP) float rx_out[N]; #endif COMP out_comp[N]; int i; if (argc < 2) { printf("usage: %s InputFMRawFile OutputSpeechRawFile\n", argv[0]); printf("e.g %s fm.raw fm_demodulated.raw\n", argv[0]); exit(1); } if (strcmp(argv[1], "-") == 0) fin = stdin; else if ( (fin = fopen(argv[1],"rb")) == NULL ) { fprintf(stderr, "Error opening input file: %s: %s.\n", argv[1], strerror(errno)); exit(1); } if (strcmp(argv[2], "-") == 0) fout = stdout; else if ( (fout = fopen(argv[2],"wb")) == NULL ) { fprintf(stderr, "Error opening output file: %s: %s.\n", argv[2], strerror(errno)); exit(1); } fm = fm_create(N); fm->Fs = 48000.0; fm->fm_max = 3000.0; fm->fd = 5000.0; fm->fc = 0; while(fread(buf, sizeof(short), N, fin) == N) { for(i=0; i. */ #include #include #include #include #include #include #include "fmfsk.h" #include "modem_probe.h" #include "comp_prim.h" #define STD_PROC_BITS 96 /* * Create a new fmfsk modem instance. * * int Fs - sample rate * int Rb - non-manchester bitrate * returns - new struct FMFSK on sucess, NULL on failure */ struct FMFSK * fmfsk_create(int Fs,int Rb){ assert( Fs % (Rb*2) == 0 ); /* Sample freq must be divisible by symbol rate */ int nbits = STD_PROC_BITS; /* Allocate the struct */ struct FMFSK *fmfsk = malloc(sizeof(struct FMFSK)); if(fmfsk==NULL) return NULL; /* Set up static parameters */ fmfsk->Rb = Rb; fmfsk->Rs = Rb*2; fmfsk->Fs = Fs; fmfsk->Ts = Fs/fmfsk->Rs; fmfsk->N = nbits*2*fmfsk->Ts; fmfsk->nmem = fmfsk->N+(fmfsk->Ts*4); fmfsk->nsym = nbits*2; fmfsk->nbit = nbits; /* Set up demod state */ fmfsk->lodd = 0; fmfsk->nin = fmfsk->N; fmfsk->snr_mean = 0; float *oldsamps = malloc(sizeof(float)*fmfsk->nmem); if(oldsamps == NULL){ free(fmfsk); return NULL; } for(int i=0; inmem; i++) oldsamps[i] = 0.0; fmfsk->oldsamps = oldsamps; fmfsk->stats = (struct MODEM_STATS*)malloc(sizeof(struct MODEM_STATS)); if (fmfsk->stats == NULL) { free(oldsamps); free(fmfsk); return NULL; } return fmfsk; } /* * Destroys an fmfsk modem and deallocates memory */ void fmfsk_destroy(struct FMFSK *fmfsk){ free(fmfsk->oldsamps); free(fmfsk); } /* * Returns the number of samples that must be fed to fmfsk_demod the next * cycle */ uint32_t fmfsk_nin(struct FMFSK *fmfsk){ return (uint32_t)fmfsk->nin; } void fmfsk_get_demod_stats(struct FMFSK *fmfsk,struct MODEM_STATS *stats){ /* copy from internal stats, note we can't overwrite stats completely as it has other states rqd by caller, also we want a consistent interface across modem types for the freedv_api. */ stats->clock_offset = fmfsk->stats->clock_offset; stats->snr_est = fmfsk->stats->snr_est; // TODO: make this SNR not Eb/No stats->rx_timing = fmfsk->stats->rx_timing; stats->foff = fmfsk->stats->foff; stats->neyesamp = fmfsk->stats->neyesamp; stats->neyetr = fmfsk->stats->neyetr; memcpy(stats->rx_eye, fmfsk->stats->rx_eye, sizeof(stats->rx_eye)); /* these fields not used for FSK so set to something sensible */ stats->sync = 0; stats->nr = fmfsk->stats->nr; stats->Nc = fmfsk->stats->Nc; } /* * Modulates nbit bits into N samples to be sent through an FM radio * * struct FSK *fsk - FSK config/state struct, set up by fsk_create * float mod_out[] - Buffer for N samples of modulated FMFSK * uint8_t tx_bits[] - Buffer containing Nbits unpacked bits */ void fmfsk_mod(struct FMFSK *fmfsk, float fmfsk_out[],uint8_t bits_in[]){ int i,j; int nbit = fmfsk->nbit; int Ts = fmfsk->Ts; for(i=0; iTs; int Fs = fmfsk->Fs; int Rs = fmfsk->Rs; int nin = fmfsk->nin; int N = fmfsk->N; int nsym = fmfsk->nsym; int nbit = fmfsk->nbit; int nmem = fmfsk->nmem; float *oldsamps = fmfsk->oldsamps; int nold = nmem-nin; COMP phi_ft,dphi_ft; /* Phase and delta-phase for fine timing estimator */ float t; COMP x; /* Magic fine timing angle */ float norm_rx_timing,old_norm_rx_timing,d_norm_rx_timing,appm; int rx_timing,sample_offset; int next_nin; float apeven,apodd; /* Approx. prob of even or odd stream being correct */ float currv,mdiff,lastv; int neyesamp; int neyeoffset; float eye_max; uint8_t mbit; float var_signal = 0, var_noise = 0, lastFabsV; /* Shift in nin samples */ memmove(&oldsamps[0] , &oldsamps[nmem-nold], sizeof(float)*nold); memcpy (&oldsamps[nold], &fmfsk_in[0] , sizeof(float)*nin ); /* Allocate memory for filtering */ float *rx_filt = alloca(sizeof(float)*(nsym+1)*Ts); /* Integrate over Ts input symbols at every offset */ for(i=0; i<(nsym+1)*Ts; i++){ t=0; /* Integrate over some samples */ for(j=i;jnorm_rx_timing; fmfsk->norm_rx_timing = norm_rx_timing; /* Estimate sample clock offset */ d_norm_rx_timing = norm_rx_timing - old_norm_rx_timing; /* Filter out big jumps in due to nin change */ if(fabsf(d_norm_rx_timing) < .2){ appm = 1e6*d_norm_rx_timing/(float)nsym; fmfsk->ppm = .9*fmfsk->ppm + .1*appm; } /* Figure out how far offset the sample points are */ sample_offset = (Ts/2)+Ts+rx_timing-1; /* Request fewer or greater samples next time, if fine timing is far * enough off. This also makes it possible to tolerate clock offsets */ next_nin = N; if(norm_rx_timing > -.2) next_nin += Ts/2; if(norm_rx_timing < -.65) next_nin -= Ts/2; fmfsk->nin = next_nin; /* Make first diff of this round the last sample of the last round, * for the odd stream */ lastv = fmfsk->lodd; lastFabsV = fabs(lastv); apeven = 0; apodd = 0; for(i=0; i0 ? 1 : 0; lastv = currv; // Calculate the signal variance. Note that the mean is zero var_signal += currv * currv; /* Calculate the variance of the noise between samples (symbols). A quick variance estimate * without calculating mean can be done by differentiating (remove mean) and then * dividing by 2. Fabs the samples as we are looking at how close the samples are to each * other as if they were all the same polarity/symbol. */ currv = fabs(currv); var_noise += (currv - lastFabsV) * (currv - lastFabsV); lastFabsV = currv; mdiff = mdiff>0 ? mdiff : 0-mdiff; /* Put bit in it's stream */ if((i%2)==1){ apeven += mdiff; /* Even stream goes in LSB */ rx_bits[i>>1] |= mbit ? 0x1 : 0x0; }else{ apodd += mdiff; /* Odd in second-to-LSB */ rx_bits[i>>1] = mbit ? 0x2 : 0x0; } } /* Div by 2 to correct variance when doing via differentiation.*/ var_noise *= 0.5; if(apeven>apodd){ /* Zero out odd bits from output bitstream */ for(i=0;i>1; } /* Save last sample of int stream for next demod round */ fmfsk->lodd = lastv; /* Save demod statistics */ fmfsk->stats->Nc = 0; fmfsk->stats->nr = 0; /* Clock offset and RX timing are all we know here */ fmfsk->stats->clock_offset = fmfsk->ppm; fmfsk->stats->rx_timing = (float)rx_timing; /* Zero out all of the other things */ fmfsk->stats->foff = 0; /* Use moving average to smooth SNR */ var_signal += 1E-6/3.1; var_noise += 1E-6; /* prevent NAN and bias towards -5dB SNR for zero signal inputs */ if(fmfsk->snr_mean < 0.1) fmfsk->snr_mean = (10.0 * log10f(var_signal / var_noise)); else fmfsk->snr_mean = 0.9 * fmfsk->snr_mean + 0.1 * (10.0 * log10f(var_signal / var_noise)); fmfsk->stats->snr_est = fmfsk->snr_mean; /* Collect an eye diagram */ /* Take a sample for the eye diagrams */ neyesamp = fmfsk->stats->neyesamp = Ts*4; neyeoffset = sample_offset+(Ts*2*28); fmfsk->stats->neyetr = 8; for(k=0; kstats->neyetr; k++) for(j=0; jstats->rx_eye[k][j] = rx_filt[k*neyesamp+neyeoffset+j]; //fmfsk->stats->rx_eye[k][j] = fmfsk_in[k*neyesamp+neyeoffset+j]; eye_max = 0; /* Normalize eye to +/- 1 */ for(i=0; istats->neyetr; i++) for(j=0; jstats->rx_eye[i][j])>eye_max) eye_max = fabsf(fmfsk->stats->rx_eye[i][j]); for(i=0; istats->neyetr; i++) for(j=0; jstats->rx_eye[i][j] = (fmfsk->stats->rx_eye[i][j]/(2*eye_max))+.5; modem_probe_samp_f("t_norm_rx_timing",&norm_rx_timing,1); modem_probe_samp_f("t_rx_filt",rx_filt,(nsym+1)*Ts); } codec2-1.0.1/src/fmfsk.h000066400000000000000000000070161412132000500147060ustar00rootroot00000000000000/*---------------------------------------------------------------------------*\ FILE........: fmfsk.h AUTHOR......: Brady O'Brien DATE CREATED: 6 February 2016 C Implementation of 2FSK+Manchester over FM modulator/demodulator, based on mancyfsk.m and fmfsk.m \*---------------------------------------------------------------------------*/ /* Copyright (C) 2016 David Rowe All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 2.1, as published by the Free Software Foundation. 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 Lesser General Public License along with this program; if not, see . */ #ifndef __C2FMFSK_H #define __C2FMFSK_H #include #include "comp.h" #include "modem_stats.h" #define FMFSK_SCALE 16383 /* * fm-me-2fsk state */ struct FMFSK{ /* Static fmfsk parameters */ int Rb; /* Manchester-encoded bitrate */ int Rs; /* Raw modem symbol rate */ int Fs; /* Sample rate */ int Ts; /* Samples-per-symbol */ int N; /* Sample processing buffer size */ int nsym; /* Number of raw modem symbols processed per demod call */ int nbit; /* Number of bits spit out per demod call */ int nmem; /* Number of samples kept around between demod calls */ /* State kept by demod */ int nin; /* Number of samples to be demod-ed the next cycle */ int lodd; /* Last integrated sample for odd bitstream generation */ float * oldsamps; /* Memory of old samples to make clock-offset-tolerance possible */ /* Stats generated by demod */ float norm_rx_timing; /* RX Timing, used to calculate clock offset */ int ppm; /* Clock offset in parts-per-million */ float snr_mean; /* Modem stat structure */ struct MODEM_STATS * stats; }; /* * Create a new fmfsk modem instance. * * int Fs - sample rate * int Rb - non-manchester bitrate * returns - new struct FMFSK on sucess, NULL on failure */ struct FMFSK * fmfsk_create(int Fs,int Rb); /* * Destroys an fmfsk modem and deallocates memory */ void fmfsk_destroy(struct FMFSK *fmfsk); /* * Deposit demod statistics into a MODEM_STATS struct */ void fmfsk_get_demod_stats(struct FMFSK *fmfsk,struct MODEM_STATS *stats); /* * Returns the number of samples that must be fed to fmfsk_demod the next * cycle */ uint32_t fmfsk_nin(struct FMFSK *fmfsk); /* * Modulates nbit bits into N samples to be sent through an FM radio * * struct FSK *fsk - FSK config/state struct, set up by fsk_create * float mod_out[] - Buffer for N samples of modulated FMFSK * uint8_t tx_bits[] - Buffer containing Nbits unpacked bits */ void fmfsk_mod(struct FMFSK *fmfsk, float fmfsk_out[],uint8_t bits_in[]); /* * Demodulate some number of FMFSK samples. The number of samples to be * demodulated can be found by calling fmfsk_nin(). * * struct FMFSK *fsk - FMFSK config/state struct, set up by fsk_create * uint8_t rx_bits[] - Buffer for nbit unpacked bits to be written * float fsk_in[] - nin samples of modualted FMFSK from an FM radio */ void fmfsk_demod(struct FMFSK *fmfsk, uint8_t rx_bits[],float fmfsk_in[]); #endif codec2-1.0.1/src/fmfsk_demod.c000066400000000000000000000074241412132000500160540ustar00rootroot00000000000000/*---------------------------------------------------------------------------*\ FILE........: fsk_demod.c AUTHOR......: Brady O'Brien DATE CREATED: 8 January 2016 C test driver for fsk_demod in fsk.c. Reads in a stream of 32 bit cpu endian floats and writes out the detected bits \*---------------------------------------------------------------------------*/ /* Copyright (C) 2016 David Rowe All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 2.1, as published by the Free Software Foundation. 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 Lesser General Public License along with this program; if not, see . */ #include #include #include "fmfsk.h" #include "modem_stats.h" #define MODEMPROBE_ENABLE #include "modem_probe.h" #include "codec2_fdmdv.h" int main(int argc,char *argv[]){ struct FMFSK *fmfsk; int Fs,Rb; struct MODEM_STATS stats; float loop_time; int enable_stats = 0; int stats_ctr = 0; int stats_loop = 0; FILE *fin,*fout; uint8_t *bitbuf; int16_t *rawbuf; float *modbuf; int i,j,t; if(argc<4){ fprintf(stderr,"usage: %s SampleFreq BitRate InputModemRawFile OutputOneBitPerCharFile [S]\n",argv[0]); exit(1); } /* Extract parameters */ Fs = atoi(argv[1]); Rb = atoi(argv[2]); /* Open files */ if(strcmp(argv[3],"-")==0){ fin = stdin; }else{ fin = fopen(argv[3],"r"); } if(strcmp(argv[4],"-")==0){ fout = stdout; }else{ fout = fopen(argv[4],"w"); } /* set up FSK */ fmfsk = fmfsk_create(Fs,Rb); if(argc>5){ if(strcmp(argv[5],"S")==0){ enable_stats = 1; loop_time = ((float)fmfsk_nin(fmfsk))/((float)Fs); stats_loop = (int)(.125/loop_time); stats_ctr = 0; } } if(fin==NULL || fout==NULL || fmfsk==NULL){ fprintf(stderr,"Couldn't open test vector files\n"); goto cleanup; } /* allocate buffers for processing */ bitbuf = (uint8_t*)alloca(sizeof(uint8_t)*fmfsk->nbit); rawbuf = (int16_t*)alloca(sizeof(int16_t)*(fmfsk->N+fmfsk->Ts*2)); modbuf = (float*)alloca(sizeof(float)*(fmfsk->N+fmfsk->Ts*2)); /* Demodulate! */ while( fread(rawbuf,sizeof(int16_t),fmfsk_nin(fmfsk),fin) == fmfsk_nin(fmfsk) ){ for(i=0;inbit;i++){ t = (int)bitbuf[i]; modem_probe_samp_i("t_d_bitout",&t,1); } fwrite(bitbuf,sizeof(uint8_t),fmfsk->nbit,fout); if(enable_stats && stats_ctr <= 0){ fmfsk_get_demod_stats(fmfsk,&stats); fprintf(stderr,"{\"EbNodB\": %2.2f,\t\"ppm\": %d,",stats.snr_est,(int)stats.clock_offset); fprintf(stderr,"\t\"f1_est\":%.1f,\t\"f2_est\":%.1f",0.0,0.0); fprintf(stderr,",\t\"eye_diagram\":["); for(i=0;i. */ #include #include #include #include "fmfsk.h" #include "codec2_fdmdv.h" int main(int argc,char *argv[]){ struct FMFSK *fmfsk; int Fs,Rb; int i; FILE *fin,*fout; uint8_t *bitbuf; int16_t *rawbuf; float *modbuf; if(argc<4){ fprintf(stderr,"usage: %s SampleFreq BitRate InputOneBitPerCharFile OutputModRawFile\n",argv[0]); exit(1); } /* Extract parameters */ Fs = atoi(argv[1]); Rb = atoi(argv[2]); if(strcmp(argv[3],"-")==0){ fin = stdin; }else{ fin = fopen(argv[3],"r"); } if(strcmp(argv[4],"-")==0){ fout = stdout; }else{ fout = fopen(argv[4],"w"); } /* set up FMFSK */ fmfsk = fmfsk_create(Fs,Rb); if(fin==NULL || fout==NULL || fmfsk==NULL){ fprintf(stderr,"Couldn't open test vector files\n"); goto cleanup; } /* allocate buffers for processing */ bitbuf = (uint8_t*)alloca(sizeof(uint8_t)*fmfsk->nbit); rawbuf = (int16_t*)alloca(sizeof(int16_t)*fmfsk->N); modbuf = (float*)alloca(sizeof(float)*fmfsk->N); /* Modulate! */ while( fread(bitbuf,sizeof(uint8_t),fmfsk->nbit,fin) == fmfsk->nbit ){ fmfsk_mod(fmfsk,modbuf,bitbuf); for(i=0; iN; i++){ rawbuf[i] = (int16_t)(modbuf[i]*(float)FDMDV_SCALE); } fwrite(rawbuf,sizeof(int16_t),fmfsk->N,fout); if(fout == stdin){ fflush(fout); } } cleanup: fclose(fin); fclose(fout); fmfsk_destroy(fmfsk); exit(0); } codec2-1.0.1/src/framer.c000066400000000000000000000052271412132000500150510ustar00rootroot00000000000000/*---------------------------------------------------------------------------*\ FILE........: framer.c AUTHOR......: David Rowe DATE CREATED: July 2020 Command line framer, inserts a Unique word into a sequence of oneBitPerchar bits. \*---------------------------------------------------------------------------*/ /* Copyright (C) 2020 David Rowe All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 2.1, as published by the Free Software Foundation. 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 Lesser General Public License along with this program; if not, see . */ #include #include #include #include "fsk.h" unsigned int toInt(char c) { if (c >= '0' && c <= '9') return c - '0'; if (c >= 'A' && c <= 'F') return 10 + c - 'A'; if (c >= 'a' && c <= 'f') return 10 + c - 'a'; return -1; } int main(int argc,char *argv[]){ FILE *fin, *fout; if (argc != 5) { fprintf(stderr,"usage: %s InputBitsOnePerByte OutputBitsOnePerByte frameSizeBits HexUW\n",argv[0]); exit(1); } if (strcmp(argv[1],"-") == 0) { fin = stdin; } else { if ((fin = fopen(argv[1],"rb")) == NULL) { fprintf(stderr,"Couldn't open input file: %s\n", argv[1]); exit(1); } } if (strcmp(argv[2],"-") == 0) { fout = stdout; } else { if ((fout = fopen(argv[2],"wb")) == NULL) { fprintf(stderr,"Couldn't open output file: %s\n", argv[2]); exit(1); } } /* extract UW array */ size_t framesize = atoi(argv[3]); char *uw_hex = argv[4]; uint8_t uw[4*strlen(uw_hex)]; int uwsize = 0; for(int c=0; c> (3-i)) & 0x1; /* MSB first */ assert(uwsize == 4*strlen(uw_hex)); fprintf(stderr, "uw_hex: %s uwsize: %d\n", uw_hex, uwsize); for(int i=0; i #include #include #include #include #include #include #include "codec2_fdmdv.h" #include "golay23.h" #include "codec2.h" #include "varicode.h" #include "freedv_api.h" #include "freedv_api_internal.h" #include "comp_prim.h" #include "debug_alloc.h" #include "fdmdv_internal.h" void freedv_1600_open(struct freedv *f) { f->snr_squelch_thresh = 2.0; f->squelch_en = 1; f->tx_sync_bit = 0; int Nc = 16; f->fdmdv = fdmdv_create(Nc); assert(f->fdmdv != NULL); golay23_init(); f->nin = f->nin_prev = FDMDV_NOM_SAMPLES_PER_FRAME; f->n_nom_modem_samples = 2*FDMDV_NOM_SAMPLES_PER_FRAME; f->n_nat_modem_samples = f->n_nom_modem_samples; f->n_max_modem_samples = FDMDV_NOM_SAMPLES_PER_FRAME+FDMDV_MAX_SAMPLES_PER_FRAME; f->modem_sample_rate = FREEDV_FS_8000; int nbit = fdmdv_bits_per_frame(f->fdmdv); f->fdmdv_bits = (int*)MALLOC(nbit*sizeof(int)); assert(f->fdmdv_bits != NULL); nbit = 2*fdmdv_bits_per_frame(f->fdmdv); f->fdmdv_tx_bits = (int*)CALLOC(1, nbit*sizeof(int)); f->fdmdv_rx_bits = (int*)CALLOC(1, nbit*sizeof(int)); assert(f->fdmdv_tx_bits != NULL); assert(f->fdmdv_rx_bits != NULL); f->evenframe = 0; f->sz_error_pattern = fdmdv_error_pattern_size(f->fdmdv); f->speech_sample_rate = FREEDV_FS_8000; f->codec2 = codec2_create(CODEC2_MODE_1300); assert(f->codec2 != NULL); f->n_speech_samples = codec2_samples_per_frame(f->codec2); f->bits_per_modem_frame = fdmdv_bits_per_frame(f->fdmdv); f->bits_per_codec_frame = codec2_bits_per_frame(f->codec2); f->n_codec_frames = 1; f->tx_payload_bits = MALLOC(f->bits_per_codec_frame); assert(f->tx_payload_bits != NULL); f->rx_payload_bits = MALLOC(f->bits_per_codec_frame); assert(f->rx_payload_bits != NULL); } void freedv_comptx_fdmdv_1600(struct freedv *f, COMP mod_out[]) { int i, j; int data, codeword1, data_flag_index; COMP tx_fdm[f->n_nat_modem_samples]; // spare bit in frame that codec defines. Use this 1 // bit/frame to send txt messages data_flag_index = codec2_get_spare_bit_index(f->codec2); if (f->nvaricode_bits) { f->tx_payload_bits[data_flag_index] = f->tx_varicode_bits[f->varicode_bit_index++]; f->nvaricode_bits--; } if (f->nvaricode_bits == 0) { /* get new char and encode */ char s[2]; if (f->freedv_get_next_tx_char != NULL) { s[0] = (*f->freedv_get_next_tx_char)(f->callback_state); f->nvaricode_bits = varicode_encode(f->tx_varicode_bits, s, VARICODE_MAX_BITS, 1, f->varicode_dec_states.code_num); f->varicode_bit_index = 0; } } /* Protect first 12 out of first 16 excitation bits with (23,12) Golay Code: 0,1,2,3: v[0]..v[3] 4,5,6,7: MSB of pitch 11,12,13,14: MSB of energy */ data = 0; for(i=0; i<8; i++) { data <<= 1; data |= f->tx_payload_bits[i]; } for(i=11; i<15; i++) { data <<= 1; data |= f->tx_payload_bits[i]; } codeword1 = golay23_encode(data); /* now pack output frame with parity bits at end to make them as far apart as possible from the data they protect. Parity bits are LSB of the Golay codeword */ for(i=0; ibits_per_codec_frame; i++) f->fdmdv_tx_bits[i] = f->tx_payload_bits[i]; for(j=0; ibits_per_codec_frame+11; i++,j++) { f->fdmdv_tx_bits[i] = (codeword1 >> (10-j)) & 0x1; } f->fdmdv_tx_bits[i] = 0; /* spare bit */ /* optionally overwrite with test frames */ if (f->test_frames) { fdmdv_get_test_bits(f->fdmdv, f->fdmdv_tx_bits); fdmdv_get_test_bits(f->fdmdv, &f->fdmdv_tx_bits[f->bits_per_modem_frame]); } /* modulate even and odd frames */ fdmdv_mod(f->fdmdv, tx_fdm, f->fdmdv_tx_bits, &f->tx_sync_bit); assert(f->tx_sync_bit == 1); fdmdv_mod(f->fdmdv, &tx_fdm[FDMDV_NOM_SAMPLES_PER_FRAME], &f->fdmdv_tx_bits[f->bits_per_modem_frame], &f->tx_sync_bit); assert(f->tx_sync_bit == 0); assert(2*FDMDV_NOM_SAMPLES_PER_FRAME == f->n_nom_modem_samples); for(i=0; in_nom_modem_samples; i++) mod_out[i] = fcmult(FDMDV_SCALE, tx_fdm[i]); } int freedv_comprx_fdmdv_1600(struct freedv *f, COMP demod_in[]) { int bits_per_fdmdv_frame; int i, j; int recd_codeword, codeword1, data_flag_index, n_ascii; short abit[1]; char ascii_out; int reliable_sync_bit; int rx_status = 0; COMP ademod_in[f->nin]; for(i=0; inin; i++) ademod_in[i] = fcmult(1.0/FDMDV_SCALE, demod_in[i]); bits_per_fdmdv_frame = fdmdv_bits_per_frame(f->fdmdv); fdmdv_demod(f->fdmdv, f->fdmdv_bits, &reliable_sync_bit, ademod_in, &f->nin); fdmdv_get_demod_stats(f->fdmdv, &f->stats); f->sync = f->fdmdv->sync; f->snr_est = f->stats.snr_est; if (reliable_sync_bit == 1) { f->evenframe = 1; } if (f->sync) { rx_status = FREEDV_RX_SYNC; if (f->evenframe == 0) { memcpy(f->fdmdv_rx_bits, f->fdmdv_bits, bits_per_fdmdv_frame*sizeof(int)); } else { memcpy(&f->fdmdv_rx_bits[bits_per_fdmdv_frame], f->fdmdv_bits, bits_per_fdmdv_frame*sizeof(int)); if (f->test_frames == 0) { recd_codeword = 0; for(i=0; i<8; i++) { recd_codeword <<= 1; recd_codeword |= (f->fdmdv_rx_bits[i] & 0x1); } for(i=11; i<15; i++) { recd_codeword <<= 1; recd_codeword |= (f->fdmdv_rx_bits[i] & 0x1); } for(i=f->bits_per_codec_frame; ibits_per_codec_frame+11; i++) { recd_codeword <<= 1; recd_codeword |= (f->fdmdv_rx_bits[i] & 0x1); } codeword1 = golay23_decode(recd_codeword); f->total_bit_errors += golay23_count_errors(recd_codeword, codeword1); f->total_bits += 23; for(i=0; ibits_per_codec_frame; i++) f->rx_payload_bits[i] = f->fdmdv_rx_bits[i]; for(i=0; i<8; i++) { f->rx_payload_bits[i] = (codeword1 >> (22-i)) & 0x1; } for(i=8,j=11; i<12; i++,j++) { f->rx_payload_bits[j] = (codeword1 >> (22-i)) & 0x1; } // extract txt msg data bit ------------------------------------------------------------ data_flag_index = codec2_get_spare_bit_index(f->codec2); abit[0] = f->rx_payload_bits[data_flag_index]; n_ascii = varicode_decode(&f->varicode_dec_states, &ascii_out, abit, 1, 1); if (n_ascii && (f->freedv_put_next_rx_char != NULL)) { (*f->freedv_put_next_rx_char)(f->callback_state, ascii_out); } // reconstruct missing bit we steal for data bit and decode codec2_rebuild_spare_bit(f->codec2, (char*)f->rx_payload_bits); rx_status |= FREEDV_RX_BITS; } else { int test_frame_sync, bit_errors, ntest_bits, k; short error_pattern[fdmdv_error_pattern_size(f->fdmdv)]; for(k=0; k<2; k++) { /* test frames, so lets sync up to the test frames and count any errors */ fdmdv_put_test_bits(f->fdmdv, &test_frame_sync, error_pattern, &bit_errors, &ntest_bits, &f->fdmdv_rx_bits[k*bits_per_fdmdv_frame]); if (test_frame_sync == 1) { f->test_frame_sync_state = 1; f->test_frame_count = 0; } if (f->test_frame_sync_state) { if (f->test_frame_count == 0) { f->total_bit_errors += bit_errors; f->total_bits += ntest_bits; if (f->freedv_put_error_pattern != NULL) { (*f->freedv_put_error_pattern)(f->error_pattern_callback_state, error_pattern, fdmdv_error_pattern_size(f->fdmdv)); } } f->test_frame_count++; if (f->test_frame_count == 4) f->test_frame_count = 0; } } } /* if (test_frames == 0) .... */ } /* note this freewheels if reliable sync dissapears on bad channels */ if (f->evenframe) f->evenframe = 0; else f->evenframe = 1; } /* if (sync) .... */ return rx_status; } codec2-1.0.1/src/freedv_2020.c000066400000000000000000000304471412132000500155150ustar00rootroot00000000000000/*---------------------------------------------------------------------------*\ FILE........: freedv_2020.c AUTHOR......: David Rowe DATE CREATED: May 2020 Functions that implement the FreeDV 2020 mode. \*---------------------------------------------------------------------------*/ #include #include #include #include #include #include #include #include "fsk.h" #include "fmfsk.h" #include "codec2.h" #include "codec2_fdmdv.h" #include "varicode.h" #include "freedv_api.h" #include "freedv_api_internal.h" #include "comp_prim.h" #include "codec2_ofdm.h" #include "ofdm_internal.h" #include "mpdecode_core.h" #include "gp_interleaver.h" #include "ldpc_codes.h" #include "interldpc.h" #include "debug_alloc.h" extern char *ofdm_statemode[]; #ifdef __LPCNET__ void freedv_2020_open(struct freedv *f) { f->speech_sample_rate = FREEDV_FS_16000; f->snr_squelch_thresh = 4.0; f->squelch_en = 0; struct OFDM_CONFIG ofdm_config; ofdm_init_mode("2020", &ofdm_config); f->ofdm = ofdm_create(&ofdm_config); f->ldpc = (struct LDPC*)MALLOC(sizeof(struct LDPC)); assert(f->ldpc != NULL); ldpc_codes_setup(f->ldpc, f->ofdm->codename); int data_bits_per_frame = 312; set_data_bits_per_frame(f->ldpc, data_bits_per_frame); int coded_syms_per_frame = f->ldpc->coded_bits_per_frame/f->ofdm->bps; f->ofdm_bitsperframe = ofdm_get_bits_per_frame(f->ofdm); f->ofdm_nuwbits = (f->ofdm->config.ns - 1) * f->ofdm->config.bps - f->ofdm->config.txtbits; f->ofdm_ntxtbits = f->ofdm->config.txtbits; assert(f->ofdm_nuwbits == 10); assert(f->ofdm_ntxtbits == 4); if (f->verbose) { fprintf(stderr, "ldpc_data_bits_per_frame = %d\n", f->ldpc->ldpc_data_bits_per_frame); fprintf(stderr, "ldpc_coded_bits_per_frame = %d\n", f->ldpc->ldpc_coded_bits_per_frame); fprintf(stderr, "data_bits_per_frame = %d\n", data_bits_per_frame); fprintf(stderr, "coded_bits_per_frame = %d\n", f->ldpc->coded_bits_per_frame); fprintf(stderr, "coded_syms_per_frame = %d\n", f->ldpc->coded_bits_per_frame/f->ofdm->bps); fprintf(stderr, "ofdm_bits_per_frame = %d\n", f->ofdm_bitsperframe); } f->codeword_symbols = (COMP*)MALLOC(sizeof(COMP) * coded_syms_per_frame); assert(f->codeword_symbols != NULL); f->codeword_amps = (float*)MALLOC(sizeof(float) * coded_syms_per_frame); assert(f->codeword_amps != NULL); for (int i=0; i< coded_syms_per_frame; i++) { f->codeword_symbols[i].real = 0.0f; f->codeword_symbols[i].imag = 0.0f; f->codeword_amps[i] = 0.0f; } f->nin = f->nin_prev = ofdm_get_samples_per_frame(f->ofdm); f->n_nat_modem_samples = ofdm_get_samples_per_frame(f->ofdm); f->n_nom_modem_samples = ofdm_get_samples_per_frame(f->ofdm); f->n_max_modem_samples = ofdm_get_max_samples_per_frame(f->ofdm); f->modem_sample_rate = f->ofdm->config.fs; f->clip_en = 0; f->sz_error_pattern = f->ofdm_bitsperframe; /* storage for pass through audio interpolating filter. These are the rate FREEDV_FS_8000 modem input samples before interpolation */ f->passthrough_2020 = CALLOC(1, sizeof(float)*(FDMDV_OS_TAPS_16K + freedv_get_n_max_modem_samples(f))); assert(f->passthrough_2020 != NULL); // make sure we have enough storage for worst case nin with passthrough, in 2020 // we oversample the 8 kHz input Rx audio to 16 kHz int nout_max = 2*freedv_get_n_max_modem_samples(f); assert(nout_max <= freedv_get_n_max_speech_samples(f)); f->lpcnet = lpcnet_freedv_create(1); assert(f->lpcnet != NULL); f->codec2 = NULL; /* should be exactly an integer number of Codec frames in a OFDM modem frame */ assert((f->ldpc->data_bits_per_frame % lpcnet_bits_per_frame(f->lpcnet)) == 0); f->n_codec_frames = f->ldpc->data_bits_per_frame/lpcnet_bits_per_frame(f->lpcnet); f->n_speech_samples = f->n_codec_frames*lpcnet_samples_per_frame(f->lpcnet); f->bits_per_codec_frame = lpcnet_bits_per_frame(f->lpcnet); f->bits_per_modem_frame = f->n_codec_frames*f->bits_per_codec_frame; f->tx_payload_bits = (unsigned char*)MALLOC(f->bits_per_modem_frame); assert(f->tx_payload_bits != NULL); f->rx_payload_bits = (unsigned char*)MALLOC(f->bits_per_modem_frame); assert(f->rx_payload_bits != NULL); /* attenuate audio 12dB as channel noise isn't that pleasant */ f->passthrough_gain = 0.25; } void freedv_comptx_2020(struct freedv *f, COMP mod_out[]) { int i, k; int data_bits_per_frame = f->ldpc->data_bits_per_frame; uint8_t tx_bits[data_bits_per_frame]; memcpy(tx_bits, f->tx_payload_bits, data_bits_per_frame); // Generate Varicode txt bits. Txt bits in OFDM frame come just // after Unique Word (UW). Txt bits aren't protected by FEC, and need to be // added to each frame after interleaver as done it's thing int nspare = f->ofdm_ntxtbits; uint8_t txt_bits[nspare]; for(k=0; knvaricode_bits == 0) { /* get new char and encode */ char s[2]; if (f->freedv_get_next_tx_char != NULL) { s[0] = (*f->freedv_get_next_tx_char)(f->callback_state); f->nvaricode_bits = varicode_encode(f->tx_varicode_bits, s, VARICODE_MAX_BITS, 1, f->varicode_dec_states.code_num); f->varicode_bit_index = 0; } } if (f->nvaricode_bits) { txt_bits[k] = f->tx_varicode_bits[f->varicode_bit_index++]; f->nvaricode_bits--; } else txt_bits[k] = 0; } /* optionally replace codec payload bits with test frames known to rx */ if (f->test_frames) { uint8_t payload_data_bits[data_bits_per_frame]; ofdm_generate_payload_data_bits(payload_data_bits, data_bits_per_frame); for (i = 0; i < data_bits_per_frame; i++) { tx_bits[i] = payload_data_bits[i]; } } /* OK now ready to LDPC encode, interleave, and OFDM modulate */ ofdm_ldpc_interleave_tx(f->ofdm, f->ldpc, (complex float*)mod_out, tx_bits, txt_bits); } int freedv_comprx_2020(struct freedv *f, COMP demod_in[]) { int i, k; int n_ascii; char ascii_out; struct OFDM *ofdm = f->ofdm; struct LDPC *ldpc = f->ldpc; int data_bits_per_frame = ldpc->data_bits_per_frame; int coded_bits_per_frame = ldpc->coded_bits_per_frame; int coded_syms_per_frame = ldpc->coded_bits_per_frame/ofdm->bps; COMP *codeword_symbols = f->codeword_symbols; float *codeword_amps = f->codeword_amps; int rx_bits[f->ofdm_bitsperframe]; short txt_bits[f->ofdm_ntxtbits]; COMP payload_syms[coded_syms_per_frame]; float payload_amps[coded_syms_per_frame]; int rx_status = 0; int Nerrs_raw = 0; int Nerrs_coded = 0; int iter = 0; int parityCheckCount = 0; uint8_t rx_uw[f->ofdm_nuwbits]; f->sync = 0; // TODO: should be higher for 2020? float EsNo = 3.0; /* looking for modem sync */ if (ofdm->sync_state == search) { ofdm_sync_search(f->ofdm, demod_in); f->snr_est = -5.0; } /* OK modem is in sync */ if ((ofdm->sync_state == synced) || (ofdm->sync_state == trial)) { rx_status |= FREEDV_RX_SYNC; if (ofdm->sync_state == trial) rx_status |= FREEDV_RX_TRIAL_SYNC; int txt_sym_index = 0; ofdm_demod(ofdm, rx_bits, demod_in); ofdm_extract_uw(ofdm, ofdm->rx_np, ofdm->rx_amp, rx_uw); ofdm_disassemble_qpsk_modem_packet_with_text_amps(ofdm, ofdm->rx_np, ofdm->rx_amp, payload_syms, payload_amps, txt_bits, &txt_sym_index); f->sync = 1; assert((f->ofdm_nuwbits+f->ofdm_ntxtbits+coded_bits_per_frame) == f->ofdm_bitsperframe); /* newest symbols at end of buffer (uses final i from last loop), note we change COMP formats from what modem uses internally */ for(i=0; i< coded_syms_per_frame; i++) { codeword_symbols[i] = payload_syms[i]; codeword_amps[i] = payload_amps[i]; } /* run de-interleaver */ COMP codeword_symbols_de[coded_syms_per_frame]; float codeword_amps_de[coded_syms_per_frame]; gp_deinterleave_comp (codeword_symbols_de, codeword_symbols, coded_syms_per_frame); gp_deinterleave_float(codeword_amps_de , codeword_amps , coded_syms_per_frame); float llr[coded_bits_per_frame]; uint8_t out_char[coded_bits_per_frame]; if (f->test_frames) { Nerrs_raw = count_uncoded_errors(ldpc, &f->ofdm->config, codeword_symbols_de, 0); f->total_bit_errors += Nerrs_raw; f->total_bits += f->ofdm_bitsperframe; } symbols_to_llrs(llr, codeword_symbols_de, codeword_amps_de, EsNo, ofdm->mean_amp, coded_syms_per_frame); /* LDPC decoder */ if (ldpc->data_bits_per_frame == ldpc->ldpc_data_bits_per_frame) { /* all data bits in code word used */ iter = run_ldpc_decoder(ldpc, out_char, llr, &parityCheckCount); } else { /* some unused data bits, set these to known values to strengthen code */ float llr_full_codeword[ldpc->ldpc_coded_bits_per_frame]; int unused_data_bits = ldpc->ldpc_data_bits_per_frame - ldpc->data_bits_per_frame; // received data bits for (i = 0; i < ldpc->data_bits_per_frame; i++) llr_full_codeword[i] = llr[i]; // known bits ... so really likely for (i = ldpc->data_bits_per_frame; i < ldpc->ldpc_data_bits_per_frame; i++) llr_full_codeword[i] = -100.0f; // parity bits at end for (i = ldpc->ldpc_data_bits_per_frame; i < ldpc->ldpc_coded_bits_per_frame; i++) llr_full_codeword[i] = llr[i - unused_data_bits]; iter = run_ldpc_decoder(ldpc, out_char, llr_full_codeword, &parityCheckCount); } if (parityCheckCount != ldpc->NumberParityBits) rx_status |= FREEDV_RX_BIT_ERRORS; if (f->test_frames) { uint8_t payload_data_bits[data_bits_per_frame]; ofdm_generate_payload_data_bits(payload_data_bits, data_bits_per_frame); Nerrs_coded = count_errors(payload_data_bits, out_char, data_bits_per_frame); f->total_bit_errors_coded += Nerrs_coded; f->total_bits_coded += data_bits_per_frame; } else { memcpy(f->rx_payload_bits, out_char, data_bits_per_frame); } rx_status |= FREEDV_RX_BITS; /* If modem is synced we can decode txt bits */ for(k=0; kofdm_ntxtbits; k++) { if (k % 2 == 0 && (f->freedv_put_next_rx_symbol != NULL)) { (*f->freedv_put_next_rx_symbol)(f->callback_state_sym, ofdm->rx_np[txt_sym_index], ofdm->rx_amp[txt_sym_index]); txt_sym_index++; } //fprintf(stderr, "txt_bits[%d] = %d\n", k, rx_bits[i]); n_ascii = varicode_decode(&f->varicode_dec_states, &ascii_out, &txt_bits[k], 1, 1); if (n_ascii && (f->freedv_put_next_rx_char != NULL)) { (*f->freedv_put_next_rx_char)(f->callback_state, ascii_out); } } /* estimate uncoded BER from UW. Coded bit errors could probably be estimated as half of all failed LDPC parity checks */ for(i=0; iofdm_nuwbits; i++) { if (rx_uw[i] != ofdm->tx_uw[i]) { f->total_bit_errors++; } } f->total_bits += f->ofdm_nuwbits; ofdm_get_demod_stats(f->ofdm, &f->stats, ofdm->rx_np, ofdm->rowsperframe*ofdm->nc); f->snr_est = f->stats.snr_est; } /* iterate state machine and update nin for next call */ f->nin = ofdm_get_nin(ofdm); ofdm_sync_state_machine(ofdm, rx_uw); if ((f->verbose && (ofdm->last_sync_state == search)) || (f->verbose == 2)) { assert(rx_status <= 15); fprintf(stderr, "%3d st: %-6s euw: %2d %1d f: %5.1f pbw: %d snr: %4.1f eraw: %3d ecdd: %3d iter: %3d pcc: %3d rxst: %s\n", f->frames++, ofdm_statemode[ofdm->last_sync_state], ofdm->uw_errors, ofdm->sync_counter, (double)ofdm->foff_est_hz, ofdm->phase_est_bandwidth, f->snr_est, Nerrs_raw, Nerrs_coded, iter, parityCheckCount, rx_sync_flags_to_text[rx_status]); } return rx_status; } #endif codec2-1.0.1/src/freedv_700.c000066400000000000000000000550501412132000500154350ustar00rootroot00000000000000/*---------------------------------------------------------------------------*\ FILE........: freedv_700.c AUTHOR......: David Rowe DATE CREATED: May 2020 Functions that implement the various FreeDV 700 modes, and more generally OFDM data modes. \*---------------------------------------------------------------------------*/ #include #include #include #include #include #include #include #include "fsk.h" #include "fmfsk.h" #include "codec2.h" #include "codec2_fdmdv.h" #include "varicode.h" #include "freedv_api.h" #include "freedv_api_internal.h" #include "comp_prim.h" #include "codec2_ofdm.h" #include "ofdm_internal.h" #include "mpdecode_core.h" #include "gp_interleaver.h" #include "ldpc_codes.h" #include "interldpc.h" #include "debug_alloc.h" #include "filter.h" extern char *ofdm_statemode[]; void freedv_700c_open(struct freedv *f) { f->snr_squelch_thresh = 0.0; f->squelch_en = 0; f->cohpsk = cohpsk_create(); f->nin = f->nin_prev = COHPSK_NOM_SAMPLES_PER_FRAME; f->n_nat_modem_samples = COHPSK_NOM_SAMPLES_PER_FRAME; // native modem samples as used by the modem f->n_nom_modem_samples = f->n_nat_modem_samples * FREEDV_FS_8000 / COHPSK_FS;// number of samples after native samples are interpolated to 8000 sps f->n_max_modem_samples = COHPSK_MAX_SAMPLES_PER_FRAME * FREEDV_FS_8000 / COHPSK_FS + 1; f->modem_sample_rate = FREEDV_FS_8000; // note weird sample rate tamed by resampling f->clip_en = 1; f->sz_error_pattern = cohpsk_error_pattern_size(); f->test_frames_diversity = 1; f->ptFilter7500to8000 = (struct quisk_cfFilter *)MALLOC(sizeof(struct quisk_cfFilter)); f->ptFilter8000to7500 = (struct quisk_cfFilter *)MALLOC(sizeof(struct quisk_cfFilter)); quisk_filt_cfInit(f->ptFilter8000to7500, quiskFilt120t480, sizeof(quiskFilt120t480)/sizeof(float)); quisk_filt_cfInit(f->ptFilter7500to8000, quiskFilt120t480, sizeof(quiskFilt120t480)/sizeof(float)); f->speech_sample_rate = FREEDV_FS_8000; f->codec2 = codec2_create(CODEC2_MODE_700C); assert(f->codec2 != NULL); f->n_codec_frames = 2; f->n_speech_samples = f->n_codec_frames*codec2_samples_per_frame(f->codec2); f->bits_per_codec_frame = codec2_bits_per_frame(f->codec2); f->bits_per_modem_frame = f->n_codec_frames*codec2_bits_per_frame(f->codec2); assert(f->bits_per_modem_frame == COHPSK_BITS_PER_FRAME); f->tx_payload_bits = (uint8_t*)MALLOC(f->bits_per_modem_frame*sizeof(char)); assert(f->tx_payload_bits != NULL); f->rx_payload_bits = (uint8_t*)MALLOC(f->bits_per_modem_frame*sizeof(char)); assert(f->rx_payload_bits != NULL); } void freedv_comptx_700c(struct freedv *f, COMP mod_out[]) { int i; COMP tx_fdm[f->n_nat_modem_samples]; int tx_bits[COHPSK_BITS_PER_FRAME]; /* earlier modems used one bit per int for unpacked bits */ for(i=0; itx_payload_bits[i]; /* optionally overwrite the codec bits with test frames */ if (f->test_frames) { cohpsk_get_test_bits(f->cohpsk, tx_bits); } /* cohpsk modulator */ cohpsk_mod(f->cohpsk, tx_fdm, tx_bits, COHPSK_BITS_PER_FRAME); float gain = 1.0; if (f->clip_en) { cohpsk_clip(tx_fdm, COHPSK_CLIP, COHPSK_NOM_SAMPLES_PER_FRAME); gain = 2.5; } for(i=0; in_nat_modem_samples; i++) mod_out[i] = fcmult(gain*FDMDV_SCALE*NORM_PWR_COHPSK, tx_fdm[i]); i = quisk_cfInterpDecim((complex float *)mod_out, f->n_nat_modem_samples, f->ptFilter7500to8000, 16, 15); } // open function for OFDM voice modes void freedv_ofdm_voice_open(struct freedv *f, char *mode) { f->snr_squelch_thresh = 0.0; f->squelch_en = 0; struct OFDM_CONFIG *ofdm_config = (struct OFDM_CONFIG *) calloc(1, sizeof (struct OFDM_CONFIG)); assert(ofdm_config != NULL); ofdm_init_mode(mode, ofdm_config); f->ofdm = ofdm_create(ofdm_config); assert(f->ofdm != NULL); free(ofdm_config); ofdm_config = ofdm_get_config_param(f->ofdm); f->ofdm_bitsperpacket = ofdm_get_bits_per_packet(f->ofdm); f->ofdm_bitsperframe = ofdm_get_bits_per_frame(f->ofdm); f->ofdm_nuwbits = ofdm_config->nuwbits; f->ofdm_ntxtbits = ofdm_config->txtbits; f->ldpc = (struct LDPC*)MALLOC(sizeof(struct LDPC)); assert(f->ldpc != NULL); ldpc_codes_setup(f->ldpc, f->ofdm->codename); #ifdef __EMBEDDED__ f->ldpc->max_iter = 10; /* limit LDPC decoder iterations to limit CPU load */ #endif int Nsymsperpacket = ofdm_get_bits_per_packet(f->ofdm) / f->ofdm->bps; f->rx_syms = (COMP*)MALLOC(sizeof(COMP) * Nsymsperpacket); assert(f->rx_syms != NULL); f->rx_amps = (float*)MALLOC(sizeof(float) * Nsymsperpacket); assert(f->rx_amps != NULL); for(int i=0; irx_syms[i].real = f->rx_syms[i].imag = 0.0; f->rx_amps[i]= 0.0; } f->nin = f->nin_prev = ofdm_get_samples_per_frame(f->ofdm); f->n_nat_modem_samples = ofdm_get_samples_per_frame(f->ofdm); f->n_nom_modem_samples = ofdm_get_samples_per_frame(f->ofdm); f->n_max_modem_samples = ofdm_get_max_samples_per_frame(f->ofdm); f->modem_sample_rate = f->ofdm->config.fs; f->clip_en = 0; f->sz_error_pattern = f->ofdm_bitsperframe; f->tx_bits = NULL; /* not used for 700D */ f->speech_sample_rate = FREEDV_FS_8000; f->codec2 = codec2_create(CODEC2_MODE_700C); assert(f->codec2 != NULL); /* should be exactly an integer number of Codec 2 frames in a OFDM modem frame */ assert((f->ldpc->data_bits_per_frame % codec2_bits_per_frame(f->codec2)) == 0); f->n_codec_frames = f->ldpc->data_bits_per_frame/codec2_bits_per_frame(f->codec2); f->n_speech_samples = f->n_codec_frames*codec2_samples_per_frame(f->codec2); f->bits_per_codec_frame = codec2_bits_per_frame(f->codec2); f->bits_per_modem_frame = f->n_codec_frames*f->bits_per_codec_frame; f->tx_payload_bits = (unsigned char*)MALLOC(f->bits_per_modem_frame); assert(f->tx_payload_bits != NULL); f->rx_payload_bits = (unsigned char*)MALLOC(f->bits_per_modem_frame); assert(f->rx_payload_bits != NULL); /* attenuate audio 12dB as channel noise isn't that pleasant */ f->passthrough_gain = 0.25; /* should all add up to a complete frame */ assert((ofdm_config->ns - 1) * ofdm_config->nc * ofdm_config->bps == f->ldpc->coded_bits_per_frame + ofdm_config->txtbits + f->ofdm_nuwbits); } // open function for OFDM data modes, TODO consider moving to a new // (freedv_ofdm_data.c) file void freedv_ofdm_data_open(struct freedv *f) { struct OFDM_CONFIG ofdm_config; char mode[32]; if (f->mode == FREEDV_MODE_DATAC0) strcpy(mode, "datac0"); if (f->mode == FREEDV_MODE_DATAC1) strcpy(mode, "datac1"); if (f->mode == FREEDV_MODE_DATAC3) strcpy(mode, "datac3"); ofdm_init_mode(mode, &ofdm_config); f->ofdm = ofdm_create(&ofdm_config); assert(f->ofdm != NULL); // LDPC set up f->ldpc = (struct LDPC*)MALLOC(sizeof(struct LDPC)); assert(f->ldpc != NULL); ldpc_codes_setup(f->ldpc, f->ofdm->codename); #ifdef __EMBEDDED__ f->ldpc->max_iter = 10; /* limit LDPC decoder iterations to limit CPU load */ #endif // useful constants f->ofdm_bitsperpacket = ofdm_get_bits_per_packet(f->ofdm); f->ofdm_bitsperframe = ofdm_get_bits_per_frame(f->ofdm); f->ofdm_nuwbits = ofdm_config.nuwbits; f->ofdm_ntxtbits = ofdm_config.txtbits; /* payload bits per FreeDV API "frame". In OFDM modem nomenclature this is the number of payload data bits per packet, or the number of data bits in a LDPC codeword */ f->bits_per_modem_frame = f->ldpc->data_bits_per_frame; // buffers for received symbols for one packet/LDPC codeword - may span many OFDM modem frames int Nsymsperpacket = ofdm_get_bits_per_packet(f->ofdm) / f->ofdm->bps; f->rx_syms = (COMP*)MALLOC(sizeof(COMP) * Nsymsperpacket); assert(f->rx_syms != NULL); f->rx_amps = (float*)MALLOC(sizeof(float) * Nsymsperpacket); assert(f->rx_amps != NULL); for(int i=0; irx_syms[i].real = f->rx_syms[i].imag = 0.0; f->rx_amps[i]= 0.0; } f->nin = f->nin_prev = ofdm_get_nin(f->ofdm); f->n_nat_modem_samples = ofdm_get_samples_per_packet(f->ofdm); f->n_nom_modem_samples = ofdm_get_samples_per_frame(f->ofdm); /* in burst mode we might jump a preamble frame */ f->n_max_modem_samples = 2*ofdm_get_max_samples_per_frame(f->ofdm); f->modem_sample_rate = f->ofdm->config.fs; f->sz_error_pattern = f->ofdm_bitsperpacket; // Note inconsistency: freedv API modem "frame" is a OFDM modem packet f->tx_payload_bits = (unsigned char*)MALLOC(f->bits_per_modem_frame); assert(f->tx_payload_bits != NULL); f->rx_payload_bits = (unsigned char*)MALLOC(f->bits_per_modem_frame); assert(f->rx_payload_bits != NULL); } /* speech or raw data, complex OFDM modulation out */ void freedv_comptx_ofdm(struct freedv *f, COMP mod_out[]) { int i, k; int nspare; /* Generate Varicode txt bits (if used), waren't protected by FEC */ nspare = f->ofdm_ntxtbits; uint8_t txt_bits[nspare]; for(k=0; knvaricode_bits == 0) { /* get new char and encode */ char s[2]; if (f->freedv_get_next_tx_char != NULL) { s[0] = (*f->freedv_get_next_tx_char)(f->callback_state); f->nvaricode_bits = varicode_encode(f->tx_varicode_bits, s, VARICODE_MAX_BITS, 1, f->varicode_dec_states.code_num); f->varicode_bit_index = 0; } } if (f->nvaricode_bits) { txt_bits[k] = f->tx_varicode_bits[f->varicode_bit_index++]; f->nvaricode_bits--; } else txt_bits[k] = 0; } /* optionally replace payload bits with test frames known to rx */ if (f->test_frames) { uint8_t payload_data_bits[f->bits_per_modem_frame]; ofdm_generate_payload_data_bits(payload_data_bits, f->bits_per_modem_frame); for (i = 0; i < f->bits_per_modem_frame; i++) { f->tx_payload_bits[i] = payload_data_bits[i]; } } /* OK now ready to LDPC encode, interleave, and OFDM modulate */ ofdm_ldpc_interleave_tx(f->ofdm, f->ldpc, (complex float*)mod_out, f->tx_payload_bits, txt_bits); } int freedv_comprx_700c(struct freedv *f, COMP demod_in_8kHz[]) { int i; int sync; int rx_status = 0; // quisk_cfInterpDecim() modifies input data so lets make a copy just in case there // is no sync and we need to echo inpout to output // freedv_nin(f): input samples at Fs=8000 Hz // f->nin: input samples at Fs=7500 Hz COMP demod_in[freedv_nin(f)]; for(i=0; iptFilter8000to7500, 15, 16); for(i=0; inin; i++) demod_in[i] = fcmult(1.0/FDMDV_SCALE, demod_in[i]); float rx_soft_bits[COHPSK_BITS_PER_FRAME]; cohpsk_demod(f->cohpsk, rx_soft_bits, &sync, demod_in, &f->nin); for(i=0; ibits_per_modem_frame; i++) f->rx_payload_bits[i] = rx_soft_bits[i] < 0.0f; f->sync = sync; cohpsk_get_demod_stats(f->cohpsk, &f->stats); f->snr_est = f->stats.snr_est; if (sync) { rx_status = FREEDV_RX_SYNC; if (f->test_frames == 0) { rx_status |= FREEDV_RX_BITS; } else { if (f->test_frames_diversity) { /* normal operation - error pattern on frame after diveristy combination */ short error_pattern[COHPSK_BITS_PER_FRAME]; int bit_errors; /* test data, lets see if we can sync to the test data sequence */ char rx_bits_char[COHPSK_BITS_PER_FRAME]; for(i=0; icohpsk, &f->test_frame_sync_state, error_pattern, &bit_errors, rx_bits_char, 0); if (f->test_frame_sync_state) { f->total_bit_errors += bit_errors; f->total_bits += COHPSK_BITS_PER_FRAME; if (f->freedv_put_error_pattern != NULL) { (*f->freedv_put_error_pattern)(f->error_pattern_callback_state, error_pattern, COHPSK_BITS_PER_FRAME); } } } else { /* calculate error pattern on uncombined carriers - test mode to spot any carrier specific issues like tx passband filtering */ short error_pattern[2*COHPSK_BITS_PER_FRAME]; char rx_bits_char[COHPSK_BITS_PER_FRAME]; int bit_errors_lower, bit_errors_upper; /* lower group of carriers */ float *rx_bits_lower = cohpsk_get_rx_bits_lower(f->cohpsk); for(i=0; icohpsk, &f->test_frame_sync_state, error_pattern, &bit_errors_lower, rx_bits_char, 0); /* upper group of carriers */ float *rx_bits_upper = cohpsk_get_rx_bits_upper(f->cohpsk); for(i=0; icohpsk, &f->test_frame_sync_state_upper, &error_pattern[COHPSK_BITS_PER_FRAME], &bit_errors_upper, rx_bits_char, 1); /* combine total errors and call callback */ if (f->test_frame_sync_state && f->test_frame_sync_state_upper) { f->total_bit_errors += bit_errors_lower + bit_errors_upper; f->total_bits += 2*COHPSK_BITS_PER_FRAME; if (f->freedv_put_error_pattern != NULL) { (*f->freedv_put_error_pattern)(f->error_pattern_callback_state, error_pattern, 2*COHPSK_BITS_PER_FRAME); } } } } } return rx_status; } /* OFDM demod function that can support complex (float) or real (short) samples. The real short samples are useful for low memory platforms such as the SM1000. */ int freedv_comp_short_rx_ofdm(struct freedv *f, void *demod_in_8kHz, int demod_in_is_short, float gain) { int i, k; int n_ascii; char ascii_out; struct OFDM *ofdm = f->ofdm; struct LDPC *ldpc = f->ldpc; /* useful constants */ int Nbitsperframe = ofdm_get_bits_per_frame(ofdm); int Nbitsperpacket = ofdm_get_bits_per_packet(ofdm); int Nsymsperframe = Nbitsperframe / ofdm->bps; int Nsymsperpacket = Nbitsperpacket / ofdm->bps; int Npayloadbitsperpacket = Nbitsperpacket - ofdm->nuwbits - ofdm->ntxtbits; int Npayloadsymsperpacket = Npayloadbitsperpacket/ofdm->bps; int Ndatabitsperpacket = ldpc->data_bits_per_frame; complex float *rx_syms = (complex float*)f->rx_syms; float *rx_amps = f->rx_amps; int rx_bits[Nbitsperframe]; short txt_bits[f->ofdm_ntxtbits]; COMP payload_syms[Npayloadsymsperpacket]; float payload_amps[Npayloadsymsperpacket]; int Nerrs_raw = 0; int Nerrs_coded = 0; int iter = 0; int parityCheckCount = 0; uint8_t rx_uw[f->ofdm_nuwbits]; float new_gain = gain / f->ofdm->amp_scale; assert((demod_in_is_short == 0) || (demod_in_is_short == 1)); int rx_status = 0; float EsNo = 3.0; /* further work: estimate this properly from signal */ f->sync = 0; /* looking for OFDM modem sync */ if (ofdm->sync_state == search) { if (demod_in_is_short) ofdm_sync_search_shorts(f->ofdm, (short*)demod_in_8kHz, new_gain); else ofdm_sync_search(f->ofdm, (COMP*)demod_in_8kHz); f->snr_est = -5.0; } if ((ofdm->sync_state == synced) || (ofdm->sync_state == trial)) { /* OK we have OFDM modem sync */ rx_status |= FREEDV_RX_SYNC; if (ofdm->sync_state == trial) rx_status |= FREEDV_RX_TRIAL_SYNC; if (demod_in_is_short) ofdm_demod_shorts(ofdm, rx_bits, (short*)demod_in_8kHz, new_gain); else ofdm_demod(ofdm, rx_bits, (COMP*)demod_in_8kHz); /* accumulate a buffer of data symbols for this packet */ for(i=0; irx_np, sizeof(complex float)*Nsymsperframe); memcpy(&rx_amps[Nsymsperpacket-Nsymsperframe], ofdm->rx_amp, sizeof(float)*Nsymsperframe); /* look for UW as frames enter packet buffer, note UW may span several modem frames */ int st_uw = Nsymsperpacket - ofdm->nuwframes*Nsymsperframe; ofdm_extract_uw(ofdm, &rx_syms[st_uw], &rx_amps[st_uw], rx_uw); // update some FreeDV API level stats f->sync = 1; if (ofdm->modem_frame == (ofdm->np-1)) { /* we have received enough modem frames to complete packet and run LDPC decoder */ int txt_sym_index = 0; ofdm_disassemble_qpsk_modem_packet_with_text_amps(ofdm, rx_syms, rx_amps, payload_syms, payload_amps, txt_bits, &txt_sym_index); COMP payload_syms_de[Npayloadsymsperpacket]; float payload_amps_de[Npayloadsymsperpacket]; gp_deinterleave_comp (payload_syms_de, payload_syms, Npayloadsymsperpacket); gp_deinterleave_float(payload_amps_de, payload_amps, Npayloadsymsperpacket); float llr[Npayloadbitsperpacket]; uint8_t decoded_codeword[Npayloadbitsperpacket]; symbols_to_llrs(llr, payload_syms_de, payload_amps_de, EsNo, ofdm->mean_amp, Npayloadsymsperpacket); iter = run_ldpc_decoder(ldpc, decoded_codeword, llr, &parityCheckCount); memcpy(f->rx_payload_bits, decoded_codeword, Ndatabitsperpacket); if (strlen(ofdm->data_mode)) { // we need a valid CRC to declare a data packet valid if (freedv_check_crc16_unpacked(f->rx_payload_bits, Ndatabitsperpacket)) rx_status |= FREEDV_RX_BITS; else rx_status |= FREEDV_RX_BIT_ERRORS; } else { // voice modes aren't as strict - pass everything through to the speech decoder, but flag // frame with possible errors rx_status |= FREEDV_RX_BITS; if (parityCheckCount != ldpc->NumberParityBits) rx_status |= FREEDV_RX_BIT_ERRORS; } if (f->test_frames) { /* est uncoded BER from payload bits */ Nerrs_raw = count_uncoded_errors(ldpc, &f->ofdm->config, payload_syms_de, strlen(ofdm->data_mode)); f->total_bit_errors += Nerrs_raw; f->total_bits += Npayloadbitsperpacket; /* coded errors from decoded bits */ uint8_t payload_data_bits[Ndatabitsperpacket]; ofdm_generate_payload_data_bits(payload_data_bits, Ndatabitsperpacket); if (strlen(ofdm->data_mode)) { uint16_t tx_crc16 = freedv_crc16_unpacked(payload_data_bits, Ndatabitsperpacket - 16); uint8_t tx_crc16_bytes[] = { tx_crc16 >> 8, tx_crc16 & 0xff }; freedv_unpack(payload_data_bits + Ndatabitsperpacket - 16, tx_crc16_bytes, 16); } Nerrs_coded = count_errors(payload_data_bits, f->rx_payload_bits, Ndatabitsperpacket); f->total_bit_errors_coded += Nerrs_coded; f->total_bits_coded += Ndatabitsperpacket; if (Nerrs_coded) f->total_packet_errors++; f->total_packets++; } /* decode txt bits (if used) */ for(k=0; kofdm_ntxtbits; k++) { if (k % 2 == 0 && (f->freedv_put_next_rx_symbol != NULL)) { (*f->freedv_put_next_rx_symbol)(f->callback_state_sym, rx_syms[txt_sym_index], rx_amps[txt_sym_index]); txt_sym_index++; } n_ascii = varicode_decode(&f->varicode_dec_states, &ascii_out, &txt_bits[k], 1, 1); if (n_ascii && (f->freedv_put_next_rx_char != NULL)) { (*f->freedv_put_next_rx_char)(f->callback_state, ascii_out); } } ofdm_get_demod_stats(ofdm, &f->stats, rx_syms, Nsymsperpacket); f->snr_est = f->stats.snr_est; } /* complete packet */ if ((ofdm->np == 1) && (ofdm->modem_frame == 0)) { /* add in UW bit errors, useful in non-testframe, single modem frame per packet modes */ for(i=0; iofdm_nuwbits; i++) { if (rx_uw[i] != ofdm->tx_uw[i]) { f->total_bit_errors++; } } f->total_bits += f->ofdm_nuwbits; } } /* iterate state machine and update nin for next call */ f->nin = ofdm_get_nin(ofdm); ofdm_sync_state_machine(ofdm, rx_uw); int print_full = 0; int print_truncated = 0; if (f->verbose && ((rx_status & FREEDV_RX_BITS) || (rx_status & FREEDV_RX_BIT_ERRORS))) print_full = 1; if ((f->verbose == 2) && !((rx_status & FREEDV_RX_BITS) || (rx_status & FREEDV_RX_BIT_ERRORS))) print_truncated = 1; if (print_full) { fprintf(stderr, "%3d nin: %4d st: %-6s euw: %2d %2d mf: %2d f: %5.1f pbw: %d snr: %4.1f eraw: %4d ecdd: %4d iter: %3d " "pcc: %3d rxst: %s\n", f->frames++, ofdm->nin, ofdm_statemode[ofdm->last_sync_state], ofdm->uw_errors, ofdm->sync_counter, ofdm->modem_frame, (double)ofdm->foff_est_hz, ofdm->phase_est_bandwidth, (double)f->snr_est, Nerrs_raw, Nerrs_coded, iter, parityCheckCount, rx_sync_flags_to_text[rx_status]); } if (print_truncated) { fprintf(stderr, "%3d nin: %4d st: %-6s euw: %2d %2d mf: %2d f: %5.1f pbw: %d " " rxst: %s\n", f->frames++, ofdm->nin, ofdm_statemode[ofdm->last_sync_state], ofdm->uw_errors, ofdm->sync_counter, ofdm->modem_frame, (double)ofdm->foff_est_hz, ofdm->phase_est_bandwidth, rx_sync_flags_to_text[rx_status]); } return rx_status; } codec2-1.0.1/src/freedv_api.c000066400000000000000000001542171412132000500157050ustar00rootroot00000000000000/*---------------------------------------------------------------------------*\ FILE........: freedv_api.c AUTHOR......: David Rowe DATE CREATED: August 2014 Library of API functions that implement FreeDV "modes", useful for embedding FreeDV in other programs. Please see: 1. README_freedv.md 2. Notes function use in freedv_api.c 3. The sample freedv_tx.c and freedv_rx.c programs \*---------------------------------------------------------------------------*/ /* Copyright (C) 2014 David Rowe All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 2.1, as published by the Free Software Foundation. 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 Lesser General Public License along with this program; if not, see . */ #include #include #include #include #include #include #include #include "fsk.h" #include "fmfsk.h" #include "codec2.h" #include "codec2_fdmdv.h" #include "fdmdv_internal.h" #include "varicode.h" #include "freedv_api.h" #include "freedv_api_internal.h" #include "freedv_vhf_framing.h" #include "comp_prim.h" #include "codec2_ofdm.h" #include "ofdm_internal.h" #include "mpdecode_core.h" #include "gp_interleaver.h" #include "interldpc.h" #include "debug_alloc.h" #define VERSION 14 /* The API version number. The first version is 10. Increment if the API changes in a way that would require changes by the API user. */ /* * Version 10 Initial version August 2, 2015. * Version 11 September 2015 * Added: freedv_zero_total_bit_errors(), freedv_get_sync() * Changed all input and output sample rates to 8000 sps. Rates for FREEDV_MODE_700 and 700B were 7500. * Version 12 August 2018 * Added OFDM configuration switch structure * Version 13 November 2019 * Removed 700 and 700B modes * Version 14 May 2020 * Number of returned speech samples can vary, use freedv_get_n_max_speech_samples() to allocate * buffers. */ char *ofdm_statemode[] = {"search","trial","synced"}; char *rx_sync_flags_to_text[] = { "----", "---T", "--S-", "--ST", "-B--", "-B-T", "-BS-", "-BST", "E---", "E--T", "E-S-", "E-ST", "EB--", "EB-T", "EBS-", "EBST"}; /*---------------------------------------------------------------------------* \ FUNCTION....: freedv_open AUTHOR......: David Rowe DATE CREATED: 3 August 2014 Call this first to initialise. Returns NULL if initialisation fails. If a malloc() or calloc() fails in general asserts() will fire. \*---------------------------------------------------------------------------*/ struct freedv *freedv_open(int mode) { struct freedv_advanced adv = {0,2,100,8000,1000,200, "H_256_512_4"}; if (mode == FREEDV_MODE_FSK_LDPC) return freedv_open_advanced(mode, &adv); else return freedv_open_advanced(mode, NULL); } struct freedv *freedv_open_advanced(int mode, struct freedv_advanced *adv) { struct freedv *f; assert(FREEDV_PEAK == OFDM_PEAK); assert(FREEDV_VARICODE_MAX_BITS == VARICODE_MAX_BITS); if ((FDV_MODE_ACTIVE( FREEDV_MODE_1600, mode) || FDV_MODE_ACTIVE( FREEDV_MODE_700C, mode) || FDV_MODE_ACTIVE( FREEDV_MODE_700D, mode) || FDV_MODE_ACTIVE( FREEDV_MODE_700E, mode) || FDV_MODE_ACTIVE( FREEDV_MODE_2400A, mode) || FDV_MODE_ACTIVE( FREEDV_MODE_2400B, mode) || FDV_MODE_ACTIVE( FREEDV_MODE_800XA, mode) || FDV_MODE_ACTIVE( FREEDV_MODE_2020, mode) || FDV_MODE_ACTIVE( FREEDV_MODE_FSK_LDPC, mode) || FDV_MODE_ACTIVE( FREEDV_MODE_DATAC0, mode) || FDV_MODE_ACTIVE( FREEDV_MODE_DATAC1, mode) || FDV_MODE_ACTIVE( FREEDV_MODE_DATAC3, mode)) == false) return NULL; /* set everything to zero just in case */ f = (struct freedv*)CALLOC(1, sizeof(struct freedv)); if (f == NULL) return NULL; f->mode = mode; if (FDV_MODE_ACTIVE( FREEDV_MODE_1600, mode)) freedv_1600_open(f); if (FDV_MODE_ACTIVE( FREEDV_MODE_700C, mode)) freedv_700c_open(f); if (FDV_MODE_ACTIVE( FREEDV_MODE_700D, mode)) freedv_ofdm_voice_open(f, "700D"); if (FDV_MODE_ACTIVE( FREEDV_MODE_700E, mode)) freedv_ofdm_voice_open(f, "700E"); #ifdef __LPCNET__ if (FDV_MODE_ACTIVE( FREEDV_MODE_2020, mode)) freedv_2020_open(f); #endif if (FDV_MODE_ACTIVE( FREEDV_MODE_2400A, mode)) freedv_2400a_open(f); if (FDV_MODE_ACTIVE( FREEDV_MODE_2400B, mode)) freedv_2400b_open(f); if (FDV_MODE_ACTIVE( FREEDV_MODE_800XA, mode)) freedv_800xa_open(f); if (FDV_MODE_ACTIVE( FREEDV_MODE_FSK_LDPC, mode)) freedv_fsk_ldpc_open(f, adv); if (FDV_MODE_ACTIVE( FREEDV_MODE_DATAC0, mode)) freedv_ofdm_data_open(f); if (FDV_MODE_ACTIVE( FREEDV_MODE_DATAC1, mode)) freedv_ofdm_data_open(f); if (FDV_MODE_ACTIVE( FREEDV_MODE_DATAC3, mode)) freedv_ofdm_data_open(f); varicode_decode_init(&f->varicode_dec_states, 1); return f; } /*---------------------------------------------------------------------------*\ FUNCTION....: freedv_close AUTHOR......: David Rowe DATE CREATED: 3 August 2014 Call to shut down a freedv instance and free memory. \*---------------------------------------------------------------------------*/ void freedv_close(struct freedv *freedv) { assert(freedv != NULL); FREE(freedv->tx_payload_bits); FREE(freedv->rx_payload_bits); if (freedv->codec2) codec2_destroy(freedv->codec2); if (FDV_MODE_ACTIVE(FREEDV_MODE_1600, freedv->mode)) { FREE(freedv->fdmdv_bits); FREE(freedv->fdmdv_tx_bits); FREE(freedv->fdmdv_rx_bits); fdmdv_destroy(freedv->fdmdv); } if (FDV_MODE_ACTIVE( FREEDV_MODE_700C, freedv->mode)) { cohpsk_destroy(freedv->cohpsk); quisk_filt_destroy(freedv->ptFilter8000to7500); FREE(freedv->ptFilter8000to7500); quisk_filt_destroy(freedv->ptFilter7500to8000); FREE(freedv->ptFilter7500to8000); } if (FDV_MODE_ACTIVE( FREEDV_MODE_700D, freedv->mode) || FDV_MODE_ACTIVE( FREEDV_MODE_700E, freedv->mode)) { FREE(freedv->rx_syms); FREE(freedv->rx_amps); FREE(freedv->ldpc); ofdm_destroy(freedv->ofdm); } if (FDV_MODE_ACTIVE( FREEDV_MODE_2020, freedv->mode)) { FREE(freedv->codeword_symbols); FREE(freedv->codeword_amps); FREE(freedv->ldpc); FREE(freedv->passthrough_2020); ofdm_destroy(freedv->ofdm); #ifdef __LPCNET__ lpcnet_freedv_destroy(freedv->lpcnet); #endif } if (FDV_MODE_ACTIVE( FREEDV_MODE_2400A, freedv->mode) || FDV_MODE_ACTIVE( FREEDV_MODE_800XA, freedv->mode)){ fsk_destroy(freedv->fsk); fvhff_destroy_deframer(freedv->deframer); } if (FDV_MODE_ACTIVE( FREEDV_MODE_2400B, freedv->mode)) { fmfsk_destroy(freedv->fmfsk); fvhff_destroy_deframer(freedv->deframer); } if (FDV_MODE_ACTIVE( FREEDV_MODE_FSK_LDPC, freedv->mode)) { fsk_destroy(freedv->fsk); FREE(freedv->ldpc); FREE(freedv->frame_llr); FREE(freedv->twoframes_llr); FREE(freedv->twoframes_hard); } if (FDV_MODE_ACTIVE( FREEDV_MODE_DATAC0, freedv->mode) || FDV_MODE_ACTIVE( FREEDV_MODE_DATAC1, freedv->mode) || FDV_MODE_ACTIVE( FREEDV_MODE_DATAC3, freedv->mode)) { FREE(freedv->rx_syms); FREE(freedv->rx_amps); FREE(freedv->ldpc); ofdm_destroy(freedv->ofdm); } FREE(freedv); } /* helper function, unpacked bits are much easier to work with inside the modem */ static void codec2_encode_upacked(struct freedv *f, uint8_t unpacked_bits[], short speech_in[]) { int n_packed = (f->bits_per_codec_frame + 7) / 8; uint8_t packed_codec_bits[n_packed]; codec2_encode(f->codec2, packed_codec_bits, speech_in); freedv_unpack(unpacked_bits, packed_codec_bits, f->bits_per_codec_frame); } static int is_ofdm_mode(struct freedv *f) { return FDV_MODE_ACTIVE( FREEDV_MODE_2020, f->mode) || FDV_MODE_ACTIVE( FREEDV_MODE_700D, f->mode) || FDV_MODE_ACTIVE( FREEDV_MODE_700E, f->mode) || FDV_MODE_ACTIVE( FREEDV_MODE_DATAC0, f->mode) || FDV_MODE_ACTIVE( FREEDV_MODE_DATAC1, f->mode) || FDV_MODE_ACTIVE( FREEDV_MODE_DATAC3, f->mode); } static int is_ofdm_data_mode(struct freedv *f) { return FDV_MODE_ACTIVE( FREEDV_MODE_DATAC0, f->mode) || FDV_MODE_ACTIVE( FREEDV_MODE_DATAC1, f->mode) || FDV_MODE_ACTIVE( FREEDV_MODE_DATAC3, f->mode); } /*---------------------------------------------------------------------------*\ FUNCTION....: freedv_tx AUTHOR......: David Rowe DATE CREATED: 3 August 2014 Takes a frame of input speech samples, encodes and modulates them to produce a frame of modem samples that can be sent to the transmitter. See freedv_tx.c for an example. speech_in[] is sampled at freedv_get_speech_sample_rate() Hz, and the user must supply a block of exactly freedv_get_n_speech_samples(). The speech_in[] level should be such that the peak speech level is between +/- 16384 and +/- 32767. The FDM modem signal mod_out[] is sampled at freedv_get_modem_sample_rate() and is always exactly freedv_get_n_nom_modem_samples() long. mod_out[] will be scaled such that the peak level is just less than +/-32767. The FreeDV 1600/700C/700D/2020 waveforms have a crest factor of around 10dB, similar to SSB. These modes are usually operated at a "backoff" of 8dB. Adjust the power amplifier drive so that the average power is 8dB less than the peak power of the PA. For example, on a radio rated at 100W PEP for SSB, the average FreeDV power is typically 20W. Caution - some PAs cannot handle a high continuous power. A conservative level is 20W average for a 100W PEP rated PA. The FreeDV 2400A/800XA modes are constant amplitude, designed for Class C PAs. They have a crest factor of 3dB. If using a SSB PA, adjust the drive so you average power is within the limits of your PA (e.g. 20W average for a 100W PA). \*---------------------------------------------------------------------------*/ /* real-valued short output */ void freedv_tx(struct freedv *f, short mod_out[], short speech_in[]) { assert(f != NULL); COMP tx_fdm[f->n_nom_modem_samples]; int i; /* FSK and MEFSK/FMFSK modems work only on real samples. It's simpler to just * stick them in the real sample tx/rx functions than to add a comp->real converter * to comptx */ if ((FDV_MODE_ACTIVE( FREEDV_MODE_2400A, f->mode)) || (FDV_MODE_ACTIVE( FREEDV_MODE_2400B, f->mode)) || (FDV_MODE_ACTIVE( FREEDV_MODE_800XA, f->mode))){ /* 800XA has two codec frames per modem frame */ if(FDV_MODE_ACTIVE( FREEDV_MODE_800XA, f->mode)){ codec2_encode(f->codec2, &f->tx_payload_bits[0], &speech_in[ 0]); codec2_encode(f->codec2, &f->tx_payload_bits[4], &speech_in[320]); }else{ codec2_encode(f->codec2, f->tx_payload_bits, speech_in); } freedv_tx_fsk_voice(f, mod_out); } else { freedv_comptx(f, tx_fdm, speech_in); for(i=0; in_nom_modem_samples; i++) mod_out[i] = tx_fdm[i].real; } } /* complex float output samples version */ void freedv_comptx(struct freedv *f, COMP mod_out[], short speech_in[]) { assert(f != NULL); assert((FDV_MODE_ACTIVE( FREEDV_MODE_1600, f->mode)) || (FDV_MODE_ACTIVE( FREEDV_MODE_700C, f->mode)) || (FDV_MODE_ACTIVE( FREEDV_MODE_2400A, f->mode)) || (FDV_MODE_ACTIVE( FREEDV_MODE_2400B, f->mode)) || (FDV_MODE_ACTIVE( FREEDV_MODE_700D, f->mode)) || (FDV_MODE_ACTIVE( FREEDV_MODE_2020, f->mode)) || (FDV_MODE_ACTIVE( FREEDV_MODE_700E, f->mode))); if (FDV_MODE_ACTIVE( FREEDV_MODE_1600, f->mode)) { codec2_encode_upacked(f, f->tx_payload_bits, speech_in); freedv_comptx_fdmdv_1600(f, mod_out); } /* all these modes need to pack a bunch of codec frames into one modem frame ... */ if (FDV_MODE_ACTIVE( FREEDV_MODE_700C, f->mode)) { for (int j=0; jn_codec_frames; j++) { codec2_encode_upacked(f, f->tx_payload_bits+j*f->bits_per_codec_frame, speech_in); speech_in += codec2_samples_per_frame(f->codec2); } freedv_comptx_700c(f, mod_out); } if (FDV_MODE_ACTIVE( FREEDV_MODE_700D, f->mode) || FDV_MODE_ACTIVE( FREEDV_MODE_700E, f->mode)) { /* buffer up bits until we get enough encoded bits for interleaver */ for (int j=0; jn_codec_frames; j++) { int offset = j*f->bits_per_codec_frame; codec2_encode_upacked(f, f->tx_payload_bits + offset, speech_in); speech_in += codec2_samples_per_frame(f->codec2); } freedv_comptx_ofdm(f, mod_out); } #ifdef __LPCNET__ if (FDV_MODE_ACTIVE( FREEDV_MODE_2020, f->mode)) { /* buffer up bits until we get enough encoded bits for interleaver */ for (int j=0; jn_codec_frames; j++) { int offset = j*f->bits_per_codec_frame; lpcnet_enc(f->lpcnet, speech_in, (char*)f->tx_payload_bits + offset); speech_in += lpcnet_samples_per_frame(f->lpcnet); } freedv_comptx_2020(f, mod_out); } #endif /* 2400 A and B are handled by the real-mode TX */ if(FDV_MODE_ACTIVE( FREEDV_MODE_2400A, f->mode) || FDV_MODE_ACTIVE( FREEDV_MODE_2400B, f->mode)){ codec2_encode(f->codec2, f->tx_payload_bits, speech_in); freedv_comptx_fsk_voice(f, mod_out); } } /* pack bits */ void freedv_pack(uint8_t *bytes, uint8_t *bits, int nbits) { memset(bytes, 0, (nbits+7)/8); int bit = 7, byte = 0; for(int i=0; i> bit) & 0x1; bit--; if (bit < 0) { bit = 7; byte++; } } } /* compute the CRC16 of a frame of unpacked bits */ unsigned short freedv_crc16_unpacked(unsigned char unpacked_bits[], int nbits) { assert((nbits % 8) == 0); int nbytes = nbits/8; uint8_t packed_bytes[nbytes]; freedv_pack(packed_bytes, unpacked_bits, nbits); return freedv_gen_crc16(packed_bytes, nbytes); } /* Return non-zero if CRC16 of a frame of unpacked bits is correct */ int freedv_check_crc16_unpacked(unsigned char unpacked_bits[], int nbits) { assert((nbits % 8) == 0); int nbytes = nbits/8; uint8_t packed_bytes[nbytes]; freedv_pack(packed_bytes, unpacked_bits, nbits); uint16_t tx_crc16 = (packed_bytes[nbytes-2] << 8) | packed_bytes[nbytes-1]; uint16_t rx_crc16 = freedv_crc16_unpacked(unpacked_bits, nbits - 16); return tx_crc16 == rx_crc16; } /* send raw frames of bytes, or speech data that was compressed externally, complex float output */ void freedv_rawdatacomptx(struct freedv *f, COMP mod_out[], unsigned char *packed_payload_bits) { assert(f != NULL); freedv_unpack(f->tx_payload_bits, packed_payload_bits, f->bits_per_modem_frame); if (FDV_MODE_ACTIVE( FREEDV_MODE_1600, f->mode)) freedv_comptx_fdmdv_1600(f, mod_out); if (FDV_MODE_ACTIVE( FREEDV_MODE_700C, f->mode)) freedv_comptx_700c(f, mod_out); if (FDV_MODE_ACTIVE( FREEDV_MODE_700D, f->mode) || FDV_MODE_ACTIVE( FREEDV_MODE_DATAC0, f->mode) || FDV_MODE_ACTIVE( FREEDV_MODE_DATAC1, f->mode) || FDV_MODE_ACTIVE( FREEDV_MODE_DATAC3, f->mode)) freedv_comptx_ofdm(f, mod_out); if (FDV_MODE_ACTIVE( FREEDV_MODE_FSK_LDPC, f->mode)) { freedv_tx_fsk_ldpc_data(f, mod_out); } } /* send raw frames of bytes, or speech data that was compressed externally, real short output */ void freedv_rawdatatx(struct freedv *f, short mod_out[], unsigned char *packed_payload_bits) { assert(f != NULL); COMP mod_out_comp[f->n_nat_modem_samples]; /* Some FSK modes used packed bits, and coincidentally support real samples natively */ if(FDV_MODE_ACTIVE( FREEDV_MODE_2400A, f->mode) || FDV_MODE_ACTIVE( FREEDV_MODE_2400B, f->mode) || FDV_MODE_ACTIVE( FREEDV_MODE_800XA, f->mode) ) { freedv_codec_frames_from_rawdata(f, f->tx_payload_bits, packed_payload_bits); freedv_tx_fsk_voice(f, mod_out); return; /* output is already real */ } freedv_rawdatacomptx(f, mod_out_comp, packed_payload_bits); /* convert complex to real */ for(int i=0; in_nat_modem_samples; i++) mod_out[i] = mod_out_comp[i].real; } int freedv_rawdatapreamblecomptx(struct freedv *f, COMP mod_out[]) { assert(f != NULL); int npreamble_samples = 0; if (f->mode == FREEDV_MODE_FSK_LDPC) { struct FSK *fsk = f->fsk; int npreamble_symbols = 50*(fsk->mode>>1); int npreamble_bits = npreamble_symbols*(fsk->mode>>1); npreamble_samples = fsk->Ts*npreamble_symbols; //fprintf(stderr, "npreamble_symbols: %d npreamble_bits: %d npreamble_samples: %d Nbits: %d N: %d\n", //npreamble_symbols, npreamble_bits, npreamble_samples, fsk->Nbits, fsk->N); assert(npreamble_samples < f->n_nom_modem_samples); /* caller probably using an array of this size */ freedv_tx_fsk_ldpc_data_preamble(f, mod_out, npreamble_bits, npreamble_samples); } else if (is_ofdm_data_mode(f)) { struct OFDM *ofdm = f->ofdm; complex float *tx_preamble = (complex float*)mod_out; memcpy(tx_preamble, ofdm->tx_preamble, sizeof(COMP)*ofdm->samplesperframe); ofdm_hilbert_clipper(ofdm, tx_preamble, ofdm->samplesperframe); npreamble_samples = ofdm->samplesperframe; } return npreamble_samples; } int freedv_rawdatapreambletx(struct freedv *f, short mod_out[]) { assert(f != NULL); COMP mod_out_comp[f->n_nat_modem_samples]; int npreamble_samples = freedv_rawdatapreamblecomptx(f, mod_out_comp); assert(npreamble_samples <= f->n_nat_modem_samples); /* convert complex to real */ for(int i=0; iofdm; complex float *tx_postamble = (complex float*)mod_out; memcpy(tx_postamble, ofdm->tx_postamble, sizeof(COMP)*ofdm->samplesperframe); ofdm_hilbert_clipper(ofdm, tx_postamble, ofdm->samplesperframe); npostamble_samples = ofdm->samplesperframe; } return npostamble_samples; } int freedv_rawdatapostambletx(struct freedv *f, short mod_out[]) { assert(f != NULL); COMP mod_out_comp[f->n_nat_modem_samples]; int npostamble_samples = freedv_rawdatapostamblecomptx(f, mod_out_comp); assert(npostamble_samples <= f->n_nat_modem_samples); /* convert complex to real */ for(int i=0; imode) || FDV_MODE_ACTIVE( FREEDV_MODE_2400B, f->mode) || FDV_MODE_ACTIVE( FREEDV_MODE_800XA, f->mode)) { freedv_tx_fsk_data(f, mod_out); } } /* VHF packet data: returns how many tx frames are queued up but not sent yet */ int freedv_data_ntxframes (struct freedv *f) { assert(f != NULL); if (FDV_MODE_ACTIVE( FREEDV_MODE_2400A, f->mode) || FDV_MODE_ACTIVE( FREEDV_MODE_2400B, f->mode)) { if (f->deframer->fdc) return freedv_data_get_n_tx_frames(f->deframer->fdc, 8); } else if (FDV_MODE_ACTIVE( FREEDV_MODE_800XA, f->mode)) { if (f->deframer->fdc) return freedv_data_get_n_tx_frames(f->deframer->fdc, 6); } return 0; } int freedv_nin(struct freedv *f) { if (FDV_MODE_ACTIVE( FREEDV_MODE_700C, f->mode)) // For mode 700C, the input rate is 8000 sps, but the modem rate is 7500 sps // For mode 700C, we request a larger number of Rx samples that will be decimated to f->nin samples return (16 * f->nin + f->ptFilter8000to7500->decim_index) / 15; else return f->nin; } int freedv_codec_frames_from_rawdata(struct freedv *f, unsigned char *codec_frames, unsigned char *rawdata) { int cbit = 7; int cbyte = 0; int rbit = 7; int rbyte = 0; int modem_bits = freedv_get_bits_per_modem_frame(f); int codec_bits = freedv_get_bits_per_codec_frame(f); int nr_cbits = 0; int i; codec_frames[0] = 0; for (i = 0; i < modem_bits; i++) { codec_frames[cbyte] |= ((rawdata[rbyte] >> rbit) & 1) << cbit; rbit--; if (rbit < 0) { rbit = 7; rbyte++; } cbit--; if (cbit < 0) { cbit = 7; cbyte++; codec_frames[cbyte] = 0; } nr_cbits++; if (nr_cbits == codec_bits) { if (cbit) { cbyte++; codec_frames[cbyte] = 0; } cbit = 7; nr_cbits = 0; } } return f->n_codec_frames; } int freedv_rawdata_from_codec_frames(struct freedv *f, unsigned char *rawdata, unsigned char *codec_frames) { int cbit = 7; int cbyte = 0; int rbit = 7; int rbyte = 0; int modem_bits = freedv_get_bits_per_modem_frame(f); int codec_bits = freedv_get_bits_per_codec_frame(f); int nr_cbits = 0; int i; rawdata[rbyte] = 0; for (i = 0; i < modem_bits; i++) { rawdata[rbyte] |= ((codec_frames[cbyte] >> cbit) & 1) << rbit; rbit--; if (rbit < 0) { rbit = 7; rbyte++; rawdata[rbyte] = 0; } cbit--; if (cbit < 0) { cbit = 7; cbyte++; } nr_cbits++; if (nr_cbits == codec_bits) { if (cbit) cbyte++; cbit = 7; nr_cbits = 0; } } return f->n_codec_frames; } /*---------------------------------------------------------------------------*\ FUNCTION....: freedv_rx AUTHOR......: David Rowe DATE CREATED: 3 August 2014 Takes samples from the radio receiver, demodulates and FEC decodes them, producing a frame of decoded speech samples. See freedv_rx.c for an example. demod_in[] is a block of received samples sampled at freedv_get_modem_sample_rate(). To account for difference in the transmit and receive sample clock frequencies, the number of demod_in[] samples is time varying. You MUST call freedv_nin() BEFORE EACH call to freedv_rx() and pass exactly that many samples to this function: short demod_in[freedv_get_n_max_modem_samples(f)]; short speech_out[freedv_get_n_max_speech_samples(f)]; nin = freedv_nin(f); while(fread(demod_in, sizeof(short), nin, fin) == nin) { nout = freedv_rx(f, speech_out, demod_in); fwrite(speech_out, sizeof(short), nout, fout); nin = freedv_nin(f); } To help set your buffer sizes, The maximum value of freedv_nin() is freedv_get_n_max_modem_samples(). freedv_rx() returns the number of output speech samples available in speech_out[], which is sampled at freedv_get_speech_sample_rate(f). You should ALWAYS check the return value of freedv_rx(), and read EXACTLY that number of speech samples from speech_out[]. Not every call to freedv_rx will return speech samples; in some modes several modem frames are processed before speech samples are returned. When squelch is active, zero samples may be returned. 1600 and 700D mode: When out of sync, the number of output speech samples returned will be freedv_nin(). When in sync to a valid FreeDV 1600 signal, the number of output speech samples will alternate between freedv_get_n_speech_samples() and 0. The peak level of demod_in[] is not critical, as the demod works well over a wide range of amplitude scaling. However avoid clipping (overload, or samples pinned to +/- 32767). speech_out[] will peak at just less than +/-32767. When squelch is disabled, this function echoes the demod_in[] samples to speech_out[]. This allows the user to listen to the channel, which is useful for tuning FreeDV signals or reception of non-FreeDV signals. \*---------------------------------------------------------------------------*/ int freedv_rx(struct freedv *f, short speech_out[], short demod_in[]) { assert(f != NULL); int i; int nin = freedv_nin(f); f->nin_prev = nin; assert(nin <= f->n_max_modem_samples); /* FSK RX happens in real floats, so convert to those and call their demod here */ if( (FDV_MODE_ACTIVE( FREEDV_MODE_2400A, f->mode)) || (FDV_MODE_ACTIVE( FREEDV_MODE_2400B, f->mode)) || (FDV_MODE_ACTIVE( FREEDV_MODE_800XA, f->mode)) ){ float rx_float[f->n_max_modem_samples]; for(i=0; imode)) || (FDV_MODE_ACTIVE( FREEDV_MODE_700C, f->mode)) || (FDV_MODE_ACTIVE( FREEDV_MODE_2020, f->mode))) { float gain = 1.0f; assert(nin <= f->n_max_modem_samples); COMP rx_fdm[f->n_max_modem_samples]; for(i=0; imode) || FDV_MODE_ACTIVE( FREEDV_MODE_700E, f->mode)) { float gain = 2.0f; /* keep levels the same as Octave simulations and C unit tests for real signals */ return freedv_shortrx(f, speech_out, demod_in, gain); } assert(1); /* should never get here */ return 0; } /* complex sample input version from the radio */ int freedv_comprx(struct freedv *f, short speech_out[], COMP demod_in[]) { assert(f != NULL); assert(f->nin <= f->n_max_modem_samples); int rx_status = 0; f->nin_prev = freedv_nin(f); if (FDV_MODE_ACTIVE( FREEDV_MODE_1600, f->mode)) { rx_status = freedv_comprx_fdmdv_1600(f, demod_in); } if (FDV_MODE_ACTIVE( FREEDV_MODE_700C, f->mode)) { rx_status = freedv_comprx_700c(f, demod_in); } if( (FDV_MODE_ACTIVE( FREEDV_MODE_2400A, f->mode)) || (FDV_MODE_ACTIVE( FREEDV_MODE_2400B, f->mode)) || (FDV_MODE_ACTIVE( FREEDV_MODE_800XA, f->mode))) { rx_status = freedv_comprx_fsk(f, demod_in); } if (FDV_MODE_ACTIVE( FREEDV_MODE_700D, f->mode) || FDV_MODE_ACTIVE( FREEDV_MODE_700E, f->mode)) { rx_status = freedv_comp_short_rx_ofdm(f, (void*)demod_in, 0, 2.0f); // was 1.0 ?? } if (FDV_MODE_ACTIVE( FREEDV_MODE_2020, f->mode)) { #ifdef __LPCNET__ rx_status = freedv_comprx_2020(f, demod_in); #endif } short demod_in_short[f->nin_prev]; for(int i=0; inin_prev; i++) demod_in_short[i] = demod_in[i].real; return freedv_bits_to_speech(f, speech_out, demod_in_short, rx_status); } /* memory efficient real short version - just for 700D on the SM1000 */ int freedv_shortrx(struct freedv *f, short speech_out[], short demod_in[], float gain) { assert(f != NULL); int rx_status = 0; f->nin_prev = f->nin; // At this stage short interface only supported for 700D, to help // memory requirements on stm32 assert((f->mode == FREEDV_MODE_700D) || (f->mode == FREEDV_MODE_700E)); assert(f->nin <= f->n_max_modem_samples); if (FDV_MODE_ACTIVE( FREEDV_MODE_700D, f->mode) || FDV_MODE_ACTIVE( FREEDV_MODE_700E, f->mode)) { rx_status = freedv_comp_short_rx_ofdm(f, (void*)demod_in, 1, gain); } return freedv_bits_to_speech(f, speech_out, demod_in, rx_status); } /* helper function, unpacked bits are much easier to work with inside the modem */ static void codec2_decode_upacked(struct freedv *f, short speech_out[], uint8_t unpacked_bits[]) { int n_packed = (f->bits_per_codec_frame + 7) / 8; uint8_t packed_codec_bits[n_packed]; freedv_pack(packed_codec_bits, unpacked_bits, f->bits_per_codec_frame); codec2_decode(f->codec2, speech_out, packed_codec_bits); } /*---------------------------------------------------------------------------* \ FUNCTION....: freedv_rx_bits_to_speech AUTHOR......: David Rowe DATE CREATED: May 2020 The *_rx functions takes off air samples, demodulates and (for some modes) FEC decodes, giving us a frame of bits. This function captures a lot of tricky logic that has been distilled through experience: There may not be a frame of bits returned on every call freedv_*rx* call. When there are valid bits we need to run the speech decoder. We may not have demod sync, so various pass through options may happen with the input samples. We may squelch based on SNR. Need to handle various codecs, and varying number of codec frames per modem frame Squelch audio if test frames are being sent Determine how many speech samples to return, which will vary if in sync/out of sync Work with real and complex inputs (complex wrapper) Attenuate audio on pass through Deal with 700D first frame burble, and different sync states from OFDM modes like 700D Output no samples if squelched, we assume it's OK for the audio sink to run dry A FIFO required on output to smooth sample flow to audio sink Don't decode when we are sending test frames \*---------------------------------------------------------------------------*/ int freedv_bits_to_speech(struct freedv *f, short speech_out[], short demod_in[], int rx_status) { int nout = 0; int decode_speech = 0; if ((rx_status & FREEDV_RX_SYNC) == 0) { if (f->squelch_en == 0) { /* pass through received samples so we can hear what's going on, e.g. during tuning */ if (f->mode == FREEDV_MODE_2020) { /* 8kHz modem sample rate but 16 kHz speech sample rate, so we need to resample */ nout = 2*f->nin_prev; assert(nout <= freedv_get_n_max_speech_samples(f)); float tmp[nout]; for(int i=0; ipassthrough_2020[FDMDV_OS_TAPS_16K+i] = demod_in[i]; fdmdv_8_to_16(tmp, &f->passthrough_2020[FDMDV_OS_TAPS_16K], nout/2); for(int i=0; ipassthrough_gain*tmp[i]; } else { /* Speech and modem rates might be different */ int rate_factor = f->modem_sample_rate / f-> speech_sample_rate; nout = f->nin_prev / rate_factor; for(int i=0; ipassthrough_gain*demod_in[i * rate_factor]; } } } if ((rx_status & FREEDV_RX_SYNC) && (rx_status & FREEDV_RX_BITS) && !f->test_frames) { /* following logic is tricky so spell it out clearly, see table in: https://github.com/drowe67/codec2/pull/111 */ if (f->squelch_en == 0) { decode_speech = 1; } else { /* squelch is enabled */ /* anti-burble case - don't decode on trial sync unless the frame has no bit errors. This prevents short lived trial sync cases generating random bursts of audio */ if (rx_status & FREEDV_RX_TRIAL_SYNC) { if ((rx_status & FREEDV_RX_BIT_ERRORS) == 0) decode_speech = 1; } else { /* sync is solid - decode even through fades as there is still some speech info there */ if (f->snr_est > f->snr_squelch_thresh) decode_speech = 1; } } } if (decode_speech) { if(FDV_MODE_ACTIVE( FREEDV_MODE_2020, f->mode)) { #ifdef __LPCNET__ /* LPCNet decoder */ int bits_per_codec_frame = lpcnet_bits_per_frame(f->lpcnet); int data_bits_per_frame = f->ldpc->data_bits_per_frame; int frames = data_bits_per_frame/bits_per_codec_frame; nout = f->n_speech_samples; for (int i = 0; i < frames; i++) { lpcnet_dec(f->lpcnet, (char*) f->rx_payload_bits + i*bits_per_codec_frame, speech_out); speech_out += lpcnet_samples_per_frame(f->lpcnet); } #endif } else { /* codec 2 decoder */ if(FDV_MODE_ACTIVE( FREEDV_MODE_700D, f->mode) || FDV_MODE_ACTIVE( FREEDV_MODE_700E, f->mode)) { nout = f->n_speech_samples; for (int i = 0; i < f->n_codec_frames; i++) { codec2_decode_upacked(f, speech_out, f->rx_payload_bits + i*f->bits_per_codec_frame); speech_out += codec2_samples_per_frame(f->codec2); } } else { /* non-interleaved Codec 2 modes */ nout = f->n_speech_samples; if ( (FDV_MODE_ACTIVE( FREEDV_MODE_2400A, f->mode)) || (FDV_MODE_ACTIVE( FREEDV_MODE_2400B, f->mode))) codec2_decode(f->codec2, speech_out, f->rx_payload_bits); else if (FDV_MODE_ACTIVE( FREEDV_MODE_800XA, f->mode)) { codec2_decode(f->codec2, &speech_out[ 0], &f->rx_payload_bits[0]); codec2_decode(f->codec2, &speech_out[320], &f->rx_payload_bits[4]); } else { for (int i = 0; i n_codec_frames; i++) { codec2_decode_upacked(f, speech_out, f->rx_payload_bits + i*f->bits_per_codec_frame); speech_out += codec2_samples_per_frame(f->codec2); } } } } } if (f->verbose == 3) { fprintf(stderr, " sqen: %d nout: %d decsp: %d\n", f->squelch_en, nout, decode_speech); } f->rx_status= rx_status; assert(nout <= freedv_get_n_max_speech_samples(f)); return nout; } /* a way to receive raw frames of bytes, or speech data that will be decompressed externally */ int freedv_rawdatarx(struct freedv *f, unsigned char *packed_payload_bits, short demod_in[]) { assert(f != NULL); int nin = freedv_nin(f); assert(nin <= f->n_max_modem_samples); COMP demod_in_comp[f->n_max_modem_samples]; for(int i=0; imode) || FDV_MODE_ACTIVE( FREEDV_MODE_2400B, f->mode) || FDV_MODE_ACTIVE( FREEDV_MODE_800XA, f->mode)){ rx_status = freedv_comprx_fsk(f, demod_in); f->rx_status = rx_status; if (rx_status & FREEDV_RX_BITS) { ret = (freedv_get_bits_per_modem_frame(f) + 7) / 8; freedv_rawdata_from_codec_frames(f, packed_payload_bits, f->rx_payload_bits); } return ret; } if (FDV_MODE_ACTIVE( FREEDV_MODE_1600, f->mode)) rx_status = freedv_comprx_fdmdv_1600(f, demod_in); if (FDV_MODE_ACTIVE( FREEDV_MODE_700C, f->mode)) rx_status = freedv_comprx_700c(f, demod_in); if (FDV_MODE_ACTIVE( FREEDV_MODE_700D, f->mode) || FDV_MODE_ACTIVE( FREEDV_MODE_DATAC0, f->mode) || FDV_MODE_ACTIVE( FREEDV_MODE_DATAC1, f->mode) || FDV_MODE_ACTIVE( FREEDV_MODE_DATAC3, f->mode)) rx_status = freedv_comp_short_rx_ofdm(f, (void*)demod_in, 0, 1.0f); if (FDV_MODE_ACTIVE( FREEDV_MODE_FSK_LDPC, f->mode)) { rx_status = freedv_rx_fsk_ldpc_data(f, demod_in); } if (rx_status & FREEDV_RX_BITS) { ret = (f->bits_per_modem_frame+7)/8; freedv_pack(packed_payload_bits, f->rx_payload_bits, f->bits_per_modem_frame); } /* might want to check this for errors, e.g. if reliable data is important */ f->rx_status= rx_status; return ret; } /*---------------------------------------------------------------------------* \ FUNCTION....: freedv_get_version AUTHOR......: Jim Ahlstrom DATE CREATED: 28 July 2015 Return the version of the FreeDV API. This is meant to help API users determine when incompatible changes have occurred. \*---------------------------------------------------------------------------*/ int freedv_get_version(void) { return VERSION; } /*---------------------------------------------------------------------------* \ FUNCTION....: freedv_get_hash AUTHOR......: David Rowe DATE CREATED: July 2020 Return the a string with the Git hash of the repo used to build this code. \*---------------------------------------------------------------------------*/ static char git_hash[] = GIT_HASH; char *freedv_get_hash(void) { return git_hash; } /*---------------------------------------------------------------------------*\ FUNCTION....: freedv_set_callback_txt AUTHOR......: Jim Ahlstrom DATE CREATED: 28 July 2015 Set the callback functions and the callback state pointer that will be used for the aux txt channel. The freedv_callback_rx is a function pointer that will be called to return received characters. The freedv_callback_tx is a function pointer that will be called to send transmitted characters. The callback state is a user-defined void pointer that will be passed to the callback functions. Any or all can be NULL, and the default is all NULL. The function signatures are: void receive_char(void *callback_state, char c); char transmit_char(void *callback_state); \*---------------------------------------------------------------------------*/ void freedv_set_callback_txt(struct freedv *f, freedv_callback_rx rx, freedv_callback_tx tx, void *state) { if (FDV_MODE_ACTIVE( FREEDV_MODE_800XA, f->mode) == false) { f->freedv_put_next_rx_char = rx; f->freedv_get_next_tx_char = tx; f->callback_state = state; } } /*---------------------------------------------------------------------------*\ FUNCTION....: freedv_set_callback_txt_sym AUTHOR......: Mooneer Salem DATE CREATED: 19 August 2021 Set the callback functions and the callback state pointer that will be used to provide the raw symbols for the aux txt channel. The freedv_callback_rx_sym is a function pointer that will be called to return received symbols. The callback state is a user-defined void pointer that will be passed to the callback function. Any or all can be NULL, and the default is all NULL. The function signature is: void receive_sym(void *callback_state, COMP sym, COMP amp); Note: Active for OFDM modes only (700D/E, 2020). \*---------------------------------------------------------------------------*/ void freedv_set_callback_txt_sym(struct freedv *f, freedv_callback_rx_sym rx, void *state) { if (FDV_MODE_ACTIVE( FREEDV_MODE_700D, f->mode ) || FDV_MODE_ACTIVE( FREEDV_MODE_700E, f->mode ) || FDV_MODE_ACTIVE( FREEDV_MODE_2020, f->mode ) ) { f->freedv_put_next_rx_symbol = rx; f->callback_state_sym = state; } } /*---------------------------------------------------------------------------*\ FUNCTION....: freedv_set_callback_protocol AUTHOR......: Brady OBrien DATE CREATED: 21 February 2016 VHF packet data function. Set the callback functions and callback pointer that will be used for the protocol data channel. freedv_callback_protorx will be called when a frame containing protocol data arrives. freedv_callback_prototx will be called when a frame containing protocol information is being generated. Protocol information is intended to be used to develop protocols and fancy features atop VHF freedv, much like those present in DMR. Protocol bits are to be passed in an msb-first char array The number of protocol bits are findable with freedv_get_protocol_bits \*---------------------------------------------------------------------------*/ void freedv_set_callback_protocol(struct freedv *f, freedv_callback_protorx rx, freedv_callback_prototx tx, void *callback_state){ if (FDV_MODE_ACTIVE( FREEDV_MODE_800XA, f->mode) == false) { f->freedv_put_next_proto = rx; f->freedv_get_next_proto = tx; f->proto_callback_state = callback_state; } } /*---------------------------------------------------------------------------*\ FUNCTION....: freedv_set_callback_datarx / freedv_set_callback_datatx AUTHOR......: Jeroen Vreeken DATE CREATED: 04 March 2016 VHF packet data function. Set the callback functions and callback pointer that will be used for the data channel. freedv_callback_datarx will be called when a packet has been successfully received. freedv_callback_data_tx will be called when transmission of a new packet can begin. If the returned size of the datatx callback is zero the data frame is still generated, but will contain only a header update. \*---------------------------------------------------------------------------*/ void freedv_set_callback_data(struct freedv *f, freedv_callback_datarx datarx, freedv_callback_datatx datatx, void *callback_state) { if ((FDV_MODE_ACTIVE( FREEDV_MODE_2400A, f->mode)) || (FDV_MODE_ACTIVE( FREEDV_MODE_2400B, f->mode)) || (FDV_MODE_ACTIVE( FREEDV_MODE_800XA, f->mode))){ if (!f->deframer->fdc) f->deframer->fdc = freedv_data_channel_create(); if (!f->deframer->fdc) return; freedv_data_set_cb_rx(f->deframer->fdc, datarx, callback_state); freedv_data_set_cb_tx(f->deframer->fdc, datatx, callback_state); } } /*---------------------------------------------------------------------------*\ FUNCTION....: freedv_set_data_header AUTHOR......: Jeroen Vreeken DATE CREATED: 04 March 2016 VHF packet data function. Set the data header for the data channel. Header compression will be used whenever packets from this header are sent. The header will also be used for fill packets when a data frame is requested without a packet available. \*---------------------------------------------------------------------------*/ void freedv_set_data_header(struct freedv *f, unsigned char *header) { if ((FDV_MODE_ACTIVE( FREEDV_MODE_2400A, f->mode)) || (FDV_MODE_ACTIVE( FREEDV_MODE_2400B, f->mode)) || (FDV_MODE_ACTIVE( FREEDV_MODE_800XA, f->mode))){ if (!f->deframer->fdc) f->deframer->fdc = freedv_data_channel_create(); if (!f->deframer->fdc) return; freedv_data_set_header(f->deframer->fdc, header); } } /*---------------------------------------------------------------------------*\ FUNCTION....: freedv_get_modem_stats AUTHOR......: Jim Ahlstrom DATE CREATED: 28 July 2015 Return data from the modem. The arguments are pointers to the data items. The pointers can be NULL if the data item is not wanted. \*---------------------------------------------------------------------------*/ void freedv_get_modem_stats(struct freedv *f, int *sync, float *snr_est) { if (FDV_MODE_ACTIVE( FREEDV_MODE_1600, f->mode)) fdmdv_get_demod_stats(f->fdmdv, &f->stats); if (FDV_MODE_ACTIVE( FREEDV_MODE_700C, f->mode)) cohpsk_get_demod_stats(f->cohpsk, &f->stats); if (sync) *sync = f->sync; if (snr_est) *snr_est = f->snr_est; } /*---------------------------------------------------------------------------*\ FUNCTIONS...: freedv_set_* AUTHOR......: Jim Ahlstrom DATE CREATED: 28 July 2015 Set some parameters used by FreeDV. It is possible to write a macro using ## for this, but I wasn't sure it would be 100% portable. \*---------------------------------------------------------------------------*/ void freedv_set_test_frames (struct freedv *f, int val) {f->test_frames = val;} void freedv_set_test_frames_diversity (struct freedv *f, int val) {f->test_frames_diversity = val;} void freedv_set_squelch_en (struct freedv *f, int val) {f->squelch_en = val;} void freedv_set_total_bit_errors (struct freedv *f, int val) {f->total_bit_errors = val;} void freedv_set_total_bits (struct freedv *f, int val) {f->total_bits = val;} void freedv_set_total_bit_errors_coded (struct freedv *f, int val) {f->total_bit_errors_coded = val;} void freedv_set_total_bits_coded (struct freedv *f, int val) {f->total_bits_coded = val;} void freedv_set_total_packet_errors (struct freedv *f, int val) {f->total_packet_errors = val;} void freedv_set_total_packets (struct freedv *f, int val) {f->total_packets = val;} void freedv_set_varicode_code_num (struct freedv *f, int val) {varicode_set_code_num(&f->varicode_dec_states, val);} void freedv_set_ext_vco (struct freedv *f, int val) {f->ext_vco = val;} void freedv_set_snr_squelch_thresh (struct freedv *f, float val) {f->snr_squelch_thresh = val;} void freedv_set_tx_amp (struct freedv *f, float amp) {f->tx_amp = amp;} void freedv_passthrough_gain (struct freedv *f, float g) {f->passthrough_gain = g;} /* supported by 700C, 700D, 700E */ void freedv_set_clip(struct freedv *f, int val) { f->clip_en = val; if (FDV_MODE_ACTIVE( FREEDV_MODE_700D, f->mode) || FDV_MODE_ACTIVE( FREEDV_MODE_700E, f->mode) || FDV_MODE_ACTIVE( FREEDV_MODE_DATAC0, f->mode) || FDV_MODE_ACTIVE( FREEDV_MODE_DATAC3, f->mode)) { f->ofdm->clip_en = val; /* really should have BPF if we clip */ if (val) ofdm_set_tx_bpf(f->ofdm, true); } } /* Band Pass Filter to cleanup OFDM tx waveform, only supported by some modes */ void freedv_set_tx_bpf(struct freedv *f, int val) { if (FDV_MODE_ACTIVE( FREEDV_MODE_700D, f->mode) || FDV_MODE_ACTIVE( FREEDV_MODE_700E, f->mode) || FDV_MODE_ACTIVE( FREEDV_MODE_DATAC0, f->mode) || FDV_MODE_ACTIVE( FREEDV_MODE_DATAC3, f->mode)) { ofdm_set_tx_bpf(f->ofdm, val); } } /* DPSK option for OFDM modem, useful for high SNR, fast fading */ void freedv_set_dpsk(struct freedv *f, int val) { if (FDV_MODE_ACTIVE( FREEDV_MODE_700D, f->mode) || FDV_MODE_ACTIVE( FREEDV_MODE_2020, f->mode)) { ofdm_set_dpsk(f->ofdm, val); } } void freedv_set_phase_est_bandwidth_mode(struct freedv *f, int val) { if (FDV_MODE_ACTIVE( FREEDV_MODE_700D, f->mode) || FDV_MODE_ACTIVE( FREEDV_MODE_2020, f->mode)) { ofdm_set_phase_est_bandwidth_mode(f->ofdm, val); } } // For those FreeDV modes using the codec 2 700C vocoder 700C/D/E/800XA void freedv_set_eq(struct freedv *f, int val) { if (f->codec2 != NULL) { codec2_700c_eq(f->codec2, val); } } void freedv_set_verbose(struct freedv *f, int verbosity) { f->verbose = verbosity; if (FDV_MODE_ACTIVE( FREEDV_MODE_700C, f->mode)) { cohpsk_set_verbose(f->cohpsk, f->verbose); } if (is_ofdm_mode(f)) { ofdm_set_verbose(f->ofdm, f->verbose-1); } } void freedv_set_callback_error_pattern(struct freedv *f, freedv_calback_error_pattern cb, void *state) { f->freedv_put_error_pattern = cb; f->error_pattern_callback_state = state; } void freedv_set_carrier_ampl(struct freedv *f, int c, float ampl) { if (FDV_MODE_ACTIVE( FREEDV_MODE_700C, f->mode)) { cohpsk_set_carrier_ampl(f->cohpsk, c, ampl); } } /*---------------------------------------------------------------------------* \ FUNCTIONS...: freedv_set_sync AUTHOR......: David Rowe DATE CREATED: May 2018 Extended control of sync state machines for OFDM modes. Ensure this is called in the same thread as freedv_rx(). \*---------------------------------------------------------------------------*/ void freedv_set_sync(struct freedv *freedv, int sync_cmd) { assert (freedv != NULL); if (freedv->ofdm != NULL) { ofdm_set_sync(freedv->ofdm, sync_cmd); } } // this also selects burst mode void freedv_set_frames_per_burst(struct freedv *freedv, int framesperburst) { assert (freedv != NULL); if (freedv->ofdm != NULL) { // change of nomenclature as we cross into the OFDM modem layer. In the // OFDM modem we have packets that contain multiple "modem frames" ofdm_set_packets_per_burst(freedv->ofdm, framesperburst); } } struct FSK * freedv_get_fsk(struct freedv *f){ return f->fsk; } /*---------------------------------------------------------------------------*\ FUNCTIONS...: freedv_get_* AUTHOR......: Jim Ahlstrom DATE CREATED: 28 July 2015 Get some parameters from FreeDV. \*---------------------------------------------------------------------------*/ int freedv_get_protocol_bits (struct freedv *f) {return f->n_protocol_bits;} int freedv_get_mode (struct freedv *f) {return f->mode;} int freedv_get_test_frames (struct freedv *f) {return f->test_frames;} int freedv_get_speech_sample_rate (struct freedv *f) {return f-> speech_sample_rate;} int freedv_get_n_speech_samples (struct freedv *f) {return f->n_speech_samples;} int freedv_get_modem_sample_rate (struct freedv *f) {return f->modem_sample_rate;} int freedv_get_modem_symbol_rate (struct freedv *f) {return f->modem_symbol_rate;} int freedv_get_n_max_modem_samples (struct freedv *f) {return f->n_max_modem_samples;} int freedv_get_n_nom_modem_samples (struct freedv *f) {return f->n_nom_modem_samples;} int freedv_get_n_tx_modem_samples (struct freedv *f) {return f->n_nat_modem_samples;} int freedv_get_total_bits (struct freedv *f) {return f->total_bits;} int freedv_get_total_bit_errors (struct freedv *f) {return f->total_bit_errors;} int freedv_get_total_bits_coded (struct freedv *f) {return f->total_bits_coded;} int freedv_get_total_bit_errors_coded (struct freedv *f) {return f->total_bit_errors_coded;} int freedv_get_total_packets (struct freedv *f) {return f->total_packets;} int freedv_get_total_packet_errors (struct freedv *f) {return f->total_packet_errors;} int freedv_get_sync (struct freedv *f) {return f->sync;} struct CODEC2 *freedv_get_codec2 (struct freedv *f) {return f->codec2;} int freedv_get_bits_per_codec_frame (struct freedv *f) {return f->bits_per_codec_frame;} int freedv_get_bits_per_modem_frame (struct freedv *f) {return f->bits_per_modem_frame;} int freedv_get_rx_status (struct freedv *f) {return f->rx_status;} void freedv_get_fsk_S_and_N (struct freedv *f, float *S, float *N) { *S = f->fsk_S[0]; *N = f->fsk_N[0]; } int freedv_get_n_max_speech_samples(struct freedv *f) { /* When "passing through" demod samples to the speech output (e.g. no sync and squelch off) f->nin bounces around with timing variations. So we may return freedv_get_n_max_modem_samples() via the speech_output[] array */ int max_output_passthrough_samples; if (FDV_MODE_ACTIVE(FREEDV_MODE_2020, f->mode)) // In 2020 we oversample the input modem samples from 8->16 kHz max_output_passthrough_samples = 2*freedv_get_n_max_modem_samples(f); else max_output_passthrough_samples = freedv_get_n_max_modem_samples(f); if (max_output_passthrough_samples > f->n_speech_samples) return max_output_passthrough_samples; else return f->n_speech_samples; } // Now dummy obsolete call int freedv_get_sync_interleaver(struct freedv *f) { return 1; } int freedv_get_sz_error_pattern(struct freedv *f) { if (FDV_MODE_ACTIVE( FREEDV_MODE_700C, f->mode)) { /* if diversity disabled callback sends error pattern for upper and lower carriers */ return f->sz_error_pattern * (2 - f->test_frames_diversity); } else { return f->sz_error_pattern; } } // Get modem status, scatter/eye diagram for plotting, other goodies void freedv_get_modem_extended_stats(struct freedv *f, struct MODEM_STATS *stats) { if (FDV_MODE_ACTIVE( FREEDV_MODE_1600, f->mode)) fdmdv_get_demod_stats(f->fdmdv, stats); if (FDV_MODE_ACTIVE( FREEDV_MODE_2400A, f->mode) || FDV_MODE_ACTIVE( FREEDV_MODE_800XA, f->mode)) { fsk_get_demod_stats(f->fsk, stats); /* eye diagram samples, clock offset etc */ stats->snr_est = f->snr_est; /* estimated when fsk_demod() called in freedv_fsk.c */ stats->sync = f->sync; /* sync indicator comes from framing layer */ } if (FDV_MODE_ACTIVE( FREEDV_MODE_2400B, f->mode)) { fmfsk_get_demod_stats(f->fmfsk, stats); stats->snr_est = f->snr_est; stats->sync = f->sync; } if (FDV_MODE_ACTIVE( FREEDV_MODE_700C, f->mode)) { cohpsk_get_demod_stats(f->cohpsk, stats); } if (is_ofdm_mode(f)) { // OFDM modem stats updated when demod runs, so copy last update // We need to avoid over writing the FFT states which are updated by a different function // TODO we need a better design here: Issue #182 #ifndef __EMBEDDED__ size_t ncopy = (void*)stats->rx_eye - (void*)stats; memcpy(stats, &f->stats, ncopy); #endif stats->snr_est = f->snr_est; stats->sync = f->sync; } } int freedv_get_n_tx_preamble_modem_samples(struct freedv *f) { if (f->mode == FREEDV_MODE_FSK_LDPC) { struct FSK *fsk = f->fsk; int npreamble_symbols = 50*(fsk->mode>>1); return fsk->Ts*npreamble_symbols; } else if (is_ofdm_data_mode(f)) { return f->ofdm->samplesperframe; } return 0; } int freedv_get_n_tx_postamble_modem_samples(struct freedv *f) { if (is_ofdm_data_mode(f)) { return f->ofdm->samplesperframe; } return 0; } // from http://stackoverflow.com/questions/10564491/function-to-calculate-a-crc16-checksum unsigned short freedv_gen_crc16(unsigned char* data_p, int length) { unsigned char x; unsigned short crc = 0xFFFF; while (length--) { x = crc >> 8 ^ *data_p++; x ^= x>>4; crc = (crc << 8) ^ ((unsigned short)(x << 12)) ^ ((unsigned short)(x <<5)) ^ ((unsigned short)x); } return crc; } codec2-1.0.1/src/freedv_api.h000066400000000000000000000327611412132000500157110ustar00rootroot00000000000000/*---------------------------------------------------------------------------*\ FILE........: freedv_api.h AUTHOR......: David Rowe DATE CREATED: August 2014 Library of API functions that implement FreeDV "modes", useful for embedding FreeDV in other programs. Please see: 1. README_freedv.md 2. Notes on function use in freedv_api.c 3. The sample freedv_tx.c and freedv_rx.c programs \*---------------------------------------------------------------------------*/ /* Copyright (C) 2014 David Rowe All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 2.1, as published by the Free Software Foundation. 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 Lesser General Public License along with this program; if not, see . */ #ifndef __FREEDV_API__ #define __FREEDV_API__ #include // This declares a single-precision (float) complex number #include "comp.h" #ifdef __cplusplus extern "C" { #endif // available speech modes #define FREEDV_MODE_1600 0 #define FREEDV_MODE_2400A 3 #define FREEDV_MODE_2400B 4 #define FREEDV_MODE_800XA 5 #define FREEDV_MODE_700C 6 #define FREEDV_MODE_700D 7 #define FREEDV_MODE_2020 8 #define FREEDV_MODE_700E 13 // available data modes #define FREEDV_MODE_FSK_LDPC 9 #define FREEDV_MODE_DATAC1 10 #define FREEDV_MODE_DATAC3 12 #define FREEDV_MODE_DATAC0 14 // Sample rates used #define FREEDV_FS_8000 8000 #define FREEDV_FS_16000 16000 // peak (complex) sample value from Tx modulator #define FREEDV_PEAK 16384 // Return code flags for freedv_get_rx_status() function #define FREEDV_RX_TRIAL_SYNC 0x1 // demodulator has trial sync #define FREEDV_RX_SYNC 0x2 // demodulator has sync #define FREEDV_RX_BITS 0x4 // data bits have been returned #define FREEDV_RX_BIT_ERRORS 0x8 // FEC may not have corrected all bit errors (not all parity checks OK) // optional operator control of OFDM modem state machine #define FREEDV_SYNC_UNSYNC 0 // force sync state machine to lose sync, and search for new sync #define FREEDV_SYNC_AUTO 1 // falls out of sync automatically #define FREEDV_SYNC_MANUAL 2 // fall out of sync only under operator control #define FREEDV_VARICODE_MAX_BITS 12 // max bits for each ASCII character // These macros allow us to disable unwanted modes at compile tine, for example // to save memory on embedded systems or the remove need to link other // libraries. By default we enable all modes. Disable during compile time e.g // -DFREEDV_MODE_1600_EN=0 will enable all but FreeDV 1600. Or the other way // round -DFREEDV_MODE_EN_DEFAULT=0 -DFREEDV_MODE_1600_EN=1 will enable only // FreeDV 1600 #ifndef FREEDV_MODE_EN_DEFAULT #define FREEDV_MODE_EN_DEFAULT 1 #endif #if !defined(FREEDV_MODE_1600_EN) #define FREEDV_MODE_1600_EN FREEDV_MODE_EN_DEFAULT #endif #if !defined(FREEDV_MODE_700C_EN) #define FREEDV_MODE_700C_EN FREEDV_MODE_EN_DEFAULT #endif #if !defined(FREEDV_MODE_700D_EN) #define FREEDV_MODE_700D_EN FREEDV_MODE_EN_DEFAULT #endif #if !defined(FREEDV_MODE_700E_EN) #define FREEDV_MODE_700E_EN FREEDV_MODE_EN_DEFAULT #endif #if !defined(FREEDV_MODE_2400A_EN) #define FREEDV_MODE_2400A_EN FREEDV_MODE_EN_DEFAULT #endif #if !defined(FREEDV_MODE_2400B_EN) #define FREEDV_MODE_2400B_EN FREEDV_MODE_EN_DEFAULT #endif #if !defined(FREEDV_MODE_800XA_EN) #define FREEDV_MODE_800XA_EN FREEDV_MODE_EN_DEFAULT #endif #if !defined(FREEDV_MODE_2020_EN) #define FREEDV_MODE_2020_EN FREEDV_MODE_EN_DEFAULT #endif #if !defined(FREEDV_MODE_FSK_LDPC_EN) #define FREEDV_MODE_FSK_LDPC_EN FREEDV_MODE_EN_DEFAULT #endif #if !defined(FREEDV_MODE_DATAC0_EN) #define FREEDV_MODE_DATAC0_EN FREEDV_MODE_EN_DEFAULT #endif #if !defined(FREEDV_MODE_DATAC1_EN) #define FREEDV_MODE_DATAC1_EN FREEDV_MODE_EN_DEFAULT #endif #if !defined(FREEDV_MODE_DATAC3_EN) #define FREEDV_MODE_DATAC3_EN FREEDV_MODE_EN_DEFAULT #endif #define FDV_MODE_ACTIVE(mode_name, var) ((mode_name##_EN) == 0 ? 0: (var) == mode_name) // struct that hold state information for one freedv instance struct freedv; // Some modes allow extra configuration parameters struct freedv_advanced { int interleave_frames; // currently ignored, was previously used to configure 700D interleaver // parameters for FREEDV_MODE_FSK_LDPC int M; // 2 or 4 FSK int Rs; // Symbol rate Hz int Fs; // Sample rate Hz int first_tone; // Freq of first tone Hz int tone_spacing; // Spacing between tones Hz char *codename; // LDPC codename, from codes listed in ldpc_codes.c }; // Called when text message char is decoded typedef void (*freedv_callback_rx)(void *, char); typedef void (*freedv_callback_rx_sym)(void *, _Complex float, float); // Called when new text message char is needed typedef char (*freedv_callback_tx)(void *); typedef void (*freedv_calback_error_pattern) (void *error_pattern_callback_state, short error_pattern[], int sz_error_pattern); // Protocol bits are packed MSB-first // Called when a frame containing protocol data is decoded typedef void (*freedv_callback_protorx)(void *, char *); // Called when a frame containing protocol data is to be sent typedef void (*freedv_callback_prototx)(void *, char *); // Data packet callbacks // Called when a packet has been received typedef void (*freedv_callback_datarx)(void *, unsigned char *packet, size_t size); // Called when a new packet can be send typedef void (*freedv_callback_datatx)(void *, unsigned char *packet, size_t *size); /*---------------------------------------------------------------------------*\ FreeDV API functions \*---------------------------------------------------------------------------*/ // open, close ---------------------------------------------------------------- struct freedv *freedv_open_advanced(int mode, struct freedv_advanced *adv); struct freedv *freedv_open(int mode); void freedv_close (struct freedv *freedv); // Transmit ------------------------------------------------------------------- void freedv_tx (struct freedv *freedv, short mod_out[], short speech_in[]); void freedv_comptx (struct freedv *freedv, COMP mod_out[], short speech_in[]); void freedv_datatx (struct freedv *f, short mod_out[]); int freedv_data_ntxframes (struct freedv *freedv); void freedv_rawdatatx (struct freedv *f, short mod_out[], unsigned char *packed_payload_bits); void freedv_rawdatacomptx (struct freedv *f, COMP mod_out[], unsigned char *packed_payload_bits); int freedv_rawdatapreambletx (struct freedv *f, short mod_out[]); int freedv_rawdatapreamblecomptx (struct freedv *f, COMP mod_out[]); int freedv_rawdatapostambletx (struct freedv *f, short mod_out[]); int freedv_rawdatapostamblecomptx (struct freedv *f, COMP mod_out[]); // Receive ------------------------------------------------------------------- int freedv_nin (struct freedv *freedv); int freedv_rx (struct freedv *freedv, short speech_out[], short demod_in[]); int freedv_shortrx (struct freedv *freedv, short speech_out[], short demod_in[], float gain); int freedv_floatrx (struct freedv *freedv, short speech_out[], float demod_in[]); int freedv_comprx (struct freedv *freedv, short speech_out[], COMP demod_in[]); int freedv_rawdatarx (struct freedv *freedv, unsigned char *packed_payload_bits, short demod_in[]); int freedv_rawdatacomprx (struct freedv *freedv, unsigned char *packed_payload_bits, COMP demod_in[]); // Helper functions ------------------------------------------------------------------- int freedv_codec_frames_from_rawdata(struct freedv *freedv, unsigned char *codec_frames, unsigned char *rawdata); int freedv_rawdata_from_codec_frames(struct freedv *freedv, unsigned char *rawdata, unsigned char *codec_frames); unsigned short freedv_gen_crc16(unsigned char* bytes, int nbytes); void freedv_pack(unsigned char *bytes, unsigned char *bits, int nbits); void freedv_unpack(unsigned char *bits, unsigned char *bytes, int nbits); unsigned short freedv_crc16_unpacked(unsigned char *bits, int nbits); int freedv_check_crc16_unpacked(unsigned char *unpacked_bits, int nbits); // Set parameters ------------------------------------------------------------ void freedv_set_callback_txt (struct freedv *freedv, freedv_callback_rx rx, freedv_callback_tx tx, void *callback_state); void freedv_set_callback_txt_sym (struct freedv *freedv, freedv_callback_rx_sym rx, void *callback_state); void freedv_set_callback_protocol (struct freedv *freedv, freedv_callback_protorx rx, freedv_callback_prototx tx, void *callback_state); void freedv_set_callback_data (struct freedv *freedv, freedv_callback_datarx datarx, freedv_callback_datatx datatx, void *callback_state); void freedv_set_test_frames (struct freedv *freedv, int test_frames); void freedv_set_test_frames_diversity (struct freedv *freedv, int test_frames_diversity); void freedv_set_smooth_symbols (struct freedv *freedv, int smooth_symbols); void freedv_set_squelch_en (struct freedv *freedv, int squelch_en); void freedv_set_snr_squelch_thresh (struct freedv *freedv, float snr_squelch_thresh); void freedv_set_clip (struct freedv *freedv, int val); void freedv_set_total_bit_errors (struct freedv *freedv, int val); void freedv_set_total_bits (struct freedv *freedv, int val); void freedv_set_total_bit_errors_coded (struct freedv *freedv, int val); void freedv_set_total_bits_coded (struct freedv *freedv, int val); void freedv_set_total_packets (struct freedv *freedv, int val); void freedv_set_total_packet_errors (struct freedv *freedv, int val); void freedv_set_callback_error_pattern (struct freedv *freedv, freedv_calback_error_pattern cb, void *state); void freedv_set_varicode_code_num (struct freedv *freedv, int val); void freedv_set_data_header (struct freedv *freedv, unsigned char *header); void freedv_set_carrier_ampl (struct freedv *freedv, int c, float ampl); void freedv_set_sync (struct freedv *freedv, int sync_cmd); void freedv_set_verbose (struct freedv *freedv, int verbosity); void freedv_set_tx_bpf (struct freedv *freedv, int val); void freedv_set_tx_amp (struct freedv *freedv, float amp); void freedv_set_dpsk (struct freedv *freedv, int val); void freedv_set_ext_vco (struct freedv *f, int val); void freedv_set_phase_est_bandwidth_mode(struct freedv *f, int val); void freedv_set_eq (struct freedv *f, int val); void freedv_set_frames_per_burst (struct freedv *f, int framesperburst); void freedv_passthrough_gain (struct freedv *f, float g); // Get parameters ------------------------------------------------------------------------- struct MODEM_STATS; int freedv_get_version(void); char *freedv_get_hash(void); int freedv_get_mode (struct freedv *freedv); void freedv_get_modem_stats (struct freedv *freedv, int *sync, float *snr_est); void freedv_get_modem_extended_stats(struct freedv *freedv, struct MODEM_STATS *stats); int freedv_get_test_frames (struct freedv *freedv); int freedv_get_speech_sample_rate (struct freedv *freedv); int freedv_get_n_speech_samples (struct freedv *freedv); int freedv_get_n_max_speech_samples (struct freedv *freedv); int freedv_get_modem_sample_rate (struct freedv *freedv); int freedv_get_modem_symbol_rate (struct freedv *freedv); int freedv_get_n_max_modem_samples (struct freedv *freedv); int freedv_get_n_nom_modem_samples (struct freedv *freedv); int freedv_get_n_tx_modem_samples (struct freedv *freedv); int freedv_get_n_tx_preamble_modem_samples(struct freedv *freedv); int freedv_get_n_tx_postamble_modem_samples(struct freedv *freedv); // bit error rate stats int freedv_get_total_bits (struct freedv *freedv); int freedv_get_total_bit_errors (struct freedv *freedv); int freedv_get_total_bits_coded (struct freedv *freedv); int freedv_get_total_bit_errors_coded (struct freedv *freedv); int freedv_get_total_packets (struct freedv *freedv); int freedv_get_total_packet_errors (struct freedv *freedv); int freedv_get_rx_status (struct freedv *freedv); void freedv_get_fsk_S_and_N (struct freedv *freedv, float *S, float *N); int freedv_get_sync (struct freedv *freedv); int freedv_get_sync_interleaver (struct freedv *freedv); // access to speech codec states struct FSK * freedv_get_fsk (struct freedv *f); struct CODEC2 *freedv_get_codec2 (struct freedv *freedv); int freedv_get_bits_per_codec_frame (struct freedv *freedv); int freedv_get_bits_per_modem_frame (struct freedv *freedv); int freedv_get_sz_error_pattern (struct freedv *freedv); int freedv_get_protocol_bits (struct freedv *freedv); #ifdef __cplusplus } #endif #endif //__FREEDV_API__ codec2-1.0.1/src/freedv_api_internal.h000066400000000000000000000245711412132000500176050ustar00rootroot00000000000000/*---------------------------------------------------------------------------*\ FILE........: freedv_api_internal.h AUTHOR......: David Rowe DATE CREATED: August 2014 This declares the structure freedv. A pointer to this structure is returned by the FreeDV API freedv_open() function. The pointer is used by the other FreeDV API functions declared in freedv_api.h. This structure is intended to be internal to the FreeDV API. The public functions are declared in freedv_api.h. Changes to this structure are expected. Changes (except additions) to freedv_api.h are discouraged. \*---------------------------------------------------------------------------*/ /* Copyright (C) 2014 David Rowe All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 2.1, as published by the Free Software Foundation. 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 Lesser General Public License along with this program; if not, see . */ #ifndef __FREEDV_API_INTERNAL__ #define __FREEDV_API_INTERNAL__ #include "varicode.h" #include "fsk.h" #include "fmfsk.h" #include "codec2_fdmdv.h" #include "codec2_cohpsk.h" #ifdef __LPCNET__ #include "lpcnet_freedv.h" #endif #include "freedv_api.h" #ifdef __cplusplus extern "C" { #endif // Experimentally derived fudge factors to normalise Tx power across modes #define NORM_PWR_COHPSK 1.12 #define NORM_PWR_FSK 0.193 #define NORM_PWR_OFDM 1.00 // identifiers for non Codec 2 Speech codecs, make sure no overlap with CODEC2_XXX modes #define CODEC_MODE_LPCNET_1733 100 extern char *rx_sync_flags_to_text[]; // converts flags above to more meaningful text struct freedv { int mode; // states for various modules we support struct CODEC2 *codec2; struct FDMDV *fdmdv; struct COHPSK *cohpsk; struct FSK *fsk; struct FMFSK *fmfsk; struct OFDM *ofdm; struct LDPC *ldpc; struct MODEM_STATS stats; // working memory for when we call xxx_stats function for each demod #ifdef __LPCNET__ struct LPCNetFreeDV *lpcnet; #endif struct freedv_vhf_deframer * deframer; // Extracts frames from VHF stream struct quisk_cfFilter * ptFilter7500to8000; // Filters to change to/from 7500 and 8000 sps for 700 .... 700C struct quisk_cfFilter * ptFilter8000to7500; int n_speech_samples; // number of speech samples we need for each freedv_tx() call // num of speech samples output by freedv_rx() call int n_nom_modem_samples; // size of tx modem sample buffers int n_max_modem_samples; // make your rx modem sample buffers this big int n_nat_modem_samples; // tx modem sample block length as used by the modem before interpolation to output // usually the same as n_nom_modem_samples, except for 700C int modem_sample_rate; // Caller is responsible for meeting this int modem_symbol_rate; // Useful for ext_vco operation on 2400A and 800XA int speech_sample_rate; // 8 kHz or 16 kHz (high fidelity) int bits_per_codec_frame; int bits_per_modem_frame; // number of modem payload bits in each modem frame (usually compressed speech) int n_codec_frames; // number of codec frames in each modem frame uint8_t *tx_payload_bits; // payload bits (usually compressed speech) for a modem frame ... uint8_t *rx_payload_bits; // ... one bit per char for some modes, packed for others /* FDMDV buffers for FreeDV 1600 -------------------------------------------------------------*/ int *fdmdv_bits; int *fdmdv_tx_bits; int *fdmdv_rx_bits; /* test frame states -------------------------------------------------------------------------*/ int *ptest_bits_coh; int *ptest_bits_coh_end; int test_frames; // set this baby for 1 to tx/rx test frames to look at bit error stats int test_frames_diversity; // 1 -> used combined carriers for error counting on 700 waveforms int test_frame_sync_state; int test_frame_sync_state_upper; // when test_frames_diveristy==0 we need extra states for upper carriers int test_frame_count; int total_bits; int total_bit_errors; int total_bits_coded; int total_bit_errors_coded; int total_packets; int total_packet_errors; int sz_error_pattern; /* optional user defined function to pass error pattern when a test frame is received */ void *error_pattern_callback_state; void (*freedv_put_error_pattern)(void *error_pattern_callback_state, short error_pattern[], int sz_error_pattern); /* Misc ---------------------------------------------------------------------------------------------*/ int *tx_bits; /* FSK modem frame under construction */ int tx_sync_bit; int frames; int clip_en; /* non-zero for modem Tx clipping to lower PAPR */ int sync; /* we set this when a mode is in sync */ int evenframe; float snr_est; /* we set this each time the modes's demod estimates SNR */ float snr_squelch_thresh; int squelch_en; int nin, nin_prev; int verbose; int ext_vco; /* 2400A/800XA use external VCO flag */ float *passthrough_2020; /* 2020 interpolating filter */ float tx_amp; /* amplitude of tx samples */ float passthrough_gain; /* useful constants for OFDM modes ------------------------------------------------------------------*/ int ofdm_bitsperpacket; int ofdm_bitsperframe; int ofdm_nuwbits; int ofdm_ntxtbits; int rx_status; /* Varicode txt channel states ----------------------------------------------------------------------*/ struct VARICODE_DEC varicode_dec_states; short tx_varicode_bits[VARICODE_MAX_BITS]; int nvaricode_bits; int varicode_bit_index; /* interleaved LDPC OFDM states ---------------------------------------------------------------------*/ COMP *codeword_symbols; float *codeword_amps; COMP *rx_syms; float *rx_amps; COMP *mod_out; // output buffer of interleaved frames /* user defined function ptrs to produce and consume ASCII characters using aux txt channel */ char (*freedv_get_next_tx_char)(void *callback_state); void (*freedv_put_next_rx_char)(void *callback_state, char c); void (*freedv_put_next_rx_symbol)(void *callback_state, _Complex float sym, float amp); void *callback_state; void *callback_state_sym; /* user defined functions to produce and consume protocol bits */ /* Protocol bits are packed MSB-first */ void (*freedv_put_next_proto)(void *callback_state, char *proto_bits_packed); void (*freedv_get_next_proto)(void *callback_state, char *proto_bits_packed); void *proto_callback_state; int n_protocol_bits; /* states needed for FSK LDPC */ float *frame_llr; int frame_llr_size, frame_llr_nbits; float *twoframes_llr; uint8_t *twoframes_hard; int fsk_ldpc_thresh1, fsk_ldpc_thresh2, fsk_ldpc_baduw_thresh; int fsk_ldpc_state, fsk_ldpc_best_location, fsk_ldpc_baduw; float fsk_ldpc_snr; float fsk_S[2], fsk_N[2]; }; // open function for each mode void freedv_1600_open(struct freedv *f); void freedv_700c_open(struct freedv *f); void freedv_ofdm_voice_open(struct freedv *f, char *mode); void freedv_2020_open(struct freedv *f); void freedv_2400a_open(struct freedv *f); void freedv_2400b_open(struct freedv *f); void freedv_800xa_open(struct freedv *f); void freedv_fsk_ldpc_open(struct freedv *f, struct freedv_advanced *adv); void freedv_ofdm_data_open(struct freedv *f); // each mode has tx and rx functions in various flavours for real and complex valued samples void freedv_comptx_fdmdv_1600(struct freedv *f, COMP mod_out[]); int freedv_comprx_fdmdv_1600(struct freedv *f, COMP demod_in[]); void freedv_comptx_700c(struct freedv *f, COMP mod_out[]); int freedv_comprx_700c(struct freedv *f, COMP demod_in_8kHz[]); void freedv_comptx_ofdm(struct freedv *f, COMP mod_out[]); int freedv_comp_short_rx_ofdm(struct freedv *f, void *demod_in_8kHz, int demod_in_is_short, float gain); void freedv_comptx_2020(struct freedv *f, COMP mod_out[]); int freedv_comprx_2020(struct freedv *f, COMP demod_in[]); void freedv_comptx_fsk_voice(struct freedv *f, COMP mod_out[]); void freedv_tx_fsk_voice(struct freedv *f, short mod_out[]); void freedv_tx_fsk_data(struct freedv *f, short mod_out[]); int freedv_comprx_fsk(struct freedv *f, COMP demod_in[]); int freedv_floatrx(struct freedv *f, short speech_out[], float demod_in[]); void freedv_tx_fsk_ldpc_data(struct freedv *f, COMP mod_out[]); void freedv_tx_fsk_ldpc_data_preamble(struct freedv *f, COMP mod_out[], int npreamble_bits, int npreamble_samples); int freedv_rx_fsk_ldpc_data(struct freedv *f, COMP demod_in[]); int freedv_bits_to_speech(struct freedv *f, short speech_out[], short demod_in[], int rx_status); #ifdef __cplusplus } #endif #endif codec2-1.0.1/src/freedv_data_channel.c000066400000000000000000000247261412132000500175360ustar00rootroot00000000000000/*---------------------------------------------------------------------------*\ FILE........: freedv_data_channel.c AUTHOR......: Jeroen Vreeken DATE CREATED: 03 March 2016 Data channel for ethernet like packets in freedv VHF frames. Currently designed for- * 2 control bits per frame * 4 byte counter bits per frame * 64 bits of data per frame \*---------------------------------------------------------------------------*/ /* Copyright (C) 2016 Jeroen Vreeken All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 2.1, as published by the Free Software Foundation. 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 Lesser General Public License along with this program; if not, see . */ #include "freedv_data_channel.h" #include #include static unsigned char fdc_header_bcast[6] = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff }; /* CCIT CRC table (0x1201 polynomal) */ static unsigned short fdc_crc_table[256] = { 0x0000, 0x1189, 0x2312, 0x329b, 0x4624, 0x57ad, 0x6536, 0x74bf, 0x8c48, 0x9dc1, 0xaf5a, 0xbed3, 0xca6c, 0xdbe5, 0xe97e, 0xf8f7, 0x1081, 0x0108, 0x3393, 0x221a, 0x56a5, 0x472c, 0x75b7, 0x643e, 0x9cc9, 0x8d40, 0xbfdb, 0xae52, 0xdaed, 0xcb64, 0xf9ff, 0xe876, 0x2102, 0x308b, 0x0210, 0x1399, 0x6726, 0x76af, 0x4434, 0x55bd, 0xad4a, 0xbcc3, 0x8e58, 0x9fd1, 0xeb6e, 0xfae7, 0xc87c, 0xd9f5, 0x3183, 0x200a, 0x1291, 0x0318, 0x77a7, 0x662e, 0x54b5, 0x453c, 0xbdcb, 0xac42, 0x9ed9, 0x8f50, 0xfbef, 0xea66, 0xd8fd, 0xc974, 0x4204, 0x538d, 0x6116, 0x709f, 0x0420, 0x15a9, 0x2732, 0x36bb, 0xce4c, 0xdfc5, 0xed5e, 0xfcd7, 0x8868, 0x99e1, 0xab7a, 0xbaf3, 0x5285, 0x430c, 0x7197, 0x601e, 0x14a1, 0x0528, 0x37b3, 0x263a, 0xdecd, 0xcf44, 0xfddf, 0xec56, 0x98e9, 0x8960, 0xbbfb, 0xaa72, 0x6306, 0x728f, 0x4014, 0x519d, 0x2522, 0x34ab, 0x0630, 0x17b9, 0xef4e, 0xfec7, 0xcc5c, 0xddd5, 0xa96a, 0xb8e3, 0x8a78, 0x9bf1, 0x7387, 0x620e, 0x5095, 0x411c, 0x35a3, 0x242a, 0x16b1, 0x0738, 0xffcf, 0xee46, 0xdcdd, 0xcd54, 0xb9eb, 0xa862, 0x9af9, 0x8b70, 0x8408, 0x9581, 0xa71a, 0xb693, 0xc22c, 0xd3a5, 0xe13e, 0xf0b7, 0x0840, 0x19c9, 0x2b52, 0x3adb, 0x4e64, 0x5fed, 0x6d76, 0x7cff, 0x9489, 0x8500, 0xb79b, 0xa612, 0xd2ad, 0xc324, 0xf1bf, 0xe036, 0x18c1, 0x0948, 0x3bd3, 0x2a5a, 0x5ee5, 0x4f6c, 0x7df7, 0x6c7e, 0xa50a, 0xb483, 0x8618, 0x9791, 0xe32e, 0xf2a7, 0xc03c, 0xd1b5, 0x2942, 0x38cb, 0x0a50, 0x1bd9, 0x6f66, 0x7eef, 0x4c74, 0x5dfd, 0xb58b, 0xa402, 0x9699, 0x8710, 0xf3af, 0xe226, 0xd0bd, 0xc134, 0x39c3, 0x284a, 0x1ad1, 0x0b58, 0x7fe7, 0x6e6e, 0x5cf5, 0x4d7c, 0xc60c, 0xd785, 0xe51e, 0xf497, 0x8028, 0x91a1, 0xa33a, 0xb2b3, 0x4a44, 0x5bcd, 0x6956, 0x78df, 0x0c60, 0x1de9, 0x2f72, 0x3efb, 0xd68d, 0xc704, 0xf59f, 0xe416, 0x90a9, 0x8120, 0xb3bb, 0xa232, 0x5ac5, 0x4b4c, 0x79d7, 0x685e, 0x1ce1, 0x0d68, 0x3ff3, 0x2e7a, 0xe70e, 0xf687, 0xc41c, 0xd595, 0xa12a, 0xb0a3, 0x8238, 0x93b1, 0x6b46, 0x7acf, 0x4854, 0x59dd, 0x2d62, 0x3ceb, 0x0e70, 0x1ff9, 0xf78f, 0xe606, 0xd49d, 0xc514, 0xb1ab, 0xa022, 0x92b9, 0x8330, 0x7bc7, 0x6a4e, 0x58d5, 0x495c, 0x3de3, 0x2c6a, 0x1ef1, 0x0f78 }; static unsigned short fdc_crc(unsigned char *buffer, size_t len) { unsigned short crc = 0xffff; size_t i; for (i = 0; i < len; i++, buffer++) { crc = (crc >> 8) ^ fdc_crc_table[(crc ^ *buffer) & 0xff]; } return crc ^ 0xffff; } /* CRC4 0x03 polynomal */ static unsigned char fdc_crc4(unsigned char *buffer, size_t len) { unsigned char crc = 0x0f; size_t i; for (i = 0; i < len; i++, buffer++) { int shift; for (shift = 7; shift <= 0; shift--) { crc <<= 1; if ((*buffer >> shift) & 0x1) crc |= 1; if (crc & 0x10) crc ^= 0x03; } } return crc & 0x0f; } struct freedv_data_channel *freedv_data_channel_create(void) { struct freedv_data_channel *fdc; fdc = (struct freedv_data_channel *) calloc(1, sizeof(struct freedv_data_channel)); if (fdc == NULL) return NULL; freedv_data_set_header(fdc, fdc_header_bcast); memcpy(fdc->rx_header, fdc->tx_header, 8); return fdc; } void freedv_data_channel_destroy(struct freedv_data_channel *fdc) { free(fdc); } void freedv_data_set_cb_rx(struct freedv_data_channel *fdc, freedv_data_callback_rx cb, void *state) { fdc->cb_rx = cb; fdc->cb_rx_state = state; } void freedv_data_set_cb_tx(struct freedv_data_channel *fdc, freedv_data_callback_tx cb, void *state) { fdc->cb_tx = cb; fdc->cb_tx_state = state; } void freedv_data_channel_rx_frame(struct freedv_data_channel *fdc, unsigned char *data, size_t size, int from_bit, int bcast_bit, int crc_bit, int end_bits) { int copy_bits; if (end_bits) { copy_bits = end_bits; } else { copy_bits = size; } /* New packet? */ if (fdc->packet_rx_cnt == 0) { /* Does the packet have a compressed from field? */ if (from_bit) { /* Compressed from: take the previously received header */ memcpy(fdc->packet_rx + fdc->packet_rx_cnt, fdc->rx_header, 6); fdc->packet_rx_cnt += 6; } if (bcast_bit) { if (!from_bit) { /* Copy from header and modify size and end_bits accordingly */ memcpy(fdc->packet_rx + fdc->packet_rx_cnt, data, 6); fdc->packet_rx_cnt += 6; copy_bits -= 6; if (copy_bits < 0) copy_bits = 0; data += 6; } /* Compressed to: fill in broadcast address */ memcpy(fdc->packet_rx + fdc->packet_rx_cnt, fdc_header_bcast, sizeof(fdc_header_bcast)); fdc->packet_rx_cnt += 6; } if (crc_bit) { unsigned char calc_crc = fdc_crc4(data, size); if (calc_crc == end_bits) { /* It is a single header field, remember it for later */ memcpy(fdc->rx_header, data, 6); memcpy(fdc->packet_rx + 6, data, 6); memcpy(fdc->packet_rx, fdc_header_bcast, 6); if (fdc->cb_rx) { fdc->cb_rx(fdc->cb_rx_state, fdc->packet_rx, 12); } } fdc->packet_rx_cnt = 0; return; } } if (fdc->packet_rx_cnt + copy_bits >= FREEDV_DATA_CHANNEL_PACKET_MAX) { /* Something went wrong... this can not be a real packet */ fdc->packet_rx_cnt = 0; return; } memcpy(fdc->packet_rx + fdc->packet_rx_cnt, data, copy_bits); fdc->packet_rx_cnt += copy_bits; if (end_bits != 0 && fdc->packet_rx_cnt >= 2) { unsigned short calc_crc = fdc_crc(fdc->packet_rx, fdc->packet_rx_cnt - 2); unsigned short rx_crc; rx_crc = fdc->packet_rx[fdc->packet_rx_cnt - 1] << 8; rx_crc |= fdc->packet_rx[fdc->packet_rx_cnt - 2]; if (rx_crc == calc_crc) { if (fdc->packet_rx_cnt == size) { /* It is a single header field, remember it for later */ memcpy(fdc->rx_header, fdc->packet_rx, 6); } /* callback */ if (fdc->cb_rx) { unsigned char tmp[6]; memcpy(tmp, fdc->packet_rx, 6); memcpy(fdc->packet_rx, fdc->packet_rx + 6, 6); memcpy(fdc->packet_rx + 6, tmp, 6); size_t size = fdc->packet_rx_cnt - 2; if (size < 12) { size = 12; memcpy(fdc->packet_rx, fdc_header_bcast, 6); } fdc->cb_rx(fdc->cb_rx_state, fdc->packet_rx, size); } } fdc->packet_rx_cnt = 0; } } void freedv_data_channel_tx_frame(struct freedv_data_channel *fdc, unsigned char *data, size_t size, int *from_bit, int *bcast_bit, int *crc_bit, int *end_bits) { *from_bit = 0; *bcast_bit = 0; *crc_bit = 0; if (!fdc->packet_tx_size) { fdc->packet_tx_cnt = 0; if (fdc->cb_tx) { fdc->packet_tx_size = FREEDV_DATA_CHANNEL_PACKET_MAX; fdc->cb_tx(fdc->cb_tx_state, fdc->packet_tx, &fdc->packet_tx_size); } if (!fdc->packet_tx_size) { /* Nothing to send, insert a header frame */ memcpy(fdc->packet_tx, fdc->tx_header, size); if (size < 8) { *end_bits = fdc_crc4(fdc->tx_header, size); *crc_bit = 1; memcpy(data, fdc->tx_header, size); return; } else { fdc->packet_tx_size = size; } } else { /* new packet */ unsigned short crc; unsigned char tmp[6]; *from_bit = !memcmp(fdc->packet_tx + 6, fdc->tx_header, 6); *bcast_bit = !memcmp(fdc->packet_tx, fdc_header_bcast, 6); memcpy(tmp, fdc->packet_tx, 6); memcpy(fdc->packet_tx, fdc->packet_tx + 6, 6); memcpy(fdc->packet_tx + 6, tmp, 6); crc = fdc_crc(fdc->packet_tx, fdc->packet_tx_size); fdc->packet_tx[fdc->packet_tx_size] = crc & 0xff; fdc->packet_tx_size++; fdc->packet_tx[fdc->packet_tx_size] = (crc >> 8) & 0xff; fdc->packet_tx_size++; if (*from_bit) { fdc->packet_tx_cnt = 6; } else { if (*bcast_bit) { memcpy(fdc->packet_tx + 6, fdc->packet_tx, 6); } } if (*bcast_bit) { fdc->packet_tx_cnt += 6; } } } if (fdc->packet_tx_size) { int copy = fdc->packet_tx_size - fdc->packet_tx_cnt; if (copy > size) { copy = size; *end_bits = 0; } else { *end_bits = copy; fdc->packet_tx_size = 0; } memcpy(data, fdc->packet_tx + fdc->packet_tx_cnt, copy); fdc->packet_tx_cnt += copy; } } void freedv_data_set_header(struct freedv_data_channel *fdc, unsigned char *header) { unsigned short crc = fdc_crc(header, 6); memcpy(fdc->tx_header, header, 6); fdc->tx_header[6] = crc & 0xff; fdc->tx_header[7] = (crc >> 8) & 0xff; } int freedv_data_get_n_tx_frames(struct freedv_data_channel *fdc, size_t size) { if (fdc->packet_tx_size == 0) return 0; /* packet will be send in 'size' byte frames */ return (fdc->packet_tx_size - fdc->packet_tx_cnt + size-1) / size; } codec2-1.0.1/src/freedv_data_channel.h000066400000000000000000000051711412132000500175340ustar00rootroot00000000000000/*---------------------------------------------------------------------------*\ FILE........: freedv_data_channel.h AUTHOR......: Jeroen Vreeken DATE CREATED: 03 March 2016 Data channel for ethernet like packets in freedv VHF frames. Currently designed for- * 2 control bits per frame * 4 byte counter bits per frame * 64 bits of data per frame \*---------------------------------------------------------------------------*/ /* Copyright (C) 2016 Jeroen Vreeken All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 2.1, as published by the Free Software Foundation. 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 Lesser General Public License along with this program; if not, see . */ #ifndef _FREEDV_DATA_CHANNEL_H #define _FREEDV_DATA_CHANNEL_H #include #define FREEDV_DATA_CHANNEL_PACKET_MAX 2048 typedef void (*freedv_data_callback_rx)(void *, unsigned char *packet, size_t size); typedef void (*freedv_data_callback_tx)(void *, unsigned char *packet, size_t *size); struct freedv_data_channel { freedv_data_callback_rx cb_rx; void *cb_rx_state; freedv_data_callback_tx cb_tx; void *cb_tx_state; unsigned char rx_header[8]; unsigned char packet_rx[FREEDV_DATA_CHANNEL_PACKET_MAX + 2]; int packet_rx_cnt; unsigned char tx_header[8]; unsigned char packet_tx[FREEDV_DATA_CHANNEL_PACKET_MAX + 2]; int packet_tx_cnt; size_t packet_tx_size; }; struct freedv_data_channel *freedv_data_channel_create(void); void freedv_data_channel_destroy(struct freedv_data_channel *fdc); void freedv_data_set_cb_rx(struct freedv_data_channel *fdc, freedv_data_callback_rx cb, void *state); void freedv_data_set_cb_tx(struct freedv_data_channel *fdc, freedv_data_callback_tx cb, void *state); void freedv_data_channel_rx_frame(struct freedv_data_channel *fdc, unsigned char *data, size_t size, int from_bit, int bcast_bit, int crc_bit, int end_bits); void freedv_data_channel_tx_frame(struct freedv_data_channel *fdc, unsigned char *data, size_t size, int *from_bit, int *bcast_bit, int *crc_bit, int *end_bits); void freedv_data_set_header(struct freedv_data_channel *fdc, unsigned char *header); int freedv_data_get_n_tx_frames(struct freedv_data_channel *fdc, size_t size); #endif /* _FREEDV_DATA_CHANNEL_H */ codec2-1.0.1/src/freedv_data_raw_rx.c000066400000000000000000000241341412132000500174210ustar00rootroot00000000000000/*---------------------------------------------------------------------------*\ FILE........: freedv_data_raw_rx.c AUTHOR......: David Rowe DATE CREATED: May 2020 Demonstrates receiving frames of raw data bytes (instead of compressed speech) using the FreeDV API. \*---------------------------------------------------------------------------*/ /* Copyright (C) 2020 David Rowe All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 2.1, as published by the Free Software Foundation. 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 Lesser General Public License along with this program; if not, see . */ #include #include #include #include #include #include #include #include "freedv_api.h" #include "modem_stats.h" #include "octave.h" #include "fsk.h" /* other processes can end this program using signals */ static volatile int finish = 0; void INThandler(int sig) { fprintf(stderr,"signal received: %d\n", sig); finish = 1; } int main(int argc, char *argv[]) { FILE *fin, *fout; struct freedv_advanced adv = {0,2,100,8000,1000,200, "H_256_512_4"}; struct freedv *freedv; int nin, nbytes, nbytes_out = 0, nframes_out = 0, buf = 0; int mode; int verbose = 0, use_testframes = 0; int mask = 0; int framesperburst = 0; FILE *foct = NULL; int quiet = 0; int single_line_summary = 0; float snr_sum = 0.0; if (argc < 3) { helpmsg: fprintf(stderr, "\nusage: %s [options] FSK_LDPC|DATAC0|DATAC1|DATAC3 InputModemSpeechFile BinaryDataFile\n" " -v or --vv verbose options\n" " --testframes count raw and coded errors in testframes sent by tx\n" " --framesperburst N selects burst mode, N frames per burst (must match Tx)\n" " --scatter file write scatter diagram symbols to file (Octave text file format)\n" " --singleline single line summary at end of test, used for logging\n" " --quiet\n" "\n" "For FSK_LDPC only:\n\n" " -m 2|4 number of FSK tones\n" " --Fs FreqHz sample rate (default 8000)\n" " --Rs FreqHz symbol rate (default 100)\n" " --mask shiftHz Use \"mask\" freq estimator (default is \"peak\" estimator)\n\n", argv[0]); fprintf(stderr, "example: %s --framesperburst 1 --testframes datac0 samples.s16 /dev/null\n\n", argv[0]); exit(1); } int o = 0; int opt_idx = 0; while( o != -1 ){ static struct option long_opts[] = { {"testframes", no_argument, 0, 't'}, {"help", no_argument, 0, 'h'}, {"Fs", required_argument, 0, 'f'}, {"Rs", required_argument, 0, 'r'}, {"vv", no_argument, 0, 'x'}, {"vvv", no_argument, 0, 'y'}, {"mask", required_argument, 0, 'k'}, {"framesperburst", required_argument, 0, 's'}, {"scatter", required_argument, 0, 'c'}, {"quiet", required_argument, 0, 'q'}, {"singleline", no_argument, 0, 'b'}, {0, 0, 0, 0} }; o = getopt_long(argc,argv,"bf:hm:qr:tvx",long_opts,&opt_idx); switch(o) { case 'b': single_line_summary = 1; break; case 'c': foct = fopen(optarg,"wt"); assert(foct != NULL); break; case 'f': adv.Fs = atoi(optarg); break; case 'k': mask = 1; adv.tone_spacing = atoi(optarg); break; case 'm': adv.M = atoi(optarg); break; case 'q': quiet = 1; break; case 'r': adv.Rs = atoi(optarg); break; case 's': framesperburst = atoi(optarg); break; case 't': use_testframes = 1; break; case 'v': verbose = 1; break; case 'x': verbose = 2; break; case 'y': verbose = 3; break; case 'h': case '?': goto helpmsg; break; } } int dx = optind; if( (argc - dx) < 3) { fprintf(stderr, "too few arguments.\n"); goto helpmsg; } mode = -1; if (!strcmp(argv[dx],"FSK_LDPC") || !strcmp(argv[dx],"fsk_ldpc")) mode = FREEDV_MODE_FSK_LDPC; if (!strcmp(argv[dx],"DATAC0") || !strcmp(argv[dx],"datac0")) mode = FREEDV_MODE_DATAC0; if (!strcmp(argv[dx],"DATAC1") || !strcmp(argv[dx],"datac1")) mode = FREEDV_MODE_DATAC1; if (!strcmp(argv[dx],"DATAC3") || !strcmp(argv[dx],"datac3")) mode = FREEDV_MODE_DATAC3; if (mode == -1) { fprintf(stderr, "Error in mode: %s\n", argv[dx]); exit(1); } if (strcmp(argv[dx+1], "-") == 0) fin = stdin; else if ( (fin = fopen(argv[dx+1],"rb")) == NULL ) { fprintf(stderr, "Error opening input raw modem sample file: %s: %s.\n", argv[2], strerror(errno)); exit(1); } if (strcmp(argv[dx+2], "-") == 0) fout = stdout; else if ( (fout = fopen(argv[dx+2],"wb")) == NULL ) { fprintf(stderr, "Error opening output speech sample file: %s: %s.\n", argv[3], strerror(errno)); exit(1); } if (mode != FREEDV_MODE_FSK_LDPC) freedv = freedv_open(mode); else { freedv = freedv_open_advanced(mode, &adv); struct FSK *fsk = freedv_get_fsk(freedv); fsk_set_freq_est_alg(fsk, mask); } assert(freedv != NULL); freedv_set_verbose(freedv, verbose); freedv_set_test_frames(freedv, use_testframes); freedv_set_frames_per_burst(freedv, framesperburst); if (mode == FREEDV_MODE_FSK_LDPC) { struct FSK *fsk = freedv_get_fsk(freedv); if (!quiet) fprintf(stderr, "Nbits: %d N: %d Ndft: %d\n", fsk->Nbits, fsk->N, fsk->Ndft); } /* for streaming bytes it's much easier use the modes that have a multiple of 8 payload bits/frame */ assert((freedv_get_bits_per_modem_frame(freedv) % 8) == 0); int bytes_per_modem_frame = freedv_get_bits_per_modem_frame(freedv)/8; // last two bytes used for CRC if (!quiet) fprintf(stderr, "payload bytes_per_modem_frame: %d\n", bytes_per_modem_frame - 2); uint8_t bytes_out[bytes_per_modem_frame]; short demod_in[freedv_get_n_max_modem_samples(freedv)]; signal(SIGINT, INThandler); signal(SIGTERM, INThandler); /* We need to work out how many samples the demod needs on each call (nin). This is used to adjust for differences in the tx and rx sample clock frequencies */ nin = freedv_nin(freedv); while((fread(demod_in, sizeof(short), nin, fin) == nin) && !finish) { buf++; nbytes = freedv_rawdatarx(freedv, bytes_out, demod_in); nin = freedv_nin(freedv); if (nbytes) { // dont output CRC fwrite(bytes_out, sizeof(uint8_t), nbytes-2, fout); // log some stats nbytes_out += nbytes-2; nframes_out++; struct MODEM_STATS stats; freedv_get_modem_extended_stats(freedv, &stats); snr_sum += stats.snr_est; if (foct) { char name[64]; sprintf(name, "rx_symbols_%d", nframes_out); octave_save_complex(foct, name, (COMP*) stats.rx_symbols, stats.nr, stats.Nc, MODEM_STATS_NC_MAX+1); } } /* if using pipes we probably don't want the usual buffering */ if (fout == stdout) fflush(stdout); } fclose(fin); fclose(fout); fprintf(stderr, "modembufs: %6d bytes: %5d Frms.: %5d SNRAv: %5.2f\n", buf, nbytes_out, nframes_out, snr_sum/nframes_out); int ret = 0; /* in testframe mode finish up with some stats */ if (freedv_get_test_frames(freedv)) { int Tbits = freedv_get_total_bits(freedv); int Terrs = freedv_get_total_bit_errors(freedv); float uncoded_ber = (float)Terrs/Tbits; fprintf(stderr, "BER......: %5.4f Tbits: %5d Terrs: %5d\n", (double)uncoded_ber, Tbits, Terrs); int Tbits_coded = freedv_get_total_bits_coded(freedv); int Terrs_coded = freedv_get_total_bit_errors_coded(freedv); float coded_ber = (float)Terrs_coded/Tbits_coded; fprintf(stderr, "Coded BER: %5.4f Tbits: %5d Terrs: %5d\n", (double)coded_ber, Tbits_coded, Terrs_coded); int Tpackets = freedv_get_total_packets(freedv); int Tpacket_errors = freedv_get_total_packet_errors(freedv); fprintf(stderr, "Coded FER: %5.4f Tfrms: %5d Tfers: %5d\n", (float)Tpacket_errors/Tpackets, Tpackets, Tpacket_errors); if (single_line_summary) { struct MODEM_STATS stats; freedv_get_modem_extended_stats(freedv, &stats); fprintf(stderr, "FrmGd FrmDt Bytes SNRAv RawBER Pre Post UWfails\n"); fprintf(stderr, "%5d %5d %5d %5.2f %5.4f %5d %5d %5d\n", nframes_out, Tpackets, nbytes_out, snr_sum/nframes_out, uncoded_ber, stats.pre, stats.post, stats.uw_fails); } /* set return code for Ctest */ if ((uncoded_ber < 0.1f) && (coded_ber < 0.01f)) ret = 0; else ret = 1; } freedv_close(freedv); if (foct) fclose(foct); return ret; } codec2-1.0.1/src/freedv_data_raw_tx.c000066400000000000000000000342231412132000500174230ustar00rootroot00000000000000/*---------------------------------------------------------------------------*\ FILE........: freedv_data_raw_tx.c AUTHOR......: David Rowe DATE CREATED: May 2020 Demonstrates transmitting frames of raw data bytes (instead of compressed speech) using the FreeDV API. \*---------------------------------------------------------------------------*/ /* Copyright (C) 2020 David Rowe All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 2.1, as published by the Free Software Foundation. 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 Lesser General Public License along with this program; if not, see . */ #include #include #include #include #include #include #include #include "freedv_api.h" #include "fsk.h" #include "ofdm_internal.h" void comp_to_short(short mod_out_short[], COMP mod_out_comp[], int n_mod_out) { for(int i=0; i Rs: %d\n", adv.tone_spacing, adv.Rs); exit(1); } } if (burst_mode && testframes) { if (Ntestframes != framesperburst*Nbursts) { if (!quiet) fprintf(stderr, "Adjusting testframes to equal framesperburst*bursts\n"); Ntestframes = framesperburst*Nbursts; } } /* optionally set up a known testframe */ uint8_t testframe_bytes[bytes_per_modem_frame]; memset(testframe_bytes, 0, bytes_per_modem_frame); if (testframes) { int bits_per_frame = freedv_get_bits_per_modem_frame(freedv); uint8_t testframe_bits[bits_per_frame]; ofdm_generate_payload_data_bits(testframe_bits, bits_per_frame); freedv_pack(testframe_bytes, testframe_bits, bits_per_frame); } if (!quiet) fprintf(stderr, "\n"); short mod_out_short[2*n_mod_out]; COMP mod_out_comp[n_mod_out]; int frames; size_t on_samples = 0; size_t off_samples = 0; for(int b=0; b> 8; bytes_in[bytes_per_modem_frame-1] = crc16 & 0xff; if (use_complex == 0) { freedv_rawdatatx(freedv, mod_out_short, bytes_in); } else { freedv_rawdatacomptx(freedv, mod_out_comp, bytes_in); comp_to_short(mod_out_short, mod_out_comp, n_mod_out); } fwrite(mod_out_short, sizeof(short), shorts_per_sample*n_mod_out, fout); on_samples += n_mod_out; /* if using pipes we don't want the usual buffering to occur */ if (fout == stdout) fflush(stdout); frames++; // streaming mode with testframes, break out of loop after we have sent Nframes if (!burst_mode && testframes && (frames >= Ntestframes)) break; // burst mode, break out of loop after we have sent framesperburst frames if (burst_mode && (frames >= framesperburst)) break; } /* send postamble */ int n_postamble = 0; if (use_complex == 0) { n_postamble = freedv_rawdatapostambletx(freedv, mod_out_short); } else { n_postamble = freedv_rawdatapostamblecomptx(freedv, mod_out_comp); comp_to_short(mod_out_short, mod_out_comp, n_preamble); } assert(n_postamble == freedv_get_n_tx_postamble_modem_samples(freedv)); assert(n_postamble <= n_mod_out); fwrite(mod_out_short, sizeof(short), shorts_per_sample*n_postamble, fout); on_samples += n_postamble; int samples_delay = 0; if (inter_burst_delay_ms) { /* user defined inter-burst delay */ samples_delay = FREEDV_FS_8000*inter_burst_delay_ms/1000; } else { /* just enough silence at the end to allow demod to complete processing */ samples_delay = 2*freedv_get_n_nom_modem_samples(freedv); } short sil_short[shorts_per_sample*samples_delay]; for(int i=0; i. */ #include #include #include #include #include #include #include #include #include #include "freedv_api.h" /********************************************************** Encoding an ITU callsign (and 4 bit secondary station ID to a valid MAC address. http://dmlinking.net/eth_ar.html */ // Lookup table for valid callsign characters static char alnum2code[37] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 0 }; // Decode the callsign in a MAC address static int eth_ar_mac2call(char *callsign, int *ssid, bool *multicast, uint8_t mac[6]) { uint64_t add; int i; if (!memcmp(mac, (uint8_t[6]){ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}, 6)) { *ssid = 0; *multicast = true; strcpy(callsign, "*"); return 0; } *multicast = mac[0] & 0x01; *ssid = (mac[0] & 0x3c) >> 2; add = (uint64_t)(mac[0] & 0xc0) << (40 - 6); add |= (uint64_t)mac[1] << 32; add |= (uint64_t)mac[2] << 24; add |= (uint64_t)mac[3] << 16; add |= (uint64_t)mac[4] << 8; add |= (uint64_t)mac[5]; for (i = 0; i < 8; i++) { int c = add % 37; callsign[i] = alnum2code[c]; add /= 37; } callsign[i] = 0; return 0; } /********************************************************** Data channel callback functions */ struct my_callback_state { FILE *fdataout; int calls; }; /* Called when a packet has been received */ void my_datarx(void *callback_state, unsigned char *packet, size_t size) { struct my_callback_state* pstate = (struct my_callback_state*)callback_state; pstate->calls++; fprintf(pstate->fdataout, "%-4d", pstate->calls); if (pstate->fdataout != NULL) { size_t i; char callsign_to[9], callsign_from[9]; int ssid_to, ssid_from; bool multicast_to, multicast_from; eth_ar_mac2call(callsign_to, &ssid_to, &multicast_to, packet); eth_ar_mac2call(callsign_from, &ssid_from, &multicast_from, packet + 6); if (multicast_from) fprintf(pstate->fdataout, "Multicast"); else fprintf(pstate->fdataout, "%s-%d", callsign_from, ssid_from); printf(" -> "); if (multicast_to) fprintf(pstate->fdataout, "Multicast"); else fprintf(pstate->fdataout, "%s-%d", callsign_to, ssid_to); printf(" (%zd bytes)", size); /* It could be just an identification frame */ if (size < 14) { fprintf(pstate->fdataout, " Identification"); } else { unsigned short ethertype = packet[12] << 8 | packet[13]; fprintf(pstate->fdataout, " EtherType 0x%04x", ethertype); if (ethertype == 0x7370) fprintf(pstate->fdataout, " (FPRS)"); } fprintf(pstate->fdataout, ":"); for (i = 0; i < size; i++) { if (i % 0x10 == 0) fprintf(pstate->fdataout, "\n0x%04zx: ", i); fprintf(pstate->fdataout, "0x%02x ", packet[i]); } fprintf(pstate->fdataout, "\n"); } } /* Called when a new packet can be send */ void my_datatx(void *callback_state, unsigned char *packet, size_t *size) { /* This should not happen while receiving.. */ fprintf(stderr, "datarx callback called, this should not happen!\n"); *size = 0; } int main(int argc, char *argv[]) { FILE *fin; struct freedv *freedv; int nin, frame = 0; struct my_callback_state my_cb_state = {0}; int mode; int verbose; int i; if (argc < 3) { printf("usage: %s 2400A|2400B|800XA InputModemSpeechFile\n" " \n", argv[0]); printf("e.g %s 2400A data_fdmdv.raw\n", argv[0]); exit(1); } my_cb_state.fdataout = stdout; mode = -1; if (!strcmp(argv[1],"2400A")) mode = FREEDV_MODE_2400A; if (!strcmp(argv[1],"2400B")) mode = FREEDV_MODE_2400B; if (!strcmp(argv[1],"800XA")) mode = FREEDV_MODE_800XA; assert(mode != -1); if (strcmp(argv[2], "-") == 0) fin = stdin; else if ( (fin = fopen(argv[2],"rb")) == NULL ) { fprintf(stderr, "Error opening input raw modem sample file: %s: %s.\n", argv[2], strerror(errno)); exit(1); } verbose = 0; if (argc > 3) { for (i = 3; i < argc; i++) { if (strcmp(argv[i], "-v") == 0) { verbose = 1; } if (strcmp(argv[i], "-vv") == 0) { verbose = 2; } } } freedv = freedv_open(mode); assert(freedv != NULL); freedv_set_verbose(freedv, verbose); short speech_out[freedv_get_n_max_speech_samples(freedv)]; short demod_in[freedv_get_n_max_modem_samples(freedv)]; freedv_set_callback_data(freedv, my_datarx, my_datatx, &my_cb_state); /* Note we need to work out how many samples demod needs on each call (nin). This is used to adjust for differences in the tx and rx sample clock frequencies. Note also the number of output speech samples is time varying. */ nin = freedv_nin(freedv); while(fread(demod_in, sizeof(short), nin, fin) == nin) { frame++; /* usual case: use the freedv_api to do everything: speech decoding, demodulating */ // most common interface - real shorts in, real shorts out freedv_rx(freedv, speech_out, demod_in); nin = freedv_nin(freedv); } fclose(fin); fprintf(stderr, "frames decoded: %d\n", frame); freedv_close(freedv); return 0; } codec2-1.0.1/src/freedv_data_tx.c000066400000000000000000000170131412132000500165500ustar00rootroot00000000000000/*---------------------------------------------------------------------------*\ FILE........: freedv_data_tx.c AUTHOR......: Jeroen Vreeken DATE CREATED: May 2020 Demo VHF packet data transmit program for FreeDV API functions. \*---------------------------------------------------------------------------*/ /* Copyright (C) 2020 Jeroen Vreeken All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 2.1, as published by the Free Software Foundation. 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 Lesser General Public License along with this program; if not, see . */ #include #include #include #include #include #include #include #include #include "freedv_api.h" #include "codec2.h" /********************************************************** Encoding an ITU callsign (and 4 bit secondary station ID to a valid MAC address. http://dmlinking.net/eth_ar.html */ // Lookup table for valid callsign characters static char alnum2code[37] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 0 }; // Encode a callsign and ssid into a valid MAC address static int eth_ar_call2mac(uint8_t mac[6], char *callsign, int ssid, bool multicast) { uint64_t add = 0; int i; if (ssid > 15 || ssid < 0) return -1; for (i = 7; i >= 0; i--) { char c; if (i >= strlen(callsign)) { c = 0; } else { c = toupper(callsign[i]); } int j; for (j = 0; j < sizeof(alnum2code); j++) { if (alnum2code[j] == c) break; } if (j == sizeof(alnum2code)) return -1; add *= 37; add += j; } mac[0] = ((add >> (40 - 6)) & 0xc0) | (ssid << 2) | 0x02 | multicast; mac[1] = (add >> 32) & 0xff; mac[2] = (add >> 24) & 0xff; mac[3] = (add >> 16) & 0xff; mac[4] = (add >> 8) & 0xff; mac[5] = add & 0xff; return 0; } /********************************************************** Data channel callback functions */ struct my_callback_state { int calls; unsigned char mac[6]; }; /* Called when a packet has been received Should not be called in this tx-only test program */ void my_datarx(void *callback_state, unsigned char *packet, size_t size) { /* This should not happen while sending... */ fprintf(stderr, "datarx callback called, this should not happen!\n"); } /* Called when a new packet can be send. callback_state Private state variable, not touched by freedv. packet Data array where new packet data is expected size Available size in packet. On return the actual size of the packet */ void my_datatx(void *callback_state, unsigned char *packet, size_t *size) { static int data_type; struct my_callback_state *my_cb_state = callback_state; my_cb_state->calls++; /* Data could come from a network interface, here we just make up some */ if (data_type % 4 == 1) { /* Generate a packet with simple test pattern (counting */ /* Send a packet with data */ int i; /* Destination: broadcast */ memset(packet, 0xff, 6); /* Source: our eth_ar encoded callsign+ssid */ memcpy(packet+6, my_cb_state->mac, 6); /* Ether type: experimental (since this is just a test pattern) */ packet[12] = 0x01; packet[13] = 0x01; for (i = 0; i < 64; i++) packet[i + 14] = i; *size = i + 14; } else if (data_type % 4 == 2) { /* Generate an FPRS position report */ /* Destination: broadcast */ memset(packet, 0xff, 6); /* Source: our eth_ar encoded callsign+ssid */ memcpy(packet+6, my_cb_state->mac, 6); /* Ether type: FPRS */ packet[12] = 0x73; packet[13] = 0x70; packet[14] = 0x07; // Position element Lon 86.925026 Lat 27.987850 packet[15] = 0x3d; // packet[16] = 0xd0; packet[17] = 0x37; packet[18] = 0xd0 | 0x08 | 0x01; packet[19] = 0x3e; packet[20] = 0x70; packet[21] = 0x85; *size = 22; } else { /* Set size to zero, the freedv api will insert a header frame This is usefull for identifying ourselves */ *size = 0; } data_type++; } int main(int argc, char *argv[]) { FILE *fout; short *mod_out; struct freedv *freedv; struct my_callback_state my_cb_state; int mode; int n_nom_modem_samples; int i; int n_packets = 20; char *callsign = "NOCALL"; int ssid = 0; bool multicast = false; if (argc < 3) { printf("usage: %s 2400A|2400B|800XA OutputModemRawFile\n" " [--frames nr] [--callsign callsign] [--ssid ssid] [--mac-multicast 0|1]\n", argv[0]); printf("e.g %s 2400A data_fdmdv.raw\n", argv[0]); exit(1); } mode = -1; if (!strcmp(argv[1],"2400A")) mode = FREEDV_MODE_2400A; if (!strcmp(argv[1],"2400B")) mode = FREEDV_MODE_2400B; if (!strcmp(argv[1],"800XA")) mode = FREEDV_MODE_800XA; if (mode == -1) { fprintf(stderr, "Error in mode: %s\n", argv[1]); exit(0); } if (strcmp(argv[2], "-") == 0) fout = stdout; else if ( (fout = fopen(argv[2],"wb")) == NULL ) { fprintf(stderr, "Error opening output modem sample file: %s: %s.\n", argv[3], strerror(errno)); exit(1); } if (argc > 3) { for (i = 3; i < argc; i++) { if (strcmp(argv[i], "--packets") == 0) { n_packets = atoi(argv[i+1]); } if (strcmp(argv[i], "--callsign") == 0) { callsign = argv[i+1]; } if (strcmp(argv[i], "--ssid") == 0) { ssid = atoi(argv[i+1]); } if (strcmp(argv[i], "--mac-multicast") == 0) { multicast = atoi(argv[i+1]); } } } freedv = freedv_open(mode); assert(freedv != NULL); /* Generate our address */ eth_ar_call2mac(my_cb_state.mac, callsign, ssid, multicast); freedv_set_data_header(freedv, my_cb_state.mac); freedv_set_verbose(freedv, 1); n_nom_modem_samples = freedv_get_n_nom_modem_samples(freedv); mod_out = (short*)malloc(sizeof(short)*n_nom_modem_samples); assert(mod_out != NULL); /* set up callback for data packets */ freedv_set_callback_data(freedv, my_datarx, my_datatx, &my_cb_state); /* OK main loop */ /* We will loop untill the tx callback has been called n_packets times After that we continue untill everything is transmitted, as a data packet might be transmitted in multiple freedv frames. */ while (my_cb_state.calls <= n_packets || freedv_data_ntxframes(freedv)) { freedv_datatx(freedv, mod_out); fwrite(mod_out, sizeof(short), n_nom_modem_samples, fout); /* if this is in a pipeline, we probably don't want the usual buffering to occur */ if (fout == stdout) fflush(stdout); } free(mod_out); freedv_close(freedv); fclose(fout); fclose(stdin); fclose(stderr); return 0; } codec2-1.0.1/src/freedv_fsk.c000066400000000000000000000637071412132000500157220ustar00rootroot00000000000000/*---------------------------------------------------------------------------*\ FILE........: freedv_fsk.c AUTHOR......: David Rowe DATE CREATED: May 2020 Functions that implement the FreeDV modes that use the FSK modem. \*---------------------------------------------------------------------------*/ #include #include #include #include #include #include #include #include "fsk.h" #include "fmfsk.h" #include "codec2.h" #include "freedv_vhf_framing.h" #include "varicode.h" #include "freedv_api.h" #include "freedv_api_internal.h" #include "comp_prim.h" #include "debug_alloc.h" #include "ldpc_codes.h" #include "interldpc.h" /* 32 bit 0x5186fe15 Unique word for fsk_ldpc modes */ static uint8_t fsk_ldpc_uw[] = {0,1,0,1, 0,0,0,1, 1,0,0,0, 0,1,1,0, 1,1,1,1, 1,1,1,0, 0,0,0,1, 0,1,0,1}; void freedv_2400a_open(struct freedv *f) { f->n_protocol_bits = 20; f->deframer = fvhff_create_deframer(FREEDV_VHF_FRAME_A,0); assert(f->deframer != NULL); f->fsk = fsk_create_hbr(48000,1200,4,10,FSK_DEFAULT_NSYM,1200,1200); assert(f->fsk != NULL); /* Note: fsk expects tx/rx bits as an array of uint8_ts, not ints */ f->tx_bits = (int*)MALLOC(f->fsk->Nbits*sizeof(uint8_t)); assert(f->tx_bits != NULL); f->n_nom_modem_samples = f->fsk->N; f->n_max_modem_samples = f->fsk->N + (f->fsk->Ts); f->n_nat_modem_samples = f->fsk->N; f->nin = f->nin_prev = fsk_nin(f->fsk); f->modem_sample_rate = 48000; f->modem_symbol_rate = 1200; f->speech_sample_rate = FREEDV_FS_8000; f->codec2 = codec2_create(CODEC2_MODE_1300); assert(f->codec2 != NULL); f->n_speech_samples = codec2_samples_per_frame(f->codec2); f->n_codec_frames = 1; f->bits_per_codec_frame = codec2_bits_per_frame(f->codec2); f->bits_per_modem_frame = f->bits_per_codec_frame; int n_packed_bytes = (f->bits_per_modem_frame + 7)/8; f->tx_payload_bits = MALLOC(n_packed_bytes); assert(f->tx_payload_bits != NULL); f->rx_payload_bits = MALLOC(n_packed_bytes); assert(f->rx_payload_bits != NULL); } void freedv_2400b_open(struct freedv *f) { f->n_protocol_bits = 20; f->deframer = fvhff_create_deframer(FREEDV_VHF_FRAME_A,1); assert(f->deframer != NULL); f->fmfsk = fmfsk_create(48000,2400); assert (f->fmfsk != NULL); /* Note: fsk expects tx/rx bits as an array of uint8_ts, not ints */ f->tx_bits = (int*)MALLOC(f->fmfsk->nbit*sizeof(uint8_t)); assert(f->tx_bits != NULL); f->n_nom_modem_samples = f->fmfsk->N; f->n_max_modem_samples = f->fmfsk->N + (f->fmfsk->Ts); f->n_nat_modem_samples = f->fmfsk->N; f->nin = f->nin_prev = fmfsk_nin(f->fmfsk); f->modem_sample_rate = 48000; f->speech_sample_rate = FREEDV_FS_8000; f->codec2 = codec2_create(CODEC2_MODE_1300); assert(f->codec2 != NULL); f->n_speech_samples = codec2_samples_per_frame(f->codec2); f->n_codec_frames = 1; f->bits_per_codec_frame = codec2_bits_per_frame(f->codec2); f->bits_per_modem_frame = f->bits_per_codec_frame; int n_packed_bytes = (f->bits_per_modem_frame + 7)/8; f->tx_payload_bits = MALLOC(n_packed_bytes); assert(f->tx_payload_bits != NULL); f->rx_payload_bits = MALLOC(n_packed_bytes); assert(f->rx_payload_bits != NULL); } void freedv_800xa_open(struct freedv *f) { f->deframer = fvhff_create_deframer(FREEDV_HF_FRAME_B,0); assert(f->deframer != NULL); f->fsk = fsk_create_hbr(8000,400,4,10,32,800,400); assert(f->fsk != NULL); f->tx_bits = (int*)MALLOC(f->fsk->Nbits*sizeof(uint8_t)); assert(f->fsk != NULL); f->n_nom_modem_samples = f->fsk->N; f->n_max_modem_samples = f->fsk->N + (f->fsk->Ts); f->n_nat_modem_samples = f->fsk->N; f->nin = f->nin_prev = fsk_nin(f->fsk); f->modem_sample_rate = 8000; f->modem_symbol_rate = 400; fsk_stats_normalise_eye(f->fsk, 0); f->codec2 = codec2_create(CODEC2_MODE_700C); assert(f->codec2 != NULL); f->speech_sample_rate = FREEDV_FS_8000; f->n_codec_frames = 2; f->n_speech_samples = f->n_codec_frames*codec2_samples_per_frame(f->codec2); f->bits_per_codec_frame = codec2_bits_per_frame(f->codec2); f->bits_per_modem_frame = f->n_codec_frames*f->bits_per_codec_frame; int n_packed_bytes = (f->bits_per_modem_frame + 7)/8; f->tx_payload_bits = MALLOC(n_packed_bytes); assert(f->tx_payload_bits != NULL); f->rx_payload_bits = MALLOC(n_packed_bytes); assert(f->rx_payload_bits != NULL); } void freedv_fsk_ldpc_open(struct freedv *f, struct freedv_advanced *adv) { assert(adv != NULL); /* set up modem */ assert((adv->Fs % adv->Rs) == 0); // Fs/Rs must be an integer int P = adv->Fs/adv->Rs; assert(P >= 8); // Good idea for P >= 8 while ((P > 10) && ((P % 2) == 0)) // reduce internal oversampling rate P as far as we can, keep it an integer P /= 2; //fprintf(stderr, "Fs: %d Rs: %d M: %d P: %d\n", adv->Fs, adv->Rs, adv->M, P); f->fsk = fsk_create_hbr(adv->Fs, adv->Rs, adv->M, P, FSK_DEFAULT_NSYM, adv->first_tone, adv->tone_spacing); assert(f->fsk != NULL); fsk_set_freq_est_limits(f->fsk, 0, adv->Fs/2); fsk_stats_normalise_eye(f->fsk, 0); /* set up LDPC code */ int code_index = ldpc_codes_find(adv->codename); assert(code_index != -1); f->ldpc = (struct LDPC*)MALLOC(sizeof(struct LDPC)); assert(f->ldpc != NULL); ldpc_codes_setup(f->ldpc, adv->codename); f->ldpc->max_iter = 15; //fprintf(stderr, "Using: %s\n", f->ldpc->name); f->bits_per_modem_frame = f->ldpc->data_bits_per_frame; int bits_per_frame = f->ldpc->coded_bits_per_frame + sizeof(fsk_ldpc_uw); f->tx_payload_bits = malloc(f->bits_per_modem_frame); assert(f->tx_payload_bits != NULL); f->rx_payload_bits = malloc(f->bits_per_modem_frame); assert(f->rx_payload_bits != NULL); /* sample buffer size for tx modem samples, we modulate a full frame */ f->n_nom_modem_samples = f->fsk->Ts*(bits_per_frame/(f->fsk->mode>>1)); f->n_nat_modem_samples = f->n_nom_modem_samples; /* maximum sample buffer size for rx modem samples, note we only demodulate partial frames on each call to fsk_demod() */ f->n_max_modem_samples = f->fsk->N + (f->fsk->Ts); f->nin = f->nin_prev = fsk_nin(f->fsk); f->modem_sample_rate = adv->Fs; f->modem_symbol_rate = adv->Rs; f->tx_amp = FSK_SCALE; /* deframer set up */ f->frame_llr_size = 2*bits_per_frame; f->frame_llr = (float*)malloc(f->frame_llr_size*sizeof(float)); assert(f->frame_llr != NULL); f->frame_llr_nbits = 0; f->twoframes_hard = malloc(2*bits_per_frame); assert(f->twoframes_hard != NULL); memset(f->twoframes_hard, 0, 2*bits_per_frame); f->twoframes_llr = (float*)malloc(2*bits_per_frame*sizeof(float)); assert(f->twoframes_llr != NULL); for(int i=0; i<2*bits_per_frame; i++) f->twoframes_llr[i] = 0.0; /* currently configured a simple frame-frame approach */ f->fsk_ldpc_thresh1 = 5; f->fsk_ldpc_thresh2 = 6; f->fsk_ldpc_baduw_thresh=1; //fprintf(stderr, "thresh1: %d thresh2: %d\n", f->fsk_ldpc_thresh1, f->fsk_ldpc_thresh2); f->fsk_ldpc_baduw = 0; f->fsk_ldpc_best_location = 0; f->fsk_ldpc_state = 0; f->fsk_ldpc_snr = 1.0; f->fsk_S[0] = f->fsk_S[1] = f->fsk_N[0] = f->fsk_N[1] = 0.0; } /* TX routines for 2400 FSK modes, after codec2 encoding */ void freedv_tx_fsk_voice(struct freedv *f, short mod_out[]) { int i; float *tx_float; /* To hold on to modulated samps from fsk/fmfsk */ uint8_t vc_bits[2]; /* Varicode bits for 2400 framing */ uint8_t proto_bits[3]; /* Prococol bits for 2400 framing */ /* Frame for 2400A/B */ if(FDV_MODE_ACTIVE( FREEDV_MODE_2400A, f->mode) || FDV_MODE_ACTIVE( FREEDV_MODE_2400B, f->mode)){ /* Get varicode bits for TX and possibly ask for a new char */ /* 2 bits per 2400A/B frame, so this has to be done twice */ for(i=0;i<2;i++){ if (f->nvaricode_bits) { vc_bits[i] = f->tx_varicode_bits[f->varicode_bit_index++]; f->nvaricode_bits--; } if (f->nvaricode_bits == 0) { /* get new char and encode */ char s[2]; if (f->freedv_get_next_tx_char != NULL) { s[0] = (*f->freedv_get_next_tx_char)(f->callback_state); f->nvaricode_bits = varicode_encode(f->tx_varicode_bits, s, VARICODE_MAX_BITS, 1, 1); f->varicode_bit_index = 0; } } } /* If the API user hasn't set up message callbacks, don't bother with varicode bits */ if(f->freedv_get_next_proto != NULL){ (*f->freedv_get_next_proto)(f->proto_callback_state,(char*)proto_bits); fvhff_frame_bits(FREEDV_VHF_FRAME_A,(uint8_t*)(f->tx_bits),f->tx_payload_bits,proto_bits,vc_bits); }else if(f->freedv_get_next_tx_char != NULL){ fvhff_frame_bits(FREEDV_VHF_FRAME_A,(uint8_t*)(f->tx_bits),f->tx_payload_bits,NULL,vc_bits); }else { fvhff_frame_bits(FREEDV_VHF_FRAME_A,(uint8_t*)(f->tx_bits),f->tx_payload_bits,NULL,NULL); } /* Frame for 800XA */ }else if(FDV_MODE_ACTIVE( FREEDV_MODE_800XA, f->mode)){ fvhff_frame_bits(FREEDV_HF_FRAME_B,(uint8_t*)(f->tx_bits),f->tx_payload_bits,NULL,NULL); } /* Allocate floating point buffer for FSK mod */ tx_float = alloca(sizeof(float)*f->n_nom_modem_samples); /* do 4fsk mod */ if(FDV_MODE_ACTIVE( FREEDV_MODE_2400A, f->mode) || FDV_MODE_ACTIVE( FREEDV_MODE_800XA, f->mode)){ if (f->ext_vco) { fsk_mod_ext_vco(f->fsk,tx_float,(uint8_t*)(f->tx_bits), f->fsk->Nbits); for(i=0; in_nom_modem_samples; i++){ mod_out[i] = (short)tx_float[i]; } } else { fsk_mod(f->fsk,tx_float,(uint8_t*)(f->tx_bits),f->fsk->Nbits); /* Convert float samps to short */ for(i=0; in_nom_modem_samples; i++){ mod_out[i] = (short)(tx_float[i]*FSK_SCALE*NORM_PWR_FSK); } } /* do me-fsk mod */ }else if(FDV_MODE_ACTIVE( FREEDV_MODE_2400B, f->mode)){ fmfsk_mod(f->fmfsk,tx_float,(uint8_t*)(f->tx_bits)); /* Convert float samps to short */ for(i=0; in_nom_modem_samples; i++){ mod_out[i] = (short)(tx_float[i]*FMFSK_SCALE); } } } /* TX routines for 2400 FSK modes, after codec2 encoding */ void freedv_comptx_fsk_voice(struct freedv *f, COMP mod_out[]) { int i; float *tx_float; /* To hold on to modulated samps from fsk/fmfsk */ uint8_t vc_bits[2]; /* Varicode bits for 2400 framing */ uint8_t proto_bits[3]; /* Prococol bits for 2400 framing */ /* Frame for 2400A/B */ if(FDV_MODE_ACTIVE( FREEDV_MODE_2400A, f->mode) || FDV_MODE_ACTIVE( FREEDV_MODE_2400B, f->mode)){ /* Get varicode bits for TX and possibly ask for a new char */ /* 2 bits per 2400A/B frame, so this has to be done twice */ for(i=0;i<2;i++){ if (f->nvaricode_bits) { vc_bits[i] = f->tx_varicode_bits[f->varicode_bit_index++]; f->nvaricode_bits--; } if (f->nvaricode_bits == 0) { /* get new char and encode */ char s[2]; if (f->freedv_get_next_tx_char != NULL) { s[0] = (*f->freedv_get_next_tx_char)(f->callback_state); f->nvaricode_bits = varicode_encode(f->tx_varicode_bits, s, VARICODE_MAX_BITS, 1, 1); f->varicode_bit_index = 0; } } } /* If the API user hasn't set up message callbacks, don't bother with varicode bits */ if(f->freedv_get_next_proto != NULL){ (*f->freedv_get_next_proto)(f->proto_callback_state,(char*)proto_bits); fvhff_frame_bits(FREEDV_VHF_FRAME_A,(uint8_t*)(f->tx_bits),f->tx_payload_bits,proto_bits,vc_bits); }else if(f->freedv_get_next_tx_char != NULL){ fvhff_frame_bits(FREEDV_VHF_FRAME_A,(uint8_t*)(f->tx_bits),f->tx_payload_bits,NULL,vc_bits); }else { fvhff_frame_bits(FREEDV_VHF_FRAME_A,(uint8_t*)(f->tx_bits),f->tx_payload_bits,NULL,NULL); } /* Frame for 800XA */ }else if(FDV_MODE_ACTIVE( FREEDV_MODE_800XA, f->mode)){ fvhff_frame_bits(FREEDV_HF_FRAME_B,(uint8_t*)(f->tx_bits),f->tx_payload_bits,NULL,NULL); } /* Allocate floating point buffer for FSK mod */ tx_float = alloca(sizeof(float)*f->n_nom_modem_samples); /* do 4fsk mod */ if(FDV_MODE_ACTIVE( FREEDV_MODE_2400A, f->mode) || FDV_MODE_ACTIVE( FREEDV_MODE_800XA, f->mode)){ fsk_mod_c(f->fsk,mod_out,(uint8_t*)(f->tx_bits), f->fsk->Nbits); /* Convert float samps to short */ for(i=0; in_nom_modem_samples; i++){ mod_out[i] = fcmult(NORM_PWR_FSK,mod_out[i]); } /* do me-fsk mod */ }else if(FDV_MODE_ACTIVE( FREEDV_MODE_2400B, f->mode)){ fmfsk_mod(f->fmfsk,tx_float,(uint8_t*)(f->tx_bits)); /* Convert float samps to short */ for(i=0; in_nom_modem_samples; i++){ mod_out[i].real = (tx_float[i]); } } } /* TX routines for 2400 FSK modes, data channel */ void freedv_tx_fsk_data(struct freedv *f, short mod_out[]) { int i; float *tx_float; /* To hold on to modulated samps from fsk/fmfsk */ if (FDV_MODE_ACTIVE( FREEDV_MODE_800XA, f->mode)) fvhff_frame_data_bits(f->deframer, FREEDV_HF_FRAME_B,(uint8_t*)(f->tx_bits)); else fvhff_frame_data_bits(f->deframer, FREEDV_VHF_FRAME_A,(uint8_t*)(f->tx_bits)); /* Allocate floating point buffer for FSK mod */ tx_float = alloca(sizeof(float)*f->n_nom_modem_samples); /* do 4fsk mod */ if (FDV_MODE_ACTIVE( FREEDV_MODE_2400A, f->mode) || FDV_MODE_ACTIVE( FREEDV_MODE_800XA, f->mode)){ fsk_mod(f->fsk,tx_float,(uint8_t*)(f->tx_bits), f->fsk->Nbits); /* Convert float samps to short */ for(i=0; in_nom_modem_samples; i++){ mod_out[i] = (short)(tx_float[i]*FSK_SCALE); } /* do me-fsk mod */ } else if(FDV_MODE_ACTIVE( FREEDV_MODE_2400B, f->mode)){ fmfsk_mod(f->fmfsk,tx_float,(uint8_t*)(f->tx_bits)); /* Convert float samps to short */ for(i=0; in_nom_modem_samples; i++){ mod_out[i] = (short)(tx_float[i]*FMFSK_SCALE); } } } int freedv_tx_fsk_ldpc_bits_per_frame(struct freedv *f) { return f->ldpc->coded_bits_per_frame + sizeof(fsk_ldpc_uw); } /* in a separate function so callable by other FSK Txs */ void freedv_tx_fsk_ldpc_framer(struct freedv *f, uint8_t frame[], uint8_t payload_data[]) { /* lets build up the frame to Tx ............. */ /* insert UW */ memcpy(frame, fsk_ldpc_uw, sizeof(fsk_ldpc_uw)); /* insert data bits */ memcpy(frame + sizeof(fsk_ldpc_uw), payload_data, f->bits_per_modem_frame); /* insert parity bits */ encode(f->ldpc, frame + sizeof(fsk_ldpc_uw), frame + sizeof(fsk_ldpc_uw) + f->bits_per_modem_frame); } /* FreeDV FSK_LDPC mode tx */ void freedv_tx_fsk_ldpc_data(struct freedv *f, COMP mod_out[]) { int bits_per_frame = freedv_tx_fsk_ldpc_bits_per_frame(f); uint8_t frame[bits_per_frame]; assert(f->mode == FREEDV_MODE_FSK_LDPC); freedv_tx_fsk_ldpc_framer(f, frame, f->tx_payload_bits); fsk_mod_c(f->fsk, mod_out, frame, bits_per_frame); /* scale samples */ for(int i=0; in_nom_modem_samples; i++) { mod_out[i].real *= f->tx_amp; mod_out[i].imag *= f->tx_amp; } } void freedv_tx_fsk_ldpc_data_preamble(struct freedv *f, COMP mod_out[], int npreamble_bits, int npreamble_samples) { struct FSK *fsk = f->fsk; uint8_t preamble[npreamble_bits]; // cycle through all 2 and 4FSK symbols, not sure if this is better than random int sym = 0; for(int i=0; i>1) & 0x1; preamble[i+1] = sym & 0x1; sym += 1; } fsk_mod_c(fsk, mod_out, preamble, npreamble_bits); /* scale samples */ for(int i=0; itx_amp; mod_out[i].imag *= f->tx_amp; } } /* FreeDV FSK_LDPC mode rx */ int freedv_rx_fsk_ldpc_data(struct freedv *f, COMP demod_in[]) { int bits_per_frame = freedv_tx_fsk_ldpc_bits_per_frame(f); struct FSK *fsk = f->fsk; float rx_filt[fsk->mode*fsk->Nsym]; int rx_status = 0, seq = 0; /* Couple of layers of buffers to move chunks of fsk->Nbits into a double buffer we can use for frame sync. There are other ways of doing this, e.g. FIFOs */ /* demodulate to bit LLRs which are placed at end of buffer */ fsk_demod_sd(fsk, rx_filt, demod_in); fsk_rx_filt_to_llrs(&f->frame_llr[f->frame_llr_nbits], rx_filt, fsk->v_est, fsk->SNRest, fsk->mode, fsk->Nsym); f->nin = fsk_nin(fsk); f->frame_llr_nbits += fsk->Nbits; assert(f->frame_llr_nbits < f->frame_llr_size); if (f->frame_llr_nbits >= bits_per_frame) { /* We have an entire frame of llrs, place them at the end of the double buffer */ memmove(f->twoframes_llr, &f->twoframes_llr[bits_per_frame], bits_per_frame*sizeof(float)); memcpy(&f->twoframes_llr[bits_per_frame], f->frame_llr, bits_per_frame*sizeof(float)); /* update new hard decisions buffer (used for UW search) */ memmove(f->twoframes_hard, &f->twoframes_hard[bits_per_frame], bits_per_frame); for(int i=0; iframe_llr[i] < 0) f->twoframes_hard[bits_per_frame + i] = 1; else f->twoframes_hard[bits_per_frame + i] = 0; } /* update single frame buffer */ memmove(f->frame_llr, &f->frame_llr[bits_per_frame], (f->frame_llr_nbits-bits_per_frame)*sizeof(float)); f->frame_llr_nbits -= bits_per_frame; assert(f->frame_llr_nbits >= 0); /* Sample SNR which we report back to used in fsk->snr_est. Note that fsk->SNRest is the SNR of the last fsk->Nbits that were placed at the end of the buffer. We delay this by one frame to report the SNR of the frame we are currently decoding */ f->snr_est = (double)10.0*log10(f->fsk_ldpc_snr); f->fsk_ldpc_snr = fsk->SNRest; f->fsk_S[0] = f->fsk_S[1]; f->fsk_N[0] = f->fsk_N[1]; /* also store delayed versions of signal and noise power, useful for channel estimation */ f->fsk_S[1] = fsk->rx_sig_pow; f->fsk_N[1] = fsk->rx_nse_pow; /* OK lets run frame based processing, starting with state machine */ int errors = 0; int next_state = f->fsk_ldpc_state; switch(f->fsk_ldpc_state) { case 0: /* out of sync - look for UW */ f->fsk_ldpc_best_location = 0; int best_errors = sizeof(fsk_ldpc_uw); for(int i=0; itwoframes_hard[i+u] ^ fsk_ldpc_uw[u]; //fprintf(stderr, " errors: %d %d %d\n", i, errors, best_errors); if (errors < best_errors) { best_errors = errors; f->fsk_ldpc_best_location = i; } } if (best_errors <= f->fsk_ldpc_thresh1) { errors = best_errors; next_state = 1; f->fsk_ldpc_baduw = 0; } break; case 1: /* in sync */ assert(f->fsk_ldpc_best_location >= 0); assert(f->fsk_ldpc_best_location < bits_per_frame); /* check UW still OK */ for(int u=0; utwoframes_hard[f->fsk_ldpc_best_location+u] ^ fsk_ldpc_uw[u]; if (errors > f->fsk_ldpc_thresh2) { f->fsk_ldpc_baduw++; if (f->fsk_ldpc_baduw >= f->fsk_ldpc_baduw_thresh) { next_state = 0; } } else f->fsk_ldpc_baduw = 0; break; } int Nerrs_raw=0, Nerrs_coded=0, iter=0, parityCheckCount=0; if (next_state == 1) { /* We may have a valid frame, based on the number on UW errors. Lets do a LDPC decode and check the CRC */ uint8_t decoded_codeword[f->ldpc->ldpc_coded_bits_per_frame]; iter = run_ldpc_decoder(f->ldpc, decoded_codeword, &f->twoframes_llr[f->fsk_ldpc_best_location+sizeof(fsk_ldpc_uw)], &parityCheckCount); memcpy(f->rx_payload_bits, decoded_codeword, f->bits_per_modem_frame); /* check CRC */ if (freedv_check_crc16_unpacked(f->rx_payload_bits, f->bits_per_modem_frame)) rx_status |= FREEDV_RX_BITS; else { /* if CRC failed on first frame in packet, this was probably a dud UW match, so go straight back to searching */ if (f->fsk_ldpc_state == 0) next_state = 0; rx_status |= FREEDV_RX_BIT_ERRORS; } } f->fsk_ldpc_state = next_state; if (f->fsk_ldpc_state == 1) { if (f->test_frames) { /* regenerate tx test frame */ uint8_t tx_frame[bits_per_frame]; memcpy(tx_frame, fsk_ldpc_uw, sizeof(fsk_ldpc_uw)); ofdm_generate_payload_data_bits(tx_frame + sizeof(fsk_ldpc_uw), f->bits_per_modem_frame); int bytes_per_modem_frame = f->bits_per_modem_frame/8; uint8_t tx_bytes[bytes_per_modem_frame]; freedv_pack(tx_bytes, tx_frame + sizeof(fsk_ldpc_uw), f->bits_per_modem_frame); uint16_t tx_crc16 = freedv_gen_crc16(tx_bytes, bytes_per_modem_frame - 2); uint8_t tx_crc16_bytes[] = { tx_crc16 >> 8, tx_crc16 & 0xff }; freedv_unpack(tx_frame + sizeof(fsk_ldpc_uw) + f->bits_per_modem_frame - 16, tx_crc16_bytes, 16); encode(f->ldpc, tx_frame + sizeof(fsk_ldpc_uw), tx_frame + sizeof(fsk_ldpc_uw) + f->bits_per_modem_frame); /* count uncoded (raw) errors across UW, payload bits, parity bits */ Nerrs_raw = count_errors(tx_frame, f->twoframes_hard + f->fsk_ldpc_best_location, bits_per_frame); f->total_bit_errors += Nerrs_raw; f->total_bits += bits_per_frame; /* count coded errors across just payload bits */ Nerrs_coded = count_errors(tx_frame + sizeof(fsk_ldpc_uw), f->rx_payload_bits, f->bits_per_modem_frame); f->total_bit_errors_coded += Nerrs_coded; f->total_bits_coded += f->bits_per_modem_frame; if (Nerrs_coded) f->total_packet_errors++; f->total_packets++; } /* extract packet sequnce numbers optionally placed in byte[0] */ seq = 0; for(int i=0; i<8; i++) seq |= f->rx_payload_bits[8+i] << (7-i); } if (f->fsk_ldpc_state == 1) rx_status |= FREEDV_RX_SYNC; /* need this set before verbose logging fprintf() */ if (((f->verbose == 1) && (rx_status & FREEDV_RX_BITS)) || (f->verbose == 2)) { fprintf(stderr, "%3d nbits: %3d st: %d uwloc: %3d uwerr: %2d bad_uw: %d snrdB: %4.1f eraw: %3d ecdd: %3d " "iter: %3d pcc: %3d seq: %3d rxst: %s\n", ++(f->frames), f->frame_llr_nbits, f->fsk_ldpc_state, f->fsk_ldpc_best_location, errors, f->fsk_ldpc_baduw, (double)f->snr_est, Nerrs_raw, Nerrs_coded, iter, parityCheckCount, seq, rx_sync_flags_to_text[rx_status]); } } else { /* set RX_SYNC flag even if we don't perform frame processing */ if (f->fsk_ldpc_state == 1) rx_status |= FREEDV_RX_SYNC; } return rx_status; } int freedv_comprx_fsk(struct freedv *f, COMP demod_in[]) { /* Varicode and protocol bits */ uint8_t vc_bits[2]; uint8_t proto_bits[3]; short vc_bit; int i; int n_ascii; char ascii_out; int rx_status = 0; if(FDV_MODE_ACTIVE( FREEDV_MODE_2400A, f->mode) || FDV_MODE_ACTIVE( FREEDV_MODE_800XA, f->mode)){ fsk_demod(f->fsk,(uint8_t*)f->tx_bits,demod_in); f->nin = fsk_nin(f->fsk); float EbNodB = f->fsk->stats->snr_est; /* fsk demod actually estimates Eb/No */ f->snr_est = EbNodB + 10.0*log10f(800.0/3000.0); /* so convert to SNR Rb=800, noise B=3000 */ } else{ /* 2400B needs real input samples */ int n = fmfsk_nin(f->fmfsk); float demod_in_float[n]; for(i=0; ifmfsk,(uint8_t*)f->tx_bits,demod_in_float); /* The fmfsk modem operates on the baseband output of an analog FM demod so the mapping to SNR in 8k is hard to determine */ f->snr_est = f->fmfsk->snr_mean; f->nin = fmfsk_nin(f->fmfsk); } rx_status = fvhff_deframe_bits(f->deframer,f->rx_payload_bits,proto_bits,vc_bits,(uint8_t*)f->tx_bits); if((rx_status & FREEDV_RX_SYNC) && (rx_status & FREEDV_RX_BITS)){ /* Decode varicode text */ for(i=0; i<2; i++){ /* Note: deframe_bits spits out bits in uint8_ts while varicode_decode expects shorts */ vc_bit = vc_bits[i]; n_ascii = varicode_decode(&f->varicode_dec_states, &ascii_out, &vc_bit, 1, 1); if (n_ascii && (f->freedv_put_next_rx_char != NULL)) { (*f->freedv_put_next_rx_char)(f->callback_state, ascii_out); } } /* Pass proto bits on down if callback is present */ if( f->freedv_put_next_proto != NULL){ (*f->freedv_put_next_proto)(f->proto_callback_state,(char*)proto_bits); } f->sync = 1; } else f->sync = 0; return rx_status; } int freedv_floatrx(struct freedv *f, short speech_out[], float demod_in[]) { assert(f != NULL); int i; int nin = freedv_nin(f); assert(nin <= f->n_max_modem_samples); COMP rx_fdm[f->n_max_modem_samples]; for(i=0; i. */ #include #include #include #include #include #include #include #include "freedv_api.h" #include "modem_stats.h" #include "codec2.h" struct my_callback_state { int calls; FILE *ftxt; }; /* Called when a packet has been received */ void my_datarx(void *callback_state, unsigned char *packet, size_t size) { struct my_callback_state* pstate = (struct my_callback_state*)callback_state; pstate->calls++; if (pstate->ftxt != NULL) { size_t i; fprintf(pstate->ftxt, "data (%zd bytes): ", size); for (i = 0; i < size; i++) { fprintf(pstate->ftxt, "0x%02x ", packet[i]); } fprintf(pstate->ftxt, "\n"); } } /* Called when a new packet can be send */ void my_datatx(void *callback_state, unsigned char *packet, size_t *size) { /* This should not happen while receiving.. */ fprintf(stderr, "datarx callback called, this should not happen!\n"); *size = 0; } int main(int argc, char *argv[]) { FILE *fin, *fout, *ftxt; struct freedv *freedv; int nin, nout, nout_total = 0, frame = 0; struct my_callback_state my_cb_state = {0}; int mode; int use_codecrx, verbose; struct CODEC2 *c2 = NULL; int i; if (argc < 4) { printf("usage: %s 2400A|2400B|800XA InputModemSpeechFile OutputSpeechRawFile\n" " [--codecrx] [-v]\n", argv[0]); printf("e.g %s 2400A hts1a_fdmdv.raw hts1a_out.raw\n", argv[0]); exit(1); } mode = -1; if (!strcmp(argv[1],"2400A")) mode = FREEDV_MODE_2400A; if (!strcmp(argv[1],"2400B")) mode = FREEDV_MODE_2400B; if (!strcmp(argv[1],"800XA")) mode = FREEDV_MODE_800XA; assert(mode != -1); if (strcmp(argv[2], "-") == 0) fin = stdin; else if ( (fin = fopen(argv[2],"rb")) == NULL ) { fprintf(stderr, "Error opening input raw modem sample file: %s: %s.\n", argv[2], strerror(errno)); exit(1); } if (strcmp(argv[3], "-") == 0) fout = stdout; else if ( (fout = fopen(argv[3],"wb")) == NULL ) { fprintf(stderr, "Error opening output speech sample file: %s: %s.\n", argv[3], strerror(errno)); exit(1); } use_codecrx = 0; verbose = 0; if (argc > 4) { for (i = 4; i < argc; i++) { if (strcmp(argv[i], "--codecrx") == 0) { int c2_mode; if ((mode == FREEDV_MODE_700C) || (mode == FREEDV_MODE_700D) || (mode == FREEDV_MODE_800XA)) { c2_mode = CODEC2_MODE_700C; } else { c2_mode = CODEC2_MODE_1300; } use_codecrx = 1; c2 = codec2_create(c2_mode); assert(c2 != NULL); } if (strcmp(argv[i], "-v") == 0) { verbose = 1; } if (strcmp(argv[i], "-vv") == 0) { verbose = 2; } } } freedv = freedv_open(mode); assert(freedv != NULL); freedv_set_verbose(freedv, verbose); short speech_out[freedv_get_n_max_speech_samples(freedv)]; short demod_in[freedv_get_n_max_modem_samples(freedv)]; ftxt = fopen("freedv_rx_log.txt","wt"); assert(ftxt != NULL); my_cb_state.ftxt = ftxt; freedv_set_callback_data(freedv, my_datarx, my_datatx, &my_cb_state); /* Note we need to work out how many samples demod needs on each call (nin). This is used to adjust for differences in the tx and rx sample clock frequencies. Note also the number of output speech samples is time varying (nout). */ nin = freedv_nin(freedv); while(fread(demod_in, sizeof(short), nin, fin) == nin) { frame++; if (use_codecrx == 0) { /* usual case: use the freedv_api to do everything: speech decoding, demodulating */ nout = freedv_rx(freedv, speech_out, demod_in); } else { /* demo of codecrx mode - separate demodulation and speech decoding */ int bits_per_codec_frame = freedv_get_bits_per_codec_frame(freedv); int bits_per_modem_frame = freedv_get_bits_per_modem_frame(freedv); int bytes_per_codec_frame = (bits_per_codec_frame + 7) / 8; int bytes_per_modem_frame = (bits_per_modem_frame + 7) / 8; int codec_frames = bits_per_modem_frame / bits_per_codec_frame; int samples_per_frame = codec2_samples_per_frame(c2); unsigned char encoded[bytes_per_codec_frame * codec_frames]; unsigned char rawdata[bytes_per_modem_frame]; nout = 0; /* Use the freedv_api to demodulate only */ int ncodec = freedv_rawdatarx(freedv, rawdata, demod_in); freedv_codec_frames_from_rawdata(freedv, encoded, rawdata); /* decode the speech ourself (or send it to elsewhere, e.g. network) */ if (ncodec) { unsigned char *enc_frame = encoded; short *speech_frame = speech_out; for (i = 0; i < codec_frames; i++) { codec2_decode(c2, speech_frame, enc_frame); enc_frame += bytes_per_codec_frame; speech_frame += samples_per_frame; nout += samples_per_frame; } } } fprintf(ftxt, "Demod of %d samples resulted %d speech samples\n", nin, nout); if (nout == 0) { /* We did not get any audio. This means the modem is (probably) synced, but a data frame was received Fill in the 'blanks' use by data frames with silence */ nout = freedv_get_n_speech_samples(freedv); memset(speech_out, 0, nout * sizeof(short)); } nin = freedv_nin(freedv); fwrite(speech_out, sizeof(short), nout, fout); nout_total += nout; /* if this is in a pipeline, we probably don't want the usual buffering to occur */ if (fout == stdout) fflush(stdout); } fclose(ftxt); fclose(fin); fclose(fout); fprintf(stderr, "frames decoded: %d output speech samples: %d, data packets: %d\n", frame, nout_total, my_cb_state.calls); freedv_close(freedv); return 0; } codec2-1.0.1/src/freedv_mixed_tx.c000066400000000000000000000262701412132000500167520ustar00rootroot00000000000000/*---------------------------------------------------------------------------*\ FILE........: freedv_mixed_tx.c AUTHOR......: Jeroen Vreeken & David Rowe DATE CREATED: May 2020 Demo transmit program for FreeDV API that demonstrates shows mixed VHF packet data and speech frames. \*---------------------------------------------------------------------------*/ /* Copyright (C) 2014 David Rowe All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 2.1, as published by the Free Software Foundation. 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 Lesser General Public License along with this program; if not, see . */ #include #include #include #include #include #include #include #include #include "freedv_api.h" #include "codec2.h" /********************************************************** Encoding an ITU callsign (and 4 bit secondary station ID to a valid MAC address. http://dmlinking.net/eth_ar.html */ // Lookup table for valid callsign characters static char alnum2code[37] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 0 }; // Encode a callsign and ssid into a valid MAC address static int eth_ar_call2mac(uint8_t mac[6], char *callsign, int ssid, bool multicast) { uint64_t add = 0; int i; if (ssid > 15 || ssid < 0) return -1; for (i = 7; i >= 0; i--) { char c; if (i >= strlen(callsign)) { c = 0; } else { c = toupper(callsign[i]); } int j; for (j = 0; j < sizeof(alnum2code); j++) { if (alnum2code[j] == c) break; } if (j == sizeof(alnum2code)) return -1; add *= 37; add += j; } mac[0] = ((add >> (40 - 6)) & 0xc0) | (ssid << 2) | 0x02 | multicast; mac[1] = (add >> 32) & 0xff; mac[2] = (add >> 24) & 0xff; mac[3] = (add >> 16) & 0xff; mac[4] = (add >> 8) & 0xff; mac[5] = add & 0xff; return 0; } /********************************************************** Data channel callback functions */ struct my_callback_state { int calls; unsigned char mac[6]; }; /* Called when a packet has been received Should not be called in this tx-only test program */ void my_datarx(void *callback_state, unsigned char *packet, size_t size) { /* This should not happen while sending... */ fprintf(stderr, "datarx callback called, this should not happen!\n"); } /* Called when a new packet can be send. callback_state Private state variable, not touched by freedv. packet Data array where new packet data is expected size Available size in packet. On return the actual size of the packet */ void my_datatx(void *callback_state, unsigned char *packet, size_t *size) { static int data_type; struct my_callback_state *my_cb_state = callback_state; my_cb_state->calls++; /* Data could come from a network interface, here we just make up some */ if (data_type % 4 == 1) { /* Generate a packet with simple test pattern (counting */ /* Send a packet with data */ int i; /* Destination: broadcast */ memset(packet, 0xff, 6); /* Source: our eth_ar encoded callsign+ssid */ memcpy(packet+6, my_cb_state->mac, 6); /* Ether type: experimental (since this is just a test pattern) */ packet[12] = 0x01; packet[13] = 0x01; for (i = 0; i < 64; i++) packet[i + 14] = i; *size = i + 14; } else if (data_type % 4 == 2) { /* Generate an FPRS position report */ /* Destination: broadcast */ memset(packet, 0xff, 6); /* Source: our eth_ar encoded callsign+ssid */ memcpy(packet+6, my_cb_state->mac, 6); /* Ether type: FPRS */ packet[12] = 0x73; packet[13] = 0x70; packet[14] = 0x07; // Position element Lon 86.925026 Lat 27.987850 packet[15] = 0x3d; // packet[16] = 0xd0; packet[17] = 0x37; packet[18] = 0xd0 | 0x08 | 0x01; packet[19] = 0x3e; packet[20] = 0x70; packet[21] = 0x85; *size = 22; } else { /* Set size to zero, the freedv api will insert a header frame This is usefull for identifying ourselves */ *size = 0; } data_type++; } /* Determine the amount of 'energy' in the samples by squaring them This is not a perfect VAD as noise may trigger it, but works well for demonstrations. */ static float samples_get_energy(short *samples, int nr) { float e = 0; int i; for (i = 0; i < nr; i++) { e += (float)(samples[i] * samples[i]) / (8192); } e /= nr; return e; } int main(int argc, char *argv[]) { FILE *fin, *fout; short *speech_in; short *mod_out; struct freedv *freedv; struct my_callback_state my_cb_state; int mode; int n_speech_samples; int n_nom_modem_samples; char *callsign = "NOCALL"; int ssid = 0; bool multicast = false; int use_codectx; struct CODEC2 *c2; int i; float data_threshold = 15; if (argc < 4) { printf("usage: %s 2400A|2400B|800XA InputRawSpeechFile OutputModemRawFile\n" " [--codectx] [--callsign callsign] [--ssid ssid] [--mac-multicast 0|1] [--data-threshold val]\n", argv[0]); printf("e.g %s 2400A hts1a.raw hts1a_fdmdv.raw\n", argv[0]); exit(1); } mode = -1; if (!strcmp(argv[1],"2400A")) mode = FREEDV_MODE_2400A; if (!strcmp(argv[1],"2400B")) mode = FREEDV_MODE_2400B; if (!strcmp(argv[1],"800XA")) mode = FREEDV_MODE_800XA; if (mode == -1) { fprintf(stderr, "Error in mode: %s\n", argv[1]); exit(0); } if (strcmp(argv[2], "-") == 0) fin = stdin; else if ( (fin = fopen(argv[2],"rb")) == NULL ) { fprintf(stderr, "Error opening input raw speech sample file: %s: %s.\n", argv[2], strerror(errno)); exit(1); } if (strcmp(argv[3], "-") == 0) fout = stdout; else if ( (fout = fopen(argv[3],"wb")) == NULL ) { fprintf(stderr, "Error opening output modem sample file: %s: %s.\n", argv[3], strerror(errno)); exit(1); } use_codectx = 0; if (argc > 4) { for (i = 4; i < argc; i++) { if (strcmp(argv[i], "--codectx") == 0) { int c2_mode; if ((mode == FREEDV_MODE_700C) || (mode == FREEDV_MODE_700D) || (mode == FREEDV_MODE_800XA)) { c2_mode = CODEC2_MODE_700C; } else { c2_mode = CODEC2_MODE_1300; } use_codectx = 1; c2 = codec2_create(c2_mode); assert(c2 != NULL); } if (strcmp(argv[i], "--callsign") == 0) { callsign = argv[i+1]; } if (strcmp(argv[i], "--ssid") == 0) { ssid = atoi(argv[i+1]); } if (strcmp(argv[i], "--mac-multicast") == 0) { multicast = atoi(argv[i+1]); } if (strcmp(argv[i], "--data-threshold") == 0) { data_threshold = atof(argv[i+1]); } } } freedv = freedv_open(mode); assert(freedv != NULL); /* Generate our address */ eth_ar_call2mac(my_cb_state.mac, callsign, ssid, multicast); freedv_set_data_header(freedv, my_cb_state.mac); freedv_set_verbose(freedv, 1); n_speech_samples = freedv_get_n_speech_samples(freedv); n_nom_modem_samples = freedv_get_n_nom_modem_samples(freedv); speech_in = (short*)malloc(sizeof(short)*n_speech_samples); assert(speech_in != NULL); mod_out = (short*)malloc(sizeof(short)*n_nom_modem_samples); assert(mod_out != NULL); //fprintf(stderr, "n_speech_samples: %d n_nom_modem_samples: %d\n", n_speech_samples, n_nom_modem_samples); /* set up callback for data packets */ freedv_set_callback_data(freedv, my_datarx, my_datatx, &my_cb_state); /* OK main loop */ while(fread(speech_in, sizeof(short), n_speech_samples, fin) == n_speech_samples) { if (use_codectx == 0) { /* Use the freedv_api to do everything: speech encoding, modulating */ float energy = samples_get_energy(speech_in, n_speech_samples); /* Is the audio fragment quiet? */ if (energy < data_threshold) { /* Insert a frame with data instead of speech */ freedv_datatx(freedv, mod_out); } else { /* transmit voice frame */ freedv_tx(freedv, mod_out, speech_in); } } else { /* Use the freedv_api to do the modem part, encode ourselves - First encode the frames - Get activity from codec2 api - Based on activity either send encoded voice or data */ int bits_per_codec_frame = freedv_get_bits_per_codec_frame(freedv); int bits_per_modem_frame = freedv_get_bits_per_modem_frame(freedv); int bytes_per_codec_frame = (bits_per_codec_frame + 7) / 8; int bytes_per_modem_frame = (bits_per_modem_frame + 7) / 8; int codec_frames = bits_per_modem_frame / bits_per_codec_frame; int samples_per_frame = codec2_samples_per_frame(c2); unsigned char encoded[bytes_per_codec_frame * codec_frames]; unsigned char rawdata[bytes_per_modem_frame]; unsigned char *enc_frame = encoded; short *speech_frame = speech_in; float energy = 0; /* Encode the speech ourself (or get it from elsewhere, e.g. network) */ for (i = 0; i < codec_frames; i++) { codec2_encode(c2, enc_frame, speech_frame); energy += codec2_get_energy(c2, enc_frame); enc_frame += bytes_per_codec_frame; speech_frame += samples_per_frame; } energy /= codec_frames; /* Is the audio fragment quiet? */ if (energy < data_threshold) { /* Insert a frame with data instead of speech */ freedv_datatx(freedv, mod_out); } else { /* Use the freedv_api to modulate already encoded frames */ freedv_rawdata_from_codec_frames(freedv, rawdata, encoded); freedv_rawdatatx(freedv, mod_out, rawdata); } } fwrite(mod_out, sizeof(short), n_nom_modem_samples, fout); /* if this is in a pipeline, we probably don't want the usual buffering to occur */ if (fout == stdout) fflush(stdout); } free(speech_in); free(mod_out); freedv_close(freedv); fclose(fin); fclose(fout); fclose(stdin); fclose(stderr); return 0; } codec2-1.0.1/src/freedv_rx.c000066400000000000000000000245051412132000500155610ustar00rootroot00000000000000/*---------------------------------------------------------------------------*\ FILE........: freedv_rx.c AUTHOR......: David Rowe DATE CREATED: August 2014 Demo/development receive program for FreeDV API functions: Example usage (all one line): $ cd codec2/build_linux/src $ ./freedv_tx 1600 ../../raw/ve9qrp_10s.raw - | ./freedv_rx 1600 - - | aplay -f S16 \*---------------------------------------------------------------------------*/ /* Copyright (C) 2014 David Rowe All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 2.1, as published by the Free Software Foundation. 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 Lesser General Public License along with this program; if not, see . */ #include #include #include #include #include #include "reliable_text.h" #include "freedv_api.h" #include "modem_stats.h" #define NDISCARD 5 /* BER measure optionally discards first few frames after sync */ /* optioal call-back function for received txt characters */ void my_put_next_rx_char(void *states, char c) { fprintf((FILE*)states, "%c", c); } static FILE* reliable_tx_fp; reliable_text_t reliable_text_obj; void on_reliable_text_rx(reliable_text_t rt, const char* txt_ptr, int length, void* state) { fprintf(reliable_tx_fp, "%s\n", txt_ptr); reliable_text_reset(reliable_text_obj); } int main(int argc, char *argv[]) { FILE *fin, *fout, *ftxt_rx = NULL; int nin, nout, nout_total = 0, frame = 0; struct MODEM_STATS stats = {0}; int mode; int sync; float snr_est; float clock_offset; int use_testframes, verbose, discard, use_complex, use_dpsk, use_reliabletext; int use_squelch, highpassthroughgain; float squelch = 0; int i; struct freedv *freedv; if (argc < 4) { char f2020[80] = {0}; #ifdef __LPCNET__ sprintf(f2020,"|2020"); #endif printf("usage: %s 1600|700C|700D|700E|2400A|2400B|800XA%s InputModemSpeechFile OutputSpeechRawFile\n" " [--testframes] [-v] [--discard] [--usecomplex] [--dpsk] [--squelch leveldB] [--txtrx filename] [--reliabletext]\n" " [--highpassthroughgain]\n", argv[0],f2020); printf("e.g %s 1600 hts1a_fdmdv.raw hts1a_out.raw\n", argv[0]); exit(1); } mode = -1; if (!strcmp(argv[1],"1600")) mode = FREEDV_MODE_1600; if (!strcmp(argv[1],"700C")) mode = FREEDV_MODE_700C; if (!strcmp(argv[1],"700D")) mode = FREEDV_MODE_700D; if (!strcmp(argv[1],"700E")) mode = FREEDV_MODE_700E; if (!strcmp(argv[1],"2400A")) mode = FREEDV_MODE_2400A; if (!strcmp(argv[1],"2400B")) mode = FREEDV_MODE_2400B; if (!strcmp(argv[1],"800XA")) mode = FREEDV_MODE_800XA; #ifdef __LPCNET__ if (!strcmp(argv[1],"2020")) mode = FREEDV_MODE_2020; #endif if (mode == -1) { fprintf(stderr, "Error in mode: %s\n", argv[1]); exit(1); } if (strcmp(argv[2], "-") == 0) fin = stdin; else if ( (fin = fopen(argv[2],"rb")) == NULL ) { fprintf(stderr, "Error opening input raw modem sample file: %s: %s.\n", argv[2], strerror(errno)); exit(1); } if (strcmp(argv[3], "-") == 0) fout = stdout; else if ( (fout = fopen(argv[3],"wb")) == NULL ) { fprintf(stderr, "Error opening output speech sample file: %s: %s.\n", argv[3], strerror(errno)); exit(1); } use_testframes = verbose = discard = use_complex = use_dpsk = use_squelch = 0; use_reliabletext = 0; highpassthroughgain = 0; if (argc > 4) { for (i = 4; i < argc; i++) { if (strcmp(argv[i], "--testframes") == 0) use_testframes = 1; else if (strcmp(argv[i], "-v") == 0) verbose = 1; else if (strcmp(argv[i], "-vv") == 0) verbose = 2; else if (strcmp(argv[i], "--discard") == 0) discard = 1; else if (strcmp(argv[i], "--usecomplex") == 0) use_complex = 1; else if (strcmp(argv[i], "--highpassthroughgain") == 0) highpassthroughgain = 1; else if (strcmp(argv[i], "--squelch") == 0) { squelch = atof(argv[i + 1]); i++; use_squelch = 1; } else if (strcmp(argv[i], "--dpsk") == 0) use_dpsk = 1; else if (strcmp(argv[i], "--txtrx") == 0) { ftxt_rx = fopen(argv[i+1], "wt"); i++; assert(ftxt_rx != NULL); } else if (strcmp(argv[i], "--reliabletext") == 0) { use_reliabletext = 1; // received text is saved to file specified by --txtrx. } else { fprintf(stderr, "unkown option: %s\n", argv[i]); exit(1); } } } freedv = freedv_open(mode); assert(freedv != NULL); /* set up a few options, calling these is optional -------------------------*/ freedv_set_test_frames(freedv, use_testframes); if (verbose == 2) freedv_set_verbose(freedv, verbose); if (highpassthroughgain) { freedv_passthrough_gain(freedv, 1.0); } if (use_squelch) { freedv_set_snr_squelch_thresh(freedv, squelch); freedv_set_squelch_en(freedv, 1); } freedv_set_dpsk(freedv, use_dpsk); /* install optional handler for recevied txt characters */ if (ftxt_rx != NULL) { if (use_reliabletext) { reliable_tx_fp = ftxt_rx; reliable_text_obj = reliable_text_create(); assert(reliable_text_obj != NULL); reliable_text_set_string(reliable_text_obj, "AB1CDEF", 7); // not used reliable_text_use_with_freedv(reliable_text_obj, freedv, on_reliable_text_rx, NULL); } else { freedv_set_callback_txt(freedv, my_put_next_rx_char, NULL, ftxt_rx); } } /* note use of API functions to tell us how big our buffers need to be -----*/ short speech_out[freedv_get_n_max_speech_samples(freedv)]; short demod_in[freedv_get_n_max_modem_samples(freedv)]; /* We need to work out how many samples the demod needs on each call (nin). This is used to adjust for differences in the tx and rx sample clock frequencies. Note also the number of output speech samples "nout" is time varying. */ nin = freedv_nin(freedv); while(fread(demod_in, sizeof(short), nin, fin) == nin) { frame++; if (use_complex) { /* exercise the complex version of the API (useful for testing 700D which has a different code path for short samples) */ COMP demod_in_complex[nin]; for(int i=0; i. */ #include #include #include #include #include #include "reliable_text.h" #include "freedv_api.h" struct my_callback_state { char tx_str[80]; char *ptx_str; int calls; }; char my_get_next_tx_char(void *callback_state) { struct my_callback_state* pstate = (struct my_callback_state*)callback_state; char c = *pstate->ptx_str++; if (*pstate->ptx_str == 0) { pstate->ptx_str = pstate->tx_str; } return c; } void on_reliable_text_rx(reliable_text_t rt, const char* txt_ptr, int length, void* state) { // empty since we don't expect to receive anything in this program. } int main(int argc, char *argv[]) { FILE *fin, *fout; struct freedv *freedv; int mode; int use_testframes, use_clip, use_txbpf, use_dpsk, use_reliabletext; int i; char* callsign; reliable_text_t reliable_text_obj; if (argc < 4) { char f2020[80] = {0}; #ifdef __LPCNET__ sprintf(f2020,"|2020"); #endif printf("usage: %s 1600|700C|700D|700E|2400A|2400B|800XA%s InputRawSpeechFile OutputModemRawFile\n" " [--testframes] [--clip 0|1] [--txbpf 0|1] [--dpsk] [--reliabletext txt]\n", argv[0], f2020); printf("e.g %s 1600 hts1a.raw hts1a_fdmdv.raw\n", argv[0]); exit(1); } mode = -1; if (!strcmp(argv[1],"1600")) mode = FREEDV_MODE_1600; if (!strcmp(argv[1],"700C")) mode = FREEDV_MODE_700C; if (!strcmp(argv[1],"700D")) mode = FREEDV_MODE_700D; if (!strcmp(argv[1],"700E")) mode = FREEDV_MODE_700E; if (!strcmp(argv[1],"2400A")) mode = FREEDV_MODE_2400A; if (!strcmp(argv[1],"2400B")) mode = FREEDV_MODE_2400B; if (!strcmp(argv[1],"800XA")) mode = FREEDV_MODE_800XA; #ifdef __LPCNET__ if (!strcmp(argv[1],"2020")) mode = FREEDV_MODE_2020; #endif if (mode == -1) { fprintf(stderr, "Error in mode: %s\n", argv[1]); exit(1); } if (strcmp(argv[2], "-") == 0) fin = stdin; else if ( (fin = fopen(argv[2],"rb")) == NULL ) { fprintf(stderr, "Error opening input raw speech sample file: %s: %s.\n", argv[2], strerror(errno)); exit(1); } if (strcmp(argv[3], "-") == 0) fout = stdout; else if ( (fout = fopen(argv[3],"wb")) == NULL ) { fprintf(stderr, "Error opening output modem sample file: %s: %s.\n", argv[3], strerror(errno)); exit(1); } use_testframes = 0; use_clip = 0; use_txbpf = 1; use_dpsk = 0; use_reliabletext = 0; if (argc > 4) { for (i = 4; i < argc; i++) { if (strcmp(argv[i], "--testframes") == 0) use_testframes = 1; else if (strcmp(argv[i], "--clip") == 0) { use_clip = atoi(argv[i+1]); i++; } else if (strcmp(argv[i], "--txbpf") == 0) { use_txbpf = atoi(argv[i+1]); i++; } else if (strcmp(argv[i], "--dpsk") == 0) use_dpsk = 1; else if (strcmp(argv[i], "--reliabletext") == 0) { use_reliabletext = 1; callsign = argv[i+1]; i++; } else { fprintf(stderr, "unknown option: %s\n", argv[i]); exit(1); } } } freedv = freedv_open(mode); assert(freedv != NULL); /* these are all optional ------------------ */ freedv_set_test_frames(freedv, use_testframes); freedv_set_clip(freedv, use_clip); freedv_set_tx_bpf(freedv, use_txbpf); freedv_set_dpsk(freedv, use_dpsk); freedv_set_verbose(freedv, 1); freedv_set_eq(freedv, 1); /* for 700C/D/E & 800XA */ if (use_reliabletext) { reliable_text_obj = reliable_text_create(); assert(reliable_text_obj != NULL); reliable_text_set_string(reliable_text_obj, callsign, strlen(callsign)); reliable_text_use_with_freedv(reliable_text_obj, freedv, on_reliable_text_rx, NULL); } else { /* set up callback for txt msg chars */ struct my_callback_state my_cb_state; sprintf(my_cb_state.tx_str, "cq cq cq hello world\r"); my_cb_state.ptx_str = my_cb_state.tx_str; my_cb_state.calls = 0; freedv_set_callback_txt(freedv, NULL, &my_get_next_tx_char, &my_cb_state); } /* handy functions to set buffer sizes, note tx/modulator always returns freedv_get_n_nom_modem_samples() (unlike rx side) */ int n_speech_samples = freedv_get_n_speech_samples(freedv); short speech_in[n_speech_samples]; int n_nom_modem_samples = freedv_get_n_nom_modem_samples(freedv); short mod_out[n_nom_modem_samples]; /* OK main loop --------------------------------------- */ while(fread(speech_in, sizeof(short), n_speech_samples, fin) == n_speech_samples) { freedv_tx(freedv, mod_out, speech_in); fwrite(mod_out, sizeof(short), n_nom_modem_samples, fout); /* if using pipes we don't want the usual buffering to occur */ if (fout == stdout) fflush(stdout); } freedv_close(freedv); if (use_reliabletext) { reliable_text_destroy(reliable_text_obj); } fclose(fin); fclose(fout); return 0; } codec2-1.0.1/src/freedv_vhf_framing.c000066400000000000000000000715641412132000500174250ustar00rootroot00000000000000/*---------------------------------------------------------------------------*\ FILE........: fsk.c AUTHOR......: Brady O'Brien DATE CREATED: 11 February 2016 Framer and deframer for VHF FreeDV modes 'A' and 'B' Currently designed for- * 40ms ota modem frames * 40ms Codec2 1300 frames * 52 bits of Codec2 per frame * 16 bits of unique word per frame * 28 'spare' bits per frame * - 4 spare bits at front and end of frame (8 total) for padding * - 20 'protocol' bits, either for higher layers of 'protocol' or * - 18 'protocol' bits and 2 vericode sidechannel bits \*---------------------------------------------------------------------------*/ /* Copyright (C) 2016 David Rowe All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 2.1, as published by the Free Software Foundation. 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 Lesser General Public License along with this program; if not, see . */ #include #include #include #include #include #include "freedv_vhf_framing.h" #include "freedv_api_internal.h" /* The voice UW of the VHF type A frame */ static const uint8_t A_uw_v[] = {0,1,1,0,0,1,1,1, 1,0,1,0,1,1,0,1}; /* The data UW of the VHF type A frame */ static const uint8_t A_uw_d[] = {1,1,1,1,0,0,0,1, 1,1,1,1,1,1,0,0}; /* Blank VHF type A frame */ static const uint8_t A_blank[] = {1,0,1,0,0,1,1,1, /* Padding[0:3] Proto[0:3] */ 1,0,1,0,0,1,1,1, /* Proto[4:11] */ 0,0,0,0,0,0,0,0, /* Voice[0:7] */ 0,0,0,0,0,0,0,0, /* Voice[8:15] */ 0,0,0,0,0,0,0,0, /* Voice[16:23] */ 0,1,1,0,0,1,1,1, /* UW[0:7] */ 1,0,1,0,1,1,0,1, /* UW[8:15] */ 0,0,0,0,0,0,0,0, /* Voice[24:31] */ 0,0,0,0,0,0,0,0, /* Voice[32:39] */ 0,0,0,0,0,0,0,0, /* Voice[40:47] */ 0,0,0,0,0,0,1,0, /* Voice[48:51] Proto[12:15] */ 0,1,1,1,0,0,1,0};/* Proto[16:19] Padding[4:7] */ /* Blank VHF type AT (A for TDMA; padding bits not transmitted) frame */ static const uint8_t AT_blank[] = { 0,1,1,1, /* Proto[0:3] */ 1,0,1,0,0,1,1,1, /* Proto[4:11] */ 0,0,0,0,0,0,0,0, /* Voice[0:7] */ 0,0,0,0,0,0,0,0, /* Voice[8:15] */ 0,0,0,0,0,0,0,0, /* Voice[16:23] */ 0,1,1,0,0,1,1,1, /* UW[0:7] */ 1,0,1,0,1,1,0,1, /* UW[8:15] */ 0,0,0,0,0,0,0,0, /* Voice[24:31] */ 0,0,0,0,0,0,0,0, /* Voice[32:39] */ 0,0,0,0,0,0,0,0, /* Voice[40:47] */ 0,0,0,0,0,0,1,0, /* Voice[48:51] Proto[12:15] */ 0,1,1,1 };/* Proto[16:19] */ /* HF Type B voice UW */ static const uint8_t B_uw_v[] = {0,1,1,0,0,1,1,1}; /* HF Type B data UW */ static const uint8_t B_uw_d[] = {1,1,1,1,0,0,1,0}; /* Blank HF type B frame */ static const uint8_t B_blank[] = {0,1,1,0,0,1,1,1, /* UW[0:7] */ 0,0,0,0,0,0,0,0, /* Voice1[0:7] */ 0,0,0,0,0,0,0,0, /* Voice1[8:15] */ 0,0,0,0,0,0,0,0, /* Voice1[16:23] */ 0,0,0,0,0,0,0,0, /* Voice1[24:28] Voice2[0:3] */ 0,0,0,0,0,0,0,0, /* Voice2[4:11] */ 0,0,0,0,0,0,0,0, /* Voice2[12:19] */ 0,0,0,0,0,0,0,0};/* Voice2[20:28] */ /* States */ #define ST_NOSYNC 0 /* Not synchronized */ #define ST_SYNC 1 /* Synchronized */ /* Get a single bit out of an MSB-first packed byte array */ #define UNPACK_BIT_MSBFIRST(bytes,bitidx) ((bytes)[(bitidx)>>3]>>(7-((bitidx)&0x7)))&0x1 enum frame_payload_type { FRAME_PAYLOAD_TYPE_VOICE, FRAME_PAYLOAD_TYPE_DATA, }; /* Place codec and other bits into a frame */ void fvhff_frame_bits( int frame_type, uint8_t bits_out[], uint8_t codec2_in[], uint8_t proto_in[], uint8_t vc_in[]){ int i,ibit; if(frame_type == FREEDV_VHF_FRAME_A){ /* Fill out frame with blank frame prototype */ for(i=0; i<96; i++) bits_out[i] = A_blank[i]; /* Fill in protocol bits, if present */ if(proto_in!=NULL){ ibit = 0; /* First half of protocol bits */ /* Extract and place in frame, MSB first */ for(i=4 ; i<16; i++){ bits_out[i] = UNPACK_BIT_MSBFIRST(proto_in,ibit); ibit++; } /* Last set of protocol bits */ for(i=84; i<92; i++){ bits_out[i] = UNPACK_BIT_MSBFIRST(proto_in,ibit); ibit++; } } /* Fill in varicode bits, if present */ if(vc_in!=NULL){ bits_out[90] = vc_in[0]; bits_out[91] = vc_in[1]; } /* Fill in codec2 bits, present or not */ ibit = 0; for(i=16; i<40; i++){ /* First half */ bits_out[i] = UNPACK_BIT_MSBFIRST(codec2_in,ibit); ibit++; } for(i=56; i<84; i++){ /* Second half */ bits_out[i] = UNPACK_BIT_MSBFIRST(codec2_in,ibit); ibit++; } }else if(frame_type == FREEDV_HF_FRAME_B){ /* Pointers to both c2 frames so the bit unpack macro works */ uint8_t * codec2_in1 = &codec2_in[0]; uint8_t * codec2_in2 = &codec2_in[4]; /* Fill out frame with blank prototype */ for(i=0; i<64; i++) bits_out[i] = B_blank[i]; /* Fill out first codec2 block */ ibit=0; for(i=8; i<36; i++){ bits_out[i] = UNPACK_BIT_MSBFIRST(codec2_in1,ibit); ibit++; } /* Fill out second codec2 block */ ibit=0; for(i=36; i<64; i++){ bits_out[i] = UNPACK_BIT_MSBFIRST(codec2_in2,ibit); ibit++; } }else if(frame_type == FREEDV_VHF_FRAME_AT){ /* Fill out frame with blank frame prototype */ for(i=0; i<88; i++) bits_out[i] = AT_blank[i]; /* Fill in protocol bits, if present */ if(proto_in!=NULL){ ibit = 0; /* First half of protocol bits */ /* Extract and place in frame, MSB first */ for(i=0 ; i<12; i++){ bits_out[i] = UNPACK_BIT_MSBFIRST(proto_in,ibit); ibit++; } /* Last set of protocol bits */ for(i=80; i<88; i++){ bits_out[i] = UNPACK_BIT_MSBFIRST(proto_in,ibit); ibit++; } } /* Fill in varicode bits, if present */ if(vc_in!=NULL){ bits_out[86] = vc_in[0]; bits_out[87] = vc_in[1]; } /* Fill in codec2 bits, present or not */ ibit = 0; for(i=12; i<36; i++){ /* First half */ bits_out[i] = UNPACK_BIT_MSBFIRST(codec2_in,ibit); ibit++; } for(i=52; i<80; i++){ /* Second half */ bits_out[i] = UNPACK_BIT_MSBFIRST(codec2_in,ibit); ibit++; } } } /* Place data and other bits into a frame */ void fvhff_frame_data_bits(struct freedv_vhf_deframer * def, int frame_type, uint8_t bits_out[]){ int i,ibit; if(frame_type == FREEDV_VHF_FRAME_A){ uint8_t data[8]; int end_bits; int from_bit; int bcast_bit; int crc_bit; /* Fill out frame with blank frame prototype */ for(i=0; i<4; i++) bits_out[i] = A_blank[i]; for(i=92; i<96; i++) bits_out[i] = A_blank[i]; /* UW data */ for (i=0; i < 16; i++) bits_out[40 + i] = A_uw_d[i]; if (def->fdc) freedv_data_channel_tx_frame(def->fdc, data, 8, &from_bit, &bcast_bit, &crc_bit, &end_bits); else return; bits_out[4] = from_bit; bits_out[5] = bcast_bit; bits_out[6] = 0; /* unused */ bits_out[7] = 0; /* unused */ /* Fill in data bits */ ibit = 0; for(i=8; i<40; i++){ /* First half */ bits_out[i] = UNPACK_BIT_MSBFIRST(data,ibit); ibit++; } for(i=56; i<88; i++){ /* Second half */ bits_out[i] = UNPACK_BIT_MSBFIRST(data,ibit); ibit++; } for (i = 0; i < 4; i++) bits_out[88 + i] = (end_bits >> (3-i)) & 0x1; } else if (frame_type == FREEDV_HF_FRAME_B){ uint8_t data[6]; int end_bits; int from_bit; int bcast_bit; int crc_bit; /* Fill out frame with blank prototype */ for(i=0; i<64; i++) bits_out[i] = B_blank[i]; /* UW data */ for (i=0; i < 8; i++) bits_out[0 + i] = B_uw_d[i]; if (def->fdc) freedv_data_channel_tx_frame(def->fdc, data, 6, &from_bit, &bcast_bit, &crc_bit, &end_bits); else return; bits_out[56] = from_bit; bits_out[57] = bcast_bit; bits_out[58] = crc_bit; bits_out[59] = 0; /* unused */ /* Fill in data bits */ ibit = 0; for(i=8; i<56; i++){ /* First half */ bits_out[i] = UNPACK_BIT_MSBFIRST(data,ibit); ibit++; } for (i = 0; i < 4; i++) bits_out[60 + i] = (end_bits >> (3-i)) & 0x1; } } /* Init and allocate memory for a freedv-vhf framer/deframer */ struct freedv_vhf_deframer * fvhff_create_deframer(uint8_t frame_type, int enable_bit_flip){ struct freedv_vhf_deframer * deframer; uint8_t *bits,*invbits; int frame_size; int uw_size; assert( (frame_type == FREEDV_VHF_FRAME_A) || (frame_type == FREEDV_HF_FRAME_B) ); /* It's a Type A frame */ if(frame_type == FREEDV_VHF_FRAME_A){ frame_size = 96; uw_size = 16; }else if(frame_type == FREEDV_HF_FRAME_B){ frame_size = 64; uw_size = 8; }else{ return NULL; } /* Allocate memory for the thing */ deframer = malloc(sizeof(struct freedv_vhf_deframer)); if(deframer == NULL) return NULL; /* Allocate the not-bit buffer */ if(enable_bit_flip){ invbits = malloc(sizeof(uint8_t)*frame_size); if(invbits == NULL) { free(deframer); return NULL; } }else{ invbits = NULL; } /* Allocate the bit buffer */ bits = malloc(sizeof(uint8_t)*frame_size); if(bits == NULL) { free(deframer); return NULL; } deframer->bits = bits; deframer->invbits = invbits; deframer->ftype = frame_type; deframer->state = ST_NOSYNC; deframer->bitptr = 0; deframer->last_uw = 0; deframer->miss_cnt = 0; deframer->frame_size = frame_size; deframer->uw_size = uw_size; deframer->on_inv_bits = 0; deframer->sym_size = 1; deframer->ber_est = 0; deframer->total_uw_bits = 0; deframer->total_uw_err = 0; deframer->fdc = NULL; return deframer; } /* Get size of frame in bits */ int fvhff_get_frame_size(struct freedv_vhf_deframer * def){ return def->frame_size; } /* Codec2 size in bytes */ int fvhff_get_codec2_size(struct freedv_vhf_deframer * def){ if(def->ftype == FREEDV_VHF_FRAME_A){ return 7; } else if(def->ftype == FREEDV_HF_FRAME_B){ return 8; } else{ return 0; } } /* Protocol bits in bits */ int fvhff_get_proto_size(struct freedv_vhf_deframer * def){ if(def->ftype == FREEDV_VHF_FRAME_A){ return 20; } else if(def->ftype == FREEDV_HF_FRAME_B){ return 0; } else{ return 0; } } /* Varicode bits in bits */ int fvhff_get_varicode_size(struct freedv_vhf_deframer * def){ if(def->ftype == FREEDV_VHF_FRAME_A){ return 2; } else if(def->ftype == FREEDV_HF_FRAME_B){ return 0; } else{ return 0; } } void fvhff_destroy_deframer(struct freedv_vhf_deframer * def){ freedv_data_channel_destroy(def->fdc); free(def->bits); free(def); } int fvhff_synchronized(struct freedv_vhf_deframer * def){ return (def->state) == ST_SYNC; } /* Search for a complete UW in a buffer of bits */ size_t fvhff_search_uw(const uint8_t bits[],size_t nbits, const uint8_t uw[], size_t uw_len, size_t * delta_out, size_t bits_per_sym){ size_t ibits,iuw; size_t delta_min = uw_len; size_t delta; size_t offset_min = 0; /* Walk through buffer bits */ for(ibits = 0; ibits < nbits-uw_len; ibits+=bits_per_sym){ delta = 0; for(iuw = 0; iuw < uw_len; iuw++){ if(bits[ibits+iuw] != uw[iuw]) delta++; } if( delta < delta_min ){ delta_min = delta; offset_min = ibits; } } if(delta_out != NULL) *delta_out = delta_min; return offset_min; } /* See if the UW is where it should be, to within a tolerance, in a bit buffer */ static int fvhff_match_uw(struct freedv_vhf_deframer * def,uint8_t bits[],int tol,int *rdiff, enum frame_payload_type *pt){ int frame_type = def->ftype; int bitptr = def->bitptr; int frame_size = def->frame_size; int uw_len = def->uw_size; int iuw,ibit; const uint8_t * uw[2]; int uw_offset; int diff[2] = { 0, 0 }; int i; int match[2]; int r; /* defaults to make compiler happy on -O3 */ *pt = FRAME_PAYLOAD_TYPE_VOICE; *rdiff = 0; /* Set up parameters for the standard type of frame */ if(frame_type == FREEDV_VHF_FRAME_A){ uw[0] = A_uw_v; uw[1] = A_uw_d; uw_len = 16; uw_offset = 40; } else if(frame_type == FREEDV_HF_FRAME_B){ uw[0] = B_uw_v; uw[1] = B_uw_d; uw_len = 8; uw_offset = 0; } else { return 0; } /* Check both the voice and data UWs */ for (i = 0; i < 2; i++) { /* Start bit pointer where UW should be */ ibit = bitptr + uw_offset; if(ibit >= frame_size) ibit -= frame_size; /* Walk through and match bits in frame with bits of UW */ for(iuw=0; iuw= frame_size) ibit = 0; } match[i] = diff[i] <= tol; //fprintf(stderr, "diff[%d]: %d tol: %d\n", i, diff[i], tol); } /* Pick the best matching UW */ if (diff[0] < diff[1]) { r = match[0]; *rdiff = diff[0]; *pt = FRAME_PAYLOAD_TYPE_VOICE; } else { r = match[1]; *rdiff = diff[1]; *pt = FRAME_PAYLOAD_TYPE_DATA; } return r; } static void fvhff_extract_frame_voice(struct freedv_vhf_deframer * def,uint8_t bits[], uint8_t codec2_out[],uint8_t proto_out[],uint8_t vc_out[]){ int frame_type = def->ftype; int bitptr = def->bitptr; int frame_size = def->frame_size; int iframe,ibit; if(frame_type == FREEDV_VHF_FRAME_A){ /* Extract codec2 bits */ memset(codec2_out,0,7); ibit = 0; /* Extract and pack first half, MSB first */ iframe = bitptr+16; if(iframe >= frame_size) iframe-=frame_size; for(;ibit<24;ibit++){ codec2_out[ibit>>3] |= (bits[iframe]&0x1)<<(7-(ibit&0x7)); iframe++; if(iframe >= frame_size) iframe=0; } /* Extract and pack last half, MSB first */ iframe = bitptr+56; if(iframe >= frame_size) iframe-=frame_size; for(;ibit<52;ibit++){ codec2_out[ibit>>3] |= (bits[iframe]&0x1)<<(7-(ibit&0x7)); iframe++; if(iframe >= frame_size) iframe=0; } /* Extract varicode bits, if wanted */ if(vc_out!=NULL){ iframe = bitptr+90; if(iframe >= frame_size) iframe-=frame_size; vc_out[0] = bits[iframe]; iframe++; vc_out[1] = bits[iframe]; } /* Extract protocol bits, if proto is passed through */ if(proto_out!=NULL){ /* Clear protocol bit array */ memset(proto_out,0,3); ibit = 0; /* Extract and pack first half, MSB first */ iframe = bitptr+4; if(iframe >= frame_size) iframe-=frame_size; for(;ibit<12;ibit++){ proto_out[ibit>>3] |= (bits[iframe]&0x1)<<(7-(ibit&0x7)); iframe++; if(iframe >= frame_size) iframe=0; } /* Extract and pack last half, MSB first */ iframe = bitptr+84; if(iframe >= frame_size) iframe-=frame_size; for(;ibit<20;ibit++){ proto_out[ibit>>3] |= (bits[iframe]&0x1)<<(7-(ibit&0x7)); iframe++; if(iframe >= frame_size) iframe=0; } } }else if(frame_type == FREEDV_HF_FRAME_B){ /* Pointers to both c2 frames */ uint8_t * codec2_out1 = &codec2_out[0]; uint8_t * codec2_out2 = &codec2_out[4]; /* Extract codec2 bits */ memset(codec2_out,0,8); ibit = 0; /* Extract and pack first c2 frame, MSB first */ iframe = bitptr+8; if(iframe >= frame_size) iframe-=frame_size; for(;ibit<28;ibit++){ codec2_out1[ibit>>3] |= (bits[iframe]&0x1)<<(7-(ibit&0x7)); iframe++; if(iframe >= frame_size) iframe=0; } /* Extract and pack second c2 frame, MSB first */ iframe = bitptr+36; ibit = 0; if(iframe >= frame_size) iframe-=frame_size; for(;ibit<28;ibit++){ codec2_out2[ibit>>3] |= (bits[iframe]&0x1)<<(7-(ibit&0x7)); iframe++; if(iframe >= frame_size) iframe=0; } }else if(frame_type == FREEDV_VHF_FRAME_AT){ /* Extract codec2 bits */ memset(codec2_out,0,7); ibit = 0; /* Extract and pack first half, MSB first */ iframe = bitptr+12; if(iframe >= frame_size) iframe-=frame_size; for(;ibit<24;ibit++){ codec2_out[ibit>>3] |= (bits[iframe]&0x1)<<(7-(ibit&0x7)); iframe++; if(iframe >= frame_size) iframe=0; } /* Extract and pack last half, MSB first */ iframe = bitptr+52; if(iframe >= frame_size) iframe-=frame_size; for(;ibit<52;ibit++){ codec2_out[ibit>>3] |= (bits[iframe]&0x1)<<(7-(ibit&0x7)); iframe++; if(iframe >= frame_size) iframe=0; } /* Extract varicode bits, if wanted */ if(vc_out!=NULL){ iframe = bitptr+86; if(iframe >= frame_size) iframe-=frame_size; vc_out[0] = bits[iframe]; iframe++; vc_out[1] = bits[iframe]; } /* Extract protocol bits, if proto is passed through */ if(proto_out!=NULL){ /* Clear protocol bit array */ memset(proto_out,0,3); ibit = 0; /* Extract and pack first half, MSB first */ iframe = bitptr+4; if(iframe >= frame_size) iframe-=frame_size; for(;ibit<12;ibit++){ proto_out[ibit>>3] |= (bits[iframe]&0x1)<<(7-(ibit&0x7)); iframe++; if(iframe >= frame_size) iframe=0; } /* Extract and pack last half, MSB first */ iframe = bitptr+84; if(iframe >= frame_size) iframe-=frame_size; for(;ibit<20;ibit++){ proto_out[ibit>>3] |= (bits[iframe]&0x1)<<(7-(ibit&0x7)); iframe++; if(iframe >= frame_size) iframe=0; } } } } static void fvhff_extract_frame_data(struct freedv_vhf_deframer * def,uint8_t bits[]){ int frame_type = def->ftype; int bitptr = def->bitptr; int frame_size = def->frame_size; int iframe,ibit; if(frame_type == FREEDV_VHF_FRAME_A){ uint8_t data[8]; int end_bits = 0; int from_bit; int bcast_bit; iframe = bitptr+4; if(iframe >= frame_size) iframe-=frame_size; from_bit = bits[iframe]; iframe++; if(iframe >= frame_size) iframe-=frame_size; bcast_bit = bits[iframe]; /* Extract data bits */ memset(data,0,8); ibit = 0; /* Extract and pack first half, MSB first */ iframe = bitptr+8; if(iframe >= frame_size) iframe-=frame_size; for(;ibit<32;ibit++){ data[ibit>>3] |= (bits[iframe]&0x1)<<(7-(ibit&0x7)); iframe++; if(iframe >= frame_size) iframe=0; } /* Extract and pack last half, MSB first */ iframe = bitptr+56; if(iframe >= frame_size) iframe-=frame_size; for(;ibit<64;ibit++){ data[ibit>>3] |= (bits[iframe]&0x1)<<(7-(ibit&0x7)); iframe++; if(iframe >= frame_size) iframe=0; } /* Extract endbits value, MSB first*/ iframe = bitptr+88; ibit = 0; if(iframe >= frame_size) iframe-=frame_size; for(;ibit<4;ibit++){ end_bits |= (bits[iframe]&0x1)<<(3-(ibit)); iframe++; if(iframe >= frame_size) iframe=0; } if (def->fdc) { freedv_data_channel_rx_frame(def->fdc, data, 8, from_bit, bcast_bit, 0, end_bits); } } else if(frame_type == FREEDV_HF_FRAME_B){ uint8_t data[6]; int end_bits = 0; int from_bit; int bcast_bit; int crc_bit; ibit = 0; memset(data,0,6); /* Extract and pack first c2 frame, MSB first */ iframe = bitptr+8; if(iframe >= frame_size) iframe-=frame_size; for(;ibit<48;ibit++){ data[ibit>>3] |= (bits[iframe]&0x1)<<(7-(ibit&0x7)); iframe++; if(iframe >= frame_size) iframe=0; } iframe = bitptr+56; if(iframe >= frame_size) iframe-=frame_size; from_bit = bits[iframe]; iframe++; if(iframe >= frame_size) iframe-=frame_size; bcast_bit = bits[iframe]; iframe++; if(iframe >= frame_size) iframe-=frame_size; crc_bit = bits[iframe]; /* Extract endbits value, MSB first*/ iframe = bitptr+60; ibit = 0; if(iframe >= frame_size) iframe-=frame_size; for(;ibit<4;ibit++){ end_bits |= (bits[iframe]&0x1)<<(3-(ibit)); iframe++; if(iframe >= frame_size) iframe=0; } if (def->fdc) { freedv_data_channel_rx_frame(def->fdc, data, 6, from_bit, bcast_bit, crc_bit, end_bits); } } } static void fvhff_extract_frame(struct freedv_vhf_deframer * def,uint8_t bits[],uint8_t codec2_out[], uint8_t proto_out[],uint8_t vc_out[],enum frame_payload_type pt){ switch (pt) { case FRAME_PAYLOAD_TYPE_VOICE: fvhff_extract_frame_voice(def, bits, codec2_out, proto_out, vc_out); break; case FRAME_PAYLOAD_TYPE_DATA: fvhff_extract_frame_data(def, bits); break; } } /* * Try to find the UW and extract codec/proto/vc bits in def->frame_size bits */ int fvhff_deframe_bits(struct freedv_vhf_deframer * def,uint8_t codec2_out[],uint8_t proto_out[], uint8_t vc_out[],uint8_t bits_in[]){ uint8_t * strbits = def->bits; uint8_t * invbits = def->invbits; uint8_t * bits; int on_inv_bits = def->on_inv_bits; int frame_type = def->ftype; int state = def->state; int bitptr = def->bitptr; int last_uw = def->last_uw; int miss_cnt = def->miss_cnt; int frame_size = def->frame_size; int uw_size = def->uw_size; int uw_diff; int i; int uw_first_tol; int uw_sync_tol; int miss_tol; int extracted_frame = 0; enum frame_payload_type pt = FRAME_PAYLOAD_TYPE_VOICE; /* Possibly set up frame-specific params here */ if(frame_type == FREEDV_VHF_FRAME_A){ uw_first_tol = 1; /* The UW bit-error tolerance for the first frame */ uw_sync_tol = 3; /* The UW bit error tolerance for frames after sync */ miss_tol = 4; /* How many UWs may be missed before going into the de-synced state */ }else if(frame_type == FREEDV_HF_FRAME_B){ uw_first_tol = 0; /* The UW bit-error tolerance for the first frame */ uw_sync_tol = 1; /* The UW bit error tolerance for frames after sync */ miss_tol = 3; /* How many UWs may be missed before going into the de-synced state */ }else{ return 0; } /* Skip N bits for multi-bit symbol modems */ for(i=0; i= frame_size) bitptr -= frame_size; def->bitptr = bitptr; /* Enter state machine */ if(state==ST_SYNC){ /* Already synchronized, just wait till UW is back where it should be */ last_uw++; if(invbits!=NULL){ if(on_inv_bits) bits = invbits; else bits = strbits; }else{ bits=strbits; } /* UW should be here. We're sunk, so deframe anyway */ if(last_uw == frame_size){ last_uw = 0; if(!fvhff_match_uw(def,bits,uw_sync_tol,&uw_diff, &pt)) miss_cnt++; else miss_cnt=0; /* If we go over the miss tolerance, go into no-sync */ if(miss_cnt>miss_tol){ state = ST_NOSYNC; } /* Extract the bits */ extracted_frame = 1; fvhff_extract_frame(def,bits,codec2_out,proto_out,vc_out,pt); /* Update BER estimate */ def->ber_est = (.995*def->ber_est) + (.005*((float)uw_diff)/((float)uw_size)); def->total_uw_bits += uw_size; def->total_uw_err += uw_diff; } /* Not yet sunk */ }else{ /* It's a sync!*/ if(invbits!=NULL){ if(fvhff_match_uw(def,invbits,uw_first_tol, &uw_diff, &pt)){ state = ST_SYNC; last_uw = 0; miss_cnt = 0; extracted_frame = 1; on_inv_bits = 1; fvhff_extract_frame(def,invbits,codec2_out,proto_out,vc_out,pt); /* Update BER estimate */ def->ber_est = (.995*def->ber_est) + (.005*((float)uw_diff)/((float)uw_size)); def->total_uw_bits += uw_size; def->total_uw_err += uw_diff; } } if(fvhff_match_uw(def,strbits,uw_first_tol, &uw_diff, &pt)){ state = ST_SYNC; last_uw = 0; miss_cnt = 0; extracted_frame = 1; on_inv_bits = 0; fvhff_extract_frame(def,strbits,codec2_out,proto_out,vc_out,pt); /* Update BER estimate */ def->ber_est = (.995*def->ber_est) + (.005*((float)uw_diff)/((float)uw_size)); def->total_uw_bits += uw_size; def->total_uw_err += uw_diff; } } } def->state = state; def->last_uw = last_uw; def->miss_cnt = miss_cnt; def->on_inv_bits = on_inv_bits; /* return sync state and presence of extracted voice bits. only sync for data frames, they are already handled by callback */ return (extracted_frame ? FREEDV_RX_SYNC : 0) | (pt == FRAME_PAYLOAD_TYPE_VOICE ? FREEDV_RX_BITS : 0); } codec2-1.0.1/src/freedv_vhf_framing.h000066400000000000000000000075701412132000500174260ustar00rootroot00000000000000/*---------------------------------------------------------------------------*\ FILE........: freedv_vhf_framing.h AUTHOR......: Brady O'Brien DATE CREATED: 11 February 2016 Framer and deframer for VHF FreeDV modes 'A' and 'B' Currently designed for- * 40ms ota modem frames * 40ms Codec2 1300 frames * 52 bits of Codec2 per frame * 16 bits of unique word per frame * 28 'spare' bits per frame * - 4 spare bits at front and end of frame (8 total) for padding * - 20 'protocol' bits, either for higher layers of 'protocol' or * - 18 'protocol' bits and 2 vericode sidechannel bits \*---------------------------------------------------------------------------*/ /* Copyright (C) 2016 David Rowe All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 2.1, as published by the Free Software Foundation. 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 Lesser General Public License along with this program; if not, see . */ #ifndef _FREEDV_VHF_FRAMING_H #define _FREEDV_VHF_FRAMING_H #include "freedv_data_channel.h" /* Standard frame type */ #define FREEDV_VHF_FRAME_A 1 /* 2400A/B Frame */ #define FREEDV_HF_FRAME_B 2 /* 800XA Frame */ #define FREEDV_VHF_FRAME_AT 3 /* 4800T Frame */ struct freedv_vhf_deframer { int ftype; /* Type of frame to be looking for */ int state; /* State of deframer */ uint8_t * bits; /* Bits currently being decanted */ uint8_t * invbits; /* Inversion of bits currently being decanted, for FMFSK */ int bitptr; /* Pointer into circular bit buffer */ int miss_cnt; /* How many UWs have been missed */ int last_uw; /* How many bits since the last UW? */ int frame_size; /* How big is a frame? */ int uw_size; /* How big is the UW */ int on_inv_bits; /* Are we using the inverted bits? */ int sym_size; /* How many bits in a modem symbol */ float ber_est; /* Bit error rate estimate */ int total_uw_bits; /* Total RX-ed bits of UW */ int total_uw_err; /* Total errors in UW bits */ struct freedv_data_channel *fdc; }; /* Init and allocate memory for a freedv-vhf framer/deframer */ struct freedv_vhf_deframer * fvhff_create_deframer(uint8_t frame_type,int enable_bit_flip); /* Get size of various frame parameters */ /* Frame size in bits */ int fvhff_get_frame_size(struct freedv_vhf_deframer * def); /* Codec2 size in bytes */ int fvhff_get_codec2_size(struct freedv_vhf_deframer * def); /* Protocol bits in bits */ int fvhff_get_proto_size(struct freedv_vhf_deframer * def); /* Varicode bits in bits */ int fvhff_get_varicode_size(struct freedv_vhf_deframer * def); /* Free the memory used by a freedv-vhf framer/deframer */ void fvhff_destroy_deframer(struct freedv_vhf_deframer * def); /* Place codec and other bits into a frame */ void fvhff_frame_bits(int frame_type,uint8_t bits_out[],uint8_t codec2_in[],uint8_t proto_in[],uint8_t vc_in[]); void fvhff_frame_data_bits(struct freedv_vhf_deframer * def, int frame_type,uint8_t bits_out[]); /* Find and extract frames from a stream of bits */ int fvhff_deframe_bits(struct freedv_vhf_deframer * def,uint8_t codec2_out[],uint8_t proto_out[],uint8_t vc_out[],uint8_t bits_in[]); /* Is the de-framer synchronized? */ int fvhff_synchronized(struct freedv_vhf_deframer * def); /* Search for a complete UW in a buffer of bits */ size_t fvhff_search_uw(const uint8_t bits[],size_t nbits, const uint8_t uw[], size_t uw_len, size_t * delta_out, size_t bits_per_sym); #endif //_FREEDV_VHF_FRAMING_H codec2-1.0.1/src/fsk.c000066400000000000000000001025551412132000500143620ustar00rootroot00000000000000/*---------------------------------------------------------------------------*\ FILE........: fsk.c AUTHOR......: Brady O'Brien & David Rowe DATE CREATED: 7 January 2016 C Implementation of 2/4FSK modulator/demodulator, based on octave/fsk_lib.m \*---------------------------------------------------------------------------*/ /* Copyright (C) 2016-2020 David Rowe All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 2.1, as published by the Free Software Foundation. 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 Lesser General Public License along with this program; if not, see . */ /*---------------------------------------------------------------------------*\ DEFINES \*---------------------------------------------------------------------------*/ /* Define this to enable EbNodB estimate */ /* This needs square roots, may take more cpu time than it's worth */ #define EST_EBNO /* This is a flag to make the mod/demod allocate their memory on the stack instead of the heap */ /* At large sample rates, there's not enough stack space to run the demod */ #define DEMOD_ALLOC_STACK /* This is a flag for the freq. estimator to use a precomputed/rt computed hann window table On platforms with slow cosf, this will produce a substantial speedup at the cost of a small amount of memory */ #define USE_HANN_TABLE /* This flag turns on run-time hann table generation. If USE_HANN_TABLE is unset, this flag has no effect. If USE_HANN_TABLE is set and this flag is set, the hann table will be allocated and generated when fsk_init or fsk_init_hbr is called. If this flag is not set, a hann function table of size fsk->Ndft MUST be provided. On small platforms, this can be used with a precomputed table to save memory at the cost of flash space. */ #define GENERATE_HANN_TABLE_RUNTIME /* Turn off table generation if on cortex M4 to save memory */ #ifdef CORTEX_M4 #undef USE_HANN_TABLE #endif /*---------------------------------------------------------------------------*\ INCLUDES \*---------------------------------------------------------------------------*/ #include #include #include #include #include "fsk.h" #include "comp_prim.h" #include "kiss_fftr.h" #include "modem_probe.h" /*---------------------------------------------------------------------------*\ FUNCTIONS \*---------------------------------------------------------------------------*/ static void stats_init(struct FSK *fsk); #ifdef USE_HANN_TABLE /* This is used by fsk_create and fsk_create_hbr to generate a hann function table */ static void fsk_generate_hann_table(struct FSK* fsk){ int Ndft = fsk->Ndft; size_t i; for(i=0; ihann_table[i] = 0.5 - 0.5 * cosf(2.0 * M_PI * (float)i / (float) (Ndft-1)); } } #endif /*---------------------------------------------------------------------------*\ FUNCTION....: fsk_create_core AUTHOR......: Brady O'Brien DATE CREATED: 7 January 2016 In this version of the demod the standard/hbr modes have been largely combined at they shared so much common code. The fsk_create/fsk_create_hbr function interface has been retained to maximise compatability with existing applications. \*---------------------------------------------------------------------------*/ struct FSK * fsk_create_core(int Fs, int Rs, int M, int P, int Nsym, int f1_tx, int tone_spacing) { struct FSK *fsk; int i; /* Check configuration validity */ assert(Fs > 0); assert(Rs > 0); assert(P > 0); assert(Nsym > 0); /* Ts (Fs/Rs) must be an integer */ assert( (Fs%Rs) == 0 ); /* Ts/P (Fs/Rs/P) must be an integer */ assert( ((Fs/Rs)%P) == 0 ); /* If P is too low we don't have a good choice of timing offsets to choose from */ assert( P >= 4 ); assert( M==2 || M==4); fsk = (struct FSK*) calloc(1, sizeof(struct FSK)); assert(fsk != NULL); // Need enough bins to within 10% of tone centre float bin_width_Hz = 0.1*Rs; float Ndft = (float)Fs/bin_width_Hz; Ndft = pow(2.0, ceil(log2(Ndft))); /* Set constant config parameters */ fsk->Fs = Fs; fsk->Rs = Rs; fsk->Ts = Fs/Rs; fsk->burst_mode = 0; fsk->P = P; fsk->Nsym = Nsym; fsk->N = fsk->Ts*fsk->Nsym; fsk->Ndft = Ndft; fsk->tc = 0.1; fsk->Nmem = fsk->N+(2*fsk->Ts); fsk->f1_tx = f1_tx; fsk->tone_spacing = tone_spacing; fsk->nin = fsk->N; fsk->lock_nin = 0; fsk->mode = M==2 ? MODE_2FSK : MODE_4FSK; fsk->Nbits = M==2 ? fsk->Nsym : fsk->Nsym*2; fsk->est_min = 0; fsk->est_max = Fs; fsk->est_space = 0.75*Rs; fsk->freq_est_type = 0; //printf("C.....: M: %d Fs: %d Rs: %d Ts: %d nsym: %d nbit: %d N: %d Ndft: %d fmin: %d fmax: %d\n", // M, fsk->Fs, fsk->Rs, fsk->Ts, fsk->Nsym, fsk->Nbits, fsk->N, fsk->Ndft, fsk->est_min, fsk->est_max); /* Set up rx state */ for(i=0; iphi_c[i] = comp_exp_j(0); fsk->f_dc = (COMP*)malloc(M*fsk->Nmem*sizeof(COMP)); assert(fsk->f_dc != NULL); for(i=0; iNmem; i++) fsk->f_dc[i] = comp0(); fsk->fft_cfg = kiss_fft_alloc(Ndft,0,NULL,NULL); assert(fsk->fft_cfg != NULL); fsk->Sf = (float*)malloc(sizeof(float)*fsk->Ndft); assert(fsk->Sf != NULL); for(i=0;iSf[i] = 0; #ifdef USE_HANN_TABLE #ifdef GENERATE_HANN_TABLE_RUNTIME fsk->hann_table = (float*)malloc(sizeof(float)*fsk->Ndft); assert(fsk->hann_table != NULL); fsk_generate_hann_table(fsk); #else fsk->hann_table = NULL; #endif #endif fsk->norm_rx_timing = 0; /* Set up tx state */ fsk->tx_phase_c = comp_exp_j(0); /* Set up demod stats */ fsk->EbNodB = 0; for( i=0; if_est[i] = 0; fsk->ppm = 0; fsk->stats = (struct MODEM_STATS*)malloc(sizeof(struct MODEM_STATS)); assert(fsk->stats != NULL); stats_init(fsk); fsk->normalise_eye = 1; return fsk; } /*---------------------------------------------------------------------------* \ FUNCTION....: fsk_create AUTHOR......: Brady O'Brien DATE CREATED: 7 January 2016 Create and initialize an instance of the FSK modem. Returns a pointer to the modem state/config struct. One modem config struct may be used for both mod and demod. If you are not intending to use the modulation functions, you can set f1_tx to FSK_NONE. \*---------------------------------------------------------------------------*/ struct FSK * fsk_create(int Fs, int Rs, int M, int tx_f1, int tx_fs) { return fsk_create_core(Fs, Rs, M, FSK_DEFAULT_P, FSK_DEFAULT_NSYM, tx_f1, tx_fs); } /*---------------------------------------------------------------------------*\ FUNCTION....: fsk_create_hbr AUTHOR......: Brady O'Brien DATE CREATED: 11 February 2016 Alternate version of create allows user defined oversampling P and averaging window Nsym. In the current version of the demod it's simply an alias for the default core function. P is the oversampling rate of the internal demod processing, which happens at Rs*P Hz. We filter the tones at P different timing offsets, and choose the best one. P should be >=8, so we have a choice of at least 8 timing offsets. This may require some adjustment of Fs and Rs, as Fs/Rs/P must be an integer. Nsym is the number of symbols we average demod parameters like symbol timing over. \*---------------------------------------------------------------------------*/ struct FSK * fsk_create_hbr(int Fs, int Rs, int M, int P, int Nsym, int f1_tx, int tone_spacing) { return fsk_create_core(Fs, Rs, M, P, Nsym, f1_tx, tone_spacing); } /*---------------------------------------------------------------------------*\ FUNCTION....: fsk_destroy AUTHOR......: Brady O'Brien DATE CREATED: 11 February 2016 Call this to free all memory and shut down the modem. \*---------------------------------------------------------------------------*/ void fsk_destroy(struct FSK *fsk){ free(fsk->Sf); free(fsk->f_dc); free(fsk->fft_cfg); free(fsk->stats); free(fsk->hann_table); free(fsk); } /*---------------------------------------------------------------------------*\ FUNCTION....: fsk_mod AUTHOR......: Brady O'Brien DATE CREATED: 11 February 2016 FSK modulator function, real valued output samples with amplitude 2. \*---------------------------------------------------------------------------*/ void fsk_mod(struct FSK *fsk,float fsk_out[], uint8_t tx_bits[], int nbits) { COMP tx_phase_c = fsk->tx_phase_c; /* Current complex TX phase */ int f1_tx = fsk->f1_tx; /* '0' frequency */ int tone_spacing = fsk->tone_spacing; /* space between frequencies */ int Ts = fsk->Ts; /* samples-per-symbol */ int Fs = fsk->Fs; /* sample freq */ int M = fsk->mode; COMP dosc_f[M]; /* phase shift per sample */ COMP dph; /* phase shift of current bit */ size_t i,j,m,bit_i,sym; /* trap these parametrs being set to FSK_UNUSED, then calling mod */ assert(f1_tx > 0); assert(tone_spacing > 0); /* Init the per sample phase shift complex numbers */ for( m=0; m>1); for(i=0; i>=1; ){ uint8_t bit = tx_bits[bit_i]; bit = (bit==1)?1:0; sym = (sym<<1)|bit; bit_i++; } /* Look up symbol phase shift */ dph = dosc_f[sym]; /* Spin the oscillator for a symbol period */ for(j=0; jtx_phase_c = tx_phase_c; } /*---------------------------------------------------------------------------*\ FUNCTION....: fsk_mod_c AUTHOR......: Brady O'Brien DATE CREATED: 11 February 2016 FSK modulator function, complex valued output samples with magnitude 1. \*---------------------------------------------------------------------------*/ void fsk_mod_c(struct FSK *fsk,COMP fsk_out[], uint8_t tx_bits[], int nbits) { COMP tx_phase_c = fsk->tx_phase_c; /* Current complex TX phase */ int f1_tx = fsk->f1_tx; /* '0' frequency */ int tone_spacing = fsk->tone_spacing; /* space between frequencies */ int Ts = fsk->Ts; /* samples-per-symbol */ int Fs = fsk->Fs; /* sample freq */ int M = fsk->mode; COMP dosc_f[M]; /* phase shift per sample */ COMP dph; /* phase shift of current bit */ size_t i,j,bit_i,sym; int m; /* trap these parametrs being set to FSK_UNUSED, then calling mod */ assert(f1_tx > 0); assert(tone_spacing > 0); /* Init the per sample phase shift complex numbers */ for( m=0; m>1); for(i=0; i>=1; ){ uint8_t bit = tx_bits[bit_i]; bit = (bit==1)?1:0; sym = (sym<<1)|bit; bit_i++; } /* Look up symbol phase shift */ dph = dosc_f[sym]; /* Spin the oscillator for a symbol period */ for(j=0; jtx_phase_c = tx_phase_c; } /*---------------------------------------------------------------------------*\ FUNCTION....: fsk_mod_ext_vco AUTHOR......: David Rowe DATE CREATED: February 2018 Modulator that assume an external VCO. The output is a voltage that changes for each symbol. \*---------------------------------------------------------------------------*/ void fsk_mod_ext_vco(struct FSK *fsk, float vco_out[], uint8_t tx_bits[], int nbits) { int f1_tx = fsk->f1_tx; /* '0' frequency */ int tone_spacing = fsk->tone_spacing; /* space between frequencies */ int Ts = fsk->Ts; /* samples-per-symbol */ int M = fsk->mode; int i, j, m, sym, bit_i; /* trap these parametrs being set to FSK_UNUSED, then calling mod */ assert(f1_tx > 0); assert(tone_spacing > 0); bit_i = 0; int nsym = nbits/(M>>1); for(i=0; i>=1; ){ uint8_t bit = tx_bits[bit_i]; bit = (bit==1)?1:0; sym = (sym<<1)|bit; bit_i++; } /* Map 'sym' to VCO frequency Note: drive is inverted, a higher tone drives VCO voltage lower */ //fprintf(stderr, "i: %d sym: %d freq: %f\n", i, sym, f1_tx + tone_spacing*(float)sym); for(j=0; jnin; } /* * Internal function to estimate the frequencies of the FSK tones. * This is split off because it is fairly complicated, needs a bunch of memory, and probably * takes more cycles than the rest of the demod. * Parameters: * fsk - FSK struct from demod containing FSK config * fsk_in - block of samples in this demod cycles, must be nin long * freqs - Array for the estimated frequencies * M - number of frequency peaks to find */ void fsk_demod_freq_est(struct FSK *fsk, COMP fsk_in[], float *freqs, int M) { int Ndft = fsk->Ndft; int Fs = fsk->Fs; int nin = fsk->nin; size_t i,j; float hann; float max; int imax; kiss_fft_cfg fft_cfg = fsk->fft_cfg; int freqi[M]; int st,en,f_zero; /* Array to do complex FFT from using kiss_fft */ #ifdef DEMOD_ALLOC_STACK kiss_fft_cpx *fftin = (kiss_fft_cpx*)alloca(sizeof(kiss_fft_cpx)*Ndft); kiss_fft_cpx *fftout = (kiss_fft_cpx*)alloca(sizeof(kiss_fft_cpx)*Ndft); #else kiss_fft_cpx *fftin = (kiss_fft_cpx*)malloc(sizeof(kiss_fft_cpx)*Ndft); kiss_fft_cpx *fftout = (kiss_fft_cpx*)malloc(sizeof(kiss_fft_cpx)*Ndft); #endif st = (fsk->est_min*Ndft)/Fs + Ndft/2; if (st < 0) st = 0; en = (fsk->est_max*Ndft)/Fs + Ndft/2; if (en > Ndft) en = Ndft; //fprintf(stderr, "min: %d max: %d st: %d en: %d\n", fsk->est_min, fsk->est_max, st, en); f_zero = (fsk->est_space*Ndft)/Fs; //fprintf(stderr, "fsk->est_space: %d f_zero = %d\n", fsk->est_space, f_zero); int numffts = floor((float)nin/(Ndft/2)) - 1; for(j=0; jhann_table[i]; #else hann = 0.5 - 0.5 * cosf(2.0 * M_PI * (float)i / (float) (fft_samps-1)); #endif fftin[i].r = hann*fsk_in[i+a].real; fftin[i].i = hann*fsk_in[i+a].imag; } /* Do the FFT */ kiss_fft(fft_cfg,fftin,fftout); /* FFT shift to put DC bin at Ndft/2 */ kiss_fft_cpx tmp; for(i=0; itc; for(i=0; iSf[i] = (fsk->Sf[i]*(1-tc)) + (sqrtf(fftout[i].r)*tc); fftout[i].i = fsk->Sf[i]; } } modem_probe_samp_f("t_Sf",fsk->Sf,Ndft); max = 0; /* Find the M frequency peaks here */ for(i=0; i max){ max = fftout[j].i; imax = j; } } /* Blank out FMax +/-Fspace/2 */ int f_min, f_max; f_min = imax - f_zero; f_min = f_min < 0 ? 0 : f_min; f_max = imax + f_zero; f_max = f_max > Ndft ? Ndft : f_max; for(j=f_min; j= freqi[i-1]) i++; else{ j = freqi[i]; freqi[i] = freqi[i-1]; freqi[i-1] = j; if(i>1) i--; } } /* Convert freqs from indices to frequencies */ for(i=0; itone_spacing*Ndft/Fs)-1; for(i=bin; i<=bin+2; i++) mask[i] = 1.0; } int len_mask = bin+2+1; #ifdef MODEMPROBE_ENABLE modem_probe_samp_f("t_mask",mask,len_mask); #endif /* drag mask over Sf, looking for peak in correlation */ int b_max = st; float corr_max = 0.0; float *Sf = fsk->Sf; for (int b=st; b corr_max) { corr_max = corr; b_max = b; } } float foff = (b_max-Ndft/2)*Fs/Ndft; //fprintf(stderr, "fsk->tone_spacing: %d\n",fsk->tone_spacing); for (int m=0; mf2_est[m] = foff + m*fsk->tone_spacing; #ifdef MODEMPROBE_ENABLE modem_probe_samp_f("t_f2_est",fsk->f2_est,M); #endif #ifndef DEMOD_ALLOC_STACK free(fftin); free(fftout); #endif } /* core demodulator function */ void fsk_demod_core(struct FSK *fsk, uint8_t rx_bits[], float rx_filt[], COMP fsk_in[]){ int N = fsk->N; int Ts = fsk->Ts; int Rs = fsk->Rs; int Fs = fsk->Fs; int nsym = fsk->Nsym; int nin = fsk->nin; int P = fsk->P; int Nmem = fsk->Nmem; int M = fsk->mode; size_t i,j,m; float ft1; COMP t[M]; /* complex number temps */ COMP t_c; /* another complex temp */ COMP *phi_c = fsk->phi_c; COMP *f_dc = fsk->f_dc; COMP phi_ft; int nold = Nmem-nin; COMP dphift; float rx_timing,norm_rx_timing,old_norm_rx_timing,d_norm_rx_timing,appm; float fc_avg,fc_tx; float meanebno,stdebno,eye_max; int neyesamp,neyeoffset; #ifdef MODEMPROBE_ENABLE #define NMP_NAME 26 char mp_name_tmp[NMP_NAME+1]; /* Temporary string for modem probe trace names */ #endif /* Estimate tone frequencies */ fsk_demod_freq_est(fsk,fsk_in,fsk->f_est,M); #ifdef MODEMPROBE_ENABLE modem_probe_samp_f("t_f_est",fsk->f_est,M); #endif float *f_est; if (fsk->freq_est_type) f_est = fsk->f2_est; else f_est = fsk->f_est; /* update filter (integrator) memory by shifting in nin samples */ for(m=0; mnorm_rx_timing; fsk->norm_rx_timing = norm_rx_timing; /* Estimate sample clock offset */ d_norm_rx_timing = norm_rx_timing - old_norm_rx_timing; /* Filter out big jumps in due to nin change */ if(fabsf(d_norm_rx_timing) < .2){ appm = 1e6*d_norm_rx_timing/(float)nsym; fsk->ppm = .9*fsk->ppm + .1*appm; } /* Figure out how many samples are needed the next modem cycle */ /* Unless we're in burst mode or nin locked */ if(!fsk->burst_mode && !fsk->lock_nin) { if(norm_rx_timing > 0.25) fsk->nin = N+Ts/4; else if(norm_rx_timing < -0.25) fsk->nin = N-Ts/4; else fsk->nin = N; } modem_probe_samp_f("t_norm_rx_timing",&(norm_rx_timing),1); modem_probe_samp_i("t_nin",&(fsk->nin),1); /* Re-sample the integrators with linear interpolation magic */ int low_sample = (int)floorf(rx_timing); float fract = rx_timing - (float)low_sample; int high_sample = (int)ceilf(rx_timing); /* Vars for finding the max-of-4 for each bit */ float tmax[M]; #ifdef EST_EBNO meanebno = 0; stdebno = 0; #endif float rx_nse_pow = 1E-12; float rx_sig_pow = 0.0; for(i=0; imax){ max = tmax[m]; sym = m; } if(tmax[m]>1; } } /* Optionally output filter magnitudes for soft decision/LLR calculation. Update SNRest always as this is a useful alternative to the earlier EbNo estimator below */ float sum = 0.0; for(m=0; mrx_sig_pow = rx_sig_pow = rx_sig_pow/nsym; fsk->rx_nse_pow = rx_nse_pow = rx_nse_pow/nsym; fsk->v_est = sqrt(rx_sig_pow-rx_nse_pow); fsk->SNRest = rx_sig_pow/rx_nse_pow; #ifdef EST_EBNO /* Calculate mean for EbNodB estimation */ meanebno = meanebno/(float)nsym; /* Calculate the std. dev for EbNodB estimate */ stdebno = (stdebno/(float)nsym) - (meanebno*meanebno); /* trap any negative numbers to avoid NANs flowing through */ if (stdebno > 0.0) { stdebno = sqrt(stdebno); } else { stdebno = 0.0; } fsk->EbNodB = -6+(20*log10f((1e-6+meanebno)/(1e-6+stdebno))); #else fsk->EbNodB = 1; #endif /* Write some statistics to the stats struct */ /* Save clock offset in ppm */ fsk->stats->clock_offset = fsk->ppm; /* Calculate and save SNR from EbNodB estimate */ fsk->stats->snr_est = .5*fsk->stats->snr_est + .5*fsk->EbNodB;//+ 10*log10f(((float)Rs)/((float)Rs*M)); /* Save rx timing */ fsk->stats->rx_timing = (float)rx_timing; /* Estimate and save frequency offset */ fc_avg = fc_tx = 0.0; for(int m=0; mf1_tx + m*fsk->tone_spacing)/M; } fsk->stats->foff = fc_tx-fc_avg; /* Take a sample for the eye diagrams ---------------------------------- */ /* due to oversample rate P, we have too many samples for eye trace. So lets output a decimated version. We use 2P as we want two symbols worth of samples in trace */ int neyesamp_dec = ceil(((float)P*2)/MODEM_STATS_EYE_IND_MAX); neyesamp = (P*2)/neyesamp_dec; assert(neyesamp <= MODEM_STATS_EYE_IND_MAX); fsk->stats->neyesamp = neyesamp; neyeoffset = high_sample+1; int eye_traces = MODEM_STATS_ET_MAX/M; int ind; fsk->stats->neyetr = fsk->mode*eye_traces; for( i=0; iMODEM_STATS_EYE_IND_MAX advance through integrated samples newamp_dec at a time so we dont overflow rx_eye[][] */ ind = 2*P*(i+1) + neyeoffset + j*neyesamp_dec; assert((i*M+m) < MODEM_STATS_ET_MAX); assert(ind >= 0); assert(ind < (nsym+1)*P); fsk->stats->rx_eye[i*M+m][j] = cabsolute(f_int[m][ind]); } } } if (fsk->normalise_eye) { eye_max = 0; /* Normalize eye to +/- 1 */ for(i=0; istats->rx_eye[i][j])>eye_max) eye_max = fabsf(fsk->stats->rx_eye[i][j]); for(i=0; istats->rx_eye[i][j] = fsk->stats->rx_eye[i][j]/eye_max; } fsk->stats->nr = 0; fsk->stats->Nc = 0; for(i=0; istats->f_est[i] = f_est[i]; /* Dump some internal samples */ modem_probe_samp_f("t_EbNodB",&(fsk->EbNodB),1); modem_probe_samp_f("t_ppm",&(fsk->ppm),1); modem_probe_samp_f("t_rx_timing",&(rx_timing),1); } /*---------------------------------------------------------------------------*\ FUNCTION....: fsk_demod AUTHOR......: Brady O'Brien DATE CREATED: 11 February 2016 FSK demodulator functions: fsk_demod...: complex samples in, bits out fsk_demos_sd: complex samples in, soft decision symbols out \*---------------------------------------------------------------------------*/ void fsk_demod(struct FSK *fsk, uint8_t rx_bits[], COMP fsk_in[]) { fsk_demod_core(fsk,rx_bits,NULL,fsk_in); } void fsk_demod_sd(struct FSK *fsk, float rx_filt[], COMP fsk_in[]){ fsk_demod_core(fsk,NULL,rx_filt,fsk_in); } /* make sure stats have known values in case monitoring process reads stats before they are set */ static void stats_init(struct FSK *fsk) { /* Take a sample for the eye diagrams */ int i,j,m; int P = fsk->P; int M = fsk->mode; /* due to oversample rate P, we have too many samples for eye trace. So lets output a decimated version */ /* asserts below as we found some problems over-running eye matrix */ /* TODO: refactor eye tracing code here and in fsk_demod */ int neyesamp_dec = ceil(((float)P*2)/MODEM_STATS_EYE_IND_MAX); int neyesamp = (P*2)/neyesamp_dec; assert(neyesamp <= MODEM_STATS_EYE_IND_MAX); fsk->stats->neyesamp = neyesamp; int eye_traces = MODEM_STATS_ET_MAX/M; fsk->stats->neyetr = fsk->mode*eye_traces; for(i=0; istats->rx_eye[i*M+m][j] = 0; } } } fsk->stats->rx_timing = fsk->stats->snr_est = 0; } /* Set the FSK modem into burst demod mode */ void fsk_enable_burst_mode(struct FSK *fsk){ fsk->nin = fsk->N; fsk->burst_mode = 1; } void fsk_clear_estimators(struct FSK *fsk){ int i; /* Clear freq estimator state */ for(i=0; i < (fsk->Ndft); i++){ fsk->Sf[i] = 0; } /* Reset timing diff correction */ fsk->nin = fsk->N; } void fsk_get_demod_stats(struct FSK *fsk, struct MODEM_STATS *stats){ /* copy from internal stats, note we can't overwrite stats completely as it has other states rqd by caller, also we want a consistent interface across modem types for the freedv_api. */ stats->clock_offset = fsk->stats->clock_offset; stats->snr_est = fsk->stats->snr_est; // TODO: make this SNR not Eb/No stats->rx_timing = fsk->stats->rx_timing; stats->foff = fsk->stats->foff; stats->neyesamp = fsk->stats->neyesamp; stats->neyetr = fsk->stats->neyetr; memcpy(stats->rx_eye, fsk->stats->rx_eye, sizeof(stats->rx_eye)); memcpy(stats->f_est, fsk->stats->f_est, fsk->mode*sizeof(float)); /* these fields not used for FSK so set to something sensible */ stats->sync = 0; stats->nr = fsk->stats->nr; stats->Nc = fsk->stats->Nc; } /* * Set the minimum and maximum frequencies at which the freq. estimator can find tones */ void fsk_set_freq_est_limits(struct FSK *fsk, int est_min, int est_max){ assert(fsk != NULL); assert(est_min >= -fsk->Fs/2); assert(est_max <= fsk->Fs/2); assert(est_max > est_min); fsk->est_min = est_min; fsk->est_max = est_max; } void fsk_stats_normalise_eye(struct FSK *fsk, int normalise_enable) { assert(fsk != NULL); fsk->normalise_eye = normalise_enable; } void fsk_set_freq_est_alg(struct FSK *fsk, int est_type) { assert(fsk != NULL); fsk->freq_est_type = est_type; } codec2-1.0.1/src/fsk.h000066400000000000000000000174741412132000500143740ustar00rootroot00000000000000/*---------------------------------------------------------------------------*\ FILE........: fsk.h AUTHOR......: Brady O'Brien DATE CREATED: 6 January 2016 C Implementation of 2FSK/4FSK modulator/demodulator, based on octave/fsk_horus.m \*---------------------------------------------------------------------------*/ /* Copyright (C) 2016 David Rowe All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 2.1, as published by the Free Software Foundation. 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 Lesser General Public License along with this program; if not, see . */ #ifndef __C2FSK_H #define __C2FSK_H #include #include "comp.h" #include "kiss_fftr.h" #include "modem_stats.h" #define MODE_2FSK 2 #define MODE_4FSK 4 #define MODE_M_MAX 4 #define FSK_SCALE 16383 /* default internal parameters */ #define FSK_DEFAULT_P 8 /* Number of timing offsets we have to choose from, try to keep P >= 8 */ #define FSK_DEFAULT_NSYM 50 /* See Nsym below */ #define FSK_NONE -1 /* unused parameter */ struct FSK { /* Static parameters set up by fsk_init */ int Ndft; /* freq offset est fft */ int Fs; /* sample freq */ int N; /* processing buffer size */ int Rs; /* symbol rate */ int Ts; /* samples per symbol */ int Nmem; /* size of extra mem for timing adj */ int P; /* oversample rate for timing est/adj */ int Nsym; /* Number of symbols processed by demodulator in each call, also the timing estimator window */ int Nbits; /* Number of bits spat out in a processing frame */ int f1_tx; /* f1 for modulator */ int tone_spacing; /* Space between TX freqs for modulator (and option mask freq estimator) */ int mode; /* 2FSK or 4FSK */ float tc; /* time constant for smoothing FFTs */ int est_min; /* Minimum frequency for freq. estimator */ int est_max; /* Maximum frequency for freq. estimator */ int est_space; /* Minimum frequency spacing for freq. estimator */ float* hann_table; /* Precomputed or runtime computed hann window table */ /* Parameters used by demod */ float* Sf; /* Average of magnitude spectrum */ COMP phi_c[MODE_M_MAX]; /* phase of each demod local oscillator */ COMP *f_dc; /* down converted samples */ kiss_fft_cfg fft_cfg; /* Config for KISS FFT, used in freq est */ float norm_rx_timing; /* Normalized RX timing */ /* Parameters used by mod */ COMP tx_phase_c; /* TX phase, but complex */ /* Statistics generated by demod */ float EbNodB; /* Estimated EbNo in dB */ float f_est[MODE_M_MAX]; /* Estimated frequencies (peak method) */ float f2_est[MODE_M_MAX];/* Estimated frequencies (mask method) */ int freq_est_type; /* which estimator to use */ float ppm; /* Estimated PPM clock offset */ float SNRest; /* used for LLRs */ float v_est; /* used for LLRs */ float rx_sig_pow; float rx_nse_pow; /* Parameters used by mod/demod and driving code */ int nin; /* Number of samples to feed the next demod cycle */ int burst_mode; /* enables/disables 'burst' mode */ int lock_nin; /* locks nin during testing */ /* modem statistics struct */ struct MODEM_STATS *stats; int normalise_eye; /* enables/disables normalisation of eye diagram */ }; /* * Create a FSK modem * * int Fs - Sample frequency * int Rs - Symbol rate * int M - 2 for 2FSK, 4 for 4FSK * int f1_tx - first tone frequency * int tone_spacing - frequency spacing (for modulator and optional "mask" freq estimator) */ struct FSK * fsk_create(int Fs, int Rs, int M, int f1_tx, int tone_spacing); /* * Create a FSK modem - advanced version * * int Fs - Sample frequency * int Rs - Symbol rate * int M - 2 for 2FSK, 4 for 4FSK * int P - number of timing offsets to choose from (suggest >= 8) * int Nsym - windows size for timing estimator * int f1_tx - first tone frequency * int tone_spacing - frequency spacing (for modulator and optional "mask" freq estimator) */ struct FSK * fsk_create_hbr(int Fs, int Rs, int M, int P, int Nsym, int f1_tx, int tone_spacing); /* * Set the minimum and maximum frequencies at which the freq. estimator can find tones */ void fsk_set_freq_est_limits(struct FSK *fsk,int fmin, int fmax); /* * Clear the estimator states */ void fsk_clear_estimators(struct FSK *fsk); /* * Fills MODEM_STATS struct with demod statistics */ void fsk_get_demod_stats(struct FSK *fsk, struct MODEM_STATS *stats); /* * Destroy an FSK state struct and free it's memory * * struct FSK *fsk - FSK config/state struct to be destroyed */ void fsk_destroy(struct FSK *fsk); /* * Modulates Nsym bits into N samples * * struct FSK *fsk - FSK config/state struct, set up by fsk_create * float fsk_out[] - Buffer for samples of modulated FSK, fsk->Ts*(nbits/(M>>1)) in length * uint8_t tx_bits[] - Buffer containing Nbits unpacked bits * int nbits - number of bits to transmit */ void fsk_mod(struct FSK *fsk, float fsk_out[], uint8_t tx_bits[], int nbits); /* * Modulates Nsym bits into N samples * * struct FSK *fsk - FSK config/state struct, set up by fsk_create * float fsk_out[] - Buffer for samples of "voltage" used to modulate an external VCO * - fsk->Ts*(nbits/(M>>1)) in length * uint8_t tx_bits[] - Buffer containing Nbits unpacked bits * int nbits - number of bits to transmit */ void fsk_mod_ext_vco(struct FSK *fsk, float vco_out[], uint8_t tx_bits[], int nbits); /* * Modulates Nsym bits into N complex samples * * struct FSK *fsk - FSK config/state struct, set up by fsk_create * comp fsk_out[] - Buffer for samples of modulated FSK, fsk->Ts*(nbits/(M>>1)) in length * uint8_t tx_bits[] - Buffer containing Nbits unpacked bits * int nbits - number of bits to transmit */ void fsk_mod_c(struct FSK *fsk, COMP fsk_out[], uint8_t tx_bits[], int nbits); /* * Returns the number of samples needed for the next fsk_demod() cycle * * struct FSK *fsk - FSK config/state struct, set up by fsk_create * returns - number of samples to be fed into fsk_demod next cycle */ uint32_t fsk_nin(struct FSK *fsk); /* * Demodulate some number of FSK samples. The number of samples to be * demodulated can be found by calling fsk_nin(). * * struct FSK *fsk - FSK config/state struct, set up by fsk_create * uint8_t rx_bits[] - Buffer for fsk->Nbits unpacked bits to be written * float fsk_in[] - nin samples of modulated FSK */ void fsk_demod(struct FSK *fsk, uint8_t rx_bits[], COMP fsk_in[]); /* * Soft decision demodulation * * struct FSK *fsk - FSK config/state struct, set up by fsk_create * float rx_flit[] - M x Nsym array of filtermagnitude outputs * float fsk_in[] - nin samples of modualted FSK */ void fsk_demod_sd(struct FSK *fsk, float rx_filt[], COMP fsk_in[]); /* enables/disables normalisation of eye diagram samples */ void fsk_stats_normalise_eye(struct FSK *fsk, int normalise_enable); /* Set the FSK modem into burst demod mode */ void fsk_enable_burst_mode(struct FSK *fsk); /* Set freq est algorithm 0: peak 1:mask */ void fsk_set_freq_est_alg(struct FSK *fsk, int est_type); #endif codec2-1.0.1/src/fsk_demod.c000066400000000000000000000354651412132000500155370ustar00rootroot00000000000000/*---------------------------------------------------------------------------*\ FILE........: fsk_demod.c AUTHOR......: Brady O'Brien and David Rowe DATE CREATED: 8 January 2016 Command line FSK demodulator. Reads in FSK samples, writes demodulated output bits. \*---------------------------------------------------------------------------*/ /* Copyright (C) 2016 David Rowe All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 2.1, as published by the Free Software Foundation. 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 Lesser General Public License along with this program; if not, see . */ #define TEST_FRAME_SIZE 100 /* must match fsk_get_test_bits.c */ #include #include #include #include #include #include #include #include "fsk.h" #include "codec2_fdmdv.h" #include "mpdecode_core.h" #include "modem_stats.h" /* cleanly exit when we get a SIGTERM */ void sig_handler(int signo) { if (signo == SIGTERM) { exit(0); } } int main(int argc,char *argv[]){ struct FSK *fsk; struct MODEM_STATS stats; int Fs,Rs,M,P,stats_ctr,stats_loop; float loop_time; int enable_stats = 0; FILE *fin,*fout; uint8_t *bitbuf = NULL; int16_t *rawbuf; COMP *modbuf; float *rx_filt = NULL; float *llrs = NULL; int i,j,Ndft; int soft_dec_mode = 0; stats_loop = 0; int complex_input = 1, bytes_per_sample = 2; int stats_rate = 8; int testframe_mode = 0; P = 8; /* default */ M = 0; int fsk_lower = 0; int fsk_upper = 0; int user_fsk_lower = 0; int user_fsk_upper = 0; int nsym = FSK_DEFAULT_NSYM; int mask = 0; int tone_separation = 100; int o = 0; int opt_idx = 0; while( o != -1 ){ static struct option long_opts[] = { {"help", no_argument, 0, 'h'}, {"conv", required_argument, 0, 'p'}, {"cs16", no_argument, 0, 'c'}, {"cu8", no_argument, 0, 'd'}, {"fsk_lower", required_argument, 0, 'b'}, {"fsk_upper", required_argument, 0, 'u'}, {"stats", optional_argument, 0, 't'}, {"soft-dec", no_argument, 0, 's'}, {"testframes",no_argument, 0, 'f'}, {"nsym", required_argument, 0, 'n'}, {"mask", required_argument, 0, 'm'}, {0, 0, 0, 0} }; o = getopt_long(argc,argv,"fhlp:cdt::sb:u:m",long_opts,&opt_idx); switch(o){ case 'c': complex_input = 2; bytes_per_sample = 2; break; case 'd': complex_input = 2; bytes_per_sample = 1; break; case 'f': testframe_mode = 1; break; case 't': enable_stats = 1; if(optarg != NULL){ stats_rate = atoi(optarg); if(stats_rate == 0){ stats_rate = 8; } } break; case 's': soft_dec_mode = 1; break; case 'p': P = atoi(optarg); break; case 'b': if (optarg != NULL) { fsk_lower = atoi(optarg); user_fsk_lower = 1; } break; case 'u': if (optarg != NULL){ fsk_upper = atoi(optarg); user_fsk_upper = 1; } break; case 'n': if (optarg != NULL) { nsym = atoi(optarg); } break; case 'm': mask = 1; tone_separation = atoi(optarg); break; case 'h': case '?': goto helpmsg; break; } } int dx = optind; if( (argc - dx) < 5) { fprintf(stderr, "Too few arguments\n"); goto helpmsg; } if( (argc - dx) > 5) { fprintf(stderr, "Too many arguments\n"); helpmsg: fprintf(stderr,"usage: %s [options] (2|4) SampleRate SymbolRate InputModemRawFile OutputFile\n",argv[0]); fprintf(stderr," -c --cs16 The raw input file will be in complex signed 16 bit format.\n"); fprintf(stderr," -d --cu8 The raw input file will be in complex unsigned 8 bit format.\n"); fprintf(stderr," If neither -c nor -d are used, the input should be in signed 16 bit format.\n"); fprintf(stderr," -f --testframes Testframe mode, prints stats to stderr when a testframe is detected, if -t (JSON) \n"); fprintf(stderr," is enabled stats will be in JSON format\n"); fprintf(stderr," -t[r] --stats=[r] Print out modem statistics to stderr in JSON.\n"); fprintf(stderr," r, if provided, sets the number of modem frames between statistic printouts.\n"); fprintf(stderr," -s --soft-dec The output file will be in a soft-decision format, with one 32-bit float per bit.\n"); fprintf(stderr," If -s is not used, the output will be in a 1 byte-per-bit format.\n"); fprintf(stderr," -p P Number of timing offsets we have to choose from, default %d.\n", FSK_DEFAULT_P); fprintf(stderr," Fs/Rs/P must be an integer. Smaller values result in faster operation, but\n"); fprintf(stderr," coarse sampling. Try to keep >= 8\n"); fprintf(stderr," processing but lower demodulation performance. Default %d\n", FSK_DEFAULT_P); fprintf(stderr," --fsk_lower freq lower limit of freq estimator (default 0 for real input, -Fs/2 for complex input)\n"); fprintf(stderr," --fsk_upper freq upper limit of freq estimator (default Fs/2)\n"); fprintf(stderr," --nsym Nsym number of symbols used for estimators. Default %d\n", FSK_DEFAULT_NSYM); fprintf(stderr," --mask TxFreqSpace Use \"mask\" freq estimator (default is \"peak\" estimator)\n"); exit(1); } /* Extract parameters */ M = atoi(argv[dx]); Fs = atoi(argv[dx + 1]); Rs = atoi(argv[dx + 2]); if( (M!=2) && (M!=4) ){ fprintf(stderr,"Mode %d is not valid. Mode must be 2 or 4.\n",M); goto helpmsg; } /* Open files */ if(strcmp(argv[dx + 3],"-")==0){ fin = stdin; }else{ fin = fopen(argv[dx + 3],"r"); } if(strcmp(argv[dx + 4],"-")==0){ fout = stdout; }else{ fout = fopen(argv[dx + 4],"w"); } /* set up FSK */ fsk = fsk_create_hbr(Fs,Rs,M,P,nsym,FSK_NONE,tone_separation); /* set freq estimator limits */ if (!user_fsk_lower) { if (complex_input == 1) fsk_lower = 0; else fsk_lower = -Fs/2; } if (!user_fsk_upper) { fsk_upper = Fs/2; } fprintf(stderr,"Setting estimator limits to %d to %d Hz.\n", fsk_lower, fsk_upper); fsk_set_freq_est_limits(fsk,fsk_lower,fsk_upper); fsk_set_freq_est_alg(fsk, mask); if(fin==NULL || fout==NULL || fsk==NULL){ fprintf(stderr,"Couldn't open files\n"); exit(1); } /* set up testframe mode */ int testframecnt, bitcnt, biterr, testframe_detected; uint8_t *bitbuf_tx = NULL, *bitbuf_rx = NULL; if (testframe_mode) { bitbuf_tx = (uint8_t*)malloc(sizeof(uint8_t)*TEST_FRAME_SIZE); assert(bitbuf_tx != NULL); bitbuf_rx = (uint8_t*)malloc(sizeof(uint8_t)*TEST_FRAME_SIZE); assert(bitbuf_rx != NULL); /* Generate known tx frame from known seed */ srand(158324); for(i=0; imode*fsk->Nsym); assert(rx_filt != NULL); llrs = (float*)malloc(sizeof(float)*fsk->Nbits); assert(llrs != NULL); } else { bitbuf = (uint8_t*)malloc(sizeof(uint8_t)*fsk->Nbits); assert(bitbuf != NULL); } rawbuf = (int16_t*)malloc(bytes_per_sample*(fsk->N+fsk->Ts*2)*complex_input); modbuf = (COMP*)malloc(sizeof(COMP)*(fsk->N+fsk->Ts*2)); /* set up signal handler so we can terminate gracefully */ if (signal(SIGTERM, sig_handler) == SIG_ERR) { printf("\ncan't catch SIGTERM\n"); } /* Demodulate! */ while( fread(rawbuf,bytes_per_sample*complex_input,fsk_nin(fsk),fin) == fsk_nin(fsk) ){ /* convert input to a buffer of floats. Note scaling isn't really necessary for FSK */ if (complex_input == 1) { /* S16 real input */ for(i=0;imode); assert(fsk->Nbits == bps*fsk->Nsym); /* output bit LLRs */ fsk_demod_sd(fsk, rx_filt, modbuf); fsk_rx_filt_to_llrs(llrs, rx_filt, fsk->v_est, fsk->SNRest, fsk->mode, fsk->Nsym); } else { fsk_demod(fsk,bitbuf,modbuf); } testframe_detected = 0; if (testframe_mode) { assert(soft_dec_mode == 0); /* attempt to find a testframe and update stats */ /* update silding window of input bits */ int errs; for(j=0; jNbits; j++) { for(i=0; ippm); float *f_est; if (fsk->freq_est_type) f_est = fsk->f2_est; else f_est = fsk->f_est; fprintf(stderr," \"f1_est\":%.1f, \"f2_est\":%.1f",f_est[0],f_est[1]); /* Print 4FSK stats if in 4FSK mode */ if(fsk->mode == 4){ fprintf(stderr,", \"f3_est\":%.1f, \"f4_est\":%.1f",f_est[2],f_est[3]); } if (testframe_mode == 0) { /* Print the eye diagram */ fprintf(stderr,",\t\"eye_diagram\":["); for(i=0;iNdft/2; for(i=0; iSf)[i]); if(iNbits,fout); } else{ fwrite(bitbuf,sizeof(uint8_t),fsk->Nbits,fout); } if(fout == stdin){ fflush(fout); } } /* while(fread ...... */ if (testframe_mode) { free(bitbuf_tx); free(bitbuf_rx); } if (soft_dec_mode) { free(rx_filt); free(llrs); } else{ free(bitbuf); } free(rawbuf); free(modbuf); fclose(fin); fclose(fout); fsk_destroy(fsk); return 0; } codec2-1.0.1/src/fsk_get_test_bits.c000066400000000000000000000050131412132000500172700ustar00rootroot00000000000000/*---------------------------------------------------------------------------*\ FILE........: fsk_get_test_bits.c AUTHOR......: Brady O'Brien DATE CREATED: January 2016 Generates a pseudorandom sequence of bits for testing of fsk_mod and fsk_demod \*---------------------------------------------------------------------------*/ /* Copyright (C) 2016 David Rowe All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 2.1, as published by the Free Software Foundation. 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 Lesser General Public License along with this program; if not, see . */ #include #include #include "fsk.h" #define TEST_FRAME_SIZE 100 /* arbitrary choice, repeats after this many bits, sets frame size for rx processing */ int main(int argc,char *argv[]){ int bitcnt, framecnt; int framesize = TEST_FRAME_SIZE; int i; FILE *fout; uint8_t *bitbuf; if(argc < 3){ fprintf(stderr,"usage: %s OutputBitsOnePerByte numBits [framesize]\n",argv[0]); exit(1); } if (argc == 4){ framesize = atoi(argv[3]); fprintf(stderr, "Using custom frame size of %d bits\n", framesize); } /* Extract parameters */ bitcnt = atoi(argv[2]); framecnt = bitcnt/framesize; if (framecnt == 0) { fprintf(stderr,"Need a minimum of %d bits\n", framesize); exit(1); } if(strcmp(argv[1],"-")==0){ fout = stdout; }else{ fout = fopen(argv[1],"w"); } if(fout==NULL){ fprintf(stderr,"Couldn't open output file: %s\n", argv[1]); goto cleanup; } /* allocate buffers for processing */ bitbuf = (uint8_t*)alloca(sizeof(uint8_t)*framesize); /* Generate buffer of test frame bits from known seed */ srand(158324); for(i=0; i. */ #include #include #include #include "fsk.h" #include "codec2_fdmdv.h" int main(int argc,char *argv[]){ struct FSK *fsk; int Fs,Rs,f1,fs,M; int i; int p, user_p = 0; FILE *fin,*fout; int complex = 0; int bytes_per_sample = 2; float amp = FDMDV_SCALE; int test_mode = 0; char usage[] = "usage: %s [-p P] [-c] [-a Amplitude] [-t] Mode SampleFreq SymbolFreq TxFreq1 TxFreqSpace InputOneBitPerCharFile OutputModRawFile\n" " -c complex signed 16 bit output format\n" " -a Amplitude Amplitude of signal\n" " -t test mode unmodulated carrier, useful for setting levels\n"; int opt; while ((opt = getopt(argc, argv, "a:p:ct")) != -1) { switch (opt) { case 'a': amp = atof(optarg)/2.0; /* fsk_mod amplitude is +/-2 */ break; case 'c': complex = 1; bytes_per_sample = 4; break; case 't': test_mode = 1; break; case 'p': p = atoi(optarg); user_p = 1; break; default: fprintf(stderr, usage, argv[0]); exit(1); } } if (argc<8){ fprintf(stderr, usage, argv[0]); exit(1); } /* Extract parameters */ M = atoi(argv[optind++]); Fs = atoi(argv[optind++]); Rs = atoi(argv[optind++]); f1 = atoi(argv[optind++]); fs = atoi(argv[optind++]); if(strcmp(argv[optind],"-")==0){ fin = stdin; }else{ fin = fopen(argv[optind],"r"); } optind++; if(strcmp(argv[optind],"-")==0){ fout = stdout; }else{ fout = fopen(argv[optind],"w"); } /* p is not actually used for the modulator, but we need to set it for fsk_create() to be happy */ if (!user_p) p = Fs/Rs; /* set up FSK */ fsk = fsk_create_hbr(Fs,Rs,M,p,FSK_DEFAULT_NSYM,f1,fs); if(fin==NULL || fout==NULL || fsk==NULL){ fprintf(stderr,"Couldn't open files\n"); exit(1); } /* Mote we use the same buffer sizes as demod (fsk->Nbits, fsk->N) for convenience, but other sizes are possible for the FSK modulator. */ uint8_t bitbuf[fsk->Nbits]; while( fread(bitbuf,sizeof(uint8_t),fsk->Nbits,fin) == fsk->Nbits ){ if (test_mode) memset(bitbuf,0,fsk->Nbits); if (complex == 0) { float modbuf[fsk->N]; int16_t rawbuf[fsk->N]; /* 16 bit signed short real output */ fsk_mod(fsk,modbuf,bitbuf,fsk->Nbits); for(i=0; iN; i++) rawbuf[i] = (int16_t)(modbuf[i]*amp); fwrite(rawbuf,bytes_per_sample,fsk->N,fout); } else { /* 16 bit signed char complex output */ COMP modbuf[fsk->N]; int16_t rawbuf[2*fsk->N]; fsk_mod_c(fsk,(COMP*)modbuf,bitbuf,fsk->Nbits); for(i=0; iN; i++) { rawbuf[2*i] = (int16_t)(modbuf[i].real*amp); rawbuf[2*i+1] = (int16_t)(modbuf[i].imag*amp); } fwrite(rawbuf,bytes_per_sample,fsk->N,fout); } if(fout == stdin){ fflush(fout); } } fsk_destroy(fsk); } codec2-1.0.1/src/fsk_mod_ext_vco.c000066400000000000000000000101501412132000500167350ustar00rootroot00000000000000/*---------------------------------------------------------------------------*\ FILE........: fsk_mod_ext_vco.c AUTHOR......: David Rowe DATE CREATED: Feb 2018 Converts a stream of bits to mFSK raw file of "levels" suitable for driving an external VCO, e.g. legacy FM transmitter in data mode. \*---------------------------------------------------------------------------*/ /* Copyright (C) 2018 David Rowe All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 2.1, as published by the Free Software Foundation. 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 Lesser General Public License along with this program; if not, see . */ #include #include #include #include #include #include #define OVERSAMPLE 100 int main(int argc,char *argv[]){ int os, m, log2m, i, bit_i, sym, legacy_mode, rpitx_mode; float d; double shiftHz, symbolRateHz; uint32_t time_sample; FILE *fin,*fout; if(argc<5){ fprintf(stderr, "usage: %s InputOneBitPerCharFile OutputVcoRawFile MbitsPerFSKsymbol\n",argv[0]); fprintf(stderr, "[--legacy OutputSamplesPerSymbol deviationPerlevel]\n"); fprintf(stderr, "[--rpitx ShiftHz SymbolRateHz\n]"); exit(1); } /* Extract parameters */ if (strcmp(argv[1],"-")==0){ fin = stdin; } else { fin = fopen(argv[1],"r"); } if (strcmp(argv[2],"-")==0){ fout = stdout; } else { fout = fopen(argv[2],"w"); } m = atoi(argv[3]); log2m = log2(m); printf("log2m: %d\n", log2m); legacy_mode = rpitx_mode = os = 0; if (!strcmp(argv[4],"--legacy")) { os = atoi(argv[5]); d = atof(argv[6]); legacy_mode = 1; } if (!strcmp(argv[4],"--rpitx")) { shiftHz = atof(argv[5]); symbolRateHz = atof(argv[6]); rpitx_mode = 1; time_sample = 1E9/symbolRateHz; fprintf(stderr, "time_sample: %d\n", time_sample); } assert(legacy_mode || rpitx_mode); fprintf(stderr, "legacy_mode: %d rpitx_mode: %d\n", legacy_mode, rpitx_mode); uint8_t tx_bits[log2m]; int16_t rawbuf[os]; /* Modulate m bits to levels to drive external VCO */ while( fread(tx_bits, sizeof(uint8_t), log2m, fin) == log2m ){ /* generate the symbol number from the bit stream, e.g. 0,1 for 2FSK, 0,1,2,3 for 4FSK */ sym = bit_i = 0; for( i=m; i>>=1; ){ //fprintf(stderr, "tx_bits[%d] = %d\n", i, tx_bits[bit_i]); uint8_t bit = tx_bits[bit_i]; bit = (bit==1)?1:0; sym = (sym<<1)|bit; bit_i++; } //fprintf(stderr, "sym = %d\n", sym); if (legacy_mode) { /* map 'sym' to VCO drive signal symmetrically about 0, separate tones by constant "d" */ /* 2 FSK -d/2, +d/2 */ /* 4 FSK -3*d/2, -d/2, +d/2, 3*d/2 */ /* note: drive is inverted, a higher tone drives VCO voltage lower */ float symf = sym; float level = d*(((float)m-1)*0.5 - symf); assert(level <= 32767.0); assert(level >= -32768.0); short level_short = (short)level; //fprintf(stderr, "level = %f level_short = %d\n\n", level, level_short); for(i=0; i. */ #include #include #include #include "fsk.h" #define TEST_FRAME_SIZE 100 /* must match fsk_get_test_bits.c */ #define VALID_PACKET_BER_THRESH 0.1 int main(int argc,char *argv[]){ int bitcnt,biterr,i,errs,packetcnt; int framesize = TEST_FRAME_SIZE; float valid_packet_ber_thresh = VALID_PACKET_BER_THRESH; int packet_pass_thresh = 0; float ber_pass_thresh = 0; FILE *fin; uint8_t *bitbuf_tx, *bitbuf_rx, abyte, abit; int verbose = 1; int packed_in = 0; char usage[] = "usage: %s [-f frameSizeBits] [-t VaildFrameBERThreshold] [-b BERPass] [-p numPacketsPass] [-k] InputOneBitPerByte\n" " [-k] packet byte input\n"; int opt; while ((opt = getopt(argc, argv, "f:b:p:hqt:k")) != -1) { switch (opt) { case 't': valid_packet_ber_thresh = atof(optarg); break; case 'b': ber_pass_thresh = atof(optarg); break; case 'p': packet_pass_thresh = atoi(optarg); break; case 'f': framesize = atoi(optarg); break; case 'q': verbose = 0; break; case 'k': packed_in = 1; break; case 'h': default: fprintf(stderr, usage, argv[0]); exit(1); } } if (argc == 1) { fprintf(stderr, usage, argv[0]); exit(1); } int bits_per_byte = 1; if (packed_in) { if (framesize % 8) { fprintf(stderr, "framesize (-f) must be a multiple of 8 for packed byte input (-k)\n"); exit(1); } bits_per_byte = 8; } char *fname = argv[optind++]; if ((strcmp(fname,"-")==0) || (argc<2)){ fin = stdin; } else { fin = fopen(fname,"r"); } if(fin==NULL){ fprintf(stderr,"Couldn't open input file: %s\n", argv[1]); exit(1); } /* allocate buffers for processing */ bitbuf_tx = (uint8_t*)alloca(sizeof(uint8_t)*framesize); bitbuf_rx = (uint8_t*)alloca(sizeof(uint8_t)*framesize); /* Generate known tx frame from known seed */ srand(158324); for(i=0; i0){ for (int b=0; b> ((bits_per_byte-1)-b)) & 0x1; /* update sliding window of input bits */ for(i=0; i= packet_pass_thresh) && (ber <= ber_pass_thresh)) { fprintf(stderr,"PASS\n"); return 0; } else { fprintf(stderr,"FAIL\n"); return 1; } } codec2-1.0.1/src/generate_codebook.c000066400000000000000000000106421412132000500172310ustar00rootroot00000000000000/*---------------------------------------------------------------------------*\ FILE........: generate_codebook.c AUTHOR......: Bruce Perens DATE CREATED: 29 Sep 2010 Generate header files containing LSP quantisers, runs at compile time. \*---------------------------------------------------------------------------*/ /* All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 2.1, as published by the Free Software Foundation. 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 Lesser General Public License along with this program; if not, see . */ #include #include #include #include static const char usage[] = "Usage: %s filename array_name [filename ...]\n" "\tCreate C code for codebook tables.\n"; static const char format[] = "The table format must be:\n" "\tTwo integers describing the dimensions of the codebook.\n" "\tThen, enough numbers to fill the specified dimensions.\n"; static const char header[] = "/* THIS IS A GENERATED FILE. Edit generate_codebook.c and its input */\n\n" "/*\n" " * This intermediary file and the files that used to create it are under \n" " * The LGPL. See the file COPYING.\n" " */\n\n" "#include \"defines.h\"\n\n"; struct codebook { unsigned int k; unsigned int log2m; unsigned int m; float * cb; }; static void dump_array(const struct codebook * b, int index) { int limit = b->k * b->m; int i; printf("#ifdef __EMBEDDED__\n"); printf("static const float codes%d[] = {\n", index); printf("#else\n"); printf("static float codes%d[] = {\n", index); printf("#endif\n"); for ( i = 0; i < limit; i++ ) { printf(" %g", b->cb[i]); if ( i < limit - 1 ) printf(","); /* organise VQs by rows, looks prettier */ if ( ((i+1) % b->k) == 0 ) printf("\n"); } printf("};\n"); } static void dump_structure(const struct codebook * b, int index) { printf(" {\n"); printf(" %d,\n", b->k); printf(" %d,\n", (int)roundf(log(b->m) / log(2))); printf(" %d,\n", b->m); printf(" codes%d\n", index); printf(" }"); } float get_float(FILE * in, const char * name, char * * cursor, char * buffer, int size) { for ( ; ; ) { char * s = *cursor; char c; while ( (c = *s) != '\0' && !isdigit(c) && c != '-' && c != '.' ) s++; /* Comments start with "#" and continue to the end of the line. */ if ( c != '\0' && c != '#' ) { char * end = 0; float f = 0; f = strtod(s, &end); if ( end != s ) *cursor = end; return f; } if ( fgets(buffer, size, in) == NULL ) { fprintf(stderr, "%s: Format error. %s\n", name, format); exit(1); } *cursor = buffer; } } static struct codebook * load(FILE * file, const char * name) { char line[1024]; char * cursor = line; struct codebook * b = malloc(sizeof(struct codebook)); int i; int size; *cursor = '\0'; b->k = (int)get_float(file, name, &cursor, line, sizeof(line)); b->m = (int)get_float(file, name ,&cursor, line, sizeof(line)); size = b->k * b->m; b->cb = (float *)malloc(size * sizeof(float)); for ( i = 0; i < size; i++ ) b->cb[i] = get_float(file, name, &cursor, line, sizeof(line)); return b; } int main(int argc, char * * argv) { struct codebook * * cb = malloc(argc * sizeof(struct codebook *)); int i; if ( argc < 2 ) { fprintf(stderr, usage, argv[0]); fprintf(stderr, format); exit(1); } for ( i = 0; i < argc - 2; i++ ) { FILE * in = fopen(argv[i + 2], "r"); if ( in == NULL ) { perror(argv[i + 2]); exit(1); } cb[i] = load(in, argv[i + 2]); fclose(in); } printf(header); for ( i = 0; i < argc - 2; i++ ) { printf(" /* %s */\n", argv[i + 2]); dump_array(cb[i], i); } printf("\nconst struct lsp_codebook %s[] = {\n", argv[1]); for ( i = 0; i < argc - 2; i++ ) { printf(" /* %s */\n", argv[i + 2]); dump_structure(cb[i], i); printf(",\n"); } printf(" { 0, 0, 0, 0 }\n"); printf("};\n"); for( i = 0; i < argc - 2; i++ ){ free(cb[i]->cb); free(cb[i]); } free(cb); return 0; } codec2-1.0.1/src/golay23.c000066400000000000000000000171611412132000500150550ustar00rootroot00000000000000/*---------------------------------------------------------------------------*\ FILE........: golay23.c AUTHOR......: Tomas Härdin & David Rowe DATE CREATED: 3 March 2013 To test: src$ gcc golay23.c -o golay23 -Wall -O3 -DGOLAY23_UNITTEST && ./golay23 src$ gcc golay23.c -o golay23 -Wall -O3 -DGOLAY23_UNITTEST -DRUN_TIME_TABLES && ./golay23 src$ gcc golay23.c -o golay23 -Wall -O3 -DGOLAY23_UNITTEST -DNO_TABLES && ./golay23 To generate tables: src$ gcc golay23.c -o golay23 -Wall -O3 -DGOLAY23_MAKETABLES && ./golay23 \*---------------------------------------------------------------------------*/ /* Copyright (C) 2016 Tomas Härdin & David Rowe All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 2.1, as published by the Free Software Foundation. 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 Lesser General Public License along with this program; if not,see . */ #include #ifdef GOLAY23_MAKETABLES #define RUN_TIME_TABLES #endif #ifndef NO_TABLES #ifdef RUN_TIME_TABLES int static encoding_table[4096]; int static decoding_table[2048]; static int inited = 0; #else //default is to use precomputed tables #include "golayenctable.h" #include "golaydectable.h" #endif #endif //since we want to avoid bit-reversing inside syndrome() we bit-reverse the polynomial instead #define GOLAY_POLYNOMIAL 0xC75 //AE3 reversed int golay23_syndrome(int c) { //could probably be done slightly smarter, but works int x; for (x = 11; x >= 0; x--) { if (c & ((1<<11) << x)) { c ^= GOLAY_POLYNOMIAL << x; } } return c; } #ifdef __GNUC__ #define popcount __builtin_popcount #elif defined(__MSC_VER) #include #define popcount __popcnt #else static int popcount(unsigned int c) { int ret = 0; while (c) { if (c & 1) { ret++; } c >>= 1; } return ret; } #endif #if defined(NO_TABLES) || defined(RUN_TIME_TABLES) static int golay23_encode_no_tables(int c) { c <<= 11; return golay23_syndrome(c) | c; } #endif #ifdef NO_TABLES static int unrotate(unsigned int c, int x) { return ((c << x) & 0x7FFFFF) | (c >> (23 - x)); } static int golay23_decode_no_tables(int c) { //TODO: optimize? int x; c = unrotate(c, 12); for (x = 0; x < 23; x++) { int t; int s = golay23_syndrome(c); if (popcount(s) <= 3) { return unrotate(c ^ s, x) & 0xFFF; } for (t = 0; t < 23; t++) { int c2 = c ^ (1 << t); int s = golay23_syndrome(c2); if (popcount(s) <= 2) { return unrotate(c2 ^ s, x) & 0xFFF; } } //rotate c = (c >> 1) | ((c & 1) << 22); } //shouldn't reach here.. assert("Something is wrong with golay23_decode_no_tables().."); return c & 0xFFF; } #endif void golay23_init(void) { #ifdef RUN_TIME_TABLES int x, y, z; inited = 1; for (x = 0; x < 4096; x++) { encoding_table[x] = golay23_encode_no_tables(x); } decoding_table[0] = 0; //1-bit errors for (x = 0; x < 23; x++) { int d = 1<= 0 && c <= 0xFFF); #ifdef RUN_TIME_TABLES assert(inited); #endif #ifdef NO_TABLES return golay23_encode_no_tables(c); #else return encoding_table[c]; #endif } int golay23_decode(int c) { assert(c >= 0 && c <= 0x7FFFFF); #ifdef RUN_TIME_TABLES assert(inited); #endif #ifdef NO_TABLES //duplicate old golay23_decode()'s shift return unrotate(golay23_decode_no_tables(c), 11); #else //message is shifted 11 places left in the return value return c ^ decoding_table[golay23_syndrome(c)]; #endif } int golay23_count_errors(int recd_codeword, int corrected_codeword) { return popcount(recd_codeword ^ corrected_codeword); } /** * Table generation and testing code below */ #ifdef GOLAY23_MAKETABLES #include int main() { int x; //generate and dump golay23_init(); FILE *enc = fopen("golayenctable.h", "w"); FILE *dec = fopen("golaydectable.h", "w"); fprintf(enc, "/* Generated by golay23.c -DGOLAY23_MAKETABLE */\n\ \n\ const int static encoding_table[]={\n"); for (x = 0; x < 4096; x++) { fprintf(enc, x < 4095 ? " 0x%x,\n" : " 0x%x\n", encoding_table[x]); } fprintf(enc, "};\n"); fprintf(dec, "/* Generated by golay23.c -DGOLAY23_MAKETABLE */\n\ \n\ const int static decoding_table[]={\n"); for (x = 0; x < 2048; x++) { fprintf(dec, x < 2047 ? " 0x%x,\n" : " 0x%x\n", decoding_table[x]); } fprintf(dec, "};\n"); fclose(enc); fclose(dec); return 0; } #elif defined(GOLAY23_UNITTEST) #include #include #include int main() { int c; golay23_init(); //keep track of whether every single codeword has been checked char *checkmask = malloc(1<<23); memset(checkmask, 0, 1<<23); //step through all possible messages for (c = 0; c < (1<<12); c++) { int g23 = golay23_encode(c); int x,y,z; checkmask[g23] = 1; int c2 = golay23_decode(g23) >> 11; printf("%03x -> %06x %03x\n", c, g23, c2); if (c != c2) { printf("Bad!\n"); exit(1); } //test the code by flipping every combination of one, two and three bits for (x = 0; x < 23; x++) { int flipped = g23 ^ (1<> 11; if (c != c2) { printf("Bad!\n"); exit(1); } } for (x = 0; x < 22; x++) { for (y = x+1; y < 23; y++) { int flipped = g23 ^ (1<> 11; if (c != c2) { printf("Bad!\n"); exit(1); } } } for (x = 0; x < 21; x++) { for (y = x+1; y < 22; y++) { for (z = y+1; z < 23; z++) { int flipped = g23 ^ (1<> 11; if (c != c2) { printf("Bad!\n"); exit(1); } } } } } //did we check every codeword? for (c = 0; c < (1<<23); c++) { if (checkmask[c] != 1) { printf("%06x unchecked!\n", c); exit(1); } } printf("Everything checks out\n"); free(checkmask); return 0; } #endif codec2-1.0.1/src/golay23.h000066400000000000000000000023311412132000500150530ustar00rootroot00000000000000/*---------------------------------------------------------------------------*\ FILE........: golay23.h AUTHOR......: David Rowe DATE CREATED: 3 March 2013 Header file for Golay FEC. \*---------------------------------------------------------------------------*/ /* Copyright (C) 2013 David Rowe All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 2.1, as published by the Free Software Foundation. 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 Lesser General Public License along with this program; if not, see . */ #ifndef __GOLAY23__ #define __GOLAY23__ #ifdef __cplusplus extern "C" { #endif void golay23_init(void); int golay23_encode(int data); int golay23_decode(int received_codeword); int golay23_count_errors(int recd_codeword, int corrected_codeword); int golay23_syndrome(int c); #ifdef __cplusplus } #endif #endif codec2-1.0.1/src/golaydectable.h000066400000000000000000000533011412132000500163750ustar00rootroot00000000000000/* Generated by golay23.c -DGOLAY23_MAKETABLE */ static const int decoding_table[]={ 0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0xa, 0xb, 0xc, 0xd, 0xe, 0x24020, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x412000, 0x18, 0x19, 0x1a, 0x180800, 0x1c, 0x200300, 0x48040, 0x1480, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x24008, 0x28, 0x29, 0x2a, 0x24004, 0x2c, 0x24002, 0x24001, 0x24000, 0x30, 0x31, 0x32, 0x8180, 0x34, 0xc40, 0x301000, 0xc0200, 0x38, 0x43000, 0x400600, 0x210040, 0x90080, 0x508000, 0x2900, 0x24010, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x280080, 0x48, 0x49, 0x4a, 0x2500, 0x4c, 0x111000, 0x48010, 0x400a00, 0x50, 0x51, 0x52, 0x21200, 0x54, 0xc20, 0x48008, 0x104100, 0x58, 0x404080, 0x48004, 0x210020, 0x48002, 0xa2000, 0x48000, 0x48001, 0x60, 0x61, 0x62, 0x540000, 0x64, 0xc10, 0x10300, 0xb000, 0x68, 0x88200, 0x1880, 0x210010, 0x602000, 0x40180, 0x180400, 0x24040, 0x70, 0xc04, 0x86000, 0x210008, 0xc01, 0xc00, 0x420080, 0xc02, 0x120100, 0x210002, 0x210001, 0x210000, 0x5200, 0xc08, 0x48020, 0x210004, 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x280040, 0x88, 0x89, 0x8a, 0x50200, 0x8c, 0xa800, 0x500100, 0x1410, 0x90, 0x91, 0x92, 0x8120, 0x94, 0x160000, 0x4a00, 0x1408, 0x98, 0x404040, 0x222000, 0x1404, 0x90020, 0x1402, 0x1401, 0x1400, 0xa0, 0xa1, 0xa2, 0x8110, 0xa4, 0x401200, 0x42400, 0x110800, 0xa8, 0x300400, 0x1840, 0x482000, 0x90010, 0x40140, 0x208200, 0x24080, 0xb0, 0x8102, 0x8101, 0x8100, 0x90008, 0x206000, 0x420040, 0x8104, 0x90004, 0x20a00, 0x144000, 0x8108, 0x90000, 0x90001, 0x90002, 0x1420, 0xc0, 0xc1, 0xc2, 0x280004, 0xc4, 0x280002, 0x280001, 0x280000, 0xc8, 0x404010, 0x1820, 0x128000, 0x20600, 0x40120, 0x16000, 0x280008, 0xd0, 0x404008, 0x110400, 0x42800, 0x3100, 0x18200, 0x420020, 0x280010, 0x404001, 0x404000, 0x80300, 0x404002, 0x300800, 0x404004, 0x48080, 0x1440, 0xe0, 0x32000, 0x1808, 0x4600, 0x10c000, 0x40108, 0x420010, 0x280020, 0x1802, 0x40104, 0x1800, 0x1801, 0x40101, 0x40100, 0x1804, 0x40102, 0x240200, 0x181000, 0x420004, 0x8140, 0x420002, 0xc80, 0x420000, 0x420001, 0xa400, 0x404020, 0x1810, 0x210080, 0x90040, 0x40110, 0x420008, 0x102200, 0x100, 0x101, 0x102, 0x103, 0x104, 0x105, 0x106, 0x41800, 0x108, 0x109, 0x10a, 0x2440, 0x10c, 0x200210, 0x500080, 0x98000, 0x110, 0x111, 0x112, 0x80a0, 0x114, 0x200208, 0xa0400, 0x104040, 0x118, 0x200204, 0x15000, 0x460000, 0x200201, 0x200200, 0x2820, 0x200202, 0x120, 0x121, 0x122, 0x8090, 0x124, 0x182000, 0x10240, 0x600400, 0x128, 0x410800, 0x2c0000, 0x101200, 0x9400, 0x400c0, 0x2810, 0x24100, 0x130, 0x8082, 0x8081, 0x8080, 0x444000, 0x31000, 0x2808, 0x8084, 0x120040, 0x84400, 0x2804, 0x8088, 0x2802, 0x200220, 0x2800, 0x2801, 0x140, 0x141, 0x142, 0x2408, 0x144, 0x428000, 0x10220, 0x104010, 0x148, 0x2402, 0x2401, 0x2400, 0x84800, 0x400a0, 0x221000, 0x2404, 0x150, 0xd0000, 0x600800, 0x104004, 0x3080, 0x104002, 0x104001, 0x104000, 0x120020, 0x9800, 0x80280, 0x2410, 0x410400, 0x200240, 0x48100, 0x104008, 0x160, 0x205000, 0x10204, 0xa0800, 0x10202, 0x40088, 0x10200, 0x10201, 0x120010, 0x40084, 0x40c000, 0x2420, 0x40081, 0x40080, 0x10208, 0x40082, 0x120008, 0x402200, 0x41400, 0x80c0, 0x288000, 0xd00, 0x10210, 0x104020, 0x120000, 0x120001, 0x120002, 0x210100, 0x120004, 0x40090, 0x2840, 0x481000, 0x180, 0x181, 0x182, 0x8030, 0x184, 0x14400, 0x500008, 0x22200, 0x188, 0xa1000, 0x500004, 0x204800, 0x500002, 0x40060, 0x500000, 0x500001, 0x190, 0x8022, 0x8021, 0x8020, 0x3040, 0x480800, 0x250000, 0x8024, 0x40c00, 0x112000, 0x80240, 0x8028, 0x2c000, 0x200280, 0x500010, 0x1500, 0x1a0, 0x8012, 0x8011, 0x8010, 0x220800, 0x40048, 0x85000, 0x8014, 0x6200, 0x40044, 0x30400, 0x8018, 0x40041, 0x40040, 0x500020, 0x40042, 0x8003, 0x8002, 0x8001, 0x8000, 0x100600, 0x8006, 0x8005, 0x8004, 0x601000, 0x800a, 0x8009, 0x8008, 0x90100, 0x40050, 0x2880, 0x800c, 0x1c0, 0x100a00, 0x64000, 0x411000, 0x3010, 0x40028, 0x8c00, 0x280100, 0x218000, 0x40024, 0x80210, 0x2480, 0x40021, 0x40020, 0x500040, 0x40022, 0x3004, 0x220400, 0x80208, 0x8060, 0x3000, 0x3001, 0x3002, 0x104080, 0x80202, 0x404100, 0x80200, 0x80201, 0x3008, 0x40030, 0x80204, 0x30800, 0x480400, 0x4000c, 0x302000, 0x8050, 0x40009, 0x40008, 0x10280, 0x4000a, 0x40005, 0x40004, 0x1900, 0x40006, 0x40001, 0x40000, 0x40003, 0x40002, 0x14800, 0x8042, 0x8041, 0x8040, 0x3020, 0x40018, 0x420100, 0x8044, 0x120080, 0x40014, 0x80220, 0x8048, 0x40011, 0x40010, 0x204400, 0x40012, 0x200, 0x201, 0x202, 0x203, 0x204, 0x205, 0x206, 0x108400, 0x208, 0x209, 0x20a, 0x50080, 0x20c, 0x200110, 0x83000, 0x400840, 0x210, 0x211, 0x212, 0x21040, 0x214, 0x200108, 0x4880, 0xc0020, 0x218, 0x200104, 0x400420, 0xe000, 0x200101, 0x200100, 0x130000, 0x200102, 0x220, 0x221, 0x222, 0x202800, 0x224, 0x401080, 0x10140, 0xc0010, 0x228, 0x88040, 0x400410, 0x101100, 0x140800, 0x12400, 0x208080, 0x24200, 0x230, 0x114000, 0x400408, 0xc0004, 0x2a000, 0xc0002, 0xc0001, 0xc0000, 0x400402, 0x20880, 0x400400, 0x400401, 0x5040, 0x200120, 0x400404, 0xc0008, 0x240, 0x241, 0x242, 0x21010, 0x244, 0x46000, 0x10120, 0x400808, 0x248, 0x88020, 0x304000, 0x400804, 0x20480, 0x400802, 0x400801, 0x400800, 0x250, 0x21002, 0x21001, 0x21000, 0x580000, 0x18080, 0x202400, 0x21004, 0x12800, 0x140400, 0x80180, 0x21008, 0x5020, 0x200140, 0x48200, 0x400810, 0x260, 0x88008, 0x10104, 0x4480, 0x10102, 0x320000, 0x10100, 0x10101, 0x88001, 0x88000, 0x62000, 0x88002, 0x5010, 0x88004, 0x10108, 0x400820, 0x240080, 0x402100, 0x108800, 0x21020, 0x5008, 0xe00, 0x10110, 0xc0040, 0x5004, 0x88010, 0x400440, 0x210200, 0x5000, 0x5001, 0x5002, 0x102080, 0x280, 0x281, 0x282, 0x50008, 0x284, 0x401020, 0x4810, 0x22100, 0x288, 0x50002, 0x50001, 0x50000, 0x20440, 0x184000, 0x208020, 0x50004, 0x290, 0x82400, 0x4804, 0x700000, 0x4802, 0x18040, 0x4800, 0x4801, 0x109000, 0x20820, 0x80140, 0x50010, 0x442000, 0x200180, 0x4808, 0x1600, 0x2a0, 0x401004, 0x1a0000, 0x4440, 0x401001, 0x401000, 0x208008, 0x401002, 0x6100, 0x20810, 0x208004, 0x50020, 0x208002, 0x401008, 0x208000, 0x208001, 0x240040, 0x20808, 0x13000, 0x8300, 0x100500, 0x401010, 0x4820, 0xc0080, 0x20801, 0x20800, 0x400480, 0x20802, 0x90200, 0x20804, 0x208010, 0x102040, 0x2c0, 0x100900, 0x40a000, 0x4420, 0x20408, 0x18010, 0x141000, 0x280200, 0x20404, 0x203000, 0x80110, 0x50040, 0x20400, 0x20401, 0x20402, 0x400880, 0x240020, 0x18004, 0x80108, 0x21080, 0x18001, 0x18000, 0x4840, 0x18002, 0x80102, 0x404200, 0x80100, 0x80101, 0x20410, 0x18008, 0x80104, 0x102020, 0x240010, 0x4402, 0x4401, 0x4400, 0x82800, 0x401040, 0x10180, 0x4404, 0x510000, 0x88080, 0x1a00, 0x4408, 0x20420, 0x40300, 0x208040, 0x102010, 0x240000, 0x240001, 0x240002, 0x4410, 0x240004, 0x18020, 0x420200, 0x102008, 0x240008, 0x20840, 0x80120, 0x102004, 0x5080, 0x102002, 0x102001, 0x102000, 0x300, 0x301, 0x302, 0x484000, 0x304, 0x200018, 0x10060, 0x22080, 0x308, 0x200014, 0x28800, 0x101020, 0x200011, 0x200010, 0x44400, 0x200012, 0x310, 0x20000c, 0x142000, 0x10c00, 0x200009, 0x200008, 0x409000, 0x20000a, 0x200005, 0x200004, 0x800c0, 0x200006, 0x200001, 0x200000, 0x200003, 0x200002, 0x320, 0x60400, 0x10044, 0x101008, 0x10042, 0xc800, 0x10040, 0x10041, 0x6080, 0x101002, 0x101001, 0x101000, 0x4a0000, 0x200030, 0x10048, 0x101004, 0x81800, 0x402040, 0x224000, 0x8280, 0x100480, 0x200028, 0x10050, 0xc0100, 0x58000, 0x200024, 0x400500, 0x101010, 0x200021, 0x200020, 0x2a00, 0x200022, 0x340, 0x100880, 0x10024, 0x248000, 0x10022, 0x81400, 0x10020, 0x10021, 0x441000, 0x34000, 0x80090, 0x2600, 0x10a000, 0x200050, 0x10028, 0x400900, 0xc400, 0x402020, 0x80088, 0x21100, 0x60800, 0x200048, 0x10030, 0x104200, 0x80082, 0x200044, 0x80080, 0x80081, 0x200041, 0x200040, 0x80084, 0x200042, 0x10006, 0x402010, 0x10004, 0x10005, 0x10002, 0x10003, 0x10000, 0x10001, 0x200c00, 0x88100, 0x1000c, 0x101040, 0x1000a, 0x40280, 0x10008, 0x10009, 0x402001, 0x402000, 0x10014, 0x402002, 0x10012, 0x402004, 0x10010, 0x10011, 0x120200, 0x402008, 0x800a0, 0x44800, 0x5100, 0x200060, 0x10018, 0x28400, 0x380, 0x100840, 0x201400, 0x22004, 0xc8000, 0x22002, 0x22001, 0x22000, 0x6020, 0x408400, 0x80050, 0x50100, 0x11800, 0x200090, 0x500200, 0x22008, 0x430000, 0x45000, 0x80048, 0x8220, 0x100420, 0x200088, 0x4900, 0x22010, 0x80042, 0x200084, 0x80040, 0x80041, 0x200081, 0x200080, 0x80044, 0x200082, 0x6008, 0x290000, 0x440800, 0x8210, 0x100410, 0x401100, 0x100c0, 0x22020, 0x6000, 0x6001, 0x6002, 0x101080, 0x6004, 0x40240, 0x208100, 0x80c00, 0x100404, 0x8202, 0x8201, 0x8200, 0x100400, 0x100401, 0x100402, 0x8204, 0x6010, 0x20900, 0x80060, 0x8208, 0x100408, 0x2000a0, 0x61000, 0x414000, 0x100801, 0x100800, 0x80018, 0x100802, 0x604000, 0x100804, 0x100a0, 0x22040, 0x80012, 0x100808, 0x80010, 0x80011, 0x20500, 0x40220, 0x80014, 0xd000, 0x8000a, 0x100810, 0x80008, 0x80009, 0x3200, 0x18100, 0x8000c, 0x440400, 0x80002, 0x80003, 0x80000, 0x80001, 0x80006, 0x2000c0, 0x80004, 0x80005, 0x29000, 0x100820, 0x10084, 0x4500, 0x10082, 0x40208, 0x10080, 0x10081, 0x6040, 0x40204, 0x80030, 0x620000, 0x40201, 0x40200, 0x10088, 0x40202, 0x240100, 0x402080, 0x80028, 0x8240, 0x100440, 0xa4000, 0x10090, 0x201800, 0x80022, 0x11400, 0x80020, 0x80021, 0x408800, 0x40210, 0x80024, 0x102100, 0x400, 0x401, 0x402, 0x403, 0x404, 0x405, 0x406, 0x108200, 0x408, 0x409, 0x40a, 0x2140, 0x40c, 0x4c0000, 0x210800, 0x1090, 0x410, 0x411, 0x412, 0x244000, 0x414, 0x860, 0xa0100, 0x1088, 0x418, 0x38000, 0x400220, 0x1084, 0x106000, 0x1082, 0x1081, 0x1080, 0x420, 0x421, 0x422, 0x91000, 0x424, 0x850, 0x42080, 0x600100, 0x428, 0x300080, 0x400210, 0x48800, 0x9100, 0x12200, 0x180040, 0x24400, 0x430, 0x844, 0x400208, 0x122000, 0x841, 0x840, 0x1c000, 0x842, 0x400202, 0x84100, 0x400200, 0x400201, 0x260000, 0x848, 0x400204, 0x10a0, 0x440, 0x441, 0x442, 0x2108, 0x444, 0x830, 0x405000, 0x70000, 0x448, 0x2102, 0x2101, 0x2100, 0x20280, 0x20c000, 0x180020, 0x2104, 0x450, 0x824, 0x110080, 0x488000, 0x821, 0x820, 0x202200, 0x822, 0x281000, 0x140200, 0x24800, 0x2110, 0x410100, 0x828, 0x48400, 0x10c0, 0x460, 0x814, 0x228000, 0x4280, 0x811, 0x810, 0x180008, 0x812, 0x54000, 0x421000, 0x180004, 0x2120, 0x180002, 0x818, 0x180000, 0x180001, 0x805, 0x804, 0x41100, 0x806, 0x801, 0x800, 0x803, 0x802, 0xa080, 0x80c, 0x400240, 0x210400, 0x809, 0x808, 0x180010, 0x80a, 0x480, 0x481, 0x482, 0x420800, 0x484, 0x14100, 0x42020, 0x1018, 0x488, 0x300020, 0x8c000, 0x1014, 0x20240, 0x1012, 0x1011, 0x1010, 0x490, 0x82200, 0x110040, 0x100c, 0x608000, 0x100a, 0x1009, 0x1008, 0x40900, 0x1006, 0x1005, 0x1004, 0x1003, 0x1002, 0x1001, 0x1000, 0x4a0, 0x300008, 0x42004, 0x4240, 0x42002, 0xa8000, 0x42000, 0x42001, 0x300001, 0x300000, 0x30100, 0x300002, 0x404800, 0x300004, 0x42008, 0x1030, 0x25000, 0x450000, 0x280800, 0x8500, 0x100300, 0x8c0, 0x42010, 0x1028, 0xa040, 0x300010, 0x400280, 0x1024, 0x90400, 0x1022, 0x1021, 0x1020, 0x4c0, 0x49000, 0x110010, 0x4220, 0x20208, 0x502000, 0x8900, 0x280400, 0x20204, 0x90800, 0x640000, 0x2180, 0x20200, 0x20201, 0x20202, 0x1050, 0x110002, 0x220100, 0x110000, 0x110001, 0xc4000, 0x8a0, 0x110004, 0x1048, 0xa020, 0x404400, 0x110008, 0x1044, 0x20210, 0x1042, 0x1041, 0x1040, 0x480100, 0x4202, 0x4201, 0x4200, 0x211000, 0x890, 0x42040, 0x4204, 0xa010, 0x300040, 0x1c00, 0x4208, 0x20220, 0x40500, 0x180080, 0x418000, 0xa008, 0x884, 0x110020, 0x4210, 0x881, 0x880, 0x420400, 0x882, 0xa000, 0xa001, 0xa002, 0xe0000, 0xa004, 0x888, 0x204100, 0x1060, 0x500, 0x501, 0x502, 0x2048, 0x504, 0x14080, 0xa0010, 0x600020, 0x508, 0x2042, 0x2041, 0x2040, 0x9020, 0x120800, 0x44200, 0x2044, 0x510, 0x501000, 0xa0004, 0x10a00, 0xa0002, 0x4a000, 0xa0000, 0xa0001, 0x40880, 0x84020, 0x308000, 0x2050, 0x410040, 0x200600, 0xa0008, 0x1180, 0x520, 0x60200, 0x104800, 0x600004, 0x9008, 0x600002, 0x600001, 0x600000, 0x9004, 0x84010, 0x30080, 0x2060, 0x9000, 0x9001, 0x9002, 0x600008, 0x212000, 0x84008, 0x41040, 0x8480, 0x100280, 0x940, 0xa0020, 0x600010, 0x84001, 0x84000, 0x400300, 0x84002, 0x9010, 0x84004, 0x2c00, 0x150000, 0x540, 0x200a, 0x2009, 0x2008, 0x340000, 0x81200, 0x8880, 0x200c, 0x2003, 0x2002, 0x2001, 0x2000, 0x410010, 0x2006, 0x2005, 0x2004, 0xc200, 0x220080, 0x41020, 0x2018, 0x410008, 0x920, 0xa0040, 0x104400, 0x410004, 0x2012, 0x2011, 0x2010, 0x410000, 0x410001, 0x410002, 0x2014, 0x480080, 0x118000, 0x41010, 0x2028, 0x26000, 0x910, 0x10600, 0x600040, 0x200a00, 0x2022, 0x2021, 0x2020, 0x9040, 0x40480, 0x180100, 0x2024, 0x41002, 0x904, 0x41000, 0x41001, 0x901, 0x900, 0x41004, 0x902, 0x120400, 0x84040, 0x41008, 0x2030, 0x410020, 0x908, 0x204080, 0x28200, 0x580, 0x14004, 0x201200, 0x1c0000, 0x14001, 0x14000, 0x8840, 0x14002, 0x40810, 0x408200, 0x30020, 0x20c0, 0x282000, 0x14008, 0x500400, 0x1110, 0x40808, 0x220040, 0x406000, 0x8420, 0x100220, 0x14010, 0xa0080, 0x1108, 0x40800, 0x40801, 0x40802, 0x1104, 0x40804, 0x1102, 0x1101, 0x1100, 0x480040, 0x3800, 0x30008, 0x8410, 0x100210, 0x14020, 0x42100, 0x600080, 0x30002, 0x300100, 0x30000, 0x30001, 0x9080, 0x40440, 0x30004, 0x80a00, 0x100204, 0x8402, 0x8401, 0x8400, 0x100200, 0x100201, 0x100202, 0x8404, 0x40820, 0x84080, 0x30010, 0x8408, 0x100208, 0x422000, 0x204040, 0x1120, 0x480020, 0x220010, 0x8804, 0x2088, 0x8802, 0x14040, 0x8800, 0x8801, 0x105000, 0x2082, 0x2081, 0x2080, 0x20300, 0x40420, 0x8808, 0x2084, 0x220001, 0x220000, 0x110100, 0x220002, 0x3400, 0x220004, 0x8810, 0x440200, 0x40840, 0x220008, 0x80600, 0x2090, 0x410080, 0x188000, 0x204020, 0x1140, 0x480000, 0x480001, 0x480002, 0x4300, 0x480004, 0x40408, 0x8820, 0x121000, 0x480008, 0x40404, 0x30040, 0x20a0, 0x40401, 0x40400, 0x204010, 0x40402, 0x480010, 0x220020, 0x41080, 0x8440, 0x100240, 0x980, 0x204008, 0x92000, 0xa100, 0x11200, 0x204004, 0x500800, 0x204002, 0x40410, 0x204000, 0x204001, 0x600, 0x601, 0x602, 0x108004, 0x604, 0x108002, 0x108001, 0x108000, 0x608, 0x5800, 0x400030, 0x2a0000, 0x200c0, 0x12020, 0x44100, 0x108008, 0x610, 0x82080, 0x400028, 0x10900, 0x51000, 0x424000, 0x202040, 0x108010, 0x400022, 0x140040, 0x400020, 0x400021, 0x88800, 0x200500, 0x400024, 0x1280, 0x620, 0x60100, 0x400018, 0x40c0, 0x284000, 0x12008, 0x21800, 0x108020, 0x400012, 0x12004, 0x400010, 0x400011, 0x12001, 0x12000, 0x400014, 0x12002, 0x40000a, 0x209000, 0x400008, 0x400009, 0x100180, 0xa40, 0x40000c, 0xc0400, 0x400002, 0x400003, 0x400000, 0x400001, 0x400006, 0x12010, 0x400004, 0x400005, 0x640, 0x610000, 0xc0800, 0x40a0, 0x20088, 0x81100, 0x202010, 0x108040, 0x20084, 0x140010, 0x19000, 0x2300, 0x20080, 0x20081, 0x20082, 0x400c00, 0xc100, 0x140008, 0x202004, 0x21400, 0x202002, 0xa20, 0x202000, 0x202001, 0x140001, 0x140000, 0x400060, 0x140002, 0x20090, 0x140004, 0x202008, 0x94000, 0x103000, 0x4082, 0x4081, 0x4080, 0x448000, 0xa10, 0x10500, 0x4084, 0x200900, 0x88400, 0x400050, 0x4088, 0x200a0, 0x12040, 0x180200, 0x241000, 0xb0000, 0xa04, 0x400048, 0x4090, 0xa01, 0xa00, 0x202020, 0xa02, 0x400042, 0x140020, 0x400040, 0x400041, 0x5400, 0xa08, 0x400044, 0x28100, 0x680, 0x82010, 0x201100, 0x4060, 0x20048, 0x240800, 0x490000, 0x108080, 0x20044, 0x408100, 0x102800, 0x50400, 0x20040, 0x20041, 0x20042, 0x1210, 0x82001, 0x82000, 0x68000, 0x82002, 0x100120, 0x82004, 0x4c00, 0x1208, 0x214000, 0x82008, 0x4000a0, 0x1204, 0x20050, 0x1202, 0x1201, 0x1200, 0x18800, 0x4042, 0x4041, 0x4040, 0x100110, 0x401400, 0x42200, 0x4044, 0xc1000, 0x300200, 0x400090, 0x4048, 0x20060, 0x12080, 0x208400, 0x80900, 0x100104, 0x82020, 0x400088, 0x4050, 0x100100, 0x100101, 0x100102, 0x230000, 0x400082, 0x20c00, 0x400080, 0x400081, 0x100108, 0x4c000, 0x400084, 0x1220, 0x2000c, 0x4022, 0x4021, 0x4020, 0x20008, 0x20009, 0x2000a, 0x4024, 0x20004, 0x20005, 0x20006, 0x4028, 0x20000, 0x20001, 0x20002, 0x20003, 0x401800, 0x82040, 0x110200, 0x4030, 0x20018, 0x18400, 0x202080, 0x440100, 0x20014, 0x140080, 0x80500, 0x208800, 0x20010, 0x20011, 0x20012, 0x1240, 0x4003, 0x4002, 0x4001, 0x4000, 0x20028, 0x4006, 0x4005, 0x4004, 0x20024, 0x400a, 0x4009, 0x4008, 0x20020, 0x20021, 0x20022, 0x400c, 0x240400, 0x4012, 0x4011, 0x4010, 0x100140, 0xa80, 0x89000, 0x4014, 0xa200, 0x11100, 0x4000c0, 0x4018, 0x20030, 0x680000, 0x50800, 0x102400, 0x700, 0x60020, 0x201080, 0x10810, 0x402800, 0x81040, 0x44008, 0x108100, 0x190000, 0x408080, 0x44004, 0x2240, 0x44002, 0x200410, 0x44000, 0x44001, 0xc040, 0x10802, 0x10801, 0x10800, 0x1000a0, 0x200408, 0xa0200, 0x10804, 0x23000, 0x200404, 0x400120, 0x10808, 0x200401, 0x200400, 0x44010, 0x200402, 0x60001, 0x60000, 0x8a000, 0x60002, 0x100090, 0x60004, 0x10440, 0x600200, 0x200840, 0x60008, 0x400110, 0x101400, 0x9200, 0x12100, 0x44020, 0x80880, 0x100084, 0x60010, 0x400108, 0x10820, 0x100080, 0x100081, 0x100082, 0x7000, 0x400102, 0x84200, 0x400100, 0x400101, 0x100088, 0x200420, 0x400104, 0x28040, 0xc010, 0x81004, 0x520000, 0x2208, 0x81001, 0x81000, 0x10420, 0x81002, 0x200820, 0x2202, 0x2201, 0x2200, 0x20180, 0x81008, 0x44040, 0x2204, 0xc000, 0xc001, 0xc002, 0x10840, 0xc004, 0x81010, 0x202100, 0x440080, 0xc008, 0x140100, 0x80480, 0x2210, 0x410200, 0x200440, 0x101800, 0x28020, 0x200808, 0x60040, 0x10404, 0x4180, 0x10402, 0x81020, 0x10400, 0x10401, 0x200800, 0x200801, 0x200802, 0x2220, 0x200804, 0x504000, 0x10408, 0x28010, 0xc020, 0x402400, 0x41200, 0x380000, 0x1000c0, 0xb00, 0x10410, 0x28008, 0x200810, 0x11080, 0x400140, 0x28004, 0xc2000, 0x28002, 0x28001, 0x28000, 0x201002, 0x408008, 0x201000, 0x201001, 0x100030, 0x14200, 0x201004, 0x22400, 0x408001, 0x408000, 0x201008, 0x408002, 0x20140, 0x408004, 0x44080, 0x80820, 0x100024, 0x82100, 0x201010, 0x10880, 0x100020, 0x100021, 0x100022, 0x440040, 0x40a00, 0x408010, 0x80440, 0x124000, 0x100028, 0x200480, 0x1a000, 0x1300, 0x100014, 0x60080, 0x201020, 0x4140, 0x100010, 0x100011, 0x100012, 0x80808, 0x6400, 0x408020, 0x30200, 0x80804, 0x100018, 0x80802, 0x80801, 0x80800, 0x100004, 0x100005, 0x100006, 0x8600, 0x100000, 0x100001, 0x100002, 0x100003, 0x10000c, 0x11040, 0x400180, 0x242000, 0x100008, 0x100009, 0x10000a, 0x80810, 0x52000, 0x100c00, 0x201040, 0x4120, 0x20108, 0x81080, 0x8a00, 0x440010, 0x20104, 0x408040, 0x80410, 0x2280, 0x20100, 0x20101, 0x20102, 0x310000, 0xc080, 0x220200, 0x80408, 0x440004, 0x100060, 0x440002, 0x440001, 0x440000, 0x80402, 0x11020, 0x80400, 0x80401, 0x20110, 0x6800, 0x80404, 0x440008, 0x480200, 0x4102, 0x4101, 0x4100, 0x100050, 0x20a000, 0x10480, 0x4104, 0x200880, 0x11010, 0x148000, 0x4108, 0x20120, 0x40600, 0x403000, 0x80840, 0x100044, 0x11008, 0x22800, 0x4110, 0x100040, 0x100041, 0x100042, 0x440020, 0x11001, 0x11000, 0x80420, 0x11002, 0x100048, 0x11004, 0x204200, 0x28080 }; codec2-1.0.1/src/golayenctable.h000066400000000000000000001370641412132000500164200ustar00rootroot00000000000000/* Generated by golay23.c -DGOLAY23_MAKETABLE */ static const int encoding_table[]={ 0x0, 0xc75, 0x149f, 0x18ea, 0x254b, 0x293e, 0x31d4, 0x3da1, 0x46e3, 0x4a96, 0x527c, 0x5e09, 0x63a8, 0x6fdd, 0x7737, 0x7b42, 0x81b3, 0x8dc6, 0x952c, 0x9959, 0xa4f8, 0xa88d, 0xb067, 0xbc12, 0xc750, 0xcb25, 0xd3cf, 0xdfba, 0xe21b, 0xee6e, 0xf684, 0xfaf1, 0x10366, 0x10f13, 0x117f9, 0x11b8c, 0x1262d, 0x12a58, 0x132b2, 0x13ec7, 0x14585, 0x149f0, 0x1511a, 0x15d6f, 0x160ce, 0x16cbb, 0x17451, 0x17824, 0x182d5, 0x18ea0, 0x1964a, 0x19a3f, 0x1a79e, 0x1abeb, 0x1b301, 0x1bf74, 0x1c436, 0x1c843, 0x1d0a9, 0x1dcdc, 0x1e17d, 0x1ed08, 0x1f5e2, 0x1f997, 0x206cc, 0x20ab9, 0x21253, 0x21e26, 0x22387, 0x22ff2, 0x23718, 0x23b6d, 0x2402f, 0x24c5a, 0x254b0, 0x258c5, 0x26564, 0x26911, 0x271fb, 0x27d8e, 0x2877f, 0x28b0a, 0x293e0, 0x29f95, 0x2a234, 0x2ae41, 0x2b6ab, 0x2bade, 0x2c19c, 0x2cde9, 0x2d503, 0x2d976, 0x2e4d7, 0x2e8a2, 0x2f048, 0x2fc3d, 0x305aa, 0x309df, 0x31135, 0x31d40, 0x320e1, 0x32c94, 0x3347e, 0x3380b, 0x34349, 0x34f3c, 0x357d6, 0x35ba3, 0x36602, 0x36a77, 0x3729d, 0x37ee8, 0x38419, 0x3886c, 0x39086, 0x39cf3, 0x3a152, 0x3ad27, 0x3b5cd, 0x3b9b8, 0x3c2fa, 0x3ce8f, 0x3d665, 0x3da10, 0x3e7b1, 0x3ebc4, 0x3f32e, 0x3ff5b, 0x401ed, 0x40d98, 0x41572, 0x41907, 0x424a6, 0x428d3, 0x43039, 0x43c4c, 0x4470e, 0x44b7b, 0x45391, 0x45fe4, 0x46245, 0x46e30, 0x476da, 0x47aaf, 0x4805e, 0x48c2b, 0x494c1, 0x498b4, 0x4a515, 0x4a960, 0x4b18a, 0x4bdff, 0x4c6bd, 0x4cac8, 0x4d222, 0x4de57, 0x4e3f6, 0x4ef83, 0x4f769, 0x4fb1c, 0x5028b, 0x50efe, 0x51614, 0x51a61, 0x527c0, 0x52bb5, 0x5335f, 0x53f2a, 0x54468, 0x5481d, 0x550f7, 0x55c82, 0x56123, 0x56d56, 0x575bc, 0x579c9, 0x58338, 0x58f4d, 0x597a7, 0x59bd2, 0x5a673, 0x5aa06, 0x5b2ec, 0x5be99, 0x5c5db, 0x5c9ae, 0x5d144, 0x5dd31, 0x5e090, 0x5ece5, 0x5f40f, 0x5f87a, 0x60721, 0x60b54, 0x613be, 0x61fcb, 0x6226a, 0x62e1f, 0x636f5, 0x63a80, 0x641c2, 0x64db7, 0x6555d, 0x65928, 0x66489, 0x668fc, 0x67016, 0x67c63, 0x68692, 0x68ae7, 0x6920d, 0x69e78, 0x6a3d9, 0x6afac, 0x6b746, 0x6bb33, 0x6c071, 0x6cc04, 0x6d4ee, 0x6d89b, 0x6e53a, 0x6e94f, 0x6f1a5, 0x6fdd0, 0x70447, 0x70832, 0x710d8, 0x71cad, 0x7210c, 0x72d79, 0x73593, 0x739e6, 0x742a4, 0x74ed1, 0x7563b, 0x75a4e, 0x767ef, 0x76b9a, 0x77370, 0x77f05, 0x785f4, 0x78981, 0x7916b, 0x79d1e, 0x7a0bf, 0x7acca, 0x7b420, 0x7b855, 0x7c317, 0x7cf62, 0x7d788, 0x7dbfd, 0x7e65c, 0x7ea29, 0x7f2c3, 0x7feb6, 0x803da, 0x80faf, 0x81745, 0x81b30, 0x82691, 0x82ae4, 0x8320e, 0x83e7b, 0x84539, 0x8494c, 0x851a6, 0x85dd3, 0x86072, 0x86c07, 0x874ed, 0x87898, 0x88269, 0x88e1c, 0x896f6, 0x89a83, 0x8a722, 0x8ab57, 0x8b3bd, 0x8bfc8, 0x8c48a, 0x8c8ff, 0x8d015, 0x8dc60, 0x8e1c1, 0x8edb4, 0x8f55e, 0x8f92b, 0x900bc, 0x90cc9, 0x91423, 0x91856, 0x925f7, 0x92982, 0x93168, 0x93d1d, 0x9465f, 0x94a2a, 0x952c0, 0x95eb5, 0x96314, 0x96f61, 0x9778b, 0x97bfe, 0x9810f, 0x98d7a, 0x99590, 0x999e5, 0x9a444, 0x9a831, 0x9b0db, 0x9bcae, 0x9c7ec, 0x9cb99, 0x9d373, 0x9df06, 0x9e2a7, 0x9eed2, 0x9f638, 0x9fa4d, 0xa0516, 0xa0963, 0xa1189, 0xa1dfc, 0xa205d, 0xa2c28, 0xa34c2, 0xa38b7, 0xa43f5, 0xa4f80, 0xa576a, 0xa5b1f, 0xa66be, 0xa6acb, 0xa7221, 0xa7e54, 0xa84a5, 0xa88d0, 0xa903a, 0xa9c4f, 0xaa1ee, 0xaad9b, 0xab571, 0xab904, 0xac246, 0xace33, 0xad6d9, 0xadaac, 0xae70d, 0xaeb78, 0xaf392, 0xaffe7, 0xb0670, 0xb0a05, 0xb12ef, 0xb1e9a, 0xb233b, 0xb2f4e, 0xb37a4, 0xb3bd1, 0xb4093, 0xb4ce6, 0xb540c, 0xb5879, 0xb65d8, 0xb69ad, 0xb7147, 0xb7d32, 0xb87c3, 0xb8bb6, 0xb935c, 0xb9f29, 0xba288, 0xbaefd, 0xbb617, 0xbba62, 0xbc120, 0xbcd55, 0xbd5bf, 0xbd9ca, 0xbe46b, 0xbe81e, 0xbf0f4, 0xbfc81, 0xc0237, 0xc0e42, 0xc16a8, 0xc1add, 0xc277c, 0xc2b09, 0xc33e3, 0xc3f96, 0xc44d4, 0xc48a1, 0xc504b, 0xc5c3e, 0xc619f, 0xc6dea, 0xc7500, 0xc7975, 0xc8384, 0xc8ff1, 0xc971b, 0xc9b6e, 0xca6cf, 0xcaaba, 0xcb250, 0xcbe25, 0xcc567, 0xcc912, 0xcd1f8, 0xcdd8d, 0xce02c, 0xcec59, 0xcf4b3, 0xcf8c6, 0xd0151, 0xd0d24, 0xd15ce, 0xd19bb, 0xd241a, 0xd286f, 0xd3085, 0xd3cf0, 0xd47b2, 0xd4bc7, 0xd532d, 0xd5f58, 0xd62f9, 0xd6e8c, 0xd7666, 0xd7a13, 0xd80e2, 0xd8c97, 0xd947d, 0xd9808, 0xda5a9, 0xda9dc, 0xdb136, 0xdbd43, 0xdc601, 0xdca74, 0xdd29e, 0xddeeb, 0xde34a, 0xdef3f, 0xdf7d5, 0xdfba0, 0xe04fb, 0xe088e, 0xe1064, 0xe1c11, 0xe21b0, 0xe2dc5, 0xe352f, 0xe395a, 0xe4218, 0xe4e6d, 0xe5687, 0xe5af2, 0xe6753, 0xe6b26, 0xe73cc, 0xe7fb9, 0xe8548, 0xe893d, 0xe91d7, 0xe9da2, 0xea003, 0xeac76, 0xeb49c, 0xeb8e9, 0xec3ab, 0xecfde, 0xed734, 0xedb41, 0xee6e0, 0xeea95, 0xef27f, 0xefe0a, 0xf079d, 0xf0be8, 0xf1302, 0xf1f77, 0xf22d6, 0xf2ea3, 0xf3649, 0xf3a3c, 0xf417e, 0xf4d0b, 0xf55e1, 0xf5994, 0xf6435, 0xf6840, 0xf70aa, 0xf7cdf, 0xf862e, 0xf8a5b, 0xf92b1, 0xf9ec4, 0xfa365, 0xfaf10, 0xfb7fa, 0xfbb8f, 0xfc0cd, 0xfccb8, 0xfd452, 0xfd827, 0xfe586, 0xfe9f3, 0xff119, 0xffd6c, 0x1007b4, 0x100bc1, 0x10132b, 0x101f5e, 0x1022ff, 0x102e8a, 0x103660, 0x103a15, 0x104157, 0x104d22, 0x1055c8, 0x1059bd, 0x10641c, 0x106869, 0x107083, 0x107cf6, 0x108607, 0x108a72, 0x109298, 0x109eed, 0x10a34c, 0x10af39, 0x10b7d3, 0x10bba6, 0x10c0e4, 0x10cc91, 0x10d47b, 0x10d80e, 0x10e5af, 0x10e9da, 0x10f130, 0x10fd45, 0x1104d2, 0x1108a7, 0x11104d, 0x111c38, 0x112199, 0x112dec, 0x113506, 0x113973, 0x114231, 0x114e44, 0x1156ae, 0x115adb, 0x11677a, 0x116b0f, 0x1173e5, 0x117f90, 0x118561, 0x118914, 0x1191fe, 0x119d8b, 0x11a02a, 0x11ac5f, 0x11b4b5, 0x11b8c0, 0x11c382, 0x11cff7, 0x11d71d, 0x11db68, 0x11e6c9, 0x11eabc, 0x11f256, 0x11fe23, 0x120178, 0x120d0d, 0x1215e7, 0x121992, 0x122433, 0x122846, 0x1230ac, 0x123cd9, 0x12479b, 0x124bee, 0x125304, 0x125f71, 0x1262d0, 0x126ea5, 0x12764f, 0x127a3a, 0x1280cb, 0x128cbe, 0x129454, 0x129821, 0x12a580, 0x12a9f5, 0x12b11f, 0x12bd6a, 0x12c628, 0x12ca5d, 0x12d2b7, 0x12dec2, 0x12e363, 0x12ef16, 0x12f7fc, 0x12fb89, 0x13021e, 0x130e6b, 0x131681, 0x131af4, 0x132755, 0x132b20, 0x1333ca, 0x133fbf, 0x1344fd, 0x134888, 0x135062, 0x135c17, 0x1361b6, 0x136dc3, 0x137529, 0x13795c, 0x1383ad, 0x138fd8, 0x139732, 0x139b47, 0x13a6e6, 0x13aa93, 0x13b279, 0x13be0c, 0x13c54e, 0x13c93b, 0x13d1d1, 0x13dda4, 0x13e005, 0x13ec70, 0x13f49a, 0x13f8ef, 0x140659, 0x140a2c, 0x1412c6, 0x141eb3, 0x142312, 0x142f67, 0x14378d, 0x143bf8, 0x1440ba, 0x144ccf, 0x145425, 0x145850, 0x1465f1, 0x146984, 0x14716e, 0x147d1b, 0x1487ea, 0x148b9f, 0x149375, 0x149f00, 0x14a2a1, 0x14aed4, 0x14b63e, 0x14ba4b, 0x14c109, 0x14cd7c, 0x14d596, 0x14d9e3, 0x14e442, 0x14e837, 0x14f0dd, 0x14fca8, 0x15053f, 0x15094a, 0x1511a0, 0x151dd5, 0x152074, 0x152c01, 0x1534eb, 0x15389e, 0x1543dc, 0x154fa9, 0x155743, 0x155b36, 0x156697, 0x156ae2, 0x157208, 0x157e7d, 0x15848c, 0x1588f9, 0x159013, 0x159c66, 0x15a1c7, 0x15adb2, 0x15b558, 0x15b92d, 0x15c26f, 0x15ce1a, 0x15d6f0, 0x15da85, 0x15e724, 0x15eb51, 0x15f3bb, 0x15ffce, 0x160095, 0x160ce0, 0x16140a, 0x16187f, 0x1625de, 0x1629ab, 0x163141, 0x163d34, 0x164676, 0x164a03, 0x1652e9, 0x165e9c, 0x16633d, 0x166f48, 0x1677a2, 0x167bd7, 0x168126, 0x168d53, 0x1695b9, 0x1699cc, 0x16a46d, 0x16a818, 0x16b0f2, 0x16bc87, 0x16c7c5, 0x16cbb0, 0x16d35a, 0x16df2f, 0x16e28e, 0x16eefb, 0x16f611, 0x16fa64, 0x1703f3, 0x170f86, 0x17176c, 0x171b19, 0x1726b8, 0x172acd, 0x173227, 0x173e52, 0x174510, 0x174965, 0x17518f, 0x175dfa, 0x17605b, 0x176c2e, 0x1774c4, 0x1778b1, 0x178240, 0x178e35, 0x1796df, 0x179aaa, 0x17a70b, 0x17ab7e, 0x17b394, 0x17bfe1, 0x17c4a3, 0x17c8d6, 0x17d03c, 0x17dc49, 0x17e1e8, 0x17ed9d, 0x17f577, 0x17f902, 0x18046e, 0x18081b, 0x1810f1, 0x181c84, 0x182125, 0x182d50, 0x1835ba, 0x1839cf, 0x18428d, 0x184ef8, 0x185612, 0x185a67, 0x1867c6, 0x186bb3, 0x187359, 0x187f2c, 0x1885dd, 0x1889a8, 0x189142, 0x189d37, 0x18a096, 0x18ace3, 0x18b409, 0x18b87c, 0x18c33e, 0x18cf4b, 0x18d7a1, 0x18dbd4, 0x18e675, 0x18ea00, 0x18f2ea, 0x18fe9f, 0x190708, 0x190b7d, 0x191397, 0x191fe2, 0x192243, 0x192e36, 0x1936dc, 0x193aa9, 0x1941eb, 0x194d9e, 0x195574, 0x195901, 0x1964a0, 0x1968d5, 0x19703f, 0x197c4a, 0x1986bb, 0x198ace, 0x199224, 0x199e51, 0x19a3f0, 0x19af85, 0x19b76f, 0x19bb1a, 0x19c058, 0x19cc2d, 0x19d4c7, 0x19d8b2, 0x19e513, 0x19e966, 0x19f18c, 0x19fdf9, 0x1a02a2, 0x1a0ed7, 0x1a163d, 0x1a1a48, 0x1a27e9, 0x1a2b9c, 0x1a3376, 0x1a3f03, 0x1a4441, 0x1a4834, 0x1a50de, 0x1a5cab, 0x1a610a, 0x1a6d7f, 0x1a7595, 0x1a79e0, 0x1a8311, 0x1a8f64, 0x1a978e, 0x1a9bfb, 0x1aa65a, 0x1aaa2f, 0x1ab2c5, 0x1abeb0, 0x1ac5f2, 0x1ac987, 0x1ad16d, 0x1add18, 0x1ae0b9, 0x1aeccc, 0x1af426, 0x1af853, 0x1b01c4, 0x1b0db1, 0x1b155b, 0x1b192e, 0x1b248f, 0x1b28fa, 0x1b3010, 0x1b3c65, 0x1b4727, 0x1b4b52, 0x1b53b8, 0x1b5fcd, 0x1b626c, 0x1b6e19, 0x1b76f3, 0x1b7a86, 0x1b8077, 0x1b8c02, 0x1b94e8, 0x1b989d, 0x1ba53c, 0x1ba949, 0x1bb1a3, 0x1bbdd6, 0x1bc694, 0x1bcae1, 0x1bd20b, 0x1bde7e, 0x1be3df, 0x1befaa, 0x1bf740, 0x1bfb35, 0x1c0583, 0x1c09f6, 0x1c111c, 0x1c1d69, 0x1c20c8, 0x1c2cbd, 0x1c3457, 0x1c3822, 0x1c4360, 0x1c4f15, 0x1c57ff, 0x1c5b8a, 0x1c662b, 0x1c6a5e, 0x1c72b4, 0x1c7ec1, 0x1c8430, 0x1c8845, 0x1c90af, 0x1c9cda, 0x1ca17b, 0x1cad0e, 0x1cb5e4, 0x1cb991, 0x1cc2d3, 0x1ccea6, 0x1cd64c, 0x1cda39, 0x1ce798, 0x1cebed, 0x1cf307, 0x1cff72, 0x1d06e5, 0x1d0a90, 0x1d127a, 0x1d1e0f, 0x1d23ae, 0x1d2fdb, 0x1d3731, 0x1d3b44, 0x1d4006, 0x1d4c73, 0x1d5499, 0x1d58ec, 0x1d654d, 0x1d6938, 0x1d71d2, 0x1d7da7, 0x1d8756, 0x1d8b23, 0x1d93c9, 0x1d9fbc, 0x1da21d, 0x1dae68, 0x1db682, 0x1dbaf7, 0x1dc1b5, 0x1dcdc0, 0x1dd52a, 0x1dd95f, 0x1de4fe, 0x1de88b, 0x1df061, 0x1dfc14, 0x1e034f, 0x1e0f3a, 0x1e17d0, 0x1e1ba5, 0x1e2604, 0x1e2a71, 0x1e329b, 0x1e3eee, 0x1e45ac, 0x1e49d9, 0x1e5133, 0x1e5d46, 0x1e60e7, 0x1e6c92, 0x1e7478, 0x1e780d, 0x1e82fc, 0x1e8e89, 0x1e9663, 0x1e9a16, 0x1ea7b7, 0x1eabc2, 0x1eb328, 0x1ebf5d, 0x1ec41f, 0x1ec86a, 0x1ed080, 0x1edcf5, 0x1ee154, 0x1eed21, 0x1ef5cb, 0x1ef9be, 0x1f0029, 0x1f0c5c, 0x1f14b6, 0x1f18c3, 0x1f2562, 0x1f2917, 0x1f31fd, 0x1f3d88, 0x1f46ca, 0x1f4abf, 0x1f5255, 0x1f5e20, 0x1f6381, 0x1f6ff4, 0x1f771e, 0x1f7b6b, 0x1f819a, 0x1f8def, 0x1f9505, 0x1f9970, 0x1fa4d1, 0x1fa8a4, 0x1fb04e, 0x1fbc3b, 0x1fc779, 0x1fcb0c, 0x1fd3e6, 0x1fdf93, 0x1fe232, 0x1fee47, 0x1ff6ad, 0x1ffad8, 0x20031d, 0x200f68, 0x201782, 0x201bf7, 0x202656, 0x202a23, 0x2032c9, 0x203ebc, 0x2045fe, 0x20498b, 0x205161, 0x205d14, 0x2060b5, 0x206cc0, 0x20742a, 0x20785f, 0x2082ae, 0x208edb, 0x209631, 0x209a44, 0x20a7e5, 0x20ab90, 0x20b37a, 0x20bf0f, 0x20c44d, 0x20c838, 0x20d0d2, 0x20dca7, 0x20e106, 0x20ed73, 0x20f599, 0x20f9ec, 0x21007b, 0x210c0e, 0x2114e4, 0x211891, 0x212530, 0x212945, 0x2131af, 0x213dda, 0x214698, 0x214aed, 0x215207, 0x215e72, 0x2163d3, 0x216fa6, 0x21774c, 0x217b39, 0x2181c8, 0x218dbd, 0x219557, 0x219922, 0x21a483, 0x21a8f6, 0x21b01c, 0x21bc69, 0x21c72b, 0x21cb5e, 0x21d3b4, 0x21dfc1, 0x21e260, 0x21ee15, 0x21f6ff, 0x21fa8a, 0x2205d1, 0x2209a4, 0x22114e, 0x221d3b, 0x22209a, 0x222cef, 0x223405, 0x223870, 0x224332, 0x224f47, 0x2257ad, 0x225bd8, 0x226679, 0x226a0c, 0x2272e6, 0x227e93, 0x228462, 0x228817, 0x2290fd, 0x229c88, 0x22a129, 0x22ad5c, 0x22b5b6, 0x22b9c3, 0x22c281, 0x22cef4, 0x22d61e, 0x22da6b, 0x22e7ca, 0x22ebbf, 0x22f355, 0x22ff20, 0x2306b7, 0x230ac2, 0x231228, 0x231e5d, 0x2323fc, 0x232f89, 0x233763, 0x233b16, 0x234054, 0x234c21, 0x2354cb, 0x2358be, 0x23651f, 0x23696a, 0x237180, 0x237df5, 0x238704, 0x238b71, 0x23939b, 0x239fee, 0x23a24f, 0x23ae3a, 0x23b6d0, 0x23baa5, 0x23c1e7, 0x23cd92, 0x23d578, 0x23d90d, 0x23e4ac, 0x23e8d9, 0x23f033, 0x23fc46, 0x2402f0, 0x240e85, 0x24166f, 0x241a1a, 0x2427bb, 0x242bce, 0x243324, 0x243f51, 0x244413, 0x244866, 0x24508c, 0x245cf9, 0x246158, 0x246d2d, 0x2475c7, 0x2479b2, 0x248343, 0x248f36, 0x2497dc, 0x249ba9, 0x24a608, 0x24aa7d, 0x24b297, 0x24bee2, 0x24c5a0, 0x24c9d5, 0x24d13f, 0x24dd4a, 0x24e0eb, 0x24ec9e, 0x24f474, 0x24f801, 0x250196, 0x250de3, 0x251509, 0x25197c, 0x2524dd, 0x2528a8, 0x253042, 0x253c37, 0x254775, 0x254b00, 0x2553ea, 0x255f9f, 0x25623e, 0x256e4b, 0x2576a1, 0x257ad4, 0x258025, 0x258c50, 0x2594ba, 0x2598cf, 0x25a56e, 0x25a91b, 0x25b1f1, 0x25bd84, 0x25c6c6, 0x25cab3, 0x25d259, 0x25de2c, 0x25e38d, 0x25eff8, 0x25f712, 0x25fb67, 0x26043c, 0x260849, 0x2610a3, 0x261cd6, 0x262177, 0x262d02, 0x2635e8, 0x26399d, 0x2642df, 0x264eaa, 0x265640, 0x265a35, 0x266794, 0x266be1, 0x26730b, 0x267f7e, 0x26858f, 0x2689fa, 0x269110, 0x269d65, 0x26a0c4, 0x26acb1, 0x26b45b, 0x26b82e, 0x26c36c, 0x26cf19, 0x26d7f3, 0x26db86, 0x26e627, 0x26ea52, 0x26f2b8, 0x26fecd, 0x27075a, 0x270b2f, 0x2713c5, 0x271fb0, 0x272211, 0x272e64, 0x27368e, 0x273afb, 0x2741b9, 0x274dcc, 0x275526, 0x275953, 0x2764f2, 0x276887, 0x27706d, 0x277c18, 0x2786e9, 0x278a9c, 0x279276, 0x279e03, 0x27a3a2, 0x27afd7, 0x27b73d, 0x27bb48, 0x27c00a, 0x27cc7f, 0x27d495, 0x27d8e0, 0x27e541, 0x27e934, 0x27f1de, 0x27fdab, 0x2800c7, 0x280cb2, 0x281458, 0x28182d, 0x28258c, 0x2829f9, 0x283113, 0x283d66, 0x284624, 0x284a51, 0x2852bb, 0x285ece, 0x28636f, 0x286f1a, 0x2877f0, 0x287b85, 0x288174, 0x288d01, 0x2895eb, 0x28999e, 0x28a43f, 0x28a84a, 0x28b0a0, 0x28bcd5, 0x28c797, 0x28cbe2, 0x28d308, 0x28df7d, 0x28e2dc, 0x28eea9, 0x28f643, 0x28fa36, 0x2903a1, 0x290fd4, 0x29173e, 0x291b4b, 0x2926ea, 0x292a9f, 0x293275, 0x293e00, 0x294542, 0x294937, 0x2951dd, 0x295da8, 0x296009, 0x296c7c, 0x297496, 0x2978e3, 0x298212, 0x298e67, 0x29968d, 0x299af8, 0x29a759, 0x29ab2c, 0x29b3c6, 0x29bfb3, 0x29c4f1, 0x29c884, 0x29d06e, 0x29dc1b, 0x29e1ba, 0x29edcf, 0x29f525, 0x29f950, 0x2a060b, 0x2a0a7e, 0x2a1294, 0x2a1ee1, 0x2a2340, 0x2a2f35, 0x2a37df, 0x2a3baa, 0x2a40e8, 0x2a4c9d, 0x2a5477, 0x2a5802, 0x2a65a3, 0x2a69d6, 0x2a713c, 0x2a7d49, 0x2a87b8, 0x2a8bcd, 0x2a9327, 0x2a9f52, 0x2aa2f3, 0x2aae86, 0x2ab66c, 0x2aba19, 0x2ac15b, 0x2acd2e, 0x2ad5c4, 0x2ad9b1, 0x2ae410, 0x2ae865, 0x2af08f, 0x2afcfa, 0x2b056d, 0x2b0918, 0x2b11f2, 0x2b1d87, 0x2b2026, 0x2b2c53, 0x2b34b9, 0x2b38cc, 0x2b438e, 0x2b4ffb, 0x2b5711, 0x2b5b64, 0x2b66c5, 0x2b6ab0, 0x2b725a, 0x2b7e2f, 0x2b84de, 0x2b88ab, 0x2b9041, 0x2b9c34, 0x2ba195, 0x2bade0, 0x2bb50a, 0x2bb97f, 0x2bc23d, 0x2bce48, 0x2bd6a2, 0x2bdad7, 0x2be776, 0x2beb03, 0x2bf3e9, 0x2bff9c, 0x2c012a, 0x2c0d5f, 0x2c15b5, 0x2c19c0, 0x2c2461, 0x2c2814, 0x2c30fe, 0x2c3c8b, 0x2c47c9, 0x2c4bbc, 0x2c5356, 0x2c5f23, 0x2c6282, 0x2c6ef7, 0x2c761d, 0x2c7a68, 0x2c8099, 0x2c8cec, 0x2c9406, 0x2c9873, 0x2ca5d2, 0x2ca9a7, 0x2cb14d, 0x2cbd38, 0x2cc67a, 0x2cca0f, 0x2cd2e5, 0x2cde90, 0x2ce331, 0x2cef44, 0x2cf7ae, 0x2cfbdb, 0x2d024c, 0x2d0e39, 0x2d16d3, 0x2d1aa6, 0x2d2707, 0x2d2b72, 0x2d3398, 0x2d3fed, 0x2d44af, 0x2d48da, 0x2d5030, 0x2d5c45, 0x2d61e4, 0x2d6d91, 0x2d757b, 0x2d790e, 0x2d83ff, 0x2d8f8a, 0x2d9760, 0x2d9b15, 0x2da6b4, 0x2daac1, 0x2db22b, 0x2dbe5e, 0x2dc51c, 0x2dc969, 0x2dd183, 0x2dddf6, 0x2de057, 0x2dec22, 0x2df4c8, 0x2df8bd, 0x2e07e6, 0x2e0b93, 0x2e1379, 0x2e1f0c, 0x2e22ad, 0x2e2ed8, 0x2e3632, 0x2e3a47, 0x2e4105, 0x2e4d70, 0x2e559a, 0x2e59ef, 0x2e644e, 0x2e683b, 0x2e70d1, 0x2e7ca4, 0x2e8655, 0x2e8a20, 0x2e92ca, 0x2e9ebf, 0x2ea31e, 0x2eaf6b, 0x2eb781, 0x2ebbf4, 0x2ec0b6, 0x2eccc3, 0x2ed429, 0x2ed85c, 0x2ee5fd, 0x2ee988, 0x2ef162, 0x2efd17, 0x2f0480, 0x2f08f5, 0x2f101f, 0x2f1c6a, 0x2f21cb, 0x2f2dbe, 0x2f3554, 0x2f3921, 0x2f4263, 0x2f4e16, 0x2f56fc, 0x2f5a89, 0x2f6728, 0x2f6b5d, 0x2f73b7, 0x2f7fc2, 0x2f8533, 0x2f8946, 0x2f91ac, 0x2f9dd9, 0x2fa078, 0x2fac0d, 0x2fb4e7, 0x2fb892, 0x2fc3d0, 0x2fcfa5, 0x2fd74f, 0x2fdb3a, 0x2fe69b, 0x2feaee, 0x2ff204, 0x2ffe71, 0x3004a9, 0x3008dc, 0x301036, 0x301c43, 0x3021e2, 0x302d97, 0x30357d, 0x303908, 0x30424a, 0x304e3f, 0x3056d5, 0x305aa0, 0x306701, 0x306b74, 0x30739e, 0x307feb, 0x30851a, 0x30896f, 0x309185, 0x309df0, 0x30a051, 0x30ac24, 0x30b4ce, 0x30b8bb, 0x30c3f9, 0x30cf8c, 0x30d766, 0x30db13, 0x30e6b2, 0x30eac7, 0x30f22d, 0x30fe58, 0x3107cf, 0x310bba, 0x311350, 0x311f25, 0x312284, 0x312ef1, 0x31361b, 0x313a6e, 0x31412c, 0x314d59, 0x3155b3, 0x3159c6, 0x316467, 0x316812, 0x3170f8, 0x317c8d, 0x31867c, 0x318a09, 0x3192e3, 0x319e96, 0x31a337, 0x31af42, 0x31b7a8, 0x31bbdd, 0x31c09f, 0x31ccea, 0x31d400, 0x31d875, 0x31e5d4, 0x31e9a1, 0x31f14b, 0x31fd3e, 0x320265, 0x320e10, 0x3216fa, 0x321a8f, 0x32272e, 0x322b5b, 0x3233b1, 0x323fc4, 0x324486, 0x3248f3, 0x325019, 0x325c6c, 0x3261cd, 0x326db8, 0x327552, 0x327927, 0x3283d6, 0x328fa3, 0x329749, 0x329b3c, 0x32a69d, 0x32aae8, 0x32b202, 0x32be77, 0x32c535, 0x32c940, 0x32d1aa, 0x32dddf, 0x32e07e, 0x32ec0b, 0x32f4e1, 0x32f894, 0x330103, 0x330d76, 0x33159c, 0x3319e9, 0x332448, 0x33283d, 0x3330d7, 0x333ca2, 0x3347e0, 0x334b95, 0x33537f, 0x335f0a, 0x3362ab, 0x336ede, 0x337634, 0x337a41, 0x3380b0, 0x338cc5, 0x33942f, 0x33985a, 0x33a5fb, 0x33a98e, 0x33b164, 0x33bd11, 0x33c653, 0x33ca26, 0x33d2cc, 0x33deb9, 0x33e318, 0x33ef6d, 0x33f787, 0x33fbf2, 0x340544, 0x340931, 0x3411db, 0x341dae, 0x34200f, 0x342c7a, 0x343490, 0x3438e5, 0x3443a7, 0x344fd2, 0x345738, 0x345b4d, 0x3466ec, 0x346a99, 0x347273, 0x347e06, 0x3484f7, 0x348882, 0x349068, 0x349c1d, 0x34a1bc, 0x34adc9, 0x34b523, 0x34b956, 0x34c214, 0x34ce61, 0x34d68b, 0x34dafe, 0x34e75f, 0x34eb2a, 0x34f3c0, 0x34ffb5, 0x350622, 0x350a57, 0x3512bd, 0x351ec8, 0x352369, 0x352f1c, 0x3537f6, 0x353b83, 0x3540c1, 0x354cb4, 0x35545e, 0x35582b, 0x35658a, 0x3569ff, 0x357115, 0x357d60, 0x358791, 0x358be4, 0x35930e, 0x359f7b, 0x35a2da, 0x35aeaf, 0x35b645, 0x35ba30, 0x35c172, 0x35cd07, 0x35d5ed, 0x35d998, 0x35e439, 0x35e84c, 0x35f0a6, 0x35fcd3, 0x360388, 0x360ffd, 0x361717, 0x361b62, 0x3626c3, 0x362ab6, 0x36325c, 0x363e29, 0x36456b, 0x36491e, 0x3651f4, 0x365d81, 0x366020, 0x366c55, 0x3674bf, 0x3678ca, 0x36823b, 0x368e4e, 0x3696a4, 0x369ad1, 0x36a770, 0x36ab05, 0x36b3ef, 0x36bf9a, 0x36c4d8, 0x36c8ad, 0x36d047, 0x36dc32, 0x36e193, 0x36ede6, 0x36f50c, 0x36f979, 0x3700ee, 0x370c9b, 0x371471, 0x371804, 0x3725a5, 0x3729d0, 0x37313a, 0x373d4f, 0x37460d, 0x374a78, 0x375292, 0x375ee7, 0x376346, 0x376f33, 0x3777d9, 0x377bac, 0x37815d, 0x378d28, 0x3795c2, 0x3799b7, 0x37a416, 0x37a863, 0x37b089, 0x37bcfc, 0x37c7be, 0x37cbcb, 0x37d321, 0x37df54, 0x37e2f5, 0x37ee80, 0x37f66a, 0x37fa1f, 0x380773, 0x380b06, 0x3813ec, 0x381f99, 0x382238, 0x382e4d, 0x3836a7, 0x383ad2, 0x384190, 0x384de5, 0x38550f, 0x38597a, 0x3864db, 0x3868ae, 0x387044, 0x387c31, 0x3886c0, 0x388ab5, 0x38925f, 0x389e2a, 0x38a38b, 0x38affe, 0x38b714, 0x38bb61, 0x38c023, 0x38cc56, 0x38d4bc, 0x38d8c9, 0x38e568, 0x38e91d, 0x38f1f7, 0x38fd82, 0x390415, 0x390860, 0x39108a, 0x391cff, 0x39215e, 0x392d2b, 0x3935c1, 0x3939b4, 0x3942f6, 0x394e83, 0x395669, 0x395a1c, 0x3967bd, 0x396bc8, 0x397322, 0x397f57, 0x3985a6, 0x3989d3, 0x399139, 0x399d4c, 0x39a0ed, 0x39ac98, 0x39b472, 0x39b807, 0x39c345, 0x39cf30, 0x39d7da, 0x39dbaf, 0x39e60e, 0x39ea7b, 0x39f291, 0x39fee4, 0x3a01bf, 0x3a0dca, 0x3a1520, 0x3a1955, 0x3a24f4, 0x3a2881, 0x3a306b, 0x3a3c1e, 0x3a475c, 0x3a4b29, 0x3a53c3, 0x3a5fb6, 0x3a6217, 0x3a6e62, 0x3a7688, 0x3a7afd, 0x3a800c, 0x3a8c79, 0x3a9493, 0x3a98e6, 0x3aa547, 0x3aa932, 0x3ab1d8, 0x3abdad, 0x3ac6ef, 0x3aca9a, 0x3ad270, 0x3ade05, 0x3ae3a4, 0x3aefd1, 0x3af73b, 0x3afb4e, 0x3b02d9, 0x3b0eac, 0x3b1646, 0x3b1a33, 0x3b2792, 0x3b2be7, 0x3b330d, 0x3b3f78, 0x3b443a, 0x3b484f, 0x3b50a5, 0x3b5cd0, 0x3b6171, 0x3b6d04, 0x3b75ee, 0x3b799b, 0x3b836a, 0x3b8f1f, 0x3b97f5, 0x3b9b80, 0x3ba621, 0x3baa54, 0x3bb2be, 0x3bbecb, 0x3bc589, 0x3bc9fc, 0x3bd116, 0x3bdd63, 0x3be0c2, 0x3becb7, 0x3bf45d, 0x3bf828, 0x3c069e, 0x3c0aeb, 0x3c1201, 0x3c1e74, 0x3c23d5, 0x3c2fa0, 0x3c374a, 0x3c3b3f, 0x3c407d, 0x3c4c08, 0x3c54e2, 0x3c5897, 0x3c6536, 0x3c6943, 0x3c71a9, 0x3c7ddc, 0x3c872d, 0x3c8b58, 0x3c93b2, 0x3c9fc7, 0x3ca266, 0x3cae13, 0x3cb6f9, 0x3cba8c, 0x3cc1ce, 0x3ccdbb, 0x3cd551, 0x3cd924, 0x3ce485, 0x3ce8f0, 0x3cf01a, 0x3cfc6f, 0x3d05f8, 0x3d098d, 0x3d1167, 0x3d1d12, 0x3d20b3, 0x3d2cc6, 0x3d342c, 0x3d3859, 0x3d431b, 0x3d4f6e, 0x3d5784, 0x3d5bf1, 0x3d6650, 0x3d6a25, 0x3d72cf, 0x3d7eba, 0x3d844b, 0x3d883e, 0x3d90d4, 0x3d9ca1, 0x3da100, 0x3dad75, 0x3db59f, 0x3db9ea, 0x3dc2a8, 0x3dcedd, 0x3dd637, 0x3dda42, 0x3de7e3, 0x3deb96, 0x3df37c, 0x3dff09, 0x3e0052, 0x3e0c27, 0x3e14cd, 0x3e18b8, 0x3e2519, 0x3e296c, 0x3e3186, 0x3e3df3, 0x3e46b1, 0x3e4ac4, 0x3e522e, 0x3e5e5b, 0x3e63fa, 0x3e6f8f, 0x3e7765, 0x3e7b10, 0x3e81e1, 0x3e8d94, 0x3e957e, 0x3e990b, 0x3ea4aa, 0x3ea8df, 0x3eb035, 0x3ebc40, 0x3ec702, 0x3ecb77, 0x3ed39d, 0x3edfe8, 0x3ee249, 0x3eee3c, 0x3ef6d6, 0x3efaa3, 0x3f0334, 0x3f0f41, 0x3f17ab, 0x3f1bde, 0x3f267f, 0x3f2a0a, 0x3f32e0, 0x3f3e95, 0x3f45d7, 0x3f49a2, 0x3f5148, 0x3f5d3d, 0x3f609c, 0x3f6ce9, 0x3f7403, 0x3f7876, 0x3f8287, 0x3f8ef2, 0x3f9618, 0x3f9a6d, 0x3fa7cc, 0x3fabb9, 0x3fb353, 0x3fbf26, 0x3fc464, 0x3fc811, 0x3fd0fb, 0x3fdc8e, 0x3fe12f, 0x3fed5a, 0x3ff5b0, 0x3ff9c5, 0x40063a, 0x400a4f, 0x4012a5, 0x401ed0, 0x402371, 0x402f04, 0x4037ee, 0x403b9b, 0x4040d9, 0x404cac, 0x405446, 0x405833, 0x406592, 0x4069e7, 0x40710d, 0x407d78, 0x408789, 0x408bfc, 0x409316, 0x409f63, 0x40a2c2, 0x40aeb7, 0x40b65d, 0x40ba28, 0x40c16a, 0x40cd1f, 0x40d5f5, 0x40d980, 0x40e421, 0x40e854, 0x40f0be, 0x40fccb, 0x41055c, 0x410929, 0x4111c3, 0x411db6, 0x412017, 0x412c62, 0x413488, 0x4138fd, 0x4143bf, 0x414fca, 0x415720, 0x415b55, 0x4166f4, 0x416a81, 0x41726b, 0x417e1e, 0x4184ef, 0x41889a, 0x419070, 0x419c05, 0x41a1a4, 0x41add1, 0x41b53b, 0x41b94e, 0x41c20c, 0x41ce79, 0x41d693, 0x41dae6, 0x41e747, 0x41eb32, 0x41f3d8, 0x41ffad, 0x4200f6, 0x420c83, 0x421469, 0x42181c, 0x4225bd, 0x4229c8, 0x423122, 0x423d57, 0x424615, 0x424a60, 0x42528a, 0x425eff, 0x42635e, 0x426f2b, 0x4277c1, 0x427bb4, 0x428145, 0x428d30, 0x4295da, 0x4299af, 0x42a40e, 0x42a87b, 0x42b091, 0x42bce4, 0x42c7a6, 0x42cbd3, 0x42d339, 0x42df4c, 0x42e2ed, 0x42ee98, 0x42f672, 0x42fa07, 0x430390, 0x430fe5, 0x43170f, 0x431b7a, 0x4326db, 0x432aae, 0x433244, 0x433e31, 0x434573, 0x434906, 0x4351ec, 0x435d99, 0x436038, 0x436c4d, 0x4374a7, 0x4378d2, 0x438223, 0x438e56, 0x4396bc, 0x439ac9, 0x43a768, 0x43ab1d, 0x43b3f7, 0x43bf82, 0x43c4c0, 0x43c8b5, 0x43d05f, 0x43dc2a, 0x43e18b, 0x43edfe, 0x43f514, 0x43f961, 0x4407d7, 0x440ba2, 0x441348, 0x441f3d, 0x44229c, 0x442ee9, 0x443603, 0x443a76, 0x444134, 0x444d41, 0x4455ab, 0x4459de, 0x44647f, 0x44680a, 0x4470e0, 0x447c95, 0x448664, 0x448a11, 0x4492fb, 0x449e8e, 0x44a32f, 0x44af5a, 0x44b7b0, 0x44bbc5, 0x44c087, 0x44ccf2, 0x44d418, 0x44d86d, 0x44e5cc, 0x44e9b9, 0x44f153, 0x44fd26, 0x4504b1, 0x4508c4, 0x45102e, 0x451c5b, 0x4521fa, 0x452d8f, 0x453565, 0x453910, 0x454252, 0x454e27, 0x4556cd, 0x455ab8, 0x456719, 0x456b6c, 0x457386, 0x457ff3, 0x458502, 0x458977, 0x45919d, 0x459de8, 0x45a049, 0x45ac3c, 0x45b4d6, 0x45b8a3, 0x45c3e1, 0x45cf94, 0x45d77e, 0x45db0b, 0x45e6aa, 0x45eadf, 0x45f235, 0x45fe40, 0x46011b, 0x460d6e, 0x461584, 0x4619f1, 0x462450, 0x462825, 0x4630cf, 0x463cba, 0x4647f8, 0x464b8d, 0x465367, 0x465f12, 0x4662b3, 0x466ec6, 0x46762c, 0x467a59, 0x4680a8, 0x468cdd, 0x469437, 0x469842, 0x46a5e3, 0x46a996, 0x46b17c, 0x46bd09, 0x46c64b, 0x46ca3e, 0x46d2d4, 0x46dea1, 0x46e300, 0x46ef75, 0x46f79f, 0x46fbea, 0x47027d, 0x470e08, 0x4716e2, 0x471a97, 0x472736, 0x472b43, 0x4733a9, 0x473fdc, 0x47449e, 0x4748eb, 0x475001, 0x475c74, 0x4761d5, 0x476da0, 0x47754a, 0x47793f, 0x4783ce, 0x478fbb, 0x479751, 0x479b24, 0x47a685, 0x47aaf0, 0x47b21a, 0x47be6f, 0x47c52d, 0x47c958, 0x47d1b2, 0x47ddc7, 0x47e066, 0x47ec13, 0x47f4f9, 0x47f88c, 0x4805e0, 0x480995, 0x48117f, 0x481d0a, 0x4820ab, 0x482cde, 0x483434, 0x483841, 0x484303, 0x484f76, 0x48579c, 0x485be9, 0x486648, 0x486a3d, 0x4872d7, 0x487ea2, 0x488453, 0x488826, 0x4890cc, 0x489cb9, 0x48a118, 0x48ad6d, 0x48b587, 0x48b9f2, 0x48c2b0, 0x48cec5, 0x48d62f, 0x48da5a, 0x48e7fb, 0x48eb8e, 0x48f364, 0x48ff11, 0x490686, 0x490af3, 0x491219, 0x491e6c, 0x4923cd, 0x492fb8, 0x493752, 0x493b27, 0x494065, 0x494c10, 0x4954fa, 0x49588f, 0x49652e, 0x49695b, 0x4971b1, 0x497dc4, 0x498735, 0x498b40, 0x4993aa, 0x499fdf, 0x49a27e, 0x49ae0b, 0x49b6e1, 0x49ba94, 0x49c1d6, 0x49cda3, 0x49d549, 0x49d93c, 0x49e49d, 0x49e8e8, 0x49f002, 0x49fc77, 0x4a032c, 0x4a0f59, 0x4a17b3, 0x4a1bc6, 0x4a2667, 0x4a2a12, 0x4a32f8, 0x4a3e8d, 0x4a45cf, 0x4a49ba, 0x4a5150, 0x4a5d25, 0x4a6084, 0x4a6cf1, 0x4a741b, 0x4a786e, 0x4a829f, 0x4a8eea, 0x4a9600, 0x4a9a75, 0x4aa7d4, 0x4aaba1, 0x4ab34b, 0x4abf3e, 0x4ac47c, 0x4ac809, 0x4ad0e3, 0x4adc96, 0x4ae137, 0x4aed42, 0x4af5a8, 0x4af9dd, 0x4b004a, 0x4b0c3f, 0x4b14d5, 0x4b18a0, 0x4b2501, 0x4b2974, 0x4b319e, 0x4b3deb, 0x4b46a9, 0x4b4adc, 0x4b5236, 0x4b5e43, 0x4b63e2, 0x4b6f97, 0x4b777d, 0x4b7b08, 0x4b81f9, 0x4b8d8c, 0x4b9566, 0x4b9913, 0x4ba4b2, 0x4ba8c7, 0x4bb02d, 0x4bbc58, 0x4bc71a, 0x4bcb6f, 0x4bd385, 0x4bdff0, 0x4be251, 0x4bee24, 0x4bf6ce, 0x4bfabb, 0x4c040d, 0x4c0878, 0x4c1092, 0x4c1ce7, 0x4c2146, 0x4c2d33, 0x4c35d9, 0x4c39ac, 0x4c42ee, 0x4c4e9b, 0x4c5671, 0x4c5a04, 0x4c67a5, 0x4c6bd0, 0x4c733a, 0x4c7f4f, 0x4c85be, 0x4c89cb, 0x4c9121, 0x4c9d54, 0x4ca0f5, 0x4cac80, 0x4cb46a, 0x4cb81f, 0x4cc35d, 0x4ccf28, 0x4cd7c2, 0x4cdbb7, 0x4ce616, 0x4cea63, 0x4cf289, 0x4cfefc, 0x4d076b, 0x4d0b1e, 0x4d13f4, 0x4d1f81, 0x4d2220, 0x4d2e55, 0x4d36bf, 0x4d3aca, 0x4d4188, 0x4d4dfd, 0x4d5517, 0x4d5962, 0x4d64c3, 0x4d68b6, 0x4d705c, 0x4d7c29, 0x4d86d8, 0x4d8aad, 0x4d9247, 0x4d9e32, 0x4da393, 0x4dafe6, 0x4db70c, 0x4dbb79, 0x4dc03b, 0x4dcc4e, 0x4dd4a4, 0x4dd8d1, 0x4de570, 0x4de905, 0x4df1ef, 0x4dfd9a, 0x4e02c1, 0x4e0eb4, 0x4e165e, 0x4e1a2b, 0x4e278a, 0x4e2bff, 0x4e3315, 0x4e3f60, 0x4e4422, 0x4e4857, 0x4e50bd, 0x4e5cc8, 0x4e6169, 0x4e6d1c, 0x4e75f6, 0x4e7983, 0x4e8372, 0x4e8f07, 0x4e97ed, 0x4e9b98, 0x4ea639, 0x4eaa4c, 0x4eb2a6, 0x4ebed3, 0x4ec591, 0x4ec9e4, 0x4ed10e, 0x4edd7b, 0x4ee0da, 0x4eecaf, 0x4ef445, 0x4ef830, 0x4f01a7, 0x4f0dd2, 0x4f1538, 0x4f194d, 0x4f24ec, 0x4f2899, 0x4f3073, 0x4f3c06, 0x4f4744, 0x4f4b31, 0x4f53db, 0x4f5fae, 0x4f620f, 0x4f6e7a, 0x4f7690, 0x4f7ae5, 0x4f8014, 0x4f8c61, 0x4f948b, 0x4f98fe, 0x4fa55f, 0x4fa92a, 0x4fb1c0, 0x4fbdb5, 0x4fc6f7, 0x4fca82, 0x4fd268, 0x4fde1d, 0x4fe3bc, 0x4fefc9, 0x4ff723, 0x4ffb56, 0x50018e, 0x500dfb, 0x501511, 0x501964, 0x5024c5, 0x5028b0, 0x50305a, 0x503c2f, 0x50476d, 0x504b18, 0x5053f2, 0x505f87, 0x506226, 0x506e53, 0x5076b9, 0x507acc, 0x50803d, 0x508c48, 0x5094a2, 0x5098d7, 0x50a576, 0x50a903, 0x50b1e9, 0x50bd9c, 0x50c6de, 0x50caab, 0x50d241, 0x50de34, 0x50e395, 0x50efe0, 0x50f70a, 0x50fb7f, 0x5102e8, 0x510e9d, 0x511677, 0x511a02, 0x5127a3, 0x512bd6, 0x51333c, 0x513f49, 0x51440b, 0x51487e, 0x515094, 0x515ce1, 0x516140, 0x516d35, 0x5175df, 0x5179aa, 0x51835b, 0x518f2e, 0x5197c4, 0x519bb1, 0x51a610, 0x51aa65, 0x51b28f, 0x51befa, 0x51c5b8, 0x51c9cd, 0x51d127, 0x51dd52, 0x51e0f3, 0x51ec86, 0x51f46c, 0x51f819, 0x520742, 0x520b37, 0x5213dd, 0x521fa8, 0x522209, 0x522e7c, 0x523696, 0x523ae3, 0x5241a1, 0x524dd4, 0x52553e, 0x52594b, 0x5264ea, 0x52689f, 0x527075, 0x527c00, 0x5286f1, 0x528a84, 0x52926e, 0x529e1b, 0x52a3ba, 0x52afcf, 0x52b725, 0x52bb50, 0x52c012, 0x52cc67, 0x52d48d, 0x52d8f8, 0x52e559, 0x52e92c, 0x52f1c6, 0x52fdb3, 0x530424, 0x530851, 0x5310bb, 0x531cce, 0x53216f, 0x532d1a, 0x5335f0, 0x533985, 0x5342c7, 0x534eb2, 0x535658, 0x535a2d, 0x53678c, 0x536bf9, 0x537313, 0x537f66, 0x538597, 0x5389e2, 0x539108, 0x539d7d, 0x53a0dc, 0x53aca9, 0x53b443, 0x53b836, 0x53c374, 0x53cf01, 0x53d7eb, 0x53db9e, 0x53e63f, 0x53ea4a, 0x53f2a0, 0x53fed5, 0x540063, 0x540c16, 0x5414fc, 0x541889, 0x542528, 0x54295d, 0x5431b7, 0x543dc2, 0x544680, 0x544af5, 0x54521f, 0x545e6a, 0x5463cb, 0x546fbe, 0x547754, 0x547b21, 0x5481d0, 0x548da5, 0x54954f, 0x54993a, 0x54a49b, 0x54a8ee, 0x54b004, 0x54bc71, 0x54c733, 0x54cb46, 0x54d3ac, 0x54dfd9, 0x54e278, 0x54ee0d, 0x54f6e7, 0x54fa92, 0x550305, 0x550f70, 0x55179a, 0x551bef, 0x55264e, 0x552a3b, 0x5532d1, 0x553ea4, 0x5545e6, 0x554993, 0x555179, 0x555d0c, 0x5560ad, 0x556cd8, 0x557432, 0x557847, 0x5582b6, 0x558ec3, 0x559629, 0x559a5c, 0x55a7fd, 0x55ab88, 0x55b362, 0x55bf17, 0x55c455, 0x55c820, 0x55d0ca, 0x55dcbf, 0x55e11e, 0x55ed6b, 0x55f581, 0x55f9f4, 0x5606af, 0x560ada, 0x561230, 0x561e45, 0x5623e4, 0x562f91, 0x56377b, 0x563b0e, 0x56404c, 0x564c39, 0x5654d3, 0x5658a6, 0x566507, 0x566972, 0x567198, 0x567ded, 0x56871c, 0x568b69, 0x569383, 0x569ff6, 0x56a257, 0x56ae22, 0x56b6c8, 0x56babd, 0x56c1ff, 0x56cd8a, 0x56d560, 0x56d915, 0x56e4b4, 0x56e8c1, 0x56f02b, 0x56fc5e, 0x5705c9, 0x5709bc, 0x571156, 0x571d23, 0x572082, 0x572cf7, 0x57341d, 0x573868, 0x57432a, 0x574f5f, 0x5757b5, 0x575bc0, 0x576661, 0x576a14, 0x5772fe, 0x577e8b, 0x57847a, 0x57880f, 0x5790e5, 0x579c90, 0x57a131, 0x57ad44, 0x57b5ae, 0x57b9db, 0x57c299, 0x57ceec, 0x57d606, 0x57da73, 0x57e7d2, 0x57eba7, 0x57f34d, 0x57ff38, 0x580254, 0x580e21, 0x5816cb, 0x581abe, 0x58271f, 0x582b6a, 0x583380, 0x583ff5, 0x5844b7, 0x5848c2, 0x585028, 0x585c5d, 0x5861fc, 0x586d89, 0x587563, 0x587916, 0x5883e7, 0x588f92, 0x589778, 0x589b0d, 0x58a6ac, 0x58aad9, 0x58b233, 0x58be46, 0x58c504, 0x58c971, 0x58d19b, 0x58ddee, 0x58e04f, 0x58ec3a, 0x58f4d0, 0x58f8a5, 0x590132, 0x590d47, 0x5915ad, 0x5919d8, 0x592479, 0x59280c, 0x5930e6, 0x593c93, 0x5947d1, 0x594ba4, 0x59534e, 0x595f3b, 0x59629a, 0x596eef, 0x597605, 0x597a70, 0x598081, 0x598cf4, 0x59941e, 0x59986b, 0x59a5ca, 0x59a9bf, 0x59b155, 0x59bd20, 0x59c662, 0x59ca17, 0x59d2fd, 0x59de88, 0x59e329, 0x59ef5c, 0x59f7b6, 0x59fbc3, 0x5a0498, 0x5a08ed, 0x5a1007, 0x5a1c72, 0x5a21d3, 0x5a2da6, 0x5a354c, 0x5a3939, 0x5a427b, 0x5a4e0e, 0x5a56e4, 0x5a5a91, 0x5a6730, 0x5a6b45, 0x5a73af, 0x5a7fda, 0x5a852b, 0x5a895e, 0x5a91b4, 0x5a9dc1, 0x5aa060, 0x5aac15, 0x5ab4ff, 0x5ab88a, 0x5ac3c8, 0x5acfbd, 0x5ad757, 0x5adb22, 0x5ae683, 0x5aeaf6, 0x5af21c, 0x5afe69, 0x5b07fe, 0x5b0b8b, 0x5b1361, 0x5b1f14, 0x5b22b5, 0x5b2ec0, 0x5b362a, 0x5b3a5f, 0x5b411d, 0x5b4d68, 0x5b5582, 0x5b59f7, 0x5b6456, 0x5b6823, 0x5b70c9, 0x5b7cbc, 0x5b864d, 0x5b8a38, 0x5b92d2, 0x5b9ea7, 0x5ba306, 0x5baf73, 0x5bb799, 0x5bbbec, 0x5bc0ae, 0x5bccdb, 0x5bd431, 0x5bd844, 0x5be5e5, 0x5be990, 0x5bf17a, 0x5bfd0f, 0x5c03b9, 0x5c0fcc, 0x5c1726, 0x5c1b53, 0x5c26f2, 0x5c2a87, 0x5c326d, 0x5c3e18, 0x5c455a, 0x5c492f, 0x5c51c5, 0x5c5db0, 0x5c6011, 0x5c6c64, 0x5c748e, 0x5c78fb, 0x5c820a, 0x5c8e7f, 0x5c9695, 0x5c9ae0, 0x5ca741, 0x5cab34, 0x5cb3de, 0x5cbfab, 0x5cc4e9, 0x5cc89c, 0x5cd076, 0x5cdc03, 0x5ce1a2, 0x5cedd7, 0x5cf53d, 0x5cf948, 0x5d00df, 0x5d0caa, 0x5d1440, 0x5d1835, 0x5d2594, 0x5d29e1, 0x5d310b, 0x5d3d7e, 0x5d463c, 0x5d4a49, 0x5d52a3, 0x5d5ed6, 0x5d6377, 0x5d6f02, 0x5d77e8, 0x5d7b9d, 0x5d816c, 0x5d8d19, 0x5d95f3, 0x5d9986, 0x5da427, 0x5da852, 0x5db0b8, 0x5dbccd, 0x5dc78f, 0x5dcbfa, 0x5dd310, 0x5ddf65, 0x5de2c4, 0x5deeb1, 0x5df65b, 0x5dfa2e, 0x5e0575, 0x5e0900, 0x5e11ea, 0x5e1d9f, 0x5e203e, 0x5e2c4b, 0x5e34a1, 0x5e38d4, 0x5e4396, 0x5e4fe3, 0x5e5709, 0x5e5b7c, 0x5e66dd, 0x5e6aa8, 0x5e7242, 0x5e7e37, 0x5e84c6, 0x5e88b3, 0x5e9059, 0x5e9c2c, 0x5ea18d, 0x5eadf8, 0x5eb512, 0x5eb967, 0x5ec225, 0x5ece50, 0x5ed6ba, 0x5edacf, 0x5ee76e, 0x5eeb1b, 0x5ef3f1, 0x5eff84, 0x5f0613, 0x5f0a66, 0x5f128c, 0x5f1ef9, 0x5f2358, 0x5f2f2d, 0x5f37c7, 0x5f3bb2, 0x5f40f0, 0x5f4c85, 0x5f546f, 0x5f581a, 0x5f65bb, 0x5f69ce, 0x5f7124, 0x5f7d51, 0x5f87a0, 0x5f8bd5, 0x5f933f, 0x5f9f4a, 0x5fa2eb, 0x5fae9e, 0x5fb674, 0x5fba01, 0x5fc143, 0x5fcd36, 0x5fd5dc, 0x5fd9a9, 0x5fe408, 0x5fe87d, 0x5ff097, 0x5ffce2, 0x600527, 0x600952, 0x6011b8, 0x601dcd, 0x60206c, 0x602c19, 0x6034f3, 0x603886, 0x6043c4, 0x604fb1, 0x60575b, 0x605b2e, 0x60668f, 0x606afa, 0x607210, 0x607e65, 0x608494, 0x6088e1, 0x60900b, 0x609c7e, 0x60a1df, 0x60adaa, 0x60b540, 0x60b935, 0x60c277, 0x60ce02, 0x60d6e8, 0x60da9d, 0x60e73c, 0x60eb49, 0x60f3a3, 0x60ffd6, 0x610641, 0x610a34, 0x6112de, 0x611eab, 0x61230a, 0x612f7f, 0x613795, 0x613be0, 0x6140a2, 0x614cd7, 0x61543d, 0x615848, 0x6165e9, 0x61699c, 0x617176, 0x617d03, 0x6187f2, 0x618b87, 0x61936d, 0x619f18, 0x61a2b9, 0x61aecc, 0x61b626, 0x61ba53, 0x61c111, 0x61cd64, 0x61d58e, 0x61d9fb, 0x61e45a, 0x61e82f, 0x61f0c5, 0x61fcb0, 0x6203eb, 0x620f9e, 0x621774, 0x621b01, 0x6226a0, 0x622ad5, 0x62323f, 0x623e4a, 0x624508, 0x62497d, 0x625197, 0x625de2, 0x626043, 0x626c36, 0x6274dc, 0x6278a9, 0x628258, 0x628e2d, 0x6296c7, 0x629ab2, 0x62a713, 0x62ab66, 0x62b38c, 0x62bff9, 0x62c4bb, 0x62c8ce, 0x62d024, 0x62dc51, 0x62e1f0, 0x62ed85, 0x62f56f, 0x62f91a, 0x63008d, 0x630cf8, 0x631412, 0x631867, 0x6325c6, 0x6329b3, 0x633159, 0x633d2c, 0x63466e, 0x634a1b, 0x6352f1, 0x635e84, 0x636325, 0x636f50, 0x6377ba, 0x637bcf, 0x63813e, 0x638d4b, 0x6395a1, 0x6399d4, 0x63a475, 0x63a800, 0x63b0ea, 0x63bc9f, 0x63c7dd, 0x63cba8, 0x63d342, 0x63df37, 0x63e296, 0x63eee3, 0x63f609, 0x63fa7c, 0x6404ca, 0x6408bf, 0x641055, 0x641c20, 0x642181, 0x642df4, 0x64351e, 0x64396b, 0x644229, 0x644e5c, 0x6456b6, 0x645ac3, 0x646762, 0x646b17, 0x6473fd, 0x647f88, 0x648579, 0x64890c, 0x6491e6, 0x649d93, 0x64a032, 0x64ac47, 0x64b4ad, 0x64b8d8, 0x64c39a, 0x64cfef, 0x64d705, 0x64db70, 0x64e6d1, 0x64eaa4, 0x64f24e, 0x64fe3b, 0x6507ac, 0x650bd9, 0x651333, 0x651f46, 0x6522e7, 0x652e92, 0x653678, 0x653a0d, 0x65414f, 0x654d3a, 0x6555d0, 0x6559a5, 0x656404, 0x656871, 0x65709b, 0x657cee, 0x65861f, 0x658a6a, 0x659280, 0x659ef5, 0x65a354, 0x65af21, 0x65b7cb, 0x65bbbe, 0x65c0fc, 0x65cc89, 0x65d463, 0x65d816, 0x65e5b7, 0x65e9c2, 0x65f128, 0x65fd5d, 0x660206, 0x660e73, 0x661699, 0x661aec, 0x66274d, 0x662b38, 0x6633d2, 0x663fa7, 0x6644e5, 0x664890, 0x66507a, 0x665c0f, 0x6661ae, 0x666ddb, 0x667531, 0x667944, 0x6683b5, 0x668fc0, 0x66972a, 0x669b5f, 0x66a6fe, 0x66aa8b, 0x66b261, 0x66be14, 0x66c556, 0x66c923, 0x66d1c9, 0x66ddbc, 0x66e01d, 0x66ec68, 0x66f482, 0x66f8f7, 0x670160, 0x670d15, 0x6715ff, 0x67198a, 0x67242b, 0x67285e, 0x6730b4, 0x673cc1, 0x674783, 0x674bf6, 0x67531c, 0x675f69, 0x6762c8, 0x676ebd, 0x677657, 0x677a22, 0x6780d3, 0x678ca6, 0x67944c, 0x679839, 0x67a598, 0x67a9ed, 0x67b107, 0x67bd72, 0x67c630, 0x67ca45, 0x67d2af, 0x67deda, 0x67e37b, 0x67ef0e, 0x67f7e4, 0x67fb91, 0x6806fd, 0x680a88, 0x681262, 0x681e17, 0x6823b6, 0x682fc3, 0x683729, 0x683b5c, 0x68401e, 0x684c6b, 0x685481, 0x6858f4, 0x686555, 0x686920, 0x6871ca, 0x687dbf, 0x68874e, 0x688b3b, 0x6893d1, 0x689fa4, 0x68a205, 0x68ae70, 0x68b69a, 0x68baef, 0x68c1ad, 0x68cdd8, 0x68d532, 0x68d947, 0x68e4e6, 0x68e893, 0x68f079, 0x68fc0c, 0x69059b, 0x6909ee, 0x691104, 0x691d71, 0x6920d0, 0x692ca5, 0x69344f, 0x69383a, 0x694378, 0x694f0d, 0x6957e7, 0x695b92, 0x696633, 0x696a46, 0x6972ac, 0x697ed9, 0x698428, 0x69885d, 0x6990b7, 0x699cc2, 0x69a163, 0x69ad16, 0x69b5fc, 0x69b989, 0x69c2cb, 0x69cebe, 0x69d654, 0x69da21, 0x69e780, 0x69ebf5, 0x69f31f, 0x69ff6a, 0x6a0031, 0x6a0c44, 0x6a14ae, 0x6a18db, 0x6a257a, 0x6a290f, 0x6a31e5, 0x6a3d90, 0x6a46d2, 0x6a4aa7, 0x6a524d, 0x6a5e38, 0x6a6399, 0x6a6fec, 0x6a7706, 0x6a7b73, 0x6a8182, 0x6a8df7, 0x6a951d, 0x6a9968, 0x6aa4c9, 0x6aa8bc, 0x6ab056, 0x6abc23, 0x6ac761, 0x6acb14, 0x6ad3fe, 0x6adf8b, 0x6ae22a, 0x6aee5f, 0x6af6b5, 0x6afac0, 0x6b0357, 0x6b0f22, 0x6b17c8, 0x6b1bbd, 0x6b261c, 0x6b2a69, 0x6b3283, 0x6b3ef6, 0x6b45b4, 0x6b49c1, 0x6b512b, 0x6b5d5e, 0x6b60ff, 0x6b6c8a, 0x6b7460, 0x6b7815, 0x6b82e4, 0x6b8e91, 0x6b967b, 0x6b9a0e, 0x6ba7af, 0x6babda, 0x6bb330, 0x6bbf45, 0x6bc407, 0x6bc872, 0x6bd098, 0x6bdced, 0x6be14c, 0x6bed39, 0x6bf5d3, 0x6bf9a6, 0x6c0710, 0x6c0b65, 0x6c138f, 0x6c1ffa, 0x6c225b, 0x6c2e2e, 0x6c36c4, 0x6c3ab1, 0x6c41f3, 0x6c4d86, 0x6c556c, 0x6c5919, 0x6c64b8, 0x6c68cd, 0x6c7027, 0x6c7c52, 0x6c86a3, 0x6c8ad6, 0x6c923c, 0x6c9e49, 0x6ca3e8, 0x6caf9d, 0x6cb777, 0x6cbb02, 0x6cc040, 0x6ccc35, 0x6cd4df, 0x6cd8aa, 0x6ce50b, 0x6ce97e, 0x6cf194, 0x6cfde1, 0x6d0476, 0x6d0803, 0x6d10e9, 0x6d1c9c, 0x6d213d, 0x6d2d48, 0x6d35a2, 0x6d39d7, 0x6d4295, 0x6d4ee0, 0x6d560a, 0x6d5a7f, 0x6d67de, 0x6d6bab, 0x6d7341, 0x6d7f34, 0x6d85c5, 0x6d89b0, 0x6d915a, 0x6d9d2f, 0x6da08e, 0x6dacfb, 0x6db411, 0x6db864, 0x6dc326, 0x6dcf53, 0x6dd7b9, 0x6ddbcc, 0x6de66d, 0x6dea18, 0x6df2f2, 0x6dfe87, 0x6e01dc, 0x6e0da9, 0x6e1543, 0x6e1936, 0x6e2497, 0x6e28e2, 0x6e3008, 0x6e3c7d, 0x6e473f, 0x6e4b4a, 0x6e53a0, 0x6e5fd5, 0x6e6274, 0x6e6e01, 0x6e76eb, 0x6e7a9e, 0x6e806f, 0x6e8c1a, 0x6e94f0, 0x6e9885, 0x6ea524, 0x6ea951, 0x6eb1bb, 0x6ebdce, 0x6ec68c, 0x6ecaf9, 0x6ed213, 0x6ede66, 0x6ee3c7, 0x6eefb2, 0x6ef758, 0x6efb2d, 0x6f02ba, 0x6f0ecf, 0x6f1625, 0x6f1a50, 0x6f27f1, 0x6f2b84, 0x6f336e, 0x6f3f1b, 0x6f4459, 0x6f482c, 0x6f50c6, 0x6f5cb3, 0x6f6112, 0x6f6d67, 0x6f758d, 0x6f79f8, 0x6f8309, 0x6f8f7c, 0x6f9796, 0x6f9be3, 0x6fa642, 0x6faa37, 0x6fb2dd, 0x6fbea8, 0x6fc5ea, 0x6fc99f, 0x6fd175, 0x6fdd00, 0x6fe0a1, 0x6fecd4, 0x6ff43e, 0x6ff84b, 0x700293, 0x700ee6, 0x70160c, 0x701a79, 0x7027d8, 0x702bad, 0x703347, 0x703f32, 0x704470, 0x704805, 0x7050ef, 0x705c9a, 0x70613b, 0x706d4e, 0x7075a4, 0x7079d1, 0x708320, 0x708f55, 0x7097bf, 0x709bca, 0x70a66b, 0x70aa1e, 0x70b2f4, 0x70be81, 0x70c5c3, 0x70c9b6, 0x70d15c, 0x70dd29, 0x70e088, 0x70ecfd, 0x70f417, 0x70f862, 0x7101f5, 0x710d80, 0x71156a, 0x71191f, 0x7124be, 0x7128cb, 0x713021, 0x713c54, 0x714716, 0x714b63, 0x715389, 0x715ffc, 0x71625d, 0x716e28, 0x7176c2, 0x717ab7, 0x718046, 0x718c33, 0x7194d9, 0x7198ac, 0x71a50d, 0x71a978, 0x71b192, 0x71bde7, 0x71c6a5, 0x71cad0, 0x71d23a, 0x71de4f, 0x71e3ee, 0x71ef9b, 0x71f771, 0x71fb04, 0x72045f, 0x72082a, 0x7210c0, 0x721cb5, 0x722114, 0x722d61, 0x72358b, 0x7239fe, 0x7242bc, 0x724ec9, 0x725623, 0x725a56, 0x7267f7, 0x726b82, 0x727368, 0x727f1d, 0x7285ec, 0x728999, 0x729173, 0x729d06, 0x72a0a7, 0x72acd2, 0x72b438, 0x72b84d, 0x72c30f, 0x72cf7a, 0x72d790, 0x72dbe5, 0x72e644, 0x72ea31, 0x72f2db, 0x72feae, 0x730739, 0x730b4c, 0x7313a6, 0x731fd3, 0x732272, 0x732e07, 0x7336ed, 0x733a98, 0x7341da, 0x734daf, 0x735545, 0x735930, 0x736491, 0x7368e4, 0x73700e, 0x737c7b, 0x73868a, 0x738aff, 0x739215, 0x739e60, 0x73a3c1, 0x73afb4, 0x73b75e, 0x73bb2b, 0x73c069, 0x73cc1c, 0x73d4f6, 0x73d883, 0x73e522, 0x73e957, 0x73f1bd, 0x73fdc8, 0x74037e, 0x740f0b, 0x7417e1, 0x741b94, 0x742635, 0x742a40, 0x7432aa, 0x743edf, 0x74459d, 0x7449e8, 0x745102, 0x745d77, 0x7460d6, 0x746ca3, 0x747449, 0x74783c, 0x7482cd, 0x748eb8, 0x749652, 0x749a27, 0x74a786, 0x74abf3, 0x74b319, 0x74bf6c, 0x74c42e, 0x74c85b, 0x74d0b1, 0x74dcc4, 0x74e165, 0x74ed10, 0x74f5fa, 0x74f98f, 0x750018, 0x750c6d, 0x751487, 0x7518f2, 0x752553, 0x752926, 0x7531cc, 0x753db9, 0x7546fb, 0x754a8e, 0x755264, 0x755e11, 0x7563b0, 0x756fc5, 0x75772f, 0x757b5a, 0x7581ab, 0x758dde, 0x759534, 0x759941, 0x75a4e0, 0x75a895, 0x75b07f, 0x75bc0a, 0x75c748, 0x75cb3d, 0x75d3d7, 0x75dfa2, 0x75e203, 0x75ee76, 0x75f69c, 0x75fae9, 0x7605b2, 0x7609c7, 0x76112d, 0x761d58, 0x7620f9, 0x762c8c, 0x763466, 0x763813, 0x764351, 0x764f24, 0x7657ce, 0x765bbb, 0x76661a, 0x766a6f, 0x767285, 0x767ef0, 0x768401, 0x768874, 0x76909e, 0x769ceb, 0x76a14a, 0x76ad3f, 0x76b5d5, 0x76b9a0, 0x76c2e2, 0x76ce97, 0x76d67d, 0x76da08, 0x76e7a9, 0x76ebdc, 0x76f336, 0x76ff43, 0x7706d4, 0x770aa1, 0x77124b, 0x771e3e, 0x77239f, 0x772fea, 0x773700, 0x773b75, 0x774037, 0x774c42, 0x7754a8, 0x7758dd, 0x77657c, 0x776909, 0x7771e3, 0x777d96, 0x778767, 0x778b12, 0x7793f8, 0x779f8d, 0x77a22c, 0x77ae59, 0x77b6b3, 0x77bac6, 0x77c184, 0x77cdf1, 0x77d51b, 0x77d96e, 0x77e4cf, 0x77e8ba, 0x77f050, 0x77fc25, 0x780149, 0x780d3c, 0x7815d6, 0x7819a3, 0x782402, 0x782877, 0x78309d, 0x783ce8, 0x7847aa, 0x784bdf, 0x785335, 0x785f40, 0x7862e1, 0x786e94, 0x78767e, 0x787a0b, 0x7880fa, 0x788c8f, 0x789465, 0x789810, 0x78a5b1, 0x78a9c4, 0x78b12e, 0x78bd5b, 0x78c619, 0x78ca6c, 0x78d286, 0x78def3, 0x78e352, 0x78ef27, 0x78f7cd, 0x78fbb8, 0x79022f, 0x790e5a, 0x7916b0, 0x791ac5, 0x792764, 0x792b11, 0x7933fb, 0x793f8e, 0x7944cc, 0x7948b9, 0x795053, 0x795c26, 0x796187, 0x796df2, 0x797518, 0x79796d, 0x79839c, 0x798fe9, 0x799703, 0x799b76, 0x79a6d7, 0x79aaa2, 0x79b248, 0x79be3d, 0x79c57f, 0x79c90a, 0x79d1e0, 0x79dd95, 0x79e034, 0x79ec41, 0x79f4ab, 0x79f8de, 0x7a0785, 0x7a0bf0, 0x7a131a, 0x7a1f6f, 0x7a22ce, 0x7a2ebb, 0x7a3651, 0x7a3a24, 0x7a4166, 0x7a4d13, 0x7a55f9, 0x7a598c, 0x7a642d, 0x7a6858, 0x7a70b2, 0x7a7cc7, 0x7a8636, 0x7a8a43, 0x7a92a9, 0x7a9edc, 0x7aa37d, 0x7aaf08, 0x7ab7e2, 0x7abb97, 0x7ac0d5, 0x7acca0, 0x7ad44a, 0x7ad83f, 0x7ae59e, 0x7ae9eb, 0x7af101, 0x7afd74, 0x7b04e3, 0x7b0896, 0x7b107c, 0x7b1c09, 0x7b21a8, 0x7b2ddd, 0x7b3537, 0x7b3942, 0x7b4200, 0x7b4e75, 0x7b569f, 0x7b5aea, 0x7b674b, 0x7b6b3e, 0x7b73d4, 0x7b7fa1, 0x7b8550, 0x7b8925, 0x7b91cf, 0x7b9dba, 0x7ba01b, 0x7bac6e, 0x7bb484, 0x7bb8f1, 0x7bc3b3, 0x7bcfc6, 0x7bd72c, 0x7bdb59, 0x7be6f8, 0x7bea8d, 0x7bf267, 0x7bfe12, 0x7c00a4, 0x7c0cd1, 0x7c143b, 0x7c184e, 0x7c25ef, 0x7c299a, 0x7c3170, 0x7c3d05, 0x7c4647, 0x7c4a32, 0x7c52d8, 0x7c5ead, 0x7c630c, 0x7c6f79, 0x7c7793, 0x7c7be6, 0x7c8117, 0x7c8d62, 0x7c9588, 0x7c99fd, 0x7ca45c, 0x7ca829, 0x7cb0c3, 0x7cbcb6, 0x7cc7f4, 0x7ccb81, 0x7cd36b, 0x7cdf1e, 0x7ce2bf, 0x7ceeca, 0x7cf620, 0x7cfa55, 0x7d03c2, 0x7d0fb7, 0x7d175d, 0x7d1b28, 0x7d2689, 0x7d2afc, 0x7d3216, 0x7d3e63, 0x7d4521, 0x7d4954, 0x7d51be, 0x7d5dcb, 0x7d606a, 0x7d6c1f, 0x7d74f5, 0x7d7880, 0x7d8271, 0x7d8e04, 0x7d96ee, 0x7d9a9b, 0x7da73a, 0x7dab4f, 0x7db3a5, 0x7dbfd0, 0x7dc492, 0x7dc8e7, 0x7dd00d, 0x7ddc78, 0x7de1d9, 0x7dedac, 0x7df546, 0x7df933, 0x7e0668, 0x7e0a1d, 0x7e12f7, 0x7e1e82, 0x7e2323, 0x7e2f56, 0x7e37bc, 0x7e3bc9, 0x7e408b, 0x7e4cfe, 0x7e5414, 0x7e5861, 0x7e65c0, 0x7e69b5, 0x7e715f, 0x7e7d2a, 0x7e87db, 0x7e8bae, 0x7e9344, 0x7e9f31, 0x7ea290, 0x7eaee5, 0x7eb60f, 0x7eba7a, 0x7ec138, 0x7ecd4d, 0x7ed5a7, 0x7ed9d2, 0x7ee473, 0x7ee806, 0x7ef0ec, 0x7efc99, 0x7f050e, 0x7f097b, 0x7f1191, 0x7f1de4, 0x7f2045, 0x7f2c30, 0x7f34da, 0x7f38af, 0x7f43ed, 0x7f4f98, 0x7f5772, 0x7f5b07, 0x7f66a6, 0x7f6ad3, 0x7f7239, 0x7f7e4c, 0x7f84bd, 0x7f88c8, 0x7f9022, 0x7f9c57, 0x7fa1f6, 0x7fad83, 0x7fb569, 0x7fb91c, 0x7fc25e, 0x7fce2b, 0x7fd6c1, 0x7fdab4, 0x7fe715, 0x7feb60, 0x7ff38a, 0x7fffff }; codec2-1.0.1/src/gp_interleaver.c000066400000000000000000000101721412132000500165760ustar00rootroot00000000000000/*---------------------------------------------------------------------------*\ FILE........: gp_interleaver.c AUTHOR......: David Rowe DATE CREATED: April 2018 Golden Prime Interleaver. My interpretation of "On the Analysis and Design of Good Algebraic Interleavers", Xie et al,eq (5). See also octave/gp_interleaver.m \*---------------------------------------------------------------------------*/ /* Copyright (C) 2018 David Rowe All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 2.1, as published by the Free Software Foundation. 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 Lesser General Public License along with this program; if not, see . */ #include #include #include "gp_interleaver.h" /* Choose b for Golden Prime Interleaver. b is chosen to be the closest integer, which is relatively prime to N, to the Golden section of N. Implemented with a LUT in C for convenience, Octave version has a more complete implementation. If you find you need some more numbers head back to the Octave choose_interleaver_b() function. */ static const int b_table[] = { 56, 37, /* 700E: HRA_56_56 */ 112, 71, /* 700D: HRA_112_112 */ 128, 83, /* datac0: H_128_256_5 */ 210, 131, /* 2020: HRAb_396_504 with 312 data bits used */ 1024, 641, /* datac3: H_1024_2048_4f */ 1290, 797, /* datac2: H2064_516_sparse */ 4096, 2531 /* datac1: H_4096_8192_3d */ }; int choose_interleaver_b(int Nbits) { int i; for(i=0; i> 1; interleaved_frame[i*2+1] = temp[i] & 1; } } void gp_deinterleave_bits(char frame[], char interleaved_frame[], int Nbits) { char temp[Nbits]; int b = choose_interleaver_b(Nbits); int i,j; for (i=0; i> 1; frame[i*2 + 1] = temp[i] & 1; } }codec2-1.0.1/src/gp_interleaver.h000066400000000000000000000031201412132000500165760ustar00rootroot00000000000000/*---------------------------------------------------------------------------*\ FILE........: gp_interleaver.h AUTHOR......: David Rowe DATE CREATED: April 2018 Golden Prime Interleaver. My interprestation of "On the Analysis and Design of Good Algebraic Interleavers", Xie et al,eq (5). See also octvae/gp_interleaver.m \*---------------------------------------------------------------------------*/ /* Copyright (C) 2018 David Rowe All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 2.1, as published by the Free Software Foundation. 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 Lesser General Public License along with this program; if not, see . */ #ifndef __GP_INTERLEAVER__ #define __GP_INTERLEAVER__ #include "comp.h" void gp_interleave_comp(COMP interleaved_frame[], COMP frame[], int Nbits); void gp_deinterleave_comp(COMP frame[], COMP interleaved_frame[], int Nbits); void gp_interleave_float(float frame[], float interleaved_frame[], int Nbits); void gp_deinterleave_float(float interleaved_frame[], float frame[], int Nbits); void gp_interleave_bits(char interleaved_frame[], char frame[], int Nbits); void gp_deinterleave_bits(char frame[], char interleaved_frame[], int Nbits); #endif codec2-1.0.1/src/hanning.h000066400000000000000000000172371412132000500152300ustar00rootroot00000000000000/* Generated by hanning_file() Octave function */ const float hanning[]={ 0, 2.4171e-05, 9.66816e-05, 0.000217525, 0.000386689, 0.000604158, 0.00086991, 0.00118392, 0.00154616, 0.00195659, 0.00241517, 0.00292186, 0.00347661, 0.00407937, 0.00473008, 0.00542867, 0.00617507, 0.00696922, 0.00781104, 0.00870045, 0.00963736, 0.0106217, 0.0116533, 0.0127322, 0.0138581, 0.0150311, 0.0162509, 0.0175175, 0.0188308, 0.0201906, 0.0215968, 0.0230492, 0.0245478, 0.0260923, 0.0276826, 0.0293186, 0.0310001, 0.032727, 0.034499, 0.036316, 0.0381779, 0.0400844, 0.0420354, 0.0440307, 0.04607, 0.0481533, 0.0502802, 0.0524506, 0.0546643, 0.056921, 0.0592206, 0.0615627, 0.0639473, 0.0663741, 0.0688427, 0.0713531, 0.0739048, 0.0764978, 0.0791318, 0.0818064, 0.0845214, 0.0872767, 0.0900718, 0.0929066, 0.0957807, 0.0986939, 0.101646, 0.104636, 0.107665, 0.110732, 0.113836, 0.116978, 0.120156, 0.123372, 0.126624, 0.129912, 0.133235, 0.136594, 0.139989, 0.143418, 0.146881, 0.150379, 0.153911, 0.157476, 0.161074, 0.164705, 0.168368, 0.172063, 0.17579, 0.179549, 0.183338, 0.187158, 0.191008, 0.194888, 0.198798, 0.202737, 0.206704, 0.2107, 0.214724, 0.218775, 0.222854, 0.226959, 0.231091, 0.235249, 0.239432, 0.243641, 0.247874, 0.252132, 0.256414, 0.260719, 0.265047, 0.269398, 0.273772, 0.278167, 0.282584, 0.287021, 0.29148, 0.295958, 0.300456, 0.304974, 0.30951, 0.314065, 0.318638, 0.323228, 0.327835, 0.332459, 0.3371, 0.341756, 0.346427, 0.351113, 0.355814, 0.360528, 0.365256, 0.369997, 0.374751, 0.379516, 0.384293, 0.389082, 0.393881, 0.398691, 0.40351, 0.408338, 0.413176, 0.418022, 0.422876, 0.427737, 0.432605, 0.43748, 0.44236, 0.447247, 0.452138, 0.457034, 0.461935, 0.466839, 0.471746, 0.476655, 0.481568, 0.486481, 0.491397, 0.496313, 0.501229, 0.506145, 0.511061, 0.515976, 0.520889, 0.5258, 0.530708, 0.535614, 0.540516, 0.545414, 0.550308, 0.555197, 0.560081, 0.564958, 0.56983, 0.574695, 0.579552, 0.584402, 0.589244, 0.594077, 0.598901, 0.603715, 0.60852, 0.613314, 0.618097, 0.622868, 0.627628, 0.632375, 0.63711, 0.641831, 0.646538, 0.651232, 0.655911, 0.660574, 0.665222, 0.669855, 0.67447, 0.679069, 0.683651, 0.688215, 0.69276, 0.697287, 0.701795, 0.706284, 0.710752, 0.7152, 0.719627, 0.724033, 0.728418, 0.73278, 0.73712, 0.741437, 0.74573, 0.75, 0.754246, 0.758467, 0.762663, 0.766833, 0.770978, 0.775097, 0.779189, 0.783254, 0.787291, 0.791301, 0.795283, 0.799236, 0.80316, 0.807055, 0.810921, 0.814756, 0.81856, 0.822334, 0.826077, 0.829788, 0.833468, 0.837115, 0.840729, 0.844311, 0.847859, 0.851374, 0.854855, 0.858301, 0.861713, 0.86509, 0.868431, 0.871737, 0.875007, 0.87824, 0.881437, 0.884598, 0.887721, 0.890806, 0.893854, 0.896864, 0.899835, 0.902768, 0.905661, 0.908516, 0.911331, 0.914106, 0.916841, 0.919536, 0.92219, 0.924804, 0.927376, 0.929907, 0.932397, 0.934845, 0.93725, 0.939614, 0.941935, 0.944213, 0.946448, 0.94864, 0.950789, 0.952894, 0.954955, 0.956972, 0.958946, 0.960874, 0.962759, 0.964598, 0.966393, 0.968142, 0.969846, 0.971505, 0.973118, 0.974686, 0.976207, 0.977683, 0.979112, 0.980495, 0.981832, 0.983122, 0.984365, 0.985561, 0.986711, 0.987813, 0.988868, 0.989876, 0.990837, 0.99175, 0.992616, 0.993434, 0.994204, 0.994927, 0.995601, 0.996228, 0.996807, 0.997337, 0.99782, 0.998255, 0.998641, 0.998979, 0.999269, 0.999511, 0.999704, 0.999849, 0.999946, 0.999994, 0.999994, 0.999946, 0.999849, 0.999704, 0.999511, 0.999269, 0.998979, 0.998641, 0.998255, 0.99782, 0.997337, 0.996807, 0.996228, 0.995601, 0.994927, 0.994204, 0.993434, 0.992616, 0.99175, 0.990837, 0.989876, 0.988868, 0.987813, 0.986711, 0.985561, 0.984365, 0.983122, 0.981832, 0.980495, 0.979112, 0.977683, 0.976207, 0.974686, 0.973118, 0.971505, 0.969846, 0.968142, 0.966393, 0.964598, 0.962759, 0.960874, 0.958946, 0.956972, 0.954955, 0.952894, 0.950789, 0.94864, 0.946448, 0.944213, 0.941935, 0.939614, 0.93725, 0.934845, 0.932397, 0.929907, 0.927376, 0.924804, 0.92219, 0.919536, 0.916841, 0.914106, 0.911331, 0.908516, 0.905661, 0.902768, 0.899835, 0.896864, 0.893854, 0.890806, 0.887721, 0.884598, 0.881437, 0.87824, 0.875007, 0.871737, 0.868431, 0.86509, 0.861713, 0.858301, 0.854855, 0.851374, 0.847859, 0.844311, 0.840729, 0.837115, 0.833468, 0.829788, 0.826077, 0.822334, 0.81856, 0.814756, 0.810921, 0.807055, 0.80316, 0.799236, 0.795283, 0.791301, 0.787291, 0.783254, 0.779189, 0.775097, 0.770978, 0.766833, 0.762663, 0.758467, 0.754246, 0.75, 0.74573, 0.741437, 0.73712, 0.73278, 0.728418, 0.724033, 0.719627, 0.7152, 0.710752, 0.706284, 0.701795, 0.697287, 0.69276, 0.688215, 0.683651, 0.679069, 0.67447, 0.669855, 0.665222, 0.660574, 0.655911, 0.651232, 0.646538, 0.641831, 0.63711, 0.632375, 0.627628, 0.622868, 0.618097, 0.613314, 0.60852, 0.603715, 0.598901, 0.594077, 0.589244, 0.584402, 0.579552, 0.574695, 0.56983, 0.564958, 0.560081, 0.555197, 0.550308, 0.545414, 0.540516, 0.535614, 0.530708, 0.5258, 0.520889, 0.515976, 0.511061, 0.506145, 0.501229, 0.496313, 0.491397, 0.486481, 0.481568, 0.476655, 0.471746, 0.466839, 0.461935, 0.457034, 0.452138, 0.447247, 0.44236, 0.43748, 0.432605, 0.427737, 0.422876, 0.418022, 0.413176, 0.408338, 0.40351, 0.398691, 0.393881, 0.389082, 0.384293, 0.379516, 0.374751, 0.369997, 0.365256, 0.360528, 0.355814, 0.351113, 0.346427, 0.341756, 0.3371, 0.332459, 0.327835, 0.323228, 0.318638, 0.314065, 0.30951, 0.304974, 0.300456, 0.295958, 0.29148, 0.287021, 0.282584, 0.278167, 0.273772, 0.269398, 0.265047, 0.260719, 0.256414, 0.252132, 0.247874, 0.243641, 0.239432, 0.235249, 0.231091, 0.226959, 0.222854, 0.218775, 0.214724, 0.2107, 0.206704, 0.202737, 0.198798, 0.194888, 0.191008, 0.187158, 0.183338, 0.179549, 0.17579, 0.172063, 0.168368, 0.164705, 0.161074, 0.157476, 0.153911, 0.150379, 0.146881, 0.143418, 0.139989, 0.136594, 0.133235, 0.129912, 0.126624, 0.123372, 0.120156, 0.116978, 0.113836, 0.110732, 0.107665, 0.104636, 0.101646, 0.0986939, 0.0957807, 0.0929066, 0.0900718, 0.0872767, 0.0845214, 0.0818064, 0.0791318, 0.0764978, 0.0739048, 0.0713531, 0.0688427, 0.0663741, 0.0639473, 0.0615627, 0.0592206, 0.056921, 0.0546643, 0.0524506, 0.0502802, 0.0481533, 0.04607, 0.0440307, 0.0420354, 0.0400844, 0.0381779, 0.036316, 0.034499, 0.032727, 0.0310001, 0.0293186, 0.0276826, 0.0260923, 0.0245478, 0.0230492, 0.0215968, 0.0201906, 0.0188308, 0.0175175, 0.0162509, 0.0150311, 0.0138581, 0.0127322, 0.0116533, 0.0106217, 0.00963736, 0.00870045, 0.00781104, 0.00696922, 0.00617507, 0.00542867, 0.00473008, 0.00407937, 0.00347661, 0.00292186, 0.00241517, 0.00195659, 0.00154616, 0.00118392, 0.00086991, 0.000604158, 0.000386689, 0.000217525, 9.66816e-05, 2.4171e-05, 0 }; codec2-1.0.1/src/ht_coeff.h000066400000000000000000000142351412132000500153560ustar00rootroot00000000000000/* Hilbert Transform FIR filter coeffs */ /* Generated by make_hilb Octave script */ #define HT_N 257 COMP ht_coeff[]={ {-0.000004,0.000000}, {-0.000000,0.000008}, {-0.000008,0.000000}, {0.000000,0.000012}, {-0.000013,0.000000}, {0.000000,0.000014}, {-0.000021,0.000000}, {0.000000,0.000016}, {-0.000032,0.000000}, {-0.000000,0.000017}, {-0.000045,0.000000}, {0.000000,0.000015}, {-0.000060,0.000000}, {-0.000000,0.000009}, {-0.000078,-0.000000}, {-0.000000,-0.000001}, {-0.000098,0.000000}, {-0.000000,-0.000017}, {-0.000119,0.000000}, {-0.000000,-0.000040}, {-0.000140,0.000000}, {-0.000000,-0.000071}, {-0.000159,0.000000}, {0.000000,-0.000111}, {-0.000174,0.000000}, {-0.000000,-0.000160}, {-0.000183,0.000000}, {0.000000,-0.000219}, {-0.000184,0.000000}, {-0.000000,-0.000288}, {-0.000173,-0.000000}, {-0.000000,-0.000365}, {-0.000147,-0.000000}, {-0.000000,-0.000450}, {-0.000103,0.000000}, {0.000000,-0.000539}, {-0.000038,0.000000}, {-0.000000,-0.000630}, {0.000052,-0.000000}, {0.000000,-0.000719}, {0.000168,0.000000}, {0.000000,-0.000801}, {0.000313,-0.000000}, {0.000000,-0.000870}, {0.000488,0.000000}, {0.000000,-0.000918}, {0.000693,-0.000000}, {0.000000,-0.000940}, {0.000927,-0.000000}, {0.000000,-0.000927}, {0.001186,-0.000000}, {0.000000,-0.000871}, {0.001466,-0.000000}, {-0.000000,-0.000763}, {0.001762,-0.000000}, {0.000000,-0.000597}, {0.002064,-0.000000}, {-0.000000,-0.000364}, {0.002363,-0.000000}, {0.000000,-0.000060}, {0.002646,-0.000000}, {0.000000,0.000321}, {0.002900,0.000000}, {-0.000000,0.000782}, {0.003109,0.000000}, {-0.000000,0.001322}, {0.003255,-0.000000}, {0.000000,0.001940}, {0.003322,-0.000000}, {-0.000000,0.002630}, {0.003291,-0.000000}, {0.000000,0.003384}, {0.003141,-0.000000}, {-0.000000,0.004188}, {0.002856,-0.000000}, {-0.000000,0.005028}, {0.002417,0.000000}, {0.000000,0.005883}, {0.001808,0.000000}, {0.000000,0.006728}, {0.001016,0.000000}, {0.000000,0.007538}, {0.000029,-0.000000}, {-0.000000,0.008279}, {-0.001160,-0.000000}, {-0.000000,0.008919}, {-0.002556,-0.000000}, {0.000000,0.009418}, {-0.004158,-0.000000}, {-0.000000,0.009736}, {-0.005962,-0.000000}, {0.000000,0.009829}, {-0.007957,-0.000000}, {-0.000000,0.009653}, {-0.010130,-0.000000}, {-0.000000,0.009158}, {-0.012459,-0.000000}, {0.000000,0.008294}, {-0.014922,0.000000}, {-0.000000,0.007006}, {-0.017489,-0.000000}, {-0.000000,0.005234}, {-0.020127,0.000000}, {0.000000,0.002910}, {-0.022800,-0.000000}, {-0.000000,-0.000046}, {-0.025469,-0.000000}, {0.000000,-0.003735}, {-0.028094,-0.000000}, {0.000000,-0.008292}, {-0.030631,-0.000000}, {0.000000,-0.013906}, {-0.033039,-0.000000}, {0.000000,-0.020868}, {-0.035278,0.000000}, {-0.000000,-0.029645}, {-0.037308,-0.000000}, {-0.000000,-0.041052}, {-0.039093,-0.000000}, {0.000000,-0.056643}, {-0.040601,0.000000}, {-0.000000,-0.079776}, {-0.041804,0.000000}, {0.000000,-0.119232}, {-0.042679,-0.000000}, {-0.000000,-0.207305}, {-0.043211,0.000000}, {0.000000,-0.634978}, {0.956610,0.000000}, {0.000000,0.634978}, {-0.043211,0.000000}, {0.000000,0.207305}, {-0.042679,0.000000}, {0.000000,0.119232}, {-0.041804,0.000000}, {-0.000000,0.079776}, {-0.040601,0.000000}, {0.000000,0.056643}, {-0.039093,0.000000}, {-0.000000,0.041052}, {-0.037308,0.000000}, {-0.000000,0.029645}, {-0.035278,0.000000}, {0.000000,0.020868}, {-0.033039,-0.000000}, {0.000000,0.013906}, {-0.030631,0.000000}, {-0.000000,0.008292}, {-0.028094,0.000000}, {0.000000,0.003735}, {-0.025469,0.000000}, {-0.000000,0.000046}, {-0.022800,-0.000000}, {0.000000,-0.002910}, {-0.020127,0.000000}, {-0.000000,-0.005234}, {-0.017489,-0.000000}, {-0.000000,-0.007006}, {-0.014922,0.000000}, {-0.000000,-0.008294}, {-0.012459,0.000000}, {0.000000,-0.009158}, {-0.010130,0.000000}, {-0.000000,-0.009653}, {-0.007957,0.000000}, {-0.000000,-0.009829}, {-0.005962,0.000000}, {-0.000000,-0.009736}, {-0.004158,-0.000000}, {0.000000,-0.009418}, {-0.002556,0.000000}, {0.000000,-0.008919}, {-0.001160,-0.000000}, {-0.000000,-0.008279}, {0.000029,0.000000}, {-0.000000,-0.007538}, {0.001016,-0.000000}, {-0.000000,-0.006728}, {0.001808,0.000000}, {-0.000000,-0.005883}, {0.002417,0.000000}, {-0.000000,-0.005028}, {0.002856,0.000000}, {-0.000000,-0.004188}, {0.003141,0.000000}, {0.000000,-0.003384}, {0.003291,-0.000000}, {-0.000000,-0.002630}, {0.003322,0.000000}, {-0.000000,-0.001940}, {0.003255,0.000000}, {0.000000,-0.001322}, {0.003109,0.000000}, {0.000000,-0.000782}, {0.002900,0.000000}, {-0.000000,-0.000321}, {0.002646,0.000000}, {0.000000,0.000060}, {0.002363,0.000000}, {-0.000000,0.000364}, {0.002064,0.000000}, {0.000000,0.000597}, {0.001762,-0.000000}, {-0.000000,0.000763}, {0.001466,-0.000000}, {0.000000,0.000871}, {0.001186,-0.000000}, {-0.000000,0.000927}, {0.000927,0.000000}, {-0.000000,0.000940}, {0.000693,0.000000}, {0.000000,0.000918}, {0.000488,0.000000}, {-0.000000,0.000870}, {0.000313,0.000000}, {-0.000000,0.000801}, {0.000168,0.000000}, {0.000000,0.000719}, {0.000052,-0.000000}, {-0.000000,0.000630}, {-0.000038,0.000000}, {-0.000000,0.000539}, {-0.000103,-0.000000}, {0.000000,0.000450}, {-0.000147,0.000000}, {-0.000000,0.000365}, {-0.000173,0.000000}, {0.000000,0.000288}, {-0.000184,0.000000}, {-0.000000,0.000219}, {-0.000183,0.000000}, {0.000000,0.000160}, {-0.000174,0.000000}, {-0.000000,0.000111}, {-0.000159,0.000000}, {-0.000000,0.000071}, {-0.000140,0.000000}, {0.000000,0.000040}, {-0.000119,0.000000}, {0.000000,0.000017}, {-0.000098,-0.000000}, {0.000000,0.000001}, {-0.000078,-0.000000}, {0.000000,-0.000009}, {-0.000060,-0.000000}, {0.000000,-0.000015}, {-0.000045,-0.000000}, {-0.000000,-0.000017}, {-0.000032,-0.000000}, {0.000000,-0.000016}, {-0.000021,-0.000000}, {-0.000000,-0.000014}, {-0.000013,-0.000000}, {-0.000000,-0.000012}, {-0.000008,-0.000000}, {0.000000,-0.000008}, {-0.000004,0.000000} };codec2-1.0.1/src/insert_errors.c000066400000000000000000000046701412132000500164760ustar00rootroot00000000000000/*---------------------------------------------------------------------------*\ FILE........: insert_errors.c AUTHOR......: David Rowe DATE CREATED: 20/2/2013 Inserts errors into a Codec 2 bit stream using error files. All files are in one bit per char format. \*---------------------------------------------------------------------------*/ /* Copyright (C) 2013 David Rowe All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 2.1, as published by the Free Software Foundation. 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 Lesser General Public License along with this program; if not, see . */ #include "codec2.h" #include #include #include #include #include int main(int argc, char *argv[]) { FILE *fin; FILE *fout; FILE *ferror; unsigned char abit, error_bit; int errors, bits; if (argc < 3) { printf("%s InputBitFile OutputBitFile ErrorFile\n", argv[0]); exit(1); } if (strcmp(argv[1], "-") == 0) fin = stdin; else if ( (fin = fopen(argv[1],"rb")) == NULL ) { fprintf(stderr, "Error opening input bit file: %s: %s.\n", argv[1], strerror(errno)); exit(1); } if (strcmp(argv[2], "-") == 0) fout = stdout; else if ( (fout = fopen(argv[2],"wb")) == NULL ) { fprintf(stderr, "Error opening output speech file: %s: %s.\n", argv[2], strerror(errno)); exit(1); } if ((ferror = fopen(argv[3],"rb")) == NULL ) { fprintf(stderr, "Error opening error file: %s: %s.\n", argv[3], strerror(errno)); exit(1); } bits = errors = 0; while(fread(&abit, sizeof(char), 1, fin) == 1) { bits++; if (fread(&error_bit, sizeof(char), 1, ferror)) { abit ^= error_bit; errors += error_bit; } fwrite(&abit, sizeof(char), 1, fout); if (fout == stdout) fflush(stdout); } fclose(fin); fclose(fout); fclose(ferror); fprintf(stderr,"bits: %d errors: %d ber: %4.3f\n", bits, errors, (float)errors/bits); return 0; } codec2-1.0.1/src/interldpc.c000066400000000000000000000147331412132000500155630ustar00rootroot00000000000000/*---------------------------------------------------------------------------*\ FILE........: interldpc.c AUTHOR......: David Rowe DATE CREATED: April 2018 Helper functions for LDPC waveforms. \*---------------------------------------------------------------------------*/ /* Copyright (C) 2018 David Rowe All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 2.1, as published by the Free Software Foundation. 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 Lesser General Public License along with this program; if not, see . */ #include #include #include #include #include #include #include "interldpc.h" #include "ofdm_internal.h" #include "mpdecode_core.h" #include "gp_interleaver.h" void freedv_pack(unsigned char *bytes, unsigned char *bits, int nbits); void freedv_unpack(unsigned char *bits, unsigned char *bytes, int nbits); unsigned short freedv_crc16_unpacked(unsigned char *bits, int nbits); void set_up_ldpc_constants(struct LDPC *ldpc, int code_length, int parity_bits) { /* following provided for convenience and to match Octave variable names */ /* these remain fixed */ ldpc->ldpc_data_bits_per_frame = code_length - parity_bits; ldpc->ldpc_coded_bits_per_frame = code_length; /* in the case there are some unused data bits, these may be modified to be less that ldpc->ldpc_xxx versions above. We place known bits in the unused data bit positions, which make the code stronger, and allow us to mess with different speech codec bit allocations without designing new LDPC codes. */ ldpc->data_bits_per_frame = ldpc->ldpc_data_bits_per_frame; ldpc->coded_bits_per_frame = ldpc->ldpc_coded_bits_per_frame; } void set_data_bits_per_frame(struct LDPC *ldpc, int new_data_bits_per_frame) { ldpc->data_bits_per_frame = new_data_bits_per_frame; ldpc->coded_bits_per_frame = ldpc->data_bits_per_frame + ldpc->NumberParityBits; } void ldpc_encode_frame(struct LDPC *ldpc, int codeword[], unsigned char tx_bits_char[]) { unsigned char pbits[ldpc->NumberParityBits]; int i, j; if (ldpc->data_bits_per_frame == ldpc->ldpc_data_bits_per_frame) { /* we have enough data bits to fill the codeword */ encode(ldpc, tx_bits_char, pbits); } else { unsigned char tx_bits_char_padded[ldpc->ldpc_data_bits_per_frame]; /* some unused data bits, set these to known values to strengthen code */ memcpy(tx_bits_char_padded, tx_bits_char, ldpc->data_bits_per_frame); for (i = ldpc->data_bits_per_frame; i < ldpc->ldpc_data_bits_per_frame; i++) tx_bits_char_padded[i] = 1; encode(ldpc, tx_bits_char_padded, pbits); } /* output codeword is concatenation of (used) data bits and parity bits, we don't bother sending unused (known) data bits */ for (i = 0; i < ldpc->data_bits_per_frame; i++) { codeword[i] = tx_bits_char[i]; } for (j = 0; j < ldpc->NumberParityBits; i++, j++) { codeword[i] = pbits[j]; } } void qpsk_modulate_frame(COMP tx_symbols[], int codeword[], int n) { int s, i; int dibit[2]; complex float qpsk_symb; for (s = 0, i = 0; i < n; s += 2, i++) { dibit[0] = codeword[s + 1] & 0x1; dibit[1] = codeword[s] & 0x1; qpsk_symb = qpsk_mod(dibit); tx_symbols[i].real = crealf(qpsk_symb); tx_symbols[i].imag = cimagf(qpsk_symb); } } /* Count uncoded (raw) bit errors over frame, note we don't include UW of txt bits as this is done after we dissassemmble the frame */ int count_uncoded_errors(struct LDPC *ldpc, struct OFDM_CONFIG *config, COMP codeword_symbols_de[], int crc16) { int i, Nerrs; int coded_syms_per_frame = ldpc->coded_bits_per_frame/config->bps; int coded_bits_per_frame = ldpc->coded_bits_per_frame; int data_bits_per_frame = ldpc->data_bits_per_frame; int rx_bits_raw[coded_bits_per_frame]; /* generate test codeword from known payload data bits */ int test_codeword[coded_bits_per_frame]; uint16_t r[data_bits_per_frame]; uint8_t tx_bits[data_bits_per_frame]; ofdm_rand(r, data_bits_per_frame); for (i = 0; i < data_bits_per_frame; i++) { tx_bits[i] = r[i] > 16384; } if (crc16) { uint16_t tx_crc16 = freedv_crc16_unpacked(tx_bits, data_bits_per_frame - 16); uint8_t tx_crc16_bytes[] = { tx_crc16 >> 8, tx_crc16 & 0xff }; freedv_unpack(tx_bits + data_bits_per_frame - 16, tx_crc16_bytes, 16); } ldpc_encode_frame(ldpc, test_codeword, tx_bits); for (i = 0; i < coded_syms_per_frame; i++) { int bits[2]; complex float s = codeword_symbols_de[i].real + I * codeword_symbols_de[i].imag; qpsk_demod(s, bits); rx_bits_raw[config->bps * i] = bits[1]; rx_bits_raw[config->bps * i + 1] = bits[0]; } Nerrs = 0; for (i = 0; i < coded_bits_per_frame; i++) { if (test_codeword[i] != rx_bits_raw[i]) Nerrs++; } return Nerrs; } int count_errors(uint8_t tx_bits[], uint8_t rx_bits[], int n) { int i; int Nerrs = 0; for (i = 0; i < n; i++) { if (tx_bits[i] != rx_bits[i]) { Nerrs++; } } return Nerrs; } /* Given an array of tx_bits, LDPC encodes, interleaves, and OFDM modulates */ void ofdm_ldpc_interleave_tx(struct OFDM *ofdm, struct LDPC *ldpc, complex float tx_sams[], uint8_t tx_bits[], uint8_t txt_bits[]) { int Npayloadsymsperpacket = ldpc->coded_bits_per_frame/ofdm->bps; int Npayloadbitsperpacket = ldpc->coded_bits_per_frame; int Nbitsperpacket = ofdm_get_bits_per_packet(ofdm); int codeword[Npayloadbitsperpacket]; COMP payload_symbols[Npayloadsymsperpacket]; COMP payload_symbols_inter[Npayloadsymsperpacket]; complex float tx_symbols[Nbitsperpacket/ ofdm->bps]; ldpc_encode_frame(ldpc, codeword, tx_bits); qpsk_modulate_frame(payload_symbols, codeword, Npayloadsymsperpacket); gp_interleave_comp(payload_symbols_inter, payload_symbols, Npayloadsymsperpacket); ofdm_assemble_qpsk_modem_packet_symbols(ofdm, tx_symbols, payload_symbols_inter, txt_bits); ofdm_txframe(ofdm, tx_sams, tx_symbols); } codec2-1.0.1/src/interldpc.h000066400000000000000000000032601412132000500155610ustar00rootroot00000000000000/*---------------------------------------------------------------------------*\ FILE........: interldpc.h AUTHOR......: David Rowe DATE CREATED: April 2018 Helper functions for interleaved LDPC modems. \*---------------------------------------------------------------------------*/ /* Copyright (C) 2018 David Rowe All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 2.1, as published by the Free Software Foundation. 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 Lesser General Public License along with this program; if not, see . */ #ifndef __INTERLDPC__ #define __INTERLDPC__ #include #include "comp.h" #include "mpdecode_core.h" #include "ofdm_internal.h" void set_up_ldpc_constants(struct LDPC *ldpc, int code_length, int parity_bits); void set_data_bits_per_frame(struct LDPC *ldpc, int new_data_bits_per_frame); void ldpc_encode_frame(struct LDPC *ldpc, int codeword[], unsigned char tx_bits_char[]); void qpsk_modulate_frame(COMP tx_symbols[], int codeword[], int n); int count_uncoded_errors(struct LDPC *ldpc, struct OFDM_CONFIG *config, COMP codeword_symbols_de[], int crc16); int count_errors(uint8_t tx_bits[], uint8_t rx_bits[], int n); void ofdm_ldpc_interleave_tx(struct OFDM *ofdm, struct LDPC *ldpc, complex float tx_sams[], uint8_t tx_bits[], uint8_t txt_bits[]); #endif codec2-1.0.1/src/interp.c000066400000000000000000000231061412132000500150720ustar00rootroot00000000000000/*---------------------------------------------------------------------------*\ FILE........: interp.c AUTHOR......: David Rowe DATE CREATED: 9/10/09 Interpolation of 20ms frames to 10ms frames. \*---------------------------------------------------------------------------*/ /* Copyright (C) 2009 David Rowe All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 2.1, as published by the Free Software Foundation. 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 Lesser General Public License along with this program; if not, see . */ #include #include #include #include #include "defines.h" #include "interp.h" #include "lsp.h" #include "quantise.h" float sample_log_amp(MODEL *model, float w); #if 0 /*---------------------------------------------------------------------------*\ FUNCTION....: interp() AUTHOR......: David Rowe DATE CREATED: 22/8/10 Given two frames decribed by model parameters 20ms apart, determines the model parameters of the 10ms frame between them. Assumes voicing is available for middle (interpolated) frame. Outputs are amplitudes and Wo for the interpolated frame. This version can interpolate the amplitudes between two frames of different Wo and L. This version works by log linear interpolation, but listening tests showed it creates problems in background noise, e.g. hts2a and mmt1. When this function is used (--dec mode) bg noise appears to be amplitude modulated, and gets louder. The interp_lsp() function below seems to do a better job. \*---------------------------------------------------------------------------*/ void interpolate( MODEL *interp, /* interpolated model params */ MODEL *prev, /* previous frames model params */ MODEL *next, /* next frames model params */ float Wo_min ) { int l; float w,log_amp; /* Wo depends on voicing of this and adjacent frames */ if (interp->voiced) { if (prev->voiced && next->voiced) interp->Wo = (prev->Wo + next->Wo)/2.0; if (!prev->voiced && next->voiced) interp->Wo = next->Wo; if (prev->voiced && !next->voiced) interp->Wo = prev->Wo; } else { interp->Wo = Wo_min; } interp->L = PI/interp->Wo; /* Interpolate amplitudes using linear interpolation in log domain */ for(l=1; l<=interp->L; l++) { w = l*interp->Wo; log_amp = (sample_log_amp(prev, w) + sample_log_amp(next, w))/2.0; interp->A[l] = powf(10.0, log_amp); } } #endif /*---------------------------------------------------------------------------*\ FUNCTION....: sample_log_amp() AUTHOR......: David Rowe DATE CREATED: 22/8/10 Samples the amplitude envelope at an arbitrary frequency w. Uses linear interpolation in the log domain to sample between harmonic amplitudes. \*---------------------------------------------------------------------------*/ float sample_log_amp(MODEL *model, float w) { int m; float f, log_amp; assert(w > 0.0); assert (w <= PI); m = floorf(w/model->Wo + 0.5); f = (w - m*model->Wo)/w; assert(f <= 1.0); if (m < 1) { log_amp = f*log10f(model->A[1] + 1E-6); } else if ((m+1) > model->L) { log_amp = (1.0-f)*log10f(model->A[model->L] + 1E-6); } else { log_amp = (1.0-f)*log10f(model->A[m] + 1E-6) + f*log10f(model->A[m+1] + 1E-6); } return log_amp; } #ifdef NOT_NEEDED /*---------------------------------------------------------------------------*\ FUNCTION....: interp_lsp() AUTHOR......: David Rowe DATE CREATED: 10 Nov 2010 Given two frames decribed by model parameters 20ms apart, determines the model parameters of the 10ms frame between them. Assumes voicing is available for middle (interpolated) frame. Outputs are amplitudes and Wo for the interpolated frame. This version uses interpolation of LSPs, seems to do a better job with bg noise. \*---------------------------------------------------------------------------*/ void interpolate_lsp( codec2_fft_cfg fft_fwd_cfg, MODEL *interp, /* interpolated model params */ MODEL *prev, /* previous frames model params */ MODEL *next, /* next frames model params */ float *prev_lsps, /* previous frames LSPs */ float prev_e, /* previous frames LPC energy */ float *next_lsps, /* next frames LSPs */ float next_e, /* next frames LPC energy */ float *ak_interp, /* interpolated aks for this frame */ float *lsps_interp, /* interpolated lsps for this frame */ float Wo_min ) { int i; float e; float snr; /* trap corner case where V est is probably wrong */ if (interp->voiced && !prev->voiced && !next->voiced) { interp->voiced = 0; } /* Wo depends on voicing of this and adjacent frames */ if (interp->voiced) { if (prev->voiced && next->voiced) interp->Wo = (prev->Wo + next->Wo)/2.0; if (!prev->voiced && next->voiced) interp->Wo = next->Wo; if (prev->voiced && !next->voiced) interp->Wo = prev->Wo; } else { interp->Wo = Wo_min; } interp->L = PI/interp->Wo; //printf(" interp: prev_v: %d next_v: %d prev_Wo: %f next_Wo: %f\n", // prev->voiced, next->voiced, prev->Wo, next->Wo); //printf(" interp: Wo: %1.5f L: %d\n", interp->Wo, interp->L); /* interpolate LSPs */ for(i=0; iA[1]); } #endif /*---------------------------------------------------------------------------*\ FUNCTION....: interp_Wo() AUTHOR......: David Rowe DATE CREATED: 22 May 2012 Interpolates centre 10ms sample of Wo and L samples given two samples 20ms apart. Assumes voicing is available for centre (interpolated) frame. \*---------------------------------------------------------------------------*/ void interp_Wo( MODEL *interp, /* interpolated model params */ MODEL *prev, /* previous frames model params */ MODEL *next, /* next frames model params */ float Wo_min ) { interp_Wo2(interp, prev, next, 0.5, Wo_min); } /*---------------------------------------------------------------------------*\ FUNCTION....: interp_Wo2() AUTHOR......: David Rowe DATE CREATED: 22 May 2012 Weighted interpolation of two Wo samples. \*---------------------------------------------------------------------------*/ void interp_Wo2( MODEL *interp, /* interpolated model params */ MODEL *prev, /* previous frames model params */ MODEL *next, /* next frames model params */ float weight, float Wo_min ) { /* trap corner case where voicing est is probably wrong */ if (interp->voiced && !prev->voiced && !next->voiced) { interp->voiced = 0; } /* Wo depends on voicing of this and adjacent frames */ if (interp->voiced) { if (prev->voiced && next->voiced) interp->Wo = (1.0 - weight)*prev->Wo + weight*next->Wo; if (!prev->voiced && next->voiced) interp->Wo = next->Wo; if (prev->voiced && !next->voiced) interp->Wo = prev->Wo; } else { interp->Wo = Wo_min; } interp->L = PI/interp->Wo; } /*---------------------------------------------------------------------------*\ FUNCTION....: interp_energy() AUTHOR......: David Rowe DATE CREATED: 22 May 2012 Interpolates centre 10ms sample of energy given two samples 20ms apart. \*---------------------------------------------------------------------------*/ float interp_energy(float prev_e, float next_e) { //return powf(10.0, (log10f(prev_e) + log10f(next_e))/2.0); return sqrtf(prev_e * next_e); //looks better is math. identical and faster math } /*---------------------------------------------------------------------------*\ FUNCTION....: interp_energy2() AUTHOR......: David Rowe DATE CREATED: 22 May 2012 Interpolates centre 10ms sample of energy given two samples 20ms apart. \*---------------------------------------------------------------------------*/ float interp_energy2(float prev_e, float next_e, float weight) { return POW10F((1.0 - weight)*log10f(prev_e) + weight*log10f(next_e)); } /*---------------------------------------------------------------------------*\ FUNCTION....: interpolate_lsp_ver2() AUTHOR......: David Rowe DATE CREATED: 22 May 2012 Weighted interpolation of LSPs. \*---------------------------------------------------------------------------*/ void interpolate_lsp_ver2(float interp[], float prev[], float next[], float weight, int order) { int i; for(i=0; i. */ #ifndef __INTERP__ #define __INTERP__ #include "kiss_fft.h" void interpolate(MODEL *interp, MODEL *prev, MODEL *next); void interpolate_lsp(kiss_fft_cfg fft_dec_cfg, MODEL *interp, MODEL *prev, MODEL *next, float *prev_lsps, float prev_e, float *next_lsps, float next_e, float *ak_interp, float *lsps_interp, float Wo_min); void interp_Wo(MODEL *interp, MODEL *prev, MODEL *next, float Wo_min); void interp_Wo2(MODEL *interp, MODEL *prev, MODEL *next, float weight, float Wo_min); float interp_energy(float prev, float next); float interp_energy2(float prev, float next, float weight); void interpolate_lsp_ver2(float interp[], float prev[], float next[], float weight, int order); #endif codec2-1.0.1/src/kiss_fft.c000066400000000000000000000305541412132000500154060ustar00rootroot00000000000000/* Copyright (c) 2003-2010, Mark Borgerding All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the author nor the names of any contributors may be used to endorse or promote products derived from this software without specific prior written permission. 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 OWNER OR CONTRIBUTORS 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. */ #include "_kiss_fft_guts.h" /* The guts header contains all the multiplication and addition macros that are defined for fixed or floating point complex numbers. It also delares the kf_ internal functions. */ static void kf_bfly2( kiss_fft_cpx * Fout, const size_t fstride, const kiss_fft_cfg st, int m ) { kiss_fft_cpx * Fout2; kiss_fft_cpx * tw1 = st->twiddles; kiss_fft_cpx t; Fout2 = Fout + m; do{ C_FIXDIV(*Fout,2); C_FIXDIV(*Fout2,2); C_MUL (t, *Fout2 , *tw1); tw1 += fstride; C_SUB( *Fout2 , *Fout , t ); C_ADDTO( *Fout , t ); ++Fout2; ++Fout; }while (--m); } static void kf_bfly4( kiss_fft_cpx * Fout, const size_t fstride, const kiss_fft_cfg st, const size_t m ) { kiss_fft_cpx *tw1,*tw2,*tw3; kiss_fft_cpx scratch[6]; size_t k=m; const size_t m2=2*m; const size_t m3=3*m; tw3 = tw2 = tw1 = st->twiddles; do { C_FIXDIV(*Fout,4); C_FIXDIV(Fout[m],4); C_FIXDIV(Fout[m2],4); C_FIXDIV(Fout[m3],4); C_MUL(scratch[0],Fout[m] , *tw1 ); C_MUL(scratch[1],Fout[m2] , *tw2 ); C_MUL(scratch[2],Fout[m3] , *tw3 ); C_SUB( scratch[5] , *Fout, scratch[1] ); C_ADDTO(*Fout, scratch[1]); C_ADD( scratch[3] , scratch[0] , scratch[2] ); C_SUB( scratch[4] , scratch[0] , scratch[2] ); C_SUB( Fout[m2], *Fout, scratch[3] ); tw1 += fstride; tw2 += fstride*2; tw3 += fstride*3; C_ADDTO( *Fout , scratch[3] ); if(st->inverse) { Fout[m].r = scratch[5].r - scratch[4].i; Fout[m].i = scratch[5].i + scratch[4].r; Fout[m3].r = scratch[5].r + scratch[4].i; Fout[m3].i = scratch[5].i - scratch[4].r; }else{ Fout[m].r = scratch[5].r + scratch[4].i; Fout[m].i = scratch[5].i - scratch[4].r; Fout[m3].r = scratch[5].r - scratch[4].i; Fout[m3].i = scratch[5].i + scratch[4].r; } ++Fout; }while(--k); } static void kf_bfly3( kiss_fft_cpx * Fout, const size_t fstride, const kiss_fft_cfg st, size_t m ) { size_t k=m; const size_t m2 = 2*m; kiss_fft_cpx *tw1,*tw2; kiss_fft_cpx scratch[5]; kiss_fft_cpx epi3; epi3 = st->twiddles[fstride*m]; tw1=tw2=st->twiddles; do{ C_FIXDIV(*Fout,3); C_FIXDIV(Fout[m],3); C_FIXDIV(Fout[m2],3); C_MUL(scratch[1],Fout[m] , *tw1); C_MUL(scratch[2],Fout[m2] , *tw2); C_ADD(scratch[3],scratch[1],scratch[2]); C_SUB(scratch[0],scratch[1],scratch[2]); tw1 += fstride; tw2 += fstride*2; Fout[m].r = Fout->r - HALF_OF(scratch[3].r); Fout[m].i = Fout->i - HALF_OF(scratch[3].i); C_MULBYSCALAR( scratch[0] , epi3.i ); C_ADDTO(*Fout,scratch[3]); Fout[m2].r = Fout[m].r + scratch[0].i; Fout[m2].i = Fout[m].i - scratch[0].r; Fout[m].r -= scratch[0].i; Fout[m].i += scratch[0].r; ++Fout; }while(--k); } static void kf_bfly5( kiss_fft_cpx * Fout, const size_t fstride, const kiss_fft_cfg st, int m ) { kiss_fft_cpx *Fout0,*Fout1,*Fout2,*Fout3,*Fout4; int u; kiss_fft_cpx scratch[13]; kiss_fft_cpx * twiddles = st->twiddles; kiss_fft_cpx *tw; kiss_fft_cpx ya,yb; ya = twiddles[fstride*m]; yb = twiddles[fstride*2*m]; Fout0=Fout; Fout1=Fout0+m; Fout2=Fout0+2*m; Fout3=Fout0+3*m; Fout4=Fout0+4*m; tw=st->twiddles; for ( u=0; ur += scratch[7].r + scratch[8].r; Fout0->i += scratch[7].i + scratch[8].i; scratch[5].r = scratch[0].r + S_MUL(scratch[7].r,ya.r) + S_MUL(scratch[8].r,yb.r); scratch[5].i = scratch[0].i + S_MUL(scratch[7].i,ya.r) + S_MUL(scratch[8].i,yb.r); scratch[6].r = S_MUL(scratch[10].i,ya.i) + S_MUL(scratch[9].i,yb.i); scratch[6].i = -S_MUL(scratch[10].r,ya.i) - S_MUL(scratch[9].r,yb.i); C_SUB(*Fout1,scratch[5],scratch[6]); C_ADD(*Fout4,scratch[5],scratch[6]); scratch[11].r = scratch[0].r + S_MUL(scratch[7].r,yb.r) + S_MUL(scratch[8].r,ya.r); scratch[11].i = scratch[0].i + S_MUL(scratch[7].i,yb.r) + S_MUL(scratch[8].i,ya.r); scratch[12].r = - S_MUL(scratch[10].i,yb.i) + S_MUL(scratch[9].i,ya.i); scratch[12].i = S_MUL(scratch[10].r,yb.i) - S_MUL(scratch[9].r,ya.i); C_ADD(*Fout2,scratch[11],scratch[12]); C_SUB(*Fout3,scratch[11],scratch[12]); ++Fout0;++Fout1;++Fout2;++Fout3;++Fout4; } } /* perform the butterfly for one stage of a mixed radix FFT */ static void kf_bfly_generic( kiss_fft_cpx * Fout, const size_t fstride, const kiss_fft_cfg st, int m, int p ) { int u,k,q1,q; kiss_fft_cpx * twiddles = st->twiddles; kiss_fft_cpx t; int Norig = st->nfft; kiss_fft_cpx * scratch = (kiss_fft_cpx*)KISS_FFT_TMP_ALLOC(sizeof(kiss_fft_cpx)*p); for ( u=0; u=Norig) twidx-=Norig; C_MUL(t,scratch[q] , twiddles[twidx] ); C_ADDTO( Fout[ k ] ,t); } k += m; } } KISS_FFT_TMP_FREE(scratch); } static void kf_work( kiss_fft_cpx * Fout, const kiss_fft_cpx * f, const size_t fstride, int in_stride, int * factors, const kiss_fft_cfg st ) { kiss_fft_cpx * Fout_beg=Fout; const int p=*factors++; /* the radix */ const int m=*factors++; /* stage's fft length/p */ const kiss_fft_cpx * Fout_end = Fout + p*m; #ifdef _OPENMP // use openmp extensions at the // top-level (not recursive) if (fstride==1 && p<=5) { int k; // execute the p different work units in different threads # pragma omp parallel for for (k=0;k floor_sqrt) p = n; /* no more factors, skip to end */ } n /= p; *facbuf++ = p; *facbuf++ = n; } while (n > 1); } /* * * User-callable function to allocate all necessary storage space for the fft. * * The return value is a contiguous block of memory, allocated with malloc. As such, * It can be freed with free(), rather than a kiss_fft-specific function. * */ kiss_fft_cfg kiss_fft_alloc(int nfft,int inverse_fft,void * mem,size_t * lenmem ) { kiss_fft_cfg st=NULL; size_t memneeded = sizeof(struct kiss_fft_state) + sizeof(kiss_fft_cpx)*(nfft-1); /* twiddle factors*/ if ( lenmem==NULL ) { st = ( kiss_fft_cfg)KISS_FFT_MALLOC( memneeded ); }else{ if (mem != NULL && *lenmem >= memneeded) st = (kiss_fft_cfg)mem; *lenmem = memneeded; } if (st) { int i; st->nfft=nfft; st->inverse = inverse_fft; for (i=0;iinverse) phase *= -1; kf_cexp(st->twiddles+i, phase ); } kf_factor(nfft,st->factors); } return st; } void kiss_fft_stride(kiss_fft_cfg st,const kiss_fft_cpx *fin,kiss_fft_cpx *fout,int in_stride) { if (fin == fout) { //NOTE: this is not really an in-place FFT algorithm. //It just performs an out-of-place FFT into a temp buffer kiss_fft_cpx * tmpbuf = (kiss_fft_cpx*)KISS_FFT_TMP_ALLOC( sizeof(kiss_fft_cpx)*st->nfft); kf_work(tmpbuf,fin,1,in_stride, st->factors,st); memcpy(fout,tmpbuf,sizeof(kiss_fft_cpx)*st->nfft); KISS_FFT_TMP_FREE(tmpbuf); }else{ kf_work( fout, fin, 1,in_stride, st->factors,st ); } } void kiss_fft(kiss_fft_cfg cfg,const kiss_fft_cpx *fin,kiss_fft_cpx *fout) { kiss_fft_stride(cfg,fin,fout,1); } void kiss_fft_cleanup(void) { // nothing needed any more } int kiss_fft_next_fast_size(int n) { while(1) { int m=n; while ( (m%2) == 0 ) m/=2; while ( (m%3) == 0 ) m/=3; while ( (m%5) == 0 ) m/=5; if (m<=1) break; /* n is completely factorable by twos, threes, and fives */ n++; } return n; } codec2-1.0.1/src/kiss_fft.h000066400000000000000000000063241412132000500154110ustar00rootroot00000000000000#ifndef KISS_FFT_H #define KISS_FFT_H #include #include #include #include #ifdef __cplusplus extern "C" { #endif /* ATTENTION! If you would like a : -- a utility that will handle the caching of fft objects -- real-only (no imaginary time component ) FFT -- a multi-dimensional FFT -- a command-line utility to perform ffts -- a command-line utility to perform fast-convolution filtering Then see kfc.h kiss_fftr.h kiss_fftnd.h fftutil.c kiss_fastfir.c in the tools/ directory. */ #ifdef USE_SIMD # include # define kiss_fft_scalar __m128 #define KISS_FFT_MALLOC(nbytes) _mm_malloc(nbytes,16) #define KISS_FFT_FREE _mm_free #else #define KISS_FFT_MALLOC malloc #define KISS_FFT_FREE free #endif #ifdef FIXED_POINT #include # if (FIXED_POINT == 32) # define kiss_fft_scalar int32_t # else # define kiss_fft_scalar int16_t # endif #else # ifndef kiss_fft_scalar /* default is float */ # define kiss_fft_scalar float # endif #endif typedef struct { kiss_fft_scalar r; kiss_fft_scalar i; }kiss_fft_cpx; typedef struct kiss_fft_state* kiss_fft_cfg; /* * kiss_fft_alloc * * Initialize a FFT (or IFFT) algorithm's cfg/state buffer. * * typical usage: kiss_fft_cfg mycfg=kiss_fft_alloc(1024,0,NULL,NULL); * * The return value from fft_alloc is a cfg buffer used internally * by the fft routine or NULL. * * If lenmem is NULL, then kiss_fft_alloc will allocate a cfg buffer using malloc. * The returned value should be free()d when done to avoid memory leaks. * * The state can be placed in a user supplied buffer 'mem': * If lenmem is not NULL and mem is not NULL and *lenmem is large enough, * then the function places the cfg in mem and the size used in *lenmem * and returns mem. * * If lenmem is not NULL and ( mem is NULL or *lenmem is not large enough), * then the function returns NULL and places the minimum cfg * buffer size in *lenmem. * */ kiss_fft_cfg kiss_fft_alloc(int nfft,int inverse_fft,void * mem,size_t * lenmem); /* * kiss_fft(cfg,in_out_buf) * * Perform an FFT on a complex input buffer. * for a forward FFT, * fin should be f[0] , f[1] , ... ,f[nfft-1] * fout will be F[0] , F[1] , ... ,F[nfft-1] * Note that each element is complex and can be accessed like f[k].r and f[k].i * */ void kiss_fft(kiss_fft_cfg cfg,const kiss_fft_cpx *fin,kiss_fft_cpx *fout); /* A more generic version of the above function. It reads its input from every Nth sample. * */ void kiss_fft_stride(kiss_fft_cfg cfg,const kiss_fft_cpx *fin,kiss_fft_cpx *fout,int fin_stride); /* If kiss_fft_alloc allocated a buffer, it is one contiguous buffer and can be simply free()d when no longer needed*/ #define kiss_fft_free free /* Cleans up some memory that gets managed internally. Not necessary to call, but it might clean up your compiler output to call this before you exit. */ void kiss_fft_cleanup(void); /* * Returns the smallest integer k, such that k>=n and k has only "fast" factors (2,3,5) */ int kiss_fft_next_fast_size(int n); /* for real ffts, we need an even size */ #define kiss_fftr_next_fast_size_real(n) \ (kiss_fft_next_fast_size( ((n)+1)>>1)<<1) #ifdef __cplusplus } #endif #endif codec2-1.0.1/src/kiss_fftr.c000066400000000000000000000132261412132000500155650ustar00rootroot00000000000000/* Copyright (c) 2003-2004, Mark Borgerding All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the author nor the names of any contributors may be used to endorse or promote products derived from this software without specific prior written permission. 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 OWNER OR CONTRIBUTORS 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. */ #include "kiss_fftr.h" #include "_kiss_fft_guts.h" #include "assert.h" struct kiss_fftr_state{ kiss_fft_cfg substate; kiss_fft_cpx * tmpbuf; kiss_fft_cpx * super_twiddles; #ifdef USE_SIMD void * pad; #endif }; kiss_fftr_cfg kiss_fftr_alloc(int nfft,int inverse_fft,void * mem,size_t * lenmem) { int i; kiss_fftr_cfg st = NULL; size_t subsize, memneeded; if (nfft & 1) { fprintf(stderr,"Real FFT optimization must be even.\n"); return NULL; } nfft >>= 1; kiss_fft_alloc (nfft, inverse_fft, NULL, &subsize); memneeded = sizeof(struct kiss_fftr_state) + subsize + sizeof(kiss_fft_cpx) * ( nfft * 3 / 2); if (lenmem == NULL) { st = (kiss_fftr_cfg) KISS_FFT_MALLOC (memneeded); } else { if (*lenmem >= memneeded) st = (kiss_fftr_cfg) mem; *lenmem = memneeded; } if (!st) return NULL; st->substate = (kiss_fft_cfg) (st + 1); /*just beyond kiss_fftr_state struct */ st->tmpbuf = (kiss_fft_cpx *) (((char *) st->substate) + subsize); st->super_twiddles = st->tmpbuf + nfft; kiss_fft_alloc(nfft, inverse_fft, st->substate, &subsize); for (i = 0; i < nfft/2; ++i) { float phase = -3.14159265358979323846264338327 * ((float) (i+1) / nfft + .5); if (inverse_fft) phase *= -1; kf_cexp (st->super_twiddles+i,phase); } return st; } void kiss_fftr(kiss_fftr_cfg st,const kiss_fft_scalar *timedata,kiss_fft_cpx *freqdata) { /* input buffer timedata is stored row-wise */ int k,ncfft; kiss_fft_cpx fpnk,fpk,f1k,f2k,tw,tdc; assert(st->substate->inverse==0); ncfft = st->substate->nfft; /*perform the parallel fft of two real signals packed in real,imag*/ kiss_fft( st->substate , (const kiss_fft_cpx*)timedata, st->tmpbuf ); /* The real part of the DC element of the frequency spectrum in st->tmpbuf * contains the sum of the even-numbered elements of the input time sequence * The imag part is the sum of the odd-numbered elements * * The sum of tdc.r and tdc.i is the sum of the input time sequence. * yielding DC of input time sequence * The difference of tdc.r - tdc.i is the sum of the input (dot product) [1,-1,1,-1... * yielding Nyquist bin of input time sequence */ tdc.r = st->tmpbuf[0].r; tdc.i = st->tmpbuf[0].i; C_FIXDIV(tdc,2); CHECK_OVERFLOW_OP(tdc.r ,+, tdc.i); CHECK_OVERFLOW_OP(tdc.r ,-, tdc.i); freqdata[0].r = tdc.r + tdc.i; freqdata[ncfft].r = tdc.r - tdc.i; #ifdef USE_SIMD freqdata[ncfft].i = freqdata[0].i = _mm_set1_ps(0); #else freqdata[ncfft].i = freqdata[0].i = 0; #endif for ( k=1;k <= ncfft/2 ; ++k ) { fpk = st->tmpbuf[k]; fpnk.r = st->tmpbuf[ncfft-k].r; fpnk.i = - st->tmpbuf[ncfft-k].i; C_FIXDIV(fpk,2); C_FIXDIV(fpnk,2); C_ADD( f1k, fpk , fpnk ); C_SUB( f2k, fpk , fpnk ); C_MUL( tw , f2k , st->super_twiddles[k-1]); freqdata[k].r = HALF_OF(f1k.r + tw.r); freqdata[k].i = HALF_OF(f1k.i + tw.i); freqdata[ncfft-k].r = HALF_OF(f1k.r - tw.r); freqdata[ncfft-k].i = HALF_OF(tw.i - f1k.i); } } void kiss_fftri(kiss_fftr_cfg st,const kiss_fft_cpx *freqdata,kiss_fft_scalar *timedata) { /* input buffer timedata is stored row-wise */ int k, ncfft; assert(st->substate->inverse == 1); ncfft = st->substate->nfft; st->tmpbuf[0].r = freqdata[0].r + freqdata[ncfft].r; st->tmpbuf[0].i = freqdata[0].r - freqdata[ncfft].r; C_FIXDIV(st->tmpbuf[0],2); for (k = 1; k <= ncfft / 2; ++k) { kiss_fft_cpx fk, fnkc, fek, fok, tmp; fk = freqdata[k]; fnkc.r = freqdata[ncfft - k].r; fnkc.i = -freqdata[ncfft - k].i; C_FIXDIV( fk , 2 ); C_FIXDIV( fnkc , 2 ); C_ADD (fek, fk, fnkc); C_SUB (tmp, fk, fnkc); C_MUL (fok, tmp, st->super_twiddles[k-1]); C_ADD (st->tmpbuf[k], fek, fok); C_SUB (st->tmpbuf[ncfft - k], fek, fok); #ifdef USE_SIMD st->tmpbuf[ncfft - k].i *= _mm_set1_ps(-1.0); #else st->tmpbuf[ncfft - k].i *= -1; #endif } kiss_fft (st->substate, st->tmpbuf, (kiss_fft_cpx *) timedata); } codec2-1.0.1/src/kiss_fftr.h000066400000000000000000000015321412132000500155670ustar00rootroot00000000000000#ifndef KISS_FTR_H #define KISS_FTR_H #include "kiss_fft.h" #ifdef __cplusplus extern "C" { #endif /* Real optimized version can save about 45% cpu time vs. complex fft of a real seq. */ typedef struct kiss_fftr_state *kiss_fftr_cfg; kiss_fftr_cfg kiss_fftr_alloc(int nfft,int inverse_fft,void * mem, size_t * lenmem); /* nfft must be even If you don't care to allocate space, use mem = lenmem = NULL */ void kiss_fftr(kiss_fftr_cfg cfg,const kiss_fft_scalar *timedata,kiss_fft_cpx *freqdata); /* input timedata has nfft scalar points output freqdata has nfft/2+1 complex points */ void kiss_fftri(kiss_fftr_cfg cfg,const kiss_fft_cpx *freqdata,kiss_fft_scalar *timedata); /* input freqdata has nfft/2+1 complex points output timedata has nfft scalar points */ #define kiss_fftr_free free #ifdef __cplusplus } #endif #endif codec2-1.0.1/src/ldpc_codes.c000066400000000000000000000140001412132000500156610ustar00rootroot00000000000000/* FILE...: ldpc_codes.c AUTHOR.: David Rowe CREATED: July 2020 Array of LDPC codes used for various Codec2 waveforms. */ #include #include #include "assert.h" #include "ldpc_codes.h" #include "interldpc.h" #include "H_2064_516_sparse.h" #include "HRA_112_112.h" #include "HRAb_396_504.h" #include "H_256_768_22.h" #include "H_256_512_4.h" #include "HRAa_1536_512.h" #include "H_128_256_5.h" #include "HRA_56_56.h" #include "H_4096_8192_3d.h" #include "H_16200_9720.h" #include "H_1024_2048_4f.h" struct LDPC ldpc_codes[] = { /* short rate 1/2 code for FreeDV 700D */ { "HRA_112_112", HRA_112_112_MAX_ITER, 0, 1, 1, HRA_112_112_CODELENGTH, HRA_112_112_NUMBERPARITYBITS, HRA_112_112_NUMBERROWSHCOLS, HRA_112_112_MAX_ROW_WEIGHT, HRA_112_112_MAX_COL_WEIGHT, (uint16_t *)HRA_112_112_H_rows, (uint16_t *)HRA_112_112_H_cols } , /* short rate 1/2 code for FreeDV 700E */ { "HRA_56_56", HRA_56_56_MAX_ITER, 0, 1, 1, HRA_56_56_CODELENGTH, HRA_56_56_NUMBERPARITYBITS, HRA_56_56_NUMBERROWSHCOLS, HRA_56_56_MAX_ROW_WEIGHT, HRA_56_56_MAX_COL_WEIGHT, (uint16_t *)HRA_56_56_H_rows, (uint16_t *)HRA_56_56_H_cols }, #ifndef __EMBEDDED__ /* default Wenet High Alitiude Balloon rate 0.8 code */ { "H_2064_516_sparse", MAX_ITER, 0, 1, 1, CODELENGTH, NUMBERPARITYBITS, NUMBERROWSHCOLS, MAX_ROW_WEIGHT, MAX_COL_WEIGHT, (uint16_t *)H_2064_516_sparse_H_rows, (uint16_t *)H_2064_516_sparse_H_cols }, /* rate 0.8 code used for FreeDV 2020 */ { "HRAb_396_504", HRAb_396_504_MAX_ITER, 0, 1, 1, HRAb_396_504_CODELENGTH, HRAb_396_504_NUMBERPARITYBITS, HRAb_396_504_NUMBERROWSHCOLS, HRAb_396_504_MAX_ROW_WEIGHT, HRAb_396_504_MAX_COL_WEIGHT, (uint16_t *)HRAb_396_504_H_rows, (uint16_t *)HRAb_396_504_H_cols }, /* rate 1/3 code, works at raw BER of 14% */ { "H_256_768_22", H_256_768_22_MAX_ITER, 0, 1, 1, H_256_768_22_CODELENGTH, H_256_768_22_NUMBERPARITYBITS, H_256_768_22_NUMBERROWSHCOLS, H_256_768_22_MAX_ROW_WEIGHT, H_256_768_22_MAX_COL_WEIGHT, (uint16_t *)H_256_768_22_H_rows, (uint16_t *)H_256_768_22_H_cols }, /* used for 4FSK/LLR experiments */ { "H_256_512_4", H_256_512_4_MAX_ITER, 0, 1, 1, H_256_512_4_CODELENGTH, H_256_512_4_NUMBERPARITYBITS, H_256_512_4_NUMBERROWSHCOLS, H_256_512_4_MAX_ROW_WEIGHT, H_256_512_4_MAX_COL_WEIGHT, (uint16_t *)H_256_512_4_H_rows, (uint16_t *)H_256_512_4_H_cols }, /* used for 4FSK/LLR experiments */ { "HRAa_1536_512", HRAa_1536_512_MAX_ITER, 0, 1, 1, HRAa_1536_512_CODELENGTH, HRAa_1536_512_NUMBERPARITYBITS, HRAa_1536_512_NUMBERROWSHCOLS, HRAa_1536_512_MAX_ROW_WEIGHT, HRAa_1536_512_MAX_COL_WEIGHT, (uint16_t *)HRAa_1536_512_H_rows, (uint16_t *)HRAa_1536_512_H_cols }, /* used for 4FSK/LLR experiments */ { "H_128_256_5", H_128_256_5_MAX_ITER, 0, 1, 1, H_128_256_5_CODELENGTH, H_128_256_5_NUMBERPARITYBITS, H_128_256_5_NUMBERROWSHCOLS, H_128_256_5_MAX_ROW_WEIGHT, H_128_256_5_MAX_COL_WEIGHT, (uint16_t *)H_128_256_5_H_rows, (uint16_t *)H_128_256_5_H_cols }, /* Nice long code from Bill VK5DSP - useful for HF data */ { "H_4096_8192_3d", H_4096_8192_3d_MAX_ITER, 0, 1, 1, H_4096_8192_3d_CODELENGTH, H_4096_8192_3d_NUMBERPARITYBITS, H_4096_8192_3d_NUMBERROWSHCOLS, H_4096_8192_3d_MAX_ROW_WEIGHT, H_4096_8192_3d_MAX_COL_WEIGHT, (uint16_t *)H_4096_8192_3d_H_rows, (uint16_t *)H_4096_8192_3d_H_cols }, /* Nice long code from Bill VK5DSP - useful for HF data */ { "H_16200_9720", H_16200_9720_MAX_ITER, 0, 1, 1, H_16200_9720_CODELENGTH, H_16200_9720_NUMBERPARITYBITS, H_16200_9720_NUMBERROWSHCOLS, H_16200_9720_MAX_ROW_WEIGHT, H_16200_9720_MAX_COL_WEIGHT, (uint16_t *)H_16200_9720_H_rows, (uint16_t *)H_16200_9720_H_cols }, /* Another fine code from Bill VK5DSK - also useful for HF data */ { "H_1024_2048_4f", H_1024_2048_4f_MAX_ITER, 0, 1, 1, H_1024_2048_4f_CODELENGTH, H_1024_2048_4f_NUMBERPARITYBITS, H_1024_2048_4f_NUMBERROWSHCOLS, H_1024_2048_4f_MAX_ROW_WEIGHT, H_1024_2048_4f_MAX_COL_WEIGHT, (uint16_t *)H_1024_2048_4f_H_rows, (uint16_t *)H_1024_2048_4f_H_cols } #endif }; int ldpc_codes_num(void) { return sizeof(ldpc_codes)/sizeof(struct LDPC); } void ldpc_codes_list() { fprintf(stderr, "\n"); for(int c=0; cCodeLength, ldpc->NumberParityBits); } codec2-1.0.1/src/ldpc_codes.h000066400000000000000000000006651412132000500157020ustar00rootroot00000000000000/* FILE...: ldpc_codes.h AUTHOR.: David Rowe CREATED: July 2020 Array of LDPC codes used for various Codec2 waveforms. */ #ifndef __LDPC_CODES__ #ifdef __cplusplus extern "C" { #endif #include "mpdecode_core.h" extern struct LDPC ldpc_codes[]; int ldpc_codes_num(void); void ldpc_codes_list(); int ldpc_codes_find(char name[]); void ldpc_codes_setup(struct LDPC *ldpc, char name[]); #ifdef __cplusplus } #endif #endif codec2-1.0.1/src/ldpc_dec.c000066400000000000000000000210201412132000500153170ustar00rootroot00000000000000/* FILE...: ldpc_dec.c AUTHOR.: Matthew C. Valenti, Rohit Iyer Seshadri, David Rowe CREATED: Sep 2016 Command line C LDPC decoder derived from MpDecode.c in the CML library. Allows us to run the same decoder in Octave and C. */ #include #include #include #include #include #include #include #include "mpdecode_core.h" #include "ldpc_codes.h" #include "ofdm_internal.h" int opt_exists(char *argv[], int argc, char opt[]) { int i; for (i=0; i 16384; } for(i=data_bits_per_frame-unused_data_bits; i #include #include #include #include #include #include "mpdecode_core_test.h" #include "ofdm_internal.h" /* Machine generated consts, H_rows, H_cols, test input/output data to change LDPC code regenerate this file. */ /* TODO: Better octave/C support for multuple codes */ #include "H2064_516_sparse_test.h" #include "HRA_112_112_test.h" int opt_exists(char *argv[], int argc, char opt[]) { int i; for (i=0; i 0) { ldpc.max_iter = atoi(argv[i+1]); fprintf(stderr, "max_iter: %d\n", ldpc.max_iter); } CodeLength = ldpc.CodeLength; /* length of entire codeword */ NumberParityBits = ldpc.NumberParityBits; data_bits_per_frame = ldpc.NumberRowsHcols; unsigned char ibits[data_bits_per_frame]; unsigned char pbits[NumberParityBits]; char out_char[CodeLength]; testframes = 0; total_iters = 0; Tbits = Terrs = Tbits_raw = Terrs_raw = 0; if (!strcmp(argv[1],"--test")) { /* test mode --------------------------------------------------------*/ fprintf(stderr, "Starting test using pre-compiled test data .....\n"); fprintf(stderr, "Codeword length: %d\n", CodeLength); fprintf(stderr, "Parity Bits....: %d\n", NumberParityBits); num_runs = 1; num_ok = 0; for(r=0; r 16384; } encode(&ldpc, ibits, pbits); } double *input_double = calloc(CodeLength, sizeof(double)); float *input_float = calloc(CodeLength, sizeof(float)); nread = CodeLength; offset = 0; if (readhalfframe) { nread = CodeLength/2; offset = CodeLength/2; for(i=0; i #include #include #include #include #include "mpdecode_core.h" #include "ldpc_codes.h" #include "ofdm_internal.h" int opt_exists(char *argv[], int argc, char opt[]) { int i; for (i=0; i 16384; } for(i=data_bits_per_frame-unused_data_bits; i= Nframes)) { goto finished; } } finished: fprintf(stderr, "written: %d\n", written); fclose(fin); fclose(fout); return 1; } codec2-1.0.1/src/ldpc_enc_test.c000066400000000000000000000113071412132000500163770ustar00rootroot00000000000000/* FILE...: ldpc_enc.c AUTHOR.: Bill Cowley, David Rowe CREATED: Sep 2016 RA LDPC encoder program. Using the elegant back substitution of RA LDPC codes. building: gcc ldpc_enc.c -o ldpc_enc -Wall -g */ #include #include #include #include #include #include "mpdecode_core_test.h" #include "ofdm_internal.h" /* generated by ldpc_fsk_lib.m:ldpc_decode() */ #include "H2064_516_sparse_test.h" #include "HRA_112_112_test.h" int opt_exists(char *argv[], int argc, char opt[]) { int i; for (i=0; i 16384; } } encode(&ldpc, ibits, pbits); if (sd) { /* map to BPSK symbols */ for (i=0; i= Nframes)) { goto finished; } } finished: fclose(fin); fclose(fout); return 1; } codec2-1.0.1/src/ldpc_noise.c000066400000000000000000000042001412132000500157020ustar00rootroot00000000000000/* FILE...: ldpc_enc.c AUTHOR.: Don Reid CREATED: Aug 2018 Add noise to LDPC soft decision samples for testing. Simulates use of LDPC code with PSK modem. */ #include #include #include #include #include #include int main(int argc, char *argv[]) { FILE *fin, *fout; float datain, dataout; if (argc < 3) { fprintf(stderr, "\n"); fprintf(stderr, "usage: %s InputFile OutputFile NodB\n", argv[0]); fprintf(stderr, "\n"); exit(1); } if (strcmp(argv[1], "-") == 0) fin = stdin; else if ( (fin = fopen(argv[1],"rb")) == NULL ) { fprintf(stderr, "Error opening input bit file: %s: %s.\n", argv[1], strerror(errno)); exit(1); } if (strcmp(argv[2], "-") == 0) fout = stdout; else if ( (fout = fopen(argv[2],"wb")) == NULL ) { fprintf(stderr, "Error opening output bit file: %s: %s.\n", argv[2], strerror(errno)); exit(1); } double NodB = atof(argv[3]); double No = pow(10.0, NodB/10.0); double sum_xx = 0; double sum_x = 0.0; long n = 0; fprintf(stderr, "Uncoded PSK Eb/No simulation:\n"); fprintf(stderr, "No = % 4.2f dB (%4.2f linear)\n", NodB, No); fprintf(stderr, "Eb = % 4.2f dB (%4.2f linear)\n", 0.0, 1.0); fprintf(stderr, "Eb/No = %4.2f dB (%4.2f linear)\n", -NodB, pow(10,-NodB/10.0)); while (fread(&datain, sizeof(float), 1, fin) == 1) { // Gaussian from uniform: double x = (double)rand() / RAND_MAX; double y = (double)rand() / RAND_MAX; double z = sqrt(-2 * log(x)) * cos(2 * M_PI * y); double noise = sqrt(No/2) * z; dataout = datain + noise; fwrite(&dataout, sizeof(float), 1, fout); // keep running stats to calculate actual noise variance (power) sum_xx += noise*noise; sum_x += noise; n++; } fclose(fin); fclose(fout); double noise_var = (n * sum_xx - sum_x * sum_x) / (n * (n - 1)); fprintf(stderr, "measured double sided (real) noise power: %f\n", noise_var); return 0; } codec2-1.0.1/src/linreg.c000066400000000000000000000051401412132000500150470ustar00rootroot00000000000000/*---------------------------------------------------------------------------*\ FILE........: linreg.c AUTHOR......: David Rowe DATE CREATED: April 2015 Linear regression C module based on: http://stackoverflow.com/questions/5083465/fast-efficient-least-squares-fit-algorithm-in-c Use: $ gcc linreg.c -o linreg -D__UNITTEST__ -Wall $ ./linreg Then compare yfit results with octave/tlinreg.m \*---------------------------------------------------------------------------*/ /* Copyright (C) 2015 David Rowe All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 2.1, as published by the Free Software Foundation. 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 Lesser General Public License along with this program; if not, see . */ #include #include #include #include "linreg.h" #include "comp_prim.h" void linreg(COMP *m, COMP *b, float x[], COMP y[], int n) { float sumx = 0.0; /* sum of x */ float sumx2 = 0.0; /* sum of x^2 */ COMP sumxy = {0.0,0.0}; /* sum of x * y */ COMP sumy = {0.0,0.0}; /* sum of y */ COMP sumy2 = {0.0,0.0}; /* sum of y**2 */ float denom; COMP zero; int i; for (i=0; i. */ #ifndef __LINREG__ #define __LINREG__ #include "comp.h" void linreg(COMP *m, COMP *b, float x[], COMP y[], int n); #endif codec2-1.0.1/src/lpc.c000066400000000000000000000204451412132000500143520ustar00rootroot00000000000000/*---------------------------------------------------------------------------*\ FILE........: lpc.c AUTHOR......: David Rowe DATE CREATED: 30 Sep 1990 (!) Linear Prediction functions written in C. \*---------------------------------------------------------------------------*/ /* Copyright (C) 2009-2012 David Rowe All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 2.1, as published by the Free Software Foundation. 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 Lesser General Public License along with this program; if not, see . */ #define LPC_MAX_N 512 /* maximum no. of samples in frame */ #define PI 3.141592654 /* mathematical constant */ #define ALPHA 1.0 #define BETA 0.94 #include #include #include "defines.h" #include "lpc.h" /*---------------------------------------------------------------------------*\ pre_emp() Pre-emphasise (high pass filter with zero close to 0 Hz) a frame of speech samples. Helps reduce dynamic range of LPC spectrum, giving greater weight and hense a better match to low energy formants. Should be balanced by de-emphasis of the output speech. \*---------------------------------------------------------------------------*/ void pre_emp( float Sn_pre[], /* output frame of speech samples */ float Sn[], /* input frame of speech samples */ float *mem, /* Sn[-1]single sample memory */ int Nsam /* number of speech samples to use */ ) { int i; for(i=0; i 1.0) k = 0.0; a[i][i] = k; for(j=1; j<=i-1; j++) a[i][j] = a[i-1][j] + k*a[i-1][i-j]; /* Equation 38c, Makhoul */ e *= (1-k*k); /* Equation 38d, Makhoul */ } for(i=1; i<=order; i++) lpcs[i] = a[order][i]; lpcs[0] = 1.0; } /*---------------------------------------------------------------------------*\ inverse_filter() Inverse Filter, A(z). Produces an array of residual samples from an array of input samples and linear prediction coefficients. The filter memory is stored in the first order samples of the input array. \*---------------------------------------------------------------------------*/ void inverse_filter( float Sn[], /* Nsam input samples */ float a[], /* LPCs for this frame of samples */ int Nsam, /* number of samples */ float res[], /* Nsam residual samples */ int order /* order of LPC */ ) { int i,j; /* loop variables */ for(i=0; i. */ #ifndef __LPC__ #define __LPC__ #define LPC_MAX_ORDER 20 void pre_emp(float Sn_pre[], float Sn[], float *mem, int Nsam); void de_emp(float Sn_se[], float Sn[], float *mem, int Nsam); void hanning_window(float Sn[], float Wn[], int Nsam); void autocorrelate(float Sn[], float Rn[], int Nsam, int order); void levinson_durbin(float R[], float lpcs[], int order); void inverse_filter(float Sn[], float a[], int Nsam, float res[], int order); void synthesis_filter(float res[], float a[], int Nsam, int order, float Sn_[]); void find_aks(float Sn[], float a[], int Nsam, int order, float *E); void weight(float ak[], float gamma, int order, float akw[]); #endif codec2-1.0.1/src/lpcnet_freq.c000066400000000000000000000062701412132000500160760ustar00rootroot00000000000000/* lpcnet_freq.c freq.c from LPCnet project, I think this code originally came from Opus. */ /* Copyright (c) 2017-2018 Mozilla */ /* Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 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 FOUNDATION OR CONTRIBUTORS 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. */ #include #include #include #include #include "comp.h" #include "lpcnet_freq.h" #define SQUARE(x) ((x)*(x)) /* FFT bin index of centre of each band, assuming an 80 sample time domain window (5ms at 16 kHz), which results in 40 samples in the positive freq side of the FFT. TODO - refactor this to something more generic */ static float eband5ms[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 12, 14, 16, 20, 24, 28, 34, 40 }; /* bandE[i] is the sum of energy in a triangular window centred on eband5ms[i], with adjustments for first and last band */ int lpcnet_compute_band_energy(float *bandE, float *bandCentrekHz, COMP *X, float Fs, int Nfft) { float sum[LPCNET_FREQ_MAX_BANDS] = {0}; int nb_bands; float scale; assert((Fs == 8000) || (Fs == 16000)); if (Fs == 8000) nb_bands = 14; else nb_bands = 18; /* map eband5ms[] bins to our FFT size and Fs */ scale = ((float)Nfft/2)/eband5ms[nb_bands-1]; /* sum energy from either side of band centre */ for (int i=0;i. */ #include "defines.h" #include "lsp.h" #include #include #include /*---------------------------------------------------------------------------*\ Introduction to Line Spectrum Pairs (LSPs) ------------------------------------------ LSPs are used to encode the LPC filter coefficients {ak} for transmission over the channel. LSPs have several properties (like less sensitivity to quantisation noise) that make them superior to direct quantisation of {ak}. A(z) is a polynomial of order lpcrdr with {ak} as the coefficients. A(z) is transformed to P(z) and Q(z) (using a substitution and some algebra), to obtain something like: A(z) = 0.5[P(z)(z+z^-1) + Q(z)(z-z^-1)] (1) As you can imagine A(z) has complex zeros all over the z-plane. P(z) and Q(z) have the very neat property of only having zeros _on_ the unit circle. So to find them we take a test point z=exp(jw) and evaluate P (exp(jw)) and Q(exp(jw)) using a grid of points between 0 and pi. The zeros (roots) of P(z) also happen to alternate, which is why we swap coefficients as we find roots. So the process of finding the LSP frequencies is basically finding the roots of 5th order polynomials. The root so P(z) and Q(z) occur in symmetrical pairs at +/-w, hence the name Line Spectrum Pairs (LSPs). To convert back to ak we just evaluate (1), "clocking" an impulse thru it lpcrdr times gives us the impulse response of A(z) which is {ak}. \*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*\ FUNCTION....: cheb_poly_eva() AUTHOR......: David Rowe DATE CREATED: 24/2/93 This function evalutes a series of chebyshev polynomials FIXME: performing memory allocation at run time is very inefficient, replace with stack variables of MAX_P size. \*---------------------------------------------------------------------------*/ static float cheb_poly_eva(float *coef,float x,int order) /* float coef[] coefficients of the polynomial to be evaluated */ /* float x the point where polynomial is to be evaluated */ /* int order order of the polynomial */ { int i; float *t,*u,*v,sum; float T[(order / 2) + 1]; /* Initialise pointers */ t = T; /* T[i-2] */ *t++ = 1.0; u = t--; /* T[i-1] */ *u++ = x; v = u--; /* T[i] */ /* Evaluate chebyshev series formulation using iterative approach */ for(i=2;i<=order/2;i++) *v++ = (2*x)*(*u++) - *t++; /* T[i] = 2*x*T[i-1] - T[i-2] */ sum=0.0; /* initialise sum to zero */ t = T; /* reset pointer */ /* Evaluate polynomial and return value also free memory space */ for(i=0;i<=order/2;i++) sum+=coef[(order/2)-i]**t++; return sum; } /*---------------------------------------------------------------------------*\ FUNCTION....: lpc_to_lsp() AUTHOR......: David Rowe DATE CREATED: 24/2/93 This function converts LPC coefficients to LSP coefficients. \*---------------------------------------------------------------------------*/ int lpc_to_lsp (float *a, int order, float *freq, int nb, float delta) /* float *a lpc coefficients */ /* int order order of LPC coefficients (10) */ /* float *freq LSP frequencies in radians */ /* int nb number of sub-intervals (4) */ /* float delta grid spacing interval (0.02) */ { float psuml,psumr,psumm,temp_xr,xl,xr,xm = 0; float temp_psumr; int i,j,m,flag,k; float *px; /* ptrs of respective P'(z) & Q'(z) */ float *qx; float *p; float *q; float *pt; /* ptr used for cheb_poly_eval() whether P' or Q' */ int roots=0; /* number of roots found */ float Q[order + 1]; float P[order + 1]; flag = 1; m = order/2; /* order of P'(z) & Q'(z) polynimials */ /* Allocate memory space for polynomials */ /* determine P'(z)'s and Q'(z)'s coefficients where P'(z) = P(z)/(1 + z^(-1)) and Q'(z) = Q(z)/(1-z^(-1)) */ px = P; /* initilaise ptrs */ qx = Q; p = px; q = qx; *px++ = 1.0; *qx++ = 1.0; for(i=1;i<=m;i++){ *px++ = a[i]+a[order+1-i]-*p++; *qx++ = a[i]-a[order+1-i]+*q++; } px = P; qx = Q; for(i=0;i= -1.0)){ xr = xl - delta ; /* interval spacing */ psumr = cheb_poly_eva(pt,xr,order);/* poly(xl-delta_x) */ temp_psumr = psumr; temp_xr = xr; /* if no sign change increment xr and re-evaluate poly(xr). Repeat til sign change. if a sign change has occurred the interval is bisected and then checked again for a sign change which determines in which interval the zero lies in. If there is no sign change between poly(xm) and poly(xl) set interval between xm and xr else set interval between xl and xr and repeat till root is located within the specified limits */ if(((psumr*psuml)<0.0) || (psumr == 0.0)){ roots++; psumm=psuml; for(k=0;k<=nb;k++){ xm = (xl+xr)/2; /* bisect the interval */ psumm=cheb_poly_eva(pt,xm,order); if(psumm*psuml>0.){ psuml=psumm; xl=xm; } else{ psumr=psumm; xr=xm; } } /* once zero is found, reset initial interval to xr */ freq[j] = (xm); xl = xm; flag = 0; /* reset flag for next search */ } else{ psuml=temp_psumr; xl=temp_xr; } } } /* convert from x domain to radians */ for(i=0; i. */ #ifndef __LSP__ #define __LSP__ int lpc_to_lsp (float *a, int lpcrdr, float *freq, int nb, float delta); void lsp_to_lpc(float *freq, float *ak, int lpcrdr); #endif codec2-1.0.1/src/machdep.h000066400000000000000000000035261412132000500152030ustar00rootroot00000000000000/*---------------------------------------------------------------------------*\ FILE........: machdep.h AUTHOR......: David Rowe DATE CREATED: May 2 2013 Machine dependant functions, e.g. profiling that requires access to a clock counter register. \*---------------------------------------------------------------------------*/ /* Copyright (C) 2013 David Rowe All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 2.1, as published by the Free Software Foundation. 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 Lesser General Public License along with this program; if not, see . */ #ifndef __MACHDEP__ #define __MACHDEP__ #ifdef PROFILE #define PROFILE_VAR(...) unsigned int __VA_ARGS__ #define PROFILE_SAMPLE(timestamp) timestamp = machdep_profile_sample() #define PROFILE_SAMPLE_AND_LOG(timestamp, prev_timestamp, label) \ timestamp = machdep_profile_sample_and_log(prev_timestamp, label) #define PROFILE_SAMPLE_AND_LOG2(prev_timestamp, label) \ machdep_profile_sample_and_log(prev_timestamp, label) #else #define PROFILE_VAR(...) #define PROFILE_SAMPLE(timestamp) #define PROFILE_SAMPLE_AND_LOG(timestamp, prev_timestamp, label) #define PROFILE_SAMPLE_AND_LOG2(prev_timestamp, label) #endif void machdep_profile_init(void); void machdep_profile_reset(void); unsigned int machdep_profile_sample(void); unsigned int machdep_profile_sample_and_log(unsigned int start, char s[]); void machdep_profile_print_logged_samples(void); #endif codec2-1.0.1/src/mbest.c000066400000000000000000000107461412132000500147110ustar00rootroot00000000000000/*---------------------------------------------------------------------------*\ FILE........: mbest.c AUTHOR......: David Rowe DATE CREATED: Jan 2017 Multistage vector quantiser search algorithm that keeps multiple candidates from each stage. \*---------------------------------------------------------------------------*/ /* Copyright David Rowe 2017 All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 2.1, as published by the Free Software Foundation. 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 Lesser General Public License along with this program; if not, see . */ #include #include #include #include #include #include "mbest.h" struct MBEST *mbest_create(int entries) { int i,j; struct MBEST *mbest; assert(entries > 0); mbest = (struct MBEST *)malloc(sizeof(struct MBEST)); assert(mbest != NULL); mbest->entries = entries; mbest->list = (struct MBEST_LIST *)malloc(entries*sizeof(struct MBEST_LIST)); assert(mbest->list != NULL); for(i=0; ientries; i++) { for(j=0; jlist[i].index[j] = 0; mbest->list[i].error = 1E32; } return mbest; } void mbest_destroy(struct MBEST *mbest) { assert(mbest != NULL); free(mbest->list); free(mbest); } /*---------------------------------------------------------------------------*\ mbest_insert Insert the results of a vector to codebook entry comparison. The list is ordered in order of error, so those entries with the smallest error will be first on the list. \*---------------------------------------------------------------------------*/ void mbest_insert(struct MBEST *mbest, int index[], float error) { int i, j, found; struct MBEST_LIST *list = mbest->list; int entries = mbest->entries; found = 0; for(i=0; ii; j--) list[j] = list[j-1]; for(j=0; jentries; i++) { for(j=0; jlist[i].index[j]); fprintf(stderr, " %f\n", (double)mbest->list[i].error); } } /*---------------------------------------------------------------------------*\ mbest_search Searches vec[] to a codebbook of vectors, and maintains a list of the mbest closest matches. \*---------------------------------------------------------------------------*/ void mbest_search( const float *cb, /* VQ codebook to search */ float vec[], /* target vector */ float w[], /* weighting vector */ int k, /* dimension of vector */ int m, /* number on entries in codebook */ struct MBEST *mbest, /* list of closest matches */ int index[] /* indexes that lead us here */ ) { float e; int i,j; float diff; for(j=0; j. */ #ifndef __MBEST__ #define __MBEST__ #define MBEST_STAGES 4 struct MBEST_LIST { int index[MBEST_STAGES]; /* index of each stage that lead us to this error */ float error; }; struct MBEST { int entries; /* number of entries in mbest list */ struct MBEST_LIST *list; }; struct MBEST *mbest_create(int entries); void mbest_destroy(struct MBEST *mbest); void mbest_insert(struct MBEST *mbest, int index[], float error); void mbest_search(const float *cb, float vec[], float w[], int k, int m, struct MBEST *mbest, int index[]); void mbest_search450(const float *cb, float vec[], float w[], int k,int shorterK, int m, struct MBEST *mbest, int index[]); void mbest_print(char title[], struct MBEST *mbest); #endif codec2-1.0.1/src/modem_probe.c000066400000000000000000000122261412132000500160620ustar00rootroot00000000000000/*---------------------------------------------------------------------------*\ FILE........: modem_probe.c AUTHOR......: Brady O'Brien DATE CREATED: 9 January 2016 Library to easily extract debug traces from modems during development and verification \*---------------------------------------------------------------------------*/ /* Copyright (C) 2016 David Rowe All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 2.1, as published by the Free Software Foundation. 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 Lesser General Public License along with this program; if not, see . */ #include #include #include #include #include "comp.h" #include "octave.h" #define TRACE_I 1 #define TRACE_F 2 #define TRACE_C 3 typedef struct probe_trace_info_s probe_trace_info; typedef struct datlink_s datlink; struct datlink_s{ void * data; size_t len; datlink * next; }; struct probe_trace_info_s{ int type; char name[255]; datlink * data; datlink * last; probe_trace_info *next; }; static char *run = NULL; static char *mod = NULL; static probe_trace_info *first_trace = NULL; /* Init the probing library */ void modem_probe_init_int(char *modname, char *runname){ mod = malloc((strlen(modname)+1)*sizeof(char)); run = malloc((strlen(runname)+1)*sizeof(char)); strcpy(run,runname); strcpy(mod,modname); } /* * Gather the data stored in the linked list into a single blob, * freeing links and buffers as it goes */ void * gather_data(datlink * d,size_t * len){ size_t size = 0; datlink * cur = d; datlink * next; while(cur!=NULL){ size += d->len; cur = cur->next; } cur = d; size_t i = 0; void * newbuf = malloc(size); while(cur!=NULL){ memcpy(newbuf+i,cur->data,cur->len); i += cur->len; free(cur->data); next = cur->next; free(cur); cur = next; } *len = size; return newbuf; } /* Dump all of the traces into a nice octave-able dump file */ void modem_probe_close_int(){ if(run==NULL) return; probe_trace_info *cur,*next; cur = first_trace; FILE * dumpfile = fopen(run,"w"); void * dbuf; size_t len; while(cur != NULL){ dbuf = gather_data(cur->data,&len); switch(cur->type){ case TRACE_I: octave_save_int(dumpfile,cur->name,(int32_t*)dbuf,1,len/sizeof(int32_t)); break; case TRACE_F: octave_save_float(dumpfile,cur->name,(float*)dbuf,1,len/sizeof(float),10); break; case TRACE_C: octave_save_complex(dumpfile,cur->name,(COMP*)dbuf,1,len/sizeof(COMP),10); break; } next = cur->next; free(cur); free(dbuf); cur = next; } fclose(dumpfile); free(run); free(mod); } /* Look up or create a trace by name */ probe_trace_info * modem_probe_get_trace(char * tracename){ probe_trace_info *cur,*npti; /* Make sure probe session is open */ if(run==NULL) return NULL; cur = first_trace; /* Walk through list, find trace with matching name */ while(cur != NULL){ /* We got one! */ if(strcmp( cur->name, tracename) == 0){ return cur; } cur = cur->next; } /* None found, open a new trace */ npti = (probe_trace_info *) malloc(sizeof(probe_trace_info)); npti->next = first_trace; npti->data = NULL; npti->last = NULL; strcpy(npti->name,tracename); first_trace = npti; return npti; } void modem_probe_samp_i_int(char * tracename,int32_t samp[],size_t cnt){ probe_trace_info *pti; datlink *ndat; pti = modem_probe_get_trace(tracename); if(pti == NULL) return; pti->type = TRACE_I; ndat = (datlink*) malloc(sizeof(datlink)); ndat->data = malloc(sizeof(int32_t)*cnt); ndat->len = cnt*sizeof(int32_t); ndat->next = NULL; memcpy(ndat->data,(void*)&(samp[0]),sizeof(int32_t)*cnt); if(pti->last!=NULL){ pti->last->next = ndat; pti->last = ndat; } else { pti->data = ndat; pti->last = ndat; } } void modem_probe_samp_f_int(char * tracename,float samp[],size_t cnt){ probe_trace_info *pti; datlink *ndat; pti = modem_probe_get_trace(tracename); if(pti == NULL) return; pti->type = TRACE_F; ndat = (datlink*) malloc(sizeof(datlink)); ndat->data = malloc(sizeof(float)*cnt); ndat->len = cnt*sizeof(float); ndat->next = NULL; memcpy(ndat->data,(void*)&(samp[0]),sizeof(float)*cnt); if(pti->last!=NULL){ pti->last->next = ndat; pti->last = ndat; } else { pti->data = ndat; pti->last = ndat; } } void modem_probe_samp_c_int(char * tracename,COMP samp[],size_t cnt){ probe_trace_info *pti; datlink *ndat; pti = modem_probe_get_trace(tracename); if(pti == NULL) return; pti->type = TRACE_C; ndat = (datlink*) malloc(sizeof(datlink)); ndat->data = malloc(sizeof(COMP)*cnt); ndat->len = cnt*sizeof(COMP); ndat->next = NULL; memcpy(ndat->data,(void*)&(samp[0]),sizeof(COMP)*cnt); if(pti->last!=NULL){ pti->last->next = ndat; pti->last = ndat; } else { pti->data = ndat; pti->last = ndat; } } codec2-1.0.1/src/modem_probe.h000066400000000000000000000071401412132000500160660ustar00rootroot00000000000000/*---------------------------------------------------------------------------*\ FILE........: modem_probe.h AUTHOR......: Brady O'Brien DATE CREATED: 9 January 2016 Library to easily extract debug traces from modems during development \*---------------------------------------------------------------------------*/ /* Copyright (C) 2016 David Rowe All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 2.1, as published by the Free Software Foundation. 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 Lesser General Public License along with this program; if not, see . */ #ifndef __MODEMPROBE_H #define __MODEMPROBE_H #include #include #include #include "comp.h" #ifdef MODEMPROBE_ENABLE /* Internal functions */ void modem_probe_init_int(char *modname, char *runname); void modem_probe_close_int(); void modem_probe_samp_i_int(char * tracename,int samp[],size_t cnt); void modem_probe_samp_f_int(char * tracename,float samp[],size_t cnt); void modem_probe_samp_c_int(char * tracename,COMP samp[],size_t cnt); /* * Init the probe library. * char *modname - Name of the modem under test * char *runname - Name/path of the file data is dumped to */ static inline void modem_probe_init(char *modname,char *runname){ modem_probe_init_int(modname,runname); } /* * Dump traces to a file and clean up */ static inline void modem_probe_close(){ modem_probe_close_int(); } /* * Save some number of int samples to a named trace * char *tracename - name of trace being saved to * int samp[] - int samples * size_t cnt - how many samples to save */ static inline void modem_probe_samp_i(char *tracename,int samp[],size_t cnt){ modem_probe_samp_i_int(tracename,samp,cnt); } /* * Save some number of float samples to a named trace * char *tracename - name of trace being saved to * float samp[] - int samples * size_t cnt - how many samples to save */ static inline void modem_probe_samp_f(char *tracename,float samp[],size_t cnt){ modem_probe_samp_f_int(tracename,samp,cnt); } /* * Save some number of complex samples to a named trace * char *tracename - name of trace being saved to * COMP samp[] - int samples * size_t cnt - how many samples to save */ static inline void modem_probe_samp_c(char *tracename,COMP samp[],size_t cnt){ modem_probe_samp_c_int(tracename,samp,cnt); } /* * Save some number of complex samples to a named trace * char *tracename - name of trace being saved to * float complex samp[] - int samples * size_t cnt - how many samples to save */ static inline void modem_probe_samp_cft(char *tracename,complex float samp[],size_t cnt){ modem_probe_samp_c_int(tracename,(COMP*)samp,cnt); } #else static inline void modem_probe_init(char *modname,char *runname){ return; } static inline void modem_probe_close(){ return; } static inline void modem_probe_samp_i(char *name,int samp[],size_t sampcnt){ return; } static inline void modem_probe_samp_f(char *name,float samp[],size_t cnt){ return; } static inline void modem_probe_samp_c(char *name,COMP samp[],size_t cnt){ return; } static inline void modem_probe_samp_cft(char *name,complex float samp[],size_t cnt){ return; } #endif #endif codec2-1.0.1/src/modem_stats.c000066400000000000000000000073441412132000500161160ustar00rootroot00000000000000/*---------------------------------------------------------------------------*\ FILE........: modem_stats.c AUTHOR......: David Rowe DATE CREATED: June 2015 Common functions for returning demod stats from fdmdv and cohpsk modems. \*---------------------------------------------------------------------------*/ /* Copyright (C) 2015 David Rowe All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 2.1, as published by the Free Software Foundation. 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 Lesser General Public License along with this program; if not, see . */ #include #include #include "modem_stats.h" #include "codec2_fdmdv.h" #include "kiss_fft.h" void modem_stats_open(struct MODEM_STATS *f) { int i; /* zero out all the stats */ memset(f, 0, sizeof(struct MODEM_STATS)); /* init the FFT */ #ifndef __EMBEDDED__ for(i=0; i<2*MODEM_STATS_NSPEC; i++) f->fft_buf[i] = 0.0; f->fft_cfg = (void*)kiss_fft_alloc (2*MODEM_STATS_NSPEC, 0, NULL, NULL); assert(f->fft_cfg != NULL); #endif } void modem_stats_close(struct MODEM_STATS *f) { #ifndef __EMBEDDED__ KISS_FFT_FREE(f->fft_cfg); #endif } /*---------------------------------------------------------------------------*\ FUNCTION....: modem_stats_get_rx_spectrum() AUTHOR......: David Rowe DATE CREATED: 9 June 2012 Returns the MODEM_STATS_NSPEC point magnitude spectrum of the rx signal in dB. The spectral samples are scaled so that 0dB is the peak, a good range for plotting is 0 to -40dB. Note only the real part of the complex input signal is used at present. A complex variable is used for input for compatability with the other rx signal procesing. Successive calls can be used to build up a waterfall or spectrogram plot, by mapping the received levels to colours. The time-frequency resolution of the spectrum can be adjusted by varying MODEM_STATS_NSPEC. Note that a 2* MODEM_STATS_NSPEC size FFT is reqd to get MODEM_STATS_NSPEC output points. MODEM_STATS_NSPEC must be a power of 2. See octave/tget_spec.m for a demo real time spectral display using Octave. This demo averages the output over time to get a smoother display: av = 0.9*av + 0.1*mag_dB \*---------------------------------------------------------------------------*/ #ifndef __EMBEDDED__ void modem_stats_get_rx_spectrum(struct MODEM_STATS *f, float mag_spec_dB[], COMP rx_fdm[], int nin) { int i,j; COMP fft_in[2*MODEM_STATS_NSPEC]; COMP fft_out[2*MODEM_STATS_NSPEC]; float full_scale_dB; /* update buffer of input samples */ for(i=0; i<2*MODEM_STATS_NSPEC-nin; i++) f->fft_buf[i] = f->fft_buf[i+nin]; for(j=0; jfft_buf[i] = rx_fdm[j].real; assert(i == 2*MODEM_STATS_NSPEC); /* window and FFT */ for(i=0; i<2*MODEM_STATS_NSPEC; i++) { fft_in[i].real = f->fft_buf[i] * (0.5 - 0.5*cosf((float)i*2.0*M_PI/(2*MODEM_STATS_NSPEC))); fft_in[i].imag = 0.0; } kiss_fft((kiss_fft_cfg)f->fft_cfg, (kiss_fft_cpx *)fft_in, (kiss_fft_cpx *)fft_out); /* FFT scales up a signal of level 1 FDMDV_NSPEC */ full_scale_dB = 20*log10(MODEM_STATS_NSPEC*FDMDV_SCALE); /* scale and convert to dB */ for(i=0; i. */ #ifndef __MODEM_STATS__ #define __MODEM_STATS__ #include "comp.h" #ifdef __cplusplus extern "C" { #endif #define MODEM_STATS_NC_MAX 50 #define MODEM_STATS_NR_MAX 160 #define MODEM_STATS_ET_MAX 8 #define MODEM_STATS_EYE_IND_MAX 160 #define MODEM_STATS_NSPEC 512 #define MODEM_STATS_MAX_F_HZ 4000 #define MODEM_STATS_MAX_F_EST 4 struct MODEM_STATS { int Nc; float snr_est; /* estimated SNR of rx signal in dB (3 kHz noise BW) */ #ifndef __EMBEDDED__ COMP rx_symbols[MODEM_STATS_NR_MAX][MODEM_STATS_NC_MAX+1]; /* latest received symbols, for scatter plot */ #endif int nr; /* number of rows in rx_symbols */ int sync; /* demod sync state */ float foff; /* estimated freq offset in Hz */ float rx_timing; /* estimated optimum timing offset in samples */ float clock_offset; /* Estimated tx/rx sample clock offset in ppm */ float sync_metric; /* number between 0 and 1 indicating quality of sync */ int pre, post; /* preamble/postamble det counters for burst data */ int uw_fails; /* Failed to detect Unique word (burst data) */ /* FSK eye diagram traces */ /* Eye diagram plot -- first dim is trace number, second is the trace idx */ #ifndef __EMBEDDED__ float rx_eye[MODEM_STATS_ET_MAX][MODEM_STATS_EYE_IND_MAX]; int neyetr; /* How many eye traces are plotted */ int neyesamp; /* How many samples in the eye diagram */ /* optional for FSK modems - est tone freqs */ float f_est[MODEM_STATS_MAX_F_EST]; #endif /* Buf for FFT/waterfall */ #ifndef __EMBEDDED__ float fft_buf[2*MODEM_STATS_NSPEC]; void *fft_cfg; #endif }; void modem_stats_open(struct MODEM_STATS *f); void modem_stats_close(struct MODEM_STATS *f); void modem_stats_get_rx_spectrum(struct MODEM_STATS *f, float mag_spec_dB[], COMP rx_fdm[], int nin); #ifdef __cplusplus } #endif #endif codec2-1.0.1/src/mpdecode_core.c000066400000000000000000000570741412132000500163740ustar00rootroot00000000000000/* FILE...: mpdecode_core.c AUTHOR.: Matthew C. Valenti, Rohit Iyer Seshadri, David Rowe CREATED: Sep 2016 C-callable core functions moved from MpDecode.c, so they can be used for Octave and C programs. */ #include #include #include #include #include #include "mpdecode_core.h" #ifndef USE_ORIGINAL_PHI0 #include "phi0.h" #endif #include "debug_alloc.h" #ifdef __EMBEDDED__ #include "machdep.h" #endif #define QPSK_CONSTELLATION_SIZE 4 #define QPSK_BITS_PER_SYMBOL 2 /* QPSK constellation for symbol likelihood calculations */ static COMP S_matrix[] = { { 1.0f, 0.0f}, { 0.0f, 1.0f}, { 0.0f, -1.0f}, {-1.0f, 0.0f} }; // c_nodes will be an array of NumberParityBits of struct c_node // Each c_node contains an array of c_sub_node elements // This structure reduces the indexing caluclations in SumProduct() struct c_sub_node { // Order is important here to keep total size small. uint16_t index; // Values from H_rows (except last 2 entries) uint16_t socket; // The socket number at the v_node float message; // modified during operation! }; struct c_node { int degree; // A count of elements in the following arrays struct c_sub_node *subs; }; // v_nodes will be an array of CodeLength of struct v_node struct v_sub_node { uint16_t index; // the index of a c_node it is connected to // Filled with values from H_cols (except last 2 entries) uint16_t socket; // socket number at the c_node float message; // Loaded with input data // modified during operation! uint8_t sign; // 1 if input is negative // modified during operation! }; struct v_node { int degree; // A count of ??? float initial_value; struct v_sub_node *subs; }; void encode(struct LDPC *ldpc, unsigned char ibits[], unsigned char pbits[]) { unsigned int p, i, tmp, par, prev=0; int ind; uint16_t *H_rows = ldpc->H_rows; for (p=0; pNumberParityBits; p++) { par = 0; for (i=0; imax_row_weight; i++) { ind = H_rows[p + i*ldpc->NumberParityBits]; if (ind) par = par + ibits[ind-1]; } tmp = par + prev; tmp &= 1; // only retain the lsb prev = tmp; pbits[p] = tmp; } } #ifdef USE_ORIGINAL_PHI0 /* Phi function */ static float phi0( float x ) { float z; if (x>10) return( 0 ); else if (x< 9.08e-5 ) return( 10 ); else if (x > 9) return( 1.6881e-4 ); /* return( 1.4970e-004 ); */ else if (x > 8) return( 4.5887e-4 ); /* return( 4.0694e-004 ); */ else if (x > 7) return( 1.2473e-3 ); /* return( 1.1062e-003 ); */ else if (x > 6) return( 3.3906e-3 ); /* return( 3.0069e-003 ); */ else if (x > 5) return( 9.2168e-3 ); /* return( 8.1736e-003 ); */ else { z = (float) exp(x); return( (float) log( (z+1)/(z-1) ) ); } } #endif /* Values for linear approximation (DecoderType=5) */ #define AJIAN -0.24904163195436 #define TJIAN 2.50681740420944 /* The linear-log-MAP algorithm */ static float max_star0( float delta1, float delta2 ) { register float diff; diff = delta2 - delta1; if ( diff > TJIAN ) return( delta2 ); else if ( diff < -TJIAN ) return( delta1 ); else if ( diff > 0 ) return( delta2 + AJIAN*(diff-TJIAN) ); else return( delta1 - AJIAN*(diff+TJIAN) ); } void init_c_v_nodes(struct c_node *c_nodes, int shift, int NumberParityBits, int max_row_weight, uint16_t *H_rows, int H1, int CodeLength, struct v_node *v_nodes, int NumberRowsHcols, uint16_t *H_cols, int max_col_weight, int dec_type, float *input) { int i, j, k, count, cnt, c_index, v_index; /* first determine the degree of each c-node */ if (shift ==0){ for (i=0;i 0 ) { count++; } } c_nodes[i].degree = count; if (H1){ if (i==0){ c_nodes[i].degree=count+1; } else{ c_nodes[i].degree=count+2; } } } } else{ cnt=0; for (i=0;i<(NumberParityBits/shift);i++) { for (k=0;k 0 ) { count++; } } c_nodes[cnt].degree = count; if ((i==0)||(i==(NumberParityBits/shift)-1)){ c_nodes[cnt].degree=count+1; } else{ c_nodes[cnt].degree=count+2; } cnt++; } } } if (H1){ if (shift ==0){ for (i=0;i0){ cnt=0; for (i=0;i<(NumberParityBits/shift);i++){ for (k =0;k 0 ) { count++; } } v_nodes[i].degree = count; } for(i=CodeLength-NumberParityBits+shift;i 0 ) { count++; } } v_nodes[i].degree = count; } } if (shift>0){ v_nodes[CodeLength-1].degree =v_nodes[CodeLength-1].degree+1; } /* set up v_nodes */ for (i=0;i=CodeLength-NumberParityBits+shift)){ v_nodes[i].subs[j].index=i-(CodeLength-NumberParityBits+shift)+count; if (shift ==0){ count=count+1; } else{ count=count+shift; } } else { v_nodes[i].subs[j].index = (H_cols[i+j*NumberRowsHcols] - 1); } /* search the connected c-node for the proper message value */ for (c_index=0;c_indexindex ].subs[ cp->socket ]; phi_sum += vp->message; sign ^= vp->sign; } if (sign==0) ssum++; for (i=0;iindex ].subs[ cp->socket ]; if ( sign ^ vp->sign ) { cp->message = -phi0( phi_sum - vp->message ); // *r_scale_factor; } else cp->message = phi0( phi_sum - vp->message ); // *r_scale_factor; } } /* update q */ for (i=0;iindex ].subs[ vp->socket ].message; } /* make hard decision */ if (Qi < 0) { DecodedBits[i] = 1; } /* now subtract to get the extrinsic information */ for (j=0;jindex ].subs[ vp->socket ].message; vp->message = phi0( fabs( temp_sum ) ); // *q_scale_factor; if (temp_sum > 0) vp->sign = 0; else vp->sign = 1; } } /* count data bit errors, assuming that it is systematic */ for (i=0;imax_iter; dec_type = ldpc->dec_type; q_scale_factor = ldpc->q_scale_factor; r_scale_factor = ldpc->r_scale_factor; CodeLength = ldpc->CodeLength; /* length of entire codeword */ NumberParityBits = ldpc->NumberParityBits; NumberRowsHcols = ldpc->NumberRowsHcols; char *DecodedBits = CALLOC( CodeLength, sizeof( char ) ); assert(DecodedBits); /* derive some parameters */ shift = (NumberParityBits + NumberRowsHcols) - CodeLength; if (NumberRowsHcols == CodeLength) { H1=0; shift=0; } else { H1=1; } max_row_weight = ldpc->max_row_weight; max_col_weight = ldpc->max_col_weight; /* initialize c-node and v-node structures */ c_nodes = CALLOC( NumberParityBits, sizeof( struct c_node ) ); assert(c_nodes); v_nodes = CALLOC( CodeLength, sizeof( struct v_node)); assert(v_nodes); init_c_v_nodes(c_nodes, shift, NumberParityBits, max_row_weight, ldpc->H_rows, H1, CodeLength, v_nodes, NumberRowsHcols, ldpc->H_cols, max_col_weight, dec_type, input); int DataLength = CodeLength - NumberParityBits; int *data_int = CALLOC( DataLength, sizeof(int) ); /* need to clear these on each call */ for(i=0; i 0.0L) - (sd[i] < 0.0L); x = ((double)sd[i]/mean - sign); sum += x; sumsq += x*x; } estvar = (n * sumsq - sum * sum) / (n * (n - 1)); //fprintf(stderr, "mean: %f var: %f\n", mean, estvar); estEsN0 = 1.0/(2.0L * estvar + 1E-3); for(i=0; i> 1; } mask = 1 << (bps - 1); for (k=0;k> 1; } } for (k=0;kmax_iter = %d\n", ldpc->max_iter); fprintf(stderr, "ldpc->dec_type = %d\n", ldpc->dec_type); fprintf(stderr, "ldpc->q_scale_factor = %d\n", ldpc->q_scale_factor); fprintf(stderr, "ldpc->r_scale_factor = %d\n", ldpc->r_scale_factor); fprintf(stderr, "ldpc->CodeLength = %d\n", ldpc->CodeLength); fprintf(stderr, "ldpc->NumberParityBits = %d\n", ldpc->NumberParityBits); fprintf(stderr, "ldpc->NumberRowsHcols = %d\n", ldpc->NumberRowsHcols); fprintf(stderr, "ldpc->max_row_weight = %d\n", ldpc->max_row_weight); fprintf(stderr, "ldpc->max_col_weight = %d\n", ldpc->max_col_weight); fprintf(stderr, "ldpc->data_bits_per_frame = %d\n", ldpc->data_bits_per_frame); fprintf(stderr, "ldpc->coded_bits_per_frame = %d\n", ldpc->coded_bits_per_frame); } codec2-1.0.1/src/mpdecode_core.h000066400000000000000000000031111412132000500163600ustar00rootroot00000000000000/* FILE...: mpdecode_core.h AUTHOR.: David Rowe CREATED: Sep 2016 C-callable core functions for MpDecode, so they can be used for Octave and C programs. Also some convenience functions to help use the C-callable LDPC decoder in C programs. */ #ifndef __MPDECODE_CORE__ #define __MPDECODE_CORE__ #include #include "comp.h" struct LDPC { char name[32]; int max_iter; int dec_type; int q_scale_factor; int r_scale_factor; int CodeLength; int NumberParityBits; int NumberRowsHcols; int max_row_weight; int max_col_weight; uint16_t *H_rows; uint16_t *H_cols; /* these two are fixed to code params */ int ldpc_data_bits_per_frame; int ldpc_coded_bits_per_frame; /* these three may vary if we don't use all data bits in code */ int data_bits_per_frame; int coded_bits_per_frame; }; void encode(struct LDPC *ldpc, unsigned char ibits[], unsigned char pbits[]); int run_ldpc_decoder(struct LDPC *ldpc, uint8_t out_char[], float input[], int *parityCheckCount); void sd_to_llr(float llr[], float sd[], int n); void Demod2D(float symbol_likelihood[], COMP r[], COMP S_matrix[], float EsNo, float fading[], float mean_amp, int number_symbols); void Somap(float bit_likelihood[], float symbol_likelihood[], int M, int bps, int number_symbols); void symbols_to_llrs(float llr[], COMP rx_qpsk_symbols[], float rx_amps[], float EsNo, float mean_amp, int nsyms); void fsk_rx_filt_to_llrs(float llr[], float rx_filt[], float v_est, float SNRest, int M, int nsyms); void ldpc_print_info(struct LDPC *ldpc); #endif codec2-1.0.1/src/newamp1.c000066400000000000000000000512001412132000500151350ustar00rootroot00000000000000/*---------------------------------------------------------------------------*\ FILE........: newamp1.c AUTHOR......: David Rowe DATE CREATED: Jan 2017 Quantisation functions for the sinusoidal coder, using "newamp1" algorithm that resamples variable rate L [Am} to a fixed rate K then VQs. \*---------------------------------------------------------------------------*/ /* Copyright David Rowe 2017 All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 2.1, as published by the Free Software Foundation. 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 Lesser General Public License along with this program; if not, see . */ #include #include #include #include #include #include "defines.h" #include "phase.h" #include "quantise.h" #include "mbest.h" #include "newamp1.h" /*---------------------------------------------------------------------------*\ FUNCTION....: interp_para() AUTHOR......: David Rowe DATE CREATED: Jan 2017 General 2nd order parabolic interpolator. Used splines orginally, but this is much simpler and we don't need much accuracy. Given two vectors of points xp and yp, find interpolated values y at points x. \*---------------------------------------------------------------------------*/ void interp_para(float y[], float xp[], float yp[], int np, float x[], int n) { assert(np >= 3); int k,i; float xi, x1, y1, x2, y2, x3, y3, a, b; k = 0; for (i=0; iL; m++) { AmdB[m] = 20.0*log10f(model->A[m]+1E-16); if (AmdB[m] > AmdB_peak) { AmdB_peak = AmdB[m]; } rate_L_sample_freqs_kHz[m] = m*model->Wo*(c2const->Fs/2000.0)/M_PI; //printf("m: %d AmdB: %f AmdB_peak: %f sf: %f\n", m, AmdB[m], AmdB_peak, rate_L_sample_freqs_kHz[m]); } /* clip between peak and peak -50dB, to reduce dynamic range */ for(m=1; m<=model->L; m++) { if (AmdB[m] < (AmdB_peak-50.0)) { AmdB[m] = AmdB_peak-50.0; } } interp_para(rate_K_vec, &rate_L_sample_freqs_kHz[1], &AmdB[1], model->L, rate_K_sample_freqs_kHz, K); } /*---------------------------------------------------------------------------*\ FUNCTION....: rate_K_mbest_encode AUTHOR......: David Rowe DATE CREATED: Jan 2017 Two stage rate K newamp1 VQ quantiser using mbest search. \*---------------------------------------------------------------------------*/ float rate_K_mbest_encode(int *indexes, float *x, float *xq, int ndim, int mbest_entries) { int i, j, n1, n2; const float *codebook1 = newamp1vq_cb[0].cb; const float *codebook2 = newamp1vq_cb[1].cb; struct MBEST *mbest_stage1, *mbest_stage2; float target[ndim]; float w[ndim]; int index[MBEST_STAGES]; float mse, tmp; /* codebook is compiled for a fixed K */ assert(ndim == newamp1vq_cb[0].k); /* equal weights, could be argued mel freq axis gives freq dep weighting */ for(i=0; ilist[j].index[0]; for(i=0; ilist[0].index[1]; n2 = mbest_stage2->list[0].index[0]; mse = 0.0; for (i=0;iL; m++) { rate_L_sample_freqs_kHz[m] = m*model->Wo*(c2const->Fs/2000.0)/M_PI; } interp_para(&AmdB[1], rate_K_sample_freqs_kHz_term, rate_K_vec_term, K+2, &rate_L_sample_freqs_kHz[1], model->L); for(m=1; m<=model->L; m++) { model->A[m] = POW10F(AmdB[m]/20.0); // printf("m: %d f: %f AdB: %f A: %f\n", m, rate_L_sample_freqs_kHz[m], AmdB[m], model->A[m]); } } /*---------------------------------------------------------------------------*\ FUNCTION....: determine_phase AUTHOR......: David Rowe DATE CREATED: Jan 2017 Given a magnitude spectrum determine a phase spectrum, used for phase synthesis with newamp1. \*---------------------------------------------------------------------------*/ void determine_phase(C2CONST *c2const, COMP H[], MODEL *model, int Nfft, codec2_fft_cfg fwd_cfg, codec2_fft_cfg inv_cfg) { int i,m,b; int Ns = Nfft/2+1; float Gdbfk[Ns], sample_freqs_kHz[Ns], phase[Ns]; float AmdB[MAX_AMP+1], rate_L_sample_freqs_kHz[MAX_AMP+1]; for(m=1; m<=model->L; m++) { assert(model->A[m] != 0.0); AmdB[m] = 20.0*log10f(model->A[m]); rate_L_sample_freqs_kHz[m] = (float)m*model->Wo*(c2const->Fs/2000.0)/M_PI; } for(i=0; iFs/1000.0)*(float)i/Nfft; } interp_para(Gdbfk, &rate_L_sample_freqs_kHz[1], &AmdB[1], model->L, sample_freqs_kHz, Ns); mag_to_phase(phase, Gdbfk, Nfft, fwd_cfg, inv_cfg); for(m=1; m<=model->L; m++) { b = floorf(0.5+m*model->Wo*Nfft/(2.0*M_PI)); H[m].real = cosf(phase[b]); H[m].imag = sinf(phase[b]); } } /*---------------------------------------------------------------------------* \ FUNCTION....: determine_autoc AUTHOR......: David Rowe DATE CREATED: April 2020 Determine autocorrelation coefficients from model params, for machine learning experiments. \*---------------------------------------------------------------------------*/ void determine_autoc(C2CONST *c2const, float Rk[], int order, MODEL *model, int Nfft, codec2_fft_cfg fwd_cfg, codec2_fft_cfg inv_cfg) { int i,m; int Ns = Nfft/2+1; float Gdbfk[Ns], sample_freqs_kHz[Ns]; float AmdB[MAX_AMP+1], rate_L_sample_freqs_kHz[MAX_AMP+1]; /* interpolate in the log domain */ for(m=1; m<=model->L; m++) { assert(model->A[m] != 0.0); AmdB[m] = 20.0*log10f(model->A[m]); rate_L_sample_freqs_kHz[m] = (float)m*model->Wo*(c2const->Fs/2000.0)/M_PI; } for(i=0; iFs/1000.0)*(float)i/Nfft; } interp_para(Gdbfk, &rate_L_sample_freqs_kHz[1], &AmdB[1], model->L, sample_freqs_kHz, Ns); COMP S[Nfft], R[Nfft]; /* install negative frequency components, convert to mag squared of spectrum */ S[0].real = pow(10.0, Gdbfk[0]/10.0); S[0].imag = 0.0; for(i=1; ivoiced) { int index = encode_log_Wo(c2const, model->Wo, 6); if (index == 0) { index = 1; } indexes[3] = index; } else { indexes[3] = 0; } } /*---------------------------------------------------------------------------*\ FUNCTION....: newamp1_interpolate AUTHOR......: David Rowe DATE CREATED: Jan 2017 \*---------------------------------------------------------------------------*/ void newamp1_interpolate(float interpolated_surface_[], float left_vec[], float right_vec[], int K) { int i, k; int M = 4; float c; /* (linearly) interpolate 25Hz amplitude vectors back to 100Hz */ for(i=0,c=1.0; i. */ #ifndef __NEWAMP1__ #define __NEWAMP1__ #define NEWAMP1_N_INDEXES 4 /* Number of indexes to pack: vq1, vq2, energy, Wo */ #define NEWAMP1_PHASE_NFFT 128 /* size of FFT used for phase synthesis */ #define NEWAMP1_K 20 /* rate K vector length */ #define NEWAMP1_VQ_MBEST_DEPTH 5 /* how many candidates we keep for each stage of mbest search */ #include "codec2_fft.h" #include "comp.h" void interp_para(float y[], float xp[], float yp[], int np, float x[], int n); float ftomel(float fHz); void mel_sample_freqs_kHz(float rate_K_sample_freqs_kHz[], int K, float mel_start, float mel_end); void resample_const_rate_f(C2CONST *c2const, MODEL *model, float rate_K_vec[], float rate_K_sample_freqs_kHz[], int K); float rate_K_mbest_encode(int *indexes, float *x, float *xq, int ndim, int mbest_entries); void post_filter_newamp1(float vec[], float sample_freq_kHz[], int K, float pf_gain); void interp_Wo_v(float Wo_[], int L_[], int voicing_[], float Wo1, float Wo2, int voicing1, int voicing2); void resample_rate_L(C2CONST *c2const, MODEL *model, float rate_K_vec[], float rate_K_sample_freqs_kHz[], int K); void determine_phase(C2CONST *c2const, COMP H[], MODEL *model, int Nfft, codec2_fft_cfg fwd_cfg, codec2_fft_cfg inv_cfg); void determine_autoc(C2CONST *c2const, float Rk[], int order, MODEL *model, int Nfft, codec2_fft_cfg fwd_cfg, codec2_fft_cfg inv_cfg); void newamp1_model_to_indexes(C2CONST *c2const, int indexes[], MODEL *model, float rate_K_vec[], float rate_K_sample_freqs_kHz[], int K, float *mean, float rate_K_vec_no_mean[], float rate_K_vec_no_mean_[], float *se, float *eq, int eq_en); void newamp1_indexes_to_rate_K_vec(float rate_K_vec_[], float rate_K_vec_no_mean_[], float rate_K_sample_freqs_kHz[], int K, float *mean_, int indexes[], float user_rate_K_vec_no_mean_[], int post_filter_en); void newamp1_interpolate(float interpolated_surface_[], float left_vec[], float right_vec[], int K); void newamp1_eq(float rate_K_vec_no_mean[], float eq[], int K, int eq_en); void newamp1_indexes_to_model(C2CONST *c2const, MODEL model_[], COMP H[], float interpolated_surface_[], float prev_rate_K_vec_[], float *Wo_left, int *voicing_left, float rate_K_sample_freqs_kHz[], int K, codec2_fft_cfg fwd_cfg, codec2_fft_cfg inv_cfg, int indexes[], float user_rate_K_vec_no_mean_[], int post_filter_en); #endif codec2-1.0.1/src/newamp2.c000066400000000000000000000431071412132000500151450ustar00rootroot00000000000000/*---------------------------------------------------------------------------*\ FILE........: newamp2.c AUTHOR......: Thomas Kurin and Stefan Erhardt INSTITUTE...: Institute for Electronics Engineering, University of Erlangen-Nuremberg DATE CREATED: July 2018 BASED ON....: "newamp1" by David Rowe Quantisation functions for the sinusoidal coder, using "newamp1" algorithm that resamples variable rate L [Am} to a fixed rate K then VQs. \*---------------------------------------------------------------------------*/ /* Copyright David Rowe 2017 All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 2.1, as published by the Free Software Foundation. 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 Lesser General Public License along with this program; if not, see . */ #include #include #include #include #include #include "defines.h" #include "phase.h" #include "quantise.h" #include "mbest.h" #include "newamp1.h" #include "newamp2.h" /*---------------------------------------------------------------------------*\ FUNCTION....: n2_mel_sample_freqs_kHz() AUTHOR......: Thomas Kurin and Stefan Erhardt INSTITUTE...: Institute for Electronics Engineering, University of Erlangen-Nuremberg DATE CREATED: July 2018 Outputs fixed frequencies for the K-Vectors to be able to work with both 8k and 16k mode. \*---------------------------------------------------------------------------*/ void n2_mel_sample_freqs_kHz(float rate_K_sample_freqs_kHz[], int K) { float freq[] = {0.199816, 0.252849, 0.309008, 0.368476, 0.431449, 0.498134, 0.568749, 0.643526, 0.722710, 0.806561, 0.895354, 0.989380, 1.088948, 1.194384, 1.306034, 1.424264, 1.549463, 1.682041, 1.822432, 1.971098, 2.128525, 2.295232, 2.471763, 2.658699, 2.856652, 3.066272, 3.288246, 3.523303, 3.772214, 4.035795, 4.314912, 4.610478, 4.923465, 5.254899, 5.605865, 5.977518, 6.371075, 6.787827, 7.229141, 7.696465}; int k; //printf("\n\n"); for (k=0; kL; m++) { AmdB[m] = 20.0*log10(model->A[m]+1E-16); if (AmdB[m] > AmdB_peak) { AmdB_peak = AmdB[m]; } rate_L_sample_freqs_kHz[m] = m*model->Wo*(c2const->Fs/2000.0)/M_PI; //printf("m: %d AmdB: %f AmdB_peak: %f sf: %f\n", m, AmdB[m], AmdB_peak, rate_L_sample_freqs_kHz[m]); } /* clip between peak and peak -50dB, to reduce dynamic range */ for(m=1; m<=model->L; m++) { if (AmdB[m] < (AmdB_peak-50.0)) { AmdB[m] = AmdB_peak-50.0; } } interp_para(rate_K_vec, &rate_L_sample_freqs_kHz[1], &AmdB[1], model->L, rate_K_sample_freqs_kHz, K); } /*---------------------------------------------------------------------------*\ FUNCTION....: n2_rate_K_mbest_encode AUTHOR......: Thomas Kurin and Stefan Erhardt INSTITUTE...: Institute for Electronics Engineering, University of Erlangen-Nuremberg DATE CREATED: July 2018 One stage rate K newamp2 VQ quantiser using mbest search. \*---------------------------------------------------------------------------*/ void n2_rate_K_mbest_encode(int *indexes, float *x, float *xq, int ndim) { int i, n1; const float *codebook1 = newamp2vq_cb[0].cb; struct MBEST *mbest_stage1; float w[ndim]; int index[1]; /* codebook is compiled for a fixed K */ //assert(ndim == newamp2vq_cb[0].k); /* equal weights, could be argued mel freq axis gives freq dep weighting */ for(i=0; ilist[0].index[0]; mbest_destroy(mbest_stage1); //indexes[1]: legacy from newamp1 indexes[0] = n1; indexes[1] = n1; } /*---------------------------------------------------------------------------*\ FUNCTION....: n2_resample_rate_L AUTHOR......: Thomas Kurin and Stefan Erhardt INSTITUTE...: Institute for Electronics Engineering, University of Erlangen-Nuremberg DATE CREATED: July 2018 Decoder side conversion of rate K vector back to rate L. Plosives are set to zero for the first 2 of 4 frames. \*---------------------------------------------------------------------------*/ void n2_resample_rate_L(C2CONST *c2const, MODEL *model, float rate_K_vec[], float rate_K_sample_freqs_kHz[], int K,int plosive_flag) { float rate_K_vec_term[K+2], rate_K_sample_freqs_kHz_term[K+2]; float AmdB[MAX_AMP+1], rate_L_sample_freqs_kHz[MAX_AMP+1]; int m,k; /* terminate either end of the rate K vecs with 0dB points */ rate_K_vec_term[0] = rate_K_vec_term[K+1] = 0.0; rate_K_sample_freqs_kHz_term[0] = 0.0; rate_K_sample_freqs_kHz_term[K+1] = 4.0; for(k=0; kL; m++) { rate_L_sample_freqs_kHz[m] = m*model->Wo*(c2const->Fs/2000.0)/M_PI; } interp_para(&AmdB[1], rate_K_sample_freqs_kHz_term, rate_K_vec_term, K+2, &rate_L_sample_freqs_kHz[1], model->L); for(m=1; m<=model->L; m++) { if(plosive_flag==0){ model->A[m] = pow(10.0, AmdB[m]/20.0); }else{ model->A[m] = 0.1; } // printf("m: %d f: %f AdB: %f A: %f\n", m, rate_L_sample_freqs_kHz[m], AmdB[m], model->A[m]); } } /*---------------------------------------------------------------------------*\ FUNCTION....: n2_post_filter_newamp2 AUTHOR......: Thomas Kurin and Stefan Erhardt INSTITUTE...: Institute for Electronics Engineering, University of Erlangen-Nuremberg DATE CREATED: July 2018 Postfilter for the pseudo wideband mode. Still has to be adapted! \*---------------------------------------------------------------------------*/ void n2_post_filter_newamp2(float vec[], float sample_freq_kHz[], int K, float pf_gain) { int k; /* vec is rate K vector describing spectrum of current frame lets pre-emp before applying PF. 20dB/dec over 300Hz. Postfilter affects energy of frame so we measure energy before and after and normalise. Plenty of room for experiment here as well. */ float pre[K]; float e_before = 0.0; float e_after = 0.0; for(k=0; kvoiced) { int index = encode_log_Wo(c2const, model->Wo, 6); if (index == 0) { index = 1; } if (index == 63) { index = 62; } indexes[3] = index; } else { indexes[3] = 0; } if(plosive != 0){ indexes[3] = 63; } } /*---------------------------------------------------------------------------*\ FUNCTION....: newamp2_indexes_to_rate_K_vec AUTHOR......: Thomas Kurin and Stefan Erhardt INSTITUTE...: Institute for Electronics Engineering, University of Erlangen-Nuremberg DATE CREATED: July 2018 newamp2 decoder for amplitudes {Am}. Given the rate K VQ and energy indexes, outputs rate K vector. Equal to newamp1 but using only one stage VQ. \*---------------------------------------------------------------------------*/ void newamp2_indexes_to_rate_K_vec(float rate_K_vec_[], float rate_K_vec_no_mean_[], float rate_K_sample_freqs_kHz[], int K, float *mean_, int indexes[], float pf_gain) { int k; const float *codebook1 = newamp2vq_cb[0].cb; int n1 = indexes[0]; for(k=0; kmean2) \*---------------------------------------------------------------------------*/ void newamp2_16k_indexes_to_rate_K_vec(float rate_K_vec_[], float rate_K_vec_no_mean_[], float rate_K_sample_freqs_kHz[], int K, float *mean_, int indexes[], float pf_gain) { int k; const float *codebook1 = newamp2vq_cb[0].cb; float mean2 = 0; int n1 = indexes[0]; for(k=0; k50){ mean2 = 50; } for(k=0; k0 && indexes[3]<63) { Wo_right = decode_log_Wo(c2const, indexes[3], 6); voicing_right = 1; } //Unvoiced else if(indexes[3] == 0){ Wo_right = 2.0*M_PI/100.0; voicing_right = 0; } //indexes[3]=63 (= Plosive) and unvoiced else { Wo_right = 2.0*M_PI/100.0; voicing_right = 0; plosive_flag = 1; } /* interpolate 25Hz rate K vec back to 100Hz */ float *left_vec = prev_rate_K_vec_; float *right_vec = rate_K_vec_; newamp2_interpolate(interpolated_surface_, left_vec, right_vec, K,plosive_flag); /* interpolate 25Hz v and Wo back to 100Hz */ float aWo_[M]; int avoicing_[M], aL_[M], i; interp_Wo_v(aWo_, aL_, avoicing_, *Wo_left, Wo_right, *voicing_left, voicing_right); /* back to rate L amplitudes, synthesis phase for each frame */ for(i=0; i0){ //First two frames are set to zero if (i<2){ n2_resample_rate_L(c2const, &model_[i], &interpolated_surface_[K*i], rate_K_sample_freqs_kHz, K,1); } else{ n2_resample_rate_L(c2const, &model_[i], &interpolated_surface_[K*i], rate_K_sample_freqs_kHz, K,0); } } //No Plosive, standard resample else{ n2_resample_rate_L(c2const, &model_[i], &interpolated_surface_[K*i], rate_K_sample_freqs_kHz, K,0); } determine_phase(c2const, &H[(MAX_AMP+1)*i], &model_[i], NEWAMP2_PHASE_NFFT, fwd_cfg, inv_cfg); } /* update memories for next time */ for(k=0; k. */ #ifndef __NEWAMP2__ #define __NEWAMP2__ #define NEWAMP2_N_INDEXES 4 /* Number of indexes to pack: vq1, vq2, energy, Wo */ #define NEWAMP2_PHASE_NFFT 128 /* size of FFT used for phase synthesis */ #define NEWAMP2_K 29 /* rate K vector length */ #define NEWAMP2_16K_K 40 /* rate K vector length for 16k Mode */ #include "codec2_fft.h" #include "comp.h" void n2_mel_sample_freqs_kHz(float rate_K_sample_freqs_kHz[], int K); void n2_resample_const_rate_f(C2CONST *c2const, MODEL *model, float rate_K_vec[], float rate_K_sample_freqs_kHz[], int K); void n2_rate_K_mbest_encode(int *indexes, float *x, float *xq, int ndim); void n2_resample_rate_L(C2CONST *c2const, MODEL *model, float rate_K_vec[], float rate_K_sample_freqs_kHz[], int K,int plosive_flag); void n2_post_filter_newamp2(float vec[], float sample_freq_kHz[], int K, float pf_gain); void newamp2_interpolate(float interpolated_surface_[], float left_vec[], float right_vec[], int K,int plosive_flag); void newamp2_model_to_indexes(C2CONST *c2const, int indexes[], MODEL *model, float rate_K_vec[], float rate_K_sample_freqs_kHz[], int K, float *mean, float rate_K_vec_no_mean[], float rate_K_vec_no_mean_[], int plosiv ); void newamp2_indexes_to_rate_K_vec(float rate_K_vec_[], float rate_K_vec_no_mean_[], float rate_K_sample_freqs_kHz[], int K, float *mean_, int indexes[], float pf_gain); void newamp2_16k_indexes_to_rate_K_vec(float rate_K_vec_[], float rate_K_vec_no_mean_[], float rate_K_sample_freqs_kHz[], int K, float *mean_, int indexes[], float pf_gain); void newamp2_indexes_to_model(C2CONST *c2const, MODEL model_[], COMP H[], float interpolated_surface_[], float prev_rate_K_vec_[], float *Wo_left, int *voicing_left, float rate_K_sample_freqs_kHz[], int K, codec2_fft_cfg fwd_cfg, codec2_fft_cfg inv_cfg, int indexes[], float pf_gain, int flag16k); #endif codec2-1.0.1/src/nlp.c000066400000000000000000000352611412132000500143670ustar00rootroot00000000000000/*---------------------------------------------------------------------------*\ FILE........: nlp.c AUTHOR......: David Rowe DATE CREATED: 23/3/93 Non Linear Pitch (NLP) estimation functions. \*---------------------------------------------------------------------------*/ /* Copyright (C) 2009 David Rowe All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 2.1, as published by the Free Software Foundation. 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 Lesser General Public License along with this program; if not, see . */ #include "defines.h" #include "nlp.h" #include "dump.h" #include "codec2_fft.h" #undef PROFILE #include "machdep.h" #include "os.h" #include #include #include /*---------------------------------------------------------------------------*\ DEFINES \*---------------------------------------------------------------------------*/ #define PMAX_M 320 /* maximum NLP analysis window size */ #define COEFF 0.95 /* notch filter parameter */ #define PE_FFT_SIZE 512 /* DFT size for pitch estimation */ #define DEC 5 /* decimation factor */ #define SAMPLE_RATE 8000 #define PI 3.141592654 /* mathematical constant */ #define T 0.1 /* threshold for local minima candidate */ #define F0_MAX 500 #define CNLP 0.3 /* post processor constant */ #define NLP_NTAP 48 /* Decimation LPF order */ /* 8 to 16 kHz sample rate conversion */ #define FDMDV_OS 2 /* oversampling rate */ #define FDMDV_OS_TAPS_16K 48 /* number of OS filter taps at 16kHz */ #define FDMDV_OS_TAPS_8K (FDMDV_OS_TAPS_16K/FDMDV_OS) /* number of OS filter taps at 8kHz */ /*---------------------------------------------------------------------------*\ GLOBALS \*---------------------------------------------------------------------------*/ /* 48 tap 600Hz low pass FIR filter coefficients */ const float nlp_fir[] = { -1.0818124e-03, -1.1008344e-03, -9.2768838e-04, -4.2289438e-04, 5.5034190e-04, 2.0029849e-03, 3.7058509e-03, 5.1449415e-03, 5.5924666e-03, 4.3036754e-03, 8.0284511e-04, -4.8204610e-03, -1.1705810e-02, -1.8199275e-02, -2.2065282e-02, -2.0920610e-02, -1.2808831e-02, 3.2204775e-03, 2.6683811e-02, 5.5520624e-02, 8.6305944e-02, 1.1480192e-01, 1.3674206e-01, 1.4867556e-01, 1.4867556e-01, 1.3674206e-01, 1.1480192e-01, 8.6305944e-02, 5.5520624e-02, 2.6683811e-02, 3.2204775e-03, -1.2808831e-02, -2.0920610e-02, -2.2065282e-02, -1.8199275e-02, -1.1705810e-02, -4.8204610e-03, 8.0284511e-04, 4.3036754e-03, 5.5924666e-03, 5.1449415e-03, 3.7058509e-03, 2.0029849e-03, 5.5034190e-04, -4.2289438e-04, -9.2768838e-04, -1.1008344e-03, -1.0818124e-03 }; typedef struct { int Fs; /* sample rate in Hz */ int m; float w[PMAX_M/DEC]; /* DFT window */ float sq[PMAX_M]; /* squared speech samples */ float mem_x,mem_y; /* memory for notch filter */ float mem_fir[NLP_NTAP]; /* decimation FIR filter memory */ codec2_fft_cfg fft_cfg; /* kiss FFT config */ float *Sn16k; /* Fs=16kHz input speech vector */ FILE *f; } NLP; float post_process_sub_multiples(COMP Fw[], int pmin, int pmax, float gmax, int gmax_bin, float *prev_f0); static void fdmdv_16_to_8(float out8k[], float in16k[], int n); /*---------------------------------------------------------------------------*\ nlp_create() Initialisation function for NLP pitch estimator. \*---------------------------------------------------------------------------*/ void *nlp_create(C2CONST *c2const) { NLP *nlp; int i; int m = c2const->m_pitch; int Fs = c2const->Fs; nlp = (NLP*)malloc(sizeof(NLP)); if (nlp == NULL) return NULL; assert((Fs == 8000) || (Fs == 16000)); nlp->Fs = Fs; nlp->m = m; /* if running at 16kHz allocate storage for decimating filter memory */ if (Fs == 16000) { nlp->Sn16k = (float*)malloc(sizeof(float)*(FDMDV_OS_TAPS_16K + c2const->n_samp)); for(i=0; iSn16k[i] = 0.0; } if (nlp->Sn16k == NULL) { free(nlp); return NULL; } /* most processing occurs at 8 kHz sample rate so halve m */ m /= 2; } assert(m <= PMAX_M); for(i=0; iw[i] = 0.5 - 0.5*cosf(2*PI*i/(m/DEC-1)); } for(i=0; isq[i] = 0.0; nlp->mem_x = 0.0; nlp->mem_y = 0.0; for(i=0; imem_fir[i] = 0.0; nlp->fft_cfg = codec2_fft_alloc (PE_FFT_SIZE, 0, NULL, NULL); assert(nlp->fft_cfg != NULL); return (void*)nlp; } /*---------------------------------------------------------------------------*\ nlp_destroy() Shut down function for NLP pitch estimator. \*---------------------------------------------------------------------------*/ void nlp_destroy(void *nlp_state) { NLP *nlp; assert(nlp_state != NULL); nlp = (NLP*)nlp_state; codec2_fft_free(nlp->fft_cfg); if (nlp->Fs == 16000) { free(nlp->Sn16k); } free(nlp_state); } /*---------------------------------------------------------------------------*\ nlp() Determines the pitch in samples using the Non Linear Pitch (NLP) algorithm [1]. Returns the fundamental in Hz. Note that the actual pitch estimate is for the centre of the M sample Sn[] vector, not the current N sample input vector. This is (I think) a delay of 2.5 frames with N=80 samples. You should align further analysis using this pitch estimate to be centred on the middle of Sn[]. Two post processors have been tried, the MBE version (as discussed in [1]), and a post processor that checks sub-multiples. Both suffer occasional gross pitch errors (i.e. neither are perfect). In the presence of background noise the sub-multiple algorithm tends towards low F0 which leads to better sounding background noise than the MBE post processor. A good way to test and develop the NLP pitch estimator is using the tnlp (codec2/unittest) and the codec2/octave/plnlp.m Octave script. A pitch tracker searching a few frames forward and backward in time would be a useful addition. References: [1] http://rowetel.com/downloads/1997_rowe_phd_thesis.pdf Chapter 4 \*---------------------------------------------------------------------------*/ float nlp( void *nlp_state, float Sn[], /* input speech vector */ int n, /* frames shift (no. new samples in Sn[]) */ float *pitch, /* estimated pitch period in samples at current Fs */ COMP Sw[], /* Freq domain version of Sn[] */ float W[], /* Freq domain window */ float *prev_f0 /* previous pitch f0 in Hz, memory for pitch tracking */ ) { NLP *nlp; float notch; /* current notch filter output */ COMP Fw[PE_FFT_SIZE]; /* DFT of squared signal (input/output) */ float gmax; int gmax_bin; int m, i, j; float best_f0; PROFILE_VAR(start, tnotch, filter, peakpick, window, fft, magsq, shiftmem); assert(nlp_state != NULL); nlp = (NLP*)nlp_state; m = nlp->m; /* Square, notch filter at DC, and LP filter vector */ /* If running at 16 kHz decimate to 8 kHz, as NLP ws designed for Fs = 8kHz. The decimating filter introduces about 3ms of delay, that shouldn't be a problem as pitch changes slowly. */ if (nlp->Fs == 8000) { /* Square latest input samples */ for(i=m-n; isq[i] = Sn[i]*Sn[i]; } } else { assert(nlp->Fs == 16000); /* re-sample at 8 KHz */ for(i=0; iSn16k[FDMDV_OS_TAPS_16K+i] = Sn[m-n+i]; } m /= 2; n /= 2; float Sn8k[n]; fdmdv_16_to_8(Sn8k, &nlp->Sn16k[FDMDV_OS_TAPS_16K], n); /* Square latest input samples */ for(i=m-n, j=0; isq[i] = Sn8k[j]*Sn8k[j]; } assert(j <= n); } //fprintf(stderr, "n: %d m: %d\n", n, m); PROFILE_SAMPLE(start); for(i=m-n; isq[i] - nlp->mem_x; notch += COEFF*nlp->mem_y; nlp->mem_x = nlp->sq[i]; nlp->mem_y = notch; nlp->sq[i] = notch + 1.0; /* With 0 input vectors to codec, kiss_fft() would take a long time to execute when running in real time. Problem was traced to kiss_fft function call in this function. Adding this small constant fixed problem. Not exactly sure why. */ } PROFILE_SAMPLE_AND_LOG(tnotch, start, " square and notch"); for(i=m-n; imem_fir[j] = nlp->mem_fir[j+1]; nlp->mem_fir[NLP_NTAP-1] = nlp->sq[i]; nlp->sq[i] = 0.0; for(j=0; jsq[i] += nlp->mem_fir[j]*nlp_fir[j]; } PROFILE_SAMPLE_AND_LOG(filter, tnotch, " filter"); /* Decimate and DFT */ for(i=0; isq[i*DEC]*nlp->w[i]; } PROFILE_SAMPLE_AND_LOG(window, filter, " window"); #ifdef DUMP dump_dec(Fw); #endif // FIXME: check if this can be converted to a real fft // since all imag inputs are 0 codec2_fft_inplace(nlp->fft_cfg, Fw); PROFILE_SAMPLE_AND_LOG(fft, window, " fft"); for(i=0; isq); dump_Fw(Fw); #endif /* todo: express everything in f0, as pitch in samples is dep on Fs */ int pmin = floor(SAMPLE_RATE*P_MIN_S); int pmax = floor(SAMPLE_RATE*P_MAX_S); /* find global peak */ gmax = 0.0; gmax_bin = PE_FFT_SIZE*DEC/pmax; for(i=PE_FFT_SIZE*DEC/pmax; i<=PE_FFT_SIZE*DEC/pmin; i++) { if (Fw[i].real > gmax) { gmax = Fw[i].real; gmax_bin = i; } } PROFILE_SAMPLE_AND_LOG(peakpick, magsq, " peak pick"); best_f0 = post_process_sub_multiples(Fw, pmin, pmax, gmax, gmax_bin, prev_f0); PROFILE_SAMPLE_AND_LOG(shiftmem, peakpick, " post process"); /* Shift samples in buffer to make room for new samples */ for(i=0; isq[i] = nlp->sq[i+n]; /* return pitch period in samples and F0 estimate */ *pitch = (float)nlp->Fs/best_f0; PROFILE_SAMPLE_AND_LOG2(shiftmem, " shift mem"); PROFILE_SAMPLE_AND_LOG2(start, " nlp int"); *prev_f0 = best_f0; return(best_f0); } /*---------------------------------------------------------------------------*\ post_process_sub_multiples() Given the global maximma of Fw[] we search integer submultiples for local maxima. If local maxima exist and they are above an experimentally derived threshold (OK a magic number I pulled out of the air) we choose the submultiple as the F0 estimate. The rational for this is that the lowest frequency peak of Fw[] should be F0, as Fw[] can be considered the autocorrelation function of Sw[] (the speech spectrum). However sometimes due to phase effects the lowest frequency maxima may not be the global maxima. This works OK in practice and favours low F0 values in the presence of background noise which means the sinusoidal codec does an OK job of synthesising the background noise. High F0 in background noise tends to sound more periodic introducing annoying artifacts. \*---------------------------------------------------------------------------*/ float post_process_sub_multiples(COMP Fw[], int pmin, int pmax, float gmax, int gmax_bin, float *prev_f0) { int min_bin, cmax_bin; int mult; float thresh, best_f0; int b, bmin, bmax, lmax_bin; float lmax; int prev_f0_bin; /* post process estimate by searching submultiples */ mult = 2; min_bin = PE_FFT_SIZE*DEC/pmax; cmax_bin = gmax_bin; prev_f0_bin = *prev_f0*(PE_FFT_SIZE*DEC)/SAMPLE_RATE; while(gmax_bin/mult >= min_bin) { b = gmax_bin/mult; /* determine search interval */ bmin = 0.8*b; bmax = 1.2*b; if (bmin < min_bin) bmin = min_bin; /* lower threshold to favour previous frames pitch estimate, this is a form of pitch tracking */ if ((prev_f0_bin > bmin) && (prev_f0_bin < bmax)) thresh = CNLP*0.5*gmax; else thresh = CNLP*gmax; lmax = 0; lmax_bin = bmin; for (b=bmin; b<=bmax; b++) /* look for maximum in interval */ if (Fw[b].real > lmax) { lmax = Fw[b].real; lmax_bin = b; } if (lmax > thresh) if ((lmax > Fw[lmax_bin-1].real) && (lmax > Fw[lmax_bin+1].real)) { cmax_bin = lmax_bin; } mult++; } best_f0 = (float)cmax_bin*SAMPLE_RATE/(PE_FFT_SIZE*DEC); return best_f0; } /*---------------------------------------------------------------------------*\ FUNCTION....: fdmdv_16_to_8() AUTHOR......: David Rowe DATE CREATED: 9 May 2012 Changes the sample rate of a signal from 16 to 8 kHz. n is the number of samples at the 8 kHz rate, there are FDMDV_OS*n samples at the 48 kHz rate. As above however a memory of FDMDV_OS_TAPS samples is reqd for in16k[] (see t16_8.c unit test as example). Low pass filter the 16 kHz signal at 4 kHz using the same filter as the upsampler, then just output every FDMDV_OS-th filtered sample. Note: this function copied from fdmdv.c, included in nlp.c as a convenience to avoid linking with another source file. \*---------------------------------------------------------------------------*/ static void fdmdv_16_to_8(float out8k[], float in16k[], int n) { float acc; int i,j,k; for(i=0, k=0; k. */ #ifndef __NLP__ #define __NLP__ #include "comp.h" void *nlp_create(C2CONST *c2const); void nlp_destroy(void *nlp_state); float nlp(void *nlp_state, float Sn[], int n, float *pitch_samples, COMP Sw[], float W[], float *prev_f0); #endif codec2-1.0.1/src/noise_samples.h000066400000000000000000053743141412132000500164560ustar00rootroot00000000000000/* unit variance complex noise samples */ /* Generated by write_noise_file() Octave function */ COMP noise[]={ {-1.885516,0.055745}, {-0.521966,-0.622614}, {1.066249,0.337187}, {0.425638,1.008370}, {-0.318666,-0.210894}, {-0.498824,0.361164}, {-0.300114,-0.527950}, {0.385872,0.182296}, {1.195960,-0.586922}, {0.266811,0.178374}, {0.013054,0.215778}, {-0.823216,-0.322273}, {0.837766,-0.727259}, {-0.862485,0.092857}, {0.075880,0.633056}, {-0.410681,-0.646296}, {0.586237,-0.116673}, {-0.058715,0.066528}, {0.857992,-1.043428}, {-0.123710,-0.261511}, {0.185764,0.023376}, {0.236794,-0.527785}, {-1.703954,0.502907}, {-0.299082,-0.422089}, {-0.288630,-0.675562}, {-0.424885,-0.319811}, {-0.032088,0.101098}, {0.605509,0.242926}, {0.145393,-0.199722}, {-0.184393,-1.528490}, {0.081268,-0.843421}, {0.654326,-0.158813}, {-0.234536,1.226681}, {0.221648,-1.226646}, {-0.193938,-0.336096}, {-0.518051,-1.309855}, {-0.664323,1.059784}, {0.007637,1.113850}, {-0.465620,1.714405}, {1.028837,-0.549814}, {0.073478,-0.721235}, {0.964658,0.084118}, {-1.822765,-0.997525}, {1.032482,0.916581}, {-0.597571,-0.136872}, {-0.009127,-0.208567}, {0.516709,-0.773967}, {-1.129711,1.021948}, {-0.697322,-0.812202}, {0.327103,-0.638199}, {-0.497829,0.319382}, {-1.362630,-0.414764}, {-0.307641,0.207521}, {-0.982186,-0.198641}, {-0.588516,-0.097265}, {1.299202,0.644097}, {-0.972070,-0.680644}, {0.782015,-0.002870}, {-1.177445,-1.014379}, {-0.398772,0.513042}, {-0.666921,0.266484}, {-0.803497,0.971730}, {0.267153,0.335670}, {-0.591532,0.779734}, {-1.211656,-0.382351}, {0.065910,-0.504718}, {-0.686435,-0.584560}, {0.858992,-1.042560}, {0.847992,1.057437}, {1.492562,-0.829278}, {0.816092,-1.530742}, {-0.520592,-0.549319}, {-0.076793,0.021602}, {-0.697792,0.763414}, {0.821960,0.552985}, {0.376647,-1.094689}, {-1.401195,-0.857007}, {-0.376378,-0.783975}, {-0.120497,0.662907}, {0.670862,-0.673604}, {-0.177972,-1.238774}, {-0.037790,-1.376598}, {-0.899490,-0.445965}, {0.474709,1.022354}, {-0.291882,0.370018}, {-0.072661,-0.118012}, {0.396912,-1.371327}, {-0.711547,0.258054}, {-1.118704,-0.050908}, {-0.592657,-1.747229}, {-0.731285,-0.387065}, {-0.535939,-0.294046}, {-1.314716,-1.534715}, {0.361445,0.618672}, {-0.082988,-0.336140}, {0.210252,0.650233}, {-0.674824,0.056007}, {0.596070,0.007299}, {0.305633,-1.176059}, {1.659456,0.424673}, {0.660546,-0.514937}, {-0.206967,0.241885}, {-1.104655,-0.744576}, {-0.218762,0.014955}, {0.165193,1.381141}, {0.078718,-1.222328}, {-0.377642,-0.152884}, {0.108755,0.412056}, {-0.429127,-0.383452}, {0.518805,0.741250}, {0.740139,-0.770384}, {-1.485392,-0.336407}, {-0.078238,0.141468}, {-1.271050,0.180219}, {-0.211076,-1.217480}, {1.461947,0.144679}, {-0.109724,-0.861360}, {-0.296620,-1.282399}, {0.201649,-0.713701}, {-0.156722,0.424378}, {1.029760,-1.173706}, {0.571211,-0.156216}, {-0.455729,0.236642}, {0.742660,0.014606}, {-0.097202,-0.498742}, {0.266521,0.048233}, {-0.060433,0.282215}, {-0.239310,1.006663}, {0.389689,-0.071960}, {-0.689538,0.568830}, {0.759056,0.330529}, {0.149945,-0.521060}, {-0.580738,-0.907159}, {1.448531,-0.054100}, {0.690290,0.275166}, {-0.478557,-0.516261}, {-0.820324,-0.831472}, {-0.341231,0.409044}, {0.180268,0.231572}, {-0.450892,1.061669}, {0.192718,-0.862400}, {-0.399038,0.268735}, {-0.856262,-0.454883}, {0.363651,-0.198669}, {-0.642075,-0.189629}, {0.005932,-0.508157}, {0.985162,-0.020120}, {1.562916,0.229486}, {-0.899449,0.307419}, {0.112975,0.627516}, {-1.857863,-1.008967}, {0.378419,0.019322}, {0.443381,0.253609}, {1.715317,-0.767294}, {-0.385770,0.001505}, {-0.645703,-0.310651}, {-1.888905,0.409068}, {0.805380,0.333960}, {-1.046012,-0.674661}, {0.794386,-0.303931}, {-0.286721,0.610492}, {-0.123797,-0.552424}, {0.206278,-0.663653}, {0.428624,-0.249450}, {0.430463,-0.635776}, {-0.119454,0.773666}, {-0.578332,-0.980697}, {0.235559,1.481441}, {-0.714737,-1.423728}, {0.350707,0.157071}, {0.453768,0.680754}, {0.283172,-1.286042}, {0.031254,-0.559665}, {-0.008719,-0.527750}, {-1.036011,-0.024812}, {0.392333,0.647429}, {0.203090,0.422197}, {-1.948977,0.778356}, {1.366324,-0.798091}, {1.180139,-0.048221}, {0.114722,1.012431}, {0.615604,0.391601}, {0.987843,0.495600}, {-0.496219,-0.900673}, {1.001277,-0.568435}, {-0.576352,-1.332582}, {0.306377,0.123371}, {0.211114,-0.685042}, {0.298619,0.362809}, {0.202382,0.173210}, {-0.075417,-0.014578}, {-1.015379,-0.025271}, {0.128685,0.929594}, {-0.723128,0.984769}, {-0.536901,-0.125969}, {0.240670,0.812981}, {-0.763511,1.108132}, {0.500508,-0.241395}, {0.624663,-0.410191}, {-0.094272,-0.521839}, {1.429982,-0.369827}, {-0.070236,-1.263636}, {-0.498143,-0.973796}, {0.575172,-1.017724}, {0.487669,0.215515}, {0.562802,-0.136995}, {-0.963325,-0.880169}, {-0.541808,-0.623215}, {0.613993,0.303645}, {-0.604527,-0.329199}, {-0.331248,1.331861}, {-1.040864,1.077405}, {0.342707,0.741436}, {-0.627839,-0.347768}, {0.231630,-0.578183}, {-1.128172,0.396462}, {-0.198999,1.538255}, {-0.177279,-0.290086}, {-0.687712,-0.894058}, {-0.124584,0.925987}, {-0.602825,0.432388}, {-0.111357,-0.496225}, {0.034978,0.298642}, {0.324142,-0.092883}, {1.347456,0.820678}, {0.674479,-0.288974}, {1.539829,-1.107841}, {-1.023161,0.056007}, {0.317892,-0.963086}, {0.158138,0.483226}, {0.340379,-0.422898}, {-0.813880,-0.882603}, {-0.322466,0.829669}, {-0.217180,-1.046571}, {0.452658,0.839521}, {-0.622912,-0.060398}, {-0.034008,-0.564055}, {-1.793271,-0.605655}, {-0.028383,0.886204}, {-0.308408,0.061571}, {0.536948,0.120042}, {-0.574106,-0.562561}, {0.406051,-0.338068}, {0.492813,-0.083346}, {-0.711445,-0.455225}, {-0.061165,0.217759}, {0.338502,-0.376511}, {0.832324,-0.406104}, {-0.083176,0.715563}, {0.040608,-0.871143}, {-0.462891,0.849255}, {-0.372708,-1.019345}, {0.934808,-0.626071}, {1.010369,-1.084185}, {0.479580,-0.842863}, {0.927175,0.131809}, {-0.689773,-0.142861}, {1.343912,0.404388}, {-1.759282,0.448528}, {0.619114,-0.525565}, {-0.321018,0.404425}, {-0.741470,-0.296394}, {-1.980475,0.026427}, {-0.614688,0.342918}, {0.066823,0.132296}, {0.498182,0.005019}, {0.182848,0.162708}, {-0.493550,0.153312}, {1.072346,-1.225466}, {1.139312,0.832815}, {1.252850,0.105664}, {-0.397363,-0.754276}, {0.580338,-1.300751}, {0.009278,-0.598071}, {0.402804,-0.530334}, {-0.039782,-0.370667}, {-0.990988,-0.169245}, {1.697751,-0.452739}, {1.272906,-0.324169}, {-1.567337,-0.459235}, {-0.798090,-0.024978}, {0.697111,-1.399949}, {0.110211,-0.941636}, {-1.480043,-0.132934}, {-1.148194,0.987249}, {-0.873447,-0.209100}, {1.065186,-1.104929}, {0.099062,0.126155}, {1.977617,0.094483}, {-0.786564,-0.546020}, {-0.714383,0.131073}, {0.905849,0.394293}, {0.190777,-0.513831}, {0.437916,0.203698}, {1.043923,0.145473}, {-0.443628,-0.725054}, {0.983123,-0.489622}, {0.842413,0.307580}, {-0.822191,-0.258379}, {-0.523631,0.285446}, {0.571865,-0.025860}, {-0.201652,-0.099850}, {-0.022666,0.495916}, {0.596392,0.867633}, {0.804110,-0.338599}, {-0.026179,-1.043212}, {-0.598738,0.094476}, {-1.478593,-0.541411}, {-0.941390,0.363421}, {0.361994,0.590341}, {1.113285,-1.212781}, {0.701988,0.084937}, {-0.083600,-0.245951}, {-1.484694,-0.468464}, {0.162783,1.536800}, {0.252869,-0.052530}, {0.926480,-0.277632}, {0.299984,-1.410909}, {-0.425939,-0.332244}, {0.464111,0.662834}, {-0.802428,-0.324926}, {0.028548,0.511754}, {0.140263,0.200719}, {1.751965,1.362158}, {0.773686,-0.044970}, {-0.098854,0.668847}, {-0.356892,1.006610}, {0.272827,0.118268}, {0.294481,0.308008}, {1.772151,0.001790}, {0.399585,-0.223070}, {0.143887,0.187282}, {-0.580062,0.483563}, {0.263317,0.146606}, {0.913153,0.409123}, {0.176392,0.531394}, {1.266576,0.812919}, {-0.339609,-0.004748}, {1.029027,-0.899818}, {-0.770858,-0.547236}, {0.286743,-0.638120}, {-0.521747,-0.089493}, {-0.565535,-0.929156}, {-1.535774,0.479567}, {-0.615287,-0.520953}, {-0.553663,-0.319031}, {0.582640,1.113202}, {0.232977,0.041975}, {-0.199109,-0.254687}, {-0.066200,0.947135}, {0.666122,0.627375}, {0.480019,1.051260}, {-0.093472,-0.787448}, {0.480187,0.926381}, {-0.857216,0.556518}, {0.442832,0.376201}, {-0.119017,-0.140136}, {-0.409616,-1.213675}, {-0.437294,-0.024768}, {0.451274,-0.787326}, {-0.533223,-0.923706}, {0.131233,1.268746}, {1.743505,1.131077}, {0.987317,0.595257}, {-0.088862,0.853512}, {0.551818,0.665099}, {0.883782,0.470033}, {-0.516423,-1.423524}, {0.091609,0.378477}, {0.009939,0.994809}, {1.045723,-1.221703}, {-0.276956,-0.093140}, {-0.409436,-0.171621}, {-0.964290,-0.362871}, {0.592260,0.544377}, {-0.681616,-0.447483}, {-0.431291,0.024446}, {0.663176,1.026108}, {0.838537,-0.118180}, {-0.747318,0.251341}, {-0.380034,-0.715319}, {-0.900635,0.212346}, {-0.464843,0.620745}, {-1.093005,0.607958}, {0.515036,1.299937}, {-1.016371,-0.029679}, {-0.205308,0.148501}, {0.505373,-0.440794}, {-0.048557,-0.301057}, {-0.698358,-1.099303}, {-0.088257,-0.329308}, {0.075595,-0.362464}, {0.027192,-0.680106}, {-0.757238,-0.166757}, {-1.448321,-0.138835}, {-0.136439,0.459323}, {0.912758,0.296751}, {0.799521,-0.573520}, {-0.861892,-0.589343}, {-0.567036,0.158120}, {0.478773,-1.056482}, {0.709261,0.523567}, {0.739101,-1.002925}, {-0.494944,0.003764}, {0.454782,-0.046268}, {0.210620,0.297517}, {-0.781813,0.236194}, {0.348782,-0.613968}, {-0.094413,-0.465826}, {1.768494,-0.406883}, {0.007841,0.789725}, {-0.162655,0.552781}, {-0.758330,0.343804}, {0.454609,-0.732044}, {-0.168881,0.095592}, {0.515566,-0.569084}, {1.255135,-0.757000}, {0.469649,0.564189}, {1.260765,0.360564}, {0.055027,-0.177677}, {0.600213,-1.511142}, {-0.018551,1.257905}, {0.308072,0.151081}, {-0.207634,-1.327921}, {-0.527733,0.174325}, {-0.159456,-0.732546}, {-0.220168,-0.415477}, {0.543532,-0.145998}, {0.884459,1.021665}, {-0.262540,-0.398469}, {-0.281570,0.698927}, {-0.908972,-0.709079}, {1.589970,0.503578}, {-0.171265,-0.741831}, {-0.743265,-0.294431}, {0.731885,0.012954}, {0.007728,-0.499237}, {0.089515,-0.775161}, {0.725415,-0.411110}, {0.298849,-0.118750}, {-1.303123,0.250206}, {0.310939,0.936912}, {-0.172330,0.754859}, {0.093154,0.269182}, {-0.858640,-0.029252}, {-1.073149,0.280686}, {-0.601430,-0.256738}, {-0.351531,-0.914084}, {-1.751136,-0.490966}, {0.112360,-0.656132}, {0.921817,-0.276350}, {0.763771,0.769928}, {0.221840,1.213251}, {-0.706608,-0.303978}, {0.281566,-1.404763}, {1.496795,0.177279}, {0.261977,-0.939172}, {-0.919389,-0.188529}, {0.044503,0.718759}, {-0.825230,0.774033}, {0.693991,0.858213}, {0.509792,0.099608}, {-0.020553,-0.839990}, {-0.854648,-0.540134}, {-0.000525,1.256322}, {0.894022,-0.693105}, {0.442684,-0.596914}, {0.498318,0.275977}, {-0.388386,0.465259}, {0.414579,-1.294942}, {0.098001,-0.237709}, {1.594870,-0.240582}, {-0.711413,0.451491}, {0.019527,2.133193}, {0.948900,0.242084}, {0.059194,0.584269}, {0.852393,-0.156332}, {-1.485739,0.262110}, {-0.016760,-0.827316}, {-0.891646,0.181925}, {-0.018801,0.682929}, {-0.690712,-0.572420}, {1.070712,0.423795}, {1.438766,0.043977}, {-0.318368,-0.067348}, {-0.661371,-1.089229}, {0.046538,0.984436}, {0.749236,-0.964548}, {1.566314,0.918615}, {-1.235787,1.002522}, {0.416022,1.866776}, {1.217135,0.668893}, {-0.698937,-0.486054}, {-0.478062,-1.168289}, {1.113613,-0.737028}, {0.773078,0.234230}, {-0.270515,-0.411625}, {-0.228462,0.192394}, {-0.838646,0.153818}, {-0.436599,-0.408881}, {-0.286055,-0.410803}, {0.729377,-0.731766}, {0.197643,0.237175}, {0.836606,0.664076}, {-1.657439,1.703306}, {-0.925155,-0.171418}, {0.078549,-0.331130}, {0.629470,0.307286}, {1.248656,0.135449}, {1.243601,0.442489}, {0.387421,-0.154848}, {-1.179918,-0.732728}, {1.236507,0.602991}, {0.372452,0.171586}, {-0.394677,-0.101565}, {0.381677,1.147393}, {-1.697199,0.109712}, {0.188553,-0.752200}, {0.333632,-1.929951}, {-1.659946,0.767602}, {-0.190815,-0.557146}, {-1.244192,0.038106}, {0.077329,0.305661}, {0.945212,1.065261}, {-0.912713,1.292797}, {-0.391785,-0.024158}, {0.240759,-1.304114}, {0.112919,-0.091566}, {-0.424359,-0.382424}, {-1.079261,0.972243}, {0.454041,-0.530269}, {-1.976890,-0.123184}, {-0.190632,-0.544888}, {0.296577,-0.825026}, {-0.477747,-0.335360}, {0.208503,0.097964}, {-0.579558,-0.380423}, {-0.414982,-0.344604}, {0.940711,-0.907772}, {-0.962894,-1.441203}, {-0.648064,2.197827}, {-0.633787,-0.990602}, {0.215111,-0.181544}, {0.232828,-0.123360}, {-0.303892,1.339899}, {-0.166969,1.219343}, {0.508222,-0.102310}, {-0.811188,1.126966}, {0.321233,-1.277579}, {0.007428,0.316342}, {0.506948,0.481229}, {-1.304547,0.311991}, {0.142125,0.263640}, {0.391351,0.737307}, {1.437568,-0.534043}, {-0.949425,1.069958}, {-0.409085,-0.759735}, {0.412259,0.737801}, {-0.492377,-0.804608}, {-0.217219,-0.405020}, {0.115039,0.000846}, {0.349041,0.299516}, {-0.460594,0.403723}, {0.196753,1.155867}, {-0.277940,0.266830}, {-0.274583,0.585154}, {-1.172068,1.790906}, {0.590439,-0.406621}, {1.328016,-0.283713}, {1.517565,-0.073409}, {0.130855,1.772665}, {-2.619775,1.072108}, {0.319751,1.536673}, {0.047733,-0.326729}, {0.289634,1.226698}, {2.014575,-0.883138}, {0.229264,-0.183602}, {0.589396,-1.070306}, {0.273592,-2.039844}, {-0.935323,-0.715785}, {0.849403,0.619567}, {0.480466,-0.484123}, {0.222280,-0.134613}, {-0.258632,-1.289221}, {0.050742,0.026907}, {-0.283583,0.031728}, {-0.757978,0.771411}, {-0.434361,0.111156}, {0.021107,-0.043801}, {0.773835,-0.122289}, {-0.292605,0.119946}, {0.501058,0.447133}, {0.227193,0.479879}, {-0.544627,-0.222938}, {0.583272,-0.387875}, {-0.223831,-0.468512}, {-1.520007,0.446069}, {-0.573569,0.226990}, {-1.019881,0.053637}, {-0.634610,-0.875259}, {0.504476,-0.027282}, {-0.039342,0.409377}, {0.202815,1.231918}, {-0.843921,0.164374}, {0.356392,-0.821357}, {0.108781,-0.523469}, {-0.196590,-0.568744}, {0.903934,1.041689}, {-0.544910,-0.022931}, {0.299150,1.544291}, {0.880525,0.454125}, {-0.528507,-0.169262}, {-0.683196,-0.079160}, {0.153998,-0.420623}, {0.324243,0.022550}, {0.099578,1.237426}, {0.613243,0.648504}, {-0.190038,0.945184}, {-1.058645,0.829361}, {0.657373,-0.037085}, {0.292522,-1.824963}, {1.306603,0.982009}, {0.202489,-0.632477}, {-0.198865,1.503029}, {-0.506292,0.002522}, {0.709691,0.107836}, {-0.135288,-0.949001}, {-0.013697,0.446746}, {0.269863,1.736851}, {0.147020,-0.676663}, {-0.044332,0.878172}, {-0.969214,0.385042}, {-0.108626,-0.577699}, {0.573041,-0.693982}, {-0.430415,1.253413}, {0.106646,-0.057892}, {-0.946692,-0.108739}, {-0.070615,-0.924246}, {-0.407323,-1.048572}, {0.541592,-0.183877}, {1.559869,-0.734420}, {-0.667415,-0.567982}, {0.194163,-0.030077}, {0.088646,0.226636}, {0.502396,-1.399375}, {-0.016646,-0.215656}, {0.348238,0.112063}, {1.303715,0.470275}, {-0.665134,-0.786941}, {0.470438,0.135527}, {-1.337204,0.482771}, {-0.535810,0.980521}, {-0.168026,-0.750603}, {0.387649,-0.230317}, {-0.100852,0.278379}, {0.685615,0.909829}, {-1.248533,-0.401446}, {0.402464,1.846549}, {0.119498,0.304702}, {0.717501,-1.078118}, {-0.450438,0.775426}, {-1.459832,-0.482867}, {0.328487,-0.012362}, {-0.126026,0.086507}, {-0.630993,0.029377}, {-1.326625,0.927913}, {-0.198820,0.150652}, {0.266277,-0.555360}, {0.424295,-0.359816}, {1.393099,-0.408979}, {-0.137465,0.133084}, {0.628200,-0.501458}, {-0.684531,-0.666955}, {-0.181920,0.890694}, {-0.700720,-0.956197}, {-0.060714,-1.247294}, {-0.405972,-0.881525}, {1.118188,0.072000}, {-0.195761,-1.868639}, {0.358203,0.349429}, {0.154352,-1.476324}, {-0.210438,-1.836233}, {0.277728,0.211249}, {0.104063,1.608697}, {0.078646,-0.690233}, {1.107666,0.152621}, {0.976973,0.132356}, {0.625021,0.424496}, {1.106620,-1.108251}, {-0.606551,0.611908}, {-0.079978,0.362614}, {0.450618,0.582625}, {-0.256559,-0.109762}, {-1.029120,-0.607627}, {0.030983,0.226229}, {0.466365,-0.698225}, {-0.320317,0.232588}, {-0.294836,0.215016}, {0.380833,0.902802}, {0.179398,-0.539814}, {-0.750583,-0.650149}, {-0.528202,0.616827}, {-1.363519,-1.202585}, {0.284990,-1.236363}, {0.243581,-0.864788}, {0.624023,0.137801}, {-0.032040,-0.595454}, {0.518910,0.207927}, {-0.623962,0.216663}, {-0.382311,0.684690}, {-1.561598,0.901426}, {0.426931,1.278804}, {0.332361,-0.658982}, {0.181141,-0.012956}, {0.171052,0.552234}, {-0.435677,0.454231}, {-0.919015,0.176359}, {-0.000067,-0.799626}, {-0.930220,-0.187525}, {-0.452119,-0.228146}, {0.380184,-0.566153}, {-0.179594,0.470684}, {0.176167,-0.917050}, {0.002315,0.589605}, {1.252774,0.206557}, {-0.284561,-1.124914}, {0.174024,0.351072}, {-0.838853,1.170720}, {-0.067488,-0.254230}, {-0.622343,-1.414225}, {0.436853,0.611763}, {-0.128391,0.096025}, {-0.819464,-0.451713}, {-0.165038,-0.122421}, {0.024147,-1.314003}, {0.304931,0.164088}, {-0.288640,-0.620373}, {0.357003,0.454057}, {-1.286647,0.415088}, {1.849891,0.616365}, {-0.185972,-1.212797}, {-0.415794,-0.401859}, {-0.431783,-0.137922}, {0.768623,-0.292081}, {0.012545,1.445239}, {-1.689607,-0.394403}, {0.152052,-0.025210}, {-1.765495,0.816127}, {0.035743,0.371073}, {-0.218734,-0.149507}, {1.291120,-1.111594}, {-0.374380,0.070194}, {-0.903368,0.788305}, {0.867657,-0.973921}, {0.913874,0.430432}, {-0.121419,0.832404}, {-0.415312,1.135312}, {-0.393487,-0.150178}, {-0.079568,-0.565870}, {1.522292,0.090401}, {-0.334966,0.599134}, {0.515824,0.178857}, {-0.199075,-0.457595}, {0.246401,-0.054357}, {1.396896,-1.363043}, {-0.027178,-0.553311}, {1.010836,0.249187}, {0.075435,0.009485}, {-0.217608,1.185129}, {-0.522616,0.556410}, {0.858783,-0.313273}, {-0.001036,-0.621413}, {0.960607,-1.149066}, {-0.521696,0.268324}, {-0.517445,-1.383789}, {0.305025,0.761437}, {0.031777,-0.095862}, {-0.795680,-1.512038}, {0.033550,-0.338430}, {-0.398340,-0.145735}, {-0.322545,0.322695}, {0.372049,-0.610750}, {-0.137179,-0.590167}, {-0.504190,-0.258481}, {-0.335035,0.338316}, {-0.364893,0.692466}, {0.038100,-0.724327}, {0.296797,0.135183}, {0.159604,0.214980}, {0.250361,-0.215980}, {-0.347541,0.122078}, {-0.056809,0.890072}, {0.285375,0.181473}, {0.170715,-0.393356}, {-1.015282,-0.208756}, {-0.785738,0.483868}, {0.007467,1.387720}, {-0.178938,0.754625}, {0.664808,-0.600883}, {0.001036,-0.083353}, {0.194157,0.160494}, {1.084332,-0.062428}, {0.349357,0.373911}, {1.433766,-1.303837}, {0.037403,2.429277}, {0.395728,-0.834206}, {-0.389085,-0.755077}, {0.850327,0.007645}, {-0.368104,0.126990}, {-0.775816,-0.923819}, {-0.537167,0.945156}, {0.142793,1.312552}, {-0.125607,0.032723}, {-0.137840,-0.002817}, {0.742073,0.013517}, {0.251125,-0.528226}, {0.820089,-0.035605}, {-0.713914,0.167522}, {-0.863981,-0.178499}, {-0.390476,-0.120624}, {0.583901,-0.243569}, {-0.227909,0.309306}, {0.324491,-0.693688}, {-1.094183,0.252179}, {0.192052,0.039188}, {-0.267150,-0.444016}, {-0.005890,-0.573760}, {-0.232266,-0.276434}, {0.382483,0.162194}, {0.150483,-0.651730}, {0.067169,0.902480}, {-2.098348,0.945188}, {0.825451,1.329186}, {-0.815597,-1.181818}, {0.461014,-0.678300}, {-0.711512,0.009708}, {0.260361,1.191568}, {0.185182,-0.338544}, {0.478590,0.221720}, {0.624523,0.990393}, {-0.706888,0.014106}, {1.173506,-1.110449}, {-0.091258,-0.061557}, {1.120091,1.816875}, {-0.989880,-1.531038}, {0.692417,-1.128270}, {1.716773,0.088070}, {1.162503,0.054400}, {0.810364,0.272585}, {-0.013515,-0.520286}, {-0.730928,-0.950759}, {0.008127,0.539806}, {-1.317219,0.544458}, {0.781036,0.503169}, {-0.335197,-0.425765}, {-0.735000,-0.347362}, {0.528729,0.365142}, {-0.617825,0.301920}, {0.910278,-0.760821}, {-0.709713,-0.356227}, {0.953397,0.042611}, {0.086349,-0.037081}, {0.171876,0.033586}, {1.106060,-0.413432}, {-0.408955,1.259989}, {0.072173,1.348382}, {0.650744,0.132067}, {0.241760,-0.334014}, {-0.088343,0.502032}, {-0.043052,0.355098}, {-0.313450,0.269137}, {-0.329212,-1.672112}, {-0.207438,-0.117867}, {0.366077,-0.234852}, {0.411392,-0.008275}, {0.353902,0.251566}, {-1.477623,0.757765}, {0.654771,-0.149077}, {0.076332,-0.376470}, {-0.879182,-0.887672}, {0.125407,1.010632}, {-0.871182,0.304759}, {0.194266,-0.223159}, {0.060104,-0.953143}, {-0.045438,0.534938}, {0.615844,0.411408}, {-0.374972,-0.055209}, {-0.253019,0.383784}, {-0.891703,-0.218474}, {-0.706804,0.115545}, {-1.026031,1.389687}, {-0.462136,0.335579}, {-0.773215,-0.951771}, {-0.779558,-0.464746}, {0.476106,-0.777170}, {0.664543,-0.569407}, {0.214316,0.063090}, {-0.569488,-0.008396}, {0.750912,-0.739441}, {0.214514,0.148096}, {-0.198354,1.474815}, {-1.805212,-0.107083}, {0.169518,-0.786940}, {-0.409644,0.852013}, {-0.221826,-0.037541}, {0.253388,-0.616419}, {-1.774513,-1.460955}, {0.742875,0.456503}, {-0.232420,-1.359596}, {-0.507235,-0.763391}, {0.195227,0.320688}, {-0.224637,-0.845635}, {1.009627,0.163178}, {0.778218,-1.096235}, {0.865546,0.293077}, {1.466179,0.233799}, {0.226625,-0.545274}, {0.692166,-0.527514}, {0.013789,0.635607}, {0.807891,-0.801895}, {-1.053395,0.465520}, {-0.036991,-1.273551}, {-0.589794,-0.753839}, {-0.030564,-0.036160}, {0.155678,-1.045183}, {0.625342,-0.595545}, {0.036864,-0.046397}, {-0.004179,-0.652544}, {-0.820676,0.620457}, {-0.183887,0.725946}, {-0.166238,-1.560859}, {0.175907,-1.429565}, {-0.020052,0.815148}, {-0.197063,-1.522027}, {0.813251,-2.196093}, {-1.334144,-0.008865}, {0.412217,0.219281}, {-0.080738,-0.419816}, {0.192626,-0.493562}, {-0.370266,-1.389646}, {-0.030379,0.021337}, {0.496641,0.294285}, {-0.416795,0.418699}, {0.195812,-0.707197}, {0.122865,-0.525780}, {-0.610908,-0.373378}, {-0.177131,-1.018769}, {0.403266,0.457369}, {-0.288750,1.777459}, {-0.606019,0.137316}, {0.164513,1.727904}, {0.911565,-0.299473}, {-0.493145,0.145941}, {0.279365,0.579905}, {0.452409,1.222730}, {-0.329814,0.070742}, {-0.098010,-0.289855}, {1.204663,0.662790}, {-0.493696,0.573452}, {-0.938748,-0.639465}, {-0.739078,1.243613}, {-0.343832,0.558003}, {0.027203,0.055290}, {-0.170201,0.729385}, {-0.878156,-1.902973}, {0.690907,1.079256}, {0.028972,0.634171}, {-0.155383,0.545055}, {-0.431928,0.330613}, {-0.635781,0.072453}, {0.615176,0.308009}, {0.104105,-0.205818}, {0.415076,1.103903}, {-0.024480,0.212016}, {0.664855,-0.116184}, {0.652496,-1.192114}, {0.695982,-0.080428}, {-0.526819,-0.078349}, {1.742119,0.556368}, {-0.153092,1.204460}, {0.311190,0.421990}, {0.938121,1.025194}, {0.156598,-0.031073}, {0.224118,0.600692}, {-0.051218,0.216583}, {-0.842484,0.468331}, {0.407989,0.450259}, {-0.949113,-1.564583}, {-0.434143,0.325978}, {0.747291,2.322704}, {0.737442,1.246064}, {-0.762481,-0.758876}, {0.729215,0.853799}, {-0.908589,-0.622078}, {-0.598447,1.603107}, {-0.959017,0.214551}, {0.536470,-0.187251}, {0.530038,0.557070}, {-0.247256,0.391664}, {0.445570,0.089350}, {1.499768,-0.418437}, {0.800986,-0.273838}, {0.177952,-1.141694}, {1.090844,1.147880}, {0.084762,-0.180105}, {-0.464588,0.255076}, {-0.710487,-0.422911}, {-0.159879,0.388722}, {0.919932,-0.041034}, {-0.515947,-0.139864}, {-0.432913,-0.527550}, {-0.275296,-1.159533}, {-0.136299,0.789806}, {-0.464789,-0.109964}, {0.939702,-0.027732}, {0.197460,0.125553}, {0.360497,-0.081121}, {-1.038393,0.917326}, {-0.562256,-0.247960}, {-0.506010,0.057694}, {-0.061158,0.007115}, {1.085933,0.036530}, {0.782551,0.730841}, {-1.730593,-0.649685}, {1.033557,0.042674}, {1.004293,-0.582702}, {-0.588062,1.893153}, {-0.038458,-0.489328}, {-0.223353,0.176598}, {-0.602039,-0.177264}, {0.484092,-0.207521}, {0.131809,0.406690}, {-0.420236,2.391833}, {-1.389783,-0.697870}, {-1.051676,0.985787}, {1.027283,0.026054}, {-0.193866,0.459321}, {-0.237210,-0.168983}, {0.034746,0.785979}, {1.228488,-0.966549}, {1.189960,0.910590}, {0.215783,-0.132182}, {0.865491,1.580951}, {0.342861,-1.317527}, {-0.347129,0.117582}, {0.477505,0.073989}, {-0.330732,-0.626076}, {-0.383103,-1.051103}, {-1.127629,0.266550}, {0.077820,0.478365}, {0.979591,-0.218870}, {-0.666472,0.081770}, {-0.846640,0.983632}, {-0.481019,0.374114}, {0.076811,0.167969}, {-1.276667,-1.056656}, {0.884138,1.533002}, {-0.422899,0.149947}, {-0.471814,0.310129}, {-0.294613,0.138715}, {-0.917606,0.974627}, {0.338625,0.106750}, {-0.447939,-0.094187}, {0.404872,0.074803}, {-0.759799,-0.426123}, {-0.788273,0.712513}, {-0.021566,-0.188178}, {-0.162962,-1.214495}, {0.093791,-0.540991}, {-0.961095,0.434286}, {0.353384,-1.489342}, {0.292430,-1.036190}, {0.150482,-0.471052}, {0.149233,-0.987746}, {-0.432685,0.980449}, {-0.738729,0.443044}, {-0.038329,0.068701}, {1.188859,-0.898705}, {-1.250213,-0.076530}, {-0.526824,0.334444}, {-0.464058,0.049049}, {-0.642591,-0.525583}, {0.192584,-0.630311}, {0.437306,0.681520}, {0.487855,0.369540}, {0.641239,-0.574243}, {0.371964,-1.021879}, {-1.041124,0.131275}, {-0.691663,0.998510}, {0.546112,0.831658}, {1.393481,-0.148050}, {1.262175,0.248708}, {0.540609,-0.336198}, {0.041225,-1.024662}, {-0.177173,-0.224147}, {0.867867,-0.187578}, {-0.967667,-1.219234}, {0.213381,-0.057988}, {-0.675667,-1.091565}, {0.556298,-0.770728}, {-0.188682,0.656382}, {-0.092475,0.407926}, {-1.641683,0.484862}, {0.190082,-0.330329}, {0.174209,-0.676685}, {-0.950743,-0.193766}, {-0.435225,-0.580076}, {0.246472,-0.472847}, {-0.505688,-0.759662}, {-1.255934,-0.736332}, {1.935964,0.332194}, {-0.500932,0.083885}, {-0.067564,0.231471}, {-0.379280,0.846503}, {-0.030848,-0.246677}, {0.125241,-0.397222}, {-1.137543,-0.555543}, {-0.122221,0.387840}, {2.042492,-1.202247}, {1.772027,0.326225}, {-0.550197,0.205095}, {0.450376,0.791456}, {-0.506594,0.069919}, {-0.063568,1.032985}, {-0.621426,-0.028421}, {0.043761,-1.038331}, {-2.012759,-0.886260}, {-0.144653,-0.613454}, {1.042293,-0.047165}, {-0.059067,0.116286}, {0.148872,-0.095572}, {-0.573228,-0.480453}, {-0.200914,-1.046460}, {-0.824112,1.568436}, {-0.133283,-0.288869}, {0.597348,0.377234}, {-0.505799,1.227439}, {-0.606898,0.148651}, {-0.583873,-1.081077}, {-0.347056,0.271253}, {0.784106,0.033133}, {0.184385,0.180992}, {0.378686,-0.264273}, {1.264891,1.156455}, {-0.180967,0.378180}, {1.185364,2.147560}, {-0.443654,-0.290601}, {-1.069806,0.508735}, {1.608167,1.233684}, {-0.794538,0.519840}, {-0.078219,1.219228}, {0.334451,-0.046541}, {-0.666285,0.564027}, {-0.577876,-0.550521}, {-0.000416,-0.584869}, {0.624742,-0.128862}, {-0.205674,-0.383454}, {-0.377425,0.710460}, {0.086861,-1.107777}, {0.781845,-0.797178}, {0.153671,0.734022}, {0.009617,-0.036667}, {0.752946,1.007603}, {0.471233,0.459138}, {-0.821665,-0.267974}, {-0.924172,0.593227}, {-0.364922,0.183033}, {0.503286,0.374220}, {0.817608,-1.185941}, {-1.068648,0.590834}, {-0.100083,-0.975689}, {0.801345,0.166370}, {0.878885,0.514705}, {-0.707014,0.403084}, {0.827796,0.483292}, {-0.975586,0.279704}, {0.362153,1.075430}, {0.799974,0.002309}, {0.676713,-1.092933}, {1.578438,0.276312}, {0.110806,-1.246881}, {-0.865309,0.165009}, {-0.282162,0.733062}, {-0.990404,-0.702353}, {0.121363,0.147771}, {0.038031,-0.195024}, {0.138621,0.371235}, {0.142721,0.021207}, {0.268035,-0.692454}, {0.945280,-0.180407}, {-0.253126,-1.299034}, {0.215126,0.964959}, {0.214474,0.039968}, {-0.315065,1.317935}, {-0.495310,0.013483}, {0.470253,0.354208}, {-0.089794,0.245806}, {-0.208178,1.288801}, {0.753819,-0.739573}, {-0.885257,-0.056685}, {0.478816,0.673381}, {0.388771,0.612329}, {-0.820496,-1.297063}, {-1.437975,0.521158}, {0.271222,-0.170637}, {-0.400573,-0.022383}, {-1.216831,-0.194283}, {1.347498,-0.865849}, {1.490747,1.638422}, {-0.066047,-0.399105}, {-0.420802,1.133171}, {0.135157,1.573802}, {0.541187,0.894018}, {1.510389,0.809415}, {0.881448,-0.730401}, {0.296695,-0.733757}, {0.339736,-1.370242}, {0.274695,0.252843}, {-1.281780,0.313851}, {1.274502,-0.466039}, {0.808820,-0.486975}, {0.817662,0.485549}, {-0.095951,0.029602}, {-0.110720,0.676979}, {1.202230,0.782503}, {0.323406,-0.119733}, {-0.284233,0.460801}, {-0.138012,-0.172029}, {0.660058,-0.652850}, {0.681055,0.587900}, {1.034573,-1.401681}, {-0.803681,0.663399}, {0.279558,-1.726715}, {-0.064446,-0.133818}, {0.111129,-0.818469}, {-0.109438,0.108017}, {0.655329,-0.214051}, {-0.182692,0.983672}, {-0.386961,-0.148666}, {-0.520381,0.408330}, {-0.277355,0.529608}, {-0.227798,1.212313}, {0.286884,1.328657}, {0.330357,0.676798}, {-0.386855,-0.073008}, {-0.005346,0.643306}, {-0.408125,-0.611805}, {-1.344349,1.214852}, {0.280046,0.328383}, {0.193258,0.841163}, {0.688097,1.470022}, {-0.543274,0.871549}, {-0.243657,0.867887}, {0.031152,0.192752}, {-1.158627,-1.398383}, {-0.797943,-0.620853}, {0.551211,-1.681158}, {0.057558,-1.031877}, {-1.029493,0.639438}, {0.099115,-0.246357}, {0.343168,0.265658}, {1.188859,1.031717}, {0.126086,0.836314}, {-0.606482,0.051107}, {0.162957,-0.781010}, {-0.462344,-0.438913}, {-0.539638,0.657519}, {0.022154,0.230604}, {-0.843574,0.180764}, {0.398755,-0.125898}, {0.299966,-0.155337}, {1.022899,-0.742968}, {-0.807121,-0.640128}, {-0.392841,-0.596371}, {-0.360295,-1.003922}, {0.679328,-0.665397}, {-0.072668,1.290516}, {-0.280499,-0.949490}, {0.111927,0.581514}, {-1.363240,-1.343656}, {-1.084450,0.050768}, {-0.385367,-0.565308}, {0.202467,-1.237126}, {-0.242867,0.417895}, {-1.545462,-0.660856}, {-0.215712,0.754475}, {0.950926,0.189388}, {-0.907607,-0.356709}, {-0.018424,-0.492529}, {0.592479,-0.228064}, {-0.666301,-0.997495}, {0.316365,2.371218}, {0.234107,-0.170388}, {-0.382072,-0.617266}, {0.008455,0.054220}, {0.391055,-0.070040}, {-1.131104,0.097647}, {0.114958,0.491805}, {-1.828644,0.079717}, {1.282146,0.110291}, {0.357302,-0.071632}, {-1.285120,-0.698425}, {-0.620723,0.250825}, {-1.580495,0.607744}, {-0.310391,0.023209}, {0.659152,-0.517724}, {0.722716,0.407689}, {-0.310078,0.307880}, {-0.515929,-0.421393}, {0.481648,-0.771808}, {-0.613531,-0.311456}, {-0.557038,0.487850}, {0.240958,1.033137}, {-0.411849,-0.652721}, {-1.414977,1.570391}, {0.198022,0.143388}, {-0.665199,0.006710}, {-0.125512,1.145256}, {0.939666,-0.184737}, {1.254756,0.210233}, {-0.414391,-1.647095}, {0.149630,0.144509}, {0.288296,0.362648}, {-0.017046,0.108292}, {0.500758,1.194654}, {-0.132504,0.838117}, {0.436872,-1.259608}, {0.185786,-0.150289}, {0.570040,-0.268047}, {-0.924944,0.709866}, {0.460708,-0.753595}, {1.505297,0.124422}, {0.070403,0.380217}, {-0.453289,-0.844383}, {0.339141,0.421633}, {-0.276216,0.254737}, {-0.740343,0.477980}, {-1.140554,0.373471}, {-0.619092,-0.126768}, {-0.106514,-0.394367}, {1.219767,0.408088}, {0.570849,0.749630}, {0.279189,0.802048}, {-1.761637,0.917490}, {-0.125839,-0.480779}, {-0.716519,-1.313543}, {-0.886599,1.677483}, {0.471796,0.455429}, {0.472861,-0.700399}, {0.630634,0.789490}, {0.388011,0.023963}, {0.160770,-0.328353}, {0.684503,-0.912411}, {-0.613712,-0.942848}, {0.187679,-1.243436}, {-0.303386,0.183180}, {-0.430191,-0.919399}, {-0.486669,0.017418}, {-0.196664,-0.596788}, {-0.016898,-0.305134}, {-1.003277,0.875101}, {0.016353,-0.323237}, {0.821922,0.531172}, {0.068244,-1.142754}, {0.564201,-0.493468}, {-0.108778,-0.451831}, {-1.104421,-0.533559}, {-0.190109,1.354647}, {-1.625892,-0.106572}, {0.053986,0.048085}, {-0.078443,-0.504104}, {-0.981755,0.138946}, {-0.089922,0.305097}, {-2.134689,-0.514083}, {-0.557133,1.367571}, {-0.124624,0.607339}, {-1.498195,-1.186483}, {-0.872943,-0.334031}, {0.433069,0.253202}, {0.748849,0.097565}, {0.431413,-0.732537}, {0.468929,0.578734}, {-1.277818,0.672101}, {0.471820,-0.460997}, {0.494373,0.102286}, {-0.141118,0.866229}, {-0.347544,-0.467992}, {-0.772585,0.634551}, {-0.968830,-0.935472}, {-0.019241,0.227594}, {-0.813687,0.776289}, {-0.124640,0.511015}, {0.045039,0.998667}, {0.160430,-0.284327}, {-0.252488,-0.276808}, {-1.446518,-0.593809}, {0.444264,-0.215641}, {-0.495694,1.313423}, {0.233200,0.628049}, {1.058397,-0.209975}, {-0.631813,0.212791}, {0.724289,0.730092}, {0.766557,0.140992}, {-0.422498,-0.065908}, {0.759667,-0.394613}, {-0.280825,-0.249983}, {-0.334594,-0.099555}, {-0.100845,-0.279454}, {-0.631641,-0.001709}, {-0.390891,0.591299}, {-0.614147,-0.867562}, {0.794232,0.262570}, {-0.855585,-0.445803}, {0.137634,-0.208739}, {0.735539,-0.285394}, {0.254964,-1.231606}, {0.529011,0.143706}, {1.430450,-0.392117}, {0.441543,-0.753268}, {-0.215594,0.692776}, {0.235193,1.031127}, {-0.658717,-0.573607}, {-0.945679,-1.445653}, {-0.416275,0.659500}, {0.907194,0.304227}, {-0.031342,0.374716}, {0.005759,-0.770302}, {-0.877440,-0.213883}, {-0.710438,-0.089993}, {-0.417193,-0.780149}, {0.281753,-1.127371}, {0.074096,0.751776}, {-1.369300,-0.313873}, {0.975236,-0.674780}, {-0.395840,0.453994}, {0.229087,-0.431998}, {0.686648,-0.040472}, {-1.932872,-2.114067}, {-0.053147,0.889797}, {1.557776,0.187376}, {-0.177372,-0.372058}, {-0.145758,-0.406644}, {0.893661,-0.736872}, {0.699794,-0.837986}, {0.562408,-1.315862}, {0.248331,0.796103}, {-0.974681,-0.545749}, {-0.633997,-0.920930}, {-0.653344,-0.148806}, {-0.278669,-1.016823}, {0.990752,0.282628}, {-0.002135,0.295268}, {0.247889,-0.002233}, {0.299683,0.464098}, {-0.348562,0.234081}, {-0.653547,1.042115}, {1.427451,-0.211486}, {-0.249740,0.299611}, {0.236624,-0.236593}, {0.361321,-0.011710}, {0.225996,-0.116814}, {0.665416,-0.154760}, {-0.343271,0.309692}, {0.214282,0.840876}, {0.436174,0.465315}, {0.491642,-0.396010}, {-0.840432,0.546308}, {-0.484284,-0.253952}, {-0.674070,0.614429}, {-1.132196,0.300718}, {-0.686720,-0.668618}, {-0.209752,-0.193816}, {-0.864450,0.711636}, {-0.704162,0.080921}, {-0.281052,-0.711402}, {0.476961,-0.296571}, {-0.567590,0.120557}, {1.206292,-0.739669}, {0.073467,0.983447}, {-0.761649,-0.205547}, {-0.101813,-0.757212}, {-0.036924,-1.095216}, {-0.203280,0.087312}, {0.419187,0.045301}, {-0.128742,0.611231}, {0.002422,-0.752412}, {0.674792,0.880037}, {-0.130573,-0.395283}, {0.043261,0.842507}, {0.744393,0.440538}, {0.327633,0.077634}, {-0.173323,1.100831}, {-0.364820,0.190809}, {-0.929120,0.340176}, {0.083238,-0.252833}, {-0.812169,1.206466}, {-0.658568,0.595224}, {-1.328600,0.526328}, {-2.155765,1.269370}, {-0.046160,-0.114023}, {0.293193,-0.938083}, {-0.254478,-1.169655}, {0.586072,0.064899}, {-0.826939,0.519365}, {0.000194,-0.042804}, {0.703387,0.425636}, {-0.071028,0.344410}, {-0.690411,-0.426178}, {-0.305423,-0.957584}, {0.565793,0.471864}, {0.572453,-1.210154}, {-0.176756,-0.543416}, {-0.122719,0.142358}, {0.041164,-0.689254}, {0.488677,0.046068}, {0.272934,-0.298194}, {0.056580,-0.113747}, {-0.586258,-0.393607}, {0.449298,0.411649}, {0.222406,0.339896}, {-0.259049,0.537135}, {-0.162509,1.788969}, {0.261787,-1.022771}, {0.342338,0.185518}, {0.579314,-0.173051}, {-0.141523,-0.044285}, {0.193116,-0.235134}, {-1.353094,-1.018692}, {-0.436509,0.480147}, {0.110273,0.018753}, {-0.074405,0.256683}, {-0.246641,-0.072741}, {0.193535,0.110739}, {0.236249,0.450123}, {-1.328284,0.200608}, {0.203875,0.971534}, {0.140868,0.836049}, {-1.180779,-0.571187}, {0.352527,-0.941286}, {-0.603336,1.499530}, {-1.722024,-0.622489}, {-0.665516,0.309695}, {-0.196527,0.388266}, {0.748597,0.328682}, {-0.700676,-0.457945}, {0.241755,0.916166}, {-1.055948,0.612258}, {-0.088514,-1.051597}, {-0.666181,-0.503929}, {-0.373979,0.896727}, {-0.372882,-0.074176}, {-0.109262,0.026398}, {0.140324,0.378864}, {-0.019849,-1.097344}, {0.235596,-0.286668}, {0.782230,-0.389778}, {0.013781,-0.571368}, {0.789306,0.647173}, {0.630138,0.773210}, {0.750400,-1.183298}, {-0.682019,-1.609188}, {0.896088,0.067930}, {0.420614,-0.078741}, {-1.496000,0.450049}, {-0.863680,-0.475229}, {-1.423561,-0.224888}, {0.024832,-0.453597}, {0.737548,0.300150}, {-0.738513,0.671116}, {0.789577,-0.557279}, {0.667659,-0.837533}, {0.440875,-1.043855}, {-0.051215,-1.357721}, {0.359163,-1.468140}, {-0.336103,-0.186086}, {-1.253254,0.917832}, {-0.307426,0.767409}, {-0.567196,0.228002}, {-0.028435,0.944140}, {0.222374,0.474538}, {1.165054,-0.954027}, {0.925421,0.519574}, {-0.072758,-0.302302}, {0.298489,0.526333}, {0.559091,-0.004799}, {0.661053,-0.291473}, {0.589520,-0.043129}, {0.486342,-0.102644}, {0.399697,0.607928}, {-1.591074,0.238188}, {0.864441,0.826969}, {-0.717594,0.995645}, {0.335125,1.336621}, {-0.374524,0.390990}, {-0.010197,0.428746}, {-0.061779,0.352761}, {-1.529446,-0.080619}, {0.588116,1.395893}, {-0.455056,0.445153}, {-0.217297,1.396009}, {-0.657833,-1.016368}, {-1.806291,0.038937}, {0.002294,-0.394349}, {-0.774411,1.119519}, {-0.807535,0.342889}, {-0.122509,0.143458}, {-1.612262,0.133762}, {-0.704500,-0.634429}, {0.421355,1.477149}, {-0.346425,1.488303}, {-0.320905,1.385086}, {0.517736,1.018882}, {-0.698406,-0.561933}, {0.455363,1.519318}, {-1.529130,-0.417045}, {1.090679,1.108610}, {0.054188,0.538953}, {0.034975,0.942247}, {1.127053,-1.169750}, {0.347556,0.169247}, {-0.388350,-0.124856}, {0.119545,0.172064}, {0.335029,-0.074899}, {-0.071492,0.385402}, {0.701349,0.030827}, {0.272265,0.385385}, {-1.295989,-0.440285}, {-0.016185,-0.292499}, {-0.425862,0.192669}, {-0.474981,1.023225}, {0.378090,-0.085647}, {-1.380673,-0.172079}, {0.267498,-0.609266}, {-0.174361,-0.720071}, {-0.903868,0.497839}, {-0.754455,0.498984}, {0.333531,0.300701}, {0.570416,0.121552}, {-0.856487,1.273007}, {0.864065,0.677483}, {-0.359296,-0.764656}, {0.373897,-0.165979}, {0.004695,1.059938}, {-0.205988,0.159122}, {0.240554,-0.757747}, {-2.731705,-1.090066}, {0.196211,-0.214263}, {-1.060994,0.303117}, {0.065935,-1.370273}, {0.147199,0.460440}, {-1.434710,-0.211987}, {0.506390,0.291023}, {-0.385415,0.150877}, {-0.058076,0.033607}, {-0.040447,0.121214}, {0.217183,0.381020}, {0.008537,0.171304}, {-0.793652,0.273910}, {-0.113031,-0.165199}, {-0.137888,-0.411958}, {0.129773,1.543414}, {0.026013,1.008311}, {0.859350,0.590368}, {0.137087,-0.138097}, {0.273403,-0.938621}, {0.365497,-0.156764}, {0.670901,0.144948}, {0.356986,-0.869288}, {-0.882520,-0.440277}, {0.462818,0.724776}, {-0.573334,-0.513149}, {-0.216443,-1.260162}, {-0.037775,0.735246}, {-0.374519,0.457316}, {0.058640,-0.761478}, {-0.440620,-0.890988}, {-0.052313,-0.360096}, {-0.537367,0.085238}, {-0.894927,-0.267870}, {-0.710221,-0.890203}, {-1.603747,1.430830}, {1.840006,1.279425}, {0.449807,0.176538}, {0.071127,-0.599730}, {0.340974,0.830768}, {0.167339,0.262566}, {-0.519153,-0.781460}, {-0.953526,-0.572926}, {-0.718084,1.342914}, {0.887380,-0.767601}, {-0.500773,-1.256327}, {-0.504054,-0.387444}, {-0.423248,0.941044}, {-0.075436,-0.011957}, {0.778830,-0.741112}, {0.527124,1.470712}, {-0.061345,0.245175}, {-0.108031,-0.165018}, {0.089631,-0.062024}, {-0.079677,-0.101521}, {-0.396044,-0.025846}, {0.849632,0.900182}, {0.614655,-0.309219}, {-0.168051,0.184285}, {0.629810,-0.125703}, {-0.626641,-0.299066}, {-0.766331,0.668178}, {1.026631,0.970999}, {1.056465,0.385935}, {0.034025,0.934794}, {1.049357,-1.364552}, {-0.307284,0.554048}, {-0.124591,0.459456}, {0.634236,0.196816}, {0.846920,-0.870074}, {0.377849,-0.151186}, {0.010945,0.711493}, {-0.143725,-0.331314}, {-0.428652,0.812929}, {-0.507231,0.476529}, {0.822266,-0.169064}, {-0.312591,0.878717}, {0.126182,-0.185989}, {1.011325,0.536978}, {0.511545,1.633077}, {-1.054305,0.395063}, {1.824536,0.854489}, {-1.843423,1.187168}, {-0.260379,0.320860}, {0.762158,0.289641}, {0.273799,-0.015125}, {0.406928,0.953909}, {-0.053545,-0.024161}, {-0.636427,-0.198150}, {-0.601937,-0.004703}, {0.117514,-0.399147}, {0.147300,-0.182524}, {0.117742,-0.391568}, {0.598795,-0.217514}, {-0.530160,-1.275872}, {-0.448360,0.509787}, {-0.231334,0.208376}, {0.653553,-0.510494}, {-0.469246,-0.599648}, {0.223253,-0.260082}, {0.425304,-1.320700}, {-1.013285,-0.561188}, {-0.649321,0.686967}, {-1.283270,-0.227414}, {-0.186007,0.368703}, {-0.136933,-0.192889}, {1.185159,0.545198}, {1.216968,0.689015}, {0.910311,-0.002513}, {-0.253238,-0.334718}, {-0.272165,0.329764}, {0.419154,0.171196}, {0.856108,-0.866033}, {-0.363408,-1.279964}, {-0.323154,1.229737}, {0.515595,0.771904}, {-0.113071,0.472993}, {-1.090156,-0.702003}, {-0.615317,0.258520}, {-1.389988,0.090579}, {0.227189,1.873838}, {0.238943,1.189236}, {0.997707,-0.750336}, {-0.168988,1.198045}, {-0.908115,-0.325316}, {-0.276129,-0.887500}, {-0.193721,0.061984}, {0.372694,-1.067987}, {-0.021077,-1.086837}, {-0.355942,-0.129020}, {0.601311,0.890568}, {0.458201,0.949799}, {0.477640,0.087344}, {0.024384,0.268283}, {-0.314620,0.511970}, {0.208499,-0.010617}, {1.054139,-0.793165}, {0.712241,0.313028}, {0.095001,0.032736}, {-0.050507,-0.099467}, {0.966046,-0.046950}, {0.735177,-0.035276}, {1.216582,-0.536102}, {0.579388,0.044030}, {-0.031001,-1.871012}, {1.061978,-0.288872}, {-0.504246,-0.401761}, {-0.562567,-0.284664}, {-0.275011,-0.021875}, {-0.393798,0.931489}, {0.006711,0.841041}, {0.402936,0.199119}, {0.107574,-1.388760}, {-0.230410,0.022241}, {-0.191842,-1.192988}, {1.171249,0.021609}, {0.716926,0.486816}, {0.145686,0.517127}, {-1.328921,0.377331}, {0.851484,-1.077027}, {-0.182252,-0.973016}, {0.547530,0.307628}, {0.752337,0.227463}, {-0.943868,-1.105141}, {0.051322,1.847229}, {0.162891,1.662704}, {0.215910,0.074535}, {0.968104,-0.819955}, {0.398545,0.106263}, {0.311276,0.300695}, {0.553913,1.407050}, {-0.074835,-0.314706}, {-0.756606,-0.249815}, {-0.007184,0.241820}, {-0.903521,-1.140063}, {-0.347949,0.735517}, {-1.520924,-0.054318}, {-0.336836,-1.417745}, {0.668140,-0.550144}, {-0.813826,-0.378920}, {-1.142460,-0.895100}, {-0.464542,0.305670}, {-0.803636,0.464800}, {-0.519269,0.330770}, {-0.744446,0.223551}, {0.133873,0.641134}, {-0.234319,-0.617046}, {0.237105,0.190497}, {-0.207124,0.186992}, {-0.222716,-0.026379}, {0.616382,0.940631}, {-0.202311,0.380659}, {0.365658,0.144009}, {1.794867,-0.495343}, {0.500606,-0.433379}, {0.363196,-0.689170}, {-0.025768,0.286324}, {-0.868493,1.012894}, {0.110665,-0.207569}, {-0.041372,1.248633}, {0.885087,-0.488457}, {0.910808,0.069023}, {0.693604,-0.067264}, {0.566380,0.592366}, {1.130313,-0.894986}, {0.853269,1.224186}, {0.451775,0.907155}, {-0.899638,-0.755130}, {0.009159,-0.715130}, {0.725935,-0.067967}, {-0.648557,-0.976766}, {-0.215151,-0.130206}, {-0.882912,1.101720}, {0.549423,1.141824}, {0.091037,-1.123045}, {0.851998,-1.088543}, {0.671949,-0.768697}, {-0.026212,-0.142371}, {0.188458,0.044498}, {1.035851,0.732378}, {0.496930,0.763086}, {0.620814,-0.084441}, {-0.816705,-1.005846}, {0.129933,0.607144}, {-0.335244,0.079260}, {0.062206,0.842265}, {0.342883,0.267645}, {-0.570073,0.645440}, {-0.179948,-0.386216}, {-0.767378,0.206902}, {0.759143,-0.306648}, {0.482275,0.475103}, {0.825030,-0.514951}, {-1.028938,-0.819744}, {1.732835,0.066877}, {0.450762,-0.541033}, {-0.616540,-0.408825}, {0.089601,-0.831240}, {-0.716228,-0.620456}, {-0.045554,1.373536}, {0.723475,0.165982}, {0.238882,-0.391897}, {1.879258,0.418675}, {-0.908657,0.808384}, {-0.286725,0.203416}, {0.622622,1.988791}, {-0.204689,0.503124}, {-0.840514,-1.052989}, {0.109104,-0.491465}, {-0.458429,-0.890611}, {-0.040308,0.387025}, {0.334213,0.845817}, {-0.485131,1.161892}, {-0.154884,-0.021494}, {0.901447,0.368832}, {-0.577289,0.422688}, {0.066667,0.480205}, {0.497143,1.273457}, {0.411773,-0.013752}, {0.663922,0.240592}, {0.147365,-0.939324}, {0.265064,-0.679686}, {0.080121,-0.490473}, {0.405063,-0.141264}, {1.250869,-1.013448}, {-1.771650,-0.026840}, {-0.214699,-0.238854}, {0.153398,0.152295}, {-0.332406,0.850663}, {0.082405,0.034282}, {-0.778027,1.776842}, {1.119535,0.093578}, {0.405343,0.144457}, {0.318296,-1.045619}, {0.894029,-0.789367}, {-0.705205,-0.559302}, {-0.583245,-0.587218}, {-1.732809,0.502952}, {-0.072216,-0.619449}, {-1.005389,-1.337074}, {-0.925036,-1.050076}, {-0.849897,1.451525}, {-0.640269,-0.536556}, {0.280792,-0.596720}, {-1.731763,-1.392341}, {0.225837,-1.310780}, {-0.855570,0.357171}, {-0.596824,0.705603}, {1.015263,-0.013845}, {-1.378102,-0.871470}, {-0.037446,-0.148328}, {-1.100256,-0.404901}, {0.618017,-0.193406}, {-0.165397,0.385855}, {1.048162,1.070281}, {0.913836,0.796236}, {-0.470200,-0.595482}, {0.435984,0.550976}, {0.991639,0.713741}, {1.354705,0.236459}, {-0.514888,0.034946}, {0.447832,-0.324686}, {-0.324818,0.064890}, {0.512776,-1.010271}, {0.644555,1.172259}, {-0.884525,0.399588}, {0.106287,-0.599133}, {0.245535,0.597192}, {-0.128277,0.432917}, {0.307422,-0.650546}, {0.870460,0.392310}, {-0.236295,0.161812}, {-0.905288,0.260416}, {-0.288011,-0.014239}, {-0.391415,-0.625783}, {1.255478,-0.407403}, {1.023093,0.311064}, {0.059888,-2.054203}, {0.200850,0.982033}, {0.936100,0.701518}, {-0.629761,0.267995}, {1.891356,-0.312648}, {0.084493,0.120200}, {0.658455,0.408385}, {0.401558,-0.236054}, {0.213266,-0.339748}, {0.249614,1.030643}, {0.861996,-0.401135}, {-0.645997,-0.919200}, {0.345041,-0.019794}, {0.422888,-1.570761}, {-0.728576,-0.302344}, {0.698979,0.162284}, {0.432374,-0.278804}, {0.288216,-0.280750}, {0.692058,-0.788072}, {-0.513736,0.160921}, {-0.484442,0.091290}, {0.217502,0.258031}, {-0.564786,-0.078785}, {0.773842,-0.205731}, {0.496951,0.661244}, {0.703862,0.256431}, {0.417277,-0.643702}, {0.030253,0.964357}, {0.487751,-0.148838}, {0.603282,0.729704}, {0.623268,-1.087961}, {0.673468,0.933167}, {-0.456305,0.170897}, {-0.397510,-0.674178}, {-0.320248,0.681368}, {0.138825,0.000576}, {-0.706556,0.500306}, {-0.180191,-0.216743}, {-1.383253,0.599270}, {-0.024074,0.774923}, {0.117188,0.327920}, {-0.897107,-0.217729}, {0.780948,-1.488166}, {-0.189833,-1.665574}, {0.160742,0.396893}, {0.132436,-0.269463}, {-0.477604,0.319153}, {-1.594824,-0.229696}, {-1.033510,0.226079}, {-0.375408,0.377189}, {0.203341,-0.627341}, {0.000475,-0.876883}, {-0.354389,-0.692829}, {0.902375,0.537518}, {0.765544,1.350291}, {0.617121,0.549060}, {0.191055,-1.656615}, {-0.637320,0.461113}, {-0.139140,0.405568}, {0.338228,0.190319}, {-0.111718,0.427500}, {-0.607051,-0.223998}, {-0.256013,-0.126726}, {-0.460717,0.657032}, {-0.264035,0.642030}, {-0.480224,-0.125524}, {-1.104871,-1.244684}, {0.794316,-0.618685}, {-1.325048,0.625898}, {-0.609105,-0.317561}, {-0.110370,0.574926}, {-0.079341,-0.941059}, {1.123131,0.516150}, {0.646988,-0.799697}, {-0.528347,0.716934}, {-1.297124,0.049700}, {0.952649,-0.161405}, {0.104493,-0.030703}, {-1.168308,1.727449}, {0.676470,0.693357}, {-0.412443,0.253094}, {-0.447798,0.038550}, {-0.228133,0.125712}, {0.274084,-0.664014}, {-1.273383,-0.516870}, {0.331193,-0.663290}, {0.834921,-1.083132}, {-0.016795,0.063665}, {0.463293,0.100810}, {-0.222092,-1.166433}, {-0.045631,-0.035269}, {-0.045329,-0.674897}, {-0.784392,-1.057570}, {-0.329826,0.339698}, {1.178970,0.965670}, {-0.300943,-0.650654}, {0.152251,-0.474047}, {-0.578936,-0.462915}, {0.349399,-0.057776}, {0.102065,-0.396655}, {0.217686,0.393256}, {-1.565998,-0.678150}, {-0.317381,0.390873}, {0.032866,0.637578}, {-0.462473,-1.228468}, {0.037433,-0.126953}, {-0.219955,-0.079598}, {0.986041,-0.242647}, {0.981236,-0.308921}, {-0.714607,0.747562}, {0.878252,0.290233}, {-0.013550,-0.801533}, {-0.837193,-0.073407}, {0.004598,-0.299227}, {0.718243,-0.521436}, {-1.411477,0.345819}, {-0.185560,0.407726}, {-0.645613,0.341977}, {-0.144282,-0.130033}, {0.170185,0.210823}, {0.648260,0.522148}, {0.163927,0.452781}, {0.091997,-1.512229}, {-0.925560,0.389415}, {0.396382,-0.605291}, {-0.206984,0.810648}, {0.605544,-0.329259}, {-0.496895,-0.433621}, {0.821201,-0.159951}, {-0.287604,-0.461316}, {0.269550,-0.172898}, {0.223504,-0.519438}, {-1.219596,-1.509329}, {-1.177703,0.106731}, {-0.614510,-2.303451}, {-0.508790,-0.814873}, {-0.235748,-0.655716}, {0.675918,0.241968}, {0.848823,0.109502}, {-0.339173,0.251667}, {-0.907714,0.025476}, {1.135073,-0.983344}, {0.597885,0.092979}, {0.775967,0.017399}, {-2.228663,-0.026600}, {0.991905,1.087891}, {-1.345601,0.617191}, {0.369217,-0.003157}, {0.380365,-0.183456}, {1.141741,-0.120062}, {0.208724,0.917995}, {-0.751646,1.025081}, {-0.244497,-1.070647}, {-0.426150,-0.441223}, {-0.083133,0.600314}, {-0.639394,-0.449710}, {-0.227868,-0.052185}, {0.039466,0.902238}, {-0.228256,0.424697}, {-1.264894,1.007502}, {0.025662,-1.050856}, {-0.853853,-0.077905}, {-0.283073,0.020308}, {0.102863,0.285404}, {-0.729183,-0.883586}, {0.488278,-0.537274}, {-0.638371,0.705178}, {0.257958,0.187060}, {1.876355,-0.296744}, {-0.029220,0.081046}, {-1.202058,0.013792}, {0.143679,-0.221348}, {0.813612,1.334167}, {-0.308881,0.009709}, {0.744881,0.191344}, {0.703735,0.479720}, {0.916091,0.301598}, {0.229351,0.527300}, {0.608015,1.084639}, {-0.028380,0.179041}, {0.741942,0.210321}, {-0.441117,2.019392}, {0.287010,1.148982}, {0.751560,-0.634404}, {0.633605,-0.574008}, {0.254998,0.117379}, {1.321661,-0.738031}, {-0.086967,-0.576727}, {0.357126,0.432979}, {-0.743290,0.811585}, {-0.501911,0.783671}, {-0.187481,0.444391}, {0.175805,0.576845}, {0.749123,0.582751}, {-1.669288,-1.212711}, {-0.024771,0.530228}, {-0.600212,0.278748}, {0.380659,0.552119}, {-0.054384,-0.183081}, {-0.577043,1.758637}, {-1.290098,-0.034919}, {-0.626743,-0.901914}, {0.548593,0.563251}, {-1.189395,-0.111436}, {0.672192,0.884066}, {0.490141,-0.258325}, {1.522702,-0.355020}, {0.280899,0.463460}, {0.297340,-0.975150}, {-0.783965,-0.193888}, {0.116301,-0.696152}, {-0.613030,0.111460}, {-1.438732,-0.335699}, {0.152343,0.580044}, {0.174164,-0.175062}, {-0.148853,-0.874012}, {0.175072,0.017771}, {0.358267,0.083250}, {-1.047536,0.175354}, {-0.048482,-0.104485}, {0.180338,0.466878}, {-0.062379,-0.997160}, {-0.737199,-0.210693}, {0.536667,0.012390}, {0.013080,-0.896293}, {-1.111020,0.036888}, {-0.592474,-0.623239}, {-0.587658,-1.419053}, {0.481731,0.315493}, {0.239846,0.451458}, {-0.107999,-0.142484}, {-0.238403,0.700594}, {0.326648,0.295695}, {0.709781,-0.414870}, {-0.303296,-0.812312}, {0.605543,-1.441576}, {0.046576,0.392842}, {0.391747,1.805781}, {-0.610474,-0.502987}, {-0.084417,-0.635316}, {-0.117791,-0.511594}, {1.263054,-0.152197}, {0.036088,-1.413123}, {-1.142865,0.441812}, {0.670441,-1.734080}, {-0.655343,-0.321802}, {0.441931,-0.212622}, {0.368448,-1.376489}, {0.216562,-0.500590}, {0.430320,0.433900}, {0.910263,0.145197}, {0.261373,-0.024356}, {-0.931035,-1.031641}, {0.071638,-0.030381}, {1.047164,-0.390936}, {0.786061,0.374129}, {0.399636,-0.470714}, {-0.828217,0.411402}, {0.402586,0.304012}, {0.173574,-0.061146}, {0.718928,0.903788}, {0.757697,-0.340347}, {0.311022,-0.630422}, {-0.320119,0.438468}, {0.213126,0.315590}, {-0.367474,-0.858977}, {-0.364710,-0.211865}, {-0.088531,-0.338955}, {-0.426875,-1.259798}, {0.017767,0.903531}, {-1.317742,-0.291868}, {-0.021616,-0.223357}, {-0.466416,-0.982947}, {-0.723046,-0.216801}, {-0.506496,-1.256971}, {-0.876586,-0.668156}, {0.799653,0.883145}, {-0.116016,-0.230735}, {0.153892,0.245910}, {-1.493473,-0.543369}, {-0.104258,0.937885}, {0.145870,-0.862457}, {0.004280,0.091261}, {-0.201859,0.062320}, {1.434108,0.390146}, {0.223945,-0.417881}, {-1.429893,-0.221635}, {-0.263642,-0.043051}, {-0.301817,-0.656976}, {-0.055533,-0.422469}, {-0.170936,0.094114}, {0.920585,-0.536474}, {-0.244583,0.125218}, {-0.398405,-0.673800}, {-0.648268,-0.174215}, {0.104402,-0.545924}, {1.039966,-0.450643}, {0.454026,-0.007051}, {-1.348483,0.435892}, {-1.154315,0.012219}, {0.586239,-0.790228}, {0.420334,-0.425579}, {-0.695935,0.400174}, {-0.324462,-0.569611}, {-0.891715,1.286844}, {-0.225809,-0.497207}, {-0.877583,-0.401090}, {-0.230709,-0.162162}, {0.040464,0.348907}, {-0.431771,0.340009}, {0.045460,-0.714410}, {-0.216520,-2.046873}, {0.804486,0.379955}, {0.107529,0.317036}, {0.349638,-1.542756}, {0.112593,0.633379}, {0.245919,-1.442921}, {1.226988,0.413531}, {-0.216186,-1.098418}, {-0.592056,-0.703833}, {-0.461250,1.152356}, {-0.451106,-1.041155}, {0.758497,-0.026281}, {0.580829,0.434704}, {-0.244442,-1.287007}, {0.871367,-0.668387}, {-0.252397,-0.492179}, {-0.105915,0.221225}, {-0.396868,0.424444}, {0.468587,-0.808788}, {-0.332904,0.334434}, {-0.300457,-0.004120}, {0.200741,0.652505}, {-0.290567,0.311535}, {-0.596088,-0.685691}, {0.383474,-0.564410}, {0.365202,-0.520154}, {0.303368,0.394516}, {0.156166,0.414418}, {-1.362271,-0.651302}, {-0.565455,0.543162}, {-0.528145,0.145123}, {-1.176076,-1.178721}, {0.086984,-0.105966}, {-0.021746,-0.978670}, {0.518625,0.155903}, {-1.258329,0.223466}, {0.130332,-0.419232}, {0.563122,0.231711}, {0.306401,-0.507524}, {-1.053291,1.560204}, {0.047668,0.546148}, {0.948363,0.284353}, {0.672895,0.507781}, {-1.334744,-0.168633}, {-1.208243,0.148212}, {-0.848912,0.415874}, {0.843947,0.736823}, {-1.158485,0.210237}, {-0.099862,1.120765}, {0.337771,0.007164}, {-0.469080,0.520155}, {-0.100074,-1.349217}, {-0.157844,0.287353}, {-0.779996,0.294751}, {0.073369,0.492718}, {-0.464267,0.726453}, {-0.462696,-0.741070}, {0.023056,1.172214}, {0.224251,0.025615}, {-0.336091,-0.276409}, {0.473509,-0.561504}, {0.845649,-0.907685}, {0.627133,-0.351774}, {-0.990811,-0.590419}, {-0.172712,-0.470133}, {0.723323,-0.199676}, {-0.307695,-0.713114}, {-0.083497,0.329677}, {-0.518250,0.421263}, {0.084627,0.104033}, {-0.333341,0.047107}, {-1.401702,0.346693}, {-1.554243,-0.861078}, {0.326409,-0.263726}, {-0.100557,-0.931537}, {1.703162,0.946824}, {-0.198882,-0.911880}, {-0.506174,-0.771035}, {-0.827505,0.609437}, {0.673322,-0.205578}, {-0.806857,-0.975934}, {0.294299,0.863600}, {-0.008905,0.140791}, {-0.175659,-0.263704}, {0.242597,-0.175465}, {0.581556,-0.693348}, {0.221080,-0.123343}, {0.864177,1.380508}, {-0.485638,-0.235111}, {0.019145,-0.507227}, {1.115591,1.035217}, {-1.242264,-0.613672}, {0.528370,0.525414}, {-0.389619,-0.519511}, {-0.156849,-0.205102}, {-0.985984,-1.423871}, {0.517087,-0.357108}, {-0.199417,-0.794782}, {0.201648,-0.957863}, {0.127940,-0.981328}, {-0.892293,-0.484381}, {-0.246429,-0.134570}, {-1.208455,1.697750}, {0.005429,0.475156}, {1.495576,-0.048856}, {-0.532713,0.246399}, {0.020822,0.397247}, {-0.943340,0.215974}, {0.091969,0.698433}, {-0.605709,-0.662562}, {-0.662931,0.331181}, {0.510917,-0.498797}, {-0.070321,-0.339604}, {-0.828848,0.232796}, {0.637634,0.622874}, {-0.384873,0.201997}, {0.762228,-0.732545}, {-0.051603,-0.149058}, {0.029130,0.529245}, {0.834301,0.594478}, {-0.261223,-0.069449}, {-1.302920,-0.290366}, {-0.609619,-0.588839}, {0.497506,0.424783}, {-0.187720,0.612541}, {0.017128,0.698742}, {-1.811540,-0.055316}, {0.862133,-1.369530}, {1.262000,-0.131324}, {1.156433,0.484189}, {-0.076493,-0.424579}, {-0.130062,1.379691}, {0.833397,0.567487}, {0.078902,0.473863}, {0.055890,-0.769505}, {0.060725,-0.404843}, {0.000445,0.737484}, {-0.625014,-0.395060}, {-0.753279,-0.276740}, {1.520089,1.037106}, {-0.319487,1.277601}, {0.118810,1.297974}, {-0.215298,-0.455871}, {0.254708,0.218111}, {0.418569,-0.707815}, {-1.185689,0.006936}, {0.123850,0.442040}, {-0.408899,0.843042}, {-0.086253,-0.322820}, {-1.244809,-0.408063}, {-0.152610,0.218428}, {-0.304509,0.721444}, {-0.223893,-0.198213}, {0.161462,0.965719}, {-0.016545,-0.046833}, {0.014223,0.409396}, {1.975500,-1.416411}, {0.987470,-0.295333}, {1.392536,-0.339042}, {-1.772024,1.071792}, {0.561628,0.260545}, {-0.614207,0.253911}, {0.255899,0.338669}, {-0.545300,0.377977}, {-0.781682,-0.308513}, {-0.473559,0.115544}, {0.970356,0.389522}, {1.340998,0.204031}, {0.636971,-0.691872}, {1.087438,-0.703128}, {0.335864,-0.678190}, {-0.567828,-0.567210}, {-0.650808,0.427866}, {-0.267197,-0.819795}, {-0.757122,-1.946263}, {-0.479753,-0.686059}, {-1.058098,-0.284788}, {-0.601739,-1.515210}, {0.613674,0.326730}, {1.501791,-0.056387}, {-0.990549,0.002105}, {-0.865560,-0.308869}, {0.464395,-0.231092}, {-0.644999,0.444856}, {0.545002,-0.193149}, {0.447797,-0.492268}, {-0.421009,-0.021117}, {-0.190813,0.311118}, {0.467296,0.294717}, {0.154595,1.419043}, {0.281873,0.405801}, {-1.053144,0.367926}, {0.048581,1.905063}, {-0.637562,-0.469837}, {0.650205,-1.538225}, {-0.885319,-0.085329}, {-0.052037,0.098850}, {-1.205488,0.099386}, {1.421300,-0.337389}, {0.163746,1.595691}, {0.316168,0.058669}, {0.901451,-0.757891}, {0.374950,0.220098}, {0.289515,-0.754124}, {-0.344068,-0.343308}, {0.232374,0.263313}, {2.246893,0.378554}, {-0.376969,0.322563}, {0.709981,-1.565807}, {-0.784404,0.311436}, {-0.414114,0.191005}, {-0.912873,-1.111710}, {0.022198,1.018839}, {-1.388431,-0.029500}, {1.318379,0.695939}, {0.832088,-0.225946}, {-0.685464,1.189551}, {-1.724108,0.128743}, {-0.267640,0.820472}, {0.369300,1.266272}, {-0.485413,-1.174063}, {-1.258036,0.730961}, {-1.037161,-0.806028}, {-1.128983,-0.308337}, {0.655767,-0.390841}, {-0.343421,0.248034}, {0.458703,-0.580272}, {-0.309516,-0.875010}, {0.612543,0.577868}, {0.291884,0.221870}, {0.556053,0.899818}, {-0.155180,-0.104632}, {0.342271,0.297307}, {0.201082,0.328868}, {1.519672,-1.255112}, {-0.277044,0.809604}, {-0.983866,-0.270883}, {-0.252473,0.652332}, {0.320750,0.253181}, {0.439080,-1.174365}, {0.577125,0.328839}, {0.900496,0.913433}, {0.217882,-0.002589}, {-0.005437,-0.172455}, {0.777052,-0.589731}, {-0.319754,-0.552669}, {0.663022,0.005191}, {-0.444068,0.973952}, {-0.284655,0.373087}, {-0.653444,0.000541}, {0.937499,-0.190486}, {-0.353436,-0.421615}, {-0.586946,1.251421}, {-0.106296,-0.907972}, {-0.133041,-1.699473}, {-1.323406,1.678851}, {0.297010,-1.495266}, {-0.282727,-0.006885}, {2.101317,-0.581565}, {-0.386652,0.065565}, {-0.086661,0.930770}, {1.072493,-0.689899}, {-1.072787,1.386659}, {1.079130,0.126657}, {-0.255408,-0.604117}, {0.923296,0.431058}, {0.884115,0.288090}, {-0.783201,-0.804343}, {-1.563031,0.029382}, {-0.366755,0.047618}, {0.931579,0.790832}, {0.079395,-1.064498}, {-0.576885,-1.423422}, {1.061247,-0.359222}, {-0.079346,-0.583210}, {-0.513897,-1.038086}, {-0.306731,-0.347102}, {-0.303644,0.082931}, {1.070749,0.846657}, {0.596321,-0.863198}, {-1.493087,0.752431}, {-0.326493,-0.259466}, {0.762672,0.637558}, {0.470650,-0.475920}, {1.217709,1.223485}, {-0.105262,0.348860}, {0.809125,0.110621}, {0.705164,-0.451192}, {0.256454,0.998392}, {-0.182322,-1.808778}, {0.132926,-0.046858}, {-0.115529,-0.094157}, {-0.386512,-0.427899}, {1.703266,0.413302}, {1.689060,0.300520}, {-0.746970,-0.620105}, {0.331307,1.166821}, {-1.642881,-0.355440}, {0.284702,-0.125837}, {-0.942006,0.609114}, {0.490133,-0.550940}, {0.479289,0.712846}, {-0.733015,1.085078}, {1.342473,0.807258}, {-0.139847,-0.210786}, {-1.019707,-0.083367}, {-0.515722,-0.667669}, {-0.490205,0.536208}, {1.137698,-2.187429}, {0.689605,-0.279192}, {-0.758482,-1.078222}, {-0.062444,-1.440962}, {-0.959758,-0.131322}, {0.578693,1.089248}, {-0.447809,0.153117}, {-0.380639,0.131958}, {0.663486,0.877594}, {0.280871,-1.058013}, {-0.699962,0.353879}, {-0.162627,0.269167}, {-0.204061,0.751909}, {0.209289,-0.584008}, {0.284208,0.331193}, {0.885480,0.772389}, {-0.252435,-0.861216}, {1.302831,0.447444}, {0.039083,-0.234160}, {-0.935810,-0.162396}, {0.125644,0.184471}, {0.445812,-1.213550}, {-1.380393,0.775430}, {-0.188419,0.701213}, {0.684211,-0.154271}, {-0.182573,0.039267}, {0.811469,-0.969950}, {-0.778200,1.188098}, {-0.049732,-0.445024}, {-0.852271,-0.949873}, {0.086241,-0.750884}, {-0.096712,-1.624033}, {-0.400723,0.228941}, {1.049161,-2.253919}, {-0.058805,-0.708923}, {-1.286261,-1.145985}, {-0.215680,0.977318}, {-1.137437,0.643552}, {0.648707,0.534293}, {-0.097589,0.270605}, {-0.536918,0.019383}, {0.467302,0.109569}, {-1.583003,-0.761356}, {-0.935186,-0.891575}, {-0.514207,0.428989}, {0.765034,-0.341230}, {0.067731,0.661021}, {-0.145722,0.204315}, {-0.062658,0.608009}, {0.471454,0.095159}, {-0.452387,1.030955}, {0.553401,-0.726777}, {0.622963,0.530085}, {0.208907,1.294012}, {-0.324651,1.366459}, {-0.576267,-0.393594}, {-1.011991,0.804189}, {0.737499,0.822178}, {0.481131,-0.143674}, {-0.684440,0.644153}, {0.794158,-0.398822}, {0.568346,0.400063}, {0.913021,-0.104825}, {-0.181232,-0.575912}, {-1.186140,0.417101}, {0.311493,0.955016}, {0.331007,1.201278}, {0.208202,0.031411}, {0.463080,0.501488}, {0.482757,0.079090}, {-0.880469,0.584826}, {-0.159840,-0.023861}, {0.845792,-0.498914}, {1.200194,-0.998738}, {-0.687638,0.627621}, {0.834554,-0.044152}, {-0.567932,0.022438}, {0.649994,-0.451273}, {1.550910,0.386612}, {0.643220,-1.226031}, {-0.084707,0.483131}, {1.142138,-0.495484}, {0.591518,0.600105}, {0.909766,-0.968842}, {-0.318164,-1.216190}, {-0.002672,0.682111}, {0.303462,-0.734521}, {-1.328197,-0.512260}, {0.142123,-0.446938}, {-0.563399,-0.108576}, {-0.595759,0.432539}, {0.140978,-0.820013}, {0.691118,-0.298545}, {-0.892137,0.532776}, {0.882700,-0.514615}, {-1.126496,-0.553388}, {-0.366223,0.264003}, {1.216088,-0.643513}, {0.144411,0.190855}, {-0.513814,1.301282}, {-0.139218,-1.666939}, {-0.873328,1.087577}, {0.368330,-0.436673}, {-0.799562,0.387875}, {1.105326,0.374214}, {0.212973,0.611913}, {-1.233469,-0.191584}, {-0.678596,-0.747265}, {-1.464750,0.891797}, {-0.103633,0.529639}, {0.946408,0.704495}, {-0.247739,0.650610}, {0.314285,-0.478465}, {-0.801484,-1.330346}, {-0.474770,0.029146}, {0.156161,0.354246}, {-0.514883,0.437114}, {-0.723243,-0.302359}, {-0.623393,-0.064006}, {0.668911,0.512527}, {-0.200754,0.270304}, {1.274333,-1.593959}, {-0.433487,-0.077630}, {1.022869,-0.724708}, {1.302765,-0.324157}, {0.048530,0.524041}, {0.580503,0.255952}, {0.871851,-0.571890}, {-1.320527,0.372024}, {-0.837724,-1.330308}, {-0.130319,1.947338}, {-0.966811,-0.248498}, {-0.980519,0.121219}, {-0.928127,0.014107}, {0.784902,-0.292815}, {-0.001154,0.102495}, {0.174204,-0.798143}, {-0.616828,-1.187243}, {0.901858,0.095972}, {-0.036058,-0.624901}, {-0.136308,0.048002}, {0.724986,0.204018}, {-0.290315,-0.226273}, {-0.937261,0.310854}, {1.350983,1.247481}, {0.132400,-0.117268}, {-0.433586,0.672210}, {0.427985,1.263974}, {0.053098,-0.134753}, {0.145390,-1.579824}, {-0.466987,-0.271971}, {-0.452877,-0.054139}, {-0.137701,-0.493978}, {0.449226,0.123858}, {0.641004,-1.580859}, {0.732717,0.424758}, {-1.191464,-0.668713}, {-0.068454,-1.558817}, {-1.255019,0.090546}, {0.133334,-0.672320}, {-0.357994,-0.062960}, {-0.179648,-0.136934}, {-1.405926,-0.152062}, {-0.122649,-0.447278}, {-0.956039,0.706032}, {-0.577964,0.702715}, {-1.092396,-0.224851}, {-0.080453,0.539972}, {0.941582,0.526443}, {-0.245442,-0.421211}, {-0.655510,0.175952}, {0.090653,0.356258}, {0.597282,0.245042}, {-1.281953,1.174625}, {0.246278,0.484865}, {-2.421806,-0.626013}, {-0.515321,0.348373}, {0.100784,-0.155870}, {-0.518027,-0.137351}, {-1.091217,0.932436}, {0.298705,0.215227}, {-0.032357,0.318942}, {-0.028669,0.835347}, {-0.164235,-0.633671}, {-0.978889,0.405411}, {-0.366083,-0.163942}, {-0.367713,0.709928}, {-0.245638,-0.099905}, {-0.171231,0.640628}, {-0.531550,-0.252464}, {-0.460142,1.860309}, {-1.486483,-0.241096}, {-1.050993,-0.330973}, {0.877660,0.278261}, {0.471375,0.863250}, {0.815270,0.878291}, {-1.064940,1.248690}, {-0.069835,-0.017150}, {1.102388,0.275357}, {1.179494,0.240331}, {-1.664730,-0.144800}, {-0.236780,-0.450388}, {0.727520,-0.630164}, {-0.976490,-0.375161}, {1.003983,-1.257875}, {-0.358144,-0.688150}, {0.425984,0.320394}, {0.145065,-0.070437}, {-0.791365,-0.328291}, {0.251614,-0.243055}, {-0.393163,0.191665}, {-0.150863,-0.584294}, {-0.673513,-0.686572}, {-0.402621,-0.474615}, {-1.157962,-0.033111}, {0.452590,-1.526519}, {0.021951,-0.726401}, {-0.912745,0.826707}, {-0.372052,0.412758}, {0.777297,-0.106160}, {-0.135258,0.030331}, {-0.109689,-0.926576}, {0.683335,-1.604886}, {-0.421987,0.744210}, {-0.557095,-0.775698}, {0.454006,-0.044498}, {0.177879,0.041843}, {0.074312,0.324311}, {-1.059395,0.620565}, {-0.421680,0.527942}, {-1.202068,1.160552}, {-0.115764,-0.745636}, {-1.541088,0.056196}, {0.381186,0.008007}, {-0.499599,0.141341}, {0.013978,-0.125940}, {0.090000,-1.187147}, {1.160943,-0.631971}, {-0.156704,0.697033}, {-1.239590,-0.623728}, {-0.792073,0.313426}, {-0.731100,-0.549662}, {-0.357447,1.054545}, {-1.142243,-0.677072}, {0.337990,0.046116}, {0.530248,-1.446341}, {0.636612,-0.662750}, {-2.179262,0.191543}, {-0.550411,0.747675}, {-0.402629,0.988314}, {-0.083953,0.479871}, {0.124996,-0.359557}, {0.421828,0.346338}, {-0.171740,-1.735271}, {1.095081,-0.775815}, {-0.492503,0.267703}, {-0.204414,0.545646}, {0.385776,-0.276769}, {0.183290,0.903289}, {-0.084581,-0.121421}, {-0.245414,-0.714739}, {-0.576804,0.885006}, {-1.119495,-0.231658}, {1.164001,0.578247}, {0.112226,0.129056}, {-0.593079,-1.115176}, {0.166237,-0.014866}, {-0.444435,0.569202}, {-1.420244,-0.532449}, {-0.340449,-0.654735}, {1.268462,-0.042484}, {-0.553843,-0.819293}, {0.303196,-0.769441}, {0.388195,-0.520681}, {-0.196868,-0.813691}, {0.519316,-1.007083}, {0.706958,0.112890}, {-1.075358,-0.054663}, {0.741997,0.785043}, {0.052625,-0.121979}, {0.253025,0.356385}, {0.828369,-0.593061}, {-0.384827,0.456143}, {-0.140667,0.196871}, {-1.966096,-0.083070}, {-1.020553,-1.461990}, {0.190510,-0.037306}, {-0.625134,-0.080120}, {-0.562010,-0.950249}, {-0.230976,-0.527893}, {-0.228677,-0.348693}, {-0.332359,-0.311350}, {-0.704024,-1.084836}, {-0.434046,0.133438}, {-0.318342,-0.053535}, {-0.096872,0.012919}, {-0.610696,-0.174108}, {-0.252555,-0.509190}, {1.061245,0.467663}, {0.252635,-0.703320}, {-0.212390,1.327738}, {0.587415,0.199159}, {-0.966466,-0.076941}, {-0.829028,1.083157}, {-0.505337,1.097833}, {0.691992,0.091951}, {0.564158,0.597321}, {0.804210,0.592029}, {-0.413688,0.496419}, {-0.298775,0.196912}, {-0.092485,-0.806745}, {-1.159163,0.204774}, {-0.794889,-0.067174}, {-0.438785,-0.115991}, {0.282720,-0.231078}, {-1.228366,-0.260419}, {-1.528740,-0.246528}, {-0.246221,-0.580162}, {0.114350,-1.968410}, {-0.218031,-0.356657}, {-0.948797,0.708502}, {-0.805080,-0.480688}, {-0.334364,0.785381}, {0.070317,-0.128118}, {0.470661,-0.323759}, {-0.185075,0.483122}, {-0.404439,0.149669}, {0.074842,0.256006}, {-1.013446,0.621396}, {-0.134759,0.287886}, {0.376520,1.192665}, {-0.362520,-0.634418}, {0.362985,-0.196815}, {0.653376,0.725399}, {1.234385,-0.520766}, {0.281393,1.887825}, {-0.506625,0.262909}, {-1.755273,0.507609}, {-0.321531,-0.128175}, {0.301331,-0.922664}, {-0.600594,-1.248979}, {-0.314934,-0.073132}, {-1.253293,-0.794391}, {-0.119523,-0.106375}, {-1.036734,-0.848670}, {-0.204574,0.546471}, {0.823228,0.262015}, {1.082957,-0.114482}, {-0.728824,0.148125}, {-0.883430,0.785116}, {0.641440,-0.078952}, {-1.272558,0.134591}, {0.505240,-0.602016}, {-0.972164,1.092034}, {0.612247,0.549404}, {0.450208,0.493039}, {-0.525409,0.940858}, {-0.216053,0.053321}, {-0.034777,0.076897}, {-0.559997,-1.618377}, {-0.739954,0.626905}, {-0.033963,-0.233715}, {0.672760,-0.049505}, {-0.208845,-0.160882}, {0.953452,-0.034831}, {-0.376313,-0.779698}, {-1.116935,0.789470}, {1.852068,-0.400982}, {0.337988,-0.001624}, {0.591794,-0.223387}, {-0.764729,-0.256717}, {0.409644,-0.331827}, {0.353446,0.986947}, {0.013275,-0.074213}, {0.197200,-0.544923}, {-0.331489,0.568903}, {0.432285,-0.929833}, {0.600862,0.718698}, {0.872893,-0.419268}, {-0.200237,-0.718290}, {0.242213,0.079084}, {-1.577807,1.174048}, {-0.379725,0.187433}, {0.307646,1.344402}, {1.215462,0.395933}, {0.029692,0.606788}, {0.892763,-0.031153}, {0.685208,0.002816}, {0.907146,0.248276}, {0.328204,0.310385}, {-0.450021,-0.534631}, {2.075611,-0.976094}, {0.337534,0.624849}, {-0.375221,-0.715899}, {-0.134676,-0.128634}, {-0.654845,-0.951174}, {-0.407146,-0.844925}, {-1.268266,-0.592878}, {-0.624101,-0.781781}, {-0.162159,-0.785210}, {-1.763260,0.357187}, {-0.408447,0.565726}, {-0.392385,-0.323932}, {0.070956,-0.460428}, {-0.053136,0.207713}, {-0.164207,-1.296008}, {-1.192106,-1.901697}, {-0.431213,-1.017489}, {-0.520848,1.407188}, {0.145023,-0.336089}, {0.856252,-0.968676}, {0.695109,-1.115058}, {0.942748,0.032814}, {-0.442368,0.501998}, {-1.339842,0.494702}, {0.793722,0.683030}, {-0.080036,-0.001120}, {-0.124282,-0.176612}, {-0.510859,-0.403349}, {-0.013581,-0.068892}, {-0.285268,0.123699}, {0.681833,-0.376550}, {0.665080,1.385498}, {-1.217502,0.225975}, {-0.594094,-0.361329}, {0.640636,-1.635224}, {0.440288,-0.173718}, {-1.095971,0.028588}, {-0.391012,0.536173}, {-0.679180,-0.332060}, {0.443795,0.206495}, {0.102913,-0.012004}, {-0.877523,-1.194485}, {1.576267,-0.479076}, {-1.125040,-0.707965}, {-0.293637,-0.295395}, {1.163673,0.261285}, {-0.009871,1.620751}, {0.420659,1.657904}, {0.184678,0.360919}, {-1.117315,-0.182509}, {-1.805887,-0.737423}, {1.715050,-0.359039}, {0.548347,-0.711148}, {0.819885,-0.536776}, {0.038829,-0.046101}, {-1.555754,1.115475}, {0.059829,-0.900202}, {0.215772,0.610962}, {0.008583,-0.164357}, {-0.394604,-0.266908}, {-0.089186,0.115016}, {0.879229,-1.099212}, {0.666276,-1.094933}, {-2.243026,0.931909}, {1.069452,-0.301207}, {1.192592,1.144332}, {-0.546448,-0.404087}, {1.042238,0.099649}, {-1.150986,-0.352998}, {1.671102,0.062038}, {-0.292935,-0.142184}, {0.912273,0.927933}, {-0.610804,-0.790526}, {-1.233318,0.582164}, {0.362886,0.126435}, {0.266818,0.880278}, {0.334312,-0.851251}, {-0.625542,0.254909}, {0.730234,0.366879}, {0.714704,0.004163}, {1.194976,-0.023707}, {0.326624,-0.471626}, {-0.229043,-0.827678}, {0.325709,-0.115376}, {0.677117,-0.136203}, {0.609055,-0.553231}, {0.043072,-0.424984}, {0.441790,0.828142}, {-0.436910,-0.103521}, {-0.626695,0.363246}, {-1.091702,0.016860}, {0.576059,0.141374}, {-0.152014,-0.661996}, {-0.774034,-0.052961}, {0.523869,0.787151}, {0.022872,0.624295}, {2.371050,2.241895}, {0.099188,-0.686992}, {-0.026026,-0.171252}, {0.675816,1.843051}, {0.006666,0.000152}, {1.021349,0.543076}, {-0.602923,0.676056}, {1.027891,-0.418795}, {-1.759205,-1.102256}, {1.116023,0.103083}, {0.576224,-1.411952}, {-0.156183,1.999043}, {0.124434,-0.238939}, {-0.938087,0.337435}, {0.047635,0.159295}, {0.217816,-0.807263}, {-0.727492,0.439254}, {0.245795,-1.372293}, {1.078585,0.289308}, {-0.746381,-0.190481}, {0.461490,-0.156236}, {0.279562,-0.141011}, {0.800455,0.112162}, {0.846632,-1.442145}, {0.896583,-0.366371}, {0.142449,0.555705}, {0.443817,-0.165670}, {-0.278247,1.893330}, {-0.148235,0.209155}, {0.819120,-0.340799}, {0.110860,-0.461213}, {-0.191900,-1.200356}, {0.385260,0.158268}, {0.179177,-0.338312}, {0.286717,0.336873}, {-0.596235,-0.074333}, {0.311757,-1.159880}, {-0.906439,0.587565}, {0.837066,-0.107715}, {-0.260451,-1.427325}, {-0.216606,1.473217}, {-1.717780,-0.058343}, {-1.378627,0.891233}, {-0.079320,0.532493}, {-0.016687,0.630684}, {0.240314,0.096040}, {-0.331577,0.458243}, {0.372299,-1.365709}, {-0.741196,1.252891}, {-0.264394,-0.346368}, {0.174941,0.592150}, {-0.182301,0.472894}, {-1.078744,0.352627}, {0.668825,-0.839549}, {-0.794913,0.098837}, {0.346916,0.827142}, {-0.557851,-0.824683}, {0.152571,-1.089133}, {0.317379,-0.377552}, {-0.310447,-0.798186}, {1.416259,0.538289}, {-0.139209,0.950880}, {-0.671851,-0.023958}, {-0.295455,0.491929}, {-0.042358,-0.225679}, {0.306427,-0.412672}, {-0.096405,-0.210148}, {1.661258,-0.451881}, {0.887263,-0.441136}, {1.303738,0.032488}, {1.248415,-0.771581}, {-0.521452,0.088019}, {-1.103925,-1.154315}, {0.257631,1.121379}, {-0.262130,0.533858}, {0.605826,-0.581051}, {-0.188663,0.498607}, {0.764838,0.473480}, {0.860975,-1.159374}, {0.452993,0.327307}, {0.175875,1.009939}, {0.281291,-0.479527}, {0.434156,0.687246}, {0.453294,0.558911}, {0.191183,-0.316014}, {0.214000,0.309648}, {0.502847,0.327473}, {-0.398865,-1.147691}, {-0.952348,0.394180}, {-0.349121,-0.235417}, {-0.449837,0.044554}, {-0.402914,-0.408737}, {0.199668,0.760049}, {0.010913,-0.831466}, {0.090912,0.009287}, {0.512837,-0.858424}, {-0.283099,-0.240292}, {-0.112692,-0.322550}, {-0.417705,-0.353556}, {-1.267119,0.235106}, {-0.412714,-1.078769}, {-1.068857,-0.020876}, {0.735610,-0.698172}, {0.097437,1.100995}, {-0.824265,-0.625636}, {-0.151463,0.035774}, {-0.097028,-0.167782}, {-0.354245,-0.055691}, {0.360549,0.749328}, {0.718972,-0.297089}, {0.093750,-0.638153}, {-0.247393,-0.297925}, {-1.029741,-0.068838}, {0.526758,0.786855}, {-0.926147,0.224848}, {0.558481,-0.057841}, {-0.267158,-0.691253}, {-1.247372,-0.770014}, {-0.163633,-1.488970}, {-0.501774,0.176045}, {0.136177,-0.868078}, {0.777970,0.447295}, {0.460035,0.095623}, {0.503416,-0.169723}, {1.171534,-0.676447}, {-0.713499,0.434530}, {0.462648,0.066601}, {-0.832730,-1.270562}, {0.765136,0.913623}, {0.417389,0.798048}, {-1.426013,-0.274914}, {-0.825985,-0.424720}, {0.603344,-0.834278}, {0.709370,0.850793}, {0.003214,-0.250830}, {-1.002978,-0.742748}, {-0.936138,0.680271}, {-0.053393,0.089266}, {0.420002,-0.368487}, {0.710330,-0.438794}, {-1.087089,0.102425}, {0.476970,-1.002341}, {0.375935,0.399873}, {-0.989189,0.653074}, {0.872430,0.758053}, {-0.890879,-0.312795}, {-0.238132,-0.250050}, {0.849829,-0.245135}, {-0.306339,1.034213}, {0.133859,-0.614994}, {-0.556895,0.160389}, {-0.042028,-1.154500}, {-0.019949,-0.576390}, {-1.028293,0.814275}, {0.766851,0.887268}, {0.044484,-0.512244}, {0.795847,-0.238133}, {-0.123321,1.153876}, {1.732138,0.309731}, {-0.429759,0.508320}, {-0.700518,-0.577407}, {0.586965,0.247099}, {0.474665,-0.264909}, {0.657846,0.682646}, {1.683598,-0.181147}, {0.481185,0.407061}, {-0.867097,-0.307912}, {-0.884851,0.803434}, {0.248120,0.335810}, {-0.766947,-0.015652}, {0.138088,-0.540963}, {0.483644,-0.292753}, {0.434778,-0.933118}, {0.969690,-0.575479}, {0.033365,-0.110259}, {0.045278,-0.657264}, {-0.823623,0.516920}, {-0.153628,-1.007980}, {-0.500080,0.938031}, {-0.332981,0.507900}, {0.290413,0.159538}, {-0.402051,0.813947}, {0.464196,0.574152}, {0.578220,-1.425212}, {0.202852,-0.043236}, {1.658922,0.205793}, {-0.485749,-0.745853}, {-0.446857,0.377168}, {0.876179,1.074485}, {-0.584951,0.013578}, {-0.837915,-0.240871}, {-1.524292,0.233789}, {-0.825139,0.748604}, {1.596491,0.933630}, {-0.401496,-1.003424}, {-0.258193,-0.695623}, {-0.052062,-0.166794}, {0.690957,0.351045}, {0.493275,-0.920828}, {-0.863543,1.297232}, {-0.108419,0.062067}, {1.378657,-1.208240}, {0.085856,-1.104558}, {-0.366961,0.245213}, {0.832540,0.165383}, {-0.584261,0.126903}, {0.016941,0.536423}, {-0.270773,1.502084}, {-0.372237,-0.400977}, {1.068030,-0.451306}, {-0.621204,-0.546822}, {1.960128,0.187646}, {-0.280504,-0.872304}, {0.683431,0.366819}, {0.595984,-0.857526}, {-0.631380,-0.386350}, {0.020853,-0.369727}, {-0.212579,0.923348}, {0.683995,-0.323235}, {0.805253,0.720984}, {-0.198278,-0.751235}, {-0.587794,1.028549}, {0.082077,0.108813}, {0.745455,-0.151971}, {-0.976860,-1.417301}, {-0.100352,0.301667}, {0.452015,0.239125}, {-1.198564,1.164572}, {-0.347850,-0.780059}, {1.005080,-0.098043}, {-0.076527,0.140155}, {0.822524,0.259489}, {-0.484033,0.190539}, {0.547659,0.465998}, {0.402279,-0.058429}, {-0.145342,0.125883}, {-0.136622,1.065746}, {0.408618,-0.650430}, {0.015056,0.491154}, {1.132468,-0.328837}, {-0.012391,-0.686920}, {0.053038,0.495824}, {0.071729,-0.474581}, {-0.440191,-0.561736}, {-0.524869,0.365948}, {0.556736,-0.017547}, {0.292031,-0.097135}, {1.006116,1.298618}, {0.516901,0.626829}, {0.630999,-0.413970}, {0.774604,-1.207384}, {-0.615805,0.565898}, {0.364355,-0.950000}, {0.530245,-1.069383}, {1.242254,0.041582}, {1.198631,-0.852988}, {0.409406,-0.362121}, {-0.051573,1.378894}, {0.526354,0.639450}, {-0.194904,-1.121370}, {0.927330,1.050282}, {-1.444789,0.271173}, {-0.428099,0.664772}, {-0.780386,0.717917}, {-0.113324,-0.553108}, {0.355862,-0.738216}, {-0.099107,0.064152}, {-0.154411,1.265266}, {0.802506,-0.378603}, {-0.254708,-0.134292}, {0.098108,-0.759107}, {-0.609531,-1.121607}, {-0.421901,-0.211898}, {0.711968,-0.180637}, {-1.105167,1.156956}, {-1.003797,0.694685}, {0.049084,-0.230107}, {-0.236223,1.025917}, {0.404298,-0.017089}, {-0.066885,0.931927}, {-1.723563,-0.969529}, {0.491575,-0.029033}, {0.623884,-0.068448}, {0.176416,-0.045140}, {-0.898063,-0.441314}, {0.054965,-0.105671}, {0.099547,0.031943}, {-0.136638,-0.641491}, {-0.416031,0.788225}, {0.421132,0.199360}, {0.973337,-0.185653}, {0.088055,0.466610}, {0.175948,0.713615}, {-0.186074,-0.718673}, {-0.477278,0.873979}, {0.439899,0.385747}, {0.281673,1.501744}, {-0.893871,0.167312}, {-1.196201,0.511553}, {-0.088248,1.523528}, {-0.127180,0.047668}, {-1.244524,1.220496}, {-0.458583,0.408467}, {-0.423980,-0.843592}, {-0.680569,-0.034943}, {0.025603,-0.219165}, {-0.182524,-0.609754}, {-0.540846,1.056731}, {0.303247,1.820157}, {0.180851,0.479806}, {0.025760,-1.252858}, {-0.747286,-0.234204}, {-1.773173,0.069396}, {0.370812,-0.513683}, {-0.420497,-0.847213}, {-0.820247,0.180888}, {0.377636,-0.251796}, {-0.084840,0.837256}, {0.204533,-0.516983}, {-0.579383,0.361949}, {-0.079244,-0.997139}, {0.763352,-0.920005}, {0.991156,0.097808}, {-0.207017,-0.379039}, {-1.048663,0.392404}, {-0.947993,-0.165707}, {0.222565,-1.486800}, {1.309369,0.187803}, {0.083914,0.759151}, {0.017533,-0.350594}, {0.936769,-0.133694}, {-0.542859,0.015576}, {0.527186,1.057142}, {0.576027,-1.107543}, {-0.597828,0.116528}, {-0.573770,-0.408299}, {-0.564696,0.907437}, {-0.843667,0.002832}, {1.708716,-1.282816}, {0.099415,-0.410289}, {-1.175233,0.409935}, {-0.505987,1.096503}, {0.831878,-0.633435}, {-0.036724,0.894208}, {-1.009229,0.523294}, {-0.206856,-0.518026}, {-0.265399,0.734165}, {-1.418101,-0.082190}, {0.605095,0.372543}, {-1.234487,1.112847}, {-0.036487,0.136546}, {-0.027486,-0.021950}, {0.087476,0.308363}, {0.380610,-0.770809}, {-0.612494,0.395982}, {-0.760804,0.774983}, {1.865483,0.743280}, {0.077926,0.679733}, {-0.346491,-0.172862}, {0.652737,-0.498038}, {-0.306556,-0.127240}, {1.422770,-0.788084}, {0.727473,0.199273}, {0.998929,0.906173}, {-0.062778,-0.292218}, {0.389584,-0.499927}, {1.122804,0.323068}, {-0.936607,0.116318}, {0.080546,-1.053398}, {-0.108415,0.262303}, {0.675554,-0.771375}, {0.697370,0.301939}, {-0.516065,0.371745}, {-1.958861,-0.787043}, {1.816436,-0.421257}, {0.580993,0.294074}, {-0.218823,-0.831417}, {-0.217031,-1.430616}, {-0.483142,0.379944}, {0.067187,-0.582305}, {-0.697808,-0.168340}, {1.293952,0.231077}, {0.097290,-0.755162}, {0.165245,0.091931}, {-1.238996,0.033182}, {0.094961,-0.517375}, {-0.390291,0.240153}, {0.023253,2.137456}, {0.621424,-0.412412}, {0.242280,-0.594768}, {-0.765264,-0.423112}, {-0.153731,0.730757}, {0.419930,0.768227}, {0.164315,0.199661}, {-1.536602,0.855813}, {0.226126,-0.357326}, {0.350009,0.143890}, {0.337303,0.843891}, {-0.411561,-1.142193}, {-0.701707,-0.241532}, {-0.754151,-0.193665}, {-0.371459,-0.379980}, {-0.276399,-0.210742}, {-1.074638,0.834850}, {1.617356,-0.576681}, {1.568916,-0.678719}, {0.562247,0.287642}, {0.631863,1.237075}, {0.042284,-0.047805}, {1.485053,-0.684224}, {0.160235,-0.248368}, {-0.389660,0.710686}, {-0.050819,0.065209}, {0.147388,0.158528}, {0.327583,-1.242319}, {-0.185792,-0.398783}, {-0.880967,-0.168451}, {0.561261,0.309319}, {0.114879,0.834084}, {-0.630472,0.320430}, {0.435172,-0.147865}, {0.138108,0.189852}, {0.433189,0.538220}, {-0.539843,-0.734402}, {0.102453,1.548384}, {-0.349662,-0.123426}, {-0.497825,-0.681592}, {-0.815304,0.920879}, {0.264205,1.651104}, {-0.360736,-0.822221}, {-0.546373,-0.203813}, {1.506398,0.351934}, {1.271735,0.262145}, {0.706702,0.382961}, {0.063130,0.014527}, {-0.198279,-0.082914}, {0.756777,0.133322}, {0.762393,0.070534}, {-1.168252,0.042773}, {-0.875856,0.058973}, {-0.907179,1.363516}, {0.003700,1.289862}, {0.279690,-0.489829}, {-0.952025,-0.016869}, {-0.062242,0.118709}, {0.335991,-0.262022}, {-0.135763,0.124727}, {0.827726,-0.460658}, {0.070106,0.118099}, {-0.594234,0.138962}, {0.638866,1.436196}, {0.038912,0.342362}, {-0.409336,1.245498}, {0.246502,-0.213165}, {-0.522154,-0.329476}, {-1.023245,-0.070043}, {0.648593,-0.512078}, {0.202472,-1.312851}, {-1.306352,-0.890312}, {1.086565,-0.802461}, {0.842372,-1.343072}, {-0.159571,-0.014023}, {0.857682,-0.038734}, {-1.088896,-0.345921}, {0.822683,0.990156}, {-0.329881,0.808677}, {1.062717,1.498025}, {-0.433379,-0.433149}, {-1.122758,-0.127346}, {0.542121,0.927791}, {0.308221,0.175934}, {-0.149790,-1.068382}, {-0.616779,-0.744305}, {0.839533,-0.157706}, {0.303678,0.382350}, {0.194006,-0.212379}, {0.033246,-0.903250}, {-0.338256,-0.678675}, {-0.613313,-0.387690}, {-1.010888,-0.461805}, {0.256900,1.327843}, {0.791153,0.371449}, {0.412562,-0.756850}, {0.065134,-0.322337}, {0.083713,0.126607}, {0.723780,1.256984}, {-1.243036,-0.742905}, {0.026896,0.353344}, {-0.269050,0.745763}, {1.149596,0.347420}, {-0.774535,0.020295}, {0.596979,0.015554}, {-0.615475,-0.620565}, {0.318177,0.396116}, {0.421686,-0.052160}, {-0.430877,-1.293244}, {-0.155236,-0.215658}, {-0.602139,0.532974}, {-0.243152,-1.579031}, {0.123780,-0.983632}, {0.136269,-0.821246}, {0.284418,0.304578}, {-0.397824,0.300438}, {-0.360441,0.227509}, {0.046855,-0.171865}, {-1.804252,-0.700048}, {-0.924882,-0.556849}, {0.134748,0.082988}, {-0.132825,-0.916706}, {0.786704,0.720149}, {1.091863,0.641613}, {0.881371,0.215342}, {-0.096880,0.560482}, {0.422486,-0.921443}, {0.341221,-0.894846}, {0.075976,1.064656}, {-0.533020,-0.023005}, {0.320752,0.244138}, {-0.040666,0.065450}, {1.450750,0.008950}, {0.306952,-0.562488}, {0.302953,0.123134}, {0.798245,0.094443}, {0.038655,-0.516631}, {-0.252824,1.501311}, {-0.356779,0.297983}, {-0.180288,1.164347}, {-1.407410,-0.435116}, {-0.576522,-0.443552}, {0.111603,-0.209512}, {0.136332,1.190104}, {-0.810554,0.693664}, {0.308525,0.629498}, {0.318195,-2.104560}, {0.162520,-0.149801}, {-1.142162,1.218633}, {-0.351640,-0.468696}, {-0.793111,-0.658338}, {-0.575915,0.941180}, {0.317133,0.669761}, {0.985808,-0.707916}, {0.260989,0.770580}, {-0.078153,-0.123214}, {0.053145,1.817637}, {-0.628024,0.069947}, {-0.777414,-0.126421}, {-0.647336,0.166883}, {2.207409,-0.473580}, {-1.038409,0.398710}, {-0.345503,0.161175}, {0.081747,0.890997}, {-0.308902,-0.075592}, {-0.139376,-0.676387}, {0.971584,-0.470253}, {-0.162857,1.149113}, {0.171516,0.587119}, {-0.613744,-0.035450}, {-0.580046,-0.329255}, {0.100551,-1.085898}, {-0.592872,-0.489665}, {-0.941300,-0.498021}, {0.156036,0.709273}, {0.178233,-0.632015}, {0.678891,0.228611}, {0.492409,-0.005288}, {-1.497998,-1.024431}, {0.838897,-0.110250}, {0.568010,-1.606525}, {-0.432611,0.904418}, {0.334915,1.309759}, {-0.890282,1.529258}, {-1.064858,-1.150747}, {0.051353,0.433881}, {-0.146728,-0.312565}, {-1.063791,-0.097197}, {-0.181281,0.331634}, {1.723937,-0.176101}, {0.569951,0.990671}, {0.418655,-0.675772}, {0.182521,-0.095608}, {-1.007120,0.018916}, {1.718394,1.198867}, {-0.313048,0.068845}, {-1.421110,-0.661129}, {-1.370764,-0.150880}, {0.358122,1.405506}, {-2.015900,-0.734896}, {0.605181,-0.924120}, {-1.191318,0.682983}, {-0.456857,-0.148538}, {0.300737,-0.194614}, {0.929323,0.927409}, {-0.450904,0.410019}, {0.838989,0.855354}, {0.011216,0.148217}, {1.790998,-0.435076}, {0.979138,0.801324}, {-0.434199,0.113647}, {0.244367,-0.759697}, {-0.866268,-0.172338}, {0.185045,-0.400993}, {-0.381384,-0.328469}, {0.870050,-1.131930}, {0.475579,-1.270791}, {0.553011,-0.863202}, {0.654535,0.866937}, {0.636370,0.353826}, {0.532848,-0.266808}, {-0.305542,0.323175}, {0.817581,-1.178811}, {-1.196670,0.435729}, {-0.879273,-0.080918}, {-0.355981,0.831777}, {-0.514107,-0.221697}, {-0.173027,0.391314}, {0.480640,-0.762188}, {-1.365528,0.280669}, {-1.190631,-0.468936}, {0.865182,-1.193025}, {0.501712,1.474804}, {-0.256834,0.036278}, {0.625077,-0.710525}, {0.236352,1.463872}, {1.622799,-0.836983}, {-1.629799,-0.761636}, {0.048897,1.161363}, {-0.782579,1.512752}, {0.305203,-0.203621}, {0.078598,0.853412}, {-0.590944,0.241544}, {0.173496,-1.406007}, {-0.999952,-0.051233}, {0.671370,-0.805464}, {-0.681366,0.306463}, {0.562013,-1.218074}, {-0.901352,0.429769}, {-0.149506,0.266835}, {0.214535,1.287188}, {-0.169843,-0.687892}, {-0.054779,1.567896}, {0.240689,0.339854}, {-0.874400,-0.867453}, {0.412938,0.074314}, {0.567298,-2.005843}, {0.023167,0.258225}, {-1.641902,0.893004}, {-0.335666,-0.481124}, {-0.406708,-0.010981}, {0.658780,0.316174}, {-0.955737,0.114306}, {-0.015993,-1.537689}, {1.424653,0.275514}, {0.391517,-0.073148}, {-0.745075,0.282317}, {0.345172,0.271172}, {0.481076,0.739154}, {-0.356021,-0.874318}, {-0.063438,0.390779}, {-1.109843,-0.988009}, {0.717374,0.051986}, {-0.076888,0.729893}, {1.231962,0.770958}, {-0.473425,0.077225}, {-0.541175,0.273609}, {0.353179,-1.140094}, {0.000531,0.335460}, {-0.553490,-0.163401}, {-0.267372,-0.190631}, {-1.005119,0.844056}, {-0.739355,-0.466000}, {1.232900,-0.286890}, {0.072653,0.156869}, {0.766814,0.123674}, {0.409127,0.391504}, {-1.568030,0.076824}, {0.312427,1.087632}, {0.194971,0.012558}, {-0.835118,-0.977949}, {1.155426,0.060691}, {-0.251222,0.836983}, {0.405056,0.222589}, {0.062390,-0.297580}, {0.201353,-0.620657}, {-0.057828,0.302448}, {0.353545,-0.819051}, {-1.077600,0.701107}, {0.551567,-0.547460}, {-0.206217,0.843281}, {0.195007,-0.522554}, {0.786147,0.742689}, {-0.915141,-0.436052}, {-1.052682,1.424224}, {0.597211,-0.177125}, {-0.226331,-0.785225}, {-1.502941,0.305148}, {0.211830,0.257461}, {0.039781,0.621727}, {1.764019,-0.364944}, {-0.011250,0.080853}, {-0.037767,-0.191529}, {0.120387,0.320196}, {1.215214,0.159849}, {0.951333,-0.128658}, {0.683926,0.291417}, {0.465572,0.464227}, {0.237083,-0.278794}, {0.825346,1.939517}, {-1.000650,0.397936}, {-0.422528,0.457669}, {-0.415993,-0.857881}, {0.654893,0.925834}, {0.702427,0.341379}, {-0.992852,-0.485504}, {0.468854,-0.558263}, {1.051053,-1.438013}, {-1.609177,-0.229971}, {-0.338898,1.308837}, {1.716121,-0.108408}, {-1.842097,-0.281067}, {0.180047,0.058089}, {0.314948,-0.365466}, {-0.598626,-1.149004}, {0.282546,0.129074}, {-0.297604,-0.102458}, {-0.134736,0.128291}, {1.822758,-0.192577}, {0.071825,-0.011008}, {0.497849,-0.199343}, {-0.005720,-0.569142}, {-0.765651,-0.543594}, {-1.172104,-0.011979}, {-0.242091,0.779012}, {-0.028042,0.723704}, {0.451185,-0.941516}, {-0.613115,-0.114437}, {-0.972157,0.133869}, {-0.076452,-0.516053}, {0.083782,0.204923}, {0.784000,0.582870}, {-0.183293,0.586900}, {-0.219489,0.464479}, {0.144135,1.149970}, {0.288305,-0.029936}, {1.159682,0.771728}, {-0.068957,0.519200}, {-0.352525,-0.019248}, {-0.265696,-0.606806}, {-0.369018,0.437127}, {0.533511,-0.112122}, {-0.720835,0.975622}, {1.285089,-0.946088}, {0.455252,0.289840}, {-1.326309,-0.639170}, {0.108470,-0.476583}, {0.142548,0.079352}, {-0.029694,0.643831}, {-1.482084,-0.771038}, {-0.465824,-1.087531}, {0.707385,0.077513}, {-0.076182,1.057646}, {0.379631,0.409768}, {0.188938,-0.425715}, {-0.234099,-0.734066}, {0.043174,0.676531}, {-1.163066,-0.193611}, {-0.159620,-0.673125}, {0.127940,-1.817839}, {-0.451725,0.015069}, {0.235742,0.360075}, {1.748806,-0.323556}, {-1.276301,0.117820}, {0.166940,0.213350}, {0.355975,0.062672}, {-0.320198,-1.132743}, {-0.855608,-1.215465}, {0.013539,0.799086}, {0.828422,0.915972}, {1.006847,0.215101}, {0.595009,0.252831}, {0.442370,0.482821}, {-0.693609,0.417306}, {0.288466,-1.005315}, {-0.396817,0.004994}, {-0.293724,-1.217092}, {1.212464,0.943142}, {-0.865108,0.242460}, {0.390441,0.080091}, {0.871808,-1.076529}, {0.254390,-0.387861}, {0.532100,-1.371890}, {0.132686,-1.074121}, {0.426648,0.209831}, {1.146969,0.503369}, {-0.668154,-0.483259}, {0.259931,-0.150336}, {0.082358,-0.893764}, {0.840501,-0.011365}, {-0.082053,0.647275}, {0.266846,1.226206}, {-0.140652,-0.516312}, {0.643273,-0.881556}, {-0.379870,1.065882}, {0.680447,0.242642}, {-1.571274,-0.140568}, {-0.535686,0.628896}, {-0.010813,-0.606330}, {0.361251,1.002445}, {1.065906,-0.068655}, {-0.224415,1.117594}, {0.218497,-0.668069}, {-0.429568,0.891438}, {-0.998373,-0.389920}, {0.226733,-0.730284}, {1.059704,-0.349823}, {-0.625330,-0.250376}, {0.007118,1.525240}, {-0.162942,-0.147716}, {-0.666501,1.257793}, {-0.909984,-0.138492}, {-1.032952,-0.006279}, {-0.404583,-1.848097}, {-1.225754,0.434826}, {1.235797,-0.792226}, {0.783316,-0.750591}, {-0.975057,0.365633}, {-1.894987,-0.971523}, {-0.147116,0.722479}, {0.279787,0.076446}, {1.433566,0.223812}, {0.878914,-0.054495}, {0.011693,0.776712}, {-0.558728,0.481371}, {0.641182,0.167371}, {-0.669665,-0.807005}, {-0.791191,0.591605}, {-0.461665,0.714639}, {0.066197,-0.199694}, {-1.124229,0.833225}, {-1.295771,-0.025693}, {-0.037691,-0.391047}, {-0.847875,0.862880}, {0.441229,0.830506}, {-0.259800,-0.491246}, {-0.240834,0.911920}, {0.442518,-0.580840}, {1.561534,1.501570}, {0.280203,0.397246}, {-0.194177,0.276828}, {0.944982,-0.351264}, {0.022922,0.275745}, {-0.867058,-1.632255}, {0.280170,-0.145873}, {0.108578,-0.052305}, {-0.745809,-0.673504}, {-0.616121,-0.379739}, {1.008981,-0.155303}, {0.285808,-0.263033}, {0.601160,-0.612923}, {0.900771,0.463246}, {-1.013394,-0.618011}, {1.233695,-0.032871}, {-0.521967,-0.979415}, {0.273272,-0.433226}, {-0.240057,0.465270}, {-0.465325,0.770377}, {0.988019,-1.088975}, {0.592680,0.367929}, {0.800055,-0.721733}, {-0.737244,-1.452977}, {-0.427059,0.281520}, {0.866413,-0.643401}, {-0.182692,0.588766}, {0.273523,0.294392}, {0.566235,0.542400}, {0.129606,0.397222}, {-0.579409,0.288147}, {-0.238510,0.268652}, {1.122152,0.526534}, {-0.841624,1.691837}, {0.833782,1.207890}, {-0.924153,2.110262}, {-0.474350,-0.238235}, {-0.515517,0.124354}, {-0.064715,-0.236171}, {0.599675,1.079644}, {1.849341,0.024192}, {0.161045,-0.379662}, {0.823915,0.389173}, {-1.260631,-0.467304}, {0.052479,-0.187389}, {-0.036665,0.449072}, {0.069593,-0.152828}, {0.068830,-1.285841}, {0.680442,0.401365}, {-0.160834,-2.024653}, {-0.929411,0.671114}, {-0.421687,0.749814}, {-0.065965,0.527096}, {0.929475,-0.741284}, {-0.077824,-0.442484}, {0.193024,-0.911981}, {-0.101269,0.845595}, {0.165756,0.295690}, {0.319546,0.593792}, {-0.808930,0.153177}, {1.124408,0.458110}, {0.771971,0.222809}, {-0.167902,0.238733}, {-0.169285,1.231875}, {-1.585493,0.216024}, {-0.747700,0.098100}, {0.340226,-0.192779}, {-1.219417,-0.107218}, {0.228007,0.456442}, {-0.007155,-0.634464}, {-1.875543,0.567589}, {-0.519810,-2.179719}, {-0.904975,-2.451302}, {0.736883,-0.419567}, {0.918135,-1.128765}, {0.384645,0.353239}, {0.434095,-0.284308}, {-0.374883,-0.095262}, {-0.304398,0.413076}, {-0.748666,1.124787}, {-0.701671,0.451972}, {0.395372,0.412637}, {0.588244,-0.145257}, {0.405163,1.023715}, {0.744314,0.958872}, {-0.037084,-0.577777}, {-0.628322,-1.456151}, {0.762014,-0.483828}, {-0.958353,-0.171473}, {-0.113997,1.464166}, {1.350982,-0.530942}, {-0.172846,-0.004565}, {0.233537,0.941079}, {-0.200530,0.383425}, {0.264278,0.095382}, {0.725498,1.193517}, {1.280922,-0.026653}, {0.097571,-0.441089}, {0.300984,0.414280}, {-0.041914,-0.544705}, {1.009088,0.188493}, {0.866042,-0.355025}, {-0.317615,-0.910565}, {0.489751,-0.574142}, {0.963424,-0.661532}, {-0.318844,-0.517722}, {-0.190129,0.036885}, {0.186444,-0.158205}, {0.078693,-2.586327}, {-0.266931,0.725793}, {-0.074349,0.454831}, {-0.374770,0.697565}, {-0.467025,-0.014349}, {-0.260550,-0.127574}, {0.666807,0.559806}, {-0.271031,-0.063661}, {0.095739,0.428225}, {-0.115755,0.220370}, {1.075172,-0.821800}, {1.387517,-1.151660}, {-1.516364,0.833318}, {-0.347857,0.250917}, {0.299464,0.749435}, {0.154734,-1.501682}, {-0.503228,1.050996}, {0.327790,-0.112045}, {0.987849,-0.260528}, {0.449412,1.852591}, {-0.526460,0.814047}, {-0.451808,-0.480134}, {0.678355,0.739133}, {0.317312,-0.328581}, {0.196623,0.404023}, {0.324616,1.699530}, {-0.776618,-0.269720}, {0.162184,0.179116}, {0.297846,-0.710724}, {-0.169321,0.167991}, {1.769393,1.076862}, {-1.380745,-0.595286}, {0.568804,0.534699}, {-0.846191,-0.871218}, {-0.110816,-0.141844}, {0.285220,-0.612886}, {-1.000946,-0.050010}, {-0.101431,-0.938313}, {0.162775,0.079309}, {-0.582009,0.345429}, {0.124885,0.247372}, {-1.328240,0.510701}, {0.442295,0.051789}, {0.949722,0.676903}, {-0.111284,0.899622}, {-0.437720,-0.322130}, {-0.258154,0.985684}, {-0.758257,0.557973}, {-0.421330,-0.073546}, {1.197222,-0.621330}, {-1.526086,0.768420}, {0.144164,0.595554}, {0.071158,0.831643}, {0.121315,1.096341}, {-0.442333,0.055718}, {0.261819,-0.929387}, {-0.335194,-0.703410}, {-0.634767,-0.488540}, {-0.152389,-0.588104}, {0.153830,-0.655196}, {-0.631695,0.677282}, {1.746302,-0.602460}, {0.338172,-0.699808}, {0.901305,0.660470}, {1.137559,-0.192002}, {-0.332112,0.081961}, {-0.379872,0.728106}, {-0.433884,-1.073145}, {-0.247557,0.726460}, {-0.232024,-0.849128}, {1.187650,-0.092062}, {-0.392385,-0.780775}, {0.413751,-0.559636}, {-0.431597,-0.961824}, {0.463489,0.645597}, {-0.897957,-0.663863}, {0.842534,-0.688768}, {-0.834302,-0.540110}, {0.174923,-0.886926}, {0.256774,-0.733313}, {-0.513784,-0.360074}, {0.156928,0.710061}, {-0.779415,-0.205818}, {1.122295,-0.263072}, {-0.067941,-0.241437}, {0.775305,-1.499039}, {-0.959691,-0.336725}, {-0.557347,0.644162}, {0.097356,0.117803}, {0.085507,1.845262}, {0.507571,-0.452847}, {0.157979,0.584192}, {0.534463,0.510878}, {0.436897,-0.704341}, {-0.598275,-1.183016}, {-0.479736,1.993246}, {-1.004427,-0.606627}, {1.175857,-0.209354}, {-0.555928,0.024468}, {-0.519805,-0.867264}, {0.391430,0.558873}, {-0.640640,0.630178}, {-1.513294,0.362170}, {-0.096170,0.302206}, {1.549390,0.176401}, {-0.712729,0.480838}, {0.400243,-0.498461}, {0.050925,-0.342701}, {0.365122,0.134136}, {0.517262,1.140502}, {0.650985,-0.879352}, {0.791790,0.189469}, {0.654234,0.497645}, {0.384115,-0.034611}, {-0.125724,0.640141}, {-0.543262,-1.255624}, {-0.220592,-0.656310}, {-0.130609,-0.147886}, {-0.441347,0.720036}, {0.400598,-0.080680}, {-0.199337,0.873405}, {0.032691,1.536398}, {-0.093394,-1.310056}, {-0.854984,1.071773}, {0.102072,-0.810930}, {-0.477344,0.066698}, {0.648895,0.026279}, {-0.285891,1.400032}, {-1.216298,-0.236778}, {-0.549714,0.688796}, {-0.062685,-0.343855}, {-0.341088,0.238776}, {0.105347,0.048365}, {0.514533,-0.634733}, {-0.571926,0.456588}, {0.367809,-0.456143}, {0.979090,-1.286519}, {-1.218222,0.367350}, {-0.590629,-1.532832}, {-1.718226,0.242958}, {1.096783,-0.711503}, {0.588342,0.376010}, {0.744463,0.371433}, {0.003243,0.668123}, {0.062086,0.809872}, {-1.132122,-0.104988}, {0.084982,0.995250}, {-0.688752,0.216891}, {0.215504,-0.061450}, {0.452003,-0.690233}, {-0.723135,-0.275493}, {0.357621,-0.515781}, {-0.890998,-0.479333}, {0.498701,-0.923387}, {0.936200,-2.091405}, {-0.879032,1.485557}, {0.332185,-0.128280}, {0.550373,0.387625}, {0.632224,0.633608}, {-0.605378,1.048378}, {-0.472907,0.472679}, {-0.926621,0.312398}, {-0.285207,-0.148072}, {-0.160155,-0.599110}, {0.743425,0.098568}, {0.668188,1.079139}, {1.112103,1.452457}, {-0.727684,-0.625500}, {0.582495,0.602978}, {-0.533045,-0.290135}, {-0.137783,-0.815375}, {-0.423199,-0.027111}, {-0.199832,0.858830}, {-0.774598,-0.479101}, {-0.808559,0.112108}, {-0.095061,-0.376614}, {-0.643351,1.359531}, {0.932951,-1.417012}, {-0.848382,-0.222414}, {-1.002188,-1.075297}, {-0.939211,-0.668392}, {0.479471,-0.342248}, {-0.651955,0.089450}, {-0.529345,1.103163}, {-0.297371,0.787987}, {-0.692098,-0.212505}, {0.441398,0.601694}, {1.155338,0.506600}, {0.806606,-0.500708}, {-0.740199,-1.292330}, {-0.301074,0.068852}, {0.517610,0.645486}, {-0.240596,0.629380}, {0.078991,-0.446581}, {0.463990,-0.548239}, {0.076625,-0.265612}, {0.100232,-0.929770}, {0.066872,0.589058}, {-0.187736,-0.658316}, {-0.822249,0.309850}, {-0.917348,0.269891}, {-0.295888,0.149902}, {0.910250,0.779854}, {-0.763011,-0.047352}, {-0.345678,-0.728869}, {0.991317,-1.211605}, {0.654773,-1.301914}, {0.240193,0.127080}, {0.683297,0.857939}, {-1.056701,0.902413}, {0.538899,-0.329668}, {-0.212189,0.730930}, {-1.240264,-0.481620}, {-0.735395,-0.030127}, {-0.024994,-0.142647}, {0.112034,-0.735685}, {0.427365,-0.104027}, {-0.416424,-1.693984}, {1.186313,0.507243}, {-1.550728,0.625737}, {-0.395223,1.280803}, {0.117296,0.255594}, {0.078576,-0.343091}, {0.336925,-0.610704}, {0.535086,-0.319883}, {0.586244,0.858364}, {0.792222,-0.425311}, {-1.174751,-0.317509}, {-0.296053,1.341013}, {-0.761628,0.373641}, {0.144214,-0.064574}, {0.308336,-0.161496}, {0.713510,0.549545}, {0.561945,0.014662}, {0.618634,0.376704}, {0.566078,-0.488592}, {0.749551,-0.008964}, {-1.439229,-1.800224}, {0.330291,0.691467}, {-0.371258,1.717772}, {0.264541,1.219097}, {-0.449660,0.278444}, {-0.925116,-0.622006}, {1.810841,0.357436}, {-0.361036,-0.568890}, {-0.245604,-0.543745}, {-0.809004,-0.297720}, {0.673398,-1.349551}, {0.320146,0.122381}, {0.055778,0.645761}, {-1.114450,0.141513}, {0.191087,1.024756}, {-0.230242,0.131826}, {1.440529,-0.146838}, {-0.309778,-0.905495}, {0.038309,0.453297}, {-0.322784,0.721147}, {-0.358682,-0.408192}, {-0.387312,-1.581744}, {0.455011,0.089694}, {-0.435709,0.434022}, {1.121966,0.703677}, {-0.000289,0.898656}, {0.370298,0.569843}, {-0.759395,0.155326}, {0.264595,-0.758241}, {-0.717438,-1.284560}, {0.534397,0.044761}, {-0.387217,-0.850411}, {0.044635,-0.092650}, {-0.372661,-0.068370}, {0.066867,0.992163}, {0.309686,-0.088930}, {-0.551975,1.140835}, {0.282269,-0.265153}, {-0.385975,0.629002}, {-0.588541,0.936380}, {-0.450421,-0.312229}, {-0.584466,0.390126}, {-0.561504,0.846689}, {-0.327959,1.138398}, {0.772840,-1.154541}, {0.109965,0.119873}, {-1.041428,0.030014}, {-1.054290,-0.520300}, {-0.401694,-1.322928}, {0.339501,-1.053816}, {-1.483539,0.383590}, {0.179033,-0.005078}, {-0.449563,0.617536}, {0.159361,-0.300597}, {0.681503,0.425180}, {0.075334,-0.054530}, {1.127598,-0.722161}, {0.830144,-0.411552}, {0.130735,-0.537078}, {-0.318294,0.279468}, {1.329998,0.436047}, {0.628394,0.202456}, {0.452344,-1.322196}, {-1.328185,1.430783}, {-0.607721,-0.864380}, {0.504693,-0.747412}, {0.873797,0.066753}, {-1.716981,-1.433918}, {-1.009027,-0.760573}, {-0.113434,0.171071}, {-0.037380,0.247667}, {0.522725,-0.251274}, {0.372523,-0.578671}, {0.363876,-0.147056}, {0.646783,-0.450081}, {1.137476,0.323571}, {-0.780254,-0.368106}, {1.146234,0.162286}, {0.762737,0.417214}, {-1.238331,0.742666}, {-0.390029,-0.580793}, {0.171207,0.920070}, {0.371806,-0.258019}, {-1.675454,0.112764}, {0.314425,0.532884}, {-0.212717,0.521552}, {1.230658,0.602619}, {0.024240,1.086085}, {-0.753075,0.421991}, {1.184260,0.288993}, {-0.156075,-0.349412}, {0.070528,-0.556874}, {1.304863,0.059083}, {0.075264,0.205343}, {-0.115468,0.910225}, {-0.086719,-0.359175}, {0.580907,1.065438}, {0.059108,-1.456124}, {1.143980,-0.250649}, {-0.532360,0.202426}, {-1.306963,0.894754}, {-0.004374,0.331473}, {0.530959,1.017206}, {0.896061,-0.486310}, {0.124527,-0.835825}, {0.401800,-0.694786}, {0.131098,-0.507110}, {-0.493495,-1.031719}, {-0.380582,0.015232}, {-1.773868,0.203092}, {-0.243199,-0.939094}, {-0.243723,-1.167272}, {0.991581,0.396060}, {-0.559749,0.941881}, {0.942520,1.077600}, {-0.572208,0.399250}, {-1.198896,0.820616}, {-0.733767,0.042879}, {-1.020932,1.153919}, {-1.048099,0.943322}, {-0.354407,0.317066}, {0.308045,0.211141}, {0.831764,-1.378969}, {-0.007062,-0.513552}, {0.967642,0.641026}, {-0.668442,0.316706}, {-1.122864,-0.024464}, {0.316990,0.362859}, {-0.111627,0.744548}, {0.185230,-0.636517}, {1.227635,-0.165264}, {-0.506497,0.297073}, {-0.317230,-0.293662}, {0.344244,0.550272}, {0.086386,0.725618}, {-0.374595,0.121906}, {0.205497,1.783572}, {0.647253,-0.895754}, {0.162982,-0.022414}, {-0.994075,-1.237339}, {1.033565,-0.151604}, {-0.280396,0.878138}, {-0.264564,-0.165480}, {0.301752,0.255018}, {-0.615882,0.711428}, {0.300740,0.246028}, {1.845295,-0.214744}, {1.080206,-0.092894}, {0.015605,0.522865}, {1.172807,-0.447869}, {-0.821485,0.490399}, {-0.306496,0.230408}, {0.709987,-0.375342}, {-0.355816,0.453023}, {-0.212208,-0.678919}, {0.091036,-0.565006}, {0.116062,-0.416735}, {1.050847,0.339220}, {1.742643,-0.228713}, {-0.434887,-0.201646}, {-0.382463,-0.917137}, {-0.598962,0.979455}, {-0.678083,-0.074060}, {1.074554,0.667668}, {-0.175566,0.080397}, {-0.746242,-0.837080}, {0.569198,-0.288397}, {-0.419237,0.814960}, {1.110668,0.610994}, {1.024729,-0.522782}, {0.287071,0.129891}, {1.059693,0.192434}, {-0.500546,1.681387}, {-0.352649,0.693367}, {1.330871,0.878471}, {1.452162,1.296531}, {-0.561816,1.060767}, {-0.024246,0.549463}, {-0.558191,-0.475732}, {0.579874,-0.378951}, {-0.386188,0.616314}, {1.904212,-0.081406}, {0.056011,0.587343}, {2.079102,-0.449990}, {-0.585793,0.200955}, {-0.148105,-0.720863}, {-0.871106,1.178992}, {-0.259457,0.018706}, {-0.838352,-0.101366}, {1.104726,-0.165176}, {-0.376425,0.962019}, {-0.383321,-0.621639}, {0.185654,-0.673447}, {0.088111,0.910684}, {1.972742,1.066469}, {0.343070,1.425779}, {0.235284,-1.008437}, {-0.232498,-0.780531}, {-0.285426,0.387394}, {0.570176,0.601760}, {0.857470,0.042025}, {0.823288,0.485621}, {-0.161700,0.393089}, {0.653084,-0.695477}, {0.397400,1.144465}, {0.330464,1.209299}, {-0.905504,0.536976}, {0.462790,0.056269}, {0.181789,0.418193}, {-0.442622,-0.997435}, {-0.622074,-1.020432}, {0.174594,-0.272027}, {0.195162,0.424718}, {-0.483125,-0.014181}, {-0.333027,-0.666385}, {-0.225218,-1.387923}, {0.380830,-0.801521}, {0.500795,0.083064}, {-0.354031,0.562019}, {-0.322369,0.355784}, {-0.689934,1.420140}, {0.505533,0.590711}, {-0.258165,-0.519527}, {0.484829,0.168475}, {-0.887195,0.627565}, {-0.569851,0.255714}, {0.656937,1.030732}, {0.253163,1.183688}, {-0.090994,0.350419}, {-0.621855,0.522503}, {1.260944,-0.340844}, {-0.328843,1.339729}, {-0.187433,0.904883}, {-0.091476,1.344383}, {-0.398040,-0.259532}, {0.059961,-0.952296}, {-0.669200,-0.513899}, {0.882696,-0.883357}, {0.445337,0.858188}, {-0.376645,0.216174}, {0.251451,1.293422}, {-0.343713,0.459366}, {-0.790002,-1.400639}, {-0.281481,0.156530}, {-0.050578,-0.812539}, {-0.069669,-0.942398}, {0.206314,1.062811}, {-0.862538,0.079873}, {-0.142145,-0.179803}, {-0.635656,0.187704}, {-0.288690,-0.632587}, {0.489273,-1.319410}, {-0.113265,0.243749}, {-0.547880,0.138515}, {0.503130,-0.553393}, {-1.042138,1.207500}, {0.993756,1.771553}, {0.945115,0.708578}, {-0.755664,-0.227831}, {2.114421,0.144923}, {1.322935,0.007610}, {0.668800,0.872877}, {1.206511,1.284430}, {0.119083,1.037143}, {0.469420,-0.968104}, {0.178111,-0.706050}, {-0.093654,0.351570}, {1.216869,-0.083921}, {1.128239,-0.721634}, {-0.603763,-1.222727}, {-0.246507,0.765585}, {-0.469168,-0.154943}, {0.115194,-0.645646}, {-0.628875,-0.134190}, {-0.218869,1.072319}, {-0.304600,-0.845963}, {0.041486,0.312707}, {-0.824256,0.026274}, {-0.398291,0.206157}, {0.865547,0.384018}, {-0.518704,-0.244805}, {0.770365,-0.244413}, {-0.853040,1.803973}, {-0.112336,0.330401}, {0.389707,0.066202}, {-1.206726,-0.931216}, {0.890161,1.029948}, {0.224077,-0.218359}, {-0.835221,0.379948}, {-0.576608,0.010603}, {-0.046229,-0.651582}, {0.149031,-0.006860}, {-0.232445,-0.153048}, {-0.361445,-0.624316}, {-0.089316,-0.902206}, {-0.677576,0.291582}, {-0.694052,0.341786}, {0.604152,0.954109}, {-0.451568,-1.027999}, {0.888470,0.246610}, {1.378708,-0.162367}, {0.807884,-0.154657}, {-0.121010,0.723971}, {0.756675,-0.287967}, {-1.352302,0.460834}, {-0.539413,-0.417247}, {0.138693,0.716212}, {-1.262669,0.189740}, {-0.127893,0.098501}, {-2.031114,-0.515120}, {-0.566216,0.134760}, {-0.894512,-1.013835}, {0.545570,-0.785318}, {0.314537,-0.541041}, {-0.623232,-0.972520}, {-0.239815,-0.060572}, {-0.016385,0.088118}, {0.233685,0.536110}, {-0.701300,0.465990}, {0.772176,-0.169732}, {-0.111524,-0.101524}, {0.058288,1.465041}, {0.712798,-0.116610}, {0.667813,0.354510}, {-0.055343,-0.426603}, {0.923450,-0.343740}, {0.351264,-0.768122}, {-0.881422,0.152680}, {-0.929116,1.638255}, {0.167936,-0.278059}, {1.027618,0.529101}, {-0.777487,-0.773029}, {-0.171119,-0.587115}, {-0.630818,0.969008}, {0.561234,0.268168}, {0.106045,-0.638529}, {1.266788,-1.129971}, {-0.995631,-0.558621}, {0.188110,-0.702478}, {0.335395,-0.240620}, {-0.116215,0.260554}, {0.680446,-0.603189}, {0.904362,1.717741}, {-0.015833,0.746788}, {-0.148045,0.051645}, {0.009869,0.846651}, {0.298090,1.350605}, {1.345340,-1.423719}, {-0.754747,-1.335279}, {0.419094,-0.864441}, {-0.145479,-0.797688}, {0.135712,0.991836}, {0.225006,-0.060168}, {0.355427,0.550726}, {1.954229,0.656213}, {-0.169736,0.311985}, {0.939487,0.650424}, {0.789964,-0.684274}, {0.164532,0.093543}, {0.060515,0.106031}, {-0.024316,-0.913373}, {-0.582858,0.242192}, {-0.599441,0.706627}, {-0.037631,-0.529508}, {0.108102,0.029830}, {-0.766994,0.601282}, {-1.162212,-0.241856}, {-0.283526,1.599770}, {-1.549907,-0.505364}, {0.722774,0.073483}, {-1.024597,-0.392075}, {0.858099,-0.287027}, {0.327537,-1.007954}, {0.667032,-0.025028}, {0.975513,0.143732}, {0.018982,0.474133}, {-0.098149,1.106961}, {-0.108187,-0.707083}, {-0.219794,0.475886}, {0.210508,-0.510677}, {-0.416087,-0.900413}, {-0.752409,-0.392688}, {0.327123,-0.496539}, {-0.879819,-1.010528}, {-1.401704,-0.483436}, {-1.566675,-0.015039}, {-0.550926,-0.315944}, {-0.711913,-0.986015}, {0.408434,-0.200798}, {-0.921718,0.340502}, {-1.323506,-0.767555}, {0.762208,-0.010204}, {1.414222,-0.108579}, {-1.279120,-0.115126}, {-1.063315,-0.287798}, {-0.612699,0.708367}, {1.058841,-0.974767}, {-0.887090,0.515838}, {-0.169713,-0.586082}, {0.468957,-1.057315}, {-1.137185,-0.201351}, {0.857001,0.506281}, {-0.694478,1.116885}, {-0.101536,0.252581}, {-0.186678,0.121469}, {0.237319,1.220649}, {0.590731,0.106154}, {-0.307152,-0.195058}, {-0.534827,0.484876}, {1.112901,0.239961}, {0.050445,0.481539}, {0.545830,0.854745}, {-0.687006,-0.117939}, {0.167796,0.067286}, {-0.200961,-0.851043}, {-0.029250,-0.070030}, {0.571111,-0.402512}, {-0.291893,-0.486622}, {0.199427,-0.464909}, {0.485504,0.196643}, {-1.203786,1.305744}, {-0.457443,2.058590}, {-0.206683,-0.175040}, {0.166361,0.461590}, {-0.426843,-1.352936}, {0.501698,0.238129}, {-0.809285,-0.792133}, {-0.655155,0.336089}, {0.726113,-1.582158}, {-0.150580,0.179097}, {0.715039,-1.127365}, {-0.012255,-1.422302}, {-0.291115,-0.120922}, {0.109163,0.722364}, {0.653337,0.016132}, {0.459079,-0.773381}, {-1.171660,1.182249}, {-0.102436,0.837007}, {0.845445,0.528685}, {-0.409713,0.406902}, {0.830749,0.057450}, {0.671611,0.782030}, {0.200145,-1.167993}, {-0.205830,-0.256860}, {0.341035,0.280555}, {-1.201147,-0.323218}, {-0.212821,0.050460}, {0.742152,-0.323082}, {0.819270,0.195198}, {0.669024,0.897072}, {-0.501893,-0.365942}, {-1.308934,0.089249}, {-0.037597,-0.113499}, {-1.004372,0.368385}, {0.141077,-0.067610}, {0.275376,-0.743583}, {-0.191894,-1.129273}, {-1.258964,-0.039886}, {0.728804,-1.000285}, {1.086578,-0.617149}, {-0.855317,-0.310454}, {-0.147711,0.408143}, {-0.517206,0.043758}, {0.719426,-1.283598}, {-0.235939,0.668859}, {-0.380010,-0.313257}, {0.316778,-0.118759}, {-0.262927,-1.567183}, {-0.282733,0.420140}, {0.818925,-0.012589}, {0.357610,0.577911}, {-0.190272,-0.414123}, {0.625359,1.169565}, {-0.917634,0.809205}, {0.909000,-0.614465}, {-0.273865,0.307313}, {0.708742,1.146401}, {-0.736018,1.297624}, {-0.132588,-0.042389}, {0.752216,-0.630562}, {0.602787,-0.506396}, {0.633488,0.200361}, {0.862136,-0.559107}, {0.745865,-1.328896}, {-0.015377,-0.603058}, {0.012261,0.207465}, {-1.262966,0.309847}, {-0.816732,-0.048421}, {1.368862,-0.089376}, {-0.950272,-0.966439}, {0.201282,-0.088005}, {-0.675286,0.791768}, {0.857350,-0.330363}, {0.297582,-0.494692}, {-0.536755,0.002392}, {-0.209953,0.732953}, {-0.443116,-0.086068}, {-1.175001,0.573199}, {-0.515406,0.620601}, {0.519220,0.365639}, {0.179975,-0.360670}, {-0.307683,0.106896}, {0.132153,0.727465}, {-0.280980,-0.228803}, {0.239138,-0.878369}, {-0.037641,0.340422}, {0.908774,-1.101317}, {0.049850,-0.299075}, {0.019113,0.674994}, {-0.015975,0.379414}, {0.288954,-0.809359}, {0.347018,-1.157598}, {0.074732,-0.537650}, {0.996135,-0.001765}, {0.056827,-0.488387}, {-0.833093,0.386931}, {0.758476,0.872903}, {-0.745092,-0.444934}, {-0.224247,-0.116532}, {-0.204749,0.261726}, {0.404937,0.616612}, {0.339130,0.532116}, {0.321454,-0.851996}, {0.318065,0.804013}, {0.255111,-0.303607}, {0.430730,0.409011}, {0.336340,-0.608268}, {0.689794,0.099887}, {0.120092,0.052738}, {-0.588516,-0.366448}, {0.325651,-0.658579}, {0.947989,-0.734417}, {0.016734,-0.728917}, {-0.841605,0.381322}, {0.231804,0.206317}, {1.051284,-0.490680}, {-0.050906,-0.211480}, {-0.105047,0.477795}, {-0.252414,-0.626855}, {-0.057217,-0.134807}, {1.067822,-0.178322}, {-0.086659,-1.147155}, {-0.741801,0.582173}, {0.803925,-1.119881}, {0.543473,0.197205}, {0.407991,-0.434675}, {0.107264,-0.319198}, {1.091457,0.760169}, {-0.013718,0.000686}, {-1.248275,0.208178}, {-0.899392,0.261502}, {-0.631148,-0.302873}, {0.083128,0.705050}, {-0.778608,-0.788078}, {1.135346,-0.872922}, {-1.157340,-0.867567}, {-0.593543,-2.187029}, {0.093469,0.234575}, {0.443437,-0.304265}, {1.551142,-1.422596}, {0.442576,-1.577903}, {0.192425,0.160683}, {-0.902680,-0.431437}, {-1.004525,-0.745898}, {-0.483396,-0.192180}, {1.080987,-0.266741}, {-0.903296,1.170854}, {-0.364402,0.684777}, {0.309202,-0.017096}, {-0.492831,-0.600043}, {-1.612991,-0.804477}, {-0.407146,-0.758813}, {0.829137,-0.603992}, {-0.251557,-0.383196}, {-0.743938,0.109216}, {1.011679,-0.340907}, {0.241315,0.068707}, {-1.006463,0.402521}, {0.031220,-0.028792}, {-0.417251,-1.398311}, {0.775474,0.111723}, {-1.223098,-0.658243}, {2.340365,-0.265007}, {0.301015,-0.206530}, {-0.200633,-0.557171}, {-0.202832,0.319060}, {-0.010049,0.742861}, {0.106082,0.811121}, {0.055592,-0.191956}, {0.355395,0.583195}, {0.282830,-0.170406}, {0.025638,1.918779}, {0.944669,-0.058716}, {1.264998,1.490664}, {0.823037,0.092036}, {1.217579,-0.491040}, {0.037653,-0.782702}, {0.149131,-0.656208}, {0.410757,1.584757}, {1.325665,0.028426}, {0.971514,-0.170968}, {0.142927,-0.349601}, {-0.675615,1.239243}, {1.118417,0.482521}, {-0.525994,0.493175}, {-1.053111,-0.390079}, {0.030564,0.067288}, {-0.074059,-0.899509}, {-0.360663,0.382902}, {0.550419,0.853873}, {-0.544569,-0.824151}, {0.568337,0.130398}, {-0.604970,0.925242}, {0.220753,-0.254279}, {0.337711,0.557667}, {-0.753422,-0.586669}, {0.428708,-0.232984}, {1.794279,0.483338}, {1.304773,-0.365589}, {-0.433436,-0.791504}, {-0.214934,0.966716}, {-0.305057,0.580224}, {-0.106751,-0.822595}, {1.028315,-0.877748}, {0.852443,-0.409121}, {0.625301,0.180248}, {1.396398,0.143160}, {1.108587,0.541150}, {0.468621,-1.043421}, {0.906804,0.715312}, {-0.766680,0.905431}, {-0.441257,0.668639}, {0.284121,-0.043281}, {-0.616953,0.794195}, {0.163532,-0.395955}, {-0.412360,-0.597153}, {0.241518,-0.585513}, {0.482960,0.567925}, {-1.054434,-0.649045}, {0.605650,-0.378689}, {-0.609803,0.359699}, {1.365516,0.646388}, {-0.344219,0.120575}, {-0.654285,-0.631225}, {0.468870,0.618246}, {-0.390055,0.556382}, {-0.508965,0.454676}, {0.116800,0.138547}, {-1.168829,-0.304091}, {-0.385664,-0.659049}, {-0.639212,-1.396839}, {1.224527,1.061921}, {-0.712606,-0.081001}, {0.120125,-0.300214}, {0.179791,-0.636082}, {-0.605018,-0.693630}, {-0.678318,-0.318564}, {-0.598472,-0.031708}, {-0.520574,-0.296742}, {0.067744,-0.796947}, {0.696445,0.463145}, {0.094760,-0.023756}, {-1.028425,1.287291}, {-0.669956,0.116063}, {-0.209304,0.099915}, {-1.108453,-0.002002}, {-0.060206,-0.515472}, {0.981295,0.380674}, {0.263531,-0.667106}, {0.250979,0.072504}, {-0.096590,0.766292}, {0.920231,-0.755035}, {-0.505097,-1.091862}, {-0.615787,0.117510}, {0.368374,0.389098}, {-0.126383,-0.430203}, {0.164085,-0.529933}, {0.599555,-0.034148}, {1.102519,-0.438562}, {0.085070,-0.251993}, {0.865140,0.585431}, {0.934833,-1.057558}, {0.249809,-0.620187}, {0.265592,1.080486}, {-0.634548,-0.038819}, {-0.150059,0.264938}, {0.250318,1.521858}, {-0.173384,-0.223300}, {0.129138,0.492724}, {1.592594,0.165069}, {-0.331133,1.012240}, {-0.697260,-0.195315}, {-0.312506,-1.024730}, {-0.234223,-0.824909}, {-0.383885,0.106128}, {-0.175865,0.392687}, {-0.510849,-0.462690}, {-1.018937,1.151529}, {-0.038301,-0.066566}, {0.530731,0.127405}, {-0.208679,-0.107666}, {0.120497,1.016165}, {-0.052440,0.725401}, {1.832884,-0.342007}, {0.092143,0.258115}, {-1.159934,-0.970688}, {0.589430,-0.586012}, {1.209632,1.986167}, {-0.366520,0.055513}, {0.384307,0.775611}, {-0.877936,-2.193519}, {-0.003713,1.002400}, {-1.173911,0.755036}, {-0.477599,0.075858}, {0.388147,0.137404}, {-0.270243,-0.165515}, {-0.260462,1.171696}, {-0.150456,-0.885312}, {0.469399,-0.599552}, {-0.597813,-0.750128}, {0.095583,-0.274177}, {-0.509728,1.587391}, {0.972749,0.614814}, {-0.752960,-0.189362}, {1.062092,-0.210413}, {-0.114508,0.325050}, {1.881627,0.271021}, {-1.128107,-0.567826}, {0.014185,-0.695967}, {0.338390,0.827812}, {-0.274898,0.464329}, {0.550296,0.200794}, {-0.197346,-1.187593}, {-0.155908,-0.802583}, {-0.207092,-0.070371}, {-0.486399,-1.113643}, {-0.129494,-0.242884}, {0.631126,0.237594}, {0.772150,-1.293381}, {-0.148225,1.069063}, {-0.557726,0.180037}, {-0.251261,0.420506}, {-0.687525,-1.530252}, {0.308271,-0.038557}, {-1.212547,0.035603}, {-0.060400,-0.303898}, {1.425639,-0.355048}, {0.144429,0.420649}, {-0.688609,-0.997562}, {0.259183,-0.891376}, {0.275503,-0.114022}, {-1.060990,-0.859264}, {-1.590535,-0.179986}, {-0.197122,-0.339152}, {-1.741402,-1.241081}, {-0.101596,-0.103421}, {-0.576440,-0.998940}, {-0.159847,-0.078504}, {-0.598367,-0.701100}, {0.454856,0.507896}, {-1.739180,-0.913037}, {1.341986,0.134193}, {-0.290217,-0.535215}, {0.783955,-0.574633}, {-0.126710,-1.241383}, {-1.693904,-0.209030}, {0.500406,0.058675}, {0.876139,-0.205673}, {0.347464,1.353533}, {-0.250533,-0.590198}, {-0.049717,0.984800}, {-1.667565,-0.013165}, {0.328547,0.584034}, {-0.578874,-0.321222}, {0.607281,-0.663825}, {-0.042807,-0.635103}, {-0.198325,-0.054844}, {-0.567400,-1.007322}, {0.181597,-0.281650}, {0.922825,0.237707}, {-0.725941,0.008540}, {0.146820,0.712341}, {-2.004479,0.919673}, {-0.437029,-0.158475}, {0.009848,0.194884}, {0.064501,0.515108}, {0.966986,-0.106012}, {0.431525,-0.640987}, {0.226213,0.704404}, {-0.389554,0.297250}, {0.227194,-0.123749}, {0.958163,0.684737}, {-0.763641,-1.299124}, {-0.519729,1.144937}, {0.517323,0.380140}, {0.358759,-0.376012}, {0.485276,-1.189659}, {-1.128039,0.154856}, {0.012640,-0.800780}, {-1.023062,0.541789}, {-0.088985,1.220985}, {-0.274541,0.330453}, {-0.223176,0.277022}, {-1.250833,0.859561}, {0.166349,-1.059528}, {0.706370,1.301363}, {0.865846,-0.966971}, {-0.746104,-0.181980}, {-0.382071,-0.287606}, {-0.696105,0.935651}, {-0.754779,-0.608633}, {1.558518,-0.068025}, {-0.730162,-1.159437}, {-1.243312,-0.025267}, {0.538259,-0.151188}, {0.755668,0.731049}, {0.362774,-1.112199}, {0.951361,-0.710292}, {1.205493,0.703087}, {-0.384461,-0.900938}, {0.558954,0.738985}, {0.534887,-0.264438}, {0.451519,-0.094902}, {0.271715,-0.849368}, {-0.622068,-0.879637}, {0.747059,0.748628}, {-0.141696,-0.554025}, {-0.162613,-0.058699}, {-0.438999,-0.305623}, {-0.974950,-0.030913}, {-0.836826,-1.211227}, {0.066026,-0.500706}, {0.317875,0.639406}, {1.768633,-1.108933}, {-0.169267,-0.005666}, {0.308455,0.547168}, {-0.792556,-0.067929}, {-1.053188,-0.742882}, {-0.439344,1.796462}, {0.928509,-1.153488}, {-0.883353,0.292079}, {1.150053,-0.757907}, {0.159497,0.386146}, {-0.575171,0.435701}, {-0.104603,-0.597094}, {-0.010359,-0.762375}, {0.533096,-0.049087}, {-0.622529,-0.504482}, {-0.649558,-0.521691}, {1.604563,-0.953022}, {0.483842,0.422572}, {0.604771,0.258910}, {-0.420070,0.075085}, {-0.670900,-0.537843}, {-0.643097,-0.750436}, {2.158761,-0.134695}, {-0.699376,1.792557}, {0.316584,0.159085}, {-1.290301,0.659405}, {-0.470062,0.491114}, {-0.217911,0.097260}, {-0.883950,0.411357}, {-1.137233,-0.417558}, {-0.060187,0.823960}, {-0.527339,0.909397}, {0.614027,-0.516774}, {0.326730,-0.720490}, {-0.732945,1.140511}, {0.527214,-0.857791}, {0.354728,0.527356}, {-1.042879,-0.843408}, {0.388951,-0.250227}, {-0.760452,-0.272504}, {0.670556,1.780283}, {0.178493,-0.103607}, {0.281239,0.573283}, {-0.276774,-0.666889}, {-0.369088,-0.515050}, {-1.566099,-0.292304}, {0.241018,0.111041}, {-0.579810,-0.131634}, {0.614676,-1.020588}, {2.122965,-0.652456}, {1.003513,-0.009904}, {0.384063,-0.315227}, {1.662325,-1.228987}, {0.421827,-0.875429}, {0.615807,-1.046427}, {-0.369778,0.103087}, {-1.400076,-1.351331}, {0.243226,0.565874}, {-0.190009,-1.569295}, {0.431636,-0.614997}, {0.640676,-0.202974}, {0.723470,0.490124}, {0.178854,0.920912}, {0.291047,0.310138}, {1.437523,-0.613064}, {0.311316,1.098868}, {0.064226,0.222299}, {0.635425,0.681261}, {-2.079335,-0.027042}, {-1.620853,-0.434969}, {-0.771540,-0.951936}, {0.075813,-0.359065}, {-0.196248,0.026575}, {0.549859,-0.479033}, {0.779249,-0.479395}, {0.489763,0.682128}, {0.779679,0.447111}, {0.248959,-0.926465}, {-0.978864,-0.625647}, {0.487766,-0.729178}, {0.488021,-0.395398}, {-1.132487,-0.266249}, {-0.946289,-0.121230}, {-0.043873,-0.494146}, {-1.797368,-0.163129}, {0.604546,0.840547}, {-0.100001,0.205591}, {-0.704900,-0.745045}, {0.141108,-0.367080}, {0.714093,0.338304}, {-0.211548,0.288865}, {-0.139203,1.696446}, {0.398683,-0.856051}, {-1.399684,1.056120}, {-0.172748,-0.560887}, {-0.742047,-1.011942}, {0.435281,-1.466353}, {0.372200,0.312796}, {-0.470258,0.052912}, {-0.720672,-0.015639}, {0.525673,0.064041}, {0.322946,0.778343}, {-0.715545,0.200291}, {-0.638279,-0.376644}, {0.318214,1.262688}, {0.518733,-0.228811}, {-0.587650,-1.462563}, {0.669318,-0.231777}, {0.771174,0.304270}, {-0.186317,1.664676}, {0.111617,-1.626430}, {-0.574343,1.310556}, {1.093523,1.010366}, {-0.051229,0.373412}, {-1.055527,-0.123199}, {1.258413,-0.434222}, {0.204129,0.827730}, {-0.609029,0.323469}, {1.834988,0.769506}, {-0.473224,0.009616}, {-0.936846,-1.464676}, {0.419282,0.867511}, {0.691505,-0.431348}, {0.462740,-0.806883}, {-0.077804,0.056353}, {0.201756,0.460018}, {-0.101533,-0.186722}, {-0.683106,-0.812029}, {0.393013,0.220783}, {0.960070,0.016689}, {-0.818561,0.072895}, {-0.304093,0.221132}, {0.432887,0.613225}, {0.799350,1.722360}, {-1.201054,0.101461}, {-0.284951,-0.099726}, {-0.284407,1.019124}, {1.161096,-1.015084}, {0.470649,0.547416}, {0.910485,-0.148244}, {0.903437,-0.639555}, {0.414630,-0.744832}, {-0.807047,0.328593}, {0.546277,0.129403}, {0.979881,1.317070}, {0.815188,-1.157551}, {0.652102,0.325572}, {0.986148,-0.443291}, {0.321192,-0.168401}, {-0.095464,0.134572}, {-0.644626,-0.367752}, {1.186512,1.426639}, {-1.268228,-1.212135}, {0.329307,-0.048942}, {-0.453068,0.181014}, {-0.120221,1.319718}, {0.203761,1.057543}, {0.323603,-0.370886}, {1.278257,0.506360}, {-0.137128,-0.217014}, {-0.123980,-0.196150}, {0.969988,0.131635}, {1.034595,0.043616}, {0.051072,-0.038913}, {0.475718,0.545762}, {0.860966,-0.183492}, {1.509751,0.139050}, {0.183777,0.478787}, {0.452950,0.262511}, {1.193602,-0.473727}, {1.279293,1.055423}, {0.496909,0.719865}, {1.540333,-0.346943}, {-0.293427,-0.718329}, {0.304463,1.034630}, {0.081471,-1.789542}, {-0.654413,0.275167}, {-0.234365,0.326354}, {-1.026665,0.836313}, {1.740778,-0.446498}, {1.571499,0.008159}, {-1.551162,0.190736}, {0.766180,-1.958868}, {-0.246677,0.141081}, {-1.245445,-1.767784}, {0.338713,-0.398232}, {-0.167049,0.337391}, {1.670908,-0.878596}, {-0.346210,0.066791}, {-0.167848,-0.262351}, {-0.838038,-0.908504}, {0.665549,-0.241012}, {0.507867,-1.133164}, {0.083940,-0.788292}, {0.689884,0.002313}, {0.188896,0.230707}, {-0.395535,0.585358}, {0.759700,0.630998}, {0.406334,0.692208}, {-0.523691,0.244080}, {-0.358877,-0.192886}, {0.658757,-1.197811}, {0.276591,-0.550659}, {1.042222,-0.377038}, {-0.519696,0.588037}, {0.042507,0.893983}, {-1.038433,-0.388424}, {0.229740,0.097563}, {0.050357,0.853214}, {1.178250,0.666711}, {1.119683,0.327372}, {0.299392,0.581337}, {-0.726023,0.958577}, {-2.087364,-0.040116}, {-0.733430,-0.365305}, {-0.183230,0.747083}, {0.195544,-0.669629}, {0.096009,0.081064}, {-0.158337,0.140540}, {-0.141282,1.098426}, {-0.200366,-0.260091}, {0.179909,0.324990}, {-0.177505,0.710188}, {0.418389,0.656253}, {0.201164,-0.480767}, {-0.663206,-0.632061}, {0.866354,0.298333}, {0.580605,-0.186255}, {1.573994,-0.905037}, {-0.331628,-0.857198}, {0.740416,0.061667}, {-0.564123,-0.882095}, {-0.015107,0.034831}, {0.843711,0.918154}, {-1.214840,0.950409}, {-0.362231,0.026602}, {-0.345554,0.438305}, {-0.413601,0.471900}, {-1.395099,-1.305808}, {-0.405840,-0.326921}, {0.411408,-0.368048}, {0.883666,-0.358755}, {-0.035198,0.003136}, {0.954488,-0.213214}, {0.332939,0.172640}, {0.959216,0.688263}, {0.018761,2.039100}, {2.100315,0.051013}, {-0.271325,-0.485585}, {0.510974,-0.232181}, {-0.510400,-0.715401}, {0.026534,-0.521681}, {0.089140,0.147550}, {-0.756320,0.829660}, {-0.500559,0.266032}, {-0.082253,0.526760}, {-0.317537,1.100217}, {0.537659,0.004379}, {-0.511521,-0.070164}, {-0.950504,0.979454}, {-0.434086,-0.894423}, {-0.161771,0.383922}, {0.169965,0.443431}, {1.126951,0.313781}, {-0.083320,0.064187}, {1.105827,0.058595}, {1.599304,1.457213}, {0.097539,-0.136787}, {0.050654,0.763772}, {-0.815735,0.069732}, {0.712392,0.340298}, {-0.349751,1.663162}, {-0.520406,0.437961}, {-0.182619,-1.106802}, {1.249108,0.082180}, {-1.228325,-0.360564}, {-1.231868,-0.419608}, {-0.294485,0.226044}, {-0.060826,0.702817}, {-1.200765,0.467426}, {-0.116198,0.278628}, {1.214728,0.324470}, {0.225038,0.563450}, {-0.007607,-0.256299}, {-1.010766,-0.953903}, {-0.277060,0.812392}, {0.707381,0.168940}, {-0.918905,0.693847}, {0.282631,-0.353127}, {0.225166,1.501837}, {-0.954247,-0.586650}, {0.318076,-0.497355}, {-0.418723,0.065298}, {0.084946,0.228400}, {0.307594,0.474237}, {-0.107772,-0.421675}, {-0.232476,0.576236}, {0.586626,-0.859792}, {0.283680,-1.605937}, {0.065020,0.212051}, {-0.474997,-0.555701}, {0.353018,0.138387}, {-1.107164,0.434415}, {0.138023,1.048943}, {0.390060,-0.475007}, {0.216655,-1.005081}, {-0.421095,0.760430}, {0.827316,0.631502}, {-0.349654,0.360977}, {0.492383,1.430285}, {-1.500687,0.296066}, {-0.380852,-0.291811}, {-0.484800,-0.267565}, {-0.346712,0.186646}, {-0.083542,0.405885}, {-0.188996,1.142481}, {1.320101,0.391448}, {-0.146608,0.368600}, {-1.163383,0.327332}, {0.298202,-0.377332}, {-0.805110,0.443164}, {-0.871706,0.069784}, {0.373116,-0.326406}, {-0.607307,0.912847}, {-0.607633,-0.101585}, {1.970281,1.321946}, {-0.148369,0.105401}, {-0.282688,0.816048}, {1.025746,0.483259}, {-0.713131,0.610143}, {0.300423,-0.665059}, {-0.374302,0.666611}, {-0.869616,0.119894}, {1.018758,-0.715852}, {-0.928172,-1.549172}, {0.085113,0.833680}, {1.108642,0.496890}, {-1.549615,-1.217051}, {0.266179,-0.905077}, {-0.215376,0.513998}, {1.069599,0.120225}, {-0.307138,-0.329984}, {-0.571582,-0.130708}, {2.142098,-1.288388}, {-0.420347,1.053044}, {0.495939,-0.195319}, {0.502492,0.785095}, {0.766173,0.428730}, {-0.099107,-0.093918}, {0.729183,-0.195718}, {0.426967,0.415027}, {-0.895545,0.886429}, {-0.968602,-1.162273}, {0.416021,-0.046332}, {-1.219170,0.166351}, {0.586550,-0.244157}, {0.838475,-0.615897}, {-0.672975,-0.618807}, {-0.360221,-0.009750}, {-0.674237,-0.787390}, {0.760231,-0.187308}, {-0.812272,-0.645441}, {0.790059,-0.221013}, {-0.232809,-1.981273}, {1.111118,0.087870}, {0.404225,-1.245472}, {0.461102,0.105999}, {0.013247,1.296239}, {-0.108755,0.536528}, {-1.449621,0.250056}, {-0.195004,-1.416802}, {0.037800,-0.364457}, {0.552454,-0.675048}, {-0.065913,0.268582}, {-0.831306,-0.075565}, {0.515745,-0.533599}, {-1.138916,-1.364227}, {-0.070245,-0.567231}, {0.128759,0.526600}, {0.665589,0.326906}, {-0.224787,0.432314}, {-0.228078,-0.843603}, {-0.031752,-0.495566}, {0.022634,-0.591376}, {-0.700905,1.335250}, {-0.661231,0.287638}, {0.023830,-0.433696}, {-1.666931,-1.034963}, {0.531734,-0.239730}, {-0.827702,-1.580614}, {-0.751258,0.940162}, {-0.287944,-0.191240}, {-0.907179,-0.244279}, {0.709229,-0.938878}, {0.900749,0.288377}, {-0.676512,1.189215}, {0.514203,0.472178}, {0.721634,-0.583054}, {1.061447,0.267226}, {-1.211157,0.301310}, {-0.167337,-0.373970}, {0.028457,0.985726}, {0.110579,-0.098623}, {-0.172895,-0.801720}, {1.208278,0.474267}, {-0.384456,-1.699807}, {-0.218454,-0.500844}, {-0.106211,0.296750}, {-1.006444,-0.168547}, {0.382713,-0.009482}, {0.331157,-0.878432}, {0.031083,-0.458680}, {-0.365436,-0.454964}, {-0.398935,-0.993382}, {-0.769671,0.501222}, {-0.051267,-0.864739}, {1.167413,0.251483}, {-0.638681,-0.123305}, {-0.903249,-1.315449}, {1.127817,0.729152}, {-1.489803,-0.197712}, {0.258543,-0.400706}, {-0.067041,-0.250410}, {1.170671,0.585027}, {-1.025814,-0.952182}, {0.191594,-0.695594}, {1.088652,0.211765}, {-0.672739,0.157990}, {0.594503,-0.652204}, {0.621315,-1.149470}, {-1.002667,-0.051699}, {-0.548659,0.070243}, {-0.256829,-0.297262}, {0.978255,0.627959}, {0.645651,0.839562}, {0.851345,-0.772047}, {0.605615,-1.084795}, {-1.066617,0.157309}, {-0.431485,-0.334219}, {-0.065427,-1.128954}, {-0.568002,-1.040160}, {0.572203,-0.754751}, {0.659738,-0.070165}, {-0.381698,-0.328700}, {-1.564251,0.477004}, {0.088705,-1.206888}, {0.054398,1.727333}, {-0.225188,-0.242253}, {0.166157,-0.688561}, {-0.949477,0.963288}, {0.412511,0.460764}, {-0.156152,-0.188229}, {1.155036,0.424556}, {-0.490640,-0.278005}, {-0.412096,0.287758}, {1.863923,-0.062265}, {-0.222627,0.474599}, {1.395178,0.343841}, {-0.147666,-1.077881}, {-1.174875,0.087301}, {0.690832,0.894002}, {0.207429,-0.821849}, {1.005274,1.609804}, {0.371987,-0.429320}, {-0.514226,-0.590668}, {-0.026782,0.397409}, {1.015714,0.810520}, {0.927649,0.649634}, {0.776910,-0.296798}, {0.976134,0.656214}, {0.003040,-0.262665}, {0.315733,1.042726}, {-0.596531,0.246790}, {-0.402001,0.608359}, {0.581907,0.501635}, {1.279527,0.729790}, {0.490545,0.881851}, {1.094798,-1.607173}, {0.965914,0.484647}, {-0.960222,0.649783}, {0.364875,-0.219241}, {-0.077840,-0.737867}, {0.774998,0.247243}, {-0.119677,-0.232309}, {-0.570180,-0.118825}, {0.977602,1.283441}, {0.831912,-0.804168}, {-0.196479,-0.062512}, {0.656737,0.855329}, {0.528258,-0.285970}, {-2.250344,0.084504}, {0.546068,0.570570}, {-0.858377,-0.909879}, {-1.108219,0.488554}, {-0.490006,-0.454847}, {0.049783,-0.432571}, {0.144726,1.065848}, {-1.394773,0.611523}, {0.082976,0.531777}, {0.285337,-0.535880}, {0.308235,-0.704091}, {-0.234517,0.379574}, {-0.039539,0.828459}, {0.357857,-0.609556}, {0.753604,-1.306881}, {0.790172,0.034169}, {0.056248,-0.121251}, {0.186954,0.648174}, {-0.995005,0.274405}, {-1.001077,0.860050}, {-0.057085,1.511382}, {-1.206087,0.878339}, {0.137995,1.844478}, {-1.493125,-0.998766}, {0.745860,-0.643919}, {-2.238097,1.200986}, {-1.456539,0.719147}, {0.950348,0.805055}, {-0.011920,1.722326}, {1.586502,-0.601509}, {-0.761579,-0.427211}, {-0.442142,0.336680}, {0.366955,-0.402493}, {0.706776,1.396136}, {-0.456781,0.836723}, {1.000545,-0.568838}, {0.385663,0.662292}, {0.477626,0.829285}, {-0.458256,-1.032467}, {-0.359687,-0.822045}, {-0.684604,0.498532}, {-1.225389,0.177601}, {0.432596,0.406977}, {-0.151285,0.179645}, {1.147279,-1.685706}, {0.525030,0.020319}, {-0.118010,-0.066492}, {-0.080738,0.414352}, {0.066255,0.637437}, {0.213317,-0.937024}, {0.349175,-0.783824}, {-0.536209,0.153490}, {-0.439903,-0.158521}, {0.270046,0.415777}, {0.680110,-0.429989}, {0.868958,-0.394753}, {-0.327469,-0.604439}, {0.018249,0.086110}, {0.863033,-0.847249}, {0.819329,0.546402}, {1.547121,-0.605341}, {-0.742487,0.218372}, {-0.531181,-0.785213}, {-0.414961,-1.837414}, {-0.697729,-0.105849}, {0.562781,1.161757}, {-0.252197,0.174986}, {1.019893,-1.022593}, {1.147283,-0.216186}, {-0.192484,0.544878}, {-0.288308,-1.126081}, {-0.653159,1.145602}, {0.356144,-0.300500}, {-1.877840,-0.660298}, {-0.888508,0.081546}, {0.095668,-0.650209}, {-0.996078,-0.377501}, {-0.936371,-1.051814}, {0.735572,0.371096}, {0.667417,0.241111}, {-1.166763,-0.795707}, {-0.604337,-0.214551}, {0.366715,-0.220244}, {0.135127,-1.369202}, {-1.280505,0.349096}, {1.611228,0.383331}, {0.010946,-0.325781}, {0.156384,1.852116}, {-0.937935,0.398887}, {-0.149062,0.073763}, {2.104644,1.227660}, {-0.626178,-0.143603}, {0.148232,0.324548}, {0.172888,-0.311778}, {-1.220482,-0.578080}, {-0.817595,1.215959}, {-0.071187,-0.946781}, {-0.316114,-0.621434}, {0.612704,-0.753227}, {0.053054,-0.899090}, {-0.548320,-0.228200}, {0.163999,0.796821}, {-0.245404,0.209061}, {0.441967,1.234234}, {-0.551563,0.044447}, {0.658026,0.187557}, {0.127459,-0.986518}, {-1.929082,-1.281298}, {-0.281742,-0.218021}, {-0.024907,0.738612}, {-0.576868,0.213936}, {1.047293,1.199670}, {-0.588133,0.536676}, {-0.873318,-0.257263}, {-0.173412,-0.363335}, {-0.711159,-1.458770}, {-0.627417,-0.146663}, {0.734973,0.087137}, {1.617436,-0.176356}, {-0.695416,0.009464}, {0.641452,0.164848}, {-0.365163,-0.298145}, {-0.040627,-0.594555}, {-1.136559,0.782394}, {0.889175,1.501206}, {-0.505251,-0.965412}, {-0.235839,0.215222}, {-0.031725,0.742335}, {0.298775,-0.150465}, {-0.849287,0.112957}, {1.179378,0.099546}, {0.512879,0.770936}, {-1.199297,-0.033108}, {-0.539796,0.936294}, {-0.205207,-1.051996}, {-0.131672,0.924508}, {-0.089858,0.043459}, {-0.523057,0.636311}, {-0.307674,1.349578}, {0.036264,0.711152}, {1.140221,-0.739087}, {-0.755562,0.284111}, {-0.724637,2.054996}, {-0.342831,-0.691441}, {-0.131512,-0.096478}, {-0.257152,0.074351}, {0.214615,1.055861}, {1.802147,-0.650688}, {0.494614,-0.618490}, {0.345858,-0.425000}, {-0.654990,0.633968}, {1.944518,-0.824383}, {0.027463,-1.406552}, {-0.356381,1.000390}, {-0.326255,-0.349790}, {-1.301773,-0.173698}, {1.209587,0.733830}, {-0.415904,-0.973085}, {-0.342312,0.036046}, {-0.186381,0.151542}, {-0.326625,0.939369}, {0.462830,-0.373640}, {0.606673,-0.179940}, {-0.484880,0.561731}, {-0.508378,-0.365497}, {0.234596,-1.627686}, {1.368364,-0.734676}, {-0.795618,-1.015961}, {-2.239029,-0.882143}, {0.465919,-0.251305}, {0.445335,-1.446642}, {-0.265756,0.613863}, {-0.452452,-0.137435}, {0.431065,0.801259}, {-0.152433,0.602319}, {-0.540982,-0.360173}, {0.631619,0.163229}, {-0.006424,-0.396139}, {-1.237030,0.367923}, {-0.850830,-0.132116}, {0.775877,-0.627868}, {0.771979,-0.413618}, {0.022536,0.168067}, {1.196601,0.009715}, {-0.617334,0.060062}, {0.364119,-0.116998}, {0.673689,0.458119}, {0.149576,-0.055954}, {-0.543521,0.313275}, {-0.158121,0.340606}, {-1.637515,0.192407}, {-0.980130,-1.214198}, {0.271889,-1.100195}, {-0.043511,-0.011070}, {1.944409,1.536861}, {1.054500,-0.241073}, {-0.266577,-1.534933}, {-0.040460,-0.625212}, {-0.459612,-1.252847}, {0.965432,0.594862}, {0.576392,-0.927788}, {-0.551566,0.279525}, {0.426353,0.063682}, {0.612646,-1.516517}, {-0.007228,-0.346205}, {0.011120,0.115249}, {0.472003,-0.089491}, {0.714530,-0.399992}, {-0.151271,-0.191677}, {-0.775722,0.462697}, {0.938747,-0.059595}, {-0.019837,0.256951}, {1.336979,-0.025192}, {-0.897808,-0.356736}, {-0.805198,0.998662}, {-0.427256,0.460826}, {0.649266,-0.173119}, {0.712430,-0.425832}, {-0.254883,0.091398}, {-0.082338,-0.612070}, {0.215579,-0.567451}, {-1.144568,0.155085}, {0.780083,-0.289786}, {-0.695259,0.933670}, {0.982418,-1.676289}, {2.030334,1.321377}, {0.038067,0.527490}, {-0.875315,-0.009320}, {0.068908,-1.082731}, {-0.327867,0.493442}, {-0.247380,0.306530}, {-0.737028,0.122061}, {0.989016,0.117014}, {-0.043846,0.663677}, {0.666528,-1.034380}, {0.394277,0.951912}, {-0.002676,0.539665}, {1.144832,0.222148}, {0.575492,0.698214}, {-0.465967,0.644700}, {0.135505,-0.027215}, {0.971868,0.345926}, {0.064156,-0.279836}, {-0.379608,0.096507}, {-0.122669,-0.207917}, {0.579961,0.725394}, {0.595409,-0.048807}, {1.252596,-0.666008}, {0.928256,0.648530}, {-0.765453,0.753437}, {-0.869056,-0.282207}, {0.599402,1.136827}, {-0.491976,1.257567}, {-0.690075,0.095121}, {0.114144,0.613636}, {-0.016676,0.984432}, {-0.038227,1.273482}, {-0.273440,0.465032}, {-0.042422,-0.082568}, {0.293014,-0.062751}, {0.091950,1.052528}, {1.290355,0.079452}, {-0.373801,-0.287744}, {0.178010,0.153087}, {-0.069493,-0.767951}, {0.592277,-0.164846}, {-0.624072,0.699601}, {-0.164866,0.014304}, {-0.989879,0.549690}, {-0.390924,0.210302}, {0.028281,1.109096}, {0.200445,-0.121299}, {-0.837043,-0.089108}, {-0.330949,-0.683155}, {-1.497096,-0.744454}, {0.724696,1.325496}, {1.093918,-0.158002}, {-0.986055,0.252052}, {0.738405,0.425232}, {0.346898,-0.636832}, {0.795577,-0.558523}, {1.639357,0.539509}, {-1.027171,-1.972701}, {-0.526853,0.066382}, {0.029728,0.371083}, {0.493240,-0.618207}, {-0.085066,0.157037}, {-0.598327,0.875382}, {0.473045,-0.683630}, {-0.190108,0.531203}, {0.755223,-0.445656}, {-0.970831,-0.378947}, {0.691900,-0.774742}, {-0.566027,-1.971771}, {0.221130,0.861383}, {1.126111,-1.603044}, {-0.238397,-0.723054}, {-1.355820,0.134919}, {0.901198,0.804579}, {-0.152608,-0.056988}, {-0.405939,0.133609}, {-0.748368,-0.793250}, {-1.127288,-0.628552}, {-0.545445,-0.085877}, {-0.731033,1.379358}, {0.017076,0.460959}, {0.860053,0.187958}, {-0.398644,0.846772}, {-0.136298,-0.593748}, {-0.570386,-0.054041}, {-0.208522,0.414807}, {1.089348,0.418117}, {0.071506,-0.234059}, {0.803787,-0.420491}, {0.379378,1.744838}, {0.984846,-0.269280}, {0.287580,1.777600}, {-0.044561,0.393765}, {1.037652,0.288589}, {1.365033,1.028047}, {-0.268731,0.214781}, {-1.399734,-0.585635}, {0.396474,-0.012739}, {-0.310157,-0.572639}, {-0.869280,-0.470035}, {-0.767115,-0.147986}, {-0.594210,-0.009435}, {-0.259161,0.687769}, {0.400244,0.052298}, {-0.081466,1.100944}, {-0.597903,-0.298039}, {-0.112978,0.185533}, {-1.188213,0.607802}, {0.406532,0.557457}, {0.053603,0.608809}, {-0.909431,-1.412004}, {0.092312,-0.308009}, {-1.045767,-0.193634}, {-0.655190,0.515159}, {-0.979891,-0.064583}, {-0.305666,2.135184}, {0.263726,-1.169643}, {0.138287,0.442218}, {0.414382,-0.295128}, {-1.223938,-0.394704}, {-0.670657,-0.732705}, {-0.130172,1.369600}, {0.795171,0.769043}, {-0.363984,0.127902}, {-0.154541,-0.229581}, {0.285194,1.725037}, {-1.330522,0.314956}, {-0.233268,-0.249791}, {-0.867872,-0.116151}, {0.528821,0.939245}, {0.529436,-0.728938}, {1.562335,-0.647528}, {0.100798,0.930577}, {-0.638534,-0.474881}, {-0.985353,-0.905430}, {-0.508469,-0.557904}, {0.109266,-0.555654}, {0.066719,-1.050199}, {0.086614,0.288710}, {-0.064293,0.794723}, {0.211760,0.375610}, {-0.388465,0.047865}, {0.115226,0.666505}, {0.090883,-1.307463}, {-0.505210,-0.481163}, {0.297328,0.181031}, {-1.005686,-0.291049}, {-0.384623,-0.349974}, {-1.117550,-0.533047}, {-0.273571,1.197142}, {-0.355377,-0.791390}, {-1.166707,0.219873}, {-0.039557,0.571754}, {-0.869280,0.219124}, {-0.267389,0.851277}, {-0.047552,-0.759693}, {-1.247211,0.340410}, {0.074985,-0.567950}, {0.114898,-0.993669}, {1.315018,1.236524}, {0.490222,-1.122814}, {-0.208569,0.122706}, {0.811257,0.284157}, {-1.535386,-0.961487}, {-0.575903,-0.329705}, {-0.440839,0.189689}, {0.461173,0.106876}, {-1.404882,-0.039592}, {0.157627,-0.164670}, {-0.143457,-0.082398}, {0.137764,-1.405608}, {1.138510,0.467085}, {-0.569274,0.068115}, {0.254692,-0.256963}, {-0.200568,-0.105250}, {0.649507,0.852508}, {0.256781,0.075334}, {-0.422662,0.827176}, {0.453451,-0.274344}, {-0.619070,-0.789528}, {0.511156,-0.517215}, {-0.746724,0.533320}, {-0.266023,0.211951}, {0.820569,-0.021797}, {0.906967,-0.184995}, {0.080283,-0.845286}, {0.216563,-0.065165}, {-1.069864,-0.627168}, {-0.694919,-0.377147}, {0.560266,0.723653}, {-1.810003,0.936073}, {0.401495,-0.323666}, {0.279725,-0.512582}, {0.115233,0.391509}, {-0.049100,0.503527}, {0.381476,-0.924580}, {0.158435,-0.369579}, {-1.724612,-0.082530}, {0.146337,-0.627385}, {-0.580628,-1.005474}, {-1.283667,-0.367336}, {1.671694,0.093866}, {0.495123,0.338942}, {1.386453,1.289725}, {0.046473,-0.010269}, {0.345976,0.217331}, {-1.307691,0.901025}, {0.011671,-0.051992}, {0.446749,0.491618}, {-0.798861,-1.715122}, {0.459684,0.845517}, {-0.619994,-0.080941}, {0.726701,0.519006}, {0.366870,-1.500535}, {-0.695698,-0.307731}, {0.383154,-0.604660}, {-0.200421,-0.592773}, {0.845962,0.202566}, {-0.081811,-0.479720}, {-0.162211,0.211402}, {-0.508318,-0.515009}, {-0.598247,-0.160839}, {-0.361101,1.022331}, {-0.593453,-0.828867}, {-0.335951,-1.161512}, {0.323913,0.171438}, {0.880390,-0.900887}, {0.961106,1.439049}, {-0.145219,0.714873}, {-0.035628,0.517433}, {-1.289047,0.344996}, {0.823198,-0.391606}, {-0.666119,-0.158353}, {-0.497984,-0.154500}, {0.346989,1.546966}, {0.708533,-0.966663}, {0.374617,1.425507}, {-0.337693,0.237900}, {0.070178,-1.763557}, {-0.029864,-0.502392}, {1.018740,0.551282}, {0.470196,0.024369}, {-1.046625,0.923415}, {-0.440020,0.376281}, {0.735956,-1.156211}, {-0.994301,0.170391}, {0.092725,0.006086}, {0.907493,-0.090784}, {0.594763,0.737713}, {0.906663,-0.107508}, {-0.367296,-0.557330}, {-2.018388,0.168510}, {0.752505,0.463679}, {0.078006,0.290962}, {0.109202,1.088115}, {-0.098741,2.088661}, {0.628856,0.143489}, {0.531659,-0.603075}, {-0.792778,0.565173}, {1.033181,0.091416}, {-0.436632,1.313604}, {-0.484757,-0.142273}, {0.419226,-1.120024}, {0.480503,1.065520}, {-0.237411,-0.260825}, {0.605263,-0.918341}, {0.875513,-0.731113}, {1.386509,1.669871}, {-0.213429,0.316753}, {0.131674,1.000488}, {0.748148,-0.249815}, {-0.533266,0.340614}, {-0.869102,0.414872}, {0.441595,-0.694290}, {0.054900,1.807807}, {-1.703986,-0.934117}, {-1.249102,0.046980}, {-0.221412,-0.687920}, {0.448836,0.201658}, {0.650497,1.040959}, {0.177494,-0.799854}, {-0.085265,0.556515}, {-0.932668,-0.426775}, {-0.062327,-1.158497}, {-0.500424,-0.587836}, {0.391493,-0.387043}, {-0.617236,-0.317457}, {-0.578667,0.512964}, {-0.169709,-0.817154}, {-0.110670,0.372632}, {-0.222525,-0.793149}, {-0.009570,0.182038}, {-0.527806,0.463093}, {-1.697382,-1.718132}, {0.361860,0.075201}, {0.089404,0.241598}, {-0.946784,0.814996}, {-0.613512,-0.255426}, {-0.177349,-0.488484}, {0.054348,-0.553629}, {-0.194009,1.167781}, {1.709740,0.267476}, {-0.821832,-0.696939}, {-0.200828,-0.430296}, {1.069248,-0.373373}, {-0.238442,-0.199476}, {-0.180144,-0.025549}, {-0.139817,-0.071419}, {-0.173577,-0.475708}, {0.304222,-0.368525}, {-0.590842,-0.064255}, {-1.185859,-1.155381}, {-0.081806,-0.629742}, {0.922781,0.144932}, {0.942112,0.322870}, {0.825791,1.003816}, {0.826714,-0.826888}, {0.213177,0.794777}, {-0.099002,-0.002608}, {-0.492385,0.451787}, {0.128127,1.082202}, {0.271635,-1.443648}, {-0.178330,-1.243963}, {-0.067726,0.414538}, {-0.546234,0.480571}, {-0.991696,-0.224893}, {0.432404,-0.524750}, {-0.501489,-0.744894}, {0.103839,-1.138339}, {-0.279854,-0.368705}, {0.455291,0.602993}, {-1.678218,0.178024}, {-0.130112,0.138684}, {-1.101287,0.579001}, {-0.092947,-0.011740}, {0.295525,0.118103}, {0.785569,0.325779}, {0.504792,-0.455453}, {1.132796,0.017106}, {0.033302,0.186834}, {0.810809,-0.362816}, {-0.474375,0.097647}, {-1.062575,-0.732286}, {0.342440,-0.680445}, {-0.732904,-0.575352}, {0.303712,-0.631739}, {-0.319236,-1.030421}, {-0.387937,-0.348376}, {-1.079633,0.118041}, {-0.602187,-0.491677}, {0.423529,0.249166}, {-0.952323,0.209902}, {0.034247,0.375740}, {-0.592018,-0.397569}, {-0.163837,-0.427724}, {0.382374,-0.150979}, {0.555706,-0.725082}, {-0.355857,0.158597}, {0.761846,0.076153}, {-0.634078,-0.304593}, {0.471280,-0.916497}, {0.242803,0.758195}, {0.754191,1.510976}, {1.548155,-0.494631}, {0.691794,-0.562304}, {0.668136,-0.981643}, {-0.254217,-0.991335}, {-0.318592,-0.794923}, {-0.462833,-0.254355}, {0.963190,-0.369654}, {-0.006760,0.514227}, {-0.029911,0.884285}, {0.486003,-0.768507}, {0.111313,-0.201531}, {0.594695,-0.372400}, {0.590731,-0.701254}, {-0.563540,0.783977}, {0.368562,-1.798989}, {0.756754,0.099174}, {-0.637641,-1.143978}, {0.650260,-0.244381}, {-0.691307,-1.071333}, {0.861524,0.340780}, {0.505066,0.009908}, {1.474460,0.787023}, {0.976164,0.140441}, {-0.254395,-0.077743}, {-0.607054,-0.319290}, {0.265146,0.411305}, {-1.013336,0.386584}, {0.105899,0.018232}, {0.563171,-0.016770}, {-0.940128,-0.278832}, {-0.221102,0.977281}, {1.567826,0.261716}, {0.196254,-1.341196}, {-0.102125,0.328156}, {-0.201069,-0.674704}, {0.352926,-0.898702}, {0.911536,0.859603}, {-0.528193,0.953868}, {1.140887,0.032021}, {-0.020405,0.168142}, {0.328295,-0.517896}, {-0.337676,0.588593}, {0.585343,0.249905}, {-0.287053,-0.782415}, {0.794615,0.416868}, {-0.332534,1.181646}, {0.674689,-0.239908}, {-0.248407,0.137528}, {-0.301989,0.114605}, {-0.044851,0.768646}, {0.542929,0.080812}, {-0.071794,-0.299563}, {-0.734715,0.382308}, {-0.421130,0.911202}, {-0.430273,0.472535}, {-0.687487,-0.273706}, {0.367111,-0.660188}, {-0.918680,0.527015}, {-0.341398,0.970202}, {-0.107157,0.886225}, {0.938713,-0.223450}, {-0.671171,-0.152803}, {-0.385831,0.640238}, {-0.780561,-0.635265}, {0.715185,0.185086}, {-0.699200,0.606720}, {-0.653360,0.102234}, {0.131534,-1.084895}, {0.261869,0.060136}, {0.317683,-0.939159}, {-0.840538,-0.043646}, {-1.424293,0.084761}, {1.215854,-0.694838}, {0.062843,-0.337987}, {0.563976,0.504785}, {-0.080370,0.085930}, {0.032035,-1.010920}, {0.551369,0.494227}, {-0.116020,0.300480}, {0.331724,0.036285}, {-0.382426,-0.529493}, {1.077808,-0.458413}, {0.331854,1.032253}, {-0.535004,-0.323188}, {-0.819970,0.052055}, {0.719559,-0.602325}, {0.915057,0.257542}, {-0.428636,-0.009926}, {-1.805475,0.369659}, {-0.614094,-0.001800}, {-1.235578,-0.052044}, {0.097063,-0.732735}, {-1.460257,1.469093}, {1.278098,-0.169305}, {-1.378817,0.540052}, {0.493755,-0.307548}, {0.218180,1.141994}, {-0.221486,-0.292270}, {0.287143,-0.163096}, {0.703925,0.446666}, {0.212925,0.082821}, {0.484300,0.306027}, {0.357386,-1.297873}, {-0.738326,-0.241678}, {-0.741457,-0.442234}, {0.327873,0.656962}, {-0.853324,0.049464}, {0.311712,-0.772024}, {0.492337,-0.224030}, {-0.072145,-0.706020}, {0.120789,-0.269756}, {0.510265,-0.199574}, {0.305081,1.339218}, {-1.174933,-0.318689}, {-0.310504,0.857660}, {-0.260578,-0.738450}, {0.840290,-0.412105}, {0.978639,0.996309}, {0.545701,-0.214489}, {0.442492,0.140782}, {0.134327,-0.614024}, {0.152361,-0.415766}, {0.402772,-0.590738}, {-0.086536,0.126473}, {0.212853,0.348347}, {1.454511,0.690384}, {-0.525360,0.196963}, {0.096687,-0.682747}, {0.001357,0.832025}, {-0.426188,-0.466376}, {0.206853,-0.152419}, {0.687454,1.804000}, {-1.322728,1.203989}, {0.482003,-1.241984}, {0.500789,-0.065064}, {0.244065,0.269642}, {-0.469472,-0.237159}, {-0.066490,-0.163310}, {-0.281095,-0.567134}, {0.893307,0.612599}, {-0.632126,-0.774347}, {0.109283,0.368826}, {0.148461,-0.404510}, {-0.667521,1.577892}, {0.218306,0.265584}, {0.264606,-0.211250}, {0.652372,-0.157857}, {-0.577376,-0.888662}, {-0.945390,0.153267}, {0.375344,-1.667404}, {-0.156601,-0.117106}, {-1.462571,-0.718417}, {-0.575509,-0.808437}, {0.364817,0.078618}, {-0.403867,0.323323}, {0.157170,0.940718}, {-0.905934,0.911193}, {0.173700,1.333921}, {0.056693,-0.033255}, {-0.296912,-0.103485}, {0.153056,-0.604195}, {0.377705,0.504978}, {-0.673747,0.286633}, {0.034797,0.558569}, {-0.710120,-0.480598}, {-0.362652,-0.642279}, {-0.284230,0.181896}, {-0.426250,2.162377}, {0.985906,-1.488951}, {-0.458442,-0.456442}, {0.553374,-0.612342}, {-0.809457,-0.439975}, {0.180812,0.353789}, {-0.978222,0.464068}, {-0.300099,0.132864}, {1.487060,0.218514}, {0.957071,0.801319}, {-1.294117,0.020448}, {0.445091,0.773514}, {-0.199977,0.450449}, {1.443591,0.429417}, {-0.113708,0.610933}, {0.137175,-0.859998}, {-0.132513,-1.322847}, {-1.005503,-0.177505}, {0.000357,0.779256}, {1.075366,0.024032}, {0.459241,0.710256}, {-0.305482,0.106401}, {-0.276184,1.043264}, {0.516417,-1.254294}, {-0.131916,0.527997}, {0.234204,-1.557823}, {0.030533,-0.531908}, {1.085678,-0.371773}, {-0.221198,-0.710384}, {-0.063287,0.159905}, {0.444706,-0.383745}, {-0.446182,-0.684475}, {0.740908,0.413410}, {0.167352,0.712524}, {0.392175,0.355523}, {0.129803,-0.137579}, {-0.528156,-0.906438}, {0.405284,-0.052276}, {0.240957,-1.088857}, {0.642791,-0.012554}, {-0.439821,0.196588}, {0.640984,0.397706}, {-1.267697,-0.882481}, {-0.129466,1.197844}, {1.461545,-0.514695}, {-0.664521,-0.084123}, {-0.351623,1.236291}, {0.412838,-0.694709}, {0.414800,-0.181844}, {-0.304968,-0.380719}, {1.155782,-0.095914}, {-0.071784,-1.320101}, {-0.694458,0.795722}, {0.810258,0.637455}, {1.163340,-0.742524}, {-0.963930,0.444600}, {0.655143,0.089189}, {-0.592677,-1.127872}, {0.887550,-0.327055}, {0.625412,-0.529684}, {0.713678,-0.696201}, {0.055567,-0.252346}, {0.166431,0.153213}, {0.441026,-1.378759}, {0.559243,-0.537530}, {0.202748,0.275560}, {-0.840727,0.168231}, {-0.064211,0.001891}, {0.281684,0.135740}, {-0.358316,-0.959788}, {1.306011,0.464514}, {-1.036941,-0.959162}, {1.406593,0.632846}, {-1.569454,-0.365218}, {-0.346228,0.731728}, {-1.295997,0.560615}, {-0.959968,0.986496}, {-0.585640,-0.657095}, {-0.118904,-0.871209}, {0.926150,-0.531476}, {0.933032,0.480609}, {0.263173,0.494663}, {0.886100,-0.059677}, {-0.369519,-0.535388}, {0.421964,-0.910301}, {-0.326652,-0.190231}, {0.547934,0.631971}, {0.710113,-0.411325}, {0.693213,-0.929055}, {0.018916,-0.458380}, {-0.289372,-0.644681}, {1.603608,-0.790238}, {-0.870347,-0.519386}, {-0.120219,-0.195792}, {0.896996,0.754328}, {-1.072971,0.660451}, {-0.169902,0.618787}, {1.392250,0.699588}, {0.102127,-1.159976}, {0.654802,-1.138594}, {0.341693,0.533089}, {0.622157,0.293998}, {0.739470,-0.685871}, {0.889143,-1.040852}, {0.028575,1.018274}, {1.349263,-0.463929}, {0.455431,-0.360066}, {-0.778939,1.099713}, {-0.893473,0.754993}, {0.004027,-0.390836}, {-0.251340,0.012372}, {-0.222768,-0.628511}, {-0.106092,-1.338030}, {-1.913003,0.816801}, {0.249156,-0.479677}, {-0.736923,1.666795}, {1.082270,-0.175401}, {-0.885157,0.570095}, {-0.049028,0.558581}, {-0.490770,0.519661}, {-0.287551,-0.111662}, {1.033980,0.682340}, {0.087287,1.358185}, {-0.050552,0.564941}, {-0.303037,0.089188}, {0.842740,0.611644}, {0.467414,-0.006327}, {0.466794,0.602077}, {0.439659,-0.483228}, {0.974723,-0.062053}, {-0.260206,-1.049128}, {-0.205828,0.295329}, {-1.647119,0.441492}, {-0.714502,0.081394}, {-0.205006,-0.757855}, {-1.960274,0.470666}, {-0.533298,0.409415}, {0.855841,1.096989}, {0.358798,0.730984}, {0.750960,-0.725304}, {1.146306,1.834112}, {-0.476547,0.068212}, {-0.694398,-0.779186}, {1.092268,-0.985842}, {1.398056,-0.217714}, {0.251666,0.911836}, {0.110386,0.085893}, {0.701887,0.259171}, {0.516668,0.334310}, {-0.003315,-0.918830}, {-0.195731,0.013077}, {0.430466,-0.277817}, {1.030171,-0.394052}, {-0.225629,-0.195349}, {-0.027538,-0.056974}, {0.031358,0.064035}, {0.387717,0.243636}, {0.317769,-0.582616}, {0.940290,0.778192}, {-0.490807,-0.763537}, {0.207110,-0.045007}, {1.971938,0.382367}, {-0.727075,0.439464}, {-0.077633,0.672896}, {-1.460959,1.007622}, {-0.025801,-0.096694}, {-0.993988,-0.999907}, {0.464187,0.789316}, {0.256421,-1.363865}, {0.159660,-0.277453}, {-0.006103,0.852472}, {0.060031,0.596424}, {0.620580,0.715707}, {0.276113,-0.545072}, {-1.012081,-1.133049}, {-0.097912,-0.474511}, {1.319384,0.602481}, {-0.031653,0.663256}, {0.386930,0.752664}, {-0.991397,-0.430424}, {0.051973,-1.136431}, {-1.149435,0.841670}, {-0.186103,0.364773}, {-0.412187,0.132497}, {-0.775032,0.368945}, {0.032215,0.521604}, {1.015831,-0.411670}, {0.726604,-0.273412}, {-0.017691,0.358815}, {-0.486292,-1.210999}, {-0.099767,0.094482}, {0.097904,0.233600}, {-1.240408,0.247283}, {0.721376,-1.415937}, {0.561702,0.753190}, {-0.214495,-0.390780}, {-0.433983,-0.193696}, {-0.539126,-0.635186}, {0.334874,0.117167}, {0.112738,-0.692831}, {1.294694,1.248792}, {-0.305773,0.353188}, {1.021686,0.202287}, {0.256958,-0.390091}, {0.166097,0.454005}, {-0.079576,-1.102067}, {1.538520,-0.563688}, {-1.731706,-1.126758}, {-0.670402,0.414350}, {0.514859,-0.033709}, {0.457049,-0.953866}, {-0.025339,-0.186967}, {0.921516,-0.006589}, {1.133250,0.762349}, {-1.942749,-0.290318}, {-1.006259,-1.719958}, {0.583133,0.184458}, {1.533676,0.565125}, {1.678753,1.997106}, {0.414856,0.635099}, {0.248681,-0.371868}, {-0.480461,0.508675}, {0.128528,1.225431}, {-1.035243,-0.326540}, {-0.591735,-0.256529}, {0.404609,0.115763}, {-0.127455,-0.322196}, {-1.377901,0.027817}, {-0.419663,-0.117352}, {0.100835,-0.416059}, {0.112067,-0.455572}, {-0.918836,-1.089230}, {0.819424,-0.676223}, {-1.262287,-0.710934}, {-1.405267,-0.629728}, {-0.245684,0.259446}, {0.275126,0.743111}, {-0.632728,0.059081}, {-0.268444,1.149652}, {0.262731,-0.503980}, {-0.732316,1.865036}, {0.546659,-0.355999}, {1.055911,-0.387197}, {0.493665,-0.753767}, {-0.182871,0.659888}, {0.622885,-1.309388}, {-0.557757,-0.093695}, {0.098147,0.439508}, {0.803828,-0.887762}, {-0.324194,-0.317906}, {-1.732072,-0.835605}, {-0.244274,0.535165}, {0.459924,0.794849}, {-0.678300,1.156888}, {-0.492597,0.785141}, {0.158968,0.435641}, {-0.036905,0.358065}, {0.110872,-0.689448}, {0.880365,-1.190838}, {0.796720,1.588231}, {-1.706377,0.554221}, {-0.358409,-0.529411}, {-0.715658,0.777524}, {-0.561075,-0.227583}, {0.899021,-0.235572}, {0.525853,-1.659359}, {0.079290,0.113489}, {0.113024,0.340952}, {-0.139241,0.174221}, {0.224799,0.763237}, {-1.379719,0.258011}, {-0.935142,-0.447336}, {-0.784769,0.357662}, {-0.232321,-1.397151}, {-1.450584,0.943146}, {-0.324962,-0.543177}, {-1.282408,0.863020}, {0.050112,0.898989}, {-0.604191,-0.538101}, {0.343664,-0.068146}, {0.102684,-0.123663}, {0.928256,0.360823}, {-0.097289,0.462497}, {-0.092053,0.034602}, {0.440637,-0.296188}, {1.149567,-0.825341}, {0.260298,-0.546318}, {0.369902,-0.765528}, {-0.115122,-0.752161}, {-0.134579,-0.097381}, {-0.352925,-0.341836}, {-0.133949,0.670338}, {-1.133992,-0.211796}, {-0.771100,0.093373}, {-0.958877,0.269735}, {-1.004989,-0.185393}, {-0.095868,0.247778}, {-2.586064,-0.157309}, {0.225446,-0.204901}, {0.848046,-0.114858}, {0.944526,0.415761}, {0.175256,0.081095}, {-0.221988,0.520441}, {0.101561,0.235463}, {1.036973,0.143210}, {1.226535,-0.837936}, {0.071154,-0.334797}, {0.002085,-1.605103}, {-0.217532,-0.203431}, {-0.020084,-0.177046}, {1.594854,0.364505}, {0.353434,0.078027}, {-0.408512,0.470233}, {1.312720,-0.497096}, {-0.446915,1.180362}, {0.576132,-0.033510}, {0.987148,0.361694}, {-0.741101,0.494390}, {-0.147701,0.106470}, {-0.122341,0.707589}, {-0.828018,0.595488}, {0.358592,0.384138}, {1.122524,-0.548564}, {0.865484,0.246095}, {-0.347659,0.661972}, {-0.629108,-0.078289}, {0.435537,0.266599}, {-0.290543,0.076388}, {1.350286,-1.026417}, {-0.279524,0.033803}, {0.805857,-1.271171}, {1.494965,-0.166193}, {0.224108,-0.156611}, {0.348711,0.043524}, {0.486362,0.705632}, {-0.135721,0.860144}, {-0.419355,-0.933635}, {0.585876,-0.739752}, {0.348953,1.633115}, {-0.716160,-0.030413}, {-1.012214,0.928111}, {1.274223,-1.604781}, {0.986726,0.442809}, {0.926012,-1.822679}, {-0.976620,-0.129446}, {-0.631693,-1.113716}, {0.013938,-0.471054}, {-0.337122,0.006422}, {-0.075227,1.194378}, {0.192303,0.005400}, {0.482293,0.882435}, {0.759362,-1.106292}, {-0.178414,0.131685}, {-0.109098,-0.738940}, {0.076915,1.201590}, {-0.065114,-0.913385}, {0.258717,0.253192}, {0.006675,0.474848}, {-0.120236,0.074537}, {-0.914876,-0.604674}, {-0.239318,0.139784}, {0.373102,-0.811346}, {-0.112757,1.025991}, {0.939548,0.465295}, {-0.350290,-0.018134}, {-0.562664,0.175504}, {0.514850,-0.074323}, {0.521176,0.137696}, {0.194373,0.197405}, {0.927279,1.181192}, {-0.118453,-0.014140}, {1.916604,-0.970558}, {0.612289,-1.323595}, {-0.046588,0.676538}, {-0.361614,0.343330}, {-0.072801,-0.258052}, {-0.387405,-0.305871}, {-0.953448,-0.183769}, {0.528532,-0.434791}, {-0.180672,-0.359667}, {-0.599359,0.653634}, {0.050363,-0.480589}, {0.233107,0.154633}, {-0.948858,0.182072}, {0.456937,-0.516302}, {0.303400,0.828243}, {-0.675064,-0.986310}, {-0.305059,0.166836}, {1.464878,0.165149}, {0.374637,-0.656082}, {0.718124,-1.594720}, {0.470116,-0.781559}, {0.309853,-0.650064}, {-1.133502,0.331558}, {0.145630,-0.142324}, {-0.157430,-0.301290}, {1.777805,0.083103}, {0.717511,0.394040}, {-0.145187,0.174645}, {-0.557239,0.572090}, {0.191157,0.101788}, {0.484733,0.137371}, {0.285309,-0.047834}, {0.197723,0.435201}, {1.212389,1.074376}, {1.174508,-1.056099}, {-0.076020,-0.321082}, {-1.196586,-0.557423}, {-0.610224,-1.475905}, {-0.009208,0.213072}, {0.515729,-1.346302}, {0.103609,-0.105880}, {-1.120470,0.071781}, {-0.777519,0.463790}, {1.156226,-0.298195}, {0.203968,0.760272}, {-0.780637,-0.918900}, {-0.769841,-0.775429}, {0.935468,0.026705}, {-0.241774,1.112869}, {0.227628,0.184193}, {-0.183832,0.409623}, {1.130661,0.731075}, {-0.555506,0.437555}, {0.457972,-1.800335}, {0.272675,0.660832}, {-1.884673,0.050126}, {-0.580737,-0.779387}, {1.227434,0.547756}, {0.053354,-0.616688}, {0.478480,0.910639}, {-0.333049,0.719330}, {0.010465,-0.612533}, {0.906478,0.818118}, {-1.193153,-1.824502}, {0.706058,0.615496}, {-0.370577,-0.145762}, {-0.902391,-0.628656}, {-0.106987,-0.364320}, {-0.084966,-1.302484}, {0.849559,-0.758851}, {-0.721184,0.072056}, {0.445967,0.442923}, {1.135449,1.092539}, {0.250839,1.832846}, {0.242031,-0.912937}, {0.969083,-1.380916}, {-0.854039,0.805446}, {-0.063648,-0.529546}, {-0.556826,0.358275}, {0.502400,-0.419893}, {1.121981,-0.341123}, {0.146130,1.403614}, {-1.507194,0.954692}, {1.696664,1.704881}, {-0.599841,-0.359776}, {-0.044186,-0.459231}, {-0.118475,-0.554999}, {-0.833973,-0.512125}, {-1.163373,-0.238938}, {-0.208580,0.332700}, {0.371481,-0.478670}, {-0.607465,-1.178812}, {-0.293391,0.125643}, {-0.646705,0.940141}, {0.189148,-1.350865}, {0.342294,-1.580507}, {-1.132454,-0.157761}, {-0.019979,0.524966}, {-0.169449,-0.519595}, {1.065918,-0.985098}, {-0.915971,-0.284780}, {0.098857,-1.215288}, {0.783253,0.635773}, {0.449313,-0.510098}, {0.689266,0.814086}, {-0.144834,-0.612379}, {-1.427958,0.199905}, {-0.474064,-0.742974}, {-0.337112,-0.137790}, {-0.674899,-0.264672}, {0.912269,1.104826}, {0.831791,-0.341448}, {-0.388669,0.672793}, {1.087330,1.281850}, {0.118528,0.631338}, {-0.206049,-0.715623}, {-0.781056,0.033644}, {0.792916,0.295321}, {-0.482422,-0.237909}, {0.261478,-0.752447}, {-0.754615,-0.516213}, {0.192734,0.378640}, {-0.439435,-0.431982}, {-0.946669,0.479718}, {-0.357092,-0.691345}, {1.157752,0.666368}, {-1.383208,0.311908}, {0.409399,0.461214}, {-0.698759,-0.607928}, {-0.482476,1.416944}, {-0.199183,0.371134}, {-0.082352,0.429145}, {0.432215,-1.285389}, {-0.244029,-0.686566}, {-1.015378,0.249656}, {0.956609,0.256536}, {-1.108435,-0.400837}, {0.358475,0.626661}, {0.376849,0.118413}, {0.384957,-0.159492}, {1.550985,0.318564}, {-0.658378,0.829656}, {0.070058,-1.867597}, {-0.556355,0.877398}, {-0.939162,-0.758821}, {-0.975259,0.428551}, {-0.465374,0.248586}, {-0.647683,0.162461}, {0.478579,-0.086328}, {1.171809,-1.210333}, {0.350605,-0.026423}, {-1.535107,-0.289105}, {0.569494,0.289004}, {-0.842191,-0.535135}, {-1.056587,-0.341966}, {0.571423,-0.949688}, {0.377006,0.223183}, {0.895255,-1.194232}, {0.407145,0.361737}, {-0.133994,-1.212235}, {-0.635602,0.102165}, {-0.112363,0.370473}, {0.088680,-0.934189}, {0.189376,0.032527}, {0.241638,0.015864}, {0.926939,-0.360267}, {0.633242,-0.199406}, {-0.777074,0.718454}, {1.263760,1.272871}, {-0.887876,0.895443}, {0.045161,-0.732052}, {-0.500926,0.113907}, {-0.126137,0.817229}, {0.086923,-0.332814}, {0.016727,0.325903}, {-0.336638,-0.207087}, {-0.613900,-0.550235}, {1.069793,-0.208412}, {0.077398,-1.607311}, {-0.215649,0.115757}, {-0.404151,-0.996211}, {0.226156,-0.014279}, {-1.177157,0.074822}, {-0.140062,0.186657}, {-0.409112,-0.330324}, {1.309929,-0.332041}, {0.821633,0.695834}, {-0.938862,-1.552127}, {0.075839,1.054654}, {0.323977,-1.147671}, {0.310022,0.038229}, {-0.359029,-0.022630}, {0.324017,0.387352}, {-0.048052,0.500409}, {-0.768604,-0.470784}, {0.684604,0.201031}, {0.736939,-1.300678}, {-0.479045,-1.017034}, {0.007828,-0.810752}, {-0.304589,-0.420991}, {0.655603,-0.376914}, {-0.526926,-0.309443}, {1.263186,0.124584}, {-0.301892,0.095891}, {0.329349,0.607629}, {0.858170,0.481326}, {0.863272,-1.044820}, {-0.185530,0.990111}, {-0.944209,0.851341}, {-0.140130,1.176828}, {0.656967,-0.249158}, {0.831843,0.166278}, {0.281441,1.026104}, {0.815836,1.287209}, {1.204176,-0.446447}, {-0.824919,-0.004133}, {-1.288957,0.000250}, {0.202791,0.163948}, {-0.652007,1.250650}, {-0.940207,1.250555}, {0.060222,-0.160424}, {0.276591,-0.733905}, {1.240840,-0.391642}, {1.228907,0.734534}, {0.183878,0.004227}, {0.471755,-0.211169}, {1.313163,1.109955}, {0.040600,-1.427535}, {-1.534644,0.502761}, {-0.618235,0.755691}, {0.075225,0.536254}, {-0.464799,-0.526058}, {-0.418575,-0.584390}, {-0.394190,-1.816489}, {0.225854,0.231993}, {-0.635186,-0.053889}, {-0.064877,-0.134776}, {-0.030140,0.052716}, {-0.548128,-0.690454}, {0.386017,0.089867}, {1.770913,0.146184}, {-0.245883,1.392924}, {-0.437879,0.537205}, {-0.330323,0.467750}, {0.586680,-1.393470}, {-0.120830,-0.437540}, {-0.963768,0.437445}, {0.330936,-0.667993}, {0.308680,-1.588304}, {0.825726,0.482044}, {0.226749,-0.379008}, {0.713663,0.392264}, {-0.364814,-1.242878}, {-0.029851,-0.845113}, {0.519322,-0.794357}, {0.118346,-1.295004}, {-0.992456,1.318909}, {-0.072580,-0.019761}, {-0.289738,1.767553}, {-1.316428,0.126071}, {1.683718,0.210909}, {1.611788,0.725453}, {0.165352,0.295910}, {2.416738,0.700021}, {0.526805,-0.148660}, {0.937490,-0.086265}, {0.818973,0.716807}, {1.269264,0.610734}, {0.966294,0.177897}, {-0.865904,0.933524}, {-0.204972,0.387884}, {1.036139,-0.352334}, {0.025383,0.301119}, {1.257758,-0.315413}, {0.678906,0.616848}, {1.169668,-0.413489}, {-0.307375,0.005018}, {0.073738,-0.187008}, {1.813125,-0.752193}, {1.392039,-0.785845}, {-0.643245,0.390684}, {0.463355,0.238971}, {-0.002376,-0.085880}, {-0.838524,1.114617}, {-0.367220,-0.351002}, {0.266690,-0.777264}, {0.192761,-0.720230}, {-1.500903,0.695838}, {0.493120,0.067029}, {0.030118,1.236780}, {0.034760,-0.819626}, {0.293606,0.201533}, {0.312385,1.481040}, {0.644201,-0.675942}, {-0.630559,0.140196}, {0.752821,0.626086}, {-0.310553,0.372922}, {0.511409,1.005211}, {-0.312640,1.205754}, {0.047365,1.161801}, {0.634709,0.848718}, {-0.185228,0.068916}, {0.710197,-0.424226}, {-0.627263,0.410260}, {-0.890694,1.019410}, {-0.911236,-0.507543}, {0.072052,-0.119403}, {0.277360,0.255984}, {0.011718,-0.365213}, {-1.242291,-0.359709}, {-0.266353,-0.290392}, {-1.193119,-0.901162}, {0.016134,-0.154263}, {-0.392536,-1.082696}, {0.997809,0.053994}, {-1.230871,-0.639927}, {0.753734,0.260376}, {-0.177411,-0.654997}, {-0.664207,-0.818289}, {0.558704,-0.173549}, {-0.456297,-0.523642}, {0.437174,0.603725}, {1.110922,0.929951}, {-1.145341,0.606142}, {0.762613,-0.534990}, {1.123318,0.182479}, {-0.924404,0.074693}, {0.421870,-0.803706}, {0.237068,-0.731789}, {0.114878,0.715037}, {-0.115797,0.490062}, {0.613808,-0.057239}, {-0.002727,0.385070}, {0.118135,-0.066553}, {-0.137414,-0.095722}, {0.241358,-0.096421}, {-0.514497,-0.904141}, {-0.484342,1.537877}, {-0.143724,0.510801}, {0.761716,0.162944}, {0.627842,-0.387618}, {-0.263134,-0.631088}, {0.435091,0.285372}, {-0.506864,1.600501}, {-0.514922,-0.416914}, {-0.127203,0.976581}, {-1.080020,-1.111665}, {0.197020,0.354050}, {1.494278,-0.024726}, {-0.547009,0.483956}, {-0.111064,-1.245961}, {-0.654196,-0.610226}, {0.233488,0.119793}, {-0.816235,-0.666550}, {-0.154340,0.061817}, {-0.949530,0.341751}, {0.045377,1.203108}, {0.430596,1.308333}, {-0.016732,-0.389215}, {0.399432,0.672581}, {0.459967,0.156065}, {-0.095913,-1.398591}, {-1.249649,-0.318145}, {0.584487,0.046164}, {0.523293,-0.263306}, {0.928685,-0.941009}, {-0.094772,1.143322}, {-0.647698,0.255648}, {-1.029936,0.187780}, {0.514449,1.421299}, {0.437990,-0.736063}, {-0.148725,-1.226925}, {0.735137,-0.988119}, {1.047799,-0.121534}, {-0.407426,0.264870}, {-0.700435,-1.115746}, {0.532253,0.835391}, {-0.713866,-0.766539}, {-0.594814,-1.583788}, {-0.091316,0.186157}, {-1.061280,0.790775}, {1.196936,-0.655124}, {0.138017,-0.110440}, {-0.482455,-0.535907}, {1.275872,-0.400182}, {-0.064806,0.484727}, {0.401664,-0.613058}, {-0.700481,-0.936574}, {0.532775,0.696085}, {1.008801,0.749932}, {-0.986396,-1.189219}, {-0.913639,0.371736}, {0.784265,-0.263053}, {-0.408200,-1.066935}, {-0.668052,-0.239838}, {-1.178900,-1.241531}, {-0.853686,0.295449}, {0.166123,-1.515813}, {-0.444517,0.062558}, {0.332299,0.329983}, {-1.982113,-0.485853}, {1.132998,-1.205220}, {-0.804666,0.302509}, {-0.238308,-0.134546}, {0.710908,-0.432452}, {0.315154,1.398999}, {-0.681044,0.872108}, {0.606473,0.523653}, {0.014945,0.278227}, {-0.139660,0.507999}, {0.589431,1.064057}, {1.203018,-0.095737}, {-0.706335,0.844312}, {-0.457733,0.411376}, {1.392476,0.615478}, {0.503531,0.629748}, {-1.868925,1.019854}, {0.623614,-0.097751}, {1.591276,-0.051853}, {-0.113714,0.458968}, {0.053809,-0.896137}, {0.828523,-0.324982}, {-0.897275,0.933097}, {1.465266,0.219218}, {-0.328468,-0.511827}, {-0.269574,0.240325}, {0.158350,-0.002023}, {0.007904,0.374705}, {-0.748152,-0.404403}, {0.401461,1.023925}, {-0.694375,0.165567}, {-0.750854,-0.441250}, {-0.732961,1.478016}, {-1.351355,-0.403812}, {1.015405,-0.641125}, {-1.187931,0.516955}, {0.356994,0.568579}, {-0.980631,-1.747832}, {0.841677,-0.390122}, {-0.341402,-0.520199}, {0.267459,0.114024}, {-0.241603,-0.232871}, {0.477839,0.132306}, {-1.470251,0.729433}, {0.041666,-1.683171}, {0.476142,0.743715}, {-0.601401,-0.980501}, {0.652458,-0.252309}, {0.456130,-0.278763}, {1.118120,0.633555}, {-0.749787,-0.239808}, {-0.104785,0.184428}, {0.669072,0.512814}, {-0.766815,-0.611725}, {0.264691,0.519192}, {0.723239,0.197053}, {0.208870,-1.040927}, {0.225315,1.672246}, {-0.292557,0.249723}, {0.028916,0.585265}, {0.095992,0.356909}, {-0.555301,-0.057219}, {-0.928637,-0.681245}, {-0.528215,0.113653}, {0.051210,-0.925710}, {-0.488349,-1.072004}, {0.388358,-0.829677}, {-0.440984,0.402262}, {-0.587779,0.415484}, {-0.854813,-1.202757}, {0.140449,0.615316}, {-0.969118,0.625102}, {0.723061,-0.023433}, {-0.466547,-1.193377}, {0.174382,-0.191844}, {-0.069412,0.744591}, {0.614304,0.878272}, {1.039704,-0.498006}, {-0.308974,0.145160}, {1.014526,-0.374036}, {0.252267,0.687180}, {-0.162024,-0.879458}, {-0.069318,-0.136461}, {1.084086,-0.626762}, {-0.337708,0.138883}, {-0.614793,0.495342}, {-0.313819,0.218629}, {-0.355789,-0.208860}, {1.264926,-0.581676}, {0.995574,1.298469}, {0.048826,1.154609}, {0.853013,0.154451}, {-0.288999,-0.321106}, {-0.313594,-1.063780}, {0.993070,0.561339}, {0.227798,1.300257}, {0.228511,1.096806}, {-0.206126,-0.606261}, {0.534751,1.086407}, {0.990795,-0.239272}, {-0.221983,-1.228456}, {-0.853842,-0.354515}, {-1.529191,-0.080374}, {0.510801,0.916183}, {-0.406386,0.535647}, {-0.894904,-0.543193}, {-0.238739,-0.062090}, {-0.888515,-0.567698}, {-0.480891,-0.205695}, {0.174172,-0.275572}, {-0.272541,0.816420}, {-2.017061,-0.971229}, {0.654095,-0.688792}, {-1.521416,-0.151355}, {-0.419304,-0.564373}, {-0.683359,-0.964495}, {0.191915,0.116535}, {-0.122173,0.698014}, {0.091031,0.996259}, {0.807417,-0.307397}, {0.503590,-0.560922}, {-0.025515,-0.177932}, {-1.471801,0.431103}, {-0.274382,-1.436026}, {0.410563,0.251427}, {-0.688289,0.531037}, {0.235751,-0.017373}, {1.697625,0.330051}, {1.296692,-0.008806}, {-0.161821,-1.267515}, {-0.157375,0.552060}, {0.194818,-0.498418}, {-0.803649,0.679683}, {-0.085934,0.145656}, {1.299868,-0.011962}, {-0.912591,-0.421947}, {1.145332,0.300821}, {0.269805,0.306810}, {-0.204528,-0.802886}, {-0.467310,0.023213}, {-0.143521,-0.064844}, {-0.615181,-0.550979}, {-1.849136,-0.009920}, {0.171609,-0.665812}, {-0.491934,0.882227}, {-1.650295,0.114048}, {-0.400294,0.424205}, {-0.514118,-0.669073}, {0.258922,0.794121}, {0.049997,0.134089}, {0.194488,-0.156671}, {0.344593,-0.056610}, {-0.065019,-0.791255}, {-0.712143,-0.889316}, {-0.037947,-0.410308}, {-0.608536,0.363014}, {-0.995931,0.748773}, {-0.532246,1.524272}, {-1.273984,-0.692641}, {0.216458,-0.969723}, {0.596969,1.207691}, {0.630096,0.619046}, {0.053170,0.680191}, {-0.316325,2.215220}, {-0.727683,0.614145}, {-0.426250,-0.833144}, {0.824881,-0.500053}, {-0.529623,0.311797}, {-0.178255,0.825478}, {0.103841,-0.104707}, {-0.031122,0.452810}, {-1.102562,-0.565139}, {0.562892,-1.009280}, {-0.990678,0.532690}, {0.780854,-0.558275}, {-0.797341,-0.248667}, {0.419113,0.984902}, {-0.373388,-0.223312}, {-0.219678,-0.502263}, {0.073586,-0.923303}, {0.462648,-0.208484}, {0.402837,1.456425}, {0.394849,0.801398}, {-0.032908,-0.398294}, {0.137910,0.005318}, {-0.388445,0.932065}, {-0.968678,0.568907}, {-1.168897,0.713647}, {-0.135803,0.675903}, {-0.798947,0.409210}, {-0.210345,0.474493}, {-0.996924,-0.261361}, {-0.376090,-0.169902}, {-0.084624,-0.337132}, {-0.149856,1.151486}, {-0.334993,-0.025083}, {0.014955,-0.281633}, {-0.296591,1.360250}, {-0.356625,-0.268706}, {0.092831,-0.664457}, {0.661417,1.101560}, {0.818075,-0.436305}, {0.257700,0.826407}, {-0.876984,-0.265632}, {-0.847009,0.983195}, {0.533962,0.025176}, {0.475236,-0.021672}, {-0.408513,0.144330}, {-0.054836,-0.056845}, {-0.811997,-0.428748}, {-0.041344,0.580983}, {-0.403695,1.106749}, {-0.782566,-0.126241}, {-0.164866,0.115952}, {-0.511490,-0.220781}, {0.758437,1.045866}, {1.585939,0.717827}, {0.198230,-0.423196}, {0.425990,0.760640}, {0.349586,0.560766}, {-0.394644,0.704755}, {0.816262,0.894866}, {0.669015,2.130989}, {0.400988,0.020291}, {0.271768,0.213246}, {0.677947,-0.681183}, {-1.418844,-0.062849}, {0.154916,-0.318327}, {-0.397071,2.104998}, {0.775958,-0.897373}, {-0.332711,0.107389}, {0.120366,-0.286305}, {0.329814,-0.271822}, {0.103319,-1.265877}, {-0.729148,1.209006}, {0.782576,-1.122029}, {-0.924092,-0.627575}, {-0.804932,-0.421433}, {0.344793,-0.265698}, {0.408639,0.540421}, {-0.154016,0.136751}, {-1.289312,0.562553}, {-0.541214,0.328546}, {0.113700,0.137387}, {-0.357670,0.284727}, {0.870838,-0.493262}, {-0.984308,-0.399538}, {0.156173,0.616735}, {0.558083,0.793972}, {-0.041236,-0.886977}, {-0.272831,-0.458041}, {0.720271,-1.299717}, {0.800746,-0.688169}, {0.003356,-0.488594}, {0.112341,1.180680}, {-0.404111,-0.185403}, {-1.132811,0.187327}, {0.278689,0.563330}, {-0.475478,0.253690}, {0.822805,-1.018580}, {-0.536317,-0.432998}, {1.196511,0.646342}, {0.248643,-0.351856}, {0.023010,0.801504}, {0.082477,0.227903}, {-0.739984,1.409377}, {-1.093346,0.284272}, {0.014437,0.797834}, {-0.231989,-0.756894}, {-0.324308,-0.373406}, {0.327255,0.165462}, {0.077915,0.976373}, {0.099804,-0.232398}, {-0.188951,-1.848099}, {-0.264076,0.299642}, {-0.249151,0.531139}, {-0.085369,0.191014}, {0.418407,0.643442}, {0.548592,-0.986217}, {0.201831,-0.013044}, {0.402804,0.414341}, {0.672157,-1.203954}, {0.095442,-0.174176}, {0.841303,-0.015891}, {-1.263681,-1.045229}, {0.761722,0.884349}, {-1.504885,-0.472921}, {-0.346331,0.174952}, {0.933591,0.149618}, {0.730042,-0.463471}, {-0.475737,1.006552}, {0.759548,-0.283706}, {0.157366,-1.489094}, {0.523688,0.334166}, {0.876784,0.002512}, {-1.026722,0.090503}, {-1.165607,0.169016}, {0.359693,-0.053239}, {0.215738,0.499053}, {-0.350342,0.196230}, {0.896169,0.062044}, {2.042446,-1.127256}, {-0.534803,-0.041073}, {-0.164018,0.930955}, {1.250713,0.249031}, {-0.869230,0.749397}, {0.340076,-0.429473}, {0.156416,-0.607349}, {-0.876436,0.247448}, {0.631910,-0.711511}, {-0.353926,0.595086}, {-0.317500,0.152275}, {0.016852,0.409049}, {0.138180,-0.897995}, {-1.043338,0.106864}, {0.249097,0.765102}, {-0.063449,-0.898102}, {-0.009991,0.423051}, {-2.479719,-0.472494}, {0.089759,0.324779}, {-0.425748,-0.136768}, {-0.039432,0.113546}, {0.378075,0.584178}, {-0.116790,-0.340992}, {1.409989,0.608333}, {0.185191,0.854648}, {0.148669,-0.916006}, {0.243601,-0.578485}, {0.534792,0.128748}, {0.096589,-0.011526}, {0.302454,-0.104072}, {0.557113,-0.581964}, {0.123224,0.084108}, {-0.040691,1.241659}, {-0.976656,-0.139564}, {0.461107,0.951388}, {-0.172467,-1.082873}, {-1.153675,-0.385351}, {-0.618565,0.103723}, {0.584970,-0.576273}, {-0.072267,0.632778}, {-1.229002,-0.083644}, {-0.398376,-0.960650}, {-0.182248,0.182768}, {0.047476,-0.416691}, {-0.006784,0.265975}, {0.197887,-0.503323}, {1.187192,-0.302236}, {-0.243130,-1.039109}, {-0.062329,0.768271}, {0.943091,0.735741}, {-0.034137,0.599684}, {-0.528197,-0.012226}, {-1.206841,0.534777}, {-0.136555,0.133648}, {-0.026909,-0.925145}, {0.545718,0.306186}, {0.019155,0.114856}, {0.108414,0.467932}, {-0.690591,0.822777}, {-0.784363,-0.578012}, {-0.355875,0.224161}, {1.082772,0.724638}, {0.259778,-0.690524}, {0.144948,-0.594185}, {-0.569524,-0.553273}, {0.951085,-1.238274}, {-0.334362,0.954367}, {0.270034,-0.455925}, {0.135168,0.992027}, {0.673968,-0.116692}, {1.150927,-0.985755}, {0.401896,-0.044726}, {-0.404015,0.215494}, {-0.874189,-0.310641}, {-1.076193,-1.010944}, {-1.077048,-0.032036}, {-0.059354,-0.173463}, {-0.218021,0.018288}, {-0.196944,-0.747249}, {0.734062,0.379284}, {1.158500,0.450099}, {-0.858797,0.229643}, {1.308480,-0.146091}, {-0.741501,0.254662}, {1.000943,0.157585}, {0.521755,-0.098708}, {0.086764,0.359042}, {-0.099892,0.739584}, {0.340750,-1.523697}, {-0.536943,1.085834}, {0.570584,0.105172}, {0.202618,-0.072868}, {-0.636440,0.211023}, {0.497984,0.587557}, {-0.110149,-1.306920}, {-0.679943,0.412284}, {-0.316334,-0.908325}, {-0.711702,1.541623}, {1.257867,0.108194}, {-0.642721,-0.461193}, {-0.358721,-0.241200}, {0.150649,-1.176602}, {-1.319244,0.289257}, {0.773558,0.096770}, {-0.827512,-0.185106}, {-0.040823,-1.803707}, {0.649424,-0.745211}, {1.254139,0.001556}, {0.329440,-0.291886}, {-0.640815,-0.162880}, {0.091218,1.039846}, {0.699821,-0.470335}, {-0.583234,-0.635644}, {0.819819,-1.751943}, {-0.721584,0.787984}, {-0.179237,0.328456}, {-0.063781,0.429699}, {1.631510,0.041000}, {0.122645,-0.926669}, {0.970309,-0.036087}, {-0.204184,-0.045486}, {-0.597965,0.889277}, {-0.564184,-0.344697}, {-1.064722,-1.138890}, {-0.751389,-0.391462}, {-0.024089,0.535480}, {-0.265461,0.383199}, {-0.504780,-1.007336}, {-1.021076,0.831820}, {0.141181,-0.805943}, {0.451375,0.655968}, {1.100952,0.897682}, {0.205680,-1.447828}, {-0.748725,0.229730}, {0.886689,-0.042364}, {-1.821520,-0.303140}, {0.697765,-0.619635}, {-0.046616,-0.261678}, {-0.207704,-0.328292}, {-0.534695,-0.547877}, {-1.575192,0.622682}, {0.469863,0.483822}, {-0.215089,1.552073}, {0.505524,-0.648942}, {0.262484,0.623770}, {0.427704,-0.562431}, {-0.872769,0.672559}, {-0.020422,-0.187349}, {1.243445,-1.678458}, {0.123213,-0.587475}, {0.071629,-0.272299}, {0.150438,0.166304}, {-0.278067,-0.782556}, {0.011738,-0.690190}, {0.881321,-0.960599}, {0.234258,-0.529572}, {-1.583603,-1.199128}, {0.394669,-0.930577}, {-0.358556,1.527559}, {-1.524935,-0.981286}, {-1.283556,0.168284}, {-0.071836,-0.156780}, {1.300191,1.006321}, {-1.238737,0.048229}, {-0.377324,-0.229504}, {1.099479,0.998962}, {-0.298661,-1.195932}, {-0.283137,-0.159995}, {0.098216,1.750651}, {-1.026856,0.639700}, {0.770303,0.037554}, {-0.190248,-0.145522}, {-0.674866,0.016212}, {-1.556569,1.310796}, {-0.417356,1.000320}, {1.292398,-0.862891}, {-0.666403,1.999084}, {0.359215,0.069716}, {0.347212,-0.033478}, {-0.378434,-0.364239}, {-0.177074,0.536678}, {0.665238,-0.817818}, {-0.050101,0.086105}, {0.402255,-0.348473}, {-0.108418,-0.286375}, {0.632875,-0.573563}, {-0.401028,-1.098233}, {-0.209670,-0.524291}, {1.161718,-0.018141}, {0.062103,0.583460}, {0.477218,1.102610}, {-0.467535,1.244971}, {-0.375225,-0.086564}, {0.628985,-0.808293}, {1.769568,-0.074081}, {-0.632422,0.452516}, {-0.080602,0.904194}, {-0.036578,0.987790}, {-1.059879,-0.224910}, {-0.942022,0.248616}, {0.604268,0.203433}, {0.511442,-0.200682}, {-1.007013,0.355784}, {-0.895393,-0.034260}, {-1.057717,1.382638}, {0.611742,0.856244}, {0.703185,-0.058025}, {-0.130182,-0.591155}, {0.638317,-0.190395}, {0.522978,-0.891479}, {-0.002451,-0.012145}, {-0.321576,0.154897}, {-1.017726,0.839232}, {0.275647,-0.836124}, {-0.118267,-0.695792}, {-2.185583,-0.392189}, {0.732423,-0.118374}, {0.884142,0.303615}, {-1.341810,-0.498593}, {-0.479942,-0.379985}, {0.111066,-2.027992}, {0.639038,-1.018160}, {0.123944,0.497292}, {-1.415298,-0.098769}, {1.108608,-1.269705}, {-1.101691,0.124200}, {0.442822,-0.443518}, {-1.122461,0.522937}, {-0.142504,-0.305149}, {-0.176067,-0.623792}, {-0.196882,0.715774}, {0.406265,0.244901}, {1.161033,0.506478}, {0.167092,-0.544898}, {-0.008688,-0.682775}, {-0.481234,-0.114580}, {-0.301007,-0.278349}, {0.839510,-0.084011}, {0.523550,0.618197}, {-1.485248,1.869149}, {-0.385724,0.172770}, {-0.388899,-0.581958}, {0.615073,-0.767256}, {0.695869,1.535576}, {-1.500226,-0.888290}, {-0.511725,0.657499}, {-0.738649,-0.437450}, {0.652296,-0.153666}, {-0.169144,-0.366049}, {-0.213299,0.312138}, {-0.862391,-0.179164}, {0.479733,1.023316}, {-1.704103,-0.974490}, {-0.348370,-1.488505}, {-1.099062,0.282122}, {-1.578280,-0.162824}, {-1.091052,0.744575}, {-0.515178,-0.044797}, {0.065343,0.960922}, {-0.051800,-0.142943}, {-0.117723,-1.467680}, {-0.643133,1.163677}, {-0.034072,0.261251}, {0.464990,-0.130008}, {0.133313,-1.401987}, {0.126248,0.450691}, {-0.003664,-0.323720}, {0.142170,-0.755157}, {-1.656898,-0.020361}, {-0.612778,0.036440}, {0.353884,-0.743228}, {-0.430287,-0.179029}, {0.625341,0.171575}, {1.016815,-0.257385}, {0.324956,-0.714199}, {-1.174736,-0.158217}, {-0.274466,-0.771165}, {-0.393455,-0.971745}, {-0.298555,0.790057}, {-0.646557,-1.558486}, {0.758193,0.973426}, {-0.512463,-0.785605}, {0.980556,-0.044524}, {0.453143,0.624350}, {1.147269,0.020674}, {-0.501269,-0.404065}, {-0.244718,-0.507250}, {0.770791,0.097876}, {0.244499,-0.019047}, {-0.727271,-1.001762}, {-0.366096,-0.511113}, {0.479774,0.574401}, {0.917365,-0.129024}, {-0.745295,-0.245488}, {0.745051,1.034707}, {0.810366,-0.847422}, {0.235447,0.300914}, {-0.708897,-0.941699}, {0.309677,-1.041238}, {-0.081649,0.128611}, {0.844397,0.010619}, {-1.009033,0.934418}, {1.144116,0.074744}, {-0.057235,-0.308853}, {0.360603,0.036429}, {0.830911,-0.450962}, {-0.194946,-0.151025}, {-0.211182,0.118259}, {0.021337,0.332110}, {0.129465,-0.225661}, {-1.052171,-0.755217}, {0.633623,-0.177776}, {0.100743,-0.704954}, {-0.818968,1.180590}, {-0.535346,-0.545943}, {-0.006770,0.316309}, {0.775806,0.533149}, {0.339163,0.050466}, {0.318535,-0.074793}, {-1.297398,-0.351562}, {-0.772665,1.015512}, {0.295548,-0.180960}, {-0.044699,-0.203172}, {0.724933,-1.023951}, {-0.167979,-0.725819}, {0.686506,0.268161}, {-0.480277,-0.221435}, {-0.056920,0.480959}, {0.030116,-0.272789}, {-0.302421,0.129490}, {-1.671242,0.181529}, {-0.281706,-0.333536}, {0.016290,-0.028753}, {-0.259901,-0.190484}, {0.289524,-0.195349}, {-1.337980,0.540319}, {0.661628,-0.670418}, {0.599796,0.557768}, {0.580559,0.969807}, {0.031230,0.964814}, {0.198048,0.444485}, {0.578456,-0.883133}, {0.624222,1.329692}, {-0.625168,-0.127331}, {-0.017311,1.164091}, {-0.621783,-0.446638}, {0.701142,-0.309340}, {-1.057874,-0.834624}, {0.346678,-1.338687}, {0.667874,-0.522838}, {-1.028893,-0.504854}, {-1.338328,-0.931585}, {0.287635,0.120742}, {0.230818,0.167010}, {-0.328503,-0.748337}, {-0.255351,0.964045}, {0.510160,-1.611867}, {0.223958,-0.860844}, {0.239175,-0.837760}, {1.266567,-0.125655}, {0.582400,0.156299}, {0.251579,-1.778354}, {0.650474,0.028121}, {0.993767,-0.090186}, {0.441591,-0.361052}, {-1.413507,0.317850}, {0.334364,-0.332911}, {-0.010362,-0.177608}, {0.014458,-0.502127}, {-0.919481,-1.160841}, {-0.443414,0.552915}, {-0.054788,-1.052794}, {-0.561902,0.153077}, {-0.677469,-0.159762}, {0.650310,-0.922686}, {0.296712,0.812605}, {-0.294342,0.055605}, {-0.535585,-1.384576}, {-1.433487,-0.747544}, {0.645626,-0.741622}, {0.920579,-0.258878}, {0.169646,0.529906}, {0.674057,0.410030}, {-0.351663,0.199608}, {-0.339342,-0.416492}, {-0.271758,1.138671}, {0.224929,-1.327320}, {0.601037,1.033542}, {-0.193132,-0.768238}, {0.364633,-0.653041}, {0.783166,-0.809904}, {0.559880,0.350413}, {0.615788,-0.237848}, {0.236813,-0.842202}, {0.031135,-0.661401}, {0.349296,-0.774153}, {1.759036,-0.724450}, {-0.116563,0.294276}, {0.375200,-1.357901}, {-1.029118,1.305234}, {0.497985,-0.464184}, {-0.295867,-0.349915}, {0.221068,-0.835466}, {-0.838100,0.275901}, {-1.020066,0.277497}, {1.091145,0.328918}, {0.327124,0.702349}, {-0.476125,0.304774}, {0.520932,0.875467}, {-1.726524,1.028699}, {0.060615,0.113976}, {0.297927,1.293605}, {-0.405591,0.650445}, {0.037677,-0.734049}, {-0.565393,0.943537}, {0.910424,-0.580765}, {0.493416,-0.962297}, {0.956024,0.716498}, {0.474440,0.623715}, {-0.922501,-0.564992}, {-0.794655,0.719802}, {0.596664,-0.091353}, {-1.236730,0.412576}, {-0.041676,0.394763}, {0.786846,0.085198}, {1.051734,-0.257630}, {-0.906726,-1.590711}, {0.362094,-1.386569}, {0.148797,-0.901821}, {-0.736306,0.417423}, {0.329381,-0.221941}, {0.009126,0.513875}, {-1.192236,0.638637}, {-0.317820,0.575279}, {1.586186,-0.027898}, {-0.025386,0.094059}, {-0.315796,-0.838576}, {0.030063,-0.320087}, {0.534822,0.130995}, {0.477222,-0.398652}, {-0.913466,-0.563169}, {-0.823684,-0.189615}, {-0.213996,0.665743}, {0.654202,0.146227}, {-0.004974,0.257017}, {-0.024927,-0.214095}, {-1.045988,0.681355}, {0.146436,0.294438}, {1.089600,-0.127405}, {0.798004,0.931002}, {-0.505832,0.828742}, {0.361348,-0.830710}, {-0.305041,1.032923}, {-0.728657,-0.579665}, {0.517347,-0.452207}, {0.879566,-0.278807}, {-0.124969,-0.036169}, {0.628951,-0.089218}, {-0.603025,-0.528341}, {0.019535,1.501341}, {0.881593,0.143029}, {-0.231925,-0.097508}, {0.538676,0.300952}, {-0.127155,0.296466}, {-0.274248,0.005941}, {1.500761,-0.345010}, {-0.907824,1.044908}, {0.414848,1.043371}, {-0.867983,-0.304333}, {0.044936,0.571416}, {-0.266616,0.376188}, {0.878846,0.549724}, {-0.170746,0.362205}, {0.160919,0.167739}, {0.462195,0.540838}, {-0.875388,-0.096774}, {0.307478,-0.185363}, {-0.181949,0.313114}, {-0.085873,-0.399748}, {-0.129085,1.140098}, {-0.252383,0.086665}, {0.189609,-1.301528}, {0.382798,0.498417}, {-0.506249,-0.317346}, {-1.212357,0.230474}, {0.474321,0.181404}, {0.681870,-0.999781}, {0.607469,-0.406532}, {0.622035,-0.522596}, {0.227928,0.106501}, {-0.379127,-0.283975}, {0.139899,-0.090042}, {0.672276,-0.271219}, {-0.234798,-0.982539}, {0.475426,-0.896914}, {-0.325514,0.546342}, {0.437787,0.300656}, {-0.625297,-0.525772}, {-0.061169,0.198968}, {-0.094667,0.112590}, {0.786903,0.717350}, {-0.109661,-0.225045}, {0.186298,-1.271786}, {-0.369875,0.986481}, {0.689748,-0.439040}, {-0.965116,-0.848020}, {0.656998,-2.318079}, {0.002981,0.218055}, {-1.189818,0.355672}, {0.584073,-1.050715}, {-0.108002,-0.588069}, {-0.313385,0.621555}, {-0.889104,-0.082471}, {-0.769348,1.617374}, {-1.728674,1.396468}, {-0.616521,1.370656}, {-1.249198,0.309463}, {0.189456,-0.979952}, {-0.118186,1.507419}, {0.747125,0.309914}, {-0.614646,1.308353}, {0.333443,-1.419442}, {-1.700063,0.680655}, {0.266295,0.063078}, {-1.331327,0.169856}, {0.242049,-1.531715}, {0.960667,-0.302137}, {-0.061825,0.429394}, {-0.329970,0.278702}, {0.410208,1.176057}, {-0.789042,-0.174484}, {-0.238696,-0.184614}, {0.602804,0.051704}, {-0.633642,0.103324}, {0.065643,-0.546136}, {-0.339235,-0.673524}, {-0.315448,-0.300233}, {-0.864395,0.215781}, {0.254565,0.459681}, {-0.723593,1.270257}, {-0.583801,0.838345}, {-0.808536,-0.416249}, {-0.053534,0.820439}, {0.798705,-0.418082}, {1.776613,-1.110952}, {0.366472,0.636865}, {0.324757,0.701457}, {-0.036684,0.112409}, {-0.877729,0.003873}, {-1.084160,-0.401799}, {-0.008295,0.326360}, {0.787213,-0.261947}, {0.836987,-0.392854}, {0.275954,0.382297}, {-0.690174,0.027938}, {-0.374934,0.437628}, {-0.759869,0.360720}, {-0.638815,0.093196}, {0.189722,-0.218160}, {-0.454777,-1.027413}, {1.236142,0.310097}, {0.477871,-0.594035}, {-0.124788,-0.108431}, {0.544631,0.996734}, {-0.496622,-0.463029}, {0.625047,0.069807}, {0.557384,0.060492}, {-0.265568,-1.409334}, {0.239741,0.259396}, {0.904890,-0.068242}, {-0.744938,0.163030}, {-0.471091,-0.345572}, {-0.273164,0.370181}, {0.729318,1.531839}, {-0.726184,-0.223504}, {0.242483,0.053784}, {-0.205845,-0.562647}, {-2.151637,-0.069466}, {-0.846446,0.795935}, {1.110915,-0.399958}, {0.489046,-0.556660}, {0.205667,0.176983}, {0.328136,0.200920}, {0.527322,0.191632}, {1.546037,-0.657550}, {-0.310488,0.301548}, {0.585276,0.957516}, {0.128524,0.840981}, {0.018146,1.407488}, {-1.516386,0.228783}, {0.124218,-0.156492}, {0.265637,0.315627}, {-1.063782,-0.367510}, {0.827797,0.276360}, {1.960161,-1.227262}, {0.806068,1.260862}, {0.373849,-0.276127}, {-0.498184,-0.462535}, {-0.077592,0.327073}, {0.588710,-0.430273}, {-0.905723,-1.065033}, {-0.016188,-0.290291}, {-0.109620,0.477222}, {0.565824,-0.470857}, {0.705157,0.606991}, {0.614145,-0.049931}, {-0.031315,-0.632364}, {0.072033,-0.559342}, {0.458793,1.387290}, {0.206636,0.224213}, {-0.392240,-0.854508}, {-0.839329,1.695036}, {0.566507,-0.629087}, {0.370644,-1.070375}, {0.761916,-0.623349}, {0.602129,0.418224}, {0.790301,-0.310664}, {1.481982,0.146058}, {-1.573813,0.024454}, {0.567915,-0.336681}, {-0.639597,0.182668}, {1.260436,2.207508}, {0.696288,0.181341}, {0.376110,0.431512}, {-0.000551,0.056281}, {0.402438,-0.361156}, {0.072172,0.279490}, {-0.885060,-0.641645}, {1.385817,0.885361}, {0.690711,-0.158455}, {-0.960198,-0.182059}, {0.321308,0.180684}, {0.147669,-0.549752}, {-0.107020,0.306074}, {0.174252,0.899434}, {0.061913,-0.189282}, {1.102905,-1.250777}, {0.223198,-0.637361}, {-2.146420,0.173387}, {-0.084436,-0.775938}, {0.287327,0.446614}, {1.090236,0.383949}, {1.121181,0.127876}, {0.103766,0.991675}, {1.242702,0.272046}, {1.008926,-0.211179}, {-1.353983,-0.705201}, {-1.661310,0.179906}, {-0.572442,0.843940}, {0.534838,-0.420940}, {1.906158,1.102764}, {-0.553360,-0.478077}, {-0.636383,-1.315762}, {-1.124395,0.081685}, {0.220542,0.468091}, {-1.229590,-0.659073}, {-0.564517,0.239986}, {-1.172267,-0.314597}, {0.151538,0.149107}, {0.242211,-0.821363}, {0.254545,0.273831}, {-0.534100,-0.226399}, {1.163542,-0.942243}, {1.041018,0.317274}, {-0.401554,-0.096105}, {-0.113999,-0.117513}, {-0.010346,-0.748131}, {0.354813,0.636504}, {-0.681541,-0.112983}, {-0.488145,0.464117}, {-0.193164,0.061733}, {-0.192093,-0.321730}, {0.509883,0.382645}, {-1.403973,-0.336215}, {0.394349,-0.205158}, {0.391611,-0.502082}, {0.616434,-0.022915}, {0.804218,-0.495715}, {-0.079753,0.070374}, {0.341990,-0.635143}, {0.067861,-0.236447}, {-1.101606,-0.120961}, {0.442884,-0.438436}, {0.212980,0.309736}, {0.528495,-0.251375}, {-0.692353,-0.169402}, {0.562221,-0.028760}, {0.590351,0.405250}, {-0.717372,0.369161}, {-0.806613,0.504272}, {0.286954,1.111197}, {-0.105423,-0.153474}, {-0.346757,-1.116428}, {0.226199,-0.504658}, {0.004135,-0.101712}, {-0.040985,-0.512184}, {-0.022114,-0.025237}, {-0.334621,-0.134380}, {0.534726,-0.729250}, {-0.282945,-0.576566}, {-0.931037,0.047644}, {1.365371,-0.644779}, {0.168399,-1.211458}, {2.486020,-1.456800}, {-0.004467,-0.574279}, {-0.401257,1.031333}, {0.424854,0.679751}, {-0.360869,-0.836076}, {-0.349323,1.100520}, {0.126475,0.711401}, {-0.075597,1.820855}, {-1.746648,1.113080}, {-0.153525,-0.544782}, {-0.533184,-0.693391}, {-0.769927,-0.582211}, {-0.680363,0.216778}, {-0.004214,-1.526735}, {-0.086907,-0.002847}, {0.232166,-0.016912}, {0.817197,0.482386}, {-1.105532,0.491655}, {-0.376338,0.410127}, {1.042417,0.054103}, {-0.241349,-0.748510}, {-0.014625,-0.417149}, {0.738367,0.443956}, {-1.044035,0.497683}, {0.292520,-0.751995}, {-0.217407,0.722108}, {0.918647,-0.718313}, {-0.164316,0.409743}, {1.309759,0.090394}, {0.233709,-0.815158}, {-0.239462,0.605397}, {-0.039005,-0.027079}, {-0.954133,-0.096347}, {1.816169,0.521655}, {0.153716,-0.328576}, {0.835515,-0.359370}, {-0.705611,-0.523065}, {0.138570,-0.063344}, {0.083846,-0.023266}, {-0.562762,-0.812709}, {0.365173,-0.859163}, {0.578421,-0.182048}, {-0.126089,1.117181}, {0.617319,-1.086710}, {0.769929,0.422361}, {-1.309781,1.172984}, {-0.596821,-0.251837}, {0.212351,-0.811837}, {-0.162098,-0.192380}, {-0.813093,1.121627}, {0.256762,0.936857}, {-0.875631,1.008870}, {0.247567,0.868075}, {0.971357,-0.738473}, {-0.226325,0.330532}, {-0.162002,0.916161}, {-0.400712,1.001422}, {0.074112,1.112345}, {0.860980,0.266196}, {0.395444,-0.557019}, {0.120734,-1.186860}, {0.556697,0.066680}, {0.854588,0.178589}, {2.451387,-1.403948}, {0.227316,0.024298}, {0.591620,0.075444}, {0.200034,0.061233}, {0.482442,-0.836773}, {1.044504,0.162091}, {0.928003,-0.484096}, {0.382501,-0.191498}, {-0.375135,0.607373}, {-0.736591,0.301910}, {0.174839,-0.142515}, {0.733383,0.997919}, {-0.786136,-1.067298}, {-0.206222,-0.113384}, {-0.464171,0.094194}, {-1.350080,-0.791223}, {-1.126134,-0.116062}, {-0.208917,-1.109539}, {-0.370726,-0.057655}, {-0.091744,-1.090501}, {-0.208418,0.132989}, {0.864632,-0.798601}, {1.102361,1.368734}, {-0.272215,-0.247604}, {-1.023085,-0.986586}, {-0.065967,0.605997}, {0.063587,-0.976618}, {-0.267152,-0.116898}, {-0.461969,-0.203471}, {-0.573852,0.570464}, {-0.138348,0.534036}, {-0.090592,0.936618}, {0.850179,-0.537120}, {-0.433713,-0.556356}, {-0.537237,-0.713364}, {0.426253,-0.478599}, {1.133750,-0.964272}, {-1.331896,0.116871}, {0.191830,0.696149}, {-0.109898,-1.447008}, {0.959592,0.346543}, {0.261532,-0.822086}, {0.303775,-1.459434}, {0.530404,0.421720}, {-0.453037,-1.463699}, {0.123500,0.017147}, {0.172476,-0.507657}, {-0.160135,1.263925}, {0.030836,0.556500}, {-0.185416,-0.025333}, {0.637640,0.395256}, {0.089760,-0.864083}, {0.577483,1.581489}, {0.979522,1.296548}, {-0.497799,-0.045689}, {-0.047660,1.066061}, {0.048446,-1.060159}, {-0.968548,-0.221439}, {1.484060,0.378410}, {-0.770293,-0.087204}, {-0.764451,-0.554893}, {0.348932,-0.676770}, {-1.210537,0.339603}, {0.924898,-0.536966}, {-1.159727,-0.216140}, {-0.625226,-0.977963}, {0.640809,0.919168}, {-0.239144,0.785286}, {0.809998,0.679827}, {0.397941,-0.337279}, {1.158469,-0.284939}, {0.740868,-0.632110}, {0.246451,0.582746}, {1.169569,-0.447871}, {-0.206093,-0.436712}, {1.593053,-0.562783}, {-0.072116,-1.390822}, {0.534517,-0.038637}, {0.034689,0.141429}, {0.474386,0.514105}, {0.572791,-0.330251}, {-0.548599,-0.594569}, {-1.071301,-0.270923}, {0.486895,0.652847}, {-0.069770,1.249662}, {-0.040552,-0.687992}, {-0.284734,0.643650}, {-0.808577,0.013167}, {-0.452947,0.353593}, {-0.729562,-2.012804}, {1.237631,-1.264824}, {0.110039,1.404809}, {0.107938,-0.296577}, {0.386214,-0.709940}, {1.137573,0.606987}, {0.412215,-0.555525}, {-1.988232,-0.162112}, {0.848561,0.408090}, {-0.811612,0.394181}, {0.485756,-0.746334}, {0.049115,-0.087741}, {-1.022135,-0.921590}, {-0.633999,0.061617}, {-0.090648,0.618570}, {-1.247020,-0.001903}, {-0.421031,-0.238286}, {0.711286,-0.314523}, {-0.147505,-0.383916}, {-0.683990,0.445952}, {0.432133,-0.119312}, {-1.132072,-0.396738}, {0.135841,0.222292}, {-0.230532,0.331470}, {0.254731,-0.376331}, {-0.776682,0.039871}, {-1.169703,-0.331153}, {-0.873728,0.067719}, {-0.207084,-0.835310}, {0.037790,-0.362456}, {0.583451,1.129280}, {-0.558111,-0.573604}, {0.856679,-0.022411}, {0.164767,0.141428}, {-0.009111,-0.317562}, {1.150656,1.264776}, {-0.789474,0.292994}, {-0.466256,0.131396}, {-0.773386,0.095435}, {-0.310801,0.037979}, {0.426976,0.983285}, {0.477342,0.671231}, {0.453581,0.460922}, {-0.126415,0.223835}, {-0.197906,-0.189931}, {-0.526443,0.635295}, {-0.729339,-0.271754}, {-0.277572,-0.106432}, {0.605958,0.268731}, {0.697244,-0.324635}, {-0.601406,0.750119}, {2.020241,-0.455436}, {-0.545556,-1.777371}, {-0.106454,-0.323364}, {0.730151,-0.521349}, {-0.222232,-0.678729}, {-0.822648,0.759164}, {0.347482,0.318147}, {0.320443,1.047896}, {-0.007527,-0.099273}, {-0.469680,0.811059}, {-0.725923,0.045348}, {-0.845127,0.408992}, {-0.483176,-0.402357}, {-0.244242,-0.138255}, {0.777707,0.361076}, {-0.284361,-1.213446}, {-0.005269,1.151649}, {-0.132040,-0.605975}, {-0.614343,0.207020}, {0.172750,1.326225}, {-0.902838,0.195327}, {0.343014,-0.865008}, {0.125967,0.451258}, {0.332072,0.614969}, {-0.298182,0.490626}, {1.424204,-0.479491}, {-0.031385,0.164505}, {0.233636,-1.315612}, {-0.450889,0.377407}, {0.029363,0.410567}, {0.306058,0.200634}, {-1.349288,0.431649}, {0.358784,0.047745}, {-0.557686,1.348221}, {-0.061715,-0.056931}, {-0.363172,0.195052}, {-0.657930,-0.139592}, {-0.228460,0.043261}, {-0.400956,-0.445312}, {-0.518420,0.120859}, {-0.698407,-1.044712}, {1.235472,1.348407}, {0.487842,0.303364}, {-0.723742,0.780963}, {-0.593303,-0.225305}, {-0.534609,0.308384}, {0.517702,0.592656}, {0.954708,0.946876}, {0.138369,0.042618}, {-0.011117,0.156468}, {0.129045,-0.782424}, {0.544442,-0.335302}, {0.100454,0.021699}, {-0.414913,-0.364941}, {-1.446169,0.180437}, {-0.104807,-1.198166}, {-0.663552,0.253006}, {-0.873757,0.653705}, {0.913861,0.776582}, {0.408304,-0.209211}, {-0.292234,0.935191}, {0.612411,0.506772}, {0.052624,-0.170316}, {-0.316935,0.099714}, {-0.353097,0.013558}, {1.233948,0.295996}, {0.369796,0.587798}, {-0.240517,-0.082754}, {0.456761,1.042474}, {-0.213108,0.167637}, {0.399378,-1.139074}, {0.884318,-0.559808}, {1.445237,-0.362312}, {0.116480,1.022887}, {-1.064627,-0.325939}, {0.517946,-0.548647}, {0.415227,0.031714}, {0.100481,-0.138348}, {-0.809183,-0.296851}, {0.780624,1.262479}, {0.563065,-0.043795}, {0.912444,-0.494706}, {-0.734037,0.870375}, {-0.318819,1.118381}, {-0.000746,-0.287874}, {-1.164864,-0.526955}, {0.294943,0.563007}, {-0.310269,0.305960}, {-0.477327,-0.723869}, {1.444745,0.187725}, {1.871817,-0.263160}, {-0.194735,0.555531}, {-0.321051,-0.730174}, {-0.190988,-0.402861}, {-0.471553,-0.864754}, {0.858125,-1.345250}, {-0.616872,0.087958}, {1.283791,0.027641}, {0.256228,-1.305667}, {0.135487,-0.829405}, {-1.326564,0.237115}, {-0.150936,0.123060}, {0.525275,-1.201838}, {0.345162,-0.254455}, {-0.289832,-0.377094}, {-0.152667,-0.439359}, {-1.044104,-0.312180}, {0.123564,0.909003}, {0.092452,-0.627863}, {-1.077986,0.652712}, {0.546415,0.317801}, {-0.327865,0.791680}, {-0.742691,0.429484}, {1.359870,0.653960}, {0.618629,-0.810634}, {-1.486101,-0.628531}, {0.594045,-0.133495}, {-0.470586,0.135156}, {-0.143237,-0.465263}, {-1.088628,0.943733}, {0.198579,-0.639867}, {-0.063074,-0.021058}, {0.108028,0.446404}, {1.189162,0.613968}, {0.337471,-1.129207}, {-0.455311,0.326954}, {-0.570540,-1.907149}, {-0.314445,0.220247}, {-0.644406,0.871505}, {-0.516263,0.822251}, {-0.557629,-0.170696}, {0.722273,-0.131339}, {0.230421,0.790328}, {-0.104488,-1.716517}, {-1.241919,0.455016}, {-0.692486,1.120817}, {1.549314,-0.046370}, {-0.106043,0.644970}, {-0.074406,-0.804419}, {0.548174,0.128521}, {-0.595960,-0.462357}, {0.142829,-0.219578}, {-0.162097,-0.875243}, {0.686753,0.775003}, {0.873880,1.383881}, {-0.653841,0.636136}, {0.383632,-0.777116}, {-1.108266,0.038942}, {0.971520,0.211922}, {-0.268643,0.730017}, {0.855520,0.049969}, {0.302034,-0.524310}, {-0.852706,-0.537224}, {-0.804297,-0.114715}, {-1.478564,-0.084384}, {-0.408535,0.423840}, {-0.168721,-0.141810}, {0.077383,0.243237}, {-1.559434,1.191402}, {1.022154,-0.100324}, {0.323561,0.469589}, {-0.663531,0.640213}, {0.554019,1.763611}, {1.013954,-0.099589}, {-0.768361,0.429501}, {-1.056947,-0.854475}, {0.199817,-1.902227}, {-0.070703,-0.504816}, {-0.936270,0.009265}, {0.151126,-0.507320}, {-0.504326,0.276844}, {-0.314265,1.314549}, {0.326736,-0.579350}, {0.592561,-0.964175}, {-0.223907,-0.829707}, {-0.401792,-0.560375}, {0.302453,-0.641377}, {0.179660,0.273186}, {-0.093790,-1.403175}, {-0.547478,-0.365566}, {-1.082055,-0.079541}, {0.493591,0.675680}, {0.488427,0.562525}, {0.214921,0.219073}, {1.036597,-0.145378}, {-0.027255,-0.113060}, {0.673240,0.620677}, {0.723878,-0.899601}, {0.069137,-0.059731}, {0.241888,0.932147}, {0.990557,0.522072}, {0.333210,-0.429499}, {0.416918,0.495753}, {-0.659767,-0.994323}, {0.616175,0.547587}, {1.096390,0.648779}, {1.512614,1.140619}, {-0.038962,-1.035122}, {-1.083694,-0.279680}, {0.614096,0.432151}, {-0.347563,0.062973}, {1.386988,-0.035997}, {0.327510,-0.207868}, {-1.183518,-1.737384}, {-0.208895,1.406995}, {0.663338,-0.017747}, {-0.897272,-0.573788}, {0.942633,-0.547325}, {-0.099388,-0.254556}, {-0.201353,0.644556}, {0.866075,-0.228444}, {0.946155,-0.216844}, {-0.253558,0.114459}, {0.715896,0.743102}, {-0.359932,0.276616}, {-0.210247,-0.083149}, {0.802847,0.140860}, {0.408994,0.029881}, {0.377356,0.319152}, {-0.372690,-0.245271}, {0.676166,0.109436}, {0.724096,0.333436}, {0.221166,0.187551}, {-0.391584,0.738071}, {0.005351,0.778829}, {-0.358326,0.932486}, {0.490539,0.803589}, {-1.940728,-0.191677}, {0.344834,0.501654}, {0.800213,0.523732}, {0.582049,-0.075948}, {-0.161980,0.485703}, {-0.259158,-0.582118}, {1.062836,0.273222}, {-0.778178,0.190672}, {0.714527,-1.538556}, {-0.396795,0.449148}, {-0.781750,0.953574}, {-0.338389,-0.501176}, {-0.641856,-0.054484}, {0.563696,-0.904985}, {-0.099391,1.184931}, {-0.112808,0.108574}, {0.646080,0.427004}, {0.212517,0.155965}, {0.535560,-0.571720}, {0.553376,-0.294148}, {-1.607834,-0.184165}, {-1.547767,0.680574}, {0.781165,0.154537}, {0.560969,0.631483}, {0.495580,1.820957}, {0.007403,-0.213880}, {-0.133441,0.263800}, {-0.539947,-1.040542}, {0.451911,-0.153928}, {0.637194,0.419776}, {1.273621,1.299122}, {-0.212328,0.126958}, {-0.797461,1.644603}, {-0.122874,1.002433}, {0.531739,1.435631}, {-0.292445,0.088739}, {0.116979,0.506073}, {0.300921,-0.773498}, {-0.001333,-0.556370}, {-0.895409,0.437721}, {0.917279,0.508782}, {-0.491002,0.775053}, {0.198360,-0.494544}, {-0.466188,0.389353}, {1.026724,0.378360}, {0.554313,0.153011}, {2.109013,0.702959}, {-1.076990,-0.126220}, {-0.628257,-0.250837}, {-0.360120,-0.713433}, {0.323767,-0.526853}, {0.618992,0.232543}, {0.680284,-0.239604}, {-0.469444,0.121707}, {-0.121518,-0.113712}, {0.429205,-0.768057}, {0.120817,-0.738954}, {0.246917,-0.025595}, {0.223685,0.828870}, {0.558682,0.833145}, {-0.226176,-1.141426}, {0.592138,0.661966}, {0.057983,-0.123112}, {-0.277232,0.942800}, {0.380806,-0.215897}, {-1.027768,-0.692785}, {1.629491,-1.099912}, {-0.047831,-1.555090}, {-0.577377,-0.165198}, {0.708597,-0.250402}, {-1.063587,-0.338164}, {0.505373,0.385189}, {0.072781,-0.658487}, {0.542617,-0.198652}, {1.367844,0.323822}, {-0.727703,0.962762}, {-0.393308,0.873045}, {-0.950481,0.223532}, {1.018389,0.884161}, {-0.042519,0.854602}, {-1.358413,-0.098257}, {0.245351,-0.975102}, {-0.055406,-1.219287}, {1.325559,-0.297813}, {-0.072107,-0.600966}, {-0.045452,-0.636110}, {1.196032,-0.569957}, {0.455332,-1.319878}, {-0.547178,-0.392150}, {-1.296887,-0.758016}, {0.862281,0.903182}, {-0.538526,-0.948723}, {0.065158,0.398744}, {-0.565977,-0.745461}, {-0.050462,0.869712}, {0.205620,-0.219247}, {0.093927,-0.270377}, {1.113685,-1.069443}, {-0.718055,0.556379}, {0.050929,0.307347}, {-1.222501,0.207457}, {0.951141,-1.438969}, {-0.003803,-0.125003}, {-1.267607,0.411439}, {-0.857943,-1.588554}, {0.596604,-0.286897}, {-0.872539,-0.101087}, {-0.658556,0.189207}, {-0.387868,-0.070786}, {-0.462842,0.344476}, {1.085369,-0.860640}, {1.581858,1.043663}, {-0.972570,0.171239}, {-0.075607,-0.486479}, {1.421958,-1.399106}, {-0.589684,0.410053}, {0.377491,0.034375}, {0.428788,0.365635}, {-0.528193,-1.238089}, {0.262891,0.578832}, {0.066590,0.188433}, {-0.745635,-0.018847}, {-0.116912,-0.514034}, {0.597006,0.677949}, {0.107517,-0.406065}, {1.015423,0.001044}, {-0.197476,0.574557}, {-0.248416,-0.193462}, {0.473342,-1.017108}, {0.137976,1.024174}, {-0.210346,0.751566}, {-1.015057,-0.473646}, {-0.595567,0.801209}, {0.796281,0.545814}, {-0.856927,-0.309617}, {0.591179,1.361440}, {0.157283,-0.776932}, {0.393443,1.025215}, {0.537778,0.697904}, {2.219707,0.499801}, {1.273309,-0.828332}, {-0.982928,0.949413}, {-1.153902,0.670467}, {-0.156032,-0.994523}, {0.821935,-0.378448}, {0.260809,0.087339}, {0.216860,-0.601138}, {-0.882410,-0.227433}, {-0.440866,-0.094405}, {-0.074585,0.039917}, {-0.737009,1.217088}, {-0.268090,0.493822}, {-0.066510,-0.570724}, {-0.203579,0.757423}, {0.062591,-0.452128}, {0.507822,1.130258}, {-1.135255,-0.393007}, {0.740321,0.411285}, {-0.402801,-0.390182}, {0.794407,0.970310}, {0.566977,0.605520}, {-0.537209,0.639380}, {-0.426697,0.138911}, {-0.087417,0.452920}, {-1.152861,-0.321958}, {-0.284884,0.639191}, {0.145500,0.907847}, {0.982621,0.367939}, {-0.195191,1.137989}, {0.211046,-1.239543}, {0.562427,-0.534005}, {0.830928,-0.588515}, {0.651664,-0.531934}, {-0.056867,0.384091}, {-0.589129,1.364900}, {-0.141771,-0.114847}, {-0.411185,0.073030}, {-0.265763,0.272064}, {0.882316,0.793624}, {-0.160386,0.002500}, {-0.235607,-0.567823}, {-1.210585,0.206751}, {0.817503,0.330202}, {-0.162811,-1.417884}, {0.592217,0.010516}, {1.662363,-0.402841}, {-0.446189,0.501595}, {-0.729150,-0.238869}, {-0.452834,0.078506}, {-1.518996,-0.427439}, {-0.266874,0.101362}, {0.531735,-0.547254}, {-0.965587,0.011378}, {-0.298296,-0.096297}, {-0.149287,0.531172}, {0.448779,-0.448307}, {1.047356,-0.315960}, {1.247794,0.506753}, {0.590511,0.472349}, {0.121279,-0.433674}, {-0.114362,0.767422}, {1.581429,0.955828}, {1.476868,-0.288333}, {-0.556583,-1.164155}, {-0.059431,-1.160055}, {0.634128,1.002689}, {-0.575933,0.033633}, {1.081099,1.385344}, {-1.422736,0.075505}, {1.046288,0.401673}, {0.435929,-0.472107}, {-0.206122,0.348224}, {-0.412777,-0.109916}, {0.121895,-0.581462}, {-0.133105,0.264961}, {-0.850482,-0.072401}, {-0.577871,0.376519}, {-1.388756,-0.023759}, {0.779804,-0.186311}, {-0.620828,-0.118957}, {0.932679,0.434943}, {0.633370,0.592508}, {1.134259,0.028486}, {0.799487,0.223794}, {-0.347314,-0.170474}, {0.539087,-0.221093}, {-0.820533,0.307851}, {-0.717160,0.017505}, {0.542587,-1.162436}, {-0.624600,0.801725}, {1.352536,-0.143812}, {-0.796545,-0.900611}, {-0.356700,-0.350123}, {0.038018,0.541666}, {0.289386,0.401983}, {-0.137301,1.430812}, {1.503273,0.402538}, {-0.492407,-0.424006}, {0.932498,-0.226829}, {0.093021,0.081391}, {-0.093971,-0.658882}, {-0.284706,-0.026044}, {-0.226983,0.526229}, {0.029324,0.041975}, {0.873120,0.151935}, {-0.393476,-0.848702}, {1.838695,-0.084288}, {-0.074042,1.079671}, {0.039939,-1.111425}, {0.669271,2.216002}, {-0.589368,-0.446797}, {-0.465512,0.085837}, {0.651261,0.403519}, {0.218905,-0.766309}, {-0.128001,0.073902}, {-0.272830,-0.432066}, {0.519152,-0.589446}, {-0.311524,0.233018}, {-0.545692,-0.664651}, {-1.380502,0.757145}, {-0.000180,-0.339163}, {0.446891,0.438011}, {0.454009,-0.094370}, {-1.035878,0.187205}, {-0.896572,0.237276}, {0.382598,0.442667}, {-2.504186,-0.537285}, {0.099216,0.970556}, {-0.381212,-0.168048}, {0.554364,-0.100494}, {-0.269872,-1.498621}, {-0.494833,-0.343613}, {0.449499,0.124923}, {0.027846,-0.151862}, {-0.115574,-0.391918}, {0.431950,-0.632974}, {-0.223079,0.433815}, {-0.360470,0.230335}, {-0.351935,-0.652477}, {-0.699202,-0.709860}, {0.165994,1.156386}, {0.946215,-0.422976}, {-0.694515,0.460667}, {0.163665,-0.096615}, {-0.011231,0.132682}, {1.105695,0.245389}, {1.070530,0.039658}, {-0.393505,-0.942814}, {0.695178,-0.279964}, {0.373143,-0.153469}, {0.068343,-0.246175}, {0.255959,0.802372}, {-0.561208,0.096934}, {-0.520615,-0.044160}, {0.829240,-0.282919}, {0.617384,-0.417490}, {1.900495,1.234182}, {-1.341464,1.226474}, {-0.168441,-0.813023}, {1.015085,-0.464638}, {0.369413,-0.066272}, {-0.239524,0.683590}, {0.357866,-0.112409}, {1.009900,1.254497}, {0.068589,0.356761}, {-0.438932,-0.304929}, {-0.012575,-0.341361}, {0.299906,-0.036658}, {0.404167,-0.128515}, {0.366136,-1.307424}, {-0.598692,-1.008058}, {0.110613,-0.159653}, {1.201734,0.376235}, {-0.704852,0.106275}, {0.007635,0.082348}, {-0.767279,0.145814}, {-2.046550,1.123715}, {-0.006254,-0.772897}, {1.860613,0.657821}, {-1.010233,0.378664}, {0.049775,0.410985}, {-1.426361,0.659661}, {0.362923,0.949449}, {0.169229,-0.433502}, {1.588609,-1.429715}, {1.714049,1.762603}, {0.280914,0.315189}, {-0.366100,0.687960}, {-0.017839,0.001341}, {-0.011156,-0.946371}, {0.605485,-0.901263}, {1.083968,-1.642610}, {0.689493,1.137977}, {-1.346342,-1.228991}, {0.441885,0.428678}, {-0.300121,-0.242661}, {0.151982,0.516324}, {1.165886,0.321775}, {-0.428105,0.187019}, {-1.004687,0.294742}, {0.338772,1.213508}, {0.988679,-0.037867}, {-0.224368,0.155973}, {0.141559,0.186316}, {-0.644438,0.395989}, {-0.199866,-0.523264}, {-0.107300,-0.461294}, {0.358698,-0.649953}, {-0.634770,-0.312915}, {-0.564734,-0.715844}, {0.255026,-1.108371}, {-0.086293,0.312637}, {0.814938,-0.283814}, {1.229763,0.128464}, {0.227974,-0.418647}, {-0.120043,-0.684067}, {0.077666,-0.085758}, {-0.050780,-0.670323}, {0.136626,0.813804}, {0.594956,-0.407936}, {0.955985,-0.191253}, {0.489552,-1.486926}, {0.577579,-0.486322}, {0.562717,-0.751664}, {0.002459,0.263571}, {0.288905,-0.878478}, {-0.464409,-0.538675}, {0.286060,0.412672}, {-0.181148,0.381556}, {0.151361,0.358454}, {-0.078488,0.251609}, {0.773414,-0.739208}, {0.691577,-0.694201}, {-1.293390,-0.509235}, {1.146156,-0.653543}, {-0.242636,-0.801005}, {0.353931,-0.135868}, {-0.243086,-0.439001}, {0.354013,-0.233653}, {-0.277764,-0.677296}, {0.473043,0.038362}, {-0.176500,0.264359}, {-0.625575,0.366112}, {0.202867,0.941900}, {-0.326032,0.671700}, {-1.046037,-0.687290}, {-0.868275,-0.007581}, {-0.570060,0.286439}, {0.713059,0.210833}, {-1.294165,-0.028527}, {0.071361,0.847772}, {0.508287,0.046283}, {0.058998,-0.528609}, {-0.568115,1.051018}, {0.922293,-0.377449}, {0.202094,0.031911}, {-0.114554,-0.415825}, {-0.776175,-0.804922}, {-0.057279,-0.584848}, {0.412935,0.618731}, {-1.092835,0.486985}, {-0.678552,0.788882}, {-0.968375,0.329940}, {-0.714789,-0.149820}, {-0.384156,0.175588}, {0.730323,-0.459545}, {-0.374056,-0.030715}, {-0.530865,1.744913}, {0.317942,0.712183}, {0.514842,-1.521713}, {-1.982352,0.917451}, {0.533069,-0.184669}, {-0.047735,-0.546721}, {-0.084978,0.164704}, {-0.713723,0.221991}, {0.082505,-0.468486}, {-0.100827,0.472135}, {-0.666553,0.018597}, {0.287429,-0.329748}, {-1.436239,1.330035}, {0.290806,-0.769263}, {-0.048715,0.566687}, {-0.968640,-0.211849}, {0.088714,-1.498366}, {-0.081821,-1.526247}, {-0.569582,0.589569}, {-0.581721,-0.848599}, {-0.006144,-0.254501}, {-0.374622,1.266927}, {-0.426722,0.039232}, {-0.613330,0.408639}, {0.242699,-0.420023}, {-0.511846,-0.344112}, {0.055041,-0.785869}, {0.817784,0.414807}, {0.327502,-0.140078}, {-0.177410,0.254219}, {-0.697158,1.041201}, {0.443662,0.437433}, {0.255286,1.735288}, {-0.986974,0.995444}, {-0.170297,0.934111}, {0.016505,-0.449689}, {0.074375,0.925671}, {-0.264038,-0.993178}, {0.394263,0.428509}, {0.275369,-0.148148}, {-0.026461,0.786728}, {0.219694,-0.715724}, {-0.198181,-0.337653}, {-0.046106,1.077969}, {-0.427274,-1.648299}, {0.916379,0.354817}, {-0.495159,0.025080}, {0.900671,-0.716446}, {-0.255983,0.933249}, {0.849832,-0.023818}, {0.848812,1.222279}, {0.762640,-0.407851}, {-1.113535,-0.693755}, {0.853063,-0.222685}, {0.182071,-0.562988}, {0.452813,-0.071797}, {-1.401647,0.298240}, {-1.096633,-0.276216}, {-0.470637,-1.218317}, {0.061808,0.397691}, {0.600333,-0.767871}, {1.008250,0.000708}, {-0.647290,0.306240}, {-0.398649,0.249797}, {-1.305586,-0.172789}, {0.385940,-1.320990}, {0.758806,0.901173}, {-0.002028,-0.687838}, {-0.619773,-0.519246}, {0.850480,-0.003780}, {-0.327611,1.357023}, {0.407292,0.562773}, {-0.053213,-0.769666}, {1.106032,1.282982}, {-0.673619,1.289760}, {0.476732,-0.611785}, {0.152022,-1.680944}, {-0.649479,-0.291411}, {-0.012972,-0.162121}, {-0.691724,0.407729}, {0.236190,-1.267413}, {0.533790,0.419325}, {-0.018652,0.266647}, {0.229770,0.165313}, {-0.558823,-0.887105}, {-0.764080,0.628785}, {0.355465,0.190894}, {-1.031620,0.424156}, {0.210209,-0.511032}, {2.231847,-1.271046}, {0.495758,-0.561719}, {-0.007179,-0.289322}, {0.208132,1.637787}, {-0.761436,-0.158279}, {-1.584498,-0.324741}, {0.085113,0.686596}, {-0.430017,0.361140}, {0.205829,-0.606992}, {0.307451,0.417509}, {-0.305665,0.631657}, {-0.401597,-0.758367}, {-0.231825,-0.733147}, {0.413582,0.999199}, {-0.017343,-0.416519}, {-0.165102,-1.228027}, {1.079916,0.834003}, {-0.032758,1.090964}, {0.682886,0.223947}, {-0.125567,0.406849}, {-0.291070,0.319598}, {-0.433261,1.411476}, {-0.521844,0.077749}, {-1.622536,0.199245}, {-1.152493,-1.236599}, {0.010262,-1.143242}, {0.590426,0.129957}, {0.710855,-0.106919}, {0.453857,-0.988619}, {-0.904005,-0.503640}, {0.589253,-0.486321}, {-0.430470,-0.027916}, {-0.820770,-0.751695}, {-0.282278,-0.038594}, {0.864998,0.097233}, {0.111612,-0.288777}, {-0.028031,-0.269425}, {0.431845,0.101275}, {-0.339818,-0.152321}, {0.921835,0.289830}, {-0.671086,-0.501673}, {0.247329,0.183999}, {0.567859,-0.307398}, {0.116284,0.435589}, {0.203286,0.041931}, {0.492580,-1.168513}, {0.661239,0.504958}, {0.626179,0.315147}, {1.241463,-0.126592}, {-0.242149,0.706826}, {0.022340,-1.150953}, {-0.121594,0.286725}, {-0.759044,0.336943}, {1.203657,-0.225805}, {-0.307556,-0.613049}, {0.760114,-0.923164}, {-1.293027,0.195280}, {1.015077,0.098072}, {-2.074471,-0.189545}, {0.841240,0.955406}, {-0.178337,0.721980}, {1.160489,0.003816}, {-0.384566,2.620896}, {0.704705,0.063137}, {0.548336,0.066192}, {0.190808,-0.012015}, {0.553649,0.329412}, {-0.320558,0.795527}, {-0.615417,0.909293}, {-1.246752,-0.698925}, {0.549175,0.281020}, {-0.778784,-1.430814}, {0.806743,0.036949}, {0.477405,-0.736326}, {-0.702940,-0.929653}, {0.151960,0.582314}, {0.865540,-0.423882}, {0.491950,0.963153}, {0.330508,0.053934}, {0.464252,0.827913}, {0.192361,-0.235847}, {0.816402,-0.115001}, {0.092131,-0.660784}, {0.174107,0.285417}, {-0.755223,0.514173}, {0.364767,-0.792043}, {-0.562086,-0.217651}, {0.353453,0.348443}, {0.585457,1.370006}, {0.984197,-0.178664}, {-0.366706,-0.786270}, {1.414700,-0.134770}, {0.941644,0.284337}, {-0.455753,1.036933}, {1.382049,0.541054}, {0.575756,-0.046144}, {-0.051649,0.048517}, {-1.119540,0.541357}, {0.273349,1.070178}, {-0.456227,-0.374803}, {-0.426392,-0.882598}, {-0.085007,1.118462}, {-0.265127,0.515600}, {0.769586,-0.251247}, {-0.458924,1.727463}, {0.661363,0.210307}, {0.953185,0.310892}, {0.165745,-0.249229}, {0.003256,-1.461112}, {-1.295068,0.895661}, {0.505398,-0.514159}, {-0.794349,-0.483016}, {-0.156867,-1.192899}, {0.540678,0.515770}, {-0.124202,-0.030591}, {-0.391160,1.843647}, {0.495854,0.368012}, {0.973258,-0.316386}, {-0.194668,-0.132074}, {-0.155372,-0.897061}, {0.231087,-0.105997}, {-0.153340,-0.294455}, {0.796845,0.174109}, {0.603647,0.542966}, {0.254563,0.674866}, {-0.956172,-0.048158}, {-0.530818,-0.801843}, {-1.026113,-0.351077}, {0.523780,0.415202}, {-0.948912,-1.572310}, {0.410020,0.659503}, {-0.701486,-0.147504}, {2.688922,0.358403}, {1.560465,-0.433628}, {-0.496547,-0.211502}, {-0.124965,-0.391226}, {-0.533224,0.503166}, {-0.321520,-0.572785}, {1.258924,0.163907}, {0.151190,-0.084062}, {0.226057,-0.056905}, {0.587172,-0.471113}, {-0.695980,-0.163141}, {-1.237538,-0.208643}, {0.998500,0.955563}, {-0.179606,0.559009}, {0.137764,-0.393149}, {0.502345,-0.054011}, {-0.904479,0.141850}, {-0.350247,-0.211378}, {0.404017,-0.839708}, {1.263962,0.630874}, {-0.135289,-2.442988}, {0.442130,-0.830587}, {0.122658,0.023062}, {0.883724,0.665128}, {-0.178230,0.306886}, {-0.468211,0.071836}, {0.246586,0.267636}, {-0.557471,-0.275384}, {0.580532,-0.339634}, {0.229230,0.098588}, {-0.037226,0.048941}, {0.429143,-0.409864}, {-0.994136,0.254552}, {1.166575,0.976509}, {0.851270,-0.625880}, {-0.345877,0.458113}, {1.414551,-0.046154}, {-0.380014,0.085284}, {-0.464670,0.922754}, {0.372413,-0.292998}, {0.047303,-0.678625}, {0.754110,-0.077518}, {-0.818388,-0.489265}, {0.374833,0.280108}, {0.074119,-1.470670}, {-0.635899,-0.637640}, {0.921722,0.985314}, {-1.420950,0.022021}, {0.627703,0.569002}, {0.340334,0.147938}, {0.400352,0.190057}, {-1.088817,0.050628}, {0.137021,0.484178}, {0.078217,0.350442}, {0.294682,0.070688}, {-0.085588,0.602284}, {0.673964,-0.173427}, {-0.235137,-0.583674}, {-0.707102,0.052630}, {0.474050,-1.693641}, {1.003813,0.543324}, {0.628591,-0.050070}, {-0.249527,0.767586}, {-1.879195,-0.452537}, {0.396132,-0.415229}, {-0.028199,0.551825}, {0.385329,-0.220834}, {1.324679,-0.312798}, {-0.642863,-0.825135}, {-0.004710,-0.058157}, {-0.847162,0.856134}, {-0.740614,-0.863084}, {-1.158400,0.973958}, {-1.671737,-0.563632}, {-0.650321,-0.235563}, {0.598594,-0.545525}, {0.526469,0.149947}, {-0.237268,0.583359}, {0.423311,-0.217139}, {0.379071,1.034865}, {-1.758812,0.686033}, {-0.185959,0.643266}, {0.032531,0.661944}, {-0.298139,-0.817098}, {-1.599706,-0.313605}, {0.426141,-0.444764}, {-1.006136,-0.819221}, {-0.706618,-0.317805}, {0.141126,1.084697}, {0.623824,0.023016}, {-1.046610,0.015300}, {0.745230,0.751430}, {-1.319946,-0.564289}, {-0.604642,0.954636}, {-0.483640,1.126604}, {-0.757284,-0.011440}, {-0.387955,-0.304309}, {0.153010,2.368292}, {0.914144,-1.029997}, {-0.299668,-0.611878}, {0.525482,-0.659581}, {0.420515,0.491139}, {-0.366100,0.268333}, {0.341777,-1.103398}, {-0.323677,0.907073}, {-1.121212,0.392582}, {0.633364,0.164803}, {0.338245,-0.443073}, {-0.135408,-0.702552}, {-1.008789,-0.011260}, {-0.781123,-0.685846}, {0.776429,-0.662386}, {1.057167,0.352887}, {-0.597591,0.229540}, {0.084232,1.119583}, {-0.285929,0.236433}, {0.186841,0.460782}, {-0.172005,-0.130474}, {0.310647,0.559606}, {-0.119430,0.878673}, {-1.612776,0.477573}, {-0.154730,-0.506361}, {-0.083025,-1.341480}, {-0.590808,-0.873065}, {0.237921,0.451140}, {-1.029581,-0.416044}, {-0.719467,-1.896297}, {-0.051499,0.067354}, {0.889375,-0.684079}, {-0.718765,0.727295}, {-0.536690,-0.605252}, {-0.739059,-0.585248}, {0.344357,0.106056}, {-0.829777,0.728094}, {-0.283713,0.261390}, {0.152151,0.078054}, {0.567021,0.126294}, {0.291900,0.562743}, {1.059085,0.084687}, {-0.551331,-1.234712}, {-0.588794,-1.091670}, {-1.691073,-0.118561}, {1.420551,-1.631329}, {0.205528,-0.641568}, {0.162794,0.566978}, {0.766135,-0.410851}, {-0.798597,0.988584}, {-0.718769,-0.992680}, {0.344092,0.608391}, {0.292893,0.732026}, {0.056027,-0.138066}, {0.429755,0.079029}, {0.187873,0.660457}, {-0.517005,0.344139}, {-0.147412,-0.311869}, {-0.426811,-0.332282}, {1.157440,-0.638019}, {0.183905,-0.237103}, {-0.779848,0.107454}, {-0.451815,-0.023654}, {-0.631830,0.052062}, {-0.010302,0.265023}, {-0.740212,0.667259}, {-0.327306,-0.562585}, {-0.036460,-0.926800}, {-0.695698,0.585635}, {0.506878,0.691465}, {0.758726,0.102093}, {0.084728,0.503180}, {1.401625,0.519015}, {-0.631581,-0.606695}, {0.803128,-0.862507}, {0.940896,0.866730}, {0.194009,1.652032}, {0.144810,-0.487873}, {-0.461080,-0.403805}, {0.002382,0.136163}, {0.075381,-0.322951}, {-0.966995,0.269808}, {-0.030479,-0.126750}, {-0.149463,0.291122}, {1.059634,-0.087343}, {-0.579570,0.637704}, {-0.747178,-0.468939}, {0.647099,-0.724797}, {-0.223191,0.924383}, {-0.337221,-0.601146}, {-0.515588,0.209382}, {-0.439052,-0.285641}, {-0.461382,0.405431}, {-0.342314,-0.077113}, {-0.631056,-0.415190}, {0.238351,-0.386171}, {-0.862323,0.642213}, {0.023490,1.420643}, {-0.875054,-0.335857}, {-0.501911,0.198525}, {-0.610229,-0.615875}, {-0.798574,0.715166}, {0.822130,-1.270475}, {-1.244082,0.455988}, {1.012773,-0.052447}, {1.371291,0.428342}, {0.352000,-0.742200}, {-0.239479,-0.204546}, {-0.894340,-0.160308}, {0.011754,-0.047223}, {-0.665009,-1.202901}, {-0.774045,-1.477797}, {0.298235,0.642437}, {0.281567,-0.363596}, {-0.359115,0.641628}, {0.457527,0.395590}, {-0.613016,0.686037}, {0.366476,-1.001394}, {-1.256980,-0.267237}, {-0.929750,0.866740}, {0.450983,-0.179572}, {-0.783167,0.315364}, {0.373729,-0.263585}, {-0.829264,1.092197}, {-0.294844,-1.307715}, {-0.382714,0.271065}, {0.432171,1.321070}, {1.193662,-0.601561}, {0.441481,1.078067}, {0.816584,0.272961}, {0.550523,-0.150661}, {0.184214,-0.219220}, {-0.009063,-0.442284}, {1.646675,-0.741609}, {1.016200,0.837222}, {-0.793906,-0.222885}, {0.919271,0.064883}, {-1.356202,0.423254}, {0.049124,-0.191414}, {-0.195965,0.184440}, {1.121060,1.056448}, {-1.033376,-0.124441}, {0.347735,1.195392}, {0.503386,0.384467}, {0.000622,0.057254}, {0.170387,-0.558950}, {0.128132,0.079457}, {1.004037,-0.526779}, {0.385914,0.909700}, {1.335021,-1.678956}, {-0.288577,-0.895513}, {0.565198,-0.882130}, {0.225851,0.962253}, {0.879317,-0.347095}, {0.176626,0.994786}, {-0.866639,-0.349720}, {-0.671101,-0.515104}, {-0.485501,0.483706}, {-0.618060,0.335038}, {0.041503,-0.588110}, {0.111759,0.143271}, {0.462091,-1.215689}, {-0.745533,0.359722}, {-0.258587,-0.704901}, {0.274778,0.923238}, {-0.004584,-0.433904}, {-0.110584,0.522650}, {0.310410,-0.005530}, {-0.937176,-1.562305}, {-0.827198,0.289808}, {-0.698794,-2.184667}, {-0.330698,-0.129384}, {1.282239,0.020580}, {0.367543,0.233161}, {0.065772,0.245385}, {-1.368919,-0.232512}, {-0.022110,-0.434683}, {0.989342,2.850177}, {0.301916,-0.504838}, {-0.199269,0.274472}, {0.050557,-0.762571}, {-0.439144,-1.131543}, {-1.080251,-0.382884}, {0.966876,-2.108684}, {-0.843520,-0.663706}, {0.898827,0.695593}, {1.141696,1.743007}, {-1.209097,0.920291}, {-0.133004,-0.591750}, {0.230189,-0.024491}, {0.267833,-0.097969}, {0.945771,-0.620059}, {-1.927322,0.029121}, {0.624278,-1.539738}, {0.038578,0.956436}, {-0.340126,0.630304}, {0.615450,0.090583}, {0.546216,-0.444248}, {1.103206,-0.220818}, {0.249552,-1.338686}, {0.137988,-0.524542}, {0.535324,-0.053403}, {-0.312144,0.754749}, {-0.305128,-0.570806}, {-0.270710,-0.431734}, {1.075527,-0.517887}, {0.925849,-0.402164}, {0.780606,-0.094631}, {0.304430,-0.321345}, {-2.161699,0.828282}, {-0.074158,-0.677161}, {-0.063345,-1.326582}, {-0.309826,0.355096}, {-0.276573,-0.413940}, {0.647672,0.302474}, {-0.232098,-1.147781}, {0.120684,-1.621992}, {0.955412,0.475249}, {-1.220155,-0.114060}, {1.336061,0.110965}, {-0.643678,-0.340022}, {-0.275077,-0.365716}, {0.534379,-0.975696}, {-1.015498,-0.567058}, {-0.064751,-0.046544}, {1.134877,-0.470992}, {-1.008269,0.759255}, {-0.144860,0.949311}, {-0.732892,1.047155}, {-1.535131,-0.961362}, {-0.269558,0.444843}, {0.059658,-0.187720}, {0.035190,-0.221091}, {-0.281704,-0.358197}, {1.022722,0.075790}, {-1.083448,-0.575743}, {-1.302319,0.027091}, {0.650458,1.349900}, {-1.899117,1.012783}, {0.181135,0.688259}, {-0.202816,0.372898}, {0.022705,1.006927}, {0.407585,-0.837289}, {0.002035,0.352033}, {-0.356021,0.346572}, {-0.617595,0.786143}, {0.239147,-0.279550}, {-0.088149,0.102956}, {-0.145992,0.070007}, {0.061313,-0.731353}, {-0.584911,-0.334126}, {-1.203326,0.593685}, {-0.269043,-0.369218}, {0.521335,-0.180848}, {0.144528,0.438304}, {0.735844,-0.087415}, {0.843519,0.404185}, {0.253477,0.233027}, {0.286579,-0.892798}, {0.017010,1.496329}, {-0.282048,-0.432474}, {-0.831781,-0.766073}, {-0.339801,0.157388}, {0.117625,-0.661367}, {-0.133374,-0.349166}, {-0.700496,-0.598886}, {1.062019,-0.225486}, {-0.844149,1.129804}, {0.879032,0.843744}, {-0.329666,0.330986}, {0.186070,-0.855283}, {-0.324321,-1.583881}, {1.541431,-0.622636}, {0.819195,-0.182278}, {0.449811,-0.132524}, {-0.888292,-1.515782}, {-1.001516,-0.830254}, {0.250502,-0.344122}, {-0.187613,1.197694}, {-0.529563,1.498822}, {-0.076462,-0.133383}, {0.650433,0.946105}, {-0.483935,0.181802}, {-0.723391,-0.925543}, {-0.431870,-0.262836}, {-0.422439,0.651529}, {-0.782266,0.681568}, {0.562754,-0.374426}, {0.519622,0.043415}, {-0.801116,1.075381}, {-0.799244,-1.077313}, {0.540276,1.027038}, {-0.894727,-0.874882}, {-0.749377,1.018981}, {0.184097,-0.111914}, {0.042289,-0.830370}, {1.791222,-0.588920}, {-0.047891,0.031348}, {0.043701,-0.440535}, {-0.840151,-0.568261}, {0.323255,0.787932}, {1.107241,0.054776}, {0.060801,-0.856247}, {-0.813509,0.705567}, {-0.791245,1.459674}, {-0.014035,-0.216140}, {0.387915,0.037240}, {0.642452,-0.129442}, {-1.843821,-0.114364}, {-0.035832,0.415178}, {0.767540,0.263665}, {-0.652285,-0.081054}, {-1.285872,0.969226}, {0.618911,0.255848}, {-0.807479,0.457430}, {1.064158,0.201941}, {0.880563,0.083746}, {-0.305545,1.351159}, {0.904389,-0.245280}, {-0.217445,0.025212}, {-0.836006,-0.776473}, {0.738829,1.044716}, {0.284688,-0.270552}, {1.085086,-0.533687}, {0.671634,1.461351}, {0.644988,-0.881924}, {-0.894529,0.426442}, {0.562243,0.029641}, {0.404564,0.410895}, {0.425106,-0.487737}, {-0.640461,-0.176507}, {-0.113150,-0.170049}, {0.212635,-0.218543}, {0.269008,1.255394}, {0.432785,0.488759}, {0.513129,0.005448}, {0.099545,0.578849}, {0.086904,-0.186066}, {-1.555150,0.851275}, {-0.032900,0.503340}, {1.149826,0.331512}, {0.073811,0.159585}, {-0.223626,0.427643}, {1.261585,0.418598}, {0.601685,-0.525800}, {-0.486987,-0.199185}, {-0.059233,0.227470}, {0.226861,0.459247}, {-0.341422,-1.927231}, {-0.171239,0.113076}, {0.078549,1.096510}, {-0.338355,-1.369953}, {0.159905,-0.691937}, {-0.307114,0.783536}, {-0.566867,0.107976}, {0.511947,-0.433910}, {0.691441,-0.214146}, {-0.603745,0.410150}, {0.628406,1.315388}, {0.785402,-0.016113}, {0.897580,1.142371}, {-0.523238,0.503762}, {-1.709664,-0.720023}, {0.458547,-0.008885}, {-0.334689,-0.277679}, {0.489018,-0.845080}, {0.523348,0.669807}, {-0.078580,0.679453}, {0.434669,1.223368}, {-0.046575,1.365787}, {-0.280968,-0.687172}, {-1.099810,0.666500}, {-0.860152,-0.227991}, {-0.330220,0.063645}, {-0.469986,-0.845073}, {-0.674068,1.048877}, {0.455515,0.818142}, {0.849858,-0.564687}, {0.059095,-0.035666}, {-0.223894,0.001953}, {-0.067447,-1.792125}, {1.605312,0.096682}, {-1.475052,-0.104396}, {-0.360386,-0.579824}, {0.955123,1.157321}, {-1.251963,0.038931}, {0.370436,-0.992312}, {1.371997,-0.487094}, {0.015502,-0.447989}, {-0.022840,-0.149928}, {-0.664625,0.831535}, {0.757109,0.066880}, {-0.632931,-0.921457}, {-0.231963,-0.193233}, {0.777090,0.166369}, {0.609395,-0.027552}, {0.139106,0.541898}, {0.942118,0.587904}, {0.251157,-0.133831}, {0.487019,0.189802}, {0.457665,0.362136}, {-0.424465,-1.249760}, {0.581103,-0.376516}, {0.510419,-0.590129}, {1.037473,0.371550}, {-0.466737,-1.004333}, {-0.011938,0.537880}, {0.547161,1.035422}, {0.606423,-0.516887}, {0.056961,1.039645}, {0.477078,-0.559180}, {-0.254626,-1.547132}, {-1.133833,0.334869}, {0.822161,0.621644}, {-0.062360,-1.517223}, {-0.703293,-0.420242}, {0.317995,-0.825593}, {0.736898,-0.336708}, {0.771707,-0.083937}, {-0.213908,0.357054}, {1.824059,0.566277}, {-0.196467,1.192675}, {0.798056,0.142119}, {-1.061991,0.018563}, {-0.560025,0.370005}, {0.454753,-0.180904}, {-0.998511,0.325013}, {-0.821580,-0.926141}, {0.234012,-1.400391}, {-0.674742,-0.704986}, {-0.291769,1.030446}, {-0.034057,0.722172}, {0.696109,-0.239704}, {0.209895,-1.576507}, {-0.157850,0.127201}, {0.466905,0.165965}, {0.723092,-0.550305}, {0.061567,0.078169}, {-0.065939,0.569606}, {-0.133807,0.770113}, {0.393001,0.504942}, {0.938111,-0.161913}, {-0.597112,0.176459}, {-0.258463,0.179758}, {1.377765,-0.886022}, {0.438264,0.736861}, {-1.525573,0.999277}, {-0.620013,0.193526}, {0.575873,-1.214428}, {-0.126903,0.386866}, {0.530483,0.213737}, {0.088473,-0.115534}, {-0.212839,0.385450}, {-1.321082,0.296746}, {0.250801,0.116243}, {-0.419752,0.580050}, {0.941619,-1.096349}, {0.016156,-0.012206}, {0.223729,-0.513092}, {0.431069,-0.090005}, {-0.564370,0.121675}, {0.207579,0.543705}, {-0.569522,0.970283}, {0.817061,0.419924}, {-0.249714,0.263547}, {0.715514,0.375579}, {0.601764,0.078943}, {0.912619,-0.785623}, {-0.761932,0.233378}, {0.345236,-0.083941}, {0.256879,0.092192}, {1.596566,0.978531}, {0.233048,0.142618}, {0.613216,-0.032437}, {0.829523,-0.330173}, {0.230123,-0.145399}, {1.458398,1.026591}, {0.430070,0.208748}, {0.266168,0.118494}, {0.539393,-0.277606}, {-0.413476,-0.313748}, {-0.369556,0.091205}, {-0.326428,-0.843489}, {0.876747,0.200702}, {-0.649832,0.677572}, {-0.132473,-0.408711}, {-0.189154,-1.243630}, {0.300237,-0.606909}, {-0.727253,-1.333235}, {0.491897,0.548159}, {0.129355,1.663229}, {-0.845514,-0.240228}, {-0.375039,-0.919784}, {0.911949,-0.218323}, {0.235257,0.391849}, {-0.246544,0.164098}, {-0.231634,0.840406}, {0.469351,-0.182122}, {-1.743900,0.992432}, {0.852607,-0.539289}, {0.795267,-0.387124}, {-0.185710,1.359292}, {0.094303,0.079949}, {0.642032,0.393244}, {-0.155963,0.192307}, {-0.348090,-0.970893}, {0.392175,0.779526}, {0.325050,-1.394403}, {-0.089091,-0.577495}, {-0.483524,0.167122}, {-0.942847,0.788769}, {-0.766730,-0.156880}, {0.105378,0.028165}, {-0.514349,0.215037}, {0.561907,-0.681160}, {0.734924,0.641628}, {-0.145145,-0.683320}, {0.393664,0.363491}, {-0.681003,0.495072}, {0.548521,-0.587928}, {-0.058075,0.565056}, {-0.107237,1.111712}, {0.172436,-0.254398}, {0.227540,-0.704157}, {0.265045,-0.730209}, {-0.869922,-0.474264}, {-0.424165,0.721119}, {-1.396401,-0.989424}, {0.221913,-0.297296}, {0.286758,-1.498876}, {0.359150,0.152013}, {0.112532,0.792481}, {-0.518915,0.573917}, {0.223169,-0.581940}, {0.093260,-0.638841}, {0.366104,0.042771}, {0.417517,0.376103}, {0.991679,-0.041029}, {-0.060651,-0.884169}, {-1.391370,0.124718}, {1.114556,1.972558}, {1.020741,-0.667193}, {-0.025144,0.571881}, {0.669084,-0.756397}, {0.439585,-0.056732}, {0.015199,0.202094}, {0.566927,-0.613071}, {-0.253624,0.616822}, {-1.725917,0.187096}, {-0.845198,1.593293}, {-0.490629,-0.100485}, {0.571619,-0.604498}, {-0.018727,-0.145532}, {-0.003540,0.086011}, {-0.606243,-0.821588}, {0.783794,0.540017}, {1.102898,-0.136964}, {0.216892,1.340393}, {0.342599,-1.539241}, {-0.575259,0.204180}, {-1.488872,0.715385}, {-0.221673,-0.742431}, {-0.113355,0.020189}, {0.213762,-0.406233}, {-0.170202,-1.176525}, {-0.131939,-0.115900}, {0.612452,0.453876}, {-0.743530,-0.455021}, {0.466304,0.328039}, {-0.258516,0.475259}, {-0.516879,-0.380717}, {-1.270884,-0.082694}, {0.501087,-0.200590}, {-1.445308,-0.484118}, {0.650660,-0.526876}, {-0.229810,-0.738966}, {-0.802840,0.194996}, {0.829044,-0.227303}, {-0.054933,-0.287901}, {0.285078,0.281370}, {-0.363464,0.182841}, {0.075010,-1.057872}, {-0.589787,-0.269938}, {1.178426,0.146037}, {-0.073736,1.967197}, {0.910865,0.370300}, {-0.153322,0.395913}, {1.123574,0.170210}, {-0.882067,0.376414}, {0.111788,0.783705}, {-0.791890,0.455797}, {0.724860,0.924557}, {-1.174621,1.356142}, {-1.081595,-0.106305}, {-0.006296,-0.172133}, {-0.122594,-1.407199}, {-0.404103,0.582921}, {-0.882765,0.122557}, {0.094063,-0.110042}, {1.335416,-0.733367}, {0.464591,-0.575710}, {-0.121591,-0.127096}, {-0.062471,1.097518}, {0.159503,1.027292}, {-1.093872,-0.247750}, {0.529288,-0.443974}, {-0.136074,-0.048432}, {0.556999,0.495463}, {0.588577,0.128776}, {0.462049,-0.451937}, {0.353590,-0.723830}, {0.204804,-1.625933}, {0.092930,1.161258}, {-1.224485,0.628751}, {0.229420,-0.877564}, {0.739953,-0.878338}, {-0.892648,0.514262}, {-0.544203,0.616829}, {1.134951,-1.505910}, {0.708691,0.176345}, {-0.292243,0.137628}, {-0.337737,-0.596135}, {1.471883,0.535997}, {-0.850951,0.121347}, {0.243537,-0.589604}, {-0.059771,1.176776}, {-0.454490,0.804287}, {0.070382,0.030761}, {0.242788,0.176748}, {-0.126759,0.129941}, {0.030666,-0.850073}, {1.875655,0.587808}, {-0.161780,-1.784124}, {-0.569807,0.916039}, {-0.569185,0.072547}, {-1.127872,0.026428}, {-1.150343,1.487388}, {0.720566,0.922631}, {0.383465,-1.084402}, {-1.237511,0.762091}, {-0.099930,-0.928349}, {-0.601861,-0.484212}, {0.014186,0.985724}, {0.396531,-0.374346}, {0.370483,0.478921}, {0.417636,0.285218}, {0.144493,0.855940}, {1.513194,-0.430838}, {-0.286139,-0.974602}, {-1.347122,-1.183399}, {-0.109208,-0.834271}, {-0.070154,-1.123663}, {0.980670,0.398785}, {1.504316,-1.491271}, {0.365317,0.703937}, {0.327227,-1.471393}, {0.779325,-0.291336}, {-0.813175,-0.633449}, {0.201307,-1.315156}, {-0.157624,0.806373}, {1.101852,0.306818}, {0.548022,0.618568}, {0.914485,-1.093983}, {-0.788237,1.330140}, {0.204645,-1.260284}, {0.708261,-0.487650}, {0.831419,0.494045}, {-0.479281,-0.174932}, {0.274606,0.031707}, {0.511466,1.479375}, {-0.749887,0.138556}, {0.094436,-1.604624}, {1.701213,-0.021478}, {1.273051,0.873564}, {-0.564715,-0.604606}, {0.576919,-0.577415}, {0.854536,0.069007}, {2.004698,-0.186701}, {-1.020772,0.648632}, {-0.474304,-0.256917}, {0.280593,-0.442013}, {0.609646,-0.099227}, {-0.587909,-1.324509}, {-0.478677,-0.380842}, {0.992419,-0.833282}, {-0.207837,0.203639}, {0.504914,0.234515}, {-0.266033,0.132612}, {-0.242541,-0.095664}, {-0.167233,-0.590706}, {-1.276869,0.288847}, {-0.312084,-0.687477}, {0.271583,-0.587164}, {0.515093,0.888483}, {-0.886180,1.600277}, {0.761687,1.283905}, {-0.917327,-0.468507}, {-0.255153,0.234853}, {-0.698140,0.280238}, {-0.173308,-0.549159}, {1.163074,-0.136380}, {-0.522856,-1.545376}, {-0.250713,-0.577033}, {0.127714,0.573650}, {-0.619459,0.761195}, {0.854662,-0.335280}, {1.288629,-1.596849}, {-0.259143,0.994771}, {-0.089218,0.323881}, {1.037082,-0.027840}, {0.020579,1.366726}, {-0.158254,0.495453}, {0.551658,0.631316}, {0.038543,-0.710163}, {0.702737,-1.985090}, {1.398746,-0.143418}, {0.084599,-0.676724}, {-0.015678,1.464065}, {-0.034517,-1.102207}, {-0.094801,-0.520467}, {-0.203622,0.612699}, {-1.132184,-0.715451}, {-0.130513,0.631629}, {-0.340655,0.517577}, {-1.132617,-0.041877}, {-0.913628,0.061052}, {1.393766,-0.805041}, {0.243021,-0.275513}, {0.592899,0.812328}, {-0.181057,0.511301}, {-0.230935,0.289646}, {-0.253628,1.248452}, {-0.375765,-0.450903}, {0.175142,-0.879180}, {0.632521,0.051703}, {0.714207,1.053456}, {-0.848408,1.064349}, {-0.233667,-0.270396}, {0.383107,-0.240141}, {0.507137,-0.249806}, {-0.030230,-0.356838}, {-0.578340,0.125787}, {-1.095438,-1.281125}, {0.471165,-1.473161}, {-0.176499,-0.292983}, {0.283998,-0.579375}, {-1.456174,0.442805}, {-1.091059,-0.554400}, {0.325498,1.215230}, {0.374914,-0.970670}, {1.014939,0.866143}, {-0.947639,0.514860}, {0.945109,-0.393500}, {-1.063523,-0.388257}, {0.026398,-0.066196}, {-0.485485,0.511262}, {0.171215,-0.511392}, {-1.389303,-0.782160}, {0.119798,-0.872876}, {-0.380890,-0.950004}, {-0.454074,0.379206}, {-0.150043,-0.133012}, {0.209178,0.071162}, {0.194253,-0.916240}, {-0.696335,-1.251679}, {-0.227848,0.695565}, {-0.243941,-0.084309}, {-0.950502,-0.635794}, {-0.290364,0.216578}, {-0.751428,-1.213585}, {0.460577,-0.149599}, {0.324715,0.166467}, {-0.614041,-1.173885}, {-0.142238,-0.336419}, {-1.471493,-0.936717}, {1.646690,0.184204}, {0.225939,0.300060}, {-0.128450,0.389350}, {0.727421,-0.454894}, {-0.435942,0.105538}, {1.205978,0.100260}, {-1.315567,0.308342}, {0.754698,1.164033}, {-0.107954,-0.172451}, {-1.047203,1.015069}, {-1.389840,-0.266683}, {0.547945,0.616535}, {-0.434114,0.849453}, {0.071122,-0.277037}, {-0.050800,0.284288}, {-0.165278,0.009121}, {-0.219966,-0.098418}, {0.198508,0.353809}, {-0.581533,0.448088}, {-1.784726,-1.161621}, {-0.604861,-0.274908}, {0.183057,0.051142}, {-0.317797,0.278299}, {-0.850828,-0.630589}, {0.104573,0.285301}, {0.105866,0.698211}, {-0.180861,-0.862928}, {0.475285,-0.838884}, {0.532029,-1.353946}, {-0.605465,1.385299}, {0.218651,-1.214866}, {2.160576,-0.144045}, {0.168189,1.107664}, {0.299490,-0.176740}, {-0.396194,0.210866}, {-0.125884,-0.224011}, {0.853672,0.228498}, {-1.748178,-1.154824}, {0.367379,0.232790}, {-0.181073,-0.618603}, {-0.789253,-0.907517}, {0.589666,0.083053}, {0.205531,-0.292960}, {-1.755342,-0.647660}, {1.320671,0.483386}, {0.751741,-0.776958}, {0.895885,0.848563}, {0.581838,-0.625789}, {-0.172855,-0.093791}, {1.730868,-0.185926}, {-0.859963,-0.199970}, {0.619064,-1.075834}, {-0.751592,-0.307590}, {0.383126,0.058031}, {0.532780,-0.855648}, {-0.809753,0.598019}, {0.523282,-0.210299}, {0.092903,0.620162}, {-0.841020,-0.066447}, {-0.888254,0.244874}, {-0.225321,-0.358074}, {-0.523697,0.142496}, {-0.211782,0.560938}, {0.850574,-0.508918}, {-0.016610,0.930612}, {-0.170152,-0.661760}, {0.379929,0.104789}, {-0.781353,0.502040}, {1.259342,-0.010921}, {-0.135465,0.122281}, {0.166991,-0.732114}, {0.955615,-0.124115}, {1.109480,-1.575200}, {0.054263,-0.253799}, {0.862238,-1.307799}, {0.016864,0.606661}, {0.483294,-0.230111}, {1.663652,0.729566}, {-0.611224,-0.653048}, {-1.924986,-0.524554}, {-0.603593,-0.245722}, {0.878295,0.316568}, {0.052504,-1.019809}, {0.512341,0.171092}, {0.774275,-0.490241}, {-1.055341,0.751595}, {-1.688396,1.987387}, {-0.902226,-0.336708}, {-0.433191,-0.099476}, {-0.920050,1.128085}, {-1.100896,0.374304}, {0.388182,1.245751}, {0.280377,0.511610}, {-0.344954,-0.349710}, {0.567448,-0.222402}, {-0.230275,0.053800}, {-1.450383,-0.655175}, {-0.140144,0.256758}, {-1.291789,0.096818}, {-0.626539,-1.194533}, {0.550245,-0.702534}, {0.445211,0.411623}, {0.860433,-0.689320}, {0.660554,-0.055735}, {0.924256,-0.222386}, {1.467143,-0.039871}, {0.423189,-0.130886}, {-0.157257,-0.253543}, {0.054858,0.012374}, {0.004722,-0.181412}, {1.204185,-0.360653}, {0.683748,-1.078223}, {0.114180,0.204924}, {-0.209641,0.052979}, {0.590545,-0.623896}, {0.855198,0.077004}, {-0.183976,0.390004}, {0.562404,-0.634269}, {0.638455,0.770984}, {0.539077,0.058849}, {1.143837,-0.619012}, {0.379303,0.131913}, {0.694961,-0.856962}, {1.031972,-0.095841}, {-0.414443,-0.130743}, {-0.530670,-1.027409}, {0.532992,0.593755}, {-0.302745,0.408516}, {-0.163969,-0.009049}, {-0.937897,0.569411}, {0.236075,-0.118090}, {0.367388,0.920104}, {-0.228411,-0.020714}, {0.450075,-1.376905}, {0.672742,0.878365}, {0.272849,0.717775}, {0.332603,-0.084299}, {-0.123209,0.546980}, {1.599618,-0.734019}, {-1.207434,-1.476439}, {0.126576,0.023655}, {1.085747,0.148754}, {-1.156599,-0.185243}, {1.100054,-0.369996}, {-0.075626,-0.451481}, {-0.905205,-0.526888}, {-0.401543,-0.591241}, {-0.114917,-0.419392}, {0.538569,-0.347340}, {0.301107,-0.265479}, {-1.341466,-0.843870}, {-1.296856,-0.888799}, {0.498068,-0.039892}, {-0.390159,0.729649}, {1.171404,1.213731}, {-0.539536,-0.533475}, {-0.471922,-0.364102}, {0.204217,-0.768619}, {0.692290,-0.199941}, {0.682400,2.105154}, {-0.663000,0.094841}, {1.190975,1.491593}, {-0.756086,0.111941}, {0.061172,0.566461}, {-0.048715,0.143162}, {0.311618,-0.313990}, {0.310462,0.386462}, {0.466845,0.225448}, {0.572650,-1.340082}, {-0.824610,0.849502}, {0.746589,-0.306592}, {1.392851,0.308872}, {0.506791,0.509163}, {-1.012017,0.338057}, {-0.425655,0.744355}, {-0.177273,-1.268582}, {1.931480,-0.463406}, {-1.005768,-0.526282}, {-0.554007,0.732979}, {0.203002,1.016918}, {-0.343580,0.392522}, {0.671733,0.125681}, {-1.033077,-0.210715}, {-0.047144,-1.546564}, {0.263303,-0.350745}, {-0.790377,-0.556737}, {0.347599,-0.244305}, {-0.267536,-0.557566}, {-0.914996,-0.772484}, {-1.415204,0.476464}, {0.636720,0.271362}, {-0.160421,-0.202122}, {0.256900,-0.971435}, {-1.341629,-1.340080}, {-0.996941,-0.175151}, {-0.275634,-0.620064}, {0.277806,1.181420}, {0.257685,-0.644443}, {0.972835,0.904661}, {-0.069391,0.979036}, {0.033424,1.180349}, {1.601465,-0.899762}, {-1.159530,-0.513358}, {0.659085,-0.351394}, {-0.778353,0.391627}, {-0.732485,-0.817011}, {0.160577,-0.745746}, {-1.425300,0.587289}, {0.466481,0.028874}, {0.257711,-0.211149}, {0.360215,0.446898}, {0.160066,-0.290423}, {-0.826929,0.104860}, {-1.006527,1.418773}, {0.086332,-0.509908}, {-0.775915,-0.277061}, {-0.568888,-1.679972}, {-0.636057,0.987827}, {-0.308029,0.307089}, {0.717339,-0.888667}, {-0.398455,0.051524}, {1.624831,-0.428584}, {-0.995265,-0.949414}, {-0.574018,-0.660601}, {0.821218,0.649943}, {-0.066875,-0.742312}, {-1.042409,-0.345767}, {-0.694825,-0.086997}, {0.892671,0.304710}, {1.463746,1.347942}, {-0.794659,-1.465119}, {0.093978,-1.391761}, {-0.289519,0.622867}, {-0.038301,-0.287028}, {0.225742,-0.501018}, {-0.619576,1.728619}, {-0.078345,0.521977}, {0.410487,0.768793}, {0.898314,-1.505122}, {0.982556,-0.321653}, {-0.156688,0.426663}, {0.914887,0.476645}, {-0.661801,-1.162848}, {-0.834380,-0.187532}, {-1.033042,-0.657361}, {-0.258103,-0.279691}, {-0.077377,-0.617789}, {-0.067528,-0.795636}, {0.697166,1.250363}, {0.612638,0.426930}, {0.414738,0.159230}, {0.012610,1.110968}, {0.088986,0.174993}, {-0.701699,-0.585427}, {0.005547,-1.001461}, {-0.499370,-0.219090}, {-0.409379,-1.410114}, {0.678592,1.914758}, {-0.333608,0.094601}, {1.473032,-0.764558}, {0.234098,0.682258}, {-0.764432,0.203001}, {-0.286558,-0.776227}, {0.015636,-0.427128}, {-0.829637,-0.587309}, {0.126426,-0.046741}, {-0.999990,-0.782663}, {-1.231364,-0.812437}, {-0.064503,-0.714886}, {-0.917891,0.770603}, {-0.586602,0.007693}, {0.403223,0.712644}, {-0.008010,-0.902316}, {0.357368,0.403032}, {0.138081,-0.123957}, {-0.283588,0.063573}, {-0.309539,0.658890}, {-0.406599,0.958829}, {-0.708649,-0.300691}, {-0.292065,0.281290}, {0.654537,0.474224}, {-0.708419,-2.474893}, {-0.285932,0.822338}, {-1.107321,-0.186473}, {-0.369601,-0.659469}, {0.617200,-0.315311}, {0.185574,-1.073683}, {-1.332198,0.646972}, {1.358647,-0.343407}, {0.423292,0.187194}, {-1.766024,0.026657}, {-0.511465,-0.056579}, {-0.202844,-0.666845}, {-0.061273,0.149654}, {-0.160488,0.253664}, {-0.336715,0.856404}, {-0.211530,0.286960}, {-0.096027,-0.438433}, {-0.123255,0.410071}, {-0.588208,0.110857}, {-0.160651,-0.237762}, {0.178849,-0.486365}, {0.523072,-0.604543}, {-0.481635,0.822471}, {-1.427760,1.475099}, {-0.015193,0.056991}, {-0.020920,-0.628689}, {-0.662725,-0.334047}, {-0.029955,0.271499}, {-0.549856,0.193420}, {-0.591084,-0.460397}, {-0.847475,0.176087}, {0.134666,1.535474}, {-0.404517,1.774605}, {-0.012591,-0.025081}, {0.304635,0.349055}, {1.032524,-1.067513}, {-0.654717,-0.443237}, {0.354067,-0.906890}, {0.645732,-0.808004}, {0.708526,0.422639}, {0.251741,-0.199950}, {-0.343301,-0.372559}, {0.521966,0.293809}, {0.596219,1.459711}, {-0.911900,1.090172}, {-0.180459,-0.242334}, {0.043777,-0.308086}, {0.892502,-0.297267}, {0.069414,0.548758}, {0.106618,0.638483}, {0.075271,0.328460}, {-0.453758,0.763184}, {0.873083,-0.518432}, {-0.165817,-0.466517}, {-0.777957,0.195349}, {-1.045421,-0.135624}, {1.085889,0.201413}, {0.045273,0.861950}, {-0.380225,-0.540513}, {1.234628,-0.061586}, {0.388294,0.042646}, {-1.184967,-0.334204}, {-0.431482,0.137044}, {-0.260536,-0.255510}, {0.676812,-1.129665}, {0.060250,-0.101155}, {0.177268,0.504934}, {0.447116,0.913391}, {-0.188139,0.308266}, {-0.461521,-0.562924}, {0.803880,-0.403873}, {-0.719793,0.283642}, {-0.274215,-1.343825}, {-0.176226,-0.931566}, {-0.456589,0.988810}, {0.069589,-0.085009}, {0.498388,0.661623}, {1.764237,-1.921451}, {-0.520769,-0.283433}, {-0.863480,-0.545718}, {0.164524,-1.140960}, {0.391842,1.388107}, {-0.211966,-0.760097}, {0.882238,0.726142}, {-0.494735,-0.147398}, {-2.130035,-0.271010}, {-0.091024,-0.085686}, {-1.139421,0.482023}, {-1.313630,0.069675}, {-1.013372,-0.030979}, {-0.010000,-0.309232}, {0.015798,-0.454868}, {-0.021211,1.170452}, {0.733800,0.657433}, {-0.564449,-1.202041}, {-1.438305,-0.225477}, {0.737473,0.034093}, {-0.124011,0.017096}, {-1.054430,-0.490369}, {0.735048,-0.170665}, {-0.603735,-0.398150}, {-0.291035,-1.773649}, {-0.230866,0.024045}, {0.565597,-0.230533}, {0.341789,1.338716}, {-0.174622,-0.278944}, {-0.235408,-1.074645}, {0.457028,0.409652}, {0.792267,0.082481}, {0.739603,-0.207675}, {-0.446134,0.728303}, {0.271171,0.646737}, {-0.080809,-0.597354}, {-0.333713,0.650210}, {-0.058765,-0.037884}, {0.313115,0.179699}, {1.061631,0.029643}, {-0.718130,-0.867332}, {0.161520,-0.373053}, {0.115240,1.018624}, {-1.401570,-1.811324}, {-0.389145,1.565653}, {0.275466,0.553665}, {1.366925,-0.550564}, {-0.653708,-0.492507}, {0.639135,0.108763}, {0.502588,1.583952}, {-0.959099,1.271320}, {-1.233735,0.101634}, {-0.740340,-0.248321}, {-0.892102,0.109857}, {-0.345742,0.073819}, {0.031049,-0.115825}, {0.366890,1.202980}, {-0.555795,0.858266}, {-0.789748,-0.582250}, {-0.684044,-0.073831}, {0.431366,-0.264677}, {-0.251106,-1.079765}, {-0.048445,-0.527598}, {-0.257022,0.807331}, {0.604370,0.108487}, {1.193560,-0.504331}, {0.887205,0.223083}, {0.165226,0.181709}, {-0.694678,0.305534}, {-0.539173,-0.699254}, {-0.962349,-2.031904}, {0.437054,0.981274}, {0.472644,0.330887}, {0.577628,0.332816}, {-0.547620,-0.333722}, {-0.651263,2.080435}, {-0.084852,0.079156}, {-0.760344,0.805795}, {0.499899,-1.470379}, {0.351524,0.328809}, {0.080884,-0.587359}, {-0.553406,-0.169034}, {0.039425,-0.538786}, {0.858310,-0.140728}, {0.472670,-2.246532}, {-0.368775,-0.323302}, {0.090378,-1.378154}, {-0.550284,0.507064}, {0.539224,0.603538}, {-0.000691,-1.727633}, {-2.003468,-0.661973}, {0.337784,0.651070}, {0.162028,0.567114}, {-0.067531,0.050097}, {0.182332,-0.719324}, {-1.474951,0.685114}, {0.860035,0.235277}, {0.673692,-0.745029}, {0.163864,0.823959}, {0.712323,-0.579740}, {0.133995,-0.852349}, {-0.093329,-0.759119}, {0.285367,1.120202}, {0.187071,-0.415625}, {0.522904,0.451246}, {0.757153,0.243609}, {0.184169,1.090276}, {1.479287,-1.344383}, {1.487636,0.349166}, {-0.095602,0.755634}, {-0.112605,0.207789}, {-0.441569,-0.286210}, {-0.409203,1.547667}, {-0.546806,-1.646303}, {1.074615,1.044879}, {-0.434627,-0.525903}, {-0.242109,1.227347}, {-1.319122,0.275312}, {-0.545729,0.662611}, {0.343853,0.157724}, {0.475258,0.149229}, {0.253291,1.076345}, {-0.570123,-1.272515}, {-0.186610,0.269897}, {-0.189057,1.120619}, {-0.383515,0.226731}, {0.924259,-0.098409}, {-0.080234,-0.649794}, {-0.726238,-1.386272}, {0.806442,-0.219207}, {0.024879,0.089845}, {0.913936,-0.796274}, {2.617004,-0.280960}, {-0.718628,-0.178037}, {-0.428151,0.215331}, {-0.073535,-0.606667}, {0.254862,0.639116}, {1.488909,0.267331}, {-0.583632,-0.698212}, {1.157905,0.856185}, {0.267413,0.309240}, {-0.460028,0.787779}, {0.527296,0.364704}, {0.341824,-1.132002}, {0.758196,0.233237}, {0.556152,0.517602}, {0.066575,-0.831919}, {0.517617,-1.003521}, {-0.448421,0.717349}, {0.254943,0.001274}, {-0.525383,-0.477606}, {1.091618,0.208053}, {-0.123831,-0.791330}, {0.334160,0.226185}, {-0.698222,0.706486}, {-0.032881,0.242425}, {-0.281343,0.751205}, {0.632088,-1.214175}, {0.073367,-1.174985}, {-0.324776,-0.120150}, {0.164874,0.111320}, {0.609620,-0.439175}, {0.031007,0.000219}, {1.028218,-0.287004}, {1.158747,0.853374}, {-1.199486,-0.275183}, {-1.283849,1.091030}, {0.561488,-0.120327}, {-0.287822,-0.044037}, {-0.968829,-0.687665}, {1.352591,-0.243109}, {-1.373144,0.694374}, {-0.378153,0.037286}, {-0.802495,0.406625}, {-0.041211,-0.643437}, {0.185728,-0.003745}, {-0.305742,-0.281991}, {0.387514,-1.518495}, {-0.242799,0.206669}, {-0.669666,-0.599745}, {-0.141009,-2.414735}, {-0.003491,-0.033090}, {-0.289344,-0.418806}, {0.520367,0.013915}, {0.555563,-1.274973}, {-0.324143,0.296732}, {-1.457603,0.238373}, {0.410639,0.101798}, {-1.012753,-0.935328}, {0.899841,0.309905}, {0.127096,-0.954350}, {0.106654,1.147259}, {-0.355125,-0.287927}, {-1.547840,-0.332855}, {-0.733110,0.032549}, {-0.271676,0.273160}, {-0.415254,-1.088883}, {0.067924,-1.032075}, {0.476029,-0.014800}, {-0.003191,-0.439740}, {-0.798743,0.822659}, {0.883440,0.479619}, {-1.455205,-0.328712}, {0.775377,0.211114}, {1.220351,0.695741}, {0.452471,1.035777}, {0.341504,-1.320770}, {-0.611155,0.468035}, {0.908185,0.273328}, {0.292692,-1.200411}, {-0.033289,-1.174946}, {0.994273,-0.733959}, {0.214130,0.413516}, {0.274615,-0.372335}, {1.346686,-1.437341}, {-0.197733,-0.578892}, {0.149638,-0.107375}, {-0.339736,0.034751}, {-0.338912,0.066107}, {0.750437,0.078081}, {-1.049538,0.591718}, {-0.041805,0.895005}, {-1.095430,0.700039}, {-0.235200,0.094713}, {0.065897,0.602921}, {0.755398,-0.108273}, {1.091147,0.071925}, {0.228578,-0.294732}, {-0.584694,-0.554632}, {-0.078499,0.146121}, {-0.915751,-0.799416}, {-0.365473,0.373294}, {-0.531644,-0.071814}, {0.721813,0.581123}, {-0.110709,0.244037}, {0.199982,1.816332}, {0.564345,1.371369}, {0.467000,1.041223}, {-0.686056,0.372524}, {0.104741,-0.231289}, {0.409822,-0.375921}, {0.031726,-0.309260}, {1.183292,0.898475}, {-0.493938,-0.680656}, {0.890296,0.420048}, {0.070555,-0.613145}, {-0.022719,0.779646}, {1.421551,-0.488215}, {-1.226503,1.639620}, {-0.306046,0.416864}, {-0.696823,0.344132}, {-0.143656,1.441148}, {-0.689809,-0.700984}, {0.463316,0.449139}, {-1.364012,0.198649}, {0.449165,0.742472}, {-0.486011,-1.473443}, {0.500896,0.833914}, {-0.622554,-0.239606}, {1.189831,-1.242437}, {1.151693,-0.330836}, {0.920582,-0.666624}, {-1.224090,-1.875929}, {-1.092502,-0.769761}, {-0.262561,-0.202329}, {0.431854,1.719011}, {-0.428703,-0.207687}, {0.564636,0.288137}, {-0.667355,0.277334}, {0.180266,0.623707}, {-0.315467,-0.069400}, {-0.601639,-0.462335}, {-0.948292,-0.538306}, {-1.253119,-0.336230}, {-0.049082,0.253962}, {-0.451911,0.428742}, {0.736800,0.882449}, {-0.412044,0.366809}, {-0.467545,-1.006095}, {1.008279,1.350596}, {-0.359243,1.473972}, {0.331398,-0.803076}, {-0.297361,-0.463851}, {0.201236,-0.107912}, {0.239863,0.923164}, {-0.353475,0.650233}, {0.384891,0.803903}, {0.302545,1.670567}, {0.799741,0.176856}, {-0.024317,0.120099}, {0.008041,-0.350004}, {0.230942,0.570515}, {-0.132010,0.455897}, {-0.263291,-0.539349}, {-0.645935,0.218008}, {-0.463458,0.613702}, {0.243487,1.705323}, {-0.868175,1.548390}, {-0.227668,1.410199}, {0.658615,0.988933}, {-1.447789,0.664133}, {0.798315,0.707355}, {0.425196,-1.360819}, {-0.135508,-1.272751}, {0.647140,0.224335}, {1.161476,0.319277}, {-0.480896,0.374320}, {1.878285,0.118100}, {-0.211065,2.614610}, {0.436903,-0.128683}, {1.200507,-0.109365}, {-0.119335,-0.098252}, {0.589978,0.683516}, {-0.940828,1.101724}, {-1.549157,0.580937}, {-0.045247,1.021449}, {0.032804,-0.767668}, {0.999415,-0.176564}, {-0.273115,-1.412497}, {0.167989,-0.295090}, {-0.036130,-0.505037}, {0.340076,-0.586571}, {-0.911702,0.260780}, {-0.738639,-1.333492}, {0.734417,-1.151579}, {-1.217327,-0.926407}, {0.231592,0.190441}, {0.737205,-0.440307}, {0.438334,-0.481113}, {0.415552,0.334575}, {0.720010,0.454014}, {-0.802826,-0.345235}, {-1.888756,0.673207}, {-0.545520,-0.182574}, {1.213482,0.417727}, {-1.244954,0.421645}, {-0.259205,-0.972422}, {-0.804418,0.298643}, {-0.497450,-1.013039}, {-0.363112,-0.066604}, {-0.295601,0.914620}, {1.021939,-0.017453}, {0.680981,0.298866}, {1.107544,0.912255}, {0.209341,0.491702}, {1.108210,0.582607}, {-1.014248,-0.037100}, {0.258361,0.684969}, {1.045870,-0.304365}, {-0.871056,0.100909}, {0.823420,-0.126928}, {-1.214117,0.314406}, {0.871430,0.118769}, {-0.231277,0.241207}, {0.035972,0.285960}, {-0.742023,0.505129}, {0.254087,0.341223}, {0.454655,-0.525507}, {0.755748,-0.462112}, {0.587311,0.633949}, {-1.442459,0.796037}, {-0.318407,-0.290317}, {-0.527692,-0.825944}, {0.971368,-0.736664}, {0.229420,1.203638}, {-0.736167,-1.347227}, {1.412800,0.828552}, {0.740372,-0.240037}, {0.876093,-1.017553}, {-1.210328,0.107513}, {1.137077,0.416858}, {-0.750964,-0.268489}, {-0.489146,-0.819406}, {0.703970,-0.019085}, {-0.301573,0.768771}, {-0.280863,-0.923373}, {-0.372715,0.726574}, {0.399350,1.779629}, {-0.254864,-0.001700}, {0.357948,1.923558}, {0.853556,-0.006690}, {0.509726,0.496630}, {-0.858094,-1.471612}, {-1.728564,1.392049}, {0.623779,-0.300334}, {-0.675676,-0.167689}, {-0.849742,-0.641322}, {0.697436,-0.283774}, {-0.275413,-0.855216}, {0.109529,-1.411846}, {-0.609845,1.742109}, {0.172157,0.641408}, {0.021837,0.465026}, {-0.022089,-1.116902}, {0.964458,0.032398}, {0.532234,0.444177}, {1.296815,-0.784017}, {0.749398,0.180579}, {0.574044,-0.467364}, {-0.838701,-1.398614}, {0.129156,0.516463}, {-1.055356,-1.190214}, {0.528734,-0.367550}, {0.797226,0.908928}, {-0.050036,0.414600}, {-1.125256,-0.572235}, {0.346222,0.074931}, {-0.538717,-0.265686}, {-0.056401,0.092578}, {-0.207907,-0.019935}, {1.012684,0.194750}, {-0.367511,-0.884469}, {0.107956,0.421098}, {-0.130369,-0.206243}, {-0.422989,0.053730}, {0.242778,0.306604}, {1.008636,-1.384316}, {0.333947,0.589110}, {-0.676884,0.681691}, {0.948866,0.105958}, {0.426000,0.672980}, {-1.064013,0.336557}, {-0.240377,0.553604}, {-1.066478,-0.727211}, {-0.640961,-0.431194}, {-0.047056,0.430286}, {1.455127,0.086339}, {1.044019,0.478455}, {-0.476166,0.241834}, {0.380861,-1.272487}, {-0.346503,-0.477271}, {0.130709,0.817365}, {-0.985777,-1.207054}, {-0.046189,-1.202671}, {-0.330047,0.026048}, {-0.239273,1.694012}, {-0.003318,-0.758511}, {0.329162,-0.169705}, {-0.474235,-0.351765}, {0.503979,1.428228}, {0.554457,0.574828}, {-1.434442,-0.919440}, {-0.451345,0.194554}, {0.521378,-0.954107}, {0.200849,0.335852}, {-0.124435,0.284194}, {-0.895518,-0.304695}, {0.301791,0.348402}, {0.093200,-1.526336}, {0.633977,0.922629}, {0.135976,-0.420617}, {0.232458,-0.359167}, {0.716139,0.072091}, {0.254796,-0.013268}, {-0.379655,-0.585246}, {-0.022477,0.395561}, {-1.191544,-0.383859}, {1.447703,-0.326901}, {1.032686,1.916231}, {-0.883760,0.132351}, {0.797983,0.389918}, {0.690284,0.427680}, {-0.500221,-0.126779}, {-0.347322,1.756772}, {0.199207,0.321965}, {1.155876,-0.872054}, {0.930258,-0.737929}, {0.355776,0.125540}, {0.111132,-0.084686}, {-1.765447,-0.399887}, {-0.484057,-0.693399}, {0.164002,1.979783}, {0.861997,0.458612}, {1.264516,0.761647}, {-0.265837,0.631914}, {1.055233,0.348404}, {-1.092578,-1.237799}, {0.095743,-1.847219}, {-0.335968,-0.005423}, {-0.404703,0.532334}, {-0.681848,-0.884532}, {-1.117062,-1.755286}, {-0.757974,-0.504821}, {-0.349785,0.132151}, {0.770082,0.883966}, {-0.583158,-0.064996}, {-1.505933,0.375539}, {0.417048,0.888212}, {0.276252,-0.045163}, {-0.424762,-0.615027}, {-0.365226,-0.268774}, {0.618845,-0.605848}, {0.164242,-0.422652}, {0.645703,0.576558}, {0.709919,0.591569}, {0.666594,-0.737500}, {0.026753,0.073156}, {-0.021352,-0.729128}, {0.909815,-0.255206}, {-0.589314,-0.428360}, {0.632534,-0.568628}, {0.261934,-1.385056}, {0.119414,0.325016}, {0.805002,-1.770542}, {0.277957,-0.422711}, {0.741012,-1.257607}, {1.212983,1.441817}, {-0.765914,0.535380}, {0.317519,-0.080034}, {-0.338720,0.031978}, {0.437849,0.750522}, {0.047748,-0.215083}, {-0.962192,-0.546992}, {-0.645064,0.921583}, {-0.551719,0.389382}, {0.105114,-0.340749}, {-0.310464,-1.039947}, {0.161271,0.002407}, {-0.846793,-0.332475}, {0.085515,-0.070405}, {0.516329,0.565764}, {-0.035842,-1.577365}, {-0.663475,-0.556161}, {0.282857,0.891555}, {-1.157957,0.323517}, {0.468238,0.244984}, {-0.001649,-1.302923}, {-0.138291,0.749416}, {0.078580,1.089354}, {0.049946,-0.266946}, {0.138307,-0.213026}, {-0.398241,0.031845}, {-1.097927,0.485306}, {-0.228563,0.686991}, {1.497539,0.916258}, {0.779815,-0.813548}, {-0.470301,-0.251974}, {0.471512,1.453454}, {-0.334489,-0.584985}, {-0.471259,-1.117006}, {0.399544,-0.900880}, {0.372172,0.255576}, {-0.107049,-0.126052}, {0.408528,-0.020332}, {0.284764,0.268221}, {-0.298182,-0.221228}, {-1.686760,0.052717}, {-0.036532,0.036560}, {-0.523159,-0.734161}, {-1.978600,-0.302538}, {-0.584814,-0.405386}, {-0.741486,0.753370}, {-0.040990,-0.509271}, {-0.541529,-0.386237}, {0.566418,0.037714}, {0.151225,0.807270}, {0.189559,-0.703980}, {-0.079181,-0.363765}, {-0.031324,-1.081530}, {0.083723,-0.843167}, {0.221127,0.064046}, {-0.427889,0.022969}, {0.139107,0.082158}, {-0.086705,1.011836}, {0.342143,0.246917}, {0.207554,0.133077}, {-0.080966,1.046769}, {-1.059233,-1.085633}, {-0.356010,0.718178}, {-0.577859,-0.109375}, {0.542744,1.108480}, {-0.876346,-0.752113}, {1.300557,-0.250276}, {-1.010939,1.119039}, {0.250270,-0.805066}, {-0.711292,-0.052695}, {-0.272900,0.801570}, {-0.129894,-1.472325}, {-0.059291,0.042281}, {0.343083,0.256834}, {0.652360,1.649133}, {-0.441827,0.270447}, {-0.338878,0.306703}, {-0.533263,-0.367020}, {-0.251497,-0.091588}, {-0.288078,-0.953882}, {-0.687001,1.500250}, {-0.145605,-0.885543}, {-0.295624,0.364480}, {-0.773724,0.838420}, {-0.755309,-0.637771}, {0.140479,0.139850}, {0.164407,-0.946375}, {0.334796,0.474215}, {-0.108846,0.443189}, {-0.315848,-0.562709}, {1.146425,-0.086577}, {1.422925,1.452282}, {0.528118,1.090295}, {0.142858,-1.517183}, {0.089292,-1.030106}, {1.868715,-0.729473}, {-0.847120,1.530669}, {-0.619504,-0.077095}, {0.013841,0.239227}, {0.358968,-0.495570}, {0.529144,-0.319802}, {-0.237481,0.008175}, {-0.949545,-1.524610}, {-0.764478,1.202526}, {-0.754071,0.211168}, {0.726948,-0.350558}, {-0.383736,-0.722571}, {-0.531464,0.251220}, {-0.215829,0.489119}, {-0.673253,0.780101}, {-0.425690,0.571457}, {-0.591886,-0.066992}, {-1.591411,-0.156612}, {0.832392,-2.183463}, {0.089291,0.262270}, {0.334040,0.864206}, {1.070955,-0.017792}, {-0.209751,-0.368139}, {0.320312,0.611719}, {0.299755,-0.675094}, {0.945826,0.192595}, {0.160973,-0.236396}, {-0.930557,-0.137053}, {0.824962,-0.452584}, {-0.781090,0.259436}, {0.499810,-0.342312}, {-0.976936,-0.295870}, {-1.864960,-1.380520}, {-0.343277,1.189033}, {0.354532,0.766793}, {-0.539951,0.213865}, {-0.755910,0.577450}, {-1.051209,-1.337479}, {-0.047104,0.329372}, {0.415117,-0.259529}, {0.118073,0.808609}, {1.623840,-0.219009}, {-0.092132,1.145445}, {-0.289294,0.153253}, {-0.118908,0.241607}, {-1.524828,-0.280118}, {0.532567,-0.648456}, {-0.104690,-0.952993}, {0.096358,0.341141}, {0.577925,-1.416989}, {-0.472131,0.005166}, {0.441558,0.684743}, {-1.075276,0.458788}, {-0.542887,-2.145492}, {0.982289,-0.712595}, {0.376656,-0.133513}, {-0.495061,-0.153725}, {-0.843701,-0.590876}, {0.189824,-1.026949}, {0.271507,0.450949}, {-1.214261,1.019265}, {-0.192929,0.809120}, {0.580104,-0.580059}, {-1.008693,0.258822}, {-0.686540,-0.150929}, {-0.806180,0.585680}, {0.382421,0.681665}, {0.993495,0.326671}, {-0.011094,0.137639}, {0.230903,1.353307}, {0.321925,-0.530779}, {0.445268,-0.218635}, {-0.248939,-0.811110}, {-0.438773,0.174895}, {0.092849,-0.786051}, {0.672213,0.282743}, {0.310022,0.016750}, {-0.554465,-1.296100}, {1.167694,0.289020}, {-1.008050,-1.267211}, {1.337627,-0.727579}, {1.107920,-0.800503}, {1.580887,-0.434263}, {0.534123,-0.023207}, {-0.672041,-1.190008}, {-0.623945,-1.000304}, {-0.339638,-0.090139}, {-0.247150,-0.090013}, {-0.248865,-0.373625}, {-1.008469,-0.345410}, {0.219290,-0.748377}, {-1.110240,0.109012}, {-1.315957,-0.132981}, {0.328799,0.407528}, {0.992340,0.695968}, {0.540487,0.100143}, {-0.101748,1.200990}, {1.372902,-0.484321}, {0.182478,0.930679}, {1.286810,-0.092169}, {0.361417,-0.430697}, {0.059600,0.508897}, {0.957065,0.231615}, {0.315519,0.910029}, {-0.259820,-1.108543}, {1.139876,1.306830}, {0.111378,0.598970}, {-1.158463,0.057921}, {0.732254,0.269129}, {-0.422410,0.384354}, {0.434930,0.258197}, {-0.135920,-0.584475}, {-0.525475,0.266487}, {0.479545,-1.317436}, {-0.588906,-1.032770}, {0.421416,-0.456796}, {-1.112158,0.197872}, {0.427474,-1.371221}, {1.169989,0.066283}, {-0.285752,0.682510}, {-1.103367,-0.081644}, {-0.492414,-0.508673}, {-0.603259,0.274685}, {0.453820,-0.705243}, {0.451449,-0.286640}, {-0.890995,1.493104}, {-0.269448,-0.111697}, {-0.284481,0.892255}, {-0.156936,1.178820}, {-0.026075,-0.288447}, {0.192773,-0.689622}, {0.408094,0.221306}, {-0.077789,0.462070}, {-0.763512,0.374190}, {1.372160,-0.387671}, {-0.961063,0.123053}, {-0.563208,-1.176171}, {-0.681526,0.053875}, {0.246027,0.916420}, {0.074971,0.397053}, {-0.509338,-0.467579}, {-0.028080,-0.246218}, {-0.778298,-1.008908}, {-0.688193,-0.856779}, {2.135919,-0.463805}, {-0.151521,-0.435434}, {0.286563,-1.399753}, {-0.238350,0.812805}, {-0.637019,0.391566}, {-0.930719,-0.753007}, {-0.130401,-0.095141}, {-2.022008,1.588912}, {0.465128,-0.736271}, {0.259710,0.008248}, {-0.670376,0.573592}, {-0.759845,-0.245010}, {1.199012,1.484925}, {0.117486,-1.283839}, {0.823713,0.601557}, {0.430107,1.305288}, {-0.857913,-0.086698}, {-0.240219,1.178419}, {0.106586,-0.727451}, {-0.013468,-0.553821}, {0.331834,-0.839487}, {-0.314308,-0.236823}, {-1.020583,-0.465144}, {-1.183478,-0.838031}, {-0.688226,-0.504797}, {-0.659946,0.110839}, {-0.317790,-0.888356}, {0.070495,-0.690989}, {-0.215137,-0.280878}, {-0.523957,-1.084659}, {-1.625006,-0.827692}, {-1.254357,-0.098812}, {-0.037334,-0.320405}, {-1.032500,-1.006692}, {1.085823,-0.464633}, {-0.424815,-0.295596}, {-0.359488,-1.184184}, {-0.081069,-0.021767}, {0.194173,-1.145768}, {-0.408176,-0.113861}, {-0.210713,0.116032}, {0.153323,-0.278102}, {-0.824116,-0.348393}, {1.711024,-0.546763}, {0.732380,0.343069}, {-0.031038,-0.890522}, {0.333504,-0.385973}, {0.838976,0.266577}, {-0.957789,-0.709820}, {0.084819,-0.404493}, {0.086928,0.312046}, {0.263436,0.677942}, {-0.878981,-0.061526}, {1.171282,-0.158491}, {1.014568,-0.534002}, {-0.414913,-0.218960}, {1.441376,-0.016469}, {-1.076862,0.575999}, {-0.508823,-0.139239}, {0.558421,0.010286}, {0.950772,-0.758483}, {-0.041742,0.060954}, {-0.951736,-0.703192}, {1.175201,0.090376}, {-0.088403,0.175440}, {1.137298,0.338050}, {0.202901,-0.780958}, {0.061536,1.037387}, {0.163756,0.146354}, {-1.082413,-0.656845}, {-0.663994,-0.554342}, {0.921438,0.127520}, {-1.683027,-0.494672}, {-1.207142,0.324501}, {-1.591428,-0.689670}, {0.380479,-0.276296}, {-1.370787,-0.457896}, {0.311180,0.865492}, {0.329667,-0.284122}, {0.764384,-0.263737}, {0.388595,0.581989}, {0.530794,0.089158}, {-0.194579,-0.160770}, {-0.497197,0.237652}, {-0.969043,0.476531}, {0.638742,0.543269}, {-0.246685,-0.490291}, {-0.504714,0.519112}, {-0.275926,0.004395}, {-0.679165,0.801614}, {-1.013769,0.245981}, {-1.048180,0.133878}, {-0.347843,-0.709411}, {-0.382321,0.205123}, {-0.289524,0.058317}, {0.779829,-0.108258}, {-0.607607,-0.504919}, {-0.313592,-0.887478}, {-1.599302,0.151143}, {-0.235541,0.112637}, {0.193417,0.135649}, {0.160499,-0.467862}, {-0.417821,0.508193}, {-0.371340,-0.797004}, {-1.218597,-0.463920}, {-0.329584,-0.832050}, {0.403735,-0.347268}, {0.312113,-0.544869}, {-0.885796,-0.033127}, {0.757105,0.871085}, {-0.135961,0.870860}, {-0.428802,-1.184347}, {0.290754,0.685975}, {0.025818,-0.815321}, {0.241907,0.375104}, {1.038442,0.255637}, {0.196660,-0.681084}, {-1.074595,-0.105662}, {-1.073237,0.535047}, {-1.330165,-0.216306}, {0.568918,-1.460499}, {0.046209,-1.528571}, {0.044727,0.488519}, {-0.583277,-0.315108}, {-1.471177,-0.727805}, {-0.046036,-0.582608}, {-0.295384,0.529362}, {0.361797,-0.922655}, {0.397070,-0.019993}, {-0.492521,-0.117990}, {0.782889,1.170999}, {0.662184,0.636561}, {-1.735288,0.395381}, {0.079380,-0.052730}, {0.709996,0.654113}, {-0.376010,-0.821716}, {0.920385,-1.393132}, {-0.322399,0.137951}, {0.319344,-0.513440}, {1.985403,-1.230494}, {-0.254706,0.778217}, {-0.381202,0.578765}, {-0.175651,0.459589}, {0.364902,-0.349097}, {-0.521217,0.377102}, {-0.696214,0.237524}, {-1.428330,0.264137}, {1.113969,-0.075405}, {-1.211818,0.228307}, {-0.100941,0.790198}, {0.189215,-0.790792}, {0.363891,-1.198473}, {-0.964005,0.251669}, {0.801589,-0.261038}, {-1.090147,0.402919}, {-0.227480,-0.351480}, {-0.406823,0.119514}, {-0.814855,1.243446}, {0.516934,-1.114966}, {0.026047,0.248718}, {-0.378437,0.509858}, {0.312049,0.311611}, {-0.891748,0.177292}, {0.608950,0.028471}, {-0.495443,-0.650332}, {-0.032869,0.579244}, {1.360294,-1.192193}, {-0.391750,0.494781}, {-0.337458,0.448717}, {0.363825,-0.229340}, {-1.236290,0.427883}, {0.399168,0.082217}, {0.280208,-0.644907}, {-0.759483,-1.003514}, {1.269082,-0.253776}, {0.442041,1.322204}, {1.329775,-0.544052}, {0.399145,0.137237}, {0.772111,0.321600}, {-0.588199,-0.243919}, {-0.658466,-0.868454}, {0.146449,-0.936439}, {0.021534,-0.658851}, {0.764039,0.391941}, {0.200860,-0.212653}, {0.159180,-0.042023}, {-0.537129,-0.147575}, {0.702245,-1.015617}, {1.790915,0.570027}, {0.766059,-1.875739}, {-0.182925,-0.787800}, {0.315391,0.206610}, {0.710280,-0.029793}, {0.798824,0.611930}, {0.082498,-0.122377}, {-0.441196,-0.130910}, {0.361502,0.019255}, {-0.494324,1.258054}, {-0.658917,0.549865}, {1.452774,0.133686}, {-0.454627,-0.589725}, {-0.880561,0.736115}, {-0.035445,0.327460}, {0.642400,0.698314}, {0.196188,0.488357}, {-1.092548,-0.378542}, {1.012368,0.219866}, {0.136436,1.050915}, {0.450533,-0.095960}, {-1.079073,0.205764}, {0.129783,-0.607319}, {0.304598,-0.028435}, {1.256490,-0.636622}, {0.251786,-0.305137}, {-0.501987,0.211074}, {-0.906736,-0.486202}, {-0.082131,0.034965}, {-0.584390,0.499364}, {0.129603,-0.644452}, {-0.480831,0.196367}, {0.349143,1.779059}, {0.431185,1.141092}, {-0.747513,0.731564}, {-0.786213,0.604126}, {1.290785,0.708430}, {-1.621136,0.607945}, {-1.515636,0.414725}, {-1.243614,0.535769}, {-0.468547,0.431251}, {-0.710815,-1.121571}, {-1.329742,-0.444443}, {-0.399959,0.076529}, {-0.261205,-0.551109}, {-0.712130,-1.339364}, {-1.672925,1.158768}, {0.511278,0.494824}, {1.221284,-0.403334}, {-0.689758,0.135193}, {-0.266714,-1.264919}, {-0.186901,-1.052718}, {0.711819,1.601651}, {-0.004976,-1.134699}, {0.264689,0.143991}, {-0.485013,0.240249}, {-0.430138,-0.180132}, {-0.448256,0.065344}, {-0.313909,0.042542}, {-1.788176,-1.003737}, {-0.430691,0.515782}, {-0.552024,0.033933}, {-0.511113,-0.396641}, {-0.667628,1.324609}, {1.536055,-0.176847}, {-0.371362,-0.780574}, {-0.604459,-0.180242}, {0.127890,-0.724469}, {-0.546043,1.055909}, {-1.160424,0.296830}, {0.851429,-0.834491}, {-0.653446,-0.319744}, {-0.281928,0.036064}, {0.152684,0.887427}, {-0.584216,-1.129730}, {-0.301487,-0.448074}, {-0.644999,-0.062434}, {-1.064140,-0.877770}, {-0.025358,0.318626}, {-0.169102,-1.656778}, {-0.410128,1.517397}, {0.908370,0.349006}, {-1.017744,-0.256003}, {-0.115645,0.371458}, {-1.286410,-1.036681}, {0.668494,-0.174631}, {0.543753,-0.269535}, {0.520788,-0.045167}, {-0.348305,0.919992}, {0.371761,0.757065}, {0.314541,-0.679578}, {0.365607,0.778578}, {-0.119374,0.153537}, {-0.266104,-1.198807}, {0.480855,0.786074}, {-0.032335,-0.840292}, {0.610415,0.164635}, {-0.644738,-0.147418}, {0.544935,0.824594}, {0.702994,-1.244186}, {0.383204,1.467042}, {0.264960,-0.885661}, {0.500914,-0.588794}, {0.070323,0.125276}, {-1.166675,-1.286120}, {2.429481,-0.059230}, {0.764725,-0.984194}, {1.319205,0.802877}, {0.667521,-1.156544}, {-0.490046,-1.778711}, {0.006985,0.759426}, {-0.060767,0.767774}, {-0.536098,-0.574244}, {-0.438429,-1.187924}, {-0.482447,-1.117342}, {-0.450270,-0.012118}, {-0.862294,0.414935}, {0.111836,-0.764191}, {0.176201,-0.840321}, {0.003283,0.329039}, {-1.081580,-0.831850}, {-0.757816,-0.792817}, {1.390379,0.527990}, {-0.423941,-0.375055}, {1.019446,0.722048}, {-1.226189,-0.806075}, {-0.767485,-0.457873}, {0.492217,-0.548094}, {0.691643,-0.508868}, {0.141146,-0.799097}, {-0.090612,0.367936}, {-1.588061,-0.270815}, {-0.235590,-0.137989}, {-0.055501,0.515153}, {0.710591,-0.228057}, {-0.499118,0.081473}, {0.605634,-0.712194}, {-1.465126,-0.300375}, {-1.525912,0.646441}, {-0.143056,0.092698}, {-1.615522,0.655455}, {-0.920867,0.776885}, {1.293398,0.375770}, {-0.367088,0.290023}, {0.060016,-1.396905}, {-0.564301,-0.163519}, {0.765264,0.454371}, {0.251582,-0.413469}, {-0.202361,-0.426122}, {-0.059972,0.009915}, {-0.818937,0.409182}, {0.019321,1.223693}, {-0.308784,-0.106641}, {-0.245638,-1.287715}, {-1.559027,0.473275}, {-0.523531,0.009086}, {-0.815917,0.794331}, {1.557748,0.201257}, {-1.003834,0.532228}, {-0.108970,-0.321004}, {0.324720,-1.294292}, {-0.526747,1.138428}, {-0.648496,0.837288}, {0.145426,0.003744}, {0.995406,-0.617984}, {0.658038,-0.080149}, {0.680441,-0.468064}, {1.360485,0.405642}, {-0.648630,0.199765}, {1.421996,0.120768}, {-1.160572,0.425829}, {-0.534584,0.437195}, {0.263973,1.083009}, {0.084184,-0.731033}, {-0.583261,-0.202720}, {-0.567244,-0.031166}, {-0.393410,0.011082}, {0.471308,0.529559}, {0.817988,0.803892}, {-0.436848,0.012289}, {0.134056,-0.016346}, {-0.510996,-0.160355}, {0.301328,0.155798}, {0.135075,-0.240089}, {-2.111101,-0.043898}, {0.492706,-1.075578}, {0.331122,-0.193177}, {-0.337675,-0.385101}, {0.600488,-0.607441}, {-0.482480,0.488866}, {0.510644,-1.348219}, {-0.900080,-0.246883}, {0.054556,-0.043343}, {-2.185732,-0.132914}, {-1.179464,-0.506427}, {0.060865,0.023893}, {0.465712,-0.293140}, {0.600472,-0.542588}, {0.339465,-0.734740}, {0.066566,-0.329599}, {-0.182971,-0.834260}, {-0.759862,-0.649675}, {0.503928,0.562654}, {0.180099,-0.072681}, {-0.298720,0.091572}, {0.414829,0.685094}, {-0.178731,1.490621}, {-0.764312,-0.940243}, {-0.609986,0.139467}, {0.620076,-0.882397}, {-0.662503,-0.243036}, {0.756788,0.492556}, {-0.192028,-0.450766}, {0.351446,0.122595}, {0.312300,-0.348844}, {-0.844268,0.241385}, {-0.245266,-0.747779}, {-1.043476,-2.173372}, {0.689560,0.287984}, {-0.604039,1.340161}, {-0.186566,-1.016223}, {-1.636023,-1.237069}, {-0.183189,0.475359}, {0.632049,-0.473980}, {-0.105737,0.324525}, {-0.734339,-0.411750}, {-0.959041,-0.918415}, {0.467121,-0.942991}, {0.819873,0.146195}, {0.528463,-0.981180}, {0.144697,0.795032}, {0.104364,0.648283}, {0.183268,0.614067}, {-1.164645,0.810951}, {0.009496,0.610751}, {-1.300113,-0.583004}, {-1.015675,0.243285}, {0.097064,0.342813}, {-0.245720,0.670790}, {0.205629,0.159022}, {-0.262508,-0.028034}, {-0.035008,0.785832}, {0.565660,0.072977}, {0.857016,-0.270113}, {0.136789,-0.121418}, {-0.656906,0.866977}, {0.154962,1.086797}, {1.053022,-1.172792}, {0.226542,0.180113}, {0.245718,-0.555295}, {-0.232891,0.136740}, {-0.930222,0.234981}, {-0.486962,-0.336185}, {0.350798,0.599626}, {0.574125,0.169891}, {0.614118,-0.392546}, {-1.180994,0.390905}, {0.683221,0.485573}, {-0.841497,0.916893}, {0.493882,0.242793}, {1.254721,-0.271983}, {-0.534063,0.438921}, {0.575408,-0.133856}, {0.312608,-0.033845}, {0.580808,-0.613817}, {-0.784972,-0.028488}, {0.021831,-0.097100}, {1.458365,-0.869399}, {-1.300065,0.760049}, {0.248812,-0.160696}, {0.577725,0.443818}, {-0.187965,1.600714}, {0.318288,-0.795075}, {-0.721696,-0.233585}, {0.273242,0.614688}, {0.681000,-0.554330}, {-1.334662,-0.151226}, {0.090395,0.928536}, {0.810563,0.579363}, {-1.128333,0.111594}, {1.434974,0.769472}, {-1.029423,0.004195}, {-0.400590,0.108051}, {-0.108363,-0.294703}, {2.176060,-0.435633}, {0.755020,0.883148}, {-0.455663,-0.243404}, {0.367326,-1.926805}, {-0.455835,-0.070141}, {1.081696,0.103537}, {0.413618,-0.241936}, {-0.155372,-0.490682}, {-0.621036,0.039829}, {0.890303,-0.313264}, {-0.023574,-0.297114}, {0.149197,0.434404}, {-0.685611,-0.688437}, {0.206938,0.778492}, {-0.031417,0.174300}, {-0.246155,-0.983701}, {0.342626,1.369090}, {-0.431405,0.516606}, {-0.058886,-0.776391}, {1.360163,0.224372}, {1.125009,0.009836}, {0.803894,0.584153}, {-1.066450,-0.134171}, {0.881308,-0.764883}, {0.171104,0.260482}, {0.114729,-0.114913}, {0.883607,1.086200}, {0.699362,-0.659063}, {-0.164816,-0.175345}, {0.387135,-0.085228}, {-0.572309,0.619865}, {-0.012015,-0.860950}, {-0.342715,0.692370}, {-0.024062,-0.039234}, {0.292654,0.782865}, {0.060171,0.442951}, {0.160037,-0.381519}, {0.408238,-0.320343}, {-0.342973,-0.880725}, {0.737359,0.306119}, {-0.536555,-0.356491}, {0.838071,-0.060380}, {0.019197,-0.215087}, {0.281771,0.139607}, {-0.133836,-0.948025}, {0.064779,-0.167417}, {-0.325938,0.106840}, {0.447499,0.335119}, {0.025073,0.284159}, {-0.052734,0.106778}, {-0.701789,-1.485622}, {0.518739,-0.597975}, {-1.716639,0.510981}, {-0.148489,0.188995}, {0.199804,0.565255}, {0.503694,-0.249207}, {0.351417,0.318152}, {-0.004846,0.498401}, {-0.527585,0.429634}, {2.230256,0.657682}, {1.005492,0.534070}, {0.335269,-0.396652}, {-0.245966,0.173556}, {1.145575,0.588938}, {0.250537,0.473746}, {0.273775,-0.223929}, {0.015710,-0.244761}, {-0.725572,0.598468}, {0.272714,0.218757}, {-1.388789,1.100565}, {0.552103,-0.509940}, {-1.061048,-0.439544}, {0.192437,0.828632}, {-0.847671,1.023359}, {0.366431,-0.588009}, {0.237764,0.442998}, {-0.676158,-0.309010}, {-0.610452,-0.659422}, {-0.259924,0.412575}, {0.388464,0.697350}, {0.043340,0.184411}, {-0.572546,-0.447644}, {-0.330020,0.540548}, {-0.476494,0.090675}, {0.428011,0.507960}, {-0.296043,-0.255790}, {1.215630,-0.318831}, {-1.154660,-0.477923}, {-0.262266,1.238092}, {-0.608603,0.453266}, {-0.032630,-0.939531}, {-1.660462,-0.153632}, {1.705682,-0.866847}, {0.429987,-0.912308}, {0.416998,0.929955}, {1.043259,0.307132}, {-0.982368,0.014721}, {0.123933,1.132765}, {-0.203176,-0.346598}, {0.070922,-0.385330}, {0.144019,0.165251}, {0.096086,-0.226780}, {0.793344,0.135213}, {-0.393406,-0.119594}, {1.126684,-1.053134}, {-0.132630,0.517421}, {0.300448,-1.340154}, {-0.834868,0.378596}, {-0.132590,-0.127355}, {-0.544568,1.427218}, {-0.443372,0.521400}, {-1.030830,1.124109}, {-1.434174,0.036345}, {-0.448801,-0.849006}, {1.295485,1.176937}, {0.612869,-0.763780}, {-0.369440,-1.146724}, {-0.183304,-0.234196}, {0.228224,-0.830902}, {1.022613,0.744120}, {0.025729,0.401274}, {-0.291958,0.275394}, {-0.232227,-0.344890}, {-0.372023,-0.748359}, {0.399097,-0.026262}, {-0.980706,0.557794}, {-1.242178,-0.160578}, {0.807544,0.089148}, {-0.313827,-0.935789}, {0.877743,0.053390}, {-0.471764,-1.392615}, {0.816500,1.445653}, {-0.016996,-0.915960}, {-0.919171,-0.825732}, {0.536946,0.833119}, {-1.361314,-0.838853}, {-0.180351,-0.307114}, {0.720178,1.060531}, {0.168912,1.130233}, {1.082306,0.407076}, {0.193384,0.074239}, {0.505658,-0.337304}, {-0.059033,-0.040496}, {-0.238771,-0.195282}, {-0.160034,1.174256}, {1.572109,-0.122569}, {0.170932,-0.122646}, {0.407778,0.454863}, {-0.016869,-0.027842}, {0.533907,-0.455801}, {1.171133,1.451143}, {-0.221926,0.445829}, {-0.343024,-1.134887}, {-0.084294,-0.803381}, {1.762508,0.510097}, {0.422538,-1.828873}, {-0.272140,-0.351999}, {-0.432142,1.296591}, {-0.804792,1.207034}, {-0.903372,0.071198}, {0.221699,-0.548004}, {0.296788,-0.487708}, {-0.892082,0.116939}, {0.118529,-0.058040}, {0.889249,0.038813}, {-1.435339,0.345064}, {0.196684,0.414290}, {-1.174361,-0.538056}, {-0.655841,0.448240}, {0.472673,-0.022418}, {0.940362,0.311382}, {-0.835209,-0.613456}, {1.186347,0.367963}, {-0.745946,-1.281948}, {0.614204,-0.405224}, {0.981560,0.711532}, {-0.869991,0.308124}, {-0.141029,-0.054972}, {-0.145974,0.432189}, {0.451887,-0.259041}, {-0.784348,-0.033713}, {0.793608,0.102305}, {-0.744519,0.342470}, {0.486741,0.105299}, {0.347823,-0.107864}, {-0.331637,0.717920}, {-0.508501,1.192128}, {1.490978,0.162327}, {0.736492,-0.127445}, {-0.085074,-0.474562}, {0.599451,-0.167800}, {0.674386,0.323677}, {-0.412837,-0.758638}, {0.609945,-0.786243}, {0.606302,0.662258}, {0.070750,0.124316}, {0.362489,0.853723}, {-0.421579,-0.217535}, {-0.769619,2.120710}, {-0.686205,-1.002458}, {0.847970,0.499804}, {-0.240487,-1.200173}, {-0.787843,-0.870082}, {0.134999,-0.037935}, {1.418077,1.020690}, {0.255585,-0.903872}, {0.517503,1.018629}, {0.222738,-0.956358}, {-1.235963,0.716474}, {0.896358,1.292193}, {0.622993,0.939205}, {0.032065,0.164409}, {-0.779169,0.659748}, {-0.738374,0.133285}, {-0.620870,-0.855214}, {0.342903,0.804248}, {0.339164,-0.133036}, {-1.661026,-0.210091}, {0.245305,-0.675406}, {-0.984197,0.390112}, {-0.061474,-1.162560}, {-0.723975,0.336075}, {0.796753,-0.371630}, {-0.548010,-0.761000}, {-0.603116,-0.658810}, {0.990442,0.351586}, {-0.086890,-0.036006}, {0.092425,-0.586906}, {-0.925900,0.593131}, {-0.763373,-0.389790}, {-0.938653,-0.603703}, {1.319069,0.867869}, {0.485223,0.597602}, {0.488264,-0.833841}, {0.550617,-0.599518}, {-0.329951,0.815395}, {0.408096,-0.163820}, {0.427087,-0.036759}, {0.177247,0.112508}, {0.674777,-0.049031}, {-0.068546,1.438730}, {0.238263,-1.518472}, {0.883496,0.410851}, {-0.306168,-0.121973}, {0.119223,0.124116}, {-0.458455,0.205762}, {0.819118,-0.420270}, {-0.502089,0.258248}, {-0.168138,0.489351}, {0.807982,-0.264625}, {0.084262,-0.505577}, {-0.559426,0.054462}, {0.257622,-0.205514}, {0.063041,-0.447553}, {0.373281,0.067113}, {-0.407206,-0.939355}, {0.143221,-0.451897}, {0.706256,0.478611}, {0.537206,0.751956}, {0.186734,-0.620411}, {0.745475,-1.471416}, {0.698281,0.256863}, {0.042234,-0.046608}, {0.099521,-0.430961}, {0.236487,0.680732}, {0.928581,0.289094}, {-0.110851,0.188157}, {-0.222611,-0.812705}, {-0.633681,0.426959}, {1.240335,-1.514135}, {0.889274,-0.903866}, {0.435835,0.552663}, {0.713055,0.641659}, {-0.042562,-0.629798}, {-0.218147,-0.486607}, {0.534103,-0.801708}, {0.241010,0.206161}, {0.572140,-0.082834}, {-1.509288,-0.142938}, {0.613317,-1.136810}, {-0.196998,-0.273118}, {-0.692536,-1.013502}, {-0.524362,-0.353001}, {-1.413574,-0.317148}, {-0.184674,-1.254237}, {0.212553,-0.393970}, {0.115187,-0.497395}, {-1.156764,0.217090}, {-0.424303,-0.518804}, {0.414805,0.157648}, {0.213679,-0.158910}, {-0.174193,0.696145}, {0.085286,0.143396}, {-1.850393,0.435779}, {-0.015959,-0.039908}, {-1.196652,-0.512413}, {0.461147,1.083615}, {1.188726,-1.253006}, {0.191977,0.248884}, {-0.633004,0.193534}, {0.030327,0.447737}, {-0.264705,0.787837}, {0.010620,0.245484}, {-0.824799,-0.704581}, {-0.850004,0.204610}, {0.381113,-0.610533}, {0.471917,1.571607}, {1.071030,-0.224993}, {-0.384820,-0.304042}, {0.283926,-0.337624}, {-0.030392,-0.446234}, {0.380697,1.115396}, {-0.572464,0.561788}, {0.625570,0.831812}, {0.385308,0.863936}, {-0.754364,0.169919}, {0.019587,-0.256785}, {0.572060,0.074947}, {-0.701087,-0.235522}, {-0.048703,0.055669}, {1.222353,0.777241}, {0.332950,0.082754}, {-0.367895,-0.645924}, {0.770417,0.554187}, {-0.458786,-1.031422}, {0.314500,-0.322402}, {-0.683719,-0.429777}, {-1.553851,-0.570942}, {-0.067857,-0.160216}, {2.145920,0.854215}, {0.213836,-0.315033}, {-0.513806,-0.416544}, {-1.457721,-1.141119}, {0.886807,-0.392147}, {-0.193698,-0.206875}, {0.548596,-0.465798}, {0.215522,0.180953}, {-0.391465,-0.142202}, {0.902257,0.158063}, {0.408777,-0.224758}, {0.446692,0.091443}, {-0.094655,0.081225}, {0.499235,0.958718}, {0.761380,-0.531675}, {0.276579,1.203927}, {0.276615,0.189762}, {-0.100258,-0.732587}, {-0.027769,1.596871}, {0.462540,0.379880}, {-0.341576,1.767737}, {0.394437,-0.167993}, {-0.105307,-0.509844}, {0.334850,-2.520104}, {0.845128,-0.104068}, {-0.740984,-0.026126}, {-0.974643,-0.280273}, {-0.134239,-0.078789}, {-0.299124,-0.863529}, {0.106515,0.170939}, {-0.927394,0.870161}, {-0.491114,-1.917638}, {-0.529767,-0.057114}, {0.786100,-0.565618}, {0.176072,-0.842280}, {0.326239,-0.605491}, {0.116318,1.170250}, {0.644626,0.571773}, {0.232028,-1.300912}, {0.588283,0.271257}, {-0.906647,-1.277791}, {0.521843,-0.527216}, {1.442306,0.379763}, {0.236952,1.052319}, {-0.295295,-0.568414}, {0.242369,-0.208334}, {-0.513807,-0.995215}, {0.709065,0.862066}, {-0.881110,-0.392734}, {-0.341385,-0.818876}, {-0.562235,-0.774610}, {-0.383367,-0.394595}, {0.193563,0.074610}, {1.080435,0.606053}, {0.541249,1.153279}, {-0.507145,-0.367372}, {-0.179289,0.029067}, {0.098487,-0.117080}, {-0.648908,1.440715}, {0.227369,0.898461}, {0.080062,-0.499544}, {0.644433,-0.375275}, {1.389011,0.012401}, {-0.264708,-0.741045}, {0.537436,-0.075225}, {1.106610,-0.549125}, {1.258275,-0.013265}, {0.728976,0.175113}, {-1.886547,-0.858978}, {-0.781953,-0.791226}, {0.122237,-0.660890}, {-1.264703,-0.283197}, {0.103200,-0.239052}, {-0.243478,0.149221}, {-0.144997,-0.203846}, {-1.067080,-1.526123}, {-0.976317,0.443019}, {-1.106013,0.024286}, {-0.311371,0.312037}, {0.122867,-0.212564}, {-1.891145,0.276717}, {-0.898165,-0.258266}, {0.160126,-1.155622}, {0.322655,-0.124973}, {0.709720,-0.446937}, {0.646654,-0.041224}, {-0.212961,0.280510}, {0.377353,0.020557}, {-0.559193,0.356275}, {-0.304649,0.801474}, {0.039679,-1.071028}, {0.201060,0.268840}, {0.060299,0.506095}, {0.468796,0.933767}, {-0.161046,0.352827}, {0.444057,-0.026569}, {-0.686397,0.188762}, {-0.335728,0.854376}, {1.571248,-0.778097}, {-0.297224,-1.112280}, {-0.298702,0.212694}, {0.753050,-0.774688}, {0.772973,0.801142}, {1.006190,0.195367}, {0.333846,-0.480112}, {-0.391853,1.243410}, {-0.695698,-0.290131}, {-0.739155,-0.888427}, {-0.332246,-1.694342}, {-0.872134,-0.491913}, {-1.196152,-0.951224}, {0.677412,0.228122}, {0.078804,0.855733}, {0.835586,0.425326}, {-0.229803,-0.248342}, {-0.718329,-0.707283}, {-0.509813,-1.200162}, {0.225505,-1.007218}, {-0.328166,-0.713028}, {0.464166,0.043179}, {0.309117,1.116584}, {0.123684,0.813080}, {-0.557566,0.056690}, {0.771158,0.111089}, {-0.102040,0.365176}, {0.283581,-0.304576}, {0.965047,0.603779}, {-0.888726,0.478438}, {0.477779,1.650476}, {-1.743258,-0.545295}, {1.377725,-0.340541}, {-0.086465,0.288027}, {0.172055,-1.416793}, {-0.156652,-1.552419}, {1.449604,-0.803632}, {0.172637,0.621346}, {0.793824,1.127283}, {-0.470779,0.819345}, {0.854335,-0.217494}, {1.238408,-0.227297}, {-0.446910,-0.251604}, {-0.124721,0.631903}, {1.355742,-0.253180}, {0.521698,-0.380554}, {0.610522,-0.644701}, {-0.081964,0.075793}, {-0.023329,1.079615}, {0.035329,0.305532}, {0.833652,0.329381}, {1.248972,-0.520503}, {1.090623,-0.312108}, {-0.298609,0.072040}, {-1.133040,-1.182362}, {0.439116,0.599685}, {-0.255228,-0.318038}, {-0.027322,0.405769}, {-0.892907,1.076022}, {-0.262922,0.302096}, {-0.920155,-0.097186}, {-0.540438,1.415810}, {0.272013,-1.071177}, {-1.292397,-0.727006}, {-0.061905,-0.763598}, {-0.941549,0.110682}, {-0.295776,0.793431}, {-0.169404,2.201666}, {-0.222637,-0.543007}, {-0.231419,1.018982}, {0.431675,-0.674150}, {0.647789,1.313624}, {-0.264086,-1.589729}, {-0.501708,1.108352}, {-0.208768,-0.310074}, {-0.597616,0.571167}, {0.001134,-0.028259}, {1.776513,0.322038}, {0.000932,0.887187}, {-0.308110,-0.292049}, {-0.532540,-0.401817}, {0.489140,-0.274389}, {2.617062,0.127502}, {0.147567,1.240201}, {0.663675,0.555925}, {-0.074294,-0.891471}, {-0.052708,1.536838}, {0.022298,-0.206741}, {0.479854,0.468749}, {-0.554820,1.208232}, {0.082508,0.244005}, {0.308910,0.266430}, {-0.474058,0.730188}, {-0.234200,-0.862644}, {0.952488,0.374155}, {-1.407313,0.324058}, {0.255768,0.333183}, {-1.409944,0.885110}, {-0.133868,0.923739}, {0.365945,-0.286467}, {-0.173753,-0.130918}, {-0.127021,-0.366972}, {0.038457,0.743113}, {-0.478880,-0.722286}, {-0.422107,-0.391745}, {1.431973,1.075899}, {0.065443,0.277849}, {-1.101839,-0.748236}, {0.291738,0.774096}, {-0.408096,0.206278}, {-1.180762,0.039864}, {0.986053,-0.063561}, {0.898749,0.024366}, {0.206499,0.151574}, {0.542112,0.681856}, {0.773880,0.684502}, {-0.241328,-0.031931}, {-0.382695,-0.326442}, {-0.849252,-0.163569}, {-0.224038,0.104381}, {-0.271735,0.180993}, {-0.297649,1.141589}, {-0.707010,-0.959005}, {0.401963,-0.582866}, {-0.715231,-0.495908}, {0.530290,-1.238800}, {-0.754427,0.394484}, {0.419279,-1.220995}, {0.230175,0.787427}, {0.371875,-0.606294}, {0.450371,-0.675309}, {0.171612,-0.392663}, {0.044028,0.193995}, {0.390951,0.897858}, {0.462471,-1.607671}, {1.295156,0.465999}, {0.793000,-0.411269}, {0.521132,-0.780113}, {0.533996,-0.337154}, {0.465286,0.327814}, {0.575773,0.419234}, {-0.030753,-0.501412}, {-0.575181,-1.392250}, {0.464516,0.592014}, {-1.051143,0.268391}, {0.131935,0.110597}, {0.074115,0.640275}, {1.141666,-0.715042}, {0.981527,0.398484}, {-0.318100,-0.014155}, {0.180788,-2.372129}, {-0.228512,-1.445935}, {0.604143,0.511910}, {0.061448,0.220588}, {1.285856,0.755178}, {-0.007362,0.382650}, {-0.121693,-1.355384}, {0.384877,1.724619}, {0.501171,0.169846}, {0.072657,1.420837}, {-0.653957,-1.801468}, {1.157954,-0.653464}, {-0.086409,0.466198}, {-0.284619,-1.509457}, {0.250620,0.007603}, {-0.493596,-0.521283}, {0.052350,0.242415}, {-0.662703,0.329744}, {0.270573,0.839284}, {1.071362,-1.329600}, {1.398703,-0.282566}, {-0.731533,1.666659}, {1.288748,0.120392}, {-0.275091,-0.249067}, {0.385583,0.034420}, {-0.019935,-0.619918}, {0.126886,0.241649}, {-0.634954,-0.683893}, {-0.689498,-0.555893}, {0.355284,-0.081731}, {-1.040687,-0.136149}, {-0.539910,-1.308056}, {-0.577548,0.394734}, {-1.345688,0.532236}, {-0.139622,0.230896}, {0.266085,-0.109778}, {0.720346,1.119455}, {0.079954,0.124289}, {0.511923,-1.657132}, {-2.248034,0.251991}, {1.364589,0.688028}, {0.888909,-0.151714}, {-0.569128,0.357256}, {-0.771377,1.271462}, {-0.737187,-0.032195}, {-0.719654,0.068332}, {-0.741507,-0.004577}, {-0.437575,0.452222}, {0.046679,0.449842}, {-0.220268,-0.231133}, {0.487091,-0.782256}, {-0.588303,-0.523988}, {0.078759,0.662810}, {1.248130,-0.793583}, {0.508679,0.242683}, {0.870960,-0.005896}, {0.322792,-0.772706}, {-0.837291,-0.424434}, {-0.273942,-0.068730}, {-0.996061,0.634835}, {-0.325385,0.366167}, {-1.601558,-0.215569}, {0.865809,-0.026148}, {1.361558,-0.115469}, {-0.588242,-0.102336}, {-0.387966,0.323272}, {0.289584,-0.504165}, {-0.754503,-1.114553}, {-0.353904,-0.014974}, {-0.948798,0.383592}, {-0.060121,-1.007894}, {-0.209254,0.035108}, {-0.191868,-0.327112}, {-0.872958,1.449912}, {1.215036,0.727058}, {-0.851767,0.775217}, {0.370956,-0.452360}, {-0.325553,-0.956322}, {-0.341459,1.281000}, {-0.094430,-0.289030}, {0.272220,0.131684}, {-0.490177,-0.806252}, {-0.099482,0.801627}, {0.660006,-0.111388}, {-0.412095,0.392647}, {-0.019833,0.332668}, {-0.076947,1.499139}, {-0.243294,1.683990}, {-0.671076,-0.433132}, {0.167768,-0.058623}, {1.324849,0.390514}, {-0.069259,-1.476604}, {-0.201312,-0.076595}, {0.817829,-0.669267}, {0.271931,0.149985}, {-0.209551,-0.803738}, {0.823791,-0.880931}, {0.945366,-0.396813}, {-0.636227,0.164765}, {-0.560128,1.371587}, {-0.210411,-0.871558}, {0.049073,0.899454}, {-0.426285,0.802485}, {0.481298,0.695859}, {-1.158734,0.585655}, {0.344093,-0.512270}, {0.837968,0.186502}, {0.446366,-0.555741}, {0.389203,-0.792521}, {-1.165375,-1.629469}, {-1.254712,0.471550}, {0.689930,1.197958}, {-1.004811,0.105754}, {0.841131,0.147341}, {0.154420,-0.297913}, {-0.796042,-0.454021}, {-1.231614,-1.187511}, {-1.109815,-0.141912}, {-0.566546,-0.288210}, {-0.661025,0.127627}, {-1.017198,-1.001861}, {1.186309,0.060379}, {-0.220627,1.019218}, {-1.293678,-0.087054}, {-0.025609,0.418478}, {0.771157,-0.681107}, {0.539560,0.233353}, {-0.378370,0.264538}, {1.893478,-0.101454}, {0.248258,-0.000550}, {-0.031156,-0.785691}, {1.781812,-1.292306}, {1.084657,0.507894}, {-0.699208,0.885340}, {1.285794,-0.619386}, {0.955586,-0.121447}, {-0.914452,-1.178647}, {-0.242399,-0.427685}, {-0.000717,0.064139}, {0.574391,-0.693162}, {0.485580,-0.614569}, {-0.408661,-0.616323}, {-0.464543,0.219753}, {0.765718,0.874867}, {1.166937,-0.037645}, {-0.387840,0.839810}, {-0.522687,1.260869}, {0.079230,0.752776}, {-1.317984,1.303184}, {1.280048,0.412472}, {1.609177,-1.354228}, {1.037420,0.014540}, {0.221589,0.058322}, {-0.629552,0.832290}, {-1.314747,0.685569}, {0.279436,-0.743734}, {-1.036796,0.905691}, {0.495922,0.253242}, {-0.916021,0.154075}, {0.864485,0.140135}, {-0.350216,-0.107206}, {-0.536267,0.213086}, {1.398571,-0.305908}, {-1.517443,-0.348266}, {0.316594,0.475011}, {-0.682424,0.439457}, {-0.443305,1.044724}, {-0.515239,-0.514528}, {-1.187287,0.148757}, {0.286934,-0.102590}, {0.258621,-0.932940}, {1.392701,-0.258996}, {-0.247044,0.662986}, {-0.039077,-0.511042}, {0.844728,-0.217617}, {0.655759,-0.440128}, {-0.413628,-0.925661}, {-0.488104,-1.044892}, {-0.543050,0.155919}, {0.817307,0.193785}, {0.341966,0.009039}, {0.574199,0.718193}, {-0.179957,-0.492905}, {0.487152,0.524160}, {0.329158,-0.281555}, {-0.816659,-1.487422}, {0.535622,0.409912}, {0.252481,-0.624546}, {-0.108432,-0.823732}, {0.302554,-1.011194}, {-0.425776,-1.472152}, {-0.398910,-0.198658}, {-0.068758,-1.227234}, {0.126371,-0.758421}, {0.343071,-0.216133}, {0.001535,1.505001}, {0.112153,0.738745}, {-1.513525,-1.478555}, {0.939067,1.193568}, {0.382158,-0.305531}, {-0.777582,-1.155642}, {-0.672354,-0.312022}, {-0.374348,-1.352798}, {-0.418581,0.634617}, {0.217850,-0.116165}, {0.432181,0.426225}, {-0.889372,0.893485}, {0.855687,-0.582910}, {-0.438450,-0.263930}, {-0.466874,-0.869459}, {0.040757,-0.535451}, {-0.140064,0.789127}, {-0.027951,0.105940}, {-0.437942,-0.211395}, {-0.040889,-0.017258}, {0.338753,0.833301}, {0.111661,-0.175934}, {0.984011,0.077959}, {-0.244420,0.211986}, {-1.269522,0.063911}, {0.409668,-0.303990}, {0.462926,1.021879}, {0.011614,-0.284044}, {1.020808,0.476647}, {0.196290,0.617474}, {-1.098523,0.371501}, {0.161323,-0.313071}, {-0.002902,0.397897}, {-0.356512,0.045680}, {0.279592,-0.533235}, {-0.475045,0.692805}, {-0.089288,-0.703191}, {-0.405232,-0.892280}, {1.186783,0.798136}, {-1.149640,-0.304031}, {-0.243771,-0.696568}, {-1.109856,0.231693}, {0.587465,-0.480350}, {0.184300,0.622183}, {0.153163,0.512540}, {1.675888,0.477305}, {0.698217,0.670234}, {0.860644,1.171471}, {-0.330617,0.580491}, {-0.058262,-0.788790}, {-0.358326,-0.426058}, {0.905134,-0.409635}, {-0.008586,0.990271}, {0.929488,-0.596337}, {-1.358305,0.391919}, {0.902404,0.342821}, {-0.063962,0.618381}, {-0.053813,0.301008}, {0.297584,-0.666505}, {0.556545,0.163475}, {-0.105724,0.005318}, {0.756775,0.828292}, {-0.274629,-0.880320}, {-0.476757,-1.149811}, {1.127103,-0.294822}, {-1.437952,0.298334}, {0.907496,0.739951}, {0.482075,0.004954}, {0.157887,-0.816916}, {-1.104784,0.063870}, {-0.724938,-0.327697}, {-0.487298,0.975783}, {-0.065203,0.869972}, {-0.211487,-0.462389}, {1.094010,0.177366}, {0.291395,-1.629667}, {0.319282,0.785872}, {1.229602,0.954910}, {-0.342436,-0.978418}, {0.352808,-0.930560}, {0.347757,-0.981736}, {0.298532,-0.077863}, {-0.714535,-0.393789}, {-0.333766,-0.139255}, {-0.418941,0.359123}, {-0.645184,0.861929}, {-0.722475,0.301444}, {-0.583318,1.352369}, {-0.712937,0.243635}, {0.440878,-0.827122}, {0.327224,-0.062067}, {0.186287,1.258463}, {-0.729241,0.868902}, {0.541857,-0.200516}, {1.156841,-0.049354}, {1.070085,-0.139319}, {0.275765,0.779653}, {0.355802,-0.444176}, {-0.215164,1.591130}, {0.410285,-0.761158}, {-0.921834,-0.002490}, {-0.552404,-0.660768}, {0.405438,0.139289}, {-0.275428,-0.582028}, {0.727740,-0.766058}, {-0.306953,-0.280078}, {0.816312,-0.261072}, {-0.199058,0.147132}, {-0.360431,1.125081}, {1.191538,-0.047433}, {0.305817,-0.633319}, {-0.494003,0.488029}, {0.212671,0.098168}, {0.210869,-0.461609}, {-0.134279,0.437562}, {0.343639,-0.292114}, {-0.041375,-0.808615}, {-1.049076,0.685913}, {-0.665760,-1.010501}, {-0.316509,-0.003953}, {0.009980,0.599501}, {0.638152,-0.300940}, {-1.337720,-1.392983}, {-0.275772,0.226258}, {-0.550300,0.251820}, {-0.584194,0.093470}, {0.610120,1.230993}, {-0.976958,0.361009}, {-0.875544,1.373339}, {0.287035,-0.431066}, {-0.467716,0.616202}, {-0.521935,-1.111703}, {-0.098289,-0.170971}, {-0.189521,-0.430798}, {0.994687,-0.127269}, {0.197679,0.364513}, {-0.553761,-1.362114}, {-1.599143,0.283164}, {0.343200,0.241993}, {0.950041,0.135606}, {-0.496251,0.947582}, {0.112208,-0.474788}, {-0.043567,-0.201243}, {-0.152120,0.819050}, {-0.698148,-0.987049}, {0.472844,0.167428}, {0.805574,0.137483}, {0.993595,0.361435}, {-0.755927,0.329879}, {-0.477493,0.425378}, {0.513390,0.862967}, {-0.370640,-1.203726}, {0.303774,0.888996}, {-0.531538,-0.061148}, {0.292513,1.123151}, {-1.375406,0.912479}, {0.874095,0.312105}, {0.285703,1.070449}, {-0.327598,0.204123}, {0.514364,-0.591838}, {0.187292,0.151885}, {-0.305341,0.797145}, {0.512371,-0.430627}, {-0.263249,1.117044}, {1.457063,0.655659}, {0.400834,-0.687060}, {-0.534341,0.199095}, {-0.670479,-0.049629}, {0.170424,0.355076}, {-0.089197,-0.199899}, {-0.516640,-0.098609}, {-1.415132,-0.986232}, {-0.543245,-0.612453}, {1.700407,-0.111663}, {-0.333996,0.941663}, {-0.558882,0.628745}, {-0.189070,-0.269156}, {-0.092103,0.289742}, {1.721874,-0.613049}, {0.400596,-1.689893}, {0.029330,0.780505}, {0.702801,-1.886583}, {0.527904,1.344383}, {-1.532567,-0.282722}, {-0.187656,1.032522}, {-0.563567,0.352977}, {1.552724,1.036609}, {-0.362367,0.884433}, {0.907224,-0.245049}, {0.968850,0.022296}, {0.991932,-0.528220}, {-0.574841,-0.667893}, {-1.285195,-0.410222}, {0.961984,0.592525}, {0.851798,-0.802477}, {-1.049946,-0.207182}, {0.797470,-0.161487}, {-0.749814,0.644751}, {1.147914,0.191578}, {1.094925,-0.009702}, {-0.016473,-0.192798}, {-0.479182,-0.608849}, {-0.521973,0.822191}, {-0.532269,0.303592}, {1.239154,0.041944}, {0.389138,0.091142}, {-0.663000,0.328936}, {0.342085,-0.836875}, {-1.076007,-0.660702}, {-0.134030,0.851663}, {0.024222,0.084575}, {-1.902667,-0.772045}, {-0.584827,-0.179968}, {0.072428,0.119199}, {-0.342968,0.700217}, {-0.467256,-0.216460}, {0.245841,0.459667}, {-0.569716,-0.968906}, {-0.425136,-0.329992}, {-0.290409,0.687952}, {0.225955,0.172615}, {1.003682,-0.248519}, {-0.114798,1.216756}, {1.860231,-0.053088}, {0.106746,-0.618765}, {0.288442,-0.650337}, {0.718256,-0.694432}, {-0.331457,-0.719543}, {1.068076,0.148336}, {-0.096353,-0.028651}, {0.897863,-0.741848}, {0.412489,1.038703}, {-0.114692,-0.055749}, {0.139043,-0.040275}, {0.638080,-0.220795}, {-0.633578,1.226884}, {-0.251365,1.662993}, {0.225500,0.307234}, {-0.602385,-1.321478}, {0.034489,-0.600173}, {-0.758390,-0.563067}, {-0.284530,-0.408226}, {-0.579724,1.090416}, {0.564264,-0.546693}, {1.299442,-0.259779}, {0.540747,0.139655}, {0.950786,0.132223}, {-0.293267,-0.682357}, {-0.926701,1.267867}, {-0.861209,-0.469813}, {0.266995,0.266466}, {-0.336500,0.231023}, {-0.345643,0.297993}, {-1.065829,-0.717767}, {0.337612,-0.915230}, {0.091474,0.162675}, {0.308361,-0.094296}, {0.577293,-1.348639}, {-0.284413,0.283653}, {0.357282,0.494051}, {1.245152,0.281545}, {-1.431170,-0.390320}, {0.181289,0.594357}, {0.532038,-1.703506}, {-0.080299,-0.145390}, {0.706124,0.883663}, {-0.383556,-0.058734}, {-0.778841,-0.343133}, {0.466969,-0.233412}, {0.438538,-0.476148}, {0.583980,-0.010636}, {-0.877575,0.042320}, {0.360100,-1.169871}, {-0.088032,-0.398826}, {-0.476665,-0.290729}, {0.290340,0.526910}, {0.348399,-0.419803}, {0.846750,0.362483}, {1.325840,0.694740}, {-0.345673,-0.490818}, {-0.280731,-0.855840}, {1.003652,0.167563}, {0.046835,0.199770}, {-0.137995,0.109839}, {1.236355,0.414718}, {0.076375,0.187022}, {0.540177,1.332342}, {-0.536548,0.170836}, {-0.538823,-0.787885}, {-0.030721,-0.152529}, {-0.197468,-0.453547}, {-0.860949,-0.359616}, {-0.076259,-0.168284}, {0.128913,0.374510}, {0.491855,0.338274}, {0.841089,0.539245}, {-0.918791,-0.642914}, {0.722143,0.109400}, {-1.613346,0.192994}, {0.138179,0.384452}, {0.217286,0.484391}, {-0.617670,0.552131}, {-0.314759,1.396384}, {0.680449,0.920245}, {-0.776923,0.591054}, {0.357123,0.348420}, {-0.552000,-0.959852}, {-0.457786,-0.012405}, {0.194398,0.372935}, {-1.158776,-0.739099}, {-0.119856,0.695673}, {-1.044994,0.542655}, {-0.057589,0.663487}, {-0.637497,1.383641}, {0.841195,1.016650}, {-0.227216,0.350548}, {-0.666675,0.297665}, {-0.837852,0.428705}, {-1.515275,-0.555662}, {-0.151261,-0.712636}, {-0.221931,-0.513521}, {-1.443995,0.844288}, {0.313953,0.097811}, {-0.204681,-0.430877}, {0.980967,-0.423177}, {0.232925,-0.543011}, {0.306555,-0.317551}, {-1.105006,-0.200727}, {-0.491818,-0.043239}, {-0.024608,-0.174225}, {0.033530,2.148918}, {-0.623382,-0.443777}, {-1.073524,0.750841}, {-0.120307,1.009256}, {0.383676,-0.259419}, {-0.313467,-1.256964}, {-0.422919,-0.188656}, {1.284099,0.681505}, {0.223126,-0.031646}, {0.306322,-0.620767}, {0.442285,0.769126}, {-0.724718,-0.051262}, {0.239249,-0.361381}, {0.330321,-0.151744}, {-0.732583,0.357697}, {1.352363,0.469735}, {-0.520244,-1.172771}, {-0.830415,0.617391}, {-0.345373,-0.338332}, {-0.195310,1.495399}, {-0.303452,-0.330434}, {-0.858515,0.736562}, {-0.299252,0.080389}, {1.345959,-0.872637}, {0.074448,-0.237625}, {1.059866,-0.609576}, {-0.575313,0.866044}, {-0.077763,1.006470}, {-1.001055,0.181480}, {0.602403,-0.828705}, {0.704641,-0.635900}, {0.125989,0.812281}, {-0.020565,-0.376771}, {0.086654,0.473210}, {-0.807156,-0.842660}, {1.800373,0.552391}, {-0.130840,0.401600}, {1.213215,0.407588}, {0.032867,0.902099}, {-0.647827,-0.660410}, {0.139245,0.572428}, {0.503025,-0.013337}, {-0.345741,-0.790109}, {1.992791,-0.453862}, {-1.025935,0.141881}, {1.284579,-0.440883}, {-0.079254,0.984268}, {0.774126,0.771004}, {0.446898,0.009177}, {-0.145382,0.156029}, {0.640419,1.548422}, {0.417477,-0.537218}, {-0.166369,-1.168204}, {-1.576589,-0.006857}, {-0.568257,0.799393}, {-0.097194,0.950091}, {0.517471,-1.411220}, {0.238796,-0.516115}, {0.520339,0.649062}, {0.066756,-0.377378}, {-0.337598,0.506655}, {0.082550,-0.452063}, {0.348994,0.931952}, {-0.986407,-0.704322}, {-0.127239,0.598529}, {0.326580,-0.100612}, {-0.479889,-0.405277}, {-1.261540,0.389325}, {-0.326830,-0.479964}, {0.362882,0.916080}, {0.351699,0.236263}, {0.339159,-0.569330}, {0.193999,0.722854}, {-0.383134,-0.307248}, {0.983325,-0.083201}, {0.134546,1.185024}, {0.453730,0.055284}, {0.699766,-0.295923}, {-1.300227,2.106761}, {1.649077,0.568909}, {1.754100,-0.494836}, {1.533405,0.734520}, {1.171021,0.482031}, {1.401353,0.104870}, {0.365542,-1.022673}, {-0.297745,0.086303}, {0.811492,0.413641}, {-0.006258,0.257878}, {0.025602,0.267244}, {0.302591,0.729528}, {1.143575,0.702035}, {0.878501,0.429343}, {-0.568291,1.009797}, {0.475038,-0.837439}, {0.463692,0.574354}, {-0.262200,-0.340073}, {-0.092665,0.807504}, {0.502834,-0.559747}, {-0.405528,0.310426}, {0.892265,0.595287}, {1.606894,-1.747076}, {-0.552482,0.153944}, {-1.140951,0.420524}, {-0.002796,0.745166}, {1.856330,-0.471658}, {-0.278099,0.079846}, {-0.859602,0.915874}, {-0.131552,-0.316820}, {-0.384475,-0.141175}, {1.036717,-0.801126}, {-0.243963,-0.971380}, {-0.096054,0.106090}, {-1.006589,0.633260}, {1.195284,0.049783}, {1.377535,0.570432}, {0.727388,0.842091}, {-0.591521,-0.187649}, {0.435684,-0.688750}, {-0.294460,0.716584}, {1.215540,-0.474825}, {-0.696852,-1.070607}, {-0.396589,0.554698}, {0.089609,-0.423692}, {-1.348885,-0.346625}, {0.203519,0.440114}, {0.743717,-0.894146}, {-0.159810,-0.334923}, {0.682591,-0.546565}, {-0.712575,0.476973}, {-1.104661,-0.456355}, {-0.479537,0.251457}, {-1.174705,-0.052909}, {-0.352342,0.708805}, {0.131579,-0.078383}, {0.418601,0.558629}, {-0.035404,-0.244368}, {0.264606,-1.039640}, {-0.949351,0.500103}, {0.788048,0.890085}, {-0.089676,0.665759}, {-0.926300,0.785008}, {0.511916,0.407786}, {0.421369,-0.501708}, {0.673039,-0.920122}, {-1.286538,-0.354717}, {0.248195,0.038161}, {-0.205990,1.080045}, {-0.217009,0.702000}, {-0.276423,0.807365}, {-0.426657,0.829259}, {1.389469,-0.172937}, {0.242023,0.337750}, {0.111603,-1.317547}, {-0.474308,-0.557545}, {-0.943573,0.433703}, {0.637707,-0.325782}, {0.288693,0.683452}, {0.404386,0.934451}, {0.280019,0.234267}, {0.235777,-0.732291}, {0.679205,-0.897298}, {-0.633602,1.471122}, {0.135238,0.129816}, {-0.615491,-0.198805}, {-0.064142,-0.264310}, {-0.386053,-0.523291}, {0.905432,-0.812653}, {-0.251535,0.119324}, {0.544902,-1.468042}, {0.940112,-1.020098}, {0.261122,0.539496}, {-1.028811,-1.062924}, {-0.961214,1.210793}, {0.440965,-0.383521}, {-0.471681,-0.646258}, {-0.640999,0.630283}, {-0.593379,0.907085}, {-0.559648,-0.906520}, {0.131252,0.190629}, {-1.155937,0.469075}, {-0.774295,0.491694}, {-0.391053,0.660751}, {0.248040,0.038323}, {-0.603211,0.265228}, {-1.222478,-0.223261}, {1.022423,0.355851}, {0.285110,0.398718}, {1.496522,-0.815689}, {0.651223,-0.214058}, {1.483784,-0.345858}, {0.338015,-0.489712}, {-0.046722,-0.437334}, {0.159075,-1.718044}, {-0.190740,-0.099638}, {0.061885,0.049811}, {0.679428,-0.232491}, {0.435870,-0.001996}, {1.027309,-0.975858}, {-0.014691,-0.487557}, {-0.295080,0.752236}, {-0.274321,0.469497}, {-0.517557,1.067698}, {0.064585,0.127431}, {-1.046478,-0.199519}, {0.243379,0.939476}, {0.061894,-0.918354}, {0.182123,0.572483}, {0.530045,0.686889}, {-0.039721,-0.301593}, {1.310340,-1.022175}, {0.167251,-0.342483}, {-0.873160,0.739288}, {1.084948,-1.081913}, {0.987790,-0.737875}, {1.115765,0.832754}, {0.710369,0.565371}, {1.222391,-0.328709}, {0.981649,-0.055245}, {-0.777509,-1.846205}, {0.368035,0.488807}, {-1.365216,0.569074}, {1.124465,0.671338}, {0.992709,0.751788}, {-0.470874,0.278596}, {0.636061,-0.169493}, {0.359905,0.085555}, {0.222456,0.382605}, {-1.173254,0.201384}, {0.279053,-1.466444}, {-0.551690,1.345065}, {-0.510876,-0.198530}, {0.495703,-0.623988}, {0.084364,0.323890}, {-1.999895,-0.270420}, {-0.076837,1.042714}, {-0.752037,0.184538}, {0.788181,-0.585590}, {-0.331946,0.352529}, {-0.573372,0.687863}, {0.138512,-0.567696}, {-0.295121,-0.726297}, {-0.543169,0.137349}, {-1.715495,-1.038332}, {-0.792709,1.829956}, {-0.512584,-0.042359}, {0.314335,0.342696}, {0.301736,0.685331}, {0.538495,1.567646}, {0.619975,0.078173}, {-0.498993,-0.523364}, {-0.772238,0.214198}, {-0.098512,-0.182276}, {0.454210,-0.534136}, {-1.022817,-1.137971}, {0.073646,1.100400}, {-1.024269,-1.297541}, {0.102126,-0.936219}, {-0.656945,0.838675}, {-0.883419,-0.256136}, {-0.187742,-0.020857}, {0.277194,-0.076560}, {0.664217,-0.799587}, {-0.150595,-0.678707}, {1.282330,-0.650995}, {0.230992,-0.615056}, {1.240003,-0.672353}, {-0.277618,-0.291440}, {0.819647,0.226890}, {0.150397,-0.913147}, {-0.416220,0.946438}, {-0.076384,1.536212}, {1.392241,-1.502352}, {1.326505,-0.499578}, {-0.091994,-0.153227}, {-0.961196,0.689524}, {0.781255,-0.480439}, {0.928013,0.550042}, {-0.232140,0.627398}, {-0.954812,-0.337019}, {0.310334,1.994616}, {0.437513,-0.248398}, {0.219854,0.604570}, {-0.986371,0.508113}, {0.338285,-1.014958}, {0.109864,0.456381}, {0.279878,-0.662212}, {0.837898,0.324217}, {0.556637,0.129244}, {0.274982,0.417030}, {-0.610253,-0.031767}, {0.087246,-0.527219}, {-0.003924,-0.518842}, {-1.162910,0.023406}, {-0.748007,-0.086280}, {-1.473481,0.519776}, {0.227004,-0.462845}, {-1.082161,0.747261}, {-0.506904,0.368379}, {-0.400566,-0.884841}, {0.601519,0.983189}, {-0.166960,0.343570}, {-1.095310,0.099506}, {1.360160,0.674208}, {-0.147483,0.107427}, {0.281204,-0.417472}, {0.661175,-0.414379}, {-1.448734,1.031802}, {-0.755926,0.045997}, {-0.411609,0.573619}, {0.557744,0.825309}, {-0.849476,-0.220213}, {0.491201,0.095585}, {0.495856,-0.624079}, {0.271922,-0.075840}, {-1.176081,0.131668}, {0.199308,0.838635}, {1.157825,-0.261944}, {0.499849,0.118281}, {0.977981,0.048878}, {1.199673,-0.964225}, {0.858596,-0.581090}, {-0.452553,-0.218746}, {0.299985,0.111416}, {0.658092,0.162666}, {-1.038127,-1.509123}, {-0.476839,-0.238866}, {-0.825964,-0.083540}, {-0.311650,0.915382}, {-0.346397,0.095597}, {1.291551,-0.057599}, {-0.180325,1.013067}, {-0.377176,-0.025424}, {-0.170279,-0.752118}, {-1.045206,-0.436628}, {1.077868,0.598796}, {-1.083213,-1.758250}, {-0.312935,0.179621}, {0.255198,-0.202909}, {0.713268,-1.475905}, {-0.464259,0.230728}, {-0.089435,0.405254}, {0.475353,-0.424938}, {-0.867856,-0.104100}, {-0.636819,-0.246586}, {-0.172386,0.532258}, {-0.100517,-0.057939}, {-0.090309,-0.013900}, {-0.012730,-0.418781}, {-0.323899,-0.112924}, {0.548806,-0.078950}, {0.011270,-0.804839}, {-1.476368,0.179108}, {0.820229,-0.630583}, {1.295267,-0.443406}, {0.544548,0.943069}, {1.785252,-0.261154}, {2.075199,-0.129452}, {0.294332,0.738836}, {-0.488866,1.007274}, {-0.503534,-1.208814}, {-0.422143,0.460624}, {-0.695711,1.140055}, {-0.298145,0.028151}, {-0.530038,0.012494}, {1.063207,0.272223}, {0.307094,-0.925566}, {-0.396384,-0.079196}, {-0.264129,-0.690633}, {0.342815,1.176028}, {0.208513,0.031339}, {1.092949,-1.279019}, {-0.182367,1.458113}, {0.459643,0.537035}, {-1.422746,-0.199628}, {0.120842,0.431555}, {0.120487,0.860370}, {0.880075,-1.318327}, {-0.918494,-0.508262}, {1.039805,-0.397278}, {-1.116948,-0.764242}, {-0.648588,0.086831}, {-0.310475,0.435516}, {0.627558,-0.763336}, {-0.357348,1.121826}, {-0.261118,-0.210469}, {0.566079,0.338734}, {0.732632,-0.864559}, {-0.031237,-0.416613}, {-0.486114,0.440274}, {1.080200,0.451333}, {0.411008,-0.914379}, {1.630417,-0.573224}, {1.789973,-0.128818}, {-1.282816,-0.068424}, {0.649218,-0.044922}, {0.219130,0.525529}, {-0.370677,-0.053050}, {1.003421,-0.883361}, {-0.342108,-0.405991}, {0.559990,0.090486}, {-0.819193,1.397662}, {-0.712352,0.014975}, {0.372887,0.809808}, {0.368211,0.098352}, {0.107715,0.035441}, {-1.024098,0.171511}, {-1.378939,-0.282636}, {-0.515788,0.376429}, {0.019939,0.105386}, {-0.458813,-0.083868}, {-0.496787,0.049241}, {0.463699,0.772761}, {-0.261173,1.395466}, {-0.700428,-0.454140}, {0.203633,0.129327}, {0.688547,-0.064068}, {-0.286357,-0.615908}, {1.006754,-0.251008}, {0.233480,0.634520}, {0.098067,-0.799585}, {0.531663,1.047693}, {-0.357639,0.643432}, {-0.454815,-1.314132}, {0.024120,0.533402}, {-0.411249,-1.147575}, {-0.478917,0.650582}, {0.527923,-0.220407}, {0.760079,-0.003595}, {-1.436180,1.015680}, {0.226704,0.663645}, {-0.045143,-0.061152}, {-0.302953,0.503048}, {-1.017092,-0.028102}, {-0.437520,-0.181724}, {0.691820,0.557386}, {0.481078,0.854929}, {0.210535,-0.105821}, {0.309759,1.545655}, {-0.118720,-0.106134}, {-0.491147,0.073132}, {-0.315558,1.304714}, {-0.069603,-0.566994}, {-1.420324,-0.302228}, {-0.001001,-0.159619}, {0.538514,-0.717943}, {-0.023256,0.486612}, {0.961986,-0.094342}, {1.390177,1.690547}, {0.060921,-0.573038}, {1.227780,-1.614966}, {0.860354,0.141537}, {-0.673537,-0.182732}, {-0.394389,0.486924}, {0.189958,-0.299760}, {-0.187816,0.758961}, {0.930850,0.838789}, {0.532089,0.052800}, {1.183978,0.043238}, {0.000885,1.006165}, {0.652237,-0.033242}, {-0.062365,0.853989}, {0.074019,1.062932}, {0.548674,1.299869}, {0.635525,0.892433}, {1.040413,-0.904244}, {-0.637131,-1.220854}, {-0.178723,0.705191}, {0.679517,-1.054694}, {0.050417,0.463792}, {-0.432476,-0.705006}, {0.479097,-1.050954}, {0.759427,-0.851752}, {1.022693,-0.592958}, {-1.062087,0.416080}, {0.240269,-0.546121}, {0.721674,0.787447}, {0.390897,0.893822}, {-1.344788,-0.366112}, {-0.388957,1.529754}, {-0.410491,-0.551688}, {0.059600,0.157555}, {0.589211,0.635496}, {1.524161,-0.681505}, {0.382074,0.694384}, {0.184238,-1.242472}, {-1.872358,0.314061}, {0.197887,-0.051333}, {0.134921,1.052766}, {0.262707,0.571038}, {0.217454,1.533922}, {-0.473612,1.565367}, {-0.430548,-0.327960}, {2.456992,0.326251}, {-0.249071,-1.096478}, {1.629764,0.016947}, {-0.311299,-0.966789}, {-0.271977,0.129707}, {0.570742,0.441806}, {-0.663392,-0.189752}, {-0.657755,-0.378028}, {-0.289619,0.178035}, {-1.547191,-1.379442}, {0.318863,0.097885}, {-0.133141,-0.867632}, {1.709726,-0.325249}, {-0.859378,-1.097579}, {-0.824774,-1.066003}, {0.667650,-0.896375}, {0.771396,0.193745}, {0.187997,0.834902}, {0.264365,-0.077232}, {-0.205345,-0.363629}, {0.785119,0.128526}, {-0.691053,-0.612586}, {0.013257,-0.052083}, {0.825087,0.514926}, {-0.296533,0.266757}, {0.172197,-1.001242}, {-0.096571,0.384834}, {0.009580,-0.143642}, {-0.430595,0.227296}, {0.246564,-0.054633}, {-0.094468,-0.110370}, {-0.692380,0.378773}, {-0.199042,-1.555449}, {0.505427,0.687997}, {0.449979,0.039450}, {0.393759,-0.881240}, {1.174371,0.587504}, {-0.022562,-0.094548}, {0.799280,-1.480472}, {0.041460,-1.331186}, {-0.092273,-0.056904}, {1.089637,1.394368}, {0.377098,-0.286844}, {-1.518074,0.303598}, {-0.424125,-0.919862}, {0.735314,0.790515}, {-0.419136,-0.537595}, {-0.224393,-1.089326}, {-0.932735,0.204017}, {-1.046173,-0.492433}, {0.530493,-0.892328}, {-1.605953,-0.056949}, {-0.082756,-0.072003}, {-0.273932,-0.025963}, {-0.800355,0.314344}, {0.072312,0.478394}, {0.398293,0.285516}, {-0.548830,0.122373}, {-0.168767,0.843687}, {-0.270897,1.661998}, {-1.170453,-0.201107}, {-0.475110,-0.145280}, {1.305465,-0.282810}, {-0.315642,0.100244}, {-0.086178,1.029969}, {0.615427,0.779651}, {-0.207107,0.112033}, {1.324170,-0.301879}, {0.970426,-0.300709}, {-0.051026,-1.504892}, {-0.710653,0.471644}, {-0.246991,0.815189}, {0.603725,0.395888}, {0.287185,-0.903460}, {0.542505,-0.034145}, {0.491362,0.846853}, {-0.795065,-0.413406}, {-0.094830,-1.353670}, {0.848408,-0.279441}, {0.423856,-0.773367}, {0.223410,-0.744911}, {-0.290439,0.138562}, {0.179655,-0.293731}, {0.963360,1.602055}, {-0.162586,-0.561803}, {0.690172,-0.162130}, {-0.056525,-0.217605}, {0.406531,-1.570055}, {-0.214027,1.317937}, {-1.324464,0.041843}, {0.524061,0.463133}, {-0.308113,-0.660500}, {-0.045374,0.866035}, {-1.375194,-0.346669}, {-0.241115,-1.057360}, {1.046871,1.007542}, {-1.538573,-0.349429}, {-1.296515,0.500255}, {-0.319061,1.182597}, {0.822835,1.088292}, {-0.242570,0.808708}, {-0.741186,-0.287133}, {-0.043203,-0.170825}, {0.086436,1.296764}, {0.039347,0.444439}, {-0.452934,0.019311}, {0.165106,0.678114}, {0.077917,0.386698}, {-0.827517,0.531529}, {0.008533,0.559169}, {0.779173,-1.106132}, {-0.141012,-1.305121}, {-0.017937,0.457808}, {1.289752,0.160765}, {0.540358,1.399083}, {-0.512611,0.568784}, {-0.648622,-0.300842}, {-0.293245,1.682090}, {0.675206,0.479373}, {-0.247437,0.127139}, {0.385699,-1.137733}, {0.734392,0.440471}, {-1.045057,-0.228324}, {0.556728,-0.598054}, {-0.283752,-0.097712}, {-0.555117,0.220327}, {0.850535,0.713509}, {-0.187237,-0.137412}, {-0.069355,-0.705473}, {0.514740,-0.842808}, {-0.680879,-0.366539}, {0.249006,-0.335864}, {-0.098391,0.639156}, {0.171737,-0.709357}, {-0.443634,-0.636049}, {1.088524,0.709373}, {1.223219,-0.602659}, {1.372139,-0.120711}, {0.934723,0.998017}, {-0.627598,0.214279}, {1.030711,-0.173404}, {0.136914,0.142240}, {-0.703009,-1.393580}, {0.296772,-0.271707}, {-0.650348,0.475265}, {0.681210,-0.614719}, {-0.063976,0.173702}, {0.927263,-0.034156}, {0.436673,0.433596}, {-0.011766,0.233163}, {-0.461304,-2.176818}, {-0.555505,-0.395928}, {-0.121968,-0.515902}, {-0.078036,-0.661705}, {0.922070,-1.399317}, {0.438197,-0.410533}, {0.889117,2.238643}, {-0.109874,-1.599532}, {-0.122962,-0.682850}, {-1.305958,-0.154182}, {0.431402,1.018367}, {-0.143377,-0.893054}, {0.560765,-0.446487}, {0.753484,-0.241121}, {-0.967923,0.257292}, {-0.119665,-1.032914}, {-0.991815,0.479675}, {-0.629275,0.847630}, {0.721789,0.636400}, {0.977668,-0.039434}, {0.187379,-0.387067}, {-0.314152,0.141318}, {-0.817531,0.628117}, {-0.923341,-0.167044}, {-0.155868,-0.084994}, {-0.686082,-0.206933}, {0.021763,-1.069100}, {0.091063,-0.184178}, {-0.307996,-0.942727}, {0.036592,0.643156}, {-0.299491,1.314708}, {-0.149338,-0.041127}, {-0.365165,0.727747}, {-0.591302,-0.009641}, {-0.511106,0.790851}, {-0.008839,-0.298441}, {0.450988,-0.963904}, {-0.043228,-0.140045}, {0.622787,-0.480381}, {1.330465,-0.430632}, {0.237069,0.372814}, {0.013612,0.660065}, {-0.005838,0.638106}, {0.099138,0.487362}, {-0.462270,0.760901}, {-0.039276,-0.367186}, {-0.849389,0.963066}, {0.260960,-0.760724}, {-0.017266,-0.504135}, {0.468009,0.090059}, {1.015524,0.512994}, {0.320663,-0.586802}, {1.320691,-0.542734}, {-0.662519,-0.014055}, {-0.297684,-0.044484}, {-0.799770,-0.356844}, {-0.382747,0.640791}, {-0.656885,0.305997}, {0.114703,-0.966648}, {0.136089,-0.769987}, {0.032134,-0.482388}, {0.164098,-0.131159}, {0.378416,0.078075}, {-0.221686,1.091587}, {-0.103693,0.709294}, {-0.345252,-0.305954}, {1.203122,-0.260458}, {0.793078,-1.844025}, {0.052521,0.691232}, {0.327413,1.180506}, {0.000942,-0.045549}, {0.500746,-0.800283}, {-0.118962,-0.269397}, {0.302711,-0.955327}, {-0.451537,-0.663640}, {-0.783589,-0.143810}, {0.777130,0.550576}, {-1.296793,-0.096188}, {0.156387,1.318119}, {-0.441793,0.789109}, {0.098510,-0.721234}, {1.144887,0.174284}, {-0.628743,1.542204}, {-0.746915,-1.002669}, {0.640209,1.564354}, {-0.042800,0.694716}, {-1.546423,0.892586}, {-0.302209,1.431112}, {-0.691142,0.333508}, {-0.429388,-1.099203}, {1.047799,-0.141377}, {-0.835629,-0.419429}, {-0.395704,0.291504}, {1.169077,-0.006899}, {-0.000406,-1.023570}, {-0.005843,0.363119}, {-0.830499,-0.161589}, {-0.049930,0.150634}, {0.110034,0.489642}, {0.229673,-0.090654}, {0.628243,1.472188}, {-0.426285,-0.014405}, {0.704156,-0.031663}, {1.408712,-0.223024}, {-0.310124,0.322176}, {1.341750,-0.011950}, {-0.475503,-0.217211}, {-0.322988,0.045987}, {-0.293056,0.205099}, {-0.120599,-0.231858}, {-0.145756,-1.419736}, {0.586338,0.525593}, {-0.107314,0.053626}, {-0.592978,-0.037145}, {-1.158385,-1.045554}, {0.119389,0.728346}, {1.574950,-0.490199}, {-0.282055,-0.229629}, {0.168220,0.641829}, {0.215137,0.436435}, {-1.469822,-1.022768}, {0.122827,-0.355324}, {0.340368,0.460545}, {-0.133655,-0.013018}, {-0.214706,-0.229367}, {1.137280,-0.600999}, {-0.774999,-1.178053}, {1.518943,1.058591}, {0.407081,-0.502228}, {-1.241990,0.417551}, {0.014212,0.382705}, {1.079171,0.037512}, {1.449532,-0.035599}, {-0.342860,0.119856}, {-0.203089,1.758978}, {0.892215,-0.343795}, {-0.742509,-0.990385}, {0.467033,-0.033716}, {0.478131,-0.642241}, {1.344997,-0.160438}, {-0.420145,0.331979}, {-0.652954,0.592996}, {-0.495241,0.174791}, {0.187080,-0.257417}, {-0.382043,-0.147167}, {0.529967,0.430835}, {0.479963,-0.054450}, {-0.878576,0.171068}, {0.128695,-0.437802}, {-0.715424,-0.054429}, {-0.735767,1.208460}, {0.913745,0.145152}, {-0.901428,0.263530}, {-0.108728,1.211707}, {0.869162,1.245237}, {1.346936,0.981211}, {0.064847,-0.378967}, {0.076235,1.113281}, {-0.158075,-0.350806}, {-0.830559,0.718345}, {0.165189,0.659124}, {0.566927,-0.057358}, {-0.256642,0.501692}, {-0.496891,0.558987}, {0.314791,1.531419}, {-0.105210,-0.967250}, {0.340576,0.711382}, {-1.141627,-1.066447}, {-0.110436,-0.387441}, {0.079143,-0.720602}, {0.166833,0.239506}, {-0.442205,-0.338438}, {0.483370,0.156757}, {0.693114,0.276451}, {-0.183391,0.020851}, {0.204206,-0.677262}, {0.689076,0.309579}, {-0.481239,-0.584827}, {-0.933420,-0.491870}, {-0.520784,-0.281925}, {1.692787,-0.862935}, {0.974295,-0.065542}, {0.013460,-0.253194}, {-0.484361,0.487765}, {1.102883,-0.797744}, {1.017178,-0.706175}, {-0.306430,0.465774}, {0.652186,0.377622}, {-0.509788,-0.117614}, {-0.182832,0.281499}, {-0.243806,-0.608884}, {-0.812188,1.031517}, {-0.318785,-1.096473}, {-0.753378,0.448524}, {0.190946,0.805434}, {1.315679,0.386423}, {0.517649,-0.029638}, {0.005505,0.303030}, {0.245582,-0.056264}, {-1.003810,0.352134}, {0.145024,0.704185}, {0.462317,0.143256}, {0.942234,0.897553}, {-0.215521,-0.331736}, {-0.486441,-0.282984}, {-0.132013,-0.653772}, {0.703166,-0.978950}, {1.265242,-0.730936}, {0.541313,-1.092878}, {-0.426889,-0.709462}, {0.358945,-0.092949}, {1.287703,-0.466656}, {-0.029177,-0.528144}, {-1.262047,-0.156719}, {1.119061,-0.140010}, {0.744231,1.364940}, {-1.477712,0.677879}, {1.394701,0.568561}, {-0.709296,1.089103}, {-1.084068,1.032923}, {0.692925,-1.436255}, {-0.583488,0.006146}, {-0.096832,0.481081}, {0.065004,-0.486029}, {0.870241,-0.777612}, {-0.485691,1.334895}, {1.654056,-0.558402}, {-0.123607,-0.634878}, {-0.327436,-0.483555}, {-0.308836,0.238801}, {0.997275,0.372461}, {1.298622,-0.350636}, {0.054553,-0.251766}, {-0.663848,0.096227}, {-0.414783,-0.476282}, {0.017994,-0.596242}, {0.073553,0.224045}, {-0.017235,-0.787626}, {-0.513162,-0.883175}, {0.296796,-0.667669}, {0.609890,0.396096}, {-0.429109,0.719473}, {1.004360,-0.399219}, {-0.729476,-0.121898}, {0.495306,0.262692}, {-0.113961,-0.354866}, {-0.397658,0.111103}, {0.772712,0.034410}, {1.351640,-0.201355}, {-0.632191,-0.828298}, {-1.263127,-0.771645}, {0.439372,-1.090465}, {0.360964,-0.050497}, {0.347296,-0.241183}, {0.779991,1.223795}, {-0.304319,0.532105}, {0.438098,0.404655}, {-0.851470,-0.274463}, {-0.456542,0.692725}, {-0.246019,0.385583}, {0.191244,0.619761}, {-1.086195,0.003533}, {0.904869,0.542475}, {0.998638,0.170402}, {-0.706807,-0.315809}, {0.166527,-0.172701}, {-1.000581,-0.025441}, {-0.835619,1.640966}, {0.465558,-0.261938}, {-0.312499,1.039515}, {0.963936,0.325342}, {-0.691905,-1.644457}, {0.352920,-1.072839}, {0.628098,0.001310}, {0.081833,0.343911}, {0.014168,0.756927}, {-0.973338,-0.558293}, {-0.871959,-0.104032}, {-0.002001,-0.006319}, {1.286904,-0.201689}, {0.244030,1.578598}, {-0.616804,0.274645}, {-0.318141,0.335599}, {-0.697360,-0.095197}, {0.011818,-0.863732}, {-0.138582,-0.019176}, {-0.725250,-0.217377}, {-0.875897,0.417330}, {-0.319059,0.539565}, {-0.482789,-0.312334}, {0.409422,1.158154}, {-0.015202,0.405469}, {0.566499,-0.239419}, {-0.048926,-0.333125}, {0.123632,-0.575811}, {-0.737014,1.050065}, {-0.498796,-0.462582}, {1.103683,-1.514551}, {-0.494598,-0.326410}, {-0.197300,0.386700}, {0.062856,0.241676}, {1.540076,0.134030}, {0.167199,0.718623}, {1.460202,0.168436}, {-0.151115,1.190752}, {-1.605562,-0.849851}, {-0.182316,0.843664}, {0.063442,-0.632068}, {0.600120,-1.467388}, {-0.214057,0.008288}, {-0.591725,0.015858}, {0.426621,-0.467059}, {0.308007,-0.521593}, {0.187186,0.432812}, {0.771873,-0.797405}, {-1.666113,-0.612908}, {0.662923,-0.640449}, {0.418502,0.839952}, {0.567399,1.411843}, {1.409143,0.943162}, {0.272974,0.334327}, {-0.194930,-0.042914}, {-0.656420,0.632150}, {-1.041831,0.166806}, {0.747201,0.813639}, {0.281704,0.944374}, {1.358369,0.491507}, {0.367469,-0.875805}, {-0.422513,0.169091}, {1.285167,0.685694}, {0.330428,-0.193560}, {0.299608,0.675410}, {-0.270314,-0.081031}, {0.064389,1.581159}, {-0.222432,-0.019499}, {0.426707,0.157563}, {0.722662,-0.647789}, {0.242988,0.714443}, {0.748898,-0.308079}, {-0.016544,0.354901}, {-0.997099,-0.209123}, {-0.235030,-0.400691}, {-0.203206,1.099828}, {0.142727,0.095450}, {-0.341516,0.326233}, {0.095229,0.019195}, {-0.660175,0.112390}, {0.905233,-0.514587}, {0.319161,-0.949665}, {-0.405405,-2.149487}, {0.208820,0.999381}, {-0.315606,1.516585}, {-0.641859,-1.688719}, {0.964642,-0.657701}, {0.065903,-0.060402}, {-0.026539,-0.681936}, {-0.614921,-0.563590}, {0.246976,-0.939397}, {0.385899,0.281023}, {-0.094005,0.848061}, {-0.169226,0.774612}, {-0.724207,0.299136}, {-1.194411,-0.024786}, {0.882686,-0.287766}, {-0.483190,-0.806528}, {-0.483338,0.922785}, {0.041603,0.257413}, {0.498249,0.308889}, {0.634894,-0.438796}, {0.295743,-0.624397}, {0.071996,0.006979}, {-0.372322,-0.699701}, {-0.914731,1.474448}, {-0.027933,-0.761139}, {-0.295425,-0.913413}, {1.158772,-0.605934}, {-1.099764,1.238334}, {0.225717,-0.107705}, {-0.060501,-0.133608}, {-1.004261,-0.846772}, {1.353121,0.234258}, {0.115511,-0.813911}, {-2.526341,-0.552748}, {0.628997,0.483053}, {-0.185551,0.719097}, {1.038135,-1.267809}, {-0.807875,-0.433980}, {-0.095644,0.352912}, {-0.401847,0.180421}, {0.326983,-0.414106}, {-0.700716,-0.454423}, {1.753344,0.341367}, {-0.495613,0.589827}, {0.795817,-0.022842}, {-0.921182,-0.686602}, {-1.692668,-0.029685}, {-1.122250,-0.221354}, {-0.588052,1.370316}, {0.988746,-0.162050}, {-0.653970,-0.824491}, {0.362938,-0.445459}, {1.171398,-0.033829}, {-0.128480,0.441175}, {-0.102669,-0.405796}, {1.815588,-0.843343}, {-0.009833,-0.493984}, {-0.949789,1.129682}, {0.396000,0.520610}, {0.793786,-1.116647}, {0.245421,-0.634161}, {-1.542438,0.723155}, {-0.983627,-0.634587}, {0.325658,0.423862}, {0.686591,0.678101}, {0.840170,1.189774}, {-0.124161,0.328021}, {-0.670110,0.306719}, {-0.647672,-0.390379}, {-0.799760,-0.896996}, {0.791386,0.183740}, {-0.999459,0.290365}, {0.108208,0.682826}, {0.722602,-0.063568}, {0.675050,-0.417068}, {0.049737,-0.626277}, {-0.091161,-0.152698}, {-0.169368,-0.424080}, {0.965155,1.073006}, {0.875146,0.371974}, {0.027511,-0.094845}, {0.046664,-0.034023}, {0.088000,0.191606}, {-0.292866,0.357606}, {0.486410,-0.150151}, {0.758034,0.769236}, {0.373728,0.795101}, {-0.271229,-0.284477}, {1.579846,-0.350881}, {-0.201557,0.028050}, {-0.509997,0.955817}, {0.452960,0.647232}, {-0.406892,0.567143}, {-1.706461,1.360423}, {0.953890,-0.875465}, {0.657629,0.021581}, {-0.129957,-1.226930}, {-0.302970,-0.942701}, {0.048147,-0.690086}, {-0.477384,0.846820}, {0.024795,1.669001}, {1.201373,0.130037}, {0.028444,-0.954818}, {0.597766,-0.157195}, {1.257619,-0.713805}, {-0.793364,0.384184}, {-1.448279,0.244332}, {-0.241725,0.023413}, {-0.834162,-1.002103}, {-0.092808,-0.130621}, {0.251400,0.563136}, {0.142776,-0.576081}, {0.082036,-0.836429}, {0.477424,-0.233922}, {0.592498,-0.708705}, {-0.092424,-0.165077}, {0.961011,-0.437526}, {-0.040373,-0.007315}, {0.151106,0.495559}, {-0.791185,-0.172713}, {0.532989,-0.116812}, {0.323417,-0.257345}, {-1.564697,1.408229}, {-0.721557,1.018666}, {0.590124,-0.231628}, {0.771734,-0.400268}, {-0.051036,0.575551}, {-0.045053,-0.822877}, {0.870412,0.425655}, {-0.252330,-0.444619}, {-0.101144,-0.403048}, {-0.027262,1.535667}, {-0.641673,-0.519516}, {0.738704,0.547992}, {0.168648,-0.151548}, {-1.710591,0.257789}, {-0.092677,0.346082}, {-0.338101,0.082259}, {-0.050333,-0.211235}, {-0.699288,-0.374695}, {-0.591992,1.089774}, {0.627032,-0.226781}, {-0.162334,0.632005}, {1.473994,-0.687098}, {-0.034147,-0.046207}, {1.689347,0.546087}, {-0.064003,0.303521}, {0.024821,-0.361900}, {0.625408,0.536032}, {0.859899,-0.542843}, {-0.768487,0.655731}, {0.156214,0.442436}, {-0.920403,-0.423091}, {0.288070,-0.057672}, {0.835439,-0.025869}, {0.486492,-0.403805}, {-0.670555,-0.015233}, {0.202429,-0.231184}, {0.368462,0.045512}, {-0.759523,-0.656840}, {-0.306825,-1.845469}, {-1.126798,0.416730}, {0.253965,-0.048144}, {0.573909,0.256679}, {-0.077506,0.902226}, {0.106140,-0.161830}, {0.944351,-0.103539}, {0.996280,0.024614}, {-0.437475,-0.095610}, {1.605320,0.269590}, {-0.030932,0.428579}, {0.298472,-0.901861}, {-0.459703,-1.415808}, {-1.427354,-0.827994}, {-0.668940,-0.453174}, {0.081398,-0.075764}, {0.449178,0.115437}, {1.319972,0.180253}, {0.214731,-0.518376}, {0.401389,-0.697856}, {-0.966804,-0.086393}, {0.091583,0.256263}, {0.121284,-0.390260}, {0.682460,0.337722}, {-0.528372,-0.012843}, {0.535463,0.220828}, {-0.207327,-0.002275}, {0.032177,-1.481349}, {-1.046740,0.503154}, {0.990748,-1.593273}, {-0.395646,0.419805}, {0.309283,-0.466387}, {1.107873,0.046100}, {0.557575,0.602810}, {-0.973449,-0.826520}, {1.174536,-0.115438}, {0.270087,-0.056070}, {0.301369,-1.259042}, {0.176198,0.039041}, {0.685912,-1.168439}, {0.868333,0.870309}, {0.428619,-0.314340}, {-0.605176,-0.019613}, {0.551734,0.028005}, {0.967593,-0.636688}, {0.282477,0.393573}, {0.681596,-0.537855}, {0.080952,0.362344}, {1.080137,-1.004045}, {-0.121193,-0.497869}, {0.873317,-0.001814}, {-0.626031,-0.544039}, {0.108145,-0.684680}, {-0.563032,-0.925852}, {0.979941,-0.514612}, {-0.608938,0.633467}, {-0.053909,0.182506}, {-0.043155,1.357664}, {-0.258396,0.276981}, {-0.273572,-0.131251}, {-0.146091,-0.601641}, {-0.285407,-0.362421}, {-0.145943,-0.085332}, {1.246647,-0.702939}, {0.000929,-0.146198}, {0.426066,0.520638}, {-0.385219,-1.726361}, {0.895211,0.932719}, {1.007455,-1.259203}, {-0.192862,0.700090}, {-0.229940,0.047657}, {-0.530813,-0.440148}, {-0.611116,-0.509634}, {-0.580100,0.142553}, {0.614953,0.098769}, {1.398503,0.775546}, {-0.541719,-1.671509}, {-0.241597,1.020908}, {-1.077532,-0.515526}, {0.655762,0.775059}, {-0.765450,-1.239293}, {0.962747,-0.806323}, {-0.609721,0.251087}, {0.050378,-0.384786}, {0.848758,0.698701}, {2.116104,1.231120}, {0.111879,-0.017177}, {-0.687465,-0.181288}, {-0.675059,-0.418819}, {0.279545,-0.339861}, {-0.599722,0.492495}, {0.684005,-0.397453}, {0.147776,-0.639692}, {0.097598,-0.641184}, {0.081977,0.034408}, {-1.362164,0.108665}, {0.163552,-1.671503}, {0.040631,-1.212350}, {0.291558,0.657082}, {-0.295903,-1.140027}, {-0.376469,1.434394}, {0.423132,1.500112}, {0.939533,0.706458}, {-0.723371,0.467943}, {0.734789,-1.367821}, {-0.286426,-0.430950}, {0.741645,0.202610}, {-0.474269,-0.383443}, {-0.111238,-1.258131}, {0.660971,-0.293692}, {-1.682554,0.395094}, {-0.315600,1.396362}, {-0.537842,0.199873}, {-0.495910,1.133647}, {-0.202967,0.311606}, {0.956309,1.302041}, {0.014266,1.520439}, {-0.219412,0.174062}, {-0.681151,-0.951635}, {0.404607,1.513381}, {0.416153,0.210891}, {0.142163,0.694091}, {0.076219,0.460826}, {-1.083648,1.037683}, {0.270994,0.354254}, {0.986873,2.149951}, {0.393861,0.989633}, {0.688971,0.339303}, {0.071278,0.056799}, {-1.016039,-0.020912}, {-1.334468,-0.536643}, {0.734131,-0.538999}, {0.610162,-0.467191}, {0.178098,0.248881}, {1.107075,0.903290}, {0.067019,0.376517}, {0.063519,0.307756}, {0.222092,0.047481}, {-0.642008,1.339605}, {-1.434671,0.390346}, {-0.286363,-1.096375}, {0.528233,-0.114303}, {0.002839,-0.363739}, {0.081966,0.477424}, {-0.745078,-0.212704}, {0.262151,-0.629614}, {0.650702,0.297788}, {-0.360384,0.654797}, {-1.210552,0.346825}, {-1.123528,0.141074}, {0.254125,0.134089}, {-0.854449,-1.272994}, {0.503444,0.407784}, {-0.063343,0.002590}, {-1.217891,0.297324}, {1.362821,-0.092500}, {-0.620024,-0.181695}, {-0.583878,-0.087572}, {-0.077708,-0.591811}, {0.407316,0.210572}, {0.370971,-1.195471}, {-0.299583,1.320451}, {0.203216,0.646346}, {0.366164,0.909438}, {0.203023,0.338926}, {0.886110,-0.616392}, {0.123373,-0.265751}, {1.002188,-0.721736}, {-0.087786,-0.162014}, {-0.147706,-0.257366}, {0.138837,0.156403}, {-0.935765,-0.897313}, {0.145589,0.934317}, {-1.257050,0.339883}, {-0.640691,-0.497094}, {0.249565,0.324230}, {0.429013,-0.807024}, {0.951042,-0.750363}, {-0.233908,0.322168}, {-0.155345,-0.058620}, {-0.923954,1.122193}, {0.575643,0.585440}, {0.020598,1.436937}, {-0.091407,-0.699294}, {0.578322,1.106103}, {-0.103452,-0.119980}, {1.023561,0.237926}, {-0.294089,-0.806202}, {0.353528,-0.555679}, {-0.047433,-0.322646}, {1.165529,0.140760}, {-0.792405,-0.115971}, {-1.054716,-1.248429}, {-0.445960,-0.522722}, {-0.535668,-0.623538}, {1.871897,0.379341}, {-0.602944,0.291409}, {0.163383,-0.302622}, {-0.434323,-0.137421}, {-0.350281,0.083213}, {0.871609,-0.841751}, {0.975364,-0.601977}, {0.494758,0.224624}, {0.242478,0.421058}, {0.232225,-1.453569}, {0.414761,0.849492}, {0.604876,0.053472}, {0.281405,-0.468279}, {-0.722334,-0.651553}, {0.212448,0.783791}, {0.338838,0.566970}, {0.968908,0.412173}, {-0.818738,1.184692}, {-0.942716,1.063357}, {0.156179,-0.884947}, {0.275563,-0.824764}, {0.161075,0.512591}, {-0.063483,-0.132659}, {0.244437,0.539625}, {-1.022381,0.103652}, {-0.191213,0.245448}, {1.202137,-0.341605}, {-0.830870,0.088173}, {-0.376038,-1.505356}, {-0.132499,-0.483134}, {1.405172,-0.388605}, {-0.731394,-0.474684}, {0.424459,1.084378}, {0.569630,-0.465403}, {0.342360,0.588034}, {0.530620,0.584731}, {0.465075,0.367666}, {0.476078,-0.835102}, {0.325328,0.098233}, {-0.588893,0.045396}, {0.190879,0.254040}, {0.743863,1.485769}, {0.092567,0.772116}, {-0.316621,0.345606}, {-0.782686,-0.306573}, {-0.034863,-0.764078}, {0.087823,1.095970}, {0.006421,0.475137}, {-0.539624,1.058665}, {-0.112003,-0.421538}, {0.814427,-2.240315}, {0.297667,0.029955}, {0.387983,0.365167}, {-0.512255,0.697944}, {-1.002389,-1.053748}, {0.785925,-0.982717}, {0.513858,-0.382507}, {-0.739047,0.720458}, {0.563904,-0.592574}, {0.269190,-0.290482}, {-0.443868,1.120572}, {-1.130339,0.430364}, {0.653121,-1.146882}, {-0.143795,-0.395516}, {-0.601965,0.136010}, {0.108440,-1.108889}, {-0.633592,-0.202239}, {-0.057448,0.917590}, {-0.339216,0.038929}, {-0.236586,0.236913}, {0.250535,0.573183}, {-1.205567,-0.151059}, {0.435760,0.422565}, {0.195745,-0.511377}, {1.127967,-0.973948}, {0.989271,-1.392772}, {0.135742,0.374199}, {-0.344161,0.674263}, {-0.011739,-0.360829}, {-1.431782,0.085627}, {-0.120657,0.501635}, {0.750871,0.035088}, {-0.415468,-0.782156}, {0.295173,0.275036}, {-0.601768,0.944578}, {-0.818800,-0.499709}, {0.750934,0.255211}, {0.011539,-0.207586}, {-0.059063,0.577347}, {0.027127,0.182079}, {0.058243,0.931415}, {-0.671812,0.744172}, {0.645644,0.221537}, {-0.870574,-0.487558}, {1.078105,0.615241}, {-0.212722,-0.339828}, {1.044228,-0.140719}, {0.507397,-0.046622}, {-0.034885,-0.440408}, {0.752870,2.271021}, {-0.581907,-0.235032}, {-0.322662,-0.221511}, {0.415694,1.662084}, {0.145703,-0.397409}, {0.254030,0.000521}, {-0.087437,-0.980333}, {0.227735,-0.592052}, {-1.659078,1.444394}, {0.165351,0.893154}, {0.143596,-1.051117}, {-0.150326,-0.227989}, {-0.176142,-2.753715}, {-0.304719,-1.679630}, {0.142689,1.087978}, {-0.017008,-1.616949}, {-1.541590,0.163136}, {-0.310240,-0.896758}, {-1.275426,0.756192}, {1.243312,-0.449887}, {1.116768,0.875750}, {-0.707965,0.070670}, {0.913211,-0.140092}, {-0.979090,0.451250}, {-0.864155,-1.828690}, {0.921171,0.476562}, {0.355440,0.234661}, {-0.524266,0.329766}, {-0.358736,-1.603375}, {-0.648495,0.757445}, {0.418951,0.216528}, {-0.427809,-0.403671}, {0.337321,-1.387978}, {1.655019,-0.215407}, {0.451075,-0.095607}, {-0.244406,0.146289}, {-0.137790,0.167550}, {0.630097,0.525331}, {1.207748,0.306192}, {0.281222,2.135639}, {1.263418,-0.404728}, {-0.462965,-0.321707}, {-0.502160,-0.109373}, {0.267206,0.604009}, {-0.095540,-0.133320}, {-0.518950,-0.011799}, {0.882133,-0.870423}, {-0.273993,-0.871520}, {-0.369624,-0.376413}, {-0.426616,-1.054248}, {0.605760,-0.041916}, {-1.076826,-0.702786}, {0.262593,0.312531}, {-0.247497,0.678962}, {0.286441,-0.227566}, {-0.090176,-0.850555}, {-0.613904,-0.323067}, {-0.479344,0.855193}, {0.812688,0.259328}, {-0.397216,-0.922578}, {0.056809,-0.180688}, {-1.371158,0.243855}, {-1.014261,0.371907}, {0.033020,0.410626}, {-0.916478,1.112751}, {0.669737,1.082816}, {0.431280,-0.142717}, {0.497122,-0.690756}, {-0.119205,-0.540953}, {0.181345,0.682248}, {0.031749,-0.632391}, {-0.426867,0.192814}, {-0.081193,0.403163}, {0.211498,1.119102}, {-0.832741,-0.389058}, {0.687365,0.355030}, {0.635475,-0.427351}, {-0.546154,-0.025184}, {-0.489334,0.302793}, {-0.652276,-0.513544}, {1.042010,-0.712245}, {-1.620305,0.506514}, {-0.862786,0.428432}, {0.604738,-0.408423}, {-0.521311,-0.121360}, {0.541474,-1.269409}, {-0.497038,0.414833}, {-0.241790,-0.086959}, {-0.152804,-0.480866}, {-0.370062,1.004085}, {0.669046,0.066165}, {-0.781561,0.108622}, {-0.559473,0.168401}, {-0.453866,0.541715}, {-0.674082,0.794643}, {-1.933105,-0.147404}, {1.300205,0.575127}, {0.347053,1.234056}, {0.029991,1.224125}, {0.468447,0.084716}, {0.172597,-0.493143}, {0.474934,0.314407}, {-0.641944,-1.460289}, {-0.397220,1.519256}, {-0.434311,0.720815}, {0.309265,0.342057}, {-1.198355,-0.052924}, {-0.707677,0.641043}, {-0.961501,-0.105753}, {0.041026,-0.219741}, {0.296451,-0.155747}, {-0.041502,0.329670}, {-0.175649,-1.146940}, {0.291242,-0.629172}, {0.201876,0.521308}, {-1.249795,1.396366}, {0.721736,-0.901069}, {-0.279288,0.146240}, {0.057212,-0.542932}, {0.895544,0.168533}, {1.243546,0.419985}, {1.443173,0.998921}, {1.178023,-0.424663}, {0.944378,0.694314}, {0.077267,-0.557875}, {-0.100770,-0.061053}, {0.091123,0.783914}, {0.627541,-0.406884}, {0.300425,0.129705}, {1.588361,1.060950}, {-0.737907,-0.102440}, {-0.408529,-0.967258}, {0.409326,-0.583521}, {-0.252992,0.274365}, {0.467400,0.293939}, {0.616506,0.083653}, {0.069252,0.630033}, {1.261570,-0.161448}, {0.980182,0.016625}, {-0.967191,0.426424}, {0.974353,0.373262}, {0.465758,0.406121}, {0.049765,0.155789}, {1.019360,1.113022}, {1.482616,-1.082850}, {-0.370055,1.170347}, {-0.914180,-0.076800}, {0.711749,0.443053}, {1.000344,-0.911585}, {-0.685291,-0.007084}, {0.003534,-1.342957}, {-0.224481,-0.897010}, {1.435450,1.058341}, {0.901816,-1.078478}, {0.440206,0.310660}, {-0.440452,1.055084}, {-0.481999,0.510978}, {-0.425880,-0.638269}, {-0.887044,0.737327}, {0.766324,0.831116}, {0.474519,0.013742}, {0.719499,0.072296}, {0.128751,0.551124}, {-0.346348,-0.115964}, {-0.027651,-0.597646}, {0.459124,0.203102}, {0.076236,0.050293}, {-1.070625,1.089285}, {0.946162,0.643590}, {0.493112,-0.908918}, {-0.530798,0.636518}, {-0.775397,0.649794}, {0.666540,-0.670376}, {-0.051724,-1.176117}, {0.734299,-0.049687}, {-0.366040,0.690415}, {-0.363912,-0.763731}, {0.809317,-0.192377}, {-0.584942,-0.575854}, {0.212895,0.318501}, {-0.229536,-0.564216}, {0.325465,-0.148910}, {-1.208239,0.149334}, {-0.854608,-0.061222}, {-1.275009,1.356758}, {0.005121,0.384686}, {0.540351,-0.968782}, {0.522470,0.505677}, {1.606856,0.455340}, {0.390568,0.183534}, {-0.517696,0.031122}, {0.301117,2.578628}, {-0.301510,-1.216527}, {-0.342228,-0.046947}, {-0.348194,0.992603}, {-0.067880,-0.448626}, {1.327164,0.245718}, {-0.452255,-1.409662}, {0.439151,1.195320}, {-1.258445,1.550755}, {-0.487881,1.205291}, {-0.539438,-0.040513}, {0.112800,0.659260}, {0.163991,-0.512811}, {-0.598902,0.260073}, {-0.759021,1.076704}, {-0.850034,-0.410968}, {0.017091,-0.374513}, {-1.673326,0.068799}, {0.965866,-0.779812}, {-0.058769,-0.720178}, {-0.055818,-0.470524}, {-1.050913,0.161955}, {1.117855,0.191514}, {1.104705,0.175696}, {0.367485,-0.458936}, {0.138570,0.060696}, {-0.646029,0.418187}, {0.562371,-0.098041}, {0.132342,0.156962}, {0.616000,0.247797}, {-0.849396,-0.017041}, {-1.265605,-0.174037}, {0.263149,0.173862}, {-0.947393,-0.548476}, {-0.781072,-1.083780}, {0.283519,-1.581446}, {-0.649758,0.090980}, {0.080903,-0.435490}, {-0.546066,-0.445276}, {0.883145,0.033681}, {-1.438228,-1.592795}, {-0.929637,0.644398}, {-0.843645,1.001079}, {-0.103938,0.314698}, {-0.882742,0.603233}, {0.560060,0.672982}, {0.265318,-0.520901}, {0.037542,-0.468269}, {-0.614846,-0.896426}, {-0.811132,-0.075196}, {-0.701491,-0.278436}, {-0.169226,0.555609}, {0.152666,0.988791}, {0.155918,-1.638999}, {-0.029867,-0.008556}, {0.789905,-0.447722}, {0.369189,0.638383}, {0.224741,-0.857948}, {1.360289,-0.368943}, {1.012567,-1.472297}, {0.750105,-0.167508}, {0.543334,-0.115844}, {0.551806,-1.337525}, {1.881674,0.384950}, {-0.334593,-0.392176}, {0.568056,0.658811}, {0.826330,-0.070998}, {-0.837258,-0.838016}, {-0.559858,-1.022418}, {0.141410,-0.739586}, {-0.910228,-1.581966}, {-0.196767,-0.383060}, {-1.084272,-0.459566}, {-0.639058,0.491458}, {0.003765,0.880280}, {1.188473,-0.151647}, {0.210026,-1.324828}, {-0.100415,0.512765}, {0.513964,-0.254631}, {-0.644200,0.342062}, {0.783293,0.003817}, {0.641491,0.529011}, {0.382460,-0.793553}, {-0.168696,0.881504}, {-0.665068,-0.411740}, {-0.422928,-0.392841}, {-0.293466,-0.490343}, {0.174657,0.011203}, {0.371092,0.692387}, {0.221498,0.094331}, {1.040101,-0.724797}, {-0.594782,-0.235973}, {0.067611,-1.262378}, {0.159732,-0.070026}, {0.643780,-0.804505}, {0.537444,0.286446}, {0.032259,-0.725526}, {-0.348096,1.322484}, {-0.412691,-0.682603}, {0.064050,-0.147144}, {-1.125518,-0.730751}, {0.100103,-0.336546}, {0.011121,-1.408579}, {-0.435174,0.184880}, {0.216681,0.145450}, {0.160929,-0.027522}, {-0.094411,0.775505}, {0.917143,-0.930427}, {0.346981,0.563719}, {-1.570088,-0.176042}, {-0.151329,-1.215049}, {-0.517596,-0.556149}, {1.388624,0.121150}, {-1.346197,-0.331584}, {-1.014897,-0.904715}, {-0.370488,0.625232}, {0.234481,-0.599066}, {-0.838492,0.445635}, {0.570000,0.510314}, {-0.117676,0.285231}, {1.428193,0.287780}, {0.846940,0.133845}, {1.197855,0.607831}, {-0.882803,-1.383388}, {0.034651,-0.574273}, {0.081993,-1.106833}, {-0.415176,-0.051580}, {-0.142726,0.131354}, {0.705295,0.285068}, {0.616462,0.274167}, {0.542851,-0.557143}, {-0.453895,1.480666}, {0.389829,0.139984}, {0.729928,0.418423}, {0.199777,0.543327}, {-0.777423,-0.121813}, {0.544161,1.047456}, {0.144618,0.189402}, {-0.330806,-0.839508}, {-0.386112,0.095356}, {0.334664,-0.570556}, {0.688800,0.258836}, {-0.375194,0.976342}, {-0.979181,0.389248}, {0.352754,0.182541}, {-0.557678,0.183718}, {0.059676,-0.515850}, {0.889687,0.384437}, {0.326761,-0.569045}, {-0.356064,0.960982}, {-0.015646,0.537468}, {0.070428,-0.848307}, {-0.986289,0.860168}, {-0.141119,0.141116}, {0.387450,1.352744}, {0.898063,0.207277}, {0.307952,0.280249}, {-1.091253,-0.645560}, {1.079365,0.448420}, {0.318470,-0.047758}, {-0.664574,0.564786}, {-0.568208,0.492372}, {0.143767,0.051228}, {-0.416511,0.722973}, {-0.892012,-0.308575}, {0.361998,-0.008642}, {-0.497223,-0.648014}, {0.249791,-0.081327}, {0.207192,0.128874}, {-1.025766,-0.510293}, {0.098964,0.621213}, {-0.490461,0.631713}, {-0.448633,1.805053}, {-0.321075,-0.425673}, {0.109959,0.748809}, {-0.636473,0.818729}, {-0.323787,-0.565485}, {-0.031436,0.886588}, {-1.100856,-0.295367}, {0.013026,1.275442}, {1.243183,-0.863036}, {-0.016862,-1.104960}, {-0.503751,0.059092}, {-0.428264,-1.092108}, {0.240446,0.733125}, {-0.924166,-0.286675}, {0.081255,0.268827}, {0.578614,0.267076}, {0.855698,0.686772}, {0.694556,0.169285}, {0.065727,-1.138257}, {-1.326172,-0.634456}, {-0.290709,0.244074}, {0.184962,-0.684550}, {-0.484932,-0.874069}, {0.683665,-1.045173}, {-0.583586,0.853352}, {-0.817727,-1.045137}, {-0.661010,-1.251055}, {-0.369424,0.527159}, {-1.301217,0.246717}, {0.143446,0.006156}, {-0.073755,0.534466}, {-1.136401,-0.589760}, {-0.607309,-0.316112}, {0.335294,-0.448585}, {-0.574601,0.205810}, {-0.239630,0.283724}, {-0.697449,-0.307286}, {0.071816,0.155103}, {1.367617,-1.141154}, {-0.396951,-0.248389}, {-1.092599,-0.617174}, {-1.294691,-0.226609}, {-0.380847,-0.089574}, {-0.743203,0.637321}, {0.235272,-0.819851}, {-1.195970,0.512104}, {-1.679973,-0.738527}, {0.575380,-0.899765}, {-1.649001,-0.199959}, {0.213428,1.358885}, {0.943931,-0.471162}, {0.432717,0.866101}, {0.145445,0.133728}, {-0.555018,0.149227}, {-0.914787,0.598720}, {-0.653930,-0.654901}, {-1.346925,0.329945}, {-0.171424,-0.565344}, {-0.301527,0.240508}, {1.273836,-0.145758}, {-0.675821,-1.095405}, {-0.413545,-0.143713}, {-0.106844,0.824615}, {0.131452,-1.038036}, {-0.326685,1.463916}, {-0.584519,-0.458745}, {-0.543369,-1.094143}, {0.143483,-0.846585}, {0.272163,0.167407}, {0.401943,-0.563082}, {1.212306,0.087879}, {0.504145,-0.648031}, {-0.462351,-0.159423}, {-0.319523,0.179709}, {1.357242,0.045627}, {1.074160,0.840235}, {0.790452,0.720079}, {-0.705431,0.410349}, {0.416680,-0.002549}, {-0.884954,-0.146867}, {-0.808279,-0.171336}, {-1.018281,0.721639}, {0.822228,1.039615}, {1.037790,0.060549}, {-0.074556,-0.200271}, {-0.880853,-0.366553}, {-0.343761,0.333341}, {-0.313231,-0.586011}, {0.283823,0.573617}, {1.143016,0.089887}, {0.410687,1.083689}, {0.277861,-0.083366}, {0.021606,-0.194773}, {-0.750214,1.458612}, {0.917402,-0.016748}, {-0.339684,-0.337568}, {1.005284,-0.645882}, {-0.519209,0.899330}, {0.826162,-0.741211}, {1.300132,-1.109551}, {-0.374995,-0.317730}, {0.785101,0.228184}, {0.415868,0.737788}, {0.527210,-0.188643}, {0.376705,0.413658}, {0.989599,0.805633}, {-0.137061,-0.915614}, {-1.702346,-0.057933}, {-1.956591,0.046432}, {-0.416960,0.338240}, {-0.658461,-1.216968}, {0.365795,0.659371}, {0.252050,-0.558653}, {-0.454467,0.004934}, {0.504714,0.229244}, {-0.278911,-0.228103}, {-0.127623,-0.114296}, {-0.014266,-0.342689}, {-0.604625,0.121864}, {-0.387685,-0.068082}, {-0.091712,0.800537}, {0.485931,-0.161304}, {-0.016110,0.493620}, {-0.653134,-0.353877}, {-1.046778,0.196967}, {-0.263242,-0.289129}, {0.336474,-0.180203}, {0.298396,-0.644825}, {-0.427587,0.572250}, {-0.208223,0.053185}, {0.533386,-1.227956}, {-0.725350,0.128195}, {0.672904,0.530250}, {-0.061316,-0.194678}, {-0.709433,-0.046001}, {-0.588879,0.353459}, {0.123260,0.618527}, {-0.549665,0.060101}, {0.890191,-0.845135}, {-0.454263,-1.313850}, {0.783957,-0.491876}, {1.361276,0.023611}, {-0.458428,0.042147}, {-0.143219,-0.073745}, {0.074903,-0.017429}, {-0.067903,-0.816547}, {-0.380387,-0.772921}, {-0.240030,1.420491}, {-0.003621,0.010600}, {-0.444036,0.409901}, {0.277409,0.726745}, {0.119726,1.707099}, {-0.621712,-0.457125}, {-0.214421,1.545744}, {0.278621,-0.735467}, {-0.099482,0.119682}, {0.952647,-1.013460}, {-0.290825,-0.041022}, {0.368084,-0.002760}, {-0.689006,-0.068005}, {0.015785,0.505867}, {1.306051,0.203435}, {-0.263603,-0.214893}, {0.292584,-0.248845}, {-0.344389,-1.191472}, {0.096606,-0.045469}, {0.147219,0.465939}, {-0.579923,-1.133735}, {-0.918253,-0.931145}, {0.557217,0.127417}, {0.614199,0.613104}, {0.412233,0.943510}, {-0.471662,-0.514960}, {-0.817375,-0.836164}, {-0.264718,-0.546935}, {0.508435,0.771316}, {0.031847,-1.856060}, {-0.443846,-0.260004}, {-0.716667,-1.374211}, {0.501604,0.548927}, {0.314912,1.032581}, {-0.781109,0.916868}, {-0.869837,-1.039860}, {0.630546,0.674600}, {0.272632,0.214175}, {0.531070,0.330978}, {0.675056,-0.653400}, {0.573720,0.836919}, {-0.611225,0.014075}, {-0.257263,-0.391545}, {-0.759020,-0.312859}, {0.264351,0.791373}, {-0.438730,-0.456151}, {-0.103243,-0.632429}, {0.482892,0.141475}, {-1.072978,0.148871}, {-0.939209,-0.558985}, {0.464793,-0.984782}, {0.344131,0.564869}, {1.005227,-0.360487}, {-0.225080,0.071180}, {0.208733,-0.458590}, {0.680123,-1.202615}, {-0.308920,0.517768}, {0.980274,0.589646}, {0.902236,-0.040233}, {-1.138100,0.039754}, {0.169840,0.120056}, {-0.733937,0.211810}, {0.623660,-0.836100}, {-0.173754,0.076214}, {-0.541470,0.864952}, {-0.080678,-0.163713}, {-0.044093,0.109390}, {-0.028695,-0.639742}, {0.643003,0.482195}, {-0.364304,-0.293403}, {-0.231682,-0.410161}, {-0.467438,-0.345931}, {-0.390529,0.236207}, {-0.175126,0.380258}, {0.978393,0.640634}, {0.257795,-0.903357}, {0.641261,0.315085}, {-0.098354,0.511919}, {-0.717823,-0.919712}, {0.709709,-0.590981}, {0.997767,0.207366}, {0.588275,-0.122289}, {-0.222499,0.042538}, {0.394217,0.054417}, {0.214881,0.114854}, {0.596482,0.581786}, {0.477025,-0.157396}, {-0.633506,-1.318668}, {-0.037122,0.440028}, {0.968742,-0.275315}, {-0.513770,0.381195}, {1.098776,0.728930}, {0.150417,-0.421163}, {-0.902237,1.142415}, {-0.729498,0.499136}, {0.418742,0.861949}, {0.267916,-0.737845}, {0.024422,0.770033}, {0.566193,0.531592}, {0.166300,-0.113780}, {-0.275348,-0.044917}, {0.629763,-0.044562}, {0.108581,-0.580329}, {0.247883,-0.494344}, {-1.462176,0.531806}, {0.324773,-1.258865}, {-0.406431,0.059552}, {0.113265,0.337107}, {-0.506166,1.040579}, {-0.703153,0.839870}, {-0.260571,-1.535683}, {-0.454874,-0.041822}, {-0.199992,-0.302883}, {-0.743083,-0.906848}, {-0.675013,-0.597745}, {-0.338081,-1.521178}, {0.931345,-1.090509}, {0.651153,-1.330153}, {-1.079088,0.315838}, {0.246740,0.044863}, {0.202616,1.446147}, {-0.433066,0.284324}, {-0.609858,0.344346}, {1.142330,-0.944550}, {-0.350428,-0.881955}, {-0.451507,-1.605877}, {-0.400012,-0.239471}, {-0.136838,-0.775874}, {0.282265,-0.413392}, {-0.988833,1.529659}, {0.719835,0.005099}, {0.052020,-0.477086}, {-1.283307,0.058599}, {0.165701,0.649111}, {1.021960,-1.416111}, {0.940476,0.062629}, {-0.751199,0.038566}, {0.243450,-0.762697}, {-0.649152,0.044560}, {0.908395,0.209002}, {0.325158,0.216998}, {0.396454,0.138658}, {-0.763522,-0.025907}, {-0.762589,-0.137472}, {-0.327529,-1.036809}, {-0.632504,0.676907}, {0.183574,0.389227}, {-0.859700,-0.703806}, {-1.154826,-0.991693}, {0.449444,0.396030}, {0.441770,0.491508}, {-1.205186,0.299378}, {1.050428,-0.456205}, {0.096725,0.154959}, {0.584349,-0.864514}, {-1.679030,1.143489}, {0.008505,0.228789}, {-0.661763,0.775812}, {0.142798,-0.623065}, {-0.241421,-0.526502}, {1.106520,0.156370}, {0.365753,-0.256303}, {-0.977046,1.118332}, {0.884009,0.203437}, {-0.353712,0.852741}, {1.135822,-0.309740}, {-0.439555,-0.067368}, {0.554689,-0.288402}, {1.734416,1.344531}, {-1.349819,0.759427}, {0.102799,-0.495112}, {0.063102,0.722775}, {-1.222947,-0.080150}, {-0.340332,1.061612}, {-0.228259,-1.903851}, {-0.090773,0.687378}, {0.203348,0.507128}, {-0.577364,-0.212706}, {-0.857515,-0.853969}, {-0.562304,0.383151}, {-0.918214,-1.478510}, {1.026666,0.071216}, {-0.012886,-0.308529}, {0.022988,-0.145717}, {0.234582,1.146633}, {1.975283,-0.173765}, {-1.487083,0.919537}, {-1.203767,1.128685}, {-1.355804,-0.425852}, {-0.102354,-1.008553}, {-0.436827,0.374401}, {-1.741085,0.223597}, {-0.898223,0.399684}, {0.002133,-0.652951}, {0.333743,0.185220}, {-0.163247,1.355073}, {-0.198911,-0.789921}, {0.240101,0.133008}, {-0.149245,-0.404471}, {1.281203,-0.360689}, {-0.172603,-0.635725}, {0.286292,-0.148272}, {-0.989616,0.037128}, {-0.811488,1.305276}, {0.736930,-1.009141}, {1.069361,-0.737178}, {0.752787,-0.592366}, {-0.668359,0.755571}, {0.005078,-0.395512}, {0.006600,0.636287}, {-0.619231,-0.611731}, {0.333470,-0.919963}, {-0.492449,-1.419036}, {-0.622632,0.194757}, {0.676292,1.819990}, {-0.328240,0.542470}, {0.345128,-0.019528}, {-0.616645,0.691087}, {-0.507449,-0.432094}, {-0.204852,-0.217874}, {0.834005,-0.099980}, {1.199202,-0.293367}, {0.449203,-0.521362}, {0.226780,-0.171567}, {0.523436,0.775392}, {-0.711218,-0.421231}, {0.151391,-1.096606}, {-0.249307,0.995733}, {0.245582,-0.339674}, {0.412624,-0.060258}, {-0.300827,0.023954}, {-0.265459,0.720401}, {-0.496526,-2.099281}, {-0.605097,-0.001741}, {-1.378320,-0.341276}, {-0.994346,0.085029}, {1.632400,0.360458}, {-0.491899,-0.396243}, {-0.010321,-1.021544}, {-1.316304,0.895828}, {-0.198830,-0.208983}, {0.916044,0.314340}, {0.562103,-0.885413}, {0.878424,-0.092960}, {-1.045844,-0.687749}, {-1.295066,-0.226382}, {-0.359215,0.110638}, {0.540396,-0.456394}, {1.030585,0.127512}, {-0.085532,0.952881}, {0.106917,0.478915}, {-0.664272,-0.344642}, {0.788052,1.409984}, {-0.673592,1.430835}, {-0.718720,-0.290875}, {-0.721900,0.085461}, {0.476120,-0.538352}, {0.554070,0.581590}, {-0.576287,-0.853427}, {-0.431295,-0.014809}, {-2.353094,1.312785}, {1.022447,1.017332}, {0.418273,2.001674}, {-0.898325,0.139499}, {0.235885,0.080549}, {0.183877,0.730680}, {1.009956,0.519400}, {-0.689154,0.060848}, {-0.683728,-0.649710}, {0.079095,0.516578}, {-1.386436,-0.530334}, {0.302774,-0.053089}, {-0.248980,0.192447}, {-0.680767,0.423570}, {-0.043439,0.510224}, {-1.016935,0.183362}, {0.076796,-1.333739}, {-0.313256,-1.452270}, {-0.850463,0.112410}, {0.244360,-0.084178}, {0.067792,-0.882987}, {-0.569372,-0.399011}, {-0.189225,0.729525}, {-0.588975,-0.077969}, {1.010968,-0.489609}, {-0.395063,0.239897}, {0.025387,0.354833}, {0.725579,0.805842}, {-1.146500,-0.264508}, {-0.222810,-1.814964}, {0.507912,-1.443934}, {0.296149,0.880303}, {-0.439268,1.606203}, {0.334727,0.325640}, {-0.869431,-0.847762}, {-0.407707,0.153088}, {0.348556,0.542411}, {-0.082133,0.838110}, {-0.377740,0.348750}, {-0.523685,0.000306}, {0.451224,1.080533}, {0.864641,0.961894}, {-0.464419,-0.075393}, {0.247437,-0.100790}, {0.677059,-0.034906}, {0.977166,0.730818}, {0.276546,-0.403567}, {-0.380227,-0.745522}, {-0.300027,0.125790}, {0.454573,0.006509}, {-0.771309,0.081517}, {-0.311846,-0.412134}, {-0.014595,0.090009}, {0.707382,-0.074778}, {-1.353019,-0.753631}, {-0.100071,0.822131}, {0.954790,-0.432571}, {-0.078897,-0.647015}, {0.386041,-0.035061}, {0.448108,0.197019}, {-0.270952,0.887823}, {0.648405,-1.073664}, {0.044912,-0.754380}, {-0.455401,-1.209139}, {-1.242109,0.132042}, {0.391696,-0.419274}, {-0.160193,-1.086374}, {0.193327,0.720599}, {1.178831,-0.759304}, {-0.564605,1.076430}, {-0.643302,-0.416708}, {-0.962134,-0.990827}, {0.368858,-0.144279}, {0.036509,-0.440959}, {0.179113,0.270476}, {0.049637,-0.799549}, {0.618109,-0.582336}, {-1.394815,0.395536}, {0.810724,-0.184896}, {-0.176056,-0.058013}, {-0.488312,-0.368066}, {-0.080337,-0.440737}, {0.116364,0.953468}, {-0.307639,-0.302137}, {0.341945,0.164106}, {-0.466698,-1.158425}, {0.052765,-0.344994}, {-0.107626,-0.229995}, {0.080011,0.653158}, {-0.438442,0.465432}, {1.422075,-0.608592}, {0.108080,-1.057456}, {-0.484339,-0.907178}, {-0.746907,-1.978396}, {-0.177762,0.203051}, {0.386845,-1.106388}, {0.611978,-1.018232}, {0.520887,-0.361754}, {-0.360101,-0.064618}, {0.794305,0.526908}, {0.619432,-0.126033}, {-0.340265,-1.373028}, {0.847319,1.149398}, {-0.270491,-0.369213}, {-1.409881,0.523044}, {-0.402942,0.347133}, {0.100939,-0.350152}, {-0.107951,-0.680471}, {0.436856,-0.753223}, {-0.874005,0.762825}, {1.008767,-0.929545}, {0.927536,-0.502055}, {1.498450,-0.602521}, {0.762959,-0.278194}, {-1.522717,-0.649417}, {0.994833,-0.186581}, {0.216919,0.567066}, {0.850492,-0.682931}, {-0.777097,-0.903028}, {-0.850634,-0.188701}, {0.044620,1.541080}, {-0.307342,-0.202304}, {-1.090498,-0.818833}, {-0.004279,0.647200}, {-0.290596,0.500608}, {-0.009800,-0.272120}, {-1.731344,-0.849070}, {-0.389416,-0.540169}, {1.177543,0.747062}, {-0.858150,-0.456143}, {0.973307,1.377374}, {1.032589,0.695827}, {0.015056,0.450971}, {-0.934915,-0.677001}, {0.342935,0.069114}, {0.145474,-0.791543}, {1.997462,-0.362196}, {-0.993218,-0.020078}, {1.123258,-0.113204}, {0.125841,1.008802}, {0.727876,1.066038}, {-0.224529,0.890501}, {0.213441,1.187995}, {0.239012,-0.848701}, {-0.519815,-0.475935}, {0.113620,-0.506924}, {0.203290,-0.296634}, {-0.290231,-0.514121}, {0.218741,1.021963}, {-1.315299,0.334324}, {-0.936988,0.419998}, {0.886813,0.145840}, {-0.188194,-1.261272}, {0.949296,0.646163}, {-0.826651,-0.432253}, {0.061005,0.573649}, {0.922200,-1.334003}, {-0.006091,0.134091}, {1.024516,0.063476}, {-0.089739,-0.290697}, {0.339610,0.989953}, {0.555781,-1.426528}, {-0.025669,-0.189457}, {-0.710042,0.953935}, {-1.262187,0.132588}, {0.658343,-0.530960}, {0.676713,-0.669361}, {0.834718,-2.007914}, {0.833518,0.359230}, {0.649170,-0.687822}, {-0.001830,-0.386894}, {0.994915,-0.229340}, {0.092444,0.399221}, {0.536323,-0.782432}, {0.262010,1.204889}, {-0.208387,0.425622}, {-1.100914,1.683131}, {-1.658393,-0.775979}, {-0.078725,-0.220114}, {-0.303566,0.923927}, {-0.225885,0.033406}, {-0.837593,0.349616}, {-0.560227,0.714755}, {0.551992,-0.393791}, {0.541405,-0.530435}, {-1.165526,0.078792}, {-1.026038,0.387096}, {-0.517090,-0.484350}, {0.136127,0.124638}, {0.698761,0.346848}, {-0.783071,0.074379}, {0.158195,1.117125}, {0.712435,-0.286792}, {-0.362540,-1.001977}, {-0.261314,1.161940}, {1.007828,0.544864}, {0.141605,0.538099}, {-0.536036,-0.744530}, {-0.056455,1.157725}, {0.270982,-0.362836}, {1.263497,0.040674}, {0.146764,-0.753269}, {0.364839,0.210494}, {0.142940,0.490340}, {0.272361,0.068047}, {-1.040589,1.260799}, {1.008508,0.670697}, {-1.014574,2.123840}, {-0.791800,-1.531609}, {-1.780964,0.224965}, {1.573411,0.802257}, {-0.041381,0.109724}, {-1.138676,0.501035}, {-0.552511,0.754384}, {0.074825,-0.740712}, {0.310992,-0.947818}, {-0.161513,1.611466}, {0.351436,-0.213846}, {-0.232344,0.926067}, {-0.712473,0.154074}, {0.531308,0.239847}, {0.530134,0.456501}, {-0.297722,-0.791948}, {-0.072871,-1.399393}, {0.183656,0.497474}, {-0.279718,-0.393118}, {0.648989,-0.820860}, {0.372595,-1.044493}, {1.032547,0.849237}, {1.174671,-0.618382}, {-1.652857,-1.472496}, {0.158852,0.191819}, {0.298620,0.279073}, {-0.234746,-0.135384}, {-0.875820,0.319486}, {-0.426039,0.843713}, {-0.496797,-0.192881}, {-0.578836,0.257663}, {-0.238402,0.900325}, {-0.204088,-1.191861}, {0.736090,1.052130}, {-0.052316,-0.025508}, {-0.213198,-0.936710}, {-0.491398,0.410943}, {0.177843,0.351607}, {0.413028,-0.384109}, {-0.296570,0.034297}, {-0.222102,0.514522}, {0.347397,-0.839739}, {0.755191,0.119118}, {-1.317696,1.106367}, {0.012111,0.796336}, {0.227983,0.378704}, {-0.182946,0.270691}, {-0.133785,0.099382}, {-0.266511,0.038997}, {-0.821681,0.553035}, {0.389307,-1.106532}, {0.135254,-0.883464}, {1.870178,-0.286558}, {-0.437784,-0.288228}, {0.390194,0.094215}, {0.606508,-1.296029}, {-0.093019,-0.614305}, {1.233362,1.207790}, {0.161323,-0.765341}, {-0.350088,1.001790}, {-0.502004,-0.037202}, {-0.067642,-0.030906}, {-0.579459,-0.835251}, {-0.327448,-1.330617}, {-0.822818,-0.500291}, {1.616254,-0.161664}, {0.523254,0.304197}, {0.874754,0.727626}, {-0.625833,0.211643}, {-0.295817,-0.417120}, {-0.533891,0.548556}, {-0.558758,0.571516}, {0.822203,0.414686}, {1.369430,0.325986}, {1.064004,0.174272}, {-0.985833,0.875381}, {-0.345980,0.354199}, {0.100855,1.346421}, {1.413487,-0.299202}, {-0.121055,-1.168458}, {0.501534,-0.001734}, {-0.099610,0.124655}, {-0.014849,-0.560165}, {1.152084,0.973772}, {-0.517379,-0.823509}, {0.020539,-0.675177}, {-0.039182,0.878191}, {0.067950,0.560550}, {-1.394269,0.829335}, {-0.441627,-0.010153}, {0.385140,0.222085}, {0.653992,-0.840685}, {0.554082,-0.687828}, {0.754380,-0.171576}, {0.690489,-0.152949}, {0.000351,-0.549264}, {0.634582,-0.004171}, {-0.818523,1.190795}, {-0.877491,-0.566566}, {-1.770940,-0.640230}, {-0.681648,0.896819}, {0.714653,-1.455870}, {0.904495,-1.333302}, {0.574457,-0.384864}, {-0.758292,-0.483590}, {0.187676,0.405114}, {0.994700,-0.071836}, {0.104159,0.532615}, {-0.044879,-0.582247}, {0.088417,0.343948}, {-0.123630,-0.413369}, {-0.520220,1.012739}, {-0.210080,-0.180696}, {1.090599,-0.559357}, {0.684438,0.378806}, {-0.026784,0.937192}, {1.281961,0.075214}, {0.730268,-0.520097}, {0.937449,-1.019487}, {-0.061509,-0.176202}, {-0.421825,0.313385}, {-0.367561,0.463862}, {-0.121494,-0.479397}, {0.550684,-0.312000}, {-0.047790,-0.598700}, {-0.759626,-0.857538}, {0.464120,-0.230825}, {0.787116,-0.630031}, {-0.508880,0.581898}, {-0.454863,0.576846}, {-0.207468,1.946940}, {-0.913960,-0.235153}, {1.143211,0.111025}, {-0.137003,0.162749}, {-1.146435,1.853002}, {-0.318815,-0.421180}, {-0.260398,-0.035725}, {0.175171,-0.048527}, {-0.261859,0.350284}, {0.162278,-0.033220}, {-0.592133,-0.719742}, {1.618602,0.334038}, {-0.096548,-0.880363}, {-0.348537,0.448118}, {-0.662260,0.179356}, {1.039235,0.256463}, {-0.996895,0.746454}, {-0.834224,-0.090841}, {-0.647685,-0.812629}, {-1.308253,0.412350}, {-0.125295,-0.126640}, {0.576406,-0.583028}, {-0.374377,-0.094747}, {0.533871,-0.080927}, {0.515122,-1.155921}, {-0.507165,0.282523}, {-0.699975,1.619406}, {0.182354,-0.753123}, {0.710919,-0.243223}, {1.477830,-0.025138}, {1.782881,0.259661}, {-0.521191,0.411698}, {-0.166741,0.852319}, {0.207224,-0.159255}, {-0.487196,1.583805}, {0.420298,-0.587703}, {-0.287136,0.347728}, {-0.058681,-1.279535}, {-0.213399,-0.886647}, {-1.030968,0.343184}, {0.028405,-0.952633}, {0.464603,0.442204}, {0.931560,0.453043}, {0.284575,0.967136}, {0.138022,0.059599}, {-0.451299,-1.015639}, {1.003979,1.068919}, {-0.655263,-0.663366}, {-0.019621,-0.138225}, {0.156525,-0.341867}, {0.381232,0.059268}, {-0.023279,-0.077880}, {-0.156909,0.250573}, {-0.169278,-0.914286}, {0.305569,-0.291525}, {0.731565,0.454905}, {1.160261,0.085413}, {-0.402037,-0.336640}, {-0.086852,1.607379}, {1.032812,0.761434}, {-1.011438,0.206404}, {-0.152752,0.593129}, {0.239131,-0.087052}, {0.808812,-0.541022}, {-0.140430,-1.364158}, {0.194295,0.880644}, {0.118366,0.064148}, {-0.536040,0.778541}, {-0.720747,0.002512}, {0.088296,-1.191485}, {0.644848,-0.444607}, {0.485903,0.409511}, {1.460176,-0.876221}, {-0.339190,-0.439055}, {0.447675,0.418898}, {-1.175829,-0.902773}, {0.534399,0.539156}, {-0.365101,-0.459903}, {-0.889603,-0.728754}, {-0.720091,0.356776}, {0.152954,0.223066}, {1.507327,0.739365}, {0.310249,-0.006371}, {-0.112344,-0.419108}, {0.843904,-0.314723}, {0.087930,0.313616}, {0.844712,0.196815}, {0.375568,0.356237}, {0.204981,-0.400083}, {0.361654,-0.270180}, {-0.424588,-0.363919}, {-0.302380,0.390982}, {0.538019,-0.362291}, {-0.287025,0.105711}, {-0.592141,-0.264936}, {-0.265425,0.583077}, {-0.152032,0.522918}, {-0.189186,-0.250399}, {-1.096465,0.469056}, {-0.888549,-1.140952}, {-0.501972,-0.339613}, {-0.203446,0.426474}, {-0.039456,-0.535356}, {0.070475,0.484328}, {0.924276,-0.396241}, {-0.106967,0.012352}, {-0.367264,0.819153}, {0.456802,0.237844}, {0.563188,-1.024814}, {0.009682,-0.064482}, {-0.764852,0.219713}, {-0.414932,-0.531342}, {-0.088775,-0.892699}, {-0.473699,0.186136}, {-0.776648,-0.582610}, {0.175734,-1.058049}, {1.285690,-0.391957}, {-0.091057,-1.011907}, {-0.162767,0.561617}, {0.031953,-0.540131}, {0.534081,0.664403}, {-0.360770,0.122694}, {-0.178962,0.466559}, {-0.004184,-0.337578}, {-0.757067,0.029093}, {-1.101300,0.209913}, {0.465322,-0.086027}, {-0.168690,1.115947}, {0.263414,-0.000775}, {0.159567,0.853760}, {0.094110,-0.060344}, {-0.421000,-1.195796}, {0.441781,0.242496}, {-0.021002,-0.381271}, {-0.481126,-0.563097}, {-0.798248,-0.508280}, {-0.268196,0.934724}, {1.292721,-0.335166}, {0.226534,0.445048}, {1.184933,0.558462}, {0.375495,-1.145480}, {0.748214,-0.745104}, {0.688162,1.047310}, {0.637883,0.949140}, {-0.578133,-0.371881}, {-0.506057,0.137040}, {-0.392437,-1.031430}, {-1.250713,-1.946813}, {-0.206704,1.462894}, {0.398430,-0.219612}, {0.730672,-0.702692}, {-0.698928,-0.450961}, {0.584867,-0.708127}, {0.590944,-0.109226}, {-0.542510,0.253958}, {-0.268875,1.111628}, {0.649546,-0.696286}, {-1.149829,-0.309965}, {-0.154368,-1.500089}, {0.822416,0.353288}, {0.501110,-0.318761}, {-0.212429,-0.008096}, {-0.006164,-0.123611}, {0.288868,0.048345}, {-0.574713,-0.524916}, {0.018293,-1.030497}, {-0.005055,-0.072736}, {0.723568,-0.635163}, {0.237863,-0.875191}, {-1.247980,-0.863139}, {-0.302079,-0.212290}, {-0.421802,-0.759025}, {-0.589974,-0.507471}, {-0.334862,0.003375}, {0.401797,0.706722}, {-0.461749,0.283630}, {-0.841187,-0.665548}, {-0.626371,0.618334}, {-0.020821,0.503040}, {0.116914,-0.093341}, {-0.151675,-0.528033}, {-0.193343,-1.099319}, {0.274029,0.445690}, {-0.021446,-1.220103}, {0.513206,-0.740022}, {1.777028,0.407704}, {0.786759,0.109353}, {-1.004914,0.876901}, {0.464743,1.170006}, {-0.002439,0.125068}, {0.962875,-0.407956}, {0.530559,-0.756573}, {-0.389738,0.110620}, {-0.556624,0.014509}, {-0.132983,0.247574}, {0.587943,-0.342146}, {1.296368,0.197680}, {-0.733120,-0.623643}, {-0.011093,0.978888}, {0.039641,-0.978184}, {-0.443314,-0.153156}, {0.588043,0.490341}, {0.218709,0.363791}, {-0.914626,0.826702}, {1.411108,-0.816719}, {-0.490262,-0.144227}, {-1.206037,1.156620}, {-0.662082,0.479091}, {0.615883,-0.149877}, {1.177829,-0.036366}, {0.394260,-1.578483}, {0.383648,0.485998}, {-0.028002,0.334074}, {0.722762,0.190366}, {0.475814,0.082245}, {0.439991,-0.022567}, {0.014753,0.128088}, {-1.144640,-0.335474}, {0.470690,0.257257}, {-0.751319,-1.107300}, {0.531539,0.456327}, {0.464679,0.083408}, {0.077604,-2.053833}, {-0.031526,-0.401000}, {-0.741780,-0.921745}, {-0.504616,-1.015580}, {0.999344,-0.252633}, {0.199592,-0.614304}, {-1.630268,-0.100880}, {-0.754618,-0.275004}, {-1.115735,-0.519031}, {-0.156714,-0.646913}, {-0.315061,0.123277}, {-0.414084,-0.655534}, {0.469319,-0.330941}, {0.647004,-0.163404}, {-0.255922,1.618105}, {-1.376396,-0.535470}, {1.334960,-0.249415}, {-0.920735,-0.189727}, {2.380895,-0.939174}, {-0.661720,0.252740}, {1.948294,-0.096848}, {-1.518951,-0.774151}, {0.370676,-0.131442}, {0.135880,0.077151}, {-0.793921,0.407360}, {0.434706,0.909590}, {-0.892096,0.523341}, {-0.077199,0.691331}, {-0.703000,0.726934}, {-0.793375,-0.399673}, {0.170385,-0.177280}, {0.497139,0.034646}, {-0.972295,1.093025}, {-0.260981,-0.434597}, {0.295369,0.422417}, {0.508523,0.711213}, {-0.589540,0.610066}, {0.089695,0.577849}, {-1.169455,0.371278}, {0.097553,-0.508773}, {-1.427358,-0.450822}, {0.764169,-0.321795}, {0.281425,1.167852}, {-0.513064,-0.109472}, {1.086924,0.792903}, {-0.003835,0.815400}, {-0.876442,-0.231937}, {0.483821,-0.227180}, {0.779304,0.300537}, {-1.021341,-1.075650}, {-0.042599,1.217835}, {-0.124324,1.154569}, {0.983924,0.128325}, {-0.262283,-0.571139}, {0.163939,0.036503}, {0.502541,-0.457276}, {0.027506,0.551723}, {-0.759208,-0.190703}, {-0.532469,1.757544}, {-0.097832,1.793890}, {-0.233310,0.236538}, {-0.296963,-0.245692}, {0.331985,0.497470}, {1.077897,-0.029477}, {0.485004,-1.550032}, {0.829323,-1.208018}, {-0.417397,-0.885481}, {-0.910960,0.333680}, {0.505911,0.222267}, {-0.779049,-0.648859}, {0.024723,-0.506963}, {-1.044112,0.858742}, {0.349329,0.199761}, {0.426148,0.579699}, {1.397881,-0.625570}, {-0.999539,0.150193}, {-0.506555,-0.493017}, {0.815503,-1.014094}, {-0.309845,0.860823}, {0.636101,0.034581}, {0.383700,0.629026}, {0.046350,-0.409060}, {0.382661,0.192436}, {1.578886,0.214420}, {-0.287174,0.113654}, {-0.567400,0.209722}, {0.432908,-0.738713}, {-0.114021,1.023082}, {-0.087467,-0.003324}, {1.628689,0.382128}, {0.930859,-0.955031}, {0.365787,-0.587545}, {-0.566131,0.401941}, {1.205574,-0.693033}, {1.041772,-0.318306}, {0.520455,-0.180903}, {1.313961,0.417802}, {-0.785333,-0.826391}, {-0.003165,0.987190}, {0.202221,-1.499396}, {-0.156205,0.234217}, {-0.034555,-0.710464}, {0.578915,0.025341}, {-0.967250,0.482964}, {-0.125553,0.645679}, {0.121600,0.282214}, {-0.467374,-0.523647}, {0.801851,0.110140}, {-0.202959,0.245792}, {0.964451,-0.823875}, {-0.720574,-0.733981}, {-1.552269,0.726240}, {0.240196,0.208363}, {-1.020113,0.453542}, {0.835032,0.546624}, {-0.427770,0.890482}, {0.244842,-0.570207}, {0.187974,-0.525677}, {-0.033276,-0.603446}, {0.681630,0.069452}, {-0.076943,1.444004}, {-0.466249,-1.483352}, {-0.333822,-0.553728}, {-0.464640,1.570671}, {0.247143,-0.404809}, {0.217763,-1.913662}, {0.569612,0.403222}, {-0.950478,0.269484}, {1.296281,-0.340172}, {0.248056,-0.421869}, {0.333895,1.464495}, {-0.974868,0.646046}, {0.432670,-1.031978}, {1.128838,0.295748}, {-0.460823,0.493682}, {-0.717489,1.188427}, {1.258650,-0.377973}, {-0.828146,0.064178}, {0.641771,-0.060587}, {0.245022,0.356199}, {0.154221,-0.400658}, {0.570724,0.989517}, {-0.412180,0.972591}, {0.350613,0.545597}, {1.122365,-1.975271}, {0.160367,0.137915}, {0.352691,-0.878584}, {0.423026,0.373635}, {-0.726179,0.179411}, {-0.338326,-1.788241}, {1.947859,1.575207}, {-0.951344,0.536022}, {0.247396,-0.497166}, {0.724586,-0.403144}, {-0.061126,-0.153871}, {0.528230,-0.103315}, {-0.022290,-0.672390}, {-0.000978,-0.182703}, {-0.241614,-0.359854}, {0.220241,0.428535}, {0.798476,-0.295902}, {-0.146218,0.143398}, {-0.619417,0.438462}, {-0.308855,0.331077}, {-1.361136,1.024312}, {-0.647613,0.907512}, {0.233092,-1.078341}, {1.052241,-0.621467}, {-0.198725,1.172681}, {-0.081506,0.023033}, {-0.547092,0.137317}, {0.637615,1.859723}, {-0.623497,-0.596191}, {0.149195,-0.605881}, {0.093756,0.630550}, {0.213268,-0.787503}, {0.426453,-0.185747}, {-1.548568,0.881788}, {0.051195,0.231489}, {0.209291,-0.593744}, {0.628475,0.857678}, {-1.089235,-0.641101}, {0.594605,-0.576514}, {0.252215,-0.021007}, {1.067553,0.471123}, {0.321541,-0.402181}, {0.284533,-0.960188}, {0.541105,-0.082863}, {0.565337,1.026278}, {0.317525,-1.185003}, {0.530922,-0.175306}, {-0.946283,1.216512}, {-0.462192,0.124213}, {-0.067219,0.018689}, {-0.295595,0.227283}, {-1.116823,0.278792}, {0.252187,-0.143898}, {-1.275510,0.009213}, {-0.097323,-1.128635}, {-0.292395,-0.146099}, {0.287647,0.343419}, {-0.297120,1.037639}, {-1.152909,-1.062561}, {0.117167,0.480675}, {0.542487,0.344975}, {-0.269590,0.071787}, {0.351416,1.336789}, {-0.679649,1.205267}, {0.158638,0.405538}, {0.690315,-0.580242}, {-0.528184,0.321935}, {-0.275456,0.434026}, {1.047915,-0.868060}, {-0.268058,0.433124}, {0.395739,0.168345}, {-0.706243,0.261628}, {-1.686516,0.100118}, {1.210646,0.205449}, {-0.403912,1.149188}, {0.218345,-0.059565}, {0.666191,-1.686280}, {-1.080821,0.264224}, {0.133752,-0.095685}, {-0.765833,-0.042006}, {-0.851086,-0.571563}, {-0.431850,-0.146573}, {-0.083487,0.324847}, {-0.458226,0.266507}, {-1.653483,0.274261}, {-0.892105,0.192638}, {0.325240,0.618814}, {0.839860,-0.650172}, {0.586121,0.493141}, {0.424046,-0.596069}, {0.579320,-0.426532}, {-0.860414,-0.096015}, {1.231735,-0.063091}, {0.667487,0.509589}, {-0.244143,-0.241915}, {0.392425,-0.336987}, {-0.577080,0.077028}, {-0.243798,0.518442}, {-0.186535,-0.514620}, {-0.350824,0.893193}, {-1.068767,-0.852674}, {0.256260,-0.692879}, {0.700920,-0.234622}, {-1.148149,0.242284}, {0.140398,-0.995881}, {-1.137315,-0.101466}, {0.642480,1.006613}, {-0.539053,-0.106642}, {0.894393,-0.576259}, {0.055949,-0.805028}, {-0.346054,-0.817483}, {-0.401898,0.351013}, {0.959261,-0.648991}, {-0.653608,1.002869}, {0.844153,0.220495}, {-0.631592,-0.347616}, {-0.725926,1.047737}, {0.236023,0.283730}, {0.123264,0.320307}, {1.048852,-0.451049}, {-0.411348,-0.986237}, {-0.003611,-1.217079}, {-0.178690,0.757153}, {-0.913871,0.555166}, {0.359649,-0.092164}, {-0.762808,-1.868481}, {-0.459054,-0.002625}, {-0.409244,-0.658257}, {0.538408,-0.336349}, {-0.748231,-0.660716}, {-0.250560,-0.025371}, {0.456996,-0.231112}, {0.299549,-1.219953}, {1.172228,-0.394426}, {-0.378361,0.665830}, {0.415112,0.418938}, {-0.548112,0.102843}, {-0.133962,-0.903369}, {-0.468702,0.681193}, {1.222459,1.556622}, {0.578721,0.124503}, {-0.465609,-1.236596}, {0.344855,0.485644}, {-0.769591,0.360454}, {-0.285111,-0.421824}, {0.383924,-0.612774}, {-0.340934,-0.217555}, {1.033859,-0.961846}, {-0.638277,-0.124713}, {0.713854,-1.025591}, {0.641113,0.723899}, {-0.714185,0.025297}, {-0.243242,-0.632974}, {0.004698,-0.561759}, {0.826869,1.173450}, {0.966164,-0.707247}, {-0.542635,1.049767}, {-0.518506,-0.302156}, {0.545221,-0.705138}, {-0.102193,-0.186358}, {0.365136,0.095347}, {0.201770,-0.480568}, {0.016332,0.581984}, {-0.200321,-0.337498}, {0.655831,0.299526}, {-0.638049,0.233237}, {1.424052,-0.333001}, {0.052369,-0.134042}, {-0.288253,1.232961}, {0.183916,-0.245885}, {0.477995,-1.296021}, {-0.386385,-0.681627}, {-0.871080,0.846105}, {0.995819,-0.009435}, {0.296135,0.463088}, {0.504048,0.026186}, {0.829560,-1.492906}, {0.848924,-0.979175}, {-0.656607,-0.872808}, {0.063178,-0.565062}, {-0.543978,0.668214}, {-0.282821,-0.442039}, {0.348789,0.133412}, {-0.108280,-0.389999}, {0.463560,-0.296653}, {0.762565,-0.939430}, {0.562681,0.745310}, {-0.475544,-0.766254}, {-0.140575,0.199589}, {-0.681751,-0.057548}, {-1.695019,-0.254700}, {-0.534453,-1.252818}, {-0.097463,-0.033164}, {0.013134,0.327568}, {0.838379,0.372423}, {0.665435,-1.323001}, {-0.545902,1.244126}, {-0.272644,0.828079}, {-0.246118,0.092456}, {1.201818,0.219538}, {0.298446,0.028810}, {0.130586,-1.150124}, {-0.189182,0.693609}, {-0.220031,0.117008}, {0.553178,-1.375086}, {0.699370,0.127016}, {0.961901,0.570180}, {-0.251472,-0.425322}, {0.846566,0.693479}, {-0.078834,-0.799604}, {-0.174930,-0.493040}, {-1.328997,-0.114349}, {0.127677,0.719281}, {-1.121602,-1.078388}, {-0.664228,1.733879}, {1.383895,-0.064893}, {0.539674,-2.059210}, {-1.022668,0.526521}, {0.733573,-0.308119}, {-0.188367,1.132020}, {0.610091,-0.282697}, {0.423397,0.009993}, {0.393636,-0.644193}, {0.128715,-0.357517}, {0.517623,-0.447918}, {0.158965,1.067064}, {0.371601,-0.581261}, {-0.927113,-0.619224}, {1.303716,-1.165499}, {0.322206,0.200896}, {-0.825444,0.595176}, {0.762828,-1.494917}, {1.295692,-1.470736}, {0.013767,-0.200418}, {-0.238785,-0.631234}, {-0.022044,-0.446997}, {0.407923,-0.215020}, {-0.523749,-0.371120}, {0.713283,0.184292}, {-0.268406,-0.526939}, {0.138893,-1.775308}, {-0.937942,1.003578}, {-0.063107,0.546195}, {-0.317434,0.743692}, {0.750336,0.359023}, {-0.674060,-1.184966}, {2.118200,0.150908}, {0.312808,0.577403}, {-0.115615,-0.380405}, {0.093313,0.277709}, {0.781873,-0.614278}, {0.868257,-0.087240}, {0.696852,-0.037947}, {0.418258,-0.615206}, {-0.502346,-0.363948}, {0.607748,1.486425}, {-0.564759,0.351200}, {-0.583354,-1.006512}, {0.270122,-0.440737}, {0.779603,-0.084426}, {-0.007898,-0.106035}, {0.320554,0.214694}, {-0.177764,-1.660508}, {0.364537,-0.190366}, {0.239589,-0.553225}, {-0.383177,0.604839}, {0.055061,0.152930}, {0.224963,0.592680}, {0.196291,-0.213862}, {-0.145762,0.712477}, {0.968561,0.056109}, {0.598746,0.380951}, {0.702798,0.468182}, {-0.052676,-0.835553}, {0.586200,-0.290487}, {-0.725037,-0.556427}, {0.267490,-0.645407}, {-0.859603,0.256510}, {-1.167129,-0.483687}, {-0.249517,-0.840456}, {-0.081174,-0.251055}, {-0.107692,1.266167}, {0.924662,-0.992418}, {0.178689,0.182523}, {-0.559303,-0.632352}, {-0.754172,-0.225666}, {0.422639,-0.820600}, {0.948590,1.657351}, {-0.281405,-0.169279}, {0.057540,0.103383}, {0.965329,-0.888955}, {-0.568440,1.343059}, {-0.186236,-0.018155}, {-0.110761,-0.791860}, {-0.525465,-0.172692}, {-0.820201,-0.368637}, {0.488156,-0.537817}, {-0.115891,-0.625948}, {-0.244424,-0.566245}, {-0.034738,-0.193282}, {0.995996,1.175802}, {0.633444,1.030137}, {0.651915,0.959199}, {1.923756,-0.905022}, {-1.312415,0.148790}, {-0.096677,-0.026953}, {0.390501,0.602404}, {0.867561,-0.780886}, {-0.248516,0.609102}, {0.754966,-0.110229}, {0.193581,-1.306164}, {-0.006005,-0.435352}, {-0.309464,0.845346}, {-1.119399,-0.660584}, {1.827421,-0.534782}, {1.365352,-0.177950}, {-0.386234,-0.795813}, {-0.468086,-0.003789}, {0.881840,0.036744}, {-0.514770,-0.810572}, {0.151684,0.110164}, {0.458389,0.323786}, {-0.120473,-1.314917}, {0.204646,1.100970}, {0.020544,0.284023}, {-1.429218,1.177050}, {0.905353,0.885557}, {-1.160315,1.849909}, {-1.424230,-1.176559}, {-0.905514,0.530293}, {0.395918,0.575079}, {-0.420402,0.728284}, {-0.068162,-0.727264}, {-1.231408,0.352116}, {-0.629367,0.024142}, {-0.776077,0.835663}, {1.388639,1.024976}, {0.079304,0.123010}, {-0.742089,-0.595562}, {0.413633,0.178427}, {1.148139,0.310845}, {-1.223023,-0.107151}, {0.893529,-0.158779}, {0.455295,0.570938}, {0.361370,0.154722}, {0.452221,0.207669}, {0.342056,0.533909}, {1.139659,0.955398}, {0.954993,0.826294}, {0.436891,0.869010}, {0.229994,-0.244482}, {0.099847,-0.476888}, {-0.522935,0.503299}, {-0.406360,0.610955}, {0.944435,-0.128204}, {0.065770,-1.670135}, {0.740768,-0.036056}, {-0.584472,-2.391807}, {-0.818919,0.704807}, {-0.164141,0.180842}, {-0.896661,0.450317}, {0.871090,0.180263}, {0.135365,1.111712}, {-0.834453,-0.341845}, {-0.257690,-0.035587}, {-0.462253,0.690694}, {-0.658742,-0.564799}, {-0.424196,2.228747}, {0.041939,-0.154539}, {-0.403634,0.374377}, {-1.213989,-0.071425}, {-1.333255,0.641658}, {0.544231,0.130374}, {-0.285297,-0.101088}, {0.409156,0.353600}, {-0.616579,-0.490166}, {0.138329,1.149111}, {-0.089856,-0.208823}, {0.269195,0.727445}, {-0.532599,0.947341}, {1.064642,0.518264}, {-0.160568,0.127441}, {-0.982412,0.428601}, {0.671490,-0.105111}, {-0.544419,0.539514}, {0.650748,0.073317}, {1.383643,0.790720}, {0.254461,-1.150863}, {-1.104232,0.797452}, {-0.254246,-0.008363}, {-0.300772,-0.103863}, {0.576015,0.396718}, {1.176581,0.732102}, {0.153447,0.054295}, {0.000016,-0.797409}, {0.700654,0.049420}, {-0.194685,-0.862644}, {-0.478585,-0.200502}, {-1.569114,-0.100896}, {-0.099857,1.359227}, {0.499119,0.183329}, {-0.594711,0.176504}, {0.329206,1.105346}, {0.247398,-0.273746}, {-0.345935,-0.650667}, {-0.038984,-0.023328}, {-0.333903,-0.697988}, {-1.651307,-0.010374}, {0.135007,-0.017740}, {-0.899312,0.155947}, {-0.464175,-0.248264}, {0.009996,0.360149}, {-0.695577,-0.382261}, {-0.402334,-0.007657}, {0.620490,0.453809}, {0.091440,0.758711}, {0.343166,1.541721}, {0.429339,-0.421495}, {-1.151836,0.034463}, {-0.085981,0.906358}, {-0.026440,1.303161}, {0.193819,0.354018}, {0.562069,-0.395005}, {-0.439914,-0.948032}, {-0.334438,0.562737}, {-0.864347,0.208509}, {-0.643184,-0.135769}, {0.053163,0.285246}, {1.646151,-0.432861}, {1.132792,-0.101623}, {-0.698541,0.212543}, {-0.600253,-0.394334}, {-1.414120,-0.017888}, {-0.368393,-0.718877}, {-0.680915,0.363811}, {-0.319313,0.322213}, {-0.244923,0.003331}, {1.157367,-0.139673}, {0.607064,-0.324347}, {-0.644671,-0.765634}, {0.089788,-0.064507}, {-0.720007,-0.670351}, {0.360654,0.469579}, {-0.309126,-0.364294}, {0.500641,-0.866124}, {-0.320571,-0.281417}, {-0.224328,1.348302}, {0.115238,0.182192}, {-0.936327,-0.335628}, {0.137544,0.668139}, {0.100546,-0.022904}, {-0.024822,-0.108423}, {0.011225,0.990800}, {-0.279834,-0.438608}, {-0.275984,0.874441}, {-0.823737,0.963043}, {-0.768202,1.310865}, {-0.066729,1.666242}, {0.907228,0.372265}, {-0.319255,0.457291}, {-0.671123,0.800845}, {-0.077611,0.279797}, {-0.194283,-0.608156}, {-0.041376,-0.876926}, {-0.020332,-0.458281}, {-0.440460,0.163008}, {0.454897,0.330234}, {-0.331951,-1.540866}, {-0.633680,-0.034518}, {0.757495,0.101301}, {-0.833573,-0.786251}, {0.965374,-1.392252}, {-1.562416,-0.203946}, {0.170349,0.102477}, {-0.297897,0.362400}, {-0.231639,-0.158231}, {0.959721,0.665986}, {1.098533,0.573646}, {-0.091776,0.472902}, {0.533416,-1.030881}, {0.526210,1.060061}, {-0.223194,0.188243}, {-0.611879,-1.854657}, {0.428365,0.538233}, {-1.044283,-0.338610}, {0.027523,0.049873}, {-0.049738,0.893777}, {-0.579892,-0.756394}, {-0.740191,0.748805}, {-0.542898,-1.202564}, {0.825741,-0.048525}, {0.539443,-1.170783}, {1.033500,0.348025}, {0.715562,0.128228}, {0.108775,0.269008}, {0.955005,0.864143}, {-0.207915,0.674605}, {1.403034,0.313231}, {0.296529,-1.450481}, {0.548132,1.537754}, {-0.021173,-0.057581}, {0.936941,0.628264}, {-0.628539,0.130955}, {0.068526,0.421100}, {-0.403953,-1.199911}, {1.453961,-0.456943}, {-0.201087,0.108304}, {0.271445,0.783038}, {0.520304,0.921613}, {-1.395021,-0.780013}, {0.131228,-0.186797}, {-0.855353,0.537660}, {-0.337268,-0.724038}, {-0.432516,0.344531}, {-0.767389,0.464180}, {-1.035498,0.530026}, {0.441212,0.883714}, {1.105195,-0.408422}, {-1.103082,-0.169069}, {-0.295896,0.969360}, {-0.478854,-0.782398}, {0.416756,0.605709}, {0.733967,0.544675}, {0.971172,0.356416}, {0.599161,-1.120536}, {-0.248181,0.556249}, {0.887368,-0.641314}, {0.673646,-0.843245}, {-0.312341,0.397320}, {0.729720,1.731690}, {-0.801968,0.323223}, {-0.536627,0.327754}, {1.622578,-0.105935}, {-1.750543,-0.207221}, {-1.908934,-0.520022}, {-1.469000,0.309230}, {-0.115261,0.192568}, {-0.122709,0.084334}, {0.189000,0.696045}, {0.493215,-1.328955}, {-0.721492,-0.333963}, {1.161054,-0.002184}, {0.512723,1.972711}, {-0.444754,-0.130414}, {-0.868852,-0.249870}, {-0.816170,0.515289}, {1.022070,-0.030086}, {-0.638999,-1.338192}, {0.242959,0.271414}, {-0.602075,-0.601963}, {0.423126,0.633321}, {0.223533,0.010055}, {0.646706,1.390161}, {-0.357542,0.682465}, {-2.009524,-0.830636}, {-0.778937,-0.933904}, {0.175269,-1.002111}, {-0.634257,0.665399}, {-0.657813,0.290878}, {0.747272,-0.428248}, {0.007320,-0.768663}, {1.248404,-0.212529}, {-0.270378,0.342898}, {-0.666666,-1.140755}, {0.196211,1.501705}, {0.302202,0.083526}, {0.991868,-0.189178}, {0.155298,-1.253545}, {-0.466703,-0.348936}, {0.716118,0.723010}, {-1.105804,-0.353013}, {0.555094,0.469380}, {-0.287244,1.500390}, {-0.246485,0.237558}, {-0.510462,-0.763731}, {-0.561608,-0.551817}, {-0.069471,0.227096}, {1.137497,0.948345}, {0.172721,-0.065489}, {0.748416,0.831896}, {-0.155555,-0.792121}, {-0.477453,0.763809}, {0.124495,0.775665}, {-0.615673,0.574783}, {0.204540,0.358135}, {-0.903123,-0.381671}, {0.487242,0.995473}, {-0.926024,0.064502}, {0.929931,0.258942}, {0.312395,-0.341280}, {0.549625,-0.936615}, {-0.861195,0.434874}, {1.386344,1.002935}, {0.150581,1.440757}, {-0.223814,0.226411}, {-1.239970,0.911429}, {0.525911,-0.294822}, {0.774677,-0.033484}, {-0.481076,-0.140935}, {0.097171,0.602864}, {0.273227,1.072022}, {0.309890,0.473631}, {-0.466034,0.111893}, {-0.691036,0.030113}, {-0.821156,-0.280252}, {-0.526502,-0.289481}, {0.720837,0.871377}, {0.790615,0.875528}, {0.797253,0.484843}, {0.111852,-1.055992}, {0.169400,0.295747}, {1.171135,-0.137264}, {0.290213,0.662161}, {-0.393626,-0.143884}, {-0.749653,-0.256666}, {0.260497,0.439210}, {1.135854,-0.431511}, {0.258906,0.670444}, {-1.066888,-0.119150}, {0.453981,0.837529}, {0.411804,0.845536}, {-1.059449,0.036210}, {0.764611,0.473083}, {-0.027347,0.346493}, {0.339275,-1.308645}, {-0.110170,-0.533479}, {-0.509505,0.121273}, {0.007601,0.222193}, {0.245116,1.845521}, {-0.063218,0.106742}, {0.947333,0.014644}, {0.082611,-0.363300}, {0.686892,-0.186853}, {1.235221,0.021879}, {-0.257780,0.017378}, {0.015664,0.281120}, {0.190295,0.897504}, {0.379354,0.120590}, {0.427338,-0.164006}, {1.172924,0.915224}, {0.721570,-1.247163}, {0.084550,0.312004}, {-1.286085,0.190192}, {0.284174,-0.119200}, {-0.010789,-1.373622}, {-0.185711,-0.418035}, {0.505770,0.363854}, {0.061188,0.700576}, {-0.462928,0.573874}, {0.740084,-0.629523}, {0.528961,1.652541}, {0.623314,0.190869}, {-0.597870,-0.927126}, {0.533533,0.251731}, {0.277124,1.153433}, {0.851106,-0.786252}, {-1.330171,1.147345}, {-0.464697,0.070864}, {0.212042,-0.145618}, {-0.687571,1.186801}, {0.481482,0.178028}, {-0.149879,0.044565}, {-0.223578,0.104703}, {0.574649,-0.285176}, {-1.833740,0.013517}, {-1.725660,-0.234990}, {-0.463536,0.588847}, {0.902710,0.788674}, {-0.254637,-0.532033}, {0.572229,1.349808}, {-0.063305,-0.215431}, {0.516429,0.299522}, {-1.130246,0.308680}, {-0.900674,-0.507683}, {-0.583496,0.223002}, {-0.592279,-0.950809}, {-0.100426,-0.586777}, {-0.028076,0.677118}, {-1.803788,-0.573550}, {-1.088822,1.183910}, {0.596317,-1.549580}, {0.668189,-0.306555}, {-0.020441,0.607971}, {0.853888,0.246148}, {0.879904,1.225752}, {1.614124,0.830021}, {-0.291743,-0.135559}, {0.458523,-0.480775}, {0.275255,0.138678}, {0.883940,0.525436}, {-0.542455,-0.182128}, {0.999170,-0.332015}, {0.099745,0.792268}, {0.708489,0.722752}, {-1.050482,-0.202141}, {-1.139348,0.223888}, {-0.165198,-0.429917}, {0.319484,0.084528}, {0.047179,0.526009}, {-1.274314,-0.347434}, {-0.377124,0.028014}, {-0.360881,0.915426}, {-0.725553,-1.003947}, {0.135016,0.821066}, {0.748460,0.802817}, {0.130105,0.256667}, {-0.269583,0.719719}, {0.649401,0.873793}, {0.987143,0.161186}, {-0.240362,0.789136}, {-0.121450,0.924916}, {-0.259843,0.404871}, {0.016597,-0.851491}, {-0.042926,-0.009539}, {-0.196370,-0.423108}, {-1.535905,0.622120}, {-0.853325,0.069428}, {-0.713308,0.493254}, {0.023896,0.016209}, {-1.230161,0.130732}, {0.290839,-1.217903}, {-0.256162,-0.539416}, {0.629392,0.257101}, {0.982458,-0.309371}, {1.120927,1.254970}, {2.080817,-0.873252}, {-0.419871,0.427512}, {-0.008634,0.589147}, {-1.033991,-0.181336}, {0.243382,-0.186332}, {0.333660,-0.327366}, {0.221360,0.080553}, {0.704698,0.309089}, {-0.450895,0.130395}, {0.168094,-0.573576}, {1.018659,0.358155}, {0.418952,-0.622499}, {-0.997778,0.362820}, {0.222152,-0.219744}, {-0.166802,0.480155}, {-0.919339,-0.890832}, {-0.286039,0.292035}, {0.448303,-0.301572}, {-0.449567,1.207951}, {0.897655,-0.477985}, {0.503965,-0.545751}, {0.401514,-1.644501}, {0.271308,0.286347}, {-0.284592,0.577983}, {-0.009884,0.478410}, {1.517272,-1.524143}, {-1.437806,0.700884}, {-0.275556,-1.439763}, {1.893314,-0.130608}, {-0.166340,0.557318}, {-0.691321,0.091720}, {-0.106616,0.561819}, {-0.383283,-0.766395}, {0.775944,0.312252}, {0.208777,-0.783645}, {-0.680476,0.061669}, {0.183494,-1.161476}, {-0.392678,-0.523162}, {-0.073376,0.398882}, {1.160349,-0.807825}, {-0.986883,0.472541}, {-0.034247,-0.317474}, {0.352450,-0.542563}, {0.578726,0.400276}, {-0.141064,-0.541357}, {-0.202180,0.303236}, {-0.873698,-0.388820}, {-1.241604,-0.714657}, {0.264090,-1.498626}, {0.602075,0.227838}, {-0.154430,0.667914}, {-1.462996,0.458992}, {-0.822634,0.424372}, {-0.658739,0.865879}, {-0.422218,0.182616}, {0.053181,-0.072330}, {-0.062806,0.762247}, {0.835446,-1.311912}, {0.087703,0.026320}, {0.542328,-0.151886}, {-1.828505,0.593531}, {-1.080520,1.086271}, {0.849256,0.525323}, {0.497942,0.697413}, {-0.244531,1.043887}, {-1.458797,-0.216500}, {-1.214738,-1.022308}, {0.159061,-0.098262}, {0.727952,1.271393}, {-0.754485,0.954004}, {-0.176632,0.615747}, {0.028411,-0.767032}, {-0.748180,-0.441965}, {0.242074,-0.788659}, {0.670060,1.096734}, {0.154009,-1.243446}, {0.850586,-1.501833}, {1.150581,0.774110}, {-0.989572,0.879881}, {-0.575178,0.294339}, {0.003447,0.489239}, {1.145287,0.324623}, {0.184091,-1.062771}, {0.158889,0.215402}, {0.201577,0.011042}, {-0.181512,-0.504270}, {-0.055374,0.590276}, {-0.531721,-0.884568}, {-0.209470,-0.372283}, {-1.255795,-0.759923}, {0.366333,-0.922058}, {1.322717,-0.181335}, {-0.678275,1.164669}, {-0.750670,-0.137794}, {0.112897,0.410423}, {0.191286,0.113733}, {-0.452766,0.723349}, {-0.736083,-0.170689}, {0.692416,0.132405}, {1.018870,-1.559833}, {-1.443120,-0.229399}, {0.716224,0.947647}, {0.279685,0.653005}, {0.710520,0.177459}, {-0.557518,-1.425511}, {-0.256127,0.315232}, {-0.082281,0.579783}, {-0.857951,-0.531888}, {-0.747733,1.197090}, {-0.006789,-0.966185}, {-0.612837,-0.621645}, {1.132351,0.561013}, {0.365387,0.280771}, {0.819015,0.005642}, {0.077710,-0.275083}, {-0.589305,0.053577}, {0.746235,0.106363}, {0.483010,-0.756925}, {0.555464,-1.006915}, {1.083126,-0.706053}, {-0.114394,-0.110508}, {1.101602,-1.451006}, {0.482109,0.584615}, {0.242472,-1.768441}, {2.096101,0.679566}, {-0.527421,-0.071384}, {1.001152,0.540874}, {1.515730,-0.408948}, {-1.081754,-0.587317}, {-1.534001,-0.908835}, {0.161009,0.022969}, {-0.555147,0.084544}, {-0.049147,0.004229}, {-0.281130,1.140545}, {1.877216,0.501126}, {0.834883,0.052106}, {0.108568,-1.416109}, {-0.496393,-0.851726}, {-0.546421,-0.850434}, {-0.100497,0.366563}, {-0.505233,-0.181871}, {0.003181,-0.257644}, {-0.427184,0.802357}, {2.175829,0.214003}, {-1.470833,-0.859757}, {0.177123,-0.005589}, {-0.155512,-0.028954}, {-0.576782,-0.183170}, {0.659928,0.889550}, {0.547329,-0.667458}, {1.543267,-0.883763}, {-0.027341,-0.587168}, {-0.767299,0.181322}, {-0.058809,0.621716}, {-0.136666,0.112151}, {1.320616,-0.923620}, {-0.758136,0.563569}, {-0.896224,0.826225}, {0.415972,1.835909}, {-0.226084,0.573171}, {0.648683,0.868590}, {0.148597,0.095773}, {-0.923255,-0.006413}, {0.008498,0.345011}, {-0.438936,-0.177137}, {-0.220799,0.289912}, {0.374629,-1.246758}, {-0.405352,-0.920192}, {0.267008,0.274742}, {-0.976383,-0.137177}, {0.688771,1.380999}, {-0.478994,-0.518246}, {0.005349,0.286922}, {-0.296630,0.203362}, {-0.543880,-0.873593}, {1.511098,-0.907825}, {0.433183,-1.112696}, {0.716750,-0.497192}, {0.545947,0.471261}, {1.624519,-0.037766}, {-0.383763,-0.364185}, {-0.361717,0.471989}, {-0.997984,1.419701}, {0.816524,-0.299520}, {-0.245384,0.189731}, {0.065447,-0.059209}, {0.779328,0.204790}, {0.731539,-0.345297}, {0.404574,0.248687}, {1.043347,2.307089}, {0.334605,-0.253063}, {-0.216840,-0.098456}, {0.350238,-0.382642}, {0.349119,-0.532957}, {-1.859158,-0.233730}, {0.862392,-0.445325}, {-0.101752,-0.036104}, {-0.378956,-0.338704}, {-0.994805,0.464318}, {-0.996382,0.208659}, {0.808323,0.455032}, {-2.112046,0.061540}, {0.819598,0.624593}, {0.878981,1.053073}, {-0.341489,-0.442258}, {-0.496671,-0.854729}, {0.065132,0.231571}, {-0.246478,0.530029}, {-0.284105,0.054951}, {0.376465,-0.172238}, {0.299234,0.652101}, {-0.627995,1.886543}, {-0.482888,-0.856058}, {-0.830026,-0.832774}, {0.779929,0.337171}, {-0.369851,-0.412797}, {-0.432700,0.692209}, {-0.065776,1.142133}, {1.054275,-0.392488}, {-0.718737,-0.644947}, {-0.076992,-0.542669}, {-0.175216,0.328426}, {-1.591234,-0.008631}, {-0.369091,-0.575943}, {-0.664370,0.357384}, {-0.223916,-0.159983}, {-0.524674,0.109124}, {0.980964,0.285221}, {1.085013,0.302149}, {0.239054,-1.200352}, {-1.131626,0.880129}, {0.611328,0.462691}, {0.109595,-0.038623}, {0.137486,0.811529}, {0.196871,-0.418142}, {0.699526,-0.181672}, {-0.998589,0.332045}, {-0.339367,-0.358573}, {-0.870253,0.811889}, {0.424311,2.218276}, {0.122027,0.056903}, {-0.485555,-0.599874}, {-0.023325,0.457989}, {-0.257390,0.531017}, {-0.594800,-0.363526}, {1.037002,0.461854}, {0.667577,0.489237}, {0.025804,0.603610}, {-0.453581,-0.162107}, {0.230955,-0.243543}, {-0.669782,0.966822}, {-0.624782,-0.044558}, {-0.787855,0.834564}, {-0.309755,-0.555690}, {0.895544,0.561778}, {-0.081447,-0.146939}, {0.741198,-0.128052}, {0.669056,0.986545}, {-0.747874,0.482845}, {0.073550,-0.909752}, {-0.872751,-0.413878}, {-0.863929,-0.294266}, {1.093727,-0.577195}, {-0.161357,0.324918}, {0.125704,0.723239}, {-0.766171,-0.998274}, {-0.023512,0.626686}, {-0.790729,-0.296770}, {2.140339,0.378394}, {-0.262331,0.246625}, {-0.856882,-0.281878}, {0.997209,0.093078}, {1.148219,-0.546145}, {-0.030454,0.592030}, {0.076696,0.233782}, {-0.141260,-0.777390}, {-0.589189,-0.483685}, {0.289672,0.386135}, {-1.264861,-0.995417}, {-0.042752,-0.532604}, {-0.134781,0.365284}, {-0.340780,1.472232}, {-1.483415,0.914143}, {-0.283508,0.156881}, {-0.736152,-1.343692}, {-0.096745,0.290601}, {0.091744,0.223455}, {-0.353464,0.284825}, {-2.136104,-0.528703}, {0.494303,0.010275}, {0.096905,-0.401126}, {0.727808,0.185508}, {-0.613681,0.534158}, {1.044872,0.971303}, {0.717104,0.100286}, {-1.419618,-0.604448}, {-0.410767,-0.231726}, {0.848536,0.951917}, {0.746859,-0.161283}, {-1.056914,-0.626140}, {-0.302984,0.411916}, {-0.391683,0.373145}, {-0.314457,0.491804}, {1.239795,-0.694703}, {-0.168077,-0.742324}, {0.053671,0.573151}, {1.116908,-0.547143}, {-0.580176,1.202944}, {0.088589,-0.455011}, {0.779909,0.947051}, {-0.559228,-0.818329}, {-0.112108,-0.428851}, {0.483455,0.814911}, {1.219918,-1.265525}, {-0.808586,0.580155}, {-0.538486,-0.056154}, {0.696324,0.122801}, {-0.312645,-0.640077}, {0.504048,-1.031634}, {0.178747,0.494393}, {1.744485,1.430984}, {-0.106728,0.085838}, {-0.572292,0.236523}, {0.052278,0.163252}, {0.083152,-0.214327}, {0.114333,0.425771}, {0.359542,-0.296919}, {-0.935315,0.054319}, {0.076361,-0.824908}, {-0.081657,0.104635}, {-0.267140,-0.395640}, {0.426262,-1.206860}, {0.257655,0.559848}, {0.244592,1.151796}, {0.897633,-0.515393}, {0.418324,0.647156}, {-0.741549,0.112829}, {0.988401,-0.625204}, {0.369894,-0.802808}, {0.658272,-2.303792}, {-0.215105,1.646744}, {0.519888,1.012419}, {-0.238965,-0.324462}, {-0.112710,0.191850}, {-0.066331,-1.146826}, {-0.038528,-0.023964}, {0.373568,0.001974}, {-0.864264,-0.906543}, {0.679871,0.421732}, {-0.043741,1.101931}, {-0.552452,-0.138525}, {-0.095636,-0.883681}, {-0.072871,0.876045}, {-0.238791,0.132820}, {0.244078,-0.390211}, {-0.082340,0.487018}, {0.796116,0.096262}, {0.408338,0.230686}, {-0.441585,-0.626388}, {0.365510,0.719968}, {0.126699,-0.388437}, {0.110592,-0.075274}, {2.264902,-1.563334}, {-0.272466,-0.015424}, {0.608222,1.351945}, {-1.147737,1.113406}, {0.284979,-0.205787}, {-0.450449,0.238860}, {1.027885,-0.840673}, {-0.455186,-0.221859}, {-0.938632,-2.082159}, {1.391911,0.802204}, {0.975475,-0.276338}, {-0.243330,-0.064295}, {0.138971,0.536216}, {0.691166,0.177819}, {1.026026,-1.879955}, {-0.187583,0.063026}, {-0.074402,-0.288843}, {-0.243687,0.652614}, {-1.212718,-0.767727}, {0.251387,0.506600}, {-0.660165,0.422242}, {0.679188,1.371130}, {-0.170699,-0.614176}, {0.520129,-0.476992}, {0.848435,-0.401178}, {0.405024,-0.093561}, {0.626143,0.076985}, {0.295405,-0.762852}, {0.549177,0.725065}, {0.526664,0.156528}, {0.977468,-0.889557}, {-0.501570,-0.343316}, {-2.000729,-1.623071}, {-1.946962,0.328553}, {0.777598,-0.856117}, {-0.326491,0.100360}, {0.198779,-0.141495}, {-0.995361,-1.077920}, {0.047623,-0.345042}, {1.887429,-0.220347}, {-0.157694,0.558083}, {0.462495,-0.577463}, {-0.215078,-0.858704}, {1.253739,0.253756}, {-0.169634,-1.005008}, {-0.047497,0.740879}, {-0.581666,0.040685}, {-0.201745,1.662973}, {0.317519,-1.047738}, {0.967803,0.032915}, {0.212464,0.089187}, {0.718780,0.944362}, {-1.948257,-0.331151}, {0.922229,-0.646998}, {-0.627500,0.378164}, {-0.222201,-1.313254}, {-0.266142,0.014479}, {-0.424176,-0.993625}, {-0.059820,0.319289}, {-0.843761,-0.433096}, {0.087394,-0.412266}, {0.305914,-1.210798}, {0.471462,0.643052}, {1.252232,0.000904}, {0.216403,-0.122659}, {1.216662,0.381311}, {1.296341,-0.140316}, {-0.022925,0.194975}, {0.862409,0.620792}, {0.064807,1.351515}, {-0.565969,-0.236810}, {-0.155437,0.605360}, {0.051996,0.325921}, {0.150445,0.429124}, {0.459964,0.511976}, {0.428904,0.323586}, {0.188316,-0.513317}, {0.939000,1.371945}, {0.649626,-0.024783}, {1.376851,0.200015}, {-0.048111,-1.183880}, {-0.786435,-0.777301}, {-0.241709,1.388115}, {-0.109006,0.946566}, {1.156840,1.561297}, {-0.127523,1.700414}, {0.761736,-0.883463}, {-1.099255,-0.579362}, {1.338325,0.799131}, {-1.021709,0.379151}, {-0.994399,0.063684}, {0.818383,-0.273057}, {0.668366,-0.297543}, {-1.015779,0.889539}, {0.913941,-0.629156}, {-1.700678,0.079532}, {0.256160,-0.369452}, {0.150019,0.098158}, {-0.119020,-1.045646}, {0.741243,-0.716726}, {-1.108436,0.863056}, {0.307252,0.506812}, {-0.171352,-0.503576}, {1.261155,0.176500}, {0.174007,-0.712686}, {-0.141806,0.330990}, {-0.109117,-0.228317}, {0.203634,0.606610}, {-0.712412,0.250541}, {-0.137947,0.768827}, {-0.744735,0.914129}, {-1.167755,0.152721}, {0.327150,-0.113608}, {0.177006,-0.387882}, {0.848800,0.884244}, {-0.111614,-0.152304}, {-0.300267,0.243189}, {0.093467,0.290017}, {1.352682,0.983666}, {0.299551,0.490373}, {-0.353636,0.504747}, {0.613392,-0.069319}, {1.054224,-0.871011}, {2.339625,-0.344715}, {-1.010481,0.230538}, {-0.539544,-0.583309}, {0.499012,0.102340}, {-0.575380,0.783295}, {0.805940,0.307558}, {0.417599,-0.060720}, {-0.177191,-0.033481}, {0.109710,-0.280558}, {0.446148,-0.888981}, {0.195612,-0.768271}, {0.039506,0.628468}, {-0.492624,-0.504992}, {-1.396420,-0.011736}, {-0.046356,0.570300}, {1.085142,-1.294011}, {0.752542,-0.090279}, {-1.473829,0.875925}, {0.761430,-0.161165}, {0.959718,0.258992}, {0.460259,0.467090}, {0.108088,-0.414908}, {0.842820,0.796490}, {0.248226,0.228333}, {-0.166433,-2.038801}, {-1.326628,-0.722473}, {-0.475355,0.696458}, {0.138056,0.500725}, {0.168092,-0.866839}, {0.019798,-0.447601}, {-0.724926,0.046180}, {-0.276801,1.054389}, {0.003609,-0.044388}, {-0.692568,0.378780}, {-0.950437,-0.173717}, {0.251268,-0.282029}, {-0.439649,0.031710}, {-1.080425,-0.215370}, {0.719048,-0.338402}, {-0.687926,-0.765291}, {-0.401951,-1.098793}, {-0.568740,-0.550765}, {-1.100182,-1.817952}, {0.427277,0.515781}, {-0.227288,0.535524}, {0.311561,-0.427903}, {0.531886,0.638625}, {-1.225598,-0.291583}, {-0.123388,-0.705261}, {0.958207,0.537159}, {0.328784,-0.348955}, {0.027395,-0.081869}, {0.067524,0.032020}, {0.528416,-0.759115}, {0.941596,-0.896593}, {-0.219845,-0.026498}, {-0.032095,1.010285}, {-0.610792,0.633952}, {0.108644,0.649716}, {0.552711,0.848451}, {0.201063,0.583580}, {-1.261548,0.388021}, {0.890668,-0.175176}, {0.607208,-0.307948}, {-0.205981,0.041344}, {-0.776250,0.177243}, {0.337239,0.161071}, {-0.037705,-0.120282}, {-0.014045,-1.241609}, {-0.555803,0.188605}, {0.241814,-0.987252}, {-0.463139,0.874492}, {-0.070504,0.160308}, {-0.178391,0.972757}, {-0.366224,-1.177044}, {0.971867,0.479103}, {0.125259,0.461216}, {0.694764,-1.494325}, {-0.277845,0.320865}, {0.616292,-0.626879}, {-0.030863,0.874982}, {-0.766846,-0.016767}, {-0.369774,0.258101}, {-0.149097,0.291851}, {-0.493542,-0.295266}, {1.146361,-0.267924}, {-0.934380,-0.011444}, {0.415305,0.183752}, {-0.491891,-0.357477}, {-0.560602,-0.794771}, {0.317386,0.323920}, {-0.500328,-0.562780}, {0.041451,-0.181370}, {-0.529525,-0.497591}, {0.648109,0.580791}, {-0.582613,-0.249940}, {-0.051540,-0.826063}, {1.646775,0.986751}, {0.481024,-0.258589}, {-0.789469,-0.719895}, {0.638624,-0.406398}, {-0.281974,-0.250588}, {-0.619277,-0.458814}, {1.953618,-0.616999}, {1.097286,0.692794}, {-0.079763,1.146230}, {-0.662413,-0.114838}, {-0.710125,-0.561579}, {0.652582,-1.218519}, {-1.107519,-1.568995}, {-0.128567,-0.868703}, {1.148380,-0.401765}, {0.275385,0.300600}, {0.619924,0.435204}, {0.536274,-1.285634}, {-0.410239,-0.168935}, {0.305748,0.032075}, {-0.278987,-0.244613}, {0.272564,-0.215397}, {0.442925,0.284863}, {0.343083,-0.985089}, {0.243655,-0.535491}, {-0.058256,-0.138061}, {1.469464,0.252023}, {0.457389,0.293408}, {-0.401809,0.313757}, {0.756131,-0.077182}, {-0.785143,0.185929}, {0.335933,0.863780}, {-0.386318,-0.435270}, {0.083281,-0.052628}, {0.228627,-0.248970}, {0.607702,-0.139063}, {-0.640376,-1.314560}, {-0.128571,-0.846763}, {0.614100,-0.123165}, {0.129793,-0.321393}, {-0.266171,-0.648007}, {0.416713,-0.029613}, {0.225510,0.728644}, {0.393598,0.429328}, {1.597007,-0.340253}, {0.768635,0.000382}, {0.010930,0.047671}, {-0.193073,0.323188}, {-1.230056,0.049060}, {-0.445542,-0.226577}, {-1.104063,-0.513824}, {0.799375,0.141533}, {0.706937,0.178929}, {0.236867,0.128337}, {-0.097298,-1.042810}, {-0.735652,0.420616}, {-0.588963,-0.623118}, {-1.635909,0.027266}, {-0.945824,1.046139}, {-0.697924,-0.368466}, {0.335071,-0.324357}, {0.418055,-0.170021}, {-0.243762,0.064872}, {0.400947,-0.261076}, {-0.356738,-0.672932}, {1.059406,0.747656}, {0.122394,-0.472220}, {0.295724,0.705496}, {-0.593362,0.561189}, {0.827451,-0.913072}, {0.575753,-0.582888}, {-0.449487,-1.203258}, {0.002070,-0.209496}, {-0.819372,1.013107}, {-0.223983,0.409793}, {-0.105117,-0.240320}, {0.505813,0.544863}, {-0.062506,0.840417}, {-0.074185,-1.498686}, {-0.050561,-0.531679}, {-0.407497,0.036355}, {-0.640938,-0.667689}, {0.015491,0.043753}, {0.687209,-1.632878}, {0.618242,-1.063427}, {-0.241815,-0.839270}, {0.602280,0.346705}, {-0.701291,0.105225}, {-0.407340,-0.339801}, {-0.345298,-1.047087}, {-0.134469,-0.783420}, {-0.543787,1.086768}, {-0.222433,-0.012544}, {0.760408,-0.125045}, {-0.585757,-1.015366}, {-0.622145,-0.507983}, {-0.105669,-0.357043}, {-0.255007,0.058948}, {-0.925739,0.274361}, {-0.375779,-0.555844}, {0.432849,0.596696}, {0.057883,-0.368657}, {-0.451532,-0.509855}, {-0.756553,-1.048769}, {-0.348112,-0.540951}, {-0.831728,-0.598372}, {0.332533,0.729092}, {-0.135877,0.565378}, {0.062568,-0.041090}, {-0.367750,-0.509901}, {-0.553719,-0.111947}, {-1.021522,0.275873}, {-0.050085,0.315809}, {-0.928466,0.206772}, {-1.191365,1.451377}, {0.920724,1.063243}, {-0.063332,-0.406468}, {-0.515630,-1.279352}, {0.487661,-0.818408}, {-0.027072,-0.002359}, {0.227643,0.002201}, {1.084393,0.067814}, {0.552847,0.362214}, {0.199879,0.680228}, {0.372569,0.685069}, {0.292540,0.321147}, {0.363653,0.247260}, {-0.588959,-0.794473}, {0.352148,0.263375}, {0.524180,-1.109269}, {-0.285997,-0.110195}, {-1.179159,-0.952197}, {0.573545,0.373895}, {-0.224947,0.447142}, {0.137062,-0.810396}, {0.027311,-0.504226}, {1.193193,0.163454}, {0.554125,0.651387}, {0.650385,0.140576}, {-0.818715,-0.166574}, {0.098850,0.910239}, {-0.364286,1.396334}, {-0.209655,-0.775914}, {-0.370780,-1.208692}, {-0.047578,0.440463}, {1.233010,-0.648612}, {-0.140918,0.321229}, {0.196838,0.020064}, {0.376956,0.417526}, {0.185651,0.879134}, {0.640523,-0.156284}, {0.743281,-0.154083}, {-0.360541,-0.915597}, {-0.177171,-0.588081}, {0.960627,-0.156028}, {0.537350,-0.452252}, {-0.235733,-0.027291}, {-0.746237,-0.017686}, {-0.406613,0.579063}, {-0.994922,-1.060790}, {-0.669324,0.430821}, {-0.398869,-0.634411}, {0.762944,-0.143725}, {0.283899,0.878354}, {-0.070692,-1.069885}, {1.509989,-0.562410}, {0.612479,-0.758589}, {-0.176361,-0.743195}, {-1.116313,-0.446980}, {-0.007589,0.391379}, {0.102751,0.106416}, {0.704608,-0.302822}, {0.013309,-0.343502}, {1.258582,-0.751478}, {-0.768097,-1.864140}, {-1.428795,0.401529}, {-0.620903,-1.088542}, {-0.328758,-0.244061}, {-0.351989,-0.302104}, {0.040004,0.117331}, {-0.116617,-0.037641}, {-0.271723,0.244152}, {0.359241,-0.171465}, {-0.586401,-0.121233}, {0.604605,1.161484}, {-0.403794,1.518033}, {-0.320099,-1.946147}, {1.265835,-1.070397}, {1.028280,0.157896}, {0.070852,0.788980}, {-0.628415,-0.602539}, {-0.452347,0.152041}, {0.078811,0.062621}, {0.343871,1.592619}, {-0.148877,0.159315}, {-0.000463,-0.181856}, {-1.639889,-0.376867}, {0.521937,1.142912}, {0.935462,-0.231012}, {0.779969,-0.218677}, {-0.354689,-0.476571}, {-0.904562,0.034987}, {0.125173,0.573088}, {-0.495766,-1.612758}, {-2.062263,0.055393}, {-0.580883,0.751677}, {0.616167,-0.770758}, {0.926324,-0.141294}, {1.046484,-0.562055}, {0.375710,-0.089429}, {-1.166185,-0.487809}, {-0.707975,-0.729558}, {-0.118322,-0.402670}, {0.272092,0.594689}, {0.240115,-0.224296}, {0.244773,-0.446577}, {-0.046161,0.215951}, {1.385255,-0.292633}, {0.161275,-0.089966}, {-0.145126,-0.954704}, {-0.061937,0.085533}, {-0.448217,-0.232410}, {-0.295303,0.406249}, {-0.273240,-0.980753}, {-0.413078,0.765020}, {0.565840,-0.524401}, {0.554666,-0.284595}, {0.114768,0.187983}, {-0.890592,-0.266010}, {0.650560,0.103151}, {0.586884,-0.342944}, {0.626604,-1.021207}, {-1.554120,-0.024893}, {1.869185,0.210050}, {-0.012275,0.388102}, {-0.462074,-0.605148}, {0.255341,-0.179884}, {-0.340660,-1.397953}, {0.187923,0.360639}, {0.484712,-0.181846}, {-0.177458,0.360760}, {-0.482337,-0.081107}, {-0.253224,0.661932}, {-0.724755,0.316380}, {-0.028731,-0.097583}, {-0.090675,0.918420}, {-0.288796,-0.874214}, {-1.281843,-1.346400}, {-1.975214,0.339394}, {-0.613541,0.515236}, {0.250206,0.074632}, {0.996936,0.863932}, {-0.782503,-0.162518}, {-0.086359,-1.378544}, {0.721407,-0.891762}, {0.240897,0.580625}, {-0.133187,1.084532}, {1.435339,-0.476021}, {0.283575,0.906435}, {-0.470645,-0.523456}, {-0.939491,-0.042648}, {-0.949484,-0.012379}, {-0.083733,-0.312338}, {-0.885689,-0.387254}, {0.644921,-1.190076}, {-1.121036,-0.485559}, {-0.356930,-0.523413}, {-0.479120,-0.096518}, {0.952204,-0.417529}, {0.557766,-1.049478}, {1.135059,-0.173027}, {-0.302560,-0.322420}, {-0.183123,-0.081440}, {0.074167,-0.077368}, {-1.407874,0.624530}, {-0.230311,-0.298617}, {0.770821,0.424980}, {-1.662785,-0.094771}, {-0.287911,0.475809}, {-0.048476,-0.203032}, {0.553445,-1.016724}, {-0.376555,-0.217766}, {0.114631,-0.345042}, {-0.593877,0.872006}, {0.276043,0.101842}, {0.882983,0.102907}, {0.001158,-0.755667}, {0.047028,-0.324113}, {-0.646981,0.918540}, {0.291671,0.556886}, {-0.137889,-1.529846}, {0.298642,-0.279176}, {1.768655,-0.293840}, {-0.235337,-0.109834}, {0.114141,-1.468380}, {0.478717,0.202262}, {-0.370501,-1.198972}, {-0.151985,0.917563}, {-0.053941,0.940994}, {1.249975,-0.625239}, {0.398662,0.117818}, {-0.205314,-0.918815}, {-0.419043,-0.126397}, {-1.290054,0.482208}, {0.604014,-0.941747}, {0.399735,0.820368}, {-0.249355,1.154546}, {0.359412,-1.303754}, {-0.016680,-1.368714}, {0.248771,-0.238636}, {-0.263899,0.869256}, {-0.369987,-0.283830}, {-0.466650,-0.208697}, {-1.657492,-0.255177}, {0.933283,0.293801}, {2.525568,-0.350252}, {-0.106274,-0.303690}, {-0.411917,1.078396}, {-0.386613,-1.306253}, {0.971809,-0.252645}, {0.155680,0.462985}, {-0.520441,-0.015665}, {0.566224,-0.363200}, {0.858518,-0.442505}, {-0.176691,0.428155}, {-0.006586,-0.742642}, {-0.224886,-0.229415}, {1.261164,-0.739608}, {-0.669418,-0.283427}, {1.069320,-0.425814}, {-1.009479,0.708147}, {-0.473014,-0.106836}, {0.283953,-0.549942}, {-0.853421,-0.329629}, {-0.464193,0.622219}, {-0.087188,-0.801405}, {0.500055,0.318167}, {1.123225,0.074764}, {-0.235380,-0.485006}, {-0.714091,0.030128}, {-0.239461,-1.534452}, {1.116795,-0.824399}, {-0.825487,-0.207473}, {-0.051835,-0.448793}, {0.164883,0.984871}, {0.253362,-0.188939}, {-0.372140,-0.968723}, {0.119889,0.519344}, {1.497227,-0.331945}, {-1.279538,-0.084243}, {1.188019,-0.265337}, {0.213106,-1.016021}, {0.100412,0.388037}, {-0.512935,-0.810146}, {-0.598912,-0.689186}, {-0.567116,-1.257426}, {0.086859,-0.193039}, {-0.940346,0.374944}, {-0.034308,0.275811}, {-0.545470,0.096491}, {-0.093181,0.866228}, {-1.219487,0.113771}, {1.206312,0.106241}, {0.892992,-0.849006}, {-1.354809,0.769571}, {0.735957,0.424012}, {-0.565301,0.510339}, {-0.899932,0.461990}, {1.103376,0.451826}, {0.132011,-0.842416}, {-0.638797,0.144869}, {-0.642707,0.416796}, {-0.427401,0.363543}, {0.168475,-0.766367}, {-0.751506,0.061892}, {0.574152,-0.505695}, {-0.335072,-0.286006}, {-0.834026,0.619608}, {0.547215,0.287132}, {0.298914,-0.179478}, {-0.561363,0.759409}, {0.745341,0.945481}, {-0.902903,-0.037729}, {-0.390261,-0.658194}, {0.279026,0.870289}, {-0.157925,0.902163}, {0.536656,1.220876}, {0.488578,0.348556}, {-0.531355,0.421049}, {0.117253,0.950821}, {0.718010,-0.541365}, {-0.837644,0.805630}, {0.181802,-0.456620}, {-1.144830,-0.841213}, {0.996041,0.509847}, {-0.317890,1.355479}, {0.444140,0.143680}, {-0.301898,0.640867}, {0.655019,0.121403}, {-0.515694,1.185059}, {0.107950,0.148497}, {-0.134465,0.366955}, {-0.413694,-0.651129}, {-1.609086,-0.006717}, {1.545435,0.251703}, {-0.413004,-0.506535}, {1.058658,-0.827896}, {-0.625554,-1.151844}, {0.662481,0.578591}, {-0.053525,0.667165}, {-1.458461,0.403909}, {1.438034,1.671089}, {0.449605,-0.144770}, {-0.211705,0.239155}, {0.737903,-0.691716}, {-0.892143,-0.156775}, {1.022161,0.568443}, {-0.895021,-1.159661}, {-0.129957,-1.015277}, {0.025829,0.618146}, {-0.725841,1.354559}, {-0.404110,0.239310}, {-0.381553,-1.030973}, {0.661700,0.726828}, {-0.871968,-0.873774}, {-0.634683,-1.073318}, {-0.190002,0.527019}, {0.450145,0.068487}, {-0.493345,-0.565194}, {-0.067292,-1.089015}, {0.311426,-0.162816}, {0.696492,-1.081337}, {-0.079561,0.192018}, {-1.038164,0.001589}, {-1.209152,0.260031}, {0.517225,0.673063}, {-1.070390,0.051018}, {-0.172812,-0.518776}, {0.246896,0.360236}, {1.261445,-1.363637}, {-0.249520,0.115168}, {-1.039049,1.002534}, {0.995219,-0.530594}, {0.158186,-0.370508}, {0.269083,-0.100298}, {0.446531,0.134572}, {0.163460,-0.234424}, {0.655361,-0.266745}, {1.368913,-1.221585}, {-0.037131,0.339951}, {-0.094642,0.057267}, {1.801376,1.555417}, {-0.674158,-0.035333}, {1.133275,-0.083941}, {-0.528994,0.797127}, {-0.613801,-0.039986}, {0.326418,0.552173}, {0.961590,0.195621}, {0.164999,-0.415260}, {1.123196,-0.173849}, {-1.028232,-0.935003}, {-0.006582,-0.860200}, {0.017667,0.604943}, {-0.069771,-0.320669}, {0.410253,-0.394301}, {-0.464009,-1.065665}, {-0.388085,-0.714962}, {-0.379551,-0.026035}, {-0.465111,0.046714}, {0.329026,1.072201}, {-0.204617,0.340843}, {0.353240,-0.991605}, {0.276096,0.606240}, {0.180433,0.509623}, {0.603712,-1.428401}, {-0.288965,0.170324}, {0.199499,-0.953213}, {0.555000,-0.156563}, {-0.332052,-0.212173}, {-0.551909,-1.110573}, {-0.701355,-0.256082}, {0.052215,-0.905251}, {0.154667,0.287735}, {-0.375212,0.075292}, {0.831316,-0.327454}, {-0.544062,-0.324524}, {0.375690,0.435796}, {1.420773,-1.694466}, {-0.472987,-0.933482}, {-0.295863,1.125223}, {1.051997,-0.065696}, {-0.318684,-0.268566}, {-0.407761,0.906795}, {0.611763,-0.834517}, {-0.577473,-0.618957}, {-0.056931,1.173181}, {1.188827,-0.751072}, {-0.395580,-0.277524}, {-0.286643,-0.821660}, {-0.243831,-0.902510}, {-0.859681,0.635123}, {0.132016,0.648423}, {0.176409,-0.202077}, {0.916956,-0.416387}, {-0.387859,0.270335}, {-0.470603,-1.118427}, {-0.082099,0.536118}, {-0.319736,0.623595}, {0.105603,-1.227178}, {-0.246468,-0.676755}, {-0.137842,-0.198255}, {-0.612401,0.267072}, {0.140070,0.928564}, {-0.276867,-0.692713}, {0.330789,0.082247}, {-0.310965,0.471960}, {-0.638029,-0.130571}, {-0.227627,0.371444}, {1.447594,-0.579724}, {1.434342,1.967624}, {-0.533127,-0.360049}, {0.090985,0.865811}, {1.621069,-0.655068}, {-0.107101,0.602642}, {-0.678090,-0.200194}, {0.631410,0.856782}, {0.026655,-0.682962}, {1.024181,-2.110779}, {-0.329181,-0.015544}, {-0.869617,0.964415}, {-0.574403,0.639381}, {-0.200844,-0.526831}, {-0.254985,-0.692828}, {-0.627544,0.386942}, {-0.594953,0.059818}, {-0.728173,0.322703}, {-0.125809,-0.264083}, {-0.862048,-0.024952}, {-0.305275,0.632945}, {0.503292,0.276135}, {-1.035994,-0.815081}, {0.004263,-0.952890}, {0.188009,-0.695292}, {-0.490270,-0.076733}, {-0.847985,1.389987}, {0.757101,0.356868}, {-0.744715,0.614691}, {-1.179587,-1.951262}, {0.406179,-0.501517}, {-0.567337,0.303614}, {-0.351789,1.342365}, {1.001646,-0.588464}, {-0.751630,-0.865141}, {-0.336056,0.681107}, {0.181667,-0.648438}, {0.661723,-0.599597}, {-0.843666,0.930312}, {0.610179,0.011804}, {0.637391,0.730488}, {0.887057,-0.039574}, {-0.596744,0.306742}, {0.693533,-0.788946}, {0.358266,-0.635755}, {-0.103668,1.012763}, {-0.409437,0.643533}, {0.623653,-0.403418}, {0.974759,-0.268196}, {0.726314,0.552070}, {-0.209079,-0.180960}, {-0.253123,0.174441}, {-0.343619,-0.120766}, {0.153239,-1.407465}, {0.003501,-0.301579}, {-0.565188,1.263652}, {0.256238,0.366026}, {-0.196671,0.887337}, {-0.842150,1.461294}, {-0.109778,-0.496130}, {0.715528,-0.835101}, {-0.091186,1.525347}, {1.127749,0.614371}, {0.816348,0.223844}, {0.088529,0.545457}, {0.681807,-0.374392}, {0.497116,0.065098}, {1.063631,0.330052}, {-0.473036,0.034874}, {-0.157862,-0.001305}, {0.434218,0.197264}, {-0.550799,0.054486}, {0.973037,0.002784}, {0.493822,1.160678}, {0.413581,1.777586}, {0.337161,0.056664}, {-0.209438,-0.856569}, {0.312104,-0.137281}, {-0.812145,-1.333425}, {-0.687317,1.281605}, {0.245950,0.130437}, {-1.137658,-1.119996}, {-0.321589,-0.976619}, {1.042918,0.688281}, {0.126441,-0.281123}, {-0.690719,0.538968}, {0.814742,0.984337}, {0.800806,1.660842}, {0.253362,0.679494}, {0.289842,0.084567}, {0.065649,-1.313600}, {1.285205,0.734431}, {0.200443,-0.037244}, {1.168457,0.074900}, {0.726807,-0.504987}, {-0.246237,-0.309694}, {-0.030608,0.807033}, {-0.040489,-0.022902}, {-0.102770,-0.193521}, {0.760273,-0.024193}, {0.153393,0.638818}, {-0.049047,0.072808}, {-0.751583,0.168734}, {-0.163908,-0.509905}, {0.673933,-0.014424}, {-0.833475,-1.008629}, {-0.590986,-0.105231}, {0.643961,0.628600}, {0.438267,0.052614}, {0.110321,0.046113}, {-0.517915,1.355916}, {0.868033,-0.159152}, {0.371602,-0.857592}, {-0.419888,-0.337480}, {0.558052,0.219982}, {-1.131058,-1.257138}, {0.733544,0.933340}, {-0.646570,-0.253332}, {-0.419020,0.398702}, {1.839728,-0.458298}, {0.357707,-1.077159}, {0.104771,0.546341}, {-1.056007,-0.099425}, {-0.111075,-2.042791}, {0.053667,1.959269}, {0.389828,-0.320662}, {1.618109,0.681527}, {0.103634,-1.050246}, {0.915626,0.011762}, {1.378525,0.843142}, {-0.180366,-1.548472}, {0.582354,0.761079}, {-0.022354,-0.375777}, {-0.465816,-0.153786}, {0.803733,1.015041}, {-0.844731,-0.505638}, {0.629193,-0.387865}, {-0.170733,0.143273}, {-0.240827,0.231065}, {-1.250344,-0.026121}, {-0.388932,0.564174}, {0.216054,-0.002170}, {0.232108,1.522422}, {0.519424,-0.502575}, {-0.052313,0.444903}, {-0.705677,-0.812735}, {-1.176015,-1.380785}, {-1.723397,-0.849389}, {-0.225763,-0.831275}, {-0.102199,-0.389384}, {0.320482,-0.065426}, {0.050518,-0.353202}, {0.095464,0.245600}, {0.610228,-1.495030}, {0.499674,0.301388}, {0.079124,-0.689882}, {-0.176226,0.270693}, {0.591074,-0.395837}, {0.962485,1.108556}, {-0.376415,1.325772}, {1.593700,-1.306007}, {-0.669529,0.727318}, {0.730542,-0.798588}, {-1.006559,-1.222182}, {0.105828,-0.657938}, {-0.965177,-0.739113}, {-0.235450,0.413555}, {0.384625,-0.100571}, {1.362594,-1.289672}, {1.236262,0.729084}, {0.648425,-0.684215}, {0.986055,-0.194520}, {-1.152769,-0.783978}, {0.576223,0.548201}, {0.097504,-0.259566}, {-0.360024,0.723081}, {0.607059,-1.003423}, {-0.227951,-0.734850}, {-0.294650,-1.235194}, {0.193334,-1.675714}, {-0.767385,0.618813}, {0.098473,-1.515022}, {0.358150,-0.135228}, {1.113325,1.368268}, {-0.151595,-0.246173}, {-1.570232,-0.023322}, {-1.226877,-0.155807}, {1.879898,0.177321}, {1.050730,-0.192028}, {0.075023,0.738806}, {0.439378,0.159967}, {-0.870739,-0.053774}, {-0.613293,1.773483}, {1.022477,0.589100}, {-1.903232,-0.116118}, {0.130492,0.364978}, {-0.889512,0.294264}, {-0.898750,0.561895}, {0.251006,0.804611}, {-0.113566,-0.941961}, {-0.234088,-0.917563}, {-0.250283,-0.288450}, {-0.907878,-0.094818}, {-0.881149,0.528179}, {-1.303454,-0.223259}, {0.206582,0.221846}, {-1.571029,1.443146}, {-0.706678,-0.390482}, {0.141913,0.510894}, {0.182936,0.421928}, {-0.119593,0.561059}, {-0.744027,0.428400}, {-0.152375,-0.959526}, {1.160939,-0.069288}, {-0.076280,0.162181}, {0.327619,0.155115}, {-0.530834,0.574725}, {-0.430831,-0.101593}, {0.920280,-0.279728}, {0.031487,-0.263205}, {-0.576176,-0.109081}, {0.808516,-0.116405}, {1.125426,-0.338095}, {-0.908021,-0.070953}, {0.115823,0.531403}, {0.848018,-0.378923}, {-0.380277,-0.804293}, {-0.373310,0.893974}, {-0.330087,0.948002}, {-0.086096,-0.437250}, {-0.469167,0.454149}, {0.970617,0.231241}, {-0.817633,0.825176}, {-0.435250,0.430634}, {1.683802,0.853621}, {1.351207,0.235931}, {-0.050678,-0.032962}, {-0.355436,0.398207}, {-0.678845,-0.389077}, {-0.273377,-0.710650}, {-1.210956,0.678632}, {-0.755085,-0.086894}, {-1.100352,0.299255}, {-0.035763,0.330123}, {0.322939,1.101242}, {0.595764,-1.157084}, {-1.243325,-0.664861}, {-1.663768,-0.505836}, {-1.267451,0.873669}, {-0.455003,-0.043938}, {0.470999,0.538119}, {0.579555,-0.717479}, {-0.802576,0.421240}, {-0.237682,0.488393}, {0.862354,0.812298}, {0.230856,0.213576}, {0.141439,0.509505}, {0.206889,0.858483}, {0.026078,-0.546219}, {0.781592,-0.388893}, {-0.123377,-0.794665}, {0.068495,1.214323}, {-0.714881,-1.054803}, {-0.461472,-0.106502}, {0.562470,-0.529948}, {-0.709943,-1.806260}, {0.774827,0.627849}, {-0.082874,0.781436}, {-0.301659,-0.219263}, {0.608640,-0.139735}, {-0.786892,-1.283778}, {-0.366386,-1.194705}, {1.061684,-0.463841}, {-0.559144,0.542831}, {-0.177584,1.693041}, {-0.677950,0.092316}, {0.408613,-0.701200}, {0.245716,-0.034669}, {0.997366,-0.451955}, {-0.206925,0.136163}, {0.352996,1.213371}, {0.148059,0.397297}, {1.053839,0.169786}, {0.573741,-0.636227}, {0.612745,-0.530977}, {0.516292,0.150499}, {-0.036636,1.234072}, {-0.283012,0.155921}, {-0.487859,0.275921}, {-0.763096,1.543259}, {-1.012146,0.104486}, {0.648292,0.052648}, {1.113207,-1.334106}, {1.621335,-0.326147}, {0.044245,1.144835}, {-0.604862,-0.428931}, {0.208504,0.480038}, {0.621283,-0.263113}, {-0.268506,-1.286471}, {-1.190871,-0.981942}, {-0.343443,-0.970982}, {-0.443971,0.172888}, {-0.529676,0.789394}, {-0.747990,-0.355262}, {0.260979,-0.616260}, {-0.364506,0.875792}, {0.230262,-0.650448}, {-0.157869,-0.224029}, {-0.138491,0.273796}, {-0.337906,0.142918}, {-1.126425,1.012362}, {-0.045829,-1.204217}, {-0.040201,0.072991}, {0.095082,-0.512595}, {0.391243,-0.697281}, {0.028836,0.470680}, {-0.254693,0.317709}, {0.527280,0.185890}, {0.679726,-0.539661}, {0.536096,0.202399}, {0.636754,-0.073378}, {-1.635579,0.303301}, {-0.055276,-0.309005}, {-0.377681,-0.618366}, {-0.570992,0.899069}, {0.318571,-1.082007}, {-0.501136,-0.050577}, {0.463349,-0.492909}, {-0.586518,1.437252}, {-1.498805,0.669497}, {-0.668884,0.501976}, {0.849874,-0.274321}, {1.503969,0.089087}, {0.495296,-0.282796}, {0.643539,-0.319368}, {-0.003123,0.503895}, {0.448926,0.415716}, {1.300971,1.185440}, {0.666304,-1.011385}, {-0.501095,-0.437884}, {0.126722,-0.628526}, {0.602820,0.306907}, {-1.052462,1.759648}, {0.804709,-0.383309}, {-0.783674,0.703607}, {0.555353,-0.894576}, {0.367530,-1.251446}, {-0.379656,1.053925}, {-0.368063,1.523577}, {-0.512766,1.220449}, {0.310470,1.126447}, {-0.668240,-0.719845}, {1.311328,-0.273581}, {1.193026,0.758730}, {0.011468,0.411093}, {0.679916,0.227215}, {0.200297,-0.461842}, {0.203994,-0.360266}, {-1.711995,-0.791191}, {-0.587169,-0.795622}, {-0.126559,0.539690}, {-0.311544,0.215622}, {0.624084,-0.939499}, {0.451027,0.963659}, {0.053951,0.473962}, {-0.378173,-0.754404}, {-0.483375,0.169867}, {0.327772,0.443014}, {0.438977,-0.918669}, {0.272163,0.913450}, {-1.148166,-1.651656}, {0.678756,0.022641}, {-0.162722,1.419714}, {-0.442976,-0.324650}, {-0.101127,-0.176612}, {-0.257379,-0.900592}, {-0.692997,-0.167735}, {-0.576470,-1.033809}, {0.129483,-0.795888}, {-0.091165,-0.991940}, {-1.546060,0.754515}, {-1.955953,0.823558}, {-0.507420,-0.342439}, {0.839643,0.549449}, {1.041734,-0.351442}, {-0.099299,0.427514}, {0.396409,0.685967}, {1.582812,1.019917}, {0.095047,-1.033650}, {1.097222,0.232333}, {0.235403,0.744469}, {-0.956056,-0.248764}, {-0.007542,1.351857}, {0.829327,0.165330}, {1.934778,0.740345}, {-0.042057,-0.505659}, {0.029940,0.584136}, {-0.660522,0.974654}, {0.550707,0.625208}, {-0.736240,-0.090338}, {-0.773422,1.383895}, {0.164752,0.971219}, {-0.078130,-0.016604}, {1.174557,-0.671066}, {0.709217,-0.447833}, {1.173960,0.447247}, {-0.452182,-0.283778}, {0.221362,0.238256}, {0.438321,1.115051}, {0.385345,-0.134963}, {-0.116907,-0.452026}, {1.326754,-0.143928}, {0.377629,0.647795}, {0.706637,0.054253}, {0.484648,0.233001}, {0.559643,-0.014661}, {0.442585,0.019897}, {-0.481860,0.319169}, {-1.873430,-0.373696}, {-1.468880,-0.338588}, {-0.564341,0.015573}, {0.135980,-1.308351}, {-0.209918,0.409567}, {0.134787,0.555218}, {-0.280328,0.229205}, {0.356642,0.145734}, {1.209981,-0.768739}, {0.323467,0.471938}, {-0.538486,0.833259}, {0.377447,1.471453}, {-1.542076,0.534062}, {0.308006,-0.915789}, {0.667877,0.838388}, {-1.325876,-0.147813}, {0.049283,-0.409670}, {0.822751,-0.324401}, {-0.248490,0.044080}, {0.397286,-0.527903}, {0.267321,0.173917}, {0.097825,-0.258165}, {0.156112,-0.403906}, {-1.493610,-0.584519}, {1.035700,-0.624181}, {0.193366,0.367275}, {-0.591444,-0.918827}, {-0.031241,1.199647}, {-0.635795,-0.401301}, {0.292380,-1.257504}, {0.790531,0.283300}, {-0.612248,-0.856913}, {-0.003711,0.557474}, {0.046168,0.504684}, {-0.258980,-0.145285}, {-0.700174,0.664606}, {-1.044332,0.112828}, {-1.203219,-0.050509}, {-0.098679,0.681808}, {0.117978,1.020073}, {-0.138431,-0.213658}, {-0.373621,0.314261}, {-1.125660,0.217905}, {0.579220,0.315413}, {0.819870,-0.421409}, {0.215607,0.366435}, {-0.391899,-0.353763}, {0.031600,0.391145}, {0.779146,-0.001210}, {-0.371743,0.236842}, {0.044205,0.077276}, {-0.029682,0.564854}, {-0.803910,0.609822}, {0.083413,-0.621601}, {-0.569837,-0.201887}, {-1.037479,0.198802}, {0.870755,-0.457554}, {-0.644685,0.562159}, {-0.368567,-0.571753}, {-0.908622,0.593380}, {-0.022836,-0.725834}, {-0.212127,0.760100}, {0.182831,-0.768164}, {1.377295,0.894573}, {-0.388203,-1.179584}, {-0.366572,0.592177}, {-1.357572,1.221986}, {-1.467493,1.254612}, {0.728275,1.398245}, {0.270538,-0.980435}, {-0.109704,0.391466}, {-0.819701,-0.282182}, {-1.576902,-0.264228}, {-0.293211,-0.354652}, {0.932537,0.499530}, {0.124587,0.187973}, {-1.182933,0.450079}, {0.045172,0.295898}, {-0.952133,-0.026615}, {-1.077399,1.492134}, {2.165598,-0.025851}, {0.615697,-0.448814}, {0.371116,0.104843}, {-0.637342,0.743420}, {-0.339935,1.886651}, {-0.118879,-0.518939}, {-1.136926,0.479470}, {0.151684,0.264658}, {-0.017438,0.081592}, {0.013367,-0.432744}, {0.818175,-0.660425}, {0.169977,1.246542}, {0.046875,-0.572609}, {0.971265,1.007843}, {0.552874,-0.763970}, {0.402362,0.688291}, {-0.177514,0.862440}, {0.727237,0.600365}, {-0.123267,-0.320214}, {-0.973245,-1.093332}, {-0.622050,0.480692}, {0.850534,0.250697}, {1.435793,-1.334161}, {-0.297031,-1.179966}, {0.304224,0.432995}, {-0.319411,0.044257}, {-0.130799,-0.801940}, {0.073259,-0.088438}, {-0.115683,0.651869}, {-1.284032,0.744815}, {-0.572874,1.298015}, {0.284922,-0.246805}, {0.516957,0.398332}, {-0.407991,-0.949022}, {0.136622,0.969059}, {0.040189,-0.190255}, {-0.287121,-0.074766}, {-0.610242,-0.365421}, {-0.695631,0.472487}, {-0.761210,-1.011743}, {-0.159401,0.335151}, {-0.127480,-2.513513}, {-0.621617,-0.001532}, {-0.233636,0.540107}, {-0.615082,0.740370}, {0.728082,-0.745504}, {0.755201,-0.364350}, {1.455688,0.113219}, {-0.384111,1.799205}, {-0.060414,0.594761}, {-0.645534,-1.282521}, {1.354648,-0.365049}, {0.700581,-0.261592}, {-0.420933,0.412919}, {-0.118914,-0.126970}, {-0.369305,-0.651979}, {0.833302,-0.776442}, {-0.889951,0.333417}, {0.717829,0.832634}, {-0.780598,-0.353698}, {-0.126353,0.156872}, {-0.870306,-0.186695}, {0.188068,-0.272942}, {-0.853431,-0.099724}, {-0.972554,-0.599254}, {-1.109184,-0.599650}, {0.911559,0.240889}, {-0.351639,-0.044241}, {0.189684,-1.491880}, {0.667445,-0.069260}, {0.369786,-0.124370}, {0.521743,-0.479616}, {-1.023666,0.709321}, {-0.009410,-1.304473}, {0.457866,-0.753617}, {0.514681,-1.122756}, {0.052715,0.047106}, {-0.308785,-0.058814}, {-0.543798,0.853832}, {0.057451,0.111738}, {0.023706,0.449120}, {0.854094,-2.321072}, {-1.288841,0.610626}, {1.070943,0.900281}, {-0.314136,0.986491}, {-0.484965,-0.906231}, {-0.534703,-0.786444}, {0.529497,0.880418}, {-0.594563,-0.523274}, {-0.714857,-0.819102}, {0.846788,-0.989649}, {-0.535982,0.146718}, {-0.205090,-1.063691}, {0.080422,-1.044347}, {0.026911,0.228324}, {1.491431,0.321161}, {0.661557,-0.309540}, {0.438783,-0.302408}, {0.264915,1.176531}, {0.410967,-0.019055}, {0.147043,-0.649251}, {0.492513,-0.013112}, {0.332999,-0.478951}, {0.068906,0.560099}, {-0.486798,-0.215182}, {-0.415900,0.858515}, {0.705293,1.097754}, {-0.154359,0.384802}, {-0.221449,-0.178315}, {-0.575917,0.074498}, {0.146447,0.313370}, {0.126790,0.398399}, {0.289635,-0.126919}, {-0.074227,-0.213796}, {-0.065885,0.678123}, {0.656923,0.499602}, {-0.564350,-0.575801}, {-0.629272,1.852769}, {-0.652193,-1.012536}, {0.935159,0.505553}, {0.010577,0.401854}, {0.400071,0.797892}, {-0.638037,0.362640}, {-1.348614,-0.440950}, {0.377069,-0.621824}, {0.782456,0.777046}, {0.279392,-0.409277}, {-0.093743,-0.882047}, {0.432319,-0.202289}, {-0.854399,0.269268}, {-0.569395,-0.550870}, {-1.305619,-0.766131}, {0.399734,0.356151}, {-0.587518,0.990603}, {-0.461472,-0.854095}, {-0.776429,1.123592}, {-2.094551,0.016854}, {-0.852694,-0.164675}, {-0.752425,-1.146923}, {0.235446,0.097446}, {-0.191573,0.584031}, {0.036355,0.837690}, {0.950405,-0.468673}, {0.022319,0.946512}, {-0.666949,0.540367}, {-0.517209,-0.408994}, {-1.497582,1.429821}, {-1.424709,-0.265863}, {1.067800,-0.018164}, {-0.403612,0.521463}, {0.520736,0.179845}, {1.558446,2.297753}, {-0.611957,0.341035}, {0.574676,0.189530}, {0.258192,-0.367458}, {-0.515869,-0.068053}, {0.320528,0.981756}, {0.756459,0.855889}, {-0.436195,0.505209}, {-0.197706,-0.042505}, {0.570348,-0.442366}, {0.618202,-1.234316}, {-0.246493,0.145392}, {0.249191,0.204177}, {-0.504036,-0.337933}, {0.265983,0.156993}, {1.010411,-0.820082}, {0.967946,-1.061406}, {-0.994254,0.516854}, {0.246911,-1.559882}, {-0.224508,-1.563141}, {-0.420039,-0.552007}, {0.078066,-0.074774}, {-0.203336,-0.297024}, {-0.109335,0.225023}, {1.250758,-0.808705}, {-1.025240,0.921113}, {0.077180,1.828942}, {-0.881796,-0.755137}, {-0.091333,-1.279348}, {-0.062119,0.378901}, {-1.499594,0.831770}, {-1.371222,0.612782}, {0.282594,0.759345}, {0.601033,-0.540685}, {0.873884,-2.107622}, {-0.413409,1.183102}, {0.035613,0.033901}, {-0.371701,-0.512521}, {-0.390149,0.589897}, {-0.421352,-0.052553}, {0.213716,-0.657424}, {-0.090430,-0.071487}, {0.058196,-0.653575}, {-0.705436,0.067998}, {-0.053729,-0.957150}, {-0.271140,0.371048}, {1.052676,1.059416}, {1.043681,0.143528}, {1.356857,0.687629}, {0.091930,1.509739}, {0.339513,0.792737}, {-0.055242,1.281981}, {0.029510,0.013582}, {-0.120412,0.188881}, {-1.249855,-0.851677}, {-1.079515,-0.452445}, {0.393657,-1.150160}, {-0.008601,-0.141600}, {0.225137,0.963209}, {-0.201913,0.770309}, {-0.791302,-0.165032}, {0.517454,-1.029753}, {-0.607919,-0.209344}, {0.527461,-0.735633}, {-0.266679,-0.286525}, {-1.703636,-1.176549}, {-0.200180,0.435851}, {0.269835,0.613393}, {0.745864,-0.434237}, {0.471439,1.529898}, {0.363553,-0.002981}, {-0.338163,0.906062}, {0.883375,-0.307422}, {-1.120693,-0.268472}, {1.221899,2.130810}, {0.141656,0.031991}, {-1.233096,0.667534}, {0.624299,0.425867}, {-0.170222,0.592248}, {1.076470,1.444681}, {-0.183938,0.142772}, {-0.821524,-1.008571}, {-0.146813,0.404454}, {0.684416,-1.073105}, {1.117901,-0.560429}, {0.530161,-0.027038}, {-0.253069,-1.639337}, {-0.717668,-1.081437}, {0.653127,0.114892}, {0.095271,0.140140}, {-0.053616,0.987509}, {-0.122837,0.191773}, {-0.706302,0.420038}, {1.186340,1.028863}, {-0.117144,-0.018757}, {1.239061,-0.216330}, {0.295645,0.318719}, {-0.287663,0.752288}, {1.436414,1.607598}, {-1.174806,0.781807}, {0.919130,0.760221}, {-1.465950,-0.301338}, {-0.028985,0.532472}, {0.108693,0.221737}, {-0.679071,-0.035699}, {0.046814,-1.058415}, {0.343905,0.344772}, {0.570854,0.524909}, {0.315360,0.196929}, {-0.434684,1.005404}, {-0.404268,0.684464}, {-0.747997,-0.269495}, {-0.358844,0.247169}, {-0.714708,-0.157657}, {1.004165,0.448171}, {-1.235014,-0.550712}, {0.442388,-0.935624}, {0.702100,-0.807752}, {0.358939,-0.783201}, {-1.133754,-0.837761}, {-0.467297,-0.165956}, {1.008790,0.066224}, {-0.272849,0.330043}, {-1.966277,1.246796}, {-0.917265,-1.017836}, {-0.027061,-0.299158}, {1.124767,-0.984969}, {0.146385,1.049555}, {0.558241,0.085019}, {-0.158555,-1.463400}, {-0.133509,-0.671532}, {0.666487,-0.563999}, {0.656119,0.119249}, {1.041716,0.447584}, {-0.025932,0.527085}, {-1.593675,-0.940512}, {0.218719,0.224522}, {0.858700,-0.400714}, {-1.323566,-1.320280}, {-1.019153,-0.525948}, {1.737703,0.326414}, {-0.638443,0.055007}, {0.086753,0.243740}, {-0.885970,0.377519}, {1.184245,0.505174}, {0.202493,-0.306676}, {1.189207,-0.823331}, {0.398937,0.120145}, {-0.646384,0.314075}, {-1.137885,-0.095339}, {0.948864,-0.716966}, {0.463843,-0.358252}, {0.980654,-0.901849}, {-1.215558,-0.298514}, {0.270095,0.365947}, {0.140718,-0.306677}, {0.587339,-0.550040}, {0.855364,-0.692435}, {-0.456061,-0.045239}, {0.462259,-0.725169}, {0.724895,0.455988}, {-1.028200,-0.257751}, {-1.072973,-1.142716}, {-0.576397,-1.548709}, {-0.284426,0.134787}, {-1.039392,0.502217}, {-0.217312,-0.180047}, {0.694919,0.186815}, {-0.847320,-1.048344}, {-1.022385,-0.565583}, {-0.660343,0.410869}, {-0.718115,-0.544506}, {-0.182651,0.469230}, {-0.231679,-0.362006}, {-0.015608,0.083363}, {1.222271,-0.723882}, {-0.508861,-0.822197}, {-0.902930,0.636436}, {0.112424,-0.324648}, {0.315799,-0.188587}, {1.024169,-0.474601}, {-1.152947,0.595031}, {0.902782,-0.236906}, {-0.241519,0.977620}, {-1.518523,-0.585001}, {-0.000930,0.727162}, {0.877585,1.068244}, {-1.638870,-0.206063}, {1.408922,-0.130538}, {-0.523389,-0.811424}, {0.101777,0.366629}, {1.289354,-0.426427}, {0.604590,-1.337170}, {-0.058429,1.861749}, {-0.561091,-0.637419}, {0.424127,-0.323688}, {-0.081614,-1.449043}, {0.968017,0.267704}, {0.108011,0.499381}, {0.170847,-0.487345}, {-0.458183,-0.767461}, {-0.039893,0.250217}, {0.131645,-1.086087}, {0.161841,0.342612}, {-1.600553,0.342165}, {0.541176,0.414102}, {0.409636,0.349951}, {1.204189,-1.086040}, {0.350477,0.682488}, {-0.721238,0.208825}, {0.428534,-0.790265}, {0.121097,-0.359704}, {1.361358,1.230809}, {-0.384294,0.472650}, {0.145290,-0.174952}, {-0.046377,-0.107608}, {-0.383656,0.796097}, {1.031273,0.264224}, {1.167621,-0.300218}, {-0.292386,-0.318581}, {-0.335417,-1.144967}, {-0.648088,-0.289108}, {-0.068185,-0.682794}, {0.894230,0.285057}, {-1.260050,0.086270}, {0.247349,0.104827}, {0.007993,0.124410}, {-0.089590,-0.563814}, {1.509332,-1.875702}, {-0.076540,1.065093}, {0.316001,-0.172131}, {0.102151,-0.953328}, {-0.190367,0.254101}, {0.255213,1.104178}, {0.291825,-0.052904}, {-1.058847,-0.004168}, {-0.293184,-0.372100}, {-0.420888,0.496658}, {0.646020,0.472691}, {-0.568856,-0.424865}, {-0.822198,0.342074}, {0.566707,-0.906916}, {0.880532,-1.481777}, {-0.158097,0.395299}, {-0.169400,-0.308643}, {-0.420999,-0.995964}, {-0.134220,-0.451067}, {-0.560854,-0.358684}, {0.533672,0.609505}, {0.225296,-0.259670}, {0.136387,1.320238}, {-0.143082,-0.656944}, {-0.039519,-0.440310}, {0.064516,-0.216104}, {0.327496,-1.720161}, {1.222967,0.133978}, {0.344704,-0.992218}, {-0.298720,1.336461}, {0.910618,0.343415}, {0.792131,-0.077562}, {-0.078523,0.161363}, {0.419388,0.354756}, {-1.022862,-0.528513}, {0.024169,0.636111}, {-0.121226,0.869259}, {0.269960,0.147618}, {-0.173962,-0.286819}, {-0.610308,-0.112641}, {1.516570,0.220792}, {0.067268,-0.929080}, {0.140334,1.330344}, {0.126366,-1.081471}, {-0.243734,-0.118978}, {-0.277617,-1.194380}, {-0.682716,0.298833}, {-1.288838,1.513837}, {-1.077710,-0.288363}, {0.353844,0.331654}, {-0.496007,-0.449799}, {0.674501,-0.901818}, {-0.425209,-0.743499}, {-0.493533,-0.014724}, {-0.126484,-0.166360}, {0.321523,-1.190012}, {-0.243319,0.253336}, {-0.324947,-0.463787}, {0.224061,-0.778740}, {-0.022366,-0.614416}, {-0.104315,-0.614804}, {0.416559,0.514345}, {-0.380783,-0.071819}, {1.224245,-0.170595}, {0.668510,0.088242}, {0.011928,-0.606299}, {-1.276925,-0.185928}, {1.427795,0.603522}, {-0.687761,-0.603504}, {-0.132693,-0.457303}, {-0.680173,-0.865798}, {-0.251745,-0.935759}, {0.444854,-0.248104}, {0.068890,0.189164}, {-0.218620,-1.194219}, {0.102438,0.748316}, {0.626796,-0.085816}, {0.382283,0.477754}, {-0.055020,-0.453327}, {-0.629663,-0.255501}, {-0.314275,-0.853495}, {0.153019,0.700717}, {0.819287,0.714535}, {0.078689,-0.639930}, {-0.470512,-0.225320}, {0.479791,0.944982}, {1.631216,1.256571}, {-0.936889,0.646269}, {-0.494894,0.683656}, {0.921918,0.268295}, {0.561338,0.520386}, {0.414373,1.463005}, {0.760467,0.214625}, {0.964109,-0.139284}, {-0.587657,-0.930694}, {0.299208,0.117574}, {-0.452623,1.080372}, {-0.206742,-0.027465}, {-0.995999,0.131516}, {-0.409115,-1.251451}, {0.286588,0.339968}, {0.248896,0.976740}, {-0.600229,-1.037789}, {1.217989,-0.829786}, {-0.533772,-0.390166}, {-0.252891,0.090843}, {0.830241,-0.674900}, {-0.305120,-0.830369}, {-0.491488,0.649178}, {0.438337,-0.155879}, {-0.355961,0.587665}, {0.504438,0.139915}, {0.729127,-0.183104}, {0.107723,-0.278060}, {0.688445,0.756468}, {0.393728,-1.411304}, {0.536781,1.086957}, {-0.520090,-0.203326}, {0.533082,-0.846444}, {-0.394528,0.670604}, {-0.382789,-0.861758}, {0.250303,0.478741}, {-0.327998,0.777437}, {0.733849,-0.765777}, {-0.089826,-1.110802}, {-0.206186,-0.678356}, {0.386616,0.326163}, {0.525415,-1.219435}, {0.133794,0.344521}, {0.004897,-0.582482}, {-0.750436,-0.832588}, {1.048079,-0.016272}, {1.705627,0.415836}, {1.430775,0.468125}, {0.131126,-0.137068}, {0.835151,-0.271749}, {-0.298794,0.661111}, {-1.031776,-0.466190}, {0.920307,0.012391}, {0.714790,0.765926}, {0.049065,1.311591}, {-0.718093,-0.406004}, {0.398720,-1.039662}, {-0.246073,0.103843}, {-0.710795,0.507890}, {0.091547,-0.294237}, {1.265596,0.506513}, {0.247169,-0.808032}, {0.329468,-0.429356}, {0.401651,-1.497002}, {-0.915131,0.517771}, {-0.158804,-1.010671}, {0.337866,0.270349}, {-0.334280,-0.437324}, {0.587549,-0.839959}, {0.609462,0.218756}, {0.663163,0.295161}, {0.199296,-0.011211}, {0.336088,-0.804984}, {-0.689722,0.139018}, {1.805106,0.071002}, {0.012271,-0.185305}, {-0.242626,1.069228}, {-0.001816,-0.770260}, {1.082567,-0.538776}, {-0.300932,0.408739}, {0.673658,-0.546763}, {-0.522996,-0.593263}, {0.783541,0.018982}, {0.129059,1.126919}, {0.089440,0.382453}, {-0.027288,0.112335}, {0.207647,-0.722367}, {-0.570810,0.360483}, {0.285651,-0.252501}, {0.723943,0.093512}, {0.112908,0.175056}, {-0.488045,0.285721}, {-0.059020,-0.037746}, {-0.512124,-0.099456}, {-0.349365,-0.609648}, {0.107796,-0.112698}, {-1.477146,0.619852}, {0.417878,1.275517}, {0.029314,-0.196885}, {0.570071,-0.086919}, {0.249916,0.287204}, {0.383593,0.201145}, {0.114623,0.900762}, {0.682162,-0.223562}, {0.322560,0.917578}, {0.750428,0.353774}, {-0.948208,0.123629}, {0.768450,0.085982}, {1.272772,0.309070}, {-0.439142,-0.382147}, {-0.008128,-1.247159}, {0.009078,-0.697620}, {0.007060,0.961034}, {0.129413,0.505956}, {-1.910256,-0.665300}, {0.069935,-1.173748}, {-0.120057,0.181999}, {0.399439,-0.688444}, {0.284874,0.541595}, {0.285854,0.693654}, {-0.001666,-0.103849}, {-1.224582,1.329128}, {-0.648986,0.890249}, {-0.388631,-0.337343}, {-0.610412,0.675449}, {0.271354,-0.522851}, {-0.469737,0.289745}, {-0.135145,0.094711}, {0.391914,0.360719}, {-1.432849,-0.395919}, {0.718524,0.095473}, {0.971875,0.020463}, {0.321075,1.646243}, {-0.198847,-0.236427}, {1.874800,-0.097315}, {-0.243075,-0.495529}, {0.920510,0.609915}, {0.471311,-2.079300}, {-0.581785,-1.219514}, {-0.280604,0.335288}, {0.744908,1.156712}, {1.065821,1.187737}, {0.063306,0.219678}, {0.149226,0.523140}, {-0.223783,-0.203258}, {-0.453659,-0.055288}, {-0.577265,0.580418}, {-0.394131,0.807998}, {-0.805989,0.389628}, {0.497947,0.244122}, {0.156364,0.586017}, {-0.824797,1.008399}, {0.152007,-1.426285}, {0.515238,0.477685}, {-0.477381,0.117855}, {-0.950519,-1.318016}, {0.420935,0.940154}, {-1.026912,-0.466710}, {-0.582401,0.139818}, {-0.549374,-0.236186}, {0.644767,-0.465686}, {0.830889,-0.265762}, {-0.144430,-0.761845}, {-0.128806,-1.521828}, {-0.372228,-0.069244}, {-0.492768,0.219460}, {-0.490296,0.354823}, {-0.848195,0.898729}, {0.865969,-0.571089}, {-0.454317,0.699749}, {0.042831,-0.315084}, {-0.285471,-0.292725}, {-0.534360,0.172237}, {0.689555,0.264977}, {0.815292,-1.505314}, {0.497006,-0.098925}, {0.298728,0.364288}, {0.136240,0.303815}, {0.283923,0.596503}, {0.114502,-0.238589}, {-0.297723,0.385486}, {-0.316969,0.430939}, {0.040942,-0.313941}, {-0.289333,0.351903}, {0.896973,0.079274}, {-0.268520,0.041966}, {1.030958,-0.635246}, {-1.875177,0.592061}, {-0.430594,-0.653622}, {0.267462,0.655383}, {-0.514834,1.076798}, {-0.097106,0.538920}, {0.013117,0.662483}, {0.644666,0.595031}, {-0.117338,0.439290}, {-0.357636,-0.677673}, {-0.088865,-0.231393}, {0.965777,-0.113227}, {0.220975,0.768523}, {-0.828622,0.050192}, {-0.240097,-0.029707}, {-1.058309,1.038959}, {-0.570250,-0.924301}, {-0.262456,-1.462101}, {-1.228857,-0.142778}, {0.469875,0.739288}, {1.100930,0.341907}, {0.672967,-0.393436}, {0.518804,0.496781}, {-0.142314,0.761519}, {0.125922,-0.550510}, {-0.348100,-0.273610}, {-0.427612,0.061501}, {0.256513,0.747116}, {-0.059648,0.168510}, {-0.913990,0.875762}, {-0.802038,0.135093}, {0.203664,-0.374754}, {0.469188,-0.636419}, {0.809588,0.460623}, {0.113743,0.524456}, {-0.272354,-0.854766}, {0.022865,0.418124}, {-0.133409,0.060661}, {1.539998,-0.517456}, {-0.645522,-0.426623}, {-0.371401,-0.661202}, {-0.122534,1.261750}, {0.093323,-0.383381}, {0.134252,0.902849}, {0.511477,1.313929}, {0.099273,0.514895}, {-0.058003,0.969434}, {-0.141294,-0.471783}, {-0.429620,-0.154513}, {-0.287361,-0.442306}, {-0.336878,-0.062789}, {-0.605904,0.102936}, {-0.142869,-0.443398}, {1.535686,1.529627}, {0.367539,0.095620}, {0.212680,0.531485}, {0.604709,-0.251699}, {-0.161790,-0.242223}, {-0.575133,0.475413}, {0.007935,0.138656}, {-0.156317,0.351535}, {1.107248,1.232089}, {-0.269558,0.504884}, {0.074465,-0.942669}, {0.141073,-0.429191}, {-0.269876,0.330541}, {-0.209983,0.505994}, {0.562585,1.614445}, {0.439637,-1.675931}, {0.030853,-1.163880}, {0.304423,1.022936}, {-0.327022,-0.504994}, {1.936745,-1.338733}, {-0.351500,-0.385984}, {-0.563641,-0.826557}, {-0.380570,0.789590}, {-0.148708,0.255027}, {-0.888800,-1.395291}, {0.632760,-0.463043}, {0.234656,0.303244}, {0.116743,-0.473395}, {0.271851,0.175900}, {-0.552514,-0.338339}, {0.691982,0.143707}, {-0.976338,0.662087}, {-0.504830,0.685742}, {-0.264117,-0.307242}, {0.511863,0.356987}, {0.055412,-1.049023}, {0.191737,0.267756}, {0.231510,-1.056609}, {0.204476,-0.636612}, {-0.133734,1.938848}, {0.255605,-1.483930}, {1.011052,1.161027}, {0.898627,0.805878}, {-0.213312,0.436263}, {0.755626,0.187831}, {-0.762523,0.657359}, {0.036146,0.739059}, {-0.116160,-0.417153}, {-0.150632,-0.670163}, {0.418430,-0.878027}, {0.525073,-0.538173}, {-0.370425,-1.117374}, {-0.757346,0.213995}, {-0.208166,-0.014412}, {1.041135,-0.440021}, {0.745159,-0.655492}, {0.075926,-0.175046}, {-0.667127,-1.402322}, {-0.420118,-0.660770}, {-0.911100,-0.316687}, {-0.103679,0.220340}, {-0.660715,-0.765549}, {-1.825846,0.383159}, {-0.802056,-0.280138}, {-0.373981,0.538737}, {-0.426700,0.773436}, {-0.163357,0.074898}, {1.227122,1.422060}, {1.288474,-0.542456}, {-1.032935,0.639189}, {0.437950,-0.087142}, {0.475027,-0.968816}, {0.165371,0.564307}, {-0.510503,-0.411686}, {-1.231209,-0.637638}, {1.256137,-0.449882}, {-1.522424,-0.184787}, {-1.028042,0.985088}, {1.030749,-0.439651}, {-0.387196,0.411551}, {1.188856,0.408318}, {-0.587327,-0.142216}, {1.135026,-0.262557}, {-0.508316,-0.762131}, {-0.149100,0.280352}, {-0.951866,0.279302}, {-0.604205,-0.672315}, {1.600248,-0.457873}, {0.569092,0.161693}, {-1.152617,0.488698}, {0.409741,0.570698}, {-0.507684,-0.112046}, {-0.748483,1.030598}, {-0.076532,-0.294944}, {0.270334,-0.074069}, {0.758352,0.152663}, {-1.269700,0.914973}, {-0.730966,0.274066}, {-1.529546,-0.878928}, {-1.992355,-0.301284}, {-0.645659,0.223827}, {-1.002499,0.318252}, {0.165309,-0.639122}, {-1.019766,0.307431}, {0.679903,-1.055646}, {-0.003741,0.179578}, {0.256276,0.808911}, {1.114403,-1.010407}, {-1.146745,-0.331667}, {0.404155,0.383710}, {-0.237773,0.921262}, {1.885775,0.430458}, {-0.818223,0.346674}, {-0.078311,0.863722}, {-0.428592,0.254773}, {0.534155,0.809113}, {1.383017,0.888617}, {-0.515986,-0.599548}, {0.212821,-0.000715}, {-1.206773,0.526967}, {0.014093,0.006118}, {0.158839,-1.216860}, {-0.027659,0.926053}, {0.019575,0.165710}, {0.197453,-0.230582}, {1.261566,0.802630}, {0.197086,0.008144}, {0.059366,-1.335864}, {0.762630,0.316835}, {0.094044,0.216878}, {-0.061064,0.344751}, {1.017651,-1.442284}, {0.827257,0.377237}, {-1.187013,-0.462500}, {0.582280,-0.502331}, {0.744537,-1.480232}, {-0.629860,0.197390}, {0.059392,-0.392031}, {-0.574393,0.117983}, {0.129667,-0.171614}, {-0.108789,-0.144976}, {-0.289720,0.028863}, {-0.236768,0.375456}, {-0.026387,-0.120244}, {-0.494994,1.099108}, {-0.243313,-0.271767}, {0.887063,-0.199488}, {-1.520577,0.158127}, {1.002710,-0.502214}, {-0.690706,-0.243567}, {-1.318276,-0.321401}, {-0.458306,-0.366136}, {-0.120988,0.372985}, {-0.278336,0.750513}, {-0.430248,0.203486}, {-0.431980,0.898660}, {0.147149,0.183560}, {-0.761892,-0.033976}, {0.544541,0.195048}, {-1.004320,0.048136}, {0.445875,0.124557}, {0.819350,0.116228}, {-0.074228,-0.359250}, {0.149207,0.639891}, {0.338190,0.705314}, {0.771753,0.452919}, {0.713768,-0.325439}, {0.792008,0.244063}, {0.619732,-0.670480}, {-0.192255,-0.539623}, {-0.071555,0.106152}, {-0.531400,0.439331}, {0.858087,0.454744}, {-0.324386,-0.432407}, {-0.049221,-0.765374}, {0.524452,0.531419}, {0.003815,0.508387}, {-0.841803,-0.132345}, {-0.251592,0.174575}, {0.134064,-0.846480}, {-0.380022,-0.772825}, {0.570028,0.455106}, {0.685860,0.878152}, {0.349189,-0.979386}, {-0.870929,0.582146}, {-0.970770,-0.902920}, {1.432578,0.124514}, {-1.833284,0.491911}, {-0.632608,0.655085}, {-0.587920,-0.340920}, {-0.688839,-0.890105}, {0.453233,-1.036321}, {1.020132,0.523791}, {0.951761,0.683777}, {-1.376582,1.527485}, {0.236742,-1.750241}, {-0.460403,0.501992}, {1.020721,0.229132}, {1.051587,-0.362471}, {-0.259974,0.863537}, {0.429171,1.050911}, {0.191844,0.578415}, {-0.231841,0.432569}, {-0.984387,-0.084837}, {-0.358412,0.102102}, {0.878619,0.582503}, {-0.205932,0.835352}, {-0.103196,-0.742711}, {1.284650,-0.553309}, {-0.438278,-0.845167}, {-0.180808,-0.562684}, {-1.415280,0.309014}, {1.032654,1.546299}, {-0.578971,0.502129}, {-0.372922,0.342322}, {-0.601495,-0.396972}, {0.449218,1.693786}, {-0.215480,-0.912576}, {-0.305294,-0.068039}, {1.234584,0.890927}, {-0.133936,-0.401511}, {-0.029240,-0.508774}, {-0.446670,0.056391}, {0.438196,0.121282}, {-0.235203,-0.016227}, {0.085158,0.853693}, {0.589462,-0.003206}, {-0.347001,1.098295}, {-0.482088,0.276294}, {1.115959,0.104063}, {1.222275,-0.122048}, {1.131900,-0.401884}, {0.416713,0.972292}, {0.268957,0.822470}, {-0.378075,-0.239070}, {0.678130,-0.622487}, {0.001222,0.176722}, {0.515715,0.556026}, {-0.811341,-0.664363}, {-0.066931,-0.106832}, {0.259630,-0.482719}, {-1.051136,0.675293}, {-0.444388,-0.119788}, {0.307477,-0.014828}, {-0.184077,0.282394}, {-0.719949,0.155395}, {0.689853,0.466149}, {0.254500,-1.065029}, {-1.153940,1.026575}, {-0.724639,0.811474}, {0.280946,0.774506}, {1.733286,0.702247}, {0.057015,-0.144861}, {1.201717,-0.620823}, {-1.489848,-0.513420}, {0.007687,0.478682}, {0.217798,-0.381518}, {0.395505,0.487883}, {0.637114,0.738214}, {-0.696254,-0.017240}, {-0.601473,-0.310016}, {-0.911395,-0.423135}, {0.943762,0.871834}, {0.712787,-0.214152}, {-0.154493,0.356730}, {0.439694,2.528324}, {0.511167,-0.597179}, {-1.077821,1.509451}, {0.534645,-0.031730}, {0.367335,-0.235827}, {-1.523038,0.527418}, {0.337825,-0.714982}, {-0.447831,-0.426621}, {-1.118101,-0.239219}, {0.531552,0.943312}, {-1.294295,-0.742653}, {0.625772,0.643434}, {-0.277690,-0.187306}, {0.253799,-0.294410}, {-0.613186,0.208064}, {-0.188373,-0.612828}, {0.217985,-0.165977}, {0.588750,0.477662}, {-0.901009,-0.304080}, {-1.010997,0.557475}, {-0.375059,-0.290759}, {0.071666,-0.579673}, {0.210535,0.735150}, {-0.448087,-0.526083}, {0.398716,0.065340}, {0.485392,1.369999}, {-0.299177,-1.126727}, {-0.103942,0.680101}, {0.328730,0.178544}, {0.142174,0.134296}, {0.204866,-0.912750}, {-2.020140,0.645009}, {0.177036,-0.288237}, {-0.069950,1.225832}, {-0.304805,0.134353}, {-1.765184,-0.128221}, {-0.393885,-0.444420}, {-1.330829,0.743254}, {0.830278,0.671366}, {0.869670,-0.919906}, {1.211946,-1.221721}, {0.363820,0.389598}, {-0.613657,-0.172961}, {0.534523,-0.777950}, {0.899525,0.837620}, {0.229674,0.539808}, {-0.588145,1.541271}, {0.526527,0.218288}, {0.108346,-0.146209}, {0.256885,0.222342}, {-0.471906,-0.622017}, {-1.040667,-1.033413}, {1.262585,0.812615}, {-0.109457,1.184248}, {-0.777400,-1.560435}, {0.151619,-0.442552}, {1.678563,0.504373}, {-0.589008,-0.440073}, {-0.173452,0.875637}, {-0.330927,-0.861614}, {0.529098,0.754519}, {-0.530484,0.361856}, {-0.340118,-0.014196}, {-0.443443,-0.221920}, {-0.295703,0.775663}, {0.931839,0.391841}, {1.227308,0.357324}, {1.058906,-0.561328}, {0.379099,0.857939}, {0.379845,0.088003}, {2.175076,0.202864}, {0.100406,-0.297335}, {0.240141,-0.401507}, {0.578608,0.265995}, {-0.515623,0.946173}, {-0.587795,-0.555286}, {0.383657,-0.195416}, {0.759589,-0.774641}, {-0.109808,-0.123684}, {0.172620,1.054034}, {0.231130,1.353771}, {0.832332,-0.629704}, {0.736182,-0.815986}, {1.913341,-0.066831}, {0.548944,0.930218}, {1.187104,0.054595}, {-0.065391,1.307484}, {-1.032659,-0.304898}, {0.770218,0.384590}, {-0.461868,0.279681}, {0.659794,1.167296}, {-0.280067,1.596266}, {-0.557632,-1.620087}, {0.231064,0.159401}, {-0.585902,-0.632748}, {-1.008761,0.180220}, {-2.136943,0.182556}, {0.578714,-0.151526}, {0.468830,-0.370074}, {-0.124409,0.101686}, {-0.623913,0.511890}, {0.603725,-0.110424}, {0.086402,0.305489}, {0.397162,-0.844066}, {0.287331,0.595819}, {0.435615,-0.308301}, {-1.631188,1.233723}, {-0.099963,-0.568243}, {-0.069033,-0.553885}, {0.465490,1.705170}, {-1.502903,0.051838}, {0.202618,0.056840}, {0.690444,0.625482}, {0.529718,-0.327767}, {-0.489490,-0.609651}, {0.832393,1.453277}, {1.712547,0.803720}, {0.189576,-1.727333}, {0.907285,-0.228063}, {1.339552,-0.868890}, {-1.166663,-1.224587}, {-0.379674,0.609648}, {-0.573722,-0.147682}, {-0.268252,-0.294019}, {-0.342327,0.622820}, {-0.973481,1.055302}, {0.765404,-0.814623}, {-0.533027,-1.451319}, {-0.272482,1.012991}, {-0.542893,-1.562890}, {-0.171077,0.717300}, {0.308168,0.116356}, {0.314240,-0.370956}, {0.804733,-0.334112}, {0.386616,-0.027912}, {-0.099513,0.902143}, {-0.123303,0.843877}, {1.079426,-0.071035}, {0.598008,-0.248097}, {0.573794,0.625676}, {0.290775,0.601791}, {-0.846620,-0.609600}, {0.441754,0.374976}, {-0.292908,-0.310313}, {0.389009,-1.122842}, {-1.994184,-0.597685}, {-0.288490,-0.137211}, {0.826802,-0.414513}, {0.440020,-0.030550}, {-0.776099,-0.389480}, {0.554564,0.554801}, {1.224902,0.286133}, {-0.979788,0.109225}, {1.253196,0.209456}, {0.251155,0.753947}, {0.665114,-0.393747}, {-0.564377,-0.513027}, {1.288081,-2.157011}, {0.235869,0.471166}, {-0.406039,0.027257}, {-0.294357,-0.382251}, {0.119859,-0.100326}, {-0.458593,0.981385}, {1.025987,-0.633064}, {0.615666,1.604773}, {0.594899,-0.462359}, {0.309323,0.834967}, {1.020212,0.969725}, {-0.195893,-0.386131}, {-0.627758,0.223954}, {-1.018009,0.285884}, {-0.624008,0.485126}, {0.160685,-0.253051}, {-1.063582,1.681213}, {-0.198088,-0.757754}, {0.728279,0.034337}, {0.762127,-0.032588}, {0.221347,-0.818478}, {0.269797,-1.110743}, {-1.210268,-0.495728}, {0.485286,-0.320922}, {-0.155302,0.041326}, {-0.402684,1.638042}, {-0.478496,-0.696576}, {0.857587,-0.932290}, {-0.479103,-1.444577}, {0.106673,0.771573}, {0.174064,0.228316}, {0.379493,0.761051}, {-0.573243,-0.279958}, {0.611776,0.691011}, {0.437668,0.574424}, {1.270251,0.249666}, {0.164892,0.358455}, {0.667730,1.155659}, {0.466743,0.958982}, {-0.728237,-0.561067}, {-0.191912,0.053633}, {-0.319731,-0.092707}, {-0.675490,0.366198}, {0.535741,-1.151621}, {-0.343547,0.839867}, {0.751048,-1.498414}, {1.666151,-0.356844}, {0.042997,0.353855}, {0.599371,0.374659}, {-0.030844,-0.467997}, {0.527571,-0.170217}, {1.039629,0.511229}, {0.139445,-0.375293}, {-0.643767,-0.579323}, {-0.213417,0.056574}, {0.868315,-0.291497}, {1.312809,0.661863}, {-0.239329,-0.350563}, {0.055933,1.334509}, {-0.896131,1.594030}, {-0.843781,-1.287317}, {0.346229,-0.350082}, {-0.385374,-0.165116}, {0.058133,-0.170327}, {-0.302902,-0.091267}, {-0.224982,-0.275217}, {-0.639219,0.182658}, {1.005439,0.970002}, {0.302856,0.157512}, {0.167572,0.392681}, {-0.183465,-0.536818}, {-0.276488,0.932653}, {-0.698586,-0.291830}, {-0.663474,0.073177}, {-0.707151,0.843712}, {0.813781,-0.237099}, {-0.567100,-0.155201}, {-0.695440,0.900429}, {-0.507948,-0.238936}, {0.813905,-1.435846}, {-1.030962,0.416183}, {0.010413,-0.077815}, {-0.456217,0.939060}, {-0.280898,0.860698}, {-1.059189,-0.026381}, {0.418985,0.103886}, {0.243547,0.263705}, {1.022534,-0.870284}, {-0.319105,-0.830518}, {0.309283,0.131609}, {-0.366955,0.545398}, {-1.091913,0.803764}, {0.919995,-1.444688}, {-0.514388,-0.892124}, {0.046488,-0.043293}, {-0.097040,-0.142277}, {-0.621773,0.278483}, {-0.238226,-0.303143}, {-0.239201,-0.202993}, {0.828891,-0.447296}, {-0.814409,-0.762757}, {0.317636,-0.775188}, {-0.704665,-0.001095}, {0.190795,-0.410853}, {0.438536,0.007221}, {-1.275473,1.581711}, {-1.032641,0.427879}, {0.043270,0.560571}, {-0.310790,-0.295852}, {-0.322617,-0.582956}, {-0.823786,0.792678}, {-0.825312,0.460310}, {-0.142982,-0.231356}, {-0.107885,0.006865}, {-0.428315,-0.575707}, {-0.451766,-1.312755}, {-0.605263,0.052154}, {-0.858527,0.472405}, {-0.147632,0.851068}, {-0.032356,-0.398183}, {-0.601653,-0.044037}, {0.037578,0.212620}, {0.475474,0.577324}, {-1.937575,-1.393675}, {0.241383,-0.543812}, {0.300632,-0.384921}, {0.860763,0.252422}, {0.040594,-0.371765}, {0.552900,0.011664}, {-0.353449,0.312965}, {0.857064,1.235445}, {-0.408279,-0.576770}, {0.133850,-0.708734}, {0.979223,1.697775}, {-0.859229,-0.252335}, {-1.136499,-0.537318}, {-0.025246,0.178310}, {1.169886,-0.131893}, {0.491317,-0.071596}, {1.485336,-0.526005}, {1.948320,-0.173133}, {0.359882,-0.593865}, {0.784955,0.290084}, {-0.367032,0.564664}, {-0.053053,0.166978}, {0.576522,-1.319649}, {0.593626,-0.037716}, {0.330368,0.727155}, {0.248306,0.837877}, {-0.596916,-0.440271}, {-0.031691,0.753502}, {-0.427416,1.496483}, {0.024830,0.428486}, {-0.251342,-1.094742}, {0.345125,-0.553380}, {-0.898429,-0.026258}, {0.712027,0.447699}, {-1.220289,-0.815846}, {0.262894,0.251074}, {-0.136647,0.183869}, {0.404985,-0.461170}, {0.431711,-1.281842}, {0.163396,0.332593}, {-0.552892,0.335223}, {-0.672727,-0.000601}, {0.044287,0.469885}, {0.199923,0.345696}, {0.723835,-0.177781}, {-0.379719,0.397453}, {-0.641487,1.511009}, {0.061980,0.031751}, {-0.844554,0.892103}, {-0.715934,-1.294866}, {0.173878,-1.451147}, {0.564775,-0.224633}, {-0.475705,0.218131}, {1.368321,2.155638}, {-0.559571,-0.151806}, {0.367671,-1.069871}, {-0.480085,-0.683981}, {-0.968596,-0.196502}, {0.088215,-0.398611}, {0.089681,0.049280}, {0.019565,0.640091}, {0.804096,-0.312743}, {-0.029222,-0.817238}, {0.111560,0.026803}, {1.124348,-0.247172}, {0.828146,-1.297903}, {0.584710,1.072408}, {-1.079120,0.519528}, {-0.559623,-2.083301}, {-0.013739,0.168279}, {0.094835,-0.001691}, {-0.176566,-0.071756}, {0.143178,0.023358}, {-1.209996,-0.402923}, {0.502949,-0.787258}, {-0.439794,-0.826874}, {0.037231,-0.182201}, {0.559047,-0.316920}, {1.353808,-0.063423}, {-0.184105,-1.087707}, {0.520159,0.016875}, {0.408005,0.337109}, {0.012034,-0.141686}, {-0.116381,0.989265}, {0.215828,-0.819388}, {-0.175628,0.230390}, {-0.392693,-0.773533}, {0.019304,0.018939}, {0.019620,1.129002}, {-0.266461,0.476351}, {-0.932192,-0.308265}, {1.087973,0.187229}, {0.878040,0.274679}, {-0.967149,-1.149465}, {0.110062,-0.288712}, {0.410077,0.016828}, {-1.137827,0.737936}, {0.556373,0.712373}, {-0.136341,-0.106141}, {0.966315,0.131986}, {-1.636164,0.243468}, {1.058806,-0.648276}, {0.211281,1.021837}, {-0.200606,0.108194}, {0.343630,0.685307}, {0.492227,-0.038799}, {0.033762,0.584277}, {0.236607,0.567255}, {0.680730,0.758640}, {-1.029663,1.126743}, {-1.572466,-0.113236}, {-0.285795,0.080142}, {-0.974205,-0.403896}, {1.117339,-0.485668}, {-0.600984,-1.054548}, {0.893469,-0.995996}, {1.668182,-0.272915}, {-0.209205,0.453159}, {0.256428,-0.019136}, {0.333610,0.511375}, {-1.232951,0.873284}, {-0.761203,-0.368131}, {-0.518450,-1.168993}, {0.742393,-0.718962}, {0.449123,0.250070}, {0.014006,-0.412005}, {-0.680747,-0.172112}, {0.116133,-0.562759}, {0.460738,-0.656872}, {0.650550,0.619822}, {0.131879,0.424197}, {-0.553638,-1.742206}, {0.312592,0.469697}, {-0.531606,-0.391612}, {1.380083,1.445451}, {-0.921923,-0.915796}, {-1.153275,0.556598}, {-0.161191,0.501045}, {-0.702263,-0.058096}, {0.560614,0.671590}, {0.036180,-0.376868}, {-0.588677,0.721655}, {0.621821,-0.164663}, {0.794529,0.699955}, {-0.719335,0.651360}, {0.148510,0.760655}, {-0.114731,0.951111}, {0.895827,0.383900}, {-0.746435,0.641606}, {-0.421358,0.631822}, {0.466984,-0.324033}, {0.489916,-0.957898}, {0.079711,0.062274}, {1.246410,-0.778342}, {-0.318010,0.318632}, {0.510297,-0.392028}, {1.251361,1.171531}, {0.293846,0.756420}, {-0.909834,-1.088653}, {0.185629,-0.928923}, {-0.192179,0.381852}, {0.128132,-0.618807}, {1.135265,1.096902}, {1.130910,0.031333}, {0.189199,-0.530720}, {0.364752,0.516586}, {-0.640494,-0.438013}, {-0.554450,0.002218}, {-1.568253,-0.283404}, {0.597701,-0.124230}, {1.153399,0.400638}, {0.290154,-0.118022}, {-0.394926,0.335760}, {-0.046594,-1.272174}, {0.520793,-0.596359}, {0.684737,1.409372}, {2.146829,-0.595201}, {0.334683,0.150969}, {0.037160,0.579834}, {0.559788,-1.024755}, {-0.268161,-1.685690}, {-0.777837,0.327112}, {-0.628273,-0.114822}, {-2.163572,0.843763}, {-0.523453,1.909596}, {-0.390204,0.742400}, {0.184483,-0.248507}, {0.492118,0.308610}, {0.809920,-0.427897}, {0.210169,-0.601697}, {0.065808,-0.422819}, {-1.259986,0.023207}, {-1.222129,0.568027}, {-0.255664,-0.612253}, {0.228229,0.962349}, {-1.340872,1.427331}, {-0.567869,-1.869379}, {-0.763201,-0.271214}, {-1.445104,0.226024}, {-0.645348,0.310639}, {-0.516378,0.457223}, {0.261481,-0.723054}, {0.698503,-0.491313}, {0.002835,0.081625}, {-1.025465,-0.176307}, {-0.479908,0.644662}, {-0.748698,-0.134649}, {0.463082,-1.921004}, {0.586063,-2.033114}, {-0.458925,0.394895}, {-0.509606,0.005512}, {-0.447751,-1.910113}, {-1.557059,-0.149125}, {0.534921,-0.429562}, {0.211883,0.620042}, {-1.527148,0.587183}, {0.401908,1.280822}, {0.031060,0.420576}, {-0.762789,-0.367085}, {1.175118,-0.820434}, {-0.478197,-0.370352}, {-0.236025,0.061470}, {0.686564,-0.585512}, {-0.237052,0.253177}, {-0.729385,-0.466642}, {-0.662395,-0.391071}, {0.273296,0.506813}, {0.965051,-0.027263}, {0.070026,1.046618}, {0.092287,0.070415}, {-0.908972,-0.539245}, {-0.623800,1.413496}, {0.325102,0.822477}, {-0.518215,0.034588}, {0.220737,0.705239}, {-0.818519,-0.857503}, {-1.388012,0.171706}, {0.650287,1.022428}, {2.412083,-0.776552}, {-0.297618,1.080676}, {0.467493,-0.420103}, {-0.059584,-0.053936}, {0.624517,-0.194404}, {0.036811,1.302039}, {0.842010,-0.194790}, {0.215698,0.725725}, {-0.272988,0.542958}, {-0.298502,1.190862}, {0.166648,0.297913}, {-0.783560,-0.385328}, {0.351894,-0.279022}, {0.183874,0.243079}, {0.134334,0.079331}, {-0.383688,0.849714}, {-0.227904,0.641252}, {0.329318,0.943028}, {0.936512,1.038576}, {0.757479,0.393397}, {1.478493,-0.037539}, {-1.189804,0.402658}, {0.292558,-1.779022}, {-0.284935,-0.366083}, {-0.386498,1.453383}, {0.611253,0.499528}, {-0.251683,0.181155}, {0.804380,-0.388200}, {-0.231037,0.258398}, {0.623782,0.017725}, {0.468501,0.540843}, {0.054289,1.158843}, {0.109397,0.089475}, {0.057510,0.640870}, {-1.007740,-1.110276}, {0.732886,0.842128}, {0.268033,-0.755497}, {-0.031795,-0.214367}, {-0.643266,-0.275480}, {1.885364,-0.353332}, {1.004060,-1.001434}, {-0.017497,0.894947}, {1.829552,0.069833}, {-0.930362,-0.271928}, {-0.374898,0.170401}, {-0.104757,-0.184549}, {1.479948,-0.472800}, {-0.766489,-0.268751}, {-0.188110,0.343063}, {-0.068686,0.373199}, {-0.335110,0.539789}, {0.926700,-0.263069}, {-0.060970,0.075089}, {-0.047239,-2.343455}, {-0.758616,-0.638756}, {0.194242,0.628520}, {-0.670422,-0.252502}, {-0.586947,1.217569}, {0.325827,0.180049}, {-1.170374,-0.478935}, {1.157467,0.136615}, {0.553874,0.901300}, {0.489163,0.191637}, {0.233215,-0.282606}, {1.394105,-0.595516}, {-0.616522,0.715078}, {-0.840391,-0.099596}, {0.539287,-0.316566}, {-0.384641,1.575414}, {0.708599,0.923721}, {-0.728650,0.399285}, {-0.884493,-0.797352}, {0.346664,0.439675}, {-0.912444,-1.014233}, {0.440793,1.115063}, {-0.852873,-0.619209}, {0.167686,-0.498302}, {1.288179,0.409765}, {1.402931,0.688458}, {-0.515123,-0.824088}, {0.192950,-0.248628}, {-0.062076,0.319169}, {0.488478,2.046597}, {-0.279347,0.144513}, {-0.425342,-0.162927}, {0.794761,0.950190}, {0.050606,-1.039568}, {0.258260,0.371916}, {0.299544,0.840263}, {1.011669,1.277889}, {-0.455175,0.008475}, {0.006032,0.495940}, {-0.564037,0.951911}, {-0.739710,0.911333}, {0.288278,0.246605}, {-0.415489,0.418020}, {0.214393,-0.216782}, {-0.258230,0.012515}, {0.085156,-1.067564}, {-0.477948,-0.126020}, {0.819553,0.227472}, {0.218761,0.118708}, {-1.147643,0.315880}, {-0.227523,0.539005}, {0.001495,0.428174}, {1.833835,-0.253958}, {0.094817,-0.427417}, {0.304182,0.027684}, {-0.448943,1.724177}, {0.306482,-1.723176}, {0.297892,0.566358}, {0.070474,-0.408958}, {-1.135178,0.616141}, {1.174561,0.739951}, {-0.427643,-0.076585}, {-0.143676,-0.561043}, {-0.575947,-0.963853}, {0.287610,-0.416596}, {1.053362,0.219671}, {0.215916,-0.082404}, {-0.004859,1.016390}, {-0.304115,-1.250074}, {-0.804160,1.414419}, {0.435396,1.580271}, {-0.540909,-0.386004}, {0.391329,0.175570}, {0.068666,-0.634001}, {-0.924601,-1.223534}, {-0.244715,-1.882378}, {-0.005935,0.055254}, {0.053374,-2.037105}, {-0.222229,-0.314341}, {1.683783,-0.136252}, {-0.209519,0.319064}, {0.128087,0.515904}, {1.057809,0.518777}, {1.302667,-0.667992}, {0.711711,1.370832}, {-0.425870,-0.921453}, {-0.282099,-0.019978}, {0.475885,0.778538}, {-1.191533,0.734870}, {-0.029950,0.617866}, {-0.455740,-0.735148}, {-1.482617,0.289506}, {-0.281529,-1.036867}, {-0.900051,-0.070463}, {-0.281393,-0.018742}, {-1.565083,0.033298}, {-1.253289,0.604701}, {-1.473103,0.505138}, {-1.337558,-0.025304}, {0.025156,0.114029}, {1.186775,0.120767}, {0.833490,-1.016311}, {-0.566033,-1.332979}, {-0.525104,-0.650364}, {-0.791062,0.388240}, {1.154731,1.317110}, {-0.317317,-0.091369}, {0.113614,0.044248}, {-0.258272,-0.047712}, {1.078975,0.638972}, {-0.597647,0.741361}, {-0.489840,-0.645206}, {0.555416,0.241694}, {-0.612925,-1.006549}, {-1.021876,-0.178930}, {-0.739651,0.372522}, {0.602211,1.641040}, {0.379708,-0.413169}, {0.089748,-0.616324}, {0.599494,-0.401401}, {0.259038,1.039479}, {0.006801,-0.534216}, {-1.441283,-0.788294}, {0.652339,-0.170895}, {0.170934,0.389251}, {0.369531,1.157200}, {-1.009088,0.126682}, {-0.315585,0.221797}, {0.202527,1.134547}, {-0.272163,-0.354116}, {-0.278950,-0.284232}, {-0.055980,-0.181156}, {-0.432454,-0.002721}, {-0.818628,-0.041833}, {-0.544952,-0.105704}, {0.552322,0.225571}, {-0.429020,-0.426446}, {0.450359,0.329922}, {-0.420977,0.010542}, {0.524081,0.061941}, {-0.611116,-0.497061}, {-0.185940,-1.029832}, {-0.352210,0.272805}, {-0.523549,0.577421}, {0.484978,-0.655545}, {0.426839,0.473204}, {-0.694465,0.191582}, {1.346640,-0.894402}, {-0.108025,0.551475}, {0.196850,0.014778}, {0.461298,-0.661029}, {1.183668,-0.482788}, {0.451475,1.978741}, {0.436252,-0.573917}, {-0.793265,0.340729}, {0.372344,0.278611}, {-0.754183,0.302767}, {-1.031154,-1.065581}, {0.628203,-0.223986}, {0.430165,-0.891388}, {-0.015695,-0.279011}, {0.048695,-1.308632}, {-0.269414,-0.197042}, {-0.795862,1.044719}, {0.436994,-0.946302}, {0.660415,0.069112}, {-0.073069,-0.338405}, {-1.016127,-0.176174}, {0.603558,0.251424}, {0.051546,-0.212910}, {-0.297017,-1.927157}, {-0.110347,-0.266009}, {0.592700,-0.192662}, {-0.562193,-0.059079}, {-0.549655,1.273057}, {0.063368,0.733878}, {-0.221776,1.592995}, {-0.742231,-1.023633}, {-0.300987,1.027012}, {0.819822,1.696182}, {-0.391936,0.788524}, {0.532161,-0.042235}, {-0.366096,-0.206694}, {-0.124892,-0.264484}, {-0.704913,0.651417}, {2.149216,-0.035024}, {-0.208488,0.467413}, {0.197927,-0.450251}, {0.775973,0.707921}, {-0.971095,0.934934}, {-0.675312,-0.556623}, {0.398423,2.014933}, {1.314999,0.121784}, {-0.149328,-0.548591}, {0.624388,0.554257}, {0.794465,-0.762318}, {-0.342740,-0.044003}, {0.664133,0.988572}, {-0.591256,-0.550813}, {0.004503,-0.209721}, {-0.704415,1.115631}, {0.499527,-0.865457}, {-0.427010,-0.058056}, {-0.442966,-0.801730}, {-0.028645,-0.432707}, {-0.520193,-0.477441}, {0.693746,-0.591685}, {-0.723356,-0.124885}, {-0.271467,0.138230}, {0.378694,-1.346075}, {0.867608,-0.861081}, {-0.030809,-0.637696}, {1.547649,-0.433481}, {0.281972,1.218074}, {0.289769,-0.252994}, {-0.547299,-1.114947}, {0.281379,0.103827}, {0.144241,0.141649}, {0.882615,0.777328}, {0.293825,-0.291434}, {0.115586,0.642325}, {-0.661045,-0.025898}, {0.339237,0.790670}, {-0.709378,0.173682}, {-0.691671,0.227216}, {-0.093392,0.390772}, {-0.822655,1.661899}, {0.470760,-0.539462}, {0.883847,0.324028}, {-0.816597,-0.501790}, {-0.171583,-1.222645}, {0.589553,0.087931}, {0.352979,-0.325299}, {-0.040087,0.573102}, {-0.333396,0.702907}, {0.678815,0.634352}, {1.236381,-0.495768}, {0.455672,1.242359}, {-0.877502,-1.177867}, {0.036368,0.084722}, {-0.261535,1.262188}, {-0.187800,0.138469}, {0.075047,0.017116}, {-0.553277,-0.427987}, {0.203971,-0.219700}, {-0.102810,0.727420}, {-0.208146,0.641188}, {0.505555,-1.229252}, {-0.089677,-0.317869}, {0.045298,0.553962}, {0.682165,0.978041}, {0.758240,1.062833}, {-0.591609,-0.169416}, {0.200002,-0.806496}, {0.401893,-0.505467}, {-0.049368,0.974221}, {-1.338392,-1.052507}, {-0.234168,-0.459732}, {-0.049076,-0.787956}, {-0.440995,0.824773}, {-0.310494,0.155186}, {0.629950,0.438434}, {0.128082,-0.298934}, {-0.889005,-0.700750}, {0.725139,1.108872}, {0.806530,0.172376}, {1.274152,-1.109091}, {0.361415,0.304318}, {-0.770589,-1.690576}, {-0.077050,-1.541958}, {0.055098,0.140834}, {-1.027384,-0.083170}, {-0.387121,1.173074}, {-0.511185,-0.640359}, {0.970168,0.278280}, {-0.399875,-0.215985}, {0.578435,0.171387}, {-0.143334,-0.387392}, {1.048777,0.181700}, {0.369934,0.608091}, {1.128358,-0.533869}, {0.725995,-0.677232}, {0.131748,-0.914071}, {-0.661664,0.557397}, {0.864385,0.026499}, {-0.076076,-0.384927}, {-1.700148,0.806878}, {-0.093025,0.160711}, {0.657889,-0.819687}, {1.415252,0.043090}, {-0.474513,1.021749}, {-0.235819,0.669443}, {-0.209294,0.038555}, {0.350373,0.947927}, {-0.473777,0.450919}, {-0.439863,-1.296476}, {-0.041963,0.452473}, {0.519491,-0.934337}, {0.029848,0.199221}, {0.568997,0.413023}, {-0.422968,0.191107}, {-1.046889,-0.575230}, {0.555575,0.114778}, {-0.271803,-0.125287}, {-1.492866,-0.813928}, {0.581882,-0.352968}, {-0.802623,1.377947}, {0.700558,0.297364}, {0.010499,0.485443}, {0.030525,-0.214066}, {0.290003,-0.036848}, {0.177382,0.633674}, {-0.142112,-0.817479}, {-1.506692,0.130953}, {-0.549851,0.089496}, {0.530755,1.632153}, {0.958531,-1.707736}, {0.610349,2.078139}, {-0.086293,0.239772}, {0.202042,-0.362267}, {0.894271,-1.466671}, {0.438957,0.318388}, {-0.721440,-1.241242}, {0.570884,0.929768}, {0.691115,0.078293}, {2.031262,0.005026}, {0.614740,0.403247}, {-0.153316,-0.453097}, {-0.500683,-0.473711}, {-0.604458,0.407987}, {0.182040,0.697141}, {-0.162319,0.006736}, {0.525699,0.675310}, {-0.360962,-0.686781}, {1.308789,-0.386448}, {-0.174349,-0.941565}, {-1.104866,0.335170}, {-0.705175,0.291939}, {-0.244608,-0.192226}, {0.962480,0.146916}, {0.413036,-0.045753}, {0.322721,0.586207}, {-0.285444,0.020732}, {-0.201547,-0.960376}, {-0.525784,0.598120}, {-0.594926,0.215987}, {-0.157909,-0.395456}, {0.609670,0.114630}, {0.326789,-0.001808}, {-0.652800,0.608450}, {0.630816,-0.318163}, {1.290349,-0.308122}, {0.302288,0.042105}, {-0.618234,-0.122607}, {-0.671018,0.647521}, {-0.033489,1.029981}, {1.127675,0.838844}, {-0.391586,0.406333}, {0.634599,-0.206173}, {-0.158274,0.281173}, {0.031888,0.459707}, {-0.371921,0.932324}, {0.076527,-0.283407}, {-0.241424,0.283793}, {0.312402,0.175612}, {0.212368,-0.432081}, {-0.773642,0.100780}, {0.251432,0.483141}, {-0.166812,-0.067869}, {0.027261,0.793139}, {0.764140,0.027200}, {0.014120,-0.858433}, {-0.996727,0.370392}, {0.132527,0.167380}, {0.972844,0.615013}, {-0.400845,-1.129354}, {0.468849,-0.867083}, {1.017556,-0.782061}, {-0.109531,-0.643417}, {-0.213625,0.158193}, {0.199067,-0.074333}, {0.344584,-1.074916}, {-0.221442,0.527535}, {-0.427743,0.192179}, {-0.445158,0.223376}, {-0.406246,-1.129810}, {0.498180,-0.537912}, {0.246385,1.147774}, {1.124593,0.638781}, {-0.238219,-1.178279}, {0.564715,0.082624}, {0.009528,-0.294926}, {0.449595,-0.413499}, {-0.222000,-0.383341}, {-0.293071,-0.020010}, {0.262525,-0.619825}, {-0.622110,0.994815}, {0.826520,-0.318905}, {-0.139956,0.034670}, {-0.602776,1.445757}, {-0.000428,0.515115}, {0.262184,-0.002736}, {1.304981,-0.501046}, {-0.321231,0.622551}, {1.054329,-0.220852}, {-0.492771,-0.940654}, {-0.780517,1.146123}, {-0.030875,-1.453137}, {0.833466,-0.395468}, {0.523778,0.759513}, {-1.126077,-0.417115}, {-0.556663,0.032786}, {0.206892,-1.122757}, {-0.366164,1.106942}, {0.152365,-0.067752}, {0.046570,-0.568357}, {-1.294625,0.304168}, {-0.314597,-0.414620}, {1.204236,0.126016}, {-0.051512,0.247893}, {-0.662050,-0.548429}, {0.806882,0.635211}, {0.354519,0.315406}, {-0.102549,-0.307759}, {-0.945865,-1.144877}, {0.092988,-0.095752}, {-0.590799,1.426964}, {-0.512031,-0.295192}, {-0.241074,-0.440517}, {0.829680,0.087681}, {-0.109337,-0.289886}, {0.656985,0.294518}, {0.564203,0.206732}, {-0.898597,-0.207926}, {0.327259,0.685055}, {1.226880,-0.695505}, {-0.829727,0.718718}, {-1.451225,-0.289371}, {0.837042,1.220714}, {-0.158113,0.175430}, {0.974037,-0.062980}, {0.178835,0.169509}, {1.118203,0.735886}, {0.104949,-0.340257}, {0.378724,0.089648}, {0.214056,-0.821406}, {1.396107,0.599080}, {0.369926,0.109247}, {0.673800,0.763612}, {-0.268951,-0.230063}, {0.567933,0.162580}, {-1.689604,-0.345288}, {0.137885,-0.093063}, {-0.298533,-0.191792}, {1.251967,-0.136681}, {-0.693495,-0.932444}, {-0.555325,-0.131594}, {0.236263,-0.069815}, {-1.252648,0.035106}, {-1.764317,0.733486}, {-0.075051,1.622354}, {-0.085244,-0.605377}, {-0.642959,-0.089863}, {-0.113593,-0.099045}, {0.058362,-1.029047}, {0.826847,0.113454}, {-0.244119,-0.050284}, {-1.073509,0.123867}, {-0.904460,-0.901549}, {0.453204,-0.459712}, {-1.264724,-0.418653}, {0.472295,-1.485124}, {0.323558,-0.092765}, {1.800720,0.519789}, {-1.126308,-0.318456}, {0.724158,-0.269665}, {0.710385,0.177657}, {-0.783852,-0.215007}, {-1.354067,0.031020}, {-1.015185,0.249321}, {0.839984,1.457903}, {-0.353245,-0.313877}, {0.763070,0.903317}, {-1.656538,-0.791042}, {-0.892608,-0.381481}, {0.649284,-0.643492}, {1.455720,-0.133815}, {0.732560,-0.289157}, {-0.377583,-1.019029}, {-0.377847,-1.270397}, {0.809711,-0.293496}, {-1.027232,-0.492600}, {-0.531947,-1.149837}, {-0.321890,0.886703}, {-0.603477,-1.377457}, {0.259723,-0.220563}, {0.949998,0.240148}, {0.261264,0.890932}, {0.595257,-1.336390}, {-0.362741,0.082717}, {-0.355324,-0.058517}, {-0.404853,-0.487143}, {-0.431324,0.299014}, {0.079328,-0.804580}, {0.824935,-0.454231}, {0.262757,-0.554689}, {0.126869,-0.439135}, {-1.051874,-0.512746}, {0.293715,0.904688}, {-1.530512,-0.258114}, {0.782473,1.192382}, {0.532046,0.769399}, {0.384142,-0.126943}, {0.161275,-0.961466}, {-0.060918,-0.053277}, {0.876995,1.833961}, {-0.747767,0.165348}, {-0.052410,-0.612302}, {0.814379,0.370027}, {0.848717,-0.351940}, {-0.797478,-0.346407}, {0.451936,1.010194}, {0.582376,0.949018}, {-0.342362,0.108576}, {0.556515,-0.142943}, {0.728162,-1.097160}, {-1.075414,0.137602}, {0.457708,-0.654780}, {0.165246,1.781712}, {-0.319642,-0.993107}, {-0.584410,0.462585}, {-0.203283,-0.682679}, {-0.872903,0.560968}, {0.545374,0.278981}, {0.918419,0.246065}, {-0.632251,-0.167158}, {-0.285094,0.517218}, {0.742545,-0.428022}, {-0.272512,-0.650121}, {0.007097,-0.259464}, {0.321549,-0.153838}, {-0.935528,-0.478174}, {-0.609717,-0.076270}, {-0.755654,-0.453108}, {0.881595,0.809393}, {-0.851194,-0.126438}, {-0.678539,-0.168662}, {-0.735439,1.454476}, {-0.702070,-0.732654}, {0.950217,0.061374}, {0.931381,0.383055}, {-1.577577,-0.830957}, {1.081051,0.875738}, {0.946201,1.485701}, {0.433276,0.890427}, {1.505338,0.234134}, {0.083216,0.185535}, {0.206556,0.692397}, {0.800164,1.210478}, {0.308393,-0.573495}, {-0.455541,0.377465}, {0.285379,0.593679}, {1.807014,0.007663}, {1.599165,-0.768434}, {-0.182963,-1.147207}, {0.691660,0.496669}, {0.235179,-0.284885}, {-0.461998,0.542110}, {-1.935320,-0.774389}, {-0.078056,-0.127823}, {0.299281,-0.033361}, {0.302731,0.078716}, {0.069066,-0.050105}, {0.221607,-1.239222}, {0.340220,0.582368}, {-0.565872,0.345751}, {-0.470414,0.191707}, {-0.086475,-1.321960}, {-0.653337,1.499706}, {-1.186698,0.203143}, {0.362014,0.335224}, {0.763790,-0.914370}, {1.135858,-1.463878}, {0.719099,-0.477518}, {0.269766,0.421199}, {0.064365,-0.175814}, {-0.367548,0.001256}, {0.544776,-0.698629}, {0.615651,-0.386841}, {-0.875089,-0.516872}, {0.413476,-1.281108}, {0.502809,-0.490843}, {-2.204143,0.110420}, {-0.385040,-0.740596}, {0.695904,0.385231}, {0.255709,0.008205}, {-0.586557,-0.564665}, {0.803747,0.411107}, {1.601181,0.662062}, {0.865286,-0.979781}, {0.689845,0.519237}, {0.395498,0.145840}, {-0.626369,0.344739}, {0.042164,0.051887}, {-1.403498,0.671656}, {0.598572,0.681828}, {1.220256,-1.165620}, {-0.793312,0.715179}, {-0.234183,0.019938}, {0.385507,0.226328}, {-0.450997,-1.107601}, {-1.171289,0.649867}, {-1.080178,-1.231856}, {-0.061619,1.143806}, {0.430298,0.525364}, {-1.049354,0.166192}, {-0.080776,-0.357525}, {0.511572,-1.785495}, {-0.558196,0.261639}, {-0.887145,0.298578}, {-1.566637,0.706769}, {1.151140,0.445122}, {-0.586133,0.107778}, {-0.804525,0.245580}, {0.980744,1.043818}, {-0.070419,-0.910922}, {-0.451713,0.466261}, {1.125777,0.160904}, {0.577041,0.069860}, {1.144021,-0.150339}, {-0.411414,0.404973}, {0.188443,0.548050}, {0.225498,-0.614626}, {1.398432,-1.427287}, {-0.035313,0.492779}, {0.460713,-1.022950}, {-0.523193,-0.887124}, {-1.045011,0.261402}, {1.388863,-0.612235}, {0.475152,-0.857959}, {0.468680,-0.231389}, {0.983306,0.199760}, {-0.645385,0.205021}, {-0.363448,-0.870316}, {-0.003819,0.010668}, {0.471121,0.244769}, {-0.040500,0.556180}, {-1.479050,0.358434}, {0.182788,0.373558}, {-0.858638,-0.878108}, {0.001368,0.436654}, {0.142518,0.294864}, {-1.153171,0.438127}, {0.937820,0.034099}, {1.521724,-0.077421}, {-0.377694,-0.278517}, {1.467230,-0.459260}, {0.145964,0.357560}, {0.619192,-1.480037}, {-0.797876,0.686615}, {-0.465726,1.294829}, {1.120753,0.433341}, {0.481084,0.429728}, {-0.993491,-0.218804}, {0.080120,0.061366}, {-0.345080,-1.108765}, {0.597685,-1.108810}, {0.272861,-1.448070}, {0.103180,-0.368753}, {0.452562,-0.193846}, {-0.047889,-0.169513}, {-0.062237,-0.499899}, {-0.208393,1.227431}, {0.358621,-0.122079}, {-0.538647,0.167846}, {-0.535399,0.147300}, {-0.016851,-0.523791}, {0.185591,0.287441}, {-0.076126,0.077379}, {0.111808,-0.298068}, {-0.360049,0.447806}, {-0.468579,0.021829}, {0.999254,0.093009}, {0.409156,0.087569}, {-0.290239,1.155172}, {-0.631769,0.113278}, {-0.485475,0.352847}, {0.132807,0.899243}, {0.231351,-0.149363}, {0.389824,-1.011206}, {-0.093767,0.618494}, {0.302881,0.883287}, {0.253348,-0.020438}, {0.310115,0.544154}, {-0.181672,0.250213}, {0.785253,-0.002714}, {0.399704,-0.310344}, {-1.634428,0.357997}, {0.976723,0.117106}, {-0.663422,0.938808}, {1.142522,0.426250}, {-0.176854,0.538674}, {1.134571,1.976267}, {-0.793977,0.553600}, {-0.496199,0.132777}, {0.428161,1.342281}, {0.881731,-0.349207}, {0.487284,-0.673507}, {0.834150,0.300816}, {1.043740,0.574802}, {-0.108407,1.056837}, {-0.745715,0.304328}, {0.494903,0.535517}, {-0.608093,0.752694}, {0.430291,-0.135674}, {-0.174181,-1.362910}, {-0.064613,-1.995513}, {-0.704478,0.276742}, {0.232225,-0.347325}, {0.129886,0.297225}, {0.095056,0.366532}, {1.123177,-0.516860}, {0.280489,0.548995}, {0.950114,0.871146}, {-0.045855,-0.101106}, {0.323361,0.916197}, {-0.379042,-0.789420}, {0.155370,-0.526626}, {0.123440,-0.404112}, {1.122189,-0.542010}, {0.287594,-0.412748}, {-0.487695,-0.914112}, {0.326158,-0.133099}, {-0.166449,-1.353339}, {-0.055827,0.625175}, {-1.228110,0.059411}, {-0.274514,-1.194058}, {0.008816,-0.571387}, {-0.700423,0.936284}, {-0.528928,0.824434}, {-0.436216,1.131698}, {-1.371594,-0.535034}, {-0.002092,0.190907}, {-0.652668,1.278957}, {0.101573,-0.906194}, {0.783427,-0.139790}, {-2.499705,-0.774554}, {0.580857,0.350367}, {-0.259410,0.346345}, {1.443858,0.066180}, {1.007880,-0.608615}, {-1.185398,-0.124630}, {-1.074749,-0.104417}, {-0.075128,0.869631}, {-0.157998,1.035636}, {-0.212559,-0.416354}, {0.399589,-0.077372}, {0.139788,0.342017}, {1.188158,-1.194288}, {0.290935,0.230597}, {0.467906,0.144104}, {0.777358,0.288836}, {0.818580,0.308433}, {-0.210142,0.214512}, {0.315948,-0.636328}, {-0.005891,-0.999753}, {0.072755,-0.563891}, {0.425654,0.196551}, {0.361411,-0.211226}, {0.905206,-1.349513}, {-0.790974,-0.395724}, {0.525156,0.770383}, {-0.092408,-0.488183}, {0.265920,-0.036150}, {-0.276333,-0.689856}, {0.117261,0.005735}, {-0.665691,-0.164460}, {0.312157,-0.594442}, {0.107864,-0.443120}, {1.118670,-0.671898}, {-0.022763,0.583797}, {0.510916,-0.179671}, {0.714169,-0.104546}, {0.396036,1.216840}, {0.373920,0.135520}, {0.553972,-0.997894}, {0.052585,0.462084}, {-0.150044,-0.163447}, {1.461147,0.659548}, {-1.000455,-1.680109}, {-0.717611,-0.210337}, {-0.772596,-0.251350}, {0.537726,1.050492}, {-0.482650,-0.283289}, {-0.633239,-0.569656}, {-0.904458,-0.617468}, {0.109119,-1.522443}, {-1.226419,-0.899079}, {0.379579,-0.252179}, {-0.104614,0.852366}, {-0.503179,0.002718}, {0.361405,-0.255127}, {0.707854,-0.139151}, {0.588351,0.341695}, {0.541234,0.404290}, {-0.423201,0.945891}, {0.540899,0.903758}, {-0.383715,-1.224310}, {0.541671,-0.191686}, {0.220524,-0.467755}, {0.419523,-0.261834}, {-0.248004,-0.524029}, {1.166929,-0.005245}, {0.162462,0.683697}, {0.021613,-1.336883}, {-0.371790,-0.820360}, {0.064987,-0.180902}, {-0.530311,-0.237448}, {0.014535,0.196268}, {0.302158,-0.943375}, {-0.741328,-0.621982}, {-0.990134,-0.843669}, {0.298802,0.314671}, {0.150737,-0.515418}, {0.642389,0.170803}, {-0.660634,-0.070932}, {-0.466752,0.294915}, {0.498991,0.882812}, {-0.120033,-0.318492}, {-0.283866,0.416022}, {-1.125159,0.156951}, {0.164229,0.285664}, {-0.680682,0.531478}, {-0.228335,0.444181}, {0.424797,-0.850202}, {-0.620993,1.933195}, {0.618146,1.057688}, {0.351681,0.093757}, {0.343992,-0.350496}, {0.419756,-0.682277}, {0.132223,-0.220393}, {0.315669,-0.077213}, {0.623756,-0.047636}, {-0.980970,0.008924}, {-0.180176,0.848320}, {1.546197,0.370102}, {0.713022,-0.899697}, {-0.512503,-0.004650}, {-1.161518,0.132127}, {-1.041393,-0.554167}, {-0.036518,0.378256}, {-0.567661,-0.897940}, {0.259504,-0.049623}, {-0.026158,-0.270600}, {0.724927,-0.499448}, {0.138307,1.291056}, {-1.822129,-1.644371}, {0.671500,0.097591}, {-0.980895,0.107560}, {-0.420513,0.010420}, {0.003000,-0.162645}, {0.447768,-0.633708}, {0.382118,0.153956}, {-0.223916,-0.841490}, {-1.102503,-0.035876}, {0.040286,0.813246}, {0.067205,-2.636223}, {-1.058178,-0.439882}, {0.240943,0.599442}, {-0.266778,-1.074089}, {0.320826,-0.918839}, {-0.646954,-0.007690}, {-0.530749,-0.347252}, {-0.393036,-0.123253}, {0.053211,-2.091439}, {-0.481911,-0.677379}, {-0.014975,0.997160}, {0.536010,1.088136}, {-1.031007,-1.129666}, {-0.116730,0.519996}, {1.565485,-0.343272}, {-0.368459,0.506657}, {-0.230470,-0.260120}, {0.621381,1.007440}, {0.186324,-0.312790}, {0.273069,-0.166279}, {0.201102,1.556145}, {-1.115634,1.567159}, {-0.648866,-0.322859}, {-0.704410,0.380438}, {0.342389,0.213936}, {-0.042804,0.701810}, {0.016719,0.090798}, {-0.731592,-0.277491}, {0.103078,0.783883}, {0.345053,0.215559}, {0.067924,1.081925}, {0.369806,-0.219722}, {1.098806,0.215612}, {-0.724316,-0.036048}, {0.186158,0.608022}, {0.139663,0.056514}, {-0.575010,-0.801492}, {-1.123663,-0.414602}, {0.564236,0.266108}, {-0.391462,0.093429}, {0.144703,-0.560902}, {-0.686121,1.329790}, {-0.379640,-0.241261}, {-0.498875,-1.364991}, {0.541470,0.214751}, {-0.508841,-0.694946}, {0.812702,0.407024}, {0.257132,0.128592}, {-1.187255,-0.495273}, {0.020247,-0.196925}, {0.188392,-0.459074}, {-0.932918,0.525366}, {1.134929,1.151288}, {-1.296745,-0.844320}, {-0.610290,-1.014578}, {0.623994,0.443023}, {-0.303615,-1.049124}, {-0.597543,-0.208275}, {0.252960,0.992397}, {-0.023412,0.368284}, {-0.429581,-0.070039}, {0.923782,-0.778340}, {0.060056,-0.739469}, {0.753096,0.478049}, {-0.127857,0.093383}, {0.106401,0.423911}, {-0.183224,-0.032369}, {-0.381160,0.851604}, {-0.797228,-0.217383}, {0.227067,0.316891}, {0.451114,1.830366}, {-1.042958,0.186763}, {-0.171936,0.478779}, {-0.075379,0.034822}, {0.385404,1.160047}, {0.105260,-1.211098}, {1.211046,-1.103540}, {0.308818,-1.042156}, {-0.704631,-0.115963}, {0.012675,-0.547391}, {-0.484557,-0.100460}, {-0.836917,-0.043501}, {-0.463115,1.544351}, {0.309894,-0.669455}, {0.685375,0.000866}, {0.511942,0.836813}, {-0.929517,-0.531037}, {0.050933,0.075894}, {0.845070,1.231045}, {0.796139,0.796776}, {0.766749,-0.653760}, {0.742048,1.398289}, {-0.403017,-0.007496}, {-0.509706,1.110607}, {-1.449968,0.427343}, {-0.010909,1.223294}, {-0.077727,-0.670769}, {0.526333,0.308160}, {0.319094,-0.176388}, {0.742543,1.379446}, {1.245044,1.188638}, {-0.025489,-0.164810}, {0.608945,-0.073624}, {-0.174670,-0.273746}, {-0.624686,1.010041}, {-0.670461,0.584006}, {-0.444858,-1.904891}, {0.222806,0.547945}, {0.138390,0.546322}, {-0.446882,-0.696967}, {-0.628694,-1.208785}, {-2.152300,-0.613403}, {-0.096864,0.068138}, {-0.301906,-0.946012}, {-0.369820,-0.646125}, {-1.447581,-0.646713}, {-0.400707,-0.494477}, {-0.635435,-0.038456}, {0.296783,0.278288}, {-1.001213,0.042941}, {0.091071,0.902239}, {-0.460656,0.281628}, {0.479946,0.142043}, {-0.487485,-0.696643}, {-0.407485,-0.541246}, {-0.607882,-0.853128}, {-1.305443,-0.877425}, {-0.359749,-0.647498}, {-0.626709,0.576527}, {-0.148729,-0.090456}, {0.172979,0.177948}, {-0.107637,-0.478667}, {0.366998,0.024629}, {0.462107,0.857612}, {-0.460563,0.248349}, {0.907838,0.853909}, {0.783150,0.585374}, {-0.299669,-0.212882}, {1.119594,0.504852}, {0.377228,0.481423}, {0.852296,0.676788}, {-0.286757,-0.002129}, {0.209843,-0.977784}, {-0.441823,-0.072773}, {0.917957,-0.753300}, {0.273348,-0.628772}, {-0.284862,0.155215}, {-0.247355,-0.247082}, {2.118546,-0.537469}, {-0.310251,-0.363626}, {1.378995,0.614774}, {0.009172,-1.398820}, {-0.300000,0.441999}, {-0.297449,0.954413}, {0.683275,0.180768}, {-0.371476,-1.618431}, {-0.175134,-1.231505}, {-0.749555,-0.428287}, {-0.969477,0.592818}, {0.687133,-0.691685}, {-0.165526,-0.045505}, {0.910848,-0.391948}, {1.179305,0.100935}, {0.166614,-0.729254}, {-1.130469,0.164593}, {-1.549639,0.217721}, {-0.481054,-0.872328}, {-0.586590,-1.074824}, {0.091563,0.381294}, {-0.609678,-0.230306}, {0.503876,0.238278}, {-0.562595,1.625733}, {1.273220,0.329444}, {0.309265,-0.432313}, {0.950421,0.011570}, {0.374275,-0.221395}, {-0.002535,-0.068439}, {-0.704010,-0.714205}, {0.645151,-0.117244}, {-0.548621,0.089519}, {-1.310708,0.214149}, {-0.222895,0.327611}, {-1.536313,0.422522}, {0.805899,-1.158480}, {0.201190,0.527469}, {0.085621,-0.741991}, {-0.638953,0.135701}, {0.610284,0.256558}, {-0.021550,-0.185034}, {-0.663349,0.344785}, {1.234438,0.087483}, {-0.131234,-1.490191}, {0.256245,0.425473}, {-0.093340,0.831930}, {-1.552555,-0.056483}, {0.441688,0.115210}, {0.108127,0.046402}, {-0.367616,-0.887437}, {-0.808894,-0.681247}, {-0.609795,-0.206087}, {0.578144,0.401209}, {-0.066620,0.628916}, {0.230375,-0.294361}, {0.168031,0.445080}, {0.184035,0.358481}, {0.251087,-0.489438}, {-0.945207,2.090916}, {-0.899493,0.281441}, {-0.600711,0.695281}, {0.496877,1.825249}, {0.557064,1.787828}, {-0.032903,0.096150}, {-0.171482,-0.526085}, {-0.560700,0.472487}, {-0.295947,0.009918}, {1.142040,0.416169}, {-0.447775,0.074483}, {-0.823909,-1.010476}, {-1.547191,1.727266}, {-0.760387,-0.877929}, {-1.629711,-0.932786}, {0.486282,0.248117}, {-0.264396,0.926022}, {1.081113,0.075435}, {-0.643699,-0.289886}, {0.440984,0.308158}, {0.821736,-0.810105}, {-1.505203,-1.521192}, {-0.542677,0.842918}, {0.164887,0.399004}, {-0.811521,0.078831}, {0.797827,-1.167125}, {-0.401101,-0.501867}, {0.364811,-0.809028}, {0.734068,-0.323428}, {-0.319197,-0.550535}, {-0.271324,-0.367006}, {-0.059699,0.983663}, {-1.366932,0.282483}, {0.168976,0.203650}, {0.302598,-0.221575}, {1.175485,0.753488}, {0.107512,1.781766}, {0.946028,-0.282479}, {-0.679608,-0.932184}, {-1.191856,0.201361}, {-0.166462,-0.053378}, {-0.812532,-0.147616}, {1.611017,0.674833}, {0.314528,1.017239}, {-1.162592,0.325194}, {-1.032033,0.635921}, {0.084120,-0.730470}, {0.494315,0.897198}, {0.847109,0.168996}, {1.644454,0.751446}, {-0.353970,-0.863128}, {0.678397,0.141939}, {-0.973674,-2.013022}, {0.685345,0.419897}, {-1.288642,-0.442089}, {-0.054887,-0.748914}, {-0.601785,-0.605123}, {-0.214297,-0.391510}, {-1.074972,0.659726}, {0.105391,0.708672}, {-0.113354,-0.765485}, {0.300873,0.781452}, {0.170277,0.599499}, {0.147834,-0.954326}, {-0.339726,-0.501183}, {0.544002,0.385444}, {0.352044,1.066552}, {0.911869,0.956912}, {-0.191047,0.108966}, {1.413499,-0.757569}, {0.706789,-1.026854}, {0.539308,-0.138690}, {0.080942,-0.272806}, {0.098018,0.018024}, {0.195238,-0.389384}, {0.488144,-0.357992}, {-0.309817,0.010149}, {-1.032893,-0.592658}, {-0.298775,-0.388887}, {1.131782,-1.690704}, {-0.193514,0.171204}, {-0.537903,-0.543134}, {0.659055,-0.601144}, {0.304951,0.294985}, {0.888941,0.970043}, {0.458543,-0.183693}, {-0.759308,0.795668}, {-0.350375,-0.113882}, {-0.127585,0.382365}, {-0.213916,0.521858}, {-0.344818,0.116112}, {-0.092834,-0.185633}, {0.061649,1.365497}, {0.476463,-0.791558}, {-0.984206,0.997109}, {-0.057978,-0.489422}, {-0.194234,-0.607085}, {-0.657674,0.088412}, {-0.469191,0.137722}, {1.011820,-0.291022}, {-0.303269,-0.626332}, {0.561159,-0.200477}, {0.140475,0.804297}, {0.160608,-0.598328}, {0.213319,1.449153}, {1.142243,0.283340}, {0.065037,-0.257834}, {0.261033,0.207025}, {0.700460,0.482503}, {0.843141,-0.154417}, {0.292633,0.402510}, {-0.818789,-0.671620}, {0.736334,-0.267822}, {-0.736153,0.705889}, {-1.012207,-0.010744}, {0.662579,0.401311}, {-0.387354,-0.679445}, {1.209621,-0.153205}, {-0.701672,0.069607}, {1.319853,1.085888}, {1.254748,-0.101110}, {0.266011,-0.499106}, {0.615725,0.884454}, {-1.011208,0.102181}, {-1.099802,-0.974027}, {-0.531963,-0.562972}, {0.121607,-0.356338}, {0.518231,0.154831}, {0.499951,1.188225}, {-0.817457,1.714401}, {0.369950,0.572897}, {-0.414845,-0.182628}, {-0.718216,1.117213}, {-1.333928,0.469810}, {-1.207522,-0.417102}, {0.561111,0.726184}, {-1.117766,-0.219214}, {0.744550,-0.034760}, {0.797619,1.455506}, {-0.584053,0.337943}, {0.157397,-0.757585}, {0.116196,-0.446006}, {0.146428,0.467807}, {0.714421,-0.366232}, {1.429872,0.625346}, {-0.033015,0.198674}, {0.105885,-0.216353}, {-0.023687,0.692143}, {-0.048073,0.669529}, {-0.205184,0.780326}, {0.266525,0.176072}, {0.141148,0.252191}, {-0.388369,0.046018}, {0.299170,-0.177464}, {-1.081893,-1.145642}, {0.010014,0.514986}, {0.448166,-0.748932}, {-0.295357,-0.035173}, {-0.033904,0.187373}, {-0.964666,-0.232491}, {0.485426,-1.478534}, {0.150372,0.430681}, {1.004055,0.755612}, {-1.273932,-0.382681}, {-0.123319,0.320989}, {-0.919513,-0.315545}, {-0.497703,0.345372}, {0.182013,-0.018783}, {0.188130,-1.169909}, {-0.716006,-0.184715}, {0.178950,-0.378160}, {-1.121777,0.261067}, {-0.884913,0.533499}, {-0.252487,-0.381490}, {-0.521029,-0.459944}, {0.109009,-0.604069}, {-0.131799,-0.166129}, {-0.915776,0.867035}, {-0.051356,-0.189373}, {0.352025,0.298949}, {0.197533,0.081879}, {-0.198604,0.668512}, {1.153004,0.840196}, {-0.111957,-0.162456}, {1.271047,0.649951}, {-0.272905,1.016445}, {-0.490432,-1.110506}, {0.098962,0.280027}, {-0.149747,-1.055724}, {0.592247,-0.565550}, {1.155912,-1.145805}, {0.763039,0.568494}, {-0.395993,0.406406}, {0.047324,0.263514}, {-0.137376,0.214639}, {-0.226893,-0.197915}, {0.966088,-0.475559}, {-0.194234,-0.012569}, {-0.473935,-0.886494}, {-0.265603,0.751773}, {-1.593588,0.084399}, {1.119877,0.854302}, {-0.038422,0.118207}, {0.370947,0.914543}, {1.114324,0.036220}, {0.206356,-0.695196}, {1.075653,0.031579}, {-0.428467,0.099867}, {-0.942289,0.247139}, {-0.925418,-0.511600}, {-0.275870,-0.147021}, {0.403291,-0.774485}, {-0.147236,-0.816691}, {0.715749,-0.581534}, {0.714183,-0.266639}, {-0.530022,0.395632}, {-0.081142,0.308192}, {0.776196,-1.301781}, {0.402042,0.760863}, {0.582426,1.116527}, {0.303501,-1.230810}, {0.909943,-0.101521}, {-0.304997,0.216745}, {-0.534911,-1.278462}, {0.117181,0.344833}, {0.598680,-0.801582}, {-0.488952,0.298129}, {-0.577852,-1.244262}, {1.066878,-0.383162}, {0.365205,-0.304288}, {0.219744,1.047894}, {-0.203519,0.603274}, {0.562170,0.561149}, {0.172008,0.053308}, {-0.240833,-0.248882}, {0.374048,0.395277}, {-0.184462,0.712107}, {-0.744861,-0.403328}, {0.909695,-0.029738}, {-0.518537,0.759702}, {0.075402,0.358815}, {1.141827,-0.585600}, {-0.562473,0.258697}, {-1.676194,0.124049}, {0.233487,-1.891531}, {-0.829451,0.542206}, {0.671130,-0.997574}, {-0.508597,-0.729909}, {1.180725,-0.338574}, {1.129566,-0.232048}, {-0.380058,0.044743}, {-0.520974,0.138217}, {0.316724,0.009838}, {0.133527,-1.443095}, {0.420516,0.089332}, {-0.302825,0.028929}, {1.668571,-0.092751}, {0.452698,0.532245}, {0.360685,-1.949182}, {-0.909377,1.422417}, {0.108981,0.031519}, {0.529371,-0.320971}, {-0.439658,0.288459}, {0.212286,-0.312996}, {0.505587,0.680236}, {0.990288,-0.247507}, {-0.568695,-0.327833}, {-0.026999,-2.401438}, {0.339704,-0.467720}, {1.232324,-0.049586}, {-1.244245,-0.285340}, {-1.630956,0.212445}, {0.099499,0.057161}, {0.764231,-0.893147}, {0.454370,-0.132950}, {0.140425,0.680194}, {0.516606,0.024468}, {-0.862301,0.058704}, {0.505420,0.269336}, {-1.237570,-0.038382}, {0.535371,-1.536667}, {-0.363929,-0.038955}, {0.024531,0.914036}, {0.543681,0.532978}, {-0.515135,-0.698846}, {-0.428846,0.073398}, {-1.039931,0.055062}, {-0.621873,-1.226401}, {0.007829,0.811232}, {0.571021,-0.114346}, {-0.382807,0.023667}, {-1.068780,-1.869853}, {1.156098,-0.153257}, {0.573828,-0.535261}, {-0.790467,0.176901}, {-0.315664,0.803594}, {-0.334936,0.354728}, {-0.055522,0.952521}, {1.315614,0.102351}, {0.491766,0.538302}, {0.653814,-0.342202}, {-0.127639,-1.045441}, {0.819444,-0.227273}, {-0.029933,0.258527}, {-0.824566,0.432697}, {0.165227,-0.560056}, {-0.588310,0.436099}, {-0.421849,-0.388859}, {-0.090400,-1.251581}, {-0.533719,1.429956}, {0.394513,1.115320}, {-0.782266,0.768142}, {-0.197776,0.622177}, {-0.067525,1.525139}, {1.756764,0.035239}, {0.798450,-0.795585}, {-0.262068,0.632512}, {1.880538,-0.279111}, {-0.792909,-0.561815}, {0.888441,1.301812}, {0.701364,-0.873528}, {1.343495,-0.562411}, {0.868597,0.141126}, {-0.328745,0.918909}, {-0.941006,-1.339590}, {-1.343155,-0.049963}, {-0.574658,-1.478137}, {0.137838,0.792901}, {-0.041365,0.454133}, {0.091431,-0.459571}, {-1.358113,-0.736001}, {-0.192427,-0.926593}, {0.350541,0.433002}, {-0.084577,-0.444999}, {0.205895,-0.138558}, {-0.941218,-0.106877}, {-0.194195,0.335722}, {0.734401,-0.283139}, {1.613564,-0.517256}, {-0.090641,0.231313}, {0.266345,0.222315}, {0.518095,0.960832}, {0.250561,-0.619001}, {-0.130002,-0.001817}, {-0.447930,0.628615}, {-1.273623,0.406367}, {0.212427,0.986079}, {-0.997576,-0.940297}, {0.375197,0.358510}, {0.229471,-1.781878}, {0.184320,0.461606}, {0.434436,-0.414778}, {0.034886,-0.062974}, {-1.325976,0.135652}, {0.189020,-0.739167}, {-0.205637,-0.572855}, {0.860524,-0.315333}, {0.469117,-1.548092}, {-0.513513,1.158982}, {-0.837350,0.105504}, {-0.061953,-0.530778}, {0.293859,0.467221}, {-1.319548,-0.912039}, {-0.137013,-0.872433}, {0.387589,-0.454601}, {-0.234174,-0.245068}, {-0.744095,-0.128278}, {-0.391439,0.309053}, {0.908503,0.583369}, {0.802960,0.512355}, {-0.685064,1.108868}, {0.251810,0.543558}, {-0.142699,0.735253}, {-0.039414,-0.908746}, {0.003694,-0.414133}, {0.715774,0.070174}, {-0.374828,1.309546}, {-0.427538,0.385587}, {1.338794,0.002127}, {-0.216609,-0.694721}, {-1.047300,0.562533}, {0.397480,0.627659}, {-0.068233,-1.155685}, {-0.553008,0.472904}, {-0.042893,-0.644339}, {-0.448845,-1.208575}, {-1.198214,0.953970}, {0.997727,0.245114}, {0.597755,0.536424}, {0.056192,0.023036}, {-0.599560,0.905339}, {-0.495127,-1.106235}, {-0.677290,-0.536778}, {-0.732936,0.552336}, {-0.341833,0.636930}, {0.745283,0.226951}, {-1.677101,-0.140140}, {0.185817,1.107540}, {-0.845686,-0.138093}, {0.337944,-0.600359}, {1.011849,0.076595}, {-0.535078,0.401710}, {-0.509358,0.080738}, {-0.713136,0.201088}, {-0.037796,-0.459023}, {0.077312,0.078831}, {-0.674500,0.304809}, {0.022353,0.208630}, {0.234088,-0.185560}, {-0.100573,-0.317607}, {1.598601,0.170815}, {1.128860,0.395856}, {0.126361,0.194856}, {-0.743378,-1.283214}, {-0.729153,-1.745945}, {0.427334,0.514369}, {-0.260759,0.127843}, {0.726265,0.484686}, {-1.043220,1.583933}, {0.058154,0.202930}, {-0.691332,0.298501}, {0.914411,-0.450303}, {0.871508,-0.248846}, {-0.880065,-1.352105}, {-0.347400,-0.479989}, {-0.523254,-0.137392}, {0.062610,0.321808}, {0.583315,1.055442}, {-0.543484,0.434486}, {-0.325772,-0.127451}, {-0.691826,-2.465879}, {-0.182029,-0.371495}, {0.061634,0.106658}, {0.465593,-0.215001}, {0.799056,-0.576378}, {0.246446,0.624574}, {-0.629259,-0.126268}, {-0.332421,-0.594629}, {0.811796,0.672092}, {-0.362575,-0.952485}, {-0.013237,-0.559132}, {0.462364,-0.104255}, {-1.326460,-0.448336}, {-0.472969,-1.030240}, {0.263871,0.137456}, {0.289922,0.058766}, {0.129665,-0.095386}, {0.004142,0.060144}, {0.440724,0.236644}, {-0.648048,-0.197413}, {-0.313149,0.016730}, {-0.002432,0.336209}, {0.258660,1.080749}, {-0.622678,-0.971236}, {-0.756907,-0.630989}, {-0.511331,1.518728}, {0.044649,-0.192437}, {-0.525301,1.021474}, {-0.281214,0.054685}, {-1.829357,-0.855561}, {-1.000657,-0.711545}, {0.117003,-0.447632}, {0.776485,-0.166259}, {0.540743,0.110749}, {0.957454,-0.352617}, {1.317026,1.546090}, {0.140886,0.013168}, {-0.570171,0.392356}, {-0.129722,0.788992}, {-0.725847,0.653395}, {0.679142,0.364229}, {0.007173,-0.853037}, {0.914126,-0.596944}, {0.066525,0.639936}, {0.026810,0.096725}, {-0.538577,-0.152497}, {0.239321,1.002422}, {0.129554,-1.193610}, {-0.187528,0.700211}, {-0.645819,0.080298}, {0.283125,0.043507}, {0.350661,0.372335}, {-0.655806,0.541560}, {0.259071,0.914486}, {-0.920489,-0.623889}, {0.682493,0.379061}, {-0.505215,0.663097}, {-0.426863,-0.323863}, {0.363894,0.848174}, {-0.959164,0.304144}, {0.370840,0.239161}, {-0.576532,1.683390}, {0.072048,-0.479737}, {0.248627,-0.740696}, {0.267982,-1.331841}, {-0.742341,-0.098982}, {-1.397583,0.691099}, {0.062944,-0.918057}, {-0.341076,-0.572305}, {-0.625912,0.261916}, {0.000942,0.115087}, {-0.175561,-0.065593}, {0.613856,-0.651875}, {-0.374162,-1.289950}, {-0.165900,-0.183065}, {0.934889,-0.088622}, {-0.658801,-0.699260}, {-0.381254,-0.924817}, {-0.606669,0.746831}, {-0.801585,-0.060323}, {0.750367,-1.191764}, {0.422306,0.025905}, {-0.348244,-0.193827}, {0.533889,0.323919}, {-0.475731,-0.614214}, {1.358458,1.027040}, {0.041062,0.716650}, {1.086781,0.856076}, {-0.318239,-0.090265}, {-0.583590,-0.229458}, {0.280177,-0.106195}, {-0.066028,1.050147}, {0.446572,0.653688}, {1.619855,1.546549}, {-0.200833,-0.507327}, {1.815705,1.725080}, {0.491063,-0.912080}, {-0.302422,-0.518018}, {-1.497067,-0.317440}, {0.268533,-2.004116}, {-0.197770,-0.600212}, {0.599980,0.496906}, {-0.801705,-0.434370}, {-0.209023,-0.416797}, {0.089678,0.179194}, {0.720592,-0.140217}, {0.937690,0.785413}, {0.390751,0.123322}, {0.407110,-0.263791}, {-0.635582,0.585058}, {1.028085,0.038369}, {0.650746,-0.320141}, {0.273652,-0.045191}, {-0.773139,-0.851372}, {0.357316,0.497209}, {0.140061,0.278817}, {-0.416838,-1.327050}, {1.445687,-0.014796}, {0.457813,0.799090}, {-0.556724,0.854916}, {-0.641068,-0.733796}, {-0.186028,0.209995}, {0.018928,-0.915909}, {-0.352721,0.748722}, {-0.917271,0.414704}, {-1.388564,0.625074}, {-0.601451,1.435210}, {-0.090926,-0.755952}, {-0.293108,-1.116392}, {0.041463,-0.942099}, {0.666369,-0.398063}, {0.076754,-0.528375}, {0.698873,-1.134724}, {-0.392975,-1.312348}, {-0.526917,0.774984}, {-0.133714,-0.398997}, {-0.990661,-0.808244}, {0.208158,0.174976}, {-0.042402,0.479397}, {0.972845,-1.260660}, {-0.360790,2.380324}, {-1.161445,-0.617964}, {-1.369325,0.963665}, {0.712060,0.409267}, {0.061189,1.091821}, {0.108450,0.248626}, {-0.532186,0.684632}, {0.049827,0.344103}, {-0.730446,-0.644051}, {0.644672,0.108521}, {-0.311770,0.388340}, {0.133496,0.663978}, {-1.068918,-0.856697}, {-0.186471,-2.407906}, {0.497449,0.217132}, {0.553690,0.561973}, {-0.222306,0.573912}, {0.294889,-0.153714}, {-0.467937,-0.114124}, {0.505513,0.947824}, {0.835613,1.387442}, {0.099424,-0.647555}, {-1.266308,0.746230}, {-0.314232,-0.506824}, {-0.017508,1.148471}, {-0.005104,0.544153}, {1.347437,0.169568}, {0.736192,-2.120244}, {0.478583,-0.538318}, {-0.845261,-0.241234}, {0.711244,0.248858}, {-0.960539,0.885631}, {0.519557,0.157119}, {0.400078,-0.558660}, {-0.355913,-0.726436}, {0.620301,0.283481}, {0.437469,0.894420}, {-0.246065,-0.441159}, {-0.207652,0.260112}, {0.235413,1.202266}, {-0.147333,0.651418}, {-0.885893,-0.987513}, {-0.126637,-0.161050}, {0.198054,-0.239859}, {0.753221,-0.122113}, {0.852570,0.312679}, {-1.421536,0.339068}, {-0.608847,0.082841}, {0.806647,-0.618066}, {-0.055481,0.361346}, {0.524385,1.872652}, {-0.288788,-0.146810}, {-0.967147,-0.853194}, {1.966405,-0.833411}, {0.789003,-0.347270}, {0.015620,-0.631887}, {-0.150879,0.915769}, {-1.491238,0.217030}, {0.326333,1.498518}, {0.141223,-0.389036}, {-0.513646,0.793641}, {0.900859,0.209672}, {0.036641,-0.621067}, {-0.472702,0.503169}, {-0.229471,0.415297}, {-0.063377,-0.510807}, {1.772735,-0.165259}, {0.367308,0.204078}, {-0.811216,-0.742540}, {-0.346736,-1.336241}, {-0.390538,-0.215693}, {0.273645,0.017357}, {-0.411219,-0.583215}, {0.179285,0.386901}, {-0.714087,-0.705568}, {0.354034,-0.029101}, {-0.124648,-1.203258}, {1.036534,-0.216642}, {-0.079461,-0.167129}, {-0.519538,0.969040}, {-0.926647,-0.543191}, {-0.311806,0.129944}, {0.338452,0.046144}, {0.443791,1.037348}, {0.366235,0.139119}, {-0.436045,-0.889787}, {-0.487186,-0.329841}, {0.501924,-0.296196}, {-0.155070,0.928638}, {-2.271375,-1.096587}, {-0.875416,0.031515}, {0.034895,1.136367}, {1.259196,0.151467}, {-0.252917,0.546385}, {0.146755,0.215855}, {-1.279319,1.584790}, {-0.218261,-0.211344}, {0.838865,-0.281694}, {0.072992,0.018618}, {-1.486640,-1.384387}, {0.673440,0.783368}, {0.039087,0.485902}, {0.548339,-0.131470}, {-0.662826,2.232434}, {-0.724622,-0.767747}, {-0.737761,-0.048276}, {0.858736,0.000247}, {-0.219835,-1.241124}, {0.396621,-0.086901}, {-1.437003,0.502828}, {-1.537267,0.734791}, {0.247638,-1.034931}, {-0.879638,0.130748}, {0.532153,0.697673}, {0.869286,1.340851}, {0.477714,-0.332712}, {-0.081229,0.614635}, {-0.409415,-0.046581}, {0.677428,-1.891076}, {-0.988289,0.508962}, {0.887530,-0.096640}, {-1.348466,0.384365}, {-1.031462,-0.619078}, {-0.457756,1.980067}, {-1.307319,-0.821311}, {-0.428687,-1.927863}, {0.126831,0.314297}, {0.552891,0.191885}, {1.303032,-1.178928}, {-0.456697,0.537127}, {-0.138564,0.139533}, {-0.864216,-0.683295}, {0.036298,-1.122012}, {0.480571,-0.713238}, {0.192623,-0.245657}, {1.311303,-0.200987}, {0.399964,-0.611107}, {0.442759,1.073488}, {-0.696011,-1.128391}, {0.170959,-0.286343}, {1.066110,-0.985228}, {-0.541647,0.438916}, {-0.441049,1.398625}, {0.351268,-0.444252}, {-0.100225,-0.353511}, {-0.544437,0.471382}, {0.719671,0.361168}, {0.651644,0.499506}, {0.854268,-0.138822}, {-0.292998,-1.397932}, {0.351302,0.565472}, {-0.249761,-0.289783}, {0.579986,1.135063}, {0.380274,0.431460}, {0.142501,-0.768253}, {1.174364,-1.250559}, {0.124183,-0.664356}, {-1.775768,-0.426318}, {-0.410384,1.397669}, {-0.001185,0.082445}, {0.683819,0.016434}, {-0.474231,-1.274486}, {-0.227899,-0.715442}, {0.190972,-1.037010}, {0.515506,1.060213}, {0.574070,-0.057852}, {0.794263,0.456543}, {0.941117,0.348461}, {0.714095,0.442504}, {-1.016134,-0.621262}, {1.501944,-0.164696}, {0.859384,0.325223}, {0.605958,-0.405522}, {0.907773,-0.133478}, {-0.652518,0.324279}, {-0.223686,1.532219}, {0.361665,0.114357}, {0.118379,-1.485257}, {0.306623,-1.663751}, {-0.611527,0.305831}, {-0.371509,0.148804}, {-0.317648,0.168418}, {-0.579078,-0.164959}, {0.064958,1.214070}, {-1.513764,-0.019390}, {0.016424,2.001058}, {-0.457485,-0.024951}, {-0.847341,0.548593}, {-0.839426,0.760265}, {-0.698344,1.016456}, {-0.246799,0.331351}, {0.869786,-0.376963}, {-0.318179,0.256495}, {0.392127,-1.203653}, {-0.120425,-0.077075}, {1.005891,-0.597390}, {0.055568,-0.619495}, {0.760399,0.047681}, {0.293058,0.480236}, {0.295600,1.063913}, {0.595203,0.121404}, {0.681366,-0.184135}, {1.298989,-0.786985}, {-0.354303,0.275603}, {0.255593,-0.140121}, {1.054477,0.948719}, {-0.798213,0.913454}, {-0.582777,0.673212}, {-1.973554,1.089905}, {0.606828,-0.566130}, {-0.539355,-1.199468}, {0.086100,0.764955}, {0.792542,-1.548656}, {-0.533920,0.802166}, {0.132591,-0.662338}, {-0.061156,0.482952}, {-0.104437,-0.056214}, {-2.042381,0.317327}, {-0.706828,0.899494}, {-0.098682,0.865073}, {0.231769,-0.480548}, {-0.723515,-0.797806}, {-0.333745,-0.255096}, {1.425486,0.616569}, {-0.223026,-0.286492}, {0.945380,-0.819845}, {-0.836305,0.433398}, {0.888634,-0.227558}, {-0.302648,-0.403994}, {-0.266759,0.341454}, {-0.911044,0.207652}, {0.257598,0.267578}, {-0.376137,-0.484206}, {-0.106228,1.155262}, {-0.547100,-1.021943}, {-0.252786,0.099260}, {0.089525,-0.008952}, {-0.445924,0.184429}, {0.141610,-0.548673}, {-0.639422,-1.083761}, {0.498910,0.621386}, {0.093824,-0.107770}, {-0.245646,0.217584}, {-0.612243,-0.523719}, {0.457347,0.364012}, {-0.411336,-0.629464}, {-0.092268,0.204563}, {0.920493,-0.578667}, {-0.869454,-0.238633}, {-0.751389,0.777007}, {0.580578,0.705056}, {-1.233334,-1.695404}, {-0.121305,0.368160}, {0.782543,0.610795}, {0.553925,1.300069}, {1.374260,0.609157}, {-1.357033,0.843414}, {0.098626,-0.521365}, {-0.032515,0.264753}, {0.062218,0.085845}, {0.138012,-1.084788}, {-0.187827,1.380862}, {0.263689,1.028871}, {-1.215770,-0.552066}, {-0.971891,-0.672402}, {-0.256976,0.648996}, {0.007809,-0.724976}, {-1.053466,-0.103232}, {0.957392,-1.526623}, {0.387851,1.252142}, {0.298416,-0.686813}, {-0.249408,-0.417895}, {-0.524619,-0.646987}, {-0.101608,0.062621}, {0.111389,-0.960781}, {1.101285,0.205008}, {-0.120747,-0.663793}, {-0.602035,0.176470}, {1.221108,0.961762}, {0.159797,-0.161413}, {-0.233941,0.806754}, {1.256036,0.863057}, {0.259618,0.549863}, {0.320844,0.899846}, {1.030547,-0.232090}, {-0.517929,-0.918284}, {0.680314,0.060717}, {-0.505026,-1.527791}, {0.162336,0.314724}, {0.234991,-0.216314}, {1.375132,0.094076}, {-0.125705,-0.044844}, {0.657598,0.128665}, {0.281292,0.370853}, {0.027894,-0.981212}, {-0.732655,0.132501}, {-0.338577,0.250010}, {-1.883558,0.143130}, {-1.095169,-0.539749}, {0.166138,0.224390}, {-1.094189,-0.104317}, {-0.997375,-0.598321}, {-0.535645,-0.686231}, {1.289569,-0.268987}, {0.998965,0.994487}, {-0.349591,0.714244}, {-0.457773,-1.093644}, {-1.171475,1.478846}, {0.523449,0.576947}, {-0.610201,0.802389}, {1.367942,-0.063770}, {-1.189872,0.914725}, {0.408213,0.132025}, {-0.856124,-1.135856}, {-0.347681,-0.706150}, {0.226903,0.619634}, {0.548890,0.651093}, {-1.798606,-0.216122}, {-0.220157,-0.282742}, {0.108822,-0.485596}, {-0.238309,-0.347750}, {-0.476180,0.392785}, {0.428713,-0.175999}, {0.416074,-0.089752}, {1.268016,-1.407373}, {-0.322409,0.315716}, {-0.086932,-0.954776}, {-1.178527,1.119818}, {0.873189,-0.405550}, {-0.286794,-0.449645}, {0.741120,-0.039714}, {-0.401502,0.784565}, {1.378832,0.131114}, {-0.510286,-0.774428}, {-0.241374,0.226729}, {-0.413898,-0.710203}, {-0.617347,-0.040064}, {1.452338,-1.110283}, {0.018838,-0.592385}, {0.339572,-0.084802}, {0.262142,1.120113}, {0.382072,0.167998}, {-0.273583,1.253093}, {-0.509580,-0.586627}, {-1.016938,0.501199}, {0.530467,0.149760}, {0.204492,0.038013}, {0.074458,-0.292217}, {0.257628,0.451130}, {0.557490,-0.411723}, {-0.181796,-0.641207}, {-0.392248,-0.582808}, {0.705525,-0.502120}, {-1.021501,-0.207399}, {-0.060821,0.298599}, {-0.261969,-0.318225}, {-0.350443,1.831054}, {0.029182,0.719110}, {-1.269295,-1.154099}, {-1.488271,-1.469956}, {0.176535,1.097410}, {-1.195927,0.342358}, {0.582184,0.396307}, {-0.764560,-0.634440}, {0.106084,-0.378503}, {0.760363,0.649530}, {-0.020356,-0.601389}, {-0.423594,-0.651490}, {0.600149,-0.395775}, {0.421193,0.051504}, {-1.364237,0.717686}, {0.876530,-0.288772}, {-0.098973,0.266692}, {0.051789,0.462817}, {0.361495,-0.346842}, {-0.553109,0.940488}, {-0.653951,0.277526}, {0.163045,-0.244626}, {-0.126776,-0.299731}, {0.860475,0.302389}, {0.606731,-0.425179}, {0.305458,0.780583}, {1.028347,-1.635167}, {0.197608,1.209333}, {0.150105,-0.773508}, {-0.560487,-1.383294}, {-0.657034,0.108016}, {-0.629934,-0.335711}, {-0.404889,0.112022}, {0.350071,-0.125444}, {-0.397430,-0.533393}, {1.157015,-0.673598}, {0.836126,-0.091404}, {0.420003,0.030830}, {0.304754,0.940964}, {0.857632,-0.131707}, {1.482902,-0.526416}, {-0.506755,0.581483}, {0.798173,-0.622550}, {0.199645,0.054187}, {-1.166797,-0.592686}, {0.703425,-0.099088}, {0.100574,-0.652021}, {-0.452634,0.557510}, {-0.395655,0.631259}, {0.005128,-0.031089}, {-0.476422,0.288975}, {-0.696440,1.007601}, {0.651351,0.229279}, {-0.546184,0.967790}, {-1.783408,0.458041}, {-0.158492,0.721176}, {-0.829438,-0.495769}, {0.853862,-0.436152}, {-0.510630,0.354021}, {0.410283,-0.562993}, {1.333456,0.619765}, {0.680707,0.364967}, {0.768117,0.202325}, {-0.624035,0.194222}, {-0.242982,-0.068768}, {-0.060626,0.243812}, {0.918857,0.010191}, {-0.158575,-0.660882}, {0.268070,-1.046163}, {-0.550812,-0.916602}, {0.222526,-1.326576}, {-0.142632,1.771943}, {-0.500111,0.366333}, {0.045897,-0.931826}, {0.061037,-0.398634}, {-1.206603,1.049450}, {-0.346603,0.009748}, {-0.194651,-0.420179}, {-0.172385,1.200766}, {-0.276451,-1.221394}, {-0.971227,0.736046}, {0.849993,-0.122658}, {0.565771,1.029030}, {0.572575,-0.539519}, {-0.278977,0.982730}, {-0.406039,-0.534002}, {-0.022104,-0.217645}, {0.393789,-0.655764}, {-0.821859,0.222043}, {0.709829,-0.538537}, {0.309091,1.335973}, {0.555716,0.225149}, {1.155433,-0.264109}, {-0.224191,-0.004592}, {-0.076549,0.928899}, {0.141337,-0.500391}, {-0.286491,0.403995}, {0.340087,1.192301}, {-0.264734,0.101794}, {0.873252,-1.455120}, {-0.574337,0.221889}, {-1.110424,0.703227}, {0.420803,0.333899}, {0.277080,-0.644572}, {-0.747538,0.159962}, {0.552815,1.068068}, {1.368512,0.010990}, {-0.206001,-0.237472}, {0.288503,-0.659436}, {-0.954056,0.215502}, {1.548500,-0.238286}, {-0.889812,0.522877}, {-0.012439,-0.723786}, {-0.525273,-0.379121}, {-0.527515,-1.502476}, {0.133542,0.108887}, {0.492447,-0.045511}, {0.574807,-1.260810}, {0.878001,0.683264}, {-0.376682,-0.588180}, {0.164608,0.358034}, {0.459547,0.386397}, {-1.374767,0.442204}, {-0.699591,-0.427016}, {-0.228447,-1.161662}, {-0.322419,1.606881}, {0.576055,1.101472}, {0.563123,0.146375}, {0.244216,-0.241690}, {0.438112,-0.485327}, {-1.276929,0.367200}, {-0.181353,-1.346356}, {-0.146869,-0.957341}, {-2.198517,0.705247}, {-0.289717,-0.177364}, {0.280325,-1.142208}, {0.002380,0.345383}, {-0.418233,-1.133385}, {0.183564,0.534520}, {-0.372636,-0.051311}, {-0.020811,-0.085884}, {1.163894,-0.173220}, {0.616165,0.230038}, {-1.320575,-0.652613}, {0.123778,-0.062176}, {-0.722536,-0.008719}, {1.340873,0.027244}, {-0.294827,-0.522338}, {-0.602427,0.183616}, {-0.785766,-0.953680}, {-0.286187,0.348720}, {-0.280901,0.554931}, {0.380116,0.763759}, {0.780404,0.192032}, {1.328343,1.436113}, {-0.362877,0.085413}, {1.403308,-0.413647}, {0.773876,-0.086423}, {-1.316530,-0.726207}, {-0.379298,-0.390658}, {-0.150301,0.006436}, {0.370812,-0.684290}, {-0.905463,-0.548246}, {-0.072613,0.421906}, {-0.211486,0.321136}, {-0.247273,0.076461}, {-1.160356,0.131643}, {0.379819,-0.441965}, {1.064987,0.033534}, {-0.575692,-0.336300}, {-0.131156,0.299834}, {-0.907355,-0.562159}, {-0.142894,-0.067061}, {-0.305338,0.059685}, {-0.890171,-0.918641}, {-0.333344,0.104434}, {0.450288,0.236190}, {0.180918,-0.376193}, {-0.816878,0.145535}, {-0.789538,-1.143910}, {-0.022631,0.224265}, {-0.080696,0.591185}, {-0.511739,0.521540}, {1.522040,-1.191704}, {-0.120255,0.225194}, {-0.124457,0.484338}, {-0.332395,0.668069}, {1.358569,0.343165}, {-0.907961,0.303291}, {-0.726165,0.958101}, {-0.631030,-0.969657}, {0.187222,-0.841928}, {-1.702365,-0.218011}, {0.042628,-1.318380}, {0.356098,0.394505}, {-0.321503,-0.176962}, {-1.508798,0.471924}, {0.284711,-0.884522}, {-0.279981,1.075346}, {0.261212,0.062374}, {0.730161,-0.028577}, {1.413322,-0.696512}, {-0.537404,-0.498826}, {0.470840,-0.050515}, {1.075743,1.816796}, {0.238969,0.728689}, {0.021923,-0.203939}, {0.068466,0.691633}, {-0.463844,0.382524}, {0.536354,1.367231}, {-0.269568,0.317660}, {-0.509721,-0.056128}, {-0.996035,0.482343}, {-0.318504,0.613621}, {0.724407,-0.391671}, {-0.976483,0.002770}, {0.168754,-0.138651}, {-0.850412,0.004662}, {-0.778271,0.301141}, {-0.556300,-0.014048}, {-0.144566,0.581755}, {1.567425,-1.299013}, {-0.633055,-1.176258}, {-1.218887,1.088643}, {-0.057700,0.210952}, {-0.252005,-0.056308}, {-0.164041,1.200916}, {0.881096,-0.523409}, {1.271002,0.348902}, {0.300212,0.080781}, {-1.259126,-0.385348}, {0.380261,-0.005380}, {0.301990,-0.096667}, {-0.644417,0.661865}, {0.031295,-0.414362}, {0.513909,-0.849192}, {1.037724,0.167813}, {0.045507,0.302800}, {-1.007752,-0.631584}, {-1.626240,0.520166}, {0.161739,-0.005463}, {-1.011094,-0.296322}, {0.530863,-0.353709}, {0.919905,-1.215387}, {-0.399307,0.348172}, {0.124302,-0.831545}, {-1.101106,0.209511}, {0.423896,0.392179}, {-0.194011,-0.630735}, {-0.500591,0.215709}, {0.031183,0.910928}, {0.038389,-0.311259}, {-0.355431,-1.334079}, {0.530912,-0.294080}, {-0.716034,-1.092596}, {0.581166,0.307768}, {0.499546,-1.691484}, {-0.109812,-0.243400}, {0.044216,0.158567}, {-1.588308,-0.037482}, {0.222448,-1.635453}, {-0.184406,-0.084681}, {1.961808,0.936940}, {0.545590,0.745191}, {0.655076,0.761226}, {0.928499,-0.528748}, {0.311753,0.419596}, {1.127516,0.514393}, {-1.142233,-1.018180}, {-0.751043,0.873569}, {-0.003552,-0.256010}, {-0.055468,-0.040296}, {-0.461006,0.063426}, {0.114477,1.054606}, {0.646237,-0.738074}, {0.047691,0.563215}, {0.182860,-0.736483}, {1.006184,-0.743762}, {0.208249,1.194100}, {-0.936638,-0.678655}, {1.379611,-1.003314}, {-0.214213,0.683884}, {-0.412822,0.050631}, {0.206172,-0.486222}, {-0.262572,0.662397}, {0.484827,0.903902}, {1.340717,0.828282}, {0.376723,-0.394673}, {0.947224,0.377674}, {-1.479304,-0.488522}, {-0.346264,-1.112863}, {0.079983,-0.757019}, {-0.589024,-0.865351}, {0.154858,0.742523}, {-0.185417,-1.110911}, {0.054021,0.213561}, {0.049129,0.159524}, {0.250903,1.427318}, {-1.002452,-1.002884}, {-0.706890,0.148861}, {-1.154288,-0.107721}, {-0.817221,0.436977}, {-0.157997,-0.870204}, {1.385451,-1.059729}, {-0.802317,0.030557}, {0.536617,-0.377124}, {-0.267416,1.257724}, {0.271600,-0.064099}, {-0.293484,0.280734}, {-0.139114,-0.129475}, {0.480314,-0.765081}, {0.342935,-0.322883}, {0.036162,-0.632071}, {0.182499,0.303409}, {0.388280,-0.850579}, {-0.118716,0.915001}, {-0.755100,-0.436041}, {-0.860414,0.326513}, {-0.078845,0.146499}, {-0.454604,0.719797}, {-2.241604,0.049962}, {-1.192389,1.327719}, {0.375567,1.037999}, {0.689446,-0.703830}, {0.302199,-0.655993}, {-0.087239,0.488734}, {0.211377,0.892874}, {-1.046074,-0.479046}, {-1.018003,0.367627}, {-0.152274,1.650427}, {-0.779947,1.239985}, {0.952925,0.318968}, {0.643531,0.231822}, {-0.469200,-0.137811}, {0.818526,-0.988439}, {0.143608,-0.391619}, {-0.078638,-0.494635}, {-0.706101,-0.278646}, {-0.828922,0.806409}, {-0.198227,0.585023}, {-0.181743,-0.538596}, {0.696894,0.324933}, {-1.035302,-0.067149}, {1.116654,-0.636352}, {-1.447442,-0.383901}, {-0.842335,0.808594}, {-0.059386,-1.333912}, {0.039588,-0.568428}, {1.841497,0.186063}, {-0.222182,0.546696}, {-0.492511,0.065429}, {-0.049596,0.521704}, {0.950219,0.001244}, {0.239031,0.821970}, {-0.148545,-0.111477}, {-0.799855,0.719260}, {-0.198976,-0.598787}, {1.057029,-0.080555}, {-0.042454,0.198415}, {-0.396442,0.128443}, {0.356674,0.917567}, {0.629624,-0.252468}, {0.494230,0.346046}, {-0.203429,0.238311}, {-1.254628,-0.489511}, {-0.885587,1.273245}, {0.130810,-0.161627}, {0.060963,-0.761843}, {-0.216955,-1.087269}, {0.365978,0.094954}, {0.912409,0.200455}, {-1.054822,-0.278074}, {0.608031,0.908329}, {0.311314,-0.062994}, {-1.084923,-0.437044}, {0.483123,0.692619}, {0.487429,0.109963}, {-0.553350,0.131579}, {-0.992250,0.280366}, {-0.884746,0.002868}, {-0.029371,1.412446}, {0.678184,0.364567}, {-0.139078,-0.387712}, {-0.347524,1.175467}, {-1.183990,-0.650822}, {1.246393,-1.035660}, {-0.296366,0.060319}, {-1.583348,0.761657}, {-0.150878,0.717756}, {-0.539900,0.032499}, {0.538042,-0.765398}, {0.608876,-0.599854}, {0.351878,-0.018209}, {-0.963879,0.867025}, {-0.746801,0.240322}, {-0.264184,-0.061670}, {0.684332,0.011746}, {1.440898,-0.176096}, {0.229892,-1.161869}, {0.056788,-0.657892}, {-0.700251,-0.949597}, {-0.678207,-1.371336}, {0.610739,0.719252}, {-1.817905,-0.601268}, {0.031990,0.180419}, {0.060516,0.204577}, {-0.679842,1.491688}, {0.905999,-1.561989}, {-0.013397,-0.658106}, {0.646469,-0.124247}, {0.231365,-0.066460}, {0.072911,1.358672}, {0.523387,0.767592}, {-0.255464,-0.837687}, {-0.347596,0.065474}, {-0.118698,0.282555}, {0.227003,-0.532110}, {-0.105316,1.261845}, {-1.287464,0.009365}, {0.164639,0.004452}, {0.487845,-0.036515}, {0.237642,-0.113136}, {0.280221,-0.370952}, {-0.693740,-0.547488}, {-0.026475,-1.513071}, {0.562730,-0.294865}, {-0.407170,-0.821101}, {-0.007381,-0.255046}, {-0.882883,0.044493}, {0.458046,-0.236675}, {-0.280611,0.402649}, {0.655407,0.081470}, {-0.583163,0.689875}, {-0.126923,-0.141713}, {0.568498,-0.192502}, {0.207786,-0.707445}, {0.181237,-0.315024}, {0.452277,-0.237819}, {0.804749,0.161488}, {-0.668502,-0.165804}, {-0.995984,-0.756193}, {-1.477199,0.138328}, {0.224779,0.153369}, {0.714115,-0.105414}, {0.755752,-1.157271}, {-0.624159,0.288454}, {0.410050,-0.940682}, {-0.735226,0.333144}, {-0.319454,-0.151368}, {-0.534119,0.581015}, {-1.021982,0.025073}, {0.364749,-0.324409}, {-0.809700,-0.013999}, {-0.631631,-1.111146}, {0.041314,-0.401087}, {0.694871,0.735264}, {-0.367532,-1.564337}, {-0.580821,-0.330655}, {0.183537,0.598051}, {-0.245114,-0.399095}, {0.431852,-0.491440}, {-1.538842,0.741551}, {0.355387,-0.411799}, {0.047607,-1.484812}, {-0.406563,-0.099734}, {-0.476070,-0.974793}, {0.424268,-0.049799}, {-0.463479,0.342533}, {-0.021704,-0.441977}, {0.274849,0.092550}, {0.062134,0.876438}, {0.724167,-0.072370}, {-0.878909,0.087750}, {0.496256,-0.162627}, {0.279006,0.247471}, {1.112257,-0.008240}, {-0.542958,1.121075}, {0.883658,-1.033522}, {0.665774,1.218471}, {-0.485500,0.566506}, {0.101171,-0.467048}, {0.428733,0.037372}, {0.070215,0.356568}, {-0.115995,0.469828}, {-0.288060,0.751706}, {-0.893341,-0.479910}, {0.129788,-0.712225}, {0.607605,-0.659464}, {-0.928870,0.184671}, {1.532564,0.622921}, {-0.259213,0.773723}, {-0.613180,1.165169}, {-0.246855,0.477170}, {-0.763396,0.185209}, {0.176437,-0.026025}, {0.238849,0.442184}, {-0.352254,-0.531682}, {0.807799,-0.627800}, {0.047221,0.691612}, {-1.063426,-0.086542}, {0.127711,-0.873769}, {-0.266249,-0.401636}, {-0.792988,0.561747}, {1.359199,0.175116}, {0.055027,0.221748}, {-0.811887,0.783136}, {-0.242847,1.170197}, {0.603982,-0.386618}, {-0.066028,-0.887924}, {0.195072,-0.461362}, {-0.124588,-1.349309}, {-0.923671,0.021243}, {0.672608,0.390882}, {-0.157503,0.476204}, {0.395069,1.581050}, {0.546212,0.493126}, {-0.275470,-0.171620}, {0.279435,0.010272}, {0.398665,-0.060216}, {-0.540549,-0.545716}, {-0.203679,0.332363}, {-0.496097,-0.577372}, {0.580802,0.437667}, {1.112826,-0.947356}, {-0.740122,-1.666636}, {0.794783,-1.131704}, {-0.942124,-0.854277}, {-0.673412,0.214855}, {-0.147656,0.291988}, {-0.104863,0.388239}, {0.076779,0.606955}, {0.200388,0.524721}, {-0.320980,0.897459}, {0.075462,0.168864}, {1.058383,-0.217411}, {-0.257135,-0.135694}, {-0.967934,-0.164808}, {-0.923465,1.535662}, {-0.342228,0.493143}, {0.950437,0.330328}, {1.159788,0.029407}, {0.519360,-0.289634}, {-0.387919,0.756822}, {0.110258,-0.324655}, {-0.834385,0.057787}, {0.385197,0.770062}, {-0.865068,-0.695108}, {-0.163616,0.499126}, {-0.260925,0.174936}, {0.269825,-0.563868}, {0.085977,0.711242}, {-0.154136,-0.310298}, {0.667896,0.312458}, {0.455000,0.511352}, {-0.119230,0.565919}, {0.448509,-0.266193}, {-0.076594,0.711581}, {0.487758,-0.084284}, {-0.134384,0.512608}, {-0.073188,-1.588799}, {0.263813,-1.537716}, {-0.318161,0.668523}, {0.716481,1.034983}, {0.100407,0.603227}, {1.278314,0.725134}, {-1.102419,-0.668425}, {-1.533689,-0.122580}, {-0.015321,-0.363228}, {-0.354993,-0.049059}, {0.234433,-0.176360}, {1.531154,1.445120}, {0.196174,-0.704589}, {0.939701,0.188199}, {-0.883210,-0.154533}, {0.533736,1.018771}, {1.025444,-0.745913}, {-0.224936,0.074982}, {-0.445386,-0.861890}, {0.037407,-0.227981}, {-0.186347,-1.290577}, {-0.309371,0.403374}, {-0.532396,0.613887}, {2.165530,1.358975}, {2.007988,-0.415721}, {1.170118,1.184736}, {0.147671,0.285319}, {0.189048,-1.372490}, {0.572345,-0.160934}, {-0.968055,0.078689}, {-0.838057,0.005487}, {0.002971,0.754035}, {0.963936,-1.052451}, {1.384693,-0.238220}, {0.730919,-0.253514}, {-0.055962,-1.239576}, {-0.971576,0.081729}, {1.592811,0.554873}, {0.891373,-1.465274}, {-0.436801,0.681487}, {0.781594,-0.567997}, {-0.734441,-0.356614}, {-0.417233,0.307766}, {-0.342015,-0.643618}, {-0.292766,-0.377798}, {0.524786,0.511648}, {-0.581227,1.232650}, {-0.014453,0.621820}, {0.249726,0.375897}, {0.606730,-0.436103}, {0.470665,1.092492}, {0.049061,0.242758}, {0.356517,0.602295}, {-0.136680,-0.171375}, {0.138788,0.924838}, {1.014005,-0.233081}, {-1.201889,0.445990}, {1.026871,-0.586108}, {0.489435,1.106440}, {-0.647070,0.966539}, {0.412053,0.403891}, {1.508765,0.651857}, {0.967302,0.360629}, {0.643439,0.542859}, {0.009643,0.167438}, {-0.043095,-0.479629}, {-0.427617,-0.891696}, {0.262743,0.496652}, {0.399848,0.055136}, {0.389352,-0.140837}, {-0.874961,-0.286650}, {-1.148781,0.964809}, {-0.075158,-1.058411}, {-1.356972,0.477178}, {-0.583056,0.785091}, {0.180521,0.643195}, {-0.341790,0.582116}, {0.617637,-0.386019}, {0.287523,-0.641069}, {0.445544,-1.046088}, {0.056885,0.909019}, {0.237974,-0.577966}, {0.265120,0.170968}, {0.831315,0.261175}, {-0.053478,0.750541}, {-0.910915,0.305149}, {0.740491,0.199702}, {-0.644430,0.804073}, {-0.032674,0.043810}, {0.506929,0.722204}, {-1.458642,-0.012285}, {1.125423,-0.870600}, {-0.413975,-1.013859}, {0.263494,-0.250882}, {-0.509992,0.642512}, {0.309917,0.102069}, {0.432682,-0.594946}, {0.389074,-0.347972}, {0.363322,0.447382}, {0.409466,0.684147}, {-0.383569,1.103528}, {0.400605,1.027698}, {-0.244181,-1.174979}, {-0.138094,-0.035489}, {-0.732504,-1.119719}, {0.401623,-0.226204}, {-0.009444,-0.493273}, {-0.623539,0.052497}, {-0.082322,0.624134}, {-0.241276,0.692779}, {-0.855399,-0.954111}, {-0.102812,0.455049}, {-0.163148,-0.813131}, {0.632547,-0.140929}, {0.494530,-0.185368}, {-0.193079,-0.723176}, {0.337338,-0.445788}, {0.401790,0.559695}, {0.230591,-0.192288}, {-0.300693,-0.121974}, {1.384646,-0.585677}, {0.325791,-0.040454}, {-0.012575,0.226125}, {-1.008117,-1.345584}, {-0.253066,-0.722583}, {0.510556,-1.634320}, {-0.620574,0.638105}, {0.744498,-0.848184}, {-0.604678,0.294828}, {0.576435,-0.241527}, {-0.209046,1.633283}, {-0.037161,-0.383274}, {-0.522555,-0.336960}, {0.454551,0.473618}, {-0.155145,-0.383863}, {0.691671,0.364433}, {0.110858,-0.308247}, {0.291931,-0.200529}, {-0.257731,-0.294773}, {-0.297832,-0.078972}, {-1.000551,-0.056650}, {-0.728054,1.617977}, {0.683715,-0.328680}, {-0.000525,0.011541}, {0.620598,-0.661930}, {0.264711,-0.928142}, {0.228987,-0.335306}, {-0.244599,-0.068855}, {-0.836542,-0.817358}, {0.092673,0.460987}, {-1.129502,-0.114615}, {-0.632434,0.515582}, {0.031820,0.686984}, {0.770886,-0.492505}, {-0.596480,1.289307}, {-0.101952,-0.691478}, {-0.104274,-0.131200}, {-0.625558,-1.086399}, {0.877969,-0.772245}, {0.268059,-0.223637}, {-0.900697,1.204608}, {0.050722,0.907601}, {0.673273,0.381280}, {-2.047377,-0.460464}, {-0.180485,0.585813}, {0.917693,-0.593887}, {-0.800537,0.647290}, {-0.440595,0.183335}, {-0.713969,-0.073229}, {-0.774967,-0.149180}, {0.404131,0.588253}, {-0.461998,-0.696968}, {0.274178,-0.357117}, {0.206730,0.108627}, {-1.064527,-0.450529}, {0.868135,-0.511465}, {1.861500,-0.019361}, {-0.168042,0.157278}, {-0.306666,-0.372632}, {-0.358648,0.439013}, {-0.508541,0.110548}, {0.429907,0.318529}, {0.768140,0.536835}, {-0.468226,-0.061801}, {-0.479689,-0.447397}, {1.419374,-0.900772}, {1.265393,-0.725799}, {-1.446047,0.967326}, {-1.003305,-0.450572}, {-0.765069,-0.367291}, {0.058085,0.520892}, {0.507400,0.307971}, {-0.096135,0.082836}, {0.499087,-0.483651}, {0.786245,-0.896910}, {-0.776823,-0.917120}, {0.046113,-0.674221}, {0.437166,-0.946565}, {-0.481481,0.348660}, {-0.303571,-1.297511}, {0.184266,-0.433271}, {0.351287,0.490834}, {0.136868,0.207400}, {-0.928643,-0.705652}, {0.411477,-0.296834}, {-0.130098,0.423371}, {0.256138,0.201198}, {1.325804,-1.394897}, {-0.987536,0.911194}, {0.467954,0.721556}, {-1.111917,-0.388390}, {-0.225829,-0.194731}, {0.686892,0.002306}, {0.017090,-0.337756}, {0.320620,0.701407}, {-0.126604,-0.448189}, {-1.038320,0.350680}, {0.525033,-0.775856}, {1.423413,-0.907011}, {-0.654169,1.310124}, {-0.256723,-1.274182}, {-0.148799,1.158405}, {-1.309938,-0.423753}, {-0.822022,0.520373}, {-0.487639,-0.029609}, {-1.731135,1.225201}, {0.860007,0.817290}, {1.085528,-0.477385}, {0.170410,0.225994}, {0.130012,0.501964}, {1.362920,-1.040532}, {0.274595,-0.360680}, {-0.180443,-1.150807}, {-1.010892,-2.785690}, {-0.185408,0.645141}, {0.408186,0.598987}, {-0.276912,-0.233762}, {-0.554369,0.384061}, {-0.313129,-1.273413}, {-0.295076,-0.206805}, {-1.135422,0.314641}, {-0.091967,1.316718}, {-1.148036,0.420483}, {0.464056,0.070829}, {0.643956,-1.132460}, {0.007388,-0.087534}, {-0.670980,-0.644856}, {-0.562657,0.103308}, {-0.910544,-0.624181}, {-1.294871,-0.704342}, {0.253288,-1.249465}, {0.010697,-0.206204}, {0.032296,-0.068846}, {0.227298,0.289679}, {-1.018986,0.376146}, {0.196228,0.336658}, {0.324491,0.481509}, {1.401432,-1.385349}, {0.469776,-0.021242}, {-0.359218,0.077900}, {0.263855,-0.553276}, {-1.338136,1.760596}, {0.345680,-0.356526}, {0.967508,-0.348957}, {-0.000197,-0.317256}, {0.266182,0.209979}, {0.645966,-0.065156}, {0.095471,0.687960}, {-0.950904,0.472007}, {0.237504,1.029535}, {-1.188493,0.582823}, {0.037901,0.276498}, {1.500981,0.033858}, {0.470859,0.204791}, {-0.325697,-0.511828}, {-0.701164,-0.624759}, {-1.022831,0.029449}, {-0.617654,-0.209681}, {-1.086358,-0.753587}, {-0.620495,0.350436}, {0.255824,0.780289}, {0.259997,0.853987}, {0.178984,0.708660}, {0.206355,0.342937}, {-0.203803,0.123989}, {0.087570,-0.018768}, {-0.251778,0.402282}, {-0.067944,0.802752}, {0.814430,-1.075422}, {0.980073,0.924960}, {-0.643462,0.281085}, {-0.043385,0.222169}, {0.150379,-0.073680}, {-0.866595,-0.370094}, {0.070700,-0.031495}, {-0.718160,-0.057721}, {-1.453375,0.891355}, {0.289324,0.775060}, {0.181655,0.483275}, {-0.752997,-0.073676}, {-0.304538,-1.541777}, {-0.709192,0.581410}, {0.492839,-0.517246}, {0.183811,-0.156000}, {0.653373,0.230724}, {0.406458,0.005703}, {-0.311049,0.812297}, {-0.520574,0.204449}, {0.054290,-0.724717}, {0.094583,-0.073227}, {0.038531,1.556567}, {-0.384123,-0.654494}, {0.561946,-0.464299}, {-0.404523,-0.766166}, {-0.481575,0.460856}, {-1.907571,-0.823209}, {2.101905,0.161585}, {0.287454,-0.132443}, {1.242270,0.686925}, {-0.921165,-0.565261}, {0.611637,0.513699}, {0.049954,-1.129081}, {-0.501940,0.054891}, {1.429713,-0.551187}, {-0.836163,-0.446508}, {0.278495,0.087073}, {0.218168,-0.779450}, {-0.223319,-0.407988}, {0.634553,-0.616996}, {1.182395,0.959111}, {-0.978832,0.211972}, {0.424967,-0.249287}, {-0.041136,-0.865872}, {0.678616,0.138109}, {-0.183760,0.626009}, {0.774335,0.071065}, {-0.711756,0.994632}, {-1.071178,-0.459611}, {-0.483535,0.070145}, {-1.195615,0.843780}, {-0.466068,-0.769168}, {-0.277629,-1.090422}, {0.421671,-0.180614}, {0.412349,0.215483}, {0.770770,-1.211197}, {0.216869,-1.257316}, {1.131962,1.071910}, {0.604317,1.569760}, {-0.432696,-0.511691}, {1.490919,0.544307}, {0.722433,-0.223854}, {-0.747281,0.587934}, {0.591043,-0.389259}, {0.915617,0.907123}, {-0.090304,0.260222}, {-0.286085,0.181432}, {-1.366335,0.134996}, {1.006915,-0.256088}, {-0.742269,-0.287000}, {-0.560519,0.149843}, {0.228870,-0.089042}, {0.485062,1.555019}, {-2.098179,-1.037507}, {0.281221,0.160181}, {1.124136,0.576409}, {0.377565,0.179290}, {-0.774858,-0.594426}, {0.057609,0.773926}, {-0.352908,0.659389}, {-0.214422,-0.486733}, {1.185269,-0.773319}, {2.361595,0.580060}, {-0.480781,0.323322}, {-0.280537,0.592566}, {-0.518135,1.090907}, {0.038454,-0.673850}, {-0.396300,0.291648}, {0.431237,-0.742958}, {-0.354511,-0.258468}, {0.589504,-0.340787}, {0.350439,0.872189}, {0.434521,0.321774}, {-0.033107,0.105060}, {0.708078,-0.753049}, {0.529888,-0.271240}, {0.536421,-1.059462}, {-0.225809,-0.688310}, {1.434065,0.509015}, {-0.173576,0.479379}, {-1.128043,-1.200555}, {-0.400962,0.006900}, {-0.193926,0.797977}, {0.890121,-0.520395}, {0.483454,-0.759030}, {0.120016,0.881875}, {-0.600343,-0.651720}, {-1.451600,-1.029965}, {0.761142,0.319997}, {-0.112053,-1.155185}, {1.220439,1.751782}, {1.160185,0.688299}, {-0.512242,-0.051162}, {-0.706967,-0.136270}, {0.615304,1.293581}, {-1.400761,0.916505}, {1.187036,0.351908}, {0.080335,-1.965701}, {-1.630052,0.439980}, {-1.391160,0.129870}, {1.155798,0.582881}, {-0.065111,-1.099486}, {0.125533,-0.003002}, {-0.164680,0.102916}, {0.466728,0.343552}, {0.762902,0.475304}, {0.744999,-0.654491}, {-1.398257,0.311517}, {-0.237558,-0.246793}, {0.428761,0.156024}, {0.570756,0.535184}, {2.016382,-0.060246}, {-1.088301,0.681331}, {0.830869,-0.097576}, {0.388942,1.207765}, {-0.606217,-0.034154}, {-0.231597,-0.930088}, {-1.380885,-0.946200}, {1.243384,-0.076184}, {-0.876585,1.046718}, {0.966272,0.210433}, {-0.291174,0.271509}, {0.211819,0.974055}, {-0.463701,-0.565772}, {0.487341,-0.602470}, {-1.121183,-0.165544}, {-0.252906,0.474726}, {-0.402199,0.851284}, {0.080496,-0.760036}, {0.025413,-1.091766}, {0.547332,-0.330242}, {-0.672557,0.494495}, {0.954815,-0.310860}, {0.424952,0.387591}, {-0.206481,-1.215096}, {-0.565978,0.308471}, {-0.594998,0.287291}, {0.244841,-1.011218}, {-0.121897,-0.182509}, {0.436936,-0.388815}, {-0.237612,0.125997}, {0.469551,0.559430}, {-0.150812,0.430465}, {-0.309672,-0.159915}, {-0.041266,-0.484249}, {-0.498416,0.134495}, {-0.216836,-0.600673}, {0.753550,0.178144}, {-0.829567,0.580848}, {0.151586,0.985193}, {-0.030831,0.835093}, {-1.336242,-0.274785}, {0.877728,0.795873}, {-1.272274,-0.088021}, {0.329721,0.397562}, {0.284857,-0.480608}, {0.682917,0.080741}, {-0.101889,-0.248454}, {-0.682076,1.494906}, {0.629653,0.954928}, {-0.543290,1.090091}, {1.459454,0.219865}, {0.242040,-0.001250}, {1.335699,-0.279217}, {-0.929197,-0.177255}, {-1.073987,-0.628953}, {-0.603636,0.406831}, {-0.127502,-0.233138}, {-0.595331,-1.556322}, {-0.003979,-0.372901}, {-0.071019,0.395963}, {0.367574,-1.213747}, {-0.334848,-0.212891}, {0.545672,0.431015}, {-0.319922,-1.488089}, {1.622107,-0.160144}, {-0.443496,-0.342474}, {-0.182690,0.814460}, {0.294580,0.439232}, {-0.456404,-0.781690}, {-0.239482,0.065164}, {0.522642,0.114414}, {0.220545,0.027521}, {0.928442,-0.357315}, {-0.037976,0.045284}, {0.271085,-0.280372}, {1.126150,-0.692677}, {0.605778,-0.288038}, {-0.839818,0.853392}, {-0.017924,-0.218859}, {0.193144,0.838310}, {0.382364,-0.079117}, {-1.218131,-1.625995}, {0.587757,-0.067836}, {1.112485,-0.821042}, {-1.079681,1.113467}, {0.739449,0.903260}, {-0.337197,-0.539171}, {-0.715782,0.433698}, {-0.681131,-1.078419}, {-0.399622,-0.481035}, {0.985279,0.921888}, {-0.886267,-0.759144}, {0.477293,-0.151442}, {-0.382453,-0.131280}, {-0.996212,-0.422600}, {0.704734,0.607694}, {0.134826,0.350086}, {-0.256879,0.214261}, {-0.492210,-1.268288}, {0.269138,1.401154}, {-0.717996,0.256866}, {0.058280,-0.897792}, {0.335278,-0.190030}, {-0.247184,-0.605186}, {0.020146,0.328500}, {-1.189915,0.129145}, {0.215961,1.303383}, {0.478757,0.180930}, {-0.299342,-0.948503}, {-1.146943,0.060521}, {-0.868843,-1.063643}, {0.923269,-0.045103}, {-0.878523,1.072741}, {0.151682,-0.385870}, {1.248675,0.859689}, {0.583381,-0.622081}, {-0.427717,-0.653473}, {0.114755,1.122795}, {0.715533,-1.419478}, {-0.653173,-0.975489}, {0.388866,-0.494883}, {0.991641,-1.615541}, {1.623819,-0.756583}, {-0.477507,-0.049437}, {-0.921536,-0.203534}, {0.524950,-1.209924}, {0.015214,0.484588}, {-0.744276,-0.907266}, {-0.256785,0.726990}, {-0.989783,0.236785}, {-0.927026,0.190489}, {-1.224202,0.044595}, {0.695077,-0.066990}, {0.118911,0.317058}, {0.216068,0.148307}, {0.147362,0.344791}, {-0.335603,0.447019}, {-1.224890,-0.325840}, {0.002756,-0.321191}, {-0.160248,1.419446}, {1.272372,-0.411115}, {0.090553,-0.020891}, {-0.813158,0.552475}, {-1.298817,0.862553}, {-0.585694,1.251896}, {-0.013283,-0.413138}, {-0.297463,-0.903216}, {-0.255549,1.091331}, {-0.206760,0.800369}, {-0.390704,0.606333}, {0.513017,-1.429631}, {0.433862,2.005801}, {-0.383853,-0.598873}, {1.005859,0.614970}, {0.851717,0.475903}, {0.326298,0.574711}, {-0.558315,0.661107}, {0.524201,0.697230}, {0.354126,-1.373313}, {-0.935029,0.948730}, {-0.134743,0.135532}, {0.276808,1.185467}, {0.018978,0.217541}, {-0.112404,1.728553}, {-1.302444,0.146517}, {0.311354,-0.511768}, {-0.162418,1.170043}, {1.221405,-0.185509}, {0.187501,-0.388756}, {-0.992425,0.895706}, {0.010906,-0.436499}, {-1.151269,-0.978387}, {0.331651,2.365055}, {-0.261792,-0.105662}, {-0.015082,-1.027851}, {-0.566662,-0.066912}, {0.333652,0.030599}, {-0.580868,1.197625}, {-0.698983,-0.072313}, {-0.336455,0.586318}, {-0.460653,-1.130129}, {1.129557,-0.342097}, {0.675431,-0.111390}, {0.656948,-1.198251}, {0.124118,0.471617}, {0.873740,-0.661021}, {0.883188,-0.120431}, {-0.231922,0.823063}, {-0.037173,0.803393}, {0.249852,-0.697130}, {-0.608230,0.681932}, {-0.243067,-0.598592}, {1.280129,0.144530}, {0.335054,-0.507225}, {-0.148178,0.471538}, {-1.320556,0.648198}, {0.793534,0.184092}, {0.175364,0.260736}, {-0.345658,-1.638374}, {-0.954853,0.361345}, {-0.439794,-0.209984}, {-0.580261,-0.437008}, {-0.042380,-1.008410}, {-0.256240,0.240739}, {0.997668,0.041341}, {0.084286,1.337007}, {-0.089726,0.349824}, {-0.351226,-0.439389}, {0.789935,-0.231385}, {0.559332,0.372916}, {0.431332,-0.309163}, {0.438769,0.729816}, {-0.709308,-0.453381}, {-0.806887,0.031475}, {-0.109243,0.296421}, {1.053895,-0.808360}, {1.310377,-0.018203}, {-0.088228,0.464224}, {0.404860,1.091152}, {0.980650,-0.822832}, {-0.182331,0.154915}, {-0.416259,0.293648}, {-1.202575,0.608544}, {-0.939778,0.311341}, {0.362085,-0.732201}, {0.318978,-0.637671}, {-0.485214,0.461226}, {-0.302925,-0.728450}, {0.411979,-0.138660}, {-0.429297,-0.510534}, {-1.260831,-0.795375}, {0.852526,-0.602336}, {-0.795936,0.503556}, {-1.379397,-0.490658}, {0.325956,-1.584800}, {-0.223558,0.569081}, {0.081155,0.347926}, {-0.295295,0.593889}, {1.147863,0.678079}, {0.666420,0.268891}, {0.335919,-0.387414}, {1.884109,-0.565796}, {-1.155022,-0.181474}, {-0.083694,0.434470}, {-0.431032,-0.709799}, {0.867853,-0.661146}, {1.308108,-0.705654}, {0.441709,0.237870}, {0.906238,0.160666}, {0.263269,-0.911975}, {1.316673,0.073375}, {0.495316,0.359938}, {-0.137338,-0.098128}, {1.551014,-0.986343}, {0.852076,-0.721691}, {0.453226,0.292144}, {1.095678,-0.511793}, {-0.038954,1.062364}, {0.808936,-0.562206}, {-0.290931,-0.645168}, {0.256794,0.145837}, {-0.849594,0.501363}, {0.383039,-0.725827}, {0.191017,0.987863}, {-0.260132,0.407206}, {0.386396,-1.059209}, {-0.377412,-0.745123}, {-0.291906,-0.531367}, {-0.405497,0.709018}, {0.620085,0.652872}, {-0.848280,-0.510761}, {0.284859,0.615713}, {0.348772,-0.207622}, {-0.055816,1.039482}, {0.334478,0.209594}, {1.605196,-0.420670}, {-0.605169,-0.084273}, {0.630320,0.781429}, {0.014900,-0.362734}, {0.894942,-0.727579}, {0.067741,0.754466}, {0.949988,-0.066743}, {-0.253311,-0.959373}, {-0.348181,0.499553}, {0.059039,-0.130159}, {-0.127018,-0.015114}, {0.113024,-0.379652}, {-0.474835,-0.334921}, {0.787752,1.233290}, {0.730310,-0.362158}, {-0.043029,0.764059}, {0.702234,0.977776}, {-0.707870,0.675695}, {-0.746668,-0.056283}, {-1.427597,0.548321}, {-0.889836,-0.322518}, {0.559716,-0.205609}, {0.866683,-0.427771}, {0.190978,-0.991563}, {-0.904855,0.124091}, {0.050012,-0.833915}, {-0.237735,0.753702}, {1.054057,-0.159998}, {-1.311705,-0.141423}, {-0.167340,-0.857237}, {0.299898,-2.073567}, {1.438581,0.978587}, {-0.643269,-0.584753}, {0.133317,0.494257}, {-0.649429,0.374599}, {0.275902,-1.538577}, {1.198951,-0.760458}, {-1.385012,-0.069386}, {-1.281703,-0.058265}, {-0.555278,-0.011261}, {-2.004580,-0.558871}, {0.177745,-0.102492}, {0.172073,-0.727798}, {0.435496,-0.446889}, {0.636023,-1.534272}, {0.316862,0.134926}, {-0.152594,-0.252641}, {1.716484,-0.760875}, {0.577497,1.141460}, {0.259169,0.340464}, {0.148970,-0.160064}, {1.170360,0.759366}, {-0.411688,0.120789}, {0.282131,-0.723614}, {-0.570560,-0.471775}, {0.394987,0.179098}, {0.078922,-1.605195}, {1.222166,0.705268}, {0.112494,0.182192}, {-0.419529,-0.187154}, {-1.690670,-0.646314}, {-1.058211,0.228100}, {0.214788,0.185218}, {0.288251,0.244880}, {-1.430080,-1.445750}, {0.247476,-0.302103}, {0.265110,-0.804134}, {1.164424,1.113711}, {0.311110,-1.210742}, {0.796506,0.428281}, {-0.316142,-0.291436}, {-0.440177,-0.503075}, {0.097647,-0.178009}, {0.663421,0.217058}, {0.665703,-0.958534}, {0.310222,0.430380}, {1.264676,0.514635}, {0.652022,-0.675808}, {0.546673,-0.732842}, {-1.412238,0.029713}, {1.812263,-0.439160}, {-0.059908,-0.137715}, {0.717444,-0.127056}, {-0.231742,0.293963}, {0.953017,0.337998}, {-0.259151,0.250980}, {0.052105,-0.381903}, {0.152729,-1.519173}, {-0.591415,-0.657243}, {-0.150356,0.561554}, {0.049513,-0.328535}, {0.980559,-0.235285}, {1.255975,-0.268207}, {0.054851,0.313362}, {1.065817,0.798603}, {0.333122,0.943230}, {0.173731,1.244529}, {-0.137778,1.175759}, {-0.572404,-0.089366}, {-1.084071,0.201398}, {-0.302239,-0.089035}, {-2.102849,0.327512}, {-0.071969,0.048153}, {-0.987305,0.609359}, {0.045616,-0.070737}, {0.255401,-0.350403}, {-0.325866,-0.684457}, {-0.949723,-0.234736}, {0.084110,-0.655785}, {0.250549,1.066458}, {0.025403,-0.832694}, {-0.995800,0.738287}, {0.298398,1.547136}, {-1.442081,0.084168}, {0.067213,-0.221365}, {0.242559,0.174805}, {-0.326723,-0.622174}, {0.223836,-0.637175}, {0.811831,-0.299335}, {0.773214,0.551379}, {0.392211,-0.445570}, {-0.284968,-0.265439}, {-0.881859,1.508451}, {-0.347475,-0.325761}, {-0.616885,-0.769191}, {0.576795,-0.557282}, {0.047390,0.337606}, {-0.097859,1.780184}, {-0.429312,1.112392}, {-0.524623,0.219636}, {0.405006,-0.298594}, {0.382213,-1.012895}, {-0.976113,-0.643431}, {-0.135279,0.069899}, {-0.077138,0.056443}, {-0.622842,-0.648767}, {-0.142333,-0.385734}, {0.939501,1.168477}, {-0.090723,-0.021190}, {0.941865,-1.007430}, {-0.986187,0.958079}, {0.375743,0.363480}, {-0.381949,-0.320752}, {1.268664,-0.616885}, {0.136944,0.263353}, {-2.053794,0.961262}, {-0.684081,-1.224868}, {0.599383,0.140131}, {-0.032657,0.782458}, {0.385562,-0.313714}, {0.404669,0.093627}, {1.091659,0.677779}, {-0.253105,-0.859333}, {-0.324104,0.386444}, {-1.904799,-0.146740}, {0.373496,0.440722}, {1.125800,0.354270}, {-0.276754,-0.390405}, {0.553166,-0.230742}, {0.345504,1.257560}, {0.326855,0.709150}, {0.168127,0.088543}, {0.349772,-0.368904}, {-0.285477,-0.469480}, {0.523761,-0.504454}, {0.904464,-0.016717}, {0.081565,-0.511504}, {0.885394,0.427703}, {-0.042153,0.607306}, {-0.240457,-0.369428}, {-0.476362,0.849541}, {0.090063,-0.979648}, {0.986172,-1.489947}, {-1.101995,0.630631}, {-0.700222,-0.297787}, {-0.105735,-0.061019}, {0.274621,0.286836}, {0.956524,-0.005156}, {1.141911,0.489715}, {0.155700,0.477954}, {0.161408,-0.280752}, {0.208306,-0.382345}, {-0.319743,-0.654164}, {1.015004,-0.453518}, {0.798286,0.047264}, {-0.339036,1.191907}, {-0.508641,0.191641}, {-0.312756,0.231250}, {1.006892,0.770095}, {0.392099,-0.187454}, {0.827204,-1.196456}, {-0.071158,0.489808}, {-0.111609,-0.123514}, {-0.392260,1.137272}, {-0.418037,-0.312706}, {-0.890258,-0.638300}, {0.922980,1.538843}, {-0.076405,-0.034489}, {-0.056280,0.132953}, {0.470452,-0.751306}, {-0.507513,-0.546397}, {-1.195554,0.917548}, {0.119745,-1.039416}, {0.641056,0.873863}, {-1.881030,0.230334}, {-0.472662,-0.485251}, {-0.731312,-0.241578}, {1.386169,-0.814696}, {0.439633,0.192069}, {0.060629,-0.471375}, {-0.908071,0.528836}, {0.831151,0.885574}, {-1.203440,-0.299895}, {0.129863,0.106531}, {0.936271,0.756381}, {0.084020,-0.140794}, {0.018339,-0.191766}, {0.476259,1.311259}, {0.250059,-1.190703}, {-0.203745,0.761848}, {-0.825526,-0.180980}, {0.812343,0.263797}, {-0.153643,0.325493}, {-0.823435,-0.089900}, {-0.936715,-0.947103}, {0.504302,0.273732}, {-0.136153,0.040614}, {-0.228844,0.063628}, {0.961477,-0.801511}, {0.144958,0.157167}, {-0.275340,0.067845}, {0.982365,0.655564}, {-0.101251,0.364215}, {-0.518940,0.008418}, {1.146963,0.276110}, {-0.685455,0.477746}, {-0.867617,0.334274}, {-0.216229,-1.075130}, {0.222334,0.883621}, {0.561563,-0.562039}, {0.122965,-1.491563}, {0.905398,0.202764}, {0.237011,0.541816}, {0.995545,-0.305894}, {0.621302,-0.394520}, {0.118272,-0.759820}, {0.217348,-1.054868}, {0.146891,0.018121}, {-1.551826,-0.096002}, {0.015579,-0.036639}, {1.011278,-1.192439}, {-0.071961,0.011541}, {-0.953020,-0.444260}, {-0.367500,1.228606}, {1.526161,0.151876}, {1.107404,0.159669}, {0.491996,-0.158496}, {-0.098865,0.292759}, {-0.430131,-1.325361}, {1.032900,0.131424}, {0.238858,-0.653212}, {1.227567,-0.970755}, {-1.135533,0.454609}, {-0.498524,-0.586837}, {-0.249832,0.164953}, {0.788240,0.689636}, {-1.805305,0.688304}, {-0.568470,-0.213126}, {-1.008743,0.494092}, {-0.068211,-0.558996}, {1.019529,-1.524452}, {-1.555353,0.038906}, {-1.517993,0.035634}, {-0.183605,1.086476}, {-0.901828,1.815693}, {-0.376961,0.539305}, {0.384843,0.052507}, {-0.147705,-1.045677}, {0.880142,-0.997078}, {-0.854662,0.272260}, {0.283422,1.151546}, {-1.105150,0.930541}, {0.044104,0.397594}, {-0.104013,-0.673208}, {-0.211616,-0.621975}, {0.027161,0.371316}, {0.600274,-0.606245}, {0.806180,0.471603}, {-1.008090,0.778175}, {-0.289146,-0.809723}, {-0.038659,-0.429242}, {-1.334523,-0.137992}, {-1.995175,0.137457}, {0.021312,-0.091064}, {-1.281258,-0.684793}, {-0.413871,-0.292442}, {0.381687,0.818085}, {0.295284,0.101209}, {0.665034,0.592564}, {0.037124,0.035242}, {0.132064,-0.657651}, {1.053341,0.819935}, {1.210807,0.675951}, {0.457895,-1.075189}, {0.358357,0.147282}, {-0.499271,0.175458}, {0.854323,0.068143}, {1.991820,0.805889}, {1.826429,-0.005057}, {-0.467242,0.138414}, {-0.366227,-1.697539}, {0.485183,-0.821876}, {0.536318,0.341220}, {-0.441596,0.831566}, {-0.134826,0.751288}, {0.358869,1.095253}, {-0.386092,0.078119}, {-0.397661,-0.118587}, {-0.419914,-1.100465}, {0.280444,0.389289}, {-0.832278,0.269468}, {0.472347,0.132484}, {0.088928,-0.278739}, {0.361290,-0.444613}, {-0.320039,-0.519034}, {1.354470,0.178576}, {-0.168088,-0.359028}, {-1.317068,-0.040397}, {-0.157570,0.775248}, {0.150971,-0.256518}, {0.921575,0.744693}, {-0.137337,-0.764665}, {-0.917358,-0.458914}, {-0.705772,-0.263352}, {-0.510704,-1.187616}, {0.796905,0.825262}, {-0.050399,0.512465}, {0.768824,-0.159475}, {-0.687249,0.364975}, {-0.430008,-0.471340}, {-0.202663,-0.386981}, {-0.518536,0.608685}, {0.525161,0.135142}, {-0.372337,-0.486685}, {0.717387,-1.392395}, {0.854322,0.356855}, {-1.102180,-0.156184}, {-0.209081,-0.377676}, {-0.967928,-0.798301}, {0.111753,0.232228}, {0.314745,0.446778}, {-0.989801,0.082857}, {-0.298760,0.326928}, {-0.204933,0.197721}, {1.048764,-0.114128}, {-0.304972,0.032725}, {0.104894,0.290204}, {-0.045314,0.859009}, {-0.718912,1.194088}, {-0.242557,0.422101}, {-0.859795,0.575768}, {0.311124,-0.177388}, {-1.427806,0.214970}, {-0.645104,0.500403}, {-0.219194,-0.984099}, {0.788104,-0.907460}, {0.513765,0.453685}, {0.335412,-0.418488}, {-1.097887,0.150175}, {-0.979087,0.198912}, {0.305300,-1.140391}, {0.077787,0.856586}, {0.214734,-0.592854}, {-1.113305,0.320877}, {-0.669169,0.448671}, {0.253991,0.932563}, {-0.455481,0.185849}, {0.762277,-0.010084}, {-0.477479,0.184388}, {0.960667,0.390639}, {-0.720191,0.037977}, {-1.316302,1.152700}, {0.398760,0.257566}, {-0.401636,-0.419254}, {-1.914376,1.449176}, {-0.339228,0.296751}, {0.207467,0.305288}, {-1.731574,-0.030498}, {-0.240750,-0.617304}, {-0.237212,0.715578}, {-0.416285,-1.008641}, {0.634027,1.717009}, {0.384123,-0.449106}, {-1.160894,-1.767794}, {0.618354,-0.261380}, {-1.569626,-0.364495}, {0.631915,-0.543410}, {0.282734,-0.370501}, {-0.977373,-0.433726}, {1.432343,-0.462557}, {-0.972547,0.004444}, {0.784231,-0.243932}, {-0.376546,-0.584034}, {1.001247,-0.164126}, {0.554715,-0.308636}, {0.540227,0.426550}, {-1.066853,-0.294694}, {-0.504114,0.275915}, {-0.949985,0.630675}, {0.506317,-0.294027}, {0.133689,0.989125}, {0.105266,0.527915}, {0.072913,0.211680}, {0.381472,0.837872}, {-0.183162,0.180758}, {0.458198,-0.961007}, {-0.004799,0.996245}, {-1.561414,-0.676542}, {-1.427195,0.800941}, {0.173579,0.155504}, {-0.830370,0.498583}, {-0.232669,0.505982}, {-0.096304,-0.750719}, {1.906512,-1.461034}, {-0.395663,-1.409489}, {-0.705341,-0.497179}, {-0.163104,-0.442154}, {0.853744,-0.265722}, {-0.361874,0.151299}, {0.107204,-0.414142}, {-0.106144,0.419209}, {-1.286889,-0.802826}, {-0.144332,0.370855}, {0.474858,0.913496}, {-0.867293,0.301363}, {-0.545302,0.146680}, {0.001880,0.805475}, {1.320236,0.643083}, {-1.141064,1.684144}, {-0.128674,0.678582}, {-0.343416,0.309854}, {0.019772,1.077821}, {-0.239235,-0.119506}, {-0.373356,-0.583563}, {0.403890,-0.534354}, {-0.519976,0.020956}, {0.712048,0.988539}, {-0.861664,-0.493059}, {0.093158,-0.833793}, {1.052626,0.468904}, {0.091221,0.456901}, {-0.584013,-0.961460}, {1.685019,0.470576}, {-0.180148,-0.785828}, {-0.210638,-0.498937}, {0.934431,1.304392}, {0.066268,-0.504962}, {0.151449,-0.194295}, {0.247991,0.136973}, {-0.126328,-0.633755}, {-0.857218,1.918319}, {0.354034,0.566611}, {-0.323836,-0.588707}, {-0.093776,-0.592204}, {-0.027068,-0.042178}, {0.002969,0.636477}, {-0.480469,-0.201484}, {-1.191052,0.906057}, {0.598655,-0.164748}, {-0.044789,-1.118828}, {-0.541816,-0.070911}, {0.074609,1.345165}, {-0.032322,-0.231974}, {-0.449760,1.661760}, {0.707548,0.034345}, {-0.907888,-0.004174}, {0.152966,0.440522}, {0.046909,0.346149}, {-0.281537,-1.219698}, {-0.895213,1.513594}, {-0.881255,0.124261}, {-1.081693,-0.436486}, {-0.106278,0.626797}, {0.754899,0.295278}, {-0.227234,0.474572}, {-0.763770,-0.042921}, {-1.002643,0.429052}, {0.478156,-0.815031}, {-0.733688,-0.279437}, {-0.362104,0.064655}, {-0.114674,0.196627}, {0.044324,-1.013509}, {-0.452231,-1.026683}, {-0.928972,0.240171}, {0.531384,-0.041877}, {0.360475,2.263092}, {-0.002502,0.278693}, {-1.068170,-0.652698}, {-0.133973,0.404417}, {0.112787,0.817903}, {0.093469,0.514351}, {0.173190,0.030494}, {-0.386117,-0.119304}, {-0.150011,1.098977}, {-0.718702,1.061190}, {-0.187865,0.769379}, {-0.673330,-0.520017}, {-0.782271,0.749117}, {1.040643,-0.447207}, {-0.686538,-1.825913}, {0.706101,-1.401344}, {-0.031939,-0.069587}, {1.026212,-0.730925}, {0.311104,0.591601}, {0.589268,-0.406947}, {-0.305040,0.233919}, {-0.658906,-0.074957}, {-0.172826,0.539225}, {1.621683,0.577736}, {1.074205,0.776840}, {-1.131216,-0.504166}, {-0.664862,-0.542385}, {-0.245912,0.040006}, {1.012363,-0.520893}, {-1.044423,-0.968495}, {0.057525,-0.137602}, {0.031642,-0.360814}, {0.302685,0.776735}, {-0.590976,0.666512}, {-0.153819,-0.015702}, {0.050475,1.733477}, {0.474972,0.052117}, {0.185655,-0.901557}, {0.383428,0.150210}, {0.254788,0.679409}, {-0.224796,0.681574}, {-0.256749,-1.077031}, {0.134707,-0.760133}, {1.014226,-1.619607}, {-0.766887,-0.104736}, {0.761824,-0.642466}, {0.640060,0.025030}, {0.717916,0.808046}, {0.158375,-0.609786}, {0.599932,0.529572}, {0.920422,-1.417508}, {0.247593,-0.365323}, {0.143007,0.147123}, {-0.698949,-0.661064}, {0.099640,0.528546}, {0.387466,1.303945}, {0.721636,-0.563915}, {-0.056200,-0.095831}, {0.127167,0.466936}, {0.614167,-0.250185}, {0.324173,-0.104513}, {0.564475,-0.584259}, {0.000883,-0.715214}, {0.175617,-0.853427}, {-0.655242,0.141206}, {-0.799496,-0.397656}, {0.509296,-0.078758}, {0.824815,-0.397955}, {0.165592,-0.838807}, {-1.406393,-0.034832}, {-0.140087,-0.245922}, {-0.039954,-0.580654}, {0.592499,0.257650}, {0.865662,-0.321183}, {-0.348095,0.633829}, {-0.222209,0.346638}, {0.077141,-0.429164}, {-0.612928,0.649756}, {-0.218828,-0.978959}, {-0.467017,0.873553}, {1.012268,-0.236361}, {0.935993,-0.768227}, {-0.637278,0.397934}, {-0.171380,0.726429}, {-0.200094,1.039778}, {-0.395740,-0.290233}, {-0.251927,0.547605}, {-0.317331,2.066899}, {0.874234,-0.172457}, {-0.112367,0.968130}, {-0.608874,-0.281634}, {0.458084,0.134327}, {-0.327929,-0.153658}, {-0.809721,-1.217724}, {0.108791,0.635246}, {-0.127071,0.688169}, {-0.681222,0.292983}, {-0.447850,-0.098757}, {-0.059162,0.033865}, {-1.459920,-0.167831}, {-0.546872,1.304584}, {0.567670,-0.764303}, {-0.051371,0.814561}, {0.018359,0.085225}, {0.295254,0.367041}, {0.923804,-0.382126}, {-0.094986,0.179273}, {0.751972,-1.355834}, {-0.131853,-0.066514}, {0.223027,-0.074406}, {-0.447982,-0.207079}, {-1.165943,-1.747960}, {0.289496,-0.581631}, {0.995888,-0.840471}, {0.287864,-1.173235}, {-0.035233,-0.012186}, {1.404205,-0.502267}, {0.271013,-0.607421}, {0.082209,-0.294491}, {1.108759,0.397367}, {0.147693,-0.077201}, {0.644694,-1.167422}, {0.439444,-0.480603}, {1.596557,0.704222}, {0.202072,-1.010761}, {0.472276,-0.171207}, {0.496560,-0.780542}, {1.279076,-0.623514}, {0.182762,-0.393778}, {0.150084,0.277712}, {0.752527,0.683646}, {0.480142,1.172231}, {1.005193,-0.949569}, {0.668218,-0.521006}, {-0.401607,0.695572}, {0.934451,-1.387263}, {-1.060714,-0.674529}, {0.445290,-0.241091}, {0.757956,0.271408}, {1.231487,0.237535}, {-0.486448,0.433734}, {-1.455954,1.581795}, {-1.037576,-1.013962}, {-0.251248,-0.324413}, {1.064396,0.130331}, {-1.209972,-0.399869}, {0.412389,0.237274}, {-0.971736,0.139207}, {0.364493,0.360362}, {0.462466,0.123618}, {0.015647,0.662696}, {0.521067,-0.464325}, {-0.691029,-0.419101}, {0.797372,-0.361360}, {-0.711848,-0.337005}, {0.276187,0.033567}, {0.261731,0.465815}, {-0.122547,-0.163457}, {0.449124,0.025562}, {-0.366007,-0.325535}, {0.741756,0.044402}, {0.795758,-1.009837}, {-0.045791,-1.021170}, {-0.690750,-0.553651}, {-0.885860,0.289949}, {0.587965,-0.598258}, {0.645572,0.810630}, {-0.008388,-0.730176}, {0.161907,0.977525}, {-0.967148,0.872038}, {0.372738,-0.028752}, {0.255575,1.354765}, {-0.947345,0.186383}, {0.938292,0.931974}, {-0.137511,-1.156500}, {1.535508,1.226839}, {0.098197,0.233959}, {1.091029,-0.489096}, {0.919905,1.862780}, {0.715268,0.128684}, {0.737863,-0.154854}, {-0.231765,-0.541695}, {-0.512769,-0.574521}, {-0.128448,0.487393}, {0.352688,1.345931}, {0.064971,-0.982254}, {-0.726009,1.313529}, {0.448623,-0.053441}, {1.469537,-0.044362}, {1.011843,0.352729}, {1.063249,-0.322635}, {-0.131380,0.533014}, {0.451360,0.230248}, {0.001995,0.153600}, {1.646787,0.881911}, {-1.458759,-0.586824}, {-0.702392,-0.241636}, {-0.074182,-0.072131}, {0.262439,0.583482}, {-0.476122,0.082469}, {0.438068,0.803544}, {-0.207061,0.660637}, {0.567990,-0.597823}, {-1.688718,-0.103409}, {-0.829192,0.426556}, {0.827020,0.826934}, {0.441454,-0.546262}, {-0.304897,-0.022233}, {-0.357555,-0.612953}, {-0.388052,0.013095}, {0.777314,0.544567}, {0.437676,0.305298}, {-0.356608,-0.848358}, {0.791083,-0.271240}, {0.044885,0.107636}, {0.364655,0.012973}, {0.538263,-1.124278}, {0.228271,-1.168910}, {0.026633,-0.327359}, {0.464736,-0.077427}, {-0.438151,-0.387916}, {0.384472,0.255111}, {-0.913587,0.151118}, {0.215311,0.261325}, {0.133743,1.302663}, {0.977288,-1.212393}, {-1.005590,1.135110}, {-1.031105,-0.046053}, {0.034069,0.088167}, {-1.874043,0.314546}, {-0.138676,-0.665746}, {-1.367737,0.809027}, {-0.617917,0.576212}, {-0.059977,0.148805}, {1.021231,-1.734845}, {0.232449,-1.635767}, {-0.402629,0.093773}, {0.306316,-0.589913}, {0.691035,-0.933528}, {-0.854344,-0.581280}, {-0.550056,-0.087623}, {-0.735359,0.440600}, {-0.599941,-0.566529}, {-0.157511,0.329776}, {-0.620057,-0.573574}, {-0.618399,-0.151361}, {0.173969,-0.559218}, {-0.316563,2.332789}, {-0.512502,-0.263662}, {0.127996,0.407326}, {0.888734,-0.229112}, {0.431876,-0.881928}, {0.480039,-0.855335}, {0.548737,0.504779}, {0.039114,-0.355311}, {-0.536205,1.175569}, {-0.006012,-1.440053}, {-0.366908,-0.714389}, {-0.253160,-0.482878}, {0.071598,-0.022415}, {0.484456,0.242941}, {0.353405,-0.516339}, {0.269909,0.018111}, {-0.512141,0.368190}, {-0.034358,-0.690191}, {0.186251,-0.383563}, {-1.243734,1.020511}, {-0.310334,-0.639568}, {-0.238013,1.203421}, {-0.276677,0.105597}, {0.528988,0.213357}, {0.351103,0.004227}, {0.686052,-0.683489}, {0.402253,-0.548756}, {-0.244236,-0.179112}, {0.039858,0.390838}, {0.985325,0.842588}, {0.440814,-0.329205}, {0.666419,0.644613}, {0.548497,-0.000859}, {-0.938426,1.023278}, {-0.941754,0.721262}, {0.000099,1.114577}, {-1.218951,1.191773}, {-0.607709,0.205343}, {-0.206425,0.838011}, {0.699534,-0.002445}, {1.352826,-0.100402}, {0.041916,0.740550}, {0.416504,-0.341657}, {0.097466,1.186724}, {0.687240,-0.367369}, {0.545399,-0.035212}, {0.374638,0.479261}, {0.135228,-0.116509}, {-0.608795,0.777712}, {0.335622,0.171713}, {-0.049759,0.394634}, {0.882455,-0.007277}, {0.074308,0.777326}, {0.370312,0.102349}, {0.376820,0.573884}, {-0.431049,0.306366}, {1.085490,0.744110}, {-0.230620,-0.315921}, {0.436716,0.557135}, {-0.702941,0.571264}, {0.221250,0.066672}, {-0.570686,-0.286918}, {-0.560485,-1.471082}, {-0.314618,-0.584589}, {-0.311362,0.168867}, {1.173793,0.106905}, {-1.017770,-0.355978}, {-0.228067,-0.524127}, {-0.163044,-1.799027}, {-0.126843,-0.121222}, {-0.360908,-0.655512}, {1.040580,-1.978968}, {-0.769183,0.705786}, {-0.275717,-0.258945}, {-0.590592,-1.078141}, {-1.062724,0.958762}, {0.123248,0.000726}, {-0.630985,-0.643702}, {-0.304755,0.333120}, {-0.354195,-0.773979}, {-1.222200,-0.340033}, {-0.500831,-0.495272}, {0.395941,0.305049}, {1.926537,-0.064242}, {0.102387,0.533556}, {1.094398,0.165614}, {-1.017921,-1.540784}, {-0.218494,-0.929660}, {-0.535317,0.186219}, {1.199743,-0.241787}, {0.086699,-0.643872}, {-0.586069,0.057078}, {0.457002,-0.144936}, {0.938976,0.355965}, {-0.478159,-0.863239}, {0.123059,0.137369}, {-0.726764,0.697758}, {-0.776171,-0.293292}, {0.532566,-0.658669}, {0.490077,-0.101454}, {0.031428,0.291178}, {-0.667737,0.741288}, {0.907230,0.233775}, {0.515349,-0.227823}, {1.010764,-0.015213}, {0.444179,-0.562985}, {-0.276474,0.657198}, {-0.172263,0.956311}, {-0.355806,0.703603}, {-0.506885,-0.799493}, {-0.697335,-0.297622}, {-0.012191,1.840314}, {-0.847463,0.284183}, {0.854194,0.403219}, {1.929827,0.528325}, {-0.261886,0.577017}, {-0.031070,-2.348125}, {-0.155820,-0.265157}, {0.512475,0.208609}, {-1.450445,-0.816839}, {0.564060,0.610582}, {0.208762,0.538423}, {-0.394083,-0.217364}, {0.232377,-0.084660}, {0.344522,0.516178}, {-1.449901,-0.112290}, {0.000158,-0.982079}, {0.787346,1.416797}, {0.158547,-0.490012}, {-0.765118,0.416037}, {0.552854,0.197313}, {-0.560294,0.168624}, {-0.710216,-0.278700}, {-0.022732,0.174521}, {-0.831227,0.475439}, {0.219373,-0.678127}, {-0.002961,-0.573618}, {-0.945813,0.412736}, {-0.979897,1.265908}, {-0.311475,0.379769}, {-0.082964,0.038846}, {-0.500868,0.551077}, {-1.116548,-0.382053}, {-0.150512,-0.889516}, {0.003441,-0.441244}, {-0.155477,0.236868}, {-0.372866,-0.003664}, {0.517363,-0.227696}, {0.348671,-1.184919}, {0.023715,-0.857359}, {-1.165542,0.373084}, {-0.372004,0.745161}, {1.486675,0.482708}, {0.713017,-0.111925}, {0.698459,0.261537}, {-1.448937,0.151106}, {-0.936754,0.023684}, {0.896661,-0.031541}, {0.360038,0.783076}, {-0.094289,0.365897}, {1.270895,0.047391}, {-0.069325,-0.911174}, {0.356797,-0.202779}, {0.966214,-0.501017}, {-1.056213,-0.334850}, {-1.048820,1.448814}, {-1.559907,0.438635}, {-0.533985,0.378701}, {1.577709,-0.730175}, {0.591595,1.416816}, {-0.192300,-0.219470}, {0.299344,-0.860943}, {0.318677,0.121607}, {0.335483,0.070689}, {-0.111371,-1.205420}, {0.395077,0.205784}, {1.026121,-0.818676}, {-0.968687,0.857896}, {0.312721,1.501156}, {-0.482650,0.352206}, {0.997697,0.112893}, {0.950446,-0.398203}, {0.097713,-1.070921}, {-0.800673,-0.325717}, {0.671945,-0.861890}, {0.021531,-0.436324}, {0.437880,1.356432}, {0.457176,-0.276639}, {-0.247776,0.777048}, {0.251688,0.079969}, {-1.334482,-1.474248}, {-0.483623,0.743976}, {0.355137,-0.034433}, {-0.956198,-1.078557}, {0.405169,1.702393}, {-0.835610,-0.412153}, {0.177645,-0.803742}, {0.190991,-0.126655}, {-0.293197,0.907349}, {0.208255,0.226394}, {-0.590120,-0.320991}, {-0.477141,-0.954609}, {0.534067,-0.035251}, {-0.962419,0.424134}, {0.409965,-0.074026}, {-0.110630,-0.862237}, {0.037791,0.944337}, {0.944043,-0.704466}, {-0.648236,0.057918}, {-0.617177,-0.830966}, {0.416183,-0.658194}, {1.180214,0.519521}, {-0.123865,-0.426364}, {0.019066,0.317164}, {0.234837,0.331158}, {-0.656986,0.335032}, {0.346063,-1.649529}, {0.058210,-0.381788}, {-0.260900,0.186365}, {0.429371,0.681698}, {1.939461,-1.181745}, {-0.445243,-0.716289}, {0.131740,0.865901}, {-0.918136,-0.131137}, {-0.053577,-0.373297}, {-0.531049,0.031422}, {-1.254709,0.556524}, {-1.119247,0.394916}, {-0.498215,-0.035437}, {1.322329,0.190493}, {-0.701283,-1.164440}, {-0.361131,-0.504716}, {-0.117174,0.107979}, {0.700073,1.603625}, {-0.582119,0.440169}, {1.018868,-0.420729}, {-0.212079,-0.280104}, {1.132422,-0.035123}, {0.026273,1.886585}, {-0.729453,0.098911}, {0.805546,0.750763}, {0.224181,0.331261}, {0.116170,0.259857}, {0.100047,0.046190}, {-0.055174,0.957446}, {-1.456418,-1.105336}, {0.290339,-0.811412}, {-0.403941,-0.272939}, {1.707646,0.332927}, {0.858293,0.006974}, {-0.476534,0.364698}, {-0.705168,0.544668}, {-0.667669,0.289049}, {1.181489,-0.102266}, {-0.363524,-0.507603}, {0.077873,-0.227451}, {-0.070765,0.236432}, {0.547170,0.221358}, {-0.084700,-0.954482}, {-0.930200,-1.003973}, {0.641949,1.189144}, {0.292530,1.376169}, {0.146329,0.050514}, {0.504086,0.327294}, {0.560656,-0.819642}, {-0.782328,0.555732}, {-0.321355,0.040423}, {0.575312,0.676942}, {0.676739,0.371605}, {-0.739089,0.154797}, {-0.196959,0.765774}, {-0.075477,-0.064618}, {-0.708957,-0.695153}, {-0.114007,-0.274311}, {-0.208777,-0.197655}, {-0.330289,0.090402}, {0.645717,-0.861720}, {0.759627,1.159973}, {0.736863,0.016140}, {-0.290055,1.066642}, {-0.360313,0.572408}, {0.559798,-0.118348}, {1.099664,0.913475}, {-1.221145,0.753011}, {-1.080846,-0.309538}, {0.898748,-1.751489}, {-0.793636,-0.682252}, {0.601441,0.716634}, {-0.754166,-0.295275}, {-0.057178,-0.531244}, {-0.503737,0.754428}, {-0.092784,0.415358}, {-0.428408,0.867882}, {-0.531645,-0.427532}, {0.015225,0.360774}, {0.052039,0.804546}, {0.140220,0.683936}, {-0.183837,-0.075742}, {0.141611,0.121116}, {0.863189,-0.304942}, {-0.183500,-1.267097}, {0.721582,0.324832}, {0.490362,-0.620402}, {0.032723,-0.342147}, {0.015191,0.299803}, {-0.453198,0.232907}, {0.890290,-0.037167}, {1.101406,-0.724242}, {-1.147539,-0.245951}, {-1.727078,-1.683502}, {0.261545,-0.107582}, {0.068065,0.753220}, {0.369570,0.796556}, {0.143988,0.884428}, {0.009223,-0.259795}, {-0.207237,1.912655}, {0.901343,0.446570}, {1.779646,-0.190026}, {0.060311,-0.035492}, {0.471146,-0.987103}, {-0.678292,-0.087719}, {-0.381341,0.932014}, {0.423463,-0.374888}, {0.132522,-0.133326}, {0.725087,-0.055467}, {-0.026041,0.630602}, {0.237645,-0.147676}, {0.384787,0.046887}, {1.184148,-0.971991}, {0.904135,-1.133769}, {1.047468,-0.174437}, {-0.262063,1.567163}, {-0.323006,0.521236}, {0.517606,0.341770}, {-0.289763,-0.525198}, {1.140138,-0.745015}, {0.748583,0.650728}, {-0.040966,0.218449}, {0.340059,0.915520}, {0.031779,0.421656}, {-0.394555,-0.262061}, {0.204192,-0.199669}, {-0.222583,0.416622}, {0.026680,0.648281}, {0.394312,-0.072898}, {-0.547009,-0.610642}, {-0.323403,-0.781335}, {0.246200,-0.481307}, {1.250227,-0.203189}, {1.335570,0.028829}, {0.907068,-0.322204}, {-0.241285,0.672412}, {-0.500388,1.413200}, {0.348404,0.053563}, {-0.515993,1.348158}, {0.419507,0.843740}, {-1.680552,-0.349667}, {1.125661,0.162114}, {-2.253658,-1.822658}, {-0.603819,-0.131986}, {-0.688067,-1.520234}, {0.107885,1.042587}, {0.794351,0.550783}, {0.107568,0.622575}, {0.427502,0.055636}, {-0.386636,-0.648276}, {-0.530590,0.233918}, {-0.069396,-0.648418}, {0.677155,1.610371}, {-0.636080,0.824467}, {1.069180,0.649464}, {-1.099628,0.652186}, {1.175325,0.015894}, {0.519414,-1.197649}, {-0.613790,-0.781378}, {-1.117294,0.891372}, {0.284313,-0.488536}, {0.142283,1.641906}, {1.718632,-0.694643}, {-0.611194,-0.432577}, {-0.251579,-0.852987}, {-0.170100,0.486159}, {0.320121,-0.580628}, {0.872266,-0.384060}, {-0.208309,0.139307}, {-1.583756,-0.645014}, {-0.702369,-0.541675}, {0.336241,0.831866}, {-0.865645,0.436119}, {-0.620241,-0.606092}, {-0.104203,0.984638}, {-0.410559,-0.040961}, {-0.416490,-0.226391}, {0.088726,-0.220726}, {-1.499559,-0.585178}, {0.293249,0.186455}, {-1.210379,-0.633716}, {-0.277191,-1.244025}, {1.139804,0.055639}, {-0.228353,0.448129}, {0.559068,-0.023119}, {-1.221999,0.465622}, {1.162107,-0.729434}, {-0.368202,0.259066}, {-0.285426,1.295138}, {0.379646,0.224708}, {0.294352,-0.551327}, {-0.462702,0.187464}, {-0.026366,-1.131739}, {0.894485,-0.169837}, {1.029962,-0.513169}, {-0.308485,-0.846109}, {0.013267,0.200561}, {0.442056,0.037734}, {-1.579953,-0.567456}, {0.313331,0.287219}, {0.237625,-1.467799}, {-0.343068,0.471870}, {0.808584,-0.605491}, {-0.384505,0.285999}, {-0.821182,1.140405}, {0.083857,0.569015}, {0.358021,0.251793}, {-1.050896,0.222264}, {0.693579,-0.417443}, {0.488468,0.599156}, {-0.102947,-1.320533}, {0.340396,-0.671734}, {0.618710,-0.219283}, {-0.125032,-0.163230}, {-0.088188,-0.534394}, {0.682064,1.041136}, {-0.344705,-0.089664}, {-0.529053,0.255838}, {-0.136569,-0.214062}, {1.455681,0.491256}, {1.238314,-0.436456}, {0.183785,-0.294781}, {-1.115245,1.248687}, {-0.649421,-0.614780}, {1.178710,-0.312908}, {0.812326,-0.393600}, {-0.874232,0.893146}, {-1.043341,-0.195049}, {-1.266037,-0.004749}, {-0.377230,-0.359996}, {-0.196225,0.796953}, {0.996897,-0.623582}, {-0.556859,-0.864103}, {-1.371972,0.769551}, {0.056397,-0.658378}, {-0.074004,0.516830}, {-0.019248,0.750291}, {0.172892,-0.524600}, {-0.598676,-0.007268}, {0.137861,1.698237}, {-0.084691,1.344243}, {0.001925,-0.191394}, {0.240667,-0.596132}, {-0.139205,1.502034}, {0.716061,-1.415551}, {0.861506,-0.658005}, {0.514495,0.090184}, {-0.528631,1.006103}, {-0.388832,-0.792382}, {0.735890,0.122394}, {-1.547132,1.015471}, {0.121113,-0.501140}, {0.975384,-1.280454}, {0.079350,0.996285}, {0.046097,-1.248331}, {-0.978137,-0.857029}, {-0.292484,0.917538}, {0.476399,-0.533662}, {-0.185424,0.410061}, {-0.516918,0.560953}, {-1.108884,0.242701}, {0.393610,-1.112134}, {-0.342411,0.026459}, {0.960001,-0.039799}, {0.292966,-0.871399}, {0.509531,0.068985}, {0.306125,0.182601}, {0.684688,0.611943}, {0.366705,-1.300976}, {-0.161117,0.460565}, {0.919045,0.162937}, {-0.600136,0.528728}, {0.807988,-0.082820}, {0.723075,-1.101493}, {0.408624,0.497548}, {0.592179,-0.511883}, {-0.624763,0.320432}, {0.702432,0.047555}, {-0.826321,0.702721}, {-0.590704,0.927206}, {-1.222225,0.520187}, {0.057220,-0.355501}, {-0.346697,0.327871}, {-0.389801,-1.554275}, {0.700315,-0.895953}, {0.367463,0.307326}, {-0.364395,-1.611608}, {-0.506932,0.889372}, {-0.243596,0.575283}, {-0.802028,0.056860}, {-0.171424,0.239689}, {0.169908,-0.522395}, {0.213199,-0.701460}, {0.552262,0.906828}, {-1.016062,0.643300}, {0.298917,-0.477633}, {0.354035,0.004910}, {-0.091019,0.375327}, {-0.237197,0.523797}, {-0.445213,0.236868}, {0.184486,0.210037}, {-0.200655,-0.532764}, {-0.165018,0.252682}, {0.301383,-0.470096}, {0.733004,-0.519851}, {-0.340900,0.559258}, {-0.003634,0.397142}, {-0.158002,-0.601995}, {1.029616,-0.712344}, {-0.272084,1.292895}, {-0.245181,0.153895}, {1.537927,0.233934}, {-0.194398,-0.207617}, {-0.037529,-0.362480}, {-1.439610,-0.069318}, {-0.527334,-0.847175}, {0.888073,1.120245}, {0.759059,-1.709285}, {-0.038818,-0.451563}, {-1.569456,0.059742}, {-1.135825,1.105116}, {0.860456,-0.054651}, {0.791421,0.583433}, {0.300375,0.733727}, {0.740330,0.173272}, {0.720677,-0.006213}, {0.211773,0.171237}, {1.239301,0.513578}, {-0.038229,-1.319419}, {-1.110608,0.623842}, {-1.199877,2.009182}, {0.110201,1.359225}, {-0.521048,1.259603}, {-0.779884,0.080694}, {0.922866,1.378522}, {-0.036678,-0.256378}, {0.630587,0.356473}, {-0.818911,0.348724}, {-0.823156,-0.403827}, {-0.305461,-0.183285}, {0.545495,-0.917827}, {-0.307489,0.278087}, {0.576430,0.263072}, {-0.110932,0.343314}, {-0.730010,0.924897}, {0.492041,0.775198}, {0.461854,0.423507}, {0.427495,1.700151}, {0.432533,0.301152}, {-0.593518,1.393076}, {-0.389399,-0.733757}, {-1.049504,0.301791}, {0.546392,0.734537}, {0.338524,0.116400}, {-0.597570,-1.925078}, {0.322346,1.008118}, {0.513935,-0.042958}, {-0.518049,0.101353}, {1.352677,-0.293425}, {0.240988,-1.041734}, {-0.691185,-1.063328}, {0.130569,1.016253}, {-0.586304,-0.555797}, {0.462853,-0.235079}, {0.079994,-0.355770}, {0.153572,0.147783}, {-0.596490,-0.795026}, {0.326538,-0.790256}, {-1.460756,-0.251033}, {0.017858,0.259083}, {0.507881,-1.054094}, {0.266351,0.627879}, {-0.752761,-0.513762}, {-0.627282,0.008649}, {-0.886446,0.842860}, {-0.463043,-0.469626}, {0.096623,0.933024}, {-0.286410,0.744126}, {-0.542282,1.126897}, {-0.313235,0.205528}, {-1.320519,0.277179}, {0.071715,0.147248}, {-0.903511,-0.083047}, {0.656132,-1.350683}, {-0.207632,-0.039248}, {0.117073,-0.120780}, {-1.332364,0.590990}, {-0.380298,-0.400794}, {-0.366577,0.174013}, {0.485112,-0.117400}, {0.372690,-0.023396}, {-0.909507,-0.293390}, {1.037746,0.057621}, {0.939461,-1.025088}, {1.893673,-0.611078}, {0.078827,-0.951650}, {-0.839030,0.090466}, {-1.104840,-1.126416}, {0.590214,0.068381}, {1.100851,0.573205}, {-0.393116,-0.875980}, {-0.254150,-0.405253}, {-0.278855,1.000683}, {0.921864,0.463923}, {-0.041988,-0.112156}, {0.155288,-0.019315}, {0.099627,0.916635}, {-0.622412,-0.503004}, {-0.262853,0.533022}, {-2.349103,-0.232631}, {-0.387689,-0.672924}, {-0.981208,0.386278}, {0.021049,-0.336082}, {0.385965,1.431628}, {0.084666,-0.022362}, {1.501095,-0.445381}, {-0.174828,0.029946}, {-0.075096,-0.754793}, {0.440599,-0.624117}, {-0.191469,-0.122779}, {-0.619664,0.048316}, {0.681431,-1.113935}, {0.392264,-0.416262}, {-1.025569,0.426959}, {0.231863,1.526328}, {-0.235847,0.767781}, {-0.081400,-1.937839}, {-0.142145,0.413403}, {-0.578059,-0.410749}, {0.886248,-1.144489}, {-0.584558,-0.717462}, {0.337355,-0.804375}, {-0.070221,0.776269}, {-0.020066,0.015296}, {-0.731855,1.217179}, {0.430529,-0.118092}, {0.121456,2.210222}, {0.825156,-1.563617}, {-0.365542,-0.034897}, {0.238998,0.603491}, {-0.488885,-0.418294}, {0.519796,-1.412865}, {-1.114191,-0.510320}, {-0.752598,0.541650}, {0.380631,-0.713726}, {0.023115,1.015882}, {-0.198359,0.433732}, {0.103927,0.017306}, {-0.039809,0.223707}, {1.711996,0.402454}, {-0.056678,0.174339}, {-1.687713,-0.160125}, {0.696416,-0.493909}, {-0.873410,0.257890}, {0.319853,0.072947}, {-0.368300,0.341422}, {-0.482285,0.930112}, {-0.004708,0.893093}, {-0.051559,0.713417}, {1.244796,1.336726}, {-0.104941,-0.449322}, {0.655462,0.706759}, {-0.239773,1.696788}, {-0.324650,0.398949}, {0.624589,0.044072}, {0.357952,0.443955}, {0.749903,1.159453}, {-1.563112,-0.838062}, {-0.617714,-0.025810}, {1.450510,-0.020522}, {0.225253,-1.483181}, {-0.666102,-0.989824}, {0.463322,0.622948}, {-0.252765,-0.493345}, {-0.030605,0.132428}, {-0.104919,-1.328013}, {0.512898,-0.265843}, {0.641341,0.344586}, {0.586485,-0.656758}, {-0.869639,-1.444607}, {-0.283470,-0.175611}, {-0.403954,-0.687469}, {0.222511,-0.720233}, {-1.268683,-0.981553}, {-0.379982,-0.435577}, {1.266867,0.349347}, {0.164557,-1.057785}, {0.093567,0.955540}, {-0.141307,-0.705522}, {0.371905,0.120573}, {-0.389172,-0.765473}, {0.917816,-0.237643}, {1.004090,0.178844}, {-0.629418,-0.412242}, {-0.210337,0.560592}, {-0.318360,1.059381}, {0.583389,-1.323808}, {-0.817288,0.993688}, {-0.878170,-1.153520}, {0.368115,0.337455}, {0.031655,0.110590}, {0.265206,0.204946}, {0.088893,0.170791}, {-0.177558,2.292458}, {0.141059,-0.985035}, {-0.660856,-0.980383}, {-0.609849,0.985874}, {-0.214610,0.730502}, {-0.616156,-0.316919}, {0.694992,-0.768053}, {-0.325122,-1.054053}, {1.217558,-0.854166}, {0.854051,-0.005104}, {1.209427,-0.241328}, {0.324556,0.132322}, {-0.343527,0.053413}, {0.224351,0.479553}, {0.421346,-0.521788}, {0.118883,-0.218365}, {0.188380,-0.456052}, {-0.349273,-0.770785}, {0.219073,0.003962}, {-0.296130,-0.656501}, {0.636082,0.026015}, {-0.625080,0.346952}, {0.929759,0.857013}, {0.187340,0.484039}, {0.007584,-0.624158}, {0.309799,-2.221435}, {0.640643,1.329439}, {0.226335,-0.805996}, {0.822625,1.060992}, {-0.470881,-1.000766}, {0.425072,-0.397100}, {-0.223623,0.531114}, {0.292353,-0.088059}, {0.366968,0.358980}, {-0.753461,-0.700875}, {0.249173,0.177231}, {0.182607,-0.592219}, {-0.058347,0.078718}, {0.183978,-0.226199}, {0.648659,-0.221680}, {-0.656861,-0.408497}, {0.798399,0.044049}, {-1.154125,-0.803622}, {0.008225,-0.136806}, {0.676763,-0.316637}, {-0.376109,0.251771}, {-1.331292,1.241033}, {0.190767,0.475373}, {0.578552,1.172062}, {0.505876,-0.233129}, {-0.361797,-0.297199}, {-0.097264,-0.225741}, {-0.050572,-0.001436}, {-0.454120,-0.192442}, {1.120225,-0.898933}, {-0.216917,0.333024}, {0.110060,0.750588}, {0.760030,0.575150}, {0.975368,0.487183}, {-0.416180,1.692559}, {0.804607,-0.335317}, {-0.669472,0.243862}, {1.112954,-0.010765}, {-0.312142,-0.937224}, {-0.567689,-0.263702}, {0.041868,0.572080}, {1.804127,-0.566619}, {-0.521481,1.063847}, {1.819315,0.382287}, {0.380872,-0.611233}, {0.296314,-0.222157}, {1.498113,0.879454}, {1.518674,0.605166}, {0.019620,-0.040801}, {1.102724,0.266670}, {-0.684836,-0.568236}, {0.519185,-0.779516}, {-0.226690,-0.818393}, {0.394623,-1.286799}, {0.900695,0.487765}, {-0.799478,-0.400191}, {-0.830514,-0.562055}, {0.951365,-0.076491}, {-0.152298,-1.042769}, {0.069064,-1.023238}, {0.053427,-1.985536}, {-0.686719,0.206313}, {-0.872301,0.294649}, {-0.624577,-0.387285}, {-0.050756,0.173358}, {-0.721308,0.536205}, {0.598027,-1.956268}, {1.243462,-0.102223}, {0.272178,0.642981}, {0.490204,-1.332468}, {-0.459636,1.005367}, {-0.186912,-0.782287}, {-0.912943,-0.294037}, {1.394333,0.134047}, {-0.104225,0.280412}, {0.396206,-0.652859}, {-1.350593,0.267762}, {-0.192340,0.249925}, {-0.294556,0.392405}, {-0.585629,-0.706280}, {0.416039,-0.105205}, {0.230197,-0.642631}, {-0.788622,-0.801780}, {0.641724,0.143368}, {0.868609,0.721575}, {-0.648315,-0.221029}, {-0.759865,-0.581518}, {0.050452,-0.421412}, {0.554405,-0.621567}, {-0.620533,-0.351417}, {-0.708260,0.277084}, {-0.663141,0.789494}, {0.544607,-0.890151}, {0.915475,0.208660}, {-0.089024,-1.629471}, {0.122487,0.665973}, {0.778714,-0.473087}, {0.436424,-0.053708}, {-0.962989,0.178894}, {-0.093878,-1.372909}, {-1.334592,-0.532912}, {0.914235,-1.047946}, {0.468339,0.302520}, {0.144360,0.390533}, {-0.851259,0.971010}, {-0.701207,0.150590}, {0.338131,-0.762748}, {1.102405,-0.101683}, {0.187218,1.112117}, {0.825270,-0.520667}, {0.520354,0.359599}, {-0.541755,0.243781}, {-0.025789,-0.276606}, {0.663983,-0.217932}, {-0.424530,0.937543}, {0.087080,-0.695290}, {0.125273,-0.056948}, {-0.574391,0.829597}, {0.707433,-0.081680}, {1.053279,0.587411}, {1.371934,-0.232203}, {1.377562,-0.181817}, {0.301180,1.214186}, {-1.259045,-0.768218}, {-0.106634,0.320428}, {0.638354,0.147326}, {1.035767,1.246632}, {-0.484057,-0.778008}, {-0.568900,0.810352}, {1.343526,-0.565878}, {-0.078860,0.468044}, {-0.241550,-0.951938}, {0.207429,-0.254585}, {0.447816,-0.015839}, {0.302137,0.164948}, {0.563014,0.769551}, {-1.148579,0.887160}, {-0.083611,0.680195}, {0.369397,0.512873}, {0.381627,1.395393}, {0.681791,0.515388}, {-0.542576,-1.534588}, {1.918437,0.611528}, {-0.522244,1.209917}, {-0.093985,-0.455651}, {-0.107796,0.859061}, {-1.018800,0.051540}, {-0.539498,-0.754561}, {-0.015481,-1.049091}, {0.407858,0.681992}, {1.168251,-0.815391}, {0.280607,-0.068227}, {-0.528591,0.091963}, {-1.073499,-0.577745}, {0.395243,-0.629384}, {1.095985,-0.516588}, {-0.136250,-0.015595}, {-0.696164,0.819270}, {-0.192516,-0.906690}, {1.066016,0.386976}, {0.084233,-0.420819}, {0.691169,-0.036671}, {0.304274,-0.143800}, {0.174184,1.080694}, {-0.812545,-0.113297}, {0.498295,-0.183696}, {1.482711,0.261931}, {-1.195411,-0.365014}, {-1.007641,-1.211093}, {0.180812,-0.582404}, {-0.600608,0.360349}, {-0.795459,-0.612485}, {-0.498403,-0.770827}, {0.179341,0.252923}, {0.078219,-0.134409}, {0.029020,0.530232}, {-1.082486,-0.964627}, {0.475449,0.228865}, {0.945295,-0.971173}, {-0.376007,-0.822730}, {-0.048402,-0.952172}, {0.442908,0.788001}, {-0.523677,0.317709}, {0.249828,-0.866534}, {0.288825,-0.711717}, {0.749714,1.240367}, {0.231159,-0.142686}, {-0.672808,-0.212280}, {-0.205479,0.294669}, {-0.867840,1.497664}, {0.602268,0.171039}, {-0.439475,-0.397819}, {0.056233,1.305299}, {-0.202537,-1.087085}, {0.879143,0.645517}, {-0.098655,0.549591}, {-0.079826,0.092852}, {0.787565,-0.587819}, {0.844504,0.083068}, {-0.316615,-0.486807}, {0.318470,-0.589745}, {-0.323499,0.031700}, {0.794815,1.192794}, {-1.434705,-0.743418}, {0.194635,0.496011}, {-0.068369,1.097164}, {0.055882,-0.610884}, {-0.944299,-0.941208}, {-0.498806,0.156640}, {0.208447,-0.528226}, {0.956777,-0.354452}, {-0.879130,-1.356783}, {-0.605954,1.495664}, {-0.025056,0.107553}, {0.610923,0.435619}, {-1.008064,0.239170}, {-0.137944,-0.395381}, {-0.531626,0.570013}, {0.039088,-0.074388}, {-0.602167,-0.940069}, {0.520930,0.839237}, {-1.547177,0.015998}, {0.439233,0.453052}, {-0.029776,-0.125403}, {-0.345532,0.150671}, {0.283820,-0.311247}, {0.691268,0.439948}, {-0.297298,0.571417}, {-0.664505,-0.174490}, {1.265258,0.472942}, {0.049889,0.244857}, {-0.095322,0.754115}, {-0.029737,-0.356600}, {0.146569,-1.294022}, {-0.295789,0.369970}, {0.200032,-0.482899}, {0.781168,1.247152}, {-0.245575,0.442512}, {-1.080089,-1.224498}, {0.347986,-0.310894}, {1.813778,-0.546107}, {0.347830,1.098305}, {1.139714,0.083681}, {0.613995,-0.064648}, {0.627980,-1.185934}, {-0.088940,-0.247523}, {0.293299,0.282612}, {0.145607,-0.363898}, {0.682261,0.069479}, {-0.062785,-0.107404}, {-0.404708,0.102763}, {-0.237587,0.193964}, {0.971118,1.637474}, {-0.449309,0.565929}, {1.795769,0.373496}, {-0.873712,0.616632}, {-0.196513,-0.640404}, {-0.186019,-0.672891}, {0.405301,-0.523678}, {-1.000323,1.087868}, {-0.748565,0.346213}, {-0.533750,0.023908}, {-0.576248,0.401431}, {-0.892996,0.627997}, {-0.467071,1.447969}, {-0.139768,-1.028884}, {0.278656,0.126379}, {-0.238544,0.542289}, {-0.270467,-1.010170}, {-0.228088,0.216426}, {1.142972,-0.627060}, {1.031965,-0.434600}, {0.340546,-0.237191}, {-0.136616,0.924569}, {-0.852451,0.409948}, {-0.030960,0.003293}, {0.751540,-0.478669}, {0.454761,-0.433887}, {-1.611252,0.302680}, {0.003690,-0.193511}, {-0.883646,-0.472813}, {-0.217567,0.614904}, {-0.060909,-0.291651}, {0.348777,0.769840}, {-0.205364,-0.945972}, {0.100935,-1.105324}, {-0.730546,1.197917}, {0.037881,-1.364004}, {-0.790273,-0.500485}, {1.019594,1.405192}, {0.553383,-0.760307}, {0.079813,1.242097}, {0.724602,0.322399}, {0.691650,-0.277596}, {-0.999711,0.814944}, {-0.103090,0.702437}, {-0.245544,-0.599467}, {-0.194306,1.677402}, {0.436362,1.246626}, {0.206087,-0.136172}, {1.747782,0.584106}, {0.406945,0.500722}, {0.401018,0.061251}, {-0.485579,-0.126287}, {0.102872,0.074572}, {0.526394,-0.130306}, {-0.997377,0.317494}, {0.651321,-0.412428}, {-1.160759,-1.663891}, {-1.106270,0.202325}, {-0.698919,0.195317}, {0.486878,0.717703}, {-0.998619,0.718843}, {0.006452,0.669891}, {1.418430,-0.380581}, {-0.079725,0.248431}, {0.034193,-0.516827}, {0.087614,-0.200013}, {-0.608534,-0.918271}, {-0.096351,-0.320469}, {-0.803814,-0.983979}, {-0.563381,0.035484}, {0.725737,0.753731}, {0.945344,-0.412933}, {1.252002,0.158636}, {-0.615195,-0.442558}, {-0.181433,-0.153078}, {-0.131831,0.255303}, {0.028794,0.045431}, {-0.901468,-0.112194}, {-0.240013,0.332503}, {0.725427,1.028639}, {-0.832698,-1.074637}, {-0.087355,2.052221}, {-1.695433,1.195954}, {0.348765,0.618883}, {-1.261736,0.226435}, {-1.036571,1.108908}, {-0.631858,0.969470}, {-0.383927,0.513694}, {-1.065415,0.305332}, {-0.770717,-0.211612}, {-0.042169,-0.577398}, {0.778070,0.164015}, {-0.308740,0.253317}, {0.673013,0.384047}, {-0.663271,-1.645542}, {-0.594806,-0.266981}, {0.031422,0.017209}, {0.372819,0.179241}, {-0.451831,-1.222927}, {-1.473253,-1.466359}, {-0.021394,1.299407}, {0.517073,1.048515}, {-0.492487,0.319604}, {0.045902,-0.369191}, {0.761630,-0.646184}, {-1.143760,-0.877989}, {-1.207937,0.402411}, {0.647822,-0.684881}, {1.561865,-0.520949}, {0.034907,0.267810}, {-0.060274,-1.422451}, {-0.739349,0.707542}, {-0.536740,-0.575886}, {-0.052684,-0.290248}, {-0.123131,-0.743400}, {-0.514004,0.128876}, {-0.865755,0.825335}, {-1.093714,-1.041393}, {1.399303,-0.474390}, {-1.593978,-0.302014}, {-0.647736,0.276940}, {-1.921976,-1.024671}, {-0.330629,-1.292647}, {-0.758354,0.195156}, {0.469699,0.035348}, {-0.091111,0.143719}, {-0.451077,0.345265}, {0.206307,-1.201955}, {-0.710390,1.963236}, {0.375559,-0.576808}, {0.149091,-1.086740}, {-0.449572,0.325384}, {-0.192764,0.050606}, {0.421631,-0.018053}, {1.221822,0.036003}, {0.377659,0.155503}, {0.659024,-0.972623}, {0.028611,1.195320}, {0.766597,1.851492}, {-0.080947,-0.311238}, {-0.546674,0.601715}, {0.100401,-0.217646}, {0.545637,0.168297}, {-1.346635,-0.631837}, {-0.682666,0.621478}, {0.045733,-0.349107}, {-1.244812,-0.204358}, {-0.422721,0.108213}, {0.079947,-0.097146}, {-0.020068,0.559199}, {0.297205,0.513111}, {0.941640,0.417691}, {-0.925712,-0.314921}, {-0.315827,1.287305}, {0.529011,0.755734}, {-1.309677,0.875144}, {-0.230303,0.267374}, {0.868997,0.302759}, {-0.111540,0.065648}, {-0.142909,0.138899}, {-0.578420,-1.061350}, {0.245031,0.319639}, {1.260454,-0.384548}, {0.982616,0.576288}, {0.159346,0.750479}, {-0.087783,1.089588}, {0.196171,-0.771344}, {-0.607085,0.048410}, {-0.068539,-0.651095}, {0.361776,-0.899946}, {0.513233,-0.276754}, {-0.815696,0.184741}, {0.595970,0.094903}, {0.115271,-0.496266}, {1.233400,-0.604420}, {-1.610600,0.068291}, {1.685176,-0.540653}, {1.331054,-0.306383}, {0.474553,-0.181542}, {-0.349692,-1.046318}, {0.466882,0.552974}, {0.671398,0.059918}, {1.220610,-0.655965}, {-1.017139,0.324829}, {-0.405089,-0.133175}, {-1.230806,-0.614727}, {0.053516,0.105043}, {0.263139,-0.629699}, {0.284898,-0.362198}, {-0.210472,0.588927}, {0.430466,0.051079}, {0.114497,0.987658}, {-1.348501,0.053213}, {-0.087962,0.937382}, {-0.583326,-0.560167}, {0.925946,0.254656}, {-0.883881,-1.030357}, {-0.800863,0.810453}, {1.625943,-1.280755}, {0.323764,-0.336854}, {0.797648,0.589424}, {-0.219584,0.872309}, {0.640241,0.052660}, {0.266435,-0.575933}, {0.010578,0.226011}, {0.416890,0.200529}, {1.452786,-0.051537}, {-0.310855,0.121700}, {-0.632248,-0.915323}, {0.030787,-0.673870}, {-1.049494,0.197745}, {0.047091,-1.145422}, {0.711093,0.945179}, {-0.242047,0.140575}, {0.340217,0.852112}, {0.630934,1.603793}, {-0.212128,0.191145}, {-1.331703,-0.244984}, {0.474762,-1.272654}, {-0.064322,0.887641}, {-0.772426,-0.137183}, {-0.476909,-0.765121}, {-0.921167,0.515822}, {0.706203,-0.726292}, {-1.297285,1.234220}, {0.251867,0.516994}, {0.152440,0.693035}, {0.355725,-0.222082}, {0.070784,-0.573142}, {-0.472779,0.405148}, {-0.387195,0.495100}, {0.353239,1.388869}, {0.436446,0.846312}, {0.117673,0.291440}, {0.038314,0.003910}, {0.832524,0.297668}, {-0.067787,-0.787236}, {0.308990,-1.201882}, {-0.716303,0.682363}, {-1.541222,0.779205}, {-0.399833,0.182525}, {-1.489015,0.201933}, {-1.085351,-0.414808}, {-0.593430,-0.460045}, {-0.136958,0.225884}, {0.839454,0.132045}, {0.512016,0.539074}, {1.021031,-0.818081}, {-2.082684,-0.974775}, {1.078381,-0.424613}, {-0.215449,-1.070854}, {-0.267500,-0.045646}, {-0.097457,-0.787663}, {-1.127850,-0.129833}, {0.261141,0.361222}, {-0.047321,-0.078316}, {-0.213066,-0.934763}, {-0.693972,0.416171}, {0.734195,0.443239}, {-0.761988,1.089263}, {0.254715,0.226029}, {0.302206,0.304181}, {-0.588604,-0.955464}, {-0.724068,0.962523}, {1.030788,1.094885}, {-1.634408,0.959742}, {-0.343578,0.529590}, {-0.913576,0.062114}, {-0.029438,0.785613}, {-0.978121,-1.357258}, {0.393594,-0.252471}, {-0.547676,0.105908}, {0.540394,-0.607045}, {0.769064,-0.118855}, {-0.655730,0.653167}, {0.624079,0.821763}, {0.289239,-0.019449}, {0.171656,-0.435785}, {1.322478,0.011860}, {-2.093062,1.275452}, {-0.213217,0.410659}, {-0.922502,0.014639}, {1.481723,-0.168258}, {-1.494468,-0.526159}, {0.212115,-0.653763}, {0.247302,0.440803}, {-0.227827,-0.164564}, {-0.730551,0.626705}, {0.955221,-0.640437}, {0.083621,-0.495753}, {0.010779,0.268628}, {-0.517990,0.518614}, {-0.127293,0.121118}, {-1.391215,0.845785}, {0.376562,0.013170}, {-0.023148,0.651098}, {-0.545330,1.030364}, {0.423751,-1.034899}, {0.064578,0.069449}, {0.727233,-0.170816}, {-0.262943,-0.128789}, {-0.200262,0.310986}, {0.252975,0.424229}, {-0.907615,-0.073997}, {-0.543862,-0.735072}, {-0.813343,-0.173314}, {-1.201885,1.528061}, {0.656099,0.166095}, {-1.168671,0.209173}, {0.835893,0.449546}, {0.058003,-0.443218}, {-0.940742,0.333260}, {0.685444,1.349441}, {-0.070850,0.383320}, {-0.784000,0.412765}, {0.972754,0.248983}, {-0.611710,0.795272}, {0.740168,-0.382664}, {-0.595800,1.134890}, {-0.291688,-0.192899}, {-0.324666,1.139416}, {-0.026190,0.014553}, {-0.797475,0.108035}, {0.257394,-0.383343}, {0.936633,-2.076909}, {-0.164027,0.563305}, {-0.029333,-1.077666}, {-0.776752,0.687745}, {-0.361438,-1.434606}, {0.159147,0.129632}, {0.742079,-0.379723}, {-0.325943,-0.534641}, {0.421914,0.776426}, {-1.185213,1.207085}, {-0.812063,-0.427344}, {-1.734549,-0.468229}, {-0.532631,-0.196973}, {-1.124256,-0.783135}, {0.002816,-0.609461}, {0.497856,-0.858671}, {0.297182,-0.995354}, {-0.009002,-0.094468}, {-0.841901,0.478523}, {-0.357151,-0.724320}, {0.684269,-0.106986}, {-0.875832,0.368872}, {-0.451512,1.155647}, {0.007695,0.984606}, {-0.245539,-0.586946}, {-0.438202,0.003614}, {0.272786,0.270776}, {0.645523,0.541562}, {-0.237560,-0.637564}, {-0.848358,-0.612336}, {-0.277362,-0.783485}, {0.481862,-0.045225}, {0.276958,0.039033}, {-0.226987,1.330472}, {1.139474,0.298630}, {-0.452719,0.688238}, {0.575993,-1.073807}, {-0.877879,-0.474368}, {1.162578,-0.352652}, {-0.616572,-0.422459}, {-0.353035,1.347897}, {-1.158601,-0.646731}, {0.451272,0.588822}, {-0.141924,0.363633}, {0.527233,-0.473859}, {-0.363216,-0.892939}, {-1.340083,-0.111274}, {-0.603631,-0.270979}, {-0.188457,0.012816}, {-0.811343,1.252060}, {1.188571,-0.831308}, {-1.041929,-0.096941}, {0.712698,0.394449}, {-0.553583,0.946137}, {-1.219442,-0.169581}, {0.864311,-0.554224}, {-0.262955,1.220312}, {-0.576259,0.887034}, {1.004077,0.461673}, {-1.593715,0.659881}, {0.531584,0.228323}, {-0.240945,0.486940}, {0.922614,-0.455564}, {0.275567,0.685332}, {-0.420722,1.269918}, {0.430470,0.686037}, {0.034631,-0.235561}, {-0.314039,-0.525507}, {0.272926,1.024054}, {-0.597859,-0.371195}, {0.369351,0.638611}, {-0.203028,1.337666}, {0.939544,0.549966}, {0.478238,-0.275508}, {-0.155890,0.618782}, {0.065502,1.306056}, {-0.144435,-1.053199}, {0.675192,-1.042800}, {0.887757,0.799049}, {1.032078,-0.335687}, {-0.416585,-0.671976}, {-0.277219,0.392748}, {-1.373308,0.145767}, {-1.898957,0.258620}, {-1.507777,-0.799117}, {0.125190,-1.513681}, {-0.555275,-1.147338}, {0.109193,0.630449}, {0.850572,-0.428761}, {0.762598,-0.418743}, {-0.658676,0.120374}, {0.219889,0.679444}, {0.960891,0.748391}, {0.870463,0.591815}, {1.008497,0.258433}, {-0.397245,0.229091}, {0.079530,-0.765548}, {-1.189197,0.391146}, {1.090130,-0.176457}, {0.878735,-1.220042}, {-0.282687,0.045037}, {0.690295,0.760265}, {-0.064226,-1.270045}, {0.451127,0.620894}, {0.518653,-0.291379}, {1.427926,0.763723}, {0.013799,-0.112367}, {-0.284511,0.556617}, {0.023375,-1.498134}, {0.527409,0.837385}, {-0.337269,0.119037}, {0.397375,1.457268}, {-0.915267,1.637006}, {0.189049,0.517475}, {0.118637,1.005364}, {0.396135,-1.604041}, {-0.089106,-0.609048}, {-0.028093,0.096681}, {0.978246,-0.222336}, {0.078209,0.502843}, {0.317957,-0.209239}, {-0.235391,-1.067509}, {0.672564,-0.630147}, {0.573721,0.505773}, {-0.211566,0.007962}, {0.493715,-1.029766}, {0.610607,-0.973276}, {-0.204172,-0.197208}, {1.323638,-0.298948}, {-1.036127,-1.456968}, {-0.650336,-0.262731}, {-0.324206,-0.556171}, {0.184158,-0.349058}, {0.439262,0.058320}, {-1.534475,0.227140}, {-0.631174,1.780843}, {-0.755815,-0.501755}, {0.146835,-0.731846}, {0.859454,0.963689}, {0.800582,-0.146938}, {1.372001,0.638182}, {-0.919889,-0.622212}, {0.681129,-0.602858}, {0.172753,1.274081}, {-0.669045,-0.735854}, {1.072433,-0.430603}, {-0.945714,0.249387}, {0.058404,-0.356905}, {0.280842,1.395081}, {-1.333727,0.175503}, {-0.162653,0.997135}, {1.349928,-0.778412}, {0.351735,-0.432853}, {0.130525,-0.679365}, {-0.255894,0.000290}, {-0.033975,0.753936}, {0.880727,0.592943}, {-0.432137,-1.241763}, {-0.916417,0.629270}, {-0.417353,0.281667}, {1.027431,-0.561347}, {-0.313624,-0.862803}, {0.688305,-1.114407}, {0.407758,0.350545}, {-0.084867,-0.097319}, {0.659983,0.568765}, {-0.226611,0.133226}, {-0.215283,-0.443496}, {0.718936,-0.037813}, {0.933978,-0.233086}, {-0.516582,0.734210}, {0.736643,0.706611}, {0.305234,0.000249}, {-0.370270,0.590320}, {0.962118,-0.925841}, {-1.048981,-0.103269}, {0.044995,0.871437}, {0.797065,-0.797195}, {0.012374,1.464487}, {-0.744670,-0.902590}, {-0.975379,0.299666}, {-0.751756,-0.171825}, {-0.478057,1.113745}, {-0.351503,0.127088}, {0.589924,-0.913712}, {1.035181,-0.319182}, {-0.226216,-0.426067}, {0.740355,0.631193}, {-0.506299,-2.521827}, {-0.734618,-0.279302}, {-0.793006,0.934782}, {0.400248,0.019342}, {-0.460130,0.039696}, {-1.182922,-0.759926}, {-0.322657,0.433662}, {1.295318,0.089107}, {0.776325,-0.202020}, {-1.354920,-0.019325}, {-0.070378,-0.628537}, {-0.313186,-0.122804}, {0.679820,-0.407435}, {0.568100,-0.865077}, {-0.270622,-0.118376}, {-0.120073,1.163957}, {-2.521375,-0.093829}, {0.242298,-0.793270}, {0.110432,1.286578}, {0.589488,0.684460}, {-0.130721,-0.833847}, {-1.196174,0.719174}, {1.558364,-0.705261}, {0.040922,0.325140}, {-0.591884,0.749348}, {-0.121397,0.219684}, {0.378761,-0.899270}, {-0.292474,-0.083947}, {-0.868838,-1.003608}, {0.229984,-1.746968}, {-0.653827,-0.413638}, {-0.724029,0.485097}, {0.014806,1.481808}, {-0.493384,-0.210216}, {0.722527,-0.225007}, {1.054819,1.601291}, {-0.282008,-0.282742}, {-0.866851,0.072647}, {-1.735218,-0.205276}, {-0.689724,-0.951328}, {0.216225,0.177342}, {-0.124588,-0.162394}, {0.489274,-0.190430}, {-0.057484,-0.451252}, {-0.838170,0.008589}, {-0.012782,1.507933}, {-0.471353,0.394553}, {-0.190237,0.685665}, {0.557875,-0.620214}, {-0.059726,0.397332}, {-0.592982,-0.006411}, {-0.123340,0.161368}, {-0.854995,0.700566}, {-0.572703,-0.252267}, {-0.763440,0.344721}, {0.021265,0.446768}, {-0.586946,0.323793}, {0.180415,0.043743}, {-0.288882,-0.511805}, {2.624556,-0.567090}, {0.551481,0.803221}, {-0.143453,-0.586976}, {0.992092,1.533923}, {-0.318124,-0.550864}, {1.318704,-0.063433}, {-0.155347,1.117042}, {0.058911,-0.944546}, {0.108052,-0.051107}, {-1.035368,0.386023}, {-0.823147,0.171737}, {0.846301,0.680001}, {-0.110664,0.468723}, {-0.083706,0.625575}, {0.290091,0.858146}, {-0.662183,-0.590796}, {-0.288190,-0.353492}, {-1.159802,-1.337642}, {-0.306885,-0.750638}, {0.044691,-1.653807}, {-0.615050,0.289028}, {-0.201731,0.465221}, {1.008004,-0.060762}, {-0.550498,0.300423}, {-0.116548,-0.013405}, {0.549048,1.586230}, {0.759367,-0.971517}, {1.323636,1.681829}, {0.170062,0.089436}, {-0.211072,0.704819}, {-0.419963,-0.128266}, {0.626398,-0.551576}, {1.543900,0.511508}, {-0.784514,1.183790}, {0.502940,1.028658}, {-1.016714,0.248965}, {0.112604,0.111350}, {-0.123006,0.683764}, {0.021753,-0.247159}, {0.138703,1.086674}, {-0.051887,-1.076659}, {1.737884,0.864115}, {-0.215718,0.020311}, {0.666013,-0.799401}, {-1.108657,0.547216}, {0.552800,2.316691}, {-0.103811,0.195943}, {-0.559387,0.399860}, {-0.574699,-0.002171}, {0.494645,0.839499}, {1.539942,0.061094}, {-1.185473,0.157370}, {0.687725,-0.726402}, {1.062304,0.143174}, {-0.231306,0.431820}, {0.181212,0.243572}, {0.048089,1.016969}, {1.019749,-0.468151}, {0.272841,-0.383551}, {0.606381,-0.216956}, {-1.061207,-1.080103}, {-0.174838,0.363043}, {-0.498895,1.116096}, {-0.098641,0.561958}, {0.043930,0.385439}, {-0.427768,-1.146650}, {0.923076,-0.396539}, {0.754689,0.963067}, {-0.037038,-0.203416}, {0.019305,-0.562339}, {-0.797642,-0.371491}, {0.081456,-0.831708}, {0.208751,-1.180105}, {-0.774074,-0.978951}, {1.266618,0.537957}, {-0.712267,0.567095}, {0.145303,-0.817414}, {1.967789,1.007710}, {0.193202,0.217408}, {-0.798454,-0.633302}, {-0.330441,0.650118}, {-0.007839,0.797737}, {-0.990287,0.006108}, {-0.443475,1.373610}, {0.356907,-0.324058}, {-0.456490,0.150888}, {0.778863,-0.215198}, {-0.465454,-0.433403}, {0.906855,0.653127}, {0.492398,-0.648731}, {0.945877,-1.419218}, {-0.177893,-0.646512}, {1.411359,-0.241056}, {-0.264133,-1.505842}, {-0.366946,0.985009}, {-0.128469,-0.052593}, {0.167171,-0.446152}, {0.919920,0.002816}, {0.119854,-0.960683}, {1.395234,-1.093261}, {0.264784,0.684038}, {0.136742,-0.623673}, {-1.157844,0.208610}, {-0.081146,-0.545579}, {0.129620,0.317296}, {-0.565284,0.051918}, {-0.552605,0.036032}, {0.605695,-0.026673}, {0.050425,2.453665}, {0.044827,-1.616143}, {-0.113293,0.653822}, {1.093501,2.247677}, {0.695921,-1.033199}, {0.000694,-0.086366}, {0.421101,0.539692}, {0.051940,-1.072276}, {0.040107,-0.888686}, {-0.229449,1.123220}, {1.198503,-0.862325}, {0.700102,0.555513}, {-0.119860,-0.774937}, {-0.028011,1.437656}, {1.000033,0.429811}, {0.381991,-0.471777}, {-1.061909,0.633338}, {0.795537,-0.653199}, {1.595592,-1.118207}, {-0.084673,-1.361223}, {-0.624297,0.764246}, {0.089882,1.013592}, {-0.533656,0.632749}, {0.465736,0.775404}, {-0.888801,-0.059761}, {0.523573,0.053779}, {-0.209593,0.885880}, {0.748105,0.127068}, {0.599795,-1.139121}, {-0.077588,0.842374}, {0.761840,-0.795831}, {0.709548,0.183950}, {-0.252544,0.680008}, {0.570220,0.515018}, {0.266137,-0.206870}, {-0.885632,1.679647}, {1.150557,0.483125}, {-0.468721,-1.841706}, {0.271059,0.926911}, {-0.154149,-0.322614}, {-0.329320,1.218566}, {-0.171047,-1.007784}, {0.223529,-0.505620}, {0.772175,0.801805}, {-0.341824,0.518301}, {0.968368,-1.633597}, {0.073692,-0.583842}, {-0.953372,-0.161117}, {0.551488,0.447077}, {0.020273,-0.505357}, {0.365393,-0.032102}, {0.844367,-0.639689}, {1.018752,0.751834}, {1.126097,-0.613405}, {1.016788,-0.019078}, {0.623747,0.592169}, {-1.319641,0.298078}, {-0.329394,-0.423323}, {0.364704,-0.653483}, {0.617694,-0.252054}, {-0.591705,1.619074}, {-0.161785,1.838932}, {0.564582,-0.723667}, {0.225778,0.243980}, {-0.037796,0.502040}, {0.367842,-1.021410}, {-0.427836,-0.366767}, {-0.488887,1.324747}, {0.283351,-0.475819}, {-0.368885,-0.343402}, {0.022111,-1.503025}, {0.608174,0.232807}, {0.872253,-0.186510}, {-0.550839,-0.327475}, {-0.154591,-0.267873}, {-0.747008,-0.379431}, {-0.277511,-0.951636}, {-0.759266,0.574239}, {1.154286,0.179194}, {-0.112772,-0.817203}, {0.200759,0.799191}, {-0.502025,0.432883}, {-1.119323,-0.074693}, {1.254542,0.141465}, {0.080510,0.266965}, {1.402806,0.382574}, {0.817240,-0.115142}, {0.507720,0.176294}, {0.210651,-0.143840}, {-0.689945,1.732906}, {0.235579,-0.641823}, {0.851720,-0.271216}, {-0.214092,-1.383215}, {1.260678,-0.375676}, {-0.342547,0.300925}, {0.157321,-1.216358}, {-1.291505,0.269752}, {-0.813264,0.966839}, {0.385009,-0.966745}, {0.048812,0.037934}, {0.157922,0.072546}, {0.136019,-0.636157}, {-1.131118,0.701695}, {0.057882,0.542163}, {-0.289670,-0.556624}, {0.296565,0.901636}, {0.811896,0.152258}, {0.071886,-0.310387}, {0.248307,-1.423973}, {-0.077694,-0.208889}, {0.351881,-0.374276}, {-1.108993,0.435304}, {0.689461,-0.661618}, {-0.847280,0.417742}, {-0.693780,-0.030547}, {0.205481,0.163966}, {1.152296,0.501315}, {0.421218,-0.000555}, {-0.796311,0.281834}, {-0.269010,1.052164}, {0.133541,-0.454531}, {-0.412860,1.370429}, {0.616688,0.124832}, {0.702940,-1.203623}, {0.675882,-0.390202}, {0.830890,1.250459}, {0.674844,0.665324}, {-0.043831,0.707066}, {-0.886906,-0.060713}, {0.677298,-0.111700}, {-0.754756,-0.380721}, {-0.561574,0.787921}, {-0.138727,-0.246949}, {0.399551,0.257836}, {0.391218,-0.046240}, {-0.604638,-0.547392}, {1.211615,0.045085}, {-2.243039,-0.736534}, {0.779312,0.843648}, {0.162298,0.157163}, {-0.140700,0.766237}, {-0.144998,0.378899}, {0.417087,0.656509}, {-0.663537,0.226287}, {0.623830,0.333788}, {2.231783,0.374867}, {0.734099,0.049999}, {1.036979,-0.688127}, {-1.040401,-0.707128}, {0.381121,-0.100134}, {1.359817,-0.400703}, {-0.552157,-1.396689}, {0.259124,-0.224525}, {-0.273705,-0.347394}, {-0.409249,0.216952}, {-0.216934,-0.899068}, {-0.235146,0.030945}, {-0.889038,0.360220}, {-0.157354,0.100057}, {-0.036127,-0.499812}, {-0.348823,0.151622}, {0.279825,-0.589387}, {-0.933342,0.643324}, {0.555767,-0.017369}, {-0.011276,-0.013992}, {-0.434804,0.253158}, {0.675855,-0.224374}, {-0.805744,0.659219}, {0.808692,0.008962}, {0.397507,-1.041463}, {-0.127428,-0.570829}, {-0.029020,-0.201817}, {-1.009712,-0.877845}, {-1.216129,0.783185}, {0.328932,-0.747150}, {-0.854801,-0.178626}, {-0.785073,-1.023245}, {0.788804,0.147804}, {-0.654940,0.835733}, {1.194529,0.469089}, {-0.435047,-0.112630}, {-0.398296,0.298359}, {0.614442,-0.831401}, {0.898647,1.252811}, {-0.651719,0.063096}, {0.829332,-0.130964}, {-0.644862,0.485383}, {0.099189,-1.241679}, {0.232553,-1.087991}, {0.827992,0.327188}, {0.251847,-0.542311}, {0.114473,0.172203}, {-0.607207,-0.449144}, {-0.376521,0.290727}, {-0.132065,0.363772}, {0.435356,-0.571154}, {-0.190653,0.248960}, {0.651496,-0.923586}, {0.512997,-0.004873}, {-0.236174,-0.568753}, {0.932160,-1.334080}, {0.155451,0.672475}, {-0.911918,-0.030052}, {0.263176,0.406002}, {0.304970,-0.011967}, {-0.410390,-0.330155}, {-0.141643,0.047151}, {-0.172968,-1.012272}, {-0.372838,0.560728}, {-0.855840,0.042006}, {-0.164063,0.636134}, {-1.109047,-0.279656}, {-0.069774,-0.604646}, {-0.282135,-0.394121}, {0.176084,0.052311}, {0.487541,-0.565642}, {-0.208335,0.518275}, {-0.149021,-0.363198}, {-0.249631,-0.090729}, {-0.249841,-0.596483}, {0.640211,-0.976106}, {0.326645,0.866942}, {1.183765,0.830576}, {-0.029594,-0.620946}, {1.115148,-0.337932}, {1.567311,0.261972}, {-0.721293,-0.564232}, {-0.357507,0.803439}, {-1.016735,-0.027591}, {-0.426745,1.104032}, {0.443712,1.244449}, {1.160755,-0.838377}, {-0.819387,-0.128786}, {0.288092,0.008755}, {-0.515644,0.101036}, {0.364482,-0.130023}, {-0.229438,-0.654899}, {0.906635,-0.125711}, {-0.159322,-0.304040}, {-1.211824,0.158356}, {-0.012123,-0.488427}, {-0.426069,-0.835684}, {-0.125217,-1.170805}, {-0.270562,0.000386}, {0.623183,-0.945317}, {0.848419,-0.522606}, {1.250635,0.444407}, {0.492130,1.050228}, {1.080375,-0.338691}, {-0.764704,-1.279899}, {0.741656,0.485046}, {0.956357,-1.023715}, {-0.247405,-0.820810}, {-0.149085,-0.107801}, {-0.570624,1.043465}, {-0.115018,-0.641550}, {-0.616512,-0.289516}, {1.176485,-0.172412}, {-0.362269,1.717443}, {-0.817064,-0.370700}, {-0.465179,0.259246}, {-0.642608,0.664244}, {0.747615,0.390002}, {-1.838046,-0.673345}, {-0.071150,-0.063051}, {0.124401,-0.037791}, {0.721531,-0.349121}, {0.948579,-0.683095}, {-0.296344,-1.657454}, {-0.244777,-0.050854}, {-0.355675,-0.088336}, {0.834088,-0.200241}, {-1.139669,0.315556}, {-0.080632,-0.198803}, {-0.187648,0.739006}, {0.609210,-1.146719}, {0.133987,0.472373}, {1.301981,-0.658052}, {0.148344,0.175711}, {0.482189,-1.298825}, {-0.666823,-0.399625}, {0.067421,-0.725454}, {-0.052146,-0.168842}, {0.332959,0.334690}, {-1.054764,0.239030}, {-0.165250,-0.447066}, {-0.428016,1.320568}, {0.510212,0.318306}, {0.451920,0.645015}, {1.606643,0.236357}, {0.230974,0.123761}, {-0.049062,0.112286}, {0.479037,0.015434}, {-0.287389,0.872496}, {1.067029,0.499731}, {-0.126337,0.779721}, {-0.370434,0.612051}, {0.075632,0.614917}, {-0.528660,-0.850174}, {0.487266,-0.590261}, {-0.234836,0.263938}, {-0.065654,2.081570}, {-0.636267,-0.906258}, {-0.803871,0.321421}, {-0.328638,0.333370}, {-0.516140,0.175497}, {0.347902,-0.402807}, {0.411276,0.362019}, {0.440469,0.412853}, {1.107078,-0.338276}, {0.856038,-0.131811}, {-0.369578,0.324333}, {0.516267,0.144410}, {-0.706354,-0.923046}, {1.199280,-0.679079}, {-0.206381,0.733361}, {-1.118980,-0.339299}, {0.249695,1.301003}, {-0.001465,1.070052}, {-0.888923,-0.187516}, {0.810337,0.313939}, {0.305196,0.026000}, {0.494726,1.024847}, {1.476541,-0.802107}, {-0.526713,0.266385}, {0.384008,-0.961735}, {1.282973,-0.698481}, {0.988486,0.038408}, {-0.219075,-1.024923}, {-0.466889,0.255891}, {0.003917,0.530058}, {-0.767964,-0.385498}, {-0.377691,0.462312}, {0.026027,-1.093603}, {-0.458202,0.027801}, {0.806314,-0.293232}, {0.050386,0.705391}, {0.738212,0.099567}, {1.685787,0.176921}, {-0.892685,-0.318613}, {1.109295,-0.356620}, {-0.037037,-0.399946}, {1.099257,0.066189}, {-0.138197,0.931202}, {0.352476,0.541835}, {-0.234773,1.811281}, {0.220325,1.006277}, {1.183808,0.818720}, {0.412037,-0.266925}, {-0.046189,0.101378}, {-0.525259,0.184060}, {0.223098,-0.866883}, {0.759485,1.089619}, {-0.645569,0.593185}, {-0.363564,-0.111653}, {-0.760729,0.424275}, {-0.173270,0.825271}, {-0.893186,0.404038}, {0.757566,0.583220}, {-0.256129,-0.077900}, {0.284986,0.630869}, {0.664454,0.481663}, {0.119009,0.113249}, {-0.205947,1.010834}, {0.932543,-0.060003}, {0.274266,-0.406043}, {-0.247609,0.396317}, {-0.442815,0.120444}, {-1.305720,0.295270}, {0.936322,0.968362}, {-0.571598,-0.407698}, {-0.392774,-0.484139}, {0.822763,0.339368}, {-0.517289,0.041135}, {0.147543,-0.792703}, {-1.670020,0.099579}, {-0.299869,-0.266431}, {0.605640,-0.814238}, {1.222721,1.050723}, {-0.467391,-0.124769}, {-0.575869,0.609053}, {1.713472,0.570511}, {0.042960,-1.006402}, {1.239476,-0.082176}, {0.378559,-0.955065}, {-0.165652,0.451352}, {0.429384,-0.053004}, {-0.244308,1.056232}, {0.830270,-0.183125}, {-0.600558,-1.360258}, {0.171056,-0.003685}, {0.839484,0.430587}, {-0.553197,-1.112661}, {0.472149,1.241828}, {0.428034,0.237235}, {0.611704,-0.377012}, {-0.231170,-0.306880}, {0.087621,0.844398}, {1.390622,0.674419}, {0.387463,-0.353450}, {-0.150300,0.730488}, {-1.062157,0.504289}, {-0.531514,0.020223}, {0.128882,-0.065820}, {0.331307,0.862964}, {-0.725060,0.793610}, {0.668800,-2.340218}, {0.306622,0.510434}, {-0.240424,0.483310}, {0.755874,-0.307130}, {0.307453,-0.534037}, {-0.260084,-0.957092}, {0.030535,-0.356006}, {0.063740,0.338408}, {0.137347,0.408912}, {0.071998,-0.512812}, {-0.816655,0.667604}, {0.206418,0.459734}, {-0.199134,-1.021477}, {-0.027864,-0.229509}, {0.029766,0.406308}, {0.263539,0.950641}, {1.107474,0.510104}, {0.701356,-0.092664}, {-0.332519,0.882492}, {-0.259295,0.542719}, {0.803323,-0.516191}, {-0.810940,0.828519}, {-0.333099,0.493898}, {0.803446,0.041317}, {-0.752852,-0.397360}, {-0.508714,-0.341192}, {-0.998590,0.444147}, {0.540311,0.590371}, {0.352505,-0.284619}, {-0.330681,0.699920}, {-0.428966,0.610587}, {-1.333091,-0.297171}, {0.345433,-0.821063}, {0.993852,0.062134}, {0.729285,0.480559}, {-0.038753,-0.071297}, {-0.388438,-0.398816}, {-0.746620,-0.076653}, {0.345309,0.817757}, {0.769405,-0.063687}, {0.092044,-0.442898}, {1.029397,-0.869702}, {0.832081,0.437601}, {-0.374608,-0.269611}, {-0.728890,-1.033769}, {-0.207543,1.059676}, {0.140337,0.321861}, {-0.268235,0.376937}, {0.554032,-1.522496}, {0.302898,1.115891}, {-0.566679,1.087246}, {0.209126,-0.299056}, {0.183449,-0.446472}, {0.769257,1.156924}, {-0.426186,-0.534314}, {1.357257,-0.027091}, {0.125598,-0.148277}, {0.361150,-0.612232}, {0.733645,-0.215266}, {-0.599140,-0.087500}, {0.364386,-0.379064}, {0.106744,0.427322}, {0.244401,-0.090466}, {-0.086618,0.290300}, {-0.769588,1.227312}, {0.410929,0.406906}, {0.033896,-0.301329}, {1.368098,-1.264228}, {0.265425,0.246094}, {-1.089731,0.655995}, {-0.959035,-0.323536}, {-0.177452,0.299655}, {-1.085650,0.751856}, {-0.934940,-0.467314}, {0.157832,-1.370121}, {-0.756801,1.174560}, {-0.238213,1.484015}, {0.103337,0.562886}, {-0.883352,-0.457006}, {-0.619941,-0.072602}, {0.827989,-0.576543}, {-0.274512,0.688768}, {0.192892,0.046977}, {0.494114,-1.198486}, {0.210812,-1.483980}, {0.068552,-0.412908}, {0.768963,0.512225}, {0.887015,-0.416106}, {0.069268,-0.161404}, {1.158016,0.428234}, {1.414889,0.177849}, {-0.043316,-0.734135}, {1.519925,-0.641341}, {-0.954973,-0.096053}, {-0.627640,0.832967}, {-0.128482,0.227255}, {0.096457,-0.172163}, {-1.188885,0.383040}, {-0.636699,0.641324}, {0.760031,-0.811875}, {-0.020737,0.443516}, {0.457384,-0.365880}, {-0.876749,1.149372}, {0.295054,0.679878}, {0.023256,0.103668}, {-0.327805,-0.125698}, {0.020041,0.216254}, {-0.306899,-0.187019}, {1.085265,0.158704}, {-0.145690,-0.394788}, {0.338803,0.342693}, {-0.515034,-1.539775}, {-0.389804,1.336893}, {-0.094832,0.858926}, {-0.697567,-0.301372}, {0.304157,-0.457016}, {0.445920,0.840317}, {0.367189,-0.400123}, {-0.537674,0.319642}, {0.040484,0.213835}, {0.486631,0.235979}, {-0.927168,0.494577}, {0.095336,0.538537}, {-0.685255,-0.341503}, {-0.414110,0.730628}, {-0.249497,-0.384687}, {-0.381906,0.335050}, {-0.296216,0.192564}, {0.259756,0.167208}, {-0.631983,0.213763}, {-0.107557,0.031968}, {0.086282,-0.608626}, {-0.520260,-0.616549}, {-0.380245,1.375046}, {-1.355688,-0.262657}, {-1.404467,0.037742}, {0.045811,0.570009}, {-0.416171,-0.129814}, {0.370554,0.880282}, {0.719642,1.595834}, {0.056979,1.643866}, {0.509780,-0.269105}, {-0.035170,-0.008985}, {-0.380304,0.435292}, {-0.061932,0.766256}, {0.417917,0.120335}, {-1.059375,0.118735}, {0.561525,-0.136216}, {1.044780,0.316513}, {0.278741,0.285996}, {0.445276,1.914646}, {1.135214,-0.056030}, {1.552693,-0.468664}, {0.107992,0.196631}, {0.010882,-0.782850}, {0.411889,0.243120}, {1.041102,0.506174}, {-0.436580,1.011682}, {0.234764,-1.107368}, {-0.369947,-0.283590}, {0.712020,-0.042864}, {0.256171,-0.289042}, {-0.664674,-0.389437}, {0.501317,-0.199763}, {-0.233973,0.776302}, {-0.551974,-0.311394}, {-1.213793,-0.063365}, {-0.942542,0.886742}, {0.120656,-0.927157}, {0.848886,-0.191111}, {-0.085995,0.712069}, {-0.121119,0.712586}, {0.795790,0.039031}, {1.130273,-1.091505}, {-1.009660,-0.084673}, {-1.391243,1.439570}, {-0.790172,1.190427}, {-1.055203,1.031347}, {0.351972,-0.261797}, {0.309700,-0.121583}, {-1.395336,-0.368211}, {-0.242807,0.043287}, {-0.091725,1.525055}, {0.222701,-0.585086}, {-0.197990,1.109946}, {0.683433,0.234584}, {0.778488,1.031004}, {-1.728844,-0.828213}, {-0.305833,0.235194}, {0.839395,1.013991}, {-0.732283,-1.178569}, {0.751353,0.525831}, {-0.608151,-0.209578}, {-0.760489,0.909863}, {-0.941207,0.596632}, {0.113422,0.124614}, {-0.677100,-0.845145}, {-2.116992,-1.043945}, {0.443954,1.264070}, {-0.844221,-0.548022}, {0.073296,0.266820}, {0.606826,-0.308290}, {-0.142944,0.057349}, {0.072881,0.302992}, {-0.294356,-1.221644}, {0.671911,0.295323}, {-0.409702,-0.847209}, {0.266690,-0.020814}, {1.417976,0.528433}, {0.294250,-1.224903}, {-0.438673,-0.509542}, {0.044148,0.398124}, {-0.812297,-0.912451}, {-0.879513,-0.624383}, {0.758342,0.704452}, {0.563399,-1.164427}, {0.809358,-0.309169}, {-0.076009,-1.386514}, {-0.580469,0.458582}, {0.513892,0.214365}, {-0.640728,-0.171872}, {-0.521270,-0.133816}, {-0.843834,0.906054}, {-1.123661,0.041336}, {0.082797,0.087755}, {0.904721,1.160552}, {-0.238756,0.127971}, {-1.306804,0.307469}, {-0.097808,0.500074}, {-0.007891,-0.206617}, {-1.058789,-1.223922}, {-0.086817,1.141660}, {-0.672100,0.422630}, {1.107477,0.445402}, {-1.048691,0.148970}, {0.860657,-0.307406}, {-0.075900,-0.772589}, {0.085372,-0.654328}, {-0.402544,0.348887}, {0.836413,-0.212447}, {0.969845,-0.432787}, {1.678800,-0.719544}, {0.122685,0.736764}, {-0.610210,-0.231955}, {-0.602630,0.861072}, {1.689118,-0.524512}, {-0.570388,-0.710299}, {0.359182,-0.302528}, {-0.584968,0.029896}, {0.376150,-0.101358}, {0.190034,-0.895052}, {-0.083246,0.352043}, {0.488237,-0.109218}, {0.864959,-0.134808}, {-0.489859,0.046721}, {-0.285949,-0.556426}, {-0.090628,-0.144285}, {-0.407313,0.094491}, {-0.754715,0.269388}, {-0.110048,0.336987}, {-1.504402,0.827809}, {-1.144984,0.736338}, {-0.615585,-0.119038}, {-1.320089,0.799899}, {0.146051,-1.613330}, {-0.203844,1.002752}, {1.005593,-1.051012}, {0.590068,0.881226}, {1.034314,0.478533}, {-0.807146,0.527922}, {-1.431626,1.052176}, {0.254060,-0.588784}, {-0.552606,0.801991}, {0.571316,-0.099644}, {1.906518,0.779457}, {0.661004,0.688072}, {-0.848444,-0.767891}, {-0.446525,1.557097}, {0.342626,0.070643}, {1.499481,-0.562495}, {0.474748,-0.065518}, {-1.305470,0.236428}, {-0.996922,0.424136}, {0.109899,0.116446}, {-1.376289,-1.178174}, {1.094583,0.176159}, {-0.660629,0.735661}, {0.324773,-0.650471}, {-0.050363,0.168514}, {1.411432,0.431589}, {-0.841104,1.189949}, {-0.090368,0.422103}, {-0.138836,-0.227462}, {0.251194,0.456981}, {-0.456550,-1.052269}, {-0.585470,-0.733649}, {0.718189,0.069608}, {-0.215514,0.144581}, {-0.295208,-0.293870}, {0.064279,1.659733}, {-0.639890,0.107245}, {0.671313,-0.308464}, {0.171154,0.201673}, {0.530860,-0.395579}, {0.405182,0.111475}, {-1.105560,0.477897}, {-0.469701,-0.814646}, {-0.310904,-0.140531}, {0.906292,0.445761}, {0.641656,-0.711619}, {1.811121,-0.499532}, {0.544038,0.258314}, {0.240229,0.023662}, {-0.161251,-0.927410}, {0.526134,0.501783}, {-0.633589,-0.525689}, {-0.969783,1.421790}, {0.164651,-1.234975}, {-0.945772,0.158957}, {0.120218,-0.221355}, {0.234672,-0.016298}, {-0.397618,-0.661839}, {1.072883,-0.141947}, {-1.348040,0.586734}, {-0.872801,0.434857}, {-1.430760,0.165192}, {-0.636803,0.781150}, {-0.071279,0.396819}, {-0.298115,0.418331}, {0.831866,-0.535220}, {0.958718,0.633147}, {1.412960,-0.748229}, {-0.178002,-0.206609}, {-0.024151,0.915775}, {1.393923,0.405981}, {-0.206648,1.302225}, {0.259960,0.096155}, {0.842216,0.222933}, {-0.375179,0.699708}, {-1.103264,-0.776247}, {0.193353,-1.171155}, {0.205492,0.076179}, {-0.072841,-1.186499}, {-0.401707,1.760304}, {-0.205922,0.764063}, {0.028046,0.211591}, {0.009746,0.166249}, {-0.523126,0.458907}, {0.775557,-0.863099}, {0.597490,0.287191}, {1.398946,-0.443293}, {-0.610123,-1.801501}, {-0.659803,0.440813}, {-0.254009,0.206463}, {0.023678,-1.708605}, {1.336293,-1.666408}, {-0.624224,-0.008318}, {-0.391454,-0.672562}, {0.005607,0.074204}, {-0.563962,0.743411}, {-0.451022,-0.173040}, {-0.382636,0.398129}, {-0.036862,-0.079446}, {-0.008467,-2.296086}, {0.023278,1.499503}, {-0.064032,-0.525729}, {1.457191,-0.108098}, {0.321643,0.192680}, {0.121531,0.798915}, {0.925207,0.317706}, {1.826658,0.097183}, {-1.022560,0.131480}, {-0.318490,1.086323}, {-1.671511,-0.990183}, {-0.087723,1.093251}, {-0.866849,0.094690}, {0.559302,-0.868112}, {-0.607928,-1.491484}, {-0.369056,0.883585}, {-0.373229,-0.023122}, {-0.971052,0.792590}, {0.851785,-0.009613}, {-0.460853,0.096153}, {-0.755498,0.166030}, {-0.598639,-0.848533}, {0.291127,-0.247983}, {-0.829961,-1.371573}, {-0.887194,-0.038222}, {1.016759,0.265340}, {-1.203644,-0.226689}, {1.077377,0.055066}, {-0.711420,-0.799640}, {-0.952350,1.757540}, {-0.699760,-0.395833}, {0.196095,-0.452552}, {0.858758,0.082961}, {-0.102536,-0.000287}, {0.343266,-0.165811}, {-0.728940,0.271092}, {-0.365214,0.684535}, {0.216959,0.140539}, {1.180350,-0.419423}, {1.324288,-0.085228}, {0.147214,-0.477679}, {-0.340726,-0.495787}, {-1.273332,-1.550655}, {0.922246,-0.111028}, {0.801098,0.605313}, {0.636192,1.656684}, {-0.459339,0.881863}, {1.781037,0.234321}, {0.109470,0.133394}, {-0.004980,-0.810822}, {0.908525,-0.163045}, {-0.974477,0.323659}, {-0.048603,-0.036304}, {0.325440,-0.342764}, {-0.337570,-1.092254}, {0.903449,-0.284129}, {-0.513390,0.181617}, {-0.906126,0.669673}, {-0.047735,-0.670418}, {0.017003,0.589952}, {0.028141,0.768896}, {-0.578796,0.026764}, {0.153556,-1.036369}, {1.736299,0.027607}, {0.207225,-0.621084}, {0.705813,0.683555}, {0.613738,-0.279927}, {0.893509,-0.452908}, {0.636020,-0.005940}, {-0.658270,-0.311733}, {-0.134504,0.070080}, {1.042131,0.291936}, {-1.287365,0.847615}, {-0.003671,0.744938}, {1.467651,0.342594}, {0.428411,0.563561}, {-0.684351,0.323237}, {-1.151725,-1.138706}, {-0.979643,-0.060294}, {-0.950965,1.226894}, {0.275188,1.399455}, {1.059926,-0.504133}, {1.403033,-0.687512}, {0.451808,-0.267527}, {0.287162,0.469132}, {0.667303,-0.852516}, {-0.817966,0.656727}, {-0.610009,-1.209200}, {-0.303650,-0.565971}, {0.794594,-0.236306}, {0.431590,-0.908313}, {-0.486556,-0.148481}, {0.047972,-0.563498}, {0.402585,-0.280605}, {-0.378654,1.233252}, {0.353901,-0.875133}, {0.422729,0.132703}, {0.856809,1.362334}, {-0.307263,-1.011948}, {-0.301736,0.329660}, {-1.085452,0.606158}, {0.652982,-0.949242}, {0.162631,-0.537617}, {-0.965026,-0.836121}, {-0.224588,-0.548422}, {-0.437774,-0.279190}, {0.115997,1.282330}, {-0.897054,-0.047287}, {-0.798308,0.372153}, {0.665938,-0.055502}, {-0.287413,-0.908496}, {0.678644,1.314557}, {-1.449310,1.522950}, {0.133398,-0.047658}, {1.224299,-0.149895}, {0.441690,-0.259865}, {0.126046,0.235240}, {-0.966749,-0.417786}, {-0.246070,0.437277}, {-0.513593,0.459173}, {1.263919,0.212954}, {-0.627105,0.099150}, {-0.594187,1.118584}, {0.080869,0.148184}, {0.706184,0.093108}, {-0.250103,0.904912}, {-0.085195,0.370800}, {-0.081942,1.186957}, {-0.296313,0.398278}, {0.107458,-0.270042}, {-1.468816,0.286041}, {-0.248786,-0.194616}, {-0.839973,0.355437}, {-0.683425,-0.178796}, {-0.338075,-0.537129}, {-0.036752,-0.461836}, {-1.024372,-0.805341}, {0.013059,0.294161}, {0.921884,0.535430}, {-1.007252,1.557665}, {0.542827,-0.917693}, {0.309396,0.368338}, {1.457432,-0.177952}, {0.233876,-1.087922}, {-0.287049,-0.480668}, {-2.620387,0.600910}, {1.326669,-0.917157}, {0.401335,0.923110}, {0.162796,1.157234}, {0.041788,-0.014345}, {0.072941,-0.425285}, {-0.560475,0.764890}, {0.016479,0.416079}, {0.097405,0.248996}, {0.019340,-0.636057}, {-0.744067,0.747826}, {0.245503,0.206129}, {-0.143130,-0.092267}, {-0.030139,-0.746082}, {-0.340620,-0.172249}, {0.574330,0.097636}, {0.705237,1.038887}, {0.036829,-1.428994}, {-0.385480,1.221082}, {0.367570,-0.573062}, {0.850865,-0.205763}, {-1.330905,0.354961}, {-1.307074,-0.343509}, {-0.957751,-0.442580}, {-0.409731,0.243503}, {0.567889,-0.604233}, {0.388103,0.085991}, {0.040627,-0.011142}, {0.077060,2.004945}, {-0.833086,-0.049453}, {-0.843774,-0.478384}, {0.372355,-0.792844}, {-0.234287,0.672964}, {0.107062,-0.502565}, {-1.135028,0.280502}, {0.638347,0.034212}, {-0.199093,-0.238458}, {0.782282,1.017529}, {1.389149,0.234737}, {-0.823454,-0.341639}, {0.651162,0.121302}, {0.653624,0.783446}, {0.352699,-0.207281}, {1.238071,-0.754767}, {-0.238806,0.128663}, {0.262681,0.361327}, {0.509025,-0.603024}, {0.981913,-0.189391}, {-0.706196,-0.289371}, {1.145942,0.153677}, {-0.907823,-1.129337}, {0.188763,0.623059}, {-0.207448,0.309242}, {-1.436932,-0.449519}, {0.263175,0.540244}, {-0.483092,-0.058570}, {0.397371,0.753641}, {0.644110,0.798701}, {-0.237872,-0.334731}, {0.600366,-0.897091}, {0.710538,-0.133366}, {-1.516116,0.488503}, {-0.939188,0.418730}, {-0.827630,-1.305309}, {0.991499,-0.948166}, {-0.499176,-0.031343}, {0.451127,0.527453}, {-0.546957,-0.430328}, {0.946791,-0.178838}, {1.094307,-0.154938}, {0.609540,-0.054620}, {0.425711,0.862792}, {1.052342,-0.544269}, {0.017746,0.359976}, {0.075115,-0.401081}, {0.374648,1.155752}, {-0.461745,0.439978}, {0.047619,-0.886710}, {-0.099683,0.583548}, {-0.334765,0.050996}, {-0.478206,-1.264766}, {0.516489,0.865504}, {0.320340,-0.267298}, {-1.324292,0.440493}, {-0.710460,-0.206828}, {-0.884704,0.660258}, {-0.262272,0.394818}, {-1.601370,0.444466}, {-0.040487,1.753595}, {0.449335,0.513686}, {-0.558298,0.133991}, {-1.303113,-0.149324}, {-0.640885,0.046974}, {-0.069325,-1.365680}, {0.608970,0.076633}, {-0.606595,1.106964}, {-1.357901,-0.599083}, {0.171158,-0.825277}, {-0.169345,1.197084}, {0.952399,-0.276599}, {-1.216459,-1.814032}, {0.336292,-0.361441}, {-0.391223,0.027209}, {-0.888571,1.002162}, {0.433612,0.093511}, {-0.367321,1.307070}, {0.857512,-0.309022}, {0.552752,-0.380307}, {-0.133756,-0.251153}, {-0.076031,0.670133}, {0.150394,0.146506}, {-0.499016,0.809971}, {-0.790913,0.740662}, {-1.123231,-1.005292}, {0.580124,0.208377}, {-0.466913,0.115610}, {1.579526,0.786724}, {0.463652,0.545059}, {0.363065,-0.468610}, {0.052198,0.530309}, {-0.533674,1.126832}, {0.055098,1.460855}, {0.446183,-0.620585}, {0.061081,-0.558367}, {0.602677,1.026030}, {-0.214633,0.288994}, {-0.885402,-0.515751}, {0.666543,0.166763}, {-0.582033,-0.122415}, {0.363257,-0.093152}, {0.197198,0.114842}, {0.406922,1.065118}, {-0.242795,0.181694}, {1.181767,0.889092}, {0.397062,-0.428570}, {-1.448884,-0.474985}, {-0.309184,-0.467696}, {0.137783,2.027669}, {0.474842,-0.884960}, {-1.661712,0.148843}, {-0.069285,-0.320696}, {-0.170034,1.251510}, {-0.222496,-0.937833}, {-0.311250,-0.485117}, {-0.383917,-0.251372}, {-0.320437,-0.642387}, {0.206323,-0.019793}, {-0.278823,-0.242762}, {0.680746,-0.243103}, {-0.567863,-0.748655}, {-0.323796,-0.790379}, {0.524243,-1.175681}, {-0.397445,-0.523772}, {-0.474692,-0.477136}, {0.189023,0.966859}, {0.386555,0.481977}, {-0.140878,-0.911496}, {0.406182,-0.015365}, {0.102477,-0.746348}, {0.090930,-0.614517}, {-0.086082,-0.376112}, {0.370291,1.207642}, {1.139898,0.217497}, {-0.610672,0.245983}, {-0.174618,0.833632}, {-0.831968,0.195580}, {-0.757329,-0.178189}, {-0.452875,0.648865}, {-0.050510,-0.011244}, {0.607291,0.053154}, {-0.511124,0.651127}, {1.482337,-0.900918}, {-0.703173,0.311134}, {-0.814727,0.000269}, {-0.500544,-0.108025}, {-0.986775,-1.061037}, {0.121914,-0.452219}, {-0.442473,1.026816}, {0.763792,1.515099}, {0.623316,0.417977}, {-0.212855,0.306216}, {-0.561318,-0.795493}, {0.576698,0.693102}, {0.061154,1.127743}, {-0.887248,-0.434093}, {0.400682,-0.310835}, {0.432078,0.437754}, {-1.820646,-0.665382}, {-0.545136,-0.481289}, {0.400912,0.700684}, {0.137771,0.590814}, {0.811931,1.048663}, {-0.815412,-0.744414}, {-0.182987,0.208578}, {-0.481622,-0.883622}, {-1.174057,0.017304}, {0.762922,0.651641}, {-0.225956,0.405115}, {0.170487,0.754648}, {-0.324751,-0.699111}, {0.508982,0.579276}, {-0.217381,0.280138}, {-0.164204,0.071186}, {1.046480,-0.151789}, {-0.407525,0.236215}, {0.043528,0.503335}, {-0.422499,0.544007}, {0.737522,-1.360706}, {1.348720,0.519788}, {-0.879691,0.405074}, {-0.357675,0.687248}, {-0.860730,-0.689677}, {-1.748928,-1.078704}, {-0.195426,-1.049862}, {-0.035495,-0.350232}, {1.033713,-0.030587}, {0.800092,-0.110899}, {-0.305951,0.274492}, {-0.832381,-0.825501}, {1.297737,0.530891}, {-0.024356,0.967573}, {-0.449962,1.296328}, {0.341683,-0.869522}, {-1.470761,0.197663}, {-0.936318,-1.271953}, {0.048144,-0.615236}, {0.378908,0.844420}, {0.461083,-0.366872}, {0.047960,0.407828}, {-0.840079,-1.095449}, {-0.027915,1.084483}, {0.674601,0.522046}, {1.931610,0.765981}, {-0.125784,-0.336877}, {0.019115,-1.481554}, {0.820840,-0.447176}, {0.707047,0.929830}, {0.958282,-0.396113}, {-0.580240,0.094636}, {-0.174754,-1.196160}, {-0.860568,-0.091731}, {0.523920,-0.030573}, {0.274479,-0.049813}, {0.153459,0.249274}, {0.533358,0.444977}, {-1.241255,0.245974}, {-1.012174,-0.027701}, {-0.395522,-0.193917}, {-0.972526,0.180350}, {0.430804,-0.833766}, {-1.011518,0.292716}, {0.207684,-0.205800}, {0.044858,0.152791}, {0.448157,-0.030646}, {-0.499634,-0.262260}, {-0.143806,-1.010803}, {0.886031,-0.336787}, {-0.362530,-1.768263}, {-0.242831,-0.154468}, {0.734717,0.111474}, {0.072613,0.508828}, {-1.899793,0.301018}, {0.090072,0.247977}, {1.285664,0.732956}, {-0.135188,0.142834}, {1.273538,-0.920904}, {0.221604,0.753942}, {0.117900,1.060812}, {-0.232774,-0.083558}, {-0.425926,0.686408}, {-0.340529,-0.169042}, {-1.070367,-0.239810}, {0.173529,-0.065984}, {-0.933640,0.004310}, {-0.566267,1.379593}, {0.734686,-0.766672}, {-0.413294,0.709294}, {0.595004,-1.135705}, {0.718267,-0.281773}, {0.106468,-0.863281}, {-1.145502,0.206171}, {0.887536,-0.242405}, {-0.075956,0.156573}, {-0.567216,-0.288216}, {0.664645,-0.362856}, {0.547459,-1.799647}, {-0.241719,0.821927}, {-0.034155,0.250263}, {-0.046388,-0.235086}, {0.419359,0.310763}, {-0.215888,-1.367215}, {0.034387,1.044299}, {-0.358005,0.645426}, {0.326152,0.748784}, {0.202163,-1.123275}, {0.690767,-0.848466}, {-0.125006,-0.255902}, {0.162892,-0.345699}, {-0.955042,0.294080}, {0.083320,1.880625}, {-1.198282,0.804137}, {0.587054,-0.958859}, {-1.601116,-0.725511}, {1.139292,-0.045379}, {0.203917,0.685789}, {-0.493037,0.458789}, {-0.031010,-0.106568}, {-0.429805,1.119367}, {-0.528015,0.735593}, {-0.134197,-1.255463}, {-0.448291,-0.262008}, {-0.050223,0.690944}, {-0.326287,0.961302}, {0.124462,-0.571389}, {-1.086006,0.724509}, {0.209547,1.056945}, {-1.293691,0.471514}, {-0.003896,0.567797}, {0.183588,-0.440099}, {0.728438,-0.316034}, {0.626752,-0.654537}, {-0.323843,-0.581490}, {-0.584120,1.235448}, {-0.724753,-0.357822}, {0.651802,-0.255045}, {1.066699,0.145706}, {-0.327084,-0.703887}, {0.726433,0.902326}, {0.615929,-0.468777}, {0.215638,0.025393}, {0.133688,0.312972}, {1.480107,0.472599}, {-0.422097,-0.160696}, {-0.044013,-0.556906}, {0.614888,-0.377907}, {-0.064303,-0.363883}, {0.417722,0.242693}, {-0.610622,-0.349784}, {0.274353,1.229638}, {1.376876,-0.661918}, {0.065799,0.192942}, {-0.985618,1.632529}, {0.007131,-0.681075}, {0.034166,-0.337426}, {-0.725304,-0.279474}, {-0.730621,-0.266983}, {-0.843057,0.478930}, {0.474710,-0.454256}, {-0.507851,-1.321088}, {-0.017476,-0.794130}, {-1.038323,0.066833}, {0.385382,1.225797}, {0.021934,-0.410591}, {-1.010484,-0.669754}, {0.429793,1.532827}, {0.636827,-0.288977}, {-0.534265,-0.646029}, {-0.844287,-0.564450}, {-0.396490,0.315667}, {-1.273186,0.218433}, {0.417662,-0.018864}, {0.462506,-1.253567}, {-0.182622,-0.273477}, {-1.579637,0.949574}, {0.433213,-0.037784}, {-0.846671,0.082560}, {0.662308,0.650516}, {0.045595,-0.496667}, {0.119091,0.014749}, {0.608458,0.837623}, {-0.687084,-0.195381}, {-0.018589,0.789815}, {-0.298420,0.261702}, {-0.040271,-0.194730}, {0.620631,0.613639}, {-0.937617,-1.049478}, {-1.053561,-0.076996}, {-0.146382,1.050599}, {-0.020837,0.355688}, {0.201458,0.287587}, {2.218790,0.476933}, {-0.104763,0.355760}, {-0.479467,1.109721}, {-0.893756,-0.550251}, {0.956522,-0.432295}, {-0.194464,0.764093}, {-0.704136,0.235401}, {-0.654628,-0.706623}, {-0.493649,-1.139754}, {1.131061,-0.875211}, {0.422646,0.452794}, {1.210811,0.230644}, {0.529746,1.430776}, {0.460853,-0.100968}, {0.145607,0.417836}, {-0.183425,0.671501}, {0.712047,0.585763}, {0.667523,0.427398}, {0.083714,0.241186}, {0.603047,-0.437378}, {0.671836,-0.108031}, {0.147556,1.611462}, {-0.474514,0.338308}, {0.669331,-0.582147}, {-0.518075,-1.063090}, {-0.404972,1.037375}, {0.392642,0.132706}, {0.091281,-0.677244}, {-0.101493,0.595298}, {-0.273278,-0.149243}, {-0.056904,0.119955}, {-1.155884,-1.080464}, {-0.068053,-0.148710}, {0.578176,0.409176}, {0.840193,0.143279}, {-0.240609,-0.502595}, {-1.242000,-0.441204}, {1.109439,0.606569}, {0.055563,-0.064248}, {-0.149710,0.672466}, {0.726856,-0.310854}, {-0.653160,-0.652705}, {0.278598,0.458304}, {1.079266,0.059011}, {-1.419938,0.322182}, {0.945599,0.108086}, {-0.751556,0.294139}, {0.427620,0.212390}, {-0.069527,0.242822}, {0.278856,-0.156601}, {-0.065200,0.118212}, {-0.195535,-0.019769}, {-0.420603,-0.282551}, {-0.907453,0.158124}, {0.113203,-0.260452}, {0.108842,-0.457941}, {0.325193,0.172876}, {0.291742,-1.615476}, {1.111341,0.223062}, {0.355686,0.290422}, {0.634955,-0.443257}, {-0.288282,-0.326955}, {0.392507,-0.445702}, {-0.079780,-0.200318}, {0.358629,0.085606}, {-1.037372,0.489174}, {-0.650397,-0.686827}, {1.025516,-1.009867}, {0.704492,-0.014842}, {-1.937672,0.038744}, {1.043168,-0.182518}, {0.767195,1.172210}, {-0.973759,0.495782}, {0.727765,-0.454134}, {-0.463311,0.027464}, {0.461195,0.676168}, {0.563002,-0.443334}, {0.837410,1.297797}, {0.530937,0.527558}, {-0.207558,1.073655}, {0.017685,-0.129331}, {-0.434984,-0.756967}, {1.186167,0.330663}, {-0.494215,-0.229928}, {-1.967930,0.423566}, {0.085717,0.490676}, {0.579028,0.081474}, {-1.165809,1.066751}, {0.155616,-0.207882}, {0.824000,0.024005}, {-0.650314,-0.289259}, {0.289677,0.562463}, {0.084380,-0.741257}, {-0.185975,-1.002760}, {-0.258544,-1.231110}, {-0.680721,-0.132215}, {-0.126178,-0.346100}, {0.059501,-0.556818}, {0.257426,0.740194}, {0.209590,0.920746}, {0.278486,0.751635}, {-0.266518,-0.406470}, {0.747083,0.368274}, {0.361351,1.035953}, {0.730710,0.834248}, {-0.629610,-0.456521}, {-1.063318,0.238140}, {-0.239986,0.455673}, {0.045907,1.094522}, {-0.098907,-1.444712}, {0.346836,-0.959861}, {-0.120778,-0.989386}, {0.411690,0.088654}, {-0.269997,0.408287}, {0.840135,-0.066117}, {-0.488370,1.718434}, {0.875784,1.132982}, {-0.423667,-0.074866}, {0.406809,-1.179861}, {0.214059,-0.303153}, {-0.302193,1.101238}, {0.868983,-0.955911}, {-0.507030,-0.093825}, {0.906214,0.198565}, {-1.340024,0.138617}, {-0.383054,-0.069114}, {-0.486159,-0.087876}, {-0.469249,0.620882}, {-0.278926,0.596592}, {-1.669627,0.194691}, {0.742352,-0.614247}, {0.718457,-1.097553}, {-1.226771,0.059541}, {-0.753392,-1.289320}, {-0.209317,-0.130344}, {0.481910,0.355924}, {-0.316461,0.620936}, {-1.244952,-0.290661}, {0.215579,-0.017983}, {-0.469612,-0.348379}, {-1.275008,0.509724}, {-0.522839,0.762522}, {1.326882,0.479414}, {0.226020,-0.210263}, {-1.179333,-0.508178}, {-0.818269,-0.304733}, {-0.173224,-0.439298}, {-0.536131,0.998854}, {0.607704,0.360449}, {0.006800,1.240915}, {-0.835128,-0.346159}, {0.147648,0.135792}, {-0.724952,-0.728993}, {0.387685,-0.535468}, {0.119265,0.577041}, {0.496673,-0.247011}, {-0.506871,0.140888}, {-0.556531,-0.131979}, {-0.286395,0.267888}, {-1.535815,0.901937}, {-0.025959,-0.061265}, {0.571857,0.076721}, {0.378659,-1.266500}, {0.474031,-1.498596}, {-0.010007,0.157154}, {1.036847,0.749449}, {1.036444,0.841654}, {0.548594,-0.632059}, {0.368966,-1.003432}, {0.570837,-0.124028}, {0.341200,0.495283}, {1.122887,0.046649}, {0.748775,-0.646888}, {0.114935,0.407391}, {0.016391,-1.068782}, {0.276187,0.082486}, {0.328695,-0.203988}, {-0.955191,-0.006992}, {-0.954723,0.976115}, {0.130024,0.006814}, {1.178728,-1.134652}, {-0.280919,1.145315}, {-0.074035,-0.138700}, {-0.885872,-0.173488}, {-0.052446,0.391385}, {0.061407,-0.036012}, {-0.178374,0.207062}, {1.539364,-0.706954}, {0.683015,-0.203145}, {0.214058,-0.228743}, {0.816114,-0.336901}, {1.083669,0.601556}, {0.243885,0.366600}, {-0.376040,0.342849}, {0.049959,-0.020917}, {-0.249481,1.559691}, {0.260203,0.448585}, {0.400041,0.204926}, {0.103935,-0.828622}, {-1.743587,-0.564881}, {1.227175,-0.006252}, {0.517290,0.681785}, {0.041937,-1.277299}, {0.884991,1.022953}, {-0.395354,0.177096}, {0.659057,-0.417478}, {-1.433312,-1.086898}, {-0.307188,0.459477}, {1.083389,-0.395616}, {0.931207,-0.529729}, {-0.691098,-0.682569}, {-0.107824,-0.121179}, {0.162237,0.278125}, {-0.187331,-0.078223}, {0.539435,-0.468066}, {-0.037026,-0.169309}, {-0.032828,0.774350}, {1.004977,0.207932}, {-1.375620,-0.465708}, {-0.853797,-0.492372}, {0.857050,-0.067048}, {-1.358066,-0.056983}, {0.205638,0.517628}, {0.134978,-1.457460}, {-0.628057,-0.198079}, {1.020819,0.168767}, {-0.660697,0.430602}, {-1.207856,0.350159}, {0.211552,0.334102}, {1.569613,0.644036}, {0.625801,-0.806877}, {0.753956,-0.280829}, {0.800271,0.796731}, {-0.157847,0.366712}, {-0.520191,-0.177564}, {-1.880639,0.111041}, {0.565178,-0.025211}, {0.867760,0.267054}, {-1.699681,0.127302}, {0.925459,0.105993}, {-0.381951,-0.290209}, {-0.008579,-0.672418}, {-0.226066,0.111930}, {-0.511046,-0.180645}, {-0.150570,-0.920002}, {0.456257,1.157604}, {0.285512,-0.521834}, {0.197973,0.250159}, {-0.574980,-1.048345}, {0.065042,0.539600}, {-0.080347,0.440878}, {0.334152,1.807252}, {0.870739,-0.406652}, {0.176466,0.116783}, {-0.373632,-0.833253}, {-0.411070,-0.622612}, {0.490742,0.472114}, {-0.144185,0.440259}, {-0.911075,1.395547}, {-0.963359,0.070059}, {0.472861,0.954686}, {0.144494,0.457410}, {0.724328,0.010123}, {1.405964,0.660263}, {0.629468,-1.148403}, {-0.365955,0.044107}, {1.302156,-0.349987}, {0.559796,0.286848}, {-1.408563,1.083378}, {0.176937,0.040345}, {-0.339737,-1.036991}, {-0.000428,0.120110}, {0.174082,-0.440745}, {-0.812662,0.308663}, {-0.344535,0.731337}, {-0.687735,-0.481504}, {-0.167853,0.616992}, {-0.032443,-0.661320}, {-0.744886,-0.239760}, {0.372373,0.085475}, {-1.440036,0.895442}, {-0.277006,-0.398549}, {-0.370569,-0.322067}, {0.103481,-0.007568}, {-0.106426,0.323058}, {-0.483987,-0.268954}, {0.292168,0.040605}, {0.074066,0.134120}, {0.153317,-1.287651}, {-1.203918,-0.967637}, {-0.317271,0.386501}, {0.954049,-0.099558}, {0.462192,-0.061542}, {-0.062967,0.369906}, {-0.884488,0.712304}, {0.186711,-0.348097}, {-0.352553,-1.659383}, {-0.486478,-1.015527}, {0.251005,0.060654}, {-0.383225,0.840563}, {-0.808342,-0.888829}, {-0.227572,0.129202}, {-0.314270,-0.775019}, {-1.545768,-0.570873}, {0.545677,0.182432}, {0.081540,-0.429030}, {-0.106779,-0.216418}, {0.450044,0.045841}, {0.905832,-0.902027}, {0.457874,-0.063177}, {0.116610,-0.016288}, {-1.167063,0.372052}, {0.982923,-0.259440}, {-0.922239,0.212051}, {-0.529454,-0.435260}, {-0.213398,0.659482}, {0.235217,-0.582746}, {0.622280,0.032259}, {0.593666,0.351868}, {-0.873997,-0.448480}, {-0.945217,1.031911}, {-0.039626,0.351279}, {1.166869,-0.022261}, {0.104525,0.891744}, {-0.833076,0.326978}, {1.038616,0.221851}, {0.210548,0.797819}, {-0.610088,-0.922245}, {-0.343548,-0.954441}, {0.159815,-0.755620}, {-1.254248,0.310110}, {0.112621,0.338769}, {0.509586,-0.114230}, {0.458902,-0.012483}, {-0.077531,0.845512}, {-0.024838,-0.325136}, {0.099325,-0.797450}, {-0.149184,0.461116}, {-0.229381,-0.113607}, {-0.790994,0.906154}, {1.110214,0.040753}, {-0.312241,0.102262}, {-0.492226,-0.169707}, {0.154426,0.445431}, {0.915648,0.371803}, {-0.997727,-0.598569}, {-0.694967,-0.288512}, {0.440323,-0.276589}, {-0.606794,-1.515034}, {-0.336494,0.022852}, {0.119489,-0.371741}, {-0.695836,0.229833}, {-0.161236,-1.197827}, {0.902952,0.341914}, {-0.478975,-0.883342}, {0.010275,0.473193}, {-0.257723,0.343809}, {-1.647461,-0.658151}, {1.203630,0.311324}, {-0.520208,-0.077408}, {-0.042387,-0.201717}, {0.732624,-0.442372}, {-0.025341,0.263186}, {-0.585464,0.089537}, {-1.270729,0.861931}, {0.365129,0.609487}, {1.133617,-1.306806}, {-0.010529,-0.948779}, {-1.495597,1.148781}, {-0.029070,-0.136818}, {0.206800,0.008509}, {-0.794964,0.295312}, {0.338531,-0.540493}, {-0.405923,-0.474873}, {0.979782,0.070233}, {-1.358570,-3.041284}, {-2.044437,-0.337722}, {0.467839,-0.830266}, {0.885020,0.766034}, {0.628159,0.150322}, {0.155384,1.033378}, {0.499468,-0.472419}, {-0.017379,0.135709}, {1.044006,0.107473}, {0.069893,1.038512}, {0.052506,-0.202886}, {0.725175,-0.396198}, {-1.435707,0.436358}, {-0.537693,0.135514}, {0.874197,1.596120}, {0.692789,-0.072948}, {1.514427,0.422330}, {0.356388,0.004602}, {-0.424132,1.742008}, {1.161560,0.621060}, {-1.253631,0.873246}, {0.830477,-0.113869}, {-0.089117,1.005543}, {-0.119315,0.415317}, {0.530735,-0.551322}, {0.468530,-0.096115}, {0.465401,0.845196}, {-1.226917,1.079224}, {-0.340842,-0.903031}, {1.019357,-0.845306}, {-0.542261,-0.981142}, {0.745563,-0.146286}, {0.146678,1.522813}, {0.489313,0.877646}, {0.622197,0.410875}, {-0.332401,1.742686}, {-0.530628,0.179136}, {0.214410,0.379434}, {-1.320653,0.366324}, {-0.135837,-0.625588}, {0.018205,0.579573}, {0.113747,0.193869}, {0.826568,-0.342809}, {0.517217,0.388353}, {0.511517,-1.261484}, {0.069570,1.590514}, {0.524966,1.277127}, {-0.604102,0.356745}, {-0.289114,1.192349}, {-1.224444,0.781320}, {0.797974,0.660886}, {0.358733,0.016464}, {-0.201142,0.232487}, {1.024496,-0.588845}, {-0.513361,1.122263}, {-0.918694,0.121980}, {-0.195506,-0.020095}, {0.331440,-0.501190}, {0.266567,1.455573}, {0.740847,0.632486}, {-0.395862,0.862711}, {-0.542915,-0.406950}, {-0.187643,0.516822}, {-0.777298,-0.688838}, {1.561877,0.175345}, {0.042752,0.261983}, {-0.477959,0.013431}, {-0.378112,-0.612150}, {0.517772,-0.504068}, {0.534609,-0.171057}, {0.581429,-0.511870}, {1.573305,0.690322}, {0.371148,0.371632}, {0.775532,-1.827403}, {0.699914,-0.106911}, {-0.563281,-0.400668}, {0.120288,0.692679}, {-0.216988,0.919587}, {-0.032172,-0.042166}, {0.257666,-0.073362}, {-0.829215,0.807044}, {0.043528,-0.370050}, {0.726681,-0.109935}, {0.199629,-0.260646}, {-0.064800,0.952449}, {-0.366864,0.342468}, {-0.213579,0.473732}, {0.475745,-0.522349}, {-0.578518,0.470114}, {0.131571,0.070506}, {0.199747,1.295036}, {0.163703,0.315885}, {0.730185,-0.561563}, {0.155160,-0.466836}, {0.209743,-0.938351}, {-0.332044,0.339460}, {-0.334248,-0.438717}, {-0.177906,-0.445812}, {-0.403888,0.515655}, {-0.529417,1.448326}, {0.751148,-0.069385}, {-0.543366,1.195889}, {-0.565148,0.963886}, {1.462286,-0.220984}, {1.482440,-0.287540}, {-0.577094,-0.718976}, {-1.677120,-0.951714}, {1.349836,0.330001}, {0.047546,-0.005764}, {-0.087343,-0.860869}, {0.969527,-0.058331}, {0.640526,-0.460373}, {-0.620476,0.177907}, {0.646331,0.313684}, {-0.865669,-0.430395}, {-1.109093,0.284577}, {0.623313,1.066345}, {-0.942186,0.297467}, {0.386541,-0.886178}, {-1.337573,0.110937}, {0.411021,-0.972933}, {-0.731420,-1.565217}, {0.115932,0.032862}, {0.647009,-0.702312}, {0.368068,0.376174}, {1.769808,-0.289011}, {-0.186158,0.373612}, {-1.327035,-0.080788}, {-1.039836,-0.777259}, {-0.020857,0.135255}, {-0.342180,-0.853006}, {0.599834,0.159697}, {-1.190980,-0.408167}, {-0.953700,-0.055447}, {0.242964,0.103171}, {-0.330887,0.495570}, {-0.736320,-0.023509}, {0.572782,0.531094}, {1.955315,0.650087}, {0.489044,-0.003831}, {-0.573902,-1.761131}, {-0.258057,-0.141214}, {0.092342,0.110264}, {0.813360,1.816915}, {1.221027,-0.215925}, {-0.103234,0.313383}, {0.078699,-0.198435}, {-0.581828,-0.816310}, {0.283286,-0.081822}, {0.302095,-0.251803}, {-0.406478,-0.593376}, {-1.326431,0.230793}, {-0.180609,0.370457}, {0.552601,0.177024}, {-1.333465,0.065461}, {0.599845,-0.602277}, {1.077753,-1.104753}, {0.809628,0.038772}, {0.024962,-0.314990}, {-0.988391,1.568123}, {0.338240,0.004098}, {-0.412518,0.731701}, {-0.313828,0.854789}, {1.524806,-1.562020}, {-1.169150,0.061988}, {-0.463460,-1.121006}, {-0.688317,0.548066}, {1.066755,-1.657319}, {-0.098140,-0.618434}, {0.432144,-0.550599}, {-0.078023,1.897759}, {0.527062,-1.127072}, {0.386297,0.274681}, {1.092527,-0.621702}, {0.544097,-0.200129}, {0.619517,0.186827}, {-0.894467,0.710752}, {-0.516944,-0.474122}, {-0.178624,-0.241885}, {-1.103791,0.206812}, {-0.750328,-0.465599}, {-1.049783,-0.059999}, {-0.238415,-0.584913}, {0.841484,0.498381}, {0.772949,-0.257598}, {0.631129,-0.010723}, {0.638257,-0.000321}, {0.484532,-1.725015}, {0.429875,0.794608}, {0.098118,-0.679536}, {0.252370,-1.123608}, {0.256356,0.128045}, {-1.654829,-0.677293}, {0.341717,0.901616}, {-1.530022,-0.071391}, {1.584247,0.385784}, {-0.134925,-0.596211}, {-0.306823,-0.640632}, {0.680138,1.001415}, {0.855363,0.466031}, {1.047399,-0.967652}, {0.874714,0.771008}, {0.023131,0.930381}, {-1.094853,-0.870464}, {0.718843,-0.226276}, {-0.135767,0.433719}, {0.058625,-1.398816}, {-1.478618,-0.590113}, {-1.706239,-0.238334}, {-0.278994,1.505897}, {-0.649649,0.049328}, {0.357204,-0.249715}, {-0.178715,0.811732}, {1.233743,0.677688}, {0.404137,1.022936}, {0.656525,0.330724}, {0.607732,-1.362354}, {-0.127905,-0.419755}, {-0.152615,-0.700967}, {-0.352367,-0.973191}, {-0.720073,-1.323530}, {-0.127801,-0.477660}, {-0.092400,0.491723}, {0.341948,-0.814883}, {-0.040942,-0.194408}, {-0.510947,0.165069}, {-0.386948,0.041816}, {-0.391543,0.095043}, {0.814066,-0.413210}, {0.652218,-0.465334}, {-0.144483,0.331067}, {0.230318,-0.335014}, {-0.085459,-0.090830}, {-0.458532,0.005534}, {0.602005,0.549709}, {-0.656597,-0.039494}, {-0.529460,-0.586545}, {0.459330,0.016754}, {-0.902031,-0.240948}, {-0.046894,0.151840}, {0.377669,1.389795}, {0.397125,0.524265}, {-0.388316,0.810665}, {1.536130,-0.018437}, {-0.324880,0.392937}, {-0.402622,1.137794}, {0.298408,-0.266189}, {0.681114,-0.071383}, {-0.272913,-0.092683}, {1.575728,0.022775}, {0.194788,-0.335136}, {0.519039,0.062735}, {-0.764728,0.146452}, {0.236471,-1.427158}, {0.995246,0.767302}, {-0.349678,0.736569}, {0.118835,0.421198}, {-1.078159,0.402561}, {-0.764007,-0.533382}, {-0.455951,1.354001}, {0.541724,0.107812}, {0.517193,0.011113}, {0.192692,0.927513}, {-0.639680,-0.461272}, {-0.497412,0.005693}, {0.035037,0.968771}, {0.427440,-0.147090}, {-1.412140,-0.121905}, {0.344535,0.038231}, {0.256825,0.088627}, {-0.859248,-0.787997}, {-0.127159,-1.105511}, {1.125815,-0.063713}, {-1.355366,-0.913897}, {0.567869,0.633445}, {0.784268,-0.756031}, {-0.417336,0.300105}, {-1.430904,0.105505}, {-0.042593,-0.153161}, {0.213039,0.587233}, {0.028565,0.513513}, {-0.041316,-1.552297}, {0.458964,1.495922}, {0.559308,-1.214681}, {1.049392,0.519859}, {0.290751,0.410285}, {-0.235969,0.075235}, {0.827775,0.234283}, {-0.353105,0.368130}, {1.152140,0.124431}, {-0.676463,-0.451120}, {0.431903,0.156522}, {-1.146142,0.821383}, {-0.231929,0.460321}, {0.331103,0.291431}, {-0.486103,-1.028895}, {0.247142,-0.577083}, {0.643317,0.642730}, {-0.038357,-0.731389}, {-0.529627,-0.518347}, {-0.458770,-0.602541}, {0.717108,-1.502174}, {1.639891,-0.046797}, {0.367167,-0.575410}, {0.200877,-0.125050}, {1.282175,-0.037682}, {-0.094635,-0.888363}, {0.413420,1.283817}, {0.132756,0.300671}, {-0.367404,1.005577}, {0.511375,-0.097647}, {-0.375077,0.423522}, {0.382736,0.001469}, {0.044349,-1.190297}, {-1.190740,0.471491}, {0.835772,0.424912}, {1.030520,0.464877}, {-0.529949,0.824068}, {-0.099363,0.508190}, {-1.371466,0.242051}, {0.916338,-1.128584}, {0.785841,-1.448629}, {0.407546,0.603846}, {0.575293,-0.166221}, {0.886545,0.439648}, {-0.226133,0.961934}, {-0.165523,0.076377}, {-0.678735,-0.898540}, {-0.053888,1.308609}, {0.584848,0.060583}, {0.083871,-0.233156}, {0.004868,0.283304}, {0.552259,0.868118}, {0.500338,-0.610468}, {-0.043386,-0.346571}, {-0.498805,0.288491}, {0.438704,-0.106490}, {0.415201,-0.503631}, {0.032692,0.644929}, {0.101192,0.299544}, {0.381060,-1.411974}, {-0.859828,-0.958490}, {-0.680687,0.892740}, {0.112933,0.002252}, {-0.278048,-0.241376}, {-2.217421,-0.418946}, {0.671425,0.447137}, {1.852803,-0.254499}, {-0.777766,0.350337}, {0.058883,-0.792590}, {1.819335,0.931958}, {-0.140655,0.687205}, {-0.454620,0.532005}, {0.520396,-0.641183}, {-0.614732,-0.794939}, {-0.555090,0.194826}, {-0.867211,-0.430899}, {0.114316,0.279198}, {0.906085,0.126300}, {-1.652861,-0.398311}, {0.720231,0.310120}, {0.616857,-0.224845}, {-0.355100,0.825606}, {-0.443765,-0.588850}, {0.548479,0.069557}, {0.311662,0.550548}, {1.211246,-0.191114}, {-0.220659,1.110956}, {-0.359286,-0.164330}, {0.789602,-0.070392}, {0.566583,-0.827020}, {0.595349,-0.690691}, {0.189841,0.431550}, {-0.289571,-0.607088}, {0.621366,-0.321307}, {0.186891,-0.852539}, {0.232188,-1.220607}, {-0.612862,0.059821}, {-0.105208,0.298759}, {-0.329366,-1.318732}, {0.320709,0.096560}, {0.140400,-1.134450}, {-1.507197,-1.015648}, {0.397460,0.411895}, {-0.815200,-0.096281}, {0.168722,0.671290}, {-0.859969,0.821381}, {0.171885,-0.220966}, {-0.093656,-1.361741}, {-0.527003,0.899775}, {0.390672,-1.707368}, {0.729568,-0.255314}, {0.688398,0.539302}, {-0.397821,0.236694}, {-0.255357,0.443405}, {1.355847,0.620758}, {1.705390,0.158142}, {1.290421,-0.602823}, {-0.732108,-0.318124}, {0.541361,0.046519}, {-0.502741,-1.050050}, {0.252136,-0.639033}, {0.878938,0.856368}, {-0.690850,1.354681}, {0.104990,0.071316}, {0.447853,-0.020789}, {-0.009859,-0.006837}, {-0.719030,0.285837}, {-0.045532,1.180974}, {-0.413249,-0.120820}, {0.590697,0.086396}, {-0.312210,0.058620}, {0.038969,-0.080060}, {0.668350,0.562553}, {-0.339013,0.060135}, {-0.907438,-0.823162}, {-0.119806,-0.877603}, {-0.478883,-0.143292}, {-0.320699,0.212539}, {0.100108,0.485710}, {-0.392466,-0.806866}, {0.001016,0.076458}, {-0.592774,0.343524}, {1.462533,-0.066516}, {-0.569967,0.315363}, {-0.481084,0.337295}, {-0.087391,0.658159}, {-0.302733,0.653680}, {0.413127,0.535186}, {-0.582368,0.582489}, {1.018942,0.463516}, {-0.061175,-0.350878}, {-1.630071,-0.232123}, {1.208054,0.322525}, {0.230705,0.582932}, {-0.217847,0.575781}, {0.893442,0.630389}, {-0.174874,0.390805}, {0.956859,0.734961}, {0.438679,0.368285}, {1.409507,-0.272855}, {-0.021050,0.944726}, {-0.227605,-1.004858}, {0.346623,0.582952}, {0.576312,0.318435}, {1.094793,-0.629266}, {-1.088802,0.041459}, {-0.500393,0.442719}, {-0.271167,0.374385}, {0.241921,0.418248}, {-0.627281,-1.002708}, {-1.147085,-0.423343}, {0.728013,-0.479764}, {0.055815,-0.515315}, {0.496916,0.348340}, {0.640592,-0.044396}, {-0.823480,-0.081510}, {-0.658153,0.363340}, {0.549048,0.679255}, {0.379224,0.498001}, {0.531963,0.993990}, {0.503592,0.389701}, {-0.354800,0.131830}, {0.447769,-0.726391}, {-0.226749,0.070274}, {1.525876,0.048507}, {0.423583,0.515601}, {0.281501,0.333000}, {-0.581471,-0.653560}, {0.356261,0.210534}, {-1.831239,-2.179264}, {-0.207313,2.443682}, {0.581231,0.219500}, {0.244048,-0.433631}, {0.234179,-0.519635}, {0.321517,-0.667325}, {0.331807,0.023669}, {0.150836,0.951006}, {0.850205,-0.427679}, {-0.266342,0.492303}, {0.421612,-0.671137}, {0.097019,-0.343781}, {0.353095,0.071768}, {0.399844,1.140014}, {-0.092161,0.421038}, {0.951596,0.997798}, {0.233831,-0.888818}, {-0.914231,0.468451}, {-0.320417,0.768939}, {0.010017,-0.067670}, {-0.641204,0.499319}, {0.464514,-0.342039}, {0.806917,0.412848}, {-0.389667,-0.723328}, {1.504390,-0.862004}, {-0.077352,-0.895115}, {-0.618964,0.190222}, {0.301279,0.239691}, {-1.242100,0.120618}, {0.930139,0.521412}, {0.529753,-0.277023}, {-0.884634,-0.158847}, {0.636505,-0.971609}, {-0.835765,0.991747}, {0.277340,-0.861971}, {1.021073,1.142868}, {-0.705786,0.603524}, {0.156000,-0.793177}, {0.066289,-0.265637}, {-1.395549,-0.477809}, {-0.398661,0.403177}, {-0.459976,-0.843605}, {0.984018,-0.852629}, {0.218633,-0.126745}, {-0.282519,0.221063}, {-0.030076,0.666546}, {-0.069338,0.189674}, {0.437178,0.500713}, {0.391939,0.145078}, {-1.572762,0.700506}, {-1.015432,0.377474}, {-0.840338,0.937558}, {0.342004,0.167650}, {-0.060252,0.117581}, {0.472117,0.635502}, {0.104385,-0.161998}, {1.188391,-1.588144}, {-1.256569,-0.943382}, {-1.338045,-1.795011}, {0.423467,-0.663819}, {0.202217,0.684588}, {0.233240,1.011311}, {-0.758494,0.433929}, {0.926118,-0.054441}, {0.564314,-0.974460}, {0.726559,-1.559723}, {-0.541272,-0.563339}, {0.749341,-0.459923}, {-0.592150,-0.292360}, {-1.425995,-1.199563}, {0.630984,0.173879}, {-0.496013,0.849446}, {0.730005,-0.623744}, {0.339948,0.700938}, {0.318261,-1.431390}, {0.179177,-0.081351}, {0.422595,0.110693}, {0.525183,-0.014276}, {0.791773,-0.477120}, {0.337622,-0.907080}, {-0.961643,0.350677}, {-0.419235,0.114661}, {-0.036426,-0.074521}, {-0.851223,0.150299}, {-1.402542,-0.652643}, {-0.444904,0.206768}, {0.649220,0.699797}, {0.159030,0.332804}, {0.252170,-0.574764}, {0.214542,-0.070060}, {0.672585,-0.214337}, {0.317019,0.014172}, {-0.760543,0.267257}, {1.642791,0.243831}, {-1.046533,-0.098091}, {-0.043117,0.019885}, {0.017252,-1.446676}, {0.264861,0.685846}, {0.517324,0.010126}, {0.343672,0.470516}, {0.031183,0.226200}, {-0.069854,-0.562667}, {0.527272,0.532637}, {-0.858228,0.534935}, {0.364460,0.740142}, {-0.140402,-0.483472}, {0.017139,0.061624}, {-0.294724,1.396053}, {-0.540405,-0.124744}, {-0.216948,-0.080703}, {0.142776,-0.316044}, {-0.253452,-0.078581}, {-0.025665,0.377449}, {0.170569,0.657816}, {0.558146,0.230644}, {-0.811005,0.844136}, {1.274885,-0.602096}, {-0.256525,0.339416}, {-0.445608,-0.526104}, {-0.679020,-0.428087}, {-0.585500,0.611806}, {0.321104,1.015454}, {0.088048,0.254566}, {-0.194493,-0.085023}, {0.235160,0.956288}, {0.814722,0.247546}, {-0.785712,0.033330}, {1.303812,-0.323498}, {0.900592,0.189877}, {0.557885,-0.981445}, {0.472523,0.784359}, {0.761798,-0.989764}, {0.391552,0.560236}, {0.697718,-0.307289}, {-0.302544,0.328754}, {-1.050820,-0.691314}, {-0.647732,-0.054507}, {0.021808,0.443342}, {-1.449923,-0.824803}, {0.190423,-0.098085}, {0.631746,-0.468679}, {0.040293,-1.576056}, {-0.372698,0.455461}, {0.220583,0.009939}, {-0.270850,-0.097216}, {-0.505603,0.942481}, {-0.821008,0.456088}, {-0.903589,-0.879087}, {-1.037097,0.467356}, {-0.106833,1.072424}, {0.863947,0.585468}, {0.005151,0.434652}, {-0.400947,-1.251142}, {0.189981,0.404356}, {-0.285439,0.379628}, {0.087294,-0.869496}, {-0.192137,0.869642}, {-0.692827,-0.385168}, {-0.562495,0.217508}, {0.542657,-0.510556}, {0.464191,-0.475241}, {-0.360873,0.439250}, {0.855123,0.200659}, {-0.610447,0.408358}, {0.908977,1.265472}, {0.594758,-1.492478}, {0.029868,-0.283152}, {-0.742647,-0.959861}, {-1.058543,-0.718420}, {0.030062,0.074846}, {0.484401,-1.125483}, {-0.284086,0.159763}, {-1.080775,-0.140955}, {-0.174126,-0.086363}, {0.739286,-0.217804}, {0.141377,-0.665255}, {0.920503,-0.318352}, {0.312659,0.743913}, {0.276399,0.154918}, {0.663342,-0.243720}, {0.208475,1.070727}, {1.547443,-0.539637}, {-0.480355,-0.378719}, {-0.286722,-0.944048}, {-0.939835,0.257670}, {-0.970612,-0.234679}, {-0.869842,1.134333}, {0.129012,-1.323594}, {-0.847059,0.612807}, {0.143607,0.167211}, {-0.644289,-0.020060}, {0.597720,-0.525289}, {0.344575,0.696561}, {0.032192,-0.316594}, {-0.527359,0.248141}, {0.057843,-1.004926}, {0.174263,-0.084976}, {-0.103775,-0.357881}, {0.591409,0.244348}, {-1.185070,-0.186006}, {0.643666,0.679958}, {-0.560183,-0.180895}, {-0.730927,0.972640}, {0.414448,-0.245573}, {-0.715735,-0.063948}, {0.602288,-0.368285}, {-0.595310,-0.096140}, {0.154414,-0.239226}, {-0.643521,-1.322612}, {-0.372893,0.644678}, {-0.871536,-1.116017}, {-0.355362,-0.495611}, {0.807998,-0.506884}, {-1.512365,1.149375}, {-0.663902,-0.483402}, {-0.027985,0.740126}, {-0.627528,0.621482}, {0.273277,0.398212}, {0.646616,1.375140}, {-0.691492,1.019221}, {0.666217,0.443858}, {0.695471,0.183591}, {-0.505856,-0.531083}, {0.770952,0.230695}, {-0.598738,0.451612}, {0.301636,-1.123508}, {0.345123,-0.300982}, {-0.371200,0.114885}, {0.040179,0.024051}, {-0.193750,0.538700}, {-0.540208,0.170493}, {-0.732932,-0.668738}, {-1.222816,0.434783}, {0.056403,0.263628}, {0.248752,1.012811}, {-0.511117,-0.049178}, {-0.044573,-0.975817}, {0.398627,0.462711}, {-0.260856,-0.068978}, {-0.280710,-0.321223}, {-1.899199,-1.720357}, {-0.214145,0.610662}, {0.860637,-0.542982}, {1.479895,0.512347}, {-0.634684,-0.205669}, {-0.774042,0.960716}, {0.254752,-0.070188}, {0.048949,0.072511}, {-0.076806,0.217678}, {-0.398325,0.011892}, {0.947991,0.795319}, {1.507949,-0.647927}, {-0.067973,0.815859}, {0.021869,-1.330399}, {0.260440,-0.736693}, {0.047665,1.669888}, {0.051714,-0.750557}, {0.461558,0.446945}, {1.025170,0.357000}, {0.045956,-0.325779}, {-0.173120,0.700485}, {0.536135,-0.477065}, {0.128767,-0.204009}, {-0.760650,-1.142806}, {0.136669,-1.190282}, {0.497392,-1.408788}, {-0.148019,0.206583}, {-0.501879,-0.488139}, {0.009399,-0.681400}, {0.701198,-0.538127}, {0.180453,0.485088}, {-0.265001,0.156447}, {-0.640031,0.482786}, {-0.518979,-0.541837}, {-0.032891,-0.430068}, {-0.461893,-0.277698}, {0.262606,0.260080}, {0.041808,-0.123995}, {-0.440511,0.223938}, {-0.106192,-1.594211}, {-0.418230,0.723012}, {0.073327,-0.112584}, {-0.418561,-0.692791}, {0.368207,0.185128}, {0.168326,0.239815}, {0.114983,-0.779877}, {-0.513697,-0.218598}, {-0.509730,-1.001503}, {-0.257517,0.486916}, {-0.939828,0.965026}, {-1.454300,-0.203483}, {-0.492785,-0.713430}, {0.301437,-0.797414}, {0.238702,-0.386490}, {-0.944933,0.181264}, {0.443444,1.104281}, {0.703275,-1.091732}, {-0.739420,0.369381}, {-0.541723,0.306867}, {-0.421282,-0.067401}, {-0.359663,-0.430076}, {-0.365976,-0.386311}, {-1.235840,-0.744903}, {-0.582278,0.165135}, {0.258208,0.795858}, {0.656751,-0.199973}, {-0.661437,-1.236283}, {-0.183853,0.537246}, {-0.698045,0.604539}, {-0.705045,0.847084}, {-1.459402,0.628008}, {0.692337,1.236132}, {-0.260324,0.599788}, {-0.010288,-0.048783}, {0.066315,0.077396}, {0.258401,-1.300776}, {-0.606507,0.626366}, {0.918692,0.313908}, {0.301100,0.600185}, {0.756285,-0.134042}, {0.419008,0.068592}, {0.678707,0.297421}, {-0.762643,0.544065}, {0.811504,0.550301}, {-0.128498,0.753596}, {-0.506348,-0.102907}, {-0.361289,-0.120066}, {0.772548,0.007574}, {-0.403729,0.699871}, {0.438742,2.197012}, {-1.157543,-0.354945}, {0.220848,0.508695}, {0.354803,-0.410951}, {1.084506,0.972850}, {0.092344,1.433922}, {0.506397,0.385787}, {1.217549,0.293367}, {-0.334559,-0.101333}, {-0.406466,-0.023401}, {0.356600,-1.141455}, {-0.011750,0.287641}, {-0.050458,0.686041}, {-1.213470,0.430009}, {0.551580,-0.801972}, {0.065996,-0.224313}, {0.281099,-1.068458}, {-0.096408,0.757440}, {1.583368,0.056612}, {0.087061,0.328131}, {-0.394441,-1.372195}, {0.512555,-0.342829}, {-0.073289,-0.416035}, {0.913218,-1.088553}, {-0.698006,0.235712}, {-0.230038,-0.514247}, {-0.040607,-0.916763}, {0.632154,-0.540679}, {-0.887651,-1.009355}, {-0.632470,-1.022231}, {0.190182,1.032801}, {-0.027089,0.692375}, {-0.675473,0.192100}, {-1.255069,0.423638}, {-0.195848,0.109171}, {0.292869,-1.505548}, {0.515116,-0.182036}, {-0.690289,0.288317}, {1.434559,-0.687078}, {-0.461406,-1.224466}, {-0.374814,0.354303}, {0.616066,0.664220}, {-0.312574,-0.753793}, {-0.010131,0.316177}, {0.677541,-0.304399}, {0.362407,-0.542312}, {0.421985,-0.426462}, {1.074806,0.427175}, {0.714370,-0.383605}, {0.981694,-0.101514}, {-0.580749,0.366888}, {0.150148,1.272927}, {0.102605,1.472671}, {0.133743,-0.162327}, {0.098048,0.154761}, {0.138915,0.424027}, {-0.068587,-0.269135}, {0.151768,-0.574258}, {0.705147,0.504406}, {-0.199471,-0.747309}, {0.660886,1.191666}, {-0.434080,0.337494}, {0.065750,-1.195325}, {-0.022976,0.447841}, {0.105985,0.089817}, {-0.084156,-0.318798}, {0.072991,-0.327037}, {-0.128438,0.126156}, {-0.405562,-0.076535}, {-0.426691,-0.173649}, {-1.860770,-0.948092}, {-0.127870,-0.262563}, {-1.138050,-0.096580}, {0.370414,-1.870972}, {-0.169835,0.059237}, {0.107617,0.823066}, {-1.055285,-0.282586}, {-1.207492,0.630350}, {0.199582,0.096160}, {0.726497,0.068093}, {-0.532842,-0.156855}, {1.093617,0.601716}, {-1.528594,-0.081629}, {-0.210981,-0.742901}, {0.320628,-1.275187}, {-0.959229,-1.040017}, {-0.435513,-1.345417}, {0.883669,0.681837}, {-1.529650,-0.446392}, {-0.720045,1.701187}, {-1.098947,0.930781}, {-0.652223,-0.676971}, {0.540277,0.620405}, {-0.084783,-0.516229}, {-0.645938,-0.752328}, {0.592236,-0.445923}, {0.987580,-0.654351}, {0.631582,-0.687112}, {-0.747723,-0.216685}, {-0.242519,0.244150}, {-0.503676,-0.402645}, {-1.298327,1.084137}, {-0.362467,0.491899}, {-0.033132,-0.268392}, {-0.126278,0.423416}, {-1.031263,-0.085027}, {0.243811,-0.366720}, {0.639498,0.129467}, {-0.335136,1.108368}, {-0.512740,1.873530}, {0.643081,0.099739}, {-0.255082,0.612374}, {-0.175646,0.130710}, {0.108781,1.292291}, {-0.614601,0.259555}, {0.168058,0.048234}, {-0.574672,0.318310}, {-0.216721,-0.336900}, {-0.005054,0.439731}, {-0.850990,0.370968}, {-0.067698,0.383192}, {0.383593,-0.525092}, {-0.061197,0.459613}, {1.361076,-0.818933}, {-0.505306,-0.543337}, {0.635340,-0.050133}, {-1.114203,0.161483}, {-0.176448,-0.346756}, {0.120352,0.445743}, {-0.245858,-0.834506}, {-0.920717,0.600234}, {-0.297926,0.695282}, {1.293254,0.324459}, {-0.963549,0.214107}, {0.291750,0.306301}, {-0.020635,-0.108404}, {-0.625249,0.393424}, {-0.678041,-0.306473}, {1.267072,-0.004506}, {0.022893,0.861164}, {-0.623908,0.323349}, {0.368754,0.620841}, {-0.528447,-0.141905}, {0.088043,1.543236}, {-0.899354,-0.855242}, {-0.026557,-0.453395}, {0.027462,1.047341}, {0.769418,-1.229816}, {1.440973,-0.699249}, {0.073809,-0.849225}, {0.260617,-0.050471}, {-0.343781,-0.188150}, {0.196896,0.184787}, {0.186939,-0.670752}, {0.922055,1.559028}, {0.501239,-0.571159}, {-0.501999,0.117773}, {-0.919095,0.778399}, {0.351764,-0.823198}, {0.148608,0.329635}, {1.115657,-0.601348}, {-0.356139,-0.377287}, {0.082008,-0.934193}, {0.413781,-0.481072}, {0.159484,0.219529}, {0.769932,-0.473240}, {-0.127988,-0.380868}, {0.633024,-0.074308}, {0.422594,-1.072281}, {-0.962782,0.898361}, {0.606030,-0.243257}, {0.060875,-0.778985}, {-0.615502,0.659961}, {0.690715,-0.017834}, {0.475395,-0.359472}, {-0.974448,-0.511066}, {0.692056,-0.796830}, {0.464684,-0.250498}, {-0.473990,0.157603}, {-0.221502,-0.380543}, {0.776700,0.874519}, {0.278098,-0.390918}, {-0.020204,0.129496}, {-0.492732,-1.203373}, {-0.192923,0.392172}, {-0.456686,-1.096002}, {0.225734,-0.338651}, {-0.423440,-0.151675}, {0.047326,0.697747}, {-1.402831,0.389770}, {-0.481669,-0.607328}, {0.707638,-0.420784}, {-0.585504,0.372906}, {0.884026,0.946783}, {-0.890221,-0.123712}, {-0.946448,-1.331909}, {-0.161589,0.672376}, {-0.428532,0.326757}, {-0.478465,-0.457691}, {-0.054022,1.405670}, {-0.333135,0.375169}, {-0.372505,0.854525}, {1.535750,0.415969}, {0.295118,-0.716003}, {-0.336206,-0.196896}, {0.743605,0.229018}, {0.792000,-1.768616}, {-1.354626,0.963126}, {-1.405782,0.680236}, {-0.237975,-0.000923}, {-0.690345,-1.003080}, {-1.313895,-0.033107}, {-0.614969,0.864382}, {0.990158,1.112463}, {-1.001071,-0.634240}, {0.594301,0.062948}, {-0.534023,0.563650}, {0.605461,-0.096271}, {0.236832,-0.313801}, {-0.493347,-0.201958}, {-0.520262,-0.387792}, {-0.912513,-1.199020}, {-0.129950,-0.310796}, {-0.541204,-0.716691}, {-0.081170,0.596112}, {0.737798,1.145168}, {-0.928121,-0.998200}, {0.669610,1.145227}, {0.832308,0.318849}, {-0.039104,-0.614171}, {0.755613,-0.876583}, {-1.016801,0.001975}, {-0.050756,0.076366}, {0.630505,-0.239083}, {0.197191,-0.747906}, {-0.372266,-0.592826}, {-1.529025,0.438443}, {-0.412525,-0.849941}, {0.829853,0.127465}, {0.283020,0.119718}, {1.891486,-0.325311}, {-0.585484,-0.410801}, {0.059833,-0.092511}, {-0.831938,-0.638384}, {-0.235357,0.183885}, {-0.347581,-1.189650}, {0.014281,-0.758982}, {0.350777,-0.963252}, {-0.065657,-0.156335}, {-0.165794,0.022285}, {0.747007,-0.478210}, {0.567832,-0.106546}, {0.396140,0.016729}, {-0.272671,0.066605}, {1.376385,0.510745}, {-0.060046,0.644132}, {0.775174,-0.161923}, {0.685821,0.001454}, {-1.561711,0.881058}, {1.787424,-0.058002}, {0.336836,-0.858057}, {-0.331450,-0.740409}, {-2.109117,0.353266}, {-0.216311,0.071157}, {0.114973,-0.504866}, {-0.622727,-0.587637}, {-1.153190,0.816906}, {-1.426416,1.516651}, {-1.307579,0.228991}, {-0.770577,-0.045774}, {0.372744,0.808508}, {0.120187,-0.103078}, {-0.195718,-0.374301}, {1.075698,1.295923}, {-0.361592,-0.873742}, {-0.418061,-1.279100}, {0.784779,-1.675948}, {1.268633,-0.865789}, {-0.519273,0.090093}, {-0.262722,-0.402864}, {-0.951638,0.084945}, {-0.355352,-0.351439}, {0.285010,0.056406}, {-0.950448,-0.397773}, {-0.464651,0.160215}, {1.109933,-0.480592}, {-1.419546,1.158028}, {0.905718,0.111670}, {-0.237821,0.135966}, {-1.259691,0.323498}, {-0.470925,-0.541165}, {0.102619,-0.372763}, {-0.712979,-0.457720}, {0.970056,0.171370}, {-1.135346,-0.461788}, {-0.633181,1.008828}, {1.176038,-1.068340}, {0.500422,-0.673381}, {0.894371,-0.164669}, {0.483704,0.314087}, {-1.188251,-0.842904}, {-0.157257,0.172253}, {-0.898239,0.677601}, {-0.279064,-1.615232}, {-0.992485,0.177739}, {-0.476199,-0.218263}, {-0.132737,1.169939}, {-1.302813,0.651199}, {-0.310092,0.900820}, {0.049591,-0.876856}, {-0.107885,-0.364864}, {-0.126501,-0.848695}, {1.113648,0.511673}, {0.264047,0.194513}, {-0.056919,0.273691}, {0.703939,-0.054764}, {-1.272536,-0.341796}, {-0.119178,-0.654156}, {0.132597,-0.130565}, {0.899426,0.459049}, {-0.391768,-1.166623}, {-0.225483,-0.557438}, {-0.167593,0.661089}, {-1.659540,-0.002336}, {0.794658,0.033512}, {-1.069324,0.241018}, {-0.918777,1.380683}, {0.332766,0.468339}, {1.686444,-0.943082}, {-0.547574,-0.948940}, {0.030771,0.036540}, {-0.833640,-1.376152}, {-1.243536,0.371659}, {-0.237937,-0.425704}, {0.259845,1.519797}, {-0.911238,-0.668074}, {-0.013456,0.176795}, {-0.882968,-0.341753}, {0.854397,0.383916}, {0.235472,0.285590}, {-0.359982,0.097074}, {-0.131102,-1.300127}, {0.266605,0.174879}, {-0.294888,0.138128}, {-0.108081,0.172793}, {-0.478603,-0.057927}, {-0.712859,1.038960}, {0.209788,0.449368}, {0.387551,-0.640651}, {0.003760,-0.340271}, {-0.061907,0.617510}, {0.392158,-0.953156}, {0.726593,-0.189035}, {0.597882,-0.274553}, {0.666026,0.048594}, {0.284210,0.946907}, {0.305420,0.165142}, {0.404228,0.231668}, {-0.017939,-1.142982}, {1.139064,-0.458041}, {-0.819369,0.895217}, {-0.047318,0.285829}, {-0.568780,-0.190502}, {-0.606370,-0.099547}, {1.424332,0.802029}, {-0.821119,0.250209}, {-1.376602,1.326391}, {-1.098387,1.606694}, {0.496951,-0.357961}, {0.210738,0.046687}, {0.369485,-0.157254}, {-0.544895,-0.402399}, {-0.882763,-0.055791}, {-0.357232,0.166177}, {-0.615774,-0.069649}, {-0.767183,-0.112721}, {0.375762,-0.020422}, {-0.098314,0.398756}, {0.176510,0.550347}, {1.200922,-0.003930}, {1.325052,-0.313705}, {-0.150081,1.250977}, {2.057610,0.216751}, {-0.238246,0.229506}, {0.857400,-0.572607}, {-0.562334,1.100413}, {0.384247,-1.554662}, {0.067540,0.515121}, {1.340051,-0.351801}, {-0.422137,-0.315044}, {0.860255,-0.025928}, {-0.499608,-0.491812}, {-0.466429,-1.328300}, {-0.323761,0.241738}, {0.393656,-0.847954}, {0.459800,1.193975}, {0.310703,-0.636093}, {-0.445585,0.424384}, {0.846073,0.364936}, {-0.259331,-0.399480}, {0.436216,-0.067255}, {-0.733748,-0.699265}, {0.324053,1.497643}, {0.615826,0.748861}, {1.193295,-1.242813}, {-0.466988,0.156967}, {0.611477,0.193048}, {-0.055928,-0.158672}, {0.975226,-0.459924}, {-0.655781,-0.693858}, {1.324562,-0.668467}, {0.864872,-2.109563}, {0.717141,-0.626098}, {-1.302740,0.096267}, {1.116621,-0.009268}, {0.100593,1.267514}, {0.425933,-0.009823}, {-0.173129,-0.174238}, {0.153032,0.109386}, {-0.318603,0.546064}, {0.289912,0.429496}, {0.155977,0.603650}, {-0.776808,0.920140}, {-0.878454,-0.082128}, {0.608451,1.174464}, {0.353067,-0.103951}, {-0.452806,0.168395}, {1.339559,0.439086}, {-0.020182,-1.321645}, {0.118079,-0.311166}, {-0.272936,0.134373}, {0.373963,-1.299783}, {0.054969,0.261178}, {-0.239239,-0.615398}, {-1.001020,-1.146200}, {0.449862,-1.228006}, {0.323008,0.572236}, {-1.653429,0.189960}, {-1.049711,-0.245348}, {0.976135,0.169753}, {0.706318,-0.614142}, {1.130571,1.122720}, {-0.180019,-0.492531}, {0.585209,-0.465400}, {-0.786602,0.685904}, {0.096573,0.109326}, {-0.141775,-0.749653}, {-0.059186,-0.316195}, {-1.462725,-1.202917}, {-1.236354,0.418481}, {0.151833,0.157247}, {0.691259,0.080574}, {0.483058,-1.638888}, {0.128021,1.112820}, {-0.191649,1.303981}, {-0.086171,-1.095404}, {-0.568276,0.304373}, {2.181999,-0.551641}, {-1.035423,-0.289490}, {0.155008,-0.150995}, {-1.103950,-1.857698}, {-0.668989,-0.467956}, {-0.185524,0.446566}, {-0.643301,-0.258359}, {0.087981,-0.547687}, {-0.516929,0.605263}, {0.342129,0.093293}, {2.011109,0.019105}, {0.363808,0.781133}, {-1.536479,1.337943}, {0.435211,-0.631518}, {-0.556866,-0.694405}, {1.114228,-0.174913}, {0.538381,-0.752450}, {0.550732,-0.407947}, {0.022731,-0.085540}, {0.188773,0.308336}, {0.487134,-0.164736}, {0.186646,1.139253}, {0.045252,-1.157604}, {1.084051,-0.890305}, {0.619163,-0.150592}, {0.354104,0.841673}, {0.229173,-2.117542}, {-0.396302,-0.148405}, {-0.233108,0.645852}, {-0.409376,0.680217}, {0.561133,-1.591081}, {0.132287,1.114235}, {-0.167495,-0.729692}, {-0.563572,-1.003719}, {-1.407809,0.049666}, {0.259140,-1.152104}, {0.876016,0.966907}, {1.109627,0.127202}, {0.900875,0.161930}, {-0.239223,-0.745766}, {-0.049711,-0.106964}, {-1.172386,1.606319}, {1.580091,-0.165441}, {-0.105897,0.096532}, {0.514744,-0.441290}, {-0.410128,1.642280}, {1.025580,-0.241450}, {0.570167,0.040530}, {0.871560,-0.323875}, {-0.234388,-1.244179}, {0.675376,0.964659}, {0.374233,0.149805}, {-0.789252,1.310412}, {-0.284409,1.148222}, {-0.660847,0.363166}, {0.782152,0.454305}, {0.172868,0.088907}, {-0.278771,0.023603}, {0.293272,0.372982}, {0.311987,0.322549}, {0.606624,0.527143}, {0.192137,0.430538}, {-0.324541,0.343529}, {-0.158355,0.734556}, {-0.137073,-0.403531}, {-0.250048,0.162757}, {0.447298,0.471529}, {-0.874570,-0.929687}, {0.556881,0.694617}, {0.202336,0.104962}, {-1.529270,0.384855}, {0.164846,-0.749040}, {-0.712317,-0.291645}, {-0.649720,-0.482616}, {-0.157974,0.405484}, {0.057860,0.996968}, {0.618568,-0.192818}, {-0.569099,0.526239}, {0.535368,-2.569703}, {0.287562,-0.200457}, {-0.774001,-0.447806}, {-0.677427,0.757377}, {0.440255,1.722018}, {0.221734,0.363236}, {-1.142799,0.246628}, {-0.000987,0.084137}, {0.177699,-0.161609}, {0.219112,0.145815}, {1.192557,-0.513284}, {-1.063099,-0.407821}, {0.344825,0.059121}, {0.324140,-1.340732}, {-0.385376,0.564923}, {1.112126,0.068623}, {1.217525,-0.793810}, {-0.173809,0.211866}, {0.008904,0.344939}, {-0.551659,-0.020264}, {0.409603,0.130882}, {-0.460838,0.011734}, {0.767436,-0.389044}, {-0.317004,1.030325}, {0.765716,1.202983}, {-0.899111,-0.543610}, {-0.281986,-0.684544}, {-0.364272,0.091067}, {-0.944820,0.735864}, {-0.473074,0.236066}, {0.590428,-0.001307}, {0.902710,0.060698}, {-0.479309,0.186699}, {-0.622708,0.120223}, {-0.552450,-0.012236}, {0.431918,1.303160}, {0.050594,-0.525912}, {0.362519,0.624894}, {-0.941750,0.479853}, {-0.146931,-0.166574}, {-0.222338,-0.578684}, {0.516931,0.696953}, {-0.950476,0.567101}, {0.021004,0.707791}, {1.023076,1.585372}, {-0.379172,-0.455007}, {0.999678,-1.125859}, {1.112727,1.119853}, {-1.229585,-0.372180}, {0.485929,1.072664}, {-0.533969,-0.058251}, {-0.780870,-0.083022}, {0.197475,-0.090851}, {0.869964,-0.537793}, {0.041044,0.400725}, {0.337632,0.010040}, {0.995867,-0.413684}, {-0.197465,-0.816039}, {0.113805,1.162790}, {-0.869838,0.460479}, {-0.720627,0.136898}, {-0.555949,0.348150}, {-1.010460,0.876235}, {0.288385,0.442596}, {0.628015,0.092587}, {1.017268,1.102030}, {0.136902,0.765530}, {-1.074543,-0.048865}, {-1.177793,-0.693738}, {0.527523,0.145117}, {-0.760523,0.203876}, {0.938313,1.041252}, {0.539914,-0.157041}, {-0.572504,-0.177670}, {-0.180789,-0.215865}, {0.138948,-0.228659}, {-0.294927,-0.979739}, {-0.295661,-1.044591}, {0.151225,-1.389272}, {-0.756423,-0.423643}, {-0.061934,-0.301791}, {-0.270853,-0.240812}, {-0.803715,0.821259}, {-0.697601,0.617383}, {0.289209,-0.053389}, {-0.896823,0.262431}, {-0.295344,-0.261914}, {0.058281,0.044589}, {-1.008325,0.176720}, {0.175546,-0.335204}, {0.631611,-0.600731}, {-0.433719,-1.128985}, {-0.409720,-0.312795}, {0.323113,0.261763}, {0.036730,0.115460}, {0.059806,0.466118}, {-0.435466,0.810298}, {1.362624,-0.053060}, {0.017303,0.016551}, {-0.831908,-0.085054}, {-0.047121,-1.210964}, {-0.492066,0.242858}, {0.390794,0.069634}, {0.814141,-0.385739}, {0.000600,1.161953}, {-0.825328,-1.076807}, {-0.137587,-0.380351}, {-1.033185,0.376119}, {-0.942623,0.986463}, {-0.615904,0.634404}, {0.405671,0.449572}, {-0.610933,0.735977}, {-0.318879,0.163802}, {-0.507174,-0.284257}, {0.727653,-0.764991}, {0.553744,0.406244}, {0.109977,-0.425145}, {0.007260,0.694717}, {-0.589111,-0.324782}, {1.296184,-0.280316}, {0.273412,-0.063905}, {0.628945,0.335630}, {-0.149412,-0.710817}, {1.448227,-0.686517}, {0.812279,1.204193}, {-0.323526,0.612276}, {1.317114,-0.397886}, {-0.905302,-0.684715}, {-0.018889,0.460583}, {0.413307,0.079909}, {0.196694,-0.264636}, {0.237990,0.380848}, {1.110570,0.186631}, {1.100941,0.944369}, {-0.268469,-0.372955}, {0.654447,-1.005281}, {-0.867087,0.494783}, {-0.307357,0.224308}, {1.126564,-0.447765}, {-1.441809,-0.432263}, {0.829316,-0.254776}, {0.276601,0.028482}, {0.321513,0.477089}, {-0.326903,-0.065775}, {0.181178,0.425015}, {-0.021201,-0.632189}, {0.196787,-0.270172}, {0.482211,0.760539}, {-0.021529,0.350678}, {0.538731,0.792097}, {-0.792762,-1.073304}, {0.269102,0.466839}, {-0.457873,-0.267988}, {-1.086786,-1.382579}, {-0.902461,-0.333688}, {1.449862,0.549708}, {1.103982,-0.815866}, {-0.331610,-0.126280}, {-0.434605,-0.574026}, {-0.564428,0.451053}, {1.065076,-0.142613}, {-1.067355,-0.781069}, {0.415735,0.395771}, {-0.257126,-0.498318}, {0.229113,-0.904408}, {0.475347,0.932772}, {-0.126197,-0.312728}, {0.015972,1.513573}, {0.072260,-0.478380}, {0.199441,-1.515994}, {0.801702,-0.148107}, {0.732459,-0.716389}, {-1.055474,0.377686}, {0.882117,-0.319396}, {-0.389893,0.614071}, {-0.426814,0.453146}, {-1.280709,0.307466}, {0.465162,-0.568253}, {-0.105649,0.264185}, {0.207625,0.360816}, {-1.212366,0.121881}, {0.229992,-0.215450}, {0.416004,-0.583465}, {0.716912,-0.118409}, {0.096084,-0.512867}, {0.186247,0.032560}, {0.028022,-0.556780}, {1.150752,-0.299593}, {-1.619091,-0.453159}, {-0.212540,-1.038386}, {0.255212,-0.885610}, {-0.279565,0.220245}, {-0.933030,1.702921}, {1.098960,-0.501176}, {0.621376,-0.194441}, {-0.046707,-0.191768}, {0.820383,-1.152666}, {-0.625110,1.133264}, {0.136433,-0.774816}, {0.450809,-0.089682}, {-2.456335,0.966943}, {0.912559,-0.737705}, {-0.981240,-0.672716}, {-0.364111,-0.695029}, {-0.339351,1.566577}, {-1.639069,1.051843}, {0.305872,0.958157}, {-0.506132,0.126778}, {0.213442,0.269895}, {0.219518,0.742494}, {0.850854,0.816322}, {0.239080,0.545993}, {-0.092504,0.731571}, {0.440567,-1.122125}, {0.610520,-0.413122}, {-0.578101,-0.718322}, {-0.222974,1.427200}, {0.545492,-0.056598}, {0.627889,1.317222}, {-0.048461,-0.116290}, {-0.394290,-0.229413}, {-0.462502,-0.045762}, {-0.200809,0.574322}, {0.339283,-0.584942}, {-0.393629,1.095376}, {-0.371673,-0.655765}, {-0.260952,-0.654112}, {1.083400,0.823028}, {-0.952867,-0.473551}, {-0.018485,0.260282}, {0.387338,0.088609}, {-0.988637,-0.394637}, {-0.651919,-0.458630}, {1.482098,0.311456}, {0.617416,0.339357}, {0.024986,-0.654472}, {-0.633096,-1.253554}, {0.316704,-1.543150}, {-0.309558,-0.064486}, {-0.027012,-1.213059}, {0.155906,-0.785986}, {-0.021507,-0.082515}, {1.588522,-1.195031}, {-0.385961,-0.717514}, {0.813259,0.823171}, {1.542545,-0.583962}, {0.699293,1.152578}, {-2.520775,-0.740568}, {1.650931,0.444675}, {-0.894331,-1.449709}, {-0.606002,-0.786614}, {0.612772,0.153705}, {-0.921274,0.922913}, {0.440139,0.658577}, {-0.229417,0.728289}, {1.547479,-2.279597}, {-0.319338,-0.157973}, {-1.461973,1.054925}, {-0.679512,-0.422229}, {-0.320076,-0.624900}, {-0.272455,-0.652699}, {-0.050571,-0.713983}, {-0.389856,-0.423589}, {-0.973979,0.062857}, {1.550694,-0.360476}, {0.159432,-0.127434}, {-0.372704,0.494970}, {0.300625,-0.256622}, {-1.003412,0.402113}, {-0.075613,-1.686128}, {0.482382,-0.480330}, {0.093242,-0.754616}, {0.281740,0.184726}, {-1.393960,-0.547393}, {0.536805,-0.148686}, {-0.465176,0.255458}, {0.306821,0.035537}, {0.559831,-0.109144}, {-0.714140,0.108895}, {0.217559,0.447498}, {-0.314098,-0.724385}, {-1.492888,-0.993242}, {-0.428441,-0.227405}, {0.188548,0.658179}, {0.768091,1.556233}, {-1.545457,-1.086941}, {0.140440,0.092669}, {0.537909,-0.495652}, {0.332552,-0.612271}, {-0.511223,-0.340514}, {0.079385,-0.114250}, {-1.463661,0.057599}, {0.223999,0.976185}, {-0.543545,0.027883}, {0.979747,0.489620}, {-1.192039,-0.798037}, {0.730126,-0.056639}, {-0.267151,0.693524}, {0.558097,0.153657}, {-0.696618,-1.338386}, {-0.909832,-0.096288}, {0.882699,0.742963}, {-0.275874,-0.809979}, {-0.053137,-0.168546}, {-0.422878,-0.367399}, {1.557298,0.459112}, {0.246203,-1.167259}, {-0.504330,-0.532256}, {0.987550,-0.885807}, {0.683296,-0.854008}, {-0.999180,0.227098}, {-0.668949,-0.025123}, {0.025665,-0.317833}, {1.113571,0.491572}, {-0.168884,1.194192}, {0.093188,-1.044563}, {1.753660,-0.163939}, {0.555963,-0.609948}, {0.794400,0.059530}, {-0.335538,1.145340}, {-0.230857,-0.288830}, {-0.449282,0.390382}, {0.306169,0.184478}, {-0.346556,-0.363817}, {-0.831726,0.067839}, {1.276276,-0.466759}, {0.244800,0.473109}, {-0.215391,-0.292773}, {-0.273257,0.201723}, {0.842924,-0.698762}, {-0.729074,0.256315}, {-1.456625,0.252573}, {0.559147,-0.282695}, {0.994685,0.128463}, {0.300242,-0.524755}, {0.229392,-0.252261}, {-0.262222,1.375848}, {-0.629900,0.580724}, {-0.886522,0.229244}, {0.175535,-0.159406}, {-0.005415,0.158939}, {0.950522,0.379940}, {0.346992,0.559263}, {-0.822353,0.315018}, {1.106625,-0.737253}, {-0.252764,-0.041978}, {-0.652043,1.078668}, {0.544128,-0.877090}, {-0.435260,-0.777845}, {-0.142025,0.692931}, {-0.031940,-0.162408}, {-0.737664,0.759069}, {0.018416,-0.910539}, {0.501767,0.015715}, {-0.525217,-0.909641}, {0.502059,1.002820}, {0.550277,0.890858}, {0.563253,-0.901443}, {-0.482929,-0.468226}, {0.459780,-1.053824}, {0.679393,-0.444330}, {-1.560609,0.500156}, {0.326860,-0.233930}, {0.014115,1.226398}, {-0.841667,0.256632}, {-0.986458,0.214088}, {0.561778,-0.293625}, {-0.166624,-0.623391}, {0.072308,-1.647830}, {0.261475,0.207571}, {-0.439805,-0.515374}, {-0.903760,0.247456}, {-0.992315,-0.455678}, {-0.736917,-0.314349}, {-0.760237,-0.334644}, {-0.808025,0.764268}, {0.962557,-0.746572}, {-0.497432,0.389293}, {-0.627429,0.078673}, {0.281879,-0.521353}, {-0.041629,0.996509}, {0.148478,-0.832781}, {0.241113,0.180056}, {0.427418,-1.070871}, {-0.528049,-0.483790}, {-0.523555,-0.270324}, {-0.304426,-0.037406}, {-0.137959,1.438044}, {0.928138,-0.431107}, {0.158206,0.475620}, {0.290347,-0.571426}, {0.518227,-0.212278}, {1.434704,-0.008646}, {0.870633,0.309615}, {-0.408402,-0.358914}, {-0.932732,1.867362}, {-1.106557,0.682544}, {0.700628,0.050873}, {0.606759,0.318505}, {1.100808,0.865530}, {1.167061,0.859812}, {-0.457106,0.360329}, {-0.412289,0.264824}, {0.121729,0.471512}, {-1.263924,0.036896}, {0.592224,-0.981550}, {-1.358297,-1.589214}, {0.370305,0.206402}, {-0.033672,-0.610428}, {0.084157,-1.167364}, {-0.925039,0.239143}, {0.529815,1.166401}, {0.059166,0.526304}, {-1.093501,1.010147}, {1.095547,-0.668412}, {-0.013464,-0.212740}, {0.318854,0.079713}, {-0.582878,0.209336}, {0.654810,0.042878}, {1.084759,0.085261}, {-0.816288,0.517988}, {-0.922044,-0.145496}, {-0.413527,-0.094974}, {0.921929,0.223829}, {0.834340,-0.632027}, {0.740097,0.472727}, {0.109634,-0.761616}, {0.181177,0.801596}, {-0.139230,0.351644}, {-0.919758,1.187038}, {-0.538770,-0.565291}, {1.101719,0.094469}, {0.063713,1.074669}, {0.544651,-0.008236}, {-0.043402,-0.182157}, {-0.337167,-0.066716}, {-0.942704,-0.275433}, {-1.247517,0.659809}, {0.260576,-0.850054}, {0.328842,-0.795337}, {-1.158718,0.621543}, {0.696945,-1.559381}, {-0.387067,-0.638698}, {-0.196632,0.228895}, {0.300199,0.872357}, {0.989715,1.032305}, {-0.595253,0.281982}, {-0.591831,-0.041140}, {0.274069,-0.351900}, {-0.204608,-0.274791}, {0.111010,1.228848}, {-1.030237,-0.321911}, {0.451188,-0.908440}, {-1.157873,-1.048536}, {-0.773016,-0.742834}, {-0.068020,0.052725}, {0.424745,-0.757197}, {-0.495433,-0.890633}, {0.095193,-0.673641}, {-0.838353,0.958686}, {-0.070324,0.364606}, {0.240110,-0.379039}, {0.814811,0.773006}, {-0.123048,0.360797}, {-0.383944,-0.049565}, {-0.384357,0.170201}, {0.027846,-0.520829}, {0.509019,-0.721829}, {1.510086,-0.121824}, {0.461037,-0.152050}, {-0.062760,0.456919}, {0.903696,-0.632184}, {0.147880,-1.655441}, {0.107131,0.254212}, {-1.168225,0.436568}, {1.645891,0.720458}, {0.637719,-0.054386}, {-0.674512,-0.595368}, {-1.647293,-0.454644}, {-1.427878,-1.542565}, {-1.299486,-0.638739}, {-0.789832,0.890510}, {-0.971617,0.239988}, {1.162886,0.122570}, {0.296613,0.157020}, {-0.651558,-1.195472}, {-0.483987,-0.676177}, {-1.459346,0.226026}, {-1.565833,-0.705405}, {0.562608,-0.783332}, {-0.335643,0.629401}, {0.601555,-0.527161}, {0.172194,-0.279522}, {1.396232,1.176078}, {1.057625,-0.239732}, {0.925509,-0.621106}, {-0.112643,-0.176105}, {-0.224907,-0.088044}, {-0.615717,0.351970}, {-1.022447,-0.343888}, {-0.611137,0.278950}, {-0.611510,-0.059484}, {-0.585823,-0.678989}, {-0.601954,-0.562345}, {-0.262591,1.266941}, {-0.772093,0.174441}, {-0.587666,0.893304}, {0.111368,1.608418}, {0.714706,-0.534446}, {-0.771247,0.120513}, {0.318155,0.438540}, {2.023913,0.190916}, {-0.212721,0.773555}, {0.232401,0.319443}, {-0.251844,-1.318009}, {0.162669,0.403618}, {0.827621,-0.529870}, {0.250448,-1.073482}, {0.059679,-0.063302}, {-0.194909,0.064858}, {0.480359,0.527630}, {0.037879,0.460448}, {0.486415,-0.957618}, {0.451010,-0.068816}, {0.968128,0.192947}, {0.831207,-0.164804}, {0.144330,-1.177113}, {-1.046468,-0.117025}, {1.453514,0.529669}, {0.462780,0.519148}, {0.355027,0.727646}, {0.355796,0.311839}, {1.776668,0.186074}, {-1.419462,-0.435581}, {-0.360595,-0.117783}, {-0.309289,0.349530}, {-0.530039,-0.873192}, {-0.106943,0.925020}, {1.306105,0.027449}, {0.580964,0.705161}, {1.478512,-0.101863}, {-0.202531,0.738568}, {-0.493564,-0.930668}, {0.268006,0.343200}, {0.459762,1.566772}, {-0.160910,0.379268}, {0.629888,-0.503718}, {1.381070,-0.364317}, {0.307948,-0.047268}, {0.796512,-0.935058}, {-0.700082,-0.972416}, {-0.298262,-0.605478}, {-0.323136,1.541209}, {-0.195020,0.416722}, {-0.086115,0.749763}, {0.435675,-0.521759}, {-0.104943,-0.146577}, {1.092303,0.546935}, {0.274549,0.086542}, {0.505962,0.274669}, {-0.720219,-0.028282}, {0.761485,0.999235}, {0.953266,0.149321}, {0.633826,0.108976}, {-0.930898,0.531887}, {-0.401657,1.460128}, {-1.032822,0.380031}, {0.199604,0.147336}, {-0.633607,-0.055812}, {-0.316084,-0.492567}, {-0.775544,-0.393868}, {-0.304902,0.496941}, {0.587243,0.404586}, {0.535787,-0.290660}, {0.526786,-0.492909}, {0.032885,-0.335402}, {0.254548,0.025119}, {-0.007256,0.956603}, {-0.781701,0.182978}, {-0.594395,-0.051752}, {1.137163,0.417077}, {-0.725425,1.703746}, {0.203050,-0.823786}, {-0.093223,-0.599492}, {-0.171074,0.434182}, {0.446139,-1.024946}, {1.307526,-0.924091}, {0.165343,-0.061759}, {0.847232,-0.364522}, {-1.687820,-0.966855}, {0.367350,1.007379}, {0.462134,-0.629192}, {1.480619,0.308647}, {-0.480776,-0.412441}, {-0.032728,0.426328}, {-0.723946,0.349359}, {-0.695635,0.225437}, {0.093643,0.801008}, {-1.148551,-0.246205}, {-0.049321,-0.459364}, {-0.241512,1.553192}, {1.138608,1.302721}, {0.263139,-0.527765}, {0.172326,0.638467}, {-0.425811,0.438227}, {-0.932956,0.082939}, {-0.145653,-0.835906}, {0.099492,-1.396676}, {-0.730089,-1.456065}, {0.328898,0.922454}, {-0.479136,0.168375}, {-0.693307,-1.117508}, {0.434907,0.255777}, {0.159500,-0.075837}, {0.606847,-1.786357}, {0.114103,-0.890503}, {0.475339,-0.639335}, {-0.501279,0.909314}, {-0.461021,0.340318}, {-2.371022,0.240045}, {-0.663024,-0.078565}, {0.408487,0.747418}, {-0.039952,0.544522}, {-0.346095,-1.181014}, {1.313543,1.313791}, {-0.286968,0.049342}, {-0.985057,0.416389}, {0.567016,-0.890193}, {-0.029613,-1.097792}, {-0.274942,1.279869}, {0.840626,-0.071335}, {1.103612,-0.346434}, {-0.971668,0.314411}, {-0.401788,-0.159312}, {0.876157,-1.020020}, {-0.187758,-0.633080}, {-0.737539,0.950549}, {-0.537099,1.220313}, {-0.354796,0.504951}, {0.516333,0.303805}, {0.744535,-0.050407}, {-0.305368,0.196347}, {-0.539320,-0.584686}, {0.578355,0.192718}, {-1.251327,0.031665}, {-0.988681,-1.128213}, {-1.076868,1.127315}, {-0.652836,-0.331953}, {-0.922967,0.220209}, {0.721116,-0.345270}, {0.102160,-0.184497}, {0.724131,-0.729485}, {0.311939,1.406437}, {-0.687354,-0.482095}, {-0.746110,0.490688}, {-0.290505,-0.930634}, {1.203664,0.171541}, {0.798127,0.241126}, {-0.347300,0.167841}, {-0.383096,0.527781}, {0.231403,-0.662014}, {1.208195,-0.842100}, {0.118811,0.382395}, {-0.971162,-0.657731}, {-0.109055,-1.321417}, {-0.166172,1.000512}, {0.245685,0.853006}, {1.179090,0.148636}, {-0.722005,0.218807}, {-0.356529,0.394081}, {0.283431,-1.474497}, {-0.528565,-0.181279}, {-0.309054,-0.447532}, {-0.302059,-0.835447}, {0.063289,0.197125}, {0.873344,0.283293}, {-0.827399,0.327898}, {-1.445307,0.015543}, {1.134014,0.449569}, {0.026380,-0.550346}, {-0.107964,0.656922}, {0.551898,-0.361890}, {1.354513,-1.238748}, {0.259696,1.783583}, {-0.954792,0.686831}, {-0.745327,-0.404158}, {0.454100,-0.837450}, {0.087043,-0.950885}, {0.505512,0.460524}, {0.404887,0.789404}, {-0.037236,0.441461}, {1.725802,0.267412}, {0.797967,0.244751}, {-0.978130,0.515460}, {0.542536,-0.075439}, {0.712379,-0.497695}, {-0.212806,0.608145}, {0.577898,-0.192766}, {0.489932,0.990213}, {0.119053,-0.729816}, {1.097182,-0.576013}, {-1.201042,-0.794151}, {-0.120795,0.066962}, {0.146414,0.603197}, {0.026528,-0.603082}, {-0.800504,0.268076}, {-0.343166,-0.407044}, {-0.102762,-0.303068}, {0.129492,1.346782}, {-0.258398,0.169313}, {1.243914,-0.592895}, {1.095122,0.260779}, {-0.600781,-0.189894}, {0.240113,0.082414}, {0.353061,0.355369}, {0.420819,-0.911021}, {0.696589,0.394239}, {-0.682780,0.358780}, {0.063955,-1.517855}, {-0.322178,-0.074134}, {-0.974101,1.406756}, {-0.526017,-0.353056}, {-0.640417,0.340377}, {-0.182126,-0.411452}, {-0.488776,-1.599695}, {1.517429,0.767395}, {0.603698,-0.721522}, {0.541078,-0.821337}, {0.110168,0.163595}, {0.212353,-0.539387}, {0.117418,-0.754495}, {-0.155305,-0.255334}, {-0.119331,0.141361}, {-1.467100,-0.792509}, {0.202781,0.268023}, {-0.814643,-0.407787}, {0.137034,-0.791640}, {-0.789811,-0.493989}, {-0.336780,-0.653000}, {-0.759226,-0.386969}, {0.455847,0.617339}, {1.664504,-0.591428}, {-0.206955,0.421407}, {-0.567116,0.215310}, {-0.634151,-0.216379}, {-0.474751,0.577085}, {0.580540,0.007682}, {0.431102,-0.313646}, {0.037617,-0.541906}, {0.586028,0.437426}, {1.122127,1.192700}, {0.679301,0.617392}, {-0.266514,0.750701}, {1.021989,0.573764}, {-0.471908,-1.137463}, {-0.275688,-1.347824}, {-0.260820,0.857808}, {-0.353317,-0.507878}, {1.482158,-0.115137}, {0.989099,-1.264611}, {-0.181237,-0.731317}, {-1.272231,0.000604}, {-0.050286,-0.518716}, {0.906532,0.073988}, {-0.725282,-0.708613}, {1.130826,0.492829}, {0.382025,0.118885}, {-0.289855,0.327266}, {-0.356868,-0.127456}, {-0.497037,0.347544}, {0.916516,-0.011213}, {0.795788,0.833036}, {-1.108708,0.654990}, {1.098447,-0.380100}, {-0.699273,0.774193}, {0.342752,-0.535842}, {0.047643,-0.227671}, {1.274331,0.341689}, {0.895537,-0.407677}, {-0.778889,-0.038155}, {0.698568,0.098739}, {1.916364,-0.661903}, {-0.845148,0.287349}, {0.837011,-1.241308}, {0.022716,-0.396469}, {-0.020420,-0.034983}, {-0.285681,-0.753360}, {-0.118651,-1.527316}, {-0.176143,0.446362}, {0.130017,-0.415744}, {0.318507,0.552840}, {-0.603890,0.207048}, {-0.523459,0.105243}, {-0.002344,-0.410590}, {0.476249,-1.748434}, {0.110030,-0.295667}, {-0.776678,-0.699187}, {-0.336088,0.120044}, {-0.132220,0.564894}, {-0.400230,-1.465552}, {-0.899290,0.326598}, {-1.442301,-0.087643}, {-0.008753,-0.630739}, {0.390787,0.192346}, {-0.340743,-0.440807}, {-1.539744,1.205671}, {0.627614,0.398445}, {0.127486,0.357655}, {0.135552,0.764774}, {0.518036,-0.218960}, {1.049276,-0.090579}, {-0.008401,1.454761}, {0.003514,0.918229}, {0.302454,0.976231}, {-0.961992,-0.017294}, {0.076837,0.668940}, {-0.348232,0.509916}, {-1.436588,0.235003}, {-0.084113,-0.570737}, {0.635977,0.515143}, {-0.580761,0.004320}, {-0.130124,0.718512}, {-1.064332,0.805427}, {1.314300,-0.425192}, {-0.597376,0.040773}, {-0.369787,0.951658}, {1.179303,0.302642}, {0.309178,0.951243}, {0.683143,-0.691633}, {0.595706,-0.308229}, {1.452309,0.693933}, {-0.597845,0.801738}, {0.458518,-0.343717}, {-0.149173,-0.241056}, {0.979689,0.240095}, {-0.599037,0.543307}, {0.354471,-1.145843}, {-0.020165,-0.398078}, {-0.123823,1.399765}, {0.024307,0.255874}, {0.390943,0.200198}, {0.660994,-0.236146}, {0.874927,0.787643}, {0.171618,0.136452}, {0.225134,0.175814}, {-1.009673,0.213737}, {0.778509,-0.536733}, {0.659917,-1.701921}, {-1.047737,-0.614887}, {-0.561108,0.215661}, {-0.185832,-0.245792}, {-0.486231,0.531170}, {0.116419,-0.145595}, {0.019939,-0.695158}, {0.144234,-0.507506}, {-0.396990,-0.833085}, {0.375825,-1.907635}, {-0.080535,0.196175}, {0.007163,0.589929}, {-1.106312,-0.916138}, {1.084560,-1.289281}, {0.700913,-0.454858}, {1.690164,-0.645198}, {0.472295,0.365814}, {-0.354035,-1.187006}, {-0.363422,-0.700427}, {-0.409595,-0.297748}, {0.222860,-0.488023}, {1.154380,-0.023766}, {-0.572994,0.995388}, {-0.522744,0.915831}, {-0.102298,0.075968}, {-1.113661,0.277819}, {-0.541258,0.942888}, {0.144149,-1.421493}, {-0.813628,0.518374}, {0.438114,-0.583365}, {-0.306953,-0.083300}, {-0.965428,-0.187021}, {-1.651694,0.301327}, {-0.358049,0.160427}, {0.494740,0.212273}, {-0.475793,0.129843}, {-0.513566,0.206706}, {-0.789498,-0.454014}, {-0.506331,-0.677233}, {-1.191360,-0.684613}, {-0.473632,-0.505620}, {1.704961,-0.000282}, {-0.748426,0.044751}, {0.722466,-0.271562}, {-0.114380,-0.029615}, {0.881983,0.732634}, {-2.466091,0.797042}, {0.107247,-1.069177}, {0.365094,-0.240360}, {0.860761,-0.392398}, {0.419712,1.024297}, {-0.733678,-0.114491}, {-0.387299,-0.698591}, {-1.111876,-0.894044}, {-0.338478,0.432863}, {0.374858,0.592964}, {0.132022,-0.172552}, {-0.566581,0.486986}, {-0.361814,-0.127256}, {-0.495429,-1.119817}, {-0.373163,0.277704}, {-0.451895,-0.150489}, {0.676212,0.462474}, {0.731097,0.067339}, {-0.391580,-0.221534}, {0.702811,0.805510}, {0.306927,-0.330470}, {0.202033,-0.281253}, {0.670677,-1.640630}, {-0.171426,0.129238}, {0.855865,-0.001158}, {0.902835,-0.314898}, {0.258288,-0.817972}, {-0.246663,-0.050172}, {-1.298989,1.057827}, {-0.194878,-0.869015}, {-0.989629,-0.909738}, {-0.566145,-0.028838}, {-0.537190,-0.250192}, {1.007348,0.083241}, {0.351506,-0.080267}, {0.167228,-0.274140}, {0.523975,-0.383455}, {-0.693140,-0.400584}, {-1.377034,-0.099976}, {0.687119,0.508089}, {0.624748,-0.713680}, {0.524963,0.852304}, {-0.365119,1.391765}, {-0.098955,-0.773518}, {0.099686,0.092521}, {-0.191519,0.113134}, {-0.246630,-0.849187}, {0.372718,-0.028201}, {0.209208,0.168457}, {0.531034,0.810682}, {-2.065181,-0.403745}, {1.662412,-1.025271}, {0.116164,-1.358371}, {0.871266,0.684274}, {-0.601819,0.436820}, {0.379071,-0.950469}, {-1.481672,1.328396}, {-0.215309,0.881097}, {1.543692,-1.302871}, {0.566876,-0.346706}, {-0.107790,0.187282}, {-0.050962,0.305967}, {2.234456,0.245861}, {0.922211,0.315870}, {0.170718,0.332505}, {-0.173235,0.269735}, {-0.034479,-0.147379}, {-0.910476,0.549261}, {-1.482071,0.073635}, {-1.006192,-0.257727}, {1.380736,0.159414}, {0.133536,-0.518567}, {0.452510,-0.297029}, {0.506554,0.634800}, {-0.223515,-0.113593}, {1.640303,-0.303890}, {0.451081,-0.579022}, {-0.423077,-0.310128}, {-0.515610,0.197095}, {1.449878,-0.575191}, {0.595091,-0.861876}, {0.467010,0.214356}, {1.126815,-0.412791}, {-0.768978,0.928791}, {0.662096,0.992854}, {-0.870112,0.867863}, {-0.444760,0.695527}, {0.545433,0.548246}, {0.900893,1.440884}, {1.009321,-1.093170}, {0.002783,-0.661035}, {0.446845,-0.962453}, {1.071007,0.104193}, {0.701488,0.155886}, {-1.495756,-1.595266}, {0.037920,-0.027757}, {-0.816584,0.442122}, {1.024597,0.061760}, {0.372463,0.656436}, {0.193900,-1.113707}, {0.702296,0.063060}, {-0.387018,0.640494}, {0.472535,0.526097}, {-0.113295,-0.461936}, {-0.549302,-0.072353}, {0.113877,1.728784}, {-0.503031,0.465992}, {-1.800512,0.344290}, {-0.291058,0.191364}, {-1.383239,-0.639046}, {0.301438,0.939880}, {-0.887944,0.532416}, {-0.337686,-1.497391}, {-0.273128,0.170892}, {-0.187554,1.292625}, {-0.335620,0.813804}, {0.302649,0.115870}, {-0.125463,0.244516}, {0.775593,0.754042}, {0.726695,-0.656969}, {0.888387,-1.134760}, {1.275522,-0.250979}, {-0.736736,-0.023197}, {-0.722655,0.071534}, {0.398133,-0.225856}, {-0.158094,-0.713822}, {-0.187789,1.530984}, {0.066136,-0.285781}, {0.337437,0.069203}, {-1.522060,0.359290}, {-0.410925,0.715260}, {-0.348957,0.792795}, {-0.822869,0.817856}, {0.215875,-0.611351}, {-0.606455,0.320282}, {1.436453,-0.107341}, {-0.330349,-1.194834}, {0.572256,1.303348}, {1.090097,1.118251}, {0.745744,-0.906311}, {-1.122036,-0.363927}, {-0.352830,0.069443}, {0.173709,0.298217}, {1.233522,0.305900}, {0.226477,-0.043980}, {-0.722420,0.493256}, {0.557195,0.058823}, {-1.094416,-0.312172}, {0.071648,0.977559}, {-0.387061,0.773792}, {0.338082,-0.019251}, {0.163224,-0.330960}, {0.610427,0.371691}, {0.323763,-0.522994}, {-0.668372,-0.370236}, {1.242604,0.090453}, {-1.050305,-0.440150}, {0.388379,-0.214487}, {-0.479460,-0.280957}, {-0.581688,0.708546}, {-0.651918,-0.699252}, {-1.289294,0.894307}, {0.430920,1.134885}, {-0.140695,0.119391}, {-0.113397,0.141629}, {-0.224160,-0.849461}, {0.145152,1.010905}, {0.114341,0.319432}, {-0.731503,0.963791}, {-0.805791,-0.234161}, {-0.097786,-0.078454}, {1.247790,0.056807}, {-0.066401,-0.334968}, {0.675039,-0.744820}, {-0.181113,-0.290322}, {0.651336,0.530368}, {-1.249633,-0.321314}, {-0.289785,0.448466}, {0.666290,1.196834}, {0.623286,-0.328105}, {-0.469083,0.311728}, {-0.641303,-0.664674}, {-0.033907,-0.670533}, {0.177868,1.697506}, {-0.216707,0.202837}, {-0.186939,-0.529367}, {0.022609,-0.126800}, {0.203477,-0.579855}, {-0.230490,1.011908}, {0.162921,1.168193}, {0.885725,-0.666452}, {0.277346,0.026881}, {0.127636,-0.291993}, {0.343859,0.254767}, {0.937021,-0.240389}, {-0.450499,-0.519208}, {0.026306,0.871227}, {-0.532201,0.361956}, {0.510303,-0.387441}, {-0.746218,0.107938}, {-0.043113,0.416857}, {-0.765734,-0.057674}, {-0.976013,-0.471322}, {-0.608322,-0.386790}, {-0.153345,-0.142873}, {0.282707,-0.174705}, {0.908893,-0.288510}, {1.248578,-0.267686}, {-0.733607,-0.318778}, {0.711804,0.106524}, {0.730638,-0.818837}, {-0.143297,0.775292}, {0.826449,-0.764265}, {-1.053740,0.429313}, {0.093451,-0.285474}, {0.092797,-1.313155}, {-0.990341,-0.497315}, {0.566588,0.912216}, {-0.641365,-1.513570}, {-0.399701,0.419908}, {0.550336,0.454210}, {1.130919,-1.011306}, {-0.648588,0.724713}, {1.530720,-0.329322}, {0.240109,0.297342}, {-0.803036,-0.672687}, {0.558095,0.210214}, {-0.415771,0.335389}, {-0.446871,-0.080301}, {0.439153,0.420859}, {0.454300,-0.120721}, {0.210916,-0.112178}, {-0.409692,-0.248721}, {-0.879181,-0.650745}, {0.314275,0.157443}, {-0.127992,0.459773}, {0.189201,-0.437353}, {-0.199317,0.335634}, {0.926867,-1.219475}, {0.990475,0.115756}, {-0.596768,0.519271}, {0.544668,0.177830}, {0.025311,0.718018}, {0.865983,-0.396329}, {0.931238,0.051218}, {-1.306796,0.890281}, {-0.038267,0.417608}, {0.423411,0.011136}, {-0.591386,-0.028572}, {-0.659057,-0.868477}, {-0.454503,-0.183610}, {-1.296091,0.623354}, {-0.369003,-1.032546}, {0.687142,-0.539728}, {0.702910,0.311785}, {0.486632,-0.654871}, {-0.698156,0.479333}, {-0.286491,0.023513}, {-0.061237,0.264710}, {0.815363,-0.724906}, {0.080431,0.452235}, {0.209167,-0.366842}, {0.238600,-1.015582}, {0.236585,1.119290}, {0.115878,-0.511488}, {0.417193,-0.342133}, {-0.132619,-0.383681}, {-0.309108,-0.467185}, {0.389856,-0.296845}, {0.862805,-0.845385}, {0.163740,-1.328876}, {0.841628,-1.134586}, {-1.314638,0.983453}, {0.007594,-0.151851}, {0.491880,0.589396}, {0.410562,-0.533815}, {0.152744,-0.382076}, {-0.814165,-0.726665}, {-1.054786,0.399620}, {-0.604055,0.219815}, {0.195637,-1.204522}, {-0.218163,0.389220}, {-1.060887,-0.365853}, {0.076152,0.972619}, {0.106557,-0.550138}, {0.350506,-0.580934}, {0.899491,-1.202793}, {0.006987,-0.237220}, {-0.621779,0.109460}, {0.758860,0.378667}, {0.665073,0.149904}, {0.514973,-1.076146}, {-0.531363,-0.151537}, {-0.160327,-0.372274}, {1.439986,-1.868230}, {0.189739,0.119885}, {0.203151,1.214735}, {0.227369,-0.449251}, {-0.320953,1.173650}, {0.362700,-0.413635}, {0.104156,0.742685}, {0.786895,0.217765}, {0.461444,-0.383361}, {-0.026425,0.050263}, {-0.700833,-0.176479}, {0.516268,-0.266494}, {0.542822,-0.196286}, {0.972150,0.282374}, {0.373345,-1.661969}, {0.848982,-0.275416}, {-0.147993,0.557783}, {-1.235018,-0.425926}, {-0.990208,-0.819959}, {-0.502916,0.897826}, {-0.963431,0.100756}, {-0.539236,-0.495820}, {0.043163,-0.313743}, {0.268113,-0.401802}, {0.094456,0.929705}, {0.434827,0.666465}, {-0.285961,0.540364}, {-0.067659,0.148652}, {-0.343734,1.625959}, {0.941489,-0.334072}, {-0.339727,-0.526445}, {0.793149,0.946932}, {-0.398235,0.623877}, {0.264790,-0.715621}, {-1.011724,0.322794}, {1.384937,0.455970}, {1.454257,0.048507}, {-0.306816,-1.428050}, {0.370468,0.733515}, {0.850482,0.067026}, {-0.026520,0.315161}, {0.553367,-1.038959}, {-1.381139,0.169341}, {-0.126396,0.774954}, {0.579820,-0.324341}, {0.690277,-0.552866}, {0.042603,0.250999}, {0.234958,-0.328548}, {-0.034987,-0.427424}, {0.017550,1.027859}, {0.639405,0.074327}, {-1.079853,0.773206}, {-0.255093,-0.538056}, {-0.516779,0.552364}, {0.588249,-0.122769}, {-0.180270,-0.526765}, {0.281459,-0.573820}, {-0.597178,0.884251}, {-1.459452,0.521668}, {0.475132,0.670896}, {0.364260,-0.003726}, {0.162263,1.430702}, {1.002323,1.191997}, {0.593734,1.105144}, {0.455673,-1.069412}, {-0.566892,-0.153912}, {-0.401493,0.730293}, {-0.616850,-0.357030}, {0.131704,0.877433}, {0.448159,0.531570}, {0.707994,0.388152}, {-1.120399,-1.558184}, {0.205040,0.110543}, {0.667577,0.900941}, {-1.023609,-0.438459}, {0.592556,-0.786459}, {-0.218398,-0.203380}, {0.274252,0.404389}, {-0.458191,1.011445}, {0.222179,0.858687}, {0.029628,-0.040130}, {-0.290997,-0.035703}, {0.309122,-1.492022}, {-1.010844,0.589316}, {-0.356162,0.305040}, {0.261650,0.718863}, {0.434287,0.022466}, {-0.076320,-0.343857}, {0.183141,1.026684}, {0.784650,0.184908}, {0.701212,0.267810}, {0.525909,1.299042}, {-1.685660,0.350329}, {-0.593831,-0.228072}, {0.017935,0.860203}, {0.840364,-1.130071}, {1.015367,1.442451}, {-0.901634,-0.746853}, {0.199565,-0.821338}, {-0.313785,0.748286}, {0.090435,0.856189}, {-0.393746,1.621984}, {-0.703148,0.813511}, {-1.461475,0.879518}, {0.943104,-0.598617}, {0.393415,-0.321067}, {0.352488,-0.808631}, {-0.262355,0.074378}, {0.444508,0.028535}, {-1.235967,0.087614}, {-0.366743,0.274720}, {-1.534213,1.187011}, {-1.288413,1.152383}, {-0.176366,0.392408}, {-0.479891,-1.289108}, {0.006065,-2.244152}, {-0.200774,0.584892}, {0.841201,0.359442}, {0.042903,0.605595}, {-0.050008,0.526026}, {0.545172,0.114942}, {-0.741202,0.452490}, {-0.662675,0.502251}, {-0.293925,0.361124}, {-0.174266,0.891888}, {0.214914,-0.044729}, {1.076459,-0.324856}, {0.028362,-0.712596}, {0.119129,0.420191}, {0.290109,-1.690392}, {-0.534984,-0.709829}, {0.928031,0.340022}, {0.329803,-0.001821}, {-0.789933,-0.997637}, {0.525651,-0.947355}, {0.800005,0.294846}, {-0.940716,-0.342722}, {1.153485,-0.757920}, {-0.372701,-0.015358}, {0.413703,0.474207}, {0.554610,-0.587293}, {0.609088,0.282538}, {-0.389165,-0.999838}, {-0.501062,0.425428}, {0.506568,0.864824}, {0.467536,0.041527}, {0.413553,-0.972673}, {-0.784710,-0.456333}, {-0.591675,-0.081141}, {-0.000096,-0.918489}, {-0.741971,-0.673887}, {0.423698,0.133942}, {-0.353825,-0.248892}, {0.265903,1.104794}, {1.155745,-0.487131}, {-1.230837,1.182218}, {-0.039358,-1.024105}, {-0.126243,-0.422831}, {0.083741,1.333631}, {-0.582043,-0.167835}, {-0.651064,-0.716060}, {-0.933496,1.031392}, {0.285776,0.119386}, {1.790267,1.839585}, {0.673148,-0.036901}, {0.060941,0.392402}, {0.439779,0.335930}, {0.482075,-0.508116}, {0.166439,-0.478669}, {1.468145,0.050076}, {0.697232,0.408675}, {-0.276139,0.399703}, {0.376897,-0.613126}, {0.465563,-1.169737}, {-1.834874,0.539662}, {-0.091337,0.444562}, {-0.997118,0.098997}, {-0.233274,-0.598737}, {-0.989027,-1.117883}, {0.624755,0.428710}, {-0.375702,-1.212512}, {-1.056685,0.388795}, {-0.909594,0.317522}, {-0.356905,-0.074151}, {0.524995,0.703629}, {0.314174,-0.403816}, {-0.491192,1.182237}, {-0.926085,-1.084090}, {-0.017806,0.842876}, {0.440742,-0.130747}, {0.272952,0.081986}, {0.441477,-0.697158}, {0.259341,-2.099767}, {0.831863,-0.033636}, {-0.502615,-1.206727}, {0.555998,0.859499}, {-2.056364,0.396201}, {0.341466,0.784581}, {0.343672,1.187463}, {1.274795,-0.151500}, {-0.628121,1.454649}, {0.565032,-0.448605}, {-0.207750,-0.820005}, {1.175663,0.211856}, {-1.633000,1.122887}, {-0.291601,2.700069}, {-0.622804,1.831482}, {-0.301059,0.509034}, {-0.427513,0.001459}, {-0.341017,-0.116875}, {0.022551,-0.314193}, {-0.918960,-0.674715}, {-0.129296,-0.117801}, {0.786287,-1.378251}, {-0.451442,-1.084505}, {0.942049,-0.109402}, {-0.219356,-0.655816}, {-0.878586,0.229613}, {0.675175,-0.893381}, {-0.932964,-1.161234}, {0.214065,-0.396179}, {-0.277875,1.353829}, {0.086688,-0.992670}, {0.266658,1.190433}, {-0.665654,0.447818}, {-1.073475,-0.902468}, {0.561274,1.066952}, {0.439581,1.398037}, {-0.038367,-0.253666}, {-0.180841,-0.607550}, {-0.663332,0.315716}, {-0.204138,-0.260854}, {1.300259,0.483273}, {0.488196,-1.506948}, {-1.576188,-0.122042}, {-0.161309,-0.070824}, {-0.163122,-0.342865}, {-0.647706,1.966371}, {-0.912235,-1.511959}, {0.246138,-0.881132}, {-0.400870,-0.146707}, {1.873068,-0.401651}, {-0.246960,1.020948}, {-0.309774,-0.749670}, {-1.658745,0.706234}, {0.137746,0.464169}, {-0.128249,1.229660}, {0.485569,-0.862653}, {-0.314748,-0.798912}, {0.596327,-2.260403}, {-0.739134,-0.774303}, {0.559885,2.133758}, {-0.378982,-0.458096}, {-0.645429,-0.411828}, {0.442957,0.412317}, {0.062638,-0.130068}, {0.913193,0.872129}, {-0.000645,-0.659925}, {-0.611296,0.051654}, {0.463594,0.106210}, {-0.172544,0.250975}, {-0.820128,0.059186}, {1.244089,-0.241306}, {-0.606408,0.162598}, {-0.516257,-0.453431}, {0.379360,-0.010924}, {1.694404,-0.098512}, {0.740398,-1.163674}, {-0.086404,0.808617}, {-0.788179,0.497859}, {0.518954,1.316377}, {-0.268101,-0.000552}, {-0.011397,0.127380}, {-0.776983,1.310111}, {1.155819,-0.536423}, {0.325867,0.129875}, {-0.305559,1.698206}, {1.469264,1.171590}, {0.052020,1.645200}, {-0.475098,0.752333}, {-0.478576,1.051189}, {0.209720,-0.846175}, {0.336027,1.281707}, {-0.457927,0.978607}, {0.434299,0.603314}, {0.819164,-0.707148}, {0.285992,0.200020}, {0.903948,0.841191}, {-0.374723,0.784422}, {0.270358,-0.432780}, {-1.131503,-0.204865}, {0.998721,-0.562161}, {2.709929,0.333403}, {0.277214,-0.599034}, {-1.049311,0.119009}, {-0.022257,-0.188019}, {1.186738,0.666140}, {0.855026,-0.173047}, {-0.518785,0.244153}, {1.443967,0.472201}, {0.268845,0.765957}, {-0.262575,-0.227543}, {-0.178477,-0.237919}, {0.718803,-1.198294}, {0.296576,-0.928266}, {-0.265587,0.333848}, {0.004683,0.050916}, {0.746835,-0.077362}, {-0.848756,0.639052}, {-0.435768,0.677006}, {-0.761960,-0.673618}, {0.483697,-0.006953}, {0.859446,0.342013}, {0.652033,1.150497}, {0.279404,0.172724}, {-1.654868,-0.062761}, {-0.628006,1.229600}, {0.434866,0.453249}, {0.674872,-0.018098}, {-0.880481,0.632858}, {0.357744,-1.100971}, {0.576850,-0.473425}, {1.084853,-0.458153}, {-0.135107,-0.068785}, {-0.519318,-1.097185}, {-0.391322,-0.857973}, {0.105697,0.637781}, {1.012647,0.768231}, {0.032431,-0.712690}, {-0.204606,-0.459269}, {0.385121,0.683265}, {0.360634,-0.324071}, {0.146076,-0.206186}, {-0.206886,-0.280858}, {0.331549,-0.657394}, {0.877392,0.663666}, {0.395278,0.505377}, {0.756041,0.859819}, {-0.571644,-0.580026}, {0.612494,-0.767403}, {0.440062,-0.276920}, {0.205130,0.951105}, {-0.082089,0.424510}, {-0.388500,-0.817454}, {-0.297097,-0.030734}, {0.564334,0.170313}, {-0.046735,-1.039128}, {0.236019,-0.606694}, {0.580484,0.228738}, {0.732596,1.402753}, {0.684455,0.312711}, {-0.114287,0.351727}, {0.132644,0.482891}, {-0.052996,0.413845}, {-0.092510,0.323390}, {-1.249163,0.744762}, {-0.144000,-0.150784}, {0.245751,-0.037541}, {-0.265020,0.824606}, {0.166448,-0.503386}, {0.221548,1.011519}, {0.705554,0.734803}, {-0.449412,0.766934}, {-0.041904,0.103437}, {-0.589535,0.745306}, {0.178707,0.543289}, {-0.049604,0.417483}, {-1.320194,0.671440}, {0.618327,0.293337}, {-0.035204,-0.955884}, {0.696789,0.975314}, {0.335561,-0.397880}, {-0.101238,-0.789334}, {-1.353433,0.224343}, {-1.536268,0.154368}, {0.290941,0.264984}, {0.054972,0.497049}, {0.249733,0.304852}, {0.072880,0.649790}, {-1.092497,-0.508302}, {-0.580980,-0.404179}, {0.684158,1.161387}, {1.027268,0.419341}, {-0.575905,0.422229}, {-0.586725,0.243471}, {1.044492,0.197131}, {-0.818624,-0.339106}, {1.028786,0.649399}, {0.128927,0.552989}, {-0.381191,-0.812393}, {0.255808,-0.783620}, {-1.000067,-0.814667}, {0.937145,0.594671}, {-0.138406,0.009326}, {0.646863,0.329219}, {0.114717,0.727041}, {0.534733,-0.274257}, {-0.076583,2.064369}, {-0.061055,0.387069}, {0.587603,-0.573761}, {-1.432342,0.080705}, {0.517872,-0.933701}, {0.257925,-1.369532}, {-0.882056,0.033029}, {0.272729,-0.396548}, {0.898916,0.232792}, {-0.323588,0.996638}, {1.414689,-0.936268}, {-0.063766,0.848570}, {-0.631058,-1.026964}, {0.144042,-0.577972}, {0.620716,-0.672317}, {1.311640,0.177935}, {0.355140,-0.394373}, {-0.892820,0.040002}, {0.669596,-1.423798}, {-0.728338,0.281565}, {-0.158685,-0.108162}, {0.294872,0.143540}, {0.154297,0.845158}, {-0.614381,0.567366}, {0.342103,1.116219}, {0.264975,-1.064063}, {-0.177622,-0.849517}, {-0.539107,0.444928}, {0.552126,-0.015861}, {-0.212621,0.081190}, {-0.653462,-0.566566}, {0.092306,-0.221675}, {1.100202,0.129533}, {1.004146,0.906987}, {-0.450678,-0.139092}, {-0.041574,0.880738}, {1.077768,0.691243}, {0.683594,1.009049}, {-0.782169,1.735141}, {0.450257,0.439635}, {0.529029,0.258264}, {1.138549,1.986809}, {-1.302507,0.020303}, {-0.283556,0.445303}, {-0.718645,-0.162901}, {-0.043436,0.596306}, {-0.253106,1.007761}, {0.511255,-0.417590}, {0.747033,0.272022}, {-0.558437,-0.347778}, {0.160240,-0.682185}, {-0.958911,-0.030034}, {-0.156077,0.031554}, {-1.151408,0.317689}, {-0.063615,0.309607}, {0.652097,-0.090736}, {0.093596,0.162455}, {-0.179022,1.654394}, {-0.242415,-1.079423}, {0.397297,-1.272118}, {-0.182965,0.130558}, {-1.227359,0.503225}, {0.010313,0.859745}, {-0.230950,-0.566212}, {-0.237624,0.329725}, {0.962370,-0.180738}, {-0.382887,-0.314282}, {-0.606405,1.263377}, {0.178244,-0.050770}, {1.157081,-0.144043}, {1.081460,-0.125683}, {0.287172,0.296327}, {-0.145758,0.931086}, {-0.235046,0.421208}, {-0.476461,0.823257}, {-0.425877,-0.436417}, {-0.164299,0.097882}, {0.438670,0.627963}, {-0.690073,0.733569}, {0.386280,-0.534213}, {-1.074264,-0.832657}, {0.059724,0.429346}, {0.241225,-1.310186}, {-0.041200,-2.185164}, {0.104350,0.419205}, {0.259056,-0.248550}, {1.271667,0.475120}, {-0.218242,1.164193}, {0.346768,-0.150378}, {-0.846548,0.308488}, {-1.063304,-0.776317}, {1.166478,-0.454347}, {0.033053,0.179463}, {-0.332293,-0.312112}, {-0.403124,-0.863969}, {-0.115242,0.881201}, {-0.443942,-0.049482}, {0.576722,0.121133}, {1.115690,-0.395430}, {-0.967709,-0.283118}, {0.238138,0.015244}, {-0.346183,-0.321679}, {-0.184817,-0.803985}, {0.428226,-0.424139}, {0.294728,1.082187}, {0.146915,-0.379303}, {-0.524167,0.099747}, {0.586104,-0.292682}, {0.078394,0.960573}, {1.670460,0.570454}, {0.535695,0.279784}, {-0.059247,1.179067}, {0.193284,0.103453}, {0.198475,1.316057}, {-0.354204,-0.801039}, {-1.095112,-0.629114}, {-0.739693,0.109626}, {-0.669776,-1.101214}, {-1.119037,-0.827679}, {-0.697044,0.582501}, {0.670182,-0.339850}, {1.052632,-1.151181}, {-0.013924,-0.148582}, {0.676350,-0.382496}, {-0.609900,0.145339}, {-0.467053,-1.060301}, {0.329805,1.116336}, {-0.657195,-0.381897}, {0.144469,0.365412}, {-0.455678,0.492839}, {0.164257,-0.588328}, {-0.215978,-0.137108}, {0.885806,0.550884}, {-0.512770,-0.358695}, {-0.059087,0.164926}, {-0.401278,-0.857801}, {0.648031,-0.168120}, {-0.175814,-0.106801}, {1.103215,-0.147023}, {-0.173378,-1.161128}, {0.048200,0.186641}, {0.382578,0.367532}, {0.470646,0.681831}, {-0.094808,0.385076}, {-0.227419,-0.100211}, {0.752327,1.031990}, {0.325679,-0.929947}, {-1.252363,0.747342}, {0.611128,0.470173}, {-0.717586,-0.267591}, {-1.351702,0.677071}, {-0.216029,0.531468}, {0.115357,0.016478}, {-1.068851,1.084321}, {0.464010,0.510275}, {1.225770,-0.765537}, {0.508388,-0.879914}, {-0.865601,-0.344538}, {0.685346,0.515833}, {-0.637203,-0.617789}, {0.279486,-0.543520}, {0.897987,-0.208160}, {-0.677693,-0.780875}, {-0.760403,0.397810}, {0.184177,0.176928}, {-1.069590,-0.614911}, {-0.132476,0.356640}, {-0.036611,-1.348685}, {0.173300,0.074283}, {0.665913,0.252531}, {0.876800,0.368352}, {0.239620,1.213974}, {0.392571,0.197044}, {1.445377,1.168005}, {-0.351908,-1.245911}, {-0.200333,-0.246884}, {1.165079,0.269904}, {1.102148,0.936739}, {0.415018,-0.692267}, {0.695930,-0.610682}, {0.337706,-0.194200}, {-0.406360,-0.428313}, {2.001919,0.298601}, {0.040240,0.021280}, {0.476985,-0.207150}, {-0.955785,2.342469}, {0.167188,0.627934}, {0.278484,-0.586048}, {-0.908941,0.243936}, {-0.146000,-0.877617}, {0.192032,-0.244236}, {0.975606,0.244268}, {-0.170990,0.257347}, {0.764497,-0.551919}, {0.058791,0.682466}, {0.065943,-0.984803}, {-0.912431,0.368831}, {0.855040,0.067306}, {0.749915,-0.835586}, {0.838403,-1.238493}, {-1.483938,-0.123001}, {-0.557550,-0.923933}, {-0.771014,0.386390}, {0.273899,-0.385988}, {0.750930,-0.659754}, {0.777048,1.433688}, {-0.209220,0.937272}, {0.205420,-0.235356}, {0.414937,0.418160}, {0.718236,-0.451301}, {-0.186269,-1.322922}, {-1.920077,0.476052}, {-1.398596,0.784435}, {-0.256580,0.180031}, {-0.532659,0.457304}, {-0.384892,-0.039057}, {-0.055613,-0.548142}, {0.527916,0.194822}, {0.823368,-0.281136}, {0.619060,-1.874924}, {1.444115,0.480538}, {-0.819634,0.380911}, {-0.423061,-0.352648}, {0.834671,1.128296}, {-0.327942,-0.116678}, {-0.313019,0.264847}, {-0.887367,-0.196781}, {0.102331,-0.425392}, {0.586136,-0.513125}, {-0.392544,0.760032}, {0.048821,-0.120578}, {-0.659257,1.355152}, {0.071198,-0.123784}, {-0.611575,-0.162787}, {0.600874,0.427984}, {-0.438527,-0.718199}, {1.021030,-0.206658}, {-0.040177,0.469484}, {-0.097920,0.431053}, {-0.227448,0.032859}, {0.438377,-0.490723}, {-0.127967,-0.318678}, {0.530951,-0.205032}, {0.306926,-1.611728}, {-0.155619,0.005610}, {0.364185,1.075986}, {-0.355830,1.056994}, {-0.416081,0.881061}, {-0.168114,0.891871}, {0.318273,0.022034}, {0.045802,-0.498750}, {0.874723,-0.261830}, {2.041322,0.581367}, {-0.434688,-0.889884}, {-0.625497,-1.424039}, {-0.916101,-0.012513}, {0.301928,-0.119459}, {0.054875,0.719308}, {0.113292,-0.985813}, {-0.256198,1.240920}, {0.110794,0.058590}, {0.475235,0.043136}, {0.265904,0.466909}, {0.569717,1.513256}, {2.460579,0.347629}, {-0.583997,-0.395316}, {1.412936,-0.136881}, {0.257743,-0.020675}, {-0.773710,0.598378}, {-0.155740,0.175291}, {0.708158,-0.303414}, {0.128797,-1.688465}, {-0.944673,0.178251}, {-0.419667,-0.800480}, {1.015229,0.451624}, {-0.563132,-0.098941}, {1.022619,0.269203}, {0.544089,-0.558886}, {0.285403,-0.945592}, {-0.249927,-0.639200}, {0.616154,0.448953}, {1.538937,0.176176}, {-1.072722,-0.731432}, {2.202183,-1.085427}, {-0.187007,0.862339}, {-0.009781,-0.919787}, {0.882595,-0.224292}, {0.328335,-1.466478}, {-0.425207,-0.406182}, {0.230537,0.884368}, {-0.295215,-0.639698}, {-1.490884,0.427221}, {1.247354,0.295467}, {-0.810296,0.889553}, {1.136726,0.000428}, {-0.448626,-0.265578}, {-0.375165,-0.970000}, {-0.029743,1.329743}, {0.191118,-0.149061}, {-1.198112,0.166633}, {-1.072263,0.604945}, {1.319951,0.678233}, {-0.286881,1.447051}, {-0.000431,-0.790107}, {-0.927154,-0.720568}, {1.244388,0.126044}, {0.361372,-0.563810}, {1.786158,0.068526}, {0.652693,-0.233381}, {-0.956019,-0.446398}, {-1.257622,-0.253433}, {0.262294,0.421673}, {1.178025,0.259483}, {-0.138056,0.076554}, {-0.338284,-0.760501}, {0.238752,-0.363470}, {-0.467720,-0.613917}, {1.727196,-2.032936}, {0.453188,1.148454}, {-0.860575,-0.211261}, {-0.134673,-0.149191}, {0.089986,-0.837997}, {-0.421324,0.572281}, {-0.154263,0.793297}, {-0.068541,-1.226925}, {-1.024731,1.765286}, {0.321293,-0.655162}, {-0.381602,0.084867}, {-0.761043,0.072325}, {-0.153164,-0.580169}, {1.095428,-0.725517}, {-1.360859,-0.509727}, {-0.015713,1.146405}, {0.080499,0.991718}, {-0.037406,0.203660}, {0.437657,0.772791}, {-0.335827,-0.643198}, {-0.748036,1.554296}, {0.056139,0.540525}, {0.855326,1.251389}, {1.512833,0.127560}, {-0.335811,-0.685869}, {0.049175,-0.612331}, {0.744695,0.303599}, {0.086665,0.554790}, {-1.437300,-0.698848}, {1.208241,0.809530}, {-0.368646,0.188188}, {0.918053,2.303752}, {0.542692,0.198394}, {0.895487,-1.142547}, {1.427584,-0.139881}, {0.366063,-0.559492}, {0.615816,-0.518515}, {1.683531,0.689662}, {-0.561367,0.740093}, {0.136173,0.685102}, {0.676639,0.746691}, {0.409337,-1.146213}, {-0.636375,0.027888}, {0.588745,0.274056}, {-0.722872,0.098504}, {-0.671533,0.012166}, {1.011527,0.719796}, {0.081135,-0.237933}, {-0.318500,0.963256}, {-0.817222,0.191993}, {-0.244338,0.114244}, {-0.596279,-0.365810}, {-0.075441,1.479957}, {-0.791400,0.528275}, {0.028476,-0.288631}, {0.165929,-0.171160}, {0.275183,0.915583}, {0.295522,-0.680658}, {0.488326,0.104785}, {-0.735568,-0.701452}, {-0.082936,-1.234151}, {-0.944770,0.415823}, {-0.723673,0.661138}, {0.020222,-0.209032}, {0.744207,1.798693}, {-0.650645,0.033519}, {-1.346394,-1.296518}, {0.979960,-1.559900}, {0.346991,-0.097270}, {0.844271,-0.832661}, {-0.627946,-0.340953}, {0.648317,-0.668772}, {1.035056,0.096494}, {-0.374343,0.301709}, {-1.959191,0.184104}, {0.354760,0.554715}, {0.461264,-0.291802}, {-1.445191,-0.676835}, {-0.390066,0.002849}, {-1.243483,-0.254016}, {0.756660,-0.152519}, {0.449951,-0.361801}, {0.032053,0.448066}, {0.301092,-0.018617}, {0.919110,-1.106308}, {0.688230,-0.751883}, {1.443475,0.290925}, {-0.336814,-0.202997}, {0.194678,0.132777}, {0.438428,-0.932498}, {-0.005527,-1.612383}, {-0.065145,-0.331485}, {0.569241,0.575176}, {-0.973392,0.141843}, {-2.301017,0.881275}, {0.784561,0.317932}, {-0.077933,0.914512}, {0.087316,-0.135682}, {0.092940,-1.181121}, {-1.310608,0.288132}, {-0.892082,-1.676985}, {0.916083,0.042083}, {-1.244578,0.624427}, {-0.334890,0.718718}, {-0.741767,-0.347100}, {-0.416327,-0.223633}, {0.086690,0.939596}, {0.888409,-0.085335}, {0.625874,1.037141}, {0.722036,-1.315310}, {-0.335910,-0.880128}, {-0.565481,-0.047599}, {0.935371,-0.398854}, {-0.727068,0.164967}, {-0.431810,-0.025259}, {0.528973,0.176538}, {-0.620117,-0.164306}, {0.113693,-0.756706}, {-0.026549,-0.082517}, {0.366109,-0.935198}, {0.574120,-0.696891}, {-0.329320,-1.004717}, {0.167355,-1.385869}, {-1.184704,0.231683}, {-1.687510,0.741804}, {0.460393,0.417694}, {0.913381,-0.623551}, {-0.025182,0.652840}, {0.149389,1.580919}, {0.046797,0.067857}, {0.445068,-0.193108}, {-0.087060,0.449112}, {0.444716,1.154858}, {-1.680048,-1.100377}, {0.060122,1.288340}, {1.811764,0.294464}, {0.172455,1.302739}, {-1.053456,-0.391417}, {-0.932098,-1.179288}, {0.822615,0.311778}, {-0.593686,-0.517305}, {0.592373,-0.858691}, {-0.941357,0.211116}, {-1.091715,-0.037219}, {0.397495,0.181766}, {-0.339179,-0.444183}, {0.202008,-0.835547}, {0.707791,0.284963}, {1.127548,0.443368}, {0.320918,0.693486}, {-0.408938,-0.202700}, {-0.474738,-1.197323}, {0.196347,-0.186877}, {0.133286,-0.981743}, {0.454869,-0.118595}, {-0.708891,0.915489}, {-0.124946,0.257625}, {-0.013053,-1.262217}, {-0.816680,0.357514}, {-1.325378,-0.000513}, {-0.471835,-1.666112}, {0.006822,0.861943}, {-0.609116,0.665514}, {-0.022823,-0.921185}, {0.334153,-0.307869}, {-0.200664,0.039748}, {-1.341585,-1.016766}, {-1.478115,-0.168005}, {0.493183,-0.315358}, {0.320896,-0.265798}, {-0.410948,0.749325}, {0.493700,0.609085}, {1.511312,-0.136707}, {-0.369151,-1.186832}, {0.053669,-0.453470}, {-0.344181,0.465001}, {-0.409580,1.225758}, {-0.040541,0.314214}, {-0.563372,0.154451}, {-0.296031,0.128113}, {-0.170489,-0.237342}, {0.484353,0.541345}, {-0.281269,-1.163252}, {-0.441618,-0.191346}, {-0.766963,-1.158696}, {0.683851,-0.047111}, {0.085014,-1.047429}, {0.435402,-1.193670}, {0.723781,0.086784}, {0.117848,0.731946}, {-1.001471,-0.568533}, {1.623786,-0.472448}, {-0.405629,-0.440914}, {-0.867240,0.860770}, {-1.370369,-0.367847}, {-1.068700,0.049127}, {-0.506801,0.070046}, {-0.571468,-0.279030}, {-0.936487,0.177180}, {1.208152,0.335738}, {0.547493,0.278008}, {-0.676350,0.122804}, {0.881113,-0.622278}, {-0.997446,0.228682}, {0.374538,-1.112491}, {0.018405,2.294138}, {0.190651,-0.275758}, {-1.066702,1.292937}, {0.453821,1.500667}, {-0.003891,-0.058122}, {0.483079,1.838471}, {-0.535369,-0.173664}, {-1.069100,-0.694773}, {-0.112032,-1.188326}, {0.855142,0.212202}, {-1.308295,-0.165234}, {-0.899488,-0.114441}, {-0.146224,0.097630}, {-0.510277,0.887175}, {0.821703,0.158980}, {0.853827,-0.985330}, {0.451970,0.343768}, {0.077419,-1.075895}, {-0.613300,0.876653}, {-0.747934,0.101782}, {0.456308,-0.448831}, {0.704574,0.516584}, {-0.123099,0.328140}, {0.934254,-0.065327}, {-0.598220,-0.151876}, {0.247193,-0.320853}, {0.710846,0.595196}, {1.133704,-0.279589}, {-0.213979,0.300774}, {-0.136586,-0.481220}, {-0.818138,0.623683}, {0.492634,-0.509161}, {0.233986,-0.216658}, {-1.803974,-0.101863}, {0.338246,-0.233200}, {1.210916,-0.191023}, {-0.419416,0.400604}, {0.174883,0.361058}, {0.041907,-0.084804}, {-0.565089,-0.646098}, {0.808848,-0.495713}, {-0.880710,-0.067991}, {0.466173,-0.432444}, {0.326814,0.655068}, {1.323321,-1.755300}, {-0.246832,0.422534}, {0.488638,0.630369}, {-0.672349,-0.571405}, {0.929277,0.597525}, {0.295168,1.180543}, {-0.443439,-0.167602}, {0.850886,0.731905}, {-0.130536,-1.019228}, {0.667789,-0.245031}, {-0.048100,0.713830}, {-0.693496,1.039212}, {-0.470569,-0.156852}, {1.071015,-0.851179}, {-0.141749,-0.228665}, {0.133398,0.157939}, {-0.920078,-0.522450}, {-1.336102,-2.023545}, {0.189471,-0.546281}, {0.600537,-0.493998}, {0.253657,0.643392}, {-0.844469,1.910885}, {0.805807,0.277348}, {0.113829,-0.394163}, {0.706544,0.990309}, {0.166811,-1.066923}, {0.713167,0.883103}, {1.297380,-0.698009}, {0.182918,0.196844}, {-0.582698,0.320323}, {1.179693,1.053822}, {1.973986,0.861945}, {0.831394,0.372738}, {0.036404,-1.044186}, {-0.322784,0.736748}, {0.465765,1.236812}, {-0.094890,-0.910340}, {0.534838,0.087896}, {-0.423018,0.473497}, {0.446821,-0.345740}, {1.370136,-0.313957}, {0.605235,-0.218558}, {-0.312323,-0.331415}, {-0.957650,-0.174169}, {0.438262,0.355984}, {-0.630817,-0.585063}, {0.844182,0.027599}, {0.255999,0.290238}, {0.195645,-0.309908}, {-0.361390,0.759387}, {0.793257,-0.590533}, {-0.272252,-0.825983}, {-0.524775,1.002337}, {1.025595,0.035075}, {0.144336,0.133347}, {-0.053176,-0.873734}, {-1.072797,-0.022777}, {-0.201704,-0.812261}, {0.406989,0.690699}, {0.167489,0.337122}, {0.954502,0.132945}, {-0.234877,-1.122684}, {-0.713308,0.242610}, {0.993134,-0.224591}, {0.195455,0.240318}, {0.176161,0.919258}, {-1.200962,0.602950}, {0.146329,-0.178380}, {1.905485,0.926800}, {-1.213910,-0.046545}, {-0.712013,0.163252}, {0.701015,0.587351}, {0.475746,-0.236882}, {0.681216,1.077988}, {1.005624,0.206876}, {0.503490,0.797294}, {-0.740207,-0.178577}, {0.049749,0.215896}, {0.121691,0.231312}, {0.307603,1.696005}, {0.149964,-0.357488}, {-0.833350,1.591904}, {-1.066643,-0.227741}, {-0.130385,0.289346}, {0.171775,1.229285}, {0.499181,0.204163}, {0.365325,0.432717}, {-1.116102,1.193373}, {0.816269,0.322493}, {0.044289,-0.038741}, {-0.081816,-0.660226}, {0.209952,-0.440067}, {-0.585770,-1.303251}, {-0.470685,0.187163}, {-0.273317,-0.063477}, {1.701860,-0.310642}, {0.235376,0.741904}, {-1.391462,-0.818046}, {0.891559,0.276066}, {0.397528,-0.407250}, {-0.245719,0.703900}, {0.408310,-1.425978}, {0.984774,0.218506}, {-0.226844,0.404807}, {-0.478742,-0.640515}, {0.194719,1.070898}, {-0.421489,-1.495545}, {-0.285219,-0.021769}, {0.805010,-0.178533}, {-1.462175,-0.074131}, {-0.012403,-0.230968}, {1.614191,-0.155847}, {1.208571,-1.196227}, {-0.757660,1.376246}, {0.948323,-0.100899}, {-0.537264,0.178661}, {-0.225242,-0.390378}, {-2.111611,-0.388815}, {0.591711,0.721370}, {-0.486270,-0.043296}, {-0.354134,0.102331}, {0.494296,0.500110}, {0.977534,0.912976}, {0.083083,0.580670}, {0.047811,-0.201119}, {-0.101871,1.602735}, {-0.299291,-0.338615}, {-0.517633,-0.181010}, {0.557599,-1.494308}, {-1.180601,-0.754826}, {0.843726,1.285523}, {0.248651,1.227134}, {0.385419,-1.487426}, {0.329802,0.523718}, {0.832042,2.344297}, {-0.483497,-0.042848}, {-0.571850,0.444970}, {0.578707,-0.332521}, {-0.383466,0.231784}, {0.026002,1.355058}, {0.290971,-0.253279}, {-0.280147,-0.381802}, {0.068319,-1.243266}, {1.056405,-0.214847}, {-0.804678,0.348259}, {-0.311298,-0.374442}, {-0.727188,1.198522}, {0.089518,0.348222}, {0.016808,0.138825}, {-0.165610,0.734759}, {-0.607876,0.020547}, {-0.381076,0.319154}, {0.771585,2.282850}, {-0.679082,-0.535810}, {0.922199,-0.104349}, {0.883859,0.707429}, {0.297841,-0.513259}, {-0.084643,0.804522}, {0.051716,0.095978}, {-0.214681,-0.166287}, {0.681025,0.064098}, {1.880843,0.324433}, {0.035759,0.351759}, {-0.184237,1.372837}, {0.089526,-0.380857}, {1.314891,0.090765}, {-0.166000,-0.408904}, {-0.487537,-0.303936}, {1.403138,-0.027080}, {0.874409,-1.421801}, {-1.455847,-0.180022}, {1.082291,1.664879}, {0.071012,0.797922}, {0.252097,-0.345585}, {0.278979,0.328135}, {0.096045,-0.823268}, {0.240866,0.568270}, {0.623840,0.074629}, {1.197388,-0.864621}, {0.010140,0.536038}, {-0.936742,-0.311617}, {0.229416,0.009804}, {-0.867776,1.059319}, {0.613966,0.475140}, {-0.213434,0.139105}, {0.725146,-0.742290}, {0.106239,0.386418}, {0.189119,-0.313432}, {-0.506237,-0.211804}, {0.625359,0.120521}, {0.723693,-0.672366}, {-0.960395,0.399574}, {0.120116,0.211127}, {0.862921,-0.124087}, {1.083842,1.379676}, {-0.596075,-0.150507}, {1.813520,0.153563}, {0.821543,0.716422}, {0.905501,0.148319}, {-0.281616,0.736664}, {0.523724,0.771024}, {0.736386,0.335333}, {0.704974,-1.258289}, {0.230135,0.149167}, {-0.183667,0.141978}, {0.343212,-0.472806}, {0.502101,-0.030266}, {0.302980,-0.873466}, {-0.047585,0.202728}, {-0.490690,-1.793145}, {0.072517,0.500160}, {0.574135,0.273335}, {-0.679558,-0.481851}, {-0.391140,0.833001}, {0.007197,-0.476483}, {0.755864,0.699900}, {0.023659,0.256314}, {-0.219938,-0.203388}, {-0.489864,0.259189}, {-1.006033,-0.103282}, {0.158715,-0.664053}, {-0.300183,-1.039796}, {-1.321861,-0.637445}, {-0.720415,-0.327571}, {0.251887,-0.485211}, {0.078411,-0.322993}, {0.056805,-0.293353}, {0.315853,-0.085568}, {0.222705,0.310332}, {-0.182731,-0.397738}, {-0.180319,0.561981}, {0.598215,-0.364178}, {-1.249949,-1.177746}, {-0.456053,-0.685671}, {0.954583,0.571800}, {1.014219,-1.278695}, {1.266613,0.223437}, {-0.283420,-0.474797}, {0.693306,-0.029207}, {0.273299,0.133892}, {0.532101,-0.320308}, {-0.594831,0.406073}, {-0.005518,0.766143}, {0.147701,0.838501}, {-0.745052,0.749668}, {0.936722,0.046095}, {-0.921153,-0.296284}, {0.230717,1.078411}, {-0.104489,0.089344}, {0.184105,0.646882}, {0.829563,-0.030537}, {0.646903,-1.032258}, {-0.266078,-0.192410}, {0.430983,-0.751174}, {-0.369734,0.154678}, {1.027273,-1.123325}, {-0.284810,-0.673581}, {-0.198272,0.710599}, {-0.664385,0.828056}, {-1.078880,0.714872}, {-0.474676,0.242386}, {0.680091,-0.410467}, {-0.127690,-0.562865}, {-0.234136,-1.291910}, {-0.304469,-0.626725}, {0.530474,0.566233}, {-0.109255,-0.557004}, {0.087012,0.988810}, {-0.750837,-1.577521}, {0.347408,-0.389814}, {1.437412,0.283755}, {-0.159056,1.128835}, {0.004413,-0.144927}, {0.088644,-0.027569}, {-0.079487,-0.229503}, {0.870379,-0.028245}, {-0.138882,1.645245}, {-0.177149,-0.495996}, {-0.040567,-0.960823}, {0.701093,-0.753669}, {-0.268945,0.477653}, {0.519034,-0.856936}, {1.010434,0.014817}, {0.314739,0.141389}, {0.838768,0.270923}, {-0.922034,0.148587}, {0.537647,1.022497}, {-0.184456,0.248540}, {-0.702941,0.129272}, {-1.199959,-0.484713}, {0.775146,0.641877}, {1.355787,-0.061010}, {-0.273411,-0.344273}, {-0.079652,-0.580078}, {-0.294108,0.383430}, {-0.663756,0.764663}, {-0.029209,0.187390}, {0.458825,0.020946}, {-0.759974,-0.072059}, {-0.762552,2.339859}, {-0.691081,0.637021}, {0.066676,-0.267145}, {-0.000870,-0.130399}, {-0.128295,-0.090600}, {0.434282,-1.040424}, {0.064080,0.311479}, {0.445593,-1.427874}, {0.309938,0.341331}, {-0.668997,0.293917}, {1.532275,0.452357}, {1.468994,0.022104}, {-0.581643,1.003752}, {0.923086,0.272041}, {0.469483,0.205555}, {0.066270,1.032433}, {-0.223936,0.193990}, {0.722656,0.900099}, {-0.460502,0.026773}, {0.264304,0.263321}, {0.011564,0.998830}, {-0.852220,-0.735707}, {-0.367962,0.277292}, {0.912905,-0.022560}, {0.474794,-0.033505}, {0.383646,0.014366}, {-0.147667,-0.066343}, {0.496019,-0.698605}, {0.466197,0.778409}, {-0.005985,-0.917034}, {0.364603,-1.005913}, {-1.127720,-0.496130}, {0.530754,-0.710343}, {0.817573,-0.478350}, {1.542207,1.147533}, {-1.015912,-0.392767}, {-0.528064,-1.332638}, {-1.655403,0.790160}, {-0.192199,0.863973}, {-0.148335,1.398748}, {0.231018,-0.580136}, {-0.028057,0.350163}, {-0.078239,-0.095824}, {-0.368671,-0.118777}, {0.143814,0.563598}, {-0.286646,-1.756129}, {0.331342,0.411717}, {0.402591,0.419929}, {0.267689,0.344904}, {-0.737596,0.808101}, {-1.479648,-0.212449}, {0.354386,1.310559}, {-0.676218,-1.049757}, {-0.115748,-1.162720}, {-0.325709,-1.636897}, {0.093754,0.067673}, {-0.266273,-1.083043}, {-0.366387,-0.814048}, {-0.315910,0.796504}, {1.358526,0.414087}, {-0.674816,-0.587575}, {-1.084357,-0.761996}, {1.170537,-1.118362}, {-0.888671,-0.372056}, {0.206631,-0.197368}, {0.151309,-0.017645}, {-0.639638,-0.158684}, {-0.818429,-0.799644}, {0.193617,0.138892}, {-0.330140,0.508120}, {-1.023892,-0.005087}, {-0.492779,-0.242526}, {1.190477,0.548598}, {0.380355,-0.428248}, {-0.443627,0.322194}, {0.643475,-0.610225}, {1.639932,0.217874}, {-0.075206,-0.891935}, {0.472977,0.806206}, {-0.049387,0.521157}, {0.775513,1.120129}, {-0.820993,-0.580519}, {0.787248,0.471905}, {1.982564,-0.239183}, {0.036994,-0.084856}, {0.397587,-0.108305}, {0.717829,-0.658020}, {0.096854,-1.073618}, {-0.247410,0.105690}, {-0.636805,-0.001866}, {0.249262,0.170546}, {-1.384929,-0.181014}, {0.394318,-0.470332}, {0.312685,-0.971393}, {0.126831,1.201348}, {-0.741448,-0.364570}, {0.885990,-0.170062}, {0.946030,0.048529}, {-0.814388,0.775904}, {0.365165,-0.393381}, {-0.910022,-0.285627}, {-1.692124,-0.058729}, {-1.176468,0.344140}, {-0.680828,-0.802456}, {1.430130,-1.167865}, {-1.009736,-0.292885}, {0.780604,0.117665}, {-1.183708,-0.191115}, {-1.109502,-2.955782}, {-0.679155,-0.425963}, {-0.478117,-0.857997}, {0.559869,1.189793}, {0.693475,0.705402}, {-0.069617,-0.231592}, {-0.824859,-0.475262}, {-0.613227,0.171012}, {-0.972368,-0.750733}, {0.572478,-0.362034}, {0.400015,0.093211}, {-0.664619,-0.115371}, {1.629905,1.260396}, {-0.887239,-0.880451}, {-0.475993,1.783962}, {-0.535449,0.374335}, {-0.268655,0.381528}, {-0.048788,0.080243}, {-0.263956,0.156544}, {-0.201047,-0.681716}, {0.007541,-0.270714}, {0.968368,-1.040116}, {1.598093,-0.868513}, {0.608883,-0.925775}, {-0.292500,0.359309}, {0.781647,-1.854675}, {-0.048384,-0.358500}, {-0.045277,0.182846}, {0.702542,-0.682803}, {-1.310088,0.288354}, {-1.111262,-0.253839}, {-0.610601,0.629673}, {-0.077137,-0.288207}, {-1.248534,-0.678787}, {0.589672,-0.209868}, {0.328118,0.280762}, {-0.130254,0.359489}, {-1.191280,-0.282377}, {-0.727137,0.795181}, {-0.332298,0.545214}, {0.449265,0.809670}, {-1.176652,0.024432}, {-0.444225,0.247852}, {-0.493719,-0.443957}, {0.490093,-0.462030}, {0.894083,-0.428290}, {-0.808464,0.061714}, {-0.438031,-0.880389}, {-0.374120,-0.133532}, {0.109504,0.714367}, {1.199793,-0.870295}, {-0.016396,1.234340}, {0.176536,0.170704}, {1.583727,-1.037287}, {-0.408359,0.192187}, {-0.716863,-0.030518}, {-0.087939,-0.157292}, {0.233970,-0.789071}, {0.448874,-0.318136}, {-0.001706,0.203524}, {-0.583113,0.483299}, {0.032509,-1.159109}, {0.243543,-1.545598}, {0.963137,-1.858378}, {-0.433912,0.106663}, {-0.584636,-0.554822}, {-0.169820,0.694442}, {-0.694692,-1.420531}, {0.124368,0.308158}, {-0.371740,-1.256747}, {-0.371259,-0.345713}, {-0.080108,-0.248600}, {-0.508996,-0.502867}, {-0.259720,-1.107589}, {-0.479506,-0.625836}, {-0.966428,-1.108758}, {0.199396,0.684562}, {-0.139579,-0.532375}, {-0.671940,1.263705}, {0.583387,-0.545125}, {0.594017,0.135560}, {0.295089,-0.517450}, {0.227495,-0.116494}, {-0.278437,0.070346}, {1.252146,0.161429}, {-0.719420,-0.400126}, {0.411649,0.672294}, {-0.067492,-0.147642}, {0.773465,0.447213}, {-0.096564,0.687259}, {0.223581,-0.672181}, {-1.189369,-1.012300}, {0.378992,-1.602545}, {0.528201,-0.184505}, {0.555361,-0.073704}, {0.641793,-0.149102}, {0.614789,0.145011}, {-0.014245,0.835852}, {-0.433430,-0.150091}, {1.265735,-0.171617}, {0.424119,0.261458}, {0.543597,-0.019062}, {0.106955,-0.352852}, {0.259824,-1.044464}, {-0.134395,1.294968}, {0.614190,0.103061}, {-0.472730,0.440592}, {0.026255,1.541770}, {-0.680532,0.748520}, {-1.652447,-0.981050}, {1.530492,0.410946}, {0.590749,-0.057968}, {-0.204753,-0.053539}, {-0.146540,0.407365}, {-0.589178,-0.794021}, {1.057477,0.390612}, {-0.318475,0.110593}, {0.860875,-0.484007}, {-0.853862,-0.303066}, {-0.640767,-0.247635}, {-0.661993,0.487274}, {-0.132963,-0.470698}, {0.276424,0.103581}, {0.269608,-1.122638}, {-1.094199,0.419837}, {0.466955,-0.942801}, {1.061330,-0.773058}, {0.504520,0.613301}, {0.975902,0.530381}, {-0.030956,0.526710}, {0.231220,-1.339298}, {-0.011487,0.006031}, {-0.018207,-1.410146}, {-0.042725,-1.430596}, {0.082844,0.468408}, {-0.592661,0.098480}, {0.011226,0.279928}, {0.032576,-1.292298}, {-1.290445,0.847037}, {0.901504,-0.435370}, {-0.728679,-1.694385}, {0.869029,1.438773}, {0.348432,0.771641}, {0.433021,-0.359444}, {-0.716851,-1.686122}, {0.654974,-0.546823}, {-0.288514,0.307206}, {0.656826,0.217168}, {-0.688401,0.403697}, {-0.151237,-0.641147}, {0.280761,-0.025080}, {1.352524,0.262260}, {-1.020794,0.502821}, {-0.308908,-0.753609}, {-1.227055,-0.566285}, {1.246124,-1.216215}, {-0.096449,-0.082642}, {-0.582940,0.409202}, {-0.297638,0.527261}, {-0.473862,-0.847413}, {0.493371,0.316474}, {-0.505728,-0.462956}, {-0.595404,-0.478184}, {0.282216,-0.370408}, {-0.648353,2.154436}, {0.388833,-1.448003}, {0.520432,0.059147}, {-0.013529,0.455994}, {0.939385,-0.134557}, {0.620260,0.444285}, {0.242877,-0.212567}, {0.864014,1.110652}, {-0.433176,0.148295}, {-0.467423,0.654889}, {0.385444,0.838910}, {-0.451962,-0.686281}, {-0.028356,1.160879}, {-0.420737,0.282096}, {0.276441,0.183335}, {0.644401,0.809729}, {-0.038628,-0.032380}, {-0.689183,0.615413}, {0.685082,0.193192}, {0.603120,-0.720557}, {0.575454,-0.298269}, {-0.336636,0.032836}, {1.167203,-0.640395}, {-1.086856,-0.481934}, {1.008476,1.002123}, {-0.884676,0.816595}, {1.107577,-0.884024}, {0.478516,-0.707394}, {0.258192,-0.748370}, {-0.741356,0.392670}, {0.705741,-0.514239}, {0.153360,0.250206}, {0.332233,0.401451}, {-0.810436,0.247146}, {0.382241,0.492063}, {-0.120140,-0.666149}, {0.219067,-0.351762}, {0.503475,0.143766}, {1.810909,-0.522492}, {0.914236,1.024772}, {-0.001545,0.951413}, {-0.361359,-0.703397}, {-0.790543,-0.080398}, {-0.124326,0.712994}, {0.989520,0.282750}, {-0.639085,-0.593687}, {0.532412,0.985720}, {-0.814493,-0.684384}, {-0.335779,-0.770313}, {-1.021545,0.405681}, {-0.711770,-1.295042}, {0.875563,-0.431312}, {-1.424888,0.070227}, {0.041671,0.512540}, {0.560060,-1.156517}, {0.495886,0.815220}, {0.932619,0.063747}, {0.015802,-0.313213}, {0.849039,0.928043}, {-1.711563,-0.070807}, {-0.666807,-0.065413}, {1.336124,0.298359}, {-1.465749,1.267894}, {0.643581,0.208283}, {-0.027162,0.285537}, {0.727538,0.592374}, {-1.035589,0.161733}, {-0.093690,-1.111324}, {-0.118812,-0.492105}, {-0.310044,0.136076}, {0.423281,0.738354}, {-0.332121,-1.129243}, {0.821705,-1.094517}, {0.034405,-0.125589}, {-1.061441,-0.025527}, {0.262581,0.337586}, {0.089369,-0.030417}, {0.001538,-0.262250}, {-0.603561,0.120004}, {-0.666026,-0.523188}, {-0.604976,0.661149}, {0.424495,0.063530}, {-0.459048,0.273275}, {-0.759139,-1.058355}, {0.788408,-0.233671}, {0.420774,-0.023008}, {-0.057270,-0.647363}, {0.332215,-0.161691}, {-0.241240,0.285908}, {-2.248124,-1.075027}, {1.897230,1.332517}, {-1.000960,-0.341355}, {-0.764357,0.742789}, {-0.430048,0.351628}, {-0.758480,-1.168399}, {-0.435465,-1.025082}, {-0.031475,1.442605}, {-0.098961,0.902862}, {-1.182562,1.622450}, {-0.779323,0.082419}, {0.456925,0.197176}, {-0.508334,-0.322065}, {0.508929,1.414049}, {0.831596,-0.269084}, {-0.557522,0.829015}, {-0.307706,1.811900}, {0.522715,0.538211}, {-0.007168,-0.369323}, {-0.617961,0.598800}, {-0.978429,-1.276183}, {-0.311683,-0.168769}, {0.813820,-0.732024}, {1.620090,0.776415}, {-0.244712,-0.030740}, {0.423419,0.437735}, {-0.438972,0.722604}, {-0.882370,-0.599715}, {0.861613,0.144139}, {0.794431,-0.119300}, {0.174561,0.355555}, {-0.691546,0.900205}, {0.994296,1.262278}, {-0.693701,0.809946}, {0.153439,0.433443}, {-0.125105,-0.519678}, {0.091914,0.929540}, {0.307382,1.281497}, {-0.219573,-0.230141}, {0.323594,0.781383}, {0.898631,0.775206}, {0.511558,-0.475861}, {0.097796,-0.356711}, {0.279638,1.045159}, {1.270842,-0.511080}, {-0.082679,0.240138}, {0.568139,-0.004501}, {0.109403,-0.183895}, {-0.739424,1.048188}, {-0.054909,-0.730640}, {-0.107852,-0.216831}, {0.685852,-0.120568}, {1.372181,0.079369}, {-0.057168,-1.475400}, {1.379104,-0.416757}, {0.674217,0.132367}, {0.823818,0.008095}, {-0.227594,-1.181870}, {0.154429,-0.278722}, {-0.380589,1.327236}, {0.953822,-0.415279}, {0.523925,-0.065958}, {-0.336928,0.243956}, {0.552334,0.546455}, {1.968980,-0.255377}, {0.071926,-0.528260}, {-0.242553,0.409914}, {0.794756,-0.821838}, {0.670664,-0.016080}, {-0.195775,-0.420098}, {-0.437345,-0.444139}, {0.929108,0.038056}, {-0.034900,0.359362}, {-0.646337,0.250061}, {0.164494,-0.964178}, {0.217552,-0.079574}, {0.616784,-0.219605}, {0.274625,0.461819}, {0.600045,0.609724}, {-0.227316,0.212501}, {-0.681566,-0.149931}, {0.613788,0.331795}, {-0.746826,-0.495927}, {-0.352302,-0.492596}, {-0.234966,-0.714624}, {0.209031,0.429705}, {0.909196,-0.574662}, {-0.264863,1.129618}, {-0.418314,0.193085}, {0.140225,-0.055672}, {-0.259935,0.107007}, {0.577398,-0.501482}, {-0.700274,0.431435}, {-0.320978,-1.214359}, {0.040677,-0.504970}, {0.621603,0.489428}, {-0.775181,0.755810}, {-0.449114,-0.259854}, {-0.964709,-0.189900}, {0.571927,-0.612827}, {-0.510919,0.532547}, {1.043521,0.076593}, {0.559284,1.091596}, {0.385705,-0.620434}, {-0.281876,1.139602}, {0.696445,0.461885}, {0.144423,-0.355093}, {-1.477952,0.389119}, {1.033198,-0.665606}, {0.301267,0.413149}, {-0.437421,1.527053}, {-0.688981,0.779191}, {-0.736537,-0.869510}, {0.633416,0.485837}, {-0.217942,-0.604167}, {0.052318,-0.432202}, {-0.404016,0.007563}, {0.371806,0.924113}, {0.685100,0.792052}, {0.338713,-1.831682}, {0.116368,-0.901689}, {0.859729,-0.187662}, {0.532246,-0.609526}, {-0.252737,0.583202}, {0.802405,-0.891543}, {-0.657884,-1.409923}, {-1.011401,-0.576367}, {-0.518947,0.454590}, {-0.760309,0.886904}, {0.551054,0.077816}, {-0.056155,-0.399365}, {-1.188687,-0.144384}, {0.348530,-0.718497}, {0.040766,0.421674}, {0.054193,-1.058049}, {-0.703027,0.823753}, {0.674644,0.568892}, {0.653971,-0.029957}, {-0.330844,0.894927}, {-0.355906,0.469251}, {-0.548867,1.196719}, {-0.316741,-0.112885}, {-0.050654,-1.074386}, {-0.458463,-0.052899}, {-0.323981,-0.056114}, {-1.226962,-0.781318}, {-0.793700,0.814978}, {0.588809,0.468163}, {0.297339,0.292342}, {-1.189165,-0.848667}, {-0.401703,-0.893584}, {0.275424,0.119550}, {-0.152022,-0.594732}, {-0.937268,0.649621}, {0.139979,0.423321}, {-0.267033,-0.061451}, {0.460158,0.411101}, {0.102352,0.520000}, {-0.670053,0.131062}, {-0.547779,-1.300149}, {1.065430,-1.272432}, {0.850852,-1.537153}, {-0.127321,-0.412569}, {0.497995,-0.760964}, {0.618018,-0.962779}, {-0.367868,0.358651}, {0.418133,-0.031711}, {0.827988,-0.299697}, {0.418025,-0.080342}, {0.227770,-0.733112}, {-0.522901,0.220810}, {0.036422,-0.204918}, {1.192243,-0.320297}, {0.640624,-2.005424}, {1.277127,0.447780}, {-0.277087,0.657680}, {-0.277141,0.773988}, {-1.130237,0.935414}, {0.284414,0.813877}, {-0.174957,1.139543}, {0.300714,-0.749478}, {1.404330,-1.232405}, {-0.313154,-0.213062}, {0.652658,0.241568}, {1.120691,0.518463}, {0.224488,-0.153773}, {0.375402,0.482763}, {0.435975,0.236790}, {1.127072,-0.422277}, {0.580361,1.063162}, {-0.955583,0.064231}, {-1.802524,0.616951}, {0.463128,-0.562220}, {0.556800,0.473310}, {0.658684,-0.639963}, {-0.085954,-1.135439}, {-0.243128,-0.126796}, {-0.207362,-0.333691}, {0.056183,-0.707808}, {0.902377,-0.681407}, {0.152853,0.619626}, {-0.603487,0.293431}, {0.133038,-0.379933}, {0.264123,-0.101897}, {0.861720,1.091886}, {-0.479815,-0.165089}, {-0.508836,0.900798}, {-1.131878,0.459296}, {0.037585,1.004276}, {-0.480040,0.214050}, {0.156506,-0.222274}, {0.690720,0.133503}, {0.429938,-0.394251}, {-0.791723,-0.605653}, {-0.554200,-0.418231}, {-0.655144,-0.346624}, {0.054409,0.359821}, {-0.198795,-0.563282}, {0.006104,0.725420}, {-0.447277,0.540059}, {-0.240985,0.280044}, {0.637304,-0.116014}, {1.381762,0.955712}, {-0.148803,0.395996}, {0.461393,0.840140}, {-0.627308,-0.418263}, {-2.171597,-0.599572}, {0.080969,0.894764}, {0.237331,-0.687851}, {0.226158,-0.331895}, {0.210506,-0.350461}, {-0.043257,-0.021596}, {0.551392,0.221253}, {0.410879,-0.257200}, {0.735420,0.692801}, {-0.812522,0.436671}, {-1.425556,-0.022695}, {1.337264,-0.118216}, {-0.196561,-1.121436}, {-1.635570,-0.545684}, {-0.259296,0.302864}, {0.233845,0.231713}, {-1.369904,0.069084}, {0.310104,0.568822}, {-0.074240,-0.389091}, {0.513558,0.016256}, {0.154059,-0.551779}, {0.139022,0.002589}, {1.252789,-1.075694}, {-0.357876,0.779981}, {-0.057981,-0.578702}, {-0.348248,-0.564724}, {-0.281181,0.160394}, {0.755197,-1.493796}, {0.349744,-0.585402}, {-0.097265,0.568082}, {-1.207000,0.702378}, {-1.086582,0.502455}, {-0.274557,-0.175564}, {-0.663327,-1.099270}, {0.025018,-0.858302}, {0.251512,0.181174}, {0.948731,0.438021}, {0.278818,-0.736799}, {0.384640,0.133641}, {-0.269113,0.522492}, {-0.192256,0.710115}, {0.052306,0.974402}, {0.154651,-0.268357}, {-0.131640,0.099690}, {-1.309976,-0.291957}, {0.346624,0.382487}, {0.516366,0.707133}, {0.697076,1.540016}, {0.490790,-0.397012}, {1.123760,0.916850}, {0.515663,0.434250}, {-1.638678,-0.176421}, {1.167902,-0.355185}, {-0.264941,1.971705}, {0.745419,-0.542922}, {-0.754792,-0.652504}, {1.369699,-0.283123}, {-0.372842,-0.062135}, {-0.746602,-1.311843}, {0.620061,-0.729972}, {-0.014445,-0.658271}, {0.344167,0.003698}, {-0.842281,1.037953}, {-0.843122,-0.523207}, {-0.318300,-0.179022}, {-0.323143,0.019886}, {0.430288,0.041221}, {0.360478,0.640265}, {0.483503,-0.160184}, {0.244137,1.233902}, {-0.545883,0.318665}, {0.247693,-0.469566}, {-0.321296,0.284737}, {1.147200,0.641921}, {1.216635,0.890397}, {0.486701,0.456830}, {0.550060,-0.222243}, {-1.397045,0.187919}, {0.912252,-0.441861}, {1.245188,-0.318386}, {-1.140431,0.133960}, {-0.223423,-0.543275}, {-0.259693,0.710342}, {0.100516,0.525350}, {-0.101837,-0.378891}, {0.004744,-0.651883}, {0.701837,0.505055}, {1.259750,0.414716}, {1.619510,-0.525369}, {-0.927012,0.502818}, {-0.687559,0.774157}, {-1.015032,0.154981}, {0.783957,0.857966}, {1.055951,1.123508}, {0.124867,-1.198195}, {-0.122501,-0.319462}, {0.522490,1.035699}, {0.047462,-1.064514}, {-0.069016,-0.011192}, {-0.061777,0.932923}, {-0.496995,0.483659}, {0.960503,0.102691}, {-0.858251,-0.587168}, {-0.679635,-1.149459}, {0.778286,0.086740}, {-0.797912,0.786926}, {0.043148,-1.618909}, {0.354889,1.345281}, {1.176276,-0.529673}, {0.612892,1.322230}, {0.784053,-1.188249}, {-0.921667,1.036610}, {-0.328724,-0.039212}, {0.462540,1.173392}, {-0.104801,-0.346268}, {-0.531985,0.372684}, {-0.788000,0.243345}, {0.882742,-0.834651}, {0.691050,0.394536}, {-0.122631,0.586303}, {-1.264893,-0.525182}, {0.461967,0.151354}, {0.776068,0.123712}, {0.063297,0.200959}, {0.136792,-0.138604}, {-0.573293,0.711280}, {0.738962,-1.300857}, {0.159731,-0.141142}, {-0.359106,-0.029247}, {-1.076380,0.376036}, {0.572506,-0.942929}, {0.367264,0.437083}, {-0.507908,-0.742628}, {-0.012061,0.227037}, {-0.747644,-0.353159}, {-0.998729,-0.220973}, {-0.587253,-0.390827}, {-0.094152,0.756393}, {0.448719,0.149999}, {-0.218918,-0.048559}, {-0.015560,-0.440495}, {1.434334,-1.392218}, {0.077947,-0.359505}, {1.786997,-0.312543}, {0.255695,-0.381884}, {-0.301675,-0.104294}, {0.700752,0.109512}, {0.170083,1.699975}, {-0.434933,0.267685}, {0.402053,-0.343667}, {0.698429,0.834043}, {-0.331847,-0.731839}, {-1.146666,-0.701629}, {-0.002935,0.704111}, {0.205245,0.690760}, {-0.683238,0.215240}, {-0.646288,0.694404}, {0.325711,-0.046830}, {0.592448,-0.308384}, {1.529366,-0.987481}, {-0.295320,-0.271241}, {0.729563,-0.167488}, {0.642193,-0.120176}, {-1.548146,0.885333}, {0.351531,0.897226}, {1.595430,1.246450}, {-0.486378,-0.288596}, {-0.302011,0.618312}, {0.182741,0.420557}, {1.113837,0.316246}, {0.527597,0.254757}, {1.415948,-0.051085}, {0.520356,-0.721367}, {-0.144424,0.705921}, {-0.070251,-1.038962}, {-0.218357,1.041630}, {0.729530,-0.690915}, {0.128689,0.314481}, {-0.117418,0.402299}, {0.241349,-0.167075}, {0.360539,0.711009}, {-0.001491,0.204478}, {0.487177,-0.385142}, {0.480899,0.083528}, {0.905059,-0.668149}, {0.473028,0.683468}, {0.048413,-0.513762}, {0.392684,-0.016979}, {0.008658,-0.397690}, {0.312022,-0.290086}, {-0.224513,-0.203352}, {-0.700904,1.285464}, {-0.209541,0.152510}, {-0.689456,0.082655}, {-0.090242,0.461600}, {-0.012036,-0.301713}, {-0.301809,1.238924}, {-0.329893,-0.021590}, {0.223851,0.421586}, {0.317937,1.311734}, {0.075659,-1.100616}, {0.582116,0.136126}, {-0.364256,-0.625304}, {0.014662,-0.234577}, {-1.092968,0.618389}, {-0.238227,-0.574362}, {-0.417061,-1.373738}, {-0.534463,0.792450}, {-0.112449,-0.282805}, {-0.579626,0.953945}, {-0.737441,-1.782889}, {-0.761315,-0.665039}, {-0.230262,0.334866}, {-1.640518,0.345659}, {-0.183278,1.207714}, {-0.155715,0.262073}, {0.495034,0.977896}, {0.267491,0.395822}, {0.020021,-0.525175}, {-0.409405,0.155372}, {-0.637273,0.397385}, {0.569432,-0.826493}, {-0.300224,-0.571919}, {-0.419535,0.627416}, {-0.670691,0.736638}, {0.148186,0.842415}, {-1.898319,0.635542}, {-0.194627,-0.501422}, {0.649891,0.952195}, {-0.213436,-0.681949}, {-0.868013,-1.363636}, {0.613184,-1.017739}, {-0.840052,-1.564144}, {0.723446,-0.354610}, {0.654592,-0.818130}, {-0.712827,-0.762259}, {0.166346,0.489915}, {-0.302822,-0.693097}, {1.358446,-1.355483}, {-1.139428,0.086305}, {-1.082740,1.498861}, {-0.329648,0.147864}, {-0.174769,-0.118863}, {0.845277,-0.480739}, {-0.289794,-0.173351}, {0.837552,-0.021153}, {-0.033429,0.650532}, {-0.718426,-0.668466}, {-0.238433,0.483005}, {-0.720576,-0.226939}, {-0.565185,-0.899305}, {-0.586429,-0.847011}, {0.948211,-1.151628}, {0.079392,-1.199359}, {-0.196210,-0.018502}, {0.092218,-0.902690}, {0.545633,-0.702880}, {0.953190,-0.244621}, {-0.122974,-0.872691}, {1.001723,0.399548}, {0.773129,0.292586}, {0.369522,1.099643}, {-0.128016,0.145086}, {0.432098,-0.694186}, {0.830267,-0.548718}, {0.960296,-0.000663}, {0.811884,0.184881}, {-1.071500,0.409177}, {0.738243,0.409131}, {0.073622,0.031693}, {-0.046745,0.274024}, {-0.115489,-0.411869}, {0.216582,-0.319286}, {0.753995,-0.498359}, {-0.216480,-1.134280}, {-0.021988,-0.433786}, {-0.327947,0.395941}, {0.075096,-0.558661}, {-1.031386,-0.090874}, {0.661876,0.234726}, {-0.032586,-0.957959}, {0.675562,-0.062058}, {0.089478,0.117239}, {0.758516,-1.036737}, {0.363183,-0.269026}, {0.465104,0.683736}, {0.515043,0.202359}, {1.572937,-1.193864}, {-0.456658,-0.051996}, {-0.262883,-0.004140}, {1.536223,-0.941011}, {0.241501,-1.081946}, {0.376242,-0.059869}, {1.661854,-0.122313}, {-0.171189,-0.902749}, {0.163209,0.109854}, {0.838006,-0.570945}, {-0.403151,0.401615}, {-0.941536,0.224667}, {0.254770,0.119757}, {0.010017,0.650252}, {-0.849219,-0.093818}, {0.438965,0.528280}, {0.585909,0.170241}, {-0.231668,-0.647083}, {-0.812408,-0.241565}, {-0.270441,-0.747414}, {0.351427,-0.136789}, {-0.454502,-1.594160}, {-0.128552,-0.381218}, {0.852571,0.550196}, {-0.082519,-0.975152}, {-0.118825,-0.587947}, {0.118019,0.174990}, {0.977679,0.989980}, {-0.687867,0.152383}, {1.597743,0.880373}, {-0.926928,-0.305081}, {-0.676320,0.054946}, {-0.480725,-0.568788}, {-0.366417,1.067759}, {0.017773,1.235424}, {1.404835,-1.087228}, {-0.967946,0.352186}, {-1.229937,-0.317813}, {-0.051257,-0.039613}, {-0.580332,-1.096354}, {1.377717,0.775992}, {-0.525138,-0.051334}, {0.341863,0.010390}, {-0.994051,0.551957}, {0.554196,0.888456}, {-0.096138,-0.120533}, {0.772601,-0.270712}, {0.643594,-0.087350}, {0.409067,-0.299266}, {-0.679971,-0.342567}, {0.589620,0.703170}, {0.636779,1.389787}, {-0.824128,-0.335895}, {0.607159,0.420643}, {1.373971,-0.342893}, {-0.910657,0.837440}, {1.034973,-0.352405}, {1.085682,1.920129}, {0.064748,0.257708}, {0.862755,0.755955}, {-0.684932,0.094005}, {0.112119,-1.441972}, {1.163420,-0.049867}, {-0.635217,0.609453}, {-0.238855,0.480435}, {1.449328,-0.098448}, {0.784127,-0.652244}, {0.769041,-0.937921}, {0.835573,0.295585}, {-0.062899,1.494506}, {-0.062220,0.228891}, {0.481334,-0.470990}, {-0.505073,0.374573}, {-0.099382,-0.967523}, {1.186319,-0.831618}, {-0.399300,0.931511}, {-1.524902,-0.985501}, {-0.615012,0.547274}, {0.268857,-0.076929}, {-0.897427,1.088771}, {1.055351,0.095282}, {1.708821,-0.076167}, {-0.739946,-0.354375}, {0.373417,0.855748}, {0.131967,0.285461}, {-0.364408,-1.708271}, {-1.014175,0.495565}, {0.505787,1.003443}, {0.391683,-0.524584}, {0.752228,0.882360}, {-0.394883,1.502965}, {-0.997717,-0.172972}, {-0.230813,0.301756}, {0.669804,-0.121530}, {-0.070862,-0.368520}, {1.320153,-0.521160}, {-1.390873,0.259563}, {1.146922,0.597540}, {0.281829,-0.449891}, {0.295038,0.408987}, {-0.202209,-1.183362}, {-0.399018,-0.672154}, {1.004778,-1.104954}, {0.143005,0.049996}, {0.232512,0.669719}, {0.094630,-0.576997}, {0.667844,0.367973}, {-0.537996,0.626066}, {1.033757,-0.285931}, {0.992368,-0.514368}, {-0.319021,0.248041}, {1.579195,-0.231515}, {-0.582862,0.913516}, {-1.085018,0.556959}, {-0.024787,0.559586}, {0.402267,0.959849}, {-0.032095,-0.548640}, {-1.150115,-0.539607}, {0.385566,-0.409285}, {-1.471116,0.537079}, {0.392795,-1.486643}, {0.328634,-0.040776}, {-0.084120,0.830458}, {-0.524122,0.922066}, {-0.416595,-0.044276}, {0.100140,0.462444}, {-0.590881,1.340948}, {-0.891718,0.723849}, {0.337707,-0.670773}, {0.721537,0.536058}, {0.059957,0.287448}, {0.400511,-0.763103}, {-0.550953,-0.197097}, {0.591824,0.441947}, {0.447746,-0.502807}, {-0.167608,-0.888259}, {1.103233,-1.437809}, {0.199023,0.063524}, {0.202555,0.322043}, {-0.976584,-0.396812}, {0.372419,-0.791595}, {1.289941,0.357281}, {-0.228916,-1.001487}, {1.049654,-0.610849}, {-1.054080,-0.370253}, {0.859058,-0.644741}, {-0.377507,0.207554}, {-0.559546,0.074691}, {-1.074664,1.355183}, {0.305625,0.198544}, {-0.606985,0.356763}, {0.242896,-0.375304}, {-0.749774,-0.181054}, {-0.342246,-0.259054}, {1.589396,1.010118}, {1.140405,-0.864599}, {-1.096629,-0.377337}, {-0.496940,0.605907}, {-0.664267,-0.651997}, {0.951590,0.175420}, {-1.117929,-0.261231}, {-0.534170,0.241918}, {-0.781527,0.244559}, {-0.271591,0.486803}, {-1.256120,0.858586}, {-0.421249,0.405847}, {0.479353,-0.525636}, {0.209101,0.142047}, {-0.083113,0.886645}, {-0.471083,-0.416663}, {0.011834,-0.389550}, {0.669072,-1.245624}, {-0.598668,0.117422}, {-0.173989,-0.056465}, {-0.922954,0.482571}, {0.522571,-0.365634}, {0.042361,1.106480}, {0.655395,-0.034779}, {0.631652,-0.294389}, {1.527036,-0.058525}, {-0.249208,0.459807}, {-0.887983,-0.627558}, {-0.289353,-1.411403}, {0.054751,2.470137}, {-0.248717,1.053043}, {-0.735576,0.010779}, {-0.514003,-0.279226}, {0.305765,1.274540}, {0.534981,0.774853}, {0.392611,-0.644576}, {-0.468937,1.078119}, {-0.541705,1.414380}, {0.277103,0.165488}, {-0.387851,-0.830792}, {-1.253914,0.532510}, {-0.221315,1.797991}, {0.274370,0.277949}, {-1.765567,0.046853}, {-0.327146,-0.297614}, {-0.984489,-0.168465}, {-0.660634,-0.450022}, {0.198917,-0.218025}, {-0.677175,-0.172085}, {0.644052,0.285876}, {0.088023,0.232635}, {-0.451399,-1.512956}, {-0.377844,-0.626486}, {-0.362430,-0.127407}, {-0.840019,0.380215}, {0.114939,0.878416}, {0.470442,-0.105566}, {-0.585039,0.237390}, {-0.815600,-0.504437}, {-0.161445,0.036143}, {0.296359,1.325861}, {-0.322171,-1.669738}, {1.477603,0.776825}, {0.381550,-0.635687}, {-0.694525,-0.559498}, {-1.930663,-0.704911}, {-0.449682,-0.545347}, {0.026977,-0.127266}, {0.233908,0.544153}, {-0.863452,-0.074155}, {-0.649361,2.113175}, {-1.059833,0.624585}, {0.846892,-1.573266}, {-0.217441,-0.559443}, {-0.160678,1.002391}, {0.804081,-0.338683}, {-1.541742,0.230370}, {-0.503421,-0.416987}, {1.028147,0.529024}, {-0.596178,0.738456}, {-1.173493,0.202724}, {-0.297988,-0.661943}, {0.302419,0.866482}, {-0.521944,-1.270284}, {-0.436218,-0.097784}, {-0.264531,-0.550600}, {1.014478,-0.038692}, {-0.999085,0.486181}, {1.440740,-0.371893}, {-0.042694,0.067326}, {0.093956,-0.957300}, {-0.375195,-0.970154}, {-0.251632,-1.304492}, {-0.414494,1.099568}, {0.017527,0.168563}, {-1.263777,0.285450}, {0.068131,0.327754}, {1.105079,0.539763}, {0.981225,-0.468582}, {0.551992,-0.036035}, {1.124159,-0.005432}, {0.611806,-0.979175}, {0.483684,-0.518734}, {-0.366983,0.455012}, {-1.008954,0.471497}, {-0.133646,-0.509659}, {-1.029489,0.006309}, {0.530972,-0.509375}, {1.140833,0.249621}, {-0.211773,0.138957}, {-0.537149,1.254415}, {-0.213279,0.065513}, {-1.082796,0.529235}, {0.350453,0.444304}, {0.031279,-0.234978}, {-0.543908,0.234837}, {0.487194,1.375390}, {0.215563,-0.549211}, {0.072623,0.165267}, {0.801105,-0.987048}, {0.269412,0.711896}, {0.027622,0.562303}, {-0.813866,-0.782547}, {-0.093912,0.227673}, {-0.172055,0.060514}, {0.074656,-0.266314}, {1.217632,-0.605089}, {-0.535103,-0.616239}, {0.151379,-0.076634}, {0.642760,-0.481053}, {0.035701,-0.056708}, {0.980441,-1.299210}, {-0.856956,-1.002073}, {0.598486,0.466839}, {-0.386966,-1.046460}, {0.625117,-0.115207}, {-0.260750,-0.041046}, {0.076652,-0.932881}, {0.265818,0.764649}, {0.421985,-0.714312}, {-0.601085,0.964101}, {0.467187,-0.124653}, {-0.387454,0.211856}, {-0.157263,-0.585296}, {0.418027,-0.077462}, {1.583309,-0.609096}, {0.884257,0.515131}, {0.138889,-0.138020}, {-0.169847,0.059272}, {0.540075,0.309144}, {0.557179,1.418778}, {0.610912,0.512799}, {-0.873253,0.692568}, {0.120274,-0.853970}, {-0.586573,-0.561751}, {-0.672660,0.694987}, {1.109601,0.008173}, {1.003841,-0.652223}, {0.874688,0.367941}, {-0.330203,0.745219}, {-0.753140,0.915769}, {-0.696116,0.227309}, {0.346841,0.100445}, {0.740158,-0.250985}, {-0.397857,0.594584}, {1.110536,0.339610}, {0.345296,-0.347319}, {-0.907915,-0.471159}, {-0.649958,1.565001}, {0.775790,-0.287460}, {1.032125,0.130026}, {0.907496,1.390180}, {0.298254,-1.588717}, {-0.259348,0.502732}, {0.220840,-0.783740}, {-0.138042,-0.590126}, {0.426154,-0.091085}, {0.405208,0.611676}, {-0.204049,-0.083068}, {0.159682,0.740970}, {0.942561,0.693500}, {-0.610743,0.303196}, {0.172349,1.598668}, {1.627400,-0.281164}, {0.551930,0.098748}, {-0.388243,0.433245}, {-1.235033,0.763915}, {-0.744667,-0.561124}, {-0.592271,-0.641181}, {0.156840,0.347964}, {-0.023119,0.533539}, {0.011757,1.073952}, {-1.186307,0.280738}, {0.756950,1.492111}, {-0.877649,0.112185}, {-0.585789,-0.254425}, {0.038438,-0.550157}, {0.314995,0.322778}, {-0.134760,0.871567}, {-1.044096,-0.636270}, {0.590711,0.558388}, {0.209019,0.293453}, {-0.599300,0.026492}, {1.033710,-0.675529}, {-1.954583,0.594947}, {-0.182764,0.343157}, {0.859978,0.329311}, {0.646436,-0.806192}, {-0.046664,0.909861}, {1.093129,0.536020}, {0.872300,0.678087}, {-0.123750,0.457168}, {0.551871,-0.941036}, {0.794294,-0.407648}, {-1.538821,-0.171563}, {-1.035249,0.118770}, {-0.348383,-0.118152}, {-0.226615,-0.889496}, {1.341554,0.160355}, {-0.351517,-0.424568}, {-0.070817,0.414649}, {-0.442786,0.423882}, {-0.388425,1.093738}, {-0.582796,0.676209}, {0.752177,0.821946}, {-1.006474,0.412201}, {-0.416449,-0.072394}, {-0.911661,1.041543}, {0.003509,0.102477}, {0.196127,0.591685}, {0.326262,-0.526969}, {-1.042304,0.505778}, {-1.505353,-1.006878}, {-0.951996,-1.085898}, {-0.317499,0.045335}, {-0.099205,0.858056}, {0.764524,1.480639}, {0.517856,0.207770}, {-0.742181,0.240161}, {-0.555104,-0.871874}, {-0.699238,-0.986373}, {-0.763561,-1.000094}, {0.670026,-0.733751}, {0.662880,-0.655407}, {0.119571,-1.657008}, {-0.223206,-1.113342}, {0.487176,0.474053}, {0.192200,1.888510}, {0.611398,-0.667669}, {-1.403757,0.409866}, {0.024463,-0.041370}, {-0.609262,0.806420}, {-0.907307,1.198974}, {0.162117,-1.544459}, {-0.796786,0.537950}, {-0.387992,-0.266020}, {-0.225214,-0.058790}, {0.753621,0.972150}, {-0.615864,1.401833}, {-0.819524,-0.597168}, {0.647379,-0.468126}, {-0.655050,-0.432251}, {-0.069667,-1.062873}, {0.359295,0.145826}, {0.647484,0.920104}, {-0.101287,-0.687857}, {0.695485,0.112454}, {0.685476,-0.236214}, {0.374271,-0.144157}, {-1.779720,-0.300198}, {0.145786,0.213707}, {0.038580,-0.033343}, {0.672791,1.277813}, {0.479531,1.053826}, {-0.907617,-0.059189}, {-0.172751,0.074425}, {-0.349068,0.726073}, {0.008332,0.348492}, {0.319315,-0.391381}, {0.402430,0.078896}, {-0.391121,0.722606}, {0.081394,0.035975}, {0.604639,0.636573}, {-0.598326,-0.581740}, {-1.369758,1.353076}, {-1.032156,-0.428532}, {-0.405163,0.809273}, {-0.638386,-0.671499}, {-1.571366,-0.098790}, {-0.047946,-0.327424}, {-0.535140,1.485649}, {0.572495,-0.533611}, {0.769134,-0.416792}, {-0.122776,0.855205}, {0.281802,-0.669203}, {0.694392,-0.350054}, {-0.516665,0.498350}, {-1.145787,0.669606}, {-0.587504,-1.078295}, {-0.906257,1.099786}, {0.713687,-0.104260}, {0.500828,-1.120030}, {0.201346,0.446714}, {0.571867,0.307374}, {-0.307728,1.383134}, {-0.066681,0.450119}, {-0.848761,-1.038823}, {1.032712,0.224183}, {0.061333,-0.310979}, {0.468093,0.223010}, {-0.199854,-0.913527}, {-0.857930,0.211259}, {-0.587648,-0.245449}, {0.353839,-0.297458}, {0.888759,-0.874265}, {0.403853,-0.386048}, {0.278338,0.103402}, {-0.538262,-0.477405}, {-0.028885,1.451692}, {0.309332,0.336400}, {-0.000990,0.952112}, {0.551432,0.708093}, {0.885608,0.394472}, {0.630507,0.873531}, {2.009406,0.830925}, {0.270462,0.962180}, {-0.188686,0.224709}, {-0.176674,-0.183785}, {0.140600,1.093924}, {0.189660,-0.420077}, {-0.523965,-0.625934}, {-0.336031,0.037125}, {0.082479,-0.028029}, {-0.186355,-0.412999}, {0.082385,1.314585}, {-0.916720,0.023372}, {0.361526,0.970313}, {-1.036301,0.902711}, {0.753404,-1.144667}, {1.331139,0.200917}, {0.079871,0.568019}, {0.105169,-0.612822}, {-1.203528,-0.279910}, {0.681629,-0.484965}, {1.737185,-1.163903}, {-0.073538,-0.938369}, {0.199483,0.191980}, {-0.463281,0.147863}, {0.502202,1.383967}, {0.662814,-0.696233}, {0.322913,-0.224863}, {-0.039758,-0.433784}, {-0.241469,0.133004}, {0.631311,-0.203045}, {-0.490926,0.738562}, {-0.738987,-0.807033}, {-0.559719,-1.710482}, {0.414458,-1.114866}, {0.217559,-1.101081}, {2.001337,-0.837311}, {-0.309366,-1.325185}, {-0.421962,-0.105397}, {-0.254192,0.250041}, {0.149750,1.424141}, {0.574641,-0.960555}, {1.300898,0.408217}, {1.120122,-0.397386}, {0.988203,-0.705869}, {0.025219,-0.318984}, {-0.787385,0.484271}, {0.244498,-1.167668}, {-0.293105,1.187101}, {-1.315942,-0.787983}, {0.014455,0.371305}, {0.454436,-0.013107}, {-0.983662,0.592077}, {-0.500665,0.485289}, {-0.822873,-0.988985}, {-0.684186,0.119209}, {-0.770508,0.745145}, {0.751135,0.857208}, {0.580580,-0.403847}, {-0.261483,0.001789}, {-0.599543,0.700149}, {-0.134033,0.276866}, {1.292787,0.681824}, {0.571468,-0.079806}, {-0.420807,-0.237937}, {-1.393211,-1.148364}, {-0.826257,-0.341136}, {-1.430113,-0.469738}, {0.254639,-0.935916}, {0.477547,-0.063091}, {0.143719,-0.656087}, {-1.043832,-1.865735}, {-0.223533,-0.255380}, {-0.347852,1.319428}, {0.216353,0.217898}, {0.751324,-0.392111}, {0.126306,0.463054}, {0.421776,0.953244}, {0.101965,0.723898}, {0.711760,0.644511}, {1.214540,-0.992251}, {-0.900924,0.851336}, {-0.768326,-0.273583}, {0.611353,-0.777963}, {-0.644784,-0.597365}, {-0.866147,-0.077811}, {1.171992,-0.373912}, {0.166663,0.845840}, {-0.051581,-0.037914}, {-0.044931,0.952456}, {1.025787,0.092280}, {0.682561,1.339457}, {-0.392748,0.417949}, {0.032937,0.238781}, {-0.620218,-0.190434}, {-0.281839,0.385357}, {-1.841805,0.735532}, {0.803464,0.390506}, {-0.520705,-1.106509}, {-0.231873,-0.372118}, {1.238221,-0.126795}, {0.021599,0.567909}, {0.135681,0.509549}, {-0.372477,0.993091}, {-0.463447,2.094221}, {-1.084856,0.187484}, {-0.146659,-0.233581}, {0.020933,-0.106898}, {0.829958,0.011197}, {-0.094014,-0.883021}, {0.547873,-0.450064}, {0.202885,1.034507}, {0.994910,0.329836}, {1.331541,-0.281977}, {0.228948,-2.008565}, {-0.478031,0.427230}, {1.083612,-1.020268}, {-0.249602,1.393039}, {-0.012306,0.044320}, {0.574595,-0.315582}, {0.774972,-0.431653}, {0.270253,1.094467}, {0.120273,-0.263953}, {1.016864,0.431796}, {-0.309168,-0.270309}, {-1.523819,0.385376}, {-0.763456,0.512232}, {0.336560,0.850508}, {0.042057,-0.438179}, {0.847706,-0.456465}, {0.742120,0.530981}, {-0.373430,-1.277644}, {0.670180,-1.752892}, {-0.817789,0.218930}, {0.452251,-0.077324}, {-0.072623,-0.105395}, {-1.412266,-1.332875}, {0.357278,0.516348}, {-0.043991,-1.067616}, {1.180654,-0.141604}, {0.105626,-0.698556}, {0.368029,0.262566}, {-0.920419,0.474313}, {-0.223634,0.572453}, {0.361011,0.280134}, {0.558817,0.182521}, {0.561101,0.605270}, {0.229716,-0.019313}, {-0.434761,-0.308359}, {-0.245133,0.726120}, {-0.390881,-1.251642}, {-0.250035,-1.268882}, {1.655818,-0.092527}, {-0.910120,0.060578}, {-0.188804,-0.314052}, {1.215279,-0.127738}, {-0.878795,0.285774}, {0.369799,-0.207177}, {0.389388,0.134644}, {0.047652,0.563269}, {0.447321,-0.865163}, {-0.080775,-0.368620}, {-1.003217,-0.560501}, {0.115756,0.065585}, {0.736376,-0.286535}, {-0.305092,0.029092}, {0.016444,-0.133073}, {-0.385179,-0.465072}, {-0.411212,-0.129245}, {-2.027827,0.247035}, {-0.408223,-0.432254}, {-0.623146,-0.096782}, {0.066094,0.359122}, {-0.658791,1.673232}, {0.345053,0.994307}, {0.475042,-0.520856}, {-0.629916,0.001245}, {0.231530,-0.112516}, {-0.310512,0.763089}, {0.351545,-0.857181}, {-1.282645,0.358697}, {0.265706,-0.200202}, {-1.020432,-0.205901}, {-0.450405,0.863954}, {0.535266,-1.489977}, {0.116972,-0.830045}, {-0.574343,0.203469}, {-1.234327,0.190012}, {-0.671839,0.202848}, {-0.511748,0.717934}, {-0.667350,-0.498889}, {0.062991,-0.257410}, {1.387187,0.166053}, {0.038892,-0.294788}, {-0.197843,-1.474079}, {0.842538,0.954516}, {0.190780,-0.445425}, {0.986009,0.305338}, {-0.043897,-0.600633}, {1.275066,0.500597}, {0.688402,0.940529}, {0.681829,1.527615}, {1.058668,0.147151}, {1.057440,0.219391}, {0.279102,0.711516}, {-0.735985,-0.916082}, {-0.795380,0.473156}, {-0.188000,-0.126179}, {-0.130109,1.022084}, {-0.255161,-0.611966}, {-0.712545,0.512778}, {-0.390866,-0.023470}, {0.585919,0.072051}, {0.265748,-0.113116}, {-0.954015,0.396356}, {1.150886,0.526901}, {0.918889,-0.335352}, {0.908329,-0.918572}, {0.829812,1.271961}, {0.385431,0.764974}, {0.842191,0.817413}, {-0.211592,-0.300848}, {0.085412,-0.503896}, {-0.295625,-1.210188}, {0.553279,-0.752066}, {-0.336870,-0.023617}, {-0.117579,0.194043}, {-0.439305,0.074470}, {-0.871696,0.517667}, {1.132128,-0.352925}, {1.659963,0.078571}, {-0.718459,1.770532}, {-0.815585,0.052456}, {0.462433,-0.846664}, {0.112519,-0.115914}, {0.351286,0.311147}, {0.445398,1.030217}, {-1.336584,0.196926}, {1.720238,-0.567869}, {-0.036464,0.802003}, {-0.783873,-0.818943}, {1.240642,0.976164}, {0.760370,0.622208}, {0.716383,0.043453}, {0.007335,0.445271}, {-1.912350,0.369577}, {0.471466,-0.281855}, {-1.259278,0.458071}, {-0.505514,0.551813}, {0.808326,0.336688}, {0.134236,0.795999}, {-1.110478,0.657803}, {0.788157,-1.379746}, {-0.602157,-0.601484}, {-0.601597,-0.629413}, {-0.562336,-0.375857}, {-0.115154,-0.348384}, {-1.337893,-0.034902}, {-0.421096,-0.451334}, {0.828483,1.195515}, {-1.170578,-0.527504}, {-0.310432,0.760422}, {-1.197816,0.709533}, {-0.127652,-0.091019}, {0.069065,-0.305886}, {-0.078245,-0.633251}, {0.088257,0.108119}, {-0.449101,0.132235}, {-0.124084,1.428966}, {-0.281890,0.234157}, {-0.525617,0.582656}, {-0.816034,0.676694}, {0.126295,-0.336684}, {0.148247,0.687522}, {-0.650085,0.552353}, {1.047440,-0.871696}, {-0.652720,0.124596}, {0.143902,-0.299925}, {-0.045092,-0.377154}, {0.337776,-0.360983}, {-1.034746,-0.453121}, {0.446298,-0.614523}, {-0.576398,-0.186150}, {-0.660111,0.507337}, {-0.212991,-0.067267}, {-0.472959,0.233856}, {0.757097,0.921087}, {-0.371281,-0.873578}, {-0.462358,-0.546336}, {1.046260,0.861505}, {0.188323,-0.927420}, {-0.394811,-0.928531}, {-0.745356,1.802213}, {-0.144337,1.288925}, {0.042964,0.393180}, {-1.051774,-0.538140}, {-0.859913,-0.181454}, {-0.768838,-0.081829}, {-0.410304,-0.505518}, {0.513469,-0.829740}, {0.143379,-0.353562}, {0.259461,-0.349013}, {-0.693666,0.506081}, {-0.142532,-1.125624}, {0.027827,0.093478}, {0.755859,-1.261207}, {-0.805314,0.460203}, {0.565516,0.049003}, {-0.290886,-0.435227}, {0.177884,1.134761}, {-0.790097,-1.155042}, {0.609440,-0.427450}, {-1.456648,0.430752}, {0.731694,0.148750}, {-1.096537,-0.659722}, {-0.045365,-0.812621}, {-0.052870,-0.012892}, {-0.186133,-1.655777}, {-1.233724,0.005300}, {0.227544,-0.206169}, {0.444051,-1.393497}, {0.145246,-0.470748}, {0.321554,-0.540005}, {0.574299,0.947717}, {-0.851562,0.821642}, {-0.224767,0.375636}, {-1.247393,-1.880826}, {0.869151,0.644628}, {1.350218,-0.621884}, {0.386796,-0.520246}, {-0.978645,0.272595}, {0.065436,-0.430137}, {-0.790944,0.646567}, {-0.368160,0.501998}, {-0.401020,0.148140}, {-0.046369,-0.202567}, {0.058994,-0.870889}, {-0.652756,1.932327}, {0.172676,-1.271166}, {0.413797,0.955612}, {0.814433,0.006399}, {0.328790,1.584645}, {0.709699,0.490172}, {-0.774854,-0.005901}, {0.730751,-2.130532}, {0.585216,-0.058045}, {0.745170,-0.426331}, {-0.547863,0.536897}, {0.291419,0.183834}, {0.370049,-0.225214}, {0.720345,0.700864}, {-0.658056,0.512990}, {-0.197299,-0.572787}, {-0.980329,-0.373197}, {-0.102615,-0.600997}, {0.551575,0.035526}, {0.227213,-1.755647}, {-0.720773,1.473189}, {1.078551,0.494038}, {-0.590708,-0.726487}, {0.174511,0.593049}, {-1.113569,-0.861532}, {-0.863915,-0.407862}, {-1.489835,0.680252}, {0.605744,-0.755458}, {0.019818,-1.444399}, {1.537532,0.420513}, {0.454858,0.278244}, {-1.167997,0.522964}, {0.636516,0.864054}, {0.904913,0.954676}, {-0.172054,1.515377}, {-0.323955,-0.109815}, {-0.408556,-0.110050}, {-0.074129,0.608238}, {0.907023,0.611414}, {0.527238,-0.111692}, {-1.210925,1.026236}, {0.414338,-1.508815}, {0.865041,0.205104}, {-0.519846,0.335515}, {0.025669,0.894116}, {-0.069780,0.825868}, {-0.977589,0.602818}, {-1.474683,-1.465573}, {-0.906716,-1.172873}, {0.633533,-0.164525}, {1.348636,-0.597077}, {-0.676391,-0.863396}, {0.836835,0.681102}, {0.597157,-0.230220}, {0.394546,0.387985}, {-0.930641,0.087960}, {-0.591838,-0.300588}, {-0.886742,0.109750}, {-1.099630,-1.113304}, {-0.728393,-0.212042}, {0.763934,-0.639567}, {0.298122,-0.353191}, {-0.190079,-0.338979}, {0.348171,0.548532}, {-0.524688,-0.411727}, {0.233072,-0.517023}, {0.062224,-0.491644}, {-1.043832,0.098989}, {-0.476795,-1.490535}, {0.329321,0.234013}, {0.221229,0.925059}, {-0.390816,0.510160}, {0.875961,0.263989}, {0.269341,0.588287}, {-0.104352,1.572109}, {-0.466807,-0.291013}, {0.052197,0.507006}, {-1.203065,0.707042}, {-1.156324,0.471411}, {0.754021,-0.321351}, {-0.351852,0.063256}, {1.050723,-0.239489}, {0.095218,-0.048337}, {-1.306553,-0.315263}, {0.445850,-0.782225}, {2.486118,-0.184109}, {-0.450901,0.744972}, {0.815191,-0.335411}, {-0.842677,-0.284237}, {0.315266,-0.974383}, {0.075656,-0.930034}, {-0.265583,0.430262}, {-0.066361,-0.215722}, {0.460555,-0.264005}, {0.338359,-1.339680}, {-0.711655,0.100374}, {-0.092740,1.377253}, {-0.072264,-0.288660}, {-0.052467,0.772709}, {0.293775,0.090349}, {0.824527,1.267417}, {-0.112363,0.132903}, {-0.363463,0.969263}, {-1.642345,0.744705}, {-0.477562,1.379558}, {-0.589734,-0.589188}, {-0.466736,-0.970264}, {0.010874,0.547445}, {1.722207,0.884766}, {0.098718,-0.666330}, {-0.296542,-1.569936}, {1.125261,-0.712730}, {-0.975173,0.932793}, {0.634325,1.085860}, {0.217421,0.671107}, {0.305540,-1.001059}, {0.798078,0.480317}, {1.662060,-0.279516}, {0.613269,-0.820772}, {-0.367006,0.253467}, {-0.506871,0.590810}, {2.014429,-0.631055}, {-1.851417,-0.047491}, {0.237869,-0.702116}, {-0.850494,0.647305}, {0.129418,-0.098577}, {-0.842460,0.401123}, {0.289509,-0.445374}, {-0.192546,0.423623}, {0.132945,-0.395475}, {1.171623,-0.137565}, {-0.672710,0.703577}, {0.289266,0.112169}, {0.388150,-1.503414}, {-0.632542,-1.193749}, {-0.836479,-1.570629}, {-0.117854,0.799663}, {-1.031422,0.769983}, {1.141551,1.223726}, {-0.136202,0.032976}, {0.539139,-0.362692}, {0.386391,-0.404400}, {-0.807908,0.672289}, {-0.273757,0.409065}, {0.072317,0.218765}, {0.315393,-0.161862}, {0.109827,0.280521}, {1.124393,-0.880358}, {1.062493,-0.861810}, {-0.694576,0.955105}, {-0.704939,0.712260}, {0.620207,0.404908}, {-0.149497,0.008919}, {0.213315,0.753410}, {0.882143,0.344575}, {-0.580178,-0.062246}, {0.588335,0.732016}, {-0.923274,0.056641}, {-0.172440,-0.095349}, {-1.135217,0.278840}, {0.775523,-0.339523}, {-0.314081,-0.344806}, {-0.764043,-0.198468}, {-0.089438,-0.785644}, {-1.040912,1.061657}, {0.895079,-0.034029}, {-0.526144,-1.937661}, {-0.207926,-1.120596}, {-0.091010,-0.505344}, {0.284329,0.647329}, {1.276309,-0.095555}, {-1.225333,0.215700}, {0.090999,0.073973}, {0.870768,-0.363724}, {0.248731,0.020068}, {-0.548422,-0.119689}, {0.920298,-0.082783}, {-0.467797,1.355912}, {1.329022,-0.309356}, {-1.728073,-0.120729}, {0.624453,0.563478}, {-0.698755,0.502237}, {0.401369,-1.301986}, {-0.924123,-0.248924}, {0.419063,-0.429884}, {-0.417802,0.312480}, {0.303873,0.281815}, {-0.216253,-0.382458}, {0.871156,0.437237}, {0.076165,-0.075358}, {0.978428,0.177972}, {-0.387862,-0.666285}, {-0.385355,-1.084756}, {-0.039386,0.090518}, {-0.110409,-0.131921}, {-0.266880,-0.746409}, {-0.628974,0.648673}, {-0.473564,-0.126878}, {0.061978,-0.647717}, {-0.282066,-0.853113}, {-0.118735,1.327370}, {1.149891,1.209448}, {0.352147,-0.388989}, {1.769291,-0.319750}, {0.764107,-0.667852}, {-0.587102,-0.210417}, {1.015087,0.052787}, {-0.035987,1.195230}, {0.892858,0.405185}, {-0.756342,-0.517984}, {0.623213,-0.595297}, {0.604408,1.193989}, {0.953219,0.110624}, {0.152238,0.507352}, {-0.094461,-0.308558}, {0.384838,-0.277351}, {0.025861,-0.759865}, {-0.657839,0.460731}, {-0.194513,0.533848}, {1.023904,-0.500503}, {-0.359781,0.642104}, {-0.404128,-0.973247}, {0.908211,-0.748690}, {1.828527,0.178212}, {0.993783,0.377209}, {0.497713,0.653823}, {1.349187,-0.664650}, {0.867764,-0.677804}, {0.784912,-0.648229}, {0.855189,0.283978}, {-0.177741,0.486565}, {0.171991,-1.590330}, {-0.341884,-0.551188}, {0.552575,-1.140915}, {0.234083,-0.731475}, {-0.841477,0.261885}, {-0.463546,1.015421}, {-0.655670,-0.933363}, {0.091412,-0.144388}, {0.777763,-1.143306}, {0.393413,0.247097}, {-0.859657,1.263778}, {-0.091360,-0.695528}, {0.453558,0.447697}, {-0.285448,-0.091432}, {0.575826,0.771546}, {-0.185321,-0.400092}, {-0.927254,-0.065710}, {-0.404850,0.199127}, {1.175847,-0.727493}, {-0.646317,-0.100079}, {-0.146116,0.997661}, {0.940721,0.331262}, {-0.176631,-0.432014}, {-0.158682,0.007962}, {0.403128,0.862988}, {-1.286299,-0.553118}, {-0.625140,-0.416925}, {0.164739,0.127397}, {-1.296657,0.431593}, {0.110012,0.621031}, {0.131967,0.747297}, {-0.417073,-0.528516}, {-0.058879,0.064701}, {0.878022,0.417763}, {-0.593777,-0.749282}, {-1.488954,-0.088751}, {0.327350,0.729740}, {0.288635,0.711133}, {-0.516210,0.772244}, {0.646623,-0.360133}, {0.517444,-1.050468}, {0.275757,-0.042346}, {1.091949,-0.723761}, {-0.581401,0.804300}, {-0.281716,0.298812}, {0.389729,-1.352334}, {0.968056,-0.125904}, {1.044800,0.400574}, {0.876008,0.171549}, {-0.861513,-0.111525}, {1.321833,0.560932}, {-0.756588,0.179387}, {-1.030283,-0.202424}, {-1.125655,0.034160}, {-1.018706,0.236765}, {-1.619937,1.162817}, {0.587348,0.547688}, {-1.197305,-0.512869}, {-0.043864,-1.074949}, {-0.830876,0.394422}, {0.164382,-0.058257}, {-1.269143,0.168948}, {0.160676,-0.664515}, {-0.505345,-1.100780}, {-0.245201,0.068290}, {-1.306518,-0.678766}, {-0.425379,0.392774}, {-0.258367,0.204147}, {0.045519,-0.256474}, {-2.017382,0.265548}, {-0.452550,0.579091}, {-0.340566,-0.079455}, {-0.463289,-0.473197}, {-0.304125,-1.146060}, {-1.079937,0.770227}, {0.697733,-1.635291}, {0.794379,-0.590399}, {2.066159,0.237608}, {0.203241,0.228367}, {0.209470,-0.821393}, {1.064899,-0.383132}, {0.799363,-0.151461}, {-0.607846,0.619438}, {-0.440935,-0.199774}, {1.095711,0.112102}, {-0.687980,-0.399792}, {-0.489549,0.143813}, {0.567918,0.022705}, {0.838391,-1.106572}, {1.085598,2.516036}, {-0.699425,-0.521144}, {-1.195329,-0.973063}, {-0.455357,0.190010}, {-0.365438,-0.562397}, {-0.303810,-1.368273}, {0.466171,-0.926118}, {-0.428213,0.660771}, {0.847118,1.179101}, {0.431831,0.765670}, {0.216519,0.066846}, {0.050229,-1.132895}, {-0.591341,-0.135568}, {-1.016589,0.499351}, {0.619695,1.239771}, {-0.860305,0.327144}, {0.794001,-0.673587}, {-0.198357,0.818361}, {1.168914,-0.014642}, {0.448577,1.053050}, {0.292636,-0.202807}, {0.769249,0.583713}, {0.416304,-0.914883}, {0.462558,-0.935260}, {0.088227,-0.958327}, {0.594615,1.182851}, {-0.204744,0.504845}, {-0.244805,-0.381424}, {-0.737471,-1.320935}, {-0.528289,-0.573258}, {-0.105260,-0.673370}, {-0.635278,-0.500940}, {0.839401,-0.789100}, {-0.900784,0.142913}, {-0.611013,1.205516}, {-0.341594,0.707921}, {-0.549906,-0.191784}, {-0.351525,0.601229}, {0.696679,-0.084436}, {0.249797,-0.466641}, {-0.112995,0.982649}, {-0.103804,0.028549}, {1.300759,0.562159}, {0.188050,0.252173}, {0.106742,0.672221}, {1.403964,0.196841}, {0.178249,1.119562}, {0.478215,0.501237}, {-0.603436,-0.402843}, {0.938323,-0.147083}, {-1.344410,-0.465496}, {-0.274058,0.037370}, {0.302808,0.701736}, {0.522547,-1.063970}, {0.214000,-1.234162}, {0.115400,-0.182797}, {0.613710,-1.188964}, {-0.059478,-0.884451}, {-0.020643,0.621642}, {-0.485842,-0.203300}, {-0.574101,1.824857}, {-1.110800,0.465908}, {-0.009223,-0.878354}, {-0.970119,-0.234322}, {2.232488,-0.241458}, {-0.817618,-0.215082}, {0.985711,-1.312330}, {-0.043408,0.166327}, {0.685598,-1.189246}, {-0.863629,1.000956}, {0.363370,0.558049}, {-0.275515,-1.251793}, {-0.783958,-0.159861}, {-0.265416,1.423040}, {-0.303787,0.078342}, {-0.942708,0.058797}, {-0.126596,-0.043927}, {0.940185,-0.514732}, {-1.717989,-0.302336}, {0.392299,-0.472739}, {-0.605450,-0.153565}, {0.172246,1.273566}, {0.973775,-0.571675}, {0.412459,0.246981}, {0.750398,0.637567}, {-0.131172,-0.812034}, {-0.412718,-0.312419}, {-1.084367,0.469211}, {-0.750192,0.239366}, {-0.807903,0.025000}, {0.169366,1.110027}, {0.341377,-0.550559}, {1.503539,-0.645394}, {-0.546320,-0.503335}, {0.349192,0.240205}, {1.054660,-1.886768}, {0.052298,0.500975}, {-0.010100,-0.988941}, {0.166413,-0.383006}, {0.843436,0.918938}, {-0.595515,0.371500}, {-0.309942,1.492045}, {0.605896,-0.550874}, {0.379367,-0.626731}, {-0.236509,0.601141}, {-0.378510,-0.419328}, {0.478068,0.010601}, {-0.675805,-0.583364}, {-0.210744,0.418466}, {-0.189950,0.501288}, {-0.463660,0.303614}, {-0.537675,-0.958237}, {-1.015898,-0.270030}, {0.198231,0.122265}, {1.116642,-0.840185}, {-1.101533,1.812925}, {-0.561163,-0.261127}, {1.012467,0.890354}, {-0.529417,0.082287}, {0.009180,0.806196}, {0.789673,0.029863}, {1.003828,0.373652}, {0.814418,0.309315}, {-0.606146,-0.168860}, {0.056299,0.365320}, {0.093105,-0.068656}, {0.755631,-0.057552}, {0.081025,-0.900634}, {-0.016102,0.247733}, {0.884746,0.342390}, {-0.875936,0.681588}, {0.098843,-0.487980}, {-0.376775,-0.427447}, {0.381212,0.542140}, {0.530379,-0.369676}, {0.709660,0.380700}, {-1.112918,0.335488}, {-0.171830,0.036069}, {-1.019468,0.441974}, {0.552776,1.116890}, {-0.256032,1.029227}, {0.709352,0.980046}, {-0.721419,-0.145083}, {-1.190310,-1.516095}, {-1.099134,-0.241831}, {-1.177761,0.420445}, {0.618117,1.070602}, {1.308669,-0.017416}, {-0.186330,-0.148709}, {-1.075173,1.134706}, {-0.474658,-0.073558}, {-0.417598,-0.815183}, {0.452627,-0.086364}, {-0.099908,0.206006}, {1.159685,-0.593182}, {-0.620191,0.221127}, {1.099579,0.166276}, {-0.224604,-0.878283}, {0.361899,0.449122}, {0.782647,-1.303460}, {1.024841,0.701208}, {-0.575269,0.369847}, {0.185542,0.396025}, {-0.475507,0.042582}, {-0.644299,1.072212}, {0.024074,0.094974}, {1.065494,1.061942}, {-0.103903,0.047036}, {-1.507948,1.355023}, {0.488277,-0.387922}, {-0.670998,0.516623}, {1.043637,1.027954}, {-0.814702,-0.705341}, {1.113500,-0.824085}, {-0.446971,0.387174}, {0.085304,0.134263}, {-0.032566,0.373506}, {-0.715275,0.920719}, {0.856968,-0.363303}, {-0.531281,-0.778124}, {-0.273956,0.840519}, {-1.738353,0.489447}, {-0.868719,0.482146}, {-0.324818,0.031145}, {0.538558,0.494144}, {-0.353669,0.337685}, {0.231094,0.720309}, {-0.836142,0.106659}, {0.595464,0.423801}, {0.883973,-0.601154}, {0.723997,0.934565}, {-0.355962,0.152775}, {-0.127005,1.104947}, {0.969229,-0.149105}, {-1.201512,0.674038}, {0.146767,-0.498363}, {-0.035950,0.557077}, {-0.459134,-0.914077}, {0.763345,0.524424}, {0.011704,-2.017428}, {-0.849172,1.506112}, {-0.250493,-1.045756}, {-0.121860,-0.690564}, {-0.155904,0.608851}, {-1.229102,-0.406017}, {1.226610,1.085280}, {-0.805206,0.629291}, {-0.069214,0.730650}, {1.064779,0.264552}, {-0.006544,-0.494682}, {0.457170,-0.951151}, {-0.410514,0.789954}, {0.565477,-0.255665}, {0.734690,-0.988831}, {-1.062641,0.225151}, {-0.385230,0.821491}, {0.371702,-0.110034}, {-0.057454,0.128720}, {-0.081977,1.037915}, {0.311523,1.253425}, {-0.502448,0.093294}, {0.615595,-2.344534}, {0.653408,-1.185627}, {0.867888,-0.434547}, {-0.240755,0.331160}, {-1.197783,0.687314}, {0.521806,0.208657}, {-0.554643,0.428899}, {0.057554,-0.366342}, {-0.357134,0.156007}, {0.334822,0.737721}, {1.436037,-0.287579}, {-0.612891,0.136375}, {0.789853,-0.141415}, {0.525511,0.179881}, {0.123147,0.811655}, {0.113730,0.769911}, {0.182976,-0.119810}, {0.628026,-0.801001}, {-0.469332,-0.992844}, {0.420309,0.553148}, {-1.170904,-0.099700}, {-0.146831,-0.313078}, {0.388133,0.790864}, {0.282657,0.691093}, {1.559222,0.832869}, {0.381183,0.380482}, {0.489654,-0.943613}, {0.054295,-0.253576}, {0.455407,0.344980}, {0.570221,-0.475851}, {-0.223240,0.744998}, {-0.530980,0.687077}, {-0.449808,-0.821267}, {-0.330739,0.448330}, {0.804212,-0.577691}, {0.158454,0.805972}, {-0.108758,-0.954099}, {-0.439021,0.197579}, {-0.539345,0.439251}, {0.651230,0.754042}, {-0.355923,-1.137383}, {-0.177306,0.749586}, {0.441287,-0.286658}, {-0.902108,0.227320}, {-1.284466,1.638574}, {-0.036202,0.181132}, {-1.497482,0.003437}, {-0.061348,-0.006829}, {-0.005529,-0.741155}, {0.215731,0.852106}, {1.581736,0.051235}, {0.515924,0.070864}, {-0.482895,1.204395}, {-0.025352,-0.128358}, {1.549274,-0.306254}, {0.574087,0.073902}, {-0.521191,0.521923}, {-0.316768,-1.246159}, {0.374086,-0.736770}, {0.657694,0.176918}, {-0.873769,0.767673}, {1.284637,0.593571}, {0.129845,-0.097307}, {-0.554935,0.847270}, {0.103939,0.668202}, {0.803857,1.265275}, {0.337945,-0.680761}, {-0.332438,0.818654}, {0.815651,-0.086611}, {0.898750,0.267473}, {0.332558,0.854873}, {0.033251,-0.369557}, {-0.994826,0.728912}, {0.320312,0.989656}, {-0.968790,-0.524464}, {0.050254,-1.200479}, {1.284280,0.052694}, {-0.551391,1.260977}, {-0.243554,-0.369087}, {0.248510,-1.259281}, {-0.100092,0.030010}, {0.639801,-0.080694}, {-0.453774,0.601667}, {0.157292,0.534592}, {0.350959,0.051935}, {-0.757799,-0.971434}, {0.493319,-0.446165}, {0.614688,-0.582649}, {0.074603,-0.299675}, {0.882269,-0.187581}, {0.372823,0.368325}, {0.114711,-0.315413}, {-0.451795,0.002528}, {0.124370,-2.011045}, {0.144513,-0.674410}, {-0.887191,0.318651}, {0.276441,-0.028075}, {-0.656448,0.802020}, {-0.278558,0.378958}, {-1.030818,-0.732686}, {0.993217,-0.426098}, {0.539963,-0.880491}, {0.259553,0.120942}, {0.980649,0.629225}, {0.549393,-0.007366}, {1.775229,-0.150526}, {-0.505972,0.223503}, {-0.705733,-0.590672}, {0.617949,-0.169851}, {-0.057909,0.846471}, {0.008234,-0.314480}, {-0.096775,1.283379}, {-0.962696,-0.439218}, {-0.259974,0.118526}, {0.250173,-0.150096}, {0.910862,-0.680728}, {-0.415913,-0.191966}, {-0.396152,-0.497643}, {-0.771449,-0.213775}, {-0.301254,-0.272266}, {0.926896,-0.570671}, {-0.591745,0.146475}, {1.086466,-0.131236}, {-0.844351,-1.562438}, {-0.990476,0.070498}, {-0.077338,-0.863886}, {0.136252,-0.505947}, {-0.382066,-1.286926}, {0.669333,-0.074047}, {1.276768,-0.175578}, {0.350866,0.997669}, {0.615194,-1.606065}, {-1.052562,-0.334451}, {0.299494,-1.071920}, {0.549473,0.191316}, {-1.676270,-0.096974}, {0.265582,0.159041}, {0.244795,1.792395}, {1.008245,-0.322289}, {-0.702334,0.432326}, {-1.037780,0.165330}, {1.538379,0.489235}, {0.703589,-0.819391}, {-0.628913,-0.514712}, {0.569468,0.511478}, {-1.707972,0.273521}, {0.317935,0.288596}, {-0.284997,-2.009373}, {-0.740532,0.559777}, {0.537857,0.332833}, {0.429478,-0.292228}, {0.285689,1.118983}, {-0.631836,-0.066223}, {0.592196,-1.045784}, {0.226062,0.549405}, {0.309204,0.291148}, {0.328950,-0.651208}, {-0.175570,0.128113}, {-1.071762,-0.222013}, {-0.246732,0.503570}, {0.562434,-0.087614}, {-1.083738,0.163863}, {0.138512,-0.058985}, {-0.738895,0.011677}, {1.499974,0.103210}, {0.355002,-0.338290}, {-0.256904,-0.343176}, {-0.015659,-0.417844}, {0.208660,0.606469}, {-0.734477,0.817951}, {-0.867542,0.663637}, {-1.304717,-0.388440}, {0.704185,0.760198}, {-1.316292,-0.295106}, {0.218730,0.983686}, {0.818713,-1.046025}, {-0.583046,0.551182}, {1.265510,-1.016420}, {-0.761852,0.033767}, {-0.745320,-0.492837}, {0.934553,0.066774}, {-0.819204,0.242431}, {0.611336,-0.031476}, {0.096080,-0.848272}, {-0.106150,-0.492336}, {-0.383184,-0.269763}, {0.132107,0.766301}, {0.212758,-0.088413}, {-0.422718,1.161167}, {0.736935,-0.974879}, {-0.910351,0.495623}, {0.997377,0.717006}, {1.989167,-0.180638}, {-0.518269,1.156765}, {-1.168705,0.352030}, {0.875218,-0.727473}, {0.110928,0.594784}, {-0.893894,0.190021}, {-0.063990,-0.588675}, {0.271381,-0.362008}, {-1.002002,0.472853}, {-0.262505,-1.738222}, {-0.726954,-0.594786}, {1.196291,1.072635}, {-0.121522,-0.341266}, {-0.041270,0.655770}, {0.198658,0.212242}, {0.259623,-0.910297}, {-0.906628,-0.709528}, {0.763820,-0.135300}, {1.075767,0.169487}, {-0.535647,-0.428838}, {0.184472,0.911065}, {-1.106756,0.326421}, {-0.568826,-0.976099}, {-1.131721,-0.119743}, {-1.014501,0.157798}, {-0.188462,-0.981151}, {0.998759,-0.198788}, {-0.831733,-0.686713}, {0.940988,-0.639840}, {0.432728,-0.625815}, {-0.373126,-0.262423}, {0.717374,0.275913}, {0.267194,-0.410032}, {-0.244544,-0.599248}, {-0.372515,-0.727035}, {1.133795,0.095964}, {0.188813,0.214390}, {-0.491510,0.110745}, {-0.112035,1.669554}, {-0.692933,0.354110}, {-0.777650,-0.649853}, {0.206946,-0.549717}, {0.060381,-0.218033}, {-0.923367,1.095193}, {-0.086790,0.112154}, {0.173823,-0.663045}, {0.246195,0.466305}, {0.046693,-0.524645}, {-1.283808,-0.478148}, {0.964145,-0.018176}, {0.171523,-1.351762}, {-0.679412,-0.388570}, {0.550322,-0.537612}, {0.731997,-1.087005}, {-0.454207,-0.599756}, {-0.187639,0.654378}, {-0.844323,-0.003906}, {-0.145352,-0.604780}, {1.621990,-1.918143}, {-0.151221,0.586071}, {-2.341130,-1.090539}, {0.085287,0.722866}, {-0.323067,0.087640}, {1.363234,-0.722450}, {-1.625929,-0.003371}, {-1.349280,0.497928}, {-0.763448,0.084800}, {0.968353,0.485273}, {-0.654131,0.368048}, {0.906649,0.966963}, {0.502693,-0.801039}, {-0.106512,-0.017897}, {-0.357878,0.507848}, {0.596556,-0.386384}, {-1.350622,-0.075382}, {-1.132769,-0.094515}, {0.784254,1.026684}, {-1.195967,-0.498431}, {-1.486993,1.041977}, {-0.861464,1.155882}, {0.454096,-0.743460}, {0.135509,0.255852}, {0.328982,0.287838}, {-0.351451,-1.454514}, {-1.163104,0.800600}, {-0.159101,-0.818017}, {0.570768,-0.511169}, {0.261905,0.321343}, {-0.961814,-0.663710}, {1.707887,-0.051143}, {-1.670659,-0.504308}, {0.921242,0.016788}, {0.340322,-0.915290}, {0.166781,-0.511569}, {-0.158216,-0.111283}, {-0.283839,-0.287862}, {0.628406,0.668089}, {-0.332001,-1.189296}, {0.017396,0.278010}, {-0.009861,0.703837}, {0.292750,0.126056}, {-1.187099,-1.326938}, {-0.183012,-0.223564}, {-0.566881,0.719534}, {-0.083212,-0.380213}, {0.070757,-0.303190}, {-0.121132,0.687038}, {0.322541,-0.477786}, {0.129674,-0.807120}, {-0.418168,0.229298}, {-0.546595,0.883441}, {0.637606,0.900993}, {-0.022450,-0.668027}, {1.165285,-0.042859}, {0.394648,1.776434}, {-0.119592,-0.949967}, {-0.380534,-0.700304}, {-0.428653,0.876593}, {-0.010833,0.445818}, {-2.068289,0.926831}, {-0.056759,-1.011635}, {0.951500,0.730713}, {-0.735857,-0.974632}, {-0.441883,-0.113780}, {0.403497,-0.698566}, {-0.583007,-0.225655}, {0.845352,1.129219}, {1.029108,0.170238}, {0.677910,-0.154584}, {-0.866846,-0.610082}, {0.620796,0.585499}, {-0.175772,-0.410802}, {0.738516,0.222083}, {0.340440,-0.224279}, {0.514320,-0.118299}, {0.643830,0.931380}, {0.823034,0.678161}, {-0.025896,-0.374766}, {-0.296529,0.078295}, {-0.197529,1.188479}, {-0.561245,1.938594}, {-0.891056,-0.514375}, {-0.583395,1.256778}, {0.358371,0.149749}, {0.713595,0.243942}, {-0.424386,-0.267761}, {0.801126,-0.010966}, {-0.860760,0.599409}, {-0.132413,0.845348}, {-0.366124,1.094189}, {0.098452,1.013495}, {-0.594768,1.698599}, {-0.214296,0.107876}, {0.435504,-0.097577}, {0.484505,0.098009}, {0.395685,1.294490}, {-0.288240,0.457515}, {0.454454,0.065128}, {0.611166,1.360646}, {0.479140,1.245248}, {1.573051,0.996718}, {0.353760,-0.558113}, {-0.300835,-0.238335}, {-1.239956,-0.500976}, {0.687230,-1.586164}, {0.984939,0.909665}, {0.095002,-0.407167}, {-0.722139,0.986728}, {0.656063,0.152251}, {-1.206285,0.300682}, {-0.445228,-1.320390}, {0.868370,0.652878}, {0.480469,-0.416396}, {0.844269,-0.152263}, {-0.854423,-2.170806}, {0.451749,-0.005347}, {0.076050,-0.938747}, {0.414240,0.282529}, {-0.314277,0.634230}, {-0.352751,1.885884}, {-0.331918,0.293480}, {-0.611542,-0.591605}, {-0.032914,-0.878914}, {0.182686,0.511677}, {0.282213,-0.654782}, {0.180992,-0.735602}, {0.434231,-0.167422}, {-0.416232,0.478046}, {-0.150081,-0.445287}, {-0.321248,-0.468089}, {0.620043,0.101055}, {-0.728128,-0.213253}, {-1.353567,-0.307609}, {0.725953,-0.761898}, {0.531030,-0.335851}, {-0.913209,-0.639658}, {-0.309075,0.414710}, {-0.120038,1.012719}, {0.402300,-0.164851}, {-0.404268,-0.373224}, {-0.619788,-0.509276}, {-1.967288,-0.882356}, {0.774993,0.863349}, {0.170683,-0.823057}, {-1.277681,-0.649139}, {-0.150491,0.048295}, {0.655999,-0.224661}, {-0.328017,1.448516}, {-0.168569,-0.611396}, {-1.867020,-0.315154}, {-0.172188,0.758110}, {-0.688985,0.441307}, {-0.344957,0.468144}, {0.467038,-1.260435}, {-0.002124,0.251853}, {0.532495,-0.325352}, {-0.436167,0.212400}, {-0.226487,0.643460}, {1.280616,-1.277356}, {-0.015069,1.146608}, {0.145602,0.831614}, {-1.259462,0.772211}, {-0.348614,0.234378}, {0.236966,-0.423945}, {0.171916,0.116998}, {-0.380486,-0.447256}, {-0.069114,-0.908586}, {0.006162,0.030039}, {-0.360495,0.129786}, {-0.449148,0.342152}, {-0.637659,0.279006}, {-0.475733,0.146527}, {0.774150,-0.450019}, {0.384453,0.905140}, {0.539473,0.294686}, {0.963547,0.772764}, {-0.577154,0.243345}, {-0.990744,-0.184541}, {0.361697,-0.706210}, {-1.300668,-1.074359}, {-0.350468,-0.053975}, {-1.253670,1.152225}, {0.645014,-1.229474}, {-0.947043,-0.775451}, {0.731531,0.761002}, {-0.704281,-0.492722}, {-2.122805,1.221006}, {-0.886448,0.215374}, {-0.063047,1.035249}, {-0.130030,-1.597369}, {-1.588580,-0.164693}, {0.243675,0.189793}, {1.045297,-1.178104}, {0.389365,-0.556548}, {0.475483,-1.559555}, {-0.335436,0.300775}, {-0.972000,-0.175491}, {-0.133305,1.090422}, {1.581001,0.260800}, {-0.075648,1.263143}, {1.516818,-0.971175}, {0.169816,-0.200516}, {-1.034590,0.153998}, {-1.097372,0.044848}, {-0.579664,-0.209895}, {-0.053491,-0.037996}, {1.254129,-1.166188}, {-1.171324,-1.423655}, {0.425314,-0.416050}, {-0.615369,0.303270}, {-0.110978,-0.122135}, {0.204478,0.019416}, {-0.802350,0.427858}, {-1.296030,-0.172149}, {-0.506648,0.402006}, {-0.190420,0.046755}, {0.243431,0.240358}, {-0.507131,0.100200}, {-0.454722,-0.946433}, {0.725846,0.693385}, {-0.194304,1.034517}, {-0.639409,-1.491172}, {-0.370464,-1.316069}, {0.026346,1.232204}, {-0.045298,-1.867401}, {1.566024,-1.070478}, {-0.525522,0.424209}, {-0.390620,0.469335}, {-0.748788,-0.640077}, {-0.861505,1.668542}, {0.942889,1.164779}, {0.168485,-0.273375}, {-1.415495,1.078624}, {-0.973990,-0.245288}, {-0.406225,0.204616}, {-1.107687,0.132306}, {-0.922430,0.271948}, {-0.770345,0.248383}, {-0.262733,-0.459021}, {-1.543574,0.237828}, {0.427934,1.167747}, {0.838651,-0.645278}, {0.003714,0.143614}, {-0.365774,0.832688}, {0.120564,0.594678}, {0.995994,-0.565695}, {-0.126425,0.174578}, {0.947284,-0.717938}, {1.291500,0.893980}, {0.094097,0.331983}, {-1.520554,1.050692}, {0.429938,0.967334}, {1.062959,1.335563}, {-1.374009,0.443307}, {-0.133662,0.424658}, {-0.351652,0.475247}, {-0.774004,1.216356}, {-0.929932,-1.357864}, {-1.093596,-0.304936}, {0.421699,1.120944}, {-0.347581,-1.700207}, {1.759930,0.663514}, {-0.091702,0.155358}, {0.037256,0.562375}, {-0.880499,0.164302}, {-0.851232,0.905426}, {-0.576845,0.536598}, {-0.671018,0.273580}, {0.527832,0.179628}, {-0.088704,-0.382192}, {-0.475693,-0.489545}, {0.813913,-0.007911}, {0.866953,1.168459}, {0.342727,0.090489}, {-0.102248,0.577989}, {0.548149,0.018512}, {-0.439522,-0.100163}, {-0.187621,-0.065630}, {-0.323931,-0.323939}, {-0.346097,-0.211944}, {0.183836,1.796108}, {-0.314326,0.290377}, {0.221068,-0.314679}, {-0.807497,0.876966}, {1.656237,-1.284909}, {0.429140,0.610550}, {-0.692503,-1.275180}, {0.148498,-0.742160}, {0.471384,-0.117794}, {-0.337555,0.201199}, {0.276186,0.288946}, {0.242827,-0.076791}, {1.846708,-0.086855}, {-0.069953,0.656462}, {0.115995,0.180799}, {-0.284735,0.545367}, {0.633690,-0.122335}, {-0.909572,-1.230068}, {0.080008,0.996363}, {0.694586,-0.073983}, {-0.882830,-1.068673}, {0.189491,1.853682}, {-1.424492,0.427126}, {0.689818,1.018190}, {0.475888,-0.235734}, {0.272150,0.265798}, {0.032696,0.054859}, {-0.596591,-0.418400}, {-0.330926,1.472477}, {0.830467,0.554452}, {0.141106,-0.441457}, {0.871720,0.179847}, {0.295633,-0.724683}, {-0.435067,0.340489}, {0.350137,1.011308}, {-0.193628,0.339546}, {0.698882,0.568895}, {0.714853,-0.257131}, {-0.262342,-0.470386}, {-0.636850,-0.532836}, {-0.147885,-0.767427}, {0.750463,-0.213164}, {-0.548790,0.050549}, {-1.033421,-0.901535}, {1.500041,-1.549836}, {-0.432532,0.497503}, {1.038156,0.874007}, {0.463656,0.085929}, {-0.089563,-0.381914}, {-0.081148,1.037969}, {0.548773,0.429676}, {-0.491311,-0.637343}, {-2.438709,-0.051842}, {1.225795,-0.902596}, {-0.445842,0.452895}, {0.109824,0.055383}, {-0.232239,0.462964}, {0.237473,-0.816454}, {-0.073903,0.108264}, {-0.412081,0.634950}, {0.526763,-0.598860}, {0.633333,0.185228}, {-0.230045,-0.696161}, {-1.147548,-0.875395}, {-0.126686,-0.787857}, {-0.478097,-0.754376}, {-1.022308,-0.408585}, {-0.269342,-0.318111}, {-0.634583,0.035421}, {0.976029,0.481457}, {0.490922,1.815942}, {-0.325872,0.000525}, {-0.552517,0.029422}, {-0.493102,-0.053374}, {-1.503537,-0.460894}, {1.108601,-0.232398}, {-0.695587,-1.170494}, {-1.077017,-0.195150}, {0.199615,0.188295}, {0.984679,-0.566367}, {1.297710,-0.537764}, {-0.743610,1.332962}, {0.611631,-1.230295}, {0.535225,-0.203019}, {-1.456897,0.798777}, {-0.000363,-0.238487}, {0.922337,0.150983}, {0.215997,0.386013}, {0.536468,0.167675}, {0.223258,0.110369}, {0.661156,0.422147}, {-0.247800,-0.854418}, {0.653356,0.093449}, {0.412471,0.099614}, {0.008260,-0.284842}, {0.602377,0.832860}, {-0.140841,0.066235}, {0.373272,-0.127086}, {0.881863,-0.583065}, {-0.689000,0.206484}, {1.005700,-0.372850}, {-0.405465,-0.531119}, {-0.647395,-0.657215}, {0.062044,-1.065059}, {-0.727797,0.903809}, {-0.566777,-0.706294}, {-0.632129,0.467014}, {0.899076,0.126889}, {0.385478,1.186605}, {0.703954,-0.241354}, {0.283012,0.853681}, {-0.971216,-0.982086}, {0.102070,-0.510027}, {-0.474635,0.615183}, {-1.176123,0.165700}, {0.656442,-0.454286}, {-0.470031,0.269875}, {-0.570072,0.651427}, {0.160737,0.443575}, {-0.102227,-1.423956}, {0.063696,0.787943}, {0.435511,-1.119014}, {-0.192739,-0.355147}, {-0.353761,-0.790623}, {-1.113609,0.176838}, {0.250330,-0.046952}, {0.615718,0.870463}, {0.400504,0.431724}, {1.162029,-0.731667}, {0.568344,-1.078877}, {0.085425,-0.443310}, {0.207902,1.284480}, {0.334856,0.462654}, {-0.335173,1.595103}, {-0.929111,-0.555447}, {0.011277,0.456913}, {-0.040002,0.130483}, {0.973999,0.191361}, {-0.303043,0.236946}, {0.643394,-0.426236}, {0.323195,-1.152534}, {0.747335,-1.247994}, {0.294046,-0.113540}, {-0.253140,-0.990029}, {1.250059,0.248076}, {-0.521407,-0.594040}, {0.808065,0.500768}, {-0.017087,1.026674}, {0.006366,-0.327461}, {-0.349676,-1.622236}, {-0.438362,0.532035}, {-0.660037,-0.474255}, {0.162498,0.533545}, {1.633542,-0.132034}, {-0.318215,0.175327}, {1.192031,-0.516092}, {0.778273,2.231759}, {-0.011893,-0.581060}, {-1.029364,-0.695297}, {-0.173287,0.110115}, {0.635321,0.005894}, {-0.363303,0.267814}, {0.757333,0.531349}, {-0.454391,-0.388071}, {0.250888,-1.427019}, {0.180933,-1.456074}, {0.679743,-0.683070}, {-0.313584,-0.254765}, {-0.030301,0.911933}, {0.128000,0.628659}, {-0.443625,-0.158499}, {1.973744,-0.920044}, {0.893488,-0.150660}, {0.931910,0.910991}, {0.042853,-0.026324}, {-0.313634,-0.520955}, {-0.671536,-0.215733}, {0.556569,0.028198}, {1.117075,0.254181}, {-0.910888,0.046416}, {-0.442587,-0.710371}, {0.417335,0.155742}, {-0.390962,1.821362}, {0.041557,0.535249}, {0.118388,-1.118331}, {-1.008590,0.173649}, {0.933494,-0.410314}, {-1.828304,-0.246922}, {0.948599,0.110863}, {0.563454,-0.219323}, {0.190125,-1.330677}, {0.649893,0.077576}, {0.752153,0.957161}, {0.145088,0.727431}, {-0.266557,-0.271793}, {-0.021569,0.947269}, {-0.193472,0.296913}, {0.872543,0.792483}, {0.567036,-1.219657}, {-0.243654,0.348594}, {1.193936,0.547621}, {0.457518,0.539115}, {0.476268,0.389504}, {0.481768,-1.579726}, {-0.125194,0.075938}, {0.973247,-0.247002}, {-0.843604,0.794316}, {0.516310,0.192748}, {-0.156413,-0.385387}, {0.670795,0.673320}, {0.715695,0.154379}, {-1.280764,-0.035405}, {0.336530,1.477179}, {0.379120,1.083063}, {-0.395949,-0.490567}, {-0.541033,0.318875}, {1.380447,1.144061}, {-1.155728,-0.451759}, {-0.119609,0.530847}, {0.112070,-0.418582}, {-0.073277,-0.967746}, {-0.568655,0.359419}, {-0.644562,1.301028}, {-0.972656,-0.051257}, {0.565598,0.063147}, {0.226373,-1.303766}, {-0.053945,0.745209}, {-0.902083,-0.659843}, {1.127191,1.430759}, {-0.593266,-0.302685}, {-0.258176,0.542044}, {-0.416106,-0.838782}, {-0.513205,-0.035953}, {0.242585,-0.897682}, {-0.942517,1.556742}, {-0.845536,-0.691953}, {1.195428,-0.996093}, {2.193852,-0.065919}, {0.924832,-0.176276}, {2.032670,0.127016}, {-0.102169,0.484681}, {-0.035450,-1.188934}, {0.429058,0.816624}, {-0.470365,0.209900}, {1.204684,0.408525}, {-1.114052,0.414965}, {-0.544975,1.493659}, {1.142379,0.058358}, {-1.591466,0.057853}, {-0.396774,-0.466300}, {0.278815,0.305556}, {0.398613,-0.065548}, {0.671438,0.213874}, {-1.240631,0.575082}, {0.694327,-1.107893}, {-0.789778,-0.245106}, {1.082148,0.219531}, {0.152659,-0.295388}, {1.491724,1.028192}, {0.264360,-2.175691}, {0.311309,0.322370}, {-1.010542,-0.856291}, {1.053519,-0.514131}, {0.635882,0.553160}, {0.210920,-0.544505}, {-0.390892,0.472470}, {-1.002592,0.835210}, {-0.380769,1.290713}, {-1.474071,-0.592612}, {-1.467829,-0.275493}, {-0.484917,-0.266843}, {1.358912,-0.290679}, {-0.760563,0.421103}, {0.606959,0.863622}, {-0.587442,0.924857}, {-0.967521,-0.513563}, {-0.083623,0.137413}, {-0.366754,0.279873}, {-0.664209,-0.109312}, {-0.807642,-1.778743}, {0.805218,0.540964}, {0.176385,-0.486583}, {0.173106,-0.536233}, {0.000016,0.458630}, {-0.370551,-0.189795}, {0.285176,0.463441}, {0.240888,-0.349790}, {0.108800,-1.538375}, {0.043605,-2.269263}, {-0.272421,-0.006057}, {0.246002,0.570891}, {0.096239,1.069368}, {0.120818,-0.952900}, {-0.717973,0.329944}, {0.667827,0.340873}, {1.111960,-0.209056}, {-0.189543,-0.273671}, {0.227323,1.114953}, {-0.126011,0.855705}, {-0.076941,-0.519865}, {0.663803,0.416814}, {-1.438996,0.380905}, {0.894368,-1.006748}, {0.577437,-0.173548}, {1.291229,1.496509}, {-0.272941,-0.641907}, {-0.724711,0.930725}, {0.076404,-0.563913}, {-1.000032,0.407691}, {-0.566778,0.243748}, {0.053640,-1.146169}, {0.056950,-0.137659}, {0.346461,0.676644}, {1.134174,0.689609}, {0.667048,0.155867}, {-0.320707,-0.534195}, {0.003425,0.485725}, {-0.047785,-0.403591}, {-0.508202,-0.573405}, {0.249207,0.572682}, {-0.257244,0.012521}, {0.677142,-0.089546}, {0.020521,1.116257}, {0.752646,1.008726}, {-0.505273,-0.214467}, {-0.574463,0.394588}, {-0.062090,0.170994}, {-1.058119,0.845956}, {0.671211,0.127179}, {0.669598,0.396192}, {-1.024867,-0.406429}, {-0.919537,-1.145803}, {0.835666,-1.895036}, {-1.151913,0.473192}, {0.555942,0.438244}, {-0.109398,-0.855773}, {-0.287955,-0.851273}, {-0.240201,0.972916}, {0.263522,1.213921}, {0.260295,0.650558}, {0.211509,0.528461}, {0.224630,0.145409}, {0.998198,-0.616575}, {-0.241487,-0.203747}, {0.176697,0.282204}, {-1.171878,-0.213805}, {-0.379528,0.635300}, {-1.216967,0.179625}, {-0.880248,-0.542043}, {-0.062630,1.538727}, {-0.418366,0.221704}, {-0.204577,-0.588521}, {0.468903,0.240225}, {0.962490,0.035097}, {-1.212926,-0.343519}, {1.920868,0.684370}, {1.041078,0.532627}, {0.283895,-0.418711}, {-1.397285,0.823509}, {0.297481,-0.725686}, {-0.495904,0.086877}, {-0.863560,-0.351497}, {0.531538,1.820775}, {-1.045262,0.780107}, {0.974250,-0.849368}, {0.380715,-1.227674}, {0.781374,-0.931283}, {-0.112700,0.323563}, {0.188277,0.095565}, {-0.780066,-0.535792}, {-0.559995,0.628452}, {-0.217922,-0.893528}, {0.759105,-0.418794}, {0.649615,0.790668}, {0.067538,-0.565015}, {-0.002673,0.883082}, {0.194140,0.176718}, {-0.940190,1.442042}, {0.619299,0.056097}, {0.468398,0.509592}, {-0.711271,0.043840}, {-0.998983,-0.728807}, {0.325337,0.466913}, {0.077430,0.279358}, {-0.673751,0.162800}, {-0.231974,0.235378}, {0.910689,-0.797473}, {-1.622605,-0.841817}, {0.432091,-1.018767}, {-0.539186,-0.324225}, {-0.242040,0.155646}, {1.252015,0.593035}, {0.188151,-0.739432}, {0.534619,0.511769}, {0.345659,0.476703}, {-0.474379,0.580542}, {-0.760683,-0.293209}, {-0.917086,0.574522}, {-0.423170,-0.878440}, {0.040276,0.362034}, {0.008902,-0.223798}, {0.002946,-0.186733}, {-0.727363,0.046058}, {0.494353,-0.235286}, {0.720284,0.433101}, {1.295036,0.230127}, {-0.419453,0.141825}, {-0.485166,0.030742}, {-0.579491,-0.809389}, {0.297978,1.166165}, {0.107656,0.089250}, {-0.419769,0.749546}, {0.101102,0.988807}, {-0.007293,-0.739409}, {-0.673602,0.874056}, {0.488981,-0.019753}, {-0.544172,1.634457}, {-1.110920,-0.678521}, {-1.387117,-0.567418}, {-1.186982,-0.625841}, {-0.131011,-0.534074}, {0.455097,0.393563}, {0.737161,-1.031238}, {0.817935,-0.327775}, {-0.385625,-0.012476}, {-0.802613,0.038609}, {-0.194642,-0.009339}, {0.377562,-1.207033}, {-0.660416,-0.454296}, {-0.706623,0.381842}, {-0.116607,0.548143}, {0.288850,-1.075507}, {0.276881,0.463193}, {0.829630,0.529055}, {0.299449,-0.575188}, {-0.231345,0.351412}, {1.003362,-1.460585}, {0.451130,-1.124930}, {0.322338,0.099733}, {-0.254205,-0.042471}, {0.211873,-0.537793}, {0.550656,-1.202402}, {0.302071,-0.529459}, {0.484872,-0.424805}, {-0.676112,1.242723}, {0.196295,0.986675}, {-0.006182,0.043626}, {1.004458,-1.101313}, {-0.508022,-0.307337}, {-0.069604,-0.270549}, {-0.936588,0.401472}, {0.395051,-0.291762}, {0.249364,-0.460210}, {0.470524,-1.377845}, {-0.031948,-0.316301}, {0.398084,0.453870}, {-0.084745,0.044352}, {-0.653237,0.563452}, {-0.052125,0.128803}, {-0.427875,0.636993}, {1.058874,0.376406}, {-0.282247,-1.483023}, {-0.125176,-0.032568}, {1.794146,-1.232187}, {-0.187983,-0.345985}, {0.123095,-0.261032}, {-0.415461,-1.090493}, {-0.500346,-0.804478}, {-0.513241,1.041086}, {-1.784888,0.501072}, {-0.235262,-0.395913}, {-0.874197,0.136517}, {0.802032,0.092163}, {0.172660,-1.036619}, {-0.740904,0.535180}, {0.617676,0.005886}, {-0.693840,-0.522827}, {-0.803188,-0.240073}, {-0.728556,-0.632434}, {-0.149941,0.193266}, {0.476898,-0.368260}, {-0.031225,-0.120384}, {-0.073972,0.464808}, {0.160690,0.537959}, {-0.450836,0.102038}, {-0.216212,1.235659}, {0.164200,0.192175}, {-0.265676,0.384622}, {0.213530,-0.157196}, {-0.833550,-0.048440}, {0.003577,0.903917}, {-0.060957,0.001082}, {-0.422697,-0.291104}, {-0.436963,0.617239}, {-0.560838,-0.652536}, {-0.389877,-1.335308}, {0.221871,-0.727966}, {0.366452,-0.156117}, {0.048762,0.817719}, {1.364032,-1.028170}, {-0.199738,-0.597666}, {-0.048452,0.186324}, {0.317672,1.640253}, {1.030187,1.004812}, {0.186677,0.155142}, {-0.128456,-0.513439}, {1.114846,-0.127393}, {-0.365605,-0.311630}, {-0.081923,0.648966}, {0.060946,1.009555}, {0.545678,0.076880}, {-0.990208,-1.026702}, {-0.840658,0.552260}, {-1.316496,0.415412}, {0.233111,-0.268865}, {-1.081822,0.126111}, {-0.893361,0.121170}, {0.637557,-0.768942}, {-0.981313,-0.937625}, {0.366842,-0.491230}, {-0.296605,-0.122075}, {-0.694637,-0.691831}, {-0.346922,1.010405}, {0.265549,-0.072721}, {0.553767,0.365723}, {-0.886712,0.109635}, {-0.548347,-0.303784}, {-0.124639,0.349517}, {-0.989650,0.330316}, {0.762642,0.298664}, {-0.179434,1.111018}, {0.040421,0.525211}, {-0.040726,-0.517622}, {-0.436258,-0.419372}, {-0.614376,-1.002123}, {0.714119,-0.753994}, {-0.514783,-0.369145}, {0.074207,-1.001150}, {0.344306,-0.309130}, {0.149015,0.765323}, {-0.296244,0.136197}, {0.962661,1.268011}, {0.023783,-1.186554}, {0.123632,0.492674}, {0.856406,0.442632}, {0.232322,-0.486339}, {0.191689,0.265950}, {0.179934,-0.748107}, {-1.701289,-0.051015}, {-0.259518,1.342912}, {-1.092688,0.126797}, {0.646145,1.070342}, {-0.102832,0.212320}, {0.371741,1.059808}, {0.329041,0.597689}, {1.172615,0.542162}, {-0.190803,0.345770}, {0.694535,-0.143332}, {1.565777,-0.517105}, {-1.157503,-0.395621}, {0.977210,0.015425}, {-0.257104,0.098762}, {-1.333003,0.368782}, {0.061883,0.379086}, {0.445949,-0.575541}, {0.417953,0.289093}, {0.289993,-0.020798}, {-1.440368,0.472769}, {1.148131,1.054014}, {-0.556081,0.000779}, {0.327782,0.192655}, {-0.039300,-0.677965}, {0.740380,-0.491050}, {-0.072859,-1.870999}, {-0.464327,-0.233392}, {0.037757,-0.291647}, {-0.124848,-0.199890}, {0.429504,1.065232}, {-0.841457,0.469673}, {-0.636712,0.263585}, {0.958690,-0.322036}, {-0.209246,0.211522}, {0.228839,-1.553564}, {0.544155,0.188110}, {0.738006,0.016440}, {0.586748,0.001516}, {0.360613,0.505248}, {-0.257556,-0.316652}, {-0.203123,0.066133}, {0.707979,-0.756344}, {-0.583274,-0.479593}, {-0.810371,-0.061860}, {0.273421,-0.865636}, {-0.823282,0.610077}, {0.094723,0.544387}, {-0.008236,0.290898}, {0.646489,0.296314}, {-0.205770,-0.509249}, {-0.052562,0.594927}, {0.444777,0.441814}, {0.100155,-0.501991}, {-0.232563,-0.082230}, {-0.081497,-0.962312}, {0.041276,0.987394}, {1.069935,-1.329858}, {-0.076026,-0.887274}, {0.086993,0.014743}, {-0.179174,0.280143}, {0.565349,-0.420367}, {0.521928,-1.241770}, {0.916126,1.435687}, {0.637655,-0.516147}, {-1.043603,0.819465}, {-0.883656,-0.205474}, {-0.644741,0.180014}, {0.622506,-0.334192}, {-0.241486,-0.600670}, {-1.499588,0.650466}, {-0.201187,-0.192333}, {0.480999,-0.530799}, {-1.738026,-0.145849}, {0.998277,0.673428}, {-0.144344,-0.233893}, {-0.059109,-0.308362}, {0.269830,1.562885}, {-0.013641,-0.506529}, {-0.278890,0.111794}, {0.066036,0.843526}, {-0.042208,1.107633}, {-0.014597,0.485376}, {0.183473,-1.283402}, {-0.039860,-0.602430}, {0.759903,0.034461}, {-0.520732,0.826968}, {0.093097,0.518453}, {-0.047591,0.588031}, {-0.808060,-0.728578}, {-1.845584,0.914242}, {0.266263,0.716752}, {-1.253357,-1.118286}, {0.705217,0.050021}, {0.743902,-0.448512}, {0.216893,0.073955}, {0.385487,0.994616}, {0.178511,0.204042}, {-0.523429,-0.483543}, {0.274570,0.042189}, {-0.187481,0.727858}, {-1.040426,-0.720766}, {-0.359936,1.093006}, {-0.665247,-0.950281}, {-1.001936,0.289410}, {1.381124,0.376211}, {0.995092,-0.174666}, {1.360198,-2.217745}, {-0.554387,-1.676721}, {-0.233175,-0.582371}, {-0.388060,-0.034116}, {1.342218,0.537788}, {0.249304,1.296082}, {-1.475857,-1.157512}, {-0.197745,-0.568437}, {0.824403,0.507678}, {0.819198,-0.920770}, {0.385495,-0.200380}, {-0.503672,0.548119}, {-1.111840,-1.633640}, {-1.163537,-0.037715}, {0.292674,-0.654745}, {-0.962338,-0.407980}, {-0.123743,0.028162}, {-0.253323,0.014822}, {0.479730,-0.823812}, {-1.207221,0.300687}, {0.996807,-1.482183}, {-0.338063,0.564877}, {0.920558,-0.084443}, {1.293720,0.577197}, {-0.967375,0.013719}, {-0.481738,0.429749}, {-0.943010,-0.544458}, {0.060644,0.029556}, {1.271225,0.072382}, {1.345314,-0.606930}, {-0.113264,0.048617}, {-0.471231,0.591903}, {0.450025,-0.255396}, {1.082117,-0.457752}, {-0.437023,0.619777}, {0.199128,0.415873}, {-0.738844,-1.578600}, {-0.460504,-0.497232}, {0.365693,0.851386}, {1.155773,0.416016}, {1.362762,-0.089273}, {0.045085,-0.410653}, {-0.352391,1.194551}, {0.269619,-0.845695}, {-0.937635,-0.041440}, {-0.291614,0.210214}, {-0.590964,0.334029}, {0.041430,-0.582846}, {-0.049634,-0.333992}, {0.587620,0.926445}, {0.019148,-0.708333}, {-0.897879,1.311240}, {-0.362442,1.068789}, {0.417690,0.948938}, {1.014004,-0.315357}, {-0.426504,0.852104}, {0.879939,1.426273}, {1.147532,-0.513129}, {-0.010543,-0.559115}, {-0.935264,-0.274738}, {0.047804,-0.517361}, {-1.287619,-0.019239}, {-0.829546,-0.280842}, {-0.731296,0.823460}, {-0.891822,0.427640}, {0.589846,0.227553}, {0.224689,0.571736}, {-0.991209,-1.790480}, {-0.009287,0.367028}, {-0.551808,-1.155483}, {-0.158887,-0.504851}, {-1.006753,1.691039}, {0.139125,1.656709}, {0.311493,-1.358651}, {-0.000659,-0.397979}, {0.168687,-0.256026}, {-1.042776,0.605335}, {-0.319026,1.219072}, {1.837911,0.271572}, {0.239919,0.877257}, {-0.037115,-0.596589}, {-0.745878,1.264467}, {0.010089,0.390431}, {-0.581987,-0.175623}, {-0.649250,0.127701}, {-0.927358,-0.445949}, {0.969864,-0.227424}, {0.341977,0.252902}, {0.135549,-0.495303}, {-0.434902,-0.375805}, {0.365613,0.090189}, {-0.599520,-0.108817}, {-0.486901,0.808199}, {0.802453,0.113674}, {-0.985303,0.348679}, {0.272472,-0.315188}, {0.653225,-0.102477}, {-1.075974,0.333581}, {0.197104,-0.038665}, {0.362767,0.959841}, {-0.336212,-0.991636}, {0.341808,-0.200085}, {0.350307,-1.046523}, {0.941919,-0.790265}, {-0.391904,-0.269616}, {-0.583731,-0.576541}, {-0.767887,0.168764}, {0.804567,-0.160216}, {1.321056,0.602316}, {-0.188219,-0.925499}, {-0.025028,-0.134455}, {0.409337,0.135734}, {0.934364,0.899781}, {0.443336,-0.454010}, {0.267522,1.651923}, {-0.021616,-0.240785}, {-0.389671,0.913717}, {1.028459,-0.957200}, {0.917363,0.369138}, {0.528539,0.496175}, {0.086018,0.410356}, {-0.761042,0.621316}, {0.674682,-0.212507}, {-0.658861,-0.532391}, {0.285689,-0.034456}, {0.547369,0.588551}, {-0.665673,-0.523220}, {-0.044039,0.016680}, {0.770642,1.488234}, {1.180668,-0.468981}, {-0.046869,-0.474722}, {-0.575480,1.143743}, {0.493793,-0.521459}, {-0.181592,0.068195}, {-0.893649,-0.629530}, {0.739301,-0.072214}, {0.372672,0.080329}, {0.913631,-1.018692}, {-0.517839,0.093767}, {0.621679,0.306497}, {0.074540,0.055095}, {0.723377,-0.915493}, {0.022777,-0.462031}, {0.093992,0.364776}, {-0.161938,-1.408632}, {-0.700315,-0.305135}, {0.067748,-0.187459}, {0.483409,-0.713985}, {0.928152,-0.381167}, {-0.857084,1.583029}, {-1.318696,0.516152}, {0.062040,0.590523}, {0.832742,-0.065744}, {0.190616,0.184008}, {0.718808,0.579103}, {0.091621,-0.167070}, {-0.496135,1.776628}, {-0.776281,-0.967919}, {-0.340838,-1.252051}, {0.509865,0.890890}, {0.011224,1.492168}, {-0.370739,0.707013}, {-0.707116,1.492027}, {-1.470031,-1.128868}, {-1.199963,0.304341}, {0.178199,-1.144514}, {0.827291,0.129026}, {-1.809214,0.424594}, {-0.056250,-1.086321}, {-0.806620,0.594545}, {0.614157,0.789597}, {-0.230539,-0.152551}, {0.305055,0.383843}, {-0.572786,-0.383604}, {0.699148,0.289711}, {1.471148,1.731421}, {0.221494,-0.119078}, {0.134051,0.860560}, {-0.199285,1.539492}, {0.327753,-0.263169}, {0.070554,-0.500086}, {0.607835,1.349017}, {0.298997,0.241897}, {0.128546,0.517720}, {-0.933511,-0.304699}, {-0.222248,-0.319890}, {0.219134,1.083726}, {0.732430,-0.081472}, {-0.274968,0.590110}, {-0.774399,1.437671}, {1.398432,-0.474460}, {0.731892,0.666366}, {0.286832,-0.212891}, {0.820630,1.301418}, {0.413562,1.052060}, {-0.226316,-0.541971}, {-1.042872,-0.345541}, {-0.858989,-1.096863}, {1.880585,-0.233188}, {-0.807930,-1.151544}, {0.394861,-0.330062}, {-0.085289,-1.629366}, {0.640853,-0.152655}, {0.183194,-0.254060}, {-1.443384,1.394728}, {-0.011702,0.646342}, {0.736446,-1.332796}, {0.621335,-0.574106}, {-0.338450,-1.567302}, {-0.332211,0.110908}, {-1.017165,-1.522539}, {-0.140315,2.030807}, {0.044867,-1.101171}, {0.189708,0.085158}, {-1.830584,0.387522}, {-1.017359,0.484883}, {0.275108,0.181996}, {-0.327957,1.214680}, {0.336969,-0.766226}, {-0.562675,0.180997}, {1.310744,0.585186}, {0.080051,2.094519}, {0.211201,0.942647}, {0.568763,-0.272394}, {0.152587,-0.595240}, {1.275315,0.622396}, {0.813283,-0.132745}, {0.407696,1.569844}, {0.039364,0.287794}, {0.244642,-0.641218}, {0.886477,1.006243}, {0.948847,0.187471}, {-0.626010,0.160922}, {0.962612,0.504401}, {0.875536,-0.815369}, {0.175947,-1.244808}, {-0.070131,0.461325}, {0.202225,-1.039772}, {-0.325603,0.232979}, {-0.747171,-1.024781}, {-0.079451,0.376832}, {0.336329,1.142868}, {0.213160,0.231289}, {-0.691300,-0.017983}, {0.057278,-0.387798}, {0.073555,1.006174}, {0.490772,0.337166}, {0.685390,-0.318414}, {0.637094,0.808315}, {0.523969,2.121595}, {0.721264,-0.482325}, {-0.145401,-0.605792}, {-0.233810,-0.053732}, {1.269554,0.710916}, {1.057321,-1.046691}, {0.464363,-0.270764}, {0.840490,1.150537}, {-0.620898,-1.419891}, {-0.857446,-0.039502}, {-0.770707,-1.876256}, {0.950801,1.087080}, {1.432451,-0.030974}, {0.490360,-0.567231}, {-0.268067,-1.435917}, {-1.183652,0.279454}, {0.884853,-0.220426}, {-0.528640,-0.111193}, {-1.097008,0.128877}, {-1.181036,-0.940732}, {0.775628,0.000761}, {1.472129,0.938313}, {-0.651045,-0.150514}, {0.253945,0.727849}, {-0.625689,-0.863395}, {-0.857663,-0.204035}, {0.229410,0.785159}, {0.415385,-0.811285}, {0.135788,0.541017}, {0.540449,0.302355}, {-0.375243,-0.075659}, {-0.126218,-1.254478}, {-0.842535,-0.102853}, {-0.944249,0.424586}, {1.011823,-0.620988}, {1.012036,0.169655}, {0.512690,0.312651}, {-0.628804,0.539718}, {0.567513,0.109352}, {0.934259,-0.533472}, {-0.633715,-1.496096}, {-0.416398,-0.918620}, {0.421463,-1.209687}, {0.314672,-0.470088}, {-0.834237,-0.445546}, {-0.485232,-0.247145}, {-0.136325,-0.141431}, {-0.006273,1.250196}, {0.266229,-0.648711}, {-0.945678,-0.027143}, {0.782856,-0.470187}, {0.305630,0.658933}, {-1.111016,0.700723}, {-0.365320,0.254061}, {-0.175023,0.308741}, {0.744562,0.103704}, {0.557819,0.264705}, {-1.130397,-0.307616}, {0.190300,0.843572}, {0.871835,-0.864320}, {1.025579,0.117274}, {-0.714639,-1.413594}, {-0.394212,0.630346}, {-0.402052,0.309273}, {1.048158,0.495032}, {-1.458614,0.390078}, {-1.348655,-0.157187}, {0.627460,0.517239}, {0.616428,0.013392}, {0.066659,0.172077}, {0.177589,1.104288}, {-0.202342,0.342469}, {-0.896507,-0.597822}, {-2.067867,-1.208733}, {-0.022428,0.203426}, {0.303756,0.349684}, {0.627717,0.858736}, {-0.745760,-0.181848}, {-0.496215,1.429290}, {-0.011943,-1.057738}, {0.536641,1.349276}, {-0.528001,-0.098934}, {-1.063109,0.581999}, {-1.256061,0.808575}, {-0.601466,0.399072}, {0.563718,-0.264581}, {-0.237276,-0.677165}, {-0.348054,1.673165}, {0.064061,-0.618610}, {-0.161228,0.795589}, {-0.924021,-1.050412}, {0.197726,0.353867}, {-0.151410,-1.246225}, {-0.714340,0.549384}, {1.556261,-1.468342}, {0.468479,-0.903354}, {-0.483340,1.187727}, {0.077127,-0.093447}, {0.064972,0.945303}, {-0.092409,0.145919}, {1.315321,0.437219}, {0.090724,0.761955}, {0.781174,0.978083}, {-0.308962,-0.268376}, {0.696462,-0.805879}, {0.966927,1.486179}, {-1.249165,-1.299388}, {1.239842,0.109267}, {-0.340003,0.701168}, {-1.633695,0.438179}, {0.257196,0.023754}, {0.005382,-0.652799}, {0.698827,-1.245465}, {1.057062,-0.264028}, {-0.335223,-0.503241}, {0.175219,-1.082885}, {-0.274187,-0.933890}, {-0.240526,-2.221268}, {-0.007571,0.808866}, {0.162060,0.252737}, {0.481541,0.726904}, {-0.555236,0.591634}, {-0.136039,-0.497365}, {-0.914324,-0.971380}, {-0.330625,0.159913}, {0.231296,-1.098666}, {0.393929,-1.169035}, {-0.664998,0.348284}, {0.579266,-0.439099}, {0.782286,-0.483201}, {-0.036705,0.243544}, {-0.470027,-0.758332}, {-1.089025,0.282651}, {-0.536396,-0.779503}, {0.584009,0.036838}, {0.777240,-0.758248}, {-0.410388,0.482134}, {-0.240905,-0.322910}, {1.052859,0.448321}, {0.744819,0.688556}, {-0.323975,-0.312544}, {1.688688,0.125085}, {0.767757,0.027399}, {-0.165767,0.087836}, {-0.295850,-1.950460}, {0.035816,0.245902}, {-0.180130,-1.262665}, {0.117034,0.019373}, {0.309583,-0.084634}, {0.160314,0.617106}, {-0.223874,-0.405101}, {0.391423,-0.984880}, {-0.583522,-0.208371}, {0.314564,1.000927}, {1.528070,-0.488905}, {0.682797,-0.214904}, {-0.961746,0.561929}, {-0.044529,-0.357871}, {-0.881485,-0.203306}, {1.081847,-0.376245}, {0.828899,1.159757}, {-0.396282,0.868155}, {0.013008,-0.796971}, {1.839981,0.128022}, {0.861759,-0.389782}, {0.939432,0.185296}, {0.402922,-1.121553}, {-0.878636,-1.122818}, {1.213472,0.848105}, {0.264317,-0.326819}, {0.669519,-0.620270}, {0.703125,-0.958242}, {-0.367984,-0.413227}, {-0.561993,0.902582}, {0.709199,0.095548}, {-0.624048,-0.624104}, {0.367587,0.743255}, {0.349618,-0.082040}, {0.353670,-0.602772}, {-0.121469,0.186655}, {0.966288,-0.989082}, {0.615847,1.087146}, {0.049469,-0.498055}, {0.161550,0.553359}, {-0.061135,-0.214648}, {0.046340,1.148951}, {-0.104857,0.135405}, {0.575610,1.613613}, {0.294077,0.716711}, {0.590764,-0.458646}, {0.533655,-0.474675}, {-0.200094,0.220235}, {0.538978,-0.112814}, {-0.596995,0.556408}, {0.538951,-2.449696}, {0.092171,-0.864222}, {1.336939,0.991303}, {0.333067,0.173662}, {-0.153896,0.523270}, {-0.582494,0.868651}, {0.018634,0.130106}, {-0.392325,-0.082136}, {0.011480,0.421792}, {-0.427424,-0.661210}, {0.942397,0.587290}, {-0.291423,0.402361}, {-0.624678,0.855158}, {0.427905,-0.996070}, {-0.282753,-0.652971}, {-1.240070,1.256909}, {0.815396,-0.668763}, {0.069285,0.238819}, {0.077701,0.317614}, {1.331490,0.009543}, {1.194605,-0.196271}, {0.230566,0.449264}, {0.385677,1.158774}, {-0.340860,-0.164507}, {-0.842850,-0.564676}, {-1.758840,0.064669}, {-0.772174,0.091618}, {1.140984,-0.811770}, {-0.283852,-0.741705}, {0.846224,0.293317}, {-0.901372,1.090597}, {1.033877,-1.064114}, {-1.186147,0.598334}, {-0.967792,1.113083}, {0.974157,0.994512}, {0.313614,-0.240645}, {-0.063238,-0.036188}, {-0.886378,-0.081582}, {0.155813,-1.314707}, {0.005821,0.803969}, {0.031398,1.138370}, {0.020663,-1.412936}, {0.051696,0.849846}, {-0.754989,-0.899231}, {0.394988,0.540404}, {-0.440672,-0.180217}, {1.164193,-0.163753}, {0.201996,-0.935543}, {-0.757096,0.768721}, {-0.851269,0.282609}, {-0.032236,-0.457477}, {0.242147,-0.379077}, {-0.369603,-0.280814}, {0.521168,-0.299217}, {-0.383667,0.998399}, {-0.273344,-0.133382}, {-0.197726,0.033374}, {0.399979,0.840030}, {-0.349378,-0.387395}, {1.124925,-0.570043}, {0.418603,0.905447}, {0.470094,-0.957354}, {0.799573,0.109228}, {0.261391,-0.587899}, {0.115105,0.568951}, {-0.511340,1.109997}, {0.183765,1.450929}, {0.528498,-0.666337}, {0.342372,-0.375714}, {-1.148716,0.543099}, {-0.747361,-0.454390}, {-0.510703,-0.904779}, {0.494719,0.007910}, {-0.178977,-0.714179}, {-0.178152,-0.715379}, {-0.282468,0.236082}, {-1.500059,-0.596371}, {0.070261,0.659727}, {-0.930558,0.499131}, {0.889396,0.872062}, {1.504564,-0.762497}, {-0.316940,-0.491494}, {-0.366178,-0.120892}, {-1.136140,-0.665677}, {0.792450,0.494536}, {-0.058379,-0.131564}, {0.318553,-0.170468}, {-0.442968,-0.453066}, {-0.086122,0.487054}, {-0.002152,0.609175}, {-0.198518,-0.485488}, {0.401525,1.306812}, {-0.871198,-0.567593}, {-1.415314,-0.301627}, {1.094900,0.063995}, {-0.495128,0.213385}, {0.001405,-0.320934}, {-0.324564,-0.183506}, {0.122253,-0.766486}, {0.984696,0.267844}, {0.390885,-0.724844}, {-0.295282,0.211369}, {-0.452752,0.149217}, {-1.129899,1.635510}, {0.401396,0.319009}, {-0.558456,0.761582}, {0.516621,-0.299728}, {1.170774,0.462117}, {0.617850,0.230530}, {-0.616788,-0.704169}, {0.921282,-0.768237}, {-0.341409,0.311033}, {1.237788,-0.817666}, {0.485433,-1.114476}, {-0.342288,-0.175267}, {0.536632,1.147849}, {0.173754,0.023311}, {0.019679,-0.413100}, {0.597239,-0.651007}, {0.649898,-0.023947}, {0.784239,0.588037}, {0.830428,-0.495560}, {-1.123475,1.667920}, {-0.757155,0.047444}, {-1.536651,0.080233}, {-0.600005,0.260676}, {0.220305,-1.151817}, {-0.957182,0.202521}, {0.051226,-0.029891}, {0.929447,0.384707}, {-0.422607,-0.106100}, {0.353436,0.656718}, {-1.698234,-0.708923}, {0.303429,-0.258709}, {-0.088662,0.015699}, {-0.107934,-0.261967}, {0.273168,1.400901}, {0.727049,-0.003312}, {0.353597,0.715919}, {-0.952026,-0.067464}, {-0.145977,-0.817247}, {0.424964,-0.919265}, {0.216841,-0.912514}, {0.817183,-0.911165}, {-0.818262,-0.517903}, {0.313475,-0.796077}, {-0.461417,0.089258}, {0.281792,-0.291761}, {0.256943,-0.778188}, {0.692420,-1.751276}, {-0.667443,-1.761493}, {0.064327,0.039954}, {0.393151,-0.403340}, {0.452610,-1.766216}, {-1.336807,-0.219532}, {0.984460,-0.595093}, {-0.702228,0.759469}, {-0.464956,0.036841}, {0.212799,0.031216}, {-0.802860,-0.547493}, {-0.158662,0.903760}, {0.085684,-0.487384}, {0.396768,-0.742668}, {0.947527,-0.110617}, {-0.879301,0.044952}, {1.116675,-0.038127}, {-0.722818,1.392444}, {-0.373075,0.108044}, {0.341487,0.570356}, {0.441689,-0.298432}, {-0.916256,0.631859}, {-0.115507,0.498266}, {0.487754,0.201490}, {1.238389,-0.100924}, {0.271103,0.682797}, {-0.148481,0.589360}, {-1.194668,-0.756352}, {0.264142,0.313523}, {0.562690,-0.166170}, {-0.527054,0.196752}, {-1.636821,-0.651796}, {0.182204,0.101729}, {-1.710289,-0.320628}, {0.053238,-0.006688}, {0.879077,-0.416623}, {0.459898,-0.350816}, {-0.856786,0.761817}, {0.575136,0.370224}, {-0.710682,-1.661932}, {0.336980,0.262314}, {-0.579270,1.290335}, {1.163348,0.112616}, {-0.596616,-0.104548}, {-0.584829,0.611158}, {-0.507069,0.090728}, {-1.061880,0.073344}, {-0.141397,0.660130}, {1.132322,0.001417}, {-0.578203,1.455008}, {0.430346,-0.353417}, {0.774728,-0.360911}, {0.089974,0.151366}, {-0.258221,-0.281586}, {0.380590,-0.050307}, {0.805828,1.610702}, {-2.417115,-0.796571}, {0.513097,-0.330322}, {-0.384140,0.768697}, {-0.343898,0.186101}, {-1.280400,-0.294454}, {0.497601,-1.076587}, {0.969059,0.648983}, {0.415521,-0.271362}, {-0.023547,-0.051680}, {0.697681,0.077273}, {1.467525,-0.087120}, {0.914526,0.512467}, {0.673227,-0.608451}, {0.868157,-0.438369}, {-0.641897,-0.582166}, {-0.395403,-0.726859}, {0.708135,0.058289}, {0.155302,-0.353393}, {-0.604680,-0.269021}, {0.555662,-0.222243}, {-0.691591,-1.012201}, {0.593126,-0.482201}, {0.938501,-0.141245}, {-0.285179,-0.282197}, {-0.332866,-0.838107}, {-0.299353,0.907257}, {-0.502252,0.130212}, {0.509899,0.203982}, {0.432764,-1.036891}, {0.320100,0.302258}, {-0.715537,0.630849}, {1.399467,0.189787}, {0.257626,0.021932}, {-0.112331,0.217707}, {-1.289427,1.432804}, {-0.390872,-0.357403}, {0.236182,0.303781}, {0.802511,0.330483}, {-1.028297,-0.403086}, {-0.147910,-0.288479}, {0.978197,-0.775374}, {0.868229,1.459663}, {0.452224,0.498722}, {0.746035,-0.670797}, {-0.360626,0.630983}, {-0.148420,-0.258364}, {-0.536846,0.526774}, {-0.736656,0.599485}, {0.251565,0.410096}, {-0.817544,0.436993}, {-0.361899,-0.266149}, {0.106065,1.119062}, {-0.001893,-0.840154}, {-0.174058,0.288847}, {0.450589,-0.520516}, {0.330658,-0.272313}, {0.560301,0.149574}, {-0.927905,-0.026315}, {-0.130635,0.149914}, {-0.167674,0.479912}, {0.163863,-0.914797}, {-0.236233,0.492833}, {-0.439716,-0.273501}, {1.097053,0.570964}, {-1.090225,-0.751110}, {-0.622561,-1.038814}, {0.309323,-1.010214}, {-0.204232,-0.589475}, {-0.039192,0.034730}, {-0.672256,0.289962}, {1.195556,-0.759149}, {0.701010,-0.946209}, {-0.211877,-0.021206}, {0.834771,0.269014}, {0.310538,0.897536}, {-0.416299,-0.103346}, {0.263666,-0.033155}, {1.199319,0.739114}, {0.209693,-0.011071}, {1.463650,-1.052988}, {-0.101228,-0.167856}, {1.234120,-0.942573}, {0.196785,0.954050}, {0.829042,0.153133}, {0.357430,0.139137}, {-1.233805,0.986066}, {-0.587524,0.933536}, {1.124220,0.284460}, {0.369787,-0.213798}, {-0.012298,1.911852}, {-1.586387,0.267615}, {0.696006,-0.464801}, {-0.624327,1.280676}, {0.367066,0.324597}, {0.000432,0.067311}, {0.390603,1.101625}, {0.256944,-0.623323}, {0.543036,0.814041}, {0.002517,-0.822681}, {-1.222231,0.151677}, {1.087153,-0.651828}, {-0.140421,-0.309047}, {-1.276460,-0.479672}, {0.907053,0.734263}, {-1.468305,1.325843}, {-0.742062,1.724340}, {0.602905,0.826894}, {-0.234395,0.552366}, {-0.319795,-0.300154}, {0.766130,0.375387}, {-0.565094,-0.908181}, {-0.002303,0.803038}, {0.606245,-0.886099}, {-0.375411,-0.501269}, {1.137430,0.498844}, {1.400551,1.243294}, {-0.572345,0.330001}, {-0.831085,0.224646}, {-1.193440,0.029548}, {-1.017357,0.114069}, {0.036078,0.403207}, {1.394122,-0.032985}, {-0.220085,0.427158}, {-1.279987,-0.411288}, {0.377185,0.243313}, {0.004243,-0.857524}, {1.036016,-0.532137}, {0.245228,-1.150637}, {1.467709,-0.614337}, {-0.512344,0.162373}, {-1.104046,-0.167139}, {-0.224718,-0.143013}, {-0.256979,0.070597}, {0.089855,-0.271238}, {-0.734984,0.724372}, {-0.217210,0.319333}, {0.718725,0.347974}, {0.251565,0.741094}, {0.290149,0.659867}, {0.408272,-0.032915}, {0.079918,0.470449}, {-1.011348,-0.572926}, {0.265858,-0.244285}, {0.498660,-1.173075}, {-0.489052,0.268982}, {0.803724,-0.240363}, {-0.448072,0.003395}, {0.190085,0.738899}, {-1.320261,-0.384362}, {-0.851492,-0.388560}, {0.421440,-0.177958}, {-0.701418,0.243165}, {-0.274377,0.336519}, {-0.432270,0.059413}, {0.723602,-1.369028}, {0.003061,1.025321}, {0.439715,0.455140}, {0.247416,-0.318078}, {-0.295679,-0.309351}, {-1.069923,0.563669}, {0.778952,0.003877}, {-0.650501,0.383655}, {0.290488,-0.280076}, {-0.318266,-0.503424}, {0.200569,-0.451626}, {-0.058511,1.000852}, {-0.501142,1.127454}, {0.840729,0.860918}, {0.404423,1.184485}, {0.080599,0.337071}, {0.265972,-0.831970}, {-0.792118,-0.632130}, {-1.312815,-0.150298}, {0.384463,0.434096}, {-0.473277,-0.646626}, {0.726083,0.524943}, {0.232413,-1.349094}, {-0.132578,-0.328246}, {0.192057,-0.949313}, {-0.294124,1.799810}, {-0.646249,-0.365151}, {-1.142885,-0.860267}, {0.952542,0.463949}, {-0.843407,0.603740}, {0.245604,0.005612}, {0.876790,-0.725446}, {-1.264255,-0.509446}, {0.935016,-0.003417}, {0.253759,-0.252225}, {-0.504993,0.338401}, {1.002041,0.260841}, {0.156989,-0.135302}, {-1.024724,-0.400709}, {-0.112462,-1.205456}, {0.334260,0.781035}, {0.183794,0.683842}, {-0.865777,0.383277}, {-0.505670,0.667817}, {-0.088249,0.840903}, {1.101360,1.926043}, {-0.308625,-0.138154}, {0.609676,-0.715983}, {-0.645769,-0.287890}, {0.369474,-0.729993}, {0.186644,0.541750}, {0.463282,0.674407}, {0.216844,-0.852488}, {0.856090,0.940839}, {1.001064,0.394220}, {-0.837133,-0.154497}, {-0.390434,0.439008}, {0.680226,-0.317541}, {0.098053,0.117416}, {0.071014,-0.649889}, {-0.262387,-0.155264}, {0.388413,0.769428}, {0.158413,0.941346}, {0.671325,-0.266932}, {0.970945,-0.618071}, {0.233638,0.572923}, {0.060161,-0.256486}, {-0.637504,0.063894}, {0.934414,-0.427341}, {-0.467026,0.652522}, {-0.863576,0.149723}, {-0.771443,-0.816274}, {0.511701,-0.479018}, {-0.257457,0.087086}, {0.290638,0.016947}, {-0.386981,-0.727179}, {-1.098515,-0.274432}, {-0.557208,1.426296}, {-0.613355,0.019539}, {-0.419196,-0.251018}, {-0.832714,0.502052}, {0.128755,0.655366}, {0.256114,0.273034}, {-1.125167,-0.906505}, {0.388043,-0.540845}, {-0.937881,2.105264}, {-0.202089,1.002912}, {0.723756,-0.449443}, {0.233778,0.527703}, {-0.057235,1.884349}, {1.157345,-0.412072}, {-0.955458,-1.385361}, {0.053114,0.627971}, {0.827722,0.375269}, {-0.181816,0.772748}, {-1.626276,0.442130}, {-0.435385,-0.179652}, {1.089080,-0.426374}, {1.017264,0.699838}, {-1.020426,-0.298556}, {0.676783,0.459662}, {-0.739834,0.763761}, {0.721741,-1.206326}, {-0.951135,-0.270497}, {-0.457913,-1.038211}, {1.712993,-0.468750}, {-0.543171,1.050327}, {-0.541388,0.741480}, {1.399220,-0.146602}, {-0.246873,1.307922}, {-0.314164,-0.681691}, {-0.361125,0.096600}, {0.468431,-0.456516}, {-1.208053,0.471189}, {-0.369852,-0.310925}, {-0.655492,-0.981961}, {1.982648,0.257313}, {0.350295,-0.328245}, {-0.408155,0.164967}, {1.186227,0.615053}, {1.538608,0.853998}, {-1.014463,-0.266268}, {-0.038058,1.267679}, {1.226620,-0.039905}, {0.128462,-0.723152}, {1.117944,-0.485275}, {0.110495,0.512575}, {0.613947,-0.332562}, {1.183653,-0.135030}, {-0.545671,-1.236704}, {-0.368847,0.282388}, {0.354177,-0.397370}, {-0.221450,0.619409}, {-0.212607,-0.070614}, {-0.746339,0.421409}, {-0.796334,0.416425}, {0.281155,-0.847141}, {1.084794,-0.633466}, {-1.416468,-0.504705}, {-0.413320,-0.218964}, {-0.006619,1.498092}, {0.592891,0.110515}, {0.202503,-0.802352}, {-1.044280,-0.551926}, {-0.551728,0.074422}, {-1.621229,-0.887687}, {-0.034501,-0.177771}, {0.643751,-0.498982}, {0.537422,0.214707}, {0.859316,0.230005}, {0.984145,0.642774}, {-0.446523,-0.283910}, {0.698656,-0.512658}, {-0.413664,0.370197}, {0.012230,0.057244}, {-0.124965,0.707693}, {-1.668994,0.589325}, {0.431439,0.916868}, {0.357835,-0.007437}, {0.091721,-1.193125}, {1.085117,0.362418}, {-0.815710,-0.704111}, {0.368599,0.417522}, {-0.153068,0.701186}, {0.633497,1.153006}, {-0.640502,-0.448321}, {-0.288243,-1.008288}, {-0.241203,0.571272}, {-0.700623,0.003668}, {0.762784,-0.271363}, {-0.675450,-0.536786}, {-1.095720,0.963368}, {-0.545080,-0.052652}, {0.425995,1.045991}, {0.747089,-0.106197}, {0.705921,0.481355}, {-0.231552,-0.495818}, {-0.035338,0.271549}, {-1.434181,-0.462102}, {-0.234651,-0.659026}, {0.293521,0.578445}, {-0.159469,-0.371527}, {0.947780,-0.184427}, {-0.575724,1.293055}, {1.217078,0.776812}, {0.077462,0.005225}, {0.031218,0.312440}, {-0.254340,-1.261328}, {-0.545078,0.114315}, {0.214459,0.265649}, {0.665158,-0.572889}, {0.156845,-0.494711}, {-0.805048,-0.829465}, {-1.377436,-0.234879}, {-0.680977,1.091655}, {0.991115,-0.327044}, {-0.636966,-0.868296}, {-0.468122,0.139195}, {-0.023171,-0.344042}, {0.779795,0.665803}, {0.288043,-0.640526}, {-0.377837,-0.768582}, {1.312911,0.154017}, {0.594896,0.205326}, {0.546600,-0.380945}, {-0.348857,-0.048100}, {-0.719583,0.758329}, {0.366828,0.580990}, {0.370738,0.785391}, {-0.058071,-1.293254}, {-0.886575,0.757403}, {0.424991,-0.722256}, {0.284736,0.076029}, {1.316231,-1.073572}, {-0.783294,0.805530}, {0.389834,-0.129104}, {1.095639,-0.075839}, {0.935852,-0.373630}, {-0.885108,-0.020762}, {0.158064,0.217629}, {-0.640319,-0.386929}, {-0.909168,-0.373835}, {0.010911,-0.101003}, {-0.277750,-0.148550}, {0.521820,1.009048}, {-0.512451,-0.513281}, {-0.008047,0.202402}, {0.741191,-0.666179}, {0.763195,0.771867}, {0.390221,0.297205}, {0.625399,0.489404}, {1.023425,0.108867}, {-0.703103,0.629155}, {-0.103211,-0.285761}, {-0.390588,1.375767}, {0.454617,-0.110921}, {0.317920,-0.896351}, {0.649451,-0.067138}, {-0.121899,-0.655986}, {0.358821,-1.041252}, {-0.222857,-0.303574}, {-0.568716,-0.089093}, {-0.192284,-0.838715}, {1.222415,-0.016245}, {0.526310,-0.627056}, {-0.068488,-1.753668}, {-1.039387,-0.320863}, {0.020520,0.318572}, {0.496641,-0.577605}, {-0.968605,-0.480527}, {0.285637,1.389404}, {0.944869,0.885298}, {0.638385,-0.710974}, {-0.279932,0.152341}, {-0.743228,-1.024093}, {-0.486215,-0.168400}, {-0.114585,1.020039}, {0.056702,-0.528896}, {-0.949243,-0.844536}, {1.129499,0.153529}, {-1.146171,-0.448270}, {-0.600020,-0.088151}, {1.026368,-0.907166}, {1.049642,1.198028}, {-0.732045,-0.405919}, {0.210230,-0.786201}, {0.310585,0.342437}, {0.067431,0.566931}, {-0.587248,0.255356}, {-0.170138,1.277977}, {-0.258523,-1.186042}, {-0.773006,-1.019886}, {-0.448797,-0.188137}, {-0.091370,0.772927}, {0.244919,-0.106617}, {-0.774478,-0.520363}, {0.440259,0.217792}, {0.363108,0.753145}, {-0.266081,0.238928}, {-1.127392,0.360823}, {-0.261177,1.592192}, {0.699450,0.113524}, {-0.655141,0.291248}, {-0.436259,-0.058521}, {0.384314,0.487647}, {0.039816,-1.110978}, {0.404230,0.678814}, {-0.949673,-0.269000}, {-0.248331,-1.005033}, {-0.540079,0.606271}, {0.444702,0.146360}, {1.015384,-1.065484}, {-1.877784,-1.198948}, {0.489736,1.350612}, {-0.710135,-0.775063}, {0.593538,-0.900296}, {-0.098286,-1.049735}, {-0.108973,0.545483}, {0.062642,-0.684699}, {0.098171,0.140806}, {-0.959390,-0.170130}, {0.461162,1.804670}, {1.124557,0.055315}, {0.189370,-1.658841}, {0.186242,-0.841503}, {0.633026,-0.735853}, {0.857498,-0.201044}, {-0.218993,-0.016715}, {-0.765959,0.455723}, {0.217731,-0.073306}, {-0.436889,0.159793}, {-0.023781,-0.349387}, {-0.248361,0.055098}, {-0.771684,0.303200}, {-0.211929,1.024403}, {0.104045,-1.383657}, {-0.416710,0.061459}, {-0.436209,-0.471431}, {-1.510879,-0.277018}, {0.200120,1.225231}, {-0.328469,0.600453}, {0.127003,-0.602157}, {0.987188,0.212941}, {0.670236,0.123304}, {0.422322,0.157453}, {0.152338,-0.945760}, {-0.025870,-0.413677}, {-0.268227,-0.778529}, {0.480173,0.907527}, {-0.888884,-1.439385}, {-1.351376,-1.091003}, {0.222836,-0.086297}, {0.573336,-1.360066}, {-0.806399,-0.498281}, {-0.595494,0.831074}, {0.908191,0.307062}, {-0.459795,-0.710666}, {-0.094751,-0.206448}, {-0.024242,-0.951987}, {-0.318051,0.362327}, {-0.063917,-0.408062}, {-0.003055,1.006656}, {1.000114,-0.003844}, {0.433414,0.153418}, {-0.146174,-0.778023}, {-0.002596,-0.081254}, {-0.372852,-0.562314}, {0.813749,-0.171006}, {0.516876,-0.334962}, {0.130150,-0.220825}, {-0.399139,-0.678091}, {-0.184451,-0.949755}, {-0.188671,0.303505}, {0.037500,-0.099776}, {0.773437,0.244504}, {0.445884,-0.043319}, {0.316367,-0.273157}, {-0.746967,0.698428}, {-0.191399,0.086704}, {1.316252,1.332223}, {0.445639,0.004308}, {-0.087606,0.111263}, {-0.891735,0.020169}, {0.193313,-0.606729}, {0.731145,-0.605570}, {-0.692633,0.021142}, {-0.444493,0.208281}, {-0.466215,-0.817877}, {-0.624077,-0.305184}, {0.280254,1.208432}, {0.014983,0.902646}, {0.006548,0.008337}, {0.044097,0.697776}, {-0.171889,-0.146767}, {0.265368,0.009346}, {1.059121,0.446341}, {1.888582,-0.599794}, {-0.562391,0.519765}, {-1.251330,-0.838557}, {-2.137730,-0.631450}, {0.182187,0.499127}, {0.764443,0.756613}, {0.631286,0.584558}, {1.111431,-0.772644}, {0.076405,0.183672}, {-0.058883,-0.335039}, {-0.703857,0.073318}, {0.757167,0.909054}, {-0.611251,-0.894211}, {-0.330231,0.304851}, {-0.364020,-0.938645}, {-0.104970,0.914045}, {0.093519,1.357853}, {-0.770065,-0.085731}, {1.319136,0.816044}, {0.058947,-0.406575}, {-0.396587,-0.503710}, {0.220349,-0.336425}, {-0.501066,0.255245}, {1.323531,-1.916640}, {-0.596563,0.742761}, {0.713492,-0.603602}, {0.051641,-0.788488}, {-0.027644,-0.011744}, {0.313449,0.369693}, {-0.874394,-0.458299}, {0.156414,-0.301505}, {-0.817243,-0.129309}, {0.387262,1.050022}, {-0.730068,0.280044}, {0.562581,0.907164}, {0.467513,0.105385}, {0.244667,0.168116}, {0.639852,0.033501}, {0.208643,0.034229}, {0.947509,-1.095182}, {0.730262,1.390582}, {-0.409880,-1.003160}, {0.401874,1.156874}, {-0.714656,-1.740182}, {-0.430680,-0.361054}, {-0.188850,0.396311}, {0.796301,-0.592325}, {-1.140359,-0.833160}, {-0.015264,-0.656368}, {1.098273,-0.926714}, {0.514728,-0.216690}, {0.098571,-0.636577}, {-0.910064,0.415927}, {-0.440682,0.758024}, {0.127293,0.104132}, {-0.981800,-0.277406}, {0.899617,-0.979514}, {0.602636,0.426296}, {0.150065,0.494543}, {0.232962,0.763611}, {0.467684,0.140699}, {-1.574619,0.669059}, {0.882179,-0.011036}, {0.097422,0.257114}, {-0.102244,-0.259914}, {0.490538,0.105090}, {-0.996295,0.948638}, {0.083436,0.900836}, {0.438195,0.350201}, {-0.679329,-0.713746}, {0.529187,1.286256}, {-0.954747,-0.283946}, {-0.130941,-0.382040}, {-0.158855,-1.450548}, {-0.250052,-0.982319}, {-0.268123,-0.627128}, {0.444598,1.229273}, {1.187865,0.972354}, {1.162571,0.615927}, {-0.053069,-0.762640}, {0.568529,0.950631}, {0.704832,-0.363101}, {-0.821986,-0.831900}, {0.321775,-0.386797}, {0.318484,-0.462144}, {-0.981095,-0.085616}, {-0.827586,-0.611532}, {-0.767987,0.213131}, {1.465830,0.359996}, {0.063406,-0.101972}, {0.103066,-0.104108}, {-0.332640,-0.565526}, {0.153801,0.192602}, {-0.180607,-0.683069}, {-1.020433,-0.029838}, {-1.056090,-0.281924}, {0.711217,1.040632}, {-0.779687,-0.286412}, {-1.227989,0.344829}, {-0.325886,-0.117333}, {0.010627,0.905134}, {-0.179905,-0.040737}, {-0.034126,0.635378}, {-0.551102,-0.611186}, {1.349050,0.713766}, {-1.950842,0.993737}, {-0.285493,0.919628}, {-0.839695,-1.284912}, {0.867960,0.118154}, {-0.524136,-0.534178}, {-0.606047,-0.077576}, {0.997701,-0.360559}, {-0.143819,-0.521362}, {0.277948,0.011120}, {0.781126,-0.650844}, {0.514107,-0.291052}, {-0.605037,0.018662}, {0.595003,-0.358330}, {-0.892601,-0.794597}, {-1.068990,-1.057503}, {-0.833229,1.270529}, {-0.334875,0.977099}, {-0.663629,0.338105}, {0.554117,-0.088210}, {-0.667932,1.031071}, {-0.082927,-0.130890}, {-0.543973,-0.272414}, {1.397328,0.081006}, {0.369186,0.137642}, {-1.393635,0.792070}, {-0.582444,-0.031794}, {-0.053332,-0.043677}, {-0.372722,-0.230031}, {1.135177,0.092456}, {0.280377,-0.188462}, {-0.486260,-0.151009}, {1.265662,0.491554}, {-0.473461,0.147609}, {-0.239905,-0.801906}, {-0.220706,0.501078}, {0.640279,-0.721218}, {-0.349523,-0.466126}, {0.322248,0.690068}, {0.360951,0.602485}, {0.312384,-0.548838}, {-1.562549,0.675293}, {0.282446,0.191236}, {-0.251916,0.509349}, {-1.270286,-1.114868}, {-0.429550,-0.631172}, {0.636991,1.337931}, {-0.239257,-0.528962}, {0.203516,0.107619}, {-0.158954,0.175905}, {0.017560,-0.973022}, {1.063318,-0.351026}, {-0.500848,0.195306}, {-0.407674,-0.547799}, {0.311455,-0.233779}, {0.950908,0.750602}, {0.087365,-0.326519}, {-0.921551,-0.059790}, {-0.237386,0.904391}, {0.579191,-1.093121}, {1.114219,0.472145}, {1.464486,-0.047726}, {0.230240,-0.507439}, {0.214072,0.384204}, {0.227012,1.628634}, {0.862830,-0.777709}, {0.499309,0.503287}, {0.194024,-0.094408}, {-0.333249,-1.050169}, {-0.510589,-1.637118}, {-0.885624,-0.982164}, {1.742562,-1.274337}, {0.089119,-1.079374}, {-0.446537,-0.098650}, {0.360210,-0.124113}, {-0.658511,0.326397}, {-0.544164,0.579137}, {-0.251213,0.155793}, {0.335646,0.461865}, {0.443714,-0.380484}, {-0.217890,0.767709}, {-1.477727,-0.131848}, {-0.670288,-0.482916}, {1.276010,-0.242181}, {-0.569009,-0.344377}, {0.258112,0.099654}, {-0.470833,-0.107608}, {0.077847,-1.011430}, {-0.095550,-1.610504}, {-0.245212,-0.779197}, {0.507037,0.270557}, {-0.210576,-0.406151}, {0.334297,0.471540}, {0.940615,-0.817298}, {0.807612,-0.335314}, {-0.967504,1.005527}, {-0.419911,-0.427284}, {1.058308,0.377315}, {-0.640751,-0.100329}, {-0.206736,-1.490178}, {-0.908508,0.534514}, {0.236230,-0.674558}, {0.040694,0.194800}, {0.926613,-0.976837}, {-0.400272,0.398158}, {1.213940,-0.431001}, {-0.154429,-0.506394}, {0.263405,-0.666924}, {-0.587860,-1.305488}, {-0.626593,0.117810}, {0.343828,1.396967}, {0.083446,-0.263320}, {-0.486981,-0.263767}, {-0.353650,0.590502}, {0.546912,0.129352}, {-0.148903,-0.442021}, {0.148692,0.307489}, {0.456169,0.695536}, {-0.306257,0.742800}, {0.843344,-0.137786}, {-0.403558,-0.081928}, {0.004422,0.767584}, {0.602551,-0.925966}, {0.808077,0.677800}, {-0.920983,0.444859}, {0.709114,-0.150759}, {0.774244,0.583938}, {-0.007792,-0.664973}, {0.811944,-0.309259}, {0.744698,-0.075886}, {-0.510442,-0.065905}, {-0.015831,-0.190166}, {0.713298,-0.160445}, {-0.693444,0.164467}, {0.504515,0.718341}, {-0.357876,0.683165}, {-0.509067,0.349283}, {0.027786,0.967045}, {0.001332,-0.162389}, {-0.917110,0.767740}, {0.095917,-0.158809}, {-0.542706,0.715325}, {0.730792,0.659037}, {-0.010585,-0.228058}, {0.500959,-0.152128}, {0.079144,0.005812}, {-1.190054,-0.493119}, {0.184814,1.759480}, {0.491137,-0.172917}, {-1.489489,-0.538351}, {0.038032,0.828474}, {-0.790134,0.518021}, {1.008854,0.645478}, {0.307948,0.009483}, {-0.329913,0.936288}, {0.018155,-0.235603}, {-0.321219,-1.203784}, {0.428175,-0.218314}, {-0.362877,-0.370190}, {0.444549,-0.342885}, {-0.049808,0.501963}, {0.674179,-0.185107}, {0.599912,-1.732999}, {0.088862,0.782982}, {-0.107951,0.180743}, {-0.122355,1.267863}, {0.550598,-0.112575}, {-0.000421,0.525225}, {1.443725,0.501908}, {-0.409289,0.574812}, {-0.039830,0.421113}, {0.508459,-1.005977}, {-1.445393,-1.149261}, {-0.631553,-0.319625}, {-0.909902,0.054411}, {0.339123,2.211716}, {-1.144259,0.907937}, {0.767662,0.182702}, {-0.001103,-0.936672}, {0.724690,-0.821044}, {-0.127908,0.396448}, {-1.259213,-0.942427}, {0.270614,0.534192}, {0.302353,-0.606736}, {0.368202,0.117501}, {-0.621508,-0.599182}, {-0.389050,0.382474}, {0.276748,-0.206800}, {0.692974,-2.222835}, {0.281160,0.177410}, {0.692791,0.111511}, {0.641347,0.456632}, {-0.024490,0.649549}, {-0.110421,-1.172916}, {-1.093464,-0.732331}, {-0.355374,-0.282145}, {0.758283,-0.156623}, {-1.392806,-0.020595}, {0.062043,-0.332704}, {0.072246,-0.407848}, {0.764714,-0.922699}, {0.324736,0.223764}, {0.322471,-0.791710}, {-0.310998,0.871270}, {0.409121,0.452691}, {-0.507904,0.540686}, {0.247319,0.370197}, {0.289584,0.022769}, {0.918507,-0.797867}, {-0.002342,-0.653221}, {0.665966,0.086050}, {-0.105914,0.520572}, {0.661266,-0.788971}, {-0.016104,1.032441}, {-1.079144,0.763598}, {0.286110,-0.408518}, {-0.702570,-0.278708}, {0.418026,-1.825956}, {-0.699938,0.339054}, {-0.549577,-0.472606}, {-0.958419,-0.399456}, {0.931910,0.405273}, {-0.061580,-0.001784}, {-0.235095,-0.195635}, {0.396945,-0.793988}, {-0.120105,0.741895}, {0.967101,-1.193312}, {0.408000,0.328582}, {0.121563,0.074206}, {0.794018,0.365534}, {1.427377,-0.303106}, {-1.185743,-0.469011}, {-1.014410,-0.160477}, {0.891003,-0.675965}, {-0.449822,0.835702}, {0.168080,-0.372203}, {0.231932,-0.813300}, {0.695524,0.543724}, {-1.150522,-0.300759}, {-1.130058,-0.194783}, {-0.158590,0.163209}, {0.318411,-1.215333}, {-0.130949,1.027326}, {-0.022279,-0.079554}, {-0.819798,-1.296138}, {0.045197,0.904739}, {2.069130,-0.927992}, {-0.409507,0.500071}, {-0.320066,-1.146465}, {0.541117,0.115373}, {-0.789460,-0.165824}, {0.540866,-0.330202}, {-0.794487,-0.094771}, {-0.857677,0.866646}, {-1.027897,-0.906066}, {-0.990814,-0.484744}, {-1.118999,1.518096}, {0.368560,0.062309}, {-0.472288,-0.358193}, {0.818078,0.355593}, {0.432227,0.535003}, {0.881773,-0.248469}, {0.386008,-0.326813}, {0.729605,-0.034809}, {-1.973023,-0.054177}, {-0.155383,0.156626}, {-0.654563,0.363333}, {-0.629236,0.253927}, {0.047558,-0.270537}, {0.876852,1.219813}, {0.676330,0.747201}, {1.527175,-0.031846}, {0.058820,0.330611}, {-1.429720,-0.026237}, {0.145607,-0.314241}, {-1.057689,-0.330500}, {0.140384,-0.134579}, {-0.954319,0.012254}, {0.454891,-1.125468}, {2.357209,-0.042871}, {-1.230701,0.477340}, {-0.320824,-0.139064}, {-0.761107,0.100853}, {-0.288901,-0.086378}, {-0.428826,1.158555}, {0.547848,-1.217274}, {-0.445240,-0.070165}, {-1.133672,0.465347}, {0.623461,0.635773}, {1.003495,-0.575461}, {-0.028313,-1.236159}, {-0.362889,0.221756}, {-0.439814,-0.193680}, {0.519280,1.102878}, {0.752761,0.423081}, {0.166261,-0.338834}, {-0.310806,-0.151127}, {-0.160761,0.442555}, {0.654292,-0.498436}, {0.080171,-0.983075}, {0.630524,0.050145}, {-1.094236,0.845830}, {-0.395812,-1.350396}, {0.362922,-1.130889}, {0.657214,0.160993}, {-1.055868,0.691473}, {-0.077860,-0.396539}, {0.272831,0.186593}, {-0.963077,1.436838}, {-1.491045,0.983782}, {-0.445406,-1.055664}, {-0.560002,0.315656}, {-1.094953,0.428742}, {1.355583,-0.101228}, {-0.610726,-0.903339}, {0.220781,0.133283}, {-0.385599,-0.105530}, {1.569466,0.694499}, {-0.949049,0.657375}, {0.293380,-0.197649}, {-0.121347,-1.023660}, {0.142107,1.869948}, {0.240700,1.753354}, {0.155119,-0.787710}, {0.072108,0.802771}, {-0.518774,-0.835932}, {0.686448,0.413265}, {-0.075227,0.357503}, {-0.367060,-0.293209}, {1.198188,0.228709}, {0.086829,0.401398}, {0.402488,-0.001439}, {1.875893,1.073098}, {-0.997759,-1.144125}, {-0.046681,0.959887}, {-0.059867,0.850184}, {-0.456443,-0.686195}, {-0.245116,-0.874781}, {-0.652563,-1.042379}, {-0.538923,0.202282}, {-0.076387,-0.432216}, {0.434154,-0.289432}, {0.791833,1.524970}, {-1.011962,0.122749}, {0.443728,0.583743}, {-0.476166,-0.164564}, {0.865760,1.395544}, {0.458453,0.486414}, {-1.083056,-0.554460}, {-0.320430,1.151998}, {-0.522975,0.380352}, {-0.800879,-0.410712}, {-1.160173,-0.225969}, {-0.727965,-0.082624}, {-0.078411,0.553021}, {0.825728,-0.312162}, {-1.384057,0.781615}, {-0.368922,0.233514}, {0.279253,-0.378687}, {0.403824,0.290804}, {-0.229572,-0.601070}, {-0.626745,-0.384230}, {-1.287989,-0.222999}, {0.484008,-0.010462}, {0.301750,-0.985000}, {-0.633804,0.825349}, {0.394338,-0.576349}, {0.468509,0.024264}, {0.255173,-0.901778}, {0.346377,-0.280184}, {0.110180,0.975376}, {-0.753469,-0.647554}, {0.651564,-0.547723}, {-0.144017,0.548258}, {-0.046057,-0.679254}, {-0.688028,0.887658}, {-0.445831,-0.479626}, {-0.456182,0.267624}, {-0.799260,0.204550}, {0.563612,-0.771680}, {0.352540,0.832719}, {-0.186709,-0.571833}, {-0.293953,-0.033501}, {-0.817521,0.420114}, {-1.095604,-0.434751}, {1.279435,-0.039357}, {-0.247834,0.165422}, {0.921388,0.559970}, {-0.060142,0.715675}, {0.740212,1.014127}, {-0.452908,0.311206}, {-0.067195,-0.201576}, {-1.385389,-0.762611}, {-1.021316,-1.118405}, {1.760285,0.265590}, {-0.914306,0.241406}, {-1.244930,-0.148217}, {-0.866724,0.107860}, {0.289939,-1.543434}, {0.245372,0.941026}, {0.353275,-0.177928}, {-0.031020,1.110706}, {0.377406,-0.075570}, {-0.164487,1.047496}, {-0.499391,-0.473578}, {0.300038,-0.640920}, {-0.628968,0.062134}, {0.489684,-0.638970}, {-0.015019,0.460942}, {-0.638345,-1.058916}, {-0.916723,0.886223}, {-0.333517,0.053708}, {0.736499,-0.159192}, {-0.594457,0.367349}, {-1.222093,-0.085438}, {0.251137,-0.073996}, {0.161582,0.194835}, {-0.380923,0.667572}, {-0.679757,-0.361005}, {-0.028839,0.205199}, {1.091436,-1.342332}, {-0.221619,-0.241515}, {-1.053060,0.026055}, {0.644250,-1.217245}, {-1.450051,0.901819}, {-0.920654,-0.715461}, {-0.130068,1.003309}, {1.031255,0.523672}, {-0.136103,-1.381621}, {-0.011925,-0.254506}, {-0.960022,1.478489}, {0.103113,-1.121767}, {-0.272495,0.511347}, {0.286424,0.059268}, {1.022935,0.594292}, {0.591589,0.954365}, {0.350593,-0.458349}, {-0.050092,0.359806}, {-1.176490,0.825566}, {-0.680308,-1.571630}, {0.664836,-1.675775}, {0.341383,-0.000495}, {-0.036233,0.927286}, {-1.339825,-0.242439}, {-0.295042,-1.175472}, {0.327445,-0.305612}, {-1.334769,0.363978}, {-0.428302,-1.062567}, {0.329631,0.597784}, {0.869728,-1.290804}, {0.836562,0.583755}, {-0.647207,-0.128658}, {-0.438580,-0.636896}, {-0.104333,1.364442}, {0.134730,-0.418112}, {-0.297180,-0.005213}, {-0.277926,-0.075135}, {-0.356162,-1.540321}, {-0.315842,-0.300644}, {-1.054645,0.153170}, {-0.247471,0.149554}, {1.167076,-0.050294}, {-1.150539,-0.133037}, {1.375072,-0.851715}, {0.074937,-0.949878}, {-0.757522,-0.348698}, {-0.904564,0.281156}, {-0.601026,-0.749410}, {-0.559856,0.573678}, {-1.146828,0.569818}, {0.867965,0.745430}, {-1.303702,-0.904121}, {0.878923,-0.963699}, {-0.201701,-0.181087}, {0.623439,-1.377927}, {-0.196558,-0.155427}, {0.545429,0.059872}, {-0.546805,-0.394397}, {-0.673582,0.666513}, {-0.904560,0.345434}, {-0.404512,0.602264}, {0.037119,0.766632}, {0.114462,0.094188}, {0.152701,0.227803}, {0.192302,0.350055}, {-0.806506,0.365440}, {1.434434,0.090690}, {-0.927956,0.028970}, {-0.935372,-0.873602}, {-0.008948,-0.719395}, {0.984091,-0.139250}, {-0.659274,0.742974}, {-0.389700,0.424576}, {-0.417964,-0.791927}, {-0.496517,-0.670771}, {-0.839619,-0.452674}, {0.353229,-0.699395}, {0.160866,0.370645}, {-1.017395,1.246349}, {-0.215995,-0.034148}, {-0.917350,0.216393}, {0.676833,-1.047976}, {0.260097,0.124759}, {0.217774,-0.111813}, {0.676580,-0.052744}, {0.283784,0.299891}, {-0.063002,-0.428329}, {0.105711,-0.622631}, {-0.355259,-0.471869}, {0.266862,0.081740}, {-1.059721,0.037092}, {-0.335785,-0.856030}, {0.165769,0.484277}, {-0.709411,-0.235252}, {0.027820,0.592038}, {0.069184,0.501440}, {1.395272,2.336471}, {0.930130,0.779630}, {0.985494,0.017321}, {0.462865,-0.679985}, {-0.562682,-0.638530}, {-0.220520,-1.015673}, {0.447075,0.614206}, {-0.113999,0.348454}, {-0.330527,-1.009147}, {0.389321,-0.059019}, {0.160636,1.179804}, {0.951858,0.075998}, {0.220489,0.169580}, {1.011409,-1.264994}, {0.431117,-0.022166}, {1.354951,0.693625}, {0.365787,0.922387}, {-0.335963,0.354223}, {-0.231851,1.246409}, {0.039846,-0.434578}, {-0.640260,-0.246655}, {1.010049,-0.948681}, {0.420819,0.066446}, {-0.792475,-0.850887}, {-0.136391,-0.217795}, {-0.306861,-1.044193}, {0.599871,0.242422}, {0.837296,-0.704235}, {-1.036397,0.218225}, {-0.362114,-0.270397}, {-0.815529,-0.643457}, {-0.346423,0.137188}, {-0.533657,0.614111}, {0.894783,0.792716}, {0.996665,0.135734}, {-1.810934,-0.175269}, {0.231803,0.610888}, {-0.033074,-0.878133}, {1.029652,-0.537181}, {0.969218,-0.136601}, {0.637612,0.569671}, {-0.856078,0.008827}, {-0.884361,0.905464}, {0.266886,0.602131}, {0.724282,0.927329}, {0.656946,1.176936}, {0.385285,0.453920}, {0.428491,1.218457}, {-0.534283,-0.476385}, {1.265943,-0.071326}, {1.205410,0.119519}, {0.729693,0.805513}, {0.792140,0.259950}, {0.032696,0.915109}, {0.577120,-0.330747}, {0.393790,-0.488283}, {-0.285168,-0.266736}, {-1.092401,0.351137}, {-0.410238,-0.455906}, {-0.112126,-1.848342}, {-0.694043,0.586241}, {-0.282187,-0.084074}, {0.208143,-0.690431}, {-0.294220,-0.077478}, {0.114810,-0.640660}, {0.317942,0.617271}, {-1.111586,0.978228}, {0.522150,1.274807}, {-0.714204,0.099528}, {-0.270756,-0.875450}, {0.562005,-0.039459}, {0.705905,0.860567}, {0.762285,1.074943}, {-0.776165,-0.025768}, {-0.459283,-0.636944}, {0.185427,-0.185363}, {0.204738,0.186381}, {0.973185,0.077738}, {-0.292046,-0.508409}, {0.513353,-0.271946}, {0.003043,0.871596}, {0.688854,0.660598}, {0.210751,0.387266}, {-0.279586,-1.103817}, {-0.688930,0.757404}, {0.565899,-0.300622}, {0.174615,0.399735}, {0.138945,0.695770}, {0.223658,0.384469}, {-1.073520,-0.360915}, {-0.489023,-0.405400}, {-0.605479,-1.167890}, {-0.411600,0.781236}, {-1.073459,1.248510}, {0.810854,-0.254195}, {1.234502,-0.806495}, {0.260701,1.174122}, {-0.372537,1.946493}, {0.314475,0.895673}, {-1.009274,0.473788}, {-0.182152,-0.423023}, {0.252709,2.433176}, {0.355098,0.295953}, {-0.547349,0.145758}, {-0.602792,0.126766}, {-0.736203,-0.064009}, {0.927410,-0.913014}, {0.685445,0.595637}, {-1.650825,-0.447151}, {0.274037,0.349263}, {0.465722,0.789074}, {-0.162240,-0.368575}, {-0.699205,-0.695247}, {-1.299655,-0.834587}, {-0.112135,0.439572}, {-0.554151,0.008035}, {0.843647,-0.401783}, {-0.043751,-0.334123}, {1.091176,0.919460}, {-0.122626,-0.120011}, {0.282004,0.565924}, {1.054618,0.582818}, {-0.770044,0.182383}, {-0.377127,-0.662357}, {0.699934,-0.416461}, {0.725721,-2.274378}, {-0.285218,-0.376295}, {-0.046947,0.662061}, {-0.150529,-0.552474}, {0.366969,-0.279145}, {-0.522761,0.138649}, {0.359948,-1.543065}, {-1.101930,-0.354878}, {0.338112,-0.700804}, {-0.408526,0.129634}, {0.649985,-0.651205}, {0.418800,-0.999764}, {0.357306,-1.544311}, {-0.381705,-0.067610}, {-0.161721,0.259118}, {-0.606741,0.789184}, {0.281002,0.526998}, {0.011339,-0.794455}, {-1.830912,-0.398614}, {-0.550333,0.484507}, {0.380872,0.240877}, {-0.333808,0.561707}, {-0.306073,-0.400679}, {0.455130,0.236129}, {-1.028073,-0.645612}, {-0.594235,-0.259487}, {-0.990751,0.305760}, {0.006477,-1.019058}, {0.269924,-0.321009}, {-0.232176,-0.961120}, {-0.595080,-0.028841}, {1.278412,0.318883}, {0.447321,1.388019}, {0.532051,0.673116}, {-1.563452,-0.046970}, {-0.449587,0.019068}, {0.606453,-0.602681}, {1.166692,-0.056815}, {-0.500489,0.600240}, {-0.500505,-0.287763}, {0.713353,-0.974392}, {0.627625,-0.903950}, {0.360888,0.126583}, {-0.455974,-0.380084}, {-0.104278,-0.465263}, {0.651519,0.420961}, {0.788706,0.245607}, {0.070684,-0.600027}, {0.647984,-0.619099}, {0.649698,-1.690212}, {0.318449,0.028318}, {-1.471110,1.370645}, {1.207134,-0.322368}, {-0.685125,0.769329}, {1.287764,0.797221}, {-0.996293,1.087134}, {0.442161,-0.195315}, {0.121135,0.058126}, {1.045922,0.679832}, {0.873562,0.306245}, {-0.946556,-1.014899}, {-1.098702,-0.429317}, {-0.259191,0.604008}, {-0.446836,-0.599038}, {0.079361,-0.237178}, {-0.530503,0.677970}, {-0.601736,0.605187}, {-0.160833,0.081568}, {-0.692943,-1.922262}, {-1.351586,-0.764923}, {-0.910394,1.516147}, {-0.447204,0.696053}, {-1.603351,0.949397}, {0.853493,-0.313292}, {-0.782020,0.417463}, {-0.229522,0.508701}, {0.760533,-0.023716}, {0.227146,0.243735}, {-0.842789,0.148573}, {0.517921,-0.314691}, {0.692720,0.314784}, {0.280511,0.102037}, {0.665274,-0.165350}, {0.082569,0.733769}, {0.296156,1.171633}, {1.047696,0.574972}, {1.019455,0.327643}, {0.590864,-0.069291}, {0.058153,-0.552653}, {0.532137,-0.655718}, {0.030514,0.631288}, {0.014617,0.384621}, {1.061152,0.155026}, {-1.531251,0.473269}, {0.989563,0.018146}, {-0.456740,0.513566}, {0.652150,0.217298}, {0.305406,-0.295892}, {-2.437038,-0.899029}, {0.129350,0.230154}, {-0.072882,-0.255708}, {1.735334,-0.122027}, {0.357863,-0.822077}, {-0.260330,-1.094809}, {-0.618916,0.441565}, {-0.692015,0.582413}, {-0.962700,-0.265797}, {-0.354149,0.603085}, {-0.086914,-0.518697}, {-0.573745,-0.565417}, {0.606341,0.808186}, {-0.799331,0.580242}, {-0.096986,0.161126}, {0.633315,0.549819}, {-0.144446,0.177149}, {0.781768,0.531140}, {0.338951,-0.899343}, {0.498622,-0.161978}, {-1.030481,0.406074}, {-0.853416,0.247330}, {-0.021314,0.430044}, {-0.792349,-0.084728}, {0.661328,1.015329}, {-0.127205,0.562281}, {0.597676,0.621570}, {0.134817,0.231554}, {-0.159303,-0.083000}, {1.241670,-0.215870}, {0.511646,-0.487637}, {0.396153,0.003545}, {-0.879940,-0.429533}, {-0.720669,0.339226}, {-0.316744,0.113981}, {-0.177206,1.125024}, {-1.768052,-1.277820}, {0.241700,-0.037855}, {-0.839180,0.779339}, {-0.368304,-0.224287}, {-0.788630,0.576087}, {0.842764,-0.512279}, {-0.162576,0.392872}, {-0.704226,0.243854}, {0.131859,-0.414154}, {-0.819482,-1.100527}, {-0.470748,0.467712}, {-0.316207,0.030052}, {-0.235583,-0.156785}, {-0.557592,-0.375994}, {-0.784024,0.716792}, {-0.032535,0.712314}, {-0.122718,0.060842}, {0.256587,-0.063350}, {1.593900,-0.262349}, {-0.241222,1.230849}, {0.595739,0.423673}, {0.891444,0.670761}, {0.005808,0.459865}, {0.340771,-0.696366}, {-0.238902,0.415223}, {-0.572688,-0.354505}, {-0.059561,0.494342}, {0.693758,-0.277854}, {-0.037608,-0.300489}, {0.644744,1.106841}, {0.232660,0.485564}, {2.011315,0.810211}, {1.047770,-0.099242}, {1.206122,0.597776}, {-1.206184,0.417061}, {-0.522987,0.244164}, {-0.036536,0.528486}, {-0.624421,-0.312582}, {0.898749,0.177874}, {1.192713,-0.990058}, {0.498853,-0.556840}, {0.589997,-1.001501}, {0.623528,-0.219887}, {0.082308,0.170954}, {-0.289952,0.937628}, {-0.907912,-0.664638}, {0.010034,-0.573764}, {0.911873,0.898607}, {0.204328,0.208605}, {0.886008,0.671941}, {-0.238965,-0.470697}, {-0.047580,-1.367534}, {0.445139,0.183575}, {-0.257686,1.029901}, {0.650779,0.298196}, {-1.048885,0.864492}, {0.018705,1.086719}, {0.353729,-0.758869}, {0.135370,-0.483281}, {-1.076019,0.680627}, {1.100044,0.598223}, {-1.294965,1.147402}, {-0.106790,0.436389}, {-0.743914,1.121257}, {-0.871260,1.178553}, {0.204845,-0.486308}, {0.361820,-0.974340}, {-0.206131,0.818694}, {0.788987,0.506632}, {0.344848,-1.206124}, {1.204349,-0.052713}, {0.485916,-0.425330}, {-0.356002,1.018318}, {-0.627702,0.255646}, {-1.301431,0.413334}, {0.247930,-0.302713}, {-1.193767,0.508636}, {0.802304,-0.014054}, {0.225364,0.597259}, {1.130788,0.014869}, {-0.375125,-0.713056}, {-0.887297,-1.193802}, {0.911819,0.357139}, {0.102299,1.114198}, {0.346137,0.583719}, {-0.295741,-0.163232}, {0.306565,0.062372}, {-0.387799,0.117200}, {-0.078818,0.039897}, {-0.951657,-0.147061}, {0.531560,-0.532658}, {-0.922460,0.370301}, {-0.800399,0.384196}, {0.207158,1.049643}, {-0.855953,0.709615}, {0.833019,0.272167}, {0.272961,0.796026}, {0.862792,0.320292}, {-2.027771,-0.518041}, {0.382846,-0.137945}, {-0.116166,-0.315429}, {-0.168185,-0.144519}, {0.531779,0.133622}, {-0.516350,-0.152330}, {-0.127356,-1.375547}, {-0.105342,0.100885}, {0.525022,-0.939381}, {-0.066998,0.440557}, {-0.397364,0.443860}, {0.503200,0.746156}, {-0.431620,0.075595}, {-0.841891,0.743002}, {1.371081,-0.365098}, {-0.010784,-0.465652}, {0.020112,-0.041097}, {0.826739,0.182882}, {-0.613873,0.704830}, {-0.568370,0.143343}, {0.387460,-0.545298}, {0.021157,-0.747607}, {1.302628,0.905500}, {0.261942,-0.033071}, {0.376649,0.470807}, {-0.612337,-0.531302}, {0.841322,0.076988}, {-0.153153,0.320945}, {-0.874257,-0.702040}, {0.165278,-1.657980}, {-0.147901,-1.012033}, {-1.277508,0.406026}, {0.962158,-0.812888}, {0.570132,-0.249752}, {0.178017,0.240519}, {0.221700,-1.244702}, {-1.203450,0.112039}, {0.203837,-0.704907}, {0.134167,-0.222161}, {-0.462939,-1.592425}, {-0.032346,0.235999}, {0.386704,-0.786325}, {-0.693315,0.928200}, {-2.135864,0.434740}, {1.006662,1.715587}, {-0.142810,-0.802204}, {0.458850,0.565148}, {-0.338997,1.517529}, {-0.803918,0.696678}, {-0.048029,0.081896}, {0.172872,-1.381249}, {-0.463157,0.151494}, {0.014982,-0.330029}, {0.131682,0.900381}, {1.245995,-0.694195}, {0.723281,0.823227}, {-1.268782,0.935669}, {-0.323588,0.329887}, {-0.826465,0.789808}, {0.969452,0.147947}, {-0.086800,-0.739140}, {0.330504,-0.580053}, {0.613212,-0.291821}, {1.508769,0.762460}, {0.427432,-0.078387}, {0.241827,-0.720148}, {0.103200,0.692154}, {0.237121,-0.186097}, {0.383141,0.836269}, {-1.686991,-0.116805}, {0.357785,0.936704}, {0.009202,-0.259852}, {-0.364276,0.361380}, {-0.452860,1.136152}, {-0.503536,0.666926}, {1.115614,0.371158}, {-0.140742,0.824371}, {-0.082390,-0.656057}, {-1.230565,0.359913}, {0.005553,-0.198844}, {1.238036,-0.548324}, {-0.707677,-0.575827}, {0.561192,-0.372388}, {0.495972,1.965641}, {0.693577,-0.278012}, {-0.501385,0.209282}, {1.174469,-1.508376}, {0.645479,-1.112553}, {0.216551,1.222801}, {0.317056,-0.152965}, {0.192083,0.034963}, {-0.110488,-0.462419}, {-0.666300,-0.015961}, {-1.752495,0.399985}, {-0.469240,0.924181}, {-0.274931,0.641528}, {-0.312214,-0.016273}, {-0.517574,-0.530389}, {0.833532,0.046255}, {0.684154,-0.745428}, {-0.955607,0.071248}, {-0.251567,0.985285}, {-0.121152,-0.148834}, {-0.009011,0.787854}, {-0.649552,0.048180}, {-0.425329,0.878791}, {0.393766,0.793184}, {0.526353,-1.044814}, {-0.425715,0.097562}, {0.345638,-0.549481}, {0.697957,-0.674357}, {0.905744,0.301798}, {0.974970,0.602490}, {-0.901499,-0.882178}, {-0.019264,-0.630321}, {-0.421427,0.049030}, {-0.217801,-1.297212}, {0.182897,-0.126145}, {0.128832,-1.435972}, {-0.107732,-0.836753}, {-0.777310,0.461033}, {0.206962,-0.196436}, {1.346730,-0.307975}, {0.401943,0.332010}, {0.044175,0.580896}, {0.186951,0.580326}, {0.198179,0.439384}, {-0.265917,0.422116}, {0.364858,1.826492}, {0.891892,-0.698183}, {1.583665,-1.221355}, {-0.190341,0.962946}, {-0.174967,-0.009207}, {0.729038,-0.307764}, {0.043398,-1.428511}, {-0.680441,0.960596}, {0.250274,0.295808}, {0.032164,-0.418385}, {-0.197256,-0.704446}, {-1.712183,-1.163529}, {-0.268695,-0.200849}, {2.306987,2.318621}, {0.060264,0.224934}, {0.578235,0.321018}, {0.028329,-0.398577}, {-0.468995,0.372626}, {-0.486544,1.004021}, {-1.324421,-0.240098}, {-0.516670,0.486116}, {1.493896,-0.392662}, {0.129571,-0.570646}, {0.163091,-0.300952}, {-0.249986,0.337349}, {-0.795421,-0.775087}, {-1.050828,-0.478171}, {-0.687893,-1.095394}, {0.446193,-0.334549}, {0.207191,1.248893}, {1.304610,0.004308}, {-0.531389,-0.521206}, {0.856143,-0.371803}, {-0.436616,1.111738}, {-1.420017,-0.184266}, {1.140460,-1.630379}, {0.161864,0.404858}, {-0.253171,-0.606452}, {-1.208974,1.509948}, {-0.954164,-1.303938}, {-0.048128,0.715313}, {0.256096,-0.413618}, {0.282291,1.407356}, {0.056407,0.582285}, {0.394826,0.319440}, {-0.481465,-1.111214}, {0.591739,0.508274}, {0.032651,0.767816}, {-0.134227,0.328188}, {0.092560,-0.469654}, {0.797004,-0.160862}, {0.769209,1.001893}, {0.898712,0.476407}, {-0.606030,0.660273}, {0.035930,-0.406220}, {0.549958,0.477784}, {0.930700,0.739616}, {-0.352887,0.120378}, {1.456712,-0.987803}, {-2.326077,-0.576206}, {0.005039,-0.663576}, {0.271949,0.400765}, {1.016654,-0.532382}, {0.578166,0.345697}, {1.335427,-0.691842}, {0.346829,-1.486777}, {-1.153416,-1.026001}, {0.223860,0.210608}, {-0.190999,-0.519098}, {-0.198968,0.263295}, {0.651483,0.398883}, {-0.549925,-0.275894}, {-1.229674,-0.017529}, {-1.383489,0.757820}, {-0.253172,0.217579}, {-0.816223,-0.232510}, {0.104862,0.528907}, {0.079655,0.495187}, {-1.060489,0.302825}, {-0.137642,0.212762}, {0.674357,0.008222}, {-0.048395,0.926425}, {0.412030,-0.840911}, {0.237129,0.647045}, {0.339638,-0.335510}, {0.284322,1.034499}, {-1.397022,-0.292628}, {-0.146085,0.519480}, {-0.041487,-0.555443}, {0.577501,-0.304147}, {0.311928,-0.446547}, {0.635509,-0.519239}, {-1.033277,-1.288549}, {0.731980,0.033399}, {-1.854763,-0.310873}, {-0.244777,0.164482}, {0.177305,-1.028995}, {-0.848186,-1.102416}, {0.208618,0.238623}, {0.141655,-0.253353}, {0.171815,0.430131}, {-0.300252,0.385949}, {-0.002417,0.000851}, {0.140724,0.631155}, {-0.361690,-0.341663}, {0.452532,1.566797}, {-0.983234,-0.383707}, {-0.919083,-0.153251}, {-0.570362,-0.004002}, {0.012526,0.451240}, {1.078805,0.115248}, {-0.303834,-0.334887}, {0.111197,-0.445325}, {0.190372,0.714853}, {0.826630,-0.758796}, {-0.855694,-0.601218}, {-0.240251,0.838381}, {0.169116,0.269469}, {-0.758837,-0.535851}, {0.833886,0.712264}, {-1.228975,-1.041728}, {-0.454220,1.116119}, {1.266360,0.991548}, {0.399368,0.572129}, {0.284363,0.183403}, {0.852430,-0.069496}, {-0.634331,0.143028}, {0.704158,-0.787308}, {-0.348563,-0.322614}, {-0.926186,0.376325}, {0.743159,0.167845}, {2.017916,1.018183}, {0.808439,-0.898639}, {-0.362709,-0.359190}, {-0.263045,-1.681332}, {-0.155017,-0.596109}, {-0.058238,-0.339211}, {-1.052586,-0.827454}, {0.083530,-0.579545}, {0.798530,0.075240}, {-0.671206,-0.110130}, {-0.032062,-0.960990}, {0.473355,0.406486}, {0.724043,0.644396}, {-0.324565,0.679171}, {-0.260678,0.183511}, {-0.340520,-0.690654}, {-0.490994,-1.070487}, {-0.102180,-0.653080}, {1.588020,1.305983}, {-0.284747,0.210628}, {-0.084555,0.093298}, {-0.200014,0.790467}, {-0.717793,0.363149}, {0.131695,-0.446003}, {0.914407,0.814170}, {-0.202136,-0.003753}, {1.277709,0.898150}, {0.656615,-0.393242}, {-0.156783,0.685943}, {-0.206718,0.503998}, {0.201327,0.404118}, {0.042250,-0.107335}, {-0.870850,0.210164}, {0.381354,0.642557}, {-0.595277,0.854957}, {0.322635,0.139045}, {1.736598,0.188796}, {0.862338,-0.908735}, {0.952138,-1.054378}, {0.771591,0.755734}, {0.080442,-0.425273}, {0.711784,0.796568}, {0.221518,0.711452}, {-0.754410,0.214646}, {0.297972,-0.998691}, {-0.023798,-0.667344}, {-0.064961,-0.853014}, {0.082753,0.438751}, {-0.829817,-0.535958}, {0.179596,0.170377}, {-0.232841,0.874216}, {1.184970,0.506020}, {0.638693,-1.085547}, {0.618905,0.086848}, {0.091035,-1.093523}, {1.586531,-0.145763}, {0.781375,-0.734368}, {-0.439204,-0.368124}, {0.884153,-0.881938}, {0.443501,0.046392}, {-0.000463,-2.010197}, {-1.341146,0.413517}, {-0.115972,-0.617283}, {0.576521,-0.591029}, {0.262853,0.282668}, {0.454027,-0.299344}, {0.561599,-1.411193}, {0.847940,-0.386760}, {0.162330,-1.607905}, {0.019188,0.449590}, {0.667390,0.097850}, {1.070732,-0.511950}, {0.837035,0.531196}, {0.366102,-0.046720}, {-0.715692,0.543561}, {-0.021125,-0.195383}, {0.548797,-1.182353}, {1.307617,-0.209852}, {0.563610,0.627996}, {0.085233,0.093108}, {-0.445645,1.093604}, {-0.920394,1.114292}, {-0.394214,0.442132}, {-0.175037,0.756531}, {-1.486353,0.249107}, {0.036325,-1.007293}, {-0.348203,0.752406}, {-0.502838,0.733700}, {-0.386542,-0.143784}, {-0.289604,1.540041}, {-0.112224,0.139364}, {-0.060213,-0.734811}, {0.401407,1.469775}, {0.455272,0.162539}, {-0.151403,0.737257}, {0.767557,-0.397638}, {-0.392108,-0.373642}, {0.602157,-0.607477}, {-0.745662,-0.034958}, {-1.102743,0.087956}, {-1.559189,0.464934}, {-1.466796,0.183389}, {-1.075429,-0.243765}, {-0.902469,-0.918449}, {0.135849,0.153793}, {-0.867781,-0.363082}, {1.109122,0.450055}, {-0.862578,0.592056}, {-0.417136,0.030326}, {1.119029,0.172928}, {-0.460388,1.450624}, {-0.383553,-0.286544}, {0.769042,0.259261}, {-0.624490,1.200131}, {-1.122671,-0.736922}, {-1.806449,0.235413}, {-0.034734,-1.440604}, {0.183904,-0.178401}, {0.345460,-0.134209}, {-0.048553,-0.107624}, {-1.055511,-0.230159}, {-0.770478,1.603207}, {0.225398,1.413173}, {-0.771651,-0.881477}, {0.297900,-0.163596}, {-0.747235,0.837724}, {1.266946,-0.261761}, {0.714842,-0.900438}, {0.566732,-0.227364}, {-0.266881,-0.036107}, {-0.791542,0.149132}, {-1.792347,-0.319528}, {-0.653766,0.011991}, {1.200644,0.555262}, {0.282989,-0.753802}, {0.528717,0.482407}, {-0.546723,-0.455929}, {0.266867,0.694730}, {0.516831,0.923688}, {0.182959,-1.056826}, {-1.486910,-0.208888}, {1.201567,0.192398}, {-1.757454,-0.151676}, {1.324179,-0.469352}, {0.040209,0.160468}, {0.654096,-0.624048}, {0.357661,0.980737}, {0.058591,-0.693167}, {-0.122160,-1.377046}, {0.281492,0.331693}, {-0.082028,0.294920}, {1.769671,0.812195}, {0.098679,0.119134}, {-1.443098,-1.187373}, {-0.280626,-0.135435}, {0.589831,0.260585}, {-0.540208,-0.744497}, {0.140753,0.497638}, {-1.508149,-0.600368}, {-0.545563,1.017052}, {0.626888,-0.915797}, {-0.053717,-0.598712}, {-0.550529,0.572603}, {0.159770,1.587399}, {-1.196120,0.802992}, {-0.515035,0.547389}, {-0.008116,0.409647}, {-1.058518,0.054808}, {-0.042508,-0.559489}, {0.011590,0.322688}, {1.052709,0.384123}, {0.425621,-0.744465}, {-1.279637,1.410061}, {0.107505,-1.717265}, {-0.850488,-0.542529}, {-0.969962,0.197049}, {0.045225,-1.201257}, {-0.701234,0.348909}, {0.254005,-0.689191}, {0.696662,0.251047}, {1.158640,-0.473769}, {-0.674666,0.000070}, {-1.079858,-0.744986}, {-0.956900,-0.604828}, {0.336681,0.096805}, {0.749376,0.408288}, {-0.341699,-0.132789}, {-0.566410,-0.063452}, {-0.307095,0.690775}, {1.362382,-0.954373}, {0.027733,0.171340}, {-0.043149,-0.889067}, {-0.759746,-0.387685}, {-0.014074,0.110098}, {1.941074,1.179552}, {-0.316348,1.024601}, {0.686783,-0.662860}, {-0.480265,-0.318199}, {-0.301052,0.547353}, {-0.658741,0.133439}, {0.219759,0.560583}, {-0.128545,-0.937591}, {0.937029,0.858481}, {0.636270,-0.195326}, {-0.333245,-0.881758}, {0.799974,0.622142}, {-0.008765,-0.681762}, {-0.344503,-0.152322}, {-0.269002,-0.978158}, {-1.401038,0.473890}, {-0.254753,-0.199118}, {0.501615,-0.004429}, {0.223899,0.481336}, {-0.846760,0.430996}, {-0.061397,-1.110077}, {-1.262684,-0.975124}, {-0.255968,0.443139}, {0.165242,2.157322}, {0.171348,-0.113452}, {0.784235,0.826362}, {-0.930326,-0.142924}, {-1.016804,-1.041038}, {0.053696,0.188937}, {-1.831388,-0.308341}, {0.956302,-0.422604}, {-0.814804,-1.598612}, {0.125995,-0.841216}, {1.222502,-0.172663}, {-0.066590,0.294008}, {1.467924,0.078648}, {-0.594113,0.074105}, {0.454844,0.418237}, {-0.355792,-1.712601}, {0.280973,0.482542}, {-1.677893,-0.708101}, {-0.143138,-0.222046}, {0.185764,-0.182096}, {-1.591763,0.811301}, {-0.872062,0.528511}, {0.531152,0.105743}, {-0.405518,-0.243221}, {-0.285285,-0.724835}, {1.211926,-0.938313}, {-0.311116,0.708844}, {0.452738,0.246767}, {-0.734349,-0.015975}, {0.504125,-0.297089}, {-0.550223,-0.407948}, {1.386104,-1.647487}, {-0.532341,-0.778504}, {-1.609207,-0.322142}, {0.151805,0.083478}, {0.045700,0.360312}, {-0.209418,0.028573}, {-0.028010,-0.531229}, {-0.297919,-0.606391}, {-0.227399,-0.036008}, {-1.071328,0.802874}, {1.611743,-0.469932}, {-0.639568,1.269852}, {1.007945,0.734555}, {0.278845,1.802139}, {-0.074947,1.028369}, {0.512044,-1.046021}, {0.400092,0.083723}, {-0.560397,-0.243498}, {0.036739,0.207770}, {0.571326,0.324339}, {0.186415,-0.351682}, {-0.457269,0.176103}, {0.021670,-0.065631}, {0.511796,-0.018099}, {1.735932,-1.412607}, {-0.650731,-1.358326}, {0.575977,0.636595}, {0.654576,-0.152643}, {-0.490564,0.772623}, {-0.524959,-0.161241}, {-0.658197,-0.312236}, {0.163393,-0.340469}, {0.656293,0.638867}, {0.501754,-0.811553}, {0.440917,0.449741}, {1.556753,0.811315}, {0.841730,-0.772732}, {0.660040,-0.888669}, {-0.782535,-0.242943}, {1.033138,-1.092518}, {-0.069224,0.487574}, {0.387082,-0.053341}, {-0.254564,-0.830744}, {-0.007638,-0.247230}, {-0.661025,0.930161}, {0.606968,-0.680955}, {-0.137605,0.289561}, {0.863396,0.128169}, {-0.349560,-0.836361}, {-1.438246,-1.537779}, {-0.460247,-1.009597}, {0.728357,-0.362308}, {-0.050639,-0.243558}, {-0.679497,0.781298}, {0.658934,0.412632}, {0.670115,0.267368}, {0.123810,-0.916516}, {0.868722,-1.620722}, {-0.145830,0.480333}, {-1.145276,-0.014976}, {-0.108175,-1.215163}, {-0.449991,-0.695477}, {0.354733,0.823464}, {-0.039724,-0.098980}, {0.013556,0.499284}, {-1.312451,-0.054851}, {-0.830864,0.524224}, {0.486311,-0.717254}, {0.643189,-0.177630}, {0.273871,0.698640}, {0.853247,-0.305921}, {-1.129702,0.190997}, {0.373702,-1.523299}, {-0.301040,0.189571}, {-0.224603,0.155915}, {0.831177,-0.779143}, {1.389989,-0.223985}, {-0.321807,-0.258173}, {-0.366492,-0.422011}, {-0.384236,0.224358}, {-1.063747,-0.704562}, {-0.555400,0.187686}, {0.271893,0.617246}, {-0.610279,-0.700190}, {-0.551170,0.213321}, {1.648215,0.778172}, {-0.025453,-0.830363}, {-0.219132,-0.100106}, {-1.131840,0.570620}, {0.351216,0.049910}, {-0.316256,-0.207403}, {-0.050467,1.734194}, {-0.654866,0.299421}, {0.150861,-0.684421}, {-0.561852,0.297147}, {-0.126410,0.789246}, {-0.127865,-0.749320}, {0.162245,1.241481}, {1.336352,-0.647051}, {-0.605969,0.480636}, {-1.072146,0.585871}, {0.768267,0.008915}, {-0.399790,0.263734}, {-1.004410,0.473403}, {0.145836,0.570952}, {0.647171,0.532919}, {1.021832,-0.194468}, {-0.166667,0.643500}, {-0.062712,0.359724}, {0.260920,1.286259}, {0.702274,-0.475356}, {-0.995690,-0.674690}, {1.214113,0.161147}, {-0.054271,-0.030268}, {0.135363,0.245079}, {-0.193862,-0.856533}, {-0.446497,0.195088}, {0.909234,0.465749}, {0.027739,-0.240682}, {0.202885,-0.391204}, {-0.915654,-1.517288}, {0.032038,0.801794}, {-0.565640,-1.125811}, {-0.746958,0.080219}, {1.012414,-0.176261}, {0.925715,0.171622}, {0.504816,0.886424}, {-0.055414,-1.707216}, {0.331249,1.448197}, {0.325529,-0.748697}, {0.006156,-0.885744}, {0.843520,-0.760984}, {1.008421,-0.221801}, {-0.978591,1.867998}, {0.351767,1.119610}, {-0.152918,1.039013}, {-0.595093,0.442284}, {0.844670,-0.308379}, {0.716920,-0.336382}, {0.461792,-0.273735}, {0.097085,-0.336706}, {-0.119997,0.705377}, {0.216905,-0.214695}, {-0.163907,0.691365}, {0.046850,-0.395489}, {-0.622611,-0.633670}, {0.073035,-0.563313}, {-1.652085,-0.637483}, {0.004529,-0.510007}, {-0.756162,-0.373366}, {0.224175,0.104698}, {0.240622,0.087521}, {0.051187,0.920317}, {1.667764,0.411180}, {-0.117246,-0.234740}, {-0.082710,-0.477874}, {0.040677,-0.399180}, {-0.950192,0.484832}, {0.746072,-0.140056}, {-1.349141,0.607029}, {0.548435,-0.191376}, {0.190776,-1.480638}, {0.719537,1.345205}, {1.446202,-0.580025}, {0.053474,0.978262}, {0.786674,0.753003}, {-0.996297,0.640894}, {1.383403,0.136313}, {0.608127,0.754792}, {-0.827608,-0.016325}, {-0.924064,-0.682900}, {-1.054567,-0.001422}, {1.185203,1.589105}, {0.496944,0.349206}, {-0.169828,-0.384878}, {-0.285749,0.247343}, {-0.719044,-1.465544}, {0.064705,-0.715851}, {-0.313329,1.540674}, {-0.565377,-0.220547}, {-0.959113,-0.696998}, {-0.265068,0.828256}, {-0.231885,-0.521362}, {0.084903,-0.990582}, {0.419140,-0.095240}, {0.278788,-0.044144}, {0.586966,0.431494}, {1.209696,0.763105}, {-1.666831,-0.629313}, {-0.497822,0.832480}, {-0.142951,-0.554920}, {-0.275496,-1.050326}, {-0.478618,-0.636370}, {0.782930,0.504903}, {-0.082104,-1.564349}, {-0.211217,0.853166}, {1.084067,0.782337}, {-0.055275,0.277204}, {0.880825,-0.475584}, {-0.949252,0.084678}, {-0.211708,0.245726}, {1.704036,0.424302}, {0.077734,-0.365634}, {0.216536,0.821771}, {0.375309,-0.657953}, {-0.659413,-0.187937}, {-0.499583,-0.274513}, {1.229467,-0.033242}, {-0.267309,0.993163}, {0.865415,0.210650}, {-0.823692,-0.069652}, {-0.540393,-0.407260}, {-0.708647,-0.380446}, {-0.456284,-0.443381}, {-1.262311,-0.764377}, {-0.321781,0.630733}, {-0.588639,-0.187851}, {-0.568256,0.499750}, {0.373187,0.006208}, {0.707336,0.348158}, {1.672811,-0.006168}, {-0.123496,0.243460}, {-0.436994,0.521309}, {0.221835,0.213596}, {-0.110805,0.604376}, {-0.453414,-0.656775}, {-0.342502,-0.092188}, {0.282574,1.154633}, {-0.805164,0.800347}, {0.792364,0.263727}, {-0.117166,-0.150103}, {-0.284043,1.115365}, {0.454632,-1.305995}, {-0.027046,-0.148701}, {0.158758,-1.399725}, {-0.035824,1.192414}, {-0.761856,0.094855}, {-0.008090,0.994581}, {-0.259027,-0.931982}, {-0.978369,-0.050289}, {0.339204,-0.785655}, {-0.301449,0.823972}, {0.745963,0.972562}, {1.820135,0.926824}, {-0.182639,0.155852}, {-0.307134,0.062589}, {-0.356943,1.592747}, {-0.810041,-0.170031}, {0.924231,-0.092920}, {-0.511708,-0.739995}, {0.217789,0.214683}, {0.727853,0.509274}, {0.540418,0.119559}, {1.247327,0.541364}, {0.750281,0.697049}, {0.211089,0.231808}, {0.542634,0.268686}, {0.250232,0.727131}, {-1.260513,0.624552}, {0.606138,-0.194470}, {0.114722,0.116973}, {-0.552551,-0.850632}, {-0.586970,-0.054372}, {0.199770,-0.540281}, {-1.122043,-0.794103}, {1.090813,0.071042}, {-0.304107,0.113772}, {0.555280,0.023257}, {0.066496,-1.087529}, {0.735559,1.299498}, {-0.523713,-0.325003}, {0.558212,-1.053250}, {-0.542305,-0.417328}, {0.228459,-0.174137}, {0.882993,1.180572}, {-0.210242,0.141900}, {0.530180,-0.288710}, {-0.867478,-0.490810}, {0.680940,0.052579}, {-0.190379,-0.716328}, {2.098467,0.446381}, {-0.802407,0.021896}, {-0.050531,0.152073}, {-0.548937,-0.769984}, {1.160574,1.151177}, {-0.844446,-1.831308}, {0.469147,0.201575}, {0.915001,0.416576}, {0.447789,-1.554800}, {0.498533,-0.152030}, {0.333739,0.365833}, {0.523884,0.261510}, {0.102519,-2.132332}, {1.322340,0.237185}, {-0.666061,0.182718}, {-0.547886,0.110171}, {-0.885832,-0.119981}, {-0.220295,0.279038}, {0.672774,-0.493978}, {0.201961,0.278770}, {-0.698567,1.015529}, {-0.547559,0.238427}, {-0.900760,-0.019301}, {0.850664,0.808783}, {-0.435736,0.345590}, {-0.166500,0.514461}, {-0.734562,-1.054797}, {-0.480065,0.153198}, {1.169755,0.209574}, {1.069664,0.606532}, {-0.708567,-0.040850}, {0.652199,-0.079326}, {-0.719968,0.322006}, {-0.514982,0.234570}, {-1.101919,-0.339730}, {0.150537,0.654555}, {-0.736618,-0.262166}, {-0.856246,-0.452481}, {1.287460,-0.187745}, {-0.217413,-0.915828}, {0.609253,-0.743804}, {-1.171250,-0.922717}, {0.150368,0.415436}, {1.201096,-0.573735}, {-0.115596,0.661219}, {1.042194,-0.088547}, {0.005057,-0.396937}, {-1.158327,-0.358233}, {0.623459,-0.169205}, {0.388201,0.751152}, {0.895239,0.665853}, {0.354939,0.105708}, {-0.587396,-1.923318}, {-0.061833,0.531589}, {0.604179,-0.251531}, {0.494426,0.338236}, {-0.271009,-0.331057}, {-0.256580,0.492214}, {-0.088714,-0.383933}, {1.123027,0.719944}, {0.375988,0.313174}, {0.236084,0.230468}, {0.003886,-0.712924}, {0.104498,1.606752}, {-0.532576,0.330591}, {-0.488381,-1.352006}, {0.161545,1.723053}, {-0.710498,-0.276665}, {-0.986647,0.482909}, {1.434283,0.726346}, {0.068419,1.131931}, {0.442032,-0.394590}, {-0.239756,0.143242}, {1.643873,-0.058546}, {-1.003878,-0.192841}, {0.122247,-0.079203}, {-0.252594,-1.356311}, {-0.869489,-0.064070}, {-1.961857,-0.185462}, {-1.899979,0.496400}, {-0.109843,0.709934}, {0.827485,-0.498313}, {0.209843,1.037273}, {-1.581375,-1.119497}, {0.290475,1.032399}, {0.668792,0.476572}, {-0.433339,-0.944385}, {0.323084,0.537194}, {-0.221663,0.003856}, {1.383254,-0.497884}, {-1.198460,-0.892147}, {-0.750552,0.230349}, {-0.637159,0.240327}, {1.023382,1.174099}, {0.449877,1.718353}, {0.110701,-1.119723}, {0.188672,-0.085627}, {-0.767622,0.429697}, {0.022888,-0.290090}, {0.029017,-0.575055}, {0.569277,-0.179878}, {-1.100726,0.865245}, {-0.544482,0.275123}, {-0.336701,-0.933121}, {0.051869,0.544727}, {0.845421,-0.138977}, {-0.855811,0.654785}, {0.146789,-1.087976}, {-0.213152,0.076521}, {1.014701,0.369228}, {0.303512,-0.346069}, {0.019167,0.409554}, {0.812617,-0.834358}, {1.338190,-0.103966}, {0.776275,0.019837}, {-0.804914,-0.226097}, {-1.210668,-1.599920}, {-0.354872,1.508185}, {-0.577729,-0.030264}, {1.140923,-0.684538}, {-1.087623,0.646425}, {-1.213811,1.245787}, {-0.747429,0.088243}, {-1.028906,1.421081}, {0.269063,0.871054}, {-1.154534,0.036896}, {0.616763,0.386360}, {-0.112931,-0.217046}, {0.465623,-0.396933}, {0.167084,-1.587480}, {1.067098,1.142031}, {-0.726521,0.527343}, {0.521179,0.754796}, {1.965600,-0.951334}, {-0.493864,0.148753}, {-0.789453,-0.495132}, {1.154057,0.025690}, {0.226936,0.017755}, {-0.397219,0.138528}, {0.825606,-0.364112}, {-0.550409,0.454887}, {0.168085,-0.192830}, {1.037240,0.172213}, {-0.623615,-1.192414}, {-1.394999,0.433780}, {-0.517121,0.276487}, {-0.717265,-1.106185}, {1.173780,0.500190}, {1.189896,0.347666}, {-0.367490,0.332201}, {1.428207,0.822697}, {0.450744,1.052459}, {-0.703437,0.894070}, {0.915143,0.151831}, {-0.076742,0.733596}, {0.524063,-0.923572}, {0.182666,-1.514815}, {-0.096585,-0.475288}, {0.933516,0.325996}, {0.262816,-1.152226}, {-1.298289,1.056797}, {0.290436,0.293651}, {-0.796841,0.007490}, {-0.001210,-0.482373}, {-0.372255,-0.003545}, {-0.951811,0.424592}, {0.428500,-0.154131}, {-0.016110,0.104156}, {0.714483,-0.096403}, {-0.497021,0.177252}, {0.119749,-1.519028}, {1.655545,-1.336578}, {0.765918,-0.329551}, {1.142739,1.110006}, {0.715838,0.057273}, {0.978170,0.262785}, {0.989103,0.268928}, {-0.844677,0.128637}, {-0.709728,-0.957801}, {1.655370,0.576793}, {-0.701566,-0.455455}, {1.472421,0.138446}, {-0.068813,0.104376}, {-0.307454,0.024655}, {-1.584193,0.460054}, {-0.636200,0.303211}, {-0.547006,-0.100346}, {0.033197,-0.233433}, {0.036871,-1.428877}, {-1.282191,-0.020832}, {-0.226060,0.575992}, {0.539645,0.580925}, {-0.515746,0.640159}, {0.122624,0.379262}, {-0.298237,-0.430135}, {0.582305,0.104006}, {0.761337,0.778517}, {-0.116138,-0.079724}, {0.056869,0.497983}, {0.534546,-0.781835}, {1.373099,0.424074}, {-0.326885,-0.553422}, {0.466659,0.459637}, {0.057961,0.638324}, {1.220616,0.000019}, {-0.396984,1.437168}, {0.217722,0.458254}, {0.517229,-0.226219}, {0.266293,0.723080}, {0.316267,-0.496743}, {0.395212,0.100780}, {0.208948,-0.868054}, {0.494479,0.422566}, {0.090251,0.077638}, {-0.006175,-0.650019}, {-0.244839,-0.682264}, {-0.168110,0.761099}, {-0.705272,0.959809}, {0.345444,-0.191354}, {-1.338302,-0.620916}, {-0.913269,-0.357629}, {-0.326929,-0.599831}, {-0.886159,-0.329607}, {-0.352269,-0.326190}, {0.517424,-0.679915}, {-0.256276,0.568007}, {-0.018477,0.625619}, {-1.188829,-0.540793}, {-0.063814,0.082350}, {-0.574465,-0.281673}, {-1.431945,-0.967747}, {-1.319540,-0.350255}, {0.385732,0.441168}, {0.648657,-0.187545}, {-0.413140,-0.199861}, {-0.860812,0.630549}, {-0.526107,-0.254688}, {1.561758,-0.918379}, {0.478789,-0.553762}, {0.577887,0.031411}, {-0.123129,-1.310582}, {0.467329,-0.373385}, {-0.158891,-0.519788}, {0.413279,-0.717616}, {-0.090683,0.008334}, {-0.201974,-0.766771}, {0.467733,-0.252969}, {1.537250,-0.785099}, {1.055945,1.034578}, {0.855592,-1.000192}, {0.049488,1.476671}, {0.485982,-1.096695}, {-0.417544,-0.230928}, {0.650111,-0.343016}, {-0.697971,-0.973262}, {0.665104,0.431052}, {0.312919,1.312641}, {0.441995,-0.145228}, {0.314576,0.658067}, {-0.499512,-0.180834}, {0.274381,-0.633668}, {-1.253873,0.337280}, {0.429498,-0.073320}, {-0.721886,-0.291230}, {2.130391,-0.609516}, {0.264504,-0.772070}, {0.197991,0.156987}, {0.012200,0.176025}, {0.511819,0.264211}, {0.846034,-0.534889}, {-0.019510,0.783356}, {0.369750,-0.658338}, {0.067036,-0.850373}, {-0.187688,0.650173}, {-0.550258,0.977643}, {0.310795,-0.493400}, {-1.002795,-0.323754}, {-0.687753,0.520814}, {-0.273234,-0.055023}, {1.420085,-0.258885}, {-1.197577,0.045913}, {0.069913,-0.134013}, {-0.662290,-0.003455}, {-0.451015,-0.580987}, {1.162251,-0.128787}, {-0.397880,-0.417766}, {0.970358,0.047251}, {-0.999546,-0.615866}, {-0.667909,0.655248}, {0.171279,-1.041255}, {0.490597,-0.745594}, {-0.163106,-0.467833}, {0.685498,-0.884569}, {0.021264,-0.159166}, {-0.284385,0.390590}, {-0.406411,0.147308}, {-0.887529,-0.424785}, {0.800653,0.320601}, {-0.237328,0.229176}, {-0.356110,-0.871456}, {-0.469616,-0.563785}, {0.540253,0.000454}, {0.766091,-0.692660}, {1.265823,-1.121352}, {-0.519969,-0.763516}, {-0.908685,1.223205}, {0.378901,-0.148434}, {0.734892,-0.017845}, {0.630235,0.605463}, {0.484549,0.798393}, {0.889189,-0.588511}, {-1.209300,-0.615938}, {0.745912,0.216205}, {-0.361015,0.030537}, {-0.140569,0.491194}, {0.206099,0.823077}, {1.382085,0.511459}, {0.822290,1.501179}, {0.580893,0.246972}, {-0.058519,-0.069856}, {-0.623353,-0.877999}, {0.911648,0.144101}, {0.264720,-1.072727}, {-0.788517,-0.665520}, {0.884159,-0.498943}, {-0.328181,-1.628856}, {-0.854272,-0.298947}, {0.369952,-0.228915}, {0.466766,-0.533842}, {-0.856672,0.555703}, {-1.666030,0.205364}, {-1.163374,0.020615}, {-0.460905,0.147512}, {-1.150163,-0.171924}, {-1.086664,1.156968}, {0.221459,0.371883}, {-0.140640,-0.413140}, {0.015694,-0.876451}, {0.084676,-0.170816}, {1.728853,-0.133309}, {0.505786,0.017453}, {0.738540,-1.225824}, {-0.732059,0.505571}, {0.586809,0.992493}, {-0.201427,0.147962}, {-0.669290,0.191411}, {-0.670438,0.813079}, {-0.396987,0.005979}, {-0.248870,0.602922}, {0.019785,-1.162706}, {0.258091,-0.507443}, {-0.293495,-0.206140}, {-1.416552,-0.047997}, {0.863624,-0.614726}, {0.618458,-0.667468}, {-0.068763,-0.452185}, {0.518270,0.013776}, {0.095323,0.282178}, {-0.501060,1.250301}, {0.495096,-0.240239}, {0.841004,0.186255}, {0.979204,-0.843511}, {0.159362,-0.525116}, {-1.076816,-0.329245}, {0.590261,0.475905}, {-0.042284,0.849452}, {-0.176301,0.436022}, {-0.007701,1.259334}, {-1.508466,-0.903273}, {1.741680,0.724148}, {-0.829550,0.878517}, {0.549818,0.385023}, {-0.586413,0.711769}, {-0.731277,0.072802}, {0.732751,-0.781661}, {1.453798,0.653282}, {-0.547525,0.163118}, {1.321736,0.284994}, {0.967075,0.447090}, {0.449005,-1.871133}, {0.049354,-0.499692}, {0.623433,1.594496}, {-0.006018,-0.366873}, {-0.476288,-0.645067}, {-0.185525,1.921269}, {0.691321,-1.097974}, {-1.417428,0.364298}, {0.995453,0.433032}, {0.645331,-0.069612}, {0.587566,-0.248929}, {-0.015891,0.435682}, {0.300868,0.560848}, {0.593525,0.847680}, {-1.032251,0.705217}, {-1.236513,-0.605437}, {0.480328,0.151749}, {-0.327914,-0.239973}, {0.645026,1.272340}, {1.041862,-0.097846}, {-0.444069,0.694695}, {0.748340,-0.242565}, {-0.392311,-0.564402}, {0.955277,-0.330417}, {0.766884,-1.099700}, {0.270925,-0.271814}, {0.991722,-1.258038}, {-1.300449,-0.021881}, {-0.648161,-0.316676}, {0.189458,0.566763}, {-1.087335,0.525761}, {-0.096931,0.439582}, {-0.004232,-0.614384}, {-1.011860,0.920394}, {-0.096274,-0.360917}, {0.126764,-0.317622}, {1.075920,-2.092266}, {-0.745683,0.670968}, {-0.427878,0.479526}, {1.421614,1.297357}, {-0.182187,0.907850}, {0.576038,-0.390017}, {-0.774510,0.092694}, {1.486913,0.472625}, {-0.985614,-0.039686}, {0.497321,0.513824}, {-0.226054,-0.465794}, {0.263041,-0.071887}, {0.284301,-0.781556}, {0.312159,-1.389565}, {-0.473675,1.103600}, {0.066062,-0.020374}, {0.153187,-0.821651}, {0.252598,-0.505776}, {-0.588915,-0.507526}, {0.746750,0.865902}, {-0.198729,0.371388}, {0.192385,-0.115625}, {-0.301964,1.093953}, {-0.372911,0.616029}, {-0.146635,-0.921548}, {0.449273,-0.739387}, {0.901099,0.774089}, {0.266051,0.377341}, {0.591555,0.563182}, {0.636632,-0.227791}, {1.160072,0.570171}, {0.176682,0.068412}, {-0.005833,0.132717}, {0.004802,-0.842799}, {1.604389,-0.379789}, {0.484633,-0.421334}, {0.185324,0.164699}, {0.040009,0.495247}, {-0.126941,-0.436956}, {1.077300,1.615921}, {-0.092967,-0.177670}, {0.562370,-0.425568}, {-0.812328,-0.831640}, {0.504950,-0.415654}, {0.634659,-1.051510}, {-0.509551,-0.741446}, {0.461403,-0.823263}, {0.741515,-0.178576}, {-1.803048,0.240838}, {0.965793,0.671290}, {0.485702,0.199620}, {-0.033739,0.468502}, {0.995017,0.457605}, {-0.891019,-1.422089}, {0.213272,1.349124}, {0.957810,-0.529870}, {1.144436,0.631099}, {-0.608364,-0.008161}, {-0.183913,-0.622132}, {0.259485,1.794263}, {-1.893936,0.887524}, {0.869948,0.279483}, {1.330244,-0.234150}, {-0.698793,-1.869186}, {-0.023907,-0.584283}, {0.889881,-1.321943}, {0.739625,-0.348848}, {-0.445268,0.106291}, {0.826921,0.698815}, {-0.290005,0.699820}, {-0.344072,-0.323324}, {-0.411819,-0.585410}, {-0.018909,-0.290762}, {0.505112,-0.327444}, {-0.118789,-0.034296}, {1.369287,0.043394}, {-1.463384,-0.619034}, {-0.230005,1.632769}, {-0.715552,1.059146}, {0.500928,-0.212733}, {0.920560,-0.635359}, {-0.588473,0.687934}, {-0.213108,-0.623500}, {-1.114112,1.581999}, {1.450259,-0.777587}, {-0.240633,0.524103}, {-0.437009,-0.672738}, {-0.672158,-0.442712}, {-1.001309,0.772701}, {-0.448667,0.061504}, {0.258287,-0.116766}, {-1.022620,0.057617}, {-0.132288,1.008135}, {1.073702,-1.840446}, {1.048816,-0.795525}, {0.549427,-0.386099}, {0.536366,-1.205694}, {-0.187059,1.950097}, {0.301988,-0.179036}, {-0.553248,1.508990}, {-1.704598,0.083126}, {-0.872153,-0.082539}, {-0.436999,0.247757}, {-0.535663,0.218898}, {1.740084,-1.134760}, {1.769763,0.915663}, {-0.562986,-0.099149}, {1.793889,-0.797788}, {-0.178126,-0.267732}, {0.631260,-1.067603}, {0.824120,0.547277}, {0.414803,0.795777}, {1.524148,-0.914855}, {0.122641,-0.801623}, {0.240361,-0.440083}, {0.297449,2.260062}, {-0.047492,-0.415373}, {1.113301,-0.107794}, {-0.278272,-0.153044}, {-0.795337,0.227249}, {-0.362846,0.602121}, {0.954406,1.716838}, {-0.259979,-0.099052}, {-0.032074,-0.033958}, {-1.944759,-1.116393}, {-0.489102,0.214741}, {-0.522574,1.262638}, {0.863974,-0.082520}, {0.484891,1.178134}, {0.703921,0.461285}, {-1.885850,-0.134840}, {0.185955,0.977271}, {0.324373,0.280497}, {-0.540469,0.740809}, {-0.490823,0.276430}, {1.048976,-0.306852}, {-0.872366,0.408507}, {-0.522883,0.166499}, {0.244488,-0.257421}, {-1.040009,-0.423785}, {-0.755068,0.536125}, {-0.684830,0.823324}, {0.564522,0.356330}, {-0.595022,0.388829}, {-0.144106,0.215685}, {0.035723,-0.053939}, {-0.353620,-1.153940}, {1.247211,-0.730838}, {1.664593,0.096993}, {0.991357,-0.265930}, {-1.524475,1.193607}, {0.404257,-1.329731}, {-0.893348,-0.573884}, {-0.456101,1.026453}, {0.114008,-0.620093}, {0.505622,0.342661}, {0.550962,0.586929}, {0.809653,-0.405812}, {-0.028734,-0.834741}, {-0.155816,-1.209146}, {1.153799,1.158627}, {-0.190132,0.358644}, {-0.802479,-0.235259}, {0.090976,-0.943619}, {0.728902,-0.942158}, {1.160826,-0.138895}, {0.377593,-0.778267}, {0.070475,0.710161}, {-0.141220,-1.059658}, {0.833144,0.183631}, {-0.769879,0.085471}, {0.940921,0.622870}, {0.717500,0.267314}, {-0.671317,-0.402610}, {-0.190394,0.893239}, {0.197755,0.923891}, {1.199303,-0.372345}, {-0.196247,0.422832}, {0.254665,-0.230619}, {1.194773,-0.045428}, {-0.165593,-1.152962}, {0.457136,-0.280145}, {-0.302551,0.117955}, {1.065757,0.136590}, {-0.403169,-1.378557}, {-0.555648,0.009076}, {-0.654869,-0.527972}, {0.007930,0.308520}, {0.267582,-0.462596}, {-1.321099,1.596624}, {0.201720,0.549905}, {0.573367,-0.507021}, {0.816064,0.368670}, {-0.014020,0.027474}, {0.437790,0.322314}, {0.228108,-0.622273}, {-0.462938,-1.714444}, {0.645504,0.655548}, {-0.129067,-1.174696}, {-0.363463,0.121620}, {0.064644,-0.373728}, {0.829669,-0.093423}, {1.987522,1.409714}, {0.402627,0.461663}, {-0.517408,1.461400}, {-0.194346,0.371817}, {-0.095302,1.127603}, {0.854504,0.243799}, {-0.175436,0.956797}, {0.765841,0.740974}, {-0.311100,0.344987}, {0.505908,-1.150500}, {0.570032,-0.062613}, {-0.145633,0.780485}, {-0.162999,0.361546}, {-0.290794,1.229566}, {0.262506,-0.308712}, {-0.060761,-1.319020}, {-0.374195,0.429511}, {-0.086799,0.375579}, {-0.695934,1.544833}, {-0.553200,0.563327}, {0.270544,0.934228}, {0.336961,0.195811}, {0.665743,0.096687}, {-0.076057,1.056521}, {0.798484,-0.357557}, {0.241616,-1.011969}, {-1.077322,-0.558872}, {0.442441,-0.655746}, {0.244793,-0.618180}, {0.103232,0.499368}, {-0.227070,0.190847}, {0.550947,-0.745656}, {-1.079964,0.299129}, {0.779327,-1.277451}, {-1.628750,0.145433}, {0.240864,-1.102978}, {-1.270518,0.131556}, {0.775651,-0.293631}, {-0.240939,-1.275808}, {0.223459,0.026144}, {-0.742946,0.387688}, {0.012050,-0.095382}, {-0.342335,-0.145945}, {-0.474094,-0.504738}, {-0.202108,0.823645}, {1.541322,-0.601652}, {0.433840,-0.201410}, {0.098066,0.014597}, {-0.773606,-0.954702}, {0.318751,-0.263447}, {0.397180,-0.536216}, {-1.235381,0.558129}, {0.769004,-0.940717}, {-0.235040,-0.468838}, {-0.564520,-0.384393}, {-0.005423,1.188288}, {-0.985059,0.199438}, {-0.189449,-0.528242}, {-0.388491,-1.042069}, {0.430704,-0.535256}, {-0.591624,-0.007859}, {0.592677,-0.737538}, {-0.381401,-0.351623}, {0.491357,-0.380019}, {-0.483469,1.474160}, {-0.125849,0.369908}, {0.078613,-0.121651}, {-0.353110,-0.717969}, {0.872719,-0.606648}, {-0.428882,0.846706}, {0.175737,-0.707301}, {0.420668,-0.670445}, {0.181614,-0.047297}, {0.921628,-0.508933}, {0.592896,0.669205}, {-0.330365,-0.380564}, {0.650241,1.309658}, {0.236892,-0.200631}, {-1.285455,-1.072231}, {0.258253,-0.458396}, {0.580260,-0.058791}, {-0.198798,0.297518}, {-0.081461,1.105449}, {-0.972283,0.637500}, {-0.752549,-0.092627}, {-0.787857,-1.415530}, {1.506419,1.017351}, {0.585529,0.375103}, {0.637950,-0.354231}, {0.542343,-0.978832}, {-0.631439,0.380096}, {0.387861,-0.406235}, {-0.458367,0.221299}, {0.982058,-1.106305}, {0.250386,-0.654296}, {0.176148,-0.799581}, {-1.154337,0.577434}, {0.743221,-0.164562}, {0.147461,0.563461}, {0.262860,-0.187851}, {0.080463,-1.267225}, {-0.842093,0.465417}, {-1.150684,0.413909}, {-0.697233,-0.258542}, {1.008287,0.072083}, {-0.788413,-0.051451}, {-0.039100,0.376908}, {0.314799,-0.081361}, {-0.961472,-1.372276}, {0.190966,-0.194039}, {-0.415721,0.883995}, {-0.001280,-1.035261}, {-0.578034,0.253532}, {0.718858,0.130658}, {0.169064,-0.650773}, {1.019305,0.470424}, {-0.779577,-1.527926}, {-1.397568,-0.116837}, {0.151050,-0.025676}, {-0.946740,-0.996213}, {0.946883,0.374918}, {0.120331,0.668101}, {-0.158538,-0.647519}, {1.011966,-0.291368}, {-0.414841,0.899555}, {-0.613882,-0.444467}, {0.133879,-1.173510}, {-0.713934,0.659541}, {0.632421,-0.324801}, {-0.929352,-0.825345}, {-0.939329,-0.154669}, {0.135173,0.015513}, {1.221067,0.948110}, {-0.389186,-0.513496}, {0.296118,1.574228}, {-0.296515,-0.024812}, {1.003795,0.323161}, {-0.435951,0.654561}, {-0.490652,-0.418108}, {0.752490,-0.105439}, {-0.337112,0.345660}, {-0.567309,1.101450}, {0.959341,-1.200654}, {0.928823,0.018668}, {0.251045,-0.478851}, {0.947048,-1.373055}, {0.155776,-1.054964}, {-0.380913,-0.118574}, {0.042293,-0.476657}, {0.200067,-0.039548}, {-0.386089,-0.409839}, {0.799759,-0.629364}, {1.030871,-0.758805}, {0.191216,-0.009835}, {1.064252,0.456354}, {-0.739292,0.213518}, {-0.957471,0.766434}, {1.289907,1.080144}, {0.839509,-0.415417}, {-0.126717,-0.220462}, {-0.493196,0.136442}, {-0.740415,-0.205084}, {-0.451410,-0.124071}, {0.590748,-1.389196}, {1.048353,-0.143902}, {1.382293,0.237621}, {-0.817723,-1.004158}, {0.025907,-0.953813}, {-0.134011,0.870525}, {-0.796710,0.808375}, {1.063805,-0.573200}, {0.608984,0.022332}, {0.705208,1.520836}, {-0.449768,0.364173}, {-0.121032,-0.081536}, {-0.222846,1.764236}, {-2.317731,-0.242630}, {0.003012,2.291217}, {-0.731425,0.097707}, {0.267980,0.021976}, {-0.052570,-0.060891}, {1.328129,1.291555}, {-0.535779,-0.699093}, {-0.321002,0.511984}, {-0.118378,0.976733}, {-0.483034,-0.250304}, {-1.164027,0.342938}, {0.152236,0.157467}, {-0.219252,0.092701}, {0.666655,-0.396142}, {-0.662523,-0.345241}, {0.362952,-0.167473}, {-0.619415,0.020731}, {1.119113,0.580225}, {-1.234932,0.059510}, {-0.979695,0.650857}, {0.248844,0.475403}, {0.152068,0.896504}, {-0.025802,-0.188693}, {-0.312432,0.713030}, {0.318940,1.325683}, {-1.388616,-0.069398}, {0.563331,0.129599}, {0.556248,0.372978}, {-0.387270,-0.410561}, {0.381157,0.174884}, {0.205704,0.309849}, {0.546306,1.544967}, {-1.502442,0.568854}, {-1.441137,-0.654132}, {0.236177,0.806135}, {-0.458600,-0.272605}, {1.645150,-0.472139}, {1.230134,-0.639721}, {0.194120,-0.166522}, {0.117438,-0.763945}, {0.775048,-0.144419}, {0.582774,-0.338508}, {-0.451656,-0.308490}, {-0.997512,0.221620}, {0.518933,0.834596}, {0.072709,0.691029}, {-0.072488,-0.926413}, {0.455952,1.521838}, {0.452472,-1.063857}, {0.509717,0.548683}, {0.555750,-0.567077}, {0.044489,0.772517}, {-1.065137,1.047399}, {-0.057517,0.426841}, {-0.048828,-0.066677}, {-0.090397,-1.373149}, {0.299498,-1.074127}, {0.508632,0.940645}, {-0.075787,-0.866339}, {1.162672,0.315994}, {-0.398345,-0.537812}, {-0.364908,-0.483622}, {0.461687,0.527551}, {-0.162621,0.230750}, {1.072227,1.602365}, {-0.866570,1.022571}, {1.183777,0.054456}, {-0.901192,-0.614876}, {0.207856,-1.230461}, {-0.218150,-0.421866}, {-0.416722,0.161147}, {0.434887,0.939654}, {-0.141095,-0.011220}, {-1.002557,-0.906183}, {-0.336980,0.143558}, {1.524689,-0.734075}, {-1.673018,-0.011837}, {-0.399086,0.379387}, {0.022946,0.360077}, {1.334352,-0.058248}, {0.582118,0.104689}, {-0.235530,-0.117603}, {-0.685178,1.207036}, {-0.505037,0.394430}, {1.041913,-0.754037}, {0.157290,-0.635867}, {0.420463,0.059918}, {-0.672484,-0.106277}, {-0.342000,-0.887734}, {0.037279,-1.312576}, {0.196471,-0.690414}, {0.628345,0.600837}, {1.905626,0.213228}, {0.002845,0.911432}, {-0.273556,-0.817731}, {-0.734045,-0.814594}, {-0.278813,1.362944}, {-0.490799,0.681619}, {0.823281,0.924446}, {0.382131,0.054887}, {0.207567,0.197565}, {-0.198756,-2.356373}, {-0.146667,1.116811}, {-1.225286,0.261605}, {-1.600163,-0.215777}, {0.188098,0.034549}, {0.059091,0.203517}, {0.539660,-0.144263}, {0.559525,-0.197091}, {-0.995693,0.479884}, {-0.140240,0.304529}, {-0.933852,1.657169}, {-0.378402,0.686321}, {-0.133646,-0.711732}, {0.356331,0.032003}, {0.167839,-1.094820}, {0.495340,0.695848}, {-0.324402,2.032407}, {0.345523,-0.708782}, {0.651872,1.141485}, {-0.804705,0.431775}, {0.073119,-0.202232}, {-0.389707,-0.229234}, {-0.264997,1.293800}, {0.443424,0.482117}, {0.331831,-1.277015}, {-1.021430,-1.437496}, {0.034502,-1.757843}, {-0.222381,-0.925680}, {0.029757,0.759219}, {0.025235,0.100197}, {0.204608,0.007049}, {0.108738,-0.526643}, {0.063573,-1.456564}, {-0.344489,0.271249}, {-0.605927,-1.137269}, {-0.505740,-0.805053}, {0.607392,0.236317}, {-0.004607,0.308809}, {0.148965,0.107110}, {-0.116365,-1.014452}, {0.054350,-0.377083}, {1.753877,0.889535}, {-1.155775,0.390584}, {-0.077606,0.065922}, {0.550225,0.202540}, {1.695931,-1.527247}, {0.112023,1.588761}, {-0.397930,-0.627045}, {-0.761887,0.846351}, {-0.202916,0.218434}, {0.028378,1.479997}, {-0.484383,-0.042392}, {-0.104811,0.833990}, {-0.860957,0.498545}, {1.074833,-0.971359}, {0.286261,-0.574891}, {0.415268,0.659014}, {-0.123245,-0.459360}, {0.596546,-0.406837}, {1.301351,-0.741688}, {0.925065,-0.414523}, {0.443874,-0.870857}, {0.416989,-0.113289}, {0.117815,0.264440}, {-0.569040,-0.606823}, {-0.071240,0.617613}, {1.082605,0.798463}, {-0.300080,0.104141}, {-0.190657,-0.215200}, {-0.109927,-1.077320}, {-0.865215,-0.747596}, {0.026072,0.657730}, {-0.602460,-0.765455}, {-0.120662,-0.176552}, {-0.020959,0.700393}, {-0.532963,1.578641}, {0.660906,-0.761852}, {0.204630,0.671138}, {1.378102,1.047063}, {0.561706,0.261408}, {-0.260495,0.707119}, {0.122258,-1.309491}, {0.348012,-0.204710}, {0.590837,-0.752105}, {1.641608,-0.346800}, {-0.873873,0.418680}, {-0.277803,0.003063}, {1.257064,0.252787}, {0.675850,0.403955}, {-0.418536,0.803833}, {-0.164660,0.169753}, {0.850197,0.896004}, {0.819463,-0.702546}, {0.422036,0.045786}, {0.453763,-0.574596}, {-0.166787,-0.756407}, {0.523826,0.600864}, {-0.115417,0.177982}, {-0.055416,0.683982}, {-0.270215,0.340186}, {0.195431,1.313902}, {-0.443910,-0.182965}, {-0.071393,-0.364572}, {-0.707667,0.098065}, {0.778016,-0.604885}, {-0.229268,-0.776824}, {-0.512173,-1.134451}, {0.252034,0.380931}, {-0.003544,0.019841}, {-0.058631,0.109133}, {-0.128306,-0.186545}, {-0.293227,1.213620}, {-0.779521,0.232263}, {0.060435,0.186679}, {0.990281,-0.912743}, {-1.301892,0.111320}, {-0.034738,-0.546598}, {-0.566775,-0.661059}, {-0.925700,-1.136595}, {0.568009,-0.694776}, {-0.857730,1.198007}, {-0.037984,-0.146860}, {-0.252787,-0.038902}, {-0.568219,-0.219940}, {0.303626,0.948180}, {-0.038566,-0.531735}, {-0.103828,-0.538015}, {0.260650,-0.359314}, {-0.327697,0.416712}, {-1.116063,0.090095}, {-1.293285,-0.837186}, {-0.482711,-0.182843}, {0.059427,0.514144}, {0.566554,-0.141405}, {-1.308599,0.222065}, {0.119560,-0.441928}, {-0.228916,-0.884073}, {0.381615,-0.358756}, {0.207154,1.337287}, {-0.260877,-0.510744}, {-0.240457,0.257392}, {-0.147033,-0.616898}, {0.252767,0.555545}, {1.142911,0.946975}, {-0.145901,-0.472828}, {0.263985,0.594191}, {0.275152,-0.360078}, {-0.378772,0.233403}, {0.060201,-1.295192}, {0.711630,-0.480067}, {-0.727486,-0.316626}, {-1.024395,-0.820563}, {0.229158,0.571038}, {-0.195501,0.125831}, {-0.134340,-0.536494}, {-0.265465,-1.168649}, {-1.253822,0.766807}, {-0.908661,0.099254}, {-0.303613,-0.289008}, {-0.312701,-1.039648}, {-0.560653,0.439198}, {-0.592471,-0.580957}, {-1.482518,0.450587}, {1.765973,-0.280969}, {-2.102702,0.355270}, {0.543240,1.121485}, {0.960646,0.575538}, {-0.328846,-1.412944}, {-0.158343,1.897285}, {1.102149,-1.023840}, {0.757352,-0.148155}, {-0.543007,0.817050}, {0.860867,0.780749}, {-0.209900,-0.052244}, {0.033218,0.744034}, {0.846613,0.704981}, {1.311109,-1.502775}, {0.749682,-0.026687}, {-0.670479,-0.906180}, {-0.449276,-0.235328}, {-1.029479,-0.800321}, {-0.552364,0.362018}, {0.571044,-0.294024}, {0.303263,-0.977773}, {-1.872468,0.396964}, {-0.955788,-0.245566}, {-0.953171,0.032204}, {-0.140014,0.562421}, {-0.238861,-1.034260}, {0.016618,-0.778735}, {0.641832,-1.328999}, {-0.555008,0.001675}, {0.177758,0.407400}, {0.378772,-0.737130}, {-0.947272,0.646346}, {0.530960,0.259863}, {-0.901216,-0.065121}, {-0.322799,-1.319203}, {1.054523,0.101474}, {1.428788,-0.349216}, {0.349194,1.127674}, {-0.452166,-0.174773}, {-1.118452,0.641579}, {0.089249,-0.175187}, {0.266167,0.234908}, {0.087406,-0.807926}, {-1.697266,0.627200}, {-1.079827,-0.422557}, {-0.372603,0.642134}, {0.131330,0.888119}, {0.792349,0.278774}, {-0.246192,0.080661}, {-0.353288,0.005239}, {-0.134266,-0.384476}, {-0.828652,0.066405}, {-0.548264,-0.080022}, {-0.120933,-0.875978}, {0.903563,-0.743197}, {-0.567596,-0.824528}, {-0.206943,-0.203413}, {0.232509,0.801755}, {0.398309,-1.779415}, {-0.186675,-0.863868}, {1.305872,0.428744}, {-1.716046,0.133683}, {-0.450440,0.029653}, {-0.506766,0.145657}, {-0.967946,-0.295591}, {0.257046,-0.199603}, {0.490026,0.741449}, {-0.482293,0.888983}, {0.433545,0.021292}, {0.395731,-0.152964}, {-0.127526,0.629495}, {0.948778,0.420625}, {0.080788,0.918771}, {-0.601768,-0.511523}, {0.056685,-0.188264}, {0.077067,-0.297327}, {0.362971,-0.552698}, {0.500014,-0.566048}, {0.681482,0.264552}, {-0.610054,-0.646848}, {0.265600,0.541288}, {0.026679,0.942537}, {-1.762192,-0.407303}, {-0.902743,-0.036230}, {0.474591,-0.525614}, {0.067020,-0.220233}, {-0.618935,0.644017}, {-0.247249,0.460334}, {0.455640,-0.078102}, {0.204557,0.186035}, {-0.502683,-0.745109}, {0.603414,2.160750}, {0.949033,-0.309626}, {0.143544,-0.468590}, {-1.617425,-0.599765}, {-0.338967,0.795837}, {-0.575392,0.117471}, {1.113309,0.741864}, {0.491207,-1.773106}, {-0.796479,-1.166586}, {1.776758,-0.487393}, {0.665706,-0.686534}, {-0.733067,0.665936}, {-1.191914,-0.753852}, {-0.861479,-0.028041}, {0.528864,0.362282}, {0.372907,-0.759873}, {-0.326107,-0.368006}, {1.034767,-0.488401}, {-0.020672,0.121155}, {-0.763290,-0.252682}, {-0.581453,0.977660}, {-0.422611,0.734330}, {0.410968,-0.697525}, {0.256227,0.884536}, {-0.271733,0.028247}, {-0.553155,0.558822}, {0.591687,0.681808}, {-0.295964,-0.252254}, {-0.861694,0.270864}, {-0.212098,0.137016}, {0.563568,0.156760}, {-0.959209,-0.885105}, {1.242799,-0.806484}, {-1.749964,0.424195}, {-0.811421,0.090595}, {-1.270889,0.077082}, {-0.507043,0.606896}, {-0.573533,0.304032}, {-0.073649,1.058108}, {0.042070,-0.145220}, {-0.668327,1.142738}, {0.669062,-0.322129}, {0.021137,-0.503492}, {-0.193499,0.358862}, {-0.508566,0.260507}, {0.084811,-0.605995}, {1.557960,-1.120053}, {1.643320,-0.421612}, {-0.480576,-0.823660}, {0.231449,0.151004}, {0.398016,0.209073}, {0.045075,0.672618}, {-0.008618,0.247177}, {-1.053566,0.352608}, {0.116426,1.141890}, {0.792719,-0.667965}, {0.331232,1.168582}, {-0.196787,0.038326}, {-1.109405,0.145585}, {0.925101,-0.146615}, {0.420151,-0.522343}, {-0.006697,0.762735}, {-0.508807,-0.069119}, {0.925127,0.708615}, {-0.110840,-0.048132}, {-0.364342,0.472781}, {-0.885346,1.332877}, {-0.247386,1.012912}, {-1.386080,0.289459}, {0.225626,-1.466751}, {-0.274328,-0.634428}, {0.221469,0.108111}, {-0.288359,0.596638}, {0.406563,-1.159590}, {-0.781803,0.171775}, {-0.266993,1.093298}, {0.188762,-0.887276}, {-1.385732,0.271974}, {-0.535123,-0.445177}, {-0.405735,0.672560}, {0.184163,0.241237}, {0.218489,-0.629709}, {-0.080616,0.521363}, {-0.263647,-1.969656}, {-0.000105,-1.140732}, {0.345163,0.238108}, {-0.724603,-0.973090}, {0.166771,2.574467}, {-0.442168,-0.073635}, {0.087945,0.845359}, {0.179795,-0.061662}, {-0.317741,-0.537081}, {-0.444731,-0.240390}, {0.451603,-0.608631}, {0.311307,-1.277915}, {-1.138521,0.364751}, {0.634037,-0.538308}, {0.336605,-0.705948}, {0.112277,0.892130}, {-1.254259,0.041164}, {-0.032781,1.144167}, {-0.022324,0.649488}, {-0.344520,-1.047174}, {0.317010,-0.433506}, {0.814095,-0.340343}, {0.022872,0.077959}, {0.249692,0.224696}, {1.305443,0.613798}, {-0.581707,0.071940}, {-0.258272,-1.904325}, {0.601451,-0.060804}, {-0.118601,0.938334}, {0.303851,0.393623}, {0.736692,-0.211060}, {-0.272122,-0.490145}, {0.222637,-0.021387}, {-0.311633,0.735060}, {-0.199568,0.759139}, {-1.013715,-0.780787}, {-1.135842,-0.735749}, {0.387608,0.235686}, {0.083913,-0.711059}, {0.163113,-0.233968}, {0.180869,-1.193578}, {-0.541856,0.511090}, {0.718738,-0.971796}, {0.918659,-0.884243}, {0.235544,-1.235024}, {0.685277,0.219639}, {0.854647,-0.421738}, {-0.028494,-0.255750}, {-0.526021,-0.508404}, {-0.492737,-0.753063}, {0.462732,-0.859153}, {-0.133400,0.676276}, {0.450487,0.025040}, {-0.561239,0.571686}, {-0.642541,-0.609117}, {1.075468,-0.169765}, {0.574631,-0.097372}, {0.338229,-0.024071}, {-0.525317,0.025844}, {0.487080,0.416213}, {-1.007587,-0.270080}, {0.343576,-1.099756}, {-0.699170,0.043134}, {-1.044511,0.757733}, {-0.575676,-0.749373}, {0.305846,-0.161683}, {0.811672,0.079546}, {-0.192293,0.436743}, {-0.693445,-0.830657}, {0.968077,1.051416}, {-0.769386,-1.502744}, {-0.255967,-1.803842}, {-0.470924,-0.998421}, {-0.824508,-1.845973}, {0.045837,-0.401762}, {0.360613,0.910411}, {-0.337096,-0.237348}, {-0.484460,0.113391}, {0.305826,-0.010794}, {0.147090,0.500318}, {0.225740,-0.205529}, {-1.264348,-0.329185}, {-1.194871,-0.957492}, {0.650858,-0.758139}, {-1.280834,0.080681}, {0.625022,-0.858635}, {1.711320,0.093822}, {-1.151505,0.996810}, {1.790324,0.687198}, {0.656644,1.704101}, {-0.376292,-0.352113}, {-0.126730,0.661884}, {0.252564,-0.254102}, {-0.661905,1.131852}, {-0.368894,0.146481}, {-0.798706,-1.083358}, {-0.454165,1.240990}, {-0.039095,-0.119828}, {0.632847,-0.423721}, {-0.380750,-0.363220}, {-0.262391,-0.622616}, {-0.859738,0.564480}, {-0.750698,0.139456}, {0.947125,0.430152}, {0.677915,0.729907}, {-0.239181,0.435498}, {0.466691,-0.384876}, {0.532654,-0.083163}, {0.542034,0.653067}, {0.208817,-0.330605}, {-0.130409,0.034659}, {-2.320815,-0.033099}, {0.871427,0.273985}, {0.194936,1.108967}, {-0.285382,0.345010}, {1.195251,1.573778}, {0.713952,1.087552}, {-0.415100,0.517458}, {1.196398,0.021875}, {0.802508,1.907587}, {0.299614,-0.173952}, {-0.608050,-0.581877}, {0.977775,0.565290}, {-0.192386,0.145355}, {-0.665472,0.535100}, {-0.151025,0.022383}, {-0.250835,0.788190}, {0.764801,0.467007}, {0.298350,-1.467544}, {-0.017556,-1.063610}, {1.562445,-0.529165}, {-0.520377,0.378911}, {0.058748,1.831556}, {-1.071124,0.601172}, {-0.878448,-0.254107}, {-0.154485,-0.985552}, {-0.887400,0.327273}, {-0.705357,-1.472086}, {-0.740599,-0.067128}, {0.711410,-1.034293}, {-0.333938,0.630428}, {1.278035,0.397289}, {0.210056,-0.257437}, {-0.585602,-0.005302}, {0.203850,0.195065}, {-1.060016,0.172660}, {0.771525,-0.917467}, {-0.723919,-0.412679}, {0.232786,-0.197431}, {1.194496,-0.581625}, {1.340972,0.360705}, {0.975104,0.097678}, {1.133589,0.133129}, {-0.298991,0.302132}, {-0.784508,-0.922366}, {0.322948,-0.119337}, {0.110163,-0.145440}, {1.574654,0.287009}, {-0.189796,-0.018106}, {-0.174887,-0.498104}, {-0.080131,-0.165148}, {-0.657113,0.318723}, {-0.433595,0.705876}, {0.857977,-0.158599}, {-0.482497,0.036595}, {-0.576244,-0.193566}, {0.296959,-0.488391}, {0.405842,-0.070404}, {0.590507,0.533184}, {0.587150,1.314828}, {-0.211139,-1.292577}, {-1.010083,-0.313106}, {-0.863307,0.569579}, {0.997553,-0.971260}, {0.472407,1.098185}, {-1.119245,-1.232905}, {0.618522,1.245082}, {-0.262763,-0.278210}, {-0.105775,0.170132}, {1.269669,-0.240590}, {0.170976,0.601526}, {0.188523,-0.015175}, {-1.326050,1.007456}, {-0.090769,0.040268}, {0.418566,0.135730}, {-0.182901,0.036998}, {-0.333515,0.424837}, {0.428316,0.383354}, {-0.794054,-0.779979}, {0.263906,0.439720}, {0.162836,0.989119}, {-0.071999,0.354381}, {-0.291458,-0.020139}, {0.449140,0.931136}, {-0.694063,-0.246796}, {-0.862572,0.091815}, {0.028864,-0.095157}, {0.724161,0.223737}, {0.047003,1.150192}, {-1.174734,-0.534178}, {0.591572,-0.393347}, {-0.219495,0.747091}, {-0.136702,-0.163781}, {-1.060912,0.069882}, {0.029668,0.042101}, {0.131750,0.093846}, {0.871290,1.182361}, {1.253828,0.378833}, {1.186058,-1.172422}, {-0.063604,0.553535}, {1.002073,-0.209174}, {0.444720,-0.729126}, {-0.206357,0.032391}, {-0.700775,-0.526320}, {-0.737105,0.314376}, {0.592877,0.135543}, {-0.663426,0.630024}, {1.260741,0.446146}, {-0.705061,-1.146632}, {0.428181,0.432223}, {-0.213335,0.151536}, {0.520582,0.924886}, {0.577738,-0.057536}, {-0.751351,1.533813}, {-0.156074,0.562951}, {0.046758,-0.037720}, {-0.217340,0.168171}, {0.241340,0.494540}, {0.506104,-0.317633}, {-0.655820,0.567359}, {0.480759,-1.112311}, {0.386474,-1.201118}, {-1.449230,-0.518502}, {-0.706211,0.406803}, {-1.560129,-0.422456}, {-0.077915,-0.197029}, {-1.004173,-0.827722}, {0.500350,1.832784}, {1.097967,-0.612166}, {-0.131651,0.635959}, {-0.049192,0.986648}, {0.349039,0.570957}, {-0.171897,-0.308825}, {-1.215161,-0.958771}, {0.571949,0.628435}, {0.729169,0.139248}, {0.709536,0.696363}, {0.097966,0.586873}, {0.397300,0.024276}, {0.236370,0.090813}, {0.514880,0.171434}, {0.793476,-0.258985}, {-0.515502,-0.496673}, {0.473964,0.129542}, {-0.354065,-0.227705}, {0.656057,0.340024}, {-0.176111,0.646745}, {0.688527,0.624363}, {-0.533171,-0.007906}, {-1.490044,-0.019393}, {0.062044,0.744611}, {0.830698,-0.386727}, {-0.110515,0.456228}, {1.417382,-0.674755}, {0.459868,0.925687}, {-0.836631,0.488354}, {-0.019731,-0.693838}, {1.289891,-0.627465}, {0.055161,-0.256309}, {0.468467,-0.780689}, {0.717432,-0.802497}, {-0.085141,-0.309899}, {0.930132,0.556225}, {0.405997,-0.271818}, {-0.768176,-0.288646}, {0.100647,0.538259}, {0.907866,0.140152}, {-0.368110,-0.402555}, {-0.228629,-0.940188}, {-0.569401,0.233255}, {-1.022570,0.000617}, {-0.324842,0.052006}, {-0.269973,0.777187}, {-0.035408,-0.139996}, {0.473745,0.160440}, {-1.354914,-0.289104}, {-0.475516,-0.054631}, {-0.041168,-0.128649}, {0.427951,-0.409020}, {1.363959,-0.447370}, {-0.703075,1.016340}, {-0.075306,-0.369703}, {0.230086,-0.722273}, {1.792416,-0.645114}, {-0.093824,-0.242755}, {-1.292877,-1.080529}, {1.196220,0.155053}, {0.173557,-0.177454}, {-0.634131,-0.976788}, {-0.379141,0.884947}, {-0.536256,0.697163}, {0.552100,-0.096580}, {-0.696552,0.923878}, {0.118458,0.110518}, {-0.582715,-0.173407}, {-0.956599,1.799081}, {-0.843667,-0.384598}, {0.764067,-0.865968}, {1.000620,-0.160073}, {0.953401,1.628974}, {-0.888514,-0.891334}, {-0.680686,0.247835}, {-0.754843,0.258330}, {-0.675973,0.394557}, {-0.190745,0.303396}, {-0.170964,1.405210}, {0.926068,-0.197468}, {0.672418,0.927374}, {0.197025,-0.069306}, {0.354251,-0.267216}, {0.290035,-0.073490}, {0.110947,0.354887}, {0.443680,-0.098480}, {-0.294424,0.866491}, {-0.841475,-0.422685}, {0.266968,0.062065}, {1.515674,-0.060925}, {0.176005,0.140636}, {0.404577,-0.509459}, {0.515552,0.061269}, {0.853981,-0.954393}, {1.019148,-1.441008}, {0.163838,0.376008}, {0.288430,0.184545}, {0.067683,1.030477}, {-0.499583,0.343582}, {0.009995,-0.042159}, {-0.621239,1.076062}, {-0.939004,0.349109}, {0.798145,0.400775}, {0.435127,0.287123}, {0.202232,-0.459503}, {-0.115217,-0.562763}, {0.415476,-0.178029}, {1.158389,1.432155}, {0.936251,-0.718354}, {0.848607,-0.413887}, {0.391567,-0.379341}, {-0.299960,0.021999}, {-0.500304,-0.145804}, {0.809236,0.749736}, {0.827454,0.361110}, {0.433617,-1.060374}, {0.897989,0.043762}, {-1.028161,0.704788}, {-0.194029,-0.081497}, {0.651930,-0.779738}, {-0.210318,0.138924}, {-0.224011,-0.719656}, {-0.690712,-0.403295}, {-0.421069,0.703604}, {-0.492768,-0.402452}, {-0.811297,0.602505}, {-1.785654,0.521719}, {0.587757,-0.400209}, {0.043330,-0.684632}, {0.384072,1.455485}, {1.259714,0.400161}, {0.761448,0.079450}, {-0.053741,-0.471277}, {0.412257,0.180934}, {0.519025,-0.912317}, {1.338382,-1.089903}, {-0.120862,1.387350}, {0.046935,1.216046}, {0.078641,0.418476}, {-0.826729,-0.603339}, {-1.169826,-0.905686}, {-0.319044,-0.337864}, {-0.000338,-0.036139}, {-0.070890,0.167189}, {-0.364559,-0.483024}, {-0.845227,0.663173}, {-0.358604,0.991618}, {-0.544255,0.196842}, {1.734390,0.066961}, {0.304854,-0.438655}, {0.570055,1.368692}, {0.680056,0.502049}, {1.473820,-0.240434}, {0.143943,0.150471}, {-0.601375,1.462794}, {-0.130329,0.130809}, {-0.816240,-0.613083}, {-0.363673,0.906229}, {-0.137845,0.310958}, {0.028385,0.813332}, {0.797503,-1.224658}, {0.193431,-0.529715}, {-0.088177,-0.203006}, {-0.475714,-0.792887}, {0.226096,-0.128947}, {0.184089,-0.068373}, {0.887181,0.224031}, {-0.216778,0.056027}, {-1.168135,-0.932106}, {0.564475,-0.495475}, {-0.673622,1.542024}, {-0.610914,-0.581747}, {-0.089544,-0.439327}, {0.714516,-0.660308}, {1.223961,-0.522664}, {0.661751,-0.105839}, {-0.630532,-0.064537}, {-1.161529,1.098738}, {-0.427223,-0.021232}, {-0.026751,0.416435}, {0.362154,-0.386305}, {0.208456,0.633020}, {0.045405,1.111140}, {1.425449,-1.110883}, {0.707444,0.651275}, {-0.500077,0.697821}, {0.203707,0.456913}, {-0.853159,1.120343}, {0.834138,-1.031290}, {0.617247,-0.697880}, {-0.043978,-0.182348}, {0.543946,-0.336939}, {-0.357450,-0.588382}, {0.063896,0.467717}, {-1.005923,0.946648}, {0.848093,0.260463}, {-0.603198,0.472919}, {0.824311,1.081034}, {-1.794170,-0.412169}, {-1.188588,-0.303771}, {-0.599378,-0.512405}, {-0.764410,0.839242}, {-1.630732,-1.206763}, {0.475393,1.662433}, {0.287510,0.340842}, {-0.361590,-0.457253}, {0.259458,0.427517}, {-0.962593,-0.157040}, {-1.043433,0.709428}, {-0.124816,0.350705}, {-1.784117,-0.277703}, {-0.816757,0.881473}, {1.130899,0.072276}, {0.508338,-0.545349}, {0.248984,-1.013667}, {0.303921,-0.296289}, {0.907752,-0.325327}, {-0.706874,-0.148790}, {-1.511246,-1.230174}, {-0.034105,1.186995}, {0.791315,-0.061800}, {-0.115356,-0.013607}, {0.614068,-0.643597}, {-1.434752,-0.837895}, {-0.262646,-0.486002}, {0.425083,-1.154407}, {-0.888865,0.643359}, {0.354696,-0.522025}, {0.516178,-0.483834}, {-0.383349,-0.393546}, {0.627820,1.304975}, {-1.536539,0.297887}, {0.522986,-0.438700}, {0.570505,0.136875}, {1.225639,0.726921}, {0.046321,0.004620}, {-0.978947,0.165502}, {0.673976,0.355861}, {-0.565507,0.154310}, {0.184185,0.636983}, {0.669884,0.339459}, {-0.272178,0.155650}, {0.946849,-0.018712}, {1.554380,-0.573908}, {-1.650752,-0.797470}, {0.149065,-0.449614}, {0.000874,0.687892}, {-0.496167,-0.407806}, {-0.311445,-0.715590}, {-0.129442,0.092998}, {1.038462,1.427624}, {0.969798,-0.841165}, {-0.638606,0.246169}, {-0.007508,-0.280498}, {0.113839,-0.195910}, {1.042036,0.726260}, {-0.200482,0.235256}, {-0.406369,-0.249998}, {0.286145,-1.006218}, {0.210969,0.512718}, {-0.859586,-0.839554}, {0.139226,0.146909}, {0.695305,-0.442922}, {-0.681479,0.678879}, {0.573686,0.732063}, {0.409687,-0.487551}, {-0.740833,0.407906}, {-0.627461,-0.094149}, {0.717096,-0.324215}, {-1.040547,0.209955}, {0.390960,0.716126}, {0.087138,0.229283}, {-0.453888,-0.488261}, {-0.309646,-0.346751}, {-0.129650,0.732543}, {-0.170771,0.525447}, {0.514311,0.262524}, {0.791326,-1.098801}, {0.026081,-0.432545}, {0.695147,0.619485}, {-0.160913,-0.305334}, {-0.388194,0.428275}, {-0.857131,0.383539}, {-0.127692,-0.568071}, {-0.153925,-1.205867}, {-0.131234,-0.794515}, {0.509942,0.661891}, {-0.411283,-0.325822}, {-0.557037,0.549357}, {0.276122,-0.018714}, {-0.459507,0.586174}, {0.946074,0.411524}, {-0.517742,-0.440520}, {0.518675,-0.707372}, {0.346846,-0.672055}, {0.552754,1.465565}, {-0.084615,0.414643}, {0.452343,-0.941522}, {0.346356,0.291833}, {-0.280410,1.026607}, {0.938494,-0.769506}, {-0.559070,-0.210613}, {-1.005965,1.379425}, {1.003043,-1.111699}, {-0.675980,-0.769700}, {0.000281,1.375752}, {0.304516,-1.251364}, {-0.821937,-0.484556}, {-0.859102,-1.335838}, {0.058085,-0.346139}, {0.003970,-0.523620}, {-0.142542,0.689615}, {-0.916600,0.902236}, {0.486899,0.086527}, {-0.428760,0.270439}, {0.358628,-0.635933}, {-0.564581,-0.585300}, {0.873809,0.369030}, {-0.178501,0.513622}, {1.498494,0.604123}, {-0.119000,0.391230}, {-0.893021,-0.149327}, {-1.342297,-1.126706}, {0.373536,0.861215}, {0.256534,1.148103}, {0.899039,-0.560694}, {0.054489,0.862495}, {-0.293322,-0.433164}, {-0.232534,-0.152667}, {0.571215,-0.491188}, {0.200082,1.008588}, {-0.535039,-0.070187}, {-0.374009,-0.006474}, {0.968621,-1.673820}, {-0.250826,-0.592453}, {-0.768210,-1.143156}, {0.506240,0.456245}, {0.517084,-0.666774}, {0.212136,-0.465469}, {1.318910,-0.330234}, {0.021991,0.039870}, {-0.393252,0.086292}, {0.707893,-0.244737}, {0.499235,-0.784132}, {0.007350,-0.371172}, {1.522063,0.906834}, {-0.242588,-1.852291}, {0.221807,-0.033887}, {0.323357,0.072972}, {0.960496,0.074214}, {0.760485,-0.415787}, {1.011444,-1.408695}, {-0.765112,0.167737}, {0.051886,0.271979}, {-0.082595,0.361773}, {0.870305,0.283143}, {0.225699,0.608936}, {-1.312811,-0.998105}, {-0.653488,0.900398}, {-1.438955,0.084821}, {-0.412878,-0.723466}, {-0.272037,0.361482}, {-0.694861,0.082223}, {0.850862,1.180117}, {-0.283139,0.336570}, {-0.271481,0.069012}, {-0.029517,-1.101000}, {0.634905,-0.821237}, {0.149412,-0.139163}, {-0.484147,0.270160}, {-0.761418,0.079378}, {-0.072847,0.937568}, {-1.307853,-1.009845}, {0.297282,0.648821}, {-0.091781,-1.985271}, {-0.606219,0.151353}, {-0.429607,-0.025052}, {-0.332890,1.175599}, {-1.118603,0.141680}, {-0.097394,-0.858219}, {0.016748,0.173787}, {0.499711,0.334283}, {0.294804,-0.100448}, {-0.226681,1.320937}, {0.445101,-0.020208}, {0.298761,0.661325}, {0.366419,0.625208}, {-0.610404,-0.402482}, {-0.196988,-1.143042}, {-0.140385,-0.419017}, {0.112807,0.888080}, {0.266033,0.057014}, {-0.728926,-0.934920}, {-0.140320,-0.094250}, {1.177336,-0.396966}, {0.420952,0.653529}, {0.796815,0.416470}, {0.811086,-0.565463}, {0.367195,0.333449}, {-0.400751,1.975824}, {1.216133,-0.533538}, {-0.061920,-0.453391}, {-0.711951,-0.449488}, {-0.102566,-0.455585}, {0.285088,-0.802786}, {0.808552,-0.322926}, {-0.602289,0.632072}, {-0.661576,-1.758596}, {-0.146488,-0.548057}, {-0.206403,-0.017511}, {-0.450221,-1.498859}, {0.932314,-1.134894}, {0.656476,0.145769}, {0.235734,0.094820}, {-0.722074,0.001788}, {-0.957129,0.829923}, {-1.219129,-0.094515}, {0.433577,0.505638}, {0.667379,-0.080276}, {-0.481288,-0.154287}, {0.832150,0.696951}, {0.845959,0.070575}, {0.511181,-0.543340}, {1.404294,0.382848}, {0.652795,-0.156181}, {-0.114089,-0.125219}, {0.105672,-0.192649}, {1.581463,-0.060738}, {1.179013,0.318857}, {-0.514448,-0.186117}, {-0.004286,0.388816}, {0.553462,1.141917}, {-0.108260,-0.709488}, {0.366715,0.522898}, {1.011547,0.255626}, {0.510127,-0.556431}, {1.387465,-1.491813}, {-0.030602,0.643039}, {0.252861,0.370345}, {0.158032,-0.485250}, {1.505481,-0.401738}, {-0.425678,1.475448}, {0.558642,0.266556}, {-0.761068,-0.757845}, {-0.236187,0.096478}, {-0.299872,-1.335299}, {-1.133420,0.013509}, {0.020291,0.311569}, {0.852593,-0.665722}, {-0.523899,0.543296}, {-0.258387,0.397797}, {-1.620860,0.323925}, {1.104585,-1.383714}, {0.683798,0.260786}, {-1.928301,-0.180178}, {-1.028854,0.442835}, {0.657349,-0.494352}, {-0.277212,0.670959}, {-0.180849,0.531330}, {-1.227284,-0.792597}, {0.563598,-0.076574}, {-0.437456,0.229217}, {0.929340,0.015725}, {0.074666,0.424629}, {0.534245,-0.350823}, {0.389638,-0.082153}, {0.500066,-0.103981}, {0.517706,0.482821}, {-0.748255,1.069502}, {0.473974,-0.018833}, {0.395953,0.000067}, {0.154909,0.296848}, {0.200809,0.287738}, {-0.607075,-0.544885}, {-0.267287,0.616905}, {-0.323802,1.280877}, {0.255228,0.082953}, {0.888876,-0.780725}, {-1.507838,-0.628624}, {0.117847,0.741004}, {0.951439,2.158240}, {0.255605,-0.694650}, {0.403436,-0.019320}, {0.028617,-1.122894}, {-0.559034,-0.279798}, {-0.151086,1.482814}, {0.401004,-1.215030}, {-0.010857,-0.722506}, {-0.779211,0.186412}, {0.839532,0.388371}, {-0.519503,-0.769165}, {0.886356,-0.068777}, {-0.666874,0.232912}, {-0.769333,0.407110}, {-0.156172,0.626609}, {-0.845403,0.246838}, {-0.921500,-1.513649}, {-0.659432,-0.352143}, {-0.456287,0.822831}, {-0.264057,0.594756}, {-0.381242,0.749825}, {0.584222,-0.010185}, {0.717621,0.407810}, {0.126997,0.610555}, {0.121083,-0.601804}, {0.338280,-1.296916}, {-0.998988,0.202698}, {0.271413,0.241189}, {-0.660860,-0.922695}, {0.217074,0.091244}, {-0.829182,-0.173802}, {-1.686936,0.133783}, {0.085111,-1.036699}, {-0.835207,-0.547288}, {-1.001460,0.163306}, {-0.009840,-0.897352}, {-0.221570,0.248621}, {-0.104666,-0.544456}, {0.492826,1.224533}, {-0.303816,0.203433}, {-0.035890,-0.396120}, {-0.911609,0.154966}, {-0.477369,-0.149520}, {0.829666,0.383750}, {0.288714,-0.400195}, {0.825822,1.060236}, {-0.565369,0.570078}, {0.725772,0.524669}, {-1.427359,0.510741}, {0.185095,0.075540}, {0.123475,-0.291902}, {0.273887,-0.125613}, {-0.173428,1.043319}, {0.321986,0.197724}, {-0.846527,-0.708152}, {0.008510,-0.342922}, {0.627415,-0.580544}, {0.845050,1.241589}, {0.585281,0.461177}, {0.359324,-0.420843}, {0.049152,1.106094}, {0.581734,-0.166265}, {0.003368,1.019929}, {1.025792,-0.545836}, {-0.566680,0.838736}, {0.217046,-0.554830}, {0.746989,0.330831}, {-0.477775,-1.838477}, {1.209384,0.537204}, {0.084745,-0.402040}, {0.453664,0.663259}, {-0.949609,0.481791}, {-1.018870,0.244091}, {-0.100135,-0.408291}, {0.145723,-0.390015}, {0.591639,-0.187299}, {-0.072565,0.022234}, {-0.090558,0.900594}, {-0.115991,-1.076001}, {-0.047715,0.945083}, {-0.153139,1.232195}, {0.395757,-0.137489}, {0.500312,-0.165208}, {-0.446434,-1.255448}, {0.744826,0.719971}, {0.101905,0.317928}, {-1.113815,1.181345}, {-0.826383,-0.342046}, {0.698280,-0.256223}, {-0.376007,0.253217}, {-0.351381,-0.465508}, {0.347951,0.252016}, {1.060703,-0.456476}, {-0.487386,1.010946}, {0.082913,1.363434}, {0.144076,0.505970}, {0.788440,0.349740}, {0.359451,0.412744}, {-0.133783,0.371278}, {0.132375,0.736016}, {0.675589,-0.281074}, {1.388233,0.041104}, {-0.111974,-0.788585}, {-0.719106,0.429423}, {0.285667,0.906691}, {-0.412522,-0.263860}, {-0.379611,-1.850579}, {-0.882381,0.633164}, {-0.350683,0.326832}, {0.113319,0.299109}, {0.030724,-0.533961}, {-0.229546,1.599082}, {0.791774,0.219618}, {-0.083769,-0.825250}, {-0.250508,0.384164}, {1.622536,0.627566}, {0.269926,1.457477}, {0.027500,0.077387}, {-0.040952,-0.869704}, {0.249097,0.799744}, {-0.855749,-1.207818}, {0.031174,0.232988}, {0.470634,-0.176486}, {-1.322606,-0.574727}, {0.618473,-1.051757}, {0.044093,-1.194452}, {-0.856825,-0.363124}, {-0.740040,0.491909}, {1.049228,-0.383126}, {0.269759,-0.756658}, {0.411827,-0.187708}, {-0.021801,-0.730890}, {-0.338874,-0.436049}, {0.439729,-0.211741}, {-0.464913,0.405662}, {0.813909,1.691059}, {-0.432949,-0.328759}, {0.016182,0.617470}, {-0.000084,-0.630506}, {1.013115,0.113926}, {1.045430,-0.431612}, {-0.149045,-0.540305}, {-0.168907,1.023595}, {-0.681722,-0.870885}, {0.148709,-0.519793}, {0.083637,-0.233137}, {-0.006738,-0.358652}, {-1.132096,-0.196676}, {0.755618,-0.630740}, {1.172062,0.331256}, {-0.074557,-1.505289}, {1.261753,-0.254490}, {0.432557,-0.043824}, {0.233409,-0.174214}, {0.046213,0.259837}, {-0.956389,0.034619}, {0.336500,0.085573}, {1.029807,-1.168944}, {0.148733,-0.666186}, {0.504364,0.591615}, {-0.244863,-0.431764}, {-1.287166,-0.010764}, {0.206851,-1.199483}, {-1.130227,-0.926562}, {0.045319,-0.640907}, {1.744857,0.365060}, {-0.337659,0.254251}, {-1.241628,0.474563}, {-0.098000,0.043348}, {0.135789,0.720002}, {0.079954,-0.567468}, {0.209679,0.580221}, {0.129076,-0.638995}, {-0.259201,0.098160}, {0.684000,0.742712}, {-1.058322,1.121174}, {-1.133869,-0.077823}, {-0.786057,-0.192047}, {0.043596,-0.730099}, {-0.468971,-0.508530}, {-0.166478,0.964301}, {-0.421994,0.534392}, {0.801013,0.327796}, {0.626465,-0.857809}, {-0.316640,0.963254}, {-0.686444,-0.349580}, {-0.411887,0.006307}, {-0.044218,-0.684096}, {1.448337,-0.256645}, {0.224336,-0.436483}, {0.025337,-0.347815}, {-0.407366,0.419951}, {-0.132820,0.348857}, {0.371735,-0.864264}, {0.086483,-0.338426}, {0.585107,0.270821}, {0.326869,0.548646}, {-0.326146,-0.463299}, {1.143470,-0.087656}, {-0.098858,1.246934}, {-0.036904,0.191940}, {0.287535,-0.291944}, {0.369159,0.063018}, {-1.317075,-0.193187}, {0.378189,0.176271}, {0.856049,-0.716794}, {0.077633,0.519224}, {-0.699016,-0.029019}, {0.295033,0.961106}, {0.197367,0.762655}, {0.114262,-0.106428}, {0.589365,-0.677044}, {-0.241511,0.228210}, {-0.430454,-0.895877}, {0.702252,0.370365}, {1.742418,-0.318825}, {0.735371,-0.917391}, {0.798335,-0.370615}, {-0.537492,0.369018}, {1.236422,0.065891}, {-0.266399,-0.351783}, {0.423548,0.165331}, {0.077228,0.536433}, {-0.174825,0.148350}, {0.199017,-0.554067}, {-0.965766,-0.545608}, {0.554513,0.053499}, {0.037865,0.091226}, {0.586746,0.403764}, {1.063461,-0.711465}, {0.627927,0.180048}, {1.849318,0.366474}, {-0.787943,-0.066363}, {-0.225401,0.838693}, {0.780419,1.099950}, {-0.583530,-0.334410}, {0.435296,-0.110910}, {-0.395316,0.522476}, {-0.296867,1.030867}, {0.180194,0.365723}, {-0.565612,0.105022}, {-0.071050,-0.637618}, {1.036443,1.254893}, {-0.357016,0.150407}, {-0.105283,0.193076}, {0.137034,0.727374}, {0.395267,-0.224436}, {-0.148716,0.241524}, {-0.185222,0.387931}, {1.193605,-0.847551}, {0.250426,-0.707717}, {0.140128,-0.294992}, {0.023456,0.023879}, {0.557191,-1.088329}, {-0.705496,-0.351205}, {0.706976,1.287748}, {0.207298,-0.734820}, {0.124706,0.189566}, {0.797376,1.215020}, {-0.329404,-0.576281}, {0.648951,0.195529}, {-0.597548,0.519029}, {0.212921,0.436097}, {-0.330959,0.311842}, {-2.163917,-0.881882}, {-1.070369,0.664018}, {0.473269,-0.101973}, {0.378465,-0.822488}, {1.361181,0.418143}, {-1.012859,-0.712103}, {0.870152,-1.346827}, {0.653007,-0.617410}, {0.497337,-0.775725}, {-0.260237,0.259267}, {-0.743430,-0.591395}, {-0.674841,-0.191339}, {-0.584851,-0.214106}, {0.225244,0.160024}, {1.161423,0.256300}, {-1.640086,-0.242275}, {-0.180871,-0.679693}, {-1.243241,-0.228350}, {0.599251,0.947940}, {1.146590,-0.156590}, {-0.647330,0.051065}, {1.949584,-0.583944}, {-0.242692,1.238130}, {0.039443,0.740763}, {-1.458523,0.089037}, {-0.153975,-0.381741}, {-0.317357,-0.610750}, {0.237125,1.346517}, {-0.201768,0.320696}, {0.606654,1.023548}, {0.810015,0.801355}, {-0.870015,0.018496}, {0.005406,0.866319}, {-0.020676,-0.167982}, {-0.341657,0.564725}, {-0.720214,-0.704252}, {0.656031,-0.457047}, {0.070486,0.044186}, {-0.170715,-0.739585}, {0.184302,-1.788002}, {0.715592,-0.376628}, {-0.363081,-0.119088}, {-0.100914,0.119614}, {0.005834,-0.268860}, {-0.129771,0.331506}, {0.143287,-0.198036}, {-0.304611,0.217426}, {-0.594381,-0.825000}, {-0.365556,-0.258829}, {-0.214172,1.162243}, {-1.194364,0.810341}, {-0.325733,-0.570507}, {-0.614001,-0.663556}, {0.118437,-0.291858}, {0.502611,-0.601088}, {0.659081,-0.217369}, {-0.446278,-0.786148}, {0.022241,0.272441}, {0.590431,0.909812}, {-0.505353,0.055519}, {-1.032100,-0.102485}, {0.514653,0.094284}, {0.017452,-0.117900}, {-0.434090,-0.360114}, {-0.795938,0.951701}, {1.526127,-0.592844}, {-0.389825,-0.453072}, {0.384166,-1.012017}, {1.182901,-0.350927}, {-0.650756,-0.215167}, {-0.920064,0.382095}, {0.325262,0.053581}, {-0.367365,-0.250609}, {-0.792805,-0.159176}, {0.364886,1.149926}, {-0.952999,-0.523706}, {-0.590878,-0.928414}, {1.302134,0.020920}, {0.271231,1.409444}, {-0.421610,0.925520}, {1.193167,0.706521}, {-0.333416,0.336865}, {0.018979,0.278195}, {0.454613,0.518481}, {-0.039562,-0.760878}, {0.452849,0.034856}, {-0.363828,-0.532211}, {-0.120648,0.354305}, {0.124415,0.897220}, {0.079466,-0.085179}, {0.550458,0.796151}, {0.118218,0.662074}, {-0.355235,-0.199056}, {0.436312,0.191719}, {1.566220,-0.116118}, {-0.836157,-0.768313}, {1.586808,0.178922}, {-0.280443,-0.468900}, {-0.326042,0.010218}, {0.566632,1.593287}, {1.012295,-1.739928}, {-0.076488,0.044391}, {0.483599,-0.125041}, {-1.492059,0.640508}, {-0.678092,-0.179653}, {-0.373386,-0.340247}, {-0.832028,0.600061}, {-0.567324,-1.027965}, {-0.083357,0.199339}, {-0.734433,0.929912}, {0.570454,0.573202}, {-0.365270,0.716633}, {-0.417190,-0.754130}, {-0.854980,-0.194668}, {-0.798654,-0.640999}, {-0.386871,0.854369}, {-0.317394,-0.378946}, {0.845760,-0.762026}, {-0.238503,0.628650}, {-0.476581,-1.193935}, {0.372842,0.363358}, {1.929276,0.425483}, {0.560945,-0.892123}, {0.832559,1.026749}, {0.332159,-0.899940}, {0.729769,-0.406694}, {1.773252,-1.453081}, {0.014471,0.518545}, {-0.032728,-0.153441}, {-0.418525,-0.263385}, {1.483183,1.053228}, {-1.108048,-0.126405}, {-0.882071,0.557002}, {-0.299469,0.621888}, {-1.390889,0.791123}, {0.087246,-0.444939}, {-0.971593,0.855966}, {0.288585,-1.387271}, {-0.019311,0.732536}, {0.575029,-0.900371}, {-0.849454,-0.021176}, {0.102055,0.741000}, {0.639938,0.250506}, {0.031515,-1.559311}, {0.184749,0.007297}, {-0.615292,0.150555}, {-1.045878,0.504486}, {0.648174,0.248709}, {-1.923251,-0.525706}, {-0.139883,-0.496519}, {-0.273595,0.733709}, {-0.554049,-0.638829}, {-0.388154,-0.721417}, {0.302342,-0.922345}, {0.301997,0.247964}, {0.783229,-0.118560}, {0.015568,-1.688273}, {-0.203951,-0.271846}, {-0.464304,-0.803130}, {0.788053,0.525790}, {-0.310437,0.810294}, {0.734484,-0.122955}, {0.078820,-0.755273}, {0.689406,0.380790}, {-0.879125,-0.800241}, {0.916797,-0.158671}, {-0.955580,0.370290}, {1.053886,0.183747}, {-1.024297,0.502801}, {0.821289,-0.323075}, {-0.197416,-0.199129}, {0.128673,-0.204273}, {-0.047906,0.532305}, {-0.332497,-0.459762}, {-0.921215,0.010891}, {-1.187693,0.237371}, {-0.907113,-1.114225}, {-0.391416,0.334680}, {0.484839,-0.022006}, {0.279699,-0.155898}, {0.232580,0.635441}, {0.442647,-0.512038}, {0.457949,-0.744347}, {-0.420994,-0.605339}, {0.607157,1.329146}, {-0.274663,0.330222}, {-0.146928,0.998094}, {0.634872,-0.085303}, {0.038862,0.137135}, {0.874375,0.481656}, {-0.078049,0.930253}, {0.211922,0.365963}, {-0.057426,-1.256802}, {-0.249915,0.102113}, {0.074635,0.926036}, {-0.919523,0.156604}, {0.321808,-0.463000}, {-0.336447,0.591209}, {0.069922,0.186182}, {-0.098125,0.286970}, {-0.945924,0.199885}, {1.251790,-0.588337}, {-0.103392,-0.063531}, {-1.495706,0.300232}, {0.161476,-0.532461}, {-0.229976,0.007762}, {0.102294,0.640865}, {-0.046165,-0.345694}, {0.152871,-0.139371}, {-0.621642,0.466272}, {0.502189,-0.429932}, {0.381534,0.850587}, {1.047882,0.364581}, {0.166650,-0.533360}, {-0.147243,0.870267}, {0.264328,-0.088269}, {0.241229,0.219450}, {-0.674579,0.991554}, {-0.952101,0.726952}, {0.000481,-0.050198}, {-0.237754,0.641076}, {-0.058228,-0.524298}, {1.097294,-0.979438}, {-1.219292,-0.095890}, {0.265504,-0.684968}, {-0.779660,0.555899}, {0.571050,-0.072841}, {0.669225,1.701574}, {-1.191487,0.111178}, {0.909199,0.891876}, {-0.395837,-0.258702}, {0.093876,-0.469630}, {-0.423132,0.835933}, {-0.273781,-0.809838}, {0.379980,0.848947}, {1.264064,-0.035597}, {-0.801897,0.295423}, {0.817880,-0.017036}, {-0.105681,0.855247}, {0.486284,-0.619853}, {-0.032531,0.489774}, {0.211010,0.529908}, {0.661884,2.635604}, {0.539633,1.054015}, {-0.523203,0.144841}, {0.642130,-0.062279}, {0.773169,-0.295494}, {1.236025,0.138371}, {-0.902266,-0.091117}, {0.126149,1.096640}, {-0.361577,0.548790}, {0.082879,-0.449861}, {-0.084813,1.095634}, {1.546048,1.536377}, {0.856924,0.635732}, {0.834506,0.824424}, {-0.021495,-0.526435}, {-0.838356,0.515902}, {-0.473372,-0.161548}, {-0.778314,1.424876}, {-0.230595,-0.748969}, {-1.592887,-0.737746}, {-0.938554,-0.530306}, {-1.572545,-0.791394}, {0.435546,-0.376083}, {0.525145,0.213393}, {0.367887,-1.044275}, {-0.719915,0.061255}, {0.304958,-0.204748}, {1.210495,-0.112141}, {-0.086723,0.129535}, {-1.281467,0.522155}, {-0.333647,-0.274983}, {-0.554049,0.413201}, {0.753145,0.891878}, {0.274075,-0.707382}, {-0.062669,0.788726}, {0.466273,-0.501215}, {0.024895,0.354051}, {0.798756,0.455852}, {-0.020206,-0.029112}, {0.339560,1.851831}, {0.152438,0.738243}, {0.183936,-0.781268}, {-0.103182,0.713654}, {0.875376,-0.483562}, {0.015320,-0.460793}, {0.060661,-0.643523}, {-2.264353,0.105116}, {-0.789343,0.615718}, {-0.243310,0.060137}, {1.699891,-0.863147}, {-0.512188,-0.107884}, {0.715462,-0.746962}, {-0.168059,0.396399}, {-1.855221,0.474742}, {1.117193,-0.177673}, {0.605124,0.264148}, {-0.158801,-0.269563}, {-0.026259,1.643594}, {-0.612630,-0.403823}, {-2.104756,1.120870}, {0.439319,-0.326207}, {-0.729839,-0.030055}, {-0.197924,-0.161142}, {0.859821,0.172257}, {-0.082605,1.518575}, {-1.076389,-1.744869}, {-0.219282,1.053450}, {-0.545467,0.263106}, {0.717580,-0.589610}, {-0.704720,-0.962831}, {0.404192,0.274100}, {-0.559766,-0.674194}, {-0.846818,1.766523}, {0.413603,0.183993}, {0.258588,0.447021}, {0.711449,-0.254685}, {-0.039759,0.029436}, {-0.128433,-0.269298}, {-1.025894,1.345869}, {-0.912975,0.052240}, {0.755264,-0.206240}, {0.044141,0.949915}, {-1.565117,-0.595266}, {0.200074,-1.417585}, {-0.158238,-0.081043}, {-0.503170,-0.078182}, {0.362525,-0.194696}, {0.259960,-0.907605}, {-0.105310,-1.933984}, {-0.899535,-0.440019}, {0.163533,0.065331}, {-0.571787,-1.130394}, {0.301250,-0.094735}, {0.104414,-1.423818}, {-0.146865,-0.198913}, {-0.497490,0.758248}, {0.466122,-0.416899}, {-0.940500,0.639487}, {-0.440392,0.809788}, {-2.223726,0.948796}, {-0.313709,1.585454}, {0.206535,-0.868710}, {0.910526,-1.174225}, {-0.495236,0.167135}, {-0.575404,0.007086}, {-0.255414,0.937178}, {-0.296419,-0.082039}, {1.002712,1.059056}, {-1.200725,1.009362}, {-1.031906,1.427611}, {0.064588,-0.744817}, {1.290310,0.659770}, {0.251141,-0.190253}, {-0.586866,-0.099783}, {1.514305,0.076462}, {-0.292877,-0.034932}, {0.086519,-1.537324}, {0.558554,-1.027847}, {0.016688,-0.294418}, {-0.464068,0.572870}, {-1.031390,0.702926}, {-0.993327,0.280797}, {0.407376,1.270542}, {-0.291421,-0.688110}, {0.842434,1.685884}, {-0.464356,-1.287623}, {0.680357,-0.473646}, {0.694717,0.571415}, {0.391202,-0.560555}, {-0.169632,-0.035731}, {-0.203948,0.790613}, {-0.670035,-0.264796}, {-0.090461,0.101945}, {-0.311617,0.481222}, {-0.344817,0.135445}, {-1.162870,0.142668}, {-0.487890,-0.544005}, {0.732853,0.690509}, {0.585005,-1.244755}, {0.503757,-0.316446}, {0.869989,-0.370224}, {0.351113,-0.041060}, {0.021720,-0.728370}, {-0.706755,-0.494790}, {-0.103364,-1.238782}, {-0.355559,-0.533147}, {0.166720,-0.864956}, {0.334983,0.100261}, {-0.848547,0.637065}, {-0.317559,0.657728}, {0.409242,0.262048}, {0.596688,0.826314}, {-0.458137,0.110997}, {-0.682732,-0.219886}, {-0.408569,0.043952}, {-0.320255,-1.596813}, {0.387040,-0.699110}, {0.198430,-0.538138}, {0.856802,-0.708255}, {0.756612,-0.653997}, {-0.356619,-0.562844}, {0.271806,1.194806}, {-0.175223,-1.368711}, {-0.153117,-0.398840}, {0.706898,-0.328442}, {0.034251,-0.107789}, {0.277096,0.757656}, {-0.144774,0.378035}, {-1.538711,0.603603}, {0.206118,0.430155}, {0.622510,0.173831}, {0.046042,0.058330}, {-0.577057,0.162875}, {0.685647,-0.647830}, {-0.910460,0.504792}, {-0.200849,-0.954877}, {0.475974,-0.438454}, {0.340606,0.030790}, {-0.278135,0.194854}, {0.707024,-0.623755}, {-0.091069,-2.189701}, {-0.273684,-0.897539}, {0.050275,0.334330}, {-1.301614,-0.241288}, {0.376532,1.392280}, {0.848500,0.658936}, {-0.354567,-0.729838}, {0.779270,-0.651632}, {-1.525730,0.876681}, {0.587723,-1.383307}, {-0.741497,0.254969}, {0.873264,0.197479}, {-0.480964,1.299430}, {-0.431708,0.130537}, {0.323680,-0.448970}, {-0.803705,-0.383630}, {0.259853,-0.171842}, {-0.074427,-1.423999}, {0.213413,-0.806918}, {0.319758,-0.629784}, {0.197369,-0.175039}, {0.374164,-2.020326}, {0.234205,0.212423}, {0.442106,-0.486910}, {-0.970864,0.312143}, {0.994610,0.634741}, {0.048931,0.205781}, {0.369340,-0.247351}, {-0.458195,0.094655}, {-0.853393,0.397950}, {-0.222113,-0.020140}, {0.855104,1.002182}, {-0.949021,0.731330}, {-0.073219,1.402526}, {-0.151223,-0.492186}, {-1.375457,-0.136411}, {-0.466811,0.022190}, {1.087376,0.106868}, {-0.744528,-0.413374}, {-0.342038,0.049102}, {-1.494273,-0.271438}, {-0.125528,0.601419}, {-0.111221,-0.380202}, {0.641612,0.273790}, {-0.883504,0.517323}, {-0.843544,0.433726}, {0.070544,0.613134}, {-1.407600,-0.044330}, {-0.492451,0.995879}, {0.983269,0.143963}, {0.221852,0.495000}, {-0.791657,0.614310}, {0.703727,-0.571992}, {-0.071284,0.875682}, {1.641568,-0.631850}, {-0.083871,0.250629}, {-0.229893,-1.203232}, {-0.382616,1.669525}, {0.486753,-1.096469}, {-0.599193,-0.121324}, {1.105338,0.376484}, {-0.433136,-0.568643}, {1.262118,0.303337}, {-0.180750,-0.251747}, {0.232196,0.634354}, {0.526905,0.692507}, {-0.416640,-0.134469}, {-0.945404,0.290901}, {1.452757,0.222601}, {-0.057791,-0.455470}, {-0.853629,-0.583719}, {-0.233342,0.161093}, {-0.968813,0.500752}, {-0.861537,0.075586}, {1.474493,-0.284338}, {-0.754792,0.807480}, {-0.643724,1.545286}, {-0.922333,-0.131210}, {-1.068958,-0.426784}, {-1.011546,0.020778}, {0.787292,0.193200}, {1.276891,0.812940}, {-0.001378,1.525040}, {-0.482745,0.059566}, {0.640762,-0.003003}, {-0.842820,-0.681972}, {-1.136885,1.104554}, {0.707249,0.574867}, {0.404579,0.578500}, {0.772682,0.950729}, {-0.758872,-0.442283}, {-0.134508,0.287088}, {-1.217763,-0.136208}, {0.067001,0.006883}, {-1.117236,-0.517592}, {1.074093,-1.371225}, {0.434892,-0.753326}, {-1.657469,-0.184451}, {-0.563524,0.887134}, {0.594674,-0.128692}, {-0.861165,0.393858}, {0.740365,-0.155010}, {-0.542431,-0.137020}, {-0.160958,0.367545}, {1.061826,-0.276971}, {-0.771112,0.145356}, {1.963119,0.088410}, {0.024542,0.144405}, {-1.161727,0.028527}, {-0.629890,-1.011632}, {-0.523735,0.451983}, {0.226956,-0.663835}, {-0.709942,0.411619}, {-0.862071,-0.723057}, {-0.430194,0.705340}, {0.489380,-0.913195}, {-0.913531,-0.125404}, {0.580276,-0.084090}, {-0.795566,0.423792}, {0.195894,-0.952419}, {0.206701,0.058895}, {0.343643,0.988757}, {0.111858,1.155224}, {-0.402678,0.396630}, {-0.085481,1.087237}, {-0.626447,0.384020}, {-1.545255,1.402500}, {-0.382681,1.101254}, {-0.570465,-0.881833}, {-0.067170,0.447168}, {-0.402078,-0.107883}, {-0.063022,1.237664}, {0.357641,-0.210884}, {0.173106,1.169455}, {0.371232,-0.555801}, {0.426061,1.683925}, {-0.862561,0.481593}, {-1.295345,0.677131}, {0.882575,-0.080920}, {1.076227,0.081224}, {0.217811,0.806447}, {0.642645,-0.244275}, {-0.137093,-0.322132}, {0.246084,-0.089603}, {0.827582,-0.845716}, {0.373640,-0.242160}, {-1.221390,0.390996}, {-0.147700,0.855458}, {-0.301463,-0.077718}, {-0.477683,-1.468176}, {-0.708449,0.284200}, {0.341767,1.177536}, {0.073596,-0.373099}, {-0.418003,0.011618}, {0.659790,0.501637}, {0.517335,-0.383893}, {-0.504534,0.584654}, {-0.700111,-0.051171}, {0.235161,-1.457844}, {0.447664,-0.556099}, {0.669581,1.662563}, {0.635083,-0.024530}, {-0.426292,-0.598758}, {0.380072,-1.112453}, {-0.081336,0.145480}, {-0.907122,0.871629}, {0.131628,1.573776}, {-0.384249,0.507013}, {-0.799491,0.657805}, {-0.243014,0.812674}, {-0.280861,-1.138266}, {0.252573,-0.763178}, {-0.829438,0.152104}, {0.238524,-0.277766}, {2.523618,-0.842357}, {-0.699246,-0.801106}, {1.166441,0.831885}, {0.413058,0.094339}, {-0.446019,0.307323}, {-0.725646,-0.489846}, {-0.253605,-1.246224}, {0.912358,-0.556724}, {1.278255,0.012615}, {-0.078776,-1.194235}, {-0.366774,-2.136559}, {0.776158,0.034121}, {0.124952,0.735158}, {0.495498,-0.287894}, {0.645361,0.435278}, {-0.027172,-0.196745}, {-0.091825,0.181205}, {-0.449690,0.202206}, {0.615196,-0.763464}, {0.006443,-0.808811}, {-0.778937,-0.464757}, {-0.661201,-0.076723}, {0.142220,0.639184}, {0.043606,0.256401}, {1.185320,0.179074}, {0.964460,1.638016}, {-0.439314,-1.027129}, {-0.974713,-0.701040}, {0.626450,1.670174}, {0.849683,0.000633}, {-0.758821,0.643905}, {0.533524,-0.276729}, {-0.287200,0.229033}, {0.976720,0.691516}, {0.413251,-0.414654}, {-0.105930,0.582164}, {1.083972,0.127931}, {-0.008602,0.396564}, {-1.014633,-0.766216}, {-0.567769,-0.603326}, {-0.671345,-0.870915}, {-0.436383,0.159432}, {0.789563,-1.405331}, {-0.012052,0.291490}, {-1.064900,0.499255}, {1.857613,0.173601}, {-0.166943,-0.593651}, {0.813628,0.624637}, {-0.792895,-0.334087}, {-0.371264,-1.463375}, {0.232055,1.514775}, {-0.480078,-0.932215}, {0.493973,0.190971}, {0.477380,0.232577}, {0.240390,-0.359935}, {0.082890,-0.564972}, {0.142401,0.071885}, {0.415193,-0.076906}, {1.294283,0.031845}, {0.184350,0.522837}, {-0.985097,0.515890}, {-0.321414,0.266318}, {-0.040275,-1.090636}, {1.454251,-0.464461}, {-1.341400,-0.556900}, {1.112672,-1.294695}, {0.684248,-0.569627}, {0.110519,1.620119}, {-0.074092,-1.501786}, {0.836840,0.582174}, {-0.312866,-0.163083}, {-0.348387,0.846036}, {-0.401781,-0.683929}, {-0.477886,0.419644}, {0.380085,1.371967}, {-0.151815,-1.437845}, {0.362655,1.699131}, {-0.285574,-0.328342}, {-0.373046,0.552420}, {0.524496,-0.274919}, {0.162426,-0.591347}, {0.247988,-1.248758}, {0.179873,-0.495477}, {0.332481,0.187029}, {-0.680053,-0.795562}, {-0.297790,-1.228507}, {0.433604,0.362610}, {-0.912981,-0.317793}, {0.356607,-0.401878}, {-0.457215,1.277897}, {0.423863,-0.907331}, {1.369555,0.294154}, {-0.558227,-0.787342}, {-0.700928,-0.002200}, {0.475999,0.053324}, {0.759515,-0.511097}, {-0.214352,-1.108068}, {-0.823262,0.181915}, {-1.481847,-0.145536}, {-0.838811,-0.827068}, {-0.354237,-0.929419}, {-0.003615,0.497626}, {1.165999,0.676843}, {0.626492,0.510292}, {0.158529,0.168647}, {1.189623,0.008902}, {0.281004,-1.174505}, {0.610236,-0.754183}, {-0.669239,0.615970}, {0.300373,-0.608739}, {1.205115,-0.072012}, {0.272992,-0.140035}, {-0.478646,-0.534863}, {-1.353538,0.265825}, {-0.199615,-1.529628}, {-0.219052,1.418831}, {-0.138797,0.344504}, {0.170086,-0.026321}, {-0.196733,0.535114}, {-1.033414,-0.221792}, {0.028438,0.044914}, {-0.884678,0.622154}, {0.822835,-2.043658}, {0.344915,-1.053158}, {-0.644134,-0.574558}, {-1.332407,0.519250}, {0.036381,0.475286}, {-0.303382,0.982412}, {-0.353411,0.250417}, {0.139548,-0.642938}, {1.414632,-0.370112}, {0.532912,-0.264381}, {0.342811,0.344477}, {0.501145,-0.288626}, {0.311541,0.560236}, {-0.413902,-0.733376}, {0.591928,-0.533218}, {-0.311692,-0.614243}, {0.357470,-1.610867}, {-0.400828,-0.474021}, {0.291392,1.248851}, {0.016993,-0.633725}, {-0.525249,0.450546}, {0.801819,1.070688}, {-1.296271,-0.616623}, {-0.393605,-0.448016}, {-0.165781,0.199731}, {-0.066457,0.457058}, {0.245912,0.367495}, {-0.614678,0.338112}, {0.424687,-0.042103}, {-0.016281,0.164701}, {-0.388587,-0.005404}, {-0.616791,0.044666}, {0.164994,-0.591148}, {1.130053,0.244749}, {-0.764096,-0.677907}, {0.001894,0.070851}, {0.970162,-0.004036}, {0.294438,-0.848449}, {-0.085147,-1.038641}, {0.146574,-1.020098}, {0.731212,1.172352}, {-0.966413,0.010182}, {0.022011,0.098571}, {-0.062500,0.809517}, {0.613554,0.896113}, {-1.702897,-0.428981}, {-0.295817,-0.095047}, {0.363999,1.299666}, {-0.185637,0.710197}, {0.667850,-0.579586}, {-0.091486,-1.745092}, {0.278540,-0.322231}, {-1.393286,0.017571}, {-0.909896,-0.550217}, {-0.227978,-0.287231}, {-0.041531,-0.572542}, {0.598923,-1.109982}, {0.528515,0.294793}, {1.420346,-0.167967}, {0.339044,-0.296742}, {-0.427926,-0.195084}, {2.320888,-0.602119}, {0.316394,-0.195310}, {0.392226,-0.018758}, {-0.347128,-0.012198}, {0.885682,0.291685}, {0.694113,-0.213884}, {1.098109,0.434729}, {0.126689,0.353735}, {-0.540018,-0.289525}, {-0.878448,1.391600}, {-0.019977,0.206745}, {0.873189,-0.483586}, {0.121439,-0.209070}, {0.648235,-0.185503}, {-0.009043,-0.764272}, {0.372579,0.872373}, {0.472101,-0.192603}, {-0.407035,-0.893065}, {-1.367142,-0.975043}, {0.746200,-0.328607}, {0.388173,-1.625638}, {0.884013,-0.528696}, {0.705324,0.779519}, {0.408395,-0.377831}, {1.083901,0.395567}, {0.781733,-0.146787}, {-0.068884,-0.865584}, {0.156537,0.742738}, {0.113212,0.987732}, {1.521997,0.329659}, {-0.192594,-0.352522}, {-0.976653,0.187491}, {0.817131,0.071363}, {0.699118,0.409109}, {-0.297057,-0.940273}, {-0.936432,-1.106289}, {0.626260,-0.241420}, {-0.260488,0.166791}, {0.701135,-1.061037}, {-0.554144,-1.046121}, {0.513165,0.663304}, {-0.011168,0.147376}, {0.037910,1.201414}, {0.140816,1.384849}, {-0.242984,-1.207828}, {-0.107482,0.575915}, {0.451083,0.174602}, {0.269525,-0.536069}, {0.211411,-0.104573}, {-0.204415,-0.512769}, {0.628925,-0.352539}, {1.033395,0.036681}, {-0.675614,-0.143876}, {-0.621722,-0.934906}, {0.211877,-0.248810}, {-0.352170,0.551980}, {-1.116948,0.321283}, {-0.826697,1.581404}, {-0.195648,0.310111}, {-0.938570,-0.616930}, {-0.451007,0.525622}, {-0.120274,0.851907}, {0.045607,-0.373985}, {-0.214821,0.266194}, {0.171364,-0.008571}, {0.301965,-0.705054}, {-1.165181,-0.235733}, {-0.650434,-0.274030}, {0.122090,0.561616}, {0.435428,-0.782393}, {-0.004740,-0.125884}, {-0.321219,-0.415579}, {-1.199688,0.284728}, {-0.533240,0.015463}, {0.304348,-0.073971}, {-0.733804,-0.444715}, {-0.725423,0.204256}, {0.604231,-0.689961}, {-0.756920,-0.218757}, {0.956018,0.954204}, {0.169414,-0.152566}, {0.481613,-0.565409}, {0.371303,0.288803}, {-0.794294,-1.147211}, {-1.706341,0.716376}, {-0.627696,0.291968}, {-0.121333,-1.001299}, {0.550558,-0.282856}, {-0.349733,-0.561486}, {0.578835,0.339123}, {0.420234,-0.741495}, {0.144577,0.277881}, {0.031130,-0.728796}, {-0.564058,1.498556}, {1.015670,0.422366}, {-0.063266,0.346276}, {0.551090,-1.963699}, {0.934465,-0.385555}, {0.422983,1.159449}, {0.101278,-1.667219}, {-0.308766,0.332842}, {0.150898,-0.097385}, {-0.862758,-1.060237}, {-0.687885,-1.141096}, {-0.862829,-0.505841}, {0.558943,-0.778417}, {0.549535,-0.363780}, {0.072778,0.637066}, {0.286029,0.322126}, {0.330171,-0.854661}, {-1.348837,-0.420251}, {-0.198428,-0.371513}, {-0.525214,0.301414}, {-0.667387,0.022208}, {-0.574674,0.529466}, {2.371918,-0.496606}, {0.257499,-0.783288}, {0.156324,0.286932}, {0.087484,0.531503}, {0.093291,0.317147}, {-0.427160,-2.024729}, {-0.044421,1.046526}, {0.978931,0.464268}, {-1.373383,-0.073722}, {-2.321501,-0.976402}, {0.683655,0.655822}, {0.352602,-0.192715}, {0.339613,0.269168}, {-0.472547,-1.432907}, {-0.231035,0.019309}, {-0.094858,1.060712}, {0.681354,-1.324615}, {0.864079,0.416811}, {-0.558628,0.087251}, {-0.365315,0.133957}, {0.107680,2.348517}, {0.198383,1.253961}, {-1.268406,0.952837}, {-0.992758,-0.560084}, {0.672959,0.572037}, {-0.449041,1.977002}, {0.522614,0.339234}, {0.085229,-0.360501}, {0.640099,0.726865}, {-0.091502,-0.015738}, {-1.201696,1.035130}, {-0.109550,-0.696829}, {1.168720,1.005732}, {-0.249323,1.263522}, {0.724024,0.109230}, {0.265328,0.012693}, {-0.842707,-1.113746}, {-1.256092,-0.822533}, {-0.075814,-0.052293}, {-0.128797,-0.411582}, {-0.653104,-0.788771}, {0.939494,0.157740}, {1.072504,0.885641}, {0.163190,0.818505}, {0.706255,0.687324}, {0.384361,-0.313490}, {0.508228,-1.395336}, {0.359982,0.352805}, {-0.256236,0.825832}, {0.029179,-0.324424}, {0.486841,0.728258}, {0.817556,0.065814}, {1.494148,0.828882}, {-0.050180,-0.893645}, {-0.636544,-1.178485}, {-0.720967,0.391549}, {-1.307682,0.078339}, {-0.605757,-0.944323}, {-0.731348,-0.094258}, {0.396463,0.209925}, {0.209509,-0.607296}, {0.119597,-0.249649}, {-0.200995,-0.099649}, {-0.567400,-0.345251}, {-0.857138,0.181769}, {-0.941646,-0.854838}, {-1.128753,0.837338}, {-0.657241,-0.759242}, {-0.188936,0.670672}, {-0.306598,-0.482202}, {0.912207,-0.517195}, {1.164901,-0.427966}, {-0.009895,-1.020774}, {0.025765,1.322707}, {0.150524,1.732201}, {-0.439267,-0.498603}, {-0.368177,0.524348}, {-0.630978,-0.521041}, {-0.231973,-0.184883}, {0.067075,1.310441}, {-0.105442,1.412885}, {0.331006,-1.363233}, {0.791599,0.084396}, {-0.890726,-1.246866}, {-0.542651,-0.106851}, {0.107314,0.092753}, {-0.732606,0.153913}, {-0.330158,0.495539}, {0.489401,1.064049}, {-0.417820,1.261110}, {-1.631694,-0.818434}, {-0.620724,-0.895058}, {0.426467,-1.064865}, {0.467471,-0.278711}, {0.817514,-0.321221}, {0.096475,-0.494918}, {0.152146,0.351492}, {-0.498145,1.133315}, {0.303055,-0.317239}, {0.103959,0.019469}, {0.092448,0.918901}, {-0.993398,0.147710}, {-0.995629,0.413023}, {1.220671,-1.202642}, {0.724379,1.575400}, {0.811431,0.466068}, {0.499664,-0.880995}, {0.558109,0.769554}, {-0.702879,-1.050569}, {-0.353375,-0.936081}, {0.360053,-0.464839}, {-0.779252,-0.780140}, {0.090785,-0.637723}, {-0.304972,0.459278}, {0.736270,-0.110646}, {-0.109772,0.206927}, {-0.478619,-0.042280}, {-0.876631,0.510703}, {-0.906729,-0.217556}, {-1.537449,-0.267733}, {-0.978123,-0.957757}, {-0.714696,0.975507}, {0.812617,-0.332136}, {-0.725724,-0.236311}, {-0.100842,1.337503}, {0.080524,1.176672}, {0.771711,-0.341004}, {-0.423299,-0.455648}, {2.158161,-0.512129}, {1.151039,-1.024555}, {0.642063,0.018575}, {-1.054085,0.401372}, {-0.288785,0.630494}, {0.347641,-0.610670}, {1.408482,0.059692}, {-0.379421,-0.208655}, {-0.483324,-0.878070}, {0.602104,-0.394601}, {-0.004706,-0.642013}, {-0.358424,-0.253404}, {0.411569,-0.129959}, {1.228551,0.006102}, {0.531607,-0.018854}, {-1.380934,-0.627088}, {0.547267,-0.039238}, {0.746745,0.351671}, {0.303177,-0.387336}, {-0.796387,-1.614076}, {0.464988,0.970223}, {0.191287,0.066696}, {-0.220325,0.790812}, {0.303741,1.089789}, {0.448117,-0.011489}, {0.419576,0.169210}, {0.541446,-0.813073}, {-0.746604,-0.394798}, {-0.535124,-0.399080}, {1.212820,1.210170}, {-0.608420,0.220226}, {-1.418918,1.368314}, {0.931166,0.677711}, {0.682432,-0.895030}, {-0.693349,0.261801}, {0.258131,-2.168849}, {0.867516,0.563051}, {-0.096511,-0.462814}, {-0.689393,-0.230999}, {-0.369812,0.249233}, {0.046717,0.954072}, {-0.032594,0.551930}, {-0.766079,-0.071566}, {0.793508,-0.748283}, {0.241679,0.608403}, {0.498824,0.196015}, {0.386018,-0.774475}, {-0.291054,-0.131220}, {-0.436014,0.049768}, {-0.006478,0.331976}, {-1.126995,0.403371}, {0.674118,-1.006190}, {0.727574,-0.631312}, {0.115880,0.143336}, {-0.181566,0.695052}, {-0.233203,-0.086295}, {0.112809,-0.045588}, {0.543264,0.808170}, {-0.581874,-0.471845}, {0.340867,-0.485032}, {0.165312,0.013926}, {-0.162445,0.725280}, {-0.499103,-1.248448}, {0.033577,0.051456}, {-1.045131,-0.235899}, {-1.110962,-0.102827}, {-0.274189,1.259956}, {-0.791826,1.100141}, {0.324671,0.829447}, {0.800825,-0.584404}, {0.849667,-0.944107}, {0.288553,0.174365}, {-0.215377,1.086802}, {0.392650,-0.010487}, {0.748435,-1.137606}, {0.034898,-0.302699}, {0.636265,0.119519}, {0.837150,-0.690876}, {-0.092518,0.354308}, {0.084607,-0.381048}, {0.970579,0.659439}, {-0.564493,-0.616213}, {-0.403944,-0.133496}, {1.350834,0.527610}, {-0.742367,-0.805350}, {0.624140,0.366381}, {0.005646,-0.563460}, {0.268050,-1.292687}, {0.547784,-0.463622}, {-0.659049,-0.130209}, {0.283018,0.527990}, {1.418480,1.297302}, {0.488656,0.974499}, {0.551555,-0.669995}, {0.015860,-0.360077}, {0.438938,1.527582}, {-0.729915,-1.304140}, {0.025131,0.002452}, {-1.484426,0.708978}, {-0.804342,0.051125}, {0.990833,-0.309900}, {-0.023686,0.762213}, {-0.617502,0.277137}, {-1.488232,0.224413}, {-0.082550,0.224711}, {0.610967,-0.436610}, {-0.019999,1.299875}, {-0.323230,1.244962}, {-0.812947,1.719798}, {0.333300,-0.174474}, {0.115682,-1.155270}, {-0.695856,0.388529}, {-0.543434,-0.096509}, {-0.096049,0.107245}, {-0.199971,0.163067}, {-0.067111,0.395370}, {1.026571,-0.210498}, {-0.233456,0.753581}, {0.051242,-0.861376}, {0.567777,-0.613727}, {0.987200,-0.366176}, {-0.409966,-0.600319}, {-0.021597,-0.362028}, {-0.285392,-1.023961}, {0.324897,-0.397392}, {-0.592783,-1.366636}, {1.513069,0.094527}, {-0.044122,0.361806}, {0.677076,-0.471443}, {-0.333290,0.236344}, {0.108895,-0.098454}, {0.103235,-0.195197}, {0.650796,-0.537053}, {-0.131204,-0.326541}, {0.520322,0.172370}, {0.210147,-0.555893}, {-1.082301,-0.048132}, {-1.964090,-0.466588}, {0.328335,-0.553112}, {0.708616,0.426767}, {1.323439,-0.348617}, {0.360543,0.545349}, {-0.719946,-0.639191}, {0.592925,0.790534}, {0.402184,-0.204855}, {0.907703,-1.809146}, {-0.387200,0.273777}, {-1.602303,0.588109}, {0.867147,0.107290}, {0.824226,0.764841}, {-0.538419,-0.797958}, {0.814390,0.065650}, {-1.453486,-0.528528}, {-0.672247,-0.514976}, {-0.052375,0.190079}, {-0.094941,0.604553}, {0.088500,0.393075}, {0.195693,0.876814}, {-0.184889,-1.487501}, {-0.270364,0.104600}, {0.102034,0.660195}, {-0.091355,-0.465751}, {-0.135152,-0.520824}, {-0.022116,-0.821371}, {0.570832,0.492145}, {0.066106,0.238053}, {-0.184571,0.890977}, {0.288094,-1.019289}, {-0.022496,-0.473805}, {1.126320,1.508352}, {-0.531990,0.461793}, {-0.594808,0.080021}, {0.290982,-0.692523}, {-0.890167,0.818541}, {-0.162518,0.512516}, {-0.062089,0.662125}, {-0.469694,0.836419}, {0.590828,-0.375129}, {-1.549634,1.352916}, {-0.257487,0.526662}, {0.554513,-0.496139}, {-0.489056,-1.265723}, {0.233948,-0.647727}, {0.333881,0.673747}, {0.721218,0.641171}, {0.166479,1.234207}, {0.251689,-0.854045}, {0.503304,-0.772030}, {-0.397815,1.070705}, {-0.454466,-0.093432}, {0.509756,0.581621}, {-0.636769,0.173815}, {-0.434115,-0.379772}, {0.360372,0.416251}, {-0.816916,0.336363}, {-0.481516,-0.148237}, {-0.344201,1.129372}, {-0.745381,-0.145303}, {-0.237741,-1.131222}, {0.083772,-0.220665}, {0.519841,-0.090807}, {-0.074125,-0.928286}, {-0.280099,-1.361722}, {-0.233499,-0.378497}, {0.373073,-1.241461}, {-1.426124,0.070811}, {-0.509544,0.495983}, {0.099959,-0.668754}, {0.270905,1.556735}, {-0.390670,0.537248}, {-0.058168,0.187165}, {-0.406095,-0.397041}, {0.121194,-0.343134}, {-0.451420,0.715020}, {-0.116938,-0.147192}, {-0.333465,0.135991}, {-0.741996,-0.453454}, {-0.481034,-0.484738}, {-0.782498,0.231260}, {0.024518,0.585927}, {-0.450470,-0.353688}, {0.594174,-0.126300}, {-0.794772,0.420486}, {1.314513,-0.513466}, {-0.370453,0.760489}, {0.150855,-0.339750}, {-0.135993,-0.778609}, {-0.276600,-0.086547}, {0.113501,-0.451234}, {0.807762,-0.310844}, {0.789981,0.544938}, {-0.304444,0.191596}, {-1.155565,-0.682987}, {0.312056,1.172277}, {0.148072,-0.646764}, {-1.017788,0.784066}, {0.908108,-2.113397}, {-0.647792,-0.940894}, {-0.147613,0.439221}, {-1.081613,0.980868}, {0.632143,-0.374708}, {-0.495802,-0.113519}, {-0.001556,0.150950}, {-1.307628,-0.508955}, {-0.300870,0.315066}, {-1.083447,-0.140177}, {-0.100772,0.376783}, {-0.477322,1.014067}, {-0.567785,-0.305888}, {-0.836664,1.106455}, {-0.015276,0.006448}, {0.616278,0.239966}, {0.030009,-1.107782}, {-0.770995,-0.138155}, {-0.681094,-0.519193}, {-0.882058,-0.080711}, {0.248760,-0.979030}, {0.000043,-0.366665}, {0.400810,-0.085567}, {0.641021,-0.084098}, {0.533652,0.288318}, {0.894862,-0.065116}, {0.123370,0.978511}, {-0.180674,0.803822}, {0.728752,-0.234438}, {-1.319526,0.158393}, {-0.205442,-0.299613}, {-0.383721,-0.335137}, {-1.028570,0.223713}, {0.932332,-0.634004}, {0.157887,-0.980576}, {0.889136,0.047845}, {-0.087490,-1.077315}, {1.004223,-0.574276}, {-0.563213,-0.079366}, {0.609176,0.143015}, {1.007697,-0.230920}, {-0.432129,-0.855668}, {-0.751450,-0.419138}, {-0.531787,0.218861}, {1.240797,0.009179}, {0.098613,1.024921}, {-0.418097,-0.610862}, {0.638017,-0.556955}, {-0.882736,0.678364}, {-0.101406,0.188363}, {0.575997,-0.320782}, {-0.184244,-0.946120}, {0.854262,0.058870}, {0.623265,0.222449}, {0.026415,0.979594}, {0.482302,0.001502}, {-0.278778,-0.147706}, {0.640003,0.194414}, {0.438042,-0.226420}, {0.136500,0.092192}, {-0.202665,0.686749}, {0.522478,0.318777}, {-0.913607,0.461100}, {0.058242,-0.589196}, {-0.125264,0.196658}, {0.455045,0.102476}, {-0.248191,-0.131455}, {-0.497535,0.250805}, {0.168700,0.673232}, {0.711314,-0.106036}, {0.651818,-0.851557}, {0.977553,-1.253093}, {0.286839,1.317582}, {-0.371842,-1.093583}, {-0.301749,1.329315}, {-0.403959,-0.126875}, {-0.217582,0.112597}, {0.122512,-0.547045}, {0.538957,1.455939}, {-0.051608,0.121125}, {-0.483043,0.988090}, {0.497165,-0.191173}, {-0.703290,0.550797}, {0.658044,0.757078}, {-0.412660,-0.052012}, {-0.252273,0.092307}, {-1.322972,0.140665}, {-0.203724,0.534689}, {0.116356,0.483238}, {0.554228,1.157456}, {0.327654,1.316895}, {0.250489,-1.294149}, {0.982871,0.689230}, {0.192154,-0.292214}, {-0.669868,-0.373672}, {-1.188747,-0.038297}, {-1.090901,0.731469}, {0.764236,-0.485868}, {0.275150,1.088652}, {0.976241,-0.963219}, {-0.581240,-1.282012}, {0.320197,0.407777}, {0.748587,0.046703}, {0.467881,-0.329966}, {-1.102496,0.283212}, {1.062265,1.008907}, {-0.606597,0.619235}, {-0.156865,-0.044052}, {-0.002704,-0.036497}, {0.706197,-0.423776}, {-0.257156,0.973133}, {0.487914,1.074381}, {-0.885602,-1.777507}, {-0.940260,0.448708}, {0.932505,0.236523}, {1.804253,0.372704}, {-1.578130,0.083653}, {-0.626332,1.026166}, {1.193807,-0.043563}, {-0.505137,-1.317739}, {-0.508528,0.107232}, {-0.487782,0.645512}, {-0.437935,-0.346208}, {0.632623,1.393825}, {0.487853,0.179346}, {0.015868,0.802943}, {-0.172107,-0.530354}, {-0.438663,0.597939}, {-0.523518,-0.769340}, {-0.309114,-0.877138}, {-0.805692,0.319938}, {0.980487,0.415193}, {0.086533,-0.000662}, {0.083456,0.469788}, {2.350354,0.199267}, {-1.117492,1.031942}, {-1.874684,-1.438324}, {-1.506923,-0.254100}, {-0.442244,-0.212173}, {0.622220,0.078493}, {0.442782,0.738116}, {0.382808,1.370781}, {-0.572913,-0.327280}, {0.033002,-1.591756}, {-1.011466,-0.707980}, {-0.540779,-0.501728}, {-0.430794,-0.139464}, {0.953393,-0.835771}, {-0.569549,-1.511300}, {-1.023529,-1.226598}, {-0.030465,0.795517}, {-0.123311,-0.051937}, {-0.428708,-0.079562}, {-1.177091,0.332774}, {-1.004645,-0.843150}, {-0.038739,1.507680}, {0.090651,0.221051}, {0.109970,0.073002}, {1.310602,0.693833}, {0.072228,1.417407}, {-0.104879,0.467846}, {-1.441396,0.816322}, {-0.151793,0.678658}, {-0.096420,0.855195}, {0.430901,1.154121}, {-0.250084,-0.013302}, {0.587835,0.733677}, {0.477520,-0.424982}, {-0.504096,-1.402798}, {-1.013512,0.267668}, {-0.363026,-0.005476}, {-0.718136,-0.118798}, {-0.446816,-0.602576}, {-0.797358,-0.024473}, {0.633098,0.624564}, {0.021270,1.205089}, {0.266963,1.498017}, {-0.508527,0.054780}, {-0.043710,0.286613}, {-0.142768,0.551359}, {0.220664,-1.355083}, {0.521431,-0.476980}, {0.141075,0.083285}, {-0.059602,-0.756118}, {-0.451512,-0.258693}, {-0.730176,1.521289}, {-1.362482,0.104512}, {0.270994,0.327411}, {-0.363492,-0.868879}, {0.672515,-0.270446}, {-1.342101,0.237073}, {0.508772,-0.377732}, {-0.713798,-0.466147}, {0.368961,0.592551}, {0.299261,2.116040}, {-0.672263,-0.279814}, {-1.007523,1.276007}, {0.227684,-0.462034}, {0.387360,-0.328996}, {0.352344,0.109850}, {-0.554321,-0.079454}, {-1.105078,0.393291}, {1.734659,0.308959}, {-0.308866,0.349966}, {-0.493334,1.891041}, {0.107295,-0.199193}, {0.015633,1.669639}, {-0.192819,0.360563}, {1.300187,0.043971}, {-0.195297,-0.619241}, {-0.120101,-1.056832}, {-0.447948,-0.495157}, {-0.326704,-0.483233}, {-1.035520,1.157850}, {-0.498165,1.806892}, {-0.145448,0.642467}, {-0.405584,1.352826}, {-0.421562,0.606142}, {0.294387,1.309778}, {-0.154054,0.079388}, {0.536240,0.173272}, {-0.024006,1.108828}, {0.874482,-1.013605}, {0.377186,-0.667107}, {1.113183,0.945097}, {-0.623475,-0.893737}, {-0.192779,-1.241070}, {0.632202,0.599329}, {-0.998820,-0.803084}, {1.383370,0.376201}, {-0.083581,0.942494}, {-0.173566,-0.198364}, {0.074235,-0.314876}, {-0.556586,0.347212}, {0.490005,0.416503}, {0.331992,-0.555958}, {-0.691485,-0.331265}, {-0.796966,-0.358733}, {-0.252577,0.543161}, {-0.861375,0.772953}, {0.133135,1.007422}, {0.110358,-0.029927}, {-1.330897,0.730045}, {0.393907,0.863772}, {-0.741439,0.432644}, {0.576414,-1.086511}, {-0.053779,1.091841}, {0.727738,-0.274889}, {-0.147372,0.359935}, {-1.596102,0.038969}, {0.002325,-0.748844}, {1.142039,-0.398003}, {-0.334125,-0.639994}, {0.207807,0.496680}, {-0.364096,-0.594810}, {1.762264,0.531826}, {-0.749354,0.980400}, {-1.280578,1.031222}, {0.206510,0.566433}, {-0.682051,-0.394535}, {-0.551294,1.174139}, {0.313715,-1.149243}, {0.656347,0.386459}, {0.735878,0.178740}, {-0.293578,-0.287406}, {-0.179112,-0.387732}, {0.213178,-0.962025}, {-0.344776,-0.181182}, {0.641578,-0.406269}, {-1.401786,-0.171097}, {0.286238,-0.125231}, {0.252492,-0.547389}, {0.120026,0.720419}, {1.337138,0.195949}, {-0.660370,0.703330}, {0.092159,-0.695855}, {-0.620594,0.229351}, {1.055181,0.111751}, {1.006880,0.293700}, {-0.093249,0.555442}, {-0.399694,0.811308}, {-1.684486,-0.633970}, {0.080918,0.511860}, {-0.439946,0.019865}, {-0.390984,-1.044203}, {-0.685936,-1.231559}, {-0.204744,-0.679722}, {-0.859863,0.460715}, {-0.246945,0.401049}, {0.193542,1.129638}, {-0.255188,0.214659}, {0.484590,-0.289803}, {0.830376,-1.338483}, {-0.649905,-0.117391}, {-0.796076,-0.304220}, {0.353714,0.110796}, {1.064357,0.203116}, {0.772181,0.613989}, {-0.595196,0.130421}, {0.714852,-0.201961}, {-0.246157,1.317799}, {-0.188331,1.819959}, {-0.255805,-0.742062}, {-0.138330,-0.228130}, {0.447635,0.068326}, {0.167371,0.023899}, {0.541047,-0.398183}, {1.279247,-0.892511}, {0.970960,-0.571617}, {0.064149,-0.440132}, {-0.091864,0.479401}, {-0.178907,-0.263349}, {-0.460228,0.072292}, {-0.022178,0.024037}, {0.042415,0.943316}, {-0.639441,0.125048}, {0.773008,1.096997}, {0.127606,0.363171}, {0.870742,-0.533857}, {-0.763648,0.812840}, {0.461366,0.041432}, {-0.006986,-0.606103}, {0.535399,0.207011}, {-0.584722,-1.519249}, {0.121278,-0.207252}, {1.085226,-0.059229}, {0.129751,0.594549}, {-0.110785,1.298075}, {-0.828154,0.282231}, {0.357325,0.161702}, {-0.286592,0.378964}, {0.132628,0.276829}, {-0.793980,1.023088}, {-0.957162,0.460617}, {-0.032594,-0.412238}, {0.060784,0.629413}, {1.100209,0.447011}, {-0.198523,0.062691}, {-0.709541,0.204258}, {0.020197,-1.320956}, {-0.215897,-1.623511}, {0.748680,0.160824}, {-0.504640,0.232847}, {-0.269767,-0.738709}, {0.392299,0.153438}, {0.160576,-0.386143}, {0.357881,0.613915}, {-1.268598,-0.067517}, {-0.666996,0.396000}, {-0.761129,-1.835104}, {-0.128240,0.064241}, {-0.200634,-0.545752}, {0.111993,0.186523}, {-0.162610,-0.333088}, {-0.548141,0.520658}, {0.016143,-0.863869}, {-0.569927,1.339376}, {0.616225,-0.058848}, {-0.664092,-0.932852}, {-0.309768,-0.158927}, {0.459254,1.205541}, {-0.809099,-0.795062}, {-0.182439,-0.025138}, {-0.916346,-0.341971}, {0.829546,-0.066365}, {0.855095,-0.587404}, {-0.275741,1.185855}, {-0.816888,0.228774}, {-1.253625,-0.671337}, {-0.336773,-0.885292}, {-1.419712,0.386946}, {0.256469,-0.112479}, {-0.195782,0.897473}, {-0.448164,0.230629}, {-0.137292,-0.954298}, {0.044064,-1.420896}, {0.346739,-0.728567}, {-0.486216,0.932718}, {-0.234357,-0.424851}, {-0.893944,-1.580683}, {0.224420,-0.109758}, {-0.525390,-0.659896}, {-0.082822,-1.111491}, {-0.027127,0.600399}, {0.417077,-0.941458}, {-0.672273,-0.776712}, {-0.375658,-0.673124}, {-0.128259,0.669274}, {0.274039,-0.162639}, {0.531405,0.328816}, {-0.173541,-0.344658}, {0.109632,-0.652172}, {0.745372,-0.988494}, {0.323987,0.395099}, {-0.220000,-0.137398}, {0.004579,-0.872426}, {0.251476,-0.625225}, {1.333603,-0.551770}, {0.081311,-0.544503}, {0.326594,-0.007595}, {-0.823281,1.430717}, {0.572531,0.791617}, {0.063804,-0.438730}, {-0.804912,-0.338880}, {0.533428,-0.017895}, {-2.355835,-0.084042}, {-0.020945,0.576270}, {-1.338558,0.102208}, {-1.341976,0.904601}, {0.494760,0.485739}, {-0.067460,2.005861}, {-0.249791,0.460139}, {0.735361,0.697345}, {-0.007071,-0.683978}, {0.116523,-0.146979}, {0.082917,-0.544381}, {-0.183656,-0.015491}, {-0.125475,0.097676}, {0.216174,0.367420}, {-0.825492,0.033576}, {0.392395,0.018111}, {-1.196534,-0.398387}, {0.858381,-0.236375}, {0.427010,-0.140906}, {0.549912,1.102720}, {0.013097,-0.589424}, {-0.486318,-0.182311}, {0.597453,0.811553}, {-0.394496,0.945556}, {0.194762,-0.392322}, {-0.245420,-1.255616}, {0.591577,-0.107335}, {-0.065784,-1.591483}, {-0.463762,-0.160668}, {-0.789821,-0.048679}, {-0.275537,0.448439}, {1.110561,1.009790}, {0.527317,-1.005654}, {1.115740,-0.604145}, {-0.557221,1.170167}, {0.014607,-0.908701}, {0.869524,-0.104916}, {0.670785,-0.073642}, {0.275557,-0.344125}, {-0.677464,0.205771}, {1.468200,-2.040479}, {-0.644867,-0.260612}, {-0.885294,-0.600743}, {-1.083463,0.305217}, {0.192783,0.054288}, {-1.442832,-0.464161}, {-0.430593,0.193934}, {1.037362,-0.157372}, {0.396271,0.148627}, {-0.590031,-0.536029}, {-0.903929,-0.929530}, {0.502786,-0.088813}, {0.556812,0.044700}, {0.140136,-0.196190}, {0.247448,-0.454580}, {0.858752,0.511401}, {-0.226488,-0.387412}, {-0.588826,0.225291}, {0.122682,-0.776759}, {-0.494520,0.407446}, {-0.991127,0.502398}, {0.655983,-0.129177}, {-1.425441,-0.191821}, {-1.341352,0.064542}, {-1.072479,1.113384}, {0.041286,2.051621}, {-0.242983,0.516347}, {-0.237060,-1.113874}, {-0.023272,1.377334}, {-1.899043,0.594030}, {0.467479,1.264261}, {0.663846,-0.112813}, {0.692125,-0.625121}, {-0.298478,-0.083012}, {-0.964078,-0.081148}, {-0.470905,0.411913}, {1.474979,-0.154895}, {0.661302,-0.012302}, {-0.965442,0.514810}, {0.318276,0.457882}, {-0.542257,-1.222535}, {0.062860,0.023413}, {0.085049,1.158655}, {1.247453,-0.154635}, {0.178202,0.204762}, {0.844883,0.791503}, {0.233726,-0.984440}, {0.164056,0.642663}, {-0.322448,0.327553}, {-0.126490,0.319918}, {-0.158159,-1.372744}, {1.298184,-0.764151}, {0.018998,0.522201}, {-0.962200,0.169821}, {-0.176380,1.186852}, {-0.034894,0.510674}, {0.098506,-0.900306}, {0.336179,-0.133751}, {0.337938,0.195812}, {0.012498,0.889530}, {-0.625594,-0.298426}, {0.694907,0.251068}, {-0.113195,0.672439}, {-0.753666,0.051040}, {0.141270,0.049792}, {-0.067074,0.245343}, {-1.587448,-1.120145}, {0.136902,0.397052}, {0.012719,0.888125}, {-0.899053,-0.232361}, {-0.572945,0.118157}, {0.689248,-0.024022}, {-0.369033,1.314103}, {1.171046,-0.441653}, {0.148432,0.000953}, {0.474619,1.318479}, {-0.789100,-0.189436}, {1.168206,-0.870973}, {-0.471363,0.375174}, {0.506161,-0.536559}, {1.423200,0.042084}, {-0.929433,-1.633785}, {-1.295439,0.135491}, {-1.538034,-0.008372}, {-1.271645,-1.051796}, {0.554905,-0.373024}, {-0.643509,-0.327706}, {-0.419714,1.107479}, {0.466287,-0.239969}, {-0.653212,0.139871}, {-1.451830,-0.344354}, {-0.907859,-0.216021}, {0.944616,0.366605}, {0.059977,0.109431}, {1.031953,-1.164485}, {0.449597,-2.254492}, {-0.703591,-0.293462}, {0.705176,0.000026}, {0.129751,-0.129761}, {-0.500724,0.070967}, {0.708266,-0.279742}, {0.057621,-0.165775}, {-0.918908,0.311085}, {0.103258,0.736145}, {0.327648,0.004814}, {-0.462488,-1.311553}, {-0.800705,-0.250875}, {0.725654,-0.503263}, {0.070847,0.104229}, {-0.617014,-0.723182}, {-1.389549,-0.393330}, {0.968007,-0.009708}, {0.139527,1.299372}, {0.248082,0.601290}, {0.953040,-0.996260}, {1.309783,-1.016336}, {-0.934166,0.729653}, {-0.388471,0.682112}, {-0.240315,0.888481}, {-1.098614,-0.034184}, {-0.421662,-0.755789}, {0.307964,0.867011}, {0.444477,0.930219}, {1.603805,-0.402639}, {-0.089754,1.413485}, {0.230484,0.488389}, {0.354216,0.348765}, {-0.322557,-0.563235}, {-0.185066,0.795538}, {-0.550469,0.168640}, {-0.331680,-0.810292}, {-0.678005,-0.138885}, {0.888325,0.259799}, {-0.261157,1.314246}, {-0.724085,0.698159}, {-0.487339,0.343089}, {0.256545,0.306148}, {1.087370,1.360731}, {0.909221,0.906951}, {0.840193,0.271044}, {-0.449186,-0.712406}, {-0.100897,-0.905420}, {-1.281902,-0.335234}, {0.740303,0.011500}, {0.899467,-0.124748}, {0.536766,-0.366208}, {-0.643354,0.691747}, {-0.261056,-0.256182}, {0.272516,-0.258403}, {0.631447,-0.167719}, {-0.196437,-0.052842}, {1.508024,-0.936465}, {-0.180365,-1.378710}, {-0.249668,0.002152}, {1.598053,1.741993}, {-1.056432,0.117693}, {0.515300,1.069078}, {-0.212007,-1.048830}, {0.335613,0.489364}, {-0.796184,-1.069425}, {0.083158,0.697802}, {-1.235153,-0.772422}, {-0.357202,-0.012821}, {-0.593893,-1.181373}, {0.050524,-0.401930}, {0.074720,0.364095}, {-0.079716,-1.693522}, {0.100870,-0.312204}, {0.947544,0.242623}, {-0.643159,-0.717020}, {0.224527,0.733617}, {0.216476,1.876947}, {0.332304,-0.401619}, {1.189563,-1.382521}, {0.908890,-0.674780}, {0.437119,-0.298161}, {-0.058059,-0.200793}, {0.362838,0.619364}, {0.117785,0.015330}, {-1.151039,-0.121108}, {-0.542608,0.263258}, {-0.605341,1.175677}, {-0.526847,0.683678}, {-0.003684,-0.546691}, {0.101077,-0.028945}, {-0.699619,0.028653}, {-0.287565,0.909150}, {-0.003493,0.475101}, {0.110908,-0.450847}, {0.822169,-0.268593}, {-1.331173,0.303365}, {0.354079,1.195309}, {1.074010,-0.113039}, {1.358327,0.349989}, {0.328412,0.126190}, {0.251235,0.427830}, {-0.681032,-0.654465}, {0.947471,-0.314890}, {-0.506438,0.044035}, {0.437633,-0.586149}, {0.108011,0.609608}, {-0.313954,0.566877}, {-0.057536,-1.682225}, {0.588066,0.182714}, {1.063758,-0.640294}, {0.843978,-0.415465}, {1.201541,1.527708}, {-0.299630,-0.584595}, {0.591297,0.504796}, {-0.056764,-0.947796}, {-0.517348,-0.289759}, {-0.288464,0.617447}, {0.348633,-1.043987}, {0.054553,-0.520532}, {-0.090965,-0.147650}, {0.086384,-0.577068}, {-0.102547,-1.253433}, {0.635189,0.519118}, {-0.720591,-1.495902}, {0.080849,0.205010}, {0.751958,-0.190846}, {-0.538937,-0.320929}, {-0.612417,0.554560}, {-0.851261,0.869392}, {1.198195,-0.529736}, {0.057548,-0.579206}, {-1.025654,-0.151350}, {0.303841,-0.211254}, {0.446343,-1.552067}, {0.315397,-0.808794}, {-0.063785,0.774825}, {0.783816,-0.157279}, {-0.693511,0.332481}, {-0.234900,0.528764}, {0.596556,0.333542}, {1.373749,-0.817280}, {-0.295436,-0.145692}, {0.006813,0.157722}, {0.516578,-0.790212}, {0.478924,-0.959898}, {0.370258,0.489034}, {0.713319,-0.586588}, {0.332856,0.078227}, {-0.425185,-0.677807}, {-0.149519,0.199877}, {1.263811,-0.509766}, {0.233085,-0.479083}, {0.856984,0.232124}, {-0.398816,0.118417}, {0.725782,0.573860}, {-0.423177,-0.195038}, {0.479589,-0.152071}, {-0.606474,1.399722}, {-2.041557,0.729519}, {-0.617790,-0.668932}, {0.137657,-1.422402}, {-0.786831,-0.619224}, {-0.149759,-0.165667}, {0.190154,0.929670}, {-0.287768,1.169585}, {1.061637,0.067450}, {-0.140288,-0.424489}, {0.785589,-0.241400}, {-0.992917,0.456275}, {0.543095,-0.526169}, {0.262447,0.354750}, {0.115837,-1.383394}, {-0.765803,-0.645191}, {0.382408,-0.004403}, {0.124288,-0.280736}, {1.156532,0.881587}, {1.088618,0.321389}, {-2.279889,-0.488846}, {-1.135730,0.591114}, {-1.093988,-0.708227}, {-0.153356,0.947910}, {0.191071,-0.367728}, {0.332287,0.126137}, {-0.150579,-0.128056}, {-0.515071,1.279206}, {-0.471647,0.450751}, {-0.177599,0.084528}, {0.405248,-1.192993}, {-1.199598,-1.871218}, {-1.009935,0.125214}, {0.860742,-0.062698}, {-0.657040,-1.041627}, {0.026116,-0.059837}, {-1.346135,1.113968}, {-0.624805,0.301187}, {0.274945,0.937253}, {0.478006,0.733921}, {-0.612665,-0.715399}, {-0.016013,0.268927}, {0.319591,0.208865}, {1.344190,-0.216045}, {0.130151,1.142744}, {0.172902,-0.626551}, {-1.349281,-0.008253}, {0.621623,0.463895}, {0.184316,0.698054}, {-0.585348,-1.744754}, {0.109077,0.127077}, {0.216486,0.290303}, {0.785660,0.927775}, {0.384514,-0.692532}, {0.727702,-0.034449}, {-0.057908,0.127263}, {0.271526,0.524594}, {-0.858654,-0.086733}, {0.464001,0.064140}, {0.227926,1.431933}, {0.138844,0.005704}, {0.141627,-0.127211}, {-1.003825,0.034579}, {-0.388278,0.179387}, {0.158985,0.905558}, {-1.242335,0.519667}, {-0.047141,0.947802}, {0.336262,-1.612058}, {0.614542,-0.464413}, {0.982166,-1.628173}, {-0.870128,-0.651271}, {0.486409,0.436105}, {0.108930,1.638884}, {-0.021817,-0.425794}, {0.039699,-0.387185}, {-1.225415,-0.377385}, {0.391090,-0.505627}, {0.651504,-0.883661}, {-0.276837,0.691315}, {0.383239,0.054891}, {0.297223,-0.197196}, {1.388005,-0.270560}, {-1.400360,0.278525}, {-2.093290,0.098416}, {0.610011,1.401331}, {-0.945061,-0.541204}, {0.412258,-1.330328}, {0.173694,-1.109422}, {-0.159121,-1.744757}, {0.285345,1.096001}, {0.128427,-0.244146}, {0.067905,-0.156659}, {-1.018499,-0.578789}, {0.505971,0.765807}, {1.015914,0.376986}, {0.790707,-1.646495}, {0.487164,-0.607104}, {-0.697297,-0.367804}, {-0.565402,0.674289}, {1.188518,0.712744}, {-0.592933,-0.373505}, {-0.203660,1.226443}, {-0.098045,-0.097690}, {0.433178,-1.020054}, {-0.430052,-0.776739}, {0.324026,-0.937248}, {0.701878,-0.493328}, {0.230826,0.826293}, {0.004731,0.068967}, {-0.498959,0.400514}, {-0.513084,-1.025155}, {0.421206,-1.417798}, {-0.981820,-0.435834}, {0.506125,0.020348}, {-0.235266,-0.135010}, {0.838326,-0.650392}, {-0.396983,-0.682428}, {0.182128,0.408830}, {0.727117,-0.622519}, {-0.068542,0.310867}, {0.442916,0.767343}, {0.044007,-1.159112}, {0.493622,-0.162111}, {0.380900,-1.503298}, {0.423037,0.548507}, {-1.568571,0.528272}, {0.547764,-0.029898}, {-0.356876,0.578955}, {0.515241,0.565923}, {0.167784,1.612647}, {0.169705,0.087695}, {1.177100,0.004351}, {-0.689952,0.053029}, {0.154453,1.419159}, {-0.546385,1.058132}, {0.021626,-0.754253}, {0.741607,-0.361204}, {-0.057849,0.999592}, {-0.015000,1.519017}, {-0.384562,0.938159}, {1.000041,1.295279}, {-1.069485,-0.177887}, {-0.656125,-0.402525}, {-0.338546,0.308619}, {-0.201887,0.631236}, {-0.576348,-1.438422}, {0.094374,-0.332953}, {1.717504,0.411315}, {-0.139432,0.242414}, {1.030451,-0.541582}, {-0.132491,0.928665}, {-0.929343,0.330223}, {0.212063,-0.999967}, {-1.546734,1.473279}, {0.895231,-0.122118}, {-0.024873,0.397475}, {-0.471758,0.171216}, {-0.384773,0.411799}, {1.604132,0.192566}, {-0.352284,-1.692873}, {-0.127207,-0.166561}, {-0.087210,-0.289254}, {0.069733,0.733600}, {-0.481091,-0.748068}, {0.025913,-0.282440}, {0.385995,-0.269872}, {0.807898,0.547847}, {0.920522,-0.253019}, {0.590344,0.287209}, {-0.264166,-1.420356}, {0.741891,-0.453230}, {-0.005511,-0.334318}, {0.584215,-0.105380}, {1.235921,0.737084}, {0.073373,0.196251}, {0.050188,0.318437}, {0.326590,0.608379}, {-0.322564,0.284616}, {-0.646108,-0.359319}, {0.322070,0.143369}, {-0.863728,-0.775195}, {0.831176,0.342701}, {0.032958,-0.098237}, {0.571168,-0.012336}, {0.182689,0.790901}, {-0.425154,-0.855671}, {-0.898454,0.187687}, {-0.526788,0.506000}, {0.653615,0.022943}, {-0.027712,0.795147}, {-0.439436,0.442340}, {0.706258,-1.337857}, {0.478575,0.834826}, {-1.198496,-0.435258}, {-0.626551,-0.689605}, {0.463850,-1.046754}, {0.616860,0.015892}, {-0.036480,-0.180819}, {-0.850951,0.360575}, {-0.778725,0.021580}, {-0.003573,0.011854}, {0.901575,1.139995}, {-1.397778,-0.965160}, {0.828026,-0.382807}, {-0.014620,0.930159}, {-1.300195,-0.110779}, {0.749689,0.981340}, {0.030482,0.848674}, {0.187375,-0.097744}, {0.209488,-0.196027}, {0.347616,-0.395632}, {0.329045,0.511381}, {1.124516,-0.961421}, {-0.221487,-0.120998}, {-1.498910,1.138313}, {-0.900081,0.195057}, {0.353490,-0.370964}, {0.461766,-0.958569}, {-0.156196,-1.009013}, {-0.303470,0.211825}, {0.970393,0.376784}, {0.495209,0.940894}, {-0.760660,-0.732722}, {-0.277112,-0.555909}, {0.336774,-0.081721}, {-0.764784,1.256559}, {0.729786,0.187455}, {-1.516521,-0.580250}, {-0.060807,1.773198}, {0.384536,-0.806667}, {-0.704657,-0.622280}, {-0.801176,0.052175}, {-0.590213,1.990490}, {-0.177006,-0.136596}, {-0.043811,-1.299593}, {-0.581471,0.077527}, {0.234488,-0.891170}, {-0.346771,1.199070}, {0.082643,1.293400}, {0.936822,0.025082}, {-0.731120,-0.476702}, {-0.934721,-0.022417}, {0.222389,0.501521}, {-0.120435,0.461318}, {-0.065142,0.306212}, {0.295570,-0.442311}, {0.993401,0.404579}, {-0.453363,0.509552}, {0.282236,0.306297}, {-0.536249,-0.901250}, {-0.425114,0.194843}, {-0.519253,1.853919}, {-0.710138,0.608713}, {0.021883,-0.406892}, {-0.119297,1.104563}, {-1.009286,0.692377}, {-1.312874,0.446078}, {0.820048,0.144155}, {0.594350,-0.518111}, {0.445168,-0.296112}, {0.528797,0.275437}, {-0.975129,1.054113}, {-0.141110,-0.278283}, {-1.108218,0.758768}, {-0.720411,0.105147}, {0.012397,0.377536}, {-0.600491,-0.143086}, {-0.953860,-0.409408}, {0.207974,-0.533590}, {0.505393,-0.929868}, {0.693728,-0.168896}, {1.295575,0.330245}, {0.197670,-0.003298}, {-0.644899,-0.599500}, {0.369732,-0.579213}, {-0.403831,-1.208236}, {0.102628,0.417057}, {0.225578,1.013419}, {-0.251294,-0.004769}, {0.889491,1.815880}, {-1.038993,0.521891}, {0.764166,-0.213457}, {-0.562020,-1.509213}, {0.211293,-0.936981}, {-0.463538,1.090030}, {-0.553620,-0.791400}, {0.611880,-0.306484}, {0.044468,-0.166676}, {-0.023328,-1.778915}, {-0.214294,-0.414020}, {-0.756939,-1.513298}, {0.250125,-0.882986}, {1.120913,-0.169637}, {0.645831,-0.162204}, {1.177705,-0.888318}, {0.363945,-0.029949}, {0.402238,-0.546777}, {-0.094455,-0.101378}, {0.164174,0.060548}, {-0.169991,-1.176339}, {-0.374419,-0.123020}, {-0.914397,-0.405280}, {-0.853371,-0.380429}, {1.609595,1.394657}, {0.488861,0.494798}, {0.158526,0.345015}, {0.803121,0.150331}, {-0.081292,0.181697}, {0.393064,-0.478711}, {0.279182,0.092095}, {0.430334,-0.073225}, {0.014806,0.588098}, {0.913267,0.970571}, {0.646704,0.609592}, {0.566444,0.775254}, {-0.335177,1.080688}, {0.127562,1.140199}, {0.165559,-0.264557}, {-1.069915,-0.891586}, {0.507922,-0.743511}, {-0.734341,1.039713}, {-0.738939,-0.058723}, {0.759593,-1.014583}, {0.555667,-1.733928}, {-1.367914,-1.030299}, {0.188542,-0.418601}, {0.793444,-0.741383}, {-0.040384,0.198946}, {1.361842,-0.048743}, {-0.225959,0.500185}, {-0.613758,-0.930241}, {-1.065079,-1.626019}, {-1.661331,0.447628}, {-1.178209,-1.594785}, {0.385772,0.687990}, {0.320431,0.326874}, {-0.209635,0.241160}, {-0.478316,-0.322029}, {-1.574782,0.928755}, {-0.150281,0.335387}, {0.346979,0.106675}, {-0.979085,-0.448834}, {-0.484871,-0.130679}, {-0.882404,-0.284669}, {-0.135947,1.428153}, {0.289974,0.663804}, {-0.832558,-0.786738}, {0.566306,1.650858}, {-0.618622,-0.104784}, {-0.597685,-0.212515}, {1.865293,1.206891}, {0.617878,-0.378103}, {-0.276038,1.353459}, {0.879395,0.084117}, {-0.648554,-0.500746}, {0.603251,-0.759062}, {-1.056790,0.769620}, {0.451470,-0.190342}, {1.668428,-1.349133}, {-0.399983,-1.187873}, {-0.876715,0.206248}, {0.800569,-0.255028}, {0.108497,1.535395}, {-0.321630,0.307984}, {-0.010085,-1.543582}, {0.733422,-0.807197}, {-0.527735,0.361278}, {0.546397,-0.913698}, {0.386942,-0.026931}, {-0.683948,1.644054}, {-0.713074,-0.760496}, {0.729880,0.611484}, {-0.324111,-0.185442}, {0.513507,0.655970}, {0.973032,0.708102}, {0.162839,-1.911128}, {0.171333,0.442628}, {0.793978,0.363283}, {0.139764,-0.553196}, {1.477350,0.571024}, {0.046847,-0.083842}, {0.774276,0.538647}, {-1.232450,-0.279392}, {0.998783,0.699271}, {-2.497752,0.890340}, {-0.686000,-0.489450}, {-0.622210,0.728997}, {-0.896078,-0.269973}, {0.254307,0.947307}, {1.029120,0.030115}, {-0.457637,0.586413}, {-0.570341,0.796948}, {-0.326200,0.703162}, {0.718013,-0.641897}, {-0.347796,-0.117920}, {0.980266,-0.427121}, {0.715130,0.436598}, {-0.354809,-0.981161}, {0.609447,0.117866}, {-1.117899,1.185150}, {-0.070233,0.421426}, {0.362961,-0.220281}, {0.091918,-0.947668}, {-0.918369,0.893874}, {1.165251,0.420864}, {1.432566,-0.178810}, {-0.356868,-0.188257}, {-0.815491,-0.404427}, {-1.070312,-1.216305}, {-0.318984,-0.583511}, {1.848678,0.453940}, {-0.708129,0.177312}, {-0.893931,1.710539}, {0.093921,0.348349}, {1.105949,0.999284}, {0.967769,-0.721817}, {0.937282,0.156570}, {1.436906,1.511836}, {0.508619,-0.010131}, {-0.069583,-0.309253}, {0.108287,0.135978}, {-0.739620,-0.139477}, {-0.651608,1.778285}, {0.027295,-0.276027}, {0.751467,0.405693}, {-0.350001,1.687277}, {0.358628,-0.135793}, {1.669210,-0.094304}, {0.563354,0.389800}, {-0.248111,-0.198466}, {0.074279,-0.311566}, {0.205118,-0.722409}, {0.284728,0.431713}, {-0.299721,0.775480}, {0.288778,1.204617}, {-2.612038,1.096907}, {0.138972,0.125366}, {0.298215,0.304176}, {-0.193236,1.529766}, {0.485275,-0.982963}, {0.725341,-0.936405}, {-0.065237,0.208370}, {0.125534,-0.205573}, {-1.821296,0.674082}, {-0.275038,0.327760}, {-0.727191,-1.227306}, {-0.865239,0.939065}, {-0.803833,1.620915}, {-0.842433,-1.108209}, {-0.401148,-0.736410}, {-0.115040,-1.629236}, {-2.049102,-0.888722}, {0.563586,-1.881832}, {0.500135,0.870559}, {-0.623029,-1.087557}, {0.560799,-0.777685}, {-0.023666,-0.920057}, {0.514122,-0.387123}, {0.330311,-0.267867}, {0.141501,-0.770913}, {0.895122,1.295559}, {0.235886,-0.142025}, {-1.600266,1.392146}, {0.062394,-0.199017}, {0.105093,0.847228}, {-0.004692,-0.611023}, {-1.105202,-0.676440}, {-0.803199,0.080607}, {1.068037,-1.432548}, {-0.073955,0.534296}, {-1.544967,-0.292418}, {-0.018596,0.600587}, {0.693918,0.111383}, {0.875333,0.538827}, {0.810163,0.603066}, {-0.991128,0.633334}, {1.410649,-0.273373}, {-1.402586,0.048299}, {-0.476167,-0.040214}, {1.133741,0.893093}, {-1.976746,0.495152}, {-0.762297,-0.434453}, {-0.407391,0.458918}, {0.081289,-0.693117}, {-0.901769,-0.566278}, {0.294244,0.018293}, {-1.778410,0.169995}, {-0.065897,-0.565356}, {-0.067741,-0.386928}, {-0.042227,-0.470778}, {-0.724262,-0.448146}, {0.799391,-0.353504}, {0.736085,-0.189575}, {-0.170609,-0.001362}, {-0.876784,-0.416884}, {-1.194944,-1.159666}, {0.378294,-0.050373}, {2.029991,0.034750}, {0.488729,0.272216}, {0.100163,0.084453}, {0.619746,0.787200}, {1.516011,0.190597}, {0.242183,-0.282804}, {1.348479,0.195434}, {1.574083,0.044098}, {-1.648078,0.005385}, {-0.240798,0.327597}, {-0.072394,-0.742375}, {-0.357626,-0.537052}, {-1.019427,-1.502025}, {0.265137,1.275985}, {-1.408237,0.487417}, {0.488564,0.094077}, {0.538473,0.089383}, {0.822984,-0.041699}, {0.446649,0.965423}, {0.425275,0.258184}, {0.293588,-0.009747}, {-1.901312,0.094518}, {0.055270,0.104028}, {0.717610,-0.083141}, {-1.028907,0.529666}, {0.276336,-1.707147}, {0.518490,0.271655}, {-0.157786,-0.735939}, {-0.642959,0.105473}, {-0.194654,0.744489}, {1.057427,0.578372}, {-0.078556,0.535382}, {0.275007,0.425924}, {-1.493477,0.323239}, {0.384662,-0.732389}, {-0.458062,-0.246727}, {-0.009941,-0.256232}, {-0.431288,0.694332}, {1.237922,-0.196164}, {0.049717,-0.417202}, {-0.828197,0.209999}, {-1.328594,-0.698908}, {0.817510,1.298454}, {0.021412,-0.376025}, {0.656062,-0.479696}, {0.739794,-0.697219}, {0.359927,0.330324}, {0.490626,-1.394430}, {0.003006,-0.052538}, {0.188833,0.728305}, {-1.187172,0.758908}, {-0.519732,-1.148840}, {-0.411235,-1.217214}, {0.955021,-0.430176}, {-0.523480,-0.587903}, {-1.227340,0.033012}, {0.122805,-0.649916}, {0.990446,-0.160799}, {0.217109,0.439570}, {0.197974,-0.855599}, {-1.016884,-0.834066}, {-0.685161,0.797699}, {0.718871,0.735908}, {-2.084638,-0.653982}, {0.229928,0.252590}, {0.876971,-1.135835}, {0.208727,-1.096199}, {0.189714,0.324005}, {0.559235,0.891645}, {-0.337588,1.226503}, {-0.633028,1.304579}, {0.352611,0.118112}, {0.755508,-1.202909}, {-0.368064,0.379022}, {0.187482,0.040502}, {-0.489215,-0.316624}, {-0.148897,1.794500}, {0.617933,0.380534}, {0.724284,0.929908}, {-0.101068,0.829591}, {0.239707,0.830689}, {1.419880,-0.703233}, {0.428630,-0.738185}, {0.188227,-0.067175}, {0.848946,-0.139604}, {1.358890,-0.759908}, {-0.598246,-1.356423}, {0.708571,-0.747022}, {-1.307309,-1.158771}, {1.114919,0.003653}, {0.247448,0.759891}, {0.629880,-0.013493}, {0.581883,-0.841438}, {-0.348783,0.559365}, {0.553004,0.045767}, {-0.689707,0.334441}, {0.783204,0.262356}, {1.422351,-0.205031}, {2.033491,0.619792}, {-0.663187,-0.541048}, {0.546304,0.061896}, {0.954720,1.149216}, {-0.559310,0.175198}, {1.274649,1.348253}, {-0.247850,-0.207347}, {1.742038,1.103291}, {0.043844,-0.424239}, {0.614981,-0.080676}, {-0.517806,1.025811}, {0.801125,-0.606164}, {0.473503,0.520220}, {-0.308974,0.331494}, {-1.295514,-0.646832}, {-0.472990,-0.230161}, {0.174489,-0.366097}, {-0.118363,-0.163279}, {-0.200880,-0.899742}, {0.998390,-0.199202}, {-0.622541,-0.695766}, {0.669754,-0.206478}, {0.106122,0.549600}, {0.591344,0.214104}, {0.488377,0.644834}, {1.136572,1.169122}, {0.323891,0.444824}, {-0.562209,-0.060314}, {0.213956,-1.280496}, {-0.321971,-1.103028}, {0.672409,-0.083641}, {0.495207,0.706465}, {-0.494982,1.309929}, {0.994709,-0.975631}, {0.059966,-0.007228}, {1.295286,0.210362}, {-1.155912,0.093655}, {-0.270843,0.470326}, {0.756844,0.345241}, {0.514597,0.140073}, {-0.621769,0.148131}, {0.357821,-0.203675}, {-0.273598,-0.884954}, {-0.849266,-0.397208}, {-0.405585,-1.645132}, {-0.010028,-0.355219}, {-0.143243,0.535060}, {-0.489155,0.541734}, {-1.917934,0.442072}, {1.120600,0.609251}, {-0.806215,-0.431671}, {1.317120,-1.219868}, {0.067240,1.040216}, {-0.567193,-1.387665}, {0.795042,0.402961}, {-1.025794,-0.277941}, {0.649983,1.281336}, {-0.256848,0.005927}, {0.607023,0.715590}, {0.540951,-0.424004}, {-0.353391,1.289066}, {1.755964,-0.674437}, {-0.664991,-0.691634}, {-0.096792,0.422837}, {-1.167967,0.555492}, {0.152719,-0.072909}, {0.116643,0.226822}, {-0.630662,-0.558520}, {0.414169,-0.530572}, {0.717343,-0.343964}, {0.485011,-0.965124}, {0.132872,-1.176696}, {-0.542650,-0.059320}, {-0.771646,-0.399126}, {-0.848580,0.963529}, {0.186147,0.262803}, {0.352650,0.664986}, {0.993840,0.913475}, {-0.484132,-0.800343}, {0.680518,0.491133}, {-0.187661,0.025441}, {-0.647229,0.234518}, {1.007825,-0.196186}, {0.956857,-1.015468}, {-0.722691,-1.369092}, {0.254518,0.088674}, {0.029979,-0.009861}, {0.301615,0.155056}, {0.039314,0.343316}, {0.145456,1.183385}, {0.775872,0.441937}, {-0.305562,-1.261231}, {-0.509677,-1.261546}, {-0.452788,-0.152168}, {-0.024417,0.566667}, {0.156338,0.402470}, {0.451700,-0.516105}, {0.517440,0.675626}, {0.108431,0.416795}, {-0.764284,-0.532834}, {1.206985,0.069426}, {-0.932342,1.046480}, {-0.777393,0.052027}, {-1.092549,0.033582}, {0.197445,-0.491148}, {-0.411677,-0.336139}, {-0.037210,-0.926280}, {-0.708483,0.693739}, {0.664921,-1.385649}, {-1.353380,1.021171}, {-0.241049,-0.683939}, {-0.029907,0.167199}, {-1.608903,-0.559216}, {-0.181052,0.821785}, {1.590072,-1.518116}, {1.057565,-0.689682}, {-1.281043,-0.980591}, {0.304693,-1.080609}, {-0.240484,0.707799}, {-0.768310,-0.067520}, {0.843861,-0.009503}, {0.807601,-0.431015}, {-0.512754,-0.550360}, {1.284096,-1.260585}, {-0.922574,0.298207}, {-0.393917,-0.519193}, {0.127912,-0.984685}, {-0.144986,0.035279}, {0.188536,0.393360}, {0.259745,-0.309148}, {-0.677779,-0.595934}, {-0.037591,-0.101627}, {-0.309109,0.365495}, {-0.102452,1.566645}, {1.387901,-0.195166}, {-0.446879,-0.526524}, {0.997398,-0.882687}, {0.031554,0.124163}, {-0.931075,0.093264}, {0.482681,1.855809}, {-0.010467,0.925571}, {0.169549,0.122786}, {-0.090570,-0.028792}, {0.849088,-1.107529}, {0.050598,0.536702}, {-0.571372,0.390521}, {0.337937,0.089426}, {-0.070935,-0.296006}, {-0.543102,-0.683296}, {-0.082528,1.188412}, {-0.075670,0.684850}, {0.217929,0.127319}, {0.244448,0.690258}, {-0.526178,0.479326}, {-0.126780,1.089720}, {0.456035,-0.008824}, {-0.236651,0.009875}, {-0.671016,-0.961407}, {0.700866,0.834313}, {-0.049151,0.411310}, {0.069039,0.176343}, {1.372698,0.367522}, {-0.107484,0.090397}, {-1.242871,0.580082}, {0.352131,0.516255}, {-0.409130,-0.283403}, {0.399885,-0.173183}, {-0.911535,-1.057501}, {-0.134356,-0.571363}, {-0.200745,-0.714382}, {0.247331,-1.213185}, {-0.183543,0.319417}, {-0.359287,-0.789582}, {-0.258945,-0.568476}, {0.371024,-0.265164}, {-0.075029,-1.608623}, {0.082652,2.076230}, {-1.223628,-1.586630}, {0.405567,0.823574}, {0.054968,0.521170}, {-1.478086,0.062628}, {0.111418,-0.029518}, {-1.266318,0.854860}, {0.944464,-0.835138}, {0.460958,0.185149}, {-0.058453,0.047748}, {0.078237,-0.159788}, {0.734696,0.268869}, {0.027735,-1.024541}, {0.228605,-1.028311}, {-0.264515,0.187069}, {0.016598,0.390539}, {0.080454,0.084167}, {-0.373853,-0.258455}, {0.496835,-0.132385}, {-1.257065,0.046987}, {0.335159,0.020590}, {0.466133,0.439269}, {0.014981,1.110095}, {0.785194,0.155149}, {-0.920996,-0.294657}, {-0.108107,0.667374}, {-0.074103,0.487597}, {0.309323,0.450575}, {1.192132,0.937428}, {-0.334944,-0.222933}, {0.412831,-1.114841}, {0.239488,-0.354992}, {0.444740,-0.426829}, {-0.133782,0.466919}, {-0.488809,0.609075}, {0.312304,-0.261759}, {-0.790404,-0.962166}, {-0.274962,-0.943480}, {-0.063458,0.313199}, {0.754376,-0.624958}, {0.894785,0.254635}, {-0.454480,-0.679299}, {-0.017854,-0.594485}, {-0.423178,-0.160964}, {-0.458684,-0.155883}, {-0.663973,0.506733}, {0.541449,-0.654020}, {0.172654,0.253066}, {1.021464,-0.901336}, {0.111092,-0.491099}, {0.252050,-0.769468}, {-0.617856,0.312547}, {-0.409293,-1.120223}, {0.039604,-0.485376}, {-1.493487,0.335907}, {0.274749,0.723980}, {-0.203481,-0.723032}, {-0.495656,-0.759281}, {1.456744,-1.628369}, {-0.975111,0.016837}, {-0.622091,1.044867}, {-0.434081,-0.462833}, {-0.315109,-0.189411}, {0.081910,-0.831801}, {-0.414067,0.096517}, {0.024855,-0.006315}, {-0.505820,0.029401}, {0.677997,-0.561131}, {1.161094,-0.385332}, {0.171413,-1.071286}, {0.796474,0.125143}, {0.737257,0.495755}, {-0.760664,0.609637}, {0.050209,0.872019}, {-0.779293,-0.049293}, {-0.084521,-0.987525}, {0.836932,0.679155}, {0.295252,-0.767659}, {-0.018792,0.419797}, {-1.163658,0.443970}, {-0.266127,-0.327858}, {0.087685,-1.161947}, {-0.369729,0.762725}, {0.172665,-0.329469}, {0.330880,0.749120}, {-0.816435,-0.491657}, {0.111348,-1.505915}, {0.209077,0.184622}, {-2.342060,-0.110587}, {0.307412,0.700396}, {0.113512,-0.465633}, {-0.646155,0.716656}, {-0.638825,-1.478782}, {0.450901,-0.035870}, {0.035266,1.827315}, {0.737470,-0.119507}, {-0.228202,0.108246}, {0.825314,0.200114}, {0.487949,0.471538}, {-0.357296,0.391417}, {0.180314,0.346172}, {0.559934,0.139351}, {-1.305116,0.414318}, {0.716210,0.212909}, {-0.013896,1.197851}, {-1.824869,-0.867501}, {-0.515474,0.050329}, {-0.414146,-0.076725}, {0.708817,-1.133978}, {-0.639175,0.428318}, {1.050038,0.727185}, {-0.702393,0.513455}, {0.276582,0.809652}, {0.077934,0.198272}, {2.196177,0.991960}, {-0.440575,-1.385910}, {0.706450,-0.276282}, {-0.391529,0.375718}, {0.486569,-0.694199}, {-0.074971,-1.160590}, {0.662076,0.018694}, {0.336811,-0.550141}, {-0.387020,-0.397890}, {-0.096345,0.269838}, {-0.026117,-0.057475}, {0.158403,-0.187549}, {0.420344,-0.129844}, {0.190663,-0.087482}, {-0.366855,0.893119}, {-0.249219,0.316325}, {-0.117221,-0.587177}, {-1.294407,1.470405}, {0.418475,-0.548199}, {1.001920,-0.042350}, {-0.292716,-0.515533}, {-1.153163,0.988116}, {-0.289238,-0.720697}, {-0.106232,-1.124727}, {-0.965999,0.865133}, {-0.401036,0.078021}, {-1.109930,-0.864017}, {0.297575,0.865459}, {0.995143,0.682193}, {-0.599609,-1.702099}, {0.883933,-0.307388}, {0.802376,-0.004978}, {-0.401257,0.112706}, {0.384942,-1.000741}, {-0.989461,0.937746}, {0.964376,-0.361083}, {1.014743,-0.689544}, {-1.640868,0.131432}, {0.631133,-0.101351}, {0.185813,0.273002}, {-1.225259,-0.530792}, {1.054923,0.095617}, {-0.207572,0.807720}, {0.950261,-0.272710}, {-0.842451,1.027046}, {-0.948909,0.464619}, {-0.652197,-0.593345}, {0.386114,0.647057}, {-0.348600,-0.148170}, {0.035874,-0.075556}, {-0.566582,0.252229}, {-1.150907,0.142389}, {-0.373560,0.708924}, {0.179962,0.177331}, {0.017741,1.577087}, {-0.489230,-0.574279}, {-0.239784,0.779613}, {-0.897308,-0.203218}, {0.925241,0.527958}, {1.036630,0.416062}, {0.888976,0.209959}, {0.455977,0.361892}, {0.395073,0.243300}, {0.499225,0.860184}, {1.188627,0.506501}, {-0.358162,-0.525381}, {1.769127,-0.519498}, {-0.973750,0.263258}, {0.081556,-0.101205}, {1.293777,0.240134}, {0.128978,-1.442584}, {0.092528,-0.197125}, {-0.117172,-0.490877}, {-0.946199,-0.606982}, {0.652803,-0.511129}, {0.043937,-0.032281}, {0.284060,0.005765}, {-0.734968,-1.145450}, {-0.025606,-0.626951}, {-0.375895,0.717175}, {0.438582,0.918001}, {0.038609,-1.114450}, {1.118108,0.106149}, {1.272686,0.846763}, {0.633646,-0.105666}, {-0.205043,0.210912}, {-0.334164,-0.085337}, {-0.206717,0.894467}, {-0.085313,1.097756}, {-0.399149,-0.100234}, {-0.149590,0.007444}, {0.494023,-1.223272}, {-1.126557,-0.292829}, {1.506312,-0.733856}, {0.129777,-0.464705}, {-0.430088,0.615048}, {1.070713,1.226466}, {-0.500223,-0.890256}, {0.241018,-0.691634}, {-0.425803,-1.598684}, {-0.349414,0.668187}, {-0.759980,-1.039801}, {0.099818,0.588593}, {0.661566,-0.452644}, {-0.276551,-0.245314}, {0.062076,0.738192}, {-0.436350,-1.545334}, {-0.338107,0.327650}, {-0.671510,-0.169933}, {-0.250838,-0.394788}, {-0.716007,0.057696}, {0.716020,0.323465}, {0.287767,-0.496472}, {-1.361017,-1.022037}, {-0.389014,-0.327876}, {0.005581,0.230345}, {1.057323,0.344696}, {0.404404,0.524537}, {0.213022,1.094306}, {-0.594658,-0.593064}, {-0.748241,0.800080}, {-0.115638,-0.166546}, {-0.107154,-0.697047}, {-0.458238,-0.452683}, {-0.336989,-0.047009}, {-1.289175,1.647780}, {0.150375,-0.407781}, {0.597241,-0.547383}, {0.443295,0.936489}, {0.590847,-0.187656}, {-1.212900,0.882074}, {0.484389,-0.686777}, {1.149782,-0.194390}, {-1.172668,0.032417}, {0.260298,-1.012974}, {-0.294107,-1.012750}, {0.801182,0.633359}, {0.239464,0.241602}, {-0.881659,-1.163284}, {0.489810,-0.463799}, {0.565567,0.113305}, {-0.556349,-1.347072}, {-1.062547,-0.931198}, {-0.738569,-0.353611}, {1.317955,-1.099776}, {0.148693,-0.201014}, {0.133189,0.681195}, {-0.120725,0.135954}, {0.109002,-0.457197}, {-0.694733,0.709827}, {0.529587,0.628810}, {-1.078803,0.606417}, {-0.135627,1.108991}, {0.037637,-1.260746}, {-1.080624,1.191058}, {0.359973,0.135705}, {0.232936,0.269440}, {0.002593,-0.783674}, {-0.069699,1.212021}, {-0.664211,-0.740183}, {0.165729,0.041761}, {-0.317411,0.070021}, {-0.172353,-0.428702}, {0.332293,-0.774738}, {-0.917322,-0.820716}, {-0.058246,-0.746256}, {0.477261,-0.232573}, {-0.644001,0.166028}, {-0.429890,0.847238}, {-0.056154,-1.187696}, {-0.879377,-0.311314}, {-0.187718,-0.505879}, {0.145068,0.268477}, {0.344934,-0.459281}, {-0.892009,-0.676237}, {-0.648511,-0.152063}, {0.285463,0.019339}, {-0.020319,-0.901552}, {-0.937522,0.163649}, {-0.431348,-0.446665}, {-0.614010,-0.352647}, {0.890186,-0.313942}, {0.187972,0.408152}, {-0.040763,-0.587026}, {-1.192632,-0.395902}, {-0.089341,0.188121}, {-1.109439,0.101585}, {-1.721289,-1.011886}, {-0.451708,0.401072}, {-0.878256,-0.235344}, {0.572753,-0.329785}, {-1.136417,1.039607}, {-0.433782,-0.120676}, {0.567816,0.084631}, {0.546969,-0.179829}, {0.225644,-0.412318}, {0.171741,0.816235}, {-1.141608,-0.629613}, {-0.537893,-0.566981}, {0.734572,1.390754}, {0.099797,-0.210714}, {-0.603835,-0.911116}, {-0.919496,0.154357}, {-0.200722,-0.585775}, {0.721968,0.331313}, {0.561601,0.473508}, {0.550664,-0.258516}, {-0.237893,0.651197}, {-0.756266,0.166779}, {-0.705900,0.481691}, {-0.006736,0.003238}, {0.955769,0.739538}, {-1.102150,-2.203276}, {-0.152229,-0.119703}, {-0.498020,0.338978}, {1.435975,0.240195}, {0.009239,2.011670}, {0.176554,0.774631}, {-0.793129,0.211589}, {-0.072293,0.240170}, {0.881402,0.528900}, {0.458104,0.297768}, {1.425877,-0.725340}, {-1.097623,-0.304087}, {-0.127377,-0.767495}, {-0.019548,0.382421}, {0.498701,1.214140}, {0.443213,-0.118249}, {-0.071224,-0.014039}, {0.630956,-1.420196}, {1.092859,-0.858199}, {0.601709,-0.454233}, {0.061239,-0.833424}, {-0.018905,0.604909}, {0.465324,-1.778430}, {-0.755851,0.803587}, {1.085178,-0.492003}, {0.820772,-0.064660}, {0.125793,-1.132899}, {0.315742,-0.133927}, {0.890772,0.347966}, {0.509473,-0.904259}, {0.313390,-1.242697}, {-0.183140,-0.195672}, {-0.664699,-0.149961}, {1.498274,-0.991017}, {-1.516974,-0.399403}, {-0.916197,0.142253}, {0.040795,-0.428170}, {-0.845305,0.260543}, {1.148172,1.459513}, {-0.079861,0.168896}, {0.687934,0.865708}, {-0.536824,0.124210}, {-0.692623,-1.014247}, {-1.316924,-0.789046}, {0.636503,-0.209795}, {0.552650,0.090913}, {-0.033354,0.150511}, {1.249451,-0.206799}, {0.901957,-0.045704}, {-0.268462,0.797655}, {-0.295622,-0.834320}, {-0.623560,0.392378}, {0.753139,-0.171098}, {-0.315586,-0.093971}, {-0.171782,0.310994}, {-0.584684,-1.313163}, {0.305928,1.064417}, {0.262624,-0.763970}, {-0.460683,-1.066815}, {0.775057,0.025142}, {-0.476420,0.420022}, {-0.123804,-0.614338}, {0.107369,-0.775216}, {1.000481,-0.185825}, {0.204721,0.528385}, {0.234913,0.036659}, {-0.580442,0.580949}, {1.199714,-0.639281}, {-0.175095,-1.293234}, {0.211567,-1.011604}, {0.534241,0.104124}, {0.475270,0.112080}, {-0.296861,0.570522}, {-0.006516,-0.807378}, {1.324154,0.366234}, {0.385646,0.663829}, {0.952289,-0.020348}, {-0.107272,-0.904948}, {-0.430374,-0.791322}, {0.023816,0.049091}, {-0.739512,-0.394887}, {0.267303,0.220767}, {0.585441,-0.615484}, {-0.174586,-0.975560}, {-0.857831,0.240895}, {-0.578808,0.608267}, {-0.618652,-0.737440}, {-1.703410,1.076574}, {0.239973,-0.524723}, {-0.877083,0.885381}, {0.364504,-1.546471}, {0.843914,1.160001}, {1.150505,1.071204}, {-0.370583,-0.153527}, {-0.146237,-1.166747}, {1.580330,0.835601}, {1.183807,-0.290036}, {0.408171,0.697836}, {-1.363711,1.276123}, {0.003091,-0.751142}, {0.892821,1.683361}, {-0.181868,0.148855}, {0.247007,-0.270453}, {-0.864199,-0.144221}, {0.131680,-1.468996}, {1.015785,0.628468}, {0.080450,-0.687172}, {-0.209898,0.096785}, {0.759138,-0.425614}, {-0.758907,-0.363425}, {0.295546,-0.675126}, {0.137910,0.585381}, {-0.615761,-0.004313}, {0.900616,0.336981}, {1.909880,-0.158311}, {-0.634418,-0.790108}, {-0.475383,0.335938}, {-0.438158,1.008165}, {-0.066609,-0.342591}, {1.040649,0.129256}, {-0.317508,0.138331}, {-0.934472,0.287414}, {-0.822846,-0.707184}, {0.013228,0.200951}, {-0.192966,0.231664}, {0.702280,-0.035047}, {1.601308,-0.110163}, {0.968228,0.484041}, {0.267920,1.208324}, {0.387431,0.257585}, {0.137627,-0.038053}, {-0.533791,-0.592955}, {-0.208416,-0.090015}, {1.242265,-0.575457}, {-0.093360,0.612640}, {0.474705,1.164073}, {-0.223268,-0.303550}, {0.725415,0.987524}, {-0.792211,0.833725}, {-0.127078,0.253060}, {1.032843,-0.053796}, {-0.611660,0.688883}, {0.020020,-0.682951}, {-0.061453,1.055994}, {0.159875,0.842203}, {1.073916,0.515861}, {-1.002761,0.703949}, {-0.433069,-0.241907}, {-0.485950,0.355489}, {0.046573,0.251588}, {0.594776,1.519930}, {-0.353550,-0.125344}, {0.019352,-0.371083}, {0.567640,-0.653759}, {-0.250529,0.176770}, {-0.406982,0.103083}, {0.373635,0.728257}, {1.588916,-0.649808}, {-0.478022,-0.050687}, {0.377243,0.193279}, {-0.036592,-0.246075}, {1.520919,1.009384}, {0.159340,0.341124}, {-0.463280,0.378020}, {-0.035160,0.543988}, {0.118358,0.710502}, {-0.619443,0.780539}, {0.191851,0.377155}, {-0.776310,-0.116329}, {-0.276307,-0.043138}, {-1.211908,0.346911}, {0.079369,-0.858422}, {0.016724,0.926178}, {1.256652,-0.481102}, {-0.806248,0.229023}, {0.044788,0.119707}, {-0.262081,0.272806}, {0.932057,-0.006805}, {0.544372,-0.095148}, {-1.383816,-1.364462}, {-0.358308,1.050147}, {0.273473,-0.855889}, {-0.003535,0.064740}, {-0.833668,-1.139499}, {-0.191707,0.659760}, {-0.462448,0.173778}, {-0.025911,0.309467}, {-0.460535,0.971118}, {1.307444,1.320250}, {1.627809,0.805101}, {0.508275,-0.630378}, {-0.234563,1.086843}, {-0.122915,0.361400}, {-0.915180,0.611521}, {-0.286575,-0.818160}, {0.182178,0.788028}, {0.604783,-0.208278}, {0.359150,1.039738}, {-0.992256,0.972576}, {0.106132,-1.299370}, {-0.162884,1.643172}, {-0.338271,0.643220}, {-0.862948,-0.463959}, {0.326343,0.010285}, {-0.098661,-0.720012}, {0.058748,0.476613}, {-0.313979,0.106628}, {0.342506,-1.683328}, {-0.675662,0.430103}, {-0.378889,-0.229145}, {1.071848,0.353785}, {-0.028918,-0.457589}, {0.480169,1.182056}, {-0.186146,0.337164}, {0.032820,-0.383106}, {-0.716018,0.172634}, {-0.408182,-0.131892}, {0.656507,-1.192520}, {-0.081387,-1.758375}, {0.157451,0.629884}, {-0.501019,0.814047}, {-0.998292,-0.030481}, {-0.562935,0.654219}, {0.092469,-0.943344}, {0.875478,0.782977}, {0.136500,0.716997}, {-0.130205,0.061150}, {0.772493,-0.787669}, {-0.069071,-1.069128}, {0.020852,0.155118}, {-0.691191,-0.378006}, {0.037354,-0.996423}, {1.281753,-0.929153}, {-0.426147,-0.438014}, {0.112682,1.190760}, {-0.025867,-0.051631}, {0.855843,0.245861}, {-1.283729,0.078821}, {0.082616,0.423985}, {0.650177,0.257912}, {-0.288642,-0.113135}, {-0.309283,0.956368}, {0.275866,0.777270}, {1.063946,-0.850517}, {-0.114175,-0.925831}, {-0.197025,0.160165}, {0.188163,0.770923}, {0.725416,-0.238262}, {0.532756,0.332611}, {0.110235,0.733467}, {0.568374,-0.980107}, {0.264085,-0.102002}, {0.128516,0.242100}, {-0.326246,0.476676}, {0.177628,1.005675}, {0.183542,-0.730819}, {0.560809,0.026720}, {-0.555138,-0.837223}, {-1.111326,-0.738718}, {-0.573157,1.307743}, {0.039276,-0.375639}, {-0.610247,0.441594}, {0.288641,-0.912492}, {1.190911,0.545295}, {0.782747,0.523818}, {-0.489349,-0.232879}, {-0.020657,-0.703896}, {0.073902,0.609629}, {0.772461,-0.210514}, {-0.035950,0.573090}, {0.973263,0.098002}, {0.573650,-0.286151}, {-0.420773,0.322248}, {0.828456,-0.527977}, {1.858361,0.248676}, {-0.216404,0.356862}, {-0.646708,-0.483857}, {-0.093864,-0.293461}, {0.583492,-0.646171}, {-1.115405,-0.181960}, {1.366417,-1.845473}, {-0.794050,0.390124}, {0.467227,0.144103}, {0.059131,1.012538}, {0.365336,0.237803}, {-0.484233,-0.485568}, {-1.005855,-0.440960}, {0.502362,-0.343204}, {-0.153506,-0.221922}, {1.040348,0.847320}, {0.875955,0.856994}, {0.134586,-0.579993}, {0.979287,-0.133640}, {0.552321,0.102281}, {0.541191,-1.039863}, {-1.155057,-0.141459}, {-0.136017,0.538894}, {-0.816461,0.275250}, {-0.724677,0.192772}, {0.326787,-0.010919}, {0.117003,1.159378}, {0.504487,-0.285180}, {-0.855043,0.300502}, {0.497492,1.177945}, {-1.019849,-0.391640}, {0.294492,-0.148558}, {-1.105971,-1.574034}, {-0.549529,0.276093}, {1.612157,0.358384}, {-0.490901,-0.027039}, {0.169836,1.390746}, {-0.194342,-0.284269}, {-0.171289,0.586009}, {0.440634,-0.241719}, {-0.866231,0.075171}, {0.604738,0.501042}, {-1.268727,0.181187}, {0.970697,0.307040}, {1.049433,0.365987}, {-0.498752,0.386423}, {-0.025266,-0.505426}, {-0.073175,0.049414}, {-0.182412,1.089200}, {-0.323381,-0.689772}, {0.110545,-1.103422}, {-0.264985,1.043266}, {-0.572449,1.384650}, {0.364356,0.676386}, {0.022608,0.196732}, {1.158744,2.048316}, {0.765193,-0.520691}, {0.612272,0.175707}, {0.822290,-0.539943}, {-0.029847,0.542674}, {-0.046485,-0.527074}, {-0.247289,-0.309464}, {-0.123121,0.695817}, {-0.585551,1.109341}, {1.091744,-0.323955}, {-0.258755,0.608515}, {-0.359400,-0.617556}, {0.213343,0.803480}, {0.723600,-0.553256}, {-0.919498,1.614200}, {0.151235,-0.057427}, {0.507107,0.231984}, {-0.423361,-0.409427}, {0.846366,1.210201}, {-0.481114,-0.023277}, {-0.021299,0.801072}, {0.087164,0.162119}, {0.648244,-0.593489}, {-1.033972,-0.776052}, {-0.910048,0.009627}, {1.145802,-0.064943}, {-0.863007,0.893723}, {-0.063187,0.408214}, {0.097570,0.371056}, {0.055008,0.378266}, {0.760486,-0.116970}, {0.175700,-0.711182}, {-1.061988,-1.515268}, {-0.366716,1.634002}, {-1.127267,0.259187}, {-0.105613,-1.658119}, {-0.956148,0.078537}, {-0.789998,-0.046661}, {-0.555772,0.241221}, {-0.361317,0.374073}, {0.542807,-0.644804}, {-0.067211,-0.306273}, {-0.313289,-0.762354}, {0.944145,0.011802}, {0.344604,0.581157}, {-0.238694,-1.260077}, {-0.499531,-0.040909}, {1.081440,-0.013408}, {-1.020259,-0.402582}, {0.168469,-0.449379}, {-0.322218,-0.352819}, {0.417512,0.125277}, {-0.179187,0.773391}, {0.934511,0.154665}, {0.668175,1.139319}, {-1.109726,-0.697647}, {-0.058986,-0.618589}, {1.224662,-0.691357}, {-0.344564,1.430847}, {-0.198289,0.080758}, {0.248374,-0.855443}, {0.510391,0.972455}, {-0.236303,-0.325335}, {0.461915,-0.112654}, {-1.113610,-1.548437}, {-1.242013,-0.824333}, {-0.071317,0.322042}, {-0.489653,-0.266651}, {0.049223,-0.240123}, {-0.017929,0.190162}, {-0.643566,-0.146084}, {0.581599,0.459194}, {-0.885802,-0.729123}, {0.659102,1.113099}, {0.604221,0.372455}, {0.150965,-0.404922}, {0.024189,-0.589169}, {0.181120,-2.232684}, {-0.109871,-0.604952}, {-0.441800,-1.783353}, {1.351005,0.201968}, {0.226026,0.178360}, {0.052492,0.086991}, {1.777618,1.068832}, {-0.332651,0.317066}, {0.541455,-0.685652}, {0.392310,1.079179}, {-0.427805,-0.269735}, {0.498657,-0.582363}, {0.940945,0.355367}, {0.265536,-1.458500}, {0.449227,0.874282}, {0.227071,-0.627270}, {-0.093351,-0.097808}, {-1.145261,-0.218075}, {0.484358,1.069822}, {0.996167,0.219158}, {0.164768,0.888018}, {-0.524378,-0.335536}, {0.408570,0.683742}, {0.520097,-0.352789}, {0.528279,0.701878}, {0.254929,0.657117}, {-0.913148,-0.518469}, {-0.444215,-0.199164}, {0.123173,0.541502}, {0.623248,0.013648}, {0.876430,0.188051}, {-0.745054,-0.440719}, {1.370839,-0.341183}, {-0.557997,0.053702}, {0.504211,-0.772695}, {1.925599,-0.732382}, {1.134615,0.354443}, {-0.823694,0.010852}, {-0.010443,-0.137324}, {0.583601,-0.844533}, {0.664869,1.118130}, {-0.000382,0.444552}, {-0.646392,1.280645}, {1.497105,0.917277}, {-0.230933,-0.814139}, {-0.618821,-0.230543}, {0.004494,-0.586885}, {0.188155,0.759926}, {0.400992,-0.852580}, {0.916116,0.173815}, {0.164091,-0.226974}, {0.428332,-1.030586}, {-1.450546,-0.165323}, {-0.743664,-0.984256}, {1.239929,0.021010}, {0.169317,0.059045}, {1.351634,0.648103}, {-0.725472,0.514575}, {0.682044,0.646209}, {-0.254000,-0.088715}, {0.820242,0.000807}, {-0.199804,-1.335055}, {0.568600,-0.573050}, {-0.372125,1.120332}, {-0.080109,-0.217794}, {-0.077319,0.183705}, {0.610015,-0.768326}, {0.531406,-0.197264}, {0.374272,0.746575}, {0.811771,-0.070560}, {0.456952,0.828381}, {-1.114625,-0.778551}, {-0.677564,-1.195200}, {-0.032155,-0.146667}, {0.160033,-1.240192}, {0.784846,-0.048669}, {0.226182,-0.040282}, {-1.385046,-0.704092}, {0.539381,-1.102437}, {0.385233,0.702485}, {0.229480,0.119168}, {-1.160470,0.285107}, {-0.541554,0.585548}, {-0.348345,0.770643}, {-0.277295,0.505369}, {0.072372,0.074768}, {-1.171783,-0.243523}, {0.704349,0.708709}, {0.059024,0.631281}, {0.065354,1.504243}, {-0.835199,0.568548}, {-0.460690,1.264099}, {-1.828812,-1.061787}, {0.003831,0.815100}, {-1.209037,0.131804}, {0.842161,-0.991327}, {0.138250,-0.926978}, {-0.127969,0.712464}, {-0.350826,1.252760}, {0.556596,0.709099}, {-0.880338,-0.882393}, {0.633947,0.831589}, {1.535985,0.012752}, {-0.110222,-1.560059}, {-0.473637,-0.328046}, {-0.183194,0.641908}, {-1.074374,0.106450}, {0.837744,-1.048600}, {0.080980,-1.310010}, {0.538448,-1.136176}, {-0.596666,-0.628378}, {-0.594768,0.340720}, {0.251058,-0.190293}, {-0.061235,0.142368}, {0.563618,-0.663220}, {-0.994710,0.799951}, {-0.013219,-0.077868}, {-0.260975,0.436012}, {0.701558,-1.555042}, {0.218937,-0.839333}, {0.189052,-0.893478}, {-0.825828,-0.108326}, {0.179960,-0.454794}, {-0.189811,-0.729981}, {0.258641,0.734701}, {1.033546,-0.851021}, {-0.481548,1.060999}, {0.550961,-0.495215}, {-0.720159,0.605927}, {-0.918472,-1.437412}, {0.238061,0.359825}, {-0.669119,-0.477539}, {-0.393230,1.100341}, {-0.294604,0.625805}, {1.183505,0.325424}, {0.656797,0.302560}, {-0.264583,1.659226}, {0.944444,0.759065}, {0.363301,-0.931562}, {0.321250,0.144317}, {0.056304,0.033562}, {0.396821,-0.081704}, {-0.146098,-0.157071}, {-0.567406,0.542368}, {0.087811,-1.191284}, {0.645851,-1.129586}, {-0.480500,0.559676}, {-0.512098,-0.692533}, {-0.576949,-0.178230}, {-0.312055,-1.312385}, {-0.661092,-0.003298}, {1.385371,0.073527}, {0.749575,0.121531}, {0.451503,-0.172923}, {-1.720465,0.533779}, {-0.558727,-0.163352}, {1.161200,1.410997}, {0.343344,-0.099791}, {-0.065168,-2.180713}, {0.350066,0.806381}, {-0.286234,-0.192670}, {0.073187,0.263513}, {-0.757331,-0.586757}, {0.984908,0.277915}, {1.028605,0.961379}, {0.644807,0.258389}, {0.606982,0.266423}, {-0.090490,0.787222}, {0.184171,0.023188}, {0.350628,0.158079}, {0.778608,0.188059}, {-0.930078,1.186364}, {-0.671489,-0.012170}, {-0.081454,0.351651}, {1.178337,0.477150}, {-0.455728,-0.782186}, {0.891922,0.565029}, {1.160296,-0.280368}, {0.653268,0.357551}, {1.540297,1.202347}, {0.245353,0.959049}, {0.243214,-0.407234}, {-0.450652,1.435352}, {-0.707209,1.169824}, {-0.087597,0.734600}, {0.280094,-0.507072}, {-0.362702,0.385568}, {-0.298647,-0.445275}, {1.484539,-0.134123}, {-0.714418,-0.484541}, {0.183658,-0.100520}, {-1.304078,-0.615248}, {-0.145906,-0.378490}, {-1.139469,0.513238}, {-1.002350,-0.857683}, {-0.662826,1.027047}, {0.866330,-0.714924}, {0.134961,-0.170331}, {-1.346329,-0.335113}, {-1.486651,0.211276}, {-0.033975,0.498228}, {0.808639,0.410672}, {-0.183830,0.673398}, {0.283445,0.591164}, {-0.775002,-0.358194}, {-0.559984,0.245061}, {0.448254,-0.351589}, {-0.307253,0.317585}, {0.110474,-0.551974}, {1.435987,-0.093767}, {-0.899370,-0.601259}, {0.050750,-0.801049}, {-0.248103,-0.266506}, {-0.722677,0.408100}, {0.439215,0.082929}, {0.326781,0.560803}, {-0.435041,0.157077}, {0.616733,-0.929936}, {-1.000230,0.585819}, {0.197016,-0.325485}, {-0.661867,-0.863923}, {-0.149218,-0.118129}, {-0.048844,-0.426240}, {-0.048809,-1.036530}, {1.234970,-1.198487}, {-0.564061,0.812790}, {0.518469,-0.899248}, {-1.011805,-0.436426}, {-0.731235,0.119354}, {-0.748153,-0.686550}, {-0.765046,-0.353657}, {-0.836584,0.509778}, {0.848860,-0.573605}, {0.275349,-0.980142}, {-0.086480,0.350212}, {0.561023,0.614301}, {0.295835,-0.062431}, {-0.169997,1.796229}, {1.411584,-0.157918}, {-0.820578,-0.083208}, {0.363949,-1.059952}, {-1.105712,-0.108223}, {0.022597,-1.059282}, {-0.599310,-1.113121}, {1.271478,0.088851}, {-0.351697,1.037394}, {0.708869,1.367619}, {1.616188,0.268445}, {-0.055062,0.051147}, {0.089420,0.984126}, {1.037123,0.467659}, {0.285018,1.056293}, {0.076872,0.167609}, {0.466394,0.073944}, {-1.120238,-0.403795}, {-0.605089,0.022859}, {0.279943,1.026083}, {0.103397,0.277845}, {-0.243145,0.104500}, {0.333394,-0.637974}, {-0.115601,1.088147}, {-0.792947,0.234692}, {-0.789909,-0.934349}, {-0.734755,0.478295}, {1.709832,-0.280996}, {0.744538,-0.906727}, {0.250604,0.999609}, {-0.503783,0.558645}, {0.495996,0.365936}, {0.142156,-0.574836}, {0.512751,0.192158}, {1.235956,0.332711}, {0.023924,-0.429072}, {1.193035,-0.496755}, {0.507106,0.569391}, {-0.957161,-1.168585}, {-0.107514,0.423613}, {-0.739674,-0.701516}, {0.904520,-0.072935}, {-0.102696,-0.928840}, {-0.431224,0.774089}, {0.546826,0.645864}, {-1.462693,-0.997040}, {0.045656,0.881963}, {1.235724,0.605226}, {0.485086,-0.077597}, {-0.269521,-0.825996}, {-1.322636,0.198827}, {-0.755254,0.130400}, {0.905988,-0.026561}, {0.398511,-0.221909}, {0.101731,-0.824604}, {-0.772005,-0.034138}, {0.255018,0.583319}, {-0.099606,-0.618148}, {-1.244045,0.403242}, {0.290003,0.145494}, {0.525354,0.224848}, {0.953469,0.330420}, {-0.529456,0.842453}, {-0.558430,-0.068691}, {0.816181,-1.027805}, {0.473286,0.705963}, {-0.374642,-0.541333}, {0.450463,-0.658926}, {-0.817825,-0.087311}, {-0.506713,0.154635}, {-0.234898,0.576703}, {-0.308701,-0.353461}, {-1.064488,-0.829382}, {-0.948916,1.358909}, {0.873385,0.041247}, {-0.975031,0.341437}, {0.465089,-0.305899}, {-1.322672,-0.257483}, {-1.628600,0.631921}, {1.432280,-0.394926}, {-0.278556,0.212714}, {-0.350961,-1.579332}, {-0.404100,0.750536}, {0.368782,0.707155}, {0.075936,-1.267203}, {-0.831914,-0.096899}, {-0.333046,-1.207398}, {0.347681,1.157404}, {-0.578348,-0.070195}, {-0.129107,1.292968}, {0.170815,0.528093}, {0.446822,-0.070859}, {0.606865,-1.535666}, {0.948290,-0.884917}, {-0.045336,-0.805774}, {0.469737,-0.474745}, {-0.491228,1.119829}, {-0.441045,0.412691}, {-0.263473,0.314737}, {-0.249778,-0.497140}, {1.067664,0.185250}, {0.464393,0.962226}, {1.268074,-0.124376}, {-0.050562,0.440929}, {1.169404,0.656123}, {-0.881702,0.319503}, {-1.052664,1.076097}, {-0.492302,0.583617}, {0.558011,-0.848022}, {-0.723854,0.330486}, {-0.451609,0.208036}, {0.033972,0.322249}, {0.081812,0.909632}, {0.438240,-0.140270}, {-1.769997,0.783168}, {0.841427,0.381585}, {-0.535555,1.054986}, {0.480827,-0.859746}, {-0.590138,-1.197696}, {1.838550,-0.341772}, {0.314785,0.598647}, {0.966481,0.829249}, {-0.603204,1.197482}, {0.287894,-0.764641}, {0.245047,0.646047}, {0.703114,0.023655}, {-0.751477,-0.640445}, {0.128946,0.238554}, {-0.248008,-0.661997}, {-1.358426,0.542743}, {-0.077018,0.562820}, {-0.992383,-0.265463}, {0.815603,-0.609510}, {0.402195,0.111800}, {0.098221,0.243275}, {0.465141,-0.894786}, {-0.195025,0.818069}, {0.163013,0.020456}, {0.019287,0.280488}, {-1.292419,-0.472930}, {-1.176423,-0.206148}, {-0.517755,-0.206153}, {-0.221025,-0.087351}, {0.613520,0.874127}, {0.125680,-0.160756}, {0.959133,-0.888381}, {-0.119945,0.682721}, {0.994469,1.538646}, {0.666825,0.194733}, {-0.037507,-0.858152}, {1.210323,-0.049750}, {-1.064716,-0.617205}, {0.945401,-2.387452}, {0.158818,0.160687}, {-0.482974,0.394775}, {-0.858639,0.219751}, {0.294519,0.146071}, {1.044995,-0.604510}, {0.823595,0.998153}, {0.038470,1.230760}, {1.575698,-0.815523}, {0.148811,0.410763}, {-0.389223,0.867009}, {-0.126203,0.541746}, {1.678347,0.380927}, {0.429547,-1.024259}, {-0.266202,0.332225}, {-1.617040,-1.222720}, {-0.563409,-0.661385}, {-0.219464,-0.002245}, {0.314463,0.656447}, {-0.300489,0.532422}, {-1.675190,0.759753}, {0.428757,0.171765}, {-0.011795,-0.359087}, {-0.887617,0.835305}, {-0.810371,1.602856}, {0.409307,-0.461949}, {0.199920,-0.987035}, {0.123417,0.693076}, {-0.100030,-1.106335}, {1.582451,-1.165881}, {-0.704681,-0.668353}, {0.760863,1.026244}, {-0.191075,0.266052}, {-0.668103,0.170235}, {-0.012904,-0.286498}, {-0.501481,0.788971}, {0.668517,0.968752}, {-1.047200,-0.400916}, {-0.533675,0.024010}, {-0.986899,-0.229436}, {0.627433,1.110767}, {-0.365978,0.023073}, {0.663772,-0.100048}, {1.049500,0.285839}, {-0.643717,-0.106911}, {0.591250,-0.125807}, {-0.639040,-0.106044}, {0.037507,-0.832752}, {0.328107,-0.285961}, {-0.627469,-0.265954}, {-0.052279,0.075179}, {-0.231068,0.046103}, {1.172718,0.580020}, {-0.255252,0.819326}, {-0.169260,-0.100791}, {-0.756299,0.608835}, {-0.181330,-0.094706}, {0.479515,-0.363664}, {1.236969,0.858327}, {-0.975062,0.641956}, {1.244166,0.412330}, {-0.243528,-0.367673}, {-0.352109,-0.345661}, {-0.198278,0.348731}, {-0.264499,0.354155}, {1.043070,-1.080189}, {-0.158193,0.645892}, {-0.341817,-0.186282}, {-0.152951,-0.679947}, {-0.281572,0.534695}, {-0.012417,0.328755}, {-0.265771,-0.525037}, {-0.161336,1.444940}, {0.995682,0.203988}, {-0.537981,0.988658}, {-0.529871,1.194728}, {0.831686,0.030963}, {0.356165,-0.026852}, {-0.577640,-0.518094}, {-1.028778,-0.136226}, {1.046369,-0.334105}, {-0.005565,-1.329268}, {-0.821778,-0.563742}, {1.142928,0.091294}, {0.682693,-1.263949}, {0.380228,-0.658545}, {0.843082,0.932597}, {-0.345522,0.249836}, {0.446026,-1.368423}, {-0.918192,1.002040}, {-0.661288,-0.984786}, {-0.590316,-0.129025}, {0.777157,0.056676}, {-0.264574,-0.214260}, {-0.816790,0.067197}, {-0.585520,-0.519243}, {-1.193762,-0.976993}, {0.583269,0.827641}, {0.394747,-0.120571}, {-0.049132,-0.030678}, {-0.484051,0.178199}, {-0.283985,-0.097271}, {0.105214,-0.205086}, {0.341469,1.602652}, {0.269129,0.846228}, {-0.386895,-0.161324}, {0.950400,0.840099}, {-0.753280,0.687107}, {0.466935,-0.616318}, {-0.287216,-0.420626}, {-1.046482,-0.085754}, {0.284436,-0.869538}, {0.897849,0.423417}, {0.921429,-0.765774}, {0.763842,-0.209293}, {0.617392,0.912271}, {-0.177456,-0.132474}, {0.806300,0.356169}, {0.336841,-0.384476}, {0.283514,-1.204551}, {-1.051563,0.410899}, {-0.962639,0.824742}, {-0.270251,-0.887304}, {0.165904,-0.610252}, {-0.333379,0.607510}, {0.600463,0.941986}, {0.997552,0.235415}, {-1.187420,-0.233916}, {0.897561,-0.197762}, {0.319458,-0.794006}, {1.832876,-1.005851}, {0.117741,0.084043}, {-0.277336,-0.585939}, {-0.220366,0.332784}, {-0.955706,-0.663342}, {-0.874698,-0.661934}, {-0.977466,0.530857}, {-0.670765,0.717771}, {1.169043,0.801325}, {-0.313282,0.543873}, {1.361090,-0.016967}, {-0.045271,0.468467}, {-0.872414,0.191454}, {-0.622985,1.003125}, {-1.506511,-0.683927}, {-0.860689,-0.551287}, {-0.871940,-0.866821}, {0.624825,0.683967}, {1.592190,0.116308}, {0.126634,0.042754}, {0.051162,1.220215}, {0.758876,0.604646}, {0.941573,0.080765}, {-0.195989,0.676589}, {-0.499377,0.152671}, {0.658630,0.605302}, {-0.358647,1.735287}, {1.364593,0.503183}, {0.210822,-0.166494}, {-0.861761,0.367387}, {-0.458178,0.060156}, {0.427491,0.042062}, {0.086057,-0.088052}, {0.162160,-0.189039}, {-0.734105,1.173913}, {1.009910,-0.268308}, {0.511028,0.449041}, {-0.638741,1.917117}, {-0.396037,-0.155032}, {-0.997269,-0.575873}, {0.535088,0.441734}, {-0.543414,-0.751851}, {-1.416398,-0.066365}, {-0.053821,1.180805}, {0.282290,0.897749}, {0.759861,-0.479464}, {0.990860,-0.835886}, {0.536881,-0.128652}, {-0.235283,1.638562}, {-0.048821,-1.424798}, {-1.013434,-0.285478}, {0.380225,0.037058}, {0.083666,0.162508}, {-0.638680,-0.529640}, {0.063698,0.202676}, {0.126295,-0.106833}, {-0.705436,0.875691}, {1.560148,-0.744106}, {0.506902,0.182486}, {-0.216431,0.488020}, {0.088319,0.537304}, {0.744745,0.260296}, {-0.266826,0.163056}, {-0.680731,1.666494}, {0.716172,-0.824289}, {0.576971,1.097574}, {-0.306776,0.425233}, {0.559360,0.770270}, {0.306141,-0.569606}, {0.641368,0.473688}, {-0.534869,0.305556}, {0.479480,-1.319807}, {-0.369422,0.008258}, {-1.015711,0.415351}, {0.334729,-0.161003}, {0.111812,-0.232136}, {1.115033,0.418084}, {0.372638,0.159681}, {0.228723,0.086318}, {0.183488,0.840287}, {-0.032699,-0.968931}, {0.497496,0.382361}, {-0.737920,0.301958}, {-0.390336,-0.313842}, {-1.358576,-0.824571}, {-0.296870,-0.221777}, {-1.204408,-0.178874}, {0.430879,0.540454}, {-0.129484,-0.943346}, {0.111495,-0.347794}, {0.241006,0.882070}, {0.259517,-0.153651}, {0.359138,0.493153}, {-0.117222,-0.896891}, {0.130265,-0.611169}, {-0.564621,-0.942626}, {0.109644,0.919373}, {-0.765497,-0.454155}, {1.351302,-0.499722}, {-0.388550,0.828392}, {1.338169,1.025334}, {-0.017090,-0.296752}, {-0.180796,0.374854}, {0.418456,0.346593}, {-0.739752,0.202709}, {-0.167847,-0.921766}, {0.747846,-0.289610}, {0.366519,-1.205982}, {0.238487,-0.366714}, {-0.757299,0.554594}, {-0.815610,-0.092068}, {0.238967,0.595734}, {-0.637637,-0.039172}, {-0.511671,-0.025446}, {1.327343,-0.892339}, {0.787727,0.725476}, {0.193989,-0.948691}, {-0.435612,0.747976}, {0.973745,0.043831}, {-0.081442,-1.261099}, {0.972757,0.437030}, {-0.906525,0.511164}, {0.286286,-0.007231}, {-0.724918,0.317117}, {-0.010738,-1.408628}, {-0.892791,-0.413062}, {-1.145404,-1.000462}, {-0.054472,-0.656673}, {-0.397352,-1.006708}, {1.272339,0.348268}, {-0.072337,0.462120}, {0.263024,0.820054}, {-1.350094,-1.060760}, {0.318931,1.224979}, {-0.743524,0.081760}, {0.782937,0.494788}, {-0.380764,0.038653}, {0.366967,-1.110074}, {-0.539220,-0.289508}, {-0.750016,-0.379700}, {-1.056018,0.760600}, {-0.014371,0.051682}, {0.646769,-1.206138}, {-0.192194,-0.268590}, {0.211900,-0.061502}, {0.667021,0.717522}, {-0.988574,0.469784}, {0.909208,-0.187655}, {-0.264537,0.459019}, {0.283053,-0.771236}, {0.977605,0.326370}, {0.188691,-0.116146}, {-0.841161,-1.507667}, {-0.622058,0.275580}, {0.827556,0.636424}, {0.829953,-0.934848}, {-0.974846,-0.484086}, {1.038897,0.572127}, {-1.470389,0.655402}, {-0.031678,-0.280099}, {0.345680,1.131225}, {1.521886,0.475562}, {-0.095613,0.225868}, {0.587360,0.098605}, {-0.910606,-0.220681}, {0.695483,0.270633}, {1.392499,-0.534474}, {-0.380665,-0.132181}, {0.739761,-0.804516}, {0.247837,0.364872}, {-0.504840,0.279031}, {0.577741,-0.499917}, {-0.877160,-0.500081}, {0.470665,0.626683}, {-0.845048,-0.661755}, {0.573259,0.452514}, {1.463281,0.460497}, {-0.140814,-1.014287}, {0.792857,0.139124}, {0.095435,-1.194781}, {-0.168013,-0.617225}, {-0.669563,-0.438816}, {0.970599,1.334226}, {-0.389379,-0.250410}, {0.337426,1.425473}, {0.040593,0.759876}, {-0.692656,-0.593318}, {0.644505,-0.808285}, {0.343813,0.483264}, {0.262818,-0.442864}, {0.401180,-0.354012}, {0.042798,0.576953}, {1.057127,-0.234653}, {-0.543273,0.116899}, {-0.261085,0.760538}, {0.917617,0.504692}, {-0.505622,-0.461514}, {-0.397714,0.102581}, {0.841617,0.258265}, {-1.224217,1.200595}, {0.549822,-0.854504}, {-0.331807,0.249164}, {-0.969781,1.050829}, {-1.102970,-0.743287}, {0.391551,-1.364767}, {-0.291293,0.652954}, {-1.597162,-0.453738}, {-0.347804,-0.281488}, {-0.384993,-0.354367}, {-0.893094,-0.032469}, {-1.033837,0.258447}, {-0.059178,-0.196922}, {-0.727165,1.094397}, {-0.050880,-0.416205}, {-1.801534,0.759659}, {-0.013259,-0.907752}, {-0.663571,-0.737940}, {0.248589,-0.087161}, {1.713345,1.020552}, {0.274155,-0.077844}, {0.684280,0.290232}, {0.467950,-1.380906}, {-0.134793,0.354306}, {0.641834,-0.147045}, {1.549775,1.034824}, {1.011992,0.136162}, {1.032606,-0.470594}, {0.002512,-0.501699}, {0.263132,-0.873676}, {0.596802,0.698595}, {0.644208,-1.026820}, {-0.241748,-0.120648}, {0.400545,0.692764}, {0.723725,-1.171937}, {-0.065336,0.082173}, {0.087121,0.777870}, {0.137719,0.862409}, {0.600762,-0.256252}, {-0.496334,1.522049}, {1.415523,-0.361800}, {0.195888,0.140839}, {-0.201059,-0.957306}, {0.833613,-0.884474}, {-1.923963,-0.511931}, {-0.401694,-0.750599}, {-0.057871,-1.554591}, {0.136921,-0.610025}, {-0.692221,0.232519}, {-0.963772,-0.406412}, {-1.011556,0.388904}, {0.196652,0.402592}, {-0.236942,0.249439}, {0.197316,0.749347}, {0.260643,1.518230}, {-0.261184,-0.019793}, {0.953847,0.003123}, {-0.488447,-0.693489}, {0.100561,-0.839624}, {-0.387958,0.029235}, {-0.056287,0.849571}, {0.146328,-0.596042}, {-0.442422,-0.081224}, {1.467301,1.058274}, {-0.842963,-0.823609}, {0.361145,0.235648}, {2.244235,-0.417005}, {0.557178,0.494236}, {-0.286937,0.446261}, {-0.797514,0.125949}, {-0.396846,-0.492949}, {0.791338,0.112081}, {0.731112,0.815339}, {0.124238,1.042459}, {0.178620,-0.243480}, {-0.297767,-0.499014}, {0.089431,-1.045263}, {0.876765,1.478866}, {-0.433655,-0.416072}, {0.076538,0.452756}, {0.276575,-0.657696}, {0.710620,0.425570}, {-0.348002,-1.521084}, {0.463074,-0.794634}, {1.420303,0.458714}, {-0.799261,0.730155}, {-0.282421,-0.450125}, {-1.215153,0.133084}, {0.429525,0.137792}, {-0.046368,-0.348350}, {1.182696,-0.476907}, {-0.354102,-0.016664}, {0.228567,-0.048909}, {0.317271,-0.110712}, {0.000535,0.097966}, {0.358389,-0.986634}, {0.233837,-0.517393}, {-0.702710,-1.470436}, {0.301747,-0.361704}, {-0.116303,0.152185}, {0.321548,0.456944}, {0.426785,0.809817}, {0.862019,-0.752446}, {0.503493,-0.196673}, {-0.188695,1.043960}, {-0.634846,0.615436}, {-0.773059,-0.768587}, {0.735760,-0.078372}, {0.076222,-0.103925}, {-0.837846,-1.879631}, {0.311214,0.005395}, {-0.256265,0.525394}, {-0.759509,0.445865}, {-0.425542,0.964997}, {0.621631,0.218384}, {0.749916,0.486092}, {0.735936,-0.741326}, {-0.550580,0.175995}, {0.441750,0.922190}, {-0.284205,0.780467}, {0.111299,-0.940763}, {-0.488491,0.739998}, {-0.538022,0.602799}, {-0.458050,-0.227355}, {1.218009,1.485198}, {0.293776,0.548771}, {0.621581,0.201245}, {0.029869,-0.484299}, {0.297470,-0.678649}, {-0.652890,-0.572565}, {0.708517,0.135724}, {-0.759185,1.020900}, {0.089393,1.254895}, {-0.163606,-0.225901}, {1.028091,-0.979818}, {-0.463887,-0.461716}, {-0.472972,1.295955}, {-1.499760,-0.100153}, {-0.316495,0.182810}, {-0.029037,1.390832}, {-1.052626,0.016877}, {0.140853,-1.064090}, {0.077518,0.160558}, {-0.789567,0.126484}, {0.237999,0.933535}, {-0.625411,-0.154393}, {-0.651849,0.477355}, {0.313835,-0.871245}, {0.063692,0.733038}, {-0.125890,-1.321408}, {0.782127,0.731970}, {0.067632,1.028553}, {0.390798,-0.202231}, {0.859910,-0.547214}, {0.303427,0.117133}, {-1.221034,0.106196}, {-0.556539,-0.005747}, {-0.581574,-0.064757}, {-0.093350,-1.416022}, {-0.371514,0.863009}, {-0.228865,-0.911086}, {0.226620,0.868273}, {-0.022400,0.968063}, {-0.282417,-1.206830}, {0.517815,-0.318365}, {0.433595,-1.277757}, {0.650281,0.282816}, {0.696810,-0.618460}, {-0.018515,-1.174056}, {0.528708,-0.383014}, {0.465366,-0.166643}, {-1.111839,-0.208049}, {1.260600,-0.904770}, {0.114190,0.595080}, {-0.772035,1.160945}, {-0.072465,-0.121030}, {0.740277,0.073001}, {-0.031995,-1.003071}, {0.309444,-0.284262}, {0.256298,0.217717}, {-0.714797,0.139100}, {1.365575,-0.321842}, {0.609559,1.219424}, {-0.656153,0.923034}, {0.306127,0.569498}, {-0.185454,-0.769265}, {0.640850,-0.158718}, {-1.334112,-0.208599}, {-0.368937,-0.719614}, {0.154071,0.481000}, {0.369258,-1.256445}, {-1.053810,1.454169}, {-0.166292,-0.690521}, {0.434216,-0.485381}, {0.446152,0.316255}, {0.598136,-0.692985}, {0.194634,0.723444}, {0.033284,-0.674910}, {-0.677093,-0.480733}, {0.483942,0.055658}, {-0.380847,1.698802}, {-0.739697,-0.967901}, {0.181901,-0.283096}, {-0.385252,-0.218986}, {0.571349,1.211891}, {0.208035,-0.801372}, {-0.001354,0.011905}, {0.481477,-0.622890}, {1.126983,0.720045}, {0.366125,0.725890}, {0.172974,0.276534}, {-0.297515,-0.000297}, {0.716860,-0.694652}, {0.896244,-0.218171}, {0.166865,-0.781466}, {-0.782709,-0.862993}, {-0.004288,1.019110}, {-0.509804,0.230849}, {-0.987740,0.724671}, {-0.816786,-1.334751}, {-0.406238,-0.684850}, {0.680826,0.080398}, {-0.045664,0.409165}, {1.857790,-0.268328}, {0.265866,1.576185}, {-0.633796,-0.378996}, {0.441580,0.420835}, {0.594992,-0.103592}, {-0.350224,1.054242}, {-0.454100,0.966540}, {-0.553087,0.060871}, {-0.473446,-0.638460}, {0.348962,-0.726140}, {0.403723,-0.092776}, {0.168148,-0.187260}, {-0.047057,-0.712472}, {0.546338,0.364816}, {0.918003,-0.461675}, {-0.907751,-1.659162}, {0.690737,0.688165}, {1.115170,-0.620245}, {-0.424054,-0.378832}, {-0.295589,0.438479}, {-1.181545,-0.526172}, {-0.191356,0.363078}, {1.256819,0.772957}, {0.660880,-0.127556}, {-0.770033,1.086703}, {-0.221948,-0.024302}, {0.376195,0.665919}, {0.855315,1.296681}, {0.064168,-1.090223}, {1.198266,-0.123963}, {0.222219,0.832714}, {0.265471,0.660817}, {0.926886,0.106470}, {-0.116532,-0.351282}, {0.282755,1.394651}, {1.976995,0.625415}, {0.086001,0.874691}, {-1.158765,-0.296382}, {0.821879,0.330819}, {1.473645,0.454222}, {0.373012,0.334324}, {0.784090,-1.194075}, {-0.049292,-0.080586}, {-0.326299,-1.150056}, {-0.376097,-0.297711}, {0.400420,0.699295}, {-0.401832,0.718915}, {0.513962,1.314126}, {-1.223199,0.822673}, {-0.198511,0.577317}, {-0.931176,-0.141243}, {-0.328271,-0.297043}, {0.058682,0.063005}, {-1.537647,-1.357544}, {0.991342,-0.020237}, {0.389384,-0.358624}, {-0.286835,0.522531}, {-0.921756,-1.109047}, {-0.005216,0.585698}, {0.073284,-0.240263}, {-0.608758,1.045577}, {-0.127535,1.243989}, {1.069722,-0.381090}, {0.658169,-0.466652}, {0.110592,-0.898093}, {-0.344192,0.315264}, {-1.253943,0.576829}, {-0.988689,0.289650}, {0.323581,0.406835}, {0.753623,-1.395921}, {-0.526975,0.375853}, {-0.228419,0.642204}, {-0.911534,-0.802450}, {-0.714417,-0.277566}, {-0.248413,-0.669371}, {0.558370,-0.525797}, {-0.676306,-0.233652}, {0.187377,-0.245513}, {-0.115084,-0.722299}, {-0.778514,-0.521242}, {1.510762,0.186472}, {-0.112162,0.741817}, {0.168038,0.036480}, {0.473081,-0.613676}, {0.017735,-1.619743}, {0.125184,-0.943553}, {0.545184,-0.381330}, {0.093888,0.932584}, {0.298593,-1.014602}, {1.317871,-0.453601}, {0.446039,0.296345}, {-0.003700,-0.215325}, {0.357740,-1.726941}, {0.056925,-0.146512}, {0.242151,-0.224778}, {0.333254,1.380770}, {1.576821,-0.423607}, {0.293532,0.300461}, {-0.192775,-0.819195}, {-0.724187,0.864495}, {-0.256047,0.693948}, {0.227372,0.048857}, {0.384743,-0.022614}, {0.334230,0.059078}, {-0.084885,0.245805}, {-0.956303,-1.202349}, {-0.673081,-0.715653}, {-1.070653,-0.327304}, {-0.147279,0.735590}, {-1.051301,2.081734}, {0.743641,0.675310}, {0.497307,-0.052339}, {-1.137150,-0.681605}, {0.958912,-0.359105}, {-0.011346,-1.133356}, {-0.675276,0.676611}, {-0.088049,-0.368402}, {1.029195,0.986048}, {0.769677,0.565289}, {-0.142346,1.404113}, {-1.105935,0.105231}, {0.137296,-0.042361}, {0.064376,1.281022}, {0.891722,-0.662071}, {-0.274474,1.361238}, {0.501089,0.037064}, {-1.079683,0.260584}, {-0.657026,-0.608459}, {-1.321491,0.137369}, {-0.147387,1.485629}, {0.701370,-0.338272}, {-0.937117,-1.890266}, {-0.002981,-0.309410}, {-0.450557,0.756156}, {-0.207628,0.767636}, {-0.017018,-1.057447}, {-0.516946,0.622016}, {-0.439782,-0.660634}, {0.465733,0.369621}, {-1.107081,0.963995}, {-1.304264,-0.056408}, {0.326753,0.871892}, {0.607911,-0.097462}, {0.368739,-0.185021}, {1.177421,0.378663}, {-0.059318,-0.122919}, {0.024356,-0.157050}, {-0.952570,-0.640217}, {-0.285763,0.974177}, {-0.222286,-0.638367}, {1.350695,0.832729}, {0.426047,0.068965}, {-1.235143,-0.255727}, {0.097972,-1.280044}, {0.613868,0.569266}, {0.792483,-0.388408}, {-0.611795,-0.757664}, {0.066523,-1.342460}, {1.152646,0.059112}, {-0.407404,-0.164086}, {0.998551,-0.553072}, {-0.230242,-0.414397}, {1.100387,-0.474447}, {-0.136452,-0.266361}, {-0.783866,-0.608098}, {-0.626331,0.731900}, {0.453871,0.483000}, {0.118882,-0.076636}, {-0.010890,1.832384}, {-0.275781,0.534932}, {-0.758412,0.302367}, {0.774181,-0.666316}, {-1.239903,-0.018154}, {-0.826897,-0.159508}, {0.294782,0.329762}, {-0.310305,0.173462}, {-0.484331,0.577130}, {0.528037,-0.079597}, {-1.165040,0.643362}, {0.218828,-1.879045}, {0.340559,0.534394}, {1.027003,-0.862991}, {0.265023,0.582110}, {0.533497,0.424652}, {-0.143533,-0.668350}, {-0.043478,1.242700}, {0.140689,-0.328515}, {0.594427,0.952587}, {0.328719,0.131913}, {1.647645,0.451601}, {0.807728,0.547755}, {-0.398431,1.090855}, {0.071550,0.529582}, {0.696988,0.096969}, {-0.315803,0.602702}, {-0.053510,0.368662}, {-0.783694,-0.369834}, {-0.513209,-0.183077}, {-0.389552,-0.423163}, {0.250511,-0.197899}, {1.072604,1.141232}, {-0.256157,0.324126}, {-0.845304,1.344024}, {1.607235,-0.083729}, {0.216531,-0.229193}, {-1.849789,0.283520}, {-0.273563,-0.437125}, {0.439165,0.820069}, {-0.071710,0.044047}, {-0.036628,0.811854}, {0.949810,0.092324}, {0.223015,-0.302363}, {-1.151938,0.219130}, {-0.602013,-0.159929}, {-0.479745,-0.467518}, {-0.596418,1.115315}, {1.155356,0.976269}, {-0.339066,0.667014}, {-0.537118,-0.328546}, {0.231632,-0.251679}, {-0.564684,-0.151955}, {0.404261,0.591546}, {0.156538,-0.119747}, {-0.265291,0.441799}, {-0.710732,0.990762}, {-0.037181,-0.893433}, {-0.608993,0.072250}, {-0.431612,-0.294577}, {-0.449292,-0.627379}, {1.118185,-0.219789}, {-1.095315,-0.141630}, {-0.906823,1.379934}, {-0.355207,0.170146}, {0.012266,-0.140593}, {0.582558,0.200710}, {-0.264941,0.654223}, {0.490653,0.262090}, {-0.806158,0.423760}, {-0.916022,-0.095727}, {-1.435559,-0.430004}, {-1.383499,0.819679}, {-0.476148,-0.799760}, {-0.086440,-0.288405}, {0.468541,-0.026429}, {-0.513250,-0.142815}, {-0.903017,0.571624}, {-0.097263,0.834344}, {-1.345370,-0.677137}, {1.710559,-0.271618}, {-0.490398,-0.719281}, {-0.660807,0.868829}, {-0.612810,-0.703682}, {0.992913,0.444834}, {0.083612,0.800845}, {-0.140036,-0.531708}, {-1.676151,0.726057}, {1.115666,0.611399}, {-0.454838,0.031736}, {0.338107,0.033385}, {-1.179649,0.975904}, {-0.362644,-0.703524}, {0.265567,-0.598433}, {0.612009,-0.911296}, {0.669627,0.732675}, {0.299979,-1.083474}, {-0.001796,0.450980}, {-0.312085,-0.240890}, {-0.157834,-0.452017}, {-1.005825,-1.124619}, {1.514761,-0.139328}, {0.205847,-0.624360}, {-0.788916,-0.431594}, {0.185577,0.530159}, {-0.998640,-0.120038}, {-0.701757,-0.385069}, {0.127492,0.278129}, {0.644093,-0.318252}, {1.349703,0.815553}, {1.178677,0.257816}, {0.290177,1.567018}, {0.815353,0.069366}, {0.428406,0.751920}, {-0.358682,-0.000313}, {0.898652,-0.035994}, {0.007882,-0.203406}, {1.143951,0.676206}, {-1.579231,-0.510529}, {-0.029383,0.067530}, {-0.207513,-0.651686}, {-0.171590,0.197287}, {1.106950,0.639104}, {-1.153861,0.109446}, {0.128439,1.245168}, {-1.709516,0.155977}, {0.698242,0.511780}, {0.188021,0.140058}, {0.214542,-0.603858}, {-0.585161,-0.999378}, {-0.125116,-0.107497}, {1.169544,-0.068827}, {-0.641184,-0.795741}, {0.299439,-0.994491}, {-1.270881,0.080905}, {0.638892,0.320804}, {-0.045967,0.343003}, {0.572705,-0.597459}, {-1.076651,0.926168}, {1.591514,-0.239336}, {-0.151223,0.296796}, {-0.547906,-0.598357}, {0.194930,-1.469040}, {-1.066167,-0.488868}, {0.375923,-0.458435}, {0.118752,-0.176519}, {-1.119040,-0.877881}, {0.317179,1.106286}, {-0.524586,0.380106}, {0.449438,-0.812248}, {0.218978,-0.240793}, {0.920874,1.099158}, {0.337065,-1.042434}, {0.165176,-0.575666}, {0.124061,0.064366}, {-0.972349,-0.449360}, {0.438009,-0.607478}, {1.340508,0.164007}, {-0.611231,-0.045868}, {-1.894545,0.313067}, {0.026078,-0.046337}, {-0.993251,0.529082}, {0.338591,-0.050854}, {0.276524,-1.876008}, {0.553549,-0.641581}, {-1.274207,1.314869}, {0.082555,0.483468}, {0.480747,0.004671}, {0.129514,0.227370}, {0.488707,-0.498655}, {-0.672859,0.446981}, {-0.389134,0.220936}, {0.678780,0.388861}, {0.004714,0.113091}, {0.098152,0.402314}, {-0.584163,0.655414}, {1.069824,0.053944}, {1.426146,-0.171673}, {-0.492434,0.430442}, {0.387326,-0.723692}, {0.923225,0.315823}, {-0.436266,-0.179644}, {0.679013,0.839753}, {0.121002,0.328185}, {0.686624,0.263510}, {-1.014880,0.226535}, {0.496357,0.676631}, {-0.685878,0.475997}, {-0.816184,-0.690225}, {0.624418,-0.640938}, {0.981859,-0.263799}, {1.266654,-0.559957}, {-0.447318,-1.692190}, {-1.632760,-0.647412}, {1.237379,1.188506}, {0.224983,-0.193860}, {0.265301,0.088248}, {1.487341,-0.210028}, {0.975147,-1.738118}, {-0.315739,-1.563346}, {0.759571,-0.834275}, {0.248891,-0.487193}, {0.593097,0.883254}, {-0.295665,-0.091338}, {0.242557,-0.870492}, {0.076878,-0.401879}, {-1.275364,-0.748062}, {-1.030366,-0.635397}, {-0.059741,0.281073}, {0.647269,0.569318}, {0.091019,-0.383699}, {1.550738,-0.017491}, {0.558012,-0.883251}, {1.344487,0.781872}, {0.425354,-0.544888}, {0.443166,-0.622855}, {0.402391,-0.428524}, {0.322402,0.140907}, {0.665183,0.150628}, {0.264571,0.063423}, {-0.180192,1.228519}, {0.176187,0.609708}, {-0.686995,-0.858999}, {0.403250,1.127242}, {-0.460433,0.622449}, {0.957213,0.125857}, {-0.214465,-0.254392}, {0.953570,-0.146560}, {0.351196,-0.097209}, {0.363350,0.991605}, {-0.842097,0.750050}, {0.173444,0.393799}, {0.644241,0.891357}, {0.518479,0.829535}, {-0.793455,-0.868437}, {-0.451662,0.080692}, {1.713382,0.806600}, {-0.986818,0.371536}, {-0.732506,-0.086137}, {-0.287972,1.333554}, {-0.505251,-0.388335}, {0.182226,-0.170677}, {0.656847,-0.151742}, {0.240621,-0.408503}, {-1.207747,0.579227}, {-0.480071,-1.477118}, {0.397312,1.160838}, {-0.478893,0.085660}, {-1.201398,-0.484779}, {-0.875166,1.306590}, {-0.048226,0.168645}, {0.575978,0.334768}, {0.268464,-0.584981}, {0.172204,0.362164}, {-0.573584,0.837555}, {0.097430,0.693442}, {0.710075,0.430611}, {0.279881,0.500559}, {-0.495316,-0.284207}, {-0.024375,-0.582689}, {0.503912,0.590465}, {0.543956,-0.751481}, {-0.113901,0.583382}, {-0.424219,0.552384}, {-0.209784,0.254702}, {2.524661,-1.007793}, {0.453447,-0.787107}, {0.129431,0.856054}, {-0.725614,-0.060954}, {-0.076847,-0.411651}, {-0.585319,-0.607995}, {0.354620,-0.943508}, {0.004873,0.874609}, {0.584256,0.295973}, {-0.751269,-0.621494}, {1.252094,0.523044}, {0.412384,-0.071193}, {1.460668,-0.424840}, {-1.668383,-0.125918}, {-0.140575,-0.793958}, {-0.602913,-1.530258}, {-0.485749,0.647443}, {0.327012,0.012391}, {-0.065556,-1.534338}, {0.040087,0.692505}, {0.331535,0.606771}, {-1.081422,0.655871}, {0.112370,0.095884}, {0.544109,-0.418467}, {0.883949,0.869171}, {-0.053113,1.005180}, {0.084581,0.070706}, {1.176918,0.868754}, {0.340621,-0.290651}, {1.069518,-0.145240}, {-0.305978,-0.255205}, {0.264782,0.828990}, {0.076048,0.311651}, {1.020387,-0.341573}, {1.171179,0.317841}, {0.039440,-0.343955}, {-0.196474,-1.120097}, {0.173672,-0.637267}, {0.869413,0.499800}, {0.402750,-0.274691}, {-0.195399,-0.716727}, {-0.697868,-0.592886}, {1.005820,-0.833437}, {1.667014,-0.928567}, {0.112603,0.637979}, {-0.378046,-0.094991}, {-0.264513,0.562337}, {-0.281534,-0.171989}, {0.184469,0.954685}, {-0.184794,-0.419611}, {0.042573,-0.035524}, {0.526333,0.216558}, {0.221470,-0.570724}, {0.952384,0.824810}, {0.377462,-0.439426}, {0.552507,0.406306}, {0.356019,-0.448320}, {-1.181908,0.315880}, {1.237299,-1.380363}, {-0.266766,1.166820}, {-0.543319,-0.487425}, {0.853891,1.002771}, {0.094524,-1.085172}, {-0.122670,-0.819704}, {0.507893,1.214830}, {0.066840,0.391217}, {-0.627340,-1.028818}, {0.048450,0.066480}, {1.252207,-1.088292}, {1.914396,-0.390461}, {0.783587,-0.456659}, {-1.087500,-0.414070}, {-0.017378,-0.330487}, {0.822467,0.523086}, {0.544551,-0.396871}, {0.505004,-0.302542}, {0.655396,0.309852}, {0.744048,-0.677621}, {0.632487,0.637052}, {0.382478,-0.487032}, {-0.253994,1.037147}, {1.056620,0.110571}, {-1.000220,0.890575}, {0.227128,-0.051171}, {0.249166,-0.869667}, {0.362158,0.942859}, {0.170629,0.370184}, {-0.428655,-0.104012}, {0.827800,-0.147575}, {0.050820,-0.016864}, {1.169503,0.264916}, {1.055638,-1.029984}, {-0.213356,-0.446858}, {0.883660,-0.272743}, {-0.179240,1.234001}, {-1.124872,-1.414740}, {0.620017,0.524664}, {0.429714,-1.144124}, {0.071774,0.024483}, {0.236817,0.493902}, {-0.345272,0.403117}, {-0.245305,0.443081}, {0.456796,0.439895}, {0.127632,-1.065099}, {1.004045,0.187642}, {0.910957,0.711730}, {0.270826,0.181679}, {0.554230,-0.318570}, {0.415953,0.287152}, {0.249620,-1.683391}, {-0.183154,-0.452854}, {0.914111,-0.432673}, {-1.329404,-0.200816}, {0.408647,0.357466}, {0.342816,0.128307}, {-0.372446,-0.517950}, {-0.268470,-0.945823}, {0.058636,0.446404}, {0.077650,-0.641117}, {0.500659,0.569755}, {-1.264154,-0.108240}, {-0.323458,1.076444}, {0.286058,-0.812280}, {1.130102,-0.533853}, {0.820155,0.813720}, {-0.369292,0.599253}, {-0.401040,-1.122319}, {0.015961,0.999207}, {0.113009,0.151940}, {-0.326797,-1.045239}, {-0.631927,-0.213249}, {-0.232764,-0.353310}, {-0.277962,0.172006}, {-1.384869,0.322627}, {0.657043,0.378613}, {1.632659,-0.311238}, {-0.128560,0.380120}, {-0.021658,0.595562}, {0.055891,0.020949}, {0.360843,-1.355132}, {-0.441202,0.653312}, {-0.903583,-0.602887}, {0.589411,-0.501421}, {0.009663,0.497738}, {0.955606,0.137016}, {-0.829489,0.248268}, {-0.623087,0.554453}, {-0.983462,-0.470261}, {-0.093188,-0.254457}, {0.281605,-0.015601}, {1.143487,-0.512110}, {-0.259302,0.254954}, {-1.333991,0.113816}, {1.056834,0.224210}, {0.478784,-1.143913}, {1.172144,0.054436}, {0.126576,-0.617074}, {0.129731,0.567838}, {0.992712,0.311224}, {-0.080398,0.093624}, {-0.333385,0.321406}, {-0.857085,0.136303}, {-0.193071,0.112527}, {0.174651,-0.824896}, {-0.044413,-0.225567}, {0.889937,0.174611}, {0.221331,-0.846178}, {-0.911343,-0.217177}, {-0.598798,1.486589}, {0.678465,-0.562484}, {1.906944,0.211159}, {-0.148741,0.420947}, {0.875071,0.723028}, {0.500603,0.175314}, {-0.669264,0.505343}, {-0.162355,0.492007}, {0.405254,0.188295}, {0.730781,-0.170657}, {0.219461,-0.487510}, {-0.607648,-0.266311}, {1.031809,-1.878717}, {0.262365,0.080670}, {0.704439,-0.342870}, {0.526865,0.107263}, {0.449751,-0.350958}, {-0.250292,-0.244899}, {0.322347,-0.066403}, {0.250252,0.152062}, {-0.123904,0.252763}, {0.097518,0.668475}, {-0.756972,0.544061}, {-0.482034,-1.042969}, {0.216007,-0.057989}, {-0.076012,-0.157728}, {-0.193643,0.281670}, {-0.047023,-1.385414}, {0.425208,0.198825}, {-1.128706,1.130083}, {0.749280,0.273274}, {-0.885277,-0.437183}, {-0.045310,0.493993}, {0.689210,0.481689}, {-0.836367,-0.212518}, {0.933511,-0.551367}, {0.323157,0.145200}, {-0.381780,0.425335}, {-0.043935,0.669080}, {0.950537,-0.788988}, {0.888065,0.870818}, {0.198948,1.131985}, {0.333668,1.531210}, {0.329099,1.260233}, {0.619784,-0.971239}, {-0.362197,0.842451}, {-0.107082,0.572070}, {-1.273638,-0.219990}, {-0.220258,0.341964}, {-0.110476,-0.229104}, {1.871605,1.085818}, {-0.667567,-0.510587}, {-0.081589,-0.002145}, {-0.485358,-0.264608}, {-0.021298,-1.378931}, {1.061728,-0.050554}, {0.063661,-0.078720}, {0.540324,-0.679083}, {0.040479,-1.175746}, {-1.651713,0.175791}, {-1.061321,-0.905733}, {-0.144548,-0.403863}, {-0.212951,-0.162069}, {-0.202079,0.210548}, {-0.481286,-0.089389}, {0.534427,0.293422}, {-0.077023,-0.592110}, {0.748204,-0.933897}, {0.789813,0.023419}, {0.364097,-0.688288}, {-0.817344,-0.232389}, {-1.106773,-0.011376}, {-1.149018,0.589183}, {-0.237988,0.461070}, {0.144291,-0.866590}, {-0.319867,-0.741546}, {0.467556,-0.563525}, {0.787965,-0.067020}, {-0.377218,0.346134}, {-0.439111,-0.729340}, {0.111481,-0.725684}, {-0.345130,0.303179}, {0.221511,-0.444748}, {-0.139828,1.064259}, {-0.102410,1.595486}, {-0.033213,-1.118558}, {0.003251,0.259777}, {-0.418818,0.218547}, {0.196030,-0.238166}, {0.317481,0.810128}, {0.685667,-1.193565}, {-0.230818,1.499649}, {0.527567,1.628496}, {0.418979,-0.163575}, {0.943900,0.909605}, {-1.191709,-0.027791}, {0.834602,1.596546}, {0.285289,0.562981}, {-0.270156,-0.195083}, {-0.731085,-0.510584}, {0.054180,0.401694}, {0.222936,-0.465566}, {0.708946,0.905168}, {0.274867,-0.023564}, {0.255887,-1.523657}, {-0.438371,-0.835342}, {-0.388636,0.420745}, {0.575120,0.350653}, {0.165252,-1.180423}, {-0.106785,-0.106601}, {-0.163290,0.059107}, {-0.048709,-0.263100}, {0.309147,-0.042611}, {-0.927395,0.617546}, {0.809214,1.027300}, {-0.146042,0.142650}, {-0.784247,-1.284659}, {-0.278628,-0.344565}, {0.036556,0.842948}, {0.912256,0.120918}, {-1.159161,-0.897982}, {1.183806,0.116039}, {0.080759,-0.670877}, {1.106555,0.968417}, {-0.748972,-0.332161}, {0.015659,-0.238382}, {0.072921,0.945789}, {0.720423,-0.655437}, {-1.184291,-1.204869}, {0.005271,-0.500795}, {-0.947286,0.565118}, {0.402954,-0.272249}, {-0.051205,-1.269563}, {-0.244921,-0.403400}, {0.688696,-0.966522}, {-1.332749,1.102022}, {0.248091,-0.614807}, {0.542833,0.089974}, {0.092234,-1.064895}, {-0.142784,-0.393747}, {-1.915675,0.230426}, {0.189830,0.787094}, {-0.630199,0.176279}, {-1.014131,1.143947}, {-0.520987,-0.274620}, {0.207558,-0.600789}, {0.091016,-0.244461}, {-0.130663,0.121426}, {0.004404,0.214764}, {1.305978,0.539062}, {1.085432,0.406738}, {-1.147405,0.986932}, {-0.527963,0.040514}, {1.048821,0.402675}, {0.871429,1.049595}, {1.770856,-0.090866}, {-0.518070,0.716500}, {0.487361,0.022371}, {-0.686924,-0.549181}, {0.340429,0.907657}, {-0.394719,1.043237}, {0.202132,-0.329431}, {-0.569046,0.377140}, {-0.446943,0.699826}, {-1.179740,-0.505842}, {0.356706,0.439865}, {-0.598450,0.446083}, {-1.374043,0.679741}, {-0.021589,-1.611401}, {0.410296,0.014703}, {1.604389,0.059808}, {-1.673347,-0.607599}, {-0.050574,0.534932}, {1.712505,1.284287}, {-0.342150,-0.043176}, {0.055806,0.223800}, {0.355618,-0.311415}, {-0.271235,0.683074}, {-0.775743,1.125752}, {-0.378310,-1.640378}, {-1.038677,0.190076}, {1.174409,-0.118801}, {0.331030,-0.048922}, {0.728780,-0.295898}, {0.693699,-0.972498}, {0.174966,-1.152868}, {-0.876610,-0.017480}, {-0.062463,0.606038}, {0.974421,1.248637}, {1.417309,-0.262139}, {0.011829,1.068245}, {-0.812946,2.785479}, {0.861911,0.248256}, {-0.567134,0.287479}, {-1.000297,0.453402}, {-0.007071,0.201681}, {-0.152146,1.342125}, {0.671739,0.150808}, {1.116866,0.838904}, {0.759212,-1.364876}, {-1.013891,1.460428}, {-0.226149,-1.126365}, {-0.451954,-0.444787}, {-0.021515,1.034266}, {-0.571367,-0.692007}, {-0.349616,0.140445}, {0.168654,0.087815}, {-0.129953,0.445421}, {0.410578,0.912573}, {-0.217475,-0.669581}, {-0.222785,1.245619}, {1.558435,0.605819}, {-0.488581,-0.336896}, {-0.247095,0.691559}, {-0.272835,-0.264770}, {0.675699,0.032700}, {-0.600614,0.262450}, {0.180303,-0.367078}, {0.919067,1.375550}, {0.152099,-0.550776}, {-0.201242,0.036053}, {0.764895,-1.477231}, {0.396961,0.220377}, {-0.306654,0.876105}, {-0.991493,0.187414}, {-0.307614,0.684635}, {-0.773884,0.106210}, {-1.566911,0.170510}, {0.361833,-0.141857}, {-0.600408,-0.446279}, {1.421652,0.535651}, {0.798181,1.741752}, {0.828463,-1.351656}, {1.064522,0.356219}, {-0.261882,-0.068944}, {-0.274206,-0.863308}, {-0.472305,-0.610240}, {1.169302,0.073319}, {0.212464,-0.516636}, {0.072813,0.172732}, {-0.402815,-0.754899}, {0.240675,0.006754}, {-0.413280,0.162876}, {-0.878790,-0.579111}, {-0.490272,-1.206031}, {-0.500456,-0.219817}, {0.069254,-1.439473}, {0.914958,0.485123}, {0.759158,-0.336522}, {0.798766,-0.831419}, {0.572361,-0.465976}, {-0.130641,-0.259763}, {-0.529278,0.642024}, {0.169663,1.957850}, {0.290362,1.466387}, {0.486745,-0.303996}, {-0.739829,0.729494}, {-1.119647,-0.438709}, {1.199651,0.132905}, {-0.028488,0.166904}, {0.294118,1.343646}, {-1.078798,-0.045417}, {-0.144834,0.724221}, {-0.286147,0.584877}, {-1.025536,1.281690}, {1.349738,0.051777}, {-0.163706,0.861461}, {1.304346,-1.415064}, {-0.220065,0.578733}, {-0.073421,-0.292662}, {-0.407989,1.100458}, {0.306779,-0.903447}, {-0.053132,-0.864616}, {-0.613827,0.320417}, {-0.157362,-0.152289}, {-0.363881,-0.696127}, {-0.644928,-0.357587}, {0.523401,-0.545460}, {-0.284975,0.437116}, {-0.332811,0.194424}, {0.886436,-0.283097}, {-0.353503,1.253798}, {0.777206,1.140778}, {-0.176515,1.349269}, {0.200192,0.474405}, {-0.090735,0.782045}, {0.108052,-0.393573}, {-0.097758,0.133294}, {-0.521819,-0.069948}, {0.495179,0.903907}, {-1.635143,0.044403}, {-1.044754,0.995099}, {-0.029236,0.231209}, {-0.763150,-0.740411}, {0.666666,0.948566}, {-0.996496,0.103076}, {0.066595,0.386752}, {1.079913,-0.587405}, {-0.126881,0.324364}, {0.242668,0.274037}, {-0.167854,-0.463373}, {1.254502,-1.338299}, {-0.814549,-0.540325}, {0.604115,0.960306}, {-0.762464,0.255581}, {-0.145291,-0.151457}, {0.539461,0.564589}, {0.452901,-0.644154}, {-0.121667,0.123363}, {0.172408,0.943437}, {0.349217,-0.431470}, {0.193653,-0.286326}, {0.373892,-0.225571}, {-0.469563,-0.051636}, {0.703894,0.076285}, {-0.342531,-0.919488}, {-0.093593,0.467140}, {-0.370503,-0.159512}, {-0.427136,0.822814}, {0.484980,0.660569}, {0.380112,1.642120}, {0.741086,-1.181946}, {-0.861984,-0.551848}, {-0.326551,0.051893}, {-0.673266,0.128672}, {0.477538,-0.448337}, {0.424523,-0.099635}, {-0.200313,0.300309}, {-0.319153,-1.021980}, {-0.640520,-0.659841}, {-0.189198,0.771204}, {0.163659,-0.315306}, {0.756345,0.736886}, {-0.321533,0.169677}, {-1.755957,0.206259}, {-2.116119,1.256344}, {-0.750604,0.344105}, {0.267358,-0.320943}, {1.438068,-0.187643}, {-0.629031,-0.059064}, {0.769031,0.174502}, {0.611810,0.637876}, {0.509224,1.423682}, {0.029716,-0.226301}, {-0.529129,-0.458146}, {0.588062,0.568816}, {-0.261343,0.028227}, {0.000322,-0.506508}, {-0.454871,-0.212809}, {-1.170607,0.073436}, {1.134318,0.212980}, {-1.039946,1.151672}, {0.904145,-0.236109}, {0.572173,-0.222902}, {0.354798,-0.056846}, {0.617914,-0.121507}, {-0.485005,-0.789432}, {0.555901,1.045454}, {-0.342510,0.662108}, {0.477863,0.919492}, {-0.886891,-0.151806}, {0.073477,0.660208}, {-0.836821,-0.492241}, {0.868206,0.057640}, {-0.278170,-0.344302}, {1.740416,0.163213}, {0.710730,0.125488}, {0.283223,0.313698}, {0.549759,-0.103777}, {0.979863,0.559804}, {-0.290891,-0.894974}, {0.187074,-1.035208}, {0.722918,-1.398915}, {-0.581228,0.581626}, {0.289505,-0.332083}, {0.489170,-0.566258}, {-0.889190,-0.521928}, {-0.262424,0.143982}, {-1.279355,-0.724648}, {0.257297,0.851178}, {-0.306166,-0.469346}, {0.045235,-0.453040}, {0.285296,0.528722}, {-0.568471,-0.086437}, {-0.449844,0.791630}, {0.440313,0.203210}, {-0.715834,0.084234}, {-0.535316,-0.471520}, {0.545214,0.542797}, {0.858170,-0.392007}, {0.459011,0.277321}, {0.630900,0.621847}, {-0.661226,-1.433006}, {0.657691,-0.355625}, {-0.083747,0.737402}, {-0.427198,-0.957863}, {-0.194041,1.158089}, {-0.546119,-0.629835}, {1.668000,1.040309}, {-0.407113,-1.748223}, {0.586268,0.131234}, {0.824612,0.043758}, {0.077720,0.434675}, {-0.878529,0.066930}, {-0.910217,-0.770628}, {-0.399495,0.223856}, {-0.776131,0.072596}, {0.968979,-0.378461}, {-0.788724,-0.419890}, {-0.717876,-0.129177}, {0.649467,-0.543748}, {-0.083694,-0.154461}, {0.433057,0.341816}, {-0.109326,0.473616}, {-0.306007,0.525211}, {1.334709,0.792284}, {0.450165,0.092275}, {1.269496,-0.283253}, {-0.987681,0.679147}, {0.700508,-0.765557}, {0.020683,0.657076}, {0.556750,0.196350}, {-1.036465,0.515704}, {0.529448,0.036856}, {-1.108420,-0.332631}, {-0.792801,-0.226293}, {-0.806708,-0.100053}, {-0.810484,-0.306346}, {-0.181914,-0.053941}, {-0.967090,0.696498}, {1.192545,-0.294435}, {-0.566689,-1.356403}, {-0.828942,-0.407377}, {-0.621438,1.217900}, {-1.028343,0.521929}, {1.025599,-0.656932}, {0.138542,0.489792}, {-0.202065,1.257500}, {0.043756,-0.176369}, {0.685895,-0.249690}, {0.549922,0.885082}, {-0.189354,-1.551150}, {-1.118100,0.020367}, {0.474848,1.184561}, {-0.050645,1.195300}, {0.867725,-0.380298}, {1.033550,0.154888}, {-0.477175,-0.457725}, {1.148061,0.585421}, {0.380830,-0.754913}, {-0.106258,0.080392}, {-0.092959,-0.386023}, {-0.358937,-0.724895}, {-1.374994,1.067211}, {0.460321,0.527363}, {-1.238789,-0.089993}, {1.464682,0.876127}, {-1.234731,1.128579}, {0.724792,-0.450972}, {-1.521916,0.809717}, {-0.388497,-0.174976}, {0.086236,0.748876}, {1.100546,-0.528230}, {0.226367,0.697463}, {0.744283,1.254010}, {-0.249234,-0.694237}, {0.167903,0.298213}, {-0.228874,-0.560931}, {0.394532,0.449698}, {-0.344909,-0.227098}, {-0.415043,-1.065131}, {0.126645,1.162114}, {1.370732,-0.619147}, {0.823699,-0.552124}, {0.345714,-0.232139}, {0.894510,-0.203477}, {0.475686,-1.010735}, {0.661874,0.478840}, {-0.521820,-0.526937}, {1.314386,0.651335}, {-0.319251,-0.196685}, {-0.505632,0.967049}, {0.590235,0.712258}, {1.380347,1.137978}, {0.152855,-0.242439}, {0.291709,-0.255131}, {1.260959,-0.491270}, {-1.089113,-0.159145}, {0.435095,-0.676862}, {-0.340494,0.469703}, {1.302442,-0.532868}, {-0.378602,-0.400420}, {0.925227,-0.607976}, {0.251869,0.591035}, {-0.646873,-0.636483}, {-0.328268,-0.897893}, {1.089412,-0.159031}, {0.814358,2.220698}, {0.772924,-0.691036}, {-0.784735,1.137714}, {-0.042070,-0.600536}, {0.592465,-0.209877}, {0.769297,1.296465}, {0.448652,-0.198575}, {0.025998,0.141744}, {0.485850,-1.270583}, {-0.846149,-0.038597}, {-0.277242,-0.731952}, {0.198053,-1.496392}, {-0.073055,0.046129}, {0.574797,-1.238401}, {0.133512,0.156586}, {0.105417,1.088396}, {0.143785,0.480135}, {0.306526,-0.884781}, {0.722423,-0.916666}, {-0.657561,0.272999}, {-0.557441,1.138685}, {-0.782249,-1.293763}, {0.453444,0.532557}, {1.013185,-0.405740}, {-0.094466,0.752667}, {1.286455,-0.593367}, {-0.298950,0.306095}, {1.181346,0.559262}, {0.461658,-0.639042}, {-1.291839,-0.121779}, {-0.326193,0.113747}, {-1.154270,-0.089857}, {-0.351472,-1.491822}, {0.720080,-0.419379}, {-0.672820,0.094205}, {0.812964,-0.064953}, {-1.294077,1.076364}, {-0.133796,-0.745281}, {-0.393393,0.385628}, {-0.602521,-0.377900}, {0.528132,-0.164217}, {0.505215,-0.104243}, {0.765574,0.926339}, {2.024634,-0.477364}, {0.017166,0.179716}, {0.399008,-1.200177}, {-1.090208,0.311701}, {-0.158439,-0.916668}, {1.058774,0.191072}, {-0.464662,-0.983746}, {0.540500,-0.331676}, {0.139759,-0.346498}, {-0.331954,0.206804}, {-0.956494,0.357149}, {-0.944290,-0.414694}, {1.172465,-0.536726}, {-0.541046,0.365657}, {0.276923,1.402963}, {-0.242318,0.269377}, {0.965338,-0.785207}, {-0.718256,-0.028312}, {0.231175,0.665614}, {-0.947264,-0.913082}, {-0.501002,1.094529}, {0.352224,-0.272040}, {0.397494,0.185641}, {-0.151725,0.717844}, {0.839893,0.459279}, {0.801901,-0.313492}, {-0.684958,0.226865}, {-0.212219,-0.213841}, {0.892238,-0.435760}, {1.314788,-0.271844}, {0.836362,0.043882}, {-0.957485,-0.948085}, {1.079672,0.119647}, {-0.513333,0.529166}, {0.438430,-0.923301}, {0.175442,-0.539418}, {-0.003292,-0.268481}, {-0.438336,0.598716}, {0.174795,0.663858}, {0.409033,1.094613}, {0.766143,0.882464}, {0.116399,0.720590}, {-0.563363,0.971493}, {-1.542577,0.365604}, {0.514771,-0.458050}, {-0.346020,0.184177}, {-1.029390,0.631160}, {0.916323,0.569872}, {0.330674,-0.403426}, {-0.815112,0.338683}, {-0.233795,-0.536290}, {-0.156529,-1.368641}, {-0.263744,0.144793}, {0.546089,0.239988}, {-0.176949,-0.463405}, {-0.369226,-1.044596}, {-0.505317,-0.388794}, {-0.451340,0.812733}, {0.325007,0.206856}, {-0.810237,-1.085805}, {0.165055,0.996302}, {-0.931375,0.613591}, {-0.126483,-0.744854}, {0.397855,0.364294}, {0.287751,-0.500914}, {-0.053719,0.982818}, {-0.553468,0.292330}, {0.179430,-0.597617}, {-1.198685,-0.800000}, {1.186764,-0.992792}, {0.724964,0.103448}, {0.963127,0.232599}, {0.092029,0.364811}, {0.023554,0.358368}, {-0.156919,-0.181441}, {0.186716,0.206933}, {0.533803,-0.467186}, {-0.459122,0.140642}, {0.994366,-0.893881}, {0.452242,0.282844}, {-1.757045,-0.228025}, {0.966083,-0.036048}, {-0.134917,-0.207168}, {0.124213,-0.129237}, {-0.080806,-0.024992}, {-0.799884,-0.669277}, {-0.620681,-0.397588}, {-0.352503,-0.044189}, {0.092370,0.364939}, {0.449970,1.026360}, {0.529612,0.063033}, {-1.083693,-0.194379}, {0.369823,-0.277191}, {-0.177423,-0.619947}, {0.562466,1.467675}, {-0.573227,0.920231}, {0.552988,-0.530708}, {0.844829,-1.136412}, {0.558908,0.169169}, {0.626978,-0.115006}, {0.351068,-0.464366}, {-0.762156,-0.066833}, {-0.117971,0.052717}, {-0.570717,0.761831}, {-0.514255,0.164156}, {0.013305,-0.055138}, {-0.245547,0.642430}, {0.216396,0.005143}, {-0.507045,-0.685026}, {1.118325,0.364330}, {-0.590687,-0.140389}, {0.013596,0.844098}, {-0.399225,0.716323}, {-0.417137,-0.565919}, {0.092852,0.416915}, {-0.943451,-0.152195}, {-1.020240,0.801126}, {-0.611728,0.436773}, {-0.019905,-1.332957}, {-0.690646,-0.464269}, {0.907830,-0.494683}, {-0.281882,-0.749796}, {-1.546127,-1.007659}, {0.830144,-0.015166}, {-0.390510,-1.043779}, {0.117684,-0.482510}, {0.924184,1.260658}, {-1.061867,1.221469}, {-0.815122,-0.023800}, {-0.103022,0.298058}, {-0.252904,0.230901}, {0.021567,-0.875517}, {0.248461,0.093681}, {0.264196,0.004397}, {-0.311626,-0.620671}, {0.280419,0.771652}, {-0.018466,0.219481}, {1.700853,-0.112003}, {-0.882344,0.018746}, {-0.006374,0.087725}, {-0.100868,0.209463}, {0.512129,0.523700}, {-0.317199,0.307879}, {0.294301,-0.330502}, {0.601020,-0.125700}, {-0.739890,-0.023356}, {-1.444838,0.568493}, {-0.134116,-0.671218}, {1.005881,0.367029}, {-0.738930,0.646782}, {-0.342683,-0.504731}, {0.716899,-0.539596}, {0.738524,0.070291}, {0.386202,0.440067}, {1.345032,0.180183}, {-0.018880,-0.031769}, {-0.378806,-0.171766}, {-0.286278,-0.617444}, {-0.080975,-0.526326}, {0.700062,-0.604598}, {-0.885363,0.470310}, {-1.156147,-0.054617}, {0.133744,-0.226376}, {-0.240292,-1.157249}, {0.063137,-0.793579}, {0.030749,-0.302199}, {0.090525,0.483558}, {0.073085,-0.481644}, {-0.223842,-2.140667}, {0.031752,0.005003}, {1.231275,-0.530212}, {1.038917,-0.422673}, {0.394114,0.524978}, {-1.097829,0.484170}, {0.431677,0.251181}, {1.225130,-0.837454}, {-0.186695,1.110229}, {0.338671,0.141820}, {-0.023210,1.021750}, {0.990528,-1.624820}, {0.011025,-0.247794}, {-0.339063,0.407060}, {0.384226,0.510580}, {-0.757315,-0.246458}, {-1.582920,0.107500}, {-1.012034,0.035645}, {1.968999,0.055935}, {-1.424400,-1.006629}, {-0.381551,-0.428135}, {0.437026,0.843355}, {0.179125,0.109344}, {-0.449217,1.913849}, {0.427694,-0.425086}, {-0.211741,-0.700567}, {-0.188227,-0.847564}, {-0.594710,1.483595}, {-0.072411,0.766453}, {1.150670,0.617209}, {-0.386818,-0.026636}, {-0.385528,-1.273407}, {-0.361319,0.734053}, {0.098469,-0.126693}, {-1.389158,1.163252}, {-0.460623,0.471711}, {0.338909,-0.460817}, {0.130190,0.607843}, {0.207546,0.467445}, {-0.587233,-0.598555}, {0.608060,0.186716}, {1.153664,0.245205}, {0.328400,0.759055}, {-0.694971,0.220107}, {-0.338761,-1.561954}, {-0.594066,-0.121286}, {-0.422942,-0.435408}, {-0.514954,-0.135974}, {-0.685185,0.540584}, {-0.824955,1.303292}, {0.226211,-0.342887}, {-0.598595,-1.523227}, {0.678569,0.475931}, {0.630242,0.483559}, {-0.620338,0.518139}, {0.919177,-0.181962}, {0.507928,-0.566914}, {-0.488096,0.812728}, {-0.364813,0.705453}, {-1.369744,0.240855}, {0.714938,-0.709527}, {0.582868,0.091790}, {-0.180208,0.726072}, {0.452558,0.415231}, {0.495553,-1.877462}, {0.582132,-0.333465}, {0.833380,-0.489799}, {0.267983,0.623820}, {-1.556596,0.244596}, {0.566314,0.288588}, {-0.067564,1.023165}, {0.505347,0.922345}, {-0.470138,-0.951912}, {0.660978,0.761539}, {0.621641,0.135908}, {1.400944,0.226884}, {0.652989,-0.565545}, {0.237052,-0.192473}, {0.953481,-0.437290}, {-0.532917,0.753979}, {-0.401020,0.182003}, {-0.774883,0.538031}, {-0.320697,-0.549711}, {1.663374,0.724379}, {0.588294,1.303208}, {1.044164,-0.361746}, {-0.145359,-1.690668}, {-0.825189,1.215719}, {-1.088180,-0.300943}, {-0.430774,0.622501}, {0.316668,0.544425}, {0.504829,-0.457687}, {-0.834387,-0.240484}, {-0.306896,0.687505}, {0.268810,1.644408}, {-0.780049,1.087894}, {-1.538673,-0.201769}, {0.535403,0.605154}, {0.019388,-0.435640}, {-0.440314,-0.055865}, {1.298971,1.128651}, {0.177042,1.260625}, {-0.854552,0.621748}, {-0.677730,0.607538}, {0.203182,0.219196}, {1.347539,0.528045}, {-1.261542,0.367327}, {-0.137496,0.330269}, {0.960711,1.133014}, {0.687000,0.111912}, {-0.181358,1.091956}, {0.223343,-0.483492}, {-0.273860,0.362866}, {-0.011742,-0.136568}, {0.275521,-1.429957}, {-0.273297,-0.074082}, {0.290409,-0.066311}, {-0.228273,-0.362296}, {-1.378862,-0.444713}, {0.241775,0.546076}, {0.039962,-0.186289}, {-0.036983,-0.286490}, {0.091318,-1.140707}, {0.511967,-0.298166}, {-0.103362,0.567148}, {-1.507135,-0.446682}, {-0.002256,-0.382378}, {0.793055,0.713325}, {0.519248,-0.273429}, {0.373212,1.206027}, {-0.186569,0.345384}, {-1.037811,0.160379}, {0.100911,0.728662}, {0.348187,1.397238}, {1.053003,0.787660}, {0.851118,-0.072377}, {0.885419,-2.014642}, {0.224168,-0.873868}, {0.866546,-1.231568}, {-0.196727,0.530071}, {-0.510674,-0.434893}, {0.256375,-0.296321}, {1.333570,1.516369}, {0.216969,1.545445}, {0.164709,0.254986}, {0.100115,-0.605479}, {0.086380,0.234960}, {0.907601,-0.649032}, {-1.199984,0.075438}, {1.186217,-0.332770}, {-0.270511,-1.202410}, {0.826974,0.035252}, {0.331603,-0.037377}, {0.476641,0.109902}, {-0.174187,-0.546405}, {0.159829,-0.563128}, {-0.251076,-0.337193}, {0.587231,0.086443}, {-0.004139,-0.062337}, {0.847037,-1.213560}, {0.720797,-0.302577}, {-0.313615,1.223469}, {-0.385838,0.548932}, {-0.681006,0.375296}, {-0.002250,-0.626297}, {0.044566,-0.714328}, {-0.785516,0.625881}, {1.008274,-0.326630}, {-0.475841,0.809907}, {-0.189279,-0.144121}, {-0.147481,-0.167430}, {0.297717,-0.662249}, {0.903221,-0.828173}, {-0.076715,-0.103500}, {-0.220609,0.037787}, {0.500891,0.420473}, {0.273765,-1.134860}, {0.469416,-0.299483}, {0.490976,0.584688}, {0.840863,0.462752}, {-0.374205,-0.498565}, {0.970595,1.606044}, {0.351297,0.387913}, {-1.301970,1.173260}, {0.132588,1.491314}, {-1.181621,-0.261585}, {-1.361050,0.972321}, {-0.153063,-1.707550}, {0.758497,0.123412}, {0.238820,0.155025}, {-0.254726,0.301346}, {-1.010450,1.160231}, {-1.240972,0.287896}, {0.784458,-0.105589}, {-0.536336,-0.405889}, {-0.146211,0.253732}, {-0.878979,0.549278}, {0.065870,-0.198147}, {-0.954775,1.043484}, {0.557617,1.047797}, {0.493106,-0.919198}, {-0.170124,0.314583}, {0.688442,0.122648}, {-1.023681,-0.111431}, {0.801745,-1.821817}, {-0.723679,0.440206}, {-0.453669,-0.190110}, {-0.581141,0.078254}, {-0.941791,-0.060551}, {0.890659,0.122601}, {0.963847,0.066347}, {0.759853,-0.199802}, {-0.106224,0.458618}, {1.065279,0.399051}, {-0.321525,0.808861}, {-1.208707,0.585097}, {0.866323,-0.559539}, {0.474646,0.039294}, {1.902251,0.915424}, {-0.455613,-0.414985}, {-0.246282,-0.640345}, {-0.333131,0.196717}, {-0.493399,-0.772411}, {0.204786,-0.870497}, {0.309500,-0.533279}, {0.910107,0.510703}, {-0.056168,-0.123584}, {-0.491468,-0.572133}, {0.375774,1.162053}, {0.063430,1.272410}, {-1.406177,-0.010975}, {-0.087637,-0.226010}, {-0.563296,0.452261}, {-0.449694,-0.554259}, {0.707040,0.188047}, {1.601323,-0.206911}, {-0.923501,0.574700}, {-0.966020,0.679890}, {0.268570,0.368709}, {0.212696,-0.904453}, {0.194974,0.488184}, {0.470565,0.918929}, {-0.684581,-0.142648}, {-0.844954,-0.189146}, {-0.542152,-0.747252}, {0.495473,0.403557}, {-0.688008,-0.913830}, {-0.059830,0.517971}, {-2.171862,1.024477}, {-1.249624,-0.015772}, {0.015926,0.734811}, {0.457707,-0.081584}, {-0.009916,-0.098752}, {0.810571,-0.772556}, {1.274648,0.151342}, {1.083434,-0.643550}, {1.044509,0.338194}, {-0.378948,0.039118}, {-0.075820,-1.730294}, {0.774083,0.620047}, {-0.066915,-1.689347}, {0.731451,-0.094387}, {0.259309,-0.417934}, {-0.498563,0.708930}, {0.774393,1.168883}, {-0.172278,-0.053409}, {-0.293542,-0.414288}, {1.373904,0.468393}, {-0.086211,0.448331}, {0.141485,-0.030337}, {-0.107671,0.406149}, {0.098529,0.748433}, {-0.267386,-0.031872}, {-0.748722,-0.653857}, {0.004819,0.286587}, {0.320934,0.502389}, {0.434680,0.257350}, {0.042256,-0.018636}, {-0.305369,0.076753}, {-0.205572,-0.818070}, {0.936762,0.858510}, {-0.423207,0.799304}, {0.072296,0.374763}, {-0.156480,-0.604657}, {-0.968287,0.266390}, {1.115752,-0.133177}, {0.666615,-0.815890}, {0.472277,0.132071}, {-0.193603,0.875236}, {0.318294,-0.031684}, {1.004666,-0.833170}, {0.262337,-0.253264}, {0.691983,2.042454}, {0.209886,-0.290278}, {0.278291,1.124044}, {-0.207172,1.567355}, {0.238977,-0.323462}, {-0.223252,-0.119456}, {0.303814,1.004795}, {1.200940,0.213197}, {-0.687440,-1.084798}, {-0.198295,0.195513}, {0.046763,0.521581}, {-0.510831,-0.423679}, {0.244499,-0.628926}, {0.698044,-0.623503}, {0.416896,-0.041211}, {-0.350345,-0.226075}, {0.695417,0.604628}, {-0.383804,0.383435}, {0.086188,-0.192144}, {0.781463,-1.146905}, {0.098847,-0.660911}, {-0.335006,0.419788}, {1.122026,-0.064158}, {0.384520,-0.618539}, {0.479143,-1.027819}, {1.107169,-0.524087}, {0.383901,-0.402677}, {0.194053,0.255903}, {0.477393,0.074827}, {-0.410776,-0.444651}, {-1.991022,-0.394045}, {0.216143,-0.334173}, {-0.563452,0.819894}, {-0.311190,0.640443}, {-0.243058,0.560057}, {-0.546188,-0.070783}, {-0.615962,0.363862}, {0.240774,0.912485}, {0.219238,-0.849157}, {-0.885919,-1.007370}, {0.190039,0.543608}, {1.070954,0.179088}, {0.554915,-0.018668}, {1.371742,-0.335006}, {-0.645975,0.229713}, {-0.736469,0.669922}, {0.001929,-0.033222}, {0.701460,-0.205447}, {0.486977,0.824796}, {1.258540,-0.391141}, {-0.036946,0.293066}, {0.670274,-0.247172}, {-1.768643,0.859413}, {0.290706,-0.231858}, {-0.102970,-0.041794}, {-0.418989,-0.849960}, {0.098567,0.921322}, {-0.459667,-0.893404}, {-0.804486,1.022065}, {-0.978005,-1.097316}, {0.774600,-0.328074}, {-0.242046,0.003126}, {-0.056869,-0.164227}, {-0.521315,0.145929}, {0.311763,-0.783776}, {0.116789,0.376795}, {0.518519,-0.236313}, {0.134501,-1.013336}, {-1.199793,-0.823016}, {0.122597,0.539057}, {0.664613,0.256397}, {-0.316770,0.490154}, {-1.263702,-0.252355}, {0.550430,0.282031}, {1.070783,-0.094371}, {0.587430,-0.613368}, {0.684523,0.740690}, {-1.023715,0.345296}, {0.107663,0.265091}, {0.215299,-0.153788}, {-0.342020,-1.389234}, {1.512062,0.110530}, {-0.255843,-0.304788}, {0.344653,0.472651}, {1.604399,0.282072}, {-0.123394,-1.073324}, {0.823059,0.235494}, {1.005127,-0.422945}, {1.087857,0.942103}, {0.388606,0.630055}, {-0.489398,0.271613}, {0.662806,-0.072930}, {-0.505174,-0.083009}, {-1.099044,-0.087619}, {1.682942,0.105597}, {-0.963602,-1.159610}, {1.770411,-0.665544}, {0.274943,-0.029549}, {-0.368023,0.498046}, {0.382125,0.110398}, {0.143411,-0.471052}, {-0.962301,-0.125190}, {-0.382881,-0.300460}, {-0.702084,-1.028932}, {0.609839,-0.269770}, {-0.322227,-0.046758}, {0.196679,-0.841992}, {0.389128,0.554504}, {-0.138058,-0.153224}, {0.225274,0.357098}, {-0.326247,-0.149102}, {0.189830,2.038718}, {0.622165,-0.578665}, {-0.555788,-1.517656}, {0.223546,-0.956908}, {0.036102,-0.216316}, {-0.527827,-0.790654}, {-0.703457,1.216742}, {1.896473,0.420610}, {-0.919048,-1.717801}, {-0.564716,-0.463391}, {0.072924,0.515583}, {1.213858,1.273362}, {-0.585628,-1.777402}, {0.315143,0.314280}, {1.599076,0.263103}, {0.551870,-0.508782}, {0.198278,-0.171192}, {0.370793,0.390001}, {0.186273,-0.685544}, {-1.334139,-0.047514}, {0.859364,1.107470}, {1.108595,-0.249803}, {-0.767836,0.024632}, {-0.755180,0.202525}, {0.558701,-0.646325}, {-0.864527,-0.056300}, {-0.568031,0.020910}, {-0.192644,-0.239731}, {0.335820,0.941753}, {-0.905318,0.078626}, {1.348554,-0.274217}, {0.718711,0.937416}, {0.701784,1.186619}, {0.783715,0.942788}, {0.511822,-0.269353}, {0.262749,0.224861}, {-0.369690,0.087992}, {0.119908,0.245625}, {-0.755046,-0.352329}, {1.050758,-1.220104}, {1.112945,-0.869696}, {0.154116,-0.398725}, {-0.682546,-0.178220}, {0.000616,-1.176764}, {0.582237,-0.360093}, {-0.048804,-0.182963}, {0.343632,-1.302243}, {-0.059123,1.169904}, {-0.849233,0.417740}, {0.802972,0.824939}, {-0.259347,1.401916}, {0.262680,1.027712}, {0.119396,0.842189}, {0.789537,0.288341}, {0.873023,-0.678867}, {-0.282999,-0.803959}, {0.032434,-0.332495}, {0.362466,-0.869451}, {1.303907,-0.351392}, {-0.261026,-0.184508}, {0.069724,0.222538}, {-1.692123,-0.176506}, {0.182023,-0.297168}, {1.166731,0.974402}, {0.182690,0.901593}, {-2.707181,0.294289}, {-0.422655,0.616411}, {0.818191,-0.536655}, {0.200265,-0.152867}, {-0.571663,-0.576991}, {-1.149922,0.237294}, {0.683474,0.514764}, {-0.327411,-0.298380}, {0.543399,1.134105}, {0.221413,-0.885642}, {1.120697,-0.024074}, {-0.727365,0.561341}, {-0.060173,-0.140444}, {0.010505,-0.532622}, {0.085622,0.854726}, {0.776915,0.627544}, {-0.480372,1.612013}, {0.035874,0.948871}, {-0.202889,0.071192}, {1.071655,0.563884}, {-0.856493,0.157759}, {1.465912,0.740984}, {-0.975957,0.149083}, {0.017006,0.661242}, {0.677641,0.736448}, {-0.055937,1.619199}, {0.017620,0.501037}, {-0.329608,-0.642669}, {0.460941,-0.086157}, {-0.677150,-0.999700}, {1.085090,0.487071}, {0.766686,0.736476}, {0.245465,-0.602065}, {0.259054,-0.926270}, {0.241794,0.493962}, {0.213145,-0.717582}, {-0.164479,1.252053}, {1.520899,0.765972}, {-0.262001,-0.514990}, {0.394009,0.530819}, {-0.398782,0.610431}, {0.061806,-0.058270}, {0.630771,1.025669}, {-0.235617,0.164118}, {-0.497122,0.651216}, {0.906863,0.812694}, {0.942602,0.037286}, {0.353956,-0.268639}, {0.721879,-1.407883}, {0.336154,-1.490511}, {0.463325,-0.409685}, {-0.654404,0.164448}, {1.353668,-1.381831}, {0.902985,1.291975}, {-0.673638,1.082945}, {0.096381,0.069481}, {0.268580,-0.006480}, {0.351301,0.210100}, {-0.111290,0.763114}, {0.482922,0.206619}, {0.265563,0.454462}, {-1.242255,-1.027363}, {-1.082879,0.470826}, {0.192528,-1.507715}, {-1.393900,0.462004}, {-0.328719,0.813496}, {0.736296,0.834899}, {0.401170,-0.096215}, {0.570525,-0.070442}, {-0.633878,-0.590925}, {0.147991,0.069756}, {0.368475,0.553471}, {-0.936644,-0.634945}, {-0.209835,0.061014}, {0.376984,0.415601}, {-0.053992,0.927934}, {-0.664815,-0.230709}, {-0.368558,-0.869841}, {0.869019,0.207397}, {-0.077032,0.015291}, {-1.041657,-1.084937}, {-0.040849,-1.191117}, {-0.040502,-0.637029}, {-0.113547,-0.036059}, {-0.376653,0.011245}, {-0.611166,-0.722246}, {-0.252785,0.199909}, {-0.554396,-0.777145}, {1.508706,1.960357}, {0.802878,-1.058245}, {-0.668372,-0.380450}, {0.934698,0.328675}, {-0.484190,-0.777490}, {-1.096700,-0.599480}, {0.133311,-0.708274}, {-0.037022,-0.697705}, {-0.094335,-0.104415}, {0.578229,-0.473142}, {0.521239,0.402009}, {-0.601727,-0.589783}, {1.068671,-0.802095}, {-0.179212,0.761986}, {-0.098283,-0.660154}, {-1.325546,0.733457}, {1.204701,0.635880}, {0.071453,0.547081}, {0.116252,0.809687}, {-0.289209,-0.786678}, {0.060218,-0.093927}, {1.040621,0.201639}, {0.663944,-1.404113}, {0.323341,0.022382}, {-1.173198,1.186145}, {0.631958,0.811309}, {0.140914,-0.812980}, {0.918574,-0.388552}, {0.137629,0.245151}, {0.286895,-1.006635}, {-0.883709,0.464159}, {1.149660,0.500635}, {0.869576,-0.471720}, {0.820353,0.381747}, {-0.764649,-0.632796}, {-1.436934,-0.113737}, {-2.086755,0.084057}, {1.010455,-0.246709}, {-0.149211,-1.532015}, {0.496285,0.442942}, {0.101726,-0.696911}, {0.536346,-0.055237}, {-1.001254,-0.165978}, {0.527046,1.269435}, {0.251018,-0.408625}, {-0.398318,1.683260}, {-0.838820,-0.091386}, {1.301904,1.505187}, {0.156433,-0.483412}, {-0.888996,-0.920372}, {1.318649,0.539760}, {0.608943,1.036337}, {-0.290264,-1.659074}, {-0.100778,0.034840}, {-0.597380,-0.927067}, {2.662626,-0.397478}, {1.115005,-0.106991}, {0.838668,-0.032934}, {-0.046413,0.184593}, {0.262956,-0.070027}, {0.126185,1.919012}, {-0.267772,-0.664473}, {0.614649,0.179683}, {-0.527418,0.106321}, {-0.240424,1.418708}, {-0.112591,-0.348458}, {1.337480,-0.026564}, {-0.112471,0.124444}, {-0.491147,0.252096}, {-0.291925,-0.069114}, {0.572380,0.425877}, {0.216700,0.480072}, {0.002923,-0.590032}, {-0.221473,0.797032}, {-0.450239,-0.109167}, {-0.138495,0.363282}, {0.536702,0.942890}, {-0.385188,-0.255577}, {-0.195874,-0.396227}, {-0.149959,-0.045442}, {0.175505,0.639732}, {-0.871016,0.558898}, {-0.166986,0.487026}, {0.015097,0.188443}, {1.593731,-0.064295}, {-1.302004,1.334270}, {0.647612,0.649894}, {-0.466297,-1.438770}, {-0.082164,-0.271981}, {-0.369005,0.109265}, {0.012960,1.067369}, {0.008171,-0.522336}, {1.072758,0.533772}, {0.010905,-0.615835}, {-0.267041,0.338341}, {-0.163231,-0.172623}, {-0.298143,-0.844671}, {-0.996324,0.395993}, {0.351228,0.210237}, {-0.408737,1.852449}, {1.371179,-0.270106}, {0.698624,-0.186227}, {0.764440,-1.018351}, {-0.417185,-0.489324}, {-0.254638,-0.780647}, {-0.589837,-1.171805}, {1.132576,-0.812185}, {0.071797,0.075910}, {-0.142160,-0.205967}, {-0.131813,-1.570445}, {-0.646197,-0.501273}, {-0.343572,-0.550584}, {-0.384814,0.182407}, {1.396442,-0.058372}, {1.089823,0.806014}, {0.613392,0.111495}, {-0.619374,-0.997811}, {0.937457,0.236635}, {-1.783063,-0.017353}, {0.639293,1.721414}, {-0.973684,-0.595704}, {0.588127,2.077128}, {-0.508637,0.421534}, {-0.204767,-0.116534}, {-0.925742,-0.808087}, {-0.247853,0.383247}, {0.122339,-0.377588}, {-0.245016,1.239323}, {-1.251013,1.414176}, {-0.595604,0.183438}, {0.165761,0.973419}, {-0.360977,0.533837}, {-0.156010,1.266329}, {-0.361477,-0.706989}, {-1.278243,-0.570395}, {0.188787,-0.241089}, {0.695269,-0.016308}, {0.336792,1.128790}, {-0.195083,-0.486791}, {0.435703,-1.218875}, {-0.892865,0.992856}, {-0.503019,-0.799460}, {0.305161,-0.872681}, {0.824504,0.670722}, {-0.057163,-0.737607}, {-0.459377,-0.426213}, {0.661363,-0.123470}, {0.291500,-0.574575}, {0.736858,-0.048679}, {-1.798391,-0.674830}, {-1.124265,-0.210419}, {0.305464,0.240427}, {0.660762,0.390722}, {-2.191616,-0.299109}, {0.764942,-0.333123}, {-0.766828,-0.575533}, {0.609647,-0.179405}, {0.010595,-0.673221}, {0.496617,0.041268}, {0.961196,-0.055449}, {-0.225309,0.834606}, {1.114384,-0.055796}, {-0.222813,-0.099848}, {-0.120519,0.033593}, {1.015066,-0.116109}, {-0.906373,0.667821}, {-1.147539,-1.158675}, {-0.339648,-0.873359}, {-0.489429,-0.652974}, {-0.607693,0.915098}, {-0.739589,-0.880921}, {-0.519588,0.827766}, {0.166684,-0.028429}, {-0.621222,-0.143460}, {0.186200,-0.213188}, {-0.815053,-0.375461}, {0.459186,0.134372}, {0.218895,0.177810}, {0.028394,-0.083888}, {-0.673259,-0.245137}, {1.213576,-0.494994}, {-0.504661,1.291076}, {0.485929,0.212768}, {-0.050601,1.330620}, {-0.127089,1.121260}, {-0.062864,1.184358}, {0.388036,0.065984}, {0.639649,0.940623}, {0.345500,-0.926372}, {0.294821,0.080969}, {-0.675096,0.401880}, {-0.457889,-1.034898}, {0.546379,-0.123306}, {1.925229,0.617684}, {0.036275,0.153092}, {0.438382,-0.367055}, {-1.510804,-0.350652}, {0.511549,0.357008}, {0.058650,-0.056035}, {0.426843,0.291233}, {0.647381,1.340631}, {-0.459728,0.946206}, {-0.626630,0.024277}, {-0.023095,-0.808970}, {0.409768,-1.094577}, {-0.364498,0.100205}, {0.584196,-0.029047}, {-1.299973,-1.205881}, {-1.467178,1.165527}, {0.651701,-0.056131}, {0.591321,0.585146}, {1.050908,-0.864838}, {-1.010467,0.869663}, {0.286195,0.382027}, {-0.407370,0.606735}, {0.731817,-0.248191}, {0.594029,0.949877}, {1.107643,0.816630}, {0.112756,-0.800629}, {-0.936598,-0.635692}, {0.320902,-1.154471}, {0.362662,0.687527}, {-0.772593,-0.345974}, {-0.301668,-0.298240}, {-0.317592,1.336231}, {-0.396778,-0.334856}, {-0.506675,-0.312185}, {-1.281432,0.149600}, {0.401639,-0.418585}, {0.782846,0.722927}, {0.344150,0.854286}, {-0.014517,0.567740}, {0.108356,0.024531}, {0.902085,-0.055156}, {0.826237,-0.713395}, {0.244866,0.044681}, {-0.176188,0.891915}, {-0.420097,-0.253119}, {0.417268,0.290663}, {0.163310,-0.245311}, {-0.182683,-0.297175}, {0.631826,-0.030011}, {-0.109512,-0.088560}, {1.429108,0.225297}, {0.155576,0.083817}, {1.613520,0.239461}, {0.127288,-0.420358}, {0.477950,0.504352}, {1.328754,-0.163013}, {-0.568880,-0.751232}, {-0.482506,-1.538834}, {-0.059557,0.412963}, {0.350223,-0.360451}, {0.833328,1.009992}, {-0.066145,-0.506290}, {-1.529181,0.414709}, {1.240990,0.206763}, {-1.129462,0.769895}, {-0.481806,0.484887}, {0.595993,0.725062}, {-0.285575,1.347548}, {2.330541,-0.013789}, {-1.797866,0.257308}, {0.905498,0.146234}, {-0.319323,-1.413330}, {-0.175398,-1.142782}, {-0.862556,0.482210}, {0.223448,0.729414}, {0.578396,-0.016839}, {-0.318659,-0.617867}, {0.157744,0.530414}, {0.123166,-0.362401}, {1.806366,0.187194}, {0.141849,0.128567}, {0.233317,0.139137}, {-0.195036,-0.613837}, {1.714962,1.593262}, {-0.732866,-0.038927}, {0.307565,-0.920340}, {0.373395,-0.516143}, {0.826920,-0.612844}, {-0.388779,-0.390229}, {-0.862877,0.788258}, {0.495550,0.670739}, {-0.545650,0.635220}, {-0.230298,0.414062}, {-0.719266,-0.811359}, {-0.999942,1.684412}, {0.527479,0.543823}, {-0.743616,0.101886}, {-0.199070,0.115074}, {-0.870949,0.256787}, {0.142208,0.122864}, {1.178514,-0.092691}, {0.516611,0.664212}, {-0.414682,1.125980}, {0.378510,-0.100979}, {0.283304,-0.277420}, {-0.208157,-0.202171}, {-0.440988,-0.820237}, {1.298009,-0.850293}, {0.779159,-0.461672}, {0.149934,1.508017}, {0.095404,-0.092000}, {-0.337095,-0.317412}, {-0.629736,-0.111690}, {-0.399381,0.078341}, {-0.479442,-0.187099}, {-0.760090,0.125670}, {-0.610029,-0.278563}, {0.649156,0.494456}, {-0.672965,0.631743}, {-0.016562,0.306273}, {-0.609100,0.137436}, {0.652638,1.047158}, {0.026014,-0.348532}, {0.423324,-0.479491}, {-0.383879,0.485369}, {-0.598911,-0.835369}, {0.115294,-0.571799}, {-0.125615,0.202125}, {-0.909276,-0.587717}, {-0.727220,0.093925}, {-0.134042,-0.601821}, {-0.187468,-0.669988}, {0.370470,0.393121}, {-0.691281,0.520446}, {-0.548105,-0.687475}, {1.223865,0.276014}, {-0.770862,-0.529642}, {-0.147001,-0.466523}, {-0.573650,0.453058}, {-0.592723,0.439779}, {-0.455307,-0.206169}, {1.320446,0.684046}, {-0.935463,-0.447754}, {0.703593,-1.016309}, {-0.891936,-0.175935}, {0.328758,-0.396236}, {0.094338,0.221705}, {-1.404257,-0.190658}, {-0.100089,1.039360}, {-0.966548,0.827384}, {-1.253737,-1.014768}, {-0.346418,-1.267854}, {-0.158700,1.164901}, {-0.034736,0.009220}, {0.545952,-0.246464}, {0.717271,-0.093260}, {0.676085,-0.863656}, {0.493132,-0.105922}, {-0.533072,0.636553}, {-0.216843,0.884234}, {0.111424,0.082110}, {1.028141,0.146957}, {-0.446215,0.136231}, {0.730978,-0.275731}, {0.042365,0.048442}, {-0.370711,-0.543378}, {0.106057,1.265886}, {0.379243,-0.330497}, {1.108852,-0.723866}, {-0.110398,0.511860}, {-0.106902,0.174878}, {1.148426,-0.603670}, {-0.128195,0.280598}, {0.764800,-0.358176}, {-0.266245,0.816531}, {0.114914,-0.539096}, {0.114034,-0.367231}, {2.141155,-1.484656}, {-0.724135,-0.856970}, {0.266306,-0.874060}, {0.846456,0.435570}, {0.066472,0.252900}, {-1.088643,-1.133248}, {-0.566947,0.767431}, {0.619468,-0.550164}, {0.029218,1.459059}, {1.301080,0.095710}, {1.753613,-0.553147}, {1.516418,-0.318869}, {0.861448,-0.472804}, {-1.047020,-0.037668}, {-0.123383,0.272455}, {-0.124143,1.500702}, {0.378722,0.458093}, {-1.369372,-0.010599}, {-1.027065,0.948843}, {0.152530,-0.545888}, {-0.239192,0.716174}, {0.874709,-1.022073}, {-0.259942,-0.432089}, {0.315777,-0.677813}, {-0.187516,0.604001}, {-0.350366,-0.868253}, {0.358178,0.239084}, {-0.355413,0.043801}, {-0.114867,0.567550}, {0.031781,0.301042}, {-0.447827,-0.086481}, {0.347362,-0.347636}, {1.466736,-1.298975}, {1.198740,-0.131404}, {1.300932,0.897703}, {0.490673,-0.229079}, {-0.330844,-0.232505}, {0.025943,0.810266}, {-0.261850,-0.280763}, {-0.607853,1.415846}, {0.498158,-1.107135}, {0.674920,-1.200670}, {-0.527907,0.318037}, {-0.097676,0.532536}, {-0.475594,0.848160}, {1.642276,-0.891873}, {-0.019197,-0.109536}, {0.784795,0.260554}, {-0.431823,-0.907632}, {-0.763132,-0.342258}, {0.570806,-0.517628}, {-0.522336,0.403684}, {0.307563,-1.143478}, {0.825753,0.031997}, {0.368023,-0.139664}, {2.021968,-0.943570}, {0.245160,-0.269865}, {1.303964,0.871270}, {-0.453218,0.819811}, {0.594784,0.655540}, {-0.891577,-0.373922}, {0.538908,-0.710190}, {0.930254,0.481708}, {0.307017,-0.652410}, {-0.201791,-0.804746}, {-0.740248,-0.045989}, {0.865316,0.507359}, {0.112008,0.675150}, {0.390570,-0.737997}, {0.588187,-0.739911}, {-0.557253,0.208247}, {-1.425644,-0.743117}, {0.400609,-1.036328}, {0.703460,0.720835}, {-1.235671,0.360834}, {0.977538,0.800469}, {-0.215826,-0.917093}, {0.464002,-0.108658}, {-0.170525,1.430161}, {0.249880,0.881905}, {0.039538,0.515360}, {0.589463,1.687736}, {-0.918504,0.398258}, {0.885603,-0.419459}, {-0.103454,0.517781}, {-1.403384,0.991157}, {-1.129402,-0.084304}, {0.631421,-0.053522}, {1.013885,-0.201949}, {0.677556,0.891074}, {0.761542,-0.055830}, {1.043183,0.841930}, {0.116780,0.047638}, {-0.379538,0.850317}, {0.899566,-1.508949}, {-0.360145,-0.726620}, {-0.394237,0.504382}, {1.299661,-0.904075}, {0.037135,-1.543567}, {0.025721,-1.294574}, {-0.201345,-0.573420}, {-0.805476,1.100473}, {-0.222557,0.815637}, {0.745171,-0.443108}, {-0.051322,0.385340}, {0.415288,0.967950}, {0.567228,0.929748}, {-0.981482,0.368396}, {-0.322623,0.925524}, {0.036004,-1.359715}, {-1.239654,0.547052}, {0.569381,0.209552}, {0.999405,0.435894}, {0.209398,-0.035708}, {-0.616545,-1.367319}, {-0.032505,0.893263}, {-0.753972,-0.284855}, {-1.122253,0.694921}, {0.062416,0.560687}, {-0.867416,0.682553}, {-0.093222,0.154366}, {-0.881648,0.429238}, {-0.190308,-2.089628}, {0.066021,0.756615}, {0.514725,-0.798372}, {0.053171,-1.408616}, {0.209844,0.661365}, {-0.353419,0.830578}, {0.283011,-0.510899}, {1.844187,0.067852}, {0.452893,0.042450}, {1.522679,0.732928}, {0.455406,-0.622942}, {0.434744,-0.877805}, {0.156233,0.549888}, {-0.488361,0.683512}, {-0.709181,-0.074767}, {1.094457,-1.430172}, {-1.090533,-1.200256}, {0.467875,-1.396375}, {-0.216862,0.998395}, {0.845417,0.461581}, {-0.243621,-1.037224}, {1.009367,-0.804843}, {-0.733158,-0.634989}, {-0.317695,0.187141}, {1.042970,-0.479150}, {0.574917,-0.396721}, {-0.753535,0.501924}, {0.176516,0.011773}, {-0.252053,-0.567245}, {0.523082,0.913279}, {-1.555099,0.401929}, {-0.437464,0.181542}, {-0.873226,0.044419}, {0.219685,1.157821}, {-0.254417,-1.517094}, {0.091563,-0.354438}, {-0.528333,-0.170731}, {0.995211,0.678314}, {-0.898812,-0.064997}, {-0.013840,0.293050}, {-0.839259,-0.587023}, {-0.945978,-0.617619}, {-0.895625,0.302625}, {1.051869,0.573372}, {-0.825980,-0.122912}, {0.163980,1.256745}, {0.706734,0.124522}, {-0.361175,0.101887}, {1.057818,-0.426948}, {-0.675053,1.031729}, {0.206726,0.279056}, {0.389211,-0.301896}, {1.063765,0.619761}, {0.352544,0.613860}, {0.128183,-0.129278}, {-0.839177,0.102129}, {-1.009067,0.298734}, {0.002993,-0.360330}, {1.224970,-0.160513}, {1.106708,-0.229533}, {-1.032136,-0.377685}, {-0.236230,0.001354}, {0.410400,0.222334}, {0.392320,1.483927}, {0.665122,0.691449}, {-0.455393,-0.602445}, {-1.351692,0.738197}, {-0.766579,0.268302}, {1.589365,0.864385}, {0.070446,0.850433}, {-0.308235,-0.135000}, {-0.292362,-1.347597}, {1.555687,-0.715862}, {-0.014022,-0.045398}, {-0.446291,1.226295}, {-1.032951,-0.093507}, {-0.899258,1.039720}, {-1.078121,-0.867005}, {0.520897,0.494706}, {-0.211998,-0.448273}, {0.580937,-0.430233}, {0.179600,0.873513}, {0.808713,-1.022514}, {0.555485,0.127189}, {0.880953,-0.143050}, {1.149157,0.917433}, {-0.893810,0.428443}, {-1.266854,-0.409126}, {-0.626689,0.378355}, {-0.164413,-0.184089}, {-0.898300,0.593376}, {-0.547055,0.834128}, {-1.142588,-0.422562}, {-0.284378,-0.254682}, {0.791523,-0.756468}, {0.485108,-0.001937}, {-1.059758,-0.298921}, {0.575755,0.321922}, {0.126469,0.056855}, {0.481604,-0.118000}, {-0.161121,-0.348846}, {-0.018420,0.600699}, {1.149129,-0.048108}, {-0.542935,-1.132408}, {0.615102,0.119735}, {-0.401196,-0.056096}, {0.240128,-0.191069}, {-0.230665,0.650328}, {-1.043812,0.267771}, {-0.337422,-1.346232}, {-1.272762,0.339037}, {-0.577232,0.042670}, {-0.024654,1.721493}, {-0.290755,-0.294420}, {0.050099,-0.241641}, {0.523826,-0.443739}, {1.259578,0.041380}, {1.203733,-0.585998}, {0.759313,-0.279728}, {-0.270898,0.554221}, {0.319001,0.630204}, {-1.012906,-1.065616}, {-0.064960,-0.895967}, {-0.439101,-0.524601}, {0.648934,-0.701096}, {0.990764,-1.487838}, {0.266843,0.072485}, {-1.337164,-0.177902}, {0.882257,-0.971672}, {0.443937,1.419520}, {0.489435,0.600496}, {-1.048080,0.668837}, {0.080006,-0.024016}, {0.393861,-0.144830}, {0.029134,-0.594013}, {0.020636,0.866641}, {-0.695757,-0.655914}, {-0.145142,-0.618203}, {-0.302988,-0.495213}, {-0.462676,1.085804}, {0.153729,-0.610300}, {-0.098602,1.025134}, {-0.571255,-1.464634}, {-0.761817,0.959088}, {-0.975994,-0.370398}, {-0.313675,0.590253}, {0.297074,0.390224}, {-0.582347,-0.270186}, {-0.652665,-1.353611}, {-0.019627,0.000436}, {0.117063,0.851400}, {-0.123453,-0.339978}, {-0.071860,-0.712601}, {-0.150279,0.705257}, {0.346280,-0.008366}, {-0.959111,0.297700}, {0.620350,-0.430125}, {-0.047112,0.050720}, {1.805691,-0.047197}, {1.715418,-0.183448}, {-1.158967,2.090597}, {0.743999,-1.778906}, {0.025331,-0.388354}, {0.518336,-0.327919}, {1.166154,-0.289812}, {0.029288,1.018113}, {0.007631,-0.292880}, {-1.468947,0.677554}, {0.948800,-0.363516}, {0.363116,-1.186390}, {0.033570,-0.368930}, {-1.920066,-0.183494}, {1.245028,1.360201}, {0.157701,0.511411}, {-0.725534,0.913929}, {-0.642394,0.108628}, {1.433083,0.355667}, {-0.351948,0.578183}, {0.229656,-1.065693}, {-0.231833,0.177390}, {1.099345,-0.553877}, {-1.922732,0.038200}, {-0.200014,1.349928}, {0.725471,-1.057210}, {0.242414,0.445252}, {-0.886991,-0.408397}, {0.510536,0.822131}, {-0.260030,0.343419}, {-0.214564,-1.138471}, {-0.008637,-0.579129}, {-0.761397,-0.872982}, {0.350951,0.624380}, {0.900611,0.816234}, {-0.522778,0.207549}, {-0.760791,0.034648}, {0.375186,0.362076}, {0.112175,0.831388}, {-1.242682,-0.022903}, {0.331423,0.701496}, {0.253687,-0.488079}, {-0.873518,0.279186}, {0.231592,-0.385780}, {-0.701089,-0.501785}, {-0.241921,-1.391418}, {0.019241,0.106733}, {0.591344,-1.051357}, {0.745421,-0.610140}, {-0.606596,0.169312}, {-0.372797,-0.501536}, {-0.768757,0.841569}, {-0.348190,0.051062}, {0.063387,0.584047}, {0.329073,-0.791211}, {0.514938,0.740972}, {0.273985,-0.582246}, {-0.967329,0.578559}, {0.415417,0.124701}, {-0.098539,0.385786}, {-0.004510,-0.248503}, {0.555897,0.242153}, {1.579329,0.015322}, {0.230998,1.990804}, {0.363098,0.553719}, {1.562863,0.478130}, {0.026208,0.305355}, {1.116516,0.360515}, {-0.982566,-0.465728}, {-0.508676,-0.878270}, {-0.144291,0.415225}, {-1.350074,-0.098142}, {1.616341,-1.518052}, {0.104774,0.015461}, {0.374867,-1.531420}, {-0.416475,-0.114543}, {-0.739622,-1.138037}, {-0.923005,1.062459}, {-0.664320,-0.280073}, {-1.156293,-0.337499}, {-0.689945,0.344369}, {1.058939,0.443670}, {-1.285207,0.147568}, {0.475596,0.835141}, {-0.239945,1.476067}, {0.025039,0.541449}, {-0.101321,-0.682732}, {-0.546186,-0.130474}, {-0.433541,0.503623}, {0.464975,1.359146}, {-0.567927,0.964406}, {-1.219789,-1.539823}, {-0.016740,0.669833}, {0.182447,-0.271553}, {-1.320623,1.306323}, {-0.000075,-0.219999}, {-1.536075,0.914474}, {-1.404556,-1.020084}, {-0.150083,0.236011}, {0.516978,0.585327}, {0.241503,0.030283}, {-0.329743,0.849644}, {-0.537257,1.132562}, {0.817902,-0.281236}, {1.432319,0.095690}, {0.632687,-0.576622}, {-0.734149,0.271036}, {0.459345,-0.277828}, {0.305288,-0.697961}, {-1.187887,0.415304}, {0.796687,-0.667703}, {0.059859,0.503282}, {-0.674526,0.557001}, {0.761860,-0.342605}, {-0.553691,-0.066432}, {0.158447,0.486740}, {0.871085,-0.243732}, {-0.618374,0.322577}, {0.211178,-0.228494}, {0.256709,-0.631463}, {0.136058,-0.407427}, {0.386538,-0.076609}, {0.363731,0.067482}, {-0.693882,0.964447}, {1.052294,-0.778507}, {-0.404876,-1.906265}, {0.357725,-0.223712}, {-0.899349,-0.135851}, {0.297922,-0.353175}, {0.378138,0.542955}, {0.948882,-0.008489}, {-1.168557,-0.095203}, {0.196487,1.331091}, {-1.592780,-0.195128}, {0.496292,0.257436}, {0.094574,0.257786}, {0.179735,0.175672}, {-0.773849,-0.867187}, {-0.218875,-0.151987}, {-1.457404,0.561553}, {-0.766543,-1.240765}, {-0.311424,-0.241690}, {1.593359,-0.990696}, {-1.347961,-0.110373}, {0.087199,-0.249410}, {-0.381577,0.193060}, {1.290974,0.330803}, {-0.264855,-0.062533}, {1.932407,-0.669281}, {1.404137,-0.854353}, {0.032966,-0.375454}, {-0.665186,-0.403770}, {-0.669869,0.889790}, {0.897455,-0.188428}, {0.730249,1.021129}, {-0.843537,-0.297006}, {0.429220,-0.539707}, {0.449427,-0.771936}, {-0.429601,0.576114}, {0.055077,-0.604795}, {-0.278586,0.300688}, {0.067531,-1.925382}, {-0.924128,-0.958812}, {-0.337994,-0.727637}, {-0.457529,1.034296}, {0.370646,-0.836115}, {-0.467752,0.409464}, {-0.334921,-0.540654}, {0.832486,0.959241}, {0.746558,0.657005}, {-0.318685,-1.230673}, {-0.169521,0.642337}, {0.789263,0.831460}, {0.223756,0.414123}, {-0.325954,-0.321332}, {0.075028,0.967698}, {0.216434,-0.716844}, {-0.776716,0.826807}, {-0.074531,0.812789}, {-0.537597,1.026980}, {0.152495,0.982402}, {0.413097,-0.552747}, {0.611235,-0.071720}, {-0.491325,-0.356869}, {-0.486791,-0.626587}, {0.204293,-0.436972}, {-0.211208,-0.432147}, {-0.561132,1.073539}, {-0.070137,-0.184257}, {-1.115610,-0.477053}, {1.018256,0.435396}, {0.301658,-0.197887}, {-0.147236,1.059088}, {-0.888603,0.328241}, {-1.070295,-0.599636}, {0.316661,0.365444}, {-0.212919,-0.409418}, {-0.753071,0.087512}, {0.404576,0.038580}, {-1.504748,-0.267729}, {-0.313997,-0.930065}, {-0.236354,-1.238931}, {-0.376294,0.405383}, {1.291459,-0.346108}, {-0.297634,0.589772}, {0.110657,-0.512851}, {-1.955329,-0.456873}, {-1.247619,0.482959}, {0.083895,-0.640105}, {-0.396012,1.108095}, {0.909912,-0.470332}, {-0.049822,-0.096660}, {0.363109,0.186229}, {-0.314218,-0.256700}, {-0.295377,-0.825150}, {-0.122935,0.847107}, {0.254378,0.637229}, {0.103655,1.262402}, {0.673758,-0.803048}, {0.318196,-0.206245}, {0.385547,0.450488}, {-1.392342,0.052822}, {-0.665772,0.103675}, {0.426712,-1.222266}, {-0.075608,-0.769710}, {-0.548068,-0.642260}, {0.647223,0.860224}, {0.483236,0.514534}, {0.398769,0.050907}, {1.229950,0.745029}, {0.911489,1.188746}, {-0.099161,-0.697764}, {0.247348,-0.284992}, {-0.248089,-0.862396}, {0.846203,-1.166603}, {0.906759,0.708414}, {-1.122335,-0.402972}, {-0.118882,-0.437190}, {-0.430711,0.992516}, {-0.985280,-0.933490}, {0.753059,-1.029240}, {0.074035,1.011795}, {-0.554878,-0.736494}, {0.137578,-0.170962}, {0.010941,0.160870}, {-0.287390,-0.081999}, {-0.915608,-0.288509}, {1.009344,0.455340}, {-1.170750,0.374210}, {-0.509900,0.696984}, {-0.073667,0.542572}, {0.508428,-0.509940}, {0.162651,-0.619031}, {-0.894067,-0.370045}, {-1.100994,0.144700}, {-0.361678,0.973850}, {-0.592640,0.709252}, {0.482369,0.464118}, {0.646740,0.794370}, {-1.518095,-0.047480}, {-2.480153,0.558073}, {0.171995,-0.118977}, {-0.307031,-0.408313}, {0.667857,0.886201}, {1.215072,-1.815363}, {0.636451,-0.999552}, {1.038871,0.746703}, {0.799771,-0.633650}, {-0.478658,0.963576}, {0.660793,-0.396006}, {-0.366382,-0.010134}, {-0.126455,0.550368}, {-0.295040,-0.019897}, {-0.189119,0.144486}, {-0.409427,-0.246134}, {-0.749594,1.158845}, {-0.619952,-0.568661}, {0.418661,-0.682120}, {0.022881,-0.611217}, {0.745549,-0.999202}, {0.223803,-1.326778}, {-0.512690,-0.409827}, {0.730464,0.154411}, {0.304366,0.129614}, {1.037600,-0.642403}, {-1.589766,0.575436}, {1.303312,1.195870}, {-0.048468,-0.161105}, {-0.583344,0.721412}, {-0.598792,-1.629398}, {-1.184964,0.686923}, {-0.206515,0.128982}, {-1.354328,0.347421}, {-0.305114,-0.063748}, {-0.148754,1.025688}, {1.386647,-0.299267}, {0.623479,0.660380}, {0.111936,-0.215479}, {0.164504,-0.448971}, {-1.298132,-0.229643}, {-0.544931,0.273312}, {0.708111,1.131149}, {-1.025639,0.983595}, {-0.874828,0.448445}, {0.083092,0.131569}, {-0.199073,0.111786}, {0.471144,-0.582538}, {-0.002063,-1.209889}, {0.036177,-0.191428}, {0.048523,-0.482262}, {-0.591823,0.022019}, {-0.957858,0.379499}, {-0.388964,-0.030605}, {-1.067693,-0.564523}, {0.683215,0.452901}, {-0.417523,-0.888896}, {0.116388,-0.001175}, {-0.530451,-0.402808}, {-0.501828,-0.447776}, {-0.312741,-0.320066}, {0.239558,0.274188}, {0.413057,-0.479391}, {0.804059,0.228824}, {0.251042,-0.392509}, {-0.977828,-0.114416}, {0.706358,0.019025}, {-0.604572,-0.619421}, {-0.965764,0.532922}, {-0.557196,-0.448498}, {0.117221,-2.151584}, {0.339451,0.235127}, {1.163795,0.355797}, {-0.724402,0.409418}, {0.255004,0.576204}, {-0.258374,0.349667}, {1.028698,-0.794530}, {0.527963,1.589823}, {0.719742,-0.748712}, {0.368928,-0.686335}, {0.065692,0.585041}, {-0.125019,-0.273104}, {-0.241274,-0.481545}, {0.254201,0.650913}, {-0.612250,0.134043}, {-0.040628,1.546205}, {-0.153613,-0.158336}, {0.573747,-0.368891}, {0.247576,-0.546121}, {-0.327529,-0.227120}, {0.909237,0.293783}, {-0.641484,1.032472}, {0.945376,-0.976555}, {-0.097696,-1.005641}, {0.280105,0.778472}, {0.129635,-0.266768}, {0.163724,-0.064104}, {0.234504,-0.013251}, {-0.745244,2.072479}, {-1.437508,0.815776}, {-0.742229,-0.540598}, {0.532092,-0.390349}, {0.231447,-0.072878}, {0.459868,-0.668039}, {-1.085061,0.706084}, {0.666810,-0.686744}, {0.881553,0.001870}, {0.028822,-1.283565}, {-0.420608,0.313733}, {-0.114939,-0.901210}, {-0.382738,0.663378}, {-0.159187,0.391378}, {0.413518,0.011760}, {-1.145054,-0.174115}, {0.657089,-0.093871}, {0.439769,-0.078178}, {-0.876726,-1.290887}, {-0.194151,-0.120212}, {-0.573588,-0.601036}, {0.480740,-0.445964}, {0.246870,0.914457}, {1.507856,-0.333776}, {1.176638,0.254658}, {0.571415,0.268885}, {-0.635128,0.650310}, {0.383027,-0.382331}, {0.464641,-0.511072}, {0.874510,-0.963842}, {-0.540770,-0.325872}, {0.253789,-0.123098}, {-0.270305,0.172002}, {-1.031316,0.278028}, {-0.332885,-0.499473}, {0.120825,-0.860634}, {-0.643136,-0.068827}, {-0.040357,0.200742}, {-0.933480,0.185052}, {0.771612,-0.286406}, {0.939360,-0.140307}, {0.028340,0.302658}, {-1.188171,-0.068560}, {-0.180113,0.072284}, {-0.550815,-0.947792}, {-0.643721,-0.045899}, {0.092203,-0.288068}, {0.439139,0.467489}, {0.682732,-0.634377}, {-0.736317,-0.107723}, {-0.237552,-1.170557}, {-1.265348,-0.851037}, {-0.117957,-0.085973}, {1.102227,-0.027409}, {0.201656,0.258550}, {-0.341302,0.345698}, {-0.226687,0.021001}, {0.300950,0.747520}, {-0.548719,-0.764005}, {0.342371,0.650129}, {-0.197264,-0.406966}, {0.253969,0.590828}, {-0.654232,-0.911205}, {-0.069347,-0.649115}, {-0.302273,-0.962710}, {-0.858735,-0.734358}, {0.824973,0.347623}, {0.561939,-0.332102}, {-0.149910,-0.141332}, {-0.329960,-0.276681}, {-0.477825,0.796294}, {-0.929950,-1.013256}, {0.660669,-1.277091}, {0.992162,0.447772}, {-0.304259,1.500934}, {-0.057727,0.903363}, {0.674917,0.876704}, {-0.634144,-0.191583}, {0.845197,-1.233301}, {-1.661000,0.075804}, {-0.514972,0.235703}, {0.140527,0.185480}, {-0.234079,-1.451824}, {-0.405753,0.462321}, {1.170499,0.117621}, {0.131879,0.114231}, {0.965116,-0.378527}, {0.206708,-0.220844}, {-0.187811,0.488983}, {-0.661154,-0.013639}, {-1.372899,-0.391042}, {-0.208436,0.141927}, {-0.900758,0.338770}, {-1.061068,-0.473609}, {-0.442850,-0.150059}, {-0.656915,-0.213440}, {-0.519110,0.388374}, {0.552973,0.412297}, {0.246784,0.360372}, {0.037668,-0.058916}, {-1.348537,-0.018245}, {-0.618509,0.055222}, {0.618511,-0.123750}, {-0.034437,-0.099757}, {0.323428,-0.652759}, {0.154987,0.899311}, {1.781830,-0.153147}, {0.035979,1.188616}, {0.488400,0.697546}, {-0.446666,0.281943}, {-0.453892,0.528215}, {-0.688147,-1.008588}, {-0.390631,0.389458}, {-1.194630,-0.928712}, {0.678735,-0.466324}, {0.976499,-0.038259}, {1.396877,-0.138085}, {-1.430019,0.335065}, {-0.055289,-0.927780}, {0.485662,0.485284}, {0.201981,0.537132}, {0.363088,1.731858}, {-0.668758,0.465720}, {0.077665,0.666078}, {-1.566421,0.040135}, {-0.355676,-1.374433}, {-1.271148,0.473298}, {-0.709383,-1.088175}, {0.072900,-0.383878}, {-0.221073,0.694508}, {0.979392,0.358300}, {-0.468658,-1.257957}, {-0.986421,-0.688206}, {0.774736,0.025302}, {-0.350405,-1.379404}, {0.265043,-0.179214}, {0.632730,0.655965}, {-0.580958,0.073589}, {-0.674751,-0.329321}, {-0.157258,0.366028}, {-0.167454,0.458918}, {0.360995,-0.045800}, {0.541670,0.414036}, {-0.953282,0.396081}, {-0.640341,-0.815884}, {0.099247,0.488115}, {1.028320,-1.065518}, {-0.608843,-0.394921}, {-0.660332,0.127980}, {1.215143,-0.784662}, {-0.597942,0.410855}, {-0.460977,-1.731878}, {-1.125346,-0.522925}, {0.160018,-0.890953}, {0.354174,0.463096}, {0.432617,0.091890}, {-0.537692,0.916233}, {-0.231298,-1.123082}, {0.448289,0.048934}, {0.141959,0.248023}, {-0.239098,1.258853}, {0.659532,0.029834}, {1.296697,-0.068587}, {-0.566528,0.709376}, {-0.408385,-0.069338}, {-0.390137,0.783384}, {-1.620428,-0.505653}, {0.410443,-0.303323}, {-0.550195,-0.764973}, {-0.576556,0.263301}, {-0.600212,0.262565}, {-0.122290,-0.126754}, {0.331186,-1.519006}, {-0.345319,-0.461422}, {-0.572596,0.480422}, {1.103205,0.915259}, {0.118307,1.801626}, {-0.764045,0.235550}, {-0.022141,1.201361}, {0.028013,0.044403}, {0.488177,0.026615}, {-0.623776,-0.232662}, {-0.961218,0.888319}, {0.486462,-0.519644}, {0.199430,-0.047332}, {0.947899,1.148955}, {0.169357,-1.336189}, {-0.930552,-0.016437}, {-0.518731,0.323647}, {1.068277,-0.408039}, {0.873528,-0.510827}, {-0.062329,-0.013528}, {0.016866,0.267559}, {1.056129,-1.027253}, {-0.539801,0.935748}, {0.096848,-0.037621}, {-0.095070,-0.255447}, {-0.848099,0.443100}, {0.639670,-0.048560}, {0.923418,-0.283416}, {1.456548,-1.294075}, {-1.764045,-0.439263}, {0.461557,0.172525}, {-0.436138,0.071867}, {-0.673432,0.538713}, {0.312169,0.260254}, {0.103237,-0.512787}, {-1.493843,0.399438}, {0.819913,1.366162}, {-0.016400,1.497652}, {0.215513,-0.225488}, {-0.017414,-0.407048}, {-0.020617,0.629335}, {0.224152,0.982394}, {-0.511165,-0.579162}, {0.007663,0.124781}, {0.108301,0.792560}, {0.158005,0.407386}, {-0.182543,-0.165334}, {1.159181,-0.510782}, {0.280196,-1.062985}, {0.236496,-0.145702}, {-0.422758,1.424397}, {-0.331449,-0.193450}, {0.192874,-0.427651}, {0.112059,0.188264}, {-0.272202,0.107938}, {-0.760328,-0.363161}, {-0.726426,1.597634}, {-0.071579,0.949224}, {0.308458,0.255762}, {1.021180,-0.266580}, {0.143714,0.679690}, {0.402213,-0.431472}, {0.325377,-0.219868}, {1.102590,0.967718}, {0.358516,-0.734835}, {0.014624,0.178090}, {0.448299,-0.407042}, {-0.611858,-0.011623}, {1.077674,-0.250480}, {-0.299770,0.274045}, {-0.091250,0.162794}, {0.263684,0.580732}, {-0.524096,0.453355}, {1.220175,-0.439485}, {0.505437,0.769273}, {-0.448804,-0.993002}, {-0.443388,-0.483274}, {-0.523477,-0.401425}, {-0.313273,-0.056149}, {0.050769,0.557578}, {-0.702026,-0.345979}, {-0.323416,0.362591}, {0.804164,0.415913}, {0.366415,0.231610}, {-0.674289,2.719386}, {-0.390476,-0.001017}, {0.634584,0.043129}, {-0.165932,-0.088890}, {-0.084003,0.164003}, {0.326900,-0.176912}, {0.846530,-0.575045}, {0.379000,-0.560151}, {-0.045598,-1.256528}, {0.004132,-0.330289}, {0.801731,0.102068}, {0.310208,-0.016975}, {0.804024,-0.848600}, {0.530551,0.564239}, {-0.217442,-0.406346}, {0.482194,-0.354971}, {1.013284,0.341576}, {-0.189813,-0.158867}, {0.057823,0.314484}, {-0.385227,0.961346}, {-0.252099,0.877088}, {-0.150246,0.399242}, {0.227240,-0.011056}, {-0.906256,0.232546}, {0.447790,0.615224}, {0.710736,0.413033}, {0.332351,0.394525}, {-1.111575,-0.892920}, {0.671354,0.236546}, {-0.530462,0.833944}, {-0.487734,-0.933744}, {-0.279573,0.015821}, {0.150636,0.941044}, {-0.490255,-1.718709}, {-0.562611,-0.050636}, {0.161397,-0.336955}, {-0.581458,0.013550}, {1.301819,-0.243034}, {0.328760,-0.383835}, {-0.558614,0.312557}, {-0.994847,-0.123656}, {-0.946885,-0.460904}, {-0.150270,0.629816}, {0.059610,-0.005996}, {-0.577683,-0.466143}, {-0.471025,-0.278965}, {-0.148945,-0.324783}, {1.276411,0.305076}, {0.980279,-0.070273}, {1.162642,0.100148}, {1.843762,0.357636}, {-1.342349,-0.353233}, {-0.436687,-0.095269}, {-0.805848,0.606225}, {0.871641,-1.329340}, {0.184974,1.265810}, {-0.244617,-0.882645}, {-0.907868,-0.039793}, {1.031712,0.603956}, {-0.320916,0.296021}, {0.769198,0.408169}, {0.273306,-1.560085}, {-0.845221,-0.120352}, {-0.292803,-0.487164}, {-1.188451,1.021220}, {0.712612,-0.904145}, {1.536593,0.458014}, {0.948114,-0.292910}, {0.183039,-0.763955}, {2.157607,-0.224608}, {-0.273569,-0.394222}, {-0.431183,0.416926}, {0.132424,-0.348722}, {0.753581,1.216860}, {-0.337171,-0.893545}, {-1.120653,-0.243974}, {1.019687,0.181340}, {1.477047,-0.821085}, {0.046624,-0.107856}, {0.433614,-0.195993}, {-0.405870,-1.017501}, {-0.050243,0.119354}, {-0.671673,0.243350}, {-0.315893,1.721316}, {-0.083615,0.238805}, {-1.037536,0.577163}, {-0.913802,-0.523424}, {1.219618,-0.315761}, {1.146100,0.517259}, {-0.895445,-1.015857}, {0.514174,0.575290}, {-0.123435,0.745106}, {0.702053,0.848669}, {-0.342611,-0.957096}, {-0.289839,-0.316382}, {-0.397795,0.021996}, {-0.677843,0.971322}, {0.361514,-0.183216}, {0.080051,-0.295673}, {1.160202,-0.910675}, {-0.150463,0.736822}, {-0.709405,-0.203295}, {-0.350063,0.552303}, {-0.721111,0.319029}, {-0.253701,-0.103668}, {-0.750172,-0.320345}, {-1.206247,-0.063426}, {-1.373506,0.124767}, {0.508866,0.460720}, {-1.336954,0.210008}, {-0.631641,-0.072041}, {0.928787,-1.037158}, {0.032754,1.022849}, {0.666725,-0.698994}, {-0.426685,0.073876}, {0.641602,0.815373}, {0.375179,-0.463772}, {-0.233340,1.332766}, {-0.588562,0.673215}, {-1.583380,0.174935}, {0.183747,-0.026180}, {-0.037925,-0.435531}, {0.421545,-1.077913}, {0.739201,0.256848}, {0.278009,-0.012421}, {1.071530,-1.464473}, {0.879311,0.140050}, {0.690285,-0.379450}, {-0.359215,0.696639}, {0.445641,1.003849}, {-0.471426,0.216653}, {0.747519,-0.191435}, {0.609888,1.087821}, {-0.114237,0.707995}, {0.310145,-0.068274}, {0.238114,0.520310}, {0.188092,-0.863861}, {-0.272074,0.545071}, {-0.584299,0.335263}, {0.568218,0.803199}, {-0.430740,0.419229}, {-0.900838,0.175793}, {0.241127,0.980598}, {0.229357,-0.402579}, {-0.005071,0.451806}, {-0.169403,0.001801}, {0.498114,0.632898}, {0.880223,-0.529746}, {-0.868428,0.322017}, {-0.934466,0.316410}, {-0.153631,-0.037373}, {-0.402630,-0.960009}, {0.069345,1.147181}, {0.538025,0.497931}, {-0.752724,0.353508}, {1.119766,0.340039}, {2.267532,-0.419679}, {0.867285,-0.861810}, {-0.219850,0.147761}, {-1.333873,0.140060}, {0.349306,-0.296989}, {1.246670,-0.360293}, {0.448126,1.393103}, {0.458653,-0.009429}, {0.897902,0.163413}, {-0.423687,0.569503}, {0.533119,-0.220683}, {-0.561732,-0.975309}, {0.881865,0.101322}, {-0.304062,0.840913}, {0.773744,-0.251265}, {0.767785,-0.089005}, {0.093558,0.166969}, {-0.144223,0.543223}, {0.599210,-0.139195}, {-0.757562,0.974285}, {1.287608,-1.166102}, {0.851889,0.840470}, {-0.060754,1.083686}, {0.613368,0.304015}, {-0.379987,-0.439814}, {-0.329733,-0.112941}, {-0.424859,-0.739637}, {-1.793210,-1.188762}, {-0.635379,-0.904453}, {0.257752,-1.166231}, {0.795667,-1.099593}, {0.943045,-0.741673}, {0.132503,-0.740775}, {-0.441437,-0.158045}, {0.625827,-0.791281}, {0.206786,0.183906}, {0.838373,-0.394791}, {0.800490,0.460415}, {0.158553,0.035947}, {0.941686,1.030037}, {-0.449424,0.181222}, {-0.064192,0.321760}, {-0.818197,-0.517869}, {-1.001442,-0.964262}, {-0.341690,0.209038}, {0.769880,-0.509106}, {-1.800834,-0.977495}, {0.934141,-0.956871}, {-0.544929,-0.234843}, {0.052514,-0.188411}, {0.020671,0.409432}, {-0.446867,0.177584}, {-0.018809,0.439592}, {-1.004284,-1.141000}, {0.165529,-0.054725}, {0.209767,0.617396}, {-0.141390,-0.133027}, {-0.035609,0.141281}, {-0.178184,1.191617}, {0.543428,0.601854}, {-0.095008,-0.455613}, {-0.059113,0.233037}, {0.233059,-0.139516}, {0.272380,-1.266193}, {0.618656,0.116292}, {-0.009285,0.623049}, {0.096660,0.123946}, {-1.580974,0.525244}, {0.206597,1.002594}, {0.089974,-0.500957}, {1.895818,0.543035}, {-0.305681,0.122755}, {0.221252,0.227730}, {-0.820677,-0.365112}, {0.947046,0.458062}, {0.542810,-0.838007}, {-0.052196,-0.075847}, {0.814450,-0.744863}, {-0.567190,0.264126}, {0.237717,0.018269}, {-0.703420,0.405742}, {0.614185,0.753346}, {-1.418353,0.214996}, {-0.860688,0.915467}, {-0.360367,-0.260405}, {1.472941,0.435927}, {0.446222,0.730291}, {-0.144925,-0.561438}, {-1.750887,-0.525869}, {0.340149,-0.191235}, {0.377149,0.915875}, {0.114776,0.838241}, {1.129547,-0.141350}, {0.184851,-0.695700}, {-0.534036,-0.634324}, {-0.340427,0.321547}, {-0.404642,-0.697021}, {-0.253808,-0.192746}, {-0.596530,-0.932647}, {-0.838994,-0.405391}, {-0.755491,-0.342310}, {-0.057286,-0.358306}, {-1.447241,1.301361}, {-1.313619,-1.013152}, {-0.571824,0.109239}, {-0.260698,0.606990}, {0.070246,0.534229}, {0.597517,-0.037879}, {-1.094173,-0.410137}, {-0.254631,-0.246340}, {0.431483,-0.376672}, {0.519113,0.214955}, {-0.076563,0.738583}, {0.205809,-1.447609}, {-0.810528,-0.234393}, {0.229555,0.246711}, {0.927126,0.590173}, {-0.466521,-1.469152}, {0.695727,1.527739}, {-1.704484,-0.591690}, {0.307858,0.231491}, {-0.995968,0.318885}, {0.661263,-0.555950}, {-0.712018,0.863494}, {0.187289,-0.103648}, {0.148728,0.440236}, {-0.416693,0.421814}, {-0.285165,-1.497392}, {-1.351142,-0.185347}, {0.484214,-0.136529}, {0.573682,-1.192687}, {0.410345,-0.315465}, {0.848424,0.671905}, {-1.103233,0.644873}, {1.299410,0.565215}, {-0.461676,0.064235}, {-1.379040,-0.432968}, {-1.015434,-1.145416}, {0.129534,0.363062}, {0.104220,0.288515}, {1.543944,-1.307105}, {0.221840,0.109014}, {-0.184143,0.370434}, {0.058980,0.873678}, {0.551447,-0.039445}, {-0.270308,0.105572}, {0.469465,-0.104565}, {0.015573,0.788276}, {0.749307,1.602021}, {-0.203181,-0.465786}, {0.133115,-1.936805}, {-0.429016,-0.726444}, {-0.149023,-0.362963}, {0.397963,-0.235261}, {1.558527,0.044457}, {-0.972298,0.805232}, {-0.807760,-0.399592}, {0.280215,0.243919}, {0.137227,-1.792080}, {-0.651625,0.507164}, {0.275789,-0.969788}, {-0.254710,-0.494221}, {-0.568344,-0.391331}, {-0.403117,-0.847222}, {0.850632,0.551661}, {0.375400,0.202567}, {0.407655,0.339162}, {-0.077186,-0.944989}, {0.853879,0.321790}, {-0.878723,1.078369}, {0.402514,0.134404}, {-0.636014,0.028282}, {-0.306382,-0.725383}, {0.596217,0.775472}, {0.743227,0.136710}, {0.318624,0.141530}, {-2.436086,1.380653}, {-1.525091,-0.330171}, {0.786829,-0.068407}, {-0.268204,0.051274}, {0.026261,-0.264944}, {0.284678,0.800642}, {1.139380,-0.635677}, {0.531484,1.095444}, {0.061698,-1.585712}, {-0.200152,-0.292121}, {0.511662,1.497851}, {-1.734319,0.421699}, {0.730265,-0.139450}, {-0.853009,-0.131672}, {0.279669,0.232947}, {-0.265099,-0.688263}, {-0.929645,-0.286772}, {-0.125102,-1.125642}, {1.064545,0.166148}, {0.733526,-0.916868}, {-0.934886,0.513751}, {1.207510,1.425677}, {-0.027745,0.571540}, {-1.475919,-1.304595}, {0.891606,-0.522466}, {-1.132359,-0.916251}, {0.769611,1.058327}, {-0.787181,-0.146081}, {-0.219027,0.104576}, {-0.095533,0.083469}, {-0.115227,0.014563}, {-1.070410,0.746173}, {1.109839,-1.229791}, {-0.326565,0.830876}, {0.286977,0.532019}, {-0.769394,0.226197}, {0.754521,0.827572}, {-0.361735,-0.367817}, {-0.546435,-0.902863}, {0.746461,-0.939287}, {-0.625963,1.456091}, {-0.244332,0.173159}, {0.735755,0.338783}, {1.161011,-0.592912}, {0.316221,-0.277843}, {-0.515322,-0.171536}, {-0.073174,0.804972}, {1.050407,-1.065537}, {0.484378,0.954140}, {0.939704,-0.717131}, {-0.746289,0.125873}, {0.306167,0.822975}, {-0.688430,-0.009492}, {0.473809,-0.195759}, {-0.291123,-0.887642}, {-1.113639,-0.205191}, {0.507462,-1.139016}, {-1.047570,1.061075}, {0.076114,0.502083}, {-0.009567,0.771579}, {0.277710,-1.082459}, {-0.030487,-0.792313}, {-0.005490,-0.038347}, {-0.070947,-0.641452}, {0.064114,-1.279288}, {-0.735976,-0.177716}, {-1.173461,-0.963224}, {0.642447,-1.215458}, {-0.542537,-0.779186}, {0.208617,0.707524}, {-0.815926,0.734432}, {-1.362503,0.826668}, {0.171331,-0.098047}, {0.299502,-0.977795}, {-1.423973,0.972393}, {1.079616,-1.087319}, {-0.301928,0.824269}, {1.239375,0.407183}, {0.060999,-0.016179}, {0.804982,-0.385257}, {-0.012938,0.677340}, {-0.121473,1.046107}, {-0.173294,-0.590221}, {0.680903,0.172555}, {0.901474,-0.638362}, {-0.754168,0.954427}, {-1.017190,0.458050}, {-0.893258,-0.651492}, {-1.223616,0.734166}, {-0.551561,0.465105}, {-0.472743,-1.538767}, {-0.643332,0.237332}, {-1.403355,-0.712716}, {-0.696300,0.281854}, {0.063601,0.242936}, {0.140091,-0.361881}, {-0.466220,0.056740}, {0.400082,0.655608}, {-0.218787,0.165453}, {0.162508,0.460463}, {0.196531,0.805585}, {0.867586,-0.796481}, {-0.103192,-0.372709}, {1.480107,-0.244144}, {-0.377288,-0.616448}, {0.827771,0.615012}, {0.241670,-0.067976}, {0.159564,-0.039752}, {0.202995,-0.531926}, {-0.635295,-0.300095}, {-0.112240,-0.452463}, {-0.005874,-1.283824}, {-0.902111,-0.502776}, {0.246129,0.198008}, {0.478389,0.145563}, {0.441332,0.687473}, {-0.247149,0.184176}, {-0.789643,-0.991969}, {-1.231853,-0.521080}, {0.419307,-1.074857}, {0.844709,0.320482}, {1.197865,0.314086}, {-0.515979,0.581945}, {-0.331012,-0.496182}, {-0.030485,0.691218}, {-0.148168,0.839336}, {-0.386217,-0.545061}, {0.377549,-2.132758}, {-0.636174,-0.065140}, {-0.578408,0.476528}, {-0.770655,0.716478}, {-0.315434,0.652659}, {-0.095634,0.084278}, {-0.454542,0.493002}, {-0.466113,-0.638183}, {-0.452908,0.032110}, {0.612871,-0.006891}, {-0.519763,-0.980015}, {0.216004,1.044187}, {-0.522556,-1.037992}, {0.191915,-0.608267}, {1.409379,-0.193706}, {-0.007437,-0.406039}, {-0.109688,-0.212492}, {0.014242,-0.315274}, {-1.498715,-0.045784}, {0.823582,-0.518037}, {0.453221,-0.453072}, {0.308668,0.963767}, {-0.639039,-0.106259}, {-0.295817,-1.112948}, {0.149772,1.651655}, {-0.190802,0.742309}, {-0.697535,0.406187}, {0.803067,-0.505165}, {-0.543679,-0.703909}, {-0.455789,0.354645}, {-0.801542,-0.036586}, {0.803856,-0.099847}, {-1.193883,-0.353241}, {1.075654,0.052465}, {-0.258694,-0.040366}, {-0.699399,-0.209583}, {-0.215574,-0.004929}, {0.632563,0.109047}, {-0.472713,1.246852}, {0.558519,0.764899}, {-1.312153,-0.650642}, {0.319234,0.096798}, {-0.116014,1.918017}, {0.348943,-0.098542}, {-0.517133,-0.367209}, {-0.032548,-1.034303}, {0.328535,-0.909280}, {0.458397,1.012904}, {0.159957,0.751975}, {0.448532,1.165521}, {-0.289242,-1.073650}, {0.221077,0.996689}, {0.271276,0.400481}, {-0.293484,0.257531}, {0.380645,-0.869409}, {1.060007,-1.185366}, {-0.683863,-0.654862}, {0.335272,0.036245}, {-0.230655,0.834185}, {-0.012915,-0.531325}, {0.024833,-1.050938}, {-0.708008,0.918939}, {-0.825306,-0.060127}, {0.253139,0.491280}, {0.680471,0.175579}, {-0.198326,-0.665312}, {-0.922970,-0.808154}, {0.156470,-0.797370}, {-0.783536,-0.469965}, {0.341051,0.873579}, {-2.007647,0.681225}, {0.364041,-0.508894}, {-0.015955,0.350543}, {-0.291678,-0.998941}, {0.239003,-0.487403}, {-0.327758,-0.508257}, {-0.539391,-0.798760}, {-0.540462,-0.564731}, {-0.620798,0.707924}, {0.256000,0.452068}, {0.385059,1.172229}, {0.360328,-0.171884}, {-0.572500,0.532958}, {0.648164,0.071339}, {-1.027705,-1.054336}, {0.522261,-0.590621}, {-0.019556,0.572396}, {0.607990,0.481700}, {-1.322499,0.788470}, {-0.684229,-0.473861}, {-1.265839,1.105980}, {-0.581971,-0.124401}, {0.444034,0.102150}, {0.794992,0.031055}, {0.603776,0.000266}, {0.877366,0.024301}, {0.277579,0.682971}, {-0.109226,0.230966}, {-0.935434,0.116535}, {-0.083082,0.334694}, {0.362059,-0.024471}, {0.753738,0.122144}, {0.304294,1.505981}, {0.271106,-0.317919}, {-0.465618,-0.059502}, {-0.373175,-0.755986}, {0.387614,-0.416476}, {-0.748802,-0.395856}, {-0.013579,-1.476338}, {-0.366869,0.317716}, {-0.979219,-0.200391}, {-0.153407,-0.447562}, {-0.255245,0.351090}, {0.998840,-0.545270}, {0.186904,-0.240711}, {0.153329,-0.943938}, {0.247078,0.571677}, {0.192360,1.104895}, {-0.551067,0.802267}, {-0.124506,0.860949}, {-0.139002,-0.104195}, {-0.642611,-0.508259}, {0.157868,0.859140}, {0.019725,0.207020}, {-0.653316,1.187525}, {1.329306,-0.509686}, {0.694674,0.256705}, {0.202853,0.851294}, {-0.441419,1.428209}, {0.156150,-0.080560}, {0.715021,-0.899171}, {-0.239049,-0.631319}, {0.195295,0.575186}, {-1.311572,-0.865187}, {0.570106,0.651064}, {0.208959,-1.023329}, {0.906490,-0.109625}, {-0.781286,-0.253333}, {0.231546,0.707965}, {-1.265833,1.067884}, {0.815263,1.165205}, {1.466715,0.385384}, {0.535490,0.581761}, {-0.472358,-0.470277}, {0.983264,0.384383}, {0.727058,0.443847}, {-0.416272,-0.472738}, {0.376082,-0.134460}, {-0.503839,-0.901079}, {0.682625,1.008080}, {-1.386979,-1.091660}, {0.213387,0.535684}, {-0.957192,-0.557212}, {-0.067069,-1.051855}, {-0.101157,-0.178941}, {-1.306964,-0.631127}, {0.926961,-0.083734}, {-0.264348,-0.487315}, {0.627269,-0.923797}, {1.086963,0.082439}, {-0.149566,-1.399193}, {0.389143,-0.198131}, {-0.031070,0.505173}, {1.081145,-0.421980}, {-0.365429,-0.412667}, {-0.376916,0.370359}, {0.531009,1.324279}, {0.522575,-0.338998}, {0.502957,-0.482424}, {-0.562535,-0.545277}, {-0.397874,-0.045620}, {-0.210300,-0.937677}, {0.678832,-1.456153}, {-0.290273,0.095165}, {0.631624,0.517150}, {-0.411457,0.459952}, {1.217812,-0.542939}, {0.073630,-0.234428}, {0.054958,-0.570539}, {-1.128586,0.230127}, {0.720559,0.058370}, {-1.035968,0.077082}, {-0.608327,-0.358758}, {0.269851,0.489804}, {-0.406969,-0.549994}, {0.527270,-0.654157}, {1.027706,-0.593285}, {-0.471971,-0.594411}, {0.040449,-0.467310}, {-0.290221,0.851614}, {-0.226635,-0.794078}, {0.447274,0.236763}, {-0.785187,-0.067945}, {0.712972,0.436643}, {-0.088441,1.299909}, {0.475924,0.408473}, {0.209117,0.539048}, {0.714783,-0.513016}, {0.106957,0.344444}, {-0.517943,0.098828}, {1.248470,0.110160}, {-0.164676,0.715642}, {0.116579,0.701060}, {-0.338202,1.285789}, {0.252122,0.401489}, {0.208841,0.077311}, {0.254678,0.806815}, {0.234503,-0.687878}, {-0.017710,1.099931}, {1.248068,-1.577695}, {-2.177322,0.634684}, {0.383749,-0.488257}, {0.626473,0.894318}, {0.950392,-1.224503}, {-1.592308,0.183474}, {-0.883620,0.459040}, {0.335251,-0.492958}, {-1.452049,0.645747}, {0.654540,-0.613036}, {-0.786306,0.621635}, {-0.835920,1.214810}, {-0.402804,-0.379300}, {-0.167140,-1.088577}, {2.017823,-0.733220}, {1.277852,0.045432}, {-0.655324,-0.273020}, {-0.502679,-1.294652}, {0.139179,0.305881}, {0.476464,0.374818}, {-1.204706,0.929919}, {-0.703096,0.426476}, {-0.170932,-0.224981}, {-0.351279,-0.400379}, {0.267640,0.852748}, {0.272721,-0.274755}, {0.394744,0.261766}, {-0.427077,-1.197927}, {0.469152,-0.246978}, {-0.068939,-0.212535}, {0.567020,0.581239}, {1.773606,-1.261858}, {0.258176,-1.131465}, {-1.103839,-0.289925}, {1.177229,-0.690317}, {0.137438,-0.884592}, {0.116897,-0.623741}, {1.231751,-1.044646}, {0.653054,-0.008248}, {-1.025754,0.353121}, {0.152087,-0.684942}, {0.970565,0.373987}, {-0.392564,-0.069188}, {-0.268254,0.066466}, {1.288850,-0.546856}, {-0.879522,1.075044}, {0.398109,0.957102}, {0.937518,-0.970381}, {1.315683,0.004675}, {0.656915,0.923958}, {0.964084,0.332777}, {-0.544967,-0.260763}, {0.161974,-0.230332}, {0.086070,1.573961}, {-0.383494,0.130120}, {1.082890,0.057498}, {-1.410456,-0.461719}, {0.540485,0.691271}, {-0.278103,0.291339}, {0.180835,0.081187}, {0.648822,-0.143641}, {-1.616721,0.284309}, {0.850766,-0.295949}, {-0.452081,-0.318424}, {-0.672436,0.363193}, {0.330021,-0.103062}, {-1.201214,0.695691}, {-0.176974,-0.049101}, {0.034254,-0.001430}, {-0.581966,-1.404542}, {1.233772,0.845893}, {0.770042,-0.222329}, {-0.134528,1.408050}, {0.981347,0.143636}, {0.145948,1.099040}, {0.710827,0.052673}, {0.557771,-0.481154}, {-0.146756,-1.008837}, {-0.689552,-0.880902}, {0.001022,0.756353}, {0.222483,0.013501}, {0.905978,0.432735}, {-0.497583,-0.437051}, {0.010372,-0.231759}, {-0.834391,0.245930}, {0.869406,-1.488002}, {-1.420173,0.137089}, {0.055164,0.678866}, {0.811665,1.025276}, {0.375303,0.608999}, {-0.615345,-0.077846}, {-0.186463,0.319902}, {0.005719,0.915684}, {0.318663,-0.507730}, {-0.803895,0.451266}, {0.160835,0.158185}, {1.633081,0.429963}, {-0.791587,0.563798}, {-0.778932,-0.083845}, {-0.746995,0.259063}, {-0.374430,0.379522}, {-0.025126,-0.204688}, {-0.991074,0.045919}, {-0.136845,-0.414905}, {0.899845,1.310109}, {-0.868625,-0.129578}, {1.148100,0.070605}, {-0.810213,-0.433737}, {1.207818,-0.151042}, {-0.515970,-0.141577}, {-0.161548,0.388756}, {-0.679441,-0.108745}, {-0.858860,0.144068}, {-0.111455,-0.935162}, {-0.512453,0.281827}, {0.802022,-0.977459}, {-0.488174,0.273547}, {-0.555684,0.973625}, {-1.467122,1.287905}, {0.769233,-0.351832}, {0.214904,0.347022}, {0.942995,0.470266}, {-1.265858,-1.103599}, {0.786352,-0.915630}, {0.377453,0.259392}, {0.364408,-0.253769}, {-0.939662,0.510476}, {-0.611435,0.630746}, {0.496403,0.350935}, {0.780776,-0.376306}, {0.329368,-0.560035}, {-0.104896,-0.414545}, {0.459736,-0.818950}, {0.101952,0.759826}, {0.234506,0.195742}, {1.165165,1.081672}, {-0.741395,-0.556266}, {0.136652,-0.063647}, {-0.380017,0.025288}, {-1.149874,1.004539}, {0.233882,0.583344}, {1.407491,-0.873973}, {0.124950,0.137739}, {0.077742,0.655085}, {0.756326,0.693924}, {-0.978230,-0.590244}, {-0.318209,-0.151183}, {1.590341,0.137861}, {-0.091311,-0.581231}, {0.362381,-0.416706}, {0.646778,-0.246347}, {0.432081,-0.436533}, {0.467351,0.177888}, {-0.192966,1.332833}, {-0.364669,0.036797}, {-0.426350,0.041546}, {-0.468050,0.813732}, {-1.082121,-0.356209}, {0.795313,0.513634}, {0.286996,0.171098}, {0.534304,-0.756041}, {-0.676098,0.413430}, {-0.707209,0.964446}, {-0.144614,-0.627121}, {1.280522,-1.317728}, {-0.159645,-0.237936}, {-0.582439,-0.659814}, {-0.070758,-1.089956}, {-0.148674,-1.374329}, {-0.179882,0.506686}, {0.086493,-0.791614}, {0.489759,-0.403031}, {-0.314327,-0.111422}, {-0.412931,0.493597}, {0.253975,0.712494}, {0.449653,0.383925}, {-0.170046,-0.209558}, {0.146663,0.741047}, {-0.391870,-0.091945}, {-0.442016,0.119528}, {-0.802004,-1.400078}, {-0.352020,-0.673484}, {1.178405,0.222166}, {0.401656,-0.176436}, {-0.270939,-0.198899}, {-0.695723,-0.566735}, {0.834854,-1.471402}, {-0.289106,0.437823}, {0.251627,0.054241}, {0.029125,-0.307041}, {-1.487735,1.231129}, {0.333572,-0.223186}, {0.038154,1.081929}, {-0.087970,-1.036150}, {0.592180,0.133148}, {0.093161,-0.294506}, {-0.296535,0.495623}, {-0.522146,1.313928}, {-0.714640,-0.532988}, {0.398263,0.293071}, {-0.596224,1.223075}, {0.479882,-1.180554}, {-0.065416,-0.710133}, {-0.889315,-0.315524}, {0.962241,-0.055537}, {-0.221264,0.112333}, {0.322420,-0.571722}, {1.192841,0.558100}, {0.521199,0.138154}, {0.716695,0.106324}, {0.711628,-0.260564}, {0.189505,-0.382577}, {-0.438235,-0.546217}, {0.077497,-0.092175}, {-0.202673,-0.048951}, {1.487370,-0.747006}, {-1.031527,-0.820128}, {-1.649929,-0.105742}, {-0.347869,-0.458435}, {-0.029234,-1.320993}, {1.253876,0.585886}, {0.436760,2.430056}, {0.545664,0.470634}, {0.901732,-0.856095}, {0.662886,0.977089}, {1.075384,-0.075824}, {0.209674,0.063782}, {-0.126499,0.482599}, {-0.507162,0.208925}, {0.247866,-0.354774}, {0.054885,-1.024517}, {0.204562,0.827382}, {-0.883562,-0.740692}, {0.849976,-0.019489}, {0.263688,0.251006}, {-0.330082,-0.061291}, {-0.083851,1.370921}, {0.295784,0.875275}, {-0.425539,-0.283223}, {-0.640975,0.136141}, {-0.173006,0.465478}, {-0.895481,0.477515}, {0.229261,1.220279}, {-0.407060,1.466588}, {1.295396,0.176855}, {-0.632605,0.786648}, {-1.121659,0.268616}, {-0.847703,-0.305246}, {1.663789,1.656323}, {-0.523322,-0.547465}, {-0.792665,0.115445}, {-0.824945,0.042476}, {0.901073,0.249932}, {1.130116,-1.907218}, {-0.859768,-1.577612}, {-0.191384,0.566792}, {0.676686,-0.623231}, {-0.793064,-0.852185}, {0.027490,-0.460866}, {0.540012,-1.738204}, {-0.751769,-1.401695}, {-0.652675,-2.187214}, {0.546582,0.366436}, {0.191392,-0.194236}, {0.143155,0.472797}, {-0.850023,-0.135606}, {-0.377306,0.072815}, {1.283611,0.519238}, {0.216310,0.401307}, {0.612385,0.376774}, {0.509529,-1.018581}, {0.718140,-0.664603}, {-0.092749,-0.580942}, {0.408930,-0.062835}, {-0.082806,-1.497458}, {-0.474417,-0.431005}, {-0.261473,0.207407}, {-0.241734,0.107672}, {-1.042802,-0.161642}, {0.155338,0.029191}, {0.742596,0.009836}, {1.004603,-0.548445}, {-0.772076,0.004202}, {0.684254,-1.908420}, {-0.643584,-0.503343}, {-0.602398,0.352084}, {0.637940,0.050408}, {-0.282541,-0.673629}, {-0.218095,-0.677067}, {0.028687,-0.173118}, {0.599385,0.120223}, {-0.635225,1.055321}, {-0.321093,-1.072140}, {0.301278,-0.518003}, {-0.301802,0.560499}, {0.404168,-0.160419}, {0.439423,-0.123051}, {-0.001024,-0.084182}, {-0.222399,0.398534}, {-0.032543,0.290847}, {-0.686894,0.642376}, {-0.376391,-0.292043}, {1.291833,-0.282113}, {-0.432943,0.047899}, {-0.268253,-1.565101}, {-0.079616,-0.299536}, {0.117126,-0.616435}, {0.920777,-1.547713}, {0.672508,-0.938412}, {-0.127227,0.039824}, {0.497527,0.137301}, {-1.150554,-0.242356}, {0.526140,0.662427}, {0.332716,0.387359}, {0.193252,-0.748491}, {0.879236,1.244841}, {-0.320852,0.438523}, {0.655207,0.250311}, {0.798317,-0.037761}, {1.759320,0.543552}, {0.796490,0.394488}, {-0.426451,0.104660}, {-0.596812,0.295484}, {-0.586590,-0.761865}, {-1.204936,1.145020}, {-0.858949,0.734240}, {0.417170,-1.861530}, {-1.380253,0.411880}, {0.940440,-1.547216}, {0.392789,0.067926}, {0.752023,-0.870322}, {0.120743,-0.084171}, {0.226500,-0.038959}, {-0.199741,0.982130}, {-1.435202,1.924533}, {-0.681303,-0.685655}, {-0.017819,0.316710}, {-0.419371,0.291876}, {-0.419993,-0.704322}, {-0.167402,-0.653200}, {0.689883,1.667397}, {0.656809,-0.191279}, {1.349286,0.707932}, {-0.417382,-0.503832}, {-0.314839,0.076203}, {0.018604,0.103821}, {-0.670877,0.305072}, {0.238125,-0.177294}, {-0.711169,0.115679}, {0.098621,-0.114667}, {-0.836724,0.797509}, {-1.266489,0.300376}, {-1.574358,-0.601570}, {0.109701,-0.625894}, {0.799278,-2.008089}, {0.734900,1.439041}, {-0.172757,0.297516}, {0.123756,0.251462}, {-0.605374,0.019162}, {-0.277414,0.527217}, {1.598600,-0.465976}, {0.478046,-0.621558}, {-0.032111,0.513916}, {-0.406663,0.473997}, {0.377026,-1.022417}, {0.261630,-0.600598}, {0.192450,-0.761462}, {-0.945120,1.662247}, {1.445931,-0.381166}, {0.796386,-0.527247}, {0.570342,-0.165144}, {-0.260445,0.197738}, {-0.396075,0.035099}, {0.438589,0.193911}, {0.279975,0.803087}, {-0.718632,-0.043015}, {-0.073136,-0.144147}, {0.091844,-1.245899}, {1.133630,1.064059}, {0.333917,-1.059628}, {-0.475974,0.272878}, {1.618769,0.338515}, {-0.026654,0.173819}, {-0.832746,-1.291872}, {1.459739,-1.787186}, {0.152053,0.719499}, {-0.845311,0.148728}, {0.096770,0.236791}, {0.788550,0.590381}, {0.589643,0.130083}, {0.556591,1.302659}, {-0.149560,0.050103}, {0.917707,-0.486145}, {-0.059802,1.519826}, {-1.072536,0.667091}, {-0.111194,1.228050}, {-0.229775,0.154698}, {-0.371433,0.541268}, {0.403110,0.104249}, {-0.766373,-1.209893}, {-0.133097,0.781221}, {0.018198,-0.190757}, {0.547760,-0.448064}, {-0.733735,0.187525}, {0.308738,0.575826}, {0.120420,-0.748615}, {-0.162974,-1.656815}, {0.495299,1.294132}, {0.284833,0.326106}, {0.304357,-0.029696}, {-0.114308,-0.998843}, {1.147646,0.007336}, {0.889660,0.377428}, {1.101746,-0.075572}, {-0.630002,0.224827}, {-0.447421,-0.680766}, {-0.398164,-0.758312}, {1.162091,0.872670}, {-0.153320,0.100257}, {-1.053855,-0.142606}, {-0.151297,-1.709248}, {-0.088670,-0.030046}, {-0.039511,-0.751111}, {-0.268719,0.233002}, {0.107060,0.944089}, {-0.528369,0.218636}, {0.379463,-1.271446}, {0.845463,-0.200500}, {0.449410,-0.308035}, {-1.125393,-1.368811}, {-0.707799,0.752393}, {0.224584,0.957984}, {-0.076844,-0.185815}, {-0.276454,-0.875122}, {-0.308372,-0.078258}, {0.710906,-0.432983}, {0.086967,-0.475256}, {-0.484939,-0.239784}, {0.527071,1.381910}, {1.207738,0.764537}, {-1.166732,0.156223}, {-0.928368,-0.713470}, {0.232623,0.248816}, {0.234335,-0.713494}, {0.506899,-0.538864}, {0.923647,0.164175}, {0.589798,0.487695}, {-0.068928,-0.289141}, {0.770468,0.393273}, {-0.850038,1.509075}, {-0.050092,-1.065967}, {0.044840,-0.642072}, {1.538218,-0.718189}, {-0.483958,0.310072}, {0.883513,0.423129}, {0.577394,-0.913756}, {0.369553,-0.000248}, {1.306622,-0.676905}, {-0.161439,-0.092252}, {0.124913,0.545292}, {-0.055785,-0.270095}, {-0.654485,1.619946}, {0.010064,-0.415884}, {0.561868,-0.574773}, {0.417682,0.121106}, {0.447357,-1.403651}, {0.036032,0.849953}, {-0.310738,-0.139296}, {-0.340548,1.709065}, {0.324753,-0.829858}, {-0.482715,1.278533}, {0.027337,0.634282}, {0.543259,-1.129644}, {-0.176542,0.641092}, {0.513499,0.270266}, {0.592728,1.200615}, {-0.168299,0.071350}, {-0.028778,-1.609077}, {0.100068,-0.177816}, {0.179793,0.405800}, {-0.550998,-0.189012}, {-0.374629,-0.335207}, {0.489373,-0.863435}, {-0.909667,-0.243295}, {-1.905582,0.828148}, {-0.322044,0.578390}, {0.172952,0.392945}, {-1.349845,-0.593467}, {0.385443,-0.834331}, {-0.520047,-0.256327}, {-0.168864,-0.011272}, {0.705916,0.337266}, {-0.613837,0.309663}, {0.732870,0.082069}, {-0.446717,0.037997}, {0.503221,-0.919048}, {-1.227801,-0.644395}, {-0.110226,0.472814}, {-0.153520,-1.426752}, {-0.372143,-0.995245}, {0.041903,1.617146}, {-1.716966,-0.094746}, {0.110050,0.506537}, {0.441591,0.285438}, {-0.422717,0.030475}, {-0.546275,1.427064}, {0.597491,-0.001582}, {-0.227799,0.278393}, {-0.711928,-0.389254}, {-0.316276,-0.045449}, {-0.246906,0.142129}, {-0.017644,0.530840}, {-0.846558,0.285732}, {0.024601,1.550225}, {0.135991,-0.281795}, {1.076094,-0.393152}, {0.469595,0.373539}, {0.700686,-0.192217}, {-1.044613,-0.031666}, {-0.172857,0.037056}, {0.216986,-0.221328}, {1.202936,0.262729}, {0.736136,0.660856}, {0.310616,-0.895782}, {0.756943,-0.860938}, {0.491193,0.919560}, {-0.391990,-1.038218}, {0.630603,0.076034}, {-1.672313,0.931548}, {0.031370,-0.235708}, {-0.059540,-0.730453}, {1.751460,-0.083331}, {-0.312742,1.042875}, {-1.327894,-0.601739}, {1.130657,-0.489036}, {-0.578349,-0.452027}, {0.442817,-0.010612}, {0.568033,0.646896}, {-0.209657,0.511084}, {0.185712,-0.492029}, {1.604476,-0.325909}, {-0.804376,-0.713345}, {-1.315856,0.385873}, {-0.221093,1.328622}, {-0.759605,0.387801}, {0.152179,-0.162878}, {-0.218474,-0.005204}, {0.375890,-0.799244}, {0.637063,-1.137409}, {0.594361,0.315677}, {0.645739,0.636245}, {0.658041,-0.321056}, {0.070071,1.391222}, {0.721141,-0.400061}, {-0.352948,0.195410}, {-1.271695,0.849227}, {-0.501393,-0.054339}, {0.423696,1.085774}, {-1.135309,0.703848}, {-0.274176,0.653380}, {-0.316789,-0.988309}, {0.711998,1.178853}, {0.467890,0.383039}, {-0.361315,0.586150}, {-1.992977,0.823878}, {0.390939,0.167472}, {0.110536,0.002095}, {-1.247517,-0.665658}, {0.121696,0.179633}, {-1.365006,0.556461}, {0.408822,-0.155980}, {-0.730116,0.123973}, {0.684268,-1.776762}, {-0.649453,-0.171713}, {-0.372612,-0.050829}, {0.376350,0.556347}, {-0.100789,-0.048297}, {0.535745,-0.486194}, {-0.461672,-0.184145}, {0.397655,-0.685573}, {-0.322562,-0.405548}, {-0.139347,0.980121}, {0.383183,-0.416704}, {0.405772,0.305710}, {1.287783,1.488584}, {0.032704,0.960170}, {-0.996629,-0.613880}, {0.344951,0.741074}, {0.012855,0.279797}, {0.059268,0.437106}, {1.099804,-0.690001}, {2.066302,-1.011066}, {-1.138329,0.358600}, {0.915106,0.661313}, {-0.890883,-0.368142}, {-1.368238,0.378705}, {-0.336150,0.507975}, {-0.706113,0.234963}, {-0.606888,-0.970039}, {-0.527169,0.523949}, {0.018031,-0.474310}, {0.741809,-0.091430}, {-0.009929,0.576888}, {0.874371,0.333460}, {-0.254588,0.654464}, {0.261702,1.313061}, {-1.277335,1.378973}, {-0.138901,-0.173082}, {0.924853,0.129874}, {-0.387252,0.001449}, {0.101334,-0.534299}, {1.166440,-0.414895}, {1.069226,0.257124}, {0.900367,-0.135723}, {1.218319,-0.472790}, {0.508176,-0.583053}, {0.556299,0.001431}, {0.941767,0.240470}, {1.019062,-1.238945}, {-1.044413,0.547817}, {0.739657,0.372119}, {-1.127057,-0.032632}, {1.021823,-2.155687}, {0.154893,-0.768565}, {0.222839,-0.891271}, {-0.021271,-0.349137}, {-0.498438,-0.404658}, {0.713753,-1.281305}, {0.516202,-0.400977}, {0.375070,-0.381473}, {0.611029,-0.695506}, {0.329870,0.978420}, {-0.440990,-0.627980}, {1.106160,-0.673187}, {0.330761,0.960060}, {0.002016,-0.375526}, {-0.418742,-0.230493}, {0.889310,0.259182}, {-0.743094,0.859461}, {-0.639141,0.046149}, {-0.825368,1.113567}, {-0.183710,-1.099516}, {-0.688241,0.048768}, {-0.567826,0.016499}, {-0.252604,-0.505972}, {0.125737,-0.032586}, {-0.289104,0.481842}, {0.197078,-0.361814}, {1.702697,-0.135121}, {-0.313162,-0.195712}, {0.373467,-0.638017}, {0.265985,0.688793}, {-0.930620,-0.543390}, {0.266031,0.127381}, {-1.131799,-0.707161}, {0.294857,-1.044248}, {0.844394,-1.509590}, {-0.012985,0.455971}, {0.934720,0.325752}, {0.477097,-0.617656}, {-0.186792,0.919832}, {0.661168,-1.463831}, {-0.052266,-0.007023}, {-0.417000,-0.630278}, {-0.201517,0.049327}, {0.324582,0.488122}, {-1.135622,1.088472}, {-0.839457,0.576660}, {0.776228,-0.246711}, {-0.060646,0.204187}, {-1.666099,-0.412724}, {-0.302620,0.413709}, {0.134609,-0.417098}, {0.667218,-0.505744}, {0.310204,-0.163001}, {2.227881,0.439271}, {-0.402395,-0.165319}, {-0.381247,0.233719}, {-0.070232,-0.083912}, {0.705271,0.505574}, {-0.574528,-0.237527}, {-0.097888,0.687548}, {-0.287092,-0.392327}, {0.771057,-2.105183}, {-0.424797,-0.712019}, {-1.141051,-0.262563}, {1.245465,-0.173175}, {-0.809671,0.478984}, {0.420857,-1.118626}, {-0.774501,0.206551}, {-0.371353,-0.523965}, {-0.475349,0.782751}, {0.354270,0.297627}, {0.429063,-0.301249}, {-0.253951,-0.024314}, {0.542049,0.210328}, {-1.288145,0.902746}, {-0.610673,-0.457713}, {0.560486,-0.045507}, {1.012326,0.160808}, {0.739327,0.227113}, {0.440689,-0.364347}, {0.043907,-0.902520}, {0.107084,-0.850966}, {-0.864312,-0.936915}, {-0.983595,1.279503}, {-0.826804,-0.510867}, {0.410159,-0.166249}, {0.234942,0.048679}, {-0.440864,-1.871740}, {-0.277232,0.058905}, {0.865167,-1.085117}, {0.323421,0.865950}, {0.078567,0.487181}, {-0.106628,0.112398}, {-0.701141,-0.631292}, {-0.241547,-0.907031}, {-1.058655,1.194515}, {-0.245933,-0.291151}, {0.090384,-0.078327}, {-1.804471,0.305652}, {-0.710208,-0.044177}, {-1.637185,0.634789}, {0.322701,0.202198}, {0.592642,0.027099}, {0.106661,0.220082}, {0.374884,0.031143}, {0.466431,0.144924}, {-0.435113,-0.045018}, {-0.812143,0.850339}, {-0.723946,0.392704}, {-2.151521,-0.712553}, {0.450893,-0.280685}, {0.819631,0.669219}, {0.173790,-0.823862}, {1.252888,-0.450119}, {-0.760925,0.126633}, {0.100797,0.669706}, {0.636397,0.644360}, {0.314358,0.426072}, {0.399418,-0.772800}, {-0.648593,-0.341262}, {-0.247134,0.264055}, {1.077773,0.975354}, {0.523563,-0.791219}, {-0.796902,-0.163962}, {-0.615911,0.149349}, {0.954916,-1.262222}, {0.678034,1.207517}, {-0.372992,-0.431473}, {-1.124813,-1.597092}, {-0.447033,-0.087720}, {-0.720631,0.709710}, {0.384703,0.910101}, {-0.247341,-1.476532}, {-1.241862,1.322373}, {-0.310325,0.816418}, {-0.050700,-0.416219}, {0.309471,-0.192610}, {0.371081,0.778064}, {-0.510419,-1.055190}, {0.127094,0.388637}, {-0.255658,-0.020784}, {-0.239095,-0.235771}, {0.860355,0.144748}, {0.175697,0.666209}, {0.161710,-1.018808}, {0.208616,-0.113253}, {0.322261,-0.153970}, {0.115609,0.527421}, {-1.142425,-0.174532}, {-0.867659,-0.160025}, {0.702013,-0.499588}, {-0.305717,-0.468403}, {1.015578,-0.486232}, {0.012654,0.647932}, {0.650411,0.663774}, {0.064881,0.712345}, {-0.408083,-0.026499}, {0.129269,0.557035}, {-1.311066,0.784364}, {-0.811294,-0.539442}, {-0.783403,-0.385913}, {0.661821,0.125770}, {-0.659564,0.069575}, {0.995148,0.349592}, {0.148861,-0.577855}, {1.019181,-0.324607}, {0.569564,-0.397281}, {0.908002,0.954231}, {1.214742,-0.616921}, {-0.173224,0.454581}, {-2.116294,-0.837803}, {-0.363546,0.105419}, {0.440872,0.067274}, {-0.101457,0.086710}, {0.335032,1.011214}, {-0.212784,1.709394}, {-0.609104,0.294062}, {0.257849,-0.420324}, {-1.753260,-0.996065}, {0.233278,0.392532}, {0.347599,0.585661}, {0.445643,-0.462247}, {1.049963,0.117133}, {0.839655,-0.356217}, {0.703241,0.033581}, {0.271280,-0.196860}, {0.065959,-0.921553}, {0.405906,-0.688962}, {0.098046,0.333902}, {-0.014572,0.211136}, {-0.737884,0.177744}, {-0.649906,-1.604793}, {0.293595,0.706452}, {-0.066643,1.517094}, {0.441195,-0.173964}, {1.195227,0.123771}, {-1.135443,-1.413717}, {0.006356,-1.017804}, {0.722946,0.103556}, {-0.003354,0.488708}, {0.474062,0.159755}, {0.324770,0.895972}, {-0.553939,0.154297}, {-0.103416,0.898922}, {-1.072220,-0.410260}, {-0.053047,-0.030047}, {0.070087,-0.725415}, {0.165223,-0.558910}, {0.782904,-0.136372}, {-0.041688,-0.135373}, {0.334520,-0.033481}, {0.801873,-0.133751}, {0.209301,0.597294}, {0.618379,1.223616}, {0.888198,-0.672384}, {-1.214205,0.041896}, {-0.207532,-0.540674}, {0.992363,-1.169905}, {0.940801,-0.242385}, {-0.708174,0.635987}, {-0.369966,0.143612}, {1.281108,0.086508}, {0.250887,-0.332167}, {-0.515793,-0.631672}, {1.136276,0.346349}, {-0.464252,1.668219}, {0.525805,-0.141030}, {0.999260,1.590780}, {0.605581,-0.060022}, {1.056390,-0.048178}, {-0.968752,0.185265}, {-1.340377,-0.330139}, {-1.046545,0.051473}, {-0.450882,0.258781}, {0.243010,0.998613}, {0.421506,-0.706489}, {0.656187,-0.851819}, {-1.749329,-0.182724}, {0.266263,0.302166}, {0.344290,-0.491448}, {0.946706,1.671205}, {1.056879,-0.219540}, {0.627745,-0.729454}, {0.433355,-0.250281}, {-0.200019,-1.300245}, {1.255424,-1.022037}, {-0.061801,-0.646340}, {-0.232252,0.533970}, {-0.395477,0.369443}, {-0.623953,-0.526531}, {-0.820382,1.716970}, {0.140594,0.061758}, {-1.036810,0.403211}, {-0.469993,-0.107368}, {1.205792,0.275994}, {0.959943,0.019721}, {0.573598,0.123293}, {-1.420059,-1.132904}, {0.290727,0.167288}, {0.365799,0.542990}, {0.516968,-0.612634}, {0.160027,-0.390477}, {-0.347292,0.029547}, {-0.004609,1.121404}, {-0.335175,-0.015666}, {0.908113,0.229171}, {0.545009,1.480549}, {-1.220973,1.093788}, {0.479628,-1.425169}, {-0.513786,1.062727}, {0.357421,-0.804394}, {-1.061941,0.223873}, {-0.385252,0.110396}, {-1.640287,-0.021951}, {0.623028,-0.060477}, {-0.550756,0.678768}, {0.135673,0.837449}, {0.751838,-0.180054}, {0.954815,-0.866757}, {0.604536,1.476877}, {-0.286459,0.372774}, {0.376627,-0.910916}, {1.217027,0.101736}, {0.011181,-0.874826}, {-0.722030,0.489939}, {0.311409,-0.260903}, {0.226439,-0.416559}, {-0.217666,0.618687}, {-0.882251,-0.420330}, {0.562126,-0.226552}, {-0.133127,-0.134644}, {0.969153,-0.508304}, {0.405205,-0.871967}, {-1.017625,0.079112}, {-0.736203,-0.949411}, {0.250579,0.868592}, {0.584736,0.487773}, {-0.200735,0.406254}, {-0.169967,-0.174164}, {-0.926833,-0.008126}, {-1.276335,-0.436210}, {-1.055847,-0.464811}, {1.382819,-0.892263}, {0.549810,-0.254992}, {-1.222183,-0.947043}, {0.548589,-0.517754}, {0.330987,1.018993}, {0.025173,0.069526}, {0.574042,-1.129914}, {1.165371,-0.221953}, {-0.047741,-0.296772}, {0.651998,0.263669}, {-0.694023,0.443470}, {-0.956615,-0.672689}, {0.016381,-0.458048}, {0.982982,-0.048522}, {0.181067,-0.514465}, {-0.391139,-0.223578}, {0.161096,-0.653129}, {-0.351802,-0.290479}, {-0.314563,0.489580}, {-0.146600,0.217679}, {-0.626463,-1.314274}, {-0.425276,0.036105}, {0.653590,-0.842355}, {0.326039,-0.509672}, {-0.469673,0.286035}, {-0.123351,0.467094}, {0.413046,1.210950}, {-1.022797,-0.785435}, {0.675002,0.772235}, {-0.862771,-0.220066}, {-0.231169,-0.567071}, {-0.022879,-1.662436}, {0.191818,-0.220743}, {-0.011754,-1.811256}, {0.535316,-0.223392}, {0.073030,1.008182}, {0.433603,1.040546}, {0.057488,-0.260627}, {-0.750304,-0.190874}, {-1.484162,-0.249188}, {0.555514,-0.171803}, {0.541373,0.623842}, {-0.324439,-0.112460}, {0.079769,-0.353481}, {0.330382,1.054412}, {-0.106034,0.995793}, {-0.382467,0.382232}, {-0.036929,-0.393942}, {0.511558,-1.203157}, {-0.669114,-0.507821}, {-0.717810,-0.040914}, {-1.754621,0.344004}, {-0.597845,-1.199356}, {1.760979,0.700903}, {0.625006,-0.444735}, {-0.348717,-0.247748}, {0.174249,0.142504}, {0.819233,0.294173}, {-0.031325,-0.221121}, {0.591852,0.560305}, {-0.018918,-0.672425}, {0.779234,-0.181712}, {-1.059580,0.442549}, {-0.326264,1.377449}, {-0.788614,-1.350767}, {0.216709,0.414704}, {0.220819,0.108199}, {-0.359007,0.600802}, {-0.309663,0.778317}, {0.757247,0.732882}, {-0.492180,0.313444}, {-0.869761,-1.301811}, {-0.125626,-0.676394}, {0.295449,-0.241053}, {1.054322,0.797473}, {-0.287078,-0.504316}, {-0.537100,-0.231610}, {0.613905,-0.234007}, {0.741154,0.141237}, {0.626367,-0.853201}, {0.755579,-0.402972}, {0.791054,0.600208}, {-0.063499,-0.518131}, {-0.489265,-0.036842}, {-0.949063,0.023314}, {-0.515292,-0.340645}, {1.479585,0.191550}, {-0.606714,-0.320708}, {0.466669,0.522580}, {-0.863079,1.451320}, {0.528683,0.847398}, {0.542235,-0.755739}, {0.118265,0.135243}, {-0.740312,-0.861944}, {-0.435756,0.830366}, {-0.109372,-0.213866}, {-0.553930,-0.845500}, {-1.099287,-0.297620}, {0.106898,-0.424559}, {-0.378716,0.193142}, {0.213494,1.033237}, {-0.853118,-0.760434}, {-0.206960,0.322096}, {0.515476,-0.382595}, {-0.452647,0.010086}, {-0.802250,-0.678852}, {0.294123,0.686175}, {0.858965,0.189241}, {0.605752,-1.104271}, {1.481873,0.508996}, {-1.116676,0.289812}, {-0.707222,-0.382630}, {-0.079025,1.156617}, {0.639524,-0.001944}, {-0.088679,-1.253192}, {-0.321477,0.741010}, {0.995588,-0.064482}, {-0.881360,1.360842}, {-0.297000,-0.072434}, {0.060998,0.138554}, {0.421436,-0.022213}, {0.600608,-0.843743}, {-0.093266,-0.799977}, {-0.270330,-0.551698}, {-0.586570,0.075585}, {0.535896,-0.937339}, {-0.196885,-1.152215}, {-0.824956,-0.668942}, {-0.259150,0.564970}, {1.163106,-0.343775}, {-0.211627,0.887391}, {-1.519484,-0.692918}, {0.630723,-0.711066}, {-0.804122,-0.662480}, {0.839553,1.605451}, {-0.326213,0.368434}, {0.059140,-1.102124}, {0.237029,0.146990}, {-0.696770,-0.008057}, {-1.171176,0.075899}, {-0.147349,0.040450}, {0.129807,-1.078745}, {-1.346480,-0.102841}, {1.923088,-0.340920}, {0.604509,-0.631306}, {0.830188,0.900687}, {-0.244172,-0.131295}, {-1.297096,0.273955}, {-0.851825,1.248525}, {-0.198894,-0.720303}, {0.603852,0.405432}, {0.164840,0.543281}, {1.671773,0.067980}, {0.038583,0.297031}, {0.507509,-0.744625}, {0.359393,0.748717}, {-0.212608,-0.358101}, {0.126437,1.165712}, {-0.248434,-0.585575}, {-0.263564,1.882286}, {0.197666,-0.007268}, {1.382641,-2.141275}, {0.372177,-1.454355}, {-1.179644,0.104261}, {1.106674,-0.282933}, {-0.265928,-0.626704}, {-0.561107,0.452555}, {-1.300538,0.287714}, {-1.015374,0.573758}, {-0.607617,-0.309770}, {-0.023152,-0.760109}, {-0.194123,0.599047}, {0.647420,-0.037263}, {0.106358,0.238426}, {-0.392097,0.094144}, {0.661177,0.412145}, {-1.399599,1.957816}, {0.148234,0.471031}, {0.286092,0.528837}, {-0.391787,0.921074}, {0.195292,0.118754}, {-0.136761,0.298155}, {-0.378985,-0.604095}, {1.371422,-0.622111}, {0.857070,0.509011}, {0.066269,-0.029824}, {-1.377703,0.529433}, {-0.694186,-0.441324}, {-0.257793,1.275458}, {-0.672277,-0.654115}, {-0.809306,0.145106}, {0.670659,-0.012692}, {0.157773,0.013152}, {-0.462958,-0.012297}, {0.827130,1.661564}, {0.397882,0.120724}, {1.117614,1.225687}, {0.476878,0.490050}, {0.724769,1.113002}, {0.586609,-0.560797}, {-1.361147,0.474845}, {-0.007226,0.580620}, {-0.701521,0.864232}, {0.994535,0.306268}, {0.370349,1.237807}, {-0.242788,-1.443067}, {0.473815,-0.479609}, {-0.389546,0.026009}, {-0.338480,0.878802}, {0.435504,-0.420076}, {0.889075,0.161873}, {0.138696,-0.566162}, {0.217055,0.953271}, {0.839538,0.048184}, {-0.059206,-1.142293}, {0.665060,-0.676547}, {0.221557,0.086282}, {-1.173015,0.335912}, {0.457360,-0.040303}, {0.575889,-1.213594}, {0.658439,-0.011276}, {-1.457696,-0.189237}, {-0.800412,0.566585}, {-0.102734,-0.661830}, {-0.348242,0.424874}, {0.353335,1.852790}, {1.435363,0.984674}, {0.405182,-0.313471}, {-0.641495,1.885674}, {1.945466,1.286943}, {-1.031042,-0.000691}, {-0.513774,-1.070626}, {1.364844,-0.285854}, {-0.121790,-1.095977}, {-1.249687,0.021067}, {-0.075555,0.781338}, {0.954208,-0.915902}, {-1.027627,-0.406509}, {-1.513386,0.885096}, {-0.487952,-0.456337}, {-1.052057,0.867359}, {-0.145713,0.278056}, {-0.756226,-0.964303}, {-0.446097,-0.089467}, {0.169928,-0.361224}, {0.397326,-0.307696}, {-0.034144,-0.246857}, {-0.696100,-0.538312}, {-0.534972,0.210185}, {0.816251,-0.647654}, {-0.705987,-0.908852}, {-0.615467,-1.097666}, {-0.159338,-0.149510}, {-0.937470,0.880936}, {-0.320957,-0.048574}, {-0.372401,-0.285898}, {-0.358402,-0.568311}, {0.708385,-1.254534}, {0.829644,0.011912}, {0.285381,-1.031588}, {0.017740,-0.349993}, {-0.022239,-0.439243}, {-1.430300,-0.497895}, {0.170766,-0.701765}, {0.175088,0.629816}, {-0.098450,0.984733}, {-0.506275,0.273047}, {0.386685,0.226191}, {-0.849597,0.026814}, {0.331172,-0.400903}, {-0.166717,0.322664}, {0.840811,0.163583}, {-1.492836,0.838920}, {-1.518271,0.133282}, {0.411785,0.665886}, {-1.288775,0.573578}, {-0.679826,0.216065}, {1.072059,0.678109}, {0.327039,0.057915}, {0.748172,-1.016021}, {0.766777,0.338616}, {-0.154979,1.088221}, {-0.233660,-0.592573}, {0.733229,-0.356964}, {-0.716623,0.333791}, {0.201190,-0.773714}, {0.312616,-0.148537}, {0.290474,-0.743141}, {-0.227709,-0.668733}, {-1.515149,1.270848}, {0.226198,-0.729829}, {-0.181346,-1.271070}, {-1.045326,-0.092295}, {1.642772,-1.645010}, {1.017090,-1.591010}, {0.095373,-1.289559}, {1.964387,0.348377}, {-0.950861,0.367564}, {0.556953,0.768761}, {-0.203486,0.439205}, {0.491570,0.168439}, {-0.687148,-0.295486}, {-0.740794,-0.566119}, {-0.024076,0.456466}, {0.109395,-0.274543}, {-0.793800,-1.014024}, {0.292454,0.541633}, {-0.595307,0.963837}, {-0.657843,-0.867296}, {0.204862,-0.344086}, {-0.578269,-0.345403}, {-0.780437,-0.385625}, {-0.273820,0.505994}, {1.004484,-0.156356}, {-0.868964,0.266448}, {0.143031,-0.803470}, {0.101618,-0.081850}, {0.193181,-0.062062}, {-0.861275,0.852923}, {0.288135,-0.426406}, {-0.928134,0.099686}, {-0.181721,1.615686}, {-0.136660,0.020212}, {0.072772,0.114802}, {0.202198,-0.238392}, {-0.251007,0.316880}, {0.349716,-0.792136}, {-1.213064,-0.842004}, {0.862678,-0.028549}, {-0.973473,0.006869}, {0.233388,-0.345947}, {1.041065,0.708671}, {0.324049,-1.771873}, {-0.185275,0.653364}, {0.628341,0.054329}, {-0.164341,0.487005}, {0.393343,-0.037375}, {-0.532730,1.366482}, {0.106510,0.798337}, {-0.801100,-0.368808}, {0.492501,-0.594827}, {-0.157276,-0.210969}, {1.430722,-0.123353}, {0.869858,-0.330376}, {-0.870905,-0.576319}, {0.488152,-0.077766}, {-1.352852,-0.983699}, {-0.071516,0.008669}, {0.038294,-0.659775}, {-0.638838,-1.453811}, {0.365078,0.936548}, {-0.176761,0.029567}, {-0.637139,0.811721}, {0.199638,-0.298378}, {-0.555570,0.019142}, {-0.091645,0.610158}, {0.877453,0.174360}, {-0.568953,0.103565}, {-0.832229,0.324979}, {0.712774,0.870009}, {-0.278872,-0.588582}, {0.435542,0.494374}, {-0.065868,0.021952}, {1.423758,-0.393834}, {-0.477059,0.827165}, {0.627414,-0.276227}, {1.000520,0.682515}, {0.607696,0.206943}, {-0.154464,0.495945}, {-0.124329,-0.829138}, {-0.087112,-0.220509}, {-0.465875,-0.382839}, {-1.017272,0.487396}, {-0.547511,0.237748}, {-0.038977,0.393638}, {1.026923,-0.597241}, {-0.621617,-0.717375}, {0.667387,0.914740}, {-0.608364,-0.851361}, {0.615870,0.510211}, {0.292743,0.514543}, {0.347583,1.275365}, {0.200986,-0.420921}, {1.374615,-0.215986}, {-0.414803,0.434964}, {-1.476929,-1.362368}, {0.636865,0.488148}, {1.114926,0.262444}, {0.082692,-0.670997}, {1.966723,1.124746}, {-0.046586,-1.173584}, {-0.363377,-0.208166}, {0.501587,0.594431}, {-0.168038,0.767871}, {0.323440,0.680381}, {1.067349,0.560431}, {-0.772885,-1.138626}, {0.518494,0.322721}, {0.685843,-0.056191}, {0.787104,-0.784384}, {0.609174,-0.220906}, {-0.006505,0.671218}, {0.460238,-0.684338}, {0.438095,1.508562}, {0.009417,0.237749}, {0.393314,1.196541}, {-0.583606,1.070722}, {-0.169269,-0.926174}, {-0.066992,-0.301332}, {0.497741,-1.198867}, {-1.090838,0.548678}, {-0.004155,-0.024343}, {-0.612437,-0.656401}, {-0.663257,-0.093885}, {-0.174069,0.911494}, {0.367565,0.610990}, {-0.144097,-0.435430}, {1.104616,-1.845717}, {-0.972594,0.334831}, {-0.794574,-0.392847}, {0.311997,0.561151}, {0.586292,-0.042105}, {-1.605228,-0.279692}, {-0.382017,2.388282}, {1.055212,0.335750}, {0.209281,0.138650}, {-0.385178,-0.272430}, {0.548245,-0.025245}, {-0.638262,-0.021417}, {-1.294383,-0.197757}, {0.423815,0.591952}, {-0.071987,-0.562847}, {-0.126977,1.038596}, {0.496448,0.840634}, {-1.185477,0.042048}, {-0.823043,-0.368610}, {1.008274,-0.231597}, {-0.660260,0.296490}, {-0.743515,0.208480}, {0.379941,-1.003447}, {0.968945,0.294877}, {-0.698481,-1.144907}, {-1.162786,0.387927}, {-0.293235,0.428785}, {0.718636,-0.315848}, {0.107103,-0.828505}, {0.356476,-0.645877}, {0.505071,-0.331163}, {-0.649298,-0.398312}, {-0.090610,-0.074341}, {0.200451,-0.421806}, {0.908067,-0.168388}, {-0.846288,0.033026}, {-0.189659,-0.925072}, {-0.023812,0.459475}, {1.602866,0.714233}, {-0.575714,-0.238446}, {0.846762,-0.832419}, {0.120918,0.182480}, {-0.570597,-0.373300}, {0.419728,0.612563}, {-0.320002,-0.948555}, {0.318035,-0.186493}, {-0.127286,0.112951}, {-0.141023,0.135715}, {1.060583,0.677137}, {0.101330,0.199317}, {0.803035,-0.452390}, {-0.340576,0.650283}, {0.902556,-0.144691}, {-0.893404,0.858889}, {-0.007600,-0.345112}, {0.111926,-0.168442}, {1.039893,-0.469075}, {0.240538,-0.826278}, {0.826768,0.578478}, {1.046184,0.665426}, {0.038550,0.215966}, {-0.635648,0.508181}, {-0.146230,0.638788}, {-0.362399,-0.629495}, {0.542586,0.843847}, {0.167182,-0.792296}, {-0.855717,0.083743}, {-1.036334,-0.085065}, {-0.324723,-0.030988}, {-1.833660,-0.410648}, {-0.001357,-0.829866}, {-0.104752,-0.284616}, {-0.816835,-1.210435}, {-0.052255,-0.543345}, {-0.367505,0.092323}, {-0.736559,-0.520296}, {0.201749,0.054396}, {-0.199049,0.602651}, {0.404682,-0.309862}, {-0.317471,1.036744}, {-0.098938,-0.818030}, {-0.814101,-1.260633}, {0.763575,0.457821}, {0.358938,-0.131199}, {-0.301845,0.650210}, {-0.029168,-0.595484}, {-0.369691,0.223720}, {0.194581,0.025750}, {-0.460265,0.156045}, {0.305830,0.208558}, {0.223866,0.641668}, {0.026609,0.558788}, {0.356247,0.373533}, {0.237883,-1.069953}, {0.147891,-0.805516}, {0.188977,-0.068435}, {0.292733,-0.380567}, {0.221952,1.563443}, {0.345474,-0.145997}, {0.562837,0.992170}, {0.931969,1.306009}, {1.241908,0.118149}, {0.565906,-0.246496}, {-0.585196,0.203570}, {0.711276,-0.200387}, {-0.376149,0.513875}, {1.192035,-0.156803}, {-0.862564,0.588024}, {0.388852,-1.356642}, {0.725190,0.687537}, {0.257052,0.151601}, {0.411402,0.594166}, {-0.047136,-1.330878}, {1.164207,-0.046186}, {-0.200303,0.780709}, {-1.433552,0.524817}, {0.560902,0.219424}, {1.472746,0.370998}, {0.004523,0.852842}, {-0.707314,-0.502471}, {-0.705225,-0.568235}, {-1.031248,0.407625}, {1.060594,0.382613}, {1.464419,-0.586019}, {-0.605902,-0.458757}, {0.929307,0.153506}, {-0.016372,0.282450}, {-1.208132,-0.830801}, {-0.126240,-0.367972}, {-0.499330,0.674812}, {1.438503,0.217270}, {0.740691,0.305890}, {-0.108512,0.515161}, {-0.078081,-0.658439}, {0.032558,-0.295751}, {-0.340864,-0.476425}, {-0.013541,1.071300}, {-0.316971,0.276887}, {-0.154365,-0.266247}, {0.612401,0.295050}, {0.668963,-0.540567}, {0.158289,0.472776}, {-0.166571,1.587298}, {-0.159732,0.238475}, {0.347017,0.964527}, {0.004723,1.073330}, {0.829038,-0.522273}, {-0.541649,0.245743}, {-0.766282,-1.376811}, {1.171373,-0.879527}, {0.569829,0.378677}, {0.416307,0.145570}, {-0.123077,-0.283547}, {-0.896898,0.201798}, {-0.435349,-0.464885}, {1.650033,0.637224}, {0.965961,0.150970}, {1.166701,0.751840}, {-0.127525,0.401022}, {0.092153,0.492356}, {-0.022106,0.491025}, {0.385129,1.227755}, {-0.436923,0.728795}, {-0.022073,-0.802340}, {1.216361,-1.280683}, {-0.519844,-0.069400}, {0.409208,-0.807452}, {-0.368572,0.226689}, {0.076268,0.839854}, {0.287471,-0.764709}, {1.363614,0.454507}, {-1.102576,0.253968}, {-0.046986,-0.270808}, {-0.736602,0.092040}, {1.165091,-0.216918}, {0.127164,0.453077}, {-0.886593,0.861856}, {0.158112,-0.594493}, {-0.030994,0.470361}, {-0.261688,0.126497}, {0.600867,0.028243}, {-0.982395,0.004090}, {-0.507128,-0.005293}, {-0.731200,-1.445173}, {-1.293737,-0.514366}, {0.105943,-0.405240}, {0.207327,-0.755563}, {-0.023598,0.754680}, {1.402186,-0.206298}, {-0.127333,0.036313}, {1.399904,-0.297810}, {-0.974748,0.286854}, {1.124209,1.335946}, {-0.128752,0.673476}, {0.713310,0.757828}, {-0.843100,-0.537106}, {-0.715673,0.477791}, {-0.382188,-0.826056}, {0.390282,-0.250610}, {0.514525,1.058072}, {-0.896554,1.141563}, {0.829613,0.348516}, {0.238624,0.417594}, {-0.105300,-1.182838}, {1.532616,-0.028817}, {-0.894122,-0.090487}, {-0.389445,0.360247}, {1.821895,0.589262}, {-1.125450,0.413939}, {0.161053,1.207355}, {-0.222854,0.366948}, {0.533803,0.516122}, {-0.531179,-0.721872}, {-0.763610,0.387296}, {-1.006094,-0.714480}, {-0.053524,2.039535}, {0.715739,-0.315490}, {0.112799,-0.374255}, {0.012495,-0.075747}, {0.777265,-1.168285}, {-0.030666,-0.933422}, {-0.621612,0.877107}, {1.613176,-0.222628}, {0.762815,0.849391}, {-0.616282,0.927940}, {-0.508595,-0.736129}, {-0.282486,0.049873}, {0.685474,-0.516179}, {-0.167842,-1.278946}, {-0.341434,0.561593}, {-0.450187,0.553444}, {-0.284804,0.812548}, {0.660818,0.289406}, {-0.851014,-1.087384}, {-0.046101,1.015682}, {-0.127992,-0.773456}, {0.306108,-0.585527}, {0.058395,1.365709}, {-1.008366,-0.490221}, {0.982199,0.335153}, {-0.577732,0.243236}, {0.835171,1.062171}, {0.861717,-0.878783}, {0.076238,0.653993}, {0.882457,-1.182033}, {0.395471,0.707660}, {0.175015,0.113237}, {-0.326660,-0.420746}, {-0.270266,-0.064866}, {1.219132,0.257211}, {0.532239,-1.366118}, {-0.063139,0.364975}, {-0.538459,-0.301802}, {-0.066699,1.443469}, {1.349248,-0.063832}, {0.640151,-0.177954}, {-0.281434,-0.418631}, {0.205809,0.035216}, {-0.593818,-0.007308}, {0.083672,-0.018417}, {0.229748,-1.197985}, {0.617426,-0.238514}, {0.627780,1.027152}, {-0.525954,0.502738}, {-0.494039,0.268553}, {-0.565555,1.133933}, {0.692407,-0.156891}, {-1.132269,-1.404156}, {0.952331,0.232551}, {0.542762,0.026346}, {-0.223407,-0.463245}, {-0.889800,-1.076883}, {1.183630,0.315594}, {-0.424457,-2.145227}, {2.273507,0.093040}, {1.217376,-0.209756}, {-0.118041,0.061581}, {-0.281683,-0.337646}, {0.681924,-0.618740}, {0.366107,0.349009}, {0.162105,-0.360180}, {0.626527,-0.551253}, {-0.406674,1.130650}, {-0.210328,-0.182414}, {0.362503,-0.512021}, {-0.628315,-0.024001}, {0.504299,0.803734}, {1.120537,0.920166}, {0.908672,-0.033387}, {-0.253838,1.298045}, {0.481005,0.131980}, {-0.135943,0.437193}, {0.267186,0.026759}, {0.542714,-0.264004}, {-1.206726,-0.419685}, {-0.699274,0.238968}, {0.463989,-0.510916}, {0.043349,-0.214415}, {0.160823,0.541792}, {-0.242431,-0.210894}, {0.511331,-0.176104}, {1.048913,0.488046}, {0.365260,-0.066836}, {-1.066309,-0.093985}, {0.542119,0.501833}, {-1.244972,-0.372142}, {-0.753972,-0.096356}, {-0.291842,0.016194}, {-0.477053,-0.804632}, {-0.078449,-0.379581}, {0.753739,-0.537456}, {0.100513,-0.310604}, {1.368776,0.717445}, {0.764968,-0.075108}, {0.053403,0.448399}, {0.582609,-0.788861}, {0.049464,-0.413320}, {-1.015383,-0.153174}, {-1.441094,1.226203}, {-0.935850,0.636812}, {0.714004,-0.531381}, {-0.467397,0.354665}, {-0.132670,0.678550}, {0.491754,-0.263982}, {0.137027,-0.063034}, {-0.320801,0.061453}, {-0.682060,0.697585}, {0.772583,-0.400500}, {-0.702765,0.154811}, {0.248536,-0.291513}, {1.213524,-1.416038}, {-0.169976,-0.794819}, {0.012138,0.740188}, {0.700987,-0.962213}, {0.654398,1.372495}, {0.267751,0.491715}, {0.380491,-0.409166}, {0.697133,-0.296663}, {-0.210519,0.303294}, {-0.557089,0.942688}, {0.250830,0.597076}, {0.836891,0.383697}, {-0.781979,-1.371013}, {-0.312390,-0.764450}, {-0.475572,0.060645}, {0.756715,-0.479073}, {-0.018402,0.967757}, {-1.118602,0.402060}, {-0.050789,0.033776}, {-0.378991,-0.301264}, {0.550866,-0.472333}, {0.695695,-0.564736}, {-1.022700,0.001319}, {-0.995349,-0.179992}, {-0.160696,-0.561579}, {-1.238996,1.005039}, {0.164585,0.869884}, {-0.474996,0.425370}, {-0.437417,1.116224}, {-0.429658,0.009218}, {-0.525544,-0.272148}, {0.695156,-0.102539}, {-0.850466,-0.358257}, {0.079718,-1.212420}, {0.484277,0.505628}, {0.433427,0.521144}, {1.357588,-0.280115}, {-1.050502,0.461743}, {0.092603,0.569536}, {0.031757,0.460663}, {-0.412955,0.613726}, {-0.236422,-0.089493}, {0.459335,0.304540}, {-0.753505,-0.235785}, {0.355571,-0.811544}, {0.221435,-0.954573}, {-2.346443,1.114150}, {-0.490478,0.349986}, {-0.652118,0.839932}, {0.946405,-0.288780}, {0.892454,0.348067}, {0.154899,0.070845}, {-0.145795,0.359580}, {1.398316,-0.468739}, {1.048537,0.085309}, {-0.840074,-0.159959}, {-0.514107,0.060504}, {-1.325402,-0.340374}, {0.838967,0.991954}, {-1.218276,-1.408265}, {0.335541,-0.565783}, {-0.954269,0.937467}, {-0.559335,-0.134362}, {1.943719,-1.403866}, {-0.460487,-0.682805}, {0.681467,-0.850286}, {-0.644147,0.907500}, {-0.369335,0.124141}, {-0.290076,-0.249195}, {-1.372572,0.399371}, {-0.216078,0.112425}, {0.202706,-0.571132}, {0.007932,0.238452}, {0.622883,-0.361681}, {-1.659769,-0.052142}, {0.913395,-0.548796}, {-1.546375,-0.177939}, {0.033195,0.124151}, {-1.002228,0.568683}, {-0.552731,-0.057954}, {-1.386417,-0.250903}, {-0.685426,0.169422}, {-0.419053,-0.687470}, {0.203790,1.177844}, {0.101606,0.434861}, {1.212102,-1.394154}, {-0.376188,0.550320}, {0.845756,0.440839}, {0.313480,-0.822269}, {-0.806734,-0.209968}, {0.235863,-0.633919}, {-0.345711,-1.139946}, {0.420142,0.087180}, {0.522750,0.494215}, {-0.415381,-0.544665}, {-0.805989,-0.717142}, {0.591845,-0.006759}, {-1.082991,-0.056471}, {-1.529968,1.037963}, {-0.255855,-1.785748}, {-0.454847,-0.034732}, {-0.272457,0.141042}, {-0.539356,0.233351}, {-1.123501,0.381575}, {-1.362791,-0.485143}, {0.867246,-0.554638}, {-0.592859,-0.071347}, {0.029115,0.338592}, {0.892906,-0.530447}, {-0.942275,-0.950575}, {0.681004,-0.812727}, {-0.682861,-0.748591}, {0.852113,0.476257}, {0.789010,-0.330489}, {0.615453,0.653533}, {1.319493,-1.499355}, {0.423842,-0.348825}, {0.157478,-0.767351}, {1.477448,1.666978}, {0.067225,-0.415903}, {0.744507,-0.884219}, {0.040268,0.058540}, {-1.735353,0.366785}, {0.153680,0.237515}, {0.667468,0.542703}, {0.436021,0.493232}, {0.563348,-1.182141}, {-0.003835,-0.322843}, {-0.656232,-0.176493}, {-0.873231,0.360992}, {0.136123,1.085468}, {-0.510539,0.320659}, {-0.312098,0.046118}, {-0.421199,-1.437631}, {-0.215423,0.161690}, {1.307419,-0.284457}, {-0.563560,-0.119780}, {-1.600169,0.228748}, {-1.421886,0.023649}, {-0.189495,0.797349}, {-0.165802,0.372003}, {-0.221700,-0.219905}, {0.534275,-0.120511}, {-0.248351,-0.805280}, {0.034413,0.744190}, {-0.642193,-0.452466}, {-0.599072,-0.680422}, {-1.724224,0.426709}, {-0.790234,-0.730923}, {0.088659,-1.035535}, {-0.275351,-0.733153}, {-1.102652,-0.046605}, {-0.757406,0.374197}, {1.053567,-1.538006}, {0.088439,-0.294301}, {0.516494,0.576207}, {0.909468,-0.056118}, {0.067821,-0.686035}, {-1.044428,0.968891}, {0.557625,-0.843896}, {-0.446400,0.872971}, {0.354836,1.692407}, {-1.197610,-0.164863}, {1.193169,-0.074590}, {0.564380,-0.167004}, {1.458768,0.101084}, {-1.659323,-0.179509}, {-0.637948,-1.333850}, {0.521633,-0.111609}, {0.159952,0.245567}, {0.557457,0.552443}, {-0.541189,-0.269047}, {0.178323,0.718181}, {-0.148046,1.282756}, {0.396217,-0.918592}, {-1.196000,-1.302291}, {-1.147016,1.087835}, {-0.697901,0.120563}, {-0.416445,-0.085792}, {-0.575136,1.047383}, {-0.108410,0.806852}, {0.103438,0.190436}, {-0.514501,0.205539}, {-1.158432,0.436651}, {1.837359,0.282446}, {2.898165,0.605520}, {-0.638636,-1.383828}, {-0.422205,-1.159697}, {0.439481,1.089898}, {-0.440211,0.267563}, {0.055757,-0.465994}, {0.203813,-1.372535}, {-0.369227,-0.991863}, {0.502829,0.205971}, {-0.168711,0.991037}, {-0.441042,-0.002326}, {0.323292,-0.197988}, {0.245345,0.967783}, {-1.106120,-0.247019}, {-0.701892,-0.940481}, {0.089337,0.099586}, {-0.484300,0.499526}, {1.270932,0.213534}, {0.769257,0.759910}, {-0.001945,0.582357}, {-1.013147,0.480989}, {0.541451,0.216142}, {0.984260,-0.129450}, {0.593683,-0.154239}, {-1.381179,1.039958}, {0.586204,-0.209757}, {0.373642,0.368349}, {0.322644,0.122887}, {-0.760574,0.101006}, {-0.369533,0.356949}, {0.793169,0.343188}, {-0.088122,-0.026515}, {-0.134987,-0.622070}, {-0.209032,0.730416}, {-0.633736,-0.964829}, {0.004523,0.680249}, {-0.251489,-0.161656}, {-1.236883,0.834379}, {0.158569,-0.243367}, {-0.728852,0.382640}, {0.132910,-0.265206}, {0.491294,1.636521}, {-1.199529,-0.648592}, {0.655339,-0.600365}, {-0.088940,0.359795}, {-0.344506,1.674392}, {-0.074931,-0.684859}, {-0.600775,0.495819}, {0.546661,-0.283537}, {0.816700,1.018373}, {1.345432,0.093005}, {-0.429347,-1.242027}, {-0.195153,0.520674}, {0.051187,-0.285221}, {-0.157695,0.732045}, {0.525571,0.750470}, {-1.647741,0.695828}, {0.729457,-1.305992}, {-0.156214,0.275815}, {-0.271609,-1.109912}, {-0.884156,1.468249}, {0.772042,-0.843589}, {1.124620,0.188741}, {-0.613738,-1.412528}, {1.392810,0.203713}, {0.414216,-0.811126}, {0.049929,-0.015404}, {-1.845246,0.585689}, {0.311221,-0.174248}, {0.322036,0.428788}, {0.323903,-1.877702}, {0.723333,-0.843178}, {-1.316829,-0.626211}, {-0.457250,-0.296858}, {0.460788,-0.256206}, {1.858779,0.618149}, {1.520473,0.618939}, {0.182818,-0.609792}, {0.093293,-0.511200}, {-0.796530,0.280311}, {0.314653,0.441506}, {0.145929,-0.171299}, {0.989340,-0.023398}, {0.382977,0.962526}, {-0.234472,0.204414}, {-0.168631,0.970621}, {-0.359397,-0.238005}, {-1.160084,-0.108981}, {1.026957,0.611603}, {0.594561,0.074036}, {-0.703831,-0.612982}, {-0.920383,0.335892}, {0.779956,-0.290330}, {0.160028,-0.530884}, {-0.462821,-0.124964}, {-0.021306,-0.500310}, {-0.640899,-0.880880}, {-0.168131,0.249834}, {-0.181111,0.256184}, {0.201675,-1.172094}, {-1.107592,-0.654002}, {0.618958,-1.100837}, {-0.613276,-0.606221}, {0.589475,0.793413}, {-0.799120,-1.033400}, {0.461943,0.180295}, {-0.992388,0.078304}, {0.249753,-0.552251}, {1.140054,0.813340}, {-0.380441,-0.427859}, {0.140464,-0.478517}, {-0.693361,1.211238}, {0.156036,-0.216601}, {0.403554,-1.008049}, {-0.867654,1.706051}, {-0.451461,0.206311}, {-1.312167,-0.321273}, {0.304323,1.501758}, {-1.237910,0.416220}, {-0.246990,-0.517017}, {0.921878,1.665267}, {0.680523,0.333206}, {-0.250695,-0.780680}, {0.017056,-1.185064}, {0.833909,-0.065707}, {-1.048432,-0.304359}, {-0.079640,0.971286}, {0.860137,1.148088}, {-0.222327,0.443586}, {0.569845,0.484530}, {0.709289,0.527264}, {-0.437060,1.058135}, {0.441519,0.926605}, {0.563086,-0.036039}, {0.731869,1.018196}, {0.715868,-0.555336}, {0.083263,-0.392260}, {-0.432371,0.271707}, {-0.323319,0.838910}, {-0.250503,-0.369677}, {-0.341576,-0.046356}, {1.703584,0.832092}, {0.305570,0.700940}, {0.313809,0.320696}, {-0.232152,-0.195104}, {-0.160822,0.383805}, {-0.782644,0.821497}, {0.317483,0.561839}, {0.292112,-0.787810}, {0.682217,-0.036886}, {-0.234958,-0.342815}, {1.489802,0.394218}, {-0.780212,0.082822}, {0.012921,1.219529}, {-0.309442,1.310485}, {0.805021,0.916130}, {-0.164403,-0.490808}, {-2.442305,0.477766}, {0.306204,0.782185}, {-0.642253,0.034201}, {-0.734342,0.374860}, {-0.534225,-0.141448}, {-1.039800,0.243934}, {-0.758901,0.139142}, {0.772172,-0.221432}, {-0.227259,-0.494436}, {-0.797240,0.203608}, {-0.526939,-1.003768}, {0.604457,-0.836335}, {-1.042733,-1.031733}, {0.351133,-1.552611}, {0.193510,-0.593573}, {-0.158616,-0.000909}, {0.477336,0.765709}, {0.294301,-0.549073}, {2.252452,0.421725}, {-0.648990,-0.424124}, {-0.564920,-0.189999}, {-0.270131,0.078961}, {0.772736,0.336949}, {0.313340,-0.927747}, {-0.573263,0.583021}, {0.470820,-1.055331}, {0.581432,0.212701}, {-0.711626,0.384798}, {0.162031,-0.175657}, {0.742236,-0.643734}, {0.803206,-0.132745}, {0.613025,-0.690771}, {0.291435,1.290752}, {0.501168,0.658611}, {-1.443138,-0.434044}, {0.661785,0.822570}, {-1.374180,0.778183}, {0.382538,-0.753720}, {-0.517099,0.294458}, {0.849115,0.536175}, {1.511322,-0.255960}, {-0.446477,-0.510725}, {0.351935,-0.058662}, {-0.309950,-0.683659}, {-0.315003,0.260157}, {0.056499,-0.463872}, {-0.865618,-0.396466}, {-1.294184,0.061282}, {1.011925,0.144531}, {0.932576,-0.379779}, {1.018562,0.158520}, {-0.048017,0.052001}, {-0.917482,-1.278635}, {-0.098721,-0.152092}, {1.017871,0.028110}, {-0.268018,-0.393909}, {0.293293,0.208300}, {-0.580657,-0.411407}, {1.031302,0.428409}, {1.910617,-0.467351}, {-0.831919,1.592028}, {0.663417,-0.384198}, {1.046530,-0.066088}, {0.351843,0.024416}, {0.571277,-0.833007}, {-0.079296,-0.149397}, {0.413530,-0.701706}, {0.210312,-0.385820}, {-0.140847,-0.268188}, {0.139115,1.298546}, {-1.143262,-0.441174}, {-0.027645,0.535143}, {-0.405058,-0.616212}, {0.316847,-0.050931}, {0.349966,-0.763656}, {-0.103767,0.410991}, {-1.917632,-0.571364}, {-0.242820,-1.010565}, {-0.127771,-0.753536}, {0.604908,-0.475209}, {0.013372,0.837038}, {0.608820,0.079690}, {-0.142643,-0.181203}, {-0.281800,-0.574404}, {1.254414,0.387417}, {0.880432,-0.334068}, {-0.222264,-1.359749}, {-0.157873,0.904339}, {-0.249764,-0.463576}, {0.667664,0.499756}, {-0.267900,0.673011}, {0.640840,1.260412}, {0.484117,-0.429452}, {0.592152,-0.003510}, {0.506192,-0.201848}, {1.247699,0.171432}, {0.353386,0.996887}, {0.078137,-0.308590}, {-0.018745,-1.037419}, {1.093397,0.245313}, {0.750051,1.199990}, {-0.094081,-0.586781}, {0.051596,-0.731723}, {0.455013,1.276353}, {-0.195394,-0.845165}, {-0.520628,0.355488}, {-0.688832,-0.070661}, {0.375953,0.177470}, {1.142021,0.354608}, {-0.475901,0.038190}, {0.364796,0.118211}, {-0.675976,-0.263314}, {-0.552894,0.232846}, {-0.464710,-0.158232}, {-0.258691,-0.053579}, {0.279914,-0.374251}, {-0.442636,-0.032047}, {-0.444012,-0.548113}, {-0.360146,0.089110}, {0.490385,0.171563}, {1.123041,-0.550139}, {0.543533,0.079109}, {-0.637200,-1.014626}, {0.046707,-0.245370}, {-0.257292,1.703984}, {-0.071662,-0.589401}, {0.108536,0.405153}, {-0.344097,0.282119}, {-0.245578,0.106487}, {-0.401110,-1.258960}, {0.107488,0.353920}, {0.608643,-0.021585}, {0.440527,-1.022432}, {0.213325,0.187777}, {-0.052628,-0.281017}, {0.235210,0.007120}, {-1.235719,0.155901}, {-0.268724,1.113432}, {-0.121335,0.019839}, {0.189913,1.015487}, {0.865889,0.697982}, {0.197149,0.792114}, {-0.117071,0.639035}, {-1.306955,0.275980}, {0.252452,0.322515}, {-0.529397,-0.478036}, {0.936446,-1.395706}, {0.400833,0.024500}, {-0.502883,-0.102895}, {0.273595,0.753245}, {-0.343074,0.091902}, {0.304226,-0.867240}, {-0.180509,-1.078705}, {-0.205455,0.858649}, {0.774539,0.517635}, {-0.823959,0.593452}, {0.732369,0.153099}, {0.672588,-0.633125}, {0.002290,-0.941901}, {0.176569,-0.579932}, {0.171845,-0.870413}, {-0.293425,0.175049}, {-0.137718,0.217686}, {1.044936,0.061606}, {-0.758815,0.807341}, {-0.336751,-0.164385}, {1.008626,0.256348}, {-0.723706,0.047971}, {-0.050905,-0.353985}, {0.390970,-0.158517}, {0.119335,0.109838}, {-0.041174,-0.673703}, {-0.556070,-0.401985}, {-0.509192,0.543375}, {0.625149,-0.084801}, {-0.744969,0.178757}, {-0.163163,0.168014}, {-0.749477,0.577796}, {-0.154530,0.089817}, {0.437073,-0.946214}, {-0.116608,-1.099246}, {0.666880,0.264435}, {0.474793,-0.843138}, {0.617247,0.069116}, {0.294487,0.030065}, {-0.337986,0.559117}, {-0.227776,0.882621}, {1.101572,-1.080786}, {0.070565,-0.664384}, {-0.451764,-0.457432}, {-0.576313,-0.841245}, {0.068010,0.274456}, {-0.710972,1.045372}, {-0.080175,-0.636644}, {-1.167785,-0.908857}, {-0.040623,0.027782}, {2.470891,-0.352323}, {0.225188,-0.216579}, {-0.911285,-0.883839}, {1.575339,0.857027}, {-0.480260,0.028266}, {-1.400611,-0.208040}, {-0.607262,0.315214}, {-1.413554,-0.086775}, {-0.078748,0.091694}, {-0.823326,-0.045219}, {0.179688,0.157220}, {0.503945,-0.069413}, {0.384609,1.810637}, {-0.036682,0.018567}, {-0.630811,-0.597114}, {-0.672791,-0.931285}, {1.222804,1.107029}, {-0.313392,0.591602}, {1.095544,1.771690}, {-0.798560,1.745435}, {1.543951,0.832816}, {0.126556,1.114287}, {0.213435,1.321216}, {-0.224136,-1.359183}, {1.477972,-0.350192}, {-0.077844,-0.795493}, {-0.231997,-0.564458}, {0.801618,-0.460815}, {-1.183569,1.681266}, {0.800365,-1.537642}, {-0.329589,-0.279386}, {0.146069,-0.294189}, {0.197825,0.827717}, {-0.649584,1.974452}, {-1.281819,1.044606}, {0.908785,-0.571095}, {1.096563,-0.008991}, {1.743241,0.314216}, {0.653207,0.687347}, {-0.304444,-0.200533}, {0.317770,0.204985}, {1.680031,-1.270921}, {0.013470,0.101117}, {0.035178,0.125471}, {-0.496304,-1.027426}, {-0.803857,-0.277048}, {0.785028,-0.689768}, {0.339297,0.190250}, {0.464936,-0.560609}, {-0.775980,-0.128567}, {-0.724656,0.021571}, {0.116261,-1.049885}, {-0.856403,0.530206}, {0.067380,-0.690871}, {-0.101626,0.190740}, {-0.230450,0.733674}, {1.510300,-0.232611}, {-0.558900,0.743672}, {0.328636,-0.130287}, {0.037062,0.836783}, {0.228297,-1.114284}, {0.591880,-0.742029}, {1.016332,0.389831}, {0.501144,0.220041}, {-0.682226,0.173825}, {0.194447,-0.220124}, {-0.201636,0.483213}, {-0.346227,0.693268}, {0.089963,0.776428}, {0.784136,-0.216991}, {1.351173,0.460213}, {0.948340,0.389235}, {0.856649,-0.280823}, {-0.281458,-0.467549}, {0.712758,-0.473551}, {-0.113624,-0.180662}, {0.827903,-0.935301}, {0.384431,0.183861}, {-0.116835,0.143097}, {0.437151,0.673442}, {-0.259116,1.211244}, {-0.832708,0.005765}, {0.579745,-0.839210}, {-0.272578,0.846526}, {0.006319,-0.191822}, {-0.543038,-2.053956}, {0.577765,-0.226179}, {-0.864414,0.264531}, {-0.081640,-0.316889}, {-0.733387,-0.029103}, {-0.856447,0.102918}, {1.118355,-0.516612}, {-0.953002,0.614206}, {0.317643,0.733096}, {-0.268814,0.548796}, {1.819432,-1.055275}, {-0.311760,0.400650}, {0.198343,-1.247555}, {-0.027410,0.778872}, {-0.508919,0.444286}, {-1.171694,0.019824}, {1.248879,0.012588}, {-0.703571,-1.267101}, {-0.351630,0.717535}, {0.712341,0.238149}, {-0.921778,0.823704}, {0.183744,-0.465176}, {0.967624,0.110433}, {0.638384,-0.733964}, {0.023469,-0.341078}, {0.457953,0.148002}, {-0.387642,0.886603}, {-0.069635,-0.580919}, {-0.059943,-1.223428}, {0.912288,0.393697}, {0.642983,0.930647}, {0.910222,0.601928}, {-0.445410,-0.667141}, {-1.572064,0.279244}, {1.978238,0.802084}, {-0.397479,-0.061574}, {0.410751,0.408608}, {-0.708602,-0.186290}, {-0.230716,0.939863}, {0.243815,0.220266}, {0.510986,0.986593}, {-0.697529,0.649296}, {-0.586676,-0.694978}, {1.365805,0.060623}, {0.669724,0.191354}, {1.712433,0.794664}, {1.420112,0.316341}, {0.241010,0.642880}, {-0.543402,-0.040763}, {0.566228,-0.271359}, {-0.161257,0.334876}, {0.599455,1.548617}, {-0.164632,-0.789523}, {-0.166458,-1.089323}, {-0.603273,-0.989075}, {0.528595,0.451579}, {-0.312701,0.087580}, {0.052067,-0.329935}, {-0.422394,-0.867374}, {0.543689,0.209453}, {-0.559684,-1.177563}, {0.467575,-0.097401}, {0.369629,-0.501474}, {0.404819,0.203655}, {1.147670,0.855509}, {-0.639961,0.122152}, {0.634182,-0.589714}, {-1.383792,0.081240}, {-0.762136,-0.308434}, {0.795235,-0.419563}, {-0.464381,1.585393}, {1.078462,0.518624}, {0.096101,-0.470606}, {-1.483047,-0.692461}, {-0.298531,0.776764}, {0.119121,-0.885261}, {0.117578,0.531321}, {-0.917483,1.214456}, {0.103637,-0.543026}, {-0.029330,-0.442023}, {0.667382,-0.559059}, {0.454800,1.315120}, {-0.121242,1.135188}, {-0.488542,0.095236}, {1.029647,0.289141}, {-0.103825,-0.536353}, {0.328875,0.038776}, {0.506639,-0.670018}, {0.579004,0.162704}, {0.390291,0.091227}, {-1.290292,-0.652858}, {-0.408826,0.011857}, {0.767200,0.888858}, {1.439873,0.872966}, {1.146577,0.749942}, {0.081693,-0.305140}, {-0.129388,1.025387}, {-0.634484,-0.843138}, {0.172444,0.005313}, {-0.657469,-0.089850}, {-0.760529,-0.081906}, {-0.426315,-1.084558}, {-0.979330,-0.160143}, {-0.044730,0.574946}, {-1.527934,0.139190}, {-0.115705,-0.468978}, {0.394550,-0.231006}, {0.586208,-0.529691}, {0.437290,-1.153886}, {0.808557,1.623821}, {-1.472277,0.306073}, {0.113523,-0.990164}, {-0.436942,-0.152251}, {0.906011,-0.455300}, {-0.137609,-0.290251}, {0.467302,-0.253409}, {-0.677977,-0.643365}, {-0.258209,0.117683}, {0.237770,0.579862}, {0.361357,0.184037}, {-0.768527,-0.431966}, {-0.374232,0.070814}, {-0.271652,0.701989}, {-1.650963,1.243199}, {0.817481,-0.130520}, {0.093297,1.182986}, {-0.740615,0.357099}, {0.190737,1.086730}, {-0.326431,-0.458982}, {0.123048,1.118810}, {-0.006755,0.087656}, {0.321461,0.525849}, {-0.567447,-0.412553}, {-0.516657,-1.118277}, {-0.343009,-0.119105}, {0.491223,1.372952}, {0.179821,0.053473}, {-0.238648,0.029409}, {0.222945,0.156960}, {0.310281,0.281777}, {-0.992198,-0.975749}, {-0.432296,-0.289497}, {-1.121582,-0.621216}, {-0.079473,-0.549632}, {0.673944,0.250442}, {-1.170647,0.816044}, {0.009351,-0.038545}, {0.202295,0.376773}, {0.207996,-0.767330}, {-0.683128,0.462706}, {0.363351,0.668791}, {-0.236248,0.234738}, {0.236777,0.097248}, {-0.079751,-0.322131}, {0.422070,0.380715}, {0.465275,-0.117293}, {0.914394,0.070100}, {-0.328927,-1.087863}, {0.009725,-0.714301}, {0.694105,-0.275872}, {0.038939,-1.079395}, {0.761932,1.210910}, {0.753418,0.067086}, {-0.215663,-0.159486}, {-0.187086,0.872605}, {-0.142958,0.220448}, {0.273894,-0.555399}, {-0.650689,-0.402346}, {0.897581,0.328779}, {-0.338363,1.002994}, {-0.328070,0.563372}, {-0.550288,0.856980}, {-0.977701,-1.482775}, {2.446075,-0.651519}, {0.653114,0.245545}, {0.481750,1.570437}, {-0.925317,0.286313}, {0.723354,0.222318}, {0.684692,-1.247687}, {-0.189216,-0.475236}, {-0.640211,0.212953}, {-0.053677,0.669794}, {-0.330972,-0.472563}, {0.194653,-1.044945}, {-0.541368,-0.021547}, {0.683410,-0.394597}, {0.106472,-0.419672}, {0.760465,0.199993}, {-1.179110,0.112292}, {0.055066,0.377698}, {0.909270,-1.560735}, {0.401362,1.350247}, {0.187297,-0.004588}, {-0.039523,1.088870}, {-0.268140,0.216489}, {0.164274,1.288643}, {-1.308630,0.008255}, {-0.828187,0.539431}, {0.171691,1.194553}, {0.299761,-0.052910}, {1.722756,-0.697963}, {-0.251873,-0.722015}, {0.079270,-0.072157}, {-0.932151,-0.304344}, {0.207095,0.052868}, {1.088320,-1.003559}, {0.850424,-0.709885}, {0.649069,-1.639259}, {0.383301,-0.409913}, {0.170324,-0.407571}, {0.752730,0.520546}, {0.243588,0.101737}, {-0.487145,0.946709}, {-0.484323,-0.380167}, {0.224305,-0.272019}, {0.059913,-0.726160}, {-0.285819,-0.028296}, {-1.484445,-0.022900}, {0.166353,0.255178}, {-1.161566,0.903064}, {0.494498,0.797073}, {-0.297146,-0.147285}, {-0.236315,0.665692}, {-0.085679,0.279219}, {-0.870393,0.141386}, {-0.014293,-0.542938}, {-0.365326,0.980887}, {0.203701,-0.711214}, {-0.407262,0.445812}, {1.421543,-0.606156}, {1.347169,0.048977}, {-1.433734,0.817061}, {1.146370,-0.793382}, {0.319925,-0.854738}, {0.438860,2.145962}, {1.166341,-0.365637}, {0.683141,0.055309}, {-1.130258,0.470611}, {-0.142316,0.723606}, {-1.167357,0.251633}, {-0.061046,-0.144651}, {-0.028701,-0.462089}, {-0.018132,0.169646}, {-0.671335,0.900461}, {0.116801,-0.593090}, {0.085282,-0.067586}, {-0.411836,0.548411}, {0.260672,-1.297764}, {-0.232586,-0.692774}, {-0.797251,0.519497}, {0.493274,0.128724}, {-0.452326,-0.942666}, {-1.259305,0.165846}, {-0.397245,-0.650621}, {-0.827247,-0.027941}, {0.400771,0.899915}, {-1.510673,-0.552102}, {-0.016118,-1.664885}, {0.468835,-0.256144}, {-0.095802,-0.449476}, {-0.334430,-1.538678}, {0.005072,0.053176}, {0.276647,-0.648527}, {0.087667,0.067103}, {0.853516,0.367063}, {0.694817,-0.772811}, {0.402106,-0.764670}, {0.563088,0.747578}, {-0.268367,1.277181}, {-0.749042,-0.032805}, {1.254513,0.221049}, {-0.610276,0.267629}, {-0.316447,1.420839}, {-1.922798,-0.390022}, {0.556385,0.484709}, {0.027270,0.139172}, {-0.726247,-0.156295}, {-0.120574,1.445949}, {0.876597,0.011245}, {-0.056240,-0.228567}, {-0.008902,-0.187852}, {0.322713,-0.491207}, {-0.362863,0.473453}, {-0.712861,-0.365141}, {-0.742098,-0.136880}, {0.111748,1.005100}, {-0.464041,-0.288319}, {-0.591913,0.416452}, {0.517190,0.391430}, {1.195625,0.788324}, {0.410152,0.138649}, {-1.371791,1.228180}, {-0.101232,0.141153}, {-0.710496,-0.154048}, {-0.808498,-0.383805}, {-0.018569,-0.202316}, {1.184777,-1.079341}, {-1.306705,0.345682}, {-0.154691,0.011843}, {0.661710,0.500578}, {-0.343929,0.779614}, {0.543034,1.214597}, {-1.348330,0.139834}, {0.117324,0.850516}, {-0.108573,-0.567512}, {-0.543670,-0.506252}, {0.763259,-0.023357}, {-0.124683,-0.687557}, {-0.298014,0.912602}, {0.205308,0.618330}, {1.529908,-0.085205}, {0.956008,-0.652740}, {-0.068925,-1.092457}, {-0.637354,-0.419358}, {1.268680,-0.243073}, {-0.136088,-0.425454}, {-1.136538,1.501422}, {-0.865629,0.163418}, {1.489446,-0.425663}, {-0.176186,-0.697113}, {0.053611,-0.207498}, {0.453244,0.901965}, {0.045845,1.465057}, {0.863726,-0.540462}, {-0.043928,0.683414}, {0.115106,-1.021701}, {0.247975,0.286382}, {0.801124,0.684719}, {-0.492425,-0.671975}, {-0.738085,-0.372832}, {0.246402,0.622964}, {1.316755,0.124231}, {0.061890,0.559458}, {-0.016314,0.518483}, {0.065088,-0.564502}, {-1.075867,-0.098767}, {0.178467,0.098481}, {-0.008945,-0.802168}, {-0.811757,0.814761}, {1.059392,-0.846953}, {-0.343747,0.373055}, {0.758821,-1.176281}, {-0.647837,-0.951149}, {-0.817682,0.112162}, {1.173084,-0.558803}, {-0.604647,0.144875}, {-0.132176,0.361366}, {-0.668269,0.061026}, {0.246659,0.201436}, {1.226810,-0.619724}, {-0.468072,-0.019591}, {0.966661,0.482886}, {0.583820,0.926226}, {0.852546,0.572840}, {-0.649207,-0.545958}, {0.255183,-0.155787}, {-0.025898,0.078114}, {-0.201309,-0.225492}, {0.525905,0.410706}, {0.177865,1.477507}, {2.457610,-1.850447}, {0.151478,1.000617}, {1.360119,-0.754828}, {0.157215,-0.492841}, {-0.566692,1.324305}, {0.620154,0.754623}, {0.074979,-0.860552}, {-0.222454,0.021736}, {-1.408236,-1.307141}, {-0.544968,0.463417}, {-0.595774,-0.743040}, {0.559990,0.480234}, {-1.168589,-0.203965}, {0.281098,-0.105368}, {0.641682,-0.360390}, {0.836257,-0.373430}, {-0.805041,0.752649}, {0.441466,-0.719064}, {-1.832253,1.143759}, {-0.247786,-0.438656}, {-0.870375,0.850503}, {-0.375699,0.159219}, {-1.124725,0.793712}, {-0.723709,0.342564}, {-0.633437,-0.558060}, {-0.135905,-0.355088}, {-2.183977,-0.007379}, {1.116177,0.159945}, {1.490166,0.480268}, {0.164575,-0.726484}, {-0.520145,0.297363}, {-0.641292,-0.643205}, {-0.067693,-0.128819}, {0.413410,0.031469}, {-0.760742,1.425786}, {0.085627,-0.041021}, {0.114922,0.384508}, {-0.225939,-0.065478}, {0.023267,1.057989}, {1.470100,-0.598823}, {0.723707,-1.348607}, {0.035084,-1.125010}, {-0.454672,0.069253}, {0.809724,-0.071756}, {0.083234,0.221237}, {-0.377449,1.091443}, {0.402802,0.357787}, {-0.684853,-0.705112}, {-0.625051,-0.136144}, {1.018437,-0.307444}, {-0.339611,0.577613}, {-0.559291,-0.331159}, {-0.661887,0.404697}, {-0.412244,-0.877878}, {-0.591570,-0.072583}, {-0.437359,0.868594}, {0.926766,-0.479234}, {-0.939874,0.960508}, {-0.216226,-2.190387}, {0.373954,-0.239234}, {0.735172,-0.368192}, {0.925092,0.361395}, {0.238858,-1.067577}, {0.211254,0.055615}, {0.067811,-0.232802}, {-0.256948,-1.231779}, {-0.231535,-1.085856}, {1.027191,0.635764}, {-1.039482,-0.284762}, {0.802325,0.903988}, {-0.407235,-0.165035}, {-0.645411,0.570917}, {-0.631895,-0.866667}, {-0.413516,-0.479763}, {-0.327054,0.889851}, {-0.660647,1.168247}, {-0.054201,-0.157478}, {0.021347,1.157376}, {-0.281979,0.310791}, {1.078613,-0.998599}, {0.978329,-0.316584}, {0.227859,-0.057813}, {0.879319,1.029731}, {0.007877,-0.338237}, {-0.023282,0.856635}, {0.802926,0.658965}, {-0.654637,-0.321326}, {-0.486953,-0.278102}, {0.399871,-0.703921}, {0.137966,-0.143648}, {-1.382161,-0.633032}, {0.994994,0.454662}, {-0.563795,-0.296766}, {0.395332,-0.055457}, {0.879708,-0.963628}, {-0.321128,-0.149853}, {-0.072034,-0.491397}, {0.094058,-0.301073}, {0.846232,0.232090}, {0.286858,-0.066615}, {-0.642041,0.413146}, {0.464097,0.354731}, {0.102751,1.804440}, {0.377422,0.609243}, {0.654797,-0.435679}, {0.472210,-0.209745}, {-0.641060,-0.154395}, {-1.512229,0.312514}, {-0.668791,-1.337721}, {-0.568657,-0.277971}, {0.842358,1.337541}, {-0.633354,0.123400}, {-0.236926,1.438454}, {-0.524131,0.461021}, {-0.027427,0.041582}, {-0.630328,-0.951639}, {0.467582,-0.775196}, {-0.645079,-0.410044}, {1.050603,1.068060}, {-0.144830,0.117018}, {-0.428974,-0.059010}, {0.343620,-1.481687}, {-0.117022,0.802153}, {0.371381,0.568841}, {-0.713658,-0.166011}, {-0.262867,-0.772913}, {1.097425,0.118692}, {-0.682499,0.040285}, {-0.088318,-0.101135}, {0.596149,0.381073}, {-1.594536,0.711970}, {-0.520008,0.491471}, {0.042324,0.355744}, {-0.736938,-0.529835}, {-0.648401,0.855958}, {-0.338084,-0.351747}, {0.672677,0.892670}, {0.361092,-0.678357}, {2.079292,0.329758}, {0.234354,0.449063}, {0.246854,-0.747312}, {-0.254858,-0.378022}, {0.391048,0.078144}, {-1.322392,1.109864}, {-0.392252,1.133680}, {0.317787,-1.119124}, {-1.125500,0.590658}, {0.651714,-0.019948}, {-0.188271,-0.587491}, {0.512942,0.238828}, {-0.089800,0.880141}, {-0.020669,-0.745277}, {-0.393933,0.425016}, {-0.706385,-0.337056}, {-0.072274,-0.466942}, {1.361972,1.600456}, {-0.536411,0.143837}, {-1.315825,-0.345262}, {0.586610,-0.105453}, {0.361835,-0.310457}, {0.162424,-0.455937}, {-0.266229,0.468748}, {0.608348,0.237188}, {-0.338820,0.469070}, {0.825241,-0.122825}, {-1.296042,-1.106153}, {0.782186,1.012854}, {0.546063,0.108291}, {-0.675564,-0.118591}, {0.959435,-0.617240}, {0.253049,0.642651}, {-0.717033,0.421230}, {0.065648,-0.236145}, {0.787941,-0.725300}, {-0.214982,-0.330445}, {-0.005308,0.843855}, {0.569761,-1.404632}, {-0.847684,0.288276}, {-1.351673,0.398555}, {-0.653094,0.359977}, {-0.451479,-0.175236}, {0.250162,1.082506}, {1.720280,-0.173550}, {0.043283,0.495568}, {-0.467075,-0.286571}, {-0.516911,0.372184}, {-0.644850,0.027566}, {0.412044,-0.228306}, {0.441079,-0.818598}, {0.597972,0.496661}, {-0.751802,0.592583}, {-0.172332,-0.063214}, {-0.486652,0.453796}, {-0.789048,0.001233}, {-0.037757,-0.424086}, {0.610775,0.085934}, {1.357820,0.385392}, {0.772897,0.561994}, {-0.547971,0.343509}, {-0.305912,-0.659965}, {-0.150391,0.051106}, {-0.659545,0.811236}, {1.156720,-1.403491}, {0.250035,0.752173}, {-1.033130,1.467901}, {-0.081366,0.567584}, {-0.189016,0.757573}, {-0.062907,0.109766}, {0.519387,-0.073148}, {0.852716,1.480028}, {-0.332826,-0.335259}, {0.699783,1.177709}, {-1.501976,-0.869618}, {0.011903,0.566373}, {0.240645,0.815848}, {0.022006,0.778674}, {-0.311565,-0.232334}, {0.412026,0.252313}, {-0.541887,0.196055}, {1.576042,1.850318}, {0.801784,0.173800}, {-0.910855,-0.685674}, {2.049228,-0.222369}, {-0.354029,1.030187}, {0.323162,-0.505727}, {-0.125605,-0.829970}, {0.512979,0.187703}, {-1.013040,-1.303101}, {0.013997,0.121938}, {0.058118,0.257561}, {-0.258403,0.395440}, {-0.670940,1.122375}, {-1.432201,-0.379968}, {-0.814277,-0.812373}, {-0.559929,0.609962}, {0.363925,0.849823}, {0.621028,-0.837635}, {-0.240268,-0.472030}, {0.072362,1.038756}, {0.227193,-0.732684}, {-0.658857,0.208278}, {-1.534011,0.239111}, {-0.154706,-0.173726}, {-1.368605,-1.607920}, {0.111885,0.436946}, {-0.125141,1.156338}, {-0.468032,-1.283854}, {-0.095271,-1.024174}, {-0.298550,0.045489}, {0.683411,0.029385}, {0.549679,-0.031146}, {0.498454,-0.530899}, {-0.477430,0.323974}, {0.791994,0.089182}, {0.361261,0.618991}, {0.562423,0.394355}, {0.244952,0.570213}, {0.006620,2.036926}, {-1.886519,-0.587302}, {0.648386,0.606893}, {-1.081200,1.050888}, {0.376747,-0.048129}, {-0.587935,0.543545}, {1.449966,-0.385258}, {0.268650,1.464783}, {-0.781591,-0.348916}, {0.585803,-0.636496}, {0.978237,1.172719}, {0.668928,-0.068851}, {-1.466985,0.045779}, {-1.179510,1.101713}, {0.904752,0.497169}, {0.097355,-0.293205}, {-0.172173,-0.181016}, {-0.501643,-0.080642}, {0.581053,-0.218558}, {-0.895757,0.375873}, {-0.483364,0.120657}, {-0.423777,0.643739}, {0.124416,-1.106641}, {-1.457878,-0.321679}, {0.659524,-0.761259}, {0.364923,-0.166847}, {-1.388401,-0.199159}, {1.588209,-0.604498}, {1.309079,-0.352915}, {-0.347980,0.189430}, {0.911844,-1.078087}, {0.278893,-0.835737}, {-0.982551,-0.254161}, {-0.431526,0.412463}, {-0.477069,0.486325}, {0.573694,0.715416}, {1.143420,2.072284}, {-0.857854,-0.906373}, {-0.297631,0.413436}, {-0.467294,-0.331288}, {0.982162,-0.975864}, {0.285199,0.043006}, {-0.812961,0.340233}, {1.431540,1.133126}, {0.102308,0.190565}, {1.476116,0.637898}, {0.434583,0.580426}, {0.046831,-0.794218}, {-0.341083,0.192367}, {-0.279135,-0.299876}, {0.296558,0.569512}, {0.147472,0.329278}, {-1.388735,1.020627}, {0.602259,0.386248}, {-0.528118,1.134901}, {-0.181877,-0.564929}, {-0.553234,0.469098}, {-1.455098,-0.185264}, {0.800772,0.396759}, {-1.234805,0.736313}, {0.761554,-0.175533}, {-0.650272,-1.001478}, {0.515606,-0.160728}, {1.523529,0.422419}, {0.327472,0.391494}, {0.747341,0.126178}, {0.796575,0.604781}, {-0.579325,0.723723}, {0.188695,-0.270173}, {0.608637,-0.176246}, {0.357106,-0.187142}, {-0.476938,0.579994}, {-0.159003,-0.546717}, {0.805633,0.436189}, {-0.000267,-0.078362}, {0.388497,0.613782}, {-0.616919,0.325909}, {-0.139824,0.506477}, {-0.357327,-0.352587}, {0.465315,0.517060}, {-0.402298,0.401676}, {-1.052840,1.068351}, {0.089254,-0.088566}, {1.553712,-0.490081}, {0.796169,0.313496}, {0.221044,0.079029}, {0.735658,0.515442}, {0.088796,-0.414440}, {0.177135,0.018821}, {-0.136482,0.116556}, {0.998341,1.750061}, {1.539176,-0.444703}, {-0.005825,-1.174685}, {-0.546142,-1.060067}, {-0.238276,-0.411240}, {1.270839,1.815292}, {0.238926,-0.014318}, {-0.433391,1.175325}, {0.365434,0.514461}, {0.549538,-0.875982}, {-0.052031,0.088336}, {0.056105,0.755373}, {-0.739169,1.345512}, {0.022259,0.310272}, {-0.143530,0.226380}, {0.377260,-2.217078}, {1.266910,0.770192}, {-1.430207,-0.389470}, {0.373033,0.954533}, {-0.032998,0.458503}, {0.033109,0.876798}, {1.254053,-0.868324}, {-0.750205,-1.243251}, {0.178780,-0.059218}, {-0.138437,-1.864862}, {-0.057342,0.724688}, {0.255896,1.443441}, {0.554522,-0.149032}, {0.535395,0.518631}, {0.178084,-1.333335}, {-1.146268,-0.525930}, {-0.444915,-0.179534}, {-1.827258,0.610506}, {-0.970571,0.433014}, {-0.851848,-1.408017}, {-0.010547,0.425406}, {-0.438689,-0.641632}, {0.982537,0.523425}, {0.194053,0.040519}, {-2.164144,-0.712796}, {-0.286878,-1.289071}, {-1.189324,0.191043}, {-0.178947,0.227410}, {0.543007,-0.209633}, {-0.504561,0.558697}, {-0.476418,-0.360136}, {-0.066349,0.311321}, {0.205228,0.537992}, {-0.431381,0.691561}, {0.373215,-0.698683}, {-0.021947,-0.774605}, {0.587365,-1.799103}, {0.808319,-0.623221}, {1.089104,0.969406}, {-0.309144,0.148429}, {-0.370805,0.696824}, {0.232746,0.498690}, {0.207694,0.370303}, {-0.921240,-1.399620}, {-0.553996,0.380382}, {-0.578575,0.448331}, {0.429058,-0.213727}, {-0.710646,-0.159683}, {1.620601,0.839856}, {-0.118776,0.365243}, {1.473897,0.572852}, {0.186774,0.121951}, {0.610082,-0.416502}, {-0.680911,0.926587}, {-0.677998,0.322929}, {0.386026,0.195354}, {0.127726,0.580091}, {0.103026,-0.655300}, {-0.285589,0.668215}, {-0.304495,0.862677}, {0.676639,-0.908045}, {-0.101844,-1.374433}, {0.111932,-0.315504}, {-0.786232,0.096354}, {0.412804,1.171453}, {0.242855,0.419671}, {-1.122453,0.072119}, {-0.954008,-1.360665}, {0.490884,-0.394485}, {1.407058,-0.197984}, {0.516526,-0.041076}, {-0.356944,0.119194}, {0.114765,-0.432646}, {-0.616070,-0.812770}, {-1.283144,0.352879}, {-0.675260,0.248547}, {0.037469,0.111532}, {1.808690,0.215876}, {-0.262605,0.390434}, {-0.528473,-0.590598}, {0.067823,1.025179}, {-0.134779,0.388853}, {-0.856184,-0.137929}, {-1.322880,-0.587829}, {0.255339,0.957455}, {0.691181,0.120283}, {-0.138113,-0.681550}, {-0.839258,-0.647184}, {0.717937,-0.342172}, {-0.002496,0.085833}, {0.066570,0.376295}, {-1.184694,-0.306608}, {-0.765986,-0.240214}, {-1.484250,-0.148429}, {-0.381439,1.124766}, {-0.350007,0.336370}, {0.235697,-1.183933}, {1.443619,0.581121}, {0.491068,-0.099921}, {0.093451,0.902716}, {0.505893,1.686718}, {-0.385501,-1.017724}, {-0.541630,0.466243}, {0.186522,-0.926013}, {-0.447201,-0.317000}, {-0.142966,-1.103298}, {0.144505,-0.006342}, {1.660683,-0.528652}, {-0.863812,-0.656971}, {0.373327,-0.447680}, {0.064399,-0.006573}, {0.273959,-0.067186}, {0.158321,-0.040345}, {-0.809976,1.524938}, {0.265150,0.968352}, {-0.561451,0.122076}, {-0.238906,0.602495}, {-0.682023,-1.518610}, {0.226352,0.239321}, {0.249679,-0.450287}, {1.424126,-0.421314}, {0.347601,-1.256083}, {-0.161817,-0.558341}, {-0.698010,1.392321}, {0.854525,-0.180275}, {-0.607136,-0.163008}, {-0.201352,-0.463324}, {0.177265,0.445976}, {-1.139061,-0.711736}, {0.071346,0.954147}, {-0.007381,-0.234975}, {0.122223,0.301816}, {0.744879,-0.147205}, {0.885961,0.569310}, {-0.584466,0.194479}, {-0.356190,-0.486432}, {-0.604637,0.312954}, {-0.571192,0.009307}, {-1.645607,-1.013357}, {0.767907,0.911892}, {-0.292811,-0.436490}, {0.754294,-0.258061}, {-0.020915,-0.553060}, {0.513940,0.367752}, {-0.039909,-0.308901}, {-0.426255,-0.427997}, {0.031096,-0.350317}, {0.183359,0.337084}, {-1.442484,0.931023}, {0.285229,0.747264}, {1.284922,-0.542352}, {-0.580213,-0.744180}, {-1.258930,1.722668}, {-0.259699,-0.002504}, {0.488400,0.053418}, {0.626716,-0.067078}, {-0.262059,-0.661936}, {-0.826681,1.076488}, {-0.313348,0.452737}, {0.751086,-0.240226}, {-0.201071,-0.293798}, {0.498236,0.533344}, {0.445915,-0.498216}, {-0.476964,-0.992134}, {0.124767,0.528058}, {-0.175549,0.108257}, {-0.983469,1.220194}, {-1.365000,0.620389}, {0.126352,1.586583}, {0.698377,-0.366504}, {-0.972605,-0.070712}, {-0.173680,0.387337}, {-1.296066,-0.326749}, {0.074632,1.409292}, {0.273771,0.567147}, {1.247218,0.334758}, {0.109021,0.319268}, {0.782710,0.115378}, {0.481173,-0.827708}, {-0.539717,-0.877906}, {0.746934,1.005647}, {-0.621987,0.129283}, {0.413268,0.131652}, {-1.265124,0.249034}, {-0.352113,0.553744}, {0.639651,-0.490536}, {-0.207383,-0.516105}, {0.300740,0.271305}, {-0.778036,-0.864931}, {0.237860,-0.011126}, {0.147210,0.427180}, {-0.038382,1.535662}, {-1.191819,0.386445}, {0.553605,0.469841}, {0.060159,0.320722}, {0.628356,0.798504}, {0.141494,0.747546}, {0.356586,-0.813978}, {-0.526579,0.129332}, {-0.142047,-0.183652}, {0.142306,-1.230296}, {0.163303,0.973984}, {0.741797,-0.963034}, {-0.953978,1.630063}, {0.782292,0.927006}, {0.269555,-0.483264}, {-0.225813,-0.846876}, {-0.147398,0.037824}, {-1.151203,0.182452}, {-0.051871,1.116905}, {0.618385,0.772501}, {-0.806309,-0.676225}, {0.314484,0.962604}, {-0.877810,0.165547}, {-0.278775,0.828332}, {-0.193032,0.607956}, {0.481850,0.406728}, {0.189260,0.564026}, {0.101573,-0.153646}, {0.141078,0.577827}, {0.442071,-0.654711}, {-0.497890,-0.069597}, {-0.896127,0.092677}, {1.379386,-1.739856}, {0.049072,0.076701}, {-0.000871,-0.137247}, {-1.069033,1.216272}, {1.305900,-1.105981}, {-0.038746,0.948692}, {0.097514,-0.182169}, {0.504969,0.301159}, {-0.070645,-0.338149}, {-0.648749,1.116034}, {0.019086,0.366446}, {0.061191,-0.513735}, {-0.412078,0.343295}, {-1.006799,-0.785297}, {0.728767,-0.194047}, {-0.294156,0.632371}, {-0.674312,-1.092083}, {-0.662882,-0.689872}, {-1.090220,-0.610777}, {0.103421,0.205088}, {0.654995,-0.196212}, {0.811050,-1.173118}, {0.047948,0.235323}, {0.657132,0.634237}, {0.807551,0.684801}, {0.066354,-0.968132}, {-0.109448,-0.718459}, {-1.570057,0.383556}, {1.177749,-0.333918}, {-0.076754,-0.018363}, {1.147423,0.535147}, {-1.099482,-1.047722}, {0.202256,0.611263}, {0.355965,0.186135}, {0.638869,0.248176}, {0.423701,0.167180}, {0.140065,-1.046322}, {-0.128061,0.389472}, {-0.073327,-0.620858}, {0.551739,-0.001060}, {-0.010351,-0.343739}, {0.273292,0.077655}, {0.018582,-0.649334}, {0.858083,-0.239483}, {0.434152,-0.516887}, {-1.191059,0.970440}, {-1.078976,-1.186674}, {1.220491,0.830858}, {0.392834,-0.620787}, {0.570976,1.188011}, {0.659424,-0.514683}, {0.396493,0.413003}, {1.064244,-1.299914}, {-0.395576,-0.151052}, {-1.016292,-0.124868}, {0.339642,0.187616}, {-0.732745,0.330348}, {0.064742,0.443943}, {0.986493,-0.439466}, {0.469584,-0.447904}, {0.721960,0.754263}, {0.157520,-0.324514}, {-0.114010,-0.285823}, {-0.771222,-0.402135}, {0.327920,0.786586}, {-0.761432,-0.278662}, {0.019400,-0.367941}, {1.070777,0.601845}, {0.456113,-0.819699}, {0.879266,-1.927595}, {0.205047,-0.103213}, {0.499241,0.410470}, {0.833646,-1.356775}, {0.148523,0.231443}, {0.561257,-0.947881}, {0.003637,-0.389497}, {0.433277,0.984572}, {-0.048365,-0.418898}, {-0.136111,-1.207308}, {1.922850,1.447618}, {0.384710,0.640459}, {0.139125,0.130501}, {0.571578,-0.186558}, {0.682121,0.751595}, {0.321521,-1.559149}, {-0.371364,-0.545437}, {0.621527,0.318470}, {-0.035350,0.128997}, {0.478967,0.282489}, {-1.726296,0.075075}, {-0.410562,-0.229728}, {0.248913,0.103229}, {-1.158596,0.232259}, {0.162925,0.185782}, {0.954972,-0.172445}, {-1.023235,-0.827372}, {0.386385,0.418922}, {-1.535752,-0.171385}, {-0.052104,0.779521}, {0.578034,-0.561471}, {0.132959,0.311450}, {-0.343702,-0.401046}, {0.245350,0.969726}, {0.396674,0.108288}, {-1.432259,0.419970}, {0.341158,0.317464}, {-0.330617,-0.606965}, {-0.152268,-0.472867}, {-0.060637,0.458003}, {-0.571015,-0.285286}, {-0.689380,-0.890630}, {1.280908,0.748947}, {-0.541963,0.307449}, {1.509660,0.796404}, {1.759599,-0.190714}, {0.431596,-0.064444}, {0.781975,-0.726109}, {-0.225672,-0.453357}, {-1.213446,0.029801}, {-0.502440,0.933800}, {0.526578,0.291420}, {0.147412,0.134833}, {0.512102,0.625511}, {1.456875,1.380586}, {-0.290328,-1.063807}, {0.101380,-0.817843}, {0.113163,0.126724}, {1.215953,0.725106}, {0.201676,0.845303}, {0.239325,-0.398681}, {0.164998,-0.338345}, {-0.108562,-0.506582}, {-0.489327,0.543874}, {0.661906,-0.354970}, {-0.265596,0.563607}, {-0.884218,0.854292}, {1.321217,-1.368510}, {0.081827,-1.410110}, {-0.219351,0.885236}, {-0.982823,0.858992}, {-1.274274,-1.011328}, {-1.067975,0.067140}, {0.436583,-0.052909}, {-0.404171,-0.153187}, {-0.582062,0.600456}, {0.023155,0.627493}, {-0.685279,-0.017384}, {0.548277,-0.244152}, {-0.115240,0.053806}, {0.060231,0.740503}, {-0.145329,0.863530}, {-1.448378,0.298489}, {0.240402,-0.369060}, {1.430967,1.095404}, {0.331176,0.532789}, {0.065128,0.165151}, {-0.301511,-0.764322}, {1.104458,0.230971}, {-0.659759,-0.691340}, {-0.814781,-0.814180}, {0.417795,1.175324}, {0.289451,0.400148}, {-0.418076,0.131680}, {-1.362387,0.205250}, {-0.014391,0.377274}, {-1.409865,-1.379234}, {0.541087,1.912687}, {-0.029290,-0.841498}, {0.466166,0.092614}, {0.184014,-0.060701}, {0.809956,1.648975}, {-0.773957,0.556490}, {-0.526512,-0.408391}, {0.241741,0.658692}, {-0.542720,1.687133}, {-0.516997,-0.467089}, {0.739354,0.421007}, {-0.042296,-0.146626}, {-0.269594,-0.550475}, {-1.523314,-1.306939}, {0.250566,0.617745}, {0.504463,-0.722584}, {-0.179117,-0.083309}, {1.874666,0.664473}, {0.786372,-0.183692}, {-0.791371,-0.105155}, {0.546627,-0.378284}, {-0.682557,0.353458}, {-1.551750,-1.178922}, {0.004591,-0.364755}, {0.595242,-0.129436}, {-0.525592,-0.317380}, {-0.090858,-0.976245}, {-0.485468,0.291478}, {0.149195,0.432197}, {-0.614205,-0.776327}, {-0.282117,0.839998}, {-0.805384,-0.020502}, {0.822789,-1.368598}, {-0.626826,0.998920}, {0.496481,-0.497299}, {1.668775,0.382570}, {0.548438,-1.033250}, {1.007271,0.933075}, {0.183149,-0.380990}, {1.293787,-0.119620}, {0.774773,0.143392}, {-0.274284,-0.302211}, {0.451132,-0.154428}, {-0.025212,0.110100}, {-1.359157,0.348165}, {0.013577,0.207362}, {1.101108,1.741819}, {-1.147832,-0.970628}, {-0.792563,-0.451914}, {-0.065555,0.248664}, {-1.252769,0.225012}, {0.954973,-1.085338}, {0.121842,-0.845815}, {-1.622493,0.134620}, {-0.785575,-1.165826}, {-0.155585,-0.299899}, {0.204921,1.247232}, {0.190846,0.982351}, {-0.086519,0.188154}, {0.911527,-0.410064}, {-0.589303,0.001458}, {-0.461175,-0.753628}, {-0.703909,-0.266743}, {-0.552377,-0.836142}, {-0.316481,-0.804232}, {-1.208979,-0.807974}, {-0.405595,-0.324402}, {0.556275,0.511671}, {0.755633,-0.192398}, {0.361233,-0.288166}, {-0.271475,-0.290048}, {0.036496,1.048269}, {-0.230503,0.604447}, {1.000254,-0.234682}, {0.120851,-0.393787}, {-1.135812,-0.005555}, {0.117785,0.102412}, {0.269803,0.306705}, {-1.000569,-0.211454}, {-0.921295,-0.318864}, {0.015830,-0.276718}, {0.855560,0.052771}, {-0.331353,0.532554}, {-0.998449,-0.148572}, {1.087764,1.700836}, {-0.433519,1.028843}, {0.238422,-0.076953}, {-0.789252,-0.068322}, {0.231041,0.257196}, {-0.119942,0.994053}, {-1.624463,0.592305}, {0.489505,0.330256}, {-0.791727,-0.240149}, {0.023486,0.405492}, {-0.712725,1.139520}, {-0.397841,0.392477}, {-0.172113,-0.103673}, {-0.916898,-0.115494}, {-0.740514,-0.159728}, {0.030016,0.438515}, {-0.189621,0.505697}, {-0.312361,-0.485750}, {0.395219,-0.191466}, {-0.681995,0.910094}, {-0.886425,0.038644}, {-0.363377,0.254644}, {1.213012,0.273619}, {0.387538,-0.267483}, {0.184534,-0.031493}, {-0.082584,0.185597}, {-0.168003,-1.103117}, {-0.130390,0.133329}, {-0.641604,-1.152805}, {0.930567,0.868625}, {-0.667303,0.040410}, {0.885582,-0.805815}, {1.203275,0.842920}, {-1.398472,-0.587075}, {-1.319309,-0.535182}, {0.187520,0.267047}, {1.366326,0.361960}, {0.099778,-0.157978}, {-0.133780,-0.185177}, {0.536479,-0.703430}, {-1.744925,0.483704}, {-0.188968,-0.117653}, {0.100862,-0.201597}, {1.112205,0.886361}, {1.065932,0.187435}, {-0.515742,-1.160125}, {-0.302570,0.686457}, {0.650096,-0.027069}, {-0.038160,1.315195}, {0.325478,-0.873972}, {-1.071418,0.172045}, {0.086233,-0.410727}, {0.062731,0.419938}, {-0.067950,0.160374}, {-0.871875,-0.789548}, {-0.533510,0.417835}, {0.549437,-0.061798}, {0.230347,0.244062}, {-0.664741,-0.647699}, {0.866195,-0.509121}, {-0.455236,-1.065637}, {-0.098402,-0.964385}, {0.972477,0.831164}, {1.126182,1.212522}, {-1.214912,-0.489044}, {-0.145521,-0.082823}, {0.172649,0.507886}, {0.816966,0.723179}, {0.286767,0.813230}, {-0.292067,0.442358}, {-0.242028,0.403211}, {0.810219,-0.296835}, {-0.965484,0.781090}, {0.030609,1.430429}, {-0.113167,-0.735173}, {0.679344,0.038494}, {-0.296711,1.173452}, {0.205363,0.307279}, {0.236531,-0.902335}, {1.474420,1.009479}, {-0.794636,-1.088974}, {-0.600780,-0.630495}, {-0.120746,0.153255}, {-0.074198,-1.159780}, {0.479216,-0.756744}, {-0.061359,-0.464196}, {0.266948,0.499785}, {0.466252,-0.801677}, {-0.739398,-1.104281}, {-0.209888,0.342897}, {0.317751,0.652312}, {-0.108828,-0.502183}, {0.311654,-0.272723}, {-1.213448,0.887512}, {-0.156897,0.247416}, {0.684845,0.663784}, {-0.834150,-1.557275}, {-0.111679,-0.539638}, {-0.629201,-0.244997}, {0.345529,-0.729459}, {-0.573635,0.569731}, {0.202781,1.168916}, {0.299240,0.698863}, {-0.303744,0.092127}, {-0.770121,-0.010426}, {0.785242,-0.473798}, {-0.258107,-1.614886}, {-0.364306,0.445393}, {-0.030830,-0.396489}, {-0.861569,-0.618809}, {-0.467142,-0.065045}, {1.496496,0.390095}, {-0.664346,-0.666512}, {-1.078531,-0.683208}, {-1.035570,0.332805}, {0.334032,0.923234}, {-0.352618,1.163516}, {0.487088,0.813483}, {-0.108438,0.111755}, {-0.242763,-0.716151}, {0.048218,-0.411570}, {-0.682291,-0.100047}, {-0.347302,-0.541596}, {-0.055860,0.329776}, {-0.486827,0.763519}, {0.936834,0.378179}, {0.560789,-0.581682}, {0.062925,-1.147451}, {0.370209,0.604113}, {0.303006,0.781933}, {-0.771395,1.640898}, {0.367795,-0.936096}, {-0.948469,-0.645591}, {-1.338969,0.458720}, {-0.119671,0.943494}, {-0.504578,1.348833}, {0.087662,0.180008}, {-0.400353,-0.940478}, {-1.020622,0.010305}, {-0.572008,0.916672}, {0.777239,-0.920403}, {-0.246385,-1.900782}, {0.368677,-0.397907}, {-0.213803,1.423726}, {-0.529380,0.287280}, {0.674833,0.865517}, {0.214032,0.083444}, {-1.354788,0.121986}, {-0.147398,-0.259880}, {-0.236661,0.083370}, {1.070576,-0.674437}, {-1.696654,-0.863431}, {-0.288571,-0.088433}, {-1.178608,0.352638}, {-0.686168,-0.664879}, {-0.727181,0.139968}, {0.704379,0.011108}, {-0.097122,-0.414411}, {0.833092,-0.416375}, {1.679856,-0.186026}, {-0.188038,-0.789648}, {0.788024,1.319672}, {-0.111910,-0.429271}, {0.026979,-0.973063}, {-0.822299,-0.468297}, {-0.020743,-0.075185}, {-0.196015,-0.653514}, {-0.531606,0.126889}, {0.683125,0.196602}, {-0.642640,-1.115938}, {0.216297,0.501497}, {-0.798830,-0.596719}, {0.118774,-0.356140}, {-1.144614,-0.125928}, {0.782631,0.924172}, {-1.170188,-0.199186}, {-1.219077,1.060124}, {-0.426246,0.782024}, {0.022011,1.753737}, {-1.176024,1.096339}, {0.892655,0.511964}, {0.162166,0.613459}, {0.089108,0.600362}, {0.727923,0.549506}, {0.043496,-0.772287}, {0.545886,-1.494124}, {-0.208190,-0.121938}, {0.457878,-0.436767}, {0.202868,1.137949}, {0.442543,-0.970062}, {-0.938356,0.524556}, {-0.206104,-0.650013}, {-0.241362,-0.130104}, {0.825974,0.375147}, {-1.030467,0.349799}, {0.165765,0.053764}, {0.539089,0.219063}, {-0.920803,-0.360764}, {-1.501808,0.467059}, {0.010156,-0.026508}, {0.296985,1.309064}, {0.255845,0.369301}, {0.282236,0.181767}, {-0.599911,0.417191}, {-0.124009,-0.052300}, {1.762523,-0.638097}, {1.559969,-0.392161}, {0.788940,-1.012021}, {-0.889773,0.829916}, {-0.758505,0.629368}, {0.149425,0.205740}, {-1.489133,0.519999}, {0.274081,-0.473210}, {-0.400278,-0.605729}, {-0.034848,-0.711428}, {0.797203,0.653726}, {0.684081,0.306657}, {-0.898558,0.487512}, {0.531034,-0.804407}, {-0.189209,0.079728}, {-0.236203,0.887653}, {-1.055849,-0.030049}, {0.157577,0.262297}, {0.816064,0.614824}, {-0.517684,-0.651690}, {0.817597,0.142859}, {0.632049,0.746048}, {-0.004080,-0.044616}, {-0.443800,-0.623657}, {-1.950154,0.292959}, {0.849712,0.756986}, {-0.331359,0.267557}, {0.110510,0.822703}, {1.123170,-0.844141}, {-0.779840,0.699576}, {0.039398,0.256364}, {0.701604,-1.071505}, {0.068249,-0.334658}, {-0.092711,-0.747982}, {0.279999,0.476331}, {-0.250376,-0.152404}, {-0.633183,-0.303464}, {-0.871779,-0.289203}, {0.520590,0.441538}, {0.411185,0.050415}, {0.299688,0.061898}, {0.006655,0.250882}, {0.663987,-0.250278}, {-0.435304,0.428809}, {-0.954020,0.275075}, {-0.534693,-0.019677}, {-0.454147,-0.287202}, {-0.410159,0.876545}, {0.167473,0.702159}, {-0.798929,-0.035521}, {0.321676,0.347692}, {0.817898,0.460273}, {-0.129380,0.029044}, {0.252003,-0.312483}, {-0.794911,2.260189}, {1.196671,-0.508444}, {0.658018,0.454661}, {-0.110961,1.988064}, {1.027958,-0.139970}, {0.371965,0.512944}, {-0.889717,-0.561569}, {-0.385539,1.492987}, {0.182554,-0.293347}, {-0.678913,-0.180265}, {-0.619095,0.804020}, {-0.246786,0.065080}, {0.732415,0.287005}, {-0.433814,0.359104}, {-1.062615,0.398734}, {-0.068996,-0.161415}, {0.177600,-0.169124}, {-1.098818,0.257113}, {-0.199506,-0.234330}, {-0.457931,-0.929827}, {1.267319,-0.665283}, {0.569162,0.128109}, {-0.894920,-0.343725}, {-1.047250,0.194854}, {0.145325,1.000184}, {-0.485785,0.176002}, {0.416958,0.181212}, {-0.538063,1.408044}, {0.396945,0.376793}, {-0.650388,0.600960}, {-0.336692,0.041523}, {0.762633,0.056195}, {-0.101801,1.060078}, {0.008753,0.341367}, {1.213057,0.650804}, {-0.242555,0.605359}, {-0.096545,0.505888}, {-0.218160,0.065450}, {-0.392291,-0.153585}, {-0.382276,-0.435595}, {-0.566462,0.503745}, {0.742303,0.092767}, {-0.706119,-0.446348}, {0.846034,-0.169926}, {-0.800204,0.067673}, {0.393443,-0.252153}, {-1.189230,-0.417032}, {-0.258718,-0.577801}, {0.148415,-0.218861}, {-0.242399,-0.722251}, {-0.554846,0.266552}, {-0.154566,0.345374}, {-0.178620,-0.620674}, {-1.452684,0.547125}, {0.742394,-0.579851}, {-0.535252,0.818573}, {-0.373753,-0.844847}, {-0.307951,-0.485154}, {-1.055151,-0.234469}, {-0.617500,0.155782}, {-0.632949,-0.514511}, {0.321217,-0.177787}, {0.810575,0.867079}, {-0.739780,0.080659}, {-0.702951,-0.542686}, {-0.849406,-0.434737}, {-0.107667,1.546333}, {-0.481642,0.249243}, {-0.434692,0.925578}, {-0.649042,0.190168}, {0.543056,0.387398}, {0.229006,1.749723}, {-0.659196,1.496811}, {-1.112472,-1.378348}, {-0.347713,0.655806}, {-0.333020,-0.442177}, {-0.010896,0.243385}, {0.396435,-0.937387}, {-1.542977,-0.081353}, {-0.988957,-1.301314}, {-0.671717,0.385106}, {-0.475757,-0.051430}, {-0.152665,-0.430897}, {0.226653,-1.286005}, {-0.121291,-0.593614}, {-0.416353,0.289417}, {0.641212,-0.014396}, {0.625740,0.289628}, {0.109355,-0.864110}, {-1.304982,0.864331}, {0.540706,-0.034820}, {1.160577,0.426277}, {0.897177,0.120431}, {0.166315,0.025191}, {-1.194892,-0.817293}, {-0.018821,-0.365376}, {0.419874,-0.904719}, {-0.376988,1.270798}, {0.591134,-0.413071}, {0.765301,0.183033}, {0.425363,-2.200343}, {0.282538,-0.115302}, {0.471367,-0.189218}, {0.072332,-1.738241}, {0.705167,1.306461}, {0.517418,-0.123308}, {0.665696,0.768678}, {0.799159,0.744041}, {0.388496,0.054943}, {-0.509369,-0.466480}, {-0.932773,-0.129384}, {-1.766512,0.342952}, {-0.411573,-0.953764}, {-0.376695,-0.388200}, {0.253429,0.762383}, {-0.238802,-0.837494}, {-0.568870,0.170795}, {0.970388,1.303336}, {-0.483732,-0.759695}, {-0.067874,-0.877486}, {0.361803,-0.828496}, {0.148481,-0.631609}, {0.188760,0.682836}, {0.233787,1.072984}, {0.607324,0.052559}, {-0.462668,-0.875849}, {0.513511,-0.625931}, {0.029210,-0.447513}, {0.480831,0.480287}, {-0.664907,-0.973077}, {0.188319,-1.203828}, {0.022725,-0.215416}, {-0.426508,0.568704}, {0.696166,-0.153401}, {-0.888605,0.283359}, {-1.887684,-0.631214}, {-0.027258,-0.755818}, {0.463172,0.099262}, {0.176597,0.408871}, {0.139626,0.475139}, {-0.512137,-0.095797}, {0.142498,0.791082}, {1.714745,0.050486}, {-0.151700,1.001408}, {-0.187926,-1.189337}, {-1.047952,0.351206}, {-0.605363,0.923878}, {-0.880344,-0.236752}, {0.158545,0.536012}, {-0.702132,-0.383830}, {-0.232765,-0.434727}, {-0.332018,0.111265}, {-0.115645,1.224794}, {1.130556,1.039947}, {-0.684674,0.389432}, {-0.495957,-0.819223}, {-0.287520,0.044088}, {-0.120997,-0.373808}, {0.344498,-0.861474}, {-0.287849,-0.627099}, {-1.624836,1.107974}, {-0.161896,0.734496}, {0.922077,0.415761}, {-0.092261,-0.792858}, {0.740678,0.637053}, {0.009040,-1.221702}, {-0.151925,-1.520832}, {-0.926963,1.228550}, {1.592761,-0.740545}, {0.975686,-0.204006}, {-0.510445,-0.013318}, {-0.116722,-1.460534}, {0.050564,-0.696307}, {0.238704,-0.306242}, {-0.056267,-0.039088}, {0.367015,0.155718}, {0.828479,0.364074}, {-0.066791,-0.263206}, {-0.206769,-0.176020}, {0.607347,-0.204373}, {-0.328140,0.234530}, {-0.149728,0.964312}, {-0.673761,-0.476774}, {-0.531880,1.004618}, {-0.115795,-0.702836}, {0.150798,-1.577178}, {-0.261606,-0.115086}, {-0.466822,-0.540959}, {0.188110,-0.368671}, {1.054299,0.152076}, {0.955712,-0.861367}, {-0.203463,1.366727}, {0.633374,0.651992}, {-1.391364,0.818343}, {0.956846,1.464320}, {-0.393481,0.977886}, {0.069476,1.092029}, {-0.819219,0.095735}, {-0.358142,-0.433980}, {0.880563,0.408356}, {-0.110838,0.733042}, {0.767039,0.273039}, {0.484175,1.024151}, {0.506067,-0.462739}, {0.138992,0.524270}, {0.438017,-0.334267}, {-0.480006,-1.227354}, {-0.549142,0.321805}, {0.558154,0.085036}, {-1.561828,1.403826}, {0.792447,-1.514236}, {0.340796,0.383640}, {-1.368843,-0.478391}, {0.058797,0.152301}, {-1.186850,0.309630}, {0.008511,0.569976}, {0.499503,0.907362}, {-0.582328,-1.193703}, {0.457649,0.390902}, {0.080038,0.404945}, {0.509056,-1.101939}, {-0.172094,0.524935}, {-0.856769,-1.342524}, {0.600361,0.564700}, {0.669194,-0.792939}, {1.645031,-1.295386}, {-0.563368,-1.044735}, {1.573442,0.369752}, {-0.476873,1.693162}, {0.009118,-0.394260}, {-1.892748,0.376392}, {0.527800,0.693088}, {0.174069,1.074548}, {0.421630,-0.272748}, {-0.328084,0.643263}, {-1.074268,-0.336496}, {1.380511,-0.549909}, {0.446078,-0.836703}, {0.094413,0.555130}, {2.359104,0.198856}, {-0.171100,1.095922}, {0.554416,-0.723893}, {-1.692759,-0.111848}, {-0.968574,-0.811231}, {-1.243309,-0.641704}, {0.374876,-0.441376}, {-0.298878,0.934476}, {0.959066,0.185512}, {-0.372387,0.626353}, {-0.200447,0.974171}, {-0.656902,-0.411072}, {0.606477,0.609449}, {0.596347,-0.335998}, {-0.680908,-0.373738}, {-0.714886,-0.319760}, {-1.232879,-0.543364}, {0.597159,0.750747}, {-0.092650,0.649143}, {1.312315,0.577498}, {0.949531,0.577766}, {-0.536287,-0.256933}, {0.026927,0.209819}, {-0.506280,0.975751}, {-0.100592,-0.496428}, {0.703664,0.977937}, {0.439077,0.642939}, {-1.186330,-0.562701}, {0.834602,-0.346392}, {-1.140063,1.278697}, {-0.176394,-0.177266}, {-1.911734,-0.158996}, {-0.938247,-1.139427}, {0.430852,-0.519788}, {0.552453,0.347402}, {0.397558,-0.621711}, {0.395750,-0.030026}, {-0.318682,0.526152}, {-0.086843,0.198691}, {-0.463806,1.322882}, {0.021087,0.405731}, {-0.997044,-0.774766}, {-0.693620,0.425756}, {-0.093692,0.639838}, {0.605591,0.305130}, {-1.280314,0.984296}, {-0.058598,-1.163590}, {0.649775,-0.003839}, {-0.268283,0.754608}, {-1.297487,0.615832}, {0.619815,-0.088227}, {-0.447024,0.734463}, {0.342713,0.254090}, {-0.076577,1.067338}, {-0.580665,-0.362452}, {0.233286,-0.620338}, {-0.934433,0.379823}, {0.933342,0.231465}, {-0.859952,0.114437}, {-0.856929,0.585641}, {-0.943033,-0.113384}, {1.038475,0.201911}, {-0.469030,-0.388884}, {-0.118337,-0.297191}, {-0.702286,-0.240531}, {-0.513404,-0.591197}, {0.324736,0.499129}, {0.131897,-0.425180}, {-0.464172,1.168790}, {-0.606129,0.482431}, {-0.947150,-0.266069}, {0.443681,-1.910554}, {-0.022401,-0.327754}, {0.551598,0.923532}, {0.223361,-0.385604}, {0.185751,0.593156}, {-0.184030,0.754766}, {1.395817,0.028574}, {0.475188,0.054661}, {-0.277480,0.125616}, {-0.496862,-1.147994}, {-0.004339,-1.205962}, {-0.143203,-0.265497}, {0.125309,-0.043515}, {0.366992,0.512033}, {0.824571,0.106918}, {-1.068985,0.132551}, {1.832261,0.084296}, {0.263801,-1.200894}, {-1.508048,0.915831}, {0.482696,-0.426293}, {0.033090,-1.904729}, {-2.108846,-0.435991}, {-0.176570,0.183011}, {-0.552305,0.353128}, {-0.238016,0.185723}, {-1.105006,-0.940637}, {-0.819965,-0.929777}, {0.157431,0.682561}, {-0.217550,0.640647}, {0.203090,-0.654541}, {-0.077923,1.061114}, {0.255508,-1.220831}, {-0.166887,-0.641701}, {-0.366592,0.125942}, {-1.173483,0.813176}, {0.808734,-0.982589}, {-0.278042,1.861455}, {-0.065514,0.269957}, {0.906470,0.226526}, {-0.120529,-0.080793}, {0.417512,0.156899}, {-0.907569,-0.097119}, {0.263494,-0.109026}, {0.189893,-0.050584}, {-0.790905,0.939795}, {-0.170601,-0.628612}, {0.350909,-0.626418}, {-0.386598,-0.927327}, {-0.453768,0.023829}, {0.914262,0.275209}, {-0.562420,-0.398459}, {-0.630268,1.978496}, {0.221322,1.406665}, {0.469280,0.011328}, {1.173789,0.177916}, {-0.299844,0.272473}, {0.251780,-0.111125}, {-0.773700,1.126264}, {-0.141209,0.420552}, {0.799946,-0.075850}, {-1.245327,0.658100}, {0.291694,0.510028}, {-0.794185,-0.184348}, {0.558676,-0.725595}, {0.104020,0.146003}, {0.687901,0.258342}, {0.447092,1.306396}, {0.252250,-0.596987}, {-0.576601,0.104527}, {-0.528980,0.897886}, {0.319621,0.007942}, {-0.271045,-1.032491}, {0.106805,-1.171924}, {-0.117934,-0.002040}, {0.937400,0.094878}, {0.767345,0.456467}, {-0.248117,1.399906}, {-0.019431,0.029962}, {-0.553835,-0.199065}, {0.973482,-0.555913}, {-1.158272,0.011195}, {0.289042,-0.022439}, {-0.242274,0.051491}, {-0.784552,0.046357}, {0.089161,-0.070526}, {-0.347404,-0.479778}, {-0.387975,-0.227373}, {0.209500,-1.064529}, {1.636459,-0.994817}, {0.962069,-0.828699}, {0.599537,0.180033}, {0.403511,-1.375267}, {-0.030051,0.364420}, {0.255406,-0.152639}, {-0.842737,-0.083531}, {0.265162,-0.110579}, {0.023556,-1.674108}, {0.998462,-0.391540}, {-0.236300,-0.679450}, {-0.135786,0.684768}, {-0.166010,0.165157}, {0.727715,-0.372501}, {-0.189725,0.488845}, {-0.295131,-0.024017}, {0.260305,-0.897897}, {0.282883,-0.374545}, {-0.131905,0.759994}, {0.642608,-0.501903}, {0.235753,-0.019992}, {0.234917,-0.917430}, {-0.187950,-0.955321}, {-1.679033,-0.077540}, {0.057969,-0.182145}, {0.806970,0.187450}, {-1.255149,-1.161657}, {0.071722,-1.622885}, {0.743520,-0.598178}, {-0.541128,0.760663}, {-0.690128,-0.163725}, {-0.713829,1.032708}, {-0.184282,0.073560}, {-1.631399,-1.104151}, {-0.287196,-1.050644}, {-0.861881,0.837003}, {0.658268,-0.445585}, {-0.492519,-0.822022}, {-0.042083,0.453774}, {-1.060994,0.621202}, {0.552598,-0.448519}, {0.547632,-0.643752}, {-0.180073,-0.870508}, {-0.301082,0.100829}, {-0.185883,0.378342}, {-1.021355,-0.041632}, {0.835251,0.146685}, {0.367444,1.012175}, {-0.336391,0.016233}, {-1.065102,0.040814}, {-0.949472,0.846319}, {1.291102,0.795366}, {-0.487972,1.266731}, {0.385963,-1.232202}, {-0.274804,-0.575065}, {0.142511,0.996808}, {-1.127767,0.320745}, {-1.464213,-0.001272}, {-1.263870,-0.925822}, {0.440001,1.508906}, {-1.938712,-1.470684}, {-0.186008,0.087603}, {0.166957,-0.114873}, {-0.546288,0.060052}, {-0.451944,-0.677336}, {0.110307,-0.073643}, {-2.575184,-0.348193}, {0.686896,-0.114358}, {0.104536,-0.295687}, {1.742926,0.023467}, {-0.764176,0.383341}, {0.143325,0.194010}, {0.520979,0.503754}, {1.008110,-0.184279}, {0.707282,0.233438}, {-1.342322,-0.476836}, {-0.162102,-0.516986}, {-1.555440,0.272954}, {1.012432,-0.043494}, {-0.081673,1.117860}, {0.403470,0.057254}, {-0.517038,-0.110340}, {0.475128,0.752501}, {-0.489141,-0.553330}, {-0.636345,-0.926923}, {0.379515,0.423726}, {0.263556,-0.838201}, {1.364556,-0.420440}, {-0.269874,0.091490}, {-1.434258,0.014961}, {-0.590992,0.091827}, {-0.308413,0.016741}, {0.349648,-1.591085}, {-0.118712,1.184347}, {0.187251,1.433784}, {0.562964,1.318689}, {-0.861674,-0.392680}, {0.002905,0.622487}, {-0.151723,-1.179258}, {-0.070747,0.053384}, {0.525404,-0.554260}, {-0.343545,-0.118922}, {-0.507229,-0.864504}, {0.500450,-0.403323}, {0.377233,0.949879}, {-0.833561,-0.056483}, {-0.725906,-0.705636}, {0.922402,-0.108117}, {0.242458,-0.509338}, {1.107595,0.489720}, {-1.198374,-0.015819}, {-0.413664,-0.441380}, {0.218345,-1.315292}, {0.497907,-0.042786}, {1.204892,-0.699516}, {-0.555751,0.313409}, {0.379257,-0.609355}, {0.950328,-0.278547}, {-0.755355,0.813622}, {0.513696,-0.533451}, {-0.495311,0.409720}, {0.112153,-1.160556}, {0.353378,0.752034}, {0.459675,-0.527592}, {0.546631,0.123779}, {0.828528,0.384762}, {-0.369489,0.154474}, {-0.505704,0.615962}, {-0.473887,0.076201}, {0.008357,-0.357277}, {0.129246,-0.337053}, {-0.257137,-0.189718}, {-1.475479,0.652016}, {0.204440,-0.454342}, {1.032094,-0.103206}, {-1.053839,0.656926}, {0.190919,-0.204573}, {-0.069636,-0.090363}, {-1.022143,0.421546}, {0.117690,-0.596925}, {0.668920,-0.202848}, {0.414527,0.111164}, {0.569160,-0.332882}, {-0.740114,-0.838751}, {-0.811449,0.332958}, {0.165041,-0.548386}, {0.586089,1.162788}, {-0.441744,0.705830}, {0.345507,0.417786}, {-0.150969,-0.217414}, {0.980970,-0.395728}, {0.202029,0.053837}, {-0.567949,-0.756414}, {0.838055,-0.962655}, {0.185033,-0.842624}, {0.505452,-0.230980}, {0.500792,-1.312236}, {0.098343,0.520689}, {-0.927027,-0.045385}, {0.569641,0.548063}, {-0.798887,1.354409}, {-1.055338,0.516666}, {-1.035704,0.360430}, {-0.184264,0.067661}, {0.570477,0.590137}, {0.551827,0.899930}, {0.533855,1.304288}, {0.350958,-0.358284}, {-1.384382,-0.753483}, {0.601123,-2.156966}, {-0.554389,0.059956}, {-0.871086,-0.106200}, {0.558179,0.180493}, {0.531430,-0.025180}, {-0.795320,0.260424}, {0.692222,-0.238340}, {0.169459,0.823660}, {0.299030,0.761034}, {-0.698652,-0.351722}, {0.368231,0.434130}, {0.185790,-1.403230}, {-0.799883,-0.119406}, {0.736042,0.392089}, {-0.666826,-0.832812}, {-0.513339,0.050691}, {-0.587525,0.355240}, {-0.517997,0.850523}, {-0.899883,0.695032}, {-0.206738,0.938988}, {-0.699376,-0.248451}, {0.788660,-0.329191}, {-0.803143,0.755641}, {-0.347574,-0.096980}, {0.655063,-0.198669}, {0.324775,-0.654269}, {0.921286,-0.437049}, {0.744575,-0.148011}, {-1.499490,0.208673}, {1.813010,1.936063}, {-0.330382,0.942141}, {-0.175160,0.095578}, {-0.688972,0.621992}, {-0.710787,0.337475}, {0.082558,-0.051458}, {0.108929,-1.049616}, {0.411274,0.385344}, {0.016239,-0.562674}, {0.921934,0.406952}, {0.524669,-0.237757}, {-0.660776,-0.152646}, {-0.149333,0.000891}, {-0.254695,-0.615310}, {-0.756202,0.840237}, {-0.309718,-0.633714}, {-0.218646,-1.024427}, {-0.085284,0.238786}, {-0.127700,-0.176234}, {0.641768,-0.561286}, {-1.032711,-0.515069}, {1.363094,-0.095828}, {1.534582,0.380000}, {0.805601,0.320919}, {0.701193,-0.161937}, {0.262605,-0.457002}, {0.345692,-0.485455}, {0.973676,1.050191}, {0.563517,-0.896698}, {-1.052935,-0.655316}, {-0.231460,-0.146481}, {-0.979474,0.060279}, {-1.088586,-0.421800}, {0.161069,1.003289}, {0.090253,-0.088947}, {-0.547361,-1.206487}, {0.246441,1.106913}, {-0.706636,-0.015038}, {0.132891,1.002612}, {-0.295681,0.231105}, {-1.153732,-0.996986}, {-0.501629,-0.644197}, {0.295345,-0.691762}, {-1.440078,-0.607401}, {0.101169,0.934845}, {0.071043,-0.644190}, {0.614922,-0.503042}, {1.037925,-0.411965}, {-0.852186,0.229310}, {0.299200,-0.324206}, {-0.088801,-0.474293}, {-2.187987,-0.562442}, {0.874113,-0.747951}, {0.575873,-0.728991}, {-0.846189,0.157840}, {-1.429388,0.899668}, {0.146948,-0.004011}, {1.408618,-0.212564}, {-0.215899,-0.253146}, {1.498321,-0.772136}, {-0.877108,-0.120817}, {1.817143,0.201466}, {-0.209176,0.538539}, {1.517331,-0.539165}, {-0.251656,0.628209}, {-0.629867,1.537735}, {0.022098,1.206070}, {-0.360631,-0.347506}, {0.752599,0.256274}, {0.417381,-0.329550}, {-1.519437,-1.728036}, {-0.414089,-0.630542}, {-0.364826,0.403330}, {0.581478,0.594084}, {0.663563,0.961159}, {0.825272,1.573900}, {-0.367023,-0.988905}, {-0.073497,0.708838}, {1.148249,-0.415716}, {-0.101004,0.106337}, {-0.928442,-1.408122}, {0.469680,-0.047484}, {-0.960126,-0.904661}, {-1.132264,-0.188708}, {-0.016658,-0.199830}, {-1.075654,-0.338366}, {0.061431,1.126846}, {-1.081800,-0.415970}, {1.123256,-0.127503}, {-1.145737,-0.191834}, {-0.793043,-0.118410}, {-1.196367,1.014650}, {1.527032,-1.381034}, {0.647338,-0.080257}, {-0.804731,0.453449}, {-0.516077,0.480638}, {0.530282,-0.739929}, {0.269033,-1.963435}, {1.477697,0.784988}, {0.311743,0.788590}, {-0.325671,0.653941}, {-0.233521,-0.206602}, {-0.278201,0.128288}, {1.135366,-1.284597}, {-0.763170,-0.012900}, {0.438701,0.811553}, {-0.249020,-0.316173}, {0.561871,-0.138876}, {0.726334,1.041021}, {0.098118,-0.710592}, {-0.572228,0.067081}, {0.734250,0.106212}, {-0.105387,0.013023}, {-0.089425,0.237119}, {-0.955892,0.328177}, {-0.219179,0.170715}, {0.931844,-0.349402}, {-0.006197,-1.310244}, {1.151184,0.469394}, {1.308615,1.117283}, {-0.431605,0.200205}, {0.191977,-0.367832}, {0.236475,0.821365}, {-0.941490,0.282290}, {-0.006772,0.760460}, {0.184771,-0.364421}, {-0.329091,-1.396452}, {-0.459936,0.172703}, {-0.153217,1.302087}, {0.098202,-0.527384}, {-1.355245,0.009842}, {-0.924139,0.157557}, {-0.100397,-0.408893}, {0.217141,-0.593144}, {-0.156430,1.211818}, {0.011004,-0.314417}, {0.131301,-0.060106}, {0.399402,-0.219055}, {0.392387,-0.631019}, {-0.341266,0.461355}, {0.426031,-0.852869}, {-0.101110,0.790776}, {-0.436091,1.765631}, {0.568398,0.767510}, {-0.271711,-0.480995}, {-0.249560,-0.882825}, {-0.381369,1.034425}, {-0.503866,0.598387}, {0.876082,-1.385329}, {0.063173,0.213468}, {0.543796,-0.225159}, {-0.032141,0.017681}, {0.493171,0.162913}, {0.686035,0.268915}, {0.175293,1.136665}, {0.157721,0.697172}, {-1.127321,0.592262}, {0.166970,-0.343138}, {0.194866,0.189738}, {-0.288449,1.476208}, {-0.421817,1.014786}, {0.126023,-0.775427}, {0.394521,-0.989582}, {-1.089528,-0.055308}, {0.200147,0.011439}, {1.903990,0.358153}, {0.664392,-0.905588}, {0.539781,0.841634}, {0.582682,0.671146}, {-0.024278,-0.572103}, {0.185635,-0.697631}, {0.106066,0.699490}, {0.246818,0.300906}, {1.189828,-0.227730}, {-0.013825,-0.769516}, {-0.684393,0.018085}, {1.218080,-1.701471}, {0.424389,-0.592234}, {1.403248,-0.017446}, {0.013415,-0.977801}, {0.369274,0.430111}, {0.381919,1.117175}, {0.816133,-0.715540}, {0.035215,-0.105043}, {0.556964,-0.135119}, {-0.673203,1.053060}, {-0.516621,0.494257}, {0.450111,-0.035975}, {-0.421140,1.411773}, {-0.535489,0.037563}, {-0.574600,-1.377926}, {0.032767,-0.640636}, {-0.459555,-0.203066}, {-0.434567,0.545250}, {0.650357,0.652128}, {-0.892425,1.283559}, {0.692184,0.557113}, {0.751736,-0.211262}, {0.313737,-0.163152}, {-0.247115,-0.034955}, {0.491416,-1.537278}, {0.930530,-1.108210}, {-0.556112,-1.391934}, {-0.961302,0.326983}, {1.662905,-0.278552}, {-0.313318,-1.433712}, {-1.000577,0.559144}, {0.216728,0.878720}, {0.487019,-0.649528}, {-0.623891,-0.371940}, {-0.040803,0.208126}, {0.315032,0.149693}, {-0.198370,-1.011750}, {-0.824018,1.104106}, {-0.353701,0.822379}, {-0.123394,-1.055204}, {-0.737870,-0.757284}, {-0.634799,-0.464904}, {-1.763571,-0.369890}, {0.047103,0.948021}, {0.847644,0.119019}, {0.504559,-0.136831}, {0.049168,0.250676}, {-0.407130,0.581465}, {-0.424114,-0.237635}, {-0.576690,-0.447438}, {-0.534590,-0.285313}, {-0.525026,0.509418}, {0.991170,0.776430}, {0.082037,-0.154868}, {-0.738468,1.113500}, {-1.376870,-0.237227}, {0.182010,0.599488}, {-0.012601,0.360641}, {-0.874033,0.846574}, {-0.453102,0.527465}, {-0.140117,0.979272}, {0.469908,-0.563083}, {0.494906,0.205413}, {-0.152124,1.445632}, {-1.070697,-0.417032}, {0.620584,1.098607}, {0.647829,-0.212808}, {0.329902,0.206018}, {0.769611,0.068876}, {0.595618,-1.179969}, {0.134816,1.155849}, {0.132816,-0.826840}, {-0.204456,-0.005218}, {0.565919,-0.406434}, {1.076761,0.279015}, {-0.824357,-0.318681}, {0.536584,1.190336}, {-0.837780,-0.783722}, {-0.365623,-0.592565}, {0.140732,-0.354577}, {-0.318893,0.197879}, {-0.650844,0.142190}, {0.611141,-0.819490}, {0.824394,-1.997252}, {1.188414,-0.772520}, {0.495803,0.456638}, {-0.793332,1.358671}, {-1.208357,0.747812}, {0.639802,-0.096943}, {0.128095,-0.588363}, {0.114812,0.593784}, {-0.189818,-0.088502}, {-0.281234,0.074641}, {-0.318011,0.468384}, {-0.032031,0.092814}, {0.280203,0.824080}, {0.375190,0.631836}, {0.434939,-0.102007}, {-0.537006,-1.514559}, {0.203213,-0.319343}, {-0.141183,-1.038148}, {-0.218501,-0.477195}, {-0.338538,-0.751898}, {-0.686068,0.283823}, {0.062352,1.559887}, {-0.241352,-1.511161}, {0.720157,-0.832961}, {0.558763,-0.548703}, {0.263548,0.902844}, {0.842079,-0.167704}, {-0.542509,0.454977}, {0.903157,0.620579}, {0.964410,0.047286}, {-0.955672,0.944376}, {0.860074,1.300853}, {0.512725,0.794600}, {-0.450602,0.516415}, {-0.447504,0.181518}, {-0.437303,0.401800}, {-0.578495,-0.043247}, {0.617911,-0.345819}, {-0.552715,-1.044463}, {-0.867800,-0.875333}, {0.481378,-0.046626}, {0.191387,-0.016629}, {-0.518826,-0.671362}, {-0.076694,0.392508}, {0.019799,-0.500523}, {1.539289,0.191522}, {0.268896,0.472991}, {-0.122127,-0.508825}, {0.314364,-0.019904}, {-0.144547,0.440958}, {0.265538,0.198174}, {0.863341,-0.176679}, {0.122943,-0.154642}, {0.043506,0.107960}, {0.099631,-0.078301}, {-0.560396,0.316725}, {1.286545,0.635450}, {-0.358192,-0.438848}, {1.039133,-0.132411}, {1.186643,0.405783}, {-1.001651,-0.156892}, {-1.179719,-0.490621}, {-0.721972,0.717535}, {-1.029560,-0.455562}, {-0.077975,0.563804}, {-0.813295,0.621995}, {0.618189,0.598485}, {-1.199978,-0.777894}, {-0.290504,0.990481}, {-0.031754,0.345115}, {-0.368322,1.005785}, {0.599679,-0.895852}, {-0.590234,-0.096684}, {-0.496663,-0.691375}, {0.088853,0.700215}, {-0.183732,0.242244}, {-0.643606,-0.335184}, {0.121277,-0.906499}, {0.241237,1.352691}, {-0.254636,-0.459023}, {-0.621434,-0.262442}, {-1.261593,0.823850}, {0.524973,0.145684}, {0.664583,-0.298579}, {0.609610,-0.078780}, {0.203934,-0.123287}, {-0.774268,-0.471319}, {-0.207046,1.271445}, {-0.236533,-0.485094}, {-0.597981,1.115511}, {-0.406298,0.760957}, {0.694472,-0.379866}, {-0.372914,0.292032}, {0.784017,0.922657}, {0.297901,0.163029}, {-0.904827,-0.819312}, {0.561786,0.562537}, {-0.239547,0.126229}, {-1.407316,-0.320167}, {-0.134303,-1.366530}, {-0.531725,-0.336818}, {0.623285,0.322439}, {-0.335097,0.897800}, {0.695935,-0.312405}, {0.095367,0.409572}, {-0.765337,-0.211423}, {-1.131867,-0.623383}, {-0.267968,-0.286704}, {-0.404970,-0.309191}, {1.379609,0.251604}, {0.331291,0.143124}, {-0.913650,0.804486}, {-1.218644,0.871913}, {0.039236,0.744136}, {1.449769,0.975760}, {-0.210467,0.262295}, {0.405987,0.424655}, {0.999384,0.627690}, {1.164600,0.133861}, {-0.175488,1.427081}, {-1.744108,0.555451}, {0.302610,-0.688230}, {-0.529522,-1.322584}, {-0.223304,-0.289473}, {0.668378,0.179522}, {0.084177,0.492469}, {0.266502,-0.068043}, {0.764533,-0.106614}, {-0.317832,0.270595}, {-0.444143,-0.228776}, {0.108340,-0.373711}, {-0.027397,-0.010145}, {-0.613227,0.902768}, {-0.557055,0.429239}, {0.373258,-0.228158}, {-0.631503,-0.356203}, {0.643938,-0.284783}, {-0.784050,-0.572626}, {-0.207974,-0.145033}, {0.006310,0.173822}, {-0.106005,0.111244}, {2.363675,-0.471391}, {0.972607,0.013920}, {1.130367,-0.608325}, {-0.479318,-0.017402}, {-0.647306,0.746952}, {1.365227,0.174166}, {0.586382,-0.751731}, {-0.467157,1.701264}, {-0.531539,0.869207}, {-0.610338,0.132307}, {0.356638,0.108132}, {-0.568649,-0.676443}, {0.089214,-0.008608}, {-0.984149,0.709467}, {0.597348,0.413095}, {0.139796,1.022797}, {-1.032483,-0.315232}, {0.021779,-1.284263}, {0.891663,-0.443996}, {-0.684480,-0.817773}, {0.401035,0.351907}, {0.217196,-0.252169}, {-1.349881,-0.517501}, {0.816430,-0.091990}, {-0.502108,-0.698291}, {-0.086025,0.915485}, {-0.682122,-0.322046}, {0.706000,0.763462}, {0.796854,0.455243}, {1.366467,1.196075}, {0.417067,-0.256263}, {0.015371,0.451181}, {-0.400583,0.178607}, {0.179912,-0.117066}, {0.597156,-0.688654}, {-0.661676,-0.820197}, {0.085683,-0.217177}, {-0.706450,-1.381830}, {0.028548,1.200703}, {-0.920667,0.289784}, {0.160350,-0.351146}, {-0.804724,-0.618602}, {0.024888,0.647150}, {-0.098113,0.173361}, {0.697754,0.291105}, {-1.408036,1.022388}, {0.469920,0.445517}, {0.384059,0.532228}, {-0.151818,0.944132}, {-0.090433,0.327546}, {-0.879679,-1.070965}, {-0.495967,0.063480}, {-0.358409,-0.789978}, {-0.699352,-0.883109}, {-1.947079,0.913473}, {-0.641222,-0.030654}, {-1.419634,-0.263358}, {-0.287427,1.075618}, {1.041925,0.333373}, {1.035917,-0.384391}, {-0.742460,0.756039}, {0.484778,0.439710}, {-0.454690,-0.553386}, {-0.860744,-0.035129}, {-0.063566,0.489990}, {0.107992,0.565035}, {-0.016311,0.236242}, {0.309996,0.522161}, {0.839932,1.127528}, {0.213453,-1.064570}, {-0.716013,0.561550}, {-0.277888,-0.545995}, {-0.080229,-0.275056}, {-1.231363,-0.438038}, {-0.221378,1.152323}, {0.465562,-0.015422}, {-0.636983,-1.776097}, {0.994972,1.153935}, {-0.840363,-1.044283}, {-0.147775,-0.659287}, {-1.008426,1.195206}, {0.221680,0.312210}, {0.391826,0.267132}, {-0.300629,0.352818}, {1.088779,0.848130}, {-0.087740,-1.562253}, {-0.636828,0.356063}, {0.255724,-0.928242}, {0.197228,-1.313775}, {-0.363243,-0.477933}, {0.342319,1.332603}, {-0.687342,-0.697300}, {0.588366,-0.220649}, {0.718963,1.534212}, {0.378261,-0.815048}, {0.008267,-0.048339}, {-0.337132,-0.394747}, {-0.429718,-1.955695}, {0.422312,0.648188}, {-0.225384,-1.038982}, {-0.074649,-0.432788}, {1.197830,0.224400}, {0.179256,0.174055}, {0.324657,-0.153234}, {-0.008755,-0.720614}, {1.171336,1.386902}, {-0.502534,0.544987}, {-0.874559,-0.045977}, {0.641911,0.309244}, {-0.852252,-0.189481}, {0.905778,-0.240689}, {0.805296,0.190095}, {0.583950,0.500505}, {0.927808,-0.289025}, {-0.161069,-1.142641}, {-0.829648,-1.067679}, {0.160495,-0.177610}, {-0.669901,0.538416}, {-0.417880,-0.610111}, {-0.641121,0.118270}, {-0.307481,0.182497}, {-0.098936,-0.300794}, {0.079945,-1.126696}, {0.767377,-0.205567}, {-0.229164,-0.681283}, {-0.938784,0.869544}, {0.729480,-0.893640}, {0.318684,0.291873}, {-0.063858,-1.269459}, {-0.394907,0.032640}, {0.041145,-0.695384}, {0.903121,-0.762764}, {-0.236944,-1.403906}, {0.010014,-0.107070}, {-0.144645,0.624289}, {0.889531,-0.018986}, {0.956051,1.297021}, {-0.096103,-0.738099}, {-0.795984,-1.097452}, {-0.394740,0.151985}, {0.109809,-0.515633}, {1.331729,-1.680084}, {1.546974,0.279037}, {-1.785160,-0.221012}, {0.122575,-0.919889}, {-0.788030,1.561325}, {-0.205935,0.088416}, {-0.265662,0.431570}, {0.115537,0.899615}, {0.471598,0.669058}, {-0.214156,0.254611}, {0.970194,1.044374}, {-0.486194,0.026669}, {0.232387,0.010928}, {0.162715,0.243238}, {-0.554603,0.305242}, {0.050873,0.089235}, {0.866591,0.431844}, {-0.137254,0.419949}, {-0.444023,-0.814751}, {0.405856,0.278733}, {-0.006847,-0.084791}, {0.661887,0.366497}, {0.036938,-1.474893}, {0.074623,0.527883}, {-0.932561,-1.217377}, {-0.579955,-0.770222}, {0.496777,-0.398753}, {0.415390,0.029064}, {-0.368869,0.318877}, {-0.083926,0.115238}, {-0.165148,0.315531}, {-0.201764,-1.548454}, {-0.837318,-1.399309}, {0.078016,-0.732903}, {-0.094333,-0.160290}, {0.732228,-1.029345}, {0.690766,0.425063}, {-0.896572,-0.514863}, {0.781318,-0.797095}, {-0.121511,0.255802}, {1.919578,-0.769384}, {-0.060926,0.430455}, {-0.409906,-0.249459}, {-0.460218,-0.783980}, {-0.191177,0.609070}, {1.020451,-0.427484}, {0.388170,-0.559406}, {0.583320,0.030542}, {-1.179019,0.739794}, {1.513305,0.344903}, {-1.082705,-0.638275}, {-0.426897,0.254435}, {-0.481466,0.047423}, {0.330028,-0.364721}, {0.571710,0.131679}, {0.796521,-1.303731}, {-0.192941,-0.043661}, {-0.182032,1.445423}, {-0.370906,0.132620}, {1.865372,-0.256694}, {0.122110,-0.042592}, {-0.484049,0.625328}, {0.498676,-0.447230}, {-0.698297,-0.450146}, {0.197802,0.388351}, {-0.270285,0.053455}, {0.113784,-0.200340}, {0.144229,0.267333}, {0.085266,1.105437}, {-0.021050,1.100430}, {1.668020,-1.591069}, {1.074784,-0.878131}, {-0.687458,-1.410101}, {0.945055,0.057837}, {-0.968993,-0.249526}, {-0.095768,-0.004312}, {0.539684,-0.120041}, {-0.690336,-0.784441}, {-0.070364,0.818636}, {0.306879,-0.280708}, {-0.072888,0.404632}, {-1.158507,1.076282}, {-1.311557,0.016792}, {-1.276006,0.450810}, {0.052812,-0.238705}, {1.449476,-0.258773}, {-0.935995,-0.005463}, {-0.355631,0.492401}, {-0.612492,0.524131}, {0.838550,0.621703}, {0.198766,-1.213802}, {0.114797,-0.883231}, {0.323205,-0.912574}, {-0.492987,0.031387}, {0.613420,-1.264507}, {-0.452913,-0.543444}, {0.252574,0.848988}, {0.177081,1.145831}, {-0.172781,-0.088674}, {-0.380519,-0.210205}, {-0.333186,-1.162848}, {0.424112,-0.009379}, {-0.876016,0.594356}, {0.191680,-0.347826}, {-0.001609,-0.647491}, {-0.410415,-0.735499}, {-0.001733,-0.310524}, {-0.323841,0.482596}, {-0.242955,0.027559}, {0.502454,0.491188}, {0.014760,0.136650}, {0.969240,-0.064603}, {-0.230129,-0.410373}, {0.068982,0.158729}, {-0.264938,1.121409}, {-0.330733,-1.289736}, {-0.310857,-0.416680}, {-0.995101,0.426949}, {0.044670,-0.644963}, {-0.370186,-0.419359}, {-0.198722,0.626537}, {0.250446,-0.321014}, {-0.199294,0.428196}, {0.287559,0.661812}, {-0.819334,-0.182923}, {0.627230,0.073635}, {-0.254799,0.086437}, {0.629778,-0.238849}, {-0.214531,-0.833867}, {-0.370971,-1.340886}, {-0.838782,0.085272}, {0.699287,0.326143}, {0.969557,0.265905}, {0.224255,1.026885}, {-0.705422,0.039940}, {2.677294,0.824637}, {-0.872479,0.726054}, {-0.356049,-0.644072}, {1.247068,-0.283382}, {-0.052734,0.460700}, {-0.219080,-0.773459}, {-0.404964,1.015079}, {-0.613011,-0.740705}, {-0.224677,0.053237}, {0.894221,0.740370}, {1.156185,-0.712990}, {0.292658,-0.216708}, {-0.066752,1.055119}, {1.357077,0.220257}, {0.460298,0.433686}, {-1.604282,0.281681}, {0.013828,-0.330717}, {0.170076,-0.933305}, {1.041761,-0.252779}, {-0.246114,-0.576060}, {1.480525,0.007697}, {0.441859,0.826016}, {0.295619,-1.276915}, {0.915688,0.319889}, {0.022048,0.222383}, {1.378602,-1.120309}, {-0.027128,0.227251}, {-0.029159,0.234012}, {-1.232345,-1.709367}, {0.443828,0.107305}, {-0.853740,-1.028442}, {0.423166,-0.208449}, {0.437276,0.123764}, {-0.405086,-0.566809}, {-0.459850,-0.615080}, {0.015966,-0.560154}, {-0.524545,0.824488}, {0.590298,1.680262}, {-0.074765,1.037196}, {1.410833,-0.872378}, {0.595534,-0.084257}, {0.283239,-0.652858}, {-0.046879,-0.046124}, {-0.369435,0.393944}, {1.852725,0.076027}, {-1.092554,-0.019375}, {-1.380574,-1.233999}, {0.377688,0.527289}, {-0.179858,0.250972}, {0.411598,0.469015}, {0.284770,-0.983034}, {0.950896,-0.086210}, {0.315096,0.753994}, {-0.153846,-0.582036}, {-0.642368,-0.187750}, {0.048072,0.639136}, {-0.556765,-1.105212}, {0.180486,-0.178092}, {0.924552,-0.298329}, {-0.232289,-1.459794}, {-0.210924,-0.352326}, {-0.743565,0.331766}, {0.804067,-0.756999}, {-1.120228,1.402332}, {-0.563865,-0.766699}, {-1.241026,-0.016935}, {-1.083249,0.663982}, {-0.696610,0.197940}, {0.240815,-1.001368}, {0.338313,-1.016316}, {-0.333358,-0.619444}, {0.114418,-0.274406}, {-0.048887,0.026654}, {0.319559,-0.940490}, {-0.772192,-0.627506}, {0.732077,0.628962}, {-0.517531,-0.461387}, {0.366764,-0.719179}, {0.537746,0.869680}, {0.349716,-0.212016}, {-1.339703,0.494797}, {-0.261270,0.480154}, {-1.071839,-2.066688}, {-0.370999,-0.038925}, {-0.747227,0.085586}, {-0.942602,-0.057338}, {-0.072358,1.097723}, {-0.205848,-1.136328}, {0.597227,0.197329}, {0.676518,0.381645}, {-0.874854,-0.479414}, {-1.999738,-0.565455}, {-0.664048,-0.574682}, {0.186569,0.411274}, {-0.110267,-0.357864}, {0.302705,-1.743357}, {-0.319344,-0.476152}, {-0.640334,-0.720226}, {-0.910033,-0.422789}, {-0.208408,0.548207}, {-0.964300,0.002179}, {0.824444,0.424217}, {-1.032269,-0.762202}, {0.105175,0.447058}, {-0.012006,0.049305}, {-0.937920,0.289750}, {-1.253273,0.757789}, {-0.762061,0.328438}, {-0.241415,1.027135}, {0.243270,0.013979}, {-1.109143,-0.208914}, {0.090512,-0.386316}, {1.503883,0.622403}, {0.175205,1.011719}, {0.386237,-0.727356}, {1.030490,-0.207293}, {-0.934681,-0.637268}, {0.390874,0.381332}, {0.183902,1.098244}, {-0.785477,1.103963}, {0.665390,0.256809}, {0.263688,-0.503673}, {-0.166081,-0.926605}, {-0.557337,0.532023}, {-0.195427,1.271505}, {-0.474249,0.447195}, {0.443875,1.233854}, {-0.269777,-0.979940}, {-0.022060,0.544843}, {0.313713,-0.853284}, {-0.096390,2.008847}, {0.439922,-0.335096}, {0.896690,-0.588963}, {-0.844743,0.183750}, {0.781349,-0.755606}, {-0.765362,0.170504}, {-1.628206,-0.216829}, {0.500102,-0.059625}, {-0.304791,0.107158}, {0.557697,-0.477804}, {0.583642,0.627863}, {-0.121640,-0.409209}, {-1.120829,-1.076884}, {-0.536931,0.178972}, {-0.417448,-0.458302}, {0.718477,-1.059868}, {0.610038,-0.423881}, {0.999029,-0.368049}, {-0.197010,0.618818}, {-0.092802,0.280660}, {-0.884475,0.746423}, {-0.218251,0.164965}, {-0.421409,0.312894}, {-0.658414,0.399046}, {0.745212,-0.200538}, {0.941667,-0.785267}, {0.521849,0.859422}, {-0.473471,0.762251}, {0.397426,-0.176657}, {-0.323150,0.760653}, {-0.998414,1.716395}, {0.740360,-0.938944}, {0.023348,1.116443}, {1.069598,-0.382364}, {-1.043662,0.236812}, {-0.382172,-0.980040}, {-0.349019,0.364638}, {-0.298100,-1.107602}, {0.456000,0.116486}, {0.877536,0.868085}, {0.048209,-1.069550}, {0.661781,-1.278720}, {0.359336,0.813250}, {-0.123966,-0.468063}, {0.430191,0.023114}, {-0.135566,-0.319366}, {0.968871,-0.115512}, {-0.394328,-0.170491}, {-0.009694,-1.061476}, {0.046248,-0.139918}, {0.368727,0.177700}, {0.414373,-0.767674}, {0.759806,0.895111}, {-1.039452,-0.596694}, {0.098206,0.950569}, {-1.174535,-0.768597}, {0.623601,-0.766489}, {1.209239,-0.052878}, {-0.452015,-0.009341}, {0.690382,0.542857}, {-0.108723,0.123140}, {-0.529691,0.324165}, {1.478203,-0.911289}, {1.068649,-0.374113}, {0.299869,0.396780}, {0.430316,0.155351}, {0.013919,-0.121839}, {0.039700,0.017585}, {-0.571082,-0.704321}, {-0.736133,1.469112}, {0.703268,-0.091642}, {0.386893,0.603817}, {0.172514,-0.849675}, {0.607745,0.054904}, {0.271231,-0.590061}, {0.913552,-0.116009}, {-1.138750,0.486391}, {-0.076353,-0.638643}, {-0.498974,0.588957}, {-0.246757,-1.191164}, {-0.997522,0.317823}, {-0.041872,0.542933}, {1.096147,0.311412}, {-0.397941,-0.073418}, {-0.674415,-0.476303}, {0.129485,-0.144863}, {-0.320564,-0.468116}, {-0.409642,-0.561575}, {0.221420,-0.215094}, {-0.958367,0.609774}, {-0.465613,0.040251}, {0.382094,-1.384503}, {0.918899,0.048990}, {-0.078886,0.735926}, {-0.090336,-0.471819}, {-0.263712,-0.599983}, {0.620502,-0.130819}, {-0.335282,0.318506}, {0.052591,0.963759}, {-0.671888,0.668188}, {-0.372171,-0.042465}, {0.471828,-0.469881}, {-0.393130,-1.355191}, {0.245535,-0.797273}, {-0.293227,-0.997773}, {-0.191794,-0.927120}, {0.484915,-1.363790}, {0.318464,0.435871}, {-0.854547,-0.351262}, {-0.218097,-0.360717}, {0.263629,-0.076017}, {-0.414797,0.096633}, {0.897394,-0.109831}, {0.962227,-0.804732}, {0.151329,1.627499}, {0.990435,0.235665}, {0.290903,0.311037}, {0.160010,-0.053403}, {-0.069998,0.302710}, {0.084036,0.853274}, {0.560929,-0.560850}, {-0.106112,0.314448}, {-0.421578,-0.268470}, {-0.785387,-0.750187}, {-1.189174,-0.084856}, {0.466530,0.976102}, {0.880929,-0.457008}, {-0.729195,-0.675082}, {0.104374,-0.633442}, {0.757444,-0.949991}, {0.008917,0.692426}, {-0.338838,0.532756}, {0.794670,0.717730}, {-0.709404,1.043684}, {0.579162,0.487640}, {-0.404886,0.060629}, {1.349450,-0.355399}, {0.770612,-1.464736}, {0.347219,0.274775}, {0.354646,-0.020434}, {0.465359,-0.985538}, {0.385781,1.068191}, {-0.106262,1.103081}, {-0.599815,-0.997276}, {-0.492767,-0.081408}, {-0.245567,0.057807}, {0.120883,0.308476}, {-1.143013,-0.054048}, {0.398061,0.717026}, {-0.600222,0.456605}, {-0.984594,-0.328664}, {0.330060,0.028399}, {0.273902,-1.559059}, {0.491818,0.871726}, {-0.827789,-0.540048}, {0.065844,0.068222}, {-0.808401,1.160869}, {-1.274150,-0.355051}, {0.561683,0.271525}, {-0.413291,-0.224445}, {-0.344482,-0.270754}, {-0.669051,0.246237}, {-0.049024,-0.250489}, {0.977734,-0.366526}, {-0.742840,0.329251}, {-0.793661,-0.540377}, {-0.164454,-0.041182}, {0.796305,-0.095571}, {-0.168732,0.018351}, {-0.010513,1.211849}, {-0.994831,-0.709750}, {-1.282949,0.285938}, {0.864976,0.026893}, {-0.160674,-0.991054}, {0.235256,0.436919}, {1.212801,-0.909780}, {0.529844,0.976362}, {0.946160,-0.680521}, {0.094877,0.672648}, {-0.675454,-0.322118}, {0.305372,-0.550007}, {0.912401,1.035879}, {1.131467,-0.138706}, {-0.253731,-0.964860}, {0.051329,-1.529624}, {-0.113924,0.173806}, {0.884102,0.159153}, {-0.227632,0.877234}, {1.010051,-1.543880}, {0.809937,-0.173659}, {0.332144,-0.243052}, {-0.906095,0.676593}, {0.073033,-1.548259}, {0.458666,0.050823}, {-0.289121,1.068049}, {-0.383643,0.011142}, {0.134420,0.076707}, {0.466514,-0.043312}, {0.438283,-1.522376}, {0.163508,-0.193750}, {0.487026,0.542501}, {-0.200524,0.459230}, {0.262819,1.505884}, {0.653087,-0.201042}, {0.233565,-0.547870}, {-1.017089,0.878535}, {0.228269,-0.679254}, {1.248531,-0.791408}, {0.439579,1.697946}, {0.592039,-0.339903}, {-0.109908,0.453321}, {-1.115247,0.010700}, {-0.164818,1.131623}, {2.025510,-0.505251}, {-0.309346,-1.373256}, {0.537120,-0.360283}, {-0.104894,0.296882}, {0.024801,0.978248}, {-0.937777,-1.070944}, {-0.198826,-0.783295}, {-1.127480,-0.610347}, {0.298001,0.024948}, {0.145368,0.794536}, {0.612907,-0.059654}, {0.782929,-0.048403}, {-0.435378,-1.436197}, {0.169811,0.516786}, {-0.116510,0.319035}, {0.538300,0.841565}, {-0.155311,0.492565}, {0.620200,0.730660}, {-0.015916,0.419497}, {0.164181,-1.630272}, {0.824648,0.320043}, {-1.560239,0.572704}, {-0.252823,0.296962}, {-0.746081,0.958339}, {0.082239,-1.217646}, {-0.567736,0.000241}, {0.427482,0.476159}, {-0.459043,1.161889}, {0.254120,-0.488463}, {-0.023313,-0.723543}, {-0.293002,-0.169112}, {0.089490,-0.261529}, {0.247961,0.791363}, {-1.110516,-0.166830}, {0.983670,-1.198302}, {0.519375,-0.785171}, {-0.619925,0.150262}, {0.569926,0.149914}, {0.719057,-0.514677}, {0.458531,-0.475477}, {0.571393,1.036797}, {-0.827266,-1.069063}, {-0.208821,0.601468}, {0.601543,-0.246378}, {-0.545977,-0.481944}, {-0.142618,-0.493885}, {0.104624,-0.885512}, {-0.806208,-1.172703}, {-0.327891,-0.764616}, {-0.111412,0.778570}, {-0.025417,-0.823612}, {-0.064253,0.146300}, {0.897841,0.233453}, {0.170462,-0.208221}, {0.469815,0.534622}, {0.464492,0.082733}, {0.852167,-0.277563}, {0.042076,-0.252323}, {-0.639666,-0.218750}, {0.344882,-0.710013}, {-0.897684,0.020080}, {0.969355,-0.131562}, {-1.412936,0.152039}, {0.762647,-1.063394}, {-0.706248,-0.458628}, {-0.193334,0.251486}, {-0.278574,-0.609158}, {-0.000444,0.167283}, {-0.191255,-0.598270}, {0.113407,0.082497}, {1.361065,0.155568}, {-0.171486,0.161889}, {1.639261,-0.316890}, {-0.129987,-0.110577}, {-0.802764,1.330457}, {-0.147106,0.095728}, {0.820872,1.110744}, {-0.391447,0.136340}, {0.927357,0.908692}, {1.225880,-0.741652}, {0.166896,-2.018048}, {-0.072197,-0.734190}, {-0.188537,0.562295}, {-0.419001,0.597966}, {1.012061,-0.032231}, {-1.265661,-0.098692}, {-0.363672,0.493087}, {-1.277901,0.568014}, {0.094125,0.641038}, {0.366210,-0.871913}, {-0.406243,1.248265}, {-0.265139,0.291993}, {-0.711300,-0.517739}, {0.551969,0.211300}, {0.863097,0.620748}, {-0.791252,0.292823}, {-0.859584,-0.514999}, {-0.222594,0.242104}, {-0.529240,1.091900}, {0.056589,-0.206772}, {-0.206678,0.117667}, {-0.372107,0.346623}, {0.197375,0.175770}, {0.109383,-0.285298}, {-0.128606,-0.575351}, {-1.350885,-0.629351}, {-0.549311,-0.890107}, {-0.052058,-0.399744}, {0.117226,-0.822548}, {-0.522921,-0.747784}, {0.696853,0.225147}, {1.404505,0.031853}, {-0.199716,0.923465}, {-0.366027,-0.965298}, {0.254400,0.565191}, {0.720813,-0.011776}, {0.048742,0.485636}, {0.463885,-0.445094}, {-0.354658,-0.258331}, {-0.512308,0.875492}, {0.109512,-0.704183}, {-0.359123,-0.222049}, {2.094077,-0.596104}, {0.099119,0.151596}, {1.272189,-0.870022}, {-1.203661,0.080126}, {-0.402370,-0.038618}, {-1.465566,0.187786}, {-0.188615,-0.551253}, {-0.144342,-0.651031}, {0.466536,-0.902577}, {0.442013,-0.756855}, {0.651331,0.059349}, {-0.580323,-0.556246}, {1.443369,0.532876}, {-0.410520,0.142482}, {-0.638481,-1.620247}, {1.107948,0.449859}, {-0.053538,0.595051}, {-0.660756,0.271631}, {-0.110972,0.102598}, {-0.853215,0.693121}, {-0.815886,0.697183}, {0.444707,0.103685}, {-0.147454,1.248558}, {-0.304216,0.147728}, {-0.380406,0.389584}, {0.869539,-0.442373}, {0.367415,0.370479}, {-0.860426,0.294945}, {-0.310280,-0.101136}, {-0.724660,-0.542268}, {0.084686,-0.384017}, {0.620385,-0.343553}, {0.193432,-0.835223}, {0.342748,0.073244}, {-0.208107,0.866350}, {-0.433622,-0.098584}, {-1.050180,0.800354}, {1.140817,-0.095778}, {0.074059,0.720540}, {0.324579,-0.250899}, {0.908664,-0.424491}, {-0.349658,0.492219}, {-0.416368,-0.443491}, {-0.093378,0.249512}, {-1.388730,0.610637}, {0.516564,-1.098854}, {-0.860684,0.484278}, {-0.183881,-0.463325}, {-0.461003,-0.667445}, {0.768848,0.198854}, {0.229416,-1.256209}, {0.480655,-0.403404}, {0.479239,-0.007571}, {-1.318306,0.738942}, {1.469443,-0.959983}, {0.253482,0.333056}, {0.017190,1.742204}, {-0.519932,0.898752}, {-0.452267,-0.316200}, {0.022717,1.692417}, {0.796237,-0.765617}, {-0.812041,-0.198540}, {0.884469,-0.078862}, {0.030191,-0.787176}, {1.126078,-0.516637}, {-1.102333,0.446474}, {0.446080,-0.315343}, {-0.062631,-0.265291}, {-0.853606,-0.044797}, {1.077386,-0.224226}, {-0.147136,-0.399345}, {0.166629,-0.401479}, {0.257271,0.174285}, {-0.244527,-0.825127}, {-0.798872,0.420259}, {0.491059,0.151109}, {-1.041543,-1.289491}, {-0.331789,-1.527598}, {-0.083175,0.394579}, {-0.323992,0.766890}, {0.902158,0.010174}, {1.662799,-0.272640}, {-0.497409,-0.677542}, {-0.849235,0.346076}, {0.747101,0.412698}, {1.611062,0.866991}, {0.163223,-0.262013}, {0.741905,0.535948}, {-0.239992,0.315095}, {1.073907,0.578535}, {-0.344179,0.817836}, {-0.620181,-0.707425}, {0.834661,0.312322}, {-1.019361,-0.609310}, {1.785614,-0.162301}, {0.529534,0.672965}, {0.486672,0.153629}, {-0.288024,-0.719498}, {0.413983,0.270909}, {1.374466,0.087559}, {0.163283,0.494934}, {-0.234819,0.954579}, {0.012206,-0.678054}, {1.572847,-1.076632}, {-0.599282,-0.633372}, {1.095665,-0.655620}, {-0.684687,-0.201969}, {-0.549440,0.045874}, {0.322676,0.581203}, {0.148109,0.304196}, {-0.253076,0.734066}, {-0.251967,0.042417}, {0.045715,-0.031266}, {1.116937,1.123835}, {0.483493,0.290907}, {0.068072,0.333893}, {-0.429817,-0.931647}, {-0.480528,-0.164660}, {-0.775073,0.535179}, {-0.275572,-0.740592}, {0.448695,-0.532992}, {0.393924,-0.730806}, {-0.932048,-1.011165}, {-0.001888,0.395913}, {-0.030311,0.267041}, {0.251709,-0.163471}, {0.758127,1.170676}, {-0.971904,0.719459}, {-0.677315,1.283372}, {0.015133,0.474236}, {0.250784,0.239230}, {-0.284132,0.714203}, {0.344950,0.419915}, {1.583594,-0.064074}, {0.576677,0.349100}, {0.125629,0.022908}, {0.377394,-0.234506}, {-0.563284,-0.715614}, {0.101048,-0.920563}, {0.608430,0.161613}, {-0.928742,-0.992338}, {-0.294843,-0.399957}, {-0.365761,0.504701}, {0.306154,0.060709}, {0.715237,0.113832}, {-0.231447,-0.747493}, {-0.137875,0.022192}, {0.270512,-0.373718}, {-0.284239,-0.283799}, {0.279434,0.240517}, {0.968853,-1.661595}, {0.795511,0.040827}, {0.756925,-0.008006}, {0.410158,0.188364}, {0.212647,0.160361}, {-0.274239,0.135422}, {-0.748007,0.121514}, {1.889864,-0.426021}, {-1.118363,0.603299}, {-1.079087,0.214901}, {0.881102,0.533797}, {0.977096,0.271883}, {-0.593182,-0.608447}, {-0.831317,-0.259562}, {-1.046078,-0.378692}, {-0.521179,1.064548}, {0.310178,-0.242294}, {-0.276422,-0.319965}, {-0.581592,-1.175487}, {0.078785,0.414402}, {0.384824,-0.029560}, {0.350595,-0.015079}, {-0.505694,0.346891}, {-0.244162,-0.431912}, {0.179140,0.408671}, {-1.683719,-0.175195}, {-0.439600,-0.848327}, {0.214818,-0.535441}, {0.799181,1.313585}, {-0.476475,1.275140}, {-0.281987,-0.003127}, {-0.659120,0.672635}, {-0.061892,-0.705050}, {-1.224782,0.446358}, {0.016139,0.676888}, {0.102488,0.468285}, {0.270256,1.292447}, {-0.872090,0.046884}, {0.843556,-0.407998}, {1.131680,-0.756558}, {0.414796,-1.380356}, {-0.696230,-1.001295}, {-0.356978,0.947810}, {0.203772,-1.057518}, {-0.328018,0.786771}, {0.943286,1.338451}, {-1.157899,-0.594093}, {0.126929,1.437347}, {1.125664,-0.410598}, {1.476748,-0.336433}, {0.391183,0.754958}, {-0.538390,1.039711}, {0.539183,0.253245}, {-0.738926,-1.328143}, {0.843172,-0.517204}, {-1.094296,0.432451}, {-0.207836,0.579061}, {-0.780287,-0.213072}, {0.251006,-0.069137}, {0.847453,0.521498}, {-0.110487,-0.550587}, {1.366744,0.051771}, {0.111898,-0.116679}, {0.457595,0.211260}, {-0.224542,-0.247515}, {-0.075318,-0.913189}, {0.413131,0.636904}, {0.442816,-0.725927}, {-0.269415,-1.101203}, {1.238631,-0.048564}, {-0.867622,-0.029135}, {-1.272665,-0.426738}, {-0.358993,1.214374}, {0.223994,0.430413}, {-0.069366,-0.065533}, {-1.151986,-0.046081}, {-0.034817,-0.587513}, {0.820362,-0.805810}, {-0.002677,-0.479108}, {-0.501825,-0.402321}, {0.479133,0.520280}, {-0.023935,0.157521}, {-0.805270,-0.213889}, {-0.652714,-1.133157}, {0.141114,0.750052}, {-0.870557,0.131878}, {-0.537313,0.243984}, {0.270492,1.388730}, {0.351691,-1.026747}, {0.265859,-0.073035}, {0.876907,0.008793}, {-0.015669,0.222651}, {-0.458046,-0.172892}, {0.480864,-0.236468}, {-0.304051,0.883748}, {1.386217,0.196728}, {-0.448091,0.725679}, {0.279281,1.432388}, {-1.090792,-0.202419}, {0.531809,-0.405696}, {-0.038049,0.323853}, {-0.027231,-0.016436}, {-0.716140,-0.504110}, {0.323352,-0.270107}, {-0.253368,-1.019154}, {-0.779463,-0.217103}, {-0.579380,-0.994819}, {1.349996,0.012975}, {0.343522,-0.422818}, {0.277107,-1.468269}, {1.635924,-0.133051}, {-0.184484,0.613490}, {0.452174,1.169168}, {-0.116411,0.804015}, {-0.040472,0.200894}, {-0.451595,0.380316}, {-0.018660,-0.980569}, {1.037949,1.233064}, {1.095728,0.983920}, {0.472751,-0.243982}, {0.234380,0.303549}, {-0.706062,1.365919}, {-1.056416,-0.147830}, {0.003918,0.621718}, {-0.866214,-0.038261}, {0.019575,-0.379413}, {0.205000,0.142153}, {-0.272811,0.136060}, {-1.150797,-1.754010}, {0.777102,0.334033}, {0.144743,0.082452}, {0.409845,1.246999}, {-0.848828,-0.844270}, {0.336356,1.069431}, {-0.261880,0.472035}, {-0.274440,-0.250428}, {0.096055,1.333042}, {-1.150019,-0.005824}, {-0.345565,1.491009}, {0.434845,0.644814}, {-0.995453,0.103214}, {-0.248426,-0.545754}, {0.087275,1.536388}, {-1.950359,0.672084}, {0.687779,0.938171}, {0.592318,-0.358229}, {0.719642,-0.071983}, {-0.080845,0.708763}, {0.136255,-1.235083}, {-0.251003,-0.912274}, {-0.884002,-0.310324}, {0.031525,0.320763}, {0.556086,-0.250977}, {0.090584,0.172983}, {-0.360676,0.948733}, {-0.090851,0.465571}, {-0.059321,0.271202}, {0.377821,0.928997}, {-2.122083,-0.662680}, {0.606876,-0.740523}, {0.304647,-1.075289}, {0.104366,0.294334}, {-0.618571,-1.125453}, {0.347400,-0.197963}, {0.740467,-0.980580}, {0.567211,0.587097}, {-0.009102,0.368841}, {0.365819,1.246754}, {0.408926,-0.573655}, {0.629943,0.031990}, {-0.888191,-1.455036}, {-0.192010,-1.721713}, {-0.525795,-0.883365}, {-0.688342,-0.233976}, {-1.231810,0.919714}, {-0.171857,0.047815}, {0.829192,0.498064}, {-0.164813,0.833731}, {-0.835674,1.420757}, {0.117641,0.408307}, {0.061907,-0.340905}, {0.328647,0.483077}, {-0.334550,-0.634442}, {-1.143177,0.176319}, {0.945986,-0.429932}, {0.962872,-0.156957}, {0.316408,-0.309555}, {-0.071834,0.467993}, {0.374919,0.531204}, {-0.061652,-0.441122}, {0.296652,-0.735807}, {0.635521,0.547129}, {-0.820187,-0.119987}, {-0.256993,-0.874678}, {-1.176903,0.375631}, {-0.389114,1.458620}, {-1.499695,1.086553}, {0.662846,-0.346478}, {1.134804,0.260529}, {-0.353432,0.041867}, {0.599759,-0.706760}, {0.233411,-0.191501}, {0.069271,-0.371072}, {-0.299719,-0.158599}, {0.156862,0.287897}, {0.044521,-1.565973}, {0.647652,-0.050318}, {-0.625813,0.313538}, {-0.305193,0.707469}, {-0.889292,-0.615903}, {0.108968,0.323345}, {0.891658,0.530089}, {-0.619121,0.542110}, {-0.173821,-0.076271}, {-0.066656,-0.380613}, {1.201157,-0.868830}, {-0.269634,-0.547771}, {-0.166608,0.337899}, {-0.580004,0.028538}, {-0.178471,0.256375}, {0.479790,-0.353481}, {-0.141978,-0.140536}, {0.573456,-1.096426}, {-1.407537,0.376742}, {-0.000291,-0.159343}, {0.566129,1.021878}, {0.592375,0.213044}, {-1.093385,-0.195052}, {-1.227213,-0.283957}, {-1.107600,-0.512341}, {0.405843,-0.034674}, {-0.628223,-1.573836}, {-0.424388,-1.127573}, {1.352502,0.703620}, {0.260965,0.940215}, {0.564688,-0.617820}, {0.627958,-1.090734}, {-0.519309,-0.170822}, {-0.018574,0.160240}, {0.581393,0.735974}, {-1.723723,-0.001348}, {0.426947,0.152603}, {1.732577,-0.140408}, {0.733090,-1.014674}, {0.548625,-0.606929}, {-0.104524,-0.976971}, {0.002059,0.365576}, {-0.437915,-0.973652}, {0.409557,-0.489978}, {-0.000720,0.508669}, {0.256095,-1.595859}, {0.287175,0.564402}, {0.876617,-1.300599}, {-0.980624,0.538104}, {-0.197058,-0.835753}, {0.293510,1.023684}, {-1.124246,-0.346680}, {1.728107,0.223808}, {0.608823,0.314713}, {-0.678436,-0.934938}, {0.467041,-0.286489}, {0.304061,0.659360}, {0.433362,-0.114714}, {0.470833,0.482791}, {0.136415,0.001946}, {-0.192213,1.062735}, {1.160425,1.197857}, {0.570082,-0.708591}, {-0.674925,-0.979498}, {0.258815,-0.140179}, {0.765330,0.060888}, {-1.138194,-0.547729}, {-0.342221,-0.331377}, {0.487680,-0.431774}, {0.195766,-0.563726}, {-0.515654,-2.231175}, {-0.514830,1.422505}, {-0.818513,0.454493}, {0.380391,0.182849}, {-0.069606,1.071475}, {-1.175893,0.278782}, {-1.024879,-0.018088}, {0.047685,-0.767415}, {-0.451445,0.575550}, {0.806845,-0.635450}, {0.137154,0.051450}, {0.484762,0.473028}, {1.476065,-0.375153}, {0.038745,0.227390}, {1.613348,-0.285214}, {0.027663,-0.441607}, {0.327132,0.393034}, {0.097041,1.118078}, {-1.373910,-0.535039}, {-0.830631,0.886098}, {0.712699,0.117282}, {-0.435669,0.900266}, {-0.230984,0.260017}, {-1.134322,0.277879}, {1.217344,0.070220}, {-0.322548,0.229832}, {-0.912984,1.081382}, {0.945157,-0.653585}, {0.109940,-0.208093}, {-0.750971,-0.827736}, {0.077654,-0.623765}, {1.218827,-0.344685}, {-0.313002,0.296601}, {0.400554,0.568839}, {0.304519,-0.601576}, {0.373664,1.261417}, {0.019345,0.795808}, {-0.078023,-0.626856}, {0.116647,0.074558}, {0.563238,-0.563330}, {-2.463399,0.442332}, {-0.109267,0.048086}, {0.519121,0.180174}, {0.193848,-0.161425}, {-0.042920,0.296486}, {0.073707,-1.348922}, {0.617742,-0.148470}, {0.261979,-0.030175}, {1.197662,-1.031986}, {-0.180963,0.326171}, {-0.182722,0.138127}, {0.333006,-0.298385}, {0.118052,0.145749}, {-0.378857,-0.353684}, {-0.874132,-0.138412}, {1.049590,-0.258466}, {-0.227425,0.931924}, {0.060564,0.378351}, {0.371015,-0.349550}, {-0.143444,-0.217476}, {-0.247485,-0.046193}, {-0.765423,0.386454}, {0.075810,0.747783}, {-0.562521,-0.075906}, {0.409856,-0.469514}, {-0.135998,-0.492786}, {0.986502,-0.462649}, {-0.068894,0.801619}, {-0.162736,0.525729}, {-0.453916,0.283674}, {-0.123426,-1.358265}, {1.200608,-0.396901}, {0.577734,-0.019945}, {-0.436619,0.346352}, {0.830315,0.899719}, {-0.064963,1.026769}, {-0.019483,-1.140266}, {-0.248584,0.297740}, {-0.203858,0.942282}, {-0.081061,-0.362369}, {0.963064,0.245140}, {-0.061346,0.970336}, {-1.223766,-1.442024}, {-0.659296,-0.305137}, {-0.168098,0.526909}, {0.244864,0.201375}, {-1.037356,-0.409374}, {-0.342768,0.074298}, {-0.126356,0.583275}, {0.700812,0.148717}, {1.123453,-0.594402}, {-0.880209,-0.000771}, {0.508231,0.583812}, {0.461500,-1.305179}, {-0.352762,-0.342643}, {0.026590,1.641167}, {0.172356,-0.551779}, {0.624259,1.319173}, {-0.343181,0.521502}, {-0.377493,0.564330}, {0.463338,0.107471}, {-1.020304,0.501309}, {1.214700,-0.385908}, {0.246930,0.896288}, {-1.150099,0.525414}, {0.598091,-0.621490}, {-0.551424,0.044236}, {0.503002,0.175473}, {-0.326038,0.203589}, {0.000174,-0.755465}, {-0.076286,0.193240}, {0.751071,-0.851721}, {-1.638472,-0.078066}, {0.277348,0.196780}, {0.017669,-0.946993}, {-0.808836,0.460763}, {0.389572,-0.585954}, {-0.536593,-0.448112}, {0.668181,-0.374583}, {-0.103420,-0.222061}, {0.033553,0.915602}, {-0.727955,-0.942821}, {0.227992,-0.544748}, {0.215369,0.016803}, {-0.331175,-0.358666}, {-0.369147,-1.683768}, {0.287561,1.754403}, {0.730502,1.075420}, {0.098139,0.193287}, {-0.220536,-0.547638}, {-0.708086,0.229183}, {-0.066645,0.221207}, {-0.544498,0.224689}, {0.909845,0.066686}, {-0.417147,-1.561040}, {-0.588530,-0.271389}, {0.765381,0.630382}, {-1.536043,0.954170}, {-0.007504,-0.251426}, {0.320371,-0.415162}, {-1.079865,-0.015651}, {1.246319,-0.288800}, {1.664357,0.873397}, {1.274888,-0.286462}, {0.089238,0.521546}, {-0.850328,-0.204610}, {-1.344064,-0.175840}, {1.059629,0.597417}, {1.396640,-0.558153}, {-1.299523,-0.700533}, {-0.303029,-0.016323}, {-0.571055,-0.101430}, {0.240632,-0.156008}, {-0.210472,-0.676508}, {-0.377210,-0.257232}, {-0.458563,0.394798}, {-1.298114,0.535994}, {0.348716,1.486169}, {-0.551518,0.095552}, {-0.454461,0.613793}, {0.589896,0.608956}, {0.024315,-0.615423}, {0.108640,0.657051}, {0.277486,0.095590}, {0.112263,0.590235}, {-1.676875,0.295265}, {-0.641851,0.429911}, {0.112035,-0.999186}, {0.407359,1.310697}, {0.123607,-0.285048}, {-0.584768,0.856268}, {0.365845,-1.606895}, {0.118025,0.980790}, {0.976487,-0.548793}, {-0.608533,0.177190}, {-0.254552,0.490015}, {-0.764686,-0.476040}, {0.339780,0.307140}, {1.071418,-0.394981}, {0.343840,-0.138409}, {0.050959,0.206412}, {-0.132190,1.024308}, {-0.531174,-0.997495}, {0.107836,0.197144}, {0.006508,0.051268}, {-1.180682,-0.078210}, {-0.301054,0.221919}, {-0.198790,-2.154487}, {1.281974,-0.406055}, {0.248667,0.220739}, {-0.151733,0.572224}, {-0.887702,-0.282886}, {-0.035221,0.961347}, {-1.071469,0.514402}, {-1.341250,0.603023}, {-0.080709,0.493279}, {0.437681,-0.565973}, {0.221259,1.582183}, {-0.409386,0.729511}, {0.982076,-0.071098}, {-1.001791,-0.519130}, {-0.121082,-0.007075}, {-0.339436,1.234458}, {1.513595,0.969100}, {-0.583819,0.253911}, {0.177078,-0.732721}, {1.010067,0.995855}, {-1.355505,0.888006}, {-0.332757,0.204762}, {0.021403,1.025592}, {-1.217885,0.139156}, {0.889080,0.092179}, {-1.102149,0.293526}, {0.435463,-0.449178}, {0.080275,0.169176}, {-0.709930,-1.149043}, {0.196490,-0.626610}, {0.000069,-0.943691}, {0.223655,0.039723}, {-0.560770,-0.882470}, {-0.807256,0.094114}, {-0.058225,-0.349692}, {-0.500905,-1.096078}, {-0.962775,0.327158}, {0.282785,-0.401214}, {0.361234,-0.934402}, {0.576734,-0.359076}, {-1.413799,0.265539}, {-1.117609,-0.837082}, {0.180753,-0.472530}, {-0.120835,-0.959192}, {-0.157811,0.176422}, {-0.850684,0.325782}, {0.828223,0.792925}, {0.054204,0.579626}, {-1.121286,-0.414842}, {-0.113676,0.001080}, {0.642904,0.453393}, {-1.026285,0.939691}, {0.521202,0.352828}, {0.456312,-0.206836}, {0.058434,-0.053600}, {0.115901,0.497408}, {1.204157,-0.447713}, {0.345992,-0.395337}, {0.164925,1.328079}, {0.069910,0.657455}, {0.884794,0.478670}, {0.805589,0.626931}, {-0.169274,-0.328030}, {-0.535077,0.102330}, {-0.946526,0.154656}, {0.358642,-1.362812}, {-0.676983,-0.652080}, {0.992864,-0.004017}, {-0.410549,0.342659}, {-1.235267,0.713491}, {-0.398621,0.103696}, {-0.820035,0.801927}, {1.200059,0.099361}, {0.165502,0.725726}, {-0.591579,0.903920}, {-0.843723,0.547834}, {0.773809,0.403580}, {-0.110340,-0.128695}, {-0.642852,0.256573}, {0.020826,-0.020841}, {-2.163248,0.136883}, {-0.964862,0.387295}, {0.687709,0.453517}, {-0.112839,-0.567023}, {-0.409633,0.580404}, {-0.395668,1.251119}, {0.347308,-0.652184}, {1.734678,-0.822788}, {0.601811,-0.259379}, {0.378296,-0.866471}, {0.498403,-0.656762}, {0.504824,0.489810}, {0.639843,0.108016}, {-0.224104,0.234376}, {0.009714,-1.168003}, {0.019711,0.237093}, {0.442850,0.092101}, {0.202559,0.660920}, {-0.738652,-1.371965}, {-1.297719,0.932182}, {0.739608,1.592722}, {0.287503,-0.045919}, {1.222096,-0.184544}, {-0.022342,-1.348633}, {-0.384473,0.250028}, {0.001750,-0.224717}, {-0.339904,-0.227850}, {-0.775438,-1.310795}, {0.571535,0.293371}, {-0.324597,0.227490}, {0.169930,1.145261}, {-1.551123,-0.199599}, {0.903788,-0.358227}, {-0.622574,-0.635810}, {-0.045168,1.216837}, {0.093370,2.013175}, {-0.171013,-0.524670}, {0.035948,0.841222}, {-0.592962,0.383082}, {0.304794,-0.702133}, {0.779021,0.240417}, {1.021212,0.841250}, {-0.373074,-0.296006}, {-0.522088,1.139662}, {-0.268210,-0.251780}, {-0.668865,-0.925004}, {-0.197566,0.255127}, {1.441911,1.117605}, {0.359801,0.069378}, {0.485969,-1.028166}, {0.009410,1.004055}, {-0.386974,-1.624570}, {0.923300,0.143629}, {0.181342,0.541303}, {0.292919,0.079149}, {0.324985,-0.714574}, {1.032349,-0.142324}, {-0.163295,0.054984}, {-1.028432,-0.229401}, {0.459060,-0.443054}, {-0.236741,-0.785944}, {-0.703899,-1.736899}, {-0.586833,-0.513491}, {-1.517056,-0.084420}, {0.292003,-0.016637}, {0.700051,-0.583601}, {0.526109,0.250151}, {-0.227784,-0.209721}, {1.818833,-0.253432}, {-0.360458,-0.668042}, {0.666832,-0.166561}, {-0.358616,-0.418329}, {-0.412887,0.836863}, {0.467107,0.455230}, {0.592494,1.202728}, {-0.049518,-0.533706}, {-1.002130,0.544990}, {-0.257809,-0.145484}, {-0.507467,-0.453834}, {0.291788,0.724311}, {-0.135188,0.157332}, {0.631982,0.964860}, {-1.346895,0.067204}, {-0.288235,0.488706}, {-2.477087,1.241502}, {-0.518612,-0.435361}, {0.955342,0.489972}, {1.169275,0.407173}, {0.213697,0.494150}, {1.485172,0.045033}, {0.153003,0.092241}, {-0.308640,-0.601813}, {-0.228943,0.489280}, {-1.169407,-1.772660}, {0.178640,0.792597}, {-0.165417,0.292843}, {1.369952,-1.611009}, {0.852707,-0.827966}, {0.821978,-0.004446}, {0.649031,-0.812858}, {0.973973,-0.310191}, {-0.044568,-1.440362}, {0.765165,-0.538318}, {0.073737,0.997220}, {1.234533,0.305244}, {0.063294,0.158006}, {0.169849,0.859146}, {-0.719410,-1.068298}, {0.116258,-0.709057}, {-0.930144,-0.632747}, {-0.181414,-0.975216}, {0.795997,0.192359}, {0.066111,-1.055039}, {-0.298799,-0.559138}, {-0.603013,-0.082259}, {0.209757,1.372754}, {0.347500,0.495824}, {0.676474,-0.072774}, {0.550261,-1.227179}, {-0.263165,0.041038}, {-0.546702,-0.491019}, {0.738601,-0.021821}, {-0.575464,-0.045919}, {0.123871,-0.075287}, {-1.083198,-1.254586}, {-0.183814,-1.052704}, {-0.881953,0.291254}, {0.295336,-0.371557}, {0.023762,-0.165479}, {0.922082,0.683317}, {0.324383,-0.491146}, {1.171481,-0.557506}, {0.470032,0.663233}, {-0.433687,0.881275}, {0.569872,1.163325}, {-1.147629,1.276498}, {-1.667829,0.173502}, {1.509836,-0.393443}, {0.061339,-0.994588}, {1.297176,-0.289000}, {-0.222211,1.274974}, {0.171856,-0.708127}, {-0.762371,0.928647}, {0.489001,-0.717858}, {0.273726,-0.144006}, {0.089858,0.479527}, {-0.415939,-0.754283}, {-0.820428,-1.308644}, {0.246597,0.476980}, {-0.061898,-0.518679}, {-0.002501,-0.563025}, {0.160470,-0.497633}, {0.654653,-0.058246}, {-0.346737,0.304705}, {-0.730579,-0.133753}, {0.332384,0.151924}, {-0.769060,0.340191}, {-0.946356,0.802338}, {-0.185563,-0.701926}, {-0.018478,0.385360}, {-0.763889,-0.171119}, {0.136434,-1.151131}, {0.944360,0.351269}, {0.234035,0.460682}, {-0.126511,-0.343346}, {-0.129577,0.714668}, {0.831803,1.425489}, {-0.311698,0.471973}, {0.374336,-0.532622}, {-1.287929,0.086859}, {-0.960906,-0.551099}, {-1.322977,0.426687}, {0.566247,-1.476259}, {-0.042332,-0.595204}, {-0.217199,0.570666}, {-0.336883,0.586814}, {0.991186,1.090638}, {-0.112997,0.343201}, {0.936285,0.699872}, {1.134616,0.605336}, {-0.332672,0.412190}, {-0.131705,-0.706994}, {0.966135,0.922373}, {1.133423,-0.652360}, {-1.177552,-0.186519}, {0.708659,-0.078514}, {-0.951753,-0.658081}, {0.498906,0.236519}, {0.282086,-1.164112}, {0.256290,-0.187041}, {0.292859,-0.420021}, {0.670422,-0.359978}, {-0.031479,-0.211732}, {-0.243913,-0.094388}, {-0.214352,0.162763}, {-0.671425,1.172721}, {-0.345164,-0.766127}, {-0.628780,-0.950380}, {-0.275698,0.202610}, {-0.358559,0.974356}, {0.409593,0.965904}, {-0.287768,-0.284934}, {-0.817917,0.034221}, {0.282824,-0.083509}, {0.266940,0.414989}, {-0.839039,0.602647}, {-0.030358,-0.143335}, {-0.461787,-1.323753}, {-0.947434,0.034506}, {0.206777,0.393953}, {0.110051,0.039027}, {-0.255445,-0.418588}, {-0.824977,-0.529115}, {-0.847940,0.003400}, {-0.227448,-0.605217}, {-0.658428,-0.129496}, {-0.070069,-0.874316}, {-0.452178,-0.509891}, {0.006794,0.737596}, {-0.173131,-0.491329}, {-0.018882,0.037139}, {1.012352,-1.428883}, {0.341480,-0.177353}, {0.088907,1.263644}, {-0.007106,-0.035769}, {0.494848,-0.291677}, {1.029770,1.640336}, {-0.019924,-0.576639}, {1.078143,0.161988}, {-1.158261,-0.009208}, {-0.920354,0.385655}, {-0.103172,-0.424669}, {-0.128917,0.361840}, {0.451312,-0.151329}, {0.486818,-0.792695}, {0.173666,-0.625128}, {-1.227586,0.233996}, {-0.567889,0.022017}, {-0.012878,0.076646}, {-0.423646,0.335511}, {-0.989293,1.156415}, {-0.977194,0.382489}, {-1.465169,0.221222}, {-0.821043,-0.880370}, {0.953556,0.320459}, {-0.493348,1.015682}, {-0.041491,-1.401656}, {0.110917,-1.090802}, {-0.787109,0.792470}, {-1.183552,-0.605356}, {-0.466455,0.123053}, {1.377708,0.488188}, {1.036160,-0.429887}, {-0.195443,0.367498}, {-0.649320,-0.214917}, {0.818471,-0.314367}, {-1.095956,-1.066370}, {1.010551,1.357206}, {-0.522272,-1.266004}, {0.742807,-0.658170}, {0.137677,-0.996820}, {-0.269035,-0.313754}, {0.231487,1.580343}, {0.050224,-0.237917}, {0.022147,0.008968}, {-0.118094,-0.562883}, {0.746369,-0.220601}, {0.103125,-1.486236}, {-0.018752,0.345496}, {-0.026367,0.124820}, {-0.095584,0.426964}, {0.299398,-0.036745}, {0.876858,0.071707}, {0.080784,0.101691}, {-0.365802,-0.832668}, {-0.066045,-0.042815}, {-1.336839,-0.309595}, {-1.855670,0.090094}, {0.142864,0.213680}, {0.170087,-0.748118}, {0.757840,-0.487161}, {-0.008566,0.015099}, {-0.574190,0.366625}, {0.850847,-0.670065}, {-0.088781,-0.552472}, {0.065881,-0.562275}, {2.174229,-0.693270}, {0.545383,0.173825}, {0.179404,-1.118853}, {-0.706263,0.644413}, {-0.201256,0.026020}, {0.371367,0.027994}, {0.695924,-0.856474}, {-0.068587,-0.377147}, {-1.335474,-0.381794}, {-0.705342,-0.264330}, {1.211854,0.734180}, {0.689579,-0.829674}, {0.236230,-0.519350}, {-0.373274,-0.203030}, {0.522275,0.190464}, {-0.984102,0.184132}, {0.608537,0.528305}, {0.645580,-0.632723}, {0.106191,-1.924526}, {-0.860820,0.172286}, {-0.017002,-0.413171}, {-0.870914,-0.915141}, {-0.032162,-0.022238}, {1.063524,0.208230}, {0.208620,0.392565}, {1.534353,0.353688}, {0.503624,0.611747}, {1.441714,0.373080}, {-1.685419,0.553616}, {-1.251072,1.088477}, {0.030551,0.653043}, {0.348223,-0.875562}, {-0.158646,-1.827145}, {-0.599854,-1.150166}, {-0.622279,1.015380}, {-0.045192,0.068378}, {0.289380,0.241892}, {0.780663,-0.317637}, {-0.624796,-0.111034}, {0.156313,0.625074}, {-0.887464,0.338653}, {0.276127,-1.089799}, {0.393729,-0.259418}, {0.290756,0.344205}, {-1.690691,0.271341}, {1.070050,-0.375246}, {-0.518340,-0.146201}, {-0.136899,-0.031255}, {-0.732118,0.763056}, {0.595604,-0.170473}, {0.313932,0.752164}, {1.258402,-0.021841}, {-1.271193,0.594328}, {1.074153,0.128659}, {0.478066,-0.276071}, {-0.358573,0.984028}, {0.423156,0.233965}, {-0.177399,0.151124}, {0.079737,0.146108}, {-0.800067,-0.511673}, {0.506933,-0.549296}, {0.699370,-0.759465}, {0.195093,1.236176}, {0.557245,1.418542}, {0.287210,1.479131}, {0.668788,-0.448889}, {-0.463056,0.926393}, {1.124722,-0.224757}, {1.118837,-0.244739}, {-0.214775,0.121754}, {-0.086324,-0.784099}, {1.274702,0.512876}, {1.060185,1.325123}, {0.193620,0.390433}, {-0.286823,0.231843}, {-0.351578,0.727546}, {-1.647569,0.062221}, {0.356859,-0.256082}, {0.266346,0.400761}, {-0.225153,-0.791734}, {0.522282,0.074414}, {-0.375861,-0.448761}, {-0.533274,0.056055}, {-0.400783,-0.040651}, {0.436361,0.406416}, {0.165936,0.403954}, {0.851735,1.253902}, {-0.996147,0.302040}, {0.979640,0.288274}, {-0.020106,-0.155534}, {-0.392568,-0.327217}, {-0.200327,0.496539}, {-0.233763,-0.423968}, {-0.976208,-0.408918}, {-0.571268,-0.378235}, {0.224025,-0.154206}, {-0.176338,0.225973}, {0.355614,-0.189466}, {-0.450087,0.567394}, {-0.659818,1.574000}, {-0.724889,0.197115}, {-1.355431,-0.664189}, {-0.203199,0.667343}, {-0.361135,0.152712}, {-0.007547,-0.222527}, {-0.546892,-0.387338}, {1.044558,-0.663379}, {0.326269,-0.004359}, {-0.012900,0.714057}, {-0.032278,-0.204936}, {-0.152106,0.539984}, {-0.484380,-0.174141}, {-0.480804,-0.521659}, {0.019051,-0.512885}, {-0.371011,-0.457457}, {0.637777,-0.575044}, {1.426366,0.512612}, {0.266994,0.797655}, {-0.824664,-0.336600}, {-0.422137,-0.905715}, {0.656471,0.209458}, {-0.864761,-0.058947}, {1.312581,0.409720}, {0.093477,1.303098}, {-0.495575,0.491653}, {0.616295,0.289625}, {0.019085,0.370022}, {-1.785266,0.062761}, {-0.110044,-0.749797}, {1.685633,0.914155}, {0.759099,0.624272}, {-0.950030,1.223722}, {0.414424,-0.410528}, {0.183760,-0.081691}, {-0.402176,-0.026614}, {-0.349344,-0.746451}, {-0.669819,0.784265}, {0.124418,0.632759}, {0.541258,-1.198492}, {-0.866841,0.005112}, {-0.420861,0.310081}, {-0.492845,2.040430}, {0.289183,-0.025633}, {0.333462,-0.545470}, {0.620450,-0.664730}, {-0.966239,0.477068}, {-0.280518,0.588544}, {0.855581,0.526154}, {0.176645,-0.532816}, {0.243194,-0.347975}, {0.121295,1.046375}, {0.468586,-0.344088}, {-0.350739,-0.403584}, {-0.631745,-0.782817}, {-0.949273,-1.150875}, {0.922169,-1.684543}, {-0.345543,-0.015945}, {0.837118,0.348048}, {-0.849669,0.097854}, {-0.950003,-0.284938}, {-0.827245,1.274905}, {0.582750,0.674266}, {0.863202,-0.250190}, {0.661880,0.368907}, {0.037276,-0.913114}, {0.165824,1.259230}, {0.058122,0.701148}, {-0.309547,-0.432040}, {-0.596559,-0.618049}, {0.889281,0.852314}, {0.257575,-0.140190}, {0.466566,-1.164941}, {-0.846649,-0.024130}, {-0.006130,-0.345342}, {0.554810,-0.369790}, {0.132936,-1.245072}, {-0.708319,-0.243577}, {-0.938221,0.593895}, {-0.035179,0.513441}, {-0.049975,1.127913}, {-0.672031,0.159578}, {-0.023330,1.155255}, {0.143090,1.023505}, {0.115199,0.309062}, {-1.199697,0.879078}, {0.519932,0.063135}, {0.186381,0.036151}, {-0.474750,1.313004}, {-1.041353,0.036701}, {-0.089927,-0.772333}, {0.090568,-0.837483}, {-0.048569,-0.259303}, {1.571934,-0.955589}, {-0.022494,-0.250567}, {-0.308409,0.008499}, {-0.198203,-0.449276}, {-0.294832,-0.776042}, {0.258584,-0.160882}, {0.168586,-0.668421}, {-0.607039,-0.175648}, {-1.595333,0.275002}, {0.354293,-1.433081}, {-1.076825,0.444679}, {0.112063,0.403675}, {-0.019937,-0.526304}, {0.878192,1.126714}, {-0.555291,-0.177409}, {0.618919,-1.270440}, {-0.718783,-0.636622}, {1.023238,-0.542857}, {0.482907,0.146108}, {1.333821,1.330160}, {1.132981,-0.772368}, {-0.543637,-0.834221}, {0.775740,0.171336}, {0.801106,-0.771147}, {-0.561803,0.079096}, {0.652019,-0.040842}, {-0.654772,-0.774603}, {0.405766,-0.335507}, {-0.131693,-0.202866}, {-1.261224,0.358867}, {0.573502,0.072986}, {-0.658929,-0.659778}, {-0.667468,-0.367979}, {1.363660,0.358243}, {0.355715,0.497317}, {0.186055,-0.513256}, {-0.427157,-0.478966}, {1.490717,-0.058493}, {-0.952606,-0.205605}, {1.437961,0.595822}, {1.113979,0.821148}, {-1.993044,0.178065}, {0.062770,-1.172124}, {-0.601798,-0.508838}, {0.404892,0.157432}, {0.446296,-0.198539}, {-2.000248,-0.062555}, {0.418983,-0.605122}, {1.044428,1.430575}, {-0.225956,0.016324}, {0.516675,0.456090}, {-0.117366,-0.642548}, {0.821745,0.347570}, {0.439764,0.695177}, {-0.216506,-0.082014}, {1.389264,-0.080676}, {-0.185223,-0.603367}, {-0.860185,-0.740634}, {-0.146111,-0.173600}, {-0.208919,0.975808}, {-0.323668,-0.191408}, {0.325369,0.387206}, {-1.016963,0.031901}, {-0.607601,-1.373026}, {-0.029588,1.154785}, {-0.134545,-0.252350}, {0.776553,-0.133224}, {0.543461,0.280061}, {-0.890756,-0.743419}, {-1.170665,1.021231}, {0.518692,-0.016268}, {0.959604,0.190010}, {-0.985259,-0.574513}, {0.772275,-0.572044}, {-0.989352,-0.007084}, {-0.843395,-0.709321}, {-0.701267,0.196028}, {-0.479826,0.888804}, {1.012193,1.019070}, {0.706742,0.197803}, {-0.979845,-0.049822}, {-0.200635,-0.291375}, {0.049786,-0.795526}, {1.237530,0.009952}, {-1.067907,0.940046}, {-0.112405,-0.397752}, {-0.046100,-0.102711}, {0.453746,0.537092}, {-0.187188,-0.759559}, {0.717383,-0.561168}, {-0.164953,-0.323824}, {-0.166557,0.021823}, {-0.783368,-0.429656}, {0.794975,-0.230617}, {-0.527327,-0.780894}, {-0.872325,0.014350}, {0.054789,0.241499}, {0.738298,-0.228210}, {0.060773,0.996415}, {0.241621,-1.596309}, {0.445850,0.578241}, {0.315976,1.201028}, {-1.511131,-0.670994}, {-0.110134,0.130493}, {-0.265378,0.556605}, {-0.552998,0.389953}, {0.085908,0.759607}, {-1.029355,0.404668}, {0.516605,-0.500285}, {-0.014747,0.186171}, {-0.662889,0.914909}, {1.133404,0.043481}, {0.942736,-1.022847}, {-1.367925,0.662538}, {0.202927,-0.261840}, {-0.080038,0.255562}, {0.334206,0.344507}, {0.909260,0.161783}, {0.279950,-0.442240}, {-0.132812,1.284395}, {0.561415,-0.874174}, {-0.040063,0.004187}, {0.139506,0.273340}, {0.678991,-0.833389}, {-1.242484,-0.045382}, {0.256214,-0.213426}, {-0.587563,-0.587595}, {0.078473,0.384032}, {-0.277039,1.136410}, {-0.092972,-1.062368}, {-0.023888,-0.080233}, {-0.452956,-0.444322}, {1.328310,-0.992490}, {-0.474930,0.347850}, {0.523240,-0.003848}, {-0.051859,0.435035}, {0.353494,-0.243220}, {-1.096435,1.075703}, {-0.289883,0.126013}, {1.309579,0.419419}, {-0.249474,-1.277937}, {0.370228,-0.619822}, {-0.162931,-0.986185}, {0.529442,0.663374}, {0.206235,-0.141314}, {0.327230,0.297918}, {0.258588,-0.423171}, {-0.397341,0.502437}, {0.021206,0.592566}, {-0.289367,0.413864}, {0.910642,0.392091}, {-1.057228,-0.461395}, {1.001500,0.315649}, {-0.090014,-0.918110}, {0.318253,0.558070}, {0.211192,-0.014893}, {0.522386,-0.366099}, {0.090398,-0.703867}, {1.622834,0.018082}, {-0.071737,-1.007484}, {-0.664638,-0.104874}, {-0.189868,-0.515833}, {0.358739,0.281609}, {-0.622523,0.089106}, {0.361331,0.095296}, {1.085784,0.080787}, {0.478981,-0.441729}, {1.068931,0.439744}, {-0.628892,0.424033}, {-0.196324,0.379911}, {-0.789710,-0.283177}, {-0.806679,-1.377374}, {1.599832,1.186046}, {0.412645,0.144409}, {0.327430,1.119619}, {1.057958,1.303142}, {0.432599,0.474891}, {0.284130,-0.147951}, {0.137384,-0.946542}, {-1.047473,0.054293}, {-0.143269,-0.396173}, {0.134200,-1.117673}, {0.904095,-0.967660}, {0.784155,-0.589834}, {-0.329207,-1.584818}, {1.336969,-0.965850}, {0.562061,0.584660}, {-0.860259,-0.550482}, {0.553302,0.170503}, {0.384839,0.442235}, {-0.123665,0.795758}, {-2.267570,1.579904}, {-0.985957,0.263810}, {-0.114123,-0.105293}, {-0.073897,-0.131005}, {0.394013,0.420781}, {1.294967,-0.725636}, {0.392888,-0.237295}, {0.708169,-0.947210}, {0.598124,-0.131921}, {0.392268,1.238404}, {0.565937,-1.492817}, {-0.620915,0.218253}, {-0.187653,-0.500112}, {-0.225466,-0.457223}, {0.298875,0.099610}, {0.214690,-0.399322}, {-0.679138,-0.038895}, {0.118053,0.472370}, {-0.488826,-0.872846}, {-1.119422,-0.036171}, {-0.075847,-0.265969}, {-1.290590,-1.483111}, {0.903551,1.081328}, {-0.903254,-0.425745}, {-1.654210,-0.592746}, {-0.834468,0.360416}, {-0.517414,-0.268347}, {0.219221,-0.942583}, {-0.159846,0.647089}, {0.022067,-0.112729}, {1.161820,-1.200230}, {-1.140920,-0.081036}, {-1.039243,-0.377205}, {0.314333,0.565306}, {-1.575490,0.432187}, {0.468719,0.702260}, {-0.496647,-0.982869}, {0.807580,0.126209}, {-1.232223,-0.694859}, {0.344013,0.146694}, {0.352479,-0.248874}, {0.500112,0.240281}, {0.150882,0.007734}, {1.025832,0.271827}, {0.087793,-0.911808}, {0.239715,-0.182878}, {-0.488536,-1.404765}, {0.245387,-0.004696}, {-0.830521,0.880491}, {0.083542,0.285857}, {0.921577,-0.685627}, {0.695468,-0.133940}, {0.939971,1.828094}, {0.789922,0.759310}, {0.403211,0.030107}, {0.016796,0.689851}, {1.084819,-0.186630}, {-0.903993,-0.024230}, {0.712283,-1.107485}, {-0.931592,0.898492}, {-0.696849,1.388040}, {0.542043,-1.230688}, {-0.217901,1.160492}, {-0.093252,-0.025223}, {-0.766154,0.653670}, {-0.042860,0.814345}, {-0.196778,-0.716831}, {0.540037,0.172703}, {-0.361556,-0.529404}, {-0.422260,-0.060487}, {0.516217,-0.838463}, {0.084237,0.024053}, {-0.942743,-0.718373}, {-0.665473,-0.812679}, {-0.055540,0.324464}, {-1.050179,0.765823}, {0.374960,0.619826}, {0.099384,0.440820}, {-1.375869,0.145126}, {-1.168991,-0.089796}, {-0.464068,0.467425}, {0.141780,1.426938}, {0.483327,1.031467}, {-0.966008,-0.779106}, {-0.735806,0.516178}, {-0.139286,0.109933}, {1.469544,0.847398}, {0.027674,-0.409753}, {-0.025074,-1.939206}, {-0.240214,-0.034248}, {0.650895,-0.982693}, {0.425554,-0.059190}, {-0.496271,0.495123}, {-1.237870,1.392917}, {0.256191,-0.155617}, {0.586083,-0.158262}, {-0.078923,-0.643073}, {-0.331194,-1.453308}, {-0.144171,-0.906848}, {0.966641,-0.220992}, {-0.423391,0.041833}, {-0.824277,0.698242}, {-0.861274,0.529953}, {0.179762,-1.130919}, {-0.996767,-0.193545}, {0.453175,1.234067}, {1.485681,0.094392}, {1.051655,0.052776}, {-0.134871,0.796853}, {0.864630,-0.781504}, {0.780484,-0.400513}, {0.331109,0.578865}, {0.776426,-1.263769}, {0.572772,-0.326729}, {0.372413,0.005622}, {0.941942,-1.305397}, {0.303917,-1.556093}, {0.189437,1.234819}, {0.508129,0.382806}, {-1.116871,-0.360450}, {0.422168,-0.982315}, {0.594919,0.466410}, {1.035624,0.463855}, {-0.783077,-0.390978}, {1.236459,1.182626}, {-0.387814,-0.332232}, {0.086563,1.162983}, {-0.346845,-0.245300}, {0.221111,-0.315026}, {-0.125533,-0.386266}, {1.007383,-1.514431}, {0.408173,-0.652894}, {-0.444993,0.620328}, {-0.081295,0.024145}, {-1.171356,0.146286}, {-0.654750,-0.194256}, {1.094476,0.948711}, {-0.885556,-0.313736}, {-0.013248,0.284773}, {-0.687804,-0.472138}, {-0.155912,-1.113625}, {-0.819529,0.183507}, {1.128618,1.019696}, {-0.355820,-0.271205}, {-1.577226,0.085216}, {0.538217,-0.298420}, {0.076116,-0.620804}, {0.154589,-1.126306}, {0.598211,0.261215}, {-1.007944,1.678870}, {0.224117,-0.226210}, {-1.489159,0.965365}, {-0.297128,-0.374228}, {0.750106,0.539997}, {0.386862,0.676595}, {0.966769,-0.407596}, {0.384334,-1.359028}, {-0.664215,-0.143987}, {0.039815,-0.249599}, {-1.121556,0.013060}, {0.991496,1.175812}, {-0.353957,-0.926145}, {0.416137,0.633272}, {-0.347908,-0.060762}, {-1.001857,-1.669313}, {0.715754,-0.308980}, {0.493890,0.621634}, {0.080629,-0.165597}, {0.066092,-0.718772}, {-0.340841,0.667852}, {0.031320,-1.351725}, {0.793912,0.365991}, {0.094964,0.747321}, {-1.342909,0.528676}, {-0.173577,-0.344160}, {-0.196297,-0.688651}, {0.159112,0.542697}, {0.329935,0.154517}, {1.185337,0.700728}, {-0.704310,-0.402117}, {-0.316785,-0.310172}, {-1.232388,-1.015449}, {-0.043209,0.901854}, {-0.340189,-2.254502}, {-0.603832,0.362719}, {0.962932,-0.001934}, {1.768897,0.121106}, {0.679471,0.866237}, {-0.737197,-1.149965}, {1.225298,-0.618371}, {-0.296798,-1.468710}, {-1.678878,0.063437}, {0.479002,0.192428}, {0.346018,-1.538752}, {-1.206099,-0.295383}, {1.053135,0.455640}, {-0.560954,0.547959}, {0.643517,-0.909463}, {-0.098024,-0.246867}, {0.931635,-0.252753}, {0.148997,-0.323576}, {0.050144,-0.171018}, {-0.267956,0.294251}, {0.333497,0.911259}, {-0.365215,0.268823}, {0.144195,-0.701040}, {-1.526851,-0.129927}, {1.142833,0.635755}, {-0.586324,0.067496}, {1.134076,-0.946287}, {-0.493528,-0.592981}, {-0.425575,0.286177}, {0.092149,0.506148}, {-0.271803,-1.297036}, {0.026268,0.441668}, {1.237103,0.694613}, {0.582480,-0.500776}, {-0.919241,0.616013}, {0.539933,-0.765108}, {-0.238804,-0.015991}, {0.251532,1.010740}, {0.018575,1.538529}, {1.164247,0.775468}, {-0.724490,0.704236}, {0.572185,-0.261278}, {-0.165192,-0.473733}, {-0.275442,-0.214077}, {0.529682,0.079349}, {-1.043063,0.590297}, {-0.312898,0.982987}, {-0.347152,-0.300360}, {0.198617,-1.545474}, {-0.137123,0.206520}, {1.406277,0.504897}, {-0.230632,-0.020974}, {1.165849,1.286086}, {0.567973,0.251033}, {0.730319,-0.018651}, {-1.173668,0.011321}, {-0.036457,-0.751900}, {-0.615665,0.447886}, {-0.452895,-0.069779}, {0.673152,-0.178631}, {-0.327908,-0.701133}, {0.721903,-0.259445}, {0.096390,-0.755208}, {0.558453,-0.050797}, {0.264645,0.199839}, {-0.894315,0.312986}, {-0.216785,-0.394039}, {-1.143224,0.400516}, {-1.356620,0.072608}, {1.362480,-0.018613}, {1.142226,-0.983870}, {0.627630,0.620440}, {0.660075,-0.739872}, {0.579792,-1.280997}, {0.651826,0.602429}, {1.895455,-0.274354}, {-0.906672,-0.429069}, {-0.803452,0.029061}, {0.481015,1.138218}, {1.032808,-0.296512}, {-0.832241,0.455665}, {0.539383,1.075476}, {-0.438440,0.887938}, {0.424835,-0.368019}, {-0.135554,0.584722}, {0.599934,1.286793}, {-1.006594,0.727090}, {0.911023,0.076265}, {0.337550,1.120384}, {-0.895655,0.047860}, {0.266564,-0.467233}, {-0.048357,0.118508}, {-0.702445,-0.560325}, {0.480256,-1.121399}, {0.654894,0.949342}, {-0.417652,-0.110876}, {0.709040,-0.321438}, {-0.238239,-0.984386}, {-0.301674,-0.706961}, {0.472112,1.348416}, {-0.288396,-0.181889}, {-0.450683,-0.267402}, {-0.308414,-1.071811}, {-0.417105,0.973953}, {-1.553241,-0.142268}, {0.128366,0.111307}, {-0.927474,-0.051060}, {1.101826,-0.477989}, {-0.242754,0.084899}, {-0.746846,1.115605}, {-1.127438,-0.172875}, {-0.155172,-0.399688}, {-1.837735,0.530750}, {-1.374064,0.363114}, {-0.097395,0.053473}, {0.609195,-0.274619}, {1.734941,0.890505}, {0.779686,-0.972688}, {0.585193,-1.045163}, {0.248025,-0.300921}, {-0.152088,0.863592}, {0.576776,-0.435392}, {-0.660678,-1.619638}, {-0.049095,0.111165}, {-0.054992,0.933530}, {0.502694,0.260923}, {-0.330115,-0.374907}, {0.738413,0.897929}, {-0.134611,-0.079508}, {-0.501918,0.744600}, {1.092964,0.366548}, {-0.569112,-0.575195}, {-0.361389,-0.543941}, {-0.246589,1.583851}, {0.115483,0.436651}, {0.709692,-0.027134}, {-0.201305,-0.325035}, {-0.081069,-0.613508}, {-0.204912,0.899014}, {-0.052638,-0.313595}, {-0.055242,-0.450843}, {-1.021730,-0.600249}, {0.649428,0.166285}, {-0.566037,-0.062804}, {0.020980,0.775753}, {-0.665180,0.091810}, {0.475532,0.480182}, {-0.392908,0.497955}, {-0.911233,-1.270771}, {0.008075,-0.360294}, {0.692020,-0.075024}, {-0.731113,-0.013576}, {0.768481,0.871268}, {-0.414806,-0.177137}, {-0.085437,-0.311006}, {0.611962,0.398797}, {-1.456806,0.915209}, {0.234176,-0.108086}, {0.392467,-0.300692}, {-1.290682,-0.075481}, {0.661390,0.746033}, {-0.613522,-0.349294}, {-0.658477,1.050708}, {-0.966256,-0.650581}, {-0.356483,-0.515624}, {0.776759,1.027077}, {-1.230686,-1.756435}, {1.443473,0.351437}, {-1.627666,0.332377}, {-0.893450,0.724938}, {-1.214274,0.674931}, {0.575030,-1.220913}, {0.436178,-0.146204}, {0.255927,-0.642819}, {0.837765,0.357972}, {0.413942,0.336704}, {-0.491814,0.029299}, {0.577770,-0.709864}, {0.618412,-0.094846}, {1.113511,0.720462}, {-1.276252,-1.169819}, {-0.221518,0.034718}, {1.175932,0.480262}, {-1.089821,-0.091391}, {-0.050210,0.483209}, {0.570865,-0.312307}, {0.218860,-0.555332}, {0.085193,0.903061}, {-0.177520,-0.161550}, {-0.920380,-0.285077}, {1.144318,-0.822307}, {-0.443889,-0.246271}, {1.751176,0.442665}, {-0.171192,0.036515}, {1.478796,0.623020}, {0.988539,-0.047767}, {-0.656993,1.766078}, {0.175814,-0.815643}, {0.621924,0.409207}, {-0.576310,0.039971}, {-1.353919,-0.486915}, {-0.387561,-1.061818}, {-0.119924,1.290992}, {-0.230595,-0.112278}, {-0.740619,-0.035881}, {0.143479,-1.215912}, {0.210367,1.334086}, {-0.308564,-0.243013}, {-0.152059,-0.489945}, {-0.321632,0.092499}, {1.924499,-0.416900}, {-0.096596,-0.427458}, {0.269636,0.757454}, {-0.150174,-0.186291}, {0.865667,-0.424643}, {0.370408,0.371389}, {-0.766370,-0.272893}, {-0.222344,0.995829}, {-0.468779,1.033146}, {-0.149001,0.896831}, {-0.755959,-1.024279}, {1.217738,-0.762323}, {0.534823,0.219960}, {-0.070087,-0.996893}, {0.319844,-0.482557}, {0.360326,-1.036808}, {0.175977,0.088674}, {-1.461705,0.208011}, {0.077773,-0.162524}, {0.054694,-0.539832}, {-0.096807,0.513069}, {-0.100006,0.909039}, {1.406467,-0.680385}, {-0.474095,0.657180}, {-0.266534,-0.258199}, {-0.155174,0.776743}, {-0.786856,-1.189942}, {-0.191945,-0.142069}, {1.405201,0.141338}, {0.792400,0.879229}, {0.517136,-0.068225}, {-0.073672,0.710877}, {-0.308993,-0.293807}, {-0.242238,0.739423}, {0.319612,1.603955}, {0.275246,-1.560017}, {0.990727,0.848362}, {0.559344,-0.346077}, {-1.078959,-0.356477}, {-0.070324,0.894042}, {-0.528587,0.035779}, {-1.258713,0.379885}, {-0.290864,0.053989}, {-0.225357,-0.508803}, {-0.752478,-0.581330}, {0.126417,-0.906446}, {-0.993092,0.097985}, {0.016474,1.418872}, {-0.886978,1.124599}, {-0.864118,0.032904}, {0.105550,0.529514}, {-0.447701,-0.032437}, {-0.815386,0.312394}, {1.531759,0.864403}, {0.463851,-0.299624}, {1.193057,-0.699033}, {-0.904051,1.118158}, {-0.019004,-0.938424}, {0.479988,-0.435766}, {0.614927,0.556017}, {-0.620773,0.176160}, {-0.040731,-0.961046}, {1.396722,0.475938}, {-0.651834,-0.578144}, {-1.231469,0.391926}, {0.074102,0.218066}, {-0.780426,0.939099}, {0.266873,0.597431}, {0.035461,-0.147601}, {-0.041518,-1.551616}, {-0.652796,0.186071}, {-0.515741,0.854016}, {0.260025,-0.565384}, {-0.507427,-1.442764}, {1.156603,-0.625163}, {-0.277430,-0.146397}, {0.786110,-0.385100}, {0.187860,0.259149}, {-0.708870,0.857568}, {0.258114,-0.517658}, {-1.593806,1.354268}, {0.769054,1.115951}, {-0.320025,0.831390}, {0.362127,-0.478752}, {0.463627,-0.562727}, {0.105345,-0.459347}, {-1.973697,-0.097140}, {-0.329367,0.850698}, {-0.703448,-0.335789}, {0.450011,1.121062}, {0.654028,-0.721941}, {0.397198,0.029445}, {0.299006,0.140008}, {-1.278916,-0.883708}, {-0.442195,0.297563}, {0.159308,-0.023143}, {0.282331,-0.269534}, {1.455855,0.834365}, {0.520331,-0.449560}, {-0.163163,0.285191}, {-0.485547,-0.381264}, {0.182946,-0.895494}, {-1.239939,0.220402}, {-0.161033,-0.885029}, {-1.573787,-0.436694}, {0.431696,-0.262095}, {-0.044572,-0.808512}, {-1.515339,-0.713970}, {-0.072136,-0.707279}, {0.083839,0.736988}, {0.609676,-0.073344}, {-0.218284,0.410031}, {-0.145884,-0.759804}, {1.449489,0.119417}, {-0.924116,-0.784971}, {0.396728,-0.420324}, {0.442812,0.065814}, {0.300979,0.512297}, {0.720141,0.898594}, {-0.335842,-0.181875}, {-0.558501,-0.374812}, {-0.124859,0.840644}, {-0.457252,-0.211346}, {-0.502385,-0.919004}, {-0.681491,0.752273}, {-0.596193,-1.541557}, {0.244109,-0.338625}, {0.598338,-0.141999}, {-0.132257,0.405104}, {-0.402130,0.664641}, {-0.985068,0.337142}, {0.289973,0.153776}, {-0.086672,0.267755}, {-1.157864,1.082877}, {0.138765,1.203857}, {0.157440,-0.081841}, {0.183486,1.244150}, {-1.021782,-0.631884}, {-0.147782,-0.684714}, {0.196621,0.546394}, {-0.631778,-0.068033}, {-0.138504,-0.409385}, {-0.600232,0.098769}, {-0.817953,0.213884}, {0.961003,0.245662}, {0.790531,0.562720}, {-0.703499,1.039309}, {0.479667,-1.119048}, {-0.013366,0.839971}, {-0.034365,0.640450}, {-1.399523,0.355804}, {0.260801,0.147967}, {0.065808,0.546078}, {-0.347448,0.098553}, {0.821639,0.246355}, {-1.628820,-0.597563}, {-0.248049,0.428404}, {-0.053644,1.339589}, {-0.477780,-0.236885}, {0.582341,-0.895865}, {0.551673,-0.940215}, {0.810823,0.355256}, {-0.718213,-0.553310}, {0.761180,-1.567887}, {-1.354477,0.587993}, {-0.280057,0.265041}, {-0.485069,-0.830335}, {-0.898486,-0.123829}, {-0.065445,-0.810844}, {-0.075952,0.012324}, {0.489889,-0.201254}, {0.502262,-0.204768}, {0.228861,0.614161}, {0.686882,0.221387}, {-0.191478,-0.314977}, {-0.163156,0.201862}, {0.981396,-0.176446}, {0.031663,0.040162}, {0.765293,0.204843}, {-1.423840,0.580181}, {0.661978,-0.453962}, {-0.198973,-0.676154}, {0.975239,0.071402}, {0.514612,1.173023}, {0.395354,-0.237298}, {0.218742,-0.040218}, {1.092119,0.149444}, {-0.066491,1.171302}, {0.600378,-0.193844}, {-0.522677,-0.422476}, {-0.450177,-0.922771}, {0.814332,0.819734}, {0.611399,0.414148}, {-0.102235,1.090889}, {0.172764,0.367310}, {-0.386690,0.711734}, {-0.308570,0.399715}, {-0.067773,0.037268}, {0.897905,-0.893449}, {0.499070,-0.204820}, {1.054001,0.253654}, {-1.022458,-0.025210}, {0.791977,-0.988702}, {0.083416,-0.657610}, {-0.203881,-0.187619}, {1.728950,0.829113}, {-0.980056,0.458782}, {-0.475889,-0.471833}, {-0.597087,-0.425042}, {1.065324,0.775118}, {0.503802,-0.715574}, {0.017682,-0.631690}, {-0.846011,-0.086879}, {-1.073453,-0.572789}, {0.668645,0.492660}, {0.202993,0.029645}, {-0.464086,0.246619}, {-0.899470,-0.353428}, {0.399672,-0.546029}, {-0.121598,1.584198}, {0.616540,0.126347}, {1.654014,-0.991907}, {0.329572,-0.377064}, {-0.771268,0.203136}, {0.866739,-0.212090}, {-0.105599,0.598985}, {0.124672,0.816280}, {0.148568,-0.916659}, {0.156576,-0.534549}, {0.963588,1.376216}, {0.514055,-0.130478}, {-0.228784,0.663864}, {0.478723,-0.412546}, {-0.851050,-1.062536}, {0.424482,0.064766}, {-0.229494,0.000992}, {1.328704,-0.161219}, {-0.001671,1.095202}, {0.127424,0.140526}, {0.072691,0.881068}, {-0.449420,-1.174092}, {-0.002478,0.730130}, {-0.264893,1.106372}, {-0.113501,0.098044}, {0.445563,-1.652426}, {-0.648095,-0.615132}, {-0.791597,0.312268}, {-0.592599,0.128912}, {0.193724,-0.027621}, {-0.246776,1.475506}, {0.154953,0.056356}, {-0.256764,-0.209585}, {1.243059,0.094700}, {-1.263590,1.488868}, {-0.715768,1.026954}, {-0.069072,-0.394451}, {-0.054306,0.165971}, {-0.905233,0.403129}, {-0.220554,-0.122628}, {0.364791,0.286679}, {0.785926,-0.769723}, {-0.735274,2.193241}, {1.277747,0.699746}, {0.279424,0.904941}, {-0.202973,0.086592}, {-0.778679,-0.431290}, {0.160730,-0.785100}, {-0.503414,-0.322093}, {0.592752,-0.398302}, {-0.224174,0.376569}, {-0.504882,0.240802}, {0.639766,0.479862}, {-0.548174,0.076778}, {0.839506,-1.051851}, {-0.614694,0.201207}, {0.946087,0.430684}, {-0.128392,0.666809}, {0.392418,0.875509}, {-0.468207,-0.038870}, {-0.222987,-1.094249}, {-0.745045,-0.662640}, {-0.282590,-0.848140}, {0.273818,-0.451490}, {-0.107371,0.883462}, {1.090884,-0.618116}, {0.320881,-0.288501}, {-0.802570,-0.344983}, {0.293442,0.998732}, {-0.027360,0.016971}, {-0.520384,1.021780}, {-1.029293,0.643514}, {0.544240,-0.294024}, {0.814885,0.293088}, {-0.217184,-1.607462}, {1.042856,-0.193162}, {-0.482617,0.001200}, {1.290766,0.396281}, {0.541096,0.190732}, {-0.185152,0.422218}, {-0.395013,-0.856063}, {0.129098,-0.208842}, {-1.216610,0.501032}, {-0.578368,-0.077011}, {-0.142931,-0.107519}, {-0.049935,-1.347985}, {-0.169092,-0.532516}, {0.473700,-0.739075}, {-0.372626,-0.612488}, {0.695860,0.589931}, {0.090898,0.189706}, {1.451253,0.155602}, {0.630673,1.074650}, {0.523568,1.240808}, {-0.333037,-1.525041}, {0.828902,0.384816}, {0.705692,-0.123515}, {-0.161236,-1.091553}, {-0.905419,1.093307}, {-0.353888,-0.534408}, {0.604700,-1.082505}, {0.014201,-0.516866}, {-2.169492,1.453974}, {1.951017,0.818724}, {0.494091,-0.791937}, {0.118409,-0.206657}, {1.085713,0.213897}, {0.301931,-0.566131}, {-0.259674,0.527941}, {0.980986,0.596725}, {-0.596668,-1.134933}, {0.625839,0.458710}, {-0.334225,-0.120566}, {1.771062,-1.026789}, {0.151459,-1.012159}, {-0.330544,0.845122}, {-1.728633,-1.435125}, {0.140577,-0.610380}, {0.822159,0.635061}, {-0.201738,0.393073}, {0.440206,-0.257053}, {0.260232,-0.046157}, {-0.020715,0.469076}, {-0.449526,-0.525654}, {1.069078,1.418019}, {-0.433268,-0.165652}, {-0.085426,-0.660526}, {-0.843452,-1.075621}, {0.160153,-0.609560}, {0.532025,-0.402982}, {1.053319,-0.606113}, {-0.912064,0.532538}, {0.288336,-0.224900}, {1.049554,-0.798748}, {0.062931,0.248464}, {1.171278,-0.296591}, {-0.258426,-0.410351}, {0.945094,0.478489}, {-1.461804,1.046522}, {-0.633659,0.358206}, {0.250690,1.106278}, {0.430452,-0.309765}, {-0.308992,0.553894}, {0.779977,0.398830}, {-0.294969,0.376904}, {0.220612,0.065218}, {-0.920859,-0.345626}, {0.187574,0.099608}, {-1.349871,-0.183671}, {0.130552,0.361476}, {-0.141677,0.506033}, {0.618300,1.618166}, {0.475492,0.079416}, {0.714330,-0.370986}, {-0.573479,0.180490}, {-0.137712,-0.060913}, {0.515423,-0.368048}, {0.244133,1.174597}, {-0.525398,0.663225}, {0.578443,-0.543669}, {1.201958,0.923160}, {-0.111823,-0.487590}, {-0.073718,0.190523}, {0.649657,-0.659715}, {-0.409310,0.134954}, {-1.326234,-1.272925}, {1.305404,0.226864}, {-0.392474,-0.933792}, {-0.007464,-1.287274}, {-0.446668,-0.005931}, {0.098037,-1.037468}, {1.342139,0.517189}, {0.428876,0.529115}, {0.527585,-0.589122}, {0.132382,0.288948}, {-0.088091,-0.529385}, {-0.211020,0.106296}, {-0.618083,-0.302373}, {1.818536,0.685940}, {-0.922613,-0.342791}, {-1.840156,0.792622}, {-0.553622,-0.586101}, {0.623642,-1.195093}, {-1.132636,0.579581}, {0.093510,-0.770117}, {-0.885828,-1.187070}, {-0.293717,-0.805523}, {0.400295,-0.348303}, {0.607811,-0.144559}, {-0.692936,-0.145218}, {0.725639,-0.758167}, {-0.143427,-1.162858}, {0.782318,-0.861163}, {-0.606077,-0.183103}, {0.022532,-0.331872}, {-0.240756,-1.411801}, {0.278457,0.187169}, {0.424589,0.760281}, {0.483186,-0.084917}, {-1.213938,-0.432077}, {-0.429109,0.225001}, {0.175712,0.073672}, {1.027955,0.430115}, {-0.106412,-1.172744}, {-0.400012,0.691001}, {0.488778,0.654797}, {0.674586,0.222262}, {-0.040199,0.757857}, {0.335755,-0.779464}, {-0.011836,0.511340}, {-0.287985,0.242453}, {-0.323989,-0.022321}, {-1.788818,-0.594621}, {-0.126588,-0.670139}, {-0.582553,-0.282272}, {-0.172383,-1.483735}, {0.097068,0.374952}, {1.145251,-0.041021}, {-0.661188,-0.015538}, {0.478935,-0.798933}, {0.483136,-0.932957}, {-0.692102,0.831164}, {0.387143,-0.210910}, {-0.369834,-0.499064}, {-0.552389,0.968678}, {0.706835,0.672863}, {0.884666,-1.374115}, {-0.892116,-0.645080}, {0.212438,-0.363604}, {0.120562,0.094899}, {-0.607090,0.509514}, {0.391938,-0.197226}, {1.477689,-0.894952}, {0.067956,0.305202}, {-0.377072,-1.118688}, {0.238509,-0.640692}, {0.985068,-1.082955}, {1.406457,0.016522}, {-0.195835,0.951245}, {-0.668623,0.196354}, {0.629538,-0.359206}, {-2.110332,-0.600784}, {0.218971,-0.422251}, {0.327340,-0.702791}, {-0.506006,-0.186140}, {0.342203,0.477097}, {-0.211730,-0.864108}, {-0.065807,0.211029}, {-0.227760,0.316405}, {0.086344,0.613594}, {0.237860,1.320884}, {0.473216,-0.549211}, {0.498238,-0.583895}, {0.286832,0.326195}, {-0.476474,0.218899}, {-0.563894,0.557927}, {0.272322,0.469703}, {-0.749019,-0.736560}, {0.161585,0.085403}, {0.056852,0.115904}, {-0.388830,-0.672548}, {0.884869,-0.590201}, {0.566593,0.608661}, {-0.516091,-0.918691}, {1.642885,1.310890}, {0.696677,0.124297}, {0.445759,2.250527}, {0.322959,0.688997}, {0.016110,-0.780982}, {1.171736,0.361072}, {1.343905,1.272841}, {0.592350,0.019416}, {0.152619,-0.147421}, {-0.704640,0.341073}, {1.099323,-0.430740}, {-0.840177,-0.697932}, {-1.442964,0.718412}, {0.164263,0.523929}, {-0.111350,-0.289444}, {1.050958,0.639940}, {-0.763601,-0.206712}, {-0.631193,-0.041356}, {0.663994,0.322670}, {-0.258825,1.093934}, {0.337754,-0.472584}, {-0.618973,0.215902}, {0.770590,-1.183008}, {1.114851,-0.199457}, {1.027480,1.933290}, {-0.609203,1.103349}, {-0.541345,0.547887}, {0.276828,-0.095631}, {1.215758,-0.061026}, {-0.865888,-0.313945}, {0.134350,-0.986536}, {0.333627,0.278205}, {0.229353,-0.313560}, {0.822267,-0.147288}, {1.790442,-0.772786}, {0.614975,-0.867141}, {0.824009,-0.340756}, {0.242416,0.525339}, {-0.913436,1.352899}, {0.085737,0.921626}, {0.600046,0.518829}, {0.840608,-0.399042}, {0.744769,0.036632}, {-0.040337,0.836790}, {0.069399,0.963537}, {0.190218,-1.028734}, {0.357859,-0.557734}, {-0.160823,-0.761802}, {0.679527,0.810942}, {-0.334324,0.388009}, {0.635341,-0.443085}, {1.119667,1.031693}, {0.702179,-0.010668}, {0.687804,0.335793}, {-1.218997,0.360120}, {-0.015499,0.167078}, {0.772188,-0.754889}, {1.119482,0.633941}, {0.789910,-0.165533}, {-0.352196,-0.008508}, {0.863554,0.258157}, {0.200500,0.053978}, {-0.201635,0.202142}, {-0.195493,0.605893}, {-0.351966,-0.907111}, {-0.185199,-1.375999}, {-0.288755,0.112778}, {-0.601478,0.546465}, {-0.254146,0.433599}, {1.287544,0.188691}, {0.748493,0.772074}, {-0.185359,-0.704725}, {0.297589,-0.523805}, {-1.228142,0.231061}, {-0.238207,-1.513225}, {-1.093305,-0.811754}, {-1.360744,-0.232347}, {0.770614,2.942337}, {-1.054750,-0.772966}, {0.639057,-0.927998}, {-0.300836,-0.163147}, {-0.393160,-0.264180}, {-0.502845,1.088386}, {-0.790613,0.905711}, {-0.312306,-0.234891}, {0.024799,0.486804}, {-0.059798,1.341482}, {-0.463482,0.141503}, {-0.142495,0.482216}, {-0.584915,0.774424}, {0.727377,0.857342}, {-0.250533,-0.538912}, {-0.708249,-0.711566}, {-1.633626,-0.948018}, {-0.654737,0.568716}, {-0.452462,0.609938}, {0.103789,0.356140}, {-0.028716,0.443183}, {1.028940,0.846843}, {-1.932886,-0.497384}, {-0.029238,-0.196571}, {0.059763,-0.375114}, {-0.336361,-0.329419}, {0.088773,-0.164776}, {0.765711,0.371364}, {0.204439,0.390603}, {-0.110530,1.504023}, {-0.431800,0.089282}, {-0.819449,-0.350066}, {-0.974220,0.564947}, {0.125759,0.339755}, {0.317493,-0.006911}, {-1.013535,-0.202630}, {0.112258,0.117162}, {-0.531978,0.042502}, {-0.940156,0.121649}, {-0.725521,0.466195}, {-0.416124,0.485405}, {0.336967,0.057276}, {-0.421566,-0.168387}, {-0.015320,0.831380}, {-1.056343,-0.068795}, {0.549310,-1.282829}, {-0.194868,0.315490}, {0.003948,-0.561034}, {0.479671,-0.065741}, {-0.425547,0.760606}, {0.488399,-0.579394}, {-0.424074,-0.366667}, {0.044047,1.152952}, {-0.830197,-0.460495}, {-0.814327,0.057209}, {1.553867,-0.219049}, {0.774422,0.590411}, {0.363240,-0.485420}, {0.185316,0.168755}, {-0.564670,-0.244371}, {0.792661,-0.638865}, {-0.024050,-0.436980}, {1.350849,-0.888220}, {-0.143934,0.300172}, {0.586975,0.568336}, {-0.081438,-0.547728}, {0.492427,0.008414}, {0.215698,-0.171356}, {0.462206,0.692607}, {-0.431732,-0.509402}, {-1.299840,-1.348103}, {-0.738818,-0.011450}, {-0.193146,-1.086403}, {0.998385,-0.142121}, {-0.217947,-0.430734}, {-0.035329,-1.851256}, {-0.353180,0.927875}, {0.107119,0.623563}, {0.012206,-0.271749}, {-0.307655,0.692549}, {-0.622138,-0.761409}, {0.442970,-0.480029}, {0.796093,0.551437}, {0.009668,-0.449114}, {-0.116923,-0.003272}, {0.747452,0.198782}, {1.585947,-0.584168}, {0.062659,-2.154515}, {-1.470887,-0.702686}, {-0.377002,-0.215950}, {-1.380013,0.062652}, {0.664140,0.181371}, {1.034914,1.310640}, {0.810257,-0.623334}, {0.768412,-0.116447}, {-0.043917,1.459535}, {-0.441852,-0.598940}, {0.028953,-0.184729}, {-0.076069,0.867122}, {-0.752365,-0.121888}, {0.348209,-0.710583}, {1.006050,-0.709281}, {0.321016,0.506845}, {-1.004044,0.592095}, {1.476868,1.249852}, {0.404023,-0.215948}, {-0.786363,0.092388}, {0.312994,-1.676486}, {0.877315,0.390367}, {0.304297,1.872417}, {0.488998,-0.499786}, {0.018221,-0.372451}, {-1.630813,0.961882}, {-0.677563,0.211437}, {-0.795802,0.135461}, {0.520392,0.265735}, {0.785026,0.446039}, {-0.362354,-0.016902}, {-0.318927,-0.455923}, {-0.333291,0.675215}, {-1.334583,0.593424}, {1.430517,-0.375052}, {-0.502683,-0.736192}, {-0.710810,-0.141498}, {-0.252294,0.092360}, {0.626259,-0.169977}, {-0.267358,-0.042655}, {0.193435,0.364396}, {0.847771,-0.951427}, {-0.521408,0.066863}, {1.582067,-0.274576}, {-0.618104,0.064801}, {0.613930,-0.093315}, {0.117743,0.435939}, {1.262775,0.798231}, {-0.609864,0.402638}, {-0.433813,-0.204178}, {0.343590,-0.619007}, {-0.178302,0.528886}, {0.558275,-0.569073}, {-0.158423,-0.646560}, {0.527513,0.661901}, {-0.991489,0.090190}, {-0.352216,-0.296703}, {-0.809827,-0.667036}, {-0.509143,0.613069}, {-0.175233,0.802702}, {-0.393206,-0.142194}, {0.443495,-0.739842}, {-0.493505,-0.346109}, {0.291099,0.973915}, {-0.121100,-0.623550}, {0.464915,-0.564442}, {-0.544471,0.680835}, {-0.476296,0.594486}, {-0.646494,-0.116102}, {-0.912840,0.857731}, {0.608502,0.100114}, {0.831568,-1.091763}, {0.233161,0.780343}, {-0.197179,0.037707}, {-0.367386,-0.575712}, {-0.755259,0.477536}, {0.467144,-0.619239}, {-0.321884,0.010948}, {0.452682,0.145276}, {-0.220426,-0.550002}, {-0.256978,0.137362}, {0.680658,-0.565345}, {-1.750026,-0.017867}, {-0.323665,-0.262173}, {-0.097985,0.422237}, {-1.404647,-0.993924}, {-0.588194,0.571803}, {-1.200961,0.921556}, {0.193916,2.152188}, {1.013266,-0.106129}, {0.235823,2.080106}, {-0.108434,-0.729457}, {-0.408723,-0.348886}, {-0.302859,1.484877}, {-0.312681,-0.505828}, {0.018735,-0.122920}, {0.355886,-0.484280}, {-0.135969,0.761103}, {0.390779,1.771250}, {-0.145102,-1.388635}, {-0.416709,-0.621879}, {0.126479,-0.899692}, {-1.448828,0.318005}, {0.672198,0.308803}, {-1.764904,0.014698}, {0.467586,0.731148}, {-0.866142,-0.129121}, {1.095405,1.415374}, {-0.288686,1.532333}, {-0.694974,-0.572545}, {-0.296954,-0.918548}, {0.185017,-0.335333}, {0.106725,-0.810778}, {-0.266406,-0.574720}, {1.024931,0.523381}, {0.111210,1.033764}, {1.104428,0.317206}, {0.138012,-0.485474}, {-0.075850,-0.936313}, {-0.691784,0.547524}, {-0.960452,-0.600781}, {-0.806045,-0.461982}, {1.408073,-0.255135}, {0.150425,-0.658298}, {0.240710,-0.413124}, {0.206125,1.431848}, {-0.706788,-0.747984}, {0.209810,0.344959}, {0.940145,1.819041}, {-0.423045,1.613672}, {0.691372,0.408910}, {0.291379,1.694717}, {-0.022473,-0.483715}, {1.506409,-0.487754}, {-0.950211,0.174272}, {0.437884,0.334518}, {-0.059121,-0.187999}, {-0.706148,0.532011}, {1.247993,-0.173918}, {0.403025,-0.456743}, {0.101642,-0.201338}, {0.220295,0.098694}, {-0.544353,-1.008343}, {0.706586,-0.476523}, {0.291079,-0.150127}, {-0.041337,-0.659792}, {-0.493954,-0.757686}, {-0.198818,-0.425300}, {0.765368,-0.713655}, {0.129659,-0.656772}, {0.752741,0.605671}, {0.059329,1.098435}, {-0.095906,-1.236300}, {-0.192572,-0.654089}, {0.060002,-0.407818}, {1.023894,-0.192512}, {-0.012820,-0.526931}, {-0.853581,-0.349135}, {0.422981,-0.199832}, {-0.884115,-1.022837}, {0.051870,2.156258}, {0.511633,0.370017}, {1.100921,0.287222}, {-1.091726,-0.326993}, {1.065161,-0.088250}, {1.295012,0.347661}, {-0.186661,0.274683}, {0.453460,0.453078}, {-0.019832,-1.655232}, {0.033441,-0.077400}, {0.083820,-0.808385}, {0.161770,1.034907}, {-0.408970,0.435216}, {0.710238,0.172596}, {0.070505,0.071455}, {-0.157619,1.133331}, {0.934837,0.290817}, {-0.142153,-1.033463}, {-0.805522,-0.609104}, {-0.713519,0.333743}, {0.766007,0.180658}, {-0.210227,-0.404890}, {-1.432711,0.510194}, {-1.527153,-0.138670}, {-1.413773,-1.392381}, {1.162048,-1.121023}, {0.375536,0.334633}, {0.277678,0.377802}, {0.353273,-0.438537}, {-0.000468,0.519358}, {-1.862624,-0.213202}, {0.231657,-0.206180}, {0.579498,1.438150}, {-0.818714,0.244540}, {-0.414526,-0.963580}, {1.434481,-0.200950}, {-0.706870,-0.490200}, {-0.445819,0.232220}, {0.014789,0.903088}, {0.823644,0.019996}, {-0.257175,1.092355}, {0.233427,1.236390}, {-1.569737,0.596411}, {0.289963,-0.304775}, {-0.652898,-0.307950}, {0.677093,0.468114}, {0.199346,-0.368715}, {-0.122099,-0.856128}, {0.527088,-0.699184}, {0.098459,-0.383729}, {0.127642,0.100256}, {-0.743423,-0.133080}, {-1.904618,-0.208222}, {-0.311420,0.441420}, {0.314336,-0.480474}, {-0.822712,-0.862232}, {-0.009480,1.146566}, {-0.001370,-0.736855}, {-0.643167,-0.430793}, {-1.377535,0.367134}, {0.117747,-0.018534}, {0.118661,-0.605605}, {-0.428251,0.078424}, {-0.755322,0.026743}, {0.108427,-0.429369}, {-0.546590,-0.242576}, {-1.123375,0.034104}, {-0.178010,0.215736}, {0.555579,-0.157472}, {0.008256,-1.040877}, {0.300994,0.502246}, {-0.596434,-0.574450}, {0.650520,-0.251038}, {-1.202669,0.119406}, {1.207843,-0.367324}, {-0.839307,-0.511398}, {-1.142954,0.350094}, {1.745947,-0.663306}, {-0.197524,-0.058007}, {0.604840,0.358341}, {-0.629763,-1.061339}, {0.714119,-0.671946}, {-0.957979,0.108516}, {-0.204673,-0.841928}, {-0.224796,1.403409}, {0.057728,-0.276108}, {0.022420,0.907590}, {-0.442873,-0.197745}, {0.070502,0.367408}, {1.111314,-0.115300}, {-1.214722,0.435263}, {-0.623381,-0.183199}, {0.842462,0.271952}, {0.223962,-0.253993}, {0.784241,-0.623105}, {-0.460386,0.244667}, {0.057513,-0.844943}, {0.252052,1.072527}, {0.045339,0.090347}, {-1.550655,-0.849565}, {0.698342,1.719761}, {0.625755,-0.059108}, {0.461099,0.873655}, {-0.178899,-0.905113}, {0.378758,0.050943}, {-0.024118,0.005723}, {0.139377,-1.441619}, {0.746170,-0.864942}, {2.244304,0.225823}, {0.941294,0.456267}, {0.681838,0.479907}, {0.555077,0.448809}, {0.113034,0.326665}, {0.290276,-0.323618}, {-0.310803,-0.740078}, {0.288215,0.147328}, {0.122018,-0.901168}, {1.102202,-1.702754}, {-0.681899,1.076125}, {-0.823461,-0.531651}, {0.608237,-0.372707}, {-0.681661,-0.191809}, {0.079867,-1.266244}, {-0.317741,-0.703671}, {0.034086,0.942178}, {0.168887,0.177944}, {-0.613740,0.025035}, {1.089925,0.392534}, {0.075943,0.040485}, {0.566377,-0.156880}, {0.660386,0.045064}, {-0.906557,0.350211}, {-0.616084,0.671656}, {-0.353653,-0.928423}, {1.334011,-0.377983}, {0.733590,0.190001}, {-0.583415,-0.285064}, {1.339272,0.266120}, {-0.537001,-0.258520}, {-0.448141,-0.050157}, {0.740691,0.648732}, {1.056314,-0.629005}, {-1.160330,0.410656}, {0.633715,-0.113482}, {0.220648,-0.289338}, {-1.356221,-1.047442}, {-0.799830,-0.402114}, {-0.855423,-0.218579}, {0.533292,-0.955058}, {-0.590952,-0.359871}, {-1.003588,-0.950145}, {0.031010,-0.073887}, {-0.970717,0.112552}, {0.905541,0.082191}, {1.109198,0.621634}, {0.061115,-0.182655}, {0.519211,0.584771}, {0.453454,1.105118}, {0.307900,-0.290329}, {-1.310764,-1.192390}, {-0.990446,-0.449249}, {-0.636245,-1.136897}, {0.194571,-0.105070}, {0.972256,0.693447}, {-0.291198,1.374025}, {0.144387,1.382765}, {-0.101333,-0.022509}, {-0.474852,0.062917}, {-0.543704,-0.461692}, {0.714138,-0.106485}, {0.040096,0.285104}, {0.590028,1.369938}, {0.501543,-0.043429}, {2.614600,1.102147}, {0.255439,-1.183224}, {-1.069301,0.552063}, {0.505847,0.666774}, {0.018523,2.289326}, {-0.261409,-0.381025}, {-0.633168,-0.802063}, {-0.221651,-0.314856}, {0.314198,1.603044}, {1.173064,1.017943}, {-0.665682,-0.159433}, {-1.758748,-0.064417}, {1.147580,0.950364}, {0.550126,-0.366558}, {0.065759,0.113614}, {0.956481,1.179104}, {0.433038,-0.684553}, {-0.367835,-0.136092}, {-1.108652,-0.501821}, {0.014093,-0.724897}, {0.474274,0.071691}, {-0.878852,-0.454418}, {-0.111987,0.397469}, {0.980863,0.508451}, {0.567833,-0.325126}, {0.117299,-0.350239}, {0.496458,-0.149528}, {-0.712447,0.404552}, {0.050514,-0.370253}, {0.209666,-0.591714}, {-0.392540,-1.209119}, {-0.075244,0.496292}, {-0.294131,-1.102998}, {-0.209255,0.078796}, {0.109577,-0.306647}, {-0.214269,0.731213}, {1.862247,0.688064}, {-0.992337,0.128817}, {0.056261,2.006550}, {-0.259084,0.729512}, {0.491870,-0.795017}, {0.176987,0.094347}, {-0.319391,0.300136}, {-0.069294,-0.021210}, {1.038121,-1.099239}, {1.734655,-0.131408}, {0.361025,1.818288}, {-0.758635,-0.906905}, {1.433721,-0.082347}, {-0.327756,-1.150218}, {0.449566,0.413723}, {0.983053,-0.867287}, {-0.937329,-0.376043}, {-0.126866,-0.124008}, {-0.438458,-0.453466}, {-0.101627,0.012617}, {0.582181,-0.133631}, {0.121428,-0.222195}, {-0.608804,0.004610}, {-0.280329,-0.071507}, {0.776663,-0.049369}, {0.603737,-0.528278}, {-1.155587,0.324328}, {-1.123362,-0.454602}, {0.767449,-0.921822}, {-0.352388,-0.357436}, {0.309848,0.070129}, {-0.656513,-0.652553}, {-0.381851,0.355358}, {0.495213,0.523033}, {1.153773,1.092873}, {0.668633,-0.859082}, {-0.746353,-0.312026}, {1.048775,0.535930}, {0.279033,-0.054578}, {-0.111243,-0.422662}, {-0.136422,0.053799}, {-0.056102,0.342915}, {-1.088014,-0.730922}, {0.878624,-0.890989}, {-0.729911,-0.058834}, {-1.333908,-1.160115}, {-0.684287,-0.253154}, {-1.079448,-0.270283}, {0.151333,-1.649204}, {0.253875,0.108594}, {0.235712,0.387503}, {-0.899825,0.496213}, {-0.610484,-0.533034}, {0.496822,-0.243569}, {-0.524167,0.235972}, {-1.610220,-0.155522}, {-0.796686,1.243795}, {-0.581308,-0.236754}, {-0.209195,-0.037144}, {0.184881,-0.083576}, {0.396540,-0.490520}, {0.508980,1.096300}, {-0.094454,0.369221}, {0.680896,1.252947}, {-0.440938,-0.853486}, {-0.157199,-1.304081}, {-1.447599,0.971928}, {0.626587,0.396517}, {0.836229,0.966611}, {1.381874,-0.246085}, {-0.414028,-0.280956}, {0.980019,-0.334138}, {-1.644429,-0.389069}, {0.225519,0.368235}, {1.116159,-0.726131}, {-0.733320,0.355245}, {0.988265,-1.747007}, {0.840822,0.138793}, {-0.117871,0.688465}, {0.657025,0.157528}, {-0.117520,0.629271}, {-0.645882,-0.938485}, {0.980639,0.197481}, {0.320092,-0.621575}, {1.315216,0.186380}, {-1.150480,-1.020916}, {1.148288,-0.445450}, {-0.049133,0.097262}, {0.210559,-0.338083}, {-0.164647,1.698560}, {-0.134143,-0.581370}, {-0.100706,0.043457}, {-0.251067,-0.907292}, {0.551859,-0.013725}, {0.299242,-0.340345}, {-0.247395,1.075102}, {-0.032695,-1.479628}, {0.250204,0.334675}, {0.859668,-0.605057}, {0.362075,0.166596}, {0.432570,-0.747261}, {0.674745,-0.020640}, {0.361038,0.375811}, {0.009795,0.744204}, {-0.437627,-0.150132}, {-1.149837,0.074239}, {-0.717292,-1.450907}, {1.485412,0.238923}, {-0.577879,-0.010250}, {0.641200,-0.964459}, {-0.088981,0.206840}, {0.593610,-0.502221}, {-1.008813,0.283182}, {-0.009605,-0.090918}, {-1.338922,0.333185}, {-1.074846,-1.517178}, {0.539697,-0.906593}, {0.275416,-0.647435}, {1.139667,1.074978}, {0.070698,-0.375933}, {0.008435,1.196329}, {-0.222550,0.250323}, {0.275090,-0.128200}, {0.279230,0.576149}, {-0.362237,0.693913}, {-0.614259,0.504714}, {0.812049,-1.100580}, {-0.370461,0.966923}, {1.198670,-0.644836}, {-0.031461,0.128519}, {-0.122097,0.053159}, {1.315332,-1.008152}, {-0.754167,-0.305309}, {-0.485979,0.476556}, {0.823664,1.071616}, {-0.183654,-0.551620}, {0.748615,0.994233}, {-0.119972,0.065139}, {-0.849627,-1.159702}, {-0.444765,0.256956}, {0.209474,-0.472828}, {-0.525549,-1.027303}, {1.757616,0.445698}, {0.160525,0.088103}, {0.435382,0.227305}, {0.218477,0.170341}, {-0.580507,-0.450303}, {0.398378,0.017052}, {-0.031351,-0.247548}, {-2.316506,-1.483557}, {-0.443973,-0.691774}, {-0.510807,0.699816}, {-1.037649,0.345879}, {-1.257505,0.629094}, {-0.000852,-0.321557}, {-0.373482,-0.402662}, {-0.022826,-1.218651}, {0.025138,0.767667}, {0.356935,-1.465306}, {-0.020640,-0.323252}, {0.602591,-0.289913}, {0.046297,0.283469}, {-0.283535,-0.047672}, {-0.166785,-0.277583}, {-2.385793,1.082178}, {-0.050855,0.483435}, {-0.239055,-0.165545}, {0.505107,0.359352}, {-0.855951,-1.185629}, {-0.394709,0.226833}, {1.257326,-0.916278}, {-0.745575,-0.046165}, {-2.243851,-0.696840}, {0.551393,0.147983}, {0.291053,-0.204270}, {0.161488,-0.475875}, {-0.528262,0.575247}, {-0.986426,0.773656}, {-0.744878,-0.909927}, {0.320911,0.629702}, {-0.323660,-0.506678}, {0.028159,-0.259382}, {0.460460,-0.163144}, {-0.813206,-0.350558}, {1.044790,0.293066}, {-0.132596,1.665505}, {0.395208,-1.153663}, {0.924725,-0.269132}, {-0.982288,-0.672640}, {0.021874,0.182806}, {0.249894,0.425458}, {-0.636470,-0.070118}, {0.024546,-0.394318}, {-0.114422,-0.016105}, {0.604817,0.799636}, {0.172222,0.798172}, {-0.091129,0.328291}, {0.590852,1.199025}, {-1.487713,0.087366}, {-1.108675,-0.555536}, {-0.692600,0.090637}, {0.911874,0.392273}, {0.402013,0.091871}, {-2.169173,0.338864}, {0.067482,-1.073878}, {-0.036547,1.460194}, {0.266305,0.645196}, {0.003120,0.423355}, {-0.238731,0.052394}, {-1.065448,-0.598678}, {0.055241,0.168619}, {0.562618,1.551298}, {-0.301688,-0.337400}, {0.547448,0.323789}, {0.788771,0.516224}, {0.132486,0.681322}, {-0.323760,-0.904475}, {-0.871126,-0.916061}, {-1.544630,0.204207}, {-0.082182,0.441189}, {-0.325721,0.084840}, {-0.000671,-0.910962}, {-1.548705,-0.305130}, {1.464460,1.600289}, {-1.349656,0.526047}, {-1.552741,0.906982}, {-0.519449,-0.233318}, {0.355732,0.331088}, {-0.489145,0.230703}, {-0.970139,0.363476}, {-1.624033,-0.509895}, {0.174146,0.821782}, {0.724604,-1.376511}, {1.393602,-0.607327}, {-0.510112,1.657338}, {0.015431,-0.001536}, {-0.130508,-1.555322}, {0.000549,-0.198261}, {0.311467,1.081502}, {0.243611,-1.360408}, {-0.894903,-0.713205}, {0.388720,-0.109925}, {0.521072,0.398730}, {0.574843,0.157766}, {-0.617189,-0.437769}, {-0.211497,0.748437}, {0.702855,0.433536}, {0.432827,-0.382179}, {0.447150,1.156332}, {-0.241624,0.581731}, {1.292169,0.119941}, {0.294642,-0.871407}, {0.078200,-0.381604}, {1.032330,0.908219}, {0.814741,-0.010627}, {-0.355983,-0.219502}, {-0.243898,-0.682654}, {0.635359,-1.737373}, {-0.107756,-0.345466}, {-1.263305,-0.370563}, {0.175980,0.376202}, {1.108166,-0.738982}, {-0.840360,-0.285063}, {-0.324492,-0.354966}, {0.478240,0.505811}, {0.319641,0.856630}, {-0.332756,0.510426}, {2.005001,0.405899}, {0.155406,-1.227927}, {0.289207,0.937761}, {0.051751,-0.221727}, {0.149748,0.268723}, {-1.025125,0.344019}, {0.582839,-0.321769}, {-0.775607,1.441111}, {0.027304,-0.584074}, {0.863740,0.627974}, {-1.060986,0.321724}, {-0.281804,-0.212668}, {-0.329657,0.371799}, {0.531848,-0.158105}, {0.026672,-0.486360}, {-0.218047,0.635491}, {0.666709,0.993036}, {0.459120,0.452677}, {0.248002,0.115551}, {0.206833,-1.105758}, {-1.569637,-0.151421}, {0.180787,0.166870}, {1.226875,1.017497}, {-1.217281,-0.448781}, {-1.565721,0.396797}, {-0.217848,-0.273230}, {-0.526096,0.662491}, {-1.229207,0.003437}, {0.383000,-0.372112}, {1.650689,0.790800}, {0.536051,1.136376}, {-0.392390,-0.182759}, {-0.163732,-1.005985}, {-1.140970,0.475364}, {0.184716,-1.063705}, {0.945672,-0.647324}, {0.317886,-0.600098}, {-0.396886,0.775971}, {0.101952,-0.090515}, {0.276508,1.253623}, {-0.416748,0.718122}, {-0.099947,-0.530635}, {-1.499713,0.042544}, {0.397603,-0.268105}, {0.204542,-1.122999}, {-0.983787,-0.646320}, {0.250761,-0.124317}, {0.473183,0.341900}, {-0.705158,0.158472}, {0.371776,0.467056}, {0.257410,-1.623932}, {0.092234,-1.078695}, {-0.295587,0.833320}, {-0.531598,-0.934193}, {0.124603,-0.162051}, {-0.040780,-0.840548}, {0.785678,0.974760}, {-0.282413,0.507355}, {0.057080,-0.754205}, {-0.817044,0.275642}, {0.449437,0.089153}, {-0.482425,0.004603}, {1.564964,-1.225545}, {-0.296003,1.012181}, {0.691527,0.516007}, {0.861031,-0.816600}, {0.276897,-0.215415}, {-0.478248,1.152079}, {-0.243767,0.552381}, {-0.615166,0.120121}, {-0.258476,-0.311377}, {-0.105806,-1.233470}, {0.933500,0.163247}, {0.430437,1.092868}, {-1.072369,-0.214236}, {-0.893004,0.971634}, {-0.207458,-0.661337}, {0.591135,0.252093}, {-0.044583,0.323754}, {0.455226,0.549888}, {1.492632,0.101093}, {-0.299396,-0.684097}, {0.378218,-0.334619}, {0.232610,-0.041219}, {0.051506,0.557403}, {1.217142,-1.249841}, {0.292157,1.470057}, {0.044903,0.071167}, {-0.290396,0.496778}, {-0.181920,0.671063}, {-0.579713,-1.039686}, {-1.356184,0.198084}, {0.175306,1.691410}, {1.030813,-0.581909}, {-0.959255,-0.444030}, {-0.357172,-0.625541}, {0.681264,0.143548}, {-0.065022,-1.255416}, {-0.025972,0.751640}, {0.195418,0.198967}, {-0.581082,1.283469}, {0.990660,0.778059}, {-0.282029,1.107940}, {-0.273763,0.542701}, {0.995269,0.786820}, {-0.232447,0.365286}, {0.704749,1.074984}, {0.644010,0.101394}, {0.378756,-0.170049}, {0.796258,0.096740}, {0.728484,0.048925}, {-0.029005,1.135049}, {-1.414461,0.100530}, {0.195218,1.644827}, {-1.140545,0.941779}, {-0.380364,-0.295396}, {-0.489642,0.720380}, {0.491530,1.084624}, {0.771087,0.723882}, {-0.079504,-0.260956}, {0.512847,0.722547}, {0.807801,-0.638746}, {-0.235408,-2.425129}, {-0.331496,-0.883682}, {-0.331335,0.149970}, {0.777123,0.876489}, {1.812793,-0.280792}, {-0.603163,0.962356}, {-0.433949,0.895134}, {0.611068,-0.002651}, {-0.050707,-0.939219}, {0.333190,-0.695877}, {1.033787,-0.977412}, {1.029110,0.572951}, {-0.703830,0.009984}, {-0.605666,0.240015}, {-0.892166,-0.256507}, {0.310084,-0.876146}, {1.405525,0.188992}, {-0.818726,0.673212}, {0.010904,-1.077932}, {-1.260912,0.553293}, {-0.193185,0.554862}, {-0.169833,-0.541666}, {0.022431,-0.220661}, {-0.072948,0.560653}, {-0.643691,-0.722108}, {-0.414350,-0.104367}, {0.708357,0.463080}, {0.714304,-0.151360}, {-0.658587,-0.887861}, {0.149199,0.432913}, {-0.530458,0.445705}, {1.826116,1.011888}, {0.656833,0.119869}, {-0.563687,0.624626}, {-0.525881,0.838023}, {0.361541,0.559821}, {-1.743937,0.165666}, {-1.349337,1.152104}, {-0.049679,0.493514}, {1.987946,-0.325951}, {0.055513,0.426012}, {-1.269326,0.122713}, {-0.773301,-0.328201}, {0.863300,0.397242}, {1.404658,0.490418}, {0.697909,-1.272366}, {0.346984,0.771560}, {-0.275198,1.462558}, {0.614286,-0.583483}, {0.491689,-0.121321}, {0.868958,-0.218826}, {0.802647,0.609581}, {-0.178894,-0.484794}, {1.554270,-0.459034}, {-0.578008,-0.604401}, {0.141200,-0.810175}, {0.444930,1.801883}, {-0.510472,0.370071}, {0.280709,-1.144972}, {0.020627,-1.159767}, {-0.815817,-0.708195}, {1.525475,-1.186390}, {0.277199,0.101433}, {-0.263937,-0.366057}, {-0.084328,-0.735973}, {-1.014961,-0.808112}, {-0.463739,0.359998}, {-0.195469,-0.339523}, {-0.016981,0.736436}, {-0.265756,0.651378}, {1.181170,0.229175}, {0.508341,-0.387702}, {0.232816,0.750349}, {0.118147,0.881985}, {0.775509,-1.072872}, {0.126875,-0.169368}, {0.733796,-1.038803}, {-0.002779,1.199573}, {-0.771687,-0.819622}, {-0.160414,1.766988}, {-0.554493,-0.822178}, {-0.966927,-0.264584}, {-1.666005,0.562460}, {-1.142024,-0.696414}, {0.406841,0.433538}, {-0.370948,-1.115653}, {0.136048,0.160321}, {0.288581,1.454045}, {0.877842,-0.195856}, {-0.788680,-1.099470}, {-0.132225,1.177897}, {0.090549,0.626800}, {-0.773979,-0.074852}, {0.684609,0.690323}, {0.177050,-1.167072}, {-0.324256,-0.482870}, {-0.176754,-0.424217}, {-1.014998,-0.298680}, {-0.474555,-0.796117}, {0.283239,0.175760}, {0.614617,0.095776}, {-0.294539,-0.581832}, {-0.411225,-0.981276}, {0.042082,0.873893}, {-0.603924,0.401098}, {-0.783720,-0.094055}, {-0.750818,1.155413}, {-0.229883,-0.177973}, {-0.439507,0.600696}, {1.064919,0.193246}, {-0.304774,0.765127}, {-0.423589,1.423282}, {0.226341,0.048299}, {-0.491662,0.021729}, {-1.190822,-0.192527}, {0.236763,-1.021980}, {0.347245,0.305465}, {0.437791,-0.174323}, {0.293884,-1.183318}, {0.090410,-0.351897}, {0.127531,0.572262}, {-1.046283,-0.452403}, {0.940061,-0.475348}, {-0.986271,0.443950}, {0.220640,1.032270}, {0.286851,-0.234600}, {0.875448,-0.665507}, {0.054512,0.468117}, {-0.130507,1.089372}, {-0.035702,0.486985}, {0.069264,-0.306520}, {-0.066945,-0.482707}, {0.452421,0.252962}, {0.597328,-0.457166}, {-0.475184,-0.265545}, {0.663543,-0.025896}, {0.284485,0.141732}, {0.041567,-0.957668}, {0.290973,-0.844633}, {-0.681949,-1.232429}, {0.017290,0.318637}, {-0.575524,-0.211416}, {0.508609,0.616042}, {0.019156,1.014363}, {-0.230623,-0.152963}, {0.390757,0.179639}, {-0.076114,0.571760}, {-0.385456,0.807338}, {1.161341,-1.117539}, {0.108692,-0.217050}, {0.124773,-0.057939}, {0.460042,-0.075353}, {0.381092,-0.249534}, {0.421018,0.484359}, {0.008405,-0.001483}, {-1.033700,0.064492}, {0.168744,-0.730623}, {-0.456130,-0.563921}, {-0.042797,-0.009800}, {0.296420,0.994668}, {-0.431712,-0.260015}, {-0.851644,0.160001}, {0.315681,-0.696367}, {2.018690,1.186418}, {-0.250355,-0.220666}, {0.748427,-0.192764}, {-0.047138,-0.852542}, {0.211458,1.086426}, {0.871051,-0.574737}, {-0.562745,0.929652}, {0.283267,-0.955651}, {-1.076759,-0.129783}, {0.675245,0.669145}, {-0.702168,-0.896492}, {-0.291861,0.305292}, {-0.395244,0.389980}, {1.207996,0.801305}, {0.975263,-0.313611}, {-1.106120,0.102991}, {0.171218,0.482130}, {0.049836,0.344150}, {-0.574798,0.577927}, {0.172133,0.333449}, {-1.172473,0.893130}, {1.350215,-0.102154}, {0.456540,0.882785}, {0.794284,-1.919899}, {0.870210,0.114615}, {0.286346,0.295210}, {0.213541,1.053429}, {0.087514,-0.244276}, {-0.872078,0.726523}, {0.614549,0.116808}, {-0.631306,-1.519765}, {-0.542784,1.390314}, {0.087673,0.809103}, {-1.379197,-0.585950}, {0.481568,0.087880}, {-0.119636,-0.372124}, {0.016361,-0.024546}, {0.371448,-0.472289}, {-0.572025,0.092977}, {0.848296,0.441249}, {-0.453304,0.205288}, {-0.271298,0.488850}, {-0.281843,-0.272080}, {-0.630517,-0.095495}, {-0.762736,-0.986147}, {0.057032,0.993819}, {-0.237911,-1.264914}, {0.382413,-0.189031}, {1.303322,-0.407785}, {0.538644,0.342608}, {0.330098,-0.259188}, {-1.271100,-0.197699}, {1.826721,0.415414}, {0.508481,-0.379909}, {-0.724041,-0.599641}, {-1.260518,-1.057946}, {-0.374209,-0.096198}, {0.392033,1.122224}, {-0.810644,0.587815}, {0.365400,1.456110}, {0.729153,0.098419}, {-0.225790,-0.539353}, {-0.858060,0.189621}, {0.376242,-0.480459}, {0.232259,-0.269844}, {0.129211,1.283390}, {-0.948935,0.157627}, {0.613247,0.455174}, {-0.868574,0.557501}, {0.133104,1.933073}, {0.493281,-0.734954}, {-0.317203,0.085507}, {-0.072179,-0.635623}, {-0.985795,1.545802}, {0.274456,-0.767398}, {0.728872,0.296392}, {0.593057,0.123323}, {-0.183197,1.056002}, {-0.032735,-0.029408}, {0.677645,0.164514}, {0.091211,-0.485727}, {-2.498205,0.808644}, {0.996395,0.003573}, {0.266711,-0.454450}, {-0.263794,-0.040333}, {0.354992,-0.771940}, {1.172659,-0.469942}, {-0.367261,-0.704077}, {-0.143653,0.755396}, {1.250809,-0.502261}, {1.019959,-0.368994}, {1.590169,-0.138417}, {0.177393,0.277887}, {-0.611047,0.094640}, {-0.549878,-0.036917}, {0.807628,0.821926}, {-0.010075,0.421684}, {-1.108953,-0.164506}, {-1.299036,-0.726626}, {0.671054,-0.292631}, {0.742427,-0.086543}, {-1.439898,-0.338884}, {-0.130204,0.124819}, {0.283823,0.657034}, {-0.109731,-1.711867}, {-0.245196,0.209915}, {0.134997,-0.672792}, {0.052287,-0.037615}, {0.660337,-0.488347}, {-0.874463,-0.641201}, {-0.570408,0.594626}, {0.681125,1.678168}, {0.795936,-1.473398}, {0.778924,-0.690375}, {0.431527,-0.973408}, {-0.440928,-0.786162}, {0.032495,-0.001239}, {0.384671,0.422006}, {-0.232534,0.009146}, {-0.797171,0.074804}, {0.273856,-1.269545}, {-0.171058,-0.791818}, {1.061619,-0.008526}, {1.034158,-0.217879}, {-1.073993,0.364692}, {0.025259,0.399442}, {-0.054965,0.068811}, {-0.267747,-0.643064}, {1.461066,-0.012076}, {-0.836750,1.168916}, {0.751557,0.373319}, {0.284049,-0.561823}, {0.913427,0.006951}, {0.604871,0.613051}, {0.938690,0.069825}, {0.501171,-0.252792}, {0.173783,0.437109}, {-0.295979,-0.584728}, {0.268176,-0.073450}, {-0.039777,0.110535}, {0.448278,-0.594228}, {-0.298566,-0.370610}, {0.359251,1.950238}, {0.585298,-0.306953}, {0.002142,-0.517386}, {0.039309,0.239663}, {-0.535150,0.901889}, {0.909644,-0.597911}, {1.686969,-0.229593}, {-0.675714,-0.593584}, {-0.388048,-1.333594}, {0.141555,-0.868886}, {0.566275,0.216197}, {0.132033,0.260242}, {0.623869,0.696830}, {0.374297,-0.755016}, {-0.375173,-0.919679}, {0.062230,0.203455}, {-1.171487,1.698409}, {-0.657380,-0.503744}, {0.414301,0.170470}, {-0.611193,-0.370376}, {0.470375,-0.330994}, {-0.990314,0.032083}, {-1.312575,-0.450515}, {0.164736,-0.128481}, {-0.912458,-1.485285}, {-0.073236,-0.747723}, {0.278586,-0.044914}, {-0.449681,-1.314391}, {0.509207,1.963487}, {0.443624,-1.487975}, {0.605531,0.966878}, {0.884828,1.743505}, {-0.335874,-0.307016}, {-0.615678,0.670790}, {0.953036,0.532101}, {0.825614,0.299899}, {0.399454,-0.946779}, {-0.563757,-0.802924}, {-0.023567,0.554864}, {0.046483,-0.362895}, {-0.330303,0.001323}, {0.433488,0.570663}, {-0.127014,1.545073}, {0.235044,-0.692703}, {0.339960,-0.764085}, {0.765956,-0.657851}, {1.077800,-0.036173}, {0.431734,-0.931291}, {0.205175,1.147130}, {-0.058883,-0.741478}, {0.538996,0.374879}, {-0.435105,0.405032}, {0.930107,0.775706}, {0.158508,-0.559880}, {-0.043020,-0.139690}, {0.218128,-0.940794}, {0.107406,-0.191890}, {-0.040673,-0.450419}, {0.710685,-0.272868}, {0.214608,-0.733148}, {-0.440708,-0.166709}, {0.216889,-1.104968}, {0.114942,0.352891}, {0.515426,0.834965}, {-0.186585,-0.424557}, {1.257561,-0.686647}, {-0.278166,-1.068819}, {0.045243,-0.149820}, {-0.806871,0.387979}, {0.040414,-0.705648}, {-0.016666,1.472054}, {-0.427683,0.185384}, {0.017081,0.122558}, {-1.422488,0.695789}, {0.084603,1.586049}, {-0.226098,-0.072565}, {-0.689706,0.246104}, {0.644654,0.604549}, {-0.260322,1.463776}, {-0.430197,0.702709}, {-0.736554,1.401740}, {0.204332,-0.375610}, {-0.939807,1.309502}, {-0.037928,0.882787}, {-0.338569,0.066617}, {0.075071,0.541251}, {0.172982,1.021832}, {0.431851,-0.387000}, {0.307106,-0.919275}, {0.988648,-0.253024}, {-0.673928,0.782128}, {-0.688000,-0.918977}, {-0.027596,0.365924}, {-0.017926,1.175705}, {0.199711,-0.926633}, {0.739217,-0.155412}, {-0.592162,0.021539}, {0.080983,-0.276297}, {0.537674,-0.246176}, {0.015238,0.398952}, {-0.027734,-0.249279}, {-1.378429,0.127339}, {-0.809060,1.028061}, {0.218043,-0.052562}, {0.856957,1.006954}, {-1.011526,0.164596}, {0.476552,0.826400}, {0.022545,0.496168}, {-0.593984,0.825097}, {-0.170301,-0.015034}, {0.206013,0.981045}, {0.558955,-2.047671}, {-0.285619,-0.535242}, {0.338595,-0.054516}, {-0.320398,0.326921}, {-1.165209,-0.830182}, {-0.247664,-0.461885}, {0.566396,-0.099876}, {-0.062142,0.605779}, {0.862879,0.021585}, {-0.964586,-0.456012}, {0.383126,-0.226075}, {1.125091,0.452775}, {0.287649,1.076596}, {0.090020,0.540193}, {-0.329572,1.895356}, {0.883979,-0.133990}, {0.777596,0.934683}, {0.305673,-0.097759}, {0.445752,0.546775}, {0.438676,-0.401466}, {0.515517,0.663239}, {-0.861769,-0.334754}, {-1.155387,1.376435}, {0.693576,0.380899}, {-0.233764,-1.427252}, {-0.512225,0.275704}, {-1.300603,-0.025943}, {-0.886231,0.393107}, {0.203813,-1.151956}, {1.065475,0.274747}, {1.298933,-0.171110}, {-0.034164,-0.546428}, {1.344656,0.280082}, {0.303208,-0.150756}, {-0.278895,0.217139}, {0.774302,0.280649}, {-0.397168,-0.748535}, {-0.154686,-0.416415}, {0.108531,-0.707248}, {1.044479,0.517916}, {-1.079087,-0.181141}, {-0.618875,-0.601089}, {-0.903401,1.369553}, {-0.434703,1.004383}, {0.084219,-0.594635}, {0.760134,0.396506}, {-0.868353,0.425362}, {0.190516,-0.470775}, {0.130523,-0.050180}, {1.613252,-0.894441}, {-1.230645,0.027123}, {-0.207136,1.406158}, {0.097428,0.373589}, {1.101023,0.803449}, {1.891159,-1.054308}, {-0.158666,-0.325728}, {0.218607,-0.427098}, {0.581789,-0.007118}, {0.407515,0.254448}, {0.153202,-1.566655}, {1.270156,0.791481}, {-0.807984,-1.293868}, {-0.631812,0.190605}, {1.684536,0.502642}, {-0.623167,-0.326260}, {0.460536,1.490078}, {-0.633215,-0.730038}, {0.455857,-0.569264}, {1.113987,0.512264}, {-0.303183,-0.813196}, {1.242308,0.346664}, {0.235454,0.588078}, {0.884906,-0.682330}, {-0.870385,0.197874}, {-0.392108,1.132213}, {0.139987,0.749446}, {0.057771,-0.617700}, {-0.090352,0.118191}, {0.007506,0.480385}, {-0.183661,-0.349638}, {-0.201963,1.476555}, {-0.705242,-0.479413}, {0.975864,0.280884}, {0.972210,0.753330}, {0.338783,-0.040685}, {-0.054492,0.060498}, {-0.159293,0.819645}, {-1.053555,0.401428}, {0.115345,-0.107756}, {-0.194026,0.187454}, {0.439241,-0.428716}, {-0.065278,-1.075082}, {-0.272430,0.840665}, {-0.259244,0.669703}, {0.033760,-1.203906}, {0.088858,-0.092993}, {-0.855095,-0.299047}, {-0.255525,0.089061}, {-0.202798,0.134231}, {0.574524,0.323405}, {-0.355686,-0.509011}, {-0.238557,0.035684}, {-0.381287,-0.557626}, {0.657797,0.952902}, {-0.077875,0.403221}, {-0.237508,1.411722}, {0.652551,-0.088574}, {-0.013073,0.581057}, {0.570232,-0.572671}, {1.442937,-1.109803}, {0.997920,-0.010095}, {-0.152155,0.277499}, {-0.584876,-0.218181}, {0.717679,-0.143585}, {-0.075248,-0.695632}, {-1.576641,-0.266963}, {-0.228247,-1.087442}, {-0.672358,-0.340599}, {-0.682509,-0.975534}, {0.412126,0.155315}, {0.540229,-0.913902}, {-0.949688,-0.498559}, {0.038080,-0.334697}, {-0.844788,0.671919}, {-0.340829,-1.268134}, {0.033822,1.867938}, {-0.995863,-0.338217}, {0.179299,-0.122295}, {-0.037869,-0.933049}, {-0.750164,-0.719282}, {-0.833977,1.003917}, {0.932833,0.760645}, {0.867564,0.655081}, {-0.504874,-0.636730}, {0.714318,-1.290905}, {-0.672831,0.341525}, {0.278639,0.168889}, {-1.057328,-0.938548}, {-0.028958,0.765673}, {0.659485,-0.427439}, {-0.688018,0.905752}, {0.593115,-1.081085}, {1.020607,-1.035200}, {-0.288406,0.254196}, {0.681091,-0.195788}, {-0.405965,0.877370}, {0.247328,-1.348181}, {0.193907,-0.618541}, {0.104252,-0.480525}, {-1.219477,-0.511557}, {-0.355216,0.903456}, {-1.510029,-0.513418}, {-0.622239,1.647319}, {1.211936,-0.279494}, {-0.944064,0.760953}, {0.165329,0.746784}, {1.123063,0.150372}, {0.591389,0.426566}, {-0.763105,0.099885}, {-0.233567,-0.051927}, {0.451271,0.672933}, {-0.319276,-0.725166}, {0.090943,0.256992}, {-0.740401,0.083129}, {-0.493689,0.594996}, {-1.160349,0.225323}, {-0.120932,-0.308355}, {-0.242434,0.784263}, {-0.564637,-0.499833}, {-0.094070,-0.250553}, {-0.953770,-0.371332}, {1.661581,0.171338}, {0.341775,0.270245}, {0.118130,0.083808}, {-0.079126,-0.216981}, {0.338884,0.258435}, {0.264433,-0.841639}, {0.232893,-1.129943}, {1.240106,-0.052206}, {0.209045,0.058734}, {0.520361,0.888685}, {-0.349822,-0.636562}, {0.594371,1.144844}, {0.075638,0.714484}, {-0.784900,-0.809998}, {0.662100,-0.092575}, {0.056696,0.432525}, {-1.239459,0.384416}, {-0.006458,0.746883}, {-0.290814,-0.506631}, {0.561491,-0.077239}, {-1.024084,0.663394}, {-0.157999,-0.050504}, {1.085344,-0.554264}, {-0.708002,0.222259}, {-0.593735,-0.009698}, {0.223185,0.251755}, {-1.023014,0.387383}, {0.397333,0.864350}, {1.103984,0.475520}, {0.352685,-0.245976}, {0.549224,0.087034}, {-0.472024,0.633377}, {-0.620719,-0.384944}, {-0.442898,-0.177685}, {-1.124416,1.350868}, {0.618839,0.158407}, {0.718180,0.334085}, {-0.107034,-1.414157}, {0.390844,-0.348879}, {0.416452,-0.381163}, {0.016589,0.693169}, {0.210261,1.649291}, {0.151838,0.205813}, {-0.595573,-0.768804}, {-0.160431,-0.717857}, {-0.510800,-0.293505}, {-0.818709,0.437824}, {0.545773,0.032159}, {0.676537,-0.059850}, {-0.311443,-1.175198}, {0.157728,-1.121027}, {0.012740,0.536150}, {-0.639492,0.488597}, {-0.070496,-0.204313}, {0.234541,0.328949}, {0.236419,-0.139396}, {-0.288891,0.889796}, {0.148007,1.176270}, {0.546853,0.583059}, {-0.361551,1.330611}, {1.183964,1.397033}, {-0.993293,0.519104}, {-0.712212,-0.401528}, {0.445422,-1.006540}, {0.778229,-0.924857}, {0.140488,-0.120001}, {-0.930823,0.679986}, {0.269149,-1.501842}, {0.630853,-0.526320}, {0.957876,-0.802863}, {0.190233,-1.009434}, {-0.185559,0.932629}, {0.050613,-0.086777}, {0.020035,-0.059037}, {-0.511718,-0.355513}, {-0.795821,0.050420}, {-0.656840,1.891314}, {-0.055379,0.405881}, {0.539094,0.845218}, {-1.014806,0.375225}, {-0.503707,1.354756}, {0.124660,-1.563966}, {-0.465392,-0.054315}, {-0.437257,0.566359}, {-0.082575,-0.150215}, {-0.133522,0.536886}, {0.594595,1.933791}, {0.914843,-0.872862}, {-0.247467,-0.433828}, {-0.064788,0.077212}, {0.778095,-0.045493}, {0.366523,1.293263}, {0.094333,0.230801}, {-0.614536,0.463331}, {0.430178,1.113947}, {-0.150038,0.174521}, {0.438024,0.254990}, {0.480884,-1.856722}, {-0.666409,-0.255484}, {-0.457158,-0.599194}, {-0.450171,0.118477}, {0.497637,-0.101183}, {-1.705586,0.405099}, {0.259566,0.922599}, {0.672946,-0.407264}, {0.324409,0.900242}, {-0.243075,-0.163768}, {0.051280,0.490307}, {0.571128,0.105678}, {0.345743,-1.177099}, {-0.869364,-0.068202}, {-0.334410,0.647972}, {0.476318,-0.010292}, {-0.404522,0.623306}, {-1.162121,-1.071830}, {-0.627528,-0.384318}, {-0.337665,-1.341870}, {0.041529,0.841819}, {-0.201762,-0.736758}, {0.184452,-0.757867}, {-0.709406,-0.513657}, {-0.135826,-1.416885}, {-0.764527,-0.630076}, {-0.759073,1.284986}, {-0.016376,-1.529208}, {1.348773,-0.176343}, {-0.604174,0.991312}, {-0.281693,-1.131040}, {0.070203,0.284520}, {-1.229019,-0.521961}, {-0.321063,-0.524171}, {-0.284333,-0.886437}, {0.325590,-0.528520}, {0.254426,-0.232536}, {0.263271,-0.448853}, {-0.872268,0.657765}, {-0.819516,-0.328243}, {-0.259070,0.625280}, {-0.590739,-0.670188}, {0.493374,0.019055}, {1.344704,-0.174393}, {-1.182374,-1.425261}, {-0.666870,0.434800}, {-0.225687,0.069924}, {0.375164,1.016698}, {0.327044,-0.675835}, {0.497187,0.790896}, {-0.054661,-0.971456}, {0.260230,0.159026}, {-1.246029,-0.535410}, {-0.124982,0.871965}, {1.010443,1.001963}, {0.452742,-0.029144}, {0.117958,-0.136449}, {0.148605,-0.229105}, {0.251393,0.825563}, {0.730487,0.258166}, {-0.610108,0.505836}, {0.797900,0.109366}, {-0.107968,0.039054}, {0.252653,-0.138314}, {0.035959,0.047755}, {-1.412453,-0.353756}, {-0.174516,-1.100457}, {-0.405645,0.021713}, {-1.214659,-0.958074}, {-0.598051,-0.067393}, {0.459193,-0.091313}, {-0.584458,-0.757231}, {-0.806303,-0.669604}, {0.808333,0.602605}, {-0.258282,-0.747621}, {0.089092,-0.642856}, {-0.730287,0.033052}, {0.087943,-0.788594}, {0.341008,-0.211460}, {0.000571,0.004990}, {0.670368,-0.386947}, {0.557711,-0.002995}, {-0.293485,-0.872980}, {-0.783528,0.580868}, {-1.146005,1.580005}, {-0.361812,1.094479}, {0.124733,0.413218}, {-0.158285,-0.637446}, {0.364533,0.669450}, {-0.382480,0.147327}, {-1.131368,-0.908078}, {-0.134073,0.755815}, {0.085353,0.234990}, {0.038784,-0.362630}, {-1.186840,-0.015796}, {0.464353,0.494665}, {-0.835406,0.374020}, {-0.321494,0.250667}, {0.327866,0.142119}, {0.104908,0.694259}, {0.081477,-0.930475}, {-1.022207,0.157953}, {1.114196,-0.318852}, {-0.153446,-0.083414}, {-0.004149,-1.802615}, {0.061545,-0.040178}, {-0.799257,-0.743362}, {-0.208531,-0.357144}, {-0.319060,1.569294}, {0.077045,-0.067189}, {-0.161677,0.635664}, {-1.405501,-0.763577}, {-0.397846,0.381495}, {-0.609449,0.151477}, {0.790843,0.583281}, {-0.125419,-0.673059}, {0.048552,-0.170964}, {0.251041,1.361702}, {0.146372,-0.095489}, {0.636802,0.172758}, {0.019193,0.213042}, {-1.039100,-1.241302}, {-0.564480,-0.945689}, {0.486241,-0.284521}, {0.331050,-1.330519}, {-0.267252,-0.434646}, {0.766397,-0.345934}, {-0.200744,0.569833}, {-0.041749,1.160658}, {-0.166904,0.567353}, {-0.647654,-0.482519}, {1.259189,0.238637}, {-0.061864,-1.133994}, {0.709167,0.066215}, {0.421481,0.512487}, {0.539837,0.885868}, {-0.840289,-1.137802}, {1.081907,-0.754870}, {0.139268,-0.120622}, {1.964821,1.068368}, {0.623684,0.427752}, {-0.307559,-0.061760}, {-0.075474,-0.859298}, {0.856064,-0.238438}, {0.100253,0.302974}, {-0.637176,-0.566873}, {-0.008290,0.282227}, {1.214723,0.715509}, {-0.162779,-1.789175}, {-0.134063,0.710633}, {-0.519932,0.522329}, {0.204941,0.159361}, {-0.482306,-0.376938}, {-0.188561,0.397104}, {0.440798,0.479065}, {0.765870,0.912747}, {-0.419145,-1.087277}, {0.200862,0.291699}, {1.606653,0.419064}, {-0.231721,-0.095246}, {-0.709828,-0.172976}, {0.156692,-0.203509}, {-1.074669,0.010797}, {0.247751,-0.531622}, {0.596496,-0.743859}, {-0.167848,0.769772}, {-0.600885,-0.306912}, {-1.540693,0.221595}, {0.449488,-0.651038}, {-0.250910,-0.287887}, {-0.367598,0.361719}, {0.494129,0.106607}, {-0.074593,-1.892982}, {0.883074,0.395411}, {-1.092268,0.178541}, {-0.087335,-0.713201}, {-0.276838,-0.297331}, {0.652034,-0.294585}, {0.545522,-0.253011}, {0.923416,0.397211}, {-1.625554,-0.069215}, {0.004244,-0.025244}, {0.961205,1.110819}, {-0.183857,-0.022013}, {0.193756,0.316726}, {-2.046393,-0.164273}, {-0.368365,-0.635641}, {-0.977759,0.639374}, {-0.511194,0.291523}, {-0.240401,0.676329}, {0.444406,0.962063}, {-0.276425,1.306324}, {-0.632475,-0.521505}, {-2.202754,-0.707231}, {0.036750,-1.180940}, {1.569251,-0.049689}, {0.398289,0.888255}, {0.348308,-1.632712}, {-0.564295,-0.266565}, {0.269295,-0.357566}, {0.717308,-0.386385}, {0.055096,1.001055}, {-0.316491,0.558610}, {-0.104349,-0.364259}, {-0.628408,0.275177}, {-0.793190,-0.708380}, {0.273673,-0.761222}, {-0.324338,0.469933}, {-0.879443,1.299100}, {-1.259126,0.852917}, {-0.076886,-0.512190}, {0.102022,-0.181585}, {0.519581,0.053206}, {0.001434,-0.202726}, {-1.015981,0.459688}, {1.125770,0.940926}, {0.312231,0.424855}, {-0.499418,-0.502875}, {0.517807,0.069577}, {-0.973119,0.268788}, {0.374483,-0.502729}, {0.003039,-0.024829}, {-0.040855,1.072277}, {-0.951793,-0.475118}, {-0.710944,-0.003773}, {-0.114791,1.219599}, {-0.245796,0.792555}, {-0.003881,0.164329}, {0.352843,0.700678}, {1.098609,-0.455416}, {0.890404,-0.589496}, {0.004892,-0.535082}, {1.442431,-0.702892}, {-0.366707,-1.095639}, {1.025595,0.172890}, {0.938371,0.195878}, {0.126380,0.673834}, {-0.578430,0.938407}, {-0.502260,0.910490}, {0.254066,0.433385}, {-0.220341,1.040807}, {1.453578,0.343099}, {-0.608675,-0.498692}, {0.073501,0.011211}, {-0.829259,0.377760}, {-0.079486,-1.685480}, {1.145159,-0.985214}, {0.098902,-0.864296}, {0.393820,1.649395}, {-0.734563,0.744368}, {-0.147095,-1.257531}, {-1.627407,-1.136028}, {0.467873,1.041606}, {0.757500,-0.414132}, {0.831162,-1.034454}, {0.816375,0.500999}, {0.702928,1.649657}, {0.080263,-0.721470}, {-1.187533,-0.047103}, {-0.150313,1.708622}, {0.493906,-0.679800}, {0.594035,-0.186757}, {-0.240079,1.222442}, {-0.360900,0.050265}, {0.144905,0.624081}, {1.181170,0.285112}, {0.290493,0.604750}, {1.092495,0.412827}, {0.562585,0.524007}, {0.341804,0.235361}, {-1.162588,-0.993807}, {0.413398,0.629788}, {-0.085675,0.234139}, {0.096242,-0.149101}, {-0.237502,-0.226784}, {1.018918,0.053213}, {-0.242669,-0.787538}, {0.756043,-0.235274}, {0.919413,0.564605}, {1.108872,0.879978}, {-0.581288,0.281426}, {-0.326461,1.233718}, {-0.079129,-1.162175}, {0.349478,-0.844907}, {0.027088,-0.819916}, {0.170056,0.187616}, {0.502767,-0.666850}, {0.961324,-0.584669}, {0.710063,0.119446}, {0.239278,0.976768}, {-0.014996,0.524941}, {0.008554,0.179727}, {-0.393247,-0.037826}, {0.718612,-0.978392}, {-0.225419,-0.038771}, {-0.227036,-0.165385}, {0.121599,-0.197455}, {1.134869,0.485862}, {-0.947191,-0.134063}, {-0.654587,1.189330}, {0.443246,-0.706134}, {-0.830123,-0.240530}, {-0.113430,1.241655}, {-0.108660,-1.135730}, {0.036003,-0.841002}, {-0.157794,0.185786}, {-0.483079,0.099628}, {0.280081,0.479144}, {1.939184,-0.257319}, {-0.687604,0.274654}, {0.281510,0.228436}, {-0.028762,-0.144790}, {-0.171744,0.621507}, {-0.370458,-0.435995}, {-0.369755,0.546579}, {1.695030,0.039443}, {1.240829,-0.834031}, {0.295979,-0.031126}, {-0.422307,-0.218957}, {0.139370,0.067480}, {0.184715,-0.646348}, {-0.818519,0.518805}, {-0.103088,0.886249}, {-0.138199,-0.692871}, {-0.039802,0.305166}, {0.227665,0.707830}, {0.407761,-0.090334}, {-0.148850,1.035646}, {0.706539,0.838360}, {-1.216193,0.118999}, {-1.145744,-0.154962}, {-1.072350,0.028873}, {0.816804,-0.037296}, {-0.223583,0.078154}, {0.551985,-0.137222}, {-0.434480,-0.170241}, {-0.717792,0.161839}, {0.404747,-0.083635}, {0.457787,0.137080}, {-0.205589,0.734910}, {-0.788705,1.504406}, {0.647835,-0.940490}, {1.096260,-0.020625}, {-0.515190,0.721472}, {0.151921,0.029406}, {-1.071512,-0.382693}, {-0.666773,0.643925}, {0.473907,0.434675}, {0.281689,0.152364}, {1.231462,0.143107}, {0.422616,0.642618}, {-0.860802,1.066102}, {0.180806,-0.160456}, {-0.171602,1.259847}, {-1.080608,-1.537974}, {0.247965,-0.391762}, {-0.597206,-0.026325}, {0.806679,0.506041}, {-0.448461,-0.551637}, {0.609211,1.564775}, {-0.584254,-0.421677}, {-0.115819,0.092741}, {0.630211,-0.423075}, {0.219037,0.467483}, {0.330857,0.747908}, {-0.653036,0.009290}, {-0.785070,-0.874116}, {1.707815,0.381228}, {0.023747,-1.518223}, {-0.937137,-0.965197}, {0.640566,0.933056}, {-0.594679,-0.574540}, {0.296794,-0.291891}, {-0.714825,0.378028}, {0.757843,0.220650}, {1.019762,2.070884}, {1.052090,-0.108974}, {0.617214,-1.030121}, {0.234111,1.070887}, {0.325029,1.415523}, {-1.411232,-0.591198}, {0.955943,0.862474}, {-1.524439,0.478968}, {0.161252,-0.000874}, {-1.682225,-0.113368}, {-0.714802,0.379857}, {0.815552,-0.386556}, {0.565304,0.508925}, {0.033944,-0.055679}, {-0.160544,-0.364665}, {1.167740,-0.747209}, {-0.114289,-0.426222}, {0.998961,-0.781649}, {0.480485,-0.325437}, {0.818972,1.053668}, {-0.759151,0.662107}, {-0.533949,1.213625}, {-0.348061,-0.399280}, {-0.612857,0.282472}, {-0.155041,0.177124}, {1.564518,0.497387}, {-0.259280,0.598564}, {-0.330630,-0.194511}, {-0.927641,0.683062}, {-0.492680,0.187990}, {-0.486909,0.556354}, {-1.016376,0.123981}, {0.605410,0.661383}, {-1.259776,-0.139097}, {0.687748,-0.124519}, {1.076749,1.172916}, {0.826104,0.453227}, {0.916044,0.484496}, {-0.220030,0.081309}, {-0.762988,-0.501734}, {0.156663,-0.397336}, {-0.645976,-0.464085}, {0.013181,-0.690831}, {1.418278,-0.223876}, {0.138929,0.135069}, {0.576396,-0.082604}, {0.341489,0.166084}, {0.239311,0.512591}, {-0.705057,0.281017}, {-0.216695,0.700219}, {-0.052454,-1.245938}, {-0.553732,-1.127581}, {-0.875834,0.839077}, {0.590675,-0.603937}, {1.115400,0.110295}, {-0.433421,0.192051}, {0.724311,-0.663050}, {-0.511338,-0.678864}, {0.319840,-0.020854}, {-1.173155,0.013443}, {0.379830,0.418095}, {-1.047586,0.754616}, {-0.458533,-0.744747}, {0.039738,0.740735}, {-0.448691,-1.323799}, {-0.614500,0.274110}, {-0.954928,1.710574}, {-1.115993,0.162485}, {1.193523,-0.172836}, {-0.813587,-0.815742}, {0.432139,-0.761635}, {0.539046,-0.256594}, {0.293082,0.217539}, {0.390536,-0.019131}, {-0.520508,-0.341834}, {-0.124911,-0.157248}, {-0.637428,-0.090345}, {-1.047505,0.197182}, {1.028592,0.057271}, {0.228695,-0.421307}, {0.160562,0.065647}, {-0.125276,0.570122}, {0.771720,-0.929429}, {-0.885627,-0.643624}, {0.674625,0.505683}, {-0.361914,-0.577650}, {0.053097,-0.825371}, {1.336278,-0.384586}, {0.004049,0.906965}, {-1.072504,0.415022}, {0.802524,-0.826920}, {-0.955720,0.142124}, {-0.125373,1.113202}, {0.334120,0.836902}, {0.835931,-0.122422}, {1.106213,-0.047726}, {2.296859,0.078391}, {0.366122,-0.430429}, {0.701139,-0.605645}, {-0.146080,-1.767753}, {0.016836,1.135654}, {-0.176842,-0.909804}, {0.161320,0.030687}, {0.095294,-0.085024}, {-0.777534,-0.732828}, {-0.415510,0.843213}, {-0.064383,1.441395}, {-0.077757,-0.848909}, {0.344072,-0.405862}, {-0.685213,-0.152876}, {2.219878,-0.147536}, {-0.259629,-0.346784}, {-0.154063,-0.256064}, {-0.347575,-0.135536}, {-0.507167,-0.471854}, {1.053886,1.000078}, {0.899577,0.115105}, {-0.044331,-0.789282}, {-0.151879,-1.288516}, {0.121111,-1.153694}, {1.329053,0.966325}, {-0.678745,0.814417}, {-0.257457,-0.282341}, {-0.962823,-0.351230}, {0.873445,0.133721}, {0.627689,-0.454924}, {-0.255754,-0.414715}, {0.018030,1.186715}, {-0.957481,0.875629}, {-0.117672,-0.173647}, {0.174636,-0.871127}, {-0.384196,0.778462}, {0.082789,0.383797}, {-0.701027,-1.355462}, {0.668719,0.695236}, {-0.042132,2.102093}, {1.413857,-0.300645}, {-0.112820,-0.849034}, {-0.612251,0.816555}, {0.608860,0.226898}, {-0.179368,-0.087384}, {0.040499,0.002180}, {-0.737672,0.256065}, {-0.161481,0.832177}, {1.099151,0.426534}, {-0.235701,-0.127462}, {-0.152026,-0.390955}, {-0.543015,-0.478542}, {-1.160759,0.623038}, {-0.202691,0.593749}, {1.786126,-0.318883}, {1.316698,0.020550}, {0.169104,-0.060324}, {1.045560,-0.056788}, {1.020056,-0.597922}, {-1.645949,0.293017}, {0.923375,-0.090014}, {-0.844203,-0.218401}, {-0.239957,0.368485}, {-0.309986,0.239761}, {-1.016587,-0.062435}, {-0.767244,0.118052}, {0.277478,0.074426}, {0.683305,-1.041466}, {-0.808274,-1.614546}, {0.394355,0.811173}, {0.796282,-1.296704}, {-0.714204,0.137774}, {0.196927,0.370427}, {-0.376269,-0.542680}, {0.791492,-0.123199}, {0.321249,0.521318}, {1.046344,0.661679}, {-0.141206,-0.238853}, {-0.383405,0.290032}, {0.376350,0.432868}, {-0.049260,-0.368856}, {0.408613,-0.014061}, {-0.326055,0.816902}, {-0.026001,-0.589331}, {-0.072918,0.200475}, {0.331867,-1.316811}, {0.435541,-0.935694}, {0.510818,1.141595}, {-0.190277,-1.450792}, {0.173657,-0.279898}, {0.438387,-0.236168}, {-0.079822,-1.188886}, {0.332160,-0.026150}, {-0.156566,-0.711998}, {1.519541,0.155118}, {-0.252771,0.027134}, {-0.051493,0.730522}, {1.034388,-0.494617}, {0.585226,-0.142609}, {-0.056058,0.636934}, {0.427097,-0.139863}, {0.142636,-0.376670}, {0.261685,-0.129577}, {0.622429,-0.458139}, {0.558685,-1.457037}, {-0.302307,-0.237556}, {0.667578,-0.893159}, {0.394038,-0.616568}, {-1.053062,-0.607413}, {-0.102774,0.550373}, {-0.151209,-0.605143}, {0.982131,-0.044701}, {0.872422,0.300385}, {-1.738852,-0.042787}, {-0.927014,0.312879}, {1.133143,0.059571}, {-1.447607,-0.203064}, {0.844638,-0.610940}, {-0.131441,-0.383945}, {0.185690,0.504708}, {0.873802,-0.522457}, {-0.241741,-0.833009}, {-0.527447,-0.384432}, {-0.313053,0.007224}, {-0.144519,-1.752126}, {-0.350914,0.331914}, {0.019446,0.830710}, {-0.361050,0.087871}, {0.136350,-0.729097}, {-0.727329,-1.483267}, {0.506054,-0.485436}, {0.062342,0.447545}, {0.577105,0.248545}, {-0.160478,0.636342}, {0.874559,0.051499}, {0.105072,-0.821176}, {-0.398886,0.154675}, {-0.622607,0.598468}, {-0.199183,-0.205099}, {-0.450282,-0.153537}, {0.663143,-0.304326}, {-0.184256,-1.048931}, {-0.162581,0.645661}, {-1.044422,-0.455806}, {-1.229037,-0.793770}, {-2.194331,-0.034931}, {0.302824,0.337893}, {-0.190657,0.691359}, {0.829411,0.226586}, {-0.425507,-0.020147}, {-0.664468,0.683717}, {-0.671081,-0.230903}, {-0.907480,-1.183741}, {0.554297,-0.117632}, {0.096878,0.871193}, {-1.083314,0.379586}, {-0.234206,-0.116224}, {1.369810,0.686732}, {-0.721421,-1.029317}, {-0.368926,0.569493}, {1.046382,0.740596}, {0.360666,0.448457}, {0.480405,0.359113}, {-0.086104,-0.363264}, {0.238387,0.695863}, {-0.736684,1.072959}, {0.386997,-0.744110}, {-0.437168,-0.232638}, {-1.153335,-0.780908}, {-0.684055,0.692340}, {0.289389,0.249867}, {-1.698004,0.639394}, {0.394495,0.268874}, {-0.603894,0.330558}, {1.253198,0.211305}, {-0.322306,0.240516}, {0.102897,0.083584}, {0.309184,-1.627874}, {-0.390228,0.139204}, {-0.089614,0.647020}, {-0.121180,-1.208862}, {0.826558,-0.115660}, {0.495726,-0.898881}, {-0.312265,0.328451}, {-0.575407,-0.648683}, {-0.432874,-0.055634}, {0.299794,-0.672465}, {0.755398,-1.216531}, {-0.785094,0.381940}, {1.177524,-0.442002}, {-0.690561,-0.399181}, {0.280850,1.343907}, {-0.409116,0.423859}, {1.752878,0.134327}, {0.051034,-0.396984}, {0.519335,0.260097}, {0.669303,-0.512912}, {-0.121664,-0.181888}, {1.193699,-0.767988}, {1.019133,-0.321132}, {0.967335,-0.098405}, {1.413661,-0.166381}, {-0.125145,0.663141}, {0.401551,-0.358640}, {-0.253575,0.814815}, {-0.102327,-0.276315}, {-0.122363,-0.012399}, {0.113221,0.159392}, {0.425525,-2.019792}, {-2.296354,0.492443}, {-0.954148,-0.237086}, {0.238738,-0.639157}, {-1.761694,-0.164252}, {0.737287,0.200460}, {-0.162938,-0.768438}, {-0.782868,-0.626567}, {-2.246589,-0.509916}, {-0.310067,-0.836668}, {-1.464033,-0.333291}, {1.315826,-0.280998}, {0.002046,1.347203}, {1.070363,0.251329}, {0.246476,0.663615}, {-0.845820,-0.236884}, {0.093058,0.749687}, {-1.111095,1.211477}, {0.009610,0.450174}, {0.915608,0.234386}, {0.143672,0.205552}, {1.527516,0.145242}, {0.460513,1.555029}, {-0.555127,-0.285376}, {0.145695,0.896220}, {1.217480,-0.305496}, {0.414556,-0.502992}, {0.603741,-0.844504}, {0.129219,0.575608}, {-0.283013,1.040908}, {-1.255234,-0.534709}, {1.088903,0.197861}, {-0.058756,0.425937}, {0.123779,-1.040665}, {0.637367,-0.271180}, {-0.103176,-1.697012}, {-0.158588,0.656751}, {-0.967854,-0.951648}, {0.086897,-0.516020}, {-0.373714,-0.748635}, {0.596132,-0.522697}, {-0.983889,-0.989551}, {-0.467885,-0.141256}, {0.830302,0.458530}, {-0.760114,0.632394}, {-0.274484,1.063399}, {0.388037,0.224930}, {1.249109,-0.166835}, {-0.449788,-0.325036}, {0.042710,-0.844489}, {0.146003,1.006131}, {-0.220865,-0.302253}, {1.058335,1.753412}, {0.002717,-0.206278}, {-0.435205,0.096155}, {0.045458,0.308059}, {0.985575,-0.174125}, {0.888946,0.271600}, {-0.928001,0.303726}, {0.508220,0.392928}, {1.126653,0.623124}, {-0.026042,-0.803140}, {-0.924908,1.178639}, {0.420452,1.218289}, {0.232925,-0.244339}, {-0.786826,0.421704}, {-1.480250,-0.437413}, {-0.876270,-1.154740}, {-1.039014,0.278444}, {0.540032,-0.043074}, {-0.333186,0.620742}, {0.264837,0.039240}, {-0.323505,0.012675}, {-0.409204,-0.767399}, {0.025022,0.921557}, {0.331678,0.765442}, {0.655658,0.673464}, {0.122603,1.712084}, {0.671768,1.118615}, {-0.304646,-0.327486}, {0.200620,0.635266}, {1.151679,-0.567691}, {0.063835,-0.149801}, {1.857157,0.061181}, {-0.314228,-0.969461}, {1.172970,0.214697}, {-0.123463,0.139130}, {-1.037067,0.729725}, {0.375812,-0.068514}, {0.007778,0.344010}, {-0.498291,0.686760}, {-0.021774,0.153344}, {-0.106309,0.126358}, {-1.635683,-0.251761}, {0.280908,0.489367}, {-0.706807,0.816537}, {-0.831300,-0.192401}, {0.178349,-0.073416}, {0.680202,-0.971835}, {-1.256339,-0.648133}, {0.699942,0.382164}, {-0.150262,-0.545250}, {-0.612851,-1.036643}, {0.778548,0.694659}, {0.419950,-0.302441}, {0.364074,1.256622}, {-0.157228,-0.261850}, {-0.107384,-0.158219}, {0.493916,-0.735154}, {-0.157863,0.679501}, {-0.238097,0.159096}, {-0.151747,-0.515968}, {-0.196244,0.393762}, {0.981312,-0.958934}, {-0.172524,0.221805}, {-1.038868,-0.156395}, {-0.540427,-0.434566}, {0.143654,-0.576748}, {1.394838,0.011972}, {-0.567336,1.449890}, {0.016188,-0.586559}, {0.018122,0.164911}, {0.282832,-0.041033}, {0.516311,-0.903365}, {-0.074153,0.774443}, {0.525149,-0.511892}, {-0.064105,0.462937}, {-0.550807,-0.740917}, {-0.159709,0.095051}, {0.856954,0.712022}, {0.184713,-0.093683}, {0.562640,-0.866336}, {1.091445,0.202260}, {0.504672,-0.248524}, {0.172117,0.391537}, {-0.067218,-0.440004}, {0.287740,1.212661}, {-0.562285,-0.146228}, {0.218122,0.047461}, {0.593255,-0.355369}, {-0.533896,-0.299014}, {-0.568450,-0.278213}, {0.203598,0.537438}, {-0.938066,0.704581}, {-0.917601,0.791035}, {-0.839964,-0.649079}, {1.307890,0.264572}, {-0.599850,-0.634273}, {0.460067,-0.969037}, {-0.646018,0.708979}, {-0.452636,0.224816}, {0.494858,0.238132}, {-0.011522,-1.346647}, {0.000576,-0.737202}, {0.100013,-0.266210}, {1.318841,0.403066}, {-0.639935,-0.303449}, {0.675628,-0.063920}, {-0.097399,0.502298}, {1.924211,-0.661343}, {-0.193195,-0.836120}, {-0.879425,-1.065778}, {-0.777720,0.991738}, {0.449743,-0.615344}, {-0.163401,-0.484593}, {-0.295979,0.797219}, {-0.293076,0.655861}, {-0.012079,-1.170280}, {0.217685,-0.808306}, {0.521063,0.052078}, {-0.051550,-0.734594}, {-0.035872,-1.275539}, {-0.111903,0.457933}, {1.585142,-1.073931}, {-0.630589,-0.097644}, {0.196150,-0.329361}, {0.786858,-0.651981}, {0.353044,-0.508077}, {0.633349,0.050938}, {0.292792,-1.147545}, {-1.636248,0.076500}, {0.121149,0.667182}, {-0.485428,0.822637}, {0.042791,0.346486}, {-0.406830,0.061469}, {0.260006,0.078180}, {0.480654,-0.228662}, {0.069106,0.904044}, {0.689995,-0.355703}, {1.356396,0.165978}, {-1.216395,-0.167056}, {0.806751,-0.082865}, {1.379444,0.548229}, {0.082448,-0.566330}, {-0.153881,-0.613327}, {-0.400828,-1.175044}, {0.007904,0.187198}, {0.017020,0.469228}, {-0.635306,0.814212}, {-0.686244,-1.695371}, {0.635513,-0.061291}, {-0.425817,0.149979}, {0.251848,-0.710921}, {-0.046316,0.161009}, {0.286905,-0.673584}, {-0.816487,-0.090565}, {-0.587562,1.125426}, {-0.388150,-0.088164}, {-0.855313,-1.030685}, {0.137949,0.442570}, {-0.500305,0.481672}, {-0.569691,-0.277656}, {1.232236,2.015065}, {-0.544907,-1.314194}, {-1.063375,-0.275894}, {-0.061552,-0.173145}, {0.552244,0.176811}, {-0.276732,-0.699921}, {-1.723753,-0.289518}, {-1.246463,1.183601}, {-0.500170,0.373240}, {0.651110,0.202271}, {-1.201287,-0.164245}, {-0.252490,0.060805}, {0.267841,0.166147}, {0.217199,0.233845}, {0.487467,1.765281}, {-1.323439,1.017541}, {-1.689664,0.253096}, {0.024758,0.480120}, {0.663608,0.503539}, {0.951764,-0.395559}, {0.811294,0.409032}, {-0.687545,0.241462}, {-0.320659,0.006277}, {-0.239229,1.109935}, {1.192667,0.419789}, {0.461142,0.131372}, {0.087449,0.030492}, {1.724236,-1.133479}, {-0.233717,0.474440}, {-0.107867,-0.340221}, {-0.260094,-0.871921}, {1.512797,-0.186811}, {-1.150296,0.161701}, {1.270353,-1.064373}, {-0.208916,-0.609819}, {0.266445,-0.850148}, {-0.191666,-1.143687}, {0.624237,0.402745}, {-0.146100,-0.313531}, {-0.394306,-0.512183}, {0.748664,1.567171}, {1.172201,-0.075086}, {-0.203625,-0.403359}, {0.801120,0.219087}, {0.483011,-0.186969}, {-0.822249,0.790955}, {-0.826600,0.057749}, {-0.340349,-1.708476}, {-0.612349,0.017105}, {-0.405678,0.770708}, {-0.882441,-0.884726}, {-0.760047,0.956302}, {-0.134529,-0.806649}, {-0.616061,-0.717116}, {-0.786351,0.960517}, {0.995470,0.823887}, {0.803940,-0.068840}, {-0.780356,0.796537}, {0.754690,0.462261}, {0.558489,-1.826939}, {0.565941,-0.533679}, {-0.349220,-0.565535}, {-0.117447,-0.033437}, {0.306679,0.561986}, {-0.452673,0.002558}, {0.656129,-0.312644}, {-0.137241,0.808405}, {0.023718,-0.818979}, {0.316627,0.723533}, {0.245948,-0.220425}, {0.018669,-0.033499}, {-0.384480,-0.064193}, {1.059643,1.011290}, {0.255465,0.122262}, {0.892933,0.377851}, {-1.057426,-1.072620}, {0.376262,0.020682}, {-0.318577,-1.103330}, {0.820800,0.258835}, {0.084963,-0.566530}, {-0.270657,0.173413}, {-0.630122,0.411348}, {-0.140339,0.070918}, {-0.580496,1.695575}, {0.184591,-0.255626}, {-1.595309,0.220755}, {-1.086653,-0.518954}, {-0.092904,-1.828520}, {-1.560213,-0.345541}, {-0.107258,0.421123}, {1.333753,0.427132}, {0.651096,-0.307819}, {1.547703,0.021547}, {-0.938925,0.799421}, {0.161495,1.637137}, {-0.566160,0.009561}, {0.765734,1.847262}, {-0.099619,1.217570}, {-1.646296,1.143879}, {-0.341561,0.208659}, {-0.829797,-0.078640}, {0.230420,0.260061}, {-1.115321,-0.415304}, {-0.759305,1.137078}, {0.119318,0.326539}, {0.634494,-0.172025}, {0.951927,1.084809}, {-0.481045,-0.125166}, {-0.147533,-1.237017}, {-0.194932,0.304319}, {-0.055354,-0.773023}, {-0.610176,0.526057}, {-1.442512,0.301773}, {0.806472,0.525891}, {0.442248,0.868214}, {-0.735627,-0.085293}, {-0.527279,-0.419674}, {-0.485876,-0.318730}, {0.619257,-0.096117}, {0.256008,-0.511587}, {0.402021,0.667654}, {1.085013,0.181906}, {-1.075699,-0.590304}, {0.149918,0.698889}, {1.232178,-0.974211}, {0.299137,-0.807070}, {-0.363717,1.920628}, {0.520819,-1.006913}, {0.237037,-0.181282}, {-0.473254,0.538424}, {-0.693209,0.205641}, {0.196816,-1.365328}, {1.294426,-0.457957}, {-1.201707,0.159986}, {-0.434547,1.602358}, {0.640590,-1.134317}, {0.145536,-0.201253}, {-0.295678,-0.144970}, {0.474340,0.506270}, {0.626337,0.119856}, {-0.389066,-1.331761}, {1.112996,-0.698493}, {0.218681,0.173533}, {1.403960,-0.330757}, {0.473726,0.286873}, {-0.065860,-0.094907}, {0.245194,-0.785259}, {-0.737379,0.731098}, {0.888062,0.554072}, {1.481762,-0.047101}, {0.422688,0.158868}, {0.569769,-0.263568}, {-1.225339,-0.094437}, {-1.449739,0.636898}, {-0.257917,-0.053649}, {0.155706,-0.122416}, {0.953568,0.325125}, {-0.798452,1.472069}, {0.052703,-0.295397}, {0.456338,-0.736016}, {0.529491,-0.568515}, {-0.233975,1.120665}, {-0.680203,-1.295243}, {-0.466273,-0.062131}, {-0.131288,1.168066}, {-0.385004,-1.409355}, {-0.314060,-0.015362}, {-0.874063,-0.686612}, {-0.445655,-1.003053}, {0.928618,0.248422}, {0.478245,-0.872451}, {-0.240218,0.229832}, {-0.207487,1.315485}, {0.708097,-0.459610}, {0.324259,-1.091280}, {-1.452807,0.091208}, {1.395570,-1.863330}, {0.999160,-1.241401}, {0.280141,-0.706033}, {-0.925961,0.469675}, {-0.688460,-0.963031}, {0.119873,0.226830}, {-0.106209,-0.158092}, {0.677296,-0.307387}, {0.390625,0.002007}, {-1.651675,0.216743}, {0.079875,0.792000}, {0.235602,0.452420}, {0.777284,-0.266590}, {-0.895642,-0.021410}, {0.254087,0.034999}, {-0.270512,-0.127041}, {-0.256159,-0.869917}, {0.373497,1.048321}, {-0.762650,-0.290650}, {-0.578370,-0.111365}, {-1.982232,-0.062361}, {0.578377,-0.656604}, {-0.468886,0.154771}, {0.844443,1.791920}, {0.097667,-1.339984}, {0.210075,1.094129}, {-0.206117,0.067388}, {0.421055,0.203273}, {0.584588,0.986430}, {0.133407,-0.641132}, {-1.170174,-0.263451}, {-0.157218,-0.021621}, {1.475833,-0.127775}, {0.078896,0.799595}, {-1.587069,-0.475999}, {0.695471,0.483917}, {0.025792,-0.441905}, {1.007477,0.041037}, {-0.181478,-0.017029}, {0.036815,-0.111715}, {-0.465989,0.179141}, {0.794247,0.927431}, {0.285622,-0.418923}, {-0.068971,-0.305474}, {-0.463998,-0.444865}, {0.699853,-1.012322}, {0.151237,1.087834}, {-0.146684,0.233955}, {0.567227,-0.089576}, {-0.224722,0.477183}, {1.199889,1.553201}, {0.760053,0.017195}, {0.261229,0.445578}, {-0.705770,-1.755211}, {0.290944,0.079387}, {0.133894,-0.691097}, {-0.059663,2.211638}, {0.370996,-0.939649}, {0.112302,1.366692}, {0.188262,-0.356295}, {-0.612580,0.733432}, {0.619933,0.144186}, {0.278577,0.110054}, {0.225926,0.612772}, {-0.729589,0.857299}, {1.264619,0.408863}, {-0.628055,-1.407078}, {-0.514858,-0.744270}, {0.619405,1.047669}, {-0.199934,0.731997}, {0.418989,-0.042346}, {0.785841,-0.113664}, {-0.932752,-0.678127}, {-0.806044,0.573963}, {0.587483,0.194597}, {-0.103663,0.283307}, {-0.433701,1.184546}, {0.790999,0.223614}, {1.419865,1.046606}, {-0.830056,0.788822}, {-0.242103,-0.605081}, {-1.753848,-0.814530}, {0.527669,0.991027}, {-0.240201,-0.427279}, {0.856250,0.646151}, {1.153696,0.714506}, {0.866539,0.692044}, {0.203711,0.315015}, {-0.285981,-0.182996}, {0.789261,-0.986318}, {-0.144656,0.102805}, {-0.151745,-0.054796}, {-0.093111,0.849218}, {0.517938,0.271205}, {0.552012,-0.102406}, {1.085765,0.387176}, {0.084600,1.884932}, {-0.054731,-0.030402}, {1.382310,-0.885943}, {0.098738,0.889079}, {1.144495,-0.059725}, {-0.899532,0.664015}, {-0.181939,0.217922}, {0.321437,0.396019}, {0.285473,-1.089756}, {0.586511,0.295108}, {-0.372205,0.500376}, {-0.078211,0.182058}, {0.011147,-0.495137}, {0.896627,-0.426638}, {-0.092586,-0.308805}, {0.601102,1.063945}, {0.749759,-1.427166}, {1.055874,0.699219}, {-0.903965,-0.438794}, {-0.707729,0.384313}, {-0.101038,0.921657}, {-0.485551,0.820867}, {0.236179,-0.929859}, {1.125738,-0.530163}, {0.077800,-1.861208}, {-0.730572,0.920142}, {-0.898268,0.339665}, {-0.317154,0.181412}, {-0.160429,-1.323295}, {-0.400514,-0.563102}, {-0.014542,0.576620}, {-0.381432,-0.415218}, {-0.377208,0.718852}, {-0.705579,1.318340}, {1.530143,-0.271100}, {-0.221327,-0.588484}, {-0.022733,-0.642035}, {0.030789,-0.791981}, {-0.766666,-0.492790}, {-0.749544,-0.073490}, {0.447054,-0.800807}, {1.070489,0.825108}, {-0.727046,0.726992}, {-0.060446,-1.037320}, {-0.328770,0.190905}, {-0.128967,-0.434271}, {-0.186546,0.312983}, {0.935917,-0.100236}, {-0.047536,-0.213380}, {0.082069,-0.603080}, {-0.913393,-0.849605}, {-0.457231,-0.796030}, {0.682990,0.778589}, {0.209229,-0.807062}, {0.272420,1.125802}, {0.036284,1.629727}, {0.104411,-0.167382}, {-0.626081,-0.031098}, {-0.351775,-1.618939}, {0.413605,0.257989}, {-0.370629,0.161392}, {-0.330446,0.806375}, {0.390219,-0.746819}, {-0.509487,-0.047151}, {-0.273129,-0.108304}, {-0.319689,-0.338005}, {0.842067,0.281057}, {0.055884,0.234417}, {-0.365933,0.614457}, {-0.454615,1.448888}, {-0.699608,-1.033875}, {-0.372957,0.671612}, {-0.133444,-0.030193}, {-0.924223,0.603383}, {-0.516276,0.204182}, {-0.382316,-0.235633}, {-0.187827,-1.054536}, {-0.442085,0.354249}, {0.622665,0.610810}, {0.265960,-0.284553}, {0.040194,-0.911782}, {-0.509020,0.860569}, {0.600634,-1.182167}, {0.151219,0.454662}, {-0.418144,0.065874}, {-1.569977,1.023171}, {0.266306,0.219226}, {0.791286,0.244977}, {-0.241393,0.875145}, {-0.318656,-1.030454}, {-0.022462,0.214741}, {-0.619332,0.153986}, {-1.020611,-1.628587}, {0.479077,0.439942}, {1.740772,1.610355}, {0.003287,0.194352}, {0.566085,0.121822}, {-1.147140,0.412844}, {1.376034,0.118976}, {0.420202,-1.038233}, {0.373144,0.162301}, {0.794360,0.106407}, {-0.962990,-0.802783}, {0.056256,0.007095}, {-0.708347,-0.662442}, {-0.959655,1.323960}, {-0.529900,0.259971}, {1.193998,0.563030}, {0.939263,1.103177}, {-0.385987,0.149407}, {-0.476455,-1.133539}, {0.308749,0.266472}, {-0.497402,0.161375}, {-0.740784,0.032059}, {-0.760730,-0.593766}, {-0.063348,-0.060021}, {0.633546,-1.329736}, {0.834383,0.497996}, {-0.600352,0.731318}, {-0.447242,0.431888}, {-1.343652,-0.365840}, {0.777551,-0.685316}, {-0.680872,-0.406050}, {-0.586652,-0.305786}, {-0.554828,0.022048}, {-0.699549,-0.247367}, {1.389279,-0.742174}, {-0.065282,-1.308684}, {-0.261274,-0.493450}, {-0.733425,0.887315}, {-0.025220,-0.501261}, {0.241883,-0.683133}, {-0.140739,0.262319}, {-2.045143,-1.409459}, {1.343072,0.855186}, {-0.035921,-0.283506}, {0.106737,0.720865}, {0.406583,0.040440}, {0.214985,1.947726}, {0.438985,-0.798479}, {-0.217059,0.167267}, {1.243574,0.015551}, {-0.125817,-0.046205}, {-1.183831,-1.384855}, {-0.322551,0.251363}, {-0.722839,0.595898}, {0.551627,-0.760119}, {1.054220,0.065259}, {0.591739,-0.191866}, {0.296816,-0.332836}, {1.165112,-0.248075}, {0.248393,-0.545047}, {1.311024,-0.407092}, {0.591438,-1.621612}, {-0.052964,-0.001681}, {-0.298430,-0.248136}, {0.275239,-0.088719}, {-0.147969,-0.645551}, {-0.505692,0.261343}, {0.309140,0.959088}, {0.921434,0.629677}, {0.748760,1.088213}, {-0.680151,-0.335191}, {-0.613400,0.493749}, {0.727131,-0.030512}, {-0.379323,-1.035416}, {-0.211766,-0.796419}, {-0.454060,0.049283}, {-0.049881,0.070106}, {-0.279312,0.046965}, {-0.397766,0.760498}, {0.520312,-0.439711}, {0.331968,-1.409079}, {0.427486,0.218783}, {1.003588,-0.080820}, {1.556979,-0.423669}, {0.619977,0.469522}, {-0.045054,-0.809393}, {-0.528064,-0.036637}, {-0.482697,0.131513}, {-0.460037,0.505505}, {-0.324516,-0.389828}, {0.460368,-0.314426}, {-0.560330,-0.324922}, {-0.376507,-0.059857}, {-0.851451,-0.423302}, {0.336302,-0.960355}, {1.612286,-1.262715}, {0.637618,-0.176273}, {0.382746,0.450728}, {0.643770,0.137805}, {-0.321537,1.065434}, {-0.913438,-1.344611}, {0.123579,-0.525252}, {-0.684321,-0.050399}, {0.092025,-0.049197}, {0.230247,-0.846072}, {-0.567252,1.537805}, {-0.113614,-0.004427}, {0.694251,-0.089008}, {-0.303172,-0.350574}, {0.609402,-0.434146}, {0.107243,-0.651101}, {1.272207,-0.348857}, {-0.502908,0.151282}, {-0.145185,-1.741187}, {0.660613,-0.230215}, {0.178185,-0.686348}, {1.272619,-0.158281}, {-0.280741,0.764747}, {0.044990,-0.769996}, {0.417010,0.096608}, {0.062595,1.686842}, {2.151472,0.043530}, {0.715346,1.734442}, {0.098966,-0.998731}, {0.599808,0.342824}, {-0.343734,0.708030}, {-0.128109,-0.806256}, {0.761198,0.210038}, {-0.138642,0.040832}, {-0.062262,0.648355}, {1.277507,0.552877}, {-0.927193,-0.325931}, {-0.249534,-0.771760}, {0.521253,-0.650575}, {0.616145,1.180146}, {-0.318551,-0.126697}, {-0.526436,-0.915103}, {1.171009,1.586755}, {-1.579776,-0.032072}, {0.379730,-0.424383}, {0.219217,-0.851723}, {0.557224,0.464978}, {-0.216519,0.253208}, {0.972628,0.385579}, {0.412359,0.086125}, {0.876441,-0.274872}, {-0.407527,-0.657947}, {0.541719,0.812008}, {0.772499,0.092084}, {0.502839,0.363918}, {0.146701,0.081139}, {-0.007951,-0.624450}, {-0.605555,-1.647412}, {-0.169302,-0.077049}, {-0.244837,-0.620332}, {0.764241,-0.522473}, {-1.133782,0.258060}, {0.948375,0.016726}, {1.587208,-0.235768}, {0.424286,0.560435}, {0.366718,-0.229027}, {0.114061,-0.120273}, {-0.032553,-0.706649}, {-1.656256,0.469776}, {-0.800075,0.163134}, {0.184989,-0.490187}, {-0.066939,0.069671}, {-0.124030,-0.278587}, {0.098588,-0.516323}, {0.641825,0.433273}, {0.039826,-1.896522}, {0.544579,0.174252}, {-1.136703,0.508232}, {0.473606,-0.928168}, {-0.262024,0.277016}, {-0.525881,-0.940302}, {0.774239,0.928604}, {0.475874,-0.471899}, {-0.803854,0.030975}, {-0.993059,-1.988145}, {0.006261,-0.462312}, {0.304373,-0.219476}, {-0.064896,0.411816}, {-0.565623,0.410175}, {0.451946,0.896558}, {0.579193,-0.666237}, {1.111956,-0.324559}, {0.958126,0.875141}, {-2.376995,0.139360}, {-0.174255,-0.647183}, {0.014742,0.174545}, {-0.527097,-1.346987}, {1.514308,1.010371}, {0.148586,0.574571}, {-0.282640,0.894507}, {-0.099804,0.189072}, {-0.371499,-0.000976}, {0.094502,1.606489}, {-0.417943,0.639646}, {0.660216,-0.605938}, {-0.545899,-0.550059}, {1.076567,-0.745220}, {0.405227,0.711701}, {-0.366586,0.196052}, {0.860394,0.269181}, {-1.127270,0.202607}, {0.136211,0.475897}, {0.459787,0.495293}, {0.544301,-0.482145}, {0.365063,0.234250}, {-0.593792,-0.434170}, {-0.426111,-1.761006}, {0.869614,-0.020494}, {-0.467603,0.072709}, {-0.324193,-0.665541}, {0.777996,-0.277466}, {-0.283302,0.615438}, {-1.708614,0.792042}, {0.621137,-0.463159}, {0.521234,0.742400}, {-0.133299,-0.939262}, {-0.160119,-0.770287}, {-0.512796,0.969515}, {0.315453,-1.192219}, {1.288366,0.188477}, {0.555009,0.515260}, {0.190975,-0.611313}, {0.181731,0.979969}, {1.256390,-0.748626}, {-0.335278,-0.480621}, {-0.671001,0.965038}, {-0.104705,0.209754}, {-0.085875,-1.716713}, {-1.640847,-0.669974}, {0.447848,-0.348934}, {0.265837,1.298157}, {0.752559,1.353997}, {-1.107378,1.884381}, {-0.974856,0.729668}, {-0.408192,0.715443}, {0.256093,-1.141904}, {-1.426772,0.454018}, {-0.379814,-0.020252}, {0.808918,-0.270355}, {0.032856,-0.539366}, {-1.792033,-0.556382}, {-0.749878,0.045814}, {-1.284019,0.264061}, {-0.644668,0.334991}, {0.167439,0.463690}, {0.781219,0.368265}, {-0.260223,-0.044352}, {-0.071616,-0.070425}, {-1.084332,0.404648}, {-1.607982,-0.417932}, {0.755238,-0.174306}, {0.185585,1.881097}, {-0.015098,0.559027}, {-0.177597,-0.752248}, {-0.550116,-1.060073}, {-0.358345,-0.425293}, {0.348800,-0.817303}, {-0.881309,-0.246413}, {0.925273,-0.021585}, {-0.725402,0.242012}, {0.185628,0.275909}, {-0.422986,1.393526}, {0.628901,-0.118229}, {0.317355,-0.260886}, {0.700872,-0.179362}, {-0.261562,-0.299310}, {0.255547,0.459484}, {0.874547,-0.523117}, {1.173201,1.024590}, {-0.996085,-0.014251}, {-0.936499,-0.186035}, {-0.124365,-0.515926}, {-1.063564,-0.984708}, {0.564578,-1.758164}, {-0.798557,-0.294069}, {-0.100377,0.060186}, {-0.199967,-0.488498}, {0.888361,-0.509741}, {0.983519,1.571630}, {0.112599,1.056708}, {0.873252,0.482406}, {0.452934,-0.285808}, {-0.043803,-0.750535}, {0.403150,0.892230}, {-0.396320,-0.357763}, {-0.332699,-0.116355}, {0.593079,0.468945}, {0.284203,0.714000}, {0.215099,-0.285505}, {-1.147423,0.160707}, {-0.762612,1.411527}, {0.472681,0.269305}, {0.255840,-0.160359}, {-0.055088,1.194371}, {-0.698704,-0.799073}, {-1.285369,0.675681}, {1.004399,-0.126013}, {-0.548650,0.989301}, {-0.348031,0.143843}, {0.019998,-0.340962}, {1.023248,0.761331}, {-0.902970,-1.223627}, {-0.279665,0.623119}, {-0.366014,0.496679}, {-0.813344,-0.457467}, {-0.372345,0.539890}, {-0.485404,-0.267196}, {0.536624,0.644437}, {1.607247,0.297879}, {0.220415,0.883121}, {-0.610471,-0.507677}, {0.457363,0.253781}, {-0.258994,0.833024}, {-0.261108,-1.096423}, {-0.890548,-0.267881}, {-0.514366,-0.459512}, {0.812269,-0.123179}, {-0.034540,0.119925}, {-0.180841,0.846220}, {-0.752312,-0.637519}, {1.026199,1.242000}, {0.197854,-1.717988}, {0.475428,0.194479}, {0.292648,-0.864272}, {0.947169,-0.161454}, {-0.464096,-0.510604}, {1.153502,0.164372}, {0.487626,-1.698067}, {-0.435832,-0.248461}, {0.986247,0.332766}, {0.573550,0.450706}, {0.217594,-0.594628}, {0.411145,0.714235}, {-0.635136,1.259112}, {0.505637,0.257079}, {1.088652,0.088325}, {-0.412997,1.426823}, {0.773139,0.811379}, {1.222511,-1.367456}, {0.062337,0.036862}, {-0.941056,-0.307414}, {-0.219902,0.345179}, {-0.822663,-0.150728}, {-0.830573,0.243392}, {0.184643,-1.254941}, {0.044543,2.065648}, {-0.303212,0.177042}, {-1.024625,-0.575737}, {-1.766237,-0.128839}, {1.166984,-1.325277}, {0.296716,-0.350582}, {0.108368,-0.173239}, {0.820007,-0.685029}, {-1.179457,-1.230915}, {0.373694,-0.295121}, {0.792136,0.427746}, {0.908489,0.134038}, {0.112420,0.145958}, {-0.528428,-0.719873}, {-1.018138,-0.106810}, {0.487126,0.785684}, {-0.459239,1.922989}, {0.315122,-0.019843}, {0.271436,1.009157}, {-0.561563,-0.748185}, {-0.823416,-0.551511}, {-0.966122,-1.600366}, {0.213364,-0.578518}, {0.495633,-0.444785}, {-0.527658,1.519762}, {-0.069264,0.878791}, {-0.269854,0.404970}, {-0.610037,-0.956304}, {0.484475,0.633773}, {-0.168591,-0.969952}, {0.484383,1.817719}, {0.141585,0.111118}, {-1.199097,-0.051283}, {-0.528354,0.347269}, {0.475852,0.415654}, {0.228798,0.835716}, {-0.253920,0.038539}, {1.462540,-0.489890}, {-0.104670,-0.701368}, {-0.022712,-0.856311}, {-1.130025,0.873925}, {-0.019534,-0.883438}, {-0.193835,0.406293}, {-0.387684,0.052551}, {1.298327,-0.709101}, {-0.310405,0.001679}, {-0.481614,-0.685795}, {-1.062058,-0.520206}, {-1.344745,-0.153656}, {-0.831422,0.037292}, {0.400435,1.234084}, {0.727975,0.204297}, {0.824147,-0.809614}, {0.702855,-0.127743}, {-1.649216,1.142318}, {0.341254,0.448017}, {-0.898656,-0.789927}, {1.058227,-0.602215}, {-1.095050,-0.894509}, {-0.599427,-0.153097}, {-0.102633,0.228645}, {0.508210,0.665789}, {-0.535104,0.147440}, {-1.277860,-1.283381}, {-0.023286,0.344266}, {-0.632160,0.903716}, {0.360618,-0.187216}, {-0.390545,0.532805}, {-0.595274,1.078196}, {0.211172,-0.862871}, {0.328564,-0.792903}, {0.829098,0.198476}, {-0.566607,1.373401}, {-0.019308,0.285081}, {-0.888302,0.700636}, {0.148316,0.138057}, {1.181460,0.019935}, {0.392411,0.162331}, {-0.247861,0.263792}, {0.505014,-0.182329}, {0.628016,1.287511}, {0.212292,1.024624}, {0.687431,1.089767}, {0.564834,-0.028119}, {0.371715,-1.099486}, {0.357609,0.070059}, {2.215728,0.181810}, {0.836665,-0.244650}, {-0.220496,0.330559}, {0.676588,0.472829}, {-0.829341,-0.226416}, {0.744014,-0.881448}, {-0.729316,-0.218085}, {-0.984519,-0.858390}, {-0.487788,0.244053}, {-0.671190,-0.312322}, {0.049124,0.288241}, {-1.004947,0.620259}, {-0.321884,-0.417017}, {-0.493885,0.523531}, {-0.059619,-0.791344}, {-0.457605,0.691495}, {0.170169,-0.246006}, {1.075328,-0.540974}, {-0.079762,0.947477}, {-0.010670,-0.267796}, {0.943646,0.021645}, {-0.285628,-0.533131}, {-0.326849,0.040866}, {-1.421573,-0.739533}, {1.107711,-0.003967}, {1.000615,-0.065396}, {0.312538,-0.117636}, {-0.125344,-0.171464}, {-1.212099,-0.453897}, {0.288620,-0.519846}, {-0.248802,-1.402444}, {-0.310674,0.442311}, {0.098956,0.041407}, {-0.145050,1.286205}, {-0.429898,0.190147}, {-1.606072,0.685533}, {0.367341,0.528374}, {-0.074278,-0.544411}, {0.109107,0.601468}, {-0.454410,0.957520}, {0.453384,0.097285}, {-1.143893,0.610775}, {1.249307,-0.776195}, {0.494955,1.337840}, {0.242363,0.197588}, {-0.114836,-0.076961}, {-0.517306,0.086171}, {0.536084,0.234221}, {-0.269984,-0.404274}, {0.607933,-0.179944}, {1.480986,0.514357}, {-1.274472,-0.307237}, {0.687074,1.058117}, {-0.400117,0.313936}, {-0.791993,-0.417857}, {-0.561613,-0.645294}, {0.656279,-0.373169}, {0.740039,-0.034331}, {-0.240484,-0.434931}, {-0.485973,0.426967}, {0.234931,1.122127}, {0.391140,-0.409224}, {0.549154,0.884721}, {-0.915296,-0.762616}, {0.305934,-0.771631}, {-0.760185,0.255838}, {0.140172,0.086197}, {-0.136659,-1.801038}, {-0.285519,-1.066988}, {-0.359939,1.554395}, {0.289408,0.825934}, {0.461379,-0.152002}, {-0.806281,0.378343}, {-1.253917,-1.287774}, {-0.911462,-0.640941}, {0.986825,0.222918}, {0.108762,0.707578}, {0.028426,1.052636}, {0.337372,0.262425}, {-0.074310,-0.230538}, {-0.746241,-0.364158}, {0.184766,0.326757}, {0.299052,0.408284}, {0.454029,0.336521}, {-0.418725,-0.640634}, {-0.358958,0.325470}, {-0.113820,1.106193}, {0.097508,-0.640975}, {0.004309,0.013634}, {-0.103721,-0.180842}, {0.500274,0.105109}, {1.541197,0.972081}, {0.441451,-0.455017}, {0.040723,-0.995386}, {0.963317,-0.421559}, {1.402597,0.107761}, {1.587690,0.790156}, {-0.360062,0.069757}, {0.272024,-0.645917}, {0.182518,-0.169444}, {-0.720138,0.570094}, {-0.219343,-0.714791}, {0.364707,0.085334}, {1.238324,-0.048266}, {-0.069206,0.421442}, {-0.369665,0.405097}, {-0.125755,1.815291}, {1.339344,-0.722225}, {0.212585,0.318092}, {0.198631,-0.060546}, {0.526265,0.353971}, {-0.432338,0.914161}, {-0.259149,-0.485961}, {0.186000,-1.204080}, {0.143559,0.179813}, {0.174681,-0.217002}, {-0.535888,0.862929}, {0.138733,0.315051}, {-0.281155,-0.621632}, {0.825205,1.046364}, {-1.448150,0.028607}, {1.043647,-0.708319}, {0.579024,-0.187058}, {0.462025,-0.051373}, {0.080543,-0.987185}, {-0.422065,1.038899}, {1.245455,0.673572}, {0.120575,-0.872393}, {-0.935692,-0.049482}, {0.833592,0.112002}, {-0.280053,-0.923684}, {-0.352881,-0.159811}, {0.006592,0.880995}, {-0.334637,0.319727}, {1.600511,0.559890}, {-0.063299,0.518006}, {0.767673,-0.342292}, {0.894664,-1.056244}, {0.218239,-1.485107}, {1.313901,-0.284383}, {0.416552,0.516669}, {-0.945374,-0.353124}, {-1.444466,-0.478877}, {0.595701,-0.530269}, {0.321203,-0.859422}, {-0.202144,0.563280}, {-0.921581,-0.435354}, {-0.709879,-0.080659}, {0.850755,0.425879}, {0.371517,-0.722259}, {-0.655815,-0.005035}, {0.270087,0.539163}, {-0.233616,0.091892}, {0.062617,-0.648446}, {0.581563,-0.013480}, {-0.959711,2.092442}, {-1.236567,-0.286320}, {0.048573,-0.041422}, {-0.491037,-1.454069}, {1.001908,0.754578}, {-0.301879,0.407477}, {0.642198,0.246582}, {0.224810,0.092193}, {-0.272613,0.953599}, {-0.427767,1.107148}, {-0.212575,-0.673377}, {0.074416,-0.040497}, {0.889662,0.397214}, {-0.188469,0.498567}, {0.687591,1.144973}, {1.150738,-0.377170}, {-0.700195,0.414603}, {-1.226960,-0.280948}, {0.047836,-1.929469}, {-0.082189,-0.056623}, {-0.601386,-0.154564}, {-0.462696,0.956185}, {0.425110,0.342661}, {-0.840692,0.701600}, {-0.504892,0.547409}, {0.111847,0.714410}, {0.239928,-0.645067}, {-0.108924,-0.190042}, {-0.383790,0.092672}, {-1.208346,0.551190}, {0.603143,0.029640}, {-1.009036,-0.200890}, {-0.446945,-1.003718}, {0.765485,-1.039887}, {-0.480552,-0.196850}, {-0.203509,-0.820593}, {0.688553,0.072149}, {0.703177,-0.301738}, {0.086873,0.336471}, {-0.087231,-0.206545}, {0.269569,-0.857498}, {0.233124,0.128947}, {-0.484636,0.170069}, {-0.537166,0.776772}, {0.175699,-0.230826}, {0.085410,-0.018865}, {0.034945,-0.185273}, {0.569387,0.834000}, {0.947868,-0.930988}, {-0.100640,0.458731}, {1.002459,0.121581}, {1.059436,-0.068274}, {-0.421766,-0.185124}, {0.812700,-0.879198}, {1.381454,-0.394813}, {0.765729,-0.434247}, {-0.715909,-0.355391}, {0.073886,1.283928}, {0.489919,-0.471248}, {0.194977,1.066605}, {-0.578221,-0.425253}, {-0.406449,1.355422}, {-0.264036,-1.141037}, {-0.684424,0.475471}, {-0.556184,1.217787}, {-0.098804,0.291072}, {-2.004840,-0.218550}, {0.675484,0.712235}, {-0.467058,0.550342}, {-0.743855,2.418363}, {-0.778534,0.962859}, {-0.835465,-0.887622}, {0.044832,1.405487}, {0.309662,-1.836249}, {0.206982,-0.439087}, {0.960534,-2.043925}, {-0.543298,1.356592}, {0.928993,-0.616757}, {0.549173,0.603967}, {-0.430636,-0.012406}, {0.260641,0.304006}, {0.440114,-0.450592}, {0.231095,0.277928}, {0.209124,-0.466697}, {-0.960677,-1.002757}, {1.075456,-0.462500}, {-0.606526,0.152494}, {-0.182662,-0.659743}, {1.384662,-0.357479}, {-1.330588,-1.047178}, {0.502764,0.377201}, {-0.247289,0.855959}, {-0.012699,-0.113936}, {0.364142,0.075726}, {-0.269392,1.005615}, {1.370532,0.307236}, {1.142868,0.386704}, {0.440215,-0.324471}, {-0.033589,-0.638411}, {-0.327272,1.068003}, {-0.543571,-0.273416}, {-0.365062,-0.542959}, {1.250943,0.688743}, {0.472615,-0.098602}, {1.445136,0.536558}, {0.784735,-0.170791}, {0.064371,-0.779831}, {0.308675,-0.603152}, {1.586819,0.666450}, {0.639744,-1.202155}, {-0.627964,1.088006}, {-0.476573,0.282566}, {0.027772,0.994415}, {0.334959,1.192618}, {0.504855,0.281254}, {0.413815,0.195150}, {-0.592291,1.052660}, {0.079286,-1.324581}, {0.235540,-0.732265}, {-0.005819,-0.171668}, {0.067451,-0.441117}, {0.607046,-0.160835}, {-0.162694,0.829134}, {0.421080,0.189770}, {-0.116096,-0.441471}, {-1.205497,-0.460146}, {0.111566,0.707898}, {-0.674216,0.010199}, {-0.516917,-0.340492}, {-0.253736,-0.133809}, {0.293164,-0.493820}, {0.094884,1.329867}, {0.888509,0.028852}, {0.507446,0.428109}, {0.777171,-1.230643}, {0.888975,-0.258522}, {0.494596,0.073523}, {-0.528695,-0.616262}, {-0.133796,1.596729}, {0.042732,0.994114}, {0.187107,-0.683293}, {1.709562,-0.422073}, {-0.501284,-0.984705}, {0.979104,0.114013}, {0.619612,0.148485}, {0.265311,0.436067}, {-1.104922,0.399318}, {-0.844686,0.364787}, {0.045931,-1.764657}, {0.234470,0.330008}, {-0.745766,0.634961}, {1.040822,-1.192880}, {-0.924936,-0.069478}, {-0.559008,1.068087}, {-0.001940,-1.409943}, {-0.963420,-0.425440}, {-0.355644,-0.262865}, {-0.325353,0.688031}, {-0.505974,0.930113}, {-0.513432,0.014631}, {-0.641167,-0.464992}, {0.989676,0.899411}, {0.475176,1.152172}, {-0.649576,-0.471232}, {-0.544376,0.273234}, {-1.936626,0.360009}, {-0.788292,-0.146180}, {0.029239,0.663837}, {0.089389,-0.405482}, {-1.006432,0.041522}, {0.065737,0.170432}, {-0.536108,0.463754}, {0.249146,-0.505395}, {0.371547,-0.812264}, {-0.037906,-1.072131}, {0.484523,-1.128252}, {-0.715915,-0.328589}, {-0.274512,0.228612}, {-0.058716,0.021879}, {0.702693,-0.158524}, {-0.151997,0.473194}, {-0.852896,-0.326452}, {-0.100443,0.365915}, {-0.955887,0.394822}, {-0.208727,-0.344079}, {-0.131318,0.157507}, {0.210001,0.434525}, {-1.062122,-0.117708}, {-0.346687,-0.182016}, {0.654369,-0.500059}, {-0.307734,-0.826574}, {0.155367,1.735056}, {1.858707,-0.541347}, {-0.268982,0.440984}, {0.216965,-1.158686}, {-0.431159,-1.260753}, {-1.785308,-0.584553}, {0.261771,0.584204}, {1.451317,-0.742810}, {-0.004668,-0.752829}, {-0.024921,1.245290}, {0.595504,0.565095}, {0.960266,-0.329771}, {0.326327,0.550239}, {-0.863137,0.203973}, {-0.380078,-0.435468}, {1.090459,-0.823282}, {-0.356638,0.283852}, {0.682541,0.012101}, {-0.308431,0.770005}, {1.199072,0.069286}, {-1.046700,1.675759}, {-0.077715,0.534336}, {-0.222926,0.910906}, {0.261806,0.566523}, {0.420022,-0.553801}, {-1.412877,0.700632}, {0.797401,0.323269}, {-0.694224,0.960901}, {0.533299,0.850659}, {-0.991622,1.002736}, {-0.028049,0.666471}, {0.715754,-0.271882}, {0.578916,0.553135}, {0.231987,0.123384}, {-0.109185,-1.359211}, {-0.398565,0.173967}, {-0.043014,-0.665217}, {-1.225856,0.628940}, {-0.929289,-1.132390}, {1.603272,0.818561}, {-0.103226,-0.692397}, {0.141116,1.383120}, {-0.400579,0.668820}, {0.143826,-0.222660}, {0.333041,-0.807693}, {-0.320005,0.808184}, {0.629822,-0.286580}, {-0.772778,1.724556}, {1.386505,0.462035}, {-0.229246,-1.474260}, {-0.503459,1.044767}, {-0.250001,0.561403}, {0.012072,-0.058950}, {0.756583,0.503015}, {-0.335019,-0.761904}, {-0.682864,0.003814}, {0.068344,0.231416}, {0.256777,-0.369994}, {-0.282520,-0.095213}, {-0.187083,-0.559020}, {-0.026183,-0.522028}, {-0.650853,-0.769108}, {0.035804,-0.431890}, {0.030008,-0.399347}, {-0.287980,-0.145851}, {-0.677012,-0.560565}, {-1.049641,-0.861592}, {0.312580,0.091289}, {-0.963485,0.211167}, {0.287165,-0.371532}, {0.555650,-0.838435}, {0.395525,-0.449511}, {0.252774,-0.490994}, {-0.688084,-0.314271}, {-0.402613,0.309283}, {0.511800,-0.453051}, {1.035475,-0.441895}, {-0.655559,0.204947}, {-0.683300,-0.428916}, {0.387642,0.043918}, {-0.179349,-0.651814}, {-0.493107,1.155292}, {-0.030356,0.289986}, {0.652280,1.046866}, {0.057809,1.266974}, {0.215742,1.064339}, {0.447729,-0.632852}, {0.279966,-0.339154}, {-0.166371,-1.026682}, {0.421910,0.351254}, {-0.254637,-0.154264}, {-1.334090,-0.110719}, {-0.566168,-1.155950}, {-0.558998,0.207397}, {-0.055417,0.648158}, {-0.241039,-0.287178}, {-0.582347,-1.040992}, {-0.289176,0.447352}, {0.564223,-0.500253}, {0.200212,0.121773}, {0.752287,0.131198}, {-0.586207,-0.250267}, {0.752385,-1.118821}, {-0.454050,0.686154}, {0.421964,-0.071049}, {0.385670,0.105139}, {-0.883155,0.420629}, {0.582838,0.829220}, {1.599990,0.302506}, {-0.711621,-0.048242}, {-0.769061,-0.939823}, {-0.570805,1.221850}, {0.746084,0.370521}, {-1.095763,0.542099}, {0.507870,-0.028658}, {-0.006494,-0.140681}, {1.123004,0.639325}, {0.023228,-0.243014}, {2.006419,-0.925360}, {0.244315,0.241295}, {0.714233,0.041423}, {0.930361,1.159843}, {-0.439284,-1.104778}, {-2.044038,1.046255}, {-0.247643,-0.295368}, {-0.496474,-0.188701}, {0.427399,-0.103610}, {-0.048929,-0.755309}, {-0.378127,-0.657410}, {0.647217,0.149609}, {0.628906,-1.593151}, {-0.581867,-0.372896}, {-0.483963,-0.772021}, {-1.279053,-0.372171}, {-0.505264,-0.021054}, {-1.130825,0.247607}, {0.329896,1.593840}, {-0.312292,-0.619026}, {-0.024599,0.020700}, {-0.647591,-0.690874}, {1.248162,1.039611}, {-0.252032,0.173910}, {0.311838,-0.632350}, {-1.024234,0.131065}, {0.035961,-1.216873}, {0.477173,0.507557}, {-1.295462,-0.451069}, {-0.377181,1.110673}, {0.706351,-0.382557}, {-0.134564,-0.499312}, {0.566652,-0.673370}, {-0.967847,-0.852623}, {-0.139758,-2.138448}, {-0.176702,0.054714}, {0.043205,0.100348}, {-1.012144,-0.515393}, {0.620692,-0.001168}, {-0.231469,0.384359}, {0.167537,0.294412}, {-0.061414,-0.366999}, {0.731633,0.876544}, {1.154343,0.803758}, {0.412281,0.559052}, {-0.371725,-1.273328}, {0.957476,-1.378973}, {0.289512,-0.991069}, {-0.578394,-1.421610}, {0.015914,0.322132}, {0.106358,-1.449675}, {-0.069120,0.739722}, {0.531874,-0.371638}, {0.657279,0.323686}, {0.037083,-0.796566}, {1.061708,-0.965017}, {0.413730,0.054267}, {0.521430,1.075811}, {0.856354,-0.905745}, {0.373586,-0.270185}, {0.791206,-0.986693}, {0.729893,0.860268}, {0.043905,-0.429560}, {-0.656692,-1.039828}, {0.555913,1.767401}, {0.303388,-0.323869}, {-0.125446,-0.255745}, {1.117126,0.195974}, {-0.992980,0.304440}, {-0.382740,0.426044}, {-0.223638,-0.152487}, {1.023637,-0.350714}, {0.245655,-0.157361}, {-0.111659,-0.614165}, {0.354600,0.026794}, {-0.027813,0.532690}, {0.245690,0.739772}, {-0.504872,-0.794998}, {-0.809269,-1.094385}, {-1.001891,-0.480770}, {-0.465059,0.023020}, {0.229876,-0.151501}, {-1.141435,-0.029146}, {-0.937562,-0.801157}, {-0.195200,-2.144830}, {0.101337,0.587135}, {0.153064,-0.325187}, {-0.583504,-1.060043}, {-0.098906,-0.330180}, {-0.216563,-0.818141}, {-0.211935,-0.707920}, {0.636668,0.028993}, {-0.758271,-0.108885}, {-0.706584,0.097759}, {1.376119,0.384825}, {0.420516,1.213370}, {1.030631,-0.077473}, {-1.252726,1.002692}, {0.487495,0.456548}, {0.682253,0.398622}, {0.147446,-0.079877}, {0.722369,-0.614144}, {0.378631,-0.601790}, {0.075497,0.837757}, {0.199081,0.445597}, {0.535089,0.570803}, {-0.122319,0.373349}, {-0.321298,0.741177}, {0.903177,-0.013977}, {-0.583050,-0.924612}, {0.066698,1.396794}, {0.408667,0.958962}, {-0.738580,-1.497866}, {0.600777,-0.398895}, {0.254742,0.347824}, {-0.265817,0.876722}, {0.907423,0.129822}, {-0.114962,-0.826617}, {-0.240360,-0.143947}, {0.148077,-0.071668}, {-0.212910,1.016550}, {-0.013388,-1.067770}, {0.046668,-0.442470}, {0.256538,-0.318212}, {-0.250360,1.417343}, {-0.775082,1.038648}, {1.220756,-0.342349}, {-0.032158,-0.172829}, {0.922113,0.382379}, {1.047628,0.944538}, {0.885199,-0.041166}, {-1.458274,0.373000}, {0.855979,0.373876}, {0.431145,0.483826}, {-0.019854,-1.320043}, {0.213858,-0.134150}, {-1.273584,-0.203977}, {-0.916604,0.918129}, {-0.768406,-1.109353}, {-0.278667,-0.372253}, {0.878634,0.434317}, {-1.182409,0.691791}, {-0.166143,0.370502}, {-0.371636,-0.617445}, {0.836100,-1.092805}, {0.179593,2.209969}, {-0.760372,-0.186876}, {0.580655,0.070447}, {0.637695,-1.328039}, {-0.210008,0.169876}, {0.107828,-1.200689}, {0.689020,0.461975}, {0.799638,-0.225619}, {0.549319,0.257945}, {-0.169926,-0.062423}, {-1.000681,-1.230883}, {-0.280677,-0.889594}, {-0.365240,0.176973}, {-0.496268,-1.327882}, {-0.051553,1.031328}, {-1.118158,1.437687}, {0.069181,-0.263582}, {0.034310,0.657226}, {-0.665250,-0.249209}, {-0.265277,-0.231715}, {0.768583,-0.439151}, {-0.516311,1.258394}, {-1.062635,-0.480988}, {0.768868,1.387988}, {-0.133561,-0.253474}, {0.174635,-0.763359}, {0.207988,0.224757}, {0.171049,1.245499}, {-0.923550,1.085739}, {0.631564,-1.467559}, {-0.160409,0.068830}, {-0.008023,-1.455924}, {0.180831,-0.762764}, {0.303099,2.221159}, {0.032024,0.734284}, {0.086762,-0.565552}, {-0.273328,1.536368}, {-0.101105,-0.703900}, {0.023821,-0.404259}, {0.138986,-0.943679}, {-0.511459,0.739696}, {-1.031153,0.329790}, {-0.038206,-0.799769}, {0.440881,-0.555912}, {0.023990,-0.531059}, {0.659228,-0.843024}, {-0.826474,-0.770692}, {0.946334,-1.545003}, {0.261025,-0.113739}, {0.048911,-1.179110}, {0.060770,-0.859467}, {-0.785178,-0.587693}, {-0.381189,0.094381}, {0.630990,-0.822901}, {0.013473,-0.408986}, {-1.789311,0.714900}, {1.519795,-0.195693}, {-0.701243,0.864168}, {-0.915110,0.072452}, {-1.261997,1.360065}, {-0.163284,0.527620}, {0.649672,-0.335824}, {0.610109,0.962789}, {1.048801,-0.879891}, {-1.064425,-1.265436}, {0.105428,-0.129546}, {1.539402,-0.029218}, {-0.431054,-0.384473}, {0.440965,-1.503971}, {-0.553600,0.461140}, {0.432415,-0.588674}, {0.466966,0.767686}, {-1.282511,-0.822551}, {-0.405750,-0.169677}, {-0.529296,-0.256420}, {0.333425,-0.212289}, {0.351865,-1.052035}, {-0.372759,-0.324327}, {0.496838,0.426941}, {0.521469,0.729775}, {-0.360286,0.330552}, {-0.939280,-0.731402}, {-0.589460,0.375702}, {0.473278,0.562849}, {0.907852,0.477585}, {-1.161415,0.674441}, {-0.978026,0.108291}, {-0.646718,0.244958}, {-0.037385,-0.220525}, {-0.453012,0.255493}, {0.903459,-0.255742}, {-0.099331,0.318876}, {0.002754,-0.225539}, {0.134105,-0.165745}, {1.240310,-0.105975}, {0.009197,0.949681}, {-0.673977,0.458706}, {0.679855,-0.534481}, {-0.073767,0.277108}, {0.277924,-0.047804}, {0.415045,-0.608651}, {0.122556,0.982192}, {-0.446661,-0.313225}, {1.173726,1.220580}, {-1.593188,0.789350}, {-1.834105,-1.079304}, {0.107095,-0.091381}, {1.110756,0.061581}, {-0.917192,0.734789}, {0.348696,-1.323831}, {0.010933,1.090009}, {-0.106413,-0.322089}, {-0.860837,-0.506303}, {0.627199,0.541836}, {-0.139889,-0.512866}, {0.637993,0.510208}, {-1.167249,-0.146076}, {-0.862119,0.394909}, {-1.240754,0.494548}, {-0.376744,0.672959}, {-0.999381,0.637653}, {-1.391600,0.390940}, {0.955660,-0.769621}, {0.310879,-0.798671}, {0.408795,-0.452281}, {-0.974719,-0.029192}, {0.311104,0.273352}, {0.026062,-0.858645}, {0.556329,0.206713}, {0.094267,-1.481594}, {-0.356078,0.544259}, {-0.033796,-0.245353}, {0.203784,0.331156}, {0.096733,2.575388}, {-0.381793,0.290671}, {-0.116102,-0.156839}, {0.161793,0.594064}, {-0.321204,-1.339815}, {-1.090421,-0.762797}, {0.787900,0.459478}, {0.243785,0.940882}, {-0.153906,0.841058}, {-0.936971,1.541452}, {-0.439278,-0.322908}, {-1.066801,-0.222840}, {0.629434,-0.352457}, {-0.202999,0.278222}, {-0.505916,0.969990}, {0.396149,-0.315510}, {-0.829205,-0.140890}, {-0.660853,-0.447071}, {-0.699586,0.850048}, {-0.706088,0.377818}, {-0.876828,0.869990}, {0.937227,-0.354026}, {-1.149567,-0.878271}, {-0.807950,-0.806797}, {-0.733349,-1.050036}, {0.134549,-1.452923}, {0.623023,0.412688}, {0.119168,-1.377420}, {0.682589,0.820573}, {0.800743,-0.117315}, {-0.930976,-0.305719}, {0.007050,0.193402}, {1.580681,0.605792}, {0.281324,0.201371}, {0.005740,1.007009}, {0.993450,-0.268242}, {0.289972,-0.080020}, {0.206252,0.023882}, {-0.015665,-2.024198}, {0.371283,-1.340106}, {-0.213033,-0.457500}, {0.263077,-0.366399}, {0.710898,-1.090262}, {0.677746,-1.151681}, {1.238201,-0.610042}, {0.325461,-1.103737}, {-0.980765,-0.488024}, {-0.077484,0.774584}, {0.496364,0.004649}, {0.643821,1.447878}, {-0.743024,-1.112741}, {-0.195607,0.639318}, {-0.080202,0.412438}, {0.916875,0.189103}, {-0.106268,0.390295}, {0.715604,-0.486286}, {0.115849,1.370489}, {-0.576103,1.129486}, {0.935521,-0.616187}, {-0.914664,0.196014}, {0.360647,0.177486}, {0.442306,-0.048782}, {-1.345507,0.159373}, {-1.024007,-1.295577}, {0.303087,-0.450638}, {0.225152,-0.356881}, {-0.503513,-0.770894}, {-0.333461,-1.843134}, {-0.432863,-0.889999}, {-0.784493,-0.566774}, {0.410618,0.701420}, {0.136290,-1.037936}, {0.145021,0.974063}, {0.529589,0.128197}, {-0.676674,-0.971814}, {-0.270406,1.019808}, {0.096367,-0.838265}, {0.318717,-0.762441}, {0.397090,0.756928}, {0.648969,0.667148}, {-0.913693,-0.162627}, {0.119623,0.022965}, {0.555892,0.378100}, {0.900717,0.703179}, {-0.046262,-0.721821}, {-1.181653,0.505205}, {0.465203,-0.477470}, {0.046090,-0.627510}, {-0.363122,-0.091161}, {0.953653,1.039114}, {-0.789380,-0.928026}, {0.162396,0.803479}, {-0.835156,-0.260672}, {0.250119,-0.467056}, {0.218336,0.454615}, {0.209926,1.190928}, {-1.178592,-0.891917}, {0.550639,-0.793167}, {-1.985065,-1.044282}, {-0.196421,-0.054591}, {0.084188,-0.363259}, {-0.505210,-0.803844}, {1.240644,-0.301110}, {0.512258,-0.469191}, {-1.549377,0.756018}, {-0.614481,-0.080973}, {-0.744195,-0.048617}, {0.879512,-0.837412}, {-1.089793,1.223308}, {1.011531,0.192099}, {0.335207,-0.361593}, {0.976295,-0.603421}, {-0.220526,-0.371096}, {-1.002946,0.716884}, {-0.444541,-0.037052}, {-0.477626,0.295812}, {-1.046918,-2.279811}, {0.133746,-0.120300}, {0.279460,0.397052}, {-0.663998,0.035170}, {1.121487,0.680845}, {1.108689,1.142655}, {0.380884,1.253683}, {0.106635,-0.096270}, {0.651713,-1.297000}, {0.481130,-0.876693}, {-2.086800,0.062748}, {0.502741,0.743331}, {-0.634120,0.417364}, {0.332408,-1.807629}, {0.288393,-0.248269}, {-0.589845,0.528027}, {-0.953016,0.010891}, {1.215645,-1.463684}, {0.179478,-0.118753}, {0.304072,0.579308}, {-0.786558,-1.384700}, {1.545828,0.671325}, {-1.103380,0.496542}, {0.566262,0.207667}, {0.168035,-0.084493}, {-0.745029,0.787807}, {-0.008405,0.486130}, {-1.256400,-0.811337}, {-0.421056,-0.997844}, {-0.129980,-0.010057}, {0.683615,0.299871}, {0.171174,-0.371855}, {0.239929,-0.288358}, {0.736989,0.844517}, {0.502939,-0.293006}, {-0.078536,-0.030891}, {0.889214,0.617627}, {0.107697,-0.504655}, {-0.322943,-0.180390}, {-0.659880,-0.211751}, {-0.425630,1.220749}, {1.564708,1.804423}, {-0.562868,0.198486}, {-0.064851,-0.014952}, {-0.685409,0.304867}, {1.341588,0.203554}, {0.391212,-0.841740}, {0.700891,0.658326}, {-0.301305,0.902339}, {-0.046588,0.019530}, {0.415121,-0.949705}, {-0.410635,-0.231837}, {0.615095,1.334066}, {-0.067261,0.324586}, {0.167043,-1.136141}, {0.422422,0.696197}, {0.584087,0.667480}, {-0.551074,0.249301}, {0.421860,-0.454014}, {-0.585820,-0.664637}, {-0.071516,0.815123}, {-0.541864,0.195446}, {0.866604,-1.519052}, {-1.811300,0.473683}, {-0.412564,0.863621}, {-0.125827,-0.223240}, {0.963505,0.064195}, {0.096324,-0.017230}, {-0.559212,0.385040}, {-0.071234,0.362721}, {-0.783611,-1.711285}, {-0.466996,-0.665663}, {-0.422348,0.153831}, {0.031726,0.347303}, {0.126585,0.194805}, {1.089699,-0.115948}, {0.261952,1.193404}, {-0.062577,0.658827}, {1.046650,1.250723}, {0.343986,-0.385875}, {0.398418,-1.112678}, {0.397788,0.432553}, {-0.081351,-0.869887}, {0.115778,-1.810748}, {1.089135,0.283668}, {0.348676,-0.215081}, {0.990831,0.340013}, {-0.429526,0.150394}, {-0.209451,-0.426354}, {1.251426,0.387939}, {-0.941099,-0.048392}, {0.553432,0.490465}, {0.820341,-0.892655}, {-0.469979,0.215954}, {-0.111752,-0.518634}, {-0.322742,0.282748}, {-0.131831,-0.096259}, {0.928465,0.491990}, {-0.131168,0.713177}, {1.182858,-0.137778}, {0.498624,0.596945}, {-0.340255,1.333451}, {-0.263143,-0.178530}, {-0.853000,-0.367513}, {0.645533,0.217256}, {-0.222484,-0.050816}, {-0.889767,0.961630}, {-0.559303,-0.335849}, {0.755808,1.224325}, {-0.295347,-0.382986}, {0.154238,0.489334}, {0.806167,0.600666}, {-1.440967,0.906005}, {0.400307,-1.289369}, {-1.322768,0.271201}, {0.721328,-0.415260}, {0.328246,0.162043}, {1.063849,-0.169918}, {0.661691,0.188712}, {-0.393050,-0.106635}, {-0.924026,-0.264599}, {-0.379871,-0.638547}, {1.648221,0.026247}, {1.111263,0.149709}, {0.176878,-1.278937}, {0.734091,0.194270}, {0.643210,-0.024985}, {-0.703541,-0.377990}, {0.786560,0.295150}, {1.646656,-0.147934}, {-0.361062,0.674906}, {-0.317120,0.143807}, {-1.310888,-0.164024}, {0.035068,0.189815}, {-0.787682,0.694272}, {-0.057575,-0.198782}, {0.037946,-1.261234}, {0.789551,0.167209}, {0.163492,1.280868}, {1.486117,0.344385}, {-0.259139,-0.046155}, {-0.720616,-0.687107}, {0.332266,0.269337}, {0.677660,-0.080123}, {0.221776,0.671525}, {-1.286564,-1.026638}, {-0.137566,-0.439496}, {1.253971,-1.647977}, {-1.082200,-0.445719}, {-0.166409,-0.650523}, {-0.453263,0.213402}, {-0.017712,-0.128208}, {-0.032769,-0.405644}, {-0.219371,-0.017666}, {-0.799480,-1.769117}, {-0.532850,0.965634}, {-0.686125,-1.467377}, {-0.633034,-0.389067}, {-0.150331,0.782007}, {-0.691980,0.730198}, {-0.597063,-0.279026}, {0.834946,0.396175}, {-0.078053,-0.123351}, {-0.571384,-0.618287}, {0.325004,0.114546}, {0.411609,1.274331}, {0.206788,-0.139653}, {-1.090128,0.800625}, {-0.412709,0.694443}, {-0.162932,1.311011}, {0.397417,-0.737950}, {-0.100183,0.447697}, {1.213408,-1.126972}, {0.034492,0.978029}, {-0.872335,-0.584584}, {0.568310,0.904579}, {-0.453700,0.703082}, {-1.230769,0.813793}, {-0.851555,0.357280}, {0.604006,0.281641}, {0.411237,0.367925}, {-0.750405,-1.252638}, {0.260416,0.091677}, {0.333514,-1.104021}, {0.782219,0.587118}, {-0.200975,-0.528729}, {-0.332689,-1.636132}, {-0.415304,-0.010511}, {-0.121022,0.354709}, {0.994143,0.280846}, {0.138590,-0.213242}, {-0.193256,-0.095752}, {-0.441602,0.259315}, {0.948753,0.001788}, {0.898141,-0.750677}, {1.346054,0.626588}, {0.381400,-0.493532}, {-1.338972,0.327082}, {0.220140,-0.344755}, {0.656912,-0.469924}, {1.263170,0.096743}, {0.070575,-0.775336}, {0.716447,1.747781}, {0.298510,0.135103}, {0.022491,0.885968}, {0.142852,0.482053}, {-0.434061,-0.439810}, {0.694127,0.094622}, {0.448201,-0.299757}, {0.087507,0.008116}, {0.250792,0.103017}, {-0.059841,-0.687843}, {-0.071647,0.860597}, {0.728315,0.820186}, {-0.640044,0.101480}, {0.211384,0.028702}, {-0.457781,0.490619}, {-0.178352,-0.304710}, {-0.563754,-0.733470}, {-0.770274,0.082873}, {-0.762355,1.140889}, {0.797291,0.304485}, {-0.057014,-0.903306}, {-0.158813,0.075113}, {-0.874554,0.299985}, {-1.282132,-0.277777}, {0.150378,-1.322159}, {0.433856,-0.000391}, {0.119086,-0.850105}, {0.204912,0.316619}, {-0.757190,-0.377894}, {-0.896753,1.076560}, {1.182092,-0.196822}, {0.699797,0.526050}, {0.405838,-0.496715}, {-0.834600,-0.037964}, {0.545939,0.047411}, {-0.771625,0.127979}, {0.625542,0.978054}, {0.578050,1.339611}, {-0.854615,-0.162544}, {0.803070,-1.575209}, {-0.722438,0.809655}, {0.812986,-0.021617}, {0.617012,0.621875}, {-0.694562,-0.359274}, {0.819084,0.571131}, {0.605917,-0.877233}, {-0.166467,-0.432090}, {-0.763237,0.021539}, {-1.007144,0.682364}, {-0.012074,-1.138787}, {-0.793479,0.734741}, {0.950373,-0.774179}, {0.714255,-0.444826}, {-1.824486,-1.178179}, {0.286283,-1.022538}, {0.371641,0.412646}, {1.221297,-0.075273}, {0.513217,0.452413}, {0.015385,-0.341663}, {-0.926360,0.470885}, {-0.515633,0.282595}, {-0.876782,0.148065}, {-0.204097,-0.416771}, {0.581214,0.730282}, {0.150986,-0.721883}, {-0.919574,-0.518872}, {-1.025393,1.032902}, {-0.571691,-0.523905}, {0.336729,0.277443}, {0.077651,0.017905}, {-0.049717,0.473017}, {-0.410902,-0.770257}, {-0.847206,0.198044}, {0.356753,0.100081}, {0.580691,0.400755}, {0.718459,0.870265}, {0.779366,0.466430}, {-1.046243,-1.317550}, {-0.248241,-0.184969}, {0.626921,0.660065}, {0.772665,-1.467408}, {0.189100,0.479679}, {-1.027175,1.032229}, {-0.110106,-0.214123}, {-0.434741,0.523121}, {-0.947316,0.197282}, {0.241363,0.711876}, {-0.790393,-0.270092}, {-0.264741,0.345775}, {0.814247,-0.835493}, {0.947799,0.460240}, {0.505144,0.380228}, {-0.473087,-0.638790}, {0.543595,-0.001347}, {-0.682112,0.627895}, {-0.405487,0.778655}, {0.090159,-1.164412}, {-1.021743,-1.421425}, {-0.149220,-0.891920}, {0.763872,-0.387818}, {0.447078,0.686021}, {0.054443,0.941294}, {0.946171,-0.217788}, {-0.490974,1.129098}, {0.729449,0.252452}, {0.815682,-0.189074}, {0.788805,-1.240450}, {0.942122,-1.379303}, {-0.702094,0.893805}, {-1.031257,0.993462}, {-0.515607,-1.598744}, {-1.242896,0.696992}, {0.462112,-1.234721}, {-1.005724,0.703223}, {0.475509,1.468536}, {0.087152,0.401476}, {-1.961801,0.527485}, {-0.277783,0.792785}, {0.499758,-0.094692}, {0.592984,-0.740657}, {-0.369076,-0.004060}, {0.610104,-0.671913}, {-0.127590,0.291879}, {-0.769939,-0.549296}, {-0.110371,-0.651391}, {-0.324962,-0.638560}, {-0.366826,1.409327}, {0.365052,-0.587005}, {-0.316704,-0.411182}, {-0.769326,-0.018427}, {0.918326,-0.205236}, {1.455609,1.087051}, {0.844860,-0.653147}, {1.020463,0.280075}, {0.559389,-0.768862}, {-1.792332,-0.215746}, {0.196068,-0.074482}, {-0.613620,-0.906514}, {-0.602302,1.210484}, {1.537292,0.306783}, {-0.008903,-0.974294}, {-0.532771,-0.265199}, {-0.018499,-0.535834}, {-0.014195,0.748767}, {0.353076,-0.075319}, {0.434187,0.928206}, {-0.355526,0.282319}, {0.211333,0.311046}, {-0.589182,-0.031620}, {1.002223,0.023921}, {-0.601628,-0.329293}, {0.424415,0.068179}, {-1.155585,0.516343}, {0.515025,0.512588}, {-0.779358,0.737289}, {-0.532136,-0.528990}, {0.246092,0.038006}, {-1.225133,0.620487}, {-0.200500,-0.297832}, {-0.419124,-0.629269}, {0.857102,-0.394516}, {-0.627349,0.023525}, {-0.480722,0.194265}, {-0.967646,-0.289770}, {-0.811645,0.778058}, {-0.330038,0.486357}, {-0.188439,0.216193}, {0.089880,-0.920053}, {0.123710,-0.395635}, {0.590314,0.051432}, {-0.400984,0.472685}, {-0.482473,-0.081664}, {1.021624,1.195570}, {-0.641330,-0.310074}, {-0.191657,-0.668057}, {0.057035,0.868019}, {0.161342,0.290908}, {-0.914313,1.611466}, {0.752373,1.180590}, {-0.023547,1.358874}, {-0.891893,0.622478}, {-0.627566,-0.215932}, {0.569484,-0.032047}, {0.151811,0.537318}, {0.643493,-0.211765}, {-0.277706,0.641965}, {-0.055308,0.040286}, {0.133963,-0.238700}, {-0.927043,0.438230}, {0.737539,-1.090991}, {-0.258609,0.790912}, {-0.248323,-0.881598}, {0.220905,1.051752}, {0.439683,-0.240808}, {-0.081260,-0.429267}, {-0.893930,-0.301145}, {0.216628,0.563682}, {0.495748,-0.625961}, {-0.484015,-1.195660}, {-0.717614,-0.328233}, {-0.601530,-0.572201}, {-0.055818,0.060060}, {0.301962,0.128367}, {-0.314449,-0.022201}, {-1.088724,0.633684}, {-0.576006,0.352197}, {-0.476385,-0.096264}, {-1.326078,-0.103745}, {-0.458658,-0.228827}, {0.123811,0.703156}, {-1.208584,0.467840}, {0.733960,0.272324}, {-0.531940,0.601927}, {-0.203491,0.765397}, {0.282851,0.489174}, {-1.410437,0.224490}, {-0.438276,-0.013360}, {-0.061401,-0.259781}, {-0.014421,-0.307778}, {-0.475161,1.111264}, {0.769111,0.441227}, {0.172795,-0.268608}, {0.979869,0.135185}, {-0.528977,-0.205653}, {-0.045259,0.027604}, {0.722821,0.789841}, {-0.039846,-0.938385}, {0.589344,0.223276}, {-1.022671,-0.084817}, {0.041763,-1.074842}, {-0.588962,0.459411}, {0.305630,-0.951329}, {-0.688286,-0.717012}, {-0.239280,-0.054100}, {0.466996,-0.578716}, {0.515927,-0.146469}, {0.728230,1.345576}, {0.418004,1.320527}, {-0.518194,0.757005}, {0.012964,-1.615714}, {-0.952324,-0.315730}, {-0.857139,0.027421}, {0.114293,0.309591}, {-0.844651,-0.223144}, {-0.928183,1.192097}, {-1.023982,-0.343621}, {-1.048939,-0.345626}, {0.164567,0.377517}, {0.836105,-0.111800}, {0.071700,0.607273}, {0.144912,0.349067}, {0.722128,-0.075779}, {-0.279779,-0.260383}, {-0.049156,1.120738}, {-0.640154,-0.228391}, {-0.039753,0.150724}, {-0.415397,-0.463677}, {-0.723847,-0.209406}, {-0.524332,-1.037805}, {0.171327,-1.435469}, {-0.089687,-0.415936}, {-1.225215,0.133157}, {-0.018497,-0.644647}, {0.396236,-0.355851}, {0.225700,0.899203}, {0.287114,-0.691831}, {0.674085,-0.073870}, {2.000654,-0.623437}, {-0.252822,-0.415741}, {0.052088,0.016210}, {-0.332988,-0.849652}, {0.026695,-0.376094}, {0.742096,0.969579}, {-1.635731,0.339533}, {-0.208349,0.686132}, {0.828001,-0.603493}, {-0.078836,-0.444070}, {1.364974,0.631664}, {-0.160620,0.335231}, {-1.378768,-0.907673}, {-0.293646,0.072013}, {1.524592,-1.461770}, {0.083610,-1.746190}, {0.102486,0.149103}, {0.691698,0.227990}, {0.028614,-0.864596}, {-0.152066,0.125449}, {-1.205134,1.186200}, {0.848843,-0.061847}, {1.081665,0.049303}, {-0.108837,-0.099148}, {0.262042,-0.490003}, {-0.254991,0.361463}, {-0.477565,0.096211}, {-0.137706,-1.119345}, {0.538644,0.486454}, {0.035114,0.001732}, {-0.695087,0.063591}, {-1.648017,0.977367}, {-0.224997,0.395787}, {-0.727539,-0.234162}, {0.078225,-0.026224}, {0.772412,-0.439717}, {-0.403974,0.204029}, {-1.104881,-0.012786}, {-0.672931,-0.415948}, {-0.863229,-2.233172}, {1.063307,-0.258525}, {-0.529432,-0.708843}, {-0.176069,-1.026002}, {-0.384993,-0.904576}, {0.042330,-1.765663}, {0.851313,1.091533}, {0.180840,0.453570}, {0.337128,0.182821}, {1.363286,-1.181451}, {1.137031,-0.433505}, {-1.325181,-0.200399}, {0.394546,0.006217}, {0.723817,-0.068463}, {1.050909,0.065058}, {0.084242,-0.420440}, {-0.238302,0.258881}, {0.174215,-0.677729}, {-0.711756,0.276335}, {-0.129577,-0.515158}, {0.866331,0.116316}, {1.575856,0.566488}, {0.235497,-0.285233}, {-0.831974,-0.236821}, {-0.817600,1.539514}, {-0.485036,0.295694}, {-1.575127,0.044856}, {0.181119,0.710358}, {-0.056993,-0.238132}, {0.091941,0.490274}, {0.339556,1.201109}, {-1.241956,1.033717}, {-0.653462,-1.105622}, {-0.351127,0.017888}, {-0.240821,-0.475748}, {-0.456277,0.573568}, {-0.419904,-1.058360}, {0.052939,-0.291801}, {-0.975645,0.317124}, {-0.277843,1.312881}, {-0.980414,-0.689515}, {-0.328660,0.125761}, {0.002261,0.540834}, {0.289127,-0.906076}, {-0.583909,0.091516}, {-0.105622,0.534255}, {0.498881,-1.752227}, {-0.372611,-0.300411}, {0.805897,1.430785}, {1.128088,-0.203904}, {-0.080504,-0.025175}, {0.109551,0.071366}, {-1.018953,0.755951}, {0.666092,0.991101}, {0.947680,-0.016049}, {2.030778,-1.308712}, {-0.536376,-0.093177}, {-0.979295,-0.287391}, {-0.720582,-0.666863}, {-1.329793,-0.141597}, {1.120330,0.296339}, {-0.683593,-1.193189}, {-0.890008,-0.339326}, {0.108370,0.364104}, {0.761248,0.181091}, {0.852765,1.409425}, {-0.232370,1.404779}, {-0.951683,-0.337612}, {-2.093378,-0.985796}, {-0.708897,0.096981}, {-0.369032,-0.081507}, {0.668578,0.410819}, {-1.449941,1.474340}, {-0.077746,-0.719201}, {-0.522293,-0.151163}, {-0.458998,-0.377810}, {-0.371088,-0.656185}, {-0.692675,0.536793}, {-0.856001,0.770941}, {0.787694,-0.616170}, {0.666946,-1.360541}, {0.649554,-0.692776}, {-1.149561,-0.060654}, {-1.017696,-1.553694}, {0.594676,-0.308209}, {-0.414485,0.300271}, {0.914811,-1.373936}, {0.593489,-0.368620}, {-0.414122,0.825231}, {-0.946035,-0.712426}, {-0.027283,-0.856090}, {0.824075,-0.537887}, {-0.670569,-1.076879}, {1.250980,-0.782317}, {0.225270,-0.377829}, {0.977247,1.198198}, {-0.255252,0.458703}, {0.859036,2.174261}, {-0.392631,0.739821}, {-0.219855,0.169863}, {0.412017,0.686208}, {0.191456,0.548503}, {0.762538,-0.306864}, {-0.618637,-0.991173}, {-0.286232,-1.189813}, {0.409556,0.705714}, {0.604650,-0.285883}, {-0.037553,-0.284563}, {-1.752832,0.885716}, {0.662262,0.178240}, {-0.668130,-0.398971}, {2.333495,-0.030369}, {0.431917,-0.014914}, {-0.339628,-0.075137}, {0.979382,0.620025}, {0.024547,-0.548793}, {-1.198934,0.571377}, {0.089618,0.417351}, {-0.696845,0.721676}, {0.227661,-0.375026}, {-0.168858,-0.092691}, {0.407953,-0.657836}, {0.508885,-0.088453}, {0.062845,-0.270386}, {-0.087209,-0.221708}, {-1.042531,0.650343}, {-0.637231,0.804756}, {-0.316632,0.521297}, {-0.284839,0.380972}, {0.756041,0.089078}, {0.367135,-0.050171}, {0.673788,-0.328597}, {-0.475960,1.277835}, {0.050328,-0.406764}, {-1.253687,0.528663}, {1.121088,-0.753455}, {0.576634,0.414912}, {1.154879,-0.107302}, {0.079544,0.382389}, {0.259826,-0.087435}, {1.064498,0.528704}, {-0.698877,-1.021912}, {1.273747,0.566923}, {-0.151776,1.226809}, {-0.116914,0.456137}, {-0.758612,0.838042}, {0.174788,0.207897}, {-1.054368,-0.062673}, {0.303920,0.414262}, {0.444540,-1.599911}, {-0.263430,0.748950}, {0.673118,0.295838}, {0.558813,-1.015097}, {-0.182189,0.099479}, {-0.290746,-0.204886}, {-0.429349,-0.670610}, {-1.054783,-0.017990}, {0.438704,1.112183}, {1.172061,0.466392}, {0.572237,0.341187}, {0.617213,-0.632464}, {0.122765,0.496952}, {-0.366828,0.476781}, {0.023184,0.226708}, {-0.410027,-1.070367}, {-1.411039,0.798430}, {0.635652,-1.202681}, {1.131089,-0.782675}, {0.310544,0.006326}, {0.525788,-1.242739}, {0.347988,0.586708}, {-1.343655,1.265193}, {0.573006,0.820707}, {-0.145902,-0.883328}, {0.129940,0.855404}, {0.877836,-0.239222}, {-0.451520,-0.558787}, {0.326841,-1.498916}, {-0.472055,-0.088465}, {0.420626,0.747670}, {0.365096,-0.779117}, {0.779887,-1.025049}, {0.268789,0.955912}, {0.427846,0.416261}, {0.351268,1.579771}, {0.085293,-1.166684}, {0.108972,-1.064624}, {-0.566448,-0.214947}, {-0.132223,-0.361406}, {-0.136036,0.118975}, {0.427266,0.217945}, {0.189904,-0.598306}, {0.020599,0.225899}, {-1.566003,0.465088}, {-0.151238,-0.690998}, {0.644967,-1.305515}, {-1.005521,0.212625}, {-0.201626,0.124733}, {0.712140,0.508869}, {0.934268,0.418607}, {1.930008,-0.584650}, {-0.667467,1.471271}, {0.925854,0.010608}, {-0.540775,-0.332686}, {-1.356718,0.347897}, {1.008829,0.621137}, {1.266918,-0.344629}, {-1.128488,-0.418674}, {0.157524,0.139078}, {-0.080731,-1.515912}, {0.138870,1.536295}, {0.096079,-0.738967}, {0.055822,0.790336}, {0.775557,-0.154829}, {-0.762535,-0.407425}, {-1.166020,0.176498}, {-0.001453,0.874596}, {0.086572,0.749436}, {-0.497314,1.108861}, {1.253067,0.882093}, {0.043620,0.847310}, {1.124285,0.394422}, {-0.028010,-0.424847}, {0.502442,-0.944102}, {-0.624064,-0.633988}, {-1.314388,-0.197072}, {-0.878207,1.312132}, {0.164886,-0.109184}, {-1.477262,-0.055125}, {-0.030013,-0.699816}, {-1.298661,1.409137} };codec2-1.0.1/src/octave.c000066400000000000000000000104131412132000500150470ustar00rootroot00000000000000/*---------------------------------------------------------------------------*\ FILE........: octave.c AUTHOR......: David Rowe DATE CREATED: April 28 2012 Functions to save C arrays in GNU Octave matrix format. The output text file can be directly read into Octave using "load filename". \*---------------------------------------------------------------------------*/ /* Copyright (C) 2012 David Rowe All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 2.1, as published by the Free Software Foundation. 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 Lesser General Public License along with this program; if not, see . */ #include #include #include "octave.h" #ifdef ARM_MATH_CM4 #include "Trace.h" #endif #define OCTAVE_BUFSIZE 2048 void flush_buffer(FILE* f, char* buffer,size_t* buf_idx_ptr) { #ifdef ARM_MATH_CM4 trace_write(buffer,*buf_idx_ptr); #else fwrite(buffer,*buf_idx_ptr,1,f); #endif *buf_idx_ptr = 0; } void handle_buffer(FILE* f, char* buffer,const size_t max_buf, size_t* buf_idx_ptr, size_t l) { *buf_idx_ptr += l; if (*buf_idx_ptr > max_buf - 64) { flush_buffer(f, buffer,buf_idx_ptr); } } signed int printf_buffer(FILE* f, char* buffer,const size_t max_buf, size_t* buf_idx_ptr, const char *pFormat, ...) { va_list ap; signed int rc; va_start(ap, pFormat); rc = vsnprintf(&buffer[*buf_idx_ptr], max_buf - *buf_idx_ptr, pFormat, ap); va_end(ap); if (rc>0) { handle_buffer(f, buffer,max_buf,buf_idx_ptr,rc); } return rc; } void printf_header(FILE* f, char* buffer,const size_t max_buf, size_t* buf_idx_ptr, const char *name, const char *dtype, int rows, int cols, int isFloat) { #ifdef ARM_MATH_CM4 printf_buffer(f, buffer, OCTAVE_BUFSIZE, buf_idx_ptr, "# hex: %s\n", isFloat?"true":"false"); #endif printf_buffer(f, buffer, OCTAVE_BUFSIZE, buf_idx_ptr, "# name: %s\n", name); printf_buffer(f, buffer, OCTAVE_BUFSIZE, buf_idx_ptr, "# type: %s\n",dtype); printf_buffer(f, buffer, OCTAVE_BUFSIZE, buf_idx_ptr, "# rows: %d\n", rows); printf_buffer(f, buffer, OCTAVE_BUFSIZE, buf_idx_ptr, "# columns: %d\n", cols); } void octave_save_int(FILE *f, char name[], int data[], int rows, int cols) { int r,c; char buffer[OCTAVE_BUFSIZE]; size_t buf_idx = 0; printf_header(f, buffer, OCTAVE_BUFSIZE, &buf_idx, name, "matrix", rows, cols, 0); for(r=0; r. */ #ifndef __OCTAVE__ #define __OCTAVE__ #include "comp.h" void octave_save_int(FILE *f, char name[], int data[], int rows, int cols); void octave_save_float(FILE *f, char name[], float data[], int rows, int cols, int col_len); void octave_save_complex(FILE *f, char name[], COMP data[], int rows, int cols, int col_len); #endif codec2-1.0.1/src/ofdm.c000066400000000000000000002414111412132000500145170ustar00rootroot00000000000000/*---------------------------------------------------------------------------*\ FILE........: ofdm.c AUTHORS.....: David Rowe & Steve Sampson DATE CREATED: June 2017 A Library of functions that implement a PSK OFDM modem, C port of the Octave functions in ofdm_lib.m \*---------------------------------------------------------------------------*/ /* Copyright (C) 2017-2020 David Rowe All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 2.1, as published by the Free Software Foundation. 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 Lesser General Public License along with this program; if not, see . */ #include #include #include #include #include #include #include #include #include "comp.h" #include "ofdm_internal.h" #include "codec2_ofdm.h" #include "filter.h" #include "wval.h" #include "debug_alloc.h" #include "machdep.h" #ifdef __EMBEDDED__ #include "arm_math.h" #endif /* __EMBEDDED_ */ /* Static Prototypes */ static float cnormf(complex float); static void allocate_tx_bpf(struct OFDM *); static void deallocate_tx_bpf(struct OFDM *); static void dft(struct OFDM *, complex float *, complex float *); static void idft(struct OFDM *, complex float *, complex float *); static complex float vector_sum(complex float *, int); static int est_timing(struct OFDM *, complex float *, int, int, float *, int *, int); static float est_freq_offset_pilot_corr(struct OFDM *, complex float *, int, int); static int ofdm_sync_search_core(struct OFDM *); static void ofdm_demod_core(struct OFDM *, int *); /* Defines */ #define max( a, b ) ( ((a) > (b)) ? (a) : (b) ) #define min( a, b ) ( ((a) < (b)) ? (a) : (b) ) /* * QPSK Quadrant bit-pair values - Gray Coded */ static const complex float qpsk[] = { 1.0f + 0.0f * I, 0.0f + 1.0f * I, 0.0f - 1.0f * I, -1.0f + 0.0f * I }; static const complex float qam16[] = { 1.0f + 1.0f * I, 1.0f + 3.0f * I, 3.0f + 1.0f * I, 3.0f + 3.0f * I, 1.0f - 1.0f * I, 1.0f - 3.0f * I, 3.0f - 1.0f * I, 3.0f - 3.0f * I, -1.0f + 1.0f * I, -1.0f + 3.0f * I, -3.0f + 1.0f * I, -3.0f + 3.0f * I, -1.0f - 1.0f * I, -1.0f - 3.0f * I, -3.0f - 1.0f * I, -3.0f - 3.0f * I }; /* * These pilots are compatible with Octave version */ static const int8_t pilotvalues[] = { -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 }; /* Local Functions ----------------------------------------------------------*/ static float cnormf(complex float val) { float realf = crealf(val); float imagf = cimagf(val); return realf * realf + imagf * imagf; } /* * Gray coded QPSK modulation function */ complex float qpsk_mod(int *bits) { return qpsk[(bits[1] << 1) | bits[0]]; } /* * Gray coded QPSK demodulation function * * 01 | 00 * ---+--- * 11 | 10 */ void qpsk_demod(complex float symbol, int *bits) { complex float rotate = symbol * cmplx(ROT45); bits[0] = crealf(rotate) <= 0.0f; bits[1] = cimagf(rotate) <= 0.0f; } complex float qam16_mod(int *bits) { return qam16[ (bits[3] << 3) | (bits[2] << 2) | (bits[1] << 1) | bits[0] ]; } void qam16_demod(complex float symbol, int *bits) { float dist[16]; int i; for (i = 0; i < 16; i++) { dist[i] = cnormf(symbol - qam16[i]); } int row = 0; float mdist = 10000.0f; for (i = 0; i < 16; i++) { if (dist[i] < mdist) { mdist = dist[i]; row = i; } } bits[0] = row & 1; bits[1] = (row >> 1) & 1; bits[2] = (row >> 2) & 1; bits[3] = (row >> 3) & 1; } /* * ------------ * ofdm_create * ------------ * * Returns OFDM data structure on success * Return NULL on fail * * If you want the defaults, call this with config structure * and the NC setting to 0. This will fill the structure with * default values of the original OFDM modem. */ struct OFDM *ofdm_create(const struct OFDM_CONFIG *config) { struct OFDM *ofdm; float tval; int i, j; ofdm = (struct OFDM *) CALLOC(1, sizeof (struct OFDM)); assert(ofdm != NULL); if (config == NULL) { /* Fill in default values */ strcpy(ofdm->mode, "700D"); ofdm->nc = 17; /* Number of carriers */ ofdm->np = 1; ofdm->ns = 8; /* Number of Symbols per modem frame */ ofdm->ts = 0.018f; ofdm->rs = (1.0f / ofdm->ts); /* Modulation Symbol Rate */ ofdm->tcp = .002f; /* Cyclic Prefix duration */ ofdm->tx_centre = 1500.0f; /* TX Carrier Frequency */ ofdm->rx_centre = 1500.0f; /* RX Carrier Frequency */ ofdm->fs = 8000.0f; /* Sample rate */ ofdm->ntxtbits = 4; ofdm->bps = 2; /* Bits per Symbol */ ofdm->nuwbits = 5 * ofdm->bps; /* default is 5 symbols of Unique Word bits */ ofdm->bad_uw_errors = 3; ofdm->ftwindowwidth = 32; ofdm->timing_mx_thresh = 0.30f; ofdm->state_machine = "voice1"; ofdm->edge_pilots = 1; ofdm->codename = "HRA_112_112"; ofdm->amp_est_mode = 0; ofdm->tx_bpf_en = true; ofdm->amp_scale = 245E3; ofdm->clip_gain1 = 2.0; ofdm->clip_gain2 = 0.9; ofdm->clip_en = false; ofdm->foff_limiter = false; ofdm->data_mode = ""; memset(ofdm->tx_uw, 0, ofdm->nuwbits); } else { /* Use the users values */ strcpy(ofdm->mode, config->mode); ofdm->nc = config->nc; /* Number of carriers */ ofdm->np = config->np; /* Number of modem Frames per Packet */ ofdm->ns = config->ns; /* Number of Symbol frames */ ofdm->bps = config->bps; /* Bits per Symbol */ ofdm->ts = config->ts; ofdm->tcp = config->tcp; /* Cyclic Prefix duration */ ofdm->tx_centre = config->tx_centre; /* TX Centre Audio Frequency */ ofdm->rx_centre = config->rx_centre; /* RX Centre Audio Frequency */ ofdm->fs = config->fs; /* Sample Frequency */ ofdm->rs = config->rs; /* Symbol Rate */ ofdm->ntxtbits = config->txtbits; ofdm->nuwbits = config->nuwbits; ofdm->bad_uw_errors = config->bad_uw_errors; ofdm->ftwindowwidth = config->ftwindowwidth; ofdm->timing_mx_thresh = config->timing_mx_thresh; ofdm->state_machine = config->state_machine; ofdm->edge_pilots = config->edge_pilots; ofdm->codename = config->codename; ofdm->amp_est_mode = config->amp_est_mode; ofdm->tx_bpf_en = config->tx_bpf_en; ofdm->foff_limiter = config->foff_limiter; ofdm->amp_scale = config->amp_scale; ofdm->clip_gain1 = config->clip_gain1; ofdm->clip_gain2 = config->clip_gain2; ofdm->clip_en = config->clip_en; memcpy(ofdm->tx_uw, config->tx_uw, ofdm->nuwbits); ofdm->data_mode = config->data_mode; } ofdm->rs = (1.0f / ofdm->ts); /* Modulation Symbol Rate */ ofdm->m = (int) (ofdm->fs / ofdm->rs); /* 700D: 144 */ ofdm->ncp = (int) (ofdm->tcp * ofdm->fs); /* 700D: 16 */ ofdm->inv_m = (1.0f / (float) ofdm->m); /* basic sanity checks */ assert((int)floorf(ofdm->fs / ofdm->rs) == ofdm->m); assert(!strcmp(ofdm->state_machine, "voice1") || !strcmp(ofdm->state_machine, "data") || !strcmp(ofdm->state_machine, "voice2")); assert(ofdm->nuwbits <= MAX_UW_BITS); /* Copy constants into states */ strcpy(ofdm->config.mode, ofdm->mode); ofdm->config.tx_centre = ofdm->tx_centre; ofdm->config.rx_centre = ofdm->rx_centre; ofdm->config.fs = ofdm->fs; ofdm->config.rs = ofdm->rs; ofdm->config.ts = ofdm->ts; ofdm->config.tcp = ofdm->tcp; ofdm->config.timing_mx_thresh = ofdm->timing_mx_thresh; ofdm->config.nc = ofdm->nc; ofdm->config.ns = ofdm->ns; ofdm->config.np = ofdm->np; ofdm->config.bps = ofdm->bps; ofdm->config.nuwbits = ofdm->nuwbits; ofdm->config.txtbits = ofdm->ntxtbits; ofdm->config.bad_uw_errors = ofdm->bad_uw_errors; ofdm->config.ftwindowwidth = ofdm->ftwindowwidth; ofdm->config.state_machine = ofdm->state_machine; ofdm->config.edge_pilots = ofdm->edge_pilots; ofdm->config.codename = ofdm->codename; ofdm->config.amp_est_mode = ofdm->amp_est_mode; ofdm->config.tx_bpf_en = ofdm->tx_bpf_en; ofdm->config.foff_limiter = ofdm->foff_limiter; ofdm->config.amp_scale = ofdm->amp_scale; ofdm->config.clip_gain1 = ofdm->clip_gain1; ofdm->config.clip_gain2 = ofdm->clip_gain2; ofdm->config.clip_en = ofdm->clip_en; memcpy(ofdm->config.tx_uw, ofdm->tx_uw, ofdm->nuwbits); ofdm->config.data_mode = ofdm->data_mode; /* Calculate sizes from config param */ ofdm->bitsperframe = (ofdm->ns - 1) * (ofdm->nc * ofdm->bps); // 238 for nc = 17 ofdm->bitsperpacket = ofdm->np * ofdm->bitsperframe; ofdm->tpacket = (float)(ofdm->np * ofdm->ns) * (ofdm->tcp + ofdm->ts); /* time for one packet */ ofdm->rowsperframe = ofdm->bitsperframe / (ofdm->nc * ofdm->bps); ofdm->samplespersymbol = (ofdm->m + ofdm->ncp); ofdm->samplesperframe = ofdm->ns * ofdm->samplespersymbol; if (*ofdm->data_mode != 0) // in burst data modes we skip ahead one frame to jump over preamble ofdm->max_samplesperframe = 2*ofdm->samplesperframe; else ofdm->max_samplesperframe = ofdm->samplesperframe + (ofdm->samplespersymbol / 4); /* extra storage at start of rxbuf to allow us to step back in time */ if (strlen(ofdm->data_mode)) ofdm->nrxbufhistory = (ofdm->np+2)*ofdm->samplesperframe; else ofdm->nrxbufhistory = 0; ofdm->rxbufst = ofdm->nrxbufhistory; ofdm->nrxbufmin = 3*ofdm->samplesperframe + 3*ofdm->samplespersymbol; ofdm->nrxbuf = ofdm->nrxbufhistory + ofdm->nrxbufmin; ofdm->pilot_samples = (complex float *) MALLOC(sizeof (complex float) * ofdm->samplespersymbol); assert(ofdm->pilot_samples != NULL); ofdm->rxbuf = (complex float *) MALLOC(sizeof (complex float) * ofdm->nrxbuf); assert(ofdm->rxbuf != NULL); for(int i=0; inrxbuf; i++) ofdm->rxbuf[i] = 0; ofdm->pilots = (complex float *) MALLOC(sizeof (complex float) * (ofdm->nc + 2)); assert(ofdm->pilots != NULL); /* * rx_sym is a 2D array of variable size * * allocate rx_sym row storage. It is a pointer to a pointer */ ofdm->rx_sym = MALLOC(sizeof (complex float) * (ofdm->ns + 3)); assert(ofdm->rx_sym != NULL); /* allocate rx_sym column storage */ for (i = 0; i < (ofdm->ns + 3); i++) { ofdm->rx_sym[i] = (complex float *) MALLOC(sizeof(complex float) * (ofdm->nc + 2)); assert(ofdm->rx_sym[i] != NULL); } /* The rest of these are 1D arrays of variable size */ ofdm->rx_np = MALLOC(sizeof (complex float) * (ofdm->rowsperframe * ofdm->nc)); assert(ofdm->rx_np != NULL); ofdm->rx_amp = MALLOC(sizeof (float) * (ofdm->rowsperframe * ofdm->nc)); assert(ofdm->rx_amp != NULL); ofdm->aphase_est_pilot_log = MALLOC(sizeof (float) * (ofdm->rowsperframe * ofdm->nc)); assert(ofdm->aphase_est_pilot_log != NULL); /* Null pointers to unallocated buffers */ ofdm->tx_bpf = NULL; if (ofdm->tx_bpf_en) allocate_tx_bpf(ofdm); /* store complex BPSK pilot symbols */ assert(sizeof (pilotvalues) >= (ofdm->nc + 2) * sizeof (int8_t)); /* There are only 64 pilot values available */ for (i = 0; i < (ofdm->nc + 2); i++) { ofdm->pilots[i] = ((float) pilotvalues[i]) + 0.0f * I; } if (ofdm->edge_pilots == 0) { ofdm->pilots[0] = ofdm->pilots[ofdm->nc + 1] = 0.0f; } /* carrier tables for up and down conversion */ ofdm->doc = (TAU / (ofdm->fs / ofdm->rs)); tval = ((float) ofdm->nc / 2.0f); ofdm->tx_nlower = roundf((ofdm->tx_centre / ofdm->rs) - tval) - 1.0f; ofdm->rx_nlower = roundf((ofdm->rx_centre / ofdm->rs) - tval) - 1.0f; for (i = 0; i < ofdm->nrxbuf; i++) { ofdm->rxbuf[i] = 0.0f; } for (i = 0; i < (ofdm->ns + 3); i++) { for (j = 0; j < (ofdm->nc + 2); j++) { ofdm->rx_sym[i][j] = 0.0f; } } for (i = 0; i < ofdm->rowsperframe * ofdm->nc; i++) { ofdm->rx_np[i] = 0.0f; } for (i = 0; i < ofdm->rowsperframe; i++) { for (j = 0; j < ofdm->nc; j++) { ofdm->aphase_est_pilot_log[ofdm->nc * i + j] = 0.0f; ofdm->rx_amp[ofdm->nc * i + j] = 0.0f; } } /* default settings of options and states */ ofdm->verbose = 0; ofdm->timing_en = true; ofdm->foff_est_en = true; ofdm->phase_est_en = true; ofdm->phase_est_bandwidth = high_bw; ofdm->phase_est_bandwidth_mode = AUTO_PHASE_EST; ofdm->packetsperburst = 0; // default: never lose syn in raw data mode ofdm->coarse_foff_est_hz = 0.0f; ofdm->foff_est_gain = 0.1f; ofdm->foff_est_hz = 0.0f; ofdm->sample_point = 0; ofdm->timing_est = 0; ofdm->timing_valid = 0; ofdm->timing_mx = 0.0f; ofdm->nin = ofdm->samplesperframe; ofdm->mean_amp = 0.0f; ofdm->foff_metric = 0.0f; /* * Unique Word symbol placement. Note we need to group the UW * bits so they fit into symbols. The LDPC decoder works on * symbols so we can't break up any symbols into UW/payload bits. */ ofdm->uw_ind = MALLOC(sizeof (int) * ofdm->nuwbits); assert(ofdm->uw_ind != NULL); ofdm->uw_ind_sym = MALLOC(sizeof (int) * (ofdm->nuwbits / ofdm->bps)); assert(ofdm->uw_ind_sym != NULL); /* * The Unique Word is placed in different indexes based on * the number of carriers requested. */ int nuwsyms = ofdm->nuwbits / ofdm->bps; int Ndatasymsperframe = (ofdm->ns-1)*ofdm->nc; int uw_step = ofdm->nc + 1; // default step size int last_sym = floorf(nuwsyms*uw_step/ofdm->bps); if (last_sym >= ofdm->np*Ndatasymsperframe) uw_step = ofdm->nc - 1; // try a different step last_sym = floorf(nuwsyms*uw_step/ofdm->bps); assert(last_sym < ofdm->np*Ndatasymsperframe);// bail if we still can't fit them all for (i = 0, j = 0; i < nuwsyms; i++, j += ofdm->bps) { int val = floorf((i + 1) * uw_step / ofdm->bps); ofdm->uw_ind_sym[i] = val; // symbol index for (int b = 0; b < ofdm->bps ; b++) { ofdm->uw_ind[j + b] = (val * ofdm->bps) + b; } } // work out how many frames UW is spread over int symsperframe = ofdm->bitsperframe / ofdm->bps; ofdm->nuwframes = (int) ceilf((float)ofdm->uw_ind_sym[nuwsyms-1]/symsperframe); ofdm->tx_uw_syms = MALLOC(sizeof (complex float) * (ofdm->nuwbits / ofdm->bps)); assert(ofdm->tx_uw_syms != NULL); assert(ofdm->bps == 2); // TODO generalise for (int s = 0; s < (ofdm->nuwbits / ofdm->bps); s++) { int dibit[2]; dibit[1] = ofdm->tx_uw[2*s]; dibit[0] = ofdm->tx_uw[2*s+1]; ofdm->tx_uw_syms[s] = qpsk_mod(dibit); } /* sync state machine */ ofdm->sync_state = search; ofdm->last_sync_state = search; ofdm->uw_errors = 0; ofdm->sync_counter = 0; ofdm->frame_count = 0; ofdm->sync_start = false; ofdm->sync_end = false; ofdm->sync_mode = autosync; ofdm->modem_frame = 0; /* create the OFDM pilot time-domain waveform */ complex float *temp = MALLOC(sizeof (complex float) * ofdm->m); assert(temp != NULL); idft(ofdm, temp, ofdm->pilots); /* * pilot_samples is 160 samples, but timing and freq offset est * were found by experiment to work better without a cyclic * prefix, so we uses zeroes instead. */ /* zero out Cyclic Prefix (CP) time-domain values */ for (i = 0; i < ofdm->ncp; i++) { ofdm->pilot_samples[i] = 0.0f; } /* Now copy the whole thing after the above */ for (i = ofdm->ncp, j = 0; j < ofdm->m; i++, j++) { ofdm->pilot_samples[i] = temp[j]; } FREE(temp); /* calculate constant used to normalise timing correlation maximum */ float acc = 0.0f; for (i = 0; i < ofdm->samplespersymbol; i++) { acc += cnormf(ofdm->pilot_samples[i]); } ofdm->timing_norm = ofdm->samplespersymbol * acc; ofdm->clock_offset_counter = 0; ofdm->dpsk_en = false; if (strlen(ofdm->data_mode)) { ofdm->tx_preamble = (COMP*)malloc(sizeof(COMP)*ofdm->samplesperframe); assert(ofdm->tx_preamble != NULL); ofdm_generate_preamble(ofdm, ofdm->tx_preamble, 2); ofdm->tx_postamble = (COMP*)malloc(sizeof(COMP)*ofdm->samplesperframe); assert(ofdm->tx_postamble != NULL); ofdm_generate_preamble(ofdm, ofdm->tx_postamble, 3); } ofdm->postambledetectoren = !strcmp(ofdm->data_mode,"burst"); return ofdm; /* Success */ } static void allocate_tx_bpf(struct OFDM *ofdm) { ofdm->tx_bpf = MALLOC(sizeof(struct quisk_cfFilter)); assert(ofdm->tx_bpf != NULL); /* Transmit bandpass filter; complex coefficients, center frequency */ if (!strcmp(ofdm->mode, "700D")) { quisk_filt_cfInit(ofdm->tx_bpf, filtP650S900, sizeof (filtP650S900) / sizeof (float)); quisk_cfTune(ofdm->tx_bpf, ofdm->tx_centre / ofdm->fs); } else if (!strcmp(ofdm->mode, "700E")) { quisk_filt_cfInit(ofdm->tx_bpf, filtP900S1100, sizeof (filtP900S1100) / sizeof (float)); quisk_cfTune(ofdm->tx_bpf, ofdm->tx_centre / ofdm->fs); } else if (!strcmp(ofdm->mode, "datac0") || !strcmp(ofdm->mode, "datac3")) { quisk_filt_cfInit(ofdm->tx_bpf, filtP400S600, sizeof (filtP400S600) / sizeof (float)); quisk_cfTune(ofdm->tx_bpf, ofdm->tx_centre / ofdm->fs); } else assert(0); } static void deallocate_tx_bpf(struct OFDM *ofdm) { assert(ofdm->tx_bpf != NULL); quisk_filt_destroy(ofdm->tx_bpf); FREE(ofdm->tx_bpf); ofdm->tx_bpf = NULL; } void ofdm_destroy(struct OFDM *ofdm) { int i; if (strlen(ofdm->data_mode)) { free(ofdm->tx_preamble); free(ofdm->tx_postamble); } if (ofdm->tx_bpf) { deallocate_tx_bpf(ofdm); } FREE(ofdm->pilot_samples); FREE(ofdm->rxbuf); FREE(ofdm->pilots); for (i = 0; i < (ofdm->ns + 3); i++) { /* 2D array */ FREE(ofdm->rx_sym[i]); } FREE(ofdm->rx_sym); FREE(ofdm->rx_np); FREE(ofdm->rx_amp); FREE(ofdm->aphase_est_pilot_log); FREE(ofdm->tx_uw_syms); FREE(ofdm->uw_ind); FREE(ofdm->uw_ind_sym); FREE(ofdm); } /* * Convert frequency domain into time domain * * This algorithm was optimized for speed */ static void idft(struct OFDM *ofdm, complex float *result, complex float *vector) { int row, col; result[0] = 0.0f; for (col = 0; col < (ofdm->nc + 2); col++) { result[0] += vector[col]; // cexp(j0) == 1 } result[0] *= ofdm->inv_m; for (row = 1; row < ofdm->m; row++) { complex float c = cmplx(ofdm->tx_nlower * ofdm->doc *row); complex float delta = cmplx(ofdm->doc * row); result[row] = 0.0f; for (col = 0; col < (ofdm->nc + 2); col++) { result[row] += (vector[col] * c); c *= delta; } result[row] *= ofdm->inv_m; } } /* * Convert time domain into frequency domain * * This algorithm was optimized for speed */ static void dft(struct OFDM *ofdm, complex float *result, complex float *vector) { int row, col; for (col = 0; col < (ofdm->nc + 2); col++) { result[col] = vector[0]; // conj(cexp(j0)) == 1 } for (col = 0; col < (ofdm->nc + 2); col++) { float tval = (ofdm->rx_nlower + col) * ofdm->doc; complex float c = cmplxconj(tval); complex float delta = c; for (row = 1; row < ofdm->m; row++) { result[col] += (vector[row] * c); c *= delta; } } } static complex float vector_sum(complex float *a, int num_elements) { complex float sum = 0.0f; int i; for (i = 0; i < num_elements; i++) { sum += a[i]; } return sum; } /* * Correlates the OFDM pilot symbol samples with a window of received * samples to determine the most likely timing offset. Combines two * frames pilots so we need at least Nsamperframe+M+Ncp samples in rx. * * Can be used for acquisition (coarse timing), and fine timing. * * Breaks when freq offset approaches +/- symbol rate (e.g * +/- 25 Hz for 700D). */ static int est_timing(struct OFDM *ofdm, complex float *rx, int length, int fcoarse, float *timing_mx, int *timing_valid, int step) { complex float corr_st, corr_en; int Ncorr = length - (ofdm->samplesperframe + ofdm->samplespersymbol); float corr[Ncorr]; int i, j; float acc = 0.0f; for (i = 0; i < length; i++) { acc += cnormf(rx[i]); } float av_level = 1.0f/(2.0f * sqrtf(ofdm->timing_norm * acc / length) + 1E-12f); /* precompute the freq shift multiplied by pilot samples outside of main loop */ PROFILE_VAR(wvecpilot); PROFILE_SAMPLE(wvecpilot); complex float wvec_pilot[ofdm->samplespersymbol]; switch(fcoarse) { case -40: for (j = 0; j < ofdm->samplespersymbol; j++) wvec_pilot[j] = conjf(ofdm_wval[j]*ofdm->pilot_samples[j]); break; case 0: for (j = 0; j < ofdm->samplespersymbol; j++) wvec_pilot[j] = conjf(ofdm->pilot_samples[j]); break; case 40: for (j = 0; j < ofdm->samplespersymbol; j++) wvec_pilot[j] = ofdm_wval[j]*conjf(ofdm->pilot_samples[j]); break; default: assert(0); } /* use of __REAL__ provides a speed in increase of 10ms/frame during acquisition, however complex is fast enough for real time operation */ #if defined(__EMBEDDED__) && defined(__REAL__) float rx_real[length]; float wvec_pilot_real[ofdm->samplespersymbol]; float wvec_pilot_imag[ofdm->samplespersymbol]; for (i = 0; i < length; i++) { rx_real[i] = crealf(rx[i]); } for (i = 0; i < ofdm->samplespersymbol; i++) { wvec_pilot_real[i] = crealf(wvec_pilot[i]); wvec_pilot_imag[i] = cimagf(wvec_pilot[i]); } #endif PROFILE_SAMPLE_AND_LOG2(wvecpilot, " wvecpilot"); PROFILE_VAR(corr_start); PROFILE_SAMPLE(corr_start); for (i = 0; i < Ncorr; i += step) { corr_st = 0.0f; corr_en = 0.0f; #ifdef __EMBEDDED__ #ifdef __REAL__ float re,im; arm_dot_prod_f32(&rx_real[i], wvec_pilot_real, ofdm->samplespersymbol, &re); arm_dot_prod_f32(&rx_real[i], wvec_pilot_imag, ofdm->samplespersymbol, &im); corr_st = re + im * I; arm_dot_prod_f32(&rx_real[i+ ofdm->samplesperframe], wvec_pilot_real, ofdm->samplespersymbol, &re); arm_dot_prod_f32(&rx_real[i+ ofdm->samplesperframe], wvec_pilot_imag, ofdm->samplespersymbol, &im); corr_en = re + im * I; #else float re,im; arm_cmplx_dot_prod_f32((float*)&rx[i], (float*)wvec_pilot, ofdm->samplespersymbol, &re, &im); corr_st = re + im * I; arm_cmplx_dot_prod_f32((float*)&rx[i+ ofdm->samplesperframe], (float*)wvec_pilot, ofdm->samplespersymbol, &re, &im); corr_en = re + im * I; #endif #else for (j = 0; j < ofdm->samplespersymbol; j++) { int ind = i + j; corr_st = corr_st + (rx[ind ] * wvec_pilot[j]); corr_en = corr_en + (rx[ind + ofdm->samplesperframe] * wvec_pilot[j]); } #endif corr[i] = (cabsf(corr_st) + cabsf(corr_en)) * av_level; } PROFILE_SAMPLE_AND_LOG2(corr_start, " corr"); /* find the max magnitude and its index */ int timing_est = 0; *timing_mx = 0.0f; for (i = 0; i < Ncorr; i+=step) { if (corr[i] > *timing_mx) { *timing_mx = corr[i]; timing_est = i; } } // only declare timing valid if there are enough samples in rxbuf to demodulate a frame *timing_valid = (cabsf(rx[timing_est]) > 0.0) && (*timing_mx > ofdm->timing_mx_thresh); if (ofdm->verbose > 2) { fprintf(stderr, " av_level: %f max: %f timing_est: %d timing_valid: %d\n", (double) av_level, (double) *timing_mx, timing_est, *timing_valid); } return timing_est; } /* * Determines frequency offset at current timing estimate, used for * coarse freq offset estimation during acquisition. Works up to +/- * the symbol rate, e.g. +/- 25Hz for the FreeDV 700D configuration. */ static float est_freq_offset_pilot_corr(struct OFDM *ofdm, complex float *rx, int timing_est, int fcoarse) { int st = -20; int en = 20; float foff_est = 0.0f; float Cabs_max = 0.0f; /* precompute the freq shift multiplied by pilot samples outside of main loop */ complex float wvec_pilot[ofdm->samplespersymbol]; int j; switch(fcoarse) { case -40: for (j = 0; j < ofdm->samplespersymbol; j++) wvec_pilot[j] = conjf(ofdm_wval[j]*ofdm->pilot_samples[j]); break; case 0: for (j = 0; j < ofdm->samplespersymbol; j++) wvec_pilot[j] = conjf(ofdm->pilot_samples[j]); break; case 40: for (j = 0; j < ofdm->samplespersymbol; j++) wvec_pilot[j] = ofdm_wval[j]*conjf(ofdm->pilot_samples[j]); break; default: assert(0); } // sample sum of DFT magnitude of correlated signals at each freq offset and look for peak for (int f = st; f < en; f++) { complex float corr_st = 0.0f; complex float corr_en = 0.0f; float tmp = TAU * f / ofdm->fs; complex float delta = cmplxconj(tmp); complex float w = cmplxconj(0.0f); int i; for (i = 0; i < ofdm->samplespersymbol; i++) { // "mix" down (correlate) the pilot sequences from frame with 0 Hz offset pilot samples complex float csam = wvec_pilot[i] * w; int est = timing_est + i; corr_st += rx[est ] * csam; corr_en += rx[est + ofdm->samplesperframe] * csam; w = w * delta; } float Cabs = cabsf(corr_st) + cabsf(corr_en); if (Cabs > Cabs_max) { Cabs_max = Cabs; foff_est = f; } } ofdm->foff_metric = 0.0f; // not used in this version of freq est algorithm if (ofdm->verbose > 2) { fprintf(stderr, "cabs_max: %f foff_est: %f\n", (double) Cabs_max, (double) foff_est); } return foff_est; } /* * ---------------------------------------------- * ofdm_txframe - modulates one frame of symbols * ---------------------------------------------- */ void ofdm_txframe(struct OFDM *ofdm, complex float *tx, complex float *tx_sym_lin) { complex float aframe[ofdm->np * ofdm->ns][ofdm->nc + 2]; complex float asymbol[ofdm->m]; complex float asymbol_cp[ofdm->samplespersymbol]; int i, j, k, m; /* initialize aframe to complex zero */ for (i = 0; i < (ofdm->np * ofdm->ns); i++) { for (j = 0; j < (ofdm->nc + 2); j++) { aframe[i][j] = 0.0f; } } /* * Place symbols in multi-carrier frame with pilots * This will place boundary values of complex zero around data */ int s = 0; for (int r = 0; r < ofdm->np*ofdm->ns; r++) { if ((r % ofdm->ns) == 0) { /* copy in a row of complex pilots to first row of each frame */ for (i = 0; i < (ofdm->nc + 2); i++) { aframe[r][i] = ofdm->pilots[i]; } } else { /* copy in the Nc complex data symbols with [0 Nc 0] or (Nc + 2) total */ for (j = 1; j < (ofdm->nc + 1); j++) { aframe[r][j] = tx_sym_lin[s++]; if (ofdm->dpsk_en == true) { aframe[r][j] *= aframe[r-1][j]; } } } } /* OFDM up-convert symbol by symbol so we can add CP */ for (i = 0, m = 0; i < (ofdm->np * ofdm->ns); i++, m += ofdm->samplespersymbol) { idft(ofdm, asymbol, aframe[i]); /* Copy the last Ncp samples to the front */ for (j = (ofdm->m - ofdm->ncp), k = 0; j < ofdm->m; j++, k++) { asymbol_cp[k] = asymbol[j]; } /* Now copy the all samples for this row after it */ for (j = ofdm->ncp, k = 0; k < ofdm->m; j++, k++) { asymbol_cp[j] = asymbol[k]; } /* Now move row to the tx output */ for (j = 0; j < ofdm->samplespersymbol; j++) { tx[m + j] = asymbol_cp[j]; } } size_t samplesperpacket = ofdm->np*ofdm->samplesperframe; ofdm_hilbert_clipper(ofdm, tx, samplesperpacket); } /* Scale Tx signal and optionally apply two stage Hilbert clipper to improve PAPR */ void ofdm_hilbert_clipper(struct OFDM *ofdm, complex float *tx, size_t n) { /* vanilla Tx output waveform should be about OFDM_PEAK */ for(int i=0; iamp_scale; if (ofdm->clip_en) { // this gain set the drive into the Hilbert Clipper and sets PAPR for(int i=0; iclip_gain1; ofdm_clip(tx, OFDM_PEAK, n); } /* BPF to remove out of band energy clipper introduces */ if (ofdm->tx_bpf_en) { assert(!strcmp(ofdm->mode, "700D") || !strcmp(ofdm->mode, "700E") || !strcmp(ofdm->mode, "datac0") || !strcmp(ofdm->mode, "datac3")); assert(ofdm->tx_bpf != NULL); complex float tx_filt[n]; quisk_ccfFilter(tx, tx_filt, n, ofdm->tx_bpf); memmove(tx, tx_filt, n * sizeof (complex float)); } /* BPF messes up peak levels, this gain gets back to approx OFDM_PEAK */ if (ofdm->tx_bpf_en && ofdm->clip_en) for(int i=0; iclip_gain2; /* a very small percentage of samples may still exceed OFDM_PEAK, in clipped or unclipped mode. Lets remove them so we present consistent levels to the transmitter */ ofdm_clip(tx, OFDM_PEAK, n); } struct OFDM_CONFIG *ofdm_get_config_param(struct OFDM *ofdm) { return &ofdm->config; } int ofdm_get_nin(struct OFDM *ofdm) {return ofdm->nin;} int ofdm_get_samples_per_frame(struct OFDM *ofdm) { return ofdm->samplesperframe;} int ofdm_get_samples_per_packet(struct OFDM *ofdm) { return ofdm->samplesperframe*ofdm->np;} int ofdm_get_max_samples_per_frame(struct OFDM *ofdm) {return ofdm->max_samplesperframe; } int ofdm_get_bits_per_frame(struct OFDM *ofdm) {return ofdm->bitsperframe; } int ofdm_get_bits_per_packet(struct OFDM *ofdm) {return ofdm->bitsperpacket; } void ofdm_set_verbose(struct OFDM *ofdm, int level) { ofdm->verbose = level; } void ofdm_set_timing_enable(struct OFDM *ofdm, bool val) { ofdm->timing_en = val; if (ofdm->timing_en == false) { /* manually set ideal timing instant */ ofdm->sample_point = (ofdm->ncp - 1); } } int ofdm_get_phase_est_bandwidth_mode(struct OFDM *ofdm) { return ofdm->phase_est_bandwidth_mode; /* int version of enum */ } void ofdm_set_phase_est_bandwidth_mode(struct OFDM *ofdm, int val) { assert((val == AUTO_PHASE_EST) || (val == LOCKED_PHASE_EST)); ofdm->phase_est_bandwidth_mode = val; } void ofdm_set_foff_est_enable(struct OFDM *ofdm, bool val) { ofdm->foff_est_en = val; } void ofdm_set_phase_est_enable(struct OFDM *ofdm, bool val) { ofdm->phase_est_en = val; } void ofdm_set_off_est_hz(struct OFDM *ofdm, float val) { ofdm->foff_est_hz = val; } void ofdm_set_tx_bpf(struct OFDM *ofdm, bool val) { if (val == true) { if (ofdm->tx_bpf == NULL) allocate_tx_bpf(ofdm); ofdm->tx_bpf_en = true; } else { if (ofdm->tx_bpf != NULL) deallocate_tx_bpf(ofdm); ofdm->tx_bpf_en = false; } } void ofdm_set_dpsk(struct OFDM *ofdm, bool val) { ofdm->dpsk_en = val; } // select burst mode, and set packets per burst void ofdm_set_packets_per_burst(struct OFDM *ofdm, int packetsperburst) { ofdm->data_mode = "burst"; ofdm->packetsperburst = packetsperburst; ofdm->postambledetectoren = true; } /* * -------------------------------------- * ofdm_mod - modulates one frame of bits * -------------------------------------- */ void ofdm_mod(struct OFDM *ofdm, COMP *result, const int *tx_bits) { int length = ofdm->bitsperpacket / ofdm->bps; complex float *tx = (complex float *) result; // complex has same memory layout complex float tx_sym_lin[length]; int dibit[2]; int s, i; if (ofdm->bps == 1) { /* Here we will have Nbitsperpacket / 1 */ for (s = 0; s < length; s++) { tx_sym_lin[s] = (float) (2 * tx_bits[s] - 1); } } else if (ofdm->bps == 2) { /* Here we will have Nbitsperpacket / 2 */ for (s = 0, i = 0; i < length; s += 2, i++) { dibit[0] = tx_bits[s + 1] & 0x1; dibit[1] = tx_bits[s ] & 0x1; tx_sym_lin[i] = qpsk_mod(dibit); } } /* else if (ofdm->bps == 3) { } TODO */ ofdm_txframe(ofdm, tx, tx_sym_lin); } /* * ---------------------------------------------------------------------------------- * ofdm_sync_search - attempts to find coarse sync parameters for modem initial sync * ---------------------------------------------------------------------------------- */ /* * This is a wrapper to maintain the older functionality * with an array of COMPs as input */ int ofdm_sync_search(struct OFDM *ofdm, COMP *rxbuf_in) { /* * insert latest input samples into rxbuf * so it is primed for when we have to call ofdm_demod() */ /* note can't use memcpy when src and dest overlap */ memmove(&ofdm->rxbuf[0], &ofdm->rxbuf[ofdm->nin], (ofdm->nrxbuf - ofdm->nin) * sizeof (complex float)); memmove(&ofdm->rxbuf[(ofdm->nrxbuf - ofdm->nin)], rxbuf_in, ofdm->nin * sizeof (complex float)); return(ofdm_sync_search_core(ofdm)); } /* * This is a wrapper to reduce memory allocated. * This works with ofdm_demod and freedv_api. Gain is not used here. */ int ofdm_sync_search_shorts(struct OFDM *ofdm, short *rxbuf_in, float gain) { int i, j; /* shift the buffer left based on nin */ memmove(&ofdm->rxbuf[0], &ofdm->rxbuf[ofdm->nin], (ofdm->nrxbuf - ofdm->nin) * sizeof (complex float)); /* insert latest input samples onto tail of rxbuf */ for (j = 0, i = (ofdm->nrxbuf - ofdm->nin); i < ofdm->nrxbuf; j++, i++) { ofdm->rxbuf[i] = ((float)rxbuf_in[j] / 32767.0f); } return ofdm_sync_search_core(ofdm); } /* Joint estimation of timing and freq used for burst data acquisition */ static float est_timing_and_freq(struct OFDM *ofdm, int *t_est, float *foff_est, complex float *rx, int Nrx, complex float *known_samples, int Npsam, int tstep, float fmin, float fmax, float fstep) { int Ncorr = Nrx - Npsam + 1; float max_corr = 0; *t_est = 0; *foff_est = 0.0; for (float afcoarse=fmin; afcoarse<=fmax; afcoarse += fstep) { float w = TAU * afcoarse / ofdm->fs; complex float mvec[Npsam]; for(int i=0; i max_corr) { max_corr = cabsf(corr); *t_est = t; *foff_est = afcoarse; } } } /* obtain normalised real number for timing_mx */ float mag1=0, mag2=0; for(int i=0; iverbose > 2) { fprintf(stderr, " t_est: %4d timing:mx: %f foff_est: %f\n", *t_est, (double)timing_mx, (double)*foff_est); } return timing_mx; } /* Two stage burst mode acquisition */ static void burst_acquisition_detector(struct OFDM *ofdm, complex float *rx, int n, complex float *known_sequence, int *ct_est, float *foff_est, float *timing_mx) { float fmin, fmax, fstep; int tstep; // initial search over coarse grid tstep = 4; fstep = 5; fmin = -50.0; fmax = 50.0; *timing_mx = est_timing_and_freq(ofdm, ct_est, foff_est, &rx[n], 2*ofdm->samplesperframe, known_sequence, ofdm->samplesperframe, tstep, fmin, fmax, fstep); // refine estimate over finer grid fmin = *foff_est - ceilf(fstep/2.0); fmax = *foff_est + ceilf(fstep/2.0); int fine_st = n + *ct_est - tstep/2.0; *timing_mx = est_timing_and_freq(ofdm, ct_est, foff_est, &rx[fine_st], ofdm->samplesperframe + tstep, known_sequence, ofdm->samplesperframe, 1, fmin, fmax, 1.0); // refer ct_est to nominal start of frame rx[n] *ct_est += fine_st - n; } static int ofdm_sync_search_burst(struct OFDM *ofdm) { int st = ofdm->rxbufst + ofdm->m + ofdm->ncp + ofdm->samplesperframe; char *pre_post = ""; int pre_ct_est; float pre_foff_est, pre_timing_mx; burst_acquisition_detector(ofdm, ofdm->rxbuf, st, (complex float*)ofdm->tx_preamble, &pre_ct_est, &pre_foff_est, &pre_timing_mx); int post_ct_est; float post_foff_est, post_timing_mx; if (ofdm->postambledetectoren) burst_acquisition_detector(ofdm, ofdm->rxbuf, st, (complex float*)ofdm->tx_postamble, &post_ct_est, &post_foff_est, &post_timing_mx); int ct_est; float foff_est, timing_mx; if (!ofdm->postambledetectoren || (pre_timing_mx > post_timing_mx)) { timing_mx = pre_timing_mx; ct_est = pre_ct_est; foff_est = pre_foff_est; pre_post = "pre"; } else { timing_mx = post_timing_mx; ct_est = post_ct_est; foff_est = post_foff_est; pre_post = "post"; } int timing_valid = timing_mx > ofdm->timing_mx_thresh; if (timing_valid) { if (!strcmp(pre_post, "post")) { ofdm->post++; // we won't be need any new samples for a while .... ofdm->nin = 0; // backup to first modem frame in packet ofdm->rxbufst -= ofdm->np*ofdm->samplesperframe; ofdm->rxbufst += ct_est; } else { ofdm->pre++; // ct_est is start of preamble, so advance past that to start of first modem frame ofdm->nin = ofdm->samplesperframe + ct_est - 1; } } else ofdm->nin = ofdm->samplesperframe; ofdm->ct_est = ct_est; ofdm->foff_est_hz = foff_est; ofdm->timing_mx = timing_mx; ofdm->timing_valid = timing_valid; if (ofdm->verbose > 1) { fprintf(stderr, " ct_est: %4d nin: %4d mx: %3.2f foff_est: % 5.1f timing_valid: %d %4s\n", ct_est, ofdm->nin, (double)timing_mx, (double)foff_est, timing_valid, pre_post); } return ofdm->timing_valid; } /* * Attempts to find coarse sync parameters for modem initial sync (streaming mode) */ static int ofdm_sync_search_stream(struct OFDM *ofdm) { int act_est, afcoarse; /* Attempt coarse timing estimate (i.e. detect start of frame) at a range of frequency offsets */ int st = ofdm->rxbufst + ofdm->samplesperframe + ofdm->samplespersymbol; int en = st + 2 * ofdm->samplesperframe + ofdm->samplespersymbol; int fcoarse = 0; float atiming_mx, timing_mx = 0.0f; int ct_est = 0; int atiming_valid, timing_valid = 0; PROFILE_VAR(timing_start); PROFILE_SAMPLE(timing_start); for (afcoarse = -40; afcoarse <= 40; afcoarse += 40) { act_est = est_timing(ofdm, &ofdm->rxbuf[st], (en - st), afcoarse, &atiming_mx, &atiming_valid, 2); if (atiming_mx > timing_mx) { ct_est = act_est; timing_mx = atiming_mx; fcoarse = afcoarse; timing_valid = atiming_valid; } } PROFILE_SAMPLE_AND_LOG2(timing_start, " timing"); /* refine freq est within -/+ 20 Hz window */ PROFILE_VAR(freq_start); PROFILE_SAMPLE(freq_start); ofdm->coarse_foff_est_hz = est_freq_offset_pilot_corr(ofdm, &ofdm->rxbuf[st], ct_est, fcoarse); ofdm->coarse_foff_est_hz += fcoarse; PROFILE_SAMPLE_AND_LOG2(freq_start, " freq"); if (ofdm->verbose > 1) { fprintf(stderr, " ct_est: %4d foff_est: %4.1f timing_valid: %d timing_mx: %5.4f\n", ct_est, (double) ofdm->coarse_foff_est_hz, timing_valid, (double)timing_mx); } ofdm->timing_valid = timing_valid; if (ofdm->timing_valid != 0) { /* potential candidate found .... */ /* calculate number of samples we need on next buffer to get into sync */ ofdm->nin = ct_est; /* reset modem states */ ofdm->sample_point = ofdm->timing_est = 0; ofdm->foff_est_hz = ofdm->coarse_foff_est_hz; ofdm->timing_mx = timing_mx; } else { ofdm->nin = ofdm->samplesperframe; } ofdm->timing_mx = timing_mx; return ofdm->timing_valid; } static int ofdm_sync_search_core(struct OFDM *ofdm) { if (!strcmp(ofdm->data_mode, "burst")) return ofdm_sync_search_burst(ofdm); else return ofdm_sync_search_stream(ofdm); } /* * ------------------------------------------ * ofdm_demod - Demodulates one frame of bits * ------------------------------------------ */ /* * This is a wrapper to maintain the older functionality with an * array of COMPs as input */ void ofdm_demod(struct OFDM *ofdm, int *rx_bits, COMP *rxbuf_in) { complex float *rx = (complex float *) &rxbuf_in[0]; // complex has same memory layout int i, j; /* shift the buffer left based on nin */ for (i = 0, j = ofdm->nin; i < (ofdm->nrxbuf - ofdm->nin); i++, j++) { ofdm->rxbuf[i] = ofdm->rxbuf[j]; } /* insert latest input samples onto tail of rxbuf */ for (j = 0, i = (ofdm->nrxbuf - ofdm->nin); i < ofdm->nrxbuf; j++, i++) { ofdm->rxbuf[i] = rx[j]; } ofdm_demod_core(ofdm, rx_bits); } /* * This is a wrapper with a new interface to reduce memory allocated. * This works with ofdm_demod and freedv_api. Gain is not used here. */ void ofdm_demod_shorts(struct OFDM *ofdm, int *rx_bits, short *rxbuf_in, float gain) { int i, j; /* shift the buffer left based on nin */ for (i = 0, j = ofdm->nin; i < (ofdm->nrxbuf - ofdm->nin); i++, j++) { ofdm->rxbuf[i] = ofdm->rxbuf[j]; } /* insert latest input samples onto tail of rxbuf */ for (j = 0, i = (ofdm->nrxbuf - ofdm->nin); i < ofdm->nrxbuf; j++, i++) { ofdm->rxbuf[i] = ((float)rxbuf_in[j] / 32767.0f); } ofdm_demod_core(ofdm, rx_bits); } /* * This is the rest of the function which expects that the data is * already in ofdm->rxbuf */ static void ofdm_demod_core(struct OFDM *ofdm, int *rx_bits) { int prev_timing_est = ofdm->timing_est; int i, j, k, rr, st, en; /* * get user and calculated freq offset */ float woff_est = TAU * ofdm->foff_est_hz / ofdm->fs; /* update timing estimate ---------------------------------------------- */ if (ofdm->timing_en == true) { /* update timing at start of every frame */ st = ofdm->rxbufst + ofdm->samplespersymbol + ofdm->samplesperframe - floorf(ofdm->ftwindowwidth / 2) + ofdm->timing_est; en = st + ofdm->samplesperframe - 1 + ofdm->samplespersymbol + ofdm->ftwindowwidth; complex float work[(en - st)]; /* * Adjust for the frequency error by shifting the phase * using a conjugate multiply */ for (j = 0, i = st; i < en; j++, i++) { work[j] = ofdm->rxbuf[i] * cmplxconj(woff_est * i); } int ft_est = est_timing(ofdm, work, (en - st), 0.0f, &ofdm->timing_mx, &ofdm->timing_valid, 1); ofdm->timing_est += ft_est - ceilf((float)ofdm->ftwindowwidth / 2) + 1; if (ofdm->verbose > 2) { fprintf(stderr, " ft_est: %2d timing_est: %2d sample_point: %2d\n", ft_est, ofdm->timing_est, ofdm->sample_point); } /* Black magic to keep sample_point inside cyclic prefix. Or something like that. */ ofdm->sample_point = max(ofdm->timing_est + 4, ofdm->sample_point); ofdm->sample_point = min(ofdm->timing_est + ofdm->ncp-4, ofdm->sample_point); } /* * Convert the time-domain samples to the frequency-domain using the rx_sym * data matrix. This will be Nc+2 carriers of 11 symbols. * * You will notice there are Nc+2 BPSK symbols for each pilot symbol, and * that there are Nc QPSK symbols for each data symbol. * * XXXXXXXXXXXXXXXXX <-- Timing Slip * PPPPPPPPPPPPPPPPPPP <-- Previous Frames Pilot * DDDDDDDDDDDDDDDDD * DDDDDDDDDDDDDDDDD * DDDDDDDDDDDDDDDDD * DDDDDDDDDDDDDDDDD Ignore these past data symbols * DDDDDDDDDDDDDDDDD * DDDDDDDDDDDDDDDDD * DDDDDDDDDDDDDDDDD * PPPPPPPPPPPPPPPPPPP <-- This Frames Pilot * DDDDDDDDDDDDDDDDD * DDDDDDDDDDDDDDDDD * DDDDDDDDDDDDDDDDD * DDDDDDDDDDDDDDDDD These are the current data symbols to be decoded * DDDDDDDDDDDDDDDDD * DDDDDDDDDDDDDDDDD * DDDDDDDDDDDDDDDDD * PPPPPPPPPPPPPPPPPPP <-- Next Frames Pilot * DDDDDDDDDDDDDDDDD * DDDDDDDDDDDDDDDDD * DDDDDDDDDDDDDDDDD * DDDDDDDDDDDDDDDDD Ignore these next data symbols * DDDDDDDDDDDDDDDDD * DDDDDDDDDDDDDDDDD * DDDDDDDDDDDDDDDDD * PPPPPPPPPPPPPPPPPPP <-- Future Frames Pilot * XXXXXXXXXXXXXXXXX <-- Timing Slip * * So this algorithm will have seven data symbols and four pilot symbols to process. * The average of the four pilot symbols is our phase estimation. */ for (i = 0; i < (ofdm->ns + 3); i++) { for (j = 0; j < (ofdm->nc + 2); j++) { ofdm->rx_sym[i][j] = 0.0f; } } /* * "Previous" pilot symbol is one modem frame above. */ st = ofdm->rxbufst + ofdm->samplespersymbol + 1 + ofdm->sample_point; en = st + ofdm->m; complex float work[ofdm->m]; /* down-convert at current timing instant------------------------------- */ for (k = 0, j = st; j < en; k++, j++) { work[k] = ofdm->rxbuf[j] * cmplxconj(woff_est * j); } /* * Each symbol is of course ofdm->samplespersymbol samples long and * becomes Nc+2 carriers after DFT. * * We put this carrier pilot symbol at the top of our matrix: * * 1 .................. Nc+2 * * +----------------------+ * | Previous Pilot | rx_sym[0] * +----------------------+ * | | * */ dft(ofdm, ofdm->rx_sym[0], work); /* * "This" pilot comes after the extra symbol allotted at the top, and after * the "previous" pilot and previous data symbols (let's call it, the previous * modem frame). * * So we will now be starting at "this" pilot symbol, and continuing to the * "next" pilot symbol. * * In this routine we also process the current data symbols. */ for (rr = 0; rr < (ofdm->ns + 1); rr++) { st = ofdm->rxbufst + ofdm->samplespersymbol + ofdm->samplesperframe + (rr * ofdm->samplespersymbol) + 1 + ofdm->sample_point; en = st + ofdm->m; /* down-convert at current timing instant---------------------------------- */ for (k = 0, j = st; j < en; k++, j++) { work[k] = ofdm->rxbuf[j] * cmplxconj(woff_est * j); } /* * We put these Nc+2 carrier symbols into our matrix after the previous pilot: * * 1 .................. Nc+2 * | Previous Pilot | rx_sym[0] * +----------------------+ * | This Pilot | rx_sym[1] * +----------------------+ * | Data | rx_sym[2] * +----------------------+ * | Data | rx_sym[3] * +----------------------+ * | Data | rx_sym[4] * +----------------------+ * | Data | rx_sym[5] * +----------------------+ * | Data | rx_sym[6] * +----------------------+ * | Data | rx_sym[7] * +----------------------+ * | Data | rx_sym[8] * +----------------------+ * | Next Pilot | rx_sym[9] * +----------------------+ * | | rx_sym[10] */ dft(ofdm, ofdm->rx_sym[rr + 1], work); } /* * OK, now we want to process to the "future" pilot symbol. This is after * the "next" modem frame. * * We are ignoring the data symbols between the "next" pilot and "future" pilot. * We only want the "future" pilot symbol, to perform the averaging of all pilots. */ st = ofdm->rxbufst + ofdm->samplespersymbol + (3 * ofdm->samplesperframe) + 1 + ofdm->sample_point; en = st + ofdm->m; /* down-convert at current timing instant------------------------------- */ for (k = 0, j = st; j < en; k++, j++) { work[k] = ofdm->rxbuf[j] * cmplxconj(woff_est * j); } /* * We put the future pilot after all the previous symbols in the matrix: * * 1 .................. Nc+2 * * | | rx_sym[9] * +----------------------+ * | Future Pilot | rx_sym[10] * +----------------------+ */ dft(ofdm, ofdm->rx_sym[ofdm->ns + 2], work); /* * We are finished now with the DFT and down conversion * From here on down we are in the frequency domain */ /* est freq err based on all carriers ---------------------------------- */ if (ofdm->foff_est_en == true) { /* * sym[1] is 'this' pilot symbol, sym[9] is 'next' pilot symbol. * * By subtracting the two averages of these pilots, we find the frequency * by the change in phase over time. */ complex float freq_err_rect = conjf(vector_sum(ofdm->rx_sym[1], ofdm->nc + 2)) * vector_sum(ofdm->rx_sym[ofdm->ns + 1], ofdm->nc + 2); /* prevent instability in atan(im/re) when real part near 0 */ freq_err_rect += 1E-6f; float freq_err_hz = cargf(freq_err_rect) * ofdm->rs / (TAU * ofdm->ns); if (ofdm->foff_limiter) { /* optionally tame updates in low SNR channels */ if (freq_err_hz > 1.0) freq_err_hz = 1.0; if (freq_err_hz < -1.0) freq_err_hz = -1.0; } ofdm->foff_est_hz += (ofdm->foff_est_gain * freq_err_hz); } /* OK - now estimate and correct pilot phase -------------------------- */ complex float aphase_est_pilot_rect; float aphase_est_pilot[ofdm->nc + 2]; float aamp_est_pilot[ofdm->nc + 2]; for (i = 0; i < (ofdm->nc + 2); i++) { aphase_est_pilot[i] = 10.0f; aamp_est_pilot[i] = 0.0f; } for (i = 1; i < (ofdm->nc + 1); i++) { /* ignore first and last carrier for count */ if (ofdm->phase_est_bandwidth == low_bw) { complex float symbol[3]; /* * Use all pilots normally, results in low SNR performance, * but will fall over in high Doppler propagation * * Basically we divide the Nc+2 pilots into groups of 3 * Then average the phase surrounding each of the data symbols. */ for (k = 0, j = (i - 1); k < 3; k++, j++) { symbol[k] = ofdm->rx_sym[1][j] * conjf(ofdm->pilots[j]); /* this pilot conjugate */ } aphase_est_pilot_rect = vector_sum(symbol, 3); for (k = 0, j = (i - 1); k < 3; k++, j++) { symbol[k] = ofdm->rx_sym[ofdm->ns + 1][j] * conjf(ofdm->pilots[j]); /* next pilot conjugate */ } aphase_est_pilot_rect += vector_sum(symbol, 3); /* use pilots in past and future */ for (k = 0, j = (i - 1); k < 3; k++, j++) { symbol[k] = ofdm->rx_sym[0][j] * conjf(ofdm->pilots[j]); /* previous pilot */ } aphase_est_pilot_rect += vector_sum(symbol, 3); for (k = 0, j = (i - 1); k < 3; k++, j++) { symbol[k] = ofdm->rx_sym[ofdm->ns + 2][j] * conjf(ofdm->pilots[j]); /* future pilot */ } aphase_est_pilot_rect += vector_sum(symbol, 3); /* amplitude is estimated over 12 pilots */ aphase_est_pilot_rect /= 12.0f; aphase_est_pilot[i] = cargf(aphase_est_pilot_rect); aamp_est_pilot[i] = cabsf(aphase_est_pilot_rect); } else { assert(ofdm->phase_est_bandwidth == high_bw); /* * Use only symbols at 'this' and 'next' to quickly track changes * in phase due to high Doppler spread in propagation (no neighbor averaging). * * As less pilots are averaged, low SNR performance will be poorer */ aphase_est_pilot_rect = ofdm->rx_sym[1][i] * conjf(ofdm->pilots[i]); /* "this" pilot conjugate */ aphase_est_pilot_rect += ofdm->rx_sym[ofdm->ns + 1][i] * conjf(ofdm->pilots[i]); /* "next" pilot conjugate */ /* we estimate over 2 pilots */ aphase_est_pilot_rect /= 2.0f; aphase_est_pilot[i] = cargf(aphase_est_pilot_rect); if (ofdm->amp_est_mode == 0) { // legacy 700D ampl est method aamp_est_pilot[i] = cabsf(aphase_est_pilot_rect); } else { aamp_est_pilot[i] = cabsf(ofdm->rx_sym[1][i]) + cabsf(ofdm->rx_sym[ofdm->ns + 1][i])/2.0; } } aphase_est_pilot[i] = cargf(aphase_est_pilot_rect); aamp_est_pilot[i] = cabsf(aphase_est_pilot_rect); } /* * correct the phase offset using phase estimate, and demodulate * bits, separate loop as it runs across cols (carriers) to get * frame bit ordering correct */ complex float rx_corr; int abit[2]; int bit_index = 0; float sum_amp = 0.0f; for (rr = 0; rr < ofdm->rowsperframe; rr++) { /* * Note the i starts with the second carrier, ends with Nc+1. * so we ignore the first and last carriers. * * Also note we are using sym[2..8] or the seven data symbols. */ for (i = 1; i < (ofdm->nc + 1); i++) { if (ofdm->phase_est_en == true) { if (ofdm->dpsk_en == true) { /* differential detection, using pilot as reference at start of frame */ rx_corr = ofdm->rx_sym[rr + 2][i] * cmplxconj(cargf(ofdm->rx_sym[rr + 1][i])); } else { /* regular coherent detection */ rx_corr = ofdm->rx_sym[rr + 2][i] * cmplxconj(aphase_est_pilot[i]); } } else { rx_corr = ofdm->rx_sym[rr + 2][i]; } /* * Output complex data symbols after phase correction; * (_np = no pilots) the pilot symbols have been removed */ ofdm->rx_np[(rr * ofdm->nc) + (i - 1)] = rx_corr; /* * Note even though amp ests are the same for each col, * the FEC decoder likes to have one amplitude per symbol * so convenient to log them all */ ofdm->rx_amp[(rr * ofdm->nc) + (i - 1)] = aamp_est_pilot[i]; sum_amp += aamp_est_pilot[i]; /* * Note like amps in this implementation phase ests are the * same for each col, but we log them for each symbol anyway */ ofdm->aphase_est_pilot_log[(rr * ofdm->nc) + (i - 1)] = aphase_est_pilot[i]; if (ofdm->bps == 1) { rx_bits[bit_index++] = crealf(rx_corr) > 0.0f; } else if (ofdm->bps == 2) { /* * Only one final task, decode what quadrant the phase * is in, and return the dibits */ qpsk_demod(rx_corr, abit); rx_bits[bit_index++] = abit[1]; rx_bits[bit_index++] = abit[0]; } } } /* update mean amplitude estimate for LDPC decoder scaling */ ofdm->mean_amp = 0.9f * ofdm->mean_amp + 0.1f * sum_amp / (ofdm->rowsperframe * ofdm->nc); /* Adjust nin to take care of sample clock offset */ ofdm->nin = ofdm->samplesperframe; if (ofdm->timing_en == true) { ofdm->clock_offset_counter += (prev_timing_est - ofdm->timing_est); int thresh = ofdm->samplespersymbol / 8; int tshift = ofdm->samplespersymbol / 4; if (ofdm->timing_est > thresh) { ofdm->nin = ofdm->samplesperframe + tshift; ofdm->timing_est -= tshift; ofdm->sample_point -= tshift; } else if (ofdm->timing_est < -thresh) { ofdm->nin = ofdm->samplesperframe - tshift; ofdm->timing_est += tshift; ofdm->sample_point += tshift; } } // use internal rxbuf samples if they are available int rxbufst_next = ofdm->rxbufst + ofdm->nin; if (rxbufst_next + ofdm->nrxbufmin <= ofdm->nrxbuf) { ofdm->rxbufst = rxbufst_next; ofdm->nin = 0; } } /* * Returns an estimate of Es/No in dB - see esno_est.m for more info */ float ofdm_esno_est_calc(complex float *rx_sym, int nsym) { float sig_var = 0; float step = 1.0f/nsym; for (int i = 0; i < nsym; i++) sig_var += (cnormf(rx_sym[i]) * step); float sig_rms = sqrtf(sig_var); float sum_x = 0.0f; float sum_xx = 0.0f; int n = 0; for (int i = 0; i < nsym; i++) { complex float s = rx_sym[i]; if (cabsf(s) > sig_rms) { if (fabs(crealf(s)) > fabs(cimagf(s))) { sum_x += cimagf(s); sum_xx += cimagf(s) * cimagf(s); } else { sum_x += crealf(s); sum_xx += crealf(s) * crealf(s); } n++; } } float noise_var; if (n > 1) noise_var = (n * sum_xx - sum_x * sum_x) / (n * (n - 1)); else noise_var = sig_var; noise_var *= 2.0f; float EsNodB = 10.0f * log10f((1E-12f + sig_var) / (1E-12f + noise_var)); assert(isnan(EsNodB) == 0); return EsNodB; } float ofdm_snr_from_esno(struct OFDM *ofdm, float EsNodB) { float cyclic_power = 10.0f * log10f((float)(ofdm->ncp + ofdm->m) / ofdm->m); return EsNodB + 10.0f * log10f((float)(ofdm->nc * ofdm->rs) / 3000.0f) + cyclic_power; } /* * state machine for 700D/2020 */ void ofdm_sync_state_machine_voice1(struct OFDM *ofdm, uint8_t *rx_uw) { int i; State next_state = ofdm->sync_state; ofdm->sync_start = false; ofdm->sync_end = false; if (ofdm->sync_state == search) { if (ofdm->timing_valid) { ofdm->frame_count = 0; ofdm->sync_counter = 0; ofdm->sync_start = true; ofdm->clock_offset_counter = 0; next_state = trial; } } if ((ofdm->sync_state == synced) || (ofdm->sync_state == trial)) { ofdm->frame_count++; /* * freq offset est may be too far out, and has aliases every 1/Ts, so * we use a Unique Word to get a really solid indication of sync. */ ofdm->uw_errors = 0; for (i = 0; i < ofdm->nuwbits; i++) { ofdm->uw_errors += ofdm->tx_uw[i] ^ rx_uw[i]; } /* * during trial sync we don't tolerate errors so much, we look * for 3 consecutive frames with low error rate to confirm sync */ if (ofdm->sync_state == trial) { if (ofdm->uw_errors > 2) { /* if we exceed thresh stay in trial sync */ ofdm->sync_counter++; ofdm->frame_count = 0; } if (ofdm->sync_counter == 2) { /* if we get two bad frames drop sync and start again */ next_state = search; ofdm->phase_est_bandwidth = high_bw; } if (ofdm->frame_count == 4) { /* three good frames, sync is OK! */ next_state = synced; /* change to low bandwidth, but more accurate phase estimation */ /* but only if not locked to high */ if (ofdm->phase_est_bandwidth_mode != LOCKED_PHASE_EST) { ofdm->phase_est_bandwidth = low_bw; } } } /* once we have synced up we tolerate a higher error rate to wait out fades */ if (ofdm->sync_state == synced) { if (ofdm->uw_errors > 2) { ofdm->sync_counter++; } else { ofdm->sync_counter = 0; } if ((ofdm->sync_mode == autosync) && (ofdm->sync_counter > 6)) { /* run of consecutive bad frames ... drop sync */ next_state = search; ofdm->phase_est_bandwidth = high_bw; } } } ofdm->last_sync_state = ofdm->sync_state; ofdm->sync_state = next_state; } /* * data (streaming mode) state machine */ void ofdm_sync_state_machine_data_streaming(struct OFDM *ofdm, uint8_t *rx_uw) { State next_state = ofdm->sync_state; int i; ofdm->sync_start = ofdm->sync_end = 0; if (ofdm->sync_state == search) { if (ofdm->timing_valid != 0) { ofdm->sync_start = true; ofdm->sync_counter = 0; next_state = trial; } } ofdm->uw_errors = 0; for (i = 0; i < ofdm->nuwbits; i++) { ofdm->uw_errors += ofdm->tx_uw[i] ^ rx_uw[i]; } if (ofdm->sync_state == trial) { if (ofdm->uw_errors < ofdm->bad_uw_errors) { next_state = synced; ofdm->packet_count = 0; ofdm->modem_frame = ofdm->nuwframes; } else { ofdm->sync_counter++; if (ofdm->sync_counter > ofdm->np) { next_state = search; } } } // Note if frameperburst==0 we don't ever lose sync, which is useful for // stream based testing or external control of state machine if (ofdm->sync_state == synced) { ofdm->modem_frame++; if (ofdm->modem_frame >= ofdm->np) { ofdm->modem_frame = 0; ofdm->packet_count++; if (ofdm->packetsperburst) { if (ofdm->packet_count >= ofdm->packetsperburst) next_state = search; } } } ofdm->last_sync_state = ofdm->sync_state; ofdm->sync_state = next_state; } /* * data (burst mode) state machine */ void ofdm_sync_state_machine_data_burst(struct OFDM *ofdm, uint8_t *rx_uw) { State next_state = ofdm->sync_state; int i; ofdm->sync_start = ofdm->sync_end = 0; if (ofdm->sync_state == search) { if (ofdm->timing_valid != 0) { ofdm->sync_start = true; ofdm->sync_counter = 0; next_state = trial; } } ofdm->uw_errors = 0; for (i = 0; i < ofdm->nuwbits; i++) { ofdm->uw_errors += ofdm->tx_uw[i] ^ rx_uw[i]; } /* pre or post-amble has told us this is the start of the packet. Confirm we have a valid frame by checking the UW after the modem frames containing the UW have been received */ if (ofdm->sync_state == trial) { ofdm->sync_counter++; if (ofdm->sync_counter == ofdm->nuwframes) { if (ofdm->uw_errors < ofdm->bad_uw_errors) { next_state = synced; ofdm->packet_count = 0; ofdm->modem_frame = ofdm->nuwframes; } else { next_state = search; // reset rxbuf to make sure we only ever do a postamble loop once through same samples ofdm->rxbufst = ofdm->nrxbufhistory; for(int i=0; inrxbuf; i++) ofdm->rxbuf[i] = 0; ofdm->uw_fails++; } } } if (ofdm->sync_state == synced) { ofdm->modem_frame++; if (ofdm->modem_frame >= ofdm->np) { ofdm->modem_frame = 0; ofdm->packet_count++; if (ofdm->packetsperburst) { if (ofdm->packet_count >= ofdm->packetsperburst) { next_state = search; // reset rxbuf to make sure we only ever do a postamble loop once through same samples ofdm->rxbufst = ofdm->nrxbufhistory; for(int i=0; inrxbuf; i++) ofdm->rxbuf[i] = 0; } } } } ofdm->last_sync_state = ofdm->sync_state; ofdm->sync_state = next_state; } void ofdm_sync_state_machine_voice2(struct OFDM *ofdm, uint8_t *rx_uw) { int i; State next_state = ofdm->sync_state; ofdm->sync_start = false; ofdm->sync_end = false; if (ofdm->sync_state == search) { if (ofdm->timing_valid) { ofdm->frame_count = 0; ofdm->sync_counter = 0; ofdm->sync_start = true; ofdm->clock_offset_counter = 0; next_state = trial; } } if ((ofdm->sync_state == synced) || (ofdm->sync_state == trial)) { ofdm->frame_count++; ofdm->uw_errors = 0; for (i = 0; i < ofdm->nuwbits; i++) { ofdm->uw_errors += ofdm->tx_uw[i] ^ rx_uw[i]; } if (ofdm->sync_state == trial) { if (ofdm->uw_errors <= ofdm->bad_uw_errors) next_state = synced; else next_state = search; } if (ofdm->sync_state == synced) { if (ofdm->uw_errors > ofdm->bad_uw_errors) { ofdm->sync_counter++; } else { ofdm->sync_counter = 0; } if (ofdm->sync_counter == 6) { /* run of consecutive bad frames ... drop sync */ next_state = search; } } } ofdm->last_sync_state = ofdm->sync_state; ofdm->sync_state = next_state; } /* mode based dispatcher for sync state machines */ void ofdm_sync_state_machine(struct OFDM *ofdm, uint8_t *rx_uw) { if (!strcmp(ofdm->state_machine, "voice1")) ofdm_sync_state_machine_voice1(ofdm, rx_uw); if (!strcmp(ofdm->state_machine, "data")) { if (strcmp(ofdm->data_mode,"streaming") == 0) ofdm_sync_state_machine_data_streaming(ofdm, rx_uw); else ofdm_sync_state_machine_data_burst(ofdm, rx_uw); } if (!strcmp(ofdm->state_machine, "voice2")) ofdm_sync_state_machine_voice2(ofdm, rx_uw); } /*---------------------------------------------------------------------------* \ FUNCTIONS...: ofdm_set_sync AUTHOR......: David Rowe DATE CREATED: May 2018 External control of sync state machine. Ensure this is called in the same thread as ofdm_sync_state_machine(). \*---------------------------------------------------------------------------*/ void ofdm_set_sync(struct OFDM *ofdm, int sync_cmd) { assert(ofdm != NULL); switch (sync_cmd) { case UN_SYNC: /* force manual unsync, which will cause sync state machine to have re-attempt sync */ ofdm->sync_state = search; /* clear rxbuf so we don't try to sync on any existing OFDM signals in buffer */ for (int i = 0; i < ofdm->nrxbuf; i++) ofdm->rxbuf[i] = 0.0f; break; case AUTO_SYNC: /* normal operating mode - sync state machine decides when to unsync */ ofdm->sync_mode = autosync; break; case MANUAL_SYNC: /* * allow sync state machine to sync, but not to unsync, the * operator will decide that manually */ ofdm->sync_mode = manualsync; break; default: assert(0); } } /*---------------------------------------------------------------------------*\ FUNCTION....: ofdm_get_demod_stats() AUTHOR......: David Rowe DATE CREATED: May 2018 Fills stats structure with a bunch of demod information. Call once per packet. \*---------------------------------------------------------------------------*/ void ofdm_get_demod_stats(struct OFDM *ofdm, struct MODEM_STATS *stats, complex float *rx_syms, int Nsymsperpacket) { stats->Nc = ofdm->nc; assert(stats->Nc <= MODEM_STATS_NC_MAX); float EsNodB = ofdm_esno_est_calc(rx_syms, Nsymsperpacket); float SNR3kdB = ofdm_snr_from_esno(ofdm, EsNodB); if (strlen(ofdm->data_mode)) /* no smoothing as we have a large number of symbols per packet */ stats->snr_est = SNR3kdB; else { /* in voice modes we further smooth SNR est, fast attack, slow decay */ if (SNR3kdB > stats->snr_est) stats->snr_est = SNR3kdB; else stats->snr_est = 0.9f * stats->snr_est + 0.1f * SNR3kdB; } stats->sync = ((ofdm->sync_state == synced) || (ofdm->sync_state == trial)); stats->foff = ofdm->foff_est_hz; stats->rx_timing = ofdm->timing_est; float total = ofdm->frame_count * ofdm->samplesperframe; stats->clock_offset = 0; if (total != 0.0f) { stats->clock_offset = ofdm->clock_offset_counter / total; } stats->sync_metric = ofdm->timing_mx; stats->pre = ofdm->pre; stats->post = ofdm->post; stats->uw_fails = ofdm->uw_fails; #ifndef __EMBEDDED__ assert(Nsymsperpacket % ofdm->nc == 0); int Nrowsperpacket = Nsymsperpacket/ofdm->nc; assert(Nrowsperpacket <= MODEM_STATS_NR_MAX); stats->nr = Nrowsperpacket; for (int c = 0; c < ofdm->nc; c++) { for (int r = 0; r < Nrowsperpacket; r++) { complex float rot = rx_syms[r * ofdm->nc + c] * cmplx(ROT45); stats->rx_symbols[r][c].real = crealf(rot); stats->rx_symbols[r][c].imag = cimagf(rot); } } #endif } /* * Assemble packet of bits from UW, payload bits, and txt bits */ void ofdm_assemble_qpsk_modem_packet(struct OFDM *ofdm, uint8_t modem_frame[], uint8_t payload_bits[], uint8_t txt_bits[]) { int s, t; int p = 0; int u = 0; for (s = 0; s < (ofdm->bitsperpacket - ofdm->ntxtbits); s++) { if ((u < ofdm->nuwbits) && (s == ofdm->uw_ind[u])) { modem_frame[s] = ofdm->tx_uw[u++]; } else { modem_frame[s] = payload_bits[p++]; } } assert(u == ofdm->nuwbits); assert(p == (ofdm->bitsperpacket - ofdm->nuwbits - ofdm->ntxtbits)); for (t = 0; s < ofdm->bitsperframe; s++, t++) { modem_frame[s] = txt_bits[t]; } assert(t == ofdm->ntxtbits); } /* * Assemble packet of symbols from UW, payload symbols, and txt bits */ void ofdm_assemble_qpsk_modem_packet_symbols(struct OFDM *ofdm, complex float modem_packet[], COMP payload_syms[], uint8_t txt_bits[]) { complex float *payload = (complex float *) &payload_syms[0]; // complex has same memory layout int Nsymsperpacket = ofdm->bitsperpacket / ofdm->bps; int Nuwsyms = ofdm->nuwbits / ofdm->bps; int Ntxtsyms = ofdm->ntxtbits / ofdm->bps; int dibit[2]; int s, t; int p = 0; int u = 0; assert(ofdm->bps == 2); /* this only works for QPSK at this stage (e.g. modem packet mod) */ for (s = 0; s < (Nsymsperpacket - Ntxtsyms); s++) { if ((u < Nuwsyms) && (s == ofdm->uw_ind_sym[u])) { modem_packet[s] = ofdm->tx_uw_syms[u++]; } else { modem_packet[s] = payload[p++]; } } assert(u == Nuwsyms); assert(p == (Nsymsperpacket - Nuwsyms - Ntxtsyms)); for (t = 0; s < Nsymsperpacket; s++, t += 2) { dibit[1] = txt_bits[t ] & 0x1; dibit[0] = txt_bits[t + 1] & 0x1; modem_packet[s] = qpsk_mod(dibit); } assert(t == ofdm->ntxtbits); } /* * Disassemble a received packet of symbols into UW bits and payload data symbols */ void ofdm_disassemble_qpsk_modem_packet(struct OFDM *ofdm, complex float rx_syms[], float rx_amps[], COMP codeword_syms[], float codeword_amps[], short txt_bits[]) { complex float *codeword = (complex float *) &codeword_syms[0]; // complex has same memory layout int Nsymsperpacket = ofdm->bitsperpacket / ofdm->bps; int Nuwsyms = ofdm->nuwbits / ofdm->bps; int Ntxtsyms = ofdm->ntxtbits / ofdm->bps; int dibit[2]; int s, t; int p = 0; int u = 0; assert(ofdm->bps == 2); /* this only works for QPSK at this stage */ for (s = 0; s < (Nsymsperpacket - Ntxtsyms); s++) { if ((u < Nuwsyms) && (s == ofdm->uw_ind_sym[u])) { u++; } else { codeword[p] = rx_syms[s]; codeword_amps[p] = rx_amps[s]; p++; } } assert(u == Nuwsyms); assert(p == (Nsymsperpacket - Nuwsyms - Ntxtsyms)); for (t = 0; s < Nsymsperpacket; s++, t += 2) { qpsk_demod(rx_syms[s], dibit); txt_bits[t ] = dibit[1]; txt_bits[t + 1] = dibit[0]; } assert(t == ofdm->ntxtbits); } /* * Disassemble a received packet of symbols into UW bits and payload data symbols */ void ofdm_disassemble_qpsk_modem_packet_with_text_amps( struct OFDM *ofdm, complex float rx_syms[], float rx_amps[], COMP codeword_syms[], float codeword_amps[], short txt_bits[], int* textIndex) { complex float *codeword = (complex float *) &codeword_syms[0]; // complex has same memory layout int Nsymsperpacket = ofdm->bitsperpacket / ofdm->bps; int Nuwsyms = ofdm->nuwbits / ofdm->bps; int Ntxtsyms = ofdm->ntxtbits / ofdm->bps; int dibit[2]; int s, t; int p = 0; int u = 0; assert(ofdm->bps == 2); /* this only works for QPSK at this stage */ assert(textIndex != NULL); for (s = 0; s < (Nsymsperpacket - Ntxtsyms); s++) { if ((u < Nuwsyms) && (s == ofdm->uw_ind_sym[u])) { u++; } else { codeword[p] = rx_syms[s]; codeword_amps[p] = rx_amps[s]; p++; } } assert(u == Nuwsyms); assert(p == (Nsymsperpacket - Nuwsyms - Ntxtsyms)); *textIndex = s; for (t = 0; s < Nsymsperpacket; s++, t += 2) { qpsk_demod(rx_syms[s], dibit); txt_bits[t ] = dibit[1]; txt_bits[t + 1] = dibit[0]; } assert(t == ofdm->ntxtbits); } /* * Extract just the UW from the packet */ void ofdm_extract_uw(struct OFDM *ofdm, complex float rx_syms[], float rx_amps[], uint8_t rx_uw[]) { int Nsymsperframe = ofdm->bitsperframe / ofdm->bps; int Nuwsyms = ofdm->nuwbits / ofdm->bps; int dibit[2]; int s,u; assert(ofdm->bps == 2); /* this only works for QPSK at this stage (e.g. UW demod) */ for (s = 0, u = 0; s < Nsymsperframe*ofdm->nuwframes; s++) { if ((u < Nuwsyms) && (s == ofdm->uw_ind_sym[u])) { qpsk_demod(rx_syms[s], dibit); rx_uw[2 * u ] = dibit[1]; rx_uw[2 * u + 1] = dibit[0]; u++; } } assert(u == Nuwsyms); } /* * Pseudo-random number generator that we can implement in C with * identical results to Octave. Returns an unsigned int between 0 * and 32767. Used for generating test frames of various lengths. */ void ofdm_rand(uint16_t r[], int n) { ofdm_rand_seed(r, n, 1); } void ofdm_rand_seed(uint16_t r[], int n, uint64_t seed) { for (int i = 0; i < n; i++) { seed = (1103515245l * seed + 12345) % 32768; r[i] = seed; } } void ofdm_generate_payload_data_bits(uint8_t payload_data_bits[], int n) { uint16_t r[n]; int i; ofdm_rand(r, n); for (i = 0; i < n; i++) { payload_data_bits[i] = r[i] > 16384; } } void ofdm_generate_preamble(struct OFDM *ofdm, COMP *tx_preamble, int seed) { // need to modify bits per packet to set up pre-amble of a few modem frames in length struct OFDM ofdm_preamble; memcpy(&ofdm_preamble, ofdm, sizeof(struct OFDM)); ofdm_preamble.np = 1; ofdm_preamble.bitsperpacket = ofdm_preamble.bitsperframe; uint16_t r[ofdm_preamble.bitsperpacket]; ofdm_rand_seed(r, ofdm_preamble.bitsperpacket, seed); int preamble_bits[ofdm_preamble.bitsperpacket]; for(int i=0; i 16384; // ensures the signal passes through hilbert clipper unchanged ofdm_preamble.amp_scale = 1.0; ofdm_preamble.tx_bpf_en = false; ofdm_mod(&ofdm_preamble, tx_preamble, preamble_bits); } void ofdm_print_info(struct OFDM *ofdm) { char *syncmode[] = { "unsync", "autosync", "manualsync" }; char *phase_est_bandwidth_mode[] = { "auto", "locked_high" }; fprintf(stderr, "ofdm->tx_centre = %g\n", (double)ofdm->tx_centre); fprintf(stderr, "ofdm->rx_centre = %g\n", (double)ofdm->rx_centre); fprintf(stderr, "ofdm->fs = %g\n", (double)ofdm->fs); fprintf(stderr, "ofdm->ts = %g\n", (double)ofdm->ts); fprintf(stderr, "ofdm->rs = %g\n", (double)ofdm->rs); fprintf(stderr, "ofdm->tcp = %g\n", (double)ofdm->tcp); fprintf(stderr, "ofdm->inv_m = %g\n", (double)ofdm->inv_m); fprintf(stderr, "ofdm->tx_nlower = %g\n", (double)ofdm->tx_nlower); fprintf(stderr, "ofdm->rx_nlower = %g\n", (double)ofdm->rx_nlower); fprintf(stderr, "ofdm->doc = %g\n", (double)ofdm->doc); fprintf(stderr, "ofdm->timing_mx_thresh = %g\n", (double)ofdm->timing_mx_thresh); fprintf(stderr, "ofdm->nc = %d\n", ofdm->nc); fprintf(stderr, "ofdm->np = %d\n", ofdm->np); fprintf(stderr, "ofdm->ns = %d\n", ofdm->ns); fprintf(stderr, "ofdm->bps = %d\n", ofdm->bps); fprintf(stderr, "ofdm->m = %d\n", ofdm->m); fprintf(stderr, "ofdm->ncp = %d\n", ofdm->ncp); fprintf(stderr, "ofdm->ftwindowwidth = %d\n", ofdm->ftwindowwidth); fprintf(stderr, "ofdm->bitsperframe = %d\n", ofdm->bitsperframe); fprintf(stderr, "ofdm->bitsperpacket = %d\n", ofdm->bitsperpacket); fprintf(stderr, "ofdm->rowsperframe = %d\n", ofdm->rowsperframe); fprintf(stderr, "ofdm->samplespersymbol = %d\n", ofdm->samplespersymbol); fprintf(stderr, "ofdm->samplesperframe = %d\n", ofdm->samplesperframe); fprintf(stderr, "ofdm->max_samplesperframe = %d\n", ofdm->max_samplesperframe); fprintf(stderr, "ofdm->nrxbuf = %d\n", ofdm->nrxbuf); fprintf(stderr, "ofdm->ntxtbits = %d\n", ofdm->ntxtbits); fprintf(stderr, "ofdm->nuwbits = %d\n", ofdm->nuwbits); fprintf(stderr, "ofdm->foff_est_gain = %g\n", (double)ofdm->foff_est_gain); fprintf(stderr, "ofdm->foff_est_hz = %g\n", (double)ofdm->foff_est_hz); fprintf(stderr, "ofdm->timing_mx = %g\n", (double)ofdm->timing_mx); fprintf(stderr, "ofdm->coarse_foff_est_hz = %g\n", (double)ofdm->coarse_foff_est_hz); fprintf(stderr, "ofdm->timing_norm = %g\n", (double)ofdm->timing_norm); fprintf(stderr, "ofdm->mean_amp = %g\n", (double)ofdm->mean_amp); fprintf(stderr, "ofdm->clock_offset_counter = %d\n", ofdm->clock_offset_counter); fprintf(stderr, "ofdm->verbose = %d\n", ofdm->verbose); fprintf(stderr, "ofdm->sample_point = %d\n", ofdm->sample_point); fprintf(stderr, "ofdm->timing_est = %d\n", ofdm->timing_est); fprintf(stderr, "ofdm->timing_valid = %d\n", ofdm->timing_valid); fprintf(stderr, "ofdm->nin = %d\n", ofdm->nin); fprintf(stderr, "ofdm->uw_errors = %d\n", ofdm->uw_errors); fprintf(stderr, "ofdm->sync_counter = %d\n", ofdm->sync_counter); fprintf(stderr, "ofdm->frame_count = %d\n", ofdm->frame_count); fprintf(stderr, "ofdm->sync_start = %s\n", ofdm->sync_start ? "true" : "false"); fprintf(stderr, "ofdm->sync_end = %s\n", ofdm->sync_end ? "true" : "false"); fprintf(stderr, "ofdm->sync_mode = %s\n", syncmode[ofdm->sync_mode]); fprintf(stderr, "ofdm->timing_en = %s\n", ofdm->timing_en ? "true" : "false"); fprintf(stderr, "ofdm->foff_est_en = %s\n", ofdm->foff_est_en ? "true" : "false"); fprintf(stderr, "ofdm->phase_est_en = %s\n", ofdm->phase_est_en ? "true" : "false"); fprintf(stderr, "ofdm->tx_bpf_en = %s\n", ofdm->tx_bpf_en ? "true" : "false"); fprintf(stderr, "ofdm->dpsk_en = %s\n", ofdm->dpsk_en ? "true" : "false"); fprintf(stderr, "ofdm->phase_est_bandwidth_mode = %s\n", phase_est_bandwidth_mode[ofdm->phase_est_bandwidth_mode]); } // hilbert clipper void ofdm_clip(complex float tx[], float clip_thresh, int n) { complex float sam; float mag; int i; for(i=0; i clip_thresh) { sam *= clip_thresh/mag; } tx[i] = sam; } } codec2-1.0.1/src/ofdm_demod.c000066400000000000000000000701511412132000500156700ustar00rootroot00000000000000/*---------------------------------------------------------------------------*\ FILE........: ofdm_demod.c AUTHOR......: David Rowe DATE CREATED: Mar 2018 Demodulates an input file of raw file (8kHz, 16 bit shorts) OFDM modem samples. Runs in uncoded or LDPC coded modes. \*---------------------------------------------------------------------------*/ /* Copyright (C) 2018 David Rowe All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 2.1, as published by the Free Software Foundation. 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 Lesser General Public License along with this program; if not, see . */ #define OPTPARSE_IMPLEMENTATION #define OPTPARSE_API static #include "optparse.h" #include #include #include #include #include #include #include #include #include "codec2_ofdm.h" #include "ofdm_internal.h" #include "octave.h" #include "mpdecode_core.h" #include "ldpc_codes.h" #include "gp_interleaver.h" #include "interldpc.h" #define IS_DIR_SEPARATOR(c) ((c) == '/') #define NFRAMES 100 /* just log the first 100 frames */ #define NDISCARD 20 /* BER2 measure discards first 20 frames */ #define FS 8000.0f static const char *progname; static const char *statemode[] = { "search", "trial", "synced" }; void opt_help() { fprintf(stderr, "\nusage: %s [options]\n\n", progname); fprintf(stderr, " Default output file format is one byte per bit hard decision\n\n"); fprintf(stderr, " --in filename Name of InputModemRawFile\n"); fprintf(stderr, " --out filename Name of OutputOneCharPerBitFile\n"); fprintf(stderr, " --log filename Octave log file for testing\n"); fprintf(stderr, " --mode modeName Predefined mode 700D|2020|datac1\n"); fprintf(stderr, " --nc [17..62] Number of Carriers (17 default, 62 max)\n"); fprintf(stderr, " --np Number of packets\n"); fprintf(stderr, " --ns Nframes One pilot every ns symbols (8 default)\n"); fprintf(stderr, " --tcp Nsecs Cyclic Prefix Duration (.002 default)\n"); fprintf(stderr, " --ts Nsecs Symbol Duration (.018 default)\n"); fprintf(stderr, " --bandwidth [0|1] Select phase est bw mode AUTO low or high (0) or LOCKED high (1) (default 0)\n"); fprintf(stderr, " Must also specify --ldpc option\n"); fprintf(stderr, " --tx_freq freq Set modulation TX centre Frequency (1500.0 default)\n"); fprintf(stderr, " --rx_freq freq Set modulation RX centre Frequency (1500.0 default)\n"); fprintf(stderr, " --verbose [1|2|3] Verbose output level to stderr (default off)\n"); fprintf(stderr, " --testframes Receive test frames and count errors\n"); fprintf(stderr, " --ldpc Run LDPC decoder\n"); fprintf(stderr, " --databits numBits Number of data bits used in LDPC codeword.\n"); fprintf(stderr, "\n"); fprintf(stderr, " --start_secs secs Number of seconds delay before we start to demod\n"); fprintf(stderr, " --len_secs secs Number of seconds to run demod\n"); fprintf(stderr, " --skip_secs timeSecs At timeSecs introduce a large timing error by skipping half a frame of samples\n"); fprintf(stderr, " --dpsk Differential PSK.\n"); fprintf(stderr, " --packetsperburst p use burst mode; number of packets we expect per burst\n"); fprintf(stderr, "\n"); exit(-1); } int main(int argc, char *argv[]) { int i, j, opt, val; char *pn = argv[0] + strlen(argv[0]); while (pn != argv[0] && !IS_DIR_SEPARATOR(pn[-1])) --pn; progname = pn; /* Turn off stream buffering */ setvbuf(stdin, NULL, _IONBF, BUFSIZ); setvbuf(stdout, NULL, _IONBF, BUFSIZ); FILE *fin = stdin; FILE *fout = stdout; FILE *foct = NULL; char *fin_name = NULL; char *fout_name = NULL; char *log_name = NULL; int logframes = NFRAMES; int verbose = 0; int phase_est_bandwidth_mode = AUTO_PHASE_EST; int ldpc_en = 0; int Ndatabitsperpacket = 0; int packetsperburst = 0; bool testframes = false; bool input_specified = false; bool output_specified = false; bool log_specified = false; bool log_active = false; bool dpsk = false; float time_to_sync = -1; float start_secs = 0.0; float len_secs = 0.0; float skip_secs = 0.0; /* set up the default modem config */ struct OFDM_CONFIG *ofdm_config = (struct OFDM_CONFIG *) calloc(1, sizeof (struct OFDM_CONFIG)); assert(ofdm_config != NULL); char mode[32] = "700D"; ofdm_init_mode(mode, ofdm_config); struct optparse options; struct optparse_long longopts[] = { {"in", 'a', OPTPARSE_REQUIRED}, {"out", 'b', OPTPARSE_REQUIRED}, {"log", 'c', OPTPARSE_REQUIRED}, {"testframes", 'd', OPTPARSE_NONE}, {"bandwidth", 'o', OPTPARSE_REQUIRED}, {"tx_freq", 'f', OPTPARSE_REQUIRED}, {"rx_freq", 'g', OPTPARSE_REQUIRED}, {"verbose", 'v', OPTPARSE_REQUIRED}, {"ldpc", 'i', OPTPARSE_NONE}, {"nc", 'j', OPTPARSE_REQUIRED}, {"tcp", 'k', OPTPARSE_REQUIRED}, {"ts", 'l', OPTPARSE_REQUIRED}, {"ns", 'm', OPTPARSE_REQUIRED}, {"np", 'n', OPTPARSE_REQUIRED}, {"databits", 'p', OPTPARSE_REQUIRED}, {"start_secs", 'x', OPTPARSE_REQUIRED}, {"len_secs", 'y', OPTPARSE_REQUIRED}, {"skip_secs", 'z', OPTPARSE_REQUIRED}, {"dpsk", 'q', OPTPARSE_NONE}, {"mode", 'r', OPTPARSE_REQUIRED}, {"packetsperburst", 'e', OPTPARSE_REQUIRED}, {0, 0, 0} }; optparse_init(&options, argv); while ((opt = optparse_long(&options, longopts, NULL)) != -1) { switch (opt) { case '?': opt_help(); case 'a': fin_name = options.optarg; input_specified = true; break; case 'b': fout_name = options.optarg; output_specified = true; break; case 'c': log_name = options.optarg; log_specified = true; log_active = true; break; case 'd': testframes = true; break; case 'e': packetsperburst = atoi(options.optarg); fprintf(stderr, "burst data mode!\n"); break; case 'i': ldpc_en = 1; break; case 'f': ofdm_config->tx_centre = atof(options.optarg); break; case 'g': ofdm_config->rx_centre = atof(options.optarg); break; case 'j': val = atoi(options.optarg); if (val > 62 || val < 17) { opt_help(); } else { ofdm_config->nc = val; } break; case 'k': ofdm_config->tcp = atof(options.optarg); break; case 'l': ofdm_config->ts = atof(options.optarg); ofdm_config->rs = 1.0f/ofdm_config->ts; break; case 'm': ofdm_config->ns = atoi(options.optarg); break; case 'n': ofdm_config->np = atoi(options.optarg); break; case 'o': phase_est_bandwidth_mode = atoi(options.optarg); break; case 'p': Ndatabitsperpacket = atoi(options.optarg); break; case 'q': dpsk = true; break; case 'r': strcpy(mode, options.optarg); ofdm_init_mode(mode, ofdm_config); break; case 'v': verbose = atoi(options.optarg); if (verbose < 0 || verbose > 3) verbose = 0; break; case 'x': start_secs = atoi(options.optarg); break; case 'y': len_secs = atoi(options.optarg); break; case 'z': skip_secs = atoi(options.optarg); break; } } /* Print remaining arguments to give user a hint */ char *arg; while ((arg = optparse_arg(&options))) fprintf(stderr, "%s\n", arg); if (input_specified == true) { if ((fin = fopen(fin_name, "rb")) == NULL) { fprintf(stderr, "Error opening input modem sample file: %s\n", fin_name); exit(-1); } } if (output_specified == true) { if ((fout = fopen(fout_name, "wb")) == NULL) { fprintf(stderr, "Error opening output file: %s\n", fout_name); exit(-1); } } if (log_specified == true) { if ((foct = fopen(log_name, "wt")) == NULL) { fprintf(stderr, "Error opening Octave output file: %s\n", log_name); exit(-1); } } /* Create OFDM modem ----------------------------------------------------*/ struct OFDM *ofdm = ofdm_create(ofdm_config); assert(ofdm != NULL); free(ofdm_config); ofdm_set_phase_est_bandwidth_mode(ofdm, phase_est_bandwidth_mode); ofdm_set_dpsk(ofdm, dpsk); // default to one packet per burst for burst mode if (packetsperburst) { ofdm_set_packets_per_burst(ofdm, packetsperburst); } /* Get a copy of the actual modem config (ofdm_create() fills in more parameters) */ ofdm_config = ofdm_get_config_param(ofdm); int ofdm_bitsperframe = ofdm_get_bits_per_frame(ofdm); int ofdm_rowsperframe = ofdm_bitsperframe / (ofdm_config->nc * ofdm_config->bps); int ofdm_nuwbits = ofdm_config->nuwbits; int ofdm_ntxtbits = ofdm_config->txtbits; float phase_est_pilot_log[ofdm_rowsperframe * NFRAMES][ofdm_config->nc]; COMP rx_np_log[ofdm_rowsperframe * ofdm_config->nc * NFRAMES]; float rx_amp_log[ofdm_rowsperframe * ofdm_config->nc * NFRAMES]; float foff_hz_log[NFRAMES]; int timing_est_log[NFRAMES]; /* zero out the log arrays in case we don't run for NFRAMES and fill them with data */ for (i = 0; i < (ofdm_rowsperframe * NFRAMES); i++) { for (j = 0; j < ofdm_config->nc; j++) { phase_est_pilot_log[i][j] = 0.0f; } } for (i = 0; i < (ofdm_rowsperframe * ofdm_config->nc * NFRAMES); i++) { rx_np_log[i].real = 0.0f; rx_np_log[i].imag = 0.0f; rx_amp_log[i] = 0.0f; } for (i = 0; i < NFRAMES; i++) { foff_hz_log[i] = 0.0f; timing_est_log[i] = 0.0f; } /* some useful constants */ int Nbitsperframe = ofdm_bitsperframe; int Nbitsperpacket = ofdm_get_bits_per_packet(ofdm); int Nsymsperframe = Nbitsperframe / ofdm_config->bps; int Nsymsperpacket = Nbitsperpacket / ofdm_config->bps; int Nmaxsamperframe = ofdm_get_max_samples_per_frame(ofdm); int Npayloadbitsperframe = ofdm_bitsperframe - ofdm_nuwbits - ofdm_ntxtbits; int Npayloadbitsperpacket = Nbitsperpacket - ofdm_nuwbits - ofdm_ntxtbits; int Npayloadsymsperframe = Npayloadbitsperframe/ofdm_config->bps; int Npayloadsymsperpacket = Npayloadbitsperpacket/ofdm_config->bps; /* Set up LPDC codes */ struct LDPC ldpc; COMP payload_syms[Npayloadsymsperpacket]; float payload_amps[Npayloadsymsperpacket]; if (ldpc_en) { ldpc_codes_setup(&ldpc, ofdm->codename); if (verbose > 1) { fprintf(stderr, "using: %s\n", ofdm->codename); } /* here is where we can change data bits per frame to a number smaller than LDPC code input data bits_per_frame */ if (Ndatabitsperpacket) { set_data_bits_per_frame(&ldpc, Ndatabitsperpacket); } Ndatabitsperpacket = ldpc.data_bits_per_frame; assert(Ndatabitsperpacket <= ldpc.ldpc_data_bits_per_frame); assert(Npayloadbitsperpacket <= ldpc.ldpc_coded_bits_per_frame); if (verbose > 1) { fprintf(stderr, "LDPC codeword data bits = %d\n", ldpc.ldpc_data_bits_per_frame); fprintf(stderr, "LDPC codeword total bits = %d\n", ldpc.ldpc_coded_bits_per_frame); fprintf(stderr, "LDPC codeword data bits used = %d\n", Ndatabitsperpacket); fprintf(stderr, "LDPC codeword total length in modem packet = %d\n", Npayloadbitsperpacket); } } if (verbose != 0) { ofdm_set_verbose(ofdm, verbose); } complex float rx_syms[Nsymsperpacket]; float rx_amps[Nsymsperpacket]; for(int i=0; idata_mode) == 0) Ndiscard = NDISCARD; /* backwards compatability with 700D/2020 */ else Ndiscard = 1; /* much longer packets, so discard thresh smaller */ float EsNo = 3.0f; if (verbose == 2) fprintf(stderr, "Warning EsNo: %f hard coded\n", EsNo); /* More logging */ COMP payload_syms_log[NFRAMES][Npayloadsymsperframe]; float payload_amps_log[NFRAMES][Npayloadsymsperframe]; for (i = 0; i < NFRAMES; i++) { for (j = 0; j < Npayloadsymsperframe; j++) { payload_syms_log[i][j].real = 0.0f; payload_syms_log[i][j].imag = 0.0f; payload_amps_log[i][j] = 0.0f; } } int nin_frame = ofdm_get_nin(ofdm); int f = 0; int finish = 0; if (start_secs != 0.0) { int offset = start_secs*FS*sizeof(short); fseek(fin, offset, SEEK_SET); } while ((fread(rx_scaled, sizeof (short), nin_frame, fin) == nin_frame) && !finish) { if (verbose >= 2) fprintf(stderr, "%3d nin: %4d st: %-6s ", f, nin_frame,statemode[ofdm->sync_state]); bool log_payload_syms = false; Nerrs_raw = Nerrs_coded = 0; /* demod */ if (ofdm->sync_state == search) { ofdm_sync_search_shorts(ofdm, rx_scaled, (ofdm->amp_scale / 2.0f)); } if ((ofdm->sync_state == synced) || (ofdm->sync_state == trial)) { log_payload_syms = true; /* demod the latest modem frame */ ofdm_demod_shorts(ofdm, rx_bits, rx_scaled, (ofdm->amp_scale / 2.0f)); /* accumulate a buffer of data symbols for this packet */ for(i=0; irx_np, sizeof(complex float)*Nsymsperframe); memcpy(&rx_amps[Nsymsperpacket-Nsymsperframe], ofdm->rx_amp, sizeof(float)*Nsymsperframe); /* look for UW as frames enter packet buffer, note UW may span several modem frames */ int st_uw = Nsymsperpacket - ofdm->nuwframes*Nsymsperframe; ofdm_extract_uw(ofdm, &rx_syms[st_uw], &rx_amps[st_uw], rx_uw); if (ofdm->modem_frame == (ofdm->np-1)) { /* we have received enough frames to make a complete packet .... */ /* extract payload symbols from packet */ ofdm_disassemble_qpsk_modem_packet(ofdm, rx_syms, rx_amps, payload_syms, payload_amps, txt_bits); if (ldpc_en) { assert((ofdm_nuwbits + ofdm_ntxtbits + Npayloadbitsperpacket) <= Nbitsperpacket); /* run de-interleaver */ COMP payload_syms_de[Npayloadsymsperpacket]; float payload_amps_de[Npayloadsymsperpacket]; gp_deinterleave_comp(payload_syms_de, payload_syms, Npayloadsymsperpacket); gp_deinterleave_float(payload_amps_de, payload_amps, Npayloadsymsperpacket); float llr[Npayloadbitsperpacket]; uint8_t out_char[Npayloadbitsperpacket]; if (testframes == true) { Nerrs_raw = count_uncoded_errors(&ldpc, ofdm_config, payload_syms_de,0); Terrs += Nerrs_raw; Tbits += Npayloadbitsperpacket; /* not counting errors in txt bits */ } symbols_to_llrs(llr, payload_syms_de, payload_amps_de, EsNo, ofdm->mean_amp, Npayloadsymsperpacket); assert(Ndatabitsperpacket == ldpc.data_bits_per_frame); if (ldpc.data_bits_per_frame == ldpc.ldpc_data_bits_per_frame) { /* all data bits in code word used */ iter = run_ldpc_decoder(&ldpc, out_char, llr, &parityCheckCount); } else { /* some unused data bits, set these to known values to strengthen code */ float llr_full_codeword[ldpc.ldpc_coded_bits_per_frame]; int unused_data_bits = ldpc.ldpc_data_bits_per_frame - ldpc.data_bits_per_frame; // received data bits for (i = 0; i < ldpc.data_bits_per_frame; i++) llr_full_codeword[i] = llr[i]; // known bits ... so really likely for (i = ldpc.data_bits_per_frame; i < ldpc.ldpc_data_bits_per_frame; i++) llr_full_codeword[i] = -100.0; // parity bits at end for (i = ldpc.ldpc_data_bits_per_frame; i < ldpc.ldpc_coded_bits_per_frame; i++) llr_full_codeword[i] = llr[i - unused_data_bits]; iter = run_ldpc_decoder(&ldpc, out_char, llr_full_codeword, &parityCheckCount); } if (testframes == true) { /* construct payload data bits */ uint8_t payload_data_bits[Ndatabitsperpacket]; ofdm_generate_payload_data_bits(payload_data_bits, Ndatabitsperpacket); Nerrs_coded = count_errors(payload_data_bits, out_char, Ndatabitsperpacket); Terrs_coded += Nerrs_coded; Tbits_coded += Ndatabitsperpacket; if (Nerrs_coded) Tper++; } fwrite(out_char, sizeof (char), Ndatabitsperpacket, fout); } else { /* simple hard decision output for uncoded testing, all bits in frame dumped including UW and txt */ for (i = 0; i < Nbitsperpacket; i++) { rx_bits_char[i] = rx_bits[i]; } fwrite(rx_bits_char, sizeof (uint8_t), Nbitsperpacket, fout); } /* optional error counting on uncoded data in non-LDPC testframe mode */ if ((testframes == true) && (ldpc_en == 0)) { /* build up a test frame consisting of unique word, txt bits, and psuedo-random uncoded payload bits. The psuedo-random generator is the same as Octave so it can interoperate with ofdm_tx.m/ofdm_rx.m */ uint8_t payload_bits[Npayloadbitsperpacket]; uint8_t txt_bits[ofdm_ntxtbits]; memset(txt_bits, 0, ofdm_ntxtbits); uint8_t tx_bits[Nbitsperpacket]; ofdm_generate_payload_data_bits(payload_bits, Npayloadbitsperpacket); ofdm_assemble_qpsk_modem_packet(ofdm, tx_bits, payload_bits, txt_bits); /* count errors across UW, payload, txt bits */ int rx_bits[Nbitsperpacket]; int dibit[2]; assert(ofdm->bps == 2); /* this only works for QPSK at this stage */ for(int s=0; s= Ndiscard) { Terrs2 += Nerrs_raw; Tbits2 += Nbitsperpacket; } } packet_count++; float EsNodB = ofdm_esno_est_calc(rx_syms, Npayloadsymsperpacket); SNR3kdB = ofdm_snr_from_esno(ofdm, EsNodB); sum_SNR3kdB += SNR3kdB; } /* complete packet */ frame_count++; } /* per-frame modem processing */ nin_frame = ofdm_get_nin(ofdm); ofdm_sync_state_machine(ofdm, rx_uw); /* act on any events returned by state machine */ if (!strcmp(ofdm->data_mode, "streaming") && ofdm->sync_start ) { Terrs = Tbits = Terrs2 = Tbits2 = Terrs_coded = Tbits_coded = frame_count = packet_count = 0; Nerrs_raw = 0; Nerrs_coded = 0; } if (verbose >= 2) { if (ofdm->last_sync_state != search) { if ((ofdm->modem_frame == 0) && (ofdm->last_sync_state != trial)) { /* weve just received a complete packet, so print all stats */ fprintf(stderr, "euw: %2d %1d mf: %2d f: %5.1f pbw: %d eraw: %3d ecdd: %3d iter: %3d pcc: %3d snr: %5.2f\n", ofdm->uw_errors, ofdm->sync_counter, ofdm->modem_frame, ofdm->foff_est_hz, ofdm->phase_est_bandwidth, Nerrs_raw, Nerrs_coded, iter, parityCheckCount, SNR3kdB); } else { /* weve just received a modem frame, abbreviated stats */ fprintf(stderr, "euw: %2d %1d mf: %2d f: %5.1f pbw: %d\n", ofdm->uw_errors, ofdm->sync_counter, ofdm->modem_frame, ofdm->foff_est_hz, ofdm->phase_est_bandwidth); } } /* detect a successful sync for time to sync tests */ if ((time_to_sync < 0) && ((ofdm->sync_state == synced) || (ofdm->sync_state == trial))) if ((parityCheckCount > 80) && (iter != 100)) time_to_sync = (float)(f+1)*ofdm_get_samples_per_frame(ofdm)/FS; } /* optional logging of states */ if (log_active == true) { /* note corrected phase (rx no phase) is one big linear array for frame */ for (i = 0; i < ofdm_rowsperframe * ofdm_config->nc; i++) { rx_np_log[ofdm_rowsperframe * ofdm_config->nc * f + i].real = crealf(ofdm->rx_np[i]); rx_np_log[ofdm_rowsperframe * ofdm_config->nc * f + i].imag = cimagf(ofdm->rx_np[i]); } /* note phase/amp ests the same for each col, but check them all anyway */ for (i = 0; i < ofdm_rowsperframe; i++) { for (j = 0; j < ofdm_config->nc; j++) { phase_est_pilot_log[ofdm_rowsperframe * f + i][j] = ofdm->aphase_est_pilot_log[ofdm_config->nc * i + j]; rx_amp_log[ofdm_rowsperframe * ofdm_config->nc * f + ofdm_config->nc * i + j] = ofdm->rx_amp[ofdm_config->nc * i + j]; } } foff_hz_log[f] = ofdm->foff_est_hz; timing_est_log[f] = ofdm->timing_est + 1; /* offset by 1 to match Octave */ if (log_payload_syms == true) { for (i = 0; i < Npayloadsymsperpacket; i++) { payload_syms_log[f][i].real = payload_syms[i].real; payload_syms_log[f][i].imag = payload_syms[i].imag; payload_amps_log[f][i] = payload_amps[i]; } } if (f == (logframes - 1)) log_active = false; } if (len_secs != 0.0) { float secs = (float)f*ofdm_get_samples_per_frame(ofdm)/FS; if (secs >= len_secs) finish = 1; } if (skip_secs != 0.0) { /* big nasty timing error */ float secs = (float)f*ofdm_get_samples_per_frame(ofdm)/FS; if (secs >= skip_secs) { assert(fread(rx_scaled, sizeof (short), nin_frame/2, fin) == nin_frame/2); fprintf(stderr," Skip! Just introduced a nasty big timing slip\n"); skip_secs = 0.0; /* make sure we just introduce one error */ } } f++; } ofdm_destroy(ofdm); if (input_specified == true) fclose(fin); if (output_specified == true) fclose(fout); /* optionally dump Octave files */ if (log_specified == true) { octave_save_float(foct, "phase_est_pilot_log_c", (float*) phase_est_pilot_log, ofdm_rowsperframe*NFRAMES, ofdm_config->nc, ofdm_config->nc); octave_save_complex(foct, "rx_np_log_c", (COMP*) rx_np_log, 1, ofdm_rowsperframe * ofdm_config->nc*NFRAMES, ofdm_rowsperframe * ofdm_config->nc * NFRAMES); octave_save_float(foct, "rx_amp_log_c", (float*) rx_amp_log, 1, ofdm_rowsperframe * ofdm_config->nc*NFRAMES, ofdm_rowsperframe * ofdm_config->nc * NFRAMES); octave_save_float(foct, "foff_hz_log_c", foff_hz_log, NFRAMES, 1, 1); octave_save_int(foct, "timing_est_log_c", timing_est_log, NFRAMES, 1); octave_save_complex(foct, "payload_syms_log_c", (COMP*) payload_syms_log, NFRAMES, Npayloadsymsperpacket, Npayloadsymsperpacket); octave_save_float(foct, "payload_amps_log_c", (float*) payload_amps_log, NFRAMES, Npayloadsymsperpacket, Npayloadsymsperpacket); fclose(foct); } if ((strlen(ofdm->data_mode) == 0) && (verbose == 2)) printf("time_to_sync: %f\n", time_to_sync); int ret = 0; if (testframes == true) { float uncoded_ber = (float) Terrs / Tbits; float coded_ber = 0.0; if (verbose != 0) { fprintf(stderr, "BER......: %5.4f Tbits: %5d Terrs: %5d Tpackets: %5d SNR3kdB: %5.2f\n", uncoded_ber, Tbits, Terrs, packet_count, sum_SNR3kdB/packet_count); if ((ldpc_en == 0) && (packet_count > Ndiscard)) { fprintf(stderr, "BER2.....: %5.4f Tbits: %5d Terrs: %5d\n", (float) Terrs2 / Tbits2, Tbits2, Terrs2); } } /* set return code for Ctest, 1 for fail */ if (ldpc_en) { coded_ber = (float) Terrs_coded / Tbits_coded; if (verbose != 0) { fprintf(stderr, "Coded BER: %5.4f Tbits: %5d Terrs: %5d\n", coded_ber, Tbits_coded, Terrs_coded); fprintf(stderr, "Coded PER: %5.4f Tpkts: %5d Tpers: %5d Thruput: %5d\n", (float)Tper/packet_count, packet_count, Tper, packet_count - Tper); } if ((Tbits_coded == 0) || (coded_ber >= 0.01f)) ret = 1; } if ((Tbits == 0) || (uncoded_ber >= 0.1f)) ret = 1; } if (strlen(ofdm->data_mode)) { fprintf(stderr, "Npre.....: %6d Npost: %5d uw_fails: %2d\n", ofdm->pre, ofdm->post, ofdm->uw_fails); } return ret; } codec2-1.0.1/src/ofdm_get_test_bits.c000066400000000000000000000110231412132000500174300ustar00rootroot00000000000000/*---------------------------------------------------------------------------*\ FILE........: ofdm_get_test_bits.c AUTHOR......: David Rowe DATE CREATED: Mar 2018 Generate input for the OFDM modem in either coded or uncoded mode. \*---------------------------------------------------------------------------*/ /* Copyright (C) 2018 David Rowe All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 2.1, as published by the Free Software Foundation. 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 Lesser General Public License along with this program; if not, see . */ #define OPTPARSE_IMPLEMENTATION #define OPTPARSE_API static #include "optparse.h" #include #include #include #include #include #include #include "codec2_ofdm.h" #include "ofdm_internal.h" #include "ldpc_codes.h" #include "interldpc.h" #include "varicode.h" #define IS_DIR_SEPARATOR(c) ((c) == '/') static const char *progname; void opt_help() { fprintf(stderr, "\nUsage: %s [options]\n\n", progname); fprintf(stderr, " --out filename Name of OutputOneCharPerBitFile\n"); fprintf(stderr, " --frames n Number of frames to output (default 10)\n"); fprintf(stderr, " --length n Frame length in bits (default 238)\n"); fprintf(stderr, " --bcb Insert burst control byte at the start of each frame (FSK_LDPC testing)\n"); fprintf(stderr, " --verbose Output variable assigned values to stderr\n\n"); exit(-1); } int main(int argc, char *argv[]) { FILE *fout; char *fout_name = NULL; int opt, verbose, n; int Nframes, output_specified, bcb_en; int Ndatabitsperpacket; uint8_t burst_control; char *pn = argv[0] + strlen (argv[0]); while (pn != argv[0] && !IS_DIR_SEPARATOR (pn[-1])) --pn; progname = pn; /* Turn off stream buffering */ setvbuf(stdout, NULL, _IONBF, BUFSIZ); fout = stdout; output_specified = 0; Nframes = 10; Ndatabitsperpacket = 224; verbose = 0; bcb_en = 0; struct optparse options; struct optparse_long longopts[] = { {"bcb", 'b', OPTPARSE_NONE}, {"out", 'o', OPTPARSE_REQUIRED}, {"frames", 'n', OPTPARSE_REQUIRED}, {"length", 'l', OPTPARSE_REQUIRED}, {"verbose", 'v', OPTPARSE_NONE}, {0, 0, 0} }; optparse_init(&options, argv); while ((opt = optparse_long(&options, longopts, NULL)) != -1) { switch (opt) { case '?': opt_help(); case 'b': bcb_en = 1; break; case 'o': fout_name = options.optarg; output_specified = 1; break; case 'n': Nframes = atoi(options.optarg); break; case 'l': Ndatabitsperpacket = atoi(options.optarg); break; case 'v': verbose = 1; } } /* Print remaining arguments to give user a hint */ char *arg; while ((arg = optparse_arg(&options))) fprintf(stderr, "%s\n", arg); if (output_specified) { if ((fout = fopen(fout_name, "wb")) == NULL) { fprintf(stderr, "Error opening output bit file: %s\n", fout_name); exit(-1); } } if (verbose) fprintf(stderr, "Nframes: %d Ndatabitsperframe: %d bcb: %d\n", Nframes, Ndatabitsperpacket, bcb_en); uint8_t data_bits[Ndatabitsperpacket]; ofdm_generate_payload_data_bits(data_bits, Ndatabitsperpacket); burst_control = 1; for (n = 0; n. */ #ifndef OFDM_INTERNAL_H #define OFDM_INTERNAL_H #include #include #include #include "codec2_ofdm.h" #include "filter.h" #ifdef __cplusplus extern "C" { #endif #ifndef M_PI #define M_PI 3.14159265358979323846f #endif #define TAU (2.0f * M_PI) #define ROT45 (M_PI / 4.0f) #define MAX_UW_BITS 64 #define cmplx(value) (cosf(value) + sinf(value) * I) #define cmplxconj(value) (cosf(value) + sinf(value) * -I) /* modem state machine states */ typedef enum { search, trial, synced } State; typedef enum { unsync, /* force sync state machine to lose sync, and search for new sync */ autosync, /* falls out of sync automatically */ manualsync /* fall out of sync only under operator control */ } Sync; /* phase estimator bandwidth options */ typedef enum { low_bw, /* can only track a narrow freq offset, but accurate */ high_bw /* can track wider freq offset, but less accurate at low SNR */ } PhaseEstBandwidth; /* * User-defined configuration for OFDM modem. Used to set up * constants at init time, e.g. for different bit rate modems. */ struct OFDM_CONFIG { float tx_centre; /* TX Centre Audio Frequency */ float rx_centre; /* RX Centre Audio Frequency */ float fs; /* Sample Frequency */ float rs; /* Symbol Rate */ float ts; /* symbol duration */ float tcp; /* Cyclic Prefix duration */ float timing_mx_thresh; int nc; /* Number of carriers */ int ns; /* Number of Symbol frames */ int np; /* number of modem frames per packet */ int bps; /* Bits per Symbol */ int txtbits; /* number of auxiliary data bits */ int nuwbits; /* number of unique word bits */ int bad_uw_errors; int ftwindowwidth; int edge_pilots; char *state_machine; /* name of sync state machine used for this mode */ char *codename; /* name of LDPC code used with this mode */ uint8_t tx_uw[MAX_UW_BITS]; /* user defined unique word */ int amp_est_mode; bool tx_bpf_en; /* default clippedtx BPF state */ bool foff_limiter; /* tames freq offset updates in low SNR */ float amp_scale; /* used to scale Tx waveform to approx FREEDV_PEAK with clipper off */ float clip_gain1; /* gain we apply to Tx signal before clipping to control PAPR*/ float clip_gain2; /* gain we apply to Tx signal after clipping and BBF to control peak level */ bool clip_en; char mode[16]; /* OFDM mode in string form */ char *data_mode; }; struct OFDM { struct OFDM_CONFIG config; char mode[16]; /* mode in string form */ /* * See 700D Part 4 Acquisition blog post and ofdm_dev.m routines * for how this was set */ float timing_mx_thresh; int nc; int ns; /* NS-1 = data symbols between pilots */ int bps; /* Bits per symbol */ int m; /* duration of each symbol in samples */ int ncp; /* duration of CP in samples */ int np; /* number of modem frames per packet. In some modes we want */ /* the total packet of data to span multiple modem frames, e.g. HF data */ /* and/or when the FEC codeword is larger than the one */ /* modem frame. In other modes (e.g. 700D/2020) Np=1, ie the modem frame */ /* is the same length as the packet/FEC frame. */ int ftwindowwidth; int bitsperframe; /* total bits in all data symbols in modem frame */ int bitsperpacket; /* total bits in all data symbols in a packet */ int rowsperframe; int samplespersymbol; int samplesperframe; int nrxbufhistory; /* extra storage at start of rxbuf to allow us to step back in time */ int nrxbufmin; /* min number of samples we need in rxbuf to process a modem frame */ int rxbufst; /* start of rxbuf window used for demod of current rx frame */ int pre, post; /* pre-amble and post-amble detections */ int max_samplesperframe; int nuwframes; int nrxbuf; int ntxtbits; /* reserve bits/frame for aux text information */ int nuwbits; /* number of unique word bits used to achieve packet frame sync */ int bad_uw_errors; /* threshold for UW detection check */ int uw_fails; /* number of times we exceeded bad_uw_errors and dropped sync */ int edge_pilots; /* insert pilots at 1 and Nc+2, to support low bandwidth phase est */ char *data_mode; /* "", "streaming", "burst" */ int packetsperburst; /* for OFDM data modes, how many packets before we reset state machine */ int amp_est_mode; /* amplitude estimtor algorithm */ float amp_scale; float clip_gain1; float clip_gain2; bool clip_en; float tx_centre; /* TX Center frequency */ float rx_centre; /* RX Center frequency */ float fs; /* Sample rate */ float ts; /* Symbol cycle time */ float rs; /* Symbol rate */ float tcp; /* Cyclic prefix duration */ float tpacket; /* time for one packet in ms */ float inv_m; /* 1/m */ float tx_nlower; /* TX lowest carrier freq */ float rx_nlower; /* RX lowest carrier freq */ float doc; /* division of radian circle */ // Pointers struct quisk_cfFilter *tx_bpf; complex float *pilot_samples; complex float *rxbuf; complex float *pilots; complex float **rx_sym; complex float *rx_np; complex float *tx_uw_syms; COMP *tx_preamble; COMP *tx_postamble; float *rx_amp; float *aphase_est_pilot_log; uint8_t tx_uw[MAX_UW_BITS]; int *uw_ind; int *uw_ind_sym; // State enums State sync_state; State last_sync_state; // Sync enums Sync sync_mode; // Phase enums PhaseEstBandwidth phase_est_bandwidth; int phase_est_bandwidth_mode; // Complex complex float foff_metric; // Float float foff_est_gain; bool foff_limiter; float foff_est_hz; float timing_mx; float coarse_foff_est_hz; float timing_norm; float mean_amp; // Integer int clock_offset_counter; int verbose; int sample_point; int timing_est; int timing_valid; int ct_est; int nin; int uw_errors; int sync_counter; int frame_count; /* general purpose counter of modem frames */ int packet_count; /* data mode: number of packets received so far */ int modem_frame; /* increments for every modem frame in packet */ // Boolean bool sync_start; bool sync_end; bool timing_en; bool foff_est_en; bool phase_est_en; bool tx_bpf_en; bool dpsk_en; bool postambledetectoren; /* allows us to optionally disable the postamble detector */ char *codename; char *state_machine; }; /* Prototypes */ complex float qpsk_mod(int *); complex float qam16_mod(int *); void qpsk_demod(complex float, int *); void qam16_demod(complex float, int *); void ofdm_txframe(struct OFDM *, complex float *, complex float []); void ofdm_assemble_qpsk_modem_packet(struct OFDM *, uint8_t [], uint8_t [], uint8_t []); void ofdm_assemble_qpsk_modem_packet_symbols(struct OFDM *, complex float [], COMP [], uint8_t []); void ofdm_disassemble_qpsk_modem_packet(struct OFDM *, complex float rx_syms[], float rx_amps[], COMP [], float [], short []); void ofdm_disassemble_qpsk_modem_packet_with_text_amps(struct OFDM *, complex float rx_syms[], float rx_amps[], COMP [], float [], short [], int*); void ofdm_extract_uw(struct OFDM *ofdm, complex float rx_syms[], float rx_amps[], uint8_t rx_uw[]); void ofdm_rand(uint16_t [], int); void ofdm_rand_seed(uint16_t r[], int n, uint64_t seed) ; void ofdm_generate_payload_data_bits(uint8_t data_bits[], int n); void ofdm_generate_preamble(struct OFDM *ofdm, COMP *tx_preamble, int seed); int ofdm_get_phase_est_bandwidth_mode(struct OFDM *); void ofdm_set_phase_est_bandwidth_mode(struct OFDM *, int); void ofdm_clip(complex float tx[], float clip_thresh, int n); void ofdm_hilbert_clipper(struct OFDM *ofdm, complex float *tx, size_t n); float ofdm_esno_est_calc(complex float *rx_sym, int nsym); float ofdm_snr_from_esno(struct OFDM *ofdm, float EsNodB); void ofdm_get_demod_stats(struct OFDM *ofdm, struct MODEM_STATS *stats, complex float *rx_syms, int Nsymsperpacket); #ifdef __cplusplus } #endif #endif codec2-1.0.1/src/ofdm_mod.c000066400000000000000000000360231412132000500153570ustar00rootroot00000000000000/*---------------------------------------------------------------------------*\ FILE........: ofdm_mod.c AUTHOR......: David Rowe DATE CREATED: March 2018 Given an input file of bits (note one bit per char format), outputs a raw file (8kHz, 16 bit shorts) of OFDM modem samples ready to send over a HF radio channel. \*---------------------------------------------------------------------------*/ /* Copyright (C) 2018 David Rowe All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 2.1, as published by the Free Software Foundation. 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 Lesser General Public License along with this program; if not, see . */ #define OPTPARSE_IMPLEMENTATION #define OPTPARSE_API static #include "optparse.h" #include #include #include #include #include #include "codec2_ofdm.h" #include "ofdm_internal.h" #include "gp_interleaver.h" #include "ldpc_codes.h" #include "interldpc.h" #include "varicode.h" #define IS_DIR_SEPARATOR(c) ((c) == '/') static const char *progname; void opt_help() { fprintf(stderr, "\nusage: %s [options]\n\n", progname); fprintf(stderr, " --in filename Name of InputOneCharPerBitFile\n"); fprintf(stderr, " --out filename Name of OutputModemRawFile\n"); fprintf(stderr, " --mode modeName Predefined mode 700D|700E|2020|datac0|datac1|datac3\n"); fprintf(stderr, " --nc [17..62] Number of Carriers (17 default, 62 max)\n"); fprintf(stderr, " --ns symbols One pilot every ns symbols (8 default)\n"); fprintf(stderr, " --tcp Nsecs Cyclic Prefix Duration (.002 default)\n"); fprintf(stderr, " --ts Nsecs Symbol Duration (.018 default)\n"); fprintf(stderr, " --testframes Nsecs Transmit test frames for Nsec (--testframes NpacketsPerBurst in burst mode)\n"); fprintf(stderr, " --tx_freq freq Set an optional modulation TX centre frequency (1500.0 default)\n"); fprintf(stderr, " --rx_freq freq Set an optional modulation RX centre frequency (1500.0 default)\n\n"); fprintf(stderr, " --verbose [1|2|3] Verbose output level to stderr (default off)\n"); fprintf(stderr, " --txbpf Transmit band pass filter boolean (default off)\n"); fprintf(stderr, " --text Include a standard text message boolean (default off)\n"); fprintf(stderr, " -i --ldpc [1|2] Run LDPC decoder (1 -> (224,112) 700D code, 2 -> (504,396) 2020 code).\n" " In testframe mode raw and coded errors will be counted.\n"); fprintf(stderr, " -p --databits numBits Number of data bits used in LDPC codeword.\n"); fprintf(stderr, " --dpsk Differential PSK.\n"); fprintf(stderr, " --bursts nBursts Burst mode: Send nBursts of testframes each\n"); fprintf(stderr, "\n"); exit(-1); } int main(int argc, char *argv[]) { char *fin_name, *fout_name; int i, opt, val; char *pn = argv[0] + strlen(argv[0]); while (pn != argv[0] && !IS_DIR_SEPARATOR(pn[-1])) --pn; progname = pn; /* Turn off stream buffering */ setvbuf(stdin, NULL, _IONBF, BUFSIZ); setvbuf(stdout, NULL, _IONBF, BUFSIZ); FILE *fin = stdin; FILE *fout = stdout; /* set for LDPC coded or uncoded frames */ int ldpc_en = 0; int input_specified = 0; int output_specified = 0; int verbose = 0; int txbpf_en = 0; int testframes = 0; int use_text = 0; int dpsk = 0; int Npackets = 0; int Nsec = 0; int burst_mode = 0; int Nbursts = 1; /* set up the default modem config */ struct OFDM_CONFIG *ofdm_config = (struct OFDM_CONFIG *) calloc(1, sizeof (struct OFDM_CONFIG)); assert(ofdm_config != NULL); char mode[32] = "700D"; ofdm_init_mode(mode, ofdm_config); int Ndatabitsperpacket = 0; struct optparse options; struct optparse_long longopts[] = { {"in", 'a', OPTPARSE_REQUIRED}, {"out", 'b', OPTPARSE_REQUIRED}, {"nc", 'c', OPTPARSE_REQUIRED}, {"ns", 'm', OPTPARSE_REQUIRED}, {"tcp", 'd', OPTPARSE_REQUIRED}, {"ts", 'e', OPTPARSE_REQUIRED}, {"testframes", 'f', OPTPARSE_REQUIRED}, {"tx_freq", 'n', OPTPARSE_REQUIRED}, {"rx_freq", 'i', OPTPARSE_REQUIRED}, {"ldpc", 'j', OPTPARSE_NONE}, {"txbpf", 'k', OPTPARSE_NONE}, {"text", 'l', OPTPARSE_NONE}, {"verbose", 'v', OPTPARSE_REQUIRED}, {"databits", 'p', OPTPARSE_REQUIRED}, {"dpsk", 'q', OPTPARSE_NONE}, {"mode", 'g', OPTPARSE_REQUIRED}, {"help", 'h', OPTPARSE_NONE}, {"bursts", 'o', OPTPARSE_REQUIRED}, {0, 0, 0} }; optparse_init(&options, argv); while ((opt = optparse_long(&options, longopts, NULL)) != -1) { switch (opt) { case '?': case 'h': opt_help(); case 'a': fin_name = options.optarg; input_specified = 1; break; case 'b': fout_name = options.optarg; output_specified = 1; break; case 'c': val = atoi(options.optarg); if (val > 62 || val < 17) { opt_help(); } else { ofdm_config->nc = val; } break; case 'd': ofdm_config->tcp = atof(options.optarg); break; case 'e': ofdm_config->ts = atof(options.optarg); ofdm_config->rs = 1.0f / ofdm_config->ts; break; case 'm': ofdm_config->ns = atoi(options.optarg); break; case 'f': testframes = 1; Nsec = atoi(options.optarg); break; case 'g': strcpy(mode, options.optarg); ofdm_init_mode(mode, ofdm_config); break; case 'n': ofdm_config->tx_centre = atof(options.optarg); break; case 'o': burst_mode = 1; Nbursts = atoi(options.optarg); fprintf(stderr, "bursts: %d\n", Nbursts); break; case 'i': ofdm_config->rx_centre = atof(options.optarg); break; case 'j': ldpc_en = 1; break; case 'k': txbpf_en = 1; break; case 'l': use_text = 1; break; case 'p': Ndatabitsperpacket = atoi(options.optarg); break; case 'q': dpsk = 1; break; case 'v': verbose = atoi(options.optarg); if (verbose < 0 || verbose > 3) verbose = 0; } } /* Print remaining arguments to give user a hint */ char *arg; while ((arg = optparse_arg(&options))) fprintf(stderr, "%s\n", arg); if (input_specified) { if ((fin = fopen(fin_name, "rb")) == NULL) { fprintf(stderr, "Error opening input bits file: %s\n", fin_name); exit(-1); } } if (output_specified) { if ((fout = fopen(fout_name, "wb")) == NULL) { fprintf(stderr, "Error opening output modem sample file: %s\n", fout_name); exit(-1); } } /* init the modem with our (optinally) custom config */ struct OFDM *ofdm = ofdm_create(ofdm_config); assert(ofdm != NULL); free(ofdm_config); /* Get a copy of the completed modem config (ofdm_create() fills in more parameters) */ ofdm_config = ofdm_get_config_param(ofdm); /* ste up some useful constants */ int Nbitsperpacket = ofdm_get_bits_per_packet(ofdm); int Npayloadbitsperpacket = Nbitsperpacket - ofdm->nuwbits - ofdm->ntxtbits; int Nsamperpacket = ofdm_get_samples_per_packet(ofdm); /* Set up LPDC code */ struct LDPC ldpc; if (ldpc_en) { ldpc_codes_setup(&ldpc, ofdm->codename); if (verbose > 1) { fprintf(stderr, "using: %s\n", ofdm->codename); } /* here is where we can change data bits per frame to a number smaller than LDPC code input data bits_per_frame */ if (Ndatabitsperpacket) { set_data_bits_per_frame(&ldpc, Ndatabitsperpacket); } Ndatabitsperpacket = ldpc.data_bits_per_frame; assert(Ndatabitsperpacket <= ldpc.ldpc_data_bits_per_frame); assert(Npayloadbitsperpacket <= ldpc.ldpc_coded_bits_per_frame); if (verbose > 1) { fprintf(stderr, "LDPC codeword data bits = %d\n", ldpc.ldpc_data_bits_per_frame); fprintf(stderr, "LDPC codeword total bits = %d\n", ldpc.ldpc_coded_bits_per_frame); fprintf(stderr, "LDPC codeword data bits used = %d\n", Ndatabitsperpacket); fprintf(stderr, "LDPC codeword total length in modem packet = %d\n", Npayloadbitsperpacket); } } else { Ndatabitsperpacket = Npayloadbitsperpacket; } if (verbose) { ofdm_set_verbose(ofdm, verbose); fprintf(stderr, "Ndatabitsperpacket: %d Npayloadbitsperpacket: %d Nsamperpacket: %d\n", Ndatabitsperpacket, Npayloadbitsperpacket, Nsamperpacket); } if (testframes) { if (burst_mode) Npackets = Nsec; // burst mode: treat Nsecs as Npackets/burst else Npackets = round(Nsec/ofdm->tpacket); // streaming mode if (verbose) fprintf(stderr, "Npackets: %d\n", Npackets); } if (txbpf_en) { ofdm_set_tx_bpf(ofdm, 1); } if (dpsk) { ofdm_set_dpsk(ofdm, 1); } uint8_t txt_bits[ofdm->ntxtbits]; memset(txt_bits, 0, ofdm->ntxtbits); char text_str[] = "cq cq cq hello world\r"; // Add text bits to match other tests char *ptr_text = text_str; short tx_varicode_bits[VARICODE_MAX_BITS]; int nvaricode_bits = 0; int varicode_bit_index = 0; complex float tx_sams[Nsamperpacket]; short tx_real[Nsamperpacket]; if (verbose > 1) ofdm_print_info(ofdm); for (int b=0; bsamplesperframe]; memcpy(tx_preamble, ofdm->tx_preamble, sizeof(COMP)*ofdm->samplesperframe); ofdm_hilbert_clipper(ofdm, tx_preamble, ofdm->samplesperframe); for (i = 0; i < ofdm->samplesperframe; i++) tx_real[i] = crealf(tx_preamble[i]); fwrite(tx_real, sizeof (short), ofdm->samplesperframe, fout); } /* main loop ----------------------------------------------------------------*/ int packet = 0; uint8_t data_bits[Ndatabitsperpacket]; while (fread(data_bits, sizeof (uint8_t), Ndatabitsperpacket, fin) == Ndatabitsperpacket) { if (ldpc_en) { /* fancy LDPC encoded frames ----------------------------*/ /* optionally overwrite input data with test frame of payload data bits known to demodulator */ if (testframes) { if (use_text) { // Get text bits int nspare = ofdm->ntxtbits; int k; for (k = 0; k < nspare; k++) { if (nvaricode_bits) { txt_bits[k] = tx_varicode_bits[varicode_bit_index++]; nvaricode_bits--; } if (nvaricode_bits == 0) { /* get new char and encode */ char s[2]; s[0] = *ptr_text++; if (*ptr_text == 0) ptr_text = &text_str[0]; nvaricode_bits = varicode_encode(tx_varicode_bits, s, VARICODE_MAX_BITS, 1, 1); varicode_bit_index = 0; } } } ofdm_generate_payload_data_bits(data_bits, Ndatabitsperpacket); } ofdm_ldpc_interleave_tx(ofdm, &ldpc, tx_sams, data_bits, txt_bits); for (i = 0; i < Nsamperpacket; i++) tx_real[i] = crealf(tx_sams[i]); } else { /* just modulate uncoded raw bits ------------------------------------*/ /* in uncoded mode entire payload is input data bits */ assert(Ndatabitsperpacket == Npayloadbitsperpacket); if (testframes) { /* build up a test frame consisting of unique word, txt bits, and psuedo-random uncoded payload bits. The psuedo-random generator is the same as Octave so it can interoperate with ofdm_tx.m/ofdm_rx.m */ ofdm_generate_payload_data_bits(data_bits, Npayloadbitsperpacket); } /* assemble packet of bits then modulate */ uint8_t tx_bits_char[Nbitsperpacket]; ofdm_assemble_qpsk_modem_packet(ofdm, tx_bits_char, data_bits, txt_bits); int tx_bits[Nbitsperpacket]; for (i = 0; i < Nbitsperpacket; i++) tx_bits[i] = tx_bits_char[i]; COMP tx_sams[Nsamperpacket]; ofdm_mod(ofdm, tx_sams, tx_bits); for (i = 0; i < Nsamperpacket; i++) tx_real[i] = tx_sams[i].real; } fwrite(tx_real, sizeof (short), Nsamperpacket, fout); packet++; if (testframes && (packet >= Npackets)) break; } if (burst_mode) { // Post-amble fprintf(stderr, "Tx postamble\n"); complex float tx_postamble[ofdm->samplesperframe]; memcpy(tx_postamble, ofdm->tx_postamble, sizeof(COMP)*ofdm->samplesperframe); ofdm_hilbert_clipper(ofdm, tx_postamble, ofdm->samplesperframe); for (i = 0; i < ofdm->samplesperframe; i++) tx_real[i] = crealf(tx_postamble[i]); fwrite(tx_real, sizeof (short), ofdm->samplesperframe, fout); // Interburst silence int samples_delay = ofdm->fs; short sil_short[samples_delay]; for(int i=0; i #include #include "codec2_ofdm.h" #include "ofdm_internal.h" void ofdm_init_mode(char mode[], struct OFDM_CONFIG *config) { assert(mode != NULL); assert(config != NULL); assert(strlen(mode) < 16); strcpy(config->mode, mode); /* Fill in default values - 700D */ config->nc = 17; /* Number of carriers */ config->np = 1; config->ns = 8; /* Number of Symbols per modem frame */ config->ts = 0.018f; config->tcp = .002f; /* Cyclic Prefix duration */ config->tx_centre = 1500.0f; /* TX Carrier Frequency */ config->rx_centre = 1500.0f; /* RX Carrier Frequency */ config->fs = 8000.0f; /* Sample rate */ config->txtbits = 4; config->bps = 2; /* Bits per Symbol */ config->nuwbits = 5 * config->bps; /* default is 5 symbols of Unique Word bits */ config->bad_uw_errors = 3; config->ftwindowwidth = 32; config->timing_mx_thresh = 0.30f; config->edge_pilots = 1; config->state_machine = "voice1"; config->data_mode = ""; config->codename = "HRA_112_112"; config->clip_gain1 = 2.5; config->clip_gain2 = 0.8; config->clip_en = false; config->tx_bpf_en = true; config->amp_scale = 245E3; config->foff_limiter = false; memset(config->tx_uw, 0, MAX_UW_BITS); if (strcmp(mode,"700D") == 0) { } else if (strcmp(mode,"700E") == 0) { config->ts = 0.014; config->tcp = 0.006; config->nc = 21; config->ns=4; config->edge_pilots = 0; config->nuwbits = 12; config->bad_uw_errors = 3; config->txtbits = 2; config->state_machine = "voice2"; config->amp_est_mode = 1; config->ftwindowwidth = 80; config->codename = "HRA_56_56"; config->tx_bpf_en = false; config->foff_limiter = true; config->amp_scale = 155E3; config->clip_gain1 = 3; config->clip_gain2 = 0.8; } else if (strcmp(mode,"2020") == 0) { config->ts = 0.0205; config->nc = 31; config->codename = "HRAb_396_504"; config->tx_bpf_en = false; config->amp_scale = 167E3; } else if (strcmp(mode,"qam16") == 0) { config->ns=5; config->np=5; config->tcp = 0.004; config->ts = 0.016; config->nc = 33; config->bps=4; config->txtbits = 0; config->nuwbits = 15*4; config->bad_uw_errors = 5; config->ftwindowwidth = 32; config->state_machine = "data"; config->amp_est_mode = 1; config->tx_bpf_en = false; config->data_mode = "streaming"; } else if (strcmp(mode,"datac0") == 0) { config->ns=5; config->np=4; config->tcp = 0.006; config->ts = 0.016; config->nc = 9; config->edge_pilots = 0; config->txtbits = 0; config->nuwbits = 32; config->bad_uw_errors = 9; config->state_machine = "data"; config->amp_est_mode = 1; config->ftwindowwidth = 80; config->codename = "H_128_256_5"; uint8_t uw[] = {1,1,0,0, 1,0,1,0, 1,1,1,1, 0,0,0,0}; memcpy(config->tx_uw, uw, sizeof(uw)); config->timing_mx_thresh = 0.08f; config->data_mode = "streaming"; config->amp_scale = 300E3; config->clip_gain1 = 2.2; config->clip_gain2 = 0.8; config->tx_bpf_en = true; config->clip_en = true; } else if (strcmp(mode,"datac1") == 0) { config->ns=5; config->np=38; config->tcp = 0.006; config->ts = 0.016; config->nc = 27; config->edge_pilots = 0; config->txtbits = 0; config->nuwbits = 16; config->bad_uw_errors = 6; config->state_machine = "data"; config->amp_est_mode = 1; config->ftwindowwidth = 80; config->codename = "H_4096_8192_3d"; uint8_t uw[] = {1,1,0,0, 1,0,1,0, 1,1,1,1, 0,0,0,0}; assert(sizeof(uw) == config->nuwbits); memcpy(config->tx_uw, uw, config->nuwbits); config->timing_mx_thresh = 0.10f; config->data_mode = "streaming"; // WIP but for now just let SSB filter do BPF of clipped signal //config->amp_scale = 1253; config->clip_gain1 = 2.5; config->clip_gain2 = 0.8; config->tx_bpf_en = false; config->clip_en = false; } else if (strcmp(mode,"datac3") == 0) { config->ns=5; config->np=29; config->tcp = 0.006; config->ts = 0.016; config->nc = 9; config->edge_pilots = 0; config->txtbits = 0; config->state_machine = "data"; config->ftwindowwidth = 80; config->timing_mx_thresh = 0.10; config->codename = "H_1024_2048_4f"; config->amp_est_mode = 1; /* custom UW - we use a longer UW with higher bad_uw_errors threshold due to high raw BER */ config->nuwbits = 40; config->bad_uw_errors = 10; uint8_t uw[] = {1,1,0,0, 1,0,1,0, 1,1,1,1, 0,0,0,0, 1,1,1,1, 0,0,0,0}; assert(sizeof(uw) <= MAX_UW_BITS); memcpy(config->tx_uw, uw, sizeof(uw)); memcpy(&config->tx_uw[config->nuwbits-sizeof(uw)], uw, sizeof(uw)); config->data_mode = "streaming"; config->amp_scale = 300E3; config->clip_gain1 = 2.2; config->clip_gain2 = 0.8; config->tx_bpf_en = true; config->clip_en = true; } else { assert(0); } config->rs=1.0f/config->ts; } codec2-1.0.1/src/ofdm_put_test_bits.c000066400000000000000000000061221412132000500174650ustar00rootroot00000000000000/*---------------------------------------------------------------------------*\ FILE........: ofdm_put_test_bits.c AUTHOR......: David Rowe DATE CREATED: Mar 2018 Slurps up a stream of test bits generated by ofdm_get_test_bits, useful for testing ofdm_mod and ofdm_demod. \*---------------------------------------------------------------------------*/ /* Copyright (C) 2018 David Rowe All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 2.1, as published by the Free Software Foundation. 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 Lesser General Public License along with this program; if not, see . */ #include #include #include #include #include #include #include "codec2_ofdm.h" #include "ofdm_internal.h" #include "test_bits_ofdm.h" #define LOG_FRAMES 100 #define NDISCARD 20 static struct OFDM *ofdm; int opt_exists(char *argv[], int argc, char opt[]) { int i; for (i=0; i= NDISCARD) { Terrs2 += Nerrs; Tbits2 += Nbitsperframe; } if (verbose) { printf("f: %d Nerrs: %d aber: %3.2f\n", f, Nerrs, aber); } } fclose(fin); fprintf(stderr, "BER..: %5.4f Tbits: %5d Terrs: %5d\n", (float)Terrs/Tbits, Tbits, Terrs); if (Tbits2 != 0) { fprintf(stderr, "BER2.: %5.4f Tbits: %5d Terrs: %5d\n", (float)Terrs2/Tbits2, Tbits2, Terrs2); } ofdm_destroy(ofdm); return 0; } codec2-1.0.1/src/optparse.h000066400000000000000000000274001412132000500154340ustar00rootroot00000000000000/* Optparse --- portable, reentrant, embeddable, getopt-like option parser * * This is free and unencumbered software released into the public domain. * * To get the implementation, define OPTPARSE_IMPLEMENTATION. * Optionally define OPTPARSE_API to control the API's visibility * and/or linkage (static, __attribute__, __declspec). * * The POSIX getopt() option parser has three fatal flaws. These flaws * are solved by Optparse. * * 1) Parser state is stored entirely in global variables, some of * which are static and inaccessible. This means only one thread can * use getopt(). It also means it's not possible to recursively parse * nested sub-arguments while in the middle of argument parsing. * Optparse fixes this by storing all state on a local struct. * * 2) The POSIX standard provides no way to properly reset the parser. * This means for portable code that getopt() is only good for one * run, over one argv with one option string. It also means subcommand * options cannot be processed with getopt(). Most implementations * provide a method to reset the parser, but it's not portable. * Optparse provides an optparse_arg() function for stepping over * subcommands and continuing parsing of options with another option * string. The Optparse struct itself can be passed around to * subcommand handlers for additional subcommand option parsing. A * full reset can be achieved by with an additional optparse_init(). * * 3) Error messages are printed to stderr. This can be disabled with * opterr, but the messages themselves are still inaccessible. * Optparse solves this by writing an error message in its errmsg * field. The downside to Optparse is that this error message will * always be in English rather than the current locale. * * Optparse should be familiar with anyone accustomed to getopt(), and * it could be a nearly drop-in replacement. The option string is the * same and the fields have the same names as the getopt() global * variables (optarg, optind, optopt). * * Optparse also supports GNU-style long options with optparse_long(). * The interface is slightly different and simpler than getopt_long(). * * By default, argv is permuted as it is parsed, moving non-option * arguments to the end. This can be disabled by setting the `permute` * field to 0 after initialization. */ #ifndef OPTPARSE_H #define OPTPARSE_H #ifndef OPTPARSE_API # define OPTPARSE_API #endif struct optparse { char **argv; int permute; int optind; int optopt; char *optarg; char errmsg[64]; int subopt; }; enum optparse_argtype { OPTPARSE_NONE, OPTPARSE_REQUIRED, OPTPARSE_OPTIONAL }; struct optparse_long { const char *longname; int shortname; enum optparse_argtype argtype; }; /** * Initializes the parser state. */ OPTPARSE_API void optparse_init(struct optparse *options, char **argv); /** * Read the next option in the argv array. * @param optstring a getopt()-formatted option string. * @return the next option character, -1 for done, or '?' for error * * Just like getopt(), a character followed by no colons means no * argument. One colon means the option has a required argument. Two * colons means the option takes an optional argument. */ OPTPARSE_API int optparse(struct optparse *options, const char *optstring); /** * Handles GNU-style long options in addition to getopt() options. * This works a lot like GNU's getopt_long(). The last option in * longopts must be all zeros, marking the end of the array. The * longindex argument may be NULL. */ OPTPARSE_API int optparse_long(struct optparse *options, const struct optparse_long *longopts, int *longindex); /** * Used for stepping over non-option arguments. * @return the next non-option argument, or NULL for no more arguments * * Argument parsing can continue with optparse() after using this * function. That would be used to parse the options for the * subcommand returned by optparse_arg(). This function allows you to * ignore the value of optind. */ OPTPARSE_API char *optparse_arg(struct optparse *options); /* Implementation */ #ifdef OPTPARSE_IMPLEMENTATION #define OPTPARSE_MSG_INVALID "invalid option" #define OPTPARSE_MSG_MISSING "option requires an argument" #define OPTPARSE_MSG_TOOMANY "option takes no arguments" static int optparse_error(struct optparse *options, const char *msg, const char *data) { unsigned p = 0; const char *sep = " -- '"; while (*msg) options->errmsg[p++] = *msg++; while (*sep) options->errmsg[p++] = *sep++; while (p < sizeof(options->errmsg) - 2 && *data) options->errmsg[p++] = *data++; options->errmsg[p++] = '\''; options->errmsg[p++] = '\0'; return '?'; } OPTPARSE_API void optparse_init(struct optparse *options, char **argv) { options->argv = argv; options->permute = 1; options->optind = 1; options->subopt = 0; options->optarg = 0; options->errmsg[0] = '\0'; } static int optparse_is_dashdash(const char *arg) { return arg != 0 && arg[0] == '-' && arg[1] == '-' && arg[2] == '\0'; } static int optparse_is_shortopt(const char *arg) { return arg != 0 && arg[0] == '-' && arg[1] != '-' && arg[1] != '\0'; } static int optparse_is_longopt(const char *arg) { return arg != 0 && arg[0] == '-' && arg[1] == '-' && arg[2] != '\0'; } static void optparse_permute(struct optparse *options, int index) { char *nonoption = options->argv[index]; int i; for (i = index; i < options->optind - 1; i++) options->argv[i] = options->argv[i + 1]; options->argv[options->optind - 1] = nonoption; } static int optparse_argtype(const char *optstring, char c) { int count = OPTPARSE_NONE; if (c == ':') return -1; for (; *optstring && c != *optstring; optstring++); if (!*optstring) return -1; if (optstring[1] == ':') count += optstring[2] == ':' ? 2 : 1; return count; } OPTPARSE_API int optparse(struct optparse *options, const char *optstring) { int type; char *next; char *option = options->argv[options->optind]; options->errmsg[0] = '\0'; options->optopt = 0; options->optarg = 0; if (option == 0) { return -1; } else if (optparse_is_dashdash(option)) { options->optind++; /* consume "--" */ return -1; } else if (!optparse_is_shortopt(option)) { if (options->permute) { int index = options->optind++; int r = optparse(options, optstring); optparse_permute(options, index); options->optind--; return r; } else { return -1; } } option += options->subopt + 1; options->optopt = option[0]; type = optparse_argtype(optstring, option[0]); next = options->argv[options->optind + 1]; switch (type) { case -1: { char str[2] = {0, 0}; str[0] = option[0]; options->optind++; return optparse_error(options, OPTPARSE_MSG_INVALID, str); } case OPTPARSE_NONE: if (option[1]) { options->subopt++; } else { options->subopt = 0; options->optind++; } return option[0]; case OPTPARSE_REQUIRED: options->subopt = 0; options->optind++; if (option[1]) { options->optarg = option + 1; } else if (next != 0) { options->optarg = next; options->optind++; } else { char str[2] = {0, 0}; str[0] = option[0]; options->optarg = 0; return optparse_error(options, OPTPARSE_MSG_MISSING, str); } return option[0]; case OPTPARSE_OPTIONAL: options->subopt = 0; options->optind++; if (option[1]) options->optarg = option + 1; else options->optarg = 0; return option[0]; } return 0; } OPTPARSE_API char * optparse_arg(struct optparse *options) { char *option = options->argv[options->optind]; options->subopt = 0; if (option != 0) options->optind++; return option; } static int optparse_longopts_end(const struct optparse_long *longopts, int i) { return !longopts[i].longname && !longopts[i].shortname; } static void optparse_from_long(const struct optparse_long *longopts, char *optstring) { char *p = optstring; int i; for (i = 0; !optparse_longopts_end(longopts, i); i++) { if (longopts[i].shortname) { int a; *p++ = longopts[i].shortname; for (a = 0; a < (int)longopts[i].argtype; a++) *p++ = ':'; } } *p = '\0'; } /* Unlike strcmp(), handles options containing "=". */ static int optparse_longopts_match(const char *longname, const char *option) { const char *a = option, *n = longname; if (longname == 0) return 0; for (; *a && *n && *a != '='; a++, n++) if (*a != *n) return 0; return *n == '\0' && (*a == '\0' || *a == '='); } /* Return the part after "=", or NULL. */ static char * optparse_longopts_arg(char *option) { for (; *option && *option != '='; option++); if (*option == '=') return option + 1; else return 0; } static int optparse_long_fallback(struct optparse *options, const struct optparse_long *longopts, int *longindex) { int result; char optstring[96 * 3 + 1]; /* 96 ASCII printable characters */ optparse_from_long(longopts, optstring); result = optparse(options, optstring); if (longindex != 0) { *longindex = -1; if (result != -1) { int i; for (i = 0; !optparse_longopts_end(longopts, i); i++) if (longopts[i].shortname == options->optopt) *longindex = i; } } return result; } OPTPARSE_API int optparse_long(struct optparse *options, const struct optparse_long *longopts, int *longindex) { int i; char *option = options->argv[options->optind]; if (option == 0) { return -1; } else if (optparse_is_dashdash(option)) { options->optind++; /* consume "--" */ return -1; } else if (optparse_is_shortopt(option)) { return optparse_long_fallback(options, longopts, longindex); } else if (!optparse_is_longopt(option)) { if (options->permute) { int index = options->optind++; int r = optparse_long(options, longopts, longindex); optparse_permute(options, index); options->optind--; return r; } else { return -1; } } /* Parse as long option. */ options->errmsg[0] = '\0'; options->optopt = 0; options->optarg = 0; option += 2; /* skip "--" */ options->optind++; for (i = 0; !optparse_longopts_end(longopts, i); i++) { const char *name = longopts[i].longname; if (optparse_longopts_match(name, option)) { char *arg; if (longindex) *longindex = i; options->optopt = longopts[i].shortname; arg = optparse_longopts_arg(option); if (longopts[i].argtype == OPTPARSE_NONE && arg != 0) { return optparse_error(options, OPTPARSE_MSG_TOOMANY, name); } if (arg != 0) { options->optarg = arg; } else if (longopts[i].argtype == OPTPARSE_REQUIRED) { options->optarg = options->argv[options->optind]; if (options->optarg == 0) return optparse_error(options, OPTPARSE_MSG_MISSING, name); else options->optind++; } return options->optopt; } } return optparse_error(options, OPTPARSE_MSG_INVALID, option); } #endif /* OPTPARSE_IMPLEMENTATION */ #endif /* OPTPARSE_H */ codec2-1.0.1/src/os.h000066400000000000000000000025161412132000500142210ustar00rootroot00000000000000/* Generate using fir1(47,1/2) in Octave */ static const float fdmdv_os_filter[]= { -0.0008215855034550382, -0.0007833023901802921, 0.001075563790768233, 0.001199092367787555, -0.001765309502928316, -0.002055372115328064, 0.002986877604154257, 0.003462567920638414, -0.004856570111126334, -0.005563143845031497, 0.007533613299748122, 0.008563932468880897, -0.01126857129039911, -0.01280782411693687, 0.01651443896361847, 0.01894875110322284, -0.02421604439474981, -0.02845107338464062, 0.03672973563400258, 0.04542046150312214, -0.06189165826716491, -0.08721876380763803, 0.1496157094199961, 0.4497962274137046, 0.4497962274137046, 0.1496157094199961, -0.08721876380763803, -0.0618916582671649, 0.04542046150312216, 0.03672973563400257, -0.02845107338464062, -0.02421604439474984, 0.01894875110322284, 0.01651443896361848, -0.01280782411693687, -0.0112685712903991, 0.008563932468880899, 0.007533613299748123, -0.005563143845031501, -0.004856570111126346, 0.003462567920638419, 0.002986877604154259, -0.002055372115328063, -0.001765309502928318, 0.001199092367787557, 0.001075563790768233, -0.0007833023901802925, -0.0008215855034550383 }; codec2-1.0.1/src/pack.c000066400000000000000000000104731412132000500145120ustar00rootroot00000000000000/* Copyright (C) 2010 Perens LLC All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 2.1, as published by the Free Software Foundation. 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 Lesser General Public License along with this program; if not, see . */ #include "defines.h" #include "quantise.h" #include /* Compile-time constants */ /* Size of unsigned char in bits. Assumes 8 bits-per-char. */ static const unsigned int WordSize = 8; /* Mask to pick the bit component out of bitIndex. */ static const unsigned int IndexMask = 0x7; /* Used to pick the word component out of bitIndex. */ static const unsigned int ShiftRight = 3; /** Pack a bit field into a bit string, encoding the field in Gray code. * * The output is an array of unsigned char data. The fields are efficiently * packed into the bit string. The Gray coding is a naive attempt to reduce * the effect of single-bit errors, we expect to do a better job as the * codec develops. * * This code would be simpler if it just set one bit at a time in the string, * but would hit the same cache line more often. I'm not sure the complexity * gains us anything here. * * Although field is currently of int type rather than unsigned for * compatibility with the rest of the code, indices are always expected to * be >= 0. */ void pack( unsigned char * bitArray, /* The output bit string. */ unsigned int * bitIndex, /* Index into the string in BITS, not bytes.*/ int field, /* The bit field to be packed. */ unsigned int fieldWidth/* Width of the field in BITS, not bytes. */ ) { pack_natural_or_gray(bitArray, bitIndex, field, fieldWidth, 1); } void pack_natural_or_gray( unsigned char * bitArray, /* The output bit string. */ unsigned int * bitIndex, /* Index into the string in BITS, not bytes.*/ int field, /* The bit field to be packed. */ unsigned int fieldWidth,/* Width of the field in BITS, not bytes. */ unsigned int gray /* non-zero for gray coding */ ) { if (gray) { /* Convert the field to Gray code */ field = (field >> 1) ^ field; } do { unsigned int bI = *bitIndex; unsigned int bitsLeft = WordSize - (bI & IndexMask); unsigned int sliceWidth = bitsLeft < fieldWidth ? bitsLeft : fieldWidth; unsigned int wordIndex = bI >> ShiftRight; bitArray[wordIndex] |= ((unsigned char)((field >> (fieldWidth - sliceWidth)) << (bitsLeft - sliceWidth))); *bitIndex = bI + sliceWidth; fieldWidth -= sliceWidth; } while ( fieldWidth != 0 ); } /** Unpack a field from a bit string, converting from Gray code to binary. * */ int unpack( const unsigned char * bitArray, /* The input bit string. */ unsigned int * bitIndex, /* Index into the string in BITS, not bytes.*/ unsigned int fieldWidth/* Width of the field in BITS, not bytes. */ ) { return unpack_natural_or_gray(bitArray, bitIndex, fieldWidth, 1); } /** Unpack a field from a bit string, to binary, optionally using * natural or Gray code. * */ int unpack_natural_or_gray( const unsigned char * bitArray, /* The input bit string. */ unsigned int * bitIndex, /* Index into the string in BITS, not bytes.*/ unsigned int fieldWidth,/* Width of the field in BITS, not bytes. */ unsigned int gray /* non-zero for Gray coding */ ) { unsigned int field = 0; unsigned int t; do { unsigned int bI = *bitIndex; unsigned int bitsLeft = WordSize - (bI & IndexMask); unsigned int sliceWidth = bitsLeft < fieldWidth ? bitsLeft : fieldWidth; field |= (((bitArray[bI >> ShiftRight] >> (bitsLeft - sliceWidth)) & ((1 << sliceWidth) - 1)) << (fieldWidth - sliceWidth)); *bitIndex = bI + sliceWidth; fieldWidth -= sliceWidth; } while ( fieldWidth != 0 ); if (gray) { /* Convert from Gray code to binary. Works for maximum 8-bit fields. */ t = field ^ (field >> 8); t ^= (t >> 4); t ^= (t >> 2); t ^= (t >> 1); } else { t = field; } return t; } codec2-1.0.1/src/phase.c000066400000000000000000000221741412132000500146750ustar00rootroot00000000000000/*---------------------------------------------------------------------------*\ FILE........: phase.c AUTHOR......: David Rowe DATE CREATED: 1/2/09 Functions for modelling and synthesising phase. \*---------------------------------------------------------------------------*/ /* Copyright (C) 2009 David Rowe All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 2.1, as published by the Free Software Foundation. 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 Lesser General Public License along with this program; if not,see . */ #include "defines.h" #include "phase.h" #include "kiss_fft.h" #include "comp.h" #include "comp_prim.h" #include "sine.h" #include #include #include #include #include /*---------------------------------------------------------------------------*\ sample_phase() Samples phase at centre of each harmonic from and array of FFT_ENC DFT samples. \*---------------------------------------------------------------------------*/ void sample_phase(MODEL *model, COMP H[], COMP A[] /* LPC analysis filter in freq domain */ ) { int m, b; float r; r = TWO_PI/(FFT_ENC); /* Sample phase at harmonics */ for(m=1; m<=model->L; m++) { b = (int)(m*model->Wo/r + 0.5); H[m] = cconj(A[b]); /* synth filter 1/A is opposite phase to analysis filter */ } } /*---------------------------------------------------------------------------*\ phase_synth_zero_order() Synthesises phases based on SNR and a rule based approach. No phase parameters are required apart from the SNR (which can be reduced to a 1 bit V/UV decision per frame). The phase of each harmonic is modelled as the phase of a synthesis filter excited by an impulse. In many Codec 2 modes the synthesis filter is a LPC filter. Unlike the first order model the position of the impulse is not transmitted, so we create an excitation pulse train using a rule based approach. Consider a pulse train with a pulse starting time n=0, with pulses repeated at a rate of Wo, the fundamental frequency. A pulse train in the time domain is equivalent to harmonics in the frequency domain. We can make an excitation pulse train using a sum of sinsusoids: for(m=1; m<=L; m++) ex[n] = cos(m*Wo*n) Note: the Octave script ../octave/phase.m is an example of this if you would like to try making a pulse train. The phase of each excitation harmonic is: arg(E[m]) = mWo where E[m] are the complex excitation (freq domain) samples, arg(x), just returns the phase of a complex sample x. As we don't transmit the pulse position for this model, we need to synthesise it. Now the excitation pulses occur at a rate of Wo. This means the phase of the first harmonic advances by N_SAMP samples over a synthesis frame of N_SAMP samples. For example if Wo is pi/20 (200 Hz), then over a 10ms frame (N_SAMP=80 samples), the phase of the first harmonic would advance (pi/20)*80 = 4*pi or two complete cycles. We generate the excitation phase of the fundamental (first harmonic): arg[E[1]] = Wo*N_SAMP; We then relate the phase of the m-th excitation harmonic to the phase of the fundamental as: arg(E[m]) = m*arg(E[1]) This E[m] then gets passed through the LPC synthesis filter to determine the final harmonic phase. Comparing to speech synthesised using original phases: - Through headphones speech synthesised with this model is not as good. Through a loudspeaker it is very close to original phases. - If there are voicing errors, the speech can sound clicky or staticy. If V speech is mistakenly declared UV, this model tends to synthesise impulses or clicks, as there is usually very little shift or dispersion through the LPC synthesis filter. - When combined with LPC amplitude modelling there is an additional drop in quality. I am not sure why, theory is interformant energy is raised making any phase errors more obvious. NOTES: 1/ This synthesis model is effectively the same as a simple LPC-10 vocoders, and yet sounds much better. Why? Conventional wisdom (AMBE, MELP) says mixed voicing is required for high quality speech. 2/ I am pretty sure the Lincoln Lab sinusoidal coding guys (like xMBE also from MIT) first described this zero phase model, I need to look up the paper. 3/ Note that this approach could cause some discontinuities in the phase at the edge of synthesis frames, as no attempt is made to make sure that the phase tracks are continuous (the excitation phases are continuous, but not the final phases after filtering by the LPC spectra). Technically this is a bad thing. However this may actually be a good thing, disturbing the phase tracks a bit. More research needed, e.g. test a synthesis model that adds a small delta-W to make phase tracks line up for voiced harmonics. \*---------------------------------------------------------------------------*/ void phase_synth_zero_order( int n_samp, MODEL *model, float *ex_phase, /* excitation phase of fundamental */ COMP H[] /* L synthesis filter freq domain samples */ ) { int m; float new_phi; COMP Ex[MAX_AMP+1]; /* excitation samples */ COMP A_[MAX_AMP+1]; /* synthesised harmonic samples */ /* Update excitation fundamental phase track, this sets the position of each pitch pulse during voiced speech. After much experiment I found that using just this frame's Wo improved quality for UV sounds compared to interpolating two frames Wo like this: ex_phase[0] += (*prev_Wo+model->Wo)*N_SAMP/2; */ ex_phase[0] += (model->Wo)*n_samp; ex_phase[0] -= TWO_PI*floorf(ex_phase[0]/TWO_PI + 0.5); for(m=1; m<=model->L; m++) { /* generate excitation */ if (model->voiced) { Ex[m].real = cosf(ex_phase[0]*m); Ex[m].imag = sinf(ex_phase[0]*m); } else { /* When a few samples were tested I found that LPC filter phase is not needed in the unvoiced case, but no harm in keeping it. */ float phi = TWO_PI*(float)codec2_rand()/CODEC2_RAND_MAX; Ex[m].real = cosf(phi); Ex[m].imag = sinf(phi); } /* filter using LPC filter */ A_[m].real = H[m].real*Ex[m].real - H[m].imag*Ex[m].imag; A_[m].imag = H[m].imag*Ex[m].real + H[m].real*Ex[m].imag; /* modify sinusoidal phase */ new_phi = atan2f(A_[m].imag, A_[m].real+1E-12); model->phi[m] = new_phi; } } /*---------------------------------------------------------------------------*\ FUNCTION....: mag_to_phase AUTHOR......: David Rowe DATE CREATED: Jan 2017 Algorithm for http://www.dsprelated.com/showcode/20.php ported to C. See also Octave function mag_to_phase.m Given a magnitude spectrum in dB, returns a minimum-phase phase spectra. \*---------------------------------------------------------------------------*/ void mag_to_phase(float phase[], /* Nfft/2+1 output phase samples in radians */ float Gdbfk[], /* Nfft/2+1 postive freq amplitudes samples in dB */ int Nfft, codec2_fft_cfg fft_fwd_cfg, codec2_fft_cfg fft_inv_cfg ) { COMP Sdb[Nfft], c[Nfft], cf[Nfft], Cf[Nfft]; int Ns = Nfft/2+1; int i; /* install negative frequency components, 1/Nfft takes into account kiss fft lack of scaling on ifft */ Sdb[0].real = Gdbfk[0]; Sdb[0].imag = 0.0; for(i=1; i. */ #ifndef __PHASE__ #define __PHASE__ #include "codec2_fft.h" #include "comp.h" void sample_phase(MODEL *model, COMP filter_phase[], COMP A[]); void phase_synth_zero_order(int n_samp, MODEL *model, float *ex_phase, COMP filter_phase[]); void mag_to_phase(float phase[], float Gdbfk[], int Nfft, codec2_fft_cfg fwd_cfg, codec2_fft_cfg inv_cfg); #endif codec2-1.0.1/src/phi0.c000066400000000000000000000176541412132000500144440ustar00rootroot00000000000000 // phi0.c // // An approximation of the function // // This file is generated by the gen_phi0 scritps // Any changes should be made to that file, not this one #include #define SI16(f) ((int32_t)(f * (1<<16))) float phi0( float xf ) { int32_t x = SI16(xf); if (x >= SI16(10.0f)) return(0.0f); else { if (x >= SI16(5.0f)) { int i = 19 - (x >> 15); switch (i) { case 0: return(0.000116589f); // (9.5) case 1: return(0.000192223f); // (9.0) case 2: return(0.000316923f); // (8.5) case 3: return(0.000522517f); // (8.0) case 4: return(0.000861485f); // (7.5) case 5: return(0.001420349f); // (7.0) case 6: return(0.002341760f); // (6.5) case 7: return(0.003860913f); // (6.0) case 8: return(0.006365583f); // (5.5) case 9: return(0.010495133f); // (5.0) } } else { if (x >= SI16(1.0f)) { int i = 79 - (x >> 12); switch (i) { case 0: return(0.013903889f); // (4.9375) case 1: return(0.014800644f); // (4.8750) case 2: return(0.015755242f); // (4.8125) case 3: return(0.016771414f); // (4.7500) case 4: return(0.017853133f); // (4.6875) case 5: return(0.019004629f); // (4.6250) case 6: return(0.020230403f); // (4.5625) case 7: return(0.021535250f); // (4.5000) case 8: return(0.022924272f); // (4.4375) case 9: return(0.024402903f); // (4.3750) case 10: return(0.025976926f); // (4.3125) case 11: return(0.027652501f); // (4.2500) case 12: return(0.029436184f); // (4.1875) case 13: return(0.031334956f); // (4.1250) case 14: return(0.033356250f); // (4.0625) case 15: return(0.035507982f); // (4.0000) case 16: return(0.037798579f); // (3.9375) case 17: return(0.040237016f); // (3.8750) case 18: return(0.042832850f); // (3.8125) case 19: return(0.045596260f); // (3.7500) case 20: return(0.048538086f); // (3.6875) case 21: return(0.051669874f); // (3.6250) case 22: return(0.055003924f); // (3.5625) case 23: return(0.058553339f); // (3.5000) case 24: return(0.062332076f); // (3.4375) case 25: return(0.066355011f); // (3.3750) case 26: return(0.070637993f); // (3.3125) case 27: return(0.075197917f); // (3.2500) case 28: return(0.080052790f); // (3.1875) case 29: return(0.085221814f); // (3.1250) case 30: return(0.090725463f); // (3.0625) case 31: return(0.096585578f); // (3.0000) case 32: return(0.102825462f); // (2.9375) case 33: return(0.109469985f); // (2.8750) case 34: return(0.116545700f); // (2.8125) case 35: return(0.124080967f); // (2.7500) case 36: return(0.132106091f); // (2.6875) case 37: return(0.140653466f); // (2.6250) case 38: return(0.149757747f); // (2.5625) case 39: return(0.159456024f); // (2.5000) case 40: return(0.169788027f); // (2.4375) case 41: return(0.180796343f); // (2.3750) case 42: return(0.192526667f); // (2.3125) case 43: return(0.205028078f); // (2.2500) case 44: return(0.218353351f); // (2.1875) case 45: return(0.232559308f); // (2.1250) case 46: return(0.247707218f); // (2.0625) case 47: return(0.263863255f); // (2.0000) case 48: return(0.281099022f); // (1.9375) case 49: return(0.299492155f); // (1.8750) case 50: return(0.319127030f); // (1.8125) case 51: return(0.340095582f); // (1.7500) case 52: return(0.362498271f); // (1.6875) case 53: return(0.386445235f); // (1.6250) case 54: return(0.412057648f); // (1.5625) case 55: return(0.439469363f); // (1.5000) case 56: return(0.468828902f); // (1.4375) case 57: return(0.500301872f); // (1.3750) case 58: return(0.534073947f); // (1.3125) case 59: return(0.570354566f); // (1.2500) case 60: return(0.609381573f); // (1.1875) case 61: return(0.651427083f); // (1.1250) case 62: return(0.696805010f); // (1.0625) case 63: return(0.745880827f); // (1.0000) } } else { if (x > SI16(0.007812f)) { if (x > SI16(0.088388f)) { if (x > SI16(0.250000f)) { if (x > SI16(0.500000f)) { if (x > SI16(0.707107f)) { return(0.922449644f); } else { return(1.241248638f); } } else { if (x > SI16(0.353553f)) { return(1.573515241f); } else { return(1.912825912f); } } } else { if (x > SI16(0.125000f)) { if (x > SI16(0.176777f)) { return(2.255740095f); } else { return(2.600476919f); } } else { return(2.946130351f); } } } else { if (x > SI16(0.022097f)) { if (x > SI16(0.044194f)) { if (x > SI16(0.062500f)) { return(3.292243417f); } else { return(3.638586634f); } } else { if (x > SI16(0.031250f)) { return(3.985045009f); } else { return(4.331560985f); } } } else { if (x > SI16(0.011049f)) { if (x > SI16(0.015625f)) { return(4.678105767f); } else { return(5.024664952f); } } else { return(5.371231340f); } } } } else { if (x > SI16(0.000691f)) { if (x > SI16(0.001953f)) { if (x > SI16(0.003906f)) { if (x > SI16(0.005524f)) { return(5.717801329f); } else { return(6.064373119f); } } else { if (x > SI16(0.002762f)) { return(6.410945809f); } else { return(6.757518949f); } } } else { if (x > SI16(0.000977f)) { if (x > SI16(0.001381f)) { return(7.104092314f); } else { return(7.450665792f); } } else { return(7.797239326f); } } } else { if (x > SI16(0.000173f)) { if (x > SI16(0.000345f)) { if (x > SI16(0.000488f)) { return(8.143812888f); } else { return(8.490386464f); } } else { if (x > SI16(0.000244f)) { return(8.836960047f); } else { return(9.183533634f); } } } else { if (x > SI16(0.000086f)) { if (x > SI16(0.000122f)) { return(9.530107222f); } else { return(9.876680812f); } } else { return(10.000000000f); } } } } } } } return(10.0f); } codec2-1.0.1/src/phi0.h000066400000000000000000000001201412132000500144250ustar00rootroot00000000000000// phi0.h #ifndef PHI0_H #define PHI0_H extern float phi0( float xf ); #endif codec2-1.0.1/src/pilot_coeff.h000066400000000000000000000011471412132000500160700ustar00rootroot00000000000000/* Generated by pilot_coeff_file() Octave function */ // const removed since this provides gain // on the STM32F4 platform #ifdef CORTEX_M4 /* const */ float pilot_coeff[]={ #else const float pilot_coeff[]={ #endif 0.00223001, 0.00301037, 0.00471258, 0.0075934, 0.0118145, 0.0174153, 0.0242969, 0.0322204, 0.0408199, 0.0496286, 0.0581172, 0.0657392, 0.0719806, 0.0764066, 0.0787022, 0.0787022, 0.0764066, 0.0719806, 0.0657392, 0.0581172, 0.0496286, 0.0408199, 0.0322204, 0.0242969, 0.0174153, 0.0118145, 0.0075934, 0.00471258, 0.00301037, 0.00223001 }; codec2-1.0.1/src/pilots_coh.h000066400000000000000000000004021412132000500157330ustar00rootroot00000000000000/* Generated by write_pilot_file() Octave function */ float pilots_coh[][PILOTS_NC]={ { 1.000000, -1.000000, 1.000000, -1.000000, 1.000000, -1.000000, -1.000000}, { -1.000000, 1.000000, 1.000000, -1.000000, 1.000000, 1.000000, 1.000000} };codec2-1.0.1/src/postfilter.c000066400000000000000000000112511412132000500157620ustar00rootroot00000000000000/*---------------------------------------------------------------------------*\ FILE........: postfilter.c AUTHOR......: David Rowe DATE CREATED: 13/09/09 Postfilter to improve sound quality for speech with high levels of background noise. Unlike mixed-excitation models requires no bits to be transmitted to handle background noise. \*---------------------------------------------------------------------------*/ /* Copyright (C) 2009 David Rowe All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 2.1, as published by the Free Software Foundation. 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 Lesser General Public License along with this program; if not, see . */ #include #include #include #include #include "defines.h" #include "comp.h" #include "dump.h" #include "sine.h" #include "postfilter.h" /*---------------------------------------------------------------------------*\ DEFINES \*---------------------------------------------------------------------------*/ #define BG_THRESH 40.0 /* only consider low levels signals for bg_est */ #define BG_BETA 0.1 /* averaging filter constant */ #define BG_MARGIN 6.0 /* harmonics this far above BG noise are randomised. Helped make bg noise less spikey (impulsive) for mmt1, but speech was perhaps a little rougher. */ /*---------------------------------------------------------------------------*\ postfilter() The post filter is designed to help with speech corrupted by background noise. The zero phase model tends to make speech with background noise sound "clicky". With high levels of background noise the low level inter-formant parts of the spectrum will contain noise rather than speech harmonics, so modelling them as voiced (i.e. a continuous, non-random phase track) is inaccurate. Some codecs (like MBE) have a mixed voicing model that breaks the spectrum into voiced and unvoiced regions. Several bits/frame (5-12) are required to transmit the frequency selective voicing information. Mixed excitation also requires accurate voicing estimation (parameter estimators always break occasionally under exceptional conditions). In our case we use a post filter approach which requires no additional bits to be transmitted. The decoder measures the average level of the background noise during unvoiced frames. If a harmonic is less than this level it is made unvoiced by randomising it's phases. This idea is rather experimental. Some potential problems that may happen: 1/ If someone says "aaaaaaaahhhhhhhhh" will background estimator track up to speech level? This would be a bad thing. 2/ If background noise suddenly dissapears from the source speech does estimate drop quickly? What is noise suddenly re-appears? 3/ Background noise with a non-flat sepctrum. Current algorithm just comsiders scpetrum as a whole, but this could be broken up into bands, each with their own estimator. 4/ Males and females with the same level of background noise. Check performance the same. Changing Wo affects width of each band, may affect bg energy estimates. 5/ Not sure what happens during long periods of voiced speech e.g. "sshhhhhhh" \*---------------------------------------------------------------------------*/ void postfilter( MODEL *model, float *bg_est ) { int m, uv; float e, thresh; /* determine average energy across spectrum */ e = 1E-12; for(m=1; m<=model->L; m++) e += model->A[m]*model->A[m]; assert(e > 0.0); e = 10.0*log10f(e/model->L); /* If beneath threhold, update bg estimate. The idea of the threshold is to prevent updating during high level speech. */ if ((e < BG_THRESH) && !model->voiced) *bg_est = *bg_est*(1.0 - BG_BETA) + e*BG_BETA; /* now mess with phases during voiced frames to make any harmonics less then our background estimate unvoiced. */ uv = 0; thresh = POW10F((*bg_est + BG_MARGIN)/20.0); if (model->voiced) for(m=1; m<=model->L; m++) if (model->A[m] < thresh) { model->phi[m] = (TWO_PI/CODEC2_RAND_MAX)*(float)codec2_rand(); uv++; } #ifdef DUMP dump_bg(e, *bg_est, 100.0*uv/model->L); #endif } codec2-1.0.1/src/postfilter.h000066400000000000000000000017741412132000500160000ustar00rootroot00000000000000/*---------------------------------------------------------------------------*\ FILE........: postfilter.h AUTHOR......: David Rowe DATE CREATED: 13/09/09 Postfilter header file. \*---------------------------------------------------------------------------*/ /* Copyright (C) 2009 David Rowe All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 2.1, as published by the Free Software Foundation. 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 Lesser General Public License along with this program; if not, see . */ #ifndef __POSTFILTER__ #define __POSTFILTER__ void postfilter(MODEL *model, float *bg_est); #endif codec2-1.0.1/src/quantise.c000066400000000000000000000752311412132000500154300ustar00rootroot00000000000000/*---------------------------------------------------------------------------*\ FILE........: quantise.c AUTHOR......: David Rowe DATE CREATED: 31/5/92 Quantisation functions for the sinusoidal coder. \*---------------------------------------------------------------------------*/ /* All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 2.1, as published by the Free Software Foundation. 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 Lesser General Public License along with this program; if not, see . */ #include #include #include #include #include #include #include "defines.h" #include "dump.h" #include "quantise.h" #include "lpc.h" #include "lsp.h" #include "codec2_fft.h" #include "phase.h" #include "mbest.h" #undef PROFILE #include "machdep.h" #define LSP_DELTA1 0.01 /* grid spacing for LSP root searches */ /*---------------------------------------------------------------------------*\ FUNCTION HEADERS \*---------------------------------------------------------------------------*/ float speech_to_uq_lsps(float lsp[], float ak[], float Sn[], float w[], int m_pitch, int order); /*---------------------------------------------------------------------------*\ FUNCTIONS \*---------------------------------------------------------------------------*/ int lsp_bits(int i) { return lsp_cb[i].log2m; } int lspd_bits(int i) { return lsp_cbd[i].log2m; } int lsp_pred_vq_bits(int i) { return lsp_cbjvm[i].log2m; } /*---------------------------------------------------------------------------*\ quantise Quantises vec by choosing the nearest vector in codebook cb, and returns the vector index. The squared error of the quantised vector is added to se. \*---------------------------------------------------------------------------*/ long quantise(const float * cb, float vec[], float w[], int k, int m, float *se) /* float cb[][K]; current VQ codebook */ /* float vec[]; vector to quantise */ /* float w[]; weighting vector */ /* int k; dimension of vectors */ /* int m; size of codebook */ /* float *se; accumulated squared error */ { float e; /* current error */ long besti; /* best index so far */ float beste; /* best error so far */ long j; int i; float diff; besti = 0; beste = 1E32; for(j=0; j max_Rw) max_Rw = Rw[i]; if (Rw[i] < min_Rw) min_Rw = Rw[i]; } PROFILE_SAMPLE_AND_LOG(tr, tww, " R"); #ifdef DUMP if (dump) dump_Rw(Rw); #endif /* create post filter mag spectrum and apply ------------------*/ /* measure energy before post filtering */ e_before = 1E-4; for(i=0; i 242 ms // so please leave it as is or improve further // since this code is called 4 times it results in almost 4ms gain (21ms -> 17ms per audio frame decode @ 1300 ) for(i=0; iL; m++) { am = (int)((m - 0.5)*model->Wo/r + 0.5); bm = (int)((m + 0.5)*model->Wo/r + 0.5); // FIXME: With arm_rfft_fast_f32 we have to use this // otherwise sometimes a to high bm is calculated // which causes trouble later in the calculation // chain // it seems for some reason model->Wo is calculated somewhat too high if (bm>FFT_ENC/2) { bm = FFT_ENC/2; } Em = 0.0; for(i=am; iA[m]*model->A[m]; noise += (model->A[m] - Am)*(model->A[m] - Am); /* This code significantly improves perf of LPC model, in particular when combined with phase0. The LPC spectrum tends to track just under the peaks of the spectral envelope, and just above nulls. This algorithm does the reverse to compensate - raising the amplitudes of spectral peaks, while attenuating the null. This enhances the formants, and supresses the energy between formants. */ if (sim_pf) { if (Am > model->A[m]) Am *= 0.7; if (Am < model->A[m]) Am *= 1.4; } model->A[m] = Am; } *snr = 10.0*log10f(signal/noise); PROFILE_SAMPLE_AND_LOG2(tpf, " rec"); } /*---------------------------------------------------------------------------*\ FUNCTION....: encode_Wo() AUTHOR......: David Rowe DATE CREATED: 22/8/2010 Encodes Wo using a WO_LEVELS quantiser. \*---------------------------------------------------------------------------*/ int encode_Wo(C2CONST *c2const, float Wo, int bits) { int index, Wo_levels = 1<Wo_min; float Wo_max = c2const->Wo_max; float norm; norm = (Wo - Wo_min)/(Wo_max - Wo_min); index = floorf(Wo_levels * norm + 0.5); if (index < 0 ) index = 0; if (index > (Wo_levels-1)) index = Wo_levels-1; return index; } /*---------------------------------------------------------------------------*\ FUNCTION....: decode_Wo() AUTHOR......: David Rowe DATE CREATED: 22/8/2010 Decodes Wo using a WO_LEVELS quantiser. \*---------------------------------------------------------------------------*/ float decode_Wo(C2CONST *c2const, int index, int bits) { float Wo_min = c2const->Wo_min; float Wo_max = c2const->Wo_max; float step; float Wo; int Wo_levels = 1<Wo_min; float Wo_max = c2const->Wo_max; float norm; norm = (log10f(Wo) - log10f(Wo_min))/(log10f(Wo_max) - log10f(Wo_min)); index = floorf(Wo_levels * norm + 0.5); if (index < 0 ) index = 0; if (index > (Wo_levels-1)) index = Wo_levels-1; return index; } /*---------------------------------------------------------------------------*\ FUNCTION....: decode_log_Wo() AUTHOR......: David Rowe DATE CREATED: 22/8/2010 Decodes Wo using a WO_LEVELS quantiser in the log domain. \*---------------------------------------------------------------------------*/ float decode_log_Wo(C2CONST *c2const, int index, int bits) { float Wo_min = c2const->Wo_min; float Wo_max = c2const->Wo_max; float step; float Wo; int Wo_levels = 1<Wo < (PI*150.0/4000)) { model->A[1] *= 0.032; } } /*---------------------------------------------------------------------------*\ FUNCTION....: encode_energy() AUTHOR......: David Rowe DATE CREATED: 22/8/2010 Encodes LPC energy using an E_LEVELS quantiser. \*---------------------------------------------------------------------------*/ int encode_energy(float e, int bits) { int index, e_levels = 1< (e_levels-1)) index = e_levels-1; return index; } /*---------------------------------------------------------------------------*\ FUNCTION....: decode_energy() AUTHOR......: David Rowe DATE CREATED: 22/8/2010 Decodes energy using a E_LEVELS quantiser. \*---------------------------------------------------------------------------*/ float decode_energy(int index, int bits) { float e_min = E_MIN_DB; float e_max = E_MAX_DB; float step; float e; int e_levels = 1<.5) /* Lower if not stable */ { w[0] *= .5; } /* Lower weight for low energy */ if (x[1] < xp[1]-10) { w[1] *= .5; } if (x[1] < xp[1]-20) { w[1] *= .5; } //w[0] = 30; //w[1] = 1; /* Square the weights because it's applied on the squared error */ w[0] *= w[0]; w[1] *= w[1]; } /*---------------------------------------------------------------------------*\ FUNCTION....: quantise_WoE() AUTHOR......: Jean-Marc Valin & David Rowe DATE CREATED: 29 Feb 2012 Experimental joint Wo and LPC energy vector quantiser developed by Jean-Marc Valin. Exploits correlations between the difference in the log pitch and log energy from frame to frame. For example both the pitch and energy tend to only change by small amounts during voiced speech, however it is important that these changes be coded carefully. During unvoiced speech they both change a lot but the ear is less sensitve to errors so coarser quantisation is OK. The ear is sensitive to log energy and loq pitch so we quantise in these domains. That way the error measure used to quantise the values is close to way the ear senses errors. See http://jmspeex.livejournal.com/10446.html \*---------------------------------------------------------------------------*/ void quantise_WoE(C2CONST *c2const, MODEL *model, float *e, float xq[]) { int i, n1; float x[2]; float err[2]; float w[2]; const float *codebook1 = ge_cb[0].cb; int nb_entries = ge_cb[0].m; int ndim = ge_cb[0].k; float Wo_min = c2const->Wo_min; float Wo_max = c2const->Wo_max; float Fs = c2const->Fs; /* VQ is only trained for Fs = 8000 Hz */ assert(Fs == 8000); x[0] = log10f((model->Wo/PI)*4000.0/50.0)/log10f(2); x[1] = 10.0*log10f(1e-4 + *e); compute_weights2(x, xq, w); for (i=0;iWo = powf(2.0, xq[0])*(PI*50.0)/4000.0; /* bit errors can make us go out of range leading to all sorts of probs like seg faults */ if (model->Wo > Wo_max) model->Wo = Wo_max; if (model->Wo < Wo_min) model->Wo = Wo_min; model->L = PI/model->Wo; /* if we quantise Wo re-compute L */ *e = POW10F(xq[1]/10.0); } /*---------------------------------------------------------------------------*\ FUNCTION....: encode_WoE() AUTHOR......: Jean-Marc Valin & David Rowe DATE CREATED: 11 May 2012 Joint Wo and LPC energy vector quantiser developed my Jean-Marc Valin. Returns index, and updated states xq[]. \*---------------------------------------------------------------------------*/ int encode_WoE(MODEL *model, float e, float xq[]) { int i, n1; float x[2]; float err[2]; float w[2]; const float *codebook1 = ge_cb[0].cb; int nb_entries = ge_cb[0].m; int ndim = ge_cb[0].k; assert((1<Wo/PI)*4000.0/50.0)/log10f(2); x[1] = 10.0*log10f(1e-4 + e); compute_weights2(x, xq, w); for (i=0;iWo_min; float Wo_max = c2const->Wo_max; for (i=0;iWo = powf(2.0, xq[0])*(PI*50.0)/4000.0; /* bit errors can make us go out of range leading to all sorts of probs like seg faults */ if (model->Wo > Wo_max) model->Wo = Wo_max; if (model->Wo < Wo_min) model->Wo = Wo_min; model->L = PI/model->Wo; /* if we quantise Wo re-compute L */ *e = POW10F(xq[1]/10.0); } codec2-1.0.1/src/quantise.h000066400000000000000000000074311412132000500154320ustar00rootroot00000000000000/*---------------------------------------------------------------------------*\ FILE........: quantise.h AUTHOR......: David Rowe DATE CREATED: 31/5/92 Quantisation functions for the sinusoidal coder. \*---------------------------------------------------------------------------*/ /* All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 2.1, as published by the Free Software Foundation. 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 Lesser General Public License along with this program; if not, see . */ #ifndef __QUANTISE__ #define __QUANTISE__ #include "codec2_fft.h" #include "comp.h" #define WO_BITS 7 #define WO_LEVELS (1<. // //========================================================================== #include #include #include #include #include #include "freedv_api.h" #include "freedv_api_internal.h" #include "reliable_text.h" #include "ldpc_codes.h" #include "ofdm_internal.h" #include "gp_interleaver.h" #define LDPC_TOTAL_SIZE_BITS (112) #define RELIABLE_TEXT_UW_LENGTH_BITS (16) #define RELIABLE_TEXT_MAX_ZEROES_IN_UW (4) #define RELIABLE_TEXT_MAX_LENGTH (8) #define RELIABLE_TEXT_CRC_LENGTH (1) #define RELIABLE_TEXT_MAX_RAW_LENGTH (RELIABLE_TEXT_MAX_LENGTH + RELIABLE_TEXT_CRC_LENGTH) /* Two bytes of text/CRC equal four bytes of LDPC(112,56). */ #define RELIABLE_TEXT_BYTES_PER_ENCODED_SEGMENT (8) /* Internal definition of reliable_text_t. */ typedef struct { on_text_rx_t text_rx_callback; void* callback_state; char tx_text[LDPC_TOTAL_SIZE_BITS + RELIABLE_TEXT_UW_LENGTH_BITS]; int tx_text_index; int tx_text_length; char inbound_pending_bits[RELIABLE_TEXT_UW_LENGTH_BITS + LDPC_TOTAL_SIZE_BITS]; _Complex float inbound_pending_syms[(RELIABLE_TEXT_UW_LENGTH_BITS + LDPC_TOTAL_SIZE_BITS) / 2]; float inbound_pending_amps[(RELIABLE_TEXT_UW_LENGTH_BITS + LDPC_TOTAL_SIZE_BITS) / 2]; int bit_index; int sym_index; int has_successfully_decoded; struct LDPC ldpc; struct freedv* fdv; } reliable_text_impl_t; // 6 bit character set for text field use: // 0: ASCII null // 1-9: ASCII 38-47 // 10-19: ASCII '0'-'9' // 20-46: ASCII 'A'-'Z' // 47: ASCII ' ' static void convert_callsign_to_ota_string_(const char* input, char* output, int maxLength) { assert(input != NULL); assert(output != NULL); assert(maxLength >= 0); int outidx = 0; for (size_t index = 0; index < maxLength; index++) { if (input[index] == 0) break; if (input[index] >= 38 && input[index] <= 47) { output[outidx++] = input[index] - 37; } else if (input[index] >= '0' && input[index] <= '9') { output[outidx++] = input[index] - '0' + 10; } else if (input[index] >= 'A' && input[index] <= 'Z') { output[outidx++] = input[index] - 'A' + 20; } else if (input[index] >= 'a' && input[index] <= 'z') { output[outidx++] = toupper(input[index]) - 'A' + 20; } } output[outidx] = 0; } static void convert_ota_string_to_callsign_(const char* input, char* output, int maxLength) { assert(input != NULL); assert(output != NULL); assert(maxLength >= 0); int outidx = 0; for (size_t index = 0; index < maxLength; index++) { if (input[index] == 0) break; if (input[index] >= 1 && input[index] <= 9) { output[outidx++] = input[index] + 37; } else if (input[index] >= 10 && input[index] <= 19) { output[outidx++] = input[index] - 10 + '0'; } else if (input[index] >= 20 && input[index] <= 46) { output[outidx++] = input[index] - 20 + 'A'; } } output[outidx] = 0; } static char calculateCRC8_(char* input, int length) { assert(input != NULL); assert(length >= 0); unsigned char generator = 0x1D; unsigned char crc = 0x00; /* start with 0 so first byte can be 'xored' in */ while (length > 0) { unsigned char ch = *input++; length--; // Break out if we see a null. if (ch == 0) break; crc ^= ch; /* XOR-in the next input byte */ for (int i = 0; i < 8; i++) { if ((crc & 0x80) != 0) { crc = (unsigned char)((crc << 1) ^ generator); } else { crc <<= 1; } } } return crc; } static int reliable_text_ldpc_decode(reliable_text_impl_t* obj, char* dest) { assert(obj != NULL); assert(dest != NULL); char* src = &obj->inbound_pending_bits[RELIABLE_TEXT_UW_LENGTH_BITS]; char deinterleavedBits[LDPC_TOTAL_SIZE_BITS]; _Complex float deinterleavedSyms[LDPC_TOTAL_SIZE_BITS / 2]; float deinterleavedAmps[LDPC_TOTAL_SIZE_BITS / 2]; float incomingData[LDPC_TOTAL_SIZE_BITS]; float llr[LDPC_TOTAL_SIZE_BITS]; unsigned char output[LDPC_TOTAL_SIZE_BITS]; int parityCheckCount = 0; if (obj->bit_index == obj->sym_index * 2) { // Use soft decision for the LDPC decoder. int Npayloadsymsperpacket = LDPC_TOTAL_SIZE_BITS / 2; // Deinterleave symbols gp_deinterleave_comp ((COMP*)deinterleavedSyms, (COMP*)&obj->inbound_pending_syms[RELIABLE_TEXT_UW_LENGTH_BITS/2], Npayloadsymsperpacket); gp_deinterleave_float(deinterleavedAmps, &obj->inbound_pending_amps[RELIABLE_TEXT_UW_LENGTH_BITS/2], Npayloadsymsperpacket); float EsNo = 3.0; // note: constant from freedv_700.c symbols_to_llrs(llr, (COMP*)deinterleavedSyms, deinterleavedAmps, EsNo, obj->fdv->ofdm->mean_amp, Npayloadsymsperpacket); } else { // Deinterlace the received bits. gp_deinterleave_bits(deinterleavedBits, src, LDPC_TOTAL_SIZE_BITS / 2); // We don't have symbol data (likely due to incorrect mode), so we fall back // to hard decision. for (int bitIndex = 0; bitIndex < LDPC_TOTAL_SIZE_BITS; bitIndex++) { //fprintf(stderr, "rx bit %d: %d\n", bitIndex, deinterleavedBits[bitIndex]); // Map to value expected by sd_to_llr() incomingData[bitIndex] = 1.0 - 2.0 * deinterleavedBits[bitIndex]; } sd_to_llr(llr, incomingData, LDPC_TOTAL_SIZE_BITS); } run_ldpc_decoder(&obj->ldpc, output, llr, &parityCheckCount); // Data is valid if BER < 0.2 float ber_est = (float)(obj->ldpc.NumberParityBits - parityCheckCount)/obj->ldpc.NumberParityBits; int result = (ber_est < 0.2); //fprintf(stderr, "BER est: %f\n", ber_est); if (result) { memset(dest, 0, RELIABLE_TEXT_BYTES_PER_ENCODED_SEGMENT); for (int bitIndex = 0; bitIndex < 8; bitIndex++) { if (output[bitIndex]) dest[0] |= 1 << bitIndex; } for (int bitIndex = 8; bitIndex < (LDPC_TOTAL_SIZE_BITS / 2); bitIndex++) { int bitsSinceCrc = bitIndex - 8; if (output[bitIndex]) dest[1 + (bitsSinceCrc / 6)] |= (1 << (bitsSinceCrc % 6)); } } return result; } static void reliable_text_freedv_callback_rx_sym(void *state, _Complex float sym, float amp) { reliable_text_impl_t* obj = (reliable_text_impl_t*)state; assert(obj != NULL); // Save the symbol. We'll use it during the bit handling below. obj->inbound_pending_syms[obj->sym_index] = (complex float)sym; obj->inbound_pending_amps[obj->sym_index++] = amp; //fprintf(stderr, "Got sym: %f, amp: %f\n", sym, amp); } static int check_uw(reliable_text_impl_t* obj) { assert(obj != NULL); // Count number of errors in UW. int num_zeroes = 0; for (int bit = 0; bit < RELIABLE_TEXT_UW_LENGTH_BITS; bit++) { if (obj->inbound_pending_bits[bit] ^ 1) { num_zeroes++; } } return num_zeroes <= RELIABLE_TEXT_MAX_ZEROES_IN_UW; } static void reliable_text_freedv_callback_rx(void *state, char chr) { //fprintf(stderr, "char: %d\n", (chr & 0x3F)); reliable_text_impl_t* obj = (reliable_text_impl_t*)state; assert(obj != NULL); // No need to further process if we got a valid string already. if (obj->has_successfully_decoded) { return; } // Append character to the end of the symbol list. obj->inbound_pending_bits[obj->bit_index++] = chr; // Verify UW and data. if (obj->bit_index >= RELIABLE_TEXT_UW_LENGTH_BITS + LDPC_TOTAL_SIZE_BITS) { int uw_bits_valid = check_uw(obj); // Only verify data if UW is valid. int resync = !uw_bits_valid; if (uw_bits_valid) { // We have all the bits we need, so we're ready to decode. char decodedStr[RELIABLE_TEXT_MAX_RAW_LENGTH + 1]; char rawStr[RELIABLE_TEXT_MAX_RAW_LENGTH + 1]; memset(rawStr, 0, RELIABLE_TEXT_MAX_RAW_LENGTH + 1); memset(decodedStr, 0, RELIABLE_TEXT_MAX_RAW_LENGTH + 1); if (reliable_text_ldpc_decode(obj, rawStr) != 0) { // BER is under limits. convert_ota_string_to_callsign_(&rawStr[RELIABLE_TEXT_CRC_LENGTH], &decodedStr[RELIABLE_TEXT_CRC_LENGTH], RELIABLE_TEXT_MAX_LENGTH); decodedStr[0] = rawStr[0]; // CRC // Get expected and actual CRC. unsigned char receivedCRC = decodedStr[0]; unsigned char calcCRC = calculateCRC8_(&rawStr[RELIABLE_TEXT_CRC_LENGTH], RELIABLE_TEXT_MAX_LENGTH); //fprintf(stderr, "rxCRC: %d, calcCRC: %d, decodedStr: %s\n", receivedCRC, calcCRC, &decodedStr[RELIABLE_TEXT_CRC_LENGTH]); if (receivedCRC == calcCRC) { // We got a valid string. Call assigned callback. obj->has_successfully_decoded = 1; obj->text_rx_callback(obj, &decodedStr[RELIABLE_TEXT_CRC_LENGTH], strlen(&decodedStr[RELIABLE_TEXT_CRC_LENGTH]), obj->callback_state); } // Reset UW decoding for next callsign. obj->bit_index = 0; obj->sym_index = 0; memset(&obj->inbound_pending_syms, 0, sizeof(complex float)*LDPC_TOTAL_SIZE_BITS/2); memset(&obj->inbound_pending_amps, 0, sizeof(float)*LDPC_TOTAL_SIZE_BITS/2); memset(&obj->inbound_pending_bits, 0, LDPC_TOTAL_SIZE_BITS + RELIABLE_TEXT_UW_LENGTH_BITS); } else { // It's possible that we didn't actually sync on UW after all. // Shift existing UW back 1 bit (or 2 if OFDM), add the bit(s) // from the data portion to UW, and try again next bit(s) we receive. resync = 1; } } if (resync) { obj->bit_index--; memmove(&obj->inbound_pending_bits[0], &obj->inbound_pending_bits[1], RELIABLE_TEXT_UW_LENGTH_BITS + LDPC_TOTAL_SIZE_BITS - 1); if (obj->sym_index > 0) { memmove(&obj->inbound_pending_bits[0], &obj->inbound_pending_bits[1], RELIABLE_TEXT_UW_LENGTH_BITS + LDPC_TOTAL_SIZE_BITS - 1); memmove(&obj->inbound_pending_syms[0], &obj->inbound_pending_syms[1], sizeof(_Complex float)*((RELIABLE_TEXT_UW_LENGTH_BITS + LDPC_TOTAL_SIZE_BITS)/2 - 1)); memmove(&obj->inbound_pending_amps[0], &obj->inbound_pending_amps[1], sizeof(float)*((RELIABLE_TEXT_UW_LENGTH_BITS + LDPC_TOTAL_SIZE_BITS)/2 - 1)); obj->bit_index--; obj->sym_index--; } } } } static char reliable_text_freedv_callback_tx(void *state) { reliable_text_impl_t* obj = (reliable_text_impl_t*)state; assert(obj != NULL); char ret = obj->tx_text[obj->tx_text_index]; obj->tx_text_index = (obj->tx_text_index + 1) % (obj->tx_text_length); //fprintf(stderr, "char: %d\n", ret); return ret; } reliable_text_t reliable_text_create() { reliable_text_impl_t* ret = calloc(1, sizeof(reliable_text_impl_t)); assert(ret != NULL); // Load LDPC code into memory. int code_index = ldpc_codes_find("HRA_56_56"); memcpy(&ret->ldpc, &ldpc_codes[code_index], sizeof(struct LDPC)); return (reliable_text_t)ret; } void reliable_text_destroy(reliable_text_t ptr) { assert(ptr != NULL); reliable_text_unlink_from_freedv(ptr); free(ptr); } void reliable_text_reset(reliable_text_t ptr) { reliable_text_impl_t* impl = (reliable_text_impl_t*)ptr; assert(impl != NULL); impl->bit_index = 0; impl->sym_index = 0; impl->has_successfully_decoded = 0; memset(&impl->inbound_pending_syms, 0, sizeof(complex float)*LDPC_TOTAL_SIZE_BITS/2); memset(&impl->inbound_pending_amps, 0, sizeof(float)*LDPC_TOTAL_SIZE_BITS/2); memset(&impl->inbound_pending_bits, 0, LDPC_TOTAL_SIZE_BITS + RELIABLE_TEXT_UW_LENGTH_BITS); } void reliable_text_set_string(reliable_text_t ptr, const char* str, int strlength) { reliable_text_impl_t* impl = (reliable_text_impl_t*)ptr; assert(impl != NULL); char tmp[RELIABLE_TEXT_MAX_RAW_LENGTH + 1]; memset(tmp, 0, RELIABLE_TEXT_MAX_RAW_LENGTH + 1); convert_callsign_to_ota_string_(str, &tmp[RELIABLE_TEXT_CRC_LENGTH], strlength < RELIABLE_TEXT_MAX_LENGTH ? strlength : RELIABLE_TEXT_MAX_LENGTH); int txt_length = strlen(&tmp[RELIABLE_TEXT_CRC_LENGTH]); if (txt_length >= RELIABLE_TEXT_MAX_LENGTH) { txt_length = RELIABLE_TEXT_MAX_LENGTH; } impl->tx_text_length = RELIABLE_TEXT_UW_LENGTH_BITS + LDPC_TOTAL_SIZE_BITS; impl->tx_text_index = 0; unsigned char crc = calculateCRC8_(&tmp[RELIABLE_TEXT_CRC_LENGTH], txt_length); tmp[0] = crc; // Encode block of text using LDPC(112,56). unsigned char ibits[LDPC_TOTAL_SIZE_BITS / 2]; unsigned char pbits[LDPC_TOTAL_SIZE_BITS / 2]; memset(ibits, 0, LDPC_TOTAL_SIZE_BITS / 2); memset(pbits, 0, LDPC_TOTAL_SIZE_BITS / 2); for (int index = 0; index < 8; index++) { if (tmp[0] & (1 << index)) ibits[index] = 1; } // Pack 6 bit characters into single LDPC block. for (int ibitsBitIndex = 8; ibitsBitIndex < (LDPC_TOTAL_SIZE_BITS / 2); ibitsBitIndex++) { int bitsFromCrc = ibitsBitIndex - 8; unsigned int byte = tmp[RELIABLE_TEXT_CRC_LENGTH + bitsFromCrc / 6]; unsigned int bitToCheck = bitsFromCrc % 6; //fprintf(stderr, "bit index: %d, byte: %x, bit to check: %d, result: %d\n", ibitsBitIndex, byte, bitToCheck, (byte & (1 << bitToCheck)) != 0); if (byte & (1 << bitToCheck)) { ibits[ibitsBitIndex] = 1; } } encode(&impl->ldpc, ibits, pbits); // Split LDPC encoded bits into individual bits, with the first RELIABLE_TEXT_UW_LENGTH_BITS being UW. char tmpbits[LDPC_TOTAL_SIZE_BITS]; memset(impl->tx_text, 1, RELIABLE_TEXT_UW_LENGTH_BITS); memset(impl->tx_text + RELIABLE_TEXT_UW_LENGTH_BITS, 0, LDPC_TOTAL_SIZE_BITS); memcpy(&tmpbits[0], &ibits[0], LDPC_TOTAL_SIZE_BITS / 2); memcpy(&tmpbits[LDPC_TOTAL_SIZE_BITS / 2], &pbits[0], LDPC_TOTAL_SIZE_BITS / 2); // Interleave the bits together to enhance fading performance. gp_interleave_bits(&impl->tx_text[RELIABLE_TEXT_UW_LENGTH_BITS], tmpbits, LDPC_TOTAL_SIZE_BITS / 2); } void reliable_text_use_with_freedv(reliable_text_t ptr, struct freedv* fdv, on_text_rx_t text_rx_fn, void* state) { reliable_text_impl_t* impl = (reliable_text_impl_t*)ptr; assert(impl != NULL); impl->callback_state = state; impl->text_rx_callback = text_rx_fn; impl->fdv = fdv; freedv_set_callback_txt(fdv, reliable_text_freedv_callback_rx, reliable_text_freedv_callback_tx, impl); freedv_set_callback_txt_sym(fdv, reliable_text_freedv_callback_rx_sym, impl); // Use code 3 for varicode en/decode and handle all framing at this level. varicode_set_code_num(&fdv->varicode_dec_states, 3); } struct freedv* reliable_text_get_freedv_obj(reliable_text_t ptr) { reliable_text_impl_t* impl = (reliable_text_impl_t*)ptr; assert(impl != NULL); return impl->fdv; } void reliable_text_unlink_from_freedv(reliable_text_t ptr) { reliable_text_impl_t* impl = (reliable_text_impl_t*)ptr; assert(impl != NULL); if (impl->fdv) { freedv_set_callback_txt(impl->fdv, NULL, NULL, NULL); freedv_set_callback_txt_sym(impl->fdv, NULL, NULL); varicode_set_code_num(&impl->fdv->varicode_dec_states, 1); impl->fdv = NULL; } } codec2-1.0.1/src/reliable_text.h000066400000000000000000000043111412132000500164160ustar00rootroot00000000000000//========================================================================== // Name: reliable_text.h // // Purpose: Handles reliable text (e.g. text with FEC). // Created: August 15, 2021 // Authors: Mooneer Salem // // License: // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU Lesser General Public License version 2.1, // as published by the Free Software Foundation. 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 Lesser General Public License // along with this program; if not, see . // //========================================================================== #ifndef RELIABLE_TEXT_H #define RELIABLE_TEXT_H #ifdef __cplusplus extern "C" { #endif // __cplusplus /* Forward define struct freedv for use by the function prototypes below. */ struct freedv; /* Hide internals of reliable_text_t. */ typedef void* reliable_text_t; /* Function type for callback (when full reliable text has been received). */ typedef void(*on_text_rx_t)(reliable_text_t rt, const char* txt_ptr, int length, void* state); /* Allocate reliable_text object. */ reliable_text_t reliable_text_create(); /* Destroy reliable_text object. */ void reliable_text_destroy(reliable_text_t ptr); /* Reset reliable_text object for next sync. */ void reliable_text_reset(reliable_text_t ptr); /* Sets string that is sent on TX. */ void reliable_text_set_string(reliable_text_t ptr, const char* str, int strlength); /* Link FreeDV object to reliable_text object. */ void reliable_text_use_with_freedv(reliable_text_t ptr, struct freedv* fdv, on_text_rx_t text_rx_fn, void* state); /* Returns associated struct freedv object. */ struct freedv* reliable_text_get_freedv_obj(reliable_text_t ptr); /* Unlink FreeDV object from reliable_text object. */ void reliable_text_unlink_from_freedv(reliable_text_t ptr); #ifdef __cplusplus } #endif // __cplusplus #endif // RELIABLE_TEXT_H codec2-1.0.1/src/resample.c000066400000000000000000000124411412132000500154010ustar00rootroot00000000000000/*---------------------------------------------------------------------------*\ FILE........: resample.c AUTHOR......: David Rowe DATE CREATED: 5/3/2016 Resamples a stream of 16 bit shorts. $ gcc resample.c -o resample -lm -lsamplerate -Wall \*---------------------------------------------------------------------------*/ /* Copyright (C) 2016 David Rowe All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 2.1, as published by the Free Software Foundation. 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 Lesser General Public License along with this program; if not, see . */ #define BUF_PERIOD 0.02 /* length of processingbuffer in seconds */ #include #include #include #include #include #include /* returns number of output samples generated by resampling */ int resample(SRC_STATE *src, short output_short[], short input_short[], int output_sample_rate, int input_sample_rate, int length_output_short, /* maximum output array length in samples */ int length_input_short, int *input_samples_used, int last ) { SRC_DATA src_data; float input[length_input_short]; float output[length_output_short]; int ret; assert(src != NULL); src_short_to_float_array(input_short, input, length_input_short); src_data.data_in = input; src_data.data_out = output; src_data.input_frames = length_input_short; src_data.output_frames = length_output_short; src_data.end_of_input = last; src_data.src_ratio = (float)output_sample_rate/input_sample_rate; //printf("ratio: %f\n", src_data.src_ratio); ret = src_process(src, &src_data); assert(ret == 0); assert(src_data.output_frames_gen <= length_output_short); src_float_to_short_array(output, output_short, src_data.output_frames_gen); *input_samples_used = src_data.input_frames_used; return src_data.output_frames_gen; } int main(int argc, char *argv[]) { FILE *fin, *fout; SRC_STATE *src; int FsIn, FsOut; int length_input_short, length_output_short; int src_error, nin, left_over, nread; if (argc < 5) { printf("usage: resample FsIn FsOut InputFileOfShorts OutputFileOfShortsn"); printf("e.g resample 1E6 1E5 Fs1E6HzInputShortFile.raw Fs1E5HzOutputShortFile.raw\n"); printf("e.g SampleGenerator | resample 1E6 1E5 | SampleConsumer\n"); exit(1); } FsIn = (int)atof(argv[1]); FsOut = (int)atof(argv[2]); length_input_short = BUF_PERIOD*FsIn; length_output_short = BUF_PERIOD*FsOut; //printf("FsIn: %d FsOut: %d length_input_short: %d length_output_short: %d\n", // FsIn, FsOut, length_input_short, length_output_short); short input_short[length_input_short]; short output_short[length_output_short]; if (strcmp(argv[3], "-") == 0) fin = stdin; else if ( (fin = fopen(argv[3],"rb")) == NULL ) { fprintf(stderr, "Error opening input speech file: %s: %s.\n", argv[2], strerror(errno)); exit(1); } if (strcmp(argv[4], "-") == 0) fout = stdout; else if ( (fout = fopen(argv[4],"wb")) == NULL ) { fprintf(stderr, "Error opening output speech file: %s: %s.\n", argv[3], strerror(errno)); exit(1); } src = src_new(SRC_SINC_FASTEST, 1, &src_error); assert(src != NULL); nin = length_input_short; left_over = 0; while((nread = fread(&input_short[left_over], sizeof(short), nin, fin)) == nin) { length_output_short = resample(src, output_short, input_short, FsOut, FsIn, length_output_short, length_input_short, &nin, 0); left_over = length_input_short - nin; memcpy(input_short, &input_short[nin], left_over); //printf("length_output_short: %d length_input_short: %d nin: %d left_over: %d\n", // length_output_short, length_input_short, nin, left_over); fwrite(output_short, sizeof(short), length_output_short, fout); } length_output_short = resample(src, output_short, input_short, FsOut, FsIn, length_output_short, length_input_short, &nin, 1); fwrite(output_short, sizeof(short), length_output_short, fout); fclose(fin); fclose(fout); src_delete(src); return 0; } codec2-1.0.1/src/rn.h000066400000000000000000000343441412132000500142230ustar00rootroot00000000000000/* Generated by rn_file() Octave function */ const float gt_alpha5_root[]={ 2.86997e-05, 2.2286e-05, 1.82863e-05, 1.42303e-05, 1.04905e-05, 6.70859e-06, 3.05918e-06, -6.22187e-07, -4.22748e-06, -7.85603e-06, -1.14317e-05, -1.50227e-05, -1.85712e-05, -2.21275e-05, -2.56455e-05, -2.91642e-05, -3.26453e-05, -3.61199e-05, -3.95556e-05, -4.29778e-05, -4.63581e-05, -4.97179e-05, -5.3032e-05, -5.63184e-05, -5.95548e-05, -6.27565e-05, -6.59032e-05, -6.90085e-05, -7.20538e-05, -7.50509e-05, -7.7983e-05, -8.08605e-05, -8.36678e-05, -8.64141e-05, -8.9085e-05, -9.16888e-05, -9.42119e-05, -9.66619e-05, -9.9026e-05, -0.000101311, -0.000103505, -0.000105614, -0.000107627, -0.00010955, -0.000111372, -0.000113099, -0.00011472, -0.000116241, -0.000117652, -0.000118959, -0.000120152, -0.000121235, -0.000122201, -0.000123053, -0.000123784, -0.000124397, -0.000124884, -0.00012525, -0.000125487, -0.000125598, -0.000125578, -0.000125428, -0.000125145, -0.000124729, -0.000124185, -0.000123518, -0.000122709, -0.000121766, -0.000120685, -0.000119471, -0.000118119, -0.000116633, -0.000115009, -0.000113251, -0.000111356, -0.000109326, -0.00010716, -0.00010486, -0.000102424, -9.98553e-05, -9.71528e-05, -9.43199e-05, -9.13551e-05, -8.82623e-05, -8.50404e-05, -8.16936e-05, -7.82211e-05, -7.46271e-05, -7.09109e-05, -6.70773e-05, -6.31256e-05, -5.90607e-05, -5.48823e-05, -5.05954e-05, -4.62001e-05, -4.17016e-05, -3.71002e-05, -3.24015e-05, -2.7606e-05, -2.27195e-05, -1.77428e-05, -1.2682e-05, -7.53795e-06, -2.31702e-06, 2.97965e-06, 8.34567e-06, 1.37796e-05, 1.9275e-05, 2.483e-05, 3.04382e-05, 3.60975e-05, 4.18011e-05, 4.75467e-05, 5.33273e-05, 5.91403e-05, 6.49787e-05, 7.08393e-05, 7.67152e-05, 8.26029e-05, 8.84957e-05, 9.43895e-05, 0.000100278, 0.000106157, 0.00011202, 0.000117864, 0.000123681, 0.000129468, 0.000135218, 0.000140929, 0.000146583, 0.000152183, 0.000157725, 0.000163202, 0.000168608, 0.000173938, 0.000179183, 0.00018434, 0.0001894, 0.00019436, 0.000199211, 0.000203949, 0.000208568, 0.000213063, 0.000217426, 0.000221654, 0.00022574, 0.000229678, 0.000233463, 0.000237089, 0.000240551, 0.000243843, 0.000246959, 0.000249895, 0.000252644, 0.000255202, 0.000257562, 0.000259721, 0.000261672, 0.000263411, 0.000264933, 0.000266234, 0.000267308, 0.000268152, 0.00026876, 0.000269128, 0.000269253, 0.000269129, 0.000268754, 0.000268123, 0.000267232, 0.000266079, 0.000264658, 0.000262968, 0.000261006, 0.000258767, 0.000256251, 0.000253453, 0.000250373, 0.000247007, 0.000243354, 0.000239412, 0.00023518, 0.000230655, 0.000225837, 0.000220723, 0.000215314, 0.000209608, 0.000203605, 0.000197304, 0.000190706, 0.000183812, 0.000176621, 0.000169145, 0.000161363, 0.000153275, 0.000144895, 0.000136224, 0.000127266, 0.00011802, 0.000108491, 9.8679e-05, 8.85877e-05, 7.82196e-05, 6.7577e-05, 5.66636e-05, 4.54822e-05, 3.40369e-05, 2.23311e-05, 1.03695e-05, -1.844e-06, -1.43041e-05, -2.70061e-05, -3.99444e-05, -5.31139e-05, -6.65082e-05, -8.01218e-05, -9.39481e-05, -0.000107981, -0.000122213, -0.000136638, -0.000151248, -0.000166036, -0.000180995, -0.000196115, -0.00021139, -0.000226811, -0.000242369, -0.000258056, -0.000273861, -0.000289776, -0.000305792, -0.000321898, -0.000338084, -0.000354342, -0.00037066, -0.000387027, -0.000403434, -0.00041987, -0.000436324, -0.000452784, -0.00046924, -0.00048568, -0.000502091, -0.000518464, -0.000534785, -0.000551043, -0.000567225, -0.000583319, -0.000599314, -0.000615196, -0.000630955, -0.000646575, -0.000662049, -0.000677361, -0.000692506, -0.000707464, -0.00072229, -0.000736922, -0.000751266, -0.000765372, -0.000779217, -0.000792798, -0.000806094, -0.000819098, -0.000831793, -0.000844168, -0.000856207, -0.000867898, -0.000879227, -0.00089018, -0.000900744, -0.000910906, -0.000920652, -0.00092997, -0.000938844, -0.000947263, -0.000955214, -0.000962682, -0.000969654, -0.000976119, -0.000982062, -0.00098747, -0.000992332, -0.000996634, -0.00100036, -0.00100351, -0.00100606, -0.001008, -0.00100932, -0.00101, -0.00101005, -0.00100943, -0.00100816, -0.0010062, -0.00100356, -0.00100021, -0.000996162, -0.000991392, -0.000985892, -0.000979654, -0.000972668, -0.000964925, -0.000956415, -0.000947131, -0.000937065, -0.000926208, -0.000914552, -0.00090209, -0.000888816, -0.000874721, -0.0008598, -0.000844046, -0.000827453, -0.000810015, -0.000791726, -0.000772581, -0.000752576, -0.000731704, -0.000709965, -0.00068735, -0.000663865, -0.000639509, -0.000614269, -0.000588146, -0.000561139, -0.000533246, -0.000504468, -0.000474802, -0.000444251, -0.000412813, -0.00038049, -0.000347281, -0.000313189, -0.000278215, -0.000242361, -0.000205629, -0.000168024, -0.000129546, -9.02024e-05, -4.99954e-05, -8.93026e-06, 3.2988e-05, 7.57537e-05, 0.000119361, 0.000163804, 0.000209075, 0.000255167, 0.000302074, 0.000349786, 0.000398297, 0.000447596, 0.000497676, 0.000548526, 0.000600136, 0.000652497, 0.000705598, 0.000759427, 0.000813972, 0.000869223, 0.000925166, 0.000981789, 0.00103908, 0.00109702, 0.00115561, 0.00121482, 0.00127464, 0.00133505, 0.00139605, 0.00145762, 0.00151973, 0.00158238, 0.00164555, 0.00170922, 0.00177337, 0.00183799, 0.00190305, 0.00196854, 0.00203445, 0.00210075, 0.00216742, 0.00223445, 0.00230181, 0.00236949, 0.00243747, 0.00250572, 0.00257423, 0.00264296, 0.00271192, 0.00278107, 0.00285039, 0.00291986, 0.00298947, 0.00305918, 0.00312898, 0.00319884, 0.00326874, 0.00333866, 0.00340857, 0.00347846, 0.00354831, 0.00361808, 0.00368775, 0.00375731, 0.00382673, 0.00389599, 0.00396506, 0.00403393, 0.00410256, 0.00417094, 0.00423904, 0.00430684, 0.00437431, 0.00444144, 0.0045082, 0.00457457, 0.00464052, 0.00470603, 0.00477108, 0.00483565, 0.00489972, 0.00496325, 0.00502623, 0.00508865, 0.00515046, 0.00521166, 0.00527223, 0.00533213, 0.00539135, 0.00544987, 0.00550766, 0.00556472, 0.005621, 0.00567651, 0.00573121, 0.00578508, 0.00583811, 0.00589028, 0.00594157, 0.00599196, 0.00604143, 0.00608996, 0.00613754, 0.00618415, 0.00622977, 0.00627439, 0.00631798, 0.00636054, 0.00640204, 0.0064425, 0.00648186, 0.00652009, 0.00655722, 0.00659322, 0.00662808, 0.00666179, 0.00669433, 0.00672571, 0.00675589, 0.00678488, 0.00681266, 0.00683921, 0.00686454, 0.00688863, 0.00691147, 0.00693305, 0.00695336, 0.0069724, 0.00699016, 0.00700663, 0.00702181, 0.00703569, 0.00704826, 0.00705952, 0.00706947, 0.00707809, 0.0070854, 0.00709138, 0.00709604, 0.00709937, 0.00710136, 0.00710203, 0.00710136, 0.00709937, 0.00709604, 0.00709138, 0.0070854, 0.00707809, 0.00706947, 0.00705952, 0.00704826, 0.00703569, 0.00702181, 0.00700663, 0.00699016, 0.0069724, 0.00695336, 0.00693305, 0.00691147, 0.00688863, 0.00686454, 0.00683921, 0.00681266, 0.00678488, 0.00675589, 0.00672571, 0.00669433, 0.00666179, 0.00662808, 0.00659322, 0.00655722, 0.00652009, 0.00648186, 0.0064425, 0.00640204, 0.00636054, 0.00631798, 0.00627439, 0.00622977, 0.00618415, 0.00613754, 0.00608996, 0.00604143, 0.00599196, 0.00594157, 0.00589028, 0.00583811, 0.00578508, 0.00573121, 0.00567651, 0.005621, 0.00556472, 0.00550766, 0.00544987, 0.00539135, 0.00533213, 0.00527223, 0.00521166, 0.00515046, 0.00508865, 0.00502623, 0.00496325, 0.00489972, 0.00483565, 0.00477108, 0.00470603, 0.00464052, 0.00457457, 0.0045082, 0.00444144, 0.00437431, 0.00430684, 0.00423904, 0.00417094, 0.00410256, 0.00403393, 0.00396506, 0.00389599, 0.00382673, 0.00375731, 0.00368775, 0.00361808, 0.00354831, 0.00347846, 0.00340857, 0.00333866, 0.00326874, 0.00319884, 0.00312898, 0.00305918, 0.00298947, 0.00291986, 0.00285039, 0.00278107, 0.00271192, 0.00264296, 0.00257423, 0.00250572, 0.00243747, 0.00236949, 0.00230181, 0.00223445, 0.00216742, 0.00210075, 0.00203445, 0.00196854, 0.00190305, 0.00183799, 0.00177337, 0.00170922, 0.00164555, 0.00158238, 0.00151973, 0.00145762, 0.00139605, 0.00133505, 0.00127464, 0.00121482, 0.00115561, 0.00109702, 0.00103908, 0.000981789, 0.000925166, 0.000869223, 0.000813972, 0.000759427, 0.000705598, 0.000652497, 0.000600136, 0.000548526, 0.000497676, 0.000447596, 0.000398297, 0.000349786, 0.000302074, 0.000255167, 0.000209075, 0.000163804, 0.000119361, 7.57537e-05, 3.2988e-05, -8.93026e-06, -4.99954e-05, -9.02024e-05, -0.000129546, -0.000168024, -0.000205629, -0.000242361, -0.000278215, -0.000313189, -0.000347281, -0.00038049, -0.000412813, -0.000444251, -0.000474802, -0.000504468, -0.000533246, -0.000561139, -0.000588146, -0.000614269, -0.000639509, -0.000663865, -0.00068735, -0.000709965, -0.000731704, -0.000752576, -0.000772581, -0.000791726, -0.000810015, -0.000827453, -0.000844046, -0.0008598, -0.000874721, -0.000888816, -0.00090209, -0.000914552, -0.000926208, -0.000937065, -0.000947131, -0.000956415, -0.000964925, -0.000972668, -0.000979654, -0.000985892, -0.000991392, -0.000996162, -0.00100021, -0.00100356, -0.0010062, -0.00100816, -0.00100943, -0.00101005, -0.00101, -0.00100932, -0.001008, -0.00100606, -0.00100351, -0.00100036, -0.000996634, -0.000992332, -0.00098747, -0.000982062, -0.000976119, -0.000969654, -0.000962682, -0.000955214, -0.000947263, -0.000938844, -0.00092997, -0.000920652, -0.000910906, -0.000900744, -0.00089018, -0.000879227, -0.000867898, -0.000856207, -0.000844168, -0.000831793, -0.000819098, -0.000806094, -0.000792798, -0.000779217, -0.000765372, -0.000751266, -0.000736922, -0.00072229, -0.000707464, -0.000692506, -0.000677361, -0.000662049, -0.000646575, -0.000630955, -0.000615196, -0.000599314, -0.000583319, -0.000567225, -0.000551043, -0.000534785, -0.000518464, -0.000502091, -0.00048568, -0.00046924, -0.000452784, -0.000436324, -0.00041987, -0.000403434, -0.000387027, -0.00037066, -0.000354342, -0.000338084, -0.000321898, -0.000305792, -0.000289776, -0.000273861, -0.000258056, -0.000242369, -0.000226811, -0.00021139, -0.000196115, -0.000180995, -0.000166036, -0.000151248, -0.000136638, -0.000122213, -0.000107981, -9.39481e-05, -8.01218e-05, -6.65082e-05, -5.31139e-05, -3.99444e-05, -2.70061e-05, -1.43041e-05, -1.844e-06, 1.03695e-05, 2.23311e-05, 3.40369e-05, 4.54822e-05, 5.66636e-05, 6.7577e-05, 7.82196e-05, 8.85877e-05, 9.8679e-05, 0.000108491, 0.00011802, 0.000127266, 0.000136224, 0.000144895, 0.000153275, 0.000161363, 0.000169145, 0.000176621, 0.000183812, 0.000190706, 0.000197304, 0.000203605, 0.000209608, 0.000215314, 0.000220723, 0.000225837, 0.000230655, 0.00023518, 0.000239412, 0.000243354, 0.000247007, 0.000250373, 0.000253453, 0.000256251, 0.000258767, 0.000261006, 0.000262968, 0.000264658, 0.000266079, 0.000267232, 0.000268123, 0.000268754, 0.000269129, 0.000269253, 0.000269128, 0.00026876, 0.000268152, 0.000267308, 0.000266234, 0.000264933, 0.000263411, 0.000261672, 0.000259721, 0.000257562, 0.000255202, 0.000252644, 0.000249895, 0.000246959, 0.000243843, 0.000240551, 0.000237089, 0.000233463, 0.000229678, 0.00022574, 0.000221654, 0.000217426, 0.000213063, 0.000208568, 0.000203949, 0.000199211, 0.00019436, 0.0001894, 0.00018434, 0.000179183, 0.000173938, 0.000168608, 0.000163202, 0.000157725, 0.000152183, 0.000146583, 0.000140929, 0.000135218, 0.000129468, 0.000123681, 0.000117864, 0.00011202, 0.000106157, 0.000100278, 9.43895e-05, 8.84957e-05, 8.26029e-05, 7.67152e-05, 7.08393e-05, 6.49787e-05, 5.91403e-05, 5.33273e-05, 4.75467e-05, 4.18011e-05, 3.60975e-05, 3.04382e-05, 2.483e-05, 1.9275e-05, 1.37796e-05, 8.34567e-06, 2.97965e-06, -2.31702e-06, -7.53795e-06, -1.2682e-05, -1.77428e-05, -2.27195e-05, -2.7606e-05, -3.24015e-05, -3.71002e-05, -4.17016e-05, -4.62001e-05, -5.05954e-05, -5.48823e-05, -5.90607e-05, -6.31256e-05, -6.70773e-05, -7.09109e-05, -7.46271e-05, -7.82211e-05, -8.16936e-05, -8.50404e-05, -8.82623e-05, -9.13551e-05, -9.43199e-05, -9.71528e-05, -9.98553e-05, -0.000102424, -0.00010486, -0.00010716, -0.000109326, -0.000111356, -0.000113251, -0.000115009, -0.000116633, -0.000118119, -0.000119471, -0.000120685, -0.000121766, -0.000122709, -0.000123518, -0.000124185, -0.000124729, -0.000125145, -0.000125428, -0.000125578, -0.000125598, -0.000125487, -0.00012525, -0.000124884, -0.000124397, -0.000123784, -0.000123053, -0.000122201, -0.000121235, -0.000120152, -0.000118959, -0.000117652, -0.000116241, -0.00011472, -0.000113099, -0.000111372, -0.00010955, -0.000107627, -0.000105614, -0.000103505, -0.000101311, -9.9026e-05, -9.66619e-05, -9.42119e-05, -9.16888e-05, -8.9085e-05, -8.64141e-05, -8.36678e-05, -8.08605e-05, -7.7983e-05, -7.50509e-05, -7.20538e-05, -6.90085e-05, -6.59032e-05, -6.27565e-05, -5.95548e-05, -5.63184e-05, -5.3032e-05, -4.97179e-05, -4.63581e-05, -4.29778e-05, -3.95556e-05, -3.61199e-05, -3.26453e-05, -2.91642e-05, -2.56455e-05, -2.21275e-05, -1.85712e-05, -1.50227e-05, -1.14317e-05, -7.85603e-06, -4.22748e-06, -6.22187e-07, 3.05918e-06, 6.70859e-06, 1.04905e-05, 1.42303e-05, 1.82863e-05, 2.2286e-05 }; codec2-1.0.1/src/rn_coh.h000066400000000000000000000644611412132000500150570ustar00rootroot00000000000000/* Generated by rn_file() Octave function */ const float gt_alpha5_root_coh[]={ 4.05576e-05, 2.58255e-05, 1.58964e-05, 5.78773e-06, -3.71244e-06, -1.33229e-05, -2.2664e-05, -3.20611e-05, -4.12734e-05, -5.04935e-05, -5.9545e-05, -6.85565e-05, -7.73902e-05, -8.6137e-05, -9.46835e-05, -0.000103097, -0.000111281, -0.000119289, -0.000127034, -0.000134559, -0.000141789, -0.000148756, -0.000155393, -0.000161723, -0.000167689, -0.000173315, -0.00017854, -0.000183382, -0.000187794, -0.000191793, -0.000195333, -0.000198429, -0.000201038, -0.000203173, -0.000204797, -0.000205922, -0.000206515, -0.00020659, -0.000206117, -0.000205109, -0.000203541, -0.000201427, -0.000198743, -0.000195505, -0.000191693, -0.000187324, -0.000182382, -0.000176885, -0.000170822, -0.00016421, -0.000157041, -0.000149335, -0.000141089, -0.000132323, -0.000123038, -0.000113258, -0.000102985, -9.22439e-05, -8.10442e-05, -6.94109e-05, -5.73536e-05, -4.49012e-05, -3.20661e-05, -1.88794e-05, -5.35615e-06, 8.47105e-06, 2.25833e-05, 3.69472e-05, 5.15418e-05, 6.63317e-05, 8.12934e-05, 9.63895e-05, 0.000111594, 0.000126869, 0.000142183, 0.000157497, 0.000172781, 0.000187996, 0.000203111, 0.000218088, 0.000232892, 0.000247474, 0.000261806, 0.000275847, 0.000289559, 0.000302903, 0.000315839, 0.00032833, 0.000340339, 0.000351824, 0.000362751, 0.00037308, 0.000382774, 0.000391795, 0.000400108, 0.000407675, 0.000414464, 0.000420437, 0.000425565, 0.000429812, 0.000433151, 0.000435544, 0.000436975, 0.000437401, 0.000436865, 0.000435237, 0.00043246, 0.000428592, 0.000423608, 0.000417497, 0.00041024, 0.000401823, 0.000392231, 0.000381449, 0.000369471, 0.000356284, 0.000341885, 0.000326267, 0.00030943, 0.000291373, 0.000272099, 0.000251612, 0.000229921, 0.000207034, 0.000182964, 0.000157726, 0.000131338, 0.000103821, 7.51956e-05, 4.54842e-05, 1.4721e-05, -1.7067e-05, -4.98479e-05, -8.35883e-05, -0.000118248, -0.00015379, -0.000190167, -0.000227336, -0.000265248, -0.000303856, -0.000343104, -0.000382942, -0.00042331, -0.000464152, -0.000505403, -0.000547003, -0.000588883, -0.000630979, -0.000673218, -0.000715533, -0.000757849, -0.000800092, -0.000842187, -0.000884054, -0.000925613, -0.000966788, -0.00100749, -0.00104765, -0.00108717, -0.00112597, -0.00116397, -0.00120108, -0.0012372, -0.00127227, -0.00130617, -0.00133884, -0.00137017, -0.00140008, -0.00142848, -0.00145528, -0.0014804, -0.00150374, -0.00152522, -0.00154475, -0.00156225, -0.00157763, -0.00159081, -0.00160171, -0.00161024, -0.00161633, -0.0016199, -0.00162088, -0.00161917, -0.00161472, -0.00160744, -0.00159729, -0.00158419, -0.00156807, -0.00154888, -0.00152655, -0.00150103, -0.00147227, -0.00144021, -0.00140482, -0.00136604, -0.00132384, -0.00127818, -0.00122903, -0.00117635, -0.00112013, -0.00106033, -0.000996946, -0.000929956, -0.000859348, -0.000785117, -0.000707261, -0.000625779, -0.00054068, -0.000451952, -0.000359651, -0.000263788, -0.00016436, -6.13947e-05, 4.5076e-05, 0.000155016, 0.000268384, 0.000385134, 0.000505217, 0.000628582, 0.000755171, 0.000884923, 0.00101777, 0.00115366, 0.00129249, 0.00143421, 0.00157873, 0.00172596, 0.00187583, 0.00202822, 0.00218306, 0.00234023, 0.00249965, 0.00266119, 0.00282475, 0.00299023, 0.00315749, 0.00332643, 0.00349691, 0.00366882, 0.00384202, 0.00401639, 0.0041918, 0.0043681, 0.00454516, 0.00472285, 0.00490101, 0.00507951, 0.00525821, 0.00543695, 0.0056156, 0.005794, 0.00597201, 0.00614947, 0.00632623, 0.00650216, 0.00667708, 0.00685086, 0.00702335, 0.00719439, 0.00736383, 0.00753153, 0.00769734, 0.00786111, 0.00802269, 0.00818194, 0.00833872, 0.00849289, 0.0086443, 0.00879283, 0.00893832, 0.00908066, 0.00921971, 0.00935534, 0.00948743, 0.00961585, 0.00974049, 0.00986123, 0.00997795, 0.0100905, 0.0101989, 0.0103029, 0.0104025, 0.0104976, 0.0105881, 0.0106738, 0.0107548, 0.010831, 0.0109022, 0.0109684, 0.0110295, 0.0110855, 0.0111364, 0.011182, 0.0112224, 0.0112575, 0.0112872, 0.0113115, 0.0113305, 0.0113441, 0.0113522, 0.0113549, 0.0113522, 0.0113441, 0.0113305, 0.0113115, 0.0112872, 0.0112575, 0.0112224, 0.011182, 0.0111364, 0.0110855, 0.0110295, 0.0109684, 0.0109022, 0.010831, 0.0107548, 0.0106738, 0.0105881, 0.0104976, 0.0104025, 0.0103029, 0.0101989, 0.0100905, 0.00997795, 0.00986123, 0.00974049, 0.00961585, 0.00948743, 0.00935534, 0.00921971, 0.00908066, 0.00893832, 0.00879283, 0.0086443, 0.00849289, 0.00833872, 0.00818194, 0.00802269, 0.00786111, 0.00769734, 0.00753153, 0.00736383, 0.00719439, 0.00702335, 0.00685086, 0.00667708, 0.00650216, 0.00632623, 0.00614947, 0.00597201, 0.005794, 0.0056156, 0.00543695, 0.00525821, 0.00507951, 0.00490101, 0.00472285, 0.00454516, 0.0043681, 0.0041918, 0.00401639, 0.00384202, 0.00366882, 0.00349691, 0.00332643, 0.00315749, 0.00299023, 0.00282475, 0.00266119, 0.00249965, 0.00234023, 0.00218306, 0.00202822, 0.00187583, 0.00172596, 0.00157873, 0.00143421, 0.00129249, 0.00115366, 0.00101777, 0.000884923, 0.000755171, 0.000628582, 0.000505217, 0.000385134, 0.000268384, 0.000155016, 4.5076e-05, -6.13947e-05, -0.00016436, -0.000263788, -0.000359651, -0.000451952, -0.00054068, -0.000625779, -0.000707261, -0.000785117, -0.000859348, -0.000929956, -0.000996946, -0.00106033, -0.00112013, -0.00117635, -0.00122903, -0.00127818, -0.00132384, -0.00136604, -0.00140482, -0.00144021, -0.00147227, -0.00150103, -0.00152655, -0.00154888, -0.00156807, -0.00158419, -0.00159729, -0.00160744, -0.00161472, -0.00161917, -0.00162088, -0.0016199, -0.00161633, -0.00161024, -0.00160171, -0.00159081, -0.00157763, -0.00156225, -0.00154475, -0.00152522, -0.00150374, -0.0014804, -0.00145528, -0.00142848, -0.00140008, -0.00137017, -0.00133884, -0.00130617, -0.00127227, -0.0012372, -0.00120108, -0.00116397, -0.00112597, -0.00108717, -0.00104765, -0.00100749, -0.000966788, -0.000925613, -0.000884054, -0.000842187, -0.000800092, -0.000757849, -0.000715533, -0.000673218, -0.000630979, -0.000588883, -0.000547003, -0.000505403, -0.000464152, -0.00042331, -0.000382942, -0.000343104, -0.000303856, -0.000265248, -0.000227336, -0.000190167, -0.00015379, -0.000118248, -8.35883e-05, -4.98479e-05, -1.7067e-05, 1.4721e-05, 4.54842e-05, 7.51956e-05, 0.000103821, 0.000131338, 0.000157726, 0.000182964, 0.000207034, 0.000229921, 0.000251612, 0.000272099, 0.000291373, 0.00030943, 0.000326267, 0.000341885, 0.000356284, 0.000369471, 0.000381449, 0.000392231, 0.000401823, 0.00041024, 0.000417497, 0.000423608, 0.000428592, 0.00043246, 0.000435237, 0.000436865, 0.000437401, 0.000436975, 0.000435544, 0.000433151, 0.000429812, 0.000425565, 0.000420437, 0.000414464, 0.000407675, 0.000400108, 0.000391795, 0.000382774, 0.00037308, 0.000362751, 0.000351824, 0.000340339, 0.00032833, 0.000315839, 0.000302903, 0.000289559, 0.000275847, 0.000261806, 0.000247474, 0.000232892, 0.000218088, 0.000203111, 0.000187996, 0.000172781, 0.000157497, 0.000142183, 0.000126869, 0.000111594, 9.63895e-05, 8.12934e-05, 6.63317e-05, 5.15418e-05, 3.69472e-05, 2.25833e-05, 8.47105e-06, -5.35615e-06, -1.88794e-05, -3.20661e-05, -4.49012e-05, -5.73536e-05, -6.94109e-05, -8.10442e-05, -9.22439e-05, -0.000102985, -0.000113258, -0.000123038, -0.000132323, -0.000141089, -0.000149335, -0.000157041, -0.00016421, -0.000170822, -0.000176885, -0.000182382, -0.000187324, -0.000191693, -0.000195505, -0.000198743, -0.000201427, -0.000203541, -0.000205109, -0.000206117, -0.00020659, -0.000206515, -0.000205922, -0.000204797, -0.000203173, -0.000201038, -0.000198429, -0.000195333, -0.000191793, -0.000187794, -0.000183382, -0.00017854, -0.000173315, -0.000167689, -0.000161723, -0.000155393, -0.000148756, -0.000141789, -0.000134559, -0.000127034, -0.000119289, -0.000111281, -0.000103097, -9.46835e-05, -8.6137e-05, -7.73902e-05, -6.85565e-05, -5.9545e-05, -5.04935e-05, -4.12734e-05, -3.20611e-05, -2.2664e-05, -1.33229e-05, -3.71244e-06, 5.78773e-06, 1.58964e-05, 2.58255e-05 }; const float gt_alpha5_root_coh_neon[]={ 4.05576e-05, 4.05576e-05, 2.58255e-05, 2.58255e-05, 1.58964e-05, 1.58964e-05, 5.78773e-06, 5.78773e-06, -3.71244e-06, -3.71244e-06, -1.33229e-05, -1.33229e-05, -2.2664e-05, -2.2664e-05, -3.20611e-05, -3.20611e-05, -4.12734e-05, -4.12734e-05, -5.04935e-05, -5.04935e-05, -5.9545e-05, -5.9545e-05, -6.85565e-05, -6.85565e-05, -7.73902e-05, -7.73902e-05, -8.6137e-05, -8.6137e-05, -9.46835e-05, -9.46835e-05, -0.000103097, -0.000103097, -0.000111281, -0.000111281, -0.000119289, -0.000119289, -0.000127034, -0.000127034, -0.000134559, -0.000134559, -0.000141789, -0.000141789, -0.000148756, -0.000148756, -0.000155393, -0.000155393, -0.000161723, -0.000161723, -0.000167689, -0.000167689, -0.000173315, -0.000173315, -0.00017854, -0.00017854, -0.000183382, -0.000183382, -0.000187794, -0.000187794, -0.000191793, -0.000191793, -0.000195333, -0.000195333, -0.000198429, -0.000198429, -0.000201038, -0.000201038, -0.000203173, -0.000203173, -0.000204797, -0.000204797, -0.000205922, -0.000205922, -0.000206515, -0.000206515, -0.00020659, -0.00020659, -0.000206117, -0.000206117, -0.000205109, -0.000205109, -0.000203541, -0.000203541, -0.000201427, -0.000201427, -0.000198743, -0.000198743, -0.000195505, -0.000195505, -0.000191693, -0.000191693, -0.000187324, -0.000187324, -0.000182382, -0.000182382, -0.000176885, -0.000176885, -0.000170822, -0.000170822, -0.00016421, -0.00016421, -0.000157041, -0.000157041, -0.000149335, -0.000149335, -0.000141089, -0.000141089, -0.000132323, -0.000132323, -0.000123038, -0.000123038, -0.000113258, -0.000113258, -0.000102985, -0.000102985, -9.22439e-05, -9.22439e-05, -8.10442e-05, -8.10442e-05, -6.94109e-05, -6.94109e-05, -5.73536e-05, -5.73536e-05, -4.49012e-05, -4.49012e-05, -3.20661e-05, -3.20661e-05, -1.88794e-05, -1.88794e-05, -5.35615e-06, -5.35615e-06, 8.47105e-06, 8.47105e-06, 2.25833e-05, 2.25833e-05, 3.69472e-05, 3.69472e-05, 5.15418e-05, 5.15418e-05, 6.63317e-05, 6.63317e-05, 8.12934e-05, 8.12934e-05, 9.63895e-05, 9.63895e-05, 0.000111594, 0.000111594, 0.000126869, 0.000126869, 0.000142183, 0.000142183, 0.000157497, 0.000157497, 0.000172781, 0.000172781, 0.000187996, 0.000187996, 0.000203111, 0.000203111, 0.000218088, 0.000218088, 0.000232892, 0.000232892, 0.000247474, 0.000247474, 0.000261806, 0.000261806, 0.000275847, 0.000275847, 0.000289559, 0.000289559, 0.000302903, 0.000302903, 0.000315839, 0.000315839, 0.00032833, 0.00032833, 0.000340339, 0.000340339, 0.000351824, 0.000351824, 0.000362751, 0.000362751, 0.00037308, 0.00037308, 0.000382774, 0.000382774, 0.000391795, 0.000391795, 0.000400108, 0.000400108, 0.000407675, 0.000407675, 0.000414464, 0.000414464, 0.000420437, 0.000420437, 0.000425565, 0.000425565, 0.000429812, 0.000429812, 0.000433151, 0.000433151, 0.000435544, 0.000435544, 0.000436975, 0.000436975, 0.000437401, 0.000437401, 0.000436865, 0.000436865, 0.000435237, 0.000435237, 0.00043246, 0.00043246, 0.000428592, 0.000428592, 0.000423608, 0.000423608, 0.000417497, 0.000417497, 0.00041024, 0.00041024, 0.000401823, 0.000401823, 0.000392231, 0.000392231, 0.000381449, 0.000381449, 0.000369471, 0.000369471, 0.000356284, 0.000356284, 0.000341885, 0.000341885, 0.000326267, 0.000326267, 0.00030943, 0.00030943, 0.000291373, 0.000291373, 0.000272099, 0.000272099, 0.000251612, 0.000251612, 0.000229921, 0.000229921, 0.000207034, 0.000207034, 0.000182964, 0.000182964, 0.000157726, 0.000157726, 0.000131338, 0.000131338, 0.000103821, 0.000103821, 7.51956e-05, 7.51956e-05, 4.54842e-05, 4.54842e-05, 1.4721e-05, 1.4721e-05, -1.7067e-05, -1.7067e-05, -4.98479e-05, -4.98479e-05, -8.35883e-05, -8.35883e-05, -0.000118248, -0.000118248, -0.00015379, -0.00015379, -0.000190167, -0.000190167, -0.000227336, -0.000227336, -0.000265248, -0.000265248, -0.000303856, -0.000303856, -0.000343104, -0.000343104, -0.000382942, -0.000382942, -0.00042331, -0.00042331, -0.000464152, -0.000464152, -0.000505403, -0.000505403, -0.000547003, -0.000547003, -0.000588883, -0.000588883, -0.000630979, -0.000630979, -0.000673218, -0.000673218, -0.000715533, -0.000715533, -0.000757849, -0.000757849, -0.000800092, -0.000800092, -0.000842187, -0.000842187, -0.000884054, -0.000884054, -0.000925613, -0.000925613, -0.000966788, -0.000966788, -0.00100749, -0.00100749, -0.00104765, -0.00104765, -0.00108717, -0.00108717, -0.00112597, -0.00112597, -0.00116397, -0.00116397, -0.00120108, -0.00120108, -0.0012372, -0.0012372, -0.00127227, -0.00127227, -0.00130617, -0.00130617, -0.00133884, -0.00133884, -0.00137017, -0.00137017, -0.00140008, -0.00140008, -0.00142848, -0.00142848, -0.00145528, -0.00145528, -0.0014804, -0.0014804, -0.00150374, -0.00150374, -0.00152522, -0.00152522, -0.00154475, -0.00154475, -0.00156225, -0.00156225, -0.00157763, -0.00157763, -0.00159081, -0.00159081, -0.00160171, -0.00160171, -0.00161024, -0.00161024, -0.00161633, -0.00161633, -0.0016199, -0.0016199, -0.00162088, -0.00162088, -0.00161917, -0.00161917, -0.00161472, -0.00161472, -0.00160744, -0.00160744, -0.00159729, -0.00159729, -0.00158419, -0.00158419, -0.00156807, -0.00156807, -0.00154888, -0.00154888, -0.00152655, -0.00152655, -0.00150103, -0.00150103, -0.00147227, -0.00147227, -0.00144021, -0.00144021, -0.00140482, -0.00140482, -0.00136604, -0.00136604, -0.00132384, -0.00132384, -0.00127818, -0.00127818, -0.00122903, -0.00122903, -0.00117635, -0.00117635, -0.00112013, -0.00112013, -0.00106033, -0.00106033, -0.000996946, -0.000996946, -0.000929956, -0.000929956, -0.000859348, -0.000859348, -0.000785117, -0.000785117, -0.000707261, -0.000707261, -0.000625779, -0.000625779, -0.00054068, -0.00054068, -0.000451952, -0.000451952, -0.000359651, -0.000359651, -0.000263788, -0.000263788, -0.00016436, -0.00016436, -6.13947e-05, -6.13947e-05, 4.5076e-05, 4.5076e-05, 0.000155016, 0.000155016, 0.000268384, 0.000268384, 0.000385134, 0.000385134, 0.000505217, 0.000505217, 0.000628582, 0.000628582, 0.000755171, 0.000755171, 0.000884923, 0.000884923, 0.00101777, 0.00101777, 0.00115366, 0.00115366, 0.00129249, 0.00129249, 0.00143421, 0.00143421, 0.00157873, 0.00157873, 0.00172596, 0.00172596, 0.00187583, 0.00187583, 0.00202822, 0.00202822, 0.00218306, 0.00218306, 0.00234023, 0.00234023, 0.00249965, 0.00249965, 0.00266119, 0.00266119, 0.00282475, 0.00282475, 0.00299023, 0.00299023, 0.00315749, 0.00315749, 0.00332643, 0.00332643, 0.00349691, 0.00349691, 0.00366882, 0.00366882, 0.00384202, 0.00384202, 0.00401639, 0.00401639, 0.0041918, 0.0041918, 0.0043681, 0.0043681, 0.00454516, 0.00454516, 0.00472285, 0.00472285, 0.00490101, 0.00490101, 0.00507951, 0.00507951, 0.00525821, 0.00525821, 0.00543695, 0.00543695, 0.0056156, 0.0056156, 0.005794, 0.005794, 0.00597201, 0.00597201, 0.00614947, 0.00614947, 0.00632623, 0.00632623, 0.00650216, 0.00650216, 0.00667708, 0.00667708, 0.00685086, 0.00685086, 0.00702335, 0.00702335, 0.00719439, 0.00719439, 0.00736383, 0.00736383, 0.00753153, 0.00753153, 0.00769734, 0.00769734, 0.00786111, 0.00786111, 0.00802269, 0.00802269, 0.00818194, 0.00818194, 0.00833872, 0.00833872, 0.00849289, 0.00849289, 0.0086443, 0.0086443, 0.00879283, 0.00879283, 0.00893832, 0.00893832, 0.00908066, 0.00908066, 0.00921971, 0.00921971, 0.00935534, 0.00935534, 0.00948743, 0.00948743, 0.00961585, 0.00961585, 0.00974049, 0.00974049, 0.00986123, 0.00986123, 0.00997795, 0.00997795, 0.0100905, 0.0100905, 0.0101989, 0.0101989, 0.0103029, 0.0103029, 0.0104025, 0.0104025, 0.0104976, 0.0104976, 0.0105881, 0.0105881, 0.0106738, 0.0106738, 0.0107548, 0.0107548, 0.010831, 0.010831, 0.0109022, 0.0109022, 0.0109684, 0.0109684, 0.0110295, 0.0110295, 0.0110855, 0.0110855, 0.0111364, 0.0111364, 0.011182, 0.011182, 0.0112224, 0.0112224, 0.0112575, 0.0112575, 0.0112872, 0.0112872, 0.0113115, 0.0113115, 0.0113305, 0.0113305, 0.0113441, 0.0113441, 0.0113522, 0.0113522, 0.0113549, 0.0113549, 0.0113522, 0.0113522, 0.0113441, 0.0113441, 0.0113305, 0.0113305, 0.0113115, 0.0113115, 0.0112872, 0.0112872, 0.0112575, 0.0112575, 0.0112224, 0.0112224, 0.011182, 0.011182, 0.0111364, 0.0111364, 0.0110855, 0.0110855, 0.0110295, 0.0110295, 0.0109684, 0.0109684, 0.0109022, 0.0109022, 0.010831, 0.010831, 0.0107548, 0.0107548, 0.0106738, 0.0106738, 0.0105881, 0.0105881, 0.0104976, 0.0104976, 0.0104025, 0.0104025, 0.0103029, 0.0103029, 0.0101989, 0.0101989, 0.0100905, 0.0100905, 0.00997795, 0.00997795, 0.00986123, 0.00986123, 0.00974049, 0.00974049, 0.00961585, 0.00961585, 0.00948743, 0.00948743, 0.00935534, 0.00935534, 0.00921971, 0.00921971, 0.00908066, 0.00908066, 0.00893832, 0.00893832, 0.00879283, 0.00879283, 0.0086443, 0.0086443, 0.00849289, 0.00849289, 0.00833872, 0.00833872, 0.00818194, 0.00818194, 0.00802269, 0.00802269, 0.00786111, 0.00786111, 0.00769734, 0.00769734, 0.00753153, 0.00753153, 0.00736383, 0.00736383, 0.00719439, 0.00719439, 0.00702335, 0.00702335, 0.00685086, 0.00685086, 0.00667708, 0.00667708, 0.00650216, 0.00650216, 0.00632623, 0.00632623, 0.00614947, 0.00614947, 0.00597201, 0.00597201, 0.005794, 0.005794, 0.0056156, 0.0056156, 0.00543695, 0.00543695, 0.00525821, 0.00525821, 0.00507951, 0.00507951, 0.00490101, 0.00490101, 0.00472285, 0.00472285, 0.00454516, 0.00454516, 0.0043681, 0.0043681, 0.0041918, 0.0041918, 0.00401639, 0.00401639, 0.00384202, 0.00384202, 0.00366882, 0.00366882, 0.00349691, 0.00349691, 0.00332643, 0.00332643, 0.00315749, 0.00315749, 0.00299023, 0.00299023, 0.00282475, 0.00282475, 0.00266119, 0.00266119, 0.00249965, 0.00249965, 0.00234023, 0.00234023, 0.00218306, 0.00218306, 0.00202822, 0.00202822, 0.00187583, 0.00187583, 0.00172596, 0.00172596, 0.00157873, 0.00157873, 0.00143421, 0.00143421, 0.00129249, 0.00129249, 0.00115366, 0.00115366, 0.00101777, 0.00101777, 0.000884923, 0.000884923, 0.000755171, 0.000755171, 0.000628582, 0.000628582, 0.000505217, 0.000505217, 0.000385134, 0.000385134, 0.000268384, 0.000268384, 0.000155016, 0.000155016, 4.5076e-05, 4.5076e-05, -6.13947e-05, -6.13947e-05, -0.00016436, -0.00016436, -0.000263788, -0.000263788, -0.000359651, -0.000359651, -0.000451952, -0.000451952, -0.00054068, -0.00054068, -0.000625779, -0.000625779, -0.000707261, -0.000707261, -0.000785117, -0.000785117, -0.000859348, -0.000859348, -0.000929956, -0.000929956, -0.000996946, -0.000996946, -0.00106033, -0.00106033, -0.00112013, -0.00112013, -0.00117635, -0.00117635, -0.00122903, -0.00122903, -0.00127818, -0.00127818, -0.00132384, -0.00132384, -0.00136604, -0.00136604, -0.00140482, -0.00140482, -0.00144021, -0.00144021, -0.00147227, -0.00147227, -0.00150103, -0.00150103, -0.00152655, -0.00152655, -0.00154888, -0.00154888, -0.00156807, -0.00156807, -0.00158419, -0.00158419, -0.00159729, -0.00159729, -0.00160744, -0.00160744, -0.00161472, -0.00161472, -0.00161917, -0.00161917, -0.00162088, -0.00162088, -0.0016199, -0.0016199, -0.00161633, -0.00161633, -0.00161024, -0.00161024, -0.00160171, -0.00160171, -0.00159081, -0.00159081, -0.00157763, -0.00157763, -0.00156225, -0.00156225, -0.00154475, -0.00154475, -0.00152522, -0.00152522, -0.00150374, -0.00150374, -0.0014804, -0.0014804, -0.00145528, -0.00145528, -0.00142848, -0.00142848, -0.00140008, -0.00140008, -0.00137017, -0.00137017, -0.00133884, -0.00133884, -0.00130617, -0.00130617, -0.00127227, -0.00127227, -0.0012372, -0.0012372, -0.00120108, -0.00120108, -0.00116397, -0.00116397, -0.00112597, -0.00112597, -0.00108717, -0.00108717, -0.00104765, -0.00104765, -0.00100749, -0.00100749, -0.000966788, -0.000966788, -0.000925613, -0.000925613, -0.000884054, -0.000884054, -0.000842187, -0.000842187, -0.000800092, -0.000800092, -0.000757849, -0.000757849, -0.000715533, -0.000715533, -0.000673218, -0.000673218, -0.000630979, -0.000630979, -0.000588883, -0.000588883, -0.000547003, -0.000547003, -0.000505403, -0.000505403, -0.000464152, -0.000464152, -0.00042331, -0.00042331, -0.000382942, -0.000382942, -0.000343104, -0.000343104, -0.000303856, -0.000303856, -0.000265248, -0.000265248, -0.000227336, -0.000227336, -0.000190167, -0.000190167, -0.00015379, -0.00015379, -0.000118248, -0.000118248, -8.35883e-05, -8.35883e-05, -4.98479e-05, -4.98479e-05, -1.7067e-05, -1.7067e-05, 1.4721e-05, 1.4721e-05, 4.54842e-05, 4.54842e-05, 7.51956e-05, 7.51956e-05, 0.000103821, 0.000103821, 0.000131338, 0.000131338, 0.000157726, 0.000157726, 0.000182964, 0.000182964, 0.000207034, 0.000207034, 0.000229921, 0.000229921, 0.000251612, 0.000251612, 0.000272099, 0.000272099, 0.000291373, 0.000291373, 0.00030943, 0.00030943, 0.000326267, 0.000326267, 0.000341885, 0.000341885, 0.000356284, 0.000356284, 0.000369471, 0.000369471, 0.000381449, 0.000381449, 0.000392231, 0.000392231, 0.000401823, 0.000401823, 0.00041024, 0.00041024, 0.000417497, 0.000417497, 0.000423608, 0.000423608, 0.000428592, 0.000428592, 0.00043246, 0.00043246, 0.000435237, 0.000435237, 0.000436865, 0.000436865, 0.000437401, 0.000437401, 0.000436975, 0.000436975, 0.000435544, 0.000435544, 0.000433151, 0.000433151, 0.000429812, 0.000429812, 0.000425565, 0.000425565, 0.000420437, 0.000420437, 0.000414464, 0.000414464, 0.000407675, 0.000407675, 0.000400108, 0.000400108, 0.000391795, 0.000391795, 0.000382774, 0.000382774, 0.00037308, 0.00037308, 0.000362751, 0.000362751, 0.000351824, 0.000351824, 0.000340339, 0.000340339, 0.00032833, 0.00032833, 0.000315839, 0.000315839, 0.000302903, 0.000302903, 0.000289559, 0.000289559, 0.000275847, 0.000275847, 0.000261806, 0.000261806, 0.000247474, 0.000247474, 0.000232892, 0.000232892, 0.000218088, 0.000218088, 0.000203111, 0.000203111, 0.000187996, 0.000187996, 0.000172781, 0.000172781, 0.000157497, 0.000157497, 0.000142183, 0.000142183, 0.000126869, 0.000126869, 0.000111594, 0.000111594, 9.63895e-05, 9.63895e-05, 8.12934e-05, 8.12934e-05, 6.63317e-05, 6.63317e-05, 5.15418e-05, 5.15418e-05, 3.69472e-05, 3.69472e-05, 2.25833e-05, 2.25833e-05, 8.47105e-06, 8.47105e-06, -5.35615e-06, -5.35615e-06, -1.88794e-05, -1.88794e-05, -3.20661e-05, -3.20661e-05, -4.49012e-05, -4.49012e-05, -5.73536e-05, -5.73536e-05, -6.94109e-05, -6.94109e-05, -8.10442e-05, -8.10442e-05, -9.22439e-05, -9.22439e-05, -0.000102985, -0.000102985, -0.000113258, -0.000113258, -0.000123038, -0.000123038, -0.000132323, -0.000132323, -0.000141089, -0.000141089, -0.000149335, -0.000149335, -0.000157041, -0.000157041, -0.00016421, -0.00016421, -0.000170822, -0.000170822, -0.000176885, -0.000176885, -0.000182382, -0.000182382, -0.000187324, -0.000187324, -0.000191693, -0.000191693, -0.000195505, -0.000195505, -0.000198743, -0.000198743, -0.000201427, -0.000201427, -0.000203541, -0.000203541, -0.000205109, -0.000205109, -0.000206117, -0.000206117, -0.00020659, -0.00020659, -0.000206515, -0.000206515, -0.000205922, -0.000205922, -0.000204797, -0.000204797, -0.000203173, -0.000203173, -0.000201038, -0.000201038, -0.000198429, -0.000198429, -0.000195333, -0.000195333, -0.000191793, -0.000191793, -0.000187794, -0.000187794, -0.000183382, -0.000183382, -0.00017854, -0.00017854, -0.000173315, -0.000173315, -0.000167689, -0.000167689, -0.000161723, -0.000161723, -0.000155393, -0.000155393, -0.000148756, -0.000148756, -0.000141789, -0.000141789, -0.000134559, -0.000134559, -0.000127034, -0.000127034, -0.000119289, -0.000119289, -0.000111281, -0.000111281, -0.000103097, -0.000103097, -9.46835e-05, -9.46835e-05, -8.6137e-05, -8.6137e-05, -7.73902e-05, -7.73902e-05, -6.85565e-05, -6.85565e-05, -5.9545e-05, -5.9545e-05, -5.04935e-05, -5.04935e-05, -4.12734e-05, -4.12734e-05, -3.20611e-05, -3.20611e-05, -2.2664e-05, -2.2664e-05, -1.33229e-05, -1.33229e-05, -3.71244e-06, -3.71244e-06, 5.78773e-06, 5.78773e-06, 1.58964e-05, 1.58964e-05, 2.58255e-05, 2.58255e-05, }; codec2-1.0.1/src/rxdec_coeff.h000066400000000000000000000007751412132000500160540ustar00rootroot00000000000000/* Generated by rxdec_file() Octave function */ const float rxdec_coeff[]={ -0.00125472, -0.00204605, -0.0019897, 0.000163906, 0.00490937, 0.00986375, 0.0096718, -0.000480351, -0.019311, -0.0361822, -0.0341251, 0.000827866, 0.0690577, 0.152812, 0.222115, 0.249004, 0.222115, 0.152812, 0.0690577, 0.000827866, -0.0341251, -0.0361822, -0.019311, -0.000480351, 0.0096718, 0.00986375, 0.00490937, 0.000163906, -0.0019897, -0.00204605, -0.00125472 }; codec2-1.0.1/src/sd.c000066400000000000000000000045161412132000500142030ustar00rootroot00000000000000/*--------------------------------------------------------------------------*\ FILE........: sd.c AUTHOR......: David Rowe DATE CREATED: 20/7/93 Function to determine spectral distortion between two sets of LPCs. \*--------------------------------------------------------------------------*/ /* Copyright (C) 2009 David Rowe All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 2.1, as published by the Free Software Foundation. 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 Lesser General Public License along with this program; if not, see . */ #include #include "sd.h" /*---------------------------------------------------------------------------*\ FUNCTION....: spectral_dist() AUTHOR......: David Rowe DATE CREATED: 20/7/93 This function returns the spectral distoertion between two sets of LPCs. \*---------------------------------------------------------------------------*/ float spectral_dist(float ak1[], float ak2[], int p, codec2_fft_cfg fft_fwd_cfg, int n) /* float ak1[]; unquantised set of p+1 LPCs */ /* float ak2[]; quantised set of p+1 LPCs */ /* int p; LP order */ /* fft_fwd_cfg FFT constants */ /* int n; DFT size to use for SD calculations (power of 2) */ { COMP A1[n]; /* DFT of ak1[] */ COMP A2[n]; /* DFT of ak2[] */ float P1,P2; /* power of current bin */ float sd; int i; for(i=0; i. */ #ifndef __SD__ #define __SD__ #include "codec2_fft.h" float spectral_dist(float ak1[], float ak2[], int p, codec2_fft_cfg fft_fwd_cfg, int n); #endif /* __SD__ */ codec2-1.0.1/src/sine.c000066400000000000000000000436411412132000500145350ustar00rootroot00000000000000/*---------------------------------------------------------------------------*\ FILE........: sine.c AUTHOR......: David Rowe DATE CREATED: 19/8/2010 Sinusoidal analysis and synthesis functions. \*---------------------------------------------------------------------------*/ /* Copyright (C) 1990-2010 David Rowe All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 2.1, as published by the Free Software Foundation. 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 Lesser General Public License along with this program; if not, see . */ /*---------------------------------------------------------------------------*\ INCLUDES \*---------------------------------------------------------------------------*/ #include #include #include #include "defines.h" #include "sine.h" #include "kiss_fft.h" #define HPF_BETA 0.125 /*---------------------------------------------------------------------------*\ HEADERS \*---------------------------------------------------------------------------*/ void hs_pitch_refinement(MODEL *model, COMP Sw[], float pmin, float pmax, float pstep); /*---------------------------------------------------------------------------*\ FUNCTIONS \*---------------------------------------------------------------------------*/ C2CONST c2const_create(int Fs, float framelength_s) { C2CONST c2const; assert((Fs == 8000) || (Fs = 16000)); c2const.Fs = Fs; c2const.n_samp = round(Fs*framelength_s); c2const.max_amp = floor(Fs*P_MAX_S/2); c2const.p_min = floor(Fs*P_MIN_S); c2const.p_max = floor(Fs*P_MAX_S); c2const.m_pitch = floor(Fs*M_PITCH_S); c2const.Wo_min = TWO_PI/c2const.p_max; c2const.Wo_max = TWO_PI/c2const.p_min; if (Fs == 8000) { c2const.nw = 279; } else { c2const.nw = 511; /* actually a bit shorter in time but lets us maintain constant FFT size */ } c2const.tw = Fs*TW_S; /* fprintf(stderr, "max_amp: %d m_pitch: %d\n", c2const.n_samp, c2const.m_pitch); fprintf(stderr, "p_min: %d p_max: %d\n", c2const.p_min, c2const.p_max); fprintf(stderr, "Wo_min: %f Wo_max: %f\n", c2const.Wo_min, c2const.Wo_max); fprintf(stderr, "nw: %d tw: %d\n", c2const.nw, c2const.tw); */ return c2const; } /*---------------------------------------------------------------------------*\ FUNCTION....: make_analysis_window AUTHOR......: David Rowe DATE CREATED: 11/5/94 Init function that generates the time domain analysis window and it's DFT. \*---------------------------------------------------------------------------*/ void make_analysis_window(C2CONST *c2const, codec2_fft_cfg fft_fwd_cfg, float w[], float W[]) { float m; COMP wshift[FFT_ENC]; int i,j; int m_pitch = c2const->m_pitch; int nw = c2const->nw; /* Generate Hamming window centered on M-sample pitch analysis window 0 M/2 M-1 |-------------|-------------| |-------|-------| nw samples All our analysis/synthsis is centred on the M/2 sample. */ m = 0.0; for(i=0; im_pitch; int nw = c2const->nw; for(i=0; iWo + 5; pmin = TWO_PI/model->Wo - 5; pstep = 1.0; hs_pitch_refinement(model,Sw,pmin,pmax,pstep); /* Fine refinement */ pmax = TWO_PI/model->Wo + 1; pmin = TWO_PI/model->Wo - 1; pstep = 0.25; hs_pitch_refinement(model,Sw,pmin,pmax,pstep); /* Limit range */ if (model->Wo < TWO_PI/c2const->p_max) model->Wo = TWO_PI/c2const->p_max; if (model->Wo > TWO_PI/c2const->p_min) model->Wo = TWO_PI/c2const->p_min; model->L = floorf(PI/model->Wo); /* trap occasional round off issues with floorf() */ if (model->Wo*model->L >= 0.95*PI) { model->L--; } assert(model->Wo*model->L < PI); } /*---------------------------------------------------------------------------*\ FUNCTION....: hs_pitch_refinement AUTHOR......: David Rowe DATE CREATED: 27/5/94 Harmonic sum pitch refinement function. pmin pitch search range minimum pmax pitch search range maximum step pitch search step size model current pitch estimate in model.Wo model refined pitch estimate in model.Wo \*---------------------------------------------------------------------------*/ void hs_pitch_refinement(MODEL *model, COMP Sw[], float pmin, float pmax, float pstep) { int m; /* loop variable */ int b; /* bin for current harmonic centre */ float E; /* energy for current pitch*/ float Wo; /* current "test" fundamental freq. */ float Wom; /* Wo that maximises E */ float Em; /* mamimum energy */ float r, one_on_r; /* number of rads/bin */ float p; /* current pitch */ /* Initialisation */ model->L = PI/model->Wo; /* use initial pitch est. for L */ Wom = model->Wo; Em = 0.0; r = TWO_PI/FFT_ENC; one_on_r = 1.0/r; /* Determine harmonic sum for a range of Wo values */ for(p=pmin; p<=pmax; p+=pstep) { E = 0.0; Wo = TWO_PI/p; /* Sum harmonic magnitudes */ for(m=1; m<=model->L; m++) { b = (int)(m*Wo*one_on_r + 0.5); E += Sw[b].real*Sw[b].real + Sw[b].imag*Sw[b].imag; } /* Compare to see if this is a maximum */ if (E > Em) { Em = E; Wom = Wo; } } model->Wo = Wom; } /*---------------------------------------------------------------------------*\ FUNCTION....: estimate_amplitudes AUTHOR......: David Rowe DATE CREATED: 27/5/94 Estimates the complex amplitudes of the harmonics. \*---------------------------------------------------------------------------*/ void estimate_amplitudes(MODEL *model, COMP Sw[], float W[], int est_phase) { int i,m; /* loop variables */ int am,bm; /* bounds of current harmonic */ float den; /* denominator of amplitude expression */ float r = TWO_PI/FFT_ENC; float one_on_r = 1.0/r; for(m=1; m<=model->L; m++) { /* Estimate ampltude of harmonic */ den = 0.0; am = (int)((m - 0.5)*model->Wo*one_on_r + 0.5); bm = (int)((m + 0.5)*model->Wo*one_on_r + 0.5); for(i=am; iA[m] = sqrtf(den); if (est_phase) { int b = (int)(m*model->Wo/r + 0.5); /* DFT bin of centre of current harmonic */ /* Estimate phase of harmonic, this is expensive in CPU for embedded devicesso we make it an option */ model->phi[m] = atan2f(Sw[b].imag,Sw[b].real); } } } /*---------------------------------------------------------------------------*\ est_voicing_mbe() Returns the error of the MBE cost function for a fiven F0. Note: I think a lot of the operations below can be simplified as W[].imag = 0 and has been normalised such that den always equals 1. \*---------------------------------------------------------------------------*/ float est_voicing_mbe( C2CONST *c2const, MODEL *model, COMP Sw[], float W[] ) { int l,al,bl,m; /* loop variables */ COMP Am; /* amplitude sample for this band */ int offset; /* centers Hw[] about current harmonic */ float den; /* denominator of Am expression */ float error; /* accumulated error between original and synthesised */ float Wo; float sig, snr; float elow, ehigh, eratio; float sixty; COMP Ew; Ew.real = 0; Ew.imag = 0; int l_1000hz = model->L*1000.0/(c2const->Fs/2); sig = 1E-4; for(l=1; l<=l_1000hz; l++) { sig += model->A[l]*model->A[l]; } Wo = model->Wo; error = 1E-4; /* Just test across the harmonics in the first 1000 Hz */ for(l=1; l<=l_1000hz; l++) { Am.real = 0.0; Am.imag = 0.0; den = 0.0; al = ceilf((l - 0.5)*Wo*FFT_ENC/TWO_PI); bl = ceilf((l + 0.5)*Wo*FFT_ENC/TWO_PI); /* Estimate amplitude of harmonic assuming harmonic is totally voiced */ offset = FFT_ENC/2 - l*Wo*FFT_ENC/TWO_PI + 0.5; for(m=al; m V_THRESH) model->voiced = 1; else model->voiced = 0; /* post processing, helps clean up some voicing errors ------------------*/ /* Determine the ratio of low freqency to high frequency energy, voiced speech tends to be dominated by low frequency energy, unvoiced by high frequency. This measure can be used to determine if we have made any gross errors. */ int l_2000hz = model->L*2000.0/(c2const->Fs/2); int l_4000hz = model->L*4000.0/(c2const->Fs/2); elow = ehigh = 1E-4; for(l=1; l<=l_2000hz; l++) { elow += model->A[l]*model->A[l]; } for(l=l_2000hz; l<=l_4000hz; l++) { ehigh += model->A[l]*model->A[l]; } eratio = 10.0*log10f(elow/ehigh); /* Look for Type 1 errors, strongly V speech that has been accidentally declared UV */ if (model->voiced == 0) if (eratio > 10.0) model->voiced = 1; /* Look for Type 2 errors, strongly UV speech that has been accidentally declared V */ if (model->voiced == 1) { if (eratio < -10.0) model->voiced = 0; /* A common source of Type 2 errors is the pitch estimator gives a low (50Hz) estimate for UV speech, which gives a good match with noise due to the close harmoonic spacing. These errors are much more common than people with 50Hz3 pitch, so we have just a small eratio threshold. */ sixty = 60.0*TWO_PI/c2const->Fs; if ((eratio < -4.0) && (model->Wo <= sixty)) model->voiced = 0; } //printf(" v: %d snr: %f eratio: %3.2f %f\n",model->voiced,snr,eratio,dF0); return snr; } /*---------------------------------------------------------------------------*\ FUNCTION....: make_synthesis_window AUTHOR......: David Rowe DATE CREATED: 11/5/94 Init function that generates the trapezoidal (Parzen) sythesis window. \*---------------------------------------------------------------------------*/ void make_synthesis_window(C2CONST *c2const, float Pn[]) { int i; float win; int n_samp = c2const->n_samp; int tw = c2const->tw; /* Generate Parzen window in time domain */ win = 0.0; for(i=0; iL; l++) { b = (int)(l*model->Wo*FFT_DEC/TWO_PI + 0.5); if (b > ((FFT_DEC/2)-1)) { b = (FFT_DEC/2)-1; } Sw_[b].real = model->A[l]*cosf(model->phi[l]); Sw_[b].imag = model->A[l]*sinf(model->phi[l]); } /* Perform inverse DFT */ codec2_fftri(fftr_inv_cfg, Sw_,sw_); /* Overlap add to previous samples */ #ifdef USE_KISS_FFT #define FFTI_FACTOR ((float)1.0) #else #define FFTI_FACTOR ((float32_t)FFT_DEC) #endif for(i=0; i. */ #ifndef __SINE__ #define __SINE__ #include "defines.h" #include "comp.h" #include "codec2_fft.h" C2CONST c2const_create(int Fs, float framelength_ms); void make_analysis_window(C2CONST *c2const, codec2_fft_cfg fft_fwd_cfg, float w[], float W[]); float hpf(float x, float states[]); void dft_speech(C2CONST *c2const, codec2_fft_cfg fft_fwd_cfg, COMP Sw[], float Sn[], float w[]); void two_stage_pitch_refinement(C2CONST *c2const, MODEL *model, COMP Sw[]); void estimate_amplitudes(MODEL *model, COMP Sw[], float W[], int est_phase); float est_voicing_mbe(C2CONST *c2const, MODEL *model, COMP Sw[], float W[]); void make_synthesis_window(C2CONST *c2const, float Pn[]); void synthesise(int n_samp, codec2_fftr_cfg fftr_inv_cfg, float Sn_[], MODEL *model, float Pn[], int shift); #define CODEC2_RAND_MAX 32767 int codec2_rand(void); #endif codec2-1.0.1/src/ssbfilt_coeff.h000066400000000000000000000025771412132000500164170ustar00rootroot00000000000000/* 2400 Hz LPF FIR filter coeffs */ /* Generated by make_ssbfilt Octave script */ #define SSBFILT_N 100 #define SSBFILT_CENTRE 1500 float ssbfilt_coeff[]={ 0.000077, 0.000463, 0.000493, 0.000100, -0.000451, -0.000713, -0.000382, 0.000393, 0.001013, 0.000853, -0.000162, -0.001315, -0.001550, -0.000384, 0.001462, 0.002427, 0.001369, -0.001234, -0.003330, -0.002842, 0.000386, 0.003994, 0.004736, 0.001300, -0.004057, -0.006836, -0.003963, 0.003096, 0.008764, 0.007615, -0.000664, -0.009984, -0.012111, -0.003687, 0.009789, 0.017150, 0.010450, -0.007246, -0.022299, -0.020386, 0.000889, 0.027053, 0.035350, 0.012531, -0.030900, -0.062153, -0.045268, 0.033405, 0.150957, 0.256445, 0.298716, 0.256445, 0.150957, 0.033405, -0.045268, -0.062153, -0.030900, 0.012531, 0.035350, 0.027053, 0.000889, -0.020386, -0.022299, -0.007246, 0.010450, 0.017150, 0.009789, -0.003687, -0.012111, -0.009984, -0.000664, 0.007615, 0.008764, 0.003096, -0.003963, -0.006836, -0.004057, 0.001300, 0.004736, 0.003994, 0.000386, -0.002842, -0.003330, -0.001234, 0.001369, 0.002427, 0.001462, -0.000384, -0.001550, -0.001315, -0.000162, 0.000853, 0.001013, 0.000393, -0.000382, -0.000713, -0.000451, 0.000100, 0.000493, 0.000463 };codec2-1.0.1/src/test_bits.h000066400000000000000000000015571412132000500156040ustar00rootroot00000000000000/* Generated by test_bits_file() Octave function */ const int test_bits[]={ 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1 }; codec2-1.0.1/src/test_bits_coh.h000066400000000000000000000055071412132000500164340ustar00rootroot00000000000000/* Generated by test_bits_coh_file() Octave function */ const int test_bits_coh[]={ 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 1, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 1, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1, 1, 1, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 0 }; codec2-1.0.1/src/test_bits_ofdm.h000066400000000000000000000057251412132000500166120ustar00rootroot00000000000000/* Generated by test_bits_ofdm_file() Octave function */ const int test_bits_ofdm[]={ 1, 1, 0, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0 }; const uint8_t payload_data_bits[]={ 1, 1, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 0 }; const int test_codeword[]={ 1, 1, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 1, 1, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0 }; codec2-1.0.1/src/tollr.c000066400000000000000000000005551412132000500147300ustar00rootroot00000000000000/* FILE...: tollr.c AUTHOR.: David Rowe CREATED: July 2020 Converts oneBitPerByte hard decisions to LLRs for LDPC testing. */ #include #include int main(void) { uint8_t bit; while(fread(&bit,sizeof(uint8_t), 1, stdin)) { float llr = 10.0*(1-2*bit); fwrite(&llr,sizeof(float),1,stdout); } return 0; } codec2-1.0.1/src/varicode.c000066400000000000000000000363631412132000500153760ustar00rootroot00000000000000//========================================================================== // Name: varicode.h // Purpose: Varicode encoded and decode functions // Created: Nov 24, 2012 // Authors: David Rowe // // To test: // $ gcc varicode.c -o varicode -DVARICODE_UNITTEST -Wall // $ ./varicode // // License: // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License version 2.1, // as published by the Free Software Foundation. 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 . // //========================================================================== #include #include #include #include #include #include "varicode.h" #include "varicode_table.h" #include "debug_alloc.h" /* output is an unpacked array of bits of maximum size max_out. Note unpacked arrays are a more suitable form for modulator input. Code 1 covers the entire ASCII char set. */ int varicode_encode1(short varicode_out[], char ascii_in[], int max_out, int n_in) { int n_out, index, n_zeros, v_len; unsigned short byte1, byte2, packed; char c; n_out = 0; while(n_in && (n_out < max_out)) { c = *ascii_in; if ((unsigned int)c >= 128) { c = ' '; } index = 2*(unsigned int)(c); assert(index <= 254); byte1 = varicode_table1[index]; byte2 = varicode_table1[index+1]; packed = (byte1 << 8) + byte2; //printf("n_in: %d ascii_in: %c index: %d packed 0x%x\n", n_in, *ascii_in, index, packed); ascii_in++; n_zeros = 0; v_len = 0; while ((n_zeros < 2) && (n_out < max_out) && (v_len <= VARICODE_MAX_BITS)) { if (packed & 0x8000) { *varicode_out = 1; n_zeros = 0; } else { *varicode_out = 0; n_zeros++; } //printf("packed: 0x%x *varicode_out: %d n_zeros: %d v_len: %d\n", packed, *varicode_out, n_zeros,v_len ); packed <<= 1; varicode_out++; n_out++; v_len++; } assert(v_len <= VARICODE_MAX_BITS); n_in--; } return n_out; } /* Code 2 covers a subset, but is more efficient that Code 1 (282 compared to 1315 bits on unittest) Unsupported characters are replaced by spaces. We encode/decode two bits at a time. */ int varicode_encode2(short varicode_out[], char ascii_in[], int max_out, int n_in) { int n_out, n_zeros, v_len, i; unsigned short packed; n_out = 0; while(n_in && (n_out < max_out)) { packed = varicode_table2[0]; // default to space if char not found // see if our character exists for(i=0; i= 1 && n_in == 1); varicode_out[0] = ascii_in[0] != 0; return 1; } int varicode_encode(short varicode_out[], char ascii_in[], int max_out, int n_in, int code_num) { assert((code_num == 1) || (code_num == 2) || (code_num == 3)); if (code_num == 1) return varicode_encode1(varicode_out, ascii_in, max_out, n_in); else if (code_num == 2) return varicode_encode2(varicode_out, ascii_in, max_out, n_in); else return varicode_encode3(varicode_out, ascii_in, max_out, n_in); } void varicode_decode_init(struct VARICODE_DEC *dec_states, int code_num) { assert((code_num == 1) || (code_num == 2) || (code_num == 3)); dec_states->state = 0; dec_states->n_zeros = 0; dec_states->v_len = 0; dec_states->packed = 0; dec_states->code_num = code_num; dec_states->n_in = 0; dec_states->in[0] = dec_states->in[1] = 0; } void varicode_set_code_num(struct VARICODE_DEC *dec_states, int code_num) { assert((code_num == 1) || (code_num == 2) || (code_num == 3)); dec_states->code_num = code_num; } /* Code 1 decode function, accepts one bit at a time */ static int decode_one_bit(struct VARICODE_DEC *s, char *single_ascii, short varicode_in, int long_code) { int found=0, i; unsigned short byte1, byte2; //printf("decode_one_bit : state: %d varicode_in: %d packed: 0x%x n_zeros: %d\n", // s->state, varicode_in, s->packed, s->n_zeros); if (s->state == 0) { if (!varicode_in) return 0; else s->state = 1; } if (s->state == 1) { if (varicode_in) { s->packed |= (0x8000 >> s->v_len); s->n_zeros = 0; } else { s->n_zeros++; } s->v_len++; found = 0; /* end of character code */ if (s->n_zeros == 2) { if (s->v_len) { /* run thru table but note with bit errors we might not actually find a match */ byte1 = s->packed >> 8; //printf("looking for byte1 : 0x%x ... ", byte1); byte2 = s->packed & 0xff; for(i=0; i<128; i++) { if ((byte1 == varicode_table1[2*i]) && (byte2 == varicode_table1[2*i+1])) { found = 1; *single_ascii = i; } } } varicode_decode_init(s, s->code_num); } /* code can run too long if we have a bit error */ if (s->v_len > VARICODE_MAX_BITS) varicode_decode_init(s, s->code_num); } return found; } /* Code 2 decode function, accepts two bits at a time */ static int decode_two_bits(struct VARICODE_DEC *s, char *single_ascii, short varicode_in1, short varicode_in2) { int found=0, i; unsigned short byte1; if (s->state == 0) { if (!(varicode_in1 || varicode_in2)) return 0; else s->state = 1; } if (s->state == 1) { if (varicode_in1) s->packed |= (0x8000 >> s->v_len); if (varicode_in2) s->packed |= (0x4000 >> s->v_len); if (varicode_in1 || varicode_in2) s->n_zeros = 0; else s->n_zeros+=2; s->v_len+=2; found = 0; /* end of character code */ if (s->n_zeros == 2) { if (s->v_len) { /* run thru table but note with bit errors we might not actually find a match */ byte1 = s->packed >> 8; //printf("looking for byte1 : 0x%x ... ", byte1); for(i=0; icode_num); } /* code can run too long if we have a bit error */ if (s->v_len > VARICODE_MAX_BITS) varicode_decode_init(s, s->code_num); } return found; } int varicode_decode1(struct VARICODE_DEC *dec_states, char ascii_out[], short varicode_in[], int max_out, int n_in) { int output, n_out; char single_ascii = 0; n_out = 0; //printf("varicode_decode: n_in: %d\n", n_in); while(n_in && (n_out < max_out)) { output = decode_one_bit(dec_states, &single_ascii, varicode_in[0], 0); varicode_in++; n_in--; if (output) { *ascii_out++ = single_ascii; n_out++; } } return n_out; } int varicode_decode2(struct VARICODE_DEC *dec_states, char ascii_out[], short varicode_in[], int max_out, int n_in) { int output, n_out; char single_ascii = 0; n_out = 0; //printf("varicode_decode2: n_in: %d varicode_in[0] %d dec_states->n_in: %d\n", n_in, varicode_in[0], dec_states->n_in); //printf("%d ", varicode_in[0]); while(n_in && (n_out < max_out)) { // keep two bit buffer so we can process two at a time dec_states->in[0] = dec_states->in[1]; dec_states->in[1] = varicode_in[0]; dec_states->n_in++; varicode_in++; n_in--; if (dec_states->n_in == 2) { output = decode_two_bits(dec_states, &single_ascii, dec_states->in[0], dec_states->in[1]); dec_states->n_in = 0; if (output) { //printf(" output: %d single_ascii: 0x%x %c\n", output, (int)single_ascii, single_ascii); *ascii_out++ = single_ascii; n_out++; } } } return n_out; } int varicode_decode3(struct VARICODE_DEC *dec_states, char ascii_out[], short varicode_in[], int max_out, int n_in) { // We only handle one bit at a time. assert(max_out == 1 && n_in == 1); ascii_out[0] = varicode_in[0] != 0; return 1; } int varicode_decode(struct VARICODE_DEC *dec_states, char ascii_out[], short varicode_in[], int max_out, int n_in) { if (dec_states->code_num == 1) return varicode_decode1(dec_states, ascii_out, varicode_in, max_out, n_in); else if (dec_states->code_num == 2) return varicode_decode2(dec_states, ascii_out, varicode_in, max_out, n_in); else return varicode_decode3(dec_states, ascii_out, varicode_in, max_out, n_in); } #ifdef VARICODE_UNITTEST void test_varicode(int code_num) { char *ascii_in; short *varicode; int i, n_varicode_bits_out, n_ascii_chars_out, length, half, n_out, j, len; char *ascii_out; struct VARICODE_DEC dec_states; if (code_num == 1) { printf("long code:\n"); length = sizeof(varicode_table1)/2; } else { printf("short code:\n"); length = sizeof(varicode_table2)/2; } //length = 10; ascii_in = (char*)MALLOC(length); varicode = (short*)MALLOC(VARICODE_MAX_BITS*sizeof(short)*length); ascii_out = (char*)MALLOC(length); // 1. test all Varicode codes ------------------------------------------------------------- if (code_num == 1) { for(i=0; i. // //========================================================================== #ifndef __VARICODE__ #define __VARICODE__ #ifdef __cplusplus extern "C" { #endif #define VARICODE_MAX_BITS (10+2) /* max varicode bits for each ascii character */ /* 10 bits for code plus 2 0 bits for inter-character space */ struct VARICODE_DEC { int state; int n_zeros; int v_len; unsigned short packed; int code_num; int n_in; int in[2]; }; int varicode_encode(short varicode_out[], char ascii_in[], int max_out, int n_in, int code_num); void varicode_decode_init(struct VARICODE_DEC *dec_states, int code_num); int varicode_decode(struct VARICODE_DEC *dec_states, char ascii_out[], short varicode_in[], int max_out, int n_in); void varicode_set_code_num(struct VARICODE_DEC *dec_states, int code_num); #ifdef __cplusplus } #endif #endif codec2-1.0.1/src/varicode_table.h000066400000000000000000000172211412132000500165420ustar00rootroot00000000000000//========================================================================== // Name: varicode_table.h // Purpose: Varicode look up table // Created: Nov 24, 2012 // Authors: Clint Turner, KA7OEI, Peter Martinez, G3PLX // // License: // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License version 2.1, // as published by the Free Software Foundation. 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 . // //========================================================================== /* The following table defines the PKS31 varicode. There are 128 entries, corresponding to ASCII characters 0-127 with two bytes for each entry. The bits for the varicode are to be shifted out MSB-first for both bytes, with the first byte in the table being the first one to be sent. More than one zero in sequence signifies the end of the character (i.e. two zeroes are the intercharacter sequence, so at least two zeroes should always be sent before the next character is sent. This file is constructed with information from the article "PSK31 Fundamentals" by Peter Martinez, G3PLX by Clint Turner, KA7OEI */ unsigned char const varicode_table1[256] = { 0b10101010, 0b11000000, // 0 NUL 0b10110110, 0b11000000, // 1 SOH 0b10111011, 0b01000000, // 2 STX 0b11011101, 0b11000000, // 3 ETX 0b10111010, 0b11000000, // 4 EOT 0b11010111, 0b11000000, // 5 ENQ 0b10111011, 0b11000000, // 6 ACK 0b10111111, 0b01000000, // 7 BEL 0b10111111, 0b11000000, // 8 BS 0b11101111, 0b00000000, // 9 HT 0b11101000, 0b00000000, // 10 LF 0b11011011, 0b11000000, // 11 VT 0b10110111, 0b01000000, // 12 FF 0b11111000, 0b00000000, // 13 CR 0b11011101, 0b01000000, // 14 SO 0b11101010, 0b11000000, // 15 SI 0b10111101, 0b11000000, // 16 DLE 0b10111101, 0b01000000, // 17 DC1 0b11101011, 0b01000000, // 18 DC2 0b11101011, 0b11000000, // 19 DC3 0b11010110, 0b11000000, // 20 DC4 0b11011010, 0b11000000, // 21 NAK 0b11011011, 0b01000000, // 22 SYN 0b11010101, 0b11000000, // 23 ETB 0b11011110, 0b11000000, // 24 CAN 0b11011111, 0b01000000, // 25 EM 0b11101101, 0b11000000, // 26 SUB 0b11010101, 0b01000000, // 27 ESC 0b11010111, 0b01000000, // 28 FS 0b11101110, 0b11000000, // 29 GS 0b10111110, 0b11000000, // 30 RS 0b11011111, 0b11000000, // 31 US 0b10000000, 0b00000000, // 32 SP 0b11111111, 0b10000000, // 33 ! 0b10101111, 0b10000000, // 34 " 0b11111010, 0b10000000, // 35 # 0b11101101, 0b10000000, // 36 $ 0b10110101, 0b01000000, // 37 % 0b10101110, 0b11000000, // 38 & 0b10111111, 0b10000000, // 39 ' 0b11111011, 0b00000000, // 40 ( 0b11110111, 0b00000000, // 41 ) 0b10110111, 0b10000000, // 42 * 0b11101111, 0b10000000, // 43 + 0b11101010, 0b00000000, // 44 , 0b11010100, 0b00000000, // 45 - 0b10101110, 0b00000000, // 46 . 0b11010111, 0b10000000, // 47 / 0b10110111, 0b00000000, // 48 0 0b10111101, 0b00000000, // 49 1 0b11101101, 0b00000000, // 50 2 0b11111111, 0b00000000, // 51 3 0b10111011, 0b10000000, // 52 4 0b10101101, 0b10000000, // 53 5 0b10110101, 0b10000000, // 54 6 0b11010110, 0b10000000, // 55 7 0b11010101, 0b10000000, // 56 8 0b11011011, 0b10000000, // 57 9 0b11110101, 0b00000000, // 58 : 0b11011110, 0b10000000, // 59 ; 0b11110110, 0b10000000, // 60 < 0b10101010, 0b00000000, // 61 = 0b11101011, 0b10000000, // 62 > 0b10101011, 0b11000000, // 63 ? 0b10101111, 0b01000000, // 64 @ 0b11111010, 0b00000000, // 65 A 0b11101011, 0b00000000, // 66 B 0b10101101, 0b00000000, // 67 C 0b10110101, 0b00000000, // 68 D 0b11101110, 0b00000000, // 69 E 0b11011011, 0b00000000, // 70 F 0b11111101, 0b00000000, // 71 G 0b10101010, 0b10000000, // 72 H 0b11111110, 0b00000000, // 73 I 0b11111110, 0b10000000, // 74 J 0b10111110, 0b10000000, // 75 K 0b11010111, 0b00000000, // 76 L 0b10111011, 0b00000000, // 77 M 0b11011101, 0b00000000, // 78 N 0b10101011, 0b00000000, // 79 O 0b11010101, 0b00000000, // 80 P 0b11101110, 0b10000000, // 81 Q 0b10101111, 0b00000000, // 82 R 0b11011110, 0b00000000, // 83 S 0b11011010, 0b00000000, // 84 T 0b10101011, 0b10000000, // 85 U 0b11011010, 0b10000000, // 86 V 0b10101110, 0b10000000, // 87 W 0b10111010, 0b10000000, // 88 X 0b10111101, 0b10000000, // 89 Y 0b10101011, 0b01000000, // 90 Z 0b11111011, 0b10000000, // 91 [ 0b11110111, 0b10000000, // 92 "\" 0b11111101, 0b10000000, // 93 ] 0b10101111, 0b11000000, // 94 ^ 0b10110110, 0b10000000, // 95 _ (underline) 0b10110111, 0b11000000, // 96 ` 0b10110000, 0b00000000, // 97 a 0b10111110, 0b00000000, // 98 b 0b10111100, 0b00000000, // 99 c 0b10110100, 0b00000000, // 100 d 0b11000000, 0b00000000, // 101 e 0b11110100, 0b00000000, // 102 f 0b10110110, 0b00000000, // 103 g 0b10101100, 0b00000000, // 104 h 0b11010000, 0b00000000, // 105 i 0b11110101, 0b10000000, // 106 j 0b10111111, 0b00000000, // 107 k 0b11011000, 0b00000000, // 108 l 0b11101100, 0b00000000, // 109 m 0b11110000, 0b00000000, // 110 n 0b11100000, 0b00000000, // 111 o 0b11111100, 0b00000000, // 112 p 0b11011111, 0b10000000, // 113 q 0b10101000, 0b00000000, // 114 r 0b10111000, 0b00000000, // 115 s 0b10100000, 0b00000000, // 116 t 0b11011100, 0b00000000, // 117 u 0b11110110, 0b00000000, // 118 v 0b11010110, 0b00000000, // 119 w 0b11011111, 0b00000000, // 120 x 0b10111010, 0b00000000, // 121 y 0b11101010, 0b10000000, // 122 z 0b10101101, 0b11000000, // 123 { 0b11011101, 0b10000000, // 124 | 0b10101101, 0b01000000, // 125 } 0b10110101, 0b11000000, // 126 ~ 0b11101101, 0b01000000, // 127 (del) }; // This code was used on FDMDV version 1, and is more compact that Code 1, but only covers a subset // of the ASCII cahacter set char const varicode_table2[] = { ' ' ,0b11000000, 13 ,0b01000000, // CR, end of message '=' ,0b10000000, '1' ,0b11110000, '2' ,0b01110000, '3' ,0b10110000, '4' ,0b11010000, '5' ,0b01010000, '6' ,0b10010000, '7' ,0b11100000, '8' ,0b01100000, '9' ,0b10100000, 'a' ,0b11111100, 'b' ,0b01111100, 'c' ,0b10111100, 'd' ,0b11011100, 'e' ,0b01011100, 'f' ,0b10011100, 'g' ,0b11101100, 'h' ,0b01101100, 'i' ,0b10101100, 'j' ,0b11110100, 'k' ,0b01110100, 'l' ,0b10110100, 'm' ,0b11010100, 'n' ,0b01010100, 'o' ,0b10010100, 'p' ,0b11100100, 'q' ,0b01100100, 'r' ,0b10100100, 's' ,0b11111000, 't' ,0b01111000, 'u' ,0b10111000, 'v' ,0b11011000, 'w' ,0b01011000, 'x' ,0b10011000, 'y' ,0b11101000, 'z' ,0b01101000, '0' ,0b10101000 }; codec2-1.0.1/src/vhf_deframe_c2.c000066400000000000000000000060421412132000500164230ustar00rootroot00000000000000 /*---------------------------------------------------------------------------*\ FILE........: vhf_deframe_c2.c AUTHOR......: Brady O'Brien DATE CREATED: 8 March 2016 C tool to extract codec2 data from freedv VHF 2400A/B/whatever frames \*---------------------------------------------------------------------------*/ /* Copyright (C) 2016 David Rowe All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 2.1, as published by the Free Software Foundation. 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 Lesser General Public License along with this program; if not, see . */ #include #include #include #include #include "freedv_vhf_framing.h" int main(int argc,char *argv[]){ struct freedv_vhf_deframer * deframer; FILE *fin,*fout; uint8_t *bitbuf; uint8_t *c2buf; uint8_t zbuf[] = {0,0,0,0,0,0,0,0}; int frame_fmt = 0; int fsize,c2size; if(argc<3){ fprintf(stderr,"usage: %s (A|B) InputOneBitPerCharFile OutputC2File\n",argv[0]); exit(1); } if(strcmp(argv[1],"A")==0){ frame_fmt = FREEDV_VHF_FRAME_A; } else if (strcmp(argv[1],"B")==0) { frame_fmt = FREEDV_HF_FRAME_B; } else { fprintf(stderr,"usage: %s (A|B) InputOneBitPerCharFile OutputC2File\n",argv[0]); exit(1); } /* Open files */ if(strcmp(argv[2],"-")==0){ fin = stdin; }else{ fin = fopen(argv[2],"r"); } if(strcmp(argv[3],"-")==0){ fout = stdout; }else{ fout = fopen(argv[3],"w"); } /* Set up deframer */ deframer = fvhff_create_deframer(frame_fmt,0); if(fin==NULL || fout==NULL || deframer==NULL){ fprintf(stderr,"Couldn't open test vector files\n"); goto cleanup; } c2size = fvhff_get_codec2_size(deframer); fsize = fvhff_get_frame_size(deframer); /* allocate buffers for processing */ bitbuf = (uint8_t*)malloc(sizeof(uint8_t)*fsize); c2buf = (uint8_t*)malloc(sizeof(uint8_t)*c2size); /* Deframe! */ while( fread(bitbuf,sizeof(uint8_t),fsize,fin) == fsize ){ if(fvhff_deframe_bits(deframer,c2buf,NULL,NULL,bitbuf)) fwrite(c2buf,sizeof(uint8_t),c2size,fout); else fwrite(zbuf,sizeof(uint8_t),c2size,fout); if(fout == stdin){ fflush(fout); } } fprintf(stderr,"BER Estimate: %f total_uw_err: %d \n", ((float)deframer->total_uw_err)/((float)deframer->total_uw_bits),deframer->total_uw_err); free(bitbuf); free(c2buf); cleanup: fclose(fin); fclose(fout); fvhff_destroy_deframer(deframer); exit(0); } codec2-1.0.1/src/vhf_frame_c2.c000066400000000000000000000054111412132000500161110ustar00rootroot00000000000000 /*---------------------------------------------------------------------------*\ FILE........: vhf_deframe_c2.c AUTHOR......: Brady O'Brien DATE CREATED: 8 March 2016 C tool to extract codec2 data from freedv VHF 2400A/B/whatever frames \*---------------------------------------------------------------------------*/ /* Copyright (C) 2016 David Rowe All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 2.1, as published by the Free Software Foundation. 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 Lesser General Public License along with this program; if not, see . */ #include #include #include #include #include "freedv_vhf_framing.h" int main(int argc,char *argv[]){ struct freedv_vhf_deframer * deframer; FILE *fin,*fout; uint8_t *bitbuf; uint8_t *c2buf; int frame_fmt = 0; int fsize,c2size; if(argc<3){ fprintf(stderr,"usage: %s (A|B) InpuC2File OutputOneBitPerCharFile\n",argv[0]); exit(1); } if(strcmp(argv[1],"A")==0){ frame_fmt = FREEDV_VHF_FRAME_A; } else if (strcmp(argv[1],"B")==0) { frame_fmt = FREEDV_HF_FRAME_B; } else { fprintf(stderr,"usage: %s (A|B) InpuC2File OutputOneBitPerCharFile\n",argv[0]); exit(1); } /* Open files */ if(strcmp(argv[2],"-")==0){ fin = stdin; }else{ fin = fopen(argv[2],"r"); } if(strcmp(argv[3],"-")==0){ fout = stdout; }else{ fout = fopen(argv[3],"w"); } /* Set up deframer */ deframer = fvhff_create_deframer(frame_fmt,0); if(fin==NULL || fout==NULL || deframer==NULL){ fprintf(stderr,"Couldn't open test vector files\n"); goto cleanup; } c2size = fvhff_get_codec2_size(deframer); fsize = fvhff_get_frame_size(deframer); /* allocate buffers for processing */ bitbuf = (uint8_t*)malloc(sizeof(uint8_t)*fsize); c2buf = (uint8_t*)malloc(sizeof(uint8_t)*c2size); /* Deframe! */ while( fread(c2buf,sizeof(uint8_t),c2size,fin) == c2size ){ fvhff_frame_bits(frame_fmt,bitbuf,c2buf,NULL,NULL); fwrite(bitbuf,sizeof(uint8_t),fsize,fout); if(fout == stdin){ fflush(fout); } } free(bitbuf); free(c2buf); cleanup: fclose(fin); fclose(fout); fvhff_destroy_deframer(deframer); exit(0); } codec2-1.0.1/src/wval.h000066400000000000000000000117201412132000500145460ustar00rootroot00000000000000/* * Generated file: * * ofdm_wfreq = 40.0; * ofdm_nval = (int)(ofdm_fs / ofdm_wfreq); * ofdm_w = TAU * ofdm_wfreq / ofdm_fs; * * ofdm_wval = MALLOC(sizeof (complex float) * ofdm_nval); * * for (i = 0; i < ofdm_nval; i++) { * ofdm_wval[i] = cmplxconj(ofdm_w * i); * } * */ #include static const complex float ofdm_wval[] = { 1.000000-0.000000 * I, 0.999507-0.031411 * I, 0.998027-0.062791 * I, 0.995562-0.094108 * I, 0.992115-0.125333 * I, 0.987688-0.156434 * I, 0.982287-0.187381 * I, 0.975917-0.218143 * I, 0.968583-0.248690 * I, 0.960294-0.278991 * I, 0.951057-0.309017 * I, 0.940881-0.338738 * I, 0.929776-0.368125 * I, 0.917755-0.397148 * I, 0.904827-0.425779 * I, 0.891007-0.453991 * I, 0.876307-0.481754 * I, 0.860742-0.509041 * I, 0.844328-0.535827 * I, 0.827081-0.562083 * I, 0.809017-0.587785 * I, 0.790155-0.612907 * I, 0.770513-0.637424 * I, 0.750111-0.661312 * I, 0.728969-0.684547 * I, 0.707107-0.707107 * I, 0.684547-0.728969 * I, 0.661312-0.750111 * I, 0.637424-0.770513 * I, 0.612907-0.790155 * I, 0.587785-0.809017 * I, 0.562083-0.827081 * I, 0.535827-0.844328 * I, 0.509041-0.860742 * I, 0.481754-0.876307 * I, 0.453990-0.891007 * I, 0.425779-0.904827 * I, 0.397148-0.917755 * I, 0.368125-0.929776 * I, 0.338738-0.940881 * I, 0.309017-0.951057 * I, 0.278991-0.960294 * I, 0.248690-0.968583 * I, 0.218143-0.975917 * I, 0.187381-0.982287 * I, 0.156434-0.987688 * I, 0.125333-0.992115 * I, 0.094108-0.995562 * I, 0.062790-0.998027 * I, 0.031411-0.999507 * I, -0.000000-1.000000 * I, -0.031411-0.999507 * I, -0.062791-0.998027 * I, -0.094108-0.995562 * I, -0.125333-0.992115 * I, -0.156435-0.987688 * I, -0.187381-0.982287 * I, -0.218143-0.975917 * I, -0.248690-0.968583 * I, -0.278991-0.960294 * I, -0.309017-0.951056 * I, -0.338738-0.940881 * I, -0.368125-0.929776 * I, -0.397148-0.917755 * I, -0.425779-0.904827 * I, -0.453991-0.891006 * I, -0.481754-0.876307 * I, -0.509042-0.860742 * I, -0.535827-0.844328 * I, -0.562084-0.827080 * I, -0.587785-0.809017 * I, -0.612907-0.790155 * I, -0.637424-0.770513 * I, -0.661312-0.750111 * I, -0.684547-0.728968 * I, -0.707107-0.707107 * I, -0.728969-0.684547 * I, -0.750111-0.661312 * I, -0.770513-0.637424 * I, -0.790155-0.612907 * I, -0.809017-0.587785 * I, -0.827081-0.562083 * I, -0.844328-0.535827 * I, -0.860742-0.509041 * I, -0.876307-0.481754 * I, -0.891007-0.453990 * I, -0.904827-0.425779 * I, -0.917755-0.397148 * I, -0.929777-0.368124 * I, -0.940881-0.338738 * I, -0.951057-0.309017 * I, -0.960294-0.278991 * I, -0.968583-0.248690 * I, -0.975917-0.218143 * I, -0.982287-0.187381 * I, -0.987688-0.156434 * I, -0.992115-0.125333 * I, -0.995562-0.094108 * I, -0.998027-0.062790 * I, -0.999507-0.031411 * I, -1.000000+0.000000 * I, -0.999507+0.031411 * I, -0.998027+0.062791 * I, -0.995562+0.094108 * I, -0.992115+0.125333 * I, -0.987688+0.156435 * I, -0.982287+0.187381 * I, -0.975917+0.218143 * I, -0.968583+0.248690 * I, -0.960294+0.278991 * I, -0.951056+0.309017 * I, -0.940881+0.338738 * I, -0.929776+0.368125 * I, -0.917755+0.397148 * I, -0.904827+0.425780 * I, -0.891006+0.453991 * I, -0.876307+0.481754 * I, -0.860742+0.509042 * I, -0.844328+0.535827 * I, -0.827081+0.562083 * I, -0.809017+0.587785 * I, -0.790155+0.612907 * I, -0.770513+0.637424 * I, -0.750111+0.661312 * I, -0.728969+0.684547 * I, -0.707107+0.707107 * I, -0.684547+0.728969 * I, -0.661312+0.750111 * I, -0.637424+0.770513 * I, -0.612907+0.790155 * I, -0.587785+0.809017 * I, -0.562083+0.827081 * I, -0.535827+0.844328 * I, -0.509041+0.860742 * I, -0.481753+0.876307 * I, -0.453990+0.891007 * I, -0.425779+0.904827 * I, -0.397148+0.917755 * I, -0.368124+0.929777 * I, -0.338738+0.940881 * I, -0.309017+0.951057 * I, -0.278991+0.960294 * I, -0.248690+0.968583 * I, -0.218143+0.975917 * I, -0.187381+0.982287 * I, -0.156434+0.987688 * I, -0.125333+0.992115 * I, -0.094108+0.995562 * I, -0.062790+0.998027 * I, -0.031410+0.999507 * I, 0.000000+1.000000 * I, 0.031411+0.999507 * I, 0.062791+0.998027 * I, 0.094108+0.995562 * I, 0.125333+0.992115 * I, 0.156435+0.987688 * I, 0.187381+0.982287 * I, 0.218143+0.975917 * I, 0.248690+0.968583 * I, 0.278991+0.960294 * I, 0.309017+0.951056 * I, 0.338738+0.940881 * I, 0.368125+0.929776 * I, 0.397148+0.917755 * I, 0.425779+0.904827 * I, 0.453991+0.891006 * I, 0.481754+0.876307 * I, 0.509042+0.860742 * I, 0.535827+0.844328 * I, 0.562084+0.827080 * I, 0.587785+0.809017 * I, 0.612907+0.790155 * I, 0.637424+0.770513 * I, 0.661312+0.750111 * I, 0.684547+0.728968 * I, 0.707107+0.707107 * I, 0.728969+0.684547 * I, 0.750111+0.661312 * I, 0.770513+0.637424 * I, 0.790155+0.612907 * I, 0.809017+0.587785 * I, 0.827081+0.562083 * I, 0.844328+0.535826 * I, 0.860742+0.509041 * I, 0.876307+0.481753 * I, 0.891007+0.453990 * I, 0.904827+0.425779 * I, 0.917755+0.397147 * I, 0.929777+0.368124 * I, 0.940881+0.338737 * I, 0.951057+0.309016 * I, 0.960294+0.278991 * I, 0.968583+0.248689 * I, 0.975917+0.218143 * I, 0.982287+0.187381 * I, 0.987688+0.156434 * I, 0.992115+0.125333 * I, 0.995562+0.094108 * I, 0.998027+0.062790 * I, 0.999507+0.031411 * I }; codec2-1.0.1/stm32/000077500000000000000000000000001412132000500136045ustar00rootroot00000000000000codec2-1.0.1/stm32/CMakeLists.txt000066400000000000000000000356241412132000500163560ustar00rootroot00000000000000# # stm32f4 Codec2 test programs # # CMake configuration contributed by Richard Shaw (KF5OIM) # Please report questions, comments, problems, or patches to the freetel # mailing list: https://lists.sourceforge.net/lists/listinfo/freetel-codec2 # set(ARM_GCC_BIN "" CACHE STRING "Path to the bin directory of your arm-eabi-none-gcc (optional)") project(stm32f4 C ASM) if(CMAKE_CROSSCOMPILING) message(STATUS "We are cross compiling...") else() message(STATUS "Performing standard host build...") endif() cmake_minimum_required(VERSION 2.8) include(cmake/gencodebooks.cmake) # # Prevent in-source builds # If an in-source build is attempted, you will still need to clean up a few # files manually. # set(CMAKE_DISABLE_SOURCE_CHANGES ON) set(CMAKE_DISABLE_IN_SOURCE_BUILD ON) if("${CMAKE_SOURCE_DIR}" STREQUAL "${CMAKE_BINARY_DIR}") message(FATAL_ERROR "In-source builds in ${CMAKE_BINARY_DIR} are not " "allowed, please remove ./CMakeCache.txt and ./CMakeFiles/, create a " "separate build directory and run cmake from there.") endif("${CMAKE_SOURCE_DIR}" STREQUAL "${CMAKE_BINARY_DIR}") #include(cmake/STM32_Toolchain.cmake) ################################################### set(FLOAT_TYPE "hard" CACHE STRING "Floating point: defaults to hard.") set(CMAKE_TOOLCHAIN_FILE "../stm32/cmake/STM32_Toolchain.cmake" CACHE STRING "Toolchain defs") ################################################### # # Find the git hash if this is a working copy. # if(EXISTS ${CMAKE_SOURCE_DIR}/.git) find_package(Git QUIET) if(Git_FOUND) execute_process( COMMAND "${GIT_EXECUTABLE}" describe --always HEAD WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}" RESULT_VARIABLE res OUTPUT_VARIABLE FREEDV_HASH ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE) message(STATUS "freedv-gui current git hash: ${FREEDV_HASH}") add_definitions(-DGIT_HASH="${FREEDV_HASH}") else() message(WARNING "Git not found. Can not determine current commit hash.") add_definitions(-DGIT_HASH="Unknown") endif() else() add_definitions(-DGIT_HASH="None") endif() # Set default C flags. set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -std=gnu11 -mlittle-endian -mthumb -mthumb-interwork --specs=nano.specs -u_printf_float -mcpu=cortex-m4 -ffunction-sections -fdata-sections -O3") add_definitions(-DSTM32F40_41xxx -DCORTEX_M4 -D__EMBEDDED__) add_definitions(-DFREEDV_MODE_EN_DEFAULT=0 -DFREEDV_MODE_1600_EN=1 -DFREEDV_MODE_700D_EN=1 -DFREEDV_MODE_700E_EN=1 -DCODEC2_MODE_EN_DEFAULT=0 -DCODEC2_MODE_1300_EN=1 -DCODEC2_MODE_700C_EN=1) if(FLOAT_TYPE STREQUAL "hard") set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fsingle-precision-constant -Wdouble-promotion -mfpu=fpv4-sp-d16 -mfloat-abi=hard -D__FPU_PRESENT=1 -D__FPU_USED=1") #CFLAGS += -fsingle-precision-constant else() set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -msoft-float") endif() option(VERIFY_OPT "Enable this for dump files to help verify optimization" OFF) if(VERIFY_OPT) add_definitions(-DDUMP) endif() #option(SEMIHOSTING "Enable for standard arm semihosting." OFF) #if(SEMIHOSTING) # link_libraries(rdimon) # set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} --specs=rdimon.specs") #else() # link_libraries(nosys) # set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -specs=nosys.specs") #endif() # Set default build type if(NOT CMAKE_BUILD_TYPE) set(CMAKE_BUILD_TYPE "Debug") endif() if(CMAKE_BUILD_TYPE STREQUAL "Debug") link_libraries(g m) else() link_libraries(c m) endif() # Setup defaults that can't be set in the toolchain file set(CMAKE_EXE_LINKER_FLAGS "-u_init -T${CMAKE_SOURCE_DIR}/stm32_flash.ld -Xlinker --gc-sections") set(CMAKE_EXECUTABLE_SUFFIX_C ".elf") set(CMAKE_EXECUTABLE_SUFFIX_CXX ".elf") set(CMAKE_EXECUTABLE_SUFFIX_ASM ".elf") set(CMAKE_ASM_FLAGS "${CMAKE_C_FLAGS} -x assembler-with-cpp") # Check build flags message(STATUS "CMAKE_C_FLAGS: " ${CMAKE_C_FLAGS}) message(STATUS "CMAKE_ASM_FLAGS: " ${CMAKE_ASM_FLAGS}) ################################################### # STM32F4 Standard Peripheral Library include(cmake/STM32_Lib.cmake) ################################################### # Macro for elf->bin macro(elf2bin target) add_custom_command(TARGET ${target} POST_BUILD COMMAND ${CMAKE_OBJCOPY} -O binary ${target}.elf ${target}.bin COMMENT "Creating binary for ${target}") set_source_files_properties(${target}.bin PROPERTIES GENERATED TRUE) set_property(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}" APPEND PROPERTY ADDITIONAL_MAKE_CLEAN_FILES ${target}.bin) endmacro() # Macro for elf->bin macro(elf2dfu target) add_custom_command(TARGET ${target} POST_BUILD COMMAND ${CMAKE_OBJCOPY} -O ihex ${target}.elf ${target}.hex && ${CMAKE_SOURCE_DIR}/support/hex2dfu.py ${target}.hex ${target}.dfu COMMENT "Creating dfu file for ${target}") set_source_files_properties(${target}.bin PROPERTIES GENERATED TRUE) set_property(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}" APPEND PROPERTY ADDITIONAL_MAKE_CLEAN_FILES ${target}.hex ${target}.dfu) endmacro() # This macro just adds generation of a map file with the same name as the executable and .map suffix # to the linker command line. This works in older Cmake version (versions >= 3.13 have target_link_options) # it should be a one to one replacement for add_executable macro(add_mapped_executable target) add_executable(${target} ${ARGN}) target_link_libraries(${target} "-Wl,-Map=$.map") set_source_files_properties(${target}.map PROPERTIES GENERATED TRUE) set_property(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}" APPEND PROPERTY ADDITIONAL_MAKE_CLEAN_FILES ${target}.map) endmacro() include(CTest) include_directories(../src ../unittest inc ${PROJECT_BINARY_DIR}) add_subdirectory(unittest/src) # Codec 2 # Output path is such that #include in codec2.h works set(CODEC2_VERSION_PATH "${PROJECT_BINARY_DIR}/codec2") configure_file ("${PROJECT_SOURCE_DIR}/../cmake/version.h.in" "${CODEC2_VERSION_PATH}/version.h" ) set(CODEC2_SRC ../src) set(CODEC2_GEN_CODEBOOK_SRC ../build/src) set(CODEC2_SRCS ${CODEC2_SRC}/lpc.c ${CODEC2_SRC}/nlp.c ${CODEC2_SRC}/postfilter.c ${CODEC2_SRC}/sine.c ${CODEC2_SRC}/codec2.c ${CODEC2_SRC}/codec2_fft.c ${CODEC2_SRC}/gp_interleaver.c ${CODEC2_SRC}/interldpc.c ${CODEC2_SRC}/kiss_fft.c ${CODEC2_SRC}/kiss_fftr.c ${CODEC2_SRC}/interp.c ${CODEC2_SRC}/lsp.c ${CODEC2_SRC}/ofdm.c ${CODEC2_SRC}/ofdm_mode.c ${CODEC2_SRC}/phase.c ${CODEC2_SRC}/quantise.c ${CODEC2_SRC}/pack.c ${CODEC2_SRC}/dump.c ${CODEC2_SRC}/cohpsk.c ${CODEC2_SRC}/fdmdv.c ${CODEC2_SRC}/freedv_api.c ${CODEC2_SRC}/freedv_1600.c ${CODEC2_SRC}/freedv_700.c ${CODEC2_SRC}/freedv_2020.c ${CODEC2_SRC}/freedv_fsk.c ${CODEC2_SRC}/filter.c ${CODEC2_SRC}/varicode.c ${CODEC2_SRC}/golay23.c ${CODEC2_SRC}/freedv_data_channel.c ${CODEC2_SRC}/newamp1.c ${CODEC2_SRC}/mbest.c ${CODEC2_SRC}/HRA_112_112.c ${CODEC2_SRC}/HRA_56_56.c ${CODEC2_SRC}/linreg.c ${CODEC2_SRC}/mpdecode_core.c ${CODEC2_SRC}/ldpc_codes.c ${CODEC2_SRC}/phi0.c ${CODEC2_SRC}/HRAb_396_504.c codebook.c codebookd.c codebookjvm.c codebookge.c codebooknewamp1_energy.c codebooknewamp1.c ) set(STM32F4_ADAC_SRCS src/stm32f4_adc.c src/stm32f4_dac.c ../src/codec2_fifo.c ) add_library(stm32f4_adac STATIC ${STM32F4_ADAC_SRCS}) add_library(codec2 STATIC ${CODEC2_SRCS}) add_library(codec2_prof STATIC ${CODEC2_SRCS}) target_compile_definitions(codec2_prof PRIVATE PROFILE) set(SYSTEM_SRCS src/system_stm32f4xx.c src/startup_stm32f4xx.s src/gdb_stdio.c ) add_library(sm1000base STATIC src/sm1000_leds_switches.c src/debugblinky.c ${SYSTEM_SRCS}) set(PROFILE_SYSTEM_SRCS src/stm32f4_machdep.c ) list(APPEND PROFILE_SYSTEM_SRCS ${SYSTEM_SRCS}) set(FFT_TEST_SRCS src/fft_test.c ../src/kiss_fft.c ) add_mapped_executable(fft_test ${FFT_TEST_SRCS} ${PROFILE_SYSTEM_SRCS}) target_link_libraries(fft_test stm32f4 CMSIS) elf2bin(fft_test) # Rule for programming the SM1000 #%.pgm: %.bin # $(SUDO) dfu-util -d 0483:df11 -c 1 -i 0 -a 0 -s 0x08000000 -D $< #################################################### set(CODEC2_PROFILE_SRCS src/codec2_profile.c ) add_mapped_executable(codec2_profile ${CODEC2_PROFILE_SRCS} ${PROFILE_SYSTEM_SRCS}) target_link_libraries(codec2_profile codec2_prof stm32f4 CMSIS) target_compile_definitions(codec2_profile PRIVATE PROFILE) elf2bin(codec2_profile) set(DAC_UT_SRCS src/dac_ut.c ) add_mapped_executable(dac_ut ${DAC_UT_SRCS}) target_link_libraries(dac_ut stm32f4_adac stm32f4 sm1000base) elf2bin(dac_ut) set(FAST_DAC_UT_SRCS src/fast_dac_ut.c ../src/codec2_fifo.c src/iir_duc.c src/stm32f4_dacduc.c src/debugblinky.c ) add_mapped_executable(fast_dac_ut ${FAST_DAC_UT_SRCS} ${SYSTEM_SRCS}) target_link_libraries(fast_dac_ut stm32f4) target_compile_options(fast_dac_ut PRIVATE "-O3") elf2bin(fast_dac_ut) set(ADCDAC_UT_SRCS src/adcdac_ut.c ) add_mapped_executable(adcdac_ut ${ADCDAC_UT_SRCS} ${STM32F4_ADAC_SRCS} ${SYSTEM_SRCS}) target_link_libraries(adcdac_ut stm32f4 sm1000base) target_compile_options(adcdac_ut PRIVATE "-O0") elf2bin(adcdac_ut) set(DAC_PLAY_SRCS src/dac_play.c ../src/codec2_fifo.c src/stm32f4_dac.c ) add_mapped_executable(dac_play ${DAC_PLAY_SRCS} ${SYSTEM_SRCS}) target_link_libraries(dac_play stm32f4 sm1000base) target_compile_options(dac_play PRIVATE "-O0") elf2bin(dac_play) set(ADC_REC_SRCS src/adc_rec.c ) add_mapped_executable(adc_rec ${ADC_REC_SRCS}) target_link_libraries(adc_rec stm32f4_adac stm32f4 sm1000base) elf2bin(adc_rec) set(ADC_SD_SRCS src/adc_sd.c ) add_mapped_executable(adc_sd ${ADC_SD_SRCS}) target_link_libraries(adc_sd stm32f4_adac stm32f4 sm1000base) elf2bin(adc_sd) set(PWM_UT_SRCS src/stm32f4_pwm.c ) add_mapped_executable(pwm_ut ${PWM_UT_SRCS}) target_link_libraries(pwm_ut stm32f4 sm1000base) elf2bin(pwm_ut) # ------------------------------------------------ set(USART_UT_SRCS src/stm32f4_usart.c src/usart_ut.c ) add_mapped_executable(usart_ut ${USART_UT_SRCS}) target_link_libraries(usart_ut stm32f4 sm1000base) elf2bin(usart_ut) # ------------------------------------------------ set(POWER_UT_SRCS src/power_ut.c ) list(APPEND POWER_UT_SRCS ${CODEC2_SRCS}) # stm32/src/power_ut.c:124:5: error: too few arguments to function 'adc_open' # stm32/src/power_ut.c:125:5: error: too few arguments to function 'dac_open' #add_mapped_executable(power_ut ${POWER_UT_SRCS}) #target_link_libraries(power_ut stm32f4_adac stm32f4 sm1000base) set(USB_VCP usb_conf/usb_bsp.c usb_conf/usbd_desc.c usb_conf/usbd_usr.c usb_lib/cdc/usbd_cdc_core.c usb_lib/cdc/usbd_cdc_vcp.c usb_lib/core/usbd_core.c usb_lib/core/usbd_ioreq.c usb_lib/core/usbd_req.c usb_lib/otg/usb_core.c usb_lib/otg/usb_dcd.c usb_lib/otg/usb_dcd_int.c) set(USB_VCP_UT src/usb_vcp_ut.c src/stm32f4_usb_vcp.c ) list(APPEND USB_VCP_UT ${USB_VCP}) add_definitions(-DUSE_USB_OTG_FS -DUSE_ULPI_PHY) include_directories(usb_conf usb_lib/cdc usb_lib/core usb_lib/otg) add_mapped_executable(usb_vcp_ut ${USB_VCP_UT}) target_link_libraries(usb_vcp_ut stm32f4 sm1000base) elf2bin(usb_vcp_ut) set(ADC_REC_USB_SRCS src/adc_rec_usb.c src/stm32f4_usb_vcp.c ) add_mapped_executable(adc_rec_usb ${ADC_REC_USB_SRCS} ${USB_VCP}) target_link_libraries(adc_rec_usb stm32f4_adac stm32f4 sm1000base) elf2bin(adc_rec_usb) set(FDMDV_PROFILE_SRCS src/fdmdv_profile.c ) list(APPEND FDMDV_PROFILE_SRCS ${CODEC2_SRCS} ${SYSTEM_SRCS}) # Doesn't compile because M_PITCH is not defined but M_PITCH_S is. #add_mapped_executable(fdmdv_profile ${FDMDV_PROFILE_SRCS}) #target_link_libraries(fdmdv_profile stm32f4) #target_compile_definitions(fdmdv_profile PRIVATE PROFILE) set(SM1000_LEDS_SWITCHES_UT_SRCS src/sm1000_leds_switches_ut.c src/sm1000_leds_switches.c ) add_mapped_executable(sm1000_leds_switches_ut ${SM1000_LEDS_SWITCHES_UT_SRCS}) target_link_libraries(sm1000_leds_switches_ut stm32f4 sm1000base) elf2bin(sm1000_leds_switches_ut) set(SM1000_SRCS src/sm1000_main.c src/tone.c src/sfx.c src/sounds.c src/morse.c src/menu.c src/tot.c src/sm1000_leds_switches.c ../src/codec2_fifo.c src/debugblinky.c src/stm32f4_vrom.c src/stm32f4_usart.c src/memtools.c ) list(APPEND SM1000_SRCS ${CODEC2_SRCS}) add_mapped_executable(sm1000v5 ${SM1000_SRCS} ${SYSTEM_SRCS}) target_link_libraries(sm1000v5 stm32f4_adac stm32f4 CMSIS) target_compile_options(sm1000v5 PRIVATE "-O3") elf2bin(sm1000v5) elf2dfu(sm1000v5) set(FREEDV_TX_PROFILE_SRCS src/freedv_tx_profile.c ) add_mapped_executable(freedv_tx_profile ${FREEDV_TX_PROFILE_SRCS} ${PROFILE_SYSTEM_SRCS}) target_link_libraries(freedv_tx_profile codec2_prof stm32f4 CMSIS) target_compile_definitions(freedv_tx_profile PRIVATE PROFILE) elf2bin(freedv_tx_profile) set(FREEDV_RX_PROFILE_SRCS src/freedv_rx_profile.c ) add_mapped_executable(freedv_rx_profile ${FREEDV_RX_PROFILE_SRCS} ${PROFILE_SYSTEM_SRCS}) target_link_libraries(freedv_rx_profile codec2_prof stm32f4 CMSIS) #target_link_libraries(freedv_rx_base "-Wl,-Map=$.map") elf2bin(freedv_rx_profile) set(FDMDV_DUMP_RT_SRCS src/fdmdv_dump_rt.c ) list(APPEND FDMDV_DUMP_RT_SRCS ${CODEC2_SRCS} ${SYSTEM_SRCS}) # Doesn't build due to FREEDV_NSAMPLES not being defined. #add_mapped_executable(fdmdv_dump_rt ${FDMDV_DUMP_RT_SRCS}) #target_link_libraries(fdmdv_dump_rt stm32f4_adac stm32f4 sm1000base) #target_compile_options(fdmdv_dump_rt PRIVATE "-O3") # --------------------------------------------------------------------------- set(TUNER_UT_SRCS src/tuner_ut.c src/iir_tuner.c ../src/fm.c) # this needs to be compiled without the optimiser or ugly things happen # would be nice to work out why as ISRs need to run fast add_library(stm32f4_adc_tuner STATIC src/stm32f4_adc_tuner.c) add_mapped_executable(tuner_ut ${TUNER_UT_SRCS} ${SYSTEM_SRCS}) target_compile_options(tuner_ut PRIVATE "-O3") target_link_libraries(tuner_ut stm32f4_adc_tuner stm32f4_adac stm32f4 sm1000base) elf2bin(tuner_ut) # ----------------------------------------------------------------------------- set(ADC_SFDR_UT_SRCS src/adc_sfdr_ut.c src/iir_tuner.c ) add_mapped_executable(adc_sfdr_ut ${ADC_SFDR_UT_SRCS}) target_link_libraries(adc_sfdr_ut stm32f4_adc_tuner stm32f4_adac stm32f4 sm1000base CMSIS) elf2bin(adc_sfdr_ut) # ----------------------------------------------------------------------------- #set(FM_LODUC_PLAY_SRCS #src/fm_loduc_play.c #gdb_stdio.c #../src/codec2_fifo.c #../src/fm.c #src/debugblinky.c #src/system_stm32f4xx.c #src/startup_stm32f4xx.s #) #add_library(stm32f4_dacloduc STATIC src/stm32f4_dacloduc.c) #add_mapped_executable(fm_loduc_play ${FM_LODUC_PLAY_SRCS}) #target_link_libraries(fm_loduc_play stm32f4_dacloduc) # ----------------------------------------------------------------------------- set(SI5351_UT_SRCS src/si5351_ut.c src/new_i2c.c src/si53xx.c ) add_mapped_executable(si5351_ut ${SI5351_UT_SRCS}) target_link_libraries(si5351_ut stm32f4 sm1000base) elf2bin(si5351_ut) # ----------------------------------------------------------------------------- set(MCO_UT_SRCS src/mco_ut.c src/tm_stm32f4_mco_output.c src/tm_stm32f4_gpio.c ) add_mapped_executable(mco_ut ${MCO_UT_SRCS}) target_link_libraries(mco_ut stm32f4 sm1000base) elf2bin(mco_ut) # ----------------------------------------------------------------------------- codec2-1.0.1/stm32/README.md000066400000000000000000000053271412132000500150720ustar00rootroot00000000000000# Building for the stm32 ## Quickstart 1. Build codec2 for your host system, see [codec2/README.md](../README.md) 2. Install a gcc arm toolchain: ``` $ cd ~ $ wget https://armkeil.blob.core.windows.net/developer/Files/downloads/gnu-rm/8-2018q4/gcc-arm-none-eabi-8-2018-q4-major-linux.tar.bz2 $ tar xvjf gcc-arm-none-eabi-8-2018-q4-major-linux.tar.bz2 $ export PATH=$HOME/gcc-arm-none-eabi-8-2018-q4-major/bin:$PATH ``` NOTE: We do not recommend toolchains provided by popular distributions (e.g. the Ubuntu 18 gcc-arm-none-eabi package will not work). 3. Create a build directory (```/path/to/codec2/stm32``` recommended to support unit tests) ``` $ cd /path/to/codec2/stm32 $ mkdir build_stm32 $ cd build_stm32 ``` 4. The STM32 Standard Peripheral Library is required. The download requires a registration on the STM website. Save the zip file somewhere safe and then extract it anywhere you like. You will have to tell cmake where the unzipped library is by giving the variable PERIPHLIBDIR the location of top level directory, e.g. for version 1.8.0 this is STM32F4xx_DSP_StdPeriph_Lib_V1.8.0. In this example we will assume the library has been unzipped in ~/Downloads. 5. Configure the build system by running cmake: ``` $ cmake -DCMAKE_TOOLCHAIN_FILE=../cmake/STM32_Toolchain.cmake \ -DPERIPHLIBDIR=~/Downloads/STM32F4xx_DSP_StdPeriph_Lib_V1.8.0 .. ``` Or a more general case: ``` $ cmake /path/to/codec2-dev/stm32 -DCMAKE_TOOLCHAIN_FILE=/path/to/codec2-dev/stm32/cmake/STM32_Toolchain.cmake \ -DPERIPHLIBDIR=/path/to/unzipped/STM32F4xx_DSP_StdPeriph_Lib_Vx.x.x .. ``` 6. Build binaries (including sm1000.bin) Finally: ``` $ make ``` To see all the details during compilation: ``` $ make VERBOSE=1 ``` ## Flashing your SM1000 1. Power up your SM1000 with the PTT button down. Then flash it with: 2. ``` sudo dfu-util -d 0483:df11 -c 1 -i 0 -a 0 -s 0x08000000 -D sm1000.bin ``` 3. Power cycle to reboot. ## Loading and Debugging stm32 programs 1. See unitest/README.md for information on how to set up openocd. 2. In one console Start openocd: ``` $ openocd -f board/stm32f4discovery.cfg ``` 3. In another start gdb: ``` $ cd ~/codec2/stm32/build_stm32 $ arm-none-eabi-gdb usart_ut.elf (gdb) target remote :3333 (gdb) load (gdb) c ``` ## Directories Directory | Notes ---|--- cmake | cmake support files for the stm32 doc | SM1000 documentation inc | top level sm1000 source, drivers, and some legacy test code src | top level sm1000 source, drivers, and some legacy test code unittest | comprehensive set of automated unit tests for the stm32 700D port codec2-1.0.1/stm32/cmake/000077500000000000000000000000001412132000500146645ustar00rootroot00000000000000codec2-1.0.1/stm32/cmake/STM32_Lib.cmake000066400000000000000000000465601412132000500172770ustar00rootroot00000000000000################################################### # Definitions for the STM32F4 Standard Peripheral Library #set(PERIPHLIBURL http://www.st.com/st-web-ui/static/active/en/st_prod_software_internet/resource/technical/software/firmware) #set(PERIPHLIBZIP stm32f4_dsp_stdperiph_lib.zip) set(PERIPHLIBVER 1.8.0) set(PERIPHLIBNAME STM32F4xx_DSP_StdPeriph_Lib_V) if(NOT PERIPHLIBDIR) set(PERIPHLIBDIR ${CMAKE_SOURCE_DIR}/${PERIPHLIBNAME}${PERIPHLIBVER}) message(STATUS "Using default path for StdPeriph Lib: ${PERIPHLIBDIR}") endif() set(CMSIS ${PERIPHLIBDIR}/Libraries/CMSIS) set(STM32F4LIB ${PERIPHLIBDIR}/Libraries/STM32F4xx_StdPeriph_Driver) set(STM32F4TEMPLATE ${PERIPHLIBDIR}/Project/STM32F4xx_StdPeriph_Templates) set(DSPLIB ${PERIPHLIBDIR}/Libraries/CMSIS/DSP_Lib) add_definitions(-DUSE_STDPERIPH_DRIVER -DARM_MATH_CM4 -DHSE_VALUE=\(\(uint32_t\)8000000\)) include_directories(${STM32F4LIB}/inc ${STM32F4TEMPLATE} ${CMSIS}/Include ${CMSIS}/Device/ST/STM32F4xx/Include) set(STM32F4LIB_SRCS ${STM32F4LIB}/src/misc.c ${STM32F4LIB}/src/stm32f4xx_adc.c ${STM32F4LIB}/src/stm32f4xx_can.c ${STM32F4LIB}/src/stm32f4xx_cec.c ${STM32F4LIB}/src/stm32f4xx_crc.c ${STM32F4LIB}/src/stm32f4xx_cryp_aes.c ${STM32F4LIB}/src/stm32f4xx_cryp.c ${STM32F4LIB}/src/stm32f4xx_cryp_des.c ${STM32F4LIB}/src/stm32f4xx_cryp_tdes.c ${STM32F4LIB}/src/stm32f4xx_dac.c ${STM32F4LIB}/src/stm32f4xx_dbgmcu.c ${STM32F4LIB}/src/stm32f4xx_dcmi.c ${STM32F4LIB}/src/stm32f4xx_dma2d.c ${STM32F4LIB}/src/stm32f4xx_dma.c ${STM32F4LIB}/src/stm32f4xx_exti.c ${STM32F4LIB}/src/stm32f4xx_flash.c ${STM32F4LIB}/src/stm32f4xx_flash_ramfunc.c ${STM32F4LIB}/src/stm32f4xx_fmpi2c.c ${STM32F4LIB}/src/stm32f4xx_fsmc.c ${STM32F4LIB}/src/stm32f4xx_gpio.c ${STM32F4LIB}/src/stm32f4xx_hash.c ${STM32F4LIB}/src/stm32f4xx_hash_md5.c ${STM32F4LIB}/src/stm32f4xx_hash_sha1.c ${STM32F4LIB}/src/stm32f4xx_i2c.c ${STM32F4LIB}/src/stm32f4xx_iwdg.c ${STM32F4LIB}/src/stm32f4xx_ltdc.c ${STM32F4LIB}/src/stm32f4xx_pwr.c ${STM32F4LIB}/src/stm32f4xx_qspi.c ${STM32F4LIB}/src/stm32f4xx_rcc.c ${STM32F4LIB}/src/stm32f4xx_rng.c ${STM32F4LIB}/src/stm32f4xx_rtc.c ${STM32F4LIB}/src/stm32f4xx_sai.c ${STM32F4LIB}/src/stm32f4xx_sdio.c ${STM32F4LIB}/src/stm32f4xx_spdifrx.c ${STM32F4LIB}/src/stm32f4xx_spi.c ${STM32F4LIB}/src/stm32f4xx_syscfg.c ${STM32F4LIB}/src/stm32f4xx_tim.c ${STM32F4LIB}/src/stm32f4xx_usart.c ${STM32F4LIB}/src/stm32f4xx_wwdg.c # Not compiling for now # $(STM32F4LIB)/src/stm32f4xx_fmc.c ) add_library(stm32f4 STATIC ${STM32F4LIB_SRCS}) set(CMSIS_SRCS ${CMSIS}/DSP_Lib/Source/BasicMathFunctions/arm_abs_f32.c ${CMSIS}/DSP_Lib/Source/BasicMathFunctions/arm_abs_q15.c ${CMSIS}/DSP_Lib/Source/BasicMathFunctions/arm_abs_q31.c ${CMSIS}/DSP_Lib/Source/BasicMathFunctions/arm_abs_q7.c ${CMSIS}/DSP_Lib/Source/BasicMathFunctions/arm_add_f32.c ${CMSIS}/DSP_Lib/Source/BasicMathFunctions/arm_add_q15.c ${CMSIS}/DSP_Lib/Source/BasicMathFunctions/arm_add_q31.c ${CMSIS}/DSP_Lib/Source/BasicMathFunctions/arm_add_q7.c ${CMSIS}/DSP_Lib/Source/BasicMathFunctions/arm_dot_prod_f32.c ${CMSIS}/DSP_Lib/Source/BasicMathFunctions/arm_dot_prod_q15.c ${CMSIS}/DSP_Lib/Source/BasicMathFunctions/arm_dot_prod_q31.c ${CMSIS}/DSP_Lib/Source/BasicMathFunctions/arm_dot_prod_q7.c ${CMSIS}/DSP_Lib/Source/BasicMathFunctions/arm_mult_f32.c ${CMSIS}/DSP_Lib/Source/BasicMathFunctions/arm_mult_q15.c ${CMSIS}/DSP_Lib/Source/BasicMathFunctions/arm_mult_q31.c ${CMSIS}/DSP_Lib/Source/BasicMathFunctions/arm_mult_q7.c ${CMSIS}/DSP_Lib/Source/BasicMathFunctions/arm_negate_f32.c ${CMSIS}/DSP_Lib/Source/BasicMathFunctions/arm_negate_q15.c ${CMSIS}/DSP_Lib/Source/BasicMathFunctions/arm_negate_q31.c ${CMSIS}/DSP_Lib/Source/BasicMathFunctions/arm_negate_q7.c ${CMSIS}/DSP_Lib/Source/BasicMathFunctions/arm_offset_f32.c ${CMSIS}/DSP_Lib/Source/BasicMathFunctions/arm_offset_q15.c ${CMSIS}/DSP_Lib/Source/BasicMathFunctions/arm_offset_q31.c ${CMSIS}/DSP_Lib/Source/BasicMathFunctions/arm_offset_q7.c ${CMSIS}/DSP_Lib/Source/BasicMathFunctions/arm_scale_f32.c ${CMSIS}/DSP_Lib/Source/BasicMathFunctions/arm_scale_q15.c ${CMSIS}/DSP_Lib/Source/BasicMathFunctions/arm_scale_q31.c ${CMSIS}/DSP_Lib/Source/BasicMathFunctions/arm_scale_q7.c ${CMSIS}/DSP_Lib/Source/BasicMathFunctions/arm_shift_q15.c ${CMSIS}/DSP_Lib/Source/BasicMathFunctions/arm_shift_q31.c ${CMSIS}/DSP_Lib/Source/BasicMathFunctions/arm_shift_q7.c ${CMSIS}/DSP_Lib/Source/BasicMathFunctions/arm_sub_f32.c ${CMSIS}/DSP_Lib/Source/BasicMathFunctions/arm_sub_q15.c ${CMSIS}/DSP_Lib/Source/BasicMathFunctions/arm_sub_q31.c ${CMSIS}/DSP_Lib/Source/BasicMathFunctions/arm_sub_q7.c ${CMSIS}/DSP_Lib/Source/CommonTables/arm_common_tables.c ${CMSIS}/DSP_Lib/Source/CommonTables/arm_const_structs.c ${CMSIS}/DSP_Lib/Source/ComplexMathFunctions/arm_cmplx_conj_f32.c ${CMSIS}/DSP_Lib/Source/ComplexMathFunctions/arm_cmplx_conj_q15.c ${CMSIS}/DSP_Lib/Source/ComplexMathFunctions/arm_cmplx_conj_q31.c ${CMSIS}/DSP_Lib/Source/ComplexMathFunctions/arm_cmplx_dot_prod_f32.c ${CMSIS}/DSP_Lib/Source/ComplexMathFunctions/arm_cmplx_dot_prod_q15.c ${CMSIS}/DSP_Lib/Source/ComplexMathFunctions/arm_cmplx_dot_prod_q31.c ${CMSIS}/DSP_Lib/Source/ComplexMathFunctions/arm_cmplx_mag_f32.c ${CMSIS}/DSP_Lib/Source/ComplexMathFunctions/arm_cmplx_mag_q15.c ${CMSIS}/DSP_Lib/Source/ComplexMathFunctions/arm_cmplx_mag_q31.c ${CMSIS}/DSP_Lib/Source/ComplexMathFunctions/arm_cmplx_mag_squared_f32.c ${CMSIS}/DSP_Lib/Source/ComplexMathFunctions/arm_cmplx_mag_squared_q15.c ${CMSIS}/DSP_Lib/Source/ComplexMathFunctions/arm_cmplx_mag_squared_q31.c ${CMSIS}/DSP_Lib/Source/ComplexMathFunctions/arm_cmplx_mult_cmplx_f32.c ${CMSIS}/DSP_Lib/Source/ComplexMathFunctions/arm_cmplx_mult_cmplx_q15.c ${CMSIS}/DSP_Lib/Source/ComplexMathFunctions/arm_cmplx_mult_cmplx_q31.c ${CMSIS}/DSP_Lib/Source/ComplexMathFunctions/arm_cmplx_mult_real_f32.c ${CMSIS}/DSP_Lib/Source/ComplexMathFunctions/arm_cmplx_mult_real_q15.c ${CMSIS}/DSP_Lib/Source/ComplexMathFunctions/arm_cmplx_mult_real_q31.c ${CMSIS}/DSP_Lib/Source/ControllerFunctions/arm_pid_init_f32.c ${CMSIS}/DSP_Lib/Source/ControllerFunctions/arm_pid_init_q15.c ${CMSIS}/DSP_Lib/Source/ControllerFunctions/arm_pid_init_q31.c ${CMSIS}/DSP_Lib/Source/ControllerFunctions/arm_pid_reset_f32.c ${CMSIS}/DSP_Lib/Source/ControllerFunctions/arm_pid_reset_q15.c ${CMSIS}/DSP_Lib/Source/ControllerFunctions/arm_pid_reset_q31.c ${CMSIS}/DSP_Lib/Source/ControllerFunctions/arm_sin_cos_f32.c ${CMSIS}/DSP_Lib/Source/ControllerFunctions/arm_sin_cos_q31.c ${CMSIS}/DSP_Lib/Source/FastMathFunctions/arm_cos_f32.c ${CMSIS}/DSP_Lib/Source/FastMathFunctions/arm_cos_q15.c ${CMSIS}/DSP_Lib/Source/FastMathFunctions/arm_cos_q31.c ${CMSIS}/DSP_Lib/Source/FastMathFunctions/arm_sin_f32.c ${CMSIS}/DSP_Lib/Source/FastMathFunctions/arm_sin_q15.c ${CMSIS}/DSP_Lib/Source/FastMathFunctions/arm_sin_q31.c ${CMSIS}/DSP_Lib/Source/FastMathFunctions/arm_sqrt_q15.c ${CMSIS}/DSP_Lib/Source/FastMathFunctions/arm_sqrt_q31.c ${CMSIS}/DSP_Lib/Source/FilteringFunctions/arm_biquad_cascade_df1_32x64_init_q31.c ${CMSIS}/DSP_Lib/Source/FilteringFunctions/arm_biquad_cascade_df1_32x64_q31.c ${CMSIS}/DSP_Lib/Source/FilteringFunctions/arm_biquad_cascade_df1_f32.c ${CMSIS}/DSP_Lib/Source/FilteringFunctions/arm_biquad_cascade_df1_fast_q15.c ${CMSIS}/DSP_Lib/Source/FilteringFunctions/arm_biquad_cascade_df1_fast_q31.c ${CMSIS}/DSP_Lib/Source/FilteringFunctions/arm_biquad_cascade_df1_init_f32.c ${CMSIS}/DSP_Lib/Source/FilteringFunctions/arm_biquad_cascade_df1_init_q15.c ${CMSIS}/DSP_Lib/Source/FilteringFunctions/arm_biquad_cascade_df1_init_q31.c ${CMSIS}/DSP_Lib/Source/FilteringFunctions/arm_biquad_cascade_df1_q15.c ${CMSIS}/DSP_Lib/Source/FilteringFunctions/arm_biquad_cascade_df1_q31.c ${CMSIS}/DSP_Lib/Source/FilteringFunctions/arm_biquad_cascade_df2T_f32.c ${CMSIS}/DSP_Lib/Source/FilteringFunctions/arm_biquad_cascade_df2T_f64.c ${CMSIS}/DSP_Lib/Source/FilteringFunctions/arm_biquad_cascade_df2T_init_f32.c ${CMSIS}/DSP_Lib/Source/FilteringFunctions/arm_biquad_cascade_df2T_init_f64.c ${CMSIS}/DSP_Lib/Source/FilteringFunctions/arm_biquad_cascade_stereo_df2T_f32.c ${CMSIS}/DSP_Lib/Source/FilteringFunctions/arm_biquad_cascade_stereo_df2T_init_f32.c ${CMSIS}/DSP_Lib/Source/FilteringFunctions/arm_conv_f32.c ${CMSIS}/DSP_Lib/Source/FilteringFunctions/arm_conv_fast_opt_q15.c ${CMSIS}/DSP_Lib/Source/FilteringFunctions/arm_conv_fast_q15.c ${CMSIS}/DSP_Lib/Source/FilteringFunctions/arm_conv_fast_q31.c ${CMSIS}/DSP_Lib/Source/FilteringFunctions/arm_conv_opt_q15.c ${CMSIS}/DSP_Lib/Source/FilteringFunctions/arm_conv_opt_q7.c ${CMSIS}/DSP_Lib/Source/FilteringFunctions/arm_conv_partial_f32.c ${CMSIS}/DSP_Lib/Source/FilteringFunctions/arm_conv_partial_fast_opt_q15.c ${CMSIS}/DSP_Lib/Source/FilteringFunctions/arm_conv_partial_fast_q15.c ${CMSIS}/DSP_Lib/Source/FilteringFunctions/arm_conv_partial_fast_q31.c ${CMSIS}/DSP_Lib/Source/FilteringFunctions/arm_conv_partial_opt_q15.c ${CMSIS}/DSP_Lib/Source/FilteringFunctions/arm_conv_partial_opt_q7.c ${CMSIS}/DSP_Lib/Source/FilteringFunctions/arm_conv_partial_q15.c ${CMSIS}/DSP_Lib/Source/FilteringFunctions/arm_conv_partial_q31.c ${CMSIS}/DSP_Lib/Source/FilteringFunctions/arm_conv_partial_q7.c ${CMSIS}/DSP_Lib/Source/FilteringFunctions/arm_conv_q15.c ${CMSIS}/DSP_Lib/Source/FilteringFunctions/arm_conv_q31.c ${CMSIS}/DSP_Lib/Source/FilteringFunctions/arm_conv_q7.c ${CMSIS}/DSP_Lib/Source/FilteringFunctions/arm_correlate_f32.c ${CMSIS}/DSP_Lib/Source/FilteringFunctions/arm_correlate_fast_opt_q15.c ${CMSIS}/DSP_Lib/Source/FilteringFunctions/arm_correlate_fast_q15.c ${CMSIS}/DSP_Lib/Source/FilteringFunctions/arm_correlate_fast_q31.c ${CMSIS}/DSP_Lib/Source/FilteringFunctions/arm_correlate_opt_q15.c ${CMSIS}/DSP_Lib/Source/FilteringFunctions/arm_correlate_opt_q7.c ${CMSIS}/DSP_Lib/Source/FilteringFunctions/arm_correlate_q15.c ${CMSIS}/DSP_Lib/Source/FilteringFunctions/arm_correlate_q31.c ${CMSIS}/DSP_Lib/Source/FilteringFunctions/arm_correlate_q7.c ${CMSIS}/DSP_Lib/Source/FilteringFunctions/arm_fir_decimate_f32.c ${CMSIS}/DSP_Lib/Source/FilteringFunctions/arm_fir_decimate_fast_q15.c ${CMSIS}/DSP_Lib/Source/FilteringFunctions/arm_fir_decimate_fast_q31.c ${CMSIS}/DSP_Lib/Source/FilteringFunctions/arm_fir_decimate_init_f32.c ${CMSIS}/DSP_Lib/Source/FilteringFunctions/arm_fir_decimate_init_q15.c ${CMSIS}/DSP_Lib/Source/FilteringFunctions/arm_fir_decimate_init_q31.c ${CMSIS}/DSP_Lib/Source/FilteringFunctions/arm_fir_decimate_q15.c ${CMSIS}/DSP_Lib/Source/FilteringFunctions/arm_fir_decimate_q31.c ${CMSIS}/DSP_Lib/Source/FilteringFunctions/arm_fir_f32.c ${CMSIS}/DSP_Lib/Source/FilteringFunctions/arm_fir_fast_q15.c ${CMSIS}/DSP_Lib/Source/FilteringFunctions/arm_fir_fast_q31.c ${CMSIS}/DSP_Lib/Source/FilteringFunctions/arm_fir_init_f32.c ${CMSIS}/DSP_Lib/Source/FilteringFunctions/arm_fir_init_q15.c ${CMSIS}/DSP_Lib/Source/FilteringFunctions/arm_fir_init_q31.c ${CMSIS}/DSP_Lib/Source/FilteringFunctions/arm_fir_init_q7.c ${CMSIS}/DSP_Lib/Source/FilteringFunctions/arm_fir_interpolate_f32.c ${CMSIS}/DSP_Lib/Source/FilteringFunctions/arm_fir_interpolate_init_f32.c ${CMSIS}/DSP_Lib/Source/FilteringFunctions/arm_fir_interpolate_init_q15.c ${CMSIS}/DSP_Lib/Source/FilteringFunctions/arm_fir_interpolate_init_q31.c ${CMSIS}/DSP_Lib/Source/FilteringFunctions/arm_fir_interpolate_q15.c ${CMSIS}/DSP_Lib/Source/FilteringFunctions/arm_fir_interpolate_q31.c ${CMSIS}/DSP_Lib/Source/FilteringFunctions/arm_fir_lattice_f32.c ${CMSIS}/DSP_Lib/Source/FilteringFunctions/arm_fir_lattice_init_f32.c ${CMSIS}/DSP_Lib/Source/FilteringFunctions/arm_fir_lattice_init_q15.c ${CMSIS}/DSP_Lib/Source/FilteringFunctions/arm_fir_lattice_init_q31.c ${CMSIS}/DSP_Lib/Source/FilteringFunctions/arm_fir_lattice_q15.c ${CMSIS}/DSP_Lib/Source/FilteringFunctions/arm_fir_lattice_q31.c ${CMSIS}/DSP_Lib/Source/FilteringFunctions/arm_fir_q15.c ${CMSIS}/DSP_Lib/Source/FilteringFunctions/arm_fir_q31.c ${CMSIS}/DSP_Lib/Source/FilteringFunctions/arm_fir_q7.c ${CMSIS}/DSP_Lib/Source/FilteringFunctions/arm_fir_sparse_f32.c ${CMSIS}/DSP_Lib/Source/FilteringFunctions/arm_fir_sparse_init_f32.c ${CMSIS}/DSP_Lib/Source/FilteringFunctions/arm_fir_sparse_init_q15.c ${CMSIS}/DSP_Lib/Source/FilteringFunctions/arm_fir_sparse_init_q31.c ${CMSIS}/DSP_Lib/Source/FilteringFunctions/arm_fir_sparse_init_q7.c ${CMSIS}/DSP_Lib/Source/FilteringFunctions/arm_fir_sparse_q15.c ${CMSIS}/DSP_Lib/Source/FilteringFunctions/arm_fir_sparse_q31.c ${CMSIS}/DSP_Lib/Source/FilteringFunctions/arm_fir_sparse_q7.c ${CMSIS}/DSP_Lib/Source/FilteringFunctions/arm_iir_lattice_f32.c ${CMSIS}/DSP_Lib/Source/FilteringFunctions/arm_iir_lattice_init_f32.c ${CMSIS}/DSP_Lib/Source/FilteringFunctions/arm_iir_lattice_init_q15.c ${CMSIS}/DSP_Lib/Source/FilteringFunctions/arm_iir_lattice_init_q31.c ${CMSIS}/DSP_Lib/Source/FilteringFunctions/arm_iir_lattice_q15.c ${CMSIS}/DSP_Lib/Source/FilteringFunctions/arm_iir_lattice_q31.c ${CMSIS}/DSP_Lib/Source/FilteringFunctions/arm_lms_f32.c ${CMSIS}/DSP_Lib/Source/FilteringFunctions/arm_lms_init_f32.c ${CMSIS}/DSP_Lib/Source/FilteringFunctions/arm_lms_init_q15.c ${CMSIS}/DSP_Lib/Source/FilteringFunctions/arm_lms_init_q31.c ${CMSIS}/DSP_Lib/Source/FilteringFunctions/arm_lms_norm_f32.c ${CMSIS}/DSP_Lib/Source/FilteringFunctions/arm_lms_norm_init_f32.c ${CMSIS}/DSP_Lib/Source/FilteringFunctions/arm_lms_norm_init_q15.c ${CMSIS}/DSP_Lib/Source/FilteringFunctions/arm_lms_norm_init_q31.c ${CMSIS}/DSP_Lib/Source/FilteringFunctions/arm_lms_norm_q15.c ${CMSIS}/DSP_Lib/Source/FilteringFunctions/arm_lms_norm_q31.c ${CMSIS}/DSP_Lib/Source/FilteringFunctions/arm_lms_q15.c ${CMSIS}/DSP_Lib/Source/FilteringFunctions/arm_lms_q31.c ${CMSIS}/DSP_Lib/Source/MatrixFunctions/arm_mat_add_f32.c ${CMSIS}/DSP_Lib/Source/MatrixFunctions/arm_mat_add_q15.c ${CMSIS}/DSP_Lib/Source/MatrixFunctions/arm_mat_add_q31.c ${CMSIS}/DSP_Lib/Source/MatrixFunctions/arm_mat_cmplx_mult_f32.c ${CMSIS}/DSP_Lib/Source/MatrixFunctions/arm_mat_cmplx_mult_q15.c ${CMSIS}/DSP_Lib/Source/MatrixFunctions/arm_mat_cmplx_mult_q31.c ${CMSIS}/DSP_Lib/Source/MatrixFunctions/arm_mat_init_f32.c ${CMSIS}/DSP_Lib/Source/MatrixFunctions/arm_mat_init_q15.c ${CMSIS}/DSP_Lib/Source/MatrixFunctions/arm_mat_init_q31.c ${CMSIS}/DSP_Lib/Source/MatrixFunctions/arm_mat_inverse_f32.c ${CMSIS}/DSP_Lib/Source/MatrixFunctions/arm_mat_inverse_f64.c ${CMSIS}/DSP_Lib/Source/MatrixFunctions/arm_mat_mult_f32.c ${CMSIS}/DSP_Lib/Source/MatrixFunctions/arm_mat_mult_fast_q15.c ${CMSIS}/DSP_Lib/Source/MatrixFunctions/arm_mat_mult_fast_q31.c ${CMSIS}/DSP_Lib/Source/MatrixFunctions/arm_mat_mult_q15.c ${CMSIS}/DSP_Lib/Source/MatrixFunctions/arm_mat_mult_q31.c ${CMSIS}/DSP_Lib/Source/MatrixFunctions/arm_mat_scale_f32.c ${CMSIS}/DSP_Lib/Source/MatrixFunctions/arm_mat_scale_q15.c ${CMSIS}/DSP_Lib/Source/MatrixFunctions/arm_mat_scale_q31.c ${CMSIS}/DSP_Lib/Source/MatrixFunctions/arm_mat_sub_f32.c ${CMSIS}/DSP_Lib/Source/MatrixFunctions/arm_mat_sub_q15.c ${CMSIS}/DSP_Lib/Source/MatrixFunctions/arm_mat_sub_q31.c ${CMSIS}/DSP_Lib/Source/MatrixFunctions/arm_mat_trans_f32.c ${CMSIS}/DSP_Lib/Source/MatrixFunctions/arm_mat_trans_q15.c ${CMSIS}/DSP_Lib/Source/MatrixFunctions/arm_mat_trans_q31.c ${CMSIS}/DSP_Lib/Source/StatisticsFunctions/arm_max_f32.c ${CMSIS}/DSP_Lib/Source/StatisticsFunctions/arm_max_q15.c ${CMSIS}/DSP_Lib/Source/StatisticsFunctions/arm_max_q31.c ${CMSIS}/DSP_Lib/Source/StatisticsFunctions/arm_max_q7.c ${CMSIS}/DSP_Lib/Source/StatisticsFunctions/arm_mean_f32.c ${CMSIS}/DSP_Lib/Source/StatisticsFunctions/arm_mean_q15.c ${CMSIS}/DSP_Lib/Source/StatisticsFunctions/arm_mean_q31.c ${CMSIS}/DSP_Lib/Source/StatisticsFunctions/arm_mean_q7.c ${CMSIS}/DSP_Lib/Source/StatisticsFunctions/arm_min_f32.c ${CMSIS}/DSP_Lib/Source/StatisticsFunctions/arm_min_q15.c ${CMSIS}/DSP_Lib/Source/StatisticsFunctions/arm_min_q31.c ${CMSIS}/DSP_Lib/Source/StatisticsFunctions/arm_min_q7.c ${CMSIS}/DSP_Lib/Source/StatisticsFunctions/arm_power_f32.c ${CMSIS}/DSP_Lib/Source/StatisticsFunctions/arm_power_q15.c ${CMSIS}/DSP_Lib/Source/StatisticsFunctions/arm_power_q31.c ${CMSIS}/DSP_Lib/Source/StatisticsFunctions/arm_power_q7.c ${CMSIS}/DSP_Lib/Source/StatisticsFunctions/arm_rms_f32.c ${CMSIS}/DSP_Lib/Source/StatisticsFunctions/arm_rms_q15.c ${CMSIS}/DSP_Lib/Source/StatisticsFunctions/arm_rms_q31.c ${CMSIS}/DSP_Lib/Source/StatisticsFunctions/arm_std_f32.c ${CMSIS}/DSP_Lib/Source/StatisticsFunctions/arm_std_q15.c ${CMSIS}/DSP_Lib/Source/StatisticsFunctions/arm_std_q31.c ${CMSIS}/DSP_Lib/Source/StatisticsFunctions/arm_var_f32.c ${CMSIS}/DSP_Lib/Source/StatisticsFunctions/arm_var_q15.c ${CMSIS}/DSP_Lib/Source/StatisticsFunctions/arm_var_q31.c ${CMSIS}/DSP_Lib/Source/SupportFunctions/arm_copy_f32.c ${CMSIS}/DSP_Lib/Source/SupportFunctions/arm_copy_q15.c ${CMSIS}/DSP_Lib/Source/SupportFunctions/arm_copy_q31.c ${CMSIS}/DSP_Lib/Source/SupportFunctions/arm_copy_q7.c ${CMSIS}/DSP_Lib/Source/SupportFunctions/arm_fill_f32.c ${CMSIS}/DSP_Lib/Source/SupportFunctions/arm_fill_q15.c ${CMSIS}/DSP_Lib/Source/SupportFunctions/arm_fill_q31.c ${CMSIS}/DSP_Lib/Source/SupportFunctions/arm_fill_q7.c ${CMSIS}/DSP_Lib/Source/SupportFunctions/arm_float_to_q15.c ${CMSIS}/DSP_Lib/Source/SupportFunctions/arm_float_to_q31.c ${CMSIS}/DSP_Lib/Source/SupportFunctions/arm_float_to_q7.c ${CMSIS}/DSP_Lib/Source/SupportFunctions/arm_q15_to_float.c ${CMSIS}/DSP_Lib/Source/SupportFunctions/arm_q15_to_q31.c ${CMSIS}/DSP_Lib/Source/SupportFunctions/arm_q15_to_q7.c ${CMSIS}/DSP_Lib/Source/SupportFunctions/arm_q31_to_float.c ${CMSIS}/DSP_Lib/Source/SupportFunctions/arm_q31_to_q15.c ${CMSIS}/DSP_Lib/Source/SupportFunctions/arm_q31_to_q7.c ${CMSIS}/DSP_Lib/Source/SupportFunctions/arm_q7_to_float.c ${CMSIS}/DSP_Lib/Source/SupportFunctions/arm_q7_to_q15.c ${CMSIS}/DSP_Lib/Source/SupportFunctions/arm_q7_to_q31.c ${CMSIS}/DSP_Lib/Source/TransformFunctions/arm_bitreversal.c ${CMSIS}/DSP_Lib/Source/TransformFunctions/arm_bitreversal2.S ${CMSIS}/DSP_Lib/Source/TransformFunctions/arm_cfft_f32.c ${CMSIS}/DSP_Lib/Source/TransformFunctions/arm_cfft_q15.c ${CMSIS}/DSP_Lib/Source/TransformFunctions/arm_cfft_q31.c ${CMSIS}/DSP_Lib/Source/TransformFunctions/arm_cfft_radix2_f32.c ${CMSIS}/DSP_Lib/Source/TransformFunctions/arm_cfft_radix2_init_f32.c ${CMSIS}/DSP_Lib/Source/TransformFunctions/arm_cfft_radix2_init_q15.c ${CMSIS}/DSP_Lib/Source/TransformFunctions/arm_cfft_radix2_init_q31.c ${CMSIS}/DSP_Lib/Source/TransformFunctions/arm_cfft_radix2_q15.c ${CMSIS}/DSP_Lib/Source/TransformFunctions/arm_cfft_radix2_q31.c ${CMSIS}/DSP_Lib/Source/TransformFunctions/arm_cfft_radix4_f32.c ${CMSIS}/DSP_Lib/Source/TransformFunctions/arm_cfft_radix4_init_f32.c ${CMSIS}/DSP_Lib/Source/TransformFunctions/arm_cfft_radix4_init_q15.c ${CMSIS}/DSP_Lib/Source/TransformFunctions/arm_cfft_radix4_init_q31.c ${CMSIS}/DSP_Lib/Source/TransformFunctions/arm_cfft_radix4_q15.c ${CMSIS}/DSP_Lib/Source/TransformFunctions/arm_cfft_radix4_q31.c ${CMSIS}/DSP_Lib/Source/TransformFunctions/arm_cfft_radix8_f32.c ${CMSIS}/DSP_Lib/Source/TransformFunctions/arm_dct4_f32.c ${CMSIS}/DSP_Lib/Source/TransformFunctions/arm_dct4_init_f32.c ${CMSIS}/DSP_Lib/Source/TransformFunctions/arm_dct4_init_q15.c ${CMSIS}/DSP_Lib/Source/TransformFunctions/arm_dct4_init_q31.c ${CMSIS}/DSP_Lib/Source/TransformFunctions/arm_dct4_q15.c ${CMSIS}/DSP_Lib/Source/TransformFunctions/arm_dct4_q31.c ${CMSIS}/DSP_Lib/Source/TransformFunctions/arm_rfft_f32.c ${CMSIS}/DSP_Lib/Source/TransformFunctions/arm_rfft_fast_f32.c ${CMSIS}/DSP_Lib/Source/TransformFunctions/arm_rfft_fast_init_f32.c ${CMSIS}/DSP_Lib/Source/TransformFunctions/arm_rfft_init_f32.c ${CMSIS}/DSP_Lib/Source/TransformFunctions/arm_rfft_init_q15.c ${CMSIS}/DSP_Lib/Source/TransformFunctions/arm_rfft_init_q31.c ${CMSIS}/DSP_Lib/Source/TransformFunctions/arm_rfft_q15.c ${CMSIS}/DSP_Lib/Source/TransformFunctions/arm_rfft_q31.c ) add_library(CMSIS STATIC ${CMSIS_SRCS}) target_compile_options(CMSIS PRIVATE "-Wno-double-promotion") codec2-1.0.1/stm32/cmake/STM32_Toolchain.cmake000066400000000000000000000013231412132000500204750ustar00rootroot00000000000000set(CMAKE_SYSTEM_NAME Generic) set(CMAKE_SYSTEM_PROCESSOR arm) set(CMAKE_SYSTEM_VERSION 1) set(CMAKE_ASM_FLAGS "${CFLAGS} -x assembler-with-cpp") # specify the cross compiler set(CMAKE_C_COMPILER ${ARM_GCC_BIN}arm-none-eabi-gcc) set(CMAKE_CXX_COMPILER ${ARM_GCC_BIN}arm-none-eabi-cpp) set(CMAKE_ASM ${ARM_GCC_BIN}arm-none-eabi-as) set(CMAKE_C_FLAGS_INIT "-specs=nosys.specs" CACHE STRING "Required compiler init flags") set(CMAKE_CXX_FLAGS_INIT "-specs=nosys.specs" CACHE STRING "Required compiler init flags") ## https://stackoverflow.com/questions/10599038/can-i-skip-cmake-compiler-tests-or-avoid-error-unrecognized-option-rdynamic set(CMAKE_SHARED_LIBRARY_LINK_C_FLAGS "") set(CMAKE_SHARED_LIBRARY_LINK_CXX_FLAGS "") codec2-1.0.1/stm32/cmake/arm_header.cmake000066400000000000000000000054071412132000500177630ustar00rootroot00000000000000CMAKE_MINIMUM_REQUIRED(VERSION 2.8.4) #custom command to use objcopy to create .bin files out of ELF files function(make_mbed_firmware INPUT) add_custom_command(TARGET ${INPUT} COMMAND arm-none-eabi-objcopy -O binary ${INPUT} ${INPUT}_${MBED_TARGET}.bin COMMENT "objcopying to make mbed compatible firmware") set_directory_properties(PROPERTIES ADDITIONAL_MAKE_CLEAN_FILES ${INPUT}_${MBED_TARGET}.bin) endfunction(make_mbed_firmware) #assume we're using an LPC1768 model if it's not specified by -DMBED_TARGET= if( NOT MBED_TARGET MATCHES "LPC1768" AND NOT MBED_TARGET MATCHES "LPC2368" AND NOT MBED_TARGET MATCHES "LPC11U24") message(STATUS "invalid or no mbed target specified. Options are LPC1768, LPC2368 or LPC11U24. Assuming LPC1768 for now. Target may be specified using -DMBED_TARGET=") set(MBED_TARGET "LPC1768") endif( NOT MBED_TARGET MATCHES "LPC1768" AND NOT MBED_TARGET MATCHES "LPC2368" AND NOT MBED_TARGET MATCHES "LPC11U24") set(MBED_INCLUDE "${CMAKE_SOURCE_DIR}/mbed/${MBED_TARGET}/GCC_CS/") #setup target specific object files if(MBED_TARGET MATCHES "LPC1768") set(MBED_PREFIX "LPC17") set(CORE "cm3") set(CHIP ${MBED_INCLUDE}sys.o ${MBED_INCLUDE}startup_LPC17xx.o) elseif(MBED_TARGET MATCHES "LPC2368") set(CHIP ${MBED_INCLUDE}vector_functions.o ${MBED_INCLUDE}vector_realmonitor.o ${MBED_INCLUDE}vector_table.o) set(MBED_PREFIX "LPC23") set(CORE "arm7") elseif(MBED_TARGET MATCHES "LPC11U24") set(CHIP ${MBED_INCLUDE}sys.o ${MBED_INCLUDE}startup_LPC11xx.o) set(CORE "cm0") set(MBED_PREFIX "LPC11U") endif(MBED_TARGET MATCHES "LPC1768") #setup precompiled mbed files which will be needed for all projects set(CHIP ${CHIP} ${MBED_INCLUDE}system_${MBED_PREFIX}xx.o ${MBED_INCLUDE}cmsis_nvic.o ${MBED_INCLUDE}core_${CORE}.o) #force min size build type if(NOT CMAKE_BUILD_TYPE) set(CMAKE_BUILD_TYPE MinSizeRel CACHE STRING "Choose the type of build, options are: None Debug Release RelWithDebInfo MinSizeRel." FORCE) endif(NOT CMAKE_BUILD_TYPE) #set correct linker script set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} \"-T${CMAKE_SOURCE_DIR}/mbed/${MBED_TARGET}/GCC_CS/${MBED_TARGET}.ld\" -static") #find CodeSourcery Toolchain for appropriate include dirs find_path(CSPATH arm-none-eabi-g++ PATHS ENV) message(STATUS "${CSPATH} is where CodeSourcery is installed") #setup directories for appropriate C, C++, mbed libraries and includes include_directories(${MBED_INCLUDE}) include_directories(mbed) include_directories(${CSPATH}/../arm-none-eabi/include) include_directories(${CSPATH}/../arm-none-eabi/include/c++/4.6.1) link_directories(${MBED_INCLUDE}) codec2-1.0.1/stm32/cmake/gencodebooks.cmake000066400000000000000000000113451412132000500203340ustar00rootroot00000000000000# # Generated sources # set(D ${CMAKE_CURRENT_SOURCE_DIR}/../src/codebook) # lsp quantisers set(CODEBOOKS ${D}/lsp1.txt ${D}/lsp2.txt ${D}/lsp3.txt ${D}/lsp4.txt ${D}/lsp5.txt ${D}/lsp6.txt ${D}/lsp7.txt ${D}/lsp8.txt ${D}/lsp9.txt ${D}/lsp10.txt ) # lspd quantisers set(CODEBOOKSD ${D}/dlsp1.txt ${D}/dlsp2.txt ${D}/dlsp3.txt ${D}/dlsp4.txt ${D}/dlsp5.txt ${D}/dlsp6.txt ${D}/dlsp7.txt ${D}/dlsp8.txt ${D}/dlsp9.txt ${D}/dlsp10.txt ) set(CODEBOOKSJVM ${D}/lspjvm1.txt ${D}/lspjvm2.txt ${D}/lspjvm3.txt ) set(CODEBOOKSMEL ${D}/mel1.txt ${D}/mel2.txt ${D}/mel3.txt ${D}/mel4.txt ${D}/mel5.txt ${D}/mel6.txt ) set(CODEBOOKSLSPMELVQ ${D}/lspmelvq1.txt ${D}/lspmelvq2.txt ${D}/lspmelvq3.txt ) set(CODEBOOKSGE ${D}/gecb.txt) set(CODEBOOKSNEWAMP1 ${D}/train_120_1.txt ${D}/train_120_2.txt ) set(CODEBOOKSNEWAMP1_ENERGY ${D}/newamp1_energy_q.txt ) set(CODEBOOKSNEWAMP2 ${D}/codes_450.txt ) set(CODEBOOKSNEWAMP2_ENERGY ${D}/newamp2_energy_q.txt ) # when crosscompiling we need a native executable if(CMAKE_CROSSCOMPILING) include(ExternalProject) set(SOURCE_DIR ${CMAKE_SOURCE_DIR}/..) ExternalProject_Add(codec2_native SOURCE_DIR ${SOURCE_DIR} BINARY_DIR ${CMAKE_BINARY_DIR}/src/codec2_native CONFIGURE_COMMAND ${CMAKE_COMMAND} ${SOURCE_DIR} BUILD_COMMAND ${CMAKE_COMMAND} --build ${CMAKE_BINARY_DIR}/src/codec2_native --target generate_codebook INSTALL_COMMAND ${CMAKE_COMMAND} -E copy src/generate_codebook ${CMAKE_CURRENT_BINARY_DIR} ) add_executable(generate_codebook IMPORTED) set_target_properties(generate_codebook PROPERTIES IMPORTED_LOCATION ${CMAKE_CURRENT_BINARY_DIR}/generate_codebook) add_dependencies(generate_codebook codec2_native) else(CMAKE_CROSSCOMPILING) # Build code generator binaries. These do not get installed. # generate_codebook add_executable(generate_codebook generate_codebook.c) target_link_libraries(generate_codebook ${CMAKE_REQUIRED_LIBRARIES}) # Make native builds available for cross-compiling. export(TARGETS generate_codebook FILE ${CMAKE_BINARY_DIR}/ImportExecutables.cmake) endif(CMAKE_CROSSCOMPILING) # codebook.c add_custom_command( OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/codebook.c COMMAND generate_codebook lsp_cb ${CODEBOOKS} > ${CMAKE_CURRENT_BINARY_DIR}/codebook.c DEPENDS generate_codebook ${CODEBOOKS} ) # codebookd.c add_custom_command( OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/codebookd.c COMMAND generate_codebook lsp_cbd ${CODEBOOKSD} > ${CMAKE_CURRENT_BINARY_DIR}/codebookd.c DEPENDS generate_codebook ${CODEBOOKSD} ) # codebookjvm.c add_custom_command( OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/codebookjvm.c COMMAND generate_codebook lsp_cbjvm ${CODEBOOKSJVM} > ${CMAKE_CURRENT_BINARY_DIR}/codebookjvm.c DEPENDS generate_codebook ${CODEBOOKSJVM} ) # codebookmel.c add_custom_command( OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/codebookmel.c COMMAND generate_codebook mel_cb ${CODEBOOKSMEL} > ${CMAKE_CURRENT_BINARY_DIR}/codebookmel.c DEPENDS generate_codebook ${CODEBOOKSMEL} ) # codebooklspmelvq.c add_custom_command( OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/codebooklspmelvq.c COMMAND generate_codebook lspmelvq_cb ${CODEBOOKSLSPMELVQ} > ${CMAKE_CURRENT_BINARY_DIR}/codebooklspmelvq.c DEPENDS generate_codebook ${CODEBOOKSLSPMELVQ} ) # codebookge.c add_custom_command( OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/codebookge.c COMMAND generate_codebook ge_cb ${CODEBOOKSGE} > ${CMAKE_CURRENT_BINARY_DIR}/codebookge.c DEPENDS generate_codebook ${CODEBOOKSGE} ) # codebooknewamp1.c add_custom_command( OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/codebooknewamp1.c COMMAND generate_codebook newamp1vq_cb ${CODEBOOKSNEWAMP1} > ${CMAKE_CURRENT_BINARY_DIR}/codebooknewamp1.c DEPENDS generate_codebook ${CODEBOOKSNEWAMP1} ) # codebooknewamp1_energy.c add_custom_command( OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/codebooknewamp1_energy.c COMMAND generate_codebook newamp1_energy_cb ${CODEBOOKSNEWAMP1_ENERGY} > ${CMAKE_CURRENT_BINARY_DIR}/codebooknewamp1_energy.c DEPENDS generate_codebook ${CODEBOOKSNEWAMP1_ENERGY} ) # codebooknewamp2.c add_custom_command( OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/codebooknewamp2.c COMMAND generate_codebook newamp2vq_cb ${CODEBOOKSNEWAMP2} > ${CMAKE_CURRENT_BINARY_DIR}/codebooknewamp2.c DEPENDS generate_codebook ${CODEBOOKSNEWAMP2} ) # codebooknewamp2_energy.c add_custom_command( OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/codebooknewamp2_energy.c COMMAND generate_codebook newamp2_energy_cb ${CODEBOOKSNEWAMP2_ENERGY} > ${CMAKE_CURRENT_BINARY_DIR}/codebooknewamp2_energy.c DEPENDS generate_codebook ${CODEBOOKSNEWAMP2_ENERGY} ) codec2-1.0.1/stm32/doc/000077500000000000000000000000001412132000500143515ustar00rootroot00000000000000codec2-1.0.1/stm32/doc/3dot5mm_cable_config.png000066400000000000000000006127511412132000500210360ustar00rootroot00000000000000PNG  IHDR 7cbKGD pHYsodtIME :!q$ IDATxyeUusε>NS E"H4H4" MMƘEw5rϘI%ї`$b%.р4҄ޢ^kqs9V!Ş?>bコ^kUU駟 =y\ps@k_###}}sy晜z={pEgg}.<|o@ᦛnb۶m o8-o/m}cN;;3AYgw󝁎|ERDUBsH @C C HFFFFFFFFFFF& |]vet:g?ف]w>7p[nLOOsWc?w1qԧ>51K.d9>| }"-[p1 t lΝuQ14́$f(6!'[ t6kgV\9qؼy3֭{֭]6 }΅삕!k@222222222222$###########Z%"O9qx"1X֭xgjjj/(ox>W\q^{ᓟ$s@`׮]sa\xo\ve׿v[ցf͚ESN9e "\o tRUDwFFFFFFFFFƁ'lÛ!322222222222$###########~/˔e9qK>?<[na?vō78qذa;?Ǡ*/ |> 袋>n/ Z裏fʕ1FGG lŊ t &###4086Yl@ 9FGG8E(fsa||сիYj'߫WfŊ>﹐]222222222222d HFFFFFFFFFFF& ddddddddddddzRKCD$######## 9O$Kᨣxajjj/(?s?71˹k>]twu@`׮]]s?Az.ҁù;1ho@@DXb"‰'8qFFF`I,UEDgddddddddd9qx"16O=###########L@222222222222g?;k)rpW| z!6n8q;ٵk@`vvo.ٳo}i&֯_?q+>|ӟ6~cww}_\pKcXv`34c\êU:"fs022BQ.4 FFF>V|+V | =k֬scY|.XO9!$##########w8VXk1"(! %BPE0( 5TyH崙zeESUcMȈ ACP\6No4hkIV4(92cGA1>D MAKzX+ qLbCW !Tj7?iDMձwiL7BGC#>ϦX UOA`Ԁ}%+q_)"N \Р4(AR{|ux* ȏ2B9y.W 3ՔVjugP)q?P .!s~i16&'x Ӟ!Cj$K7A%%=#SH4&&%:ld$*%y5C 6u"DRze2Nexd3SSx8kb_.tp!^sZWE۰hbQפMdJ#)9tbْ\xRx29Cbظu/fv䁍;0ȸ9 TiXVϜ 2]q_cÜ5~_]$ "ٻw!-|79OzOdGӻ4N=^L"8ϧ\%HbPb#fsl.[:Ӻ&cA4s![Zo&P?kL#zY蒳 XM61"ll$}δ*9;)V''ߥ(w@oWռ/ܹ??@ ?W^y%y{:]w6m-oy@Uz:1mo{_|^&=|wsd"uӥWf L%WjQO q܂qvyz-E{7"ox@JaЧ~@L) 8Sn —mB|v?Wd~'pX+ņw^C_R'Q #:GA&ݤ11q=I}}mAU ˒$B-X/ཉ Nў> sZJOk#]~ҳW̢JԕY,QY|^ε͋Wa\R`$ 5$NL?Yt Hձ?m۞(9ǬwnjÂ/~v>{wi)}lCsd H$"=]tuC#٩M93> ֭:^pʺ?;<d\B|z⶙^ћǤt۳BT7~~"=ՐھLW A!1A摔./$!VBڥz$ti UZLkaXob>W!BXjazMk}">#W B"D֘(>mHqQTm;ňmn!`Smy㗈k09Wcs$####СSV6>ٯ4 1bxjFW󈶌#Q dz6f'6{&?WqڧπB@6lHz… ?}GVL=K5j lu`qdijM̂ݶ$aFe>u~!PMe^¶d\x tTUpX# *hP!FP _LUIzb sX)(yetQvBbseqhp]pWow<1q:kih /ٵq\Ġ(g'޻|`dY/׭zf;ϫ&t ʢ~c!^̧ i^Q'_/l[^*,s]R,W׻=-ǂέKc@ ЭUb4~$KHt5/q݊&+ƪQH:YP:$C=L@22222~t|_hHsxώ-VU{}[̂fe~N=.'j"I35ӟ$I1&f:58oVIz[?Z[%ĢUdsG>zDu|DwvU8n3b- `ao[P%WU<ӹ01_\ Ip/ZL]al2I=n?{a۶m<kfcn`,+kYCchNaq>Gl`c8],\c6郗pozp%߯-nݓԝ@F:#h"R9|K~Irc˻fN1?i$Y$)QKd_s@ڌE?~IfH1Zm6˚.uǛ/a^'-;G~wݵՀiתPRϴT]r'V###E1100>>>sC$V^=1;'o">g`_ b?ãL30-e22 V5GZzh3_<[?ch@ZkwCX$^}],ci{ۧYF؊u7|{=Q_$g(I~=^ԖȘ?i\{ι`ߙB;/S;W%kO-Lu>>s3\%U$^Bh 5;C!kmP1=Kzg`AZ튤5YεP"c91OBx-]JSřjǜLsØV02lΒrRej\aˬ29ZFBL&]GoNʪ'7j> y|tzԩ{dZNS$*4_B449!O{cT fAf1?{5ݍ/"ɡ 58vRoS:u%b!kbG?OR?uҴ4dЈ!(4f^Ot"Wo#`"6% h8'7=#&}$Ӊל "BϾCf暠B"Jj!zwAV2"]0sF"Xgy|8(fKiwJמk-{Z) tUwqn}D(4r6:o~.-y/,/kehrq٭\c3 yZCazv|NkV?} G}yny4ƪZ nޒ`6% mXt$&F&bw)Erxxt+:7fUD H!Tmr#`,zJuvzxaSFbjmVfmN?yTm!q[/ 4FIj5Ӫ[KH22222[vNlNOsK]3 - _]kxoxūNjqҩ%6|5tf Okh k gz_?|ӑM@'`g | ҉ vrA!EeAڞ7(XH"fA06VP$A;S51"F0؇#DAU0v*=>'k:Ta w?f&Y*[zWWR,t5iNze>'.ۙoҷR=ŚE:~#F\EL@222228O>ϔ5Y~L"GZI Zp?fE@ycxtZ(g+HAh |I |?uW_yz>,FU%rK X&g;lش wc^OZh:vuUngÄX+T+F,CQ({khFfIii6Z 8ug ]Mq6ƉȇUz<^]5\)(tAB:o0=ByuﱬHR?ODO}?V҈K8%P29nߺ vQmpt|X&+h6CSj0.NEwՐDRC5PeCkX9GuEYHE(h 5i5 h5EjX E +as :4GAe'pѻNaeO1w*ﻅZk[K~mρ=߿7=~-kq cM<89Ex.%H@7s饗<1sJ -GUt*`ֽP)k*7:CC-Mɫ$u26j=ʼnM-YV;֘s<'GV.#q]j"Ai8 h6FmX͂V`Ulh6[ KYRB]l J4&ZX,@CJ-dDHE> WՄ9!b (AlhwDX݊Kbݫ^=sIUCL'$ I߻`]%QO.E>.XwO W^iƉ'81K/o@ ?87t+2q뮻ؽ{7|+:{Ї>4P|cU1hn.9󈱡=Q6,_Ѡs(U0Bʊ5⚜.8ʁ=T._/c}NMpܚ\ׇ7/ȓņ "*vl`T TFؽ{U9KBj/l'0ߩb5ƖR8Ga9;gp!j2Pa]$ {HBf_yZՀ5 U8L- U$/DK۹(j `$*N( CѠU KU`fppAդj` ciF!N7jN$5o. BP[vEEIT5`10^S;mEbs!Գ73KBzMǪj$J둀HgLj5R oFFFF(+|hIвc?c҃Rn=|ͽMx+p4Ma[2s!`8vbBfcx|M_O;\ι. Jm_+,7?(|$i/" IDATq1Z_7E_v~EA&ldx_b2W`kصw?E=WЙ011Llؘ*TU5BTV5tݮ*b M~ ~՚ U:*T}js!T"ZبbA(A73 BY Zݤ4D{$H|0%H@P '*VpW8sjUh4lD}K\$N"D"9VWE" a+jJ 'QFA]⚣D>|Ҋȫt,Zk{̑}wfmY>VJn%gddddpVh9<~DO870th"0ܴT wGQX !5F25};e]y#7^u1o1BK ܵ6leӦlٹ6 iR4/c3>f;\1k395Cx/+#iBV+dPu{%QWU+!elO qҺjIHc2k =ZNܬsx0{V(K`1[B8STpbbZ. `QaAģMGD@' nqyzxFk ll8Vh 7nbj Qyk-XMҊ`\ZU g ;12ljh]'+Հcny׶XVqF#5:[6gddddF6nC ל dOhDW04ݛʷLV ?I9Ok<ӓm6laf۸}{;T`2i@Q|rF& NCa (CY!c'+Q]Uʀ4(CQip?/K1T4 SD$'(#TAq"PufQT` ;,F->+ lPq6U`+ԒO\ց>e~XzcC҆Nz:E2oeG잘;C~0>(.WFv>׿Q3޳mb;߹;q1ݵJ&M7!`]17ó;:FFyT${Px6<k(CM/A4 ^ 9[͖;gc F/4/J֗oCtR JeL3T"MTT [H hUb|I&;h͢ ^g)&ЙmTe锄ۖ7`3:TdIhW̴;LLOgbؽ+==ػm&عwm^^>MLg^vޙ)kw`瞊=wٹdӊٹb϶]&{ #nb˦)~d޿{ŝmm|[rͷo=7^}'~\_yխ\v֭[.sYgݿ/xࠎ骫[o=}{k̋_w}|_̙gw|3}s9]f޽|/GgqFm]yy믿믿;+ju{]gff>T?W_}5gg͛9s89sؼy3zիwgpg,z}{^x_җ.;N>-ze/{/}K[[|K_ⵯ}:,gg}ˏZYxͼ?/?Q^~kw+^òUs9ex g5 E_׀r4?ÿ~V鶃1kã,_l_?~ ֓yu]φ;xt.6n`fV(\Aùؗ@046*Q!v:U`׮ f'`*ŠM* |15J ej1IQqo`l&= ! t6NTXCG+s.AA ! #QR{WE);PAՂ(0JhcjOZT 8CA}Ԋx8wۖ|RQ7DyTKn\PqMj@YUE#,NK(C=Op;:; RJm(zCHU 'H88Ю 6b qI2BP?RqqyKNeհ(n,I{f[$3\wbQ]j9q]=+ jrh+W@ Ȟ={x_w#ñexы^ĵ^x_s7e#:'QU3'qEa1X~>ߟx6 }>OO7G+ćy)e38#L|[m-eT T䩪|캄W{獯~AVtpO"xٺm;vO2;+h6hGjh5[|JLJnP:UI2qr-iMʪM۔I@h[yzOE1VRˑ s 4Eb*ɕɇhj4~Sv4 DDJ5ۜH37*%N͜,<"_)F .Xs>jGAJ4Td]EDR+"U!**+JQoŀW:UqnHԬ$]ʡJ@a3 'nd1Xmc:}P%>P< $ IӺcP Ơ!0`E)QߌQT,`fC x8u > 1C+8OW)⬏d_sQ-=(tGU)1l:Z*X1TBDA,^=HŖH^-F5MfgYjgax0 m`G,jy lB:dkrzF3G D<#|xF}x+[wM02Ԣ94s_ ?PX[egZ}}h1>g_vγn玶vU›Nm%_ǛyIٌgC#3lݵ;CW=,~Cf+M`lhUVrqDzz4dž0HWNV>>%ƂX!XQ\ٰGt[2p 4D+^ CP%ćQ-1!/+'&%"T]aA8B5`* x#Q$n,  !V#ZABlXZ$1cr#qfX!1Dq L&m=LPk+*Q0XV-gƉ I<,Y#t|}*eY+{CYu|EYhUY2ݞe6T3U'P>nS L(m<7bj*U웮UHvK{OluW%'O~09~=;O劷nS9I{>C1LNylCñÕh6j6fFi5 !ã+DUaPAKٽT,(ƩBIcE(ROA Kъ68"D2 F,8\pL`(G ޠ2zuBtJA*ĪDHK&X̄k\v O(=%-SXTyPXe'U 1.V&{1cEJzI`*~UÇO@ BA -TF0c 4{`qHd|V"4zl [Qʳ֬a8>}cԄCѸnG$zaFF~'\=ZkoZPrQGY}u=Y26dSgEN+|9q+t5#ܻȳ8l)~쟩[kcz?uw6MZٿɯ'U7pV/?Od'g-Ӵ) ff᭜g? Ȫkbl|VF#)S_U*0"2ў=;]bYAU[ `CCh;Z%&: :(#T5݊X3BrcJ V (bWgNQ<\JG(DN&A V,hlW"ી@a,ZUDP_u U@Ke8mI+ ^0Bm1-4%P?Uq pRyYDb"bb'iNI6[IcWvDŽ8L hIdi(eBkd*B|LM.LNlabcL.83*0k$QU-KJamC8S+!h<J*PEU?5Ea=bT4I-Z&\Hԙ%R4ޢGW E jA{Tu}a&M[GPy nwH\gH&աN݁P(C*x)Dzh1BPG[LР9+hAMS$@Xj6.рj`瞽>1{!7 36 0뮻[ne/_y:˽ K>/| $,eL{CPÊ}pLXϣ;f ~&p7Ky߹o'ӝ^z4Ö?4W("wXRj5Gs[0Kl'̓>N^]ϵо6wu>Vׄ/=(k#<}R}kS= VV +zCQ_Uj剎Ne 3ӳLL31]oGc FN`'2661+sǝqv,U5j9i$Ar񨱈X!>[D&kETԢH>R۟Br2B)@ħ3WX U"y5 Kgv\8w(ҔWLP 14݋v!\ h!WtJ5 ʙ6E͉U&ʉhB8k: %U/4QW+5KaB/Lw@GAl}PN㱻Yj+.ɀ;\;D㣭ҭ9Ε([j'(33Z Ibs ESPu:QP*,h2(&:;a[@TǮ$bE!J1kc;!`mtւ%:g)e-$#B5:]eu! `l 8C&CR#*`b I,qZh%./VeLQg%8qltwg{#(MCK|0f]V8g"$˘P | 쁣D$JZY.$#4*=uڕg)ڝF# xw XxY>S|cllbzz{/ˌsnrVO~8󙞞ӟ4EQ''_=sީxijN:wЖi~QvMv_ b Tt:Ӭ<~)W6eƗ/g}3*8db]xSvƍ}#={*۸"@<ǜs&*ow=Cqs aL>;8b\ܵo:eIOcĠ&!YGmVur+1y !j2FpI-NvgSCCBU)v (F}LEP"qb1A.m[Qq?BLlD݊1ɯ6԰U}Ie+ԒG uU!&Pbl$$#EaUllcbkYaqg) I@T0RMI/|rkV/z_|$Rm Ul{Ebk`f^ BE81!jc=ql+LF}>h\kMH,'.4LNNrsN&''$DD'>{^&&&$pyni6Ƚccc^Gu& CCCݜaʕ8lذ|3o>'&j7l= IDAT݇q=^7]Q2԰\{yo-"T[0w/5o'pC9fEpW_Ȧ ȡ5P[ ٘,uY0 tK\p怳*2LX[@hzqxk0I%:Q1ǂ[B54UpLu+֌tQ0#4Xߎ"4Ј \#N- ASù8t:&V:01P &UUSVe4ϨA$ш*;N-Ty(Ƙ 9IIlU' q:j@FR{U p.r"xJ >6uBIᢃ4\UӐC *=jXbchBqV@{`ɯ޿s<4#ifI$KȒla/aȮKLPuST{+u!Er!.u+)8% ı aImIF˒5zf4yc9#i U*͙9޽hTn&b?R fi (E %IG_djn\hmO6 W^ 7Zʟ-^Dܹwg۶m~/z7o[;v~oӦMsmIkJG}0ѩn=۷o{"=ǹxQR㈦;8+3Ohk_/~ۼ%Vɺ';SO /疩>A4ErTGV/ )鴦C gcљi)5PW>&'>`2[Rqjdz4z-`>D nL-e:ƨ-3 M =UhJ>ĉkdZK~|0U ^ģQOBj$\0j*H T<(ʪ+ՃU,/,ok؜dou.fJ>GBڀQJah$UҢ%ò9K&S!-uV)8]Z٭ +QY+8޽{_u/}:47Ν;QUG?SX&?]1uONٱuX_cwm>s0OYq+ 3z9w^9 i ԌO/\p2;N[-#gi[Zm̛mK5ұ߾}+~ o-\x3uO~=Z¶5,^%-GخlH=!9gy+[Q! ^SuF)QA:X.=+~=v#V9+q§XFU(EΘV+ Yoy"5ͥJ41ʙRMYsҎ2pJp* `! 3\"s# o"5t'%< i N[))1~}giPj-5a|j+m#-U$a it4,t.$5K$Ux>7pvk_dU+07!X}/kvq|}߆_Tqdjyys=w|+~ ܝ+[+~aj?Q;￟/)Ssw8mSaC,m;}^2|<ӯ}`=Y_ZJ߳?w5{9M{$ESB,${)!2Ld>̰?yoռi5d/00$i!v yPغB<0 n4ܭ́*,VqT*jo~o' g.\ƞFZGވ nN]Qp$>jٔR W*a5WڍIzݡ"7їF,r ĤE$!( dPP猩@ K96%JޛaI!(/O<jLJ-94#Pg3aI2yKʱԒO)Rr udQZԢ|?Ƴ51cBc?RPU{Svp6} .2w6f7f_;oYZO|\ ҦM\'Tqk_'7rR7j!FE !ΞYmRJMwz,͠%&;B_RJ$#D녖nNQpg}o{\sHqebU:K¥m#h$IM f qC5^'&ad@Rsvjd_'T*H Vn]*+S~LoBe.ۍ8RCio$>Ru'TUNI?4ӁK3ʒHtH1p;dUXP:qpjM'S# <6r2Ď*뜭i%+↱Uf'(ZOYٹs'СC/zCV{yA.X{auuu\veߒ#K\ugZj/̗?;\v‘NXKxw?KOݷt<]p Q~~7vS_GmܫfE-o>I'fN4")PW0'@=\)dAGB)¨ kIyvs½'̦MwK/3:V3kǀTj f':Ϧpִ)Х.DZsaAm|Ft.@J13"2HG9^/%Zy>h +hkhJpÌ,'$!5,,!췊h^%_A ;>"4ڗ)[a‡VӉ5sR29gLkL,SXNdZz{pTd*u)%& )0Lׅ-&w|֥l:/u?׽c瓴 e9pt]+|C?g\Oqx Ռ̦3vw0׽qKKO`%Un6VwL$[4~-e@S"#$\kd QVea)zn4b($%=DGCuF'ч;(NQa췁5t;bG˅$)bAʉ.KUs2#"ua(҅'Sz2uiF̩%(IN{sBA) nHЗJа$̚YlX\ÚNDc*ĨC%khڋvc8JnV:Iiᇂ#DR;Ix $M(ȉiE-Z>KC:2׌4|TЧdZ+jj~Ww])%v񼯩\qy晸;Flٲ+[9p$}}.zU"p9+#|m wm¹| WBGW\ :|0m^$'j?][>=0_ԷNO)RxXFMPrH09^=Pj!D3\ng{}U\zylZY) >u2N8wE\)HQ΋.΢)ũ$t80Jτ֥$ L3jL D_o7 gr}'ܭS5z{07_)`cqlU|ٻ_s._lc=i3J"-K,XYA^F4]ݙJi"NMrR~7IМH)Cэ8oRC$\}{ o\zՙm\w%|;s^cV1B2){Q:IcLmNfP [8RchXJZ?j'?7g0JצzQi"/l?q 7^?ouxu]''7PGU8/*_t6CR +t_*T|a@G˛NqJ&Čdz%6y| IioC\/2Vi-II))gp33 61 Ǫ.%j-%ܨ `,lU&0Rr~+5 Ɍ%c(g}FVԡ8(4#!%AE<)u@~ŵj0F$>G֡㩨4wkq_m۶s?s~.B. rF:ӥ.}'/˩f9oǧܶ8skǮF\k[?9sw2t HUYt珽gNqBF꿺;G 1t܆7 /|isR^DEPg׿8 '(@ASE5N#2.NkF0RJsTr#WE.wfɅ~srÐسwqRDý*R XZY! O1uȀBڧmBu8/95k!hZn1P%5ڙ NBVattI(C22.&Q ЭxKyJBeb$|\59(EKuV 5GFYvQuTCTBN_aR04YsZʑRL35,̓VehC2SWk8Gk֌6E-^{[ k׮]Exf@Ɓٱ9w6ywQV.>kלܴ'clx1wU^X;>&=)K)Xux[S>>grdMu h 48UIͬ4񴗰@N ));8146>MpLOy{^>8ptIIMO"T/&Ep"8>,nk{;Fլ6;X%LY+CSlc [\[Gm9*g6}))]gQ9jַ=4bM^G!DB|bʑS".BMI.A~I5"!ӘٍւkӳQ0ՙmhsPMJd Uor_9aw@y_|{ "GG绔_-6a[gx=|]wzOC2jIcB/TԩM55A$afd^#R"k"!kZYɚ%)oוҁ$^}iM8Ӊq豊0BJBOM[фx"q˭b xPfP:D$as HZjKbNsӁ8.zG`,Aq3 >'iq9[xY[h&VF>ObnXg;A\x=@,{˚([XZ KfrF0:]2%2雈8j-QJamlۖ97G1qi[:c+> n۶E>ENefoBl <]Nf%(Dh2Ղ*.t ]JT3GfE8FyL~S4=IPSbÀRQp*sB0wJRjBN-U4Qy`aDBքr#Z"Ssu`uIRkB,lց HZ]-VPHs\č:X5L̃77sAސYLϔpWorUWmh#G?·? z!nF>}]v_Wg?ˣ>zJAnv<ȵ^>Te׮]\X#K>b9w}\|/;{FP4Tr?.v )uYdBKOb񶷽mqd||φlݺucY>Cwy{gu|w}שm^c+?xЛb2}KǗ>1/kuA%K$~`Ch>߳ !/RVrFt QeBGGGh)%EA'oA]QE8 Yuڬ/aRrNuYe#mJЅćx4&Z* Ʌ:GKjXUK` E#0% S$*T06D_qӹh{#ܦ@bJмS5Z"DײxЙ8 АA R3U pL O4ީGnZx! V2: ,Ni I2N-QlTs&I~S+@HvͧM/uXb rX}?PES`wvV~}I=^sNUoBbpJDɔ;yI6 IZcD51a:Ka9O4mJM3KAo\<,nZԢ{-uw^~nzx .b~wO<ּn\K LNEצG4'+oŁ~v.j"nz#ߴ0QEs4nұeEͷd윾F\ܵD՞< |P(9(IgY~48W%p}RUEDHQ;B-ޞB2e H: BEt6ۺXw#Tӄ :D$٩Hr!5QBߨWnu*Bqг6 f#=88 #UpyFL)Ӏ{$fR(nDm k>OMMDiO.O,jQZԢQXZ:q9]d>{.Yl걨Nd4t܅hU6Hv :ocF0v 9/4ë@uNj7%@ÏL'oⵯgmtcr=r`R%!]PPRɩ >uЫhjER!i$ls aӌ6=IJ SoM x4f%I+@$2T"/EO0IҤB` mDJmW֜ iFpQ bnL)A,]-yLH-/5Ĭ"I# 2(M)z }O~9R#;ľJqᆺ2la?kns(7O$GhD6mАCP%a \jUFI92o~-^wͼo^ʷ]r2 RDܭ߾Fnk85UתA !uj$wFrJx2RGPUuu:,^;!@77$԰UZiBpdpjKE,2P=& }sQJ GKG~;RT``/Gx|V  *Ocwsql=Αw3yc`u]D)gRӝS=4 NqPM)e0ahFG+ ߻LlٶD Tº69м*.6Qh@($O՜u$h&8a+S 4C 1BI$ZBFEBH"Q\gIy"TGFG"ɼY zpJ" x#O<ǿ}$Fش-s!NǍRo60E&K1)Uw÷Mv4 ̊{|g31ڈ}??o| MgQQ\s ^{-?#?XE-jQQ6-+8uWo>t._/7˿u?zgiA X{lEF'Ьl;ɠ3uY@ARLV;#>G}|cg~gE-ꛎ5I_emy/羵hX'Y셗^VճO h1YJ`V4gT"uGjR+%ӾL2APKaP;d(Uˡ8#҈ʗt/`뭻y[7[p!gPG'0b(o{]2)5AJ6E=4㮈'i gb$02&$2xeĩR@ lw3#tRv`akͽ Ql`eƖ1`VQ*]L[X='\F,lߺd8rq?tmBW&kc;tckY=ra#k +kVM<YƈGd5Vq Z͙L%t(81e(34o&nW n}{I뮻ݻwod2ٷo߆^Gy??_wy'7pÆ___X4U8/-g_\2{]G U\0IAˆnhXSOY˦Og]__{jh8ezC74{Яp4JPJ&4B2V.I^R=&;2Έ;0\KYQCR Hգ<0a'ܿ tnNA56&1-ȣ*!dDvZcaU#DZzs֒$X84&B. F;Z%&$"XZJ& DHdR!g#IhR ^wo%%(*ìy?Ҙ܍ٲi Ke>}ÔahC"nѳ郙1L8#Rgr<7zUAl9pY8dŊksJcj“"0tzR™6=3p{ '@_آ7ShB h7D 7,U6 xЭ C)0k~hIj , x ^0[:7{VF]R V@{XE3 >(9 8K) ]x{޳Xܿpiyez&~6y&8On擴]ԢN 4SES4)^ ߥ5 ȸpwRN$ytv㘬QS¼4T +IQFHVar7b2kuP@S$w9]H]@$R݇ ;b eL4/KͭI,޽2=r,JZ_)&cLZKEqI@F؈@J]mUL˄aԦvhX^^f~@0&fY|P9W<}"ȹ:MViRǘu k,cIB'33Jvkn 2 YԢEg?Y8ݻ_2o>~Ek/G𭅣(~BBJaGxR4n);Cu&zFhRᄠXEI g("d/bqiojqn\Q_+ ZY6Dau-sHaJ&' }*5k&,lji(t-H*Rhb`R$4 3ƋAFc:J-֞mTEbzT4@V-M/mrDz3aPj~ )+[8rhz8%IL3CR۴R(hCTRgW ^ 'E<,I3YVFآg={pwpW} 8묳;뮻E-HJ4wHD%PC_RDD`k8פLJnvԝԊJGb↢80K/9ӳ 5w #3J҈Ճ<~}&3q8Wm ,A%&=y~TQP+N#,yՊ[L++䜙{Y﯈t^מ={˿K$㮻ѣ88Ç[S99wKFFF^qCěs !㳅ǚO $q2ɋ'ӿBEwj~,??YE0+d޽vȷK8B*FwFt1+M4ԕ&׫jds>׍1Ԅ:PMN1oz*a}=wnE|dU{ G+ڡ D*Ibhƀl<;9#V,EJ *r”}ow#*5.W^7:g`lR`뚍S&8OiX#rO9.+w$ng4'K~'de%sn9?F㣣@"MC-P\J4;R|pFq^SOɾ6l`ffu]sN:szс׶m+'O95\s>5ui/|/d\uUo~E'%rOE`;;: _AhO ֿ{P"ttP[G߻ww@.s>*'p+0dsoWdjm9$%AT ™8U4M6bt8DH gys}f8G/ѣ:@-R&Hs'WGJV0Nc[*bm<[>xrNd]MfpĦ:7Mˊ9W9irkS S+V!c++*dWxըƈ9ēŊ#Bݐ Q4;FQiR*R% UwԩJRjܭ)*"tiom<ŕVhu5B֎ql$hqwwʿssb߳]رcG*sf<㟚ccc"jbbP4+NZ%] [O𱴴tQc%˽ ~%"aZAI]_ڵ=@knbDUy[VdD\^*ܪ%FT6,ٓ%UD5H5qU*Bb^Fyxj?7Ul۱Ǘm0/1cJ̧<%-Ju]VD1I6ҷfKS2Xe&<-w޺O[BA?Y/7wLYjrċrV+5!HdsX ;'Wŧ#N F*9ooT$ǀ|opzz^߇e~XZ '5gFGhj4JVV0O&HFiW«Jܗ]vmA ^Hzzq!?gx+9}Q//}os?zwq"DDٗlr䦱N@V#)*h*˚`S%4I]Q249Bu_ÏW $$V>ds&%jHDscDR_"fP8' 䠫3$,6CRc0"켽i8B#x$E C# 8A;.TU=NjU:6U5GCCnK ̝Y0H[xf\)84qE\*xPDǃ7j|Z4[>7 H92oGx轄g?K!]=6&ֻ8gInw萲{bw#g0]j\(!TeȊuX/@q)B%{41+]6^\k/F`<ͦeIiNiVڭ^*RN4M2wlp(zڜ8+3 "#f.y4bήD( 铣E1Rx^PH 3ޛwGw`JX)\DĔp[#ԠE\$dh((Dg3Xae.PkQ\7ncu5B{t3D_W_jX'"+"Wvu3'!gOr #H;1ĕƂ7\AR&''9|w)y=+ᯪl߾} }Ͻ X4 'O|Y+{6G|)c>Ԝi:,9Jwqv0V|yqF6` f/CsWsb}.>G?K\(HƊ8rQْF)ls % wNSȮjSPƒ&m=%XN oz\e3'i^X_ϑsԺ#3o|o=FՑ43@DHJ eA\I`o'&%@!\cAdB0%!'v|'ex2G$ IMM HQ M1&L)|Ek|Q8O ~;TXVgBHJ`g:edd4+$5stc*RB(1M8g'+-}qR'jC&v׼5C_}Ç[U^t=gEs|y+1uc=vWR? g`֭\veG[֚w>t\}k뮻ZĹ뮻K̏|#|x̃#s>cr󪉧8G19|MGX:s,Mg[.iPJ=f=)F6hE*ޒoki9D5= \\~lH&ˠPOH=)frGHI:l`pʀPm6=R8wN϶"V vmڨz2I6n<8ƒ87 Dx`H$*MɺFFsOVKs$B)) !:>8 WU" P^!ɪ&++Dtblt##,ab1?7I|ll3ݏ~ _9g2}N¦MY\\iƕB{z!SqxL(B+ ?DײR_953aq_0aǹ>7(@s<9riyz nOs=/y8׬=tp__.B_@e܈K*6_lMlJwqu{WBo D $to^0yrkz x1u|H]UŪΑfE!bmsr"yA$IO@1")H6ly$dRRk"Δļ&4%p@V!l^:R.CŰYf8PM (eߊKiRa^ ebLp0NCVh] 1?*ǨTuqO 8 m}|y%VE{d[ODbʌ1iz,//ە3Wu]|'Ϝ2Nzp)+psܘJph7L'5y&ks@j՛&?ιAniZt###l OFGGy/zs~mmݶOZI3s~fba=jObo%8ҙ#| |[~ncCCMx]: {6l (=ڬcZENVjбυYy-&}߆\V8k6su xCıqs3vG'29:Fv̻%Kۀڨ@ p=ِl3O| DAZV/{ƍٸq_'ʯZ?5/N!,:-3=rc6켖Gew^桁 UDLՈjdV0W˟6 P&5ׯ\`)u͐i2"-B®+6p\}#3Fv]\O7H jUBʦVU$ls _RR/p*/|L}KV[x O@oĝ*>e7;otg?4.[㻫YIܽؖxI(p2Iݼck@u3,w VdN&Rz=IC E\ g 9wTu̞r:T9RPj}>8ב[l߾Ç /1FGGq|epL^{K9{Zw-^i42#qzCw{{Ι}k1;;˞={/?/Uq2B%hhW%X!"l߾}'|: LV0Op ckr_ՠMdUm{$(>=sVl%;;ѣGiZ311!X}#9?k^;k˸16=˙v-cWqf8Er)<{!ܯ:+2RŎcLdd|+6^u&₭9PI.T+ 2!+}Y$1SGίx;oo=~;vZs~s1ah//>IWLq5=Ez sĦCltN:o}.\K($tbF*P`WJ&8{ˣfQJD8KAѬdyHJT&6&9&[49{H{F[ apE'! "H hp_tP2ruC$C%&58xSXR%טּPA"HP3)4u6HDE:!>THQ=&Cp8$Q@Bir"ix|vԡ"L*bAd&Ɓ7XUQ*0qtZ,M07 yk!S{5RBU M#I&6C .bڼAb4&jjb+T+>^ދ5|ooc?1.9z~ YXbi9':'8X8cq KhoxV87%XsT2?2ǂE֔=\;Ͷʝ\dxL.CQR!f}0LNe8d'x @ǻ#hNj>1W{o">Ę9E*77ng>Cگگ }Cwy'GcٻwE?C=4{/│yxGxG.j{/jz'O,+ʖ-[[[yG?w=Cz뭄n?|?c??s}ٽ{k~P%V?qZ}92nmӧO1|7,̟uu2$z3_lUb1rk.|cc4quy!CW #s{2.\x YF30hKE0宀x;n",/^A*ZdcJ_~(Df6i WL]W2gS[ hFc%P T@/E{BjtL<)|/d充«I#©E$\iP<5Ub >#(M&FX8ƿUƫ{Gs坫)={r|2y ip+5PF(Zi˶gqpaEjqU_۶mMOO:fkyBZw12[m%67 [ayXmޜslذak۷o_uW^hV+D_srB^u$ㅻy6u(:y8w~apUĉC18v. auwёy{Xػ_{O?~ ndbxϾ+p18R>7mV%& r,2juY9,30-. ryx.9sˋ_pC>Z7D)%8KUY{NlIA̜0UPٵ{2dfz,m15%l|>yˉ8fW<)QuBQ!x;F/Ȅ!:6WR~!MMʋI/|0ə "Ħ{Gp xr UD)8pb_N5/īPmܦx ;jYQO>}sx#/j" ma'bDK%)!&qfylGMxk 1uA*˝C(J9KzK去%7213i VNٜ؛ >FpOd甑bg8X\}8^ j1`pnQJH"z=+N3SǕZWqK1jܠNHM+T ؊FBJvѾF5lblM G҈cL(Ձ=v|dfcQOg9sLfqP2c,Q8 Z\0bo_Y,Wg@[R֜zzzF4C:!j*c"Eu~^2zz<@jTK)Ah-'I c㓼 |/t8ƛr)u:`=.'fӟ[bg+u)%\?""p<Ij HwVE-<dp.]h]Fi<-zI9=7x-Fjw9!x+/g=&R?~l)'\'=" tR"Ĕ#vj3qDfOIfm?z,#.rFrT[IDp`NŜK"y@rL g!8&bIwBPq(>x3I^QgfLE}hH.d"G@o9Bʙ^x_ᵐ\s$UDJX.xn153Ej<[0S5bGdDZCy~8ww1?JͿ7)stB 'pYJנtV] _+_|{{㮕8y$5.O vYXX`~~RF<wqǚ>s|cֶ&-kBk̠֡u&eρ9?ϡ9=thscGy7N$%]dfanYcx#܉tLV#td2mũ}e5lqHW5Nz{޳ ܚ7|d;W_t-oyKռ馛|$&fᓏn{OzD5 (z!aeOs<^BמF9}'8-~͞]_X]AUԩSCkpʿ/cCj!()'L<9gY!qFVpDDL ZҗpY >5%.hX4| L͌t:ssp7`dAs&;pX^nY3 őiCU͞'qAN122Aq'קSGMRZDB=d-b?W9eVh2G+4r|<7"+kYZVMv "s,6*,Dg_wS2~g)KAW8I QWU>/bŒ։*'R':8@wyNv^*7AkRSr7{`Iq2I+%bMer=s'y,<,r٦jUZի_|_\-Ī^H!}I?ă<}_|2Tj] ]&eCqyZ;r)kUZի_ЫZJ]OđxܮCW} LyE"$1ɗIlN7m/ O%9a?#W穫\U@:  p8ՅT(`Bo`h4"6LǶ_$!\+dBy2(Nm6V+} {@7WD,uCgXJmc>' :&TJmgiMvbHʳċh4uܠvGAIJjH1ilY@|QMHZ&ogBxXjSI5Tx]xl5|Hd|ຣWpmwQ wOqMWQ_sg/Tf,"C*/,dڲ>ZwIZ8xO7'&8qjao𻿷MEG= IDATSqZ?{8マ  s6U=;B*^PiPYIK*N%Pv< x)"*%(a.'V8XM(WHw\t+ˆQb(ZhdMT&Єѩ#^ :h)IhpL))*/Ց RXDEܙH&%&"Iz7)6Z: Tk&e06x31FRN5e4:LrzlT/h :\owG>s t2f:grpBu/p[w+>0-MɌ8UYR0/.<?H.銐￟E{ɓz )_}- ٳg:<_t#?#BɄ$RpT1Iz/=)Z }*YFꈆ_QRVjDDDb="a!"~Fa<ֈu+.mܛ0njdA($fVQOa)T'5H$2uI(]c VpN[ᵂ Fb֤F,ӳZERkL4[#HքiSK "= 6NɝNYbi_m?KY~TBi"g%X+Jxწ:]t]%#gO̧̱]3۫T5RHE;x-1SAto!ò&KEcS_|s]}+yp7נ{k!֫+d}7$`sss__ u]=t.iw=/{&׿GA["Y|AV%FUDDDݪ>Q<0R&Lْ`ZHt*nVG(&se$Q5$%K[C$/+dPWP%#mЫF"^Q:r"I-z6yY+M6@kanF 9%O>Ky $''  Z:%/#/T۬ > ĉ':j[W3>W&ddUߋ7׷];g1 4w8z`VW Zj]DZPn䥮˨%4x#u[ 'ļɪI\ +8ee0HS; נ() OS;LW1Ɋ+Rɴ<Jt.(`rWRj"H5ż/353T%FA]&-yʱR0xGDE URT019c*`DUj9ge *ba9skk5Zi]Nuy[9$[ۛo$̉kEfdlZ/P7\qMHH # >+q.#_ebjDD qZժVl;N\3}WrW~z{؛s_}spIVz7 "Y.xKƂq\pH^@Ф=q"ɡH,rҦ2FC:2=uq_{g}Ǟ<&)0|'NQ,` ] { 4'Sdoh E ߁p2.Rf-)K[$n1H3/bnW5amFЧ. *)(9S$-V",$_)D,:iIZ&DEx`VIs^]b.&E'Ș(]g> ri?9%Oz]n;Q:yG1>rnsk c)˦GYES&RZpPBG^yUZk^L9U۽rkn_U7wqW~5o!l~+6jU/]\6oPkm;SyJhJ 0\-*`B֞s;)*N"kEڦ)0W#{ϧ? _&$8'B+]^u2-D.8ؼ5\+)+scMSJ}<|IFqϋlOpխGWwvnxϟĭ08+͇3g {:=/K{c9vNzٿp4q -A6ð?0wgggO@.T2uoPZ 㴻bY*PYZ/#ѴYX7=OFdfnG.ѹw?OOӧsbxxɳ<qwl-yJ*hAu>!K͘[ܰb@Ȟ:!Os PWwwd-bT>iH4a6o(Rꍈ㐩4hDܢ?c-P*(^s98REI躎X17: 3vNO-ldg6*^ ;zCۇy7^oy ?$}aq?yuJ-x.l<qJnϲw/}E'un~Oqછce`l{˛\/K*&jqmZ膴cn(X|ʛk312TLccu ?Rlz] HSρ5wҭ,+Iq#=?gsӈ5wj4 (5& sion #0yQVB0nFjkiP07/GXHK"dhb$%hL4FkDVphڄ%Yk$9M7,㈤;IPmޖjhF/17E|M`8u ͇(ˡMテGN:L_mo.'Nat!uS"gq1|xZVUjUlcGD!_}a摫C='vcV %UD3d}_Gy UVx:)X]D4U<:d2 U O04EmHZ訥5K#: Mj ppϵo8>!4eRfO;(U,1YL:|KjT 0X*SZb"<&SbTĩlbQE\Q]->ZT;2aڗb;L@4;k2=$b#rK1mw:*J @ɂzw&F*E%yxRG5pLqN\} e\}ðo/q[s5Wcٓ]LcRhω4kqj_ * gUڏ+bsj^+ukgb{CW#׾q³Xg;Xp7RFgm(øVG[G<A/cUQ{ڸKAҗ$%HJuc􊷍4~fkHaj 5wâ@P{s$1r| $M9] jT~^#[sU!ypѬMAE͇-bRRk%YL D?brGkaMO&5qSB6 F_"hD^jӥJo $f=Iφy>XȿB(*! kJ )HZ軎]0 'p.kNwNL ]Jt"1ϑ,;ljU//xYE*m57cudܳ]8E:vKjdֶq r+Ǫ^7 //?ӯIvZdm~(B%\Qĩ4 'Xp^lS& \^MfT'b{糁l#ldNfB-SR^g>grN:0%xtADQB:rLbD4@xՂP-Z?(9TrʑN5N7H Y AY$hIa/Dc &/hjcdˤ@N+↩ AH~-q+)) D(Iм>JNX %%Nkwb]t`zq[q=]u/r\G2rlB/iD_C=Du\{E_"\s Gݷk0͸{x{߻qͿ7_={]7߿wKZ_*oy[!\ܰ_yԱ}Z_8afx)ur&%!]7^{k]Uy'G[< oo@~Wk@WJNNιڄ@HwmK5nN]DÚEZ^@⣓TR02JN Pvxk_][axq.{HjJp~ӻ $+!IH,,Rl1HBRl֓\JJ VqH@N5݀4vpÜ/Lյ=]D^}{RQlӒj. 'z!qkiY0LҒZey\m`N9EΜ3uMko}x)Nh(/6H)];1^'N`cccu]﯅kkka9./\/!SE9Kka-yAl0:/q+_>Q ':|wK\y#y7D̫8YO9m8R(U 0JvZ7椔qlG1~hKY#ݡE }lD ߂$dH}PB%AO-V4;S},>EN ̑C;v#i#t[ 1f$ i14帘$CWiNEk`4 x4]lbSӃ R̩Aі%夺QP7&tm!*.Jm>q,M99V)O̓Oָ )+.gqN5KHR"O59N5a QxAs ⼵ 1ᱧΐmܝ0*=U& #*P,,hMg}΋%4R035dr+VUqw}n;5<|ͫ^ժa* Hjҵ5 0kveFJa (Z"!P bu''!$<JH ﲶ&qrdu(tHB,9cۊƵp<cL1RifF¹H"eH)SW$%Pc 1QCJ7acAt3!c$|eejs:ѥwL`RNA JR5ShJ*_ <)\cҔ]Jd2Աx" Ü=KvÜ=Ք?!RI]F2TL"=V>AIhh܉S(|G\\~EsidkJYժV;3|+?CDN;w=^ժV wDlH܍A1M 1XEh0QE]S',+r#t I'LV'^СM\<Dž{Ixߠ؈B!NIyq];`.!ǺD|yx<Q.^KETXij)0֒"}x-꒤.*ҠĔCRšjHR03R$TG4Ar IDAT-LZ0@P0a.E dbl(B"ĵ EryjUZUOO\p#?sZժ7~y;{ Kks/e2"FBb c3X ='pJZD/D_Ƞ$ =7p G:i)'ygP#)5cdy9dY$yi(0`X ^Ȟmk8ZYDt(eZGE& [uZ3!G˚#6WUHdmy <4B3g-f:p G^xٽJgv&H^[L&uv5c>)E,x XM:ȔP`Y3dr)$"@1q }UZ7߅wkEVu|C'`wwE?[̍ -kdcؿ 836g3΄7@B';<#o I~Wz^"ˡC8w+MmH隹SKn6Fujl i('5&3 JG[8{_qfCc\q(6OOn͗1|ZHoCք=cG?|T$=McmmlMsν بZkb3h1igDzeJ=6>V-I41H0$Z+e,s="a=r[o'{gv[b_w?r[[y!5ֽfߠ[F']l^I`J"j FѦ B) 'Iu-.Vd ÙսHTI$~OH 9b^:"BjKƨV#I"w!#Iy~(T+3v8};%?A&L\QF5"Jʅ6]vƤeӏ>\=%.Y]FZIWVZW#ep1 ??:~g~f߯c}tq> Ck{U2FyO@&Dϔ2exYk2Oo0|g\]!߰4:]g6 R/SuqpIvd&2A%(j-R}$I&,J-!=(uz!)UjI8Sցu67gO#o Խ]T%xz.|IOfUl^cmyej4fT/玱P 3E,13:*}00Tpq$JL32&Oؼ CG%ѥ&35N쳐<#i”ﵶ#^ BT1 yP#kL2piiNm6NRRɎJkYNZA*C5r0.=Źs3Lll`scl֨t0D3Dq6}J9nǎ r.u))uT Hlj> +]3SB&KS_:c Bs5Ν;./^|݂¾ wlmmqС)wUZժV˗٨oҗuꍸ 2rc3ӭCt¹ S.p5G}PkOqF?7\ sWA<މd%%4]%deJ&2I@ vG̭Y! H#7c)53yسL0KZBΙ;Рki˄.kQY%NńP)VȒ3߻gܹg&M {?t6HBb ɄO-&i%OPqQD0GL+&є`h pcLf($UyH)|#*=gΜYB>*]w~;omnբjUZ9.BVj@rJ`xԶaF6MH\v[ŤXG%Nä\(j3A j2Wܔ3x-7P 0g 7p5w6|#i;LH%R `<wP'r_lGR-6͋d'iI"W:O"ao;xZ/!WsOeٖ":(E/,~Nbx㑠UʀבOwq9~Gg.8adg25E5&+T />U^ٻ,YǸ uI)! YHk< DUqy OOя~t%ef<ǟ1wr{7bӭ092hJyl/x̡C d2]z/oOzR /^o>,?_}c~  =5o`Suxߏeݿ+ ȉ'^#KCi&-_H*1z#JWr3fٔCMj3[ÃM5CzGuuHxΟ5>/>q=7xq{\8My VPQ &3;Eߧ Z#w_i)!<RRH͇,<0r-Ur!&6 brQY0GBV/15|:VZAbw,u6X[칳8w3DD^bKJmqyfط|O}=w5psr|_b<-סxnxVްoy0zWm.gFf-k3f.1"zKR Z@cx7\b|1~}we?A;8IH3 :SJuGTm$Oy.NJR%4wg85sƆ7"_z${ cE XΛ[ TeSgR FqSakEcS@?Lf3Tu0ncyk ,]t6{77 99L ƽh$]mV/1?.&^,14ԩSӪVUjU.5RqylR5"5Nu2 oDBى8WKFN4I!.bl yloefj|qmo[NuDJ"Kbg=*J ˢP2ԂX1;RaY,h#/X;^¤/dB(rxntg22F=>jb~QF`U4IU‰^=S lndsca>g`jkq \~M,>_Ji}HIv{lmm%EF2e72bW(5Ճ(2`UBHu]ժVUjUzUViH"7Қ w{(.6T#bhH Oŗ RnNVDg73|=>Nz4LQ|I#K$RR˦a0pw*VcnaGbjS)K6SwZ ;!jr܌"Fm<4 R)#U5!B#G;Rќ)jA.bN).gH@sy\2tv^F0Ohryp%<-X6qxyX4\pay/\񲚝qUe/i6WUjUz_?*.XjՀ2)&!\`=UҦhSBr'SH=ISAE##*b* (sdB5~"U'TijpݛnB6*nRPa^ %T lEq<6׶0CZqzU5|]b¢!Y9sm`hI1Q ~P+ASōRjZ,{f -7IH-NX$K0qTJc2٠VP 3keWucεyVw^@1/9y0/';׹16I唓[T*S - s: F~@@ FC ~wsa̽i-lsRI}֞gǘc?)=ej*v?[ iBS$u\ +سg*xՌb1:k>5:a ̏)>[U&"4u"{_W?/o|#7uc~o/޽7MKٵk???d/FwT̅TH=q 5U)]D"OyAO&e>)OC4dSГN,GX~V)_[8<)Ou.bFcNs\)cnVz^:կni*1-]w^>-{M7g-~7sKRĿWm^lFq򘧮sXn/tj<{a0ƙ,݃$T{@O+Y2Ö= i}k]7??>djAZ"8]R 1WLAM0QFR֧ HDX ]D++!h/|ox1{9rQؾ|O3X8ZW$e>qbrQ% р]001Pf;6ME)TI;ܘuUc\JY9ֵ0J=̡Oq5w;ɤЕ$ 3R3D("$W<%!J?y,/,rBvscF TI:+6̏93uL4&TeWȩZk|"+sObFXv*%쪂oR\~ z?YXXiN&ӟOmdq}c[~W/˷:,,,p9 s_j1u }cDzo*>3wW"z6;&|R.>"F߰` 'ȋbb~4!R4W) ]W2D$"٭0Ԋ6\J.-o? ?];Yٱ/k7]wA|Ouk=)9>ӊJJUGu ҸhypiZhh|5'YP&*< @B(DH9ϜȦ#9(dL-:wTH0ulx2ntGSzj_SHh@ZdhNؾ0^g}8)Ŏx?u6VIׁ.p=G׳+;V欭OZeƄZRZv'dZ%FJ5HBm?y X?VȚN"Ghr IDAT_Xa_+zqH@<+B?&YPkcS+dJq qz-(3Zچj3aȑY(+ˬ9qT}X7Ȏ?ﺗ)e I-hNX;rXs/iČ9XN}Lޘ0e5v~ؽ{|!1ńV׹,:+>NuBsKж 1yxü`!TFN4z: ܳjd ?:g$v9 fI Q&v+4F95+ a}>)^Bs8J$\'ib2)t]>xŻYw!DaP4"Պ_E^qHʨV41Qe݌lm2q$l3^T- 3N'NqbJMB)&me6$b}0#5Q:IJ!:I&x -_Ѓ0v%:}ba!Z ?<:03RAzϊ#mc{Rd햣FaR`NN16P(E@LbLMa,2#OGP ㉋.9GĝwbСCБ#G0 >d2y| `nzw^a`,--m/"t]GJ.I1-F"lwqKO?v<@D9ξ}(D}4*M8sȉk9uB*ykH-@J q D}FN#4䞎G%޴ Va}<`y6AI$lQ6V \ UDJ]Ķ;a /oJpK9di"8&͓i?:.n@&Qx8"RE8u] l rF ф԰/Κ$6@N&ᠤ 'FNJX_0~/-Fdᬳ躎a2C' ̄ 3g83\9> yZ3KH)GZPb9IB\)^Pȃggt2mH{(>OK_x ܹ1_ԧ>νK1v]wd޽/~qk| o}+_җ[Muǎ/?'̌_+~:q\{Otq 7?[z{{[z e)| VuyqC?fO돸r𲗽%Ze.4svJ``=|Tɖ=z~ _DxK_G=wk9lT#wl4+n4lBŏm{`Ht9|$N)mK#@ɔ*W6a+ 2뙸县g! ,!6>{hVRUǝvVd|&͚Xr]hQ &%ЈxtQ7-^ ӑyw4"GǞ@` AAHOE&rfiudGbqaw ر@#GτGCCUF]ϑPz֊F KF p"Y4 v95Sr,-1d}yDU>ժ#lXW.˹Y\\\uU;'@g<%I)=! /7M'|[~Wk߾}]zc[(%p%l.clqQs\p{ަ?7g;3~t]6osמҗMixh OEoO:8%"tcHBM1:Q)SeR >MU!,Rj#wS $M)JŅ -vjd *BF\ '6D"teamʤVHJB\QQl$լaàBNjZ WAr 9)u w-m5\b )5W3f99,k+BQ+(E$˹I+#Vwrs:kTkVv&1ر4F)J%LAﻎ,,-2.$ݐܵq5樥IV89eJڀQh+h+֪HA[O;\c1yc[3 ?z^m fw?ywo|#o~󛏫 y(eO~SԡPRHA<%`ũZHtP=4Cg"[_K A-PN_V^c}!BV7TcR;opnV]0Yь"3[¼RK eB+%*-fQ(5t8t99kBZŸZ =zn,֪UbNEm[E$F$FWZ)D4FVk1yNΙLG=+,.,%_քDxao-`y0.hEM8͉2hH G2Smܢ2+,e6F v]HXYYСC;x q8p:-M7|3 }DS xӛ޴)J~}\si$s$~o7E:$FXdICsxp,lv8ZbTX H1DN(#{>91DA(-:.bY)ZDZ~}CFC lOq*TršKB!m:_gPzI.yKJ"Uz THEj9>|sߤ =:vDz cRGPG*;٩6P+7UrK]8ʔs:u3ǩ&D65# zJJ2uX;FD=5Jx/G"F {ŧ=BOA#PJA6;_pLBZwTKL"}h]޻gayL)^G`Q=DvdԄÇcm8YXZQtHJT4(|OoS!ͥ1㿶^#xq>&gyc[#qO[(<ޔw^~w q4<^|#se/{ن,Ek'/Թs 4ǣt5yG)AKŲjVD8P7Ԅ1R)ƐҀ}ހsFBtEX؅waHu>c'Y`1wؐAH4.5SwsUUjX? %a\fAm9z'kuoҴ0tilޜ@&c,u#̉NCDQm Pӗ<z{\ ;Oο]^L|6aS(aḿ=8t1OgO'/,c}r5*IJլZhg4* Pĩt.W\//<ԧn*o9y޷eawy '>_1O?C1{>p}c>|x$F'&Q)[\(t>Hلq; O(D(p?Prn7G6_p-!*:ʸV 6ο;D@Ϯۙ'>?/}1kpd݀DG$pLH*AOK#WYv6۶IF}HM$!.sʊΑQHҤT+WQ[X= $6ٵ+ho}w5vۦ?}h'`}}/| [;9p饗η3k`$,WsWI8k'?W_}5o}[7.d w=nG1mx3зly6gkdGr'zscRmH~7ToHsR 6CRLr5riV: Hs|\;Ge)}E|-ngLRGh VIF"\͢y'Ø"$:J,QJ]~Đa)C5\c$ڄVf6o!vU!%iEZ.1`Y2XXN!0a %jP5< +ax]Y?xaa hWF,, ɩ1DPC/5Cc/΍8YaQx> L9#9SɴZoXZZ-oy oy[<1ylso?^:FѣF̅gv\u10P5ֱF2g`XDDqschR+%T v PQKK+jT>ocqqՌZ;+H}.SݰfTPm:"bVC5c$.%T\" IQi~6 M D֣SVAKҔ>ycIEv?n'ej'>_GN ln?'8;o2N$S6)z= A̢RPͼBj$)v䤳.,/gW{n[yPRuĔ߸5!^vP+F&3%m =lz͢Q-zx27%ҠduqkAM†6Τz~ jMG]4mIcqAw?QJuRQ3Vp!Ku Y VضҶUFKiPsx"ѓ4ފD*Jm`FGєPX'wQTx&״F'ݏ!sd%6c'"z뭌㿑cudSyo}2O)GS7K?MJʣa!*$9+HS$[m mc\>Z1fd."t5f$qr*>w)W#23pFbˡpr7o8qsoX9hlY8)9ƚ^'xNO9;d''v5Nhhx.&?S?{~m#1:ﺎ-pߧ~(v5(*\8Z(NJdf`*1I3 LS9gbhX]#Ct Q!U4G"W~ø> ,.%4~@yX]}"mA'&E.3v)SEe\ V-:DU^(O\"w?)FQ|1g@jp W=B]&03=x+YŸ́=_1jdM(aV;8}ߑTW_Rb݆Z}/zQhq7~h1 }O> }gMsq?_> +^ ?;Ϋ^M/wR܆o֦.'ox6|}/<Ͻ}C7L'OhME|+7|&6|5y͆s=O߿S44;7|7|ꫯo>uN57|3W_} Ѧ:? ̽_ {;ޱx=mݶf<{>ooн; {߾/7|WW7}/P,}kw~wؿ ]'s)5˪ʗe}w]"{;R8|=6#MXz~ ?exw@Onum5#g5m6|Om\_n߰80=U}rk̏SO$*tdžklkki~p^kڝ4`x8z㫫\q=a⧠ >]cOݐpq>R`H`?gy9M|zElB%&,zr(yZtpo:pMS d0DVQ&ڸShbnv%@)C)p6V0RBע)5vkz#VN=MGlm [./P%U1%mm;0O!rJs IDATG$@JgWHN+a\Y ])Kʤuƕ?zoɫX-7DRDbd}ޮyst}ZdeEz?zv:vL vK)0RJ2ąH8\b_[mD)sb'0 CjRHJ }ss )Ay+?7| 5-+FūkUJ;) n\1>vSJcVLy&4mNj+Rɹo#Bun5aת] ܵܧSiRHm=B)UI$ISr[hs4sY")g MLa88+9g1a!+k9]t}?H{19 &p޹3r{]H eD95W0].:-Q 0Vtdp<1Id:IMuiX[[s&Y!ߴd8pR9~^D5uJ E$vgk3ѯY!yT UBt9Y3T {ܡbJJ$ (5=Exs[}'o[99őRƕnƇ5ܩP 7RGBs,nm0Bmbdj#Oݘ{1 \`ҍ/u+F/Qd @iBb\i3IR< 슍L/#V W\l(-"ĝ+(&VE$qW~#yǞy;wr wPgy/? 0 /ǿC28[`ўhXyDZIccNY B1G]pBojpYgTMp9gͯO n.g] nݻ{;Y^Xg?=jrF5qjx-uf~0%7Qz~Ę<1yc'lVWWY__96UeyyyC9y< xS!-6tԁHL8\h)`.i{}-ͯT/63>[B1_Cl絯v ԃ51ʉ,k\3y+^j@*^Zc0>EbŜ1F5Ƅܢ{a6.54,Q!O貒5 ȓ=F¦X"CXid#9*=s61uT½*8:GV4t,ɕB,g iRA(u;vښH{LwǬ,"8 IX脇|׌&O۸-8ÎѭI"3-1%q\gs$[aښ<1ycR>7vl9gFy2'\A?J~pӮHjڏ"gvU$3 S=DVز谔2ԧ˹gpiKLxgCȩ|hnRMkwhtM u D$a=da-\bDkt+".!'+x$Ba u32jF0.f9err\ 5e*dZC¤8X)J.3 BEh ҬmS&P1 V ;WF+f]B8]JT}Nnuvx ^S%K@LY,~@bsj@`4R<1yc'Vߧ87u<ձ2U:Cm$Z⸥W\qR;1v׍^q@B,,M$\δHY;@RGiEx$ݪ AXY^9< /8%Vwg? z\.| g?|kʭߺZ NS/\g4 ܄Z,Lkd2uW6Gp8p2IGoI :!$' C5JqjJuHB؞wZT*Ubʓ0X|(&z.H=x Ƥ+!/z3xஃLDD`>֋B[T!QPj#!'?I>o~n-?υ;}[~nM-(R/_r?)%.⿱۽{7{&<έ?mv+@kohUBDxK^a-qg>X= @BDg̣΀pJ[eԔꒃڝDMm_bn?DjP+_[|X%W/~ܶ( C!3^/ԑLpf>z} 0AiD3ܳ^ U!$Ql=Bsgņ^6SWLR P##9 +3jy$a+cB55\gD1_#I1{Wx%/ [oo 9<uP5ժ6}(iʼnHg p۱b3vV;vkk[~.B.-]v=k`$>m?UÃ,3LFt ]v9gaxt$Gz$rǘlsc;a-GND zn#;H8!pk91)"Ɋ&!uJ= NaIa@8ֱ6>'19RXP#' u 7r9B;KQ[R\ v"IkE5!Y0BĮI ߔ3uf h91bOBP&VX\(TFZ$z'JGEuhGD[{"f]WBNa;M?:JF/ Nդjgm߹y2g!"1 TR2x~絟b!)n1 eDkAj:G~h̅tg0nn;|!,/EAcDƤSku=X 5u.L=:6JUG| ϘR R,zSDC5ѩRiʧ~)%J j9 8z)1`iL!0uzV(\)I11,[7"7+a+QX!FhlIA]:d֔0f%:! =ϸdB5jf9}{d'#k%e *:<C4X<ާ2 Ͳ ]bc$YY;0=6F];O=hr-H+i4 6f<юio<1 ֋r'Ӫr%p}I9U wd?dJ ɩA^̮GCnM?P D4{ IUKS¨`s9|ٶ+sхg3t##=?˿!:XɤHHuR`!(jTzki&hlk$sb?*4%K) A$謹b`VM_]C":2a+DH5 o {jpj.f祉k xͫH$ʤ 7M&qJleKΎ ڵ Ȥ2Gx/jP]chNJ+cyc̫مG0 o[na޽ -oy ۶mg94'(_Ҷ0_.X??{rU5Zd5(*>#y80L݆(^j!VȨDRja" 8#R +7~O_s T[f<,/ʵvl˂P:|(XFъ/TpI%>AoBYG'@U#<;v[ Ѐ HH,&{ƀpŏ?c'yT8NReq3T^%)! F BЭVw8Z+P7RK{so}@XRsRࣺN1od+]NA/kAHm8O/fIYJ$WsJ5&~_1 73_} ? /8-=$l<Okp٫^][z.8hF&R܃;TOsn58|0?M.<Ѧ_o/}K~~7~cTQĿ;];Ν;wmՅo\x=~>ݟ ?n/?NCNU͸ZL4JATX/)4AA[BuV(fjOkHyLx!jdS#٘ )vOyDJ+d,!TӺg"5)͂FW=RDjt͂W>lf{sdվ%Uʼ(YQ+tUE.CMakbP$X5-,Fr̽ sЏ4AaSj=U*:H¸pB$( Gc*NI]1ˠ&8S%8|<^ÛfC&SaJh4DD4kp6fF׵8^*]9ԅ,&\c5#% $@I9cŦnXcVh%#1P<>,ZcP}WCbRt2psJc0?d\{s~t_Y-Kοkt;TLk箾GxE/M{ gJ1yvIsX&HkרqDfIuqbf\:̾:vshW[Qk嵯}-fѯ|kY&5 u88%W%5GuPD5y04% "wR שD5v%Q!T +Ξ+o?Jcc_CGst"Z<d4+I36fZ*f^&Xii`B |9Łx K^0ƥֲ*/MS"yXV$AΨ*8U;^YjX)!OM7׭ToaҀ)akØWJqn[<$ԕB9 q=Я ~:X,yZզ5:t[$J (O2@l5gYjVROp_)W}C\tEOw.,,?MIl8Y=uiI 4(/ҥF8m QAͫ4#jbT ؞GTC"ǎ+=7|/oۥ_G-wO"N;4vy_Rpx ijI ļŠ놸VrH)[7ü ARFG-m򸁁 tT麎}nt92݇gW 2. A0D9CMkKPa9릤q 2y.:) <&q%%iӑȭRkFxw2i$ )w#ҏ)a đq;wC=ʖe {X"K{ݚ_4Ũ$awd!R*+ Aucb$U"%lwm`B16OjB%e-)P*QP#s Vq )D)2RX6S5B aG?"3 kBzXRЊzveX\8;Yںqo]}PUD+Vk ;EYz,/FdMq6g5YjV'[}cn޷|6^~ AH*ykx_MROhR2 '|mw\v$'T":KwWDNJXW൫m7>'`-)"1@+d͡ip"x5]Tb\ү3󶟸{EHh}w0Z_~9b'}Ǔo1OH9NBIB+ !SRl' juE"Qu8%#ՑjbM҉;a IDAT uJ-a[=@Vru5U**QU+U40ϼ5{Qd26mHE#R  ԺR{jaTfG;TvԐ>3W~x/^7k? oF~`WUz U*fd& > "cEhXU\jMA?M~6pw_p 7|fӯ//n5P*۟^87<.==:YZZbyy[< ѭ&{{;yjRjM`S =mv"_Xn& \B [D7@mAvzy$I+Y ZFzrN̝%\8#թs%n޷HorJFt713˛~r-<.'B-~R_jHJ!\ P[슻UI 9+D3~.ESzV=k+c$wA%KKM/js󵛆^{>~<^n/6H-­RkSpR+aqrGi@!ԥRxZuX)>7>u JJ%ɓנlIb\ !I2 =LJ)hMWRn.N4 9g+$㼨PоYM)h"fN:JoaL1s+z}72լf5Yl|lܽ;)}=WY΃ |tS< }N%N}sV$9fG)ڱ]KJoI[Ĕayi;eb H0Khz'6͍=s^.U3wwހ6qP4k*[c"ܝ1F}Q G4>jN'Jh1$k}#/X$N4&-=SnލꊨEC̴L SC% VBnnVVK-H IR\5\yKUfO AT+;pMYhS&p}Մ'4ʞլf5Yq˶ҭkl'4[Y/{qǁE4|FGsƵD8{46MLA̼ǎ RŤq w!ޭR<^Z9`EP XRKcvEJSkL DA F5Rf@;6zt ٭5St7san;͉萜>4""tn^(R)g5(U'PDܵNKY X%Yg ZWs̸NT- :1 73F6&IGRFNDx6"r)ɄhVլf5S\q8=9{qWrWͨIH}`oX`#fsx9ca@'Ƞ>C 9)XZ<-2KD+"1I{e#qc\k t1:FJ"f';&U6*W#ǕrPx+"FvWCw-sx5y?sbdVլfu !7#yxÞ F:铃- a¡Qw02%=W}Zyt~nFnV}?عs'sW\qwKKKü`/wo99Ȅ$Zm{1C6>3%9FНᠣˑ]=6V$tw]4Pw?7rƶyVo!gm`asLS[^1ihBșŬ;]" F+<`Ьs[{A!Ҕ(*U KuCd@_ IX1]% @H"BLJ]/t9])ns_:z׻6:~8p7Mz>~pSbܿm'݀ 98\k+:˃bpsN[=բ21yy€מ5-9e7yaS_=gu,]ng:v)&e*)xAASU52]+WEUZ|dH `Z1RIiЦzvzG~eͶɟB%~~nӟ gux_>Mr\vL99<~bddԳ*D:(:v-oXYYy_>>(G7?g_}SBsO hF؁!:BCjH@(M e5(Ŝq_b'#(OSl%\jdc<6ŻwpY;9rKWCk?·no߳Z@2F)2%4~&AS4C3 KW rurL䔦Z"!.nN‡+ }FecXLQTBPŅAzmb@C1:%jt6f>h(}B-1q2 ;G&XN&acj&IڛV QJy$8 Vjr4q0 6:\㎭ì`8Z̾0מq(ۿڳZN[ms O[;T OoARKk os7?q?2H3]\e.sQ\` ]gܗlo&ݖrן$%*ba@rjZty*/%Xfk -a<%&z/mN3Ҡ@JDEZbIZ9#3IZFzdt2ekhPQjs2VZNZxKZo)5rh/x]%mn~)1vL_#DԌ>I6GsxՊ4def=<&yl?3OGy9묳q .٢jVճ \8*/XiȿYDxp Mo-k}xy95[tDփ4"T"3#0Ff/k=}9 R+5$aiq!@ VH܌cygi,-翘 _Rٻ߸iJ-="hkC]㽨B"5]͉R( IB0q"Ӡ)GHB'I$J35xLGRj@1㈩Kt)j= !I MTSs)kM~VPhCw1:$ Q_崅lơCYsdn+NdE;Yں,J-E}2cۑV,=ZP$Iݯ< x,HQUPrc凜2?3լf,VuU?yC?sWcg>Upj\LHܜ#±X&&ݢ&-;BMH(՝Ay2pӊWB%һ-(IU9 )\.}삝3~d7z'ݻWpM}3iv8M0R7`t┦@Md"Qx!Y&L_ BCӟ X%LLr-#BF^"BRL!ܨ 6rT*k9>VC9 #ZRpnf\` ]ױڬx0>Ρ GGGYz&[疨9a s U Kx_Z甉?ubӬ!D O^U k;&1]fyw?7ߘŞ$h{q}-Ȭf5Y=KmسU\s5=}7t:7Y&=Anנ'KPHY(:M?M'!-{JY_Qhyd[ 'z%5`e0|[<#6s'r~>V ,-ogHZǤO֡ǬD`dJ)رR뱣ce'0￟__N~w\y啳Řլ6qӞ|!gv3:^8pY]=6y.E#1h.“~;!nߖt,:F[Hɟ д 0vʑХdNeÅ>ڗ#H=WASFc.RtE`S`ERҨdabEuwgl^RЇ')MkmN`0(fhK#%aGͲD_FzrEHxFJԡ)} K&hR /Q$%/VY__о9NFaQ E ]0/!Zפ n,uΜƏzdkGЏ)1I c=ܜ.w|nft¥׏}n@Bg?˗F|orno&co6Q]p\p|˙|kPI\"m Ȁu{z3>u|_ved}}5)+jVw{y\,Op~R_@wY)eF69]HG'ipaVjŮ=j/L"xHH 1[0"h:;Fz)/8^ryt_O_LNG+N[G8nu) MTIJ٧DA +}ATȩYt/ob Hs^bǨ bNJTí֞4hQ}bM @2 kRrbRhau=x=wۖw *iQkǬ=B)q= > _hz O3GQV.0̑H>&wIXsf82&%Ǽ&0sC{0˔ Wkv Ncrm!j%~{˞KmځĹ 45Y7r \49=f4":(}!DD)} $&InaF*Pk i.SQ9\Vk\UCOfAjd(cw cqi :=tyVYYYaJ{v68ΑT8Pj]c<:ʐtUnsDkˎɅ``7Pix6&QaIt#Mk&IϏ*k* PI2e(en -pGs!!o.c2"Zc]-2I ۃSo~kJ)qR8sY\\|Y[[FU⋩{r;4]q饗>!Ǭf5YjVsD/hGPӶYZ?[K)t9%v-ISw?F癟Kƽk1ݿ- eh2:ҥf+\*"U+3tWTK$և> @΃IRi4UHp.cVIB^ w)QjD-5+D&8.)lٲ<[8+MDŽH39EG=񘕣GY\\dGX st.Thឦ ĚZe ^7Zol7֩ٻ裏rUW/|5_{OXw |d}})6w)")%Fl-լ~j'J>;furI)9H IDAT~ݓ 41q mB4jvgMJjԽ*c)I7-T:F5LwT ZZ_lݲ l3t$2}6 3#x/k7s] AKQ=D#&mw)yυ ݈4PIC,Tsr 4]$2Z+@2^ŧnNfت FWjuw΁;~lm3"{zťEVVV8r g>EJ5liEPVNfE,y'":5dUꄪV kdVZ|`nnI;@]{|gqq3yrΤضm;w|FagqSnZٿ???UJCmjwO|>2,OMa8>ǝwy^?@1^7yͦm oqM>9O?=ɛJÿv-&&G MTRl_ qJ)I!ĸTD׼8]wF(U.{n|u ?{W9x8RbngL%\eD+FC *Bwm;֜ *)!ʐ4mRxK %\V me\+\A,.x])61t4z4FP"Co@2PMw UR] 0[X9&Vi`Û[W$!X+ p閗.FiRH@$S-;籂1 y|+_'mp7r5uݱ!wN;3Ɩ-[رc>ѣGaΝ<*{}k'Dv/_CW.Ի7-$?~w~gӯ6N@o~RVcu!l O6RDS*(5S~ h426 ͉`\z49 ':Ww+_<=lz=ʗx ^:fj"S&Z4tyR{4E JCKڦ Գ c!,R,ޛhp4 P̦ϧ95H52.Ĕ,9,}z61xbŶξ}pxh<iNSS?}}渆póz!xhӚXo@~L(<$rc}5j0R ^Aʔ^|Kes+LFܿ 7^`~,s"QAt WQ)ɸC o(x OPH*^+Ĩ^#RόMy nT*U…%!9(oX6EҖI3!hTT 5Ex#(RcT⎕Xa=s>::O.SV-,ۅh}? RSk5*n~t^FŨe Ke@rŭR'uS"yb݅$d˘i1uO]~~ CvΝ;뮻fwYIaV|c6݀%s}uVujHiu#8c9s'X;*: n 5b"8--%g[LB ,<}Xd07Jʑ1}iHNJO$AʃH[p5'RjDbvCD(PPZIqd0u$ " WmM%le(3qOհߍ6z m'9}jZ~4)[vJIk8t}8?4ݧrHN6 Tuգ.@B̝Dݝja0]}@hS9ѣGOz8Ymںulf976WY =[|wLke Fd߳$DJJ)1`%J 7fšjJJN-溮+]J qc-jИ Tܳmw|pufϡUVe Ch%160䆒1ŋ 9,q%R'@xWG<\ QA]"D(f!t92B$z7L$bdXHw'u1JT/[>H ( 񼙃Y꫄5r[jW*ח!҂{ZU^7K Yn0h9uΝ;8c QK҄VEx)2M Ju3c{7L8s>sA46Z'ROgOtn eBg46aƜ>s2 w3LZžՎWu<62$z;'n%l Iv[ڴFl|âi b"0#G93FӍ'57I~~uDJtRY1c1:RNdBJ*rE*PI$MMڎZ@A5lrK AUD5EMJ/94. # wxJ8q3$иLyIJI6DrڷSJ,`R&FIB/S:L& a0±p8G)ͩM SHyn:9K1{^q}l#0z@M3\ LLD6Oi%Ԭ2|pȠxi>]Nϳ?E40?ӟ4\yO}v|#d0utd}3 躎Es[o}Bɿ6^{-vۦl߾|_u~~~fxO֦n4/k׮M?ꪫg> Qy}*6L+N[G#3mŸL^8]/:+Cnܳ>Lc;|,_tlހ[w[o啯|a/x صk'Z{& ^v te>p,j:IGG)1LxHܝm۶=)R |;<̧syy n6c9TpϷz_ffŦ_qU.ڱ+e14{p˜w{s#yրu>~mSɽb߿' vz?9ЙS6fFhed8X-$OmbK(V3zT"ΣWs҃YqݏU  _Ug9(g,f1Y{IgvLvd_̸8$gh"FtX& @<+ j $J X.{ P?7F#(,1L,)FA䲮M Yˆ0FOE 9; Zäz jX6WՇBv T'yKUW.$cZA$bMAڦa:D9 2uވapEQ?ZU??F;wf[rbskƛc+wccuuh9} 8i1FԔKO\567@Z]3źDl+V HPP7⠴YA g7D<1<}Vgnس,k\Ƞ|/B C{1/I/Ç9vW]u_=o^qQ F:s `e GD!j"x ?_AL-'ɖОN&!&Tϐe^ L)ؒvB&߈%C $4DRW]*VՏ%8v&QiDmKϳVP )Jk*qty@Z2MtTKmVxC#CQ$Y(#kG3L;)[B!윝93?7l7Wl$4M`H)377"+++. vUì8OF*?'WG_-,yE{/}KgOħ~g0Ybj;03ӟ4"oxx_1}+ڞo_)~㌲N,(q+sao W2:uɯxj?^J*U赃MےЙa&lA,BQm1B9H Z7c{O.+NJK[mn̸S0obR,QT:VRܩfe;W .K&W[3CJ!w}`V?9`,*nԞ*l|kh q%"[ަm[Whjm[b `-;DB#B;hayx;9K(PD4輺TJgѪ2F-ad V˕cnynrZ,)$orcAxл ZVhZ1j+*"DDQCM"tC 4FˇzmQDY^^H 27G#x8BJG-g7GRt![Drv֠hR tbNfTQ(K#Lxlt\~~Y]veoݭH~)6GgOO򲗽@Ç馛_Υ^z᛾/>yG>w>>1WUy}Nwug+$Coev>` fNWA4x5Yʤ'A+n VtR9B{FҼk Рu-u D-5`RB0'40%&CRRqY0RT0΅ΠF]G(-ۆAP85"+tLZ,y5%B.`D!Z!Q ˉ.Mt!/P+6W!9Mh qD*GkCc07Y^^DDJl88N, ќ FVDȰ ץP"='ZX5ѻ_znnpeoVݿw\r%Jʮu݁~R8s o}[i`0`~~É'I^qr=?#;9gbsss߅b#n3",!̄M|?W^y>6!įTY_hvQz|׹o_Ģ.j%LnUP+k=քȹ6ʹ0 nBWB\"hh(ap%ިlr|)GFC (QJ0'V T i%H,Bs88Ѽ=OJ'Л;|O"=.O;;X]]<0sYnkj,oڤ  C||?S?3?OOE+}f'l_и($TWm3WR Bd*`fP}0čvkSmh))qX٩T>B L4n|snэ 0RJ!D"!FgrMϐ,h(rMo] VEF9OH1LE*]+5 nVu`!oR/ۘ[v cb! !5MH)O*Vɪ BJ%;7YUBcIRHi#0PL麌ťiiP% %4KiO UXV oV+hɁ{"+0 v)b9,T '2Y3qBnnr,.0p.־(࣏ロmOLIKm抅n f'm_ ?y<\!Rεm*t bլH q&d仌/ V];@ IDATWr5 DQUyLhF<ѿGᅰhF~lZՇ'\Y+x ժ9ݹ)9WR!*Q$4sG;()UI=PfǏ^.\`(˗\N2z˕F8A]3.Q2i&^ !v%V2=bZD]JĨ.rD2^) 0Ѝ[c 9TQNh@A:*5h)\ĵV'x&wҮBv^,f1Y c ""yoEK9o|xΡ-0M} >d+UJ|oJ]YMgK5īDW `0<,%y$hjKH2%R芷-QBRfacX[yXidLgc뱹jY_A-A%xd'+5d.BmcE'${-yYɘyEtf^¥ve6ucZ[ἥ+679L&bB` Å%^lB;$rnB%j'hp|QЖ\ i .!Kςb. c}` S˅8zTѓ<'zXurf-,f1 z׻F_1.}k9~9X\8 ch wΡoN|>_x;g?{ԩS-o9w//y[ + oxÁ@5Yn G5#r {l\=UʸŸfid'#0fx3㮻:G%[y衇.R Flqo "uռ(ݎ;:# K؎ T'LZ̊9!][ěI]UMz|5 ō~Omm]9ez! V1~)r-GOpEj"dUbP9v-orQif3'[)\4 Qr&hLɉ#ҹ2Vq*I %% >18d}kxh&h+V\L%0 h,ZFBDPbTǂh$˵Dhj$NlI+zַ~J,.NdaҢr77ϖ9sp1~~u]u]wUzLmC)%|O|\y;|~Ex-vG{F@_ "s_9sT,7q>hD *t9S(`h7^ FF:!ۊWJۨhni)L)\:VڎwcbZN;:o"g'.<>qۮOddǓ xŎXrYPAKAHUM+KGI iXzlM5CENH CRb0a1oou(4!H.oCHWfĦK"LB#<1^\ַMd,fqaʘSMY[[@ Xn;4>󠂰E!'+nlr%bM[Ɔ;D5OCh@xL׍)%iHwYxe@T"1BQ 8$m¥VŌLDW.bUxUb^Y ^̈1|.2後Pc3sxs1]5Ju"lՏ@ʏ߳i%%4XUWEWafsP YqBw, [/0fI&C R=G̪IN̔tb[Cl^Q+@ CO@";;Yb,zLG/O}(u>8tfZ,ءM;1jPIՔɫ䩃3#AV4LB-9F;!ĝ֣FNv9Y jXW+Rcؑl-+/U[ ^34MwǓ fȩLIbNr`ۢ1BoW!ƸpW2Fr.].JHPrJFɹG-;2"g!(I3) :߭4hD !Q}ʌd 1.dF0U,8V\Yzɹd5,f1YO}~闦n1w/37zkF)SʘoаWQrrh Jm<Op26r_s}"noϥTdx bT#';x XrakcӧN̙ӧX[;Y7X[[%/y1]q ;&D?h{ a=3]++9r2.9uSX[[cu,kkk?z㷰"Uڶo"ѶsՓEx6 ֞3h #-R1RK܀PMZ,Kwрye#m T"`\z! jXJҕBA4qx s|ճW) ֐%bڲxVE >;EӴ^޻ʩ{f0w~zm~s=S_}W~~}{9=}ʯoYor S_O=S:n)=>ӟS''S_OݾŇ>/8N~[ox)]w]wy[؞wSw]omwλ޵j[[S__}^{&{O|O[]][nyJh4ڗ߳<| a~n>&OЇ>S/>/(7؟SSµr9ypL|w|1|w}׾ۿ[eqo|~/gϞ=g>J.&d"ϷOL=K>)\Lq}C ٜ c)yV"sۿOo|]ۿq_uD[^ײ0/9ǎMw[9ۏأ̳n3,sùg#|"xѩ,--MǎW6^m E!FY8W]$ *`q1[#0J^ 0?9x EN ]NmJS Sq"f[cwi/1U(lm5R 1(AGP6mnPXYYs%&gϞuqʙ=0RUFlmmq*9(WV8jmm yRJFIdscu̔#08|Gy.PHV2:0ꄱ9%6G0 x˔S\H΂q+伌q ltܙrbsIDJ \vCԖش/j),.g]y`"m۞ڱc8~9ۛaqq`X^^fyyy=z틋߽~=ۧmۧzb:tÇO=G{홼{=kuggд}7wzw}w-,,45^~*̡'1 4T.[s^s Oo d}m}Bӧ.Tmoo6~uuW4AcKA*>]0"9qgC"4_p5 *;R8Xې ~+ +[zqQ֨R K%9 {O1(')R9%icB1B`4:G`0ueu#By3Ɠ/RJGYIU7a٣'& V='A\A91ڤ Mp%'nfS<5,_\sQ9hXVsDԀh@.d/Nf4Mdl6F9љIIڂeTVy Gm_ł=u#80NKe>;kAU:J=iU9_;9v8q1o+yGk7pz#ȍϾtVj,f1YT~~1]l jq?2F#~G􋦂c?c/ڣ[-(AZ x ^||}s|f__4V@v0÷<>y׻ rP ƒ>x^ԃ{?| x+ke8߫_,, lO},̯MK: ص^}/57 |x~^|ԩS =y 0Iy1rN4M|+w)W8,6nPXJquZ Xr#`#$KB4nPW' DW*VZWGvW/v h;;m[apG(S|1ihbSI➌w]h@J|1>{7S >GE%=ަk8tg:憗pJFY Mx)s研z}(Ay>:ĩ4nh$]1p:m|K^˿"#(k[D8qǹli&w4zUUo#gc\F dQ _gRQo??spر>z?~g87rW-n+y{޾E+x+^1UUQ^b~/j\@pMP4X}3cccc*8odj$¥g9UrDT\nU\ |^aHy\X(e`}aW1!2.d'Mg :<"XI(%#u'vVe%n'NDoY}Q&ݞ IDATҰ_LI HVP"(td#(iDm#rxn7YXnPb:( Q2HGìoH 0Pl|#d2q41jLcc3gBh~q؋'gĠU׬d5$8 ,f1 Vܳ:'c~'~7M_q1Ʃ$ܱ2?xz!_c`xJh|aBB/=["umr( 5$%=V BD80X^AΈ(P$WB@*t@*@TEհ\hH.FNvIv+W{RةRݝ(VBqc 4!j W. BN\\i43#D%ֶ8DZ5S43 HQ%FvfD!(lKR{G A!ZP"ww/g6FH1"o;zF>+n `U %41ԲU D'tA!6#b,N w͉$G2c0d1Oʙ7 |3sE?4$+pQЙw3yUs>5s妔:O[9R56'@\&7ORQ U 8DT^[̊U^Ue\ q&V´hqdVn({ڬqB$uU m7b{=Y)bT̈_"U z}vmՂ82!(f%0NF&rP\YK<1\P(*A?ƽA$11[0.PGmc&9ĈJ$ yV>\ ,6v'H7+b,nu6ZZN/aHտ9yξՏqV<;?/%tgw]ŕPr &zZa56N܂`ږ(q}@6|௅/8d~y~>9힪 ;obof,--?M!ỿ|%/yɅ݀jҡ`@2H޳'^E}+:i;%gA*wϐqJ;WR4A.)ND*չ) m\&}RcnU'{L$^Q{]ccTWIRJ."B&!?doT}'WJ $39{e) knUWke᫾:^++DvoaTB.#d.EVMT(կ jNz xRd$ ^u5)N=(1(tCUxd7 (V _"4mE +ϐF2j"<:0rvWJ!nR)Z8RHّQڪDe%;gȉ|S;yz>v+]qth}+h,3 dPRBlȖxSu3x}aMTɾd @/"p ~ a ^撹&MM͌e~g__C[[[lzs˿(g|) |HiĬB /}K:y:gNUQm[ F=J0!NxdeHwES!4H# 2M\ 2)uNbWD,{u2Bu? `٫ rwdi. fj=LQ:۶v]愓Ojn}MZ v?xRˤ¤ǹY9uuh ƅd楡)JY!J:L&L E(BʨdFZ]%c!L0.Jʩֹ[[l?)2GP ^u1ַyt{3#Y R1:'+JlXqU~Ȅpi3,f1Yʈ>!^wa|{{7M|}'?<>caanWU]fvmMňxn8R9 mܷ-N'm&_jkdL ABFwcPWQ?+z[Tw zy) 3SwjGzq⦮Aݼq n@ a4+z%UKUDGzf IUL ж WfɾT̫5Mc)WMcUm`xRb41co=eW]M#s"%LD_pp֘*P7n۵VDgOYimU[ksn{4B2J就v4іptGnG-n%I4@FB7{{y3뽒Q%ʻ*2;{?k]ZדV̇8ŷ<Ů>#gΜ~xy'?I>ļ[9s [I)ņ jӋ[kRÎ} izS # 4b)&&4I.nXq6Bp0e&m|D&Qi0V.J"]%-Ɠcf34AFF㘚؜CXMF_'KʕR ]HLd)_X& 0.bzbc֑Z eqi#'o 躍XmURZ.OH+C1ǜDaB0Ċ =sxsftl5ms7$!֡id# tu : kb>Th0bJ{\'wamuk]z2Kwg|Slc#9y??!Mwgÿ/>{y?xI}<#k yAoN>}]'q"}f(grԒb6b> fDvEjp~V;NI-Z,JքVkjBQ@I)~5ƬSff}7qw?̃<.r`z'N$>3Nj0.NKkŅdAI JI() a>$ٖRC- T=#=|HX~ݠC +} *E&& Hd qsIN&PㆻKI m,-j>{ ! L҉*ӬYh,\HG$43)Cb+KDP)X (>p-> $4 nҜݝ.+ix{amj;}\ H7 MMozӱ_o;_kx+qJd=`0?u_s^|rF'9\%$<]5ɮ{?ҳ3nr  [n9|~U,~BG{r7$!Rm5t!?O }-PBHT1F3\:$  IDz-GU%K:b)bʒ>a$l| 6K:HsÜ(X`c531zyO@%S\ec VT?2 P(V e5S5_Sġ԰-nH'&FT6 hQ22SժDr<r#Sr{!r@Kx>y 6}ꀹGcB{ +륺6P j֥Ho@$"L+xۭ*g)7j[1F3, CS䎺h7A1s!¶憕RM~";2 h$pC21B d5mV-}q\#V)-a 鐻gK.p/eq>g\,!,K ]G5B2*+ӎ-0 d0%Ș  ɦi|c?.^x`X} /_SԱ_~~AY'eWz4#Of[S<.eGGPz[ qgfo;9sPbF-6}H9l^s^ JT(H7ҀNSA=Rwsı8$XM9rM:*RQ3NXXnJZ;oNR/$Ghq@ǀU bN@+a%Q\b* fiZ9U,Cn&3FI,J"R"~zF:>q;>=\]|qqqⅮ Sv[tmD1#j{kPbb1&9(MT.$ =wJ )瘰I4XeUlFΙ^[[[~Tn 9g:t]wh֍7޸Ff_ʊc%GʣPZ?6 E55t f}G{J)L&Rv5XjPlrs2KU$5+ B- oԪvfNgo)W. |m/ͧ{x9yRb^D##CI bUñ:X,G)p94 008 `)]Z6 78Űm4TEhs^*GpAr<B:\|uTAyg7N1l>S6p,J*$E4pLֺj'L1(bFԨYFq~gϮ/x gҗt Fxы^n׍7x+89s@1cP S;=pSk_ OK׾-kY IBi$5f%5Rd46f|եbiX &b$dsWя|7}˸%6Ϟ]~CӌC )DҦ=U~B8lû* =t jzLO?V@=#HW״ IDAT YN:C7nm KV 0Zx&Dݽv/?pAp #xm}?O)|:2bgnf\<c$qⒺ\ϊJ- AȪ0JI/GAjUǵǺֵuk]Z_^ODC5g [Dɪ6 ,,С"tN;ui5kfHA&̱ZhDzk@{j1]In^yIS+|?h:uVC%LK Yujb1B{Ʋ TDJX qZ4a.wKz\5c|KI R߳MBfhЄ{! sQSH'NFu ḕICGjAs{6O{s`+&Ls`uk]Z׺e}%!#swn \Xa{oO6?%d2.7-CcZ(DCRݚ[ZZH/"[7#ൽ)t?$B/^:wqn;vC/Az2?Z%@TkK)˜ H$@kтV`&3fQ!%;̬M.bjCBBqFTαqA(.|X%[_#pPwg+Wds MlvCJ5jIAf\:>,(df[wTo2ެsJnRqQ'{FU/꺯JmZuk]Z׺g}?]Xuhc .MONUHJXŶVu(A]šM,BiG@ X-\,4E#Q(^ mTjB}{|-1 [^+^nǜVMJ_XXд"!`iD\mrq£T)pz$u3 j8Nm{cdhNi H)\`Vұ78)o@N]N fr<+c80t??ŻQ/&9o}LG~K.ð`lֺ~lsd0=]Ja0](2bۨ*:&|%<91&C1*9mzdyyxz^:`]W8OzA/$aB\c2mxSsx xSuhu.GR3BxrI$ NCЂ6'i9,hUɩy[x ʹsrE]]{WٹGx<ðO`eal,b(1%3rJdq'eD( cWMIW}C|?X~~X˗_c,{q~>O|دOO5P*_~z7yG E[.uek]6.r?7x.=U/ F;zнݭi UFKJjNXBTXJ v9ܨ2 nKQN \q~]ȫ_rn/<9~⡇vȒEy!7ph6QcU1ѰV5F:ZjXu \ =-h{Ar&u )MLޱ_ XM 57>I׷^xyb}'79C-.^`H,m݃(Ta>ߥԑ'N7:) {y SH5_IeA@K,cZVQ|ؕկ~z[ o58y$??q>kk'g~g?W@Y 3>}_ǁ{LjpX1x0x+__yϵ ]6vAoӄFǓE]bxHGK T&0hdVzc,J]\^7չ|lLI^D98nbGcѝʵ2CV)Y+ȡn6inN q^bQH5CdF#q2#6yq6{E|3gt9 ex"tFW0GS•+Y?c>L8 T3bT9fiD2;aPWu#[ֵuk]OFgk0oh]Yɡ8>ޯRVR)8VÒWT1DF`8cXTq :4a?Ĝ#o}vO~8Y37,e9.\Σ"ߧ_^ '<ڮ"5[OthDqspKޜEv*/v+NIk5L dl.csHGft67tbdlonpeami%`X0ExHpWX ۳(!ka<<ФWk3úֵuk]:\r !ԁQk scx7~VTkZK j B 1Y~4chGڐ}W2e\rG0 +^jQ:DGǫַV] llUwpҴr·ѧ 0YB+ڀUckk:^l"QdijR0Qj7Mθ(+$c(y֑ScwganԖ!mM92Eu:ȚqFrZPW`v`{w$ +KPe4B1 [f$-7ٜўzZ׺ֵugO) jiػDH܄DJʭq,$f sCDLub 5fH' ;)% oAHJPMl.mU2|Yp59ߝ-kj >V!cu(+DǬ͆8!iil(VkNj#91bnFõB Ӏq hʜ8YF7cow70YW]Y\c@Jւ%bhMPuZL°MdڱfT>\eֵu*XA%xfj}닪(xܭoKbJki U29[Өx܊0%t Xō2e} *"{`Qo–V"^Iv|pSh${|+^«W!i Ѻd fJ&RMâ&𱚲}tLBkVphzI獶uD׉G(Zay,xKtt݌2 =ISht" c ߸^)>+ hG 'CET8u'WUZ)em.j{?=2>qlvq,T9}9$6j_f-A۬~QgM;t{^~w؟P~~|3z .^? wuoy[:|c77:_ c5oؿb?;cEoo*x z hC 6:D.C d.MN1fl6]f\*}#7ڜ2xKA/ޯ#ec^5_ɭ/}9#DOlbZ %O"S UIǪ(;֪t롴麫Wl6i)&Sv8t9DV&R5hnT=4#SΝY?o4 72ί0=RgqnA9bJK[䜗ɨ ]?c lk/>H7)Ȭߠh**mG9.ëZmXT.Xݯ{ȏ58}4cz+z_W??k`$>a9c;1ỿ|)рXsFm'@V:Jw(U1< ),yBe> `JOb$XQ2(qU`{sg.}owweW~}EMBLF4~09/M 6ګ!$k厉!1j&zzAj)X!JE`mSj@e(;$Uj1;@}N [;^yV0Z N3Ŝnk([B51 0O8VJ# h MODpdhӀZuk]뺾ҵ NAnn$wZ[Oxr]ʗ( CR.soa0wT$SG9Z9uk`$=՜Z sC%#f+[Џ1>ه{[6Ow;{*ۑ&n1s"'K _Ђ0DS.--VN C!"-k%Cp]$@*h"24X̃dѦ)Ar+ Dy ݅S-Nlm*X=kMm vR3XV"ArjKk'T:kJ-0k]Z׺usQXzYzJT#_PFI9hUR#y "T1jPnF5=0^AUbx`PpjVJ5;uDY5񧟾KFj3zMN>"xѝl1𣔪 ZWsºV.*Xi2%"e$$ -=0oflFYyE mAg=[' 'lQMSKBX)՘(X&ktu1K :jZXqD<7ȳ Bҋbl̪ITfej#0WJuRA1sW1LYo^k]Z׺+?$G%L5j ox[%:8Au}| sU&¼;Q.4*dO VCﰨ`*SF]~#bM"pkNP*!^Cb:@J-/b\Xpz3e_,M_=FTBMSP=)G LLՑqej5Y}y>Ҋ̖ͱ/ݱRN<ĉ\8,EstGY h^sRi3H3''j@SnJjɄ{LEV8Zx (Y(ޤMۓ͓IANXm=bֲ@Z7V|ȍid]Z׺9t<{sUNt9Lv(J+cB*,Lrq% Ks,jƞFD1p'"ZH] mM?Ѯ@jq P}`rGʊ3 =&),w bqygoy~%{V9y%\;@+"Qqv}G?cxg?c.]o~?n~دwدuSE6̆w 88U^xÜryC|s.qv+\Gzg!^ >femN_Oҋ~_}~?mvwrŖ%-M&@5v5,BJ$Oh ɕ.ݛ̃ZԉՑRcWP)gBkH'mEv/#2,^$'YsFS#j 恬NMVm&0 >Vo"hZRԄ sd%猨2,x0X"/E4t%ڀGRZAn"Dm&io"b1| w=eZ~y_տL髚qs\GIA5!KETJIN酡֖6hq˼kkvdr^2~zcNMozӱ_w:vms?s~ 5Oh_{.Lbjn <{{`^KCo dc;G^_B׸!˓:y}}:O&~~뭔;Dap (&X<;T`,Kˮntj衦rB`[ĵc5 q%OvnZ#ȉISBa1S|j%gSn1GXI1U1Qw531ܤZ];f[v/2l Av8ub /f/f|KPjlnː[H: 0,-5^dU FrG6 ="!`%纮uk]Zuԓ >*G^})NIfT15LbdHQǁCQ\:b͛M-U*^j&#rY:^8}RS 4h}7H))hKf,躠+4D`){.%jհ/)N1;q{`X]u3lmXlm/3\{{R@,. "~).YX,T Sgu4CQSEa3n@hB2M1=uȺֵu/ g K9nE{gO_n[ZS@5M.nNݒѻЁG+"2gS2z{ lSpfZ0ir憙 IPb5ZHIa+4P!;v(b՟t$IxH}u2]wzi7<(VѤ-qaʕ("w%#h |\ﳽIN@h =l ሇ#7ȕs,w躓 p}ZQUM7F| .9z IDAT,RV$kNnf9Q$VD긦#!,И}3.ֵuk]ULg]oڥ'Px1]567WOܡ"rb|yK@;eIrS0ǫSy[hh7D*\חuk]Z׺p^7 ˁʫ{7'4/ts=w}1 dcc[nŜ={gϲɓ'8.\{Oqn==nVMK @^ONM1>T2V 0XbJֳ;^ɾ6vS(5"^%zZ5% PDv@YX6=B*3{O7pOzUקqmzCz d]483Ka 5GB̖^{>`y厭Sg x8L )w3c,PZ6=}#]GhOtS4zTpOFumt:swa,i7?k7a]Uzձ>iqvm/>kp%?w͇>!~X'> Ν;^c?S??XR:>!CU^v._fɾhu"wɇ?an}Qy/.>.^x㍜9s/盾H)1H~oWGs7 O oI 𯀷xnKz]Ι2WT34gHiY6*`5%e*&mIQ. qѿ*N[Fȷ~뷮,7 ~ N:u _c__>1.X>[.r0"ox8wΝӟ4~{{NN8z7~7VxM[7>n]OjmґHAOnF^  [[X1愨]02HYD!Pm4,K*CaL j>. 齄:gF*]RlINjѝ{LGT8.V4M2XqѪ`iJB5S,9UM"xcDu\Y4$䌛d`%t"UȶEW&9]2D: }::YZ;|iz UpE=c>.SIXZFWb^fSl8KJ[ .g\DOP+F>F}!kˋ+ @x&@I[$V"Q !"\׺ֵu]_=1 ~s.c3#|>_>wqwq}ky^,WF{<"~$%BvU!Ѿ_DHSY9Z^&%ș5lq->lRL FZv JHah.3 ihdᘤa.8wA>hYԇ)&e\N&mwv9i@!/Lۀ]NZ +\V۴#4K$NbAPȩ@TG J1R:Iߟ"y1$B"2.AjhB┼ΥK^ Itt@SF$nC;4uMll#fMްzu+fWH*V"4q$g,N)tŏ Jxduk]ZSY̒s-ic#??ϝw_~LJ?a^?={vzO(<{k௿<F. Eǚ? _>xpxOVoiS'Y$tOf\"X-(AyS _p W1!޻IvUg>YU]PK-$$ F C׏`Ōf̘s;{:%p`aLFd $, iFOWUf׺}UZE(Ȭo}w";O~,;N~XnjRYYx2&Sc'd98ކNgIg- M `B3fsZL0}HB' u3kGrd@5yk^v-&㹧cBa/敯|%\r | 5׿k^tzLgOsؖ*oVOOx瓁-*WQ'5 R+UJNG:sE5c>!K/=P aaZ{ju66b^[ƣxEtМ$D=(UqSiba8s]f#FTCRK=B͚Ώ!Yh6x`jk #wJ_`aiﶓuԘ n"i&y<`o$\j$)ݶv.,k +˘{BXK#F;Y\Ҷ,,vhZ*QD"D:J1>T+s!2L1]H!ģ|xL߰s2yk^7+H}91h 7{.Ї>E^W#?#G;ϸ~D_!$/:7pƱnhc=lpܩ!+eHj3GR+5 $$;&y,kP h"yUo;LFRZzx$ yC=V}ߓG^Du fw , t[cT ~Jif{hY$ AZs-BXϒi~*ۖNgǮ:&#3*ڒ' rZ`b#5'䜘XkfRA{cJ 4Phh)ST@*b7!i4{,,ON0)elڣ 5MѰxߴ5yk^:218=:ؕr=zq]>/{x_|T4lm‡S>i}|vh g3Wߍ眬yRk`zssA?+9u 6]-;M,9Gzw59d:NqRKfeݛ5jgOF]NMInEJ9D_N A1}bEKXRh0>̧M t y.Ёu"b5{i@L5B-zի(gtVrݣ~Mac8o}[cZ+·>!>uݦ+0޵zLy\\}c} D8Y;gHFp8戵zYF󩲖=?xEQ+XwjoJWTrc]$M$.)"FB R k(m`ibLMT3~GzޮWR֧]/Ya|xfF)ȌZu!.D@n:iBi쏻c^1m+ܿ~ ޻" 3V<SU(J0>fi (})"ΝYZ%/]t9g>QWC=f ./QjΑ+K@/=+2[k^׼rq'f{w&xǦԺKy[޲ }βN:}sPwu F"\pHa;Wx;s\ sCӺ@ Rօh tbt)@F`tDpETO딮 ]+1dM$ޥH[`+ꤼ 3Bmҝa}=u`#҇2Ʀ22L x~2^YˑLh?ݿkE b♷aCӠQ@dSSO>Lp6;KYTOXH!%p {bh[铇 ʳJ7^8acgo~ti4-O]FG#oYZ\ sAK~{QVK׿vs.k_چ솷_qz?s?7ivܹ^=;<ޘ_ o?mݶ}/7(_q?+k_]tц%/xCk'7D^7t}K7XN@w}/}K7sW]uq޽{ٻwq=檫sq{㕯|冷cmxk^󚍿Dyް};1:}u~я~n~u>|;>KjMo{{>浯o~ڛ]ćZ;y%(n]ʓY'?z>_~3w]GmA|߸~[޲{6 Fx;߹[7/2{;ٟ_~96 1o ;n|~Qx=M??׿^|"&b$+y{Q+o|%ݰgg~q|Cu~dGN<;v3&?MOa~~#L_e6>ud#mKD)fM,hɴppe¾;rxe+;;;jk)e;Dzz ,:jwz7sRNN2LnnLUF`߭|ORmჇrØSc4Dtpdҵ+V~Snq-rXh !J|6vu '2^x%n'{ر!<̓neyQ"9F$Mw#|Hf Md@j:\ FK V$kޚ*>v1pPI$Fme j4UWz 0b!wVb5+w#gWVp`&cuuh4Z7IŽzihB`pcT!dp's'EGd$P=ښA]kAFIbtI(V̡U.;3.-.@lbR~?>9n Yg>!{ +)e Se3Rk%7C#>fe}:c2yk^=Srtu]ǻ.[;;oÄSN>`_ !. hQ+JA"QW 0A"Z#c 'l`=k0/*!:L7Rc2P툇ElXP(q{|/I, 54 rv܅.D`Rx #'Ӟ,foRPj%4" Eb@7Z$A%EB" a񁰐3FKXmApQ+y=8QHZjHIY̋L0sC|yޏg>Гy9\%!pdL9]x#~2@y58a1!׼5 >1'/v49soj.`n˿L&G:}+n Zݏ)=*:9 ՝W@SX"&HT|˞,RRS-tU(`J5׌{e:]kduA>aƫ &Q&QLBfuZV BA0v/k#8tt*}1/L.r[hA ^Ag: yD%J1&![UG)#>VA&eta*? ,ӳVRnePW8WNi>\_&jm'?Ʌ^\Oo~[z wLRַ6#J/}iSKݭTDz*T~޽{[Me]v̦{\|ś޿+'.?7xID_/~[z[Dx!8&կ~n1 bbh.-n8 L(}@؀1^e% !!v\f.!gF+%M` 9n#ңO%vѭs2c/FB0Uj~ (iUj5dZ hE3Ibk_*ϙ $@j9ćsU(=:|(FRFgpΒتXvӥ&FpU,6FDFVE,Cx_P^/;7SI-Ftq%lx05g}1w/x.I:.O޸f<~j,|_Kc-.*:n5lRkm=a v.3Tr19i%B fn^ܘpG*'btDBxle .t#VV2n=Yct) u $ p.CDrGF$HhSh9#ȚI9R,H]FC<2cZ0 R0@6gE bCFR%zumLV1pw|ҫ9y?x|3§?}9a|a*-ᔓNc2 ηELm[nno1+͉,*Թd^׼uwom75N|_~7ݬjVVV6x h T7+.߅ɛ.9@%z"ca\ gaZ@%Jl ܮhc?K^0fd BbfW vq"cZpzJd80dRȋ)ӟȾ'$åA%]TsXrIdoܑ4#D3YULLhAJ&,*hMnB/t#*ZKcb=ti.`w*kFJuLMV%ˬzQj!wF|WqƞS+oDd*<̧?Yzƽr+X>Y3K"HV҄>m#ڜ5yk^䥲aӜsf޽&oG>¯%Fw`bH"y=+^Lj~Ӏvl{{˲qڒ!=\=\-w.ڮu82l+G'?IT7./󕫾P ISNL-.T(UK8bg'`lؔȐ׼5yz`[ ݯF' >7Ꜽs*Oy G ,ޱW~Mִj9qoZNV>Xܔ%ԢTo]Ϛ b1D!7IRB ӾZ+%/RdZ%ʪO+LTn}2kͻO'R2A'F4v3dԾb5k>ƛUa:3ü`-; Ѱ4R f܅dz7. 6:D"$j8r"N.ZxMLƅDn0_ni/PƉ=yf'h.ʥسfZJ&Tc&LJ)Sj c< !ڨXt=bsι ּ5y{, }}+++\wuZWkfCc*ќ:7|@lowonh?"ƽ`z_}T} J<Ħve7>9_xh#*^kIj 4"/b TSp{X&w4g*aDPa6 )+Uz/z*W&"h8)\Ø֞J`nFĀōVz3WFeTUfC4012…,>Ȅ4RV?ˣ }sSiU][!7 Y-sW jJ:_Z]'`)n-?nF>ou+Uo| ;rT}k[f-. /O6MWkw8xrc[ qmZGtX$a7q{e}Z#Ibn'C8\¥`@#R*LQؙh~#g75SKmZA32`4X-@ ,Dv;_ $CSm7#iZ$&-Ps›&HH A=F&v39V%q 4@SGcDN_khPE- ˪5H@R):.3}jAZkIT#}P@dL42QN<0M,L;D~duJ^XFsZ˙qtrA>}~8/A$ 293߮oZjyy[\8S8s:b;Xt-!Fƨ Ld a9t)\f{1VkEUƫB=. YXmI14X9[gmǘP 䮅H:1@ w }I2EO(e/R v>S>gN}F ۷"kf:1f1g`1^QZ1g.A׼5yO9l rСc6[VWWY]]}@V4|~ĸlѿt$=kmd:$i5c_$ܨ:ṁEggܯEHƜI#cxrL@4wBM"5]ֿ0#ⰊWV&"U $JKwةW1 :RsXAtK,+fI).S#RMt(^ ^gt4+Ck˙iHθcVW %;Nj 'D1ަ'K%wjW3* ->GyUzF2bTG^b$=1عX]QV| KpF% D+YG@Ef[}m&$K\>yk^:>sT6m:4=YYYapn<eQ'?!b?uEdx{Ol~tZ}))IRK(1A`rdh+xP;a57F5,iLKKGlpu5 5}Q  5DK@$IXFT5\#iV0e REaW6f"%U@CUrĨh X_hfLdeƷAafMa}*fZbm< %oZZA*Ҕ,v=rm0m014F~1g?{™d9?yb^cdO@&ƶAnuH؏!"pzk^׼ 6Ç˿keek >et^Al p{ Ơ, }cy7e@FmqWF * @F)V9YáF#/*nhuf}ke .MQ 0{I0w#\=B%4E%5W/!e!kwCT)«=&UD0J)gMMJjHՄ[X БU4Q\-=5kpƯ=VLjY$z4%͝#{Tpϔ}\z uEWןO}+|.))9;_u <n}>M7Ǝt 9ciȋ7Ըs}g׻n-~;p5pymu-/}K:K/i2X wꫯ>.gt}K]|u@o{| x; |*PS=?>g!8&rUW-$u3"SpkBZn7 `[?]:ߥM$)G IDATxˣ.:]xEZQ,vHφ#xK0,+ ѥpJ3@4a>E5JbXtA 0c!])2V`R+{S<1^Zq6pzESd7s(}hR`dukcpA0rDz+Zrx`/#PkR+rNq][75 dqs@Kt9k댃w@]svs픒ٶ蘐Ia*c\;xnX͂xWj˯'-gugu֖_g>//4[>6Mc̀qA9\'B,L;֊>ɺ]hcWsx*3h=A~ɸ;]w3 =RQR ٨KυcSKE'w".>*Y 0*k =\~Z"xpNs%Q G]z!=RZpHW]J0`qо FTYj4VJdBX Z4M{$ &X7oOVP+IE5(f `JDFcj #ﳍ%bڱ wㅩU|QLPiecu?<GnSOT5>Fk;=,s}zD2yk^ڈF=Vn@0 >7?Śch*Gwg?Ywۛ7[\ ||?,q`5#[`$ʤ'41mژTjQXH!!{B"V+KUT3NE=ƒI(Z$$uh#TN0rpc%g/=}d&f Lq "`ƔĘj9,,x{H'eF*+(U{Tv{j9t1G[a$KuFmc 4< Ń.H1ꊧRXZ1IuTYfy╤\ XtO?SY{~ǞƵƵ7*.,#MGduDn8Y8 c6:7yk^]nm󜨮9o1]vm X<2rBPuΙЈڀ>x~.){DG1))@ 5r.Ĝn$LkYs-j ʐUA,o fjKRO2G#39tq_)TeD7h]S4g2YfZ2?Ր2:F#Òx%w ]n&("䜎N:Q5yk^wqRA.03r#VOR`Jo> 5ÈuMMzB;Jh>ۥYvC8()iְ:j-b%27Qj pR ċ +_ $g6(gţ'"47/aP`^)`H)*{FDmk!RmIupm@.CXcj͵##%c"!wx5Eica-P}vqaB}L'PV'c. I#F ;XX8m?m˘+YBSځ ZEPFΏ)$hNmCƆ6Z3nj`Vwh\Jˆruic666X[[;03?3kkk]ݺ:U?S?u~G?,'@#"t_;mX#uJIKY1$)p( >UDbam"h!8b4x-pO13\SܘHd\j?t}xPA'ػ:p͍f5D@e(b_SP̴Q\5PyQpq$)-)l^3 UB_SK  kWJ7$:`p/s,DeN~ұFuiOB2 H7R^P=}j׳qDFMnHLH%ZF+$),$GYkӋH?k@z<ꦛnZ ԁݭ:Ɵ_ W]u|+:<990G.7x3Ϙ5Yc&vg癧GbWj]ʲO,)C3ɓeRvm|FzRPȾPb65qit#O@b(-\|iSt$yrJݫVƕ4ce Ѧ,4}Lh5b]q'dfaD^MT)qx$y)6oH-ip-)tBjЫ\ZdO6 V#T2|ZNt<|@h?g‰'?yU6.N͠0ō.)=KcOm *x]zQԠ>nP j&J0A YJ hU^ b, /}$$FG!,z$EHꁘV cR *5b!45*Xt9S=,y-t:D4bwYJҴ7JB)2N@ݽi_Nt5IvL|`60(9Lsmۧ)C7z &J"ӲfTf3u4,׺Qh/mKTZjhaV"UjUZyI4=KQDxg>B=g0N)<؉sn5067'ˁ{9!n'Vj9W$) ŒޓTY,*[~E3H[ vL)/XfKhJH5:b|^R,„iV7/AR&i˙/O%"ǭU&\5$_$YJ 9\4m' 8D3{TB e4ef 65AF TK2p (k+Nw l gosb:Бv9ӧ`wwcJgJ.v͹bA|E](uZV'4!kͳ#VQ_Ӱiϑ;iL_N,RΤW1ZժV'@/oOBCyjcc=yW:\.uqNįگus5(ոᢽ|>-oyw6__2q(ѿ]{ W;70٣cxr>O/q߀\;"ɓ'/zȗ㎋f&|J.cNҠ7$*xXTPQ6pr ŮD $Q] y p "p L"#vITF2i<1iLJ)4 fHW+baϫ 7ғ*b h .ͯI"\ZXP  ÂY.)*Ō$z͘[ӖQziGnVvwq: 3:Ee&'6uvvΒsjꚱ b<:A3f6my ;مttHJIt %MDUǫ)wHKKW!@F+޶^r廾V[|Ǐoo<밲"7߬A3^ _Zo?Ι3W;p_~_*}k/ @x`)t|)tU~R sڏ M"q_^ ǀwEe' ?F1[ "FTó)R8& Ya@ՠ$q@/{*[!vǭv@"tb 4MR,3o/iΨ'I8UA2]2ɘ 0AN@ǔfp{a(}$_Y{kRj#CJŋ?I%Z ӘXLU\љd, ;[2mxN\uUvbg{{8>^Cno 6FS0R^@mcN ZVLu`0lǩZyi|ShҀjUZժPܷKn&^\k)r˥m=y/\|؀πQͼ\Wr  F/%IyD{Өs]jON8MÓ4c2LODZ^FY# qNm*Q;2&|n.=Z.w 4gJ-Kͅ鹿J{nuFm-ltrߣeJ]kc![i%؜GJs5Q5([_K].Pdml "1:zǎr9j ָ^oklpk6)άѧj1J-X01"C-896_$(P9nJJn =v* 9VxY6T ZR3nO?Qmr4VUjUz5$.]x _3Fe/{%=(g;@4~{Ȅ]NE [ݨTA_5FLrR%&16jQ{4췆#h%K5Bli hEڦ3S")R+R`7 ځv,;`Ь8Q#%,br(CٕN96 nT j TY VJ0?yҜhx~ Dwa:R*" Lvb`X .'X32;]&ݔ뛸Fi=x-ͬV;p@s Fm~ȪVU yhzBwoСCoLŹT2> hej"I"eF^#E8V nL a5f JMHjAK/,D66/AS"cVZQR ʑ HPGys*ƀ)PKRx/  OxjqF3\Tt)+u)F8FE0aQ]VdUaJaSC!yADYX Y v+q.b+}N|YU#د7GWJ ~)=kc .o gNRII-p&QNå̄%ДT7s %H'p?\?s}577p)>u?~W|{w&/Jr7W]ɟ_Xd>{v- LT`~~Sﹲ_. @GזFS%x MqL,w0,f&)D$,&2Ң} R%3ctY$4SE# '`x;&ƧT4X*)XR)5VLCA 1A@B\Д! EDQMAJ I[w ^0DcҥIٔdB&×+Xw]G fm\R(TSwf :g6 : eY%#(5;?W&]JXߘ Y, IDAT5@믿E/ĉz 8z(rˁ_뮻;밲GzRN&yO1rA#X9}?|>'rQkHPra5+y8.7M2侏%JUjUc_ƙYُ6ɕD;pС~ هֿv[zo`8[Ɵ&#q"Ӓ27NWE'-K"R%JN[ch&XХhkFeJh=ri%j"IrkBh!ib9oӔ5=J](emZ[ cRј7 5 %vcg x 8s1, ޥ6Y{s&KS ھ(LD[G@naܔ.hR4eDCg3Ta1sd:]xRĖV9rÛុ 5P[ޢsjz%SR TMCܻVjUZժVl{`X麎rR%rW?}#|+S UbJ_kqy"O1&Y^&XV=Q-QWK6g?i$~w)s̘ $TB$=0R](TԜ'^Vt*0\duvlyvLqc( E^T_PI;+ ,ȵ0MΝc#LJ,|JΎJm)\J 2 P7>T SLl>9|kkE]W+sKLGhWj̛8_pu$h3f)&G0@t3êR9k8%Mz& c2XYw;|klw7hAON\x5wZzaPe{ bh245#lѾy?VUjUO zӝ|ԡM_K8G^׼#3뜞u_[c/ǿkDU/L}/\ٯa tɋ%| ֣p}Τ ÂZ-ܞZ]8t}aFi9iFغ^^j72SsҦ! **9; #B-GQ"6aI`WrJ]y'/>fC-Z\j$2qTbB3j%:1eJ}ºDIBIx62C׸ T%Wz&ؼaUf]fE.lnn9v,ZG/b/8t'gϰt:]׷$tM /R UH S %u|@.yͿpٟY>O58}4-|sx +r;;$ k/mf oo~t:u we/{nf?4|-pD ? P}} !Pv:|_|{2׃pرUr}иZcwt'/f%7'Onqh!(FӮ!{5=B-9R͖[~GCoHNXqҘ؞Xc4sP(Х,c5-sj DV0!!$Q,(Yc_KiԐ0js#fRpE‚7;zkL֮F.ud W_} ΝekkahayҴlͬѨ}\ͼC?B65sׇ' baIa|P#hucat4бwmv]7 ~~'/x x;yO?zc5dn7yxP#Yg.:hfoFU_էuyWmmmockk벷G) GK:qrwz衋bN@<5ǎ[4 h8hkQw& $RIxL+RtGR=6e$x-A!/yLaZnE*P[_F[hZFy-T@MCFDNuO;w[E# #Ŕ@a␫#HzͤšF tȃ3A9űwGtZvCXK|> 7"ЄȕK1^W9g:מ<OLO`rnrs<3ڵ"i4:DH<^(Kc $YժVU+#G|Ew|;3u׾+nVu|ܷ?%aXO T"nEF `Upk CGii\F!9*O2u^M| #tOYk3V uŅ6)և$H)2)a* Ќ,j!wIH!27h&#tۛTLkAB%q̩1aQu*%\-;bZ H8bNͱ) HrS"JU!J:7БfN•|>gcm9s 6QevgOXNb R8rT(irԴ(a"`Ҝdq̝F +_K >\VUjU_f ||rC3u{O3o~vvv.ήskO(bx6c X}sK_ҁ>ƩS|_ gΜ#ȁ_O~~`oKWVCឭW ;oy;ɍ75u7px;Kvm5ӳy>} B VԪ;#~7~SoȔkoxM\)?gzZڄu Q`-qy$)>}s7kass?~N8Ç:/?kdvm~ޣɫc; v|XtM|#fOſoV:n5\0sݎ[>F7Jakv1ѓXǿ ߈+57b$= <4$AfM!JՖ0nx(FMwݞiGx8FD*;Y3C!D纅ׄF8+3ʅ] 1fEPX\CigtԖ1桘x!lllg|2!ÂRh<țGX8ʡC'HCkR#$iBaۋz[3/]QW܁h 6)IHR"/$2N~}F&SzNeXcXuhAH&n!&W35'&V*9hNbc11sLHl%ч?.7Y5QǏ?kRɓ~ĉ~Wo " ppfEeokfLS^׽oΝc'D8|0~n4}\Zs1m\Z>|8{?AhI p[W+?ygX!a^C`M259" o$إNd iTrRfCm MŗV Ǐe6mr§?}71$q\('(B a#GaoB3;[[=}N3 srjd P[nJVOS4ѯ_9zYL6OP%\a"HJKޔc"l|.򤂹>aH "1k(21@ݡ#r?rH)ͱjL,M4nq~zܯAׇ1^i.eL[b457-SLhqB@h󖛲'P_}jUZժ3mh37_s~TZ7׼5|sЇ>W)/}Kyы^M7W_M)%tbSr[E%ǫwW6$Vx2taHƘcD5C76Hu 1pU(P)bdB`{^IcZY BP*Ț(eWMyw. KG>+_r6]˿I0&)'J !I.+^Ѩ1(V3Ժ %Hi϶˟>=;4XVZ!&A}rj 4euq)fbϰvlu$5jV%,SjL6L0I9Zd qx6CEQmBS8*9!)QXbrc@/0+CaRBEڡG~2%ni7,ҡ)c. 4J5+i( ա.1e1q0_C%*;z+UjU\[^ͮ|/ ָ[x_~rra^Wb7n>i`oy{2^5_=?h_/%!z6vYj9\#SK${[pDUuHr7b@bxVZ,eC9/|sgo_(u8uz,XH2RNH$kB :*prB?JFgO?w~wIC  d!RxcŘ7"^flY;p3_7")!:0/s'&)lnՅy)|RLTqP1!IS[Kwj -R(9yCg{(kJNRBpѰ.Vi&BC sAAwW"åameAAK)&o#yX:M-tZժVS8/9y7f_!ij,ַ->rwrsyD]a`ccɓ'8~8ysk)0 r3Xr< *|T WdBK~iItX6} kF5 Nts"xz7֭7S$kQўZwQI$w*k5;wC3Zu<d̕ݝdFi,CA,~iNWv/pOuK ClL '2wƦíi b&$RQ/o_`L2 , M&NJA w=(qW{~4Y 4l4}S-42eB@.Ҭ+T7[{D!uGE.g.A*ձ D}Ԇ!(g)lݜ=,ykǪVUjU ߻W'>ωfW IDATb`XRo7ͨPT!s:=}] ǽ~Tzaor}-\Kĉ|Ziҡ͐#(BټAaZu aJH0 0 a["qpj:t9RbX@){_:ŹtJNaq񧝍>(:hAw#l@=]}y& uJY{rΑњ3PN)-7h W[9uS.'{ @׬xEc)-f1y 3!uO+!37&f1аTNsX E# +z$uZK3v>sK&4)BE뙡)@piAB7^οO?OGG~>;;/ҁ_oo?k(|]x?:􄜣MZr1 )%ֺY)ZCOxW󥝣,i|OÚ-i<;zh-\acc㢽e' O~BNF {yҾGFDbtMTM@iNa8t!`6护H`7kJAIg٥dmcVnّ?1WU47Mc)?Qg>ü5QCS< Teٱ[܂7^kr~ 7u/ECA&=9):H !lS3 K')BHzoIӒH$Ѧ AzC@J VKo'x cNeZ7*X5*I9. ЉxD_(9ݛھ}ŀ^zӛ޴~'Gu'x%ի^qJ|u\:<ɗίuGwyΡ]L ՄR8 / .L5wdu&ڿ_Ad{ȩ{>KB {eU[{so>2GUY%cX6a0vݎ"f by&9xyg_1.]KSBM`ˈ M;?57~7eIYZ0Uoy$5̳KbDP#@7DV٬f( d1,zI =ȨWaRܚ筄 !vbx=yi( =Si(SRH R!jՠ|a]x."#28}1cċE>F$Dx4OOr5ؽdT(j  Vp7kGs;qӇ#a/XG@TY do1ШCb"oa D5~sstmGM#IWKkAb?$ήQڥX]^eaj.Zeb1 ! FQ'MY2'yv(*n uGmBpVcdh#1KJvzAB@1J.a;H ƠM 4YC  V#E>M +sY,_540Dru\\LGB!Mj+T=T01_/F/`ɧ`yvW)X:3:!dϯh)56DZ50񉵐RC.s=u&v!;Gb" ZKD=mAșsz)Qkdd X9%OHV a̤VYfvLIa~m M3I\LԄַgXY2:2Z^/}~j)EDJ"zt%bXAۉc1cErÉlo {~fD5S-{3\~&-j^qfaap,v ŗBG.9X%"+xdfP 0|O%{p-I@>&֘X $\^JPb5F$ErHsMH $ꄠ&ښ5/2 'E!j~BwʱS83-cii3s;vny7[eIP+-k2Q`1Vx& 2_r$ŐLEB)~nNRJ# D,z}09I(tu^W)&D;DuEbHtZ!Q<,r5 Bŵ9:t6$.YYs!:p]֛^Kы'?9Μ]" G8Nif*-ϟu85#ZE}؞C@N IT([%#1c1 HjuǙ7<~tcT lY.W>_He }?>,hQؙVU<>WVVҗcqpyuv_5槽"{/!DDU"B#m[D4 3pqJ%eTm1psN#;3;_Ɏ@elo䮐;d@Br&C@K7z3;r?N!d|ONT(vx9g3 !R^yڹ[0'X[[8Qc0hzҲtqu D=ȝq$)LR ׭$"T@m׮:AHD^ on޻JHH=}8_ʣ|oc,g $4tEr^S,.I!'71ի-r Dl ǟ~Ņzz?M#Gpvۿ'NpM>p ӟe?oMw},--m?M?\pÇ9q9rȦΦϞ=#?~@ˍO?O?}E>}?M眹{7}#*3>On>~F/؋y_p~%+۶KTG/;>gO|{t__SJk_"kkkWt-_unnoCގ Ǘz<29?xl?_x~>uwdO=37qbD>-Цu mb7\jnN;KMIҾNdbi}nQ6YK/#?#wo/+,#o}^ W?vRI. {3SkSOOo;dǎ>3?3~rI_`?X`&e~~?ʯJ۷o^aqnmꪲ!d?5V!!zM ZfP `5.):˄PggՂ_Ѹ<:`)t }$K2g獽 Ǐ_$Q (KkgSS/0, 8Y:</{\\XV\SJ:uj0zq21%N>=",ނJsg *I7{H䮀H14hQ#" Sv^l\ǢU#5!\+ `NDUpqWj,-g:{ɖXmgz2sr$7]{393# ,.>˭\z fƮ={/js"ҟ 5Mm18APͼ6LLL011鵲MzLMM} '.pnΝ;72)pumz|333ToWUiarr~c799yEc4 ӛg!fff6gq723|O۷o'tE055E׻qsy1?.waΝs5lhu޽.؋y[5`ٶmի˝/4vSUs1͌;vlz|k۽ο#|ɓSfYeyԠ6k/`>'"ƀ=[d?&(ky>\O\`4Rh4)coHy1ʶW1:#ARY.9{I>>{[fj373a@%)d)z)o{ ,,-lcɓ(Rr oxM |vbXo;/o};򅓬-?} xQ?^~~\R~os)ZZblܧZgeuue/vhiI!k[mӑ'9ɱX6JZ6%2(2S{78vlz=s'?ak>qG@MQ )1Y h;M>YtmzՃ0m eŋ0Z/ڄiz59 Q)hE?53&qU׾6/SV[zV~dՙL)Zhꕌ(0\bDM6LÊ޲FR/ɤPx̉gxiJ/Jc}ЖtܣH`.X]YczbG}`PbqZR^SGɛwYbJ{V3AUna︾?c1}|~&f1`v.s%}Q~WQ+ \=Yg=q'჏\jt$DN~..?7}҈k[WBfebӂ|S%:!,-&SQ=Ǣ ZmpWR'F VJ ̡WL23>;vs+v{5=>$bV5+JUpu yOk ې~f{ '"fxz^RӖuh ު|%WCj%ZWdU#1-1 ]b)L6~!yL@@bz!5yO1Cm d'07`30=s7 |kOrFÅ3? fSӜ=$ϜbbD d.&Y"yďꎘ`mIcc1c?j^g5#5 3:Á [^Jt5O(!)$RTVj؝S V!"i;c w.^fe9o>qG?CL"j:HЕBAqq O[xJ)#BmX66"QU$xzGch;t ԼtϢek(x۔bhĐtP"XD+^R1Q90EߘBp!sJ&ݹؕn=;{Z۲p !"qm+0r޶7!4y!N&qah|0y#jnh!)}1c1c/MHQr1ڶcgbIzJz S$ʃxkOk4-hRݷ *:Cո+`愖>o(>!EE5 >)ĐPra$gU}a_T̍! -|R MӸn%J Vҡ*~JL)>6Xfy֖N3g7mX[rf"# %4\jA!`BՌ^L%8$BγCX$Wfx O~q^y+8zx,lw93Uu+YC}X BB !q cYWOp(z~1c1c񶪟඼ 6J -i><8_l\4IujX誷 eF=z iCuNDmb@JD(N|P̼T l\s&w{uUqf,/psN#M&@#bz=.^8gE#(UUڶdk|ASH)cﱺ6 Xۺ|siKBA X[CL?[bb7px˛Vpcz^1xU+2=WDVi[."!E!t8ŗ;{ǎ>LW^%y/(hfja'HQJiIj˞]LbR5ֵ:YTݲ׆w [c1Ƹr\͜冎 }}V|3_ߏχ1éB[6>Cn|rk6/\kp57ꔤN8 T=/5.RFGn 'VW7- * zڒF\F.j$~ z‘s0w$"lY4c. °2RL$ lbb~MӰmvosRWUt.N/h+hL(s՛DD!F@G-TO$o? ZCBPOR QMmKuPEMIkݱգLwXwsq7v~C-m[n]QDdyRP"u*詯 G">o`8i7j+?M~ٳݖoo}<~7JĶ: 4c Gz]00 3 t Aaޏ, 6cŀ]^炙1 6XW\ Q7XaVS]nI"z]vٶ"bЋji{-pALG|Yaay]H"L}P-,sql 3 IDATcE6t_RނWp(jDcQ5&ŊWë#`=''X[H1a꥔/tAgB A옞$7 ށ" B贸otPLzcdHX$zx+j}-g:.2)%ziȃ=t|Rĉ'xi[jF]Y_jAm~C}l8Mc1c\ 2{}g(31T{H(V4  vz^U\⥱W*B7hR8$%>RUL_%x;$FB-$dHHҵHpbtk7gʗ<,-Z̵mVN I^$ W ){x7/I: ='JHI襶Y3d-x%AO  ht'J[$ "MOl>=N1{̮b\%Ĉ*;JD,,@,E0JSj Ϟ}7BL:%]G)eWfbٶ};񐽡=T+sJPs-oFSRQ` muA6(n1\58b!DFqKQE,ul^SwmRSL5 >qǟx%e^fw 5ЉCX=bJ6~n WxYc1c&j!sտ)wxSGrٷ{y˵0_<{А̅1f-/Bn] BBj,..ryy|ӧϐR;F @ IȰj0Pj`Ɋ٨A TPQ J{e"Dhk[0/ĄTH@ jY]B@KjF&m[B4}b\䕮0IG閹awx%o83O?(& !*V@J H[Z?*B7VÌ;c1clQ|b{km `|:aޏߕL0!V+WԧsAM3W^ %#AH(jPԵS 6.xN@Abhb™?v,ZkݶAL5 1}gBL3"jw`zG\8]\̠0+uŽ ғ;8rqRUBu f'>Vi*Fϣ Q!2ȭ(Ubmܸ{ 165SC02F[ F@, = RB$XS'Z$4Ni 4=6td =>c|S/03ݧ I\(%Wb$">J"^ZaxXmh ǎԩS[O0??`0lsaqq{lˏÙ3gx駷8|3c Y^W %rCiw=c|N5 #/OO6]v]ՋMDN:H4]KԌwLk yζ D$^: bC#ijt*MT=. & zfY\1Mpm 3"&<@8HP F BS[}LbDwj$ױHц(SBQ ) d $Ѕy\dFOh`۹ׁF ZWᇏؓ'iILZA<2D]X QպcDD=E.G[B-?MӬna2lm7cwHqnnn>v}jKεb> 00.-lĘP(&xUZRՕ/Т#a5ۭk$xkon?OBDR2=:(k)qr bn%ZrDIr3]G.?wa]{冃3?gΜh v :jV@T ȹ%֌39_4$>2QoR!aM=@(^ŠGqȍ (gE G1Zr^=iZIGzNL_fVκ|\yu"xUW &ah; 3*/ePxR1#nwnJAPz)p<|;f}Νl):+b$uUD %ֱj:\!h2!D_G`ffg>3ameR|ޏ_F7+m^84Mm9z}\\̟jЛV%\KRR֪hqqGרT]ІGH7C%qsVXlղFȩt@Z)t Z37MBcU< Ħly=7$Y1c1[nO0_Ds[s_^b=@L 8l Bj]{)QB@ Y n ì)1xj:M FoC^2Yx7SˏBd"ڒ@# ݴRr% QAXy [9/˨B*HVA^Â5,E RDJ@-UKh$$\U1c1c-?zh7qWcx>J% x5À]uv-T1$x˜<!y)M򸻥iaY}jJ?F4)mjEomIu%Itm!5T)bx@hD/p + 6Z;iRYOWjT ӷ Zf|\bB (Ya޽?~ B! 1zK~iv:,$++k W:[6&%]8t)V[EBDSbaH\.jۜjC+2 U~@(KkssR1g3& c|c11 `b\.[{_xWb1Fw\{0HDm0vP=Q`=[a1-:ǔ (E C-x2{NSL'J97?O'!uS4@&h Faw<1$lo|lckֶ\X[]Asan<`YzS;ر};A@sz hQ&0I WNJRL1D)fm nT@Rtw(d-MH$ q|nB @JP[*0ISaz6rc.VDWF0~>q-=o֖??=ܳᡇ{˿[~ ;FQ[={4/=pXwЃއ|P϶x߽\^AB w*5.j:1rh.*W_9;șbujP?JiN D8so|,,ϼMw0m'O?H)봀g>EMn؇NR!a7?7ncb#0;$v s>IBGe*Lﺎfj_ .Ո z)*<9>u I۟Gv>"*V¥P(UY/8p`I +ӌ`ɳC_C f 5qMO=1vf.GMQ&qnHL.!:b/zm"7~~nˏÁx{޳;__cD!o}GoE4Ux%`NF%BGx/"'O,oܘ"R֕nKNLm8VdԆY jVX3!yp*! =*ηuB7If}qV rn&+U),))<`8V66 >7lX+'}03;˶m۹|"1ع%ڱAT`j~z;Mri$| (q<1'Y- '> z%(֑BBnf9vfz}hB&`hRT)FBӚmtQoR~V'6$sXʈV QF4bF B9R" VRXD`~܍T@LFr͓Qe%HmVQXD9c1cנּ\EjoU&FJ.P?14gu jΪ'Ъ`KQF%WG.T yVr_J[;4q[s٘HjkTJDwNlC8G hC[l`>1.oH%* I$~ X]^ME;eϾ[ً,A"$jT{y?5Pu4(*F F2hEVxu mdd#`ayL0TwSqA|%fiԘI-$tCqC xlyNK5Hc1czoĖB"_^o~Z\>d&9p .h? [iaȃs|UYu^tEPl.Gy Bu^qaq0_)A!4E3IM^cG#w]|k' wt550v!OP֍NOVY648%6:XMKrmpZژ "A)m؉ŋNҴ3!6LWYQ$omS}܏牛BD'3f$O oVw a]3{ƘɃ U.gIoŀ!PǬBj2Z2k@/? aJtC >/}i~[z -.=z??pO~rˏn1ޠ.X}~Lnd2 '1}Mtp!†JTv_WA~d "|l%^77Wmћh|%?'5fڨF.|PW0ڎjWQ"mCedbsgVVl5H>ќx:ɞ̙Yp.N#" Z!(L.IEM̰:XcqaPbrqP 5fm{ndv>VVҏB'{ǵ4:R7ы8&A$҈&smF)ьjR\"BU fTRZ)"% m MBsvWi)$DmKju&,0t 9:KLdV?Fx*\/?S?`ǎ/ҖCqС-?wuckj-]iih>ZzNr:$Nλ>g_^g}/ת8bq#@cw܂a-I . bh IDAT*X t7ɼo9!Y5% 4ՆY/t՞t'NlCN8;5Z uLP$.k|qbs5:)@סѨSuר ;. \H¡$hy0+Z A`MFHb pwJ 'D멈w` zKzrq"$86Uȳ \s5\sz,p!_I-ȩm7+p'39wѱ:&TPUr2*tN)SkD ՚ku-ֺ91N\cbꄨfc l7P$Js_r'7~j!bjU̝#E B).ᄵVj{4,*NԺNus=Kw1L|KE B x{IJt`؏G@&2rI,s:c RjT8!H6qN)4qZKmiRFI 2At4H i#:J}t\s5\sG(6yS0,3IO>LVUux @Z-!ItOj,֓5dNJu>t '( awk*grzLӽim 9MXM MBm 34<$K\D;n8Rl_2E5롃r2s6dG.rW Tdv*qk@s"ehbWS-Y)'ڡnZ-fmSwI:""s\s5\gXuV#`aι[s=e%ʪYoE75?")X^&/| AX,ZQ. k:bl7B1CKk[Xr߲I5/ 5chi6`4kuOi Iiɲ)>X? % LR7#SimNi@oճVMk \pr#P1?FjXAԘPF*^Ӆ+hI\-Z|ݓnLkZhnSx&%`qR?CZ(J3i]~&%!acM boNdK_YO]'6az7l58z(˿υ|#_7{~~~hϯ"i [Ksߚxc|n%$_țyEw}#hv/Ko ;KsZ|fĒܰmgg:i|~W~宷L}͝:k">hEtRм W=$2uaو9ԩhbdH& J4H"%H8rh?;xBQݟ u^{eFX7jbLNPr  1Li;pVZMKQ=̤IwR3QPZT,ρ žÏy_qYV,jb s޵QÂV'=D0t).L5x{Σp:O*V'\Xi_ԒI2 Kj4Zk9i-;}S}R S6iCZdQzVt<ѻrOݫ:ykxK^СCȏȞ_G=Q>uS`l/-}'%*őTi?[YB+ RIJ;T V<u;$Y# @9(*2x dDLuСB:0/':EctӇD]lA465t dڒȹKX?=| ر;U(R0$dofsڰM8nPwDެRđ餵kP= ڳY2@kQ,*x&|%3aC+tz^Z+=P-I ۩,d NTk:҂/z\vg<}UODM=\L< zԗ𖽹 ;f1%]ɣnBlѵ,f` 7P)w۔GƒN +Pk]mGŨu]r oyI0؍C ܂C;PI>t:$gNx<1rs9poO|w|:Nv RRT(b 0e{磲d' Y!Xң,mv4g5Og0 5cZZ10t7EaED/ֆwSVR4FxKa VzRuw60]E-#@mT3awO_k묃x#oeTF4GۏfJ!w/KyiY#39+}9;AR<Ij) 53SgR S oa5XakkpKKN5>V'd J6uj6'-\[UvZ:Hi٢pd{>2b<α;nQ4ᭂ;Ew/wl?ǰu\ -R*5 )y(Y K)i)*2{*6,?}BQ=X,VU {^"aH\gIx*B TS=~j)@&4>1uK"Ԥt!1up}*zt*HS=6'fkq`~k\oz&}{қycU*<<+2-d+!O| x @Q __.GФV f;1UT,'X^7.OCv5RkR!Z6e`h:s;~:5\uz4IGT$>i-^GCX?"|c@M56Y.^@wqX&ՊhIT!iWbM%J1T ek`5<Эv{E$--Y^Zԁ -+ۗ0uO0e(LzISOtrQ\C :8(Ò+7ZLJPwjXA%h>R0$:>\a{Jez[¾}xӟ\_=.lϮѣGy_]zoop5pM7_{z~G__k4ojy=x= >Tawsq>3)~;}xғ#&?VC|6EboV!,I/X> #wzo#GOBC嗾%;X-?G??____?r&lSV.(F S5WB9GY*^'튝=Ug)"7Jn;lCćo(~\{{8q^| ?u&*'*Ui%=C˷)F_ODZ bJmb5 XӐy"ԌA! quN3dj`9q8ElU 2LKTSEѢԍ˕W9QvCY@,uP PEa4%3& J?|JW.~OpZۈ kの/#sF"p;`/yko=-GK/K/tϯS{|@_ `_QLO?ķ|÷<өe||ZrH`4Vֵ`V:y߉᭻AW MHY2M#SIWȔp JMh6bݟ$<_v V;o8Br i @6bfxm (("7BKvH UPE$`$&L-Sp= t([,YEV':`%]6S3!(TD$pLFOߵհvfh sZ VeM.xUO6RJ.C8rw"6iXs5\s='Xi{^^w>?f7ԧ>O~&t̋nM=N;N爖; x19X}<`$ao{="@wA- sP{HJO.TLԶQ[-q|5ṃ_bt`E ՜iRڽsUzם+wx O}NNLH9D &3br>nV D7%S)v+h=E%U=5:%53otBE.5 JҬPŵG[k鶵\;q Xfj5eaNkɔ5BSmQrPZKwJP`8~﫠eyƗ^|7\AgGW | CyPn~;"\)]?23;$(ޒ2{gkl$uCնb e h4mq]%d)ycdž_k: .^sSnW|~9M^{-??K_R?]AH<|G;3֧;SnE}0 ! HNDGC5ҼbwB>dl4d ld @P*q$#xړ>|#vapL^W@ArfNGRRgT0&Rv@ys>UI**vx C[1󸩧 A8k]L LKD H52'HL}oxUٸ J NЧNj:nWLtʌkz̋n|Ǐ~?~V/9??ϑ#GvՑL.\~|gr%8\3DX % ȐnK5%ZӸƁl#XNtRO?9]T$w%*ho<{}#\c\y/f+.NCŏ 3+=/*a"m (bG~"nMwFaa9PUXGb&ؐT"oN]0el:M4.NZyk{P%E@ýSܢ'kvuJ[cjN0*H*}% 49wT)nf`^LYXAf;FE #ij7*AOY99j}?Ֆ7zɍk\s5\sNa眡+/Y[)vvvN;ƥnE{쪸[us3lդdFkΠ`J tAuPl2{smFQƮ!7S Wԃ mn1%8> Bugtap/>`JɭS.TWF(]b gBixJк+UNxX$"(6ZHhsgؠ9HcPA@`@XTWj eNL&!HX:tMT7b@XT2|[ k<ᄦdjZJ4D88M`7CK԰TՁA nKR\ZS `$fl~soo+ww=v υ뮻WU{~w׿~ϯ|̻4o$ u`^__n&^Wc@@F+=>o_D/]rompOȷ980Z']G; )ӵ>:MtS =,Qꍩh #G롆QÛmr >s(>bӴ2 )|\il-8ycᚻSk9ڤ>qpk#Dn MQB8{M2(pG^lTtY(NN'YN<!kC7Rl~H_IKQXkEzBXO&R ŒZ+ʾ IDATҌ&yOC}6&*iic*tNm3ookp򲗽lϯãh;sϯ^Zoo5pwQKso^L~7!y] ^>l{bi>l˻`ş2|^+K{[7i {27C3LHuCjM&=nj xEEq̆\NʘZ b&6I0w%h}]\ݦj2 $A"RWZ fH`k= 0sKg0A֚b0M ;Xj :Zd}>-l *NDkwKnE Hj)8I;KjWd`eĢeH<7ږH{hXF ǹk:Rp"A{Q0[[P YV4pM;c偕u-^ozxPuDOy5-Sε8V7M;)Z@{(b蓊ZQvWtJ I)?^扇]Daq;֫䧎bf:%E ݥ4[jlKa+%a~ͻdF!ԩjśS'#TlLmJ) N 5ţfVJ($gAm0,a2WmjL3Eil*-:EJ4E4N+sԤO;Zԥ퉕64"rC UtqoX RAKt*:f'oBhgtLq$/йkμZ:2OPUzꪇ5|'fv<ڙ\Y=(*{w=RC,Shu$=ՅHrbtT'ă2>v Pϥ@Nu)KN%v_h5zGA(,ةʮEf$m3]po8 Fto6%IB)F-!9)Y,5X 6knR)I"=D05X8" &@CA=jK2Ի?`u2hs1iO h+Wh,zРlij骕DA$ihQ!n^4'Y.R+!d.Br連..]4<k*sˑz^k+-'n >\v=(ִq1(Cҫ"o0E& "BQiGt+xi#/6#n|N["&ێr3Mܹ:ʊ;kab"/h-&)ΎW&lK1jNR4PZ=Hv9@D&aHbI0񀩡!ԊN/A@)C4h\AI͌Yfn]Jf, (J1CZfK+G@{8Dnkik\q[jkN23$:岧GMji (CL-ϫE))#<@Asp}tk3-WC>Xu]7߼F8=@s=mmg&B%>0[`ڳ9Z6c!Hm 1vz: J! G!0|-ZvEZ֧2mJ{713az 3W*=YϚ,EgdNT-GK.{~ p0?3?1Y;Ou]CǑ'N]NYr_k`b Ӟ?oϯRʙID4;>jkVS&o 5jl*ړw-xL4:$i۵j)ގNpFۄYoH[o}"AU֦XZMȠ 0\hTHwyZ!kǨ@1h^7IޝSJ"EwiE,;3`SRQT-VǑNP$'1t3K0E\# )׈t{(Mt<ji 6LuXI3.RMMG4DYXaWS.B`r~ӯ :I!y>gO̴O1֖f $tFWkob^Re%?ǫ bWް]~gp%QKKl?+Xɝ̮H2 82oX9x큆6rC:2ӢQ @C1ҢWU5ֈތNS۟1=@of=ALQMP#MRz2kTGӃDx$u4dFd {T-)`] 8Wh"VRQ5 xVFRsWF2ڂoO$S-%&xXOB0"֧\EB`KW*chjXhH,Z+A(N{]El~; 5R[_o{EUz{z?>{~p[/l<1 :p^xi1&ӑ$lHXƮ4 nMu5*(]!᭥Ͱ)aJ'pKwh06]Rz2 郇o99nXfbTӇ?i=lۄ0`{cltBbp;sϯÇ=]v߿||a~~oϯcw}!zIB)g=Y}_8:8l n:x2+XqO "³{Kޯ'dB6TjNI]L&L^<Ĕ(U6tbT t*@:JZ>B: PE Z :Yx`) 4%BcE1V'=d1PHk]SHt*_c6gB_F1aor{+ FN1tҢPjl09ɿsS&OESˤu%45hNtgԤX>t{PVқ""j3RjK6BڜUTBatxeRKj AO-oM:=-ַޯv?~xW|+wwo̓%3{w[jJh0r#dl`,63np9ho0n;6 7!Gn[` <BBh(Rխޛ{fJ{g|yy9g[ne~Wub|~7~co馉/؟>'O<| Ə1B |X0p$ʛf//M<__m#2W\qozӛ({g]TGh~A{꽴XOPSEuf9>f c6t/ ,_?*6wc++I}؟ VkC؟UbΝc|dp-yv} Įf=f=sss?u־?{GXZZ+TU5X9 33-|c }%1I8VNЕ'V*Oz}|ѣKuW. 8z}{ Xk Qʫb4rPQ`K C/٘z֭gIzuhJ8l"C=jڅ+F~Q<:'fUcC b TU4%J0 9QTzZVN1 Zl7\{sq\AףݙTQRC=#+\vu=͓42ι' @۝V$,˱I}ͤ㫪*I4'SOyLʥ IDATø٩~ΤX?ձS}Lݙ{heee۩~cwf;l6^obRw&S=o}=-;vQx!QK=H؃«.YdUS~g278v鰲2}&nZ6l>s*ޯ?ɇ61pTcA1cW'oeF=]^>xƱ[|V~?v|6eYRUmfggYZZZ("uX&.q$cCLt/]X6 ~$\s 7|sSձV/҉ 5fZrۘ?6tE'~VL&IIJWDX}8pBJ1"s&񎓷cT;@N;Ƚw};A=".݋ J -WҶ8D$ƁJ%JjRեB ܙ<7 Z&c `[p4&73"DcBq:YcRS!6  >K *B`Z`Q O-Vү="I›T |j!J kAQ Dyު I u AT7D[kAlmUE֧^T QWcMUOI}- coWqV0^ѪƆUOK㬍5Nي:T,JtaC}V.xn`V2m~0'}b$=IӐH222222msniۼ-oyE_zwxE9`*`0-΋ܯpb$+""&`XpEXu1IPl"bU>M\}%\g3kyf{Ƞ мH8{$Y.Tlm7k^[n{XBa-]vx;ظq#:ý/{F)_ <|Õy[^1??ɾr[pߟc(߿29zbӎ]/`ӖyP5LU*WMm<B^]ئx#deQ7ާ؂$g2]n:`l$ãHLUcڸգR/Q5>f`KKcn  9TkB!yġv'Z!ִBb$woWY1hM^$ůc 6GT,hUDSj|DޛoD0})8)u*`I+<9A0VQi6MRcՊVRV;6rѮ-,%v\EŀHP@@oc= Yߗg ? 3Wx„_U=yw}7wy'?<#6l]xwwsvOI<$@6<Q<8%]6lo}+͛yk^GOPgu"i8o.͞peKw=C?J?M?r-lj fUN532sZ^Ѣ#{|pn?qJ9rC׻͛sxi|u*.N<9w}F6W\vnk<_cGz:w`ŠAF a# "052X!h\rRW"t:uY \]̍AD5ʏ=w?~`Z kxf[X5&8ߡd|T锔*61Ӟa9:FBַPqg) CaJITo~F=@!!?$I+S'/~T~ꪫ6oo{[o=4;`؏Tᵯ}-ǧ: _p0 9YY>o/ys(b`keB t ,CѧO# mvtC9__Ni>W%ubk.~-[{\,p%Nk C'j귯j#Gއ>a,,,̳gVvlߊ-O,<¡'YZuƹ`uE+j_( Ѧ!Q*J:D%( )l6[+m݅s8k蛀1/BV6.T< pOf*- LCXccEHXԵKa<>f\D#b =uL"9pI~(uT'Bjt!%3P`qPtB0aNLA,)JZº~e1gu< `Fq("Ij4$([3$(r,Xxnf&&\Qm'3ߥ剕߿=wVjJ2rk6/6{o_Do5\||eYЭ;oKsvM ?q__>-33 }zW2P&Vضe ߿:_:|}n+>}\vElݼ~wkhHM T!!SS{jakkeQnW!abo..0RlۚLT#)!و`=Pؚ6P5" TK= 5-UpNؿ1eR2Hՙ   p"X¶ Ƙ91J~.Pk~ڥ 8vf))ٲЦә,KڝN$֢FPc!xzÍJZ=gAc,)0=o| bY{iF܀11JƶS+˵o_ mX9^)QzNHCϿ8۶m5y ??{5( ⊑\u-H_LȞKssI)Yh/Qvﺀ[swnw,tߵ ` CZ5.TE8N*v*cJIk"Ԗeՠ}n+,EBUbkc-F*Ql=UTu vDQIjk!#R Ht$5:cP ")GyTveE(\+gX 5}S! V]cV.锔]ZVY`Mҕ:%(\(LDӜdd*+J$ bdX&}k0fu#cH0Mo)HFFFFlHڦoS$omܴ~ʝBspkGfxDg큣3~A5XlJmx fXW$t*yjbH|'7tәfIH?(bQ5FX,g-|x#h]0;c^l <2>ԴZ$I`L IZbIֺ(> DAyMtƣSs>*F MXD)-J"ٰ`l5.U`W1Td%g8t5鴄ٹZl̴ڴZm\(&Vq1PbQBXj1jV D_~xETx1:C7is Q5 LIR2TMa$I"bb) 3l0@Js'VHAhJgc/v͕W^9_Ÿgyͅ^81XZZS{^8pwu7pTرc\S[nm۵}cOd n>ӊRp99<Ʋ<hZ*Ԇ~0 0g^-a8'h^ş "TݥtoQ}xSLR-..e˖~GN T&9H@k7% } {lo|8 kAP Hb C鄹fft:t-ZmGQX-0QL дi! ;DWrT6TªQPBcn♙~_1&I'hʹA1j5d'$2ʠАNJ2M.R$H84FO&uh c$M㡖ZC? 0p*X^,K+++EsnjcB`yy}:Tǡ*B/iűcXXx*:zW1ưeb.S1f3LLbQp79ģEէݪ~!nݺ ΄|4_jgxPKu;_|*?ZtkhVػȑ<&z=Ka-p+QUE XgQ>-Y΂$YmS"`map6Qk03`^VLU`n.Kf-6m^lZEA˵΀!gX|1PAS^Ear|/2%@t&!5Ӟ!Ii'b)!/C'實] D\O$KCHф)b&\S\@ rMb4n S32! uӌô' =لxN;( GôL>n9C]Մ?L3Hߴ)f=GWN;7ќ8- 1IN:'$ګru+6p|bScG^XOӦtg)5f. K^HZ' ycbE(J5g=Zh273LPζthKf3>i&3(f% 4}\QZ4n5kkW") 7t1~5ΝC6C*19#3ЄX=koM" j%$±J$1f1mV[ّ x/?Hw̆spt@k2Emgu熀 S Ym$VC&M+=[:M՗_lg?<E8J.sNVv$t%,5uF늹9fffqƕ*[30;;sVkN*iw eQ):X(˒VQH2YO)ԦeW$`Jn6?Ymjm1%-jѦt U|C‰Ė*L2L4 D9Yՙ`s! ؞ӫzMjN` c8!qerh {P\B4KOM *k >"cИqS pn:t#DCa_mpKGÿ́G$tVIDAT5QRt(NҧEIOE /{u7\wFo>KLv* Mm5( CV004HЦ.ʼt=Ʒ) 4m?1$5d!ya 'Uk9I4Tʗ*:E! K!|-I "&Xn>R$*H1l/'B:XmiYh^=`*\rאRttccMf`DPięٙuKv,<~}p|džmәU wIA5Xy_~+ kocOW* O4IÉgS1w\PU%M[>ش %7 6(&dhumkpH|>>E$Kc6{+&I$ 8k0vn:Ǐ# 3h!hL$(fk ïS q\,ٿ.vdq>AKG}Ë]MF8;Tg\f(SHu&CsVG|g,J&%:q:2Ld?É0ɮuuax_%2rXH`wu$ *uͺn$YrHA;^AתI` i4DSqĶijMPe],#####cpcg 32Gh\|DKw9@hZN~p31L8 ڦBa!P3Z9?BRJV)+=i M3w$Ӵ#0 < x5ܶT"Y_t]a;^q9IغiKV^J3Uw{x?/5d8[<8HѶ*JMǘ5o+&5<)" e۸6&: :ÂKQk\Hdm[L<5 ~Q'#HZlDАa>Iƿ}X-1 &4dˌy`㈮C2nFmdU8H ڊC!k&FKbndķ&#####c^W]8זּgd|g 8{K;xVbjʄ(+è&Q|I'g;hGǴ(_U]cMIB^  fF2!bӴ g#/+I&$kTLhZ4DBM.s ?1D `1w+ *|1`lLI E>vpVֺڮ&FE0BljnM ,N$ s>?801X^^ ᡇ+_#T\tOrr4;JyB?wVsMwo_>?rVw{)ݻOKi jdp4YF U֐R t]d܌=z F^VW55~ekD$I6!|!\fմ85w2 D%y5Nk8~d[ :4BjFX<>2|ǵdN8n՜MF7~pp,AbcxItz ZeYNm B=z͛7OPU+++lذav3;;;q8p۷ogw}G?u\r Sez'acdal1]q8I6qXPמwy+?+}Gٳg3a]Į&2>I{4jIsHX2JڣRf~ 9 k֞jI9J1b0$·h:8j'AC9nEY{1(f \CAkp 8T? h] :l'#####[q?A_lϲe9#~>E};9hpN$Þkݰתc '¸kF)h[6M>oA<7 d5n>༬f@HĬq=_L7xĄ8/"aMabt &U^.QHKq+P,دzU%fU|iPXL±'A8o!pdz].޹霓sF@N5u:u+c@uws'BeQtPF{g|3N&t(lc d.m]a8u pd!5|RiHĂ,Il2ix?ybTEvj^me5xi8!Hf"fADP+O5( 9ȈpgM8ຯ#!#* ~`FgRFFFFiG_r-</plC~GH"B]8~a%Gm?u0iT{g? ,w]3J-V`e>JO;[>αQ{߿Sp sܱcԓٟeiii~>g>󙩏>" 07 x/M/p߹L@22222222!~$9r|#J{v#[/•3`L&#gt_[>ΉRW}ؽ}:c& >~?o~UYљD{n evUoQuU mWix3xjco;4Rhn=YFƩl&{RG_ 5[[T_O}Sp E1q?c~|cpS%\rT_"w .pwҗtÇ`w^NB0:-.ݵ.e/g::u2x`r222222222222Ștf'?8<L$ "–-[Zӊ-,--M啯|OO?=q[뮻: w9q>M}]2OONu D7N}("ٳg "Ύ!tUEDgddddddddd 9qx21*XOzFFFFFFFFFFF& dddddddddddd{{S}su=q'?91x衇xǦ>w}7t]n=ʝw9qxy>>1smM}~w7gL} ~{ݩ6k>pv˜\(˦> Xk>[nnOu s\xS/Z-.,EQ=1^v1⪫|w}JVx322222222222$###########f4$ddddddd<!#9O& L ?,--M/8z?wuTСCmo{k_7t᳟,8qxK^29Co|T@D{AD袋:"B*X 8rdbex322222222222P)rIENDB`codec2-1.0.1/stm32/doc/sm1000_cn12.png000066400000000000000000002505631412132000500166350ustar00rootroot00000000000000PNG  IHDR a pHYs+Q%IDATx]\I "¡EEbzzgb7XQ EC|Ll 鉐8ξ7CJ"} T&BW*~oޒ >XZ#kD!M|2[ F!Sn @DMfuy4ju: zQ' "sbY$1bh hŭ@CRggWa׌O )lh kg tk' ɍ[l`)ʦjÂGͩOY.1Q̃q ^{λ a案ldZd`aSUI֓&?pqq5ǖzf9 e MlA賵1 g ĚLR)DN=%7?꫐MH  +xHAxeÇ e;{Fd9 fjNyo"ű/ẸN3ߡ%(£'<Qah'>V>)[7KѣG{O>5&)t&Q| x3a9EQӮYxȶ)z5L莁rz9&>o}Eknd]ZC>!{e`үL Q"æ |p|HL?o'9p|aWeOv菽ޜ| vi[v&7 xOetAJ|JlB͡PaE{25o(a'Tpk]Ftfy'G=yE8hC"NM+ɬ)-+߲1~x "Hї|%3cL;Ց(#RcYFJ .|=̤祀lF$eC|ɧ!}^c0-G33t)gOމy$J'&BQNGzM+/W')M-73 hK~02A%kDuGw[["\<"##CƏO{+ChəF:4>k#+x'{ӣ\ ͦtYOrb%svYXAIAGxI#wZ֫ރ*Y(,a S]S >pf-Jioc|ل: ?Iy<#P&[ق"aX JuI ˯9dffɶf5~N~GX+۶R ^ɲ b'B50a}ڭ e9IM4Vf}g< }M.U`( fȯ؄#))z^LF&g]G8Mr[˽k/G-@cqG'CjfpUN<ˣxZ 1GTP>.VF}l"W-_7>#";~ (s:٥YJQ˹iJ#kńK.T$)S-˘*M`V54G9o?+"a[uѼ%rhW4…R_D4ߓ9LUOV]^M:y$Šyэ}pA* BnWrnJ٦]0w#mgSu_o 5{|D] ׉&Nt#D'nb4GœreVajEq{_-"v^haTK.UOR˥d+&!H'm;r8ZZհV%1D؞|&8zP%=)ƣן@n`!H!R"aZ:{mRisdsRjeeI:Dbѩf͠ZDǞ:4"߭PÖ6XR5S@i!q= Z2A0 d)#6Ǜ0!LMM%g:=YzF`ͤ$Mώ0^AyBĵ/OE-3lb[aUUu >Ds# .YCe“a6`$rЁNV8 I Lޝ3C*uG 6MVu񼷆E_ԲM(8/)8{Y@̎%v&A ]>h@w6R_w5ֲI-N(AL&K_C "ͭ#4Tn }C Ljv+3W<^.$#5: N)^L%zLcC}ekރ <]9+H),l Xr@BN]0tEU=Ii Y)92ݦ?W3`C'Cn{*\(%g{d)j 80a{%G9D}I'S6f2w+^exuqǾ!Y0gHU> oo=ckw'tlj/Q^?+Ζ~OeGY =2ΜB6=e8ag=LDO DArh z>bJ?7Cgl7|61abW> -Yʉt4KNɑ/~s/Z G"rlQC'ĩЅI]Z ]UQP']ЇQ_cZ?B "&f=LRJd6kFcGTW7Li0꒓6* |xQ|dKG O_#.~-T&O\RTT19H5 od-# Oh+SJih1<`/AH'8u3<|>lx;C֫IJM*.. ` cNEAkGC2ے$`u󫧪n5e(,]WMY EWJtQQOۆ.+d^޲R̩ClQH"0k=JSfSqT^Ε!_Q=ќP@sJ]KR&% EJ9x.K:1ca*eѲ5lZ%l+:(DҔґ^VL=+˔mj:TiFa`U.0ݣNY>򵵽pyΐM 08EIFRPj Xr\{/$}`"Ġˡjd&J\UA#?]E#xTI.}E99CQkح$}Yb851HnƵɡ9ֱ w G"`: #n)\K2g;b9Y#=O#_wQ%qnKʑٸB:6rw "}hᄱ̗F0c>mFu1\/[xL@ "uX!RIa_UdbX&}e" A6z:E `ιb^R5Ocelr_DOph9c#!Kf3 q…vjaN9vlm nIw8^2Xr>!nۿ_DkV_8eF=E0rǀPx_h+#LfQn>>>3}uxL+IТF^'١IH)Șܫ} De FUU)'^ژ[8twz@#Q-'B;"4?ԑn$' Y*R]oT끙nE¦$V>W?e{FQs1{%bVNqn N'Y,$|+f51ȒnV&g75(>9ñ#C0`mmH#'D4SI$PAB((bk75+=ʤGBȎz>{pS-Ei8HY~Rb_ pc&5OǼWI̷63vIc>lC7"qcq/&90656:HQ &ώ4C?D[9_ah)tnH }I7PFn#ڀ3p@iT)O,Js@_U_ιDU7iz H8YЋ/Q(at;_F*SV T Wt/,0:ϼpkC_<K]+!'6eĶI` 9<)0<&kzο|eu/ʏ H9 $>қ C&XxƳSri;0tKF{P i#'c4e4$ |v77 n,`;~/i.5v Z~M ;&ڍi4lRgJ$ A֎n>'gnH"L$,JfXZ FG"&SZˋ2:}.bP3#CI& #&5I޸RuiX>%׫Wk~o)=WyeOl. +F*j HRۂM -`=$mA:Tn ^Z-,[jUA";F3b\ziտ-ӳ ,mU!Uip 8xՓ)'pK7¸oW}G;ZJT=ƜيgX3I)! )ۂS2vp9zSuZefa^u?u)ܚ2B/?_U /W*޽ߣe? |;a*V&[5;[)y=1dҍqkfC['sXyrG;P&Z=bJ?7-}ىjp3.$c[aįS寮E{뵵p3@ lx ό<ܛ]PL[rA+e1t+{.zaTPQ5O*o&li$^]TBURoGX—8զ]@>AX94M«QMp݋%Lz|f_ׇ# 2}k5IT'W^L71j`4I /ɫ_(lx1aĆ|i`B&e7a!ͫ{i!4_y9g"Tg=7"J(Z{ȡyKkh\=$0:}7Z8$Pg<Z1mD" #4]uqW@ޠjӏ)ԯzbN0~#$jN'!|r@xR[2!j^ZqfAPtHbYҍߟK,:*Ct0ґ4#l RHQp@?ψq%k e҄!4 2IH$iwyQy(:GX3FHN*W=zcJe_-A Z2f?vR:{GkG C& !#v%BMJxOֵ:?M,{0>wvwZó_t 4eo>XC#D^`Ǣm+/|[H}Du2禠`_l)}@+caM#a`^Ů0}Sbp}b6'PǗIcmqOhAߕHRI g A-fG]})?;t>8:@/!~ w1Ns_Bxf V-S7<+XsQ1z[[[TKJfqF+ErC...Iy,&9;;R_ D , 3PÄ%o|7AxfڞKIpTF̣&P7Ȕ04IƼñ|2S$R%_$5jCi\ "wQ_B?SB͌! JMGt0ґFSj>OeJcQ !Oe¦jѧLc+Rݦ2&M`5)uP#ծ|}[Zr]cz*G6?U*lIw 4m/~g1L\aA?[j ;sUqҔ "WZ}Ѓ+Y:mوoO,f0YԤlxDex{йCF~N!Gi5>Hm±|.x/ 6`N62RoMk\?aakW<#wm˾~|kjzG#m6DY~<خ|UYhZ3.Xs `-(}~mazL؜$30.<{x!vGQE.ymqXQZN8hCj|B"Z#!.n)n4V /=v 8P9 9\翂gg_E"1I:NB5-Đ&WjTz* a7E&¿Q\\D%ll?%kADv|HL?o'm޽{U}ug4d Cv8[zI(㪝X%mje5 'P &y$І";\R0`ٳg); Hʿ[ba[H'T Ak옾hqa>†`,—(ς^$;ռg739C}ڲc&Pmq}J[W ME\-F&@.0rK׻[KP Orov%g G5~]ګCR}00RS$Chr:h~^qpXxI/-֟' ߷9;ASoyql?2]*Ism:L?e`\]_KVXBmSiów^eVڙH@r*hjKOÝlULMXuWc$m/A:ʏYjlLɂdj>ҒgcjO<;N5Aw ^~Orvzv,&sa#0YjivNfygn%wn*Y ( ̍gGl}$H@kd3lU~ wLJ/}-ͅC|TqYIjVrHd=P9։Ck׮qw]!sw8,Tg+j*x<63mHM )clr.WqcvJ+9 4T9NE d/ cOˮl0_󝫙h)IPY\sGLsxB:RNyvFG~֠sY[wٱkoYa* 0g.w͔۟m>:c {w+-?3햨(";) ~Շ,a3Dxpw# I!ZUb߾1rZ #MQ9&0D,z*pC#EW/3ѧ7T`;Ȏikw7nu«WPik 5sroB&ȰbCJ 64Q^#O#zLX̵jZ&9ָ^S=MYC׹#^=j{Њ&9\36㛻 TUs8v4Q+O_`/V߱;tX[! `hkSE[+9BOqk%r$'}gj÷q==~0$BI?_SC]k)/<%>Z_E!i^{3{}O׭ad8+1;;0lm;沿WkCQǜ!LagzEũgycf N-zgS??!)gXcX5VR;1D 2AZo9sEq;Ͽ3d/~ 9_wԒn?NrbF}04Hn5؍Z :I͉qQӵ1aha?k4~(T`ۭ>XB:DsZ <֫wNSA[܃`+,< Y糠rHOCb)1D1$sNʷ`0"7ě!"'F*  C PKhkp몟jHnVQ`:EV: 﫫/`ǴC@\o³VEL#ٽ\NHhBZc ^4R,eKaP{ԩʟH YhZҪr0HHHEoyFoowם :u7W\ޑ t+ (JW'հ&'~ 7ښzF%ثv7Y E[z.Pulv IN`cr>b :؆U#9I=k?F9 _u5asrP^ba 3y VCf;GmaĪ;Qnu~Pp k-qo m(0ϽL*qY=„0c}:Mױ_|XK y5+)WB B _Ѐ9ӥXiQ`D'|vnv d)N kU" ܃3"##((v kMH߱¹x^?C}=V\ժè^z jXц;!kpY?z]ZG ^nD.iIT@mL>fKsvF{N}UVP}Doog܂E O.։ 2?sQ1Ax w* 0!ʢ.\?v<`-}ϒ}֫CLcC3W9SᜉhM466P\Ǵ3Vj'ďC῎J4ү0$iTaE@냁Fv'C8h axYZ QB)a("GJ~ YxR2FEp>z R!gְNuPRy5o=DŽ01DNELֵq؇;Ǘ,X"UJ7g/ݱn\Ro F 815 ?:ƣcGpXے%N)I3nc]g_ vc9Z`?qT"4BR%! ID^'1" 3BU= ãZMƝW)g֮XTB)hZ #nX@I=J];__;o^BPNq›! m"̜6W(꣸[U 1ɕChkm'UVdME[ yH{1퍶PbxPBF 5ۦa+)@ }6ZW ;޽/jih[ꅖHx^r5C vWT̳Ch^B"f@ƣ[H0m-* MYv7Cډn>ᅤyeOsٙ-˦ge:QMEvlS:k{ِm֨\)g)4TAIpeF8pxsXQ#Dr$C$icvs.N;Z}jW-nwx-{{9©WrB3AgqiU$DCR"S({'״#y:Z?Vl]&M֔U3s7k`,!(hg1z>[TZmLÂͱu T9f7+{EqBC=}:Y_Vjʍ4>.6*D&xζVەCη2$s˔'lNoKP'֪TƆz;N aDXA˼Qުzvp{iasRbJ .NQ͋D gdll\\Twޠ8,#F+*rC !TVhgPd4vk@Lvd Y>Ʉͅr(HWE%wB5/6n3u1n82=zܝv~Y/ahd@**aWӌ 7Uj3O0B^.& aI"{EA~ӏxC۬MrPKcyЊ4=,&dJ$!~gU47ѭԸDbTbO.{R;~$4m|AmpagQK`Lٓi~uL 1  FdAH/v_T74O4pJc[cF[ғ3M`li<G Hc K$71ҺNmt_6Q'*[Xr2_/vnYw#!uQ 1, ՆS4Ts/fn#"LNc7SNfrJtaE[S/=TS\ Ըz`I$^06zDy[O]l+^ +=[$/|c ƗH߿VPuApļϧ}B`׮.yHRҗlv$-ȋG [۳S"}'#m)K!*̚ը<0%EpD{0s?WEO8uR%U*)K7 !;~8:Ke#^zo) h7\ֵ&i,w!Af?6m&_ב]]uRH!uB0ȃR5FB8S~oY~0[ f=L_R(uQLHwJ㗀|lsr29Aw,em Zp^% 2_my/`gϜm)!.sw/o˺{ttS,ZJ<*g4.169ӺhYTҙh1hؗ?8BXlMnO'Um#VQի}^-B #. cJvqq1 WayĚuAH&N4us)`]o$d: G-ެ*ItȑC;gč} RJ>=#EVL1<Ě+809]0'e9ҋM)EF@Hks KO }f0*6i,OsNH á'cNI1pC~r#k)M&ۖk+b'<裟!5d={J!jPCD'm3);ʧm;aE\yiّGLcp /_YK'qdGa4;]Ǐ'N3l03mT=@۹s>+{&fEI w>ka:`{;CeDg3+ȱMGf׮]ƍڢKO;7oC~h;-8h7*J4[o?Le|湐uJFwo=0_K/lXR FƜ|G+tH'ߝOYۗai?{,{ز/M>ZMrO ʯ~ |wbNB/Lt Ig՝7qolv&pKPx¢mmf,&6)mvsjlU0hΉ1Xwlf[&IYxֆrh*u ŚqB[}`exޣq^Cb; ZzҲ8#ٽVOFAVQIˆɺ"&n,*Brݼ#!N 9jsXoˠVm l%bA8~Kb[jpd$"4bRKK1$Z?%\@Ge]p:L@39`D,J#V=V 6zvp{W{h[O}Xu0/H*IdChއkFIR+sHOEfӼ̼*"J@##n`ލڊMSިMh]UkY7duT߈,Ak&ǂ#MG8$> J>9Z_FWEcICK/-G?H~Xd_euH1rF:q[DPjIc?\DŴ3p<>#"X|)zL(^V$$ݹJcU֓<>Pn=zƾ@G:yDR@ƍAN^`{E^ Gn#Fý&;Ge0)hrpd$WM'ntHp-k:b99ʣRcnd֮ 7(/:ᛤ&0!a$}ٗzq-'/ͱSk)m f °v!ysvp*eh5rK5͛7w~!Ӯ- q 0q7}L; }JJm]kkK}}wlj_6׏o 8 w^$hOayԾU۲`auE_OIh;#`$tRFi GB'YX3o.08A[c ^w[3G;/{ǂą:zyt& L%h&\JvpG+^ٰ%^56V]tut="i/qB|t&ҪCQ:Y穠(4:(cRIƜ|?6VWEקwoZU1Gfb62O}[ :A-o:y:KF:ԗQ#~RQlwaT"ƫAuGUj}$e\qjIѮARq$V ٻ.qCZ_{Y}~i\̟;ߩh\iƓ[?}0W]/v:M0~E`ԩV3SXjkB8C,wJ,$;TM=pg aT:6e /Hz N `, UJ Ώ P;Γ/rN’0^{2x.`B{@S蟔3~^P:3M2쟚ï4aw~J #&s"wb˞jn9qOD:Ik0z 1lM1 v8cZh}[ >\XXX *b]`Ç~F ȼAlLV9; nF$Ժh@.@\~yW SV^ayI>|=cf=]3#¢aj%'E$7jWsQZB@Zyߥz=0Ud&e%;[OsX'ndGzm^n1~ Ow"-2ߏ҇1,/Zw_e%Ukձg 5Sc7ЉQ{:i=j?|ڇK"XCgәl˯j(44'g XrE11HDZ2GF-'~SNBH>||p#[< :aG®s.u6]j&$вo %]f_&6oG,w[b{&56䣾>ކJmXdXrMͮe䧔WgF37wxA΄YcJd+qxx9+Ы2kV#n^b_}if\| Џ+*$7S6D7+k+/Ng%YOU„POF%.\]s{s:Ѧލߢz&jDNIE]f^O3}JoZܵi[֭2O]eB[/[vq>6X#u)k?.r7FB܍XRVd8ȼ/u:UЪ-E+i] "KNHHQNOc63#F2ѿ~T k˫{1<Fτ4M[D[):YF[D6FA8SПEw a$bi,gWMuQĶĎ@H}u)L&Sh&>њϤʉȂznߤƜe-UN6Q=端 *d?SA"덚GẶl=,2)+ ЄSHlĭ\ׯHIXJw~깹C=$@^zHį>o)\C}xzYCD bEMuiCҝ{^f ?>B\\*֒ȫhnjUԉzN4Q+/L )ܚ/,*3y+)eVlJd^ǃM+PL칔˫ÖcW8+БNѨs6ԗyÃd䊘ػO)DZ ?2ӳ ֬T`܎2 cɣRNwd߾KM,d `oS_t?z|`A3V}F#AKբ{u G~ıQoXLEF6FN5[gޚ2BCK#p+'>fCCQZLk2a>4w#$to IH*u}kS`*dF%vʣz{Oޠv!3#>p|[\]+)a(704W&-+PY??\pES1=J[H-$n:X#y3͉h0)ۂ6+>Y-'DhIk1ԃmuI!yTݻwʙ}Zʘ &݋Ҷ3=v`_19d+F*sj[7 VΗ!Y-Xu,J[2pmԮt{[ΆFzkiI[޲( 8e NTp/{ {"*(nd(RK)-mi ~Jן.M=w;6߽wv-gʕ(s,(ih .x|)έ84L`eBA#7'Yd,2j۱Ə<Iy]|RH2yl,zWX^_@`V-cs ȝOdnS bAlLF##_?B Fy;"ĕ9@MO>=#DxhP[sm3ϰ^;s×# 0B*i9ۥ`2~E󑴴tuuuou0=mK0)N]Bʹg~1ҍ$ Tmb{I.E ɱĞ|㣪*d4 6SrmC`;Di`3$A57J*`'!GJ+~V2; w-?&jdV48Å$za(* ,}4׀_,t%d7<\z{_LeCZRY]X쳵UGγާGc(1 ƒ6`3™jF]K!#sk⊆~MB2,}Dh3Jr*Ɉ)[B Ck>j7?f ')6~g8?V_WΥ2#"& Jo.bprX =.|&l~уո2ԦA\c&~(u,T\ @axCI7&Iv O#DXB=.(ts~L2Ԫ'wzІ??:FP\Iz:@$",8u.%rիAkL‹v!;2? qPUpKٳɨ ɵ=?t׍hOΒ}O3 d>")*l@x։T;ۤ/ZDtm,e{l3ơ̂W"Kq핮C(>z-Ř 132k^$4CRfzjL^-: * /cnL݄gX|LA&9o@Se#!)"{;&sb8kga')&x.;fA*a4%0XpϩWXxyiռ~}{̍gPͬ9\C|H9zDsmMe)kGHD0!vd&#CVP}*(jL;3ǨUo򠂭FI00'{>/Oa-zB!aTV=r6d-ouyft npݱoFݶ$>טV<#WC%! lI9w?3w=0gS^F >p@@S5e !&ۛ͏B|u@ᖼ @"""\]]HG&!$ t"c"}WhRc {6ަB6p!<^e(\4i#fʪIْM@ìPQR-ln=}K~x īޣ{G#*&B iOۅpb')1IJW̙L Dq C񜛄k0^v@[c009u`*uMI l3 >עN劌Au_NOZ>^ڸi+ϛW25eQ+j>PnC J C{XQW.V՗ˆ .]"Hou#(GG!3@wj]B#}A "ы.[w4eJI.#(&m'*5|aB~]Lm7;>7YA rkfEJ QMfb5gr< P8L|/nkpAh3Oܙ.ɊӲd`$ŞrA "Te{`W< *+Z{_Tv`ʦmZNyQɝh잘5qt?9IᙶzZ@E^+rӇĈSI}IƯROd4Կ$?4R,+y13d X Vb#~ @D2'ѯ$kɃ,P}Muo#>6B`N/Vnt0RCQhT{.=xf{_Z{Xev ":=iJ X `KJ.bJ*#h,~pIхM+̨C @̰wDd:8Q Eup7lS^+]nͭq|?Ye]0qU Z0!m$'2Sdkmy<&{LQ 8vA n8, w <\4tC!h o-,דR4D`}%5Zbn=pOĭ;hwlQwn4c(jRWϟ?˷ ]*$X&͢I?{wN(!A-76r} .g":k>v2KsOb֢tC#7ȭZؖQ]p"FwIu~st|:ۉKZ^\ի֓iVLN@&˭K:hSEz6kͦ/#!# 1b%ӥZ1sjvjg^#V]'41?m"bۇ6i Wqm{jIla`I #Ts_pmI&}"Vn< kqEds%P>b g 彑JF_3U(&'~>̊*0w u=G‹X-j\rUt g:#m 㐅0MNʂ+}(Xf?T2 N )t%"l,g`щ;n`eE G^_ba;/~ \-ᇊ$+BP1  ۈ?6my͔Ͼi\i'> ZY{G(Z6Bg.C%;*Ɉca`Mpl0qd->(;3˿eD}CA!AE&UW^oٟY*5מ4\9mh Q^4[kt`ل_K'S k.||d.T0x0?8٢p7p25H+ra2At[ I*gC~doeG(XۍBdB WTM;'n.7l_U״8i^YI‚8_z@_[tǢ+# }hBZSAuX\_h)Bs@<"/܌IV[: ? -2?[$i˳Oػ=tMj]Җi΍* GH_.q: 7vC1JpǙ6z"DDncWݸIYNn&YŅn9 8Gw2gdB*YXoDq4ITU!:3 -"Ɂनcyy#B:Y"A@l4ǕIXPpVٗ+0\A?Win X`⩦D*8Et&e%IhjݤMq+ >̅U7c->L%1߲;p\1Zc 2,2Oa2 Nsߢk)Ȼ/?4u0∆3( v1^My-hk =mq%&#P>B8Fx;"A柫|M]udXIc+S3i1LOw$˦L3&`G/&$~'?j";8fTq?Mo=X}9`[Edtw{tE8Xay=J7?LXJDM R E8ss6sxs?7H^F? VAH?n41 "}}}@P7r 3 0t+nuDn.s୞1@;TJWa͓SPI|Ĉi-c,y$/ %C>VIlWwN@ňdTf\uk{% d=`2a4N(|Z݌͈Ln jδۇoPhg؞v4ؔ$K= #0J= PnIKo6$D5Hn3\C@%a.h(67R.:lh^L%,$+vo"C Dg+J^kO||ubG (P>B D?)@Cbzd*ya,lE^lpך  (P2BJF(P@ (P2hIj2KOg^9avXesM@aC@n>Tv:PPXB1ϤxfqPjn9]J501%?y$ _zJE6lk4Ml8n&ƒdHe8垜TyY5k 2ݶhA J gM1*(TJ) I5aᣚn_1J5S.1جf )iQ! 72=M"ihltfC9--S22iq j倽_o6, W2)%3@9m)m{N[6eړH=mee ':;hǛ#Z,(-* Uݠ\U1/W)_sc)c7A_߿n1JYvv'cC b@iU1ާUy~?az-P]Րfdmk1{U]TMFu,ZUABV~)?vdQhwAEQGXl!-%T~)ZYP?*v&^U[di`A)2 4<4ޛ m#R-yEjȏ UeA26 J@I݉vdy͈; ~^x&~=$⤉4oFΔ ,g?62؅9Q*+u2Iu#C~K[[aM)w,ȳ愰lc]֪/L|Y k J!k0o^J l^κ8yBa?Yc}4~Ս2C2* z9 n^%Iu?B>i>oSKZթ~ͨ'~#< ~++B0 6-Uly";[@5%0<\4]es 2iꗾ'B`j'#/?42jXpPX{ea?YXyН(\3]fnYHmg1;g1UPT G:(euI+?շ|͗, m;$ !JvX@@ui :o K o2/(m2)99Q[ALbDiɧ! iJ[md9+/ ܘͱsSb!?)&}Rct(u-!I9ɾ& =0QlP8]I@e`찟WQ(aT|U+maw!RD? MDxUwJ&+B {\AvTU (#>%Bn'+BGH"O, i #믐aLOddm6[еͦ|KF$۳+LCp:IzVU-ƕ9bxXf6GPTUUiK\MltԺ-:%(~IoZWg2e8"-`[0UfO+*۵ϷfJ)(P'YTEIuXn3~@ 1u3r4я>!w7ndNێvv^s/o W>uݡR֧ P g L d-Ж [ aKAKXUؚи:GC@4(P$X iڎɱdP@o%#(Pd (@%#(P@ (@QP2LF_$m@Bm6(xi6$#I?*!hAKAuH.f4t P2BJF(P@Ԧ 3Ӓ{ $ai3/h9ޞ0䱗FZd/e3o%Q گ\]H̹E$ #jS?:5qd p͒{($[(}3lX!Pi*2=n9d/T<%3~ *i Hq"=:g`pRSDQd$!S*2̨d/ ]" ؚz7TؑE:. / z: ;28 \ [\{- 32IgE}a3,;2,t wRBYG2jטf?Gn~h07]1P qm\q)yG(hɫE'4QV{tp޽s GaH < wo""t /őo{H.&a_#^Ȉ\ b4Bm @Y aUcM &qn3~/.=Cu{VtipcpΧ^c8dVUPw =y02^q7\"')76#@}dN&5%qlWW NHŴo|fkOLYbN#\6ݽ0 :@$0ka&%BjX 8SUg |/; ay$H~AP Kpl _5AOtGbUuM(נdD7׹1DըvRXe[)2ٿ3Ԓ/}QK}.fvD%XX䜱C4ֲ8éƏB;2 Ecx0}G1Hd4TXwSd:7L_(3zYu=8m޼&v{HDM!hO'B%y0}IdVC"~ ^Y]oķ̌>1wjYZpQ'$tiT|+:P7%6<5ܑQDDDӧts):UP@wMܢr[H߈BeDhL<#xL]}#%n#m$e,6=8XctQႌ\]]{ѭ=hJeQ25"&Xb2JP2⎌x8w*ƀ ^'X)i"S/Эڛ ^lyCP (1WO6 f3̳Ğ_l JFt832lu]/v!=3QU[<7_CV1sMyP=EJF X4L0< YGSY5ߚ͆Sq2Ǣ\#<]xEeVn~h?0hV-'CL@X H$CX pbXQ2D2<"c$ܼ<< ).d$ڮ1@C%FG){xv("]leVǣsȉ%#>U73`&+[[&M#Sxq0Bj_`Y4+chP~LkQdi=_6 uW>Ɖ`?W92dO0Q;#n]$"Q!S8,o)we쇮EP2bˮУ*pEĬ 6Ugᘾcܽ}XwO^ԞJFt:򩦼]1i~VZˣ;rDTXp %#<!u/=} YLOInwct/ K kGL>٠ծ̻}H7^qf#-,gy7>sJ7(a,ٗkϽ7f{#3"Bok o?kL>qZPG18(DPT̓Sk,1/JF(!w%jbq00^#ڃ66}ҠL?&ren}ulr"(נdĈt ؿ{*֩e̓M-BE"ٯ]Uga{}K-y$cJF xJ\+f9\Ah)%'#z5*繮3QAɈ2›B㙆C9a1=:4 l;p ikױǧsG;nj-gsRq·_!c^ƪ̽ZBvW /MOКSO)4ux`휘PyVK 8wێ% ag&l5'{$f\?Ӎ[;O<9D>zaIߋV"2hW`gHF]/h D<<F3#I'<0mG\뜫#o WzqRGQpڵ3Ti!?u?VɎ^=(rOA][ +3&_M2Bf*U+{%N|̽s|BWߞtU z ܵpeG_td %YQ\J|sTzg=o7?;4 Uё#l=^_Z44! 9!@gm}@5g l~PCR˲\ZS" t}"m6TUϙ.ia)D^X" '[7pA^Z kU0`ÛdaA=8 Cdg튕KxX lXU@+3yB2Q+7l~5hTV VARl].?Z n y'NnF ~,!*Ƴ^ki<'75Д@{K{ð _uHe5uiOBɭYL6S,iJڠ#m}:f0f·;-1#O@-] KK14,Lṫ4xK M Gz#䯒^#bmy[7C ȉ}C 7 J@۷a2Aثhz]~at}1c ;~BVVA5&[Z:>{OE`Ŗo{[W9*JvYRYN7 s*D@@ƍ2 ϼ+i1y#PuelT4sD8+XPi,Cƌuy0ln>3zmNW96: 姼>\ᄇa-j.l>Ķ pD ds`lڴIJJoP_{?:aLO [D6GYO,%f5X(44!eq$N=9UHZ@ k?y|+,TK*Ƥ|c?XTbPᎌ<==T~ILGDR>͋W nh0NqE=rZP )  E 2KI wSbƪ(pGFxts_\Xz|MMgO;ֲ4%QT?SX_qӲ*rIj ݔXvA8s2ruEHjΏٔⳘY5mUeY8}X*`m4 <fi9r2t<K^li&册L W߼йW-jJ$ya/O<]znP=| %VJћ53tȋAۏtNU !bu䣬\j@Я:Wfa`ԹOYsZFwtVYźmP;"k g `QAɈ8f,UQN"CBF˜. ma/kU1˯ʉҥ(^[QAɈw]{z{zC~q3\J:·LDDϏsAӸ`vc<ƒdvBaa"MR20 eyi QMeFP[WxʥМ '@2bRPLVF1\<l[IQj>+==X_30;,[ߖke N=ң- ?2~.D7Vf5lqӄ%#N1Bc`5kuag~|})oh]Fg׏amnc'ާ/hC,E>7k]b#cC ?%3~ *i 'iYWe;x Uk6VarZZ8T8 v\x3Qۑ0EAsoA >mҺ6zFCrkb>~QUtn=c%#^0@ћ쌼7)yB83ҿϳ~WP-bߦ,>BS"4 'U<~Ecdf J@a(N n&C9P~8T.xs[^LY[]T% Ad2gnjҪƾJJRhBɈ;ȭqaWZ/5 30X=aIߋyprݴѲ5kcay;y"jj>tRDd\ܔ300 y(hB0%QzC.[z o[{%r`}M떵sjz G^8N:.b`iW Ol;N,'K)9 <\4]es B3A gjP}:uʏEW;sT V9 m`a6Gr` ^bsiqX{U?%#⢂v0Ӱ0R-?$ nͨ8̄lT\Ѱ`5c9 K ogNc`&x\J@- Zcj ó}pB[)-T3gNk`G-#qbUyV9V?cW8AQn;;ل0[@& G24u2b獄+ζ7@^NyW9Ne7TVڮMI\c e7]Bn{׵5:NAqb+jH1wtf@׹H\.-2]uN //߿v!i)>G2(]|2/a h]6^Z􁛂 *eaA$*(PURM:ڌB ^ȄT#>(I pAi˒K0d!ft 좧'r  f" k;Ux'2ܛGZ͆~Ӓ0t.C=% 6>hjn1j@Oj_,`z8X֟80c )bC9r bɨJ,R=EOV}a7 }qMq3ne2AEo3–7 S2"Ĭi3^κ8E Ig$(o['Ȭ8<\L2fSm~H)h=M=s3JVgS _Vny~I$g|<ȨeGBaA}_T/ aaaINٌYx3U@dDe"6X*4  aҰ$ńjYMHbseS^ߕ x̠Q{)LbDiE ?N.ŋaK;fs {ݽ׌$VbZk%L d0sA^kqu3Q=h }I. -·p\: &tk Q4-U}{^Ɉ,ox!2e#F`xSs|`NAF842c' 7%:w/?ƌU%]~2@Ɉ#|Ic,b;GZ xLiOmMh"IV`>HgkF(u,;}2N< yRUIK놮C%#FN16};,|y!d-kn%_&?z=ޚCT6(P2b;{&k"bp|M/F\՚:K=KsmXk3ϰ$4-JF$+:@C̣rXBd^_^rPϕ!uդN6N:>؍s(NF +L #@ow3u@Fwj4}+)?嶇A)ah+j?ʅncrʧl{OpK5y۰EAQg78tYVluR+n{:Zud20 u{fWh?Y ʩ}ˋ2n]]K@=*8nAtaLCy!An ^^ܤ(zG\`&rX{Pu<\Jsch3l&1w]{evAu/[R +_kJ1!7FC'4MYnjk`}&'bQ_SR$ N{4 ( Opv401QaGAlVޘ7  5삪?e^;i^n-6hzĺEFCWڬ=cM7մP+?aČKO K۬c W_3+}}aÁ=wWbUWD?;iΛnχ]V45PK嚿LF15{L6cg-/od;ذ{3e&^I֞t%MP%"Z(}?%NAb~% ˯3d}:5yu~}7[ױ~?`ҰaM|0 7~G^`ߜQ ė}y{CiZZœ9q5$HC0o#䈁& ds6ƻoUz&SɹYq.11a^'O䄉n]P"@Xwo/1mwc3c?u}6kBO[򺏦e 1x%Pe!^~oM/E y{,iM|S^I-]H+uXP?r+-|w[w2GE}0-b 0 l֌TRu֣)+9vP2M%_aI20%Dϐѿ(dʺ=.W9a7v &lxyvWbƋ#⇪J4HFXAEA%U3F+x0!#h_W^W\4Ѝ]}É!-`&Yb }~d.\Vsɷ\ 5qd rDmjUc/B%#Fߦ"C݋}'lbv3/x/"6'EU<>`'髖W ts㓽NA:v=dE (o['"ِ,p,1Jݹ1W7\qD$~]TeO4RVHa؃ X=G̦z9o KuarnJH;7EDD Y<Ω]ھ٘`1`A$Jɓ٧JB/^v5šݔZuE n 7n-I@:?|bWUC~ j5/:3 ʂ.u@ [.wMp}JY@اcwEݝFEJ."sSS!k6]Ē1;2B抶`uQu2 ஶ! 01%0}K.Tz5Ü$b`"dC^{&{+|%#$2LR fu(zog:;IUn2-maR83Mi6!mD23OiN%AkP2b>;sMiiWBH"F*<>#ڪR|flWx)}*=0p+mxxzp25b{wO8sݖx{d8LU]8wQ*8 rB%P=Gn%-ͬ93,{NYF5BɈZ^v`")_v'n5SeG^DZCLmGo8 2,JF=:Ɂ}V *+G"/)(Dן"&u.Yο኉ؤ*bHe"u1꯼&l]$~$f 3ݸ￵˧}ȕ3}Xwޏ!b? .Ȉ 4j ]MwE*)P˪^)d{zpȔOSf7֍]unSN` {s#-|mp7*]z.Ub1RC h̘d6|Va&1 CG*S\A霰< v3EC+4]t7*v9ucDiQiWF/zq/X0@M^]L+Ӿч!lpVw?nx?C-yx· YϓO#bS" 4,}"mǨ;ugCk "ٻ_~)9҆B)2t)y)4eObۙƂ{U zf x^9>e;GqJIqYv|`QcnaE0>u3TK̴1!𜪨bMuaYj$֠▞7!}H[i[gςAZrCPf2ª-[G԰ O c,x8wGHtHHH4*X-H * ҈tݻᎆ~{l>ݙ l5_;^J`\{e|Ieߝ7駘&NDG6[k@VQ//*7 >I&Gp;.t&jH8d s佸Mz0H:3ߞ7entB1jH;ȯw%Hsb1TP-"me!X09e_tjmNoDkMC.*c0įzKφ=/o-ȉ;f7>α77sQ<{䁯e K#{%`(g9s]ݣ%l>1&c41V|uIY lx~`\66cA"`JZ?ׅxO˚ntZ7xfd r1 K,ϡuNq 04 g3>[%^g}tSdۗKeG?{P1C:1 sO Dz]pL ڛZ=XaK'A@bױ 7J"b$+"k非~G:k߷K`z\r DFT[0+#0FXºbƋ obyIMzFC߳O;Ӑƨw+VGLLW %Rgʷ}}eE\ʼ˔xl}L$TMs^\Wg{$Cqݜ Z/q-B|o'^c.LYq]ErlM@!59 &IHl#R>*dv_.HK2Nͫ;_/,ʥ QlHO,\Zf*PH(26kE;M7݆蝘 Y0XSAGFye⳩+ZbrJzo+hP#B+|5K8(Ѹ0>-nlzkjiXm;;Cy7.X%uHJa=;5B}`W@{I]Xrt@{Z[~Uݎ漹Dw %~{۰"Hn:\{|VoƨF vv| bʡ_˘̌,_î3[weA|Le;XiyHBvAC1a͌ɱaGQ_lkk9gbD\D$g`S**~UG(HڤK}E'v̶tm3.EfH{01 ^c/ ÛJEHG`SI籠r9|\YC@t\j3o7gUzěw$U0of%>XD 5{cȁ!BR_AЪ/YF&ZlE75F2f9/b́'y@~?O6նUM~-82FI,I}^هl/y J;P[D@^oTD>4[J^/uʏ)Bm+72z-!`p)#P#$c㭜5'eBR*tnfv!D OD;d#s't:X#=xx=tFMCD,_z֥J@PdRO4=ښy$ {% Ø:llla;R{oQ%Ͷ $]prȑ95$wi2ÝX%kde"Xl{(l{XZsbbGU9j}<>=~ҧu⳸`1CźZ3$,@zMv罖FZ7ٕ$>cW1R?TL㛹l )E+;zԳ:{ @@Dq}sS1ƨſ;h20Tg|-P3_Ylu}fnI-,6Bn[7$Qn~dCC]Goܣȥ;ExI157>f#gsCljc-و1J> 8vȨl(~,fK-aШtvS> | {gwt/xL2x\>#s Q(4Bɯ9]3?$gYNbh˥~of<$c LM/v|~3=aގEB&K@BL:+ҧFUҠ&߷tLhl(LU9yj՜$|WqSS2hnF o43]%(2?1Ti/&NH5f(K]Ѥ` YKM-ܙr1b#&eIe2`<:!H/|H{<#3J%h&[o{\zH)Wj>KWވD"Ʋ3jla6_#Kjcm`b ķx1OK(²Trl+o$#5IBn58L4$Dsa{a [Q۴to@uC+E $(SU'YhL؛JˬM^Z2ŽNCDdu ,pC _c`#T+ ) c@N6 6< q5 :j@m`p}筎Oh&al4ZH>ZG%YxsEgߟ>3 wQKip_w Dr K1f pLr.ːr/x/CrJ2"';2mD%bֽԥ{ pOJw#1&ZXe~:%vJN;)B<إ`j=rw[ ABzv;"A|"2g=[+׼1y=OMO\ސjg\@A6pznNY۹5xMv)ᡲJ Ȉۖ9a{8 >hƭ:lb *ёӷNH,Tg]Nód :oY\L븐x 3ퟢoamꬿVee6ٗ}D?P%KNiq;BB.i 3t:jRNX5u|3"`Uj!?|`*M/cCRr{vՆ@ΡEkTXoqCwE”=^rv~q7xMZsvrS :so !e.fF\Ч"PY{[{>o,ld&C̘{Xm͝Ef>`&u-+Z*oR'^yP?S:֑u`C4_ /S/{&" Ǧ6=I~,//O~1(&|OIהx~[}kLYzi6`y3N5~d7Fs?b*JTO3זM+7yς_p-#uQvϰQzc/ X64GQMv5 GTx*<!hI%UsgqjSr(q %hD6eNPǺ~/HYSk,KQ@)_*:%Xq4Xisdn E>|ZTXeŨEQUIc#١<$0mګw?4_jxK\)嚒_h7`/$r\BWyb_ALwO}WmThb%IisZkٿ1>Z^KǕţz+T \yAdW]bKL/>gdf;QY*5Qaq}FU* LM%i-<!`YRMN%]'fLڻKb 9f4U7wl:4AtW _P?Qí'΋JW% "e1~]Qn*ت KA9" N-/5S& KCQ2\O[!H>'F\ZH26FQL] |w?5YzWקjZ`̆XpBUs!# E%m qBPK~8X汻ۭC RY{2QcA ԘRϷE5CVOK9Oh.ґsI0 C¤ҼnOsLg};Ok c_;a[>޿rgsگ9$ |R[mT$E̠{_0lGtVWGȷz#" )S"+Z$ $u%qᐘqZj7֦= xClg *b%#¬>x2 m1%ԛ:!BZ%+.FYˆkC&Q=]q>9 JE&b1vlNӆZvF1XDc-FHDc`$Rg gU:^Tè.MyI]0> x8`YA"~:{zk@ 8e`3< )Po n^>Xt%xe1vGFi? h#6h#6T@6 X!jKX`ҭ F3*[6~XȠ$O2X`R F3(ϺM 0;ɭCō]| ?&m4#҂lN:@kLh#Qkq+}_F&TumA3kmݵYW\oyc;IX~*};#gsYE7Ȭ)V܍YDžDD)*enVoz1|{%;O(Ylڠ@.6"ʁ{K]^iZFPLcZDsF D*0#Qi/Zwi۔e6NrEP1n9?֕ ŗ"s#0ՑN*nX%gW jk x 2=`"tX8}#qy:rc9jBɡ;+T1ni G9ɸ5Wyv}>SͫKK@`:k0$޻F]j!3SAʩZMaW1 SK2u*O"qjasʲnCOYҡǹE|{!%҆367D}m(~(~[sg~AO-4D4]ᥳߔKgo'E֟Klʯqyŵ M--mX,@@$(B4  91303xxf7o >$Է45BH$E@N"'c6Qy 2S**Z`Sى$d(zryafc%^!d`zi#">+o&XsvYk*D'GXp9]GCm 1%j0,{n-gp#bYWt˔L!wI$5yILUfd}X4jm3)QT]zE g0CN6_Ljx=M 0reޥ2G{3cVJnDT4ӹ,4 u`YXEGEz`( IdW[\Hcs(9M[iJFZF FgUR5;^%+dU|e,M0ũ> gw.U%=oY%w̤{=!BQk #Rud헨=SS`Bs;ƸH ZD6eNPǺ~/;S J-mH&~Z,|l /n8/ǦX`*iP 0h_2˴9Vg(n WMZ~2uڂ {0QW?2Ґ . ӸlVjpϻtz*{Q {S{A+nv6iX]{[bh$"gU<BeH{, 7MNR!^1mkNgCC5YG)"f)Ar(!7[5Ft~/Eij=lߟ_w-YR3|2ir"d>[W˴.PsbQSK簚s@{ErLJ4c RPVMB{TMYUc)(Cưͣ_^Ŗ#FN:?W9r;u\>_Z5^Ǵ2X[Sqy"~FՀFR:dBRJ7xҤ=v u F%'ȅ7dLj_XVp:`A8Ӱ/(.yNؗ#cC$EUkX٣▓}e0 iԟ6Sr+^Y& p[~ _Ks{٫lzbz8rbt \! `6Sޑ;VJ,'pW^d@ Z)بӮs8v\uFtuJ[y[b!'dxQlkMx۬D2䷆}$D,?FFP9w臶kUђu<*>J%o{%<=&;KNfhV`9DܶQ52b2lFuOO.8 [| yDϜM^aE| ک*vYplx6uyag"Zq=/`JPSd?^nHMNRIEm A&CbRx^FN`])=ZSc #y.BzIsNrHGUGcʓw,,ۙ 1)FrX26:4!< M-E.oZğ]bFw`eځbn4 n/ $xy4{` OS{g?eQ6fϿӔ0jIrpɂHNW(eZrtdp\LS3WcPS;F/ZSKI8_~{c):JYIk8}K/+=D IobwHSnEms#ЖvF⻹G@DʄU'Vb N)+D(p*<$DkF?);V8L2}WMߜpn54DsɎſXA>ܥ\Hͳ:Y=HX'AGDp5§2P wB d0.T=Ћ]2o4`_m3"olMDatI $(BjrWyD@eWbX[,|u*(j#jjZA^=666#* 8%m|zUaKRv;j-|~`GFW8NW.E J?  ?կMiv!oPt؁s,}3`z9|bq2Q}(h!gl^Y&L6T؊.hRN93ڕ@dbv)0|da7| _Di Xr*N jp uayWAm4ïW ilMmXDbmljgg#mƿU5SXmTSSrgY򲶶ƹ=-^@ 5.9OYH A+]{mjt["^dŠE5(§y8z`Qh0؊YNOKqs^TC[+nL@K+ @ml ɭkj}BH]&"%yQRI&<]Nc:bۅA+oF‘"?3^Sر͙,\UqFs+[;u!:J2![ DZ 6 b!GG o= NW!X$4WKN [.`f1J1xf@ HYUFjEjݣ#/[h mJ.᠍ƻ=MouZ+ `.٩] N2"rՖKc? #AAL974vǧ,?j@'zױ(rR] f+rBL̦GB3 :V]Gh#hqcK$<5cv%s y:@F;oˣt&ÖweMOORݜ߮b^1eyނ:o8hD8 A)OLMvDz7FK}\?$:wrzM-z 9hO \W L=9)_=M8a6seiZTXlNשk rҁlnd85TsSFT ۗKK:RO܉`f6hZlmXFׂ֏Dǯ] du܊偩J]& VHz7zyCSۺS˫ثnU= ˪w`n;j;pS0>hHqK[fԼ i'7+PwcI)䤽G193=RXZz9K0Э̢*a` 7hpa*׵gQ\*U0wkG:z41%lCX܊Ɩvz]ء sF7`'%WUhb y|Cdܐ̢v;52u@~}+5M6%d#N&*mi3U~4PNq÷iJ+jI m%&t< ' #>w\Z )1 591 9IuCKemKMC+[;DyUܛMXM|^1)"$#!@(ɈѐVoM$'d. [Qe5kF~I7i%^AI7'#%Dh)Imm~+XCS[ckr1S[hXy=M|>6: V+u2~kkǬt3 yl. *i9.xp#]\n*?R@?஗ϗ5MNkeqQX}vt~Icx6 ӨlJ,V=n{BXfTt`3 d,ܒʋAq 6!"@?fqiܿ|,N 0h#8p- ;N[)+~.~-qt; m!t{cm,rβD5{^n_[ 8v\t3VD^_T}f >0H1M; %mY~IJug\ć~Ώ6I^7XƝUܶ)54MIQPZU=W"&?P h#_a&rVt`H$ G9DZ;69λ_-^wt[1KC"!9.' @q6yDEEW3 Ħ_+F|vᱎes) P?\\1))ҡ&r0R~٥ĕ&E+KWr*~غͼ$" ԤIE@>PDhֱEm4cܺu6np= k?=>{]T Zz7w;lFİR;gkkLWܷꤔhqaP𠦡U2Nq #fPTc9¸19!斶NPf 贷j(x[߼y^#zUT=+GP +sBQ9{yl φTZFA%)1Q-^gOIwl HAEFQXέߎ:CTc~_Z'-ƂB8óX|Z 1(F3 cc-^Y7_ܱ^4U3~#(ێ ߳!0(6g:֖CWnefSawA#Oʪ%@q>49ވjj@NaY@M `8L$}g_*9h+L虛Y۽{Q_ĿgI~oIb%W!BF~PIJfy'Qyg[ڜ7[Aٍ/,U힔4ͣFk]X,WQf#5x&@Y ?;^p[{Eh#l3=u?n(mcAvħUk' bj!#!ҕ|:+o._a|{oo8hoonI-.Ƨ] cG ^L62OqoORo51(o|0{?'jG05m !VUG_>|y?5㥕 @F%;5:GyqCOO>r}wt`|P hHq 0aCNދ K(ܭ-sb DM|[Ѯ[եAO+ҽ:UvMG-\ćo}P!su~>]MCc03Lfq75LY-B8h'-;W/C!-폎QOYK.-tԄ09+Rfq MQy}9&@㒝Ej/ܾ\b|58 MA>Oz*L.>ZXiܢ8xHgT*sCx%#vF{N:(B9G 8될@ m8ouL:C,a׽.<ʂMrwq>4h[淾;+]W -󛘊j3uɿ3u|#(zw{~"h͕k>{?DŽoSR&4׽ԥ{.w4z-#^d]۰u5ee7rxk"Lq:fg" /uMm?grΧ:Y 7IYEՇnEJ wݦde\0t+l\*J:JM;1U-'(W+,%M'"@ڛK+,:0ļR8E1 ZRm M|oVߥ㵸h8*!j!2ҡ56k.foD[sIZNdžCYL勵|>U{b^qQ+:^X9g2t&'b]QG{gG M.lJ{(=|b2xeDNYih,zB5Sp;^Q\]ZQށaGs:)ewtvYUǓҪFb"Bz*RȈ$H&4~ud }9IP,[؋ܠ*ؒQ0RiI 1 -UUu-Mm4$j/%iȌ]䭵F @̀tJG1},6bo.aD,(@f(\k6tj]ˆm!|0]/^/R ~jy_n.BrOX Ib3np[vl)$ؔ8)Elhj+(燄BXB{-y 9xfs+.'U Xh9䄘9Sr Q957BgV9[Q0|âDf|9.~6~d%s?(zUTm+)0CY3v #;ᖬ^}ئl,yu+q b OϗwRc( ~Q)*+tЀωƐ$"v ٓ$Q1!ߊy6hRI^nQ{Һ)A ؙGK[Oi%pֈPK΃G }>W׷3 ˋ\H$b\gzW%$ ^zkjP^diߏ> ƣpmi(;`*>QEClT[a-UL`Fm>\0X@bbAU7i+lvXik!KDJ4GZdTn=Mc<,u}Vkhj3:^ :hM>&t սpk4ƣJ$.(SBD= \B Jk(Gy%ufI{q!9p'm;zuaa,_qqq`/?&|ImzEf#ӗ-^ʣ H]!sk2ǘNfm)s& ?=g|<~T *,2 -lMر i[eUM=S`dhT.N7O2Ң!$-ቘJHޣ |Һn9 m݌ '``:YxŽ6u oo^U`_| tmֹ*jhF8s\6+tt`Ѡ;@ic)1$_rZ/r~42A]j2 O艖]-3'M͛H޼yӳ///kk9`!%$0c9w_Zk?yl0ٻꞫ &jnI¸TēI9!mhzfZTG}yytxsPm@Bk[/T*MɭboCXLk%5=AJn%FŬ(E?i"` fi =ӄ FeB[ D&猌U+~mPc O,Dׯn۔di4AHs7wEEŬ"ۯ#C軕!0a4r{#ErR {ǽf:DXNya0^mד41\ t'ԾGlο8.(Y;13.My3_~#090qI"Va^呓8/g~a8,J}ė|M ȅL񣥵mk3+k\Y㧝/iɂ[@jrfPFRb1&:FF555 w_ˡWֽFeϕ)rFq,/!5ULN?ӑ%6 4jŪ}ܓ5a|8)$ɒ+] c"]ױ(H@q&Pf "(]}P"S$cDR.{)tWx%{upH6,͗LS]ߪ%…B0`+ qMaQ1h#p,_{#8o˼ʏIg+EIGFxmG2٠NA2Qo =RO#Fe+..l#j.9*JzBsIk/HHADSשw 9hيՏO/.[J*cSMw%Fu./mh(că2@ڂ\ bJ3>_F.wrێ˩sQZYU;/S-um=VG|Sm v]{C\'PYUVK8@AL9*kUzZbw) |^$Dy_KkͲϮ?春<(FQ!pچNBǿWnt}sAS43P*x.d}q& 0 yy_^I%sҎ 67Yy^}:&` ]@J2dƛnYNA$MjZ޼B&qf2m hve6;9'[4n@~YUܫ#'E=װMC */PէGX+sbpF1^]%l:cl]L})D˚pxjj0;RZhe$FKplip}:._o1{q8ou$2gojSwq>4h[7Gct{%R H-1`A=9Rő\}^P=I'.mufMNR(n$,t;F ɑ3m˹,ug{ 2+}J!w|qˢ䖣ϻ>H;Yah:щs@ZY 6|luq{&!T`_Tmި<{!n\WKۙF3O+p9:\H,ճ:mQ6cfD~BuYOxABGMJ ˵ov)c*Bwi_Ɂ^c$ u1xl!xН|ü?߷B 6~8۔e6NrEP1r[6燞ۺrDrVva&[a#TݒK$e#C#\pK}S*(hvk7yy%u\t.[CϭO.h#D? vڮ$,ihilnonhi`HE@" $@+lE:~,IVJVյ\x5- ! @ Hኀ %&Ғf_-y?jR $Pu˗'z[ķ7B$Vp~l~ #H콥ͭU 1h4RNm"5lcw7aZ2ؼCPyZ9!Y4AhJs}B?] ƖΎN \LjL :TRW'FXsu] 3#Xܶ߇̗r~R5_.rr30.\>Vj#WH}w_ ~׳ϣ8QLGaȝDIM^!Sվu06|>O,ه44҈g$|Qf5nF"Lr;h LLE :˞[ȇX2e%,(ʪ݊TQeN#{*=h#Dq#߅NnV|}Q5Z gIeoRr+7 [Y8^ O*Z,t| eܗSQp-ԼJ# 1VZ01[rL*Wmo{@{1!_Դud헨=SS`BH;ƸH #j7J7:yZ/a]+)UyiͲ´σ a}+ TiM]S`2:B\tpCmٿt{LLYАMDu;Fj;x*??{oHeJ$ii JJT2ewRHIHQBR׽G׿˽tޯUϽ}=|R PagYJ^ NgnϏ=Y[g9^UӊƍHlr6gWQp{GO.i3]T d4Vi2Gr f0_wAr(V˹QDHDn6iDs,&-kX((>wΎa.PCxIM[0T˪[4 j\Y_ؙxĊDUfYZE9lfM_I_e0E6ÖӌBu,ON_w@>Ϲu'OH{7ܢ{7 QjisTƇﺵU.#<}&WDmqsPnWs#VS;@j~նV^A)Hl\C[w\"r,[gΜ ʘܿ?&FrSmb2XxƤ*;>&y~|IKKNqI f;x-Skg'nVg)3Kx^5:. >'-҇ wxy3t[%M.`[?\=u(n14\K5dd)8__w׹[-dt}vdu2P GX9AZ^Ͻc/DE$'Ӣ(^ͽuZoo0Y&L_qvvs .\3|䦲j2oa.&d}c AV ϻΧ%Y4$b ,.&H+Y;sŌe7L9:& z wGZm̎:{DKtsko?zΆ}% ӓbfӓ; X  ^3y|i׋ڛԷto_:dC+cq2:8p F7v PU|SZ!Qn'*k ZYj&+l4fbwMmcey1du>-(ʰ!k˹G`#@K%b< 8vEPvTC~ K-_¢xWb®/ƐDD㮞('=;e@FmyzW?Y]#S 6䖗H{ɵbS􀅡hoA?"ˬ-/|,)u!}{nеurnjPq ^O,r9bJz/ō^NmYe%X0 _W6w Kz^AǛЃ`U m5Rq\(cb8ޟq jFEW D@LgSSQ8&ު+$:[4uN)ɵG\t qmLJ]v:![Av6 TpUt ydK'WBVw u= 3=u|f9q<(܂UgMK]T_ K[[Ur2uv~:-t̜gZ3wvSk=raJ=o\"Yd w9y `=C`x~ 141 vo:U*'-WBtJTg\]s$_IHH*/Ȑo񹒑U\GUԚꩮX ,Qֻl!#?T148h)"0p-uM;?m Wqg1:ݦф+DW5, @ce]zqo7krxtހ5 hlmsWIQ+%eO ̎Wɻ`* \LRgѕMJgV;6SkWoOZx/daFE[fbŜzpP]hXrvl~0G{}{.;$+2_9ERnamK FRO\t.Q^fPϕ -h (Jp/;ws1:dD\vKG5Y= O*p6`eI8beupzu A.L'b,ouC1[Hp\m^^^1~0p@ *Uv ۴H`&"Xxn-J3y@O6PHX(Ǥ*owԑ$]\~7^E7d)}\7kEC(An+ HQyMq3؁dm#X X!iq&ؼ{HJj~ҹ䘫騜gRaJJZ4 ] 0uJd 벚6-whPWpaFف/Ufgb`>ɴB?f0]UUM\ ه^Z*Da[{w3>e!DQ_ #siq\oKL6J+g^(@ZdÏ~3$PnƎhb;!A5=\>4 )scjC'%SO5֣vq7}A~sXC8N!ҡ#&ˆ<_ A to1饡{XiJKJucAyӭׅu=l e}Ko}>vqҩ[/)2w_"~/mA}'`P|'mWР($,4ČEھYnUe] 5N{e ɣL҂dғˆqM}A69W?7_OWTK;>(n1f.Qa&]I֪sd*׬FX>\O,x&u9%E 'VFjfz궮nt1ҡTx̔fTb |dxRuTtԔ (vfz^:ѽ~; rÙL #"|},o$$gW\yyK%=- =5+  XWQQ"g5^$Rh#0*8yWϷU} 2Q/{$ՎNG~l[MʥO7OG( VcF%rbۻі7u?kVׁ-@|{qxɋsE0Ѣ{~ iF3Kg3PXlTsqxQ{yObJ³cOsW C?WiKػݘN֧>GMvbT6C]{Tc\kmsMbKUìu$-QodLꋷէ]u3sN+ޡ?xZVL)(oZ%+pdqCv0u"#L6 V'f)[soI 2`%T)2z35Qu :F' !hW)“2Qj|.?^.R>$$ݗ-W t$],̤c{oc_Ů{x<"E 7]ŰSB6 ܀ܞ~ o_hGG+Uinǡh%/<[41ېsIR'">/ybG;-tBc:@Tl zY2>EWwKD&l`ޱ6%CtR"g\'Ť~ȡvT'd^whQ_?/B0?CthnJ|]2 Ǩ Lubȼ+#Mi-ۖY-ra STѴУh y]H79o'&a;=%+{~/8(l]9dL3E%%}'5Gy.J@8Ȯnso}":0>нߒdNh) W5Bu/?d QV1 ?|\i2`z3ZY|-%"+0YqAkg!X헚/KJUMlW!LZxDF  R4֝Y_b,A0ѡN \cJx 6vcS۲FiQCKEӗ M*y,JLG@W8ޭ`Uz/H}좒w\?XgetB-?gسRE֫Z $cED1J$rϕ r @Bmt4 XzNAA)HPgY#ry,-" ̧sYMm}.m.f&3Ѕ33G߼`(n#1o{Q[s6 18iUm4Hͯa, kcs$xT ^%J7i#WW׶6 +ޥddCgBGs 1'RM[W/IyK!Y1NE9c 0cQ\t6 w(`_rǕfZj m&&=[%]`c΅Q_-V1 bIX{t*-sb3(&w)]a7Ȏ0[TJ !w^RSQ 5)))?+#1ebbBGG7 XjCF~Q6ވ{swΔ(ļruS-ɍ&O_ڴT89!r5?0 \yڈR e}ͺ(?2|,^=kzs!AQN)dANz.0{*jT4Rg{V%}=);i*IG$J%"jqj_9Z_b) ~*< VЌHG!ލrXD 0Vwheeqɳ1p^SFd~x>?e";w3?Y`Lf\J$6=4r((UpkrF j\h_qò?;8ܥNQ)eOCM:j6-8~ FXo&n&`]86.1U7 G]?víQfb`E{՞'3СՄ˩b: Q1Md$aB}&^0 [89|L'KYSsu1z*]~l`{vVLGnm 09Y^G a7i#utᄌ~kt9*a73:+C]i8k;H=EģV;Ugv"utݽXQu#F1pbƼkف8> -<))MF0*>Vś ,:-Fb!,Q?WD9O/m_8FϕO q+<,ci'A:Orȁ5re9'ƫ:*~vfAN&Fz*Z*nLkKcgw/VSN_r[&3Yo5v^Tt2";>QJ+DOMDuۻ5M l?lEB+ \ʏCTJȅa0b{\qSik(MUύy̪.*Q--/yoD"wͅs%}«W ̴pLBQ;: m= muMm=4\:p > TS }MwNm6,^A.F^f%g .*;^Լx;u\Sz+),=x`В+-(s@YN⺚ƮXlkş2 첵~ A.7ϷUτR6EeԏmݴԔ2bz Bb,+ky[ 7oF~k#O*;V%PR o1vVgh2vhl1tx.b<)x"ά+ת37im@}ˈ}3KoS+钖z;cΑZl\^^~/g!Ǟ3#òR2o'mƛ;wIIͯ\d &R}*gyOv:gq/%`}t >|29ၿ%k״-Pkz: I??=0U;aBJrQ:(픛`/sBabGN,S d;HNPV%|񷤧!#^)ow$*K mYqIeKa+:f-ݽXӝY-L*`qKI]),47ݶ֙Նs4%n-NqxTpހmJ?7'k's߾cCa;~,4.cAGѫ YUDcdK/I_6L5=D߭=JB* &Y@;Dx3B~ݨ 8xDr5;*qxACc^whu>Ұ l㽘IV9~*r'im)hE kag}^b 鎛YA$lMZ2b {=3-·f\mdyﮯ9?ɵoB:V{J"i#\s.}Q%&"ھRCqOj 3b_aGd\ +[ hll LX?-1FiF'*;S>|-%"+0Yq( ڿpf^vy[XP̨Mwy?=t@U4UʞgS6K7mcc_En\(`HNGpsɌ`I>bYlNH%G lt3(xWю  |l#Ӡ_ZY4NG 11Nn@/JLG@"8+.t()^wsՋiX:wbmlʴ6P<(Y9v**t[Y8W{%v|۳t4:{YJv0zؙ"c霅wVSs}[K[ /0[ydc.c0u6s9:b٘Lb_3` AܬDE)d?EF_1ܬc\C5m}\z,'aσ/d8OYh^Ƅxd>|q??;wsڨ퓊z(yHHbdȈl ~VP4h*6fA<R|~= 2.6>b8pyPAjAq@5E;}1D1Hj-;#Ɇ_?YeìWSނj;41SLli]\r"yRh? F)qZ 9ZuQ BydԾQqRVO)SxltyAA}4Hy/6pCoΙ吘WgvsKrzjn՟# ^̩7P2CumMQ7ذ`Xlt$.ƾšHO[Y|[줩t$&(qM<;-rB'ǿd2mT7Jک PUj(AX,ԝ ci!)1~6֓ 6Dmjq& Bn ӘfY ?~/y:D 7kE뙣F!*vb/(oPm5d*yn=)"`薨66 qa&: F8⤥pd+#Y= t.pZUҰX[SsSKHFWڰ.q~3(p2[_`^;wFQ%'U)= ƺPkږx?<4d$a"y.V:u[|-ȶT«}^<"4%25xO5mޫ)m8m 9v^!KRGg10"6:b;2]aHҸ{w%X3؁Wj$25hɉlǰ}&"$.o5&uDSXY״inAup=K 4P&xElc.Dw>moS5?f+:Ϻ듢:$:jB"Х F0 e_w͒;p5V<0Pf}Ww@; y;f~'Ri5촛K4!SQٷԥMB+mσy89DO]f仛=',mBC=RCNscTզ/FxlO{Smm=,o^ܪ>!7X>o"fߣyޫTa]>`>6쾐K.g7`3gg. s1,蘠QkyMUĀcwa} )7tT^An-Z$uJQ)U,* Fʣ}3aFYCkQ4̰2.xIzQ^&X$-ѕeb]sĂW]=y[mZ+;4Q\-Qyg5C49erS_IS]\ #6OhdÒZqոRߑ}\]ÃiaDqb H+o"&<8~n?#/lШ9.g-ka:V%xsCѨ8Ը5PokL|o\H]OF}&5T:YyLbNjrtGL"p3.IKq*;{0pU׃a nPQR( MZk"d)  L4gnJIٗ4l ^ QR PTԔx-+Pv|L_P3r/uh(m-=; eXWg nss0Wh]}+ %DyR_7{,Qa&]I֪sd'8Gl$~9[eI2Wuz1^4?@ӭ6m. %L>m+IElWf2*{kWJ{{yC(xE-yC>6쿚QU C:B+Hڣڦ..+TŹ@J<˩O`"yz.*;K{[+%¶ dJk/>- +?AcpUgw ׏(=lSˌ9~sƳ"ͳo{WU-;{Qg7JƷm=%x͗՛1BpSKs?VRP ֛IHW0i@+6aAs37܈o[it&>Җ10J{T$@Єpk& --KckݬS?a?V=a`%kϏiNǞ4Б$)5暭7s-cv, wJ~~ei2iCiUu˚\,:ٗ8t׮|*Z XV,e8#~B"&fMc?,LmäɶTţ[+򓥪 uɸ"*Yлgodn q#M]P.ٓoesQԐᏕ}Bt_Hm) ѕtIKgHE F5.hQxϟ{Θs\!C?WiKػݘ@ޚķ>920Sqn9Ƴ!J?Uֵ_ivL6 ŷHb31ѯew,Hg%0wb|[Vɘk38qZFΙl[ܭ鶉 ''NGT4ZР* GNI0WkDbP:(픛`/sBad:oubfR`5 3ARS|-j三5Cʳ̹^o< AKp1:YAӷJq&殺:cIn6Βĵ ^c;l4?o!CL6 鮏n<?:*I)4qAPHnVH+RlҧWoAR)0"} ܣLf,Xn$8ސ'E[V[JH^+ݎ3?=iC_I?ǿA^"G ؆:ddw{ Q_cٽއv 4gQڕӪ4S7P\}͋PU-mH9GYF2_ۇ}/43癮ZOLG"uȼ}w# s3\ dzY%918j^rʆ#Nt0/4 GN=]/ZwHF`hΙ/3İ46R8 ^6߮m<ȣ},Z~4M1#yd)ij9#loo zWtKk > oe :נgI3Q9-Vopx⫲~垥fbFhh2H|Epa<1yOYǁԈ`cH$DgWwJ #$F G -eϢ07Eu܎e*IavmyAǣO}A^L,gSט0|<%e?R^r@E}zDt4˷ {ы,yO7L>EŔ܃^ Aˆ6ڀ2`h#0WW7tF7޺/jrP@&! `ڨv@Ir~@GM5[Os*ɵ0WSQ כɌtջ~m[T\= XDţ,Nr\^>wlobS+5 6&-!#Ʊ=M ;@$E?ð0Lۧ.dK'WBVwD0j,$ৄ+\lj,ՀҠy{0D0[\ɑ <\yF ܁f ^q~ٺE@COCDiYݜb|nkLKx\@Bmhdd#۹ocz4z16$lp۽VQު{^ A3s+ w[(RAcۅ;$y>4VFs\AZ3wvSk=r#tDZZZ *:`KmLm6_<}j#.Yz/JhUܣQYh-Ɣ"Â/&;K~A%y~UEk Dg/flSZKDWh'2ۏ("wH@Jm RgRUW|? Q /rJ7 bg3r fZ^π$A/& r8 >5ތOT ,(]6m|qihhhod)k#AtSLliSeX˂j}j#`1h, j<ݕMJgV;6S@z's2oN#,Wԍ=2O@T&AW HP8Q|40{i4 pjb,1&B7ۋ5s9qw FE'D~#/xvߥ]b.u kO/_ qX l7EٹL m,&KSW~Uh#Hl|'Yɠi ;|;\ZV4^2b9]legjoNWދxZ)p.4]BLEco]2`D>;eNsG!mwbߦ^B &\,t-v;2OC/o?|XY퉉:@V_ݰ?Eh[l*;><:}RZ lIH9{W!F2d NC35\cgZ%ao1 0.~S!k"I/ aOBh(ӂlo$*;B퇃so<**]˕]l-Gꚻі`6 /YG~-+hJP2!Xgж|HT9_no3ՆCoy"pp;_dYҞFB9C^EΘt3%v]\r5#5yP+ޢ#*mQ&-BnR]ڠ;=Pnh(mt̀0BT~HC.x:b<6| 7ӭUJ5_gb\nk?6}a'U-6$cwwoF {32l zHՋâx&Ƚ'dŐ:scvvGdG<-pQԘs݋-ދ,.8QOR#Cn| #V?jds->qvH-&$qF!㽖h p ~ٯִﺬܕ7nr :/@!|6M'|?rMIU˦E֊֣H,֓ۺ2]Z@C V&V}M,|wacrƑcӲKڌCk$4=UvS9^R ꯻ gFzܨU"Ct񮾓| ZKEW f6z*t]̚fu4m0ӗ[t!Hɉ;DՋ$Uظ|vßM;z[.vmܱ3(/ֽubD:\4]ܘh኶˻'sf +G(OX_hr}'j|Vc ׭J7v3 n57erBx5 eUfy:?]a aʍ \' `["D{`[k '1Mf?̥oԝb˫}$=]pM9:pw:"_ȰQ/}7g`\2f|LRݛY۔4@a62Rkq<=#?TmEM,yWx 7] u\p<Y!Y uV :]qݱ <ĺe"<n. 5s^)r{^h$D-3UYJ>WM8_iZ;TMe( w0뙪N4Ϛ` o3QX2tMweRÔu?^y/*Lݯ 2[;ԑ> EB=ꍷ : %tQʟp.K`}NYG.yAZG>vex B~(%6K7w=;iC:̩AK>6(m%'piz\9T?Ir9ޗ7}a◔X`wtzRwzҵ2?@Wqrav!C?WkZXvÔc0hs%kʞ˔6/?R?`"ZѭoYч>F5p|^^wwi~oRP VSpjy?xOR(Y;K@,_Dڎ^Y"5󘃿va⁳w}i[pr:tWgKPsVȧۼW"8x{z:/1;~b)b;_9$h#DBp6njN23ɠv|0 ro@r/VwWRAF(rژ<;9K:B}ͮx.p z|Ȫ/ $g8oo zl#$\{~x7_WCt[,g/*='#AF$$6|2nEƎo^`h#H|iV^gvuLy3bƒ{>ʾF>lճT8jGvAPޤ6.?| F&m8?f'M']4Rqyi `hϧ@"V޺/jrP@&! up idB%N_B[:s&`OM&,e@}=o>;Gew{rm 4dOFm 6r  ID$<---`[R+%5Ie`ڞVA ^9q#1BqұٸwZ5 3yO?[vx19kЪ"ǭgAtmx̯Y0&CC|"ۘ`j~5> k[[HɃَB',,UT舷1s5oƊՉ9Β"Z zEd]+IrnGLt$-*J(@@38*ȫWyO#6uF+ ^,mTW6VvK,G\Fps <28_vo_\u69_P&۞֐JZ( ,/uQټD W Se5 `#+7]jq_U[#_`4Mf F@H,--AL*"ˆTA/1SQ֔ۀՠdѽX?& O5ZZl(v:>.FA}8f2NE54[YIr[-V[Ob!NCQN.y #i` J!<(|ɻ<6)MRio#\< n; .]sYwü)kic;,~сcQUWw@R`ILz*9d>FJn ?FaE Zn(Bz!)@e24υ=rh ιGrYw*f%Xv8;ϦK_hm5/#ce5mbcN&C <`$6.{STtܭlM#PePZ1=a{Zd_ApΟ#cPd߽|_x dh#`ÑV{b3{0R_0Y Zq}ȸ̴dƫ%AKiP`Ԝu#@yCعes: ?d%go wp_:G[A#z<vsIinCgq{Fe |z6gBV8=*,# NG(myi]SS6}8Fc'B7ۖ(ϹGog~| u`J{h4 {~9r @ZuPbӗ6E .o5.BCޗ^dOc^yػJ>Z;Ѧ;5w1X4g AL)x"d)H[F0C5|ɷ#Yoj;l4¼LT`fei\Q ^F: n[]ug U1E:A2ݙOb?׵px*J$; -;=ܾa|RYQY5'5, &h#ȋsH)QHAI!kx4bYo2{G0&j?{F@m+LP ~;T~+' SI T Vz%4XT-,;&f ^3*x3 q U ,ˠPJ.WCQYF 3vLxo)m2n(i,9K-)%HG%p:h^vЬfZ +3bR׊֣1SL9j r,/es{.ᕽbT9rx9QɊ6#+#!>J_B7Gq6&0>9%hlQE$p)6}+gU~_6sF2~>'lSf  ~|?m-N_P?lOqr|z\sm8\]F0HPK#8}PKrgP settings.xmlZ]s6}x3$aI!$4̒MP#KIʘ:!tΑt{tŗ׈TTKDH{+gޗOb4C$p]Q56Q؝H^DQU$UA]˭)+қh}:NOG~v4Tn}iGt+ʼr!ěha>TqZ/Z]LJ 5sE8v1mF=WYlBk,alr?*TCdb {l4^zHY0}/ߏ}Qe&) D-^Y/)^zzü #}|Vz~T;=:? _H\;I<^ˤ$z1ޥR< @%>ts-T8R4=[Cɦd0zM/גӘչa4h 6Ktz^GsXl=dIo(v"k;]i EMWnoMދ`b]b`Lȭ_1 &ʉu,MhwT w"t0u-^MH sp5!| b~I?MT䣘毁4Q[\/=s;͖ RAmXz96zM!oTmm_*{6KtqԾ0nQe4478Q g`8?xN~݇&0C@hr .I0 y|/zU(лTqfO 5d jcPPxDO ~L~>1A2ؘP*%w-* P^m\jhd5QgZjIFY}o|?[NM4-uc-׵0;w]4I![(ඁ擥O#r] ƔR5 7/{oO$lVݦ ySad \sx8'"2ƺxiLn)zjG-#MOa&r{Wa@uߜx;;nle > g6}Hxk#ZV'@KHɽ[mzhSƒē~E4~Kzu˔RXsd&[]`f)ʜ]A0U:~x b/ܐn)檉Sb  ن\V o04PK"#PKrgP content.xml]r8ߧpyjtT$]$7[dn(vBxތQ0vų^x83 o5gd$Nv~Dnפmc,˴_ڏLndo6ƲTm"Wx%-^}/z3^&I8v;٪-Dٲ, ;\|":",,+mòJz؉]jl݆fњ]E ҎZTQTQ]N55{TI^Vm² TN䅭o3C UqtuIF^"J9*ؾS W@Cr$/&"iiu!]Y/;#<l ikM,[:&C-FIayE-_pm.\(RG;CDx`ØY*&D^ 6%QupEbmuvH!<\eٌ遶eS=0stU&, gTkv͋VÓr%ıE- umפ~,9o~Hקx^cowZ';@^-"(_-ɥ5 @@ W08h1ؑG'W u9o|8z=Eݍ~V` ])}_[yKFjSoΒ 7ĺ UH?!̽\ Bh/((MQ"åšm Fx}ufM9% q>Dnȝh퉡TI!;'Y ;H [Xb&ؾ@:N,Z8{:Ia`Ex%rysۏQV^PJy9|8zP61|{hф/_ld %k}o)P]WneTMzMgC{bh8 $0L3x$8t?T91Z*rk 0D 0Rs|ڹ| 7(OIu/efM^ddݿrDʅ>W~c[@o m8 p^422]c1@J0[K\,رgTy'4}Uօ4UމWSeO ':VB7’ V*`Z0xB+ѩkBq+kQʒEw'~TM*cgAǴ6bdVr8Lf fHTSiF7TvcK.ڏl"rΚg˱;퀃rq/`#p}'U"qDȼJtn)*2!^%>S~\6!]8"t~ZA[bmEV]q@v`E/Mcs|-b"Jfdmȉ !?3>Wg#=xi9QICzo7cϝfbo1bIe,EJꋢWlg+gU3ƅ/heM bKPG;[+3 f(`OoHC "e4RdC^[k Sܔ*j"2r!: Ҟ򚕐ڴ7j4ʾwy. ѝ8O_3ȿcT^43t|b1dxE% N#, l [dKqɑ/"| _d/2oh݉|Q/?_| _t.:oB]Y [Tl1xĺg HrQJ 3M2r̬#<'ӁWňӗaKӸGvdH} ھqoH db& ǐ?;YZ4Y4,4G2GI``~?L7{3\2v4Qfl)ymi'V2ѵrʬ&/ՠ Gkhf.gٱ]a9%J ́%J ́J ΁ %4@ %<@ CrDe:${@ yʔHǪ.kҐLa)9V*4[joPg1Lս:kk﫡W kh! ^iHWCZrzb_DC&W0d;h7 M3{HEVXI/>J3FYhyZ&Qv? |u?)_5}纯Z^ݟ mjDզxg9bphlS tMT܌4Yfe9}i3"<#_L}T) LaRς;a'o~{logif툑3XU&V`?uEsl"4XM[sMW~Ͷ.F~$<0奮̋,v(~:2Sԝađ_iMl֟ tuUysUbn+hPӣaz>7c.H~"X39TrGkL})1FXhϭ8tmMu z˿f,U 6έb9ZQrkZg~^+::>MIpLhjcp\fzvBz\12:D=:90BF-BGJ^;o3+&8x!aXR9S!Pތ ]FSIAGJE$\uLjmPvE}Bl14[%ujUKS1 &9q2&'Y! "F-F"dN>(e<ݴ#tf٭`He47*Qڊ}<]3=

PAubf$/G&h2Khh.$1]3釡kµ)CdD}Qh7)A DdA'8uڪCmis$4_>O|ԣ!:`٤ĦBs)>;35]%+6_?C㰄xjuj̈5+[0IaQH=GƄB QRkCb;֗P{2jN(tB/Džy- Ԉ(wy~".ovj{(:5f(C< !ޭcFdDLy2n#!eKSd)QJj] w# 1}@b0H#3^2VL\׉wkh2w:!wut5@ZǶMFGQ eĉ-{ihM4çUM|LwAƊojp:\DDmk`=,_ &Ջ)\@DG`qvrQs bnlN*g$߶xpgl}Os"6B ^OkpvŽIbKP8)I?v<XQ!4`=|_>ؕ&ɑ7;6uKi/~*;XF>/#zoUL?8/l3hn$y4vD`˨Lb”[Fbr׮0<:Ef+bwLXem iWe cqА'TH@`1}WNnhpn%;-Fʒ(a)[8~{k 279 '/CzyI'6a QؔaIhtmj] _iz&Zf {IbcS[=:NJ2LJJjϧ}ln/CdĭMq>mbLKdhD`I$A)>-,)&u)v37o3iZa_c70e.9tg44-Q~ڧ`P&CL=Ɵ)…>;Ch*8E^nD ci?^NW$$PABW%1%i5X"ry@R}ࣷ%3*nAªE4kD)<SYE"]AG$=߸S Hv9}(v gt$dX#OLc 1>R%:{ +)2u\y-IU뛴x̽ EbLbtXQDIv!aNyt. &c|}T#!djWf޿͘tL~nN&c{AӋYNAXSb Zv i f#Oy)ʐymS{1;^x*~e &LUj-W\~^+43\ҿ:OccY);7s K h} d?@#s)JHS!%:#94$6XDX;7$BM\QQςrVbX :z(LjHNFL'E H>c$LӨC +3LgJ?&{M#nͽ Qy` !A6 aȷ,BԺFC A4!P{P~bX ;lLmxC;%B3f?y RW%4ck2A9` {OYdGfkl}8>q}G+bH{Akt?0#XGAd!aџp :M(cxBმu mKn=C60IH<2 'G7\2}-SεuEvWs@Qh (aweaI<&A'hzkH,W{ދNL?"ֆD1I( H6QO>1μ[r>atRk;"2lCTHEID,~JƝs*3_nĊDjn."4NѯdiS.q@YލOM3NL(` 2f`\A.(}"鐻Sg2 n%ZNFBD*YҀO$ad,/QS4ߵ+t5q60yeE{ANœͨ*3cȉ%k*(o_#[&Vd56;u"ˠCv)d^EzO3R*5 Y,$)50w,˙R'o*^Z㔿!T3DgO2PYBs*27÷ń|'ŒzmtúB뭮c]̭Ǯ|PLvNhHLgyX1*"Ub4>@"JM@L 蹿k9~z`'2ﻟ?X]GB'/#J0tKx事6$XLɓ߹Br'}R/<sEpwiu*E/8b/¬'jxJ${,Pܟ(aD '̧ k~ُ&  +?TM/2fGc/ĝLҟT蕥jt_$"JGBSʡ 1+Qs9p,@0XK;S!<1r{^ EhP-&oJ2y 56_X)e^=XBi߼G L9@t($+ĖE9YMLfP`ъBI_'TaBߞx^VLSƙ׆$7|wEYS%:#q7tj/O +}+%F.;r/ IDATf:?O2b 7BҷTpeR2fD'JɈH#y?:#-5뇅cJ5&wğ&pފ}EkUp@>Z{L5 uONő! A KP3ȎYQUQ1) &xkfwyWm|| S;. Z clB-zRP `{5e#`>_٠H}?O3I/ŸՏ~Lb#ѨhHq HH,{+@(Ԏj 37dR:L9b;$6EWBbK8RF]BnL92}Z-)'1*J %q*;*!j_(mQƴk J<~9 r'VPb, (l2XU|g}@)﻽/b،D+D!uAF ~է!~Rb J1BMooo 0(PVL5ƢpCjL +/ GOuխ(` zNCqmm`Dk#ډ$݅+ԏY%-VuwS&*G2be vs2ΌL=?)MT3*5&@f;7`l|H#3#\[A[gKٯlgBbZ _yj4j4rØoGkrS`{%c8>v':-C0GqQn|$֍ 2$so2 /R]:#'QPH.1Ia bV9:&f[hijR#^=1$WezCpWRCI4k2NDd(l|ƮƴEHQ 'lh0J"GjRlؒ2Q޼LSsuga>>AI%]c3nV'3<>Mh[})pg¢r5J+z싫$\Z_b=6ގz92-ezhh(U={(_h Н|eb)wG|:*f=v\KdȻm٪BdR֋L:p%8 _apb&z ĊDk^O֌EgN%Q} ]Ӊ a =}@Ma"K80v=`PRe(E>Gu/Dw.٣qHvVĦUF~Y~yI煊qH 'd2KS"[Ĩ{ M] |l20DKfܜwBlonN& M0 TOO*>1}iLY(ؒ"T %$K;K&Po,3qgg 5GBTBqc}AKb^[;R_%*O_ͪ$ZTI_\#>0Oo-Nxi,f#E)o_Л5K]tW/Rṭ7ҝv/#l $]؞S#L$UO!ȇdi _hzL?aJ]?zǤ?7EHMsJbl{+?-c4ˠݴB2!љSUO2nN~DސHeL!Ϛ$4s2*~ 7hԘaZ.# 56]]gMۦ!T) h/*HϷI`8!^u~7/60M<]"Fa;E%Է2ž=[.S?B*x-Vi/-|( :3)"*4Sgʸb '`R,Z1G*~'ij5< =K 2A"K6]R Vȓ%Joue/>+8+fbrxd(b]bp,fH~e ?r?i|H[4>6[{M\eJK|oHwƠyؤp#B$ތ8MePF bL3m:_@jjHĎmVB-.Zh]pFQ0zM2i2!Q?Lo@אs>L*.va00Qk>9%nX2>d.W+4ό1y.~ԡFHjDb2%٢,%֩B)0;l!0u;/1HHt$)I,i)Bp0]UJ49?iQewQ)M!2f3 0ѕ# ,bÅRnSbW߼$,1r`u%~Z{EGE󀌜E>.&LvTi>.27Tb)uK-DT"Yqfx_v H/\'y:<  TJ8 9a|=?EŃ InhK+0և#WKO3P'.ډ$f3~H-TՑXxɑ+:MuIѝ5 'LP"}Is_Gd构uwG<,w3,4>_"Vc<"SnVy&&LQvľԉ6 FbM;Xu#ڞ #T_ :)8"ӟq D$ YIBh/hIIx?~= /#Bˌh]wf4~ &1ֆSiΈb$\7'#^ n ^=-ՉF*R댘XBTyHyjJ }pOGC^L!Mb'8AIظ9nq@ ;"-|DgOt}ChAigPhʋˢ⭑:4i-Ph)dc!$#  yY^':]nwDhX(kQa)7(Dmp ^{9 @nEfy,Kw"wI{gh>E:y)k ]ď ^= Y;:=B}2"(µiK;kw|QxY&6A](mCN9W%O^s5Oe{R %" :mxY ankzMbC`ĭ`ax99L.3mG^&D!ah&[ sy*e>`tL. bdX/Z#Ga?0kpxnc.+PKW0vF@?|npƁJӸ+ žۈ? \6< U{ OP">"x#X1w6nPQS -o ˂lYt^t(~Ӈ1' Ʊ.!;" !ӯ[UE}`B"CqЈ,`vH0 d;oaNN>G) k]XqOxF|&OrEӝѐƱ{3D?qc,3uZ'|\W#('L #SQZ)dTG l%kIJ)(_JZy~fte]F9rϊ~Og= H 2tX $~F}ͿE9QN_{hqV/bޭ $!o>;K{Qr?$G9΢r,gYE*OP;Df*С,ƍUܳGQpIs3`gtiw> ,Dm {CfwckH5WQ/:=1ж;WF֫xgNğ@, bDc$iI|'gq 2b^[C]#XZFo g ғQ.e0`wh}x1<ߟyXCltyA9&2$&ubY|S?NH\+ dbYeO9ɩd1Z`\^fxxnA'@:-r(~o~p;z+T~/1N&3SxbOc紊Q<0)y'$5G,P&DCH 5q?&!9'ףM d%,UG6^"Csi<| (WY\A{Cdsat}q q] 3t0wxmdJ}:{ 7}: & 󻗉&1޽K<3%ey(rr,E"qJ|` 2Ϣw_X;*IaVx.OphDfL4 6RsT??Cg^!$.{] }9+%C$eNx8 8tn?1½exnHX$803o3<9ChtfU%cQF3$M}DTgTLM<2ӽF NT@#3g%~=60KYqs zLKJKԟF)ЊId(K$4t i%do7wALlJ#6u=n, :ڔh~t)O}'Hq r/#ЛK2͐lT_'`(=)BKMx|/0@dٔ`oŘY/ f 5)gLV$ t$̚ȕTpLD!ьI>"?\Gi6&ˤ Ev ,I u(P]~JOD:L '",=z"њ49Ng1AP? {֡~`O45MgA;'3m"dQUrb %1N^?#׻iLПUv瞅O4iX&z[v!㧀!uk y= dG'o0 ،?ENHؠnS.04ASC&>{ D#;X!7 :'|LwE)h~m2O(Kt~IGbM%v1@!I u7(hxHij0e lc1=S&לgʼxxj?!z'}v  jhYv$ګBVÇWX4HK2(Bъ:|I[ͣdBYXkmQo ?Sk&.D<B<[anV`L$KdJ=vޙ"?ߢ 8ңWWd&_]%ϒHiҡĀ^pC0.C&]or1jd, ykŲR 0S.n#A9VrGxLhQJqM'c$j3_|@yk*ą2J> m b|>D)$IJDjI' +Ԁ52[Q;O[i}ܱDi@c2;!R%ehE7X2-WND3Svil2]E )~aCc9&|4%\K"$$XZ?TAz(İ0,LM7{ IwVeGWWWWwO}bf0cpxR`EZ-jBՆvaٻUXZԱזI%&As;mԐZ}?h>"5SYf=MG{$;ɀG!_(IZ4(vpfv*dQ gvubإa֡R#3FGNJ0'1c9ך$[pA*$E;uuLS {e.ھ6cM2+EF?lnd@!pwDD VGx' Nskd89HV 9ԫ׈XEF}Cr\ J Nr3WTѵ1xbZpMV|. Z RnJ =WgO[Bbx8Z!k_Ǟ9wkum[`L ez ].fzkIht7ob,r# IDATϑxksb7i(w" MDk h=-1/KLh127D)Ԟ-xX i<"`}4Ρ)'"HryduCVtGS$ظJ70tNw_ FѭmX=i^T& Pb4'æ=k)TrVi 듾)*c'l_,QstveiOˢ"K ,CG&Hn`; V 5Y(ϋA^%d^'"]A%uX= c `gB_i;PBoGE'[TbC: 1%6H+S~33`˴ȞL:k8#W0G'hTQ_JiANENDBrk9B$OsYE=Nw"&p P& WtF9{ִshx)~b0]|f$̻'Ѻ cRFܦWe2IC$Lh]A^B@dOKBMa{8NoE{w;AQk| A:NczzafTXƼL{{F@#y"ԓH>B C2VNU1AljGm:<=:ǬDEu`- džj~d㗰G^["I$XgD+-^4mU-L&Qv-\f『>c;5PAA"+o^pE:jW&u K}7:C@j6xE#_ٌhz򡽛& %S¹MPx0fBrp?tN9o؄j&t([%z[}d`3;4ze/*x E??i݈UDOD:~7H\]-L ; %ydt3 O|u)Hߖh,[3)F"4)5\1-"ء ?[t&".!~COV# DI͹'yx5G/?ɠ( }&hΪ8y/B|HD#>gdh5E`H%}gq qJ>+4Kht Tܻ[MDMhO#kt11,әY|^EWMo@ea#]%5$Κ5G_i.6X2H6pZiգ+]h109 U0ZH=VL\ϝOhO"FQ@hpL@;2vkN$[ef^&GcYM$u!H4zRJ{C^4hax}WО[:KkY2DXi[cca>N>zE:bTǰ\4U'մ,vGT wEiLE췥_M\/>&j'EWV&{]D>T55ǨjÍѦJ6B1}+D hd,7MJ`BI{ju:*TyEDioclbkOj[^FmB$pgE]^wcjK<z9QU>)+QILlƹu1Vv׈L ?EȪ3}W 2E2Ѯ-\)|f?k-Td'XZA>9Cr\ F+Bg sǧU!TɬS@Ɲ ؇oV%غ0H[IXQjO{D s;(D,5?<-ޢ0N q6$?\'~J@'I4gT^_""֤;mQG!7B *陀 RHtJCet'GT:;3Zb0f??E£{ BCbhPVk;+97Y/b"KeW1޸E ;0,}Yb. ͯn}A hnлreFh7ɹō@|ZܑNޠ'DdJ7a-T{cY߾H8}zkVaI H,G]jJ"e1)hIqZ? TRMN~٤~$ɠ1(-H թcW}\K{wQ " ɿӦDq$VQJ6o$#{%E;ԑ 5T ]V_(@e/ %zu͑HVpr{lM;FoCo4>PjD}` 6ȟ*׮M2\F 7S=Ljs_ixmZiоGN{ 䧺̯)N^JSzΡ]m<RGe|^{sPO 9'u,$jf5kI|NŌjwT6#ڻ#74c8@mݬDRI7y s=0i&XDo#_sn#s]khv4ѕ q4Ub걭;L&'w[Z/2Cc ܿ[fdz6oJ_;0 gu]H- Y.F'M !ֵ37TGQMԞLĆ`. ȫf0kQ #{2ւLwK@B?v3pd(|]eRte>0PDQ٥}d ;w/MAgJC 6 eR;[iq4q&A{]x{!ќSS~,ĚU`t&WΛ3`4b$kR OV% +Zi_H+_jp*፻D+, )ab7`W]"4,% zbN;Bkuv<34z(EܔT)\6y>2忛A.1p=[?1??vHSw:+}2l:ĄwمͷK MsY6!A!1Ҹݝ9*&妀(lvf+ΨC튮G|IL#:8F#${[tm RQ}Wk>3KN^tҰC(V7$ _Z ݊A{{RtDVHص U**"Ys+gVe;%{B3$}[t֣tO#0Xeca9"$ģk e)[ ]%:MT%c{i2j[o\st+8ͿgXM]4P{z$# Pv$H]"$Uycm1p;,񛫶vZ=KgRbP+]#ߝ'= }N⺇*p 7 %@VWWV!LA~ݴM9DCQkOD7vHkiyjf7A>];}[DKgOl¹փ]#1ٗ| ?Lb>ܬF,?#k^BM2LC :CHUqvN@t|Jt沀h*@nE.H~xˢ#ZMv4AhMOTXZ*+ߍfߔC<&fzhǣt7)#7هVw_#T^]ɋhPeg"|$: H#z"%%:" FODP #t+5OWrCW(Z'N+1!Z:iGJx8ݪ靀tևQ$7a6'EQn4D,zK"9/_;o^!wGqD'0ԩ^S}_ Z>ve|SBGḢx Os vVA>.=! Qn'qq'#>:Sq?Fxy IDATr>7ݐ6Q/MAuC{1.nBٷ uzԵ?ߠ_T-hm݃֍H݋eTQoM3TyfA鞊(/-džHت9Zdrĺ LG"}jC|I$Zq3 zTM"T)EEg/q}Xz_ɇ✭>5 2ɇ/`6c* sr"R'Mc;Wg;~;¼ݪN' Sb͙$hyv+ ]c7$rWP"CDXmP6Fh_h5􌃟6P6ڸy"]a䫷h/fg :N7}%ޣ2#o }[Agl$8~x1 [BgM_3dd_W)sM1|DD).J[tٽ !S[sQLHKXqғ-MzAL↎ѐIߔcE;#N4 !ͯ=2EgڅsgPDs#$ qwS0QFy\O&Bep z[Ӣ+4>FgI'Y*km9<őra^8T[ʃUÊ\wJ.+*v^D躢JH}ݖ@\3?7"y̓%7/ۈ.-R!WĺTK%j2K/ QeTu}՝ېolfU[t|}f؁R~pvJ|UD* b- ;!kGh=HX^Y%9a-BlgQ.H|"9D* hc=]}?&i 9!9i{4ɻg@!yA#?"~u2MGg|/m1{4q{=%P{:z&0UKrA!wrTbP2кA!Eo<6L c5AHQNHz2 D_k!7Ěku =ߔ@WIUa{] $N1}8>"1(*B7zn'rN9b#Yػ.3@XIqyeքKiCe+3c±˦سvVŬ{ϴG% \bG}UF?s&tN/:__"1'gB"MfPY;EePbءo%s&=)>ux,u|;1þQ˘>ݹm)c/Tp2 "M&d(5_3.$uFPo_i Yb anDQѹu2-b-0rKH8E7/-`7-~CEœsjɰ\𥇬NS9-{@|Ec«+TžJ$gYG H1|Ob \2#NgB;#b3zB $"3$5#Lֲė$ RD|t=򗡹bۗ9`&A!fo3UZ=r}*+w5vtԚJ1%\0[Q\U\V:v>bN\\$T+4coEYK)*'zKbB]U'ւѤܵkgo&EͮIJT }j_39kHc9P䦅=Q~]f޶{'wܳ*kP kh&4fMR2)9 kFf43cC1<4RlScZiERlE-ؗ.*ԚwͶ'R(d$cV%64['@3ȉ(d|d3$N8O*5+52{^4y;1ٯDm("*UH/E8+§~PGw"dd(lњ+d:bP5D48+RS#;&GܮNl2w .Ȭ|*'2jp*QS#0Ft3?ؖP o$_9MuN`Ǥn VU6~Xgq荨Q ZPLbR~ A 2w *0 f-MMyKpRj-S omV%j*'?3C/q&ވdאg ^k7ћƸy*wdDl蕐ozC#2krŕh5-6kii g'tDa'zz}x #YEJ`k ab#vnBTㄵ:P"y_usXln:r+!1Ə&M] {׈vMߝ}b8g S -J3`>aY]g7 @BwVmv^yb-EBBg} *BT,xBv p`0(z ߿gv3uNHrC˸K@UDDΗ/̔EhYFIL iu?@8(sD7bhI<풎y)5OH^oLz5(mclGQ7YrET7.u˨V螜y E,Cj# R .Ob4%g pfh 'L92eڧ1["%v$,38 *&} n"WiROB׶HLt4Pz]xzUS»do.J!OfmI`&HT/V.nEF8YAڬ`C-l&rDQX=oa(Kt>v5.I>o#'3,;H Ji2W0&LI[Aʦu=\BF@zQ{q?z Y7Q=KmG$w:^dkxy/+er$2[ cxigեuf`$#t'MV?aթR\FZ`pa ʓmTB[~9w;ȺAd%!%d]'5څz ]jzCl I Fd{lL`oWa-%?fYL&{uk&V.m+Q&ƈ4eZgfIl$qڏ"kTD)G : NBe]SB?/)3rå#X_݈|hPbU ¥Ǩ#D"%`7SV>`O,KdǤ2BcAhƴgX_3#wh|-16cv%26_hO|sJ$sPa]]n}I Mc~F&VM*,1Cg:ΔڴTOLG`9͗ T뫗plc#? !C SCNڪuB!1d.=&>sÍ8%SgGdncl3H.QMAP4P,[hSNIdvQo"FH I2 gnOʧ2$\##n=hklqvE*΂$cod|ڧgHEL%G)#~ճ(o˘ثeFnzkHԱblIR!?M/ӟg봁u`<$2U6$C*g(=72^Ƥp-&k0*x%/@ 6k#k_Β^/)z/<j KyARM{\liH_='B2 Z#0m?QN ʇѺ7(s$Ә㐵Hobul cl+Xȯ$1썐feЄAH#+—ZiBs7d1[uZ{l#&gʐƇfeAԀ?/ҙ$  }V~z<{ԇ%̪މhϊp#$. eL\7,,zF`ȁD  KS/nV$M!}:ij.m D>z]'zM@0QPbkc%z >.#Eja!(7!+ߖD Br%"+YQ~fÿ0%Xb*^S2ObcM?sjk*j ,\GYBoK(M e_qCw V:Y5Q/$i-D(%XuVT*G lLN)oȁ{}͊~eZؾD+E IDATeHݮcJ_Do=ٗLNY<uf٣5f,{ G#X$ld8i#>;0.QO'PNȄ[ȅ<@f5ytlEǕ? N |#L?X^nc3P4'hr:Z7ߑ0W!z6FSt98 $zz F#`[āuBpILz}< YGvA^L.B"3v\N,{OiOQk {PRol"wAp/!6J.+Ŏ#<6#KI9A}6}Ƈ] AA~ ?pk81{Ts&lN;~N#]YQ;G -Y1 vy;S+؍cWnv'Q.i ?ܢ3 ?6@Y@HxX1[!yϡvD@58nm( +!vuCӱ Z箔iji`kkٔL> ###Hiց<)rv:$WC*l*0e^@ )ɘvocV9F@m15=W͈P`mƢ; ? ~DTLwH{I}q$ENe%$ɞ7ƚL<3!·;rtu"6xI5" / gDAV!DLyȕRʏ Z?qN28k.H 4z;MnkP3I{Z;t'[߾Yt1(Hh8qZpF,wj!u9ֵEYE1(5[bXm A47Rxi~>j_8=6z6+'$k@(_-=?;ݩ?/:[[i2f-ESx(T9[PS"\뿳"^J%2#6ObnxGκO-$iIz#8A9q6I6]ㄝf*yoDEXs Ě"oFmBb#7F* 3i ֍;mvNJT9`'H-?βіhBD*lpOoWN}כƋ%7. CՇt~i)/`m xJC~DK4v|*G%w%4Hb(s߻d]$ᐓ=:wΒBgt8c|A[7p13%DoGʰ֕0 {}~Q & 0kP"7AGZS0 kgͷP*w0&/+ἵF,A](EA^쁃Jo&@p JxFBtLJ )1GOh PՈ_=mxD`қña'\{b&)R?z{\z! eJ`@"#Ȅ]M- 2xMF{hYǠVUJsMD4|dϓ~$r]j~ "3"ccy_x2#1q3YP;2 N E\$ׄw\jkP;('W:Be'@cPALjHhY~pI2tD(c'RBU=$QgEX;N}SrX~ {6$'Sg~<<n5=Ex@Л"m |P*ޮ"eb>G-A$1fPЌ4j/@[ Q`zğ],iķFfhqh?7D{Lw1b[ې)DF(BlȺIL!~/2"_{j콐ing,T_-%b)Ċқ0 wO"1UQ*m:ύٗ'=I<;J?\!<<?X&35q}zGx!S:yXPM zik{`z)$JАt-Km3K$$A{F"$ ?L4J~#W(Sxy.vI%ZҴAo_GKqUߺ+{6)ǦE~N` )3Ic|2UVX[u6I˾L}#QgQݦ}vC8wih6J6G)tHThp&LM_@|h ))No!z>S4-ܬZGd̚+8g=ci"z7&=E8%, h(IXHi:*oܣ"Z@b50!&f#%|X6$e3zROZalJ$<=fp`\){!u|{8K 1my~".횄K7'f,r;AoZ}@T%zgN0(1wc>ֆ?%z{G: 70?)[,5/;Pl—P;;MိaL̛O) [}:%>Pq'(,aAx)%$.X_DYB w ~@|Zo%<{%ƾILblwvp 3O|,f Xޘ 0 i,4 I:S*(N Y߹?΋%zcV9c%Z _Y?8C+ĒUP13%W1!O|>ֆKMyvJU ϜXf^@{܉(vQ̃;m}Nֶkx"Q$>H=ܤt4) i}x4>y`JD4Ik`{&4%]ȏ4NRU­m]9m8Yzt+ڨ,-Й1I6#dn5-\8Ij 'EuXRεu$EAp)OC2ՓIz$CA͖4 oY D֕.忳aϯ %l̵A A-Q ~"[LXz2^1I~4U즵$Eq`(xY!r)F+ \q21ՃWcFsBQ_zR9i@i ct`]z`@a_'!sOp3JZOЅ'cڳ SOڐ^$- k>淮~iGD7%cM|L~٠ĝLc#yhHPCeCdeJ(#[ 4{5_N}Ӹ#!.>Su$Gwڤ= S1jF1MMZ{Bӆ8b;<ֆA1&uWePRS &kzGFO֧a[G$&yeʫs2x,ڏ _ ɵօ/;nN%Q Y"{"#(z85ltzQi,DlLH_bxMsU'&NG >QF{2]E:y8i!ŜHҐ;D?1$ )ܬ<1cV 0`DG\P]q^Le]K8vx銘iCx-.aNY]w*gqۄi 7QI&.IT_+6o<!MWH %,bErT/LeH/*(:LxH,:!GdEfcY>P>ᬇ(`WIo]C.k2l{'i,MuC|Geb֡Z Gpb/aUk^E}:J:-HgҝKXP/!+%§c(^LzO`!d є(?/y:7B,^Oׇn ɵP l.[#)*{pj7JؔsE@@p:2[i|Ġ .M)̚/*cgQ7EsAP;6Ald~ r~&ڡ7%Z?"dtl}/:3)|t]ljd]xFƐ"'Ѷ;Ht_yА^$(hAER&ɊxI /MC-ZP+&RP[Ļd Kt&UJئz$u{{4WDL kVƢ.dqJN,+dn5J`oFSc ō:q0InevM.N#B;7az&6Y?=U~$qo]&5GTߢv$H4Zb }S"vN}O0wv3O@wB'OʠdOo.ѿ}Ƈ|mm?>K/r%2&ؠ4^ ti}\(Rۯث,ec\T9(δLcIhu͟WTQȁDFgKg5HTbZs B<7I{ Hh=M k["H?{>1FmAww |UbTpt%O2g._a G:2:9tm۳zAoN4G6RHL /y3;Wi쟣W>EvR"\f<4Po%Uܴ֕@|5-j+@+۟AS$ ]4HQ9!3$+Bv@}NerJo5X$tɾVXZ icu,I;xJR7zG5B=B93K}!i1%g3Cr^?f>h":[hI4Ș?K{ߌt6"w'b>#-eeC2&zD cȡHBUaX;8E縋ZV:$*^c+J_EqGDbፆiHcJR~ex&%`1Q֣Ǡi_LP9"g}+*ʞ.`FBu(^GO0O@oL&sOF?F]xYO߈dh&L& p`=!0T%L4mmuuα4/27>N).6k2(hx3ND (}p#~$Xг޼O(xi'hm*!*qꇧF"K PsʶN hJ=ESLL*Hu7ڳ$F#Y)&7[?w\D!Ց`UٴW}vqE «8>Fw\.g=Z( IQބƂ2z.;ߡu /iQĦ y i$fj "Zs I*}6zJLCclu(g߸‮ΌdENhSysyi(4amdu^JʣDKkOHC)ޔy՘+ jxGE|3[?"c/ܑX%}Ny;(v"!/䐧& AV|ǑF L~ n^D>Ū:O Q0pU IDATyQ4X[1F^mu g$9# Z'K&|j3 P%WNB%[tvdlFܱwKHK|Z&f-1k(wLg5k>ZM J{F3i\IsA;Nڕ}K(slWI.FaAp}:3 .)kAW%1"@H {S -_A>ze#O XCh]pP<'O`;{!c*l];P f9}7ϱ#&$jezDh@pDg_Dn`ԧϧ%/vT`2@6CR-sHT{6|Dw5?ͱNJ*"w{~ظs|jU?Հ2h+v%2qԝ Xf{=CDMjl ?P7r tvb%?!AH0P=~4k3r,f䚐.*F$LZ]UXΒ-b> 6ݧ*m؂N؛"&X9k+F`ҨڴX_'bTS|7Bd3$Eӕ(0T5'X!/?`[=d; @a6?O<:_8܏G!צRK I788I݉Zߵ<{WjĠh>#͓&oi#* Eb;DDLvwˈwrD=kؒv, b"h5\W#N{IO1՞a=)d3=z64!^\mLM;=u@z$<櫯P@(R{D}5;2Y]{` iug:_#.}!^ZȊ'[#sBڌ t7OHDWdwgUGx{1&M쵘飫ݪڕi&_PpeUZ&rB2.3+ӾnWhO!dr.)@\91Zf$*1ݢ%Evd$:1bh-AhM#=`j]Xm2wb%ZCdڨB{65 Yf- H('1~B\iĴg-z*&bQJLflt(\9ōRM.RIKMK)lh,7ɢ.dP$kXݡYH$2q&Izĝ-V7V70C I|G!Q0m {uB]Sƫ e}[z$ƨJ?=Y`yڳM'*QRx c %Fv`IT2f|:neP}=+a?l5?pMF8 ;>45'q1#}19:R f#¾&Ydx9 sMƁ>{~Ad<}%`2 F!V}8ň z].՗Fp oUrPib?#7TNfP`8·|[W#Go:3 YaZrF|/)|~zl#se󌁟r fYPB70|ZV4W.PIHtMB.+4;(,Cc9nboCswRFo 8$*1Z@dUֶЭ ~$, 9-UkCuKs4+`m X]ĊLZbM L)d Bbf6Gf sN7N`M X|(,vm6?#b~uўFl #%EGY"'H$7BkXyY7{4ߺ,8hkM"ʣ $E%}Y!dƂBz9`6~RgݷbOG#G* )yU#ҺR,Vӯu`yK.Ӟ`n8zl4Q{0rc@퀆ڗhMa"u%*GCko)2$W"[2:3۟Hu9b}rqhV gfU?)ǧH/P#Bx*[ df,'6 /*`mH/j$I(Foyh?%})gŀƼ #cKl >bڬ sLN3n1I{_@6eꓒpEOuQiZs텘JtJ TW"yAwak+G(D?b%]lId"6(#.=GޔQx~^XkhDOy)Q{.&Kiޛ?Ir睟7窱1b !:,y˒-쐵av-[k[+I[-)Hbf0왾+ޞii/twU֛of~< (DǻIƪI)LX0w&`kB2K ӯQUf~%Q[+0֒tq74NmWJDȿ#ߊ8?B:gǙ>Pc瓌#1 P"R.^rϡ-,ç~DhwȼaP}oDq9= X|wmtn/hb'2HOZS>`>YZUz!)x+3;ItkG$đ% ͘qc")ƾxEDiMOm'о'T~'Aix;)O/U^ɳ3f/I,dgs>N+!);2o794UV4#$-OX"!aaM0Cvq[Y}ey6;fXƱ{A dvWd$>ʵcĸ >Jՠ;&v~Ȱ@(ŀhT0|@*3/f1WuB4lr΃45rDw=~awl/f_%ufM,NEM !W<3;#~,3dY1qg,ߣ[Kao CC>o]_HcGK; 1fCS4i>0 n%a0>blwi{WΡ&BЇ!dߋ?09Tq'l2?5bC#u+5ԵvO(]r Ix\d@gfwlѧV9r9fFU2!)CV,?@-qMJMkm(k]ܜ@DWGs12ޛ%]g - PN vRɵC8e|o鵀>- [1%k^o"4J+iދ>u&\c=P;eTGu@?PRdIu :qp#7ub<5-U] :UmXp}"TUFo[ʆl79 Tg/Atn50!>pL% ]'y '񳏓E$z_'HÜF?fG$&iXVkl쬄q>Nr[kD#L4c0t?0e=NHׇDt$޸Kb"NDmF8?Rxiŏ'{aQ x^Z%zYK*ABp@4BNh*ʞXЫDϏ2JR[m Ͳޗ0 (y8--F?%'b&#OՈ '!B$̭t?dz)S/#t6\yɝm1T|DM:(hUޥҟ cvDz-!{1KEʙ^ dA8ec-~q͑aƞzc2ɝ^نVIm>MI /hx9 A|µX \n:{`*fOQ}F/QW-0C* Z?se# 4ArS,?QI;wQԒD|"+ HGيWzВJH8I?%+#x rom^0*ۂ"rBm5C[^D!?\E|Ef;s&f]ƛِXl=e IvFM¥Pc)5Fy(=vb&9ém 2{ˡR b?^OhvI/KT M;fP`:o{&AIc#/3'SX_2p(WC{3M}jLڔnĶCvpCMޛ, ݜ@@_Mai5rá\^8&ء XbčQpњĶTrӝ1LŐYGs D]쑜9頖Yq=s$`ЦF٫ A$(?ړ@vq`5BT5Ĭ+$v"fHg18Kdn{r/И7|M~ Eh1e$7T{&UMc (dOs"+h y[K53 V<[r @|_VzCI]Bh[%C/>fV2,D cO@[;8f.^#^X%\ [ oFXuυ#$0K8%[oTo|:3$/F*td͗ |֩ f+ {F)0sgG ӷO?)ب~aaGf&}j%"X ||?cY":ss;ts4.~3ADXpQ.MLsCYƲR(%- `8.(P{,Hƶ):T ye| aF,Gq)8O1@ПN9S%DIn.d͉OJXáَ ;eOO0rߦ_n"Q*"tv=+ Y%A-r_P\~e*2=!g$Ɣ@QlXs!N$s@  ,_xJRɢ8 ߴ&" SŲ%Ce7iR{BucU xscn11JJkvX6J ~i^Iy1&:(8% f;)nd/Td&zCPx,z,Kk.ʬpĊ ptg"Um2ҡүĹށI߼0&-[.>0Dm/@o h\AZyrN>nHZIϡ׳i@`|6ƹ;Ҵ;O> "'^II7on:WL\Jy9ƪ ϶ٙKKˬ/] mZB_sKù.?c 'к ʎNj]F` #j~44zW7+]3uՋ u0 K!zGZPow6qO=Mf^ {+B}G2-sM׋bx+=fSu.Eh( c|; quܓt:IFj_v5#Ņ*F0T(~FrI+tVSx*B4ћtI`0L qW]He80qf)na%P/ IDATi[V:$q!f'!b\wi6h>eA +RU6zCHC4{MTM7 w%2+ޢ4e $@օ>sj6>;A&Hޭ5[!0C`WCvDODaI2k>Ocůbc9&j>3$^{3f0!} AӼ*`hdzm"UMKu[c 8:BwdЄQNjX mҫ>ɵT.^#VWf*4%2Ppom 1Qh2 E{Sy(^@LhAf%S.=ʫy@g^94)OTA DK+L^$)Yy -JzwN`}KoѝO0Z2Z{bS~d5AY>+T?DgAeL%C[2[H%{wPNʏ˚J{Ru,Wzװ.o $uX ^b|Md >4C*1SMUW}RYy}ԏ >4Y$4es0F7ԏD!^Ynn^ޓ*[4 'rX2dP(L뱱Pdy/9peNHe}6)\JTFs"N@mZ@{-ϛ"x {!l4{bnIoHqW&6q)/ܓh"Vg;mY U ^Z#'ör :I/b =e42?#3ǁ*>MduXR`+bT'Fyf( u8jCU*Ӓ{H8Mڋ:MBA)KGNU *Ոm!Yh, Z?s.\!;2:rfOʚ?ߤ(Zb rJc_ OjВR!dXRލp1J֗YƽܗjtcV?dɺ$]։}X/Pxy~ IT4NN66\ԁ;$Y}<<^c-&UhgEW/'i إZUԗUD *ys-"4c_~w:b-tg4ܢ!߿ur랬n$rKrל{CBs*(G$kWoj/!k9!Z0rX_=G=aН Rs\:" Jo;L~uesԪ@dI]@zԏ] B=?HǪ ;`G^.﶐4E`Gv?;%^,EW2(i~"4I`*FiW2#uʢVˠ:9[^H`C֐)/N[tlVfN;j\JlR~AfYP=pUM2D *ߒÞH۝ n-[K4l? άI8{d?XhrM>AJr6ܜ/߸QJ0ӷKח8q#)d]?P#GŝuѬ{snݥO\Ѹ^,`n(rYuPDwҨۦ_JCzMٙue$vB{Sco@~,QN^c!zO:k!4aB}PgٷqB4 =şrq]9 ;o|s-lҌ=>2,G$W42ӅEhIvF&sZLHH]*Mnp=2 347-@* vi‹Yr@jUaEՕwMnLHsv)SJo&k86Iaˬp*$Fu4!]WaߎZ*؁W,MiT5PP0m.RGp֡7ƲzbgNA_~T=!X^A汷=eڨF/r0ADY0=IJnNPG`o.'/NAيpԙ5b NIj{sO!lMAvTy f'peGe|`+"z` 2s.ү3It&Vu0*3gp ?y9BOfC*S(A QߺRGU-bXVHmD>{H؀}n>>R$8XaX6 )̍6/X!x}I5G[iw7 Pl&q.}C6; j "8X~wgY7Nw篢< &MRz+6GH[eAӗ;ܦ/]JK`ݘ1v?0+LʪĮ;PGu!q"_:l*П,=AFZc&by{ˌ=Ĭ WsDBoƒЍ}*V3Fx<Ꟙ!?Zj3k1PH#^QHb'0qf3aV}&OI ꠬0~Gsl@ "?srrihb5|K*$y>ý& N`}i`PV1ڂ`f b+~ қ)] \|":m6Y i=dHP In!P7Csh z ]Uqf7"wiVֈ?:~xi d0NjvCg?:3fRC1\y6<3KRu#3x9)*I.DT^ ho [JA.IKQ m( ,QQO@A埞bҷ4OAYOgV>na5<w,?Ca&HMIR+*f1l_Ѻ*B%O#3F}&qQn/\g6kw˸yH794N1yo"dͣw]SͤNvKOCv(p7V,-Ɂwy1V&x|aIS= &^[cS!3eoiRFzB} Z1C\WglncoAEb?1J)BMrG`@ J2du.`! zNIpr>,vH`()Xx#P)܏O@l2? C]eUh&ݝwh0.[1Zw-D@QzQcWȾFbVq!ګPgu 6ZGI #U0w_DB ɕJP7.-oDaCMZt0]UT=z4▉3mR_@ph΂9!3O+ &xšhPyAx9݈HSWb¤D/֩=kBbEAOw~\M!=8A ] XOX`0Q݃j13Nо˽3wDM%Y9Ϧ 'k*b= ~,[?;Y",(y}BYDQ5q_ƠAFpU!_!]SpȜ] s{폍5"gM߼ʈ C"0*gghR{.CS)Oo1+6cW<>[䶠` 0vF}Kt'u}%YLek^q!pm*N1?aTZ:"YK}o)"1Ÿ@?!yޒs>vh\Ew"qSO~6C8|LS%aBkEZMQGZIhβ3>U/wd~EP~yZq#pluq '@FӨ^~:b wyo] Rz :)|me| TTP/}>N뽳 l2߼sZOG*F͈ɗv ^zs1k1GaWD+:s%ZG/N4?חILՉ&pt3vGv Yf_>8CG^ຽMX \uVu} gnAarH{-!!zDg^0ﵱIfM 7UA2FpQЌ43txF4 Ϫ0uФ7/%`HE~Rk$^V.lBH2MZ>[J *V3wioUy&s(S?/Փ 2$}[MO{*0$u7@re| ۨCF&&1k(S$֤M0%Oi(@b5i/QvI&Ju^T=vuwS4$IOtw4d}⡃ZLV.cƋmFyDcs2OU+kM?6@$A]Ա*^V7btxAFY30=BqT썽u%|kM쯾M4Mf`S R;>`;$u&rcK"bfi Rk rgngSX@GWޤy-D Nh|!:f|7T?1!}kmz3[> co-_`B[Rcua٤,!{/ 2u.Z&Y:K&-L~c'@ٯ5/u 4݃eAXDB̃D<gqͣubϣܒd~8Q@u &tzhE@`yϳPBp&l`슏E o9'yy E(FBђn5%N" WtL!` +r* LBBF~%AZP JDTHj(x9A*w9 q,Je {c GMPG*ϓ+ofQ{rV!e< Ϣ~t<07q/~̛*z2}X}i5 Iy laDkl?fGj3$4T Wg܋xImF4,ޅg0/sO.g(] ̦riXnc9kC+!F?$dIU }*`&deGhfA5Ah XފG@yЀi=, <6ӶӐ^V@cP17en@nڔ1uG'2`;ul1 ѻ*Pg5ǁ?ҡamj,YE:"Ӈh+3  Bzuϝ[6e{aRwO&2qm)1["}>_ViFĂAk)OFaMC2A+:KFje"[ ':;y҇`xY=O#eƻ҈i̺J`hDd4609bÞ %12 fޣ  +ep7R̾_9K~8n"+F_Rj,|n0*@[G*8c 熴x3>:"PPn$5A+9&@k55̶/ mC3Xm~L8}($P3t/ JQI%jO2r>`2CJrweª:DJGtOS|Q^0'$t J@{NpzC?w b_ԓ)A{v:DE2v @'!I Cdԟgbb̚Ŀ?MxyH"ԚI:T^q䯪ff]a9ci4G<~3[!ENkV=ThX; @=.І I(Q}qHw^KGq"8EA@hH΂'m1S|{м$;C:p%F-vNLLKoujuiBK08 cw(`lu!͟-!N{L[Ghn5'JK}!gG tMI9ɦ֩jwhkjo95`.lcCẏUBRGI?9jѧqƘ[U&@)qƆC:jv5XvQ.[cFo4zKLP|%֬q,K̀~5-⺏ }^63<22i{&~ Ԯ,ٌpSЙ[bcK+~0NA͈䚨f rª~Da++-YL!ߟڲK]ek$`3d$G7&wPi)^ 57ΐD&Qij$+!P9P kXۣSRo[Xwe#5g*}G_i>|cˎ q.NRYaeAq1>Z'( & s$Q dGfSs1O}hi%YOSY<-lŤ͍,111^8EH.(]1#x#w E #)}ƯDoBޒ1vj6ՁĚDq࿚W< \j9BޒՈĺ\!jiwƸE~n&[)AV#2 # 't&>u͖0jnV>>d.x]yc67cPb,nT1Dݲh4OTV$2b7*[uGF>{- ޚؿ=MJdoC_ g6IOl~wc2EutmNU]~D|FM0#®%7c+1E\fN kݓL ДQ9'q̻x t 5^w k]Zw?{k9Wq)wFƸŘV#OZ]qJ܌Q ŕk%c&t'SϜĦ,~$R -N^%SQ }`.4| \lͱd/QҦ7 FhIjh (vZe*6ư?~T5Qq?=~・ls""z>7QR)|˺+O>$[ŷ-^~_O~|shpI$ICxoQ$3wam"ǴǞҟ΃$e# 0z(oWźo$-$DyHN$G (߿!I1Z!N[";O)Yc`%"]]BoARΔN$zܝ56?3$"nAl)$˿-/0d%EmNOmb>|cNd8OΏ;B1 8_|0{.&YggvQw7q4[Pe3jOH) /^.'=a1tA|weJt${*Bg*&@B@>R!}ߡ+ST,IXs@OJ*W"oLlU5BbJ_I 6ՉQC^A.L( - qbd9)q& S;hk^@BJoBc0Rϣzr z~0mG- =h߉z{#sI.DWnn0.n?fZ߿Dڭp@N7qz:rGe\ܯ-'wEelLq 7bW#@"OJcؗ\΄B$I*暌sG⦁ dmgF$68oG;&u:SՓK6y`F^ vW?ߥUHӛ']ҕ. A.d2Gn uc0Ǩ4JגG>} `ƥ]x^6;خA-f^]b_7F7Cr'/yJv>G5W5ʧeC=2~'.i j|ʩ~;gp :]+*n\~(}O075jgo}D{ 2-BX|9Cp? e$3"e+23/ k,QK'7բW؁ \cJ{_͐ ] TI-T-΀M6NQAE`-~IJR@ q|(oWWOfQ]:_bJt0r."-h?>W[2^RAoKX˿>c:uW^y]7~7?7 Ξ=w?'X\ ŭ;5F@`y X`| &J†z7^Z$cUʭ>Dn87+vc+$ȚBR!ʗ@ C;%TGNb'W'uc6_:D*ds+* h(߹7{h q@b#ds'Vp8CLcQ!٥R.KBiҩXK:e{!jTD+$N1&zǞ7nOi 4<(x4/flϥ2}C.TQ+R4A ƿۣW^Zs8$@8^epWD)Q돛' ߹Ex3bF~P2>p;BU|XEx{̤nQ_g|U]Τu-&n1$&2m?3Co5lHgRT΄&NL5$~D}uz ?$7P}]Qx*o\!xk=o & 27z>>CcOtTBOM*CkZ=SߟVŀxG 95ӞT2 $$1q,=0XBe&z>4[SLoBxxY5{0G1n%1]VkNper>#g>M=.kerM'Go2{h8Ԯ- Ȱ<Q ͙V}ȡ噌ZjDfNBIL.m }wƞɑ[=j#pR!}?cHR~䚘I BkF=%$_Z.bSP|MnܸگL&$/~=)woKA2(,`:[7[$fT2B}t G*upD3Wn#UN$07\ԞA )P$m$[)Ӑ-hɐPU(K_T_O|]!l4:F\k _V b#E>:"Wn5=  zF0jrO\ȲE$J*Eg{M5H-x'H}:͓#!-_D Ħ@a=2ӟ_$}ae( 2 c /)b kt 84vRŕ.^P6<1KDzk2L}|ִBK%*q AԻDkӞHnHtt،2aeB%_Y ʥI TlUT=e5̷k(U>a6aZǞHgOeȽU#C]m_}u2Qksx'_G_G8禅m\#ZXFZ|sLLsޑ t3эS*( Z:O|*WqW>uQ_yC^*jiJF4L2B:ON2 l>O{FV$*t{vl|4 bEtVc1v5&xۊHŃy,`4_IP'{ĆݎhOd|-+t& *6DuO[zHzAN=.Q($ebғEjDE)Wֆpůn#LEurM!!6fJo.la~m2VSeq 9WV@VH ekW? D-ІʤK\>m $J{-g<# !vEvq1%H|sC+Ȟnn>3Ķ߻G{7qM ):džDΧ QsC$Wl X?#HҙTP*D7VX=dH7إx1Ajţx~"%lRzs&iR>f&FwR"HChHOTNI7LRFt&dj?Y-HXH)܂ؘX;DFo¡o#,eܱMn)~HAGDWnи}~N4qh/&v-Stg2aY-M}InD4v%6F8EZtfLRgQSYR_ cXk>>5]>ENߏI(<5#*f;T$ c,Ξm&hEuo*gt5t0b]3~*&VciAPIc [I|rz_Ί]4(ȾFi븶N2"ϛ$WdrѝX\PVl=&j*jHi:D8a2QSyyԖJB4[kng¶}+4Zx aZ4(mj9 }&Ԗs-M,PL|mQ5ptR︂p]=C;*>OzuSŀḥ揻ޡ^PIe>JLDO/!oPk@$ZCLDXVa! lj=XLxt/ #u !.3; 5ΔL{CE=S4&LRUJqCU#1^N|hf"ҙ~~%QX-J էv@YQ%gHlhd IDAT2jFH}?c-Ktfc2/m`I;  R 3-{M vH7>ۃ`O }Ss.T5:S0kƪt+q,e]*Y2RЙX@œ2O'*tqQ_i$&رIPWQ;H{r&+'pڙ!k}^FLAMUb9'04k'L|NyT%ύүTZ"Vd7lO(b$̑Y>+|??qѠX,>44D^c9Z5ڵW^qn"݅7~xeK'#-SߟAC)I6@- ]Gٷ ɏD.Ϊk2>+"K/)&4'HoADn M1K-,S3ANWq{{>Ko ۧ8 vʧ˨onqGJx΍._;fmvVE$V$vT9q,R$dGfclA6a.ZÜ GMmҨ1D'~>f#$mZ/93?[=&mtme T'Z΄ -{+!Q>#`qYo_ ZZAl>u7{XQ̅{: DDrLY,4</~N)le?~Vd}oֿO31Gj{ENOh,iQTj(ju y>5C8z'}tԂy0b{bX(\g hzKTĖ+F` D*Πޭ)X?Sβ;9$\5q Km6B5!0C^<6*Qi 뾂_ H}&!ܭr/+򍉍Uq{/%X\&ʈ6MREvW*;gQ~W`sVvwXf`mĚ|_Ah,i)^-OhE#䨝iPԟTPc~a_=)2G4<;d 'J iaOgu<^NlAĖ~~Ǥ@Hd: /˨ m'ǡ-R(^ >/zK|%3)h('zWd03':jWƚk[_Kz8y- 5R늊按DD tR_ M\Fb)Q y-TF(Ϋ*͋. /XK}@Ti4v 0SzQDEUZ.k (~VGq}1)Q͵9/ȼ֊ă-2q#u!4r*­'ZP2ow#(b2U0T0B"U(oq'ȉqe<9K)K"Vj= e;oПs>ziP#_ 4231ctA&\F,@a`}eOoб໕ VK26ㅦB(<py:??߻[ %`c{3$2CpPXV$7{h i|%_DH(Wȅ"k3CgbN܆?ix?T$w$2ȑD{JC܌e/ZRod k5$H(A _JlYh5CZnĔ>1t:@ٷx]JեMlۯQg oYA9KԢ3-ɍ-HZf"'e|q2MoUZ"*BQN;|򧖨Bo W-TmЫĄe:iR"Ƌct'J'VvQ?R GgЊZ*$>:a9Ա(6gr>O(}c:PԹEA9wcfGQz>F &*j`xh_>(Ay"r il!| ֝'!GHJFcYQ}37\*(2q"M&NKH~ԵQn%EIz(Pjg͐O2.69jO =YŪISڇGe(T$LjU^V=! ٶ+2O-+"Wm+tio8vhJc"슌/ ҥMZ %+-!әԙE0ezǪ8JS *ӚVP{BU{2$3t#=ƿe5s!+=njmL }E}Уx^#zsL!(cyXOPK3s2?nd5FEȾ_:Z:^V&`"qXH[0Sc$A6AoDpvǫ4v2?O؟]"#;>ߢ7banJL~e^9Kᒂ]v,cC&CRKʝ$? l;L]Z)?AB;!Z inWRHأ3A>;pfAR"q8AoDT :2a. RiU3ȁ7UD- SۧSVp2Co4)kP?%U*_#wv]#a BBYVb?-&#JGŝhMZQId=5~=>K2/1?%E'a~*9rs.Zۧ6AV\FV%ΥP^{y4%{P^H"u?$Dӣ~\r~Z3b!GkkO!(%H"S !z(JZPHVR >~9X!4cRKZKCUW3HGī .^ǗYO&FMb䜏QL>.X]O/`WSn#⎄x릎gm{[Kg3mJ^&cBU&,{X3wuX#+WkWiv7pCѷ =6)z:gܜoi(י9ĭ;ku[%}rtFJ!sr"bo !3p w6ybzr&__E[!Ɲ0O=Ak[Ofq-nި"F,.3T}?>F3V~D BJA\eDk0e}ScLMY=5fKtb*jt]:JfxmVae{8Ҡr|^0A:̷0ݼ)R+ip~w%dw$f=X,ECѐMZRIJS=5U8//X\b'O0MR;Zs ZMW ĺ@z z VUYz暰(%m2r/HguR0ÝZt!0%2s2+/$z2&4%(Q?d#yfR' |\#IcY%GiE˄(^PRYBqwc14 g1'(R:X1kTUB{+=ޗ]:T Zo PS ~fC6&Sc>I#9$:Hw#'J_cX o@jNII _ps2PLA\!^bk/I(IWCTddf4+"\`#̝( u֟"6  3#y sA?3ȮƇ]@'w= Hq$ܾ6c}GkElvʷVX{&Q<&~wr ]0t%{UI'|8&;SwF?$T=CĦ_cE,D_/[ݻ{qYj_xꩧ~#aAX) )WDMoQ~ȎJ*&="V2QzPX]3?Τ(|$ć>.yiE: 朁ڕ^?2,2 "ި8&8~,w y$ !gDn4Rv|jxD9+K %T$Af5RaRmѭ$`fh*!"k[1F ؗ #R㽴6 @-8hO ]zN?Z/a2AoXǷĎ)/T ?%W 4m]ˊEUlQ.82B`JlL\O svpcUj"\[\ܓ%v ɱ@FvDڏQc 37E՛bnr!\j ر''80;ysI"G Kړ4D-o C M"NȅL=ɏ5Hc "T.ԑ`KlHͷe2痰+2D.@(2W ?fl;!{]Jo9bBfB{F"s/K,Du>~Z92-3Gt-ս6nS.E`䳂4/VHP}6ʨj˂D R#3ӨfHi`qrXT6@AŐ2r֧KX{qt! Eʼnq *QM$l :tYW{vToF C 1\_yVGRzl<>tDOFo e@b_z,R ͘GId7Y?T|jW( nQk?1{IwdYYYUYYW_5=G̐MΌȑ)XYMS2B`+AX˲XYII$r8ᐜtOwWW]Uw[Y- @23?8*QM֔PVOV;[Vijbr0Y}z/ HMwxj,"=/9<Q7 UW>z=r k'Pw~@U?[(hHSPgpFTz?`-~4PoHvzhDXhnm eFdZdmg0:!n>=%7/<8c7\ړaUWƿgXmZ|:cJO*/wz7{>t XH. GLmՅ S/&P7x3c-^|+ |Kd_PImnv]æF6C9]#Aix/BF)4/!mdžnܡzX y>T%lڡ sb/)\1% *S3OD3o/E/K~"^:{.3(n:BQxDr8C4lOҰEC ^jB=sc7RAzf;MM;Pw4cckQ mgd IB_oYqQw Pjْdx^OްG@@z#bY0.Y$NS:ç ˜ȉvkM|C:nd3kg}[GL{\QmH H?草Oo RzA nIh Lf@`=qk&̀/jJLkt G,NURӴ*1'/ PA 藓t4p=zOb9lpg/9Vl.X9ԧ>P?R'N`޽oxg>AѪ_p$,c]]!v>9z6UrT_#R!f]n"Hv!h*QߦHZꌼ]#tq05AE)NqI:q?j U]Ƙ/L;F~*a`'cLəPmFλ^cEA;  FSvP%= Bm(@O-}0^A廨3S'vqiy MnSYWT~Gg"F06:4gĪ!&Cʛ^*؛="Y& qT'Bsd4;}z0LNM)Dr ?!Q|dEF0<.ayN qj],3|7$T $^BEoE$WBW[/Q?Au"9t 9ͫXFX muwQ(##$ԉ" (p"Wj0;{̖ - iau?1I$TZivF=|wD6I=G` $-2XoFJX8%A6_LM 84E߼?;NO{JO'к Pz锠/34/Z Pzɹ6ݩ8yJ7h&fb֩ .IܪJ{&&ЛL$Q9e7%NR(dܔ]Lі)@7 IDATF(.k'tHd?/qaEtOXs*xMq|]!{{ r 4Ag*"d2c?pT4 [X_hNC1P,(Lɣ{+U%r\ 2/2 Pр}z>}7 _ZdTɯo"E BQnC.g\@ݧ'B(~{ =cnxq,"Nm ݟQ}̤}Fүi {vP/Kt3T%ihQrG}%?DꛬY^ÀXRMFM5gП@»2#BuXb+XN,FmԠ?͓. Q&"6a&]}dLDZomɢ!!%)Q鬤pTKCD̪ 7N 5S2\KEuކڕ&1eIIG#̖z"N*ru-LHc1`wMh {Ds0gգ!:TqZCM .1o3ldY;^q١7cU$xC΁Ib@ܓQ"AoK_[u8GzD%Ojƾ-{^IpY$c8_p:Z[f49=8^Ggt/R.[њ0H+qO3G۲րR}i7/&ћK2!G|N#07,O?PC@X5RI. k=,u7xSBkFbMrQ@#m穴גih 37%N)#)^Vd̛Ķw\% #]o3FC5U5S]@v%rmg,1WX2ښF᪇(,rFdlY7n׋Mȵ)2!\!-Ӝ<[*&c x/pr+${z;;ώe(DcJ4?R=%ue|Z)?O4+2s圜3 Kij>;8~=Eaj/L1|O%WW0*\ h];WPYJ(h~"YM/ʛFT}7 [m2j"U(5:)}rXmn$V5\tət&CZ ʿyhcebk3bJ8F) 2NG 9NNGH 똞tt{Hqy9\&=<<$hr D}q*z%%|$,%K x*?1A:r-SBky$5S"E&sEasI6^"q+I2-ΤPsjK@oo›D`J-Djd\*fQ7o&wn=$z &U2?;Kg㹤|bMW>5Igy_X5#3yi|KH㣘ܡFu4OEZ@_UZC55+&o_AZ r]H&x88?m)wT{0EdRX.eI/Oj$^E]E["zviaS~=~l= +z ؀ch-WP_*?H|-ċ+]r JQE5>mcKȎLܥqbȎmH-4g [oKu)=BPfD/ <f0.̋g$ΊH MXc梊Jg-]3$ 3dsgCm>ګ霚G{R ]wƙS/'UGK:}:Ϫ(]UZޒ^e8:PV, Pܟ90%:QX9CxL+8f=" zdQ; \D'$N )e[҉YDdjTwgr(skhėH΋dH :^›&ys-2װY{!FFEqFjҌp'^"ru*dﹴtK')$~ae(Exu%%kc^Qf46%IB9֔IB2#z9j:,ށq2r/GNf*$:1:L]* . "j ,ڃmR?"sT!RBtwzC_z|wyn L?vc4F9< h2QH t"2eb;4,PUuvHCH}XQ*3wjoiyyP7BF0?B$4=8GD:(;6;R;R]a-89`Ow>ѐh:&dڼ 0%¼K`fyzuE~ VSxMcYCLJFFN!8kخFJL{@!BS*/(߯roWɗwrm?H`?^Hc+wlJn!$mİd*NS<<=W2oҝg !޲к!rqθT;:ƹ( 5~|ў/('}.9nOv=OH$$3‡PfG\}2OX #nj]JNa|z뺉b|# v BїuagٷuܔL(s'fR[Еolȁ=$('+hzܭˋGqj /cg+:j_*g?;NثYl]GatFJg TJ#YzjB ?&23t'#r":{*Z ߤ5R݋􎌡uRNOR3l. 13+䯅v) (>[[#g4H!i-*֋$ѐuhvHSe_ȣ*5 Zpjri=4ҽdPȑxGP{ l w(8w ] R1檨u.RS|'ԎM1,ԯo-tܻIT)e|O#~ՠU𑐮'qc 92SQ/ƨH[Q wHuK#T.h*j_y/vpKCވDElKMk5~Pm[.[CIBbNt&o^>ZF2vr=T*"-!sQQo}& ި{6TxK,'&Q 2_{ONYC"sM') jJ!A#Hu 2<~z'fyFͭpsK!s7 D<%zDsQҚ4p$o\V 2ljB"_8Ur/! M1A*Ž(27Dwi}C6hWPM!+T;D~n4i,2*vDl9!g&=A ORTثiC}_뛌ԫsXaM|xlqX˭Mn L윆l{ߕE4+Ma{P#oh}$F#v[;}~ާ9_tPt&"N#`TfAqkwIJ;ްJ49ޔw>d?W1Ivئ4=ZAʯ[fßF账dpU^)0JхW Cm(H\!R_ew^בATP1^aVQFU1ִZ5"UX"+Bo 6W0 uVmCw3Nf. w3"VޤA Q>ωX-vcIL3tn |Y!1^RI?p&]D[5- d`l;I`D$V#k X4Y]1Y~Q8hY(L` ,I#{';1Q${K 0` uO\Uz#jC[! z{=4)`ouvZ.RQΘk;>Ck(+'B}lDX*3]$=%+B2z ;yQ_eq͝M I.FX߾Bsb_bȾ>R/Ī6z6~DjO8Cmk.F+HnFp2gˤxeDm[S2!ث[3cK-)HLߜevgdpv)oIl>=AD/!z{XG9/6ѦUneb?c1Vu4XL/!8m$ ВŸxӗo\AݷYH,۸C|?Ng\_|J#}q#y)!I2bw +uѫ>6U մ@)aOxQkK2ip!}t)W/=VB- M\UlBc?;ՒSF3G4A6}P-P$?Rۯ񊏷sD7q4J#sJE̗/bz"I/1YC>sq:C_P1|GoDu34HAa@g:NHK"C)bCBP+z Ŗ^R茉ȾIP="ۥ1+VIOxx{hRėX/n8AOwL7"S/ќQ{71HHh Z|鯺d8l<'Z "YXְ 2)dDlJ 4@2NMK5-^g'ZDcVA.:Umb\/9]?d %06^vuoPg+Fk6"sBCS]6+>֡g%C (Q=ўI0fDGoDI؇l{Erġ {Lϡ]%5F? 6ҙRL{6$wE eQsU%l$VaO{sG2y{O솉Q;PבS>~2`Dv/mE$IV}"ϯ95A IDAT̽ ;7gIBC'_Ѭ-w+:Fo:CkLԎIX>@WX_?@~hj zLG uO`үf#aowKD (dXM&␿Qk.oWb dO"4W h̊غUQeu0 5R#Wy2A@g$R%6j)D_@ʳ\dh?W˅oߧN!NK`˴;L}=$ w=(z8h*GlN%aEQ] )LؓndkCFe07Z'H)&I#v%%7k"/gLl;BV اt~]Hbiq}U(ƏM)Ll[\j(4| J"Quʼny3X^~l )4 `YKXBXoP|Ghf]hxN`v ԧ[<5^Y9_vV=e^IO:4w0LIj_j6:֑Q[WJ4x D@޻Ic\&|vYɋdlkGe|b{v8**M`-uT'މ* +B=tIj| J#ro-anWэ3E0HL!ӛɢu"#&l  4":ѽy{nQd Tß_@~㒰.X>jmwL~@ Esw /S;A>vp`q JhM-~(]IOfݝzK;긶*Dp `W燢L}0L?Ĭޱ-;8(=-NѪ:yVwfC#l aZ,>=L7QUSCykVIQ:D5 &0\Dź$aO@ d'{Z#Ԝgrm(3G*֦KHPRW*3~=I &HυW#:cnZ8T2s>}^6O(DJDN@`0v%Z{Ԏh;#lPܔjOB`E;7e:;V`a}ݒxߣo5 vxJ0 FUW9YYDe}SpF(Va+*Ƹ6p@D[UމH\!0ak-߸Cgƿ;)HO&7ygވ,*z9n{MYՙ)ĈϷ Oj?9#Guoy!rufjǚ>VEgf=Ol~}ʑ" u'1:ew tcqBM(7F=$Ta#c$.{Z8A7KNX*֥%Qdݎn ?&Kw4Er <.j?Q¿;b4d/ 'IċuQ*U^=:%xN*$R֟D Nw >{?_ϘR1>ͺOj!DN{Ptp:H'QeG GEgLt[9ck2tnǏXP̀K3t%d=UzfJ{4I/P6jC5P;c8"*RЭZx[2[^rDV<9~ʤjo&%P"c[M}κ(rko ̻>[soHl;;g-r;C2Esh'/TQfv" LTՑX)'E毁QDKODž*[Ϊɬک8(.p䪎 7%~aڧ5t2l o#2C̊ݫe.ڪ H;X<哺'd@澏ځS&khX̤(8s[>9"b 5nɤ/G}֢9U_Pp0sE(u)u.2_8Kn !bbސEc]*UE=o+yR]96jiYx?&!-nNIbl7!1C $rw.&a"H wgr' 7/ O`,7/b u9ΰ}G}N ޡ1M" A "Fݤ(Z.1d .rSEz0yv`if246O}ã2P -haIxDwT_4 ktJfUŤb-7Dt0±b*nrgN<AEf~U{yZT: -c<"WcW9^|}LgBF *ZRMn@Kb;FjK,N}#;<-VLa˩Ī֦E?v3#TQCl8O- ]"Dg "cn@c?9M֍ RGtp*et+oww-arhp8,M{pS aCSR1:EnFGu#eEz93FuqN?Z?֔H.;1٧݌|k ;|ط3A4a؟pfhs_>$YI+X[C PОjYVHW^y*`gj'| 2?;K0;»uǒ ` k]Jb (kU@.*!IvZŞr=!O%{$yg ) ×8!? ٸWH,#Y&ցړ/Lxbq E1&Z7..'t=4aF>Z[&ϳĬ"NN!{ϥzT"ڐP|Ə{/%V`e)H"6~z7Ev{8%*|+;<>2P Оd7$ʅRrc7vv ibb3qDI DQHER-6)@M(_]A DdV{{>@;xIL}God\ґ(G'͸/-69T)Cw.^50 5`J">C}+A!nTۧi=W#D|:9HL5X-q|x}yq͇3H,LC ƓU!'o3W&+]KaJa:P|GPDb'Hvw)dUWBz?0ɽx}t&rV>%e]_1UlQ-NW8t ;HfÞtqsbl0̞ d`B3jhVmxփ#"1#{*8i}$̆ 5B/ϰq=ܘ>M~M:lWS2i6Egxq|"ߎ2MwN(LgABk* 3HL @EoLOއ{ ^/ }S!ZuI{b '0T jURYR~hĖD;,6pZ 7iR8ץϤ?-26dԄj+QFNc"E%nlM!F !A7&8ClU{{xM{=F*t SAK̔hJD! g;2R;^L$aThܯVm]zCj(92] vF&KgUb+ {'F3h BY!s%TD3zu^$!HDܗ{ pJ>t?TL8:!#8whC3$dEǺI:c5LË}ZGCLlCBàRx&+;z|y&r=d73eF QUt=1QNYN }ֱbrBl|TPC&$s T >6^ B]EVCԜ-:<4Tv7>23'beD~4+@O猊+t:{G/gL>hw7p3vz~$D3 }Bb?03Lޛ˴x)Q-slo_q%/dǸ 0(+MⳳewDyS +VyX`ꞟ̗bn&BZ* ߅unE$J6[N3u◷n,b?ꅉ(hO$G|jh#t+UVͨFdz^MHo.v)ߛ| _ @¾&ng\P0JoyTNOêt}=ʳ&F'$s}к)@aNsrVgCtVF%4:)腇X9z!Ntͭ)u{-xwvFNKSUU,OKH] ⁩9Q2KṀl=,ϰ*~Μ)*Y>u$IBv䋉N}ޓ)kQF *$o: ꉽtN".&X oLd'čClĐS.V#V^bT@<niAmQѼKhOX ݚh^Z u% .o <\IZ+QMNS}r;k7l}}W3,7rح^AN O+FQWQՀO\{r{Xo*_3oѝՑ=^ Yhˬ~*$JJl)FY笠2<]Ű"59 ;',)jKS+rZ8"Xe[!}Rq\ȎeMsz~F76SXlib/,Noch,}R`ϭ6KܰZv;nj=4yP쟨slb Uh-sFG?-|(5|DfKL޷T'\7hVq+6ru$yn\ϓ}7;d(ev@t]OB? V/_hKgiZG|”KwN0\.kw -`icLXîd xpsLf91ߧپdX5~4+BMP' XW:)шM f\gq G?>1yWo4NJ9z(?#sL\wzIq)YFSw:G8GFd/t mjfP_QaEd ɞP|j݊@]<8)'v0TѺ B"]>oS 1?\, '>J<;ACl)P8`H\o,.][Gfh?S]B7fH8軫?2:CT 'GU kn9" IDATRSz,Iw3ZqIhK%\e*Hʰ nN9(TN*dǙu1b %34?>ٔQ;+j@(%UF#ܮ|5F|/ / 7)d{(jHUHa#AO3K&^=?3HK$ C:HAh?SMXUChO:!.i*i 4s$U({ΓQWhLבjcl??ptf1Jdv /7U@"k!;EOO! Z@!MZ$m 폏a0(:FOu'wA‹ ٗ0 =(|ê8/%DaqcugR |&YD\dxQH u@Bͦh~l!=>{u \¼DU4k䮸hW?<&ݧkh}4ݓ_ᑹwh>Du2FIaRQ-WW’?`Ϙ-[iZOz1Z?YԑmclJHPrp%kEe:|pV'\80J!8pxQEO z4x2h2=S'X +!.MS)E\e#goQ&v(&ӹ߫qW0L_C s?.NuO:)PC|)FlX)n0:qljM-8*ӹ? }|j`i:x]2ƈb{&$Xt" Ὣ(>nf9 \W:|fT.p!(P‘b)lˌI_&t?Ll_K3EQ"b^~2o^GBs|fv'oz#uZq+i^r-/|f.|O({LCb:-2!CMu#z}Û |Ev2ҧ8F;tYS&I.Z M ;FkwRo*N4^!EKd&z$b0?V $̏6$_+*gMn#!Rن2)q䨏ĹZgn옆_p8u&\P 55KUNxQHX;/1zxLg oIYpvT+imy`4։^5 Qb J {ЅKh[[QD86Fv1 '#̽=z('U>t^qH*kE\~@levj!)gK0= (_Kؓ.҉@'5%-cdEQIyX3r [w(C?\`,[$M70 Н+a|%Olӱ#DdN~QtZ;## ڶ@{ԧ/ϲ?Ul`JFn YV9hWϱ @f7yDV~2)FkWǨ,"u{HYO*E_RΖ?1MHVMal:vF!>48V^bXQI/d,B]=D{2/3OSxot]<r,Iʥ8'f-) Fb},PF',s Z| .c\Z=:1[J&ٰDI.y@.DJ)/Db٢Y {cV\bEUB@5$ D)uQ9IFHx 㒐QD&$i0Hޱ*C ( +idYėFQ\sk\{) PHS*0Mn°XHޖpbUc6vC\/0.Gh`-IKLur@ d/_܌8!a Ap*¸')䠒92͇ b2nLI)$^:HD=cwW~"raYFa\I?Z$Uva9YF{UK%lGN%E:Wś@ 5TP."ȺI|eE$nn5?1,DV$N DN P= amp9vNF &waatBFE ;#yjG916 &)`^i2>Q#AvkD`ϴzWsxHCm[ +1SxM[dMF?b6dG[$#6"dYXNLreL*/2l/k4?o8GMHXߖGjlPaX t%H3@Bh\R !VN{!jزh2CT'AјߢEZ;I‚KnCc^ MQ+cLFAp'*2p#4C&#w+\pr!Q_=<Ovl'xv wMkqfP٬gku8|v"n~58 fyocTmxGkvԬ/Wfjt8^ס>x5Jd Qd٩.ԧرLfjEË2_hcι 'Vi*:մ"7T,lK'Qz&.sd1fͭfss$3#BIU璠%_ ^Ic_@b)f`_0 uC$̓k)uwi2ǞfLrڕ RmkL! Ԁ8B2jSY#ӟ҉u#41Fdu}U{ !vGUNw8j1W!y_Sc!F蕵}DPo i"E-PkU;^ʄ ԝՈ4|̀¹.w|+dX5}$o \@gΉOD UaTX=D3'ޔq,ņaUiEGH3;aMDz?`\Pp!y4~h/\u#YF;@vWa>Hޑ˴})dv:óW"*t&Ie̺2FD=iqZSEY1@YҕvcM&!zG 씐qI}4ϧІ"B߉%gnOʧ)gsCOUXq@n} {7W:g"H] DJU5JBvC!qE Lx"^N%d7ؕKߵnݓdbAB-S'h2f5FsX"b߀v3i/X%q~so 0Ups;Ǣb" mX(+&}RBn m[/ވP U}SBb|RI:PE$\mdԫQO%2#Z4ϒzICTy!FӾ܊sdD`{;7!z$|y|um(BrS#FHPYW&n\š Yxꎳ;gR4xJ`tLqQJyCߔ(mP~:^w=h  Yhp77 (HVO߶w:Չ.)u r]yW<8~-lCQZE(o>-]Zbv&1hH@(EBn)RwDK8iXJo*e1\6~y7Jd6,(Ѷ.BzIR1KH__7MdO!*^tnH*fW6,qmf\Lv=\Ͱl[CxMڋ F wa&y-.w\j/K+i^W4ObJMQ&W;BJq7IdifoQt0 Q,[d[ :y2@'Hy}a`,.9JΎ3NؿB.zڰPt.FScZ8ߢ`4E:G9XCS71W4W3lRQBۏ's'K$ouf&^@DXě7*uL~pg5fceDxdgDS#4qx^w3CN?CSnj-u vk򒆔snĉ.{s(3= 9bR0\|̦DKQ,&]z;K:7$PZv<[%^BjMI=OZUċ$PJ.r77%vZ KHL5 ;.NB$wڧ\o1 ]DiJ<>-(Xxկ^JtC7~)#~e&zUQo8Li%PEJxEU]T5 TBr!9d _:M]YQ+ ؓ}+<2w+v>|e*u¹.a*s SqQĶ5䮨ߒ[h*9< NbK~6cK#v 0lFiVHv+.!~Ӥ8hf'> WnKӟ&rʥ52aq{ Ԉ @g9عdj )M{jB[ö5u;J,b) Û{H]&;t(+z^8d:m(y;maK_!C9IHo^  ~:;|=g]^x8G Uej/;5 [.ETՕ.Q^0朐MM^[fx1pNc{HALf `x؃FsdkBw(\L6~̠)V#{ewe0%SO*$|ϐ* i覂 nJI梮D/*aEfɤ J2[NAt}cbt[P. q^#9;)乗Wy5#5/e{~,:x)L˰ s2z܃"aVϔR9iikl>[ŵUߎPfHG6iC%sOBKk:!4o;rHoAɞ1$D:F4KKkBM&n0U?g28e^F̎&5%!K4?1Oׅ E2d2#ve)L0"?1ֻ=\/1[#,Z4T-톫h0R*U^HQboB .^^2&&zyGO 2wP7v)-XHh5QG `%fELs`bhifi7˘m/:XE%qPyN"G: [ ; ^ [*ވ18rLRX'0+DVacId#+DIlw K`$.d*d.I/ tgYa8)wȜo8dwz1eTi/n| E hb:=Rʈf'Y WMv)(7˘Me,#H?1ϯ5ԒK!gP3#LDT\SfT206TR7$ZLemL0 !cBܻ1Ɗ;+M U0^( :ԄI5) `$)B|-`e{Jte|Rg뤗}6>GKahT" g->!65`ʎsJ=OL_ ع_졉1ID)No4ODsc2qaXUm * /&˲1DjQ'd_AIH_:g{"U=xnagt$$FU"@!ΡI 3]F=dWG.y|(c $q^%r~^"}x+DDMȥ"ɻ6ʫɜo#eJX"k5"~LCJ48JO-J)t<%ё.[{'~I\QZyM)NeEeI7~3MGkIFKcM[abB3 NڄXÙW)\v LXxµ2w o ~g4qwlr}If;/L ӷi !Wv&I:$gGCBdwx"BTxsme~NTcC"#>wc 2v/OSYE)@ IDATCɟIs-O9dccn Hm^R+,9ƾNnC[3 XnL{*Օݺ|P~34 U?5*/v._>ʱ&^-#Uu[C/\MOp,_c{1d5`u@.u;LZ_1*)GYnL: 슏;P)l${Qx#d[ e.rSW$ev3V/i m%aCS*AàgףxQ}7".Q> -ݫ訟u|+lQwKim_WJ[y!CqމkƙgȾI*vDb ʯJH,VFc8653{Of\PUC앸ݑmMl'at{bWtšHKmO| c0.oJ|ƢߍNX[ 銆S\!V`FxJ{>vQINH2X1T~mMНU| ͒z4FB?`4e=4]3nD*x0tFFAw.8"X*J^7]anɓоbϧ?drq {)Ajr%B!êB![=6^a CѶA{ Ggpˤڸ1ApD*Hd$*Xkn.[Ϯw"[Dm h@Jpm%[['j`u_b0{{pO;'R¶I^{IOwWWWW93=p83px$ڲlqػ,d]$`aE` ;Zrlْc,QM﫧g>뾞z}.k @p@tU=~XhMGplwA8{ټHc_r aJcRQt/EiOG^v:}Si'ʉBĊ,oWu|F>Bz$_·mBE%϶N ux"ͲNOn,Er5߶n<;b* )7I]-@3-5دհR MI_[M >=!5Fpds@4Dxc_:u@ju|FD ..n ?GѶBA} |]Fk {߇WG }{آ;Ƭ@p&?9CoX7sܷnݺzwo=;%i~b#I3TĻuO1dcȮK'H}Ȏ@V*s?R{>A"&rV> c*GE!ٷQ?D[!g+ E9zhd< l_1*p xK2ǂY^І]d;AdD >JDV9%oy2t&؋)#Cn.!"cDD iL؍"t%&DϞ@*7$ugWoz 9u1q%Lam sZ{P:0%U~@c.ɮ/(N_fg^1U(U"yـu؂Q(EP6"C;!%`@rD$FKJ p?"cAC4FgC*ވZ{)M}$Pw?q'*Bl}TO蟜Si TJ/Զ;ƮF= ^پ~OdyĜCuFLݺ7S_1Iah.P urHԻ"ho;Q/AKDomDH[=%@kĿ~c`DĵT6 mΤ0I~)\IEaNQue֤G'yG!>`q'* uwΠQ8c 0W =fv3K(ҧ?"T>A +/I[l Ϟ rǠGܻs.uPИYZIs4H9Dq|7,Z%)]Yd'bKFU3U̥+BE,n[0q2"PP\zUyTPFpHsaVns-J q̷.||Mj(ѳni&> 7oH_Kէ[Ԡ[bMOhOF}ܭ"FD'3IxáSY tѰM_V7g(꺎05Da n[#w݋`t< 2Ӕup:h9fFKnC`v^Ex |b.9 SGȦG(B{Z3N[%E ,1nL ~É PKQ砯|֘YH< I&_5W", 2BHey ]-(ēƊFh+hoB^/(!Wtg FEIJ 3gy"<1,=gpr[aKrP}~"aŔ(FEV{ vզS8Ɖ@?cOEPۼBt9S]qEv:.朁 L!,ZEꠃRHHsa&4Y(`0CxYaPP.8gۄ,XPbl,(º8CA@eU S(Ц@2 gmF;Q;КQ)m壃Y{*?{au!=Z~8J:E(|ߩScp)izyq7gP[vet_'Exa|ǁ\. Bws>cϖQq" (2F?#],ur(R}/S?1I`|:x| “eιqwQj%2ך7b(ae>P")H_;3N|ÇplPAZ\C9t3覨F xr>G{W ;)eIJW=  oDz{pv"En%x8JH>^$wu\]4xrsFbLc~ G|^(ۓG;¿'{=6sEr4Bt:?x&erhE:'|ye |p 57Dp{&T`m5D2J9d.nuTY%@*Jax\0{>BG*!/u4ԛ^ŶEdejcΓ2BuqVyX$5qxhmtWQ&HZ;8JQX"`<e-:' ؼ#l5􏔈5T2_]GV%ov;/02EΈDb Z&L8$D|܄Ahӧ]2PlH]"$Qyv7,1khtԮ7$Q GH;6Og*m9Q=*3 B.g$P}]i1U$1c#g*"wPe2黎@Vl[ (MܧqpXx<-2CItO{Efoo*-ОSQGtk\›E%t-,ғH:2 '6{W+U8^^[W(~s/#6o1fz@] bc&1>k}C8 7,ڒP 1vaٓ0k>*n* C Caw@+UB0L̍.W+Uԡa27{t"*FãQ4g?3Dϋ9qcS$/{YzkkoGX 7,_p2JHidObt o_|H=W7x>F#"1#-v-FXԇ:ŷtFMz6ݴJ@28 <2ٖ].81"!sZI#y`ih2ST?u`# 3R_>=3MܒCaE uIodz#!DgϏI0yrZ7@ʼnAbV/.ֿnTT_QT.*&љM}"7 ԽA6$=VJ _6=T&[-j=*u.16$F p*KQ_: :&p1ۯ z@ %ܰ= 4 'UQu4JH=;.ӫì]N;cOS87 S*CoJGXӈHglW{&v(}'uj3BW7-_UPlPz2ɻXEVZiYD nU a~Lj.:Lbb Nq>7'Yqbm`tO𑒰9_b'Ɛ#(*|o%T.N#yPq"oXP=N^젵E[90PE:} )TwTQ]YO gp;v1 t`'F AqyTo3|Sn!|vRRqp[a=+l/!8ض 4E.9q9|M]\(ܓ]#w@ެG+l E"obuQF*$x?;>m%a Cv|, /1탱r`[M8q 7a=Zv9~^",\/JMőx2k^"kVZUְ_*[-o4b*+^CmNI5p"6PۭӞ9~;McJ"34'.1zY3U܈OiQUնxFɸ!j*vL&5B kuEk <^V@9D@S_܀˖%]AcZӡљJ_+Pa* )ptmot>&YF#٬1ljVI*Y~Rv7$B N(s(Q(yP8Fk(Vn3%d~>B-ѷzc#ȎEjգ;$pGK(8x,au쇫m8 }0']{3ܞW]S69N;!.*)sOo8hM!{u4As;0׺DzշgiLjH|-U(0SD-;qh0tCuFCr>gZ̉cA&j ԡN}Tǝ{Yx/T'ExhR?6Y"̒Ӟ?9Cko]1#Fdߞ#1gxl+Tzh+@udJHGh$E-n_gs(}!t[UZ{ƾ퓾!{Dl⫰1 ?+/hIckYXWQ,,~+UTB6:BCaKmƄ:@̣RE >VZW.9;v T2ڜ*WWEquc'wDb.oF o&vB V^䫤ZW !r@|$!bvLkrSGH 0.?"/ќ pSy}7N.ĈF,*t:qdǧ7Bxe z@m= xavIFoyqO|>/+]W<]c{k; 0Zxr`Mdǎɸ!;Mҗ61OڝL1_x|@65UfpM{ԘXJx&ğlH^ 0ΏJݟEFh BT?5AݱN@cZ34]CGu2VT |$dBo]Ÿ%g?Ufxe.g -D퓓H^G8!Z3yeJ`\|wQy}X yOz#!BnBv&*z <,Oh/wz) n!'}m"o1a#'*Jxh$b6<;i4a.6a*m|yքI4(w .?:ck8Ds2T*ds"aw/q:J?)BIZe"/o((\EV5^t&rHP{_hCIՈXOM!{HGPNȄ6]E~BB9PhZ #Ӝ~֤Fdͧ>][PmEA"gOP9k*KW&piӷC߭ Rw{X9~#@9)] 0͉quDXTvKD\ZHY81Id~9q{5xl$0.R hGLII^FUcd0pp7AN AOe8=f^jZi#KLB'.7tNY!KD(6}V_ uQ|)W ??9 M^كW:2 ">2Rw6vGFjn'T5o߇,$a| /%yj|y7a$DiaG\䞂7ӥXUӧP5/XT^UnZ.?b{.*81ᯜ譎DqQޑ=?EJ/tOV9RWѓ(\%(#2T]p.BģΘ5Ε }P@hEaG?%^^#K|~9E//Խhd먄R<*J~5D0sb Õd4~R!K/.}8PIpDdU5]=(96K>t4\ڣ2>8Ȏ[qRbvT%('uϦ3^hg_D CQdr;,gt ;!,8z@k:LbΧ5nDBk]Dۗ9 A:K"TZdba ]uhU&Xt}@"ߞgm?tDŞr؟G.)wWƨNb58Fњڻ1n.ać(l ō:Z1- ?F#撼dT;%C~C)kQ+Ɠ,mBP 9ƔDlEF[bձ݂N}ԾNXsi%B-bg&%}Mo"3R`FVke >r(N`jtTV8UE&]{޹?*GR= :\S*Q z/N17߬dSc.!ғ-[ Z7@%6_t)P0i~,%HKoX@ DqwOk: k2(_U$AhhL F?Uݱ`{ aIo֩4FhLcIlEAi QigdQVO T^~@Pl3&+T?Uf*K ^ϑi˴zO{sOp瞠D(]@"N <6dAJncQ R&J4J2F=sY>S“ݺVq#r?ƤbTS cەOwRBcmv7$# e>59QqBtZx$uP<i}!ɮM\t sM|&EFH'ox<ޭ{1@Sg%&X]YG:qcTgD%]:["a76ϠX$+ H.b'ɛiyŔg|ZcϬ7$Um:tv;,Dƴ»+)R5j n3%Յ6dʶOJ/e6J_"8uDTY~#y|UBv5oɿYPݢQfkl> P :Q5 7X}LKS^8kf\_=+Bg0+w 2ɀn^@1é(8u7X 0l_~ƤBy9 `z(Z@;UѺgP%1}v;XYI vO?AC?NT(/k2C~$(]\SPLlVID3?zE"NEE?})__8I/'ްZG2Ygj=cΉްI?cĵRR}<n΢quܽcJ"wYnHνBr!o)|һ} ?0kK.d\?:vCacDlTApMkTzQH LL;5Twm"NRl~_쓎w/pEPщ.4y7 ɳPF7IcV .6fNN@eI(Y" Q?z@m"F+#2#e/<#]'ncU_-z/ʼnJ_=L%r9%nħan:ȪO$aǨ4uc:DxY&>ߧ]*gO)NeG̩w .ܠg /v SG8݋EA?#ۚP78D%;"N>莹:ir]͸D WXe {BTw] ZL}J{D#uҗhu 7b?1kϞ#x/E͈'+י.AJ%h++^: HDEзae%.lw2v'<]; Q&5Ar>ۦC; ckh[ݏ'LWmk@ R$i&4&uz&+bUU7ij|(# +%ʁ>,|6ߩ̘BhŽ> c߫F} K B֋S1ŸD|F鹸''<[>6Kx3%S*tN|#RȄnR='UsQ9i +#y׏_C e5D@Lhpϕ_|Zn \'/ Mu|a]vKNG!ZSQDA"P%OqeP>/&Pdz)U=&q&dtGl:P=ŬT>=FaOAFzH]į7>"ɮV'8u!8:4LmB ]lߺRX@(gF>^FP]颾wT=NnЊBPa E*OKT1ϐ\yzy.wg1; NA{2_~Ӝ4G !zy 5FΡgOJMQAua(ҤSt8LxR%mQ{Ohl.x|xJC:C[A~j|jŻIq07-\w=%:N{wh8MacKa—F hM+:&P%—'G0kxƱޮ"QܘP\BxئS Kt&͗KOI-j_H;Q}LZ6,<#-}2+Y2RڡWB^- hU ۗ-pu.kϛDV?ݢGjGܒ:+cw %L]=Q3*ћJ[:Ƈjy% .ƨVG h #C*.jOY1An^a$UڧJ4_(1G#e|rt: _ pR 6CkFm!uzq̿wu4>f܇р.P#4_$ MNtѥxfY6wu?0nXR T0c9".}IA=PdB?^B*r2+e(5 7RVZ5^5q>ݣcH>D &aG%uӏLLNx-꧋غDXnes1j̔E[ʇ֒%K_9Cn)0<0/zv I!=YEnX{sOȪϑEV1&%=Vej V <=@$,Gô#U?]"t&Jw!FUrC :͸i ?$bm@+ ٢l>&;ԤC~U֫IoMb=/Xk Q{&OTz6cckfk`E.Dڹ]J.Q̍[G5دJ:j >O0t_h)bK>ĩQ9"9QF!AMSHt?g^fNarMָp>~C]T.,%)=)ͽBt&N&@NJ >jO5d@.޽B8_M1BJR/Z#,̶ 'KB,\T}b Fc F+HH =YwbX99Q 33Q2kxжB"Ym к>ZE5I'v=vdO.ǧG?U}8V)Q$_" .ͧrpQT-sqԞ5"tϗ1$[`F?}zczٙ{vx )Q2%R$DZ-r$GJ)9%9Q\rDN\e$ZPE"  ^b黟~w@S5Uٞ>}[6vNez= 6鮊[zX)$ƼxS-*^$|,3EnIЂO-; 6E<Ǚ.G8c*>) n?/nx9zيO$9BӦw EoF?*V*:7i՘HpW l)1mUg$^'& Aju`ypp.MN,TӄE lx'c-hLM 3ȉgISD4WLv)́!!E"Jd3 Fd~8* NO 2)~N'U?`$6x~AI Na]^nHyL2#^Z%`ԝ]iћ{fK)Hk'2wP;=7]C/%>cEch&d㴟*+7 Z%R蜠7(?p>~N&WW&{b]:1aB{^7)3rG~'ptBMXh(y:O/gLؤ"N^Q1o ]ޤ9xh?}cJ5]fp!9F6O;:2Q)$T䘈!qwl\osg$&-̿HS ַ?!$ wCF”[ T=$0(kQ +oט(;ˢvUл2*r 1蝝&6g{ | Z怽 ,͈ y?1%@3h V.6( h*5s+ĺJj/`SSDE{Jd4QJx'xy?R~i"R !~5NG%Nz9EO_R9"V'䉷Xt:6w" ǮxZACPwƷ@rT";JS(8T 2c/N;L!wZHM'D:A3<=h?j\ Zg0a탳(r.K}}W.¸k+Yu<ڒY lK¨tL n#M~_fB'B%#ys'Br=6+<]F =}(?Wy, O^&1bv9o5*ԌkUY+ALeBzD~6 C_@S ƄZ+(nfLeTT5ZDv%yB}XV Z5[' .o#MT MWIfQ^yL[pPQxh[R>!S!ݳ3̿8O}9G6V7WE\ #m)2w"nw M`/S23du1C}?&[0bQq?{իBZHg؏ŴTgVE72 #2ϪX?[ <[P! /\ "v"-"(-"' B[ę .[|tm˄)}-0Z Mad/2%'Lgױwlx{N#PGw9%K)^B`ýO ~FA>u: >{, 苟DqT-"WMH4C`}BSFoAoBD^J Iy[wvrc9OmVk_%rȺaxzֻe^]Cu*8g#5AI]Wy(2|gL|eWƣj޹Qbd( n}|rQc0(Ky)҅"aG">9<ٹlY24/͎S|C# e״} ]H2)xz ĮU{#ԒU~ex7VD`h &W)pqԎ4''BJDFBw!!ڮl}" ?/#PBUcGcf3 gÍDo>(#UL5bgiρS'+Q;̹!/Fneijiclj )$$tg@=]OG~^N;stV^(] >#SM;L7b ed;ęc?93TP.^1~.!gtuE,P]1>d#3:Tr=V~T""%f># hO &*`O**;.36/4׬Zlts\g(K[45X]s7+ڌ\vM?.ֆ{Co1P1)Ps=пТ\VC7}y*0E}o:#’] C]rK`y9i&^b%C(<.Q|k[$j"6^!O7 &; rO!'?j.>9kC!HQSd$Ns'F1xRv9q`bҨK"#%<)tGf# am&r$k)3{  R{j=Rw'4'\̺j̠*b ]|غ=*a4#ڐOC5狘#0xRu< f_=}ނPfK=Pڔ}"#ܒ륾KN!GO=f"ϫ@-qaXMk7>exZ{=A|skSE|i*, B?m }{N7%~RX #~iڏHbFMXP/b e܂9r7hfμ_0h8ꃛ=%$3_}cYB*8V`b`T|GvUՄis,iѳH'%jdX"۶i3GpW,¬ŕi8R"D2fc:o/Oqt%N߳- (TkkhW7kȕ 7$:4A~ rbLXNM}Q>J]y ND)F_SD7$ )]?&IdQ}OT%\? [.&#cn$oxqZ)_ lwNw{A{>3vɮFd3ENBT#}sb{70{,RG J>57=) whg qՑǪ|Yb+0jh W)9$cM{WZdEn (|tgul8OH:f% НPEҍp)7qh?{n#;֕Hՠp/`“nw5 ϊJV,6DjHd$Q<{O$^7^h:jȠ82t/E9S&wl33tfBT q-.niXU$FxdCHRY x:ެϠ(g'Im9X?'%e_H踋|8AJǘД RGw=iD&ʺ1 4fw4G\{ m~l A:‰tύL fCx#ĺړ_?OĻ&x՟#oj}|$+ɔQ9Ox;"n}.ITc ,TCdfEf7~$ddI`#c3Jh'D1xd@&L|+7)Vh" $}_.1 2??FTBµ>eқx%b}['9 HB]*c1yxNtF@+k콧ԷB? dgLbMFu$R"$w#u|ȼ<_GOޒ{.;-:22K?«nޒO&u9VvH-AEgS5;%ߺ@cȁLI(!* Ʈdnۤk({p>XCGU~jkײ F$FOPBVh*L{UH|:W%?6MrBU|VԌɑ-n'c'lJ!W=J65l,H *KI{6d?v[*ϜGw҄'0ŃzcҀeqd~#]7υS Q#]ֱm24Q"s_F;ZZX#LL՘9:tɝQMw:d~DMkҪIg*7[h&G~W*3z_03s!dR#MZIeͶhƶ;WbGR(6<qj|| O)jeZT r6'6Y[euyof(QuDx,JgQ՘ivl.MO)D&yW.r~t"%wr+zz һp=ge'i$2H13>څ $eU ]iΪ\dEL|3DT@bdFQƙ*Dj|IQ2r9x^{vHOxv~*Y% >ql?=67xJ2>)N>L9u Ete(qGёtE ml@HηF;yګ)\fHYX`4d_~ o|!V**OBZe_T&Ogf![4/Y B؎'N3\72=j*Mj2T7 T/HD/90WZ:7Ӧ(j>FL3~8AoB~ g"=!{_?*SO4wPr>Q&Q/ B 3|*5yYb'WZ.s r8q[{E&d]G98K2?Y5nm=~M942=l'V6i%g"Ő]XPhZg'9so+;w)}ҙ1PH..c\^'Ī3ū~P^~(_.JdV/N8mS" X9D@W{2['ITWi-śQIzEc}I8'w5^?"@F-UGTA$m7n+B@kHcU#/-ڕ.$ V‡K&X2^5DS#\BzUbP Zn]LbhXZ?oCouhȣikd(Hp?԰Yxxvi&-&2mw(gT69PDJzn$8!.nS֘4[,{`G7]7fGX= z/i.ڦA[cX ostLjTMnt,ZY/\q?f{h%J8-u91N?}@}۳_vDX> `|/}"#age, 8~04KX=!A*H52=m}_X|qq]viKSlR q[C`1KJWRnpk]+'ld}+O/U%aPi6#sשbL7(k"]RWϡ%4"cՠpS"-P24T3bC&URu)f9UP͈،AIDUET eҫB#r6>1hqߺۘje߫8QFWE̼fz~p7TYDԘho,`(NB9'l+x@NwzV''~.&%wQzLv,a3!+cg.H`!*EN<89pCVa)\6!<F&xySflڭ *z,撗au7mMipEG7>UċTr[OF*!-#FwX=Ohl*.I5 Q5rcVk G)t *nY;%)QE+#wEBUh\ %mM+Cgɨshk7?2H*o#(u {T/V!2Vٜ S;29Gmoо60xږ6g21RF-F,AVL}qjuT x|gީqvW">"2U.`o'f%]2:J]%QoԨ=tw0rcd?wiE(ft'MfBy~|gG!!Q~ȘIGhZi5="ؾI0Sd3d?wi|Дh9B8{]d;MTog1d⟘D$:s&) , IDAT½Ň,Y̖gp kۘ߾ 3z(C~U"S*c܂\ FCTPL:y.!/!Q1Q<3E<~I@X#wIfe#EF9 K5 _Ai:d`*;> z/F~.]D#\#SM:l D{{Hr >@]#7&GQ;.$Vk]\GML $*}bT_yXi_BN01W1ICJvt9A J$2 8k f#03["K NQ~i_@|JX&ۣ#k2΄AMⴍқ(d(՘XI_ZAMPd蓯_UPf]V~$K׶{&:J0YxMހSx .alF蝄˂QBKK$vW{#eeD>f3=Dža9xgQLpFtm &~OH/ :XP*a3MqIzE{<$3:N${_fPQe!>DB9o{4'KqδI03 {E;e2 ]?:-he(qs j3g4PKވF,I8C2 jX"dLGw$= "2TX{nAAjjvfdjI,\@[KtJ ݢ}_}XŸMwjVdDS?#15 a\df@bY#a4d*j6c<e Q4?<ˌ`z啷PF/0yq&# ՃbEz'Tؤ_>1&yJF?,ub2}q 呣[ lVЄ%{CB~o*aUzYf8OcSHLz37e]8L $(QKq_8NZSLG$7cUf3Ha?٤ !'CL=$k3lRBKdexjr:*zWb*"+' F̶Y=qy4XzѾ[dPNQ%ufWJx*~!d&*җTYdW&L <@E%v?XIڵq6ݩD$V}N3~4aǀXƪA8833s;\2G/ClLf[,T%C^aY9: "ՠHDH&#HkOB']ȰQa')FHzʀHۤ$|G[ձev 4FSMp̺{:٥D }4#$Z!RWPH8# 7&p&Q`_k}w E49F/fr,݈h J*&5cANKіMm?)QAJ%!6X_2;%ԁ3:7l-X$yrZ&eF?د&~s/GM\8@Ac*dew,6?ltu zCn;0z@QBKZUQ{2s$.:tIx9UyjBLR$c|b'.K)ܒ"MugN1/b3 POxW H?٢K16hIΜQzD9r5ʒ4l@tIYY%XVx%Sՙx5vZn5B &>L-ԯ+!Ρ?ӛ)Ùg-Pl<4ֲF^V K}}RMҵdƾ'OQ Ojk;|TR1?R!{OOIH]=T ՚-59SXGsud FȬBײ +ZUBDjԮ {kvc l|n6#9OHX:INhmAݑX}W#EL#֦Dpnx*lݩP8Ȯ D쨔 z7&{MƎJwџ ~S[jo?bBg2&#KX7Af03B7Cg*mUHgU\R=aOCm)x9X`o<(T}o,Mz)m\l7rjwr:BGR?.z"DLlBWבCDq,6*1>FFл|->FGf-EݐDSѻ1+oQymIuskקrK0 #3^BfEƌHPdA42=/Q 'p&DJop+jL5CvQڔ=8ɞ7Ѧ-(.&cJl`rw=o Dii p?3pHAveԺJ*O-k3P=AإwJ6ҝ^\Qo=Hx~c_^t7#sC%sWEks T02z%CpS?1a[TЊ]-S#:/mH2%ݵnkCaw3`$OIՋ AZ$U,sL v{4k?5&ƌΡ |u86i=QOZm&^ },~^{n=j"o8s{ؚ`V|)DQx?\1s9{-W1~wqtP낙Lq(N,܃}wԺJ3M?2WK} rK!UNU#0vTW(q=\31k/-0]n6imfAis!R[%:w$^U1w[Cb{ Ny~ڷo^F$ZHZGYVlkLSQըNb83ɔ'dSGe{Yز$J6PIw9l68ߓ* UqY~hNCT IFy@HLX}yguB9dC2tNOx2E-i6#}%ץ;eɯ7Hޓ}[4==ܶҖG֒lHӯއbre=1k ٔLP8֗lǨH`/oW²T|}֍U-S qݩc{*ދRř6JڳՕ;b5FIZWY{B#}K#^b[*$w{,Ip6{ps:f˧#k%O "=GQ.M@&Z1R_9K)NDo7{r^M2oݓt:X\?ݴ~xf^. B bxd|0J ۛ.hPGjnQ_R*ޑj Q{|{þE!"Y Fϡ հW<[DӇ"81}(Wob"yC*젆 72p [ zR8a{U.+v%2[׏N2_q #| *cx # eoaQ%atMbODIQ"o.,f3xƩ NA'^@R*UwM+ sIU }怰=X#oh3GP^jDZ:{h>X&J:E{<^buP'Qwh Ԥno {~īP#{W-_9Wױ6]ޮ1ܱI|!ZDώSwgpդ~c{p J涏Ao.EgZaUq27Fۛ~ԊF o_?E_bm 6* ZB:')$`p?ibvBUSB,O>*[f ,ALj&?W%(ktD w4b*Lث'T%&~uIm's\UE"3$DAنQD {*j3 >1H⯟ c57iw`#є3cri{~w[YNpDgZC 쿾:bH0XDٯ9y k>Y{-UZ uukfJ]94fãq`xF|^ͤxaH2:8q=aA_%ޢww,6"[腘Vm do{}\_Yeqz, 5zG'Ή9ar&TI>(}vb[B-V)Ih[h$[a!c~"IhېIFGgX2X͈'AD: hu|ޡT$sAGsƣy8+4Ezǫvoҙa_G=ļb+HUqb )M6GF㎅OF(#AwDA8%~ HK{lLBDK:&pl<!z56~,IR53-=5dL@2o-@pP!hfOe~B`-܌pLe`6A zӍL}uG< iKof P2 t*4ܲ^ VbtCrB&~xB.1"x⑺d0DO|(У`P}]K~_s"ĿBu6NBoTH.tf(Rt+:! HRoM0vfĠduU@%=6 ZS ̎!l蟔J >!oWI<tO:KCZ [\H`8[q/I-ޘN%a_^`k?U%""Eg7B7ȵ>ͽ1e(P~sX\{l$l2?=Il+b<+òBDOgL$ȁ-nzsEÏ 1t܊OXu]h]ސ=p4ʑ{M'_Z%clUHT] yisDLC:2Px>Ѿ9Q{y c_ŏ VO!MF}NkNc@htg/Іpj>؆4 |rւOHf=16?-FzW0G 3^a5|Qw!ҝKXݓbTN J&:DA GF#t]!<܉4)$pzgϝ) (}+j&Vv 7YPCWؖ >" 8J2 4U_9Cagw i劌Z<{KD,ڥ8 e+;=>t_x35/΍ $vkN-:6Ơ5"E\& 7fKhJ^N0QN$4)$LVP݈pr*q% I[!($!JyD-3$VBg<Ǐ2i+$B,|[*$VB"C~_vi ,*~B#T=F{ΒS8cqkmDvu 2M>}e}, a$F>B$j..(8Jl?i% /$넳%_'Qz@EhW]1΍0.asB Ru>QR%2Ȣt?k`Vb0X4?8rdoIlS?j)^B޺CDZֆ=W432@{KkhgˌՈn)\2N0SsDB!V)[fSTMeח[:Uo /_g5HzT mUWa0fMOЛ}ϣ;e2,  >]l ^-".dz,1' 'B̺`Gm~5"Ji=f&B ?57L!8m ҷt,fS_'l@:OPGP`0*f6ޗFa-A+ߓc=BS_l:_!HRQSyxy,dnE@XсޤdJ IDAT:&c5tWEy"ӘC3v6MtaIGy "h1۠`Pk1C'sn0e30(FK$<$y~cE6Y21'jXО7(Y{R&L `DzS9zHu,ZHgF rD0ȃ>YeP07UK , {p08{]BOWY{>_0cbvH4aR8`Bwckې ͧFؐ5a3N*9]ĭji?8P<FYWfĘ3)\ 8m`+4>2 W05PZOox_WδJ .~Jq?)/;PUg2`DMV|U5 wƣ+g2kj ^N:Lðo(y%Lhd gWva{N)Q*`Z(ޕQ萸`ҞA>M^,i0 AdI7n}qFYyO6bNJ%"P>bΨҞ1oXu0,(YHưU&Ϗ Չ[* ٿpWWȞmݓŷ#2?#njf3hNA7P^6;ͰE*C{N(1{q|L¦Ih%((Hf .|8+OWp@A=̈02JD2B?mҭiIޗHWho~ yӓMΌيTwZHnZ0GL^wп{el:L>4 ԨOMП Rws2~OËIgudK"L2 lA~Y5"]0o5Pc%A5ǩ< gYzSDt6{e%9Jl<ڛ7韜|{k7'uCSIܨ47E)/KA*k q9^њW(\qI(JNk|k7puC|G#^8qVwC2 b uA0U&$Y;m'+QOLz=/-"]!pu4,h*'k ųhCY=VEoݒv\Ter шHWpAՒd+h4͕֒1ɩ>5D\1eCO^f81^!񛛄qiHkOeةTum h0+^C-K֏KC#y8ٛlka(@.=%UEm֬i &Km""]%*fj+^ˎdP !%[;7U=:Y!^WDR[=9`lkk++dέީk'޸5wC#Z^ѵ&ӯ#gT ;x}]V-{AYB#*RjiKVbB +7І!QRIuuU ́ҏ6M^x,TmWC<[/A7H>, BVtlRx0=#Pg G#̺sSd:T%тA5Di{}F R+%pAvr;3*$"2\4U+ GD_uP^c$eNQ:ۣ_0!>-yOHś)?AY~_We{cg|Iwg4uA⍇Rr7'1% v3 dy Y^SF7cMUR'ߔ #ϤCIlK0U_c v'<8֖\9y+}q}6z_'vF 5(k$H}GO.jئq~U)+[p6_QМXX"Nh[=Y!yg2#ќ j|-ϗYB+I. /\C~ 7*)4'Mu`ugcDDO^ٔdgSW-z㺼O6duf]GV$5cgԭF[f!mtE{Wv`k+oIIvR_9ZYwt#9XC˻),QɝwT&rA!ҵ߷UjcLW%f6#>۶v=317p>*~ާtޡtnR d8:-"Fw.VO%U"-BuK%ώRw Fhc-km]?@s`sǷ`틧H7MM"?ӎ J6TD ~\oi_1|*oCB|G?瓶2>'VJw3ryT=WVـo*󎼮}AGX#Gu~Z_}|Ka턅zisVt+|=rUYoܲO涏WPzSp+<!" ʂeM8w42^gVֱ<'Gr]6nےtoe`//Sڥhχdέa+; 7=W@U;la}M2,˵S G-FIuGY}!lT썀z4?ݝ1%-?/'q!kRh]JmbF[ fJ vtb[>^BGVY}N0+sx)z/Bد,`=Ċ'u9bz+lʍAg3q{vۑHՁt>l9U8h {].Tvag-hx%gbgtDZWq^J; RMiU1`߆o6D!rE۳ m>DO|E0#7 5U8;%]c6gGiv"R]+ח,u?@E-ۢD5oZȣF PVf!{ӉmULjV7n@$_f%qy(Ӣ4u`Np`"'s^ջpwi[ۣc]6.2Jo_{@.h`5ڳZ"F9G#D3UW̎tW7.\'x(?x Rjm=O&0>S<"Qn^'ր|ɨ@y$sϧ$=;%WTru 6ȬO͡""U!(Nڦ?x G[lFVf(h4"ti>7K*D* O8h:*>JL.ҧ}܌@:$ vv 2= L=kȅ۔FO@,9`"רtxSEKx!`*xP)xm6~$ a\]B΍wzw.nCtI0À0D,(ATJ(X&~!Atv\Dx>h4;{>NRzKt JXbQI.2Ke>Q Oۤ^Y$jB=SD*Vi?Q!`YR!"st6?9I=>7gJ*aM2* NQP|k@`άBT`r֘R1@Ul}gX=DK2F8S9Z*/;!X}Ff=Ol3R M'PTAdW7-<0zH@HwBEI;V4Qw)hCHpMD,Gv.#wT>.!G!'[:6ݛT%mhk:e]oϔ)x^բs0Gg.S ] )/B{*k|\XoiT^`= z]ҏlOOد_HzlQ4 '8~L;Rxۣq1,u> n-|~AY%go6[?"=9b1 A\rTD(פI,|S}#'T^]ȍ'CP?JlC ~u6>9CkAaYФT A0?AI:-d&x냐k0vȝ6OUf3(k4NDS.ЙQM,و P.D7 [@vaYh׈ibQJ%wx 3 _>R!R&, l>7ɇ{ Wh$ o+({ڠe5M=@SBz|Y#fs= D3a_ xlf/NsJ㰊 uj߂B;Yҙ'] s| qO 9p+͠RE$ #Yھ.6,CKc bvHܢ8WmX`Lu§oyslcuLH7"~/^ 'f$Irs%-89>8{iʫi R,Jd!+4&~#;#<>>+idG *gk8bQ1߽E+U>Y0tmZAmf(Ntf)&-fX]~ptb=dm y 럭b܃()YAg6FKgmKWa} QNj+d6['R!w[f/v0BOȼba"*.%{$ w6JELx=k S0Yjh$÷@+O6pCI)\P0=נGGkL~L-tbZf0ԈAN DL׸ِ4)##rT@P -'Y{:F滋}N1"wQ%4ǥ_ i<Kžuh?Q)Z_[?$0b*(I8D 7 M&fPR>14Td7:*c.S_iu2NLeޔq*+- 6U~g Z+>o}߀iR(Aէ#O ث8I`tzxB^n]Ybn?.~rΠ0g9Q/w"s5X׉6韚ET'Z۔(6=z[wvh`DP?E.HƋgIm/\l{_P޿O]B0*~lGάvd>:ʈ21AtDs/DIBIĉ;WXȠ&89͢Ջ6C< &}Ű,!&qyҶg brl,Ƀ5gڥ{ q1VP8Vď | la)6LbpCĥg$hIڥ;mw*g4O]ɨgTI:rL#EPH^hLP ĉtr~a"U %>s #Y {:GL-,9-wNHmyԤ=k%`㘺zin7#d=Ev9ΰl|ƃN)ދp{snRi#l];{q {g/Z .ݕ$zpd^';M7otؖ \$C4d"SfekGtdjRҩ=/n{ mB~EGD<g 늤) *GR)fkOJȣO, Q| ,BjCy~x.~&`X@AN&6 9(1(CwRG\!gQvڑ:ѯ(`$l,֓ ۫f0ZPo1JhVMI- J3ah3*d7@*6'Y(nnI>&[ƖI75q s} W(Z$O$G.i,H `jNu$"3ٖ;ȝt7tvWVц!}gxQhÂ`0!(PXkY]b~랉;I ]£TkbPny {ߠ:#I]\g훵2JKhb6C/GlEk"+ʎ_QT4JP6\ųx y ;Vj?'ժ"wd[A\[ 8yшNzrB*=@ևg!nޠWSHRz!![LJTW?{ %!ml`qH;6G'R֛ qeEcӺ8lP*u(A@~iE.?Pl;[Ehχ;Z4qMFT6]On){B߆'z$6 vg7f?T}ɇ"&R#,Cob|דt]LK̴C{FK[t] SI7 jp0cmp,Hqw!TL{Dg>`,%kc6{~w%tqָϏn ZXn_?_7YݷG iKe^~D7]N6YSfX~Z%S]PBʮ'*Y6oʑ5b*dWq Ԉb>qL2Zx clԕj蓽1ާ~$`HDqwTz 5h{)/vq0vtn%svn r,SޔTL4zײ,qQ㍇*7O`#,̺n;ʦ::ɹ{Iڻb8.ΤGjY>sd}Uey'BJ-:]־x Z! {3>Bn>`M: ?ɿܠx.|l S}:mH/`ף?7"آ7yD6ƣ +Y2x$uYRE#{Wzۀϖ)7@0n;*lriLٝݤsإG;r@so0PlQ:db_'ªvN9=b~I'a]g ]ٟ dͪq q7tG#m4I=twZGa4(\ 1urƿPkW:do5|/5%[yYڔ9U<}rNJf IDATwsݐEuD: Ci:OڣS_cl0H[l~|(n3J"L q{)2І![R7yJ 韚rT@["Zu~&Q`\]B,e0NJ'!A$-4PMR0_ƏKMQܵ{>tTo /s3S5b K0:X626k5{!3tBd&N9 bB _Gse])[ĢieV??GJiyr؍gdnG1ΜA`* 0B ?I]3ؕm5Dkr^p {f +#CeP6IgLjT~U6BQ鍫];>[DA@pr/zG`8>aJ7s$<$,r@ ՃxO!%b=ߑhF2`|_& $hH{Tqr:{S' 7^IW W!H]o"FK v&[G(#`tz@b9K?;tby|mY7̐y 4ba A: TZ߯)PF0 rڋ%ZBMmkX |_F FY]jo%7$h/o84ɔ ,#Iz%*A2A a0#s&IP,3*;i\GhS|acz„ez(SO涓'~7-0k4#Wxxmj@#zUCYq%!̘,>7ئ%FY [S}Gfj _|@;Yƚq%A+lБUʾ ޸=bEI/6)ZlQkEym9ޕ$R%گMЏ &rq fkbd /?Mjv%/f8,uˈrz%vO'zGoяIM{#'6ʿ33x } \qGck)N[+1B74J/~*I4֪t/bXJe0^_%V"k^@44dP{t j[&ZR4v0U;hn7&a1b昗okHl G/r{P4oymxNauZA!b;dϏ8\bE؞xa?>bXpza I2|qXKAH&+oV#IE0g.q_Jk7̧\9;6NnpSIb'}u ָhu0v2(J\jDMCI(t;Х' \Զ zwtrg}V5S01, gƩ{#Ӣoj}E-J0qǢ~*:ev a;XF"=~ eaFב%rmd$ *Uj)ʦV_Gbm*D2=2ً6=A^k锿5>a]Ďo?@B X["m$cF\WI1?BQ }^砫/tij!'|af+ҕp>DZDx]'%e1dU:NgJL zOML4tI_`|Zn*pBx5›>ma|*#@ݙmh ؓCq,Z<GJ%&' >J.pCsUr:8E(XY{4`LA Qmb?wHgu(x^ \#Ln-sD1toaڈJcޮR{2(zG9Cv7?mxD)#dQZc;03(3m DTlNZH X |d2WBſpoɿIYmO_Dey Cx40 koef'1>W0.ml_ =&ocǩ8)tq 5=/I+.㤄Quc\:f%@'Th=Coqn#%BuW1viy{_ O]bכLUT3 S-@Zfl;l$b`ב7;FF_-e#2lLoW0x!G2~6I{A3/O!<U,H~ lxHv'e$IC`,NPn>W/XhI1ZuZ)a@_I iGоsWc?QB }59^" H /3H1D O# .2"ma{/*$oY "r]t`BC2l'M*a'552OW0Bk~qh-PE"wiDԏ'H)G}>%\U&T?q" $(4"2Cdh]PO#+MITPSM2@( $}/RH3.jء(턁qwff솩=&~7GLMJdC Rבּ~'OtEbKx ݢϣS1 `"$]\WAx;Bb}A%ЭĈnzo MF1QJ+Z2/mz4vDaPȪDT'bdQKm6 !1%eᨀ)MF,T&N[2O&'iC #%^&qϢ=#ezr0+[cebݲLߜ M0HC7c ?m75[o*&H].:thi a+#.DwglFiQcȻteMNd^0v,\`!Rz@OSѧkȊUO`G'\QX5xHy$1Uꌁ}(Y0in$~|Mŋ G;(+c,'ٞԂU#ܻ+R%Op  #:Ìя lO70hL+ ePrBϴiC zؾ̠Hz9Ms|>˫yQI/3v9٤`v8mM1J`dEPy?IbGr#Ї<3m2NdE_(g4+1|:3#al֖Ȝ'+l?'z]řh$0${Z4]MN#̣03.褯x&6 #q܈O|M.f"4JB6*+h>K9"ߏ`G2:d*Zt*3Jix7󌏝q|tϖF p3}lY|9ڒ݇uA{JFkTd̈/\AV Ξ?XɆF4UOHsj1V4r * /Zj1}}-JefQ M1362V-DNM~ 3LgiJ3;D\(%M$w4fO8T^ȝ2JXylqg0O&FXy$_A|nwDNkSL~#&"?;`R:lϥH}k˄mzE%8% m2cܩ?=΋ތd-lES5C} i$H ~C*G24β 0tU$v`\#;PpҸ3|=,W3'G5#߻HTvj4L Y0fy5( V1`:JJQJճhq>y[`*UHn/7_Ff#jX{ tf4B_1 i#(u'8УG}8 [Diא B";-Xr#Y3 1e6~8C#E@+KXb4`lK )zOԍdք$[cH_R?fzz0i%/U< 2jW} -Nw&cY#E̗b\^YwL خ"_D-o]rԃr2ҥE L} ·,!Ԏw&z _/wh43i\]BCK[XvT TLn#峌΢fP3SH@?wPr2E5ֶU ܐqtF- *k }I:u9LezH o ޠ|~ Z迨o tZQzHMQ`S$vT`n M_az*þAOD0d:ڔQPlg4\:s WIƇ5y$3N Do.MDb!T!ڒ0nHYH,T :̨$SAcjJ0E` ǂ^אh_eԾ@`x*P?,2.C`.+7J0j0bZ6~L;YJz!C43k\)0'ͧ$ӟi>L L11Y'xa66 dO*t}75.iDjM:!gǤ}:q.MN̒ ;?BUbsQnG=˻y9u~o[\b41vڄy鯞eIBo$vUNGˌ>M>FI䘩XN7mhmdBvX?UtnF/Ő'}zB$HQUƊQSpt!! ǷylaQ~ɡ2gZ  WdƤ!LV/?432ʩ(G7"4o NÉN;k@e2H/6FǦZl%!}uGzM͞v:ߧTᄏoSm%dơ}k\}fis];b%͘LKZg&jrLbv{ 8Ah +J,L㭄$ÉhGav.Vd|~ŠO&,H-$.멜!17Q$FtU<|VmP!z}vM u]·e2:Yb."iK Vi20rUX7)#:a80v"xXBvƱMAghP?L~ktZM2R-0Vq *h+:jlQF*~JldQ%nGM߾1.L>񘄐@(>! e<$:ƶ4ݴ 4*?c.2R_a<`P(}ۥvLΗȓt(}3kXx+*9M^Y Z}yfw2??`0rW$nv ]ۤD6P#;>Jtm]㄂_HD]"[bt+mu9z*Rq| YG] 46DN N %:6uhn]r(=;(`pB!%]ş)ԺrU:x E"v5踘!N8!skjD}"m;a)iJ=ruή&h~& =,4E"C[,ѵ1F8Cp_d?~%0$3 R  R %V|~fBАp5dB5QV`V\$^ayb/Ϟt=q\F 3[ ww,F)<V\e(K38skM*;kkh]AC 5Op hnWp)&,Tɘ NW/h!<`'.%_ӡj|ԛ7h/?猪8Qi ,Y )'C -?#Gb8z`eb K2g4ͥ-GfH,tWңhZ+}+ zV_'cCqtTIܹ?>>" q"6ѥvV&Ddmd{?}X )]7_ĨI9269Om#Ƅ3ܟG4`#&_1-jOefSG L#1+y@¨<BkKϞ_Pc6jS&}ݦഹ_ \ [Z*d B Se,8d0N(S=w4V47 Df˕q/&Ⱦ"|`};8+n42jD#Izz#h9Jc\^8i5It/ض"<3YOpV"!L[C[ܽUdU0"o1k?Ax!f23?Au\{7K[\rڷ 6$~Y:]:(!o0"<̑ .+ a%=K"C;Ȓ|3d!ĨGS,0;&c6?]fOTuce ܬBl b(wB Gl,~,h F1xtCHزB3h]h}<{FW3lYQ%/:rb7l$̸"qEs<Ztue4Di!BU Ⴗ0E+MerOƨ!̯B9G)ܐk$n K4 J 3# gkpo+N+ғHyeg7 s*vIj02eFM]a@9KU) v,rÜWQ*N 0Hޱp (f~*?%TL D!G1kO.G(s3x8Րoc+7Ѻ6%ly %xhȯ^b쁀KT̗2"cȩ$rAVj 'ntlqMTdRM%HqW~Ĥ]% *jZVZp"u薔 S#G"V-RW:9A׀Ȇ6I nTcPJE:߾pě / oH71?'+W{#(" <(KgUD($^707d3Wוq"&Rou٠UXK 1W7L\.ܣb0p;Ϥ $'agډFHuȽ@ipBҮbbϧ263 ]@]-K2{O!5hw Ewl`nPN;^лܷ}S4<6 l`4ʯkTPܣ֮JmbV|옊֖HrQF!?5 y4myp6D}xsA=vpGv=3W~`˝*u2oX ɠ8쮯~U0+HڻI;<ڻʁLe&FŊ{ ' }$f&yTc ''Tvpœl-1̯@(Jkm*OHaf՟G]66N 4T >h(챊( D#&vvڱ8J_BIߋ{- ~"P GFfWJnpt$X۠s:0kr%uE&gu .;8؎yɁz˧qY0EDӸD%q+&d/ɍ> ,j_>CZq2L J꺏x(} %ecj U 䡵@.z]F;=EE͸q{:l7D[1 ʾ OD;g.#}@kĹm"CgJ|$z] T!}g(}/ o;O`7i׀=ZHh3w7J8=rekB(wEhH߻@dc']Cwf0gWd3FCСGteps_"}F!z'h[Q їQ*Ɋ-e䓼!oqC U_=׃;.\V17}Y#`Hݰ]oxGQ:>RKg w![.rXsw6Nw!Gĥ[thEe˝x%q0_KldJ《 R<'Q}#W#.3:RbH :-+_<{^"# 927:`v!ex^޶I|.n>=X,ÙD,>7bS>Bc? i@D]q F8< T=L(Dip =B~ɧd ?Xf FY+̱Lr/n2(脪F7 }p8BP$'E5dTn_=T(xeq8bh_?(8irybu__@zo×19|:R>fA)Lx}"G",^9??*k-+Q09`YoM4(*R$p~w[h&pzm{3| A\_v9߮"-oLsbhr(=!8sXq؎GAe]!,D R&@`&zgI婠8+5n/tLqr?qq/ DBt[ tcb~'SvGc%J |ˢSOa|,%\C1e Иq }@?הR ]17Kߢ2s|?/Hr 92fC"Ԟ/D <~|HoT)Ur&p@Ttܥ0 To z.ay41u}B5c Byxr0-^\1;>G]&p4bjaZA $;xɋumڑH]si-j5dG 5AgNCKMv!F!L~1NxO>XFt g 4ZSWu|%lDՈ?h 0DmǢK8\x؈n3Wb-Sbaޠ/ &+lH`5<- Ee '$Ȟi2Ni0<LhUμȈQ{R-r*8da7?Imwqԃm_ 3:5#Fy}TXWI^iM ,ܬE_:{_Y'&'ges-Ǡ7%0P5| bk&>((=M%vQ*T>k^H݀8?=[]Kk}7o.ҟvjLL/(\|QwA@e{ cgAKR"}va/`Dl='t~A&ԣ{4lB`^n!Nءg,j.|i|/$US{oT1= ћ wUF"J ҟ '@ChK#c/! cV uf ml*O+G4v>\Ǝq3>Ci81sh?"Tt2 __`㟔hsXBLFHڄpoQ&8ɋUzSaDg.%9IVt4#{OoDRH~AGfVO& چ u /R{"&gU( 2Gx]b7N+F{ 9t?O=s@<%HKL[:#g.:[W[JUqśUڬ(vId6eSYI  03gAS775F<36|7$*u^V3+ ǿ I2Xt9nބB枇S҄YQNHoQf &|)y^=c \~0UH4't{TT>/ {#3d7!V!d`@uqmP`__(RNG%#$;=;?/}ho^J60}DSPH| Wl}tz~ ՕT{"G!T%:NQ)BCFЛ1)9`_]@_r 16"O@~ZHp6e(ph~bA4;EYbzx~~E'=o #0$7HX%fp{$#lh.v f#E1Ѫ`iޘJoBhƤZ3S#trJy`OL0ΜFb7:cp*rw9~|6-u"GHm ACᆋb{DZUt5TbIh wN7үb7T} wwb4e z#GQ{h',>HQLGTo5[G9.$X<,ȲJr2Q0XxHRrku{ýH)H," e *:)[~Hg^)'P0ӟI^FAEh Oʻt]F%UPG8Jiqo.7'*4(/ DZr ʕZ@Qf̴C}u.=Vf0j z.б #S_H!V?H.2?w%z=^\ұ4(&^9TRBuA^@)4w &RQ@ Zwp/+cmE40vI1aNI_FN}EN@혁xc!kP_yӨ.\j*$InHp / Bw=SM+&\Cg{t!c>A1@n+0w`$@*n[UsĠ?!L@s0(bJ՟ NkvU1Lw.3 x>ޒIDf>?cnB1ME8i %Pbŗp&s]5وp~^V2iK>0!xk3^ H_UIC`禰VpsC~NŗHVA :*Ng>tA„FQh}% ̓ DLHFyAWij 󏅫s>r`L4Aol=@J'rEh.%sάo* %R:4 &`(aR*;PPl?5Fo ¹)b*Ir:ɴ%d/VKE›Q&:]'WҸ#Lf5~-$o]ɡoEOoz["̙̭HL 'Ǔdޭ]0T${"y@mIF_Pg0*c?AOEܲk2&t'5'Л!q**'Q<0Dž\*:Q2Ei>%1ʑ<*^| OP .8<7Nu Lд9b5 ,Ꮃw IDATVU„gɂ*!0bMّq2P>lZb 4GWuA`U#LbY$G1\T;Yo&QGXoc!}A}3JO&xNқPI4e]_h,w8<3L0€٤Cv̭PP{~|RT"vtj@,S:Lr{n@dt*Gh-h 5ބbZkaB"U΂=;N"IT'¨dަ~zn%1  TJvEUIu݈DG *Q(cV Ht$p|Jh  7:L7ePZ}5TH c!Z nhGݣu8{ /ZT H& q䶄e ,IJ}tw$d_*#^2Cn2۰s"%p>r LjXDX6ΘGF2^VP1?n8jCE_?, k!&PKzG4|e_J ^VBa/ N08>-XD>R(#|ce)$$sChp8ꝙG-F6*" Z; 2ūR1Og^%(cIZ dOƐ,. ܜ.\UGlŨ'DcLd_"C} v~|.D7v&G+~77#y2`֎x{FB[)TG0"]y&'Q#Y0^_;4)$XIfw=qJ($Pmy=Hkb]j)wъeP?Oj7e +oX.bgp 掄DY #+*xbu1[ flX ֓<cO+(hqiN{ZxDD|ޥxAp6wtEk(tR^F̸/]$l4i3DZOX^ } Ⱦr_ 4[Wo63[(r:: ?41`8O/ÔJ ǧE{wCvSҹU3GTԎY89"MFSeB[_u܇pujK2U͆/;#ZE %˦M6@} g(~^Z?* )ZPH"c4ujGtjGt|ꈠfyYHv 1nNgGT|;M;U9:fugDr5DA_kO03/ޮشzeګ25POߥHл)~- Hs`&@wCF HuZ#Z";80C Z}h-cx )ӝRvsLeF`k>pKbO[l?ZfYdAN2+.ʡ(y@qXZ@"%ּAnH`Un_$RAbxfv0= ?Or'$,Q=-S;.8a(P=-s1 aEo?2jjL}GDϣ[?GFňΧҝ*ͥEՖ_yάB{13hu_@̟lx|k'sVtߜF83! 3/'EP;3OG X Jvo5EQ/eo1Cϝg_@4#2^1 doIT?P|סw!Ր'(\krXz*)D SqQcOǴbD-^|*MԜKgv6 zލ?e+dU~)`O4κ$0ZqߟAoí$p+tJf!EO,rCRUqoԞH]ݠT^&cbSԃ{2Bo.C[ A&Yu/0[牳iV{HߎUU $ZMbMyg}ʨ,r8oT.zepeZ9xa Y#j]%5RK՞LwRT"Ě!%1829q(\@t“ԏdc'!VcӘ"C'!u+A>JCOu$'03`+ NfB(j4 ߥqgm&N[tPI{Nmb,'(]RH&/u+ܖU0!y12g3rfXuecs-uՈއDO(d=3eLNlq 05VՈDf7s6_{ćL*PM0WgoQwr1;6p]k IVqHHU:?ӥUM"oD[txOZ"1=dEl!ۂk%rHDL|e/$2ڏQ ɪDs#2RAN"GEݐ )ܢf^ ok2r /cO$ h-]Viap3PS_T9ICqM'MTg籀T0z/Y!3_>jX6mcfy4;]GۄFL 89+XM`\^#0d1Tsw{ְd}JgL ُ)#$=aOX>mLyH=ϋl\zx ,D(\DrdxGdqJlIcUÝv Dc1Rȝgts3Ό[٭RȬ/:QDQ74JLg^BjL- 7/ hL~ۃaH[܉p YYbMA*ȼ['}oȾK+LDOgƛE<+owC3C0H>vs5/QGHokL{)PzOH&q61W\J{ zzk- [(jw9Vh `XWˡ[@i: DEx-iPA6th[=ZRN^i=H(鵐X̋C|k(^^&}Ң7&vv[jmOh.6k.nnLs~0'ʚ?rR6k8 ? ۏ {\hi b 鍩1CoAxL#jk8K~H`F=sEA $R+P |AH!ʰ5lSk,i?:DmM 1Z A[G"#vT&Lix٘g۠t|r_'R.Jd}$GFm)sd+s an z G- ss*a&ecN8=7a,2 !HVe~`K_m6W6|e`~ 3#X>g3%ZE~-iG!h)+/ڄD) -/ gATBӧ Y}|%YF *gC~F?n  ߒsfY A hu0:qqɶ>FVz*;1u! MAQ먃XR4Ul~7nm3X{Zˁ RqH$|% 0AJ?}'u}P=yr#UM܏!0;Q`nҁAlDgXNTKw EGdZK!*H)45wE Q_S(1r]PP3e|K|lŲܮ4ԗ:ja}W\c~`I /PQPxC*]}B#Ƽqpq$dfN* z Pe$G&,ɝ҂9#2}0.da/`A^Hm{meQUޒ)\z pw-3. g"ՑT(VeR]v^p RAImDOo%"*ӯH yHZFH'g爲6+4NA(Px7&Yi0(~< }b EA40>'R_8MJk1V=_i*߂-C]-DwO P{_$^V0o#U"dnV{Dݣ?%b _g-<&ٳQ)GyAL8Kw"!1x9(5Toyi7oc1_2Q;r2ֳ*ea! $ʮW8@NHJ d=Ar&cxDXk.Z/DNlC%!bߥDpήQpJ:f֛.݇H^d9nL^zG())MԵ:먕 a{lQ cmu䶍wz&Glio*g%ɪ%< hJH,"6mҙW(]=d w*'#7x&a7Hi N.N݊h-H F ?XÙb4~)3VE.&c%B]B~VDX n1fw>'I NoS D.ԅfHj Ѷ47{7<>Eg!&+zZ#CR:%BwI\M`4Ck)ItX^7 =?[2D<T$`1$^NNQS߿M=7cup"]to'LG>A }So8#1S]| ?u; CA4'mwҤ~G(}u[,"PY.n?Wƫ%Vl۸pJ2$>VޤLĖFĂh d|iH1!)2{`R*ޡ):G] Ao^TH/3S zS!͍XaڠzR}c{~~Ef&qRrS)|5j/,Q~fGvYtn@ꫯS>cM-HSDA͠u-JtuzS: k'`mOcI TbE +QKHmHh" b+ eswZ%ZCǨ}1Lp?%AjۧyP%,QQ-󄁚#oI(4U1J^uNthE2pF$D5FocAHu ͐XB"5;ᎇ]fɝءHDj=Y#PA[N0rV?d'Hkֺ(Zr=ǷH=z#S5O˸Yq_o\grqVҥzbLv@BoYorZ_taO}5. :oxvרҬ& %T`}:aJ W0hr{ys'!q`zfmtk[_ۃqʩX+i!dVB)ܭG_5pA]1'&HmԞS_^aSIƾϒ<]Fr ֆ;!C[hI RHI%zc a*( m*6SۂЯHe6xŘwUz_hGeFSR-|Wúh0^gN0?Ii.^5{RI`zOFoJ^vxY +wC@$DD|. 4`!d 2X% ~r?F<1_ap| kM1gT d*6{~BFsA'82 ' (#UrʪF^|oxH~d P ]}}Eұ6!s/$Vdz2y8PW6jT jgCVJo@镀!aڸS17$6ҨK s5_&}O(K~./B"p/#֨Ρ`+DD"y{(?| g*zsimK5m"ϠֺD#9N*h#uW6}hD`i(7JeP} giRH11cAl=)?~ &۟^C39gK~Dh"iPhm˸9 ,tʡHbY>@L(N|}> x}5侇÷"} ?|2(> :fPoˆ%hg2>(:y9/ ։Q:''1nl9{@CK_8[EQRoudHS~EuSbr7@^~`&ق81pBe:@vvBݍ{x4*6_ڨ IDATtxϞ|A-]&={ ӛ iH[#T!HrK0&;K d#.~:eGɫ)cŚ$p "nHĚJ(qZ% D(h/Hl4~6m?b*i d'VcRUƪbM̀D֡?T<~ϔqIK1Ief.$1jO™T nPK$ZB^.$!2_>GY!z7$RS=p!'fs!*Q?"PbEކy ,#1qnR<4N.gCV~,P?3F9&Sp@e|4AQBA"= 3ᑜ됬$ 6-͐r3DpuAM5]継@cߒHdZW{B0ƲiᒃYΰF]\ՉPV jGS'bTO *p_L+E;0&0!(R a{yTsɵ.%D(qS*%7Sfǻ I܅5gP\AC ‰t#~({"=L=y\yAv`[Ņ֧hX_z5Ȯk􈐑B/*k-ZH I~Y7u=~@flV5n17 %R!D-D l2p;^{>&t /Tv_I7I^>2&xhrBA~{l3bS= ] p{"xm̦]5o M_PI;A1-0}u0b SLI٨=)F\|Ω=3]dGNKh b5wAXsgK!s=q<`u8=)PElEktL:gQ Sm`p(r[yo*t)]ט,ԟs%>@5V'CXOlFHkEMt6z[BugUJԤ~H?r жz*kyZĠF!̘VHIevNEtr7c^2d6]u"DV#̬C%eӯY`j&#7B# ʱ6JHEe^?Y qtUCi0Îw&UPbH0*A 3( 7gQț}U(m"jU'uGQQĀ~\7o%EePN!g}"i(jv笨;\C7ElZtB8, VLf@Py=D9KU* $(@2g阠^,0m_h A_4Z2v`CD3FjDdspwuQq 1۟>Zi3_&\֞+0 Bƶ{6L&Sf {sܦ\0[2$Z1C2qk^@QB683B D#B""%{鲐9{L %Ps3HI!Rf(5yAyW y!lWyū}J5M^YNL.ybŗ( J'iPɽdrO!sSYʱ 0 *zdO& cu']C.+Ԛ1$,MoxDwM*FI6d&an{ NԑU Z y\ԅ WbrUjX);1q=Y!~5KDbȈ1WF*Ȟшԣ?c|t$HBThUK4K!y8ى;} ?cY.wʌ&%VnPoFL~7dyƠ$ӖuW-F?XWu2{EQ~G[{ȧXm~l]nvʼrgxX˛Dn\L-$ܥ נ×1kۋ2I3{treGaNk(Y=B+6ٓk0w>CkH2t$Bjd%YnQD  э+FA'!;2| % ^zn 45/)ے÷ޏ)mHMo$Ѩ2Qϋ=j 不7A=wI!RM+5ҧ.yjX- wRG !w=M) R]-]QN^x}ol@8qOePΜE ϿIs7C:lHk( rȺICpLgF>s ,Sj_h&MGܓVz=RGL s]su0{dZ'6X(d~|{\ `ҧqoN v ûIڪ \r-6ݣ.`A?e;ff$ Iu?0ص@靜%((m:)kEܓ5/dC&2ZO=+1o18TKJbH0͐DC m(Q=ǝGmhF7E牊OR$0*8#]9P"Tw-ۖM {:r1IH83 |C!2#QxCBֻ 'Z2-5EnĪK@޼O$[+>N8THHtBڃ@Hݑ|b5c$l`UaAڗ~\qXF탗ݏI^0UdΦpN@™" HWQ|K~讂h"z/}K(S"`HcxIe( lF뷑VpO8#49ѓ6"$-DjH!X N`_R&%+#bCD#[T̋j:jLo\X&Fҙ߼L]9)ت#;̃;;^Ro!][[Š6MFq%BI܊)! )ћVкk=GohRlG@:|peL ˃Q*V $ {?:Y"L}i]3ʾRy~{+H}aZ*ia^-;kO~ gT(.XZ^WdnH#q>0@w}w>;.EcT:oeേD#v-p&!1gꏠpNFLUWϤFzJ¨ coVlaL Q\aҺOݑVjam(D w>!5 p'ɏЛwr:LE#j<%a>zN'|$ogHۢ&=B[6U;dC:ݩ}k~IüS99?"q|b\Vch$"`4U|!OQq32ߍr>k ڦA, 'dqo"7U|.,svNd5D>VUE`pVXD-V9lclYRk N(4 {,9T)ƒmlc YX"DޠSQXMDr)Xڞ?Ig_"iG{VaQchJDr_3[jWX˓rWvXlcH,{A⎊a /]ċCY;/Ah$̺ VO.K8)"t**z'$vP WHKoZ3FUߎ1zPѿz}xT+ej4M2BO43Z z'GC)gW5"'I.<{CkSڕiLjM Ta3WuvYf~r'DɛpE{̹4z֦} 6צ^OltRl҄vH h[gLҸZ$s2DodW3 z*iajQDCk Qa[q1Mm6l]" 91Ø! IDAT$oZ% A2WadXz4MQڸZĮܫIR@dg\Lf(ث r(ԾJاtccSl|YPث'_c>/tI:s!&!Ԛt_?N`DmLjoD|1ѬlDXў2Rayw)XS%oK4󳢪(}Eq8dC{Swd}<_ASG0!&-b??&AzmmǓWn +' ,aBaa$Z!JaE(D{N Z=D~IΣ~DXE$)uG"{MibB7k=per7M lwX1PFU?Bqзڂas8t!GpҸ9C&Ƨϯ=~4_h8B rvXߟ߂w}u"{!2lrV}ؕ fRHcuRFˏB0).IXQ@;NX6I7D831WC*+\#w(Sp:ʽM1T_E_^ /_bg?S!sF_6ݳSFjuQ4H7=+7vmlׯf(]9]G@QQ8oRWvՉ]ڠXOsבELAdoX[r( E.DGFAGg!^m➚%E>dS?cK 'w 0|$;O^ib?=?{t. ukjf笂oIjy WO*,FR?b{2A榋UӘU u{'ɘw:}HQ%CZ"fdE wSId\3eMo ouD{hV|0,Fu͕wNRIOPg0gmb[=_Q T?:Iq`Bj9@W4[FuBdO^Q(k2 1aZܸ`L2w<.LdDZA,B$ BúWX[8'}v' j]J&MoFNn$њm)l NAwG5TW"l[{\ڍ[& McoAvD{NhH(uU$ҷ#+wN_Y"~:yPC_uG5W$yO&С_I(Le/Y* *Sd?}_NpftHm:g qHHEDuu*2/VQ1)z@{Ns @+tdb5&dQ7"$ƿS'+()DP01!-#:%za6&6!tlp7|)"V ˦_DgeI{qu*4ʟd EbH/ n9f8N#Q1 2Dd]2^p@%S!F٩YV:NG$'!#.f }Jn+iLN(H!hwcEq@è c tPBɻt&=4逰j0?^aaUCU{f鿑HߐաݱP4ŒG$I QJЍ?դ9r:N5IHF_G矜@K瑖v?4_Q ^* }[q{2+ؗcc/l¾뢪!4$7=RҮ!l^ yg 6{L,utL62ؘ7Tr>Î@Ta"`[ |hLDw.Կ="tN%Bˀk]ܬJ vЌ0v52\I.қ]`?m+(oG-"oЌ%P+h~a+1oQ ֶDUQ?LyH- NԈKy"Zrɫ]L)ho) ƈ~\?.S FdG?T0FKijW{*)su2DWp;3H~2=9PݯدuHSof&.ݣEBUt&>/YLљћXm0oo&.U)Dyk~Q%B&ghzBtڃH ]ߵtwU7^Jb#:Xo< xmKVwO͓Zޡv?B=-~_kC_])XfMwdU%S 4 :A%zۧ3-k#`T%05M2o6c2}8PONl\_=Wv&d,T'B-h>c-7K_(j=kk /pK;#|syC{<GrN'|o }Wh#E\jႰO!vI-E ׾>0}pĚOϠDѺ peE /U"uo0W;[!W/a`Aq"FRW^b_ v}SY2wt?4THI <֍DQ ׆M(5їF8љ5&_coDKX$/ďɄfxX;B=#Hֆ":7%]3>yNt4C H[nn ۓI Ѻ"$'V_zC$  ~ZDu# 8Yֱv7ꛞ67쭀Z8r%5//]7%$R?]|MYTe, y#FԈ̝!FDcQÇGDby'@jO(3읰{v8ϞA^Z*ێ`^?'ԚJF^*/JqMի]utBG.Uy/8aK#^=AhȘ*~Wcw3Me2ԟqZ Ye CK⒀KB Fq!Ȅ-M(OwX_^#V (VHtuIЕvˢ~G)LgQԺ=sGA\qc-gQf2._0 ًh,A{j}z LӢ*l=JA` XF'%?Vۑ6 5Q-ZY ,D֕_8~R>;׷+-[$VaՀ[qQߵ}zݳ7U~6I( bdGb?O@1|HvIqmf@j)Bq[&*) ^5ЗI/9;)6dcQ;7T;~@ (w,kSڐ6D`f$gO`}~j^8r*f@bU8'!s+ZP߼GJx7A""4E]UB6I]{?c#4m$"$_kndI1q-~kv_=(4k6W=.NN)퍈B_buY ! B~9?;Z*aԄ:+dڐiOdI+~{CTx^t8ԉR hّ+$<ת5xƦ!;I6?q/cmG4 ȪS\p'S}Bc8%\ #*cCZs9L}cO߾7Z'_}J{zQoQfM".ea{L#~l"wc#^RBfsÌ(.}ΘE(5 4>h?`>߮]HWo 7:뷄usUIp%;-`!&Il$oH^!x0b X rf|kѬ$~g&о~[&3HD(4 Vum L {+ _ỉ-CUGwBl؞D$IxGD  7/ꀰdpB|dodx "`|@i/بBwx Ε]u|^)C #Rowmv;"5z!vۻt;&7<  ީ O]YukTT/בE/] Q2i7%H}ghf(^Q{goQ u ߖPԡvp >9w$l'#X0k;HݓPd?\7P26N/n7)|y|䲌2 2v}8Fkqh> rU[I}wd/i`H4x$jowpwҙ}"v"F3()X_I|mlTsbS9+a ZPǾcg.%`H.)A{Fu"Cb) qm% U3Kp#26@Ƌ igS38eTd<Zl=1B-yf@sRBzMضugS2ǟNDX X%+6m/:e1')!ňӚ FCl@Nw> :}`JssrGږf"򐩿iL)k2!Ivz@ӈ)+sG[υd4:zG蜬Dr%dΔAhFp>} ڧJ~O| 3L*=@}h?v2GX_<:xt)4Tu "@2$Cv?bC$"%IgHlBEbPUBOhHCߒ >+[r!K8T,(l̚JpL2`Ʀ"Ix#Vdd^Y0DD^"|$D+$6}f@g֤>) "[*7jKe8#1PUe Y!08&eRz p<@Bl/Vi<ƬB A1)8Q?ʊINh.2#9h4Y*äJtݲ 2_nZ3#P{䳗ugH43yՁԲUU Lb7C IDATB"b;B)>nB5M 7g}~N|Ce J/h]H^!T%#=EDd\kJЕ(}  ne:Oi; 1BOJ+4O.=ZD~ ujWF<:7z啑bJBic(}ԓs3+!nN w<7U9&S&?߸+P=.-I1fпzI붺$_]K$qw% TK4u%*A vO+#7ʱoc}(3+ܔEĬX\ -q@HAl~,S_\u.^C_QZk^b  ϟ$0^xP],)~9@oCE=Zro(#%MoɢLzQU*!tWԷn^ h.(ͅLY,!!NG!{Yon2vs{M.Z2gOP=%%NNaJdOe|pw\tj݈7uUEϞ@*abl=1ӣ>zGHߎ,_[f:)ŬAsQ`+0 `P k<`YޢNE}BREE`J~Dp Yd&ԲG<#|/bPF#NU.^ޢ?6r:7O%Y·Э "3\qgobMgWG5+[);7R#MuV}ܔ2L a>[E8ܒOE*j^b֤pNg[~-P jOBHoE<Ps5~k <%Gw?.8~i3? !p3 U0myC8<_AU?L"?X ?duvqs_2vDKS J.3::ʼn&PotExOP{7 ,3߼7D"$2P(ըzgeSrPGyFr'd+-1 IcLj(%"dsgWWUwR{kEaD"̻y8(4{wσ Qr=ijut5IT5bX.cM#iT %\ Y}[~D{DL c/lc;/OJHsIJ45q}5bP=j_hbHZџ1Z@&" Q)9!*j b8G05tK4Ƨn%qbTH_o]FGf'0f}PgK5֞Mݟ\lI4NeCBSfΐڊߔLSԄ$RiggV!/K$g<@ҷR&j2EFˎXL:1c:*~Zh$GU$ޡ ϼMM075z{lWmaM4BǰHo?2݃\'qc.VDV (3ȥQ"6^8 QK%%$PB:·AR$w9iJThj'g1%d;-Xԃ}eeƊĵ-0;TADXy[ gq<#tK5gOک^9."2dѻ` @~,$#4&Q22f#}#EtJ)"Imep/+amqN2݈ʉ9ԏ*O GtzUUb,+ mӯ&;T悂[\3!N I uA/=+|- H6:Z§%حԞӚi1t>W {(dhS:S6}B$K- u$QĤ} EL@KľLfI_G us1Bqc2q(<4l?O5 Q2ey 4e;.z j* >hH(X*ַ.`BhAZ?QCtD㈁YWnR$6eF@a 1-s6ZOf0\pJJ%q`l=e` ߭e3@h1\!⛝-*JHϣDW$bczUeDo!KLz#ˣ߭I%Ʊ &)#U/ّiktbC&Rwhk ViSVhrt 2߿xԡD.):&!y?&y_Tu=LqQ<]T~X'rI4xBL;Px3bXiEK@,XP)?!!2Fbi\aЂnZe?9i'q2>\f@R!qc*Ɵخh-P1^`[M@* S}tͭ,萰}*}( J?}ҟ鏀Mb][> r@2euo4ѽwpk L oDCLCF*3=F Ϭd*I]0b1VZkujH=%*ҭZc5#|OlPzFݳjh]u ݰi틘|ta`lm?ʸAj}ؗt6l>wk7d&4N(YY=n}g6݌B(=ii9A=lRW"{cOHVɽh*zWBo[jFxih2lp)e)P,:xI*'.Ŭ'EQϰ8#@&}{#~>2?߲/^&+H]="\'ԟNcO$WDUq?!zBsK;jiδ4cuq%'-Z 22C.N9d{2ƶBry@ TG`E9F^MX!#kydDm22n1b0&ӫ8ňı&, SJ4jc-{ZQEqdȎ70iϧ:*;+273k/ss{x8 K[|#O) P%,OzIڀC"r>\Go4ht E!yeX ҝP$g^SFUMA9aRϖ쏉C!IM0^2*BwJe8X+2#>ֆN\ ,An.3uUX;v7>)Զ?4+֭H2ֶ0.`rŁQi%mOpbR,at"uA+[m•5Bo_D-uK N|edI2X&y9n9}eB.d+kԼY2G?2ReHQg"V$H"&-ZHE-b}؄\[qk=0 ੎VijHwEӅ6w'*m1شeϜ¸"^ a:-(#*SyܢM`i9BK3k2zc{uP 8.r.KZsك=aD玣5b]EHW1d2:t){(j($#mr_hJddF_oƨ?KYte}]B+&UBKD@,Xqs0P1 Loւ쿿O%EfooHbzy{w'UbEh9q3 QeuS ?m@b˧WU '1fc"#o H}(7p>7=7A8?z`~TE<:]sH/IL,q{}ZN]bIIPKt%x ½e7 g& 8byЇi͏O1xB~D*!/[ C1#z8 C5;%˟MʨA^{`5 őAw6^=T$!Hl=0z.`8 -&}_+g'A$bEƸB =x`nlIߖ}H]Iߍ)P*dmԲptv)h wg>v1zGUdU'ErG"ϣl(?2NnCϔiVGqc:<9s3 ,}t4\Ġ$$cf,G/J y ЫuW^itc 98բױjS W^GY,5up$Q^O:ͽ{#; B/egbOQ~(z*nz2*RL\BujFH_q9ixjdp8ċ iz >R_a ͎U(SD5ԮL_;P!e6>!R4x!-a(l~@Z24 1Ԟ̢u%$W!{U!4%"EB?С5#aTA^A܂ֹ/ Uuʿ*'v{<83.J[.*4D WV.dZQK,/^ ?Z! )׃wPԓ/^eLebE"JĴdNK RddoS; Ě6I / 7{4&E:P75zU /ћbl\KPc]Id1?ԦUI+џM@{_0%lH{>f*:oCҢuHbSo8ާ-3ntxI-7'h!rR*7F1j } a>9Kgsu:C885i>WRb2zDJ7g<>xK~.bvj}j@í1$A6".^g`LM#4RB%yz&3'sCgۘH2ƒIK12+K%ˡ67YogHbQ}f^ŝ h$o jo&)/:wG@Q*vٹuf2,/1-D9a O\` k\0MoP<]}&|Yb;ejbbIVojZew^TGaf$TWDgY6~~ĚnqE}ftuq7 =(8xCFG;t{IzS1{P6>޷:(a()}^~"J|7!hf1: ?ѡn+c$ _T U ?U6%c`0SCdٗ:2&1ՐC@GIDuK$ꏀ6BXh?l^L譅xl&ptR2A&qeIY (%:3#401_'b W3=¾6]R(|CX | ! <䲌U^U@8NDr2FN{6\LkAj>1u'UϸCRWn)B-$2 q$QAvȽT S?p9nZ"Js.@)c[OLqt_BRU}H/ǫWVvýkW0_Jn?5McD5s(oB9@wFT.Ax]n=a^^ke#?osXNcL8%qD'4GTt.#ouBሄugc9qYzw#qXSwۇl-Z8y‰Hΰ쨏$SU64~4)i7fUB3leK"HJhɼxnUq,'"m"rH)*TzB^ P-z JNj91^LS, mm8 yB3U` 4bb5&u/ލԎ>}˧Nd]ySj_Bq$6>u!-`AA!%fXT9H2,/vzНQ__bP p !c)?),ۇ,^*%;Eݽֻ1hKo^JA>r-k+@&M8U; >]`on7X>rPĎGfQwâ s͈L K[3ӞK8` GDt\28VD94ގvfLdI)kM3-ӛ$bmD#/&!{NtYbFgBsAJ;07 ) "c&7tئ~LBVc4Ƿc BiY>bѺHlqhMMvAτ ]@ކi'͘%4+n!ZU.AQhH(؆˹Ѫ=ǽkj'V)#?$(Wp 1PDX5 rC'mVP8 Kk;rKg*#7r>zݸFC}{OfsoyTU#Mks@@pi^PEvV@P#dHL-`sQ7 IDAT% Wsړ|['x<#lg[Ba5Im`tDū+@6<ܶt$m0pyA 2ƏAe(0|'Pm'PgmP59v%+[c`0bIױdU&[Y]+aqlw; 򯩸kc>S&#.AVH~,VGP=K@(7SXKnhhko@ܪvy,]0p:A[gP|JV=es۬ d?D:n3Fa?P0CP^7kDύvJ4|ᐘVˡ|/T5FC_Ѹ#6 kNt51dl2#,):`(!R_=/"amkWڢ l0&{cSМ2A!`csJWN2C'2T3D gY. 4r[e8#[4Ī(D,Zv,cSj4\Khg wxVљ2P{2 Zaf<Ԃ˾MF+MtDFGSC/Z&-*F~mT'f,!hܶ%q:Ы"\`a󄎽an45mUňp 1QnU#pfԏ9Q6&akQog|e4@.*YVWi-Nb*"omƸ5 ?DܛM3!tE 226cEAJhI?)ՈD S9 %@bWuN֗XyIsAD#NU w)MWQ7uH%ķHO)9]=_qY{BCQMDMJ%Z"UO4F;홑1qzBI`ʢ!tN{F"B۶؝[3Hh1#'ځC*7^Gfp,W^guCo6/y|/wh/?4>J1&п*5A=~9B1 N0{Wo>\$O :FS"v- 0*7uJK8dwb1A1@.&ᔋb b(ӯedq{(O D{^G⋸PuTJUN5`Cn!Q+lHLphCp=ԡWN^7HSAo(tvh>0K7\BRl?J956cߗh>/:M6?gxAj JTO*DBL%nk{U3 éّ"m K1e$}R_~72skRzqe2mQ~Uv%4~YC>tG‡4ޚK]Cv.y:P1*!Dil4Z)fu)JgddW>X] fqs&@x[oʘm&uWfm W?梬nehn T 0CNXm|?p3カ"WuDxD.Sw[1ʶ7k924MɁUFtu/߶˳ >9Bv=Pf:ƹiƪ۬6rPH\6 QG.5`}7~'GP4D`"w>J]VQP3贀`8fhJ_"!KD-^E?( J[e Md?)1Dm?Ssm^Bo 6G>m~hH;N*G7|`1+iYhǙtDa8K43AkA}?AaEU܏LbU%ٗ}t ) r+"EX ?]=>$j?Rfꅀ# ۟L˳D=T>ۧ3o8|4LFp?&Sy!")] l=ԘXw_l4"TY: CrEsǑoִM4;0,ۇLfLb+`XRP馂r 4;-\Pq1,ZvD/^%g$'T9v*ЂPbdre ! D%R%zt.`GI~Z)tjQ@T,scRBcqzHͩUe<>ߎa}gZ.2cI䪻p/ۨuɏ`ssGgv8e1|nE ? zPqtЀĦS"u?؅i/`=)K?v().CZ: pi0H^%ĵvGl(!DU='#⺖^2::&#i:{PJ$$Э AbEcBKED%d?GЦs?oe qQ坞3e{݊)R@emTqFulmEjMd鬾O(Ȍո;s)H9dQ R aS< VRT%_>((|Md$ϊ15+?Qqҙӟw2g4b5qr* 3:QR U v̝< \H;ɞ/nC(}Wgc H.^0RFCq(8|c=:K9P5h6LNWT(^ kS|wНh{&SPT\mF)9jL9 ##фa4dڿżm`,$m'J\ƿJEMB>g)EU`!}[@"U J,uZ)4%$tr ̫&OL[4E//X[u$#"A dvIDMBmkT@v.w56>u=H̰ou:B'ֈ"K"W5Q_@n',I%߭ntT-Ԃiac3UlZcSe To'oQfz~B le;e2o5LHsI wRJ?ҙk'/.Wpija}$H}1vphUĮ21ѐ܊ ͘`~1`gV&ü@MH`*OC,ΚYEħS^T1[/T\>J XjM%Sw$H4 "E uզ_=56"⌿$hɨ-xQ_='h+cm)HzJ2S> ) MbՅ&֍5#‘nrT{eܢ3+M7~ꈪx2IE&]o9$Hg  l ^B17/ehVȥ2Ù[聆Rk !k(?u7bܪOP.!W&ɢ__E-{ۘ=$cKU"ayq m: rKR(3kpRtgd~m }YZ{58-ׯQ%x4FcgX 'AȽfT^*7({E =BCȾ201\D^UpQ \^y"qGvpxvޤ}jA9Wʷ4N=g=z6/ bEL&IEh} k3qH'9&$$!, 2k>?9x #~u4y~ܜv&C_HQGYFc͇d4.k6#ŔtsHf R!QSn-D7 H!}[`TEFث|"e@ND$8"" J?mPj2E,7&t]rԊ&K㴊t^qemw5d̞{i!7QBݐƸ9%ب߰\ie͂#;߹{ޛDHzemLz,V#ƶơ?8b;4Ґfd"EQ$UMvs&B6ԂBm(;~W?-~PFT"̼y97B|YXEME{֋ j~!gjʩ4.Yh)N^LZqԾړ(MOMқ>=P:My_.;=ENpbh=F4'T%Y@ɴt gNV~REZTP]ď ;{ FS `u6Z6OlmG f»glJnZ8#Qxn ZGuS\#PO+Ϊ43eӢqARP~U,_3puc}4X2(v*q@t@*t133`|tHf\!ʟdaJ'JL[7,x#[v5KõvWI0lUvnIM4$"vf\Hu)SzndEZBwq+q&'Q~v14Qe $t|:Mdwi\. 0P}2a~%rzUIJiǛ$S=j-b'R*`MfcofUzHA%Fl_ Hh lj 9c>/-O;]f'mH?^GlyFգሎa`q=_<'/׍:A#w5 J?X;c ʩ.tJ52$b"xq(:1GIQp6CcLO0oY3CgZgLAqKIA}Bl] |HcO1d <'Y h$ i)cbLd/CCBŕQR/Ed"zސNhSRI-qɹ ]~n't0UQMkMrCj9sv8aW7O9t=}dOX:G[˺)Яǘ]+TP*іn yZ/MFaNdIfLG v7WW>=_?\#pϖqV:tG- u_.765>5FHO\*&zړiYZtM{* P :AF+;pt%ɯiOJ!ѭ8D-1R;% M`U -m/I VP*k+tQw>}Bo:]{m=܄J|M|-G(\lNܑzH/BGD#\gxxO>Qi&cE9?Иrl\uh=IuM7Izt 9Г,^2!lyp :Hi5ԟ/ˈs?.~ug0Z!{) y)HX HުXa=z/5 5R5*g,Ef>s/.00]̆uC]RG&0V8?'55A45VEYX{Va' >5q1hr8.Qgi: 0zuy~x>|v5"'CoRy#>R =g% 7%Ԥ Y؎3pӰKYKbͧzZǏi+Z[!}CèQgiEhP?$n:Etv%zš[ֹP9+)r=2;-o`mb4$:dv 7yH_?<R =cCMj?.bԥ֓Gu ]cԥ&{Ca9]~%ڿ&FDHȜ 0WMF)Z:A YGҐF1J_Rc;!jJ!X[Loa.l ߬&ͺ>GgJN1\P\IƱߙ _5Q%;hrM"-J_a1ސ_ AXQ:2jf`e9N ֥@Ƈ4$1˓1_&Q*} C "ޘhVƨxܩ*'YJ@ KEHr-N7qYje^bweL }8+*K7A|3"ZykGe^q+ڡٰ1؎\'Z-IX(DCNIx{tԳ rgPxK4+{{;A Pˠy/kL#$;!@B&~}b4@Cy*]W0Lu]o(FX`2fEǨo`If4c; ~_WzG^2`D"Ub/1>'"R! `ۑ1i6(Y+lE ig:bhkY\_?`a9V'/ofe/hV;{َH:G?ݑ/H-DZD]̻zFPB0 Q*l*sҟ&*`+F \c_>Mo( ‡?%U!@JF+ޔl /Ȉ3꡷.QAk0ZdVi>{sGn1jj~Z_2F?:P֨~O6Rt znK>t~-%t5Oמ9Sߔ:/?Mi>FSqsD-@tfחYĖ0 wkD7 JC_Y -?-F¥UIޕqT~y- @,o鹆LoDjW6ЦoRt_5[2 n(d.R%}A'U fEpA殏#*dt)~s~ǵ j>ƿy (R8ƶF Qy*DFq[' 5zA)7z̝6SG ^I+ CHGO;m9BWU\a0>D:mVUFl@)*t";$NR ?i̮XQAۂؾ {ǥZL^nH(7鏧EcC7 *MV-Go8&. "b{WQe''R)#F~rLA'gP= \ >iLUPl~1KFL|bONRzKԏw  `X) 4IHۂkSߪbU u)"LAFe϶pmsIj#w5" l0:}t{'@\o 9 Dh }Q8h??I`*!h=;BxȹAҩZo 2|--&zAKi]I@ ø3Ci2[0NW7cD⍆5)J{"d/Zj?ckGu2@)ht!>c)B?P1k A[6[b&ZĴSCP|7Bf^Po&*CJwT|]ճ<Ϋ$q] ӈMbjK44"SPY`36e߆;GUyF!*FX75T03ˌi6k$c*R7>6'}'hjƞFaOJ>T8_-r!Uƈ ?&-IcP= /ęx%~&MbAP:&Xv+ 4*Aj4tz?c_pm@+!7i|̠)k[2t &?B׉q r6^Ry&A01 4No( 4V| tʯ1H̫Oc{Cy `j4D@La6zE~VPh |tC962'uo'}]!`OϪGi$}%%4 oG[QQ[c0*[0·xg̾gj60k ${1דU"0Ƀ=amu:!bD3g>==SqԁBJv})06ڣ*z UzV=Doj)WZExl`$٨]| 0]qh8EWpʘ;sWEȺsTR$) zKz$QSw2y ]!*U+y m_n: l':'{e# D2Y,}ƺkb#* F 4%iң4 ~<ˌeTAF%~sV'T.l\ZJ$пpOUz/ 2^)w<;Ay!*CtFMy̛T~b֤B{[TN箰+#v':S/>oP7O DgO1~pj+d=LB2ΨUtK8uZ1Bt;KQJ#~yw(]P&!Y B9`|ne4')ʥ;D%I.P1OZ/\'` GӉTP$|V'8^&%2Q&CᏧOHiضBO.?;V'#c3hS݀OK`ü8m}бͮ#Al]÷`V-Ml8I\' !$*D?˲_[ESMp]D2;?| Y jGpM5MjOpӛzO#yM`Lj8M2[}Z:;^5GX/Bv>'4A2@EOf1Z9#=B\=;U nZ :u{ץy\FHFxt1Փ`ya${!SEu}]zކ\۞4RC;U( !.Ɂ\6sHpih󻗨}l?gQ5k׉v19bgG6xC&8^fsJ]#zG-H|_<( t%/c6 -5H1ZzG \z "H_׉AgTrFDiyOU=AJfFS0Z A,B4Ԧ[Z*l ޒ(ِkJ͕*1\)0g7;9doKC ߒ kOAdBUUI,l]SP~=`dVt‘o4HuB2aw7EnFG(~ogmlePW_*lDe/Zɐ #yLH=AnIrAq ZO*O-:A:D9mX{ɴ`a4_ۤq6JށF_8R& /7$tHV ;>I~ ALufsSJ? f(OP_Cl8 3.D>Q@V۫ ?=_)By_̬tnQwk؋ߥy9xfseo_JP#T<1 [cYd,`#O4ck?O\&yeNuFO2ΖO˜yaBebmAYjbĿz(Z/ 4A|9cBr  5IgB',I:v /aPtQк+08[&sϣSɾLPH*'އRT䪇Y'*co\;=ys]ێBfqQ'-dh}gUaڧr3 B]6‘0`օe^H2q@wX=Y Q+7J> Q=h5=My~\êz6D Ս}ڢW1kpNfG*ZaH$=Vgq~AHM F)( zS!Xzߙl~s7wz}̽.PTWFK Εqv$?a8O5kt_<* :tK0ZGCv>^h sFEzO]_=3Շ χ.oBJGqES[+vʣ{= 0oKJDD9M'Q,eK&>Z#HW!yeh8Otr#](ƭu3 I1L'sk{?~e'ˢly·N\^E- I\ -$p6; H-tI/.rm$#%}kqEn wNKDsmB_!KбO G]%#qZz%$6paQmNX1 G&J,CYD^Ao9bl])>H.Ρj,o}b6b @d8z03<, ե&yeeDOI-aS/N{tuQf4mbkXץBV' (NG'~M}bUma>ju& W`_YC]< |4OM,y(&6NSaVcy.ʅ[8 s`Q;^p!$5cmQWWPT\ ;[#si (&BѰ/9.퓹ǰwMfWq3kרr籍[(Msb3bUC;'yyfv:<'>^Lf boQIKh}Rpi =7/^#-w&RT:e8h+/FE<{e(`V\7{߻I|Y`Gc ZW S IDAT.VI.tXdɥ, MG$k*bspa5L3d3u"R"~QF H[DKWeD{C(byzD>Z(WQGr2}S؋5)٤0NnPWpV: {jN]ԅu |nuFB̊U%Iǒ R 2 k]5̶M/U8Fb?NCn$iNXW!t,J?m_1H~i6 2[*u Bb?/+~<''I *JM|nܻxglTF r]%K/o;_s@,oo+'z-ShG SeJK!#%oaXITfqݒEwX`5Ub{1ȽraV~-I`GMF=68Z^AcRs$uS! ZGdLN|]uv@ъH_Fo}IĂox/WqΪWПUB'Ny{)3؛ G5 ?18^Dq!PiwHȬ'(W>Ri|fX,o o?v Y}}.]0oYc׏qό mvZ"&bl7J_'xL-I4P A.#CʻgMj%2+*VSF@J6Hb0G\/ G<+鶻.ΖO/_@5 R a.;U-f[I1xb&SSEfIEOj]ԥ6?0NvD;q>{> 5:+d~~?B6D0j$= 3mPU⻂nw~L.3K%)4/8#0~p6"& $# O?ŬnDdPnΧ _ɠy6tl]ISy:Y }4T+Ӝ& ?vEmtC6n"PE(*a~X aa0GfMXʨͪ,ߪ#[ק5ud .\ՊEKkAqe9EF81;pg}aFq6s>F'@x͇#VpiQ86?:K4>8%8=ItλӋ4oʌ}x8q5ʝݐ,"]c(wWu4 tϟ.NnBè{=mj5{+߿vt`k?DkSmVaD8TYX,oIVDN~Fa"ַQ)ǧRi~%2|C8_A;:H'AU׀lCy\ui~ ѕ99h [NkɪͭzHg PW0<wt n߃O!F(I4;6AG0Y:hw7h~F;Dh:!TVQ8o.lEPo/bt2:"5f`p=ykݗBG=xVñ!~gSX߽|{'XlG؄ghw"ug UB?UvӨ,n^C[J_$L^|2>bLjxg .&(` tM3z{z?+[=vQ\p*1MY(kz<{v sypM7Z,]9,a Qk;mMd(f9l ̹5(G.7, vdequ| y]爉84 X ՗&}뛰V, K Z1h§f3(Nkcm{=];>#zOۂOWPpO7 +DK#o]G:Fdh$~r4,p8’0M!IEo/䳘{=J$Zlb~4O"sq}a:l c$vNhœtM1;o\;#8PqW\鲪JOK 0fnqtϕI}a#=L/c^\`>IZ";MIk*In-0.R'Z޸ʼnͮ e<e(hR?ªI#3KDGF0{EydJNwbUBz!)1Hkna.eX% Z*nB%i$QDU YG<_$tΘy!5i=?X'cߩb5}ͣ \}*Е6FG3cKX͓Ӆ[Rͣ\9$'"",W.$־F)yV?Ǩ0txbym2@)mޙ߽$#:]x1:,~=>EbKkh?%T1nˁaTZnmS؛}Fb?4/fg:!n'?$nByэ;LȦWQ%7Y'G0bcV998֫WPjhm拓ĪrHH!XZ[(Cy}ۻDDxlb1a J>'kNpcK{R%P DIְ;U@׺DWP2w5.#eHz ľsʚ,~fA,oIe,`.!ֶz}yJ`6 3|8Ǽ(zas+UZ/R!J8 ,]@K 0#?ai?(̶~NI%cqS\Nqp{4NX~<' C_K(݃ꇆH򓫘w`Eb;`V\ԳxyhhxC?#]=<>Zf5i#JS+?7mht߽=W:{ /ĉSJi}wp}|ZC̋2T*/Ep%"ŗ6l2/{(Iљ0 &斘i",ԟ%Fr,+yzS#ky%hwW%R V \YțF 6Z"A\|S Z @ɦQnHΓp^V pnSjphw?/f@<:bV|W$ .$_#S;{*E21΄*4ģ#"Jn1H\1M8:F\AN}[ЗurM\{H:wXODc#Gc;ZwyEB/fސvN cc w*! £*Z zSEU3p]w/Wޠz֐Cۦ-;OzP;"ww_^V98:rPU3Ibm2am0Vv06>J <_ŷmܴt]~>]"}R|n^9~H}!Ygh)ײ77װʘhIa4*>=sڅpw\PRF#1?3_k#f=i⮮:fZb# ιА/q _Wꝑ>Y M)t Ft'qgτa8q+tߛ<4Vb:~e_i*JLu\lٞVh]F䠓h,5{KлJ">r04m⯻&NՕhzqA_ R7WcxTvJ?Ξ¸$u\5e=; hwȽhr-= +Z_5=^y1]as֎Cu`͌n6(wuM{n@PK?XDT n8gpٔtJ'm⮮a ͺ{h\9-==}[wTl0.[];fC M`h{qY k*5OqWF`{\wqfP,D/x(VoZE7Z=7 z/ kLrcIFѰם@rR-Ot Y i  o8 yAeвBCԷF sh}2p18^ u0gf 0WP#(w~ʓt"rؘs]Fv5?&cP.,GXDAi.f'1]WhqoUyssjl<їh|xBIQ#}, `t̾FTqN Γl CABz+c$sS./.+yᯃnO wޤE(y}| (53K83YNO^L?[2 l-w3A Tvߏн>C~Ehf7%)|Du{˛sr B Zm?%i_/Q1EjCS[~*Ji x$(KЛI.E9(e]5hy4zn==5sq1"NlkE"b$H1:OM:iLm}O\^K'v(z]96q* /PY ڙH9?qk[GQ=IQ=;N -Eb²ȥ -~\*t< 9ت.clUQtf,kWa,sLHY9;$i^̑nQjM yZ%zU%bRz*-U%[Cߩ,FJUN%BOӚkh?fҞ-Sx3{r;-"?Us"1byeB}%c;wO^Jb̦OY>/EŤ^ PqI-Q}/h>$K^Dkjܸ]ә!(]fep\SzDAwab`r<)rD7'XzA7Nә4闳Nd 5]Y.dSSmyʓh|el/~Ơ1^zDZ;OF1負熉N$C;T?8VUz3iy^ +q]ߨ4EC-ت^s4!&^ee ,4 9"Iw6ÚھXŒe ki5cn\XT}h~_}7pvY:g~wg:"$Q A*Hv"E1o麜T@,f6Q(dh?z!V&xQOsE~,ҷm^ΔEHjAPr"Bwܸ(o huWeqt*ҟ,^@sV2kb=CEӻ>N  cN?7[ît4Af]mJ0kP<.n. "w:%N'AqJpu '{~-=s󂘟 ^(h͆oY8 Ĭ[gċxSLEӨ8t_maOP;}ʍ2&w%VDu}9Sut_ %) IDAT0VvhO[!,)ItCkE>hF U<;ĵTAmNZawuxq8%Iq!Eg:rл> +(;ِ[sEa7𺌑=7FG7mɼcgt OuG^_mzDzgkBYiAuµEߨxYu?(tއdL8OQpq-UH<*E?3+zN[((w3>!tTx4d?]?d8qAM[] k)Z4&ӉtN 0*ǡI0͵N<rAwT%$u( 見`tb~)btHl;b DG"]Pj0Zd NŊ *AX'!vRςιp7BtCʸ}$ʮ~n97.tMw\qEhh8ܻqez~iêR #BAL.-mϗ8n%K*!py1/ctq::۳i[ rA<֗H@߶:Ny j^V*M뒱zz̬;: :Jr|n@`y i8kzo<|ElOCPHnz-'7vGuأATGLMjtg^$ͫZr, !"% ' One"?@v=6 ,m;O "QyؾZ*{`CmA3absҘsMs%2_Jg ,%&Ӓ&ʍ˲1tOg\F'm jV[8]a$iaD8)cmA-=@IZ-Ru|i AbOjT>*PiOf[zKAo22>mql`w)(^3W^!Ko2F!A4BkZ'pMgMF%3sxN{3w?ǏG=MO?IIyEhvs Յ!e^oVSQP5]t3Ӹ;h'%Eӄ*䊮Lf 5BP<͹J6ӟJz|X[_nUw@̵J!:ֻ11< Bk-@rYrL}yt3CbOiu]:׊|qSgkȭDj =я ahN6*]хYߟGW]T {-{$OB͏f5_ITvVmuĀ@͏Z'EΠcwz-A@AFjYN괔]8;+Wh zNj[y5~W-%kE!h[%"ԠCaPP6E4PF5%ݵ::fWEVkl$vi_C={:jqx%:H\oaS`Z@}JXwO߻&16ܗAV˛ TEjP4ʋO*4̮8lV߲=iS]qt^cSӉo"^+'aUgtZ9|7 fZ}phyh v>Fk!sDTOGD(8._?X[ 1R?{yށ-ОЦ]!v ^Zlqw4Ϧ4>m~pOr_&;{3y_<Z8H=ҠdBuo&MeقtgK$6{T3jX(B5E}8. w&.A0P'򴯗͛=M 5WTyB$.`O`j KޑHIoYtJQv{!`)X1wP)%5Noq-  8@GG Ҳ?a;!cvbȽK2H"; 7N-f].R zas?OQ?$ڣzV5$ҕu,2<T>d]Coٴ>XAf+7z-,/DBQr<1 nS7:QD^q~=7hrt=DiVzLfO.{U󉯷&֭ebU;ehװ^/S,)i2Qm9x$ekƠ_ApQ^ 8}<%8x;JjK6(|CM$}| TޘFG>]3jd/>%bq;K/o.Н0% %[t)~9fH~ ^]6Qm;oaU]CLxű}L0qUTC_#JR;7;)k%ԩJƫ7Pv'& $;ys>(5l"OWQ[]:i]a}Up>wSԾZ9;8 H.0.~ULۖ%EWRgAq]}EQnXW htT|DĒKyEHezlMNW k%+9I"މ ޸ITԃ X]H=|}N,B,B'_[xg.ʍ˴f"M]jM~j#7ߔyO%"+e%:&Nst-#.̟|k4%^ssWړWx3UJ(\ŊJtQ>DQTp/Hj᜞~"=OAd+{Cd+r#cP$P'x3R {p*F˕qw}/[$U*b4}Z(fAjEΠX2Cvesp fq΍a-4_vEAZZF+ж"yIi^b,ԃ n6Zs6}DIߞeQܣ.ԟm㨮J|]RAj]Ff~OLo(t T'@q|Psc[G{ڒCAj>Y_̇W !i!2.WE'wvz_h'l/f`'6_wɟOlz3lMZPK6B$6a]fHǷmWti:cM ,Z3adGJ oj {*E˕ &#Z͡vjz*S:κ]h>~e|4פ P-}sY3uҝD+#~>N72D[ YN(F6Ԑ)t7v;hW:y+C|gIJ%`zgDS{n>|v/t2]K/h/EsqqJ"ѻ5$щ^q{䆝὎{F&ס;iyk轀vI{e^Zn`U=`6 ws /v0.UZ.tt*5@QĀ]^!c$Z F+8CBwѸZWB:zW4zG!L~Hy]9e'..yz9!j6}";Пa:`vDo?XW.B&(o D ą=W F׃J7 .C4Rh&yg"87rͭP܏A8iS#pLjDx_Yp-Fq%Pd'%04K{'1XZԋ&' b{7Su.!^ &.Xu[طv5*V c&"6IqD{ghNx$@՚?< ;ꆾý΋#k_rC/ӝ%hĸ"c'U:3q:쟫kDmV@ӧ轀􋶰fzZIm²,3g~5wE[i$0KpNcsy% h(5Gq+i\C/m-m3~keo( dYR}j;ؙc 2H?a4WZ̵~HOI=BCz2F37V*xVc'N 'GC$0 ̦цv)5z`pd?v; ,خt+*al u%asp 5iڷ'y}!~7M.Sꚰ..^3 OͫϤI>Ր . !V*줆-E' aG ?@\e{o[ &>{!AEloAq?z'al2z?9qut2dskWR;cGtO֘,A [q.dXG|5qҦ&xK½&9 :ץUK7;P@'{40Qr^L,~>X7;_\7|4^DErEw?hWI:1 +B=s0tҞ)Z>%w]TŔi--K9Cz^&'iuP԰=$Qn-9k(skR6[锸aFG/ ?|߇=WN!=٢#amʣ|Xvq`](gB=`x (wEOܸL0EO$Qxe0#i^(o߹{4z4)yg(HyP67 V`J3;Q'tq..d^ f*j%?3-ix"vN::+7.=e)XThKP`O\iiT_E];S D_2((xQp>>|t{_5?7"}Qֶ߫$>oE]:IRD.ʶtx]q'FZa4[r#Q"ֈZ6{GˏXHқn|r ]ݫQD^e{z}y2֤m \lDۥ+I]+%u-7&$bVzkD_x ͭֈ~t7K΀u)?;/m0_e}q(]È%x%jH]'[Q}޸Ir(ӓDno`P -GH[Xa[uzQXJ-t.;8oc((ğ~$33cBAK[r]>E`Uh tX 'r j qȇl esk"q읙%X(y"HUq꟝y!SD'}D$~:F|%㻰UD`&cQ-#x$]͏ pBY;BMP7T:KP@/_Y[j%t"zSmmg㐥'+"Ma}Z,Α5+v1؏h/a2Oi^L#M78bw]R6/egtTO!ۓ{L<8CYG~/F_ޢ q؏ ]JtR-'c$P<#˻$vMt 4tU}kquМ74XG?Kaw]ORZI1N-LS7M'mAozSD>~@7~?UܧV1dw%T2_4[(N)uwp;4gL _4 sDs%F%p}x 7]dv]XmKZ;"G0]?MŨuQlpJcMWXKDX %EQ`,+O_}"dZGA.-͢G*\mXuðNan'7vEGa=%;cXq,֑nLѿZWQ]n-PCp]hz`$~ KyZ'_!Q}d4>zyZë쉜Y̵=}6I0=+5{"M\;eT_?`3Ah(}TD1#Dn-u&۠Y&yΛwdF#v-Un/J2nDMH*_ѽ^&Gqý;LؓT+rI]iоqMfi1IW(ie1b8xI;/Ws"i0 t-t~ɕvw-м9K? 'n>bF%o."[egT }gp*/r=]MSX_:硕K8sYEqq)^(YJH'hIԣ&J"rF M|N,C yiY1ϗ"]}(S<(ijH W8E96Z,r f{BݗelfDdt,܈DbXjHoJ/垛F[)\_@ʆXf(jlHc6 (޶zMsZ ewu!Zצq}ӊd2 0i/1Rj:(Ah: ٘m޾Hv?OO6 rI>ql`_?Ob5Fen4 va;(S/ 7if bLҨ ^>-q#ړ{w %Sاì>u"Sb%̋:ޙ0:lx15}k1h*ghO6Pv{PW9AI] :3X=k{Pr(Uz D|,J< 12zXT~1D'!MpoI(Us؏EhF%ň*%x.dB}%kZcxdȣ艤^RW򈕁[? IDAT%b]==n}s#6] GBOCvqgPj Ռ`-%zyEQL+ ),opȑ 5n=)$$6ӓknuj" wUkؗF _P;lJbѺ2%ߋx5eѾ%i9T;ڐH/CsL)r/\ۆ(]\ 4†gq0}C FwW,\{?=`\#ޑ5mhRo*WJ|Dõ~Ny L8e^h;eq[,cћ͊Ͽ~k΄Kv25Ai6Z7"6"@lzwuAw(n>.l8o0ܼJeXKD8.^}55hUA+i=ȤPSpl e77a>Ѫ_LGiHTԄD+iԓGD tj4.лP$L43"k6Rۓ}~ؾxʓ<ܖF}A0+Xz}Am=lOW=DK$qq*Gd+½'²L?A*W1>J&j:%NW(k;R]P|H#:T+BR8{nn14U|&&'_Q fhgd2\S{.+1>mK'"Z.KlėJg|( R}A} b V:}b{9 <=g;8S8 FD!&a$aǷґ*1>6OyTPpf:z`kw21:U04ĩQ !/')C*[L/"pl.&Th αɖav]?*j}㧗F>z9lr`%rhc<|%kcZA?IQ #TOh2`#4T14Ro5QP*~8=ƲmyJI*? jfdQ;6K!=<'C!-D‚Q||02̐f:BO,{x#WVh2K 4r )'?A' .F}FKnTl91rceI<-yqD,wTh8jH?4 ~N/ܼ4܀pcfå+W%6ֱl %be 1\/:-11G{ܼ̕N{뉁ȉuOҺ\?f ǽ[`'w?1x3J7B?;P0T~7NpɅс_mƭTڡipI`oF zN pxo&4j)Ĭ| EqF?3{|sNo"Bc7_V}_2(=qu|' _W =?цrOSEX ׮vXі`HgV!kp7.ƈ{r;dLڔ;B_OJ{gfI75oZ.jC<\d{* . iTJ~vR14Ήjٓ b$Csī0lHDy1s|ii~I,14("-kwC?!frkRB'esv8~¹j˟t? 8.NMh.[1ѻP(ެNӝs!E$vK; 3-Hͺ7TLjHRݴu\JuN{ 3EjIcu0̆eTfdl}x1137$kh9ASmlX֨"`QаkMXR%Xa-~0ʌTbC{kw?%-l ݡs(k`kQn\ƍ(7.gZU"^ϪIjFh$`UX($^tV9>ޫ]9J[ϾEk5Z,9i,$qcn@o61>`X)O h7 @*ԤP{'qbX&Z#aհ+WkkK65 p6e e{K4o΢'3h'D ;>vT eŹyؽҼ=*~ g94>ZD-NJ!ҲM0YWUQQֶbΣn](t-zt'Lymzbuke"]%iDh,ŒE vYz p? X5w+]w3$}HM:~S#kv hu6}L=ݟ8t(b!l k](>Z:sy#5bujB{lq.9İ˹t o&/18 #4o8|q~l,wu4ձـ]\ ih!T'T}bX`wpc 5rL}]>m/^2r5Uː( N)wRi [_C_ڐyM~m 5{ L0cvpSfТ?bz:~ҒTBA[ ~i^#}]u:N&]ʄQ&Ѻh*zC e?޵,M{N3$HQԵTRuwMvgvw;b;?ስp^'qlLtOOVWJ*EDRH ȫ?Rd乼}nIUO@s.^!;,SLfwa' w@ $L^<͛Nf3(_>#"oI{2tPȲFhDh<;E uB<]Q?N w[m13ܛvTX Rmw=bv.6A>7$cܣGSd~i.]PdTg`O^6_HV!œ4_CzI#du@{w ~ ;.bf[HkƆ{TiBon_]6NQ4]P8LI/~J7u0lS<:8js:Z̗eg"m#@x Ct,&L" ZhuZDG Qn+4"iIq=ނsws4E4  5\[=:M XsxQ]20\*3T [ 4MOs8 pS&Ğƍ4:3I2I21sdгIV&V udP9b` />z:,!rH5Y{* w>'f} Ηa'UA!&?X ~X3=Wφj128*SZcBX  C.{ pS&gȖO DEh-쮴5L  !kCoc?7Jш.E nw!:dn飦7f͛jQjd|'>'2I:3ItzL:g!fNhQwv1Bw\;>C,;Kڄ7?I/KD#BE@og ]ӛh-g{:x azExGecxy2[ %^l!ßqS+7J94NC9CO} 3p* ex\ut΁9ĝCNP9oȳwvΙ(5[M4LlGiȥtC3< E[EL(]^$X[h^ ­G 8Sc8(bRB9;ОHB4k*Z"<_^?w :$,m9Ew0SVuaDNᵊ /)ܿj㑸@{LQU.ojC1&J.'VT diWЎ۰bG]ҡ8.t"}CBe~q ia;$e >@.}D2 9D3Ex2t/։<77lw.O(X">d vէd<D4ŷ:3>.FcVTDz없>]ݝ3;\0^=Q"sqjYRw5{0]DW.uaCO(#, r},Wa uqyq(]2)MZ+*5sӥ'36}"I ڹMO9p4CZ~O3's]zi2?Y~?{FEϟ'պbkw 0SI ֪P=4pvv@ WK3e2 秈!tMКЇֽ"c6ݔ̀ͱ*YH ? XX nf*Cc!,AQ -Aۮ@{_O\PQ 6:ᡛ"PܣQ>@+7pdF tm1EY1ktX-r q ֏.,?Mԣy]8!=o0ވ fd#Wd78)B=Ch#Hd MY~qwh!bɌhEU.I^RIZ}WTІ]~{<04}o#1,6-$|-@&dTb;F7%JPL_m2tFEX'!ސİ1dlzʷXq*7F`ٳEbbo@{1ͼJqA_|O qy}t BܸGuAC+=*p4* W;'L%LeD~)6?AgTD7%8yoY||*!Un=|6DEovZAՆ\BF_:./MR&LZ[G.3Yybys<7gYaN'F/) dz d+Xu:MlDʾ~NrVL{JM4vȸt4{Ϝrܩ 7 YKVbEFN}Ă #=s(N\>+'z D+&=^'9bM ^J~X!_Y Gu0Vzdہ&VG>Gq#L!3HAQxjx>4e) d:TC%ׇٜ؏.{s \gCXALwy-2X\CiObR4\BJe8>T>j&m$jдt2^Z 39prA]B߼Cc)ׯ!x8"R0,u l ͂CtGoQYVB]zh4H,uR3q(߽fBN10M ,-I`)LDL%!9x%\3/%b`F6z_܄3AaaػLpCKla8id/qR09,q1\BܛGzᐑC +D`E҄j$c 7PO1bQ:!|2(xs3e 7k{.goٗE/DвQ}e}f>4 :ELљC?h7ZQ߬9DlfhEK<(Ir)ʣnFJ1 ir'83-@3n~8G(w ]y'K{edI(gڏP "ܨʑpWL ϧ`L$9ۆjpԓ(vx ]{Jh޽'ԣUKD8],f^'=)[ƊiIEfP>_;^iDhT&OEawn)z&9Y`ŕ2f&q1A_هz4c" !K$Cj qM|tKps!ȏF8jfݟR@{uh*I0Z,Q f54h(%ԾGX~ o_c@7'(1 T_Hg{Dn;㐺>($U.D=Pcmuc OALzY  l%3GӨG`qxEkt+ij~p6Jt-͏[Y'%t p&!k=bDlO)Y7mski"6q(M`4 IDAT['π}o>ANgp" !Bh$O0[Yܞ|+Ig Q瘝;?;}H /v?Y"}5GATT*磵 5Kw|;T;]a'U%ޗ}vN$EG^qߊ1H$$_Zi<>r.TAQ ?Wn dFd*DqU-{+`ӏĭCȖPJվqk1wsы>z=1D _QaGT ʂ BƷǟG!fȼ0"yso 2X/P< Ԧҏ4DJ#Hl1USixpՋ,ldz{. ~ TG?^Q+ Ihmrh'ܪ^x"A=['`8?8b~:y&e0zhP37#-usnQ{]Ka.iDF^%:LJkH<"}҆Qc"d0J:([yoRBEywI6[t=!2?뼬v!T5C-034c! vR__4ZwصX>ݦCzNL(`R;"aЩ ?gd{ ]!ziUhpYSn9|n_bU|6pt?uKSQ!-rFD/h`X!!B2uXGŶ vm抦,D(P6`Ǒ+O$Bl͋7!l#g֐>9@Ψ[14&%s>Gܵ4>#D!-̡LxHU6z#JzxnCd`RUS*XiQ;dPxq)(bo\L/q.pcHNyIiA m졗W>EmB5ȕ& {5UQ钝Qy;uR$GM.y*lvڄY}EbτƟBUB )Njˋt6i$;!CHꐾ3[|ޘ\ئ!^9R⟞@7"[Y`{FQ6 2z;FbB.kC$̊ 9FF\4`]`ܙVuZksT=U]16O18,M@ETo'YM\)A3kpH\<\isO9~?^gPy^k/^Py\zܗfS! RwMbﵻ5!vQ2!|v ϥ\k䙽#i.Ո0 :1л`bkbBLVx p(Np|4y̝Tb=أI2Ez* = jAj|"oGp&ge+-U`P~8㯾!@eX k!^Rhoh1")ŏ;`-ț T?ˡ0J“׼hr=Sh,&^8pQcp! ={, c asBfs;.ELe(6Hyg, SHVԩnxlIt2"X߹E(# +?1DZ,g9q~1G8| 7[D Odd]Ҷ<~9ΗoY@1hFM%7 .6<ܨ$bmN;8%5?\q22@;,!CfWf ԑE (e2&mf2D 85 ǡL+C" "W`-?(vY(*NkKMLd-슪 wSI2J]c1#mQ2!3 PsQ=rYI&evN_o!cD Dӄ5|`iڜ O\4<%5[xg~Y,dP(jc{ZtT()pHˎA|w&Kͭ˿h(YnTX%Uŏf^8tqx =bXf\|`Ib'8ZR8%HF J` z)vgS6 Gȿ|g!y2jzA72_>#O J' Vߟ. ҭ($ *5,QtH6= (6 xO4QͻCh/k^Q$.xc 4i%G5˷b2g!&%B_g `o "@ ¾>.qj Kp?Y_Bx`IJ8ps)i'B4Y?Aka~1U4_{ gi^W/qFaL!d3>ԣ:&"uvmBWsh0UW|ۅrBnbxg5r!e84[ MfIFvVTD]*BA8ޙk݇Y0nC{}LT&6z܀Ti5Y/Cܧ(9gu2*GM+NDq@ވk87`wវŸCa4/z`t$p218"n uS!@Ն /aB9Ԍ=WsC>Cx;j-vws`l8h_ 6I8SI %4KQw!PBR)Xp}G.I:{{|0h:w,S.,H׊_̒><@<!6qƉ[e"᯽Qߘ04ٯ=p]xcơ^9ԋqFL՛AD#jAo=[<im87>}ߚ%ҐNjpJϠIS}Σ)g.H_ա4Gz zEѢ,gshLP8X4JBexqܱJ$RO2BHI- Z_s-h.'io51IĭC,:3.M)5 6&7ꔇwtɱz+].Y7Z-#Z$dYLJ߲`}@_=x EKI]RZE~v\ ěOTwo_dl)| W'gh5|Ob~C#f̧˸y v.>-VAL>̝g8U?KuKd8'JyX1kNt=Wdi߁Kr0 à7&Kf7nis(Pك?X?ƒnS&}O 8&GW/t/u8ڔx2]\"{B7Q}f~r^]`:v;2Ld?ϕ.S.9S!j_^:qUjAAm6sɀE"EE߽2xnRz֟ NHW{)jtw `%}$Rp7 @((`WZՅGЪou`{P&a+C4M-wo@\^Z`n6.gI,t :qLQ[ gigbLkz; 9:o xQg".ǫy#y3߶ XQͻyr RѸ'JȽu4Ln:Fmˋ D^xp'ڱDf1ػPgT‚a.A5Dۃ'1BSvvˈtpq;ױxU68Jܽ5 WCP@w'љ -YQ$sq~M:=>y4 s^\ѽ̟=GF 7= u6Kpt?sEET\^{Dvq fC eJ`}S;˴+e߇A+D]4? "ۆ]%7E8qA!ވs^H s4$!8EiHzH)e2WYm6LKt(BPdGu` S&2H/ve&t\, )a0TY1 ;B,:Y_bۡ:!ó0N]!bVgh}ݿDw[= %ƤP -(ltdhRޟCix!d]g woQk~vx9q kggSQY^BHs%s 3 kOv T)%H#uB*`/ 36m;\ppG͎pFP\;k×) dpq ~e]x4( DXGLUighZ^cX6|64 z#t0ہS[Jx@?o/FyT~;ljÃMt2 (C!w<#@Mpf '|j݇ !Aj?.Y"0HOȨ&_i f1FAQ~6S1Ƹ) Sx$ eI,(]FiLƅ9 GM[Pk 9*`HqU>a9G`sP'3ށFIn ]KyXg[CM0ǹ:fߙ9\gT ]<bfnoIovH?2!9Z!N MC} o40NNY 4W;h]KA@>ਸW ԱQZ߳9(PX|D"7pu# k^I,<]?Cl(1!NQ5O&MF<$ICw<A:Rq “`YCg> SSI$3_kz_܄NlF zh Z>ĞG{i6Cҳsپ >Vua, zPκp&!zmp4 l_i׊Pp3I u}Dn\ALŸA-OEm(4[wEL l-i7JO(&<&JxC{I6Cž>?aϣP;;7ahϧѻ9 e)d5_G) 6{@1B%$&=xېFYAj3A1Hc}I9lWr B'S\@1OZ΁=,DhR 6$_B66<@nI#fǠwOPVhf bVaضșG9hbJCwTV7:]ln-!8 ctoO8~OO5t.|cBR4w34AMj/ͽ&GD+4-I-5ޓGCgl¯"$U}ok2D$9(37av, @vPoQ ?0u!׻[l/ځD&pk>5 X(sv8D&X [EA ~ 'WPJ{׷}+gO ۆR-P@B/./..1~A0+:lk Dާ7 JR ܞgݚH<]h|ڹ1+3JYk-jA'И1ogmBH%Yr`z)7PXz6K4v2xNtYѿ|sb.H28Q-V]$DUW> bף^Tա=5|D%0xf65J'9C| 3pd8_aIyyO>-i?^irͽD { 1~^0>;yľޅF ?Az?І7O,N"<lLBђ :Pb m=3ObJ b`t:>'7p9|9=? θfL#:lw]Y)Aflѽĭۅ{t %1AOPO{ѻ3wPZtbA Y00p| w@5@ *C9^, ]zTrDlwBw]H`d-/MZ woͦwйW}ʭb%?/}6X8ɦ E!}S [ X, wP,r#iGSsJW!8|)L=E,./O޽':&A<< 8ɡR#AQyHxK;c07?AqdW.\m]gc@AQ x޳L &W~ށlQlhu,!jW|WyMP$b!iaֽ0W7NF!1*X| +Č]4y%ջƻ75>~ 1Pyyd)5?:]Zҷ x-fPuy}NNfϪpMdC:OoK=?5S'KȂ 8qJ/}Zc]I3E*d4G nNK,pv`|\[s.1XD Mbf {;]>R cT:.]g!]Mkwt [ KEC|(䕯0 IDATp x(S0C7C54>OUl(T|?[9k>$s( D XA{* 5T@u>B厈'UGg^*I Vǥ½Zzx߬D"h, NFBPTʁ~I\dhh/T\C~@DY-@ j$pBо9WO!f20B~vL~1S"'6:3Id msK?B z/g`/O v I']*u'{c&$uڟSZ-Hq8QR޸ 7/hN0@f570:.BP4T3Ml$A4x+qB>c X{}:/F)uP` 3Pq9l"KrK㰱S㵈4Ei( bx("c2xk7Mtu>0@՝r~[sz TNRBBSZ!ZHw P>t82-6g{ L&nbs; N\ #B^[y:piUk e2==D MBKhn! }fImn?^%naƉeN u ˁl)^f`"e\BSAeC. T8ovGx+됿{s$BҐ&t ](Gu8qVZ'פ\ !ð߇~(ShLVhCf\6Lin n>&( 7(>,}pE"]`6:GP҄{eI \);MTqD}/ @dh_0d&y܂6V=4sqoN`f$= .ӁjmB+/v Ox / tHbn!AF7D酡}(w2CTDYǎж+|׈:uE6Ƴze6:#,(\1!o U$ )sr Dtʤ d1,V2X"Σ¨ G Zrh5Wk}P|y]1~ [Hrh<vLFw܀\i⻼7nEy4t scp)чd9_Ʃ!}rh6Tr` 8SZ~g&AlnqVB>YP_6x(z /wPQ a;) { GnP?7u w4g丏udw> B%A2u6P"f*F }>ݠn}Ŏ|B󯈒kh(:h('Fo?;rG# 0Q ζ!4;}5ⴓnV^M8qz ;(!RAv cD$BN*CD4!\Sc]sLn1H'rhE#_ еE0坿"t\4ܙ,{[MtٙÞR Q`>5&ĕqDڂ}LZvOCڻ?dvhLBf)Ry!TqzWF̑`g!_d`YoFRhŽP9:.Ń[da Y޽k$98{Tp}x9X1y2rSDn LQ܆xxFFdqBy'D7КР\9Ȃ Љm2U8B#&B{:?C0JÚJ1~Єs{ ?FubBv L_AоWrj#$[BȌ_%}GLpC9gk(xq!=juxjMxAvqH6BwNC,׸IpSuIj'89ݾwvN?J~? (^b`c~Ǩ^T;bHySXt3K9UQ-/#nnh _EIapޡ;6zr[qFNQ v ^1 H"'7AQ3&%DɑXH&d!œL-Cΰۇ`-//A|jh9fgs`G-VoP /(+pॆ"m{`ws?{{ObgJ`;-B:x|;*s:uȑUSN{#_tfihp+gP{ +hSIxIZ2?gkG$g!)9|C H 'k}E"@a]Try $)1QVr׃ Br>6b< w zMC^AnAV&`#IZ|ц{gnj& P8Fgp3`l8[o@$YfD:\#ޛxބ1![@ k<>-3Dӄ8{x[iЬNZC"[U})hM k"Cvl"u ND- ߼D |A=ET>80h "ջIT%:ޚ'K@|)܏ܐ n40NuD `f(^iL Or2Yxޡ'Y T2kʥK WL30S !3) \O%&pc92:߿ChKxg6?{oG="23N$H 8bv촴ےZIzӟգ5Ifڙޙi:Q,+q&S_gD&X3Y[W=OT|ރ+cyBC93B^=[L)9 ^oȡ/93~G,GFsh5]Nل'*OS8ǩ[+PGAkK/U9&-|^):$v^3ɐ(`eD7l'\3°&C>HyN2I(tlD ݣ.@Q.l:ݫC147:0 x:fMkϏ}" '&So$"c+?V !eJsLrh}{eh_cG+^!r/lZK܀SsnβfE 2ex"B]9]8 3$ۈʘ Oc2Ep%)ghΈM˃vGF]VC q_(P-M)@\񐌡bLF6<"EIEbf$XĎQ>\*,qMS[jieA u{-2k%sMѵCDdB蚦4W#4 ֘Ce4cbh6X6 ɳ9 ~tH*SC . J`уRMPc-t_^T#d ʭ_9oVCfSl߱VyCFeA-ThgdRlRM&s҂҄0}|OjչYG~p("c%8`KD{MNRvO21㰮MAq؃Z7 ـzx<礵]"/^~n퇳vHZqc 9'X@WsY7>"@Թپvɯ/ d~k[yp Z%EBjKĉ Qkyľ)}%I;Wu(4ZD- x-_Hf;jIM25( gww?L୾9صE*z~* _64!b:} >S7;:%M9v Wp)9Rhڄ.-<dt%@ܿ[AݯPjxx ?T^F 0`vty>5k9gJ(t_8/P]Hhm*ScX?w~l%h1F ]ߣgpvN.Sğ©Tx*B&T:`Q(\CoDG?80:z7>wfS3R2[rrϒ|7~|ֵ)XקW{Uh. ɎCMrJ6atGh=rΚf;pG3}Wi m8N| vZ礉Vi"VS Y`4<̑(Oxw~ꯟڥh<cY5 X4SOe 4=xV> |Nlx.KDͦ:IXS}}-OW\@ypO8̱8dV-&_Ӏm[zR] #Qj ( jSmI6w"Oɓ3( 4YٵEp\qor @2/_>?]~bFXXλ03(W[r j йJex+=ڿxءy{rlAd˾]$+ȹ9iRo8hhSiS9961o-$dsj밗JTGq}[Dߞ$| ѷPwOQ_@,yt714K *ť.NW>8hGM`%9Ԯ롶,'v7oW;T_s4l>{x}eд?7 Ѫșė;hhLԥ;90]qk""8Dt\xGtCz$16Bu:@S"$N+'#,PV/48FK4[hLB u]Zn›U̠vrO4d-;ܓZb"?ZR(P~~ b+@h`Z褷 Ď{HHL5;yLc죲r+!rփJ]ZHk"t3 )cwQ~.GIcD5S<OrOԀva wbN5,\j@9ൢ&Ƀdk|9.qV`XliGԀ8}lxгeHꭡ#4ɸHC&i85b7 pVО?_Q0"r>W65AMnK Ie ROAr\*i BVhi&941 YR Ċ0lk3}}ݺj?+\Jb(MHQ>sMס$glK!jZ ADS0Y]x5,eݲ(WCg~٤Z᣽6Ԏch ҫՉ%٬\NIt^&2͢S<؊ ߌ}>Ak/0<0I2m;J/ܵ20ۃ2]+N(&i6a&9X zEuk#]Xצih]I!= njh^A1D q nT?G d}sVÉ0Ui+o`ݜYD'UTl}HO2= I7͡ YP}el~ 1Z,bj4\]OBw>{ ^q'M[:y8C+8`N9>n?+L7$BO5+E] )\4 j@94j6Uyej U*y~Mb?_Qtl=ӔM#݂un8X;XYfHmRq6[jhpC𻃼ޢC;C`Ǜǩc ` 1sJ-ׇKPL_y'<<{"5&FPd(,(8I3zvwquxΥrcQj .܍uq<nj҉RR">Gp\)A 6oLYѼ_+=}gq(`nGbMzyWcPtfPIs+FiL8馍x-q=CEW`nCq=4؁=o#\;o 'T*=ϠWkP~=Yt '4Hܨ*ui硦{jNmנWMZE($|(vJΧ=1N:|^GV zrԦ)QAfP<ѡ"`P":k3P~V?ʲao9OtH Zӑ<ц~oZ#kr({GݝH#ȅ'{gV"[p*E;f('kBilAq=MHM@/>><_΂{ N!փĎ;]YFfs0Ygts 4HcX&BBnN-wx{kݟ?SH f]NAOU&v=B>4͟,\NBA.͗`ݜW_h_}ޏoC=]= 7ʉ9::7t=y"X>utxm|Y857L'BZ:I/])ؓ57 3=.OV(#WX~V. faP]~vzZQ?Zj{h,X.C:$nԦ ɳн"ezRI2Q$ DvX8I3w: {qJl>gB#^2gI:erZM&,rȭ֤\RִY<;!#X:E%Sxb?`66d(G@/kJ6?q(y( iX,є|e_>MJ3 x埑Brd5:76 9>әRɵ( ݂[I]yO=lP8P#GJ Nƀڴd; {g"XD?⿹*"?~J6{XEg>Q3ј 'Omp_-]P%ShMh8.ftǷp_h)pg_?Cf v@/骸]0N=qPnf$МˎSϟOKȮ`8kμ| Q̧pF3P# LRap=is)+6/OJӃ(@4B)$ڃ3aoӎ#s> $w/CyK,"d47N&Y;]m\#cSaT& Px>m7-<Ъspx^Gwq 9(Gw=' @J&a¾9 3hm6]B㸁ևӈTGc#M%t.- $:_Ly#獈4`wo}枤P9Ц`tCeBНS0#F9~{6ޫ f^DD*MwFoS4}I `Ept?o 57}C)?,$7v`\eSmi-XgѽSBJ [%dVkPy=Dۀ 2鯾yހAMx4iUU1Ӧ\(ʳ^6(|$ٹ9?,"QqXsc0BzlqY ((nPhtڒfrn hZm'_^2+B8jC6 ڧp ՟"m_Ӌ:{%GkP;vN8K".!w Opfi*Ǡ2I>th0XhT@-M25kvR)AVī}BY[>[Og)8RZ4 EJ$(KPwCwD5Ms?ϛiD﮷ {GTepqh2!N{G~ov-.lj{FsRMgstfS2j;:p$~hWŭ1u}Zwr俻 WfO%fm`tUZd(6#[~0B2{zGZ_QC7^ e3ҋj>OQQ_~-o"Qjaui]t> Y:qj0*g^3:μ٤9}|/›@g2Br =nCasY+몥I(UZ1~KE~h{t1!tp6..~8'xs{kL@?FS9?>ޣ;PO$w*VV*5evM(zOze/EhiքJl5[۔v27y<?mM HP{}y"Ɓt^Fr8q$/`bH__."FzNACoQ,UlAm@o1e#Qs[WGU_F!vƉ c?}kEFLRznu8IPG@Ⴄң݉<9߼${塢ۈ6*H5S\B7rY(/_N/>B?ijBF83J/ƾe3;%)5m2 ЬMO{432G@jǕ,i0@q5~x+o"*wԏ}RT:igPbgVAz0 UslA*;45a"> %{|W rD·M ߜͺ\sަꚜ3S:7K h?Ft|;5Ȑ?V"3#9yhK9| Qҝr<#.1| YN!BwC,^|sU QK\뿈Ā-5}~: ŧY),͗mQ^ꗻ pcL^)EܚDŽ~ꡈȜEG˒|^:rQRJ#MiU0ǫ#óKMfaR*(ow8 ,Vo!Zu ҁ=B3{tʃ[}d-Yٷ.ԻP_c>ytųMCyuiVZCρw1k4V#TS2wT]^!߁9_8CThk39zz IZ(m}üHa\c0˅V Ù&~*MUOC&O~|ݟ?Ptѣ4iO,uz']/7m+Dŷho舌Z}7>y֧>%J<?WsQl Z1^YS(q88FJB 0mi<cWPIukD92 h0f{`>#LM^ EgI2 ܳ*tOѬ_ K츟+'z52k|v0l+= E}r}Fl mө:(2M ]f[Cg![xﲺ|v#@{i՗"aL@.B?Bj 4c 1b{8W42_A[A Ԯ}zF ElZp~p%hOBI%SU>Ff X%ܯ}xH4 g}:3;DPj :Psq@AfV~ i4΃+>Z! E9(gv2*3H)4@*܍~G-VϏ6yeƕ'oj#vO~emBh:ݹ-BM/æPq1C,SP'}{!M<_=D2jh" M=?GsdrvO;3xhus鞝KZ({  k!pޔ ]YүEr`>rMpY*|QWTkbVkC1hΊc؅&|!+1&#,?BPy1;)cD;,.X"{"K}@q]E]jہuwxܼ po+eNqQT8"q8PwN`E>Q_r^SUCU2Y 3G^ƅDhA>d`D-7Y>Z%0GPw@6錌r50]'c|TPP+RsFq nf ցd螮GtrǁR>wтzLV?JpiE饠93܋8u'Pcp$Ǿ^Q en#YB97 4fvz;Bdp .D&{u]B|q* !chA,N"eՕ̕b=LD-t`X1Gn,˝N1(O~ï|iAM$qv'Cӷp=#C аS(#ِJ 9o,8\ ǚ ^""OJ2,z#1xW妒GH $:;h/wHbgDzv(Ժ6+#&Z,kph?[@ѽ:\_l)c/MqzE&zp 9ݾhS\4݅EuZs.!ӵZ4'ɵwD&NxإKjg]}8-irnGׁ7oΤyoI,QmneDy+`3ٵH<f'i +D){{SQ`1 pL^n lG#|Q $)` kp'8E ㌚GW`lSJ"~5@g#uT,jG 4o ̔U N8qU47cr]9>uJ_NIH: r}t"9#;C\C7Bԉ^@7>yWUv,4-"R?(aD˞_lFWW FѪ-!vP/\uxۖN?EP;."O7peP@t^ؗ0Z3M$=$;sDBv}u||"dWϤv5p{?Tdd|]Z);;I(P9_h%{:{{"@D 5M9ψ9@E:|)c{e2)f{dd9!b.g\* 臍~G5W4]2řt0^3~4@<#J, Mhkԝ6bTM?fEk6@Ȧo0ށddcYTl IDATpEd^ͦ fbQxw֠vX;>E݀InL OMf힆jN܃*ԉ+m>1\{h5j9?; cޮ ޶ўP,J9moتW^:*Sλ!T`-kDF]4-YyjAG(Um":͕P]3s}TVؼƟi3tIlB"FfLG #!;}7kFeT^^Қ@B7 ,(NA{?W 4"Xb킮P=4 !{R%D# ItݿO/$S2͉u$bvLRiGFu\D7+rM f`tSV'I4};8;O?F'2M&%&pcz˂&Y!YN@0ЇPTq pн1iK[ۡS9""Kz=h j+88S}'ǧ4N̷@_P:@u2 oVoJ(P2Rq6߽!M¤,|| yg$v\{kѣ65c KM{#:˞b,O"CFX33aXx=|TZ;K k sH\: vWZ9l}v0V82顳kgho/NqD8qްc fR]#H7M$\܃DCbfYmQ{F]5f5GoQU25yy㫈5(蠂6cg74ԯ'1M!sq~/ 6]} J*!2`ƥFex+!͆RR' P'^J#/e3P~ Pbid(xܟFrC^:%'n(GRBo mنh-,s*SBM*놌,MP\G ZZD $oba#^mG"h_@{gK$uvel},+^;O7~_9jC 8*̟}i&  _!N4ew "j$UydǷup>"7nc10pw<O1N~oe_߇r`hNFf"4N7A| kJHGڒb߼(5ĔְF9:IF;@7மSeԊ;?MzV9˥עzIܕ *C-i̓s,djC9HK-bF Eh'GJ@jCVMqqZɩ|VAc.er\Ck'߼n^Ew@M@<*LeJerJuƕsd34k.A -?;J4ݲՂfz5D8/!# qd` (!$;x3Ϗ3h#KsQ6Gc1|L}*s=8n( yD^POE4[gWC5˓^!2w5fW"NbƒoޡS$[.bl.cK87d-|"} g6EQB1juuu:?n)7$45a`mJC1AWps($ p*]A:q/fнS7885@'Ә_C/1/ qLD8 %<{RM@{TE{k8x + *(w_78<}݉!εCk>d&S{e\ZZl{(no!gƉ~/7<"6EH̟7᪊DRTd<@ꍭ3fZsYABW,t_JhVƆP b9hM`#yj14MvX?{ ++#w!7NIn_!vԅqjC:aZM*RQd=M1S K9 {."S>J62z"rG|tP@w܀ hw3|D_AtA{x"~_SR*z {p S{:Kk]C?l\nui!*Ԇ73q+:ܳ b`D)]p??7l8Q}\UМdP#Ǘ"C(G{Ө-;s8id6-xجQަͨE2EIO1=޳,O[GОN\$ȋwܜ[B8d6'3? <&d wbԜVkXCqPVtƁXo t-T,8 u/RfoGw!!C 517F=uC"O{Y2A?81NݿYѻ; 3CU5랛ZmF;ԩ82Y Mb Y >GqξxC{L]P3Ze(dblpVCy*d6P'WzLM 7:_YF+У5 :]߃2U;866cn?k(JDAf8}k=$a~;,AѪ'@yIfM^$zr?B r/A98f[)^,}"v4=Xa 7g2@&vmnl~TbmYx$=oM54Qσ!V'u=`olwuZzD-PgAߍ]0U2P>F_~q3 R~>=E2x$Btj"h'^YʵϙSCh7[qtDtDW O$X$R_l2jO.~\^.D֎SKr1zV>ÈPRITqv'^!垢.-AH Z8Ƒ@!yےl A,&/q]9\Hn)vN[ilSi:qMP#΀QQt…,ũ/ P&!OC{rP&ѺYPaI,c^m`{PG)ס6mH?_  , HͫİjZ}&[9z7K\|'`ݽu焘c0 {7&{Pmem\΃Q*Xmp~Bi<%clI( =JdwҤdFOݘi!'+$YaI՚۸s#ipE%7 >bmX6%p6+hh:3(O!ûҏf/6!A-8𖯠3kvٌܓC]/98}l?ZR=ARkh8ȓ fwy|Mgp'aY]#qk>8՚DˡfX?e[6ЧW2:Be!״QwcGGGޏ8~3|'n`@7rVנd2>sVנ5=[P[G//nA7`WL^33sr\?J+'+fMGq$. t_h4g]QEȹ!JyU3v7A!Nq4K4nH۠8T}s  Mmp;X7jiR:iIvBWٔ۶K dA^ ^N{e+VÎT@{kv:yDDj^$9M^/M@WBT>|挽!ǗPB{LՊ4CEE ZofBZKKO%XR\N Y%;S%\fְsq0LcotAoV$yb{βjbk[< ɀEpե/g%&IUy1|o ݕAkZul%s s\ٝ&eH Hd" dRQbմ[;&_&blGqhܒ%J*kEAkows /$\=o5.+a$6͇2nnA4>fy WqRT j٥yÇ׿Ȟ?aԹ23#C,>E<(Lb(<)P&1~R*z2n zgP l,z2ĮC3a^}1wf|TB5k%8}Ѫ0= 1 :*?;/#hJ$WaعI }ĜX#$뒋OBϵduu!&G 5rS.T=hP8` "mr Jss曤H} BM Ӆ] Ĝ@{W#V,f:?qKELl4 />rRRkSna(*dQmpcuրyWrcf'p5εmHIQ%#)C?qq8.RMxqQ:P^cq ˹496 0nS˷"t 4;>20 v [(z.~G<={k.`d1!=YX.& ]%( K~A6 6W1O"ۆsx,@)b`|>"jgba,CmZ.bE}ֽY"cHl҇no7ظTY+(>m`P@[iH4{TTsO*;|(:?GYC+#ʭT=yM .`G$(ZmIC]3:CXp>ch=b1`I88:sIP !(_>uDiԾ7؏CJxKG۞vlr6Kh[M?:ue w `40iQ^9;eh&N漟Ŷ0)|;r]u^Vȡ OL%S`jlr* I־@QdqN0Vl4PB%Ig?]]@ Ԏ-#81L!枛 .ĸ@FdAd IDAT}k.~"r܆RMzxw-C=Pi tǐPO@F5 .WYEXۂ6KiDYE5v:H9bJE3|2)J)h'De 2rCDOÈd4K6\rW6 *U[oX^,U [&9y멐x ty{fBv}MF>;"T¥ 5g*4HV]qI*BO18g盐>'THjb>;qb b܀Fa^DkFC zC'/ ϖ @f, ַK?Nk܇/pOgFFm2ܸEc~2Spў!(^њ+!~)|p)'-2~i0 OFQ;Gw: 7uA oy/cYiP,H:~!MB)uN;3Aa띏试)&@Y^D"v$Ùt߼=?ՖBB{0|fze]!VTG# ݽw| rZmtR@W.rvPj.Z 9y&Du<#&>AF  M_"_?nEC42͆(|A)ezjL\nؔUu9] 7dҡS"DzD[)$Boў3CD(mf> mxGѤy)radӰɅs32BQ6|QΑ 8;t1&D\ E\NlƲ-p`v yz p -#fS֍yS92`[Y=@\[#:9dO(,9]CάTכPU2!dGt8zѕ:q5#ʹ$Y~ֱ-~1[W!o@`^Fk)  ٥Cn*: @utm(桤3d,]۬=ZѺilI&<^HDbh/$Kkp%&"k{kp_b!pf\DnB}JϢ,ѿ^;hH!{"Vgj#4niP"@o)KBȟP!Z!/b3N9ST7.CП ` ȉ]c"V4쏬cx +К&r9BZбpNԼ6 snYGc% ^| _þR,G4+%hx!G$L۰,(V>MMf.̓Y(?s rzц Po}<{Jl?t,"uD;2EzTM R*F3>@} i`27[p`GpEV+0n/]&siA>mҁpBlA3#h NDKR|Q("\p`f[4f.< sErdpI2I߾DT[qB̴nx(p|i.is+N-8)caHp;*v S@^5r {85q+Sa$n ^]Qx$S:%<| GehcSh/)˝JL'd)fs\غBHb i@===ߓӉ&ݼwmV؅q{?7uE?4 \VT򓯈*; Po +7ŴݫӢ ,<^yQQ Czr2v:=B2ť܀ 8AIw8}d}<%9Ch}|W J\,5 Z?.ǍiAGW3}GucP%5Eyh\$rUbYe0fN')LRbqmDgYںF"y1ƞ5Gכb ]U0 $Qa24olO҆`Y[WW`mnHʰu zMhRNP*C~el>5:>źASoxojWĒK:=??ܢ%a:k}(V9N.& zKPY<yjy,bB$uN#*'Dz`MZN̏c-'Z}㔯l)(ܣ*z\h5F/~^vpd_}$gp0?(w*MN7/ꈝ~"S: 0 zX ɿ~ i}ZrpO8 AJ9X˄$`rЦ#|exfܸ$k5_cȪ|KlN݊WJ ߠڻ(ˋ0bhɈcBDq]CWpGπ | H#Rp1H0QHS4lB^;ﶉZ%cGU(QQU.͓*7ɧvPn!%ѳ+`BgO3-2wz$U%*Ȝnۿyϧ_[wވ UC*OC' ֨F:1yr.'.uᎥ<n6[oҽyM׶!qj_`Xa*PΕ+^5TH_+qbF-H3,كR +LIey^ˉX*60B=9͖_ 21IFfk,Z _)4nDomi엯L+Dw3ɨtyi[#w" gO2isS(jDt)B߂4m8;GVjdžP=$PZʂ7?=aTI9lRDG ,!r?4|ths%tgt$ _*`W_5w" _<ziG#&@HguJK.L#W_t`ިv:#"KF<ԟ>D z hxgc[T◰,) nwa%huw`<^I(:=vBIyJE&q(?}V OM *#s\h +p$N q)֏|x ӁAoi~w $ֽY .O#`/UOd`?{o 򯾆tZ]=TVi} l|Ʊ`擡}0F`RJx5>ľC9CDv).M=1:L{a^f+pkh塥0/\\,ޭ_Q)7ZR| 5-^Xې i0`*uld͕4 , ]cPPks(9oqO(*(R+ݚ;fKIn Sdg]]Ȭ 3uc!`"ƀ:ɷNi2CI3Ӵht*:#@ʍcPH@K ɢ[*pHP;1W`TRaZ1G!θʸ5O$BqJ8l^;{6͗wxㆧq \q(L|AC/z{2hn?( {No/)vZr ?(y {>&#btl?ؓ]H^=rzԅQ Ƙ{R=}It2QrOaԚSy(38_@6lrȫ .O(FjtV>FY(F15&ExK_s2N1#D SEunD2t "g|]a1>BKD>݇j ?FI͋]*c謘 9@FV ڮi>A}FtjO( )Tr!b9~daE%D~ ڏd!h?}|zD-ɒDzM7"߯}^#y"yB76H2(L 3޻FM3篎n8/[Zgf}GTz 5aVbdp;YQ{qE\82=̜k=%q8J碶~tF =F]y_)LtKUIKWi{bZMц nҾ珈)4,NO0Ƭcb |~p)& ׷0s k+@{E [\Amw;D 0?>qQ(&s.#z*9CXgM<'#Frqt-Ę,j+ }4ŷOc%Pz.y;JnV3]\4ŷ-9_^*$[C\֠XT)/ 7ӈyd`dNj\/qO@ݯ)gMS!PйSz]Ew0"ҵm`,\&#=@ {]:NAo.!MOAvqDCU+?;(EĎ]]RFJhDRKJ\P }E3[]_AcQ$3oY||NUNb[.">`#UYa#'t-B885 m($=wg&2jMN,LPֽ%׬' e3`sczz} h@Ҝ>3O(M?PY*}^4#)Ep Mdh!-#&?R:%G6H+hbK"98ۋ0c3sb>:3UҘHV;4it$w-t2,?}1y@fHF/)}%OBHHDO<9 DdģJpQ ?{ ptP@V " Ծѽ4W{։-c {?XЙVjGFBEByŴݿ':i p-b xjƇ!G .YA7o~Aϟû-Wi+K^ `$} B)RQ[I[ɡsvIVBK>>t0b3:$b-$ , s@dskĎU[i{ lV j+!ȗ0^5^!O+= ivvVc+ iLA!~V1 `4 3h/)1C FGl@48~{NJ4`bUIn o@Hks lRw3U5/kDc@)Ѫ| 3b6{| h$!o{(\ VL}ǘqV[HH6G|9ةe;Ekw֘ *Ld_gwV:H!Tϛo8)b-8 z{T>J9rRw@s+G.|mI\ہ|cYe!P@o;@g>%P=GaNb^; sYN<Œh{e2P&?\|-=TD쨏r% h1}ioLq1Zh zP_X ]ݽe|zŒ˔RJ!woAN:ȉ{Prp,1 MSr k(t3[Pz,n BMC}^ k䫄7Igс\]쳁p;>h"K(*P\^`,i}dkHaNw#\*n4AhC@aQpܢg3cϹНΥĞ) A04h_h$Db.1 )av5DlZBjt`>G͢[m? &}uRWyw,@?OCB" 8gDgP"1ʘ>8ؖ@et ½ch`=H %9ͫzE;o5a"jx5- 1n H>|Drǀ <¦u ?yKOꐾ|5(WJP o_"vnk%EXV.)a`'rgpzv)gjZU)BڞmL&t@gOE<>8 λGP$>_ohpsM^ wf pW !U8-S;ОV{ eV? kfxF{{OK 5DkH; 7v8KH4Jp/CJrn\h(yAl=@@Uql,C>îMj ֙݊Y"'t:љ^$Zpcق")tXa̗ܹBJ`:g 0%MZl)X77F9g6,&y. }Br{}H>^<[YJ[jЛMC}jSr'3ۇu>{Zf\FĄ={$iZ6ǣT/`BpA^oAzu.ǑzH'+*Ib2:'` 3+-ȊNz1 Jp%8,[{;3{rFw۔630amq!Lh]Cfx }GܮAj7˔̿4 <#qaݘG9t jjzSO52gM8Qf,}_BB0\h-Y a@L%Cov榠>\np<|8~\u0R ["oD+NX1Of6](J( hmu6܇ϩ=x 9@c% Wf:pe{Qh.D+zKЅB<3Ec)Æ;^|\ ]@k1gtMgLo:zwf4e$u)%\ H>YQq(tO("fNr:cc }܃3>Z̒)YnûL=āSD?e# t04֕$7C)%xsSWfCV|To3XVt/ߠI~TMTq-Eis܌9}U.@ʍ~Oނ*ӰQzdэ"N9¶TEtdX6 :T)a}oqi Jv2BO,BQ/^ JGyg0>fECDF|@ _.@챈/t霝|c_)S>VX,Dnpq,yl n2Ƙ+ţqc9!*({mMޅhGtOXdzP==a8v/i )CG_R"x/,m^ M}ebBsCɴjXįI lF0ED0Y)BZT=:`H* 3c4-(n3$*Ha\*JG?ځjw, gߝ.!q({gp[mc=Sι Y̟}_%D <;mлUF'O1[0 ?{ *7+`_<.Xcq8(o[wZpiݐdtk~pRpwa"s*WJ"<`(C~ wzX rէ *'Vs2-4aY(}&qtt?4`L%cv: ^mZHusuW4ORvd _#AnW壺L.VȬs$ly"_ڛ wf!|߿;C؇0&m1V K@ƅLE1˦eEe3{sxd@|IBK`T~VD>4qMJYJ搄&`mR/gQĆ}|֠!Iy\ XfD,HMDȰӓ'7$\qtJHTd7D|'>Io v:)Ȼp; mZ18QERgbQ% &c~T}o'נv1"@qv6͑u9Xq!'B`RkSa@2 mۋ>{ er * xV }2_sCFAniX&a;DM.OmpAz|(vПa'; rҼOh&F;L#Ckãi/ qȔG7Bk9H.!G 3WH֠@il۾E5>S'C zl &iE,/gi{׈Ffo B3k}Jߥ8XK~ymͿ5Z?>5Q Y'B4e7p f3AptKFfmY2PJEχ1xt?!Zj)\cX0s鑠{sU3BOEKxb'NOcM u0}O=ݑtp&IF2pX1ɧi*9on,d(..RhmqUtF!5gBϦ 1d^oQ3i.C{{atB*n̻,2vi_$goijRW )bU2rT\"@%b F\ODs/(tޙQ ?NЙQ}4 `u o{y@Jd׵hs~1ɇg`ݾo>V #HʐV udBJ ^ϝȎ UeE|8 q29-hSnER K00H(ۋ`jDTs ;49:mxjH|BVAg.If?CŞL )C_Q7ps(b] Dh}%]*Cnt2D߈s v.tlN;: 1VП}.1JT`^-!2`=zV1=k5+sp>GϿ!Z>mУ*f~it қ]B}!4wYWJ"9AY'g_y"?k+p3 bOC?Y*^*.TȐ C̉CjK0.T[@61I.C:SAt{ܿIS0b)r@w,JmFs# NiE4 p6?V`SPm b s #_T+I7W!ӈ<߅D1A![Y G 9dj+:TD^[ktK?CG>aY?fNݽg'`A{h`0 D02!oM)8_Va*pItG$ JiG {{cqIH;jBoKк 8mBʋspMA1n='9Vۏ4Hf, pfz ʣ T-š ܐID+iܝB_QS b~8"Ѥ{R&IR^W试Tt߂SyY h- ZLłļZBhѡ(Fp 15Ƈ`˱$M66w+e nD=:9=w[Sy$p+px4[DrLkDZ[WJ$ z&^TD1sEdS-ƄXLSB"P\)>EqXv:"uLV"\!Wн]<5/`p?J8h ?oN 8OJH\=7- &8 q doG&P ^=r7/u_8<!M=BkwG28 nd:A=LH*>ݓ*>yH%,C p37s YIaQ $5𭘿zSܒP)k}'d:< tLX(ú5#b9G*PgkW(Ck&yu|<$P=d~ѣn8kg٤bDuƊS0s&Pc*:3a9@6aD DnG8ZR7ŞlY$,q5Ųd[۞I'ӹ no o/!E!@d ILO{iH%S([,b5~}9P<>?`0m:G60N(J+̒pq+s .2? Vk9^1u!f[q̰a|Fk LV q5ln%K{Uغ֛%O ѰtFI&@q:! drՓ2S)A5@a=s?s/e=1;b 6bݑJTk'Dj4q.a;?%MK&<{;=oqY\ w1XbTόm,l@y=ƅ59*:Eؓ͝{8e)$+4s9g2̄;8[敏>t+jɞ[Zq:C  &3w:==6}r f@5P9$ZZ)>Z[H?iIM i1BN=c 1{f>jѾP-u}(-GaFB~B9~Jb6{L J(m(&`˘?#0.OCDShD|DńdjӆڴqWq^К`HX0cbU 򛻂/bwjRzj x f@>dk3<#Dɶ&I{֟O_v{T@ՁQ..C$! ~&.d'̯.#CC_" icA&ٟssi`JI3a0HC$85v@D|Wz-ΑߞZ)Ke_/}e6bD(Y3>Ȳȴft K Nߛ@2pQWfL !sFzmr: &,Cdv/f$RyMhiAňNA:D@&S07mA5>l,1 X{hp>C|EOo̠ -^~ų~7e,ؗOǼ5V`1 Ml]L$-Bk_l<vQ9tf'ѝɈZA;@i%b:C~{ucUi}h (K碐B3)!ɮGESo9id@`Ge؅,TK"˞V)s f;)b UĢX^<;G.4y*e\[RohgRPt>ܾ,i| J2L%8Q@]~]=gf3(zY(P_.D|cC|fB³5b 8 St8>):.10xW)rؤ3s+F,FӅgU"Dlgav jˁRB7>{h~FfQv{4 w^C uh 1;8/o#-lYq#oD0!!Bgogȉ贍o+!r`s%0a::9ڹ{-tG#0+)#BlU vМt0Ď,Qgs [eٴP&K2Q‚Y_ ˔9@̝2euN箧m:vr54vT'׋M\UPsh (Zm#:گ>Atth{ݽ@ z@饛W,ۙ g̵uB|`6T=Es:FjGB!Zp6Syx jSForT0FlkOdN.'fhD3AK"};CaС,BiHm0k6+qtN $|,/R]o1&3/ᨊ@Eٓ-hvL?WRo~͓ q4h#Ȍɢ-Fh|]i}Z˩жOldv }}vn `qNA7KIt(^BLGC[ Y4r)Qe|s,ˎkgh.8qd%T={Ҷ?4=fIǭ˾sc190Vu#gۂͫhg~;DcJEEQ_k]iSNVKs}DX -Psk'}k!0w6R!}>!1SOn{tv`Mf@4D-1{򢰈Ąm}VphՔl($z?L> 3kun߉>tbޤZyó?ZA,BEQ1Bs# ՔcB¯_3j?q8, ZSyy|LV7an#b?[UB8quoqHݏ9$ֹ2'=*mBiM T*o5I HXm:K_|weyѿ}rl!G8ɤ`>l r.+jե)t~8f RωVdDj6_rbLOJpEWT[Uh645e7Fa/n#ziD} LlNEF%j~Ւ8*Qeo^E1$vh&` 1% "pKDwB)PLq*@4#~ia<1er8_ނ< eVf ": ͧKiGY,ܼ4 飻RK0FTȮ/@ICګB*Auaǵʣ,/Z浟[,AIgq CֽTסԚM 1ڊ`??=;o )Eg`}8U|U"uv, 5`@Jf<kesQ;3^ֲZǙW*_̍-NVaoH6gk(Xv>VL)0 y7߷Ѩ@V$F:c V吴vFsۜG?[DTN db2zb]-8O1­\i,1Īs|88"&rFn@"2КhyLq\($|@A UA@a:p׳9JJLk9sAb )?~Q9[p];%V׀(pnJ>A%ت)MAa]tF%X5}kA "_ۨ/'#`H;h#?b8bUpۘӁvjE{20kn-M9\a5ɏСQaa0 {P@r;Q_A- }R1HSl=&!sIHS,sW1$k@%f^їՕAto+VQ G6Sz7 nL<@ "'U%H;K9:Q'[̸ȷI*'5H{UR?v7(wnG]`J5p5r.KFiy:+: e[ 1fh]y-P_!J*J=:@c9w3Xeig,KKe2{P"wg ЉKs>i UYg[a]*jﯻ8ߠŕAqizԽUA& |wT#GƲ֐WdڼPYk?Z~N1 CfUr}Df \VG|H%C8޾Ng0!P@j}=Cf݇tJ1~#@#QMs>3qH_mY[s%7 =G-cT 6ˠC}bȗ_WY^|eyQɒ7;*苋aMwE'_ ]'Z\[~mx,]ҶѝL MmnlZ3 R^w\`x0XlUs}kHc9N)#$иPXߞ}?ܴԶFogt9I! ZƑ] eoqN:]Zm1WϓIQwTu|a]8N<%)X8C';?"@'}g!nV";PWa?xg% "Cm9_l!vHMм҅dLbXqٵLw 6`o+-G6ڨP>pНb 8O_2>9'h[ so__}Iykh+;6qv%D lz'o砌O@-JLQea$ƏYG>ϴ4,oQe6U8 x*s7-T*ꩽC+%HcOkle^U)Iݴ.x<ԥX0 |< .:|͑ߩ[(Ɋ'NImWȒ΁N)uF(<5A{ia괗!WNQ1e&#Ri9-\jWaL~h7`j=9 @z_Wzm2!mӄ(qr;zfRA܇ue WƠ>z^w|mN<j󯭀 a(ZK9O̫RG_Kӈ5-?8{8K__BjSq9*-,l ƕ់*LQDvz,;'D IDATFw< }K1&441^:\A]"p:>-9mˡȵ0~k- ߛWq)'ӐZb.>/g*=q_"fUlQeݾ.֖^I`|jɴ G)ϑhNg;p)Of M}Bv${0~~r,AF9"yeGҐ&T{F +!3ovn_=`|ƏB?;#eZ)AȾn_GR` rV w r,)P BY`L+wsaCa|cKS{p%7FJ]6p5A?r,DU3r3yh>{kil4#,GKӨ/Dɫ.q+))qYΈ~`%)d9@J|YA7O1{4G/L19mR#D!},ǞݖoR"'deLY*2ep-]7 gsdY,ː\c"uO.ML*>{)@zIV{V-Ci)F`(X,Jvkkihsct@ׂkKT {1s!3" pf'!UN`Um/-=$6s#P.IO{X]>S.E^M!w үjYJP&]TFBFTK0 f Aivأ`irr.u:tPkk7R2]kSi@"^ i<uNP߀Wݣ5!&?45TяׅL ic.GL{P䬜87q:.!W)8@^!*Q'ǽrd.6%Q<xD\z $N0_F}`vV*B211ټP_"WI䨤( Hb;^Px(H t %IeaU(CۈqU=vpr(.;LwݵB#)X⨁ ^Re{>SN&Zǭ1Ejy<0g(w/#rn@{,S{/LdNi% zߗuu0ih'~E(J\^$"̹ ㆵ:0whK*#6g[Кe q.>#tdn;*ӿ;0@*Cf4>%x'7\j<%#$[wkB ZƵTqUwEp|H }406cBlaR!؈3rAyss|/'y`n@gDyg.4ؗO_tf^+#^n_}X$`{~ jJ:0ŖgH}Zz"Ez@w:2RW*[[13n_,da *NoȮu=18iEt)Gnys}FгjD9G>":X,}0WAa%ݕESP8G&FlxVR]'!W?:Iʏ+G{Cju!ݼ*ƣq}. e5D J4`{>I91=$׆O3gT\ ݣN1䈸0VdFY>^Dk=(tD0M!# Fnm$Æ:3FVb32",Ci\n9Ic]̝@"I0COKK^1H8On`V {ݸ^2Y(nlbqwVb!QVˮuМA6փoͳ۲+Gb &kA, j]Gr Kt/Fk&!BD[L`Lq;B gJ S *esY(_ڲJ}|^ωE0]scS~Jjda趏hu[ )}D<ϠmB{mUk>;Icb%'ʜӆbv\dTJ 96)$)MۧYt N9MP%}i}e>XSP?},,D@Z,W)tрT#] ΘNY53ʠq})SgRcG$n&B(=~aC{(# \>[!hzlf:+7z{󑟣x gCH@_J̰-\{Nͣw^.O.rMҶ`$}/އ99Kl]'kk+S2Nߞqwܹľ }VBo;b#^['v"Ǜ ZK, d6Գ6d}v "?cv/wI桏(095~کw0&3F_fR2-B}v>B׋|=oùHh" MT>%F:$Bb2SfC]KfXpC^y% uxk6XD<9!h"X;"̽}(ˋPk([DI,t\X[Y]T[صSHG5͈ gu^bQP( SvL>^ )vfN:rDe,c%¬Җ8[t^(jWb΃'.NP6/r2 V 8"36H SqXG ٛªLDŽ_."&|(G_ Q\/x*=O\[Ns( 9l|GdozQA7쵱@y9BEG% Z{JkO~T nԳ.rRפ@<|~88T;[D)azX$$l{Z"kYXWJPQa{$ݼ {ȩef6`B*ˋV Z}`+B o]$rQ0U@'ľVmȺk)%lnBI /{DXk(%3s{h}cZ T]T#h.!Cw<98ٌ(lnFct_F)@r͑ X, 4 yj*H~Df`"]KaBIc2l QCCD؅d*HCL?_A$ݔp>+#[|O㝕9Gl Ctnc/{ށH2-$nlj8}#OTIK7B]߇dwHP'5@U`rI}EÄ.`rn VN)O/C;WH*xhe7{G=-2k3Sl@ kr(b*Bq#D +i1+ŕt_&g,F1ȴ;߀td纖(@" ެuFFM,S(m2 )ޞYV9/j1tfL B/=ʏF//Ѡsu&3w\֭+uuQB"ߠ5jLv\2=_zqaxVİtV J ڃ[]YcVԠ[.Uت$2}8.;ĎkbAG;3Ÿ4/J>Vo@DiģUmX;[3 ў v GW8͖+GtP3ϓqWCKsLDVV}b{ؑۀg2S + o D[ a=SZxVٲuϐxWJ/+KVԺNV$OvI, XS!(׽ I8Ӄ|Ѿa!vd]6Ny\ˋB8a K-BXVi$=%{?=IAg:*Xa{6Ӏa 3pa CWc?sXc?`Ys鼈-7;>xT#FR~EU 8 mqpWY7Y[$$67 A[ש=1Msϲ̊Ġl]W~0&S* AVہZ ,xJ/k+>D- +2m!smDXZ^08"D^7Vb]qbokI|l Hfb}Nv,H~.XF}ߧ*Ċ4#TnK>|.$Kc3H7Bnt(^s҆/`+g, dn)X:C""G&u3I%TQ YcPj o컶[r6 B5~{߫utLQ '΄q,ic֬ê I9~+)׏ILVȻje`#: -g X_y;n+EEbP1UͲ_[;IȦ@~Devtfz|9Nu~ QB Pdȱ*$" Q!G"6*2d Bo`XRyKb~[+%ȇ5`+rX} cy zle>r2mx4XV,R.& .d&F]gpe͵ڒ4@I~arJ̒"`b [a`Ʉ-_`W&=gsvRlkϫS$@Y}V%*{fȢ,{G*`O`E@4ul3ۻ{$G9쳜ˊ'CZ'+_XƅL]1(Gحʰk%M\oɹ%0#6XStϭr "{>4wʁ+'.vS.蜡OJk b^&\DvG^ޏp\4Q5h I1Em;eXk6_Sz^ &̽nKf 2f҇HX[TpZ[׾?.,1v:ÒF._w!sCk5dF *@6wEZxsXl Z;l;y"jl]*@n^Ǘ*Ra8:8s܇uRCgeRyF4] h$@->ŅTIDAT6w;eEͼ-4օ~Yߖ4!~s եqd%wju " _ -Wͫ4&1>j@&E Kt1V徶 NZ['C\K/P21lm7pk"֮ՄMEm?Yz&4})[ש6vsXao59z{A_H)Nn!Z&}FخªR! s!o'?  hIՄ An7 >s(Դ<8<1W DF];LPF+ѽKU,)Ds9)FdjDضH(?#ʿ0nU /=a `U!9jR# x ʏ$seqGa/7^g1fspm,We~mN*.T1x ˒n^aZG\&_ jWs] ͇.$ Dn6IEj-P[+%f9"iȉ,gPUxϕ\ Կ {o]ڀTGH5vkg`r&րQYh.?>Ckwn`LE`coe"ONjg@j]Twظ֏f(no?\ٛQeHc'sXW\I9un!+N;{C8Y:1֩vex ^À1:rGHX;` uEJ-d;?xoJ$l; o?vpXyM$ɴ2he9j6X2+c)Fb&*;l4 gar[l,ԶuX{A;*P)BN(uJ)vZș[oSb~Fe~uhp:X[4v<6Wݹrr:Mްw ㍾yK)? vz6w%CzS>[AryxHXi˔]8/~ !m+z*ѹ VqFkʂ7oS @7<^&G an퐥@1FݮBj*dHmS~:{T#gW9ݡ3@?:CIn_Vw:>4}kѧ^1pfT_/٘q+B4藧 }9t_0zlD7b)͔@X !%1!Q>!9e21F֟scr!% rYdH7vԁ;h+*i2(u5[ /}%ݛ`7`> 4bMpjxKPc֒" F.J)ePyj`;$s\;Q|/DO^blDX2Rr߯\MYdci$Kir:OJNqڝ~ \۝ ʻU AbճvY.ho I7c'p\2S$ޅP]y˰MwR= q{%|hA9U;nX7р7u?n^,x>=,'B䢍^ưHH Oy8"r;+E:v`@I-.a[{" @@mV TEr-olgWݕ"H>쥔K ãĸ˺B>i{saC5/ƞNsk Akhxۯ/r2)sJ dGU%#loLĄl pySj:>9eSh\#Z> 83.5=Y_\I9Z/o"epVRS$m{x #hs/7M<^}~<"ݷ/D]huf'ť$`W# m,+ps>~s`N}\3MU q9F˙XvR<6o7ej׾gr1&qn Jguȹ5bp:.ô̗뛷7⫇b\0MEHBZ$!ǻ_mC. B{D' j D=JCK`}ȗh=aCi0*N0-#\wpFH%ۈoԠͧdftzXE|vYz`2wKAiIbR}|߆fVYrK=[\xA?Aþ0vvKkCZSb3' Y6C]П^]$ 2@oG=WDI}QBt/tx9<۟./;ҡ.Gbcހql ;&s^r2ID[~g& `01,PYWDJ㍁c\bT2҇pnu*Zd;k"aV*$2DiIa@asc@:7huNw_jNjCǞȱޗ0+A-Niؚ( _g핦{^~E:?=E]_\|iK|dciY 9̵ ŵ"Fx)lۻJX_h]7wO"X3oo"Enf\O?K$D2S$):;Z 1ȾTyG+ʠj>jAmo;i0qWRsϗԽ Z 0񶐚eƠ;<":~,a&a[(ݹs+׽ dJ?vA$t%}rBI Ewpx~M69}C#}ꛮkwQgģ+Xww1n_=ǰSYz^ յx5f[{tjIdɀR(u 5Rgyeދ1 ;:E{!-B᥁APs^]<(]8&-!J̋4mBԪȥy1T={)h}WwMO#!/ێjLf^R[D\0 b> /a{|5"Ư{s7 V?~m^_ ߻չV{ϻĦ۾1`#J@mjLaHm|uF#0ܵ!Y/n ҰIu8nc.% %'úsXNour|Wbj"o ;}lu6B|9k2sUmSeu tپc?G #W~oǰ}g=7\{͝wJg k& |D_g7(n ('sC$ނ ,lY,\= ' a|[0לA:0ㇲB}pox{oX(<4408FaFPU~g?U~lQFaFaFaH/a2ҏ5#W~JaFaF?P~l/mƋGX FaFaƏ% #0#0#0/aFaFaFa^#0#0#0#FaFaFaFx9#0#0#0#rFaFaFaF80#0#0#0qaFaFaFa04q5-l0#0#0/a[F#0#0#rFaFaFaF80~6SFaFaFx9o~^8z`(M䦆:Q`(U"?A"p"ȂH ZզV~,¨)&&͛3w^ uq^#:{=3>_J(Pܾ(r 1(iP]n} H϶.c{'m|mм lr b3r EdC*@AXZ6PcUx(ۺժP8۷@9|w{9L`C[1~$!Y_z%)l +el Jl0 ˉ*REϮ(@BxF}}}E> O9^[[퍑f1::j>` xzz:jkk!tU?)ntqUUU,--s?{muKT5nO+%_]+kﮚ lWxNoo/ǩT*/,,D*ݾ}[za~Ǫbnn.l,..`477[R%|豱tRD[[[Di(r [(Fr 1(e||Hd2q1&666ƍq5Y&߿xbr9Y&>'O$#D&}\ EOOOHd"c&fffb}}=._#$ڻwŋCCCL pd28uTLMME[[,X%%%k׮8zhT \dX\\hnn KI8sLTWWٳgezm Ǐ#E.UY&qP߿?޽+$V>ӧO#T iPqʕ8|D[[[HSSSdܹsqi&Q&&&bdd$FFF?""ĉL޽;=z---QVVGΨe6$dtvvFIIIDWWW444DDLK@+5cP@9cP@9cP@9p~UIENDB`codec2-1.0.1/doc/wenet_image.jpg000066400000000000000000013464641412132000500164110ustar00rootroot00000000000000JFIFHHExifMM* n z(2iRaspberryPiRP_imx219HH2020:05:14 07:21:29"'20220Α    0100 X%2016:12:29 19:52:502016:12:29 19:52:50k2 Qhttp://ns.adobe.com/xap/1.0/ 2016-12-29T19:52:50 2016-12-29T19:52:50 2016-12-29T19:52:50 RaspberryPi RP_imx219 Top-left 72 72 Inch 2016:12:29 19:52:50 1/2710 sec. f/2.0 Aperture priority 50 Exif Version 2.2 2016:12:29 19:52:50 2016:12:29 19:52:50 Y Cb Cr - 11.40 EV (1/2710 sec.) 2.00 EV (f/2.0) 3.02 EV (27.79 cd/m^2) 2.00 EV (f/2.0) Average CCX   gvXn{a[smĄE!I{sv=/I_Vf|jz4m"R>2IєsK o1uGL>edY=upյjTLϩ~pNSϧ/W<OHOe.f'Pz?kxfN=ڱ4ڞ$Pi]\o"Brog;Z!۔r~ѳۺ'3؞|2k8.nye\4gxkMYr-/T#tJq<$a2$aBFp,QTEJ,YRE8I*$`$ߧ9Gq&HtR]h:}f:Xa^|!{ k A`gjgjNlNpm[{Uڥ*ڭ5.NJ﹣xW΢@r"q&ȰOa &pҌl,aE]b(&0$[6)tg:@3ρ` ,W؈_blq; .VZpWiWklBceVÕ[X)6Rpr=*sG)%0ş~+­+Z-^a^htwNy+! )_:a@ȾLҘ (0YEb00aI a 9 qCp  X\//:P->Xk|EUnSplE=kB[˄dgD=Aι9\f}3_f:Xd2p`u6\c#6Ն1mb{Fa[F7\} wO@l+- = }Xr4aX + *QaFDeeȃNp〧0Ur-qi@L`ELxJ{F(ZQޚɛi˗\[#'^yɐm4S܊;.½W+ |hZn- ʎ6ntUjתKQDT&m3 i+FAmM<{obۣ&'}1L y<wO:zqWE_@OfeL}Zޮ<.z[˞ysղ>^l=[=UEW|7i ycֲ+J[#ySs>]$INyM t0ʍsaY}sjH*P=殚WU&z.zܨNbQ`t)@ABi| Ec9ՎkSBUzGGBF|hYg@.*WC1 .^7U?w>V=Y>AoNM| /A-OL_8zz;~pw3-KY?=)O=zB/FBJ_a|12=^oS6:"=͔UX+eqJ/+zBWsB>dNxvEsIddM<ıEdK|BC\1jc. t,deS`b[RS140 U[T !}qc°*%p1G ]94o,r!>ƭa} }y{)z6W#L;xq4ȶX_.LOCNo y1pt 5YfP!;Y譈S`襂ƫSg!O[wA}Se[D㼮$-G~{/蜖Ou&3m^!U:0v@ʽf#@fN7S3ղ.c^:Xli+lQ|N^nȥ?BW@洱'c*In%P5nG2Kq 4U6P?)hxMS%#H͛j"a)Y ʮ6oDlR (>j2IY'G8&tV:WtU5$xmq6cͽ5` d2,Q<煉Q_g'L,舚TԺ `IA%J+˟ 5 ˞^_-Ha&6UӦٶ2)Z\$9ZnH$+p}VК'Uk*U9Qu.Va`Gak MMOYs=SdMO(Kp>uwznI\ͺ` 6)/:Ж2'Q]6LKo@i~ΦFI{q:ϺQR5+gƕ-N 빸3Lm}VR8ܬʬ-5uHQDչ:ݡ;]$;F+3!Y/]SbPJ9esm%?ȑS ]5kuUU&|;Ϲu~]}w 7:$6&,,A'i f\vy #[j]֑AO} &m+X1:qeV NDѧ󑋯t/t( R~w湚AUГӫ ]3źh3g3V-yÍV+n3CZ^t#Ѭ9p :T<&t< boQe(m&; lqyCicF&xZu:~<eL Żɹ<m7NgteO7m[ YXErR!'Q0YM)/ t`;Y>E<&hQ`|nJF5WB}P1ؙ&nXk*s[>ֹ.kfq:_"JQ=*Q} 竦t.thcO.QtX7E˸c)+u)>jgZL b[98*٧Ad$=Z:jѱ&A{Cp'O>prD_\:Tүa -MϖO_=M!VK#k/XY!5BmY?ҋ*ؠ&2 C+t[s{E SJϙ 2 !!`[ D.y$jCnDDj5.:"V`./jwWpNt!M˓k3w*N*W;.1EcV9Tf_^ie%B+ usOoiK~[~?hFVu[T$(PiQ$? !E6KtγP|Q7Xs/h^$'sx`t%c,7<Vi7tJəfY!#R­K f-9lVSb +|x[8g3Ǔ_YnWKRO5#Q*YlzrµkKҌQrua!Ng}ǮUUWv]lcprDYr*!C%hn%*CHO/N ^/'NsrǠ632K-֕0ŷ+԰$\A )D (,YV(kwaUyS[WL$f!ɪtxd69j멷YMVZՈc(ɉ9Pv"ԥ-fNWdX43 iFuSK#Y.E:M[ECZW*8T[VCV j[t3^zkp.{-z7?5I\=&M1,7f ׶khD#cۭtCޝY>AeSw@%KR9dEF")J? [R3lYCnyljjY ||DI+X4;I ah T\Jwߓ$MԐë`Z/qvRW+"X qU" #KY+EaJ3PVU[AjZ+LhcWҵLMRF5?5 (IU% =dcz):-EAk,M+M'YQh[J(:{~ҠU V%d~3dm8ۖFFMfV,Ӝ;6uV=12ysp {4m4#M2|c,xY"MjnL,GqAmW j׆ !n ~I~"XiKLPE2Z U'Dc4XIqš1)76"xN @X!"[̮vȿۛ5FeQ̜qyչ˘ɰô!Ќ3Un~ b(Qy__,,p_cH< /*||X| oǷYL}>ۻxB.:+^n˽=u *&x"5"G"WrGlki^fIXƪ~2/yK-Cˇ s8dʼ_3sM'|anTdi>9><]?:NIx 9]DY"{n##u=rG|/ dσ^ost|q'HםxBCQQ]fPM!3֗yEAsY:\' )OEGlo~rX-Dk#=\$>Q&0W;eXlۀU25L6I 1'0SC̐ ~t*LXž[Iic0 E)&uIXNEജ?m߾̀|7:+-KTzG]܋kwFk?]¿h 'B3hLxc9lEs(̧Q7@EM^0Pe);bY*/ U]wu^ohlMJJ8e/&\&6X:5]g4hު+vh%1*i^uиع5Z-y:!;?2.k5?~ߪߣSCL3N:} d~ ʔyni ( 88 /J dl[W}?:y/ ;ǘ/wЖ _qĪ~~y;ݞMNRc_ԊT}5_X0_:, gt BYǬf󫺖I6Rއ'A WmdDK9B3HzLV?L_UyL.K#1ZH纣 [ښfo Nt Nw҄k9b7F~,2챸"gPӓ rh˝u^spS;*WTͯ .W?:"?KNǂ\06VbB.BۋTؐ4)MRp"wYf)z`\٘,]-VhQFhXE5Id\5&vSA7m=7n[jLG53j h!3:d^RC՘\tsai15ʼn=m~gy;w"t˜cPs ԯ#kt6jT`TE2%ZO R%_=r\ Om(⾙0p,ToJ{&po%U&\(TZ&.u2bBHU&;W Ykrt3"JgL{"QU CP^.&D2">guQh_! UE*-FVzv_oRe$hMWz\9]|KbU*+ n،ƨ(#t7O' Nojwv,6PTdR络gUKh|(sTƪL3,kG)rsԄ} p$rY7bèW|J0]7JMJj(*/[{x/d/@nrT^e,C0c *حTtRCJyG=ɸ7&UtʒEEbos):\BE«L5hDm?a!jU!y5Lm܋oQ`Oi>H籚.WUol*zc᠉~VuE[ @&C9.J8vfQb.LʸYfG t*;Oѐԛm?3%H P)28Җk/ GKkUFF@JBck3}S%Sʇ$}0WcR4fIDb\ET3=ޗ5A~"+xh\L/DaAV)_cm6u\Xbh!$Qy$Ql*u$+V&Z*dװ<05j$qYh@H{6Rc]%3[UA1ɋj^Eo|y؅#9)hrWHlҪ.(r>p-B7-8Dc[00uj-2UiXX UjV HפLo .eGdݐe6[$ _6j =?% WR^+ε΃ gB_#/P2E2cblTY7)hP)!1.0 6ĥTP$q`CW a#Ncܢ*0UM=|b1WAL{\|.K+J)Ij2iymn~M{ͪV{~=.1i9^t/Cq} ?|Gn~W]WV]?UC1]/x/=C4$u>͖~x͠hfm $ Ӆ=/pJ,ɸ5>mxHJthJbm\yMsHi+za:fXz땵\EFE,2 lj)lPҲD+Ѭh8s=~m< ϤBehNZ3%wWRkͼjk=dg<峉bCY1g3+|::N>4㻌660#(k 0*z E ,C 'HeRE&YLm qjQd/st xPR,ƪ +KRz$#/.,`.CTN+ 6dXrKL"DKCV4hФ,0 +4S9 %-icM/=_Q4,{*+5xjef4v^^?Az)w{ L{R~˯Ԉ^ks^r;%kdտzz0E_ט"h]bI~U+??[u.,E?/s"ÿٻˤ]%;uZ߀fߤ)zE_ݼ=򛿓.g-;ybCFuy]:Q#?LC6HwTοErGLRoX^vDPCk1!"#1 02A$3@%4/S O }Kljx^w#7ү3#c>w?oFv ~yO};-cžiC_ǀ3X] ?X#ozw~V}'?=|Gp/4/LISKCoiCZ扦h5K_~!ھ_tU>zm838383838m6oC-Vܯe f~#Tm}#1{~ݪ-Y?A{}Hů6NN/:jf&&غv7Cf>v?E5^#!x(ّf38 N~_Lu_yZy/9}VAv[KjmvWy1 2ϪN˾Z'3'mZQу98=N}B[3δ|S]jZ> 5=_ε bL7 :|sߓyf+h_Ts}kR̻T8N8N8N8NpsŴmmm6Mmim6Mӌm6fiqN383838N8N8N8N:T3uι:T납:\SuNLiim6Mmim6MiqMiqgq'pg p' p' p'\suι:TStΩ:gL3 gL3tN=yמz bggg=S6Mim6Mi83iqgqgpgp' p' p' psuι:\SuN:gL Ήgggg=iOLLNzS3Ҟ0 ~<gtm6Mm6g838N38N' p'\suγ:TSuN:gLtO^z330cOPRzf 3=9OD=0`4i~8ƛ?`'' '''' \\df~2~6~0N3iqgp' p' p' u:TSuN:gLtO\\g=c=YAg`330` qN3.DaK0if (ҌTDLLLDAI30i0iB (A4 g`ggO' g= HONzpp' p'\suN:T3tΙ:'D iRzf 3& `ӌlqM1t`ҌIJI0iihhhhitx4x44x<<D9YBdOݳ9lN[?~D-b1D:x`=AzuRW:+ =u :tg]sgXsg\+A\s T3tN=y1bAL& 4`ӌiL0if~*.LIHG0hhhhtx4h44].,]  AEѷC~h" ^g1u" ZuWnS.bņՆ紱9#cXOu'=ce>{ӵc@ĝ 3Sꤕ6byՒKΈ11 Cpa0L0iii 6 6.bDLL]" " ".8Eth4h4h4q J҄X4G].X8X?OONt9;S]0Q;3ic_X0×aq6os 3A@M؝vX'cȶٷsƵi'L.{!ʃPEV"~N'>ci\# \M0iqtLID"".HE"txD]"."+JtbD  4cHNgMPRiY99nSӵ=,lypxlÇ'g}&q0vc `ni ;Xb$9 ]Ѳ}-+k <X@%N!vİV"5wNM1tKEҌ]*."1tLL]&.IiB."&`HLitغfE 4qJOZ Xk/G3x2i!ԐSCcuiͰ^ǖQ^||l݆uauJet瓺jFͩuKN9W;v4l՟FlV݋9Nl`~α,7s9o9BDM+p^tVtXf4b& (`OJpQZȳunb>D{ ,nf̴ ŚY-fshc g1 8M{[5ߴ[a 0MUR5Cgdz6:vD4䓲#&Nllr0ge7d4|ܘTMΥhQ101x>$8RJF&n75Y7Эlfa?Ivt&DUDǢ*ߍ00?M.%=R'MF.,53x3.nbcsZT#襧^9qf6O* )Ƃ7W6CD˱"7Y?V>SXy)1k/AbN3CS;sLF&|g`x0 NY4q秆Lj 3۾m}\ͅU_RI}ײ̷Q1/ ';B *Z w,!"-B `O6QVOW_/mnpW=#cǟYjl\ 6yR`ٷUM?f24?wVrM'ximآYfvMO&uAe ! Yyϒv2]RXZ#>˙c;J4[]uf 5V0gIS'JAkqhglvr2u릪2xՂǭhE8ԢRl>ck[K teY= Lm<# f C:XZV-q3ok\0#ai:=|C+n+R9BFe; Hav3z"[\YxBJ7uRߐPOp{]qFGb~&혵;9fҤq.6(`W3ׂ2 %ரShJfVFVHkS90o=Õ;N愃״ ?z[(Xʡq(c xiX) UrGɸwFkc83@ ˵\m5[--c0PĭWq] 8ߢnhAvcSYe"*<`VPx5ZjYwmBe}섕j]~?jzp-s^mq,%jV@\(:,ֲ79.3߉wWxE)3'xvm<(ͼ3㬈ZW7`Yؐ5ɓg;wqjIɤu$ھfiWWiG~Ekyw*s_y^vJͦWvUxcF(hC![/[8&6- 7-ֳ;oRMѢK—YoSE2A5Y5mOu)T|g[}lXCJk]N߂I$L6ڣqhv=}o73y&R +IUbtN_FN*e J^.G`1R_]=۶䜜?#^9*ϱ}=ZP- ]OY]6ղ:Fbl@H7rjjN@}Gŝm{sHLRrypOE__M]*Ⱥ>}[h/Pߑn]W r}-5dٴf=zd3q"jɶa9V~7]:ۥr. blSc RDg'Fk%Q2bX,޲ILmNg~U5Fژ3 v\Ч4+TM=pԱ2\rXT wcr)H֍T36Vgcj [.B%x0: 9~j6+1hƮd};EMEלrfM8$d?8Ui'0֢E{- 4+5\Evm73jq׶N>u27ݹ]q=>22]SԦ;"nfų*>bX='x)uĩpK)ٻkS;YK1$ř@n[MDt$z~UaQ.& LRe[YQ}es.Xn[=Ua^3ei=:ںf[@m8ڈ|g-6|M/LX6C8_@E;.aɬߍaZ;fǨI~B3e?ȺZ!)T&۠ YȄٺ1NuNj=Sr+@ۖAvӳ7FB ˷nӰClSg*iw4QJ*M YAcuv:TC[W"ȼl\l.](8KBL|x3fM0ZŖQ3s//obP-ֲJhys;,U X؉ϴb 3u,n-|P7!结-یfxZVw#/ X7Z!؎QA1Vo, bpu6Ph xϴgmn XrlleqcvƁwMƔ;.%%(ZSʴ8ݢFv*~`9:jfE\,<ɛ+Fn0=WrBlk-EmW7wNopx[C[N iXѴn +[2w!vBUr]p߲vټgb-#^{H#Ef3'n6TlXUOwZ4*NYZo,ǣ-׶Ⱥp0P:W _ID4eޓy;~QȧSAj^Zr%ɰt)J?$s ݥy.Ni(L9}[E@F^,㻄T3jSfkgv?046n~ϑ 9oF%pi0U8N0,O[^:>L|FB! J[hުRTRݯ׀VWAΉmve'ز#pp w[\G2ⰊɶWqiؐDkirl-kR?oPllV h(VmeY8||Vs?fDSm8?{,:Y;(i@UeLǬ{oJvq]FdcgQZJ |BێGmڛ=dNdZ/SvXo n& Bsʪ6@]"Yri N- ~ցaa;Vw 9NS;!M) "]?kU7 6 ]`}&o 3f͡ b3q`FⰜwYTD*'ڥdzؔ"k`'4uJY&qeVj :|fk,yʙofyr4('Dj75)zuZ 1hٛU-v]mm@s@g?Ӕ N$3f<7"v?D W]@ [yi)qP{s21SשW`L?-+2!l:,1Ui0OH7(qYb\lu@6ヘ>mh_s'fd\Ҫ:l0&qF",0"Xn~߆o7c9Dxy?Jg ,sP v5 X亶` {v\S1ݵ:,Z,FE[TGG+:32ՉR[.ȹ/Qu=*\vGdi_䭖꬜dyo %eA`fZϜqgCDT$u:D 6 Krk.w!&v3y) NX[a‡nL hVK!{;KօP%H[ FNRYm*]lg ?w Kmzض*dd jcUv,M-$"7y oQ}ɲUMUBnV]PeWɲK8*Fw L[5~Ys8?79NSynw;+^PҢq n34 bHg49-ʞye>qq^#]@q37%Uo~=.;rn K~>%x̖݄-QI]̕b8w!>`;vSx VK^C*C46o=sNhosk"pA-T9o7xh/]`"nbBf9v/U+M:)#el1Y u"dZn=1,+Usr֮5|<4-u6u+j}7<[Q5ݛo7*hYټP m6y()oy3)i\lčk7ir&ʂq Zu$jJʱ̬>ubAҩJӘ=ըSnv9 حeR.+/]\^N1!A!U \*iiqXYH)QʺULk<RQ̂o7o7o7kIy7rcQM! [27k }5: !sqKvjVZڑNpe}e~kXɉ^JG?zҚCj[P$78[:݄*lP]ᑔ ^5&{8-c\Z }(N}om7}JӋsbbۏvbG4dqacN:6;[}̇w (ɠ>Eve ƼEM(zNVK6^;5#h9ճbV6Uk{  rZ[sS ;O*f  aob#iJ9SV,E #z-=Nm[aoxh%sbߏWeu'[(nI%( 4޵1r*Tqdc>6r٩i҄u;^gO4׾3\!]umx42kkUٲt1uRNId ŕ]|mr`Y e%1լ-uc܃ozUN>U9myơ}n߰LےJmz5o-:n>E^ZLB4 5psZ+pvBUᦽPPfn396K K]MX֫FMK1~+KҚcH%bh(h TCYR̻}NCe8^H˪ /QGj!2psv76+VS=`2>8Njf,!o ̫l \{LUfU\mƴ&8edy"EÃe[bQ0u#b9qN:cwjvƵ&6ckf5W9*ZcuLf>BKe"UڵjH覥Y?{8tPވ2iSxN XP v=@&ת1o4V2,[ay/ Uk{UkU.ǝ9Q|Ybf6pѰ)Z0q4T9Zl9E.1P?DɡwwNܜ.IS*N'q-?j>=Z1s;PJhr)K^"q8ߋk'OȽ̋kKb%XՕƻ{+f5)]/41UʥK5-WŽ?2qYm EL1r [c kߑѓV~[NM_m6&NmoXM^!Skl:n.+F*QhV1Fi6 #Fi¦cUQ~l`kBʲ.ZmXķ%oAZ˵ nf (-첅[,j4fC*obS Ay`L^iZ1we.,tB66#]Z7b@,ȩ Y]mjq.UG++ema5#J(Ǵ" \|4L̾Z5\l+~Z^MmT~\ň1장jXz )38q*LO8pRc`锆^&T)=XY5V!bV g; rҵ *{#]Y-yyi=,"YY[eʵ,i;bjVK"s/z܌ BѺ%[[31B&D/6VQf z/DMAJ ],V2ueD@Ř#͋e1L Eu V_׮Y&Fvu&~Ȩ6qҡ2o,A]vuVjc0f5]w?5yMm֚;_0E9[YaQZ6Vpdlյ.ݕ9Vr7Urmzv3@KY}\.flLaSjmrQ12,"$e^U+vtN!e'13X*B}lj敖h5QeJ5 # {oU%&BİUb5l{,9- X"zudU˱*Ȝ7|BRR La-q=V͓4a ԶSX!>?v_WoW[f) T-t3&v8kx&V_Y-ɪy-s"B$@N±jL ^E eY1dqP*!~+qڜoi̫hZ)je\*JV7P9IVmB̌7,r*]g̱"2V,u1_ME CƱuԳ0x,|K)٬|u3qFz~#?J>@uG]캾<-ƪ([hd_ 7(zM:njGT 3-xg6k,ENʅ/MGq2Mczi|K/çhYxfn%J+r5q1{_Z ae-vcm심տw)ҡ]v4ZDCu/v&kٔpj2Z+& n[IiVldRʯʾW5Z&NR95XzTL̵? }{5-cw]-XR]mZQQKDkXFҍy.kv[V(v~;@ez|몠@.wfSv*(*z]g1Y,ú`j6vUYKv5luDEbs}GZG!!:2%[\U+es-jr/8ƲXJpLۦGl4Tevk,.lKlqP2ۍԃ`*gq)U2baԌ*W+UBru$7n)Pº \*ǯzZʕJ>ÜaS63f. : ~{:bafWōZpr,Ŀcy]m{ml^X"?0# ﳍjݣI\-in{!vï/]6_FqRvOC+* \trKw9-trSG]"^eRa ZƆ{m,eK3XG< VÚ2 exUt;V9. ̕cZ3ciej&d]T"eXS=bF>;[7uk.Wo;nı u#WXf zڥky,_~@Bg/ւK@ceqE4U]Ux򋼰\ e{,kmHqx%Oc(=륙9֠n'1i]zh4m) 5m IDfU/z4mm>+!j1]Ȥ_Ϝc= 兙M|o:BiS_ab\#YÛV!v\+iu6 ü ZBcqhk-a#/wUs}*vTT1'`wxle ^#z.FZKkR[kRz̴_Az ؕnܺ笯~kf%Ԇ(9Xm"L6: tݥmTLtL+/V&PqYٯtz ]?WlX-Wŀ\Xo߶^W.MjmMMmH}ic\8Pmn+-2qM!s}wTLt,ݲ. GY$ BEk^:OTٖZ5,`~fR1Z۲9k)72T0ݲ4Ull[1Uuf[R]hLʙD21~>,6}1(Klf3'GQYLׇo"~oܺtVo0k} #ϭ^ik}T-׳oԵf7=4)agkT|ӵvo罶b+vY UmFֱ 4VPR׾"^ЉFjڢ6 9 ]mY4.k./ʂr]͕p-`$Se vz*בjOixcX;8׽ jןuPu-]yxz'Ϫ:Njj^~^nGUPE?N<;|;躧}_>H>yݟX~joygo ][M}~XmaWL?QxWJ_|d`ҾQ^ ,vsuWrm`%-W"g5oqǩĴ0bn\n2ǽ?@ammaťH;9b*U5jN [V[H:ۭnmU(ejݳRwʬN/5Xlɨ.\©֥.R_ΕaE臭i\Qkcm2D٧"||N/uBS|cxfU}@׌&xߍjC|{L<>c4j4M+G{O'g 5uy_+ 5q 3QV#܌b&B.lvBy̅ }*6x**jql *V2#T<YVؚZ2Ps6^3du 3Vf#jG;9{MVfa Ec3/^\S]aA1쀉ڣGaWвW䵌% v[? ͝lU܋o_E(0^,t0u }mDw"!7A828[42ߘꉠ/"o uhn a 7aA(7sZ:1ݙ%eU J~ɯ-k]DM >؋!mD:b"g**`wTaRRPմBO1-318Cbm%wFJ"ص9"'!IJ{cPqU*꺯_Wsm9UVq~xNحdMdfq^ k#x=eZj***$ࢢTIQQڸ*sQEVQr(7(gVܢUm¬d(ȹYEG*ەu]W5_j<Ѥ]V9Wf_;Qz-bmUַw5sraKzEk6hSς%nխZ \!gַmZZᒍ8klFtl"vc] vpZ kÎmZkq]tit6..+^1 Dw ʼcEʱ`3QܫUlUmV۟e[j. A*U}ʴ%YW(j rU}X$fsWܵV1Zw-mZ.rVj-nkF+]]kŮ2Z ^1]bFvy]c3K~[u%ۏUڛUڛm"[qۊ[hn>F!v_ Doy HϪ]b/;=/E,]?R˚l"oYٴ]ߎs}"g]۝m~|j۵v޻IfI{bלLZzת6UൊЋֳs4X6g{ Z1qZ\\'5#L1m ztGKn+!v!9nlm]GNnNm]_,Ϛ:~ޫO:}poG;Q~#ffq8rU˷$ttc%۝w.<ΓIZS[K1ZMO<Y$s -8AK˧()a.F.?w=g![n{:iBޡvM \WeM|z.Kv*S`C@(|>bYk}Yn1~~0C6`] ywyB|.]]}솁w"qhM'SkڵqZ@v1]]bcqꎘ1+~|ۯ`GM8b1v_!v7g:yrÚOtzvǙO>/0<}s?Ѣ;}eGM 3pj n ä\]O:O+GK+i~wٜ*9-ctU sLf6*g(j1h)[y~9s0̏<<iYx`5-} s}P(G( jh{u=mFa2(g8mGO8svٿ휶avǮII<3rnZS/?L*,c>֮mڵ44Zcs6i? _v(|*w"O~J~}67`-M>E{=c`C-~ }An>t%cW%g5vu0GANqCEx|xص:8Ѓtqs*CkZڵZъGqr$>j'r6|#>q;"5\$^ЫV3{e4] /q ӟnoZZݶt޵4Z?anŭ9jUfJ}ֳH zE\JcQWo1Z\ C>Whgٶ7lZ|k ?(-y?Hkk,kNv!L}J_ *6|.6b,MU)]jMM9އf|~ϽS~A`C:>ދnm_qèGdCBev:?WcgCy7.cJUA5Tݷ<b$arP-gڢ.k\~pJmws]`9#IIFnZKܫΫ_ ɸ.syF:U.C>Rŋ_K-e1jCeq]Nb-%Db8*I. "tG|{"qM,9_Lީ捶:?T\3=v~)mVW^3j8}!4^Qwyas ͍C#_ht- Tmtp̣]Z>vN4gW?Rp_ _/m R;`0XAauCa7$4g (ĕصf7 $MCG?|6,Zy#Ar4Tt"xe} ϫN!( "sU0hҾ2`b9)&߇Ȝ)H-M{S̈́g7-V,spZ>]CmGE!5vZain+Tl0/ttjEO/ucG~1_?51_ӭp$kZvՄ:h.NpV>VtN E%Ygk0.i]o<Ѩr]im )6_j{լ]N#Jnl*.o ֻZ 9^G=oGKoػ`G[~ݶ(~_ٵvYUsbm>.hOGNFGd"|VHu :zs4IU@Ϻ s;H3"_6=3Ge#bsStZHPј:DG J! 7!LcwxG飭Gf(R#L R^ dg 771GIj.ݝUr T"Qe"h.PGcfqU ͨЭBԟlN8D~8.<U@>;vb@w8ִQ."{TfDTBUmFwu!bs54,ށz?6qZ92]Cpq;uE>sj{A?KSej[jBWC8Rm mP_ڧ28l ]nyZ5v cea^ ;CErGDêtQryѨOԧQj\` 'GJ=sv_J 3=3[J:`?M$,Jn!E 8*4wi+7x*jGAmS%ش^l :?4>W񞕣 tCF} [WjhjC#EDw) ɷz41c(c81$ OCE\ګ?*G[Y:,Ks#w_w (CO IΎU[mWUsV~q]Q*W͊qsq3QG8IIA>9b>_5<;m t-Ssϒk8լm=Vڵs gE3bַSR7V#B`Tp쎏FG#vA\]6u),"Z#gUn@V_BxN6#Gc(ᰙ];Ji#-:v~,:fmz'TBm=c$7RLSRJyFآHVGl-e-l&&R:z+\ i,FR#w8vaKf| D'cJo Gcd|PHج膇G#&qw!%j7"!mi<jt:y*`9A誯UJE[gwŠ(nN&䢣Eʶw"8b T.UsQcGDp͉xcIFp<֫-S Ta^aTa(4񙅨bd)cwT1\e#J&câݹW8E6)6*W"/s*r0E19sjٽolU+\`C-ekX(MzH+bH*7(3I@f BNq8 LLwMR!Ey?ڎF>X| h#(GIp:@R7])gמe2 _䵃N"Qy2ѮÜBD7В~\h]crֵ;Hf(Ӱ'}#UgbT( CBqԢe:<.cNؒ 6Shh1wAܥA7-oϒ4ǯ6 53TC6UbBFV퇂"hǒD,/?4"c8oNddz#Jۈk0s8ꣵML-&g;4 хVE7Dm`yMvo8Z6h۽-nEC w7;_M#xbMFQ>QH'?Tp!.;H'|iM d~1FBlw;lyiS֐t|M.! ?Rsz/M6Rk_I:H:4K,t4:{K%(ht@g4,>V}D4XQ?tq}ZM>7B^3] %-xvZ~͈ ͨR4ЫֆZ\+7v \ Lsz쏢i܋0tZF5炍$Jki>ӆAMm1sZфShoͨCd|3[bD8:1jȊ @ `[xY<( ]"(N)v8e9*DZvb}S_A 6Z$o/E ؁[D4+C)̔Inw ظoFУn誯h:ZQOQ2Z !N*U܉Dy(o0݄ڋT/2YTYz vTrd\N? 3****h5grTddhspKt] љgCUȪӊY@aTm& 9/2@^Ca[ϭ5TW9ڧ9D<0@1ȕ(9G9إd(~1V(0F1͟/UB }s9 8(#tWȠejeU9J7(9EGeGvs5i_y]ˆy{&C2mkp w(3m:EiCIp߂u%!r>%#ʹgr.QͨZPUi8Q8HQl3rcFCUP-3PGbh&,B5Z*bJ] Ul 4fblP$oYfJVvtk{;UUHEيv3hݞ xAMB351#Z`6p@B$ljpiCmPB !@b6[F˕֨m̳dmPPv6~eYG93Jzvy(>*E9 \#`ʪQY:"1U*#H*** cOLsgJƈM=n|p~ͤe7I&UߝSh4D^ZVcF0G6Q;k[H LeNQ*9ͪyڌ}( Usz 3.[ar6 !gJ0O_ >=XJk` Yz%B9fs+cVBwcN(~<N34g\St:R+@^~a>̶0(iˡxv`*)}=ID$פ į=HOhb:?+eRà7zTNU h`7iVSBJQ(U & P]^ @m)E1=ZAT04|eAlS4jfMa|/ N c@7E}Z*:6q;:&wڱ o2PaE#~v"$D9Cvo HdnNOZ8ZoU-;TJ8(N@($IqG~#78D*d$DœL[௽G=rQtTsKbw~I{F窌^lgT,C7`.Y[H#蠪+(~@DP]a|[3KUml"#1>t^#ySρiO-#(D CF;*6*@`4v\2G\*DKPh#D>燢,ibn V7L@.]-B&O;hԅU xM:S6 8L]x#Ua+GvFFu&RE+Ov+XiQhcG @D@ #rA8@1D[)3unFsJYHI:7C]|xgz6Yܠ0T6gD`<8B9 3(_IF=eoD1sj; ( ܊ 6?K(n* vco2^ZFA&UҺ~RV"`B{} 6lFE\hqLF`g3XB qȏʫr ;=mYm?}f}Ql/N#?uj]9؈ۂ2"[)S^܌mA_fqDlUB4MaHE~nVy(\0AKUUj@g2UBj @( bpU,Nhؠ'%B U:IC>jACw|sj#7~SD[B&e/tuLWM!KG8t`ƟVw3=|538b4qEhHN$ޅg?Cઐ0l;c1(9M#J}ȓFs ]fNu Vޙ(<8_bSϪ%hy͊ABvDljBblQ*AjB, 犨{q#R"VX6f(%.P,[0V뺨%$ 3UO\pSyBUR nP邫]&nUB ūPTT<:HFj֯~(3vso(jUJ*s~<4Q?Mh;*gzݷQiIѾGwDGeanO#p@V<@Lx"b7fW`nBTYw{0 jL'mpLwôjv|Fo;GotP{ԴpfE1BE5ZBYe?܄LeL!j-\/9`ITFFW^ÚPmAB'okh{xSKl wrpAdL,;W~sb1S/EEwH @ a olD\dҋz be*yT j: l#C6ʁEPcn7Z3=UR-p[0d62QupOprމy٘|3;PߵqQY4c1U9A=`v\y,)t(,iMvxtY30J|{@z?謁!󋳙*=Q6фQQH\<Ϣp;sfzhANVvf9VJIt)8JT^E x"h&NjRvs$ݵxO>g9DQO7ddOu 2'>s K8 h=<0Ni53u}T9 B"xZs6T` آ/w *5;UA9]i@, a|0y,an`6 i)[Ӳ8p "!Df# MY9 R^5#m{T4=0daTfL5s#CU[p&Ȣ*ý*(i$a4 >Cy}آB23xτ8#:˸+jicӒu3)ǚѴC*'6 IAuܨ{N> Ѱy]m BjsQ@uٵV!|/k)ԁi6Wg0UŒ;M38  9QJcOv6l+XN̸I-a4U+V$3ٹ5z&BL PVaYdl HuVv)BH̬AEabXG<ַkz-`q" 7g2ZϽnЫ7ݟT>}=PN~cHEgrn(kmt]qm>Z&4UakFvA*|b"VX[>* Qb%Ct.rPhټBc ԕFا?IyG#Ou1|sbx&T@6ʎ(co-ɔL}3<%;3ʭ[x%ܼ -VP䀅Q@=8صkj =q!l%$0 5dLkX0(;Gmg85G c3,o܅(qNxedH/ŮtBSj{34) N аkbwKǪ;A On={o~͆IhL&V`eY.<ԿsrvUc[jMJ=si~Mis}pށ&RAP>u%Y%1蠧|UWZG&nV4I]rF {HѸDB`pZLuW%9A Aw`arML0GYZh1PVck-il%41gz g+snܓphIT@"=J";%% mѺ 2茉rކLD`&eXMV"USUi$'睪[o<|ZAQ61UD%ۇQ6*pUw }AеFNo>:i('x&StEԎ! AlǎP#l@D݊DH3j EŢDwlX@62ٟCH[>O=qUmѲtD)ӊ1 񙨃jlr-t#aLπ^"93mc73;"wT^8Aǒ yBPlB3䵻3u1Ntg 20RR:#u( LIBm ZBoEq9ث5Pf zh8qD_aJ#,PS݁(8D\DnM#9VZ#34֑a qD88:(NmqU]t#-<{1 0UKxF&gНؘ6VUaD~\(B) 9څ=;VPhwNs\~QDںIok*H;?qMpw͙ك^*8U^](ԇ*7X,߱UyfXGqba ;5Ό @Vjb>]vB 1A6_N!I Q$xgzesZS kCG2x\+s$ȑiQqi8c 33"ӳ"{jiCou2;ӫfjQw1a 1۷+L2 #h dfƶ?88mNai/UH͈`0g 1}3AUX_ZV[ b -*){~J0Ub"ykq_IAwڋ-Li'p]Mw6'wc鏂6;"%,zb?d]s>(:^kgQ 3֍m#Id~{'ZS>3FW}UUtR\l{~ct/eZJB #=J}{xQ>oS\Ae\ Z;19k e28h>ɭR48R67"ͩ(# ͜HHUX-\}Sh}ݦPt!tTNe dU ?J1 3UbdNsr,6w*z`tnmh=Pj'3E7J[=P$dD;Toݨ=Gr7! DpF3&t.9(AZD8F#XNd˅oU8Hɚ0VL  @IW]_Lς܅#D+B`qN} X%4mJsB D~,U͋!܋p9 յծ*z07AD]3 &.|!G򉔎 tUfS~9߂kaH5D.Bih//;񌬑܍6gn"d xl픐jHAV>7ZVǍ*0GlE#8WRUB26҂Vb\h^8:Et276 X=U+CA18+v(VwIUz"ݐfJHz?0CbkU նaU<|S:L Z<" HFk02*af).Dx+:uQv(NQdmޙrg?$ٴnUD#f*;}}`GDF_P !1AQa"Rq2B#b3CSr $cDT%4s0? Asbٹh֍\*-W;ţZ5WѭѨNJB[@ }f-Z&B|^E/2woPѺ;RV]J,TIz5?헄Ë#9:IEi$5kLTԌ*fgQW2eS*6GF!"Y+\c`[ B.#:"Zi3Z##v6 9'9Nqbvym*8k>eh͘A;.@QFtp4Й$=B7sYx湽+ԓtGigiI) ͽ'Y"^-$lę|tѲۯVzfDğ2InrttI,! /9 ħXi&Nfr{rI)rs\0tLIv{QKD6\f$=cboe)KV~[ؚY.K byQ -!Ӻ%9W-FZlVJԆ_[c3ZʚJrD"ZAkAeu+|;@|>L@$KRHY(ӺLi!,iloI1qɓc '(&ŢsםIj;{Joݐ86}5}!t ]s&K?d9~S O[ҖR!rM'z} ;'(tB6FKLA5khhm*LLV [IN눺oL8̒'J> i2e݉Sz ,lls2E:6FYh%!,BYm_2`:@tdjkXLZY4!{1"SN`wUXIC9]2 kniyR5ɯ#z_bXJ,u3^AFa&2VOh`0\[Z0:ru}^ݸIax%[)Ȏaʺ{ĽWJѕC^ʂJeX::& Nꠐc.kCGkd W\˖ޗOGP#znpĊCfOrsCɊ끻 fBm uS Ffx.h4:\RD蹑\}\\Ȝ#s$̿*G\ڻl.ڴajW>F~+F-DlZ=GhƠ{6Z%+Ebq D5-hgBzZkBx C79 @u- h عBx ͎͎Ͷ8ܹr槪x!c:gWCs)GrgQܹ1=R/w;Rz,bipW]C^wSeNOC^WR; x!v}wu<^vm^=Z/s/s}gu6M{w=Zr!y!ȇ{Wu<_*!GSԽe{qr{_.CZ%:h! ÉZ"'RJНY-Ԅ- ԴWk\\W7:HY,RW5:44~Rgq.duxqsܥHXs'Q܅ڼW{ڼ_{Ux^W91[rSr$Q$?xhr3C_‡"?CwSfrr#oz/qN!Gr }/ |!CvcBF9$"7"9Tqs(PZL!rd7/vA7UF:;;乌ʹuxԹ sk8ɫAfP޴vlY+7i|:͇GdڴqZk0S8ko6}l9\oW<#mq5fP5%(^>aYN^\Q .,U8s2ԅRb'W2v~^7/wtNf/|ͧb>Y)⏴o3xG{87j#u0~o}hefN;egspֿBWwWB!![G'uW>;v]\qT}v#M?6/Dƻ׿"k+oڏ-Dx^{!]eWW>ӳ'x}oXo_ꡓQx_N4wH]xO{aqDz~EzW}}pcI+Ml84(Gnԏ/Gy@NP?4@yFnut3ֳWWoH?3ȫwosHs03؛`~nrs{ٻ$981wdVj,P͙\,Zu|B3\ٚW5nr칷>+:a 6HKO#c1 HX0Y\?عn@׻cT.giF8\ѓ 6b! AǢeJU~3o1۩UfYƮ5/yYaWޏ-@Tyv#<<G6g>ѷ{H:#0x{N9q䏵⏴);o>;>hLw{HZwqOwӽm}7G-g1XƼ|Vr VDyB~r \zV&#u5~?T'+NZ⹬Ss8\&W52zΥ_>3B Z g w3pBN1`7(̈{E=P@]%Ƴ +cw &sYNnojvcV؄Ì؅cP5Qsqė4fcm Ƀ|ЄΫGzLZ&Efx5-G * 9\]Î;PvwK)óZšZn +\A]m:#<T*Ȉ;2?I'o];?;fe\î-(xNrwnĝ/#?zw.G~ܳiWk^Gc^`1 ,jF4s1J8Q"#<|cW DɎn0\1s '5fi`>pܥGB6݂-n o!{Y4C e2BMs2W!nTkGeZHYwj,P+ JyEv!A*J?J.لޯs- \ }W2|hruR$ڳ,(#phs+g؟MNsj]eh3^lDW?e+CdF[bǵҲ41rk_͜DO>X0Ge{ǂ洬7&ءPGaJ⹣F f;R3|NxFgo U{}[I t M֍:esP;o EOL{:W!zWCQOhv6OޢZ~Gg4YP=r6jh(Z-FhĶG8m wD?Hkeznwv(szlXB"6ovq==%dWK_uIlڎ,[o֓pԴ!3-mNݹ L#֐e2'-5o; :/|C2üpPyBfa93FՂO6@BQBLݮ DŠ~n Bs#N_,֚X3y`8^4Px'r-[cWM󟟮<d|L' |fitW23ߊ@WKꅚ|Z]PEI,'rs2uvty'<y8ljBu2\;pF,vLh,shZfq 5г$ֶ ݩHRwr {κP#;E==8@qkv sFx.c^ +[Ldbm&kY>6}s5?[`:NW&6:%v2jnmwl2؅Ju;" q9B m%5D8D"Oh׊ 9ݔl L_zx\cw$9>NY깝a \w6HY^荞Ž&rޝy5HB2e~55tDvz}.B{p>3Ϙ 4&ci3<{dwž3MBnsGq XPF,\/M{P]+S*]%~6wv@ U- iaj6=mp'4-pucMr'`JGf.%s ͈5KUMx ®+$b-)i:<KSx bm g \1h>gkg~}pe0]rj7xV]6Dr: lCsT3Mk'$O|,$>Rm.w3pЧi>F;;cZ$a.F !`le."g B_<р7r69܅[we8 Sz4Ϧ=w\;(@t[>8ԛfh\;`!e/,F ?gdHB-xٻĕӳKCե8Mq:7ې,TUgGOco#.ud 0W]}ӭ/NKm݁^+Z 1b|8.lN.usBO L%s oi8tZgUJ^r,Ou+{]96}Sa%N sX8x}t<;5 =Tt\d~kO.،eu!S%)#/5|(Vwެ|3*'knޘ>ajׂ fO |w ꝥ'~JjiKG,iFQa>ƧY=Mv!g:C9S6(uTx!ɏI+*}l05>2%_ihvOlW^Mt\w?Ez&~.}|g-b+[?Wh0S\p_=ɭE\"*Ki3ˍFk7J[Q t<_T SUJ13 %8?e'{]&CXMGþIТ;эwcܟ`q .f܄>g;j\[J=C,ֈJ-6-{Vc,hY, CsVlBI2S,3s39h?yc<2j歟8I6҅w,c'KjBU7●EH0I}TN\6@*?nɌk]}Ґ(r(?5{:eۏ(yãJdqhdaxPCq6T-_x6 'fhSkFUUڕOX>ʼnuv?wb>4| 6⹁4C\$=&ay9# $ &N.Lh-<ڴ jZ(Cg77qN.'D~Q) ;pF;p˵ 1#֚kk*qI^q'Lf>Sy^9;@4#-ɑ]zE$dd^]=d㍈h7_UNAzϒ1lgrm??aO#r I3E^z1@Uc)#bEw?3\˱yrQcdrh|axWjm/ta)WsH"A͊kd!Ï.*xNulF?˫ `hyA:=܃eM%\ ZVۚ0(^0u\\2F $ 8,fGNhY_9M?oxL1ңwڔ`3 w!MSwr[mv؄hhbU> yNEt^h\>ϲx }Veix(MkT*Zg) f0r,)Ab|lEZAvkE-H0lWFw|qJ5@5Uޟh#YFկ6Qԛj'$mui=kMx@,J"r[+ݶ m>M䈟3.mM=#9&eИmN ⊺#A=PH;^{$>f!7/ug_lvqGp332870$9wge{wk+pw- ()c0_fnCxYW=̷J >̝fj-+|mnںnnL?hR8gb/HbsGB;xִD7 ٹhNB׳%p>=T'Y!\B6δMAGwF8 8Iyӎ%)1f9mS@ >6D4gdӣaLɱcZ.'pZ!l+׿pM qN KM \m5/x@۹l8Nm{s֝$KDaz0ɻF$|hƻdz LaMYBr2#3t`&\k_!?NN{N|)|bjHdc׍v͟r0竌80X~Q#f^=-ցݩk+^'K,4!]R]AT9BE=Q!K97NQ46'4%+>_TM v}V! gD,^?7&rt{: ȹ _;nߺƤ< [kFK 0Zc+JxҚ+z5ekp/Ð:N(0T h m+0;f$p W5Z m{h]s2TFz3> ֧u|VnPvغ0݁NXx뚟fH|5p?gg )mT"knj֑UU_1;+\q@V|qT%s-ԴC7+楢Z5skv|x.P$I(A{'3F;>CUl%딇n(?/kJ]^ w QWCgӨ)m]68Sd^TRW'-  º݊ԃF^ y)6) ]չY"N[LфJ.;WE}6+:w'4vOvx=8M>#/#D5{k" _6NhIg&C|;cT!ĉ+Y9`%͐z I0ýFmϊ%kx?Ċ5gj\,{gkS>~|֙ҕ-USvk\c&ѝQpԃ_Hީ胄TsB~MJjt~SDWr#n*O5f*gD޴/q+3t(&BgT T  "hkDpjR֨nrEy-.ʭ!87(Ȧ&&Կl?l\شuq \q䤌ӧnƈŖkN5VF3wƴKMBB|3rtQ]r8 {>3Qb5 4N-)hhYFvt}ݒ<$MAW9F54pyQZ"ZOt{}$-<^o%+;!YΓ/Z^N&+GE[EsCS9>lA?N$XzA˻#gh_f`2NBSmQ#腑ikte_(ѵY [yoxL {OUcFkaBJ.s/ZfDa54ZVʞJ<49vU^'n$Ed8Fr)-vaZ8FR3Ē$lԣ%8|A&-DU;xJ{>21SWv,TÿR?rjj|lDe<d(/s^W?-Vb2Mقu iڴ. BMQP{Δ盎]|zxji:GsA)@m ‹ BnWELSB<kv6ImyN'\{!c톈Z^IR4bK nLЋ E~ Sڃ:8%{ot@N"C$EVK6i?S~,+)DЧtrӺj)rmۍC Sn$v0C~ W?"/di=Eάr){܍%κ3wyꍪ}ß]ZmN1'-We2<@4L>uq7jt[$-ēIWM(0qύi!:t!³c9:L YqU~FJw#U"qP{UUvjZ'jBo7)ɩ?J?.z)ύ u8յaMOo50^^㌑|4cqQ-Lh.|FVVE1:Mmw)Ef$k|rQ-QVa>hv%X3)x)_tuK^eQkޜI=)I SUp(V?u2RփGv$I p1">4\̀ޑFh:~s )G(.f'[o\S'ܛe {A;rVhn)2f) Ӣ &ͽIpZV45ӥx:dR'*p!9˴93hFi.dg:)\ateN g;c]i:8 v_RnTJq;$GUd)#3]Ciƌ%5"Nuஏa%] 8SUSSSO'g8tڊ$lWUO؋9 T^گ|'F7cn|]',M5㩳>ZytM 1 ;ϒʖ"dʍĔ!ʾO4q(vm:SqZk Ę!sAOt6Qi{4KgC つ巀aNc/6 xަpwp' !2rasIc|r ⅚ ӪSBȐ'#Z(0>⟒6W.6&PEu]B u5p<`7ϻuO7)7b~c6_&]ew5yJksZL̫JO5FYpPd7 ش0YgIf3W.b0(O/UzZ5gj-Ra ꞼxR\qsG f 'vKr89Vyj4՚.CA!*gMgoz㉫Q=};2SWク"_W|q&55MMMO{)>46|okv)ޢŊf)m iQ}68;0 m3ݍxHK>dG ñ6 A)Y@M A5/=cI,kF5SM6YSnWDDA 6s+; :">TC?6v'X>0xq~!a?:X hƃ'9դ6PoNQF_~Ѕ9h緹Ct|25:#əce ީ)#҆~fL)\tjlce[>B+[;ӟz7}U9+y+݊+"ӿ+3̟_hݙ?2Ny q٘(Q'z惔0<>){y9i gjK*'#2Ng8^ Ć{seA ˜>@lNͽ4 gЛ k\ tGZM0hxPL` ۩4 N1zy Qw3#-I`3گQ6 ׭> FVRh9m8vq_5`cd':; ;ʼu .s㍋)8SS2 )kxJyQcAm~:!F'жAl/ &K lD.u Z&iK\'E$9n 23u ~Ύ\qtSklHI̺#ԨG˥59#3]UCcY`>`Ms$NT>S&[*<(8OT':R̫[>SwzhMI'Qt噯`O$֝WfBSFs#S<&9< h.3s<dTK8mGKWb uCn8ڋN>[5N,~l+ؚcJg5 gHOV{|IȜ2ZW`\MxLLk(¯{'2g֦zQ4WAޡRb]Rg̼ӛyHҢA̓Om g~6*{b1D1LWZEqQ]~bI.;T]#Hѵy60Rb^3!V~F\zMZNOG^e?Tw .fc%6]=dvޡ#9O V@cAB.nͅ~hެ>v.SVDE7)j:C& a=U\{DL8OC96UZ:^8ˌakHSF O j ke@5Q^}Ms$AWK~Vk?_75~kp. d/#m!A+&x4FO\e:AYLL$5&x a;YoZ'}Nc>!f?16a205zЦYOd9O(Æ0 2"CeZFBh' %W{[8-PO|<9!H˲D٘)a"萍Ζ αG|%BT܉hP}$ˇX3ME8 *$[4J6>Bt2"?E)(RwJuޅ7gj3 fHfPeqEa"WvNx('xK[$rDxJ)aL(pB >L5w'a JH~/([|V7G|W8+s>hxĭcK]# HڧtK\t{ES i;;˚g6uRي6y3 i#:ae-٣ yZ};腝n8jBUh>健ENWXt*sϿ[~:f^vk(aGXZB E~?v#t5PF{TKQ"@{2 D.U{Ng&9˘K\rH>a"dHl-% {Ew^5M#L9=bk1o:QpmlpܝgsP7Q5`It(. 3O ODfM+hXy8q5'BmRpT&õ[b<ёjb,YV{,V)&tU& 7 h'܌"{ieaC?(09{DM<&Yc2"3f38Dx֘o@2:2EƊMU4q3I lS@|֙e?ܴ,`’ĦEy&vAE fq =vqE5'6$;~Ye! fg]ԿI&jjQhphD>J]BfY ُ`BP0{a`;AoK^=ڐ#0D`:P1cjR4Q63I}kݹ J<;Q5qq2q9֞'胛,EkV˶HYa19$`KyQ./.6.j|rգ 4K5v(pC|mF]YN}#1>!|6r$`~\wIc준Vr$0KwP̻Cjgb|V_t3O4 8JZsՖ1kܹJӣ>riO&12O|a/.i㉝Cb&AA=(kNZ4 q+r1vIshp]Cٱ:d?T荆OKth矊%JoրߴSh$;kڤ58SmޙW,ՂΝK2!l'38k\ -'9tgڴ3 ;pN9 S6ޞݹ0Dc*k9J)DJU׸i\˷Rg2+^#q>Xi9nNHީL2Xh{RXss؟i `ug9XkY:jk2&agҺe BS1)o6 /0lIf]L)NJ xr6x}F8'#*O*$ڛ~SrJ hkG4BXy(v9@OP 6vKZkZazdǐF'ȥoE~bk."u \x(?2ۏ% ɏ S7Jѝ L)LƛUIe*ȯAsLOhƀn㏾bky[F"&d(]}~;-g_2l]qTg) N$u|Ko jt#"eZpyω~%u;Ha^`auMʍOep>Ll#ZD.4c`zA ǼS4}5,EGn KekF9os@$A2x}'kNt_4 \ {$miutoj2"Dw'LpLk[&P@U9ӝ%*럒{KnJDl\Ή"isbRN@4HHڟ'xL?vξ c8'I픮UD:{%*Y0'`Jx^e1TL@ 2vz[!#|៚T⡗Tˎ&nZW&>)Kb 5 5*#~'~Diœهą) Чg&&D: *e)&ZX\މ1kMn=а7ܼ/a6}"0!rw)6chp y1 t8'0gRQ[mwLu}%]zH-GaZ(# i&pp5ћfk"2{عLovD.8^+Ӯ{E Lvҝ'r(ؒ]urA;KHnCv6ns$͓(?0P2@O,兕֣PHJSG(7fXVH蛭l&b:rWYK_lg5vŢ$ I,#B6sl15߭Dd$'g1!M衵sC\;$%h ^q&YVE6,#A^ 6;-]Z(\;!v{%t(#u =,ufj`2/ghx2ڃ]HyN7YĬWit Uڍh_T"@w&8HCؐ \ ԃJn:, ZGNqXbv|mmt9UlNo fiTcAA4c=W9X1Gu~%t#.5֨BKvvD7y>G9ҙau%惉':R KVKH gHuIʏq oK|hZ(7ꯞIdEDÍjm8A 1ڋcgIDe߇xPl1 j.ۃuOjom qN4S]TdDtG;/JAOZ,iu@%ZK#= i*a/: ʅ9~Ic"fF@-,)H8)Ww#HN>' 6%NbdY8Dc'-r&;mKS+uNϻ1k5:Њ ¸6s1T&kDY0N`"g)dP?+uKE1&\'dL7-(p}wUk=cL'$@R9 й_6}Bk\|OW 7<0I%`UBDN&NL*=6)p;tgX ,Wߑ.GΣZmKa$Nj,Xv(|c1̿ $3bt~.j~nQtSppk\8c%_yӈޔod0r{/Bv $vȺ7evC>pޱ٬̙Yu(80$RD.Eg#Y]|EFa;4MO6 :.u o~$KckZ[adՖvxvkzF\`8ҚU\Ô-vx<[8h=yd$I u0<ӈ(_6R ܯgC$#m+&TDKTęwv#Z2"4]33!ރ] ¢X^):iCAsI8eu   L3)p SOyͧx(?;0J<FdGXD{ڙODHr؝*̅0r=$ŲavrÊ-X, >r$!c+6+ag |G>m#"\ToyN$hȤ//>dRy.%CClhM1dBar5:wY*8.LDHMԇ ҧJF}P#@o4 Rԙǒɜ{Ia\җzY]5{F3;pLm\TK@K~*Ij֣uu+͝,%-HY)xwt gBIZD窹I6yHl6J @MdbN!҂g=FM8]-!.0x9"% E%3<'쟚i!2djR8γjL2ALh; bf19#3xE4k>=!#8]B6l,C 0 ^eЭ0t/Hz(Q[\Vgwv(.sMj/ Z@52(8N`LҨ3=]L7BQ>I29Q#Z/kM]hIZcKM-4i44i"5JBGy@uܓŃ%Magb  ťЙakh܁"O <əٖ9:Ibt'mo &< ߹ŁkN-HnKh[2v;+460 @v,1äĺc =ttLZ91+4* 967'l{de5Mfaɒ~@p{/ɧH b^c.uhd(lJ[.cȯSψa_&d/<Գs s]aeۢN0u@tX-9k2g.9!P&C lVhLd!3#QX L{ݢ;bkO[ fS8'iyl hl 4z&2Xgޟ p.'j[g|U4Gs\ffpT&Tie$sڡ{?Tq<ևM/D3_1Da1k.Dʀfl#ƖSĉ+32JuN;`Г!*e񸙝\|d zX=2Zfl/=_X`س{18&%ͥNؙ>l&xBR[O{w}la[/ecdm`786 F2}H6l&ih>˅m`Vڇ? lߩ.Fϟ3D݈.n*Q ={DǰsS!+\bvcLzi[BaJ*DfhBz)(HD={J~ڍ쇴 #k${?Wp$mq;7fJ"la21}+ݑ?am;l;bt$&N3iaq2~0 WDgm=lqsN3 &^TbgʞbJyXIɑ/fc6m/ibϴHL =ۓ8lJb&Xl |;^Vw~7۴U>G/bT0٘᱓捲Ĵ_~6ټ? B~7\^4KXPB$0[+R$q16T%N۽26VןKGcCō:Ua0ČNٻ!8y>\ڗዓv~+;aGqH˱8 oԶVã+hRjNՐ/g}ۨڞ{+ۿ ec`U>l< ͧ}:yV77EngOomX ͚1X](q^첌^5[?h@ *#e0[3$1G`da\&b& QP5 p}3m}cjIژ9Sn{4>ڕ:q-8/ix`xIq?UXL->dV*rI8|&"t'acD}0^|.+XV '7a/l8j {?}_2З)Dbv>3ڴl9{K8Ull<8Oua a&{93m}3i>WyX=^wDz0;'ja0qigh=cږ_gnl'-fm/a ۸Ip8iXx%Dbm>j6^ۘ|F{3+3o֜N2\?1cg}nlᵌ 'OhqN!g`XI="h;>rd` PSV"V3$ë(=ٸ}&ٍ+m[{jMV2Nw٬:f'ٜ\XEB&h-rr~Ro<&^vfm?k}i0r1xlɳ6|RF!{Lf+ \ljp&fgڛG٩Q =$Jj"Bv'm;iϞ&LK׃dF(gi6~;vvlI[A;SΏ3?׳X2Lݥ=O-m/dlvyF!X\^)s b_dTN-JS^ٻo icI8Tk64/+ q|>0K7|,H0ԐHڝ*Kg,1ӽXOiK=϶;oKb1{1;lS/` 6ĮS'gE6콍1`JV9;+met  N? ;l`Sɛ)rb%P0l$xp;ٝ^&F iI؉2[gfa0[wf"ndN%i1 NblO<$dm O+[ :vnl.`ϗ?q[?7e9qع]6j+mmr;em$d:lr$pV*~&Bzh%m=Wm`vFih'\I>aDa?dw>~ژmbMfdXfcXNrdc[SnbvVOӁK ^S٘? Is_ӌZ!Grimc}XJd쭝e1.F i{G1Xebq)l9>^f`v[7>c=͟6qʕ.dDNϙp; 2\m Wca =m<7#j~ fדea8`c5-*Vgln3%1RJGQwdS`yaՍwdzl g6ؘY;S 'bK\xDOal>jh?n3gl-0ic`زmd;#3 ?⥉SF.\D-vFL6H{EL_SP(;ZF6\s̑]"$KTiڛcm>tLٞ7gE6mΚPi+0v؛wI~}ۘ/3յ@0qYRf`f8S+ }sqX$aFy&3gq 21;Okm*6lRRqˬ"t3;.N?Զ81/[7hEætr'tȗʄ·OE1Xݟ+{-d`Fۘi36[[ѴFg&xs=#`vԙ)2c !#k+ٽ; # Z~#'bv7f`Kacqg¥R%LనL?ٽػK`lvbR@Ӷ^>fml7jɘ%?RRO)XUofvݭb~xM{"Vb6n18챱]?g8%HD؅NTN _c6.8hvBoohv"qS2Q;ة2'ȓ_X^%x2H36jl7_kga*-Ɠ'bWKqxljbW2Bj\b}ٻ3mcr#n{EJLmR0rɓ)ɖXd"[F̘c6Th6{fidhg콤6oO)XIy2J&XRa+^/Fi: Fלh6ΙHQOf fgʟ']Xx؛6nٻ]"BG7*l4LS0<4 "F'iʑ#3:\˚e{t#7Kbmg^,IXLF1R1ꗊ;Ny8i*YB30O{U>F򾷅ڽ ŝ>v 6Nmhc2Tfc*L}[X?ٍ[Sb}I_6/bb'b{oxș+ N a~M6{1#Wg#iٓ0XL>O~a0>%\N:DM{A`};[kmRbG6}<|$6vzlm9S?bMz2M2ե{1o `;;&lN2v^bvo퉩V#Lɲgc%'v# {?\7X%Ʉ#fĝ8}K?Xa]4p~\^;g}bnc:nF2fc(0S#&ZFyI["HŨN;gamŴ5x(LM>r3JҤ'v~"~oh0HmgfI2s09^pXevǯh;?iQMglySe*f^- ],\>j!;//c6>'lhmiv@;sncc[W8)Eh`L`S# HTjܯf&{/^hfp*f{=Ι8b:< G͛N;71xAX)f\fNIO2fΔ#p[*č# !O R9n I~{U|b*^֗NL18Q2%}7YQn,Fvz%{kٽ4dbdb\l2.1)^ڛ#i{Y.OClM66v%x=xɞ1KiH^ ^͟پ#jh&"v~jٳɘn <.' ^X͓[gle/ Aⶺ;Rd{Sӱ-; Gg{0ɓ0a}o3vbvVTt;/hLb\~ŧhb1X ($IKFa8Jv_ܕV!*cQ%&erOZ:Fmyi;jc~Lϙ3imh$`gOr063`~gH҂T1BԫSwEыR^ʛj'q<lO'jbpJTHNZfk$b-^)VmDm%6N3ZX|6#i`eL&30 &kJ_iqm-ⶎSFe}lM>l^ى)Ia0$=rv;761'hi}dm^ciN<fLVR-SqRv>>l2bqBOGцMiX?ՇD}vV7xg3zl2yxpFO73CGYqp$`lo$*IM;$ 6ڝ&{Jq?I6Nԓ.S#OGm٫ U x!5}` j aMFѕS>kՊv6v?p  ytd;f0?gdz#)_^>V*dhm9Dϝ<3 1#f5}{;*qFFp80[gɛcflbJO鄩8|2v^;?[?c{Y{>z={Y1hұi?#bbW;V&〈HLr68#jMXMFQՌ&e^_cHV:QՋ(GWu|XxV:dQSE+8?G~/׏{fǜ]ccş<#/#_(GW2qєFQeC4z,95τez_^u_ӗr(QՌ(:u}zuc_(:Վ_(Wu|1򎯔u|գHR:QՎuc GO~wpw?鋅,:䄏k_2iј~lY(v1/L_ׯC_˿TRoGחo?XlLnȟ6u?:v3ґؗIBbKv;3CQޑs' uj욳h=/tg')P^b(<=zeFQeqez^Qռe2쌣(:Q\/(GW8yGW:򎯔5<8GV2_]oF:PV,:.R#{G&2O22?bW(َ3?8_6Gj~&3Qb{ߔ3Y/ŐO4o;@?C$-]oUA7l8$7ez|#'Tz?o5?G]#vt1Zg{PS?K|c;:d{X7:3 uH,w{׏.Q-]}i_Y_2:_8V:u<_(ߗdGV:^qucXV,W+w('?Lg#;xGQQݞ|HXyљ==^~p?ݤ~B?H]";Ջ^\<qo-{!S1H 9=Ė?.HSF֣? {,ǞPm%1TTyR> !_Y1WS?8^/7Gݧq?$;n! |T f.3"g/L2c4PG}x_qfd~^do4;bGZ_E;XUrucu|-#/uc cW&/(yGVť׮z[ї_CHG9(1dIVÔd?1hJ|(Ǿ+yW6/*ߎ{B>xRPOGVcK&M? =iJ3[?2YfC7&-? ~&w{f7e/ IHX~ըc{ ng[~'IO+.)O>??x|c|c,Ęc Z7}??^:?|H31h#:2eFQՎQՎ ":~e$wCT~Q<3Pbܟ(<)OMHCZNQ|:G_J$p@CfrPx>=B[ &v'Q#B[GQg!!¤vTtG_;Eķ=J2iР~O/a'yۺ/-jiJ@j"RpM6?t'J9qQW(Je;*۾:DbʷvKMCmcpٸ4~o?A̚-mM?äI}`wLooԿ@?yEd$*~q貚QZ4t`|>vaޥ+N%@ sБ(LY(P[_G\Ā(,G֠9f.8Tۍ2_sQY =F-&gn8xtKK~P &cII19YCj_:~#\z:lUo,&nQyc]?(R?=1xrDu@?aμ8.? FOB i 1)oo[9@2d/̖qjX%t_yU)3T q)c[J;}h/$?.?К^3ow\CL= @]*9dT@?(iRVN]r>Ox#O&Ha)gj epLtoJJ}3=&1짋Is þDGVy|ԓoDh',NkV3ѼZ3Oc@q 1^2<#(ɼ8Em}x߲=GBz|c[![r/F_&G?8?ǎ1)*T%;L};SYL8_dyCV9_Y}E7_,VSp~z@9z'wYuL}aj|FpJFHNzFN_lUߧ'toC c:?:3.ߗ#9iDW%qdLΠ== TV!.2@e:ִU_)"/1J9xq$P~/8D] B|5OFU G?vGbYKpa~%2dKW#, iB|7ٖ $/ )|?H:'otXpHR{n< t4 `mhK<|aPpgᔟERv1jݲ!VuAc7Ū=/P1=*W/^AvЋ;={(_po`8'Ls&sgQT])_!ocx^)H ETpQ8dKiL^/6b)(R:G+. <^\ J(R9+.GX(IZRG2SXb8O"3KPtѹ)=ddfN-%!YVOz+^x-$D>gTz'9.ݏni%emb= tbX(pPя7 'c|a:1sV/cSB<ܫ +_6/e-ЏZF&K7|}*'o_(In:ۑՄn+(J6kdb?Z7)2 叜ghR zZ7r0 MJKk< )IH:C #w Qn.Okkɘ2O2FSFjI9< hz6{>}8dUl^WŐx;۞Iă#Js[AqW%?kڿBaKx7>\xEVY)'AR$3JKrx $s69&Iur| yzq-ө!UwTZrf, %9R[bE"?}1]7dN̲Gk^(HF9D]K~R>*0Udi#Ixt"e&ݼ"T7)]XayUU7~˵O)Kŗ\w(yrG{|Z7bX~R{_~^Qdxv^+(?I?(S%+}C`+yG+$|2zӀ&ok Gٛe SݖM*6wjp*ϻ./UHv7;DRJoSotd MV=LoR?) 8I 4} JIK4A+@Δsq0G l@'ƗhZ[RA 3L<7ڵxF쐭3'Tܒ~9FTA?8r10ۧRMHJG]M_(OwKE`8v78 EұtCh۽un7#VI7''^ȘŽ>BX ǼBYxr|`s nHF[X0D8(4SJVf'1 [c[%K NU,*tS x]"IҠI6)TAiαq1kGA7I5x9_;{F구q] K*X#-0ϻ'Üd޽g^,ߝj!\ӭ/T{8%)K}~X儜vv1Hkow@ D](|`V' F?p[ɍ__h֩E7L~.2/ZQnvƻi>67q13?(sruSK?gu}riyx0-*n0Ȗs=k:#pA ]JWy\cI.!7bձ.Ru:?̙-EB6Mɗ/ {R7SR'!|T= J֯lɷpn"M/G_U3/|3%r??uO8JAx(sRRt~bCny8Zo% _ t\y7;"2"~ߔ=iˆ o(G_7kF~>FE#R Z(P#4.*A#r[\|&B%EJn3Vq?$/F]'Sف܏٠7R~f3_^ΙO &Z *Li?faXuoH? =%J*f̿$×'5,|OPFe G篬Q/cv30?JyJ~p'62n̈ |n~Qkuw|@>QpGkXzŒbjy S*K)D PV%֝mWvG"eTOu$c&VZ oB.J_v})2[+fb@SanY*$W͡4iB/8"~pa9C?Y.Tj{#¸_<^E/a}JR?g=5J~=}op8nMF_/n^׿|?#(=ց Ø`kݪALEtT*dI #QZ-8r`(,?әIP:jO`>p)+JK?תGp ә3 %e"(H]z8!h="P>1-|zu-RRiB|t$GޥvSySt[8?(IJKϷ(u'-_֗@nx W4_ᔪss{!?rUKA( |uˇX *WgWJDm!M)IJ|jŠ$N|@~I=~P9HݐU:I/K)_ջPZYKw7Ğ=,S/iJ\+)>e Ϲ")$c>1PDD~yx@4 Rr/{E3}wm7VR*n@ d%Zu R!Sq77eήJUi$|#Ky ST w8vwnKOE4Ñ8>^#Nc0o (0hnk!;Fm$bHo43{=}z8^kC);aP:F(B/ߎPfGo t^7MD7(3TdTDŽ Rv|'V&\nAz5vSj.)* zt JL}HW:98W,Ϻ$WIť z>Zx"LO׌ J?cC~|X}ŋXS+~ܡV>fBaMEZ}Z hI^o7KFTǙ$PI=!O O&* P,n@gDW#T@'n賫Q=T2{ %E%&X-s1-^g(a#()K{¯O^Qnpg&u bZkRVH ])pIVX]G6R:Ge<j5wkK2} |!TP/aKxQyi|#u2p~Ԧd{ޝs*0.xxRCN|}VO+@d@?<<=زdp/i)*oxۉIB;oZu,L\Egq-reCPI qHTٝQ I[ݭaz|S5rK0XU+>Pz{ K~*9trfpmJ/$#GG✞%@Tsh*dT?Q7P{K)/A=6/о^ `a!\oWE]:B$v N/7&%ΌJg p?rn×|[1>ܒ`aPCZW%Rʹ|oH m1/B*h5MXuq&33񀤺qu<.ݜ|ᒦ{W=(MtZTPa_=j]l.io7xzIC?_ɓ:0 FRTT4tapGo%e6"Vb07CX|ν5( $^8y41ssjd s`g7#}h$E?k b/=<3<[to zn|!SSU$;*U ̖ۨ5OH{ٛ-)pQwc 0SJEC %\V>ZfUYh$wu `I3fipUwJ9->12)=ʊT'Kk`.syGJxf!1Ca2 Z4r٪#Ѽ4H_j\2Z_􆙈38X"ZT x~ĨkqGJfSEc:E@?˵7/~E#] qf{܋,ԡ}>cz3{xe|ٙmx?"=~f,_7|#2~ }4E- jJԄ@Z=5|њC/@b8zfX #zRTR(~:(4=_5+2 v]0}[l^7BGUm(xGT#BAyvÕ?( OyS|Q,cq O vgJ[ ToL٩>A,7n02T9 99_yiM#bGDg"O6vRh|!Y!@w ϭ-! *7kts*=!FAub{b@RDuj !ԓ[ |fU?1o鶱RDf"ёu%REB۽!hTR,khEz[S't,Ԥ IRIJ[H0jÕ3sQk~ێr},9]#C&_H~(?8/1@qd|}*Q4.Of&PG F3"iU';5M4iKc-uX{C_*&qĹCN"?b/̐B mJ{GR?(ͪ?F*_;p|!IZ\w'0]I za=,Kf7,{.|W0|ĥjʿOS.ZG3bFߜOڝ'^ܬ;A?/("ҥxh="|˴.p JY6siiQG5RRiӵ-l|'ơ?>nFKh)$ޱK$$w|m ʖsh?0`9O)%_83 aO<rWi8,*K y_u> SMZe) c(7J߉Jn`e}3()f }]^Jd_(o\xgK]\Z X9?QָUqS_<[.7C@pƙ,MwNzf<fa ٹRK^^v\cX3S̛+bth/RʝF9~U }J +)! I fŰp xR%jR 0+*W)sx& ,&ϛϴ7T % |Dؼ)ba!jRvw6˟85{>0+>oӐdtt~(a;,3x8{b.CC)6?v4ߧlR`s$Їwݤpֱ+FEl >Sn 45)$!ث*S|ƭG\+Cg|texu~P=ь%$9NIO&'-~%MR\_*^"}ve:G0Z=7.lkÉrx\#L^RVc|>vSMOɷǷMdP{/$(1 ZRu-v!*D3Roh2ol350v$QhRe.FOTJws|[%g|w^:  ;b{KTjyu9`\Rڵ| 3 H?x%(d;˙Q< $jor{x%$$[bO 07ЄpMJ*Cx6;A`cĬOi8ܡ*BH S_PTszŠ؎1\QuFgţ;,O(CkF *W\B:sG[2}|~ZB1y@dJ'#O{ۆQ3C|ԣ?BæiF6ESfaԭEG`c(HzxLq$9:'*~*[252ʚc%qK@9%$eÜ,Fyw7>OZ3uz:ѺT]h38O<(nFx_ݧ~ezY7/8s5_yK?Pe%]3~{L!˞e}%ӣ|./^HW`Wz9,viNRf%z=CDI)>)vEHT`%'[B@H{Z~ пC|4Ǧ]E)I*_/~ׇ=~Nqe7ao8.WW/K:x0x?OfZvqaf'*7k>"7EFe<\0Jf1.u^\aY]֎~0hG=8Eev?شY}Vm@P#y;ݗ~-? |bH``ϛv]Ws^7Oa)6U dVWDeR|-lt~?(K/{Rkq1~RwE5֭UY>G_(eRn ?y<;#yHW#jG9A,n/mb;Ǐ "쥀[vc,xp8afH}?M!/HneL =3J׻nl9.(ܖ_T^ͦCO!saH׺>=aǏ(Yݘě";|GG?N_Fqr|O_NpghgPuP$>Cs,"{-nةCbNxo\aJ  @xxh?=d#U-s Yʯ @s'љ6IP*kjuϕa"3=~XrMf~t|=lHϮz}S~_Rn609f;?T2k4{A[v'7P- FG*@<%,=h"b$/⎙%?`7s aVL6uыG<&G!I8~p3>7o8..z[zG?BU3ߘyv2PgB?ӐL"[C($fkpI Vv޸SVJL .b;3~M0Mc@xgxI'8)4_x8zGZ2Q24OU)w(5=s`{ Q l Y\b ˵%J,?5 Q[ UQ>WE̖.9@uL\Dd|^(Y8:0_:Bz8,C.k eόB_|nYC|B52p2ӃA[չ\ t/D$U ;6D$w5'OP\Z*U)'{>^z#tfk"Rًy9Pц: })),BAl ƙSNDxB}%^ ˌ \=CFlɭ[YZIX[- e 6JA&ܛX(Sܤ&p0?~6hd oSŃzR8( Ηro(^^׮_G7FCxYyE\{ $^Əɸs0˖wRD?+L?~1xhTZ #\FhCz(HhR  *My0iVEbI[&DGp=oK^6POBK^ƒϦ̀GL(ܘe 9yq6a$ C!$Üx\ӔR Y]v=eq:d5t7ƐJOURiC?;/*k~xd5 =zZ牍 akEg3337О44)S2;|"~79#:Ffi7x!R)Fn '2,i?q˗1'6pP mK\w7>yq;E#7DQRf3dm&.ݡ[1inZ}Ga:2T5 Q 3ZITI#DE^E/ao RK<^x;gZst Z_&p,OpRm!A6N}J)GV3sKx7x~Go=|>`?]^2;z3ɋ>]=.c/?8ތs篌/,%ݼtQ*[f-nibёcCǀ}@ACYFw8 UQkBkÔ]$d 1s( Gm:O`%U>C>R)PN}КeoYUX!N:ehyX >PwN*0S&tA\kݹ^:=tbJ7F%%n#?Ђ5b,m6Mm4AEOR.Q-`_u9Ō1xOhl6|XԫŵຊH5#Վ:A CJ*Ё)4%~";r<5oY蘳)5Է~qNJBcqJn|R/dJ_-Nz*b'@@Էn&v~06PvL)]Ԯb J8 @ Kf_2?¯τ8-m*Ůs k,_<1t:p)DXWz(]QUc$f1QX0aqPl6/ 5AI4B&SEMhTĥ J`,ݼD=7eJpBJsbl9._2|1q8Itޘޅ3#B)-w}}ʢkJeEل8,;W&\vSqPv117wJ؊l~oN_FBՆ+rK9XR_-_׋ZeLrIf4*V3,ULQGVl͸ecH օcZ wߡ:oexLee4%!{HXzCL57EMa0@"u2RolMJ1g ,LI#ZBй<0u796|I۴C?]+^ 8/kn7`{ZwkK *7xGᠬۃ^ !SV%gJy4xa5Ib'PRkHIO X; B@p8~w(JZ:ʠ~P϶(W:U×d;Gw>x@TXBB ]d;ɒ󦔐xYU-ctVH<"ؐ3#/yB:)ih{oL,?( M סY`9-ex<:T fMRxE HJFIRA]#w[) (WFֽw% Z.;_<ݎ20˗2r4(OK' aJD&bFE?g.gr>v't$pdV M6$uL/#dad8r0e4ɉ=UA T}هWUVr?Wݞ@=!¬,&"0klL҉2 J$uTG)Iu_z]SJ?f@.{6%=Wa-5s<w-s4 ,F/&bۑ=HzFOt!'vP[3zĵ\S줐@LBd^RP9/JW#3<*8\^,$&€Mt\ԭى+BTZ]잱׶ <@v<.L SnjTs$1ߟ8E=i%NNS,^Nqe7jq[6g`#,P墘qm7-PDayݚ*IeqvܧX|ۻXZR_8]!*zcP\ven(,Vw%_E%7-Y"ُcCz}z e^;֟]r׾ *) Af5{9U3GT4rĥb|> !+8tUa.VY(NJ*(^_ iiOBcwT˩HJKݳb.bT %[mХKCݺ(Cy=%Q %U:[;lZs.3ak?@Ue*wNI fhXHt Y%2èU1[ BtV^ޔ6]!(8>̥ls}s@dLg7SsGF]lapDLo`p/Z&WB ^1k㩧.߈N@i,jJTsORٿ3Nfw`>c h[ P1)%[(ocS$*.*ǫ#zC(H** H$,M5!E%YRp|<ͿPMvQIY^ ː:99ǯ}@ XS(8ˇ2@/^PwGW@GC/׮ϧSlxMJ(uu>wʬTVgtՉCOBJ`4$r`Gٞ=M kVA.j1swRH!;ى6H+t"2,P( Va҃BS:fw"xć3ɕ9 ̒0("]@LB%t7WCD/_uI뻶ukUjttk꥔NJE72ׇRhKRقRtɨRRϼ7n@=e$<.fUW U eȐu]Ԛ3F$>@n6hVz̫̀D~7ҙʙ5(K3UnK$RAZ.OC,J%*$R!6.ZJT VgRvV º Κ:Gݨ.;0Qr\O^';PuH$hbH[ƀrd3jqzE!Kxy3AI^ ^0W'Bv{>PtU$r'0Bfn'tRI,Q ~PF.}X@MA Qv+QQu+4YٽY(ĩcOy\H>C{䲰kݡt\6w'{׎& `lhTBҋ|SҕQ,;<-[JIq+<)wl L}erkHjeR&cىK&ӾG @ml&H,'BU,1q -Hp䭉p3L*ZjEC `={5PoQC{-SRJBl{2qsBIJ!K2$]CLI,2( VU 8LɊs7v#2Ÿ 2:)VcsR=f QZlЋ ÄPjgc Nmk]PmP(H`\xJZ (e+sG"/a 9j(IRI`{f6t(3NV;ݐNv]FRykqJE/qgZҀNnaI,SŚ,uwPYrE# m:E,TsK)|97tnthT| Qg]'# ׍kJms<"cї90vIRHе`(u u0?Z?z}+)Sf*(Aě $\jKVr/'t2JCɨ!J-ۜ%ʀ4:1Snb-YpJ,tj]P7Rmj)б(kN꒶]$(x\PT 1{6wh3ABRVj-]`2$?!5,K=R%@9gRµ)_)N* T!Xb5*7atkWTbYRDA2pd!jRd]F:yV I.fls3WDL7&BybZ ](7S 2)sՅ ke s5A)L\J͜’NfKLp%*Z 'tF\ً B R]]`*4aE 3wRB*`)*%e*XY3©%BDЭFDJI?X \[II"rMWR\W|DNMBnR'K^Z.mAsffy.-C<^(Ύit<p/ ۣr564ҭ6j*r8Ti5vI#})•B罡 %$DE17m͹<4kOwۆ(l~!孭*AUZQV\WI mꑽe 7+Qz7Wָ5V?|cp|:9 Kvv۔C srkYTaĞLIA{NW6؉LkT͙dK$3R&5S,C))q%+R%Ct2 -Hphb*Mv8y(JħiB! ! <ڣ \*]I_DgK(I%RjYpenb(CbSQ3- w=OmI&:A(򸆜U)5tp Hz,ƴ;DGFHTFDHXqg3y)S w>!ln!xBBwfϟBnĒn cXL-jHk%NKHM-Sk2S݂\WkQf-WVM5D:.j2sWH$uUìRa7xBHJa/k&eHfʨ!3TQ*iΠK]Y +F"tLΏ Jn!5Rʪ)TZ&gJTBT&Ȗ%B]% Hf{=g829>9IRz6{'bM 2IY)Z9U(- Aiuՠ!$Lf[|Gt!Dz:e1,4O<{!2GW<9D 3ZFx:yGxlD!JQ9=4(&{0M6s~'8&k=*j{n*'|;tn+xCE`CaYCV9Z-wUv)x[8$O'>?@PW~C{^VWG"oX*Kv433O[kt(r cvv3ە]/aXb龿Ha*eL4';]kfX'C$_DJW݃I௵MްI9v;8 M{a!&ٳ;\96/{60tݸ#-Sf_ K4M31W9u`"akn)CJNUI 'P!)RSZ^LNv t%/юWړqYw-$B$VUIQ\R2pƫ!`SH 37HʬYse7HHӽ-S3} z1n+ΤMihR *JOxɘ' R_iEwPO'M:_fQ vME,ÖB juƱ`njHpM;’Y"0WawȱӾP:Yun:tWb/E>ܱ^%P+zUso.VHlg]+ B@~ Zg2mYGDJaS{sI(s:Go|yYB~@W 8 O"JS; ORk>XSe'/+h~8 M+Fgh/:0=V뱱Y GX}ݠvYZgfhC&pjE#I-Ф'Zgjk~0]`UY6"%!KYR0&jdec~ovO“åkIϬ Baq +s%ITP{J@ "tɸz+݂`͙ɭg~MrasTh *T׬攘M6DLL UNTؽ Z-h IWHkxKd2{l I.;wTREK ^"r0rʟVJRQQvR(WVMR,Z@D^8eSq|%ҠTܶ6e+VjG1 T )AJ֕MN/Aτt!ke,H< (ʔ6ZY([,pMBOuF{տ8F;s0K%*'/n9DVkLr)Rx+ URINJ 9Y!.[K7rBPX5-z2kLxJ9^0jJ*[&Ԫ2[~Z7=G$?r4tiy悪̦2HqBر.q#7UA![qnERك5:uнT @*%#R%4ah)D¾5CL-Qj~h_GԗPm{V$Xzh P ԌXPRSksoiZr%{ŋ_[XAIE!,s/4-(zɚ I9sObT: M!ol- MVasýlw[Mgdv82JYM].Q)h\ w@VV@1cKf‘np/wn,W5 ˟R [LT .0IbQ)sb0ғDK($T*Iչ`VT̐4By J(n.:.)"SL* ȀAH:[tnS):9~ 3'!I7Oؐm4':ˊ\c'D $PvWRhB$XT q%MESdcU1aah dV۩soaIFeSEB/aKINw)*R 3{ԹZc!Jp`5/U!^ݱ)UM=^B+@ʥݩ/aGmnNQ~'Gn& ~mݯM?X6fZB ?{AÓNmoY"^E-xt hߔ,5E.beSOh\ɹn 5z]J꾖pЕ-%P) ^` `'Je?ieZXe ? A~.3I&m*V`ROxZbvM1^^Zx`8 /$CeϤ(J '|*L"d9Iyjhܷ TTtA]~%((TZYE$0J3d-[s/-*`DttثY޹=/pgYJPJ+f .]|BG`6 0 XCM 9 @RI9 ŏW4Ъ$,hyRY/+Y]P+h٨[A{*P99Oᨓq! RSxy!Kٴa[g0p 6MƓcmNQZz YAP&nHiIeYBj\LPR3+$=!H;E82ڢX*XΞlBSh &Z$417 Kc0)SVʘALdjFyS2GIAyDu $N` 4WkK$ݠ%DT@H9&X @ NsѤgF"_GHf)Vd+VE ]CzYTQA~N.S:TFjBQJꏳ uD2k$AJt*%_TJ4*4!0TnJ  []%LQNyL ᓈB֩!wJE0V'PrL*BN .UJZ\ʐ"h@ܩRwPr \*afe-҆!(V%25Y)çe .يAJٞZRt@-gBH $sJz̗ 7:l1""ATf%ܕK ˍ"pj~@M)t]=yz9%r%wT,Daz ȕ8LTP.URRjfхIv%39=.06uN0ە\)"lS#Dr ePI'J2qDӛ .TĠ,ds)jT]@:jeylRsq畧˭=d/i))PZ&K$84f M&g/=cUTN7˻TjBm2PIܸB(Jito"ċ`}ШÈNDpt'SY;A5'GʗezF=ᥧ/E>dUc% +0JQtܯyhg˰\ 2ˋWJ]BX+wMQ+TVY-' ]$%%[t[<*4]-m [f DbsS0AO:w~qs]%UX֗p> _JH=Z xؒVħ"=Yf~N{ĊHrnK=JA&lZVi`@4BOH:T^!|fu3pH#.X\j HSI`E8':tXVU(#;'6cnU {n*RBp/jD#mK~vP' ­8L^v I `g.X ~/I*vNT\R1~Yi} 3yA=4 4,;>-"dYG)G%v!SR7u$c=,$o%*|9c^l/ WlERKTMҜ)GE+Dɰ K(u5]8*߻>P:Q=/P\`)E ](P){ꝙKոiJT3ALkUx5Y?О< ҐԄ<-HZʑr`WH)G)Ac%s=S;=@J%[_+^Q2b'brOK!*ITjQjC˖Sp", ּfZk7PwmJxyv1)rv"d iw?Oň})Z{BJҗJRydUO)wBUH){fxGI :̂ 5{x$}W@'*CEIgX1ZhmNFmb]F="> tl<2Xr+I2b? r)smKnjhL@ )C V>ti!EAۤN*ZK>kN8Pt&:D6aa^@ !j\|ĈMjQ$],sH|tfCXӅ7uP3INuow˾pul%!&=ɸ}tFrzY.r))N)%@\ŃٱP}X!(/I jδCQ aQE wXp.\{ 0,%6% k-գK*I ѬveԦ [ Yg_X*ql{in8$99jRLۤD'ZKqы1g9Ѳ Ag3xל5bzSϟ޷ѧwBwR9% I4=~w՛fRHI3*zBK\ ՐC-)W0IcRJY.u?w&H0D$Yz\%"Y ;nwU==ZR٥E%WKn\ @:5dwO ʞo)A9$#6πuH@w?5f;Ӂ@osL|usq _HBS.ZIjKɛ1JxeR Hn4LR-1*M7*~𺂷KT~p n:a;U"uSѵ=!CJw[52zkiקeEKYS 8fz>Ȇ $ݾk=I2)^:YV;)J6%fˤAyC̰q(H jtIC!$+bRVݽ2j-*I0.`uw"l\A,EP-xD))Ntz8gЮb-*ZHS <0Rt7?#][("DҩzܓBz5ʔ$R7 ˔)xkQwZ1.|BJC:_7Gp[8u6F*PS:hÌɋ3cE2ӼuԢ R8TۆWJ3:-vH+ t(S'A$ WHZƾStJא* h!429 ;ånͅ~-!bȽT%oR×ol$ʜ\B՛p׳B\&;j]MU9jhkZLNqmN"uh3xt+7$I7T-~WiVZ O)iYeS؆ न&R$&RjPR5*wCWgtzK˧'Y5r6KVPT [%1d=.TcWC d7M}t1@$!$?Yk b@Ϻփ%VOb2)K3GU*mK%#ݫ2‘ZdMr2pMҼfpD,K5$5x0&ϫI5HJ6dHkTZ ]P*{ì-~%ΙOB_[Wt}呟,Bn):(+R@/[885d ;\r*eiУ.ѥGWuEt e̖y)%+[; C9RUzq 9vVoxLҲ@+ ,n!{ Ч:! {6|Eӆ 5e.*H/k-񅽟.!\$vhHP:XǬG>pxk=ai Rs(A`#ut8+k?ׂRVV!:E]D{сBEg|&g[YYR IQ#S S'yLI '6FW RѠTQMTnݪb-/q*(.uMnM*JdL( /_Qafb@tSg)=D!GSja= 6]ٛ*3JiHJYLcWX͒q!,= BVNmPM *R -=b2'=C3pGC\IJM!RgFMS#k==,* !@k}%ȵw-A#fzQ+v , B)uO ]m2d-SPQ$?GzwB*ʅ1eY 69V E't^w7T )$/u5-Oz&Lo{ya iCi|nMKJJH5 ]`)[=A@gfjRqN0 9l AK-M%*dٹL~@|aN2kdCleEWj#)HH6Ts9Ҳ?(y=߼2uQ0 iI಩}u-N0v7)3Q1 @*BC5WY *fK]A:o]TdW 뮧K/RˬGsdeKSanRRQ/ା0(!ؑq|!_h M1b|z#+p*})v ") PC\xmuliϧdtxќѭ_7.Lْ1LRRA_*R=]"̠^^x(JePVY<(ZSk)$xshotK?%NF?Q]{Vu'^b!v!S1JZ%Hf߈OIF]Qut͍iѸxU%Ӣ펝4R5(JK8@uSNݬo $`UhHMQ(d,-)r*Q"H=G#UP ΀M)VWVgPHH]7 f1Jul3'*DK!`(ՀFL- jB Fdfr;\\>qzJhPno: Cit |7v03Z;sSf{|4֪rD⧬qg Yr H$sɡ )K~YYYNƁPZ(\e8JjpU{rxB:e( րENCyz%Aa@$gǼY$Y6 4n^]fbM`@J쀢X>g@Po[{琁(&PR=QW5./ r 9z=U q.gE9lH?yAº^O:RY9q, ]Up\HC&eRD)(` OzR~((ݾVmď`[ֱWH8\T$OXR&RQs*{Ă8J~ΰ:yj Ug] \ r4̥}МBKA㗌 5@G<&+l[J/UIMvx0`!L :wƒقLqݘf-H*Tm/t8ȑ Ta̳B1Wڨ AU J ]Ii^'%nM_wZVVnSH?H4RHnMʫb,bu,kl)ޱ-?鸅Fo`{r(L;>a=ɥ jnhBLs*7_'Ϝ4N-|⢪RZ󱊂kyA I)[/o!z:g{_(o7?8QH*ϓxZ%IQZMʐ¨HYG𩓔 i#u/0⡠~p̛9Y %Bٲ Үxp!7]/c(U7S(m-ouE;AC+UܻbJ HHU` CY$?e(05\|̀kFTfbiI ՙ%-VļRkSP',ìK]uT6b9,BsPf Wr,ܼے loxtiJG}2[M`3Ql"̖//Lڃ r-}k p5'.T%IGgG?ܭ6)NF9[d1?X9BT*M@!+Ԝ$16b"n!#,UQMjB5%I{z)J*NaW:: MWnc (IR:Oovˋ2áO\JFWW *f%Ã]]A KrU1V3mv(kz 0B,IJ셺)&}4oFd9ߌuaBzH9X'?HzPM5\.IJi)Z f% iQ4Ck;ARE2@W&ͼ7w܇x$%%{ tX%%")NB]S~˞)H#5 )VN¥I{nd/҂_ϗܢa2JeT,+8clSK)}Ey7x#by To>Tݵit OW8MUH᭟[J 2BRUY΁a ]V - p[ }Ub[) I~W?$e f PIs>G&n҃ͦCІ|]i;ؤK[v-(]ß.& o}4ZYڼKBT9n%E nd݇ա>=粼 K \띭 Uq QC-EmĈ)'U3aJ)}pRd>Nfe~|)MCŏaJEW>("֤3};㥕ZY v{Bֵ,J_rP;1J:TUAZ^t0F_K8{/n2/h EAWa˶,u[!3+)5VkL/^ DRw6Q5keb1) =e<)* R U4Pʿ'"8AQt.gp:@P2 eʖE͞lm߱u%[owT #} k<0RQvJyBP㭼l XYywK݈uN"dŨjNy!w7sCvyu_fa3h(O/(jK? RuBi}mwѵfWPsB E=PX#\XzzBvZe07qi&!(HR.QLGZl;B7A,| ^ffo'MARuR ^FM:sףQ.!*PVX'?;dǞp笮YNj4Kò9h8|}KY˸ S*P)50B6*K'@L!)uCݹ[~ H=%(899wH,*3p5Դe;Iq(u1+Rjlqۧ(D>6GK4.SjȞ zV mbEe!'ݬPI2]%:nGFW}a-iu\aB*JPR'ZIVɼ5Bg4x|Uz9vp2xȢUH#5$l߄]6`;8*[Pf#ǧBrO`!ULp,Ta $խTIwl}xwB=ХhNd#VX*vhSS 3hOQV|\y+4"oڦ5&$L]s<,6b\>S(S k0oxh2T`3/ L'7PϏ} LUkC-uOdIːP˲+'%(PU!wi?y~Syb+S ԞL9(RX$J :i +nXx뛂"g;k9;r=Uz'+zY!BʼnI %nJe&ݮ0,+ \)}գ-* bG 8$sX.xs*%Rɇ+Hbv1ٲL葖p]'G'A9Б}ܟY.[-}rx-_g->odY$)Ft'頥 r -8PR*ٴ/(m! ,|uT;3\@~YEgHR(Hpy_SɇK%` B\Jd˕s?pvNh/J]*S7?27iBH$[Pi ]y*YLW u9@pp̜w&TtA_Tda99!*StE`*KhJnIԿW:`% JT=O~6r ۙ>.\ޭ\/τ%IuSy% N(ae6!nZ}DuU8hS fK)E8ûӄ-SVPyɅfJ~%5!N;G"VTAkP)Hiw0 Y%goH[{ %,Re,rrirlw`ْx5LAWj>~u[k0tM7r_@/aAD2n-$ S$taKHoXJ% {͢tmT64d]qɥ2՘YS`{3\ʛ/I[Ȭٌf!8MbHW9͞-SXb5W^S{By$n).cLv<)1HPr K[.ځ׷9r&&h @|H+W$_Xe%7!KsbFmc`rjYxd5RjHVW/8 @mUERjV۟lT\e f޹,g@Pb8z#R z!E[ ږo !=zD~qwlL3XL/ uW-iH.z8y7d*:>vo[\ۜ&bC}J[fZC|E)r -N~p~]Z8&,Ӯ{lX)PC] fGׅJiz>ye]U_n.HfgX`w<# H%BKQ^뵍8zb f^|aS))z@'QRߓ>k,eKnQP@ w.s pLm>APjؖiMtMqSy3 eLj`PJ2b[Gq:< rHK8٤"`M௨! Kp{"jtv"5!ᮅi5VL>QC'y(R}bMkȗb& QH7l0pO I)I+֔8Rn!xm\n"VN*a6rd%e2Դ%j)@\EG_h>=ߘYKO6e)'17~;OJ0OGObaP )@OH2pR'ΚSadLO4S*D̜0%I ,TY hʾB/iJwOg(H#Z؜BbjБRRUMTkSJZwŠ [VĆ6S* ۑV%@0:w FIIH59-v~(^D~rP7HIOD.,)Av.,Kl2s9%$.12 ;?h7H>ڜTojMGR&6uX)I^qo[y NҪ RA`y+FI}. EP,yqNobuWЀ3*::-%iU,.¦P͍;a]C][GgR/iLLdf^T(ISRG0ۓ=b*|ЉFZ60횥3l}u=12=jL8y镱6*|*R/ 12=a`[lolFl\.gHa(AWMOAa&cXi3O:tIK\[MTJZSSxDQ0(a0666lI$Du&2Y$] ٘>x)RrgM!SL˛4%+c|"v>m߬)&N)G12$l ٳv~j^.lb/Lʛ6i,=8>[e:$*t߭GjcLٲӌHD8MVR#dv'aV;دi>e@MEl沺;}8y8tӧ=$ʔTɓ7BSr% ^v¶IJƧ~ΝČDD3he]rVi!aX?h%6RՊV-`vrHQ*ThF*xKfIFYxݝq/dv3pafb .&J0xuϓ92eL%) \"^̣۳ u'i rjsShmibFm L'^L$*d&82f)K%D<%SWBI+vK?HxGC "+M9(}!T?VBLBj /͌QYC* RKX19}_+))N+? gjI B҇Z׾:Yw/(P:MKj毼7WB*•P(%}o!EiAn$k|}MH*d T¦1˗?lJTd@ rmwKB7e!bdZ̞(T\:\csPRl eg]Cf3 z%{Uy)R5sh4lB ZŴ&&[pf-DHA6bTHfntBeUaJk}纮SPR;op񀔍쉸?22Jl)Y Zj( #A Wݸݳ0 h$ s (I)(pmۓeW)43KK sqx@J\SN*,@ v fbulܤ OoOc0]))$qeh* ܸd2</RRY*g2l9%+RI:}}7LR5yq/Vl?JSY lY+'5:\boG 1~A 2ԓOUGyfӽ=mQ|քdz.(P`3n<2g!ifj3˾8j9qx ?vLo8b %xx[%MxidD+2!H_}*S5ĩ2=҄$~[R/uFC>2V'ϱ'0l!NhPNTɳVivgil{/vr JKi03bÁ01;tʛimY; ӮKQXDJJ&Z~m 4؋ۓfO 03Щreb@U@`J8If> a$߀לav.n"nSB/pzܧ}:+`͑*acN@rҥ0;Qv52ug'n.߮Wp+ e~J_ պS.^-7Of0/a'cK/ c$fKaBQD{&j  ;>BqM&r:dq8Y˒& O*tKTt% V˕;;IpU5]!q;S$kTVOhJ)Dkc>؟Z 2fx=+a g*XFj:;3j)0x s:I]'蒡T2IoL&Rg͞ H9NJJLR#)LWbSdJQnNc~gڻYx|~d9S*vĮTKl-*\EiPlW2RIRO; % \*e(2&~{kJ?h690"$sR{shRJԜ2oq9J :;> vGH^\*׬/kFUX)'~wa HSpu6폴wk6,,ʢ>#@ɲTncݯ{,}-x(IHI~mꪎ%JWKg{-`fGyfE:w4L?fSєrgPy&% S,ߟ +fxC!}b75J]*r;,C$rة!D2l5u 钝Х tǽ =e tKJ.j`V]~C(V閃2r}~p%T2a~^f&%(ITB^i5չ㽖ã%DtU)շlيF+&ֆJj͠5D_g+.R,RyBԇ%=`>O*\9˻_E,832թl&?u)bA;ʛgtgPNЂVQrRlm*ZzTL6\w=*u3$Pݞ$5 Z 5Q;ZHVvm{]ƺvk ZE!h @8f *z[=rEÃC>Zr+ERH%%M?&u3WT?@+&]9)/b\<' )jI%fKt5E%ҔUwT T%!FX8  i[7ZReuK oyܴ7eI(UKI_WꩥV~M,^k(*zR8o\RqP/yUlvZetWRp?9^ќvw; ;O&SWv. (&bҶ2FԭHIc-e)YêX=%_Km*ZG+HRm{"~K2AEXً&u*TAGK3gIړՈ6ndl;Ҝ.) rts YKU!,)Ʌ؛Vd"Tvt3IL9SMw#V\Ĵ A)JB4Ny'6d'ga7ʝf͜O3C/,- sw{Km^;gfxﰑ*ILdC$Z0[l/ F0IF yJ2i+UBԆL; `;?$SLR'H/ae2ݸcTaޙ;? 08ee}\OyV#Tz†"9^{S7(LHjRfġ ZJBCmMקab`aV^8l.>^ѕ𳓈*tT1 "zM)sI'`l#6>lq&|OA2ii ])+MF=L}텊RF s Toŷrh͠vqrFxBŔRi+VD.Ŏ\]ǔDp_hyu) ~N`P-˾P>z -(!,ݽ0ME*&,?8tܽ$oVv) zٞ >~PB*ARTd,zö.Bb`'\ϰu(IӘvǃ 襗Hf)6۳UY,ssপh!0-+BP_#B%T㮿MRT>KeG21SHWM~=hJ;n9Pc2zJÌto,1 rVOcwzݺL%@mKd2x2-̮ʳ  ![1rɥۀߴ 7ohNizeOVe:IIҫY; T] z3.i-4)b B&m\Y5͛yJTٺL vH')EQpml~PTQ1&I 垶Jș*G|a:A>ZRvTf.>Lٴs jg.@l).km&V[w4ңt@)ʰ㗣IS*e ЉivJE TCǗl)2 `[u/taj+4㨐 IbX.@0R"bD򒴽J$d84Y jѽ%\̏#RΚtIa(IR0E!)^'O \k RZ]1vSJRM=ߔLIPm`Kh9%5tjW[& dؾ\eN9)-EdW3rFexƝ~(x7d I [( `F 떎yņ}XӐwdqaOjo&N?=0ى/ڈRجKJTJ¦ L+:ԑ$l9;Č&՘|᱒-/LRɏ * 6DڳNF>bT&fq\iTW MNif d%qR^1^ON$BBU1=mg'';;U85NcefQLXtG.E8}KV9rq{li[  Ys]ʭ8?E9ժZga+d?iUTD kٜ/?nlJN.*;i˕3+q;ҾQ1}_˯qsmLXؿ+ǯ 1F&BPfq2daVc1^2Bl9P"vىŌ$J ZWF_sestL}E(womrGq&`a00M8W. V@Qc7L:\>>tQ)wsK?JVf*I٘,݋6N6T[FtÌm\Zӂ6YvNb&҉dc)&?fHNхcPʼnXM2 v,))K`e6~ai q8J6qʒ|"'faU`sN2odh2b%Nv+`l9,2WH7E$/8`gvN7/gϘ)V' .rk I Q%)':SMFK%&FЬDQpA. ώ!-Qv}me &0 }f” hOTq"?N߲+fg@loaIRSmv<3 KG&Nq: #1hBkZzr} dk~)Ir@C_uRFR$| a?d}ܹ4LAM %˶CBN$ةSUE7s%% `t騖@\q|ȤU nC%j>,8\ !))+s73KR qKQn"uZkE:t% j$'ĵbr|8Z], Eozt]m=iY[?UųBf0*KҖtC&5*BM^`(S(sAIȤ 7x5d1:9vwÉM7:9-UB{aXNMvS7RbTU.Q3r$e\1llE<R]i5 L-4{ˊ,݄3YJb `ZKp藼օK2N@ߟ 'FߤW:ZNzăhT*k RT(nUf-J=`hIH;0zTi*$R!T,aΆ\ t=}liWUPΚ%% Spi/e ɤ*\Ĕ).z^%bHJpJ, g9]"yYƄ^ =#% w }|o HISHmFېW%?υ&fM? ,NR&FijW'H(g ,fHP^u$2m tAD.8JtRdڪls5 Ei1.T5^2GĽv*vҔEɓ?eC.RTGv%Uf 3'NMdXΙfY.BvLGQ/ B?htJV3K*W #R9WJ~4T$ TٷT /6'Ӕ2%~!o<VK% f'$契/Y_4s %VO2 {'4HY`$8x@\iEW>/ H*6w8A8X ;;fLQ^Ԃ@Ǘg2DޒKxzs=4n\Ƒ9h8/'nq^~< LU<>hJ~fOgR_@><rm,A17WM@) Tt %D.q<a("T| HK,[&M*=}wJIaaݭxK3 y塄̕S uc՞Bsu$|Ic(Ih=DdDHCS:Š{wwFNt(_K-AҚ}w܃gcgBbd &94&%KY!ٳ'u [[=]*`mí,Qk!2OL e97ZrwIZnx/sbTJNM}y30moHx u_t:VI ]/~SxG0*#PAV˶%UB^Xj5(n0D-b |DJ)AMD麫fŁxp8cH y7&pnA?hn|{#%2 ܮiSV2y(JII xBBWO\f.(2%2Xn@'F0U+\|mpݐ $f֥TYf#m"rJ6/tjLte2z@JZMJlTM+|'Ij7~(RX-=+}ڍDL&)-f .z"lwrxQ[|nRsn۾*Q|%^=mld '{5J\ /Q|j}ϝ4,lJLbЏfD0ϛn.fOb3fH2deSTTљhZy#qv|&/?eX{5xu:Y"Bx&R1 DWNN_\Qם9POHEhNyzxB$߄{xG}nTyv@ xNQYDT]!TgWtQ%Ļ(s<ޑal,|Z]8:QŢ+h~Ie_?Tez9 s2/Ajj'? m5$;5Zf%̤,<N_Zkd- >B8 )IyRwRz1bIQߘwۀUCyT.\xꚲ8uRÎ!73ˌR)MIً,xf%*6905陙^w4IlA(y^a!ԝı͡T*ާ hQ3TZzPzFMk%*K767P+FNnQэ r@>0)\E֒r(y {!JBV wKCq–b*+Q'+.S ˖uh&ljnRb-EH!A=〇kɤppBT%KwS_;q.b;qЊe<%HmAB6V+ ]iH.+M|/ RcABe]@'[raW߫ f #_ J:N'j'hdl2ѾꗜJR&]̀>K;I&رղ +D/li@`vHдmY[9Cv,-*KMDУs/wz)ZR:N<HPjt5*nHЙWqv {Z)A)~UL\Z4.buJH}ӒMNPMDZ{ԢFW(UGWݍxr׻/)!)-g7AL.8RR[PU(1ˑx'!1AQaq0?!u~xȎ>~̏c㴎i/zoyb2+K52J0Wq/Agݫ|/I *U3#:?|\Qt&E&?{39H'sO ^ʙR;&Cv++ /.vqp¼Y Y$UR2*@_"Ψnt-itvHZHZpCPiqa西fܤrseQ -}d)|3YC`><ȤE%ȡکR򂁛M+U/PW%׀095*9E֩y7ΤT6Aa,yPB:قs¨ƭ' hFN5p8g$ 1;S.Nu)4k5g̈́dz0yd @&Q*7W'#PcX01 yiJoXar|<y+RV);Y q@^lk埍J % ]eb7;E^h`,u_g_/rBu?rG/zg?<5?O?>:~9/y>>M=WAo}=~|W|g߾st޿~r2#~~/?~>wbPȘ[ӅLmWP.N>Tި!`4&wj 3Uq'vO o7afرUcT8֡&Sghi&?7RDLj8yk8[>w.Rjg:,uWa?x~O=ms|[nNc9fz+ >ٮ:}$kM_'>Y>>םW^qoϬREg}s|}9xǶG#=~=]z~?x3߿o#EώO߯#M}sfKx>ϻϯ>>}NCӻ1ߏ3d'=7Ͽ_\?Lzo?:}wO&olѯǤdwǦKQz[wo>oߏt>n=eGuu~o?ǯ=Blk\}_>s=%SS<>E}_~/߳ξ>G^7q|~r]oyqO>?YC%y^=+>2}yΜI\?_9{>5|'{8􉏼WQf0~3|IsIL_^xU=or}tw~:>^5Y}?׿Y_z}yG?d;=~ܴy~szk~Y8>a?Yoj}X?,9}%y&<|_bXxG~6~X~kq?7ׯl٩/N>z} zQGgu`&L"x|fOpo~ύB_i uzB8OX8'Or~wgWnવ㿻8:ɛ2}G>^ L?/2[7#ǧ`kY8ǦsD^״ovǝ=4qI>1Qf2xj/U5s|g_߶O<~~s믿|q}"q??^3^}u=<~c_?1_Ȣa5ss_Ǚ=};~>Wys9s} l5~csg_<~޻>x*9 Qkϩ`޹7_ڜ6!9|?\G$mSn8"wf|:Lu`=ܘlU󂏕;x82vȑ<=pqou'ǃଅ}渿o( fr裭:\pL6koGLʥ X8FWW3,X ORX^y?5Ͼ=r\}a9}y}}g/ӏ3^s_\^|} Om'Io8R}sx:g'xѯ|wg|_wo{U7<~0>> Uz+ϼ~}|p~xTE|92\kx.k ku^&za/'%ҙ8>*pGފ0G~^'O&#Χg $j=O. {j'q㏎."`㙃_Unv5޹%\G]c5<iofǯÆBKocxiyw>XEbMy>'-ŘgL}Y.'@y#{r5{\/UPG<.8K+Wmޫ\U>x.%wʻ<